Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,47 +1,47 @@
.rating-group {
.rating {
display: flex;
flex-direction: column;
gap: 8px;
}

.rating-group__label {
.rating__label {
color: hsl(240 6% 10%);
font-size: 14px;
font-weight: 500;
user-select: none;
}

.rating-group__description {
.rating__description {
color: hsl(240 5% 26%);
font-size: 12px;
user-select: none;
}

.rating-group__error-message {
.rating__error-message {
color: hsl(0 72% 51%);
font-size: 12px;
user-select: none;
}

.rating-group__control {
.rating__control {
display: flex;
gap: 4px;
}

.rating-group-item {
.rating-item {
cursor: pointer;
fill: hsl(240 6% 90%);
}

.rating-group-item:focus {
.rating-item:focus {
outline: none;
}

[data-kb-theme="dark"] .rating-group-item {
[data-kb-theme="dark"] .rating-item {
fill: hsl(240 5% 26%);
}

.rating-group-item[data-highlighted] {
.rating-item[data-highlighted] {
fill: hsl(200 98% 39%);
}

Expand All @@ -53,10 +53,10 @@
fill: hsl(240 5% 26%);
}

[data-kb-theme="dark"] .rating-group__label {
[data-kb-theme="dark"] .rating__label {
color: hsl(240 5% 84%);
}

[data-kb-theme="dark"] .rating-group__description {
[data-kb-theme="dark"] .rating__description {
color: hsl(240 5% 65%);
}
Original file line number Diff line number Diff line change
@@ -1,44 +1,42 @@
import { Index, createSignal } from "solid-js";
import { RatingGroup } from "../../../../packages/core/src/rating-group";
import { Rating } from "../../../../packages/core/src/rating";

import style from "./rating-group.module.css";
import style from "./rating.module.css";

export function BasicExample() {
return (
<RatingGroup class={style["rating-group"]}>
<RatingGroup.Label class={style["rating-group__label"]}>
Rate Us:
</RatingGroup.Label>
<RatingGroup.Control class={style["rating-group__control"]}>
<Rating class={style.rating}>
<Rating.Label class={style.rating__label}>Rate Us:</Rating.Label>
<Rating.Control class={style.rating__control}>
<Index each={Array(5)}>
{(_) => (
<RatingGroup.Item class={style["rating-group-item"]}>
<RatingGroup.ItemControl>
<Rating.Item class={style["rating-item"]}>
<Rating.ItemControl>
<StarIcon />
</RatingGroup.ItemControl>
</RatingGroup.Item>
</Rating.ItemControl>
</Rating.Item>
)}
</Index>
</RatingGroup.Control>
</RatingGroup>
</Rating.Control>
</Rating>
);
}

export function DefaultValueExample() {
return (
<RatingGroup class={style["rating-group"]} defaultValue={3}>
<RatingGroup.Control class={style["rating-group__control"]}>
<Rating class={style.rating} defaultValue={3}>
<Rating.Control class={style.rating__control}>
<Index each={Array(5)}>
{(_) => (
<RatingGroup.Item class={style["rating-group-item"]}>
<RatingGroup.ItemControl>
<Rating.Item class={style["rating-item"]}>
<Rating.ItemControl>
<StarIcon />
</RatingGroup.ItemControl>
</RatingGroup.Item>
</Rating.ItemControl>
</Rating.Item>
)}
</Index>
</RatingGroup.Control>
</RatingGroup>
</Rating.Control>
</Rating>
);
}

Expand All @@ -47,98 +45,90 @@ export function ControlledExample() {

return (
<>
<RatingGroup
class={style["rating-group"]}
value={value()}
onChange={setValue}
>
<RatingGroup.Control class={style["rating-group__control"]}>
<Rating class={style.rating} value={value()} onChange={setValue}>
<Rating.Control class={style.rating__control}>
<Index each={Array(5)}>
{(_) => (
<RatingGroup.Item class={style["rating-group-item"]}>
<RatingGroup.ItemControl>
<Rating.Item class={style["rating-item"]}>
<Rating.ItemControl>
<StarIcon />
</RatingGroup.ItemControl>
</RatingGroup.Item>
</Rating.ItemControl>
</Rating.Item>
)}
</Index>
</RatingGroup.Control>
</RatingGroup>
</Rating.Control>
</Rating>
<p class="not-prose text-sm mt-4">Your rating is: {value()}/5</p>
</>
);
}

export function HalfRatingsExample() {
return (
<RatingGroup class={style["rating-group"]} allowHalf>
<RatingGroup.Control class={style["rating-group__control"]}>
<Rating class={style.rating} allowHalf>
<Rating.Control class={style.rating__control}>
<Index each={Array(5)}>
{(_) => (
<RatingGroup.Item class={style["rating-group-item"]}>
<RatingGroup.ItemControl>
<Rating.Item class={style["rating-item"]}>
<Rating.ItemControl>
{(state) => (state.half() ? <StarHalfIcon /> : <StarIcon />)}
</RatingGroup.ItemControl>
</RatingGroup.Item>
</Rating.ItemControl>
</Rating.Item>
)}
</Index>
</RatingGroup.Control>
</RatingGroup>
</Rating.Control>
</Rating>
);
}

export function DescriptionExample() {
return (
<RatingGroup class={style["rating-group"]}>
<RatingGroup.Label class={style["rating-group__label"]}>
Rate Us:
</RatingGroup.Label>
<RatingGroup.Control class={style["rating-group__control"]}>
<Rating class={style.rating}>
<Rating.Label class={style.rating__label}>Rate Us:</Rating.Label>
<Rating.Control class={style.rating__control}>
<Index each={Array(5)}>
{(_) => (
<RatingGroup.Item class={style["rating-group-item"]}>
<RatingGroup.ItemControl>
<Rating.Item class={style["rating-item"]}>
<Rating.ItemControl>
<StarIcon />
</RatingGroup.ItemControl>
</RatingGroup.Item>
</Rating.ItemControl>
</Rating.Item>
)}
</Index>
</RatingGroup.Control>
<RatingGroup.Description class={style["rating-group__description"]}>
</Rating.Control>
<Rating.Description class={style.rating__description}>
Rate your experience with us.
</RatingGroup.Description>
</RatingGroup>
</Rating.Description>
</Rating>
);
}

export function ErrorMessageExample() {
const [value, setValue] = createSignal(0);

return (
<RatingGroup
class={style["rating-group"]}
<Rating
class={style.rating}
value={value()}
onChange={setValue}
validationState={value() === 0 ? "invalid" : "valid"}
>
<RatingGroup.Label class={style["rating-group__label"]}>
Rate Us:
</RatingGroup.Label>
<RatingGroup.Control class={style["rating-group__control"]}>
<Rating.Label class={style.rating__label}>Rate Us:</Rating.Label>
<Rating.Control class={style.rating__control}>
<Index each={Array(5)}>
{(_) => (
<RatingGroup.Item class={style["rating-group-item"]}>
<RatingGroup.ItemControl>
<Rating.Item class={style["rating-item"]}>
<Rating.ItemControl>
<StarIcon />
</RatingGroup.ItemControl>
</RatingGroup.Item>
</Rating.ItemControl>
</Rating.Item>
)}
</Index>
</RatingGroup.Control>
<RatingGroup.ErrorMessage class={style["rating-group__error-message"]}>
</Rating.Control>
<Rating.ErrorMessage class={style["rating__error-message"]}>
Please select a rating between 1 and 5.
</RatingGroup.ErrorMessage>
</RatingGroup>
</Rating.ErrorMessage>
</Rating>
);
}

Expand All @@ -160,20 +150,20 @@ export function HTMLFormExample() {
onSubmit={onSubmit}
class="flex flex-col items-center space-y-6"
>
<RatingGroup class={style["rating-group"]} name="rate">
<RatingGroup.Control class={style["rating-group__control"]}>
<Rating class={style.rating} name="rate">
<Rating.Control class={style.rating__control}>
<Index each={Array(5)}>
{(_) => (
<RatingGroup.Item class={style["rating-group-item"]}>
<RatingGroup.ItemControl>
<Rating.Item class={style["rating-item"]}>
<Rating.ItemControl>
<StarIcon />
</RatingGroup.ItemControl>
</RatingGroup.Item>
</Rating.ItemControl>
</Rating.Item>
)}
</Index>
</RatingGroup.Control>
<RatingGroup.HiddenInput />
</RatingGroup>
</Rating.Control>
<Rating.HiddenInput />
</Rating>
<div class="flex space-x-2">
<button type="reset" class="kb-button">
Reset
Expand Down
4 changes: 2 additions & 2 deletions apps/docs/src/routes/docs/core.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -157,8 +157,8 @@ const CORE_NAV_SECTIONS: NavSection[] = [
href: "/docs/core/components/radio-group",
},
{
title: "Rating Group",
href: "/docs/core/components/rating-group",
title: "Rating",
href: "/docs/core/components/rating",
status: "unreleased",
},
{
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/src/routes/docs/core/components/color-area.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ The color area consists of:
<TabsSnippets.Content value="index.tsx">
```tsx
import { ColorArea } from "@kobalte/core/color-area";
import { parseColor } from "@kobalte/utils";
import { parseColor } from "@kobalte/core/colors";
import "./style.css";

function App() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ The color channel field consists of:
<TabsSnippets.Content value="index.tsx">
```tsx
import { ColorChannelField } from "@kobalte/core/color-channel-field";
import { parseColor } from "@kobalte/utils";
import { parseColor } from "@kobalte/core/colors";
import "./style.css";

function App() {
Expand Down
10 changes: 5 additions & 5 deletions apps/docs/src/routes/docs/core/components/color-slider.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ The color slider consists of:
<TabsSnippets.Content value="index.tsx">
```tsx
import { ColorSlider } from "@kobalte/core/color-slider";
import { parseColor } from "@kobalte/utils";
import { parseColor } from "@kobalte/core/colors";
import "./style.css";

function App() {
Expand Down Expand Up @@ -151,7 +151,7 @@ This must be one of the channels included in the color value, for example, for R
<TabsSnippets.Content value="index.tsx">
```tsx
import { ColorSlider } from "@kobalte/core/color-slider";
import { parseColor } from "@kobalte/utils";
import { parseColor } from "@kobalte/core/colors";
import "./style.css";

function App() {
Expand Down Expand Up @@ -232,7 +232,7 @@ This must be one of the channels included in the color value, for example, for R
```tsx
import { createSignal } from "solid-js";
import { ColorSlider } from "@kobalte/core/color-slider";
import { parseColor } from "@kobalte/utils";
import { parseColor } from "@kobalte/core/colors";
import "./style.css";

function App() {
Expand Down Expand Up @@ -313,7 +313,7 @@ This must be one of the channels included in the color value, for example, for R
<TabsSnippets.Content value="index.tsx">
```tsx
import { ColorSlider } from "@kobalte/core/color-slider";
import { parseColor } from "@kobalte/utils";
import { parseColor } from "@kobalte/core/colors";
import "./style.css";

function App() {
Expand Down Expand Up @@ -393,7 +393,7 @@ This must be one of the channels included in the color value, for example, for R
<TabsSnippets.Content value="index.tsx">
```tsx
import { ColorSlider } from "@kobalte/core/color-slider";
import { parseColor } from "@kobalte/utils";
import { parseColor } from "@kobalte/core/colors";
import "./style.css";

function App() {
Expand Down
Loading