@codefast/ui 0.4.0-canary.4 → 0.4.0-canary.6
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/CHANGELOG.md +65 -0
- package/dist/components/accordion.mjs +1 -1
- package/dist/components/alert-dialog.mjs +2 -2
- package/dist/components/alert.mjs +1 -1
- package/dist/components/avatar.mjs +1 -1
- package/dist/components/calendar.mjs +5 -5
- package/dist/components/carousel.mjs +4 -4
- package/dist/components/checkbox-cards.mjs +6 -6
- package/dist/components/checkbox-group.mjs +6 -6
- package/dist/components/checkbox.mjs +6 -6
- package/dist/components/command.mjs +3 -3
- package/dist/components/context-menu.mjs +9 -9
- package/dist/components/dialog.mjs +2 -2
- package/dist/components/drawer.mjs +2 -2
- package/dist/components/dropdown-menu.mjs +9 -9
- package/dist/components/field.mjs +2 -2
- package/dist/components/input-otp.mjs +1 -1
- package/dist/components/item.mjs +1 -1
- package/dist/components/menubar.mjs +9 -9
- package/dist/components/native-select.mjs +2 -2
- package/dist/components/navigation-menu.mjs +4 -4
- package/dist/components/pagination.mjs +2 -2
- package/dist/components/radio-cards.mjs +1 -1
- package/dist/components/radio-group.mjs +2 -2
- package/dist/components/radio.mjs +1 -1
- package/dist/components/resizable.mjs +1 -1
- package/dist/components/select.mjs +4 -4
- package/dist/components/sheet.mjs +1 -1
- package/dist/components/sidebar.mjs +7 -7
- package/dist/components/switch.mjs +2 -2
- package/dist/components/table.mjs +2 -2
- package/dist/components/tabs.mjs +1 -1
- package/dist/components/toggle-group.mjs +1 -1
- package/dist/components/tooltip.mjs +1 -1
- package/dist/variants/alert.mjs +1 -1
- package/dist/variants/badge.mjs +1 -1
- package/dist/variants/button-group.mjs +2 -2
- package/dist/variants/button.mjs +4 -4
- package/dist/variants/input-group.mjs +3 -3
- package/dist/variants/input-number.mjs +3 -3
- package/dist/variants/scroll-area.mjs +1 -1
- package/dist/variants/sheet.mjs +2 -2
- package/dist/variants/sidebar.mjs +1 -1
- package/dist/variants/toggle.mjs +3 -3
- package/package.json +12 -12
- package/src/components/accordion.tsx +1 -1
- package/src/components/alert-dialog.tsx +2 -2
- package/src/components/alert.tsx +1 -1
- package/src/components/avatar.tsx +1 -1
- package/src/components/calendar.tsx +7 -7
- package/src/components/carousel.tsx +6 -6
- package/src/components/checkbox-cards.tsx +6 -5
- package/src/components/checkbox-group.tsx +5 -4
- package/src/components/checkbox.tsx +5 -4
- package/src/components/command.tsx +3 -3
- package/src/components/context-menu.tsx +9 -9
- package/src/components/dialog.tsx +2 -2
- package/src/components/drawer.tsx +2 -2
- package/src/components/dropdown-menu.tsx +9 -9
- package/src/components/field.tsx +2 -2
- package/src/components/input-otp.tsx +1 -1
- package/src/components/item.tsx +1 -1
- package/src/components/menubar.tsx +9 -9
- package/src/components/native-select.tsx +2 -2
- package/src/components/navigation-menu.tsx +4 -4
- package/src/components/pagination.tsx +2 -2
- package/src/components/radio-cards.tsx +1 -1
- package/src/components/radio-group.tsx +4 -2
- package/src/components/radio.tsx +1 -1
- package/src/components/resizable.tsx +1 -1
- package/src/components/select.tsx +4 -4
- package/src/components/sheet.tsx +1 -1
- package/src/components/sidebar.tsx +7 -7
- package/src/components/switch.tsx +2 -2
- package/src/components/table.tsx +2 -2
- package/src/components/tabs.tsx +2 -2
- package/src/components/toggle-group.tsx +1 -1
- package/src/components/tooltip.tsx +1 -1
- package/src/css/foundation/base.css +24 -0
- package/src/css/foundation/motion.css +48 -15
- package/src/css/foundation/source.css +7 -0
- package/src/css/foundation/tokens.css +36 -0
- package/src/css/foundation/variants.css +13 -5
- package/src/css/preset.css +8 -0
- package/src/css/style.css +8 -0
- package/src/css/themes/amber.css +29 -0
- package/src/css/themes/blue.css +29 -0
- package/src/css/themes/cyan.css +29 -0
- package/src/css/themes/emerald.css +29 -0
- package/src/css/themes/fuchsia.css +29 -0
- package/src/css/themes/gray.css +29 -0
- package/src/css/themes/green.css +29 -0
- package/src/css/themes/indigo.css +29 -0
- package/src/css/themes/lime.css +29 -0
- package/src/css/themes/neutral.css +29 -0
- package/src/css/themes/orange.css +29 -0
- package/src/css/themes/pink.css +29 -0
- package/src/css/themes/purple.css +29 -0
- package/src/css/themes/red.css +29 -0
- package/src/css/themes/rose.css +29 -0
- package/src/css/themes/sky.css +29 -0
- package/src/css/themes/slate.css +29 -0
- package/src/css/themes/stone.css +29 -0
- package/src/css/themes/teal.css +29 -0
- package/src/css/themes/violet.css +29 -0
- package/src/css/themes/yellow.css +29 -0
- package/src/css/themes/zinc.css +29 -0
- package/src/variants/alert.ts +1 -1
- package/src/variants/badge.ts +1 -1
- package/src/variants/button-group.ts +2 -2
- package/src/variants/button.ts +4 -4
- package/src/variants/input-group.ts +3 -3
- package/src/variants/input-number.ts +3 -3
- package/src/variants/scroll-area.ts +1 -1
- package/src/variants/sheet.ts +2 -2
- package/src/variants/sidebar.ts +1 -1
- package/src/variants/toggle.ts +3 -3
|
@@ -133,7 +133,7 @@ function MenubarSubTrigger({ children, className, inset, ...props }: MenubarSubT
|
|
|
133
133
|
return (
|
|
134
134
|
<MenubarPrimitive.SubTrigger
|
|
135
135
|
className={cn(
|
|
136
|
-
"flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none focus:bg-accent focus:text-accent-foreground data-inset:
|
|
136
|
+
"flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4",
|
|
137
137
|
className,
|
|
138
138
|
)}
|
|
139
139
|
data-inset={inset}
|
|
@@ -141,7 +141,7 @@ function MenubarSubTrigger({ children, className, inset, ...props }: MenubarSubT
|
|
|
141
141
|
{...props}
|
|
142
142
|
>
|
|
143
143
|
{children}
|
|
144
|
-
<ChevronRightIcon className="
|
|
144
|
+
<ChevronRightIcon className="ms-auto size-4 rtl:rotate-180" />
|
|
145
145
|
</MenubarPrimitive.SubTrigger>
|
|
146
146
|
);
|
|
147
147
|
}
|
|
@@ -228,7 +228,7 @@ function MenubarItem({ className, inset, variant = "default", ...props }: Menuba
|
|
|
228
228
|
return (
|
|
229
229
|
<MenubarPrimitive.Item
|
|
230
230
|
className={cn(
|
|
231
|
-
"group/menubar-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:
|
|
231
|
+
"group/menubar-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:ps-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!",
|
|
232
232
|
className,
|
|
233
233
|
)}
|
|
234
234
|
data-inset={inset}
|
|
@@ -258,14 +258,14 @@ function MenubarCheckboxItem({ checked, children, className, inset, ...props }:
|
|
|
258
258
|
<MenubarPrimitive.CheckboxItem
|
|
259
259
|
checked={checked}
|
|
260
260
|
className={cn(
|
|
261
|
-
"relative flex cursor-default items-center gap-2 rounded-md py-1.5
|
|
261
|
+
"relative flex cursor-default items-center gap-2 rounded-md py-1.5 ps-8 pe-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:ps-8 data-disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
262
262
|
className,
|
|
263
263
|
)}
|
|
264
264
|
data-inset={inset}
|
|
265
265
|
data-slot="menubar-checkbox-item"
|
|
266
266
|
{...props}
|
|
267
267
|
>
|
|
268
|
-
<span className="pointer-events-none absolute
|
|
268
|
+
<span className="pointer-events-none absolute start-2 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4">
|
|
269
269
|
<MenubarPrimitive.ItemIndicator>
|
|
270
270
|
<CheckIcon />
|
|
271
271
|
</MenubarPrimitive.ItemIndicator>
|
|
@@ -293,14 +293,14 @@ function MenubarRadioItem({ children, className, inset, ...props }: MenubarRadio
|
|
|
293
293
|
return (
|
|
294
294
|
<MenubarPrimitive.RadioItem
|
|
295
295
|
className={cn(
|
|
296
|
-
"relative flex cursor-default items-center gap-2 rounded-md py-1.5
|
|
296
|
+
"relative flex cursor-default items-center gap-2 rounded-md py-1.5 ps-8 pe-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:ps-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
297
297
|
className,
|
|
298
298
|
)}
|
|
299
299
|
data-inset={inset}
|
|
300
300
|
data-slot="menubar-radio-item"
|
|
301
301
|
{...props}
|
|
302
302
|
>
|
|
303
|
-
<span className="pointer-events-none absolute
|
|
303
|
+
<span className="pointer-events-none absolute start-2 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4">
|
|
304
304
|
<MenubarPrimitive.ItemIndicator>
|
|
305
305
|
<CheckIcon />
|
|
306
306
|
</MenubarPrimitive.ItemIndicator>
|
|
@@ -327,7 +327,7 @@ interface MenubarLabelProps extends ComponentProps<typeof MenubarPrimitive.Label
|
|
|
327
327
|
function MenubarLabel({ className, inset, ...props }: MenubarLabelProps): JSX.Element {
|
|
328
328
|
return (
|
|
329
329
|
<MenubarPrimitive.Label
|
|
330
|
-
className={cn("px-2 py-1.5 text-
|
|
330
|
+
className={cn("px-2 py-1.5 text-xs font-medium text-muted-foreground data-inset:ps-8", className)}
|
|
331
331
|
data-inset={inset}
|
|
332
332
|
data-slot="menubar-label"
|
|
333
333
|
{...props}
|
|
@@ -373,7 +373,7 @@ function MenubarShortcut({ className, ...props }: MenubarShortcutProps): JSX.Ele
|
|
|
373
373
|
return (
|
|
374
374
|
<span
|
|
375
375
|
className={cn(
|
|
376
|
-
"
|
|
376
|
+
"ms-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground",
|
|
377
377
|
className,
|
|
378
378
|
)}
|
|
379
379
|
data-slot="menubar-shortcut"
|
|
@@ -25,14 +25,14 @@ function NativeSelect({ className, size = "default", ...props }: NativeSelectPro
|
|
|
25
25
|
data-slot="native-select-wrapper"
|
|
26
26
|
>
|
|
27
27
|
<select
|
|
28
|
-
className="h-9 w-full min-w-0 appearance-none rounded-md border border-input bg-transparent py-1
|
|
28
|
+
className="h-9 w-full min-w-0 appearance-none rounded-md border border-input bg-transparent py-1 ps-2.5 pe-8 text-sm shadow-xs transition-[color,box-shadow] outline-none select-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=sm]:h-8 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40"
|
|
29
29
|
data-size={size}
|
|
30
30
|
data-slot="native-select"
|
|
31
31
|
{...props}
|
|
32
32
|
/>
|
|
33
33
|
<ChevronDownIcon
|
|
34
34
|
aria-hidden="true"
|
|
35
|
-
className="pointer-events-none absolute top-1/2
|
|
35
|
+
className="pointer-events-none absolute end-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground select-none"
|
|
36
36
|
data-slot="native-select-icon"
|
|
37
37
|
/>
|
|
38
38
|
</div>
|
|
@@ -98,7 +98,7 @@ function NavigationMenuTrigger({ children, className, ...props }: NavigationMenu
|
|
|
98
98
|
{children}{" "}
|
|
99
99
|
<ChevronDownIcon
|
|
100
100
|
aria-hidden="true"
|
|
101
|
-
className="relative top-px
|
|
101
|
+
className="relative top-px ms-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180"
|
|
102
102
|
/>
|
|
103
103
|
</NavigationMenuPrimitive.Trigger>
|
|
104
104
|
);
|
|
@@ -120,7 +120,7 @@ function NavigationMenuContent({ className, ...props }: NavigationMenuContentPro
|
|
|
120
120
|
return (
|
|
121
121
|
<NavigationMenuPrimitive.Content
|
|
122
122
|
className={cn(
|
|
123
|
-
"
|
|
123
|
+
"start-0 top-0 w-full p-2 pe-2.5 ease-snappy group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/10 group-data-[viewport=false]/navigation-menu:animation-duration-300 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:ease-exit data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none md:absolute md:w-auto group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 data-closed:ease-exit group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95",
|
|
124
124
|
className,
|
|
125
125
|
)}
|
|
126
126
|
data-slot="navigation-menu-content"
|
|
@@ -168,7 +168,7 @@ type NavigationMenuViewportProps = ComponentProps<typeof NavigationMenuPrimitive
|
|
|
168
168
|
*/
|
|
169
169
|
function NavigationMenuViewport({ className, ...props }: NavigationMenuViewportProps): JSX.Element {
|
|
170
170
|
return (
|
|
171
|
-
<div className="absolute top-full
|
|
171
|
+
<div className="absolute start-0 top-full isolate z-50 flex justify-center">
|
|
172
172
|
<NavigationMenuPrimitive.Viewport
|
|
173
173
|
className={cn(
|
|
174
174
|
"relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full origin-[top_center] overflow-hidden rounded-lg bg-popover text-popover-foreground shadow ring-1 ring-foreground/10 transition-[width,height] duration-100 ease-snappy md:w-(--radix-navigation-menu-viewport-width) data-open:animate-in data-open:animation-duration-100 data-open:zoom-in-90 data-closed:animate-out data-closed:ease-exit data-closed:animation-duration-100 data-closed:zoom-out-90",
|
|
@@ -203,7 +203,7 @@ function NavigationMenuIndicator({ className, ...props }: NavigationMenuIndicato
|
|
|
203
203
|
data-slot="navigation-menu-indicator"
|
|
204
204
|
{...props}
|
|
205
205
|
>
|
|
206
|
-
<div className="relative top-[60%] h-2 w-2 rotate-45 rounded-
|
|
206
|
+
<div className="relative top-[60%] h-2 w-2 rotate-45 rounded-ss-sm bg-border shadow-md" />
|
|
207
207
|
</NavigationMenuPrimitive.Indicator>
|
|
208
208
|
);
|
|
209
209
|
}
|
|
@@ -107,7 +107,7 @@ function PaginationPrevious({ className, text = "Previous", ...props }: Paginati
|
|
|
107
107
|
return (
|
|
108
108
|
<PaginationLink
|
|
109
109
|
aria-label="Go to previous page"
|
|
110
|
-
className={cn("
|
|
110
|
+
className={cn("ps-2!", className)}
|
|
111
111
|
data-slot="pagination-previous"
|
|
112
112
|
size="default"
|
|
113
113
|
{...props}
|
|
@@ -137,7 +137,7 @@ function PaginationNext({ className, text = "Next", ...props }: PaginationNextPr
|
|
|
137
137
|
return (
|
|
138
138
|
<PaginationLink
|
|
139
139
|
aria-label="Go to next page"
|
|
140
|
-
className={cn("
|
|
140
|
+
className={cn("pe-2!", className)}
|
|
141
141
|
data-slot="pagination-next"
|
|
142
142
|
size="default"
|
|
143
143
|
{...props}
|
|
@@ -50,7 +50,7 @@ function RadioCardsItem({ children, className, ...props }: RadioCardsItemProps):
|
|
|
50
50
|
className="flex size-4 items-center justify-center"
|
|
51
51
|
data-slot="radio-card-indicator"
|
|
52
52
|
>
|
|
53
|
-
<span className="absolute
|
|
53
|
+
<span className="absolute start-1/2 top-1/2 size-2 -translate-x-1/2 -translate-y-1/2 animate-in rounded-full bg-primary-foreground duration-control-indicator ease-spring zoom-in-50 rtl:translate-x-1/2" />
|
|
54
54
|
</RadioGroupPrimitive.Indicator>
|
|
55
55
|
</RadioGroupPrimitive.Item>
|
|
56
56
|
{children}
|
|
@@ -16,7 +16,9 @@ type RadioGroupProps = ComponentProps<typeof RadioGroupPrimitive.Root>;
|
|
|
16
16
|
* @since 0.3.16-canary.0
|
|
17
17
|
*/
|
|
18
18
|
function RadioGroup({ className, ...props }: RadioGroupProps): JSX.Element {
|
|
19
|
-
return
|
|
19
|
+
return (
|
|
20
|
+
<RadioGroupPrimitive.Root className={cn("flex flex-col gap-3", className)} data-slot="radio-group" {...props} />
|
|
21
|
+
);
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
/* -----------------------------------------------------------------------------
|
|
@@ -45,7 +47,7 @@ function RadioGroupItem({ className, ...props }: RadioGroupItemProps): JSX.Eleme
|
|
|
45
47
|
className="flex size-4 items-center justify-center"
|
|
46
48
|
data-slot="radio-group-indicator"
|
|
47
49
|
>
|
|
48
|
-
<span className="absolute
|
|
50
|
+
<span className="absolute start-1/2 top-1/2 size-2 -translate-x-1/2 -translate-y-1/2 animate-in rounded-full bg-primary-foreground duration-control-indicator ease-spring zoom-in-50 rtl:translate-x-1/2" />
|
|
49
51
|
</RadioGroupPrimitive.Indicator>
|
|
50
52
|
</RadioGroupPrimitive.Item>
|
|
51
53
|
);
|
package/src/components/radio.tsx
CHANGED
|
@@ -21,7 +21,7 @@ function Radio({ className, onChange, onValueChange, ...props }: RadioProps): JS
|
|
|
21
21
|
return (
|
|
22
22
|
<input
|
|
23
23
|
className={cn(
|
|
24
|
-
"peer relative flex size-4 shrink-0 appearance-none items-center justify-center rounded-full border border-input shadow-xs outline-none before:size-
|
|
24
|
+
"peer relative flex size-4 shrink-0 appearance-none items-center justify-center rounded-full border border-input bg-background shadow-xs outline-none before:size-2 before:scale-0 before:rounded-full before:bg-primary-foreground before:transition-transform before:duration-control-indicator before:ease-spring after:absolute after:-inset-x-3 after:-inset-y-2 checked:border-primary checked:bg-primary checked:before:scale-100 focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:not-checked:border-ring disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 checked:aria-invalid:bg-destructive dark:not-checked:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",
|
|
25
25
|
className,
|
|
26
26
|
)}
|
|
27
27
|
data-slot="radio"
|
|
@@ -59,7 +59,7 @@ function ResizableSeparator({ className, withHandle, ...props }: ResizableSepara
|
|
|
59
59
|
return (
|
|
60
60
|
<ResizablePrimitive.Separator
|
|
61
61
|
className={cn(
|
|
62
|
-
"relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:
|
|
62
|
+
"relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:start-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:start-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 rtl:after:translate-x-1/2 rtl:aria-[orientation=horizontal]:after:-translate-x-0 [&[aria-orientation=horizontal]>div]:rotate-90",
|
|
63
63
|
className,
|
|
64
64
|
)}
|
|
65
65
|
data-slot="resizable-separator"
|
|
@@ -70,7 +70,7 @@ function SelectTrigger({ children, className, size = "default", ...props }: Sele
|
|
|
70
70
|
return (
|
|
71
71
|
<SelectPrimitive.Trigger
|
|
72
72
|
className={cn(
|
|
73
|
-
"flex w-fit items-center justify-between gap-1.5 rounded-md border border-input bg-transparent py-2
|
|
73
|
+
"flex w-fit items-center justify-between gap-1.5 rounded-md border border-input bg-transparent py-2 ps-2.5 pe-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
74
74
|
className,
|
|
75
75
|
)}
|
|
76
76
|
data-size={size}
|
|
@@ -165,7 +165,7 @@ function SelectContent({
|
|
|
165
165
|
className={cn(
|
|
166
166
|
"relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 ease-snappy data-[align-trigger=true]:animate-none data-open:animate-in data-open:animation-duration-menu-in data-open:fade-in-0 data-open:zoom-in-95 data-open:data-side-top:slide-in-from-bottom-2 data-open:data-side-right:slide-in-from-left-2 data-open:data-side-bottom:slide-in-from-top-2 data-open:data-side-left:slide-in-from-right-2 data-closed:animate-out data-closed:ease-exit data-closed:animation-duration-menu-out data-closed:fade-out-0 data-closed:zoom-out-95 data-closed:data-side-top:slide-out-to-bottom-2 data-closed:data-side-right:slide-out-to-left-2 data-closed:data-side-bottom:slide-out-to-top-2 data-closed:data-side-left:slide-out-to-right-2",
|
|
167
167
|
position === "popper" &&
|
|
168
|
-
"data-side-top:-translate-y-1 data-side-right:translate-x-1 data-side-bottom:translate-y-1 data-side-left:-translate-x-1",
|
|
168
|
+
"data-side-top:-translate-y-1 data-side-right:translate-x-1 rtl:data-side-right:-translate-x-1 data-side-bottom:translate-y-1 data-side-left:-translate-x-1 rtl:data-side-left:translate-x-1",
|
|
169
169
|
className,
|
|
170
170
|
)}
|
|
171
171
|
data-align-trigger={position === "item-aligned"}
|
|
@@ -227,13 +227,13 @@ function SelectItem({ children, className, ...props }: SelectItemProps): JSX.Ele
|
|
|
227
227
|
return (
|
|
228
228
|
<SelectPrimitive.Item
|
|
229
229
|
className={cn(
|
|
230
|
-
"relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5
|
|
230
|
+
"relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 ps-2 pe-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
231
231
|
className,
|
|
232
232
|
)}
|
|
233
233
|
data-slot="select-item"
|
|
234
234
|
{...props}
|
|
235
235
|
>
|
|
236
|
-
<span className="pointer-events-none absolute
|
|
236
|
+
<span className="pointer-events-none absolute end-2 flex size-4 items-center justify-center">
|
|
237
237
|
<SelectPrimitive.ItemIndicator>
|
|
238
238
|
<CheckIcon className="pointer-events-none" />
|
|
239
239
|
</SelectPrimitive.ItemIndicator>
|
package/src/components/sheet.tsx
CHANGED
|
@@ -310,7 +310,7 @@ function SidebarRail({ className, ...props }: SidebarRailProps): JSX.Element {
|
|
|
310
310
|
return (
|
|
311
311
|
<button
|
|
312
312
|
className={cn(
|
|
313
|
-
"absolute inset-y-0 z-20 hidden w-4 transition-all ease-gentle group-data-[collapsible=offcanvas]:translate-x-0 group-data-side-right:left-0 group-data-side-left:-right-4 after:absolute after:inset-y-0 after:inset-s-1/2 after:w-0.5 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar hover:after:bg-sidebar-border in-data-side-right:cursor-e-resize in-data-side-left:cursor-w-resize sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2 [[data-side=left][data-collapsible=offcanvas]_&]:-right-2 [[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-collapsible=offcanvas]_&]:-left-2 [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
|
|
313
|
+
"absolute inset-y-0 z-20 hidden w-4 transition-all ease-gentle group-data-[collapsible=offcanvas]:translate-x-0 group-data-side-right:left-0 group-data-side-left:-right-4 after:absolute after:inset-y-0 after:inset-s-1/2 after:w-0.5 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar hover:after:bg-sidebar-border in-data-side-right:cursor-e-resize in-data-side-left:cursor-w-resize sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2 rtl:group-data-[collapsible=offcanvas]:-translate-x-0 rtl:in-data-side-right:cursor-w-resize rtl:in-data-side-left:cursor-e-resize [[data-side=left][data-collapsible=offcanvas]_&]:-right-2 [[data-side=left][data-state=collapsed]_&]:cursor-e-resize rtl:[[data-side=left][data-state=collapsed]_&]:cursor-w-resize [[data-side=right][data-collapsible=offcanvas]_&]:-left-2 [[data-side=right][data-state=collapsed]_&]:cursor-w-resize rtl:[[data-side=right][data-state=collapsed]_&]:cursor-e-resize",
|
|
314
314
|
className,
|
|
315
315
|
)}
|
|
316
316
|
data-sidebar="rail"
|
|
@@ -339,7 +339,7 @@ function SidebarInset({ className, ...props }: SidebarInsetProps): JSX.Element {
|
|
|
339
339
|
return (
|
|
340
340
|
<main
|
|
341
341
|
className={cn(
|
|
342
|
-
"relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:
|
|
342
|
+
"relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-collapsed:ms-2",
|
|
343
343
|
className,
|
|
344
344
|
)}
|
|
345
345
|
data-slot="sidebar-inset"
|
|
@@ -539,7 +539,7 @@ function SidebarGroupAction({ asChild = false, className, ...props }: SidebarGro
|
|
|
539
539
|
return (
|
|
540
540
|
<Component
|
|
541
541
|
className={cn(
|
|
542
|
-
"absolute top-3.5
|
|
542
|
+
"absolute end-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",
|
|
543
543
|
className,
|
|
544
544
|
)}
|
|
545
545
|
data-sidebar="group-action"
|
|
@@ -703,7 +703,7 @@ function SidebarMenuAction({
|
|
|
703
703
|
return (
|
|
704
704
|
<Component
|
|
705
705
|
className={cn(
|
|
706
|
-
"absolute top-1.5
|
|
706
|
+
"absolute end-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",
|
|
707
707
|
showOnHover &&
|
|
708
708
|
"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0",
|
|
709
709
|
className,
|
|
@@ -731,7 +731,7 @@ function SidebarMenuBadge({ className, ...props }: SidebarMenuBadgeProps): JSX.E
|
|
|
731
731
|
return (
|
|
732
732
|
<div
|
|
733
733
|
className={cn(
|
|
734
|
-
"pointer-events-none absolute
|
|
734
|
+
"pointer-events-none absolute end-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground",
|
|
735
735
|
className,
|
|
736
736
|
)}
|
|
737
737
|
data-sidebar="menu-badge"
|
|
@@ -796,7 +796,7 @@ function SidebarMenuSub({ className, ...props }: SidebarMenuSubProps): JSX.Eleme
|
|
|
796
796
|
return (
|
|
797
797
|
<ul
|
|
798
798
|
className={cn(
|
|
799
|
-
"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-
|
|
799
|
+
"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-s border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden rtl:-translate-x-px",
|
|
800
800
|
className,
|
|
801
801
|
)}
|
|
802
802
|
data-sidebar="menu-sub"
|
|
@@ -857,7 +857,7 @@ function SidebarMenuSubButton({
|
|
|
857
857
|
return (
|
|
858
858
|
<Component
|
|
859
859
|
className={cn(
|
|
860
|
-
"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
|
|
860
|
+
"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs rtl:translate-x-px data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
|
|
861
861
|
className,
|
|
862
862
|
)}
|
|
863
863
|
data-active={isActive}
|
|
@@ -21,7 +21,7 @@ function Switch({ className, size = "default", ...props }: SwitchProps): JSX.Ele
|
|
|
21
21
|
return (
|
|
22
22
|
<SwitchPrimitives.Root
|
|
23
23
|
className={cn(
|
|
24
|
-
"peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-
|
|
24
|
+
"peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all duration-control ease-snappy outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-4.5 data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50",
|
|
25
25
|
className,
|
|
26
26
|
)}
|
|
27
27
|
data-size={size}
|
|
@@ -29,7 +29,7 @@ function Switch({ className, size = "default", ...props }: SwitchProps): JSX.Ele
|
|
|
29
29
|
{...props}
|
|
30
30
|
>
|
|
31
31
|
<SwitchPrimitives.Thumb
|
|
32
|
-
className="pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-
|
|
32
|
+
className="pointer-events-none block rounded-full bg-background ring-0 transition-transform duration-control-indicator ease-spring group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-3.5 group-data-[size=sm]/switch:data-checked:translate-x-2.5 rtl:group-data-[size=default]/switch:data-checked:-translate-x-3.5 rtl:group-data-[size=sm]/switch:data-checked:-translate-x-2.5 dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 rtl:group-data-[size=default]/switch:data-unchecked:-translate-x-0 rtl:group-data-[size=sm]/switch:data-unchecked:-translate-x-0 dark:data-unchecked:bg-foreground"
|
|
33
33
|
data-slot="switch-thumb"
|
|
34
34
|
/>
|
|
35
35
|
</SwitchPrimitives.Root>
|
package/src/components/table.tsx
CHANGED
|
@@ -117,7 +117,7 @@ function TableHead({ className, ...props }: TableHeadProps): JSX.Element {
|
|
|
117
117
|
return (
|
|
118
118
|
<th
|
|
119
119
|
className={cn(
|
|
120
|
-
"h-10 px-2 text-
|
|
120
|
+
"h-10 px-2 text-start align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pe-0",
|
|
121
121
|
className,
|
|
122
122
|
)}
|
|
123
123
|
data-slot="table-head"
|
|
@@ -141,7 +141,7 @@ type TableCellProps = ComponentProps<"td">;
|
|
|
141
141
|
function TableCell({ className, ...props }: TableCellProps): JSX.Element {
|
|
142
142
|
return (
|
|
143
143
|
<td
|
|
144
|
-
className={cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:
|
|
144
|
+
className={cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pe-0", className)}
|
|
145
145
|
data-slot="table-cell"
|
|
146
146
|
{...props}
|
|
147
147
|
/>
|
package/src/components/tabs.tsx
CHANGED
|
@@ -68,10 +68,10 @@ function TabsTrigger({ className, ...props }: TabsTriggerProps): JSX.Element {
|
|
|
68
68
|
return (
|
|
69
69
|
<TabsPrimitive.Trigger
|
|
70
70
|
className={cn(
|
|
71
|
-
"relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:
|
|
71
|
+
"relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
72
72
|
"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent",
|
|
73
73
|
"data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground",
|
|
74
|
-
"after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:-bottom-1.25 group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-
|
|
74
|
+
"after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:-bottom-1.25 group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-end-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100",
|
|
75
75
|
className,
|
|
76
76
|
)}
|
|
77
77
|
data-slot="tabs-trigger"
|
|
@@ -112,7 +112,7 @@ function ToggleGroupItem({
|
|
|
112
112
|
return (
|
|
113
113
|
<ToggleGroupPrimitive.Item
|
|
114
114
|
className={cn(
|
|
115
|
-
"shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:shadow-none focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:
|
|
115
|
+
"shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:shadow-none focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pe-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:ps-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-s-md group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-md group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-e-md group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-md group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-s-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-s group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t data-on:bg-muted",
|
|
116
116
|
toggleVariants({
|
|
117
117
|
className,
|
|
118
118
|
size: context.size ?? size,
|
|
@@ -68,7 +68,7 @@ function TooltipContent({ children, className, sideOffset = 0, ...props }: Toolt
|
|
|
68
68
|
<TooltipPrimitive.Portal data-slot="tooltip-portal">
|
|
69
69
|
<TooltipPrimitive.Content
|
|
70
70
|
className={cn(
|
|
71
|
-
"z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background ease-snappy has-data-[slot=kbd]:
|
|
71
|
+
"z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background ease-snappy has-data-[slot=kbd]:pe-1.5 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-open:animate-in data-open:animation-duration-menu-in data-open:fade-in-0 data-open:zoom-in-95 data-open:data-side-top:slide-in-from-bottom-2 data-open:data-side-right:slide-in-from-left-2 data-open:data-side-bottom:slide-in-from-top-2 data-open:data-side-left:slide-in-from-right-2 data-closed:animate-out data-closed:ease-exit data-closed:animation-duration-menu-out data-closed:fade-out-0 data-closed:zoom-out-95 data-closed:data-side-top:slide-out-to-bottom-2 data-closed:data-side-right:slide-out-to-left-2 data-closed:data-side-bottom:slide-out-to-top-2 data-closed:data-side-left:slide-out-to-right-2 data-delayed-open:animate-in data-delayed-open:animation-duration-menu-in data-delayed-open:fade-in-0 data-delayed-open:zoom-in-95 data-delayed-open:data-side-top:slide-in-from-bottom-2 data-delayed-open:data-side-right:slide-in-from-left-2 data-delayed-open:data-side-bottom:slide-in-from-top-2 data-delayed-open:data-side-left:slide-in-from-right-2",
|
|
72
72
|
className,
|
|
73
73
|
)}
|
|
74
74
|
data-slot="tooltip-content"
|
|
@@ -1,4 +1,16 @@
|
|
|
1
|
+
/* -------------------------------------------------------------------------
|
|
2
|
+
* Base
|
|
3
|
+
*
|
|
4
|
+
* Global element defaults layered into Tailwind's `base` cascade: default
|
|
5
|
+
* border/outline colors, scrollbar styling, document background, and
|
|
6
|
+
* native input appearance resets.
|
|
7
|
+
* ------------------------------------------------------------------------- */
|
|
8
|
+
|
|
1
9
|
@layer base {
|
|
10
|
+
/* ----------------------------------------------------------------------
|
|
11
|
+
* Default border & focus-ring colors for every element
|
|
12
|
+
* ---------------------------------------------------------------------- */
|
|
13
|
+
|
|
2
14
|
*,
|
|
3
15
|
::after,
|
|
4
16
|
::before,
|
|
@@ -8,6 +20,10 @@
|
|
|
8
20
|
outline-color: --alpha(var(--color-ring) / 20%);
|
|
9
21
|
}
|
|
10
22
|
|
|
23
|
+
/* ----------------------------------------------------------------------
|
|
24
|
+
* Scrollbars — WebKit (size + colors) and Firefox (thin + colors)
|
|
25
|
+
* ---------------------------------------------------------------------- */
|
|
26
|
+
|
|
11
27
|
::-webkit-scrollbar {
|
|
12
28
|
@apply size-2;
|
|
13
29
|
}
|
|
@@ -25,12 +41,20 @@
|
|
|
25
41
|
scrollbar-color: var(--color-border) transparent;
|
|
26
42
|
}
|
|
27
43
|
|
|
44
|
+
/* ----------------------------------------------------------------------
|
|
45
|
+
* Document
|
|
46
|
+
* ---------------------------------------------------------------------- */
|
|
47
|
+
|
|
28
48
|
html,
|
|
29
49
|
body {
|
|
30
50
|
background-color: var(--color-background);
|
|
31
51
|
color: var(--color-foreground);
|
|
32
52
|
}
|
|
33
53
|
|
|
54
|
+
/* ----------------------------------------------------------------------
|
|
55
|
+
* Inputs — strip native search & number-spinner affordances
|
|
56
|
+
* ---------------------------------------------------------------------- */
|
|
57
|
+
|
|
34
58
|
input {
|
|
35
59
|
&::-webkit-search-cancel-button,
|
|
36
60
|
&::-webkit-search-decoration {
|
|
@@ -1,28 +1,61 @@
|
|
|
1
|
+
/* -------------------------------------------------------------------------
|
|
2
|
+
* Motion
|
|
3
|
+
*
|
|
4
|
+
* Easing curves, semantic durations, and keyframes for @codefast/ui. Tokens
|
|
5
|
+
* are exposed through Tailwind's @theme so they mint matching `ease-*`,
|
|
6
|
+
* `duration-*`, and `animate-*` utilities.
|
|
7
|
+
* ------------------------------------------------------------------------- */
|
|
8
|
+
|
|
1
9
|
@theme {
|
|
2
|
-
/*
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
--ease-
|
|
10
|
+
/* ----------------------------------------------------------------------
|
|
11
|
+
* Easing — enter curves (decelerate into place)
|
|
12
|
+
* ---------------------------------------------------------------------- */
|
|
13
|
+
|
|
14
|
+
--ease-ui: cubic-bezier(0.32, 0.72, 0, 1); /* Large surfaces: dialog, sheet */
|
|
15
|
+
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1); /* Playful overshoot (opt-in) */
|
|
16
|
+
--ease-snappy: cubic-bezier(0.23, 1, 0.32, 1); /* Small popups: menu, tooltip */
|
|
17
|
+
--ease-gentle: cubic-bezier(0.4, 0, 0.2, 1); /* Continuous layout shifts, fades */
|
|
18
|
+
|
|
19
|
+
/* ----------------------------------------------------------------------
|
|
20
|
+
* Easing — exit curve (accelerate away; pair with `data-closed:`)
|
|
21
|
+
* ---------------------------------------------------------------------- */
|
|
7
22
|
|
|
8
|
-
/* Exit curve — accelerate away; pair with data-closed:. */
|
|
9
23
|
--ease-exit: cubic-bezier(0.4, 0, 1, 1);
|
|
10
24
|
|
|
11
|
-
/*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
|
|
15
|
-
|
|
25
|
+
/* ----------------------------------------------------------------------
|
|
26
|
+
* Durations — enter/exit pairs per surface role
|
|
27
|
+
*
|
|
28
|
+
* Exit ≈ 60% of enter to offset the slow start of the accelerating exit
|
|
29
|
+
* curve.
|
|
30
|
+
* ---------------------------------------------------------------------- */
|
|
31
|
+
|
|
32
|
+
--animation-duration-menu-in: 150ms; /* Menus, tooltip — instant tools */
|
|
16
33
|
--animation-duration-menu-out: 100ms;
|
|
17
|
-
--animation-duration-popup-in: 200ms; /*
|
|
34
|
+
--animation-duration-popup-in: 200ms; /* Popover, hover card — content surfaces */
|
|
18
35
|
--animation-duration-popup-out: 120ms;
|
|
19
|
-
--animation-duration-overlay-in: 220ms; /*
|
|
36
|
+
--animation-duration-overlay-in: 220ms; /* Dialog content + backdrop */
|
|
20
37
|
--animation-duration-overlay-out: 150ms;
|
|
21
|
-
--animation-duration-panel-in: 320ms; /*
|
|
38
|
+
--animation-duration-panel-in: 320ms; /* Sheet, drawer — large sliding panels */
|
|
22
39
|
--animation-duration-panel-out: 220ms;
|
|
23
|
-
--animation-duration-expand-in: 200ms; /*
|
|
40
|
+
--animation-duration-expand-in: 200ms; /* Accordion, inline disclosure */
|
|
24
41
|
--animation-duration-expand-out: 150ms;
|
|
25
42
|
|
|
43
|
+
/* ----------------------------------------------------------------------
|
|
44
|
+
* Durations — form controls (switch, checkbox, radio)
|
|
45
|
+
*
|
|
46
|
+
* Defined in the transition-duration namespace so they mint clean
|
|
47
|
+
* `duration-control*` utilities; `animate-in` also picks them up via its
|
|
48
|
+
* --tw-duration fallback, so a single utility drives both the state
|
|
49
|
+
* transition and the indicator keyframe.
|
|
50
|
+
* ---------------------------------------------------------------------- */
|
|
51
|
+
|
|
52
|
+
--transition-duration-control: 100ms; /* Container / ring: switch track, checkbox & radio box */
|
|
53
|
+
--transition-duration-control-indicator: 200ms; /* Moving part: switch thumb, check, radio dot */
|
|
54
|
+
|
|
55
|
+
/* ----------------------------------------------------------------------
|
|
56
|
+
* Keyframes
|
|
57
|
+
* ---------------------------------------------------------------------- */
|
|
58
|
+
|
|
26
59
|
--animate-shimmer: shimmer 2.2s linear infinite;
|
|
27
60
|
|
|
28
61
|
@keyframes shimmer {
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/* -------------------------------------------------------------------------
|
|
2
|
+
* Source
|
|
3
|
+
*
|
|
4
|
+
* Third-party imports and the Tailwind content source scanned for class
|
|
5
|
+
* usage across the package.
|
|
6
|
+
* ------------------------------------------------------------------------- */
|
|
7
|
+
|
|
1
8
|
@import "tw-animate-css";
|
|
2
9
|
|
|
3
10
|
@source "../../**/*.{ts,tsx}";
|