@cl-light-ds/ui 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -45
- package/package.json +1 -1
- package/src/components/accordion/Accordion.astro +248 -248
- package/src/components/accordion/AccordionContent.astro +26 -26
- package/src/components/accordion/AccordionItem.astro +36 -36
- package/src/components/accordion/AccordionTrigger.astro +118 -118
- package/src/components/alert/Alert.astro +167 -167
- package/src/components/alert/AlertDescription.astro +24 -24
- package/src/components/alert/AlertTitle.astro +24 -24
- package/src/components/avatar/Avatar.astro +197 -197
- package/src/components/avatar/AvatarBadge.astro +44 -44
- package/src/components/avatar/AvatarFallback.astro +26 -26
- package/src/components/avatar/AvatarGroup.astro +26 -26
- package/src/components/avatar/AvatarGroupCount.astro +30 -30
- package/src/components/avatar/AvatarImage.astro +46 -46
- package/src/components/badge/Badge.astro +167 -167
- package/src/components/breadcrumb/Breadcrumb.astro +76 -76
- package/src/components/breadcrumb/BreadcrumbItem.astro +32 -32
- package/src/components/breadcrumb/BreadcrumbList.astro +26 -26
- package/src/components/breadcrumb/BreadcrumbSeparator.astro +26 -26
- package/src/components/button/Button.astro +233 -233
- package/src/components/button-group/ButtonGroup.astro +130 -130
- package/src/components/button-group/ButtonGroupSeparator.astro +30 -30
- package/src/components/button-group/ButtonGroupText.astro +21 -21
- package/src/components/card/Card.astro +182 -182
- package/src/components/card/CardAction.astro +26 -26
- package/src/components/card/CardContent.astro +28 -28
- package/src/components/card/CardDescription.astro +28 -28
- package/src/components/card/CardFooter.astro +24 -24
- package/src/components/card/CardHeader.astro +30 -30
- package/src/components/card/CardMedia.astro +27 -27
- package/src/components/card/CardOverlay.astro +32 -32
- package/src/components/card/CardTitle.astro +21 -21
- package/src/components/carousel/Carousel.astro +106 -106
- package/src/components/carousel/CarouselSlide.astro +22 -22
- package/src/components/checkbox/Checkbox.astro +159 -159
- package/src/components/collapsible/Collapsible.astro +202 -202
- package/src/components/collapsible/CollapsibleContent.astro +36 -36
- package/src/components/collapsible/CollapsibleTrigger.astro +34 -34
- package/src/components/combobox/Combobox.astro +365 -365
- package/src/components/combobox/ComboboxContent.astro +37 -37
- package/src/components/combobox/ComboboxEmpty.astro +18 -18
- package/src/components/combobox/ComboboxGroup.astro +19 -19
- package/src/components/combobox/ComboboxInput.astro +74 -74
- package/src/components/combobox/ComboboxItem.astro +39 -39
- package/src/components/combobox/ComboboxLabel.astro +18 -18
- package/src/components/combobox/ComboboxList.astro +21 -21
- package/src/components/combobox/ComboboxSeparator.astro +17 -17
- package/src/components/combobox/ComboboxTrigger.astro +30 -30
- package/src/components/combobox/ComboboxValue.astro +22 -22
- package/src/components/date/Date.astro +137 -137
- package/src/components/dialog/Dialog.astro +196 -196
- package/src/components/dialog/DialogClose.astro +23 -23
- package/src/components/dialog/DialogContent.astro +42 -42
- package/src/components/dialog/DialogDescription.astro +18 -18
- package/src/components/dialog/DialogFooter.astro +18 -18
- package/src/components/dialog/DialogHeader.astro +18 -18
- package/src/components/dialog/DialogOverlay.astro +19 -19
- package/src/components/dialog/DialogTitle.astro +18 -18
- package/src/components/dialog/DialogTrigger.astro +37 -37
- package/src/components/dropdown-menu/DropdownMenu.astro +226 -226
- package/src/components/dropdown-menu/DropdownMenuCheckboxItem.astro +114 -114
- package/src/components/dropdown-menu/DropdownMenuContent.astro +42 -42
- package/src/components/dropdown-menu/DropdownMenuGroup.astro +19 -19
- package/src/components/dropdown-menu/DropdownMenuItem.astro +220 -220
- package/src/components/dropdown-menu/DropdownMenuLabel.astro +20 -20
- package/src/components/dropdown-menu/DropdownMenuRadioItem.astro +101 -101
- package/src/components/dropdown-menu/DropdownMenuSeparator.astro +18 -18
- package/src/components/dropdown-menu/DropdownMenuShortcut.astro +18 -18
- package/src/components/dropdown-menu/DropdownMenuTrigger.astro +49 -49
- package/src/components/field/Field.astro +664 -664
- package/src/components/field/FieldContent.astro +20 -20
- package/src/components/field/FieldDescription.astro +22 -22
- package/src/components/field/FieldError.astro +51 -51
- package/src/components/field/FieldGroup.astro +20 -20
- package/src/components/field/FieldLabel.astro +22 -22
- package/src/components/field/FieldLegend.astro +23 -23
- package/src/components/field/FieldSeparator.astro +30 -30
- package/src/components/field/FieldSet.astro +20 -20
- package/src/components/field/FieldTitle.astro +20 -20
- package/src/components/hover-card/HoverCard.astro +235 -235
- package/src/components/hover-card/HoverCardContent.astro +54 -54
- package/src/components/hover-card/HoverCardTrigger.astro +38 -38
- package/src/components/input/Input.astro +130 -130
- package/src/components/input-group/InputGroup.astro +135 -135
- package/src/components/input-group/InputGroupAddon.astro +49 -49
- package/src/components/input-group/InputGroupButton.astro +58 -58
- package/src/components/input-group/InputGroupInput.astro +18 -18
- package/src/components/input-group/InputGroupText.astro +21 -21
- package/src/components/input-group/InputGroupTextarea.astro +17 -17
- package/src/components/item/Item.astro +122 -122
- package/src/components/item/ItemActions.astro +21 -21
- package/src/components/item/ItemContent.astro +25 -25
- package/src/components/item/ItemDescription.astro +25 -25
- package/src/components/item/ItemFooter.astro +24 -24
- package/src/components/item/ItemGroup.astro +24 -24
- package/src/components/item/ItemHeader.astro +24 -24
- package/src/components/item/ItemMedia.astro +47 -47
- package/src/components/item/ItemSeparator.astro +21 -21
- package/src/components/item/ItemTitle.astro +25 -25
- package/src/components/kbd/Kbd.astro +145 -145
- package/src/components/kbd/KbdGroup.astro +55 -55
- package/src/components/label/Label.astro +97 -97
- package/src/components/link-group/LinkGroup.astro +67 -67
- package/src/components/link-group/LinkGroupItem.astro +32 -32
- package/src/components/link-group/LinkGroupList.astro +25 -25
- package/src/components/link-group/LinkGroupTitle.astro +22 -22
- package/src/components/marquee/Marquee.astro +119 -119
- package/src/components/native-select/NativeSelect.astro +125 -125
- package/src/components/native-select/NativeSelectOptGroup.astro +14 -14
- package/src/components/navigation-menu/NavigationMenu.astro +414 -414
- package/src/components/navigation-menu/NavigationMenuContent.astro +37 -37
- package/src/components/navigation-menu/NavigationMenuIndicator.astro +24 -24
- package/src/components/navigation-menu/NavigationMenuItem.astro +22 -22
- package/src/components/navigation-menu/NavigationMenuLink.astro +18 -18
- package/src/components/navigation-menu/NavigationMenuList.astro +21 -21
- package/src/components/navigation-menu/NavigationMenuPositioner.astro +44 -44
- package/src/components/navigation-menu/NavigationMenuTrigger.astro +30 -30
- package/src/components/navigation-menu/NavigationMenuViewport.astro +19 -19
- package/src/components/popover/CHANGELOG.md +17 -2
- package/src/components/popover/Popover.astro +211 -210
- package/src/components/popover/PopoverClose.astro +18 -18
- package/src/components/popover/PopoverContent.astro +50 -49
- package/src/components/popover/PopoverDescription.astro +18 -18
- package/src/components/popover/PopoverHeader.astro +18 -18
- package/src/components/popover/PopoverTitle.astro +18 -18
- package/src/components/popover/PopoverTrigger.astro +35 -29
- package/src/components/radio-group/CHANGELOG.md +23 -1
- package/src/components/radio-group/RadioGroup.astro +81 -81
- package/src/components/radio-group/RadioGroupItem.astro +51 -42
- package/src/components/select/Select.astro +373 -373
- package/src/components/select/SelectContent.astro +91 -91
- package/src/components/select/SelectGroup.astro +19 -19
- package/src/components/select/SelectItem.astro +48 -48
- package/src/components/select/SelectLabel.astro +18 -18
- package/src/components/select/SelectSeparator.astro +17 -17
- package/src/components/select/SelectTrigger.astro +34 -34
- package/src/components/select/SelectValue.astro +22 -22
- package/src/components/separator/Separator.astro +60 -60
- package/src/components/skeleton/Skeleton.astro +121 -121
- package/src/components/slider/Slider.astro +198 -198
- package/src/components/spinner/CHANGELOG.md +14 -1
- package/src/components/spinner/Spinner.astro +135 -134
- package/src/components/sticky-surface/StickySurface.astro +152 -152
- package/src/components/switch/CHANGELOG.md +20 -0
- package/src/components/switch/Switch.astro +106 -106
- package/src/components/table/CHANGELOG.md +21 -2
- package/src/components/table/Table.astro +251 -250
- package/src/components/table/TableBody.astro +18 -18
- package/src/components/table/TableCaption.astro +17 -17
- package/src/components/table/TableCell.astro +21 -21
- package/src/components/table/TableFooter.astro +21 -21
- package/src/components/table/TableHead.astro +21 -21
- package/src/components/table/TableHeader.astro +17 -17
- package/src/components/table/TableRow.astro +21 -21
- package/src/components/tabs/Tabs.astro +306 -306
- package/src/components/tabs/TabsContent.astro +47 -47
- package/src/components/tabs/TabsList.astro +69 -69
- package/src/components/tabs/TabsTrigger.astro +40 -40
- package/src/components/textarea/CHANGELOG.md +18 -1
- package/src/components/textarea/Textarea.astro +58 -36
- package/src/components/toggle/CHANGELOG.md +19 -1
- package/src/components/toggle/Toggle.astro +150 -138
- package/src/components/toggle-group/CHANGELOG.md +14 -1
- package/src/components/toggle-group/ToggleGroup.astro +236 -224
- package/src/components/toggle-group/ToggleGroupItem.astro +48 -48
- package/src/components/tooltip/CHANGELOG.md +19 -2
- package/src/components/tooltip/Tooltip.astro +357 -331
- package/src/components/tooltip/TooltipContent.astro +85 -60
- package/src/components/tooltip/TooltipTrigger.astro +34 -34
- package/src/lib/toggle-shared.ts +3 -2
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { HTMLAttributes } from "astro/types";
|
|
3
|
-
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
4
|
-
import { cva } from "class-variance-authority";
|
|
5
|
-
|
|
6
|
-
interface Props extends HTMLAttributes<"div"> {
|
|
7
|
-
class?: string;
|
|
8
|
-
position?: "item-aligned" | "popper";
|
|
9
|
-
align?: "start" | "center" | "end";
|
|
10
|
-
alignOffset?: number;
|
|
11
|
-
side?: "top" | "bottom";
|
|
12
|
-
sideOffset?: number;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const {
|
|
16
|
-
class: className = "",
|
|
17
|
-
position = "item-aligned",
|
|
18
|
-
align = "center",
|
|
19
|
-
alignOffset = 0,
|
|
20
|
-
side = "bottom",
|
|
21
|
-
sideOffset = 4,
|
|
22
|
-
...rest
|
|
23
|
-
} = Astro.props as Props;
|
|
24
|
-
|
|
25
|
-
const contentVariants = cva(
|
|
26
|
-
[
|
|
27
|
-
"group/select-content relative isolate z-50",
|
|
28
|
-
"origin-(--transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none",
|
|
29
|
-
],
|
|
30
|
-
{
|
|
31
|
-
variants: {
|
|
32
|
-
position: {
|
|
33
|
-
"item-aligned": "",
|
|
34
|
-
popper: "",
|
|
35
|
-
},
|
|
36
|
-
side: {
|
|
37
|
-
top: "",
|
|
38
|
-
bottom: "",
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
defaultVariants: {
|
|
42
|
-
position: "item-aligned",
|
|
43
|
-
side: "bottom",
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
);
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
<div
|
|
50
|
-
{...rest}
|
|
51
|
-
hidden
|
|
52
|
-
data-slot="select-content"
|
|
53
|
-
data-position={position}
|
|
54
|
-
data-align-trigger={position === "item-aligned"}
|
|
55
|
-
data-align={align}
|
|
56
|
-
data-align-offset={alignOffset}
|
|
57
|
-
data-side={side}
|
|
58
|
-
data-side-offset={sideOffset}
|
|
59
|
-
class={cn(
|
|
60
|
-
"bg-popover text-popover-foreground ring-foreground/10 min-w-36 rounded-md shadow-md ring-1 rounded-lg",
|
|
61
|
-
contentVariants({ position, side }),
|
|
62
|
-
"max-h-(--available-height) w-(--anchor-width)",
|
|
63
|
-
className,
|
|
64
|
-
)}
|
|
65
|
-
>
|
|
66
|
-
<div
|
|
67
|
-
data-slot="select-scroll-up-button"
|
|
68
|
-
class="bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4 top-0 w-full"
|
|
69
|
-
hidden
|
|
70
|
-
>
|
|
71
|
-
<slot name="scroll-up"
|
|
72
|
-
><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="size-4"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m18 15l-6-6l-6 6"/></svg></slot
|
|
73
|
-
>
|
|
74
|
-
</div>
|
|
75
|
-
<div
|
|
76
|
-
data-slot="select-viewport"
|
|
77
|
-
data-position={position}
|
|
78
|
-
class="max-h-[var(--select-content-available-height,300px)] flex flex-col gap-1 overflow-x-hidden overflow-y-auto p-1"
|
|
79
|
-
>
|
|
80
|
-
<slot />
|
|
81
|
-
</div>
|
|
82
|
-
<div
|
|
83
|
-
data-slot="select-scroll-down-button"
|
|
84
|
-
class="bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4 bottom-0 w-full"
|
|
85
|
-
hidden
|
|
86
|
-
>
|
|
87
|
-
<slot name="scroll-down"
|
|
88
|
-
><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="size-4"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></svg></slot
|
|
89
|
-
>
|
|
90
|
-
</div>
|
|
91
|
-
</div>
|
|
1
|
+
---
|
|
2
|
+
import type { HTMLAttributes } from "astro/types";
|
|
3
|
+
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
|
|
6
|
+
interface Props extends HTMLAttributes<"div"> {
|
|
7
|
+
class?: string;
|
|
8
|
+
position?: "item-aligned" | "popper";
|
|
9
|
+
align?: "start" | "center" | "end";
|
|
10
|
+
alignOffset?: number;
|
|
11
|
+
side?: "top" | "bottom";
|
|
12
|
+
sideOffset?: number;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const {
|
|
16
|
+
class: className = "",
|
|
17
|
+
position = "item-aligned",
|
|
18
|
+
align = "center",
|
|
19
|
+
alignOffset = 0,
|
|
20
|
+
side = "bottom",
|
|
21
|
+
sideOffset = 4,
|
|
22
|
+
...rest
|
|
23
|
+
} = Astro.props as Props;
|
|
24
|
+
|
|
25
|
+
const contentVariants = cva(
|
|
26
|
+
[
|
|
27
|
+
"group/select-content relative isolate z-50",
|
|
28
|
+
"origin-(--transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none",
|
|
29
|
+
],
|
|
30
|
+
{
|
|
31
|
+
variants: {
|
|
32
|
+
position: {
|
|
33
|
+
"item-aligned": "",
|
|
34
|
+
popper: "",
|
|
35
|
+
},
|
|
36
|
+
side: {
|
|
37
|
+
top: "",
|
|
38
|
+
bottom: "",
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
defaultVariants: {
|
|
42
|
+
position: "item-aligned",
|
|
43
|
+
side: "bottom",
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
);
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
<div
|
|
50
|
+
{...rest}
|
|
51
|
+
hidden
|
|
52
|
+
data-slot="select-content"
|
|
53
|
+
data-position={position}
|
|
54
|
+
data-align-trigger={position === "item-aligned"}
|
|
55
|
+
data-align={align}
|
|
56
|
+
data-align-offset={alignOffset}
|
|
57
|
+
data-side={side}
|
|
58
|
+
data-side-offset={sideOffset}
|
|
59
|
+
class={cn(
|
|
60
|
+
"bg-popover text-popover-foreground ring-foreground/10 min-w-36 rounded-md shadow-md ring-1 rounded-lg",
|
|
61
|
+
contentVariants({ position, side }),
|
|
62
|
+
"max-h-(--available-height) w-(--anchor-width)",
|
|
63
|
+
className,
|
|
64
|
+
)}
|
|
65
|
+
>
|
|
66
|
+
<div
|
|
67
|
+
data-slot="select-scroll-up-button"
|
|
68
|
+
class="bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4 top-0 w-full"
|
|
69
|
+
hidden
|
|
70
|
+
>
|
|
71
|
+
<slot name="scroll-up"
|
|
72
|
+
><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="size-4"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m18 15l-6-6l-6 6"/></svg></slot
|
|
73
|
+
>
|
|
74
|
+
</div>
|
|
75
|
+
<div
|
|
76
|
+
data-slot="select-viewport"
|
|
77
|
+
data-position={position}
|
|
78
|
+
class="max-h-[var(--select-content-available-height,300px)] flex flex-col gap-1 overflow-x-hidden overflow-y-auto p-1"
|
|
79
|
+
>
|
|
80
|
+
<slot />
|
|
81
|
+
</div>
|
|
82
|
+
<div
|
|
83
|
+
data-slot="select-scroll-down-button"
|
|
84
|
+
class="bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4 bottom-0 w-full"
|
|
85
|
+
hidden
|
|
86
|
+
>
|
|
87
|
+
<slot name="scroll-down"
|
|
88
|
+
><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="size-4"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></svg></slot
|
|
89
|
+
>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { HTMLAttributes } from "astro/types";
|
|
3
|
-
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
4
|
-
|
|
5
|
-
interface Props extends HTMLAttributes<"div"> {
|
|
6
|
-
class?: string;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const { class: className = "", ...rest } = Astro.props as Props;
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
<div
|
|
13
|
-
{...rest}
|
|
14
|
-
role="group"
|
|
15
|
-
data-slot="select-group"
|
|
16
|
-
class={cn("scroll-my-1 p-1", className)}
|
|
17
|
-
>
|
|
18
|
-
<slot />
|
|
19
|
-
</div>
|
|
1
|
+
---
|
|
2
|
+
import type { HTMLAttributes } from "astro/types";
|
|
3
|
+
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
4
|
+
|
|
5
|
+
interface Props extends HTMLAttributes<"div"> {
|
|
6
|
+
class?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { class: className = "", ...rest } = Astro.props as Props;
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<div
|
|
13
|
+
{...rest}
|
|
14
|
+
role="group"
|
|
15
|
+
data-slot="select-group"
|
|
16
|
+
class={cn("scroll-my-1 p-1", className)}
|
|
17
|
+
>
|
|
18
|
+
<slot />
|
|
19
|
+
</div>
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { HTMLAttributes } from "astro/types";
|
|
3
|
-
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
4
|
-
|
|
5
|
-
interface Props extends HTMLAttributes<"div"> {
|
|
6
|
-
value: string;
|
|
7
|
-
disabled?: boolean;
|
|
8
|
-
class?: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const {
|
|
12
|
-
value,
|
|
13
|
-
disabled = false,
|
|
14
|
-
class: className = "",
|
|
15
|
-
...rest
|
|
16
|
-
} = Astro.props as Props;
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
<div
|
|
20
|
-
{...rest}
|
|
21
|
-
role="option"
|
|
22
|
-
tabindex={disabled ? -1 : 0}
|
|
23
|
-
data-slot="select-item"
|
|
24
|
-
data-value={value}
|
|
25
|
-
data-disabled={disabled ? "" : undefined}
|
|
26
|
-
class={cn(
|
|
27
|
-
"focus:bg-background-hover focus:text-foreground not-data-[variant=destructive]:focus:**:text-foreground gap-2 rounded-lg py-1.5 pr-8 pl-2 text-sm font-medium [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
28
|
-
"group/item relative flex w-full cursor-default items-center outline-hidden select-none",
|
|
29
|
-
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
30
|
-
"[&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
31
|
-
className,
|
|
32
|
-
)}
|
|
33
|
-
>
|
|
34
|
-
<span
|
|
35
|
-
data-slot="select-item-text"
|
|
36
|
-
class="flex flex-1 gap-2 shrink-0 whitespace-nowrap"
|
|
37
|
-
><slot /></span
|
|
38
|
-
>
|
|
39
|
-
|
|
40
|
-
<span
|
|
41
|
-
data-slot="select-item-indicator"
|
|
42
|
-
class="pointer-events-none absolute right-2 flex size-4 items-center justify-center"
|
|
43
|
-
>
|
|
44
|
-
<span class="hidden items-center justify-center group-data-[selected]/item:inline-flex">
|
|
45
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="size-4"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20 6L9 17l-5-5"/></svg>
|
|
46
|
-
</span>
|
|
47
|
-
</span>
|
|
48
|
-
</div>
|
|
1
|
+
---
|
|
2
|
+
import type { HTMLAttributes } from "astro/types";
|
|
3
|
+
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
4
|
+
|
|
5
|
+
interface Props extends HTMLAttributes<"div"> {
|
|
6
|
+
value: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
class?: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const {
|
|
12
|
+
value,
|
|
13
|
+
disabled = false,
|
|
14
|
+
class: className = "",
|
|
15
|
+
...rest
|
|
16
|
+
} = Astro.props as Props;
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<div
|
|
20
|
+
{...rest}
|
|
21
|
+
role="option"
|
|
22
|
+
tabindex={disabled ? -1 : 0}
|
|
23
|
+
data-slot="select-item"
|
|
24
|
+
data-value={value}
|
|
25
|
+
data-disabled={disabled ? "" : undefined}
|
|
26
|
+
class={cn(
|
|
27
|
+
"focus:bg-background-hover focus:text-foreground not-data-[variant=destructive]:focus:**:text-foreground gap-2 rounded-lg py-1.5 pr-8 pl-2 text-sm font-medium [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
28
|
+
"group/item relative flex w-full cursor-default items-center outline-hidden select-none",
|
|
29
|
+
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
30
|
+
"[&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
31
|
+
className,
|
|
32
|
+
)}
|
|
33
|
+
>
|
|
34
|
+
<span
|
|
35
|
+
data-slot="select-item-text"
|
|
36
|
+
class="flex flex-1 gap-2 shrink-0 whitespace-nowrap"
|
|
37
|
+
><slot /></span
|
|
38
|
+
>
|
|
39
|
+
|
|
40
|
+
<span
|
|
41
|
+
data-slot="select-item-indicator"
|
|
42
|
+
class="pointer-events-none absolute right-2 flex size-4 items-center justify-center"
|
|
43
|
+
>
|
|
44
|
+
<span class="hidden items-center justify-center group-data-[selected]/item:inline-flex">
|
|
45
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="size-4"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20 6L9 17l-5-5"/></svg>
|
|
46
|
+
</span>
|
|
47
|
+
</span>
|
|
48
|
+
</div>
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { HTMLAttributes } from "astro/types";
|
|
3
|
-
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
4
|
-
|
|
5
|
-
interface Props extends HTMLAttributes<"div"> {
|
|
6
|
-
class?: string;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const { class: className = "", ...rest } = Astro.props as Props;
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
<div
|
|
13
|
-
{...rest}
|
|
14
|
-
data-slot="select-label"
|
|
15
|
-
class={cn("text-muted-foreground px-2 py-1.5 text-xs", className)}
|
|
16
|
-
>
|
|
17
|
-
<slot />
|
|
18
|
-
</div>
|
|
1
|
+
---
|
|
2
|
+
import type { HTMLAttributes } from "astro/types";
|
|
3
|
+
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
4
|
+
|
|
5
|
+
interface Props extends HTMLAttributes<"div"> {
|
|
6
|
+
class?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { class: className = "", ...rest } = Astro.props as Props;
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<div
|
|
13
|
+
{...rest}
|
|
14
|
+
data-slot="select-label"
|
|
15
|
+
class={cn("text-muted-foreground px-2 py-1.5 text-xs", className)}
|
|
16
|
+
>
|
|
17
|
+
<slot />
|
|
18
|
+
</div>
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { HTMLAttributes } from "astro/types";
|
|
3
|
-
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
4
|
-
|
|
5
|
-
interface Props extends HTMLAttributes<"div"> {
|
|
6
|
-
class?: string;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const { class: className = "", ...rest } = Astro.props as Props;
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
<div
|
|
13
|
-
{...rest}
|
|
14
|
-
role="separator"
|
|
15
|
-
data-slot="select-separator"
|
|
16
|
-
class={cn("bg-border -mx-1 my-1 h-px pointer-events-none", className)}
|
|
17
|
-
/>
|
|
1
|
+
---
|
|
2
|
+
import type { HTMLAttributes } from "astro/types";
|
|
3
|
+
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
4
|
+
|
|
5
|
+
interface Props extends HTMLAttributes<"div"> {
|
|
6
|
+
class?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { class: className = "", ...rest } = Astro.props as Props;
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<div
|
|
13
|
+
{...rest}
|
|
14
|
+
role="separator"
|
|
15
|
+
data-slot="select-separator"
|
|
16
|
+
class={cn("bg-border -mx-1 my-1 h-px pointer-events-none", className)}
|
|
17
|
+
/>
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { HTMLAttributes } from "astro/types";
|
|
3
|
-
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
4
|
-
|
|
5
|
-
interface Props extends HTMLAttributes<"button"> {
|
|
6
|
-
class?: string;
|
|
7
|
-
size?: "sm" | "default" | "lg";
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const {
|
|
11
|
-
class: className = "",
|
|
12
|
-
size = "default",
|
|
13
|
-
...rest
|
|
14
|
-
} = Astro.props as Props;
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
<button
|
|
18
|
-
{...rest}
|
|
19
|
-
type="button"
|
|
20
|
-
data-slot="select-trigger"
|
|
21
|
-
data-size={size}
|
|
22
|
-
class={cn(
|
|
23
|
-
"border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-chart-1 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-lg border bg-transparent py-1 px-3 text-xs font-semibold shadow-xs transition-[color,box-shadow] aria-invalid:ring-3 data-[size=sm]:h-8 data-[size=default]:h-9 data-[size=lg]:h-10 *:data-[slot=select-value]:flex *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4",
|
|
24
|
-
"flex w-fit items-center justify-between whitespace-nowrap outline-none",
|
|
25
|
-
"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-muted disabled:text-muted-foreground",
|
|
26
|
-
"*:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center",
|
|
27
|
-
"[&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
28
|
-
className,
|
|
29
|
-
)}
|
|
30
|
-
>
|
|
31
|
-
<slot />
|
|
32
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="text-muted-foreground size-4 pointer-events-none"
|
|
33
|
-
data-slot="select-icon"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></svg>
|
|
34
|
-
</button>
|
|
1
|
+
---
|
|
2
|
+
import type { HTMLAttributes } from "astro/types";
|
|
3
|
+
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
4
|
+
|
|
5
|
+
interface Props extends HTMLAttributes<"button"> {
|
|
6
|
+
class?: string;
|
|
7
|
+
size?: "sm" | "default" | "lg";
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const {
|
|
11
|
+
class: className = "",
|
|
12
|
+
size = "default",
|
|
13
|
+
...rest
|
|
14
|
+
} = Astro.props as Props;
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
<button
|
|
18
|
+
{...rest}
|
|
19
|
+
type="button"
|
|
20
|
+
data-slot="select-trigger"
|
|
21
|
+
data-size={size}
|
|
22
|
+
class={cn(
|
|
23
|
+
"border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-chart-1 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-lg border bg-transparent py-1 px-3 text-xs font-semibold shadow-xs transition-[color,box-shadow] aria-invalid:ring-3 data-[size=sm]:h-8 data-[size=default]:h-9 data-[size=lg]:h-10 *:data-[slot=select-value]:flex *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4",
|
|
24
|
+
"flex w-fit items-center justify-between whitespace-nowrap outline-none",
|
|
25
|
+
"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-muted disabled:text-muted-foreground",
|
|
26
|
+
"*:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center",
|
|
27
|
+
"[&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
28
|
+
className,
|
|
29
|
+
)}
|
|
30
|
+
>
|
|
31
|
+
<slot />
|
|
32
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="text-muted-foreground size-4 pointer-events-none"
|
|
33
|
+
data-slot="select-icon"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></svg>
|
|
34
|
+
</button>
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { HTMLAttributes } from "astro/types";
|
|
3
|
-
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
4
|
-
|
|
5
|
-
interface Props extends HTMLAttributes<"span"> {
|
|
6
|
-
class?: string;
|
|
7
|
-
placeholder?: string;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const {
|
|
11
|
-
class: className = "",
|
|
12
|
-
placeholder = "",
|
|
13
|
-
...rest
|
|
14
|
-
} = Astro.props as Props;
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
<span
|
|
18
|
-
{...rest}
|
|
19
|
-
data-slot="select-value"
|
|
20
|
-
data-placeholder={placeholder}
|
|
21
|
-
class={cn("flex flex-1 text-left", className)}
|
|
22
|
-
>{placeholder}</span>
|
|
1
|
+
---
|
|
2
|
+
import type { HTMLAttributes } from "astro/types";
|
|
3
|
+
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
4
|
+
|
|
5
|
+
interface Props extends HTMLAttributes<"span"> {
|
|
6
|
+
class?: string;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const {
|
|
11
|
+
class: className = "",
|
|
12
|
+
placeholder = "",
|
|
13
|
+
...rest
|
|
14
|
+
} = Astro.props as Props;
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
<span
|
|
18
|
+
{...rest}
|
|
19
|
+
data-slot="select-value"
|
|
20
|
+
data-placeholder={placeholder}
|
|
21
|
+
class={cn("flex flex-1 text-left", className)}
|
|
22
|
+
>{placeholder}</span>
|
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
---
|
|
2
|
-
/**
|
|
3
|
-
* @component Separator
|
|
4
|
-
* @title Separator
|
|
5
|
-
* @description Visual separator for grouping content, supporting horizontal and vertical orientation.
|
|
6
|
-
* @status stable
|
|
7
|
-
* @figmaUrl https://www.figma.com/design/koxai7zw5vIuBzuVxe5T2l/bejamas-ui?node-id=2511-5829&t=YFStJ3V8fXEO8QD8-4
|
|
8
|
-
*
|
|
9
|
-
* @preview
|
|
10
|
-
* <div>
|
|
11
|
-
* <div class="space-y-1">
|
|
12
|
-
* <h4 class="text-sm leading-none font-medium">bejamas/ui</h4>
|
|
13
|
-
* <p class="text-muted-foreground text-sm">
|
|
14
|
-
* An open-source UI component library.
|
|
15
|
-
* </p>
|
|
16
|
-
* </div>
|
|
17
|
-
* <Separator class="my-4" />
|
|
18
|
-
* <div class="flex h-5 items-center space-x-4 text-sm">
|
|
19
|
-
* <div>Blog</div>
|
|
20
|
-
* <Separator orientation="vertical" />
|
|
21
|
-
* <div>Docs</div>
|
|
22
|
-
* <Separator orientation="vertical" />
|
|
23
|
-
* <div>Source</div>
|
|
24
|
-
* </div>
|
|
25
|
-
* </div>
|
|
26
|
-
*
|
|
27
|
-
* @usage
|
|
28
|
-
*
|
|
29
|
-
* ```astro nocollapse
|
|
30
|
-
* ---
|
|
31
|
-
* import { Separator } from '@bejamas/ui/components/separator';
|
|
32
|
-
* ---
|
|
33
|
-
*
|
|
34
|
-
* <Separator />
|
|
35
|
-
* <Separator orientation="vertical" />
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
40
|
-
|
|
41
|
-
const {
|
|
42
|
-
class: className = "",
|
|
43
|
-
orientation = "horizontal",
|
|
44
|
-
decorative = true,
|
|
45
|
-
...props
|
|
46
|
-
} = Astro.props;
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
<div
|
|
50
|
-
aria-orientation={orientation}
|
|
51
|
-
aria-hidden={decorative ? "true" : undefined}
|
|
52
|
-
class={cn(
|
|
53
|
-
"bg-border shrink-0",
|
|
54
|
-
orientation === "vertical" ? "h-full w-px" : "h-px w-full",
|
|
55
|
-
"shrink-0",
|
|
56
|
-
className,
|
|
57
|
-
)}
|
|
58
|
-
{...props}
|
|
59
|
-
>
|
|
60
|
-
</div>
|
|
1
|
+
---
|
|
2
|
+
/**
|
|
3
|
+
* @component Separator
|
|
4
|
+
* @title Separator
|
|
5
|
+
* @description Visual separator for grouping content, supporting horizontal and vertical orientation.
|
|
6
|
+
* @status stable
|
|
7
|
+
* @figmaUrl https://www.figma.com/design/koxai7zw5vIuBzuVxe5T2l/bejamas-ui?node-id=2511-5829&t=YFStJ3V8fXEO8QD8-4
|
|
8
|
+
*
|
|
9
|
+
* @preview
|
|
10
|
+
* <div>
|
|
11
|
+
* <div class="space-y-1">
|
|
12
|
+
* <h4 class="text-sm leading-none font-medium">bejamas/ui</h4>
|
|
13
|
+
* <p class="text-muted-foreground text-sm">
|
|
14
|
+
* An open-source UI component library.
|
|
15
|
+
* </p>
|
|
16
|
+
* </div>
|
|
17
|
+
* <Separator class="my-4" />
|
|
18
|
+
* <div class="flex h-5 items-center space-x-4 text-sm">
|
|
19
|
+
* <div>Blog</div>
|
|
20
|
+
* <Separator orientation="vertical" />
|
|
21
|
+
* <div>Docs</div>
|
|
22
|
+
* <Separator orientation="vertical" />
|
|
23
|
+
* <div>Source</div>
|
|
24
|
+
* </div>
|
|
25
|
+
* </div>
|
|
26
|
+
*
|
|
27
|
+
* @usage
|
|
28
|
+
*
|
|
29
|
+
* ```astro nocollapse
|
|
30
|
+
* ---
|
|
31
|
+
* import { Separator } from '@bejamas/ui/components/separator';
|
|
32
|
+
* ---
|
|
33
|
+
*
|
|
34
|
+
* <Separator />
|
|
35
|
+
* <Separator orientation="vertical" />
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
import { cn } from "@cl-light-ds/ui/lib/utils";
|
|
40
|
+
|
|
41
|
+
const {
|
|
42
|
+
class: className = "",
|
|
43
|
+
orientation = "horizontal",
|
|
44
|
+
decorative = true,
|
|
45
|
+
...props
|
|
46
|
+
} = Astro.props;
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
<div
|
|
50
|
+
aria-orientation={orientation}
|
|
51
|
+
aria-hidden={decorative ? "true" : undefined}
|
|
52
|
+
class={cn(
|
|
53
|
+
"bg-border shrink-0",
|
|
54
|
+
orientation === "vertical" ? "h-full w-px" : "h-px w-full",
|
|
55
|
+
"shrink-0",
|
|
56
|
+
className,
|
|
57
|
+
)}
|
|
58
|
+
{...props}
|
|
59
|
+
>
|
|
60
|
+
</div>
|