thread-ui 0.16.4 → 0.17.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 (515) hide show
  1. package/README.md +2 -2
  2. package/dist/components/content-display/carousel/carousel-context.d.ts +15 -15
  3. package/dist/components/content-display/carousel/carousel.types.d.ts +1 -1
  4. package/dist/components/content-display/carousel/components/carousel-header.js +1 -1
  5. package/dist/components/content-display/carousel/components/carousel-header.js.map +1 -1
  6. package/dist/components/content-display/gallery/components/gallery-content.js +1 -1
  7. package/dist/components/content-display/gallery/components/gallery-content.js.map +1 -1
  8. package/dist/components/content-display/gallery/gallery-context.d.ts +15 -15
  9. package/dist/components/content-display/gallery/gallery.types.d.ts +1 -1
  10. package/dist/components/content-display/lightbox/components/lightbox-title.js +2 -2
  11. package/dist/components/content-display/lightbox/components/lightbox-title.js.map +1 -1
  12. package/dist/components/content-display/lightbox/lightbox-context.d.ts +6 -6
  13. package/dist/components/content-display/lightbox/lightbox.js +1 -1
  14. package/dist/components/content-display/lightbox/lightbox.js.map +1 -1
  15. package/dist/components/content-display/tab-view/components/tab-item-content.js +1 -1
  16. package/dist/components/content-display/tab-view/components/tab-item-content.js.map +1 -1
  17. package/dist/components/data-display/filter-controls/variants/filter-controls.js +13 -2
  18. package/dist/components/data-display/filter-controls/variants/filter-controls.js.map +1 -1
  19. package/dist/components/data-display/filter-controls/variants/inline-filter-controls.js +1 -1
  20. package/dist/components/data-display/filter-controls/variants/inline-filter-controls.js.map +1 -1
  21. package/dist/components/data-display/sort-controls/sort-controls.js +1 -1
  22. package/dist/components/data-display/sort-controls/sort-controls.js.map +1 -1
  23. package/dist/components/data-input/dropdowns/dropdown/dropdown.d.ts +19 -0
  24. package/dist/components/data-input/dropdowns/dropdown/dropdown.js +22 -0
  25. package/dist/components/data-input/dropdowns/dropdown/dropdown.js.map +1 -0
  26. package/dist/components/data-input/dropdowns/dropdown/dropdown.types.d.ts +4 -0
  27. package/dist/components/data-input/dropdowns/dropdown/dropdown.types.js.map +1 -0
  28. package/dist/components/data-input/dropdowns/dropdown/index.js.map +1 -0
  29. package/dist/components/data-input/dropdowns/dropdown-base/dropdown-base.d.ts +42 -0
  30. package/dist/components/data-input/dropdowns/dropdown-base/dropdown-base.js +233 -0
  31. package/dist/components/data-input/dropdowns/dropdown-base/dropdown-base.js.map +1 -0
  32. package/dist/components/data-input/dropdowns/dropdown-base/dropdown-base.types.d.ts +36 -0
  33. package/dist/components/data-input/dropdowns/dropdown-base/dropdown-base.types.js.map +1 -0
  34. package/dist/components/data-input/dropdowns/dropdown-base/index.js.map +1 -0
  35. package/dist/components/data-input/dropdowns/index.js.map +1 -0
  36. package/dist/components/data-input/dropdowns/multi-dropdown/index.js.map +1 -0
  37. package/dist/components/data-input/dropdowns/multi-dropdown/multi-dropdown.d.ts +19 -0
  38. package/dist/components/data-input/dropdowns/multi-dropdown/multi-dropdown.js +21 -0
  39. package/dist/components/data-input/dropdowns/multi-dropdown/multi-dropdown.js.map +1 -0
  40. package/dist/components/data-input/dropdowns/multi-dropdown/multi-dropdown.types.d.ts +4 -0
  41. package/dist/components/data-input/dropdowns/multi-dropdown/multi-dropdown.types.js.map +1 -0
  42. package/dist/components/data-input/file-upload/components/dropzone.d.ts +8 -0
  43. package/dist/components/data-input/file-upload/components/dropzone.js +117 -0
  44. package/dist/components/data-input/file-upload/components/dropzone.js.map +1 -0
  45. package/dist/components/data-input/file-upload/components/file-item.d.ts +14 -0
  46. package/dist/components/data-input/file-upload/components/file-item.js +69 -0
  47. package/dist/components/data-input/file-upload/components/file-item.js.map +1 -0
  48. package/dist/components/data-input/file-upload/components/file-upload-content.d.ts +10 -0
  49. package/dist/components/data-input/file-upload/components/file-upload-content.js +55 -0
  50. package/dist/components/data-input/file-upload/components/file-upload-content.js.map +1 -0
  51. package/dist/components/data-input/file-upload/components/item-previews.d.ts +28 -0
  52. package/dist/components/data-input/file-upload/components/item-previews.js +95 -0
  53. package/dist/components/data-input/file-upload/components/item-previews.js.map +1 -0
  54. package/dist/components/data-input/file-upload/file-upload-context.js.map +1 -0
  55. package/dist/components/data-input/file-upload/file-upload.d.ts +23 -0
  56. package/dist/components/data-input/file-upload/file-upload.js +58 -0
  57. package/dist/components/data-input/file-upload/file-upload.js.map +1 -0
  58. package/dist/components/data-input/file-upload/file-upload.types.d.ts +54 -0
  59. package/dist/components/data-input/file-upload/file-upload.types.js.map +1 -0
  60. package/dist/components/data-input/file-upload/file-upload.utils.d.ts +21 -0
  61. package/dist/components/data-input/file-upload/file-upload.utils.js +86 -0
  62. package/dist/components/data-input/file-upload/file-upload.utils.js.map +1 -0
  63. package/dist/components/data-input/file-upload/index.d.ts +3 -0
  64. package/dist/components/data-input/file-upload/index.js.map +1 -0
  65. package/dist/components/data-input/file-upload/use-file-upload.d.ts +58 -0
  66. package/dist/components/data-input/file-upload/use-file-upload.js +154 -0
  67. package/dist/components/data-input/file-upload/use-file-upload.js.map +1 -0
  68. package/dist/components/data-input/file-upload/use-object-url.d.ts +9 -0
  69. package/dist/components/data-input/file-upload/use-object-url.js +24 -0
  70. package/dist/components/data-input/file-upload/use-object-url.js.map +1 -0
  71. package/dist/components/{form-elements → data-input}/index.d.ts +2 -1
  72. package/dist/components/{form-elements → data-input}/index.js +2 -1
  73. package/dist/components/data-input/index.js.map +1 -0
  74. package/dist/components/data-input/number-input/index.js.map +1 -0
  75. package/dist/components/{form-elements → data-input}/number-input/number-input.d.ts +5 -1
  76. package/dist/components/{form-elements → data-input}/number-input/number-input.js +48 -49
  77. package/dist/components/data-input/number-input/number-input.js.map +1 -0
  78. package/dist/components/{form-elements → data-input}/number-input/number-input.types.d.ts +1 -1
  79. package/dist/components/data-input/number-input/number-input.types.js.map +1 -0
  80. package/dist/components/data-input/reorderable/index.d.ts +4 -0
  81. package/dist/components/data-input/reorderable/index.js +4 -0
  82. package/dist/components/data-input/reorderable/index.js.map +1 -0
  83. package/dist/components/data-input/reorderable/reorderable-groups/group-title.d.ts +8 -0
  84. package/dist/components/data-input/reorderable/reorderable-groups/group-title.js +20 -0
  85. package/dist/components/data-input/reorderable/reorderable-groups/group-title.js.map +1 -0
  86. package/dist/components/data-input/reorderable/reorderable-groups/group-utils.d.ts +13 -0
  87. package/dist/components/data-input/reorderable/reorderable-groups/group-utils.js +26 -0
  88. package/dist/components/data-input/reorderable/reorderable-groups/group-utils.js.map +1 -0
  89. package/dist/components/data-input/reorderable/reorderable-groups/index.d.ts +2 -0
  90. package/dist/components/data-input/reorderable/reorderable-groups/index.js +2 -0
  91. package/dist/components/data-input/reorderable/reorderable-groups/index.js.map +1 -0
  92. package/dist/components/data-input/reorderable/reorderable-groups/reorderable-groups.d.ts +18 -0
  93. package/dist/components/data-input/reorderable/reorderable-groups/reorderable-groups.js +135 -0
  94. package/dist/components/data-input/reorderable/reorderable-groups/reorderable-groups.js.map +1 -0
  95. package/dist/components/data-input/reorderable/reorderable-groups/reorderable-groups.types.d.ts +66 -0
  96. package/dist/components/data-input/reorderable/reorderable-groups/reorderable-groups.types.js +2 -0
  97. package/dist/components/data-input/reorderable/reorderable-groups/reorderable-groups.types.js.map +1 -0
  98. package/dist/components/data-input/reorderable/reorderable-groups/sortable-group.d.ts +30 -0
  99. package/dist/components/data-input/reorderable/reorderable-groups/sortable-group.js +65 -0
  100. package/dist/components/data-input/reorderable/reorderable-groups/sortable-group.js.map +1 -0
  101. package/dist/components/data-input/reorderable/reorderable-groups/use-group-drag.d.ts +30 -0
  102. package/dist/components/data-input/reorderable/reorderable-groups/use-group-drag.js +186 -0
  103. package/dist/components/data-input/reorderable/reorderable-groups/use-group-drag.js.map +1 -0
  104. package/dist/components/data-input/reorderable/reorderable-list/index.d.ts +2 -0
  105. package/dist/components/data-input/reorderable/reorderable-list/index.js +2 -0
  106. package/dist/components/data-input/reorderable/reorderable-list/index.js.map +1 -0
  107. package/dist/components/data-input/reorderable/reorderable-list/reorderable-list.d.ts +19 -0
  108. package/dist/components/data-input/reorderable/reorderable-list/reorderable-list.js +95 -0
  109. package/dist/components/data-input/reorderable/reorderable-list/reorderable-list.js.map +1 -0
  110. package/dist/components/data-input/reorderable/reorderable-list/reorderable-list.types.d.ts +28 -0
  111. package/dist/components/data-input/reorderable/reorderable-list/reorderable-list.types.js +2 -0
  112. package/dist/components/data-input/reorderable/reorderable-list/reorderable-list.types.js.map +1 -0
  113. package/dist/components/data-input/reorderable/reorderable-list/sortable-item/index.d.ts +2 -0
  114. package/dist/components/data-input/reorderable/reorderable-list/sortable-item/index.js +2 -0
  115. package/dist/components/data-input/reorderable/reorderable-list/sortable-item/index.js.map +1 -0
  116. package/dist/components/data-input/reorderable/reorderable-list/sortable-item/sortable-item.d.ts +8 -0
  117. package/dist/components/data-input/reorderable/reorderable-list/sortable-item/sortable-item.js +66 -0
  118. package/dist/components/data-input/reorderable/reorderable-list/sortable-item/sortable-item.js.map +1 -0
  119. package/dist/components/data-input/reorderable/reorderable-list/sortable-item/sortable-item.types.d.ts +31 -0
  120. package/dist/components/data-input/reorderable/reorderable-list/sortable-item/sortable-item.types.js +2 -0
  121. package/dist/components/data-input/reorderable/reorderable-list/sortable-item/sortable-item.types.js.map +1 -0
  122. package/dist/components/data-input/reorderable/shared/components/drag-handle.d.ts +24 -0
  123. package/dist/components/data-input/reorderable/shared/components/drag-handle.js +50 -0
  124. package/dist/components/data-input/reorderable/shared/components/drag-handle.js.map +1 -0
  125. package/dist/components/data-input/reorderable/shared/components/sortable-item.d.ts +9 -0
  126. package/dist/components/data-input/reorderable/shared/components/sortable-item.js +42 -0
  127. package/dist/components/data-input/reorderable/shared/components/sortable-item.js.map +1 -0
  128. package/dist/components/data-input/reorderable/shared/functions/announcements.d.ts +4 -0
  129. package/dist/components/data-input/reorderable/shared/functions/announcements.js +20 -0
  130. package/dist/components/data-input/reorderable/shared/functions/announcements.js.map +1 -0
  131. package/dist/components/data-input/reorderable/shared/functions/apply-order.d.ts +2 -0
  132. package/dist/components/data-input/reorderable/shared/functions/apply-order.js +8 -0
  133. package/dist/components/data-input/reorderable/shared/functions/apply-order.js.map +1 -0
  134. package/dist/components/data-input/reorderable/shared/functions/form-value.d.ts +30 -0
  135. package/dist/components/data-input/reorderable/shared/functions/form-value.js +49 -0
  136. package/dist/components/data-input/reorderable/shared/functions/form-value.js.map +1 -0
  137. package/dist/components/data-input/reorderable/shared/functions/layout.d.ts +18 -0
  138. package/dist/components/data-input/reorderable/shared/functions/layout.js +27 -0
  139. package/dist/components/data-input/reorderable/shared/functions/layout.js.map +1 -0
  140. package/dist/components/data-input/reorderable/shared/index.d.ts +9 -0
  141. package/dist/components/data-input/reorderable/shared/index.js +7 -0
  142. package/dist/components/data-input/reorderable/shared/index.js.map +1 -0
  143. package/dist/components/data-input/reorderable/shared/types/reorderable.types.d.ts +45 -0
  144. package/dist/components/data-input/reorderable/shared/types/reorderable.types.js +2 -0
  145. package/dist/components/data-input/reorderable/shared/types/reorderable.types.js.map +1 -0
  146. package/dist/components/data-input/reorderable/shared/types/sortable-item.types.d.ts +14 -0
  147. package/dist/components/data-input/reorderable/shared/types/sortable-item.types.js +2 -0
  148. package/dist/components/data-input/reorderable/shared/types/sortable-item.types.js.map +1 -0
  149. package/dist/components/data-input/shared/form-label/form-label.d.ts +15 -0
  150. package/dist/components/data-input/shared/form-label/form-label.js +53 -0
  151. package/dist/components/data-input/shared/form-label/form-label.js.map +1 -0
  152. package/dist/components/data-input/shared/form-label/form-label.types.d.ts +10 -0
  153. package/dist/components/data-input/shared/form-label/form-label.types.js.map +1 -0
  154. package/dist/components/data-input/shared/form-label/index.js.map +1 -0
  155. package/dist/components/data-input/shared/input-props.types.d.ts +43 -0
  156. package/dist/components/data-input/shared/input-props.types.js.map +1 -0
  157. package/dist/components/data-input/shared/input-wrapper.d.ts +31 -0
  158. package/dist/components/data-input/shared/input-wrapper.js +50 -0
  159. package/dist/components/data-input/shared/input-wrapper.js.map +1 -0
  160. package/dist/components/{form-elements/styles/index.d.ts → data-input/shared/styles.d.ts} +26 -3
  161. package/dist/components/data-input/shared/styles.js +107 -0
  162. package/dist/components/data-input/shared/styles.js.map +1 -0
  163. package/dist/components/data-input/shared/use-field-error.d.ts +58 -0
  164. package/dist/components/data-input/shared/use-field-error.js +82 -0
  165. package/dist/components/data-input/shared/use-field-error.js.map +1 -0
  166. package/dist/components/data-input/shared/use-input-id.d.ts +8 -0
  167. package/dist/components/data-input/shared/use-input-id.js +14 -0
  168. package/dist/components/data-input/shared/use-input-id.js.map +1 -0
  169. package/dist/components/data-input/text-input/index.js.map +1 -0
  170. package/dist/components/data-input/text-input/text-input.d.ts +16 -0
  171. package/dist/components/data-input/text-input/text-input.js +37 -0
  172. package/dist/components/data-input/text-input/text-input.js.map +1 -0
  173. package/dist/components/{form-elements → data-input}/text-input/text-input.types.d.ts +1 -1
  174. package/dist/components/data-input/text-input/text-input.types.js.map +1 -0
  175. package/dist/components/index.d.ts +1 -1
  176. package/dist/components/index.js +1 -1
  177. package/dist/components/index.js.map +1 -1
  178. package/dist/components/layouts/column-layout/column-layout.js +1 -1
  179. package/dist/components/layouts/column-layout/column-layout.js.map +1 -1
  180. package/dist/components/layouts/column-layout/column-layout.types.d.ts +1 -1
  181. package/dist/components/layouts/footer/footer.js +1 -1
  182. package/dist/components/layouts/footer/footer.js.map +1 -1
  183. package/dist/components/layouts/index.d.ts +2 -0
  184. package/dist/components/layouts/index.js +2 -0
  185. package/dist/components/layouts/index.js.map +1 -1
  186. package/dist/components/layouts/layout-wrapper.js +1 -1
  187. package/dist/components/layouts/layout-wrapper.js.map +1 -1
  188. package/dist/components/layouts/masonry-layout/masonry-layout.js +1 -1
  189. package/dist/components/layouts/masonry-layout/masonry-layout.js.map +1 -1
  190. package/dist/components/layouts/masonry-layout/masonry-layout.types.d.ts +1 -1
  191. package/dist/components/layouts/split-navigator/index.d.ts +2 -0
  192. package/dist/components/layouts/split-navigator/index.js +2 -0
  193. package/dist/components/layouts/split-navigator/index.js.map +1 -0
  194. package/dist/components/layouts/split-navigator/split-navigator.d.ts +19 -0
  195. package/dist/components/layouts/split-navigator/split-navigator.js +91 -0
  196. package/dist/components/layouts/split-navigator/split-navigator.js.map +1 -0
  197. package/dist/components/layouts/split-navigator/split-navigator.types.d.ts +55 -0
  198. package/dist/components/layouts/split-navigator/split-navigator.types.js +2 -0
  199. package/dist/components/layouts/split-navigator/split-navigator.types.js.map +1 -0
  200. package/dist/components/layouts/split-view/components/split-view-back-button.d.ts +3 -0
  201. package/dist/components/layouts/split-view/components/split-view-back-button.js +18 -0
  202. package/dist/components/layouts/split-view/components/split-view-back-button.js.map +1 -0
  203. package/dist/components/layouts/split-view/components/split-view-column.d.ts +5 -0
  204. package/dist/components/layouts/split-view/components/split-view-column.js +204 -0
  205. package/dist/components/layouts/split-view/components/split-view-column.js.map +1 -0
  206. package/dist/components/layouts/split-view/components/split-view-header.d.ts +6 -0
  207. package/dist/components/layouts/split-view/components/split-view-header.js +44 -0
  208. package/dist/components/layouts/split-view/components/split-view-header.js.map +1 -0
  209. package/dist/components/layouts/split-view/components/split-view-item.d.ts +11 -0
  210. package/dist/components/layouts/split-view/components/split-view-item.js +19 -0
  211. package/dist/components/layouts/split-view/components/split-view-item.js.map +1 -0
  212. package/dist/components/layouts/split-view/components/split-view-panes.d.ts +7 -0
  213. package/dist/components/layouts/split-view/components/split-view-panes.js +10 -0
  214. package/dist/components/layouts/split-view/components/split-view-panes.js.map +1 -0
  215. package/dist/components/layouts/split-view/components/split-view-sidebar-toggle.d.ts +3 -0
  216. package/dist/components/layouts/split-view/components/split-view-sidebar-toggle.js +14 -0
  217. package/dist/components/layouts/split-view/components/split-view-sidebar-toggle.js.map +1 -0
  218. package/dist/components/layouts/split-view/index.d.ts +10 -0
  219. package/dist/components/layouts/split-view/index.js +15 -0
  220. package/dist/components/layouts/split-view/index.js.map +1 -0
  221. package/dist/components/layouts/split-view/split-view-context.d.ts +4 -0
  222. package/dist/components/layouts/split-view/split-view-context.js +6 -0
  223. package/dist/components/layouts/split-view/split-view-context.js.map +1 -0
  224. package/dist/components/layouts/split-view/split-view.d.ts +20 -0
  225. package/dist/components/layouts/split-view/split-view.js +153 -0
  226. package/dist/components/layouts/split-view/split-view.js.map +1 -0
  227. package/dist/components/layouts/split-view/split-view.types.d.ts +90 -0
  228. package/dist/components/layouts/split-view/split-view.types.js +2 -0
  229. package/dist/components/layouts/split-view/split-view.types.js.map +1 -0
  230. package/dist/components/media-display/image-panel/image-panel.js +1 -1
  231. package/dist/components/media-display/image-panel/image-panel.js.map +1 -1
  232. package/dist/components/media-display/info-card/info-card.js +2 -2
  233. package/dist/components/media-display/info-card/info-card.js.map +1 -1
  234. package/dist/components/media-display/info-card/info-card.types.d.ts +1 -1
  235. package/dist/components/media-display/media-card/media-card.js +2 -2
  236. package/dist/components/media-display/media-card/media-card.js.map +1 -1
  237. package/dist/components/navigation/nav-menu/components/nav-drop-down-item.js +1 -1
  238. package/dist/components/navigation/nav-menu/components/nav-drop-down-item.js.map +1 -1
  239. package/dist/components/navigation/nav-menu/components/nav-item.js +1 -1
  240. package/dist/components/navigation/nav-menu/components/nav-item.js.map +1 -1
  241. package/dist/components/navigation/nav-menu/components/nav-link.js +1 -1
  242. package/dist/components/navigation/nav-menu/components/nav-link.js.map +1 -1
  243. package/dist/components/navigation/side-nav/side-nav-item/side-nav-item.d.ts +1 -1
  244. package/dist/components/navigation/side-nav/side-nav-item/side-nav-item.js +5 -48
  245. package/dist/components/navigation/side-nav/side-nav-item/side-nav-item.js.map +1 -1
  246. package/dist/components/navigation/side-nav/side-nav-item/side-nav-item.types.d.ts +3 -0
  247. package/dist/components/navigation/side-nav/side-nav.d.ts +4 -2
  248. package/dist/components/navigation/side-nav/side-nav.js +27 -11
  249. package/dist/components/navigation/side-nav/side-nav.js.map +1 -1
  250. package/dist/components/navigation/side-nav/side-nav.types.d.ts +6 -1
  251. package/dist/components/typography/body/body.types.d.ts +8 -5
  252. package/dist/components/typography/body/text.d.ts +5 -3
  253. package/dist/components/typography/body/text.js +20 -6
  254. package/dist/components/typography/body/text.js.map +1 -1
  255. package/dist/components/typography/code/code.d.ts +8 -0
  256. package/dist/components/typography/code/code.js +12 -1
  257. package/dist/components/typography/code/code.js.map +1 -1
  258. package/dist/components/typography/code/code.types.d.ts +2 -2
  259. package/dist/components/typography/heading/heading.js +7 -2
  260. package/dist/components/typography/heading/heading.js.map +1 -1
  261. package/dist/components/typography/heading/heading.types.d.ts +3 -1
  262. package/dist/components/typography/heading/render-heading.d.ts +1 -1
  263. package/dist/components/typography/heading/render-heading.js +6 -4
  264. package/dist/components/typography/heading/render-heading.js.map +1 -1
  265. package/dist/components/typography/page-header/page-header.js +1 -1
  266. package/dist/components/typography/page-header/page-header.js.map +1 -1
  267. package/dist/components/typography/shared-utils/get-presentation-styles.js +8 -0
  268. package/dist/components/typography/shared-utils/get-presentation-styles.js.map +1 -1
  269. package/dist/components/typography/shared-utils/resolve-margin-bottom.d.ts +22 -0
  270. package/dist/components/typography/shared-utils/resolve-margin-bottom.js +25 -0
  271. package/dist/components/typography/shared-utils/resolve-margin-bottom.js.map +1 -0
  272. package/dist/components/typography/typography.types.d.ts +8 -3
  273. package/dist/components/ui/button/button-recipe.js +8 -0
  274. package/dist/components/ui/button/button-recipe.js.map +1 -1
  275. package/dist/components/ui/button/button.d.ts +7 -1
  276. package/dist/components/ui/button/button.js +8 -2
  277. package/dist/components/ui/button/button.js.map +1 -1
  278. package/dist/components/ui/button/button.types.d.ts +6 -6
  279. package/dist/components/ui/card/card.js +2 -2
  280. package/dist/components/ui/card/card.js.map +1 -1
  281. package/dist/components/ui/icon/icon.types.d.ts +1 -1
  282. package/dist/components/ui/icon-button/icon-button.js +2 -2
  283. package/dist/components/ui/icon-button/icon-button.js.map +1 -1
  284. package/dist/components/ui/icon-button/icon-button.types.d.ts +4 -3
  285. package/dist/components/ui/modal/components/modal-content.js +1 -1
  286. package/dist/components/ui/modal/components/modal-content.js.map +1 -1
  287. package/dist/components/ui/modal/modal.js +1 -1
  288. package/dist/components/ui/modal/modal.js.map +1 -1
  289. package/dist/components/ui/modal/modal.types.d.ts +1 -1
  290. package/dist/hooks/index.d.ts +1 -0
  291. package/dist/hooks/index.js +1 -0
  292. package/dist/hooks/index.js.map +1 -1
  293. package/dist/hooks/use-media-query/index.d.ts +1 -0
  294. package/dist/hooks/use-media-query/index.js +2 -0
  295. package/dist/hooks/use-media-query/index.js.map +1 -0
  296. package/dist/hooks/use-media-query/use-media-query.d.ts +8 -0
  297. package/dist/hooks/use-media-query/use-media-query.js +22 -0
  298. package/dist/hooks/use-media-query/use-media-query.js.map +1 -0
  299. package/dist/hooks/use-pathname/use-pathname.d.ts +2 -1
  300. package/dist/hooks/use-pathname/use-pathname.js +28 -4
  301. package/dist/hooks/use-pathname/use-pathname.js.map +1 -1
  302. package/dist/internal/components/conditional-wrapper/conditional-wrapper.js.map +1 -0
  303. package/dist/internal/components/conditional-wrapper/conditional-wrapper.types.js.map +1 -0
  304. package/dist/internal/components/conditional-wrapper/index.js.map +1 -0
  305. package/dist/{internal-components → internal/components}/content-header/content-header.js +3 -3
  306. package/dist/internal/components/content-header/content-header.js.map +1 -0
  307. package/dist/{internal-components → internal/components}/content-header/content-header.types.d.ts +3 -3
  308. package/dist/internal/components/content-header/content-header.types.js.map +1 -0
  309. package/dist/internal/components/content-header/index.js.map +1 -0
  310. package/dist/{internal-components → internal/components}/dynamic-icon/dynamic-icon.js +1 -1
  311. package/dist/internal/components/dynamic-icon/dynamic-icon.js.map +1 -0
  312. package/dist/internal/components/dynamic-icon/dynamic-icon.types.d.ts +6 -0
  313. package/dist/internal/components/dynamic-icon/dynamic-icon.types.js.map +1 -0
  314. package/dist/internal/components/dynamic-icon/index.js.map +1 -0
  315. package/dist/internal/components/image/index.js.map +1 -0
  316. package/dist/{internal-components → internal/components}/image/is-html-image-props.d.ts +1 -1
  317. package/dist/internal/components/image/is-html-image-props.js.map +1 -0
  318. package/dist/{internal-components → internal/components}/image/render-image.d.ts +1 -1
  319. package/dist/{internal-components → internal/components}/image/render-image.js +1 -1
  320. package/dist/internal/components/image/render-image.js.map +1 -0
  321. package/dist/{internal-components → internal/components}/index.d.ts +1 -0
  322. package/dist/{internal-components → internal/components}/index.js +1 -0
  323. package/dist/internal/components/index.js.map +1 -0
  324. package/dist/internal/components/link/index.js.map +1 -0
  325. package/dist/{internal-components → internal/components}/link/link.js +1 -1
  326. package/dist/internal/components/link/link.js.map +1 -0
  327. package/dist/internal/components/link/link.types.js.map +1 -0
  328. package/dist/internal/components/modal-primitive/index.js.map +1 -0
  329. package/dist/{internal-components → internal/components}/modal-primitive/modal-primitive.js +1 -1
  330. package/dist/internal/components/modal-primitive/modal-primitive.js.map +1 -0
  331. package/dist/internal/components/modal-primitive/modal-primitive.types.js.map +1 -0
  332. package/dist/internal/components/nav-list-item/index.d.ts +2 -0
  333. package/dist/internal/components/nav-list-item/index.js +2 -0
  334. package/dist/internal/components/nav-list-item/index.js.map +1 -0
  335. package/dist/internal/components/nav-list-item/nav-list-item.d.ts +9 -0
  336. package/dist/internal/components/nav-list-item/nav-list-item.js +105 -0
  337. package/dist/internal/components/nav-list-item/nav-list-item.js.map +1 -0
  338. package/dist/internal/components/nav-list-item/nav-list-item.types.d.ts +24 -0
  339. package/dist/internal/components/nav-list-item/nav-list-item.types.js +2 -0
  340. package/dist/internal/components/nav-list-item/nav-list-item.types.js.map +1 -0
  341. package/dist/internal/components/optional-icon-button/index.js.map +1 -0
  342. package/dist/{internal-components → internal/components}/optional-icon-button/optional-icon-button.js +1 -1
  343. package/dist/internal/components/optional-icon-button/optional-icon-button.js.map +1 -0
  344. package/dist/{internal-components → internal/components}/optional-icon-button/optional-icon-button.types.d.ts +1 -1
  345. package/dist/internal/components/optional-icon-button/optional-icon-button.types.js.map +1 -0
  346. package/dist/internal/components/surface/index.js.map +1 -0
  347. package/dist/{internal-components → internal/components}/surface/surface.js +2 -2
  348. package/dist/internal/components/surface/surface.js.map +1 -0
  349. package/dist/{internal-components → internal/components}/surface/surface.types.d.ts +2 -2
  350. package/dist/internal/components/surface/surface.types.js.map +1 -0
  351. package/dist/internal/hooks/index.d.ts +2 -0
  352. package/dist/internal/hooks/index.js +3 -0
  353. package/dist/internal/hooks/index.js.map +1 -0
  354. package/dist/internal/hooks/use-controllable-state.d.ts +22 -0
  355. package/dist/internal/hooks/use-controllable-state.js +34 -0
  356. package/dist/internal/hooks/use-controllable-state.js.map +1 -0
  357. package/dist/internal/hooks/use-latest-ref.d.ts +7 -0
  358. package/dist/internal/hooks/use-latest-ref.js +16 -0
  359. package/dist/internal/hooks/use-latest-ref.js.map +1 -0
  360. package/dist/internal/index.d.ts +2 -0
  361. package/dist/internal/index.js +5 -0
  362. package/dist/internal/index.js.map +1 -0
  363. package/dist/styled-system/recipes/button.js +7 -0
  364. package/dist/styles/panda.css +1 -1
  365. package/package.json +4 -1
  366. package/dist/components/form-elements/dropdowns/dropdown/dropdown.d.ts +0 -13
  367. package/dist/components/form-elements/dropdowns/dropdown/dropdown.js +0 -41
  368. package/dist/components/form-elements/dropdowns/dropdown/dropdown.js.map +0 -1
  369. package/dist/components/form-elements/dropdowns/dropdown/dropdown.types.d.ts +0 -21
  370. package/dist/components/form-elements/dropdowns/dropdown/dropdown.types.js.map +0 -1
  371. package/dist/components/form-elements/dropdowns/dropdown/index.js.map +0 -1
  372. package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.d.ts +0 -8
  373. package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.js +0 -44
  374. package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.js.map +0 -1
  375. package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.types.d.ts +0 -26
  376. package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.types.js.map +0 -1
  377. package/dist/components/form-elements/dropdowns/dropdown-base/index.js.map +0 -1
  378. package/dist/components/form-elements/dropdowns/index.js.map +0 -1
  379. package/dist/components/form-elements/dropdowns/multi-dropdown/index.js.map +0 -1
  380. package/dist/components/form-elements/dropdowns/multi-dropdown/multi-dropdown.d.ts +0 -15
  381. package/dist/components/form-elements/dropdowns/multi-dropdown/multi-dropdown.js +0 -55
  382. package/dist/components/form-elements/dropdowns/multi-dropdown/multi-dropdown.js.map +0 -1
  383. package/dist/components/form-elements/dropdowns/multi-dropdown/multi-dropdown.types.d.ts +0 -25
  384. package/dist/components/form-elements/dropdowns/multi-dropdown/multi-dropdown.types.js.map +0 -1
  385. package/dist/components/form-elements/file-upload/components/file-input.d.ts +0 -1
  386. package/dist/components/form-elements/file-upload/components/file-input.js +0 -95
  387. package/dist/components/form-elements/file-upload/components/file-input.js.map +0 -1
  388. package/dist/components/form-elements/file-upload/components/file-upload-content.d.ts +0 -1
  389. package/dist/components/form-elements/file-upload/components/file-upload-content.js +0 -29
  390. package/dist/components/form-elements/file-upload/components/file-upload-content.js.map +0 -1
  391. package/dist/components/form-elements/file-upload/components/file-upload-preview.d.ts +0 -1
  392. package/dist/components/form-elements/file-upload/components/file-upload-preview.js +0 -51
  393. package/dist/components/form-elements/file-upload/components/file-upload-preview.js.map +0 -1
  394. package/dist/components/form-elements/file-upload/components/item-previews.d.ts +0 -11
  395. package/dist/components/form-elements/file-upload/components/item-previews.js +0 -58
  396. package/dist/components/form-elements/file-upload/components/item-previews.js.map +0 -1
  397. package/dist/components/form-elements/file-upload/file-upload-context.js.map +0 -1
  398. package/dist/components/form-elements/file-upload/file-upload.d.ts +0 -19
  399. package/dist/components/form-elements/file-upload/file-upload.js +0 -149
  400. package/dist/components/form-elements/file-upload/file-upload.js.map +0 -1
  401. package/dist/components/form-elements/file-upload/file-upload.types.d.ts +0 -36
  402. package/dist/components/form-elements/file-upload/file-upload.types.js.map +0 -1
  403. package/dist/components/form-elements/file-upload/index.d.ts +0 -3
  404. package/dist/components/form-elements/file-upload/index.js.map +0 -1
  405. package/dist/components/form-elements/form-label/form-label.d.ts +0 -8
  406. package/dist/components/form-elements/form-label/form-label.js +0 -32
  407. package/dist/components/form-elements/form-label/form-label.js.map +0 -1
  408. package/dist/components/form-elements/form-label/form-label.types.d.ts +0 -11
  409. package/dist/components/form-elements/form-label/form-label.types.js.map +0 -1
  410. package/dist/components/form-elements/form-label/index.js.map +0 -1
  411. package/dist/components/form-elements/index.js.map +0 -1
  412. package/dist/components/form-elements/input-props.types.d.ts +0 -21
  413. package/dist/components/form-elements/input-props.types.js.map +0 -1
  414. package/dist/components/form-elements/input-wrapper.d.ts +0 -4
  415. package/dist/components/form-elements/input-wrapper.js +0 -13
  416. package/dist/components/form-elements/input-wrapper.js.map +0 -1
  417. package/dist/components/form-elements/number-input/index.js.map +0 -1
  418. package/dist/components/form-elements/number-input/number-input.js.map +0 -1
  419. package/dist/components/form-elements/number-input/number-input.types.js.map +0 -1
  420. package/dist/components/form-elements/styles/index.js +0 -74
  421. package/dist/components/form-elements/styles/index.js.map +0 -1
  422. package/dist/components/form-elements/text-input/index.js.map +0 -1
  423. package/dist/components/form-elements/text-input/text-input.d.ts +0 -8
  424. package/dist/components/form-elements/text-input/text-input.js +0 -19
  425. package/dist/components/form-elements/text-input/text-input.js.map +0 -1
  426. package/dist/components/form-elements/text-input/text-input.types.js.map +0 -1
  427. package/dist/components/typography/typography.d.ts +0 -116
  428. package/dist/components/typography/typography.js +0 -249
  429. package/dist/components/typography/typography.js.map +0 -1
  430. package/dist/internal-components/conditional-wrapper/conditional-wrapper.js.map +0 -1
  431. package/dist/internal-components/conditional-wrapper/conditional-wrapper.types.js.map +0 -1
  432. package/dist/internal-components/conditional-wrapper/index.js.map +0 -1
  433. package/dist/internal-components/content-header/content-header.js.map +0 -1
  434. package/dist/internal-components/content-header/content-header.types.js.map +0 -1
  435. package/dist/internal-components/content-header/index.js.map +0 -1
  436. package/dist/internal-components/dynamic-icon/dynamic-icon.js.map +0 -1
  437. package/dist/internal-components/dynamic-icon/dynamic-icon.types.d.ts +0 -6
  438. package/dist/internal-components/dynamic-icon/dynamic-icon.types.js.map +0 -1
  439. package/dist/internal-components/dynamic-icon/index.js.map +0 -1
  440. package/dist/internal-components/image/index.js.map +0 -1
  441. package/dist/internal-components/image/is-html-image-props.js.map +0 -1
  442. package/dist/internal-components/image/render-image.js.map +0 -1
  443. package/dist/internal-components/index.js.map +0 -1
  444. package/dist/internal-components/link/index.js.map +0 -1
  445. package/dist/internal-components/link/link.js.map +0 -1
  446. package/dist/internal-components/link/link.types.js.map +0 -1
  447. package/dist/internal-components/modal-primitive/index.js.map +0 -1
  448. package/dist/internal-components/modal-primitive/modal-primitive.js.map +0 -1
  449. package/dist/internal-components/modal-primitive/modal-primitive.types.js.map +0 -1
  450. package/dist/internal-components/optional-icon-button/index.js.map +0 -1
  451. package/dist/internal-components/optional-icon-button/optional-icon-button.js.map +0 -1
  452. package/dist/internal-components/optional-icon-button/optional-icon-button.types.js.map +0 -1
  453. package/dist/internal-components/surface/index.js.map +0 -1
  454. package/dist/internal-components/surface/surface.js.map +0 -1
  455. package/dist/internal-components/surface/surface.types.js.map +0 -1
  456. /package/dist/components/{form-elements → data-input}/dropdowns/dropdown/dropdown.types.js +0 -0
  457. /package/dist/components/{form-elements → data-input}/dropdowns/dropdown/index.d.ts +0 -0
  458. /package/dist/components/{form-elements → data-input}/dropdowns/dropdown/index.js +0 -0
  459. /package/dist/components/{form-elements → data-input}/dropdowns/dropdown-base/dropdown-base.types.js +0 -0
  460. /package/dist/components/{form-elements → data-input}/dropdowns/dropdown-base/index.d.ts +0 -0
  461. /package/dist/components/{form-elements → data-input}/dropdowns/dropdown-base/index.js +0 -0
  462. /package/dist/components/{form-elements → data-input}/dropdowns/index.d.ts +0 -0
  463. /package/dist/components/{form-elements → data-input}/dropdowns/index.js +0 -0
  464. /package/dist/components/{form-elements → data-input}/dropdowns/multi-dropdown/index.d.ts +0 -0
  465. /package/dist/components/{form-elements → data-input}/dropdowns/multi-dropdown/index.js +0 -0
  466. /package/dist/components/{form-elements → data-input}/dropdowns/multi-dropdown/multi-dropdown.types.js +0 -0
  467. /package/dist/components/{form-elements → data-input}/file-upload/file-upload-context.d.ts +0 -0
  468. /package/dist/components/{form-elements → data-input}/file-upload/file-upload-context.js +0 -0
  469. /package/dist/components/{form-elements → data-input}/file-upload/file-upload.types.js +0 -0
  470. /package/dist/components/{form-elements → data-input}/file-upload/index.js +0 -0
  471. /package/dist/components/{form-elements → data-input}/number-input/index.d.ts +0 -0
  472. /package/dist/components/{form-elements → data-input}/number-input/index.js +0 -0
  473. /package/dist/components/{form-elements → data-input}/number-input/number-input.types.js +0 -0
  474. /package/dist/components/{form-elements → data-input/shared}/form-label/form-label.types.js +0 -0
  475. /package/dist/components/{form-elements → data-input/shared}/form-label/index.d.ts +0 -0
  476. /package/dist/components/{form-elements → data-input/shared}/form-label/index.js +0 -0
  477. /package/dist/components/{form-elements → data-input/shared}/input-props.types.js +0 -0
  478. /package/dist/components/{form-elements → data-input}/text-input/index.d.ts +0 -0
  479. /package/dist/components/{form-elements → data-input}/text-input/index.js +0 -0
  480. /package/dist/components/{form-elements → data-input}/text-input/text-input.types.js +0 -0
  481. /package/dist/{internal-components → internal/components}/conditional-wrapper/conditional-wrapper.d.ts +0 -0
  482. /package/dist/{internal-components → internal/components}/conditional-wrapper/conditional-wrapper.js +0 -0
  483. /package/dist/{internal-components → internal/components}/conditional-wrapper/conditional-wrapper.types.d.ts +0 -0
  484. /package/dist/{internal-components → internal/components}/conditional-wrapper/conditional-wrapper.types.js +0 -0
  485. /package/dist/{internal-components → internal/components}/conditional-wrapper/index.d.ts +0 -0
  486. /package/dist/{internal-components → internal/components}/conditional-wrapper/index.js +0 -0
  487. /package/dist/{internal-components → internal/components}/content-header/content-header.d.ts +0 -0
  488. /package/dist/{internal-components → internal/components}/content-header/content-header.types.js +0 -0
  489. /package/dist/{internal-components → internal/components}/content-header/index.d.ts +0 -0
  490. /package/dist/{internal-components → internal/components}/content-header/index.js +0 -0
  491. /package/dist/{internal-components → internal/components}/dynamic-icon/dynamic-icon.d.ts +0 -0
  492. /package/dist/{internal-components → internal/components}/dynamic-icon/dynamic-icon.types.js +0 -0
  493. /package/dist/{internal-components → internal/components}/dynamic-icon/index.d.ts +0 -0
  494. /package/dist/{internal-components → internal/components}/dynamic-icon/index.js +0 -0
  495. /package/dist/{internal-components → internal/components}/image/index.d.ts +0 -0
  496. /package/dist/{internal-components → internal/components}/image/index.js +0 -0
  497. /package/dist/{internal-components → internal/components}/image/is-html-image-props.js +0 -0
  498. /package/dist/{internal-components → internal/components}/link/index.d.ts +0 -0
  499. /package/dist/{internal-components → internal/components}/link/index.js +0 -0
  500. /package/dist/{internal-components → internal/components}/link/link.d.ts +0 -0
  501. /package/dist/{internal-components → internal/components}/link/link.types.d.ts +0 -0
  502. /package/dist/{internal-components → internal/components}/link/link.types.js +0 -0
  503. /package/dist/{internal-components → internal/components}/modal-primitive/index.d.ts +0 -0
  504. /package/dist/{internal-components → internal/components}/modal-primitive/index.js +0 -0
  505. /package/dist/{internal-components → internal/components}/modal-primitive/modal-primitive.d.ts +0 -0
  506. /package/dist/{internal-components → internal/components}/modal-primitive/modal-primitive.types.d.ts +0 -0
  507. /package/dist/{internal-components → internal/components}/modal-primitive/modal-primitive.types.js +0 -0
  508. /package/dist/{internal-components → internal/components}/optional-icon-button/index.d.ts +0 -0
  509. /package/dist/{internal-components → internal/components}/optional-icon-button/index.js +0 -0
  510. /package/dist/{internal-components → internal/components}/optional-icon-button/optional-icon-button.d.ts +0 -0
  511. /package/dist/{internal-components → internal/components}/optional-icon-button/optional-icon-button.types.js +0 -0
  512. /package/dist/{internal-components → internal/components}/surface/index.d.ts +0 -0
  513. /package/dist/{internal-components → internal/components}/surface/index.js +0 -0
  514. /package/dist/{internal-components → internal/components}/surface/surface.d.ts +0 -0
  515. /package/dist/{internal-components → internal/components}/surface/surface.types.js +0 -0
@@ -0,0 +1,154 @@
1
+ 'use client';
2
+ import { useEffect, useRef, useState } from 'react';
3
+ import { useControllableState } from '../../../internal';
4
+ import { getErrorId, useFieldError } from '../shared/use-field-error';
5
+ import { formatBytes, isImageItem, isRemoteFile, matchesAccept, withFileMeta, } from './file-upload.utils';
6
+ /**
7
+ * State and form wiring for `FileUpload`: controllable value, validation of picked files,
8
+ * keys that survive renames, a native file input kept in sync via `DataTransfer`,
9
+ * and the metadata JSON submitted alongside the files.
10
+ *
11
+ * @example
12
+ * const upload = useFileUpload({ id, name, value, onChange, accept: 'image/*', maxFiles: 3 });
13
+ */
14
+ export const useFileUpload = ({ id, name, value, defaultValue, onChange, accept, maxSize, maxFiles, required, disabled, error, }) => {
15
+ const inputRef = useRef(null);
16
+ const browseRef = useRef(null);
17
+ // Stable keys for new files; carried over when a rename creates a new `File`
18
+ const keysRef = useRef(new WeakMap());
19
+ const keyCounter = useRef(0);
20
+ const [items, setItems] = useControllableState({
21
+ value,
22
+ defaultValue: defaultValue ?? [],
23
+ onChange,
24
+ elementRef: inputRef,
25
+ });
26
+ // Feedback for a rejected pick; describes the pick, not the value, so it never blocks submission
27
+ const [status, setStatus] = useState(null);
28
+ // First file of the latest add, focused by its editor in `on-add` mode
29
+ const [focusKey, setFocusKey] = useState(null);
30
+ const remoteFiles = items.filter(isRemoteFile);
31
+ const newFiles = items.filter((item) => !isRemoteFile(item));
32
+ const isFull = maxFiles !== undefined && items.length >= maxFiles;
33
+ const getKey = (item) => {
34
+ if (isRemoteFile(item))
35
+ return `remote-${item.id ?? item.src}`;
36
+ let key = keysRef.current.get(item);
37
+ if (!key) {
38
+ key = `file-${keyCounter.current++}`;
39
+ keysRef.current.set(item, key);
40
+ }
41
+ return key;
42
+ };
43
+ const syncInput = (files) => {
44
+ const input = inputRef.current;
45
+ if (!input)
46
+ return;
47
+ const transfer = new DataTransfer();
48
+ files.forEach((file) => transfer.items.add(file));
49
+ input.files = transfer.files;
50
+ };
51
+ // Mirror new files into the native input so they submit with the form and satisfy `required`.
52
+ // Declared before `useFieldError` so validity is current when it refreshes
53
+ useEffect(() => {
54
+ syncInput(newFiles);
55
+ }, [items]);
56
+ const { ref, message: fieldMessage, validationProps, ariaProps, } = useFieldError({
57
+ id,
58
+ error,
59
+ value: items.length,
60
+ elementRef: inputRef,
61
+ focusRef: browseRef,
62
+ });
63
+ const message = error || status || fieldMessage;
64
+ const addFiles = (files) => {
65
+ if (disabled)
66
+ return;
67
+ const accepted = [];
68
+ let rejection = null;
69
+ let remaining = maxFiles === undefined ? Infinity : maxFiles - items.length;
70
+ for (const file of Array.from(files)) {
71
+ if (!matchesAccept(file, accept)) {
72
+ rejection = `"${file.name}" isn't a supported file type`;
73
+ continue;
74
+ }
75
+ if (maxSize !== undefined && file.size > maxSize) {
76
+ rejection = `"${file.name}" is larger than ${formatBytes(maxSize)}`;
77
+ continue;
78
+ }
79
+ if (remaining <= 0) {
80
+ rejection = `You can add up to ${maxFiles} ${maxFiles === 1 ? 'file' : 'files'}`;
81
+ continue;
82
+ }
83
+ accepted.push(file);
84
+ remaining--;
85
+ }
86
+ setStatus(rejection);
87
+ if (accepted.length === 0)
88
+ return;
89
+ setItems([...items, ...accepted]);
90
+ setFocusKey(getKey(accepted[0]));
91
+ };
92
+ const removeItem = (key) => {
93
+ setItems(items.filter((item) => getKey(item) !== key));
94
+ setStatus(null);
95
+ };
96
+ const updateItem = (key, meta) => {
97
+ setItems(items.map((item) => {
98
+ if (isRemoteFile(item) || getKey(item) !== key)
99
+ return item;
100
+ const next = withFileMeta(item, meta);
101
+ keysRef.current.set(next, key);
102
+ return next;
103
+ }));
104
+ };
105
+ const openPicker = () => inputRef.current?.click();
106
+ const handleInputChange = (e) => {
107
+ const picked = Array.from(e.target.files ?? []);
108
+ // The picker replaced the input's files; restore ours so rejected picks never submit
109
+ syncInput(newFiles);
110
+ addFiles(picked);
111
+ };
112
+ // Metadata ordered to match `formData.getAll(name)`: existing files render first, then the file input
113
+ const meta = JSON.stringify([
114
+ ...remoteFiles.map((file) => ({ id: file.id ?? file.src })),
115
+ ...newFiles.map((file) => ({
116
+ name: file.name,
117
+ ...(isImageItem(file) ? { alt: file.alt ?? '' } : {}),
118
+ })),
119
+ ]);
120
+ const inputProps = {
121
+ ref,
122
+ ...validationProps,
123
+ id,
124
+ name,
125
+ type: 'file',
126
+ accept,
127
+ multiple: maxFiles !== 1,
128
+ // Existing files can't live in a file input, so they satisfy `required` by switching it off
129
+ required: required && remoteFiles.length === 0,
130
+ disabled,
131
+ onChange: handleInputChange,
132
+ };
133
+ const browseAriaProps = {
134
+ 'aria-invalid': ariaProps['aria-invalid'],
135
+ 'aria-describedby': message ? getErrorId(id) : undefined,
136
+ };
137
+ return {
138
+ items,
139
+ remoteFiles,
140
+ isFull,
141
+ focusKey,
142
+ message,
143
+ meta,
144
+ inputProps,
145
+ browseRef,
146
+ browseAriaProps,
147
+ getKey,
148
+ addFiles,
149
+ removeItem,
150
+ updateItem,
151
+ openPicker,
152
+ };
153
+ };
154
+ //# sourceMappingURL=use-file-upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-file-upload.js","sourceRoot":"","sources":["../../../../src/components/data-input/file-upload/use-file-upload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Object URL for previewing a `File`, revoked when the file changes or the component unmounts.
3
+ * Returns `null` while no file is given.
4
+ *
5
+ * @example
6
+ * const url = useObjectUrl(file);
7
+ * return url && <img src={url} alt="" />;
8
+ */
9
+ export declare const useObjectUrl: (file: File | null) => string | null;
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+ import { useEffect, useState } from 'react';
3
+ /**
4
+ * Object URL for previewing a `File`, revoked when the file changes or the component unmounts.
5
+ * Returns `null` while no file is given.
6
+ *
7
+ * @example
8
+ * const url = useObjectUrl(file);
9
+ * return url && <img src={url} alt="" />;
10
+ */
11
+ export const useObjectUrl = (file) => {
12
+ const [url, setUrl] = useState(null);
13
+ useEffect(() => {
14
+ if (!file) {
15
+ setUrl(null);
16
+ return;
17
+ }
18
+ const next = URL.createObjectURL(file);
19
+ setUrl(next);
20
+ return () => URL.revokeObjectURL(next);
21
+ }, [file]);
22
+ return url;
23
+ };
24
+ //# sourceMappingURL=use-object-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-object-url.js","sourceRoot":"","sources":["../../../../src/components/data-input/file-upload/use-object-url.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAiB,EAAE,EAAE;IACjD,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,CAAC;YACb,OAAO;QACR,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,CAAC;QACb,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from './dropdowns';
2
2
  export * from './file-upload';
3
- export * from './form-label';
3
+ export * from './shared/form-label';
4
+ export * from './reorderable';
4
5
  export * from './number-input';
5
6
  export * from './text-input';
@@ -1,6 +1,7 @@
1
1
  export * from './dropdowns';
2
2
  export * from './file-upload';
3
- export * from './form-label';
3
+ export * from './shared/form-label';
4
+ export * from './reorderable';
4
5
  export * from './number-input';
5
6
  export * from './text-input';
6
7
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/data-input/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/data-input/number-input/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -2,6 +2,7 @@ import { NumberInputProps } from './number-input.types';
2
2
  /**
3
3
  * Number input with increment/decrement buttons and optional min/max range enforcement.
4
4
  * Blocks non-numeric keyboard input and respects range bounds on both direct input and stepping.
5
+ * Controlled when `value` is passed, uncontrolled otherwise.
5
6
  *
6
7
  * @example
7
8
  * <NumberInput
@@ -12,5 +13,8 @@ import { NumberInputProps } from './number-input.types';
12
13
  * max={99}
13
14
  * onChange={handleChange}
14
15
  * />
16
+ *
17
+ * @example
18
+ * <NumberInput name="quantity" title="Quantity" defaultValue={1} min={1} max={99} />
15
19
  */
16
- export declare const NumberInput: ({ name, id, title, value, placeholder, required, min, max, size, disabled, onChange, }: NumberInputProps) => import("react/jsx-runtime").JSX.Element;
20
+ export declare const NumberInput: ({ name, id: idProp, title, value, defaultValue, placeholder, required, min, max, size, disabled, divider, error, onChange, }: NumberInputProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,12 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Icon } from '../../../components';
4
- import { FormLabel } from '../form-label';
5
- import { InputWrapper } from '../input-wrapper';
6
- import { inputIconSizes, inputSegmentStyles } from '../styles';
7
- import { useState, useEffect } from 'react';
4
+ import { InputWrapper } from '../shared/input-wrapper';
5
+ import { useFieldError } from '../shared/use-field-error';
6
+ import { useControllableState } from '../../../internal';
7
+ import { useInputId } from '../shared/use-input-id';
8
+ import { inputIconSizes, inputSegmentStyles } from '../shared/styles';
9
+ import { useRef } from 'react';
8
10
  import { cva, cx } from '../../../styled-system/css';
9
11
  const styles = {
10
12
  arrowButton: cva({
@@ -33,8 +35,6 @@ const styles = {
33
35
  }),
34
36
  centerSegment: cva({
35
37
  base: {
36
- color: 'text.standard',
37
- backgroundColor: 'inset',
38
38
  textAlign: 'center',
39
39
  appearance: 'none',
40
40
  '&::-webkit-outer-spin-button': {
@@ -43,10 +43,6 @@ const styles = {
43
43
  '&::-webkit-inner-spin-button': {
44
44
  appearance: 'none',
45
45
  },
46
- _focus: {
47
- ringColor: 'info.main',
48
- borderColor: 'info.main',
49
- },
50
46
  },
51
47
  variants: {
52
48
  size: {
@@ -72,15 +68,6 @@ const styles = {
72
68
  alignItems: 'stretch',
73
69
  alignSelf: 'start',
74
70
  },
75
- variants: {
76
- disabled: {
77
- true: { opacity: '0.5', cursor: 'not-allowed' },
78
- false: {},
79
- },
80
- },
81
- defaultVariants: {
82
- disabled: false,
83
- },
84
71
  }),
85
72
  };
86
73
  const valueWithinRange = (value, min, max) => {
@@ -95,6 +82,7 @@ const valueWithinRange = (value, min, max) => {
95
82
  /**
96
83
  * Number input with increment/decrement buttons and optional min/max range enforcement.
97
84
  * Blocks non-numeric keyboard input and respects range bounds on both direct input and stepping.
85
+ * Controlled when `value` is passed, uncontrolled otherwise.
98
86
  *
99
87
  * @example
100
88
  * <NumberInput
@@ -105,14 +93,25 @@ const valueWithinRange = (value, min, max) => {
105
93
  * max={99}
106
94
  * onChange={handleChange}
107
95
  * />
96
+ *
97
+ * @example
98
+ * <NumberInput name="quantity" title="Quantity" defaultValue={1} min={1} max={99} />
108
99
  */
109
- export const NumberInput = ({ name, id = name, title, value, placeholder, required, min, max, size = 'md', disabled, onChange, }) => {
110
- // Initialize state with the value from props or null
111
- const [num, setNum] = useState(value ?? null);
112
- // Update internal state
113
- useEffect(() => {
114
- setNum(value ?? null);
115
- }, [value]);
100
+ export const NumberInput = ({ name, id: idProp, title, value, defaultValue, placeholder, required, min, max, size = 'md', disabled, divider, error, onChange, }) => {
101
+ const id = useInputId(idProp, name);
102
+ const inputRef = useRef(null);
103
+ // Internal state only backs the uncontrolled case; a controlled parent owns the value
104
+ const [num, setNum] = useControllableState({
105
+ value,
106
+ defaultValue: defaultValue ?? null,
107
+ elementRef: inputRef,
108
+ });
109
+ const { ref, message, fieldProps } = useFieldError({
110
+ id,
111
+ error,
112
+ value: num,
113
+ elementRef: inputRef,
114
+ });
116
115
  // Handle Num Increment
117
116
  const handleIncrement = (increment) => () => {
118
117
  const newValue = (num ?? 0) + increment;
@@ -157,28 +156,28 @@ export const NumberInput = ({ name, id = name, title, value, placeholder, requir
157
156
  }
158
157
  }
159
158
  };
160
- return (_jsxs(InputWrapper, { children: [title && _jsx(FormLabel, { id: id, name: name, title: title, size: size }), _jsxs("div", { className: styles.container({ disabled: disabled }), children: [_jsx("button", { type: "button", className: cx(styles.arrowButton({ direction: 'left' }), inputSegmentStyles({ size })), onClick: handleIncrement(-1), children: _jsx(Icon, { name: "CaretLeft", color: "gray", size: inputIconSizes[size] }) }), _jsx("input", { type: "number", id: id, name: name, placeholder: placeholder, value: num ?? '', onChange: handleInputChange, className: cx(inputSegmentStyles({ size }), styles.centerSegment({ size })), onKeyDown: (e) => {
161
- // Allow minus sign as first character if negative values are allowed
162
- if (e.key === '-' &&
163
- e.currentTarget.value.length === 0 &&
164
- (min === undefined || min < 0)) {
165
- return; // Allow the minus sign
166
- }
167
- // Prevent non-numeric input except allowed control keys
168
- if (!/[0-9]/.test(e.key) &&
169
- !e.ctrlKey &&
170
- !e.metaKey &&
171
- ![
172
- 'Backspace',
173
- 'Delete',
174
- 'ArrowLeft',
175
- 'ArrowRight',
176
- 'Tab',
177
- 'Home',
178
- 'End',
179
- ].includes(e.key)) {
180
- e.preventDefault();
181
- }
182
- }, required: required, disabled: disabled, min: min, max: max }), _jsx("button", { type: "button", className: cx(styles.arrowButton({ direction: 'right' }), inputSegmentStyles({ size })), onClick: handleIncrement(1), disabled: disabled, children: _jsx(Icon, { name: "CaretRight", color: "gray", size: inputIconSizes[size] }) })] })] }));
159
+ return (_jsx(InputWrapper, { id: id, title: title, size: size, divider: divider, error: message, children: _jsxs("div", { className: styles.container(), children: [_jsx("button", { type: "button", className: cx(styles.arrowButton({ direction: 'left' }), inputSegmentStyles({ size })), onClick: handleIncrement(-1), disabled: disabled, children: _jsx(Icon, { name: "CaretLeft", color: "gray", size: inputIconSizes[size] }) }), _jsx("input", { ref: ref, type: "number", id: id, name: name, placeholder: placeholder, value: num ?? '', onChange: handleInputChange, className: cx(inputSegmentStyles({ size, field: true }), styles.centerSegment({ size })), onKeyDown: (e) => {
160
+ // Allow minus sign as first character if negative values are allowed
161
+ if (e.key === '-' &&
162
+ e.currentTarget.value.length === 0 &&
163
+ (min === undefined || min < 0)) {
164
+ return; // Allow the minus sign
165
+ }
166
+ // Prevent non-numeric input except allowed control keys
167
+ if (!/[0-9]/.test(e.key) &&
168
+ !e.ctrlKey &&
169
+ !e.metaKey &&
170
+ ![
171
+ 'Backspace',
172
+ 'Delete',
173
+ 'ArrowLeft',
174
+ 'ArrowRight',
175
+ 'Tab',
176
+ 'Home',
177
+ 'End',
178
+ ].includes(e.key)) {
179
+ e.preventDefault();
180
+ }
181
+ }, required: required, disabled: disabled, min: min, max: max, ...fieldProps }), _jsx("button", { type: "button", className: cx(styles.arrowButton({ direction: 'right' }), inputSegmentStyles({ size })), onClick: handleIncrement(1), disabled: disabled, children: _jsx(Icon, { name: "CaretRight", color: "gray", size: inputIconSizes[size] }) })] }) }));
183
182
  };
184
183
  //# sourceMappingURL=number-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-input.js","sourceRoot":"","sources":["../../../../src/components/data-input/number-input/number-input.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Prettify } from '../../../types';
2
- import { InputProps } from '../input-props.types';
2
+ import { InputProps } from '../shared/input-props.types';
3
3
  export type NumberInputProps = Prettify<InputProps<number | null> & {
4
4
  /** Minimum allowed value */
5
5
  min?: number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-input.types.js","sourceRoot":"","sources":["../../../../src/components/data-input/number-input/number-input.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from './reorderable-list';
2
+ export * from './reorderable-groups';
3
+ export type { ReorderableItem, ReorderableLayout, ReorderableWrapperProps, ReorderableWrapper, DragHandleProps, ReorderableItemChangeHandler, ReorderableItemProps, ReorderableItemComponent, FormValueMode, ReorderableGroupsFormValue, } from './shared';
4
+ export { parseReorderableValue, parseReorderableGroups } from './shared';
@@ -0,0 +1,4 @@
1
+ export * from './reorderable-list';
2
+ export * from './reorderable-groups';
3
+ export { parseReorderableValue, parseReorderableGroups } from './shared';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/data-input/reorderable/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAarC,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ReorderableGroup, ReorderableGroupTitleProps } from './reorderable-groups.types';
2
+ /**
3
+ * Default group title: the drag handle followed by the `title`. A string `title` renders as semibold `Text`; a node renders as-is.
4
+ *
5
+ * @example
6
+ * <GroupTitle group={group} dragHandle={dragHandle} isDragging={false} size="md" />
7
+ */
8
+ export declare const GroupTitle: <G extends ReorderableGroup>({ group, dragHandle, size, }: ReorderableGroupTitleProps<G>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { css } from '../../../../styled-system/css';
4
+ import { Text } from '../../../../components/typography';
5
+ const styles = {
6
+ root: css({
7
+ display: 'flex',
8
+ alignItems: 'center',
9
+ gap: '1',
10
+ minWidth: '0',
11
+ }),
12
+ };
13
+ /**
14
+ * Default group title: the drag handle followed by the `title`. A string `title` renders as semibold `Text`; a node renders as-is.
15
+ *
16
+ * @example
17
+ * <GroupTitle group={group} dragHandle={dragHandle} isDragging={false} size="md" />
18
+ */
19
+ export const GroupTitle = ({ group, dragHandle, size, }) => (_jsxs("div", { className: styles.root, children: [dragHandle, typeof group.title === 'string' ? (_jsx(Text, { marginBottom: false, weight: "semibold", size: size, children: group.title })) : (group.title)] }));
20
+ //# sourceMappingURL=group-title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-title.js","sourceRoot":"","sources":["../../../../../src/components/data-input/reorderable/reorderable-groups/group-title.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAG/C,MAAM,MAAM,GAAG;IACd,IAAI,EAAE,GAAG,CAAC;QACT,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,GAAG,EAAE,GAAG;QACR,QAAQ,EAAE,GAAG;KACb,CAAC;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAA6B,EACtD,KAAK,EACL,UAAU,EACV,IAAI,GAC2B,EAAE,EAAE,CAAC,CACpC,eAAK,SAAS,EAAE,MAAM,CAAC,IAAI,aACzB,UAAU,EACV,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAClC,KAAC,IAAI,IAAC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAC,UAAU,EAAC,IAAI,EAAE,IAAI,YACrD,KAAK,CAAC,KAAK,GACN,CACP,CAAC,CAAC,CAAC,CACH,KAAK,CAAC,KAAK,CACX,IACI,CACN,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { UniqueIdentifier } from '@dnd-kit/core';
2
+ import type { ReorderableItem } from '../shared';
3
+ import type { GroupItem, ReorderableGroup } from './reorderable-groups.types';
4
+ /** Kind of dnd-kit node, encoded as the key prefix. */
5
+ export type NodeKind = 'group' | 'item' | 'container';
6
+ export declare const groupKey: (id: ReorderableItem["id"]) => string;
7
+ export declare const itemKey: (id: ReorderableItem["id"]) => string;
8
+ export declare const containerKey: (id: ReorderableItem["id"]) => string;
9
+ export declare const nodeKind: (key: UniqueIdentifier) => NodeKind;
10
+ export declare const itemsOf: <G extends ReorderableGroup>(group: G) => GroupItem<G>[];
11
+ export declare const withItems: <G extends ReorderableGroup>(group: G, items: GroupItem<G>[]) => G;
12
+ export declare const findGroupIndex: <G extends ReorderableGroup>(groups: G[], key: UniqueIdentifier) => number;
13
+ export declare const defaultGetGroupLabel: (group: ReorderableGroup, index: number) => string;
@@ -0,0 +1,26 @@
1
+ // Namespaced dnd-kit keys so group and item ids never collide
2
+ export const groupKey = (id) => `group:${id}`;
3
+ export const itemKey = (id) => `item:${id}`;
4
+ export const containerKey = (id) => `container:${id}`;
5
+ export const nodeKind = (key) => String(key).split(':', 1)[0];
6
+ // Typed item access for a generic group
7
+ export const itemsOf = (group) => group.items;
8
+ export const withItems = (group, items) => ({
9
+ ...group,
10
+ items,
11
+ });
12
+ // Index of the group holding the node `key` points at
13
+ export const findGroupIndex = (groups, key) => {
14
+ switch (nodeKind(key)) {
15
+ case 'item':
16
+ return groups.findIndex((group) => group.items.some((item) => itemKey(item.id) === key));
17
+ case 'container':
18
+ return groups.findIndex((group) => containerKey(group.id) === key);
19
+ case 'group':
20
+ return groups.findIndex((group) => groupKey(group.id) === key);
21
+ default:
22
+ return -1;
23
+ }
24
+ };
25
+ export const defaultGetGroupLabel = (group, index) => typeof group.title === 'string' ? group.title : `Group ${index + 1}`;
26
+ //# sourceMappingURL=group-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-utils.js","sourceRoot":"","sources":["../../../../../src/components/data-input/reorderable/reorderable-groups/group-utils.ts"],"names":[],"mappings":"AAOA,8DAA8D;AAC9D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAyB,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC;AACrE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAyB,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;AACnE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAyB,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;AAC7E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAa,CAAC;AAE5F,wCAAwC;AACxC,MAAM,CAAC,MAAM,OAAO,GAAG,CAA6B,KAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,KAAuB,CAAC;AAC/F,MAAM,CAAC,MAAM,SAAS,GAAG,CAA6B,KAAQ,EAAE,KAAqB,EAAK,EAAE,CAAC,CAAC;IAC7F,GAAG,KAAK;IACR,KAAK;CACL,CAAC,CAAC;AAEH,sDAAsD;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,CAA6B,MAAW,EAAE,GAAqB,EAAE,EAAE;IAChG,QAAQ,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,MAAM;YACV,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CACjC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CACpD,CAAC;QACH,KAAK,WAAW;YACf,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;QACpE,KAAK,OAAO;YACX,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;QAChE;YACC,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAuB,EAAE,KAAa,EAAE,EAAE,CAC9E,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type { ReorderableGroup, GroupItem, GroupTitlePosition, ReorderableGroupTitleProps, ReorderableGroupTitleComponent, ReorderableGroupsProps, } from './reorderable-groups.types';
2
+ export { ReorderableGroups } from './reorderable-groups';
@@ -0,0 +1,2 @@
1
+ export { ReorderableGroups } from './reorderable-groups';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/data-input/reorderable/reorderable-groups/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ReorderableGroup, ReorderableGroupsProps } from './reorderable-groups.types';
2
+ /**
3
+ * Controlled input of titled groups whose items can be reordered within a group and moved between groups by pointer, touch, or keyboard. Groups can be reordered too unless `sortableGroups` is `false`. Set `name` to submit the structure as JSON.
4
+ *
5
+ * @example
6
+ * const [tiers, setTiers] = useState(initialTiers);
7
+ *
8
+ * <ReorderableGroups
9
+ * name="tiers"
10
+ * title="Tier List"
11
+ * value={tiers}
12
+ * onChange={setTiers}
13
+ * ItemComponent={TierTile}
14
+ * titlePosition="start"
15
+ * sortableGroups={false}
16
+ * />
17
+ */
18
+ export declare const ReorderableGroups: <G extends ReorderableGroup>({ value, orderProperty, ItemComponent, onChange, getItemLabel, getGroupLabel, GroupTitleComponent, titlePosition, sortableGroups, layout, groupLayout, ItemsWrapper, GroupsWrapper, name, id: idProp, title, size, divider, secondaryContent, }: ReorderableGroupsProps<G>) => import("react/jsx-runtime").JSX.Element;