@g4rcez/components 4.0.2 → 4.1.1

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 (384) hide show
  1. package/ai/SKILL.md +120 -153
  2. package/ai/docs/Alert.md +47 -48
  3. package/ai/docs/AnimatedList.md +88 -87
  4. package/ai/docs/Autocomplete.md +102 -106
  5. package/ai/docs/Button.md +33 -33
  6. package/ai/docs/Calendar.md +67 -101
  7. package/ai/docs/Card.md +59 -55
  8. package/ai/docs/Checkbox.md +77 -82
  9. package/ai/docs/CommandPalette.md +154 -172
  10. package/ai/docs/DatePicker.md +45 -64
  11. package/ai/docs/Dropdown.md +98 -126
  12. package/ai/docs/Empty.md +41 -44
  13. package/ai/docs/Expand.md +40 -54
  14. package/ai/docs/FileUpload.md +102 -109
  15. package/ai/docs/Form.md +35 -29
  16. package/ai/docs/FormReset.md +37 -37
  17. package/ai/docs/Heading.md +4 -6
  18. package/ai/docs/Input.md +73 -98
  19. package/ai/docs/InputField.md +67 -67
  20. package/ai/docs/List.md +88 -85
  21. package/ai/docs/Menu.md +62 -60
  22. package/ai/docs/Modal.md +129 -136
  23. package/ai/docs/MultiSelect.md +65 -84
  24. package/ai/docs/Notifications.md +96 -96
  25. package/ai/docs/PageCalendar.md +88 -97
  26. package/ai/docs/Polymorph.md +25 -41
  27. package/ai/docs/Progress.md +55 -51
  28. package/ai/docs/Radiobox.md +49 -41
  29. package/ai/docs/RenderOnView.md +26 -32
  30. package/ai/docs/Resizable.md +60 -65
  31. package/ai/docs/Select.md +158 -158
  32. package/ai/docs/Shortcut.md +14 -14
  33. package/ai/docs/Skeleton.md +56 -60
  34. package/ai/docs/Slider.md +26 -49
  35. package/ai/docs/Slot.md +15 -17
  36. package/ai/docs/Spinner.md +17 -15
  37. package/ai/docs/Stats.md +44 -42
  38. package/ai/docs/Step.md +60 -60
  39. package/ai/docs/Switch.md +44 -54
  40. package/ai/docs/Table.md +124 -136
  41. package/ai/docs/Tabs.md +90 -90
  42. package/ai/docs/Tag.md +63 -65
  43. package/ai/docs/TaskList.md +40 -50
  44. package/ai/docs/Textarea.md +47 -70
  45. package/ai/docs/Timeline.md +98 -96
  46. package/ai/docs/Toolbar.md +46 -46
  47. package/ai/docs/Tooltip.md +103 -103
  48. package/ai/docs/Typography.md +55 -55
  49. package/ai/docs/Wizard.md +104 -109
  50. package/ai/docs/index.md +116 -116
  51. package/dist/autocomplete-DcTNOwyg.js +393 -0
  52. package/dist/autocomplete-DcTNOwyg.js.map +1 -0
  53. package/dist/{calendar-B5lSd0ID.js → calendar-BJMHRoy2.js} +104 -105
  54. package/dist/calendar-BJMHRoy2.js.map +1 -0
  55. package/dist/components/core/button.js +10 -10
  56. package/dist/components/core/button.js.map +1 -1
  57. package/dist/components/core/tag.js +4 -4
  58. package/dist/components/core/tag.js.map +1 -1
  59. package/dist/components/display/alert.js +48 -46
  60. package/dist/components/display/alert.js.map +1 -1
  61. package/dist/components/display/calendar.js +6 -6
  62. package/dist/components/display/card.js +2 -2
  63. package/dist/components/display/card.js.map +1 -1
  64. package/dist/components/display/list.js +1 -1
  65. package/dist/components/display/list.js.map +1 -1
  66. package/dist/components/display/notifications.js +3 -3
  67. package/dist/components/display/stats.js +1 -1
  68. package/dist/components/display/tabs.js +2 -2
  69. package/dist/components/display/timeline.js +1 -1
  70. package/dist/components/floating/dropdown.js +25 -17
  71. package/dist/components/floating/dropdown.js.map +1 -1
  72. package/dist/components/floating/expand.js +7 -7
  73. package/dist/components/floating/expand.js.map +1 -1
  74. package/dist/components/floating/menu.js +10 -10
  75. package/dist/components/floating/menu.js.map +1 -1
  76. package/dist/components/floating/modal.js +106 -102
  77. package/dist/components/floating/modal.js.map +1 -1
  78. package/dist/components/floating/tooltip.js +14 -14
  79. package/dist/components/floating/tooltip.js.map +1 -1
  80. package/dist/components/form/autocomplete.js +6 -6
  81. package/dist/components/form/checkbox.js +1 -1
  82. package/dist/components/form/date-picker.js +5 -5
  83. package/dist/components/form/file-upload.js +2 -2
  84. package/dist/components/form/form.js.map +1 -1
  85. package/dist/components/form/input.js +1 -1
  86. package/dist/components/form/radiobox.js +1 -1
  87. package/dist/components/form/select.js +3 -3
  88. package/dist/components/form/switch.js +2 -2
  89. package/dist/components/form/switch.js.map +1 -1
  90. package/dist/components/table/table.js +3 -3
  91. package/dist/{date-picker-DwNo22lx.js → date-picker-Bnl07nd8.js} +8 -6
  92. package/dist/date-picker-Bnl07nd8.js.map +1 -0
  93. package/dist/{dom-Dl8XH0CK.js → dom-CyQHY7ID.js} +66 -61
  94. package/dist/dom-CyQHY7ID.js.map +1 -0
  95. package/dist/{file-upload-Brf2NkLr.js → file-upload-93d5DR4q.js} +139 -129
  96. package/dist/file-upload-93d5DR4q.js.map +1 -0
  97. package/dist/{floating-ui.react-QNHG9W4N.js → floating-ui.react-M2PGXLDp.js} +8 -8
  98. package/dist/floating-ui.react-M2PGXLDp.js.map +1 -0
  99. package/dist/{fns-D2eyJKd5.js → fns-C7Dt27Qd.js} +2 -2
  100. package/dist/fns-C7Dt27Qd.js.map +1 -0
  101. package/dist/index-BJ1ayTam.js +126 -0
  102. package/dist/index-BJ1ayTam.js.map +1 -0
  103. package/dist/index-C-PuFUZi.js.map +1 -1
  104. package/dist/{index-BelDtX5M.js → index-DDeQW0JW.js} +399 -404
  105. package/dist/index-DDeQW0JW.js.map +1 -0
  106. package/dist/index-DE4shK8D.js +215 -0
  107. package/dist/index-DE4shK8D.js.map +1 -0
  108. package/dist/{index-DJSMaZR4.js → index-DlJ_2RBL.js} +2 -2
  109. package/dist/index-DlJ_2RBL.js.map +1 -0
  110. package/dist/index.css +1 -1
  111. package/dist/index.esm-BaIwleSE.js.map +1 -1
  112. package/dist/index.js +2810 -2756
  113. package/dist/index.js.map +1 -1
  114. package/dist/{input-CrGrSnUt.js → input-_MVxmIpu.js} +116 -114
  115. package/dist/input-_MVxmIpu.js.map +1 -0
  116. package/dist/{input-field-5vYcz5tT.js → input-field-CDCOODOl.js} +63 -47
  117. package/dist/input-field-CDCOODOl.js.map +1 -0
  118. package/dist/notifications-Dp0ydKJS.js +2576 -0
  119. package/dist/notifications-Dp0ydKJS.js.map +1 -0
  120. package/dist/polymorph-B5n9fs_K.js.map +1 -1
  121. package/dist/preset/plugin.tailwind.d.ts.map +1 -1
  122. package/dist/preset/plugin.tailwind.js +20 -18
  123. package/dist/preset/preset.tailwind.js +24 -25
  124. package/dist/preset/src/styles/common.js +6 -3
  125. package/dist/preset/src/styles/dark.d.ts.map +1 -1
  126. package/dist/preset/src/styles/dark.js +9 -5
  127. package/dist/preset/src/styles/design-tokens.js +68 -89
  128. package/dist/preset/src/styles/light.d.ts.map +1 -1
  129. package/dist/preset/src/styles/light.js +9 -5
  130. package/dist/preset/src/styles/theme.js +7 -4
  131. package/dist/preset/src/styles/theme.types.d.ts +2 -1
  132. package/dist/preset/src/styles/theme.types.d.ts.map +1 -1
  133. package/dist/preset/src/styles/theme.types.js +2 -1
  134. package/dist/skeleton-BjJobYYf.js +24 -0
  135. package/dist/skeleton-BjJobYYf.js.map +1 -0
  136. package/dist/slot-CRyweuj0.js.map +1 -1
  137. package/dist/styles/common.js +6 -3
  138. package/dist/styles/dark.d.ts.map +1 -1
  139. package/dist/styles/dark.js +9 -5
  140. package/dist/styles/design-tokens.js +68 -89
  141. package/dist/styles/light.d.ts.map +1 -1
  142. package/dist/styles/light.js +9 -5
  143. package/dist/styles/theme.js +7 -4
  144. package/dist/styles/theme.types.d.ts +2 -1
  145. package/dist/styles/theme.types.d.ts.map +1 -1
  146. package/dist/styles/theme.types.js +2 -1
  147. package/dist/tabs-B0g7YtQv.js +123 -0
  148. package/dist/tabs-B0g7YtQv.js.map +1 -0
  149. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  150. package/dist/{context-BFXNJVn2.js → use-translations-DSltA7H_.js} +38 -30
  151. package/dist/use-translations-DSltA7H_.js.map +1 -0
  152. package/package.json +99 -86
  153. package/ai/docs/TransferList.md +0 -142
  154. package/dist/autocomplete-Cn9Z2hLq.js +0 -375
  155. package/dist/autocomplete-Cn9Z2hLq.js.map +0 -1
  156. package/dist/calendar-B5lSd0ID.js.map +0 -1
  157. package/dist/components/core/button.d.ts +0 -77
  158. package/dist/components/core/button.d.ts.map +0 -1
  159. package/dist/components/core/heading.d.ts +0 -3
  160. package/dist/components/core/heading.d.ts.map +0 -1
  161. package/dist/components/core/polymorph.d.ts +0 -10
  162. package/dist/components/core/polymorph.d.ts.map +0 -1
  163. package/dist/components/core/render-on-view.d.ts +0 -7
  164. package/dist/components/core/render-on-view.d.ts.map +0 -1
  165. package/dist/components/core/resizable.d.ts +0 -3
  166. package/dist/components/core/resizable.d.ts.map +0 -1
  167. package/dist/components/core/slot.d.ts +0 -16
  168. package/dist/components/core/slot.d.ts.map +0 -1
  169. package/dist/components/core/tag.d.ts +0 -35
  170. package/dist/components/core/tag.d.ts.map +0 -1
  171. package/dist/components/core/typography.d.ts +0 -25
  172. package/dist/components/core/typography.d.ts.map +0 -1
  173. package/dist/components/display/alert.d.ts +0 -28
  174. package/dist/components/display/alert.d.ts.map +0 -1
  175. package/dist/components/display/calendar.d.ts +0 -42
  176. package/dist/components/display/calendar.d.ts.map +0 -1
  177. package/dist/components/display/card.d.ts +0 -29
  178. package/dist/components/display/card.d.ts.map +0 -1
  179. package/dist/components/display/empty.d.ts +0 -8
  180. package/dist/components/display/empty.d.ts.map +0 -1
  181. package/dist/components/display/list.d.ts +0 -16
  182. package/dist/components/display/list.d.ts.map +0 -1
  183. package/dist/components/display/notifications.d.ts +0 -27
  184. package/dist/components/display/notifications.d.ts.map +0 -1
  185. package/dist/components/display/progress.d.ts +0 -13
  186. package/dist/components/display/progress.d.ts.map +0 -1
  187. package/dist/components/display/shortcut.d.ts +0 -4
  188. package/dist/components/display/shortcut.d.ts.map +0 -1
  189. package/dist/components/display/skeleton.d.ts +0 -12
  190. package/dist/components/display/skeleton.d.ts.map +0 -1
  191. package/dist/components/display/spinner.d.ts +0 -5
  192. package/dist/components/display/spinner.d.ts.map +0 -1
  193. package/dist/components/display/stats.d.ts +0 -12
  194. package/dist/components/display/stats.d.ts.map +0 -1
  195. package/dist/components/display/step.d.ts +0 -24
  196. package/dist/components/display/step.d.ts.map +0 -1
  197. package/dist/components/display/tabs.d.ts +0 -24
  198. package/dist/components/display/tabs.d.ts.map +0 -1
  199. package/dist/components/display/timeline.d.ts +0 -10
  200. package/dist/components/display/timeline.d.ts.map +0 -1
  201. package/dist/components/floating/command-palette.d.ts +0 -49
  202. package/dist/components/floating/command-palette.d.ts.map +0 -1
  203. package/dist/components/floating/dropdown.d.ts +0 -15
  204. package/dist/components/floating/dropdown.d.ts.map +0 -1
  205. package/dist/components/floating/expand.d.ts +0 -11
  206. package/dist/components/floating/expand.d.ts.map +0 -1
  207. package/dist/components/floating/menu.d.ts +0 -52
  208. package/dist/components/floating/menu.d.ts.map +0 -1
  209. package/dist/components/floating/modal.d.ts +0 -60
  210. package/dist/components/floating/modal.d.ts.map +0 -1
  211. package/dist/components/floating/toolbar.d.ts +0 -6
  212. package/dist/components/floating/toolbar.d.ts.map +0 -1
  213. package/dist/components/floating/tooltip.d.ts +0 -17
  214. package/dist/components/floating/tooltip.d.ts.map +0 -1
  215. package/dist/components/floating/wizard.d.ts +0 -26
  216. package/dist/components/floating/wizard.d.ts.map +0 -1
  217. package/dist/components/form/autocomplete.d.ts +0 -16
  218. package/dist/components/form/autocomplete.d.ts.map +0 -1
  219. package/dist/components/form/checkbox.d.ts +0 -12
  220. package/dist/components/form/checkbox.d.ts.map +0 -1
  221. package/dist/components/form/date-picker.d.ts +0 -10
  222. package/dist/components/form/date-picker.d.ts.map +0 -1
  223. package/dist/components/form/file-upload.d.ts +0 -15
  224. package/dist/components/form/file-upload.d.ts.map +0 -1
  225. package/dist/components/form/form.d.ts +0 -3
  226. package/dist/components/form/form.d.ts.map +0 -1
  227. package/dist/components/form/formReset.d.ts +0 -2
  228. package/dist/components/form/formReset.d.ts.map +0 -1
  229. package/dist/components/form/free-text.d.ts +0 -11
  230. package/dist/components/form/free-text.d.ts.map +0 -1
  231. package/dist/components/form/input-field.d.ts +0 -34
  232. package/dist/components/form/input-field.d.ts.map +0 -1
  233. package/dist/components/form/input.d.ts +0 -52
  234. package/dist/components/form/input.d.ts.map +0 -1
  235. package/dist/components/form/multi-select.d.ts +0 -19
  236. package/dist/components/form/multi-select.d.ts.map +0 -1
  237. package/dist/components/form/radiobox.d.ts +0 -7
  238. package/dist/components/form/radiobox.d.ts.map +0 -1
  239. package/dist/components/form/select.d.ts +0 -13
  240. package/dist/components/form/select.d.ts.map +0 -1
  241. package/dist/components/form/slider.d.ts +0 -7
  242. package/dist/components/form/slider.d.ts.map +0 -1
  243. package/dist/components/form/switch.d.ts +0 -9
  244. package/dist/components/form/switch.d.ts.map +0 -1
  245. package/dist/components/form/task-list.d.ts +0 -3
  246. package/dist/components/form/task-list.d.ts.map +0 -1
  247. package/dist/components/form/textarea.d.ts +0 -6
  248. package/dist/components/form/textarea.d.ts.map +0 -1
  249. package/dist/components/form/transfer-list.d.ts +0 -14
  250. package/dist/components/form/transfer-list.d.ts.map +0 -1
  251. package/dist/components/form/transfer-list.js +0 -55
  252. package/dist/components/form/transfer-list.js.map +0 -1
  253. package/dist/components/index.d.ts +0 -46
  254. package/dist/components/index.d.ts.map +0 -1
  255. package/dist/components/page-calendar/calendar-header.d.ts +0 -16
  256. package/dist/components/page-calendar/calendar-header.d.ts.map +0 -1
  257. package/dist/components/page-calendar/day-view.d.ts +0 -12
  258. package/dist/components/page-calendar/day-view.d.ts.map +0 -1
  259. package/dist/components/page-calendar/event-pill.d.ts +0 -9
  260. package/dist/components/page-calendar/event-pill.d.ts.map +0 -1
  261. package/dist/components/page-calendar/index.d.ts +0 -4
  262. package/dist/components/page-calendar/index.d.ts.map +0 -1
  263. package/dist/components/page-calendar/month-view.d.ts +0 -11
  264. package/dist/components/page-calendar/month-view.d.ts.map +0 -1
  265. package/dist/components/page-calendar/page-calendar.d.ts +0 -18
  266. package/dist/components/page-calendar/page-calendar.d.ts.map +0 -1
  267. package/dist/components/page-calendar/page-calendar.types.d.ts +0 -18
  268. package/dist/components/page-calendar/page-calendar.types.d.ts.map +0 -1
  269. package/dist/components/page-calendar/page-calendar.utils.d.ts +0 -24
  270. package/dist/components/page-calendar/page-calendar.utils.d.ts.map +0 -1
  271. package/dist/components/page-calendar/week-view.d.ts +0 -11
  272. package/dist/components/page-calendar/week-view.d.ts.map +0 -1
  273. package/dist/components/table/filter.d.ts +0 -42
  274. package/dist/components/table/filter.d.ts.map +0 -1
  275. package/dist/components/table/group.d.ts +0 -17
  276. package/dist/components/table/group.d.ts.map +0 -1
  277. package/dist/components/table/index.d.ts +0 -20
  278. package/dist/components/table/index.d.ts.map +0 -1
  279. package/dist/components/table/inner-table.d.ts +0 -29
  280. package/dist/components/table/inner-table.d.ts.map +0 -1
  281. package/dist/components/table/metadata.d.ts +0 -4
  282. package/dist/components/table/metadata.d.ts.map +0 -1
  283. package/dist/components/table/pagination.d.ts +0 -3
  284. package/dist/components/table/pagination.d.ts.map +0 -1
  285. package/dist/components/table/row.d.ts +0 -12
  286. package/dist/components/table/row.d.ts.map +0 -1
  287. package/dist/components/table/sort.d.ts +0 -28
  288. package/dist/components/table/sort.d.ts.map +0 -1
  289. package/dist/components/table/table-lib.d.ts +0 -135
  290. package/dist/components/table/table-lib.d.ts.map +0 -1
  291. package/dist/components/table/table.context.d.ts +0 -10
  292. package/dist/components/table/table.context.d.ts.map +0 -1
  293. package/dist/components/table/thead.d.ts +0 -9
  294. package/dist/components/table/thead.d.ts.map +0 -1
  295. package/dist/config/context.d.ts +0 -21
  296. package/dist/config/context.d.ts.map +0 -1
  297. package/dist/config/default-translations.d.ts +0 -90
  298. package/dist/config/default-translations.d.ts.map +0 -1
  299. package/dist/config/default-tweaks.d.ts +0 -13
  300. package/dist/config/default-tweaks.d.ts.map +0 -1
  301. package/dist/constants.d.ts +0 -3
  302. package/dist/constants.d.ts.map +0 -1
  303. package/dist/context-BFXNJVn2.js.map +0 -1
  304. package/dist/date-picker-DwNo22lx.js.map +0 -1
  305. package/dist/dom-Dl8XH0CK.js.map +0 -1
  306. package/dist/file-upload-Brf2NkLr.js.map +0 -1
  307. package/dist/floating-ui.react-QNHG9W4N.js.map +0 -1
  308. package/dist/fns-D2eyJKd5.js.map +0 -1
  309. package/dist/hooks/use-click-outside.d.ts +0 -3
  310. package/dist/hooks/use-click-outside.d.ts.map +0 -1
  311. package/dist/hooks/use-color-parser.d.ts +0 -2
  312. package/dist/hooks/use-color-parser.d.ts.map +0 -1
  313. package/dist/hooks/use-components-provider.d.ts +0 -15
  314. package/dist/hooks/use-components-provider.d.ts.map +0 -1
  315. package/dist/hooks/use-debounce.d.ts +0 -5
  316. package/dist/hooks/use-debounce.d.ts.map +0 -1
  317. package/dist/hooks/use-floating-ref.d.ts +0 -2
  318. package/dist/hooks/use-floating-ref.d.ts.map +0 -1
  319. package/dist/hooks/use-form.d.ts +0 -394
  320. package/dist/hooks/use-form.d.ts.map +0 -1
  321. package/dist/hooks/use-hover.d.ts +0 -3
  322. package/dist/hooks/use-hover.d.ts.map +0 -1
  323. package/dist/hooks/use-input-id.d.ts +0 -4
  324. package/dist/hooks/use-input-id.d.ts.map +0 -1
  325. package/dist/hooks/use-is-coarse-device.d.ts +0 -2
  326. package/dist/hooks/use-is-coarse-device.d.ts.map +0 -1
  327. package/dist/hooks/use-locale.d.ts +0 -3
  328. package/dist/hooks/use-locale.d.ts.map +0 -1
  329. package/dist/hooks/use-media-query.d.ts +0 -2
  330. package/dist/hooks/use-media-query.d.ts.map +0 -1
  331. package/dist/hooks/use-on-event.d.ts +0 -4
  332. package/dist/hooks/use-on-event.d.ts.map +0 -1
  333. package/dist/hooks/use-parent.d.ts +0 -3
  334. package/dist/hooks/use-parent.d.ts.map +0 -1
  335. package/dist/hooks/use-preferences.d.ts +0 -2
  336. package/dist/hooks/use-preferences.d.ts.map +0 -1
  337. package/dist/hooks/use-previous.d.ts +0 -2
  338. package/dist/hooks/use-previous.d.ts.map +0 -1
  339. package/dist/hooks/use-reactive.d.ts +0 -2
  340. package/dist/hooks/use-reactive.d.ts.map +0 -1
  341. package/dist/hooks/use-remove-scroll.d.ts +0 -4
  342. package/dist/hooks/use-remove-scroll.d.ts.map +0 -1
  343. package/dist/hooks/use-resize-observer.d.ts +0 -2
  344. package/dist/hooks/use-resize-observer.d.ts.map +0 -1
  345. package/dist/hooks/use-stable-ref.d.ts +0 -2
  346. package/dist/hooks/use-stable-ref.d.ts.map +0 -1
  347. package/dist/hooks/use-swipe.d.ts +0 -8
  348. package/dist/hooks/use-swipe.d.ts.map +0 -1
  349. package/dist/hooks/use-translations.d.ts +0 -88
  350. package/dist/hooks/use-translations.d.ts.map +0 -1
  351. package/dist/hooks/use-tweaks.d.ts +0 -3
  352. package/dist/hooks/use-tweaks.d.ts.map +0 -1
  353. package/dist/hooks/use-window-size.d.ts +0 -5
  354. package/dist/hooks/use-window-size.d.ts.map +0 -1
  355. package/dist/index-BelDtX5M.js.map +0 -1
  356. package/dist/index-DJSMaZR4.js.map +0 -1
  357. package/dist/index-Z-fZHxfJ.js +0 -335
  358. package/dist/index-Z-fZHxfJ.js.map +0 -1
  359. package/dist/index.d.ts +0 -22
  360. package/dist/index.d.ts.map +0 -1
  361. package/dist/input-CrGrSnUt.js.map +0 -1
  362. package/dist/input-field-5vYcz5tT.js.map +0 -1
  363. package/dist/lib/combi-keys.d.ts +0 -15
  364. package/dist/lib/combi-keys.d.ts.map +0 -1
  365. package/dist/lib/dict.d.ts +0 -12
  366. package/dist/lib/dict.d.ts.map +0 -1
  367. package/dist/lib/dom.d.ts +0 -19
  368. package/dist/lib/dom.d.ts.map +0 -1
  369. package/dist/lib/fns.d.ts +0 -11
  370. package/dist/lib/fns.d.ts.map +0 -1
  371. package/dist/lib/fzf.d.ts +0 -16
  372. package/dist/lib/fzf.d.ts.map +0 -1
  373. package/dist/lib/keyboard-area.d.ts +0 -16
  374. package/dist/lib/keyboard-area.d.ts.map +0 -1
  375. package/dist/notifications-cUdVPs-B.js +0 -2786
  376. package/dist/notifications-cUdVPs-B.js.map +0 -1
  377. package/dist/skeleton-D75GFBV6.js +0 -10
  378. package/dist/skeleton-D75GFBV6.js.map +0 -1
  379. package/dist/tabs-S00a8qq8.js +0 -106
  380. package/dist/tabs-S00a8qq8.js.map +0 -1
  381. package/dist/types.d.ts +0 -26
  382. package/dist/types.d.ts.map +0 -1
  383. package/dist/use-translations-BwLKTrZv.js +0 -10
  384. package/dist/use-translations-BwLKTrZv.js.map +0 -1
@@ -1,33 +1,33 @@
1
1
  import { jsxs as F, jsx as t } from "react/jsx-runtime";
2
- import { u as Pe, n as Re, d as ke, i as Le, c as Te, F as De, k as Ee, l as Ne } from "../../floating-ui.react-QNHG9W4N.js";
3
- import { c as Fe } from "../../index-DJSMaZR4.js";
2
+ import { u as Pe, n as Re, d as Le, j as Ne, c as Te, F as ke, l as De, m as Ee } from "../../floating-ui.react-M2PGXLDp.js";
3
+ import { c as Fe } from "../../index-DlJ_2RBL.js";
4
4
  import { e as He } from "../../X.es-BJ1O93El.js";
5
5
  import { S as Oe } from "../../slot-CRyweuj0.js";
6
- import $, { useState as E, useLayoutEffect as Se, useContext as ze, forwardRef as Ie, useRef as L, useId as U, useEffect as _, useImperativeHandle as Ye, Fragment as je, useCallback as Be } from "react";
7
- import { i as Ae } from "../../fns-D2eyJKd5.js";
8
- import { c as N, m as Ge } from "../../dom-Dl8XH0CK.js";
9
- import { C as Ke } from "../../context-BFXNJVn2.js";
10
- import { Button as W } from "../core/button.js";
11
- import { m as P, A as X } from "../../proxy-BZcQiBrp.js";
12
- import { a as Z } from "../../index-t1qLJTt5.js";
6
+ import $, { useState as D, useLayoutEffect as Se, useContext as Ie, forwardRef as ze, useRef as N, useId as W, useEffect as q, useImperativeHandle as Ye, Fragment as je, useCallback as Be } from "react";
7
+ import { i as Ae } from "../../fns-C7Dt27Qd.js";
8
+ import { c as E, m as Ge } from "../../dom-CyQHY7ID.js";
9
+ import { C as Ke, u as Qe } from "../../use-translations-DSltA7H_.js";
10
+ import { Button as X } from "../core/button.js";
11
+ import { m as P, A as Z } from "../../proxy-BZcQiBrp.js";
12
+ import { a as _ } from "../../index-t1qLJTt5.js";
13
13
  import { u as T } from "../../use-motion-value-eGwNuWuw.js";
14
- import { M as Qe } from "../../index-0YMC-_Lt.js";
15
- const Ve = (e, r) => Ae() ? r : window.matchMedia(e).matches, Je = (e, r = !0) => {
16
- const [a, o] = E(r);
14
+ import { M as Ve } from "../../index-0YMC-_Lt.js";
15
+ const Je = (e, n) => Ae() ? n : window.matchMedia(e).matches, Ue = (e, n = !0) => {
16
+ const [a, o] = D(n);
17
17
  return Se(() => {
18
- const n = window.matchMedia(e), i = () => o(Ve(e, r));
19
- return i(), n.addListener ? (n.addListener(i), () => n.removeListener ? n.removeListener(i) : void 0) : (n.addEventListener("change", i), () => n.removeEventListener("change", i));
18
+ const r = window.matchMedia(e), i = () => o(Je(e, n));
19
+ return i(), r.addListener ? (r.addListener(i), () => r.removeListener ? r.removeListener(i) : void 0) : (r.addEventListener("change", i), () => r.removeEventListener("change", i));
20
20
  }, [e]), a;
21
- }, Ue = () => ze(Ke).floatingRef ?? void 0, q = $.createContext(async () => !1), ht = () => $.useContext(q), s = "500ms", We = {
21
+ }, We = () => Ie(Ke).floatingRef ?? void 0, ee = $.createContext(async () => !1), pt = () => $.useContext(ee), s = "500ms", Xe = {
22
22
  exit: { x: ["0%", "-30%"], opacity: 0, animationDuration: s },
23
23
  enter: { x: ["-30%", "0%"], opacity: 1, animationDuration: s },
24
24
  initial: { x: ["-30%", "0%"], opacity: 0.8, animationDuration: s }
25
- }, Xe = {
25
+ }, Ze = {
26
26
  enter: { x: "0%", opacity: 1, animationDuration: s },
27
27
  exit: { x: ["0%", "30%"], opacity: 0, animationDuration: s },
28
28
  initial: { x: ["30%", "0%"], opacity: 0.8, animationDuration: s }
29
29
  }, B = {
30
- drawer: (e) => e === "left" ? We : Xe,
30
+ drawer: (e) => e === "left" ? Xe : Ze,
31
31
  sheet: {
32
32
  enter: { opacity: 1, y: "0%", animationDuration: s, transformOrigin: "bottom" },
33
33
  exit: { opacity: 0.4, y: "10%", animationDuration: s, transformOrigin: "bottom" },
@@ -38,31 +38,31 @@ const Ve = (e, r) => Ae() ? r : window.matchMedia(e).matches, Je = (e, r = !0) =
38
38
  enter: { opacity: 1, scale: [1.05, 1], animationDuration: s },
39
39
  initial: { opacity: 0.5, scale: 0.95, animationDuration: s, transition: { duration: 0.5, ease: "easeInOut" } }
40
40
  }
41
- }, Ze = Fe(
42
- "z-floating border border-floating-border ring-0 outline-0 appearance-none flex flex-col gap-4 flex-nowrap min-w-xs bg-floating-background",
41
+ }, _e = Fe(
42
+ "z-floating flex min-w-xs appearance-none flex-col flex-nowrap gap-4 border border-floating-border bg-floating-background outline-0 ring-0",
43
43
  {
44
44
  variants: {
45
45
  type: {
46
- drawer: "max-h-screen max-w-[90%] absolute w-fit h-screen min-h-0",
47
- dialog: "max-h-[calc(100lvh-10%)] relative container h-min rounded-lg py-4",
48
- sheet: "w-screen absolute bottom-0 max-h-[calc(100vh-15%)] max-h-[calc(100svh-5%)] h-screen pt-6 pb-4 rounded-t-lg"
46
+ drawer: "absolute h-screen max-h-screen min-h-0 w-fit max-w-[90%]",
47
+ dialog: "container relative h-min max-h-[calc(100lvh-10%)] rounded-lg py-4",
48
+ sheet: "absolute bottom-0 h-screen max-h-[calc(100svh-5%)] max-h-[calc(100vh-15%)] w-screen rounded-t-lg pb-4 pt-6"
49
49
  },
50
50
  position: {
51
51
  none: "",
52
- right: "py-4 absolute right-0 top-0 rounded-l-lg",
53
- left: "py-4 absolute left-0 top-0 rounded-r-lg"
52
+ right: "absolute right-0 top-0 rounded-l-lg py-4",
53
+ left: "absolute left-0 top-0 rounded-r-lg py-4"
54
54
  }
55
55
  },
56
56
  defaultVariants: { position: "right", type: "dialog" }
57
57
  }
58
- ), ee = { top: 0, left: 0, right: 0, bottom: 0 }, te = (e) => e * 0.6, $e = (e) => {
59
- const r = (a, o) => {
58
+ ), te = { top: 0, left: 0, right: 0, bottom: 0 }, oe = (e) => e * 0.6, $e = (e) => {
59
+ const n = (a, o) => {
60
60
  if (e.parent.current) {
61
61
  if (a.stopPropagation(), a.stopImmediatePropagation(), e.sheet) {
62
- const w = e.parent.current.getBoundingClientRect(), d = e.value.get() || w.height, v = Math.abs(d - o.delta.y), H = window.outerHeight, C = te(H);
62
+ const w = e.parent.current.getBoundingClientRect(), d = e.value.get() || w.height, v = Math.abs(d - o.delta.y), H = window.outerHeight, C = oe(H);
63
63
  return v >= C ? e.value.set(v) : (document.activeElement instanceof HTMLElement && document.activeElement?.blur(), e.onChange(!1), setTimeout(() => e.value.set(void 0), 350));
64
64
  }
65
- const n = e.parent.current, i = e.value.get() || n.getBoundingClientRect().width, l = e.position === "right" ? -o.delta.x : o.delta.x, p = Math.abs(i + l);
65
+ const r = e.parent.current, i = e.value.get() || r.getBoundingClientRect().width, l = e.position === "right" ? -o.delta.x : o.delta.x, p = Math.abs(i + l);
66
66
  return e.value.set(p);
67
67
  }
68
68
  };
@@ -72,18 +72,20 @@ const Ve = (e, r) => Ae() ? r : window.matchMedia(e).matches, Je = (e, r = !0) =
72
72
  draggable: !0,
73
73
  dragListener: !0,
74
74
  dragMomentum: !0,
75
+ tabIndex: -1,
75
76
  type: "button",
76
77
  animate: !1,
77
78
  dragElastic: 0,
78
79
  dragPropagation: !0,
79
80
  initial: !1,
80
- onDrag: r,
81
+ onDrag: n,
81
82
  dragSnapToOrigin: !0,
82
83
  dragDirectionLock: !0,
84
+ "aria-hidden": "true",
83
85
  drag: e.sheet ? "y" : "x",
84
- dragConstraints: ee,
86
+ dragConstraints: te,
85
87
  whileDrag: { cursor: "grabbing" },
86
- className: N(
88
+ className: E(
87
89
  "absolute isolate z-calendar rounded-lg",
88
90
  e.sheet ? "cursor-row-resize" : "cursor-col-resize bg-floating-border",
89
91
  e.sheet ? "top-1 flex h-3 w-full justify-center py-2" : e.position === "left" ? "right-5 top-1/2 h-10 w-2" : "left-2 top-1/2 h-10 w-2"
@@ -91,16 +93,16 @@ const Ve = (e, r) => Ae() ? r : window.matchMedia(e).matches, Je = (e, r = !0) =
91
93
  children: e.sheet ? /* @__PURE__ */ t("div", { className: "h-2 w-1/4 rounded-lg bg-floating-border" }) : null
92
94
  }
93
95
  );
94
- }, D = { drawer: "right", sheet: "none", dialog: "none" }, _e = (e, r, a, o) => {
95
- const n = a || "dialog";
96
- return e ? a === "drawer" ? o ?? D.drawer : D[n] : r ? D[n] : D.sheet;
97
- }, qe = [], oe = Ie(
96
+ }, k = { drawer: "right", sheet: "none", dialog: "none" }, qe = (e, n, a, o) => {
97
+ const r = a || "dialog";
98
+ return e ? a === "drawer" ? o ?? k.drawer : k[r] : n ? k[r] : k.sheet;
99
+ }, et = [], ne = ze(
98
100
  ({
99
101
  open: e,
100
- title: r,
102
+ title: n,
101
103
  footer: a,
102
104
  asChild: o,
103
- trigger: n,
105
+ trigger: r,
104
106
  children: i,
105
107
  onChange: l,
106
108
  ariaTitle: p,
@@ -111,71 +113,71 @@ const Ve = (e, r) => Ae() ? r : window.matchMedia(e).matches, Je = (e, r = !0) =
111
113
  closable: H = !0,
112
114
  forceType: C = !1,
113
115
  layoutId: A = void 0,
114
- overlayClassName: re = "",
116
+ overlayClassName: ae = "",
115
117
  type: M = "dialog",
116
- position: ae,
117
- overlayClickClose: ie = !1,
118
- closeOnFocusOut: se = !1,
119
- interactions: ce = qe,
120
- ...le
121
- }, de) => {
122
- const ue = Ue(), G = L(null), O = L(null), K = U(), ge = U(), S = Je("(min-width: 64rem)"), z = _e(S, C, M, ae), I = S || C ? B[M] : B.sheet, fe = typeof I == "function" ? I(z) : I, g = S || C ? M : "sheet", me = g !== "dialog", c = Pe({ open: e, onOpenChange: l, strategy: "fixed" }), he = Re(c.context, {}), pe = ke(c.context, { role: "dialog" }), ve = Le(c.context, {
118
+ position: ie,
119
+ overlayClickClose: se = !1,
120
+ closeOnFocusOut: ce = !1,
121
+ interactions: le = et,
122
+ ...de
123
+ }, ue) => {
124
+ const ge = Qe(), me = We(), G = N(null), O = N(null), K = W(), Q = W(), S = Ue("(min-width: 64rem)"), I = qe(S, C, M, ie), z = S || C ? B[M] : B.sheet, fe = typeof z == "function" ? z(I) : z, m = S || C ? M : "sheet", he = m !== "dialog", c = Pe({ open: e, onOpenChange: l, strategy: "fixed" }), pe = Re(c.context, {}), ve = Le(c.context, { role: "dialog" }), be = Ne(c.context, {
123
125
  bubbles: !0,
124
126
  escapeKey: !0,
125
127
  outsidePress: (h) => {
126
128
  const u = h.target;
127
- return ie && !!u?.isConnected;
129
+ return se && !!u?.isConnected;
128
130
  }
129
- }), Q = Te([he, ve, pe].concat(ce)), xe = n, f = T(void 0), m = T(void 0), x = L(!1), V = L(0);
130
- _(() => {
131
- f.set(void 0), m.set(void 0);
132
- }, [g, f, m]);
133
- const be = () => l(!1);
134
- Ye(de, () => ({ context: c.context, floating: O.current }), [
131
+ }), V = Te([pe, be, ve].concat(le)), f = T(void 0), b = T(void 0), x = N(!1), J = N(0);
132
+ q(() => {
133
+ f.set(void 0), b.set(void 0);
134
+ }, [m, f, b]);
135
+ const xe = () => l(!1);
136
+ Ye(ue, () => ({ context: c.context, floating: O.current }), [
135
137
  c.context,
136
138
  O
137
139
  ]);
138
- const ye = g === "sheet" ? {
140
+ const ye = m === "sheet" ? {
139
141
  drag: "y",
140
142
  animate: !1,
141
143
  dragElastic: 0,
142
144
  initial: !1,
143
- dragConstraints: ee,
145
+ dragConstraints: te,
144
146
  draggable: !0,
145
147
  dragListener: !0,
146
148
  dragMomentum: !0,
147
149
  onDrag: (h, u) => {
148
- const Y = c.refs.floating.current.getBoundingClientRect(), j = f.get() || Y.height, y = Math.abs(j - u.delta.y), Ce = window.outerHeight, Me = te(Ce);
150
+ const Y = c.refs.floating.current.getBoundingClientRect(), j = f.get() || Y.height, y = Math.abs(j - u.delta.y), Ce = window.outerHeight, Me = oe(Ce);
149
151
  return y >= Me ? f.set(y) : (document.activeElement instanceof HTMLElement && document.activeElement?.blur(), l?.(!1), setTimeout(() => f.set(void 0), 350));
150
152
  },
151
153
  dragPropagation: !0,
152
154
  dragSnapToOrigin: !0,
153
155
  dragDirectionLock: !0,
154
156
  whileDrag: { cursor: "grabbing" }
155
- } : { animate: v, initial: !1 }, J = T(void 0), k = T(void 0), we = o ? Oe : P.button;
157
+ } : { animate: v, initial: !1 }, U = T(void 0), L = T(void 0), we = o ? Oe : P.button;
156
158
  return /* @__PURE__ */ F(je, { children: [
157
- n ? /* @__PURE__ */ t(we, { ref: c.refs.setReference, ...Q.getReferenceProps(), layoutId: A, type: "button", children: xe }) : null,
158
- /* @__PURE__ */ t(Qe, { reducedMotion: v ? "user" : "always", children: /* @__PURE__ */ t(De, { preserveTabOrder: !0, root: ue, children: /* @__PURE__ */ t(X, { mode: "wait", propagate: !0, children: e ? /* @__PURE__ */ t(
159
- Ee,
159
+ r ? /* @__PURE__ */ t(we, { ref: c.refs.setReference, ...V.getReferenceProps(), layoutId: A, type: "button", children: r }) : null,
160
+ /* @__PURE__ */ t(Ve, { reducedMotion: v ? "user" : "always", children: /* @__PURE__ */ t(ke, { preserveTabOrder: !0, root: me, children: /* @__PURE__ */ t(Z, { mode: "wait", propagate: !0, children: e ? /* @__PURE__ */ t(
161
+ De,
160
162
  {
161
163
  lockScroll: !0,
162
- className: N(
164
+ className: E(
163
165
  "inset-0 isolate z-overlay flex h-[100dvh] !overflow-clip bg-floating-overlay/80",
164
- g === "drawer" ? "" : "items-start justify-center pt-10 lg:p-10",
165
- re
166
+ m === "drawer" ? "" : "items-start justify-center pt-10 lg:p-10",
167
+ ae
166
168
  ),
167
- children: /* @__PURE__ */ t(Ne, { guards: !0, modal: !0, closeOnFocusOut: se, context: c.context, children: /* @__PURE__ */ t(X, { propagate: !0, children: /* @__PURE__ */ F(
169
+ children: /* @__PURE__ */ t(Ee, { guards: !0, modal: !0, closeOnFocusOut: ce, context: c.context, children: /* @__PURE__ */ t(Z, { propagate: !0, children: /* @__PURE__ */ F(
168
170
  P.div,
169
171
  {
170
- ...le,
171
- ...r ? {
172
+ ...de,
173
+ ...n ? {
172
174
  "aria-labelledby": K,
173
- "aria-describedby": ge
175
+ "aria-describedby": Q
174
176
  } : { "aria-label": p },
175
- ...Q.getFloatingProps({
177
+ ...V.getFloatingProps({
176
178
  "aria-modal": e,
177
179
  ref: Ge(c.refs.setFloating, O),
178
- className: N(Ze({ position: z, type: g }), R, "isolate overscroll-contain")
180
+ className: E(_e({ position: I, type: m }), R, "isolate overscroll-contain")
179
181
  }),
180
182
  exit: "exit",
181
183
  layout: !0,
@@ -184,61 +186,63 @@ const Ve = (e, r) => Ae() ? r : window.matchMedia(e).matches, Je = (e, r = !0) =
184
186
  layoutId: A,
185
187
  variants: fe,
186
188
  "data-component": "modal",
187
- style: g === "drawer" ? { width: f } : { height: f, y: m },
189
+ style: m === "drawer" ? { width: f } : { height: f, y: b },
188
190
  children: [
189
- me && d ? /* @__PURE__ */ t(
191
+ he && d ? /* @__PURE__ */ t(
190
192
  $e,
191
193
  {
192
194
  onChange: l,
193
195
  value: f,
194
- sheet: g === "sheet",
195
- position: z,
196
+ sheet: m === "sheet",
197
+ position: I,
196
198
  parent: c.refs.floating
197
199
  }
198
200
  ) : null,
199
- r ? /* @__PURE__ */ t(P.header, { ...ye, className: "relative isolate w-full", children: r ? /* @__PURE__ */ t(
201
+ n ? /* @__PURE__ */ t(P.header, { ...ye, className: "relative isolate w-full", children: n ? /* @__PURE__ */ t(
200
202
  "h2",
201
203
  {
202
204
  id: K,
203
205
  className: "block select-text border-b border-floating-border px-8 pb-2 text-3xl font-medium leading-relaxed",
204
- children: r
206
+ children: n
205
207
  }
206
208
  ) : null }) : null,
207
209
  /* @__PURE__ */ t(
208
210
  P.section,
209
211
  {
210
212
  ref: G,
213
+ id: n ? Q : void 0,
211
214
  "data-component": "modal-body",
212
- className: N("flex-1 select-text overflow-y-auto px-8 py-1", w),
215
+ className: E("flex-1 select-text overflow-y-auto px-8 py-1", w),
213
216
  onTouchEnd: async () => {
214
- if (k.set(void 0), J.set(void 0), x.current) {
215
- const h = m.get() || 0, u = window.innerHeight * 0.2;
216
- h > u ? (await Z(m, window.innerHeight, { duration: 0.2, ease: "easeIn" }).finished, l(!1)) : Z(m, 0, { type: "spring", bounce: 0, duration: 0.3 }), x.current = !1;
217
+ if (L.set(void 0), U.set(void 0), x.current) {
218
+ const h = b.get() || 0, u = window.innerHeight * 0.2, g = b;
219
+ h > u ? (await _(g, window.innerHeight, { duration: 0.2, ease: "easeIn" }).finished, l(!1)) : _(g, 0, { type: "spring", bounce: 0, duration: 0.3 }), x.current = !1;
217
220
  }
218
221
  },
219
222
  onTouchStart: (h) => {
220
223
  const u = h.changedTouches[0];
221
- J.set(u.pageY), k.set(u.pageY), x.current = !1;
224
+ U.set(u.pageY), L.set(u.pageY), x.current = !1;
222
225
  },
223
226
  onTouchMove: (h) => {
224
- const b = h.changedTouches[0].pageY, Y = k.get() || b, j = G.current?.scrollTop || 0;
225
- if (!x.current && j <= 0 && b > Y && g === "sheet" && (x.current = !0, V.current = b), x.current) {
226
- const y = b - V.current;
227
- y < 0 ? m.set(y * 0.2) : m.set(y);
227
+ const g = h.changedTouches[0].pageY, Y = L.get() || g, j = G.current?.scrollTop || 0;
228
+ if (!x.current && j <= 0 && g > Y && m === "sheet" && (x.current = !0, J.current = g), x.current) {
229
+ const y = g - J.current;
230
+ y < 0 ? b.set(y * 0.2) : b.set(y);
228
231
  }
229
- k.set(b);
232
+ L.set(g);
230
233
  },
231
234
  children: i
232
235
  }
233
236
  ),
234
237
  a ? /* @__PURE__ */ t("footer", { className: "w-full select-text border-t border-floating-border px-8 pt-4", children: a }) : null,
235
- H ? /* @__PURE__ */ t("nav", { className: "absolute right-4 top-1 z-floating", children: /* @__PURE__ */ t(
238
+ H ? /* @__PURE__ */ t("div", { className: "absolute right-4 top-1 z-floating", children: /* @__PURE__ */ t(
236
239
  "button",
237
240
  {
238
241
  type: "button",
239
- onClick: be,
242
+ onClick: xe,
243
+ "aria-label": ge.closeButton,
240
244
  className: "p-1 opacity-70 transition-colors hover:text-danger hover:opacity-100 focus:text-danger",
241
- children: /* @__PURE__ */ t(He, {})
245
+ children: /* @__PURE__ */ t(He, { "aria-hidden": "true" })
242
246
  }
243
247
  ) }) : null
244
248
  ]
@@ -249,15 +253,15 @@ const Ve = (e, r) => Ae() ? r : window.matchMedia(e).matches, Je = (e, r = !0) =
249
253
  ] });
250
254
  }
251
255
  );
252
- let ne = async (e) => (typeof window < "u" && console.warn("ConfirmationProvider is not mounted"), !1);
253
- oe.confirm = (e) => ne(e);
254
- const pt = ({ children: e }) => {
255
- const [r, a] = E(!1), [o, n] = E({}), [i, l] = E(() => {
256
- }), p = Be((d) => (n(d), a(!0), new Promise((v) => {
256
+ let re = async (e) => (typeof window < "u" && console.warn("ConfirmationProvider is not mounted"), !1);
257
+ ne.confirm = (e) => re(e);
258
+ const vt = ({ children: e }) => {
259
+ const [n, a] = D(!1), [o, r] = D({}), [i, l] = D(() => {
260
+ }), p = Be((d) => (r(d), a(!0), new Promise((v) => {
257
261
  l(() => v);
258
262
  })), []);
259
- _(() => {
260
- ne = p;
263
+ q(() => {
264
+ re = p;
261
265
  }, [p]);
262
266
  const R = () => {
263
267
  a(!1);
@@ -268,12 +272,12 @@ const pt = ({ children: e }) => {
268
272
  const d = o.cancel?.value ?? !1;
269
273
  i(d ?? !1);
270
274
  };
271
- return /* @__PURE__ */ F(q.Provider, { value: p, children: [
275
+ return /* @__PURE__ */ F(ee.Provider, { value: p, children: [
272
276
  e,
273
277
  /* @__PURE__ */ t(
274
- oe,
278
+ ne,
275
279
  {
276
- open: r,
280
+ open: n,
277
281
  type: "dialog",
278
282
  closable: !1,
279
283
  onChange: a,
@@ -281,8 +285,8 @@ const pt = ({ children: e }) => {
281
285
  title: o.title || "Confirmation",
282
286
  className: "container max-w-dialog lg:max-w-96",
283
287
  footer: /* @__PURE__ */ F("div", { className: "flex justify-end gap-2", children: [
284
- /* @__PURE__ */ t(W, { theme: o.cancel?.theme || "ghost-muted", onClick: w, children: o.cancel?.text || "Cancel" }),
285
- /* @__PURE__ */ t(W, { autoFocus: !0, theme: o.confirm?.theme || "primary", onClick: R, children: o.confirm?.text || "Confirm" })
288
+ /* @__PURE__ */ t(X, { theme: o.cancel?.theme || "ghost-muted", onClick: w, children: o.cancel?.text || "Cancel" }),
289
+ /* @__PURE__ */ t(X, { autoFocus: !0, theme: o.confirm?.theme || "primary", onClick: R, children: o.confirm?.text || "Confirm" })
286
290
  ] }),
287
291
  children: /* @__PURE__ */ t("div", { className: "py-2 text-foreground", children: o.description })
288
292
  }
@@ -290,8 +294,8 @@ const pt = ({ children: e }) => {
290
294
  ] });
291
295
  };
292
296
  export {
293
- oe as Modal,
294
- pt as ModalConfirmProvider,
295
- ht as useConfirm
297
+ ne as Modal,
298
+ vt as ModalConfirmProvider,
299
+ pt as useConfirm
296
300
  };
297
301
  //# sourceMappingURL=modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal.js","sources":["../../../src/hooks/use-media-query.ts","../../../src/hooks/use-floating-ref.ts","../../../src/components/floating/modal.tsx"],"sourcesContent":["import { useLayoutEffect, useState } from \"react\";\nimport { isSsr } from \"../lib/fns\";\n\nconst getMatches = (query: string, defaultValue: boolean): boolean => {\n if (isSsr()) {\n return defaultValue;\n }\n return window.matchMedia(query).matches;\n};\n\nexport const useMediaQuery = (query: string, defaultValue: boolean = true) => {\n const [matches, setMatches] = useState(defaultValue);\n\n useLayoutEffect(() => {\n const matchMedia = window.matchMedia(query);\n const onChange = () => setMatches(getMatches(query, defaultValue));\n onChange();\n if (matchMedia.addListener) {\n matchMedia.addListener(onChange);\n return () => {\n return matchMedia.removeListener ? matchMedia.removeListener(onChange) : undefined;\n };\n }\n matchMedia.addEventListener(\"change\", onChange);\n return () => matchMedia.removeEventListener(\"change\", onChange);\n }, [query]);\n\n return matches;\n};\n","import { useContext } from \"react\";\nimport { Context } from \"../config/context\";\n\nexport const useFloatingRef = () => {\n const ctx = useContext(Context);\n return ctx.floatingRef ?? undefined;\n};\n","\"use client\";\nimport {\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n type ElementProps,\n} from \"@floating-ui/react\";\nimport { cva } from \"class-variance-authority\";\nimport { XIcon } from \"@phosphor-icons/react\";\nimport {\n AnimatePresence,\n HTMLMotionProps,\n motion,\n MotionConfig,\n MotionValue,\n PanInfo,\n TargetAndTransition,\n useMotionValue,\n animate,\n} from \"motion/react\";\nimport { Slot } from \"../core/slot\";\nimport React, {\n ForwardedRef,\n forwardRef,\n Fragment,\n PropsWithChildren,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n useState,\n useCallback,\n} from \"react\";\nimport { useMediaQuery } from \"../../hooks/use-media-query\";\nimport { css, mergeRefs } from \"../../lib/dom\";\nimport { Label, Nil, Override } from \"../../types\";\nimport { useFloatingRef } from \"../../hooks/use-floating-ref\";\nimport { Button, ButtonProps } from \"../core/button\";\n\ntype AnimationLabels = \"initial\" | \"enter\" | \"exit\";\n\nconst ConfirmContext = React.createContext<(options: ConfirmOptions) => Promise<boolean>>(async () => false);\n\nexport const useConfirm = () => React.useContext(ConfirmContext);\n\nexport type ModalType = \"dialog\" | \"drawer\" | \"sheet\";\n\nexport type DrawerPosition = \"left\" | \"right\";\n\ntype Animations = {\n sheet: Record<AnimationLabels, TargetAndTransition>;\n dialog: Record<AnimationLabels, TargetAndTransition>;\n drawer: (type: DrawerPosition) => Record<AnimationLabels, TargetAndTransition>;\n};\n\nconst animationDuration = \"500ms\";\n\nconst drawerLeft: Record<string, TargetAndTransition> = {\n exit: { x: [\"0%\", \"-30%\"], opacity: 0, animationDuration },\n enter: { x: [\"-30%\", \"0%\"], opacity: 1, animationDuration },\n initial: { x: [\"-30%\", \"0%\"], opacity: 0.8, animationDuration },\n};\n\nconst drawerRight: Record<string, TargetAndTransition> = {\n enter: { x: \"0%\", opacity: 1, animationDuration },\n exit: { x: [\"0%\", \"30%\"], opacity: 0, animationDuration },\n initial: { x: [\"30%\", \"0%\"], opacity: 0.8, animationDuration },\n};\n\nconst animations: Animations = {\n drawer: (type) => (type === \"left\" ? drawerLeft : drawerRight),\n sheet: {\n enter: { opacity: 1, y: \"0%\", animationDuration, transformOrigin: \"bottom\" },\n exit: { opacity: 0.4, y: \"10%\", animationDuration, transformOrigin: \"bottom\" },\n initial: { opacity: 0.7, y: \"10%\", animationDuration, transformOrigin: \"bottom\" },\n },\n dialog: {\n exit: { opacity: 0, scale: 0.95, animationDuration },\n enter: { opacity: 1, scale: [1.05, 1], animationDuration },\n initial: { opacity: 0.5, scale: 0.95, animationDuration, transition: { duration: 0.5, ease: \"easeInOut\" } },\n },\n};\n\nconst variants = cva(\n \"z-floating border border-floating-border ring-0 outline-0 appearance-none flex flex-col gap-4 flex-nowrap min-w-xs bg-floating-background\",\n {\n variants: {\n type: {\n drawer: \"max-h-screen max-w-[90%] absolute w-fit h-screen min-h-0\",\n dialog: \"max-h-[calc(100lvh-10%)] relative container h-min rounded-lg py-4\",\n sheet: \"w-screen absolute bottom-0 max-h-[calc(100vh-15%)] max-h-[calc(100svh-5%)] h-screen pt-6 pb-4 rounded-t-lg\",\n },\n position: {\n none: \"\",\n right: \"py-4 absolute right-0 top-0 rounded-l-lg\",\n left: \"py-4 absolute left-0 top-0 rounded-r-lg\",\n },\n },\n defaultVariants: { position: \"right\", type: \"dialog\" },\n }\n);\n\nexport type ModalProps = Override<\n HTMLMotionProps<\"div\">,\n ({ title: Label; ariaTitle?: string } | { ariaTitle: string; title?: Label }) & {\n open: boolean;\n onChange: (nextState: boolean) => void;\n } & Partial<{\n footer: Label;\n type: ModalType;\n animated: boolean;\n asChild: boolean;\n layoutId: string;\n resizer: boolean;\n className: string;\n closable: boolean;\n forceType: boolean;\n bodyClassName: string;\n overlayClassName: string;\n position: DrawerPosition;\n overlayClickClose: boolean;\n closeOnFocusOut: boolean;\n role: \"dialog\";\n interactions: ElementProps[];\n trigger: Label | React.FC<any>;\n }>\n>;\n\ntype DraggableProps = {\n sheet: boolean;\n position: DrawerPosition;\n parent: React.RefObject<HTMLElement>;\n onChange: (nextState: boolean) => void;\n value: MotionValue<number | undefined>;\n};\n\nconst dragConstraints = { top: 0, left: 0, right: 0, bottom: 0 };\n\nconst calculateClose = (n: number) => n * 0.6;\n\nconst Draggable = (props: DraggableProps) => {\n const onDrag = (e: Event, info: PanInfo) => {\n if (props.parent.current) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n if (props.sheet) {\n const div = props.parent.current as HTMLElement;\n const rect = div.getBoundingClientRect();\n const v = props.value.get() || rect.height;\n const result = Math.abs(v - info.delta.y);\n const max = window.outerHeight;\n const screenHeightToClose = calculateClose(max);\n if (result >= screenHeightToClose) return props.value.set(result);\n if (document.activeElement instanceof HTMLElement) {\n document.activeElement?.blur();\n }\n props.onChange(false);\n return setTimeout(() => props.value.set(undefined), 350);\n }\n const div = props.parent.current as HTMLElement;\n const v = props.value.get() || div.getBoundingClientRect().width;\n const delta = props.position === \"right\" ? -info.delta.x : info.delta.x;\n const value = Math.abs(v + delta);\n return props.value.set(value);\n }\n };\n\n return (\n <motion.button\n draggable\n dragListener\n dragMomentum\n type=\"button\"\n animate={false}\n dragElastic={0}\n dragPropagation\n initial={false}\n onDrag={onDrag}\n dragSnapToOrigin\n dragDirectionLock\n drag={props.sheet ? \"y\" : \"x\"}\n dragConstraints={dragConstraints}\n whileDrag={{ cursor: \"grabbing\" }}\n className={css(\n \"absolute isolate z-calendar rounded-lg\",\n props.sheet ? \"cursor-row-resize\" : \"cursor-col-resize bg-floating-border\",\n props.sheet\n ? \"top-1 flex h-3 w-full justify-center py-2\"\n : props.position === \"left\"\n ? \"right-5 top-1/2 h-10 w-2\"\n : \"left-2 top-1/2 h-10 w-2\"\n )}\n >\n {props.sheet ? <div className=\"h-2 w-1/4 rounded-lg bg-floating-border\" /> : null}\n </motion.button>\n );\n};\n\nconst positions = { drawer: \"right\", sheet: \"none\", dialog: \"none\" } as const;\n\nconst fetchPosition = (isDesktop: Nil<boolean>, forceType: Nil<boolean>, propsType: Nil<ModalType>, propsPosition: Nil<DrawerPosition>) => {\n const type = propsType || \"dialog\";\n if (isDesktop) return propsType === \"drawer\" ? (propsPosition ?? positions.drawer) : positions[type];\n return forceType ? positions[type] : positions.sheet;\n};\n\nexport type ModalRef = { context: any; floating: HTMLElement | null };\n\nconst noop: any[] = [];\n\ntype ModalComponent = React.FC<ModalProps> & {\n confirm: <T>(options: ConfirmOptions) => Promise<T>;\n};\n\nexport const Modal: ModalComponent = forwardRef<ModalRef, PropsWithChildren<ModalProps>>(\n (\n {\n open,\n title,\n footer,\n asChild,\n trigger,\n children,\n onChange,\n ariaTitle,\n className,\n bodyClassName,\n resizer = true,\n animated = true,\n closable = true,\n forceType = false,\n layoutId = undefined,\n overlayClassName = \"\",\n type: _type = \"dialog\",\n position: propsPosition,\n overlayClickClose = false,\n closeOnFocusOut = false,\n interactions: outInteractions = noop,\n ...props\n }: PropsWithChildren<ModalProps>,\n externalRef: ForwardedRef<ModalRef>\n ) => {\n const root = useFloatingRef();\n const innerContent = useRef<HTMLDivElement>(null);\n const removeScrollRef = useRef<HTMLDivElement>(null);\n const headingId = useId();\n const descriptionId = useId();\n const isDesktop = useMediaQuery(\"(min-width: 64rem)\");\n const position = fetchPosition(isDesktop, forceType, _type, propsPosition);\n const func = isDesktop ? animations[_type] : forceType ? animations[_type] : animations.sheet;\n const animation = typeof func === \"function\" ? func(position as DrawerPosition) : func;\n const type = isDesktop ? _type : forceType ? _type : \"sheet\";\n const useResizer = type !== \"dialog\";\n\n const floating = useFloating({ open, onOpenChange: onChange, strategy: \"fixed\" });\n const click = useClick(floating.context, {});\n const role = useRole(floating.context, { role: \"dialog\" });\n const dismiss = useDismiss(floating.context, {\n bubbles: true,\n escapeKey: true,\n outsidePress: (event) => {\n const target = event.target as Node;\n return overlayClickClose && !!target?.isConnected;\n },\n });\n\n const interactions = useInteractions([click, dismiss, role].concat(outInteractions));\n\n const Trigger = trigger as any;\n\n const floatingSize = useMotionValue<number | undefined>(undefined);\n const sheetY = useMotionValue<number | undefined>(undefined);\n const isDragging = useRef(false);\n const dragStart = useRef(0);\n\n useEffect(() => {\n floatingSize.set(undefined);\n sheetY.set(undefined);\n }, [type, floatingSize, sheetY]);\n\n const onClose = () => onChange(false);\n\n useImperativeHandle(externalRef, () => ({ context: floating.context, floating: removeScrollRef.current }), [\n floating.context,\n removeScrollRef,\n ]);\n\n const onDragHeader = (_: MouseEvent | TouchEvent | PointerEvent, info: PanInfo) => {\n const div = floating.refs.floating.current as HTMLElement;\n const rect = div.getBoundingClientRect();\n const v = floatingSize.get() || rect.height;\n const result = Math.abs(v - info.delta.y);\n const max = window.outerHeight;\n const screenHeightToClose = calculateClose(max);\n if (result >= screenHeightToClose) return floatingSize.set(result);\n if (document.activeElement instanceof HTMLElement) {\n document.activeElement?.blur();\n }\n onChange?.(false);\n return setTimeout(() => floatingSize.set(undefined), 350);\n };\n\n const draggableMotionProps =\n type === \"sheet\"\n ? ({\n drag: \"y\",\n animate: false,\n dragElastic: 0,\n initial: false,\n dragConstraints,\n draggable: true,\n dragListener: true,\n dragMomentum: true,\n onDrag: onDragHeader,\n dragPropagation: true,\n dragSnapToOrigin: true,\n dragDirectionLock: true,\n whileDrag: { cursor: \"grabbing\" },\n } as const)\n : { animate: animated, initial: false };\n\n const scrollInitial = useMotionValue<number | undefined>(undefined);\n const scroll = useMotionValue<number | undefined>(undefined);\n\n const Component = asChild ? Slot : motion.button;\n\n return (\n <Fragment>\n {trigger ? (\n <Component ref={floating.refs.setReference} {...interactions.getReferenceProps()} layoutId={layoutId} type=\"button\">\n {Trigger}\n </Component>\n ) : null}\n <MotionConfig reducedMotion={animated ? \"user\" : \"always\"}>\n <FloatingPortal preserveTabOrder root={root}>\n <AnimatePresence mode=\"wait\" propagate>\n {open ? (\n <FloatingOverlay\n lockScroll\n className={css(\n \"inset-0 isolate z-overlay flex h-[100dvh] !overflow-clip bg-floating-overlay/80\",\n type === \"drawer\" ? \"\" : \"items-start justify-center pt-10 lg:p-10\",\n overlayClassName\n )}\n >\n <FloatingFocusManager guards modal closeOnFocusOut={closeOnFocusOut} context={floating.context}>\n <AnimatePresence propagate>\n <motion.div\n {...props}\n {...(title\n ? {\n \"aria-labelledby\": headingId,\n \"aria-describedby\": descriptionId,\n }\n : { \"aria-label\": ariaTitle })}\n {...interactions.getFloatingProps({\n \"aria-modal\": open,\n ref: mergeRefs(floating.refs.setFloating, removeScrollRef) as any,\n className: css(variants({ position, type }), className, \"isolate overscroll-contain\"),\n })}\n exit=\"exit\"\n layout={true}\n animate=\"enter\"\n initial=\"initial\"\n layoutId={layoutId}\n variants={animation}\n data-component=\"modal\"\n style={type === \"drawer\" ? { width: floatingSize } : { height: floatingSize, y: sheetY }}\n >\n {useResizer && resizer ? (\n <Draggable\n onChange={onChange}\n value={floatingSize}\n sheet={type === \"sheet\"}\n position={position as DrawerPosition}\n parent={floating.refs.floating as any}\n />\n ) : null}\n {title ? (\n <motion.header {...draggableMotionProps} className=\"relative isolate w-full\">\n {title ? (\n <h2\n id={headingId}\n className=\"block select-text border-b border-floating-border px-8 pb-2 text-3xl font-medium leading-relaxed\"\n >\n {title}\n </h2>\n ) : null}\n </motion.header>\n ) : null}\n <motion.section\n ref={innerContent}\n data-component=\"modal-body\"\n className={css(\"flex-1 select-text overflow-y-auto px-8 py-1\", bodyClassName)}\n onTouchEnd={async () => {\n scroll.set(undefined);\n scrollInitial.set(undefined);\n\n if (isDragging.current) {\n const currentY = sheetY.get() || 0;\n const threshold = window.innerHeight * 0.2;\n\n if (currentY > threshold) {\n await animate(sheetY as any, window.innerHeight, { duration: 0.2, ease: \"easeIn\" })\n .finished;\n onChange(false);\n } else {\n animate(sheetY as any, 0, { type: \"spring\", bounce: 0, duration: 0.3 });\n }\n isDragging.current = false;\n }\n }}\n onTouchStart={(e) => {\n const touch = e.changedTouches[0];\n scrollInitial.set(touch.pageY);\n scroll.set(touch.pageY);\n isDragging.current = false;\n }}\n onTouchMove={(e) => {\n const touch = e.changedTouches[0];\n const y = touch.pageY;\n const prevY = scroll.get() || y;\n const scrollTop = innerContent.current?.scrollTop || 0;\n\n if (!isDragging.current && scrollTop <= 0 && y > prevY && type === \"sheet\") {\n isDragging.current = true;\n dragStart.current = y;\n }\n\n if (isDragging.current) {\n const delta = y - dragStart.current;\n if (delta < 0) {\n sheetY.set(delta * 0.2);\n } else {\n sheetY.set(delta);\n }\n }\n\n scroll.set(y);\n }}\n >\n {children}\n </motion.section>\n {footer ? (\n <footer className=\"w-full select-text border-t border-floating-border px-8 pt-4\">{footer}</footer>\n ) : null}\n {closable ? (\n <nav className=\"absolute right-4 top-1 z-floating\">\n <button\n type=\"button\"\n onClick={onClose}\n className=\"p-1 opacity-70 transition-colors hover:text-danger hover:opacity-100 focus:text-danger\"\n >\n <XIcon />\n </button>\n </nav>\n ) : null}\n </motion.div>\n </AnimatePresence>\n </FloatingFocusManager>\n </FloatingOverlay>\n ) : null}\n </AnimatePresence>\n </FloatingPortal>\n </MotionConfig>\n </Fragment>\n );\n }\n) as any;\n\ntype ButtonConfirmationAction = {\n value?: any;\n text?: Label;\n theme?: ButtonProps[\"theme\"];\n};\n\nexport type ConfirmOptions = {\n title?: Label;\n description?: Label;\n cancel?: ButtonConfirmationAction;\n confirm?: ButtonConfirmationAction;\n};\n\ntype ConfirmContextType = (options: ConfirmOptions) => Promise<boolean>;\n\nlet confirmGlobal: ConfirmContextType = async <T extends any>(options: ConfirmOptions): Promise<T> => {\n if (typeof window !== \"undefined\") {\n console.warn(\"ConfirmationProvider is not mounted\");\n }\n return false as T;\n};\n\nModal.confirm = <T extends any>(options: ConfirmOptions): Promise<T> => confirmGlobal(options) as any;\n\nexport const ModalConfirmProvider = ({ children }: { children: React.ReactNode }) => {\n const [open, setOpen] = useState(false);\n const [options, setOptions] = useState<Partial<ConfirmOptions>>({});\n const [resolve, setResolve] = useState<(value: boolean) => void>(() => {});\n\n const confirmAction = useCallback((opts: ConfirmOptions): Promise<boolean> => {\n setOptions(opts);\n setOpen(true);\n return new Promise((res) => {\n setResolve(() => res);\n });\n }, []);\n\n useEffect(() => {\n confirmGlobal = confirmAction;\n }, [confirmAction]);\n\n const onConfirm = () => {\n setOpen(false);\n const value = options.confirm?.value ?? true;\n resolve(value ?? true);\n };\n\n const onCancel = () => {\n setOpen(false);\n const value = options.cancel?.value ?? false;\n resolve(value ?? false);\n };\n\n return (\n <ConfirmContext.Provider value={confirmAction}>\n {children}\n <Modal\n open={open}\n type=\"dialog\"\n closable={false}\n onChange={setOpen}\n overlayClickClose={false}\n title={options.title || \"Confirmation\"}\n className=\"container max-w-dialog lg:max-w-96\"\n footer={\n <div className=\"flex justify-end gap-2\">\n <Button theme={options.cancel?.theme || \"ghost-muted\"} onClick={onCancel}>\n {options.cancel?.text || \"Cancel\"}\n </Button>\n <Button autoFocus theme={options.confirm?.theme || \"primary\"} onClick={onConfirm}>\n {options.confirm?.text || \"Confirm\"}\n </Button>\n </div>\n }\n >\n <div className=\"py-2 text-foreground\">{options.description}</div>\n </Modal>\n </ConfirmContext.Provider>\n );\n};\n"],"names":["getMatches","query","defaultValue","isSsr","useMediaQuery","matches","setMatches","useState","useLayoutEffect","matchMedia","onChange","useFloatingRef","useContext","Context","ConfirmContext","React","useConfirm","animationDuration","drawerLeft","drawerRight","animations","type","variants","cva","dragConstraints","calculateClose","n","Draggable","props","onDrag","e","info","rect","v","result","max","screenHeightToClose","div","delta","value","jsx","motion","css","positions","fetchPosition","isDesktop","forceType","propsType","propsPosition","noop","Modal","forwardRef","open","title","footer","asChild","trigger","children","ariaTitle","className","bodyClassName","resizer","animated","closable","layoutId","overlayClassName","_type","overlayClickClose","closeOnFocusOut","outInteractions","externalRef","root","innerContent","useRef","removeScrollRef","headingId","useId","descriptionId","position","func","animation","useResizer","floating","useFloating","click","useClick","role","useRole","dismiss","useDismiss","event","target","interactions","useInteractions","Trigger","floatingSize","useMotionValue","sheetY","isDragging","dragStart","useEffect","onClose","useImperativeHandle","draggableMotionProps","_","scrollInitial","scroll","Component","Slot","Fragment","MotionConfig","FloatingPortal","AnimatePresence","FloatingOverlay","FloatingFocusManager","jsxs","mergeRefs","currentY","threshold","animate","touch","y","prevY","scrollTop","XIcon","confirmGlobal","options","ModalConfirmProvider","setOpen","setOptions","resolve","setResolve","confirmAction","useCallback","opts","res","onConfirm","onCancel","Button"],"mappings":"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"}
1
+ {"version":3,"file":"modal.js","sources":["../../../src/hooks/use-media-query.ts","../../../src/hooks/use-floating-ref.ts","../../../src/components/floating/modal.tsx"],"sourcesContent":["import { useLayoutEffect, useState } from \"react\";\nimport { isSsr } from \"../lib/fns\";\n\nconst getMatches = (query: string, defaultValue: boolean): boolean => {\n if (isSsr()) {\n return defaultValue;\n }\n return window.matchMedia(query).matches;\n};\n\nexport const useMediaQuery = (query: string, defaultValue: boolean = true) => {\n const [matches, setMatches] = useState(defaultValue);\n\n useLayoutEffect(() => {\n const matchMedia = window.matchMedia(query);\n const onChange = () => setMatches(getMatches(query, defaultValue));\n onChange();\n if (matchMedia.addListener) {\n matchMedia.addListener(onChange);\n return () => {\n return matchMedia.removeListener ? matchMedia.removeListener(onChange) : undefined;\n };\n }\n matchMedia.addEventListener(\"change\", onChange);\n return () => matchMedia.removeEventListener(\"change\", onChange);\n }, [query]);\n\n return matches;\n};\n","import { useContext } from \"react\";\nimport { Context } from \"../config/context\";\n\nexport const useFloatingRef = () => {\n const ctx = useContext(Context);\n return ctx.floatingRef ?? undefined;\n};\n","\"use client\";\nimport {\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n type ElementProps,\n type FloatingContext,\n} from \"@floating-ui/react\";\nimport { cva } from \"class-variance-authority\";\nimport { XIcon } from \"@phosphor-icons/react\";\nimport {\n AnimatePresence,\n HTMLMotionProps,\n motion,\n MotionConfig,\n MotionValue,\n PanInfo,\n TargetAndTransition,\n useMotionValue,\n animate,\n} from \"motion/react\";\nimport { Slot } from \"../core/slot\";\nimport React, {\n ForwardedRef,\n forwardRef,\n Fragment,\n PropsWithChildren,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n useState,\n useCallback,\n} from \"react\";\nimport { useMediaQuery } from \"../../hooks/use-media-query\";\nimport { css, mergeRefs } from \"../../lib/dom\";\nimport { Label, Nil, Override } from \"../../types\";\nimport { useFloatingRef } from \"../../hooks/use-floating-ref\";\nimport { useTranslations } from \"../../hooks/use-translations\";\nimport { Button, ButtonProps } from \"../core/button\";\n\ntype AnimationLabels = \"initial\" | \"enter\" | \"exit\";\n\nconst ConfirmContext = React.createContext<(options: ConfirmOptions) => Promise<boolean>>(async () => false);\n\nexport const useConfirm = () => React.useContext(ConfirmContext);\n\nexport type ModalType = \"dialog\" | \"drawer\" | \"sheet\";\n\nexport type DrawerPosition = \"left\" | \"right\";\n\ntype Animations = {\n sheet: Record<AnimationLabels, TargetAndTransition>;\n dialog: Record<AnimationLabels, TargetAndTransition>;\n drawer: (type: DrawerPosition) => Record<AnimationLabels, TargetAndTransition>;\n};\n\nconst animationDuration = \"500ms\";\n\nconst drawerLeft: Record<string, TargetAndTransition> = {\n exit: { x: [\"0%\", \"-30%\"], opacity: 0, animationDuration },\n enter: { x: [\"-30%\", \"0%\"], opacity: 1, animationDuration },\n initial: { x: [\"-30%\", \"0%\"], opacity: 0.8, animationDuration },\n};\n\nconst drawerRight: Record<string, TargetAndTransition> = {\n enter: { x: \"0%\", opacity: 1, animationDuration },\n exit: { x: [\"0%\", \"30%\"], opacity: 0, animationDuration },\n initial: { x: [\"30%\", \"0%\"], opacity: 0.8, animationDuration },\n};\n\nconst animations: Animations = {\n drawer: (type) => (type === \"left\" ? drawerLeft : drawerRight),\n sheet: {\n enter: { opacity: 1, y: \"0%\", animationDuration, transformOrigin: \"bottom\" },\n exit: { opacity: 0.4, y: \"10%\", animationDuration, transformOrigin: \"bottom\" },\n initial: { opacity: 0.7, y: \"10%\", animationDuration, transformOrigin: \"bottom\" },\n },\n dialog: {\n exit: { opacity: 0, scale: 0.95, animationDuration },\n enter: { opacity: 1, scale: [1.05, 1], animationDuration },\n initial: { opacity: 0.5, scale: 0.95, animationDuration, transition: { duration: 0.5, ease: \"easeInOut\" } },\n },\n};\n\nconst variants = cva(\n \"z-floating flex min-w-xs appearance-none flex-col flex-nowrap gap-4 border border-floating-border bg-floating-background outline-0 ring-0\",\n {\n variants: {\n type: {\n drawer: \"absolute h-screen max-h-screen min-h-0 w-fit max-w-[90%]\",\n dialog: \"container relative h-min max-h-[calc(100lvh-10%)] rounded-lg py-4\",\n sheet: \"absolute bottom-0 h-screen max-h-[calc(100svh-5%)] max-h-[calc(100vh-15%)] w-screen rounded-t-lg pb-4 pt-6\",\n },\n position: {\n none: \"\",\n right: \"absolute right-0 top-0 rounded-l-lg py-4\",\n left: \"absolute left-0 top-0 rounded-r-lg py-4\",\n },\n },\n defaultVariants: { position: \"right\", type: \"dialog\" },\n }\n);\n\nexport type ModalProps = Override<\n HTMLMotionProps<\"div\">,\n ({ title: Label; ariaTitle?: string } | { ariaTitle: string; title?: Label }) & {\n open: boolean;\n onChange: (nextState: boolean) => void;\n } & Partial<{\n footer: Label;\n type: ModalType;\n animated: boolean;\n asChild: boolean;\n layoutId: string;\n resizer: boolean;\n className: string;\n closable: boolean;\n forceType: boolean;\n bodyClassName: string;\n overlayClassName: string;\n position: DrawerPosition;\n overlayClickClose: boolean;\n closeOnFocusOut: boolean;\n role: \"dialog\";\n interactions: ElementProps[];\n trigger: Label;\n }>\n>;\n\ntype DraggableProps = {\n sheet: boolean;\n position: DrawerPosition;\n parent: React.MutableRefObject<HTMLElement | null>;\n onChange: (nextState: boolean) => void;\n value: MotionValue<number | undefined>;\n};\n\nconst dragConstraints = { top: 0, left: 0, right: 0, bottom: 0 };\n\nconst calculateClose = (n: number) => n * 0.6;\n\nconst Draggable = (props: DraggableProps) => {\n const onDrag = (e: Event, info: PanInfo) => {\n if (props.parent.current) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n if (props.sheet) {\n const div = props.parent.current as HTMLElement;\n const rect = div.getBoundingClientRect();\n const v = props.value.get() || rect.height;\n const result = Math.abs(v - info.delta.y);\n const max = window.outerHeight;\n const screenHeightToClose = calculateClose(max);\n if (result >= screenHeightToClose) return props.value.set(result);\n if (document.activeElement instanceof HTMLElement) {\n document.activeElement?.blur();\n }\n props.onChange(false);\n return setTimeout(() => props.value.set(undefined), 350);\n }\n const div = props.parent.current as HTMLElement;\n const v = props.value.get() || div.getBoundingClientRect().width;\n const delta = props.position === \"right\" ? -info.delta.x : info.delta.x;\n const value = Math.abs(v + delta);\n return props.value.set(value);\n }\n };\n\n return (\n <motion.button\n draggable\n dragListener\n dragMomentum\n tabIndex={-1}\n type=\"button\"\n animate={false}\n dragElastic={0}\n dragPropagation\n initial={false}\n onDrag={onDrag}\n dragSnapToOrigin\n dragDirectionLock\n aria-hidden=\"true\"\n drag={props.sheet ? \"y\" : \"x\"}\n dragConstraints={dragConstraints}\n whileDrag={{ cursor: \"grabbing\" }}\n className={css(\n \"absolute isolate z-calendar rounded-lg\",\n props.sheet ? \"cursor-row-resize\" : \"cursor-col-resize bg-floating-border\",\n props.sheet\n ? \"top-1 flex h-3 w-full justify-center py-2\"\n : props.position === \"left\"\n ? \"right-5 top-1/2 h-10 w-2\"\n : \"left-2 top-1/2 h-10 w-2\"\n )}\n >\n {props.sheet ? <div className=\"h-2 w-1/4 rounded-lg bg-floating-border\" /> : null}\n </motion.button>\n );\n};\n\nconst positions = { drawer: \"right\", sheet: \"none\", dialog: \"none\" } as const;\n\nconst fetchPosition = (isDesktop: Nil<boolean>, forceType: Nil<boolean>, propsType: Nil<ModalType>, propsPosition: Nil<DrawerPosition>) => {\n const type = propsType || \"dialog\";\n if (isDesktop) return propsType === \"drawer\" ? (propsPosition ?? positions.drawer) : positions[type];\n return forceType ? positions[type] : positions.sheet;\n};\n\nexport type ModalRef = { context: FloatingContext; floating: HTMLElement | null };\n\nconst noop: ElementProps[] = [];\n\ntype ModalComponent = React.FC<ModalProps> & {\n confirm: <T>(options: ConfirmOptions) => Promise<T>;\n};\n\nexport const Modal: ModalComponent = forwardRef<ModalRef, PropsWithChildren<ModalProps>>(\n (\n {\n open,\n title,\n footer,\n asChild,\n trigger,\n children,\n onChange,\n ariaTitle,\n className,\n bodyClassName,\n resizer = true,\n animated = true,\n closable = true,\n forceType = false,\n layoutId = undefined,\n overlayClassName = \"\",\n type: _type = \"dialog\",\n position: propsPosition,\n overlayClickClose = false,\n closeOnFocusOut = false,\n interactions: outInteractions = noop,\n ...props\n }: PropsWithChildren<ModalProps>,\n externalRef: ForwardedRef<ModalRef>\n ) => {\n const t = useTranslations();\n const root = useFloatingRef();\n const innerContent = useRef<HTMLDivElement>(null);\n const removeScrollRef = useRef<HTMLDivElement>(null);\n const headingId = useId();\n const descriptionId = useId();\n const isDesktop = useMediaQuery(\"(min-width: 64rem)\");\n const position = fetchPosition(isDesktop, forceType, _type, propsPosition);\n const func = isDesktop ? animations[_type] : forceType ? animations[_type] : animations.sheet;\n const animation = typeof func === \"function\" ? func(position as DrawerPosition) : func;\n const type = isDesktop ? _type : forceType ? _type : \"sheet\";\n const useResizer = type !== \"dialog\";\n\n const floating = useFloating({ open, onOpenChange: onChange, strategy: \"fixed\" });\n const click = useClick(floating.context, {});\n const role = useRole(floating.context, { role: \"dialog\" });\n const dismiss = useDismiss(floating.context, {\n bubbles: true,\n escapeKey: true,\n outsidePress: (event) => {\n const target = event.target as Node;\n return overlayClickClose && !!target?.isConnected;\n },\n });\n\n const interactions = useInteractions([click, dismiss, role].concat(outInteractions));\n\n const floatingSize = useMotionValue<number | undefined>(undefined);\n const sheetY = useMotionValue<number | undefined>(undefined);\n const isDragging = useRef(false);\n const dragStart = useRef(0);\n\n useEffect(() => {\n floatingSize.set(undefined);\n sheetY.set(undefined);\n }, [type, floatingSize, sheetY]);\n\n const onClose = () => onChange(false);\n\n useImperativeHandle(externalRef, () => ({ context: floating.context, floating: removeScrollRef.current }), [\n floating.context,\n removeScrollRef,\n ]);\n\n const onDragHeader = (_: MouseEvent | TouchEvent | PointerEvent, info: PanInfo) => {\n const div = floating.refs.floating.current as HTMLElement;\n const rect = div.getBoundingClientRect();\n const v = floatingSize.get() || rect.height;\n const result = Math.abs(v - info.delta.y);\n const max = window.outerHeight;\n const screenHeightToClose = calculateClose(max);\n if (result >= screenHeightToClose) return floatingSize.set(result);\n if (document.activeElement instanceof HTMLElement) {\n document.activeElement?.blur();\n }\n onChange?.(false);\n return setTimeout(() => floatingSize.set(undefined), 350);\n };\n\n const draggableMotionProps =\n type === \"sheet\"\n ? ({\n drag: \"y\",\n animate: false,\n dragElastic: 0,\n initial: false,\n dragConstraints,\n draggable: true,\n dragListener: true,\n dragMomentum: true,\n onDrag: onDragHeader,\n dragPropagation: true,\n dragSnapToOrigin: true,\n dragDirectionLock: true,\n whileDrag: { cursor: \"grabbing\" },\n } as const)\n : { animate: animated, initial: false };\n\n const scrollInitial = useMotionValue<number | undefined>(undefined);\n const scroll = useMotionValue<number | undefined>(undefined);\n\n const Component = asChild ? Slot : motion.button;\n\n return (\n <Fragment>\n {trigger ? (\n <Component ref={floating.refs.setReference} {...interactions.getReferenceProps()} layoutId={layoutId} type=\"button\">\n {trigger}\n </Component>\n ) : null}\n <MotionConfig reducedMotion={animated ? \"user\" : \"always\"}>\n <FloatingPortal preserveTabOrder root={root}>\n <AnimatePresence mode=\"wait\" propagate>\n {open ? (\n <FloatingOverlay\n lockScroll\n className={css(\n \"inset-0 isolate z-overlay flex h-[100dvh] !overflow-clip bg-floating-overlay/80\",\n type === \"drawer\" ? \"\" : \"items-start justify-center pt-10 lg:p-10\",\n overlayClassName\n )}\n >\n <FloatingFocusManager guards modal closeOnFocusOut={closeOnFocusOut} context={floating.context}>\n <AnimatePresence propagate>\n <motion.div\n {...props}\n {...(title\n ? {\n \"aria-labelledby\": headingId,\n \"aria-describedby\": descriptionId,\n }\n : { \"aria-label\": ariaTitle })}\n {...interactions.getFloatingProps({\n \"aria-modal\": open,\n ref: mergeRefs<HTMLDivElement>(floating.refs.setFloating, removeScrollRef),\n className: css(variants({ position, type }), className, \"isolate overscroll-contain\"),\n })}\n exit=\"exit\"\n layout={true}\n animate=\"enter\"\n initial=\"initial\"\n layoutId={layoutId}\n variants={animation}\n data-component=\"modal\"\n style={type === \"drawer\" ? { width: floatingSize } : { height: floatingSize, y: sheetY }}\n >\n {useResizer && resizer ? (\n <Draggable\n onChange={onChange}\n value={floatingSize}\n sheet={type === \"sheet\"}\n position={position as DrawerPosition}\n parent={floating.refs.floating}\n />\n ) : null}\n {title ? (\n <motion.header {...draggableMotionProps} className=\"relative isolate w-full\">\n {title ? (\n <h2\n id={headingId}\n className=\"block select-text border-b border-floating-border px-8 pb-2 text-3xl font-medium leading-relaxed\"\n >\n {title}\n </h2>\n ) : null}\n </motion.header>\n ) : null}\n <motion.section\n ref={innerContent}\n id={title ? descriptionId : undefined}\n data-component=\"modal-body\"\n className={css(\"flex-1 select-text overflow-y-auto px-8 py-1\", bodyClassName)}\n onTouchEnd={async () => {\n scroll.set(undefined);\n scrollInitial.set(undefined);\n\n if (isDragging.current) {\n const currentY = sheetY.get() || 0;\n const threshold = window.innerHeight * 0.2;\n const sheetYNumeric = sheetY as MotionValue<number>;\n if (currentY > threshold) {\n await animate(sheetYNumeric, window.innerHeight, { duration: 0.2, ease: \"easeIn\" })\n .finished;\n onChange(false);\n } else {\n animate(sheetYNumeric, 0, { type: \"spring\", bounce: 0, duration: 0.3 });\n }\n isDragging.current = false;\n }\n }}\n onTouchStart={(e) => {\n const touch = e.changedTouches[0];\n scrollInitial.set(touch.pageY);\n scroll.set(touch.pageY);\n isDragging.current = false;\n }}\n onTouchMove={(e) => {\n const touch = e.changedTouches[0];\n const y = touch.pageY;\n const prevY = scroll.get() || y;\n const scrollTop = innerContent.current?.scrollTop || 0;\n\n if (!isDragging.current && scrollTop <= 0 && y > prevY && type === \"sheet\") {\n isDragging.current = true;\n dragStart.current = y;\n }\n\n if (isDragging.current) {\n const delta = y - dragStart.current;\n if (delta < 0) {\n sheetY.set(delta * 0.2);\n } else {\n sheetY.set(delta);\n }\n }\n\n scroll.set(y);\n }}\n >\n {children}\n </motion.section>\n {footer ? (\n <footer className=\"w-full select-text border-t border-floating-border px-8 pt-4\">{footer}</footer>\n ) : null}\n {closable ? (\n <div className=\"absolute right-4 top-1 z-floating\">\n <button\n type=\"button\"\n onClick={onClose}\n aria-label={t.closeButton}\n className=\"p-1 opacity-70 transition-colors hover:text-danger hover:opacity-100 focus:text-danger\"\n >\n <XIcon aria-hidden=\"true\" />\n </button>\n </div>\n ) : null}\n </motion.div>\n </AnimatePresence>\n </FloatingFocusManager>\n </FloatingOverlay>\n ) : null}\n </AnimatePresence>\n </FloatingPortal>\n </MotionConfig>\n </Fragment>\n );\n }\n) as unknown as ModalComponent;\n\ntype ButtonConfirmationAction = {\n value?: unknown;\n text?: Label;\n theme?: ButtonProps[\"theme\"];\n};\n\nexport type ConfirmOptions = {\n title?: Label;\n description?: Label;\n cancel?: ButtonConfirmationAction;\n confirm?: ButtonConfirmationAction;\n};\n\ntype ConfirmContextType = (options: ConfirmOptions) => Promise<boolean>;\n\nlet confirmGlobal: ConfirmContextType = async <T,>(_: ConfirmOptions): Promise<T> => {\n if (typeof window !== \"undefined\") {\n console.warn(\"ConfirmationProvider is not mounted\");\n }\n return false as unknown as T;\n};\n\nModal.confirm = <T,>(options: ConfirmOptions): Promise<T> => confirmGlobal(options) as unknown as Promise<T>;\n\nexport const ModalConfirmProvider = ({ children }: { children: React.ReactNode }) => {\n const [open, setOpen] = useState(false);\n const [options, setOptions] = useState<Partial<ConfirmOptions>>({});\n const [resolve, setResolve] = useState<(value: boolean) => void>(() => {});\n\n const confirmAction = useCallback((opts: ConfirmOptions): Promise<boolean> => {\n setOptions(opts);\n setOpen(true);\n return new Promise((res) => {\n setResolve(() => res);\n });\n }, []);\n\n useEffect(() => {\n confirmGlobal = confirmAction;\n }, [confirmAction]);\n\n const onConfirm = () => {\n setOpen(false);\n const value = (options.confirm?.value as boolean) ?? true;\n resolve(value ?? true);\n };\n\n const onCancel = () => {\n setOpen(false);\n const value = (options.cancel?.value as boolean) ?? false;\n resolve(value ?? false);\n };\n\n return (\n <ConfirmContext.Provider value={confirmAction}>\n {children}\n <Modal\n open={open}\n type=\"dialog\"\n closable={false}\n onChange={setOpen}\n overlayClickClose={false}\n title={options.title || \"Confirmation\"}\n className=\"container max-w-dialog lg:max-w-96\"\n footer={\n <div className=\"flex justify-end gap-2\">\n <Button theme={options.cancel?.theme || \"ghost-muted\"} onClick={onCancel}>\n {options.cancel?.text || \"Cancel\"}\n </Button>\n <Button autoFocus theme={options.confirm?.theme || \"primary\"} onClick={onConfirm}>\n {options.confirm?.text || \"Confirm\"}\n </Button>\n </div>\n }\n >\n <div className=\"py-2 text-foreground\">{options.description}</div>\n </Modal>\n </ConfirmContext.Provider>\n );\n};\n"],"names":["getMatches","query","defaultValue","isSsr","useMediaQuery","matches","setMatches","useState","useLayoutEffect","matchMedia","onChange","useFloatingRef","useContext","Context","ConfirmContext","React","useConfirm","animationDuration","drawerLeft","drawerRight","animations","type","variants","cva","dragConstraints","calculateClose","n","Draggable","props","onDrag","e","info","rect","v","result","max","screenHeightToClose","div","delta","value","jsx","motion","css","positions","fetchPosition","isDesktop","forceType","propsType","propsPosition","noop","Modal","forwardRef","open","title","footer","asChild","trigger","children","ariaTitle","className","bodyClassName","resizer","animated","closable","layoutId","overlayClassName","_type","overlayClickClose","closeOnFocusOut","outInteractions","externalRef","t","useTranslations","root","innerContent","useRef","removeScrollRef","headingId","useId","descriptionId","position","func","animation","useResizer","floating","useFloating","click","useClick","role","useRole","dismiss","useDismiss","event","target","interactions","useInteractions","floatingSize","useMotionValue","sheetY","isDragging","dragStart","useEffect","onClose","useImperativeHandle","draggableMotionProps","_","scrollInitial","scroll","Component","Slot","Fragment","MotionConfig","FloatingPortal","AnimatePresence","FloatingOverlay","FloatingFocusManager","jsxs","mergeRefs","currentY","threshold","sheetYNumeric","animate","touch","y","prevY","scrollTop","XIcon","confirmGlobal","options","ModalConfirmProvider","setOpen","setOptions","resolve","setResolve","confirmAction","useCallback","opts","res","onConfirm","onCancel","Button"],"mappings":"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"}