@g4rcez/components 4.0.2 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/ai/SKILL.md +120 -153
  2. package/ai/docs/Alert.md +47 -48
  3. package/ai/docs/AnimatedList.md +88 -87
  4. package/ai/docs/Autocomplete.md +102 -106
  5. package/ai/docs/Button.md +33 -33
  6. package/ai/docs/Calendar.md +67 -101
  7. package/ai/docs/Card.md +59 -55
  8. package/ai/docs/Checkbox.md +77 -82
  9. package/ai/docs/CommandPalette.md +154 -172
  10. package/ai/docs/DatePicker.md +45 -64
  11. package/ai/docs/Dropdown.md +98 -126
  12. package/ai/docs/Empty.md +41 -44
  13. package/ai/docs/Expand.md +40 -54
  14. package/ai/docs/FileUpload.md +102 -109
  15. package/ai/docs/Form.md +35 -29
  16. package/ai/docs/FormReset.md +37 -37
  17. package/ai/docs/Heading.md +4 -6
  18. package/ai/docs/Input.md +73 -98
  19. package/ai/docs/InputField.md +67 -67
  20. package/ai/docs/List.md +88 -85
  21. package/ai/docs/Menu.md +62 -60
  22. package/ai/docs/Modal.md +129 -136
  23. package/ai/docs/MultiSelect.md +65 -84
  24. package/ai/docs/Notifications.md +96 -96
  25. package/ai/docs/PageCalendar.md +88 -97
  26. package/ai/docs/Polymorph.md +25 -41
  27. package/ai/docs/Progress.md +55 -51
  28. package/ai/docs/Radiobox.md +49 -41
  29. package/ai/docs/RenderOnView.md +26 -32
  30. package/ai/docs/Resizable.md +60 -65
  31. package/ai/docs/Select.md +158 -158
  32. package/ai/docs/Shortcut.md +14 -14
  33. package/ai/docs/Skeleton.md +56 -60
  34. package/ai/docs/Slider.md +26 -49
  35. package/ai/docs/Slot.md +15 -17
  36. package/ai/docs/Spinner.md +17 -15
  37. package/ai/docs/Stats.md +44 -42
  38. package/ai/docs/Step.md +60 -60
  39. package/ai/docs/Switch.md +44 -54
  40. package/ai/docs/Table.md +124 -136
  41. package/ai/docs/Tabs.md +90 -90
  42. package/ai/docs/Tag.md +63 -65
  43. package/ai/docs/TaskList.md +40 -50
  44. package/ai/docs/Textarea.md +47 -70
  45. package/ai/docs/Timeline.md +98 -96
  46. package/ai/docs/Toolbar.md +46 -46
  47. package/ai/docs/Tooltip.md +103 -103
  48. package/ai/docs/Typography.md +55 -55
  49. package/ai/docs/Wizard.md +104 -109
  50. package/ai/docs/index.md +116 -116
  51. package/dist/autocomplete-DcTNOwyg.js +393 -0
  52. package/dist/autocomplete-DcTNOwyg.js.map +1 -0
  53. package/dist/{calendar-B5lSd0ID.js → calendar-BJMHRoy2.js} +104 -105
  54. package/dist/calendar-BJMHRoy2.js.map +1 -0
  55. package/dist/components/core/button.js +10 -10
  56. package/dist/components/core/button.js.map +1 -1
  57. package/dist/components/core/tag.js +4 -4
  58. package/dist/components/core/tag.js.map +1 -1
  59. package/dist/components/display/alert.js +48 -46
  60. package/dist/components/display/alert.js.map +1 -1
  61. package/dist/components/display/calendar.js +6 -6
  62. package/dist/components/display/card.js +2 -2
  63. package/dist/components/display/card.js.map +1 -1
  64. package/dist/components/display/list.js +1 -1
  65. package/dist/components/display/list.js.map +1 -1
  66. package/dist/components/display/notifications.js +3 -3
  67. package/dist/components/display/stats.js +1 -1
  68. package/dist/components/display/tabs.js +2 -2
  69. package/dist/components/display/timeline.js +1 -1
  70. package/dist/components/floating/dropdown.js +25 -17
  71. package/dist/components/floating/dropdown.js.map +1 -1
  72. package/dist/components/floating/expand.js +7 -7
  73. package/dist/components/floating/expand.js.map +1 -1
  74. package/dist/components/floating/menu.js +10 -10
  75. package/dist/components/floating/menu.js.map +1 -1
  76. package/dist/components/floating/modal.js +106 -102
  77. package/dist/components/floating/modal.js.map +1 -1
  78. package/dist/components/floating/tooltip.js +14 -14
  79. package/dist/components/floating/tooltip.js.map +1 -1
  80. package/dist/components/form/autocomplete.js +6 -6
  81. package/dist/components/form/checkbox.js +1 -1
  82. package/dist/components/form/date-picker.js +5 -5
  83. package/dist/components/form/file-upload.js +2 -2
  84. package/dist/components/form/form.js.map +1 -1
  85. package/dist/components/form/input.js +1 -1
  86. package/dist/components/form/radiobox.js +1 -1
  87. package/dist/components/form/select.js +3 -3
  88. package/dist/components/form/switch.js +2 -2
  89. package/dist/components/form/switch.js.map +1 -1
  90. package/dist/components/table/table.js +3 -3
  91. package/dist/{date-picker-DwNo22lx.js → date-picker-Bnl07nd8.js} +8 -6
  92. package/dist/date-picker-Bnl07nd8.js.map +1 -0
  93. package/dist/{dom-Dl8XH0CK.js → dom-CyQHY7ID.js} +66 -61
  94. package/dist/dom-CyQHY7ID.js.map +1 -0
  95. package/dist/{file-upload-Brf2NkLr.js → file-upload-93d5DR4q.js} +139 -129
  96. package/dist/file-upload-93d5DR4q.js.map +1 -0
  97. package/dist/{floating-ui.react-QNHG9W4N.js → floating-ui.react-M2PGXLDp.js} +8 -8
  98. package/dist/floating-ui.react-M2PGXLDp.js.map +1 -0
  99. package/dist/{fns-D2eyJKd5.js → fns-C7Dt27Qd.js} +2 -2
  100. package/dist/fns-C7Dt27Qd.js.map +1 -0
  101. package/dist/index-BJ1ayTam.js +126 -0
  102. package/dist/index-BJ1ayTam.js.map +1 -0
  103. package/dist/index-C-PuFUZi.js.map +1 -1
  104. package/dist/{index-BelDtX5M.js → index-DDeQW0JW.js} +399 -404
  105. package/dist/index-DDeQW0JW.js.map +1 -0
  106. package/dist/index-DE4shK8D.js +215 -0
  107. package/dist/index-DE4shK8D.js.map +1 -0
  108. package/dist/{index-DJSMaZR4.js → index-DlJ_2RBL.js} +2 -2
  109. package/dist/index-DlJ_2RBL.js.map +1 -0
  110. package/dist/index.css +1 -1
  111. package/dist/index.esm-BaIwleSE.js.map +1 -1
  112. package/dist/index.js +2810 -2756
  113. package/dist/index.js.map +1 -1
  114. package/dist/{input-CrGrSnUt.js → input-_MVxmIpu.js} +116 -114
  115. package/dist/input-_MVxmIpu.js.map +1 -0
  116. package/dist/{input-field-5vYcz5tT.js → input-field-CDCOODOl.js} +63 -47
  117. package/dist/input-field-CDCOODOl.js.map +1 -0
  118. package/dist/notifications-Dp0ydKJS.js +2576 -0
  119. package/dist/notifications-Dp0ydKJS.js.map +1 -0
  120. package/dist/polymorph-B5n9fs_K.js.map +1 -1
  121. package/dist/preset/plugin.tailwind.d.ts.map +1 -1
  122. package/dist/preset/plugin.tailwind.js +20 -18
  123. package/dist/preset/preset.tailwind.js +24 -25
  124. package/dist/preset/src/styles/common.js +6 -3
  125. package/dist/preset/src/styles/dark.d.ts.map +1 -1
  126. package/dist/preset/src/styles/dark.js +9 -5
  127. package/dist/preset/src/styles/design-tokens.js +68 -89
  128. package/dist/preset/src/styles/light.d.ts.map +1 -1
  129. package/dist/preset/src/styles/light.js +9 -5
  130. package/dist/preset/src/styles/theme.js +7 -4
  131. package/dist/preset/src/styles/theme.types.d.ts +2 -1
  132. package/dist/preset/src/styles/theme.types.d.ts.map +1 -1
  133. package/dist/preset/src/styles/theme.types.js +2 -1
  134. package/dist/skeleton-BjJobYYf.js +24 -0
  135. package/dist/skeleton-BjJobYYf.js.map +1 -0
  136. package/dist/slot-CRyweuj0.js.map +1 -1
  137. package/dist/styles/common.js +6 -3
  138. package/dist/styles/dark.d.ts.map +1 -1
  139. package/dist/styles/dark.js +9 -5
  140. package/dist/styles/design-tokens.js +68 -89
  141. package/dist/styles/light.d.ts.map +1 -1
  142. package/dist/styles/light.js +9 -5
  143. package/dist/styles/theme.js +7 -4
  144. package/dist/styles/theme.types.d.ts +2 -1
  145. package/dist/styles/theme.types.d.ts.map +1 -1
  146. package/dist/styles/theme.types.js +2 -1
  147. package/dist/tabs-B0g7YtQv.js +123 -0
  148. package/dist/tabs-B0g7YtQv.js.map +1 -0
  149. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  150. package/dist/{context-BFXNJVn2.js → use-translations-DSltA7H_.js} +38 -30
  151. package/dist/use-translations-DSltA7H_.js.map +1 -0
  152. package/package.json +99 -86
  153. package/ai/docs/TransferList.md +0 -142
  154. package/dist/autocomplete-Cn9Z2hLq.js +0 -375
  155. package/dist/autocomplete-Cn9Z2hLq.js.map +0 -1
  156. package/dist/calendar-B5lSd0ID.js.map +0 -1
  157. package/dist/components/core/button.d.ts +0 -77
  158. package/dist/components/core/button.d.ts.map +0 -1
  159. package/dist/components/core/heading.d.ts +0 -3
  160. package/dist/components/core/heading.d.ts.map +0 -1
  161. package/dist/components/core/polymorph.d.ts +0 -10
  162. package/dist/components/core/polymorph.d.ts.map +0 -1
  163. package/dist/components/core/render-on-view.d.ts +0 -7
  164. package/dist/components/core/render-on-view.d.ts.map +0 -1
  165. package/dist/components/core/resizable.d.ts +0 -3
  166. package/dist/components/core/resizable.d.ts.map +0 -1
  167. package/dist/components/core/slot.d.ts +0 -16
  168. package/dist/components/core/slot.d.ts.map +0 -1
  169. package/dist/components/core/tag.d.ts +0 -35
  170. package/dist/components/core/tag.d.ts.map +0 -1
  171. package/dist/components/core/typography.d.ts +0 -25
  172. package/dist/components/core/typography.d.ts.map +0 -1
  173. package/dist/components/display/alert.d.ts +0 -28
  174. package/dist/components/display/alert.d.ts.map +0 -1
  175. package/dist/components/display/calendar.d.ts +0 -42
  176. package/dist/components/display/calendar.d.ts.map +0 -1
  177. package/dist/components/display/card.d.ts +0 -29
  178. package/dist/components/display/card.d.ts.map +0 -1
  179. package/dist/components/display/empty.d.ts +0 -8
  180. package/dist/components/display/empty.d.ts.map +0 -1
  181. package/dist/components/display/list.d.ts +0 -16
  182. package/dist/components/display/list.d.ts.map +0 -1
  183. package/dist/components/display/notifications.d.ts +0 -27
  184. package/dist/components/display/notifications.d.ts.map +0 -1
  185. package/dist/components/display/progress.d.ts +0 -13
  186. package/dist/components/display/progress.d.ts.map +0 -1
  187. package/dist/components/display/shortcut.d.ts +0 -4
  188. package/dist/components/display/shortcut.d.ts.map +0 -1
  189. package/dist/components/display/skeleton.d.ts +0 -12
  190. package/dist/components/display/skeleton.d.ts.map +0 -1
  191. package/dist/components/display/spinner.d.ts +0 -5
  192. package/dist/components/display/spinner.d.ts.map +0 -1
  193. package/dist/components/display/stats.d.ts +0 -12
  194. package/dist/components/display/stats.d.ts.map +0 -1
  195. package/dist/components/display/step.d.ts +0 -24
  196. package/dist/components/display/step.d.ts.map +0 -1
  197. package/dist/components/display/tabs.d.ts +0 -24
  198. package/dist/components/display/tabs.d.ts.map +0 -1
  199. package/dist/components/display/timeline.d.ts +0 -10
  200. package/dist/components/display/timeline.d.ts.map +0 -1
  201. package/dist/components/floating/command-palette.d.ts +0 -49
  202. package/dist/components/floating/command-palette.d.ts.map +0 -1
  203. package/dist/components/floating/dropdown.d.ts +0 -15
  204. package/dist/components/floating/dropdown.d.ts.map +0 -1
  205. package/dist/components/floating/expand.d.ts +0 -11
  206. package/dist/components/floating/expand.d.ts.map +0 -1
  207. package/dist/components/floating/menu.d.ts +0 -52
  208. package/dist/components/floating/menu.d.ts.map +0 -1
  209. package/dist/components/floating/modal.d.ts +0 -60
  210. package/dist/components/floating/modal.d.ts.map +0 -1
  211. package/dist/components/floating/toolbar.d.ts +0 -6
  212. package/dist/components/floating/toolbar.d.ts.map +0 -1
  213. package/dist/components/floating/tooltip.d.ts +0 -17
  214. package/dist/components/floating/tooltip.d.ts.map +0 -1
  215. package/dist/components/floating/wizard.d.ts +0 -26
  216. package/dist/components/floating/wizard.d.ts.map +0 -1
  217. package/dist/components/form/autocomplete.d.ts +0 -16
  218. package/dist/components/form/autocomplete.d.ts.map +0 -1
  219. package/dist/components/form/checkbox.d.ts +0 -12
  220. package/dist/components/form/checkbox.d.ts.map +0 -1
  221. package/dist/components/form/date-picker.d.ts +0 -10
  222. package/dist/components/form/date-picker.d.ts.map +0 -1
  223. package/dist/components/form/file-upload.d.ts +0 -15
  224. package/dist/components/form/file-upload.d.ts.map +0 -1
  225. package/dist/components/form/form.d.ts +0 -3
  226. package/dist/components/form/form.d.ts.map +0 -1
  227. package/dist/components/form/formReset.d.ts +0 -2
  228. package/dist/components/form/formReset.d.ts.map +0 -1
  229. package/dist/components/form/free-text.d.ts +0 -11
  230. package/dist/components/form/free-text.d.ts.map +0 -1
  231. package/dist/components/form/input-field.d.ts +0 -34
  232. package/dist/components/form/input-field.d.ts.map +0 -1
  233. package/dist/components/form/input.d.ts +0 -52
  234. package/dist/components/form/input.d.ts.map +0 -1
  235. package/dist/components/form/multi-select.d.ts +0 -19
  236. package/dist/components/form/multi-select.d.ts.map +0 -1
  237. package/dist/components/form/radiobox.d.ts +0 -7
  238. package/dist/components/form/radiobox.d.ts.map +0 -1
  239. package/dist/components/form/select.d.ts +0 -13
  240. package/dist/components/form/select.d.ts.map +0 -1
  241. package/dist/components/form/slider.d.ts +0 -7
  242. package/dist/components/form/slider.d.ts.map +0 -1
  243. package/dist/components/form/switch.d.ts +0 -9
  244. package/dist/components/form/switch.d.ts.map +0 -1
  245. package/dist/components/form/task-list.d.ts +0 -3
  246. package/dist/components/form/task-list.d.ts.map +0 -1
  247. package/dist/components/form/textarea.d.ts +0 -6
  248. package/dist/components/form/textarea.d.ts.map +0 -1
  249. package/dist/components/form/transfer-list.d.ts +0 -14
  250. package/dist/components/form/transfer-list.d.ts.map +0 -1
  251. package/dist/components/form/transfer-list.js +0 -55
  252. package/dist/components/form/transfer-list.js.map +0 -1
  253. package/dist/components/index.d.ts +0 -46
  254. package/dist/components/index.d.ts.map +0 -1
  255. package/dist/components/page-calendar/calendar-header.d.ts +0 -16
  256. package/dist/components/page-calendar/calendar-header.d.ts.map +0 -1
  257. package/dist/components/page-calendar/day-view.d.ts +0 -12
  258. package/dist/components/page-calendar/day-view.d.ts.map +0 -1
  259. package/dist/components/page-calendar/event-pill.d.ts +0 -9
  260. package/dist/components/page-calendar/event-pill.d.ts.map +0 -1
  261. package/dist/components/page-calendar/index.d.ts +0 -4
  262. package/dist/components/page-calendar/index.d.ts.map +0 -1
  263. package/dist/components/page-calendar/month-view.d.ts +0 -11
  264. package/dist/components/page-calendar/month-view.d.ts.map +0 -1
  265. package/dist/components/page-calendar/page-calendar.d.ts +0 -18
  266. package/dist/components/page-calendar/page-calendar.d.ts.map +0 -1
  267. package/dist/components/page-calendar/page-calendar.types.d.ts +0 -18
  268. package/dist/components/page-calendar/page-calendar.types.d.ts.map +0 -1
  269. package/dist/components/page-calendar/page-calendar.utils.d.ts +0 -24
  270. package/dist/components/page-calendar/page-calendar.utils.d.ts.map +0 -1
  271. package/dist/components/page-calendar/week-view.d.ts +0 -11
  272. package/dist/components/page-calendar/week-view.d.ts.map +0 -1
  273. package/dist/components/table/filter.d.ts +0 -42
  274. package/dist/components/table/filter.d.ts.map +0 -1
  275. package/dist/components/table/group.d.ts +0 -17
  276. package/dist/components/table/group.d.ts.map +0 -1
  277. package/dist/components/table/index.d.ts +0 -20
  278. package/dist/components/table/index.d.ts.map +0 -1
  279. package/dist/components/table/inner-table.d.ts +0 -29
  280. package/dist/components/table/inner-table.d.ts.map +0 -1
  281. package/dist/components/table/metadata.d.ts +0 -4
  282. package/dist/components/table/metadata.d.ts.map +0 -1
  283. package/dist/components/table/pagination.d.ts +0 -3
  284. package/dist/components/table/pagination.d.ts.map +0 -1
  285. package/dist/components/table/row.d.ts +0 -12
  286. package/dist/components/table/row.d.ts.map +0 -1
  287. package/dist/components/table/sort.d.ts +0 -28
  288. package/dist/components/table/sort.d.ts.map +0 -1
  289. package/dist/components/table/table-lib.d.ts +0 -135
  290. package/dist/components/table/table-lib.d.ts.map +0 -1
  291. package/dist/components/table/table.context.d.ts +0 -10
  292. package/dist/components/table/table.context.d.ts.map +0 -1
  293. package/dist/components/table/thead.d.ts +0 -9
  294. package/dist/components/table/thead.d.ts.map +0 -1
  295. package/dist/config/context.d.ts +0 -21
  296. package/dist/config/context.d.ts.map +0 -1
  297. package/dist/config/default-translations.d.ts +0 -90
  298. package/dist/config/default-translations.d.ts.map +0 -1
  299. package/dist/config/default-tweaks.d.ts +0 -13
  300. package/dist/config/default-tweaks.d.ts.map +0 -1
  301. package/dist/constants.d.ts +0 -3
  302. package/dist/constants.d.ts.map +0 -1
  303. package/dist/context-BFXNJVn2.js.map +0 -1
  304. package/dist/date-picker-DwNo22lx.js.map +0 -1
  305. package/dist/dom-Dl8XH0CK.js.map +0 -1
  306. package/dist/file-upload-Brf2NkLr.js.map +0 -1
  307. package/dist/floating-ui.react-QNHG9W4N.js.map +0 -1
  308. package/dist/fns-D2eyJKd5.js.map +0 -1
  309. package/dist/hooks/use-click-outside.d.ts +0 -3
  310. package/dist/hooks/use-click-outside.d.ts.map +0 -1
  311. package/dist/hooks/use-color-parser.d.ts +0 -2
  312. package/dist/hooks/use-color-parser.d.ts.map +0 -1
  313. package/dist/hooks/use-components-provider.d.ts +0 -15
  314. package/dist/hooks/use-components-provider.d.ts.map +0 -1
  315. package/dist/hooks/use-debounce.d.ts +0 -5
  316. package/dist/hooks/use-debounce.d.ts.map +0 -1
  317. package/dist/hooks/use-floating-ref.d.ts +0 -2
  318. package/dist/hooks/use-floating-ref.d.ts.map +0 -1
  319. package/dist/hooks/use-form.d.ts +0 -394
  320. package/dist/hooks/use-form.d.ts.map +0 -1
  321. package/dist/hooks/use-hover.d.ts +0 -3
  322. package/dist/hooks/use-hover.d.ts.map +0 -1
  323. package/dist/hooks/use-input-id.d.ts +0 -4
  324. package/dist/hooks/use-input-id.d.ts.map +0 -1
  325. package/dist/hooks/use-is-coarse-device.d.ts +0 -2
  326. package/dist/hooks/use-is-coarse-device.d.ts.map +0 -1
  327. package/dist/hooks/use-locale.d.ts +0 -3
  328. package/dist/hooks/use-locale.d.ts.map +0 -1
  329. package/dist/hooks/use-media-query.d.ts +0 -2
  330. package/dist/hooks/use-media-query.d.ts.map +0 -1
  331. package/dist/hooks/use-on-event.d.ts +0 -4
  332. package/dist/hooks/use-on-event.d.ts.map +0 -1
  333. package/dist/hooks/use-parent.d.ts +0 -3
  334. package/dist/hooks/use-parent.d.ts.map +0 -1
  335. package/dist/hooks/use-preferences.d.ts +0 -2
  336. package/dist/hooks/use-preferences.d.ts.map +0 -1
  337. package/dist/hooks/use-previous.d.ts +0 -2
  338. package/dist/hooks/use-previous.d.ts.map +0 -1
  339. package/dist/hooks/use-reactive.d.ts +0 -2
  340. package/dist/hooks/use-reactive.d.ts.map +0 -1
  341. package/dist/hooks/use-remove-scroll.d.ts +0 -4
  342. package/dist/hooks/use-remove-scroll.d.ts.map +0 -1
  343. package/dist/hooks/use-resize-observer.d.ts +0 -2
  344. package/dist/hooks/use-resize-observer.d.ts.map +0 -1
  345. package/dist/hooks/use-stable-ref.d.ts +0 -2
  346. package/dist/hooks/use-stable-ref.d.ts.map +0 -1
  347. package/dist/hooks/use-swipe.d.ts +0 -8
  348. package/dist/hooks/use-swipe.d.ts.map +0 -1
  349. package/dist/hooks/use-translations.d.ts +0 -88
  350. package/dist/hooks/use-translations.d.ts.map +0 -1
  351. package/dist/hooks/use-tweaks.d.ts +0 -3
  352. package/dist/hooks/use-tweaks.d.ts.map +0 -1
  353. package/dist/hooks/use-window-size.d.ts +0 -5
  354. package/dist/hooks/use-window-size.d.ts.map +0 -1
  355. package/dist/index-BelDtX5M.js.map +0 -1
  356. package/dist/index-DJSMaZR4.js.map +0 -1
  357. package/dist/index-Z-fZHxfJ.js +0 -335
  358. package/dist/index-Z-fZHxfJ.js.map +0 -1
  359. package/dist/index.d.ts +0 -22
  360. package/dist/index.d.ts.map +0 -1
  361. package/dist/input-CrGrSnUt.js.map +0 -1
  362. package/dist/input-field-5vYcz5tT.js.map +0 -1
  363. package/dist/lib/combi-keys.d.ts +0 -15
  364. package/dist/lib/combi-keys.d.ts.map +0 -1
  365. package/dist/lib/dict.d.ts +0 -12
  366. package/dist/lib/dict.d.ts.map +0 -1
  367. package/dist/lib/dom.d.ts +0 -19
  368. package/dist/lib/dom.d.ts.map +0 -1
  369. package/dist/lib/fns.d.ts +0 -11
  370. package/dist/lib/fns.d.ts.map +0 -1
  371. package/dist/lib/fzf.d.ts +0 -16
  372. package/dist/lib/fzf.d.ts.map +0 -1
  373. package/dist/lib/keyboard-area.d.ts +0 -16
  374. package/dist/lib/keyboard-area.d.ts.map +0 -1
  375. package/dist/notifications-cUdVPs-B.js +0 -2786
  376. package/dist/notifications-cUdVPs-B.js.map +0 -1
  377. package/dist/skeleton-D75GFBV6.js +0 -10
  378. package/dist/skeleton-D75GFBV6.js.map +0 -1
  379. package/dist/tabs-S00a8qq8.js +0 -106
  380. package/dist/tabs-S00a8qq8.js.map +0 -1
  381. package/dist/types.d.ts +0 -26
  382. package/dist/types.d.ts.map +0 -1
  383. package/dist/use-translations-BwLKTrZv.js +0 -10
  384. package/dist/use-translations-BwLKTrZv.js.map +0 -1
@@ -0,0 +1,393 @@
1
+ import { jsx as d, jsxs as Y } from "react/jsx-runtime";
2
+ import { u as Ve, o as $e, g as ze, h as Oe, b as Pe, i as _e, c as Ze, d as He, j as Ue, k as Be, F as We, m as je } from "./floating-ui.react-M2PGXLDp.js";
3
+ import { e as Ke } from "./CaretDown.es-Cj7klWI3.js";
4
+ import { useRef as I, useState as C, useEffect as L, forwardRef as G, useMemo as V, Fragment as Qe } from "react";
5
+ import { flushSync as se } from "react-dom";
6
+ import { Y as qe } from "./index-C-PuFUZi.js";
7
+ import { h as Ge, o as Je, I as D, g as Xe, i as et, c as ie, s as tt, f as nt } from "./dom-CyQHY7ID.js";
8
+ import { i as q, c as rt, s as ce } from "./fns-C7Dt27Qd.js";
9
+ import { u as lt } from "./use-translations-DSltA7H_.js";
10
+ import { I as ot } from "./input-field-CDCOODOl.js";
11
+ import { m as J, A as at } from "./proxy-BZcQiBrp.js";
12
+ const ue = () => window.matchMedia("@media (pointer: coarse)"), st = () => {
13
+ const t = I(q() ? null : ue()), [n, a] = C(q() ? !1 : t.current?.matches ?? !1);
14
+ return L(() => {
15
+ (t.current === null ? ue() : t.current).addEventListener("change", (l) => a(l.matches));
16
+ }, []), n;
17
+ }, it = (t, n = "overflow-hidden") => {
18
+ const a = I(null), o = st(), l = I(q() ? "" : document.documentElement.style.overflowY);
19
+ return L(() => {
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 || rt()) return;
23
+ document.documentElement.style.padding = Ge(document.documentElement) ? "0 15px 0 0" : "";
24
+ } else
25
+ document.documentElement.style.padding = "", document.documentElement.style.overflowY = l.current;
26
+ }, [t, o, n]), L(() => {
27
+ if (!t) return;
28
+ const s = a.current;
29
+ if (!s) return;
30
+ const u = new AbortController(), i = (b) => {
31
+ const p = s.getBoundingClientRect(), v = s.style.height ? Number(Je(s.style.height)) : null, x = D.number(v) ? v : p.height;
32
+ s.scrollHeight <= x && b.preventDefault();
33
+ };
34
+ return s.addEventListener("wheel", i, { signal: u.signal, passive: !1 }), () => u.abort();
35
+ }, [t]), a;
36
+ }, ct = (t, n) => {
37
+ if (t = String(t).toLocaleLowerCase(), n = String(n).toLocaleLowerCase(), t === n) return 1;
38
+ const a = n[0];
39
+ if (!a) return null;
40
+ const o = [];
41
+ let l = 0;
42
+ for (; l < t.length; ) {
43
+ const u = t.indexOf(a, l);
44
+ if (u === -1) break;
45
+ let i = u + 1;
46
+ const b = [u];
47
+ let p = !0;
48
+ for (let v = 1; v < n.length; v++) {
49
+ const x = t.indexOf(n[v], i);
50
+ if (x === -1) {
51
+ p = !1;
52
+ break;
53
+ }
54
+ b.push(x), i = x + 1;
55
+ }
56
+ p && o.push(b), l = u + 1;
57
+ }
58
+ if (o.length === 0) return null;
59
+ const s = o.sort((u, i) => u.length === 1 ? u[0] - i[0] : u[u.length - 1] - u[0] - (i[i.length - 1] - i[0]))[0];
60
+ return s.length > 1 ? 2 + (s[s.length - 1] - s[0]) : 2 + s[0];
61
+ }, de = (t, n, a) => {
62
+ const o = t.split(n).filter(Boolean);
63
+ let l = a;
64
+ for (const s of o) {
65
+ if (l == null)
66
+ return l;
67
+ l = l[s];
68
+ }
69
+ return l;
70
+ }, fe = { basic: /[,[\]]+?/, extend: /[,[\].]+?/ }, me = (t, n) => {
71
+ const a = de(n, fe.basic, t);
72
+ return a !== void 0 && a !== t ? a : de(n, fe.extend, t);
73
+ }, ge = (t) => t.replace(/[^0-9]/g, ""), Q = (t) => t.normalize("NFD").replace(/[\u0300-\u036f]/g, ""), he = (t, n, a, o = "FUZZY") => o === "CONTAINS" ? t.includes(n) : o === "EQUAL" ? t === n : o === "CONTAINS_NUMBERS" ? ge(t).includes(ge(n)) : o === "STARTS_WITH" ? t.startsWith(n) : o === "ENDS_WITH" ? t.endsWith(n) : o === "FUZZY" ? ct(t, n) !== null : !1, ut = (t, n, a, o = "FUZZY") => Array.isArray(n) ? n.some((l) => he(t, l, a, o)) : he(t, n, a, o), dt = (t, n, a) => {
74
+ if (a.length === 0)
75
+ return t;
76
+ const o = /* @__PURE__ */ new Map(), l = a.map((s) => {
77
+ const u = D.array(s.value) ? s.value.map((i) => Q(`${i}`.toLocaleLowerCase()).trim()) : Q(`${s.value}`.toLocaleLowerCase()).trim();
78
+ return { ...s, target: u };
79
+ });
80
+ return t.forEach((s) => {
81
+ const u = me(s, n);
82
+ l.forEach((i) => {
83
+ const b = me(s, i.key);
84
+ if (!b) return;
85
+ const p = Q(`${b}`.toLocaleLowerCase()).trim();
86
+ if (ut(p, i.target, i.score, i.match))
87
+ return void o.set(u, s);
88
+ D.function(i.ifNotMatch) && i.ifNotMatch(i.target, p) && o.set(u, s);
89
+ });
90
+ }), Array.from(o.values());
91
+ }, ft = (t) => /* @__PURE__ */ d(Qe, { children: t.children }), mt = {
92
+ duration: 200,
93
+ open: { transform: "scaleY(1)", opacity: 1 },
94
+ close: { transform: "scaleY(0)", opacity: 0 },
95
+ initial: { transform: "scaleY(0)", opacity: 0.2 }
96
+ }, gt = G(function({ context: n, ...a }, o) {
97
+ return /* @__PURE__ */ d(J.ul, { ...a, ref: o, className: "max-h-96 w-full overscroll-contain rounded-lg", children: /* @__PURE__ */ d(at, { children: a.children }) });
98
+ }), ht = G(function({ item: n, context: a, ...o }, l) {
99
+ return /* @__PURE__ */ d(J.li, { ...o, ref: l, className: "first:rounded-t-lg last:rounded-t-lg" });
100
+ }), bt = { List: gt, Item: ht }, pt = [], $ = 40, Ft = G(
101
+ ({
102
+ left: t,
103
+ error: n,
104
+ right: a,
105
+ loading: o,
106
+ options: l,
107
+ container: s,
108
+ rightLabel: u,
109
+ interactive: i,
110
+ emptyMessage: b,
111
+ optionalText: p,
112
+ labelClassName: v,
113
+ feedback: x = null,
114
+ hideLeft: X = !1,
115
+ required: z = !1,
116
+ dynamicOption: M = !1,
117
+ ...c
118
+ }, be) => {
119
+ const pe = I(null), ee = I(null), O = I(null), P = c.value ?? c.defaultValue ?? "", _ = lt(), [f, A] = C(!1), [w, F] = C(""), [E, Z] = C(P), [ve, H] = C(() => l.find((e) => e.value === P)?.label ?? P), [g, T] = C(null), te = I(pt), [, we] = C(0), ye = it(f, "block-only"), U = V(
120
+ () => M && w !== "" ? [{ value: w, label: w, "data-dynamic": "true" }, ...l] : l,
121
+ [M, w, l]
122
+ ), ne = () => se(() => A(!0)), re = V(
123
+ () => w ? dt(U, "value", [
124
+ { key: "value", value: w },
125
+ { key: "label", value: w }
126
+ ]) : U,
127
+ [U, w]
128
+ ), [le, S] = C(() => Math.min(320, $ * l.length)), B = () => {
129
+ A(!1), S(0);
130
+ }, m = V(() => re.filter((e) => e.hidden !== !0), [re]), Ce = V(
131
+ () => M ? void 0 : `^(${l.map((e) => `${ce(e.value)}${e.label ? "|" + ce(e.label) : ""}`).join("|")})$`,
132
+ [M, l]
133
+ ), { x: xe, y: Ie, strategy: Le, refs: y, context: R, placement: oe } = Ve({
134
+ open: f,
135
+ transform: !0,
136
+ onOpenChange: A,
137
+ placement: "bottom-start",
138
+ whileElementsMounted: Pe,
139
+ middleware: [
140
+ $e(4),
141
+ ze({ allowedPlacements: ["top-start", "bottom-start"], alignment: "start" }),
142
+ Oe({
143
+ padding: 10,
144
+ elementContext: "reference",
145
+ apply(e) {
146
+ const r = Xe(y.reference.current, window.innerHeight), h = `${ee.current?.getBoundingClientRect().width || r}px`;
147
+ Object.assign(e.elements.floating.style, { width: h, maxWidth: h });
148
+ }
149
+ })
150
+ ]
151
+ }), Ee = _e(R, mt), { getReferenceProps: Ne, getFloatingProps: ke, getItemProps: Ae } = Ze([
152
+ He(R, { role: "listbox" }),
153
+ Ue(R),
154
+ Be(R, {
155
+ cols: 0,
156
+ listRef: te,
157
+ loop: !0,
158
+ virtual: !0,
159
+ allowEscape: !0,
160
+ activeIndex: g,
161
+ selectedIndex: g,
162
+ focusItemOnOpen: "auto",
163
+ openOnArrowKeyDown: !0,
164
+ scrollItemIntoView: !0
165
+ })
166
+ ]);
167
+ L(() => {
168
+ if (c.value) {
169
+ const e = l.find((r) => r.value === c.value);
170
+ e && (H(e.label ?? e.value), Z(c.value));
171
+ }
172
+ }, [c.value, l.length]), L(() => {
173
+ const e = y.reference.current;
174
+ if (e)
175
+ return et(e);
176
+ }, []), L(() => {
177
+ if (!f) return;
178
+ const e = requestAnimationFrame(() => we((r) => r + 1));
179
+ return () => cancelAnimationFrame(e);
180
+ }, [f]), L(() => {
181
+ if (!f) {
182
+ S(0);
183
+ return;
184
+ }
185
+ const e = setTimeout(() => S(Math.min(320, m.length * $)), 100);
186
+ return () => clearTimeout(e);
187
+ }, [f, m.length]);
188
+ const W = (e, r) => {
189
+ Z(e.value);
190
+ const h = y.reference.current;
191
+ if (!h) return;
192
+ h?.setAttribute("data-value", e.value), h.value = e.value;
193
+ const k = new Event("change", { bubbles: !1, cancelable: !0 });
194
+ h.dispatchEvent(k), c.onChange && c.onChange(tt(h)), H(e.label ?? ""), B(), F(""), T(r);
195
+ }, Fe = (e) => {
196
+ const r = e.target.value;
197
+ return F(r), !f && r === "" ? A(!0) : (e.target.name = c.name || "", r ? A(!0) : c.onChange?.(e));
198
+ }, Se = () => {
199
+ ne(), F(""), y.reference.current?.focus();
200
+ }, Re = () => {
201
+ T((e) => e === null ? 0 : e), ne(), F("");
202
+ }, De = () => {
203
+ y.reference.current?.setAttribute("data-value", ""), F(""), Z(""), H(""), nt(y.reference.current), B();
204
+ }, N = c.id || c.name, j = `${N}-shadow`, K = m.length === 0, ae = oe === "top" || oe === "top-start";
205
+ return /* @__PURE__ */ Y(
206
+ ot,
207
+ {
208
+ ...c,
209
+ left: t,
210
+ error: n,
211
+ id: j,
212
+ form: c.form,
213
+ loading: o,
214
+ name: c.name,
215
+ hideLeft: X,
216
+ required: z,
217
+ title: c.title,
218
+ container: s,
219
+ rightLabel: u,
220
+ interactive: i,
221
+ optionalText: p,
222
+ componentName: "autocomplete",
223
+ labelClassName: v,
224
+ placeholder: c.placeholder,
225
+ ref: ee,
226
+ feedback: f && ae ? c.title : x,
227
+ right: /* @__PURE__ */ Y("span", { className: "flex items-center gap-0.5", children: [
228
+ a,
229
+ /* @__PURE__ */ Y("button", { type: "button", className: "p-2 transition-colors link:text-primary md:p-1", onClick: Se, children: [
230
+ /* @__PURE__ */ d(Ke, { size: 20 }),
231
+ /* @__PURE__ */ d("span", { className: "sr-only", children: _.inputCaretDown })
232
+ ] }),
233
+ E ? /* @__PURE__ */ d(
234
+ "button",
235
+ {
236
+ type: "button",
237
+ onClick: De,
238
+ "aria-label": _.inputCloseValue,
239
+ className: "p-2 transition-colors link:text-danger md:p-1",
240
+ children: /* @__PURE__ */ d("svg", { width: "15", height: "15", viewBox: "0 0 15 15", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ d(
241
+ "path",
242
+ {
243
+ 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",
244
+ fill: "currentColor",
245
+ fillRule: "evenodd",
246
+ clipRule: "evenodd"
247
+ }
248
+ ) })
249
+ }
250
+ ) : null
251
+ ] }),
252
+ children: [
253
+ /* @__PURE__ */ d(
254
+ "input",
255
+ {
256
+ "data-shadow": "true",
257
+ ...Ne({
258
+ ...c,
259
+ onFocus: Re,
260
+ pattern: Ce,
261
+ onChange: Fe,
262
+ id: j,
263
+ name: j,
264
+ ref: y.setReference,
265
+ onClick: (e) => e.currentTarget.focus(),
266
+ onKeyDown(e) {
267
+ if (e.key === "Escape")
268
+ return e.currentTarget.blur(), B();
269
+ if (f) {
270
+ if (e.key === "ArrowDown") {
271
+ let r = D.number(g) ? g + 1 : 0;
272
+ return r > m.length - 1 && (r = 0), O.current?.scrollIntoView({ index: r }), T(r);
273
+ }
274
+ if (e.key === "ArrowUp") {
275
+ let r = D.number(g) ? g - 1 : m.length - 1;
276
+ return r < 0 && (r = m.length - 1), O.current?.scrollIntoView({ index: r }), T(r);
277
+ }
278
+ if (e.key === "Enter") {
279
+ if (g !== null && m[g])
280
+ return e.preventDefault(), W(m[g], g);
281
+ if (m.length === 1)
282
+ return e.preventDefault(), W(m[0], 0);
283
+ }
284
+ }
285
+ }
286
+ }),
287
+ "data-value": E,
288
+ "data-error": !!n,
289
+ "data-name": N,
290
+ "data-target": N,
291
+ required: z,
292
+ value: f ? w : l.length === 0 ? "" : ve || E,
293
+ "aria-autocomplete": "list",
294
+ autoComplete: "off",
295
+ className: ie(
296
+ "input placeholder-input-mask group h-input-height w-full flex-1",
297
+ "rounded-md bg-transparent px-input-x py-input-y text-foreground",
298
+ "outline-none transition-colors focus:ring-2 focus:ring-inset focus:ring-primary",
299
+ "group-error:text-danger group-error:placeholder-input-mask-error",
300
+ "text-base group-focus-within:border-primary group-hover:border-primary",
301
+ c.className
302
+ )
303
+ }
304
+ ),
305
+ /* @__PURE__ */ d(
306
+ "input",
307
+ {
308
+ id: N,
309
+ name: N,
310
+ type: "hidden",
311
+ "data-origin": N,
312
+ ref: be,
313
+ required: z,
314
+ defaultValue: c.value || E || void 0
315
+ }
316
+ ),
317
+ /* @__PURE__ */ d(We, { preserveTabOrder: !0, children: f ? /* @__PURE__ */ d(je, { modal: !0, guards: !0, returnFocus: !1, context: R, initialFocus: -1, visuallyHiddenDismiss: !0, children: /* @__PURE__ */ Y(
318
+ J.div,
319
+ {
320
+ ...ke({
321
+ ref: y.setFloating,
322
+ style: { ...Ee.styles, left: xe, top: Ie ?? 0, position: Le, height: "auto" }
323
+ }),
324
+ initial: !1,
325
+ "data-floating": "true",
326
+ animate: { height: K ? "auto" : le },
327
+ onAnimationComplete: () => {
328
+ if (!f) {
329
+ S(0);
330
+ return;
331
+ }
332
+ const r = (y.floating.current?.querySelector("li")?.getBoundingClientRect().height ?? $) * m.length;
333
+ se(() => S(Math.min(320, r + 2)));
334
+ },
335
+ className: ie(
336
+ "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",
337
+ ae ? "origin-[bottom_center]" : "origin-[top_center]"
338
+ ),
339
+ children: [
340
+ K ? /* @__PURE__ */ d("div", { className: "w-full border-b border-tooltip-border", children: /* @__PURE__ */ d("span", { className: "flex w-full justify-between p-2 text-left text-disabled", children: b || _.autocompleteEmpty }) }) : null,
341
+ /* @__PURE__ */ d(
342
+ qe,
343
+ {
344
+ overscan: 40,
345
+ ref: O,
346
+ hidden: K,
347
+ data: m,
348
+ style: { height: le },
349
+ defaultItemHeight: $,
350
+ components: bt,
351
+ scrollerRef: (e) => {
352
+ pe.current = e, ye.current = e;
353
+ },
354
+ className: "border-floating max-h-full overscroll-contain rounded-lg bg-floating-background p-0 text-foreground",
355
+ itemContent: (e, r) => {
356
+ const h = r.Render ?? ft, k = E === r.value || E === r.label, Me = g === e, Te = r.label ?? r.value;
357
+ return /* @__PURE__ */ d(
358
+ "button",
359
+ {
360
+ "data-value": r.value,
361
+ ...Ae({
362
+ ref: (Ye) => {
363
+ te.current[e] = Ye;
364
+ },
365
+ role: "option",
366
+ type: "button",
367
+ "aria-checked": k,
368
+ "aria-current": k,
369
+ "aria-selected": k,
370
+ "aria-disabled": r.disabled,
371
+ onClick: () => W(r, e),
372
+ className: `cursor-pointer min-h-10 hover:bg-floating-hover w-full p-2 text-left ${k ? "bg-primary-hover text-primary-foreground" : ""} ${Me ? "bg-floating-hover text-floating-foreground" : ""}`
373
+ }),
374
+ children: /* @__PURE__ */ d(h, { ...r, ref: void 0, label: r.label, value: r.value, children: Te })
375
+ }
376
+ );
377
+ }
378
+ }
379
+ )
380
+ ]
381
+ }
382
+ ) }) : null })
383
+ ]
384
+ }
385
+ );
386
+ }
387
+ );
388
+ export {
389
+ Ft as A,
390
+ dt as f,
391
+ it as u
392
+ };
393
+ //# sourceMappingURL=autocomplete-DcTNOwyg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete-DcTNOwyg.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 el = ref.current;\n if (!el) return;\n const controller = new AbortController();\n const onWheel = (e: WheelEvent) => {\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 atLimit = el.scrollHeight <= scrollable;\n if (atLimit) e.preventDefault();\n };\n el.addEventListener(\"wheel\", onWheel, { signal: controller.signal, passive: false });\n return () => controller.abort();\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 if (text === search) return 1;\n const firstChar = search[0];\n if (!firstChar) return null;\n\n const matchedIndexes: number[][] = [];\n let cursor = 0;\n while (cursor < text.length) {\n const startIdx = text.indexOf(firstChar, cursor);\n if (startIdx === -1) break;\n let pos = startIdx + 1;\n const indexes = [startIdx];\n let matched = true;\n for (let i = 1; i < search.length; i++) {\n const foundAt = text.indexOf(search[i]!, pos);\n if (foundAt === -1) {\n matched = false;\n break;\n }\n indexes.push(foundAt);\n pos = foundAt + 1;\n }\n if (matched) matchedIndexes.push(indexes);\n cursor = startIdx + 1;\n }\n\n if (matchedIndexes.length === 0) return null;\n const bestMatch = matchedIndexes.sort((a, b) => {\n if (a.length === 1) return a[0]! - b[0]!;\n return a[a.length - 1]! - a[0]! - (b[b.length - 1]! - b[0]!);\n })[0]!;\n if (bestMatch.length > 1) return 2 + (bestMatch[bestMatch.length - 1]! - bestMatch[0]!);\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: unknown): unknown => {\n const keys = path.split(regexp).filter(Boolean);\n let res: unknown = obj;\n for (const key of keys) {\n if (res === null || res === undefined) {\n return res;\n }\n res = (res as Record<string, unknown>)[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 as unknown as V;\n return travel(path as string, regexPaths.extend, obj) as unknown as V;\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 const target = Is.array(x.value)\n ? x.value.map((v) => diacritics(`${v}`.toLocaleLowerCase()).trim())\n : diacritics(`${x.value}`.toLocaleLowerCase()).trim();\n return { ...x, target };\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 search = diacritics(`${searchValue}`.toLocaleLowerCase()).trim();\n if (compare(search, filter.target, filter.score, filter.match)) {\n return void map.set(idVal, item);\n }\n if (Is.function(filter.ifNotMatch)) {\n const result = filter.ifNotMatch(filter.target as string, 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, Ref, useEffect, useMemo, useRef, useState } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { type ContextProp, type ItemProps, type ListProps, 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, synthesizeChangeEvent } 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 List = forwardRef<HTMLUListElement, ListProps & ContextProp<unknown>>(function VirtualList({ context, ...props }, ref) {\n return (\n <motion.ul {...props} ref={ref} className=\"max-h-96 w-full overscroll-contain rounded-lg\">\n <AnimatePresence>{props.children}</AnimatePresence>\n </motion.ul>\n );\n});\n\nconst Item = forwardRef<HTMLLIElement, ItemProps<AutocompleteItemProps> & ContextProp<unknown>>(function VirtualItem(\n { item, context, ...props },\n ref\n) {\n return <motion.li {...props} ref={ref} className=\"first:rounded-t-lg last:rounded-t-lg\" />;\n});\n\nconst components = { List, Item };\n\nconst EMPTY_NODES: Array<HTMLElement | null> = [];\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 [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>>(EMPTY_NODES);\n const [, tick] = useState(0);\n const removeScrollRef = useRemoveScroll(open, \"block-only\");\n\n const innerOptions = useMemo<AutocompleteItemProps[]>(\n () => (dynamicOption && shadow !== \"\" ? [{ value: shadow, label: shadow, \"data-dynamic\": \"true\" }, ...options] : options),\n [dynamicOption, shadow, options]\n );\n\n const openDropdown = () => flushSync(() => setOpen(true));\n\n const list = useMemo(\n () =>\n shadow\n ? fzf(innerOptions, \"value\", [\n { key: \"value\", value: shadow },\n { key: \"label\", value: shadow },\n ])\n : innerOptions,\n [innerOptions, shadow]\n );\n\n const [h, setH] = useState(() => Math.min(320, MIN_SIZE * options.length));\n\n const setClosed = () => {\n setOpen(false);\n setH(0);\n };\n\n const displayList = useMemo(() => list.filter((x) => x.hidden !== true), [list]);\n\n const pattern = useMemo(\n () =>\n dynamicOption ? undefined : `^(${options.map((x) => `${safeRegex(x.value)}${x.label ? \"|\" + safeRegex(x.label) : \"\"}`).join(\"|\")})$`,\n [dynamicOption, options]\n );\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 DEFAULT_SIZE = getRemainingSize(refs.reference!.current as HTMLElement, window.innerHeight);\n const mw = `${fieldset.current?.getBoundingClientRect().width || DEFAULT_SIZE}px`;\n Object.assign(args.elements.floating.style, { width: mw, maxWidth: mw });\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 const input = refs.reference.current as HTMLInputElement;\n if (!input) return;\n return initializeInputDataset(input);\n }, []);\n\n useEffect(() => {\n if (!open) return;\n const id = requestAnimationFrame(() => tick((n) => n + 1));\n return () => cancelAnimationFrame(id);\n }, [open]);\n\n useEffect(() => {\n if (!open) {\n setH(0);\n return;\n }\n const id = setTimeout(() => setH(Math.min(320, displayList.length * MIN_SIZE)), 100);\n return () => clearTimeout(id);\n }, [open, displayList.length]);\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(synthesizeChangeEvent(input));\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}\n left={left}\n error={error}\n id={shadowId}\n form={props.form}\n loading={loading}\n name={props.name}\n hideLeft={hideLeft}\n required={required}\n title={props.title}\n container={container}\n rightLabel={rightLabel}\n interactive={interactive}\n optionalText={optionalText}\n componentName=\"autocomplete\"\n labelClassName={labelClassName}\n placeholder={props.placeholder}\n ref={fieldset as unknown as Ref<HTMLInputElement>}\n feedback={open && isTopPlacement ? props.title : feedback}\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\n type=\"button\"\n onClick={onClose}\n aria-label={translation.inputCloseValue}\n className=\"p-2 transition-colors link:text-danger md:p-1\"\n >\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 React.HTMLProps<HTMLInputElement>)}\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: refs.setFloating,\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 onAnimationComplete={() => {\n if (!open) {\n setH(0);\n return;\n }\n const li = refs.floating.current?.querySelector(\"li\");\n const sum = (li?.getBoundingClientRect().height ?? MIN_SIZE) * displayList.length;\n flushSync(() => setH(Math.min(320, sum + 2)));\n }}\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 >\n {isEmpty ? (\n <div 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 never}\n scrollerRef={(e) => {\n scroller.current = e as HTMLElement;\n removeScrollRef.current = e as HTMLElement;\n }}\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 ?? 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) => {\n listRef.current[i] = node;\n },\n role: \"option\",\n type: \"button\",\n \"aria-checked\": active,\n \"aria-current\": active,\n \"aria-selected\": active,\n \"aria-disabled\": 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 {...option} ref={undefined} label={option.label} value={option.value}>\n {children}\n </Label>\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","el","controller","onWheel","rect","realHeight","onlyNumbers","scrollable","Is","fuzzyMatch","text","search","firstChar","matchedIndexes","cursor","startIdx","pos","indexes","matched","i","foundAt","bestMatch","a","b","travel","path","regexp","obj","keys","res","key","regexPaths","result","str","diacritics","input","strCompare","value","_","match","compare","defaultScore","x","fzf","items","id","map","remap","target","v","item","idVal","filter","searchValue","Frag","props","jsx","Fragment","transitionStyles","List","forwardRef","context","motion","AnimatePresence","Item","components","EMPTY_NODES","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","open","setOpen","shadow","setShadow","setValue","label","setLabel","index","setIndex","listRef","tick","removeScrollRef","innerOptions","useMemo","openDropdown","flushSync","list","h","setH","setClosed","displayList","pattern","safeRegex","y","strategy","refs","placement","useFloating","autoUpdate","offset","autoPlacement","size","args","DEFAULT_SIZE","getRemainingSize","mw","transitions","useTransitionStyles","getReferenceProps","getFloatingProps","getItemProps","useInteractions","useRole","useDismiss","useListNavigation","initializeInputDataset","n","onSelect","opt","event","synthesizeChangeEvent","onChange","onCaretDownClick","onFocus","onClose","dispatchInput","shadowId","isEmpty","isTopPlacement","jsxs","InputField","CaretDownIcon","next","css","FloatingPortal","FloatingFocusManager","sum","Virtuoso","option","Label","active","selected","children","node"],"mappings":";;;;;;;;;;;AAGA,MAAMA,KAAY,MAAM,OAAO,WAAW,0BAA0B,GAEvDC,KAAoB,MAAe;AAC5C,QAAMC,IAAMC,EAAOC,EAAA,IAAU,OAAOJ,IAAW,GACzC,CAACK,GAAUC,CAAW,IAAIC,EAAkBH,MAAU,KAASF,EAAI,SAAS,WAAW,EAAM;AACnG,SAAAM,EAAU,MAAM;AAEZ,KADeN,EAAI,YAAY,OAAOF,GAAA,IAAcE,EAAI,SACjD,iBAAiB,UAAU,CAACO,MAAMH,EAAYG,EAAE,OAAO,CAAC;AAAA,EAAA,GAChE,EAAE,GAEEJ;AACX,GCNaK,KAAkB,CAAwBC,GAAiBC,IAAiC,sBAAsB;AAC3H,QAAMV,IAAMC,EAAiB,IAAI,GAC3BU,IAAiBZ,GAAA,GACjBa,IAAOX,EAAOC,EAAA,IAAU,KAAK,SAAS,gBAAgB,MAAM,SAAS;AAE3E,SAAAI,EAAU,MAAM;AACZ,QAAI,EAAAN,EAAI,YAAY,QAAQ,CAACS,MACzBC,MAAgB,gBAChBA,MAAgB;AAChB,UAAID,GAAQ;AAGR,YAFAG,EAAK,UAAU,SAAS,gBAAgB,MAAM,WAC9C,SAAS,gBAAgB,MAAM,YAAY,UACvCD,KAAkBE,KAAY;AAClC,iBAAS,gBAAgB,MAAM,UAAUC,GAAkB,SAAS,eAAe,IAAI,eAAe;AAAA,MAAA;AAEtG,iBAAS,gBAAgB,MAAM,UAAU,IACzC,SAAS,gBAAgB,MAAM,YAAYF,EAAK;AAAA,EAExD,GACD,CAACH,GAAQE,GAAgBD,CAAW,CAAC,GAExCJ,EAAU,MAAM;AACZ,QAAI,CAACG,EAAQ;AACb,UAAMM,IAAKf,EAAI;AACf,QAAI,CAACe,EAAI;AACT,UAAMC,IAAa,IAAI,gBAAA,GACjBC,IAAU,CAACV,MAAkB;AAC/B,YAAMW,IAAOH,EAAG,sBAAA,GACVI,IAAaJ,EAAG,MAAM,SAAS,OAAOK,GAAYL,EAAG,MAAM,MAAM,CAAC,IAAI,MACtEM,IAAaC,EAAG,OAAOH,CAAU,IAAIA,IAAaD,EAAK;AAE7D,MADgBH,EAAG,gBAAgBM,OACpB,eAAA;AAAA,IAAe;AAElC,WAAAN,EAAG,iBAAiB,SAASE,GAAS,EAAE,QAAQD,EAAW,QAAQ,SAAS,IAAO,GAC5E,MAAMA,EAAW,MAAA;AAAA,EAAM,GAC/B,CAACP,CAAM,CAAC,GAEJT;AACX,GC3CauB,KAAa,CAACC,GAAcC,MAAkC;AAGvE,MAFAD,IAAO,OAAOA,CAAI,EAAE,kBAAA,GACpBC,IAAS,OAAOA,CAAM,EAAE,kBAAA,GACpBD,MAASC,EAAQ,QAAO;AAC5B,QAAMC,IAAYD,EAAO,CAAC;AAC1B,MAAI,CAACC,EAAW,QAAO;AAEvB,QAAMC,IAA6B,CAAA;AACnC,MAAIC,IAAS;AACb,SAAOA,IAASJ,EAAK,UAAQ;AACzB,UAAMK,IAAWL,EAAK,QAAQE,GAAWE,CAAM;AAC/C,QAAIC,MAAa,GAAI;AACrB,QAAIC,IAAMD,IAAW;AACrB,UAAME,IAAU,CAACF,CAAQ;AACzB,QAAIG,IAAU;AACd,aAASC,IAAI,GAAGA,IAAIR,EAAO,QAAQQ,KAAK;AACpC,YAAMC,IAAUV,EAAK,QAAQC,EAAOQ,CAAC,GAAIH,CAAG;AAC5C,UAAII,MAAY,IAAI;AAChB,QAAAF,IAAU;AACV;AAAA,MAAA;AAEJ,MAAAD,EAAQ,KAAKG,CAAO,GACpBJ,IAAMI,IAAU;AAAA,IAAA;AAEpB,IAAIF,KAASL,EAAe,KAAKI,CAAO,GACxCH,IAASC,IAAW;AAAA,EAAA;AAGxB,MAAIF,EAAe,WAAW,EAAG,QAAO;AACxC,QAAMQ,IAAYR,EAAe,KAAK,CAACS,GAAGC,MAClCD,EAAE,WAAW,IAAUA,EAAE,CAAC,IAAKC,EAAE,CAAC,IAC/BD,EAAEA,EAAE,SAAS,CAAC,IAAKA,EAAE,CAAC,KAAMC,EAAEA,EAAE,SAAS,CAAC,IAAKA,EAAE,CAAC,EAC5D,EAAE,CAAC;AACJ,SAAIF,EAAU,SAAS,IAAU,KAAKA,EAAUA,EAAU,SAAS,CAAC,IAAKA,EAAU,CAAC,KAC7E,IAAIA,EAAU,CAAC;AAC1B,GAcMG,KAAS,CAACC,GAAcC,GAAgBC,MAA0B;AACpE,QAAMC,IAAOH,EAAK,MAAMC,CAAM,EAAE,OAAO,OAAO;AAC9C,MAAIG,IAAeF;AACnB,aAAWG,KAAOF,GAAM;AACpB,QAAIC,KAAQ;AACR,aAAOA;AAEX,IAAAA,IAAOA,EAAgCC,CAAG;AAAA,EAAA;AAE9C,SAAOD;AACX,GAEME,KAAa,EAAE,OAAO,YAAY,QAAQ,YAAA,GAE1CN,KAAO,CAAmBE,GAAQF,MAAqB;AACzD,QAAMO,IAASR,GAAOC,GAAgBM,GAAW,OAAOJ,CAAG;AAC3D,SAAIK,MAAW,UAAaA,MAAWL,IAAYK,IAC5CR,GAAOC,GAAgBM,GAAW,QAAQJ,CAAG;AACxD,GAEMrB,KAAc,CAAC2B,MAAgBA,EAAI,QAAQ,WAAW,EAAE,GAExDC,IAAa,CAACC,MAA0BA,EAAM,UAAU,KAAK,EAAE,QAAQ,oBAAoB,EAAE,GAE7FC,KAAa,CAAC1B,GAAc2B,GAAeC,GAAYC,IAAe,YACpEA,MAAU,aACH7B,EAAK,SAAS2B,CAAK,IAE1BE,MAAU,UACH7B,MAAS2B,IAEhBE,MAAU,qBACHjC,GAAYI,CAAI,EAAE,SAASJ,GAAY+B,CAAK,CAAC,IAEpDE,MAAU,gBACH7B,EAAK,WAAW2B,CAAK,IAE5BE,MAAU,cACH7B,EAAK,SAAS2B,CAAK,IAE1BE,MAAU,UACA9B,GAAWC,GAAM2B,CAAK,MACnB,OAEV,IAGLG,KAAU,CAAC7B,GAAgB0B,GAA0BI,GAAuBF,IAAe,YAC7F,MAAM,QAAQF,CAAK,IAAIA,EAAM,KAAK,CAACK,MAAMN,GAAWzB,GAAQ+B,GAAGD,GAAcF,CAAK,CAAC,IAAIH,GAAWzB,GAAQ0B,GAAOI,GAAcF,CAAK,GAE3HI,KAAM,CAAoCC,GAAYC,GAAQjB,MAA0B;AACjG,MAAIA,EAAK,WAAW;AAChB,WAAOgB;AAEX,QAAME,wBAAU,IAAA,GACVC,IAAQnB,EAAK,IAAI,CAACc,MAAM;AAC1B,UAAMM,IAASxC,EAAG,MAAMkC,EAAE,KAAK,IACzBA,EAAE,MAAM,IAAI,CAACO,MAAMf,EAAW,GAAGe,CAAC,GAAG,kBAAA,CAAmB,EAAE,KAAA,CAAM,IAChEf,EAAW,GAAGQ,EAAE,KAAK,GAAG,kBAAA,CAAmB,EAAE,KAAA;AACnD,WAAO,EAAE,GAAGA,GAAG,QAAAM,EAAA;AAAA,EAAO,CACzB;AACD,SAAAJ,EAAM,QAAQ,CAACM,MAAS;AACpB,UAAMC,IAAQ1B,GAAYyB,GAAML,CAAE;AAClC,IAAAE,EAAM,QAAQ,CAACK,MAAW;AACtB,YAAMC,IAAc5B,GAAKyB,GAAME,EAAO,GAAG;AACzC,UAAI,CAACC,EAAa;AAClB,YAAM1C,IAASuB,EAAW,GAAGmB,CAAW,GAAG,kBAAA,CAAmB,EAAE,KAAA;AAChE,UAAIb,GAAQ7B,GAAQyC,EAAO,QAAQA,EAAO,OAAOA,EAAO,KAAK;AACzD,eAAO,KAAKN,EAAI,IAAIK,GAAOD,CAAI;AAEnC,MAAI1C,EAAG,SAAS4C,EAAO,UAAU,KACdA,EAAO,WAAWA,EAAO,QAAkBzC,CAAM,KACpDmC,EAAI,IAAIK,GAAOD,CAAI;AAAA,IACnC,CACH;AAAA,EAAA,CACJ,GACM,MAAM,KAAKJ,EAAI,OAAA,CAAQ;AAClC,GCzFMQ,KAAO,CAACC,MAA6B,gBAAAC,EAACC,IAAA,EAAU,YAAM,UAAS,GAE/DC,KAAmB;AAAA,EACrB,UAAU;AAAA,EACV,MAAM,EAAE,WAAW,aAAa,SAAS,EAAA;AAAA,EACzC,OAAO,EAAE,WAAW,aAAa,SAAS,EAAA;AAAA,EAC1C,SAAS,EAAE,WAAW,aAAa,SAAS,IAAA;AAChD,GAEMC,KAAOC,EAA+D,SAAqB,EAAE,SAAAC,GAAS,GAAGN,EAAA,GAASrE,GAAK;AACzH,SACI,gBAAAsE,EAACM,EAAO,IAAP,EAAW,GAAGP,GAAO,KAAArE,GAAU,WAAU,iDACtC,UAAA,gBAAAsE,EAACO,IAAA,EAAiB,UAAAR,EAAM,UAAS,GACrC;AAER,CAAC,GAEKS,KAAOJ,EAAmF,SAC5F,EAAE,MAAAV,GAAM,SAAAW,GAAS,GAAGN,EAAA,GACpBrE,GACF;AACE,SAAO,gBAAAsE,EAACM,EAAO,IAAP,EAAW,GAAGP,GAAO,KAAArE,GAAU,WAAU,wCAAuC;AAC5F,CAAC,GAEK+E,KAAa,EAAE,MAAAN,IAAM,MAAAK,GAAA,GAErBE,KAAyC,CAAA,GAEzCC,IAAW,IAEJC,KAAeR;AAAA,EACxB,CACI;AAAA,IACI,MAAAS;AAAA,IACA,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,UAAAC,IAAW;AAAA,IACX,UAAAC,IAAW;AAAA,IACX,eAAAC,IAAgB;AAAA,IAChB,GAAG5B;AAAA,EAAA,GAEP6B,OACC;AACD,UAAMC,KAAWlG,EAA2B,IAAI,GAC1CmG,KAAWnG,EAA4B,IAAI,GAC3CoG,IAAWpG,EAA8B,IAAI,GAC7CqG,IAAWjC,EAAM,SAASA,EAAM,gBAAgB,IAChDkC,IAAcC,GAAA,GACd,CAACC,GAAMC,CAAO,IAAIrG,EAAS,EAAK,GAChC,CAACsG,GAAQC,CAAS,IAAIvG,EAAS,EAAE,GACjC,CAAC8C,GAAO0D,CAAQ,IAAIxG,EAASiG,CAAQ,GACrC,CAACQ,IAAOC,CAAQ,IAAI1G,EAAS,MAAMkF,EAAQ,KAAK,CAAC/B,MAAMA,EAAE,UAAU8C,CAAQ,GAAG,SAASA,CAAQ,GAC/F,CAACU,GAAOC,CAAQ,IAAI5G,EAAwB,IAAI,GAChD6G,KAAUjH,EAAkC+E,EAAW,GACvD,GAAGmC,EAAI,IAAI9G,EAAS,CAAC,GACrB+G,KAAkB5G,GAAgBiG,GAAM,YAAY,GAEpDY,IAAeC;AAAA,MACjB,MAAOrB,KAAiBU,MAAW,KAAK,CAAC,EAAE,OAAOA,GAAQ,OAAOA,GAAQ,gBAAgB,OAAA,GAAU,GAAGpB,CAAO,IAAIA;AAAA,MACjH,CAACU,GAAeU,GAAQpB,CAAO;AAAA,IAAA,GAG7BgC,KAAe,MAAMC,GAAU,MAAMd,EAAQ,EAAI,CAAC,GAElDe,KAAOH;AAAA,MACT,MACIX,IACMlD,GAAI4D,GAAc,SAAS;AAAA,QACvB,EAAE,KAAK,SAAS,OAAOV,EAAA;AAAA,QACvB,EAAE,KAAK,SAAS,OAAOA,EAAA;AAAA,MAAO,CACjC,IACDU;AAAA,MACV,CAACA,GAAcV,CAAM;AAAA,IAAA,GAGnB,CAACe,IAAGC,CAAI,IAAItH,EAAS,MAAM,KAAK,IAAI,KAAK4E,IAAWM,EAAQ,MAAM,CAAC,GAEnEqC,IAAY,MAAM;AACpB,MAAAlB,EAAQ,EAAK,GACbiB,EAAK,CAAC;AAAA,IAAA,GAGJE,IAAcP,EAAQ,MAAMG,GAAK,OAAO,CAACjE,MAAMA,EAAE,WAAW,EAAI,GAAG,CAACiE,EAAI,CAAC,GAEzEK,KAAUR;AAAA,MACZ,MACIrB,IAAgB,SAAY,KAAKV,EAAQ,IAAI,CAAC/B,MAAM,GAAGuE,GAAUvE,EAAE,KAAK,CAAC,GAAGA,EAAE,QAAQ,MAAMuE,GAAUvE,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,KAAK,GAAG,CAAC;AAAA,MACpI,CAACyC,GAAeV,CAAO;AAAA,IAAA,GAGrB,EAAE,GAAA/B,IAAG,GAAAwE,IAAG,UAAAC,IAAU,MAAAC,GAAM,SAAAvD,GAAS,WAAAwD,GAAA,IAAcC,GAA8B;AAAA,MAC/E,MAAA3B;AAAA,MACA,WAAW;AAAA,MACX,cAAcC;AAAA,MACd,WAAW;AAAA,MACX,sBAAsB2B;AAAA,MACtB,YAAY;AAAA,QACRC,GAAO,CAAC;AAAA,QACRC,GAAc,EAAE,mBAAmB,CAAC,aAAa,cAAc,GAAG,WAAW,SAAS;AAAA,QACtFC,GAAK;AAAA,UACD,SAAS;AAAA,UACT,gBAAgB;AAAA,UAChB,MAAMC,GAAM;AACR,kBAAMC,IAAeC,GAAiBT,EAAK,UAAW,SAAwB,OAAO,WAAW,GAC1FU,IAAK,GAAGxC,GAAS,SAAS,wBAAwB,SAASsC,CAAY;AAC7E,mBAAO,OAAOD,EAAK,SAAS,SAAS,OAAO,EAAE,OAAOG,GAAI,UAAUA,EAAA,CAAI;AAAA,UAAA;AAAA,QAC3E,CACH;AAAA,MAAA;AAAA,IACL,CACH,GACKC,KAAcC,GAAoBnE,GAASH,EAAgB,GAC3D,EAAE,mBAAAuE,IAAmB,kBAAAC,IAAkB,cAAAC,GAAA,IAAiBC,GAAgB;AAAA,MAC1EC,GAAQxE,GAAS,EAAE,MAAM,WAAW;AAAA,MACpCyE,GAAWzE,CAAO;AAAA,MAClB0E,GAAkB1E,GAAS;AAAA,QACvB,MAAM;AAAA,QACN,SAAAuC;AAAA,QACA,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aAAa;AAAA,QACb,aAAaF;AAAA,QACb,eAAeA;AAAA,QACf,iBAAiB;AAAA,QACjB,oBAAoB;AAAA,QACpB,oBAAoB;AAAA,MAAA,CACvB;AAAA,IAAA,CACJ;AAED,IAAA1G,EAAU,MAAM;AACZ,UAAI+D,EAAM,OAAO;AACb,cAAML,IAAOuB,EAAQ,KAAK,CAAC/B,MAAMA,EAAE,UAAUa,EAAM,KAAK;AACxD,QAAIL,MACA+C,EAAS/C,EAAK,SAASA,EAAK,KAAK,GACjC6C,EAASxC,EAAM,KAAK;AAAA,MACxB;AAAA,IACJ,GACD,CAACA,EAAM,OAAOkB,EAAQ,MAAM,CAAC,GAEhCjF,EAAU,MAAM;AACZ,YAAM2C,IAAQiF,EAAK,UAAU;AAC7B,UAAKjF;AACL,eAAOqG,GAAuBrG,CAAK;AAAA,IAAA,GACpC,EAAE,GAEL3C,EAAU,MAAM;AACZ,UAAI,CAACmG,EAAM;AACX,YAAM9C,IAAK,sBAAsB,MAAMwD,GAAK,CAACoC,MAAMA,IAAI,CAAC,CAAC;AACzD,aAAO,MAAM,qBAAqB5F,CAAE;AAAA,IAAA,GACrC,CAAC8C,CAAI,CAAC,GAETnG,EAAU,MAAM;AACZ,UAAI,CAACmG,GAAM;AACP,QAAAkB,EAAK,CAAC;AACN;AAAA,MAAA;AAEJ,YAAMhE,IAAK,WAAW,MAAMgE,EAAK,KAAK,IAAI,KAAKE,EAAY,SAAS5C,CAAQ,CAAC,GAAG,GAAG;AACnF,aAAO,MAAM,aAAatB,CAAE;AAAA,IAAA,GAC7B,CAAC8C,GAAMoB,EAAY,MAAM,CAAC;AAE7B,UAAM2B,IAAW,CAACC,GAA4BxH,MAAc;AACxD,MAAA4E,EAAS4C,EAAI,KAAK;AAClB,YAAMxG,IAAQiF,EAAK,UAAU;AAC7B,UAAI,CAACjF,EAAO;AACZ,MAAAA,GAAO,aAAa,cAAcwG,EAAI,KAAK,GAC3CxG,EAAM,QAAQwG,EAAI;AAClB,YAAMC,IAAQ,IAAI,MAAM,UAAU,EAAE,SAAS,IAAO,YAAY,IAAM;AACtE,MAAAzG,EAAM,cAAcyG,CAAK,GACrBrF,EAAM,YAAUA,EAAM,SAASsF,GAAsB1G,CAAK,CAAC,GAC/D8D,EAAS0C,EAAI,SAAS,EAAE,GACxB7B,EAAA,GACAhB,EAAU,EAAE,GACZK,EAAShF,CAAC;AAAA,IAAA,GAGR2H,KAAW,CAACF,MAA+C;AAC7D,YAAMvG,IAAQuG,EAAM,OAAO;AAE3B,aADA9C,EAAUzD,CAAK,GACX,CAACsD,KAAQtD,MAAU,KAAWuD,EAAQ,EAAI,KAC9CgD,EAAM,OAAO,OAAOrF,EAAM,QAAQ,IAC3BlB,IAAQuD,EAAQ,EAAI,IAAIrC,EAAM,WAAWqF,CAAK;AAAA,IAAA,GAGnDG,KAAmB,MAAM;AAC3B,MAAAtC,GAAA,GACAX,EAAU,EAAE,GACXsB,EAAK,UAAU,SAA8B,MAAA;AAAA,IAAM,GAGlD4B,KAAU,MAAM;AAClB,MAAA7C,EAAS,CAACrG,MAAUA,MAAS,OAAO,IAAIA,CAAK,GAC7C2G,GAAA,GACAX,EAAU,EAAE;AAAA,IAAA,GAGVmD,KAAU,MAAM;AACjB,MAAA7B,EAAK,UAAU,SAA8B,aAAa,cAAc,EAAE,GAC3EtB,EAAU,EAAE,GACZC,EAAS,EAAE,GACXE,EAAS,EAAE,GACXiD,GAAc9B,EAAK,UAAU,OAA2B,GACxDN,EAAA;AAAA,IAAU,GAGRjE,IAAKU,EAAM,MAAMA,EAAM,MAEvB4F,IAAW,GAAGtG,CAAE,WAEhBuG,IAAUrC,EAAY,WAAW,GAEjCsC,KAAiBhC,OAAc,SAASA,OAAc;AAE5D,WACI,gBAAAiC;AAAA,MAACC;AAAA,MAAA;AAAA,QACI,GAAGhG;AAAA,QACJ,MAAAc;AAAA,QACA,OAAAC;AAAA,QACA,IAAI6E;AAAA,QACJ,MAAM5F,EAAM;AAAA,QACZ,SAAAiB;AAAA,QACA,MAAMjB,EAAM;AAAA,QACZ,UAAA0B;AAAA,QACA,UAAAC;AAAA,QACA,OAAO3B,EAAM;AAAA,QACb,WAAAmB;AAAA,QACA,YAAAC;AAAA,QACA,aAAAC;AAAA,QACA,cAAAE;AAAA,QACA,eAAc;AAAA,QACd,gBAAAC;AAAA,QACA,aAAaxB,EAAM;AAAA,QACnB,KAAK+B;AAAA,QACL,UAAUK,KAAQ0D,KAAiB9F,EAAM,QAAQyB;AAAA,QACjD,OACI,gBAAAsE,EAAC,QAAA,EAAK,WAAU,6BACX,UAAA;AAAA,UAAA/E;AAAA,4BACA,UAAA,EAAO,MAAK,UAAS,WAAU,kDAAiD,SAASwE,IACtF,UAAA;AAAA,YAAA,gBAAAvF,EAACgG,IAAA,EAAc,MAAM,GAAA,CAAI;AAAA,YACzB,gBAAAhG,EAAC,QAAA,EAAK,WAAU,WAAW,YAAY,eAAA,CAAe;AAAA,UAAA,GAC1D;AAAA,UACCnB,IACG,gBAAAmB;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,MAAK;AAAA,cACL,SAASyF;AAAA,cACT,cAAYxD,EAAY;AAAA,cACxB,WAAU;AAAA,cAEV,UAAA,gBAAAjC,EAAC,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC9D,UAAA,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACG,GAAE;AAAA,kBACF,MAAK;AAAA,kBACL,UAAS;AAAA,kBACT,UAAS;AAAA,gBAAA;AAAA,cAAA,EACb,CACJ;AAAA,YAAA;AAAA,UAAA,IAEJ;AAAA,QAAA,GACR;AAAA,QAGJ,UAAA;AAAA,UAAA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,eAAY;AAAA,cACX,GAAGyE,GAAkB;AAAA,gBAClB,GAAG1E;AAAA,gBACH,SAAAyF;AAAA,gBACA,SAAAhC;AAAA,gBACA,UAAA8B;AAAA,gBACA,IAAIK;AAAA,gBACJ,MAAMA;AAAA,gBACN,KAAK/B,EAAK;AAAA,gBACV,SAAS,CAAC,MAA0C,EAAE,cAAc,MAAA;AAAA,gBACpE,UAAUwB,GAA8C;AACpD,sBAAIA,EAAM,QAAQ;AACd,2BAAAA,EAAM,cAAc,KAAA,GACb9B,EAAA;AAEX,sBAAKnB,GACL;AAAA,wBAAIiD,EAAM,QAAQ,aAAa;AAC3B,0BAAIa,IAAOjJ,EAAG,OAAO0F,CAAK,IAAIA,IAAQ,IAAI;AAC1C,6BAAIuD,IAAO1C,EAAY,SAAS,MAAG0C,IAAO,IAC1ClE,EAAS,SAAS,eAAe,EAAE,OAAOkE,GAAM,GACzCtD,EAASsD,CAAI;AAAA,oBAAA;AAExB,wBAAIb,EAAM,QAAQ,WAAW;AACzB,0BAAIa,IAAOjJ,EAAG,OAAO0F,CAAK,IAAIA,IAAS,IAAIa,EAAY,SAAS;AAChE,6BAAI0C,IAAO,MAAGA,IAAO1C,EAAY,SAAS,IAC1CxB,EAAS,SAAS,eAAe,EAAE,OAAOkE,GAAM,GACzCtD,EAASsD,CAAI;AAAA,oBAAA;AAExB,wBAAIb,EAAM,QAAQ,SAAS;AACvB,0BAAI1C,MAAU,QAAQa,EAAYb,CAAK;AACnC,+BAAA0C,EAAM,eAAA,GACCF,EAAS3B,EAAYb,CAAK,GAAGA,CAAK;AAE7C,0BAAIa,EAAY,WAAW;AACvB,+BAAA6B,EAAM,eAAA,GACCF,EAAS3B,EAAY,CAAC,GAAG,CAAC;AAAA,oBACrC;AAAA;AAAA,gBACJ;AAAA,cACJ,CACkC;AAAA,cACtC,cAAY1E;AAAA,cACZ,cAAY,CAAC,CAACiC;AAAA,cACd,aAAWzB;AAAA,cACX,eAAaA;AAAA,cACb,UAAAqC;AAAA,cACA,OAAOS,IAAOE,IAASpB,EAAQ,WAAW,IAAI,KAAKuB,MAAS3D;AAAA,cAC5D,qBAAkB;AAAA,cAClB,cAAa;AAAA,cACb,WAAWqH;AAAA,gBACP;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACAnG,EAAM;AAAA,cAAA;AAAA,YACV;AAAA,UAAA;AAAA,UAEJ,gBAAAC;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,IAAAX;AAAA,cACA,MAAMA;AAAA,cACN,MAAK;AAAA,cACL,eAAaA;AAAA,cACb,KAAKuC;AAAA,cACL,UAAAF;AAAA,cACA,cAAc3B,EAAM,SAASlB,KAAS;AAAA,YAAA;AAAA,UAAA;AAAA,4BAEzCsH,IAAA,EAAe,kBAAgB,IAC3B,UAAAhE,sBACIiE,IAAA,EAAqB,OAAK,IAAC,QAAM,IAAC,aAAa,IAAO,SAAA/F,GAAkB,cAAc,IAAI,uBAAqB,IAC5G,UAAA,gBAAAyF;AAAA,YAACxF,EAAO;AAAA,YAAP;AAAA,cACI,GAAGoE,GAAiB;AAAA,gBACjB,KAAKd,EAAK;AAAA,gBACV,OAAO,EAAE,GAAGW,GAAY,QAAQ,MAAMrF,IAAG,KAAKwE,MAAK,GAAG,UAAUC,IAAU,QAAQ,OAAA;AAAA,cAAO,CAC5F;AAAA,cACD,SAAS;AAAA,cACT,iBAAc;AAAA,cACd,SAAS,EAAE,QAAQiC,IAAU,SAASxC,GAAA;AAAA,cACtC,qBAAqB,MAAM;AACvB,oBAAI,CAACjB,GAAM;AACP,kBAAAkB,EAAK,CAAC;AACN;AAAA,gBAAA;AAGJ,sBAAMgD,KADKzC,EAAK,SAAS,SAAS,cAAc,IAAI,GACnC,sBAAA,EAAwB,UAAUjD,KAAY4C,EAAY;AAC3E,gBAAAL,GAAU,MAAMG,EAAK,KAAK,IAAI,KAAKgD,IAAM,CAAC,CAAC,CAAC;AAAA,cAAA;AAAA,cAEhD,WAAWH;AAAA,gBACP;AAAA,gBACAL,KAAiB,2BAA2B;AAAA,cAAA;AAAA,cAG/C,UAAA;AAAA,gBAAAD,IACG,gBAAA5F,EAAC,OAAA,EAAI,WAAU,yCACX,UAAA,gBAAAA,EAAC,QAAA,EAAK,WAAU,2DACX,UAAAqB,KAAgBY,EAAY,kBAAA,CACjC,EAAA,CACJ,IACA;AAAA,gBACJ,gBAAAjC;AAAA,kBAACsG;AAAAA,kBAAA;AAAA,oBACG,UAAU;AAAA,oBACV,KAAKvE;AAAA,oBACL,QAAQ6D;AAAA,oBACR,MAAMrC;AAAA,oBACN,OAAO,EAAE,QAAQH,GAAA;AAAA,oBACjB,mBAAmBzC;AAAA,oBACnB,YAAAF;AAAA,oBACA,aAAa,CAAC,MAAM;AAChB,sBAAAoB,GAAS,UAAU,GACnBiB,GAAgB,UAAU;AAAA,oBAAA;AAAA,oBAE9B,WAAU;AAAA,oBACV,aAAa,CAACnF,GAAG4I,MAAW;AACxB,4BAAMC,IAAQD,EAAO,UAAUzG,IACzB2G,IAAS5H,MAAU0H,EAAO,SAAS1H,MAAU0H,EAAO,OACpDG,KAAWhE,MAAU/E,GACrBgJ,KAAWJ,EAAO,SAASA,EAAO;AACxC,6BACI,gBAAAvG;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACG,cAAYuG,EAAO;AAAA,0BAClB,GAAG5B,GAAa;AAAA,4BACb,KAAK,CAACiC,OAAS;AACX,8BAAAhE,GAAQ,QAAQjF,CAAC,IAAIiJ;AAAA,4BAAA;AAAA,4BAEzB,MAAM;AAAA,4BACN,MAAM;AAAA,4BACN,gBAAgBH;AAAA,4BAChB,gBAAgBA;AAAA,4BAChB,iBAAiBA;AAAA,4BACjB,iBAAiBF,EAAO;AAAA,4BACxB,SAAS,MAAMrB,EAASqB,GAAQ5I,CAAC;AAAA,4BACjC,WAAW,wEAAwE8I,IAAS,6CAA6C,EAAE,IAAIC,KAAW,+CAA+C,EAAE;AAAA,0BAAA,CAC9M;AAAA,0BAED,UAAA,gBAAA1G,EAACwG,GAAA,EAAO,GAAGD,GAAQ,KAAK,QAAW,OAAOA,EAAO,OAAO,OAAOA,EAAO,OACjE,UAAAI,GAAA,CACL;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBACJ;AAAA,kBAER;AAAA,gBAAA;AAAA,cACJ;AAAA,YAAA;AAAA,UAAA,EACJ,CACJ,IACA,KAAA,CACR;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACJ;AAGZ;"}