@thewrong/ui 0.1.0 → 0.3.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 (514) hide show
  1. package/README.md +25 -4
  2. package/dist/_virtual/_rolldown/runtime.cjs +1 -0
  3. package/dist/components/_shared/form-size-tokens.cjs +1 -0
  4. package/dist/{src/components → components}/_shared/form-size-tokens.d.ts +3 -1
  5. package/dist/components/_shared/form-size-tokens.esm.js +34 -0
  6. package/dist/components/action-toast/ActionToast.cjs +1 -0
  7. package/dist/{src/components → components}/action-toast/ActionToast.d.ts +17 -3
  8. package/dist/components/action-toast/ActionToast.esm.js +238 -0
  9. package/dist/{src/components → components}/action-toast/index.d.ts +2 -2
  10. package/dist/components/animated-height/AnimatedHeight.cjs +1 -0
  11. package/dist/components/animated-height/AnimatedHeight.esm.js +36 -0
  12. package/dist/components/animated-height/index.d.ts +2 -0
  13. package/dist/components/badge/Badge.cjs +1 -0
  14. package/dist/{src/components → components}/badge/Badge.d.ts +1 -1
  15. package/dist/components/badge/Badge.esm.js +26 -0
  16. package/dist/components/badge/index.d.ts +2 -0
  17. package/dist/components/badge/utils.cjs +1 -0
  18. package/dist/{src/components → components}/badge/utils.d.ts +1 -1
  19. package/dist/components/badge/utils.esm.js +38 -0
  20. package/dist/components/button/Button.cjs +1 -0
  21. package/dist/components/button/Button.d.ts +19 -0
  22. package/dist/components/button/Button.esm.js +77 -0
  23. package/dist/{src/components → components}/button/index.d.ts +2 -2
  24. package/dist/components/button/utils.cjs +1 -0
  25. package/dist/{src/components → components}/button/utils.d.ts +1 -1
  26. package/dist/components/button/utils.esm.js +38 -0
  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 +69 -0
  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 +44 -0
  34. package/dist/components/collapsible/Collapsible.cjs +1 -0
  35. package/dist/components/collapsible/Collapsible.esm.js +20 -0
  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 +40 -0
  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 +183 -0
  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 +238 -0
  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 +103 -0
  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 +143 -0
  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/{src/components → components}/info-tooltip/InfoTooltip.d.ts +7 -0
  80. package/dist/components/info-tooltip/InfoTooltip.esm.js +25 -0
  81. package/dist/components/info-tooltip/index.d.ts +2 -0
  82. package/dist/components/input/DecimalInput.cjs +1 -0
  83. package/dist/components/input/DecimalInput.d.ts +18 -0
  84. package/dist/components/input/DecimalInput.esm.js +40 -0
  85. package/dist/components/input/Input.cjs +1 -0
  86. package/dist/{src/components → components}/input/Input.d.ts +1 -1
  87. package/dist/components/input/Input.esm.js +89 -0
  88. package/dist/components/input/PasswordInput.cjs +1 -0
  89. package/dist/{src/components → components}/input/PasswordInput.d.ts +1 -1
  90. package/dist/components/input/PasswordInput.esm.js +29 -0
  91. package/dist/components/input/decimal-validation.cjs +1 -0
  92. package/dist/components/input/decimal-validation.d.ts +7 -0
  93. package/dist/components/input/decimal-validation.esm.js +66 -0
  94. package/dist/components/input/format.cjs +1 -0
  95. package/dist/{src/components → components}/input/format.d.ts +17 -1
  96. package/dist/components/input/format.esm.js +44 -0
  97. package/dist/components/input/index.d.ts +7 -0
  98. package/dist/{src/components → components}/input/types.d.ts +2 -2
  99. package/dist/components/input/use-input-format.cjs +1 -0
  100. package/dist/components/input/use-input-format.d.ts +43 -0
  101. package/dist/components/input/use-input-format.esm.js +75 -0
  102. package/dist/components/input/utils.cjs +1 -0
  103. package/dist/{src/components → components}/input/utils.d.ts +1 -1
  104. package/dist/components/input/utils.esm.js +24 -0
  105. package/dist/components/loading-spinner/LoadingSpinner.cjs +1 -0
  106. package/dist/{src/components → components}/loading-spinner/LoadingSpinner.d.ts +7 -0
  107. package/dist/components/loading-spinner/LoadingSpinner.esm.js +48 -0
  108. package/dist/components/loading-spinner/index.d.ts +2 -0
  109. package/dist/components/modal/Modal.cjs +1 -0
  110. package/dist/{src/components → components}/modal/Modal.d.ts +34 -2
  111. package/dist/components/modal/Modal.esm.js +167 -0
  112. package/dist/components/modal/ModalFocusTrapContext.cjs +1 -0
  113. package/dist/components/modal/ModalFocusTrapContext.d.ts +18 -0
  114. package/dist/components/modal/ModalFocusTrapContext.esm.js +36 -0
  115. package/dist/components/modal/ModalSubView.cjs +1 -0
  116. package/dist/{src/components → components}/modal/ModalSubView.d.ts +6 -1
  117. package/dist/components/modal/ModalSubView.esm.js +111 -0
  118. package/dist/components/modal/StandardModal.cjs +1 -0
  119. package/dist/{src/components → components}/modal/StandardModal.d.ts +8 -2
  120. package/dist/components/modal/StandardModal.esm.js +57 -0
  121. package/dist/components/modal/index.d.ts +6 -0
  122. package/dist/components/month-range-picker/index.d.ts +2 -0
  123. package/dist/components/month-range-picker/month-range-picker.cjs +1 -0
  124. package/dist/components/month-range-picker/month-range-picker.d.ts +16 -0
  125. package/dist/components/month-range-picker/month-range-picker.esm.js +227 -0
  126. package/dist/components/month-range-picker/month-range-utils.cjs +1 -0
  127. package/dist/components/month-range-picker/month-range-utils.d.ts +9 -0
  128. package/dist/components/month-range-picker/month-range-utils.esm.js +28 -0
  129. package/dist/components/page-title/PageTitle.cjs +1 -0
  130. package/dist/components/page-title/PageTitle.esm.js +17 -0
  131. package/dist/components/page-title/index.d.ts +1 -0
  132. package/dist/components/popover/Popover.cjs +1 -0
  133. package/dist/{src/components → components}/popover/Popover.d.ts +19 -1
  134. package/dist/components/popover/Popover.esm.js +57 -0
  135. package/dist/components/popover/index.d.ts +2 -0
  136. package/dist/components/progress/Progress.cjs +1 -0
  137. package/dist/components/progress/Progress.d.ts +13 -0
  138. package/dist/components/progress/Progress.esm.js +24 -0
  139. package/dist/components/progress/index.d.ts +2 -0
  140. package/dist/components/progress/types.d.ts +13 -0
  141. package/dist/components/radio/Radio.cjs +1 -0
  142. package/dist/components/radio/Radio.d.ts +31 -0
  143. package/dist/components/radio/Radio.esm.js +118 -0
  144. package/dist/components/radio/index.d.ts +2 -0
  145. package/dist/components/radio/types.d.ts +24 -0
  146. package/dist/components/search-box/ExactMatchToggle.cjs +1 -0
  147. package/dist/components/search-box/ExactMatchToggle.esm.js +28 -0
  148. package/dist/components/search-box/SearchBox.cjs +1 -0
  149. package/dist/{src/components → components}/search-box/SearchBox.d.ts +1 -1
  150. package/dist/components/search-box/SearchBox.esm.js +155 -0
  151. package/dist/components/search-box/SearchBoxChips.cjs +1 -0
  152. package/dist/components/search-box/SearchBoxChips.esm.js +36 -0
  153. package/dist/components/search-box/SearchBoxDateRange.cjs +1 -0
  154. package/dist/{src/components → components}/search-box/SearchBoxDateRange.d.ts +1 -1
  155. package/dist/components/search-box/SearchBoxDateRange.esm.js +60 -0
  156. package/dist/components/search-box/SearchBoxDateSingle.cjs +1 -0
  157. package/dist/{src/components → components}/search-box/SearchBoxDateSingle.d.ts +1 -1
  158. package/dist/components/search-box/SearchBoxDateSingle.esm.js +39 -0
  159. package/dist/components/search-box/SearchBoxField.cjs +1 -0
  160. package/dist/{src/components → components}/search-box/SearchBoxField.d.ts +1 -1
  161. package/dist/components/search-box/SearchBoxField.esm.js +48 -0
  162. package/dist/components/search-box/SearchBoxFloatingInput.cjs +1 -0
  163. package/dist/components/search-box/SearchBoxFloatingInput.esm.js +43 -0
  164. package/dist/components/search-box/SearchBoxFloatingSelect.cjs +1 -0
  165. package/dist/{src/components → components}/search-box/SearchBoxFloatingSelect.d.ts +1 -1
  166. package/dist/components/search-box/SearchBoxFloatingSelect.esm.js +79 -0
  167. package/dist/components/search-box/SearchBoxMonth.cjs +1 -0
  168. package/dist/components/search-box/SearchBoxMonth.esm.js +36 -0
  169. package/dist/components/search-box/SearchBoxMultiSelect.cjs +1 -0
  170. package/dist/{src/components → components}/search-box/SearchBoxMultiSelect.d.ts +2 -2
  171. package/dist/components/search-box/SearchBoxMultiSelect.esm.js +83 -0
  172. package/dist/components/search-box/SearchBoxSheetContext.cjs +1 -0
  173. package/dist/components/search-box/SearchBoxSheetContext.esm.js +5 -0
  174. package/dist/components/search-box/dateRangePresets.cjs +1 -0
  175. package/dist/{src/components → components}/search-box/dateRangePresets.d.ts +1 -1
  176. package/dist/components/search-box/dateRangePresets.esm.js +59 -0
  177. package/dist/{src/components → components}/search-box/index.d.ts +5 -5
  178. package/dist/components/search-box/parseDateRange.cjs +1 -0
  179. package/dist/components/search-box/parseDateRange.esm.js +21 -0
  180. package/dist/components/search-box/parseSearchValues.cjs +1 -0
  181. package/dist/{src/components → components}/search-box/parseSearchValues.d.ts +2 -2
  182. package/dist/components/search-box/parseSearchValues.esm.js +15 -0
  183. package/dist/{src/components → components}/search-box/types.d.ts +1 -1
  184. package/dist/components/search-box/useSearchBoxState.cjs +1 -0
  185. package/dist/{src/components → components}/search-box/useSearchBoxState.d.ts +1 -1
  186. package/dist/components/search-box/useSearchBoxState.esm.js +87 -0
  187. package/dist/components/segmented-code-input/SegmentedCodeInput.cjs +1 -0
  188. package/dist/components/segmented-code-input/SegmentedCodeInput.d.ts +49 -0
  189. package/dist/components/segmented-code-input/SegmentedCodeInput.esm.js +87 -0
  190. package/dist/components/segmented-code-input/code-utils.cjs +1 -0
  191. package/dist/components/segmented-code-input/code-utils.d.ts +4 -0
  192. package/dist/components/segmented-code-input/code-utils.esm.js +9 -0
  193. package/dist/components/segmented-code-input/index.d.ts +2 -0
  194. package/dist/components/segmented-control/SegmentedControl.cjs +1 -0
  195. package/dist/components/segmented-control/SegmentedControl.d.ts +27 -0
  196. package/dist/components/segmented-control/SegmentedControl.esm.js +84 -0
  197. package/dist/components/segmented-control/index.d.ts +2 -0
  198. package/dist/components/segmented-control/types.d.ts +30 -0
  199. package/dist/components/select/MultiSelect.cjs +1 -0
  200. package/dist/{src/components → components}/select/MultiSelect.d.ts +11 -3
  201. package/dist/components/select/MultiSelect.esm.js +279 -0
  202. package/dist/components/select/Select.cjs +1 -0
  203. package/dist/{src/components → components}/select/Select.d.ts +16 -2
  204. package/dist/components/select/Select.esm.js +320 -0
  205. package/dist/components/select/index.d.ts +4 -0
  206. package/dist/components/select/loading-dots.cjs +1 -0
  207. package/dist/components/select/loading-dots.d.ts +3 -0
  208. package/dist/components/select/loading-dots.esm.js +24 -0
  209. package/dist/components/select/panel-width.cjs +1 -0
  210. package/dist/components/select/panel-width.d.ts +2 -0
  211. package/dist/components/select/panel-width.esm.js +7 -0
  212. package/dist/{src/components → components}/select/utils.d.ts +1 -1
  213. package/dist/components/skeleton/Skeleton.cjs +1 -0
  214. package/dist/components/skeleton/Skeleton.d.ts +6 -0
  215. package/dist/components/skeleton/Skeleton.esm.js +12 -0
  216. package/dist/components/skeleton/index.d.ts +2 -0
  217. package/dist/components/skeleton/types.d.ts +2 -0
  218. package/dist/components/stepper/Stepper.cjs +1 -0
  219. package/dist/components/stepper/Stepper.d.ts +51 -0
  220. package/dist/components/stepper/Stepper.esm.js +142 -0
  221. package/dist/components/stepper/index.d.ts +4 -0
  222. package/dist/components/stepper/use-stepper.cjs +1 -0
  223. package/dist/components/stepper/use-stepper.d.ts +43 -0
  224. package/dist/components/stepper/use-stepper.esm.js +57 -0
  225. package/dist/components/switch/Switch.cjs +1 -0
  226. package/dist/{src/components → components}/switch/Switch.d.ts +1 -1
  227. package/dist/components/switch/Switch.esm.js +37 -0
  228. package/dist/components/switch/index.d.ts +2 -0
  229. package/dist/components/switch/utils.cjs +1 -0
  230. package/dist/{src/components → components}/switch/utils.d.ts +2 -2
  231. package/dist/components/switch/utils.esm.js +40 -0
  232. package/dist/components/table/accordion-table.cjs +1 -0
  233. package/dist/{src/components → components}/table/accordion-table.d.ts +1 -1
  234. package/dist/components/table/accordion-table.esm.js +418 -0
  235. package/dist/components/table/column-group-utils.cjs +1 -0
  236. package/dist/{src/components → components}/table/column-group-utils.d.ts +1 -1
  237. package/dist/components/table/column-group-utils.esm.js +53 -0
  238. package/dist/components/table/components/ColumnPresetSelector.cjs +1 -0
  239. package/dist/{src/components → components}/table/components/ColumnPresetSelector.d.ts +2 -2
  240. package/dist/components/table/components/ColumnPresetSelector.esm.js +166 -0
  241. package/dist/components/table/components/ColumnSettingsTable.cjs +1 -0
  242. package/dist/{src/components → components}/table/components/ColumnSettingsTable.d.ts +1 -1
  243. package/dist/components/table/components/ColumnSettingsTable.esm.js +194 -0
  244. package/dist/components/table/components/KeyboardNavButton.cjs +1 -0
  245. package/dist/components/table/components/KeyboardNavButton.esm.js +24 -0
  246. package/dist/components/table/components/PageJumpInput.cjs +1 -0
  247. package/dist/components/table/components/PageJumpInput.esm.js +54 -0
  248. package/dist/components/table/components/Pagination.cjs +1 -0
  249. package/dist/components/table/components/Pagination.esm.js +163 -0
  250. package/dist/components/table/components/PaginationFooter.cjs +1 -0
  251. package/dist/components/table/components/PaginationFooter.esm.js +80 -0
  252. package/dist/components/table/components/SortableHeaderCell.cjs +1 -0
  253. package/dist/components/table/components/SortableHeaderCell.esm.js +30 -0
  254. package/dist/components/table/hooks/useColumnPresets.cjs +1 -0
  255. package/dist/{src/components → components}/table/hooks/useColumnPresets.d.ts +2 -2
  256. package/dist/components/table/hooks/useColumnPresets.esm.js +165 -0
  257. package/dist/components/table/hooks/useColumnResize.cjs +1 -0
  258. package/dist/{src/components → components}/table/hooks/useColumnResize.d.ts +12 -0
  259. package/dist/components/table/hooks/useColumnResize.esm.js +118 -0
  260. package/dist/components/table/hooks/useFillEmptyRows.d.ts +2 -0
  261. package/dist/components/table/hooks/useInfiniteScroll.d.ts +2 -0
  262. package/dist/components/table/hooks/useTableColumnState.cjs +1 -0
  263. package/dist/{src/components → components}/table/hooks/useTableColumnState.d.ts +1 -1
  264. package/dist/components/table/hooks/useTableColumnState.esm.js +46 -0
  265. package/dist/components/table/hooks/useTableDragSelection.d.ts +2 -0
  266. package/dist/components/table/hooks/useTableSort.cjs +1 -0
  267. package/dist/{src/components → components}/table/hooks/useTableSort.d.ts +1 -1
  268. package/dist/components/table/hooks/useTableSort.esm.js +30 -0
  269. package/dist/components/table/hooks/useVirtualTable.cjs +1 -0
  270. package/dist/components/table/hooks/useVirtualTable.esm.js +18 -0
  271. package/dist/components/table/index.d.ts +27 -0
  272. package/dist/components/table/mini-table.cjs +1 -0
  273. package/dist/{src/components → components}/table/mini-table.d.ts +1 -1
  274. package/dist/components/table/mini-table.esm.js +127 -0
  275. package/dist/components/table/paginated-mini-table.cjs +1 -0
  276. package/dist/{src/components → components}/table/paginated-mini-table.d.ts +1 -1
  277. package/dist/components/table/paginated-mini-table.esm.js +31 -0
  278. package/dist/components/table/paginated-table.cjs +1 -0
  279. package/dist/{src/components → components}/table/paginated-table.d.ts +1 -1
  280. package/dist/components/table/paginated-table.esm.js +31 -0
  281. package/dist/components/table/table.cjs +1 -0
  282. package/dist/{src/components → components}/table/table.d.ts +2 -1
  283. package/dist/components/table/table.esm.js +343 -0
  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 +16 -0
  287. package/dist/components/table-checkbox/TableCheckbox.cjs +1 -0
  288. package/dist/components/table-checkbox/TableCheckbox.esm.js +40 -0
  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 +37 -0
  292. package/dist/{src/components → components}/table-page-layout/index.d.ts +1 -1
  293. package/dist/components/textarea/Textarea.cjs +1 -0
  294. package/dist/{src/components → components}/textarea/Textarea.d.ts +1 -1
  295. package/dist/components/textarea/Textarea.esm.js +64 -0
  296. package/dist/components/textarea/index.d.ts +2 -0
  297. package/dist/components/time-picker/index.d.ts +2 -0
  298. package/dist/components/time-picker/time-picker.cjs +1 -0
  299. package/dist/components/time-picker/time-picker.d.ts +35 -0
  300. package/dist/components/time-picker/time-picker.esm.js +193 -0
  301. package/dist/components/time-picker/time-utils.cjs +1 -0
  302. package/dist/components/time-picker/time-utils.d.ts +12 -0
  303. package/dist/components/time-picker/time-utils.esm.js +56 -0
  304. package/dist/components/toast/ToastProvider.cjs +1 -0
  305. package/dist/{src/components → components}/toast/ToastProvider.d.ts +3 -0
  306. package/dist/components/toast/ToastProvider.esm.js +86 -0
  307. package/dist/components/toast/index.d.ts +3 -0
  308. package/dist/components/toast/index.esm.js +3 -0
  309. package/dist/components/toolbar/Toolbar.cjs +1 -0
  310. package/dist/{src/components → components}/toolbar/Toolbar.d.ts +1 -1
  311. package/dist/components/toolbar/Toolbar.esm.js +149 -0
  312. package/dist/components/toolbar/index.d.ts +2 -0
  313. package/dist/components/tooltip/Tooltip.cjs +1 -0
  314. package/dist/{src/components → components}/tooltip/Tooltip.d.ts +10 -0
  315. package/dist/components/tooltip/Tooltip.esm.js +39 -0
  316. package/dist/components/tooltip/index.d.ts +2 -0
  317. package/dist/components/typewriter-text/TypewriterText.cjs +1 -0
  318. package/dist/components/typewriter-text/TypewriterText.d.ts +7 -0
  319. package/dist/components/typewriter-text/TypewriterText.esm.js +58 -0
  320. package/dist/components/typewriter-text/index.d.ts +2 -0
  321. package/dist/components/typewriter-text/types.d.ts +12 -0
  322. package/dist/components/typing-dots/TypingDots.cjs +1 -0
  323. package/dist/components/typing-dots/TypingDots.d.ts +10 -0
  324. package/dist/components/typing-dots/TypingDots.esm.js +37 -0
  325. package/dist/components/typing-dots/index.d.ts +2 -0
  326. package/dist/components/typing-dots/types.d.ts +4 -0
  327. package/dist/hooks/awaitableOverlayController.cjs +1 -0
  328. package/dist/hooks/awaitableOverlayController.d.ts +6 -0
  329. package/dist/hooks/awaitableOverlayController.esm.js +18 -0
  330. package/dist/hooks/index.d.ts +17 -0
  331. package/dist/hooks/useAwaitableOverlay.cjs +1 -0
  332. package/dist/hooks/useAwaitableOverlay.d.ts +16 -0
  333. package/dist/hooks/useAwaitableOverlay.esm.js +22 -0
  334. package/dist/hooks/useBottomSheetDrag.cjs +1 -0
  335. package/dist/hooks/useBottomSheetDrag.esm.js +17 -0
  336. package/dist/hooks/useClickOutside.cjs +1 -0
  337. package/dist/hooks/useClickOutside.esm.js +20 -0
  338. package/dist/hooks/useFillEmptyRows.cjs +1 -0
  339. package/dist/{src/components/table/hooks → hooks}/useFillEmptyRows.d.ts +10 -1
  340. package/dist/hooks/useFillEmptyRows.esm.js +60 -0
  341. package/dist/hooks/useFocusTrap.cjs +1 -0
  342. package/dist/hooks/useFocusTrap.d.ts +47 -0
  343. package/dist/hooks/useFocusTrap.esm.js +210 -0
  344. package/dist/hooks/useInfiniteScroll.cjs +1 -0
  345. package/dist/hooks/useInfiniteScroll.d.ts +36 -0
  346. package/dist/hooks/useInfiniteScroll.esm.js +31 -0
  347. package/dist/hooks/useMediaQuery.cjs +1 -0
  348. package/dist/hooks/useMediaQuery.esm.js +15 -0
  349. package/dist/hooks/useScrollLock.cjs +1 -0
  350. package/dist/hooks/useScrollLock.esm.js +16 -0
  351. package/dist/hooks/useTableDragSelection.cjs +1 -0
  352. package/dist/{src/components/table/hooks → hooks}/useTableDragSelection.d.ts +3 -4
  353. package/dist/hooks/useTableDragSelection.esm.js +79 -0
  354. package/dist/hooks/useVirtualRows.cjs +1 -0
  355. package/dist/hooks/useVirtualRows.d.ts +56 -0
  356. package/dist/hooks/useVirtualRows.esm.js +20 -0
  357. package/dist/hooks.cjs +1 -0
  358. package/dist/hooks.esm.js +12 -0
  359. package/dist/index.cjs +1 -0
  360. package/dist/index.d.ts +40 -0
  361. package/dist/index.esm.js +81 -0
  362. package/dist/lib/Portal.cjs +1 -0
  363. package/dist/lib/Portal.esm.js +11 -0
  364. package/dist/lib/column-preset-storage.cjs +1 -0
  365. package/dist/lib/column-preset-storage.esm.js +123 -0
  366. package/dist/lib/index.d.ts +6 -0
  367. package/dist/lib/overlay-stack.cjs +1 -0
  368. package/dist/lib/overlay-stack.esm.js +28 -0
  369. package/dist/lib/utils.cjs +1 -0
  370. package/dist/{src/lib → lib}/utils.d.ts +2 -1
  371. package/dist/lib/utils.esm.js +114 -0
  372. package/dist/node_modules/clsx/dist/clsx.cjs +1 -0
  373. package/dist/node_modules/clsx/dist/clsx.esm.js +16 -0
  374. package/dist/node_modules/lucide-react/dist/esm/Icon.cjs +1 -0
  375. package/dist/node_modules/lucide-react/dist/esm/Icon.esm.js +23 -0
  376. package/dist/node_modules/lucide-react/dist/esm/context.cjs +1 -0
  377. package/dist/node_modules/lucide-react/dist/esm/context.esm.js +6 -0
  378. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.cjs +1 -0
  379. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.esm.js +17 -0
  380. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.cjs +1 -0
  381. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.esm.js +14 -0
  382. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-left.cjs +1 -0
  383. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-left.esm.js +10 -0
  384. package/dist/node_modules/lucide-react/dist/esm/icons/calendar.cjs +1 -0
  385. package/dist/node_modules/lucide-react/dist/esm/icons/calendar.esm.js +25 -0
  386. package/dist/node_modules/lucide-react/dist/esm/icons/check.cjs +1 -0
  387. package/dist/node_modules/lucide-react/dist/esm/icons/check.esm.js +7 -0
  388. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs +1 -0
  389. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.esm.js +7 -0
  390. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-left.cjs +1 -0
  391. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-left.esm.js +7 -0
  392. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.cjs +1 -0
  393. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.esm.js +7 -0
  394. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-left.cjs +1 -0
  395. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-left.esm.js +10 -0
  396. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-right.cjs +1 -0
  397. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-right.esm.js +10 -0
  398. package/dist/node_modules/lucide-react/dist/esm/icons/circle-check.cjs +1 -0
  399. package/dist/node_modules/lucide-react/dist/esm/icons/circle-check.esm.js +12 -0
  400. package/dist/node_modules/lucide-react/dist/esm/icons/circle-x.cjs +1 -0
  401. package/dist/node_modules/lucide-react/dist/esm/icons/circle-x.esm.js +19 -0
  402. package/dist/node_modules/lucide-react/dist/esm/icons/clock.cjs +1 -0
  403. package/dist/node_modules/lucide-react/dist/esm/icons/clock.esm.js +12 -0
  404. package/dist/node_modules/lucide-react/dist/esm/icons/copy.cjs +1 -0
  405. package/dist/node_modules/lucide-react/dist/esm/icons/copy.esm.js +15 -0
  406. package/dist/node_modules/lucide-react/dist/esm/icons/eye-off.cjs +1 -0
  407. package/dist/node_modules/lucide-react/dist/esm/icons/eye-off.esm.js +21 -0
  408. package/dist/node_modules/lucide-react/dist/esm/icons/eye.cjs +1 -0
  409. package/dist/node_modules/lucide-react/dist/esm/icons/eye.esm.js +12 -0
  410. package/dist/node_modules/lucide-react/dist/esm/icons/grip-vertical.cjs +1 -0
  411. package/dist/node_modules/lucide-react/dist/esm/icons/grip-vertical.esm.js +41 -0
  412. package/dist/node_modules/lucide-react/dist/esm/icons/info.cjs +1 -0
  413. package/dist/node_modules/lucide-react/dist/esm/icons/info.esm.js +19 -0
  414. package/dist/node_modules/lucide-react/dist/esm/icons/keyboard.cjs +1 -0
  415. package/dist/node_modules/lucide-react/dist/esm/icons/keyboard.esm.js +45 -0
  416. package/dist/node_modules/lucide-react/dist/esm/icons/list-filter.cjs +1 -0
  417. package/dist/node_modules/lucide-react/dist/esm/icons/list-filter.esm.js +17 -0
  418. package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.cjs +1 -0
  419. package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.esm.js +7 -0
  420. package/dist/node_modules/lucide-react/dist/esm/icons/minus.cjs +1 -0
  421. package/dist/node_modules/lucide-react/dist/esm/icons/minus.esm.js +7 -0
  422. package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.cjs +1 -0
  423. package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.esm.js +10 -0
  424. package/dist/node_modules/lucide-react/dist/esm/icons/save.cjs +1 -0
  425. package/dist/node_modules/lucide-react/dist/esm/icons/save.esm.js +17 -0
  426. package/dist/node_modules/lucide-react/dist/esm/icons/search.cjs +1 -0
  427. package/dist/node_modules/lucide-react/dist/esm/icons/search.esm.js +12 -0
  428. package/dist/node_modules/lucide-react/dist/esm/icons/settings.cjs +1 -0
  429. package/dist/node_modules/lucide-react/dist/esm/icons/settings.esm.js +12 -0
  430. package/dist/node_modules/lucide-react/dist/esm/icons/triangle-alert.cjs +1 -0
  431. package/dist/node_modules/lucide-react/dist/esm/icons/triangle-alert.esm.js +17 -0
  432. package/dist/node_modules/lucide-react/dist/esm/icons/wrench.cjs +1 -0
  433. package/dist/node_modules/lucide-react/dist/esm/icons/wrench.esm.js +7 -0
  434. package/dist/node_modules/lucide-react/dist/esm/icons/x.cjs +1 -0
  435. package/dist/node_modules/lucide-react/dist/esm/icons/x.esm.js +10 -0
  436. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.cjs +1 -0
  437. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.esm.js +7 -0
  438. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.cjs +1 -0
  439. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.esm.js +4 -0
  440. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.cjs +1 -0
  441. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.esm.js +4 -0
  442. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.cjs +1 -0
  443. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.esm.js +4 -0
  444. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.cjs +1 -0
  445. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.esm.js +8 -0
  446. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs +1 -0
  447. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.esm.js +1723 -0
  448. package/dist/node_modules/use-debounce/dist/index.module.cjs +1 -0
  449. package/dist/node_modules/use-debounce/dist/index.module.esm.js +70 -0
  450. package/dist/tokens.css +1085 -0
  451. package/dist/ui.css +1 -1
  452. package/llms.txt +117 -0
  453. package/package.json +18 -9
  454. package/dist/index.cjs.js +0 -40
  455. package/dist/index.es.js +0 -8066
  456. package/dist/src/components/animated-height/index.d.ts +0 -2
  457. package/dist/src/components/badge/index.d.ts +0 -2
  458. package/dist/src/components/button/Button.d.ts +0 -2
  459. package/dist/src/components/checkbox/index.d.ts +0 -2
  460. package/dist/src/components/collapsible/index.d.ts +0 -2
  461. package/dist/src/components/date-input/index.d.ts +0 -1
  462. package/dist/src/components/date-picker/index.d.ts +0 -5
  463. package/dist/src/components/drawer/Drawer.d.ts +0 -18
  464. package/dist/src/components/drawer/index.d.ts +0 -2
  465. package/dist/src/components/info-tooltip/index.d.ts +0 -2
  466. package/dist/src/components/input/index.d.ts +0 -4
  467. package/dist/src/components/loading-spinner/index.d.ts +0 -2
  468. package/dist/src/components/modal/index.d.ts +0 -6
  469. package/dist/src/components/page-title/index.d.ts +0 -1
  470. package/dist/src/components/popover/index.d.ts +0 -2
  471. package/dist/src/components/select/index.d.ts +0 -4
  472. package/dist/src/components/select/loading-dots.d.ts +0 -9
  473. package/dist/src/components/switch/index.d.ts +0 -2
  474. package/dist/src/components/table/hooks/useInfiniteScroll.d.ts +0 -58
  475. package/dist/src/components/table/index.d.ts +0 -27
  476. package/dist/src/components/table-checkbox/index.d.ts +0 -1
  477. package/dist/src/components/textarea/index.d.ts +0 -2
  478. package/dist/src/components/toast/index.d.ts +0 -3
  479. package/dist/src/components/toolbar/index.d.ts +0 -2
  480. package/dist/src/components/tooltip/index.d.ts +0 -2
  481. package/dist/src/hooks/index.d.ts +0 -4
  482. package/dist/src/index.d.ts +0 -27
  483. package/dist/src/lib/index.d.ts +0 -6
  484. /package/dist/{src/components → components}/animated-height/AnimatedHeight.d.ts +0 -0
  485. /package/dist/{src/components → components}/badge/types.d.ts +0 -0
  486. /package/dist/{src/components → components}/button/types.d.ts +0 -0
  487. /package/dist/{src/components → components}/checkbox/types.d.ts +0 -0
  488. /package/dist/{src/components → components}/collapsible/Collapsible.d.ts +0 -0
  489. /package/dist/{src/components → components}/page-title/PageTitle.d.ts +0 -0
  490. /package/dist/{src/components → components}/search-box/ExactMatchToggle.d.ts +0 -0
  491. /package/dist/{src/components → components}/search-box/SearchBoxChips.d.ts +0 -0
  492. /package/dist/{src/components → components}/search-box/SearchBoxFloatingInput.d.ts +0 -0
  493. /package/dist/{src/components → components}/search-box/SearchBoxMonth.d.ts +0 -0
  494. /package/dist/{src/components → components}/search-box/SearchBoxSheetContext.d.ts +0 -0
  495. /package/dist/{src/components → components}/search-box/parseDateRange.d.ts +0 -0
  496. /package/dist/{src/components → components}/select/types.d.ts +0 -0
  497. /package/dist/{src/components → components}/switch/types.d.ts +0 -0
  498. /package/dist/{src/components → components}/table/components/KeyboardNavButton.d.ts +0 -0
  499. /package/dist/{src/components → components}/table/components/PageJumpInput.d.ts +0 -0
  500. /package/dist/{src/components → components}/table/components/Pagination.d.ts +0 -0
  501. /package/dist/{src/components → components}/table/components/PaginationFooter.d.ts +0 -0
  502. /package/dist/{src/components → components}/table/components/SortableHeaderCell.d.ts +0 -0
  503. /package/dist/{src/components → components}/table/hooks/useVirtualTable.d.ts +0 -0
  504. /package/dist/{src/components → components}/table/types.d.ts +0 -0
  505. /package/dist/{src/components → components}/table-checkbox/TableCheckbox.d.ts +0 -0
  506. /package/dist/{src/components → components}/table-page-layout/TablePageLayout.d.ts +0 -0
  507. /package/dist/{src/components → components}/textarea/types.d.ts +0 -0
  508. /package/dist/{src/hooks → hooks}/useBottomSheetDrag.d.ts +0 -0
  509. /package/dist/{src/hooks → hooks}/useClickOutside.d.ts +0 -0
  510. /package/dist/{src/hooks → hooks}/useMediaQuery.d.ts +0 -0
  511. /package/dist/{src/hooks → hooks}/useScrollLock.d.ts +0 -0
  512. /package/dist/{src/lib → lib}/Portal.d.ts +0 -0
  513. /package/dist/{src/lib → lib}/column-preset-storage.d.ts +0 -0
  514. /package/dist/{src/lib → lib}/overlay-stack.d.ts +0 -0
@@ -0,0 +1,320 @@
1
+ import { cn as e } from "../../lib/utils.esm.js";
2
+ import { ChevronDown as t } from "../../node_modules/lucide-react/dist/esm/icons/chevron-down.esm.js";
3
+ import { CircleX as n } from "../../node_modules/lucide-react/dist/esm/icons/circle-x.esm.js";
4
+ import { CHEVRON_SIZE_CLASS as r, CONTROL_TEXT_CLASS as i, SLOT_BADGE_TEXT_CLASS as ee, SLOT_CHILD_ICON_CLASS as te, SLOT_GAP_CLASS as ne, SLOT_ICON_SIZE_CLASS as re } from "../_shared/form-size-tokens.esm.js";
5
+ import { getInputContainerClasses as ie, getInputHelpClasses as ae, getInputLabelClasses as oe, getInputTrailingIconColor as se, getInputVariantClasses as ce } from "../input/utils.esm.js";
6
+ import { c as le } from "../../node_modules/use-debounce/dist/index.module.esm.js";
7
+ import { LoadingDots as ue } from "./loading-dots.esm.js";
8
+ import { computeSelectPanelMaxWidth as de } from "./panel-width.esm.js";
9
+ import { forwardRef as a, useEffect as fe, useId as pe, useMemo as me, useRef as o, useState as s } from "react";
10
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
11
+ import { FloatingFocusManager as he, FloatingPortal as ge, autoUpdate as _e, flip as ve, offset as ye, shift as be, size as xe, useClick as Se, useDismiss as Ce, useFloating as we, useInteractions as Te, useListNavigation as Ee, useRole as De, useTypeahead as Oe } from "@floating-ui/react";
12
+ //#region src/components/select/Select.tsx
13
+ var u = a(function({ options: a, value: u, onChange: d, variant: f, selectSize: p = "medium", label: ke, labelOption: Ae = "appear", help: je, placeholder: Me = "선택해주세요", hasError: m = !1, disabled: h = !1, suffix: g, trailingIcon: _, clearable: v = !1, badge: y, searchable: b = !1, searchPlaceholder: Ne = "검색...", onSearchChange: x, isSearchLoading: S = !1, containerProps: Pe, containerRef: Fe, className: C = "", panelClassName: Ie = "", id: Le, name: Re, onLoadMore: w, hasMore: T = !1, searchDebounceMs: E = 300, openOnFocus: ze = !1, validateSearchQuery: D, open: Be, onOpenChange: Ve, "data-testid": He }, O) {
14
+ let [Ue, We] = s(!1), k = Be ?? Ue, A = (e) => {
15
+ Be === void 0 && We(e), Ve?.(e);
16
+ }, [j, M] = s(null), [N, P] = s(""), Ge = o([]), F = o(null), [I, Ke] = s(null), [L, qe] = s(null), R = pe(), Je = pe(), z = Le ?? Je, Ye = (e) => `${R}-opt-${e}`, Xe = j === null ? void 0 : Ye(j), B = typeof x == "function", V = o(x);
17
+ V.current = x;
18
+ let Ze = E === !1 || E <= 0 ? 0 : E, Qe = le((e) => {
19
+ V.current?.(e);
20
+ }, Ze), H = (e, t) => {
21
+ B && (t || Ze === 0 ? (Qe.cancel(), V.current?.(e)) : Qe(e));
22
+ }, U = a.find((e) => String(e.value) === u), $e = o(U?.label ?? "");
23
+ $e.current = U?.label ?? "";
24
+ let et = o(H);
25
+ et.current = H;
26
+ let tt = b && (U !== void 0 && N === U.label || U === void 0 && u !== "" && N !== ""), W = me(() => {
27
+ if (!b || B || N.length === 0 || tt) return a;
28
+ let e = N.toLowerCase();
29
+ return a.filter((t) => t.label.toLowerCase().includes(e));
30
+ }, [
31
+ a,
32
+ b,
33
+ B,
34
+ N,
35
+ tt
36
+ ]), { refs: G, floatingStyles: nt, context: K } = we({
37
+ open: k,
38
+ onOpenChange: A,
39
+ placement: "bottom-start",
40
+ whileElementsMounted: _e,
41
+ middleware: [
42
+ ye(4),
43
+ ve({ padding: 8 }),
44
+ be({ padding: 8 }),
45
+ xe({
46
+ apply({ rects: e, elements: t, availableHeight: n, availableWidth: r }) {
47
+ Object.assign(t.floating.style, {
48
+ minWidth: `${e.reference.width}px`,
49
+ maxWidth: `${de(e.reference.width, r)}px`,
50
+ maxHeight: `${Math.min(n, 320)}px`
51
+ });
52
+ },
53
+ padding: 8
54
+ })
55
+ ]
56
+ }), { getReferenceProps: rt, getFloatingProps: it, getItemProps: at } = Te([
57
+ Se(K, { enabled: !h && !b }),
58
+ Ce(K),
59
+ De(K, { role: "listbox" }),
60
+ Ee(K, {
61
+ listRef: Ge,
62
+ activeIndex: j,
63
+ onNavigate: M,
64
+ virtual: b,
65
+ loop: !0
66
+ }),
67
+ Oe(K, {
68
+ listRef: { current: W.map((e) => e.label) },
69
+ activeIndex: j,
70
+ onMatch: M,
71
+ enabled: !b
72
+ })
73
+ ]), ot = o(!1);
74
+ fe(() => {
75
+ if (k) {
76
+ if (ot.current = !0, b) {
77
+ let e = $e.current;
78
+ P(e), e !== "" && requestAnimationFrame(() => {
79
+ F.current?.select();
80
+ });
81
+ }
82
+ } else P(""), M(null), ot.current && et.current("", !0);
83
+ }, [
84
+ k,
85
+ b,
86
+ B
87
+ ]), fe(() => {
88
+ if (!k || !w || !T || !I || !L) return;
89
+ let e = new IntersectionObserver((e) => {
90
+ for (let t of e) t.isIntersecting && !S && w();
91
+ }, {
92
+ root: L,
93
+ rootMargin: "0px 0px 80px 0px"
94
+ });
95
+ return e.observe(I), () => e.disconnect();
96
+ }, [
97
+ k,
98
+ w,
99
+ T,
100
+ S,
101
+ I,
102
+ L
103
+ ]);
104
+ let q = (e) => {
105
+ d(e), A(!1);
106
+ }, st = (e) => {
107
+ e.stopPropagation(), d(""), P("");
108
+ }, ct = (e) => {
109
+ b || !v || h || !J || k || (e.key === "Backspace" || e.key === "Delete") && (e.preventDefault(), d(""));
110
+ }, lt = (e) => {
111
+ let t = e.target.value;
112
+ D && !D(t) || (t !== N && (L && (L.scrollTop = 0), M(null)), P(t), H(t, !1), k || A(!0));
113
+ }, ut = (e) => {
114
+ if (!e.nativeEvent.isComposing) {
115
+ if (e.key === "Enter" && j !== null) {
116
+ e.preventDefault();
117
+ let t = W[j];
118
+ t && !t.disabled && q(String(t.value));
119
+ return;
120
+ }
121
+ (e.key === "Backspace" || e.key === "Delete") && U && (!k || N === "") && (e.preventDefault(), d(""));
122
+ }
123
+ }, dt = Ae === "sustain" || Ae === "appear" && !!U, J = !!U, ft = U ? U.label : Me, pt = k ? N : U?.label ?? "", mt = ne[p], Y = te[p], ht = ee[p], X = re[p], gt = r[p], _t = ce(f, m, h, p), Z = se(m, h, J || k), Q = i[p], $ = h ? "text-fg-disabled" : m ? "text-fg-danger" : J ? "text-fg-default" : "text-fg-subtle";
124
+ return /* @__PURE__ */ l("div", {
125
+ ref: Fe,
126
+ className: e(ie(), "min-w-0"),
127
+ ...Pe,
128
+ children: [
129
+ dt && ke && /* @__PURE__ */ c("label", {
130
+ className: oe(f, m),
131
+ htmlFor: z,
132
+ children: ke
133
+ }),
134
+ b ? /* @__PURE__ */ l("div", {
135
+ ref: (e) => {
136
+ G.setReference(e);
137
+ },
138
+ ...rt({ onClick: () => {
139
+ h || (F.current?.focus(), k || A(!0));
140
+ } }),
141
+ className: e(_t, "flex w-full min-w-0 items-center", mt, f !== "box" && "focus-within:border-primary", f !== "box" && f !== "line" && "focus-within:ring-control focus-within:ring-primary", h ? "cursor-not-allowed" : "cursor-text", C),
142
+ children: [
143
+ /* @__PURE__ */ c("input", {
144
+ ref: (e) => {
145
+ F.current = e, typeof O == "function" ? O(e) : O && (O.current = e);
146
+ },
147
+ id: z,
148
+ type: "text",
149
+ role: "combobox",
150
+ readOnly: !k,
151
+ disabled: h,
152
+ "aria-haspopup": "listbox",
153
+ "aria-expanded": k,
154
+ "aria-controls": k ? R : void 0,
155
+ "aria-activedescendant": Xe,
156
+ "aria-autocomplete": "list",
157
+ "data-testid": He,
158
+ value: pt,
159
+ placeholder: U ? Ne : Me,
160
+ onChange: lt,
161
+ onKeyDown: ut,
162
+ onFocus: () => {
163
+ ze && !h && !k && A(!0);
164
+ },
165
+ className: e("min-w-0 flex-1 truncate bg-transparent text-left outline-hidden placeholder:text-fg-subtle", Q, $, h && "cursor-not-allowed")
166
+ }),
167
+ g && /* @__PURE__ */ c("span", {
168
+ className: e("shrink-0 whitespace-nowrap", Q, Z),
169
+ children: g
170
+ }),
171
+ _ && /* @__PURE__ */ c("span", {
172
+ className: e("flex shrink-0 items-center", Z, Y),
173
+ children: _
174
+ }),
175
+ S && /* @__PURE__ */ c(ue, { className: e("shrink-0 text-fg-subtle", X) }),
176
+ v && !h && J && /* @__PURE__ */ c("button", {
177
+ type: "button",
178
+ tabIndex: -1,
179
+ onClick: st,
180
+ "aria-label": "선택 지우기",
181
+ className: e("flex shrink-0 cursor-pointer items-center rounded", Z, "hover:text-fg-default focus:outline-hidden focus-visible:ring-input-clear focus-visible:ring-input-clear-ring"),
182
+ children: /* @__PURE__ */ c(n, {
183
+ className: X,
184
+ strokeWidth: 1.5,
185
+ "aria-hidden": !0
186
+ })
187
+ }),
188
+ y && /* @__PURE__ */ c("span", {
189
+ className: e("flex shrink-0 items-center", Y, ht),
190
+ children: y
191
+ }),
192
+ /* @__PURE__ */ c(t, {
193
+ className: e("shrink-0 transition-transform", gt, Z, k && "rotate-180"),
194
+ strokeWidth: 1.5,
195
+ "aria-hidden": !0
196
+ })
197
+ ]
198
+ }) : /* @__PURE__ */ l("button", {
199
+ ref: (e) => {
200
+ G.setReference(e), typeof O == "function" ? O(e) : O && (O.current = e);
201
+ },
202
+ id: z,
203
+ type: "button",
204
+ disabled: h,
205
+ "aria-haspopup": "listbox",
206
+ "aria-expanded": k,
207
+ "aria-controls": k ? R : void 0,
208
+ "aria-activedescendant": Xe,
209
+ "data-testid": He,
210
+ ...rt({ onKeyDown: ct }),
211
+ className: e(_t, "flex w-full min-w-0 items-center", mt, h ? "cursor-not-allowed" : "cursor-pointer", C),
212
+ children: [
213
+ /* @__PURE__ */ c("span", {
214
+ className: e("min-w-0 flex-1 truncate text-left", Q, $),
215
+ children: ft
216
+ }),
217
+ g && /* @__PURE__ */ c("span", {
218
+ className: e("shrink-0 whitespace-nowrap", Q, Z),
219
+ children: g
220
+ }),
221
+ _ && /* @__PURE__ */ c("span", {
222
+ className: e("flex shrink-0 items-center", Z, Y),
223
+ children: _
224
+ }),
225
+ v && !h && J && /* @__PURE__ */ c("span", {
226
+ role: "button",
227
+ tabIndex: -1,
228
+ onClick: st,
229
+ "aria-label": "선택 지우기",
230
+ className: e("flex shrink-0 cursor-pointer items-center", Z, "hover:text-fg-default"),
231
+ children: /* @__PURE__ */ c(n, {
232
+ className: X,
233
+ strokeWidth: 1.5,
234
+ "aria-hidden": !0
235
+ })
236
+ }),
237
+ y && /* @__PURE__ */ c("span", {
238
+ className: e("flex shrink-0 items-center", Y, ht),
239
+ children: y
240
+ }),
241
+ /* @__PURE__ */ c(t, {
242
+ className: e("shrink-0 transition-transform", gt, Z, k && "rotate-180"),
243
+ strokeWidth: 1.5,
244
+ "aria-hidden": !0
245
+ })
246
+ ]
247
+ }),
248
+ Re && /* @__PURE__ */ c("input", {
249
+ type: "hidden",
250
+ name: Re,
251
+ value: u
252
+ }),
253
+ k && /* @__PURE__ */ c(ge, { children: /* @__PURE__ */ c(he, {
254
+ context: K,
255
+ modal: !1,
256
+ initialFocus: b ? -1 : 0,
257
+ children: /* @__PURE__ */ c("div", {
258
+ ref: G.setFloating,
259
+ id: R,
260
+ style: nt,
261
+ ...it(),
262
+ className: e("z-floating overflow-hidden rounded-surface border border-border-subtle bg-bg-surface shadow-overlay", Ie),
263
+ children: /* @__PURE__ */ l("div", {
264
+ ref: qe,
265
+ className: "max-h-72 overflow-y-auto py-1",
266
+ children: [W.length === 0 ? /* @__PURE__ */ c("div", {
267
+ className: "px-3 py-4 text-center text-sm text-fg-subtle",
268
+ children: S ? "검색 중..." : "옵션이 없어요"
269
+ }) : W.map((t, n) => {
270
+ let r = String(t.value) === u, i = j === n;
271
+ return /* @__PURE__ */ l("div", {
272
+ id: Ye(n),
273
+ ref: (e) => {
274
+ Ge.current[n] = e;
275
+ },
276
+ role: "option",
277
+ "aria-selected": r,
278
+ "aria-disabled": t.disabled || void 0,
279
+ tabIndex: i ? 0 : -1,
280
+ ...at({
281
+ onClick: () => {
282
+ t.disabled || q(String(t.value));
283
+ },
284
+ onKeyDown: (e) => {
285
+ t.disabled || (e.key === "Enter" || e.key === " ") && (e.preventDefault(), q(String(t.value)));
286
+ }
287
+ }),
288
+ className: e("flex cursor-pointer items-start gap-3 px-3 py-2 text-sm transition-colors", t.disabled ? "cursor-not-allowed text-fg-disabled" : r ? e("font-medium text-primary-fg", i ? "bg-primary-subtle" : "bg-primary-subtle/60 hover:bg-primary-subtle/80") : i ? "bg-bg-subtle text-fg-default" : "text-fg-default hover:bg-bg-subtle"),
289
+ children: [/* @__PURE__ */ l("div", {
290
+ className: "min-w-0 flex-1",
291
+ children: [/* @__PURE__ */ c("div", {
292
+ className: "truncate",
293
+ children: t.label
294
+ }), t.description && /* @__PURE__ */ c("div", {
295
+ className: "mt-0.5 truncate text-xs text-fg-subtle",
296
+ children: t.description
297
+ })]
298
+ }), t.trailing && /* @__PURE__ */ c("span", {
299
+ className: "shrink-0 text-xs text-fg-subtle",
300
+ children: t.trailing
301
+ })]
302
+ }, String(t.value));
303
+ }), w && T && /* @__PURE__ */ c("div", {
304
+ ref: Ke,
305
+ "aria-hidden": !0,
306
+ className: "flex items-center justify-center px-3 py-3 text-fg-subtle",
307
+ children: S && /* @__PURE__ */ c(ue, {})
308
+ })]
309
+ })
310
+ })
311
+ }) }),
312
+ je && /* @__PURE__ */ c("div", {
313
+ className: ae(m),
314
+ children: je
315
+ })
316
+ ]
317
+ });
318
+ });
319
+ //#endregion
320
+ export { u as Select };
@@ -0,0 +1,4 @@
1
+ export { Select } from './Select.js';
2
+ export type { SelectTriggerRef } from './Select.js';
3
+ export { MultiSelect } from './MultiSelect.js';
4
+ export type { SelectProps, SelectOption, SelectVariant, SelectSize, SelectLabelOption, } from './types.js';
@@ -0,0 +1 @@
1
+ const e=require("../../lib/utils.cjs");let t=require("react/jsx-runtime");var n=({className:n=``})=>(0,t.jsxs)(`span`,{className:e.cn(`inline-flex items-end gap-0.5`,n),"aria-label":`로딩 중`,role:`status`,children:[(0,t.jsx)(`span`,{className:`block h-1 w-1 animate-pulse rounded-full bg-current`,style:{animationDelay:`0ms`}}),(0,t.jsx)(`span`,{className:`block h-1 w-1 animate-pulse rounded-full bg-current`,style:{animationDelay:`200ms`}}),(0,t.jsx)(`span`,{className:`block h-1 w-1 animate-pulse rounded-full bg-current`,style:{animationDelay:`400ms`}})]});exports.LoadingDots=n;
@@ -0,0 +1,3 @@
1
+ export declare const LoadingDots: ({ className }: {
2
+ className?: string;
3
+ }) => import("react").JSX.Element;
@@ -0,0 +1,24 @@
1
+ import { cn as e } from "../../lib/utils.esm.js";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
+ //#region src/components/select/loading-dots.tsx
4
+ var r = ({ className: r = "" }) => /* @__PURE__ */ n("span", {
5
+ className: e("inline-flex items-end gap-0.5", r),
6
+ "aria-label": "로딩 중",
7
+ role: "status",
8
+ children: [
9
+ /* @__PURE__ */ t("span", {
10
+ className: "block h-1 w-1 animate-pulse rounded-full bg-current",
11
+ style: { animationDelay: "0ms" }
12
+ }),
13
+ /* @__PURE__ */ t("span", {
14
+ className: "block h-1 w-1 animate-pulse rounded-full bg-current",
15
+ style: { animationDelay: "200ms" }
16
+ }),
17
+ /* @__PURE__ */ t("span", {
18
+ className: "block h-1 w-1 animate-pulse rounded-full bg-current",
19
+ style: { animationDelay: "400ms" }
20
+ })
21
+ ]
22
+ });
23
+ //#endregion
24
+ export { r as LoadingDots };
@@ -0,0 +1 @@
1
+ var e=420;function t(t,n){return Math.max(t,Math.min(n,e))}exports.computeSelectPanelMaxWidth=t;
@@ -0,0 +1,2 @@
1
+ /** 트리거 폭을 하한으로 유지하면서 화면과 최대 패널 폭에 맞춘다. */
2
+ export declare function computeSelectPanelMaxWidth(referenceWidth: number, availableWidth: number): number;
@@ -0,0 +1,7 @@
1
+ //#region src/components/select/panel-width.ts
2
+ var e = 420;
3
+ function t(t, n) {
4
+ return Math.max(t, Math.min(n, e));
5
+ }
6
+ //#endregion
7
+ export { t as computeSelectPanelMaxWidth };
@@ -1,4 +1,4 @@
1
- import { SelectSize, SelectVariant } from './types';
1
+ import { SelectSize, SelectVariant } from './types.js';
2
2
  /**
3
3
  * Select Variant에 따른 컨테이너 클래스. 2026 리디자인 box variant는 Button/Input과 동일 토큰.
4
4
  * line/big/hero는 레거시 — Input과 동일하게 추후 정리.
@@ -0,0 +1 @@
1
+ const e=require("../../lib/utils.cjs");let t=require("react/jsx-runtime");function n({className:n,...r}){return(0,t.jsx)(`div`,{...r,"aria-hidden":`true`,className:e.cn(`animate-pulse rounded-control-small bg-bg-muted motion-reduce:animate-none`,n)})}exports.Skeleton=n;
@@ -0,0 +1,6 @@
1
+ import { SkeletonProps } from './types.js';
2
+ /**
3
+ * 장식용 로딩 블록. 크기와 레이아웃은 소비자가 className으로 지정한다.
4
+ * 보조기기에는 숨겨지므로 로딩 상태 설명이 필요하면 별도 상태 문구를 제공한다.
5
+ */
6
+ export declare function Skeleton({ className, ...props }: SkeletonProps): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { cn as e } from "../../lib/utils.esm.js";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ //#region src/components/skeleton/Skeleton.tsx
4
+ function n({ className: n, ...r }) {
5
+ return /* @__PURE__ */ t("div", {
6
+ ...r,
7
+ "aria-hidden": "true",
8
+ className: e("animate-pulse rounded-control-small bg-bg-muted motion-reduce:animate-none", n)
9
+ });
10
+ }
11
+ //#endregion
12
+ export { n as Skeleton };
@@ -0,0 +1,2 @@
1
+ export { Skeleton } from './Skeleton.js';
2
+ export type { SkeletonProps } from './types.js';
@@ -0,0 +1,2 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export type SkeletonProps = Omit<HTMLAttributes<HTMLDivElement>, "aria-hidden">;
@@ -0,0 +1 @@
1
+ const e=require("../../lib/utils.cjs"),t=require("../animated-height/AnimatedHeight.cjs");let n=require("react/jsx-runtime"),r=require("motion/react");function i(e,t){if(t.reducedMotion||t.transition===`none`||e===`center`)return{opacity:1,x:0,y:0,scale:1};if(t.transition===`fade`)return{opacity:0,x:0,y:0,scale:1};if(t.transition===`scale`)return{opacity:0,x:0,y:0,scale:e===`enter`?.98:1.02};let n=c(t.slideDirection),r=e===`enter`?t.direction:-t.direction;return{opacity:0,x:(n.x??0)*r,y:(n.y??0)*r,scale:1}}var a={enter:e=>i(`enter`,e),center:e=>i(`center`,e),exit:e=>i(`exit`,e)};function o({steps:r,currentStep:i,orientation:a=`horizontal`,allowNonLinear:o=!1,onStepChange:c,renderStepContent:l,stepContentTransition:u=`height`,className:d}){return(0,n.jsx)(`ol`,{className:e.cn(`flex`,a===`horizontal`?`w-full items-start`:`flex-col gap-5`,d),"aria-label":`진행 단계`,children:r.map((d,f)=>{let p=f<i?`completed`:f===i?`current`:`pending`,m=o&&!!c,h=a===`vertical`?l?.({step:d,index:f,status:p}):null,g=(0,n.jsx)(`span`,{className:e.cn(`flex h-7 w-7 shrink-0 items-center justify-center rounded-chip border text-xs font-semibold transition-colors`,p===`current`&&`border-primary bg-primary text-fg-inverse`,p===`completed`&&`border-primary bg-primary-subtle text-primary-fg`,p===`pending`&&`border-border-subtle bg-bg-surface text-fg-subtle`),"aria-hidden":`true`,children:f+1});return(0,n.jsxs)(`li`,{className:e.cn(`relative flex min-w-0`,a===`horizontal`?`flex-1 items-start`:`grid grid-cols-[1.75rem_minmax(0,1fr)] gap-x-3`),"aria-current":p===`current`?`step`:void 0,"data-status":p,children:[m?(0,n.jsxs)(`button`,{type:`button`,className:e.cn(`flex min-w-0 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,a===`horizontal`?`w-full flex-col items-center gap-1.5`:`col-span-2 grid grid-cols-[1.75rem_minmax(0,1fr)] items-center gap-x-3`),onClick:()=>c?.(f),"aria-label":`${f+1}단계: ${d.label}`,children:[g,(0,n.jsx)(s,{step:d,orientation:a,status:p})]}):(0,n.jsxs)(`div`,{className:e.cn(`flex min-w-0`,a===`horizontal`?`w-full flex-col items-center gap-1.5 text-center`:`col-span-2 grid grid-cols-[1.75rem_minmax(0,1fr)] items-center gap-x-3`),children:[g,(0,n.jsx)(s,{step:d,orientation:a,status:p})]}),a===`vertical`&&l&&(0,n.jsx)(`div`,{className:`col-start-2 min-w-0`,"data-step-content":d.id,children:(0,n.jsx)(t.AnimatedHeight,{durationMs:u===`height`?220:0,children:(0,n.jsx)(`div`,{hidden:p===`pending`,className:`px-3 pt-3`,children:h})})}),f<r.length-1&&(0,n.jsx)(`span`,{className:e.cn(`absolute bg-border-subtle`,a===`horizontal`?`left-[calc(50%+18px)] right-[calc(-50%+18px)] top-3.5 h-px`:`left-3.5 top-9 h-[calc(100%+4px)] w-px`),"aria-hidden":`true`})]},d.id)})})}function s({step:t,orientation:r,status:i}){return(0,n.jsxs)(`span`,{className:e.cn(`min-w-0`,r===`horizontal`&&`px-1`),children:[(0,n.jsx)(`span`,{className:e.cn(`block truncate font-medium`,r===`horizontal`?`text-xs`:`text-sm`,i===`current`&&`text-fg-default`,i===`completed`&&`text-fg-muted`,i===`pending`&&`text-fg-subtle`),children:t.label}),t.description&&(0,n.jsx)(`span`,{className:`mt-0.5 hidden text-xs text-fg-muted sm:block`,children:t.description})]})}function c(e){return e===`left`?{x:20}:e===`right`?{x:-20}:e===`up`?{y:20}:{y:-20}}function l({stepKey:e,direction:t=1,transition:i=`fade`,slideDirection:a=`left`,children:o,className:s}){let c={direction:t,transition:i,slideDirection:a,reducedMotion:!!(0,r.useReducedMotion)()};return(0,n.jsx)(r.AnimatePresence,{mode:`wait`,initial:!1,custom:c,children:(0,n.jsx)(u,{className:s,custom:c,children:o},e)})}function u({custom:e,className:t,children:i}){return(0,n.jsx)(r.motion.div,{className:t,custom:e,variants:a,initial:`enter`,animate:`center`,exit:`exit`,transition:{duration:e.reducedMotion||e.transition===`none`?0:.18},children:i})}exports.Stepper=o,exports.StepperContent=l;
@@ -0,0 +1,51 @@
1
+ import { ReactNode } from 'react';
2
+ export interface StepperStep {
3
+ id: string;
4
+ label: string;
5
+ description?: string;
6
+ }
7
+ export type StepperOrientation = "horizontal" | "vertical";
8
+ export type StepperStepStatus = "completed" | "current" | "pending";
9
+ export type StepperStepContentTransition = "height" | "none";
10
+ export type StepperTransition = "none" | "fade" | "scale" | "slide";
11
+ export type StepperSlideDirection = "left" | "right" | "up" | "down";
12
+ export interface StepperStepContentContext {
13
+ step: StepperStep;
14
+ index: number;
15
+ status: StepperStepStatus;
16
+ }
17
+ export interface StepperProps {
18
+ steps: readonly StepperStep[];
19
+ currentStep: number;
20
+ orientation?: StepperOrientation;
21
+ allowNonLinear?: boolean;
22
+ onStepChange?: (step: number) => void;
23
+ /** 세로형에서 각 단계 헤더와 다음 marker 사이에 콘텐츠를 렌더링합니다. */
24
+ renderStepContent?: (context: StepperStepContentContext) => ReactNode;
25
+ /** 세로형 단계 콘텐츠의 펼침·접힘 전환. 기본 height. */
26
+ stepContentTransition?: StepperStepContentTransition;
27
+ className?: string;
28
+ }
29
+ export interface StepperContentProps {
30
+ stepKey: string;
31
+ direction?: 1 | -1;
32
+ transition?: StepperTransition;
33
+ slideDirection?: StepperSlideDirection;
34
+ children: ReactNode;
35
+ className?: string;
36
+ }
37
+ interface MotionCustom {
38
+ direction: 1 | -1;
39
+ transition: StepperTransition;
40
+ slideDirection: StepperSlideDirection;
41
+ reducedMotion: boolean;
42
+ }
43
+ type MotionPhase = "enter" | "center" | "exit";
44
+ export declare function resolveStepperMotion(phase: MotionPhase, custom: MotionCustom): Record<string, number>;
45
+ /** 단계 표시는 상태와 검증을 소유하지 않는다. 유효한 단계와 이동 검증은 호출부에서 관리하고,
46
+ * 여러 단계를 건너뛰려면 훅과 표시 양쪽에 allowNonLinear를 지정한다. */
47
+ export declare function Stepper({ steps, currentStep, orientation, allowNonLinear, onStepChange, renderStepContent, stepContentTransition, className, }: StepperProps): import("react").JSX.Element;
48
+ /** 단계 콘텐츠를 전환한다. stepKey는 단계마다 고유해야 종료와 진입을 구분한다.
49
+ * 움직임을 원치 않으면 transition="none"을 쓰며 시스템의 동작 줄이기도 따른다. */
50
+ export declare function StepperContent({ stepKey, direction, transition, slideDirection, children, className, }: StepperContentProps): import("react").JSX.Element;
51
+ export {};
@@ -0,0 +1,142 @@
1
+ import { cn as e } from "../../lib/utils.esm.js";
2
+ import { AnimatedHeight as t } from "../animated-height/AnimatedHeight.esm.js";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ import { AnimatePresence as i, motion as a, useReducedMotion as o } from "motion/react";
5
+ //#region src/components/stepper/Stepper.tsx
6
+ function s(e, t) {
7
+ if (t.reducedMotion || t.transition === "none" || e === "center") return {
8
+ opacity: 1,
9
+ x: 0,
10
+ y: 0,
11
+ scale: 1
12
+ };
13
+ if (t.transition === "fade") return {
14
+ opacity: 0,
15
+ x: 0,
16
+ y: 0,
17
+ scale: 1
18
+ };
19
+ if (t.transition === "scale") return {
20
+ opacity: 0,
21
+ x: 0,
22
+ y: 0,
23
+ scale: e === "enter" ? .98 : 1.02
24
+ };
25
+ let n = d(t.slideDirection), r = e === "enter" ? t.direction : -t.direction;
26
+ return {
27
+ opacity: 0,
28
+ x: (n.x ?? 0) * r,
29
+ y: (n.y ?? 0) * r,
30
+ scale: 1
31
+ };
32
+ }
33
+ var c = {
34
+ enter: (e) => s("enter", e),
35
+ center: (e) => s("center", e),
36
+ exit: (e) => s("exit", e)
37
+ };
38
+ function l({ steps: i, currentStep: a, orientation: o = "horizontal", allowNonLinear: s = !1, onStepChange: c, renderStepContent: l, stepContentTransition: d = "height", className: f }) {
39
+ return /* @__PURE__ */ n("ol", {
40
+ className: e("flex", o === "horizontal" ? "w-full items-start" : "flex-col gap-5", f),
41
+ "aria-label": "진행 단계",
42
+ children: i.map((f, p) => {
43
+ let m = p < a ? "completed" : p === a ? "current" : "pending", h = s && !!c, g = o === "vertical" ? l?.({
44
+ step: f,
45
+ index: p,
46
+ status: m
47
+ }) : null, _ = /* @__PURE__ */ n("span", {
48
+ className: e("flex h-7 w-7 shrink-0 items-center justify-center rounded-chip border text-xs font-semibold transition-colors", m === "current" && "border-primary bg-primary text-fg-inverse", m === "completed" && "border-primary bg-primary-subtle text-primary-fg", m === "pending" && "border-border-subtle bg-bg-surface text-fg-subtle"),
49
+ "aria-hidden": "true",
50
+ children: p + 1
51
+ });
52
+ return /* @__PURE__ */ r("li", {
53
+ className: e("relative flex min-w-0", o === "horizontal" ? "flex-1 items-start" : "grid grid-cols-[1.75rem_minmax(0,1fr)] gap-x-3"),
54
+ "aria-current": m === "current" ? "step" : void 0,
55
+ "data-status": m,
56
+ children: [
57
+ h ? /* @__PURE__ */ r("button", {
58
+ type: "button",
59
+ className: e("flex min-w-0 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary", o === "horizontal" ? "w-full flex-col items-center gap-1.5" : "col-span-2 grid grid-cols-[1.75rem_minmax(0,1fr)] items-center gap-x-3"),
60
+ onClick: () => c?.(p),
61
+ "aria-label": `${p + 1}단계: ${f.label}`,
62
+ children: [_, /* @__PURE__ */ n(u, {
63
+ step: f,
64
+ orientation: o,
65
+ status: m
66
+ })]
67
+ }) : /* @__PURE__ */ r("div", {
68
+ className: e("flex min-w-0", o === "horizontal" ? "w-full flex-col items-center gap-1.5 text-center" : "col-span-2 grid grid-cols-[1.75rem_minmax(0,1fr)] items-center gap-x-3"),
69
+ children: [_, /* @__PURE__ */ n(u, {
70
+ step: f,
71
+ orientation: o,
72
+ status: m
73
+ })]
74
+ }),
75
+ o === "vertical" && l && /* @__PURE__ */ n("div", {
76
+ className: "col-start-2 min-w-0",
77
+ "data-step-content": f.id,
78
+ children: /* @__PURE__ */ n(t, {
79
+ durationMs: d === "height" ? 220 : 0,
80
+ children: /* @__PURE__ */ n("div", {
81
+ hidden: m === "pending",
82
+ className: "px-3 pt-3",
83
+ children: g
84
+ })
85
+ })
86
+ }),
87
+ p < i.length - 1 && /* @__PURE__ */ n("span", {
88
+ className: e("absolute bg-border-subtle", o === "horizontal" ? "left-[calc(50%+18px)] right-[calc(-50%+18px)] top-3.5 h-px" : "left-3.5 top-9 h-[calc(100%+4px)] w-px"),
89
+ "aria-hidden": "true"
90
+ })
91
+ ]
92
+ }, f.id);
93
+ })
94
+ });
95
+ }
96
+ function u({ step: t, orientation: i, status: a }) {
97
+ return /* @__PURE__ */ r("span", {
98
+ className: e("min-w-0", i === "horizontal" && "px-1"),
99
+ children: [/* @__PURE__ */ n("span", {
100
+ className: e("block truncate font-medium", i === "horizontal" ? "text-xs" : "text-sm", a === "current" && "text-fg-default", a === "completed" && "text-fg-muted", a === "pending" && "text-fg-subtle"),
101
+ children: t.label
102
+ }), t.description && /* @__PURE__ */ n("span", {
103
+ className: "mt-0.5 hidden text-xs text-fg-muted sm:block",
104
+ children: t.description
105
+ })]
106
+ });
107
+ }
108
+ function d(e) {
109
+ return e === "left" ? { x: 20 } : e === "right" ? { x: -20 } : e === "up" ? { y: 20 } : { y: -20 };
110
+ }
111
+ function f({ stepKey: e, direction: t = 1, transition: r = "fade", slideDirection: a = "left", children: s, className: c }) {
112
+ let l = {
113
+ direction: t,
114
+ transition: r,
115
+ slideDirection: a,
116
+ reducedMotion: !!o()
117
+ };
118
+ return /* @__PURE__ */ n(i, {
119
+ mode: "wait",
120
+ initial: !1,
121
+ custom: l,
122
+ children: /* @__PURE__ */ n(p, {
123
+ className: c,
124
+ custom: l,
125
+ children: s
126
+ }, e)
127
+ });
128
+ }
129
+ function p({ custom: e, className: t, children: r }) {
130
+ return /* @__PURE__ */ n(a.div, {
131
+ className: t,
132
+ custom: e,
133
+ variants: c,
134
+ initial: "enter",
135
+ animate: "center",
136
+ exit: "exit",
137
+ transition: { duration: e.reducedMotion || e.transition === "none" ? 0 : .18 },
138
+ children: r
139
+ });
140
+ }
141
+ //#endregion
142
+ export { l as Stepper, f as StepperContent };
@@ -0,0 +1,4 @@
1
+ export { Stepper, StepperContent } from './Stepper.js';
2
+ export type { StepperProps, StepperContentProps, StepperStep, StepperOrientation, StepperStepStatus, StepperStepContentTransition, StepperTransition, StepperSlideDirection, StepperStepContentContext, } from './Stepper.js';
3
+ export { useStepper } from './use-stepper.js';
4
+ export type { UseStepperOptions, StepperState } from './use-stepper.js';
@@ -0,0 +1 @@
1
+ let e=require("react");function t(e,t){return Math.min(Math.max(0,e),Math.max(0,t-1))}function n(e,n){let r=e.currentStep;if(n.type===`next`&&(r+=1),n.type===`previous`&&--r,n.type===`move`){let i=t(n.target,n.stepCount);if(!n.allowNonLinear&&Math.abs(i-e.currentStep)>1)return e;r=i}n.type===`reset`&&(r=n.target);let i=t(r,n.stepCount);return i===e.currentStep?e:{currentStep:i,direction:i>e.currentStep?1:-1}}function r({stepCount:r,initialStep:i=0,allowNonLinear:a=!1}){let o=t(i,r),[s,c]=(0,e.useReducer)(n,{currentStep:o,direction:1}),l=t(s.currentStep,r),u=l===s.currentStep?s.direction:l>s.currentStep?1:-1;return(0,e.useEffect)(()=>{c({type:`clamp`,stepCount:r})},[r]),{currentStep:l,direction:u,canGoNext:l<r-1,canGoPrevious:l>0,next:()=>c({type:`next`,stepCount:r}),previous:()=>c({type:`previous`,stepCount:r}),goTo:e=>c({type:`move`,target:e,stepCount:r,allowNonLinear:a}),reset:()=>c({type:`reset`,target:o,stepCount:r})}}exports.useStepper=r;