@moduix/solid-tailwind 1.1.0 → 2.0.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 (110) hide show
  1. package/dist/components/accordion/Accordion.js +2 -2
  2. package/dist/components/accordion/Accordion.jsx +1 -1
  3. package/dist/components/alert/Alert.js +15 -15
  4. package/dist/components/alert/Alert.jsx +7 -7
  5. package/dist/components/angle-slider/AngleSlider.js +15 -8
  6. package/dist/components/angle-slider/AngleSlider.jsx +13 -6
  7. package/dist/components/avatar/Avatar.js +3 -3
  8. package/dist/components/avatar/Avatar.jsx +2 -2
  9. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +4 -4
  10. package/dist/components/breadcrumbs/Breadcrumbs.js +34 -29
  11. package/dist/components/breadcrumbs/Breadcrumbs.jsx +12 -11
  12. package/dist/components/carousel/Carousel.js +3 -3
  13. package/dist/components/carousel/Carousel.jsx +3 -3
  14. package/dist/components/command-palette/CommandPalette.js +1 -1
  15. package/dist/components/command-palette/CommandPalette.jsx +1 -1
  16. package/dist/components/drawer/Drawer.js +3 -3
  17. package/dist/components/drawer/Drawer.jsx +1 -1
  18. package/dist/components/highlight/Highlight.js +1 -1
  19. package/dist/components/highlight/Highlight.jsx +1 -1
  20. package/dist/components/image-cropper/ImageCropper.d.ts +1 -1
  21. package/dist/components/json-tree-view/JsonTreeView.js +3 -2
  22. package/dist/components/json-tree-view/JsonTreeView.jsx +3 -2
  23. package/dist/components/menu/Menu.d.ts +3 -1
  24. package/dist/components/menu/Menu.js +18 -25
  25. package/dist/components/menu/Menu.jsx +14 -15
  26. package/dist/components/native-select/NativeSelect.d.ts +0 -1
  27. package/dist/components/native-select/NativeSelect.js +2 -7
  28. package/dist/components/native-select/NativeSelect.jsx +2 -4
  29. package/dist/components/navigation-menu/NavigationMenu.d.ts +1 -0
  30. package/dist/components/navigation-menu/NavigationMenu.js +2 -1
  31. package/dist/components/navigation-menu/NavigationMenu.jsx +2 -1
  32. package/dist/components/number-input/NumberInput.js +3 -3
  33. package/dist/components/number-input/NumberInput.jsx +3 -3
  34. package/dist/components/pagination/Pagination.js +6 -6
  35. package/dist/components/pagination/Pagination.jsx +6 -6
  36. package/dist/components/password-input/PasswordInput.js +6 -15
  37. package/dist/components/password-input/PasswordInput.jsx +5 -13
  38. package/dist/components/pin-input/PinInput.js +2 -2
  39. package/dist/components/pin-input/PinInput.jsx +2 -2
  40. package/dist/components/popover/Popover.js +6 -6
  41. package/dist/components/popover/Popover.jsx +6 -6
  42. package/dist/components/progress-circular/ProgressCircular.js +3 -3
  43. package/dist/components/progress-circular/ProgressCircular.jsx +3 -3
  44. package/dist/components/qr-code/QrCode.js +1 -1
  45. package/dist/components/qr-code/QrCode.jsx +1 -1
  46. package/dist/components/radio-group/RadioGroup.d.ts +2 -2
  47. package/dist/components/radio-group/RadioGroup.js +1 -1
  48. package/dist/components/radio-group/RadioGroup.jsx +1 -1
  49. package/dist/components/rating-group/RatingGroup.js +11 -11
  50. package/dist/components/rating-group/RatingGroup.jsx +4 -4
  51. package/dist/components/scroll-area/ScrollArea.d.ts +1 -1
  52. package/dist/components/scroll-area/ScrollArea.js +2 -2
  53. package/dist/components/scroll-area/ScrollArea.jsx +2 -2
  54. package/dist/components/segment-group/SegmentGroup.d.ts +1 -1
  55. package/dist/components/segment-group/SegmentGroup.js +2 -1
  56. package/dist/components/segment-group/SegmentGroup.jsx +2 -1
  57. package/dist/components/select/Select.js +6 -6
  58. package/dist/components/select/Select.jsx +7 -8
  59. package/dist/components/separator/Separator.js +1 -1
  60. package/dist/components/separator/Separator.jsx +1 -1
  61. package/dist/components/sidebar/Sidebar.js +50 -56
  62. package/dist/components/sidebar/Sidebar.jsx +25 -27
  63. package/dist/components/signature-pad/SignaturePad.d.ts +1 -1
  64. package/dist/components/signature-pad/SignaturePad.js +1 -1
  65. package/dist/components/signature-pad/SignaturePad.jsx +1 -1
  66. package/dist/components/slider/Slider.js +5 -5
  67. package/dist/components/slider/Slider.jsx +3 -3
  68. package/dist/components/split-button/SplitButton.js +12 -11
  69. package/dist/components/split-button/SplitButton.jsx +10 -10
  70. package/dist/components/splitter/Splitter.js +2 -2
  71. package/dist/components/splitter/Splitter.jsx +2 -2
  72. package/dist/components/steps/Steps.js +2 -2
  73. package/dist/components/steps/Steps.jsx +2 -2
  74. package/dist/components/swap/Swap.js +9 -9
  75. package/dist/components/swap/Swap.jsx +3 -3
  76. package/dist/components/switch/Switch.js +7 -7
  77. package/dist/components/switch/Switch.jsx +3 -3
  78. package/dist/components/table/Table.js +3 -3
  79. package/dist/components/table/Table.jsx +3 -3
  80. package/dist/components/tabs/Tabs.js +7 -7
  81. package/dist/components/tabs/Tabs.jsx +3 -3
  82. package/dist/components/tag/Tag.js +1 -1
  83. package/dist/components/tag/Tag.jsx +1 -1
  84. package/dist/components/tags-input/TagsInput.js +3 -3
  85. package/dist/components/tags-input/TagsInput.jsx +3 -3
  86. package/dist/components/text/Text.js +1 -1
  87. package/dist/components/text/Text.jsx +1 -1
  88. package/dist/components/timer/Timer.js +1 -1
  89. package/dist/components/timer/Timer.jsx +1 -1
  90. package/dist/components/toast/Toast.js +2 -2
  91. package/dist/components/toast/Toast.jsx +2 -2
  92. package/dist/components/toc/Toc.d.ts +2 -2
  93. package/dist/components/toc/Toc.js +5 -6
  94. package/dist/components/toc/Toc.jsx +5 -6
  95. package/dist/components/toggle/Toggle.d.ts +5 -1
  96. package/dist/components/toggle/Toggle.js +2 -2
  97. package/dist/components/toggle/Toggle.jsx +2 -2
  98. package/dist/components/toggle-group/ToggleGroup.d.ts +1 -2
  99. package/dist/components/toggle-group/ToggleGroup.js +4 -25
  100. package/dist/components/toggle-group/ToggleGroup.jsx +4 -25
  101. package/dist/components/tooltip/Tooltip.js +2 -2
  102. package/dist/components/tooltip/Tooltip.jsx +2 -2
  103. package/dist/components/tour/Tour.js +1 -1
  104. package/dist/components/tour/Tour.jsx +1 -1
  105. package/dist/components/tree-view/TreeView.js +4 -2
  106. package/dist/components/tree-view/TreeView.jsx +4 -2
  107. package/dist/components/typeset/Typeset_module.css +6 -4
  108. package/dist/styles/animations.css +10 -0
  109. package/dist/styles/style.css +2 -0
  110. package/package.json +10 -11
@@ -86,12 +86,12 @@ function AccordionItemBody(props) {
86
86
  'class'
87
87
  ]);
88
88
  return createComponent(ark.div, mergeProps({
89
- "data-scope": "accordion",
90
- "data-part": "item-body",
91
89
  get ["class"] () {
92
90
  return cn('grid min-w-0 gap-3 p-3', local.class);
93
91
  }
94
92
  }, others, {
93
+ "data-scope": "accordion",
94
+ "data-part": "item-body",
95
95
  "data-slot": "accordion-item-body"
96
96
  }));
97
97
  }
@@ -47,7 +47,7 @@ function AccordionItemBody(props) {
47
47
  const [local, others] = splitProps(props, [
48
48
  'class'
49
49
  ]);
50
- return <ark.div data-scope="accordion" data-part="item-body" class={cn('grid min-w-0 gap-3 p-3', local.class)} {...others} data-slot="accordion-item-body"/>;
50
+ return <ark.div class={cn('grid min-w-0 gap-3 p-3', local.class)} {...others} data-scope="accordion" data-part="item-body" data-slot="accordion-item-body"/>;
51
51
  }
52
52
  const Accordion_Accordion = Object.assign(AccordionRoot, {
53
53
  Root: AccordionRoot,
@@ -26,17 +26,17 @@ function AlertRoot(props) {
26
26
  get role () {
27
27
  return local.role;
28
28
  },
29
- "data-scope": "alert",
30
- "data-part": "root",
31
- get ["data-status"] () {
32
- return local.status ?? 'info';
33
- },
34
29
  get ["class"] () {
35
30
  return cn(alertVariants({
36
31
  status: local.status
37
32
  }), local.class);
38
33
  }
39
34
  }, others, {
35
+ "data-scope": "alert",
36
+ "data-part": "root",
37
+ get ["data-status"] () {
38
+ return local.status ?? 'info';
39
+ },
40
40
  "data-slot": "alert-root"
41
41
  }));
42
42
  }
@@ -45,13 +45,13 @@ function AlertIndicator(props) {
45
45
  'class'
46
46
  ]);
47
47
  return createComponent(ark.span, mergeProps({
48
- "data-scope": "alert",
49
- "data-part": "indicator",
50
48
  "aria-hidden": "true",
51
49
  get ["class"] () {
52
50
  return cn('mt-0.5 inline-flex size-4 shrink-0 items-center justify-center text-muted-foreground group-data-[status=error]/alert:text-destructive group-data-[status=success]/alert:text-success group-data-[status=warning]/alert:text-warning [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', local.class);
53
51
  }
54
52
  }, others, {
53
+ "data-scope": "alert",
54
+ "data-part": "indicator",
55
55
  "data-slot": "alert-indicator"
56
56
  }));
57
57
  }
@@ -60,12 +60,12 @@ function AlertContent(props) {
60
60
  'class'
61
61
  ]);
62
62
  return createComponent(ark.div, mergeProps({
63
- "data-scope": "alert",
64
- "data-part": "content",
65
63
  get ["class"] () {
66
64
  return cn('grid min-w-0 flex-1 gap-1', local.class);
67
65
  }
68
66
  }, others, {
67
+ "data-scope": "alert",
68
+ "data-part": "content",
69
69
  "data-slot": "alert-content"
70
70
  }));
71
71
  }
@@ -74,12 +74,12 @@ function AlertTitle(props) {
74
74
  'class'
75
75
  ]);
76
76
  return createComponent(ark.p, mergeProps({
77
- "data-scope": "alert",
78
- "data-part": "title",
79
77
  get ["class"] () {
80
78
  return cn('m-0 min-w-0 text-sm font-semibold [overflow-wrap:anywhere]', local.class);
81
79
  }
82
80
  }, others, {
81
+ "data-scope": "alert",
82
+ "data-part": "title",
83
83
  "data-slot": "alert-title"
84
84
  }));
85
85
  }
@@ -88,12 +88,12 @@ function AlertDescription(props) {
88
88
  'class'
89
89
  ]);
90
90
  return createComponent(ark.div, mergeProps({
91
- "data-scope": "alert",
92
- "data-part": "description",
93
91
  get ["class"] () {
94
92
  return cn('min-w-0 text-sm [overflow-wrap:anywhere] text-muted-foreground [&>:first-child]:mt-0 [&>:last-child]:mb-0', local.class);
95
93
  }
96
94
  }, others, {
95
+ "data-scope": "alert",
96
+ "data-part": "description",
97
97
  "data-slot": "alert-description"
98
98
  }));
99
99
  }
@@ -102,12 +102,12 @@ function AlertActions(props) {
102
102
  'class'
103
103
  ]);
104
104
  return createComponent(ark.div, mergeProps({
105
- "data-scope": "alert",
106
- "data-part": "actions",
107
105
  get ["class"] () {
108
106
  return cn('mt-2 flex flex-wrap gap-2', local.class);
109
107
  }
110
108
  }, others, {
109
+ "data-scope": "alert",
110
+ "data-part": "actions",
111
111
  "data-slot": "alert-actions"
112
112
  }));
113
113
  }
@@ -21,39 +21,39 @@ function AlertRoot(props) {
21
21
  'role',
22
22
  'status'
23
23
  ]);
24
- return <ark.div role={local.role} data-scope="alert" data-part="root" data-status={local.status ?? 'info'} class={cn(alertVariants({
24
+ return <ark.div role={local.role} class={cn(alertVariants({
25
25
  status: local.status
26
- }), local.class)} {...others} data-slot="alert-root"/>;
26
+ }), local.class)} {...others} data-scope="alert" data-part="root" data-status={local.status ?? 'info'} data-slot="alert-root"/>;
27
27
  }
28
28
  function AlertIndicator(props) {
29
29
  const [local, others] = splitProps(props, [
30
30
  'class'
31
31
  ]);
32
- return <ark.span data-scope="alert" data-part="indicator" aria-hidden="true" class={cn('mt-0.5 inline-flex size-4 shrink-0 items-center justify-center text-muted-foreground group-data-[status=error]/alert:text-destructive group-data-[status=success]/alert:text-success group-data-[status=warning]/alert:text-warning [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', local.class)} {...others} data-slot="alert-indicator"/>;
32
+ return <ark.span aria-hidden="true" class={cn('mt-0.5 inline-flex size-4 shrink-0 items-center justify-center text-muted-foreground group-data-[status=error]/alert:text-destructive group-data-[status=success]/alert:text-success group-data-[status=warning]/alert:text-warning [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', local.class)} {...others} data-scope="alert" data-part="indicator" data-slot="alert-indicator"/>;
33
33
  }
34
34
  function AlertContent(props) {
35
35
  const [local, others] = splitProps(props, [
36
36
  'class'
37
37
  ]);
38
- return <ark.div data-scope="alert" data-part="content" class={cn('grid min-w-0 flex-1 gap-1', local.class)} {...others} data-slot="alert-content"/>;
38
+ return <ark.div class={cn('grid min-w-0 flex-1 gap-1', local.class)} {...others} data-scope="alert" data-part="content" data-slot="alert-content"/>;
39
39
  }
40
40
  function AlertTitle(props) {
41
41
  const [local, others] = splitProps(props, [
42
42
  'class'
43
43
  ]);
44
- return <ark.p data-scope="alert" data-part="title" class={cn('m-0 min-w-0 text-sm font-semibold [overflow-wrap:anywhere]', local.class)} {...others} data-slot="alert-title"/>;
44
+ return <ark.p class={cn('m-0 min-w-0 text-sm font-semibold [overflow-wrap:anywhere]', local.class)} {...others} data-scope="alert" data-part="title" data-slot="alert-title"/>;
45
45
  }
46
46
  function AlertDescription(props) {
47
47
  const [local, others] = splitProps(props, [
48
48
  'class'
49
49
  ]);
50
- return <ark.div data-scope="alert" data-part="description" class={cn('min-w-0 text-sm [overflow-wrap:anywhere] text-muted-foreground [&>:first-child]:mt-0 [&>:last-child]:mb-0', local.class)} {...others} data-slot="alert-description"/>;
50
+ return <ark.div class={cn('min-w-0 text-sm [overflow-wrap:anywhere] text-muted-foreground [&>:first-child]:mt-0 [&>:last-child]:mb-0', local.class)} {...others} data-scope="alert" data-part="description" data-slot="alert-description"/>;
51
51
  }
52
52
  function AlertActions(props) {
53
53
  const [local, others] = splitProps(props, [
54
54
  'class'
55
55
  ]);
56
- return <ark.div data-scope="alert" data-part="actions" class={cn('mt-2 flex flex-wrap gap-2', local.class)} {...others} data-slot="alert-actions"/>;
56
+ return <ark.div class={cn('mt-2 flex flex-wrap gap-2', local.class)} {...others} data-scope="alert" data-part="actions" data-slot="alert-actions"/>;
57
57
  }
58
58
  const Alert = Object.assign(AlertRoot, {
59
59
  Root: AlertRoot,
@@ -65,13 +65,19 @@ function AngleSliderControl(props) {
65
65
  ]);
66
66
  return createComponent(AngleSlider.Control, mergeProps({
67
67
  get ["class"] () {
68
- return cn("relative box-border flex aspect-square w-32 min-w-0 cursor-pointer items-center justify-center rounded-full bg-muted shadow-[inset_0_0_0_1px_var(--color-border)] outline-0 transition-colors duration-200 select-none before:absolute before:z-1 before:size-1.5 before:rounded-[inherit] before:bg-foreground before:content-[''] after:absolute after:inset-3.5 after:z-1 after:rounded-[inherit] after:bg-background after:shadow-[inset_0_0_0_1px_var(--color-border)] after:content-[''] data-disabled:cursor-default data-invalid:shadow-[inset_0_0_0_1px_var(--color-destructive)] data-invalid:after:shadow-[inset_0_0_0_1px_var(--color-destructive)] data-readonly:cursor-default motion-reduce:transition-none [&:has([data-scope='angle-slider'][data-part='thumb']:focus-visible)]:shadow-[inset_0_0_0_1px_var(--color-border),0_0_0_3px_var(--color-ring)] [&:not([data-disabled]):not([data-readonly]):active]:bg-muted [@media(hover:hover)]:[&:not([data-disabled]):not([data-readonly]):hover]:bg-muted", local.class);
69
- },
70
- onPointerDown: (event)=>{
71
- local.onPointerDown?.(event);
72
- event.currentTarget.querySelector('[data-scope="angle-slider"][data-part="thumb"]')?.blur();
68
+ return cn("relative box-border aspect-square w-32 min-w-0 cursor-pointer rounded-full outline-0 select-none [--angle-slider-fill:var(--color-primary)] before:absolute before:inset-0 before:rounded-full before:bg-[conic-gradient(from_0deg,var(--angle-slider-fill)_var(--angle,0deg),var(--color-muted)_var(--angle,0deg))] before:[mask-image:radial-gradient(closest-side,transparent_calc(100%-0.5rem-1px),#000_calc(100%-0.5rem))] before:content-[''] after:absolute after:top-1 after:left-1/2 after:z-1 after:size-2 after:-translate-x-1/2 after:-translate-y-1/2 after:rounded-full after:bg-[var(--angle-slider-fill)] after:content-[''] data-disabled:cursor-default data-invalid:[--angle-slider-fill:var(--color-destructive)] data-readonly:cursor-default", local.class);
73
69
  }
74
70
  }, others, {
71
+ onPointerDown: (event)=>{
72
+ local.onPointerDown?.(event);
73
+ if (event.defaultPrevented || 0 !== event.button) return;
74
+ if (event.currentTarget.matches('[data-disabled], [data-readonly]')) return;
75
+ event.preventDefault();
76
+ event.currentTarget.querySelector('[data-scope="angle-slider"][data-part="thumb"]')?.focus({
77
+ preventScroll: true,
78
+ focusVisible: false
79
+ });
80
+ },
75
81
  "data-slot": "angle-slider-control"
76
82
  }));
77
83
  }
@@ -81,7 +87,7 @@ function AngleSliderThumb(props) {
81
87
  ]);
82
88
  return createComponent(AngleSlider.Thumb, mergeProps({
83
89
  get ["class"] () {
84
- return cn("absolute inset-y-0 left-[calc(50%-0.09375rem)] z-2 w-[0.1875rem] outline-0 before:absolute before:top-3.5 before:left-1/2 before:box-border before:size-4 before:-translate-x-1/2 before:rounded-full before:border before:border-border before:bg-primary before:shadow-sm before:transition-[border-color,box-shadow,background-color,scale] before:duration-200 before:content-[''] after:absolute after:top-[2.125rem] after:left-1/2 after:h-[calc(50%-2.25rem)] after:w-[0.1875rem] after:-translate-x-1/2 after:rounded-full after:bg-linear-to-b after:from-primary after:to-transparent after:content-[''] focus-visible:before:border-ring focus-visible:before:ring-1 focus-visible:before:ring-ring data-disabled:pointer-events-none data-invalid:before:border-destructive data-invalid:before:bg-destructive data-invalid:after:from-destructive motion-reduce:before:transition-none [&:active:not([data-disabled]):not([data-readonly])]:before:scale-[1.08]", local.class);
90
+ return cn("absolute inset-y-0 left-1/2 z-2 w-0 outline-0 before:absolute before:top-1 before:left-0 before:box-border before:size-4 before:-translate-x-1/2 before:-translate-y-1/2 before:rounded-full before:border before:border-border before:bg-background before:shadow-sm before:transition-[border-color,background-color,box-shadow] before:duration-200 before:ease-in-out before:content-[''] focus-visible:before:border-ring focus-visible:before:ring-1 focus-visible:before:ring-ring data-disabled:pointer-events-none data-invalid:before:border-destructive motion-reduce:before:transition-none [[data-slot=angle-slider-control]:active:not([data-disabled]):not([data-readonly])_&]:before:border-ring [[data-slot=angle-slider-control]:active:not([data-disabled]):not([data-readonly])_&]:before:shadow-md [[data-slot=angle-slider-control]:active:not([data-disabled]):not([data-readonly])_&]:before:ring-1 [[data-slot=angle-slider-control]:active:not([data-disabled]):not([data-readonly])_&]:before:ring-ring", local.class);
85
91
  }
86
92
  }, others, {
87
93
  "data-slot": "angle-slider-thumb"
@@ -105,7 +111,7 @@ function AngleSliderMarker(props) {
105
111
  ]);
106
112
  return createComponent(AngleSlider.Marker, mergeProps({
107
113
  get ["class"] () {
108
- return cn("absolute inset-0 before:absolute before:top-4 before:left-1/2 before:h-2.5 before:w-0.5 before:-translate-x-1/2 before:-translate-y-1/2 before:rounded-full before:bg-muted-foreground before:content-[''] data-[state=at-value]:before:bg-foreground data-[state=under-value]:before:bg-primary", local.class);
114
+ return cn("absolute inset-0 before:absolute before:top-1 before:left-1/2 before:h-2 before:w-0.5 before:-translate-x-1/2 before:-translate-y-1/2 before:rounded-full before:bg-muted-foreground before:content-[''] data-[state=at-value]:before:bg-foreground data-[state=under-value]:before:bg-primary", local.class);
109
115
  }
110
116
  }, others, {
111
117
  "data-slot": "angle-slider-marker"
@@ -136,6 +142,7 @@ function AngleSliderDial(props) {
136
142
  get children () {
137
143
  return [
138
144
  memo(()=>local.children),
145
+ createComponent(AngleSliderValueText, {}),
139
146
  createComponent(AngleSliderThumb, {})
140
147
  ];
141
148
  }
@@ -147,7 +154,7 @@ function AngleSliderValueText(props) {
147
154
  ]);
148
155
  return createComponent(AngleSlider.ValueText, mergeProps({
149
156
  get ["class"] () {
150
- return cn('text-center text-sm font-medium text-foreground', local.class);
157
+ return cn('absolute inset-0 z-1 grid place-items-center text-center text-lg font-medium text-foreground tabular-nums', local.class);
151
158
  }
152
159
  }, others, {
153
160
  "data-slot": "angle-slider-value-text"
@@ -33,16 +33,22 @@ function AngleSliderControl(props) {
33
33
  'class',
34
34
  'onPointerDown'
35
35
  ]);
36
- return <AngleSlider.Control class={cn("relative box-border flex aspect-square w-32 min-w-0 cursor-pointer items-center justify-center rounded-full bg-muted shadow-[inset_0_0_0_1px_var(--color-border)] outline-0 transition-colors duration-200 select-none before:absolute before:z-1 before:size-1.5 before:rounded-[inherit] before:bg-foreground before:content-[''] after:absolute after:inset-3.5 after:z-1 after:rounded-[inherit] after:bg-background after:shadow-[inset_0_0_0_1px_var(--color-border)] after:content-[''] data-disabled:cursor-default data-invalid:shadow-[inset_0_0_0_1px_var(--color-destructive)] data-invalid:after:shadow-[inset_0_0_0_1px_var(--color-destructive)] data-readonly:cursor-default motion-reduce:transition-none [&:has([data-scope='angle-slider'][data-part='thumb']:focus-visible)]:shadow-[inset_0_0_0_1px_var(--color-border),0_0_0_3px_var(--color-ring)] [&:not([data-disabled]):not([data-readonly]):active]:bg-muted [@media(hover:hover)]:[&:not([data-disabled]):not([data-readonly]):hover]:bg-muted", local.class)} onPointerDown={(event)=>{
36
+ return <AngleSlider.Control class={cn("relative box-border aspect-square w-32 min-w-0 cursor-pointer rounded-full outline-0 select-none [--angle-slider-fill:var(--color-primary)] before:absolute before:inset-0 before:rounded-full before:bg-[conic-gradient(from_0deg,var(--angle-slider-fill)_var(--angle,0deg),var(--color-muted)_var(--angle,0deg))] before:[mask-image:radial-gradient(closest-side,transparent_calc(100%-0.5rem-1px),#000_calc(100%-0.5rem))] before:content-[''] after:absolute after:top-1 after:left-1/2 after:z-1 after:size-2 after:-translate-x-1/2 after:-translate-y-1/2 after:rounded-full after:bg-[var(--angle-slider-fill)] after:content-[''] data-disabled:cursor-default data-invalid:[--angle-slider-fill:var(--color-destructive)] data-readonly:cursor-default", local.class)} {...others} onPointerDown={(event)=>{
37
37
  local.onPointerDown?.(event);
38
- event.currentTarget.querySelector('[data-scope="angle-slider"][data-part="thumb"]')?.blur();
39
- }} {...others} data-slot="angle-slider-control"/>;
38
+ if (event.defaultPrevented || 0 !== event.button) return;
39
+ if (event.currentTarget.matches('[data-disabled], [data-readonly]')) return;
40
+ event.preventDefault();
41
+ event.currentTarget.querySelector('[data-scope="angle-slider"][data-part="thumb"]')?.focus({
42
+ preventScroll: true,
43
+ focusVisible: false
44
+ });
45
+ }} data-slot="angle-slider-control"/>;
40
46
  }
41
47
  function AngleSliderThumb(props) {
42
48
  const [local, others] = splitProps(props, [
43
49
  'class'
44
50
  ]);
45
- return <AngleSlider.Thumb class={cn("absolute inset-y-0 left-[calc(50%-0.09375rem)] z-2 w-[0.1875rem] outline-0 before:absolute before:top-3.5 before:left-1/2 before:box-border before:size-4 before:-translate-x-1/2 before:rounded-full before:border before:border-border before:bg-primary before:shadow-sm before:transition-[border-color,box-shadow,background-color,scale] before:duration-200 before:content-[''] after:absolute after:top-[2.125rem] after:left-1/2 after:h-[calc(50%-2.25rem)] after:w-[0.1875rem] after:-translate-x-1/2 after:rounded-full after:bg-linear-to-b after:from-primary after:to-transparent after:content-[''] focus-visible:before:border-ring focus-visible:before:ring-1 focus-visible:before:ring-ring data-disabled:pointer-events-none data-invalid:before:border-destructive data-invalid:before:bg-destructive data-invalid:after:from-destructive motion-reduce:before:transition-none [&:active:not([data-disabled]):not([data-readonly])]:before:scale-[1.08]", local.class)} {...others} data-slot="angle-slider-thumb"/>;
51
+ return <AngleSlider.Thumb class={cn("absolute inset-y-0 left-1/2 z-2 w-0 outline-0 before:absolute before:top-1 before:left-0 before:box-border before:size-4 before:-translate-x-1/2 before:-translate-y-1/2 before:rounded-full before:border before:border-border before:bg-background before:shadow-sm before:transition-[border-color,background-color,box-shadow] before:duration-200 before:ease-in-out before:content-[''] focus-visible:before:border-ring focus-visible:before:ring-1 focus-visible:before:ring-ring data-disabled:pointer-events-none data-invalid:before:border-destructive motion-reduce:before:transition-none [[data-slot=angle-slider-control]:active:not([data-disabled]):not([data-readonly])_&]:before:border-ring [[data-slot=angle-slider-control]:active:not([data-disabled]):not([data-readonly])_&]:before:shadow-md [[data-slot=angle-slider-control]:active:not([data-disabled]):not([data-readonly])_&]:before:ring-1 [[data-slot=angle-slider-control]:active:not([data-disabled]):not([data-readonly])_&]:before:ring-ring", local.class)} {...others} data-slot="angle-slider-thumb"/>;
46
52
  }
47
53
  function AngleSliderMarkerGroup(props) {
48
54
  const [local, others] = splitProps(props, [
@@ -54,7 +60,7 @@ function AngleSliderMarker(props) {
54
60
  const [local, others] = splitProps(props, [
55
61
  'class'
56
62
  ]);
57
- return <AngleSlider.Marker class={cn("absolute inset-0 before:absolute before:top-4 before:left-1/2 before:h-2.5 before:w-0.5 before:-translate-x-1/2 before:-translate-y-1/2 before:rounded-full before:bg-muted-foreground before:content-[''] data-[state=at-value]:before:bg-foreground data-[state=under-value]:before:bg-primary", local.class)} {...others} data-slot="angle-slider-marker"/>;
63
+ return <AngleSlider.Marker class={cn("absolute inset-0 before:absolute before:top-1 before:left-1/2 before:h-2 before:w-0.5 before:-translate-x-1/2 before:-translate-y-1/2 before:rounded-full before:bg-muted-foreground before:content-[''] data-[state=at-value]:before:bg-foreground data-[state=under-value]:before:bg-primary", local.class)} {...others} data-slot="angle-slider-marker"/>;
58
64
  }
59
65
  function AngleSliderMarks(props) {
60
66
  const [local, others] = splitProps(props, [
@@ -70,6 +76,7 @@ function AngleSliderDial(props) {
70
76
  ]);
71
77
  return <AngleSliderControl {...others}>
72
78
  {local.children}
79
+ <AngleSliderValueText/>
73
80
  <AngleSliderThumb/>
74
81
  </AngleSliderControl>;
75
82
  }
@@ -77,7 +84,7 @@ function AngleSliderValueText(props) {
77
84
  const [local, others] = splitProps(props, [
78
85
  'class'
79
86
  ]);
80
- return <AngleSlider.ValueText class={cn('text-center text-sm font-medium text-foreground', local.class)} {...others} data-slot="angle-slider-value-text"/>;
87
+ return <AngleSlider.ValueText class={cn('absolute inset-0 z-1 grid place-items-center text-center text-lg font-medium text-foreground tabular-nums', local.class)} {...others} data-slot="angle-slider-value-text"/>;
81
88
  }
82
89
  const AngleSlider_AngleSlider = Object.assign(AngleSliderRoot, {
83
90
  Root: AngleSliderRoot,
@@ -41,15 +41,15 @@ function AvatarRootProvider(props) {
41
41
  'size'
42
42
  ]);
43
43
  return createComponent(Avatar.RootProvider, mergeProps({
44
- get ["data-size"] () {
45
- return local.size;
46
- },
47
44
  get ["class"] () {
48
45
  return cn(avatarVariants({
49
46
  size: local.size
50
47
  }), local.class);
51
48
  }
52
49
  }, others, {
50
+ get ["data-size"] () {
51
+ return local.size;
52
+ },
53
53
  "data-slot": "avatar-root-provider"
54
54
  }));
55
55
  }
@@ -30,9 +30,9 @@ function AvatarRootProvider(props) {
30
30
  'class',
31
31
  'size'
32
32
  ]);
33
- return <Avatar.RootProvider data-size={local.size} class={cn(avatarVariants({
33
+ return <Avatar.RootProvider class={cn(avatarVariants({
34
34
  size: local.size
35
- }), local.class)} {...others} data-slot="avatar-root-provider"/>;
35
+ }), local.class)} {...others} data-size={local.size} data-slot="avatar-root-provider"/>;
36
36
  }
37
37
  function AvatarImage(props) {
38
38
  const [local, others] = splitProps(props, [
@@ -1,12 +1,12 @@
1
1
  import type { HTMLArkProps } from '@ark-ui/solid/factory';
2
2
  import type { JSX } from 'solid-js';
3
- type BreadcrumbsPathItem = {
4
- href?: string;
5
- key?: string | number;
3
+ type BreadcrumbsPathLink = {
4
+ href: string;
6
5
  label: JSX.Element;
7
6
  };
8
7
  type BreadcrumbsPathProps = Omit<HTMLArkProps<'ol'>, 'asChild' | 'children'> & {
9
- items: readonly BreadcrumbsPathItem[];
8
+ links: readonly BreadcrumbsPathLink[];
9
+ page: JSX.Element;
10
10
  separator?: JSX.Element;
11
11
  };
12
12
  declare function BreadcrumbsRoot(props: HTMLArkProps<'nav'>): JSX.Element;
@@ -70,42 +70,47 @@ function BreadcrumbsPage(props) {
70
70
  }
71
71
  function BreadcrumbsPath(props) {
72
72
  const [local, others] = splitProps(props, [
73
- 'items',
73
+ 'links',
74
+ 'page',
74
75
  'separator'
75
76
  ]);
76
77
  return createComponent(BreadcrumbsList, mergeProps(others, {
77
78
  get children () {
78
- return createComponent(For, {
79
- get each () {
80
- return local.items;
81
- },
82
- children: (item, index)=>{
83
- const isLastItem = ()=>index() === local.items.length - 1;
84
- return [
85
- createComponent(BreadcrumbsItem, {
86
- get children () {
87
- return memo(()=>!!isLastItem())() ? createComponent(BreadcrumbsPage, {
88
- get children () {
89
- return item.label;
90
- }
91
- }) : createComponent(BreadcrumbsLink, {
92
- get href () {
93
- return item.href;
94
- },
95
- get children () {
96
- return item.label;
97
- }
98
- });
99
- }
100
- }),
101
- memo(()=>memo(()=>!isLastItem())() ? createComponent(BreadcrumbsSeparator, {
79
+ return [
80
+ createComponent(For, {
81
+ get each () {
82
+ return local.links;
83
+ },
84
+ children: (link)=>[
85
+ createComponent(BreadcrumbsItem, {
86
+ get children () {
87
+ return createComponent(BreadcrumbsLink, {
88
+ get href () {
89
+ return link.href;
90
+ },
91
+ get children () {
92
+ return link.label;
93
+ }
94
+ });
95
+ }
96
+ }),
97
+ createComponent(BreadcrumbsSeparator, {
102
98
  get children () {
103
99
  return local.separator;
104
100
  }
105
- }) : null)
106
- ];
107
- }
108
- });
101
+ })
102
+ ]
103
+ }),
104
+ createComponent(BreadcrumbsItem, {
105
+ get children () {
106
+ return createComponent(BreadcrumbsPage, {
107
+ get children () {
108
+ return local.page;
109
+ }
110
+ });
111
+ }
112
+ })
113
+ ];
109
114
  }
110
115
  }));
111
116
  }
@@ -38,21 +38,22 @@ function BreadcrumbsPage(props) {
38
38
  }
39
39
  function BreadcrumbsPath(props) {
40
40
  const [local, others] = splitProps(props, [
41
- 'items',
41
+ 'links',
42
+ 'page',
42
43
  'separator'
43
44
  ]);
44
45
  return <BreadcrumbsList {...others}>
45
- <For each={local.items}>
46
- {(item, index)=>{
47
- const isLastItem = ()=>index() === local.items.length - 1;
48
- return <>
49
- <BreadcrumbsItem>
50
- {isLastItem() ? <BreadcrumbsPage>{item.label}</BreadcrumbsPage> : <BreadcrumbsLink href={item.href}>{item.label}</BreadcrumbsLink>}
51
- </BreadcrumbsItem>
52
- {!isLastItem() ? <BreadcrumbsSeparator>{local.separator}</BreadcrumbsSeparator> : null}
53
- </>;
54
- }}
46
+ <For each={local.links}>
47
+ {(link)=><>
48
+ <BreadcrumbsItem>
49
+ <BreadcrumbsLink href={link.href}>{link.label}</BreadcrumbsLink>
50
+ </BreadcrumbsItem>
51
+ <BreadcrumbsSeparator>{local.separator}</BreadcrumbsSeparator>
52
+ </>}
55
53
  </For>
54
+ <BreadcrumbsItem>
55
+ <BreadcrumbsPage>{local.page}</BreadcrumbsPage>
56
+ </BreadcrumbsItem>
56
57
  </BreadcrumbsList>;
57
58
  }
58
59
  function BreadcrumbsSeparator(props) {
@@ -76,7 +76,7 @@ function CarouselPrevTrigger(props) {
76
76
  return local.asChild;
77
77
  },
78
78
  get ["class"] () {
79
- return cn('focus-visible:outline-offset-0.5 inline-flex size-control-md shrink-0 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-foreground shadow-sm outline-0 transition-[background-color,border-color,color,box-shadow,transform] duration-150 ease-in-out focus-visible:outline-2 focus-visible:outline-ring disabled:cursor-not-allowed disabled:opacity-50 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-pressed:border-foreground data-pressed:bg-accent data-pressed:text-accent-foreground motion-reduce:transition-none [&_svg]:size-4 [&:not(:disabled):not([data-disabled]):hover]:border-foreground [&:not(:disabled):not([data-disabled]):hover]:bg-accent [&:not(:disabled):not([data-disabled]):hover]:text-accent-foreground [&:not(:disabled):not([data-disabled]):hover]:shadow-md', local.class);
79
+ return cn('focus-visible:outline-offset-0.5 inline-flex size-control-md shrink-0 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-foreground shadow-sm outline-0 transition-[background-color,border-color,color,box-shadow,transform] duration-150 ease-in-out focus-visible:outline-2 focus-visible:outline-ring disabled:cursor-not-allowed disabled:opacity-50 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-pressed:border-ring data-pressed:bg-accent data-pressed:text-accent-foreground motion-reduce:transition-none [&_svg]:size-4 [&:not(:disabled):not([data-disabled]):hover]:border-ring [&:not(:disabled):not([data-disabled]):hover]:bg-accent [&:not(:disabled):not([data-disabled]):hover]:text-accent-foreground [&:not(:disabled):not([data-disabled]):hover]:shadow-md', local.class);
80
80
  }
81
81
  }, others, {
82
82
  "data-slot": "carousel-prev-trigger",
@@ -103,7 +103,7 @@ function CarouselNextTrigger(props) {
103
103
  return local.asChild;
104
104
  },
105
105
  get ["class"] () {
106
- return cn('focus-visible:outline-offset-0.5 inline-flex size-control-md shrink-0 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-foreground shadow-sm outline-0 transition-[background-color,border-color,color,box-shadow,transform] duration-150 ease-in-out focus-visible:outline-2 focus-visible:outline-ring disabled:cursor-not-allowed disabled:opacity-50 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-pressed:border-foreground data-pressed:bg-accent data-pressed:text-accent-foreground motion-reduce:transition-none [&_svg]:size-4 [&:not(:disabled):not([data-disabled]):hover]:border-foreground [&:not(:disabled):not([data-disabled]):hover]:bg-accent [&:not(:disabled):not([data-disabled]):hover]:text-accent-foreground [&:not(:disabled):not([data-disabled]):hover]:shadow-md', local.class);
106
+ return cn('focus-visible:outline-offset-0.5 inline-flex size-control-md shrink-0 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-foreground shadow-sm outline-0 transition-[background-color,border-color,color,box-shadow,transform] duration-150 ease-in-out focus-visible:outline-2 focus-visible:outline-ring disabled:cursor-not-allowed disabled:opacity-50 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-pressed:border-ring data-pressed:bg-accent data-pressed:text-accent-foreground motion-reduce:transition-none [&_svg]:size-4 [&:not(:disabled):not([data-disabled]):hover]:border-ring [&:not(:disabled):not([data-disabled]):hover]:bg-accent [&:not(:disabled):not([data-disabled]):hover]:text-accent-foreground [&:not(:disabled):not([data-disabled]):hover]:shadow-md', local.class);
107
107
  }
108
108
  }, others, {
109
109
  "data-slot": "carousel-next-trigger",
@@ -177,7 +177,7 @@ function CarouselAutoplayTrigger(props) {
177
177
  ]);
178
178
  return createComponent(Carousel.AutoplayTrigger, mergeProps({
179
179
  get ["class"] () {
180
- return cn('focus-visible:outline-offset-0.5 inline-flex size-control-md min-w-12 shrink-0 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-foreground shadow-sm outline-0 transition-[background-color,border-color,color,box-shadow,transform] duration-150 ease-in-out focus-visible:outline-2 focus-visible:outline-ring disabled:cursor-not-allowed disabled:opacity-50 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-pressed:border-foreground data-pressed:bg-accent data-pressed:text-accent-foreground motion-reduce:transition-none [&_svg]:size-4 [&:not(:disabled):not([data-disabled]):hover]:border-foreground [&:not(:disabled):not([data-disabled]):hover]:bg-accent [&:not(:disabled):not([data-disabled]):hover]:text-accent-foreground [&:not(:disabled):not([data-disabled]):hover]:shadow-md', local.class);
180
+ return cn('focus-visible:outline-offset-0.5 inline-flex size-control-md min-w-12 shrink-0 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-foreground shadow-sm outline-0 transition-[background-color,border-color,color,box-shadow,transform] duration-150 ease-in-out focus-visible:outline-2 focus-visible:outline-ring disabled:cursor-not-allowed disabled:opacity-50 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-pressed:border-ring data-pressed:bg-accent data-pressed:text-accent-foreground motion-reduce:transition-none [&_svg]:size-4 [&:not(:disabled):not([data-disabled]):hover]:border-ring [&:not(:disabled):not([data-disabled]):hover]:bg-accent [&:not(:disabled):not([data-disabled]):hover]:text-accent-foreground [&:not(:disabled):not([data-disabled]):hover]:shadow-md', local.class);
181
181
  }
182
182
  }, others, {
183
183
  "data-slot": "carousel-autoplay-trigger"
@@ -39,7 +39,7 @@ function CarouselPrevTrigger(props) {
39
39
  'class'
40
40
  ]);
41
41
  const resolvedChildren = children(()=>local.children);
42
- return <Carousel.PrevTrigger asChild={local.asChild} class={cn('focus-visible:outline-offset-0.5 inline-flex size-control-md shrink-0 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-foreground shadow-sm outline-0 transition-[background-color,border-color,color,box-shadow,transform] duration-150 ease-in-out focus-visible:outline-2 focus-visible:outline-ring disabled:cursor-not-allowed disabled:opacity-50 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-pressed:border-foreground data-pressed:bg-accent data-pressed:text-accent-foreground motion-reduce:transition-none [&_svg]:size-4 [&:not(:disabled):not([data-disabled]):hover]:border-foreground [&:not(:disabled):not([data-disabled]):hover]:bg-accent [&:not(:disabled):not([data-disabled]):hover]:text-accent-foreground [&:not(:disabled):not([data-disabled]):hover]:shadow-md', local.class)} {...others} data-slot="carousel-prev-trigger">
42
+ return <Carousel.PrevTrigger asChild={local.asChild} class={cn('focus-visible:outline-offset-0.5 inline-flex size-control-md shrink-0 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-foreground shadow-sm outline-0 transition-[background-color,border-color,color,box-shadow,transform] duration-150 ease-in-out focus-visible:outline-2 focus-visible:outline-ring disabled:cursor-not-allowed disabled:opacity-50 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-pressed:border-ring data-pressed:bg-accent data-pressed:text-accent-foreground motion-reduce:transition-none [&_svg]:size-4 [&:not(:disabled):not([data-disabled]):hover]:border-ring [&:not(:disabled):not([data-disabled]):hover]:bg-accent [&:not(:disabled):not([data-disabled]):hover]:text-accent-foreground [&:not(:disabled):not([data-disabled]):hover]:shadow-md', local.class)} {...others} data-slot="carousel-prev-trigger">
43
43
  {resolvedChildren() ?? <span class="inline-flex items-center justify-center">
44
44
  <ChevronLeftIcon class="group-data-[orientation=vertical]/carousel:rotate-90 group-data-[orientation=horizontal]/carousel:rtl:rotate-180"/>
45
45
  </span>}
@@ -52,7 +52,7 @@ function CarouselNextTrigger(props) {
52
52
  'class'
53
53
  ]);
54
54
  const resolvedChildren = children(()=>local.children);
55
- return <Carousel.NextTrigger asChild={local.asChild} class={cn('focus-visible:outline-offset-0.5 inline-flex size-control-md shrink-0 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-foreground shadow-sm outline-0 transition-[background-color,border-color,color,box-shadow,transform] duration-150 ease-in-out focus-visible:outline-2 focus-visible:outline-ring disabled:cursor-not-allowed disabled:opacity-50 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-pressed:border-foreground data-pressed:bg-accent data-pressed:text-accent-foreground motion-reduce:transition-none [&_svg]:size-4 [&:not(:disabled):not([data-disabled]):hover]:border-foreground [&:not(:disabled):not([data-disabled]):hover]:bg-accent [&:not(:disabled):not([data-disabled]):hover]:text-accent-foreground [&:not(:disabled):not([data-disabled]):hover]:shadow-md', local.class)} {...others} data-slot="carousel-next-trigger">
55
+ return <Carousel.NextTrigger asChild={local.asChild} class={cn('focus-visible:outline-offset-0.5 inline-flex size-control-md shrink-0 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-foreground shadow-sm outline-0 transition-[background-color,border-color,color,box-shadow,transform] duration-150 ease-in-out focus-visible:outline-2 focus-visible:outline-ring disabled:cursor-not-allowed disabled:opacity-50 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-pressed:border-ring data-pressed:bg-accent data-pressed:text-accent-foreground motion-reduce:transition-none [&_svg]:size-4 [&:not(:disabled):not([data-disabled]):hover]:border-ring [&:not(:disabled):not([data-disabled]):hover]:bg-accent [&:not(:disabled):not([data-disabled]):hover]:text-accent-foreground [&:not(:disabled):not([data-disabled]):hover]:shadow-md', local.class)} {...others} data-slot="carousel-next-trigger">
56
56
  {resolvedChildren() ?? <span class="inline-flex items-center justify-center">
57
57
  <ChevronRightIcon class="group-data-[orientation=vertical]/carousel:rotate-90 group-data-[orientation=horizontal]/carousel:rtl:rotate-180"/>
58
58
  </span>}
@@ -87,7 +87,7 @@ function CarouselAutoplayTrigger(props) {
87
87
  const [local, others] = splitProps(props, [
88
88
  'class'
89
89
  ]);
90
- return <Carousel.AutoplayTrigger class={cn('focus-visible:outline-offset-0.5 inline-flex size-control-md min-w-12 shrink-0 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-foreground shadow-sm outline-0 transition-[background-color,border-color,color,box-shadow,transform] duration-150 ease-in-out focus-visible:outline-2 focus-visible:outline-ring disabled:cursor-not-allowed disabled:opacity-50 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-pressed:border-foreground data-pressed:bg-accent data-pressed:text-accent-foreground motion-reduce:transition-none [&_svg]:size-4 [&:not(:disabled):not([data-disabled]):hover]:border-foreground [&:not(:disabled):not([data-disabled]):hover]:bg-accent [&:not(:disabled):not([data-disabled]):hover]:text-accent-foreground [&:not(:disabled):not([data-disabled]):hover]:shadow-md', local.class)} {...others} data-slot="carousel-autoplay-trigger"/>;
90
+ return <Carousel.AutoplayTrigger class={cn('focus-visible:outline-offset-0.5 inline-flex size-control-md min-w-12 shrink-0 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-foreground shadow-sm outline-0 transition-[background-color,border-color,color,box-shadow,transform] duration-150 ease-in-out focus-visible:outline-2 focus-visible:outline-ring disabled:cursor-not-allowed disabled:opacity-50 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-pressed:border-ring data-pressed:bg-accent data-pressed:text-accent-foreground motion-reduce:transition-none [&_svg]:size-4 [&:not(:disabled):not([data-disabled]):hover]:border-ring [&:not(:disabled):not([data-disabled]):hover]:bg-accent [&:not(:disabled):not([data-disabled]):hover]:text-accent-foreground [&:not(:disabled):not([data-disabled]):hover]:shadow-md', local.class)} {...others} data-slot="carousel-autoplay-trigger"/>;
91
91
  }
92
92
  function CarouselAutoplayIndicator(props) {
93
93
  const [local, others] = splitProps(props, [
@@ -2,7 +2,7 @@ import { createComponent, mergeProps } from "solid-js/web";
2
2
  import { Combobox } from "@ark-ui/solid/combobox";
3
3
  import { Dialog, useDialog, useDialogContext } from "@ark-ui/solid/dialog";
4
4
  import { ark } from "@ark-ui/solid/factory";
5
- import { isHotKey } from "@zag-js/hotkeys";
5
+ import { isHotKey } from "@ark-ui/solid/hotkeys";
6
6
  import { children, createEffect, onCleanup, splitProps } from "solid-js";
7
7
  import { cn } from "../../internal/cn.js";
8
8
  import { CheckIcon, CloseIcon } from "../../internal/icons/ui/Icons.js";
@@ -1,7 +1,7 @@
1
1
  import { Combobox } from "@ark-ui/solid/combobox";
2
2
  import { Dialog, useDialog, useDialogContext } from "@ark-ui/solid/dialog";
3
3
  import { ark } from "@ark-ui/solid/factory";
4
- import { isHotKey } from "@zag-js/hotkeys";
4
+ import { isHotKey } from "@ark-ui/solid/hotkeys";
5
5
  import { children, createEffect, onCleanup, splitProps } from "solid-js";
6
6
  import { cn } from "../../internal/cn.jsx";
7
7
  import { CheckIcon, CloseIcon } from "../../internal/icons/ui/Icons.jsx";
@@ -148,9 +148,6 @@ function DrawerContent(props) {
148
148
  ]);
149
149
  const rootVariant = useContext(DrawerVariantContext);
150
150
  return createComponent(Drawer.Content, mergeProps({
151
- get ["data-variant"] () {
152
- return local.variant ?? rootVariant;
153
- },
154
151
  get ["class"] () {
155
152
  return cn("group/drawer relative box-border flex h-full max-h-[80dvh] w-full max-w-[100vw] origin-bottom [translate:0_0] [scale:1] flex-col overscroll-contain rounded-t-xl rounded-b-none border border-border bg-popover px-6 pt-3 pb-[calc(1rem+env(safe-area-inset-bottom,0px))] text-popover-foreground shadow-lg outline-0 [transition:transform_calc(var(--drawer-swipe-strength,1)*450ms)_cubic-bezier(0,0,0.2,1),scale_450ms_cubic-bezier(0.32,0.72,0,1),translate_450ms_cubic-bezier(0.32,0.72,0,1)] after:pointer-events-none after:absolute after:inset-x-0 after:top-full after:h-control-xl after:bg-inherit after:content-[''] data-dragging:select-none data-nested-drawer-swiping:[transition-duration:0s] data-[nested-drawer-open]:[scale:calc(1-0.05*var(--nested-drawers,0))] data-[state=closed]:animate-moduix-drawer-content-out-down data-[state=open]:animate-moduix-drawer-content-in-down data-[state=open]:data-swiping:[transition-duration:0s] data-[swipe-direction=down]:data-[nested-drawer-open]:[translate:0_calc(-1*40px*var(--nested-drawers,0))] data-[swipe-direction=left]:h-full data-[swipe-direction=left]:max-h-none data-[swipe-direction=left]:w-[min(22rem,calc(100vw-2rem))] data-[swipe-direction=left]:origin-left data-[swipe-direction=left]:rounded-s-none data-[swipe-direction=left]:rounded-e-xl data-[swipe-direction=left]:p-6 data-[swipe-direction=left]:after:inset-x-auto data-[swipe-direction=left]:after:inset-y-0 data-[swipe-direction=left]:after:top-0 data-[swipe-direction=left]:after:right-full data-[swipe-direction=left]:after:h-auto data-[swipe-direction=left]:after:w-control-xl data-[swipe-direction=left]:data-[nested-drawer-open]:[translate:calc(40px*var(--nested-drawers,0))_0] data-[swipe-direction=left]:data-[state=closed]:animate-moduix-drawer-content-out-left data-[swipe-direction=left]:data-[state=open]:animate-moduix-drawer-content-in-left data-[swipe-direction=right]:h-full data-[swipe-direction=right]:max-h-none data-[swipe-direction=right]:w-[min(22rem,calc(100vw-2rem))] data-[swipe-direction=right]:origin-right data-[swipe-direction=right]:rounded-s-xl data-[swipe-direction=right]:rounded-e-none data-[swipe-direction=right]:p-6 data-[swipe-direction=right]:after:inset-x-auto data-[swipe-direction=right]:after:inset-y-0 data-[swipe-direction=right]:after:top-0 data-[swipe-direction=right]:after:left-full data-[swipe-direction=right]:after:h-auto data-[swipe-direction=right]:after:w-control-xl data-[swipe-direction=right]:data-[nested-drawer-open]:[translate:calc(-1*40px*var(--nested-drawers,0))_0] data-[swipe-direction=right]:data-[state=closed]:animate-moduix-drawer-content-out-right data-[swipe-direction=right]:data-[state=open]:animate-moduix-drawer-content-in-right data-[swipe-direction=up]:origin-top data-[swipe-direction=up]:rounded-t-none data-[swipe-direction=up]:rounded-b-xl data-[swipe-direction=up]:pt-[calc(1rem+env(safe-area-inset-top,0px))] data-[swipe-direction=up]:pb-4 data-[swipe-direction=up]:after:top-auto data-[swipe-direction=up]:after:bottom-full data-[swipe-direction=up]:data-[nested-drawer-open]:[translate:0_calc(40px*var(--nested-drawers,0))] data-[swipe-direction=up]:data-[state=closed]:animate-moduix-drawer-content-out-up data-[swipe-direction=up]:data-[state=open]:animate-moduix-drawer-content-in-up data-[variant=island]:rounded-xl data-[variant=island]:after:hidden motion-reduce:[transition-duration:1ms] motion-reduce:[animation-delay:0ms] motion-reduce:[animation-duration:1ms]", local.class);
156
153
  },
@@ -158,6 +155,9 @@ function DrawerContent(props) {
158
155
  return local.draggable ?? true;
159
156
  }
160
157
  }, others, {
158
+ get ["data-variant"] () {
159
+ return local.variant ?? rootVariant;
160
+ },
161
161
  "data-slot": "drawer-content"
162
162
  }));
163
163
  }
@@ -73,7 +73,7 @@ function DrawerContent(props) {
73
73
  'variant'
74
74
  ]);
75
75
  const rootVariant = useContext(DrawerVariantContext);
76
- return <Drawer.Content data-variant={local.variant ?? rootVariant} class={cn("group/drawer relative box-border flex h-full max-h-[80dvh] w-full max-w-[100vw] origin-bottom [translate:0_0] [scale:1] flex-col overscroll-contain rounded-t-xl rounded-b-none border border-border bg-popover px-6 pt-3 pb-[calc(1rem+env(safe-area-inset-bottom,0px))] text-popover-foreground shadow-lg outline-0 [transition:transform_calc(var(--drawer-swipe-strength,1)*450ms)_cubic-bezier(0,0,0.2,1),scale_450ms_cubic-bezier(0.32,0.72,0,1),translate_450ms_cubic-bezier(0.32,0.72,0,1)] after:pointer-events-none after:absolute after:inset-x-0 after:top-full after:h-control-xl after:bg-inherit after:content-[''] data-dragging:select-none data-nested-drawer-swiping:[transition-duration:0s] data-[nested-drawer-open]:[scale:calc(1-0.05*var(--nested-drawers,0))] data-[state=closed]:animate-moduix-drawer-content-out-down data-[state=open]:animate-moduix-drawer-content-in-down data-[state=open]:data-swiping:[transition-duration:0s] data-[swipe-direction=down]:data-[nested-drawer-open]:[translate:0_calc(-1*40px*var(--nested-drawers,0))] data-[swipe-direction=left]:h-full data-[swipe-direction=left]:max-h-none data-[swipe-direction=left]:w-[min(22rem,calc(100vw-2rem))] data-[swipe-direction=left]:origin-left data-[swipe-direction=left]:rounded-s-none data-[swipe-direction=left]:rounded-e-xl data-[swipe-direction=left]:p-6 data-[swipe-direction=left]:after:inset-x-auto data-[swipe-direction=left]:after:inset-y-0 data-[swipe-direction=left]:after:top-0 data-[swipe-direction=left]:after:right-full data-[swipe-direction=left]:after:h-auto data-[swipe-direction=left]:after:w-control-xl data-[swipe-direction=left]:data-[nested-drawer-open]:[translate:calc(40px*var(--nested-drawers,0))_0] data-[swipe-direction=left]:data-[state=closed]:animate-moduix-drawer-content-out-left data-[swipe-direction=left]:data-[state=open]:animate-moduix-drawer-content-in-left data-[swipe-direction=right]:h-full data-[swipe-direction=right]:max-h-none data-[swipe-direction=right]:w-[min(22rem,calc(100vw-2rem))] data-[swipe-direction=right]:origin-right data-[swipe-direction=right]:rounded-s-xl data-[swipe-direction=right]:rounded-e-none data-[swipe-direction=right]:p-6 data-[swipe-direction=right]:after:inset-x-auto data-[swipe-direction=right]:after:inset-y-0 data-[swipe-direction=right]:after:top-0 data-[swipe-direction=right]:after:left-full data-[swipe-direction=right]:after:h-auto data-[swipe-direction=right]:after:w-control-xl data-[swipe-direction=right]:data-[nested-drawer-open]:[translate:calc(-1*40px*var(--nested-drawers,0))_0] data-[swipe-direction=right]:data-[state=closed]:animate-moduix-drawer-content-out-right data-[swipe-direction=right]:data-[state=open]:animate-moduix-drawer-content-in-right data-[swipe-direction=up]:origin-top data-[swipe-direction=up]:rounded-t-none data-[swipe-direction=up]:rounded-b-xl data-[swipe-direction=up]:pt-[calc(1rem+env(safe-area-inset-top,0px))] data-[swipe-direction=up]:pb-4 data-[swipe-direction=up]:after:top-auto data-[swipe-direction=up]:after:bottom-full data-[swipe-direction=up]:data-[nested-drawer-open]:[translate:0_calc(40px*var(--nested-drawers,0))] data-[swipe-direction=up]:data-[state=closed]:animate-moduix-drawer-content-out-up data-[swipe-direction=up]:data-[state=open]:animate-moduix-drawer-content-in-up data-[variant=island]:rounded-xl data-[variant=island]:after:hidden motion-reduce:[transition-duration:1ms] motion-reduce:[animation-delay:0ms] motion-reduce:[animation-duration:1ms]", local.class)} draggable={local.draggable ?? true} {...others} data-slot="drawer-content"/>;
76
+ return <Drawer.Content class={cn("group/drawer relative box-border flex h-full max-h-[80dvh] w-full max-w-[100vw] origin-bottom [translate:0_0] [scale:1] flex-col overscroll-contain rounded-t-xl rounded-b-none border border-border bg-popover px-6 pt-3 pb-[calc(1rem+env(safe-area-inset-bottom,0px))] text-popover-foreground shadow-lg outline-0 [transition:transform_calc(var(--drawer-swipe-strength,1)*450ms)_cubic-bezier(0,0,0.2,1),scale_450ms_cubic-bezier(0.32,0.72,0,1),translate_450ms_cubic-bezier(0.32,0.72,0,1)] after:pointer-events-none after:absolute after:inset-x-0 after:top-full after:h-control-xl after:bg-inherit after:content-[''] data-dragging:select-none data-nested-drawer-swiping:[transition-duration:0s] data-[nested-drawer-open]:[scale:calc(1-0.05*var(--nested-drawers,0))] data-[state=closed]:animate-moduix-drawer-content-out-down data-[state=open]:animate-moduix-drawer-content-in-down data-[state=open]:data-swiping:[transition-duration:0s] data-[swipe-direction=down]:data-[nested-drawer-open]:[translate:0_calc(-1*40px*var(--nested-drawers,0))] data-[swipe-direction=left]:h-full data-[swipe-direction=left]:max-h-none data-[swipe-direction=left]:w-[min(22rem,calc(100vw-2rem))] data-[swipe-direction=left]:origin-left data-[swipe-direction=left]:rounded-s-none data-[swipe-direction=left]:rounded-e-xl data-[swipe-direction=left]:p-6 data-[swipe-direction=left]:after:inset-x-auto data-[swipe-direction=left]:after:inset-y-0 data-[swipe-direction=left]:after:top-0 data-[swipe-direction=left]:after:right-full data-[swipe-direction=left]:after:h-auto data-[swipe-direction=left]:after:w-control-xl data-[swipe-direction=left]:data-[nested-drawer-open]:[translate:calc(40px*var(--nested-drawers,0))_0] data-[swipe-direction=left]:data-[state=closed]:animate-moduix-drawer-content-out-left data-[swipe-direction=left]:data-[state=open]:animate-moduix-drawer-content-in-left data-[swipe-direction=right]:h-full data-[swipe-direction=right]:max-h-none data-[swipe-direction=right]:w-[min(22rem,calc(100vw-2rem))] data-[swipe-direction=right]:origin-right data-[swipe-direction=right]:rounded-s-xl data-[swipe-direction=right]:rounded-e-none data-[swipe-direction=right]:p-6 data-[swipe-direction=right]:after:inset-x-auto data-[swipe-direction=right]:after:inset-y-0 data-[swipe-direction=right]:after:top-0 data-[swipe-direction=right]:after:left-full data-[swipe-direction=right]:after:h-auto data-[swipe-direction=right]:after:w-control-xl data-[swipe-direction=right]:data-[nested-drawer-open]:[translate:calc(-1*40px*var(--nested-drawers,0))_0] data-[swipe-direction=right]:data-[state=closed]:animate-moduix-drawer-content-out-right data-[swipe-direction=right]:data-[state=open]:animate-moduix-drawer-content-in-right data-[swipe-direction=up]:origin-top data-[swipe-direction=up]:rounded-t-none data-[swipe-direction=up]:rounded-b-xl data-[swipe-direction=up]:pt-[calc(1rem+env(safe-area-inset-top,0px))] data-[swipe-direction=up]:pb-4 data-[swipe-direction=up]:after:top-auto data-[swipe-direction=up]:after:bottom-full data-[swipe-direction=up]:data-[nested-drawer-open]:[translate:0_calc(40px*var(--nested-drawers,0))] data-[swipe-direction=up]:data-[state=closed]:animate-moduix-drawer-content-out-up data-[swipe-direction=up]:data-[state=open]:animate-moduix-drawer-content-in-up data-[variant=island]:rounded-xl data-[variant=island]:after:hidden motion-reduce:[transition-duration:1ms] motion-reduce:[animation-delay:0ms] motion-reduce:[animation-duration:1ms]", local.class)} draggable={local.draggable ?? true} {...others} data-variant={local.variant ?? rootVariant} data-slot="drawer-content"/>;
77
77
  }
78
78
  function DrawerGrabber(props) {
79
79
  const [local, others] = splitProps(props, [
@@ -14,7 +14,7 @@ function HighlightRoot(props) {
14
14
  "data-part": "root",
15
15
  "data-slot": "highlight-root",
16
16
  get ["class"] () {
17
- return cn('rounded-xs bg-[color-mix(in_oklab,var(--color-warning)_40%,var(--color-accent))] [box-decoration-break:clone] px-1 py-px font-medium text-foreground no-underline shadow-none [-webkit-box-decoration-break:clone]', local.class);
17
+ return cn('rounded-xs bg-[color-mix(in_oklab,var(--color-warning)_40%,var(--color-accent))] box-decoration-clone px-1 py-px font-medium text-foreground no-underline shadow-none', local.class);
18
18
  }
19
19
  }));
20
20
  }