draft-components 1.0.0-beta.3.1 → 1.0.0-beta.4

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 (650) hide show
  1. package/cjs/components/alert/alert.cjs +18 -0
  2. package/cjs/components/avatar/avatar.cjs +31 -0
  3. package/cjs/components/avatar-group/avatar-group.cjs +10 -0
  4. package/cjs/components/badge/{badge.js → badge.cjs} +7 -6
  5. package/cjs/components/breadcrumbs/breadcrumbs-context.cjs +19 -0
  6. package/cjs/components/breadcrumbs/breadcrumbs-item.cjs +21 -0
  7. package/cjs/components/breadcrumbs/breadcrumbs.cjs +12 -0
  8. package/cjs/components/button/button.cjs +39 -0
  9. package/cjs/components/button/icon-button.cjs +12 -0
  10. package/cjs/components/button-group/button-group.cjs +10 -0
  11. package/cjs/components/caption/caption.cjs +27 -0
  12. package/cjs/components/caption/icons.cjs +21 -0
  13. package/cjs/components/checkbox/checkbox.cjs +16 -0
  14. package/cjs/components/date-picker/{calendar-day.js → calendar-day.cjs} +8 -7
  15. package/cjs/components/date-picker/calendar-grid-head.cjs +16 -0
  16. package/cjs/components/date-picker/calendar-grid.cjs +106 -0
  17. package/cjs/components/date-picker/calendar-header.cjs +48 -0
  18. package/cjs/components/date-picker/calendar.cjs +24 -0
  19. package/cjs/components/date-picker/{date-helpers.js → date-helpers.cjs} +30 -26
  20. package/cjs/components/date-picker/date-picker.cjs +20 -0
  21. package/cjs/components/date-picker/date-range-picker.cjs +61 -0
  22. package/cjs/components/date-picker/date-range.cjs +28 -0
  23. package/cjs/components/date-picker/icons.cjs +13 -0
  24. package/cjs/components/date-picker/{parse-min-max-props.js → parse-min-max-props.cjs} +7 -6
  25. package/cjs/components/date-picker-popover/date-picker-popover.cjs +24 -0
  26. package/cjs/components/date-range-picker-popover/date-range-picker-popover-footer.cjs +11 -0
  27. package/cjs/components/date-range-picker-popover/date-range-picker-popover-presets.cjs +35 -0
  28. package/cjs/components/date-range-picker-popover/date-range-picker-popover.cjs +59 -0
  29. package/cjs/components/date-range-picker-popover/{helpers.js → helpers.cjs} +3 -3
  30. package/cjs/components/date-range-picker-popover/{use-is-compact-view.js → use-is-compact-view.cjs} +8 -7
  31. package/cjs/components/dialog/{dialog-body.js → dialog-body.cjs} +17 -16
  32. package/cjs/components/dialog/{dialog-context.js → dialog-context.cjs} +10 -9
  33. package/cjs/components/dialog/dialog-footer.cjs +10 -0
  34. package/cjs/components/dialog/dialog-header.cjs +18 -0
  35. package/cjs/components/dialog/dialog.cjs +50 -0
  36. package/cjs/components/dialog/x-mark-icon.cjs +9 -0
  37. package/cjs/components/empty-state/empty-state.cjs +10 -0
  38. package/cjs/components/file-picker/file-picker.cjs +47 -0
  39. package/cjs/components/filter-buttons/filter-button.cjs +11 -0
  40. package/cjs/components/filter-buttons/filter-buttons.cjs +27 -0
  41. package/cjs/components/form-field/form-field.cjs +26 -0
  42. package/cjs/components/index.cjs +123 -0
  43. package/cjs/components/label/label.cjs +13 -0
  44. package/cjs/components/menu/menu-item.cjs +14 -0
  45. package/cjs/components/menu/menu-separator.cjs +10 -0
  46. package/cjs/components/menu/{menu.js → menu.cjs} +50 -52
  47. package/cjs/components/nav-list/nav-list-item.cjs +20 -0
  48. package/cjs/components/nav-list/nav-list-title.cjs +10 -0
  49. package/cjs/components/nav-list/nav-list.cjs +10 -0
  50. package/cjs/components/password-input/icons.cjs +13 -0
  51. package/cjs/components/password-input/password-input.cjs +30 -0
  52. package/cjs/components/popover/popover.cjs +97 -0
  53. package/cjs/components/popover/{use-page-click.js → use-page-click.cjs} +8 -7
  54. package/cjs/components/portal/portal-context.cjs +22 -0
  55. package/cjs/components/portal/portal.cjs +11 -0
  56. package/cjs/components/positioner/{calc-position.js → calc-position.cjs} +4 -4
  57. package/cjs/components/positioner/{positioner.js → positioner.cjs} +14 -13
  58. package/cjs/components/radio/radio.cjs +24 -0
  59. package/cjs/components/segmented-control/segmented-control-button.cjs +15 -0
  60. package/cjs/components/segmented-control/segmented-control.cjs +48 -0
  61. package/cjs/components/select/select.cjs +27 -0
  62. package/cjs/components/selection-control/selection-control.cjs +18 -0
  63. package/cjs/components/slider/slider-tick-marks.cjs +17 -0
  64. package/cjs/components/slider/{slider.js → slider.cjs} +16 -14
  65. package/cjs/components/spinner/spinner.cjs +11 -0
  66. package/cjs/components/switch/switch.cjs +15 -0
  67. package/cjs/components/table/icons.cjs +17 -0
  68. package/cjs/components/table/table-body.cjs +11 -0
  69. package/cjs/components/table/table-cell.cjs +11 -0
  70. package/cjs/components/table/table-container.cjs +23 -0
  71. package/cjs/components/table/table-head-cell.cjs +30 -0
  72. package/cjs/components/table/table-head.cjs +14 -0
  73. package/cjs/components/table/table-row.cjs +14 -0
  74. package/cjs/components/table/table.cjs +16 -0
  75. package/cjs/components/tabs/tab-list.cjs +67 -0
  76. package/cjs/components/tabs/tab-panel.cjs +16 -0
  77. package/cjs/components/tabs/tab.cjs +19 -0
  78. package/cjs/components/tabs/{tabs-context.js → tabs-context.cjs} +13 -12
  79. package/cjs/components/tabs/tabs.cjs +11 -0
  80. package/cjs/components/tag/{tag.js → tag.cjs} +7 -6
  81. package/cjs/components/text-input/text-input.cjs +26 -0
  82. package/cjs/components/textarea/textarea.cjs +40 -0
  83. package/cjs/components/toast/toast-button.cjs +11 -0
  84. package/cjs/components/toast/toast.cjs +11 -0
  85. package/cjs/components/toast/x-mark-icon.cjs +9 -0
  86. package/cjs/components/toaster/toaster.cjs +115 -0
  87. package/cjs/components/tooltip/tooltip.cjs +75 -0
  88. package/cjs/hooks/index.cjs +13 -0
  89. package/cjs/hooks/{use-disable-body-scroll.js → use-disable-body-scroll.cjs} +9 -8
  90. package/cjs/hooks/{use-esc-key-down.js → use-esc-key-down.cjs} +10 -9
  91. package/cjs/hooks/{use-focus-trap.js → use-focus-trap.cjs} +12 -11
  92. package/cjs/hooks/{use-mount-transition.js → use-mount-transition.cjs} +13 -12
  93. package/cjs/index.cjs +141 -0
  94. package/cjs/lib/{helpers.js → helpers.cjs} +4 -4
  95. package/cjs/lib/index.cjs +15 -0
  96. package/cjs/lib/{keyboard-keys.js → keyboard-keys.cjs} +5 -4
  97. package/cjs/lib/{react-helpers.js → react-helpers.cjs} +9 -8
  98. package/css/draft-components-utilities.css +4 -0
  99. package/css/draft-components.css +15 -1
  100. package/esm/components/alert/alert.js +9 -5
  101. package/esm/components/avatar/avatar.js +17 -14
  102. package/esm/components/avatar-group/avatar-group.js +7 -4
  103. package/esm/components/badge/badge.js +7 -4
  104. package/esm/components/breadcrumbs/breadcrumbs-context.js +7 -4
  105. package/esm/components/breadcrumbs/breadcrumbs-item.js +10 -7
  106. package/esm/components/breadcrumbs/breadcrumbs.js +9 -6
  107. package/esm/components/button/button.js +11 -8
  108. package/esm/components/button/icon-button.js +8 -5
  109. package/esm/components/button-group/button-group.js +7 -4
  110. package/esm/components/caption/caption.js +10 -7
  111. package/esm/components/caption/icons.js +12 -9
  112. package/esm/components/checkbox/checkbox.js +12 -9
  113. package/esm/components/date-picker/calendar-day.js +8 -5
  114. package/esm/components/date-picker/calendar-grid-head.js +8 -5
  115. package/esm/components/date-picker/calendar-grid.js +15 -12
  116. package/esm/components/date-picker/calendar-header.js +20 -16
  117. package/esm/components/date-picker/calendar.js +11 -8
  118. package/esm/components/date-picker/date-helpers.js +22 -20
  119. package/esm/components/date-picker/date-picker.js +10 -7
  120. package/esm/components/date-picker/date-range-picker.js +15 -12
  121. package/esm/components/date-picker/date-range.js +5 -2
  122. package/esm/components/date-picker/icons.js +8 -5
  123. package/esm/components/date-picker/parse-min-max-props.js +5 -2
  124. package/esm/components/date-picker-popover/date-picker-popover.js +14 -8
  125. package/esm/components/date-range-picker-popover/date-range-picker-popover-footer.js +8 -4
  126. package/esm/components/date-range-picker-popover/date-range-picker-popover-presets.js +12 -9
  127. package/esm/components/date-range-picker-popover/date-range-picker-popover.js +20 -13
  128. package/esm/components/date-range-picker-popover/helpers.js +3 -1
  129. package/esm/components/date-range-picker-popover/use-is-compact-view.js +6 -3
  130. package/esm/components/dialog/dialog-body.js +14 -11
  131. package/esm/components/dialog/dialog-context.js +7 -4
  132. package/esm/components/dialog/dialog-footer.js +7 -4
  133. package/esm/components/dialog/dialog-header.js +11 -7
  134. package/esm/components/dialog/dialog.js +18 -12
  135. package/esm/components/dialog/x-mark-icon.js +6 -3
  136. package/esm/components/empty-state/empty-state.js +7 -4
  137. package/esm/components/file-picker/file-picker.js +13 -9
  138. package/esm/components/filter-buttons/filter-button.js +7 -4
  139. package/esm/components/filter-buttons/filter-buttons.js +9 -6
  140. package/esm/components/form-field/form-field.js +11 -8
  141. package/esm/components/index.js +59 -37
  142. package/esm/components/label/label.js +7 -4
  143. package/esm/components/menu/menu-item.js +9 -6
  144. package/esm/components/menu/menu-separator.js +7 -4
  145. package/esm/components/menu/menu.js +24 -24
  146. package/esm/components/nav-list/nav-list-item.js +10 -7
  147. package/esm/components/nav-list/nav-list-title.js +7 -4
  148. package/esm/components/nav-list/nav-list.js +7 -4
  149. package/esm/components/password-input/icons.js +8 -5
  150. package/esm/components/password-input/password-input.js +12 -9
  151. package/esm/components/popover/popover.js +22 -21
  152. package/esm/components/popover/use-page-click.js +5 -2
  153. package/esm/components/portal/portal-context.js +5 -6
  154. package/esm/components/portal/portal.js +5 -2
  155. package/esm/components/positioner/calc-position.js +4 -2
  156. package/esm/components/positioner/positioner.js +9 -6
  157. package/esm/components/radio/radio.js +12 -9
  158. package/esm/components/segmented-control/segmented-control-button.js +7 -4
  159. package/esm/components/segmented-control/segmented-control.js +12 -9
  160. package/esm/components/select/select.js +12 -9
  161. package/esm/components/selection-control/selection-control.js +10 -7
  162. package/esm/components/slider/slider-tick-marks.js +8 -5
  163. package/esm/components/slider/slider.js +13 -10
  164. package/esm/components/spinner/spinner.js +7 -4
  165. package/esm/components/switch/switch.js +11 -8
  166. package/esm/components/table/icons.js +10 -7
  167. package/esm/components/table/table-body.js +7 -4
  168. package/esm/components/table/table-cell.js +7 -4
  169. package/esm/components/table/table-container.js +7 -4
  170. package/esm/components/table/table-head-cell.js +18 -15
  171. package/esm/components/table/table-head.js +7 -4
  172. package/esm/components/table/table-row.js +7 -4
  173. package/esm/components/table/table.js +7 -4
  174. package/esm/components/tabs/tab-list.js +14 -11
  175. package/esm/components/tabs/tab-panel.js +8 -5
  176. package/esm/components/tabs/tab.js +10 -7
  177. package/esm/components/tabs/tabs-context.js +8 -5
  178. package/esm/components/tabs/tabs.js +8 -5
  179. package/esm/components/tag/tag.js +7 -4
  180. package/esm/components/text-input/text-input.js +11 -8
  181. package/esm/components/textarea/textarea.js +20 -17
  182. package/esm/components/toast/toast-button.js +7 -4
  183. package/esm/components/toast/toast.js +8 -5
  184. package/esm/components/toast/x-mark-icon.js +6 -3
  185. package/esm/components/toaster/toaster.js +29 -46
  186. package/esm/components/tooltip/tooltip.js +22 -24
  187. package/esm/hooks/index.js +4 -4
  188. package/esm/hooks/use-disable-body-scroll.js +5 -2
  189. package/esm/hooks/use-esc-key-down.js +6 -3
  190. package/esm/hooks/use-focus-trap.js +6 -3
  191. package/esm/hooks/use-mount-transition.js +6 -3
  192. package/esm/index.js +66 -3
  193. package/esm/lib/helpers.js +4 -2
  194. package/esm/lib/index.js +3 -3
  195. package/esm/lib/keyboard-keys.js +3 -1
  196. package/esm/lib/react-helpers.js +8 -5
  197. package/package.json +21 -20
  198. package/{cjs → types}/components/alert/alert.d.ts +0 -0
  199. package/{cjs → types}/components/alert/index.d.ts +0 -0
  200. package/{cjs → types}/components/avatar/avatar.d.ts +0 -0
  201. package/{cjs → types}/components/avatar/index.d.ts +0 -0
  202. package/{cjs → types}/components/avatar-group/avatar-group.d.ts +0 -0
  203. package/{cjs → types}/components/avatar-group/index.d.ts +0 -0
  204. package/{cjs → types}/components/badge/badge.d.ts +0 -0
  205. package/{cjs → types}/components/badge/index.d.ts +0 -0
  206. package/{cjs → types}/components/breadcrumbs/breadcrumbs-context.d.ts +0 -0
  207. package/{cjs → types}/components/breadcrumbs/breadcrumbs-item.d.ts +0 -0
  208. package/{cjs → types}/components/breadcrumbs/breadcrumbs.d.ts +0 -0
  209. package/{cjs → types}/components/breadcrumbs/index.d.ts +0 -0
  210. package/{cjs → types}/components/button/button.d.ts +0 -0
  211. package/{cjs → types}/components/button/icon-button.d.ts +0 -0
  212. package/{cjs → types}/components/button/index.d.ts +0 -0
  213. package/{cjs → types}/components/button-group/button-group.d.ts +0 -0
  214. package/{cjs → types}/components/button-group/index.d.ts +0 -0
  215. package/{cjs → types}/components/caption/caption.d.ts +0 -0
  216. package/{cjs → types}/components/caption/icons.d.ts +0 -0
  217. package/{cjs → types}/components/caption/index.d.ts +0 -0
  218. package/{cjs → types}/components/checkbox/checkbox.d.ts +0 -0
  219. package/{cjs → types}/components/checkbox/index.d.ts +0 -0
  220. package/{cjs → types}/components/color-picker/color-picker-button.d.ts +0 -0
  221. package/{cjs → types}/components/color-picker/color-picker.d.ts +0 -0
  222. package/{cjs → types}/components/color-picker/index.d.ts +0 -0
  223. package/{cjs → types}/components/date-picker/calendar-day.d.ts +0 -0
  224. package/{cjs → types}/components/date-picker/calendar-grid-head.d.ts +0 -0
  225. package/{cjs → types}/components/date-picker/calendar-grid.d.ts +0 -0
  226. package/{cjs → types}/components/date-picker/calendar-header.d.ts +0 -0
  227. package/{cjs → types}/components/date-picker/calendar.d.ts +0 -0
  228. package/{cjs → types}/components/date-picker/date-helpers.d.ts +0 -0
  229. package/{cjs → types}/components/date-picker/date-picker.d.ts +0 -0
  230. package/{cjs → types}/components/date-picker/date-range-picker.d.ts +0 -0
  231. package/{cjs → types}/components/date-picker/date-range.d.ts +0 -0
  232. package/{cjs → types}/components/date-picker/icons.d.ts +0 -0
  233. package/{cjs → types}/components/date-picker/index.d.ts +0 -0
  234. package/{cjs → types}/components/date-picker/parse-min-max-props.d.ts +0 -0
  235. package/{cjs → types}/components/date-picker-popover/date-picker-popover.d.ts +0 -0
  236. package/{cjs → types}/components/date-picker-popover/index.d.ts +0 -0
  237. package/{cjs → types}/components/date-range-picker-popover/date-range-picker-popover-footer.d.ts +0 -0
  238. package/{cjs → types}/components/date-range-picker-popover/date-range-picker-popover-presets.d.ts +0 -0
  239. package/{cjs → types}/components/date-range-picker-popover/date-range-picker-popover.d.ts +0 -0
  240. package/{cjs → types}/components/date-range-picker-popover/helpers.d.ts +0 -0
  241. package/{cjs → types}/components/date-range-picker-popover/index.d.ts +0 -0
  242. package/{cjs → types}/components/date-range-picker-popover/types.d.ts +0 -0
  243. package/{cjs → types}/components/date-range-picker-popover/use-is-compact-view.d.ts +0 -0
  244. package/{cjs → types}/components/dialog/dialog-body.d.ts +0 -0
  245. package/{cjs → types}/components/dialog/dialog-context.d.ts +0 -0
  246. package/{cjs → types}/components/dialog/dialog-footer.d.ts +0 -0
  247. package/{cjs → types}/components/dialog/dialog-header.d.ts +0 -0
  248. package/{cjs → types}/components/dialog/dialog.d.ts +0 -0
  249. package/{cjs → types}/components/dialog/index.d.ts +0 -0
  250. package/{cjs → types}/components/dialog/x-mark-icon.d.ts +0 -0
  251. package/{cjs → types}/components/empty-state/empty-state.d.ts +0 -0
  252. package/{cjs → types}/components/empty-state/index.d.ts +0 -0
  253. package/{cjs → types}/components/file-picker/file-picker.d.ts +0 -0
  254. package/{cjs → types}/components/file-picker/index.d.ts +0 -0
  255. package/{cjs → types}/components/filter-buttons/filter-button.d.ts +0 -0
  256. package/{cjs → types}/components/filter-buttons/filter-buttons.d.ts +0 -0
  257. package/{cjs → types}/components/filter-buttons/index.d.ts +0 -0
  258. package/{cjs → types}/components/form-field/form-field.d.ts +0 -0
  259. package/{cjs → types}/components/form-field/index.d.ts +0 -0
  260. package/{cjs → types}/components/index.d.ts +0 -0
  261. package/{cjs → types}/components/label/index.d.ts +0 -0
  262. package/{cjs → types}/components/label/label.d.ts +0 -0
  263. package/{cjs → types}/components/menu/index.d.ts +0 -0
  264. package/{cjs → types}/components/menu/menu-item.d.ts +0 -0
  265. package/{cjs → types}/components/menu/menu-separator.d.ts +0 -0
  266. package/{cjs → types}/components/menu/menu.d.ts +0 -0
  267. package/{cjs → types}/components/nav-list/index.d.ts +0 -0
  268. package/{cjs → types}/components/nav-list/nav-list-item.d.ts +0 -0
  269. package/{cjs → types}/components/nav-list/nav-list-title.d.ts +0 -0
  270. package/{cjs → types}/components/nav-list/nav-list.d.ts +0 -0
  271. package/{cjs → types}/components/password-input/icons.d.ts +0 -0
  272. package/{cjs → types}/components/password-input/index.d.ts +0 -0
  273. package/{cjs → types}/components/password-input/password-input.d.ts +0 -0
  274. package/{cjs → types}/components/popover/index.d.ts +0 -0
  275. package/{cjs → types}/components/popover/popover.d.ts +0 -0
  276. package/{cjs → types}/components/popover/use-page-click.d.ts +0 -0
  277. package/{cjs → types}/components/portal/index.d.ts +0 -0
  278. package/{cjs → types}/components/portal/portal-context.d.ts +0 -0
  279. package/{cjs → types}/components/portal/portal.d.ts +0 -0
  280. package/{cjs → types}/components/positioner/calc-position.d.ts +0 -0
  281. package/{cjs → types}/components/positioner/index.d.ts +0 -0
  282. package/{cjs → types}/components/positioner/positioner.d.ts +0 -0
  283. package/{cjs → types}/components/positioner/types.d.ts +0 -0
  284. package/{cjs → types}/components/radio/index.d.ts +0 -0
  285. package/{cjs → types}/components/radio/radio.d.ts +0 -0
  286. package/{cjs → types}/components/segmented-control/index.d.ts +0 -0
  287. package/{cjs → types}/components/segmented-control/segmented-control-button.d.ts +0 -0
  288. package/{cjs → types}/components/segmented-control/segmented-control.d.ts +0 -0
  289. package/{cjs → types}/components/select/index.d.ts +0 -0
  290. package/{cjs → types}/components/select/select.d.ts +1 -1
  291. package/{cjs → types}/components/selection-control/index.d.ts +0 -0
  292. package/{cjs → types}/components/selection-control/selection-control.d.ts +0 -0
  293. package/{cjs → types}/components/slider/index.d.ts +0 -0
  294. package/{cjs → types}/components/slider/slider-tick-marks.d.ts +0 -0
  295. package/{cjs → types}/components/slider/slider.d.ts +0 -0
  296. package/{cjs → types}/components/spinner/index.d.ts +0 -0
  297. package/{cjs → types}/components/spinner/spinner.d.ts +0 -0
  298. package/{cjs → types}/components/switch/index.d.ts +0 -0
  299. package/{cjs → types}/components/switch/switch.d.ts +0 -0
  300. package/{cjs → types}/components/table/icons.d.ts +0 -0
  301. package/{cjs → types}/components/table/index.d.ts +0 -0
  302. package/{cjs → types}/components/table/table-body.d.ts +0 -0
  303. package/{cjs → types}/components/table/table-cell.d.ts +0 -0
  304. package/{cjs → types}/components/table/table-container.d.ts +0 -0
  305. package/{cjs → types}/components/table/table-head-cell.d.ts +0 -0
  306. package/{cjs → types}/components/table/table-head.d.ts +0 -0
  307. package/{cjs → types}/components/table/table-row.d.ts +0 -0
  308. package/{cjs → types}/components/table/table.d.ts +0 -0
  309. package/{cjs → types}/components/tabs/index.d.ts +0 -0
  310. package/{cjs → types}/components/tabs/tab-list.d.ts +0 -0
  311. package/{cjs → types}/components/tabs/tab-panel.d.ts +0 -0
  312. package/{cjs → types}/components/tabs/tab.d.ts +0 -0
  313. package/{cjs → types}/components/tabs/tabs-context.d.ts +0 -0
  314. package/{cjs → types}/components/tabs/tabs.d.ts +0 -0
  315. package/{cjs → types}/components/tabs/types.d.ts +0 -0
  316. package/{cjs → types}/components/tag/index.d.ts +0 -0
  317. package/{cjs → types}/components/tag/tag.d.ts +0 -0
  318. package/{cjs → types}/components/text-input/index.d.ts +0 -0
  319. package/{cjs → types}/components/text-input/text-input.d.ts +0 -0
  320. package/{cjs → types}/components/textarea/index.d.ts +0 -0
  321. package/{cjs → types}/components/textarea/textarea.d.ts +0 -0
  322. package/{cjs → types}/components/toast/index.d.ts +0 -0
  323. package/{cjs → types}/components/toast/toast-button.d.ts +0 -0
  324. package/{cjs → types}/components/toast/toast.d.ts +0 -0
  325. package/{cjs → types}/components/toast/x-mark-icon.d.ts +0 -0
  326. package/{cjs → types}/components/toaster/index.d.ts +0 -0
  327. package/{esm → types}/components/toaster/toaster.d.ts +5 -1
  328. package/{cjs → types}/components/tooltip/index.d.ts +0 -0
  329. package/{cjs → types}/components/tooltip/tooltip.d.ts +0 -0
  330. package/{cjs → types}/hooks/index.d.ts +0 -0
  331. package/{cjs → types}/hooks/use-disable-body-scroll.d.ts +0 -0
  332. package/{cjs → types}/hooks/use-esc-key-down.d.ts +0 -0
  333. package/{cjs → types}/hooks/use-focus-trap.d.ts +0 -0
  334. package/{cjs → types}/hooks/use-mount-transition.d.ts +0 -0
  335. package/{cjs → types}/index.d.ts +0 -0
  336. package/types/lib/helpers.d.ts +4 -0
  337. package/{cjs → types}/lib/index.d.ts +0 -0
  338. package/{cjs → types}/lib/keyboard-keys.d.ts +0 -0
  339. package/{cjs → types}/lib/react-helpers.d.ts +0 -0
  340. package/cjs/components/alert/alert.js +0 -16
  341. package/cjs/components/alert/index.js +0 -17
  342. package/cjs/components/avatar/avatar.js +0 -29
  343. package/cjs/components/avatar/index.js +0 -17
  344. package/cjs/components/avatar-group/avatar-group.js +0 -9
  345. package/cjs/components/avatar-group/index.js +0 -17
  346. package/cjs/components/badge/index.js +0 -17
  347. package/cjs/components/breadcrumbs/breadcrumbs-context.js +0 -18
  348. package/cjs/components/breadcrumbs/breadcrumbs-item.js +0 -20
  349. package/cjs/components/breadcrumbs/breadcrumbs.js +0 -11
  350. package/cjs/components/breadcrumbs/index.js +0 -18
  351. package/cjs/components/button/button.js +0 -37
  352. package/cjs/components/button/icon-button.js +0 -10
  353. package/cjs/components/button/index.js +0 -18
  354. package/cjs/components/button-group/button-group.js +0 -9
  355. package/cjs/components/button-group/index.js +0 -17
  356. package/cjs/components/caption/caption.js +0 -25
  357. package/cjs/components/caption/icons.js +0 -20
  358. package/cjs/components/caption/index.js +0 -17
  359. package/cjs/components/checkbox/checkbox.js +0 -14
  360. package/cjs/components/checkbox/index.js +0 -17
  361. package/cjs/components/color-picker/color-picker-button.js +0 -15
  362. package/cjs/components/color-picker/color-picker.js +0 -13
  363. package/cjs/components/color-picker/index.js +0 -17
  364. package/cjs/components/date-picker/calendar-grid-head.js +0 -15
  365. package/cjs/components/date-picker/calendar-grid.js +0 -105
  366. package/cjs/components/date-picker/calendar-header.js +0 -46
  367. package/cjs/components/date-picker/calendar.js +0 -23
  368. package/cjs/components/date-picker/date-picker.js +0 -19
  369. package/cjs/components/date-picker/date-range-picker.js +0 -60
  370. package/cjs/components/date-picker/date-range.js +0 -27
  371. package/cjs/components/date-picker/icons.js +0 -12
  372. package/cjs/components/date-picker/index.js +0 -18
  373. package/cjs/components/date-picker-popover/date-picker-popover.js +0 -20
  374. package/cjs/components/date-picker-popover/index.js +0 -17
  375. package/cjs/components/date-range-picker-popover/date-range-picker-popover-footer.js +0 -9
  376. package/cjs/components/date-range-picker-popover/date-range-picker-popover-presets.js +0 -34
  377. package/cjs/components/date-range-picker-popover/date-range-picker-popover.js +0 -54
  378. package/cjs/components/date-range-picker-popover/index.js +0 -18
  379. package/cjs/components/date-range-picker-popover/types.js +0 -2
  380. package/cjs/components/dialog/dialog-footer.js +0 -9
  381. package/cjs/components/dialog/dialog-header.js +0 -16
  382. package/cjs/components/dialog/dialog.js +0 -46
  383. package/cjs/components/dialog/index.js +0 -20
  384. package/cjs/components/dialog/x-mark-icon.js +0 -8
  385. package/cjs/components/empty-state/empty-state.js +0 -9
  386. package/cjs/components/empty-state/index.js +0 -17
  387. package/cjs/components/file-picker/file-picker.js +0 -44
  388. package/cjs/components/file-picker/index.js +0 -17
  389. package/cjs/components/filter-buttons/filter-button.js +0 -9
  390. package/cjs/components/filter-buttons/filter-buttons.js +0 -26
  391. package/cjs/components/filter-buttons/index.js +0 -18
  392. package/cjs/components/form-field/form-field.js +0 -25
  393. package/cjs/components/form-field/index.js +0 -17
  394. package/cjs/components/index.js +0 -53
  395. package/cjs/components/label/index.js +0 -17
  396. package/cjs/components/label/label.js +0 -11
  397. package/cjs/components/menu/index.js +0 -19
  398. package/cjs/components/menu/menu-item.js +0 -12
  399. package/cjs/components/menu/menu-separator.js +0 -9
  400. package/cjs/components/nav-list/index.js +0 -19
  401. package/cjs/components/nav-list/nav-list-item.js +0 -19
  402. package/cjs/components/nav-list/nav-list-title.js +0 -9
  403. package/cjs/components/nav-list/nav-list.js +0 -9
  404. package/cjs/components/password-input/icons.js +0 -12
  405. package/cjs/components/password-input/index.js +0 -17
  406. package/cjs/components/password-input/password-input.js +0 -28
  407. package/cjs/components/popover/index.js +0 -17
  408. package/cjs/components/popover/popover.js +0 -97
  409. package/cjs/components/portal/index.js +0 -17
  410. package/cjs/components/portal/portal-context.js +0 -26
  411. package/cjs/components/portal/portal.js +0 -10
  412. package/cjs/components/positioner/index.js +0 -17
  413. package/cjs/components/positioner/types.js +0 -2
  414. package/cjs/components/radio/index.js +0 -17
  415. package/cjs/components/radio/radio.js +0 -22
  416. package/cjs/components/segmented-control/index.js +0 -17
  417. package/cjs/components/segmented-control/segmented-control-button.js +0 -14
  418. package/cjs/components/segmented-control/segmented-control.js +0 -47
  419. package/cjs/components/select/index.js +0 -17
  420. package/cjs/components/select/select.js +0 -25
  421. package/cjs/components/selection-control/index.js +0 -17
  422. package/cjs/components/selection-control/selection-control.js +0 -17
  423. package/cjs/components/slider/index.js +0 -20
  424. package/cjs/components/slider/slider-tick-marks.js +0 -16
  425. package/cjs/components/spinner/index.js +0 -17
  426. package/cjs/components/spinner/spinner.js +0 -9
  427. package/cjs/components/switch/index.js +0 -17
  428. package/cjs/components/switch/switch.js +0 -13
  429. package/cjs/components/table/icons.js +0 -16
  430. package/cjs/components/table/index.js +0 -23
  431. package/cjs/components/table/table-body.js +0 -9
  432. package/cjs/components/table/table-cell.js +0 -9
  433. package/cjs/components/table/table-container.js +0 -21
  434. package/cjs/components/table/table-head-cell.js +0 -28
  435. package/cjs/components/table/table-head.js +0 -12
  436. package/cjs/components/table/table-row.js +0 -12
  437. package/cjs/components/table/table.js +0 -14
  438. package/cjs/components/tabs/index.js +0 -20
  439. package/cjs/components/tabs/tab-list.js +0 -66
  440. package/cjs/components/tabs/tab-panel.js +0 -15
  441. package/cjs/components/tabs/tab.js +0 -18
  442. package/cjs/components/tabs/tabs.js +0 -10
  443. package/cjs/components/tabs/types.js +0 -2
  444. package/cjs/components/tag/index.js +0 -17
  445. package/cjs/components/text-input/index.js +0 -17
  446. package/cjs/components/text-input/text-input.js +0 -24
  447. package/cjs/components/textarea/index.js +0 -17
  448. package/cjs/components/textarea/textarea.js +0 -38
  449. package/cjs/components/toast/index.js +0 -18
  450. package/cjs/components/toast/toast-button.js +0 -9
  451. package/cjs/components/toast/toast.js +0 -10
  452. package/cjs/components/toast/x-mark-icon.js +0 -8
  453. package/cjs/components/toaster/index.js +0 -17
  454. package/cjs/components/toaster/toaster.d.ts +0 -40
  455. package/cjs/components/toaster/toaster.js +0 -134
  456. package/cjs/components/tooltip/index.js +0 -17
  457. package/cjs/components/tooltip/tooltip.js +0 -79
  458. package/cjs/hooks/index.js +0 -20
  459. package/cjs/index.js +0 -19
  460. package/cjs/lib/helpers.d.ts +0 -2
  461. package/cjs/lib/index.js +0 -19
  462. package/css/draft-components-utilities.min.css +0 -1
  463. package/css/draft-components.dark.min.css +0 -1
  464. package/css/draft-components.min.css +0 -1
  465. package/esm/components/alert/alert.d.ts +0 -10
  466. package/esm/components/alert/index.d.ts +0 -1
  467. package/esm/components/alert/index.js +0 -1
  468. package/esm/components/avatar/avatar.d.ts +0 -13
  469. package/esm/components/avatar/index.d.ts +0 -1
  470. package/esm/components/avatar/index.js +0 -1
  471. package/esm/components/avatar-group/avatar-group.d.ts +0 -7
  472. package/esm/components/avatar-group/index.d.ts +0 -1
  473. package/esm/components/avatar-group/index.js +0 -1
  474. package/esm/components/badge/badge.d.ts +0 -8
  475. package/esm/components/badge/index.d.ts +0 -1
  476. package/esm/components/badge/index.js +0 -1
  477. package/esm/components/breadcrumbs/breadcrumbs-context.d.ts +0 -9
  478. package/esm/components/breadcrumbs/breadcrumbs-item.d.ts +0 -12
  479. package/esm/components/breadcrumbs/breadcrumbs.d.ts +0 -7
  480. package/esm/components/breadcrumbs/index.d.ts +0 -2
  481. package/esm/components/breadcrumbs/index.js +0 -2
  482. package/esm/components/button/button.d.ts +0 -19
  483. package/esm/components/button/icon-button.d.ts +0 -6
  484. package/esm/components/button/index.d.ts +0 -2
  485. package/esm/components/button/index.js +0 -2
  486. package/esm/components/button-group/button-group.d.ts +0 -7
  487. package/esm/components/button-group/index.d.ts +0 -1
  488. package/esm/components/button-group/index.js +0 -1
  489. package/esm/components/caption/caption.d.ts +0 -7
  490. package/esm/components/caption/icons.d.ts +0 -5
  491. package/esm/components/caption/index.d.ts +0 -1
  492. package/esm/components/caption/index.js +0 -1
  493. package/esm/components/checkbox/checkbox.d.ts +0 -10
  494. package/esm/components/checkbox/index.d.ts +0 -1
  495. package/esm/components/checkbox/index.js +0 -1
  496. package/esm/components/color-picker/color-picker-button.d.ts +0 -12
  497. package/esm/components/color-picker/color-picker-button.js +0 -11
  498. package/esm/components/color-picker/color-picker.d.ts +0 -13
  499. package/esm/components/color-picker/color-picker.js +0 -9
  500. package/esm/components/color-picker/index.d.ts +0 -1
  501. package/esm/components/color-picker/index.js +0 -1
  502. package/esm/components/date-picker/calendar-day.d.ts +0 -17
  503. package/esm/components/date-picker/calendar-grid-head.d.ts +0 -7
  504. package/esm/components/date-picker/calendar-grid.d.ts +0 -17
  505. package/esm/components/date-picker/calendar-header.d.ts +0 -12
  506. package/esm/components/date-picker/calendar.d.ts +0 -11
  507. package/esm/components/date-picker/date-helpers.d.ts +0 -22
  508. package/esm/components/date-picker/date-picker.d.ts +0 -13
  509. package/esm/components/date-picker/date-range-picker.d.ts +0 -14
  510. package/esm/components/date-picker/date-range.d.ts +0 -13
  511. package/esm/components/date-picker/icons.d.ts +0 -3
  512. package/esm/components/date-picker/index.d.ts +0 -2
  513. package/esm/components/date-picker/index.js +0 -2
  514. package/esm/components/date-picker/parse-min-max-props.d.ts +0 -8
  515. package/esm/components/date-picker-popover/date-picker-popover.d.ts +0 -13
  516. package/esm/components/date-picker-popover/index.d.ts +0 -1
  517. package/esm/components/date-picker-popover/index.js +0 -1
  518. package/esm/components/date-range-picker-popover/date-range-picker-popover-footer.d.ts +0 -9
  519. package/esm/components/date-range-picker-popover/date-range-picker-popover-presets.d.ts +0 -10
  520. package/esm/components/date-range-picker-popover/date-range-picker-popover.d.ts +0 -26
  521. package/esm/components/date-range-picker-popover/helpers.d.ts +0 -2
  522. package/esm/components/date-range-picker-popover/index.d.ts +0 -2
  523. package/esm/components/date-range-picker-popover/index.js +0 -2
  524. package/esm/components/date-range-picker-popover/types.d.ts +0 -10
  525. package/esm/components/date-range-picker-popover/types.js +0 -1
  526. package/esm/components/date-range-picker-popover/use-is-compact-view.d.ts +0 -1
  527. package/esm/components/dialog/dialog-body.d.ts +0 -8
  528. package/esm/components/dialog/dialog-context.d.ts +0 -15
  529. package/esm/components/dialog/dialog-footer.d.ts +0 -5
  530. package/esm/components/dialog/dialog-header.d.ts +0 -8
  531. package/esm/components/dialog/dialog.d.ts +0 -12
  532. package/esm/components/dialog/index.d.ts +0 -4
  533. package/esm/components/dialog/index.js +0 -4
  534. package/esm/components/dialog/x-mark-icon.d.ts +0 -2
  535. package/esm/components/empty-state/empty-state.d.ts +0 -11
  536. package/esm/components/empty-state/index.d.ts +0 -1
  537. package/esm/components/empty-state/index.js +0 -1
  538. package/esm/components/file-picker/file-picker.d.ts +0 -13
  539. package/esm/components/file-picker/index.d.ts +0 -1
  540. package/esm/components/file-picker/index.js +0 -1
  541. package/esm/components/filter-buttons/filter-button.d.ts +0 -7
  542. package/esm/components/filter-buttons/filter-buttons.d.ts +0 -5
  543. package/esm/components/filter-buttons/index.d.ts +0 -2
  544. package/esm/components/filter-buttons/index.js +0 -2
  545. package/esm/components/form-field/form-field.d.ts +0 -15
  546. package/esm/components/form-field/index.d.ts +0 -1
  547. package/esm/components/form-field/index.js +0 -1
  548. package/esm/components/index.d.ts +0 -37
  549. package/esm/components/label/index.d.ts +0 -1
  550. package/esm/components/label/index.js +0 -1
  551. package/esm/components/label/label.d.ts +0 -5
  552. package/esm/components/menu/index.d.ts +0 -3
  553. package/esm/components/menu/index.js +0 -3
  554. package/esm/components/menu/menu-item.d.ts +0 -11
  555. package/esm/components/menu/menu-separator.d.ts +0 -6
  556. package/esm/components/menu/menu.d.ts +0 -31
  557. package/esm/components/nav-list/index.d.ts +0 -3
  558. package/esm/components/nav-list/index.js +0 -3
  559. package/esm/components/nav-list/nav-list-item.d.ts +0 -13
  560. package/esm/components/nav-list/nav-list-title.d.ts +0 -8
  561. package/esm/components/nav-list/nav-list.d.ts +0 -5
  562. package/esm/components/password-input/icons.d.ts +0 -3
  563. package/esm/components/password-input/index.d.ts +0 -1
  564. package/esm/components/password-input/index.js +0 -1
  565. package/esm/components/password-input/password-input.d.ts +0 -10
  566. package/esm/components/popover/index.d.ts +0 -1
  567. package/esm/components/popover/index.js +0 -1
  568. package/esm/components/popover/popover.d.ts +0 -49
  569. package/esm/components/popover/use-page-click.d.ts +0 -16
  570. package/esm/components/portal/index.d.ts +0 -1
  571. package/esm/components/portal/index.js +0 -1
  572. package/esm/components/portal/portal-context.d.ts +0 -6
  573. package/esm/components/portal/portal.d.ts +0 -5
  574. package/esm/components/positioner/calc-position.d.ts +0 -32
  575. package/esm/components/positioner/index.d.ts +0 -1
  576. package/esm/components/positioner/index.js +0 -1
  577. package/esm/components/positioner/positioner.d.ts +0 -20
  578. package/esm/components/positioner/types.d.ts +0 -14
  579. package/esm/components/positioner/types.js +0 -1
  580. package/esm/components/radio/index.d.ts +0 -1
  581. package/esm/components/radio/index.js +0 -1
  582. package/esm/components/radio/radio.d.ts +0 -11
  583. package/esm/components/segmented-control/index.d.ts +0 -1
  584. package/esm/components/segmented-control/index.js +0 -1
  585. package/esm/components/segmented-control/segmented-control-button.d.ts +0 -10
  586. package/esm/components/segmented-control/segmented-control.d.ts +0 -15
  587. package/esm/components/select/index.d.ts +0 -1
  588. package/esm/components/select/index.js +0 -1
  589. package/esm/components/select/select.d.ts +0 -46
  590. package/esm/components/selection-control/index.d.ts +0 -1
  591. package/esm/components/selection-control/index.js +0 -1
  592. package/esm/components/selection-control/selection-control.d.ts +0 -14
  593. package/esm/components/slider/index.d.ts +0 -2
  594. package/esm/components/slider/index.js +0 -2
  595. package/esm/components/slider/slider-tick-marks.d.ts +0 -7
  596. package/esm/components/slider/slider.d.ts +0 -17
  597. package/esm/components/spinner/index.d.ts +0 -1
  598. package/esm/components/spinner/index.js +0 -1
  599. package/esm/components/spinner/spinner.d.ts +0 -7
  600. package/esm/components/switch/index.d.ts +0 -1
  601. package/esm/components/switch/index.js +0 -1
  602. package/esm/components/switch/switch.d.ts +0 -10
  603. package/esm/components/table/icons.d.ts +0 -4
  604. package/esm/components/table/index.d.ts +0 -7
  605. package/esm/components/table/index.js +0 -7
  606. package/esm/components/table/table-body.d.ts +0 -5
  607. package/esm/components/table/table-cell.d.ts +0 -5
  608. package/esm/components/table/table-container.d.ts +0 -13
  609. package/esm/components/table/table-head-cell.d.ts +0 -10
  610. package/esm/components/table/table-head.d.ts +0 -7
  611. package/esm/components/table/table-row.d.ts +0 -7
  612. package/esm/components/table/table.d.ts +0 -11
  613. package/esm/components/tabs/index.d.ts +0 -4
  614. package/esm/components/tabs/index.js +0 -4
  615. package/esm/components/tabs/tab-list.d.ts +0 -3
  616. package/esm/components/tabs/tab-panel.d.ts +0 -6
  617. package/esm/components/tabs/tab.d.ts +0 -7
  618. package/esm/components/tabs/tabs-context.d.ts +0 -20
  619. package/esm/components/tabs/tabs.d.ts +0 -7
  620. package/esm/components/tabs/types.d.ts +0 -2
  621. package/esm/components/tabs/types.js +0 -1
  622. package/esm/components/tag/index.d.ts +0 -1
  623. package/esm/components/tag/index.js +0 -1
  624. package/esm/components/tag/tag.d.ts +0 -13
  625. package/esm/components/text-input/index.d.ts +0 -1
  626. package/esm/components/text-input/index.js +0 -1
  627. package/esm/components/text-input/text-input.d.ts +0 -21
  628. package/esm/components/textarea/index.d.ts +0 -1
  629. package/esm/components/textarea/index.js +0 -1
  630. package/esm/components/textarea/textarea.d.ts +0 -20
  631. package/esm/components/toast/index.d.ts +0 -2
  632. package/esm/components/toast/index.js +0 -2
  633. package/esm/components/toast/toast-button.d.ts +0 -5
  634. package/esm/components/toast/toast.d.ts +0 -11
  635. package/esm/components/toast/x-mark-icon.d.ts +0 -2
  636. package/esm/components/toaster/index.d.ts +0 -1
  637. package/esm/components/toaster/index.js +0 -1
  638. package/esm/components/tooltip/index.d.ts +0 -1
  639. package/esm/components/tooltip/index.js +0 -1
  640. package/esm/components/tooltip/tooltip.d.ts +0 -25
  641. package/esm/hooks/index.d.ts +0 -4
  642. package/esm/hooks/use-disable-body-scroll.d.ts +0 -5
  643. package/esm/hooks/use-esc-key-down.d.ts +0 -17
  644. package/esm/hooks/use-focus-trap.d.ts +0 -15
  645. package/esm/hooks/use-mount-transition.d.ts +0 -32
  646. package/esm/index.d.ts +0 -3
  647. package/esm/lib/helpers.d.ts +0 -2
  648. package/esm/lib/index.d.ts +0 -3
  649. package/esm/lib/keyboard-keys.d.ts +0 -14
  650. package/esm/lib/react-helpers.d.ts +0 -13
@@ -1,44 +1,37 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toDateISO = exports.parseDateISO = exports.isWeekend = exports.isSameDay = exports.isValidDateISO = exports.getStartOfDay = exports.getEndOfWeek = exports.getStartOfWeek = exports.getWeekday = exports.getEndOfMonth = exports.getStartOfMonth = exports.addDays = exports.setDateMonth = exports.addMonths = exports.setDateYear = exports.addYears = exports.DATE_ISO_REGEX = exports.LAST_WEEKDAY = exports.DAYS_IN_WEEK = exports.MONTHS_IN_YEAR = void 0;
4
- exports.MONTHS_IN_YEAR = 12;
5
- exports.DAYS_IN_WEEK = 7;
6
- exports.LAST_WEEKDAY = 6;
7
- exports.DATE_ISO_REGEX = /^([0-9]{4})-?(1[0-2]|0[1-9])-?(3[0-1]|0[1-9]|[1-2][0-9])$/;
1
+ 'use strict';
2
+
3
+ const MONTHS_IN_YEAR = 12;
4
+ const DAYS_IN_WEEK = 7;
5
+ const LAST_WEEKDAY = 6;
6
+ const DATE_ISO_REGEX = /^([0-9]{4})-?(1[0-2]|0[1-9])-?(3[0-1]|0[1-9]|[1-2][0-9])$/;
8
7
  function addYears(date, amount) {
9
8
  // Use ISO date string to deal with years less than 100.
10
9
  return parseDateISO(formatDateISOComponents(date.getFullYear() + amount, date.getMonth(), date.getDate()));
11
10
  }
12
- exports.addYears = addYears;
13
11
  function setDateYear(date, year) {
14
12
  // Use ISO date string to deal with years less than 100.
15
13
  return parseDateISO(formatDateISOComponents(year, date.getMonth(), date.getDate()));
16
14
  }
17
- exports.setDateYear = setDateYear;
18
15
  function addMonths(date, amount) {
19
16
  date = new Date(date);
20
17
  date.setMonth(date.getMonth() + amount);
21
18
  return date;
22
19
  }
23
- exports.addMonths = addMonths;
24
20
  function setDateMonth(date, month) {
25
21
  date = new Date(date);
26
22
  date.setMonth(month);
27
23
  return date;
28
24
  }
29
- exports.setDateMonth = setDateMonth;
30
25
  function addDays(date, amount) {
31
26
  date = new Date(date);
32
27
  date.setDate(date.getDate() + amount);
33
28
  return date;
34
29
  }
35
- exports.addDays = addDays;
36
30
  function getStartOfMonth(date) {
37
31
  date = new Date(date);
38
32
  date.setDate(1);
39
33
  return date;
40
34
  }
41
- exports.getStartOfMonth = getStartOfMonth;
42
35
  function getEndOfMonth(date) {
43
36
  date = new Date(date);
44
37
  date.setDate(1);
@@ -46,25 +39,21 @@ function getEndOfMonth(date) {
46
39
  date.setDate(0);
47
40
  return date;
48
41
  }
49
- exports.getEndOfMonth = getEndOfMonth;
50
42
  function getWeekday(date, weekStartsOn = 0) {
51
43
  let day = date.getDay() - weekStartsOn;
52
44
  if (day < 0) {
53
- day += exports.DAYS_IN_WEEK;
45
+ day += DAYS_IN_WEEK;
54
46
  }
55
47
  return day;
56
48
  }
57
- exports.getWeekday = getWeekday;
58
49
  function getStartOfWeek(date, weekStartsOn = 0) {
59
50
  const weekday = getWeekday(date, weekStartsOn);
60
51
  return addDays(date, -weekday);
61
52
  }
62
- exports.getStartOfWeek = getStartOfWeek;
63
53
  function getEndOfWeek(date, weekStartsOn = 0) {
64
54
  const weekday = getWeekday(date, weekStartsOn);
65
- return addDays(date, exports.LAST_WEEKDAY - weekday);
55
+ return addDays(date, LAST_WEEKDAY - weekday);
66
56
  }
67
- exports.getEndOfWeek = getEndOfWeek;
68
57
  function getStartOfDay(date) {
69
58
  date = new Date(date);
70
59
  date.setHours(0);
@@ -73,32 +62,26 @@ function getStartOfDay(date) {
73
62
  date.setMilliseconds(0);
74
63
  return date;
75
64
  }
76
- exports.getStartOfDay = getStartOfDay;
77
65
  function isValidDateISO(value) {
78
- return exports.DATE_ISO_REGEX.test(value);
66
+ return DATE_ISO_REGEX.test(value);
79
67
  }
80
- exports.isValidDateISO = isValidDateISO;
81
68
  function isSameDay(a, b) {
82
69
  return (a.getFullYear() === b.getFullYear() &&
83
70
  a.getMonth() === b.getMonth() &&
84
71
  a.getDate() === b.getDate());
85
72
  }
86
- exports.isSameDay = isSameDay;
87
73
  function isWeekend(date) {
88
74
  return date.getDay() === 6 || date.getDay() === 0;
89
75
  }
90
- exports.isWeekend = isWeekend;
91
76
  function parseDateISO(date, error = 'The argument must be a date in the ISO format.') {
92
77
  if (!isValidDateISO(date)) {
93
78
  throw new RangeError(error);
94
79
  }
95
80
  return getStartOfDay(new Date(date));
96
81
  }
97
- exports.parseDateISO = parseDateISO;
98
82
  function toDateISO(date) {
99
83
  return formatDateISOComponents(date.getFullYear(), date.getMonth(), date.getDate());
100
84
  }
101
- exports.toDateISO = toDateISO;
102
85
  function formatDateISOComponents(year, month, day) {
103
86
  return [
104
87
  String(year).padStart(4, '0'),
@@ -106,3 +89,24 @@ function formatDateISOComponents(year, month, day) {
106
89
  String(day).padStart(2, '0'),
107
90
  ].join('-');
108
91
  }
92
+
93
+ exports.DATE_ISO_REGEX = DATE_ISO_REGEX;
94
+ exports.DAYS_IN_WEEK = DAYS_IN_WEEK;
95
+ exports.LAST_WEEKDAY = LAST_WEEKDAY;
96
+ exports.MONTHS_IN_YEAR = MONTHS_IN_YEAR;
97
+ exports.addDays = addDays;
98
+ exports.addMonths = addMonths;
99
+ exports.addYears = addYears;
100
+ exports.getEndOfMonth = getEndOfMonth;
101
+ exports.getEndOfWeek = getEndOfWeek;
102
+ exports.getStartOfDay = getStartOfDay;
103
+ exports.getStartOfMonth = getStartOfMonth;
104
+ exports.getStartOfWeek = getStartOfWeek;
105
+ exports.getWeekday = getWeekday;
106
+ exports.isSameDay = isSameDay;
107
+ exports.isValidDateISO = isValidDateISO;
108
+ exports.isWeekend = isWeekend;
109
+ exports.parseDateISO = parseDateISO;
110
+ exports.setDateMonth = setDateMonth;
111
+ exports.setDateYear = setDateYear;
112
+ exports.toDateISO = toDateISO;
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const dateHelpers = require('./date-helpers.cjs');
5
+ const reactHelpers = require('../../lib/react-helpers.cjs');
6
+ const parseMinMaxProps = require('./parse-min-max-props.cjs');
7
+ const calendar = require('./calendar.cjs');
8
+
9
+ function DatePicker({ value, onChangeValue, weekStartsOn = 1, min, max, locale, prevMonthButtonLabel, nextMonthButtonLabel, monthSelectLabel, yearInputLabel, className, ...props }) {
10
+ const { minDate, maxDate } = parseMinMaxProps.parseMinMaxProps({ min, max });
11
+ const selectedDay = value && dateHelpers.isValidDateISO(value)
12
+ ? dateHelpers.parseDateISO(value)
13
+ : null;
14
+ const getDayProps = (date) => ({
15
+ isSelected: selectedDay != null && dateHelpers.isSameDay(selectedDay, date),
16
+ });
17
+ return (jsxRuntime.jsx("div", { ...props, className: reactHelpers.classNames('dc-datepicker', className), children: jsxRuntime.jsx(calendar.Calendar, { defaultFocusDay: selectedDay, minDate: minDate, maxDate: maxDate, locale: locale, weekStartsOn: weekStartsOn, prevMonthButtonLabel: prevMonthButtonLabel, nextMonthButtonLabel: nextMonthButtonLabel, monthSelectLabel: monthSelectLabel, yearInputLabel: yearInputLabel, getDayProps: getDayProps, onSelectDay: (date) => onChangeValue(dateHelpers.toDateISO(date)) }) }));
18
+ }
19
+
20
+ exports.DatePicker = DatePicker;
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const dateRange = require('./date-range.cjs');
5
+ const dateHelpers = require('./date-helpers.cjs');
6
+ const reactHelpers = require('../../lib/react-helpers.cjs');
7
+ const parseMinMaxProps = require('./parse-min-max-props.cjs');
8
+ const react = require('react');
9
+ const calendar = require('./calendar.cjs');
10
+
11
+ function DateRangePicker({ value, onChangeValue, weekStartsOn = 1, min, max, locale, prevMonthButtonLabel, nextMonthButtonLabel, monthSelectLabel, yearInputLabel, className, ...props }) {
12
+ const { minDate, maxDate } = parseMinMaxProps.parseMinMaxProps({ min, max });
13
+ const selectedRange = parseValue(value);
14
+ const [start, setStart] = react.useState(null);
15
+ const [end, setEnd] = react.useState(null);
16
+ const getCalendarDayProps = (date) => {
17
+ let isSelected = false;
18
+ let inRange = false;
19
+ let isRangeStart = false;
20
+ let isRangeEnd = false;
21
+ if (start) {
22
+ const range = start && end
23
+ ? dateRange.DateRange.create(start, end)
24
+ : dateRange.DateRange.create(start, start);
25
+ isRangeStart = dateHelpers.isSameDay(range.start, date);
26
+ isRangeEnd = dateHelpers.isSameDay(range.end, date);
27
+ inRange = range.contains(date);
28
+ isSelected = dateHelpers.isSameDay(start, date);
29
+ }
30
+ else if (selectedRange) {
31
+ isRangeStart = dateHelpers.isSameDay(selectedRange.start, date);
32
+ isRangeEnd = dateHelpers.isSameDay(selectedRange.end, date);
33
+ inRange = selectedRange.contains(date);
34
+ isSelected = isRangeStart || isRangeEnd;
35
+ }
36
+ return { isSelected, inRange, isRangeStart, isRangeEnd };
37
+ };
38
+ const updateRange = (date) => {
39
+ if (start) {
40
+ setEnd(date);
41
+ }
42
+ };
43
+ return (jsxRuntime.jsx("div", { ...props, className: reactHelpers.classNames('dc-datepicker', className), children: jsxRuntime.jsx(calendar.Calendar, { defaultFocusDay: selectedRange?.start, minDate: minDate, maxDate: maxDate, locale: locale, weekStartsOn: weekStartsOn, prevMonthButtonLabel: prevMonthButtonLabel, nextMonthButtonLabel: nextMonthButtonLabel, monthSelectLabel: monthSelectLabel, yearInputLabel: yearInputLabel, getDayProps: getCalendarDayProps, onHoverDay: updateRange, onFocusDay: updateRange, onSelectDay: (date) => {
44
+ if (start) {
45
+ setStart(null);
46
+ setEnd(null);
47
+ onChangeValue(dateRange.DateRange.create(start, date).toDateISORange());
48
+ }
49
+ else {
50
+ setStart(date);
51
+ }
52
+ } }) }));
53
+ }
54
+ function parseValue(value) {
55
+ if (value && dateHelpers.isValidDateISO(value.start) && dateHelpers.isValidDateISO(value.end)) {
56
+ return dateRange.DateRange.create(dateHelpers.parseDateISO(value.start), dateHelpers.parseDateISO(value.end));
57
+ }
58
+ return null;
59
+ }
60
+
61
+ exports.DateRangePicker = DateRangePicker;
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ const dateHelpers = require('./date-helpers.cjs');
4
+
5
+ class DateRange {
6
+ constructor(start, end) {
7
+ if (start > end) {
8
+ [start, end] = [end, start];
9
+ }
10
+ this.start = start;
11
+ this.end = end;
12
+ }
13
+ static create(start, end) {
14
+ return new DateRange(start, end);
15
+ }
16
+ contains(date) {
17
+ return ((dateHelpers.isSameDay(date, this.start) || date > this.start) &&
18
+ (dateHelpers.isSameDay(date, this.end) || date < this.end));
19
+ }
20
+ toDateISORange() {
21
+ return {
22
+ start: dateHelpers.toDateISO(this.start),
23
+ end: dateHelpers.toDateISO(this.end),
24
+ };
25
+ }
26
+ }
27
+
28
+ exports.DateRange = DateRange;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+
5
+ function ChevronLeftIcon(props) {
6
+ return (jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { fill: "none", stroke: "currentColor", strokeWidth: 3, strokeLinecap: "round", strokeLinejoin: "round", d: "M15.75 19.5L8.25 12l7.5-7.5" }) }));
7
+ }
8
+ function ChevronRightIcon(props) {
9
+ return (jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { fill: "none", stroke: "currentColor", strokeWidth: 3, strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 4.5l7.5 7.5-7.5 7.5" }) }));
10
+ }
11
+
12
+ exports.ChevronLeftIcon = ChevronLeftIcon;
13
+ exports.ChevronRightIcon = ChevronRightIcon;
@@ -1,19 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseMinMaxProps = void 0;
4
- const date_helpers_1 = require("./date-helpers");
1
+ 'use strict';
2
+
3
+ const dateHelpers = require('./date-helpers.cjs');
4
+
5
5
  function parseMinMaxProps(props) {
6
6
  const min = props.min;
7
7
  const max = props.max;
8
8
  const minDate = min
9
- ? (0, date_helpers_1.parseDateISO)(min, "The 'min' property must be a date in the ISO format.")
9
+ ? dateHelpers.parseDateISO(min, "The 'min' property must be a date in the ISO format.")
10
10
  : null;
11
11
  const maxDate = max
12
- ? (0, date_helpers_1.parseDateISO)(max, "The 'max' property must be a date in the ISO format.")
12
+ ? dateHelpers.parseDateISO(max, "The 'max' property must be a date in the ISO format.")
13
13
  : null;
14
14
  if (minDate != null && maxDate != null && minDate >= maxDate) {
15
15
  throw new RangeError("'min' property must be less than 'max' property.");
16
16
  }
17
17
  return { minDate, maxDate };
18
18
  }
19
+
19
20
  exports.parseMinMaxProps = parseMinMaxProps;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const reactHelpers = require('../../lib/react-helpers.cjs');
5
+ const react = require('react');
6
+ const popover = require('../popover/popover.cjs');
7
+ const datePicker = require('../date-picker/date-picker.cjs');
8
+ require('../button/button.cjs');
9
+ require('../button/icon-button.cjs');
10
+ require('../select/select.cjs');
11
+ require('../text-input/text-input.cjs');
12
+
13
+ function DatePickerPopover({ defaultIsOpen = false, footer, className, children, value, onChangeValue,
14
+ // DatePickerProps
15
+ min, max, locale, weekStartsOn, prevMonthButtonLabel, nextMonthButtonLabel, monthSelectLabel, yearInputLabel, }) {
16
+ const popoverRef = react.useRef(null);
17
+ const handleChangeValue = (value) => {
18
+ onChangeValue(value);
19
+ popoverRef.current?.close();
20
+ };
21
+ return (jsxRuntime.jsxs(popover.Popover, { ref: popoverRef, className: reactHelpers.classNames('dc-date-picker-popover', className), defaultIsOpen: defaultIsOpen, anchor: children, children: [jsxRuntime.jsx(datePicker.DatePicker, { min: min, max: max, locale: locale, weekStartsOn: weekStartsOn, prevMonthButtonLabel: prevMonthButtonLabel, nextMonthButtonLabel: nextMonthButtonLabel, monthSelectLabel: monthSelectLabel, yearInputLabel: yearInputLabel, value: value, onChangeValue: handleChangeValue }), footer] }));
22
+ }
23
+
24
+ exports.DatePickerPopover = DatePickerPopover;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const button = require('../button/button.cjs');
5
+ require('../button/icon-button.cjs');
6
+
7
+ function DateRangePickerPopoverFooter({ children, cancelButtonLabel, confirmButtonLabel, onClickCancelButton, onClickConfirmButton, }) {
8
+ return (jsxRuntime.jsxs("div", { className: "dc-date-range-picker-popover__footer", children: [Boolean(children) && (jsxRuntime.jsx("div", { className: "dc-date-range-picker-popover__footer-content", children: children })), jsxRuntime.jsx(button.Button, { className: "dc-date-range-picker-popover__footer-cancel", variant: "tinted", onClick: onClickCancelButton, children: cancelButtonLabel }), jsxRuntime.jsx(button.Button, { className: "dc-date-range-picker-popover__footer-confirm", appearance: "primary", onClick: onClickConfirmButton, children: confirmButtonLabel })] }));
9
+ }
10
+
11
+ exports.DateRangePickerPopoverFooter = DateRangePickerPopoverFooter;
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const react = require('react');
5
+ const helpers = require('./helpers.cjs');
6
+ const select = require('../select/select.cjs');
7
+ const radio = require('../radio/radio.cjs');
8
+ const selectionControl = require('../selection-control/selection-control.cjs');
9
+
10
+ function DateRangePickerPopoverPresets({ isCompactView, customPresetLabel, options, value, onChangeValue, }) {
11
+ const id = react.useId();
12
+ const name = `${id}-date-preset`;
13
+ const selectedOption = helpers.findSelectedOption(value, options);
14
+ const selectedPreset = selectedOption ? selectedOption.preset : '';
15
+ function handleChange(event) {
16
+ const value = event.target.value;
17
+ const option = options.find((option) => option.preset === value);
18
+ if (option) {
19
+ onChangeValue({
20
+ preset: option.preset,
21
+ range: option.range,
22
+ });
23
+ }
24
+ }
25
+ if (isCompactView) {
26
+ return (jsxRuntime.jsx("div", { className: "dc-date-range-picker-popover__presets", children: jsxRuntime.jsxs(select.Select, { size: "md", isBlock: true, value: selectedPreset, onChange: handleChange, children: [jsxRuntime.jsx("option", { value: "", disabled: true, children: customPresetLabel }), options.map((option) => (jsxRuntime.jsx("option", { value: option.preset, children: option.label }, option.preset)))] }) }));
27
+ }
28
+ return (jsxRuntime.jsx("ul", { className: "dc-date-range-picker-popover__presets", children: options.map((option) => {
29
+ const preset = option.preset;
30
+ const id = `${name}-${preset}`;
31
+ return (jsxRuntime.jsx("li", { children: jsxRuntime.jsx(selectionControl.SelectionControl, { label: option.label, labelFor: id, children: jsxRuntime.jsx(radio.Radio, { icon: "check", id: id, name: name, value: preset, checked: preset === selectedPreset, onChange: handleChange }) }) }, option.preset));
32
+ }) }));
33
+ }
34
+
35
+ exports.DateRangePickerPopoverPresets = DateRangePickerPopoverPresets;
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const reactHelpers = require('../../lib/react-helpers.cjs');
5
+ const helpers$1 = require('../../lib/helpers.cjs');
6
+ const helpers = require('./helpers.cjs');
7
+ const react = require('react');
8
+ const useIsCompactView = require('./use-is-compact-view.cjs');
9
+ const popover = require('../popover/popover.cjs');
10
+ require('../button/button.cjs');
11
+ require('../button/icon-button.cjs');
12
+ require('../select/select.cjs');
13
+ require('../text-input/text-input.cjs');
14
+ const dateRangePicker = require('../date-picker/date-range-picker.cjs');
15
+ const dateRangePickerPopoverFooter = require('./date-range-picker-popover-footer.cjs');
16
+ const dateRangePickerPopoverPresets = require('./date-range-picker-popover-presets.cjs');
17
+
18
+ function DateRangePickerPopover({ defaultIsOpen = false, compactViewBreakpoint = '(max-width: 599px)', customPreset = 'custom', customPresetLabel = 'Custom date preset', placement = 'bottom', alignment = 'start', cancelButtonLabel = 'Cancel', confirmButtonLabel = 'Confirm', footer = null, className, options = [], children, value, onChangeValue,
19
+ // DateRangePickerProps
20
+ min, max, locale, weekStartsOn, prevMonthButtonLabel, nextMonthButtonLabel, monthSelectLabel, yearInputLabel, }) {
21
+ const [selection, setSelection] = react.useState(value);
22
+ const popoverRef = react.useRef(null);
23
+ const isCompactView = useIsCompactView.useIsCompactView(compactViewBreakpoint);
24
+ function getPopover() {
25
+ const popover = popoverRef.current;
26
+ helpers$1.assertIfNullable(popover, 'Popover ref was not set');
27
+ return popover;
28
+ }
29
+ function handleClickCancelButton() {
30
+ getPopover().close();
31
+ }
32
+ function handleClickConfirmButton() {
33
+ if (selection) {
34
+ onChangeValue(selection);
35
+ }
36
+ getPopover().close();
37
+ }
38
+ function handleChangeDateRange(range) {
39
+ const selection = { range, preset: customPreset };
40
+ const selectedOption = helpers.findSelectedOption(selection, options);
41
+ if (selectedOption) {
42
+ setSelection({
43
+ preset: selectedOption.preset,
44
+ range: selectedOption.range,
45
+ });
46
+ }
47
+ else {
48
+ setSelection(selection);
49
+ }
50
+ }
51
+ return (jsxRuntime.jsxs(popover.Popover, { className: reactHelpers.classNames(className, {
52
+ 'dc-date-range-picker-popover': true,
53
+ 'dc-date-range-picker-popover_compact': isCompactView,
54
+ }), ref: popoverRef, placement: placement, alignment: alignment, anchor: children, defaultIsOpen: defaultIsOpen, onOpen: () => setSelection(value), children: [options.length > 0 && (jsxRuntime.jsx(dateRangePickerPopoverPresets.DateRangePickerPopoverPresets, { isCompactView: isCompactView, customPresetLabel: customPresetLabel, options: options, value: selection, onChangeValue: setSelection })), jsxRuntime.jsx(dateRangePicker.DateRangePicker, { className: "dc-date-range-picker-popover__calendar", min: min, max: max, locale: locale, weekStartsOn: weekStartsOn, prevMonthButtonLabel: prevMonthButtonLabel, nextMonthButtonLabel: nextMonthButtonLabel, monthSelectLabel: monthSelectLabel, yearInputLabel: yearInputLabel, value: selection && selection.range, onChangeValue: handleChangeDateRange }), jsxRuntime.jsx(dateRangePickerPopoverFooter.DateRangePickerPopoverFooter, { cancelButtonLabel: cancelButtonLabel, confirmButtonLabel: confirmButtonLabel, onClickCancelButton: handleClickCancelButton, onClickConfirmButton: handleClickConfirmButton, children: typeof footer === 'function'
55
+ ? footer({ selection })
56
+ : footer })] }));
57
+ }
58
+
59
+ exports.DateRangePickerPopover = DateRangePickerPopover;
@@ -1,6 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findSelectedOption = void 0;
1
+ 'use strict';
2
+
4
3
  function findSelectedOption(selection, options) {
5
4
  if (!selection) {
6
5
  return null;
@@ -12,4 +11,5 @@ function findSelectedOption(selection, options) {
12
11
  });
13
12
  return selectedOption || null;
14
13
  }
14
+
15
15
  exports.findSelectedOption = findSelectedOption;
@@ -1,16 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useIsCompactView = void 0;
4
- const react_1 = require("react");
1
+ 'use strict';
2
+
3
+ const react = require('react');
4
+
5
5
  function useIsCompactView(breakpoint) {
6
- const compactViewMediaQuery = (0, react_1.useMemo)(() => {
6
+ const compactViewMediaQuery = react.useMemo(() => {
7
7
  if (typeof document !== 'undefined') {
8
8
  return window.matchMedia(breakpoint);
9
9
  }
10
10
  return null;
11
11
  }, [breakpoint]);
12
- const [isCompactView, setIsCompactView] = (0, react_1.useState)(() => (compactViewMediaQuery === null || compactViewMediaQuery === void 0 ? void 0 : compactViewMediaQuery.matches) || false);
13
- (0, react_1.useEffect)(() => {
12
+ const [isCompactView, setIsCompactView] = react.useState(() => compactViewMediaQuery?.matches || false);
13
+ react.useEffect(() => {
14
14
  if (compactViewMediaQuery) {
15
15
  const handleChange = () => {
16
16
  setIsCompactView(compactViewMediaQuery.matches);
@@ -23,4 +23,5 @@ function useIsCompactView(breakpoint) {
23
23
  }, [compactViewMediaQuery]);
24
24
  return isCompactView;
25
25
  }
26
+
26
27
  exports.useIsCompactView = useIsCompactView;
@@ -1,18 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DialogBody = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const helpers_1 = require("../../lib/helpers");
7
- const react_helpers_1 = require("../../lib/react-helpers");
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const react = require('react');
5
+ const helpers = require('../../lib/helpers.cjs');
6
+ const reactHelpers = require('../../lib/react-helpers.cjs');
7
+
8
8
  function DialogBody({ scrollShadowTop = false, scrollShadowBottom = false, className, children, }) {
9
- const ref = (0, react_1.useRef)(null);
10
- (0, react_1.useEffect)(() => {
9
+ const ref = react.useRef(null);
10
+ react.useEffect(() => {
11
11
  if (!scrollShadowTop && !scrollShadowBottom) {
12
12
  return;
13
13
  }
14
14
  const el = ref.current;
15
- (0, helpers_1.assertIfNullable)(el, 'DialogBody ref was not set');
15
+ helpers.assertIfNullable(el, 'DialogBody ref was not set');
16
16
  const topShadowClass = 'dc-dialog-body_scroll-shadow-top';
17
17
  const bottomShadowClass = 'dc-dialog-body_scroll-shadow-bottom';
18
18
  const changeShadowsVisibility = () => {
@@ -36,16 +36,17 @@ function DialogBody({ scrollShadowTop = false, scrollShadowBottom = false, class
36
36
  }
37
37
  }
38
38
  };
39
- const resizeObserver = typeof ResizeObserver !== 'undefined'
40
- ? new ResizeObserver(changeShadowsVisibility)
41
- : null;
42
- resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.observe(el);
39
+ const resizeObserver = typeof ResizeObserver === 'undefined'
40
+ ? null
41
+ : new ResizeObserver(changeShadowsVisibility);
42
+ resizeObserver?.observe(el);
43
43
  el.addEventListener('scroll', changeShadowsVisibility);
44
44
  return () => {
45
- resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.unobserve(el);
45
+ resizeObserver?.unobserve(el);
46
46
  el.removeEventListener('scroll', changeShadowsVisibility);
47
47
  };
48
48
  }, [scrollShadowTop, scrollShadowBottom]);
49
- return ((0, jsx_runtime_1.jsx)("div", { ref: ref, className: (0, react_helpers_1.classNames)('dc-dialog-body', className), children: children }));
49
+ return (jsxRuntime.jsx("div", { ref: ref, className: reactHelpers.classNames('dc-dialog-body', className), children: children }));
50
50
  }
51
+
51
52
  exports.DialogBody = DialogBody;
@@ -1,23 +1,24 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DialogContextProvider = exports.useDialogContext = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const DialogContext = (0, react_1.createContext)(null);
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const react = require('react');
5
+
6
+ const DialogContext = react.createContext(null);
7
7
  function useDialogContext() {
8
- const context = (0, react_1.useContext)(DialogContext);
8
+ const context = react.useContext(DialogContext);
9
9
  if (!context) {
10
10
  throw new Error('useDialogContext must be used within DialogProvider');
11
11
  }
12
12
  return context;
13
13
  }
14
- exports.useDialogContext = useDialogContext;
15
14
  function DialogContextProvider(props) {
16
- return ((0, jsx_runtime_1.jsx)(DialogContext.Provider, { value: {
15
+ return (jsxRuntime.jsx(DialogContext.Provider, { value: {
17
16
  titleId: props.titleId,
18
17
  descriptionId: props.descriptionId,
19
18
  isOpen: props.isOpen,
20
19
  onClose: props.onClose,
21
20
  }, children: props.children }));
22
21
  }
22
+
23
23
  exports.DialogContextProvider = DialogContextProvider;
24
+ exports.useDialogContext = useDialogContext;
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const reactHelpers = require('../../lib/react-helpers.cjs');
5
+
6
+ function DialogFooter({ className, children, }) {
7
+ return (jsxRuntime.jsx("div", { className: reactHelpers.classNames('dc-dialog-footer', className), children: children }));
8
+ }
9
+
10
+ exports.DialogFooter = DialogFooter;
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const reactHelpers = require('../../lib/react-helpers.cjs');
5
+ const dialogContext = require('./dialog-context.cjs');
6
+ require('../button/button.cjs');
7
+ const iconButton = require('../button/icon-button.cjs');
8
+ const xMarkIcon = require('./x-mark-icon.cjs');
9
+
10
+ function DialogHeader({ heading, subheading, className, children, }) {
11
+ const { titleId, descriptionId, onClose, } = dialogContext.useDialogContext();
12
+ const shouldRenderHeading = Boolean(heading);
13
+ const shouldRenderDescription = Boolean(subheading);
14
+ const shouldRenderChildren = Boolean(children);
15
+ return (jsxRuntime.jsxs("div", { className: reactHelpers.classNames(className, 'dc-dialog-header'), children: [jsxRuntime.jsxs("div", { className: "dc-dialog-header__title-bar", children: [shouldRenderHeading && (jsxRuntime.jsx("h2", { id: titleId, className: "dc-dialog-header__heading", children: heading })), jsxRuntime.jsx(iconButton.IconButton, { icon: jsxRuntime.jsx(xMarkIcon.XMarkIcon, { width: 18, height: 18, strokeWidth: 2 }), variant: "plain", className: "dc-dialog-header__close-btn", onClick: () => onClose() })] }), shouldRenderDescription && (jsxRuntime.jsx("div", { id: descriptionId, className: "dc-dialog-header__subheading", children: subheading })), shouldRenderChildren && (jsxRuntime.jsx("div", { className: "dc-dialog-header__body", children: children }))] }));
16
+ }
17
+
18
+ exports.DialogHeader = DialogHeader;
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const react = require('react');
5
+ const reactHelpers = require('../../lib/react-helpers.cjs');
6
+ const useMountTransition = require('../../hooks/use-mount-transition.cjs');
7
+ const useDisableBodyScroll = require('../../hooks/use-disable-body-scroll.cjs');
8
+ const useEscKeyDown = require('../../hooks/use-esc-key-down.cjs');
9
+ const useFocusTrap = require('../../hooks/use-focus-trap.cjs');
10
+ const portal = require('../portal/portal.cjs');
11
+ const dialogContext = require('./dialog-context.cjs');
12
+
13
+ function Dialog({ width = 'md', isOpen = false, openFocusRef, closeFocusRef, onClose, className, children, ...props }) {
14
+ const defaultId = react.useId();
15
+ const dialogRef = react.useRef(null);
16
+ const durationMs = 200;
17
+ const { isMounted, className: transitionClass } = useMountTransition.useMountTransition({
18
+ durationMs,
19
+ isShown: isOpen,
20
+ enterFrom: 'dc-dialog_closed',
21
+ enterTo: 'dc-dialog_opened',
22
+ });
23
+ react.useEffect(() => {
24
+ if (isOpen) {
25
+ const openFocus = openFocusRef?.current;
26
+ const closeFocus = closeFocusRef?.current;
27
+ reactHelpers.focusElement(openFocus);
28
+ return () => reactHelpers.focusElement(closeFocus);
29
+ }
30
+ }, [isOpen, openFocusRef, closeFocusRef]);
31
+ useEscKeyDown.useEscKeyDown(() => {
32
+ onClose();
33
+ }, { isEnabled: isOpen });
34
+ useFocusTrap.useFocusTrap(dialogRef, { isEnabled: isOpen });
35
+ useDisableBodyScroll.useDisableBodyScroll({ isEnabled: isOpen });
36
+ if (!isOpen && !isMounted) {
37
+ return null;
38
+ }
39
+ const id = props.id || defaultId;
40
+ const titleId = `dialog-title-${id}`;
41
+ const descriptionId = `dialog-description-${id}`;
42
+ return (jsxRuntime.jsx(portal.Portal, { children: jsxRuntime.jsxs("div", { style: {
43
+ '--dc-dialog-transition-duration': `${durationMs}ms`,
44
+ }, className: reactHelpers.classNames('dc-dialog', transitionClass), children: [jsxRuntime.jsx("div", { className: "dc-dialog-backdrop" }), jsxRuntime.jsx("div", { ...props, ref: dialogRef, className: reactHelpers.classNames(className, {
45
+ 'dc-dialog-modal': true,
46
+ [`dc-dialog-modal_${width}`]: width,
47
+ }), role: "dialog", id: id, "aria-labelledby": titleId, "aria-describedby": descriptionId, "aria-modal": true, children: jsxRuntime.jsx(dialogContext.DialogContextProvider, { titleId: titleId, descriptionId: descriptionId, isOpen: isOpen, onClose: onClose, children: children }) })] }) }));
48
+ }
49
+
50
+ exports.Dialog = Dialog;