@urbicon-ui/blocks 6.40.3 → 6.43.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/dist/components/Calendar/calendar.variants.d.ts +63 -63
- package/dist/components/Chat/A2UIView/A2UINode.svelte +20 -39
- package/dist/components/Chat/A2UIView/A2UIView.svelte +47 -50
- package/dist/components/Chat/A2UIView/a2ui-basic-catalog.d.ts +17 -0
- package/dist/components/Chat/A2UIView/a2ui-basic-catalog.js +69 -0
- package/dist/components/Chat/A2UIView/a2ui-catalog.d.ts +95 -0
- package/dist/components/Chat/A2UIView/a2ui-catalog.js +87 -0
- package/dist/components/Chat/A2UIView/a2ui-node-common.d.ts +40 -0
- package/dist/components/Chat/A2UIView/a2ui-node-common.js +72 -0
- package/dist/components/Chat/A2UIView/a2ui-prompt.d.ts +21 -10
- package/dist/components/Chat/A2UIView/a2ui-prompt.js +170 -24
- package/dist/components/Chat/A2UIView/a2ui-registry.d.ts +1 -1
- package/dist/components/Chat/A2UIView/a2ui-registry.js +2 -1
- package/dist/components/Chat/A2UIView/a2ui-render.d.ts +30 -0
- package/dist/components/Chat/A2UIView/a2ui-render.js +61 -23
- package/dist/components/Chat/A2UIView/a2ui-router.d.ts +136 -0
- package/dist/components/Chat/A2UIView/a2ui-router.js +264 -0
- package/dist/components/Chat/A2UIView/a2ui-schema.d.ts +45 -0
- package/dist/components/Chat/A2UIView/a2ui-schema.js +133 -0
- package/dist/components/Chat/A2UIView/a2ui-stream.d.ts +120 -0
- package/dist/components/Chat/A2UIView/a2ui-stream.js +406 -0
- package/dist/components/Chat/A2UIView/a2ui-transcript.d.ts +65 -0
- package/dist/components/Chat/A2UIView/a2ui-transcript.js +101 -0
- package/dist/components/Chat/A2UIView/a2ui-validate.d.ts +33 -1
- package/dist/components/Chat/A2UIView/a2ui-validate.js +167 -63
- package/dist/components/Chat/A2UIView/a2ui.types.d.ts +50 -0
- package/dist/components/Chat/A2UIView/a2ui.types.js +38 -1
- package/dist/components/Chat/A2UIView/index.d.ts +35 -2
- package/dist/components/Chat/A2UIView/index.js +13 -0
- package/dist/components/Chat/A2UIView/urbicon/UrbiconA2UINode.svelte +831 -0
- package/dist/components/Chat/A2UIView/urbicon/UrbiconA2UINode.svelte.d.ts +4 -0
- package/dist/components/Chat/A2UIView/urbicon/a2ui-urbicon-catalog.d.ts +14 -0
- package/dist/components/Chat/A2UIView/urbicon/a2ui-urbicon-catalog.js +87 -0
- package/dist/components/Chat/A2UIView/urbicon/a2ui-urbicon-registry.d.ts +78 -0
- package/dist/components/Chat/A2UIView/urbicon/a2ui-urbicon-registry.js +783 -0
- package/dist/components/Chat/A2UIView/urbicon/a2ui-urbicon.variants.d.ts +43 -0
- package/dist/components/Chat/A2UIView/urbicon/a2ui-urbicon.variants.js +33 -0
- package/dist/components/Chat/A2UIView/urbicon/urbicon-axes.gen.d.ts +7 -0
- package/dist/components/Chat/A2UIView/urbicon/urbicon-axes.gen.js +86 -0
- package/dist/components/Chat/ChatMessage/chat-message.variants.d.ts +19 -19
- package/dist/components/CopyButton/copy-button.variants.d.ts +4 -4
- package/dist/components/FileUpload/FileUpload.svelte +8 -5
- package/dist/components/FileUpload/fileUpload.variants.js +15 -4
- package/dist/components/PinInput/PinInput.svelte +1 -0
- package/dist/components/PinInput/pin-input.variants.js +14 -1
- package/dist/components/TimeInput/time-input.variants.js +16 -1
- package/dist/i18n/index.d.ts +2 -398
- package/dist/internal/field-chrome.d.ts +18 -1
- package/dist/internal/field-chrome.js +18 -1
- package/dist/primitives/Alert/alert.variants.d.ts +8 -8
- package/dist/primitives/Avatar/avatar.variants.js +4 -1
- package/dist/primitives/Badge/badge.variants.js +11 -2
- package/dist/primitives/Button/button.variants.js +4 -1
- package/dist/primitives/Card/card.variants.js +4 -1
- package/dist/primitives/Checkbox/checkbox.variants.js +7 -1
- package/dist/primitives/Combobox/Combobox.svelte +9 -1
- package/dist/primitives/Combobox/combobox.variants.d.ts +25 -0
- package/dist/primitives/Combobox/combobox.variants.js +32 -3
- package/dist/primitives/Combobox/index.d.ts +8 -2
- package/dist/primitives/Dialog/dialog.variants.js +4 -1
- package/dist/primitives/Drawer/drawer.variants.js +4 -1
- package/dist/primitives/Input/input.variants.js +17 -1
- package/dist/primitives/JourneyTimeline/journey-timeline.variants.d.ts +22 -22
- package/dist/primitives/Menu/menu.variants.js +5 -1
- package/dist/primitives/Progress/progress.variants.js +5 -2
- package/dist/primitives/RadioGroup/radioGroup.variants.js +68 -9
- package/dist/primitives/Select/select.variants.js +13 -4
- package/dist/primitives/Slider/Slider.svelte +4 -1
- package/dist/primitives/Slider/slider.variants.js +9 -2
- package/dist/primitives/Spinner/spinner.variants.d.ts +16 -16
- package/dist/primitives/Stepper/stepper.variants.d.ts +11 -11
- package/dist/primitives/Textarea/textarea.variants.js +15 -1
- package/dist/primitives/Toast/Toaster.svelte +6 -9
- package/dist/primitives/Toast/toast.variants.d.ts +12 -12
- package/dist/primitives/Toast/toast.variants.js +5 -1
- package/dist/primitives/Toggle/toggle.variants.js +92 -18
- package/dist/primitives/Tooltip/tooltip.variants.d.ts +3 -3
- package/dist/primitives/Tooltip/tooltip.variants.js +5 -1
- package/dist/style/themes/index.css +8 -2
- package/dist/utils/guide.svelte.js +16 -4
- package/dist/utils/persistent-state.svelte.d.ts +25 -1
- package/dist/utils/persistent-state.svelte.js +98 -10
- package/docs/MIGRATION-v5.md +29 -0
- package/package.json +3 -3
|
@@ -307,12 +307,20 @@
|
|
|
307
307
|
};
|
|
308
308
|
});
|
|
309
309
|
|
|
310
|
+
// `error` is the same signal that drives `aria-invalid` (`ff.invalid`), so
|
|
311
|
+
// the visible frame and the announced state can never disagree. It also
|
|
312
|
+
// reaches `resolveSlotClasses`, so a consumer `overrides` entry can target
|
|
313
|
+
// the invalid state.
|
|
310
314
|
const variantProps: ComboboxVariants = $derived({
|
|
311
315
|
variant,
|
|
312
316
|
tier: effectiveTier,
|
|
313
317
|
size,
|
|
314
318
|
open,
|
|
315
|
-
disabled
|
|
319
|
+
disabled,
|
|
320
|
+
// `|| undefined` rather than a plain `false`, matching Input: these props
|
|
321
|
+
// are also matched against `BlocksProvider` `overrides`, where an entry
|
|
322
|
+
// keyed `{ error: false }` must not fire on a valid field.
|
|
323
|
+
error: ff.invalid || undefined
|
|
316
324
|
});
|
|
317
325
|
const styles = $derived(comboboxVariants(variantProps));
|
|
318
326
|
|
|
@@ -5,6 +5,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
5
5
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
6
6
|
open?: boolean | undefined;
|
|
7
7
|
disabled?: boolean | undefined;
|
|
8
|
+
error?: boolean | undefined;
|
|
8
9
|
} | undefined) => {
|
|
9
10
|
base: (props?: ({
|
|
10
11
|
tier?: "commit" | "modify" | undefined;
|
|
@@ -12,6 +13,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
12
13
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
13
14
|
open?: boolean | undefined;
|
|
14
15
|
disabled?: boolean | undefined;
|
|
16
|
+
error?: boolean | undefined;
|
|
15
17
|
} & {
|
|
16
18
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
17
19
|
}) | undefined) => string;
|
|
@@ -21,6 +23,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
21
23
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
22
24
|
open?: boolean | undefined;
|
|
23
25
|
disabled?: boolean | undefined;
|
|
26
|
+
error?: boolean | undefined;
|
|
24
27
|
} & {
|
|
25
28
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
26
29
|
}) | undefined) => string;
|
|
@@ -30,6 +33,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
30
33
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
31
34
|
open?: boolean | undefined;
|
|
32
35
|
disabled?: boolean | undefined;
|
|
36
|
+
error?: boolean | undefined;
|
|
33
37
|
} & {
|
|
34
38
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
35
39
|
}) | undefined) => string;
|
|
@@ -39,6 +43,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
39
43
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
40
44
|
open?: boolean | undefined;
|
|
41
45
|
disabled?: boolean | undefined;
|
|
46
|
+
error?: boolean | undefined;
|
|
42
47
|
} & {
|
|
43
48
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
44
49
|
}) | undefined) => string;
|
|
@@ -48,6 +53,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
48
53
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
49
54
|
open?: boolean | undefined;
|
|
50
55
|
disabled?: boolean | undefined;
|
|
56
|
+
error?: boolean | undefined;
|
|
51
57
|
} & {
|
|
52
58
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
53
59
|
}) | undefined) => string;
|
|
@@ -57,6 +63,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
57
63
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
58
64
|
open?: boolean | undefined;
|
|
59
65
|
disabled?: boolean | undefined;
|
|
66
|
+
error?: boolean | undefined;
|
|
60
67
|
} & {
|
|
61
68
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
62
69
|
}) | undefined) => string;
|
|
@@ -66,6 +73,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
66
73
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
67
74
|
open?: boolean | undefined;
|
|
68
75
|
disabled?: boolean | undefined;
|
|
76
|
+
error?: boolean | undefined;
|
|
69
77
|
} & {
|
|
70
78
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
71
79
|
}) | undefined) => string;
|
|
@@ -75,6 +83,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
75
83
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
76
84
|
open?: boolean | undefined;
|
|
77
85
|
disabled?: boolean | undefined;
|
|
86
|
+
error?: boolean | undefined;
|
|
78
87
|
} & {
|
|
79
88
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
80
89
|
}) | undefined) => string;
|
|
@@ -84,6 +93,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
84
93
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
85
94
|
open?: boolean | undefined;
|
|
86
95
|
disabled?: boolean | undefined;
|
|
96
|
+
error?: boolean | undefined;
|
|
87
97
|
} & {
|
|
88
98
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
89
99
|
}) | undefined) => string;
|
|
@@ -93,6 +103,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
93
103
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
94
104
|
open?: boolean | undefined;
|
|
95
105
|
disabled?: boolean | undefined;
|
|
106
|
+
error?: boolean | undefined;
|
|
96
107
|
} & {
|
|
97
108
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
98
109
|
}) | undefined) => string;
|
|
@@ -102,6 +113,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
102
113
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
103
114
|
open?: boolean | undefined;
|
|
104
115
|
disabled?: boolean | undefined;
|
|
116
|
+
error?: boolean | undefined;
|
|
105
117
|
} & {
|
|
106
118
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
107
119
|
}) | undefined) => string;
|
|
@@ -111,6 +123,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
111
123
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
112
124
|
open?: boolean | undefined;
|
|
113
125
|
disabled?: boolean | undefined;
|
|
126
|
+
error?: boolean | undefined;
|
|
114
127
|
} & {
|
|
115
128
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
116
129
|
}) | undefined) => string;
|
|
@@ -120,6 +133,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
120
133
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
121
134
|
open?: boolean | undefined;
|
|
122
135
|
disabled?: boolean | undefined;
|
|
136
|
+
error?: boolean | undefined;
|
|
123
137
|
} & {
|
|
124
138
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
125
139
|
}) | undefined) => string;
|
|
@@ -129,6 +143,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
129
143
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
130
144
|
open?: boolean | undefined;
|
|
131
145
|
disabled?: boolean | undefined;
|
|
146
|
+
error?: boolean | undefined;
|
|
132
147
|
} & {
|
|
133
148
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
134
149
|
}) | undefined) => string;
|
|
@@ -138,6 +153,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
138
153
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
139
154
|
open?: boolean | undefined;
|
|
140
155
|
disabled?: boolean | undefined;
|
|
156
|
+
error?: boolean | undefined;
|
|
141
157
|
} & {
|
|
142
158
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
143
159
|
}) | undefined) => string;
|
|
@@ -147,6 +163,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
147
163
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
148
164
|
open?: boolean | undefined;
|
|
149
165
|
disabled?: boolean | undefined;
|
|
166
|
+
error?: boolean | undefined;
|
|
150
167
|
} & {
|
|
151
168
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
152
169
|
}) | undefined) => string;
|
|
@@ -156,6 +173,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
156
173
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
157
174
|
open?: boolean | undefined;
|
|
158
175
|
disabled?: boolean | undefined;
|
|
176
|
+
error?: boolean | undefined;
|
|
159
177
|
} & {
|
|
160
178
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
161
179
|
}) | undefined) => string;
|
|
@@ -165,6 +183,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
165
183
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
166
184
|
open?: boolean | undefined;
|
|
167
185
|
disabled?: boolean | undefined;
|
|
186
|
+
error?: boolean | undefined;
|
|
168
187
|
} & {
|
|
169
188
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
170
189
|
}) | undefined) => string;
|
|
@@ -174,6 +193,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
174
193
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
175
194
|
open?: boolean | undefined;
|
|
176
195
|
disabled?: boolean | undefined;
|
|
196
|
+
error?: boolean | undefined;
|
|
177
197
|
} & {
|
|
178
198
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
179
199
|
}) | undefined) => string;
|
|
@@ -183,6 +203,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
183
203
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
184
204
|
open?: boolean | undefined;
|
|
185
205
|
disabled?: boolean | undefined;
|
|
206
|
+
error?: boolean | undefined;
|
|
186
207
|
} & {
|
|
187
208
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
188
209
|
}) | undefined) => string;
|
|
@@ -192,6 +213,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
192
213
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
193
214
|
open?: boolean | undefined;
|
|
194
215
|
disabled?: boolean | undefined;
|
|
216
|
+
error?: boolean | undefined;
|
|
195
217
|
} & {
|
|
196
218
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
197
219
|
}) | undefined) => string;
|
|
@@ -201,6 +223,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
201
223
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
202
224
|
open?: boolean | undefined;
|
|
203
225
|
disabled?: boolean | undefined;
|
|
226
|
+
error?: boolean | undefined;
|
|
204
227
|
} & {
|
|
205
228
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
206
229
|
}) | undefined) => string;
|
|
@@ -210,6 +233,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
210
233
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
211
234
|
open?: boolean | undefined;
|
|
212
235
|
disabled?: boolean | undefined;
|
|
236
|
+
error?: boolean | undefined;
|
|
213
237
|
} & {
|
|
214
238
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
215
239
|
}) | undefined) => string;
|
|
@@ -219,6 +243,7 @@ export declare const comboboxVariants: ((props?: {
|
|
|
219
243
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
220
244
|
open?: boolean | undefined;
|
|
221
245
|
disabled?: boolean | undefined;
|
|
246
|
+
error?: boolean | undefined;
|
|
222
247
|
} & {
|
|
223
248
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
224
249
|
}) | undefined) => string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FIELD_MESSAGE_TONES, fieldErrorFrame } from '../../internal/field-chrome.js';
|
|
1
2
|
import { tv } from '../../utils/variants.js';
|
|
2
3
|
export const comboboxVariants = tv({
|
|
3
4
|
slots: {
|
|
@@ -14,8 +15,15 @@ export const comboboxVariants = tv({
|
|
|
14
15
|
'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:border-primary',
|
|
15
16
|
'disabled:opacity-50 disabled:cursor-not-allowed'
|
|
16
17
|
],
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
// Message tone follows the ROLE of the text, not the field state: the
|
|
19
|
+
// `message` slot only ever renders the `error` string (the markup picks it
|
|
20
|
+
// over `helper`, they are mutually exclusive), so the two slots carry the
|
|
21
|
+
// two shared field-message tones — a helper never reads red. Sibling
|
|
22
|
+
// fields express the same thing through a `messageType` axis because they
|
|
23
|
+
// render both roles through ONE `message` slot; here the slot split
|
|
24
|
+
// already encodes it.
|
|
25
|
+
message: ['text-xs', FIELD_MESSAGE_TONES.error],
|
|
26
|
+
helper: ['text-xs', FIELD_MESSAGE_TONES.helper],
|
|
19
27
|
// `position`, `width`, `overflow-y` are set inline in Combobox.svelte
|
|
20
28
|
// so the native `popover="manual"` top-layer rendering works
|
|
21
29
|
// correctly and the UA's `overflow: auto` doesn't render a duplicate
|
|
@@ -204,6 +212,26 @@ export const comboboxVariants = tv({
|
|
|
204
212
|
},
|
|
205
213
|
disabled: {
|
|
206
214
|
true: { base: 'opacity-50 pointer-events-none' }
|
|
215
|
+
},
|
|
216
|
+
// Validation frame, at parity with every other field — the SHARED fragment
|
|
217
|
+
// (`fieldErrorFrame`), not a hand-copied one, so the next token fix cannot
|
|
218
|
+
// miss Combobox the way it missed it before this axis existed (until then
|
|
219
|
+
// an invalid Combobox only announced itself via `aria-invalid`, with no
|
|
220
|
+
// visible frame at all).
|
|
221
|
+
//
|
|
222
|
+
// Both frames are painted because the visible frame moves between modes:
|
|
223
|
+
// single mode wears it on the `input`, multi mode on the tokenizer
|
|
224
|
+
// `control` — which lights via `focus-within`, since focus lives on the
|
|
225
|
+
// borderless search input inside it. Declared LAST so it wins the
|
|
226
|
+
// border/ring buckets against `variant`; Combobox has no `intent` axis (a
|
|
227
|
+
// deliberate non-goal for now), so nothing else competes. If one is ever
|
|
228
|
+
// added, move this frame to the compound stage — see the precedence note
|
|
229
|
+
// in input.variants.ts.
|
|
230
|
+
error: {
|
|
231
|
+
true: {
|
|
232
|
+
input: fieldErrorFrame('focus-visible'),
|
|
233
|
+
control: fieldErrorFrame('focus-within')
|
|
234
|
+
}
|
|
207
235
|
}
|
|
208
236
|
},
|
|
209
237
|
defaultVariants: {
|
|
@@ -211,6 +239,7 @@ export const comboboxVariants = tv({
|
|
|
211
239
|
variant: 'outlined',
|
|
212
240
|
size: 'md',
|
|
213
241
|
open: false,
|
|
214
|
-
disabled: false
|
|
242
|
+
disabled: false,
|
|
243
|
+
error: false
|
|
215
244
|
}
|
|
216
245
|
});
|
|
@@ -20,7 +20,7 @@ export interface ComboboxGroup<T extends SelectValue = string> {
|
|
|
20
20
|
* live on {@link ComboboxSingleProps} / {@link ComboboxMultipleProps} and narrow
|
|
21
21
|
* against `multiple`.
|
|
22
22
|
*/
|
|
23
|
-
interface ComboboxBaseProps<T extends SelectValue = string> extends ComboboxVariants, Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
23
|
+
interface ComboboxBaseProps<T extends SelectValue = string> extends Omit<ComboboxVariants, 'error'>, Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
24
24
|
/** Array of selectable options. Each needs a unique `value`. */
|
|
25
25
|
options?: ComboboxOption<T>[];
|
|
26
26
|
/**
|
|
@@ -38,7 +38,13 @@ interface ComboboxBaseProps<T extends SelectValue = string> extends ComboboxVari
|
|
|
38
38
|
label?: string;
|
|
39
39
|
/** Helper text shown below the field. Hidden when an error is set. */
|
|
40
40
|
helper?: string;
|
|
41
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* Error message — replaces helper text, flags the field as invalid
|
|
43
|
+
* (`aria-invalid`) and paints the shared danger frame on the input (single
|
|
44
|
+
* mode) or the tokenizer control (multi). The string prop shadows the boolean
|
|
45
|
+
* `error` variant axis, which the component derives from it (mirrors Input /
|
|
46
|
+
* Select) — that is what the `Omit` above is for.
|
|
47
|
+
*/
|
|
42
48
|
error?: string;
|
|
43
49
|
/**
|
|
44
50
|
* Marks the field as required. Adds the asterisk on the label. @default false
|
|
@@ -37,7 +37,10 @@ export const dialogVariants = tv({
|
|
|
37
37
|
// internal/core/.
|
|
38
38
|
closeButton: [
|
|
39
39
|
'relative font-medium text-center whitespace-nowrap border overflow-hidden',
|
|
40
|
-
|
|
40
|
+
// `scale`, NOT `transform` — mirrors buttonVariants.base: Tailwind 4 emits
|
|
41
|
+
// `scale-*` as the discrete `scale:` property, so `active:scale-[0.98]`
|
|
42
|
+
// below only animates if the list names `scale`.
|
|
43
|
+
'transition-[color,background-color,border-color,box-shadow,opacity,scale] duration-[var(--blocks-duration-fast)] ease-out',
|
|
41
44
|
'rounded-commit bg-transparent border-transparent shadow-none',
|
|
42
45
|
'hover:shadow-[var(--blocks-shadow-md)] active:scale-[0.98] active:shadow-[var(--blocks-shadow-sm)]',
|
|
43
46
|
'h-8 px-3 text-sm gap-1.5 text-neutral-emphasis hover:bg-neutral-subtle',
|
|
@@ -29,7 +29,10 @@ export const drawerVariants = tv({
|
|
|
29
29
|
// See internal/core/.
|
|
30
30
|
closeButton: [
|
|
31
31
|
'relative font-medium text-center whitespace-nowrap border overflow-hidden',
|
|
32
|
-
|
|
32
|
+
// `scale`, NOT `transform` — mirrors buttonVariants.base: Tailwind 4 emits
|
|
33
|
+
// `scale-*` as the discrete `scale:` property, so `active:scale-[0.98]`
|
|
34
|
+
// below only animates if the list names `scale`.
|
|
35
|
+
'transition-[color,background-color,border-color,box-shadow,opacity,scale] duration-[var(--blocks-duration-fast)] ease-out',
|
|
33
36
|
'rounded-commit bg-transparent border-transparent shadow-none',
|
|
34
37
|
'hover:shadow-[var(--blocks-shadow-md)] active:scale-[0.98] active:shadow-[var(--blocks-shadow-sm)]',
|
|
35
38
|
'h-8 px-3 text-sm gap-1.5 text-neutral-emphasis hover:bg-neutral-subtle',
|
|
@@ -125,9 +125,11 @@ export const inputVariants = tv({
|
|
|
125
125
|
error: { message: FIELD_MESSAGE_TONES.error },
|
|
126
126
|
helper: { message: FIELD_MESSAGE_TONES.helper }
|
|
127
127
|
},
|
|
128
|
+
// The error FRAME is not declared here — it lives in the compound stage
|
|
129
|
+
// below, where it beats `intent` by construction. See the precedence note
|
|
130
|
+
// on the first compound entry.
|
|
128
131
|
error: {
|
|
129
132
|
true: {
|
|
130
|
-
base: fieldErrorFrame(focus),
|
|
131
133
|
message: FIELD_MESSAGE_TONES.error
|
|
132
134
|
}
|
|
133
135
|
},
|
|
@@ -144,6 +146,20 @@ export const inputVariants = tv({
|
|
|
144
146
|
}
|
|
145
147
|
},
|
|
146
148
|
compoundVariants: [
|
|
149
|
+
// ── Validation precedence: `error` beats `intent`, explicitly ────────────
|
|
150
|
+
// Both axes paint the SAME three buckets (border-color plus the focused
|
|
151
|
+
// border/ring tint), so exactly one of them can win. Emitting the error
|
|
152
|
+
// frame here rather than on the `error` axis makes that rule structural:
|
|
153
|
+
// compounds always fold after every axis, so `error: true` overrides
|
|
154
|
+
// whatever `intent` painted regardless of how the axes are ordered above.
|
|
155
|
+
// Previously the winner was decided purely by `error` happening to be
|
|
156
|
+
// DECLARED after `intent` — reordering the axes (or slipping a new one
|
|
157
|
+
// between them) would have silently turned validation feedback back into a
|
|
158
|
+
// green/amber frame. `intent` keeps its tonal job for the non-error states.
|
|
159
|
+
{
|
|
160
|
+
error: true,
|
|
161
|
+
class: { base: fieldErrorFrame(focus) }
|
|
162
|
+
},
|
|
147
163
|
// Ghost keeps a transparent border in its resting state — even when an
|
|
148
164
|
// intent would otherwise colour it. The error state intentionally drops
|
|
149
165
|
// this override so validation feedback (`border-danger`) stays visible.
|
|
@@ -2,7 +2,7 @@ import { type SlotNames, type VariantProps } from '../../utils/variants.js';
|
|
|
2
2
|
export declare const journeyTimelineVariants: ((props?: {
|
|
3
3
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
4
4
|
size?: "sm" | "md" | "lg" | undefined;
|
|
5
|
-
status?: "
|
|
5
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
6
6
|
focused?: boolean | undefined;
|
|
7
7
|
interactive?: boolean | undefined;
|
|
8
8
|
travelled?: boolean | undefined;
|
|
@@ -13,7 +13,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
13
13
|
base: (props?: ({
|
|
14
14
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
15
15
|
size?: "sm" | "md" | "lg" | undefined;
|
|
16
|
-
status?: "
|
|
16
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
17
17
|
focused?: boolean | undefined;
|
|
18
18
|
interactive?: boolean | undefined;
|
|
19
19
|
travelled?: boolean | undefined;
|
|
@@ -26,7 +26,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
26
26
|
rail: (props?: ({
|
|
27
27
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
28
28
|
size?: "sm" | "md" | "lg" | undefined;
|
|
29
|
-
status?: "
|
|
29
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
30
30
|
focused?: boolean | undefined;
|
|
31
31
|
interactive?: boolean | undefined;
|
|
32
32
|
travelled?: boolean | undefined;
|
|
@@ -39,7 +39,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
39
39
|
node: (props?: ({
|
|
40
40
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
41
41
|
size?: "sm" | "md" | "lg" | undefined;
|
|
42
|
-
status?: "
|
|
42
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
43
43
|
focused?: boolean | undefined;
|
|
44
44
|
interactive?: boolean | undefined;
|
|
45
45
|
travelled?: boolean | undefined;
|
|
@@ -52,7 +52,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
52
52
|
metaColumn: (props?: ({
|
|
53
53
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
54
54
|
size?: "sm" | "md" | "lg" | undefined;
|
|
55
|
-
status?: "
|
|
55
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
56
56
|
focused?: boolean | undefined;
|
|
57
57
|
interactive?: boolean | undefined;
|
|
58
58
|
travelled?: boolean | undefined;
|
|
@@ -65,7 +65,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
65
65
|
meta: (props?: ({
|
|
66
66
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
67
67
|
size?: "sm" | "md" | "lg" | undefined;
|
|
68
|
-
status?: "
|
|
68
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
69
69
|
focused?: boolean | undefined;
|
|
70
70
|
interactive?: boolean | undefined;
|
|
71
71
|
travelled?: boolean | undefined;
|
|
@@ -78,7 +78,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
78
78
|
markerColumn: (props?: ({
|
|
79
79
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
80
80
|
size?: "sm" | "md" | "lg" | undefined;
|
|
81
|
-
status?: "
|
|
81
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
82
82
|
focused?: boolean | undefined;
|
|
83
83
|
interactive?: boolean | undefined;
|
|
84
84
|
travelled?: boolean | undefined;
|
|
@@ -91,7 +91,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
91
91
|
marker: (props?: ({
|
|
92
92
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
93
93
|
size?: "sm" | "md" | "lg" | undefined;
|
|
94
|
-
status?: "
|
|
94
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
95
95
|
focused?: boolean | undefined;
|
|
96
96
|
interactive?: boolean | undefined;
|
|
97
97
|
travelled?: boolean | undefined;
|
|
@@ -104,7 +104,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
104
104
|
connector: (props?: ({
|
|
105
105
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
106
106
|
size?: "sm" | "md" | "lg" | undefined;
|
|
107
|
-
status?: "
|
|
107
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
108
108
|
focused?: boolean | undefined;
|
|
109
109
|
interactive?: boolean | undefined;
|
|
110
110
|
travelled?: boolean | undefined;
|
|
@@ -117,7 +117,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
117
117
|
content: (props?: ({
|
|
118
118
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
119
119
|
size?: "sm" | "md" | "lg" | undefined;
|
|
120
|
-
status?: "
|
|
120
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
121
121
|
focused?: boolean | undefined;
|
|
122
122
|
interactive?: boolean | undefined;
|
|
123
123
|
travelled?: boolean | undefined;
|
|
@@ -130,7 +130,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
130
130
|
card: (props?: ({
|
|
131
131
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
132
132
|
size?: "sm" | "md" | "lg" | undefined;
|
|
133
|
-
status?: "
|
|
133
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
134
134
|
focused?: boolean | undefined;
|
|
135
135
|
interactive?: boolean | undefined;
|
|
136
136
|
travelled?: boolean | undefined;
|
|
@@ -143,7 +143,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
143
143
|
header: (props?: ({
|
|
144
144
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
145
145
|
size?: "sm" | "md" | "lg" | undefined;
|
|
146
|
-
status?: "
|
|
146
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
147
147
|
focused?: boolean | undefined;
|
|
148
148
|
interactive?: boolean | undefined;
|
|
149
149
|
travelled?: boolean | undefined;
|
|
@@ -156,7 +156,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
156
156
|
trigger: (props?: ({
|
|
157
157
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
158
158
|
size?: "sm" | "md" | "lg" | undefined;
|
|
159
|
-
status?: "
|
|
159
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
160
160
|
focused?: boolean | undefined;
|
|
161
161
|
interactive?: boolean | undefined;
|
|
162
162
|
travelled?: boolean | undefined;
|
|
@@ -169,7 +169,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
169
169
|
trailing: (props?: ({
|
|
170
170
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
171
171
|
size?: "sm" | "md" | "lg" | undefined;
|
|
172
|
-
status?: "
|
|
172
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
173
173
|
focused?: boolean | undefined;
|
|
174
174
|
interactive?: boolean | undefined;
|
|
175
175
|
travelled?: boolean | undefined;
|
|
@@ -182,7 +182,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
182
182
|
labelGroup: (props?: ({
|
|
183
183
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
184
184
|
size?: "sm" | "md" | "lg" | undefined;
|
|
185
|
-
status?: "
|
|
185
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
186
186
|
focused?: boolean | undefined;
|
|
187
187
|
interactive?: boolean | undefined;
|
|
188
188
|
travelled?: boolean | undefined;
|
|
@@ -195,7 +195,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
195
195
|
title: (props?: ({
|
|
196
196
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
197
197
|
size?: "sm" | "md" | "lg" | undefined;
|
|
198
|
-
status?: "
|
|
198
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
199
199
|
focused?: boolean | undefined;
|
|
200
200
|
interactive?: boolean | undefined;
|
|
201
201
|
travelled?: boolean | undefined;
|
|
@@ -208,7 +208,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
208
208
|
subtitle: (props?: ({
|
|
209
209
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
210
210
|
size?: "sm" | "md" | "lg" | undefined;
|
|
211
|
-
status?: "
|
|
211
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
212
212
|
focused?: boolean | undefined;
|
|
213
213
|
interactive?: boolean | undefined;
|
|
214
214
|
travelled?: boolean | undefined;
|
|
@@ -221,7 +221,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
221
221
|
segment: (props?: ({
|
|
222
222
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
223
223
|
size?: "sm" | "md" | "lg" | undefined;
|
|
224
|
-
status?: "
|
|
224
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
225
225
|
focused?: boolean | undefined;
|
|
226
226
|
interactive?: boolean | undefined;
|
|
227
227
|
travelled?: boolean | undefined;
|
|
@@ -234,7 +234,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
234
234
|
detail: (props?: ({
|
|
235
235
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
236
236
|
size?: "sm" | "md" | "lg" | undefined;
|
|
237
|
-
status?: "
|
|
237
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
238
238
|
focused?: boolean | undefined;
|
|
239
239
|
interactive?: boolean | undefined;
|
|
240
240
|
travelled?: boolean | undefined;
|
|
@@ -247,7 +247,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
247
247
|
detailInner: (props?: ({
|
|
248
248
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
249
249
|
size?: "sm" | "md" | "lg" | undefined;
|
|
250
|
-
status?: "
|
|
250
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
251
251
|
focused?: boolean | undefined;
|
|
252
252
|
interactive?: boolean | undefined;
|
|
253
253
|
travelled?: boolean | undefined;
|
|
@@ -260,7 +260,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
260
260
|
detailContent: (props?: ({
|
|
261
261
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
262
262
|
size?: "sm" | "md" | "lg" | undefined;
|
|
263
|
-
status?: "
|
|
263
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
264
264
|
focused?: boolean | undefined;
|
|
265
265
|
interactive?: boolean | undefined;
|
|
266
266
|
travelled?: boolean | undefined;
|
|
@@ -273,7 +273,7 @@ export declare const journeyTimelineVariants: ((props?: {
|
|
|
273
273
|
panel: (props?: ({
|
|
274
274
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
275
275
|
size?: "sm" | "md" | "lg" | undefined;
|
|
276
|
-
status?: "
|
|
276
|
+
status?: "blocked" | "attention" | "active" | "complete" | "pending" | "skipped" | undefined;
|
|
277
277
|
focused?: boolean | undefined;
|
|
278
278
|
interactive?: boolean | undefined;
|
|
279
279
|
travelled?: boolean | undefined;
|
|
@@ -5,7 +5,11 @@ export const menuVariants = tv({
|
|
|
5
5
|
trigger: ['w-full justify-between gap-3 min-w-36'],
|
|
6
6
|
triggerText: ['flex flex-1 items-center text-left truncate'],
|
|
7
7
|
chevron: [
|
|
8
|
-
|
|
8
|
+
// `rotate,translate`, NOT `transform`: Tailwind 4 emits `rotate-*` /
|
|
9
|
+
// `translate-*` as the discrete `rotate:` / `translate:` properties. The
|
|
10
|
+
// `chevronAnimation` axis drives exactly those two (rotate-0 ↔ rotate-180,
|
|
11
|
+
// translate-y-0 ↔ translate-y-1), so a `transform` entry animated neither.
|
|
12
|
+
'w-4 h-4 shrink-0 opacity-70 transition-[opacity,rotate,translate] duration-[var(--blocks-duration-fast)] ease-out'
|
|
9
13
|
],
|
|
10
14
|
// Floating panel surface. Position is owned by the wrapping Popover
|
|
11
15
|
// (Floating UI sets `top` / `left` on its container); this slot just
|