orbital-ds 0.7.0 → 0.9.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/AGENTS.md +145 -80
- package/README.md +87 -73
- package/components.manifest.json +1326 -1267
- package/contract.json +226 -168
- package/dist/hooks/use-ds-messages.d.ts +36 -0
- package/dist/hooks/use-ds-messages.js +12 -0
- package/dist/hooks/use-ds-motion.d.ts +17 -0
- package/dist/hooks/use-ds-motion.js +50 -0
- package/dist/lib/i18n.d.ts +46 -0
- package/dist/lib/i18n.js +109 -0
- package/dist/lib/motion.d.ts +74 -0
- package/dist/lib/motion.js +97 -0
- package/dist/styles.css +876 -528
- package/dist/themes/friendly.css +362 -318
- package/dist/themes/friendly.meta.json +75 -14
- package/dist/themes/friendly.scoped.css +362 -318
- package/dist/themes/qratia.meta.json +42 -12
- package/dist/themes/tactile.css +575 -429
- package/dist/themes/tactile.fonts.css +3 -2
- package/dist/themes/tactile.guide.md +82 -49
- package/dist/themes/tactile.meta.json +175 -16
- package/dist/themes/tactile.scoped.css +575 -429
- package/dist/themes/twitter.css +354 -298
- package/dist/themes/twitter.meta.json +83 -61
- package/dist/themes/twitter.scoped.css +354 -298
- package/dist/themes/zyro.css +443 -389
- package/dist/themes/zyro.meta.json +67 -14
- package/dist/themes/zyro.scoped.css +443 -389
- package/dist/ui/accordion.js +5 -5
- package/dist/ui/alert-dialog.js +3 -3
- package/dist/ui/alert.d.ts +1 -1
- package/dist/ui/alert.js +9 -3
- package/dist/ui/attachment.d.ts +1 -1
- package/dist/ui/attachment.js +4 -4
- package/dist/ui/avatar.js +6 -6
- package/dist/ui/ayuda.js +3 -2
- package/dist/ui/badge.d.ts +1 -1
- package/dist/ui/badge.js +9 -3
- package/dist/ui/banner.d.ts +14 -0
- package/dist/ui/banner.js +88 -0
- package/dist/ui/breadcrumb.js +7 -3
- package/dist/ui/bubble.js +6 -6
- package/dist/ui/button-group.js +4 -4
- package/dist/ui/button.d.ts +1 -1
- package/dist/ui/button.js +5 -5
- package/dist/ui/calendar.js +33 -6
- package/dist/ui/card.js +4 -4
- package/dist/ui/carousel.js +15 -8
- package/dist/ui/chart.js +7 -3
- package/dist/ui/checkbox.js +1 -1
- package/dist/ui/combobox.js +7 -7
- package/dist/ui/command.js +13 -11
- package/dist/ui/context-menu.js +8 -8
- package/dist/ui/dialog.js +10 -6
- package/dist/ui/drawer.js +9 -9
- package/dist/ui/dropdown-menu.js +8 -8
- package/dist/ui/empty.js +3 -3
- package/dist/ui/field.js +2 -2
- package/dist/ui/hover-card.js +1 -1
- package/dist/ui/i18n-provider.d.ts +11 -0
- package/dist/ui/i18n-provider.js +18 -0
- package/dist/ui/icon-tile.d.ts +1 -1
- package/dist/ui/input-group.d.ts +1 -1
- package/dist/ui/input-group.js +11 -9
- package/dist/ui/input-otp.js +3 -3
- package/dist/ui/input.js +1 -1
- package/dist/ui/item.d.ts +1 -1
- package/dist/ui/item.js +3 -3
- package/dist/ui/kbd.js +1 -1
- package/dist/ui/label.js +1 -1
- package/dist/ui/marker.d.ts +1 -1
- package/dist/ui/marker.js +2 -2
- package/dist/ui/menubar.js +9 -9
- package/dist/ui/message-scroller.js +5 -2
- package/dist/ui/message.js +2 -2
- package/dist/ui/motion-provider.d.ts +11 -0
- package/dist/ui/motion-provider.js +16 -0
- package/dist/ui/native-select.js +4 -4
- package/dist/ui/navigation-menu.js +7 -6
- package/dist/ui/pagination.js +19 -11
- package/dist/ui/popover.js +2 -2
- package/dist/ui/progress.js +2 -2
- package/dist/ui/questionnaire.js +20 -15
- package/dist/ui/radio-group.js +2 -2
- package/dist/ui/resizable.js +2 -2
- package/dist/ui/scroll-area.js +3 -3
- package/dist/ui/select.js +6 -6
- package/dist/ui/separator.js +1 -1
- package/dist/ui/sheet.js +6 -4
- package/dist/ui/sidebar.js +42 -30
- package/dist/ui/skeleton.js +1 -1
- package/dist/ui/slider.js +6 -6
- package/dist/ui/sonner.js +25 -8
- package/dist/ui/spinner.js +4 -1
- package/dist/ui/switch.js +2 -2
- package/dist/ui/table.js +3 -3
- package/dist/ui/tabs.js +5 -5
- package/dist/ui/textarea.js +1 -1
- package/dist/ui/toast.js +15 -12
- package/dist/ui/toggle-group.js +2 -2
- package/dist/ui/toggle.js +6 -4
- package/dist/ui/tooltip.js +2 -2
- package/docs/CONTRACT.md +183 -153
- package/package.json +160 -142
- package/scripts/brand-core.mjs +153 -0
- package/scripts/doctor.mjs +128 -7
- package/scripts/i18n.mjs +111 -0
- package/scripts/init.mjs +294 -57
- package/scripts/setup.mjs +99 -0
package/dist/ui/dropdown-menu.js
CHANGED
|
@@ -41,7 +41,7 @@ function DropdownMenuContent({
|
|
|
41
41
|
{
|
|
42
42
|
"data-slot": "dropdown-menu-content",
|
|
43
43
|
className: cn(
|
|
44
|
-
"max-h-(--available-height) w-(--anchor-width) min-w-48 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-
|
|
44
|
+
"max-h-(--available-height) w-(--anchor-width) min-w-48 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-popover bg-popover p-(--ds-menu-p) text-popover-foreground shadow-popover ring-(length:--ds-layer-ring-w) ring-(--ds-layer-ring) duration-(--ds-motion-fast) data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-closed:overflow-hidden data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
45
45
|
className
|
|
46
46
|
),
|
|
47
47
|
...props
|
|
@@ -66,7 +66,7 @@ function DropdownMenuItem({
|
|
|
66
66
|
"data-inset": inset,
|
|
67
67
|
"data-variant": variant,
|
|
68
68
|
className: cn(
|
|
69
|
-
"group/dropdown-menu-item relative flex cursor-default items-center gap-2.5 rounded-
|
|
69
|
+
"group/dropdown-menu-item relative flex cursor-default items-center gap-2.5 rounded-item px-(--ds-menu-item-px) py-(--ds-menu-item-py) text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-9.5 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-(--ds-disabled-opacity) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",
|
|
70
70
|
className
|
|
71
71
|
),
|
|
72
72
|
...props
|
|
@@ -86,7 +86,7 @@ function DropdownMenuCheckboxItem({
|
|
|
86
86
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
87
87
|
"data-inset": inset,
|
|
88
88
|
className: cn(
|
|
89
|
-
"relative flex cursor-default items-center gap-2.5 rounded-
|
|
89
|
+
"relative flex cursor-default items-center gap-2.5 rounded-item py-(--ds-menu-item-py) pr-8 pl-(--ds-menu-item-px) text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-(--ds-disabled-opacity) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
90
90
|
className
|
|
91
91
|
),
|
|
92
92
|
checked,
|
|
@@ -128,7 +128,7 @@ function DropdownMenuRadioItem({
|
|
|
128
128
|
"data-slot": "dropdown-menu-radio-item",
|
|
129
129
|
"data-inset": inset,
|
|
130
130
|
className: cn(
|
|
131
|
-
"relative flex cursor-default items-center gap-2.5 rounded-
|
|
131
|
+
"relative flex cursor-default items-center gap-2.5 rounded-item py-(--ds-menu-item-py) pr-8 pl-(--ds-menu-item-px) text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-(--ds-disabled-opacity) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
132
132
|
className
|
|
133
133
|
),
|
|
134
134
|
...props,
|
|
@@ -157,7 +157,7 @@ function DropdownMenuLabel({
|
|
|
157
157
|
"data-slot": "dropdown-menu-label",
|
|
158
158
|
"data-inset": inset,
|
|
159
159
|
className: cn(
|
|
160
|
-
"px-(--ds-menu-item-px) py-(--ds-menu-item-py)
|
|
160
|
+
"px-(--ds-menu-item-px) py-(--ds-menu-item-py) text-xs text-muted-foreground data-inset:pl-9.5",
|
|
161
161
|
className
|
|
162
162
|
),
|
|
163
163
|
...props
|
|
@@ -172,7 +172,7 @@ function DropdownMenuSeparator({
|
|
|
172
172
|
DropdownMenuPrimitive.Separator,
|
|
173
173
|
{
|
|
174
174
|
"data-slot": "dropdown-menu-separator",
|
|
175
|
-
className: cn("-mx-1 my-1 h-px bg-
|
|
175
|
+
className: cn("-mx-1 my-1 h-px bg-(--ds-separator)", className),
|
|
176
176
|
...props
|
|
177
177
|
}
|
|
178
178
|
);
|
|
@@ -216,7 +216,7 @@ function DropdownMenuSubTrigger({
|
|
|
216
216
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
217
217
|
"data-inset": inset,
|
|
218
218
|
className: cn(
|
|
219
|
-
"flex cursor-default items-center gap-2 rounded-
|
|
219
|
+
"flex cursor-default items-center gap-2 rounded-item px-(--ds-menu-item-px) py-(--ds-menu-item-py) text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-9.5 data-popup-open:bg-accent data-popup-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
220
220
|
className
|
|
221
221
|
),
|
|
222
222
|
...props,
|
|
@@ -236,7 +236,7 @@ function DropdownMenuSubContent({
|
|
|
236
236
|
{
|
|
237
237
|
"data-slot": "dropdown-menu-sub-content",
|
|
238
238
|
className: cn(
|
|
239
|
-
"z-(--ds-z-overlay) min-w-36 origin-(--transform-origin) overflow-hidden rounded-
|
|
239
|
+
"z-(--ds-z-overlay) min-w-36 origin-(--transform-origin) overflow-hidden rounded-popover bg-popover p-(--ds-menu-p) text-popover-foreground shadow-popover ring-(length:--ds-layer-ring-w) ring-(--ds-layer-ring) duration-(--ds-motion-fast) data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
240
240
|
className
|
|
241
241
|
),
|
|
242
242
|
...props
|
package/dist/ui/empty.js
CHANGED
|
@@ -7,7 +7,7 @@ function Empty({ className, ...props }) {
|
|
|
7
7
|
{
|
|
8
8
|
"data-slot": "empty",
|
|
9
9
|
className: cn(
|
|
10
|
-
"flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-lg border-dashed p-
|
|
10
|
+
"flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-lg border-dashed p-(--ds-empty-p) text-center text-balance",
|
|
11
11
|
className
|
|
12
12
|
),
|
|
13
13
|
...props
|
|
@@ -30,7 +30,7 @@ const emptyMediaVariants = cva(
|
|
|
30
30
|
variants: {
|
|
31
31
|
variant: {
|
|
32
32
|
default: "bg-transparent",
|
|
33
|
-
icon: "flex size-
|
|
33
|
+
icon: "flex size-(--ds-icon-tile-md) shrink-0 items-center justify-center rounded-(--ds-icon-tile-radius) bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6"
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
defaultVariants: {
|
|
@@ -59,7 +59,7 @@ function EmptyTitle({ className, ...props }) {
|
|
|
59
59
|
{
|
|
60
60
|
"data-slot": "empty-title",
|
|
61
61
|
className: cn(
|
|
62
|
-
"text-lg font-medium tracking-
|
|
62
|
+
"text-lg font-medium tracking-(--ds-heading-tracking)",
|
|
63
63
|
className
|
|
64
64
|
),
|
|
65
65
|
...props
|
package/dist/ui/field.js
CHANGED
|
@@ -101,7 +101,7 @@ function FieldLabel({
|
|
|
101
101
|
{
|
|
102
102
|
"data-slot": "field-label",
|
|
103
103
|
className: cn(
|
|
104
|
-
"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-
|
|
104
|
+
"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-(--ds-disabled-opacity) has-data-checked:border-(--ds-choice-card-border) has-data-checked:bg-(--ds-choice-card-bg) has-[>[data-slot=field]]:rounded-xl has-[>[data-slot=field]]:border has-[>[data-slot=field]]:not-has-[:disabled,[data-disabled]]:hover:bg-(--ds-field-bg-hover) has-[>[data-slot=field]]:has-[:focus-visible]:border-ring has-[>[data-slot=field]]:has-[:focus-visible]:ring-(length:--ds-ring-width) has-[>[data-slot=field]]:has-[:focus-visible]:ring-(--ds-ring-color) *:data-[slot=field]:p-4",
|
|
105
105
|
"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col",
|
|
106
106
|
className
|
|
107
107
|
),
|
|
@@ -115,7 +115,7 @@ function FieldTitle({ className, ...props }) {
|
|
|
115
115
|
{
|
|
116
116
|
"data-slot": "field-label",
|
|
117
117
|
className: cn(
|
|
118
|
-
"flex w-fit items-center gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-
|
|
118
|
+
"flex w-fit items-center gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-(--ds-disabled-opacity)",
|
|
119
119
|
className
|
|
120
120
|
),
|
|
121
121
|
...props
|
package/dist/ui/hover-card.js
CHANGED
|
@@ -29,7 +29,7 @@ function HoverCardContent({
|
|
|
29
29
|
{
|
|
30
30
|
"data-slot": "hover-card-content",
|
|
31
31
|
className: cn(
|
|
32
|
-
"z-(--ds-z-overlay) w-
|
|
32
|
+
"z-(--ds-z-overlay) w-(--ds-hover-card-w) origin-(--transform-origin) rounded-popover bg-popover p-(--ds-popover-p) text-sm text-popover-foreground shadow-popover ring-(length:--ds-layer-ring-w) ring-(--ds-layer-ring) outline-hidden duration-(--ds-motion-fast) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
33
33
|
className
|
|
34
34
|
),
|
|
35
35
|
...props
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { DsMessages } from '../lib/i18n.js';
|
|
3
|
+
|
|
4
|
+
declare function DsI18nProvider({ locale, messages, dir, children, }: {
|
|
5
|
+
locale?: string | null;
|
|
6
|
+
messages?: Partial<DsMessages>;
|
|
7
|
+
dir?: "ltr" | "rtl";
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
}): React.JSX.Element;
|
|
10
|
+
|
|
11
|
+
export { DsI18nProvider };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { DirectionProvider } from "@base-ui/react/direction-provider";
|
|
5
|
+
import { DsMessagesContext } from "../hooks/use-ds-messages";
|
|
6
|
+
import { dsDirection, dsMessagesFor } from "../lib/i18n";
|
|
7
|
+
function DsI18nProvider({
|
|
8
|
+
locale,
|
|
9
|
+
messages,
|
|
10
|
+
dir,
|
|
11
|
+
children
|
|
12
|
+
}) {
|
|
13
|
+
const value = React.useMemo(() => dsMessagesFor(locale, messages), [locale, messages]);
|
|
14
|
+
return /* @__PURE__ */ jsx(DirectionProvider, { direction: dir ?? dsDirection(locale), children: /* @__PURE__ */ jsx(DsMessagesContext.Provider, { value, children }) });
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
DsI18nProvider
|
|
18
|
+
};
|
package/dist/ui/icon-tile.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { VariantProps } from 'class-variance-authority';
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
|
|
5
5
|
declare const iconTileVariants: (props?: ({
|
|
6
|
-
tone?: "
|
|
6
|
+
tone?: "info" | "success" | "warning" | "danger" | "neutral" | "primary" | "accent" | null | undefined;
|
|
7
7
|
size?: "sm" | "lg" | "md" | null | undefined;
|
|
8
8
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
9
|
declare function IconTile({ className, tone, size, ...props }: React.ComponentProps<"div"> & VariantProps<typeof iconTileVariants>): React.JSX.Element;
|
package/dist/ui/input-group.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ declare const inputGroupAddonVariants: (props?: ({
|
|
|
10
10
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
11
11
|
declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<"div"> & VariantProps<typeof inputGroupAddonVariants>): React.JSX.Element;
|
|
12
12
|
declare const inputGroupButtonVariants: (props?: ({
|
|
13
|
-
size?: "
|
|
13
|
+
size?: "xs" | "sm" | "icon-xs" | "icon-sm" | null | undefined;
|
|
14
14
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
15
15
|
declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React.ComponentProps<typeof Button>, "size" | "type"> & VariantProps<typeof inputGroupButtonVariants> & {
|
|
16
16
|
type?: "button" | "submit" | "reset";
|
package/dist/ui/input-group.js
CHANGED
|
@@ -12,7 +12,7 @@ function InputGroup({ className, ...props }) {
|
|
|
12
12
|
"data-slot": "input-group",
|
|
13
13
|
role: "group",
|
|
14
14
|
className: cn(
|
|
15
|
-
"group/input-group relative flex h-
|
|
15
|
+
"group/input-group relative flex h-(--ds-control-h-md) w-full min-w-0 items-center rounded-control shadow-control border border-input bg-(--ds-field-bg) transition-colors duration-(--ds-motion-snap) outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-data-[align=block-end]:rounded-field-multiline has-data-[align=block-start]:rounded-field-multiline has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-(length:--ds-ring-width) has-[[data-slot=input-group-control]:focus-visible]:ring-(--ds-ring-color) has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-(length:--ds-ring-width) has-[[data-slot][aria-invalid=true]]:ring-(--ds-invalid-ring) has-[textarea]:rounded-field-multiline has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5",
|
|
16
16
|
className
|
|
17
17
|
),
|
|
18
18
|
...props
|
|
@@ -20,14 +20,14 @@ function InputGroup({ className, ...props }) {
|
|
|
20
20
|
);
|
|
21
21
|
}
|
|
22
22
|
const inputGroupAddonVariants = cva(
|
|
23
|
-
"flex h-auto cursor-text items-center justify-center gap-2 py-2 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-
|
|
23
|
+
"flex h-auto cursor-text items-center justify-center gap-2 py-2 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-(--ds-disabled-opacity) **:data-[slot=kbd]:rounded-control **:data-[slot=kbd]:bg-muted-foreground/10 **:data-[slot=kbd]:px-1.5 [&>svg:not([class*='size-'])]:size-4",
|
|
24
24
|
{
|
|
25
25
|
variants: {
|
|
26
26
|
align: {
|
|
27
|
-
"inline-start": "order-first pl-
|
|
28
|
-
"inline-end": "order-last pr-
|
|
29
|
-
"block-start": "order-first w-full justify-start px-
|
|
30
|
-
"block-end": "order-last w-full justify-start px-
|
|
27
|
+
"inline-start": "order-first pl-(--ds-field-px) has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem]",
|
|
28
|
+
"inline-end": "order-last pr-(--ds-field-px) has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem]",
|
|
29
|
+
"block-start": "order-first w-full justify-start px-(--ds-field-px) pt-3 group-has-[>input]/input-group:pt-3 [.border-b]:pb-3",
|
|
30
|
+
"block-end": "order-last w-full justify-start px-(--ds-field-px) pb-3 group-has-[>input]/input-group:pb-3 [.border-t]:pt-3"
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
defaultVariants: {
|
|
@@ -62,10 +62,10 @@ const inputGroupButtonVariants = cva(
|
|
|
62
62
|
{
|
|
63
63
|
variants: {
|
|
64
64
|
size: {
|
|
65
|
-
xs: "h-
|
|
65
|
+
xs: "h-(--ds-control-h-xs) gap-1 px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
|
|
66
66
|
sm: "",
|
|
67
|
-
"icon-xs": "size-
|
|
68
|
-
"icon-sm": "size-
|
|
67
|
+
"icon-xs": "size-(--ds-control-h-xs) p-0 has-[>svg]:p-0",
|
|
68
|
+
"icon-sm": "size-(--ds-control-h-sm) p-0 has-[>svg]:p-0"
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
defaultVariants: {
|
|
@@ -84,6 +84,7 @@ function InputGroupButton({
|
|
|
84
84
|
Button,
|
|
85
85
|
{
|
|
86
86
|
type,
|
|
87
|
+
"data-slot": "input-group-button",
|
|
87
88
|
"data-size": size,
|
|
88
89
|
variant,
|
|
89
90
|
className: cn(inputGroupButtonVariants({ size }), className),
|
|
@@ -95,6 +96,7 @@ function InputGroupText({ className, ...props }) {
|
|
|
95
96
|
return /* @__PURE__ */ jsx(
|
|
96
97
|
"span",
|
|
97
98
|
{
|
|
99
|
+
"data-slot": "input-group-text",
|
|
98
100
|
className: cn(
|
|
99
101
|
"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
|
|
100
102
|
className
|
package/dist/ui/input-otp.js
CHANGED
|
@@ -13,7 +13,7 @@ function InputOTP({
|
|
|
13
13
|
{
|
|
14
14
|
"data-slot": "input-otp",
|
|
15
15
|
containerClassName: cn(
|
|
16
|
-
"cn-input-otp flex items-center has-disabled:opacity-
|
|
16
|
+
"cn-input-otp flex items-center has-disabled:opacity-(--ds-disabled-opacity)",
|
|
17
17
|
containerClassName
|
|
18
18
|
),
|
|
19
19
|
spellCheck: false,
|
|
@@ -28,7 +28,7 @@ function InputOTPGroup({ className, ...props }) {
|
|
|
28
28
|
{
|
|
29
29
|
"data-slot": "input-otp-group",
|
|
30
30
|
className: cn(
|
|
31
|
-
"flex items-center rounded-control has-aria-invalid:border-
|
|
31
|
+
"flex items-center rounded-control shadow-control has-aria-invalid:border-(--ds-invalid-border) has-aria-invalid:ring-(length:--ds-ring-width) has-aria-invalid:ring-(--ds-invalid-ring)",
|
|
32
32
|
className
|
|
33
33
|
),
|
|
34
34
|
...props
|
|
@@ -48,7 +48,7 @@ function InputOTPSlot({
|
|
|
48
48
|
"data-slot": "input-otp-slot",
|
|
49
49
|
"data-active": isActive,
|
|
50
50
|
className: cn(
|
|
51
|
-
"relative flex size-
|
|
51
|
+
"relative flex size-(--ds-control-h-md) items-center justify-center border-y border-r border-input bg-(--ds-field-bg) text-sm transition-all duration-(--ds-motion-snap) outline-none first:rounded-l-control first:border-l last:rounded-r-control aria-invalid:border-(--ds-invalid-border) data-[active=true]:z-(--ds-z-raised) data-[active=true]:border-ring data-[active=true]:ring-(length:--ds-ring-width) data-[active=true]:ring-(--ds-ring-color) data-[active=true]:aria-invalid:border-(--ds-invalid-border) data-[active=true]:aria-invalid:ring-(--ds-invalid-ring)",
|
|
52
52
|
className
|
|
53
53
|
),
|
|
54
54
|
...props,
|
package/dist/ui/input.js
CHANGED
|
@@ -7,7 +7,7 @@ function Input({ className, type, ...props }) {
|
|
|
7
7
|
type,
|
|
8
8
|
"data-slot": "input",
|
|
9
9
|
className: cn(
|
|
10
|
-
"h-(--ds-control-h-md) w-full min-w-0 rounded-control shadow-control border border-input bg-
|
|
10
|
+
"h-(--ds-control-h-md) w-full min-w-0 rounded-control shadow-control border border-input bg-(--ds-field-bg) px-(--ds-field-px) py-1 text-base transition-colors duration-(--ds-motion-snap) outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-(length:--ds-ring-width) focus-visible:ring-(--ds-ring-color) disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-(--ds-disabled-opacity) aria-invalid:border-(--ds-invalid-border) aria-invalid:ring-(length:--ds-ring-width) aria-invalid:ring-(--ds-invalid-ring) md:text-sm",
|
|
11
11
|
className
|
|
12
12
|
),
|
|
13
13
|
...props
|
package/dist/ui/item.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ declare function ItemGroup({ className, ...props }: React.ComponentProps<"div">)
|
|
|
9
9
|
declare function ItemSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): React.JSX.Element;
|
|
10
10
|
declare const itemVariants: (props?: ({
|
|
11
11
|
variant?: "default" | "outline" | "muted" | null | undefined;
|
|
12
|
-
size?: "default" | "
|
|
12
|
+
size?: "default" | "xs" | "sm" | null | undefined;
|
|
13
13
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
14
14
|
declare function Item({ className, variant, size, render, ...props }: useRender.ComponentProps<"div"> & VariantProps<typeof itemVariants>): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
15
15
|
declare const itemMediaVariants: (props?: ({
|
package/dist/ui/item.js
CHANGED
|
@@ -33,16 +33,16 @@ function ItemSeparator({
|
|
|
33
33
|
);
|
|
34
34
|
}
|
|
35
35
|
const itemVariants = cva(
|
|
36
|
-
"group/item flex w-full flex-wrap items-center rounded-
|
|
36
|
+
"group/item flex w-full flex-wrap items-center rounded-panel border text-sm transition-colors duration-(--ds-motion-fast) outline-none focus-visible:border-ring focus-visible:ring-(length:--ds-ring-width) focus-visible:ring-(--ds-ring-color) [a]:transition-colors [a]:hover:bg-muted",
|
|
37
37
|
{
|
|
38
38
|
variants: {
|
|
39
39
|
variant: {
|
|
40
40
|
default: "border-transparent",
|
|
41
41
|
outline: "border-border",
|
|
42
|
-
muted: "border-transparent bg-
|
|
42
|
+
muted: "border-transparent bg-(--ds-row-hover)"
|
|
43
43
|
},
|
|
44
44
|
size: {
|
|
45
|
-
default: "gap-3.5 px-
|
|
45
|
+
default: "gap-3.5 px-(--ds-item-px) py-(--ds-item-py)",
|
|
46
46
|
sm: "gap-3.5 px-3.5 py-3",
|
|
47
47
|
xs: "gap-2.5 px-3 py-2.5 in-data-[slot=dropdown-menu-content]:p-0"
|
|
48
48
|
}
|
package/dist/ui/kbd.js
CHANGED
|
@@ -6,7 +6,7 @@ function Kbd({ className, ...props }) {
|
|
|
6
6
|
{
|
|
7
7
|
"data-slot": "kbd",
|
|
8
8
|
className: cn(
|
|
9
|
-
"pointer-events-none inline-flex h-
|
|
9
|
+
"pointer-events-none inline-flex h-(--ds-kbd-h) w-fit min-w-(--ds-kbd-h) items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground select-none in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10 [&_svg:not([class*='size-'])]:size-3",
|
|
10
10
|
className
|
|
11
11
|
),
|
|
12
12
|
...props
|
package/dist/ui/label.js
CHANGED
|
@@ -7,7 +7,7 @@ function Label({ className, ...props }) {
|
|
|
7
7
|
{
|
|
8
8
|
"data-slot": "label",
|
|
9
9
|
className: cn(
|
|
10
|
-
"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-
|
|
10
|
+
"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-(--ds-disabled-opacity) peer-disabled:cursor-not-allowed peer-disabled:opacity-(--ds-disabled-opacity)",
|
|
11
11
|
className
|
|
12
12
|
),
|
|
13
13
|
...props
|
package/dist/ui/marker.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { useRender } from '@base-ui/react/use-render';
|
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
|
|
6
6
|
declare const markerVariants: (props?: ({
|
|
7
|
-
variant?: "
|
|
7
|
+
variant?: "separator" | "default" | "border" | null | undefined;
|
|
8
8
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
9
|
declare function Marker({ className, variant, render, ...props }: useRender.ComponentProps<"div"> & VariantProps<typeof markerVariants>): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
10
10
|
declare function MarkerIcon({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
|
package/dist/ui/marker.js
CHANGED
|
@@ -9,8 +9,8 @@ const markerVariants = cva(
|
|
|
9
9
|
variants: {
|
|
10
10
|
variant: {
|
|
11
11
|
default: "",
|
|
12
|
-
separator: "before:mr-1 before:h-
|
|
13
|
-
border: "border-b border-border pb-2"
|
|
12
|
+
separator: "before:mr-1 before:h-(--ds-rule-w) before:min-w-0 before:flex-1 before:bg-border after:ml-1 after:h-(--ds-rule-w) after:min-w-0 after:flex-1 after:bg-border",
|
|
13
|
+
border: "border-b-(length:--ds-rule-w) border-border pb-2"
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
package/dist/ui/menubar.js
CHANGED
|
@@ -24,7 +24,7 @@ function Menubar({ className, ...props }) {
|
|
|
24
24
|
MenubarPrimitive,
|
|
25
25
|
{
|
|
26
26
|
"data-slot": "menubar",
|
|
27
|
-
className: cn("flex h-
|
|
27
|
+
className: cn("flex h-(--ds-control-h-md) items-center rounded-control border p-1", className),
|
|
28
28
|
...props
|
|
29
29
|
}
|
|
30
30
|
);
|
|
@@ -51,7 +51,7 @@ function MenubarTrigger({
|
|
|
51
51
|
{
|
|
52
52
|
"data-slot": "menubar-trigger",
|
|
53
53
|
className: cn(
|
|
54
|
-
"flex items-center rounded-
|
|
54
|
+
"flex items-center rounded-item px-2 py-0.75 text-sm font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted",
|
|
55
55
|
className
|
|
56
56
|
),
|
|
57
57
|
...props
|
|
@@ -72,7 +72,7 @@ function MenubarContent({
|
|
|
72
72
|
align,
|
|
73
73
|
alignOffset,
|
|
74
74
|
sideOffset,
|
|
75
|
-
className: cn("min-w-48 rounded-
|
|
75
|
+
className: cn("min-w-48 rounded-popover bg-popover p-(--ds-menu-p) text-popover-foreground shadow-popover ring-(length:--ds-layer-ring-w) ring-(--ds-layer-ring) duration-(--ds-motion-fast) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95", className),
|
|
76
76
|
...props
|
|
77
77
|
}
|
|
78
78
|
);
|
|
@@ -90,7 +90,7 @@ function MenubarItem({
|
|
|
90
90
|
"data-inset": inset,
|
|
91
91
|
"data-variant": variant,
|
|
92
92
|
className: cn(
|
|
93
|
-
"group/menubar-item gap-2.5 rounded-
|
|
93
|
+
"group/menubar-item gap-2.5 rounded-item px-(--ds-menu-item-px) py-(--ds-menu-item-py) text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-9.5 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:opacity-(--ds-disabled-opacity) [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!",
|
|
94
94
|
className
|
|
95
95
|
),
|
|
96
96
|
...props
|
|
@@ -110,7 +110,7 @@ function MenubarCheckboxItem({
|
|
|
110
110
|
"data-slot": "menubar-checkbox-item",
|
|
111
111
|
"data-inset": inset,
|
|
112
112
|
className: cn(
|
|
113
|
-
"relative flex cursor-default items-center gap-2.5 rounded-
|
|
113
|
+
"relative flex cursor-default items-center gap-2.5 rounded-item py-(--ds-menu-item-py) pr-(--ds-menu-item-px) pl-9.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-(--ds-disabled-opacity) [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
114
114
|
className
|
|
115
115
|
),
|
|
116
116
|
checked,
|
|
@@ -142,7 +142,7 @@ function MenubarRadioItem({
|
|
|
142
142
|
"data-slot": "menubar-radio-item",
|
|
143
143
|
"data-inset": inset,
|
|
144
144
|
className: cn(
|
|
145
|
-
"relative flex cursor-default items-center gap-2.5 rounded-
|
|
145
|
+
"relative flex cursor-default items-center gap-2.5 rounded-item py-(--ds-menu-item-py) pr-(--ds-menu-item-px) pl-9.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-(--ds-disabled-opacity) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
146
146
|
className
|
|
147
147
|
),
|
|
148
148
|
...props,
|
|
@@ -182,7 +182,7 @@ function MenubarSeparator({
|
|
|
182
182
|
DropdownMenuSeparator,
|
|
183
183
|
{
|
|
184
184
|
"data-slot": "menubar-separator",
|
|
185
|
-
className: cn("-mx-1 my-1 h-px bg-
|
|
185
|
+
className: cn("-mx-1 my-1 h-px bg-(--ds-separator)", className),
|
|
186
186
|
...props
|
|
187
187
|
}
|
|
188
188
|
);
|
|
@@ -219,7 +219,7 @@ function MenubarSubTrigger({
|
|
|
219
219
|
"data-slot": "menubar-sub-trigger",
|
|
220
220
|
"data-inset": inset,
|
|
221
221
|
className: cn(
|
|
222
|
-
"gap-2 rounded-
|
|
222
|
+
"gap-2 rounded-item px-(--ds-menu-item-px) py-(--ds-menu-item-py) text-sm focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4",
|
|
223
223
|
className
|
|
224
224
|
),
|
|
225
225
|
...props
|
|
@@ -234,7 +234,7 @@ function MenubarSubContent({
|
|
|
234
234
|
DropdownMenuSubContent,
|
|
235
235
|
{
|
|
236
236
|
"data-slot": "menubar-sub-content",
|
|
237
|
-
className: cn("min-w-32 rounded-
|
|
237
|
+
className: cn("min-w-32 rounded-popover bg-popover p-(--ds-menu-p) text-popover-foreground shadow-popover ring-(length:--ds-layer-ring-w) ring-(--ds-layer-ring) duration-(--ds-motion-fast) data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
|
|
238
238
|
...props
|
|
239
239
|
}
|
|
240
240
|
);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
3
|
import {
|
|
3
4
|
MessageScroller as MessageScrollerPrimitive,
|
|
@@ -8,6 +9,7 @@ import {
|
|
|
8
9
|
import { cn } from "../lib/utils";
|
|
9
10
|
import { Button } from "./button";
|
|
10
11
|
import { ArrowDownIcon } from "lucide-react";
|
|
12
|
+
import { useDsMessages } from "../hooks/use-ds-messages";
|
|
11
13
|
function MessageScrollerProvider(props) {
|
|
12
14
|
return /* @__PURE__ */ jsx(MessageScrollerPrimitive.Provider, { ...props });
|
|
13
15
|
}
|
|
@@ -83,6 +85,7 @@ function MessageScrollerButton({
|
|
|
83
85
|
size = "icon-sm",
|
|
84
86
|
...props
|
|
85
87
|
}) {
|
|
88
|
+
const t = useDsMessages();
|
|
86
89
|
return /* @__PURE__ */ jsx(
|
|
87
90
|
MessageScrollerPrimitive.Button,
|
|
88
91
|
{
|
|
@@ -92,7 +95,7 @@ function MessageScrollerButton({
|
|
|
92
95
|
"data-size": size,
|
|
93
96
|
direction,
|
|
94
97
|
className: cn(
|
|
95
|
-
"absolute inset-s-1/2 -translate-x-1/2 border-border bg-background text-foreground transition-[translate,scale,opacity] duration-(--ds-motion-base) hover:bg-muted hover:text-foreground data-[active=false]:pointer-events-none data-[active=false]:scale-95 data-[active=false]:opacity-0 data-[active=false]:duration-(--ds-motion-slow) data-[active=false]:ease-
|
|
98
|
+
"absolute inset-s-1/2 -translate-x-1/2 border-border bg-background text-foreground transition-[translate,scale,opacity] duration-(--ds-motion-base) hover:bg-muted hover:text-foreground data-[active=false]:pointer-events-none data-[active=false]:scale-95 data-[active=false]:opacity-0 data-[active=false]:duration-(--ds-motion-slow) data-[active=false]:ease-(--ds-ease-exit) data-[active=true]:translate-y-0 data-[active=true]:scale-100 data-[active=true]:opacity-100 data-[active=true]:ease-(--ds-ease-enter) data-[direction=end]:bottom-4 data-[direction=end]:data-[active=false]:translate-y-full data-[direction=start]:top-4 data-[direction=start]:data-[active=false]:-translate-y-full rtl:translate-x-1/2 data-[direction=start]:[&_svg]:rotate-180",
|
|
96
99
|
className
|
|
97
100
|
),
|
|
98
101
|
render: render ?? /* @__PURE__ */ jsx(Button, { variant, size }),
|
|
@@ -102,7 +105,7 @@ function MessageScrollerButton({
|
|
|
102
105
|
ArrowDownIcon,
|
|
103
106
|
{}
|
|
104
107
|
),
|
|
105
|
-
/* @__PURE__ */ jsx("span", { className: "sr-only", children: direction === "end" ?
|
|
108
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: direction === "end" ? t.scrollToEnd : t.scrollToStart })
|
|
106
109
|
] })
|
|
107
110
|
}
|
|
108
111
|
);
|
package/dist/ui/message.js
CHANGED
|
@@ -60,7 +60,7 @@ function MessageHeader({ className, ...props }) {
|
|
|
60
60
|
{
|
|
61
61
|
"data-slot": "message-header",
|
|
62
62
|
className: cn(
|
|
63
|
-
"flex max-w-full min-w-0 items-center px-
|
|
63
|
+
"flex max-w-full min-w-0 items-center px-(--ds-bubble-px) text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0",
|
|
64
64
|
className
|
|
65
65
|
),
|
|
66
66
|
...props
|
|
@@ -73,7 +73,7 @@ function MessageFooter({ className, ...props }) {
|
|
|
73
73
|
{
|
|
74
74
|
"data-slot": "message-footer",
|
|
75
75
|
className: cn(
|
|
76
|
-
"flex max-w-full min-w-0 items-center px-
|
|
76
|
+
"flex max-w-full min-w-0 items-center px-(--ds-bubble-px) text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0 group-data-[align=end]/message:justify-end",
|
|
77
77
|
className
|
|
78
78
|
),
|
|
79
79
|
...props
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { DsDuration, DsEase } from '../lib/motion.js';
|
|
3
|
+
|
|
4
|
+
declare function DsMotionProvider({ children, duration, ease, reducedMotion, }: {
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
duration?: DsDuration;
|
|
7
|
+
ease?: DsEase;
|
|
8
|
+
reducedMotion?: "user" | "always" | "never";
|
|
9
|
+
}): React.JSX.Element;
|
|
10
|
+
|
|
11
|
+
export { DsMotionProvider };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { MotionConfig } from "motion/react";
|
|
4
|
+
import { useDsTransition } from "../hooks/use-ds-motion";
|
|
5
|
+
function DsMotionProvider({
|
|
6
|
+
children,
|
|
7
|
+
duration = "base",
|
|
8
|
+
ease = "standard",
|
|
9
|
+
reducedMotion = "user"
|
|
10
|
+
}) {
|
|
11
|
+
const { duration: d, ease: e } = useDsTransition(duration, ease);
|
|
12
|
+
return /* @__PURE__ */ jsx(MotionConfig, { transition: { duration: d, ease: e }, reducedMotion, children });
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
DsMotionProvider
|
|
16
|
+
};
|
package/dist/ui/native-select.js
CHANGED
|
@@ -10,7 +10,7 @@ function NativeSelect({
|
|
|
10
10
|
"div",
|
|
11
11
|
{
|
|
12
12
|
className: cn(
|
|
13
|
-
"group/native-select relative w-fit has-[select:disabled]:opacity-
|
|
13
|
+
"group/native-select relative w-fit has-[select:disabled]:opacity-(--ds-disabled-opacity)",
|
|
14
14
|
className
|
|
15
15
|
),
|
|
16
16
|
"data-slot": "native-select-wrapper",
|
|
@@ -21,7 +21,7 @@ function NativeSelect({
|
|
|
21
21
|
{
|
|
22
22
|
"data-slot": "native-select",
|
|
23
23
|
"data-size": size,
|
|
24
|
-
className: "h-
|
|
24
|
+
className: "h-(--ds-control-h-md) w-full min-w-0 appearance-none rounded-control shadow-control border border-input bg-(--ds-field-bg) py-1 pr-8 pl-(--ds-field-px) text-sm transition-colors duration-(--ds-motion-snap) outline-none select-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-(length:--ds-ring-width) focus-visible:ring-(--ds-ring-color) disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-(--ds-invalid-border) aria-invalid:ring-(length:--ds-ring-width) aria-invalid:ring-(--ds-invalid-ring) data-[size=sm]:h-(--ds-control-h-sm) dark:hover:bg-(--ds-field-bg-hover)",
|
|
25
25
|
...props
|
|
26
26
|
}
|
|
27
27
|
),
|
|
@@ -38,7 +38,7 @@ function NativeSelectOption({
|
|
|
38
38
|
"option",
|
|
39
39
|
{
|
|
40
40
|
"data-slot": "native-select-option",
|
|
41
|
-
className: cn("bg-
|
|
41
|
+
className: cn("bg-popover text-popover-foreground", className),
|
|
42
42
|
...props
|
|
43
43
|
}
|
|
44
44
|
);
|
|
@@ -51,7 +51,7 @@ function NativeSelectOptGroup({
|
|
|
51
51
|
"optgroup",
|
|
52
52
|
{
|
|
53
53
|
"data-slot": "native-select-optgroup",
|
|
54
|
-
className: cn("bg-
|
|
54
|
+
className: cn("bg-popover text-popover-foreground", className),
|
|
55
55
|
...props
|
|
56
56
|
}
|
|
57
57
|
);
|