@urbicon-ui/blocks 6.24.0 → 6.26.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 (73) hide show
  1. package/README.md +14 -0
  2. package/dist/components/Calendar/CalendarTimeGrid.svelte +2 -1
  3. package/dist/components/Calendar/calendar.variants.d.ts +63 -63
  4. package/dist/components/Calendar/calendar.variants.js +5 -3
  5. package/dist/components/CommandPalette/CommandPalette.svelte +32 -16
  6. package/dist/components/CommandPalette/CommandPalette.svelte.d.ts +1 -1
  7. package/dist/components/CommandPalette/commandPalette.variants.d.ts +10 -0
  8. package/dist/components/CommandPalette/commandPalette.variants.js +9 -7
  9. package/dist/components/CommandPalette/index.d.ts +19 -0
  10. package/dist/components/CompositionBar/CompositionBar.svelte +2 -2
  11. package/dist/components/CompositionBar/composition-bar.variants.js +1 -1
  12. package/dist/components/Planner/planner.variants.js +1 -1
  13. package/dist/components/Sankey/sankey.variants.js +1 -1
  14. package/dist/i18n/index.d.ts +378 -2
  15. package/dist/internal/charts/variants.js +2 -2
  16. package/dist/internal/date-grid/DateGridScaffold.svelte +9 -2
  17. package/dist/internal/date-grid/date-grid.svelte.d.ts +4 -2
  18. package/dist/internal/date-grid/date-grid.svelte.js +63 -7
  19. package/dist/primitives/Alert/alert.variants.d.ts +8 -8
  20. package/dist/primitives/Alert/alert.variants.js +1 -1
  21. package/dist/primitives/Avatar/Avatar.svelte +38 -24
  22. package/dist/primitives/Avatar/index.d.ts +1 -1
  23. package/dist/primitives/Badge/badge.variants.js +1 -1
  24. package/dist/primitives/Button/Button.svelte +12 -25
  25. package/dist/primitives/Button/button.variants.js +2 -2
  26. package/dist/primitives/ButtonGroup/ButtonGroup.svelte +5 -1
  27. package/dist/primitives/Checkbox/checkbox.variants.js +2 -2
  28. package/dist/primitives/Collapsible/Collapsible.svelte +10 -0
  29. package/dist/primitives/Collapsible/index.d.ts +13 -2
  30. package/dist/primitives/ConfirmDialog/ConfirmDialog.svelte +14 -0
  31. package/dist/primitives/ConfirmDialog/index.d.ts +13 -2
  32. package/dist/primitives/Dialog/Dialog.svelte +36 -8
  33. package/dist/primitives/Drawer/Drawer.svelte +34 -7
  34. package/dist/primitives/Input/Input.svelte +7 -1
  35. package/dist/primitives/JourneyTimeline/journey-timeline.variants.d.ts +22 -22
  36. package/dist/primitives/JourneyTimeline/journey-timeline.variants.js +3 -3
  37. package/dist/primitives/Menu/Menu.svelte +8 -0
  38. package/dist/primitives/Menu/index.d.ts +11 -13
  39. package/dist/primitives/Popover/Popover.svelte +107 -4
  40. package/dist/primitives/Popover/index.d.ts +15 -2
  41. package/dist/primitives/Popover/index.js +1 -1
  42. package/dist/primitives/Popover/popover.variants.d.ts +25 -0
  43. package/dist/primitives/Popover/popover.variants.js +35 -0
  44. package/dist/primitives/Progress/progress.variants.js +1 -1
  45. package/dist/primitives/RadioGroup/radioGroup.variants.js +2 -2
  46. package/dist/primitives/Select/index.d.ts +8 -1
  47. package/dist/primitives/Slider/Slider.svelte +32 -3
  48. package/dist/primitives/Spinner/spinner.variants.d.ts +16 -16
  49. package/dist/primitives/Stepper/stepper.variants.d.ts +11 -11
  50. package/dist/primitives/Stepper/stepper.variants.js +2 -2
  51. package/dist/primitives/Textarea/Textarea.svelte +5 -1
  52. package/dist/primitives/Toast/toast.variants.d.ts +12 -12
  53. package/dist/primitives/Tooltip/tooltip.variants.d.ts +3 -3
  54. package/dist/primitives/Tooltip/tooltip.variants.js +14 -3
  55. package/dist/style/foundation.css +41 -7
  56. package/dist/style/interaction.css +19 -2
  57. package/dist/style/semantic.css +84 -1
  58. package/dist/style/themes/forest.css +3 -1
  59. package/dist/style/themes/neutral.css +10 -1
  60. package/dist/style/themes/ocean.css +5 -1
  61. package/dist/style/themes/sunset.css +3 -1
  62. package/dist/utils/compose-handlers.d.ts +72 -0
  63. package/dist/utils/compose-handlers.js +65 -0
  64. package/dist/utils/figma-token-export.js +6 -2
  65. package/dist/utils/guide.svelte.js +92 -29
  66. package/dist/utils/index.d.ts +1 -1
  67. package/dist/utils/index.js +1 -1
  68. package/dist/utils/overlay-tokens.d.ts +17 -0
  69. package/dist/utils/overlay-tokens.js +30 -0
  70. package/dist/utils/overlay.js +24 -2
  71. package/dist/utils/use-floating-panel.svelte.js +9 -3
  72. package/dist/utils/variants.js +5 -1
  73. package/package.json +3 -3
@@ -35,6 +35,7 @@
35
35
  slotClasses: slotClassesProp = {},
36
36
  preset,
37
37
  'aria-describedby': ariaDescribedby,
38
+ 'aria-labelledby': ariaLabelledby,
38
39
  ...restProps
39
40
  }: SliderProps = $props();
40
41
 
@@ -53,6 +54,8 @@
53
54
  disabled
54
55
  }));
55
56
  const statusId = `${uid}-status`;
57
+ const minLabelId = `${uid}-min-label`;
58
+ const maxLabelId = `${uid}-max-label`;
56
59
 
57
60
  let trackRef = $state<HTMLDivElement>();
58
61
  let dragging = $state<'single' | 'start' | 'end' | null>(null);
@@ -251,6 +254,17 @@
251
254
  .join(' ') || undefined
252
255
  );
253
256
 
257
+ // `aria-labelledby` has the same reach problem as `aria-describedby` above:
258
+ // restProps land on the roleless wrapper div, so an external visible label
259
+ // would never name the focusable thumbs. On the range arm one external label
260
+ // would name both thumbs identically ("Padding" / "Padding"), so it is
261
+ // composed with a visually-hidden minimum/maximum qualifier —
262
+ // aria-labelledby concatenates its references in order, yielding
263
+ // "Padding Minimum" / "Padding Maximum" and preserving the distinction the
264
+ // `label`-prop arm gets for free.
265
+ const startLabelledBy = $derived(ariaLabelledby ? `${ariaLabelledby} ${minLabelId}` : undefined);
266
+ const endLabelledBy = $derived(ariaLabelledby ? `${ariaLabelledby} ${maxLabelId}` : undefined);
267
+
254
268
  $effect(() => {
255
269
  if (trackRef && mint && mint !== 'none' && !disabled) {
256
270
  return mintRegistry.apply(trackRef, mint);
@@ -429,13 +443,22 @@
429
443
  {/if}
430
444
 
431
445
  {#if range}
446
+ {#if ariaLabelledby}
447
+ <span id={minLabelId} class="sr-only">{bt('accessibility.minimum') || 'Minimum'}</span>
448
+ <span id={maxLabelId} class="sr-only">{bt('accessibility.maximum') || 'Maximum'}</span>
449
+ {/if}
432
450
  <div
433
451
  role="slider"
434
452
  tabindex={disabled ? -1 : 0}
435
453
  aria-valuemin={min}
436
454
  aria-valuemax={rangeValue[1]}
437
455
  aria-valuenow={rangeValue[0]}
438
- aria-label={label ? `${label} minimum` : bt('accessibility.minimum') || 'Minimum'}
456
+ aria-labelledby={startLabelledBy}
457
+ aria-label={startLabelledBy
458
+ ? undefined
459
+ : label
460
+ ? `${label} minimum`
461
+ : bt('accessibility.minimum') || 'Minimum'}
439
462
  aria-describedby={describedBy}
440
463
  aria-disabled={disabled || undefined}
441
464
  class={unstyled ? (slotClasses?.thumb ?? '') : styles.thumb({ class: slotClasses?.thumb })}
@@ -449,7 +472,12 @@
449
472
  aria-valuemin={rangeValue[0]}
450
473
  aria-valuemax={max}
451
474
  aria-valuenow={rangeValue[1]}
452
- aria-label={label ? `${label} maximum` : bt('accessibility.maximum') || 'Maximum'}
475
+ aria-labelledby={endLabelledBy}
476
+ aria-label={endLabelledBy
477
+ ? undefined
478
+ : label
479
+ ? `${label} maximum`
480
+ : bt('accessibility.maximum') || 'Maximum'}
453
481
  aria-describedby={describedBy}
454
482
  aria-disabled={disabled || undefined}
455
483
  class={unstyled ? (slotClasses?.thumb ?? '') : styles.thumb({ class: slotClasses?.thumb })}
@@ -464,7 +492,8 @@
464
492
  aria-valuemin={min}
465
493
  aria-valuemax={max}
466
494
  aria-valuenow={singleValue}
467
- aria-label={label || bt('accessibility.slider') || 'Slider'}
495
+ aria-labelledby={ariaLabelledby}
496
+ aria-label={ariaLabelledby ? undefined : label || bt('accessibility.slider') || 'Slider'}
468
497
  aria-describedby={describedBy}
469
498
  aria-disabled={disabled || undefined}
470
499
  class={unstyled ? (slotClasses?.thumb ?? '') : styles.thumb({ class: slotClasses?.thumb })}
@@ -2,13 +2,13 @@ import { type SlotNames, type VariantProps } from '../../utils/variants.js';
2
2
  export declare const spinnerVariants: ((props?: {
3
3
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
4
4
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
5
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
5
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
6
6
  speed?: "fast" | "slow" | "normal" | undefined;
7
7
  } | undefined) => {
8
8
  base: (props?: ({
9
9
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
10
10
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
11
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
11
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
12
12
  speed?: "fast" | "slow" | "normal" | undefined;
13
13
  } & {
14
14
  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;
@@ -16,7 +16,7 @@ export declare const spinnerVariants: ((props?: {
16
16
  svg: (props?: ({
17
17
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
18
18
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
19
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
19
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
20
20
  speed?: "fast" | "slow" | "normal" | undefined;
21
21
  } & {
22
22
  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;
@@ -24,7 +24,7 @@ export declare const spinnerVariants: ((props?: {
24
24
  svgCircle: (props?: ({
25
25
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
26
26
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
27
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
27
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
28
28
  speed?: "fast" | "slow" | "normal" | undefined;
29
29
  } & {
30
30
  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;
@@ -32,7 +32,7 @@ export declare const spinnerVariants: ((props?: {
32
32
  svgPath: (props?: ({
33
33
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
34
34
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
35
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
35
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
36
36
  speed?: "fast" | "slow" | "normal" | undefined;
37
37
  } & {
38
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;
@@ -40,7 +40,7 @@ export declare const spinnerVariants: ((props?: {
40
40
  dots: (props?: ({
41
41
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
42
42
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
43
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
43
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
44
44
  speed?: "fast" | "slow" | "normal" | undefined;
45
45
  } & {
46
46
  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;
@@ -48,7 +48,7 @@ export declare const spinnerVariants: ((props?: {
48
48
  dot: (props?: ({
49
49
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
50
50
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
51
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
51
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
52
52
  speed?: "fast" | "slow" | "normal" | undefined;
53
53
  } & {
54
54
  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;
@@ -56,7 +56,7 @@ export declare const spinnerVariants: ((props?: {
56
56
  pulse: (props?: ({
57
57
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
58
58
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
59
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
59
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
60
60
  speed?: "fast" | "slow" | "normal" | undefined;
61
61
  } & {
62
62
  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;
@@ -64,7 +64,7 @@ export declare const spinnerVariants: ((props?: {
64
64
  pulseCenter: (props?: ({
65
65
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
66
66
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
67
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
67
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
68
68
  speed?: "fast" | "slow" | "normal" | undefined;
69
69
  } & {
70
70
  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;
@@ -72,7 +72,7 @@ export declare const spinnerVariants: ((props?: {
72
72
  pulseRing: (props?: ({
73
73
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
74
74
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
75
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
75
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
76
76
  speed?: "fast" | "slow" | "normal" | undefined;
77
77
  } & {
78
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;
@@ -80,7 +80,7 @@ export declare const spinnerVariants: ((props?: {
80
80
  ring: (props?: ({
81
81
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
82
82
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
83
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
83
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
84
84
  speed?: "fast" | "slow" | "normal" | undefined;
85
85
  } & {
86
86
  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;
@@ -88,7 +88,7 @@ export declare const spinnerVariants: ((props?: {
88
88
  ringElement: (props?: ({
89
89
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
90
90
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
91
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
91
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
92
92
  speed?: "fast" | "slow" | "normal" | undefined;
93
93
  } & {
94
94
  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;
@@ -96,7 +96,7 @@ export declare const spinnerVariants: ((props?: {
96
96
  bars: (props?: ({
97
97
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
98
98
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
99
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
99
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
100
100
  speed?: "fast" | "slow" | "normal" | undefined;
101
101
  } & {
102
102
  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;
@@ -104,7 +104,7 @@ export declare const spinnerVariants: ((props?: {
104
104
  bar: (props?: ({
105
105
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
106
106
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
107
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
107
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
108
108
  speed?: "fast" | "slow" | "normal" | undefined;
109
109
  } & {
110
110
  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;
@@ -112,7 +112,7 @@ export declare const spinnerVariants: ((props?: {
112
112
  content: (props?: ({
113
113
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
114
114
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
115
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
115
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
116
116
  speed?: "fast" | "slow" | "normal" | undefined;
117
117
  } & {
118
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;
@@ -120,7 +120,7 @@ export declare const spinnerVariants: ((props?: {
120
120
  srOnly: (props?: ({
121
121
  variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
122
122
  size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
123
- intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
123
+ intent?: "current" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
124
124
  speed?: "fast" | "slow" | "normal" | undefined;
125
125
  } & {
126
126
  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;
@@ -4,7 +4,7 @@ export declare const stepperVariants: ((props?: {
4
4
  orientation?: "horizontal" | "vertical" | undefined;
5
5
  size?: "sm" | "md" | "lg" | undefined;
6
6
  variant?: "default" | "outlined" | "minimal" | undefined;
7
- stepState?: "error" | "warning" | "active" | "inactive" | "complete" | undefined;
7
+ stepState?: "complete" | "active" | "error" | "warning" | "inactive" | undefined;
8
8
  clickable?: boolean | undefined;
9
9
  stepDisabled?: boolean | undefined;
10
10
  separatorComplete?: boolean | undefined;
@@ -14,7 +14,7 @@ export declare const stepperVariants: ((props?: {
14
14
  orientation?: "horizontal" | "vertical" | undefined;
15
15
  size?: "sm" | "md" | "lg" | undefined;
16
16
  variant?: "default" | "outlined" | "minimal" | undefined;
17
- stepState?: "error" | "warning" | "active" | "inactive" | "complete" | undefined;
17
+ stepState?: "complete" | "active" | "error" | "warning" | "inactive" | undefined;
18
18
  clickable?: boolean | undefined;
19
19
  stepDisabled?: boolean | undefined;
20
20
  separatorComplete?: boolean | undefined;
@@ -26,7 +26,7 @@ export declare const stepperVariants: ((props?: {
26
26
  orientation?: "horizontal" | "vertical" | undefined;
27
27
  size?: "sm" | "md" | "lg" | undefined;
28
28
  variant?: "default" | "outlined" | "minimal" | undefined;
29
- stepState?: "error" | "warning" | "active" | "inactive" | "complete" | undefined;
29
+ stepState?: "complete" | "active" | "error" | "warning" | "inactive" | undefined;
30
30
  clickable?: boolean | undefined;
31
31
  stepDisabled?: boolean | undefined;
32
32
  separatorComplete?: boolean | undefined;
@@ -38,7 +38,7 @@ export declare const stepperVariants: ((props?: {
38
38
  orientation?: "horizontal" | "vertical" | undefined;
39
39
  size?: "sm" | "md" | "lg" | undefined;
40
40
  variant?: "default" | "outlined" | "minimal" | undefined;
41
- stepState?: "error" | "warning" | "active" | "inactive" | "complete" | undefined;
41
+ stepState?: "complete" | "active" | "error" | "warning" | "inactive" | undefined;
42
42
  clickable?: boolean | undefined;
43
43
  stepDisabled?: boolean | undefined;
44
44
  separatorComplete?: boolean | undefined;
@@ -50,7 +50,7 @@ export declare const stepperVariants: ((props?: {
50
50
  orientation?: "horizontal" | "vertical" | undefined;
51
51
  size?: "sm" | "md" | "lg" | undefined;
52
52
  variant?: "default" | "outlined" | "minimal" | undefined;
53
- stepState?: "error" | "warning" | "active" | "inactive" | "complete" | undefined;
53
+ stepState?: "complete" | "active" | "error" | "warning" | "inactive" | undefined;
54
54
  clickable?: boolean | undefined;
55
55
  stepDisabled?: boolean | undefined;
56
56
  separatorComplete?: boolean | undefined;
@@ -62,7 +62,7 @@ export declare const stepperVariants: ((props?: {
62
62
  orientation?: "horizontal" | "vertical" | undefined;
63
63
  size?: "sm" | "md" | "lg" | undefined;
64
64
  variant?: "default" | "outlined" | "minimal" | undefined;
65
- stepState?: "error" | "warning" | "active" | "inactive" | "complete" | undefined;
65
+ stepState?: "complete" | "active" | "error" | "warning" | "inactive" | undefined;
66
66
  clickable?: boolean | undefined;
67
67
  stepDisabled?: boolean | undefined;
68
68
  separatorComplete?: boolean | undefined;
@@ -74,7 +74,7 @@ export declare const stepperVariants: ((props?: {
74
74
  orientation?: "horizontal" | "vertical" | undefined;
75
75
  size?: "sm" | "md" | "lg" | undefined;
76
76
  variant?: "default" | "outlined" | "minimal" | undefined;
77
- stepState?: "error" | "warning" | "active" | "inactive" | "complete" | undefined;
77
+ stepState?: "complete" | "active" | "error" | "warning" | "inactive" | undefined;
78
78
  clickable?: boolean | undefined;
79
79
  stepDisabled?: boolean | undefined;
80
80
  separatorComplete?: boolean | undefined;
@@ -86,7 +86,7 @@ export declare const stepperVariants: ((props?: {
86
86
  orientation?: "horizontal" | "vertical" | undefined;
87
87
  size?: "sm" | "md" | "lg" | undefined;
88
88
  variant?: "default" | "outlined" | "minimal" | undefined;
89
- stepState?: "error" | "warning" | "active" | "inactive" | "complete" | undefined;
89
+ stepState?: "complete" | "active" | "error" | "warning" | "inactive" | undefined;
90
90
  clickable?: boolean | undefined;
91
91
  stepDisabled?: boolean | undefined;
92
92
  separatorComplete?: boolean | undefined;
@@ -98,7 +98,7 @@ export declare const stepperVariants: ((props?: {
98
98
  orientation?: "horizontal" | "vertical" | undefined;
99
99
  size?: "sm" | "md" | "lg" | undefined;
100
100
  variant?: "default" | "outlined" | "minimal" | undefined;
101
- stepState?: "error" | "warning" | "active" | "inactive" | "complete" | undefined;
101
+ stepState?: "complete" | "active" | "error" | "warning" | "inactive" | undefined;
102
102
  clickable?: boolean | undefined;
103
103
  stepDisabled?: boolean | undefined;
104
104
  separatorComplete?: boolean | undefined;
@@ -110,7 +110,7 @@ export declare const stepperVariants: ((props?: {
110
110
  orientation?: "horizontal" | "vertical" | undefined;
111
111
  size?: "sm" | "md" | "lg" | undefined;
112
112
  variant?: "default" | "outlined" | "minimal" | undefined;
113
- stepState?: "error" | "warning" | "active" | "inactive" | "complete" | undefined;
113
+ stepState?: "complete" | "active" | "error" | "warning" | "inactive" | undefined;
114
114
  clickable?: boolean | undefined;
115
115
  stepDisabled?: boolean | undefined;
116
116
  separatorComplete?: boolean | undefined;
@@ -122,7 +122,7 @@ export declare const stepperVariants: ((props?: {
122
122
  orientation?: "horizontal" | "vertical" | undefined;
123
123
  size?: "sm" | "md" | "lg" | undefined;
124
124
  variant?: "default" | "outlined" | "minimal" | undefined;
125
- stepState?: "error" | "warning" | "active" | "inactive" | "complete" | undefined;
125
+ stepState?: "complete" | "active" | "error" | "warning" | "inactive" | undefined;
126
126
  clickable?: boolean | undefined;
127
127
  stepDisabled?: boolean | undefined;
128
128
  separatorComplete?: boolean | undefined;
@@ -68,7 +68,7 @@ export const stepperVariants = tv({
68
68
  indicator: 'size-7 text-xs',
69
69
  step: 'gap-2',
70
70
  label: 'text-xs',
71
- description: 'text-[11px]',
71
+ description: 'text-2xs',
72
72
  content: 'text-sm',
73
73
  indicatorColumn: 'w-7'
74
74
  },
@@ -122,7 +122,7 @@ export const stepperVariants = tv({
122
122
  label: 'text-danger'
123
123
  },
124
124
  warning: {
125
- indicator: 'border-warning bg-warning text-text-on-surface',
125
+ indicator: 'border-warning bg-warning text-text-on-warning',
126
126
  label: 'text-warning-emphasis'
127
127
  }
128
128
  },
@@ -29,6 +29,7 @@
29
29
  slotClasses: slotClassesProp = {},
30
30
  preset,
31
31
  oninput: userOnInput,
32
+ id: idProp,
32
33
  'aria-describedby': ariaDescribedby,
33
34
  ...restProps
34
35
  }: TextareaProps = $props();
@@ -42,9 +43,12 @@
42
43
  let textareaRef = $state<HTMLTextAreaElement>();
43
44
 
44
45
  // ARIA wiring is shared with every form primitive — see XC-2.
46
+ // A consumer-supplied `id` wins over the generated one, so an external
47
+ // `<label for>` can address the `<textarea>` (mirrors the Input role model).
45
48
  const propsId = $props.id();
49
+ const fieldId = $derived(idProp ?? `textarea-${propsId}`);
46
50
  const ff = useFormField(() => ({
47
- fieldId: `textarea-${propsId}`,
51
+ fieldId,
48
52
  helper,
49
53
  error,
50
54
  required,
@@ -1,70 +1,70 @@
1
1
  import { type SlotNames, type VariantProps } from '../../utils/variants.js';
2
2
  export declare const toastVariants: ((props?: {
3
- intent?: "primary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
3
+ intent?: "info" | "primary" | "success" | "warning" | "danger" | "neutral" | undefined;
4
4
  placement?: "bottom-right" | "top-right" | "bottom-left" | "top-left" | "top-center" | "bottom-center" | undefined;
5
5
  } | undefined) => {
6
6
  container: (props?: ({
7
- intent?: "primary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
7
+ intent?: "info" | "primary" | "success" | "warning" | "danger" | "neutral" | undefined;
8
8
  placement?: "bottom-right" | "top-right" | "bottom-left" | "top-left" | "top-center" | "bottom-center" | undefined;
9
9
  } & {
10
10
  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;
11
11
  }) | undefined) => string;
12
12
  toast: (props?: ({
13
- intent?: "primary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
13
+ intent?: "info" | "primary" | "success" | "warning" | "danger" | "neutral" | undefined;
14
14
  placement?: "bottom-right" | "top-right" | "bottom-left" | "top-left" | "top-center" | "bottom-center" | undefined;
15
15
  } & {
16
16
  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
17
  }) | undefined) => string;
18
18
  icon: (props?: ({
19
- intent?: "primary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
19
+ intent?: "info" | "primary" | "success" | "warning" | "danger" | "neutral" | undefined;
20
20
  placement?: "bottom-right" | "top-right" | "bottom-left" | "top-left" | "top-center" | "bottom-center" | undefined;
21
21
  } & {
22
22
  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;
23
23
  }) | undefined) => string;
24
24
  content: (props?: ({
25
- intent?: "primary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
25
+ intent?: "info" | "primary" | "success" | "warning" | "danger" | "neutral" | undefined;
26
26
  placement?: "bottom-right" | "top-right" | "bottom-left" | "top-left" | "top-center" | "bottom-center" | undefined;
27
27
  } & {
28
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;
29
29
  }) | undefined) => string;
30
30
  title: (props?: ({
31
- intent?: "primary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
31
+ intent?: "info" | "primary" | "success" | "warning" | "danger" | "neutral" | undefined;
32
32
  placement?: "bottom-right" | "top-right" | "bottom-left" | "top-left" | "top-center" | "bottom-center" | undefined;
33
33
  } & {
34
34
  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
35
  }) | undefined) => string;
36
36
  description: (props?: ({
37
- intent?: "primary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
37
+ intent?: "info" | "primary" | "success" | "warning" | "danger" | "neutral" | undefined;
38
38
  placement?: "bottom-right" | "top-right" | "bottom-left" | "top-left" | "top-center" | "bottom-center" | undefined;
39
39
  } & {
40
40
  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;
41
41
  }) | undefined) => string;
42
42
  actions: (props?: ({
43
- intent?: "primary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
43
+ intent?: "info" | "primary" | "success" | "warning" | "danger" | "neutral" | undefined;
44
44
  placement?: "bottom-right" | "top-right" | "bottom-left" | "top-left" | "top-center" | "bottom-center" | undefined;
45
45
  } & {
46
46
  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;
47
47
  }) | undefined) => string;
48
48
  actionButton: (props?: ({
49
- intent?: "primary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
49
+ intent?: "info" | "primary" | "success" | "warning" | "danger" | "neutral" | undefined;
50
50
  placement?: "bottom-right" | "top-right" | "bottom-left" | "top-left" | "top-center" | "bottom-center" | undefined;
51
51
  } & {
52
52
  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
53
  }) | undefined) => string;
54
54
  cancelButton: (props?: ({
55
- intent?: "primary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
55
+ intent?: "info" | "primary" | "success" | "warning" | "danger" | "neutral" | undefined;
56
56
  placement?: "bottom-right" | "top-right" | "bottom-left" | "top-left" | "top-center" | "bottom-center" | undefined;
57
57
  } & {
58
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;
59
59
  }) | undefined) => string;
60
60
  dismissButton: (props?: ({
61
- intent?: "primary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
61
+ intent?: "info" | "primary" | "success" | "warning" | "danger" | "neutral" | undefined;
62
62
  placement?: "bottom-right" | "top-right" | "bottom-left" | "top-left" | "top-center" | "bottom-center" | undefined;
63
63
  } & {
64
64
  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;
65
65
  }) | undefined) => string;
66
66
  progress: (props?: ({
67
- intent?: "primary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
67
+ intent?: "info" | "primary" | "success" | "warning" | "danger" | "neutral" | undefined;
68
68
  placement?: "bottom-right" | "top-right" | "bottom-left" | "top-left" | "top-center" | "bottom-center" | undefined;
69
69
  } & {
70
70
  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;
@@ -1,19 +1,19 @@
1
1
  import { type SlotNames, type VariantProps } from '../../utils/variants.js';
2
2
  export declare const tooltipVariants: ((props?: {
3
3
  open?: boolean | undefined;
4
- intent?: "primary" | "secondary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
4
+ intent?: "info" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
5
5
  size?: "sm" | "md" | "lg" | undefined;
6
6
  } | undefined) => {
7
7
  base: (props?: ({
8
8
  open?: boolean | undefined;
9
- intent?: "primary" | "secondary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
9
+ intent?: "info" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
10
10
  size?: "sm" | "md" | "lg" | undefined;
11
11
  } & {
12
12
  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;
13
13
  }) | undefined) => string;
14
14
  arrow: (props?: ({
15
15
  open?: boolean | undefined;
16
- intent?: "primary" | "secondary" | "info" | "success" | "warning" | "danger" | "neutral" | undefined;
16
+ intent?: "info" | "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
17
17
  size?: "sm" | "md" | "lg" | undefined;
18
18
  } & {
19
19
  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,7 +26,16 @@ export const tooltipVariants = tv({
26
26
  // guards the inline-override path (an inline duration bypasses the token that
27
27
  // reduced-motion collapses to 1ms). The default easing token resolves to
28
28
  // Tailwind's implicit transition curve, so the resting fade is unchanged.
29
- 'transition-opacity duration-[var(--blocks-tooltip-duration)] ease-[var(--blocks-tooltip-easing)]',
29
+ //
30
+ // display/overlay + `transition-discrete` and the `starting:` before-state
31
+ // are what make the fade actually PLAY in top-layer mode (same mechanism
32
+ // as popoverMotion): without them, showPopover() reveals the chip with no
33
+ // before-state (enter pops to opacity 1) and hidePopover() yanks it to
34
+ // display:none in the same recalc (exit never paints). Verified 2026-07-14
35
+ // — the original transition-opacity fade only ever ran in the rare
36
+ // in-dialog fallback, where visibility is purely opacity-driven.
37
+ 'transition-[opacity,display,overlay] transition-discrete',
38
+ 'duration-[var(--blocks-tooltip-duration)] ease-[var(--blocks-tooltip-easing)]',
30
39
  'motion-reduce:duration-[1ms]',
31
40
  'bg-surface-inverted text-text-inverted'
32
41
  ],
@@ -34,7 +43,9 @@ export const tooltipVariants = tv({
34
43
  },
35
44
  variants: {
36
45
  open: {
37
- true: { base: 'opacity-100' },
46
+ // `starting:` supplies the @starting-style before-state for the frame
47
+ // showPopover() first renders the chip — the enter half of the fade.
48
+ true: { base: 'opacity-100 starting:opacity-0' },
38
49
  false: { base: 'opacity-0' }
39
50
  },
40
51
  intent: {
@@ -42,7 +53,7 @@ export const tooltipVariants = tv({
42
53
  secondary: { base: 'bg-secondary text-text-on-primary' },
43
54
  info: { base: 'bg-info text-text-on-primary' },
44
55
  success: { base: 'bg-success text-text-on-primary' },
45
- warning: { base: 'bg-warning text-text-on-surface' },
56
+ warning: { base: 'bg-warning text-text-on-warning' },
46
57
  danger: { base: 'bg-danger text-text-on-primary' },
47
58
  neutral: { base: 'bg-surface-inverted text-text-inverted' }
48
59
  },