@g4rcez/components 4.0.1 → 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 (415) hide show
  1. package/ai/SKILL.md +233 -0
  2. package/ai/docs/Alert.md +166 -0
  3. package/ai/docs/AnimatedList.md +206 -0
  4. package/ai/docs/Autocomplete.md +221 -0
  5. package/ai/docs/Button.md +182 -0
  6. package/ai/docs/Calendar.md +185 -0
  7. package/ai/docs/Card.md +178 -0
  8. package/ai/docs/Checkbox.md +194 -0
  9. package/ai/docs/CommandPalette.md +275 -0
  10. package/ai/docs/DatePicker.md +152 -0
  11. package/ai/docs/Dropdown.md +195 -0
  12. package/{dist/ai → ai}/docs/Empty.md +41 -44
  13. package/{dist/ai → ai}/docs/Expand.md +40 -54
  14. package/ai/docs/FileUpload.md +218 -0
  15. package/{dist/ai → ai}/docs/Form.md +35 -29
  16. package/{dist/ai → ai}/docs/FormReset.md +37 -37
  17. package/{dist/ai → ai}/docs/Heading.md +4 -6
  18. package/ai/docs/Input.md +212 -0
  19. package/ai/docs/InputField.md +170 -0
  20. package/ai/docs/List.md +208 -0
  21. package/ai/docs/Menu.md +168 -0
  22. package/ai/docs/Modal.md +273 -0
  23. package/ai/docs/MultiSelect.md +177 -0
  24. package/ai/docs/Notifications.md +231 -0
  25. package/ai/docs/PageCalendar.md +262 -0
  26. package/{dist/ai → ai}/docs/Polymorph.md +25 -41
  27. package/{dist/ai → ai}/docs/Progress.md +55 -51
  28. package/{dist/ai → ai}/docs/Radiobox.md +49 -41
  29. package/{dist/ai → ai}/docs/RenderOnView.md +26 -32
  30. package/{dist/ai → ai}/docs/Resizable.md +60 -65
  31. package/ai/docs/Select.md +284 -0
  32. package/{dist/ai → ai}/docs/Shortcut.md +14 -14
  33. package/{dist/ai → ai}/docs/Skeleton.md +56 -60
  34. package/{dist/ai → ai}/docs/Slider.md +26 -49
  35. package/{dist/ai → ai}/docs/Slot.md +15 -17
  36. package/{dist/ai → ai}/docs/Spinner.md +17 -15
  37. package/{dist/ai → ai}/docs/Stats.md +44 -42
  38. package/ai/docs/Step.md +159 -0
  39. package/{dist/ai → ai}/docs/Switch.md +44 -54
  40. package/ai/docs/Table.md +286 -0
  41. package/ai/docs/Tabs.md +191 -0
  42. package/ai/docs/Tag.md +222 -0
  43. package/{dist/ai → ai}/docs/TaskList.md +40 -50
  44. package/ai/docs/Textarea.md +144 -0
  45. package/ai/docs/Timeline.md +212 -0
  46. package/{dist/ai → ai}/docs/Toolbar.md +46 -46
  47. package/ai/docs/Tooltip.md +231 -0
  48. package/ai/docs/Typography.md +187 -0
  49. package/ai/docs/Wizard.md +208 -0
  50. package/ai/docs/index.md +183 -0
  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 +2826 -2765
  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 +101 -88
  153. package/dist/ai/SKILL.md +0 -266
  154. package/dist/ai/docs/Alert.md +0 -167
  155. package/dist/ai/docs/AnimatedList.md +0 -205
  156. package/dist/ai/docs/Autocomplete.md +0 -225
  157. package/dist/ai/docs/Button.md +0 -182
  158. package/dist/ai/docs/Calendar.md +0 -219
  159. package/dist/ai/docs/Card.md +0 -174
  160. package/dist/ai/docs/Checkbox.md +0 -199
  161. package/dist/ai/docs/CommandPalette.md +0 -293
  162. package/dist/ai/docs/DatePicker.md +0 -171
  163. package/dist/ai/docs/Dropdown.md +0 -223
  164. package/dist/ai/docs/FileUpload.md +0 -225
  165. package/dist/ai/docs/Input.md +0 -237
  166. package/dist/ai/docs/InputField.md +0 -170
  167. package/dist/ai/docs/List.md +0 -205
  168. package/dist/ai/docs/Menu.md +0 -166
  169. package/dist/ai/docs/Modal.md +0 -280
  170. package/dist/ai/docs/MultiSelect.md +0 -196
  171. package/dist/ai/docs/Notifications.md +0 -231
  172. package/dist/ai/docs/PageCalendar.md +0 -271
  173. package/dist/ai/docs/Select.md +0 -284
  174. package/dist/ai/docs/Step.md +0 -159
  175. package/dist/ai/docs/Table.md +0 -298
  176. package/dist/ai/docs/Tabs.md +0 -191
  177. package/dist/ai/docs/Tag.md +0 -224
  178. package/dist/ai/docs/Textarea.md +0 -167
  179. package/dist/ai/docs/Timeline.md +0 -210
  180. package/dist/ai/docs/Tooltip.md +0 -231
  181. package/dist/ai/docs/TransferList.md +0 -142
  182. package/dist/ai/docs/Typography.md +0 -187
  183. package/dist/ai/docs/Wizard.md +0 -213
  184. package/dist/ai/docs/index.md +0 -183
  185. package/dist/autocomplete-Cn9Z2hLq.js +0 -375
  186. package/dist/autocomplete-Cn9Z2hLq.js.map +0 -1
  187. package/dist/calendar-B5lSd0ID.js.map +0 -1
  188. package/dist/components/core/button.d.ts +0 -77
  189. package/dist/components/core/button.d.ts.map +0 -1
  190. package/dist/components/core/heading.d.ts +0 -3
  191. package/dist/components/core/heading.d.ts.map +0 -1
  192. package/dist/components/core/polymorph.d.ts +0 -10
  193. package/dist/components/core/polymorph.d.ts.map +0 -1
  194. package/dist/components/core/render-on-view.d.ts +0 -7
  195. package/dist/components/core/render-on-view.d.ts.map +0 -1
  196. package/dist/components/core/resizable.d.ts +0 -3
  197. package/dist/components/core/resizable.d.ts.map +0 -1
  198. package/dist/components/core/slot.d.ts +0 -16
  199. package/dist/components/core/slot.d.ts.map +0 -1
  200. package/dist/components/core/tag.d.ts +0 -35
  201. package/dist/components/core/tag.d.ts.map +0 -1
  202. package/dist/components/core/typography.d.ts +0 -24
  203. package/dist/components/core/typography.d.ts.map +0 -1
  204. package/dist/components/display/alert.d.ts +0 -28
  205. package/dist/components/display/alert.d.ts.map +0 -1
  206. package/dist/components/display/calendar.d.ts +0 -42
  207. package/dist/components/display/calendar.d.ts.map +0 -1
  208. package/dist/components/display/card.d.ts +0 -29
  209. package/dist/components/display/card.d.ts.map +0 -1
  210. package/dist/components/display/empty.d.ts +0 -8
  211. package/dist/components/display/empty.d.ts.map +0 -1
  212. package/dist/components/display/list.d.ts +0 -16
  213. package/dist/components/display/list.d.ts.map +0 -1
  214. package/dist/components/display/notifications.d.ts +0 -27
  215. package/dist/components/display/notifications.d.ts.map +0 -1
  216. package/dist/components/display/progress.d.ts +0 -13
  217. package/dist/components/display/progress.d.ts.map +0 -1
  218. package/dist/components/display/shortcut.d.ts +0 -4
  219. package/dist/components/display/shortcut.d.ts.map +0 -1
  220. package/dist/components/display/skeleton.d.ts +0 -12
  221. package/dist/components/display/skeleton.d.ts.map +0 -1
  222. package/dist/components/display/spinner.d.ts +0 -5
  223. package/dist/components/display/spinner.d.ts.map +0 -1
  224. package/dist/components/display/stats.d.ts +0 -12
  225. package/dist/components/display/stats.d.ts.map +0 -1
  226. package/dist/components/display/step.d.ts +0 -24
  227. package/dist/components/display/step.d.ts.map +0 -1
  228. package/dist/components/display/tabs.d.ts +0 -24
  229. package/dist/components/display/tabs.d.ts.map +0 -1
  230. package/dist/components/display/timeline.d.ts +0 -10
  231. package/dist/components/display/timeline.d.ts.map +0 -1
  232. package/dist/components/floating/command-palette.d.ts +0 -49
  233. package/dist/components/floating/command-palette.d.ts.map +0 -1
  234. package/dist/components/floating/dropdown.d.ts +0 -15
  235. package/dist/components/floating/dropdown.d.ts.map +0 -1
  236. package/dist/components/floating/expand.d.ts +0 -11
  237. package/dist/components/floating/expand.d.ts.map +0 -1
  238. package/dist/components/floating/menu.d.ts +0 -52
  239. package/dist/components/floating/menu.d.ts.map +0 -1
  240. package/dist/components/floating/modal.d.ts +0 -60
  241. package/dist/components/floating/modal.d.ts.map +0 -1
  242. package/dist/components/floating/toolbar.d.ts +0 -6
  243. package/dist/components/floating/toolbar.d.ts.map +0 -1
  244. package/dist/components/floating/tooltip.d.ts +0 -17
  245. package/dist/components/floating/tooltip.d.ts.map +0 -1
  246. package/dist/components/floating/wizard.d.ts +0 -26
  247. package/dist/components/floating/wizard.d.ts.map +0 -1
  248. package/dist/components/form/autocomplete.d.ts +0 -16
  249. package/dist/components/form/autocomplete.d.ts.map +0 -1
  250. package/dist/components/form/checkbox.d.ts +0 -12
  251. package/dist/components/form/checkbox.d.ts.map +0 -1
  252. package/dist/components/form/date-picker.d.ts +0 -10
  253. package/dist/components/form/date-picker.d.ts.map +0 -1
  254. package/dist/components/form/file-upload.d.ts +0 -15
  255. package/dist/components/form/file-upload.d.ts.map +0 -1
  256. package/dist/components/form/form.d.ts +0 -3
  257. package/dist/components/form/form.d.ts.map +0 -1
  258. package/dist/components/form/formReset.d.ts +0 -2
  259. package/dist/components/form/formReset.d.ts.map +0 -1
  260. package/dist/components/form/free-text.d.ts +0 -11
  261. package/dist/components/form/free-text.d.ts.map +0 -1
  262. package/dist/components/form/input-field.d.ts +0 -34
  263. package/dist/components/form/input-field.d.ts.map +0 -1
  264. package/dist/components/form/input.d.ts +0 -52
  265. package/dist/components/form/input.d.ts.map +0 -1
  266. package/dist/components/form/multi-select.d.ts +0 -19
  267. package/dist/components/form/multi-select.d.ts.map +0 -1
  268. package/dist/components/form/radiobox.d.ts +0 -7
  269. package/dist/components/form/radiobox.d.ts.map +0 -1
  270. package/dist/components/form/select.d.ts +0 -13
  271. package/dist/components/form/select.d.ts.map +0 -1
  272. package/dist/components/form/slider.d.ts +0 -7
  273. package/dist/components/form/slider.d.ts.map +0 -1
  274. package/dist/components/form/switch.d.ts +0 -9
  275. package/dist/components/form/switch.d.ts.map +0 -1
  276. package/dist/components/form/task-list.d.ts +0 -3
  277. package/dist/components/form/task-list.d.ts.map +0 -1
  278. package/dist/components/form/textarea.d.ts +0 -6
  279. package/dist/components/form/textarea.d.ts.map +0 -1
  280. package/dist/components/form/transfer-list.d.ts +0 -14
  281. package/dist/components/form/transfer-list.d.ts.map +0 -1
  282. package/dist/components/form/transfer-list.js +0 -55
  283. package/dist/components/form/transfer-list.js.map +0 -1
  284. package/dist/components/index.d.ts +0 -46
  285. package/dist/components/index.d.ts.map +0 -1
  286. package/dist/components/page-calendar/calendar-header.d.ts +0 -16
  287. package/dist/components/page-calendar/calendar-header.d.ts.map +0 -1
  288. package/dist/components/page-calendar/day-view.d.ts +0 -12
  289. package/dist/components/page-calendar/day-view.d.ts.map +0 -1
  290. package/dist/components/page-calendar/event-pill.d.ts +0 -9
  291. package/dist/components/page-calendar/event-pill.d.ts.map +0 -1
  292. package/dist/components/page-calendar/index.d.ts +0 -4
  293. package/dist/components/page-calendar/index.d.ts.map +0 -1
  294. package/dist/components/page-calendar/month-view.d.ts +0 -11
  295. package/dist/components/page-calendar/month-view.d.ts.map +0 -1
  296. package/dist/components/page-calendar/page-calendar.d.ts +0 -18
  297. package/dist/components/page-calendar/page-calendar.d.ts.map +0 -1
  298. package/dist/components/page-calendar/page-calendar.types.d.ts +0 -18
  299. package/dist/components/page-calendar/page-calendar.types.d.ts.map +0 -1
  300. package/dist/components/page-calendar/page-calendar.utils.d.ts +0 -24
  301. package/dist/components/page-calendar/page-calendar.utils.d.ts.map +0 -1
  302. package/dist/components/page-calendar/week-view.d.ts +0 -11
  303. package/dist/components/page-calendar/week-view.d.ts.map +0 -1
  304. package/dist/components/table/filter.d.ts +0 -42
  305. package/dist/components/table/filter.d.ts.map +0 -1
  306. package/dist/components/table/group.d.ts +0 -17
  307. package/dist/components/table/group.d.ts.map +0 -1
  308. package/dist/components/table/index.d.ts +0 -20
  309. package/dist/components/table/index.d.ts.map +0 -1
  310. package/dist/components/table/inner-table.d.ts +0 -29
  311. package/dist/components/table/inner-table.d.ts.map +0 -1
  312. package/dist/components/table/metadata.d.ts +0 -4
  313. package/dist/components/table/metadata.d.ts.map +0 -1
  314. package/dist/components/table/pagination.d.ts +0 -3
  315. package/dist/components/table/pagination.d.ts.map +0 -1
  316. package/dist/components/table/row.d.ts +0 -12
  317. package/dist/components/table/row.d.ts.map +0 -1
  318. package/dist/components/table/sort.d.ts +0 -28
  319. package/dist/components/table/sort.d.ts.map +0 -1
  320. package/dist/components/table/table-lib.d.ts +0 -135
  321. package/dist/components/table/table-lib.d.ts.map +0 -1
  322. package/dist/components/table/table.context.d.ts +0 -10
  323. package/dist/components/table/table.context.d.ts.map +0 -1
  324. package/dist/components/table/thead.d.ts +0 -9
  325. package/dist/components/table/thead.d.ts.map +0 -1
  326. package/dist/config/context.d.ts +0 -21
  327. package/dist/config/context.d.ts.map +0 -1
  328. package/dist/config/default-translations.d.ts +0 -90
  329. package/dist/config/default-translations.d.ts.map +0 -1
  330. package/dist/config/default-tweaks.d.ts +0 -13
  331. package/dist/config/default-tweaks.d.ts.map +0 -1
  332. package/dist/constants.d.ts +0 -3
  333. package/dist/constants.d.ts.map +0 -1
  334. package/dist/context-BFXNJVn2.js.map +0 -1
  335. package/dist/date-picker-DwNo22lx.js.map +0 -1
  336. package/dist/dom-Dl8XH0CK.js.map +0 -1
  337. package/dist/file-upload-Brf2NkLr.js.map +0 -1
  338. package/dist/floating-ui.react-QNHG9W4N.js.map +0 -1
  339. package/dist/fns-D2eyJKd5.js.map +0 -1
  340. package/dist/hooks/use-click-outside.d.ts +0 -3
  341. package/dist/hooks/use-click-outside.d.ts.map +0 -1
  342. package/dist/hooks/use-color-parser.d.ts +0 -2
  343. package/dist/hooks/use-color-parser.d.ts.map +0 -1
  344. package/dist/hooks/use-components-provider.d.ts +0 -15
  345. package/dist/hooks/use-components-provider.d.ts.map +0 -1
  346. package/dist/hooks/use-debounce.d.ts +0 -5
  347. package/dist/hooks/use-debounce.d.ts.map +0 -1
  348. package/dist/hooks/use-floating-ref.d.ts +0 -2
  349. package/dist/hooks/use-floating-ref.d.ts.map +0 -1
  350. package/dist/hooks/use-form.d.ts +0 -394
  351. package/dist/hooks/use-form.d.ts.map +0 -1
  352. package/dist/hooks/use-hover.d.ts +0 -3
  353. package/dist/hooks/use-hover.d.ts.map +0 -1
  354. package/dist/hooks/use-input-id.d.ts +0 -4
  355. package/dist/hooks/use-input-id.d.ts.map +0 -1
  356. package/dist/hooks/use-is-coarse-device.d.ts +0 -2
  357. package/dist/hooks/use-is-coarse-device.d.ts.map +0 -1
  358. package/dist/hooks/use-locale.d.ts +0 -3
  359. package/dist/hooks/use-locale.d.ts.map +0 -1
  360. package/dist/hooks/use-media-query.d.ts +0 -2
  361. package/dist/hooks/use-media-query.d.ts.map +0 -1
  362. package/dist/hooks/use-on-event.d.ts +0 -4
  363. package/dist/hooks/use-on-event.d.ts.map +0 -1
  364. package/dist/hooks/use-parent.d.ts +0 -3
  365. package/dist/hooks/use-parent.d.ts.map +0 -1
  366. package/dist/hooks/use-preferences.d.ts +0 -2
  367. package/dist/hooks/use-preferences.d.ts.map +0 -1
  368. package/dist/hooks/use-previous.d.ts +0 -2
  369. package/dist/hooks/use-previous.d.ts.map +0 -1
  370. package/dist/hooks/use-reactive.d.ts +0 -2
  371. package/dist/hooks/use-reactive.d.ts.map +0 -1
  372. package/dist/hooks/use-remove-scroll.d.ts +0 -4
  373. package/dist/hooks/use-remove-scroll.d.ts.map +0 -1
  374. package/dist/hooks/use-resize-observer.d.ts +0 -2
  375. package/dist/hooks/use-resize-observer.d.ts.map +0 -1
  376. package/dist/hooks/use-stable-ref.d.ts +0 -2
  377. package/dist/hooks/use-stable-ref.d.ts.map +0 -1
  378. package/dist/hooks/use-swipe.d.ts +0 -8
  379. package/dist/hooks/use-swipe.d.ts.map +0 -1
  380. package/dist/hooks/use-translations.d.ts +0 -88
  381. package/dist/hooks/use-translations.d.ts.map +0 -1
  382. package/dist/hooks/use-tweaks.d.ts +0 -3
  383. package/dist/hooks/use-tweaks.d.ts.map +0 -1
  384. package/dist/hooks/use-window-size.d.ts +0 -5
  385. package/dist/hooks/use-window-size.d.ts.map +0 -1
  386. package/dist/index-BelDtX5M.js.map +0 -1
  387. package/dist/index-DJSMaZR4.js.map +0 -1
  388. package/dist/index-Z-fZHxfJ.js +0 -335
  389. package/dist/index-Z-fZHxfJ.js.map +0 -1
  390. package/dist/index.d.ts +0 -22
  391. package/dist/index.d.ts.map +0 -1
  392. package/dist/input-CrGrSnUt.js.map +0 -1
  393. package/dist/input-field-5vYcz5tT.js.map +0 -1
  394. package/dist/lib/combi-keys.d.ts +0 -15
  395. package/dist/lib/combi-keys.d.ts.map +0 -1
  396. package/dist/lib/dict.d.ts +0 -12
  397. package/dist/lib/dict.d.ts.map +0 -1
  398. package/dist/lib/dom.d.ts +0 -19
  399. package/dist/lib/dom.d.ts.map +0 -1
  400. package/dist/lib/fns.d.ts +0 -11
  401. package/dist/lib/fns.d.ts.map +0 -1
  402. package/dist/lib/fzf.d.ts +0 -16
  403. package/dist/lib/fzf.d.ts.map +0 -1
  404. package/dist/lib/keyboard-area.d.ts +0 -16
  405. package/dist/lib/keyboard-area.d.ts.map +0 -1
  406. package/dist/notifications-cUdVPs-B.js +0 -2786
  407. package/dist/notifications-cUdVPs-B.js.map +0 -1
  408. package/dist/skeleton-D75GFBV6.js +0 -10
  409. package/dist/skeleton-D75GFBV6.js.map +0 -1
  410. package/dist/tabs-S00a8qq8.js +0 -106
  411. package/dist/tabs-S00a8qq8.js.map +0 -1
  412. package/dist/types.d.ts +0 -26
  413. package/dist/types.d.ts.map +0 -1
  414. package/dist/use-translations-BwLKTrZv.js +0 -10
  415. package/dist/use-translations-BwLKTrZv.js.map +0 -1
@@ -1,375 +0,0 @@
1
- import { jsx as f, jsxs as z } from "react/jsx-runtime";
2
- import { u as He, o as Ye, m as $e, g as ze, b as Ve, h as Oe, c as Pe, d as Ze, i as _e, j as Ue, F as Be, l as We } from "./floating-ui.react-QNHG9W4N.js";
3
- import { e as je } from "./CaretDown.es-Cj7klWI3.js";
4
- import { useRef as E, useState as x, useEffect as S, forwardRef as G, Fragment as Ke } from "react";
5
- import { flushSync as ie } from "react-dom";
6
- import { Y as Qe } from "./index-C-PuFUZi.js";
7
- import { h as qe, o as Ge, I as T, g as ce, i as Je, c as ue, m as Xe, f as et } from "./dom-Dl8XH0CK.js";
8
- import { i as q, c as tt, s as de } from "./fns-D2eyJKd5.js";
9
- import { u as nt } from "./use-translations-BwLKTrZv.js";
10
- import { I as rt } from "./input-field-5vYcz5tT.js";
11
- import { m as J, A as lt } from "./proxy-BZcQiBrp.js";
12
- const fe = () => window.matchMedia("@media (pointer: coarse)"), ot = () => {
13
- const t = E(q() ? null : fe()), [n, a] = x(q() ? !1 : t.current?.matches ?? !1);
14
- return S(() => {
15
- (t.current === null ? fe() : t.current).addEventListener("change", (l) => a(l.matches));
16
- }, []), n;
17
- }, at = (t, n = "overflow-hidden") => {
18
- const a = E(null), o = ot(), l = E(q() ? "" : document.documentElement.style.overflowY);
19
- return S(() => {
20
- if (!(a.current === null && !t) && n !== "block-only" && n === "overflow-hidden")
21
- if (t) {
22
- if (l.current = document.documentElement.style.overflowY, document.documentElement.style.overflowY = "hidden", o || tt()) return;
23
- document.documentElement.style.padding = qe(document.documentElement) ? "0 15px 0 0" : "";
24
- } else
25
- document.documentElement.style.padding = "", document.documentElement.style.overflowY = l.current;
26
- }, [t, o, n]), S(() => {
27
- if (!t) return;
28
- const i = new AbortController(), u = document.documentElement, s = (m) => {
29
- const d = a.current;
30
- if (d && d.contains(m.target)) {
31
- const w = d.getBoundingClientRect(), k = d.style.height ? Number(Ge(d.style.height)) : null, H = T.number(k) ? k : w.height, R = d.scrollHeight <= H;
32
- return H === d.scrollHeight ? t ? m.preventDefault() : void 0 : R ? void 0 : t ? m.preventDefault() : void 0;
33
- }
34
- return m.currentTarget === document.documentElement, t ? m.preventDefault() : void 0;
35
- };
36
- return u.addEventListener("wheel", s, { signal: i.signal, passive: !1 }), u.addEventListener("scroll", s, { signal: i.signal, passive: !1 }), () => {
37
- i.abort();
38
- };
39
- }, [t]), a;
40
- }, st = (t, n) => {
41
- t = String(t).toLocaleLowerCase(), n = String(n).toLocaleLowerCase();
42
- const a = n[0], o = t.split("").map((u, s) => u === a ? s : !1).filter((u) => u !== !1);
43
- if (o.length === 0)
44
- return null;
45
- const l = [];
46
- if (o.forEach((u) => {
47
- let s = u + 1;
48
- const m = [u];
49
- for (let d = 1; d < n.length; d++) {
50
- const w = n[d];
51
- if (s = t.indexOf(w, s), s === -1)
52
- return;
53
- m.push(s), s++;
54
- }
55
- l.push(m);
56
- }), l.length === 0)
57
- return null;
58
- const i = l.sort((u, s) => {
59
- if (u.length === 1)
60
- return u[0] - s[0];
61
- const m = u[u.length - 1] - u[0], d = s[s.length - 1] - s[0];
62
- return m - d;
63
- })[0];
64
- return t === n ? 1 : i.length > 1 ? 2 + (i[i.length - 1] - i[0]) : 2 + i[0];
65
- }, me = (t, n, a) => {
66
- const o = t.split(n).filter(Boolean);
67
- let l = a;
68
- for (const i of o) {
69
- if (l == null)
70
- return l;
71
- l = l[i];
72
- }
73
- return l;
74
- }, ge = { basic: /[,[\]]+?/, extend: /[,[\].]+?/ }, he = (t, n) => {
75
- const a = me(n, ge.basic, t);
76
- return a !== void 0 && a !== t ? a : me(n, ge.extend, t);
77
- }, pe = (t) => t.replace(/[^0-9]/g, ""), V = (t) => t.normalize("NFD").replace(/[\u0300-\u036f]/g, ""), ve = (t, n, a, o = "FUZZY") => o === "CONTAINS" ? t.includes(n) : o === "EQUAL" ? t === n : o === "CONTAINS_NUMBERS" ? pe(t).includes(pe(n)) : o === "STARTS_WITH" ? t.startsWith(n) : o === "ENDS_WITH" ? t.endsWith(n) : o === "FUZZY" ? st(t, n) !== null : !1, it = (t, n, a, o = "FUZZY") => Array.isArray(n) ? n.some((l) => ve(t, l, a, o)) : ve(t, n, a, o), ct = (t, n, a) => {
78
- if (a.length === 0)
79
- return t;
80
- const o = /* @__PURE__ */ new Map(), l = a.map((i) => ({ ...i, value: T.array(i.value) ? i.value.map(V) : V(`${i.value}`) }));
81
- return t.forEach((i) => {
82
- const u = he(i, n);
83
- l.forEach((s) => {
84
- const m = he(i, s.key);
85
- if (!m) return;
86
- const d = V(`${s.value}`.toLocaleLowerCase()).trim(), w = V(`${m}`.toLocaleLowerCase()).trim();
87
- if (it(w, d, s.score, s.match))
88
- return void o.set(u, i);
89
- T.function(s.ifNotMatch) && s.ifNotMatch(d, w) && o.set(u, i);
90
- });
91
- }), Array.from(o.values());
92
- }, ut = (t) => /* @__PURE__ */ f(Ke, { children: t.children }), dt = {
93
- duration: 200,
94
- open: { transform: "scaleY(1)", opacity: 1 },
95
- close: { transform: "scaleY(0)", opacity: 0 },
96
- initial: { transform: "scaleY(0)", opacity: 0.2 }
97
- }, ft = [], mt = G(function(n, a) {
98
- return /* @__PURE__ */ f(J.ul, { ...n, ref: a, className: "max-h-96 w-full overscroll-contain rounded-lg", children: /* @__PURE__ */ f(lt, { children: n.children }) });
99
- }), gt = G(function({ item: n, context: a, ...o }, l) {
100
- return /* @__PURE__ */ f(J.li, { ...o, ref: l, className: "first:rounded-t-lg last:rounded-t-lg" });
101
- }), ht = { List: mt, Item: gt }, L = 40, St = G(
102
- ({
103
- left: t,
104
- error: n,
105
- right: a,
106
- loading: o,
107
- options: l,
108
- container: i,
109
- rightLabel: u,
110
- interactive: s,
111
- emptyMessage: m,
112
- optionalText: d,
113
- labelClassName: w,
114
- feedback: k = null,
115
- hideLeft: H = !1,
116
- required: R = !1,
117
- dynamicOption: X = !1,
118
- ...c
119
- }, be) => {
120
- const ye = E(null), ee = E(null), O = E(null), P = c.value ?? c.defaultValue ?? "", te = nt(), [ne, A] = x(() => Math.min(320, L * l.length)), [y, D] = x(!1), [C, F] = x(""), [I, Z] = x(P), [we, _] = x(() => l.find((e) => e.value === P)?.label ?? P), [v, Y] = x(null), re = E(ft), Ce = at(y, "block-only"), le = X && C !== "" ? [
121
- {
122
- value: C,
123
- label: C,
124
- "data-dynamic": "true"
125
- },
126
- ...l
127
- ] : l, oe = () => ie(() => D(!0)), xe = C ? ct(le, "value", [
128
- { key: "value", value: C },
129
- { key: "label", value: C }
130
- ]) : le, U = () => {
131
- D(!1), A(0);
132
- }, g = xe.filter((e) => e.hidden !== !0), Ee = X ? void 0 : `^(${l.map((e) => `${de(e.value)}${e.label ? "|" + de(e.label) : ""}`).join("|")})$`, { x: Ie, y: Ne, strategy: Le, refs: b, context: M, placement: ae } = He({
133
- open: y,
134
- transform: !0,
135
- onOpenChange: D,
136
- placement: "bottom-start",
137
- whileElementsMounted: Ve,
138
- middleware: [
139
- Ye(4),
140
- $e({ allowedPlacements: ["top-start", "bottom-start"], alignment: "start" }),
141
- ze({
142
- padding: 10,
143
- elementContext: "reference",
144
- apply(e) {
145
- const h = e.elements.floating.querySelector("ul")?.getBoundingClientRect().height || 0, p = ce(b.reference.current, window.innerHeight), K = Math.min(h < L ? p : h, p, e.availableHeight), Q = g.length === 0 ? L : Math.min(K, p, h), $ = `${ee.current?.getBoundingClientRect().width || p}px`;
146
- Object.assign(e.elements.floating.style, { width: $, maxWidth: $, height: Q });
147
- }
148
- })
149
- ]
150
- }), Se = Oe(M, dt), { getReferenceProps: ke, getFloatingProps: Re, getItemProps: Ae } = Pe([
151
- Ze(M, { role: "listbox" }),
152
- _e(M),
153
- Ue(M, {
154
- cols: 0,
155
- listRef: re,
156
- loop: !0,
157
- virtual: !0,
158
- allowEscape: !0,
159
- activeIndex: v,
160
- selectedIndex: v,
161
- focusItemOnOpen: "auto",
162
- openOnArrowKeyDown: !0,
163
- scrollItemIntoView: !0
164
- })
165
- ]);
166
- S(() => {
167
- if (c.value) {
168
- const e = l.find((r) => r.value === c.value);
169
- e && (_(e.label ?? e.value), Z(c.value));
170
- }
171
- }, [c.value, l.length]), S(() => {
172
- if (!y) return A(0);
173
- const e = b.reference;
174
- if (e.current === null) return;
175
- const r = ce(e.current, window.innerHeight);
176
- setTimeout(() => A(Math.min(r, g.length * L)), 100);
177
- }, [C, y, b.reference, g.length]), S(() => {
178
- const e = b.reference.current;
179
- if (e)
180
- return Je(e);
181
- }, []);
182
- const B = (e, r) => {
183
- Z(e.value);
184
- const h = b.reference.current;
185
- if (!h) return;
186
- h?.setAttribute("data-value", e.value), h.value = e.value;
187
- const p = new Event("change", { bubbles: !1, cancelable: !0 });
188
- h.dispatchEvent(p), c.onChange && c.onChange(p), _(e.label ?? ""), U(), F(""), Y(r);
189
- }, De = (e) => {
190
- const r = e.target.value;
191
- return F(r), !y && r === "" ? D(!0) : (e.target.name = c.name || "", r ? D(!0) : c.onChange?.(e));
192
- }, Fe = () => {
193
- oe(), F(""), b.reference.current?.focus();
194
- }, Me = () => {
195
- Y((e) => e === null ? 0 : e), oe(), F("");
196
- }, Te = () => {
197
- b.reference.current?.setAttribute("data-value", ""), F(""), Z(""), _(""), et(b.reference.current), U();
198
- }, N = c.id || c.name, W = `${N}-shadow`, j = g.length === 0, se = ae === "top" || ae === "top-start";
199
- return /* @__PURE__ */ z(
200
- rt,
201
- {
202
- ...c,
203
- left: t,
204
- error: n,
205
- ref: ee,
206
- form: c.form,
207
- loading: o,
208
- name: c.name,
209
- feedback: y && se ? c.title : k,
210
- hideLeft: H,
211
- required: R,
212
- title: c.title,
213
- container: i,
214
- rightLabel: u,
215
- interactive: s,
216
- id: W,
217
- optionalText: d,
218
- componentName: "autocomplete",
219
- labelClassName: w,
220
- placeholder: c.placeholder,
221
- right: /* @__PURE__ */ z("span", { className: "flex items-center gap-0.5", children: [
222
- a,
223
- /* @__PURE__ */ z("button", { type: "button", className: "p-2 transition-colors link:text-primary md:p-1", onClick: Fe, children: [
224
- /* @__PURE__ */ f(je, { size: 20 }),
225
- /* @__PURE__ */ f("span", { className: "sr-only", children: te.inputCaretDown })
226
- ] }),
227
- I ? /* @__PURE__ */ f("button", { type: "button", onClick: Te, className: "p-2 transition-colors link:text-danger md:p-1", children: /* @__PURE__ */ f("svg", { width: "15", height: "15", viewBox: "0 0 15 15", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ f(
228
- "path",
229
- {
230
- d: "M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",
231
- fill: "currentColor",
232
- fillRule: "evenodd",
233
- clipRule: "evenodd"
234
- }
235
- ) }) }) : null
236
- ] }),
237
- children: [
238
- /* @__PURE__ */ f(
239
- "input",
240
- {
241
- "data-shadow": "true",
242
- ...ke({
243
- ...c,
244
- onFocus: Me,
245
- pattern: Ee,
246
- onChange: De,
247
- id: W,
248
- name: W,
249
- ref: b.setReference,
250
- onClick: (e) => e.currentTarget.focus(),
251
- onKeyDown(e) {
252
- if (e.key === "Escape")
253
- return e.currentTarget.blur(), U();
254
- if (y) {
255
- if (e.key === "ArrowDown") {
256
- let r = T.number(v) ? v + 1 : 0;
257
- return r > g.length - 1 && (r = 0), O.current?.scrollIntoView({ index: r }), Y(r);
258
- }
259
- if (e.key === "ArrowUp") {
260
- let r = T.number(v) ? v - 1 : g.length - 1;
261
- return r < 0 && (r = g.length - 1), O.current?.scrollIntoView({ index: r }), Y(r);
262
- }
263
- if (e.key === "Enter") {
264
- if (v !== null && g[v])
265
- return e.preventDefault(), B(g[v], v);
266
- if (g.length === 1)
267
- return e.preventDefault(), B(g[0], 0);
268
- }
269
- }
270
- }
271
- }),
272
- "data-value": I,
273
- "data-error": !!n,
274
- "data-name": N,
275
- "data-target": N,
276
- required: R,
277
- value: y ? C : l.length === 0 ? "" : we || I,
278
- "aria-autocomplete": "list",
279
- autoComplete: "off",
280
- className: ue(
281
- "input placeholder-input-mask group h-input-height w-full flex-1",
282
- "rounded-md bg-transparent px-input-x py-input-y text-foreground",
283
- "outline-none transition-colors focus:ring-2 focus:ring-inset focus:ring-primary",
284
- "group-error:text-danger group-error:placeholder-input-mask-error",
285
- "text-base group-focus-within:border-primary group-hover:border-primary",
286
- c.className
287
- )
288
- }
289
- ),
290
- /* @__PURE__ */ f(
291
- "input",
292
- {
293
- id: N,
294
- name: N,
295
- type: "hidden",
296
- "data-origin": N,
297
- ref: be,
298
- required: R,
299
- defaultValue: c.value || I || void 0
300
- }
301
- ),
302
- /* @__PURE__ */ f(Be, { preserveTabOrder: !0, children: y ? /* @__PURE__ */ f(We, { modal: !0, guards: !0, returnFocus: !1, context: M, initialFocus: -1, visuallyHiddenDismiss: !0, children: /* @__PURE__ */ z(
303
- J.div,
304
- {
305
- ...Re({
306
- ref: Xe(Ce, b.setFloating),
307
- style: { ...Se.styles, left: Ie, top: Ne ?? 0, position: Le, height: "auto" }
308
- }),
309
- initial: !1,
310
- "data-floating": "true",
311
- animate: { height: j ? "auto" : ne },
312
- className: ue(
313
- "shadow-floating isolate z-floating m-0 max-h-80 origin-[top_center] list-none overscroll-contain rounded-b-lg rounded-t-lg border border-floating-border bg-floating-background p-0 text-foreground ease-in-out",
314
- se ? "origin-[bottom_center]" : "origin-[top_center]"
315
- ),
316
- onAnimationComplete: () => {
317
- if (!y) return A(0);
318
- const r = b.floating.current.querySelectorAll("li").item(0), h = (r ? r.getBoundingClientRect().height : L) * g.length;
319
- return ie(() => A(h + 2));
320
- },
321
- children: [
322
- j ? /* @__PURE__ */ f("div", { role: "option", className: "w-full border-b border-tooltip-border", children: /* @__PURE__ */ f("span", { className: "flex w-full justify-between p-2 text-left text-disabled", children: m || te.autocompleteEmpty }) }) : null,
323
- /* @__PURE__ */ f(
324
- Qe,
325
- {
326
- overscan: 40,
327
- ref: O,
328
- hidden: j,
329
- data: g,
330
- style: { height: ne },
331
- defaultItemHeight: L,
332
- components: ht,
333
- scrollerRef: (e) => {
334
- ye.current = e;
335
- },
336
- className: "border-floating max-h-full overscroll-contain rounded-lg bg-floating-background p-0 text-foreground",
337
- itemContent: (e, r) => {
338
- const h = r.Render ?? ut, p = I === r.value || I === r.label, K = v === e, Q = r.label ?? r.value;
339
- return /* @__PURE__ */ f(
340
- "button",
341
- {
342
- "data-value": r.value,
343
- ...Ae({
344
- ref: ($) => {
345
- re.current[e] = $;
346
- },
347
- role: "option",
348
- type: "button",
349
- "aria-checked": p,
350
- "aria-current": p,
351
- "aria-selected": p,
352
- "aria-busy": r.disabled,
353
- onClick: () => B(r, e),
354
- className: `cursor-pointer min-h-10 hover:bg-floating-hover w-full p-2 text-left ${p ? "bg-primary-hover text-primary-foreground" : ""} ${K ? "bg-floating-hover text-floating-foreground" : ""}`
355
- }),
356
- children: /* @__PURE__ */ f(h, { ...c, label: r.label, value: r.value, children: Q })
357
- }
358
- );
359
- }
360
- }
361
- )
362
- ]
363
- }
364
- ) }) : null })
365
- ]
366
- }
367
- );
368
- }
369
- );
370
- export {
371
- St as A,
372
- ct as f,
373
- at as u
374
- };
375
- //# sourceMappingURL=autocomplete-Cn9Z2hLq.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"autocomplete-Cn9Z2hLq.js","sources":["../src/hooks/use-is-coarse-device.ts","../src/hooks/use-remove-scroll.ts","../src/lib/fzf.ts","../src/components/form/autocomplete.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { isSsr } from \"../lib/fns\";\n\nconst getCoarse = () => window.matchMedia(\"@media (pointer: coarse)\");\n\nexport const useIsCoarseDevice = (): boolean => {\n const ref = useRef(isSsr() ? null : getCoarse());\n const [isCoarse, setIsCoarse] = useState<boolean>(isSsr() ? false : (ref.current?.matches ?? false));\n useEffect(() => {\n const coerse = ref.current === null ? getCoarse() : ref.current;\n coerse.addEventListener(\"change\", (e) => setIsCoarse(e.matches));\n }, []);\n\n return isCoarse;\n};\n","import { useEffect, useRef } from \"react\";\nimport { Is, onlyNumbers } from \"sidekicker\";\nimport { hasVerticalScroll } from \"../lib/dom\";\nimport { isMobile, isSsr } from \"../lib/fns\";\nimport { useIsCoarseDevice } from \"./use-is-coarse-device\";\n\ntype ScrollRemoveStyle = \"overflow-hidden\" | \"block-only\";\n\nexport const useRemoveScroll = <T extends HTMLElement>(remove: boolean, removeStyle: ScrollRemoveStyle = \"overflow-hidden\") => {\n const ref = useRef<T | null>(null);\n const isCoarseDevice = useIsCoarseDevice();\n const prev = useRef(isSsr() ? \"\" : document.documentElement.style.overflowY);\n\n useEffect(() => {\n if (ref.current === null && !remove) return;\n if (removeStyle === \"block-only\") return;\n if (removeStyle === \"overflow-hidden\") {\n if (remove) {\n prev.current = document.documentElement.style.overflowY;\n document.documentElement.style.overflowY = \"hidden\";\n if (isCoarseDevice || isMobile()) return;\n document.documentElement.style.padding = hasVerticalScroll(document.documentElement) ? \"0 15px 0 0\" : \"\";\n } else {\n document.documentElement.style.padding = \"\";\n document.documentElement.style.overflowY = prev.current;\n }\n }\n }, [remove, isCoarseDevice, removeStyle]);\n\n useEffect(() => {\n if (!remove) return;\n const controller = new AbortController();\n const html = document.documentElement;\n const removeScroll = (e: Event) => {\n const el = ref.current;\n if (el) {\n if (el.contains(e.target as HTMLElement)) {\n const rect = el.getBoundingClientRect();\n const realHeight = el.style.height ? Number(onlyNumbers(el.style.height)) : null;\n const scrollable = Is.number(realHeight) ? realHeight : rect.height;\n const hasScroll = el.scrollHeight <= scrollable;\n if (scrollable === el.scrollHeight) return remove ? e.preventDefault() : undefined;\n if (hasScroll) return;\n return remove ? e.preventDefault() : undefined;\n }\n }\n if (e.currentTarget === document.documentElement) {\n return remove ? e.preventDefault() : undefined;\n }\n return remove ? e.preventDefault() : undefined;\n };\n html.addEventListener(\"wheel\", removeScroll, { signal: controller.signal, passive: false });\n html.addEventListener(\"scroll\", removeScroll, { signal: controller.signal, passive: false });\n return () => {\n controller.abort();\n };\n }, [remove]);\n\n return ref;\n};\n","import { Is } from \"sidekicker\";\nimport { Any, Walk } from \"../types\";\n\nexport const fuzzyMatch = (text: string, search: string): number | null => {\n text = String(text).toLocaleLowerCase();\n search = String(search).toLocaleLowerCase();\n const firstChar = search[0];\n const firstCharIndexes = text\n .split(\"\")\n .map((char, index) => (char === firstChar ? index : false))\n .filter((index): index is number => index !== false);\n\n if (firstCharIndexes.length === 0) {\n return null;\n }\n const matchedIndexes: number[][] = [];\n firstCharIndexes.forEach((startingIndex) => {\n let index = startingIndex + 1;\n const indexes = [startingIndex];\n for (let i = 1; i < search.length; i++) {\n const letter = search[i]!;\n index = text.indexOf(letter, index);\n\n if (index === -1) {\n return;\n }\n indexes.push(index);\n index++;\n }\n matchedIndexes.push(indexes);\n });\n\n if (matchedIndexes.length === 0) {\n return null;\n }\n const bestMatch = matchedIndexes.sort((a, b) => {\n if (a.length === 1) {\n return a[0]! - b[0]!;\n }\n const aSpread = a[a.length - 1]! - a[0]!;\n const bSpread = b[b.length - 1]! - b[0]!;\n\n return aSpread - bSpread;\n })[0]!;\n if (text === search) {\n return 1;\n } else if (bestMatch.length > 1) {\n return 2 + (bestMatch[bestMatch.length - 1]! - bestMatch[0]!);\n }\n return 2 + bestMatch[0]!;\n};\n\nexport type Match = \"EQUAL\" | \"CONTAINS\" | \"CONTAINS_NUMBERS\" | \"STARTS_WITH\" | \"ENDS_WITH\" | \"FUZZY\";\n\nexport type MatchValue<T> = {\n match?: Match;\n score?: number;\n key: Walk<T>;\n value: string | string[];\n ifNotMatch?: (value: string, source: string) => boolean;\n};\n\nexport type Matcher<T> = { match?: Match; key: Walk<T> };\n\nconst travel = (path: string, regexp: RegExp, obj: any): any => {\n const keys = path.split(regexp).filter(Boolean);\n let res = obj;\n for (const key of keys) {\n if (res === null || res === undefined) {\n return res;\n }\n res = res[key];\n }\n return res;\n};\n\nconst regexPaths = { basic: /[,[\\]]+?/, extend: /[,[\\].]+?/ };\n\nconst path = <T extends Any, V>(obj: T, path: Walk<T>): V => {\n const result = travel(path as string, regexPaths.basic, obj);\n if (result !== undefined && result !== obj) return result;\n return travel(path as string, regexPaths.extend, obj);\n};\n\nconst onlyNumbers = (str: string) => str.replace(/[^0-9]/g, \"\");\n\nconst diacritics = (input: string): string => input.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n\nconst strCompare = (text: string, value: string, _?: number, match: Match = \"FUZZY\"): boolean => {\n if (match === \"CONTAINS\") {\n return text.includes(value);\n }\n if (match === \"EQUAL\") {\n return text === value;\n }\n if (match === \"CONTAINS_NUMBERS\") {\n return onlyNumbers(text).includes(onlyNumbers(value));\n }\n if (match === \"STARTS_WITH\") {\n return text.startsWith(value);\n }\n if (match === \"ENDS_WITH\") {\n return text.endsWith(value);\n }\n if (match === \"FUZZY\") {\n const r = fuzzyMatch(text, value);\n return r !== null;\n }\n return false;\n};\n\nconst compare = (search: string, value: string | string[], defaultScore?: number, match: Match = \"FUZZY\"): boolean =>\n Array.isArray(value) ? value.some((x) => strCompare(search, x, defaultScore, match)) : strCompare(search, value, defaultScore, match);\n\nexport const fzf = <T extends Any, ID extends Walk<T>>(items: T[], id: ID, keys: MatchValue<T>[]) => {\n if (keys.length === 0) {\n return items;\n }\n const map = new Map<ID, T>();\n const remap = keys.map((x) => {\n return { ...x, value: Is.array(x.value) ? x.value.map(diacritics) : diacritics(`${x.value}`) };\n });\n items.forEach((item) => {\n const idVal = path<T, ID>(item, id);\n remap.forEach((filter) => {\n const searchValue = path(item, filter.key);\n if (!searchValue) return;\n const target = diacritics(`${filter.value}`.toLocaleLowerCase()).trim();\n const search = diacritics(`${searchValue}`.toLocaleLowerCase()).trim();\n if (compare(search, target, filter.score, filter.match)) {\n return void map.set(idVal, item);\n }\n if (Is.function(filter.ifNotMatch)) {\n const result = filter.ifNotMatch(target, search);\n if (result) map.set(idVal, item);\n }\n });\n });\n return Array.from(map.values());\n};\n","\"use client\";\nimport {\n autoPlacement,\n autoUpdate,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n size,\n useDismiss,\n useFloating,\n useInteractions,\n useListNavigation,\n useRole,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport { CaretDownIcon } from \"@phosphor-icons/react\";\nimport { AnimatePresence, motion } from \"motion/react\";\nimport React, { forwardRef, Fragment, type PropsWithChildren, useEffect, useRef, useState } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { Virtuoso, type VirtuosoHandle } from \"react-virtuoso\";\nimport { Is } from \"sidekicker\";\nimport { useRemoveScroll } from \"../../hooks/use-remove-scroll\";\nimport { useTranslations } from \"../../hooks/use-translations\";\nimport { css, dispatchInput, getRemainingSize, initializeInputDataset, mergeRefs } from \"../../lib/dom\";\nimport { safeRegex } from \"../../lib/fns\";\nimport { fzf } from \"../../lib/fzf\";\nimport { Label } from \"../../types\";\nimport { InputField, InputFieldProps } from \"./input-field\";\nimport { type OptionProps } from \"./select\";\n\nexport type AutocompleteItemProps = OptionProps & { Render?: React.FC<OptionProps> };\n\nexport type AutocompleteProps = Omit<InputFieldProps<\"input\">, \"value\"> & {\n title?: string;\n value?: string;\n emptyMessage?: Label;\n dynamicOption?: boolean;\n options: AutocompleteItemProps[];\n};\n\nconst Frag = (props: PropsWithChildren) => <Fragment>{props.children}</Fragment>;\n\nconst transitionStyles = {\n duration: 200,\n open: { transform: \"scaleY(1)\", opacity: 1 },\n close: { transform: \"scaleY(0)\", opacity: 0 },\n initial: { transform: \"scaleY(0)\", opacity: 0.2 },\n} as const;\n\nconst emptyRef: any[] = [];\n\nconst List = forwardRef(function VirtualList(props: any, ref: any) {\n return (\n <motion.ul {...props} ref={ref as any} className=\"max-h-96 w-full overscroll-contain rounded-lg\">\n <AnimatePresence>{props.children}</AnimatePresence>\n </motion.ul>\n );\n});\n\nconst Item = forwardRef(function VirtualItem({ item, context, ...props }: any, ref: any) {\n return <motion.li {...props} ref={ref as any} className=\"first:rounded-t-lg last:rounded-t-lg\" />;\n});\n\nconst components = { List, Item };\n\nconst MIN_SIZE = 40;\n\nexport const Autocomplete = forwardRef<HTMLInputElement, AutocompleteProps>(\n (\n {\n left,\n error,\n right,\n loading,\n options,\n container,\n rightLabel,\n interactive,\n emptyMessage,\n optionalText,\n labelClassName,\n feedback = null,\n hideLeft = false,\n required = false,\n dynamicOption = false,\n ...props\n }: AutocompleteProps,\n externalRef\n ) => {\n const scroller = useRef<HTMLElement | null>(null);\n const fieldset = useRef<HTMLFieldSetElement>(null);\n const virtuoso = useRef<VirtuosoHandle | null>(null);\n const defaults = props.value ?? props.defaultValue ?? \"\";\n const translation = useTranslations();\n const [h, setH] = useState(() => Math.min(320, MIN_SIZE * options.length));\n const [open, setOpen] = useState(false);\n const [shadow, setShadow] = useState(\"\");\n const [value, setValue] = useState(defaults);\n const [label, setLabel] = useState(() => options.find((x) => x.value === defaults)?.label ?? defaults);\n const [index, setIndex] = useState<number | null>(null);\n const listRef = useRef<Array<HTMLElement | null>>(emptyRef);\n const removeScrollRef = useRemoveScroll(open, \"block-only\");\n const innerOptions: AutocompleteItemProps[] =\n dynamicOption && shadow !== \"\"\n ? [\n {\n value: shadow,\n label: shadow,\n \"data-dynamic\": \"true\",\n },\n ...options,\n ]\n : options;\n\n const openDropdown = () => flushSync(() => setOpen(true));\n\n const list = shadow\n ? fzf(innerOptions, \"value\", [\n { key: \"value\", value: shadow },\n { key: \"label\", value: shadow },\n ])\n : innerOptions;\n\n const setClosed = () => {\n setOpen(false);\n setH(0);\n };\n\n const displayList = list.filter((x) => x.hidden !== true);\n\n const pattern = dynamicOption\n ? undefined\n : `^(${options.map((x) => `${safeRegex(x.value)}${x.label ? \"|\" + safeRegex(x.label) : \"\"}`).join(\"|\")})$`;\n\n const { x, y, strategy, refs, context, placement } = useFloating<HTMLInputElement>({\n open,\n transform: true,\n onOpenChange: setOpen,\n placement: \"bottom-start\",\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(4),\n autoPlacement({ allowedPlacements: [\"top-start\", \"bottom-start\"], alignment: \"start\" }),\n size({\n padding: 10,\n elementContext: \"reference\",\n apply(args) {\n const ul = args.elements.floating.querySelector(\"ul\");\n const fullSize = ul?.getBoundingClientRect().height || 0;\n const DEFAULT_SIZE = getRemainingSize(refs.reference!.current as HTMLElement, window.innerHeight);\n const maxH = Math.min(fullSize < MIN_SIZE ? DEFAULT_SIZE : fullSize, DEFAULT_SIZE, args.availableHeight);\n const size = displayList.length === 0 ? MIN_SIZE : Math.min(maxH, DEFAULT_SIZE, fullSize);\n const mw = `${fieldset.current?.getBoundingClientRect().width || DEFAULT_SIZE}px`;\n Object.assign(args.elements.floating.style, { width: mw, maxWidth: mw, height: size });\n },\n }),\n ],\n });\n const transitions = useTransitionStyles(context, transitionStyles);\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions([\n useRole(context, { role: \"listbox\" }),\n useDismiss(context),\n useListNavigation(context, {\n cols: 0,\n listRef,\n loop: true,\n virtual: true,\n allowEscape: true,\n activeIndex: index,\n selectedIndex: index,\n focusItemOnOpen: \"auto\",\n openOnArrowKeyDown: true,\n scrollItemIntoView: true,\n }),\n ]);\n\n useEffect(() => {\n if (props.value) {\n const item = options.find((x) => x.value === props.value);\n if (item) {\n setLabel(item.label ?? item.value);\n setValue(props.value);\n }\n }\n }, [props.value, options.length]);\n\n useEffect(() => {\n if (!open) return setH(0);\n const inputRef = refs.reference;\n if (inputRef.current === null) return;\n const s = getRemainingSize(inputRef.current as HTMLElement, window.innerHeight);\n setTimeout(() => setH(Math.min(s, displayList.length * MIN_SIZE)), 100);\n }, [shadow, open, refs.reference, displayList.length]);\n\n useEffect(() => {\n const input = refs.reference.current as HTMLInputElement;\n if (!input) return;\n return initializeInputDataset(input);\n }, []);\n\n const onSelect = (opt: AutocompleteItemProps, i: number) => {\n setValue(opt.value);\n const input = refs.reference.current as HTMLInputElement;\n if (!input) return;\n input?.setAttribute(\"data-value\", opt.value);\n input.value = opt.value;\n const event = new Event(\"change\", { bubbles: false, cancelable: true });\n input.dispatchEvent(event);\n if (props.onChange) props.onChange(event as any);\n setLabel(opt.label ?? \"\");\n setClosed();\n setShadow(\"\");\n setIndex(i);\n };\n\n const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n setShadow(value);\n if (!open && value === \"\") return setOpen(true);\n event.target.name = props.name || \"\";\n return value ? setOpen(true) : props.onChange?.(event);\n };\n\n const onCaretDownClick = () => {\n openDropdown();\n setShadow(\"\");\n (refs.reference.current as HTMLInputElement)?.focus();\n };\n\n const onFocus = () => {\n setIndex((prev) => (prev === null ? 0 : prev));\n openDropdown();\n setShadow(\"\");\n };\n\n const onClose = () => {\n (refs.reference.current as HTMLInputElement)?.setAttribute(\"data-value\", \"\");\n setShadow(\"\");\n setValue(\"\");\n setLabel(\"\");\n dispatchInput(refs.reference.current as HTMLInputElement);\n setClosed();\n };\n\n const id = props.id || props.name;\n\n const shadowId = `${id}-shadow`;\n\n const isEmpty = displayList.length === 0;\n\n const isTopPlacement = placement === \"top\" || placement === \"top-start\";\n\n return (\n <InputField\n {...(props as any)}\n left={left}\n error={error}\n ref={fieldset}\n form={props.form}\n loading={loading}\n name={props.name}\n feedback={open && isTopPlacement ? props.title : feedback}\n hideLeft={hideLeft}\n required={required}\n title={props.title}\n container={container}\n rightLabel={rightLabel}\n interactive={interactive}\n id={shadowId}\n optionalText={optionalText}\n componentName=\"autocomplete\"\n labelClassName={labelClassName}\n placeholder={props.placeholder}\n right={\n <span className=\"flex items-center gap-0.5\">\n {right}\n <button type=\"button\" className=\"p-2 transition-colors link:text-primary md:p-1\" onClick={onCaretDownClick}>\n <CaretDownIcon size={20} />\n <span className=\"sr-only\">{translation.inputCaretDown}</span>\n </button>\n {value ? (\n <button type=\"button\" onClick={onClose} className=\"p-2 transition-colors link:text-danger md:p-1\">\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n />\n </svg>\n </button>\n ) : null}\n </span>\n }\n >\n <input\n data-shadow=\"true\"\n {...(getReferenceProps({\n ...props,\n onFocus,\n pattern,\n onChange,\n id: shadowId,\n name: shadowId,\n ref: refs.setReference,\n onClick: (e: React.MouseEvent<HTMLInputElement>) => e.currentTarget.focus(),\n onKeyDown(event: React.KeyboardEvent<HTMLInputElement>) {\n if (event.key === \"Escape\") {\n event.currentTarget.blur();\n return setClosed();\n }\n if (!open) return;\n if (event.key === \"ArrowDown\") {\n let next = Is.number(index) ? index + 1 : 0;\n if (next > displayList.length - 1) next = 0;\n virtuoso.current?.scrollIntoView({ index: next });\n return setIndex(next);\n }\n if (event.key === \"ArrowUp\") {\n let next = Is.number(index) ? index! - 1 : displayList.length - 1;\n if (next < 0) next = displayList.length - 1;\n virtuoso.current?.scrollIntoView({ index: next });\n return setIndex(next);\n }\n if (event.key === \"Enter\") {\n if (index !== null && displayList[index]) {\n event.preventDefault();\n return onSelect(displayList[index], index);\n }\n if (displayList.length === 1) {\n event.preventDefault();\n return onSelect(displayList[0], 0);\n }\n }\n },\n } as any) as any)}\n data-value={value}\n data-error={!!error}\n data-name={id}\n data-target={id}\n required={required}\n value={open ? shadow : options.length === 0 ? \"\" : label || value}\n aria-autocomplete=\"list\"\n autoComplete=\"off\"\n className={css(\n \"input placeholder-input-mask group h-input-height w-full flex-1\",\n \"rounded-md bg-transparent px-input-x py-input-y text-foreground\",\n \"outline-none transition-colors focus:ring-2 focus:ring-inset focus:ring-primary\",\n \"group-error:text-danger group-error:placeholder-input-mask-error\",\n \"text-base group-focus-within:border-primary group-hover:border-primary\",\n props.className\n )}\n />\n <input\n id={id}\n name={id}\n type=\"hidden\"\n data-origin={id}\n ref={externalRef}\n required={required}\n defaultValue={props.value || value || undefined}\n />\n <FloatingPortal preserveTabOrder>\n {open ? (\n <FloatingFocusManager modal guards returnFocus={false} context={context} initialFocus={-1} visuallyHiddenDismiss>\n <motion.div\n {...getFloatingProps({\n ref: mergeRefs(removeScrollRef as any, refs.setFloating as any) as any,\n style: { ...transitions.styles, left: x, top: y ?? 0, position: strategy, height: \"auto\" },\n })}\n initial={false}\n data-floating=\"true\"\n animate={{ height: isEmpty ? \"auto\" : h }}\n className={css(\n \"shadow-floating isolate z-floating m-0 max-h-80 origin-[top_center] list-none overscroll-contain rounded-b-lg rounded-t-lg border border-floating-border bg-floating-background p-0 text-foreground ease-in-out\",\n isTopPlacement ? \"origin-[bottom_center]\" : \"origin-[top_center]\"\n )}\n onAnimationComplete={() => {\n if (!open) return setH(0);\n const ul = refs.floating.current as HTMLElement;\n const li = ul.querySelectorAll(\"li\").item(0);\n const sum = (li ? li.getBoundingClientRect().height : MIN_SIZE) * displayList.length;\n return flushSync(() => setH(sum + 2));\n }}\n >\n {isEmpty ? (\n <div role=\"option\" className=\"w-full border-b border-tooltip-border\">\n <span className=\"flex w-full justify-between p-2 text-left text-disabled\">\n {emptyMessage || translation.autocompleteEmpty}\n </span>\n </div>\n ) : null}\n <Virtuoso\n overscan={40}\n ref={virtuoso}\n hidden={isEmpty}\n data={displayList}\n style={{ height: h }}\n defaultItemHeight={MIN_SIZE}\n components={components as any}\n scrollerRef={(e) => void (scroller.current = e as HTMLElement)}\n className=\"border-floating max-h-full overscroll-contain rounded-lg bg-floating-background p-0 text-foreground\"\n itemContent={(i, option) => {\n const Label = (option.Render as React.FC<any>) ?? Frag;\n const active = value === option.value || value === option.label;\n const selected = index === i;\n const children = option.label ?? option.value;\n return (\n <button\n data-value={option.value}\n {...getItemProps({\n ref: (node) => void (listRef.current[i] = node) as any,\n role: \"option\",\n type: \"button\",\n \"aria-checked\": active,\n \"aria-current\": active,\n \"aria-selected\": active,\n \"aria-busy\": option.disabled,\n onClick: () => onSelect(option, i),\n className: `cursor-pointer min-h-10 hover:bg-floating-hover w-full p-2 text-left ${active ? \"bg-primary-hover text-primary-foreground\" : \"\"} ${selected ? \"bg-floating-hover text-floating-foreground\" : \"\"}`,\n })}\n >\n <Label {...props} label={option.label} value={option.value} children={children} />\n </button>\n );\n }}\n />\n </motion.div>\n </FloatingFocusManager>\n ) : null}\n </FloatingPortal>\n </InputField>\n );\n }\n);\n"],"names":["getCoarse","useIsCoarseDevice","ref","useRef","isSsr","isCoarse","setIsCoarse","useState","useEffect","e","useRemoveScroll","remove","removeStyle","isCoarseDevice","prev","isMobile","hasVerticalScroll","controller","html","removeScroll","el","rect","realHeight","onlyNumbers","scrollable","Is","hasScroll","fuzzyMatch","text","search","firstChar","firstCharIndexes","char","index","matchedIndexes","startingIndex","indexes","i","letter","bestMatch","a","b","aSpread","bSpread","travel","path","regexp","obj","keys","res","key","regexPaths","result","str","diacritics","input","strCompare","value","_","match","compare","defaultScore","x","fzf","items","id","map","remap","item","idVal","filter","searchValue","target","Frag","props","jsx","Fragment","transitionStyles","emptyRef","List","forwardRef","motion","AnimatePresence","Item","context","components","MIN_SIZE","Autocomplete","left","error","right","loading","options","container","rightLabel","interactive","emptyMessage","optionalText","labelClassName","feedback","hideLeft","required","dynamicOption","externalRef","scroller","fieldset","virtuoso","defaults","translation","useTranslations","h","setH","open","setOpen","shadow","setShadow","setValue","label","setLabel","setIndex","listRef","removeScrollRef","innerOptions","openDropdown","flushSync","list","setClosed","displayList","pattern","safeRegex","y","strategy","refs","placement","useFloating","autoUpdate","offset","autoPlacement","size","args","fullSize","DEFAULT_SIZE","getRemainingSize","maxH","mw","transitions","useTransitionStyles","getReferenceProps","getFloatingProps","getItemProps","useInteractions","useRole","useDismiss","useListNavigation","inputRef","s","initializeInputDataset","onSelect","opt","event","onChange","onCaretDownClick","onFocus","onClose","dispatchInput","shadowId","isEmpty","isTopPlacement","jsxs","InputField","CaretDownIcon","next","css","FloatingPortal","FloatingFocusManager","mergeRefs","li","sum","Virtuoso","option","Label","active","selected","children","node"],"mappings":"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"}