@waveso/ui 0.7.7 → 0.8.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 (254) hide show
  1. package/README.md +2 -3
  2. package/dist/accordion.d.ts +1 -2
  3. package/dist/accordion.js +0 -2
  4. package/dist/action-bar.d.ts +1 -2
  5. package/dist/action-bar.js +23 -10
  6. package/dist/alert-dialog.d.ts +1 -2
  7. package/dist/alert-dialog.js +0 -2
  8. package/dist/alert.d.ts +1 -2
  9. package/dist/alert.js +2 -4
  10. package/dist/animate.d.ts +1 -2
  11. package/dist/animate.js +34 -8
  12. package/dist/aspect-ratio.d.ts +1 -2
  13. package/dist/aspect-ratio.js +0 -2
  14. package/dist/autocomplete.d.ts +1 -2
  15. package/dist/autocomplete.js +0 -2
  16. package/dist/avatar.d.ts +1 -2
  17. package/dist/avatar.js +1 -3
  18. package/dist/badge.d.ts +2 -3
  19. package/dist/badge.js +0 -2
  20. package/dist/breadcrumb.d.ts +1 -2
  21. package/dist/breadcrumb.js +0 -2
  22. package/dist/button-group.d.ts +1 -2
  23. package/dist/button-group.js +0 -2
  24. package/dist/button.d.ts +3 -4
  25. package/dist/button.js +0 -2
  26. package/dist/card.d.ts +1 -2
  27. package/dist/card.js +0 -2
  28. package/dist/checkbox.d.ts +1 -2
  29. package/dist/checkbox.js +6 -8
  30. package/dist/collapsible.d.ts +1 -2
  31. package/dist/collapsible.js +0 -2
  32. package/dist/combobox.d.ts +1 -2
  33. package/dist/combobox.js +0 -2
  34. package/dist/context-menu.d.ts +1 -2
  35. package/dist/context-menu.js +1 -3
  36. package/dist/count.d.ts +1 -2
  37. package/dist/count.js +10 -7
  38. package/dist/dialog.d.ts +1 -2
  39. package/dist/dialog.js +0 -2
  40. package/dist/drawer.d.ts +1 -2
  41. package/dist/drawer.js +0 -2
  42. package/dist/encrypted-text.d.ts +1 -2
  43. package/dist/encrypted-text.js +4 -5
  44. package/dist/field.d.ts +1 -2
  45. package/dist/field.js +2 -4
  46. package/dist/film-grain-shader.d.ts +1 -2
  47. package/dist/film-grain-shader.js +0 -2
  48. package/dist/film-grain-webgl.d.ts +1 -4
  49. package/dist/film-grain-webgl.js +7 -6
  50. package/dist/film-grain.d.ts +1 -2
  51. package/dist/film-grain.js +0 -3
  52. package/dist/form.d.ts +1 -2
  53. package/dist/form.js +0 -2
  54. package/dist/gradient-reveal-text.d.ts +1 -2
  55. package/dist/gradient-reveal-text.js +29 -7
  56. package/dist/hooks/use-mobile.d.ts +1 -2
  57. package/dist/hooks/use-mobile.js +0 -2
  58. package/dist/infinite-scroll.d.ts +1 -2
  59. package/dist/infinite-scroll.js +10 -5
  60. package/dist/input-group.d.ts +2 -3
  61. package/dist/input-group.js +1 -3
  62. package/dist/input-otp.d.ts +1 -2
  63. package/dist/input-otp.js +3 -5
  64. package/dist/input.d.ts +1 -2
  65. package/dist/input.js +0 -2
  66. package/dist/item.d.ts +1 -2
  67. package/dist/item.js +2 -4
  68. package/dist/kbd.d.ts +1 -2
  69. package/dist/kbd.js +0 -2
  70. package/dist/label.d.ts +1 -2
  71. package/dist/label.js +0 -2
  72. package/dist/lib/focus.d.ts +1 -2
  73. package/dist/lib/focus.js +0 -2
  74. package/dist/lib/internal-icons.d.ts +1 -2
  75. package/dist/lib/internal-icons.js +0 -2
  76. package/dist/lib/utils.d.ts +1 -2
  77. package/dist/lib/utils.js +0 -2
  78. package/dist/masonry.d.ts +1 -2
  79. package/dist/masonry.js +0 -2
  80. package/dist/menu.d.ts +1 -2
  81. package/dist/menu.js +1 -3
  82. package/dist/menubar.d.ts +1 -2
  83. package/dist/menubar.js +1 -3
  84. package/dist/pagination.d.ts +1 -2
  85. package/dist/pagination.js +0 -2
  86. package/dist/popover.d.ts +1 -2
  87. package/dist/popover.js +0 -2
  88. package/dist/preview-card.d.ts +1 -2
  89. package/dist/preview-card.js +0 -2
  90. package/dist/progress.d.ts +1 -2
  91. package/dist/progress.js +0 -2
  92. package/dist/radio-group.d.ts +1 -2
  93. package/dist/radio-group.js +0 -2
  94. package/dist/radio.d.ts +1 -2
  95. package/dist/radio.js +1 -3
  96. package/dist/scroll-area.d.ts +1 -2
  97. package/dist/scroll-area.js +0 -2
  98. package/dist/select.d.ts +1 -2
  99. package/dist/select.js +0 -3
  100. package/dist/separator.d.ts +1 -2
  101. package/dist/separator.js +0 -2
  102. package/dist/sidebar.d.ts +1 -2
  103. package/dist/sidebar.js +0 -2
  104. package/dist/skeleton.d.ts +1 -2
  105. package/dist/skeleton.js +0 -2
  106. package/dist/slider.d.ts +1 -2
  107. package/dist/slider.js +0 -2
  108. package/dist/spinner.d.ts +1 -2
  109. package/dist/spinner.js +0 -2
  110. package/dist/switch.d.ts +7 -5
  111. package/dist/switch.js +18 -6
  112. package/dist/table.d.ts +1 -2
  113. package/dist/table.js +0 -2
  114. package/dist/tabs.d.ts +1 -2
  115. package/dist/tabs.js +0 -2
  116. package/dist/textarea.d.ts +1 -2
  117. package/dist/textarea.js +0 -2
  118. package/dist/toast.d.ts +1 -2
  119. package/dist/toast.js +1 -3
  120. package/dist/toggle-group.d.ts +2 -2
  121. package/dist/toggle-group.js +5 -4
  122. package/dist/toggle.d.ts +1 -2
  123. package/dist/toggle.js +0 -2
  124. package/dist/tooltip.d.ts +1 -2
  125. package/dist/tooltip.js +0 -2
  126. package/dist/typewriter.d.ts +1 -2
  127. package/dist/typewriter.js +6 -2
  128. package/package.json +24 -8
  129. package/dist/accordion.d.ts.map +0 -1
  130. package/dist/accordion.js.map +0 -1
  131. package/dist/action-bar.d.ts.map +0 -1
  132. package/dist/action-bar.js.map +0 -1
  133. package/dist/alert-dialog.d.ts.map +0 -1
  134. package/dist/alert-dialog.js.map +0 -1
  135. package/dist/alert.d.ts.map +0 -1
  136. package/dist/alert.js.map +0 -1
  137. package/dist/animate.d.ts.map +0 -1
  138. package/dist/animate.js.map +0 -1
  139. package/dist/aspect-ratio.d.ts.map +0 -1
  140. package/dist/aspect-ratio.js.map +0 -1
  141. package/dist/autocomplete.d.ts.map +0 -1
  142. package/dist/autocomplete.js.map +0 -1
  143. package/dist/avatar.d.ts.map +0 -1
  144. package/dist/avatar.js.map +0 -1
  145. package/dist/badge.d.ts.map +0 -1
  146. package/dist/badge.js.map +0 -1
  147. package/dist/breadcrumb.d.ts.map +0 -1
  148. package/dist/breadcrumb.js.map +0 -1
  149. package/dist/button-group.d.ts.map +0 -1
  150. package/dist/button-group.js.map +0 -1
  151. package/dist/button.d.ts.map +0 -1
  152. package/dist/button.js.map +0 -1
  153. package/dist/card.d.ts.map +0 -1
  154. package/dist/card.js.map +0 -1
  155. package/dist/checkbox.d.ts.map +0 -1
  156. package/dist/checkbox.js.map +0 -1
  157. package/dist/collapsible.d.ts.map +0 -1
  158. package/dist/collapsible.js.map +0 -1
  159. package/dist/combobox.d.ts.map +0 -1
  160. package/dist/combobox.js.map +0 -1
  161. package/dist/context-menu.d.ts.map +0 -1
  162. package/dist/context-menu.js.map +0 -1
  163. package/dist/count.d.ts.map +0 -1
  164. package/dist/count.js.map +0 -1
  165. package/dist/dialog.d.ts.map +0 -1
  166. package/dist/dialog.js.map +0 -1
  167. package/dist/drawer.d.ts.map +0 -1
  168. package/dist/drawer.js.map +0 -1
  169. package/dist/encrypted-text.d.ts.map +0 -1
  170. package/dist/encrypted-text.js.map +0 -1
  171. package/dist/field.d.ts.map +0 -1
  172. package/dist/field.js.map +0 -1
  173. package/dist/film-grain-shader.d.ts.map +0 -1
  174. package/dist/film-grain-shader.js.map +0 -1
  175. package/dist/film-grain-webgl.d.ts.map +0 -1
  176. package/dist/film-grain-webgl.js.map +0 -1
  177. package/dist/film-grain.d.ts.map +0 -1
  178. package/dist/film-grain.js.map +0 -1
  179. package/dist/form.d.ts.map +0 -1
  180. package/dist/form.js.map +0 -1
  181. package/dist/gradient-reveal-text.d.ts.map +0 -1
  182. package/dist/gradient-reveal-text.js.map +0 -1
  183. package/dist/hooks/use-mobile.d.ts.map +0 -1
  184. package/dist/hooks/use-mobile.js.map +0 -1
  185. package/dist/infinite-scroll.d.ts.map +0 -1
  186. package/dist/infinite-scroll.js.map +0 -1
  187. package/dist/input-group.d.ts.map +0 -1
  188. package/dist/input-group.js.map +0 -1
  189. package/dist/input-otp.d.ts.map +0 -1
  190. package/dist/input-otp.js.map +0 -1
  191. package/dist/input.d.ts.map +0 -1
  192. package/dist/input.js.map +0 -1
  193. package/dist/item.d.ts.map +0 -1
  194. package/dist/item.js.map +0 -1
  195. package/dist/kbd.d.ts.map +0 -1
  196. package/dist/kbd.js.map +0 -1
  197. package/dist/label.d.ts.map +0 -1
  198. package/dist/label.js.map +0 -1
  199. package/dist/lib/focus.d.ts.map +0 -1
  200. package/dist/lib/focus.js.map +0 -1
  201. package/dist/lib/internal-icons.d.ts.map +0 -1
  202. package/dist/lib/internal-icons.js.map +0 -1
  203. package/dist/lib/utils.d.ts.map +0 -1
  204. package/dist/lib/utils.js.map +0 -1
  205. package/dist/masonry.d.ts.map +0 -1
  206. package/dist/masonry.js.map +0 -1
  207. package/dist/menu.d.ts.map +0 -1
  208. package/dist/menu.js.map +0 -1
  209. package/dist/menubar.d.ts.map +0 -1
  210. package/dist/menubar.js.map +0 -1
  211. package/dist/pagination.d.ts.map +0 -1
  212. package/dist/pagination.js.map +0 -1
  213. package/dist/popover.d.ts.map +0 -1
  214. package/dist/popover.js.map +0 -1
  215. package/dist/preview-card.d.ts.map +0 -1
  216. package/dist/preview-card.js.map +0 -1
  217. package/dist/progress.d.ts.map +0 -1
  218. package/dist/progress.js.map +0 -1
  219. package/dist/radio-group.d.ts.map +0 -1
  220. package/dist/radio-group.js.map +0 -1
  221. package/dist/radio.d.ts.map +0 -1
  222. package/dist/radio.js.map +0 -1
  223. package/dist/scroll-area.d.ts.map +0 -1
  224. package/dist/scroll-area.js.map +0 -1
  225. package/dist/select.d.ts.map +0 -1
  226. package/dist/select.js.map +0 -1
  227. package/dist/separator.d.ts.map +0 -1
  228. package/dist/separator.js.map +0 -1
  229. package/dist/sidebar.d.ts.map +0 -1
  230. package/dist/sidebar.js.map +0 -1
  231. package/dist/skeleton.d.ts.map +0 -1
  232. package/dist/skeleton.js.map +0 -1
  233. package/dist/slider.d.ts.map +0 -1
  234. package/dist/slider.js.map +0 -1
  235. package/dist/spinner.d.ts.map +0 -1
  236. package/dist/spinner.js.map +0 -1
  237. package/dist/switch.d.ts.map +0 -1
  238. package/dist/switch.js.map +0 -1
  239. package/dist/table.d.ts.map +0 -1
  240. package/dist/table.js.map +0 -1
  241. package/dist/tabs.d.ts.map +0 -1
  242. package/dist/tabs.js.map +0 -1
  243. package/dist/textarea.d.ts.map +0 -1
  244. package/dist/textarea.js.map +0 -1
  245. package/dist/toast.d.ts.map +0 -1
  246. package/dist/toast.js.map +0 -1
  247. package/dist/toggle-group.d.ts.map +0 -1
  248. package/dist/toggle-group.js.map +0 -1
  249. package/dist/toggle.d.ts.map +0 -1
  250. package/dist/toggle.js.map +0 -1
  251. package/dist/tooltip.d.ts.map +0 -1
  252. package/dist/tooltip.js.map +0 -1
  253. package/dist/typewriter.d.ts.map +0 -1
  254. package/dist/typewriter.js.map +0 -1
@@ -31,5 +31,4 @@ declare function ProgressValue({
31
31
  ...props
32
32
  }: ProgressValueProps): _$react_jsx_runtime0.JSX.Element;
33
33
  //#endregion
34
- export { Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue };
35
- //# sourceMappingURL=progress.d.ts.map
34
+ export { Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue };
package/dist/progress.js CHANGED
@@ -43,5 +43,3 @@ function ProgressValue({ className, ...props }) {
43
43
  }
44
44
  //#endregion
45
45
  export { Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue };
46
-
47
- //# sourceMappingURL=progress.js.map
@@ -14,5 +14,4 @@ declare function RadioGroupItem({
14
14
  ...props
15
15
  }: RadioGroupItemProps): _$react_jsx_runtime0.JSX.Element;
16
16
  //#endregion
17
- export { RadioGroup, RadioGroupItem };
18
- //# sourceMappingURL=radio-group.d.ts.map
17
+ export { RadioGroup, RadioGroupItem };
@@ -20,5 +20,3 @@ function RadioGroupItem({ ...props }) {
20
20
  }
21
21
  //#endregion
22
22
  export { RadioGroup, RadioGroupItem };
23
-
24
- //# sourceMappingURL=radio-group.js.map
package/dist/radio.d.ts CHANGED
@@ -14,5 +14,4 @@ declare function RadioIndicator({
14
14
  ...props
15
15
  }: RadioIndicatorProps): _$react_jsx_runtime0.JSX.Element;
16
16
  //#endregion
17
- export { Radio, RadioIndicator };
18
- //# sourceMappingURL=radio.d.ts.map
17
+ export { Radio, RadioIndicator };
package/dist/radio.js CHANGED
@@ -7,7 +7,7 @@ import { Radio as Radio$1 } from "@base-ui/react/radio";
7
7
  function Radio({ className, ...props }) {
8
8
  return /* @__PURE__ */ jsx(Radio$1.Root, {
9
9
  "data-slot": "radio",
10
- className: cn("cursor-clickable border-edge dark:bg-edge/30 data-checked:bg-primary data-checked:text-white dark:data-checked:bg-primary data-checked:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 dark:aria-invalid:border-destructive/50 group/radio peer relative flex aspect-square size-4 shrink-0 rounded-full border outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3", className),
10
+ className: cn("cursor-clickable border-edge dark:bg-edge/30 data-checked:bg-primary data-checked:text-white data-checked:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 dark:aria-invalid:border-destructive/50 group/radio peer relative flex aspect-square size-4 shrink-0 rounded-full border outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3", className),
11
11
  ...props,
12
12
  children: /* @__PURE__ */ jsx(RadioIndicator, {})
13
13
  });
@@ -21,5 +21,3 @@ function RadioIndicator({ className, ...props }) {
21
21
  }
22
22
  //#endregion
23
23
  export { Radio, RadioIndicator };
24
-
25
- //# sourceMappingURL=radio.js.map
@@ -16,5 +16,4 @@ declare function ScrollBar({
16
16
  ...props
17
17
  }: ScrollBarProps): _$react_jsx_runtime0.JSX.Element;
18
18
  //#endregion
19
- export { ScrollArea, ScrollBar };
20
- //# sourceMappingURL=scroll-area.d.ts.map
19
+ export { ScrollArea, ScrollBar };
@@ -34,5 +34,3 @@ function ScrollBar({ className, orientation = "vertical", ...props }) {
34
34
  }
35
35
  //#endregion
36
36
  export { ScrollArea, ScrollBar };
37
-
38
- //# sourceMappingURL=scroll-area.js.map
package/dist/select.d.ts CHANGED
@@ -80,5 +80,4 @@ declare function SelectScrollDownButton({
80
80
  ...props
81
81
  }: SelectScrollDownButtonProps): _$react_jsx_runtime0.JSX.Element;
82
82
  //#endregion
83
- export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectList, SelectPortal, SelectPositioner, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue };
84
- //# sourceMappingURL=select.d.ts.map
83
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectList, SelectPortal, SelectPositioner, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue };
package/dist/select.js CHANGED
@@ -67,7 +67,6 @@ function SelectContent({ className, children, side = "bottom", sideOffset = 4, a
67
67
  className: "isolate z-50",
68
68
  children: /* @__PURE__ */ jsxs(Select$1.Popup, {
69
69
  "data-slot": "select-content",
70
- "data-align-trigger": alignItemWithTrigger,
71
70
  className: cn("motion-pop-md bg-elevated text-contrast ring-contrast/10 relative isolate z-50 max-h-(--available-height) min-w-(--anchor-width) max-w-(--available-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md shadow-md ring-1", className),
72
71
  ...props,
73
72
  children: [
@@ -128,5 +127,3 @@ function SelectScrollDownButton({ className, ...props }) {
128
127
  }
129
128
  //#endregion
130
129
  export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectList, SelectPortal, SelectPositioner, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue };
131
-
132
- //# sourceMappingURL=select.js.map
@@ -10,5 +10,4 @@ declare function Separator({
10
10
  ...props
11
11
  }: SeparatorProps): _$react_jsx_runtime0.JSX.Element;
12
12
  //#endregion
13
- export { Separator };
14
- //# sourceMappingURL=separator.d.ts.map
13
+ export { Separator };
package/dist/separator.js CHANGED
@@ -14,5 +14,3 @@ function Separator({ className, orientation = "horizontal", ...props }) {
14
14
  }
15
15
  //#endregion
16
16
  export { Separator };
17
-
18
- //# sourceMappingURL=separator.js.map
package/dist/sidebar.d.ts CHANGED
@@ -201,5 +201,4 @@ declare function SidebarMenuSubButton({
201
201
  isActive?: boolean;
202
202
  }): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
203
203
  //#endregion
204
- export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, cookiePersist, localStoragePersist, useSidebar };
205
- //# sourceMappingURL=sidebar.d.ts.map
204
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, cookiePersist, localStoragePersist, useSidebar };
package/dist/sidebar.js CHANGED
@@ -398,5 +398,3 @@ function SidebarMenuSubButton({ render, size = "md", isActive = false, className
398
398
  }
399
399
  //#endregion
400
400
  export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, cookiePersist, localStoragePersist, useSidebar };
401
-
402
- //# sourceMappingURL=sidebar.js.map
@@ -7,5 +7,4 @@ declare function Skeleton({
7
7
  ...props
8
8
  }: SkeletonProps): _$react_jsx_runtime0.JSX.Element;
9
9
  //#endregion
10
- export { Skeleton };
11
- //# sourceMappingURL=skeleton.d.ts.map
10
+ export { Skeleton };
package/dist/skeleton.js CHANGED
@@ -10,5 +10,3 @@ function Skeleton({ className, ...props }) {
10
10
  }
11
11
  //#endregion
12
12
  export { Skeleton };
13
-
14
- //# sourceMappingURL=skeleton.js.map
package/dist/slider.d.ts CHANGED
@@ -25,5 +25,4 @@ declare function Slider({
25
25
  ...props
26
26
  }: SliderProps): _$react_jsx_runtime0.JSX.Element;
27
27
  //#endregion
28
- export { Slider };
29
- //# sourceMappingURL=slider.d.ts.map
28
+ export { Slider };
package/dist/slider.js CHANGED
@@ -41,5 +41,3 @@ function Slider({ className, controlClassName, defaultValue, value, min = 0, max
41
41
  }
42
42
  //#endregion
43
43
  export { Slider };
44
-
45
- //# sourceMappingURL=slider.js.map
package/dist/spinner.d.ts CHANGED
@@ -7,5 +7,4 @@ declare function Spinner({
7
7
  ...props
8
8
  }: SpinnerProps): _$react_jsx_runtime0.JSX.Element;
9
9
  //#endregion
10
- export { Spinner };
11
- //# sourceMappingURL=spinner.d.ts.map
10
+ export { Spinner };
package/dist/spinner.js CHANGED
@@ -14,5 +14,3 @@ function Spinner({ className, ...props }) {
14
14
  }
15
15
  //#endregion
16
16
  export { Spinner };
17
-
18
- //# sourceMappingURL=spinner.js.map
package/dist/switch.d.ts CHANGED
@@ -1,16 +1,18 @@
1
1
  import * as React from "react";
2
2
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
+ import { VariantProps } from "class-variance-authority";
3
4
  import { Switch as Switch$1 } from "@base-ui/react/switch";
5
+ import * as _$class_variance_authority_types0 from "class-variance-authority/types";
4
6
 
5
7
  //#region src/switch.d.ts
6
- type SwitchProps = React.ComponentProps<typeof Switch$1.Root> & {
7
- size?: "sm" | "default";
8
- };
8
+ declare const switchVariants: (props?: ({
9
+ size?: "default" | "sm" | null | undefined;
10
+ } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
11
+ type SwitchProps = React.ComponentProps<typeof Switch$1.Root> & VariantProps<typeof switchVariants>;
9
12
  declare function Switch({
10
13
  className,
11
14
  size,
12
15
  ...props
13
16
  }: SwitchProps): _$react_jsx_runtime0.JSX.Element;
14
17
  //#endregion
15
- export { Switch };
16
- //# sourceMappingURL=switch.d.ts.map
18
+ export { Switch, switchVariants };
package/dist/switch.js CHANGED
@@ -2,21 +2,33 @@
2
2
  import { cn } from "./lib/utils.js";
3
3
  import "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
+ import { cva } from "class-variance-authority";
5
6
  import { Switch as Switch$1 } from "@base-ui/react/switch";
6
7
  //#region src/switch.tsx
8
+ const switchVariants = cva("cursor-clickable data-checked:bg-primary data-unchecked:bg-edge focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-unchecked:bg-edge/80 peer relative inline-flex shrink-0 items-center rounded-full border border-transparent motion-color outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 aria-invalid:ring-3 data-disabled:cursor-not-allowed data-disabled:opacity-50", {
9
+ variants: { size: {
10
+ default: "h-[18.4px] w-[32px]",
11
+ sm: "h-[14px] w-[24px]"
12
+ } },
13
+ defaultVariants: { size: "default" }
14
+ });
15
+ const switchThumbVariants = cva("bg-foundation dark:data-unchecked:bg-contrast dark:data-checked:bg-white pointer-events-none block rounded-full ring-0 transition-transform data-checked:translate-x-[calc(100%-2px)] data-unchecked:translate-x-0", {
16
+ variants: { size: {
17
+ default: "size-4",
18
+ sm: "size-3"
19
+ } },
20
+ defaultVariants: { size: "default" }
21
+ });
7
22
  function Switch({ className, size = "default", ...props }) {
8
23
  return /* @__PURE__ */ jsx(Switch$1.Root, {
9
24
  "data-slot": "switch",
10
- "data-size": size,
11
- className: cn("cursor-clickable data-checked:bg-primary data-unchecked:bg-edge focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-unchecked:bg-edge/80 peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent motion-color outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 aria-invalid:ring-3 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px]", className),
25
+ className: cn(switchVariants({ size }), className),
12
26
  ...props,
13
27
  children: /* @__PURE__ */ jsx(Switch$1.Thumb, {
14
28
  "data-slot": "switch-thumb",
15
- className: "bg-foundation dark:data-unchecked:bg-contrast dark:data-checked:bg-white pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0"
29
+ className: switchThumbVariants({ size })
16
30
  })
17
31
  });
18
32
  }
19
33
  //#endregion
20
- export { Switch };
21
-
22
- //# sourceMappingURL=switch.js.map
34
+ export { Switch, switchVariants };
package/dist/table.d.ts CHANGED
@@ -43,5 +43,4 @@ declare function TableCaption({
43
43
  ...props
44
44
  }: TableCaptionProps): _$react_jsx_runtime0.JSX.Element;
45
45
  //#endregion
46
- export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
47
- //# sourceMappingURL=table.d.ts.map
46
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
package/dist/table.js CHANGED
@@ -67,5 +67,3 @@ function TableCaption({ className, ...props }) {
67
67
  }
68
68
  //#endregion
69
69
  export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
70
-
71
- //# sourceMappingURL=table.js.map
package/dist/tabs.d.ts CHANGED
@@ -32,5 +32,4 @@ declare function TabsContent({
32
32
  ...props
33
33
  }: TabsContentProps): _$react_jsx_runtime0.JSX.Element;
34
34
  //#endregion
35
- export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants };
36
- //# sourceMappingURL=tabs.d.ts.map
35
+ export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants };
package/dist/tabs.js CHANGED
@@ -44,5 +44,3 @@ function TabsContent({ className, ...props }) {
44
44
  }
45
45
  //#endregion
46
46
  export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants };
47
-
48
- //# sourceMappingURL=tabs.js.map
@@ -13,5 +13,4 @@ declare function Textarea({
13
13
  ...props
14
14
  }: TextareaProps): _$react_jsx_runtime0.JSX.Element;
15
15
  //#endregion
16
- export { Textarea };
17
- //# sourceMappingURL=textarea.d.ts.map
16
+ export { Textarea };
package/dist/textarea.js CHANGED
@@ -17,5 +17,3 @@ function Textarea({ className, onChange, onValueChange, ...props }) {
17
17
  }
18
18
  //#endregion
19
19
  export { Textarea };
20
-
21
- //# sourceMappingURL=textarea.js.map
package/dist/toast.d.ts CHANGED
@@ -77,5 +77,4 @@ declare function Toaster({
77
77
  timeout
78
78
  }: ToasterProps): _$react_jsx_runtime0.JSX.Element | null;
79
79
  //#endregion
80
- export { Toast, ToastAction, ToastClose, ToastDescription, ToastIcon, type ToastOptions, ToastTitle, type ToastType, Toaster, type ToasterPosition, type ToasterProps, toast, toastIconVariants, toastManager, toastRootClass, toastViewportVariants };
81
- //# sourceMappingURL=toast.d.ts.map
80
+ export { Toast, ToastAction, ToastClose, ToastDescription, ToastIcon, type ToastOptions, ToastTitle, type ToastType, Toaster, type ToasterPosition, type ToasterProps, toast, toastIconVariants, toastManager, toastRootClass, toastViewportVariants };
package/dist/toast.js CHANGED
@@ -75,7 +75,7 @@ const toastTypeLabels = {
75
75
  error: "Error"
76
76
  };
77
77
  function ToastIcon({ type }) {
78
- if (!type) return null;
78
+ if (!type || !(type in iconMap)) return null;
79
79
  const Icon = iconMap[type];
80
80
  return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Icon, { className: cn(toastIconVariants({ type })) }), /* @__PURE__ */ jsx("span", {
81
81
  className: "sr-only",
@@ -235,5 +235,3 @@ function Toaster({ position, limit, timeout }) {
235
235
  }
236
236
  //#endregion
237
237
  export { Toast, ToastAction, ToastClose, ToastDescription, ToastIcon, ToastTitle, Toaster, toast, toastIconVariants, toastManager, toastRootClass, toastViewportVariants };
238
-
239
- //# sourceMappingURL=toast.js.map
@@ -15,6 +15,7 @@ declare function ToggleGroup({
15
15
  size,
16
16
  spacing,
17
17
  orientation,
18
+ style,
18
19
  children,
19
20
  ...props
20
21
  }: ToggleGroupProps): _$react_jsx_runtime0.JSX.Element;
@@ -26,5 +27,4 @@ declare function ToggleGroupItem({
26
27
  ...props
27
28
  }: ToggleGroupItemProps): _$react_jsx_runtime0.JSX.Element;
28
29
  //#endregion
29
- export { ToggleGroup, ToggleGroupItem };
30
- //# sourceMappingURL=toggle-group.d.ts.map
30
+ export { ToggleGroup, ToggleGroupItem };
@@ -12,14 +12,17 @@ const ToggleGroupContext = React.createContext({
12
12
  spacing: 0,
13
13
  orientation: "horizontal"
14
14
  });
15
- function ToggleGroup({ className, variant, size, spacing = 0, orientation = "horizontal", children, ...props }) {
15
+ function ToggleGroup({ className, variant, size, spacing = 0, orientation = "horizontal", style, children, ...props }) {
16
16
  return /* @__PURE__ */ jsx(ToggleGroup$1, {
17
17
  orientation,
18
18
  "data-slot": "toggle-group",
19
19
  "data-variant": variant,
20
20
  "data-size": size,
21
21
  "data-spacing": spacing,
22
- style: { "--gap": spacing },
22
+ style: {
23
+ ...style ?? {},
24
+ "--gap": spacing
25
+ },
23
26
  className: cn("group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-md data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch data-[size=sm]:rounded-sm", className),
24
27
  ...props,
25
28
  children: /* @__PURE__ */ jsx(ToggleGroupContext.Provider, {
@@ -50,5 +53,3 @@ function ToggleGroupItem({ className, children, variant = "default", size = "def
50
53
  }
51
54
  //#endregion
52
55
  export { ToggleGroup, ToggleGroupItem };
53
-
54
- //# sourceMappingURL=toggle-group.js.map
package/dist/toggle.d.ts CHANGED
@@ -17,5 +17,4 @@ declare function Toggle({
17
17
  ...props
18
18
  }: ToggleProps): _$react_jsx_runtime0.JSX.Element;
19
19
  //#endregion
20
- export { Toggle, toggleVariants };
21
- //# sourceMappingURL=toggle.d.ts.map
20
+ export { Toggle, toggleVariants };
package/dist/toggle.js CHANGED
@@ -34,5 +34,3 @@ function Toggle({ className, variant = "default", size = "default", ...props })
34
34
  }
35
35
  //#endregion
36
36
  export { Toggle, toggleVariants };
37
-
38
- //# sourceMappingURL=toggle.js.map
package/dist/tooltip.d.ts CHANGED
@@ -48,5 +48,4 @@ declare function TooltipContent({
48
48
  ...props
49
49
  }: TooltipContentProps): _$react_jsx_runtime0.JSX.Element;
50
50
  //#endregion
51
- export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
52
- //# sourceMappingURL=tooltip.d.ts.map
51
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
package/dist/tooltip.js CHANGED
@@ -60,5 +60,3 @@ function TooltipContent({ className, positionerClassName, side = "top", sideOffs
60
60
  }
61
61
  //#endregion
62
62
  export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
63
-
64
- //# sourceMappingURL=tooltip.js.map
@@ -76,5 +76,4 @@ declare function Typewriter({
76
76
  smoothDuration
77
77
  }: TypewriterProps): _$react_jsx_runtime0.JSX.Element;
78
78
  //#endregion
79
- export { type TextSegment, Typewriter, type TypewriterProps };
80
- //# sourceMappingURL=typewriter.d.ts.map
79
+ export { type TextSegment, Typewriter, type TypewriterProps };
@@ -121,6 +121,12 @@ function TypingReveal({ text, children, elementRef, id, speed, delay, cursor, cu
121
121
  delay,
122
122
  started
123
123
  ]);
124
+ useEffect(() => {
125
+ if (prefersReducedMotion || shouldAnimate) return;
126
+ setStarted(false);
127
+ setCharIndex(0);
128
+ setDone(false);
129
+ }, [prefersReducedMotion, shouldAnimate]);
124
130
  useEffect(() => {
125
131
  if (prefersReducedMotion || !started || done) return;
126
132
  if (charIndex >= flat.length) {
@@ -203,5 +209,3 @@ function SmoothReveal({ text, children, elementRef, id, delay, duration, cursor,
203
209
  }
204
210
  //#endregion
205
211
  export { Typewriter };
206
-
207
- //# sourceMappingURL=typewriter.js.map
package/package.json CHANGED
@@ -1,24 +1,41 @@
1
1
  {
2
2
  "name": "@waveso/ui",
3
- "version": "0.7.7",
3
+ "version": "0.8.0",
4
4
  "description": "Wave UI component library built on Base UI and Tailwind CSS",
5
5
  "type": "module",
6
6
  "sideEffects": [
7
7
  "*.css"
8
8
  ],
9
9
  "license": "MIT",
10
+ "keywords": [
11
+ "react",
12
+ "react-19",
13
+ "ui",
14
+ "components",
15
+ "component-library",
16
+ "design-system",
17
+ "base-ui",
18
+ "tailwindcss",
19
+ "cva",
20
+ "headless"
21
+ ],
10
22
  "repository": {
11
23
  "type": "git",
12
- "url": "https://github.com/wavedotso/wave-ui"
24
+ "url": "git+https://github.com/wavedotso/wave-ui.git"
25
+ },
26
+ "homepage": "https://github.com/wavedotso/wave-ui#readme",
27
+ "bugs": "https://github.com/wavedotso/wave-ui/issues",
28
+ "engines": {
29
+ "node": ">=20"
13
30
  },
14
31
  "exports": {
15
32
  "./package.json": "./package.json",
16
33
  "./styles.css": "./dist/styles.css",
34
+ "./lib/*": null,
35
+ "./hooks/*": null,
17
36
  "./*": {
18
- "import": {
19
- "types": "./dist/*.d.ts",
20
- "default": "./dist/*.js"
21
- }
37
+ "types": "./dist/*.d.ts",
38
+ "default": "./dist/*.js"
22
39
  }
23
40
  },
24
41
  "files": [
@@ -26,7 +43,7 @@
26
43
  "package.json"
27
44
  ],
28
45
  "scripts": {
29
- "build": "tsdown && cp src/styles.css dist/styles.css",
46
+ "build": "tsdown",
30
47
  "dev": "tsdown --watch",
31
48
  "typecheck": "tsc --noEmit",
32
49
  "test": "vitest run",
@@ -67,7 +84,6 @@
67
84
  "@changesets/cli": "^2.27.0",
68
85
  "@storybook/addon-a11y": "~10.4.0",
69
86
  "@storybook/addon-docs": "~10.4.0",
70
- "@storybook/addon-themes": "~10.4.0",
71
87
  "@storybook/react-vite": "~10.4.0",
72
88
  "@tailwindcss/vite": "^4.2.1",
73
89
  "@testing-library/dom": "^10.4.1",
@@ -1 +0,0 @@
1
- {"version":3,"file":"accordion.d.ts","names":[],"sources":["../src/accordion.tsx"],"mappings":";;;;;KAUK,cAAA,GAAiB,KAAA,CAAM,cAAA,QAAsB,WAAA,CAAmB,IAAA;AAAA,KAChE,kBAAA,GAAqB,KAAA,CAAM,cAAA,QAAsB,WAAA,CAAmB,IAAA;AAAA,KACpE,qBAAA,GAAwB,KAAA,CAAM,cAAA,QAAsB,WAAA,CAAmB,OAAA;AAAA,KACvE,qBAAA,GAAwB,KAAA,CAAM,cAAA,QAAsB,WAAA,CAAmB,KAAA;AAAA,iBAEnE,SAAA,CAAA;EAAY,SAAA;EAAA,GAAc;AAAA,GAAS,cAAA,GAAc,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAajD,aAAA,CAAA;EAAgB,SAAA;EAAA,GAAc;AAAA,GAAS,kBAAA,GAAkB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAazD,gBAAA,CAAA;EACP,SAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,qBAAA,GAAqB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAmBf,gBAAA,CAAA;EACP,SAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,qBAAA,GAAqB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"accordion.js","names":["AccordionPrimitive"],"sources":["../src/accordion.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { Accordion as AccordionPrimitive } from \"@base-ui/react/accordion\"\n\nimport { cn } from \"./lib/utils\"\n\nimport { ChevronDownIcon, ChevronUpIcon } from \"./lib/internal-icons\"\n\ntype AccordionProps = React.ComponentProps<typeof AccordionPrimitive.Root>\ntype AccordionItemProps = React.ComponentProps<typeof AccordionPrimitive.Item>\ntype AccordionTriggerProps = React.ComponentProps<typeof AccordionPrimitive.Trigger>\ntype AccordionContentProps = React.ComponentProps<typeof AccordionPrimitive.Panel>\n\nfunction Accordion({ className, ...props }: AccordionProps) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\n \"overflow-hidden flex w-full flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({ className, ...props }: AccordionItemProps) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\n \"not-last:border-b border-edge\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: AccordionTriggerProps) {\n return (\n <AccordionPrimitive.Header data-slot=\"accordion-header\" className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"cursor-clickable focus-visible:ring-focus/50 focus-visible:border-focus focus-visible:after:border-focus **:data-[slot=accordion-trigger-icon]:text-muted group/accordion-trigger relative flex flex-1 items-start justify-between rounded-md border border-transparent py-2.5 text-left text-sm font-medium motion-color outline-none hover:underline focus-visible:ring-3 aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\" />\n <ChevronUpIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: AccordionContentProps) {\n return (\n <AccordionPrimitive.Panel\n data-slot=\"accordion-panel\"\n className=\"data-open:animate-accordion-down data-closed:animate-accordion-up overflow-hidden text-sm\"\n {...props}\n >\n <div\n data-slot=\"accordion-content\"\n className={cn(\n \"[&_a]:hover:text-contrast h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4\",\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Panel>\n )\n}\n\nexport {\n Accordion,\n AccordionItem,\n AccordionTrigger,\n AccordionContent,\n}\n"],"mappings":";;;;;;;AAeA,SAAS,UAAU,EAAE,WAAW,GAAG,SAAyB;AAC1D,QACE,oBAACA,YAAmB,MAApB;EACE,aAAU;EACV,WAAW,GACT,wCACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,cAAc,EAAE,WAAW,GAAG,SAA6B;AAClE,QACE,oBAACA,YAAmB,MAApB;EACE,aAAU;EACV,WAAW,GACT,iCACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACqB;AACxB,QACE,oBAACA,YAAmB,QAApB;EAA2B,aAAU;EAAmB,WAAU;YAChE,qBAACA,YAAmB,SAApB;GACE,aAAU;GACV,WAAW,GACT,qgBACA,UACD;GACD,GAAI;aANN;IAQG;IACD,oBAAC,iBAAD;KAAiB,aAAU;KAAyB,WAAU;KAA8E,CAAA;IAC5I,oBAAC,eAAD;KAAe,aAAU;KAAyB,WAAU;KAAqF,CAAA;IACtH;;EACH,CAAA;;AAIhC,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACqB;AACxB,QACE,oBAACA,YAAmB,OAApB;EACE,aAAU;EACV,WAAU;EACV,GAAI;YAEJ,oBAAC,OAAD;GACE,aAAU;GACV,WAAW,GACT,yLACA,UACD;GAEA;GACG,CAAA;EACmB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"action-bar.d.ts","names":[],"sources":["../src/action-bar.tsx"],"mappings":";;;;;UAeiB,cAAA;;EAEf,UAAA;EAF6B;EAI7B,MAAA;EAE4B;EAA5B,MAAA,eAAqB,OAAA;EAFrB;EAIA,OAAA;AAAA;AAAA,UA4Ce,sBAAA;EACf,QAAA,EAAU,KAAA,CAAM,SAAA;EA7CT;EA+CP,OAAA;EAHqC;EAKrC,aAAA,IAAiB,KAAA;EAJQ;;;;EASzB,cAAA;EALA;EAOA,SAAA;AAAA;;;;AACD;;;;;;;;;;;;;;;;;iBAsBQ,iBAAA,CAAA;EACP,QAAA;EACA,OAAA;EACA,aAAA;EACA,cAAA;EACA;AAAA,GACC,sBAAA,GAAsB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;;;;;;;iBAuQhB,YAAA,CAAa,EAAA,UAAY,KAAA,EAAO,cAAA;AAvQhB;;;;;;;;;AAuQ8B;;;;;AAvQ9B,iBA8ShB,iBAAA,CAAkB,QAAA,GAAW,IAAA,qBAAqB,IAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"action-bar.js","names":[],"sources":["../src/action-bar.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { AnimatePresence, motion, useReducedMotion } from \"motion/react\"\n\nimport { cn } from \"./lib/utils\"\nimport { Button } from \"./button\"\nimport { Spinner } from \"./spinner\"\nimport { Kbd } from \"./kbd\"\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** State a form registers with the ActionBar. */\nexport interface ActionBarEntry {\n /** Whether this form has unsaved changes. */\n hasChanges: boolean\n /** Whether this form is currently saving. */\n saving: boolean\n /** Save this form's changes. */\n onSave: () => void | Promise<void>\n /** Discard this form's changes. */\n onReset: () => void\n}\n\ninterface ActionBarContextValue {\n register: (id: string, entry: ActionBarEntry) => void\n unregister: (id: string) => void\n /** Returns true if any registered form has unsaved changes. */\n hasDirty: () => boolean\n /** Trigger the jiggle effect on blocked navigation. */\n jiggle: () => void\n}\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\nconst JIGGLE_STEPS = 6\nconst JIGGLE_INTERVAL = 50\nconst JIGGLE_RANGE = 15\n\n/**\n * SSR-safe platform detection. Returns `false` on the server and on the\n * first client render so hydration matches, then resolves the real\n * platform after mount. Avoids the `⌘S`/`Ctrl+S` hydration mismatch\n * that a module-scope `navigator` read would cause.\n */\nfunction useIsMac(): boolean {\n const [isMac, setIsMac] = React.useState(false)\n React.useEffect(() => {\n setIsMac(/Mac|iPhone|iPad/.test(navigator.userAgent))\n }, [])\n return isMac\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\nconst ActionBarContext = React.createContext<ActionBarContextValue | null>(null)\n\n// ---------------------------------------------------------------------------\n// Provider\n// ---------------------------------------------------------------------------\n\nexport interface ActionBarProviderProps {\n children: React.ReactNode\n /** Message when one form has changes. */\n message?: string\n /** Message template for multiple dirty forms. */\n pluralMessage?: (count: number) => string\n /**\n * Announced to assistive tech (and the only feedback reduced-motion\n * users get) when guarded navigation is blocked.\n */\n blockedMessage?: string\n /** Additional className for the bar's outer wrapper. */\n className?: string\n}\n\n/**\n * Global action bar for unsaved changes.\n *\n * Place once at the root layout. Forms register via `useActionBar()`.\n *\n * Features:\n * - Multi-form aggregation (Save All / Reset All)\n * - ⌘S / Ctrl+S keyboard shortcut\n * - Navigation guard with Discord-style page jiggle\n * - `beforeunload` guard for browser close/refresh\n *\n * @example\n * ```tsx\n * // Root layout — once\n * <ActionBarProvider>{children}</ActionBarProvider>\n *\n * // Any form component\n * useActionBar('profile', { hasChanges, saving, onSave, onReset });\n * ```\n */\nfunction ActionBarProvider({\n children,\n message = \"You have unsaved changes\",\n pluralMessage = (count) => `${count} unsaved changes`,\n blockedMessage = \"Save or reset your changes before leaving this page\",\n className,\n}: ActionBarProviderProps) {\n const entriesRef = React.useRef(new Map<string, ActionBarEntry>())\n const [, forceUpdate] = React.useState(0)\n const [jiggleTransform, setJiggleTransform] = React.useState<string | null>(\n null\n )\n const jiggleTimerRef = React.useRef<ReturnType<typeof setTimeout> | null>(\n null\n )\n const contentRef = React.useRef<HTMLDivElement>(null)\n const isMac = useIsMac()\n const prefersReducedMotion = useReducedMotion()\n const reducedMotionRef = React.useRef(prefersReducedMotion)\n reducedMotionRef.current = prefersReducedMotion\n // Assertive announcement for blocked navigation. This is the *only*\n // feedback channel that works for screen-reader and reduced-motion\n // users (the visual jiggle is suppressed for them), so it is driven\n // independently of the shake.\n const [blockedNotice, setBlockedNotice] = React.useState(\"\")\n\n // --- Registry ---\n\n const register = React.useCallback((id: string, entry: ActionBarEntry) => {\n const prev = entriesRef.current.get(id)\n entriesRef.current.set(id, entry)\n if (\n !prev ||\n prev.hasChanges !== entry.hasChanges ||\n prev.saving !== entry.saving\n ) {\n forceUpdate((n) => n + 1)\n }\n }, [])\n\n const unregister = React.useCallback((id: string) => {\n if (entriesRef.current.delete(id)) {\n forceUpdate((n) => n + 1)\n }\n }, [])\n\n const hasDirty = React.useCallback(() => {\n for (const entry of entriesRef.current.values()) {\n if (entry.hasChanges) return true\n }\n return false\n }, [])\n\n // --- Jiggle ---\n\n const jiggle = React.useCallback(() => {\n // Announce to assistive tech on every blocked attempt. Clearing\n // first guarantees a text change so an identical message\n // re-announces on repeat presses.\n setBlockedNotice(\"\")\n requestAnimationFrame(() => setBlockedNotice(blockedMessage))\n\n // Vestibular safety: the random-translate shake is purely a motion\n // cue, so skip it under prefers-reduced-motion. The assertive\n // announcement above is the accessible equivalent.\n if (reducedMotionRef.current) return\n if (jiggleTimerRef.current) return\n\n let step = 0\n\n function tick() {\n step++\n if (step >= JIGGLE_STEPS) {\n setJiggleTransform(null)\n jiggleTimerRef.current = null\n return\n }\n const x = (Math.random() - 0.5) * 2 * JIGGLE_RANGE\n const y = (Math.random() - 0.5) * 2 * JIGGLE_RANGE\n setJiggleTransform(\n `translate3d(${x.toFixed(5)}px, ${y.toFixed(5)}px, 0px)`\n )\n jiggleTimerRef.current = setTimeout(tick, JIGGLE_INTERVAL)\n }\n\n tick()\n }, [blockedMessage])\n\n // --- Aggregated state ---\n\n const dirty: ActionBarEntry[] = []\n let anySaving = false\n\n for (const entry of entriesRef.current.values()) {\n if (entry.hasChanges) dirty.push(entry)\n if (entry.saving) anySaving = true\n }\n\n const showBar = dirty.length > 0 || anySaving\n const dirtyCount = dirty.length\n const displayMessage =\n dirtyCount > 1 ? pluralMessage(dirtyCount) : message\n\n // --- Save / Reset ---\n\n const handleSaveAll = React.useCallback(async () => {\n const saves = [...entriesRef.current.values()]\n .filter((e) => e.hasChanges)\n .map((e) => e.onSave())\n await Promise.all(saves)\n }, [])\n\n const handleResetAll = React.useCallback(() => {\n for (const entry of entriesRef.current.values()) {\n if (entry.hasChanges) entry.onReset()\n }\n }, [])\n\n // --- ⌘S / Ctrl+S ---\n\n React.useEffect(() => {\n function handleKeyDown(e: KeyboardEvent) {\n if ((e.metaKey || e.ctrlKey) && e.key === \"s\") {\n e.preventDefault()\n if (hasDirty()) {\n handleSaveAll()\n }\n }\n }\n\n document.addEventListener(\"keydown\", handleKeyDown)\n return () => document.removeEventListener(\"keydown\", handleKeyDown)\n }, [hasDirty, handleSaveAll])\n\n // --- beforeunload ---\n\n React.useEffect(() => {\n function handleBeforeUnload(e: BeforeUnloadEvent) {\n if (hasDirty()) {\n e.preventDefault()\n }\n }\n\n window.addEventListener(\"beforeunload\", handleBeforeUnload)\n return () => window.removeEventListener(\"beforeunload\", handleBeforeUnload)\n }, [hasDirty])\n\n // --- Context ---\n\n const ctx = React.useMemo(\n () => ({ register, unregister, hasDirty, jiggle }),\n [register, unregister, hasDirty, jiggle]\n )\n\n return (\n <ActionBarContext.Provider value={ctx}>\n <div\n data-slot=\"action-bar-shell\"\n ref={contentRef}\n style={jiggleTransform ? { transform: jiggleTransform } : undefined}\n >\n {children}\n </div>\n\n {/*\n Persistent SR-only live regions. They are always mounted so the\n announcement fires reliably when their text changes — a region\n mounted already-populated is not announced consistently across\n screen reader / browser combinations.\n */}\n <span data-slot=\"action-bar-status\" aria-live=\"polite\" className=\"sr-only\">\n {showBar ? displayMessage : \"\"}\n </span>\n <span\n data-slot=\"action-bar-blocked-status\"\n aria-live=\"assertive\"\n className=\"sr-only\"\n >\n {blockedNotice}\n </span>\n\n <AnimatePresence>\n {showBar && (\n <motion.div\n data-slot=\"action-bar\"\n initial={\n prefersReducedMotion\n ? { opacity: 0, x: \"-50%\" }\n : { opacity: 0, y: 20, x: \"-50%\" }\n }\n animate={{ opacity: 1, y: 0, x: \"-50%\" }}\n exit={\n prefersReducedMotion\n ? { opacity: 0, x: \"-50%\" }\n : { opacity: 0, y: 20, x: \"-50%\" }\n }\n transition={{ duration: 0.2, ease: \"easeOut\" }}\n className=\"fixed bottom-6 left-1/2 z-50\"\n >\n <div\n data-slot=\"action-bar-content\"\n className={cn(\n \"flex items-center gap-6 rounded-lg border border-line/60 bg-surface px-5 py-2.5 shadow-lg ring-1 ring-line backdrop-blur-sm\",\n className\n )}\n >\n <span\n data-slot=\"action-bar-message\"\n className=\"whitespace-nowrap text-sm font-medium text-contrast\"\n >\n {displayMessage}\n </span>\n\n <div\n data-slot=\"action-bar-actions\"\n className=\"flex items-center gap-1.5\"\n >\n <Button\n type=\"button\"\n variant=\"ghost\"\n disabled={anySaving}\n onClick={handleResetAll}\n className=\"h-9 px-3 text-sm hover:text-destructive\"\n >\n Reset\n </Button>\n\n <Button\n type=\"button\"\n variant=\"default\"\n disabled={anySaving}\n onClick={handleSaveAll}\n className=\"h-9 px-4 text-sm\"\n >\n {anySaving ? (\n <>\n <Spinner className=\"mr-1.5 h-3.5 w-3.5\" />\n Saving\n </>\n ) : (\n <>\n Save\n <Kbd className=\"ml-1.5\">\n {isMac ? \"⌘S\" : \"Ctrl+S\"}\n </Kbd>\n </>\n )}\n </Button>\n </div>\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </ActionBarContext.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Hook — register form state\n// ---------------------------------------------------------------------------\n\n/**\n * Register a form's unsaved state with the global ActionBar.\n *\n * Unregisters automatically on unmount.\n *\n * @param id — Unique key (e.g., 'profile', 'notifications')\n * @param entry — Current form state\n */\nfunction useActionBar(id: string, entry: ActionBarEntry) {\n const ctx = React.useContext(ActionBarContext)\n if (!ctx)\n throw new Error(\"useActionBar must be used within <ActionBarProvider>\")\n\n const { register, unregister } = ctx\n\n // Intentionally no dependency array: `entry` (and its `onSave`/\n // `onReset` closures) is rebuilt by the caller every render, so we\n // must re-register each render to keep the latest closures. The\n // `register` impl diffs the entry and only forces an update when\n // `hasChanges`/`saving` actually changed, so this can't loop.\n React.useEffect(() => {\n register(id, entry)\n })\n\n React.useEffect(() => {\n return () => unregister(id)\n }, [id, unregister])\n}\n\n// ---------------------------------------------------------------------------\n// Navigation guard hook\n// ---------------------------------------------------------------------------\n\n/**\n * Returns a function that guards navigation.\n * If unsaved changes exist, triggers the jiggle and blocks navigation.\n * Otherwise navigates normally via the provided callback.\n *\n * @param navigate — Your navigation function (e.g., `router.push`)\n *\n * @example\n * ```tsx\n * const router = useRouter();\n * const guardedPush = useActionBarGuard(router.push);\n * <button onClick={() => guardedPush('/settings')}>Settings</button>\n * ```\n */\nfunction useActionBarGuard(navigate: (href: string) => void) {\n const ctx = React.useContext(ActionBarContext)\n\n return React.useCallback(\n (href: string) => {\n if (ctx?.hasDirty()) {\n ctx.jiggle()\n return false\n }\n navigate(href)\n return true\n },\n [ctx, navigate]\n )\n}\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport {\n ActionBarProvider,\n useActionBar,\n useActionBarGuard,\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alert-dialog.d.ts","names":[],"sources":["../src/alert-dialog.tsx"],"mappings":";;;;;;KAQK,gBAAA,GAAmB,KAAA,CAAM,cAAA,QAAsB,aAAA,CAAqB,IAAA;AAAA,KAEpE,uBAAA,GAA0B,KAAA,CAAM,cAAA,QAAsB,aAAA,CAAqB,OAAA;AAAA,KAE3E,sBAAA,GAAyB,KAAA,CAAM,cAAA,QAAsB,aAAA,CAAqB,MAAA;AAAA,KAE1E,uBAAA,GAA0B,KAAA,CAAM,cAAA,QAAsB,aAAA,CAAqB,QAAA;AAAA,KAE3E,uBAAA,GAA0B,KAAA,CAAM,cAAA,QAAsB,aAAA,CAAqB,KAAA;EAC9E,IAAA;AAAA;AAAA,KAGG,sBAAA,GAAyB,KAAA,CAAM,cAAA;AAAA,KAE/B,sBAAA,GAAyB,KAAA,CAAM,cAAA;AAAA,KAE/B,qBAAA,GAAwB,KAAA,CAAM,cAAA;AAAA,KAE9B,qBAAA,GAAwB,KAAA,CAAM,cAAA,QAAsB,aAAA,CAAqB,KAAA;AAAA,KAEzE,2BAAA,GAA8B,KAAA,CAAM,cAAA,QAAsB,aAAA,CAAqB,WAAA;AAAA,KAE/E,sBAAA,GAAyB,KAAA,CAAM,cAAA,QAAsB,MAAA;AAAA,KAErD,sBAAA,GAAyB,KAAA,CAAM,cAAA,QAAsB,aAAA,CAAqB,KAAA,IAC7E,IAAA,CAAK,KAAA,CAAM,cAAA,QAAsB,MAAA;AAAA,iBAE1B,WAAA,CAAA;EAAA,GAAiB;AAAA,GAAS,gBAAA,GAAgB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAI1C,kBAAA,CAAA;EAAA,GAAwB;AAAA,GAAS,uBAAA,GAAuB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAIxD,iBAAA,CAAA;EAAA,GAAuB;AAAA,GAAS,sBAAA,GAAsB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAItD,kBAAA,CAAA;EAAqB,SAAA;EAAA,GAAc;AAAA,GAAS,uBAAA,GAAuB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAanE,kBAAA,CAAA;EACP,SAAA;EACA,IAAA;EAAA,GACG;AAAA,GACF,uBAAA,GAAuB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAiBjB,iBAAA,CAAA;EAAoB,SAAA;EAAA,GAAc;AAAA,GAAS,sBAAA,GAAsB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAajE,iBAAA,CAAA;EAAoB,SAAA;EAAA,GAAc;AAAA,GAAS,sBAAA,GAAsB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAajE,gBAAA,CAAA;EAAmB,SAAA;EAAA,GAAc;AAAA,GAAS,qBAAA,GAAqB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAa/D,gBAAA,CAAA;EAAmB,SAAA;EAAA,GAAc;AAAA,GAAS,qBAAA,GAAqB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAa/D,sBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,2BAAA,GAA2B,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAarB,iBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,sBAAA,GAAsB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUhB,iBAAA,CAAA;EACP,SAAA;EACA,OAAA;EACA,IAAA;EAAA,GACG;AAAA,GACF,sBAAA,GAAsB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alert-dialog.js","names":["AlertDialogPrimitive"],"sources":["../src/alert-dialog.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { AlertDialog as AlertDialogPrimitive } from \"@base-ui/react/alert-dialog\"\n\nimport { Button } from \"./button\"\nimport { cn } from \"./lib/utils\"\n\ntype AlertDialogProps = React.ComponentProps<typeof AlertDialogPrimitive.Root>\n\ntype AlertDialogTriggerProps = React.ComponentProps<typeof AlertDialogPrimitive.Trigger>\n\ntype AlertDialogPortalProps = React.ComponentProps<typeof AlertDialogPrimitive.Portal>\n\ntype AlertDialogOverlayProps = React.ComponentProps<typeof AlertDialogPrimitive.Backdrop>\n\ntype AlertDialogContentProps = React.ComponentProps<typeof AlertDialogPrimitive.Popup> & {\n size?: \"default\" | \"sm\" | \"lg\" | \"xl\"\n}\n\ntype AlertDialogHeaderProps = React.ComponentProps<\"div\">\n\ntype AlertDialogFooterProps = React.ComponentProps<\"div\">\n\ntype AlertDialogMediaProps = React.ComponentProps<\"div\">\n\ntype AlertDialogTitleProps = React.ComponentProps<typeof AlertDialogPrimitive.Title>\n\ntype AlertDialogDescriptionProps = React.ComponentProps<typeof AlertDialogPrimitive.Description>\n\ntype AlertDialogActionProps = React.ComponentProps<typeof Button>\n\ntype AlertDialogCancelProps = React.ComponentProps<typeof AlertDialogPrimitive.Close> &\n Pick<React.ComponentProps<typeof Button>, \"variant\" | \"size\">\n\nfunction AlertDialog({ ...props }: AlertDialogProps) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />\n}\n\nfunction AlertDialogTrigger({ ...props }: AlertDialogTriggerProps) {\n return <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n}\n\nfunction AlertDialogPortal({ ...props }: AlertDialogPortalProps) {\n return <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n}\n\nfunction AlertDialogOverlay({ className, ...props }: AlertDialogOverlayProps) {\n return (\n <AlertDialogPrimitive.Backdrop\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"motion-scrim fixed inset-0 isolate z-50 bg-scrim supports-backdrop-filter:backdrop-blur-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogContent({\n className,\n size = \"default\",\n ...props\n}: AlertDialogContentProps) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Popup\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n \"motion-scale-lg bg-foundation ring-contrast/10 group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg p-4 ring-1 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=lg]:max-w-lg data-[size=xl]:max-w-xl data-[size=default]:sm:max-w-sm data-[size=lg]:sm:max-w-lg data-[size=xl]:sm:max-w-xl\",\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n )\n}\n\nfunction AlertDialogHeader({ className, ...props }: AlertDialogHeaderProps) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n \"grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr] group-data-[size=lg]/alert-dialog-content:place-items-start group-data-[size=lg]/alert-dialog-content:text-left group-data-[size=xl]/alert-dialog-content:place-items-start group-data-[size=xl]/alert-dialog-content:text-left\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogFooter({ className, ...props }: AlertDialogFooterProps) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"bg-secondary/50 -mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-lg border-t border-line p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogMedia({ className, ...props }: AlertDialogMediaProps) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"bg-secondary mb-2 inline-flex size-10 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogTitle({ className, ...props }: AlertDialogTitleProps) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n \"text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: AlertDialogDescriptionProps) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\n \"text-muted *:[a]:hover:text-contrast text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: AlertDialogActionProps) {\n return (\n <Button\n data-slot=\"alert-dialog-action\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogCancel({\n className,\n variant = \"outline\",\n size = \"default\",\n ...props\n}: AlertDialogCancelProps) {\n return (\n <AlertDialogPrimitive.Close\n data-slot=\"alert-dialog-cancel\"\n className={className}\n render={<Button variant={variant} size={size} />}\n {...props}\n />\n )\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n}\n"],"mappings":";;;;;;;AAmCA,SAAS,YAAY,EAAE,GAAG,SAA2B;AACnD,QAAO,oBAACA,cAAqB,MAAtB;EAA2B,aAAU;EAAe,GAAI;EAAS,CAAA;;AAG1E,SAAS,mBAAmB,EAAE,GAAG,SAAkC;AACjE,QAAO,oBAACA,cAAqB,SAAtB;EAA8B,aAAU;EAAuB,GAAI;EAAS,CAAA;;AAGrF,SAAS,kBAAkB,EAAE,GAAG,SAAiC;AAC/D,QAAO,oBAACA,cAAqB,QAAtB;EAA6B,aAAU;EAAsB,GAAI;EAAS,CAAA;;AAGnF,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAAkC;AAC5E,QACE,oBAACA,cAAqB,UAAtB;EACE,aAAU;EACV,WAAW,GACT,8FACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,mBAAmB,EAC1B,WACA,OAAO,WACP,GAAG,SACuB;AAC1B,QACE,qBAAC,mBAAD,EAAA,UAAA,CACE,oBAAC,oBAAD,EAAsB,CAAA,EACtB,oBAACA,cAAqB,OAAtB;EACE,aAAU;EACV,aAAW;EACX,WAAW,GACT,2XACA,UACD;EACD,GAAI;EACJ,CAAA,CACgB,EAAA,CAAA;;AAIxB,SAAS,kBAAkB,EAAE,WAAW,GAAG,SAAiC;AAC1E,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,snBACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,kBAAkB,EAAE,WAAW,GAAG,SAAiC;AAC1E,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,iOACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAgC;AACxE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,kLACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAgC;AACxE,QACE,oBAACA,cAAqB,OAAtB;EACE,aAAU;EACV,WAAW,GACT,qJACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC2B;AAC9B,QACE,oBAACA,cAAqB,aAAtB;EACE,aAAU;EACV,WAAW,GACT,qHACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,kBAAkB,EACzB,WACA,GAAG,SACsB;AACzB,QACE,oBAAC,QAAD;EACE,aAAU;EACV,WAAW,GAAG,UAAU;EACxB,GAAI;EACJ,CAAA;;AAIN,SAAS,kBAAkB,EACzB,WACA,UAAU,WACV,OAAO,WACP,GAAG,SACsB;AACzB,QACE,oBAACA,cAAqB,OAAtB;EACE,aAAU;EACC;EACX,QAAQ,oBAAC,QAAD;GAAiB;GAAe;GAAQ,CAAA;EAChD,GAAI;EACJ,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alert.d.ts","names":[],"sources":["../src/alert.tsx"],"mappings":";;;;;;cAKM,aAAA,GAAa,KAAA;;IAclB,iCAAA,CAAA,SAAA;AAAA,KAEI,UAAA,GAAa,KAAA,CAAM,cAAA,UAAwB,YAAA,QAAoB,aAAA;AAAA,KAC/D,eAAA,GAAkB,KAAA,CAAM,cAAA;AAAA,KACxB,qBAAA,GAAwB,KAAA,CAAM,cAAA;AAAA,KAC9B,gBAAA,GAAmB,KAAA,CAAM,cAAA;AAAA,iBAErB,KAAA,CAAA;EACP,SAAA;EACA,OAAA;EAAA,GACG;AAAA,GACF,UAAA,GAAU,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAWJ,UAAA,CAAA;EAAa,SAAA;EAAA,GAAc;AAAA,GAAS,eAAA,GAAe,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAanD,gBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,qBAAA,GAAqB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAaf,WAAA,CAAA;EAAc,SAAA;EAAA,GAAc;AAAA,GAAS,gBAAA,GAAgB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
package/dist/alert.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"alert.js","names":[],"sources":["../src/alert.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"./lib/utils\"\n\nconst alertVariants = cva(\n \"grid gap-0.5 rounded-md border border-edge px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-data-[icon]:grid-cols-[auto_1fr] has-data-[icon]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 w-full relative group/alert\",\n {\n variants: {\n variant: {\n default: \"bg-surface text-contrast\",\n destructive:\n \"text-destructive bg-surface *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\ntype AlertProps = React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>\ntype AlertTitleProps = React.ComponentProps<\"div\">\ntype AlertDescriptionProps = React.ComponentProps<\"div\">\ntype AlertActionProps = React.ComponentProps<\"div\">\n\nfunction Alert({\n className,\n variant,\n ...props\n}: AlertProps) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction AlertTitle({ className, ...props }: AlertTitleProps) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"[&_a]:hover:text-contrast font-medium group-has-data-[icon]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: AlertDescriptionProps) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-muted [&_a]:hover:text-contrast text-sm text-balance md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertAction({ className, ...props }: AlertActionProps) {\n return (\n <div\n data-slot=\"alert-action\"\n className={cn(\"absolute top-2 right-2\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Alert,\n AlertTitle,\n AlertDescription,\n AlertAction\n}\n"],"mappings":";;;;;AAKA,MAAM,gBAAgB,IACpB,mVACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,aACE;EACH,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAOD,SAAS,MAAM,EACb,WACA,SACA,GAAG,SACU;AACb,QACE,oBAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,WAAW,GAAG,cAAc,EAAE,SAAS,CAAC,EAAE,UAAU;EACpD,GAAI;EACJ,CAAA;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAA0B;AAC5D,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,0HACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,iBAAiB,EACxB,WACA,GAAG,SACqB;AACxB,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,iJACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAA2B;AAC9D,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,0BAA0B,UAAU;EAClD,GAAI;EACJ,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"animate.d.ts","names":[],"sources":["../src/animate.tsx"],"mappings":";;;;;;KAkBK,SAAA;AAAA,UAEK,kBAAA;EACR,QAAA,EAAU,YAAA;;EAEV,KAAA;EALY;EAOZ,IAAA,GAAO,SAAA;EAPK;EASZ,QAAA;EAPQ;EASR,KAAA;;EAEA,IAAA;EANO;EAQP,MAAA;EAQuB;EANvB,IAAA;EAdA;EAgBA,MAAA;EAdA;EAgBA,IAAA;EAdO;EAgBP,UAAA,GAAa,UAAA;AAAA;AAAA,UAGL,cAAA;EACR,QAAA,EAAU,YAAA;EAVV;EAYA,KAAA;EARA;EAUA,IAAA,GAAO,SAAA;EARM;EAUb,QAAA;EAVuB;EAYvB,KAAA;EATsB;EAWtB,IAAA;EAVU;EAYV,MAAA;EAMa;EAJb,IAAA;EAIuB;EAFvB,MAAA;EAhBU;EAkBV,UAAA,GAAa,UAAA;AAAA;AAAA,UAGL,YAAA;EACR,QAAA,EAAU,YAAA;EAdV;EAgBA,QAAA;EAZA;EAcA,SAAA;AAAA;AAAA,UAGQ,UAAA;EACR,QAAA,EAAU,YAAA;EAZa;EAcvB,GAAA;EAXQ;EAaR,GAAA;;EAEA,QAAA;EAdA;EAgBA,OAAA;EAdA;EAgBA,MAAA;AAAA;AAAA,UAGQ,UAAA;EACR,QAAA,EAAU,YAAA;EAfQ;EAiBlB,QAAA;EAhBsB;EAkBtB,QAAA;EAlBU;EAoBV,MAAA;EAhBA;EAkBA,MAAA;AAAA;;;;AAZM;;;;;;;;;;;;AAYA;iBA+HC,aAAA,CAAA;EACP,QAAA;EACA,KAAA;EACA,IAAA;EACA,QAAA;EACA,KAAA;EACA,IAAA;EACA,MAAA;EACA,IAAA;EACA,MAAA;EACA,IAAA;EACA;AAAA,GACC,kBAAA,GAAkB,YAAA,mBAAA,OAAA,CAAA,qBAAA;;;;;;;;;;;;;;iBAkEZ,SAAA,CAAA;EACP,QAAA;EACA,KAAA;EACA,IAAA;EACA,QAAA;EACA,KAAA;EACA,IAAA;EACA,MAAA;EACA,IAAA;EACA,MAAA;EACA;AAAA,GACC,cAAA,GAAc,YAAA,mBAAA,OAAA,CAAA,qBAAA;;;;;;;;;;;;;iBA4DR,OAAA,CAAA;EACP,QAAA;EACA,QAAA;EACA;AAAA,GACC,YAAA,GAAY,oBAAA,CAAA,GAAA,CAAA,OAAA;;;;;;;;;;;;iBA0BN,KAAA,CAAA;EACP,QAAA;EACA,GAAA;EACA,GAAA;EACA,QAAA;EACA,OAAA;EACA;AAAA,GACC,UAAA,GAAU,oBAAA,CAAA,GAAA,CAAA,OAAA;;;;;;AA9KQ;;;;;;iBA4OZ,KAAA,CAAA;EACP,QAAA;EACA,QAAA;EACA,QAAA;EACA,MAAA;EACA;AAAA,GACC,UAAA,GAAU,oBAAA,CAAA,GAAA,CAAA,OAAA"}