@g4rcez/components 4.1.3 → 5.0.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 (572) hide show
  1. package/ai/docs/AnimatedList.md +1 -1
  2. package/ai/docs/Autocomplete.md +2 -2
  3. package/ai/docs/Button.md +1 -1
  4. package/ai/docs/Card.md +7 -7
  5. package/ai/docs/DatePicker.md +2 -2
  6. package/ai/docs/Dropdown.md +7 -7
  7. package/ai/docs/Expand.md +5 -5
  8. package/ai/docs/Input.md +3 -3
  9. package/ai/docs/InputField.md +24 -14
  10. package/ai/docs/List.md +1 -1
  11. package/ai/docs/Modal.md +4 -4
  12. package/ai/docs/MultiSelect.md +2 -2
  13. package/ai/docs/PageCalendar.md +2 -2
  14. package/ai/docs/Polymorph.md +1 -1
  15. package/ai/docs/Resizable.md +3 -3
  16. package/ai/docs/Select.md +2 -2
  17. package/ai/docs/Skeleton.md +1 -1
  18. package/ai/docs/Slot.md +3 -3
  19. package/ai/docs/Spinner.md +1 -1
  20. package/ai/docs/Stats.md +1 -1
  21. package/ai/docs/Step.md +1 -1
  22. package/ai/docs/Tabs.md +1 -1
  23. package/ai/docs/Tag.md +1 -1
  24. package/ai/docs/TaskList.md +3 -3
  25. package/ai/docs/Textarea.md +2 -2
  26. package/ai/docs/Tooltip.md +13 -9
  27. package/ai/docs/Typography.md +1 -1
  28. package/ai/docs/index.md +17 -17
  29. package/dist/CaretDown.es-BXl0Ixp3.js +23 -0
  30. package/dist/CaretDown.es-BXl0Ixp3.js.map +1 -0
  31. package/dist/CaretRight.es-B2mpMfqU.js +23 -0
  32. package/dist/CaretRight.es-B2mpMfqU.js.map +1 -0
  33. package/dist/CheckCircle.es-BB91gLT-.js +23 -0
  34. package/dist/CheckCircle.es-BB91gLT-.js.map +1 -0
  35. package/dist/File.es-CjNVQ00B.js +23 -0
  36. package/dist/File.es-CjNVQ00B.js.map +1 -0
  37. package/dist/IconBase.es-BlJQ9IXo.js +27 -0
  38. package/dist/IconBase.es-BlJQ9IXo.js.map +1 -0
  39. package/dist/Info.es-Dvln8pws.js +23 -0
  40. package/dist/Info.es-Dvln8pws.js.map +1 -0
  41. package/dist/MotionConfig-DKKYqBH2.js +27 -0
  42. package/dist/MotionConfig-DKKYqBH2.js.map +1 -0
  43. package/dist/MotionConfigContext-BORpSKe8.js +2571 -0
  44. package/dist/MotionConfigContext-BORpSKe8.js.map +1 -0
  45. package/dist/Warning.es-B_xCn-P5.js +23 -0
  46. package/dist/Warning.es-B_xCn-P5.js.map +1 -0
  47. package/dist/X.es-Cjq2a_OA.js +23 -0
  48. package/dist/X.es-Cjq2a_OA.js.map +1 -0
  49. package/dist/animate-BNYgkk_j.js +387 -0
  50. package/dist/animate-BNYgkk_j.js.map +1 -0
  51. package/dist/autocomplete-D3VOTihi.js +415 -0
  52. package/dist/autocomplete-D3VOTihi.js.map +1 -0
  53. package/dist/calendar-PCCZDUIL.js +1678 -0
  54. package/dist/calendar-PCCZDUIL.js.map +1 -0
  55. package/dist/components/core/button.js +75 -75
  56. package/dist/components/core/button.js.map +1 -1
  57. package/dist/components/core/tag.js +66 -66
  58. package/dist/components/core/tag.js.map +1 -1
  59. package/dist/components/display/alert.js +133 -95
  60. package/dist/components/display/alert.js.map +1 -1
  61. package/dist/components/display/calendar.js +3 -15
  62. package/dist/components/display/card.js +73 -82
  63. package/dist/components/display/card.js.map +1 -1
  64. package/dist/components/display/list.js +153 -93
  65. package/dist/components/display/list.js.map +1 -1
  66. package/dist/components/display/notifications.js +3 -15
  67. package/dist/components/display/stats.js +30 -16
  68. package/dist/components/display/stats.js.map +1 -1
  69. package/dist/components/display/tabs.js +3 -12
  70. package/dist/components/display/timeline.js +47 -28
  71. package/dist/components/display/timeline.js.map +1 -1
  72. package/dist/components/floating/dropdown.js +76 -65
  73. package/dist/components/floating/dropdown.js.map +1 -1
  74. package/dist/components/floating/expand.js +62 -40
  75. package/dist/components/floating/expand.js.map +1 -1
  76. package/dist/components/floating/menu.js +195 -177
  77. package/dist/components/floating/menu.js.map +1 -1
  78. package/dist/components/floating/modal.js +3 -301
  79. package/dist/components/floating/tooltip.js +63 -73
  80. package/dist/components/floating/tooltip.js.map +1 -1
  81. package/dist/components/form/autocomplete.js +3 -16
  82. package/dist/components/form/checkbox.js +34 -44
  83. package/dist/components/form/checkbox.js.map +1 -1
  84. package/dist/components/form/date-picker.js +3 -12
  85. package/dist/components/form/file-upload.js +3 -11
  86. package/dist/components/form/form.js +16 -7
  87. package/dist/components/form/form.js.map +1 -1
  88. package/dist/components/form/input.js +3 -5
  89. package/dist/components/form/radiobox.js +19 -30
  90. package/dist/components/form/radiobox.js.map +1 -1
  91. package/dist/components/form/select.js +77 -106
  92. package/dist/components/form/select.js.map +1 -1
  93. package/dist/components/form/switch.js +73 -64
  94. package/dist/components/form/switch.js.map +1 -1
  95. package/dist/components/form/task-list.js +3 -68
  96. package/dist/components/table/table.js +3 -10
  97. package/dist/date-picker-BhKEFZew.js +1498 -0
  98. package/dist/date-picker-BhKEFZew.js.map +1 -0
  99. package/dist/dist-BHFtgf5x.js +2593 -0
  100. package/dist/dist-BHFtgf5x.js.map +1 -0
  101. package/dist/dist-BrGpYRaj.js +178 -0
  102. package/dist/dist-BrGpYRaj.js.map +1 -0
  103. package/dist/dist-NmFtbuK4.js +35 -0
  104. package/dist/dist-NmFtbuK4.js.map +1 -0
  105. package/dist/dom-Bn4wY_Zx.js +2168 -0
  106. package/dist/dom-Bn4wY_Zx.js.map +1 -0
  107. package/dist/file-upload-DWbZfeG5.js +2966 -0
  108. package/dist/file-upload-DWbZfeG5.js.map +1 -0
  109. package/dist/floating-ui.react-CwXtBJ_y.js +3381 -0
  110. package/dist/floating-ui.react-CwXtBJ_y.js.map +1 -0
  111. package/dist/floating-ui.utils-CUrVRSbA.js +204 -0
  112. package/dist/floating-ui.utils-CUrVRSbA.js.map +1 -0
  113. package/dist/fns-KbsWlOTG.js +29 -0
  114. package/dist/fns-KbsWlOTG.js.map +1 -0
  115. package/dist/index.css +1 -1
  116. package/dist/index.js +7932 -20
  117. package/dist/index.js.map +1 -1
  118. package/dist/input-B7jqwPG4.js +473 -0
  119. package/dist/input-B7jqwPG4.js.map +1 -0
  120. package/dist/input-field-B_whI66Q.js +137 -0
  121. package/dist/input-field-B_whI66Q.js.map +1 -0
  122. package/dist/modal-Bz-61ays.js +373 -0
  123. package/dist/modal-Bz-61ays.js.map +1 -0
  124. package/dist/notifications-MT4XkLov.js +2203 -0
  125. package/dist/notifications-MT4XkLov.js.map +1 -0
  126. package/dist/polymorph-BLXhrn9n.js +14 -0
  127. package/dist/polymorph-BLXhrn9n.js.map +1 -0
  128. package/dist/preset/preset.tailwind.d.ts.map +1 -1
  129. package/dist/preset/preset.tailwind.js +40 -4
  130. package/dist/preset/src/styles/common.d.ts +0 -2
  131. package/dist/preset/src/styles/common.d.ts.map +1 -1
  132. package/dist/preset/src/styles/common.js +0 -9
  133. package/dist/preset/src/styles/components.d.ts +3 -0
  134. package/dist/preset/src/styles/components.d.ts.map +1 -0
  135. package/dist/preset/src/styles/components.js +400 -0
  136. package/dist/preset/src/styles/dark.d.ts.map +1 -1
  137. package/dist/preset/src/styles/dark.js +5 -3
  138. package/dist/preset/src/styles/default-tokens.d.ts +74 -0
  139. package/dist/preset/src/styles/default-tokens.d.ts.map +1 -0
  140. package/dist/preset/src/styles/default-tokens.js +44 -0
  141. package/dist/preset/src/styles/design-tokens.d.ts +1 -1
  142. package/dist/preset/src/styles/design-tokens.d.ts.map +1 -1
  143. package/dist/preset/src/styles/design-tokens.js +6 -2
  144. package/dist/preset/src/styles/light.d.ts.map +1 -1
  145. package/dist/preset/src/styles/light.js +22 -20
  146. package/dist/preset/src/styles/theme.types.d.ts +433 -8
  147. package/dist/preset/src/styles/theme.types.d.ts.map +1 -1
  148. package/dist/proxy-BcJ_5Dwq.js +2530 -0
  149. package/dist/proxy-BcJ_5Dwq.js.map +1 -0
  150. package/dist/skeleton-CBYEq3lM.js +26 -0
  151. package/dist/skeleton-CBYEq3lM.js.map +1 -0
  152. package/dist/slot-pC8kH9De.js +96 -0
  153. package/dist/slot-pC8kH9De.js.map +1 -0
  154. package/dist/styles/common.d.ts +0 -2
  155. package/dist/styles/common.d.ts.map +1 -1
  156. package/dist/styles/common.js +0 -9
  157. package/dist/styles/components.d.ts +3 -0
  158. package/dist/styles/components.d.ts.map +1 -0
  159. package/dist/styles/components.js +400 -0
  160. package/dist/styles/dark.d.ts.map +1 -1
  161. package/dist/styles/dark.js +5 -3
  162. package/dist/styles/default-tokens.d.ts +74 -0
  163. package/dist/styles/default-tokens.d.ts.map +1 -0
  164. package/dist/styles/default-tokens.js +44 -0
  165. package/dist/styles/design-tokens.d.ts +1 -1
  166. package/dist/styles/design-tokens.d.ts.map +1 -1
  167. package/dist/styles/design-tokens.js +6 -2
  168. package/dist/styles/light.d.ts.map +1 -1
  169. package/dist/styles/light.js +22 -20
  170. package/dist/styles/theme.types.d.ts +433 -8
  171. package/dist/styles/theme.types.d.ts.map +1 -1
  172. package/dist/table-CUFbAI2k.js +1914 -0
  173. package/dist/table-CUFbAI2k.js.map +1 -0
  174. package/dist/tabs-Ciy0l9OF.js +122 -0
  175. package/dist/tabs-Ciy0l9OF.js.map +1 -0
  176. package/dist/task-list-tKumO4WH.js +96 -0
  177. package/dist/task-list-tKumO4WH.js.map +1 -0
  178. package/dist/use-motion-value-BqPF1j90.js +15 -0
  179. package/dist/use-motion-value-BqPF1j90.js.map +1 -0
  180. package/dist/use-stable-ref-D5LFCx0u.js +12 -0
  181. package/dist/use-stable-ref-D5LFCx0u.js.map +1 -0
  182. package/dist/use-translations-DTLfPE3_.js +177 -0
  183. package/dist/use-translations-DTLfPE3_.js.map +1 -0
  184. package/package.json +17 -17
  185. package/dist/CaretDown.es-Cj7klWI3.js +0 -33
  186. package/dist/CaretDown.es-Cj7klWI3.js.map +0 -1
  187. package/dist/CaretRight.es-0-M8D9y8.js +0 -33
  188. package/dist/CaretRight.es-0-M8D9y8.js.map +0 -1
  189. package/dist/CheckCircle.es-C6QWLfk_.js +0 -33
  190. package/dist/CheckCircle.es-C6QWLfk_.js.map +0 -1
  191. package/dist/File.es-CA-vuPED.js +0 -33
  192. package/dist/File.es-CA-vuPED.js.map +0 -1
  193. package/dist/IconBase.es-DJ1oCtpo.js +0 -50
  194. package/dist/IconBase.es-DJ1oCtpo.js.map +0 -1
  195. package/dist/Info.es-CrZKs4q4.js +0 -33
  196. package/dist/Info.es-CrZKs4q4.js.map +0 -1
  197. package/dist/MotionConfigContext-C7MqlSdv.js +0 -2713
  198. package/dist/MotionConfigContext-C7MqlSdv.js.map +0 -1
  199. package/dist/Warning.es-D_eI6tLe.js +0 -39
  200. package/dist/Warning.es-D_eI6tLe.js.map +0 -1
  201. package/dist/X.es-BJ1O93El.js +0 -39
  202. package/dist/X.es-BJ1O93El.js.map +0 -1
  203. package/dist/autocomplete-DcTNOwyg.js +0 -393
  204. package/dist/autocomplete-DcTNOwyg.js.map +0 -1
  205. package/dist/calendar-BJMHRoy2.js +0 -1746
  206. package/dist/calendar-BJMHRoy2.js.map +0 -1
  207. package/dist/components/core/button.d.ts +0 -77
  208. package/dist/components/core/button.d.ts.map +0 -1
  209. package/dist/components/core/button.jsx +0 -79
  210. package/dist/components/core/heading.d.ts +0 -3
  211. package/dist/components/core/heading.d.ts.map +0 -1
  212. package/dist/components/core/heading.jsx +0 -4
  213. package/dist/components/core/polymorph.d.ts +0 -10
  214. package/dist/components/core/polymorph.d.ts.map +0 -1
  215. package/dist/components/core/polymorph.jsx +0 -5
  216. package/dist/components/core/render-on-view.d.ts +0 -7
  217. package/dist/components/core/render-on-view.d.ts.map +0 -1
  218. package/dist/components/core/render-on-view.jsx +0 -31
  219. package/dist/components/core/resizable.d.ts +0 -3
  220. package/dist/components/core/resizable.d.ts.map +0 -1
  221. package/dist/components/core/resizable.jsx +0 -51
  222. package/dist/components/core/slot.d.ts +0 -16
  223. package/dist/components/core/slot.d.ts.map +0 -1
  224. package/dist/components/core/slot.jsx +0 -156
  225. package/dist/components/core/tag.d.ts +0 -35
  226. package/dist/components/core/tag.d.ts.map +0 -1
  227. package/dist/components/core/tag.jsx +0 -51
  228. package/dist/components/core/typography.d.ts +0 -25
  229. package/dist/components/core/typography.d.ts.map +0 -1
  230. package/dist/components/core/typography.jsx +0 -18
  231. package/dist/components/display/alert.d.ts +0 -28
  232. package/dist/components/display/alert.d.ts.map +0 -1
  233. package/dist/components/display/alert.jsx +0 -61
  234. package/dist/components/display/calendar.d.ts +0 -42
  235. package/dist/components/display/calendar.d.ts.map +0 -1
  236. package/dist/components/display/calendar.js.map +0 -1
  237. package/dist/components/display/calendar.jsx +0 -299
  238. package/dist/components/display/card.d.ts +0 -29
  239. package/dist/components/display/card.d.ts.map +0 -1
  240. package/dist/components/display/card.jsx +0 -43
  241. package/dist/components/display/empty.d.ts +0 -8
  242. package/dist/components/display/empty.d.ts.map +0 -1
  243. package/dist/components/display/empty.jsx +0 -11
  244. package/dist/components/display/list.d.ts +0 -16
  245. package/dist/components/display/list.d.ts.map +0 -1
  246. package/dist/components/display/list.jsx +0 -81
  247. package/dist/components/display/notifications.d.ts +0 -27
  248. package/dist/components/display/notifications.d.ts.map +0 -1
  249. package/dist/components/display/notifications.js.map +0 -1
  250. package/dist/components/display/notifications.jsx +0 -126
  251. package/dist/components/display/progress.d.ts +0 -13
  252. package/dist/components/display/progress.d.ts.map +0 -1
  253. package/dist/components/display/progress.jsx +0 -11
  254. package/dist/components/display/shortcut.d.ts +0 -4
  255. package/dist/components/display/shortcut.d.ts.map +0 -1
  256. package/dist/components/display/shortcut.jsx +0 -23
  257. package/dist/components/display/skeleton.d.ts +0 -12
  258. package/dist/components/display/skeleton.d.ts.map +0 -1
  259. package/dist/components/display/skeleton.jsx +0 -19
  260. package/dist/components/display/spinner.d.ts +0 -5
  261. package/dist/components/display/spinner.d.ts.map +0 -1
  262. package/dist/components/display/spinner.jsx +0 -11
  263. package/dist/components/display/stats.d.ts +0 -12
  264. package/dist/components/display/stats.d.ts.map +0 -1
  265. package/dist/components/display/stats.jsx +0 -20
  266. package/dist/components/display/step.d.ts +0 -24
  267. package/dist/components/display/step.d.ts.map +0 -1
  268. package/dist/components/display/step.jsx +0 -131
  269. package/dist/components/display/tabs.d.ts +0 -24
  270. package/dist/components/display/tabs.d.ts.map +0 -1
  271. package/dist/components/display/tabs.js.map +0 -1
  272. package/dist/components/display/tabs.jsx +0 -125
  273. package/dist/components/display/timeline.d.ts +0 -10
  274. package/dist/components/display/timeline.d.ts.map +0 -1
  275. package/dist/components/display/timeline.jsx +0 -25
  276. package/dist/components/floating/command-palette.d.ts +0 -49
  277. package/dist/components/floating/command-palette.d.ts.map +0 -1
  278. package/dist/components/floating/command-palette.jsx +0 -197
  279. package/dist/components/floating/dropdown.d.ts +0 -15
  280. package/dist/components/floating/dropdown.d.ts.map +0 -1
  281. package/dist/components/floating/dropdown.jsx +0 -56
  282. package/dist/components/floating/expand.d.ts +0 -11
  283. package/dist/components/floating/expand.d.ts.map +0 -1
  284. package/dist/components/floating/expand.jsx +0 -44
  285. package/dist/components/floating/menu.d.ts +0 -52
  286. package/dist/components/floating/menu.d.ts.map +0 -1
  287. package/dist/components/floating/menu.jsx +0 -147
  288. package/dist/components/floating/modal.d.ts +0 -60
  289. package/dist/components/floating/modal.d.ts.map +0 -1
  290. package/dist/components/floating/modal.js.map +0 -1
  291. package/dist/components/floating/modal.jsx +0 -301
  292. package/dist/components/floating/toolbar.d.ts +0 -6
  293. package/dist/components/floating/toolbar.d.ts.map +0 -1
  294. package/dist/components/floating/toolbar.jsx +0 -5
  295. package/dist/components/floating/tooltip.d.ts +0 -17
  296. package/dist/components/floating/tooltip.d.ts.map +0 -1
  297. package/dist/components/floating/tooltip.jsx +0 -58
  298. package/dist/components/floating/wizard.d.ts +0 -26
  299. package/dist/components/floating/wizard.d.ts.map +0 -1
  300. package/dist/components/floating/wizard.jsx +0 -161
  301. package/dist/components/form/autocomplete.d.ts +0 -16
  302. package/dist/components/form/autocomplete.d.ts.map +0 -1
  303. package/dist/components/form/autocomplete.js.map +0 -1
  304. package/dist/components/form/autocomplete.jsx +0 -278
  305. package/dist/components/form/checkbox.d.ts +0 -12
  306. package/dist/components/form/checkbox.d.ts.map +0 -1
  307. package/dist/components/form/checkbox.jsx +0 -12
  308. package/dist/components/form/date-picker.d.ts +0 -10
  309. package/dist/components/form/date-picker.d.ts.map +0 -1
  310. package/dist/components/form/date-picker.js.map +0 -1
  311. package/dist/components/form/date-picker.jsx +0 -115
  312. package/dist/components/form/file-upload.d.ts +0 -15
  313. package/dist/components/form/file-upload.d.ts.map +0 -1
  314. package/dist/components/form/file-upload.js.map +0 -1
  315. package/dist/components/form/file-upload.jsx +0 -134
  316. package/dist/components/form/form.d.ts +0 -3
  317. package/dist/components/form/form.d.ts.map +0 -1
  318. package/dist/components/form/form.jsx +0 -10
  319. package/dist/components/form/formReset.d.ts +0 -2
  320. package/dist/components/form/formReset.d.ts.map +0 -1
  321. package/dist/components/form/formReset.jsx +0 -17
  322. package/dist/components/form/free-text.d.ts +0 -11
  323. package/dist/components/form/free-text.d.ts.map +0 -1
  324. package/dist/components/form/free-text.jsx +0 -41
  325. package/dist/components/form/input-field.d.ts +0 -34
  326. package/dist/components/form/input-field.d.ts.map +0 -1
  327. package/dist/components/form/input-field.jsx +0 -58
  328. package/dist/components/form/input.d.ts +0 -52
  329. package/dist/components/form/input.d.ts.map +0 -1
  330. package/dist/components/form/input.js.map +0 -1
  331. package/dist/components/form/input.jsx +0 -36
  332. package/dist/components/form/multi-select.d.ts +0 -19
  333. package/dist/components/form/multi-select.d.ts.map +0 -1
  334. package/dist/components/form/multi-select.jsx +0 -336
  335. package/dist/components/form/radiobox.d.ts +0 -7
  336. package/dist/components/form/radiobox.d.ts.map +0 -1
  337. package/dist/components/form/radiobox.jsx +0 -6
  338. package/dist/components/form/select.d.ts +0 -13
  339. package/dist/components/form/select.d.ts.map +0 -1
  340. package/dist/components/form/select.jsx +0 -42
  341. package/dist/components/form/slider.d.ts +0 -7
  342. package/dist/components/form/slider.d.ts.map +0 -1
  343. package/dist/components/form/slider.jsx +0 -45
  344. package/dist/components/form/switch.d.ts +0 -9
  345. package/dist/components/form/switch.d.ts.map +0 -1
  346. package/dist/components/form/switch.jsx +0 -46
  347. package/dist/components/form/task-list.d.ts +0 -3
  348. package/dist/components/form/task-list.d.ts.map +0 -1
  349. package/dist/components/form/task-list.js.map +0 -1
  350. package/dist/components/form/task-list.jsx +0 -26
  351. package/dist/components/form/textarea.d.ts +0 -6
  352. package/dist/components/form/textarea.d.ts.map +0 -1
  353. package/dist/components/form/textarea.jsx +0 -12
  354. package/dist/components/index.d.ts +0 -45
  355. package/dist/components/index.d.ts.map +0 -1
  356. package/dist/components/index.js +0 -44
  357. package/dist/components/page-calendar/calendar-header.d.ts +0 -16
  358. package/dist/components/page-calendar/calendar-header.d.ts.map +0 -1
  359. package/dist/components/page-calendar/calendar-header.jsx +0 -83
  360. package/dist/components/page-calendar/day-view.d.ts +0 -12
  361. package/dist/components/page-calendar/day-view.d.ts.map +0 -1
  362. package/dist/components/page-calendar/day-view.jsx +0 -94
  363. package/dist/components/page-calendar/event-pill.d.ts +0 -9
  364. package/dist/components/page-calendar/event-pill.d.ts.map +0 -1
  365. package/dist/components/page-calendar/event-pill.jsx +0 -25
  366. package/dist/components/page-calendar/index.d.ts +0 -4
  367. package/dist/components/page-calendar/index.d.ts.map +0 -1
  368. package/dist/components/page-calendar/index.js +0 -2
  369. package/dist/components/page-calendar/month-view.d.ts +0 -11
  370. package/dist/components/page-calendar/month-view.d.ts.map +0 -1
  371. package/dist/components/page-calendar/month-view.jsx +0 -46
  372. package/dist/components/page-calendar/page-calendar.d.ts +0 -18
  373. package/dist/components/page-calendar/page-calendar.d.ts.map +0 -1
  374. package/dist/components/page-calendar/page-calendar.jsx +0 -41
  375. package/dist/components/page-calendar/page-calendar.types.d.ts +0 -18
  376. package/dist/components/page-calendar/page-calendar.types.d.ts.map +0 -1
  377. package/dist/components/page-calendar/page-calendar.types.js +0 -1
  378. package/dist/components/page-calendar/page-calendar.utils.d.ts +0 -24
  379. package/dist/components/page-calendar/page-calendar.utils.d.ts.map +0 -1
  380. package/dist/components/page-calendar/page-calendar.utils.js +0 -93
  381. package/dist/components/page-calendar/week-view.d.ts +0 -11
  382. package/dist/components/page-calendar/week-view.d.ts.map +0 -1
  383. package/dist/components/page-calendar/week-view.jsx +0 -71
  384. package/dist/components/table/filter.d.ts +0 -42
  385. package/dist/components/table/filter.d.ts.map +0 -1
  386. package/dist/components/table/filter.jsx +0 -141
  387. package/dist/components/table/group.d.ts +0 -17
  388. package/dist/components/table/group.d.ts.map +0 -1
  389. package/dist/components/table/group.jsx +0 -68
  390. package/dist/components/table/index.d.ts +0 -19
  391. package/dist/components/table/index.d.ts.map +0 -1
  392. package/dist/components/table/index.jsx +0 -60
  393. package/dist/components/table/inner-table.d.ts +0 -29
  394. package/dist/components/table/inner-table.d.ts.map +0 -1
  395. package/dist/components/table/inner-table.jsx +0 -102
  396. package/dist/components/table/metadata.d.ts +0 -4
  397. package/dist/components/table/metadata.d.ts.map +0 -1
  398. package/dist/components/table/metadata.jsx +0 -36
  399. package/dist/components/table/pagination.d.ts +0 -5
  400. package/dist/components/table/pagination.d.ts.map +0 -1
  401. package/dist/components/table/pagination.jsx +0 -74
  402. package/dist/components/table/row.d.ts +0 -11
  403. package/dist/components/table/row.d.ts.map +0 -1
  404. package/dist/components/table/row.jsx +0 -49
  405. package/dist/components/table/sort.d.ts +0 -28
  406. package/dist/components/table/sort.d.ts.map +0 -1
  407. package/dist/components/table/sort.jsx +0 -109
  408. package/dist/components/table/table-lib.d.ts +0 -135
  409. package/dist/components/table/table-lib.d.ts.map +0 -1
  410. package/dist/components/table/table-lib.js +0 -83
  411. package/dist/components/table/table.context.d.ts +0 -10
  412. package/dist/components/table/table.context.d.ts.map +0 -1
  413. package/dist/components/table/table.context.jsx +0 -4
  414. package/dist/components/table/table.js.map +0 -1
  415. package/dist/components/table/thead.d.ts +0 -9
  416. package/dist/components/table/thead.d.ts.map +0 -1
  417. package/dist/components/table/thead.jsx +0 -103
  418. package/dist/config/context.d.ts +0 -21
  419. package/dist/config/context.d.ts.map +0 -1
  420. package/dist/config/context.js +0 -12
  421. package/dist/config/default-translations.d.ts +0 -94
  422. package/dist/config/default-translations.d.ts.map +0 -1
  423. package/dist/config/default-translations.jsx +0 -87
  424. package/dist/config/default-tweaks.d.ts +0 -13
  425. package/dist/config/default-tweaks.d.ts.map +0 -1
  426. package/dist/config/default-tweaks.js +0 -4
  427. package/dist/constants-r-AHn273.js +0 -6
  428. package/dist/constants-r-AHn273.js.map +0 -1
  429. package/dist/constants.d.ts +0 -3
  430. package/dist/constants.d.ts.map +0 -1
  431. package/dist/constants.js +0 -2
  432. package/dist/date-picker-Bnl07nd8.js +0 -1628
  433. package/dist/date-picker-Bnl07nd8.js.map +0 -1
  434. package/dist/dom-CyQHY7ID.js +0 -2838
  435. package/dist/dom-CyQHY7ID.js.map +0 -1
  436. package/dist/file-upload-93d5DR4q.js +0 -3255
  437. package/dist/file-upload-93d5DR4q.js.map +0 -1
  438. package/dist/floating-ui.react-M2PGXLDp.js +0 -3706
  439. package/dist/floating-ui.react-M2PGXLDp.js.map +0 -1
  440. package/dist/fns-C7Dt27Qd.js +0 -33
  441. package/dist/fns-C7Dt27Qd.js.map +0 -1
  442. package/dist/hooks/use-click-outside.d.ts +0 -3
  443. package/dist/hooks/use-click-outside.d.ts.map +0 -1
  444. package/dist/hooks/use-click-outside.js +0 -17
  445. package/dist/hooks/use-color-parser.d.ts +0 -2
  446. package/dist/hooks/use-color-parser.d.ts.map +0 -1
  447. package/dist/hooks/use-color-parser.js +0 -9
  448. package/dist/hooks/use-components-provider.d.ts +0 -15
  449. package/dist/hooks/use-components-provider.d.ts.map +0 -1
  450. package/dist/hooks/use-components-provider.jsx +0 -22
  451. package/dist/hooks/use-debounce.d.ts +0 -5
  452. package/dist/hooks/use-debounce.d.ts.map +0 -1
  453. package/dist/hooks/use-debounce.js +0 -12
  454. package/dist/hooks/use-floating-ref.d.ts +0 -2
  455. package/dist/hooks/use-floating-ref.d.ts.map +0 -1
  456. package/dist/hooks/use-floating-ref.js +0 -6
  457. package/dist/hooks/use-form.d.ts +0 -394
  458. package/dist/hooks/use-form.d.ts.map +0 -1
  459. package/dist/hooks/use-form.js +0 -563
  460. package/dist/hooks/use-hover.d.ts +0 -3
  461. package/dist/hooks/use-hover.d.ts.map +0 -1
  462. package/dist/hooks/use-hover.js +0 -18
  463. package/dist/hooks/use-input-id.d.ts +0 -4
  464. package/dist/hooks/use-input-id.d.ts.map +0 -1
  465. package/dist/hooks/use-input-id.js +0 -5
  466. package/dist/hooks/use-is-coarse-device.d.ts +0 -2
  467. package/dist/hooks/use-is-coarse-device.d.ts.map +0 -1
  468. package/dist/hooks/use-is-coarse-device.js +0 -12
  469. package/dist/hooks/use-locale.d.ts +0 -3
  470. package/dist/hooks/use-locale.d.ts.map +0 -1
  471. package/dist/hooks/use-locale.js +0 -10
  472. package/dist/hooks/use-media-query.d.ts +0 -2
  473. package/dist/hooks/use-media-query.d.ts.map +0 -1
  474. package/dist/hooks/use-media-query.js +0 -25
  475. package/dist/hooks/use-on-event.d.ts +0 -4
  476. package/dist/hooks/use-on-event.d.ts.map +0 -1
  477. package/dist/hooks/use-on-event.js +0 -7
  478. package/dist/hooks/use-parent.d.ts +0 -3
  479. package/dist/hooks/use-parent.d.ts.map +0 -1
  480. package/dist/hooks/use-parent.js +0 -21
  481. package/dist/hooks/use-preferences.d.ts +0 -2
  482. package/dist/hooks/use-preferences.d.ts.map +0 -1
  483. package/dist/hooks/use-preferences.js +0 -23
  484. package/dist/hooks/use-previous.d.ts +0 -2
  485. package/dist/hooks/use-previous.d.ts.map +0 -1
  486. package/dist/hooks/use-previous.js +0 -9
  487. package/dist/hooks/use-reactive.d.ts +0 -2
  488. package/dist/hooks/use-reactive.d.ts.map +0 -1
  489. package/dist/hooks/use-reactive.js +0 -9
  490. package/dist/hooks/use-remove-scroll.d.ts +0 -4
  491. package/dist/hooks/use-remove-scroll.d.ts.map +0 -1
  492. package/dist/hooks/use-remove-scroll.js +0 -48
  493. package/dist/hooks/use-resize-observer.d.ts +0 -2
  494. package/dist/hooks/use-resize-observer.d.ts.map +0 -1
  495. package/dist/hooks/use-resize-observer.js +0 -17
  496. package/dist/hooks/use-stable-ref.d.ts +0 -2
  497. package/dist/hooks/use-stable-ref.d.ts.map +0 -1
  498. package/dist/hooks/use-stable-ref.js +0 -9
  499. package/dist/hooks/use-swipe.d.ts +0 -8
  500. package/dist/hooks/use-swipe.d.ts.map +0 -1
  501. package/dist/hooks/use-swipe.js +0 -17
  502. package/dist/hooks/use-translations.d.ts +0 -92
  503. package/dist/hooks/use-translations.d.ts.map +0 -1
  504. package/dist/hooks/use-translations.js +0 -9
  505. package/dist/hooks/use-tweaks.d.ts +0 -3
  506. package/dist/hooks/use-tweaks.d.ts.map +0 -1
  507. package/dist/hooks/use-tweaks.js +0 -9
  508. package/dist/hooks/use-window-size.d.ts +0 -5
  509. package/dist/hooks/use-window-size.d.ts.map +0 -1
  510. package/dist/hooks/use-window-size.js +0 -14
  511. package/dist/index-0YMC-_Lt.js +0 -20
  512. package/dist/index-0YMC-_Lt.js.map +0 -1
  513. package/dist/index-BJ1ayTam.js +0 -126
  514. package/dist/index-BJ1ayTam.js.map +0 -1
  515. package/dist/index-C-PuFUZi.js +0 -3416
  516. package/dist/index-C-PuFUZi.js.map +0 -1
  517. package/dist/index-DDeQW0JW.js +0 -1816
  518. package/dist/index-DDeQW0JW.js.map +0 -1
  519. package/dist/index-DE4shK8D.js +0 -215
  520. package/dist/index-DE4shK8D.js.map +0 -1
  521. package/dist/index-DlJ_2RBL.js +0 -35
  522. package/dist/index-DlJ_2RBL.js.map +0 -1
  523. package/dist/index-t1qLJTt5.js +0 -351
  524. package/dist/index-t1qLJTt5.js.map +0 -1
  525. package/dist/index.d.ts +0 -22
  526. package/dist/index.d.ts.map +0 -1
  527. package/dist/index.esm-BaIwleSE.js +0 -343
  528. package/dist/index.esm-BaIwleSE.js.map +0 -1
  529. package/dist/input-_MVxmIpu.js +0 -443
  530. package/dist/input-_MVxmIpu.js.map +0 -1
  531. package/dist/input-field-CDCOODOl.js +0 -182
  532. package/dist/input-field-CDCOODOl.js.map +0 -1
  533. package/dist/lib/combi-keys.d.ts +0 -15
  534. package/dist/lib/combi-keys.d.ts.map +0 -1
  535. package/dist/lib/combi-keys.js +0 -60
  536. package/dist/lib/dict.d.ts +0 -9
  537. package/dist/lib/dict.d.ts.map +0 -1
  538. package/dist/lib/dict.js +0 -28
  539. package/dist/lib/dom.d.ts +0 -20
  540. package/dist/lib/dom.d.ts.map +0 -1
  541. package/dist/lib/dom.js +0 -66
  542. package/dist/lib/fns.d.ts +0 -11
  543. package/dist/lib/fns.d.ts.map +0 -1
  544. package/dist/lib/fns.js +0 -46
  545. package/dist/lib/fzf.d.ts +0 -16
  546. package/dist/lib/fzf.d.ts.map +0 -1
  547. package/dist/lib/fzf.js +0 -115
  548. package/dist/lib/keyboard-area.d.ts +0 -16
  549. package/dist/lib/keyboard-area.d.ts.map +0 -1
  550. package/dist/lib/keyboard-area.js +0 -14
  551. package/dist/notifications-Dp0ydKJS.js +0 -2576
  552. package/dist/notifications-Dp0ydKJS.js.map +0 -1
  553. package/dist/polymorph-B5n9fs_K.js +0 -10
  554. package/dist/polymorph-B5n9fs_K.js.map +0 -1
  555. package/dist/proxy-BZcQiBrp.js +0 -2495
  556. package/dist/proxy-BZcQiBrp.js.map +0 -1
  557. package/dist/skeleton-BjJobYYf.js +0 -24
  558. package/dist/skeleton-BjJobYYf.js.map +0 -1
  559. package/dist/slot-CRyweuj0.js +0 -79
  560. package/dist/slot-CRyweuj0.js.map +0 -1
  561. package/dist/tabs-B0g7YtQv.js +0 -123
  562. package/dist/tabs-B0g7YtQv.js.map +0 -1
  563. package/dist/tsconfig.lib.tsbuildinfo +0 -1
  564. package/dist/types.d.ts +0 -26
  565. package/dist/types.d.ts.map +0 -1
  566. package/dist/types.js +0 -1
  567. package/dist/use-motion-value-eGwNuWuw.js +0 -14
  568. package/dist/use-motion-value-eGwNuWuw.js.map +0 -1
  569. package/dist/use-stable-ref-CYh-YkID.js +0 -11
  570. package/dist/use-stable-ref-CYh-YkID.js.map +0 -1
  571. package/dist/use-translations-DSltA7H_.js +0 -169
  572. package/dist/use-translations-DSltA7H_.js.map +0 -1
@@ -1,147 +0,0 @@
1
- "use client";
2
- import { autoUpdate, flip, FloatingFocusManager, FloatingList, FloatingNode, FloatingPortal, FloatingTree, offset, safePolygon, shift, useClick, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingTree, useHover, useInteractions, useListItem, useListNavigation, useRole, useTypeahead, } from "@floating-ui/react";
3
- import { Slot } from "../core/slot";
4
- import { CaretRightIcon } from "@phosphor-icons/react";
5
- import React, { createContext, Fragment, useContext, useEffect, useRef, useState } from "react";
6
- import { FLOATING_DELAY, TYPEAHEAD_RESET_DELAY } from "../../constants";
7
- import { css, mergeRefs } from "../../lib/dom";
8
- const menuItemClassName = (highlight = "") => css("w-full min-w-36 outline-none p-2.5 items-center flex justify-between text-left", "hover:bg-primary focus:bg-primary aria-expanded:opacity-80", "focus:text-primary-foreground hover:text-primary-foreground", "first-of-type:rounded-t-lg last-of-type:rounded-b-lg", "disabled:opacity-40 disabled:cursor-not-allowed", highlight);
9
- const MenuContext = createContext({
10
- isOpen: false,
11
- activeIndex: null,
12
- getItemProps: () => ({}),
13
- setActiveIndex: () => { },
14
- setHasFocusInside: () => { },
15
- });
16
- const MenuComponent = React.forwardRef(({ children, FloatingComponent = "div", hover = true, open, isParent = false, restoreFocus = false, floatingClassName = "", label, ...props }, forwardedRef) => {
17
- const [isOpen, setIsOpen] = useState(open ?? false);
18
- const [hasFocusInside, setHasFocusInside] = useState(false);
19
- const [activeIndex, setActiveIndex] = useState(null);
20
- const elementsRef = useRef([]);
21
- const labelsRef = useRef([]);
22
- const parent = useContext(MenuContext);
23
- const parentId = useFloatingParentNodeId();
24
- const tree = useFloatingTree();
25
- const nodeId = useFloatingNodeId();
26
- const item = useListItem();
27
- const isNested = parentId !== null;
28
- const { floatingStyles, refs, context } = useFloating({
29
- nodeId,
30
- open: isOpen,
31
- transform: true,
32
- strategy: "absolute",
33
- onOpenChange: setIsOpen,
34
- whileElementsMounted: autoUpdate,
35
- placement: isNested ? "right" : "bottom-start",
36
- middleware: [offset({ mainAxis: isNested ? 0 : 4, alignmentAxis: isNested ? -4 : 0 }), flip(), shift()],
37
- });
38
- const role = useRole(context, { role: "menu" });
39
- const dismiss = useDismiss(context, { bubbles: true });
40
- const hoverModule = useHover(context, {
41
- move: false,
42
- enabled: hover,
43
- delay: { open: FLOATING_DELAY },
44
- handleClose: safePolygon({ blockPointerEvents: true, requireIntent: false }),
45
- });
46
- const click = useClick(context, {
47
- toggle: !isNested,
48
- event: "mousedown",
49
- ignoreMouse: isNested,
50
- keyboardHandlers: true,
51
- });
52
- const listNavigation = useListNavigation(context, {
53
- loop: true,
54
- activeIndex,
55
- nested: isNested,
56
- listRef: elementsRef,
57
- onNavigate: setActiveIndex,
58
- });
59
- const typeahead = useTypeahead(context, {
60
- activeIndex,
61
- listRef: labelsRef,
62
- resetMs: TYPEAHEAD_RESET_DELAY,
63
- onMatch: isOpen ? setActiveIndex : undefined,
64
- });
65
- const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions([hoverModule, click, role, dismiss, listNavigation, typeahead]);
66
- useEffect(() => {
67
- if (!tree)
68
- return;
69
- const handleTreeClick = () => setIsOpen(false);
70
- const onSubMenuOpen = (event) => {
71
- if (event.nodeId !== nodeId && event.parentId === parentId)
72
- setIsOpen(false);
73
- };
74
- tree.events.on("click", handleTreeClick);
75
- tree.events.on("menuopen", onSubMenuOpen);
76
- return () => {
77
- tree.events.off("click", handleTreeClick);
78
- tree.events.off("menuopen", onSubMenuOpen);
79
- };
80
- }, [tree, nodeId, parentId]);
81
- useEffect(() => {
82
- if (isOpen && tree)
83
- tree.events.emit("menuopen", { parentId, nodeId });
84
- }, [tree, isOpen, nodeId, parentId]);
85
- const className = isParent ? props.className : css(menuItemClassName(props.className));
86
- return (<FloatingNode id={nodeId}>
87
- <Fragment>
88
- {props.asChild ? (<Slot {...getReferenceProps(parent.getItemProps({
89
- ...props,
90
- onFocus(event) {
91
- props.onFocus?.(event);
92
- setHasFocusInside(false);
93
- parent.setHasFocusInside(true);
94
- },
95
- }))} children={label} className={className} data-open={isOpen ? "" : undefined} data-nested={isNested ? "" : undefined} role={isNested ? "menuitem" : undefined} data-focus-inside={hasFocusInside ? "" : undefined} ref={mergeRefs(refs.setReference, item.ref, forwardedRef)} tabIndex={!isNested ? undefined : parent.activeIndex === item.index ? 0 : -1}/>) : (<button type="button" className={className} data-open={isOpen ? "" : undefined} data-nested={isNested ? "" : undefined} role={isNested ? "menuitem" : undefined} data-focus-inside={hasFocusInside ? "" : undefined} ref={mergeRefs(refs.setReference, item.ref, forwardedRef)} tabIndex={!isNested ? undefined : parent.activeIndex === item.index ? 0 : -1} {...getReferenceProps(parent.getItemProps({
96
- ...props,
97
- onFocus(event) {
98
- props.onFocus?.(event);
99
- setHasFocusInside(false);
100
- parent.setHasFocusInside(true);
101
- },
102
- }))}>
103
- {label}
104
- {isNested && (<span style={{ marginLeft: 10, fontSize: 10 }}>
105
- <span className="sr-only">Next menu</span>
106
- <CaretRightIcon size={14}/>
107
- </span>)}
108
- </button>)}
109
- </Fragment>
110
- <MenuContext.Provider value={{ activeIndex, setActiveIndex, getItemProps, setHasFocusInside, isOpen }}>
111
- <FloatingList elementsRef={elementsRef} labelsRef={labelsRef}>
112
- {isOpen && (<FloatingPortal>
113
- <FloatingFocusManager context={context} modal={false} initialFocus={isNested ? -1 : 0} returnFocus={isParent ? restoreFocus : !isNested}>
114
- <FloatingComponent {...getFloatingProps()} ref={refs.setFloating} style={{ ...props.style, ...floatingStyles }} className={css("isolate z-tooltip flex max-h-80 flex-col items-start overflow-y-auto rounded-lg border border-floating-border bg-floating-background text-left shadow-shadow-floating outline-none", floatingClassName)}>
115
- {children}
116
- </FloatingComponent>
117
- </FloatingFocusManager>
118
- </FloatingPortal>)}
119
- </FloatingList>
120
- </MenuContext.Provider>
121
- </FloatingNode>);
122
- });
123
- export const MenuItem = React.forwardRef(({ title, Right, disabled, children, ...props }, forwardedRef) => {
124
- const menu = useContext(MenuContext);
125
- const item = useListItem({ label: disabled ? null : title });
126
- const tree = useFloatingTree();
127
- const isActive = item.index === menu.activeIndex;
128
- return (<button {...props} title={title} type="button" role="menuitem" disabled={disabled} data-active={isActive} data-open={menu.isOpen} tabIndex={isActive ? 0 : -1} ref={mergeRefs(item.ref, forwardedRef)} className={menuItemClassName(`${props.className ?? ""} ${isActive ? "bg-primary text-primary-foreground" : ""}`)} {...menu.getItemProps({
129
- onClick(event) {
130
- props.onClick?.(event);
131
- tree?.events.emit("click");
132
- },
133
- onFocus(event) {
134
- props.onFocus?.(event);
135
- menu.setHasFocusInside(true);
136
- },
137
- })}>
138
- {children}
139
- {Right ? <Right size={16}/> : null}
140
- </button>);
141
- });
142
- export const Menu = React.forwardRef((props, ref) => {
143
- const parentId = useFloatingParentNodeId();
144
- return parentId === null ? (<FloatingTree>
145
- <MenuComponent {...props} isParent ref={ref}/>
146
- </FloatingTree>) : (<MenuComponent {...props} isParent={false} ref={ref}/>);
147
- });
@@ -1,60 +0,0 @@
1
- import { type ElementProps, type FloatingContext } from "@floating-ui/react";
2
- import { HTMLMotionProps } from "motion/react";
3
- import React from "react";
4
- import { Label, Override } from "../../types";
5
- import { ButtonProps } from "../core/button";
6
- export declare const useConfirm: () => (options: ConfirmOptions) => Promise<boolean>;
7
- export type ModalType = "dialog" | "drawer" | "sheet";
8
- export type DrawerPosition = "left" | "right";
9
- export type ModalProps = Override<HTMLMotionProps<"div">, ({
10
- title: Label;
11
- ariaTitle?: string;
12
- } | {
13
- ariaTitle: string;
14
- title?: Label;
15
- }) & {
16
- open: boolean;
17
- onChange: (nextState: boolean) => void;
18
- } & Partial<{
19
- footer: Label;
20
- type: ModalType;
21
- animated: boolean;
22
- asChild: boolean;
23
- layoutId: string;
24
- resizer: boolean;
25
- className: string;
26
- closable: boolean;
27
- forceType: boolean;
28
- bodyClassName: string;
29
- overlayClassName: string;
30
- position: DrawerPosition;
31
- overlayClickClose: boolean;
32
- closeOnFocusOut: boolean;
33
- role: "dialog";
34
- interactions: ElementProps[];
35
- trigger: Label;
36
- }>>;
37
- export type ModalRef = {
38
- context: FloatingContext;
39
- floating: HTMLElement | null;
40
- };
41
- type ModalComponent = React.FC<ModalProps> & {
42
- confirm: <T>(options: ConfirmOptions) => Promise<T>;
43
- };
44
- export declare const Modal: ModalComponent;
45
- type ButtonConfirmationAction = {
46
- value?: unknown;
47
- text?: Label;
48
- theme?: ButtonProps["theme"];
49
- };
50
- export type ConfirmOptions = {
51
- title?: Label;
52
- description?: Label;
53
- cancel?: ButtonConfirmationAction;
54
- confirm?: ButtonConfirmationAction;
55
- };
56
- export declare const ModalConfirmProvider: ({ children }: {
57
- children: React.ReactNode;
58
- }) => React.JSX.Element;
59
- export {};
60
- //# sourceMappingURL=modal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/floating/modal.tsx"],"names":[],"mappings":"AACA,OAAO,EASH,KAAK,YAAY,EACjB,KAAK,eAAe,EACvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAEH,eAAe,EAQlB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAWN,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,KAAK,EAAO,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAU,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMrD,eAAO,MAAM,UAAU,kBAF8B,cAAc,KAAK,OAAO,CAAC,OAAO,CAEvB,CAAC;AAEjE,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAuD9C,MAAM,MAAM,UAAU,GAAG,QAAQ,CAC7B,eAAe,CAAC,KAAK,CAAC,EACtB,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,GAAG;IAC5E,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C,GAAG,OAAO,CAAC;IACJ,MAAM,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,OAAO,EAAE,KAAK,CAAC;CAClB,CAAC,CACT,CAAC;AAkFF,MAAM,MAAM,QAAQ,GAAG;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAAC;AAIlF,KAAK,cAAc,GAAG,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG;IACzC,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,cA+PU,CAAC;AAE/B,KAAK,wBAAwB,GAAG;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACtC,CAAC;AAaF,eAAO,MAAM,oBAAoB,GAAI,cAAc;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,sBAuD/E,CAAC"}
@@ -1 +0,0 @@
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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"}
@@ -1,301 +0,0 @@
1
- "use client";
2
- import { FloatingFocusManager, FloatingOverlay, FloatingPortal, useClick, useDismiss, useFloating, useInteractions, useRole, } from "@floating-ui/react";
3
- import { cva } from "class-variance-authority";
4
- import { XIcon } from "@phosphor-icons/react";
5
- import { AnimatePresence, motion, MotionConfig, useMotionValue, animate, } from "motion/react";
6
- import { Slot } from "../core/slot";
7
- import React, { forwardRef, Fragment, useEffect, useId, useImperativeHandle, useRef, useState, useCallback, } from "react";
8
- import { useMediaQuery } from "../../hooks/use-media-query";
9
- import { css, mergeRefs } from "../../lib/dom";
10
- import { useFloatingRef } from "../../hooks/use-floating-ref";
11
- import { useTranslations } from "../../hooks/use-translations";
12
- import { Button } from "../core/button";
13
- const ConfirmContext = React.createContext(async () => false);
14
- export const useConfirm = () => React.useContext(ConfirmContext);
15
- const animationDuration = "500ms";
16
- const drawerLeft = {
17
- exit: { x: ["0%", "-30%"], opacity: 0, animationDuration },
18
- enter: { x: ["-30%", "0%"], opacity: 1, animationDuration },
19
- initial: { x: ["-30%", "0%"], opacity: 0.8, animationDuration },
20
- };
21
- const drawerRight = {
22
- enter: { x: "0%", opacity: 1, animationDuration },
23
- exit: { x: ["0%", "30%"], opacity: 0, animationDuration },
24
- initial: { x: ["30%", "0%"], opacity: 0.8, animationDuration },
25
- };
26
- const animations = {
27
- drawer: (type) => (type === "left" ? drawerLeft : drawerRight),
28
- sheet: {
29
- enter: { opacity: 1, y: "0%", animationDuration, transformOrigin: "bottom" },
30
- exit: { opacity: 0.4, y: "10%", animationDuration, transformOrigin: "bottom" },
31
- initial: { opacity: 0.7, y: "10%", animationDuration, transformOrigin: "bottom" },
32
- },
33
- dialog: {
34
- exit: { opacity: 0, scale: 0.95, animationDuration },
35
- enter: { opacity: 1, scale: [1.05, 1], animationDuration },
36
- initial: { opacity: 0.5, scale: 0.95, animationDuration, transition: { duration: 0.5, ease: "easeInOut" } },
37
- },
38
- };
39
- const variants = cva("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", {
40
- variants: {
41
- type: {
42
- drawer: "absolute h-screen max-h-screen min-h-0 w-fit max-w-[90%]",
43
- dialog: "container relative h-min max-h-[calc(100lvh-10%)] rounded-lg py-4",
44
- 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",
45
- },
46
- position: {
47
- none: "",
48
- right: "absolute right-0 top-0 rounded-l-lg py-4",
49
- left: "absolute left-0 top-0 rounded-r-lg py-4",
50
- },
51
- },
52
- defaultVariants: { position: "right", type: "dialog" },
53
- });
54
- const dragConstraints = { top: 0, left: 0, right: 0, bottom: 0 };
55
- const calculateClose = (n) => n * 0.6;
56
- const Draggable = (props) => {
57
- const onDrag = (e, info) => {
58
- if (props.parent.current) {
59
- e.stopPropagation();
60
- e.stopImmediatePropagation();
61
- if (props.sheet) {
62
- const div = props.parent.current;
63
- const rect = div.getBoundingClientRect();
64
- const v = props.value.get() || rect.height;
65
- const result = Math.abs(v - info.delta.y);
66
- const max = window.outerHeight;
67
- const screenHeightToClose = calculateClose(max);
68
- if (result >= screenHeightToClose)
69
- return props.value.set(result);
70
- if (document.activeElement instanceof HTMLElement) {
71
- document.activeElement?.blur();
72
- }
73
- props.onChange(false);
74
- return setTimeout(() => props.value.set(undefined), 350);
75
- }
76
- const div = props.parent.current;
77
- const v = props.value.get() || div.getBoundingClientRect().width;
78
- const delta = props.position === "right" ? -info.delta.x : info.delta.x;
79
- const value = Math.abs(v + delta);
80
- return props.value.set(value);
81
- }
82
- };
83
- return (<motion.button draggable dragListener dragMomentum tabIndex={-1} type="button" animate={false} dragElastic={0} dragPropagation initial={false} onDrag={onDrag} dragSnapToOrigin dragDirectionLock aria-hidden="true" drag={props.sheet ? "y" : "x"} dragConstraints={dragConstraints} whileDrag={{ cursor: "grabbing" }} className={css("absolute isolate z-calendar rounded-lg", props.sheet ? "cursor-row-resize" : "cursor-col-resize bg-floating-border", props.sheet
84
- ? "top-1 flex h-3 w-full justify-center py-2"
85
- : props.position === "left"
86
- ? "right-5 top-1/2 h-10 w-2"
87
- : "left-2 top-1/2 h-10 w-2")}>
88
- {props.sheet ? <div className="h-2 w-1/4 rounded-lg bg-floating-border"/> : null}
89
- </motion.button>);
90
- };
91
- const positions = { drawer: "right", sheet: "none", dialog: "none" };
92
- const fetchPosition = (isDesktop, forceType, propsType, propsPosition) => {
93
- const type = propsType || "dialog";
94
- if (isDesktop)
95
- return propsType === "drawer" ? (propsPosition ?? positions.drawer) : positions[type];
96
- return forceType ? positions[type] : positions.sheet;
97
- };
98
- const noop = [];
99
- export const Modal = forwardRef(({ open, title, footer, asChild, trigger, children, onChange, ariaTitle, className, bodyClassName, resizer = true, animated = true, closable = true, forceType = false, layoutId = undefined, overlayClassName = "", type: _type = "dialog", position: propsPosition, overlayClickClose = false, closeOnFocusOut = false, interactions: outInteractions = noop, ...props }, externalRef) => {
100
- const t = useTranslations();
101
- const root = useFloatingRef();
102
- const innerContent = useRef(null);
103
- const removeScrollRef = useRef(null);
104
- const headingId = useId();
105
- const descriptionId = useId();
106
- const isDesktop = useMediaQuery("(min-width: 64rem)");
107
- const position = fetchPosition(isDesktop, forceType, _type, propsPosition);
108
- const func = isDesktop ? animations[_type] : forceType ? animations[_type] : animations.sheet;
109
- const animation = typeof func === "function" ? func(position) : func;
110
- const type = isDesktop ? _type : forceType ? _type : "sheet";
111
- const useResizer = type !== "dialog";
112
- const floating = useFloating({ open, onOpenChange: onChange, strategy: "fixed" });
113
- const click = useClick(floating.context, {});
114
- const role = useRole(floating.context, { role: "dialog" });
115
- const dismiss = useDismiss(floating.context, {
116
- bubbles: true,
117
- escapeKey: true,
118
- outsidePress: (event) => {
119
- const target = event.target;
120
- return overlayClickClose && !!target?.isConnected;
121
- },
122
- });
123
- const interactions = useInteractions([click, dismiss, role].concat(outInteractions));
124
- const floatingSize = useMotionValue(undefined);
125
- const sheetY = useMotionValue(undefined);
126
- const isDragging = useRef(false);
127
- const dragStart = useRef(0);
128
- useEffect(() => {
129
- floatingSize.set(undefined);
130
- sheetY.set(undefined);
131
- }, [type, floatingSize, sheetY]);
132
- const onClose = () => onChange(false);
133
- useImperativeHandle(externalRef, () => ({ context: floating.context, floating: removeScrollRef.current }), [
134
- floating.context,
135
- removeScrollRef,
136
- ]);
137
- const onDragHeader = (_, info) => {
138
- const div = floating.refs.floating.current;
139
- const rect = div.getBoundingClientRect();
140
- const v = floatingSize.get() || rect.height;
141
- const result = Math.abs(v - info.delta.y);
142
- const max = window.outerHeight;
143
- const screenHeightToClose = calculateClose(max);
144
- if (result >= screenHeightToClose)
145
- return floatingSize.set(result);
146
- if (document.activeElement instanceof HTMLElement) {
147
- document.activeElement?.blur();
148
- }
149
- onChange?.(false);
150
- return setTimeout(() => floatingSize.set(undefined), 350);
151
- };
152
- const draggableMotionProps = type === "sheet"
153
- ? {
154
- drag: "y",
155
- animate: false,
156
- dragElastic: 0,
157
- initial: false,
158
- dragConstraints,
159
- draggable: true,
160
- dragListener: true,
161
- dragMomentum: true,
162
- onDrag: onDragHeader,
163
- dragPropagation: true,
164
- dragSnapToOrigin: true,
165
- dragDirectionLock: true,
166
- whileDrag: { cursor: "grabbing" },
167
- }
168
- : { animate: animated, initial: false };
169
- const scrollInitial = useMotionValue(undefined);
170
- const scroll = useMotionValue(undefined);
171
- const Component = asChild ? Slot : motion.button;
172
- return (<Fragment>
173
- {trigger ? (<Component ref={floating.refs.setReference} {...interactions.getReferenceProps()} layoutId={layoutId} type="button">
174
- {trigger}
175
- </Component>) : null}
176
- <MotionConfig reducedMotion={animated ? "user" : "always"}>
177
- <FloatingPortal preserveTabOrder root={root}>
178
- <AnimatePresence mode="wait" propagate>
179
- {open ? (<FloatingOverlay lockScroll className={css("inset-0 isolate z-overlay flex h-[100dvh] !overflow-clip bg-floating-overlay/80", type === "drawer" ? "" : "items-start justify-center pt-10 lg:p-10", overlayClassName)}>
180
- <FloatingFocusManager guards modal closeOnFocusOut={closeOnFocusOut} context={floating.context}>
181
- <AnimatePresence propagate>
182
- <motion.div {...props} {...(title
183
- ? {
184
- "aria-labelledby": headingId,
185
- "aria-describedby": descriptionId,
186
- }
187
- : { "aria-label": ariaTitle })} {...interactions.getFloatingProps({
188
- "aria-modal": open,
189
- ref: mergeRefs(floating.refs.setFloating, removeScrollRef),
190
- className: css(variants({ position, type }), className, "isolate overscroll-contain"),
191
- })} exit="exit" layout={true} animate="enter" initial="initial" layoutId={layoutId} variants={animation} data-component="modal" style={type === "drawer" ? { width: floatingSize } : { height: floatingSize, y: sheetY }}>
192
- {useResizer && resizer ? (<Draggable onChange={onChange} value={floatingSize} sheet={type === "sheet"} position={position} parent={floating.refs.floating}/>) : null}
193
- {title ? (<motion.header {...draggableMotionProps} className="relative isolate w-full">
194
- {title ? (<h2 id={headingId} className="block select-text border-b border-floating-border px-8 pb-2 text-3xl font-medium leading-relaxed">
195
- {title}
196
- </h2>) : null}
197
- </motion.header>) : null}
198
- <motion.section ref={innerContent} id={title ? descriptionId : undefined} data-component="modal-body" className={css("flex-1 select-text overflow-y-auto px-8 py-1", bodyClassName)} onTouchEnd={async () => {
199
- scroll.set(undefined);
200
- scrollInitial.set(undefined);
201
- if (isDragging.current) {
202
- const currentY = sheetY.get() || 0;
203
- const threshold = window.innerHeight * 0.2;
204
- const sheetYNumeric = sheetY;
205
- if (currentY > threshold) {
206
- await animate(sheetYNumeric, window.innerHeight, { duration: 0.2, ease: "easeIn" })
207
- .finished;
208
- onChange(false);
209
- }
210
- else {
211
- animate(sheetYNumeric, 0, { type: "spring", bounce: 0, duration: 0.3 });
212
- }
213
- isDragging.current = false;
214
- }
215
- }} onTouchStart={(e) => {
216
- const touch = e.changedTouches[0];
217
- scrollInitial.set(touch.pageY);
218
- scroll.set(touch.pageY);
219
- isDragging.current = false;
220
- }} onTouchMove={(e) => {
221
- const touch = e.changedTouches[0];
222
- const y = touch.pageY;
223
- const prevY = scroll.get() || y;
224
- const scrollTop = innerContent.current?.scrollTop || 0;
225
- if (!isDragging.current && scrollTop <= 0 && y > prevY && type === "sheet") {
226
- isDragging.current = true;
227
- dragStart.current = y;
228
- }
229
- if (isDragging.current) {
230
- const delta = y - dragStart.current;
231
- if (delta < 0) {
232
- sheetY.set(delta * 0.2);
233
- }
234
- else {
235
- sheetY.set(delta);
236
- }
237
- }
238
- scroll.set(y);
239
- }}>
240
- {children}
241
- </motion.section>
242
- {footer ? (<footer className="w-full select-text border-t border-floating-border px-8 pt-4">{footer}</footer>) : null}
243
- {closable ? (<div className="absolute right-4 top-1 z-floating">
244
- <button type="button" onClick={onClose} aria-label={t.closeButton} className="p-1 opacity-70 transition-colors hover:text-danger hover:opacity-100 focus:text-danger">
245
- <XIcon aria-hidden="true"/>
246
- </button>
247
- </div>) : null}
248
- </motion.div>
249
- </AnimatePresence>
250
- </FloatingFocusManager>
251
- </FloatingOverlay>) : null}
252
- </AnimatePresence>
253
- </FloatingPortal>
254
- </MotionConfig>
255
- </Fragment>);
256
- });
257
- let confirmGlobal = async (_) => {
258
- if (typeof window !== "undefined") {
259
- console.warn("ConfirmationProvider is not mounted");
260
- }
261
- return false;
262
- };
263
- Modal.confirm = (options) => confirmGlobal(options);
264
- export const ModalConfirmProvider = ({ children }) => {
265
- const [open, setOpen] = useState(false);
266
- const [options, setOptions] = useState({});
267
- const [resolve, setResolve] = useState(() => { });
268
- const confirmAction = useCallback((opts) => {
269
- setOptions(opts);
270
- setOpen(true);
271
- return new Promise((res) => {
272
- setResolve(() => res);
273
- });
274
- }, []);
275
- useEffect(() => {
276
- confirmGlobal = confirmAction;
277
- }, [confirmAction]);
278
- const onConfirm = () => {
279
- setOpen(false);
280
- const value = options.confirm?.value ?? true;
281
- resolve(value ?? true);
282
- };
283
- const onCancel = () => {
284
- setOpen(false);
285
- const value = options.cancel?.value ?? false;
286
- resolve(value ?? false);
287
- };
288
- return (<ConfirmContext.Provider value={confirmAction}>
289
- {children}
290
- <Modal open={open} type="dialog" closable={false} onChange={setOpen} overlayClickClose={false} title={options.title || "Confirmation"} className="container max-w-dialog lg:max-w-96" footer={<div className="flex justify-end gap-2">
291
- <Button theme={options.cancel?.theme || "ghost-muted"} onClick={onCancel}>
292
- {options.cancel?.text || "Cancel"}
293
- </Button>
294
- <Button autoFocus theme={options.confirm?.theme || "primary"} onClick={onConfirm}>
295
- {options.confirm?.text || "Confirm"}
296
- </Button>
297
- </div>}>
298
- <div className="py-2 text-foreground">{options.description}</div>
299
- </Modal>
300
- </ConfirmContext.Provider>);
301
- };
@@ -1,6 +0,0 @@
1
- import { PropsWithChildren } from "react";
2
- export type ToolbarProps = {
3
- root?: HTMLElement;
4
- };
5
- export declare const Toolbar: (props: PropsWithChildren<ToolbarProps>) => import("react").JSX.Element;
6
- //# sourceMappingURL=toolbar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/floating/toolbar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,OAAO,iBAAiB,CAAC,YAAY,CAAC,gCAI7D,CAAC"}
@@ -1,5 +0,0 @@
1
- "use client";
2
- import { motion } from "motion/react";
3
- export const Toolbar = (props) => (<motion.div className="sticky bottom-4 flex items-center justify-center rounded-lg border border-card-border bg-background p-4">
4
- {props.children}
5
- </motion.div>);