@asevenid/ui 0.1.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 (314) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +105 -0
  3. package/dist/components/primitives/accordion.d.ts +10 -0
  4. package/dist/components/primitives/accordion.d.ts.map +1 -0
  5. package/dist/components/primitives/accordion.js +37 -0
  6. package/dist/components/primitives/accordion.js.map +1 -0
  7. package/dist/components/primitives/alert-dialog.d.ts +9 -0
  8. package/dist/components/primitives/alert-dialog.d.ts.map +1 -0
  9. package/dist/components/primitives/alert-dialog.js +58 -0
  10. package/dist/components/primitives/alert-dialog.js.map +1 -0
  11. package/dist/components/primitives/alert.d.ts +12 -0
  12. package/dist/components/primitives/alert.d.ts.map +1 -0
  13. package/dist/components/primitives/alert.js +32 -0
  14. package/dist/components/primitives/alert.js.map +1 -0
  15. package/dist/components/primitives/avatar.d.ts +20 -0
  16. package/dist/components/primitives/avatar.d.ts.map +1 -0
  17. package/dist/components/primitives/avatar.js +55 -0
  18. package/dist/components/primitives/avatar.js.map +1 -0
  19. package/dist/components/primitives/badge.d.ts +14 -0
  20. package/dist/components/primitives/badge.d.ts.map +1 -0
  21. package/dist/components/primitives/badge.js +42 -0
  22. package/dist/components/primitives/badge.js.map +1 -0
  23. package/dist/components/primitives/button.d.ts +7 -0
  24. package/dist/components/primitives/button.d.ts.map +1 -0
  25. package/dist/components/primitives/button.js +52 -0
  26. package/dist/components/primitives/button.js.map +1 -0
  27. package/dist/components/primitives/calendar.d.ts +7 -0
  28. package/dist/components/primitives/calendar.d.ts.map +1 -0
  29. package/dist/components/primitives/calendar.js +32 -0
  30. package/dist/components/primitives/calendar.js.map +1 -0
  31. package/dist/components/primitives/card.d.ts +14 -0
  32. package/dist/components/primitives/card.d.ts.map +1 -0
  33. package/dist/components/primitives/card.js +29 -0
  34. package/dist/components/primitives/card.js.map +1 -0
  35. package/dist/components/primitives/checkbox.d.ts +7 -0
  36. package/dist/components/primitives/checkbox.d.ts.map +1 -0
  37. package/dist/components/primitives/checkbox.js +51 -0
  38. package/dist/components/primitives/checkbox.js.map +1 -0
  39. package/dist/components/primitives/color-picker.d.ts +23 -0
  40. package/dist/components/primitives/color-picker.d.ts.map +1 -0
  41. package/dist/components/primitives/color-picker.js +128 -0
  42. package/dist/components/primitives/color-picker.js.map +1 -0
  43. package/dist/components/primitives/combobox.d.ts +17 -0
  44. package/dist/components/primitives/combobox.d.ts.map +1 -0
  45. package/dist/components/primitives/combobox.js +106 -0
  46. package/dist/components/primitives/combobox.js.map +1 -0
  47. package/dist/components/primitives/date-picker.d.ts +21 -0
  48. package/dist/components/primitives/date-picker.d.ts.map +1 -0
  49. package/dist/components/primitives/date-picker.js +81 -0
  50. package/dist/components/primitives/date-picker.js.map +1 -0
  51. package/dist/components/primitives/date-range-picker.d.ts +16 -0
  52. package/dist/components/primitives/date-range-picker.d.ts.map +1 -0
  53. package/dist/components/primitives/date-range-picker.js +51 -0
  54. package/dist/components/primitives/date-range-picker.js.map +1 -0
  55. package/dist/components/primitives/dialog.d.ts +8 -0
  56. package/dist/components/primitives/dialog.d.ts.map +1 -0
  57. package/dist/components/primitives/dialog.js +46 -0
  58. package/dist/components/primitives/dialog.js.map +1 -0
  59. package/dist/components/primitives/drawer.d.ts +2 -0
  60. package/dist/components/primitives/drawer.d.ts.map +1 -0
  61. package/dist/components/primitives/field.d.ts +19 -0
  62. package/dist/components/primitives/field.d.ts.map +1 -0
  63. package/dist/components/primitives/field.js +55 -0
  64. package/dist/components/primitives/field.js.map +1 -0
  65. package/dist/components/primitives/input-group.d.ts +11 -0
  66. package/dist/components/primitives/input-group.d.ts.map +1 -0
  67. package/dist/components/primitives/input-group.js +32 -0
  68. package/dist/components/primitives/input-group.js.map +1 -0
  69. package/dist/components/primitives/input.d.ts +7 -0
  70. package/dist/components/primitives/input.d.ts.map +1 -0
  71. package/dist/components/primitives/input.js +18 -0
  72. package/dist/components/primitives/input.js.map +1 -0
  73. package/dist/components/primitives/kbd.d.ts +13 -0
  74. package/dist/components/primitives/kbd.d.ts.map +1 -0
  75. package/dist/components/primitives/kbd.js +18 -0
  76. package/dist/components/primitives/kbd.js.map +1 -0
  77. package/dist/components/primitives/label.d.ts +7 -0
  78. package/dist/components/primitives/label.d.ts.map +1 -0
  79. package/dist/components/primitives/label.js +21 -0
  80. package/dist/components/primitives/label.js.map +1 -0
  81. package/dist/components/primitives/pagination.d.ts +12 -0
  82. package/dist/components/primitives/pagination.d.ts.map +1 -0
  83. package/dist/components/primitives/pagination.js +92 -0
  84. package/dist/components/primitives/pagination.js.map +1 -0
  85. package/dist/components/primitives/radio-group.d.ts +9 -0
  86. package/dist/components/primitives/radio-group.d.ts.map +1 -0
  87. package/dist/components/primitives/radio-group.js +36 -0
  88. package/dist/components/primitives/radio-group.js.map +1 -0
  89. package/dist/components/primitives/select.d.ts +7 -0
  90. package/dist/components/primitives/select.d.ts.map +1 -0
  91. package/dist/components/primitives/select.js +31 -0
  92. package/dist/components/primitives/select.js.map +1 -0
  93. package/dist/components/primitives/sheet.d.ts +2 -0
  94. package/dist/components/primitives/sheet.d.ts.map +1 -0
  95. package/dist/components/primitives/skeleton.d.ts +5 -0
  96. package/dist/components/primitives/skeleton.d.ts.map +1 -0
  97. package/dist/components/primitives/skeleton.js +15 -0
  98. package/dist/components/primitives/skeleton.js.map +1 -0
  99. package/dist/components/primitives/slider.d.ts +10 -0
  100. package/dist/components/primitives/slider.d.ts.map +1 -0
  101. package/dist/components/primitives/slider.js +91 -0
  102. package/dist/components/primitives/slider.js.map +1 -0
  103. package/dist/components/primitives/sonner.d.ts +5 -0
  104. package/dist/components/primitives/sonner.d.ts.map +1 -0
  105. package/dist/components/primitives/sonner.js +50 -0
  106. package/dist/components/primitives/sonner.js.map +1 -0
  107. package/dist/components/primitives/switch.d.ts +7 -0
  108. package/dist/components/primitives/switch.d.ts.map +1 -0
  109. package/dist/components/primitives/switch.js +22 -0
  110. package/dist/components/primitives/switch.js.map +1 -0
  111. package/dist/components/primitives/table.d.ts +10 -0
  112. package/dist/components/primitives/table.d.ts.map +1 -0
  113. package/dist/components/primitives/table.js +74 -0
  114. package/dist/components/primitives/table.js.map +1 -0
  115. package/dist/components/primitives/tabs.d.ts +6 -0
  116. package/dist/components/primitives/tabs.d.ts.map +1 -0
  117. package/dist/components/primitives/tabs.js +146 -0
  118. package/dist/components/primitives/tabs.js.map +1 -0
  119. package/dist/components/primitives/tag.d.ts +17 -0
  120. package/dist/components/primitives/tag.d.ts.map +1 -0
  121. package/dist/components/primitives/tag.js +71 -0
  122. package/dist/components/primitives/tag.js.map +1 -0
  123. package/dist/components/primitives/textarea.d.ts +7 -0
  124. package/dist/components/primitives/textarea.d.ts.map +1 -0
  125. package/dist/components/primitives/textarea.js +18 -0
  126. package/dist/components/primitives/textarea.js.map +1 -0
  127. package/dist/components/primitives/toggle-group.d.ts +9 -0
  128. package/dist/components/primitives/toggle-group.d.ts.map +1 -0
  129. package/dist/components/primitives/toggle-group.js +61 -0
  130. package/dist/components/primitives/toggle-group.js.map +1 -0
  131. package/dist/components/primitives/toggle.d.ts +7 -0
  132. package/dist/components/primitives/toggle.d.ts.map +1 -0
  133. package/dist/components/primitives/toggle.js +36 -0
  134. package/dist/components/primitives/toggle.js.map +1 -0
  135. package/dist/components/ui/accordion.d.ts +8 -0
  136. package/dist/components/ui/accordion.d.ts.map +1 -0
  137. package/dist/components/ui/accordion.js +67 -0
  138. package/dist/components/ui/accordion.js.map +1 -0
  139. package/dist/components/ui/alert-dialog.d.ts +19 -0
  140. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  141. package/dist/components/ui/alert-dialog.js +147 -0
  142. package/dist/components/ui/alert-dialog.js.map +1 -0
  143. package/dist/components/ui/alert.d.ts +10 -0
  144. package/dist/components/ui/alert.d.ts.map +1 -0
  145. package/dist/components/ui/alert.js +69 -0
  146. package/dist/components/ui/alert.js.map +1 -0
  147. package/dist/components/ui/avatar.d.ts +12 -0
  148. package/dist/components/ui/avatar.d.ts.map +1 -0
  149. package/dist/components/ui/avatar.js +106 -0
  150. package/dist/components/ui/avatar.js.map +1 -0
  151. package/dist/components/ui/badge.d.ts +10 -0
  152. package/dist/components/ui/badge.d.ts.map +1 -0
  153. package/dist/components/ui/badge.js +46 -0
  154. package/dist/components/ui/badge.js.map +1 -0
  155. package/dist/components/ui/breadcrumb.d.ts +12 -0
  156. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  157. package/dist/components/ui/breadcrumb.js +106 -0
  158. package/dist/components/ui/breadcrumb.js.map +1 -0
  159. package/dist/components/ui/button-group.d.ts +12 -0
  160. package/dist/components/ui/button-group.d.ts.map +1 -0
  161. package/dist/components/ui/button-group.js +78 -0
  162. package/dist/components/ui/button-group.js.map +1 -0
  163. package/dist/components/ui/button.d.ts +11 -0
  164. package/dist/components/ui/button.d.ts.map +1 -0
  165. package/dist/components/ui/button.js +59 -0
  166. package/dist/components/ui/button.js.map +1 -0
  167. package/dist/components/ui/calendar.d.ts +9 -0
  168. package/dist/components/ui/calendar.d.ts.map +1 -0
  169. package/dist/components/ui/calendar.js +175 -0
  170. package/dist/components/ui/calendar.js.map +1 -0
  171. package/dist/components/ui/card.d.ts +10 -0
  172. package/dist/components/ui/card.d.ts.map +1 -0
  173. package/dist/components/ui/card.js +93 -0
  174. package/dist/components/ui/card.js.map +1 -0
  175. package/dist/components/ui/checkbox.d.ts +5 -0
  176. package/dist/components/ui/checkbox.d.ts.map +1 -0
  177. package/dist/components/ui/combobox.d.ts +25 -0
  178. package/dist/components/ui/combobox.d.ts.map +1 -0
  179. package/dist/components/ui/combobox.js +246 -0
  180. package/dist/components/ui/combobox.js.map +1 -0
  181. package/dist/components/ui/dialog.d.ts +18 -0
  182. package/dist/components/ui/dialog.d.ts.map +1 -0
  183. package/dist/components/ui/dialog.js +125 -0
  184. package/dist/components/ui/dialog.js.map +1 -0
  185. package/dist/components/ui/drawer.d.ts +14 -0
  186. package/dist/components/ui/drawer.d.ts.map +1 -0
  187. package/dist/components/ui/drawer.js +131 -0
  188. package/dist/components/ui/drawer.js.map +1 -0
  189. package/dist/components/ui/dropdown-menu.d.ts +26 -0
  190. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  191. package/dist/components/ui/dropdown-menu.js +234 -0
  192. package/dist/components/ui/dropdown-menu.js.map +1 -0
  193. package/dist/components/ui/field.d.ts +25 -0
  194. package/dist/components/ui/field.d.ts.map +1 -0
  195. package/dist/components/ui/field.js +223 -0
  196. package/dist/components/ui/field.js.map +1 -0
  197. package/dist/components/ui/input-group.d.ts +17 -0
  198. package/dist/components/ui/input-group.d.ts.map +1 -0
  199. package/dist/components/ui/input-group.js +136 -0
  200. package/dist/components/ui/input-group.js.map +1 -0
  201. package/dist/components/ui/input.d.ts +4 -0
  202. package/dist/components/ui/input.d.ts.map +1 -0
  203. package/dist/components/ui/input.js +24 -0
  204. package/dist/components/ui/input.js.map +1 -0
  205. package/dist/components/ui/kbd.d.ts +4 -0
  206. package/dist/components/ui/kbd.d.ts.map +1 -0
  207. package/dist/components/ui/kbd.js +33 -0
  208. package/dist/components/ui/kbd.js.map +1 -0
  209. package/dist/components/ui/label.d.ts +5 -0
  210. package/dist/components/ui/label.d.ts.map +1 -0
  211. package/dist/components/ui/label.js +25 -0
  212. package/dist/components/ui/label.js.map +1 -0
  213. package/dist/components/ui/pagination.d.ts +14 -0
  214. package/dist/components/ui/pagination.d.ts.map +1 -0
  215. package/dist/components/ui/pagination.js +39 -0
  216. package/dist/components/ui/pagination.js.map +1 -0
  217. package/dist/components/ui/popover.d.ts +11 -0
  218. package/dist/components/ui/popover.d.ts.map +1 -0
  219. package/dist/components/ui/popover.js +83 -0
  220. package/dist/components/ui/popover.js.map +1 -0
  221. package/dist/components/ui/radio-group.d.ts +6 -0
  222. package/dist/components/ui/radio-group.d.ts.map +1 -0
  223. package/dist/components/ui/radio-group.js +48 -0
  224. package/dist/components/ui/radio-group.js.map +1 -0
  225. package/dist/components/ui/select.d.ts +16 -0
  226. package/dist/components/ui/select.d.ts.map +1 -0
  227. package/dist/components/ui/select.js +181 -0
  228. package/dist/components/ui/select.js.map +1 -0
  229. package/dist/components/ui/separator.d.ts +5 -0
  230. package/dist/components/ui/separator.d.ts.map +1 -0
  231. package/dist/components/ui/separator.js +29 -0
  232. package/dist/components/ui/separator.js.map +1 -0
  233. package/dist/components/ui/sheet.d.ts +15 -0
  234. package/dist/components/ui/sheet.d.ts.map +1 -0
  235. package/dist/components/ui/sheet.js +130 -0
  236. package/dist/components/ui/sheet.js.map +1 -0
  237. package/dist/components/ui/sidebar.d.ts +70 -0
  238. package/dist/components/ui/sidebar.d.ts.map +1 -0
  239. package/dist/components/ui/sidebar.js +599 -0
  240. package/dist/components/ui/sidebar.js.map +1 -0
  241. package/dist/components/ui/skeleton.d.ts +3 -0
  242. package/dist/components/ui/skeleton.d.ts.map +1 -0
  243. package/dist/components/ui/skeleton.js +17 -0
  244. package/dist/components/ui/skeleton.js.map +1 -0
  245. package/dist/components/ui/slider.d.ts +5 -0
  246. package/dist/components/ui/slider.d.ts.map +1 -0
  247. package/dist/components/ui/slider.js +65 -0
  248. package/dist/components/ui/slider.js.map +1 -0
  249. package/dist/components/ui/sonner.d.ts +4 -0
  250. package/dist/components/ui/sonner.d.ts.map +1 -0
  251. package/dist/components/ui/sonner.js +33 -0
  252. package/dist/components/ui/sonner.js.map +1 -0
  253. package/dist/components/ui/spinner.d.ts +3 -0
  254. package/dist/components/ui/spinner.d.ts.map +1 -0
  255. package/dist/components/ui/spinner.js +19 -0
  256. package/dist/components/ui/spinner.js.map +1 -0
  257. package/dist/components/ui/switch.d.ts +7 -0
  258. package/dist/components/ui/switch.d.ts.map +1 -0
  259. package/dist/components/ui/switch.js +36 -0
  260. package/dist/components/ui/switch.js.map +1 -0
  261. package/dist/components/ui/table.d.ts +11 -0
  262. package/dist/components/ui/table.d.ts.map +1 -0
  263. package/dist/components/ui/table.js +117 -0
  264. package/dist/components/ui/table.js.map +1 -0
  265. package/dist/components/ui/tabs.d.ts +12 -0
  266. package/dist/components/ui/tabs.d.ts.map +1 -0
  267. package/dist/components/ui/tabs.js +94 -0
  268. package/dist/components/ui/tabs.js.map +1 -0
  269. package/dist/components/ui/textarea.d.ts +4 -0
  270. package/dist/components/ui/textarea.d.ts.map +1 -0
  271. package/dist/components/ui/textarea.js +21 -0
  272. package/dist/components/ui/textarea.js.map +1 -0
  273. package/dist/components/ui/toggle-group.d.ts +10 -0
  274. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  275. package/dist/components/ui/toggle-group.js +71 -0
  276. package/dist/components/ui/toggle-group.js.map +1 -0
  277. package/dist/components/ui/toggle.d.ts +10 -0
  278. package/dist/components/ui/toggle.d.ts.map +1 -0
  279. package/dist/components/ui/toggle.js +46 -0
  280. package/dist/components/ui/toggle.js.map +1 -0
  281. package/dist/components/ui/tooltip.d.ts +8 -0
  282. package/dist/components/ui/tooltip.d.ts.map +1 -0
  283. package/dist/components/ui/tooltip.js +58 -0
  284. package/dist/components/ui/tooltip.js.map +1 -0
  285. package/dist/design-system/modes/options.d.ts +26 -0
  286. package/dist/design-system/modes/options.d.ts.map +1 -0
  287. package/dist/design-system/modes/options.js +61 -0
  288. package/dist/design-system/modes/options.js.map +1 -0
  289. package/dist/design-system/modes/runtime.d.ts +34 -0
  290. package/dist/design-system/modes/runtime.d.ts.map +1 -0
  291. package/dist/design-system/modes/runtime.js +195 -0
  292. package/dist/design-system/modes/runtime.js.map +1 -0
  293. package/dist/hooks/use-mobile.d.ts +2 -0
  294. package/dist/hooks/use-mobile.d.ts.map +1 -0
  295. package/dist/hooks/use-mobile.js +16 -0
  296. package/dist/hooks/use-mobile.js.map +1 -0
  297. package/dist/index.d.ts +51 -0
  298. package/dist/index.d.ts.map +1 -0
  299. package/dist/index.js +306 -0
  300. package/dist/index.js.map +1 -0
  301. package/dist/lib/constants.d.ts +2 -0
  302. package/dist/lib/constants.d.ts.map +1 -0
  303. package/dist/lib/cva.d.ts +2 -0
  304. package/dist/lib/cva.d.ts.map +1 -0
  305. package/dist/lib/generate-shades.d.ts +39 -0
  306. package/dist/lib/generate-shades.d.ts.map +1 -0
  307. package/dist/lib/generate-shades.js +220 -0
  308. package/dist/lib/generate-shades.js.map +1 -0
  309. package/dist/lib/utils.d.ts +3 -0
  310. package/dist/lib/utils.d.ts.map +1 -0
  311. package/dist/lib/utils.js +10 -0
  312. package/dist/lib/utils.js.map +1 -0
  313. package/dist/styles.css +2 -0
  314. package/package.json +106 -0
@@ -0,0 +1,71 @@
1
+ "use client";
2
+ import { jsx as i } from "react/jsx-runtime";
3
+ import * as s from "react";
4
+ import "class-variance-authority";
5
+ import { ToggleGroup as d } from "radix-ui";
6
+ import { cn as g } from "../../lib/utils.js";
7
+ import { toggleVariants as l } from "./toggle.js";
8
+ const p = s.createContext({
9
+ size: "default",
10
+ variant: "default",
11
+ spacing: 0
12
+ });
13
+ function x({
14
+ className: r,
15
+ variant: e,
16
+ size: o,
17
+ spacing: t = 0,
18
+ children: n,
19
+ ...a
20
+ }) {
21
+ return /* @__PURE__ */ i(
22
+ d.Root,
23
+ {
24
+ "data-slot": "toggle-group",
25
+ "data-variant": e,
26
+ "data-size": o,
27
+ "data-spacing": t,
28
+ style: { "--gap": t },
29
+ className: g(
30
+ "group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs",
31
+ r
32
+ ),
33
+ ...a,
34
+ children: /* @__PURE__ */ i(p.Provider, { value: { variant: e, size: o, spacing: t }, children: n })
35
+ }
36
+ );
37
+ }
38
+ function z({
39
+ className: r,
40
+ children: e,
41
+ variant: o,
42
+ size: t,
43
+ ...n
44
+ }) {
45
+ const a = s.useContext(p);
46
+ return /* @__PURE__ */ i(
47
+ d.Item,
48
+ {
49
+ "data-slot": "toggle-group-item",
50
+ "data-variant": a.variant || o,
51
+ "data-size": a.size || t,
52
+ "data-spacing": a.spacing,
53
+ className: g(
54
+ l({
55
+ variant: a.variant || o,
56
+ size: a.size || t
57
+ }),
58
+ "w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10",
59
+ "data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l",
60
+ r
61
+ ),
62
+ ...n,
63
+ children: e
64
+ }
65
+ );
66
+ }
67
+ export {
68
+ x as ToggleGroup,
69
+ z as ToggleGroupItem
70
+ };
71
+ //# sourceMappingURL=toggle-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-group.js","sources":["../../../src/components/ui/toggle-group.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { type VariantProps } from \"class-variance-authority\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\nimport { toggleVariants } from \"@/components/ui/toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n }) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs\",\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size, spacing }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n \"w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10\",\n \"data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l\",\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n"],"names":["ToggleGroupContext","React","ToggleGroup","className","variant","size","spacing","children","props","jsx","ToggleGroupPrimitive","cn","ToggleGroupItem","context","toggleVariants"],"mappings":";;;;;;;AAOA,MAAMA,IAAqBC,EAAM,cAI/B;AAAA,EACA,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AACX,CAAC;AAED,SAASC,EAAY;AAAA,EACnB,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,UAAAC;AAAA,EACA,GAAGC;AACL,GAGK;AACH,SACE,gBAAAC;AAAA,IAACC,EAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACV,gBAAcN;AAAA,MACd,aAAWC;AAAA,MACX,gBAAcC;AAAA,MACd,OAAO,EAAE,SAASA,EAAA;AAAA,MAClB,WAAWK;AAAA,QACT;AAAA,QACAR;AAAA,MAAA;AAAA,MAED,GAAGK;AAAA,MAEJ,UAAA,gBAAAC,EAACT,EAAmB,UAAnB,EAA4B,OAAO,EAAE,SAAAI,GAAS,MAAAC,GAAM,SAAAC,EAAA,GAClD,UAAAC,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,SAASK,EAAgB;AAAA,EACvB,WAAAT;AAAA,EACA,UAAAI;AAAA,EACA,SAAAH;AAAA,EACA,MAAAC;AAAA,EACA,GAAGG;AACL,GACuC;AACrC,QAAMK,IAAUZ,EAAM,WAAWD,CAAkB;AAEnD,SACE,gBAAAS;AAAA,IAACC,EAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACV,gBAAcG,EAAQ,WAAWT;AAAA,MACjC,aAAWS,EAAQ,QAAQR;AAAA,MAC3B,gBAAcQ,EAAQ;AAAA,MACtB,WAAWF;AAAA,QACTG,EAAe;AAAA,UACb,SAASD,EAAQ,WAAWT;AAAA,UAC5B,MAAMS,EAAQ,QAAQR;AAAA,QAAA,CACvB;AAAA,QACD;AAAA,QACA;AAAA,QACAF;AAAA,MAAA;AAAA,MAED,GAAGK;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -0,0 +1,10 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { Toggle as TogglePrimitive } from 'radix-ui';
3
+ import * as React from "react";
4
+ declare const toggleVariants: (props?: ({
5
+ variant?: "default" | "outline" | null | undefined;
6
+ size?: "default" | "sm" | "lg" | null | undefined;
7
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
+ declare function Toggle({ className, variant, size, ...props }: React.ComponentProps<typeof TogglePrimitive.Root> & VariantProps<typeof toggleVariants>): import("react/jsx-runtime").JSX.Element;
9
+ export { Toggle, toggleVariants };
10
+ //# sourceMappingURL=toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../src/components/ui/toggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAA;AAIpD,QAAA,MAAM,cAAc;;;8EAoBnB,CAAA;AAED,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAO,EACP,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAClD,YAAY,CAAC,OAAO,cAAc,CAAC,2CAQpC;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,46 @@
1
+ "use client";
2
+ import { jsx as n } from "react/jsx-runtime";
3
+ import "react";
4
+ import { cva as o } from "class-variance-authority";
5
+ import { Toggle as a } from "radix-ui";
6
+ import { cn as s } from "../../lib/utils.js";
7
+ const d = o(
8
+ "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
9
+ {
10
+ variants: {
11
+ variant: {
12
+ default: "bg-transparent",
13
+ outline: "border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground"
14
+ },
15
+ size: {
16
+ default: "h-9 min-w-9 px-2",
17
+ sm: "h-8 min-w-8 px-1.5",
18
+ lg: "h-10 min-w-10 px-2.5"
19
+ }
20
+ },
21
+ defaultVariants: {
22
+ variant: "default",
23
+ size: "default"
24
+ }
25
+ }
26
+ );
27
+ function m({
28
+ className: e,
29
+ variant: t,
30
+ size: r,
31
+ ...i
32
+ }) {
33
+ return /* @__PURE__ */ n(
34
+ a.Root,
35
+ {
36
+ "data-slot": "toggle",
37
+ className: s(d({ variant: t, size: r, className: e })),
38
+ ...i
39
+ }
40
+ );
41
+ }
42
+ export {
43
+ m as Toggle,
44
+ d as toggleVariants
45
+ };
46
+ //# sourceMappingURL=toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.js","sources":["../../../src/components/ui/toggle.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Toggle as TogglePrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 min-w-9 px-2\",\n sm: \"h-8 min-w-8 px-1.5\",\n lg: \"h-10 min-w-10 px-2.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Toggle({\n className,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n"],"names":["toggleVariants","cva","Toggle","className","variant","size","props","jsx","TogglePrimitive","cn"],"mappings":";;;;;;AAMA,MAAMA,IAAiBC;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SACE;AAAA,MAAA;AAAA,MAEJ,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,IACN;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;AAEA,SAASC,EAAO;AAAA,EACd,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,GAAGC;AACL,GACuC;AACrC,SACE,gBAAAC;AAAA,IAACC,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAGT,EAAe,EAAE,SAAAI,GAAS,MAAAC,GAAM,WAAAF,EAAA,CAAW,CAAC;AAAA,MACzD,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -0,0 +1,8 @@
1
+ import { Tooltip as TooltipPrimitive } from 'radix-ui';
2
+ import * as React from "react";
3
+ declare function TooltipProvider({ delayDuration, ...props }: React.ComponentProps<typeof TooltipPrimitive.Provider>): import("react/jsx-runtime").JSX.Element;
4
+ declare function Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
5
+ declare function TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
6
+ declare function TooltipContent({ className, sideOffset, children, ...props }: React.ComponentProps<typeof TooltipPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
7
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
8
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/ui/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAItD,iBAAS,eAAe,CAAC,EACvB,aAAiB,EACjB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,2CAQxD;AAED,iBAAS,OAAO,CAAC,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAEpD;AAED,iBAAS,cAAc,CAAC,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAEvD;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,UAAc,EACd,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAiBvD;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA"}
@@ -0,0 +1,58 @@
1
+ "use client";
2
+ import { jsx as i, jsxs as n } from "react/jsx-runtime";
3
+ import "react";
4
+ import { Tooltip as o } from "radix-ui";
5
+ import { cn as d } from "../../lib/utils.js";
6
+ function m({
7
+ delayDuration: t = 0,
8
+ ...r
9
+ }) {
10
+ return /* @__PURE__ */ i(
11
+ o.Provider,
12
+ {
13
+ "data-slot": "tooltip-provider",
14
+ delayDuration: t,
15
+ ...r
16
+ }
17
+ );
18
+ }
19
+ function c({
20
+ ...t
21
+ }) {
22
+ return /* @__PURE__ */ i(o.Root, { "data-slot": "tooltip", ...t });
23
+ }
24
+ function u({
25
+ ...t
26
+ }) {
27
+ return /* @__PURE__ */ i(o.Trigger, { "data-slot": "tooltip-trigger", ...t });
28
+ }
29
+ function g({
30
+ className: t,
31
+ sideOffset: r = 0,
32
+ children: e,
33
+ ...a
34
+ }) {
35
+ return /* @__PURE__ */ i(o.Portal, { children: /* @__PURE__ */ n(
36
+ o.Content,
37
+ {
38
+ "data-slot": "tooltip-content",
39
+ sideOffset: r,
40
+ className: d(
41
+ "bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
42
+ t
43
+ ),
44
+ ...a,
45
+ children: [
46
+ e,
47
+ /* @__PURE__ */ i(o.Arrow, { className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
48
+ ]
49
+ }
50
+ ) });
51
+ }
52
+ export {
53
+ c as Tooltip,
54
+ g as TooltipContent,
55
+ m as TooltipProvider,
56
+ u as TooltipTrigger
57
+ };
58
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sources":["../../../src/components/ui/tooltip.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n )\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"names":["TooltipProvider","delayDuration","props","jsx","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","className","sideOffset","children","jsxs","cn"],"mappings":";;;;;AAKA,SAASA,EAAgB;AAAA,EACvB,eAAAC,IAAgB;AAAA,EAChB,GAAGC;AACL,GAA2D;AACzD,SACE,gBAAAC;AAAA,IAACC,EAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV,eAAAH;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASG,EAAQ;AAAA,EACf,GAAGH;AACL,GAAuD;AACrD,2BAAQE,EAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAGF,GAAO;AAC/D;AAEA,SAASI,EAAe;AAAA,EACtB,GAAGJ;AACL,GAA0D;AACxD,2BAAQE,EAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAGF,GAAO;AAC1E;AAEA,SAASK,EAAe;AAAA,EACtB,WAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,UAAAC;AAAA,EACA,GAAGR;AACL,GAA0D;AACxD,SACE,gBAAAC,EAACC,EAAiB,QAAjB,EACC,UAAA,gBAAAO;AAAA,IAACP,EAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV,YAAAK;AAAA,MACA,WAAWG;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGN;AAAA,MAEH,UAAA;AAAA,QAAAQ;AAAA,QACD,gBAAAP,EAACC,EAAiB,OAAjB,EAAuB,WAAU,qGAAA,CAAqG;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAE3I;AAEJ;"}
@@ -0,0 +1,26 @@
1
+ export declare const FEEDBACK_COLOR_MODES: readonly ["blue", "red", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "indigo", "violet", "purple", "fuchsia", "pink", "rose"];
2
+ export declare const CUSTOM_COLOR_MODE: "custom";
3
+ export declare const MODE_OPTIONS: {
4
+ readonly brand: readonly ["blue", "red", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "indigo", "violet", "purple", "fuchsia", "pink", "rose", "custom"];
5
+ readonly gray: readonly ["gray", "slate", "zinc", "neutral", "stone"];
6
+ readonly radius: readonly ["md", "none", "sm", "lg", "full"];
7
+ readonly font: readonly ["inter", "jakarta", "space-grotesk", "lora", "dynapuff", "arima"];
8
+ readonly density: readonly ["default", "compact"];
9
+ readonly error: readonly ["blue", "red", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "indigo", "violet", "purple", "fuchsia", "pink", "rose", "custom"];
10
+ readonly warning: readonly ["blue", "red", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "indigo", "violet", "purple", "fuchsia", "pink", "rose", "custom"];
11
+ readonly info: readonly ["blue", "red", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "indigo", "violet", "purple", "fuchsia", "pink", "rose", "custom"];
12
+ readonly success: readonly ["blue", "red", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "indigo", "violet", "purple", "fuchsia", "pink", "rose", "custom"];
13
+ readonly "decorative-1": readonly ["blue", "red", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "indigo", "violet", "purple", "fuchsia", "pink", "rose", "custom"];
14
+ readonly "decorative-2": readonly ["blue", "red", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "indigo", "violet", "purple", "fuchsia", "pink", "rose", "custom"];
15
+ readonly "decorative-3": readonly ["blue", "red", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "indigo", "violet", "purple", "fuchsia", "pink", "rose", "custom"];
16
+ readonly "decorative-4": readonly ["blue", "red", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "indigo", "violet", "purple", "fuchsia", "pink", "rose", "custom"];
17
+ readonly style: readonly ["flat", "gradient", "tactile"];
18
+ readonly elevation: readonly ["off", "on"];
19
+ };
20
+ export type ModeName = keyof typeof MODE_OPTIONS;
21
+ export declare const MODE_KEYS: ModeName[];
22
+ export type ModeValue<Name extends ModeName> = (typeof MODE_OPTIONS)[Name][number];
23
+ export declare const CUSTOMIZABLE_MODES: readonly ["brand", "error", "warning", "info", "success", "decorative-1", "decorative-2", "decorative-3", "decorative-4"];
24
+ export type CustomizableMode = (typeof CUSTOMIZABLE_MODES)[number];
25
+ export declare function isCustomizableMode(name: ModeName): name is CustomizableMode;
26
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/design-system/modes/options.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,mKAkBvB,CAAA;AAEV,eAAO,MAAM,iBAAiB,EAAG,QAAiB,CAAA;AAOlD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;CAgBf,CAAA;AAEV,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,YAAY,CAAA;AAEhD,eAAO,MAAM,SAAS,EAAgC,QAAQ,EAAE,CAAA;AAEhE,MAAM,MAAM,SAAS,CAAC,IAAI,SAAS,QAAQ,IAAI,CAAC,OAAO,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;AAElF,eAAO,MAAM,kBAAkB,2HAUrB,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AAElE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,gBAAgB,CAE3E"}
@@ -0,0 +1,61 @@
1
+ "use client";
2
+ const a = [
3
+ "blue",
4
+ "red",
5
+ "orange",
6
+ "amber",
7
+ "yellow",
8
+ "lime",
9
+ "green",
10
+ "emerald",
11
+ "teal",
12
+ "cyan",
13
+ "sky",
14
+ "indigo",
15
+ "violet",
16
+ "purple",
17
+ "fuchsia",
18
+ "pink",
19
+ "rose"
20
+ ], r = "custom", e = [
21
+ ...a,
22
+ r
23
+ ], o = {
24
+ brand: [...e],
25
+ gray: ["gray", "slate", "zinc", "neutral", "stone"],
26
+ radius: ["md", "none", "sm", "lg", "full"],
27
+ font: ["inter", "jakarta", "space-grotesk", "lora", "dynapuff", "arima"],
28
+ density: ["default", "compact"],
29
+ error: [...e],
30
+ warning: [...e],
31
+ info: [...e],
32
+ success: [...e],
33
+ "decorative-1": [...e],
34
+ "decorative-2": [...e],
35
+ "decorative-3": [...e],
36
+ "decorative-4": [...e],
37
+ style: ["flat", "gradient", "tactile"],
38
+ elevation: ["off", "on"]
39
+ }, i = Object.keys(o), n = [
40
+ "brand",
41
+ "error",
42
+ "warning",
43
+ "info",
44
+ "success",
45
+ "decorative-1",
46
+ "decorative-2",
47
+ "decorative-3",
48
+ "decorative-4"
49
+ ];
50
+ function c(t) {
51
+ return n.includes(t);
52
+ }
53
+ export {
54
+ n as CUSTOMIZABLE_MODES,
55
+ r as CUSTOM_COLOR_MODE,
56
+ a as FEEDBACK_COLOR_MODES,
57
+ i as MODE_KEYS,
58
+ o as MODE_OPTIONS,
59
+ c as isCustomizableMode
60
+ };
61
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sources":["../../../src/design-system/modes/options.ts"],"sourcesContent":["export const FEEDBACK_COLOR_MODES = [\n \"blue\",\n \"red\",\n \"orange\",\n \"amber\",\n \"yellow\",\n \"lime\",\n \"green\",\n \"emerald\",\n \"teal\",\n \"cyan\",\n \"sky\",\n \"indigo\",\n \"violet\",\n \"purple\",\n \"fuchsia\",\n \"pink\",\n \"rose\",\n] as const\n\nexport const CUSTOM_COLOR_MODE = \"custom\" as const\n\nconst COLOR_MODES_WITH_CUSTOM = [\n ...FEEDBACK_COLOR_MODES,\n CUSTOM_COLOR_MODE,\n] as const\n\nexport const MODE_OPTIONS = {\n brand: [...COLOR_MODES_WITH_CUSTOM],\n gray: [\"gray\", \"slate\", \"zinc\", \"neutral\", \"stone\"],\n radius: [\"md\", \"none\", \"sm\", \"lg\", \"full\"],\n font: [\"inter\", \"jakarta\", \"space-grotesk\", \"lora\", \"dynapuff\", \"arima\"],\n density: [\"default\", \"compact\"],\n error: [...COLOR_MODES_WITH_CUSTOM],\n warning: [...COLOR_MODES_WITH_CUSTOM],\n info: [...COLOR_MODES_WITH_CUSTOM],\n success: [...COLOR_MODES_WITH_CUSTOM],\n \"decorative-1\": [...COLOR_MODES_WITH_CUSTOM],\n \"decorative-2\": [...COLOR_MODES_WITH_CUSTOM],\n \"decorative-3\": [...COLOR_MODES_WITH_CUSTOM],\n \"decorative-4\": [...COLOR_MODES_WITH_CUSTOM],\n style: [\"flat\", \"gradient\", \"tactile\"],\n elevation: [\"off\", \"on\"],\n} as const\n\nexport type ModeName = keyof typeof MODE_OPTIONS\n\nexport const MODE_KEYS = Object.keys(MODE_OPTIONS) as ModeName[]\n\nexport type ModeValue<Name extends ModeName> = (typeof MODE_OPTIONS)[Name][number]\n\nexport const CUSTOMIZABLE_MODES = [\n \"brand\",\n \"error\",\n \"warning\",\n \"info\",\n \"success\",\n \"decorative-1\",\n \"decorative-2\",\n \"decorative-3\",\n \"decorative-4\",\n] as const\n\nexport type CustomizableMode = (typeof CUSTOMIZABLE_MODES)[number]\n\nexport function isCustomizableMode(name: ModeName): name is CustomizableMode {\n return (CUSTOMIZABLE_MODES as readonly ModeName[]).includes(name)\n}\n"],"names":["FEEDBACK_COLOR_MODES","CUSTOM_COLOR_MODE","COLOR_MODES_WITH_CUSTOM","MODE_OPTIONS","MODE_KEYS","CUSTOMIZABLE_MODES","isCustomizableMode","name"],"mappings":";AAAO,MAAMA,IAAuB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEaC,IAAoB,UAE3BC,IAA0B;AAAA,EAC9B,GAAGF;AAAA,EACHC;AACF,GAEaE,IAAe;AAAA,EAC1B,OAAO,CAAC,GAAGD,CAAuB;AAAA,EAClC,MAAM,CAAC,QAAQ,SAAS,QAAQ,WAAW,OAAO;AAAA,EAClD,QAAQ,CAAC,MAAM,QAAQ,MAAM,MAAM,MAAM;AAAA,EACzC,MAAM,CAAC,SAAS,WAAW,iBAAiB,QAAQ,YAAY,OAAO;AAAA,EACvE,SAAS,CAAC,WAAW,SAAS;AAAA,EAC9B,OAAO,CAAC,GAAGA,CAAuB;AAAA,EAClC,SAAS,CAAC,GAAGA,CAAuB;AAAA,EACpC,MAAM,CAAC,GAAGA,CAAuB;AAAA,EACjC,SAAS,CAAC,GAAGA,CAAuB;AAAA,EACpC,gBAAgB,CAAC,GAAGA,CAAuB;AAAA,EAC3C,gBAAgB,CAAC,GAAGA,CAAuB;AAAA,EAC3C,gBAAgB,CAAC,GAAGA,CAAuB;AAAA,EAC3C,gBAAgB,CAAC,GAAGA,CAAuB;AAAA,EAC3C,OAAO,CAAC,QAAQ,YAAY,SAAS;AAAA,EACrC,WAAW,CAAC,OAAO,IAAI;AACzB,GAIaE,IAAY,OAAO,KAAKD,CAAY,GAIpCE,IAAqB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,SAASC,EAAmBC,GAA0C;AAC3E,SAAQF,EAA2C,SAASE,CAAI;AAClE;"}
@@ -0,0 +1,34 @@
1
+ import { CustomizableMode, ModeName, ModeValue } from './options';
2
+ import { HueShiftMode, ShadeFormulaId } from '../../lib/generate-shades';
3
+ export declare const BASE_MODE_VALUES: {
4
+ readonly brand: "blue";
5
+ readonly gray: "gray";
6
+ readonly radius: "md";
7
+ readonly font: "inter";
8
+ readonly density: "default";
9
+ readonly error: "red";
10
+ readonly warning: "amber";
11
+ readonly info: "blue";
12
+ readonly success: "green";
13
+ readonly "decorative-1": "amber";
14
+ readonly "decorative-2": "teal";
15
+ readonly "decorative-3": "purple";
16
+ readonly "decorative-4": "pink";
17
+ readonly style: "flat";
18
+ readonly elevation: "off";
19
+ };
20
+ export declare const DEFAULT_CUSTOM_COLOR: Record<CustomizableMode, string>;
21
+ export type CustomColorOptions = {
22
+ formula?: ShadeFormulaId;
23
+ hueShift?: HueShiftMode;
24
+ };
25
+ export declare function getMode<Name extends ModeName>(name: Name): ModeValue<Name>;
26
+ export declare function setMode<Name extends ModeName>(name: Name, value: ModeValue<Name>): void;
27
+ export declare function getCustomColor(name: CustomizableMode): string | null;
28
+ export declare function getCustomFormula(name: CustomizableMode): ShadeFormulaId;
29
+ export declare function getCustomHueShift(name: CustomizableMode): HueShiftMode;
30
+ export declare function applyCustomShades(name: CustomizableMode, hex: string, options?: CustomColorOptions): void;
31
+ export declare function clearCustomColor(name: CustomizableMode): void;
32
+ export declare function setCustomColor(name: CustomizableMode, hex: string, options?: CustomColorOptions): void;
33
+ export declare function initModes(): void;
34
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/design-system/modes/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,SAAS,EACf,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAA;AAO9B,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;CAgB+B,CAAA;AAoB5D,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAUjE,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB,CAAA;AA+CD,wBAAgB,OAAO,CAAC,IAAI,SAAS,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAO1E;AAED,wBAAgB,OAAO,CAAC,IAAI,SAAS,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,QAgBhF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAUpE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAQvE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAWtE;AAeD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,kBAAuB,QA4BjC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,QActD;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,gBAAgB,EACtB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,kBAAuB,QAkBjC;AAED,wBAAgB,SAAS,SAoDxB"}
@@ -0,0 +1,195 @@
1
+ "use client";
2
+ import { MODE_KEYS as I, CUSTOMIZABLE_MODES as C } from "./options.js";
3
+ import { DEFAULT_FORMULA as i, generateShadesWith as _, SHADE_STEPS as O, SHADE_FORMULAS as b, HUE_SHIFT_MODES as A } from "../../lib/generate-shades.js";
4
+ const M = "mode:", $ = "custom-color:", p = "custom-formula:", U = "custom-hue-shift:", y = {
5
+ brand: "blue",
6
+ gray: "gray",
7
+ radius: "md",
8
+ font: "inter",
9
+ density: "default",
10
+ error: "red",
11
+ warning: "amber",
12
+ info: "blue",
13
+ success: "green",
14
+ "decorative-1": "amber",
15
+ "decorative-2": "teal",
16
+ "decorative-3": "purple",
17
+ "decorative-4": "pink",
18
+ style: "flat",
19
+ elevation: "off"
20
+ }, v = {
21
+ brand: { default: "blue" },
22
+ gray: { default: "gray" },
23
+ radius: { default: "md" },
24
+ font: { default: "inter" },
25
+ density: { default: "default" },
26
+ error: { default: "red" },
27
+ warning: { default: "amber" },
28
+ info: { default: "blue" },
29
+ success: { default: "green" },
30
+ "decorative-1": { default: "amber" },
31
+ "decorative-2": { default: "teal" },
32
+ "decorative-3": { default: "purple" },
33
+ "decorative-4": { default: "pink" },
34
+ style: { default: "flat", raised: "flat" },
35
+ elevation: { default: "off" }
36
+ }, h = {
37
+ brand: "#3b82f6",
38
+ error: "#ef4444",
39
+ warning: "#f59e0b",
40
+ info: "#3b82f6",
41
+ success: "#22c55e",
42
+ "decorative-1": "#f59e0b",
43
+ "decorative-2": "#14b8a6",
44
+ "decorative-3": "#a855f7",
45
+ "decorative-4": "#ec4899"
46
+ };
47
+ function s() {
48
+ return typeof document < "u";
49
+ }
50
+ function a() {
51
+ return typeof localStorage < "u";
52
+ }
53
+ function n(t) {
54
+ return `${M}${t}`;
55
+ }
56
+ function d(t) {
57
+ return `${$}${t}`;
58
+ }
59
+ function m(t) {
60
+ return `${p}${t}`;
61
+ }
62
+ function S(t) {
63
+ return `${U}${t}`;
64
+ }
65
+ function F(t) {
66
+ return `custom-mode-${t}`;
67
+ }
68
+ function T(t) {
69
+ return t !== null && t in b;
70
+ }
71
+ function R(t) {
72
+ return t !== null && A.includes(t);
73
+ }
74
+ function E(t, e) {
75
+ return e ? v[t][e] ?? e : y[t];
76
+ }
77
+ function w(t) {
78
+ if (!s())
79
+ return y[t];
80
+ const e = document.documentElement.getAttribute(`data-${t}`);
81
+ return E(t, e);
82
+ }
83
+ function X(t, e) {
84
+ if (s() && (document.documentElement.setAttribute(`data-${t}`, e), !!a()))
85
+ try {
86
+ localStorage.setItem(n(t), e);
87
+ } catch {
88
+ }
89
+ }
90
+ function L(t) {
91
+ if (!a())
92
+ return null;
93
+ try {
94
+ return localStorage.getItem(d(t));
95
+ } catch {
96
+ return null;
97
+ }
98
+ }
99
+ function D(t) {
100
+ if (!a()) return i;
101
+ try {
102
+ const e = localStorage.getItem(m(t));
103
+ return T(e) ? e : i;
104
+ } catch {
105
+ return i;
106
+ }
107
+ }
108
+ function H(t) {
109
+ if (!a()) return "off";
110
+ try {
111
+ const e = localStorage.getItem(S(t));
112
+ return R(e) ? e : e === "1" ? "warm-to-cool" : "off";
113
+ } catch {
114
+ return "off";
115
+ }
116
+ }
117
+ function K(t, e, o, r) {
118
+ const u = _(e, o, { hueShift: r }), l = O.map(
119
+ (f) => ` --${t}-${f}: ${u[f]};`
120
+ ).join(`
121
+ `);
122
+ return `:root[data-${t}="custom"] {
123
+ ${l}
124
+ }
125
+ `;
126
+ }
127
+ function g(t, e, o = {}) {
128
+ if (!s())
129
+ return;
130
+ const r = o.formula ?? i, u = o.hueShift ?? "off";
131
+ let l;
132
+ try {
133
+ l = K(t, e, r, u);
134
+ } catch {
135
+ return;
136
+ }
137
+ const f = F(t);
138
+ let c = document.getElementById(f);
139
+ c || (c = document.createElement("style"), c.id = f, document.head.appendChild(c)), c.textContent !== l && (c.textContent = l);
140
+ }
141
+ function k(t) {
142
+ if (g(t, h[t]), !!a())
143
+ try {
144
+ localStorage.removeItem(d(t)), localStorage.removeItem(m(t)), localStorage.removeItem(S(t));
145
+ } catch {
146
+ }
147
+ }
148
+ function x(t, e, o = {}) {
149
+ const r = o.formula ?? i, u = o.hueShift ?? "off";
150
+ if (g(t, e, { formula: r, hueShift: u }), !!a())
151
+ try {
152
+ localStorage.setItem(d(t), e), localStorage.setItem(m(t), r), localStorage.setItem(S(t), u);
153
+ } catch {
154
+ }
155
+ }
156
+ function B() {
157
+ if (!(!s() || !a())) {
158
+ try {
159
+ localStorage.getItem(n("style")) === "raised" && (localStorage.setItem(n("style"), "flat"), localStorage.setItem(n("elevation"), "on"));
160
+ } catch {
161
+ }
162
+ try {
163
+ const t = localStorage.getItem("mode:spacing");
164
+ t !== null && localStorage.getItem(n("density")) === null && localStorage.setItem(n("density"), t), t !== null && localStorage.removeItem("mode:spacing");
165
+ } catch {
166
+ }
167
+ for (const t of I)
168
+ try {
169
+ const e = n(t), o = localStorage.getItem(e), r = E(t, o);
170
+ document.documentElement.setAttribute(`data-${t}`, r), o !== r && localStorage.setItem(e, r);
171
+ } catch {
172
+ }
173
+ for (const t of C) {
174
+ const e = L(t) ?? h[t];
175
+ g(t, e, {
176
+ formula: D(t),
177
+ hueShift: H(t)
178
+ });
179
+ }
180
+ }
181
+ }
182
+ export {
183
+ y as BASE_MODE_VALUES,
184
+ h as DEFAULT_CUSTOM_COLOR,
185
+ g as applyCustomShades,
186
+ k as clearCustomColor,
187
+ L as getCustomColor,
188
+ D as getCustomFormula,
189
+ H as getCustomHueShift,
190
+ w as getMode,
191
+ B as initModes,
192
+ x as setCustomColor,
193
+ X as setMode
194
+ };
195
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sources":["../../../src/design-system/modes/runtime.ts"],"sourcesContent":["import {\n CUSTOMIZABLE_MODES,\n MODE_KEYS,\n type CustomizableMode,\n type ModeName,\n type ModeValue,\n} from \"@/design-system/modes/options\"\nimport {\n DEFAULT_FORMULA,\n generateShadesWith,\n HUE_SHIFT_MODES,\n SHADE_FORMULAS,\n SHADE_STEPS,\n type HueShiftMode,\n type ShadeFormulaId,\n} from \"@/lib/generate-shades\"\n\nconst STORAGE_PREFIX = \"mode:\"\nconst CUSTOM_COLOR_STORAGE_PREFIX = \"custom-color:\"\nconst CUSTOM_FORMULA_STORAGE_PREFIX = \"custom-formula:\"\nconst CUSTOM_HUE_SHIFT_STORAGE_PREFIX = \"custom-hue-shift:\"\n\nexport const BASE_MODE_VALUES = {\n brand: \"blue\",\n gray: \"gray\",\n radius: \"md\",\n font: \"inter\",\n density: \"default\",\n error: \"red\",\n warning: \"amber\",\n info: \"blue\",\n success: \"green\",\n \"decorative-1\": \"amber\",\n \"decorative-2\": \"teal\",\n \"decorative-3\": \"purple\",\n \"decorative-4\": \"pink\",\n style: \"flat\",\n elevation: \"off\",\n} as const satisfies { [Name in ModeName]: ModeValue<Name> }\n\nconst LEGACY_MODE_ALIASES = {\n brand: { default: \"blue\" },\n gray: { default: \"gray\" },\n radius: { default: \"md\" },\n font: { default: \"inter\" },\n density: { default: \"default\" },\n error: { default: \"red\" },\n warning: { default: \"amber\" },\n info: { default: \"blue\" },\n success: { default: \"green\" },\n \"decorative-1\": { default: \"amber\" },\n \"decorative-2\": { default: \"teal\" },\n \"decorative-3\": { default: \"purple\" },\n \"decorative-4\": { default: \"pink\" },\n style: { default: \"flat\", raised: \"flat\" },\n elevation: { default: \"off\" },\n} as const\n\nexport const DEFAULT_CUSTOM_COLOR: Record<CustomizableMode, string> = {\n brand: \"#3b82f6\",\n error: \"#ef4444\",\n warning: \"#f59e0b\",\n info: \"#3b82f6\",\n success: \"#22c55e\",\n \"decorative-1\": \"#f59e0b\",\n \"decorative-2\": \"#14b8a6\",\n \"decorative-3\": \"#a855f7\",\n \"decorative-4\": \"#ec4899\",\n}\n\nexport type CustomColorOptions = {\n formula?: ShadeFormulaId\n hueShift?: HueShiftMode\n}\n\nfunction canUseDOM() {\n return typeof document !== \"undefined\"\n}\n\nfunction canUseStorage() {\n return typeof localStorage !== \"undefined\"\n}\n\nfunction getStorageKey(name: ModeName) {\n return `${STORAGE_PREFIX}${name}`\n}\n\nfunction getCustomColorStorageKey(name: CustomizableMode) {\n return `${CUSTOM_COLOR_STORAGE_PREFIX}${name}`\n}\n\nfunction getCustomFormulaStorageKey(name: CustomizableMode) {\n return `${CUSTOM_FORMULA_STORAGE_PREFIX}${name}`\n}\n\nfunction getCustomHueShiftStorageKey(name: CustomizableMode) {\n return `${CUSTOM_HUE_SHIFT_STORAGE_PREFIX}${name}`\n}\n\nfunction getCustomStyleElementId(name: CustomizableMode) {\n return `custom-mode-${name}`\n}\n\nfunction isShadeFormulaId(value: string | null): value is ShadeFormulaId {\n return value !== null && value in SHADE_FORMULAS\n}\n\nfunction isHueShiftMode(value: string | null): value is HueShiftMode {\n return value !== null && (HUE_SHIFT_MODES as readonly string[]).includes(value)\n}\n\nfunction normalizeModeValue<Name extends ModeName>(name: Name, value: string | null) {\n if (!value) {\n return BASE_MODE_VALUES[name]\n }\n\n const alias = LEGACY_MODE_ALIASES[name][value as \"default\"]\n return (alias ?? value) as ModeValue<Name>\n}\n\nexport function getMode<Name extends ModeName>(name: Name): ModeValue<Name> {\n if (!canUseDOM()) {\n return BASE_MODE_VALUES[name]\n }\n\n const current = document.documentElement.getAttribute(`data-${name}`)\n return normalizeModeValue(name, current)\n}\n\nexport function setMode<Name extends ModeName>(name: Name, value: ModeValue<Name>) {\n if (!canUseDOM()) {\n return\n }\n\n document.documentElement.setAttribute(`data-${name}`, value)\n\n if (!canUseStorage()) {\n return\n }\n\n try {\n localStorage.setItem(getStorageKey(name), value)\n } catch {\n // Storage can fail in restricted browser contexts.\n }\n}\n\nexport function getCustomColor(name: CustomizableMode): string | null {\n if (!canUseStorage()) {\n return null\n }\n\n try {\n return localStorage.getItem(getCustomColorStorageKey(name))\n } catch {\n return null\n }\n}\n\nexport function getCustomFormula(name: CustomizableMode): ShadeFormulaId {\n if (!canUseStorage()) return DEFAULT_FORMULA\n try {\n const stored = localStorage.getItem(getCustomFormulaStorageKey(name))\n return isShadeFormulaId(stored) ? stored : DEFAULT_FORMULA\n } catch {\n return DEFAULT_FORMULA\n }\n}\n\nexport function getCustomHueShift(name: CustomizableMode): HueShiftMode {\n if (!canUseStorage()) return \"off\"\n try {\n const stored = localStorage.getItem(getCustomHueShiftStorageKey(name))\n if (isHueShiftMode(stored)) return stored\n // Legacy: boolean-ish \"1\"/\"0\" → map to warm-to-cool / off.\n if (stored === \"1\") return \"warm-to-cool\"\n return \"off\"\n } catch {\n return \"off\"\n }\n}\n\nfunction buildCustomShadesCss(\n name: CustomizableMode,\n hex: string,\n formula: ShadeFormulaId,\n hueShift: HueShiftMode\n): string {\n const shades = generateShadesWith(hex, formula, { hueShift })\n const declarations = SHADE_STEPS.map(\n (step) => ` --${name}-${step}: ${shades[step]};`\n ).join(\"\\n\")\n return `:root[data-${name}=\"custom\"] {\\n${declarations}\\n}\\n`\n}\n\nexport function applyCustomShades(\n name: CustomizableMode,\n hex: string,\n options: CustomColorOptions = {}\n) {\n if (!canUseDOM()) {\n return\n }\n\n const formula = options.formula ?? DEFAULT_FORMULA\n const hueShift = options.hueShift ?? \"off\"\n\n let css: string\n try {\n css = buildCustomShadesCss(name, hex, formula, hueShift)\n } catch {\n return\n }\n\n const id = getCustomStyleElementId(name)\n let element = document.getElementById(id) as HTMLStyleElement | null\n\n if (!element) {\n element = document.createElement(\"style\")\n element.id = id\n document.head.appendChild(element)\n }\n\n if (element.textContent !== css) {\n element.textContent = css\n }\n}\n\nexport function clearCustomColor(name: CustomizableMode) {\n applyCustomShades(name, DEFAULT_CUSTOM_COLOR[name])\n\n if (!canUseStorage()) {\n return\n }\n\n try {\n localStorage.removeItem(getCustomColorStorageKey(name))\n localStorage.removeItem(getCustomFormulaStorageKey(name))\n localStorage.removeItem(getCustomHueShiftStorageKey(name))\n } catch {\n // Storage can fail in restricted browser contexts.\n }\n}\n\nexport function setCustomColor(\n name: CustomizableMode,\n hex: string,\n options: CustomColorOptions = {}\n) {\n const formula = options.formula ?? DEFAULT_FORMULA\n const hueShift = options.hueShift ?? \"off\"\n\n applyCustomShades(name, hex, { formula, hueShift })\n\n if (!canUseStorage()) {\n return\n }\n\n try {\n localStorage.setItem(getCustomColorStorageKey(name), hex)\n localStorage.setItem(getCustomFormulaStorageKey(name), formula)\n localStorage.setItem(getCustomHueShiftStorageKey(name), hueShift)\n } catch {\n // Storage can fail in restricted browser contexts.\n }\n}\n\nexport function initModes() {\n if (!canUseDOM() || !canUseStorage()) {\n return\n }\n\n // Migrate the retired `style: \"raised\"` value → `style: \"flat\"` + `elevation: \"on\"`\n // (elevation became an independent dimension).\n try {\n if (localStorage.getItem(getStorageKey(\"style\")) === \"raised\") {\n localStorage.setItem(getStorageKey(\"style\"), \"flat\")\n localStorage.setItem(getStorageKey(\"elevation\"), \"on\")\n }\n } catch {\n // Storage can fail in restricted browser contexts.\n }\n\n // Migrate the renamed `spacing` mode → `density`.\n try {\n const legacy = localStorage.getItem(\"mode:spacing\")\n if (legacy !== null && localStorage.getItem(getStorageKey(\"density\")) === null) {\n localStorage.setItem(getStorageKey(\"density\"), legacy)\n }\n if (legacy !== null) {\n localStorage.removeItem(\"mode:spacing\")\n }\n } catch {\n // Storage can fail in restricted browser contexts.\n }\n\n for (const key of MODE_KEYS) {\n try {\n const storageKey = getStorageKey(key)\n const stored = localStorage.getItem(storageKey)\n const normalized = normalizeModeValue(key, stored)\n\n document.documentElement.setAttribute(`data-${key}`, normalized)\n\n if (stored !== normalized) {\n localStorage.setItem(storageKey, normalized)\n }\n } catch {\n // Storage can fail in restricted browser contexts.\n }\n }\n\n for (const mode of CUSTOMIZABLE_MODES) {\n const hex = getCustomColor(mode) ?? DEFAULT_CUSTOM_COLOR[mode]\n applyCustomShades(mode, hex, {\n formula: getCustomFormula(mode),\n hueShift: getCustomHueShift(mode),\n })\n }\n}\n"],"names":["STORAGE_PREFIX","CUSTOM_COLOR_STORAGE_PREFIX","CUSTOM_FORMULA_STORAGE_PREFIX","CUSTOM_HUE_SHIFT_STORAGE_PREFIX","BASE_MODE_VALUES","LEGACY_MODE_ALIASES","DEFAULT_CUSTOM_COLOR","canUseDOM","canUseStorage","getStorageKey","name","getCustomColorStorageKey","getCustomFormulaStorageKey","getCustomHueShiftStorageKey","getCustomStyleElementId","isShadeFormulaId","value","SHADE_FORMULAS","isHueShiftMode","HUE_SHIFT_MODES","normalizeModeValue","getMode","current","setMode","getCustomColor","getCustomFormula","DEFAULT_FORMULA","stored","getCustomHueShift","buildCustomShadesCss","hex","formula","hueShift","shades","generateShadesWith","declarations","SHADE_STEPS","step","applyCustomShades","options","css","id","element","clearCustomColor","setCustomColor","initModes","legacy","key","MODE_KEYS","storageKey","normalized","mode","CUSTOMIZABLE_MODES"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function useIsMobile(): boolean;
2
+ //# sourceMappingURL=use-mobile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mobile.d.ts","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,YAc1B"}
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import * as o from "react";
3
+ const e = 768;
4
+ function r() {
5
+ const [s, n] = o.useState(void 0);
6
+ return o.useEffect(() => {
7
+ const t = window.matchMedia(`(max-width: ${e - 1}px)`), i = () => {
8
+ n(window.innerWidth < e);
9
+ };
10
+ return t.addEventListener("change", i), n(window.innerWidth < e), () => t.removeEventListener("change", i);
11
+ }, []), !!s;
12
+ }
13
+ export {
14
+ r as useIsMobile
15
+ };
16
+ //# sourceMappingURL=use-mobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mobile.js","sources":["../../src/hooks/use-mobile.ts"],"sourcesContent":["import * as React from \"react\"\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener(\"change\", onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n return !!isMobile\n}\n"],"names":["MOBILE_BREAKPOINT","useIsMobile","isMobile","setIsMobile","React","mql","onChange"],"mappings":";;AAEA,MAAMA,IAAoB;AAEnB,SAASC,IAAc;AAC5B,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAM,SAA8B,MAAS;AAE7E,SAAAA,EAAM,UAAU,MAAM;AACpB,UAAMC,IAAM,OAAO,WAAW,eAAeL,IAAoB,CAAC,KAAK,GACjEM,IAAW,MAAM;AACrB,MAAAH,EAAY,OAAO,aAAaH,CAAiB;AAAA,IACnD;AACA,WAAAK,EAAI,iBAAiB,UAAUC,CAAQ,GACvCH,EAAY,OAAO,aAAaH,CAAiB,GAC1C,MAAMK,EAAI,oBAAoB,UAAUC,CAAQ;AAAA,EACzD,GAAG,CAAA,CAAE,GAEE,CAAC,CAACJ;AACX;"}