draft-components 1.12.0 → 2.0.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 (593) hide show
  1. package/{css → dist/css}/draft-components.css +553 -558
  2. package/{css → dist/css}/draft-components.dark.css +185 -113
  3. package/dist/esm/components/alert/alert.d.ts +15 -0
  4. package/dist/esm/components/alert/alert.js +12 -0
  5. package/dist/esm/components/alert/index.d.ts +1 -0
  6. package/dist/esm/components/alert/index.js +1 -0
  7. package/{types → dist/esm}/components/avatar/avatar.d.ts +8 -7
  8. package/dist/esm/components/avatar/avatar.js +41 -0
  9. package/dist/esm/components/avatar/index.d.ts +1 -0
  10. package/dist/esm/components/avatar/index.js +1 -0
  11. package/dist/esm/components/avatar-group/avatar-group.js +5 -0
  12. package/dist/esm/components/avatar-group/index.d.ts +1 -0
  13. package/dist/esm/components/avatar-group/index.js +1 -0
  14. package/{esm → dist/esm}/components/badge/badge.js +3 -6
  15. package/dist/esm/components/badge/index.d.ts +1 -0
  16. package/dist/esm/components/badge/index.js +1 -0
  17. package/dist/esm/components/breadcrumbs/breadcrumbs-context.js +13 -0
  18. package/dist/esm/components/breadcrumbs/breadcrumbs-item.js +16 -0
  19. package/dist/esm/components/breadcrumbs/breadcrumbs.js +7 -0
  20. package/dist/esm/components/breadcrumbs/index.d.ts +2 -0
  21. package/dist/esm/components/breadcrumbs/index.js +2 -0
  22. package/{types → dist/esm}/components/button/button.d.ts +12 -10
  23. package/dist/esm/components/button/button.js +22 -0
  24. package/dist/esm/components/button/icon-button.d.ts +4 -0
  25. package/dist/esm/components/button/icon-button.js +7 -0
  26. package/dist/esm/components/button/index.d.ts +2 -0
  27. package/dist/esm/components/button/index.js +2 -0
  28. package/dist/esm/components/button-group/button-group.js +5 -0
  29. package/dist/esm/components/button-group/index.d.ts +1 -0
  30. package/dist/esm/components/button-group/index.js +1 -0
  31. package/dist/esm/components/caption/caption.d.ts +10 -0
  32. package/dist/esm/components/caption/caption.js +10 -0
  33. package/dist/esm/components/caption/index.d.ts +1 -0
  34. package/dist/esm/components/caption/index.js +1 -0
  35. package/dist/esm/components/checkbox/checkbox.js +15 -0
  36. package/dist/esm/components/checkbox/index.d.ts +1 -0
  37. package/dist/esm/components/checkbox/index.js +1 -0
  38. package/dist/esm/components/color-picker/color-picker-button.js +11 -0
  39. package/{esm → dist/esm}/components/color-picker/color-picker.js +4 -7
  40. package/dist/esm/components/color-picker/index.d.ts +1 -0
  41. package/dist/esm/components/color-picker/index.js +1 -0
  42. package/{esm → dist/esm}/components/date-picker/calendar-day.js +4 -7
  43. package/{types → dist/esm}/components/date-picker/calendar-grid-head.d.ts +1 -1
  44. package/dist/esm/components/date-picker/calendar-grid-head.js +11 -0
  45. package/{types → dist/esm}/components/date-picker/calendar-grid.d.ts +2 -2
  46. package/{esm → dist/esm}/components/date-picker/calendar-grid.js +7 -10
  47. package/dist/esm/components/date-picker/calendar-header.js +43 -0
  48. package/{types → dist/esm}/components/date-picker/calendar.d.ts +3 -3
  49. package/dist/esm/components/date-picker/calendar.js +19 -0
  50. package/{esm → dist/esm}/components/date-picker/date-helpers.js +20 -22
  51. package/{types → dist/esm}/components/date-picker/date-picker.d.ts +2 -2
  52. package/dist/esm/components/date-picker/date-picker.js +15 -0
  53. package/{types → dist/esm}/components/date-picker/date-range-picker.d.ts +3 -3
  54. package/{esm → dist/esm}/components/date-picker/date-range-picker.js +4 -7
  55. package/{types → dist/esm}/components/date-picker/date-range.d.ts +1 -1
  56. package/{esm → dist/esm}/components/date-picker/date-range.js +1 -4
  57. package/dist/esm/components/date-picker/index.d.ts +2 -0
  58. package/dist/esm/components/date-picker/index.js +2 -0
  59. package/{types → dist/esm}/components/date-picker/parse-min-max-props.d.ts +1 -1
  60. package/{esm → dist/esm}/components/date-picker/parse-min-max-props.js +1 -4
  61. package/{types → dist/esm}/components/date-picker-popover/date-picker-popover.d.ts +2 -2
  62. package/dist/esm/components/date-picker-popover/date-picker-popover.js +15 -0
  63. package/dist/esm/components/date-picker-popover/index.d.ts +1 -0
  64. package/dist/esm/components/date-picker-popover/index.js +1 -0
  65. package/dist/esm/components/date-range-picker-popover/date-range-picker-popover-footer.js +5 -0
  66. package/{types → dist/esm}/components/date-range-picker-popover/date-range-picker-popover-presets.d.ts +1 -1
  67. package/dist/esm/components/date-range-picker-popover/date-range-picker-popover-presets.js +30 -0
  68. package/{types → dist/esm}/components/date-range-picker-popover/date-range-picker-popover.d.ts +3 -3
  69. package/{esm → dist/esm}/components/date-range-picker-popover/date-range-picker-popover.js +7 -14
  70. package/{types → dist/esm}/components/date-range-picker-popover/helpers.d.ts +1 -1
  71. package/{esm → dist/esm}/components/date-range-picker-popover/helpers.js +1 -3
  72. package/dist/esm/components/date-range-picker-popover/index.d.ts +2 -0
  73. package/dist/esm/components/date-range-picker-popover/index.js +2 -0
  74. package/{types → dist/esm}/components/date-range-picker-popover/types.d.ts +1 -1
  75. package/dist/esm/components/date-range-picker-popover/types.js +1 -0
  76. package/{esm → dist/esm}/components/date-range-picker-popover/use-is-compact-view.js +2 -5
  77. package/dist/esm/components/dialog/dialog-body.js +7 -0
  78. package/{esm → dist/esm}/components/dialog/dialog-context.js +4 -7
  79. package/dist/esm/components/dialog/dialog-footer.js +8 -0
  80. package/dist/esm/components/dialog/dialog-header.js +15 -0
  81. package/{esm → dist/esm}/components/dialog/dialog.js +9 -15
  82. package/dist/esm/components/dialog/index.d.ts +4 -0
  83. package/dist/esm/components/dialog/index.js +4 -0
  84. package/dist/esm/components/empty-state/empty-state.d.ts +12 -0
  85. package/dist/esm/components/empty-state/empty-state.js +17 -0
  86. package/dist/esm/components/empty-state/index.d.ts +1 -0
  87. package/dist/esm/components/empty-state/index.js +1 -0
  88. package/{esm → dist/esm}/components/file-picker/file-picker.js +6 -10
  89. package/dist/esm/components/file-picker/index.d.ts +1 -0
  90. package/dist/esm/components/file-picker/index.js +1 -0
  91. package/dist/esm/components/filter-buttons/filter-button.js +6 -0
  92. package/{esm → dist/esm}/components/filter-buttons/filter-buttons.js +4 -7
  93. package/dist/esm/components/filter-buttons/index.d.ts +2 -0
  94. package/dist/esm/components/filter-buttons/index.js +2 -0
  95. package/{types → dist/esm}/components/filtered-search/filter-item.d.ts +1 -1
  96. package/dist/esm/components/filtered-search/filter-item.js +17 -0
  97. package/dist/esm/components/filtered-search/filter-operator-select.js +12 -0
  98. package/dist/esm/components/filtered-search/filter-token.js +12 -0
  99. package/dist/esm/components/filtered-search/filter-value-list.js +15 -0
  100. package/{types → dist/esm}/components/filtered-search/filtered-search.d.ts +1 -1
  101. package/{esm → dist/esm}/components/filtered-search/filtered-search.js +11 -16
  102. package/{types → dist/esm}/components/filtered-search/index.d.ts +4 -4
  103. package/dist/esm/components/filtered-search/index.js +3 -0
  104. package/dist/esm/components/filtered-search/model/abstract-filter.js +2 -0
  105. package/{types → dist/esm}/components/filtered-search/model/string-filter.d.ts +2 -2
  106. package/{esm → dist/esm}/components/filtered-search/model/string-filter.js +1 -4
  107. package/{types → dist/esm}/components/filtered-search/model/string-set-filter.d.ts +1 -1
  108. package/{esm → dist/esm}/components/filtered-search/model/string-set-filter.js +1 -4
  109. package/dist/esm/components/filtered-search/model/validation-result.js +1 -0
  110. package/dist/esm/components/filtered-search/string-filter-input.js +15 -0
  111. package/{types → dist/esm}/components/filtered-search/string-filter-item.d.ts +1 -1
  112. package/{esm → dist/esm}/components/filtered-search/string-filter-item.js +6 -10
  113. package/{types → dist/esm}/components/filtered-search/string-set-filter-item.d.ts +1 -1
  114. package/{esm → dist/esm}/components/filtered-search/string-set-filter-item.js +6 -10
  115. package/{types → dist/esm}/components/filtered-search/types.d.ts +2 -2
  116. package/dist/esm/components/filtered-search/types.js +1 -0
  117. package/{esm → dist/esm}/components/filtered-search/use-combobox-ids.js +2 -5
  118. package/{esm → dist/esm}/components/filtered-search/use-translations.js +4 -7
  119. package/{types → dist/esm}/components/form-field/form-field.d.ts +7 -3
  120. package/dist/esm/components/form-field/form-field.js +37 -0
  121. package/dist/esm/components/form-field/index.d.ts +1 -0
  122. package/dist/esm/components/form-field/index.js +1 -0
  123. package/dist/esm/components/hero-icons/24/outline/arrow-small-down-icon.d.ts +4 -0
  124. package/dist/esm/components/hero-icons/24/outline/arrow-small-down-icon.js +5 -0
  125. package/dist/esm/components/hero-icons/24/outline/arrow-small-up-icon.d.ts +4 -0
  126. package/dist/esm/components/hero-icons/24/outline/arrow-small-up-icon.js +5 -0
  127. package/dist/esm/components/hero-icons/24/outline/arrows-up-down-icon.d.ts +4 -0
  128. package/dist/esm/components/hero-icons/24/outline/arrows-up-down-icon.js +5 -0
  129. package/dist/esm/components/hero-icons/24/outline/chevron-left-icon.d.ts +4 -0
  130. package/dist/esm/components/hero-icons/24/outline/chevron-left-icon.js +5 -0
  131. package/dist/esm/components/hero-icons/24/outline/chevron-right-icon.d.ts +4 -0
  132. package/dist/esm/components/hero-icons/24/outline/chevron-right-icon.js +5 -0
  133. package/dist/esm/components/hero-icons/24/outline/eye-icon.d.ts +4 -0
  134. package/dist/esm/components/hero-icons/24/outline/eye-icon.js +5 -0
  135. package/dist/esm/components/hero-icons/24/outline/eye-slash-icon.d.ts +4 -0
  136. package/dist/esm/components/hero-icons/24/outline/eye-slash-icon.js +5 -0
  137. package/dist/esm/components/hero-icons/24/outline/magnifying-glass-icon.d.ts +4 -0
  138. package/dist/esm/components/hero-icons/24/outline/magnifying-glass-icon.js +5 -0
  139. package/dist/esm/components/hero-icons/24/outline/trash-icon.d.ts +4 -0
  140. package/dist/esm/components/hero-icons/24/outline/trash-icon.js +5 -0
  141. package/dist/esm/components/hero-icons/24/outline/x-mark-icon.d.ts +4 -0
  142. package/dist/esm/components/hero-icons/24/outline/x-mark-icon.js +5 -0
  143. package/dist/esm/components/hero-icons/24/solid/exclamation-triangle-icon.d.ts +4 -0
  144. package/dist/esm/components/hero-icons/24/solid/exclamation-triangle-icon.js +5 -0
  145. package/dist/esm/components/index.d.ts +42 -0
  146. package/dist/esm/components/index.js +42 -0
  147. package/dist/esm/components/label/index.d.ts +1 -0
  148. package/dist/esm/components/label/index.js +1 -0
  149. package/dist/esm/components/label/label.js +8 -0
  150. package/dist/esm/components/menu/index.d.ts +3 -0
  151. package/dist/esm/components/menu/index.js +3 -0
  152. package/{types → dist/esm}/components/menu/menu-item.d.ts +4 -6
  153. package/dist/esm/components/menu/menu-item.js +16 -0
  154. package/dist/esm/components/menu/menu-separator.js +5 -0
  155. package/{types → dist/esm}/components/menu/menu.d.ts +6 -5
  156. package/{esm → dist/esm}/components/menu/menu.js +7 -11
  157. package/dist/esm/components/nav-list/index.d.ts +3 -0
  158. package/dist/esm/components/nav-list/index.js +3 -0
  159. package/dist/esm/components/nav-list/nav-list-item.js +15 -0
  160. package/dist/esm/components/nav-list/nav-list-title.js +5 -0
  161. package/dist/esm/components/nav-list/nav-list.js +5 -0
  162. package/dist/esm/components/password-input/index.d.ts +1 -0
  163. package/dist/esm/components/password-input/index.js +1 -0
  164. package/dist/esm/components/password-input/password-input.d.ts +9 -0
  165. package/dist/esm/components/password-input/password-input.js +17 -0
  166. package/dist/esm/components/popover/index.d.ts +1 -0
  167. package/dist/esm/components/popover/index.js +1 -0
  168. package/{types → dist/esm}/components/popover/popover.d.ts +1 -1
  169. package/{esm → dist/esm}/components/popover/popover.js +8 -11
  170. package/{esm → dist/esm}/components/popover/use-page-click.js +2 -5
  171. package/dist/esm/components/portal/index.d.ts +1 -0
  172. package/dist/esm/components/portal/index.js +1 -0
  173. package/{esm → dist/esm}/components/portal/portal-context.js +6 -5
  174. package/{esm → dist/esm}/components/portal/portal.js +1 -4
  175. package/{types → dist/esm}/components/positioner/calc-position.d.ts +1 -1
  176. package/{esm → dist/esm}/components/positioner/calc-position.js +2 -4
  177. package/dist/esm/components/positioner/index.d.ts +1 -0
  178. package/dist/esm/components/positioner/index.js +1 -0
  179. package/{types → dist/esm}/components/positioner/positioner.d.ts +1 -1
  180. package/{esm → dist/esm}/components/positioner/positioner.js +5 -8
  181. package/dist/esm/components/positioner/types.js +1 -0
  182. package/dist/esm/components/radio/index.d.ts +1 -0
  183. package/dist/esm/components/radio/index.js +1 -0
  184. package/dist/esm/components/radio/radio.js +23 -0
  185. package/dist/esm/components/segmented-control/index.d.ts +1 -0
  186. package/dist/esm/components/segmented-control/index.js +1 -0
  187. package/dist/esm/components/segmented-control/segmented-button.d.ts +11 -0
  188. package/dist/esm/components/segmented-control/segmented-button.js +10 -0
  189. package/{types → dist/esm}/components/segmented-control/segmented-control.d.ts +5 -3
  190. package/dist/esm/components/segmented-control/segmented-control.js +15 -0
  191. package/dist/esm/components/select/index.d.ts +1 -0
  192. package/dist/esm/components/select/index.js +1 -0
  193. package/{types → dist/esm}/components/select/select.d.ts +9 -9
  194. package/dist/esm/components/select/select.js +34 -0
  195. package/dist/esm/components/selection-control/index.d.ts +1 -0
  196. package/dist/esm/components/selection-control/index.js +1 -0
  197. package/dist/esm/components/selection-control/selection-control.js +15 -0
  198. package/dist/esm/components/slide-over/index.d.ts +4 -0
  199. package/dist/esm/components/slide-over/index.js +3 -0
  200. package/dist/esm/components/slide-over/slide-over-body.js +5 -0
  201. package/{types → dist/esm}/components/slide-over/slide-over-context.d.ts +1 -1
  202. package/{esm → dist/esm}/components/slide-over/slide-over-context.js +4 -7
  203. package/dist/esm/components/slide-over/slide-over-header.js +13 -0
  204. package/dist/esm/components/slide-over/slide-over.d.ts +25 -0
  205. package/{esm → dist/esm}/components/slide-over/slide-over.js +19 -17
  206. package/dist/esm/components/slide-over/types.d.ts +1 -0
  207. package/dist/esm/components/slide-over/types.js +1 -0
  208. package/dist/esm/components/slider/index.d.ts +2 -0
  209. package/dist/esm/components/slider/index.js +2 -0
  210. package/dist/esm/components/slider/slider-tick-marks.js +12 -0
  211. package/{types → dist/esm}/components/slider/slider.d.ts +1 -1
  212. package/{esm → dist/esm}/components/slider/slider.js +5 -8
  213. package/dist/esm/components/spinner/index.d.ts +1 -0
  214. package/dist/esm/components/spinner/index.js +1 -0
  215. package/dist/esm/components/spinner/spinner.js +6 -0
  216. package/dist/esm/components/switch/index.d.ts +1 -0
  217. package/dist/esm/components/switch/index.js +1 -0
  218. package/dist/esm/components/switch/switch.js +12 -0
  219. package/dist/esm/components/table/index.d.ts +7 -0
  220. package/dist/esm/components/table/index.js +7 -0
  221. package/dist/esm/components/table/table-body.js +6 -0
  222. package/dist/esm/components/table/table-cell.js +6 -0
  223. package/{esm → dist/esm}/components/table/table-container.js +3 -6
  224. package/{types → dist/esm}/components/table/table-head-cell.d.ts +1 -1
  225. package/dist/esm/components/table/table-head-cell.js +27 -0
  226. package/dist/esm/components/table/table-head.js +9 -0
  227. package/dist/esm/components/table/table-row.js +9 -0
  228. package/{esm → dist/esm}/components/table/table.js +3 -6
  229. package/dist/esm/components/tabs/index.d.ts +4 -0
  230. package/dist/esm/components/tabs/index.js +4 -0
  231. package/{esm → dist/esm}/components/tabs/tab-list.js +3 -6
  232. package/{types → dist/esm}/components/tabs/tab-panel.d.ts +1 -1
  233. package/dist/esm/components/tabs/tab-panel.js +11 -0
  234. package/dist/esm/components/tabs/tab.js +14 -0
  235. package/{types → dist/esm}/components/tabs/tabs-context.d.ts +1 -1
  236. package/{esm → dist/esm}/components/tabs/tabs-context.js +5 -8
  237. package/{types → dist/esm}/components/tabs/tabs.d.ts +1 -1
  238. package/dist/esm/components/tabs/tabs.js +6 -0
  239. package/dist/esm/components/tabs/types.js +1 -0
  240. package/dist/esm/components/tag/index.d.ts +1 -0
  241. package/dist/esm/components/tag/index.js +1 -0
  242. package/dist/esm/components/tag/tag.d.ts +15 -0
  243. package/dist/esm/components/tag/tag.js +11 -0
  244. package/dist/esm/components/text-input/index.d.ts +1 -0
  245. package/dist/esm/components/text-input/index.js +1 -0
  246. package/{types → dist/esm}/components/text-input/text-input.d.ts +12 -13
  247. package/dist/esm/components/text-input/text-input.js +42 -0
  248. package/dist/esm/components/textarea/index.d.ts +1 -0
  249. package/dist/esm/components/textarea/index.js +1 -0
  250. package/dist/esm/components/textarea/textarea.d.ts +12 -0
  251. package/dist/esm/components/textarea/textarea.js +19 -0
  252. package/dist/esm/components/toast/index.d.ts +2 -0
  253. package/dist/esm/components/toast/index.js +2 -0
  254. package/dist/esm/components/toast/toast-button.js +6 -0
  255. package/dist/esm/components/toast/toast.js +6 -0
  256. package/dist/esm/components/toaster/index.d.ts +1 -0
  257. package/dist/esm/components/toaster/index.js +1 -0
  258. package/{esm → dist/esm}/components/toaster/toaster.js +9 -13
  259. package/dist/esm/components/tooltip/index.d.ts +1 -0
  260. package/dist/esm/components/tooltip/index.js +1 -0
  261. package/{types → dist/esm}/components/tooltip/tooltip.d.ts +1 -1
  262. package/{esm → dist/esm}/components/tooltip/tooltip.js +8 -11
  263. package/dist/esm/hooks/index.d.ts +4 -0
  264. package/dist/esm/hooks/index.js +4 -0
  265. package/{esm → dist/esm}/hooks/use-disable-body-scroll.js +1 -4
  266. package/{esm → dist/esm}/hooks/use-esc-key-down.js +2 -5
  267. package/{esm → dist/esm}/hooks/use-focus-trap.js +1 -4
  268. package/{esm → dist/esm}/hooks/use-mount-transition.js +2 -5
  269. package/dist/esm/index.d.ts +3 -0
  270. package/dist/esm/index.js +3 -0
  271. package/{esm → dist/esm}/lib/helpers.js +3 -5
  272. package/dist/esm/lib/index.d.ts +3 -0
  273. package/dist/esm/lib/index.js +3 -0
  274. package/{esm → dist/esm}/lib/keyboard-keys.js +1 -3
  275. package/{esm → dist/esm}/lib/react-helpers.js +6 -9
  276. package/package.json +41 -55
  277. package/cjs/components/alert/alert.cjs +0 -19
  278. package/cjs/components/avatar/avatar.cjs +0 -31
  279. package/cjs/components/avatar-group/avatar-group.cjs +0 -10
  280. package/cjs/components/badge/badge.cjs +0 -23
  281. package/cjs/components/breadcrumbs/breadcrumbs-context.cjs +0 -19
  282. package/cjs/components/breadcrumbs/breadcrumbs-item.cjs +0 -21
  283. package/cjs/components/breadcrumbs/breadcrumbs.cjs +0 -12
  284. package/cjs/components/button/button.cjs +0 -41
  285. package/cjs/components/button/icon-button.cjs +0 -12
  286. package/cjs/components/button-group/button-group.cjs +0 -10
  287. package/cjs/components/caption/caption.cjs +0 -27
  288. package/cjs/components/caption/icons.cjs +0 -21
  289. package/cjs/components/checkbox/checkbox.cjs +0 -20
  290. package/cjs/components/color-picker/color-picker-button.cjs +0 -16
  291. package/cjs/components/color-picker/color-picker.cjs +0 -24
  292. package/cjs/components/date-picker/calendar-day.cjs +0 -17
  293. package/cjs/components/date-picker/calendar-grid-head.cjs +0 -16
  294. package/cjs/components/date-picker/calendar-grid.cjs +0 -106
  295. package/cjs/components/date-picker/calendar-header.cjs +0 -48
  296. package/cjs/components/date-picker/calendar.cjs +0 -24
  297. package/cjs/components/date-picker/date-helpers.cjs +0 -112
  298. package/cjs/components/date-picker/date-picker.cjs +0 -20
  299. package/cjs/components/date-picker/date-range-picker.cjs +0 -61
  300. package/cjs/components/date-picker/date-range.cjs +0 -28
  301. package/cjs/components/date-picker/icons.cjs +0 -13
  302. package/cjs/components/date-picker/parse-min-max-props.cjs +0 -20
  303. package/cjs/components/date-picker-popover/date-picker-popover.cjs +0 -24
  304. package/cjs/components/date-range-picker-popover/date-range-picker-popover-footer.cjs +0 -11
  305. package/cjs/components/date-range-picker-popover/date-range-picker-popover-presets.cjs +0 -35
  306. package/cjs/components/date-range-picker-popover/date-range-picker-popover.cjs +0 -59
  307. package/cjs/components/date-range-picker-popover/helpers.cjs +0 -15
  308. package/cjs/components/date-range-picker-popover/use-is-compact-view.cjs +0 -27
  309. package/cjs/components/dialog/dialog-body.cjs +0 -12
  310. package/cjs/components/dialog/dialog-context.cjs +0 -24
  311. package/cjs/components/dialog/dialog-footer.cjs +0 -13
  312. package/cjs/components/dialog/dialog-header.cjs +0 -21
  313. package/cjs/components/dialog/dialog.cjs +0 -50
  314. package/cjs/components/dialog/x-mark-icon.cjs +0 -9
  315. package/cjs/components/empty-state/empty-state.cjs +0 -10
  316. package/cjs/components/file-picker/file-picker.cjs +0 -47
  317. package/cjs/components/filter-buttons/filter-button.cjs +0 -11
  318. package/cjs/components/filter-buttons/filter-buttons.cjs +0 -27
  319. package/cjs/components/filtered-search/filter-item.cjs +0 -23
  320. package/cjs/components/filtered-search/filter-operator-select.cjs +0 -17
  321. package/cjs/components/filtered-search/filter-token.cjs +0 -17
  322. package/cjs/components/filtered-search/filter-value-list.cjs +0 -20
  323. package/cjs/components/filtered-search/filtered-search.cjs +0 -225
  324. package/cjs/components/filtered-search/icons.cjs +0 -21
  325. package/cjs/components/filtered-search/model/abstract-filter.cjs +0 -6
  326. package/cjs/components/filtered-search/model/string-filter.cjs +0 -46
  327. package/cjs/components/filtered-search/model/string-set-filter.cjs +0 -44
  328. package/cjs/components/filtered-search/string-filter-input.cjs +0 -17
  329. package/cjs/components/filtered-search/string-filter-item.cjs +0 -68
  330. package/cjs/components/filtered-search/string-set-filter-item.cjs +0 -77
  331. package/cjs/components/filtered-search/use-combobox-ids.cjs +0 -17
  332. package/cjs/components/filtered-search/use-translations.cjs +0 -24
  333. package/cjs/components/form-field/form-field.cjs +0 -26
  334. package/cjs/components/index.cjs +0 -141
  335. package/cjs/components/label/label.cjs +0 -13
  336. package/cjs/components/menu/menu-item.cjs +0 -21
  337. package/cjs/components/menu/menu-separator.cjs +0 -10
  338. package/cjs/components/menu/menu.cjs +0 -191
  339. package/cjs/components/nav-list/nav-list-item.cjs +0 -20
  340. package/cjs/components/nav-list/nav-list-title.cjs +0 -10
  341. package/cjs/components/nav-list/nav-list.cjs +0 -10
  342. package/cjs/components/password-input/icons.cjs +0 -13
  343. package/cjs/components/password-input/password-input.cjs +0 -30
  344. package/cjs/components/popover/popover.cjs +0 -96
  345. package/cjs/components/popover/use-page-click.cjs +0 -51
  346. package/cjs/components/portal/portal-context.cjs +0 -22
  347. package/cjs/components/portal/portal.cjs +0 -11
  348. package/cjs/components/positioner/calc-position.cjs +0 -117
  349. package/cjs/components/positioner/positioner.cjs +0 -64
  350. package/cjs/components/radio/radio.cjs +0 -28
  351. package/cjs/components/segmented-control/segmented-control-button.cjs +0 -15
  352. package/cjs/components/segmented-control/segmented-control.cjs +0 -48
  353. package/cjs/components/select/select.cjs +0 -39
  354. package/cjs/components/selection-control/selection-control.cjs +0 -18
  355. package/cjs/components/slide-over/slide-over-body.cjs +0 -10
  356. package/cjs/components/slide-over/slide-over-context.cjs +0 -24
  357. package/cjs/components/slide-over/slide-over-header.cjs +0 -21
  358. package/cjs/components/slide-over/slide-over.cjs +0 -106
  359. package/cjs/components/slider/slider-tick-marks.cjs +0 -17
  360. package/cjs/components/slider/slider.cjs +0 -41
  361. package/cjs/components/spinner/spinner.cjs +0 -11
  362. package/cjs/components/switch/switch.cjs +0 -17
  363. package/cjs/components/table/icons.cjs +0 -17
  364. package/cjs/components/table/table-body.cjs +0 -11
  365. package/cjs/components/table/table-cell.cjs +0 -11
  366. package/cjs/components/table/table-container.cjs +0 -23
  367. package/cjs/components/table/table-head-cell.cjs +0 -30
  368. package/cjs/components/table/table-head.cjs +0 -14
  369. package/cjs/components/table/table-row.cjs +0 -14
  370. package/cjs/components/table/table.cjs +0 -16
  371. package/cjs/components/tabs/tab-list.cjs +0 -67
  372. package/cjs/components/tabs/tab-panel.cjs +0 -16
  373. package/cjs/components/tabs/tab.cjs +0 -19
  374. package/cjs/components/tabs/tabs-context.cjs +0 -31
  375. package/cjs/components/tabs/tabs.cjs +0 -11
  376. package/cjs/components/tag/tag.cjs +0 -16
  377. package/cjs/components/text-input/text-input.cjs +0 -42
  378. package/cjs/components/textarea/textarea.cjs +0 -40
  379. package/cjs/components/toast/toast-button.cjs +0 -11
  380. package/cjs/components/toast/toast.cjs +0 -11
  381. package/cjs/components/toast/x-mark-icon.cjs +0 -9
  382. package/cjs/components/toaster/toaster.cjs +0 -115
  383. package/cjs/components/tooltip/tooltip.cjs +0 -75
  384. package/cjs/hooks/index.cjs +0 -13
  385. package/cjs/hooks/use-disable-body-scroll.cjs +0 -37
  386. package/cjs/hooks/use-esc-key-down.cjs +0 -56
  387. package/cjs/hooks/use-focus-trap.cjs +0 -89
  388. package/cjs/hooks/use-mount-transition.cjs +0 -41
  389. package/cjs/index.cjs +0 -161
  390. package/cjs/lib/helpers.cjs +0 -25
  391. package/cjs/lib/index.cjs +0 -17
  392. package/cjs/lib/keyboard-keys.cjs +0 -19
  393. package/cjs/lib/react-helpers.cjs +0 -58
  394. package/esm/components/alert/alert.js +0 -17
  395. package/esm/components/avatar/avatar.js +0 -29
  396. package/esm/components/avatar-group/avatar-group.js +0 -8
  397. package/esm/components/breadcrumbs/breadcrumbs-context.js +0 -16
  398. package/esm/components/breadcrumbs/breadcrumbs-item.js +0 -19
  399. package/esm/components/breadcrumbs/breadcrumbs.js +0 -10
  400. package/esm/components/button/button.js +0 -39
  401. package/esm/components/button/icon-button.js +0 -10
  402. package/esm/components/button-group/button-group.js +0 -8
  403. package/esm/components/caption/caption.js +0 -25
  404. package/esm/components/caption/icons.js +0 -16
  405. package/esm/components/checkbox/checkbox.js +0 -18
  406. package/esm/components/color-picker/color-picker-button.js +0 -14
  407. package/esm/components/date-picker/calendar-grid-head.js +0 -14
  408. package/esm/components/date-picker/calendar-header.js +0 -46
  409. package/esm/components/date-picker/calendar.js +0 -22
  410. package/esm/components/date-picker/date-picker.js +0 -18
  411. package/esm/components/date-picker/icons.js +0 -10
  412. package/esm/components/date-picker-popover/date-picker-popover.js +0 -22
  413. package/esm/components/date-range-picker-popover/date-range-picker-popover-footer.js +0 -9
  414. package/esm/components/date-range-picker-popover/date-range-picker-popover-presets.js +0 -33
  415. package/esm/components/dialog/dialog-body.js +0 -10
  416. package/esm/components/dialog/dialog-footer.js +0 -11
  417. package/esm/components/dialog/dialog-header.js +0 -19
  418. package/esm/components/dialog/x-mark-icon.js +0 -7
  419. package/esm/components/empty-state/empty-state.js +0 -8
  420. package/esm/components/filter-buttons/filter-button.js +0 -9
  421. package/esm/components/filtered-search/filter-item.js +0 -21
  422. package/esm/components/filtered-search/filter-operator-select.js +0 -15
  423. package/esm/components/filtered-search/filter-token.js +0 -15
  424. package/esm/components/filtered-search/filter-value-list.js +0 -18
  425. package/esm/components/filtered-search/icons.js +0 -16
  426. package/esm/components/filtered-search/model/abstract-filter.js +0 -4
  427. package/esm/components/filtered-search/string-filter-input.js +0 -15
  428. package/esm/components/form-field/form-field.js +0 -24
  429. package/esm/components/index.js +0 -68
  430. package/esm/components/label/label.js +0 -11
  431. package/esm/components/menu/menu-item.js +0 -19
  432. package/esm/components/menu/menu-separator.js +0 -8
  433. package/esm/components/nav-list/nav-list-item.js +0 -18
  434. package/esm/components/nav-list/nav-list-title.js +0 -8
  435. package/esm/components/nav-list/nav-list.js +0 -8
  436. package/esm/components/password-input/icons.js +0 -10
  437. package/esm/components/password-input/password-input.js +0 -28
  438. package/esm/components/radio/radio.js +0 -26
  439. package/esm/components/segmented-control/segmented-control-button.js +0 -13
  440. package/esm/components/segmented-control/segmented-control.js +0 -46
  441. package/esm/components/select/select.js +0 -37
  442. package/esm/components/selection-control/selection-control.js +0 -16
  443. package/esm/components/slide-over/slide-over-body.js +0 -8
  444. package/esm/components/slide-over/slide-over-header.js +0 -19
  445. package/esm/components/slider/slider-tick-marks.js +0 -15
  446. package/esm/components/spinner/spinner.js +0 -9
  447. package/esm/components/switch/switch.js +0 -15
  448. package/esm/components/table/icons.js +0 -13
  449. package/esm/components/table/table-body.js +0 -9
  450. package/esm/components/table/table-cell.js +0 -9
  451. package/esm/components/table/table-head-cell.js +0 -28
  452. package/esm/components/table/table-head.js +0 -12
  453. package/esm/components/table/table-row.js +0 -12
  454. package/esm/components/tabs/tab-panel.js +0 -14
  455. package/esm/components/tabs/tab.js +0 -17
  456. package/esm/components/tabs/tabs.js +0 -9
  457. package/esm/components/tag/tag.js +0 -14
  458. package/esm/components/text-input/text-input.js +0 -40
  459. package/esm/components/textarea/textarea.js +0 -38
  460. package/esm/components/toast/toast-button.js +0 -9
  461. package/esm/components/toast/toast.js +0 -9
  462. package/esm/components/toast/x-mark-icon.js +0 -7
  463. package/esm/hooks/index.js +0 -4
  464. package/esm/index.js +0 -75
  465. package/esm/lib/index.js +0 -3
  466. package/types/components/alert/alert.d.ts +0 -12
  467. package/types/components/alert/index.d.ts +0 -1
  468. package/types/components/avatar/index.d.ts +0 -1
  469. package/types/components/avatar-group/index.d.ts +0 -1
  470. package/types/components/badge/index.d.ts +0 -1
  471. package/types/components/breadcrumbs/index.d.ts +0 -2
  472. package/types/components/button/icon-button.d.ts +0 -7
  473. package/types/components/button/index.d.ts +0 -2
  474. package/types/components/button-group/index.d.ts +0 -1
  475. package/types/components/caption/caption.d.ts +0 -7
  476. package/types/components/caption/icons.d.ts +0 -5
  477. package/types/components/caption/index.d.ts +0 -1
  478. package/types/components/checkbox/index.d.ts +0 -1
  479. package/types/components/color-picker/index.d.ts +0 -1
  480. package/types/components/date-picker/icons.d.ts +0 -3
  481. package/types/components/date-picker/index.d.ts +0 -2
  482. package/types/components/date-picker-popover/index.d.ts +0 -1
  483. package/types/components/date-range-picker-popover/index.d.ts +0 -2
  484. package/types/components/dialog/index.d.ts +0 -4
  485. package/types/components/dialog/x-mark-icon.d.ts +0 -2
  486. package/types/components/empty-state/empty-state.d.ts +0 -11
  487. package/types/components/empty-state/index.d.ts +0 -1
  488. package/types/components/file-picker/index.d.ts +0 -1
  489. package/types/components/filter-buttons/index.d.ts +0 -2
  490. package/types/components/filtered-search/icons.d.ts +0 -5
  491. package/types/components/form-field/index.d.ts +0 -1
  492. package/types/components/index.d.ts +0 -42
  493. package/types/components/label/index.d.ts +0 -1
  494. package/types/components/menu/index.d.ts +0 -3
  495. package/types/components/nav-list/index.d.ts +0 -3
  496. package/types/components/password-input/icons.d.ts +0 -3
  497. package/types/components/password-input/index.d.ts +0 -1
  498. package/types/components/password-input/password-input.d.ts +0 -10
  499. package/types/components/popover/index.d.ts +0 -1
  500. package/types/components/portal/index.d.ts +0 -1
  501. package/types/components/positioner/index.d.ts +0 -1
  502. package/types/components/radio/index.d.ts +0 -1
  503. package/types/components/segmented-control/index.d.ts +0 -1
  504. package/types/components/segmented-control/segmented-control-button.d.ts +0 -10
  505. package/types/components/select/index.d.ts +0 -1
  506. package/types/components/selection-control/index.d.ts +0 -1
  507. package/types/components/slide-over/index.d.ts +0 -4
  508. package/types/components/slide-over/slide-over.d.ts +0 -15
  509. package/types/components/slide-over/types.d.ts +0 -1
  510. package/types/components/slider/index.d.ts +0 -2
  511. package/types/components/spinner/index.d.ts +0 -1
  512. package/types/components/switch/index.d.ts +0 -1
  513. package/types/components/table/icons.d.ts +0 -4
  514. package/types/components/table/index.d.ts +0 -7
  515. package/types/components/tabs/index.d.ts +0 -4
  516. package/types/components/tag/index.d.ts +0 -1
  517. package/types/components/tag/tag.d.ts +0 -18
  518. package/types/components/text-input/index.d.ts +0 -1
  519. package/types/components/textarea/index.d.ts +0 -1
  520. package/types/components/textarea/textarea.d.ts +0 -20
  521. package/types/components/toast/index.d.ts +0 -2
  522. package/types/components/toast/x-mark-icon.d.ts +0 -2
  523. package/types/components/toaster/index.d.ts +0 -1
  524. package/types/components/tooltip/index.d.ts +0 -1
  525. package/types/hooks/index.d.ts +0 -4
  526. package/types/index.d.ts +0 -3
  527. package/types/lib/index.d.ts +0 -3
  528. /package/{css → dist/css}/draft-components-utilities.css +0 -0
  529. /package/{types → dist/esm}/components/avatar-group/avatar-group.d.ts +0 -0
  530. /package/{types → dist/esm}/components/badge/badge.d.ts +0 -0
  531. /package/{types → dist/esm}/components/breadcrumbs/breadcrumbs-context.d.ts +0 -0
  532. /package/{types → dist/esm}/components/breadcrumbs/breadcrumbs-item.d.ts +0 -0
  533. /package/{types → dist/esm}/components/breadcrumbs/breadcrumbs.d.ts +0 -0
  534. /package/{types → dist/esm}/components/button-group/button-group.d.ts +0 -0
  535. /package/{types → dist/esm}/components/checkbox/checkbox.d.ts +0 -0
  536. /package/{types → dist/esm}/components/color-picker/color-picker-button.d.ts +0 -0
  537. /package/{types → dist/esm}/components/color-picker/color-picker.d.ts +0 -0
  538. /package/{types → dist/esm}/components/date-picker/calendar-day.d.ts +0 -0
  539. /package/{types → dist/esm}/components/date-picker/calendar-header.d.ts +0 -0
  540. /package/{types → dist/esm}/components/date-picker/date-helpers.d.ts +0 -0
  541. /package/{types → dist/esm}/components/date-range-picker-popover/date-range-picker-popover-footer.d.ts +0 -0
  542. /package/{types → dist/esm}/components/date-range-picker-popover/use-is-compact-view.d.ts +0 -0
  543. /package/{types → dist/esm}/components/dialog/dialog-body.d.ts +0 -0
  544. /package/{types → dist/esm}/components/dialog/dialog-context.d.ts +0 -0
  545. /package/{types → dist/esm}/components/dialog/dialog-footer.d.ts +0 -0
  546. /package/{types → dist/esm}/components/dialog/dialog-header.d.ts +0 -0
  547. /package/{types → dist/esm}/components/dialog/dialog.d.ts +0 -0
  548. /package/{types → dist/esm}/components/file-picker/file-picker.d.ts +0 -0
  549. /package/{types → dist/esm}/components/filter-buttons/filter-button.d.ts +0 -0
  550. /package/{types → dist/esm}/components/filter-buttons/filter-buttons.d.ts +0 -0
  551. /package/{types → dist/esm}/components/filtered-search/filter-operator-select.d.ts +0 -0
  552. /package/{types → dist/esm}/components/filtered-search/filter-token.d.ts +0 -0
  553. /package/{types → dist/esm}/components/filtered-search/filter-value-list.d.ts +0 -0
  554. /package/{types → dist/esm}/components/filtered-search/model/abstract-filter.d.ts +0 -0
  555. /package/{types → dist/esm}/components/filtered-search/model/validation-result.d.ts +0 -0
  556. /package/{types → dist/esm}/components/filtered-search/string-filter-input.d.ts +0 -0
  557. /package/{types → dist/esm}/components/filtered-search/use-combobox-ids.d.ts +0 -0
  558. /package/{types → dist/esm}/components/filtered-search/use-translations.d.ts +0 -0
  559. /package/{types → dist/esm}/components/label/label.d.ts +0 -0
  560. /package/{types → dist/esm}/components/menu/menu-separator.d.ts +0 -0
  561. /package/{types → dist/esm}/components/nav-list/nav-list-item.d.ts +0 -0
  562. /package/{types → dist/esm}/components/nav-list/nav-list-title.d.ts +0 -0
  563. /package/{types → dist/esm}/components/nav-list/nav-list.d.ts +0 -0
  564. /package/{types → dist/esm}/components/popover/use-page-click.d.ts +0 -0
  565. /package/{types → dist/esm}/components/portal/portal-context.d.ts +0 -0
  566. /package/{types → dist/esm}/components/portal/portal.d.ts +0 -0
  567. /package/{types → dist/esm}/components/positioner/types.d.ts +0 -0
  568. /package/{types → dist/esm}/components/radio/radio.d.ts +0 -0
  569. /package/{types → dist/esm}/components/selection-control/selection-control.d.ts +0 -0
  570. /package/{types → dist/esm}/components/slide-over/slide-over-body.d.ts +0 -0
  571. /package/{types → dist/esm}/components/slide-over/slide-over-header.d.ts +0 -0
  572. /package/{types → dist/esm}/components/slider/slider-tick-marks.d.ts +0 -0
  573. /package/{types → dist/esm}/components/spinner/spinner.d.ts +0 -0
  574. /package/{types → dist/esm}/components/switch/switch.d.ts +0 -0
  575. /package/{types → dist/esm}/components/table/table-body.d.ts +0 -0
  576. /package/{types → dist/esm}/components/table/table-cell.d.ts +0 -0
  577. /package/{types → dist/esm}/components/table/table-container.d.ts +0 -0
  578. /package/{types → dist/esm}/components/table/table-head.d.ts +0 -0
  579. /package/{types → dist/esm}/components/table/table-row.d.ts +0 -0
  580. /package/{types → dist/esm}/components/table/table.d.ts +0 -0
  581. /package/{types → dist/esm}/components/tabs/tab-list.d.ts +0 -0
  582. /package/{types → dist/esm}/components/tabs/tab.d.ts +0 -0
  583. /package/{types → dist/esm}/components/tabs/types.d.ts +0 -0
  584. /package/{types → dist/esm}/components/toast/toast-button.d.ts +0 -0
  585. /package/{types → dist/esm}/components/toast/toast.d.ts +0 -0
  586. /package/{types → dist/esm}/components/toaster/toaster.d.ts +0 -0
  587. /package/{types → dist/esm}/hooks/use-disable-body-scroll.d.ts +0 -0
  588. /package/{types → dist/esm}/hooks/use-esc-key-down.d.ts +0 -0
  589. /package/{types → dist/esm}/hooks/use-focus-trap.d.ts +0 -0
  590. /package/{types → dist/esm}/hooks/use-mount-transition.d.ts +0 -0
  591. /package/{types → dist/esm}/lib/helpers.d.ts +0 -0
  592. /package/{types → dist/esm}/lib/keyboard-keys.d.ts +0 -0
  593. /package/{types → dist/esm}/lib/react-helpers.d.ts +0 -0
@@ -0,0 +1,25 @@
1
+ import { SlideOverCloseCallback } from './types.js';
2
+ import { ComponentPropsWithoutRef } from 'react';
3
+ import { SlideOverHeader } from './slide-over-header.js';
4
+ import { SlideOverBody } from './slide-over-body.js';
5
+ export type SlideOverHTMLProps = ComponentPropsWithoutRef<'div'>;
6
+ export type SlideOverProps = SlideOverHTMLProps & {
7
+ animationDurationMs?: number;
8
+ animationDisabled?: boolean;
9
+ shouldCloseOnEscKeyPress?: boolean;
10
+ shouldCloseOnBackdropClick?: boolean;
11
+ onClose: SlideOverCloseCallback;
12
+ };
13
+ export type SlideOverRef = {
14
+ close: () => void;
15
+ };
16
+ export declare const SlideOver: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
17
+ animationDurationMs?: number | undefined;
18
+ animationDisabled?: boolean | undefined;
19
+ shouldCloseOnEscKeyPress?: boolean | undefined;
20
+ shouldCloseOnBackdropClick?: boolean | undefined;
21
+ onClose: SlideOverCloseCallback;
22
+ } & import("react").RefAttributes<SlideOverRef>> & {
23
+ Header: typeof SlideOverHeader;
24
+ Body: typeof SlideOverBody;
25
+ };
@@ -1,14 +1,11 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { useId, useRef, useCallback, useMemo, useEffect } from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef, useCallback, useEffect, useId, useImperativeHandle, useMemo, useRef, } from 'react';
3
3
  import { SlideOverContextProvider } from './slide-over-context.js';
4
- import { getRefElement, classNames } from '../../lib/react-helpers.js';
5
- import { useDisableBodyScroll } from '../../hooks/use-disable-body-scroll.js';
6
- import { useEscKeyDown } from '../../hooks/use-esc-key-down.js';
7
- import { useFocusTrap } from '../../hooks/use-focus-trap.js';
8
- import { Portal } from '../portal/portal.js';
4
+ import { classNames, getRefElement } from '../../lib/index.js';
5
+ import { useDisableBodyScroll, useEscKeyDown, useFocusTrap } from '../../hooks/index.js';
6
+ import { Portal } from '../portal/index.js';
9
7
  import { SlideOverHeader } from './slide-over-header.js';
10
8
  import { SlideOverBody } from './slide-over-body.js';
11
-
12
9
  const panelSlideIn = [
13
10
  { transform: 'translateX(100%)' },
14
11
  { transform: 'translateX(0%)' },
@@ -17,7 +14,7 @@ const backdropFade = [
17
14
  { opacity: 0 },
18
15
  { opacity: 1 },
19
16
  ];
20
- function SlideOver({ 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, animationDurationMs = 350, animationDisabled = false, className, children, onClose, ...props }) {
17
+ const SlideOverWithRef = forwardRef(function SlideOver({ 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, animationDurationMs = 350, animationDisabled = false, shouldCloseOnEscKeyPress = true, shouldCloseOnBackdropClick = true, className, children, onClose, ...props }, ref) {
21
18
  const id = useId();
22
19
  const titleId = ariaLabelledby || `${id}dialogTitle`;
23
20
  const descriptionId = ariaDescribedby || `${id}dialogDescription`;
@@ -71,6 +68,9 @@ function SlideOver({ 'aria-labelledby': ariaLabelledby, 'aria-describedby': aria
71
68
  });
72
69
  };
73
70
  }, [animationDurationMs, onClose, shouldPlayAnimations]);
71
+ useImperativeHandle(ref, () => ({
72
+ close: closePanel,
73
+ }));
74
74
  useEffect(() => {
75
75
  isAnimationDisabled.current = animationDisabled;
76
76
  }, [animationDisabled]);
@@ -90,15 +90,17 @@ function SlideOver({ 'aria-labelledby': ariaLabelledby, 'aria-describedby': aria
90
90
  });
91
91
  }
92
92
  }, [shouldPlayAnimations, animationDurationMs]);
93
- useEscKeyDown(() => closePanel('escape'));
93
+ useEscKeyDown(() => closePanel('escape'), { isEnabled: shouldCloseOnEscKeyPress });
94
94
  useFocusTrap(panelRef);
95
95
  useDisableBodyScroll();
96
96
  const onClickBackdrop = () => {
97
- closePanel('backdrop');
97
+ if (shouldCloseOnBackdropClick) {
98
+ closePanel('backdrop');
99
+ }
98
100
  };
99
- return (jsx(Portal, { children: jsxs("div", { className: "dc-slide-over", children: [jsx("div", { "data-testid": "slide-over-backdrop", className: "dc-slide-over__backdrop", ref: backdropRef, onClick: onClickBackdrop }), jsx("div", { ...props, className: classNames('dc-slide-over__panel', className), role: "dialog", ref: panelRef, "aria-modal": true, "aria-labelledby": titleId, "aria-describedby": descriptionId, children: jsx(SlideOverContextProvider, { titleId: titleId, descriptionId: descriptionId, closePanel: closePanel, children: children }) })] }) }));
100
- }
101
- SlideOver.Header = SlideOverHeader;
102
- SlideOver.Body = SlideOverBody;
103
-
104
- export { SlideOver };
101
+ return (_jsx(Portal, { children: _jsxs("div", { className: "dc-slide-over", children: [_jsx("div", { "data-testid": "slide-over-backdrop", className: "dc-slide-over__backdrop", ref: backdropRef, role: "presentation", onClick: onClickBackdrop }), _jsx("div", { ...props, className: classNames('dc-slide-over__panel', className), role: "dialog", ref: panelRef, "aria-modal": true, "aria-labelledby": titleId, "aria-describedby": descriptionId, children: _jsx(SlideOverContextProvider, { titleId: titleId, descriptionId: descriptionId, closePanel: closePanel, children: children }) })] }) }));
102
+ });
103
+ export const SlideOver = Object.assign(SlideOverWithRef, {
104
+ Header: SlideOverHeader,
105
+ Body: SlideOverBody,
106
+ });
@@ -0,0 +1 @@
1
+ export type SlideOverCloseCallback = (source?: 'close-button' | 'backdrop' | 'escape') => void;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './slider.js';
2
+ export { SliderTickMarks } from './slider-tick-marks.js';
@@ -0,0 +1,2 @@
1
+ export * from './slider.js';
2
+ export { SliderTickMarks } from './slider-tick-marks.js';
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function SliderTickMarks({ tickMarksCount, renderTickMarkLabel, }) {
3
+ if (tickMarksCount < 1) {
4
+ return null;
5
+ }
6
+ const tickMarks = [];
7
+ for (let index = 0; index < tickMarksCount; index += 1) {
8
+ const label = renderTickMarkLabel?.(index);
9
+ tickMarks.push((_jsx("div", { className: "dc-slider-tick-mark", "data-testid": "tick-mark", children: Boolean(label) && (_jsx("span", { className: "dc-slider-tick-mark__label", children: label })) }, index)));
10
+ }
11
+ return _jsx("div", { className: "dc-slider__tick-marks", children: tickMarks });
12
+ }
@@ -1,5 +1,5 @@
1
1
  import { ComponentPropsWithRef } from 'react';
2
- import { SliderTickMarksProps } from './slider-tick-marks';
2
+ import { SliderTickMarksProps } from './slider-tick-marks.js';
3
3
  type SliderHTMLProps = ComponentPropsWithRef<'input'>;
4
4
  type SliderBaseProps = Omit<SliderHTMLProps, 'type' | 'min' | 'max' | 'step' | 'value' | 'defaultValue'>;
5
5
  export type SliderThumbStyle = 'round' | 'rect';
@@ -1,14 +1,13 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef } from 'react';
3
3
  import { classNames } from '../../lib/react-helpers.js';
4
4
  import { SliderTickMarks } from './slider-tick-marks.js';
5
-
6
- const Slider = forwardRef(function Slider({ thumbStyle = 'round', tickMarksCount = 0, renderTickMarkLabel, step = 1, min = 0, max = 100, style, className, disabled, value, defaultValue, onChange, onChangeValue, ...props }, ref) {
5
+ export const Slider = forwardRef(function Slider({ thumbStyle = 'round', tickMarksCount = 0, renderTickMarkLabel, step = 1, min = 0, max = 100, style, className, disabled, value, defaultValue, onChange, onChangeValue, ...props }, ref) {
7
6
  defaultValue = value == null ? defaultValue || 0 : undefined;
8
- return (jsxs("div", { style: style, className: classNames(className, 'dc-slider', {
7
+ return (_jsxs("div", { style: style, className: classNames(className, 'dc-slider', {
9
8
  [`dc-slider_thumb_${thumbStyle}`]: thumbStyle !== undefined,
10
9
  'dc-slider_disabled': disabled,
11
- }), children: [jsx("input", { ...props, ref: ref, style: {
10
+ }), children: [_jsx("input", { ...props, ref: ref, style: {
12
11
  background: getTrackBackground({
13
12
  min,
14
13
  max,
@@ -20,7 +19,7 @@ const Slider = forwardRef(function Slider({ thumbStyle = 'round', tickMarksCount
20
19
  onChange?.(event);
21
20
  onChangeValue?.(value);
22
21
  target.style.background = getTrackBackground({ min, max, value });
23
- } }), jsx(SliderTickMarks, { tickMarksCount: tickMarksCount, renderTickMarkLabel: renderTickMarkLabel })] }));
22
+ } }), _jsx(SliderTickMarks, { tickMarksCount: tickMarksCount, renderTickMarkLabel: renderTickMarkLabel })] }));
24
23
  });
25
24
  function getTrackBackground(params) {
26
25
  const value = params.value || 0;
@@ -35,5 +34,3 @@ function getTrackBackground(params) {
35
34
  var(--dc-slider-track-bg) ${valuePct}%
36
35
  )`;
37
36
  }
38
-
39
- export { Slider };
@@ -0,0 +1 @@
1
+ export * from './spinner.js';
@@ -0,0 +1 @@
1
+ export * from './spinner.js';
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { classNames } from '../../lib/react-helpers.js';
4
+ export const Spinner = forwardRef(function Spinner({ size = 24, width = size, height = size, className = '', ...props }, ref) {
5
+ return _jsx("svg", { ...props, ref: ref, className: classNames('dc-spinner', className), xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 50 50", width: width, height: height, children: _jsx("circle", { cx: 25, cy: 25, r: 20, fill: "none", stroke: "currentColor", strokeWidth: 5 }) });
6
+ });
@@ -0,0 +1 @@
1
+ export * from './switch.js';
@@ -0,0 +1 @@
1
+ export * from './switch.js';
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { classNames } from '../../lib/react-helpers.js';
4
+ export const Switch = forwardRef(function Switch({ showCheckIcon = true, style, className, onChange, onToggle, ...props }, ref) {
5
+ return (_jsxs("label", { style: style, className: classNames('dc-switch', className), children: [_jsx("input", { ...props, ref: ref, className: "dc-switch__input", type: "checkbox", onChange: (event) => {
6
+ onChange?.(event);
7
+ onToggle?.(event.target.checked);
8
+ } }), _jsx("span", { "data-testid": "switch-track", className: "dc-switch__track", "aria-hidden": true, children: _jsx("span", { className: "dc-switch__thumb", children: showCheckIcon && (_jsx(CheckIcon, { className: "dc-switch__icon", "data-testid": "switch-check-icon" })) }) })] }));
9
+ });
10
+ function CheckIcon(props) {
11
+ return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", width: 20, height: 20, ...props, children: _jsx("path", { d: "M6 10.353L9 13L13.5 7", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }) }));
12
+ }
@@ -0,0 +1,7 @@
1
+ export * from './table-container.js';
2
+ export * from './table.js';
3
+ export * from './table-head.js';
4
+ export * from './table-body.js';
5
+ export * from './table-row.js';
6
+ export * from './table-head-cell.js';
7
+ export * from './table-cell.js';
@@ -0,0 +1,7 @@
1
+ export * from './table-container.js';
2
+ export * from './table.js';
3
+ export * from './table-head.js';
4
+ export * from './table-body.js';
5
+ export * from './table-row.js';
6
+ export * from './table-head-cell.js';
7
+ export * from './table-cell.js';
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { classNames } from '../../lib/react-helpers.js';
4
+ export const TableBody = forwardRef(function TableBody({ className, children, ...props }, ref) {
5
+ return (_jsx("tbody", { ...props, ref: ref, className: classNames(className, 'dc-table-body'), children: children }));
6
+ });
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { classNames } from '../../lib/react-helpers.js';
4
+ export const TableCell = forwardRef(function TableCell({ className, children, ...props }, ref) {
5
+ return (_jsx("td", { ...props, ref: ref, className: classNames('dc-table-cell', className), children: children }));
6
+ });
@@ -1,8 +1,7 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from 'react';
3
3
  import { classNames } from '../../lib/react-helpers.js';
4
-
5
- const TableContainer = forwardRef(function TableContainer({ border, className, children, ...props }, ref) {
4
+ export const TableContainer = forwardRef(function TableContainer({ border, className, children, ...props }, ref) {
6
5
  let modifier = '';
7
6
  if (typeof border === 'object' && border != null) {
8
7
  modifier = classNames({
@@ -15,7 +14,5 @@ const TableContainer = forwardRef(function TableContainer({ border, className, c
15
14
  else if (border === 'all') {
16
15
  modifier = 'dc-table-container_border_all';
17
16
  }
18
- return (jsx("div", { ...props, ref: ref, className: classNames(className, modifier, 'dc-table-container'), children: children }));
17
+ return (_jsx("div", { ...props, ref: ref, className: classNames(className, modifier, 'dc-table-container'), children: children }));
19
18
  });
20
-
21
- export { TableContainer };
@@ -6,5 +6,5 @@ export type TableHeadCellProps = {
6
6
  sort?: TableHeadCellSort;
7
7
  onChangeSort?: (sort: TableHeadCellSort) => void;
8
8
  } & TableHeadCellBaseProps;
9
- export declare const TableHeadCell: import("react").ForwardRefExoticComponent<Omit<TableHeadCellProps, "ref"> & import("react").RefAttributes<HTMLTableHeaderCellElement>>;
9
+ export declare const TableHeadCell: import("react").ForwardRefExoticComponent<Omit<TableHeadCellProps, "ref"> & import("react").RefAttributes<HTMLTableCellElement>>;
10
10
  export {};
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { classNames } from '../../lib/react-helpers.js';
4
+ import { ArrowsUpDownIcon } from '../hero-icons/24/outline/arrows-up-down-icon.js';
5
+ import { ArrowSmallUpIcon } from '../hero-icons/24/outline/arrow-small-up-icon.js';
6
+ import { ArrowSmallDownIcon } from '../hero-icons/24/outline/arrow-small-down-icon.js';
7
+ const iconMapping = {
8
+ none: ArrowsUpDownIcon,
9
+ ascending: ArrowSmallUpIcon,
10
+ descending: ArrowSmallDownIcon,
11
+ };
12
+ const stateMapping = {
13
+ none: 'ascending',
14
+ ascending: 'descending',
15
+ descending: 'none',
16
+ };
17
+ export const TableHeadCell = forwardRef(function TableHeaderCell({ isSortable = false, sort = 'none', className, children, onChangeSort, ...props }, ref) {
18
+ if (isSortable) {
19
+ const Icon = iconMapping[sort];
20
+ children = (_jsxs("button", { className: "dc-table-cell__sort-btn", type: "button", onClick: () => onChangeSort?.(stateMapping[sort]), children: [children, " ", _jsx(Icon, { className: "dc-table-cell__sort-icon", "aria-hidden": true, strokeWidth: 2 })] }));
21
+ }
22
+ return (_jsx("th", { ...props, className: classNames(className, {
23
+ 'dc-table-cell': true,
24
+ 'dc-table-cell_head': true,
25
+ 'dc-table-cell_sortable': isSortable,
26
+ }), ref: ref, "aria-sort": isSortable ? sort : props['aria-sort'], children: children }));
27
+ });
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { classNames } from '../../lib/react-helpers.js';
4
+ export const TableHead = forwardRef(function TableHead({ className, isTinted = false, ...props }, ref) {
5
+ return (_jsx("thead", { ...props, ref: ref, className: classNames(className, {
6
+ 'dc-table-head': true,
7
+ 'dc-table-head_tinted': isTinted,
8
+ }) }));
9
+ });
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { classNames } from '../../lib/react-helpers.js';
4
+ export const TableRow = forwardRef(function TableRow({ isSelected, className, ...props }, ref) {
5
+ return (_jsx("tr", { ...props, ref: ref, className: classNames(className, {
6
+ 'dc-table-row': true,
7
+ 'dc-table-row_selected': isSelected,
8
+ }) }));
9
+ });
@@ -1,14 +1,11 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from 'react';
3
3
  import { classNames } from '../../lib/react-helpers.js';
4
-
5
- const Table = forwardRef(function Table({ cellSize = 'md', isStriped = false, isBordered = false, highlightRowOnHover = false, className, children, ...props }, ref) {
6
- return (jsx("table", { ...props, ref: ref, className: classNames(className, 'dc-table', {
4
+ export const Table = forwardRef(function Table({ cellSize = 'md', isStriped = false, isBordered = false, highlightRowOnHover = false, className, children, ...props }, ref) {
5
+ return (_jsx("table", { ...props, ref: ref, className: classNames(className, 'dc-table', {
7
6
  [`dc-table_cell_${cellSize}`]: cellSize,
8
7
  'dc-table_striped': isStriped,
9
8
  'dc-table_bordered': isBordered,
10
9
  'dc-table_highlight_row': highlightRowOnHover,
11
10
  }), children: children }));
12
11
  });
13
-
14
- export { Table };
@@ -0,0 +1,4 @@
1
+ export * from './tabs.js';
2
+ export * from './tab-list.js';
3
+ export * from './tab.js';
4
+ export * from './tab-panel.js';
@@ -0,0 +1,4 @@
1
+ export * from './tabs.js';
2
+ export * from './tab-list.js';
3
+ export * from './tab.js';
4
+ export * from './tab-panel.js';
@@ -1,11 +1,10 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useRef } from 'react';
3
3
  import { KeyboardKeys } from '../../lib/keyboard-keys.js';
4
4
  import { assertIfNullable } from '../../lib/helpers.js';
5
5
  import { classNames, focusElement } from '../../lib/react-helpers.js';
6
6
  import { useTabsContext } from './tabs-context.js';
7
-
8
- function TabList({ className, children, onFocus, onBlur, onKeyDown, ...props }) {
7
+ export function TabList({ className, children, onFocus, onBlur, onKeyDown, ...props }) {
9
8
  const ref = useRef(null);
10
9
  const { selectedTab, setTabListHasFocus } = useTabsContext();
11
10
  function handleFocus(event) {
@@ -59,7 +58,5 @@ function TabList({ className, children, onFocus, onBlur, onKeyDown, ...props })
59
58
  }
60
59
  onKeyDown?.(event);
61
60
  }
62
- return (jsx("div", { ...props, ref: ref, role: "tablist", className: classNames('dc-tab-list', className), onFocus: handleFocus, onBlur: handleBlur, onKeyDown: handleKeyDown, children: children }));
61
+ return (_jsx("div", { ...props, ref: ref, role: "tablist", tabIndex: -1, className: classNames('dc-tab-list', className), onFocus: handleFocus, onBlur: handleBlur, onKeyDown: handleKeyDown, children: children }));
63
62
  }
64
-
65
- export { TabList };
@@ -1,5 +1,5 @@
1
1
  import { ComponentPropsWithoutRef } from 'react';
2
- import { TabName } from './types';
2
+ import { TabName } from './types.js';
3
3
  export type TabPanelProps = {
4
4
  tab: TabName;
5
5
  } & ComponentPropsWithoutRef<'div'>;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { classNames } from '../../lib/react-helpers.js';
3
+ import { useTabsContext } from './tabs-context.js';
4
+ export function TabPanel({ tab, id, className, children, 'aria-labelledby': ariaLabelledBy, ...props }) {
5
+ const { selectedTab, getTabProps } = useTabsContext();
6
+ if (selectedTab !== tab) {
7
+ return null;
8
+ }
9
+ const tabProps = getTabProps(tab);
10
+ return (_jsx("div", { ...props, className: classNames('dc-tab-panel', className), role: "tabpanel", id: id || tabProps.ariaControls, "aria-labelledby": ariaLabelledBy || tabProps.id, children: children }));
11
+ }
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { classNames } from '../../lib/react-helpers.js';
3
+ import { useTabsContext } from './tabs-context.js';
4
+ import { Badge } from '../badge/index.js';
5
+ export function Tab({ id, name, icon, counter, className, children, onClick, 'aria-controls': ariaControls, ...props }) {
6
+ const { getTabProps, selectedTab, setSelectedTab, tabListHasFocus, } = useTabsContext();
7
+ const tabProps = getTabProps(name);
8
+ const selected = name === selectedTab;
9
+ function handleClick(event) {
10
+ setSelectedTab(name);
11
+ onClick?.(event);
12
+ }
13
+ return (_jsx("button", { ...props, className: classNames('dc-tab', className), type: "button", role: "tab", name: name, id: id || tabProps.id, "aria-controls": ariaControls || tabProps.ariaControls, "aria-selected": selected, tabIndex: selected && !tabListHasFocus ? 0 : -1, onClick: handleClick, children: _jsxs("span", { className: "dc-tab__layout", children: [icon != null && (_jsx("span", { className: "dc-tab__icon", children: icon })), children != null && (_jsxs("span", { className: "dc-tab__label", children: [children, " "] })), counter != null && counter !== 0 && (_jsx(Badge, { className: "dc-tab__counter", children: counter }))] }) }));
14
+ }
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { TabName, TabSetter } from './types';
2
+ import { TabName, TabSetter } from './types.js';
3
3
  export type GetTabProps = (tab: TabName) => ({
4
4
  id: string;
5
5
  ariaControls: string;
@@ -1,15 +1,14 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { createContext, useState, useId, useCallback, useContext } from 'react';
3
-
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useCallback, useContext, useId, useState } from 'react';
4
3
  const TabsContext = createContext(null);
5
- function TabsContextProvider({ children, selectedTab, setSelectedTab, }) {
4
+ export function TabsContextProvider({ children, selectedTab, setSelectedTab, }) {
6
5
  const [tabListHasFocus, setTabListHasFocus] = useState(false);
7
6
  const id = useId();
8
7
  const getTabProps = useCallback((tab) => ({
9
8
  id: `${id}-tab[${tab}]`,
10
9
  ariaControls: `${id}-tabPanel[${tab}]`,
11
10
  }), [id]);
12
- return (jsx(TabsContext.Provider, { value: {
11
+ return (_jsx(TabsContext.Provider, { value: {
13
12
  getTabProps,
14
13
  selectedTab,
15
14
  setSelectedTab,
@@ -17,12 +16,10 @@ function TabsContextProvider({ children, selectedTab, setSelectedTab, }) {
17
16
  setTabListHasFocus,
18
17
  }, children: children }));
19
18
  }
20
- function useTabsContext() {
19
+ export function useTabsContext() {
21
20
  const context = useContext(TabsContext);
22
21
  if (!context) {
23
22
  throw new Error('useTabsContext must be used within TabsContextProvider');
24
23
  }
25
24
  return context;
26
25
  }
27
-
28
- export { TabsContextProvider, useTabsContext };
@@ -1,5 +1,5 @@
1
1
  import { ComponentPropsWithoutRef } from 'react';
2
- import { TabName, TabSetter } from './types';
2
+ import { TabName, TabSetter } from './types.js';
3
3
  export interface TabsProps extends ComponentPropsWithoutRef<'div'> {
4
4
  selectedTab: TabName;
5
5
  onSelectTab: TabSetter;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { classNames } from '../../lib/react-helpers.js';
3
+ import { TabsContextProvider } from './tabs-context.js';
4
+ export function Tabs({ className, children, selectedTab, onSelectTab, ...props }) {
5
+ return (_jsx(TabsContextProvider, { selectedTab: selectedTab, setSelectedTab: onSelectTab, children: _jsx("div", { ...props, className: classNames('dc-tabs', className), children: children }) }));
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export * from './tag.js';
@@ -0,0 +1 @@
1
+ export * from './tag.js';
@@ -0,0 +1,15 @@
1
+ import { ComponentPropsWithRef } from 'react';
2
+ type TagHTMLProps = ComponentPropsWithRef<'strong'>;
3
+ export type TagStyle = 'default' | 'filled' | 'tinted';
4
+ export type TagSize = 'sm' | 'md' | 'lg';
5
+ export type TagTint = 'gray' | 'green' | 'cyan' | 'blue' | 'purple' | 'pink' | 'red' | 'orange' | 'yellow';
6
+ export type TagElementType = 'abbr' | 'b' | 'bdo' | 'cite' | 'code' | 'dfn' | 'em' | 'i' | 'kbd' | 'samp' | 'small' | 'span' | 'strong' | 'var';
7
+ export type TagProps = {
8
+ as?: TagElementType;
9
+ tagStyle?: TagStyle;
10
+ size?: TagSize;
11
+ tint?: TagTint;
12
+ rounded?: boolean;
13
+ } & TagHTMLProps;
14
+ export declare const Tag: import("react").ForwardRefExoticComponent<Omit<TagProps, "ref"> & import("react").RefAttributes<HTMLElement>>;
15
+ export {};
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { classNames } from '../../lib/react-helpers.js';
4
+ export const Tag = forwardRef(function Tag({ as: Component = 'strong', tagStyle = 'default', size = 'md', tint = 'gray', rounded, className, children, ...props }, ref) {
5
+ return (_jsx(Component, { ...props, ref: ref, className: classNames(className, 'dc-tag', {
6
+ [`dc-tag_${tagStyle}`]: tagStyle,
7
+ [`dc-tag_${size}`]: size,
8
+ [`dc-tag_${tint}`]: tint,
9
+ 'dc-tag_rounded': rounded,
10
+ }), children: children }));
11
+ });
@@ -0,0 +1 @@
1
+ export * from './text-input.js';
@@ -0,0 +1 @@
1
+ export * from './text-input.js';
@@ -1,24 +1,23 @@
1
1
  import { ComponentPropsWithRef, ReactNode } from 'react';
2
2
  type TextInputHTMLProps = ComponentPropsWithRef<'input'>;
3
- type TextInputBaseProps = Omit<TextInputHTMLProps, 'type' | 'width' | 'size'>;
4
- export type TextInputType = 'date' | 'datetime-local' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'time' | 'url';
5
- export type TextInputWidth = '2ch' | '3ch' | '4ch' | '5ch' | '10ch' | '20ch' | '40ch';
3
+ type TextInputBaseProps = Omit<TextInputHTMLProps, 'type' | 'size'>;
4
+ export type TextInputType = 'date' | 'datetime-local' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'time' | 'url' | 'week';
6
5
  export type TextInputSize = 'sm' | 'md' | 'lg';
7
- export type TextInputChangeValueHandler = (value: string) => void;
8
- export type TextInputRenderAddOn = (props: {
6
+ export type TextInputSlotStyle = 'plain' | 'tinted';
7
+ export type TextInputSlotRenderer = (props: {
9
8
  className: string;
10
9
  }) => ReactNode;
10
+ export type TextInputValueChangeHandler = (value: string) => void;
11
11
  export type TextInputProps = TextInputBaseProps & {
12
- hasError?: boolean;
13
- isBlock?: boolean;
12
+ fullWidth?: boolean;
13
+ invalid?: boolean;
14
14
  type?: TextInputType;
15
- width?: TextInputWidth;
16
- widthCh?: number;
17
15
  size?: TextInputSize;
18
- leftAddOn?: ReactNode | TextInputRenderAddOn;
19
- rightAddOn?: ReactNode | TextInputRenderAddOn;
20
- htmlSize?: TextInputHTMLProps['size'];
21
- onChangeValue?: TextInputChangeValueHandler;
16
+ sizeInChars?: number;
17
+ slotLeft?: ReactNode | TextInputSlotRenderer;
18
+ slotRight?: ReactNode | TextInputSlotRenderer;
19
+ slotStyle?: TextInputSlotStyle;
20
+ onChangeValue?: TextInputValueChangeHandler;
22
21
  };
23
22
  export declare const TextInput: import("react").ForwardRefExoticComponent<Omit<TextInputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
24
23
  export {};
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { classNames } from '../../lib/react-helpers.js';
4
+ export const TextInput = forwardRef(function TextInput({ style, className, fullWidth, size = 'md', sizeInChars, slotStyle = 'plain', slotLeft, slotRight, type = 'text', invalid, disabled, onChange, onChangeValue, ...props }, ref) {
5
+ let elementBeforeInput;
6
+ if (slotLeft) {
7
+ const className = 'dc-text-input__slot-left';
8
+ if (typeof slotLeft === 'function') {
9
+ elementBeforeInput = slotLeft({ className });
10
+ }
11
+ else {
12
+ elementBeforeInput = _jsx("div", { className: className, children: slotLeft });
13
+ }
14
+ }
15
+ let elementAfterInput;
16
+ if (slotRight) {
17
+ const className = 'dc-text-input__slot-right';
18
+ if (typeof slotRight === 'function') {
19
+ elementAfterInput = slotRight({ className });
20
+ }
21
+ else {
22
+ elementAfterInput = _jsx("div", { className: className, children: slotRight });
23
+ }
24
+ }
25
+ const handleChange = (event) => {
26
+ if (typeof onChange === 'function') {
27
+ onChange(event);
28
+ }
29
+ if (typeof onChangeValue === 'function') {
30
+ onChangeValue(event.target.value);
31
+ }
32
+ };
33
+ return (_jsxs("div", { style: style, className: classNames(className, 'dc-text-input', {
34
+ [`dc-text-input_${size}`]: size,
35
+ [`dc-text-input_slot_${slotStyle}`]: slotStyle,
36
+ 'dc-text-input_full-width': fullWidth,
37
+ 'dc-text-input_invalid': invalid,
38
+ 'dc-text-input_disabled': disabled,
39
+ 'dc-text-input_has_slot-left': elementBeforeInput,
40
+ 'dc-text-input_has_slot-right': elementAfterInput,
41
+ }), children: [elementBeforeInput, _jsx("input", { ...props, className: "dc-text-input__native", ref: ref, type: type, size: sizeInChars, disabled: disabled, "aria-invalid": props['aria-invalid'] ?? invalid, onChange: handleChange }), elementAfterInput] }));
42
+ });
@@ -0,0 +1 @@
1
+ export * from './textarea.js';
@@ -0,0 +1 @@
1
+ export * from './textarea.js';
@@ -0,0 +1,12 @@
1
+ import { ComponentPropsWithRef } from 'react';
2
+ type TextareaHTMLProps = ComponentPropsWithRef<'textarea'>;
3
+ export type TextareaSize = 'sm' | 'md' | 'lg';
4
+ export type TextareaValueChangeHandler = (value: string) => void;
5
+ export type TextareaProps = TextareaHTMLProps & {
6
+ fullWidth?: boolean;
7
+ invalid?: boolean;
8
+ size?: TextareaSize;
9
+ onChangeValue?: TextareaValueChangeHandler;
10
+ };
11
+ export declare const Textarea: import("react").ForwardRefExoticComponent<Omit<TextareaProps, "ref"> & import("react").RefAttributes<HTMLTextAreaElement>>;
12
+ export {};