@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.
Files changed (84) hide show
  1. package/dist/components/Calendar/calendar.variants.d.ts +63 -63
  2. package/dist/components/Chat/A2UIView/A2UINode.svelte +20 -39
  3. package/dist/components/Chat/A2UIView/A2UIView.svelte +47 -50
  4. package/dist/components/Chat/A2UIView/a2ui-basic-catalog.d.ts +17 -0
  5. package/dist/components/Chat/A2UIView/a2ui-basic-catalog.js +69 -0
  6. package/dist/components/Chat/A2UIView/a2ui-catalog.d.ts +95 -0
  7. package/dist/components/Chat/A2UIView/a2ui-catalog.js +87 -0
  8. package/dist/components/Chat/A2UIView/a2ui-node-common.d.ts +40 -0
  9. package/dist/components/Chat/A2UIView/a2ui-node-common.js +72 -0
  10. package/dist/components/Chat/A2UIView/a2ui-prompt.d.ts +21 -10
  11. package/dist/components/Chat/A2UIView/a2ui-prompt.js +170 -24
  12. package/dist/components/Chat/A2UIView/a2ui-registry.d.ts +1 -1
  13. package/dist/components/Chat/A2UIView/a2ui-registry.js +2 -1
  14. package/dist/components/Chat/A2UIView/a2ui-render.d.ts +30 -0
  15. package/dist/components/Chat/A2UIView/a2ui-render.js +61 -23
  16. package/dist/components/Chat/A2UIView/a2ui-router.d.ts +136 -0
  17. package/dist/components/Chat/A2UIView/a2ui-router.js +264 -0
  18. package/dist/components/Chat/A2UIView/a2ui-schema.d.ts +45 -0
  19. package/dist/components/Chat/A2UIView/a2ui-schema.js +133 -0
  20. package/dist/components/Chat/A2UIView/a2ui-stream.d.ts +120 -0
  21. package/dist/components/Chat/A2UIView/a2ui-stream.js +406 -0
  22. package/dist/components/Chat/A2UIView/a2ui-transcript.d.ts +65 -0
  23. package/dist/components/Chat/A2UIView/a2ui-transcript.js +101 -0
  24. package/dist/components/Chat/A2UIView/a2ui-validate.d.ts +33 -1
  25. package/dist/components/Chat/A2UIView/a2ui-validate.js +167 -63
  26. package/dist/components/Chat/A2UIView/a2ui.types.d.ts +50 -0
  27. package/dist/components/Chat/A2UIView/a2ui.types.js +38 -1
  28. package/dist/components/Chat/A2UIView/index.d.ts +35 -2
  29. package/dist/components/Chat/A2UIView/index.js +13 -0
  30. package/dist/components/Chat/A2UIView/urbicon/UrbiconA2UINode.svelte +831 -0
  31. package/dist/components/Chat/A2UIView/urbicon/UrbiconA2UINode.svelte.d.ts +4 -0
  32. package/dist/components/Chat/A2UIView/urbicon/a2ui-urbicon-catalog.d.ts +14 -0
  33. package/dist/components/Chat/A2UIView/urbicon/a2ui-urbicon-catalog.js +87 -0
  34. package/dist/components/Chat/A2UIView/urbicon/a2ui-urbicon-registry.d.ts +78 -0
  35. package/dist/components/Chat/A2UIView/urbicon/a2ui-urbicon-registry.js +783 -0
  36. package/dist/components/Chat/A2UIView/urbicon/a2ui-urbicon.variants.d.ts +43 -0
  37. package/dist/components/Chat/A2UIView/urbicon/a2ui-urbicon.variants.js +33 -0
  38. package/dist/components/Chat/A2UIView/urbicon/urbicon-axes.gen.d.ts +7 -0
  39. package/dist/components/Chat/A2UIView/urbicon/urbicon-axes.gen.js +86 -0
  40. package/dist/components/Chat/ChatMessage/chat-message.variants.d.ts +19 -19
  41. package/dist/components/CopyButton/copy-button.variants.d.ts +4 -4
  42. package/dist/components/FileUpload/FileUpload.svelte +8 -5
  43. package/dist/components/FileUpload/fileUpload.variants.js +15 -4
  44. package/dist/components/PinInput/PinInput.svelte +1 -0
  45. package/dist/components/PinInput/pin-input.variants.js +14 -1
  46. package/dist/components/TimeInput/time-input.variants.js +16 -1
  47. package/dist/i18n/index.d.ts +2 -398
  48. package/dist/internal/field-chrome.d.ts +18 -1
  49. package/dist/internal/field-chrome.js +18 -1
  50. package/dist/primitives/Alert/alert.variants.d.ts +8 -8
  51. package/dist/primitives/Avatar/avatar.variants.js +4 -1
  52. package/dist/primitives/Badge/badge.variants.js +11 -2
  53. package/dist/primitives/Button/button.variants.js +4 -1
  54. package/dist/primitives/Card/card.variants.js +4 -1
  55. package/dist/primitives/Checkbox/checkbox.variants.js +7 -1
  56. package/dist/primitives/Combobox/Combobox.svelte +9 -1
  57. package/dist/primitives/Combobox/combobox.variants.d.ts +25 -0
  58. package/dist/primitives/Combobox/combobox.variants.js +32 -3
  59. package/dist/primitives/Combobox/index.d.ts +8 -2
  60. package/dist/primitives/Dialog/dialog.variants.js +4 -1
  61. package/dist/primitives/Drawer/drawer.variants.js +4 -1
  62. package/dist/primitives/Input/input.variants.js +17 -1
  63. package/dist/primitives/JourneyTimeline/journey-timeline.variants.d.ts +22 -22
  64. package/dist/primitives/Menu/menu.variants.js +5 -1
  65. package/dist/primitives/Progress/progress.variants.js +5 -2
  66. package/dist/primitives/RadioGroup/radioGroup.variants.js +68 -9
  67. package/dist/primitives/Select/select.variants.js +13 -4
  68. package/dist/primitives/Slider/Slider.svelte +4 -1
  69. package/dist/primitives/Slider/slider.variants.js +9 -2
  70. package/dist/primitives/Spinner/spinner.variants.d.ts +16 -16
  71. package/dist/primitives/Stepper/stepper.variants.d.ts +11 -11
  72. package/dist/primitives/Textarea/textarea.variants.js +15 -1
  73. package/dist/primitives/Toast/Toaster.svelte +6 -9
  74. package/dist/primitives/Toast/toast.variants.d.ts +12 -12
  75. package/dist/primitives/Toast/toast.variants.js +5 -1
  76. package/dist/primitives/Toggle/toggle.variants.js +92 -18
  77. package/dist/primitives/Tooltip/tooltip.variants.d.ts +3 -3
  78. package/dist/primitives/Tooltip/tooltip.variants.js +5 -1
  79. package/dist/style/themes/index.css +8 -2
  80. package/dist/utils/guide.svelte.js +16 -4
  81. package/dist/utils/persistent-state.svelte.d.ts +25 -1
  82. package/dist/utils/persistent-state.svelte.js +98 -10
  83. package/docs/MIGRATION-v5.md +29 -0
  84. 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
- message: 'text-xs text-danger',
18
- helper: 'text-xs text-text-tertiary',
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
- /** Error message — replaces helper text and flags the field as invalid. */
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
- 'transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-[var(--blocks-duration-fast)] ease-out',
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
- 'transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-[var(--blocks-duration-fast)] ease-out',
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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?: "complete" | "active" | "pending" | "attention" | "blocked" | "skipped" | undefined;
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
- 'w-4 h-4 shrink-0 opacity-70 transition-[opacity,transform] duration-[var(--blocks-duration-fast)] ease-out'
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