@gv-tech/design-system 2.22.2 → 2.23.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 (378) hide show
  1. package/README.md +16 -0
  2. package/dist/accordion.cjs +1 -1
  3. package/dist/accordion.cjs.map +1 -1
  4. package/dist/accordion.mjs +50 -30
  5. package/dist/accordion.mjs.map +1 -1
  6. package/dist/alert-dialog.cjs +1 -1
  7. package/dist/alert-dialog.cjs.map +1 -1
  8. package/dist/alert-dialog.mjs +98 -52
  9. package/dist/alert-dialog.mjs.map +1 -1
  10. package/dist/alert.cjs +1 -1
  11. package/dist/alert.cjs.map +1 -1
  12. package/dist/alert.mjs +37 -29
  13. package/dist/alert.mjs.map +1 -1
  14. package/dist/aspect-ratio.cjs +1 -1
  15. package/dist/aspect-ratio.cjs.map +1 -1
  16. package/dist/aspect-ratio.mjs +9 -3
  17. package/dist/aspect-ratio.mjs.map +1 -1
  18. package/dist/avatar.cjs +1 -1
  19. package/dist/avatar.cjs.map +1 -1
  20. package/dist/avatar.mjs +48 -23
  21. package/dist/avatar.mjs.map +1 -1
  22. package/dist/badge.cjs +1 -1
  23. package/dist/badge.cjs.map +1 -1
  24. package/dist/badge.mjs +16 -13
  25. package/dist/badge.mjs.map +1 -1
  26. package/dist/breadcrumb.cjs +1 -1
  27. package/dist/breadcrumb.cjs.map +1 -1
  28. package/dist/breadcrumb.mjs +67 -57
  29. package/dist/breadcrumb.mjs.map +1 -1
  30. package/dist/button-group.cjs +2 -0
  31. package/dist/button-group.cjs.map +1 -0
  32. package/dist/button-group.d.ts +2 -0
  33. package/dist/button-group.mjs +39 -0
  34. package/dist/button-group.mjs.map +1 -0
  35. package/dist/button.cjs +1 -1
  36. package/dist/button.cjs.map +1 -1
  37. package/dist/button.mjs +32 -25
  38. package/dist/button.mjs.map +1 -1
  39. package/dist/calendar.cjs +1 -1
  40. package/dist/calendar.cjs.map +1 -1
  41. package/dist/calendar.mjs +54 -51
  42. package/dist/calendar.mjs.map +1 -1
  43. package/dist/card.cjs +1 -1
  44. package/dist/card.cjs.map +1 -1
  45. package/dist/card.mjs +55 -41
  46. package/dist/card.mjs.map +1 -1
  47. package/dist/carousel.cjs +1 -1
  48. package/dist/carousel.cjs.map +1 -1
  49. package/dist/carousel.mjs +58 -64
  50. package/dist/carousel.mjs.map +1 -1
  51. package/dist/chart.cjs +3 -3
  52. package/dist/chart.cjs.map +1 -1
  53. package/dist/chart.mjs +59 -66
  54. package/dist/chart.mjs.map +1 -1
  55. package/dist/checkbox.cjs +1 -1
  56. package/dist/checkbox.cjs.map +1 -1
  57. package/dist/checkbox.mjs +17 -15
  58. package/dist/checkbox.mjs.map +1 -1
  59. package/dist/collapsible.cjs +1 -1
  60. package/dist/collapsible.cjs.map +1 -1
  61. package/dist/collapsible.mjs +21 -3
  62. package/dist/collapsible.mjs.map +1 -1
  63. package/dist/combobox.cjs +2 -0
  64. package/dist/combobox.cjs.map +1 -0
  65. package/dist/combobox.d.ts +2 -0
  66. package/dist/combobox.mjs +164 -0
  67. package/dist/combobox.mjs.map +1 -0
  68. package/dist/command.cjs +1 -1
  69. package/dist/command.cjs.map +1 -1
  70. package/dist/command.mjs +86 -75
  71. package/dist/command.mjs.map +1 -1
  72. package/dist/context-menu.cjs +1 -1
  73. package/dist/context-menu.cjs.map +1 -1
  74. package/dist/context-menu.mjs +121 -68
  75. package/dist/context-menu.mjs.map +1 -1
  76. package/dist/design-system.css +1 -1
  77. package/dist/dialog.cjs +1 -1
  78. package/dist/dialog.cjs.map +1 -1
  79. package/dist/dialog.mjs +90 -43
  80. package/dist/dialog.mjs.map +1 -1
  81. package/dist/direction.cjs +2 -0
  82. package/dist/direction.cjs.map +1 -0
  83. package/dist/direction.d.ts +2 -0
  84. package/dist/direction.mjs +17 -0
  85. package/dist/direction.mjs.map +1 -0
  86. package/dist/drawer.cjs +1 -1
  87. package/dist/drawer.cjs.map +1 -1
  88. package/dist/drawer.mjs +75 -45
  89. package/dist/drawer.mjs.map +1 -1
  90. package/dist/dropdown-menu.cjs +1 -1
  91. package/dist/dropdown-menu.cjs.map +1 -1
  92. package/dist/dropdown-menu.mjs +124 -68
  93. package/dist/dropdown-menu.mjs.map +1 -1
  94. package/dist/empty.cjs +2 -0
  95. package/dist/empty.cjs.map +1 -0
  96. package/dist/empty.d.ts +2 -0
  97. package/dist/empty.mjs +62 -0
  98. package/dist/empty.mjs.map +1 -0
  99. package/dist/field.cjs +2 -0
  100. package/dist/field.cjs.map +1 -0
  101. package/dist/field.d.ts +2 -0
  102. package/dist/field.mjs +111 -0
  103. package/dist/field.mjs.map +1 -0
  104. package/dist/form.cjs +1 -1
  105. package/dist/form.cjs.map +1 -1
  106. package/dist/form.mjs +14 -14
  107. package/dist/hover-card.cjs +1 -1
  108. package/dist/hover-card.cjs.map +1 -1
  109. package/dist/hover-card.mjs +28 -12
  110. package/dist/hover-card.mjs.map +1 -1
  111. package/dist/index.cjs +1 -1
  112. package/dist/index.mjs +52 -41
  113. package/dist/input-group.cjs +2 -0
  114. package/dist/input-group.cjs.map +1 -0
  115. package/dist/input-group.d.ts +2 -0
  116. package/dist/input-group.mjs +80 -0
  117. package/dist/input-group.mjs.map +1 -0
  118. package/dist/input-otp.cjs +2 -0
  119. package/dist/input-otp.cjs.map +1 -0
  120. package/dist/input-otp.d.ts +2 -0
  121. package/dist/input-otp.mjs +49 -0
  122. package/dist/input-otp.mjs.map +1 -0
  123. package/dist/input.cjs +1 -1
  124. package/dist/input.cjs.map +1 -1
  125. package/dist/input.mjs +13 -12
  126. package/dist/input.mjs.map +1 -1
  127. package/dist/item.cjs +2 -0
  128. package/dist/item.cjs.map +1 -0
  129. package/dist/item.d.ts +2 -0
  130. package/dist/item.mjs +119 -0
  131. package/dist/item.mjs.map +1 -0
  132. package/dist/kbd.cjs +2 -0
  133. package/dist/kbd.cjs.map +1 -0
  134. package/dist/kbd.d.ts +2 -0
  135. package/dist/kbd.mjs +23 -0
  136. package/dist/kbd.mjs.map +1 -0
  137. package/dist/label.cjs +1 -1
  138. package/dist/label.cjs.map +1 -1
  139. package/dist/label.mjs +12 -11
  140. package/dist/label.mjs.map +1 -1
  141. package/dist/menubar.cjs +1 -1
  142. package/dist/menubar.cjs.map +1 -1
  143. package/dist/menubar.mjs +120 -90
  144. package/dist/menubar.mjs.map +1 -1
  145. package/dist/native-select.cjs +2 -0
  146. package/dist/native-select.cjs.map +1 -0
  147. package/dist/native-select.d.ts +2 -0
  148. package/dist/native-select.mjs +41 -0
  149. package/dist/native-select.mjs.map +1 -0
  150. package/dist/navigation-menu.cjs +1 -1
  151. package/dist/navigation-menu.cjs.map +1 -1
  152. package/dist/navigation-menu.mjs +74 -52
  153. package/dist/navigation-menu.mjs.map +1 -1
  154. package/dist/packages/design-tokens/src/index.d.ts +16 -0
  155. package/dist/packages/design-tokens/src/theme.d.ts +16 -0
  156. package/dist/packages/ui-core/src/contracts/alert.d.ts +3 -1
  157. package/dist/packages/ui-core/src/contracts/badge.d.ts +3 -1
  158. package/dist/packages/ui-core/src/contracts/button-group.d.ts +17 -0
  159. package/dist/packages/ui-core/src/contracts/checkbox.d.ts +2 -2
  160. package/dist/packages/ui-core/src/contracts/combobox.d.ts +65 -0
  161. package/dist/packages/ui-core/src/contracts/direction.d.ts +7 -0
  162. package/dist/packages/ui-core/src/contracts/empty.d.ts +12 -0
  163. package/dist/packages/ui-core/src/contracts/field.d.ts +47 -0
  164. package/dist/packages/ui-core/src/contracts/input-group.d.ts +29 -0
  165. package/dist/packages/ui-core/src/contracts/input-otp.d.ts +16 -0
  166. package/dist/packages/ui-core/src/contracts/item.d.ts +47 -0
  167. package/dist/packages/ui-core/src/contracts/kbd.d.ts +9 -0
  168. package/dist/packages/ui-core/src/contracts/native-select.d.ts +15 -0
  169. package/dist/packages/ui-core/src/contracts/resizable.d.ts +1 -1
  170. package/dist/packages/ui-core/src/contracts/search.d.ts +1 -0
  171. package/dist/packages/ui-core/src/contracts/sidebar.d.ts +107 -0
  172. package/dist/packages/ui-core/src/contracts/sonner.d.ts +1 -9
  173. package/dist/packages/ui-core/src/contracts/spinner.d.ts +3 -0
  174. package/dist/packages/ui-core/src/contracts/switch.d.ts +1 -1
  175. package/dist/packages/ui-core/src/contracts/textarea.d.ts +2 -2
  176. package/dist/packages/ui-core/src/contracts/toast.d.ts +1 -1
  177. package/dist/packages/ui-core/src/contracts/toggle-group.d.ts +1 -1
  178. package/dist/packages/ui-core/src/contracts/toggle.d.ts +2 -2
  179. package/dist/packages/ui-core/src/index.d.ts +14 -0
  180. package/dist/packages/ui-web/src/accordion.d.ts +5 -7
  181. package/dist/packages/ui-web/src/alert-dialog.d.ts +17 -21
  182. package/dist/packages/ui-web/src/alert.d.ts +8 -8
  183. package/dist/packages/ui-web/src/aspect-ratio.d.ts +2 -5
  184. package/dist/packages/ui-web/src/avatar.d.ts +10 -7
  185. package/dist/packages/ui-web/src/badge.d.ts +4 -5
  186. package/dist/packages/ui-web/src/breadcrumb.d.ts +9 -17
  187. package/dist/packages/ui-web/src/button-group.d.ts +11 -0
  188. package/dist/packages/ui-web/src/button.d.ts +4 -6
  189. package/dist/packages/ui-web/src/calendar.d.ts +5 -5
  190. package/dist/packages/ui-web/src/card.d.ts +10 -10
  191. package/dist/packages/ui-web/src/carousel.d.ts +18 -14
  192. package/dist/packages/ui-web/src/chart.d.ts +35 -7
  193. package/dist/packages/ui-web/src/checkbox.d.ts +2 -5
  194. package/dist/packages/ui-web/src/collapsible.d.ts +4 -7
  195. package/dist/packages/ui-web/src/combobox.d.ts +20 -0
  196. package/dist/packages/ui-web/src/command.d.ts +16 -80
  197. package/dist/packages/ui-web/src/context-menu.d.ts +29 -21
  198. package/dist/packages/ui-web/src/dialog.d.ts +15 -17
  199. package/dist/packages/ui-web/src/direction.d.ts +6 -0
  200. package/dist/packages/ui-web/src/drawer.d.ts +11 -23
  201. package/dist/packages/ui-web/src/dropdown-menu.d.ts +27 -21
  202. package/dist/packages/ui-web/src/empty.d.ts +13 -0
  203. package/dist/packages/ui-web/src/field.d.ts +18 -0
  204. package/dist/packages/ui-web/src/hooks/use-mobile.d.ts +1 -0
  205. package/dist/packages/ui-web/src/hooks/use-theme.d.ts +16 -0
  206. package/dist/packages/ui-web/src/hover-card.d.ts +4 -6
  207. package/dist/packages/ui-web/src/index.d.ts +14 -43
  208. package/dist/packages/ui-web/src/input-group.d.ts +18 -0
  209. package/dist/packages/ui-web/src/input-otp.d.ts +8 -0
  210. package/dist/packages/ui-web/src/input.d.ts +1 -4
  211. package/dist/packages/ui-web/src/item.d.ts +25 -0
  212. package/dist/packages/ui-web/src/kbd.d.ts +4 -0
  213. package/dist/packages/ui-web/src/label.d.ts +2 -6
  214. package/dist/packages/ui-web/src/menubar.d.ts +25 -19
  215. package/dist/packages/ui-web/src/native-select.d.ts +7 -0
  216. package/dist/packages/ui-web/src/navigation-menu.d.ts +11 -11
  217. package/dist/packages/ui-web/src/pagination.d.ts +13 -26
  218. package/dist/packages/ui-web/src/popover.d.ts +9 -8
  219. package/dist/packages/ui-web/src/progress.d.ts +2 -4
  220. package/dist/packages/ui-web/src/radio-group.d.ts +3 -8
  221. package/dist/packages/ui-web/src/resizable.d.ts +6 -7
  222. package/dist/packages/ui-web/src/scroll-area.d.ts +3 -5
  223. package/dist/packages/ui-web/src/search.d.ts +1 -1
  224. package/dist/packages/ui-web/src/select.d.ts +13 -13
  225. package/dist/packages/ui-web/src/separator.d.ts +2 -4
  226. package/dist/packages/ui-web/src/sheet.d.ts +13 -27
  227. package/dist/packages/ui-web/src/sidebar.d.ts +45 -0
  228. package/dist/packages/ui-web/src/skeleton.d.ts +1 -4
  229. package/dist/packages/ui-web/src/slider.d.ts +2 -4
  230. package/dist/packages/ui-web/src/sonner.d.ts +1 -5
  231. package/dist/packages/ui-web/src/spinner.d.ts +3 -0
  232. package/dist/packages/ui-web/src/switch.d.ts +4 -4
  233. package/dist/packages/ui-web/src/table.d.ts +8 -10
  234. package/dist/packages/ui-web/src/tabs.d.ts +11 -8
  235. package/dist/packages/ui-web/src/textarea.d.ts +1 -4
  236. package/dist/packages/ui-web/src/toggle-group.d.ts +7 -10
  237. package/dist/packages/ui-web/src/toggle.d.ts +7 -5
  238. package/dist/packages/ui-web/src/tooltip.d.ts +5 -10
  239. package/dist/pagination.cjs +1 -1
  240. package/dist/pagination.cjs.map +1 -1
  241. package/dist/pagination.mjs +77 -59
  242. package/dist/pagination.mjs.map +1 -1
  243. package/dist/popover.cjs +1 -1
  244. package/dist/popover.cjs.map +1 -1
  245. package/dist/popover.mjs +53 -13
  246. package/dist/popover.mjs.map +1 -1
  247. package/dist/progress.cjs +1 -1
  248. package/dist/progress.cjs.map +1 -1
  249. package/dist/progress.mjs +18 -15
  250. package/dist/progress.mjs.map +1 -1
  251. package/dist/radio-group.cjs +1 -1
  252. package/dist/radio-group.cjs.map +1 -1
  253. package/dist/radio-group.mjs +24 -21
  254. package/dist/radio-group.mjs.map +1 -1
  255. package/dist/resizable.cjs +1 -1
  256. package/dist/resizable.cjs.map +1 -1
  257. package/dist/resizable.mjs +25 -16
  258. package/dist/resizable.mjs.map +1 -1
  259. package/dist/scroll-area.cjs +1 -1
  260. package/dist/scroll-area.cjs.map +1 -1
  261. package/dist/scroll-area.mjs +34 -27
  262. package/dist/scroll-area.mjs.map +1 -1
  263. package/dist/scroll-to-top.cjs +1 -1
  264. package/dist/scroll-to-top.mjs +17 -17
  265. package/dist/search.cjs +1 -1
  266. package/dist/search.cjs.map +1 -1
  267. package/dist/search.mjs +18 -17
  268. package/dist/search.mjs.map +1 -1
  269. package/dist/select.cjs +1 -1
  270. package/dist/select.cjs.map +1 -1
  271. package/dist/select.mjs +96 -65
  272. package/dist/select.mjs.map +1 -1
  273. package/dist/separator.cjs +1 -1
  274. package/dist/separator.cjs.map +1 -1
  275. package/dist/separator.mjs +14 -13
  276. package/dist/separator.mjs.map +1 -1
  277. package/dist/sheet.cjs +1 -1
  278. package/dist/sheet.cjs.map +1 -1
  279. package/dist/sheet.mjs +85 -53
  280. package/dist/sheet.mjs.map +1 -1
  281. package/dist/sidebar-BnEmNYS2.mjs +354 -0
  282. package/dist/sidebar-BnEmNYS2.mjs.map +1 -0
  283. package/dist/sidebar-BnuanaZN.js +2 -0
  284. package/dist/sidebar-BnuanaZN.js.map +1 -0
  285. package/dist/sidebar.cjs +1 -0
  286. package/dist/sidebar.d.ts +2 -0
  287. package/dist/sidebar.mjs +3 -0
  288. package/dist/skeleton.cjs +1 -1
  289. package/dist/skeleton.cjs.map +1 -1
  290. package/dist/skeleton.mjs +4 -5
  291. package/dist/skeleton.mjs.map +1 -1
  292. package/dist/slider.cjs +1 -1
  293. package/dist/slider.cjs.map +1 -1
  294. package/dist/slider.mjs +31 -12
  295. package/dist/slider.mjs.map +1 -1
  296. package/dist/sonner.cjs +1 -1
  297. package/dist/sonner.cjs.map +1 -1
  298. package/dist/sonner.mjs +22 -16
  299. package/dist/sonner.mjs.map +1 -1
  300. package/dist/spinner.cjs +2 -0
  301. package/dist/spinner.cjs.map +1 -0
  302. package/dist/spinner.d.ts +2 -0
  303. package/dist/spinner.mjs +17 -0
  304. package/dist/spinner.mjs.map +1 -0
  305. package/dist/support-fab.cjs +1 -1
  306. package/dist/support-fab.cjs.map +1 -1
  307. package/dist/support-fab.mjs +8 -8
  308. package/dist/support-fab.mjs.map +1 -1
  309. package/dist/switch.cjs +1 -1
  310. package/dist/switch.cjs.map +1 -1
  311. package/dist/switch.mjs +17 -11
  312. package/dist/switch.mjs.map +1 -1
  313. package/dist/table-of-contents.cjs +1 -1
  314. package/dist/table-of-contents.mjs +2 -2
  315. package/dist/table.cjs +1 -1
  316. package/dist/table.cjs.map +1 -1
  317. package/dist/table.mjs +65 -56
  318. package/dist/table.mjs.map +1 -1
  319. package/dist/tabs.cjs +1 -1
  320. package/dist/tabs.cjs.map +1 -1
  321. package/dist/tabs.mjs +42 -22
  322. package/dist/tabs.mjs.map +1 -1
  323. package/dist/text.cjs +1 -1
  324. package/dist/text.cjs.map +1 -1
  325. package/dist/text.mjs +3 -3
  326. package/dist/textarea.cjs +1 -1
  327. package/dist/textarea.cjs.map +1 -1
  328. package/dist/textarea.mjs +12 -11
  329. package/dist/textarea.mjs.map +1 -1
  330. package/dist/theme-provider.cjs +1 -1
  331. package/dist/theme-provider.mjs +1 -1
  332. package/dist/theme-toggle-CNDBFa9t.js +2 -0
  333. package/dist/theme-toggle-CNDBFa9t.js.map +1 -0
  334. package/dist/{theme-toggle-B6QS2aTS.mjs → theme-toggle-CgEJLId-.mjs} +26 -10
  335. package/dist/theme-toggle-CgEJLId-.mjs.map +1 -0
  336. package/dist/theme-toggle.cjs +1 -1
  337. package/dist/theme-toggle.mjs +1 -1
  338. package/dist/toast.cjs +1 -1
  339. package/dist/toast.cjs.map +1 -1
  340. package/dist/toast.mjs +19 -19
  341. package/dist/toast.mjs.map +1 -1
  342. package/dist/{toaster-C-1djNvf.js → toaster-C3UZyPzU.js} +2 -2
  343. package/dist/{toaster-C-1djNvf.js.map → toaster-C3UZyPzU.js.map} +1 -1
  344. package/dist/{toaster-CEa33QUH.mjs → toaster-DH0UX0nD.mjs} +2 -2
  345. package/dist/{toaster-CEa33QUH.mjs.map → toaster-DH0UX0nD.mjs.map} +1 -1
  346. package/dist/toaster.cjs +1 -1
  347. package/dist/toaster.mjs +1 -1
  348. package/dist/toggle-group.cjs +1 -1
  349. package/dist/toggle-group.cjs.map +1 -1
  350. package/dist/toggle-group.mjs +41 -28
  351. package/dist/toggle-group.mjs.map +1 -1
  352. package/dist/toggle.cjs +1 -1
  353. package/dist/toggle.cjs.map +1 -1
  354. package/dist/toggle.mjs +32 -16
  355. package/dist/toggle.mjs.map +1 -1
  356. package/dist/tooltip.cjs +1 -1
  357. package/dist/tooltip.cjs.map +1 -1
  358. package/dist/tooltip.mjs +33 -20
  359. package/dist/tooltip.mjs.map +1 -1
  360. package/dist/{utils-DU-Y_pvO.js → utils-D7tt_q-u.js} +2 -2
  361. package/dist/{utils-DU-Y_pvO.js.map → utils-D7tt_q-u.js.map} +1 -1
  362. package/dist/{utils-BsD1_fYL.mjs → utils-IYJAOUsw.mjs} +2 -2
  363. package/dist/{utils-BsD1_fYL.mjs.map → utils-IYJAOUsw.mjs.map} +1 -1
  364. package/dist/{vendor-ChPUVHXi.mjs → vendor-B6CFfDyk.mjs} +29707 -24351
  365. package/dist/vendor-B6CFfDyk.mjs.map +1 -0
  366. package/dist/vendor-UfQavLF9.js +111 -0
  367. package/dist/vendor-UfQavLF9.js.map +1 -0
  368. package/package.json +4 -3
  369. package/dist/src-D3IDWqE2.js +0 -2
  370. package/dist/src-D3IDWqE2.js.map +0 -1
  371. package/dist/src-N08I3kfW.mjs +0 -23
  372. package/dist/src-N08I3kfW.mjs.map +0 -1
  373. package/dist/theme-toggle-B6QS2aTS.mjs.map +0 -1
  374. package/dist/theme-toggle-CbtfA8aG.js +0 -2
  375. package/dist/theme-toggle-CbtfA8aG.js.map +0 -1
  376. package/dist/vendor-3cr8xz0x.js +0 -92
  377. package/dist/vendor-3cr8xz0x.js.map +0 -1
  378. package/dist/vendor-ChPUVHXi.mjs.map +0 -1
package/dist/skeleton.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-3cr8xz0x.js"),n=require("./utils-DU-Y_pvO.js");let r=require("react");r=e.r(r);var i=t.vr();function a({className:e,...t}){return(0,i.jsx)(`div`,{className:n.t(`bg-primary/10 animate-pulse rounded-md`,e),...t})}exports.Skeleton=a;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./vendor-UfQavLF9.js"),t=require("./utils-D7tt_q-u.js");var n=e.Jr();function r({className:e,...r}){return(0,n.jsx)(`div`,{"data-slot":`skeleton`,className:t.t(`bg-muted animate-pulse rounded-md`,e),...r})}exports.Skeleton=r;
2
2
  //# sourceMappingURL=skeleton.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.cjs","names":[],"sources":["../packages/ui-web/src/skeleton.tsx"],"sourcesContent":["'use client';\nimport { SkeletonBaseProps } from '@gv-tech/ui-core';\nimport * as React from 'react';\nimport { cn } from './lib/utils';\n\nfunction Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement> & SkeletonBaseProps) {\n return <div className={cn('bg-primary/10 animate-pulse rounded-md', className)} {...props} />;\n}\n\nexport { Skeleton };\nexport type { SkeletonBaseProps as SkeletonProps };\n"],"mappings":"+PAKA,SAAS,EAAS,CAAE,YAAW,GAAG,GAAmE,CACnG,OAAO,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,EAAG,yCAA0C,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC9F"}
1
+ {"version":3,"file":"skeleton.cjs","names":[],"sources":["../packages/ui-web/src/skeleton.tsx"],"sourcesContent":["import { cn } from './lib/utils';\n\nimport type { SkeletonBaseProps } from '@gv-tech/ui-core';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"skeleton\" className={cn('bg-muted animate-pulse rounded-md', className)} {...props} />;\n}\n\nexport { Skeleton };\n\n// Verify that the component satisfies the ui-core contract\nconst _verifySkeletonContract: SkeletonBaseProps = {} as unknown as React.ComponentProps<typeof Skeleton>;\n"],"mappings":"sKAIA,SAAS,EAAS,CAAE,YAAW,GAAG,GAAsC,CACtE,OAAO,EAAA,EAAA,KAAC,MAAD,CAAK,YAAU,WAAW,UAAW,EAAA,EAAG,oCAAqC,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC9G"}
package/dist/skeleton.mjs CHANGED
@@ -1,13 +1,12 @@
1
1
  "use client";
2
- "use client";
3
- import { vr as e } from "./vendor-ChPUVHXi.mjs";
4
- import { t } from "./utils-BsD1_fYL.mjs";
5
- import "react";
2
+ import { Jr as e } from "./vendor-B6CFfDyk.mjs";
3
+ import { t } from "./utils-IYJAOUsw.mjs";
6
4
  //#region packages/ui-web/src/skeleton.tsx
7
5
  var n = e();
8
6
  function r({ className: e, ...r }) {
9
7
  return /* @__PURE__ */ (0, n.jsx)("div", {
10
- className: t("bg-primary/10 animate-pulse rounded-md", e),
8
+ "data-slot": "skeleton",
9
+ className: t("bg-muted animate-pulse rounded-md", e),
11
10
  ...r
12
11
  });
13
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.mjs","names":[],"sources":["../packages/ui-web/src/skeleton.tsx"],"sourcesContent":["'use client';\nimport { SkeletonBaseProps } from '@gv-tech/ui-core';\nimport * as React from 'react';\nimport { cn } from './lib/utils';\n\nfunction Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement> & SkeletonBaseProps) {\n return <div className={cn('bg-primary/10 animate-pulse rounded-md', className)} {...props} />;\n}\n\nexport { Skeleton };\nexport type { SkeletonBaseProps as SkeletonProps };\n"],"mappings":";;;;;;;AAKA,SAAS,EAAS,EAAE,cAAW,GAAG,KAAmE;CACnG,OAAO,iBAAA,GAAA,EAAA,KAAC,OAAD;EAAK,WAAW,EAAG,0CAA0C,CAAS;EAAG,GAAI;CAAQ,CAAA;AAC9F"}
1
+ {"version":3,"file":"skeleton.mjs","names":[],"sources":["../packages/ui-web/src/skeleton.tsx"],"sourcesContent":["import { cn } from './lib/utils';\n\nimport type { SkeletonBaseProps } from '@gv-tech/ui-core';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"skeleton\" className={cn('bg-muted animate-pulse rounded-md', className)} {...props} />;\n}\n\nexport { Skeleton };\n\n// Verify that the component satisfies the ui-core contract\nconst _verifySkeletonContract: SkeletonBaseProps = {} as unknown as React.ComponentProps<typeof Skeleton>;\n"],"mappings":";;;;;AAIA,SAAS,EAAS,EAAE,cAAW,GAAG,KAAsC;CACtE,OAAO,iBAAA,GAAA,EAAA,KAAC,OAAD;EAAK,aAAU;EAAW,WAAW,EAAG,qCAAqC,CAAS;EAAG,GAAI;CAAQ,CAAA;AAC9G"}
package/dist/slider.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-3cr8xz0x.js"),n=require("./utils-DU-Y_pvO.js");let r=require("react");r=e.r(r);var i=t.vr(),a=r.forwardRef(({className:e,...r},a)=>(0,i.jsxs)(t.C,{ref:a,className:n.t(`relative flex w-full touch-none items-center select-none`,e),...r,children:[(0,i.jsx)(t.T,{className:`bg-primary/20 relative h-1.5 w-full grow overflow-hidden rounded-full`,children:(0,i.jsx)(t.S,{className:`bg-primary absolute h-full`})}),(0,i.jsx)(t.w,{className:`border-primary/50 bg-background focus-visible:ring-ring block h-4 w-4 rounded-full border shadow transition-colors focus-visible:ring-1 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50`})]}));a.displayName=t.C?.displayName||`Slider`,exports.Slider=a;
1
+ "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-UfQavLF9.js"),n=require("./utils-D7tt_q-u.js");let r=require("react");r=e.r(r);var i=t.Jr();function a({className:e,defaultValue:a,value:o,min:s=0,max:c=100,...l}){let u=r.useMemo(()=>Array.isArray(o)?o:Array.isArray(a)?a:[s,c],[o,a,s,c]);return(0,i.jsxs)(t.kt,{"data-slot":`slider`,defaultValue:a,value:o,min:s,max:c,className:n.t(`relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-40 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col`,e),...l,children:[(0,i.jsx)(t.jt,{"data-slot":`slider-track`,className:`bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1`,children:(0,i.jsx)(t.Ot,{"data-slot":`slider-range`,className:`bg-primary absolute select-none data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full`})}),Array.from({length:u.length},(e,n)=>(0,i.jsx)(t.At,{"data-slot":`slider-thumb`,className:`border-ring ring-ring/50 relative block size-3 shrink-0 rounded-full border bg-white transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50`},n))]})}exports.Slider=a;
2
2
  //# sourceMappingURL=slider.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider.cjs","names":[],"sources":["../packages/ui-web/src/slider.tsx"],"sourcesContent":["'use client';\n\nimport * as SliderPrimitive from '@radix-ui/react-slider';\nimport * as React from 'react';\n\nimport { SliderBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> & SliderBaseProps\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn('relative flex w-full touch-none items-center select-none', className)}\n {...props}\n >\n <SliderPrimitive.Track className=\"bg-primary/20 relative h-1.5 w-full grow overflow-hidden rounded-full\">\n <SliderPrimitive.Range className=\"bg-primary absolute h-full\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"border-primary/50 bg-background focus-visible:ring-ring block h-4 w-4 rounded-full border shadow transition-colors focus-visible:ring-1 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root?.displayName || 'Slider';\n\nexport { Slider };\nexport type { SliderBaseProps as SliderProps };\n"],"mappings":"+PAQM,EAAS,EAAM,YAGlB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,MAAA,EAAA,EAAA,CACO,MACL,UAAW,EAAA,EAAG,2DAA4D,CAAS,EACnF,GAAI,WAHN,EAKE,EAAA,EAAA,KAAA,EAAA,EAAA,CAAuB,UAAU,kFAC/B,EAAA,EAAA,KAAA,EAAA,EAAA,CAAuB,UAAU,4BAA8B,CAAA,CAC1C,CAAA,GACvB,EAAA,EAAA,KAAA,EAAA,EAAA,CAAuB,UAAU,qNAAuN,CAAA,CACpO,GACvB,EACD,EAAO,YAAA,EAAA,GAAoC,aAAe"}
1
+ {"version":3,"file":"slider.cjs","names":[],"sources":["../packages/ui-web/src/slider.tsx"],"sourcesContent":["'use client';\n\nimport { Slider as SliderPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from './lib/utils';\n\nimport type { SliderBaseProps } from '@gv-tech/ui-core';\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = React.useMemo(\n () => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]),\n [value, defaultValue, min, max],\n );\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n 'relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-40 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col',\n className,\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className=\"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1\"\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className=\"bg-primary absolute select-none data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"border-ring ring-ring/50 relative block size-3 shrink-0 rounded-full border bg-white transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\nexport { Slider };\n\n// Verify that the component satisfies the ui-core contract\nconst _verifySliderContract: SliderBaseProps = {} as unknown as React.ComponentProps<typeof Slider>;\n"],"mappings":"+PASA,SAAS,EAAO,CACd,YACA,eACA,QACA,MAAM,EACN,MAAM,IACN,GAAG,GACiD,CACpD,IAAM,EAAU,EAAM,YACb,MAAM,QAAQ,CAAK,EAAI,EAAQ,MAAM,QAAQ,CAAY,EAAI,EAAe,CAAC,EAAK,CAAG,EAC5F,CAAC,EAAO,EAAc,EAAK,CAAG,CAChC,EAEA,OACE,EAAA,EAAA,MAAA,EAAA,GAAA,CACE,YAAU,SACI,eACP,QACF,MACA,MACL,UAAW,EAAA,EACT,oOACA,CACF,EACA,GAAI,WAVN,EAYE,EAAA,EAAA,KAAA,EAAA,GAAA,CACE,YAAU,eACV,UAAU,0MAEV,EAAA,EAAA,KAAA,EAAA,GAAA,CACE,YAAU,eACV,UAAU,yGACX,CAAA,CACoB,CAAA,EACtB,MAAM,KAAK,CAAE,OAAQ,EAAQ,MAAO,GAAI,EAAG,KAC1C,EAAA,EAAA,KAAA,EAAA,GAAA,CACE,YAAU,eAEV,UAAU,4RACX,EAFM,CAEN,CACF,CACmB,GAE1B"}
package/dist/slider.mjs CHANGED
@@ -1,19 +1,38 @@
1
1
  "use client";
2
2
  "use client";
3
- import { C as e, S as t, T as n, vr as r, w as i } from "./vendor-ChPUVHXi.mjs";
4
- import { t as a } from "./utils-BsD1_fYL.mjs";
3
+ import { At as e, Jr as t, Ot as n, jt as r, kt as i } from "./vendor-B6CFfDyk.mjs";
4
+ import { t as a } from "./utils-IYJAOUsw.mjs";
5
5
  import * as o from "react";
6
6
  //#region packages/ui-web/src/slider.tsx
7
- var s = r(), c = o.forwardRef(({ className: r, ...o }, c) => /* @__PURE__ */ (0, s.jsxs)(e, {
8
- ref: c,
9
- className: a("relative flex w-full touch-none items-center select-none", r),
10
- ...o,
11
- children: [/* @__PURE__ */ (0, s.jsx)(n, {
12
- className: "bg-primary/20 relative h-1.5 w-full grow overflow-hidden rounded-full",
13
- children: /* @__PURE__ */ (0, s.jsx)(t, { className: "bg-primary absolute h-full" })
14
- }), /* @__PURE__ */ (0, s.jsx)(i, { className: "border-primary/50 bg-background focus-visible:ring-ring block h-4 w-4 rounded-full border shadow transition-colors focus-visible:ring-1 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50" })]
15
- }));
16
- c.displayName = e?.displayName || "Slider";
7
+ var s = t();
8
+ function c({ className: t, defaultValue: c, value: l, min: u = 0, max: d = 100, ...f }) {
9
+ let p = o.useMemo(() => Array.isArray(l) ? l : Array.isArray(c) ? c : [u, d], [
10
+ l,
11
+ c,
12
+ u,
13
+ d
14
+ ]);
15
+ return /* @__PURE__ */ (0, s.jsxs)(i, {
16
+ "data-slot": "slider",
17
+ defaultValue: c,
18
+ value: l,
19
+ min: u,
20
+ max: d,
21
+ className: a("relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-40 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col", t),
22
+ ...f,
23
+ children: [/* @__PURE__ */ (0, s.jsx)(r, {
24
+ "data-slot": "slider-track",
25
+ className: "bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1",
26
+ children: /* @__PURE__ */ (0, s.jsx)(n, {
27
+ "data-slot": "slider-range",
28
+ className: "bg-primary absolute select-none data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full"
29
+ })
30
+ }), Array.from({ length: p.length }, (t, n) => /* @__PURE__ */ (0, s.jsx)(e, {
31
+ "data-slot": "slider-thumb",
32
+ className: "border-ring ring-ring/50 relative block size-3 shrink-0 rounded-full border bg-white transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50"
33
+ }, n))]
34
+ });
35
+ }
17
36
  //#endregion
18
37
  export { c as Slider };
19
38
 
@@ -1 +1 @@
1
- {"version":3,"file":"slider.mjs","names":[],"sources":["../packages/ui-web/src/slider.tsx"],"sourcesContent":["'use client';\n\nimport * as SliderPrimitive from '@radix-ui/react-slider';\nimport * as React from 'react';\n\nimport { SliderBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> & SliderBaseProps\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn('relative flex w-full touch-none items-center select-none', className)}\n {...props}\n >\n <SliderPrimitive.Track className=\"bg-primary/20 relative h-1.5 w-full grow overflow-hidden rounded-full\">\n <SliderPrimitive.Range className=\"bg-primary absolute h-full\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"border-primary/50 bg-background focus-visible:ring-ring block h-4 w-4 rounded-full border shadow transition-colors focus-visible:ring-1 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root?.displayName || 'Slider';\n\nexport { Slider };\nexport type { SliderBaseProps as SliderProps };\n"],"mappings":";;;;;;aAQM,IAAS,EAAM,YAGlB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,MAAC,GAAD;CACO;CACL,WAAW,EAAG,4DAA4D,CAAS;CACnF,GAAI;WAHN,CAKE,iBAAA,GAAA,EAAA,KAAC,GAAD;EAAuB,WAAU;YAC/B,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAuB,WAAU,6BAA8B,CAAA;CAC1C,CAAA,GACvB,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAuB,WAAU,sNAAuN,CAAA,CACpO;EACvB;AACD,EAAO,cAAA,GAAoC,eAAe"}
1
+ {"version":3,"file":"slider.mjs","names":[],"sources":["../packages/ui-web/src/slider.tsx"],"sourcesContent":["'use client';\n\nimport { Slider as SliderPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from './lib/utils';\n\nimport type { SliderBaseProps } from '@gv-tech/ui-core';\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = React.useMemo(\n () => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]),\n [value, defaultValue, min, max],\n );\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n 'relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-40 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col',\n className,\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className=\"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1\"\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className=\"bg-primary absolute select-none data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"border-ring ring-ring/50 relative block size-3 shrink-0 rounded-full border bg-white transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\nexport { Slider };\n\n// Verify that the component satisfies the ui-core contract\nconst _verifySliderContract: SliderBaseProps = {} as unknown as React.ComponentProps<typeof Slider>;\n"],"mappings":";;;;;;;AASA,SAAS,EAAO,EACd,cACA,iBACA,UACA,SAAM,GACN,SAAM,KACN,GAAG,KACiD;CACpD,IAAM,IAAU,EAAM,cACb,MAAM,QAAQ,CAAK,IAAI,IAAQ,MAAM,QAAQ,CAAY,IAAI,IAAe,CAAC,GAAK,CAAG,GAC5F;EAAC;EAAO;EAAc;EAAK;CAAG,CAChC;CAEA,OACE,iBAAA,GAAA,EAAA,MAAC,GAAD;EACE,aAAU;EACI;EACP;EACF;EACA;EACL,WAAW,EACT,qOACA,CACF;EACA,GAAI;YAVN,CAYE,iBAAA,GAAA,EAAA,KAAC,GAAD;GACE,aAAU;GACV,WAAU;aAEV,iBAAA,GAAA,EAAA,KAAC,GAAD;IACE,aAAU;IACV,WAAU;GACX,CAAA;EACoB,CAAA,GACtB,MAAM,KAAK,EAAE,QAAQ,EAAQ,OAAO,IAAI,GAAG,MAC1C,iBAAA,GAAA,EAAA,KAAC,GAAD;GACE,aAAU;GAEV,WAAU;EACX,GAFM,CAEN,CACF,CACmB;;AAE1B"}
package/dist/sonner.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-3cr8xz0x.js");let n=require("react");n=e.r(n);let r=require("next-themes");var i=t.vr(),a=({...e})=>{let{theme:n=`system`}=(0,r.useTheme)();return(0,i.jsx)(t.x,{theme:n,className:`toaster group`,toastOptions:{classNames:{toast:`group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg`,description:`group-[.toast]:text-muted-foreground`,actionButton:`group-[.toast]:bg-primary group-[.toast]:text-primary-foreground`,cancelButton:`group-[.toast]:bg-muted group-[.toast]:text-muted-foreground`}},...e})};exports.Toaster=a;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./vendor-UfQavLF9.js");let t=require("next-themes");var n=e.Jr(),r=({...r})=>{let{theme:i=`system`}=(0,t.useTheme)();return(0,n.jsx)(e.S,{theme:i,className:`toaster group`,icons:{success:(0,n.jsx)(e.$,{className:`size-4`}),info:(0,n.jsx)(e.Y,{className:`size-4`}),warning:(0,n.jsx)(e.B,{className:`size-4`}),error:(0,n.jsx)(e.G,{className:`size-4`}),loading:(0,n.jsx)(e.J,{className:`size-4 animate-spin`})},style:{"--normal-bg":`var(--popover)`,"--normal-text":`var(--popover-foreground)`,"--normal-border":`var(--border)`,"--border-radius":`var(--radius)`},toastOptions:{classNames:{toast:`cn-toast`}},...r})};exports.Toaster=r;
2
2
  //# sourceMappingURL=sonner.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sonner.cjs","names":[],"sources":["../packages/ui-web/src/sonner.tsx"],"sourcesContent":["'use client';\n\nimport { SonnerBaseProps } from '@gv-tech/ui-core';\nimport { useTheme } from 'next-themes';\nimport * as React from 'react';\nimport { Toaster as Sonner } from 'sonner';\n\ntype ToasterProps = React.ComponentProps<typeof Sonner> & SonnerBaseProps;\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = 'system' } = useTheme();\n\n return (\n <Sonner\n theme={theme as ToasterProps['theme']}\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n 'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg',\n description: 'group-[.toast]:text-muted-foreground',\n actionButton: 'group-[.toast]:bg-primary group-[.toast]:text-primary-foreground',\n cancelButton: 'group-[.toast]:bg-muted group-[.toast]:text-muted-foreground',\n },\n }}\n {...props}\n />\n );\n};\n\nexport { Toaster };\nexport type { ToasterProps };\n"],"mappings":"2PASM,GAAW,CAAE,GAAG,KAA0B,CAC9C,GAAM,CAAE,QAAQ,WAAA,EAAA,EAAA,UAAsB,EAEtC,OACE,EAAA,EAAA,KAAC,EAAA,EAAD,CACS,QACP,UAAU,gBACV,aAAc,CACZ,WAAY,CACV,MACE,wIACF,YAAa,uCACb,aAAc,mEACd,aAAc,8DAChB,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"sonner.cjs","names":[],"sources":["../packages/ui-web/src/sonner.tsx"],"sourcesContent":["import { CircleCheckIcon, InfoIcon, Loader2Icon, OctagonXIcon, TriangleAlertIcon } from 'lucide-react';\nimport { useTheme } from 'next-themes';\nimport { Toaster as Sonner, type ToasterProps } from 'sonner';\n\nimport type { SonnerBaseProps } from '@gv-tech/ui-core';\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = 'system' } = useTheme();\n\n return (\n <Sonner\n theme={theme as ToasterProps['theme']}\n className=\"toaster group\"\n icons={{\n success: <CircleCheckIcon className=\"size-4\" />,\n info: <InfoIcon className=\"size-4\" />,\n warning: <TriangleAlertIcon className=\"size-4\" />,\n error: <OctagonXIcon className=\"size-4\" />,\n loading: <Loader2Icon className=\"size-4 animate-spin\" />,\n }}\n style={\n {\n '--normal-bg': 'var(--popover)',\n '--normal-text': 'var(--popover-foreground)',\n '--normal-border': 'var(--border)',\n '--border-radius': 'var(--radius)',\n } as React.CSSProperties\n }\n toastOptions={{\n classNames: {\n toast: 'cn-toast',\n },\n }}\n {...props}\n />\n );\n};\n\nexport { Toaster };\n\n// Verify that the component satisfies the ui-core contract\nconst _verifySonnerContract: SonnerBaseProps = {} as unknown as React.ComponentProps<typeof Sonner>;\n"],"mappings":"kKAMM,GAAW,CAAE,GAAG,KAA0B,CAC9C,GAAM,CAAE,QAAQ,WAAA,EAAA,EAAA,UAAsB,EAEtC,OACE,EAAA,EAAA,KAAC,EAAA,EAAD,CACS,QACP,UAAU,gBACV,MAAO,CACL,SAAS,EAAA,EAAA,KAAC,EAAA,EAAD,CAAiB,UAAU,QAAU,CAAA,EAC9C,MAAM,EAAA,EAAA,KAAC,EAAA,EAAD,CAAU,UAAU,QAAU,CAAA,EACpC,SAAS,EAAA,EAAA,KAAC,EAAA,EAAD,CAAmB,UAAU,QAAU,CAAA,EAChD,OAAO,EAAA,EAAA,KAAC,EAAA,EAAD,CAAc,UAAU,QAAU,CAAA,EACzC,SAAS,EAAA,EAAA,KAAC,EAAA,EAAD,CAAa,UAAU,qBAAuB,CAAA,CACzD,EACA,MACE,CACE,cAAe,iBACf,gBAAiB,4BACjB,kBAAmB,gBACnB,kBAAmB,eACrB,EAEF,aAAc,CACZ,WAAY,CACV,MAAO,UACT,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
package/dist/sonner.mjs CHANGED
@@ -1,24 +1,30 @@
1
1
  "use client";
2
- "use client";
3
- import { vr as e, x as t } from "./vendor-ChPUVHXi.mjs";
4
- import "react";
5
- import { useTheme as n } from "next-themes";
2
+ import { $ as e, B as t, G as n, J as r, Jr as i, S as a, Y as o } from "./vendor-B6CFfDyk.mjs";
3
+ import { useTheme as s } from "next-themes";
6
4
  //#region packages/ui-web/src/sonner.tsx
7
- var r = e(), i = ({ ...e }) => {
8
- let { theme: i = "system" } = n();
9
- return /* @__PURE__ */ (0, r.jsx)(t, {
10
- theme: i,
5
+ var c = i(), l = ({ ...i }) => {
6
+ let { theme: l = "system" } = s();
7
+ return /* @__PURE__ */ (0, c.jsx)(a, {
8
+ theme: l,
11
9
  className: "toaster group",
12
- toastOptions: { classNames: {
13
- toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
14
- description: "group-[.toast]:text-muted-foreground",
15
- actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
16
- cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
17
- } },
18
- ...e
10
+ icons: {
11
+ success: /* @__PURE__ */ (0, c.jsx)(e, { className: "size-4" }),
12
+ info: /* @__PURE__ */ (0, c.jsx)(o, { className: "size-4" }),
13
+ warning: /* @__PURE__ */ (0, c.jsx)(t, { className: "size-4" }),
14
+ error: /* @__PURE__ */ (0, c.jsx)(n, { className: "size-4" }),
15
+ loading: /* @__PURE__ */ (0, c.jsx)(r, { className: "size-4 animate-spin" })
16
+ },
17
+ style: {
18
+ "--normal-bg": "var(--popover)",
19
+ "--normal-text": "var(--popover-foreground)",
20
+ "--normal-border": "var(--border)",
21
+ "--border-radius": "var(--radius)"
22
+ },
23
+ toastOptions: { classNames: { toast: "cn-toast" } },
24
+ ...i
19
25
  });
20
26
  };
21
27
  //#endregion
22
- export { i as Toaster };
28
+ export { l as Toaster };
23
29
 
24
30
  //# sourceMappingURL=sonner.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sonner.mjs","names":[],"sources":["../packages/ui-web/src/sonner.tsx"],"sourcesContent":["'use client';\n\nimport { SonnerBaseProps } from '@gv-tech/ui-core';\nimport { useTheme } from 'next-themes';\nimport * as React from 'react';\nimport { Toaster as Sonner } from 'sonner';\n\ntype ToasterProps = React.ComponentProps<typeof Sonner> & SonnerBaseProps;\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = 'system' } = useTheme();\n\n return (\n <Sonner\n theme={theme as ToasterProps['theme']}\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n 'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg',\n description: 'group-[.toast]:text-muted-foreground',\n actionButton: 'group-[.toast]:bg-primary group-[.toast]:text-primary-foreground',\n cancelButton: 'group-[.toast]:bg-muted group-[.toast]:text-muted-foreground',\n },\n }}\n {...props}\n />\n );\n};\n\nexport { Toaster };\nexport type { ToasterProps };\n"],"mappings":";;;;;;aASM,KAAW,EAAE,GAAG,QAA0B;CAC9C,IAAM,EAAE,WAAQ,aAAa,EAAS;CAEtC,OACE,iBAAA,GAAA,EAAA,KAAC,GAAD;EACS;EACP,WAAU;EACV,cAAc,EACZ,YAAY;GACV,OACE;GACF,aAAa;GACb,cAAc;GACd,cAAc;EAChB,EACF;EACA,GAAI;CACL,CAAA;AAEL"}
1
+ {"version":3,"file":"sonner.mjs","names":[],"sources":["../packages/ui-web/src/sonner.tsx"],"sourcesContent":["import { CircleCheckIcon, InfoIcon, Loader2Icon, OctagonXIcon, TriangleAlertIcon } from 'lucide-react';\nimport { useTheme } from 'next-themes';\nimport { Toaster as Sonner, type ToasterProps } from 'sonner';\n\nimport type { SonnerBaseProps } from '@gv-tech/ui-core';\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = 'system' } = useTheme();\n\n return (\n <Sonner\n theme={theme as ToasterProps['theme']}\n className=\"toaster group\"\n icons={{\n success: <CircleCheckIcon className=\"size-4\" />,\n info: <InfoIcon className=\"size-4\" />,\n warning: <TriangleAlertIcon className=\"size-4\" />,\n error: <OctagonXIcon className=\"size-4\" />,\n loading: <Loader2Icon className=\"size-4 animate-spin\" />,\n }}\n style={\n {\n '--normal-bg': 'var(--popover)',\n '--normal-text': 'var(--popover-foreground)',\n '--normal-border': 'var(--border)',\n '--border-radius': 'var(--radius)',\n } as React.CSSProperties\n }\n toastOptions={{\n classNames: {\n toast: 'cn-toast',\n },\n }}\n {...props}\n />\n );\n};\n\nexport { Toaster };\n\n// Verify that the component satisfies the ui-core contract\nconst _verifySonnerContract: SonnerBaseProps = {} as unknown as React.ComponentProps<typeof Sonner>;\n"],"mappings":";;;;aAMM,KAAW,EAAE,GAAG,QAA0B;CAC9C,IAAM,EAAE,WAAQ,aAAa,EAAS;CAEtC,OACE,iBAAA,GAAA,EAAA,KAAC,GAAD;EACS;EACP,WAAU;EACV,OAAO;GACL,SAAS,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAiB,WAAU,SAAU,CAAA;GAC9C,MAAM,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAU,WAAU,SAAU,CAAA;GACpC,SAAS,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAmB,WAAU,SAAU,CAAA;GAChD,OAAO,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAc,WAAU,SAAU,CAAA;GACzC,SAAS,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAa,WAAU,sBAAuB,CAAA;EACzD;EACA,OACE;GACE,eAAe;GACf,iBAAiB;GACjB,mBAAmB;GACnB,mBAAmB;EACrB;EAEF,cAAc,EACZ,YAAY,EACV,OAAO,WACT,EACF;EACA,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,2 @@
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./vendor-UfQavLF9.js"),t=require("./utils-D7tt_q-u.js");var n=e.Jr();function r({className:r,...i}){return(0,n.jsx)(e.J,{role:`status`,"aria-label":`Loading`,className:t.t(`size-4 animate-spin`,r),...i})}exports.Spinner=r;
2
+ //# sourceMappingURL=spinner.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.cjs","names":[],"sources":["../packages/ui-web/src/spinner.tsx"],"sourcesContent":["import { Loader2Icon } from 'lucide-react';\nimport { cn } from './lib/utils';\n\nimport type { SpinnerBaseProps } from '@gv-tech/ui-core';\n\nfunction Spinner({ className, ...props }: React.ComponentProps<'svg'> & SpinnerBaseProps) {\n return <Loader2Icon role=\"status\" aria-label=\"Loading\" className={cn('size-4 animate-spin', className)} {...props} />;\n}\n\nexport { Spinner };\n"],"mappings":"sKAKA,SAAS,EAAQ,CAAE,YAAW,GAAG,GAAyD,CACxF,OAAO,EAAA,EAAA,KAAC,EAAA,EAAD,CAAa,KAAK,SAAS,aAAW,UAAU,UAAW,EAAA,EAAG,sBAAuB,CAAS,EAAG,GAAI,CAAQ,CAAA,CACtH"}
@@ -0,0 +1,2 @@
1
+ export * from './packages/ui-web/src/spinner'
2
+ export {}
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import { J as e, Jr as t } from "./vendor-B6CFfDyk.mjs";
3
+ import { t as n } from "./utils-IYJAOUsw.mjs";
4
+ //#region packages/ui-web/src/spinner.tsx
5
+ var r = t();
6
+ function i({ className: t, ...i }) {
7
+ return /* @__PURE__ */ (0, r.jsx)(e, {
8
+ role: "status",
9
+ "aria-label": "Loading",
10
+ className: n("size-4 animate-spin", t),
11
+ ...i
12
+ });
13
+ }
14
+ //#endregion
15
+ export { i as Spinner };
16
+
17
+ //# sourceMappingURL=spinner.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.mjs","names":[],"sources":["../packages/ui-web/src/spinner.tsx"],"sourcesContent":["import { Loader2Icon } from 'lucide-react';\nimport { cn } from './lib/utils';\n\nimport type { SpinnerBaseProps } from '@gv-tech/ui-core';\n\nfunction Spinner({ className, ...props }: React.ComponentProps<'svg'> & SpinnerBaseProps) {\n return <Loader2Icon role=\"status\" aria-label=\"Loading\" className={cn('size-4 animate-spin', className)} {...props} />;\n}\n\nexport { Spinner };\n"],"mappings":";;;;;AAKA,SAAS,EAAQ,EAAE,cAAW,GAAG,KAAyD;CACxF,OAAO,iBAAA,GAAA,EAAA,KAAC,GAAD;EAAa,MAAK;EAAS,cAAW;EAAU,WAAW,EAAG,uBAAuB,CAAS;EAAG,GAAI;CAAQ,CAAA;AACtH"}
@@ -1,2 +1,2 @@
1
- "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-3cr8xz0x.js"),n=require("./utils-DU-Y_pvO.js"),r=require("./button.cjs"),i=require("./dialog.cjs"),a=require("./drawer.cjs");let o=require("react");o=e.r(o);var s=t.vr(),c=`(max-width: 767px)`,l=e=>{let t=e.trim();return t.endsWith(`/`)?t.slice(0,-1):t},u=e=>e.trim().replace(/^@+/,``),d=(e,t)=>`${l(e)}/${encodeURIComponent(u(t))}`,f=(e,t)=>`${l(e)}/widget/page/${encodeURIComponent(u(t))}`,p=()=>{let[e,t]=o.useState(()=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(c).matches);return o.useEffect(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(c),n=e=>t(e.matches);return t(e.matches),e.addEventListener(`change`,n),()=>{e.removeEventListener(`change`,n)}},[]),e};function m({supportUrl:e=`https://www.buymeacoffee.com`,creatorId:c,title:l=`Buy me a coffee`,description:u=`Support the project directly from this panel.`,iframeTitle:m=`Buy Me a Coffee support form`,open:h,defaultOpen:g=!1,onOpenChange:_,positionClassName:v,buttonClassName:y,panelClassName:b,className:x,type:S,onClick:C,...w}){let T=p(),E=h!==void 0,[D,O]=o.useState(g),k=E?h:D,A=o.useCallback(e=>{E||O(e),_?.(e)},[E,_]),j=o.useMemo(()=>d(e,c),[c,e]),M=(0,s.jsxs)(`div`,{className:`flex max-h-[75vh] flex-col gap-3`,children:[(0,s.jsx)(`div`,{className:`overflow-hidden rounded-md border`,children:(0,s.jsx)(`iframe`,{title:m,src:o.useMemo(()=>f(e,c),[c,e]),className:`h-[560px] w-full border-0`,loading:`lazy`,referrerPolicy:`strict-origin-when-cross-origin`})}),(0,s.jsxs)(`div`,{className:`text-muted-foreground flex items-center justify-between gap-2 text-xs`,children:[(0,s.jsx)(`span`,{children:`If the embedded checkout is unavailable, open the support page directly.`}),(0,s.jsxs)(`a`,{href:j,target:`_blank`,rel:`noopener noreferrer`,className:`text-foreground inline-flex items-center gap-1 font-medium underline underline-offset-2`,children:[`Open Buy Me a Coffee`,(0,s.jsx)(t.Qn,{className:`h-3.5 w-3.5`})]})]})]}),N=(0,s.jsx)(`div`,{className:n.t(`fixed right-6 bottom-6 z-50`,v),children:(0,s.jsxs)(r.Button,{"aria-label":`Support this project`,type:S??`button`,className:n.t(`inline-flex h-14 w-14 rounded-full border border-black/15 bg-[#ffdd00] text-black shadow-[0_16px_36px_-18px_rgba(0,0,0,0.8)] transition hover:-translate-y-0.5 hover:scale-105 hover:bg-[#ffe347] focus-visible:ring-2 focus-visible:ring-offset-2 active:translate-y-0 active:scale-95`,y,x),onClick:e=>{C?.(e),e.defaultPrevented||A(!0)},...w,children:[(0,s.jsx)(t.er,{className:`h-6 w-6`}),(0,s.jsx)(`span`,{className:`sr-only`,children:`Support this project`})]})});return T?(0,s.jsxs)(s.Fragment,{children:[N,(0,s.jsx)(a.Drawer,{open:k,onOpenChange:A,children:(0,s.jsxs)(a.DrawerContent,{className:n.t(`mx-auto w-full max-w-xl`,b),children:[(0,s.jsxs)(a.DrawerHeader,{children:[(0,s.jsx)(a.DrawerTitle,{children:l}),(0,s.jsx)(a.DrawerDescription,{children:u})]}),(0,s.jsx)(`div`,{className:`px-4 pb-4`,children:M})]})})]}):(0,s.jsxs)(s.Fragment,{children:[N,(0,s.jsx)(i.Dialog,{open:k,onOpenChange:A,children:(0,s.jsxs)(i.DialogContent,{className:n.t(`max-w-xl p-5`,b),children:[(0,s.jsxs)(i.DialogHeader,{children:[(0,s.jsx)(i.DialogTitle,{children:l}),(0,s.jsx)(i.DialogDescription,{children:u})]}),M]})})]})}exports.SupportFab=m;
1
+ "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-UfQavLF9.js"),n=require("./utils-D7tt_q-u.js"),r=require("./button.cjs"),i=require("./dialog.cjs"),a=require("./drawer.cjs");let o=require("react");o=e.r(o);var s=t.Jr(),c=`(max-width: 767px)`,l=e=>{let t=e.trim();return t.endsWith(`/`)?t.slice(0,-1):t},u=e=>e.trim().replace(/^@+/,``),d=(e,t)=>`${l(e)}/${encodeURIComponent(u(t))}`,f=(e,t)=>`${l(e)}/widget/page/${encodeURIComponent(u(t))}`,p=()=>{let[e,t]=o.useState(()=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(c).matches);return o.useEffect(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(c),n=e=>t(e.matches);return t(e.matches),e.addEventListener(`change`,n),()=>{e.removeEventListener(`change`,n)}},[]),e};function m({supportUrl:e=`https://www.buymeacoffee.com`,creatorId:c,title:l=`Buy me a coffee`,description:u=`Support the project directly from this panel.`,iframeTitle:m=`Buy Me a Coffee support form`,open:h,defaultOpen:g=!1,onOpenChange:_,positionClassName:v,buttonClassName:y,panelClassName:b,className:x,type:S,onClick:C,...w}){let T=p(),E=h!==void 0,[D,O]=o.useState(g),k=E?h:D,A=o.useCallback(e=>{E||O(e),_?.(e)},[E,_]),j=o.useMemo(()=>d(e,c),[c,e]),M=(0,s.jsxs)(`div`,{className:`flex max-h-[75vh] flex-col gap-3`,children:[(0,s.jsx)(`div`,{className:`overflow-hidden rounded-md border`,children:(0,s.jsx)(`iframe`,{title:m,src:o.useMemo(()=>f(e,c),[c,e]),className:`h-[560px] w-full border-0`,loading:`lazy`,referrerPolicy:`strict-origin-when-cross-origin`})}),(0,s.jsxs)(`div`,{className:`text-muted-foreground flex items-center justify-between gap-2 text-xs`,children:[(0,s.jsx)(`span`,{children:`If the embedded checkout is unavailable, open the support page directly.`}),(0,s.jsxs)(`a`,{href:j,target:`_blank`,rel:`noopener noreferrer`,className:`text-foreground inline-flex items-center gap-1 font-medium underline underline-offset-2`,children:[`Open Buy Me a Coffee`,(0,s.jsx)(t.X,{className:`h-3.5 w-3.5`})]})]})]}),N=(0,s.jsx)(`div`,{className:n.t(`fixed right-6 bottom-6 z-50`,v),children:(0,s.jsxs)(r.Button,{"aria-label":`Support this project`,type:S??`button`,className:n.t(`inline-flex h-14 w-14 items-center justify-center rounded-full border border-black/15 bg-[#ffdd00] text-black shadow-[0_16px_36px_-18px_rgba(0,0,0,0.8)] transition hover:-translate-y-0.5 hover:scale-105 hover:bg-[#ffe347] focus-visible:ring-2 focus-visible:ring-offset-2 active:translate-y-0 active:scale-95`,y,x),onClick:e=>{C?.(e),e.defaultPrevented||A(!0)},...w,children:[(0,s.jsx)(t.Q,{className:`h-6 w-6`}),(0,s.jsx)(`span`,{className:`sr-only`,children:`Support this project`})]})});return T?(0,s.jsxs)(s.Fragment,{children:[N,(0,s.jsx)(a.Drawer,{open:k,onOpenChange:A,children:(0,s.jsxs)(a.DrawerContent,{className:n.t(`mx-auto w-full max-w-xl`,b),children:[(0,s.jsxs)(a.DrawerHeader,{children:[(0,s.jsx)(a.DrawerTitle,{children:l}),(0,s.jsx)(a.DrawerDescription,{children:u})]}),(0,s.jsx)(`div`,{className:`px-4 pb-4`,children:M})]})})]}):(0,s.jsxs)(s.Fragment,{children:[N,(0,s.jsx)(i.Dialog,{open:k,onOpenChange:A,children:(0,s.jsxs)(i.DialogContent,{className:n.t(`max-w-xl p-5`,b),children:[(0,s.jsxs)(i.DialogHeader,{children:[(0,s.jsx)(i.DialogTitle,{children:l}),(0,s.jsx)(i.DialogDescription,{children:u})]}),M]})})]})}exports.SupportFab=m;
2
2
  //# sourceMappingURL=support-fab.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"support-fab.cjs","names":[],"sources":["../packages/ui-web/src/support-fab.tsx"],"sourcesContent":["'use client';\n\nimport { Coffee, ExternalLink } from 'lucide-react';\nimport * as React from 'react';\nimport { Button } from './button';\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from './dialog';\nimport { Drawer, DrawerContent, DrawerDescription, DrawerHeader, DrawerTitle } from './drawer';\nimport { cn } from './lib/utils';\n\nconst MOBILE_QUERY = '(max-width: 767px)';\n\nconst normalizeBaseUrl = (url: string) => {\n const trimmed = url.trim();\n return trimmed.endsWith('/') ? trimmed.slice(0, -1) : trimmed;\n};\n\nconst sanitizeCreator = (creatorId: string) => creatorId.trim().replace(/^@+/, '');\n\nconst buildPageUrl = (supportUrl: string, creatorId: string) => {\n const base = normalizeBaseUrl(supportUrl);\n const creator = encodeURIComponent(sanitizeCreator(creatorId));\n return `${base}/${creator}`;\n};\n\nconst buildEmbedUrl = (supportUrl: string, creatorId: string) => {\n const base = normalizeBaseUrl(supportUrl);\n const creator = encodeURIComponent(sanitizeCreator(creatorId));\n return `${base}/widget/page/${creator}`;\n};\n\nconst useIsMobile = () => {\n const getInitial = () => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return false;\n }\n return window.matchMedia(MOBILE_QUERY).matches;\n };\n\n const [isMobile, setIsMobile] = React.useState(getInitial);\n\n React.useEffect(() => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return;\n }\n\n const mediaQuery = window.matchMedia(MOBILE_QUERY);\n const onChange = (event: MediaQueryListEvent) => setIsMobile(event.matches);\n\n setIsMobile(mediaQuery.matches);\n mediaQuery.addEventListener('change', onChange);\n\n return () => {\n mediaQuery.removeEventListener('change', onChange);\n };\n }, []);\n\n return isMobile;\n};\n\nexport interface SupportFabProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'> {\n supportUrl?: string;\n creatorId: string;\n title?: string;\n description?: string;\n iframeTitle?: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n positionClassName?: string;\n buttonClassName?: string;\n panelClassName?: string;\n}\n\nexport function SupportFab({\n supportUrl = 'https://www.buymeacoffee.com',\n creatorId,\n title = 'Buy me a coffee',\n description = 'Support the project directly from this panel.',\n iframeTitle = 'Buy Me a Coffee support form',\n open,\n defaultOpen = false,\n onOpenChange,\n positionClassName,\n buttonClassName,\n panelClassName,\n className,\n type,\n onClick,\n ...buttonProps\n}: SupportFabProps) {\n const isMobile = useIsMobile();\n const isControlled = open !== undefined;\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen);\n const isOpen = isControlled ? open : internalOpen;\n\n const setOpen = React.useCallback(\n (nextOpen: boolean) => {\n if (!isControlled) {\n setInternalOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n },\n [isControlled, onOpenChange],\n );\n\n const pageUrl = React.useMemo(() => buildPageUrl(supportUrl, creatorId), [creatorId, supportUrl]);\n const embedUrl = React.useMemo(() => buildEmbedUrl(supportUrl, creatorId), [creatorId, supportUrl]);\n\n const panelBody = (\n <div className=\"flex max-h-[75vh] flex-col gap-3\">\n <div className=\"overflow-hidden rounded-md border\">\n <iframe\n title={iframeTitle}\n src={embedUrl}\n className=\"h-[560px] w-full border-0\"\n loading=\"lazy\"\n referrerPolicy=\"strict-origin-when-cross-origin\"\n />\n </div>\n <div className=\"text-muted-foreground flex items-center justify-between gap-2 text-xs\">\n <span>If the embedded checkout is unavailable, open the support page directly.</span>\n <a\n href={pageUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-foreground inline-flex items-center gap-1 font-medium underline underline-offset-2\"\n >\n Open Buy Me a Coffee\n <ExternalLink className=\"h-3.5 w-3.5\" />\n </a>\n </div>\n </div>\n );\n\n const trigger = (\n <div className={cn('fixed right-6 bottom-6 z-50', positionClassName)}>\n <Button\n aria-label=\"Support this project\"\n type={type ?? 'button'}\n className={cn(\n 'inline-flex h-14 w-14 rounded-full border border-black/15 bg-[#ffdd00] text-black shadow-[0_16px_36px_-18px_rgba(0,0,0,0.8)] transition hover:-translate-y-0.5 hover:scale-105 hover:bg-[#ffe347] focus-visible:ring-2 focus-visible:ring-offset-2 active:translate-y-0 active:scale-95',\n buttonClassName,\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n setOpen(true);\n }\n }}\n {...buttonProps}\n >\n <Coffee className=\"h-6 w-6\" />\n <span className=\"sr-only\">Support this project</span>\n </Button>\n </div>\n );\n\n if (isMobile) {\n return (\n <>\n {trigger}\n <Drawer open={isOpen} onOpenChange={setOpen}>\n <DrawerContent className={cn('mx-auto w-full max-w-xl', panelClassName)}>\n <DrawerHeader>\n <DrawerTitle>{title}</DrawerTitle>\n <DrawerDescription>{description}</DrawerDescription>\n </DrawerHeader>\n <div className=\"px-4 pb-4\">{panelBody}</div>\n </DrawerContent>\n </Drawer>\n </>\n );\n }\n\n return (\n <>\n {trigger}\n <Dialog open={isOpen} onOpenChange={setOpen}>\n <DialogContent className={cn('max-w-xl p-5', panelClassName)}>\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n {panelBody}\n </DialogContent>\n </Dialog>\n </>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"support-fab.cjs","names":[],"sources":["../packages/ui-web/src/support-fab.tsx"],"sourcesContent":["'use client';\n\nimport { Coffee, ExternalLink } from 'lucide-react';\nimport * as React from 'react';\nimport { Button } from './button';\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from './dialog';\nimport { Drawer, DrawerContent, DrawerDescription, DrawerHeader, DrawerTitle } from './drawer';\nimport { cn } from './lib/utils';\n\nconst MOBILE_QUERY = '(max-width: 767px)';\n\nconst normalizeBaseUrl = (url: string) => {\n const trimmed = url.trim();\n return trimmed.endsWith('/') ? trimmed.slice(0, -1) : trimmed;\n};\n\nconst sanitizeCreator = (creatorId: string) => creatorId.trim().replace(/^@+/, '');\n\nconst buildPageUrl = (supportUrl: string, creatorId: string) => {\n const base = normalizeBaseUrl(supportUrl);\n const creator = encodeURIComponent(sanitizeCreator(creatorId));\n return `${base}/${creator}`;\n};\n\nconst buildEmbedUrl = (supportUrl: string, creatorId: string) => {\n const base = normalizeBaseUrl(supportUrl);\n const creator = encodeURIComponent(sanitizeCreator(creatorId));\n return `${base}/widget/page/${creator}`;\n};\n\nconst useIsMobile = () => {\n const getInitial = () => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return false;\n }\n return window.matchMedia(MOBILE_QUERY).matches;\n };\n\n const [isMobile, setIsMobile] = React.useState(getInitial);\n\n React.useEffect(() => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return;\n }\n\n const mediaQuery = window.matchMedia(MOBILE_QUERY);\n const onChange = (event: MediaQueryListEvent) => setIsMobile(event.matches);\n\n setIsMobile(mediaQuery.matches);\n mediaQuery.addEventListener('change', onChange);\n\n return () => {\n mediaQuery.removeEventListener('change', onChange);\n };\n }, []);\n\n return isMobile;\n};\n\nexport interface SupportFabProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'> {\n supportUrl?: string;\n creatorId: string;\n title?: string;\n description?: string;\n iframeTitle?: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n positionClassName?: string;\n buttonClassName?: string;\n panelClassName?: string;\n}\n\nexport function SupportFab({\n supportUrl = 'https://www.buymeacoffee.com',\n creatorId,\n title = 'Buy me a coffee',\n description = 'Support the project directly from this panel.',\n iframeTitle = 'Buy Me a Coffee support form',\n open,\n defaultOpen = false,\n onOpenChange,\n positionClassName,\n buttonClassName,\n panelClassName,\n className,\n type,\n onClick,\n ...buttonProps\n}: SupportFabProps) {\n const isMobile = useIsMobile();\n const isControlled = open !== undefined;\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen);\n const isOpen = isControlled ? open : internalOpen;\n\n const setOpen = React.useCallback(\n (nextOpen: boolean) => {\n if (!isControlled) {\n setInternalOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n },\n [isControlled, onOpenChange],\n );\n\n const pageUrl = React.useMemo(() => buildPageUrl(supportUrl, creatorId), [creatorId, supportUrl]);\n const embedUrl = React.useMemo(() => buildEmbedUrl(supportUrl, creatorId), [creatorId, supportUrl]);\n\n const panelBody = (\n <div className=\"flex max-h-[75vh] flex-col gap-3\">\n <div className=\"overflow-hidden rounded-md border\">\n <iframe\n title={iframeTitle}\n src={embedUrl}\n className=\"h-[560px] w-full border-0\"\n loading=\"lazy\"\n referrerPolicy=\"strict-origin-when-cross-origin\"\n />\n </div>\n <div className=\"text-muted-foreground flex items-center justify-between gap-2 text-xs\">\n <span>If the embedded checkout is unavailable, open the support page directly.</span>\n <a\n href={pageUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-foreground inline-flex items-center gap-1 font-medium underline underline-offset-2\"\n >\n Open Buy Me a Coffee\n <ExternalLink className=\"h-3.5 w-3.5\" />\n </a>\n </div>\n </div>\n );\n\n const trigger = (\n <div className={cn('fixed right-6 bottom-6 z-50', positionClassName)}>\n <Button\n aria-label=\"Support this project\"\n type={type ?? 'button'}\n className={cn(\n 'inline-flex h-14 w-14 items-center justify-center rounded-full border border-black/15 bg-[#ffdd00] text-black shadow-[0_16px_36px_-18px_rgba(0,0,0,0.8)] transition hover:-translate-y-0.5 hover:scale-105 hover:bg-[#ffe347] focus-visible:ring-2 focus-visible:ring-offset-2 active:translate-y-0 active:scale-95',\n buttonClassName,\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n setOpen(true);\n }\n }}\n {...buttonProps}\n >\n <Coffee className=\"h-6 w-6\" />\n <span className=\"sr-only\">Support this project</span>\n </Button>\n </div>\n );\n\n if (isMobile) {\n return (\n <>\n {trigger}\n <Drawer open={isOpen} onOpenChange={setOpen}>\n <DrawerContent className={cn('mx-auto w-full max-w-xl', panelClassName)}>\n <DrawerHeader>\n <DrawerTitle>{title}</DrawerTitle>\n <DrawerDescription>{description}</DrawerDescription>\n </DrawerHeader>\n <div className=\"px-4 pb-4\">{panelBody}</div>\n </DrawerContent>\n </Drawer>\n </>\n );\n }\n\n return (\n <>\n {trigger}\n <Dialog open={isOpen} onOpenChange={setOpen}>\n <DialogContent className={cn('max-w-xl p-5', panelClassName)}>\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n {panelBody}\n </DialogContent>\n </Dialog>\n </>\n );\n}\n"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  "use client";
3
- import { Qn as e, er as t, vr as n } from "./vendor-ChPUVHXi.mjs";
4
- import { t as r } from "./utils-BsD1_fYL.mjs";
3
+ import { Jr as e, Q as t, X as n } from "./vendor-B6CFfDyk.mjs";
4
+ import { t as r } from "./utils-IYJAOUsw.mjs";
5
5
  import { Button as i } from "./button.mjs";
6
6
  import { Dialog as a, DialogContent as o, DialogDescription as s, DialogHeader as c, DialogTitle as l } from "./dialog.mjs";
7
7
  import { Drawer as u, DrawerContent as d, DrawerDescription as f, DrawerHeader as p, DrawerTitle as m } from "./drawer.mjs";
8
8
  import * as h from "react";
9
9
  //#region packages/ui-web/src/support-fab.tsx
10
- var g = n(), _ = "(max-width: 767px)", v = (e) => {
10
+ var g = e(), _ = "(max-width: 767px)", v = (e) => {
11
11
  let t = e.trim();
12
12
  return t.endsWith("/") ? t.slice(0, -1) : t;
13
13
  }, y = (e) => e.trim().replace(/^@+/, ""), b = (e, t) => `${v(e)}/${encodeURIComponent(y(t))}`, x = (e, t) => `${v(e)}/widget/page/${encodeURIComponent(y(t))}`, S = () => {
@@ -20,16 +20,16 @@ var g = n(), _ = "(max-width: 767px)", v = (e) => {
20
20
  };
21
21
  }, []), e;
22
22
  };
23
- function C({ supportUrl: n = "https://www.buymeacoffee.com", creatorId: _, title: v = "Buy me a coffee", description: y = "Support the project directly from this panel.", iframeTitle: C = "Buy Me a Coffee support form", open: w, defaultOpen: T = !1, onOpenChange: E, positionClassName: D, buttonClassName: O, panelClassName: k, className: A, type: j, onClick: M, ...N }) {
23
+ function C({ supportUrl: e = "https://www.buymeacoffee.com", creatorId: _, title: v = "Buy me a coffee", description: y = "Support the project directly from this panel.", iframeTitle: C = "Buy Me a Coffee support form", open: w, defaultOpen: T = !1, onOpenChange: E, positionClassName: D, buttonClassName: O, panelClassName: k, className: A, type: j, onClick: M, ...N }) {
24
24
  let P = S(), F = w !== void 0, [I, L] = h.useState(T), R = F ? w : I, z = h.useCallback((e) => {
25
25
  F || L(e), E?.(e);
26
- }, [F, E]), B = h.useMemo(() => b(n, _), [_, n]), V = /* @__PURE__ */ (0, g.jsxs)("div", {
26
+ }, [F, E]), B = h.useMemo(() => b(e, _), [_, e]), V = /* @__PURE__ */ (0, g.jsxs)("div", {
27
27
  className: "flex max-h-[75vh] flex-col gap-3",
28
28
  children: [/* @__PURE__ */ (0, g.jsx)("div", {
29
29
  className: "overflow-hidden rounded-md border",
30
30
  children: /* @__PURE__ */ (0, g.jsx)("iframe", {
31
31
  title: C,
32
- src: h.useMemo(() => x(n, _), [_, n]),
32
+ src: h.useMemo(() => x(e, _), [_, e]),
33
33
  className: "h-[560px] w-full border-0",
34
34
  loading: "lazy",
35
35
  referrerPolicy: "strict-origin-when-cross-origin"
@@ -41,7 +41,7 @@ function C({ supportUrl: n = "https://www.buymeacoffee.com", creatorId: _, title
41
41
  target: "_blank",
42
42
  rel: "noopener noreferrer",
43
43
  className: "text-foreground inline-flex items-center gap-1 font-medium underline underline-offset-2",
44
- children: ["Open Buy Me a Coffee", /* @__PURE__ */ (0, g.jsx)(e, { className: "h-3.5 w-3.5" })]
44
+ children: ["Open Buy Me a Coffee", /* @__PURE__ */ (0, g.jsx)(n, { className: "h-3.5 w-3.5" })]
45
45
  })]
46
46
  })]
47
47
  }), H = /* @__PURE__ */ (0, g.jsx)("div", {
@@ -49,7 +49,7 @@ function C({ supportUrl: n = "https://www.buymeacoffee.com", creatorId: _, title
49
49
  children: /* @__PURE__ */ (0, g.jsxs)(i, {
50
50
  "aria-label": "Support this project",
51
51
  type: j ?? "button",
52
- className: r("inline-flex h-14 w-14 rounded-full border border-black/15 bg-[#ffdd00] text-black shadow-[0_16px_36px_-18px_rgba(0,0,0,0.8)] transition hover:-translate-y-0.5 hover:scale-105 hover:bg-[#ffe347] focus-visible:ring-2 focus-visible:ring-offset-2 active:translate-y-0 active:scale-95", O, A),
52
+ className: r("inline-flex h-14 w-14 items-center justify-center rounded-full border border-black/15 bg-[#ffdd00] text-black shadow-[0_16px_36px_-18px_rgba(0,0,0,0.8)] transition hover:-translate-y-0.5 hover:scale-105 hover:bg-[#ffe347] focus-visible:ring-2 focus-visible:ring-offset-2 active:translate-y-0 active:scale-95", O, A),
53
53
  onClick: (e) => {
54
54
  M?.(e), e.defaultPrevented || z(!0);
55
55
  },
@@ -1 +1 @@
1
- {"version":3,"file":"support-fab.mjs","names":[],"sources":["../packages/ui-web/src/support-fab.tsx"],"sourcesContent":["'use client';\n\nimport { Coffee, ExternalLink } from 'lucide-react';\nimport * as React from 'react';\nimport { Button } from './button';\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from './dialog';\nimport { Drawer, DrawerContent, DrawerDescription, DrawerHeader, DrawerTitle } from './drawer';\nimport { cn } from './lib/utils';\n\nconst MOBILE_QUERY = '(max-width: 767px)';\n\nconst normalizeBaseUrl = (url: string) => {\n const trimmed = url.trim();\n return trimmed.endsWith('/') ? trimmed.slice(0, -1) : trimmed;\n};\n\nconst sanitizeCreator = (creatorId: string) => creatorId.trim().replace(/^@+/, '');\n\nconst buildPageUrl = (supportUrl: string, creatorId: string) => {\n const base = normalizeBaseUrl(supportUrl);\n const creator = encodeURIComponent(sanitizeCreator(creatorId));\n return `${base}/${creator}`;\n};\n\nconst buildEmbedUrl = (supportUrl: string, creatorId: string) => {\n const base = normalizeBaseUrl(supportUrl);\n const creator = encodeURIComponent(sanitizeCreator(creatorId));\n return `${base}/widget/page/${creator}`;\n};\n\nconst useIsMobile = () => {\n const getInitial = () => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return false;\n }\n return window.matchMedia(MOBILE_QUERY).matches;\n };\n\n const [isMobile, setIsMobile] = React.useState(getInitial);\n\n React.useEffect(() => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return;\n }\n\n const mediaQuery = window.matchMedia(MOBILE_QUERY);\n const onChange = (event: MediaQueryListEvent) => setIsMobile(event.matches);\n\n setIsMobile(mediaQuery.matches);\n mediaQuery.addEventListener('change', onChange);\n\n return () => {\n mediaQuery.removeEventListener('change', onChange);\n };\n }, []);\n\n return isMobile;\n};\n\nexport interface SupportFabProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'> {\n supportUrl?: string;\n creatorId: string;\n title?: string;\n description?: string;\n iframeTitle?: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n positionClassName?: string;\n buttonClassName?: string;\n panelClassName?: string;\n}\n\nexport function SupportFab({\n supportUrl = 'https://www.buymeacoffee.com',\n creatorId,\n title = 'Buy me a coffee',\n description = 'Support the project directly from this panel.',\n iframeTitle = 'Buy Me a Coffee support form',\n open,\n defaultOpen = false,\n onOpenChange,\n positionClassName,\n buttonClassName,\n panelClassName,\n className,\n type,\n onClick,\n ...buttonProps\n}: SupportFabProps) {\n const isMobile = useIsMobile();\n const isControlled = open !== undefined;\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen);\n const isOpen = isControlled ? open : internalOpen;\n\n const setOpen = React.useCallback(\n (nextOpen: boolean) => {\n if (!isControlled) {\n setInternalOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n },\n [isControlled, onOpenChange],\n );\n\n const pageUrl = React.useMemo(() => buildPageUrl(supportUrl, creatorId), [creatorId, supportUrl]);\n const embedUrl = React.useMemo(() => buildEmbedUrl(supportUrl, creatorId), [creatorId, supportUrl]);\n\n const panelBody = (\n <div className=\"flex max-h-[75vh] flex-col gap-3\">\n <div className=\"overflow-hidden rounded-md border\">\n <iframe\n title={iframeTitle}\n src={embedUrl}\n className=\"h-[560px] w-full border-0\"\n loading=\"lazy\"\n referrerPolicy=\"strict-origin-when-cross-origin\"\n />\n </div>\n <div className=\"text-muted-foreground flex items-center justify-between gap-2 text-xs\">\n <span>If the embedded checkout is unavailable, open the support page directly.</span>\n <a\n href={pageUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-foreground inline-flex items-center gap-1 font-medium underline underline-offset-2\"\n >\n Open Buy Me a Coffee\n <ExternalLink className=\"h-3.5 w-3.5\" />\n </a>\n </div>\n </div>\n );\n\n const trigger = (\n <div className={cn('fixed right-6 bottom-6 z-50', positionClassName)}>\n <Button\n aria-label=\"Support this project\"\n type={type ?? 'button'}\n className={cn(\n 'inline-flex h-14 w-14 rounded-full border border-black/15 bg-[#ffdd00] text-black shadow-[0_16px_36px_-18px_rgba(0,0,0,0.8)] transition hover:-translate-y-0.5 hover:scale-105 hover:bg-[#ffe347] focus-visible:ring-2 focus-visible:ring-offset-2 active:translate-y-0 active:scale-95',\n buttonClassName,\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n setOpen(true);\n }\n }}\n {...buttonProps}\n >\n <Coffee className=\"h-6 w-6\" />\n <span className=\"sr-only\">Support this project</span>\n </Button>\n </div>\n );\n\n if (isMobile) {\n return (\n <>\n {trigger}\n <Drawer open={isOpen} onOpenChange={setOpen}>\n <DrawerContent className={cn('mx-auto w-full max-w-xl', panelClassName)}>\n <DrawerHeader>\n <DrawerTitle>{title}</DrawerTitle>\n <DrawerDescription>{description}</DrawerDescription>\n </DrawerHeader>\n <div className=\"px-4 pb-4\">{panelBody}</div>\n </DrawerContent>\n </Drawer>\n </>\n );\n }\n\n return (\n <>\n {trigger}\n <Dialog open={isOpen} onOpenChange={setOpen}>\n <DialogContent className={cn('max-w-xl p-5', panelClassName)}>\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n {panelBody}\n </DialogContent>\n </Dialog>\n </>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"support-fab.mjs","names":[],"sources":["../packages/ui-web/src/support-fab.tsx"],"sourcesContent":["'use client';\n\nimport { Coffee, ExternalLink } from 'lucide-react';\nimport * as React from 'react';\nimport { Button } from './button';\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from './dialog';\nimport { Drawer, DrawerContent, DrawerDescription, DrawerHeader, DrawerTitle } from './drawer';\nimport { cn } from './lib/utils';\n\nconst MOBILE_QUERY = '(max-width: 767px)';\n\nconst normalizeBaseUrl = (url: string) => {\n const trimmed = url.trim();\n return trimmed.endsWith('/') ? trimmed.slice(0, -1) : trimmed;\n};\n\nconst sanitizeCreator = (creatorId: string) => creatorId.trim().replace(/^@+/, '');\n\nconst buildPageUrl = (supportUrl: string, creatorId: string) => {\n const base = normalizeBaseUrl(supportUrl);\n const creator = encodeURIComponent(sanitizeCreator(creatorId));\n return `${base}/${creator}`;\n};\n\nconst buildEmbedUrl = (supportUrl: string, creatorId: string) => {\n const base = normalizeBaseUrl(supportUrl);\n const creator = encodeURIComponent(sanitizeCreator(creatorId));\n return `${base}/widget/page/${creator}`;\n};\n\nconst useIsMobile = () => {\n const getInitial = () => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return false;\n }\n return window.matchMedia(MOBILE_QUERY).matches;\n };\n\n const [isMobile, setIsMobile] = React.useState(getInitial);\n\n React.useEffect(() => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return;\n }\n\n const mediaQuery = window.matchMedia(MOBILE_QUERY);\n const onChange = (event: MediaQueryListEvent) => setIsMobile(event.matches);\n\n setIsMobile(mediaQuery.matches);\n mediaQuery.addEventListener('change', onChange);\n\n return () => {\n mediaQuery.removeEventListener('change', onChange);\n };\n }, []);\n\n return isMobile;\n};\n\nexport interface SupportFabProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'> {\n supportUrl?: string;\n creatorId: string;\n title?: string;\n description?: string;\n iframeTitle?: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n positionClassName?: string;\n buttonClassName?: string;\n panelClassName?: string;\n}\n\nexport function SupportFab({\n supportUrl = 'https://www.buymeacoffee.com',\n creatorId,\n title = 'Buy me a coffee',\n description = 'Support the project directly from this panel.',\n iframeTitle = 'Buy Me a Coffee support form',\n open,\n defaultOpen = false,\n onOpenChange,\n positionClassName,\n buttonClassName,\n panelClassName,\n className,\n type,\n onClick,\n ...buttonProps\n}: SupportFabProps) {\n const isMobile = useIsMobile();\n const isControlled = open !== undefined;\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen);\n const isOpen = isControlled ? open : internalOpen;\n\n const setOpen = React.useCallback(\n (nextOpen: boolean) => {\n if (!isControlled) {\n setInternalOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n },\n [isControlled, onOpenChange],\n );\n\n const pageUrl = React.useMemo(() => buildPageUrl(supportUrl, creatorId), [creatorId, supportUrl]);\n const embedUrl = React.useMemo(() => buildEmbedUrl(supportUrl, creatorId), [creatorId, supportUrl]);\n\n const panelBody = (\n <div className=\"flex max-h-[75vh] flex-col gap-3\">\n <div className=\"overflow-hidden rounded-md border\">\n <iframe\n title={iframeTitle}\n src={embedUrl}\n className=\"h-[560px] w-full border-0\"\n loading=\"lazy\"\n referrerPolicy=\"strict-origin-when-cross-origin\"\n />\n </div>\n <div className=\"text-muted-foreground flex items-center justify-between gap-2 text-xs\">\n <span>If the embedded checkout is unavailable, open the support page directly.</span>\n <a\n href={pageUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-foreground inline-flex items-center gap-1 font-medium underline underline-offset-2\"\n >\n Open Buy Me a Coffee\n <ExternalLink className=\"h-3.5 w-3.5\" />\n </a>\n </div>\n </div>\n );\n\n const trigger = (\n <div className={cn('fixed right-6 bottom-6 z-50', positionClassName)}>\n <Button\n aria-label=\"Support this project\"\n type={type ?? 'button'}\n className={cn(\n 'inline-flex h-14 w-14 items-center justify-center rounded-full border border-black/15 bg-[#ffdd00] text-black shadow-[0_16px_36px_-18px_rgba(0,0,0,0.8)] transition hover:-translate-y-0.5 hover:scale-105 hover:bg-[#ffe347] focus-visible:ring-2 focus-visible:ring-offset-2 active:translate-y-0 active:scale-95',\n buttonClassName,\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n setOpen(true);\n }\n }}\n {...buttonProps}\n >\n <Coffee className=\"h-6 w-6\" />\n <span className=\"sr-only\">Support this project</span>\n </Button>\n </div>\n );\n\n if (isMobile) {\n return (\n <>\n {trigger}\n <Drawer open={isOpen} onOpenChange={setOpen}>\n <DrawerContent className={cn('mx-auto w-full max-w-xl', panelClassName)}>\n <DrawerHeader>\n <DrawerTitle>{title}</DrawerTitle>\n <DrawerDescription>{description}</DrawerDescription>\n </DrawerHeader>\n <div className=\"px-4 pb-4\">{panelBody}</div>\n </DrawerContent>\n </Drawer>\n </>\n );\n }\n\n return (\n <>\n {trigger}\n <Dialog open={isOpen} onOpenChange={setOpen}>\n <DialogContent className={cn('max-w-xl p-5', panelClassName)}>\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n {panelBody}\n </DialogContent>\n </Dialog>\n </>\n );\n}\n"],"mappings":"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"}
package/dist/switch.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-3cr8xz0x.js"),n=require("./utils-DU-Y_pvO.js");let r=require("react");r=e.r(r);var i=t.vr(),a=r.forwardRef(({className:e,...r},a)=>(0,i.jsx)(t.y,{className:n.t(`peer focus-visible:ring-ring focus-visible:ring-offset-background data-[state=checked]:bg-primary data-[state=unchecked]:bg-input inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50`,e),...r,ref:a,children:(0,i.jsx)(t.b,{className:n.t(`bg-background pointer-events-none block h-4 w-4 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0`)})}));a.displayName=t.y?.displayName||`Switch`,exports.Switch=a;
1
+ "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-UfQavLF9.js"),n=require("./utils-D7tt_q-u.js");let r=require("react");r=e.r(r);var i=t.Jr();function a({className:e,size:r=`default`,...a}){return(0,i.jsx)(t.Et,{"data-slot":`switch`,"data-size":r,className:n.t(`peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all 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]`,e),...a,children:(0,i.jsx)(t.Dt,{"data-slot":`switch-thumb`,className:`bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground 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-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-[state=unchecked]:translate-x-0 group-data-[size=sm]/switch:data-[state=unchecked]:translate-x-0 rtl:group-data-[size=default]/switch:data-[state=checked]:-translate-x-[calc(100%-2px)] rtl:group-data-[size=sm]/switch:data-[state=checked]:-translate-x-[calc(100%-2px)] rtl:group-data-[size=default]/switch:data-[state=unchecked]:-translate-x-0 rtl:group-data-[size=sm]/switch:data-[state=unchecked]:-translate-x-0`})})}exports.Switch=a;
2
2
  //# sourceMappingURL=switch.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch.cjs","names":[],"sources":["../packages/ui-web/src/switch.tsx"],"sourcesContent":["'use client';\n\nimport * as SwitchPrimitives from '@radix-ui/react-switch';\nimport * as React from 'react';\n\nimport { SwitchBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> & SwitchBaseProps\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n 'peer focus-visible:ring-ring focus-visible:ring-offset-background data-[state=checked]:bg-primary data-[state=unchecked]:bg-input inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n 'bg-background pointer-events-none block h-4 w-4 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0',\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root?.displayName || 'Switch';\n\nexport { Switch };\nexport type { SwitchBaseProps as SwitchProps };\n"],"mappings":"+PAQM,EAAS,EAAM,YAGlB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CACE,UAAW,EAAA,EACT,8XACA,CACF,EACA,GAAI,EACC,gBAEL,EAAA,EAAA,KAAA,EAAA,EAAA,CACE,UAAW,EAAA,EACT,4KACF,CACD,CAAA,CACoB,CAAA,CACxB,EACD,EAAO,YAAA,EAAA,GAAqC,aAAe"}
1
+ {"version":3,"file":"switch.cjs","names":[],"sources":["../packages/ui-web/src/switch.tsx"],"sourcesContent":["'use client';\n\nimport { Switch as SwitchPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from './lib/utils';\n\nimport type { SwitchBaseProps } from '@gv-tech/ui-core';\n\nfunction Switch({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n 'peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all 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]',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground 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-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-[state=unchecked]:translate-x-0 group-data-[size=sm]/switch:data-[state=unchecked]:translate-x-0 rtl:group-data-[size=default]/switch:data-[state=checked]:-translate-x-[calc(100%-2px)] rtl:group-data-[size=sm]/switch:data-[state=checked]:-translate-x-[calc(100%-2px)] rtl:group-data-[size=default]/switch:data-[state=unchecked]:-translate-x-0 rtl:group-data-[size=sm]/switch:data-[state=unchecked]:-translate-x-0\"\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n\n// Verify that the component satisfies the ui-core contract\nconst _verifySwitchContract: SwitchBaseProps = {} as unknown as React.ComponentProps<typeof Switch>;\n"],"mappings":"+PASA,SAAS,EAAO,CACd,YACA,OAAO,UACP,GAAG,GAGF,CACD,OACE,EAAA,EAAA,KAAA,EAAA,GAAA,CACE,YAAU,SACV,YAAW,EACX,UAAW,EAAA,EACT,8qBACA,CACF,EACA,GAAI,YAEJ,EAAA,EAAA,KAAA,EAAA,GAAA,CACE,YAAU,eACV,UAAU,21BACX,CAAA,CACmB,CAAA,CAE1B"}
package/dist/switch.mjs CHANGED
@@ -1,17 +1,23 @@
1
1
  "use client";
2
2
  "use client";
3
- import { b as e, vr as t, y as n } from "./vendor-ChPUVHXi.mjs";
4
- import { t as r } from "./utils-BsD1_fYL.mjs";
5
- import * as i from "react";
3
+ import { Dt as e, Et as t, Jr as n } from "./vendor-B6CFfDyk.mjs";
4
+ import { t as r } from "./utils-IYJAOUsw.mjs";
5
+ import "react";
6
6
  //#region packages/ui-web/src/switch.tsx
7
- var a = t(), o = i.forwardRef(({ className: t, ...i }, o) => /* @__PURE__ */ (0, a.jsx)(n, {
8
- className: r("peer focus-visible:ring-ring focus-visible:ring-offset-background data-[state=checked]:bg-primary data-[state=unchecked]:bg-input inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50", t),
9
- ...i,
10
- ref: o,
11
- children: /* @__PURE__ */ (0, a.jsx)(e, { className: r("bg-background pointer-events-none block h-4 w-4 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0") })
12
- }));
13
- o.displayName = n?.displayName || "Switch";
7
+ var i = n();
8
+ function a({ className: n, size: a = "default", ...o }) {
9
+ return /* @__PURE__ */ (0, i.jsx)(t, {
10
+ "data-slot": "switch",
11
+ "data-size": a,
12
+ className: r("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all 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]", n),
13
+ ...o,
14
+ children: /* @__PURE__ */ (0, i.jsx)(e, {
15
+ "data-slot": "switch-thumb",
16
+ className: "bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground 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-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-[state=unchecked]:translate-x-0 group-data-[size=sm]/switch:data-[state=unchecked]:translate-x-0 rtl:group-data-[size=default]/switch:data-[state=checked]:-translate-x-[calc(100%-2px)] rtl:group-data-[size=sm]/switch:data-[state=checked]:-translate-x-[calc(100%-2px)] rtl:group-data-[size=default]/switch:data-[state=unchecked]:-translate-x-0 rtl:group-data-[size=sm]/switch:data-[state=unchecked]:-translate-x-0"
17
+ })
18
+ });
19
+ }
14
20
  //#endregion
15
- export { o as Switch };
21
+ export { a as Switch };
16
22
 
17
23
  //# sourceMappingURL=switch.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch.mjs","names":[],"sources":["../packages/ui-web/src/switch.tsx"],"sourcesContent":["'use client';\n\nimport * as SwitchPrimitives from '@radix-ui/react-switch';\nimport * as React from 'react';\n\nimport { SwitchBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> & SwitchBaseProps\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n 'peer focus-visible:ring-ring focus-visible:ring-offset-background data-[state=checked]:bg-primary data-[state=unchecked]:bg-input inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n 'bg-background pointer-events-none block h-4 w-4 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0',\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root?.displayName || 'Switch';\n\nexport { Switch };\nexport type { SwitchBaseProps as SwitchProps };\n"],"mappings":";;;;;;aAQM,IAAS,EAAM,YAGlB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CACE,WAAW,EACT,+XACA,CACF;CACA,GAAI;CACC;WAEL,iBAAA,GAAA,EAAA,KAAC,GAAD,EACE,WAAW,EACT,4KACF,EACD,CAAA;AACoB,CAAA,CACxB;AACD,EAAO,cAAA,GAAqC,eAAe"}
1
+ {"version":3,"file":"switch.mjs","names":[],"sources":["../packages/ui-web/src/switch.tsx"],"sourcesContent":["'use client';\n\nimport { Switch as SwitchPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from './lib/utils';\n\nimport type { SwitchBaseProps } from '@gv-tech/ui-core';\n\nfunction Switch({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n 'peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all 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]',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground 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-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-[state=unchecked]:translate-x-0 group-data-[size=sm]/switch:data-[state=unchecked]:translate-x-0 rtl:group-data-[size=default]/switch:data-[state=checked]:-translate-x-[calc(100%-2px)] rtl:group-data-[size=sm]/switch:data-[state=checked]:-translate-x-[calc(100%-2px)] rtl:group-data-[size=default]/switch:data-[state=unchecked]:-translate-x-0 rtl:group-data-[size=sm]/switch:data-[state=unchecked]:-translate-x-0\"\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n\n// Verify that the component satisfies the ui-core contract\nconst _verifySwitchContract: SwitchBaseProps = {} as unknown as React.ComponentProps<typeof Switch>;\n"],"mappings":";;;;;;;AASA,SAAS,EAAO,EACd,cACA,UAAO,WACP,GAAG,KAGF;CACD,OACE,iBAAA,GAAA,EAAA,KAAC,GAAD;EACE,aAAU;EACV,aAAW;EACX,WAAW,EACT,+qBACA,CACF;EACA,GAAI;YAEJ,iBAAA,GAAA,EAAA,KAAC,GAAD;GACE,aAAU;GACV,WAAU;EACX,CAAA;CACmB,CAAA;AAE1B"}
@@ -1,2 +1,2 @@
1
- "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-3cr8xz0x.js"),n=require("./utils-DU-Y_pvO.js");let r=require("react");r=e.r(r);var i=t.vr(),a=r.createContext(null);function o(){let e=r.useContext(a);if(!e)throw Error(`TOC components must be used within a TableOfContents provider`);return e}function s({children:e,className:t,activeId:o,minLevel:s=1,maxLevel:u=4,selector:d=`h1, h2, h3, h4, h5, h6`}){let[f,p]=r.useState([]),[m,h]=r.useState(null),g=r.useMemo(()=>f.find(e=>e.id===m)?.text||null,[f,m]),_=r.useCallback(e=>{p(t=>JSON.stringify(t)===JSON.stringify(e)?t:e)},[]),v=r.useMemo(()=>({headings:f,activeId:o||m,activeHeadingText:g,registerHeadings:_,setActiveId:h,config:{minLevel:s,maxLevel:u,selector:d,className:t}}),[f,m,o,g,_,s,u,d,t]);return(0,i.jsx)(a.Provider,{value:v,children:(0,i.jsx)(`div`,{className:n.t(`relative`,t),children:e||(0,i.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,i.jsx)(c,{}),(0,i.jsx)(l,{children:null})]})})})}function c({className:e}){let{headings:t,activeId:a,activeHeadingText:s}=o(),[c,l]=r.useState(!1);if(r.useEffect(()=>{if(!c)return;let e=()=>{l(!1)};return window.addEventListener(`scroll`,e,{passive:!0}),()=>window.removeEventListener(`scroll`,e)},[c]),t.length===0)return null;let u=Math.min(...t.map(e=>e.level)),d=(0,i.jsx)(`ul`,{className:`m-0 list-none text-sm`,children:t.map(e=>{let t=a===e.id,r=`${(e.level-u)*1}rem`;return(0,i.jsx)(`li`,{className:`mt-0 pt-2`,children:(0,i.jsx)(`a`,{href:`#${e.id}`,onClick:()=>l(!1),className:n.t(`hover:text-foreground inline-block no-underline transition-colors`,t?`text-primary font-medium`:`text-muted-foreground`),style:{paddingLeft:r},children:e.text})},e.id)})});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(`div`,{className:n.t(`bg-background/95 sticky top-0 z-40 border-b backdrop-blur xl:hidden`,e),children:[(0,i.jsxs)(`button`,{onClick:()=>l(!c),className:`flex w-full items-center justify-between px-4 py-3 text-left`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 overflow-hidden`,children:[(0,i.jsx)(`span`,{className:`text-muted-foreground text-xs font-semibold tracking-wider uppercase`,children:`On this page:`}),(0,i.jsx)(`span`,{className:`truncate text-sm font-medium`,children:s||`Overview`})]}),(0,i.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:n.t(`shrink-0 transition-transform duration-200`,c&&`rotate-180`),children:(0,i.jsx)(`path`,{d:`m6 9 6 6 6-6`})})]}),c&&(0,i.jsx)(`div`,{className:`bg-background border-t px-4 pt-2 pb-6`,children:(0,i.jsx)(`nav`,{"aria-label":`Table of contents mobile`,children:d})})]}),(0,i.jsx)(`nav`,{className:n.t(`hidden xl:block`,e),"aria-label":`Table of contents`,children:d})]})}function l({children:e,className:t}){let{registerHeadings:a,setActiveId:s,config:c}=o(),l=r.useRef(null);return r.useEffect(()=>{let e=l.current;if(!e)return;let t=()=>{let t=Array.from(e.querySelectorAll(c.selector||`h1, h2, h3, h4, h5, h6`)).filter(e=>{let t=parseInt(e.tagName.charAt(1),10);return t>=(c.minLevel??1)&&t<=(c.maxLevel??4)});return a(t.map(e=>(e.id||=n.n(e.textContent||`heading`),{id:e.id,text:e.textContent||``,level:parseInt(e.tagName.charAt(1),10)}))),t},r=t(),i=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&s(e.target.id)})},{rootMargin:`0px 0px -80% 0px`,threshold:.1});r.forEach(e=>i.observe(e));let o=new MutationObserver(()=>{let e=t();i.disconnect(),e.forEach(e=>i.observe(e))});return o.observe(e,{childList:!0,subtree:!0,characterData:!0}),()=>{i.disconnect(),o.disconnect()}},[c.selector,c.minLevel,c.maxLevel,a,s]),(0,i.jsx)(`div`,{ref:l,className:t,children:e})}s.List=c,s.Content=l,exports.TableOfContents=s,exports.TableOfContentsContent=l,exports.TableOfContentsList=c;
1
+ "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-UfQavLF9.js"),n=require("./utils-D7tt_q-u.js");let r=require("react");r=e.r(r);var i=t.Jr(),a=r.createContext(null);function o(){let e=r.useContext(a);if(!e)throw Error(`TOC components must be used within a TableOfContents provider`);return e}function s({children:e,className:t,activeId:o,minLevel:s=1,maxLevel:u=4,selector:d=`h1, h2, h3, h4, h5, h6`}){let[f,p]=r.useState([]),[m,h]=r.useState(null),g=r.useMemo(()=>f.find(e=>e.id===m)?.text||null,[f,m]),_=r.useCallback(e=>{p(t=>JSON.stringify(t)===JSON.stringify(e)?t:e)},[]),v=r.useMemo(()=>({headings:f,activeId:o||m,activeHeadingText:g,registerHeadings:_,setActiveId:h,config:{minLevel:s,maxLevel:u,selector:d,className:t}}),[f,m,o,g,_,s,u,d,t]);return(0,i.jsx)(a.Provider,{value:v,children:(0,i.jsx)(`div`,{className:n.t(`relative`,t),children:e||(0,i.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,i.jsx)(c,{}),(0,i.jsx)(l,{children:null})]})})})}function c({className:e}){let{headings:t,activeId:a,activeHeadingText:s}=o(),[c,l]=r.useState(!1);if(r.useEffect(()=>{if(!c)return;let e=()=>{l(!1)};return window.addEventListener(`scroll`,e,{passive:!0}),()=>window.removeEventListener(`scroll`,e)},[c]),t.length===0)return null;let u=Math.min(...t.map(e=>e.level)),d=(0,i.jsx)(`ul`,{className:`m-0 list-none text-sm`,children:t.map(e=>{let t=a===e.id,r=`${(e.level-u)*1}rem`;return(0,i.jsx)(`li`,{className:`mt-0 pt-2`,children:(0,i.jsx)(`a`,{href:`#${e.id}`,onClick:()=>l(!1),className:n.t(`hover:text-foreground inline-block no-underline transition-colors`,t?`text-primary font-medium`:`text-muted-foreground`),style:{paddingLeft:r},children:e.text})},e.id)})});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(`div`,{className:n.t(`bg-background/95 sticky top-0 z-40 border-b backdrop-blur xl:hidden`,e),children:[(0,i.jsxs)(`button`,{onClick:()=>l(!c),className:`flex w-full items-center justify-between px-4 py-3 text-left`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 overflow-hidden`,children:[(0,i.jsx)(`span`,{className:`text-muted-foreground text-xs font-semibold tracking-wider uppercase`,children:`On this page:`}),(0,i.jsx)(`span`,{className:`truncate text-sm font-medium`,children:s||`Overview`})]}),(0,i.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:n.t(`shrink-0 transition-transform duration-200`,c&&`rotate-180`),children:(0,i.jsx)(`path`,{d:`m6 9 6 6 6-6`})})]}),c&&(0,i.jsx)(`div`,{className:`bg-background border-t px-4 pt-2 pb-6`,children:(0,i.jsx)(`nav`,{"aria-label":`Table of contents mobile`,children:d})})]}),(0,i.jsx)(`nav`,{className:n.t(`hidden xl:block`,e),"aria-label":`Table of contents`,children:d})]})}function l({children:e,className:t}){let{registerHeadings:a,setActiveId:s,config:c}=o(),l=r.useRef(null);return r.useEffect(()=>{let e=l.current;if(!e)return;let t=()=>{let t=Array.from(e.querySelectorAll(c.selector||`h1, h2, h3, h4, h5, h6`)).filter(e=>{let t=parseInt(e.tagName.charAt(1),10);return t>=(c.minLevel??1)&&t<=(c.maxLevel??4)});return a(t.map(e=>(e.id||=n.n(e.textContent||`heading`),{id:e.id,text:e.textContent||``,level:parseInt(e.tagName.charAt(1),10)}))),t},r=t(),i=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&s(e.target.id)})},{rootMargin:`0px 0px -80% 0px`,threshold:.1});r.forEach(e=>i.observe(e));let o=new MutationObserver(()=>{let e=t();i.disconnect(),e.forEach(e=>i.observe(e))});return o.observe(e,{childList:!0,subtree:!0,characterData:!0}),()=>{i.disconnect(),o.disconnect()}},[c.selector,c.minLevel,c.maxLevel,a,s]),(0,i.jsx)(`div`,{ref:l,className:t,children:e})}s.List=c,s.Content=l,exports.TableOfContents=s,exports.TableOfContentsContent=l,exports.TableOfContentsList=c;
2
2
  //# sourceMappingURL=table-of-contents.cjs.map
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  "use client";
3
- import { vr as e } from "./vendor-ChPUVHXi.mjs";
4
- import { n as t, t as n } from "./utils-BsD1_fYL.mjs";
3
+ import { Jr as e } from "./vendor-B6CFfDyk.mjs";
4
+ import { n as t, t as n } from "./utils-IYJAOUsw.mjs";
5
5
  import * as r from "react";
6
6
  //#region packages/ui-web/src/table-of-contents.tsx
7
7
  var i = e(), a = r.createContext(null);