@thewrong/ui 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (589) hide show
  1. package/README.md +27 -6
  2. package/dist/components/_shared/form-size-tokens.cjs +1 -0
  3. package/dist/{src/components → components}/_shared/form-size-tokens.d.ts +3 -1
  4. package/dist/components/_shared/form-size-tokens.esm.js +26 -21
  5. package/dist/components/action-toast/ActionToast.cjs +1 -0
  6. package/dist/{src/components → components}/action-toast/ActionToast.d.ts +12 -3
  7. package/dist/components/action-toast/ActionToast.esm.js +133 -123
  8. package/dist/{src/components → components}/action-toast/index.d.ts +2 -2
  9. package/dist/components/animated-height/AnimatedHeight.cjs +1 -0
  10. package/dist/components/animated-height/AnimatedHeight.esm.js +14 -14
  11. package/dist/components/animated-height/index.d.ts +2 -0
  12. package/dist/components/badge/Badge.cjs +1 -0
  13. package/dist/{src/components → components}/badge/Badge.d.ts +1 -1
  14. package/dist/components/badge/Badge.esm.js +19 -23
  15. package/dist/components/badge/index.d.ts +2 -0
  16. package/dist/components/badge/utils.cjs +1 -0
  17. package/dist/{src/components → components}/badge/utils.d.ts +1 -1
  18. package/dist/components/badge/utils.esm.js +15 -15
  19. package/dist/components/button/Button.cjs +1 -0
  20. package/dist/{src/components → components}/button/Button.d.ts +5 -1
  21. package/dist/components/button/Button.esm.js +50 -45
  22. package/dist/{src/components → components}/button/index.d.ts +2 -2
  23. package/dist/{src/components → components}/button/types.d.ts +3 -1
  24. package/dist/components/button/utils.cjs +1 -0
  25. package/dist/{src/components → components}/button/utils.d.ts +3 -3
  26. package/dist/components/button/utils.esm.js +26 -22
  27. package/dist/components/checkbox/Checkbox.cjs +1 -0
  28. package/dist/{src/components → components}/checkbox/Checkbox.d.ts +1 -1
  29. package/dist/components/checkbox/Checkbox.esm.js +36 -35
  30. package/dist/components/checkbox/index.d.ts +2 -0
  31. package/dist/components/checkbox/utils.cjs +1 -0
  32. package/dist/{src/components → components}/checkbox/utils.d.ts +1 -1
  33. package/dist/components/checkbox/utils.esm.js +11 -11
  34. package/dist/components/collapsible/Collapsible.cjs +1 -0
  35. package/dist/components/collapsible/Collapsible.esm.js +12 -11
  36. package/dist/components/collapsible/index.d.ts +2 -0
  37. package/dist/components/copyable-text/CopyableText.cjs +1 -0
  38. package/dist/components/copyable-text/CopyableText.d.ts +22 -0
  39. package/dist/components/copyable-text/CopyableText.esm.js +50 -0
  40. package/dist/components/copyable-text/index.d.ts +2 -0
  41. package/dist/components/date-input/DateInput.cjs +1 -0
  42. package/dist/{src/components → components}/date-input/DateInput.d.ts +1 -0
  43. package/dist/components/date-input/DateInput.esm.js +24 -23
  44. package/dist/components/date-input/index.d.ts +1 -0
  45. package/dist/components/date-picker/PickerSheet.cjs +1 -0
  46. package/dist/components/date-picker/PickerSheet.d.ts +22 -0
  47. package/dist/components/date-picker/PickerSheet.esm.js +77 -0
  48. package/dist/components/date-picker/date-picker.cjs +1 -0
  49. package/dist/{src/components → components}/date-picker/date-picker.d.ts +1 -0
  50. package/dist/components/date-picker/date-picker.esm.js +99 -147
  51. package/dist/components/date-picker/date-range-picker.cjs +1 -0
  52. package/dist/{src/components → components}/date-picker/date-range-picker.d.ts +3 -1
  53. package/dist/components/date-picker/date-range-picker.esm.js +117 -166
  54. package/dist/components/date-picker/index.d.ts +5 -0
  55. package/dist/components/date-picker/month-picker.cjs +1 -0
  56. package/dist/{src/components → components}/date-picker/month-picker.d.ts +1 -0
  57. package/dist/components/date-picker/month-picker.esm.js +68 -112
  58. package/dist/components/drawer/Drawer.cjs +1 -0
  59. package/dist/components/drawer/Drawer.d.ts +45 -0
  60. package/dist/components/drawer/Drawer.esm.js +127 -97
  61. package/dist/components/drawer/index.d.ts +2 -0
  62. package/dist/components/error-boundary/ErrorBoundary.cjs +1 -0
  63. package/dist/components/error-boundary/ErrorBoundary.d.ts +23 -0
  64. package/dist/components/error-boundary/ErrorBoundary.esm.js +46 -0
  65. package/dist/components/error-boundary/chunk-reload.cjs +1 -0
  66. package/dist/components/error-boundary/chunk-reload.d.ts +77 -0
  67. package/dist/components/error-boundary/chunk-reload.esm.js +73 -0
  68. package/dist/components/error-boundary/index.d.ts +4 -0
  69. package/dist/components/error-boundary/types.d.ts +23 -0
  70. package/dist/components/field/Field.cjs +1 -0
  71. package/dist/components/field/Field.d.ts +16 -0
  72. package/dist/components/field/Field.esm.js +34 -0
  73. package/dist/components/field/FieldMessage.cjs +1 -0
  74. package/dist/components/field/FieldMessage.d.ts +19 -0
  75. package/dist/components/field/FieldMessage.esm.js +12 -0
  76. package/dist/components/field/index.d.ts +3 -0
  77. package/dist/components/field/types.d.ts +24 -0
  78. package/dist/components/info-tooltip/InfoTooltip.cjs +1 -0
  79. package/dist/components/info-tooltip/InfoTooltip.esm.js +13 -12
  80. package/dist/components/info-tooltip/index.d.ts +2 -0
  81. package/dist/components/input/DecimalInput.cjs +1 -0
  82. package/dist/components/input/DecimalInput.d.ts +18 -0
  83. package/dist/components/input/DecimalInput.esm.js +40 -0
  84. package/dist/components/input/Input.cjs +1 -0
  85. package/dist/{src/components → components}/input/Input.d.ts +1 -1
  86. package/dist/components/input/Input.esm.js +47 -53
  87. package/dist/components/input/PasswordInput.cjs +1 -0
  88. package/dist/{src/components → components}/input/PasswordInput.d.ts +1 -1
  89. package/dist/components/input/PasswordInput.esm.js +1 -1
  90. package/dist/components/input/decimal-validation.cjs +1 -0
  91. package/dist/components/input/decimal-validation.d.ts +7 -0
  92. package/dist/components/input/decimal-validation.esm.js +66 -0
  93. package/dist/components/input/format.cjs +1 -0
  94. package/dist/{src/components → components}/input/format.d.ts +17 -1
  95. package/dist/components/input/format.esm.js +16 -5
  96. package/dist/components/input/index.d.ts +7 -0
  97. package/dist/{src/components → components}/input/types.d.ts +2 -2
  98. package/dist/components/input/use-input-format.cjs +1 -0
  99. package/dist/components/input/use-input-format.d.ts +43 -0
  100. package/dist/components/input/use-input-format.esm.js +75 -0
  101. package/dist/components/input/utils.cjs +1 -0
  102. package/dist/{src/components → components}/input/utils.d.ts +1 -1
  103. package/dist/components/input/utils.esm.js +19 -18
  104. package/dist/components/loading-spinner/LoadingSpinner.cjs +1 -0
  105. package/dist/components/loading-spinner/LoadingSpinner.esm.js +19 -18
  106. package/dist/components/loading-spinner/index.d.ts +2 -0
  107. package/dist/components/modal/Modal.cjs +1 -0
  108. package/dist/{src/components → components}/modal/Modal.d.ts +28 -2
  109. package/dist/components/modal/Modal.esm.js +148 -118
  110. package/dist/components/modal/ModalFocusTrapContext.cjs +1 -0
  111. package/dist/components/modal/ModalFocusTrapContext.d.ts +18 -0
  112. package/dist/components/modal/ModalFocusTrapContext.esm.js +36 -0
  113. package/dist/components/modal/ModalSubView.cjs +1 -0
  114. package/dist/{src/components → components}/modal/ModalSubView.d.ts +6 -1
  115. package/dist/components/modal/ModalSubView.esm.js +65 -45
  116. package/dist/components/modal/StandardModal.cjs +1 -0
  117. package/dist/{src/components → components}/modal/StandardModal.d.ts +8 -2
  118. package/dist/components/modal/StandardModal.esm.js +18 -15
  119. package/dist/components/modal/index.d.ts +6 -0
  120. package/dist/components/month-range-picker/index.d.ts +2 -0
  121. package/dist/components/month-range-picker/month-range-picker.cjs +1 -0
  122. package/dist/components/month-range-picker/month-range-picker.d.ts +16 -0
  123. package/dist/components/month-range-picker/month-range-picker.esm.js +227 -0
  124. package/dist/components/month-range-picker/month-range-utils.cjs +1 -0
  125. package/dist/components/month-range-picker/month-range-utils.d.ts +9 -0
  126. package/dist/components/month-range-picker/month-range-utils.esm.js +28 -0
  127. package/dist/components/page-title/PageTitle.cjs +1 -0
  128. package/dist/components/page-title/PageTitle.esm.js +11 -10
  129. package/dist/components/page-title/index.d.ts +1 -0
  130. package/dist/components/popover/Popover.cjs +1 -0
  131. package/dist/components/popover/Popover.esm.js +2 -2
  132. package/dist/components/popover/index.d.ts +2 -0
  133. package/dist/components/progress/Progress.cjs +1 -0
  134. package/dist/components/progress/Progress.d.ts +12 -0
  135. package/dist/components/progress/Progress.esm.js +24 -0
  136. package/dist/components/progress/index.d.ts +2 -0
  137. package/dist/components/progress/types.d.ts +13 -0
  138. package/dist/components/radio/Radio.cjs +1 -0
  139. package/dist/components/radio/Radio.d.ts +31 -0
  140. package/dist/components/radio/Radio.esm.js +118 -0
  141. package/dist/components/radio/index.d.ts +2 -0
  142. package/dist/components/radio/types.d.ts +24 -0
  143. package/dist/components/search-box/ExactMatchToggle.cjs +1 -0
  144. package/dist/components/search-box/ExactMatchToggle.esm.js +14 -13
  145. package/dist/components/search-box/SearchBox.cjs +1 -0
  146. package/dist/{src/components → components}/search-box/SearchBox.d.ts +1 -1
  147. package/dist/components/search-box/SearchBox.esm.js +94 -93
  148. package/dist/components/search-box/SearchBoxChips.cjs +1 -0
  149. package/dist/components/search-box/SearchBoxChips.esm.js +3 -3
  150. package/dist/components/search-box/SearchBoxDateRange.cjs +1 -0
  151. package/dist/{src/components → components}/search-box/SearchBoxDateRange.d.ts +1 -1
  152. package/dist/components/search-box/SearchBoxDateRange.esm.js +39 -36
  153. package/dist/components/search-box/SearchBoxDateSingle.cjs +1 -0
  154. package/dist/{src/components → components}/search-box/SearchBoxDateSingle.d.ts +1 -1
  155. package/dist/components/search-box/SearchBoxDateSingle.esm.js +29 -27
  156. package/dist/components/search-box/SearchBoxField.cjs +1 -0
  157. package/dist/{src/components → components}/search-box/SearchBoxField.d.ts +1 -1
  158. package/dist/components/search-box/SearchBoxFloatingInput.cjs +1 -0
  159. package/dist/components/search-box/SearchBoxFloatingInput.esm.js +29 -24
  160. package/dist/components/search-box/SearchBoxFloatingSelect.cjs +1 -0
  161. package/dist/{src/components → components}/search-box/SearchBoxFloatingSelect.d.ts +1 -1
  162. package/dist/components/search-box/SearchBoxFloatingSelect.esm.js +56 -51
  163. package/dist/components/search-box/SearchBoxMonth.cjs +1 -0
  164. package/dist/components/search-box/SearchBoxMonth.esm.js +21 -20
  165. package/dist/components/search-box/SearchBoxMultiSelect.cjs +1 -0
  166. package/dist/{src/components → components}/search-box/SearchBoxMultiSelect.d.ts +2 -2
  167. package/dist/components/search-box/SearchBoxMultiSelect.esm.js +60 -55
  168. package/dist/components/search-box/dateRangePresets.cjs +1 -0
  169. package/dist/{src/components → components}/search-box/dateRangePresets.d.ts +1 -1
  170. package/dist/{src/components → components}/search-box/index.d.ts +5 -5
  171. package/dist/components/search-box/parseSearchValues.cjs +1 -0
  172. package/dist/{src/components → components}/search-box/parseSearchValues.d.ts +2 -2
  173. package/dist/{src/components → components}/search-box/types.d.ts +1 -1
  174. package/dist/components/search-box/useSearchBoxState.cjs +1 -0
  175. package/dist/{src/components → components}/search-box/useSearchBoxState.d.ts +1 -1
  176. package/dist/components/segmented-code-input/SegmentedCodeInput.cjs +1 -0
  177. package/dist/components/segmented-code-input/SegmentedCodeInput.d.ts +49 -0
  178. package/dist/components/segmented-code-input/SegmentedCodeInput.esm.js +87 -0
  179. package/dist/components/segmented-code-input/code-utils.cjs +1 -0
  180. package/dist/components/segmented-code-input/code-utils.d.ts +4 -0
  181. package/dist/components/segmented-code-input/code-utils.esm.js +9 -0
  182. package/dist/components/segmented-code-input/index.d.ts +2 -0
  183. package/dist/components/segmented-control/SegmentedControl.cjs +1 -0
  184. package/dist/components/segmented-control/SegmentedControl.d.ts +27 -0
  185. package/dist/components/segmented-control/SegmentedControl.esm.js +84 -0
  186. package/dist/components/segmented-control/index.d.ts +2 -0
  187. package/dist/components/segmented-control/types.d.ts +30 -0
  188. package/dist/components/select/MultiSelect.cjs +1 -0
  189. package/dist/{src/components → components}/select/MultiSelect.d.ts +11 -3
  190. package/dist/components/select/MultiSelect.esm.js +180 -176
  191. package/dist/components/select/Select.cjs +1 -0
  192. package/dist/{src/components → components}/select/Select.d.ts +16 -2
  193. package/dist/components/select/Select.esm.js +215 -195
  194. package/dist/components/select/index.d.ts +4 -0
  195. package/dist/components/select/loading-dots.cjs +1 -0
  196. package/dist/components/select/loading-dots.d.ts +3 -0
  197. package/dist/components/select/loading-dots.esm.js +8 -7
  198. package/dist/components/select/panel-width.cjs +1 -0
  199. package/dist/components/select/panel-width.d.ts +2 -0
  200. package/dist/components/select/panel-width.esm.js +7 -0
  201. package/dist/{src/components → components}/select/types.d.ts +7 -0
  202. package/dist/{src/components → components}/select/utils.d.ts +1 -1
  203. package/dist/components/skeleton/Skeleton.cjs +1 -0
  204. package/dist/components/skeleton/Skeleton.d.ts +6 -0
  205. package/dist/components/skeleton/Skeleton.esm.js +12 -0
  206. package/dist/components/skeleton/index.d.ts +2 -0
  207. package/dist/components/skeleton/types.d.ts +2 -0
  208. package/dist/components/slider/Slider.cjs +1 -0
  209. package/dist/components/slider/Slider.d.ts +6 -0
  210. package/dist/components/slider/Slider.esm.js +36 -0
  211. package/dist/components/slider/index.d.ts +2 -0
  212. package/dist/components/slider/types.d.ts +15 -0
  213. package/dist/components/slider/utils.cjs +1 -0
  214. package/dist/components/slider/utils.d.ts +3 -0
  215. package/dist/components/slider/utils.esm.js +15 -0
  216. package/dist/components/stepper/Stepper.cjs +1 -0
  217. package/dist/components/stepper/Stepper.d.ts +51 -0
  218. package/dist/components/stepper/Stepper.esm.js +142 -0
  219. package/dist/components/stepper/index.d.ts +4 -0
  220. package/dist/components/stepper/use-stepper.cjs +1 -0
  221. package/dist/components/stepper/use-stepper.d.ts +43 -0
  222. package/dist/components/stepper/use-stepper.esm.js +57 -0
  223. package/dist/components/switch/Switch.cjs +1 -0
  224. package/dist/{src/components → components}/switch/Switch.d.ts +1 -1
  225. package/dist/components/switch/Switch.esm.js +21 -20
  226. package/dist/components/switch/index.d.ts +2 -0
  227. package/dist/components/switch/utils.cjs +1 -0
  228. package/dist/{src/components → components}/switch/utils.d.ts +2 -2
  229. package/dist/components/switch/utils.esm.js +9 -8
  230. package/dist/components/table/accordion-table.cjs +1 -0
  231. package/dist/{src/components → components}/table/accordion-table.d.ts +1 -1
  232. package/dist/components/table/accordion-table.esm.js +261 -247
  233. package/dist/{src/components → components}/table/column-group-utils.d.ts +1 -1
  234. package/dist/components/table/components/ColumnPresetSelector.cjs +1 -0
  235. package/dist/{src/components → components}/table/components/ColumnPresetSelector.d.ts +2 -2
  236. package/dist/components/table/components/ColumnPresetSelector.esm.js +60 -59
  237. package/dist/components/table/components/ColumnSettingsTable.cjs +1 -0
  238. package/dist/{src/components → components}/table/components/ColumnSettingsTable.d.ts +1 -1
  239. package/dist/components/table/components/ColumnSettingsTable.esm.js +94 -96
  240. package/dist/components/table/components/KeyboardNavButton.cjs +1 -0
  241. package/dist/components/table/components/KeyboardNavButton.esm.js +1 -1
  242. package/dist/components/table/components/PageJumpInput.cjs +1 -0
  243. package/dist/components/table/components/PageJumpInput.esm.js +33 -32
  244. package/dist/components/table/components/Pagination.cjs +1 -0
  245. package/dist/components/table/components/Pagination.esm.js +80 -79
  246. package/dist/components/table/components/PaginationFooter.cjs +1 -0
  247. package/dist/components/table/components/PaginationFooter.esm.js +2 -2
  248. package/dist/components/table/components/SortHeader.cjs +1 -0
  249. package/dist/components/table/components/SortHeader.d.ts +10 -0
  250. package/dist/components/table/components/SortHeader.esm.js +27 -0
  251. package/dist/components/table/components/SortableHeaderCell.cjs +1 -0
  252. package/dist/{src/components → components}/table/components/SortableHeaderCell.d.ts +10 -2
  253. package/dist/components/table/components/SortableHeaderCell.esm.js +54 -26
  254. package/dist/components/table/hooks/sort-state.cjs +1 -0
  255. package/dist/components/table/hooks/sort-state.d.ts +5 -0
  256. package/dist/components/table/hooks/sort-state.esm.js +21 -0
  257. package/dist/components/table/hooks/useColumnPresets.cjs +1 -0
  258. package/dist/{src/components → components}/table/hooks/useColumnPresets.d.ts +2 -2
  259. package/dist/components/table/hooks/useColumnResize.cjs +1 -0
  260. package/dist/{src/components → components}/table/hooks/useColumnResize.d.ts +12 -0
  261. package/dist/components/table/hooks/useColumnResize.esm.js +66 -54
  262. package/dist/components/table/hooks/useFillEmptyRows.d.ts +2 -0
  263. package/dist/components/table/hooks/useInfiniteScroll.d.ts +2 -0
  264. package/dist/components/table/hooks/useTableColumnState.cjs +1 -0
  265. package/dist/{src/components → components}/table/hooks/useTableColumnState.d.ts +1 -1
  266. package/dist/components/table/hooks/useTableDragSelection.d.ts +2 -0
  267. package/dist/components/table/hooks/useTableSort.cjs +1 -0
  268. package/dist/{src/components → components}/table/hooks/useTableSort.d.ts +7 -4
  269. package/dist/components/table/hooks/useTableSort.esm.js +18 -19
  270. package/dist/components/table/hooks/useVirtualTable.cjs +1 -0
  271. package/dist/components/table/hooks/useVirtualTable.esm.js +8 -8
  272. package/dist/components/table/index.d.ts +27 -0
  273. package/dist/components/table/mini-table.cjs +1 -0
  274. package/dist/{src/components → components}/table/mini-table.d.ts +1 -1
  275. package/dist/components/table/mini-table.esm.js +87 -86
  276. package/dist/components/table/paginated-mini-table.cjs +1 -0
  277. package/dist/{src/components → components}/table/paginated-mini-table.d.ts +1 -1
  278. package/dist/components/table/paginated-table.cjs +1 -0
  279. package/dist/{src/components → components}/table/paginated-table.d.ts +3 -1
  280. package/dist/components/table/table.cjs +1 -0
  281. package/dist/components/table/table.d.ts +13 -0
  282. package/dist/components/table/table.esm.js +189 -173
  283. package/dist/{src/components → components}/table/types.d.ts +11 -4
  284. package/dist/components/table/utils.cjs +35 -0
  285. package/dist/{src/components → components}/table/utils.d.ts +2 -2
  286. package/dist/components/table/utils.esm.js +2 -2
  287. package/dist/components/table-checkbox/TableCheckbox.cjs +1 -0
  288. package/dist/components/table-checkbox/TableCheckbox.esm.js +27 -26
  289. package/dist/components/table-checkbox/index.d.ts +1 -0
  290. package/dist/components/table-page-layout/TablePageLayout.cjs +1 -0
  291. package/dist/components/table-page-layout/TablePageLayout.esm.js +3 -3
  292. package/dist/{src/components → components}/table-page-layout/index.d.ts +1 -1
  293. package/dist/components/tabs/Tabs.cjs +1 -0
  294. package/dist/components/tabs/Tabs.d.ts +8 -0
  295. package/dist/components/tabs/Tabs.esm.js +53 -0
  296. package/dist/components/tabs/index.d.ts +2 -0
  297. package/dist/components/tabs/navigation.cjs +1 -0
  298. package/dist/components/tabs/navigation.d.ts +2 -0
  299. package/dist/components/tabs/navigation.esm.js +18 -0
  300. package/dist/components/tabs/types.d.ts +20 -0
  301. package/dist/components/textarea/Textarea.cjs +1 -0
  302. package/dist/{src/components → components}/textarea/Textarea.d.ts +1 -1
  303. package/dist/components/textarea/Textarea.esm.js +49 -47
  304. package/dist/components/textarea/index.d.ts +2 -0
  305. package/dist/components/time-picker/index.d.ts +2 -0
  306. package/dist/components/time-picker/time-picker.cjs +1 -0
  307. package/dist/components/time-picker/time-picker.d.ts +35 -0
  308. package/dist/components/time-picker/time-picker.esm.js +193 -0
  309. package/dist/components/time-picker/time-utils.cjs +1 -0
  310. package/dist/components/time-picker/time-utils.d.ts +12 -0
  311. package/dist/components/time-picker/time-utils.esm.js +56 -0
  312. package/dist/components/toast/ToastProvider.cjs +1 -0
  313. package/dist/{src/components → components}/toast/ToastProvider.d.ts +3 -0
  314. package/dist/components/toast/ToastProvider.esm.js +47 -43
  315. package/dist/components/toast/index.d.ts +3 -0
  316. package/dist/components/toolbar/Toolbar.cjs +1 -0
  317. package/dist/{src/components → components}/toolbar/Toolbar.d.ts +1 -1
  318. package/dist/components/toolbar/Toolbar.esm.js +99 -98
  319. package/dist/components/toolbar/index.d.ts +2 -0
  320. package/dist/components/tooltip/{Tooltip.cjs.js → Tooltip.cjs} +1 -1
  321. package/dist/components/tooltip/Tooltip.esm.js +1 -1
  322. package/dist/components/tooltip/index.d.ts +2 -0
  323. package/dist/components/typewriter-text/TypewriterText.cjs +1 -0
  324. package/dist/components/typewriter-text/TypewriterText.d.ts +7 -0
  325. package/dist/components/typewriter-text/TypewriterText.esm.js +58 -0
  326. package/dist/components/typewriter-text/index.d.ts +2 -0
  327. package/dist/components/typewriter-text/types.d.ts +12 -0
  328. package/dist/components/typing-dots/TypingDots.cjs +1 -0
  329. package/dist/components/typing-dots/TypingDots.d.ts +10 -0
  330. package/dist/components/typing-dots/TypingDots.esm.js +37 -0
  331. package/dist/components/typing-dots/index.d.ts +2 -0
  332. package/dist/components/typing-dots/types.d.ts +4 -0
  333. package/dist/hooks/awaitableOverlayController.cjs +1 -0
  334. package/dist/hooks/awaitableOverlayController.d.ts +6 -0
  335. package/dist/hooks/awaitableOverlayController.esm.js +18 -0
  336. package/dist/hooks/index.d.ts +17 -0
  337. package/dist/hooks/useAwaitableOverlay.cjs +1 -0
  338. package/dist/hooks/useAwaitableOverlay.d.ts +16 -0
  339. package/dist/hooks/useAwaitableOverlay.esm.js +22 -0
  340. package/dist/hooks/useFillEmptyRows.cjs +1 -0
  341. package/dist/{src/components/table/hooks → hooks}/useFillEmptyRows.d.ts +10 -1
  342. package/dist/hooks/useFillEmptyRows.esm.js +60 -0
  343. package/dist/hooks/useFocusTrap.cjs +1 -0
  344. package/dist/hooks/useFocusTrap.d.ts +47 -0
  345. package/dist/hooks/useFocusTrap.esm.js +210 -0
  346. package/dist/hooks/useInfiniteScroll.cjs +1 -0
  347. package/dist/hooks/useInfiniteScroll.d.ts +36 -0
  348. package/dist/hooks/useInfiniteScroll.esm.js +31 -0
  349. package/dist/hooks/useTableDragSelection.cjs +1 -0
  350. package/dist/{src/components/table/hooks → hooks}/useTableDragSelection.d.ts +3 -4
  351. package/dist/{components/table/hooks → hooks}/useTableDragSelection.esm.js +9 -6
  352. package/dist/hooks/useVirtualRows.cjs +1 -0
  353. package/dist/hooks/useVirtualRows.d.ts +56 -0
  354. package/dist/hooks/useVirtualRows.esm.js +20 -0
  355. package/dist/hooks.cjs +1 -0
  356. package/dist/hooks.esm.js +12 -5
  357. package/dist/index.cjs +1 -0
  358. package/dist/index.d.ts +42 -0
  359. package/dist/index.esm.js +83 -58
  360. package/dist/lib/index.d.ts +6 -0
  361. package/dist/lib/utils.cjs +1 -0
  362. package/dist/{src/lib → lib}/utils.d.ts +2 -1
  363. package/dist/lib/utils.esm.js +108 -5
  364. package/dist/node_modules/lucide-react/dist/esm/Icon.cjs +1 -0
  365. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.cjs +1 -0
  366. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-down.cjs +1 -0
  367. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-down.esm.js +10 -0
  368. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-left.cjs +1 -0
  369. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-up-down.cjs +1 -0
  370. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-up-down.esm.js +21 -0
  371. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-up.cjs +1 -0
  372. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-up.esm.js +10 -0
  373. package/dist/node_modules/lucide-react/dist/esm/icons/calendar.cjs +1 -0
  374. package/dist/node_modules/lucide-react/dist/esm/icons/check.cjs +1 -0
  375. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs +1 -0
  376. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-left.cjs +1 -0
  377. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.cjs +1 -0
  378. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-left.cjs +1 -0
  379. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-right.cjs +1 -0
  380. package/dist/node_modules/lucide-react/dist/esm/icons/circle-check.cjs +1 -0
  381. package/dist/node_modules/lucide-react/dist/esm/icons/circle-x.cjs +1 -0
  382. package/dist/node_modules/lucide-react/dist/esm/icons/clock.cjs +1 -0
  383. package/dist/node_modules/lucide-react/dist/esm/icons/clock.esm.js +12 -0
  384. package/dist/node_modules/lucide-react/dist/esm/icons/copy.cjs +1 -0
  385. package/dist/node_modules/lucide-react/dist/esm/icons/copy.esm.js +15 -0
  386. package/dist/node_modules/lucide-react/dist/esm/icons/eye-off.cjs +1 -0
  387. package/dist/node_modules/lucide-react/dist/esm/icons/eye.cjs +1 -0
  388. package/dist/node_modules/lucide-react/dist/esm/icons/grip-vertical.cjs +1 -0
  389. package/dist/node_modules/lucide-react/dist/esm/icons/info.cjs +1 -0
  390. package/dist/node_modules/lucide-react/dist/esm/icons/keyboard.cjs +1 -0
  391. package/dist/node_modules/lucide-react/dist/esm/icons/list-filter.cjs +1 -0
  392. package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.cjs +1 -0
  393. package/dist/node_modules/lucide-react/dist/esm/icons/minus.cjs +1 -0
  394. package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.cjs +1 -0
  395. package/dist/node_modules/lucide-react/dist/esm/icons/save.cjs +1 -0
  396. package/dist/node_modules/lucide-react/dist/esm/icons/search.cjs +1 -0
  397. package/dist/node_modules/lucide-react/dist/esm/icons/settings.cjs +1 -0
  398. package/dist/node_modules/lucide-react/dist/esm/icons/triangle-alert.cjs +1 -0
  399. package/dist/node_modules/lucide-react/dist/esm/icons/wrench.cjs +1 -0
  400. package/dist/node_modules/lucide-react/dist/esm/icons/x.cjs +1 -0
  401. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.cjs +1 -0
  402. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs +1 -0
  403. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.esm.js +559 -550
  404. package/dist/tokens.css +1158 -0
  405. package/dist/ui.css +1 -1
  406. package/llms.txt +46 -17
  407. package/package.json +11 -8
  408. package/dist/components/_shared/form-size-tokens.cjs.js +0 -1
  409. package/dist/components/action-toast/ActionToast.cjs.js +0 -1
  410. package/dist/components/animated-height/AnimatedHeight.cjs.js +0 -1
  411. package/dist/components/badge/Badge.cjs.js +0 -1
  412. package/dist/components/badge/utils.cjs.js +0 -1
  413. package/dist/components/button/Button.cjs.js +0 -1
  414. package/dist/components/button/utils.cjs.js +0 -1
  415. package/dist/components/checkbox/Checkbox.cjs.js +0 -1
  416. package/dist/components/checkbox/utils.cjs.js +0 -1
  417. package/dist/components/collapsible/Collapsible.cjs.js +0 -1
  418. package/dist/components/date-input/DateInput.cjs.js +0 -1
  419. package/dist/components/date-picker/date-picker.cjs.js +0 -1
  420. package/dist/components/date-picker/date-range-picker.cjs.js +0 -1
  421. package/dist/components/date-picker/month-picker.cjs.js +0 -1
  422. package/dist/components/drawer/Drawer.cjs.js +0 -1
  423. package/dist/components/info-tooltip/InfoTooltip.cjs.js +0 -1
  424. package/dist/components/input/Input.cjs.js +0 -1
  425. package/dist/components/input/PasswordInput.cjs.js +0 -1
  426. package/dist/components/input/format.cjs.js +0 -1
  427. package/dist/components/input/utils.cjs.js +0 -1
  428. package/dist/components/loading-spinner/LoadingSpinner.cjs.js +0 -1
  429. package/dist/components/modal/Modal.cjs.js +0 -1
  430. package/dist/components/modal/ModalSubView.cjs.js +0 -1
  431. package/dist/components/modal/StandardModal.cjs.js +0 -1
  432. package/dist/components/page-title/PageTitle.cjs.js +0 -1
  433. package/dist/components/popover/Popover.cjs.js +0 -1
  434. package/dist/components/search-box/ExactMatchToggle.cjs.js +0 -1
  435. package/dist/components/search-box/SearchBox.cjs.js +0 -1
  436. package/dist/components/search-box/SearchBoxChips.cjs.js +0 -1
  437. package/dist/components/search-box/SearchBoxDateRange.cjs.js +0 -1
  438. package/dist/components/search-box/SearchBoxDateSingle.cjs.js +0 -1
  439. package/dist/components/search-box/SearchBoxField.cjs.js +0 -1
  440. package/dist/components/search-box/SearchBoxFloatingInput.cjs.js +0 -1
  441. package/dist/components/search-box/SearchBoxFloatingSelect.cjs.js +0 -1
  442. package/dist/components/search-box/SearchBoxMonth.cjs.js +0 -1
  443. package/dist/components/search-box/SearchBoxMultiSelect.cjs.js +0 -1
  444. package/dist/components/search-box/dateRangePresets.cjs.js +0 -1
  445. package/dist/components/search-box/parseSearchValues.cjs.js +0 -1
  446. package/dist/components/search-box/useSearchBoxState.cjs.js +0 -1
  447. package/dist/components/select/MultiSelect.cjs.js +0 -1
  448. package/dist/components/select/Select.cjs.js +0 -1
  449. package/dist/components/select/loading-dots.cjs.js +0 -1
  450. package/dist/components/switch/Switch.cjs.js +0 -1
  451. package/dist/components/switch/utils.cjs.js +0 -1
  452. package/dist/components/table/accordion-table.cjs.js +0 -1
  453. package/dist/components/table/components/ColumnPresetSelector.cjs.js +0 -1
  454. package/dist/components/table/components/ColumnSettingsTable.cjs.js +0 -4
  455. package/dist/components/table/components/KeyboardNavButton.cjs.js +0 -1
  456. package/dist/components/table/components/PageJumpInput.cjs.js +0 -1
  457. package/dist/components/table/components/Pagination.cjs.js +0 -1
  458. package/dist/components/table/components/PaginationFooter.cjs.js +0 -1
  459. package/dist/components/table/components/SortableHeaderCell.cjs.js +0 -1
  460. package/dist/components/table/hooks/useColumnPresets.cjs.js +0 -1
  461. package/dist/components/table/hooks/useColumnResize.cjs.js +0 -1
  462. package/dist/components/table/hooks/useFillEmptyRows.cjs.js +0 -1
  463. package/dist/components/table/hooks/useFillEmptyRows.esm.js +0 -49
  464. package/dist/components/table/hooks/useInfiniteScroll.cjs.js +0 -1
  465. package/dist/components/table/hooks/useInfiniteScroll.esm.js +0 -32
  466. package/dist/components/table/hooks/useTableColumnState.cjs.js +0 -1
  467. package/dist/components/table/hooks/useTableDragSelection.cjs.js +0 -1
  468. package/dist/components/table/hooks/useTableSort.cjs.js +0 -1
  469. package/dist/components/table/hooks/useVirtualTable.cjs.js +0 -1
  470. package/dist/components/table/mini-table.cjs.js +0 -1
  471. package/dist/components/table/paginated-mini-table.cjs.js +0 -1
  472. package/dist/components/table/paginated-table.cjs.js +0 -1
  473. package/dist/components/table/table.cjs.js +0 -1
  474. package/dist/components/table/utils.cjs.js +0 -37
  475. package/dist/components/table-checkbox/TableCheckbox.cjs.js +0 -1
  476. package/dist/components/table-page-layout/TablePageLayout.cjs.js +0 -1
  477. package/dist/components/textarea/Textarea.cjs.js +0 -1
  478. package/dist/components/toast/ToastProvider.cjs.js +0 -1
  479. package/dist/components/toolbar/Toolbar.cjs.js +0 -1
  480. package/dist/hooks.cjs.js +0 -1
  481. package/dist/index.cjs.js +0 -1
  482. package/dist/lib/utils.cjs.js +0 -1
  483. package/dist/node_modules/lucide-react/dist/esm/Icon.cjs.js +0 -1
  484. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.cjs.js +0 -1
  485. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-left.cjs.js +0 -1
  486. package/dist/node_modules/lucide-react/dist/esm/icons/calendar.cjs.js +0 -1
  487. package/dist/node_modules/lucide-react/dist/esm/icons/check.cjs.js +0 -1
  488. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs.js +0 -1
  489. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-left.cjs.js +0 -1
  490. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.cjs.js +0 -1
  491. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-left.cjs.js +0 -1
  492. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-right.cjs.js +0 -1
  493. package/dist/node_modules/lucide-react/dist/esm/icons/circle-check.cjs.js +0 -1
  494. package/dist/node_modules/lucide-react/dist/esm/icons/circle-x.cjs.js +0 -1
  495. package/dist/node_modules/lucide-react/dist/esm/icons/eye-off.cjs.js +0 -1
  496. package/dist/node_modules/lucide-react/dist/esm/icons/eye.cjs.js +0 -1
  497. package/dist/node_modules/lucide-react/dist/esm/icons/grip-vertical.cjs.js +0 -1
  498. package/dist/node_modules/lucide-react/dist/esm/icons/info.cjs.js +0 -1
  499. package/dist/node_modules/lucide-react/dist/esm/icons/keyboard.cjs.js +0 -1
  500. package/dist/node_modules/lucide-react/dist/esm/icons/list-filter.cjs.js +0 -1
  501. package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.cjs.js +0 -1
  502. package/dist/node_modules/lucide-react/dist/esm/icons/minus.cjs.js +0 -1
  503. package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.cjs.js +0 -1
  504. package/dist/node_modules/lucide-react/dist/esm/icons/save.cjs.js +0 -1
  505. package/dist/node_modules/lucide-react/dist/esm/icons/search.cjs.js +0 -1
  506. package/dist/node_modules/lucide-react/dist/esm/icons/settings.cjs.js +0 -1
  507. package/dist/node_modules/lucide-react/dist/esm/icons/triangle-alert.cjs.js +0 -1
  508. package/dist/node_modules/lucide-react/dist/esm/icons/wrench.cjs.js +0 -1
  509. package/dist/node_modules/lucide-react/dist/esm/icons/x.cjs.js +0 -1
  510. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.cjs.js +0 -1
  511. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs.js +0 -1
  512. package/dist/src/components/animated-height/index.d.ts +0 -2
  513. package/dist/src/components/badge/index.d.ts +0 -2
  514. package/dist/src/components/checkbox/index.d.ts +0 -2
  515. package/dist/src/components/collapsible/index.d.ts +0 -2
  516. package/dist/src/components/date-input/index.d.ts +0 -1
  517. package/dist/src/components/date-picker/index.d.ts +0 -5
  518. package/dist/src/components/drawer/Drawer.d.ts +0 -23
  519. package/dist/src/components/drawer/index.d.ts +0 -2
  520. package/dist/src/components/info-tooltip/index.d.ts +0 -2
  521. package/dist/src/components/input/index.d.ts +0 -4
  522. package/dist/src/components/loading-spinner/index.d.ts +0 -2
  523. package/dist/src/components/modal/index.d.ts +0 -6
  524. package/dist/src/components/page-title/index.d.ts +0 -1
  525. package/dist/src/components/popover/index.d.ts +0 -2
  526. package/dist/src/components/select/index.d.ts +0 -4
  527. package/dist/src/components/select/loading-dots.d.ts +0 -9
  528. package/dist/src/components/switch/index.d.ts +0 -2
  529. package/dist/src/components/table/hooks/useInfiniteScroll.d.ts +0 -58
  530. package/dist/src/components/table/index.d.ts +0 -27
  531. package/dist/src/components/table/table.d.ts +0 -10
  532. package/dist/src/components/table-checkbox/index.d.ts +0 -1
  533. package/dist/src/components/textarea/index.d.ts +0 -2
  534. package/dist/src/components/toast/index.d.ts +0 -3
  535. package/dist/src/components/toolbar/index.d.ts +0 -2
  536. package/dist/src/components/tooltip/index.d.ts +0 -2
  537. package/dist/src/hooks/index.d.ts +0 -4
  538. package/dist/src/index.d.ts +0 -27
  539. package/dist/src/lib/index.d.ts +0 -6
  540. /package/dist/_virtual/_rolldown/{runtime.cjs.js → runtime.cjs} +0 -0
  541. /package/dist/{src/components → components}/animated-height/AnimatedHeight.d.ts +0 -0
  542. /package/dist/{src/components → components}/badge/types.d.ts +0 -0
  543. /package/dist/{src/components → components}/checkbox/types.d.ts +0 -0
  544. /package/dist/{src/components → components}/collapsible/Collapsible.d.ts +0 -0
  545. /package/dist/{src/components → components}/info-tooltip/InfoTooltip.d.ts +0 -0
  546. /package/dist/{src/components → components}/loading-spinner/LoadingSpinner.d.ts +0 -0
  547. /package/dist/{src/components → components}/page-title/PageTitle.d.ts +0 -0
  548. /package/dist/{src/components → components}/popover/Popover.d.ts +0 -0
  549. /package/dist/{src/components → components}/search-box/ExactMatchToggle.d.ts +0 -0
  550. /package/dist/{src/components → components}/search-box/SearchBoxChips.d.ts +0 -0
  551. /package/dist/{src/components → components}/search-box/SearchBoxFloatingInput.d.ts +0 -0
  552. /package/dist/{src/components → components}/search-box/SearchBoxMonth.d.ts +0 -0
  553. /package/dist/components/search-box/{SearchBoxSheetContext.cjs.js → SearchBoxSheetContext.cjs} +0 -0
  554. /package/dist/{src/components → components}/search-box/SearchBoxSheetContext.d.ts +0 -0
  555. /package/dist/components/search-box/{parseDateRange.cjs.js → parseDateRange.cjs} +0 -0
  556. /package/dist/{src/components → components}/search-box/parseDateRange.d.ts +0 -0
  557. /package/dist/{src/components → components}/switch/types.d.ts +0 -0
  558. /package/dist/components/table/{column-group-utils.cjs.js → column-group-utils.cjs} +0 -0
  559. /package/dist/{src/components → components}/table/components/KeyboardNavButton.d.ts +0 -0
  560. /package/dist/{src/components → components}/table/components/PageJumpInput.d.ts +0 -0
  561. /package/dist/{src/components → components}/table/components/Pagination.d.ts +0 -0
  562. /package/dist/{src/components → components}/table/components/PaginationFooter.d.ts +0 -0
  563. /package/dist/{src/components → components}/table/hooks/useVirtualTable.d.ts +0 -0
  564. /package/dist/{src/components → components}/table-checkbox/TableCheckbox.d.ts +0 -0
  565. /package/dist/{src/components → components}/table-page-layout/TablePageLayout.d.ts +0 -0
  566. /package/dist/{src/components → components}/textarea/types.d.ts +0 -0
  567. /package/dist/{src/components → components}/tooltip/Tooltip.d.ts +0 -0
  568. /package/dist/hooks/{useBottomSheetDrag.cjs.js → useBottomSheetDrag.cjs} +0 -0
  569. /package/dist/{src/hooks → hooks}/useBottomSheetDrag.d.ts +0 -0
  570. /package/dist/hooks/{useClickOutside.cjs.js → useClickOutside.cjs} +0 -0
  571. /package/dist/{src/hooks → hooks}/useClickOutside.d.ts +0 -0
  572. /package/dist/hooks/{useMediaQuery.cjs.js → useMediaQuery.cjs} +0 -0
  573. /package/dist/{src/hooks → hooks}/useMediaQuery.d.ts +0 -0
  574. /package/dist/hooks/{useScrollLock.cjs.js → useScrollLock.cjs} +0 -0
  575. /package/dist/{src/hooks → hooks}/useScrollLock.d.ts +0 -0
  576. /package/dist/lib/{Portal.cjs.js → Portal.cjs} +0 -0
  577. /package/dist/{src/lib → lib}/Portal.d.ts +0 -0
  578. /package/dist/lib/{column-preset-storage.cjs.js → column-preset-storage.cjs} +0 -0
  579. /package/dist/{src/lib → lib}/column-preset-storage.d.ts +0 -0
  580. /package/dist/lib/{overlay-stack.cjs.js → overlay-stack.cjs} +0 -0
  581. /package/dist/{src/lib → lib}/overlay-stack.d.ts +0 -0
  582. /package/dist/node_modules/clsx/dist/{clsx.cjs.js → clsx.cjs} +0 -0
  583. /package/dist/node_modules/lucide-react/dist/esm/{context.cjs.js → context.cjs} +0 -0
  584. /package/dist/node_modules/lucide-react/dist/esm/{defaultAttributes.cjs.js → defaultAttributes.cjs} +0 -0
  585. /package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/{hasA11yProp.cjs.js → hasA11yProp.cjs} +0 -0
  586. /package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/{mergeClasses.cjs.js → mergeClasses.cjs} +0 -0
  587. /package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/{toCamelCase.cjs.js → toCamelCase.cjs} +0 -0
  588. /package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/{toKebabCase.cjs.js → toKebabCase.cjs} +0 -0
  589. /package/dist/node_modules/use-debounce/dist/{index.module.cjs.js → index.module.cjs} +0 -0
@@ -0,0 +1 @@
1
+ let e=require("react");var t=[`a[href]`,`area[href]`,`button`,`input`,`select`,`textarea`,`iframe`,`summary`,`audio[controls]`,`video[controls]`,`[contenteditable]:not([contenteditable='false'])`,`[tabindex]`].join(`,`);function n(e,n=!1){let r=Array.from(e.querySelectorAll(t));n&&e.matches(t)&&r.unshift(e);let i=e=>{let t=n?e.getAttribute(`data-tabindex`):null;return t===null?e.tabIndex:t===``?0:Number(t)},a=e=>{if(!(e instanceof HTMLInputElement)||e.type!==`radio`||!e.name||e.checked)return!0;let t=(e.form??document).querySelectorAll(`input[type="radio"][name="${CSS.escape(e.name)}"]`);return!Array.from(t).some(t=>t.checked&&t.form===e.form)};return r.filter(e=>{let t=window.getComputedStyle(e);return i(e)>=0&&a(e)&&!e.matches(`:disabled`)&&!e.hasAttribute(`data-floating-ui-focus-guard`)&&!e.closest(`[hidden], [inert], [aria-hidden='true']`)&&t.visibility!==`hidden`&&t.visibility!==`collapse`&&e.getClientRects().length>0}).sort((e,t)=>{let n=i(e)>0?i(e):1/0,r=i(t)>0?i(t):1/0;return n===r?0:n-r})}var r=`[data-floating-ui-portal]`,i=`[data-focus-trap-layer]`,a=`[data-floating-ui-focus-guard]`,o=`[data-picker-panel]`,s=`[role="dialog"][aria-modal="true"]`,c=[`Shift`,`Alt`,`Control`,`Meta`];function l(e,t=()=>!0){let n=[],a=[e];for(let e of document.querySelectorAll(i))!e.closest(s)&&!e.querySelector(s)&&(n.push(e),a.push(e));for(let i of a)for(let o of i.querySelectorAll(`[aria-controls]`))if(!(i===e&&!t(o)))for(let e of(o.getAttribute(`aria-controls`)??``).split(/\s+/)){let t=document.getElementById(e)?.closest(r);t&&!n.includes(t)&&!t.closest(s)&&!t.querySelector(s)&&(n.push(t),a.push(t))}return n.sort((e,t)=>e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1)}function u(e,t,i){let a=[e,...l(e,i)];for(let o of a)for(let a of o.querySelectorAll(`[aria-controls]`))if(!(o===e&&!i(a))&&(a.getAttribute(`aria-controls`)??``).split(/\s+/).some(e=>document.getElementById(e)?.closest(r)===t))return a.tabIndex>=0?a:n(a)[0]??null;return null}function d(e){let t=e.closest(`${r}, ${i}`);return!!(e.closest(`[data-ui-action-toast]`)||t&&!e.closest(s))}function f(e,t,n){let r=n?Node.DOCUMENT_POSITION_PRECEDING:Node.DOCUMENT_POSITION_FOLLOWING,i=e=>e!==t&&!!(t.compareDocumentPosition(e)&r);if(!n)return e.find(i)??e[0];for(let t=e.length-1;t>=0;t--)if(i(e[t]))return e[t];return e[e.length-1]}function p(t,{enabled:r,canTrap:i,trapFocus:p=!0,cover:m}){let h=(0,e.useRef)(null),g=(0,e.useRef)(null),_=(0,e.useRef)(null),v=(0,e.useRef)(!1),y=(0,e.useRef)(i);y.current=i,r&&!v.current&&typeof document<`u`&&(h.current=document.activeElement instanceof HTMLElement?document.activeElement:null),v.current=r,(0,e.useEffect)(()=>{g.current=t,_.current=t?.parentElement?.closest(s)??null,!t&&!r&&(h.current=null)},[t,r]),(0,e.useEffect)(()=>{if(r)return()=>{let e=h.current,t=document.activeElement,r=g.current;if(t&&t!==document.body&&t.isConnected&&!r?.contains(t)&&!d(t))return;let i=_.current;i?.isConnected&&(!e?.isConnected||!i.contains(e))?(n(i).find(e=>!r?.contains(e))??i).focus({preventScroll:!0}):e?.isConnected&&e.focus({preventScroll:!0})}},[r]),(0,e.useEffect)(()=>{if(!(!r||!t)&&!t.contains(document.activeElement)){let e=n(t)[0];e?e.focus({preventScroll:!0}):(t.hasAttribute(`tabindex`)||(t.tabIndex=-1),t.focus({preventScroll:!0}))}},[t,r]),(0,e.useEffect)(()=>{if(!r||!t||!p)return;let e=t.parentElement?.closest(s)??null,i=()=>{if(!m||!e?.isConnected||!e.contains(m))return null;let t=m.offsetParent,n=t instanceof HTMLElement&&e.contains(t)?t:m.parentElement;return n?{parent:e,covered:n}:null},d=e=>n=>t.contains(n)||!!e&&e.parent.contains(n)&&!e.covered.contains(n),h=(e,r)=>{let i=e?.parent??t,o=e?n(i).filter(r):n(t),s=l(i,r),c=[o],u=new Set(o);for(let e of s){if(e.querySelector(a))continue;let t=n(e,!0).filter(e=>u.has(e)?!1:(u.add(e),!0));t.length&&c.push(t)}return{tabbables:o,layers:s,groups:c,ring:c.flat()}},g=null,_=!1,v=!1,b,x,S=()=>t.isConnected&&!(y.current&&!y.current()),C=e=>{v=!0;try{e.focus({preventScroll:!0})}finally{v=!1}},w=document.activeElement instanceof HTMLElement&&d(i())(document.activeElement)?document.activeElement:null,T=null,E,D=e=>!!e&&e.isConnected&&!e.matches(`:disabled`)&&e.getClientRects().length>0,O=new MutationObserver(()=>{if(!T||T.element.isConnected)return;let e=T.restore;T=null,O.disconnect(),clearTimeout(E),E=setTimeout(()=>{let r=document.activeElement;!t.isConnected||r&&r!==document.body&&r.isConnected||y.current&&!y.current()||([e,w&&d(i())(w)?w:null].find(D)??n(t)[0]??t).focus({preventScroll:!0})})}),k=e=>{let n=e.target;if(!(n instanceof HTMLElement)||n!==document.activeElement)return;let r=i(),a=d(r);if(a(n))w=n,T=null,document.hasFocus()&&(_=!1);else if(n.closest(`[data-ui-action-toast]`))T={element:n,restore:w};else{let e=r?.parent??t,i=l(e,a).find(e=>e.contains(n));if(T=i?{element:n,restore:u(e,i,a)}:null,!i&&(g||_)&&!v&&S()){let e=g?g.backward:!!(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING);_=!1;let{ring:i}=h(r,a);C(f(i,n,e)??w??t);return}}T?O.observe(document.body,{childList:!0,subtree:!0}):O.disconnect()};document.addEventListener(`focusin`,k);let A=e=>{if(!g||e.relatedTarget!==null||!(e.target instanceof Node)||!e.target.isConnected)return;let n=g.backward;_=!0,clearTimeout(x),x=setTimeout(()=>{let e=document.activeElement;if(!_||e&&e!==document.body||!S())return;let r=i(),{ring:a}=h(r,d(r));C((n?a[a.length-1]:a[0])??t)})};document.addEventListener(`focusout`,A);let j=e=>{c.includes(e.key)||(_=!1,g=e.key===`Tab`&&!e.ctrlKey&&!e.metaKey?{backward:e.shiftKey}:null,clearTimeout(b),g&&(b=setTimeout(()=>{g=null})))},M=()=>{g=null,_=!1};document.addEventListener(`keydown`,j,!0),document.addEventListener(`pointerdown`,M,!0);let N=e=>{if(e.key!==`Tab`||e.defaultPrevented||e.ctrlKey||e.metaKey||y.current&&!y.current())return;let r=document.activeElement,s=i(),c=d(s),{tabbables:l,layers:p,groups:m,ring:g}=h(s,c),_=p.find(e=>r&&e.contains(r)),v=g[0],b=g[g.length-1];if(_?.querySelector(a)){let i=s?.parent??t,l=n(_,!0),d=(r instanceof Element?r.closest(o):null)?.nextElementSibling;!e.shiftKey&&v&&d instanceof HTMLElement&&d.matches(a)&&r===l[l.length-1]&&u(i,_,c)===b&&(e.preventDefault(),d.focus({preventScroll:!0}),v.focus({preventScroll:!0}));return}if(v&&b&&(!e.shiftKey&&r===b||e.shiftKey&&r===v)){let n=s?.parent??t,r=p.find(e=>e.querySelector(a)&&u(n,e,c)===b),i=r?.id?n.querySelector(`[aria-owns="${CSS.escape(r.id)}"]`):null,o=e.shiftKey?i?.nextElementSibling:i?.previousElementSibling;if(o instanceof HTMLElement&&o.matches(a)){e.preventDefault(),o.focus({preventScroll:!0});return}}if(s&&r instanceof HTMLElement){let t=e.shiftKey?-1:1,i=n(s.parent),a=i[i.indexOf(r)+t],o=l.indexOf(r),u=o>=0?l[o+t]:void 0;if(u&&a&&!c(a)){e.preventDefault(),u.focus({preventScroll:!0});return}}if(!v||!b)e.preventDefault(),t.focus({preventScroll:!0});else if(!(r&&c(r))&&!_)e.preventDefault(),(e.shiftKey?b:v).focus({preventScroll:!0});else if(r instanceof HTMLElement&&!r.shadowRoot&&!g.includes(r))e.preventDefault(),f(g,r,e.shiftKey)?.focus({preventScroll:!0});else{let t=m.findIndex(e=>e.some(e=>e===r)),n=m[t];if(e.shiftKey&&r===n?.[0]){e.preventDefault();let n=m[(t<=0?m.length:t)-1];(n[n.length-1]??b).focus({preventScroll:!0})}else !e.shiftKey&&r===n?.[n.length-1]&&(e.preventDefault(),(m[(t+1)%m.length][0]??v).focus({preventScroll:!0}))}};return document.addEventListener(`keydown`,N),()=>{document.removeEventListener(`keydown`,N),document.removeEventListener(`focusin`,k),document.removeEventListener(`focusout`,A),document.removeEventListener(`keydown`,j,!0),document.removeEventListener(`pointerdown`,M,!0),O.disconnect(),clearTimeout(E),clearTimeout(x),clearTimeout(b)}},[t,r,p,m])}exports.useFocusTrap=p;
@@ -0,0 +1,47 @@
1
+ export interface UseFocusTrapOptions {
2
+ enabled: boolean;
3
+ canTrap?: () => boolean;
4
+ trapFocus?: boolean;
5
+ cover?: HTMLElement | null;
6
+ }
7
+ /**
8
+ * 열린 컨테이너 안에서 Tab 포커스를 순환하고 닫힐 때 이전 포커스를 복원한다.
9
+ * Portal처럼 노드가 늦게 연결되면 `container`에 연결된 노드를 전달한다.
10
+ * 열리면 첫 tabbable에 포커스한다. 이미 내부에 포커스가 있으면 유지하고, 대상이 없으면 컨테이너 자체에 포커스한다.
11
+ * `canTrap`은 중첩 오버레이에서 현재 트랩이 Tab을 처리할 수 있는지 판정한다.
12
+ * 닫힐 때 포커스가 컨테이너·부유 레이어 안이거나 body이면 열기 직전 요소로 복원하고,
13
+ * 소비자가 배경의 다른 요소로 옮겨 둔 포커스는 그대로 둔다. 컨테이너가 부모 dialog 안에 있고
14
+ * 열기 직전 요소가 그 부모 밖이면(부모와 함께 열린 서브뷰 등) 부모의 첫 tabbable로 복원한다.
15
+ * `trapFocus`가 false여도 초기 포커스와 이 복원 규칙은 유지한다.
16
+ * `cover`는 부모 dialog 시트의 일부만 덮는 서브뷰용이다. 덮는 요소를 전달하면 Tab 고리는
17
+ * 부모 시트에서 덮인 영역을 뺀 나머지(헤더·footer 등)와 컨테이너를 DOM 순서로 잇는다.
18
+ * 덮인 영역은 `cover`의 offsetParent(없으면 부모 요소)로 판정한다 — 절대 위치로 덮는 범위가
19
+ * 곧 그 기준 요소이기 때문이다.
20
+ * 부유 레이어는 `aria-controls`로 연결된 Floating UI 포털 또는 `data-focus-trap-layer`가
21
+ * 붙은 포털만 인정한다. 연결을 알 수 없는 포털의 Tab은 컨테이너로 돌아오므로 해당 포털에
22
+ * 표식을 붙이거나 `trapFocus: false`를 사용한다. 표식은 문서 전체에서 찾으므로 현재 트랩에
23
+ * 편입할 포털에만 붙인다. `role="dialog"` + `aria-modal="true"`인 포털(서드파티 다이얼로그 등)은
24
+ * 자기 트랩을 가진 별도 모달로 보고 표식이 있어도 편입하지 않는다 — 그 위에서 조작해야 하면
25
+ * `trapFocus: false`를 사용한다.
26
+ * 가드 없는 부유 레이어(Popover·표식 포털)는 트리거 바로 뒤가 아닌 컨테이너의
27
+ * 모든 tabbable 뒤에 붙는다. 포털 DOM 위치와 무관하게 순환을 일정하게 하기 위해 트리거에서
28
+ * Tab을 누르면 다음 필드로 가고, 패널은 한 바퀴의 마지막에 지난다. 열자마자 패널을 조작하려면
29
+ * 패널 안으로 바로 포커스를 옮기는 컴포넌트나 Select·DatePicker처럼 floating-ui 포커스 관리가 있는 패널을 쓴다.
30
+ * 액션 토스트가 top이면 트랩은 양보한다. 그동안에는 Tab이 컨테이너 밖으로 나갈 수 있다
31
+ * (`backdrop: false` 알림성 토스트 포함).
32
+ * Tab 이동으로 범위·편입 레이어·토스트 밖(배경, 서브뷰에 덮인 본문 등)에 떨어진 포커스는
33
+ * 진행 방향의 다음 고리 요소로 되돌린다 — 라디오 그룹·스크롤 컨테이너처럼 브라우저의 Tab 순서를
34
+ * 미리 알 수 없는 경로도 고리를 벗어나지 않게 하기 위해서다. Tab 키가 일으킨 이동(브라우저 UI로
35
+ * 나갔다 키보드로 돌아오는 경우 포함)에만 반응하고, 클릭·터치, 다른 키, 프로그램 `focus()`로 옮긴
36
+ * 포커스(Enter로 연 포털, 닫는 핸들러의 `focus()` 등)는 건드리지 않는다 — 연결·표식 없는 포털도
37
+ * 클릭하면 조작할 수 있다. 그 포털을 Tab으로도 오가야 하면 표식을 붙인다.
38
+ * 포커스가 있던 레이어나 토스트가 사라져 포커스가 body로 유실되면 연결 트리거, 컨테이너에서
39
+ * 마지막으로 포커스됐던 요소, 컨테이너 첫 tabbable 순으로 되돌린다. 포커스 이동 도중에는
40
+ * 잠시 body가 활성 요소가 되므로, 복구는 다음 태스크에서도 body일 때만 한다.
41
+ *
42
+ * @example
43
+ * const [sheet, setSheet] = useState<HTMLDivElement | null>(null);
44
+ * useFocusTrap(sheet, { enabled: open });
45
+ * return <div ref={setSheet} tabIndex={-1}>...</div>;
46
+ */
47
+ export declare function useFocusTrap(container: HTMLElement | null, { enabled, canTrap, trapFocus, cover }: UseFocusTrapOptions): void;
@@ -0,0 +1,210 @@
1
+ import { useEffect as e, useRef as t } from "react";
2
+ //#region src/hooks/useFocusTrap.ts
3
+ var n = [
4
+ "a[href]",
5
+ "area[href]",
6
+ "button",
7
+ "input",
8
+ "select",
9
+ "textarea",
10
+ "iframe",
11
+ "summary",
12
+ "audio[controls]",
13
+ "video[controls]",
14
+ "[contenteditable]:not([contenteditable='false'])",
15
+ "[tabindex]"
16
+ ].join(",");
17
+ function r(e, t = !1) {
18
+ let r = Array.from(e.querySelectorAll(n));
19
+ t && e.matches(n) && r.unshift(e);
20
+ let i = (e) => {
21
+ let n = t ? e.getAttribute("data-tabindex") : null;
22
+ return n === null ? e.tabIndex : n === "" ? 0 : Number(n);
23
+ }, a = (e) => {
24
+ if (!(e instanceof HTMLInputElement) || e.type !== "radio" || !e.name || e.checked) return !0;
25
+ let t = (e.form ?? document).querySelectorAll(`input[type="radio"][name="${CSS.escape(e.name)}"]`);
26
+ return !Array.from(t).some((t) => t.checked && t.form === e.form);
27
+ };
28
+ return r.filter((e) => {
29
+ let t = window.getComputedStyle(e);
30
+ return i(e) >= 0 && a(e) && !e.matches(":disabled") && !e.hasAttribute("data-floating-ui-focus-guard") && !e.closest("[hidden], [inert], [aria-hidden='true']") && t.visibility !== "hidden" && t.visibility !== "collapse" && e.getClientRects().length > 0;
31
+ }).sort((e, t) => {
32
+ let n = i(e) > 0 ? i(e) : Infinity, r = i(t) > 0 ? i(t) : Infinity;
33
+ return n === r ? 0 : n - r;
34
+ });
35
+ }
36
+ var i = "[data-floating-ui-portal]", a = "[data-focus-trap-layer]", o = "[data-floating-ui-focus-guard]", s = "[data-picker-panel]", c = "[role=\"dialog\"][aria-modal=\"true\"]", l = [
37
+ "Shift",
38
+ "Alt",
39
+ "Control",
40
+ "Meta"
41
+ ];
42
+ function u(e, t = () => !0) {
43
+ let n = [], r = [e];
44
+ for (let e of document.querySelectorAll(a)) !e.closest(c) && !e.querySelector(c) && (n.push(e), r.push(e));
45
+ for (let a of r) for (let o of a.querySelectorAll("[aria-controls]")) if (!(a === e && !t(o))) for (let e of (o.getAttribute("aria-controls") ?? "").split(/\s+/)) {
46
+ let t = document.getElementById(e)?.closest(i);
47
+ t && !n.includes(t) && !t.closest(c) && !t.querySelector(c) && (n.push(t), r.push(t));
48
+ }
49
+ return n.sort((e, t) => e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1);
50
+ }
51
+ function d(e, t, n) {
52
+ let a = [e, ...u(e, n)];
53
+ for (let o of a) for (let a of o.querySelectorAll("[aria-controls]")) if (!(o === e && !n(a)) && (a.getAttribute("aria-controls") ?? "").split(/\s+/).some((e) => document.getElementById(e)?.closest(i) === t)) return a.tabIndex >= 0 ? a : r(a)[0] ?? null;
54
+ return null;
55
+ }
56
+ function f(e) {
57
+ let t = e.closest(`${i}, ${a}`);
58
+ return !!(e.closest("[data-ui-action-toast]") || t && !e.closest(c));
59
+ }
60
+ function p(e, t, n) {
61
+ let r = n ? Node.DOCUMENT_POSITION_PRECEDING : Node.DOCUMENT_POSITION_FOLLOWING, i = (e) => e !== t && !!(t.compareDocumentPosition(e) & r);
62
+ if (!n) return e.find(i) ?? e[0];
63
+ for (let t = e.length - 1; t >= 0; t--) if (i(e[t])) return e[t];
64
+ return e[e.length - 1];
65
+ }
66
+ function m(n, { enabled: i, canTrap: a, trapFocus: m = !0, cover: h }) {
67
+ let g = t(null), _ = t(null), v = t(null), y = t(!1), b = t(a);
68
+ b.current = a, i && !y.current && typeof document < "u" && (g.current = document.activeElement instanceof HTMLElement ? document.activeElement : null), y.current = i, e(() => {
69
+ _.current = n, v.current = n?.parentElement?.closest(c) ?? null, !n && !i && (g.current = null);
70
+ }, [n, i]), e(() => {
71
+ if (i) return () => {
72
+ let e = g.current, t = document.activeElement, n = _.current;
73
+ if (t && t !== document.body && t.isConnected && !n?.contains(t) && !f(t)) return;
74
+ let i = v.current;
75
+ i?.isConnected && (!e?.isConnected || !i.contains(e)) ? (r(i).find((e) => !n?.contains(e)) ?? i).focus({ preventScroll: !0 }) : e?.isConnected && e.focus({ preventScroll: !0 });
76
+ };
77
+ }, [i]), e(() => {
78
+ if (!(!i || !n) && !n.contains(document.activeElement)) {
79
+ let e = r(n)[0];
80
+ e ? e.focus({ preventScroll: !0 }) : (n.hasAttribute("tabindex") || (n.tabIndex = -1), n.focus({ preventScroll: !0 }));
81
+ }
82
+ }, [n, i]), e(() => {
83
+ if (!i || !n || !m) return;
84
+ let e = n.parentElement?.closest(c) ?? null, t = () => {
85
+ if (!h || !e?.isConnected || !e.contains(h)) return null;
86
+ let t = h.offsetParent, n = t instanceof HTMLElement && e.contains(t) ? t : h.parentElement;
87
+ return n ? {
88
+ parent: e,
89
+ covered: n
90
+ } : null;
91
+ }, a = (e) => (t) => n.contains(t) || !!e && e.parent.contains(t) && !e.covered.contains(t), f = (e, t) => {
92
+ let i = e?.parent ?? n, a = e ? r(i).filter(t) : r(n), s = u(i, t), c = [a], l = new Set(a);
93
+ for (let e of s) {
94
+ if (e.querySelector(o)) continue;
95
+ let t = r(e, !0).filter((e) => l.has(e) ? !1 : (l.add(e), !0));
96
+ t.length && c.push(t);
97
+ }
98
+ return {
99
+ tabbables: a,
100
+ layers: s,
101
+ groups: c,
102
+ ring: c.flat()
103
+ };
104
+ }, g = null, _ = !1, v = !1, y, x, S = () => n.isConnected && !(b.current && !b.current()), C = (e) => {
105
+ v = !0;
106
+ try {
107
+ e.focus({ preventScroll: !0 });
108
+ } finally {
109
+ v = !1;
110
+ }
111
+ }, w = document.activeElement instanceof HTMLElement && a(t())(document.activeElement) ? document.activeElement : null, T = null, E, D = (e) => !!e && e.isConnected && !e.matches(":disabled") && e.getClientRects().length > 0, O = new MutationObserver(() => {
112
+ if (!T || T.element.isConnected) return;
113
+ let e = T.restore;
114
+ T = null, O.disconnect(), clearTimeout(E), E = setTimeout(() => {
115
+ let i = document.activeElement;
116
+ !n.isConnected || i && i !== document.body && i.isConnected || b.current && !b.current() || ([e, w && a(t())(w) ? w : null].find(D) ?? r(n)[0] ?? n).focus({ preventScroll: !0 });
117
+ });
118
+ }), k = (e) => {
119
+ let r = e.target;
120
+ if (!(r instanceof HTMLElement) || r !== document.activeElement) return;
121
+ let i = t(), o = a(i);
122
+ if (o(r)) w = r, T = null, document.hasFocus() && (_ = !1);
123
+ else if (r.closest("[data-ui-action-toast]")) T = {
124
+ element: r,
125
+ restore: w
126
+ };
127
+ else {
128
+ let e = i?.parent ?? n, t = u(e, o).find((e) => e.contains(r));
129
+ if (T = t ? {
130
+ element: r,
131
+ restore: d(e, t, o)
132
+ } : null, !t && (g || _) && !v && S()) {
133
+ let e = g ? g.backward : !!(n.compareDocumentPosition(r) & Node.DOCUMENT_POSITION_FOLLOWING);
134
+ _ = !1;
135
+ let { ring: t } = f(i, o);
136
+ C(p(t, r, e) ?? w ?? n);
137
+ return;
138
+ }
139
+ }
140
+ T ? O.observe(document.body, {
141
+ childList: !0,
142
+ subtree: !0
143
+ }) : O.disconnect();
144
+ };
145
+ document.addEventListener("focusin", k);
146
+ let A = (e) => {
147
+ if (!g || e.relatedTarget !== null || !(e.target instanceof Node) || !e.target.isConnected) return;
148
+ let r = g.backward;
149
+ _ = !0, clearTimeout(x), x = setTimeout(() => {
150
+ let e = document.activeElement;
151
+ if (!_ || e && e !== document.body || !S()) return;
152
+ let i = t(), { ring: o } = f(i, a(i));
153
+ C((r ? o[o.length - 1] : o[0]) ?? n);
154
+ });
155
+ };
156
+ document.addEventListener("focusout", A);
157
+ let j = (e) => {
158
+ l.includes(e.key) || (_ = !1, g = e.key === "Tab" && !e.ctrlKey && !e.metaKey ? { backward: e.shiftKey } : null, clearTimeout(y), g && (y = setTimeout(() => {
159
+ g = null;
160
+ })));
161
+ }, M = () => {
162
+ g = null, _ = !1;
163
+ };
164
+ document.addEventListener("keydown", j, !0), document.addEventListener("pointerdown", M, !0);
165
+ let N = (e) => {
166
+ if (e.key !== "Tab" || e.defaultPrevented || e.ctrlKey || e.metaKey || b.current && !b.current()) return;
167
+ let i = document.activeElement, c = t(), l = a(c), { tabbables: u, layers: m, groups: h, ring: g } = f(c, l), _ = m.find((e) => i && e.contains(i)), v = g[0], y = g[g.length - 1];
168
+ if (_?.querySelector(o)) {
169
+ let t = c?.parent ?? n, a = r(_, !0), u = (i instanceof Element ? i.closest(s) : null)?.nextElementSibling;
170
+ !e.shiftKey && v && u instanceof HTMLElement && u.matches(o) && i === a[a.length - 1] && d(t, _, l) === y && (e.preventDefault(), u.focus({ preventScroll: !0 }), v.focus({ preventScroll: !0 }));
171
+ return;
172
+ }
173
+ if (v && y && (!e.shiftKey && i === y || e.shiftKey && i === v)) {
174
+ let t = c?.parent ?? n, r = m.find((e) => e.querySelector(o) && d(t, e, l) === y), i = r?.id ? t.querySelector(`[aria-owns="${CSS.escape(r.id)}"]`) : null, a = e.shiftKey ? i?.nextElementSibling : i?.previousElementSibling;
175
+ if (a instanceof HTMLElement && a.matches(o)) {
176
+ e.preventDefault(), a.focus({ preventScroll: !0 });
177
+ return;
178
+ }
179
+ }
180
+ if (c && i instanceof HTMLElement) {
181
+ let t = e.shiftKey ? -1 : 1, n = r(c.parent), a = n[n.indexOf(i) + t], o = u.indexOf(i), s = o >= 0 ? u[o + t] : void 0;
182
+ if (s && a && !l(a)) {
183
+ e.preventDefault(), s.focus({ preventScroll: !0 });
184
+ return;
185
+ }
186
+ }
187
+ if (!v || !y) e.preventDefault(), n.focus({ preventScroll: !0 });
188
+ else if (!(i && l(i)) && !_) e.preventDefault(), (e.shiftKey ? y : v).focus({ preventScroll: !0 });
189
+ else if (i instanceof HTMLElement && !i.shadowRoot && !g.includes(i)) e.preventDefault(), p(g, i, e.shiftKey)?.focus({ preventScroll: !0 });
190
+ else {
191
+ let t = h.findIndex((e) => e.some((e) => e === i)), n = h[t];
192
+ if (e.shiftKey && i === n?.[0]) {
193
+ e.preventDefault();
194
+ let n = h[(t <= 0 ? h.length : t) - 1];
195
+ (n[n.length - 1] ?? y).focus({ preventScroll: !0 });
196
+ } else !e.shiftKey && i === n?.[n.length - 1] && (e.preventDefault(), (h[(t + 1) % h.length][0] ?? v).focus({ preventScroll: !0 }));
197
+ }
198
+ };
199
+ return document.addEventListener("keydown", N), () => {
200
+ document.removeEventListener("keydown", N), document.removeEventListener("focusin", k), document.removeEventListener("focusout", A), document.removeEventListener("keydown", j, !0), document.removeEventListener("pointerdown", M, !0), O.disconnect(), clearTimeout(E), clearTimeout(x), clearTimeout(y);
201
+ };
202
+ }, [
203
+ n,
204
+ i,
205
+ m,
206
+ h
207
+ ]);
208
+ }
209
+ //#endregion
210
+ export { m as useFocusTrap };
@@ -0,0 +1 @@
1
+ let e=require("react");function t(t){let n=`onLoadMore`in t,r=n?t.onLoadMore:t.fetchNextPage,i=n?t.hasMore:t.hasNextPage,a=n?t.isFetching:t.isFetchingNextPage,o=n?t.scrollElementRef:void 0,s=n?void 0:t.scrollElement,c=t.rootMarginPx??(n?120:100),l=t.enabled??!0,u=(0,e.useRef)(null),d=(0,e.useCallback)(e=>{e[0]?.isIntersecting&&i&&!a&&l&&r()},[r,i,a,l]);return(0,e.useEffect)(()=>{let e=u.current;if(!l||!i||!e)return;let t=new IntersectionObserver(d,{root:o?.current??s??null,rootMargin:`${c}px`,threshold:0});return t.observe(e),()=>t.disconnect()},[d,o,s,c,l,i]),{sentinelRef:u}}exports.useInfiniteScroll=t;
@@ -0,0 +1,36 @@
1
+ import { RefObject } from 'react';
2
+ interface CommonOptions {
3
+ /** 감지 활성 여부. 기본 true. */
4
+ enabled?: boolean;
5
+ /** 경계보다 일찍 감지할 거리(px). 새 API의 기본값은 120, 기존 API는 100. */
6
+ rootMarginPx?: number;
7
+ }
8
+ /** 콜백과 스크롤 컨테이너 ref를 받는 범용 옵션. */
9
+ export interface InfiniteScrollOptions extends CommonOptions {
10
+ onLoadMore: () => void;
11
+ hasMore: boolean;
12
+ isFetching: boolean;
13
+ /** 없거나 current가 null이면 뷰포트에서 감지한다. */
14
+ scrollElementRef?: RefObject<HTMLElement | null>;
15
+ }
16
+ /** 기존 테이블 사용자와 호환되는 옵션. */
17
+ export interface LegacyInfiniteScrollOptions extends CommonOptions {
18
+ fetchNextPage: () => void;
19
+ hasNextPage: boolean;
20
+ isFetchingNextPage: boolean;
21
+ scrollElement?: HTMLElement | null;
22
+ /** 기존 API에서 실제로 사용되지 않았던 값. 선제 감지는 rootMarginPx를 쓴다. */
23
+ threshold?: number;
24
+ }
25
+ export type UseInfiniteScrollOptions = InfiniteScrollOptions | LegacyInfiniteScrollOptions;
26
+ export interface UseInfiniteScrollReturn {
27
+ /** 스크롤 영역 끝에 렌더할 감지 요소의 ref. */
28
+ sentinelRef: RefObject<HTMLDivElement | null>;
29
+ }
30
+ /**
31
+ * IntersectionObserver로 스크롤 끝의 sentinel을 감지해 다음 데이터를 요청한다.
32
+ * sentinel을 실제 스크롤 영역 끝에 렌더해야 감지되며, ref가 없으면 감시가 시작되지 않는다.
33
+ * 컨테이너를 쓰면 scrollElementRef를 지정하고, 뷰포트 스크롤이면 생략한다.
34
+ */
35
+ export declare function useInfiniteScroll(options: UseInfiniteScrollOptions): UseInfiniteScrollReturn;
36
+ export {};
@@ -0,0 +1,31 @@
1
+ import { useCallback as e, useEffect as t, useRef as n } from "react";
2
+ //#region src/hooks/useInfiniteScroll.ts
3
+ function r(r) {
4
+ let i = "onLoadMore" in r, a = i ? r.onLoadMore : r.fetchNextPage, o = i ? r.hasMore : r.hasNextPage, s = i ? r.isFetching : r.isFetchingNextPage, c = i ? r.scrollElementRef : void 0, l = i ? void 0 : r.scrollElement, u = r.rootMarginPx ?? (i ? 120 : 100), d = r.enabled ?? !0, f = n(null), p = e((e) => {
5
+ e[0]?.isIntersecting && o && !s && d && a();
6
+ }, [
7
+ a,
8
+ o,
9
+ s,
10
+ d
11
+ ]);
12
+ return t(() => {
13
+ let e = f.current;
14
+ if (!d || !o || !e) return;
15
+ let t = new IntersectionObserver(p, {
16
+ root: c?.current ?? l ?? null,
17
+ rootMargin: `${u}px`,
18
+ threshold: 0
19
+ });
20
+ return t.observe(e), () => t.disconnect();
21
+ }, [
22
+ p,
23
+ c,
24
+ l,
25
+ u,
26
+ d,
27
+ o
28
+ ]), { sentinelRef: f };
29
+ }
30
+ //#endregion
31
+ export { r as useInfiniteScroll };
@@ -0,0 +1 @@
1
+ let e=require("react");function t({rows:t,getRowId:n,isSelected:r,setSelected:i,enabled:a=!0,scrollContainerRef:o,edgeSize:s=60,maxSpeed:c=14}){let l=(0,e.useRef)(!1),u=(0,e.useRef)(!0),d=(0,e.useRef)(null),f=(0,e.useRef)(null),p=(0,e.useRef)(null),m=(0,e.useRef)(t);m.current=t;let h=(0,e.useRef)(n);h.current=n;let g=(0,e.useRef)(r);g.current=r;let _=(0,e.useRef)(i);_.current=i;let v=(0,e.useMemo)(()=>{let e=new Map;for(let n=0;n<t.length;n++){let r=t[n];r!==void 0&&e.set(h.current(r),n)}return e},[t]),y=(0,e.useRef)(v);y.current=v;let b=(0,e.useCallback)(()=>{p.current!=null&&(cancelAnimationFrame(p.current),p.current=null),f.current=null},[]),x=(0,e.useCallback)(()=>{if(p.current=null,!l.current)return;let e=o?.current,t=f.current;if(!e||t==null)return;let n=e.getBoundingClientRect(),r=0;if(t<n.top+s){let e=(n.top+s-t)/s;r=-Math.ceil(c*Math.min(1,Math.max(0,e)))}else if(t>n.bottom-s){let e=(t-(n.bottom-s))/s;r=Math.ceil(c*Math.min(1,Math.max(0,e)))}r!==0&&(e.scrollTop+=r),p.current=requestAnimationFrame(x)},[s,c,o]);(0,e.useEffect)(()=>{if(!a)return;let e=()=>{l.current=!1,d.current=null,b()},t=e=>{l.current&&(f.current=e.clientY,p.current??=requestAnimationFrame(x))};return window.addEventListener(`mouseup`,e),window.addEventListener(`mousemove`,t),()=>{window.removeEventListener(`mouseup`,e),window.removeEventListener(`mousemove`,t),l.current=!1,d.current=null,b()}},[a,b,x]);let S=e=>e==null?-1:y.current.get(e)??-1;return{onRowMouseDown:(0,e.useCallback)(e=>{if(!a)return;let t=m.current[e];t!==void 0&&(l.current=!0,d.current=h.current(t),u.current=!g.current(t),_.current(t,u.current))},[a]),onRowMouseEnter:(0,e.useCallback)(e=>{if(!a||!l.current)return;let t=m.current,n=t[e];if(n===void 0)return;let r=h.current(n);if(r===d.current)return;let i=S(d.current),o=i===-1?e:i,s=Math.min(o,e),c=Math.max(o,e);for(let e=s;e<=c;e++){let n=t[e];n!==void 0&&g.current(n)!==u.current&&_.current(n,u.current)}d.current=r},[a])}}exports.useTableDragSelection=t;
@@ -1,4 +1,4 @@
1
- interface Options<T> {
1
+ export interface UseTableDragSelectionOptions<T> {
2
2
  /** 현재 표에 그려진 row들 (순서대로). */
3
3
  rows: T[];
4
4
  /** row의 안정 식별자. */
@@ -17,7 +17,7 @@ interface Options<T> {
17
17
  maxSpeed?: number;
18
18
  }
19
19
  /**
20
- * 표의 다중 행을 드래그로 선택/해제한다 — 비스킷링크의 드래그 체크 패턴을 일반화.
20
+ * 표의 다중 행을 드래그로 선택하거나 해제한다.
21
21
  *
22
22
  * 동작:
23
23
  * - mouseDown(row 인덱스 i): 드래그 시작. row의 현재 선택 상태를 뒤집은 값을 모드로 잡고, 그 row를 그 모드로 적용
@@ -28,8 +28,7 @@ interface Options<T> {
28
28
  * 드래그 도중 데이터가 refetch 등으로 흔들려도 마지막 식별자(lastIdRef)를 기준으로 인덱스를 다시 찾아
29
29
  * 어긋남 위험을 줄인다.
30
30
  */
31
- export declare function useTableDragSelection<T>({ rows, getRowId, isSelected, setSelected, enabled, scrollContainerRef, edgeSize, maxSpeed, }: Options<T>): {
31
+ export declare function useTableDragSelection<T>({ rows, getRowId, isSelected, setSelected, enabled, scrollContainerRef, edgeSize, maxSpeed, }: UseTableDragSelectionOptions<T>): {
32
32
  onRowMouseDown: (index: number) => void;
33
33
  onRowMouseEnter: (index: number) => void;
34
34
  };
35
- export {};
@@ -1,5 +1,5 @@
1
1
  import { useCallback as e, useEffect as t, useMemo as n, useRef as r } from "react";
2
- //#region src/components/table/hooks/useTableDragSelection.ts
2
+ //#region src/hooks/useTableDragSelection.ts
3
3
  function i({ rows: i, getRowId: a, isSelected: o, setSelected: s, enabled: c = !0, scrollContainerRef: l, edgeSize: u = 60, maxSpeed: d = 14 }) {
4
4
  let f = r(!1), p = r(!0), m = r(null), h = r(null), g = r(null), _ = r(i);
5
5
  _.current = i;
@@ -11,7 +11,10 @@ function i({ rows: i, getRowId: a, isSelected: o, setSelected: s, enabled: c = !
11
11
  b.current = s;
12
12
  let x = n(() => {
13
13
  let e = /* @__PURE__ */ new Map();
14
- for (let t = 0; t < i.length; t++) e.set(a(i[t]), t);
14
+ for (let t = 0; t < i.length; t++) {
15
+ let n = i[t];
16
+ n !== void 0 && e.set(v.current(n), t);
17
+ }
15
18
  return e;
16
19
  }, [i]), S = r(x);
17
20
  S.current = x;
@@ -43,7 +46,7 @@ function i({ rows: i, getRowId: a, isSelected: o, setSelected: s, enabled: c = !
43
46
  f.current && (h.current = e.clientY, g.current ??= requestAnimationFrame(w));
44
47
  };
45
48
  return window.addEventListener("mouseup", e), window.addEventListener("mousemove", t), () => {
46
- window.removeEventListener("mouseup", e), window.removeEventListener("mousemove", t), C();
49
+ window.removeEventListener("mouseup", e), window.removeEventListener("mousemove", t), f.current = !1, m.current = null, C();
47
50
  };
48
51
  }, [
49
52
  c,
@@ -55,18 +58,18 @@ function i({ rows: i, getRowId: a, isSelected: o, setSelected: s, enabled: c = !
55
58
  onRowMouseDown: e((e) => {
56
59
  if (!c) return;
57
60
  let t = _.current[e];
58
- t && (f.current = !0, m.current = v.current(t), p.current = !y.current(t), b.current(t, p.current));
61
+ t !== void 0 && (f.current = !0, m.current = v.current(t), p.current = !y.current(t), b.current(t, p.current));
59
62
  }, [c]),
60
63
  onRowMouseEnter: e((e) => {
61
64
  if (!c || !f.current) return;
62
65
  let t = _.current, n = t[e];
63
- if (!n) return;
66
+ if (n === void 0) return;
64
67
  let r = v.current(n);
65
68
  if (r === m.current) return;
66
69
  let i = T(m.current), a = i === -1 ? e : i, o = Math.min(a, e), s = Math.max(a, e);
67
70
  for (let e = o; e <= s; e++) {
68
71
  let n = t[e];
69
- n && y.current(n) !== p.current && b.current(n, p.current);
72
+ n !== void 0 && y.current(n) !== p.current && b.current(n, p.current);
70
73
  }
71
74
  m.current = r;
72
75
  }, [c])
@@ -0,0 +1 @@
1
+ let e=require("@tanstack/react-virtual");function t({scrollElementRef:t,scrollElement:n,count:r,estimateSize:i=48,overscan:a=5}){let o=(0,e.useVirtualizer)({count:r,getScrollElement:()=>n??t.current,estimateSize:()=>i,overscan:a,enabled:r>0}),s=o.getVirtualItems(),c=o.getTotalSize();return{virtualizer:o,virtualItems:s,totalSize:c,topSpacerHeight:s.length>0?s[0]?.start??0:0,bottomSpacerHeight:s.length>0?c-(s[s.length-1]?.end??0):0}}exports.useVirtualRows=t;
@@ -0,0 +1,56 @@
1
+ import { Virtualizer, VirtualItem } from '@tanstack/react-virtual';
2
+ import { RefObject } from 'react';
3
+ export interface UseVirtualRowsOptions {
4
+ /**
5
+ * 스크롤 컨테이너 ref.
6
+ * null이면 스크롤 영역을 아직 측정할 수 없다.
7
+ */
8
+ scrollElementRef: RefObject<HTMLElement | null>;
9
+ /** 기존 테이블의 직접 전달 요소. 없으면 scrollElementRef를 사용한다. */
10
+ scrollElement?: HTMLElement | null;
11
+ /**
12
+ * 가상화할 행 수.
13
+ */
14
+ count: number;
15
+ /**
16
+ * 예상 행 높이(px). 실제 행 높이와 다르면 virtualizer가 동적 보정한다.
17
+ * @default 48
18
+ */
19
+ estimateSize?: number;
20
+ /**
21
+ * 뷰포트 밖 미리 렌더할 행 수(위아래 각각).
22
+ * 스크롤이 빠를수록 높은 값이 유리하나, 과하면 DOM 노드 수 증가.
23
+ * @default 5
24
+ */
25
+ overscan?: number;
26
+ }
27
+ export interface UseVirtualRowsReturn {
28
+ /**
29
+ * @tanstack/react-virtual 인스턴스.
30
+ * measureElement(ref 콜백), scrollToIndex 등 고급 API 접근용.
31
+ */
32
+ virtualizer: Virtualizer<HTMLElement, Element>;
33
+ /**
34
+ * 현재 렌더해야 할 가상 행 목록.
35
+ * 각 아이템의 `index`로 원본 데이터 배열에 접근한다.
36
+ */
37
+ virtualItems: VirtualItem[];
38
+ /**
39
+ * 전체 스크롤 영역 높이(px).
40
+ * 스크롤 컨테이너 자식의 `height` 또는 `minHeight`에 적용한다.
41
+ */
42
+ totalSize: number;
43
+ /**
44
+ * 첫 번째 가상 행 위의 빈 공간 높이(px).
45
+ * `<tr style={{ height: topSpacerHeight }} />` 또는 paddingTop에 사용.
46
+ */
47
+ topSpacerHeight: number;
48
+ /**
49
+ * 마지막 가상 행 아래의 빈 공간 높이(px).
50
+ * `<tr style={{ height: bottomSpacerHeight }} />` 또는 paddingBottom에 사용.
51
+ */
52
+ bottomSpacerHeight: number;
53
+ }
54
+ /** 행 수와 스크롤 요소로 가상 항목과 스페이서를 계산한다.
55
+ * 스크롤 영역에 고정 높이와 overflow가 필요하다. 고급 측정은 반환된 virtualizer를 사용한다. */
56
+ export declare function useVirtualRows({ scrollElementRef, scrollElement, count, estimateSize, overscan, }: UseVirtualRowsOptions): UseVirtualRowsReturn;
@@ -0,0 +1,20 @@
1
+ import { useVirtualizer as e } from "@tanstack/react-virtual";
2
+ //#region src/hooks/useVirtualRows.ts
3
+ function t({ scrollElementRef: t, scrollElement: n, count: r, estimateSize: i = 48, overscan: a = 5 }) {
4
+ let o = e({
5
+ count: r,
6
+ getScrollElement: () => n ?? t.current,
7
+ estimateSize: () => i,
8
+ overscan: a,
9
+ enabled: r > 0
10
+ }), s = o.getVirtualItems(), c = o.getTotalSize();
11
+ return {
12
+ virtualizer: o,
13
+ virtualItems: s,
14
+ totalSize: c,
15
+ topSpacerHeight: s.length > 0 ? s[0]?.start ?? 0 : 0,
16
+ bottomSpacerHeight: s.length > 0 ? c - (s[s.length - 1]?.end ?? 0) : 0
17
+ };
18
+ }
19
+ //#endregion
20
+ export { t as useVirtualRows };
package/dist/hooks.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./hooks/useFillEmptyRows.cjs"),t=require("./hooks/useTableDragSelection.cjs"),n=require("./hooks/useVirtualRows.cjs"),r=require("./hooks/useInfiniteScroll.cjs"),i=require("./hooks/useClickOutside.cjs"),a=require("./hooks/useMediaQuery.cjs"),o=require("./hooks/useBottomSheetDrag.cjs"),s=require("./hooks/useScrollLock.cjs"),c=require("./hooks/useFocusTrap.cjs"),l=require("./hooks/useAwaitableOverlay.cjs"),u=require("./components/stepper/use-stepper.cjs");exports.MOBILE_MEDIA_QUERY=a.MOBILE_MEDIA_QUERY,exports.useAwaitableOverlay=l.useAwaitableOverlay,exports.useBottomSheetDrag=o.useBottomSheetDrag,exports.useClickOutside=i.useClickOutside,exports.useFillEmptyRows=e.useFillEmptyRows,exports.useFocusTrap=c.useFocusTrap,exports.useInfiniteScroll=r.useInfiniteScroll,exports.useIsMobile=a.useIsMobile,exports.useMediaQuery=a.useMediaQuery,exports.useScrollLock=s.useScrollLock,exports.useStepper=u.useStepper,exports.useTableDragSelection=t.useTableDragSelection,exports.useVirtualRows=n.useVirtualRows;
package/dist/hooks.esm.js CHANGED
@@ -1,5 +1,12 @@
1
- import { useClickOutside as e } from "./hooks/useClickOutside.esm.js";
2
- import { MOBILE_MEDIA_QUERY as t, useIsMobile as n, useMediaQuery as r } from "./hooks/useMediaQuery.esm.js";
3
- import { useBottomSheetDrag as i } from "./hooks/useBottomSheetDrag.esm.js";
4
- import { useScrollLock as a } from "./hooks/useScrollLock.esm.js";
5
- export { t as MOBILE_MEDIA_QUERY, i as useBottomSheetDrag, e as useClickOutside, n as useIsMobile, r as useMediaQuery, a as useScrollLock };
1
+ import { useFillEmptyRows as e } from "./hooks/useFillEmptyRows.esm.js";
2
+ import { useTableDragSelection as t } from "./hooks/useTableDragSelection.esm.js";
3
+ import { useVirtualRows as n } from "./hooks/useVirtualRows.esm.js";
4
+ import { useInfiniteScroll as r } from "./hooks/useInfiniteScroll.esm.js";
5
+ import { useClickOutside as i } from "./hooks/useClickOutside.esm.js";
6
+ import { MOBILE_MEDIA_QUERY as a, useIsMobile as o, useMediaQuery as s } from "./hooks/useMediaQuery.esm.js";
7
+ import { useBottomSheetDrag as c } from "./hooks/useBottomSheetDrag.esm.js";
8
+ import { useScrollLock as l } from "./hooks/useScrollLock.esm.js";
9
+ import { useFocusTrap as u } from "./hooks/useFocusTrap.esm.js";
10
+ import { useAwaitableOverlay as d } from "./hooks/useAwaitableOverlay.esm.js";
11
+ import { useStepper as f } from "./components/stepper/use-stepper.esm.js";
12
+ export { a as MOBILE_MEDIA_QUERY, d as useAwaitableOverlay, c as useBottomSheetDrag, i as useClickOutside, e as useFillEmptyRows, u as useFocusTrap, r as useInfiniteScroll, o as useIsMobile, s as useMediaQuery, l as useScrollLock, f as useStepper, t as useTableDragSelection, n as useVirtualRows };
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require("./_virtual/_rolldown/runtime.cjs");/* empty css */const e=require("./lib/utils.cjs"),t=require("./components/button/Button.cjs"),n=require("./components/badge/Badge.cjs"),r=require("./components/switch/Switch.cjs"),i=require("./components/checkbox/Checkbox.cjs"),ee=require("./components/input/use-input-format.cjs"),a=require("./components/input/Input.cjs"),te=require("./components/input/PasswordInput.cjs"),ne=require("./components/input/DecimalInput.cjs"),re=require("./components/input/format.cjs"),ie=require("./components/textarea/Textarea.cjs"),ae=require("./components/collapsible/Collapsible.cjs"),oe=require("./components/animated-height/AnimatedHeight.cjs"),se=require("./components/tooltip/Tooltip.cjs"),ce=require("./components/info-tooltip/InfoTooltip.cjs"),le=require("./components/popover/Popover.cjs"),o=require("./components/loading-spinner/LoadingSpinner.cjs"),s=require("./components/select/Select.cjs"),c=require("./components/select/MultiSelect.cjs"),l=require("./components/table-checkbox/TableCheckbox.cjs"),u=require("./hooks/useFillEmptyRows.cjs"),d=require("./hooks/useTableDragSelection.cjs"),f=require("./components/table/hooks/useTableSort.cjs"),p=require("./components/table/table.cjs"),m=require("./components/table/components/Pagination.cjs"),h=require("./components/table/paginated-table.cjs"),g=require("./components/table/mini-table.cjs"),_=require("./components/table/paginated-mini-table.cjs"),v=require("./components/table/accordion-table.cjs"),y=require("./hooks/useVirtualRows.cjs"),b=require("./components/table/hooks/useVirtualTable.cjs"),x=require("./hooks/useInfiniteScroll.cjs"),S=require("./hooks/useClickOutside.cjs"),C=require("./hooks/useMediaQuery.cjs"),w=require("./hooks/useBottomSheetDrag.cjs"),T=require("./hooks/useScrollLock.cjs"),E=require("./hooks/useFocusTrap.cjs"),D=require("./hooks/useAwaitableOverlay.cjs"),O=require("./components/stepper/use-stepper.cjs"),k=require("./lib/overlay-stack.cjs"),A=require("./lib/Portal.cjs"),j=require("./components/modal/Modal.cjs"),M=require("./components/modal/ModalSubView.cjs"),N=require("./components/modal/StandardModal.cjs"),P=require("./components/table/components/ColumnSettingsTable.cjs"),F=require("./components/table/components/ColumnPresetSelector.cjs"),I=require("./lib/column-preset-storage.cjs"),L=require("./components/table/hooks/useColumnPresets.cjs"),R=require("./components/table/hooks/useTableColumnState.cjs"),z=require("./components/page-title/PageTitle.cjs"),B=require("./components/toolbar/Toolbar.cjs"),V=require("./components/table-page-layout/TablePageLayout.cjs"),H=require("./components/date-picker/date-range-picker.cjs"),U=require("./components/date-picker/date-picker.cjs"),W=require("./components/date-picker/month-picker.cjs"),G=require("./components/time-picker/time-picker.cjs"),ue=require("./components/month-range-picker/month-range-picker.cjs"),de=require("./components/date-input/DateInput.cjs"),K=require("./components/search-box/parseDateRange.cjs"),fe=require("./components/search-box/SearchBox.cjs"),q=require("./components/search-box/parseSearchValues.cjs"),J=require("./components/search-box/dateRangePresets.cjs"),Y=require("./components/action-toast/ActionToast.cjs"),pe=require("./components/toast/ToastProvider.cjs"),me=require("./components/drawer/Drawer.cjs"),X=require("./components/radio/Radio.cjs"),he=require("./components/segmented-control/SegmentedControl.cjs"),ge=require("./components/progress/Progress.cjs"),_e=require("./components/skeleton/Skeleton.cjs"),ve=require("./components/field/Field.cjs"),ye=require("./components/field/FieldMessage.cjs"),Z=require("./components/error-boundary/chunk-reload.cjs"),be=require("./components/error-boundary/ErrorBoundary.cjs"),xe=require("./components/typing-dots/TypingDots.cjs"),Q=require("./components/typewriter-text/TypewriterText.cjs"),$=require("./components/stepper/Stepper.cjs"),Se=require("./components/segmented-code-input/SegmentedCodeInput.cjs"),Ce=require("./components/copyable-text/CopyableText.cjs"),we=require("./components/tabs/Tabs.cjs"),Te=require("./components/slider/Slider.cjs");let Ee=require("react-hot-toast");exports.AccordionTable=v.AccordionTable,exports.AnimatedHeight=oe.AnimatedHeight,exports.Badge=n.Badge,exports.Button=t.Button,exports.CHUNK_RELOAD_TTL_MS=Z.CHUNK_RELOAD_TTL_MS,exports.Checkbox=i.Checkbox,exports.CheckboxCircle=i.CheckboxCircle,exports.CheckboxLine=i.CheckboxLine,exports.CheckboxLineTransparent=i.CheckboxLineTransparent,exports.Collapsible=ae.Collapsible,exports.ColumnPresetSelector=F.ColumnPresetSelector,exports.ColumnPresetStorage=I.ColumnPresetStorage,exports.ColumnSettingsTable=P.ColumnSettingsTable,exports.CopyableText=Ce.CopyableText,exports.DEFAULT_DATE_RANGE_PRESETS=J.DEFAULT_DATE_RANGE_PRESETS,exports.DateInput=de.DateInput,exports.DatePicker=U.DatePicker,exports.DatePickerBody=U.DatePickerBody,exports.DateRangePicker=H.DateRangePicker,exports.DecimalInput=ne.DecimalInput,exports.Drawer=me.Drawer,exports.ErrorBoundary=be.ErrorBoundary,exports.Field=ve.Field,exports.FieldMessage=ye.FieldMessage,exports.InfoTooltip=ce.InfoTooltip,exports.InlineSpinner=o.InlineSpinner,exports.Input=a.Input,exports.LoadingSpinner=o.LoadingSpinner,exports.MOBILE_MEDIA_QUERY=C.MOBILE_MEDIA_QUERY,exports.MiniTable=g.MiniTable,exports.Modal=j.Modal,exports.ModalSubView=M.ModalSubView,exports.MonthPicker=W.MonthPicker,exports.MonthRangePicker=ue.MonthRangePicker,exports.MultiSelect=c.MultiSelect,exports.PageHeader=V.PageHeader,exports.PageTitle=z.PageTitle,exports.PaginatedMiniTable=_.PaginatedMiniTable,exports.PaginatedTable=h.PaginatedTable,exports.Pagination=m.Pagination,exports.PasswordInput=te.PasswordInput,exports.Popover=le.Popover,exports.Portal=A.Portal,exports.Progress=ge.Progress,exports.Radio=X.Radio,exports.RadioGroup=X.RadioGroup,exports.RadioItem=X.RadioItem,exports.SearchBox=fe.SearchBox,exports.SegmentedCodeInput=Se.SegmentedCodeInput,exports.SegmentedControl=he.SegmentedControl,exports.Select=s.Select,exports.Skeleton=_e.Skeleton,exports.Slider=Te.Slider,exports.Spinner=o.Spinner,exports.StandardModal=N.StandardModal,exports.Stepper=$.Stepper,exports.StepperContent=$.StepperContent,exports.Switch=r.Switch,exports.Table=p.Table,exports.TableCard=V.TableCard,exports.TableCheckbox=l.TableCheckbox,exports.TablePageLayout=V.TablePageLayout,exports.Tabs=we.Tabs,exports.Textarea=ie.Textarea,exports.TimeInput=G.TimeInput,exports.TimePicker=G.TimePicker,exports.ToastProvider=pe.ToastProvider,exports.Toolbar=B.Toolbar,exports.Tooltip=se.Tooltip,exports.TypewriterText=Q.TypewriterText,exports.TypingDots=xe.TypingDots,exports.clearChunkReloadGuard=Z.clearChunkReloadGuard,exports.cn=e.cn,exports.dismissActionToast=Y.dismissActionToast,exports.formatYearMonth=e.formatYearMonth,exports.getTodayDateRange=J.getTodayDateRange,exports.getTodayDateRangeValue=J.getTodayDateRangeValue,exports.inputFormats=re.inputFormats,exports.isActionToastActive=Y.isActionToastActive,exports.isChunkLoadError=Z.isChunkLoadError,exports.listenForChunkPreloadError=Z.listenForChunkPreloadError,exports.overlayStack=k.overlayStack,exports.parseDateRangeValue=K.parseDateRangeValue,exports.parseMultiSelectValue=q.parseMultiSelectValue,exports.parseSearchValues=q.parseSearchValues,exports.reloadAfterClearingChunkGuard=Z.reloadAfterClearingChunkGuard,exports.reloadOnceForChunkError=Z.reloadOnceForChunkError,exports.serializeDateRangeValue=K.serializeDateRangeValue,exports.showActionToast=Y.showActionToast,Object.defineProperty(exports,"toast",{enumerable:!0,get:function(){return Ee.default}}),exports.tryAcquireChunkReloadGuard=Z.tryAcquireChunkReloadGuard,exports.useAwaitableOverlay=D.useAwaitableOverlay,exports.useBottomSheetDrag=w.useBottomSheetDrag,exports.useClickOutside=S.useClickOutside,exports.useColumnPresets=L.useColumnPresets,exports.useFillEmptyRows=u.useFillEmptyRows,exports.useFocusTrap=E.useFocusTrap,exports.useHeaderButtonSize=V.useHeaderButtonSize,exports.useInfiniteScroll=x.useInfiniteScroll,exports.useInputFormat=ee.useInputFormat,exports.useIsMobile=C.useIsMobile,exports.useMediaQuery=C.useMediaQuery,exports.useScrollLock=T.useScrollLock,exports.useStepper=O.useStepper,exports.useTableColumnState=R.useTableColumnState,exports.useTableDragSelection=d.useTableDragSelection,exports.useTableSort=f.useTableSort,exports.useVirtualRows=y.useVirtualRows,exports.useVirtualTable=b.useVirtualTable;
@@ -0,0 +1,42 @@
1
+ export * from './components/button/index.js';
2
+ export * from './components/badge/index.js';
3
+ export * from './components/switch/index.js';
4
+ export * from './components/checkbox/index.js';
5
+ export * from './components/input/index.js';
6
+ export * from './components/textarea/index.js';
7
+ export * from './components/collapsible/index.js';
8
+ export * from './components/animated-height/index.js';
9
+ export * from './components/tooltip/index.js';
10
+ export * from './components/info-tooltip/index.js';
11
+ export * from './components/popover/index.js';
12
+ export * from './components/loading-spinner/index.js';
13
+ export * from './components/select/index.js';
14
+ export * from './components/table-checkbox/index.js';
15
+ export * from './components/table/index.js';
16
+ export * from './components/page-title/index.js';
17
+ export * from './components/toolbar/index.js';
18
+ export * from './components/table-page-layout/index.js';
19
+ export * from './components/date-picker/index.js';
20
+ export * from './components/time-picker/index.js';
21
+ export * from './components/month-range-picker/index.js';
22
+ export * from './components/date-input/index.js';
23
+ export * from './components/search-box/index.js';
24
+ export * from './components/action-toast/index.js';
25
+ export * from './components/toast/index.js';
26
+ export * from './components/modal/index.js';
27
+ export * from './components/drawer/index.js';
28
+ export * from './hooks/index.js';
29
+ export * from './lib/index.js';
30
+ export * from './components/radio/index.js';
31
+ export * from './components/segmented-control/index.js';
32
+ export * from './components/progress/index.js';
33
+ export * from './components/skeleton/index.js';
34
+ export * from './components/field/index.js';
35
+ export * from './components/error-boundary/index.js';
36
+ export * from './components/typing-dots/index.js';
37
+ export * from './components/typewriter-text/index.js';
38
+ export * from './components/stepper/index.js';
39
+ export * from './components/segmented-code-input/index.js';
40
+ export * from './components/copyable-text/index.js';
41
+ export * from './components/tabs/index.js';
42
+ export * from './components/slider/index.js';