@lumx/react 3.0.2 → 3.0.3-alpha.1

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 (391) hide show
  1. package/{esm/_internal/_rollupPluginBabelHelpers.js → _internal/ClickAwayProvider.js} +107 -2
  2. package/_internal/ClickAwayProvider.js.map +1 -0
  3. package/_internal/types.d.ts +271 -0
  4. package/index.d.ts +2686 -0
  5. package/index.js +12533 -0
  6. package/index.js.map +1 -0
  7. package/package.json +7 -6
  8. package/src/components/alert-dialog/AlertDialog.tsx +2 -1
  9. package/src/components/autocomplete/Autocomplete.tsx +2 -2
  10. package/src/components/autocomplete/AutocompleteMultiple.tsx +2 -1
  11. package/src/components/avatar/Avatar.tsx +2 -1
  12. package/src/components/badge/Badge.test.tsx +1 -1
  13. package/src/components/badge/Badge.tsx +2 -1
  14. package/src/components/button/Button.test.tsx +1 -1
  15. package/src/components/button/Button.tsx +2 -1
  16. package/src/components/button/ButtonGroup.tsx +2 -1
  17. package/src/components/button/ButtonRoot.test.tsx +1 -1
  18. package/src/components/button/ButtonRoot.tsx +2 -1
  19. package/src/components/button/IconButton.tsx +2 -1
  20. package/src/components/checkbox/Checkbox.test.tsx +1 -1
  21. package/src/components/checkbox/Checkbox.tsx +2 -1
  22. package/src/components/chip/Chip.test.tsx +1 -1
  23. package/src/components/chip/Chip.tsx +3 -1
  24. package/src/components/chip/ChipGroup.tsx +2 -1
  25. package/src/components/comment-block/CommentBlock.tsx +2 -1
  26. package/src/components/date-picker/DatePicker.tsx +1 -1
  27. package/src/components/date-picker/DatePickerControlled.tsx +1 -1
  28. package/src/components/date-picker/DatePickerField.tsx +1 -1
  29. package/src/components/date-picker/constants.ts +1 -1
  30. package/src/components/date-picker/types.ts +1 -1
  31. package/src/components/dialog/Dialog.tsx +4 -8
  32. package/src/components/divider/Divider.test.tsx +1 -1
  33. package/src/components/divider/Divider.tsx +3 -2
  34. package/src/components/drag-handle/DragHandle.tsx +2 -1
  35. package/src/components/dropdown/Dropdown.tsx +2 -1
  36. package/src/components/expansion-panel/ExpansionPanel.test.tsx +1 -1
  37. package/src/components/expansion-panel/ExpansionPanel.tsx +3 -10
  38. package/src/components/flag/Flag.test.tsx +1 -1
  39. package/src/components/flag/Flag.tsx +2 -1
  40. package/src/components/flex-box/FlexBox.stories.tsx +8 -0
  41. package/src/components/flex-box/FlexBox.tsx +7 -3
  42. package/src/components/flex-box/__snapshots__/FlexBox.test.tsx.snap +16 -0
  43. package/src/components/generic-block/GenericBlock.stories.jsx +23 -1
  44. package/src/components/generic-block/GenericBlock.tsx +18 -4
  45. package/src/components/generic-block/constants.ts +9 -0
  46. package/src/components/generic-block/index.ts +1 -0
  47. package/src/components/grid/Grid.tsx +2 -1
  48. package/src/components/grid/GridItem.tsx +2 -1
  49. package/src/components/heading/Heading.tsx +2 -1
  50. package/src/components/heading/HeadingLevelProvider.tsx +1 -1
  51. package/src/components/heading/context.tsx +1 -1
  52. package/src/components/icon/Icon.test.tsx +1 -1
  53. package/src/components/icon/Icon.tsx +2 -1
  54. package/src/components/image-block/ImageBlock.tsx +2 -1
  55. package/src/components/index.ts +1 -1
  56. package/src/components/inline-list/InlineList.stories.tsx +40 -0
  57. package/src/components/inline-list/InlineList.test.tsx +41 -0
  58. package/src/components/inline-list/InlineList.tsx +80 -0
  59. package/src/components/inline-list/index.ts +1 -0
  60. package/src/components/input-helper/InputHelper.tsx +2 -1
  61. package/src/components/input-label/InputLabel.tsx +2 -1
  62. package/src/components/lightbox/Lightbox.tsx +2 -1
  63. package/src/components/link/Link.tsx +2 -1
  64. package/src/components/link-preview/LinkPreview.test.tsx +1 -1
  65. package/src/components/link-preview/LinkPreview.tsx +2 -1
  66. package/src/components/list/List.tsx +2 -1
  67. package/src/components/list/ListDivider.tsx +2 -1
  68. package/src/components/list/ListItem.tsx +3 -8
  69. package/src/components/list/ListSubheader.tsx +2 -1
  70. package/src/components/list/useInteractiveList.tsx +1 -1
  71. package/src/components/message/Message.test.tsx +1 -1
  72. package/src/components/message/Message.tsx +2 -1
  73. package/src/components/mosaic/Mosaic.tsx +2 -1
  74. package/src/components/notification/Notification.tsx +2 -1
  75. package/src/components/popover/Popover.tsx +2 -1
  76. package/src/components/post-block/PostBlock.tsx +2 -1
  77. package/src/components/progress/Progress.tsx +2 -1
  78. package/src/components/progress-tracker/ProgressTracker.tsx +2 -1
  79. package/src/components/progress-tracker/ProgressTrackerStep.test.tsx +1 -1
  80. package/src/components/progress-tracker/ProgressTrackerStep.tsx +2 -1
  81. package/src/components/progress-tracker/ProgressTrackerStepPanel.tsx +2 -1
  82. package/src/components/radio-button/RadioButton.test.tsx +1 -1
  83. package/src/components/radio-button/RadioButton.tsx +2 -1
  84. package/src/components/radio-button/RadioGroup.tsx +2 -1
  85. package/src/components/select/Select.test.tsx +1 -1
  86. package/src/components/select/Select.tsx +2 -1
  87. package/src/components/select/SelectMultiple.test.tsx +1 -1
  88. package/src/components/select/SelectMultiple.tsx +2 -1
  89. package/src/components/select/WithSelectContext.tsx +1 -1
  90. package/src/components/select/constants.ts +1 -1
  91. package/src/components/side-navigation/SideNavigation.tsx +2 -1
  92. package/src/components/side-navigation/SideNavigationItem.test.tsx +1 -1
  93. package/src/components/side-navigation/SideNavigationItem.tsx +3 -9
  94. package/src/components/skeleton/SkeletonCircle.tsx +2 -1
  95. package/src/components/skeleton/SkeletonRectangle.tsx +2 -1
  96. package/src/components/skeleton/SkeletonTypography.tsx +2 -1
  97. package/src/components/slider/Slider.tsx +2 -1
  98. package/src/components/slideshow/Slides.tsx +2 -1
  99. package/src/components/slideshow/Slideshow.tsx +1 -1
  100. package/src/components/slideshow/SlideshowControls.tsx +2 -1
  101. package/src/components/slideshow/SlideshowItem.tsx +2 -1
  102. package/src/components/slideshow/SlideshowItemGroup.tsx +2 -1
  103. package/src/components/switch/Switch.test.tsx +1 -1
  104. package/src/components/switch/Switch.tsx +2 -1
  105. package/src/components/table/Table.tsx +2 -1
  106. package/src/components/table/TableBody.tsx +2 -1
  107. package/src/components/table/TableCell.tsx +3 -1
  108. package/src/components/table/TableHeader.tsx +2 -1
  109. package/src/components/table/TableRow.tsx +2 -1
  110. package/src/components/tabs/Tab.test.tsx +1 -1
  111. package/src/components/tabs/Tab.tsx +2 -1
  112. package/src/components/tabs/TabList.test.tsx +1 -1
  113. package/src/components/tabs/TabList.tsx +2 -1
  114. package/src/components/tabs/TabPanel.tsx +2 -1
  115. package/src/components/text/{Text.stories.tsx → Text.stories.jsx} +23 -28
  116. package/src/components/text/Text.test.tsx +15 -1
  117. package/src/components/text/Text.tsx +38 -12
  118. package/src/components/text-field/TextField.test.tsx +1 -1
  119. package/src/components/text-field/TextField.tsx +2 -1
  120. package/src/components/thumbnail/Thumbnail.tsx +2 -1
  121. package/src/components/thumbnail/types.ts +1 -1
  122. package/src/components/toolbar/Toolbar.tsx +2 -1
  123. package/src/components/tooltip/Tooltip.tsx +2 -1
  124. package/src/components/tooltip/useTooltipOpen.tsx +1 -1
  125. package/src/components/uploader/Uploader.test.tsx +1 -1
  126. package/src/components/uploader/Uploader.tsx +2 -1
  127. package/src/components/user-block/UserBlock.tsx +2 -1
  128. package/src/hooks/useCallbackOnEscape.ts +2 -1
  129. package/src/hooks/useClickAway.tsx +1 -1
  130. package/src/hooks/useDisableBodyScroll.ts +1 -1
  131. package/src/hooks/useFocusTrap.ts +1 -1
  132. package/src/hooks/useInterval.tsx +1 -1
  133. package/src/hooks/useOnResize.ts +1 -1
  134. package/src/index.ts +5 -0
  135. package/src/stories/generated/GenericBlock/Demos.stories.tsx +3 -1
  136. package/src/stories/generated/Heading/Demos.stories.tsx +6 -0
  137. package/src/stories/withResizableBox.tsx +18 -0
  138. package/src/testing/utils/commonTestsSuite.ts +1 -1
  139. package/src/utils/{getRootClassName.ts → className.ts} +19 -0
  140. package/src/utils/event.ts +1 -0
  141. package/src/utils/index.ts +5 -0
  142. package/src/utils/type.ts +3 -0
  143. package/src/utils/utils.test.ts +1 -1
  144. package/types.d.ts +68 -11
  145. package/utils/index.d.ts +29 -0
  146. package/utils/index.js +2 -0
  147. package/utils/index.js.map +1 -0
  148. package/esm/_internal/AlertDialog.js +0 -141
  149. package/esm/_internal/AlertDialog.js.map +0 -1
  150. package/esm/_internal/AutocompleteMultiple.js +0 -257
  151. package/esm/_internal/AutocompleteMultiple.js.map +0 -1
  152. package/esm/_internal/Avatar2.js +0 -82
  153. package/esm/_internal/Avatar2.js.map +0 -1
  154. package/esm/_internal/Badge2.js +0 -54
  155. package/esm/_internal/Badge2.js.map +0 -1
  156. package/esm/_internal/Button2.js +0 -84
  157. package/esm/_internal/Button2.js.map +0 -1
  158. package/esm/_internal/ButtonGroup.js +0 -51
  159. package/esm/_internal/ButtonGroup.js.map +0 -1
  160. package/esm/_internal/ButtonRoot.js +0 -135
  161. package/esm/_internal/ButtonRoot.js.map +0 -1
  162. package/esm/_internal/Checkbox2.js +0 -116
  163. package/esm/_internal/Checkbox2.js.map +0 -1
  164. package/esm/_internal/Chip2.js +0 -118
  165. package/esm/_internal/Chip2.js.map +0 -1
  166. package/esm/_internal/ChipGroup.js +0 -122
  167. package/esm/_internal/ChipGroup.js.map +0 -1
  168. package/esm/_internal/ClickAwayProvider.js +0 -217
  169. package/esm/_internal/ClickAwayProvider.js.map +0 -1
  170. package/esm/_internal/CommentBlock.js +0 -124
  171. package/esm/_internal/CommentBlock.js.map +0 -1
  172. package/esm/_internal/DatePickerField.js +0 -347
  173. package/esm/_internal/DatePickerField.js.map +0 -1
  174. package/esm/_internal/Dialog2.js +0 -274
  175. package/esm/_internal/Dialog2.js.map +0 -1
  176. package/esm/_internal/Divider2.js +0 -53
  177. package/esm/_internal/Divider2.js.map +0 -1
  178. package/esm/_internal/DragHandle.js +0 -50
  179. package/esm/_internal/DragHandle.js.map +0 -1
  180. package/esm/_internal/Dropdown2.js +0 -157
  181. package/esm/_internal/Dropdown2.js.map +0 -1
  182. package/esm/_internal/ExpansionPanel.js +0 -156
  183. package/esm/_internal/ExpansionPanel.js.map +0 -1
  184. package/esm/_internal/Flag2.js +0 -48
  185. package/esm/_internal/Flag2.js.map +0 -1
  186. package/esm/_internal/FlexBox.js +0 -55
  187. package/esm/_internal/FlexBox.js.map +0 -1
  188. package/esm/_internal/GenericBlock.js +0 -125
  189. package/esm/_internal/GenericBlock.js.map +0 -1
  190. package/esm/_internal/GridItem.js +0 -96
  191. package/esm/_internal/GridItem.js.map +0 -1
  192. package/esm/_internal/HeadingLevelProvider.js +0 -112
  193. package/esm/_internal/HeadingLevelProvider.js.map +0 -1
  194. package/esm/_internal/Icon2.js +0 -120
  195. package/esm/_internal/Icon2.js.map +0 -1
  196. package/esm/_internal/IconButton.js +0 -74
  197. package/esm/_internal/IconButton.js.map +0 -1
  198. package/esm/_internal/ImageBlock.js +0 -101
  199. package/esm/_internal/ImageBlock.js.map +0 -1
  200. package/esm/_internal/InputHelper.js +0 -72
  201. package/esm/_internal/InputHelper.js.map +0 -1
  202. package/esm/_internal/InputLabel.js +0 -58
  203. package/esm/_internal/InputLabel.js.map +0 -1
  204. package/esm/_internal/Lightbox2.js +0 -123
  205. package/esm/_internal/Lightbox2.js.map +0 -1
  206. package/esm/_internal/Link2.js +0 -122
  207. package/esm/_internal/Link2.js.map +0 -1
  208. package/esm/_internal/LinkPreview.js +0 -105
  209. package/esm/_internal/LinkPreview.js.map +0 -1
  210. package/esm/_internal/List2.js +0 -799
  211. package/esm/_internal/List2.js.map +0 -1
  212. package/esm/_internal/ListSubheader.js +0 -79
  213. package/esm/_internal/ListSubheader.js.map +0 -1
  214. package/esm/_internal/Message2.js +0 -78
  215. package/esm/_internal/Message2.js.map +0 -1
  216. package/esm/_internal/Mosaic2.js +0 -89
  217. package/esm/_internal/Mosaic2.js.map +0 -1
  218. package/esm/_internal/Notification2.js +0 -133
  219. package/esm/_internal/Notification2.js.map +0 -1
  220. package/esm/_internal/Popover2.js +0 -2473
  221. package/esm/_internal/Popover2.js.map +0 -1
  222. package/esm/_internal/PostBlock.js +0 -96
  223. package/esm/_internal/PostBlock.js.map +0 -1
  224. package/esm/_internal/Progress2.js +0 -81
  225. package/esm/_internal/Progress2.js.map +0 -1
  226. package/esm/_internal/ProgressTrackerStepPanel.js +0 -313
  227. package/esm/_internal/ProgressTrackerStepPanel.js.map +0 -1
  228. package/esm/_internal/RadioGroup.js +0 -147
  229. package/esm/_internal/RadioGroup.js.map +0 -1
  230. package/esm/_internal/SelectMultiple.js +0 -424
  231. package/esm/_internal/SelectMultiple.js.map +0 -1
  232. package/esm/_internal/SideNavigationItem.js +0 -151
  233. package/esm/_internal/SideNavigationItem.js.map +0 -1
  234. package/esm/_internal/SkeletonTypography.js +0 -168
  235. package/esm/_internal/SkeletonTypography.js.map +0 -1
  236. package/esm/_internal/Slider2.js +0 -327
  237. package/esm/_internal/Slider2.js.map +0 -1
  238. package/esm/_internal/Slides.js +0 -864
  239. package/esm/_internal/Slides.js.map +0 -1
  240. package/esm/_internal/Switch2.js +0 -116
  241. package/esm/_internal/Switch2.js.map +0 -1
  242. package/esm/_internal/TabPanel.js +0 -280
  243. package/esm/_internal/TabPanel.js.map +0 -1
  244. package/esm/_internal/TableRow.js +0 -291
  245. package/esm/_internal/TableRow.js.map +0 -1
  246. package/esm/_internal/Text2.js +0 -63
  247. package/esm/_internal/Text2.js.map +0 -1
  248. package/esm/_internal/TextField.js +0 -322
  249. package/esm/_internal/TextField.js.map +0 -1
  250. package/esm/_internal/Thumbnail2.js +0 -301
  251. package/esm/_internal/Thumbnail2.js.map +0 -1
  252. package/esm/_internal/Toolbar2.js +0 -60
  253. package/esm/_internal/Toolbar2.js.map +0 -1
  254. package/esm/_internal/Tooltip2.js +0 -282
  255. package/esm/_internal/Tooltip2.js.map +0 -1
  256. package/esm/_internal/Uploader2.js +0 -84
  257. package/esm/_internal/Uploader2.js.map +0 -1
  258. package/esm/_internal/UserBlock.js +0 -132
  259. package/esm/_internal/UserBlock.js.map +0 -1
  260. package/esm/_internal/_rollupPluginBabelHelpers.js.map +0 -1
  261. package/esm/_internal/alert-dialog.js +0 -34
  262. package/esm/_internal/alert-dialog.js.map +0 -1
  263. package/esm/_internal/autocomplete.js +0 -32
  264. package/esm/_internal/autocomplete.js.map +0 -1
  265. package/esm/_internal/avatar.js +0 -13
  266. package/esm/_internal/avatar.js.map +0 -1
  267. package/esm/_internal/badge.js +0 -10
  268. package/esm/_internal/badge.js.map +0 -1
  269. package/esm/_internal/button.js +0 -25
  270. package/esm/_internal/button.js.map +0 -1
  271. package/esm/_internal/checkbox.js +0 -14
  272. package/esm/_internal/checkbox.js.map +0 -1
  273. package/esm/_internal/chip.js +0 -12
  274. package/esm/_internal/chip.js.map +0 -1
  275. package/esm/_internal/comment-block.js +0 -24
  276. package/esm/_internal/comment-block.js.map +0 -1
  277. package/esm/_internal/components.js +0 -156
  278. package/esm/_internal/components.js.map +0 -1
  279. package/esm/_internal/constants.js +0 -13
  280. package/esm/_internal/constants.js.map +0 -1
  281. package/esm/_internal/date-picker.js +0 -32
  282. package/esm/_internal/date-picker.js.map +0 -1
  283. package/esm/_internal/dialog.js +0 -27
  284. package/esm/_internal/dialog.js.map +0 -1
  285. package/esm/_internal/divider.js +0 -10
  286. package/esm/_internal/divider.js.map +0 -1
  287. package/esm/_internal/drag-handle.js +0 -11
  288. package/esm/_internal/drag-handle.js.map +0 -1
  289. package/esm/_internal/dropdown.js +0 -21
  290. package/esm/_internal/dropdown.js.map +0 -1
  291. package/esm/_internal/expansion-panel.js +0 -32
  292. package/esm/_internal/expansion-panel.js.map +0 -1
  293. package/esm/_internal/flag.js +0 -11
  294. package/esm/_internal/flag.js.map +0 -1
  295. package/esm/_internal/flex-box.js +0 -11
  296. package/esm/_internal/flex-box.js.map +0 -1
  297. package/esm/_internal/generic-block.js +0 -20
  298. package/esm/_internal/generic-block.js.map +0 -1
  299. package/esm/_internal/getRootClassName.js +0 -346
  300. package/esm/_internal/getRootClassName.js.map +0 -1
  301. package/esm/_internal/grid.js +0 -10
  302. package/esm/_internal/grid.js.map +0 -1
  303. package/esm/_internal/heading.js +0 -11
  304. package/esm/_internal/heading.js.map +0 -1
  305. package/esm/_internal/icon.js +0 -10
  306. package/esm/_internal/icon.js.map +0 -1
  307. package/esm/_internal/image-block.js +0 -14
  308. package/esm/_internal/image-block.js.map +0 -1
  309. package/esm/_internal/input-helper.js +0 -10
  310. package/esm/_internal/input-helper.js.map +0 -1
  311. package/esm/_internal/input-label.js +0 -10
  312. package/esm/_internal/input-label.js.map +0 -1
  313. package/esm/_internal/lightbox.js +0 -27
  314. package/esm/_internal/lightbox.js.map +0 -1
  315. package/esm/_internal/link-preview.js +0 -15
  316. package/esm/_internal/link-preview.js.map +0 -1
  317. package/esm/_internal/link.js +0 -12
  318. package/esm/_internal/link.js.map +0 -1
  319. package/esm/_internal/list.js +0 -15
  320. package/esm/_internal/list.js.map +0 -1
  321. package/esm/_internal/mergeRefs.js +0 -25
  322. package/esm/_internal/mergeRefs.js.map +0 -1
  323. package/esm/_internal/message.js +0 -11
  324. package/esm/_internal/message.js.map +0 -1
  325. package/esm/_internal/mosaic.js +0 -14
  326. package/esm/_internal/mosaic.js.map +0 -1
  327. package/esm/_internal/notification.js +0 -18
  328. package/esm/_internal/notification.js.map +0 -1
  329. package/esm/_internal/partitionMulti.js +0 -27
  330. package/esm/_internal/partitionMulti.js.map +0 -1
  331. package/esm/_internal/popover.js +0 -15
  332. package/esm/_internal/popover.js.map +0 -1
  333. package/esm/_internal/post-block.js +0 -15
  334. package/esm/_internal/post-block.js.map +0 -1
  335. package/esm/_internal/progress-tracker.js +0 -17
  336. package/esm/_internal/progress-tracker.js.map +0 -1
  337. package/esm/_internal/progress.js +0 -10
  338. package/esm/_internal/progress.js.map +0 -1
  339. package/esm/_internal/radio-button.js +0 -13
  340. package/esm/_internal/radio-button.js.map +0 -1
  341. package/esm/_internal/renderLink.js +0 -25
  342. package/esm/_internal/renderLink.js.map +0 -1
  343. package/esm/_internal/select.js +0 -31
  344. package/esm/_internal/select.js.map +0 -1
  345. package/esm/_internal/side-navigation.js +0 -25
  346. package/esm/_internal/side-navigation.js.map +0 -1
  347. package/esm/_internal/skeleton.js +0 -10
  348. package/esm/_internal/skeleton.js.map +0 -1
  349. package/esm/_internal/slider.js +0 -13
  350. package/esm/_internal/slider.js.map +0 -1
  351. package/esm/_internal/slideshow.js +0 -29
  352. package/esm/_internal/slideshow.js.map +0 -1
  353. package/esm/_internal/state.js +0 -145
  354. package/esm/_internal/state.js.map +0 -1
  355. package/esm/_internal/switch.js +0 -13
  356. package/esm/_internal/switch.js.map +0 -1
  357. package/esm/_internal/table.js +0 -12
  358. package/esm/_internal/table.js.map +0 -1
  359. package/esm/_internal/tabs.js +0 -15
  360. package/esm/_internal/tabs.js.map +0 -1
  361. package/esm/_internal/text-field.js +0 -26
  362. package/esm/_internal/text-field.js.map +0 -1
  363. package/esm/_internal/text.js +0 -10
  364. package/esm/_internal/text.js.map +0 -1
  365. package/esm/_internal/thumbnail.js +0 -13
  366. package/esm/_internal/thumbnail.js.map +0 -1
  367. package/esm/_internal/toolbar.js +0 -9
  368. package/esm/_internal/toolbar.js.map +0 -1
  369. package/esm/_internal/tooltip.js +0 -18
  370. package/esm/_internal/tooltip.js.map +0 -1
  371. package/esm/_internal/type.js +0 -40
  372. package/esm/_internal/type.js.map +0 -1
  373. package/esm/_internal/types.js +0 -23
  374. package/esm/_internal/types.js.map +0 -1
  375. package/esm/_internal/uploader.js +0 -11
  376. package/esm/_internal/uploader.js.map +0 -1
  377. package/esm/_internal/useDelayedVisibility.js +0 -47
  378. package/esm/_internal/useDelayedVisibility.js.map +0 -1
  379. package/esm/_internal/useDisableBodyScroll.js +0 -220
  380. package/esm/_internal/useDisableBodyScroll.js.map +0 -1
  381. package/esm/_internal/useFocusTrap.js +0 -86
  382. package/esm/_internal/useFocusTrap.js.map +0 -1
  383. package/esm/_internal/useRovingTabIndex.js +0 -87
  384. package/esm/_internal/useRovingTabIndex.js.map +0 -1
  385. package/esm/_internal/user-block.js +0 -17
  386. package/esm/_internal/user-block.js.map +0 -1
  387. package/esm/index.js +0 -95
  388. package/esm/index.js.map +0 -1
  389. package/esm/index2.js +0 -16
  390. package/esm/index2.js.map +0 -1
  391. package/src/utils/index.tsx +0 -7
@@ -1,347 +0,0 @@
1
- import { c as _extends, a as _defineProperty, b as _objectWithoutProperties, d as _slicedToArray } from './_rollupPluginBabelHelpers.js';
2
- import { Emphasis } from './components.js';
3
- import React, { forwardRef, useState, useRef, useCallback } from 'react';
4
- import { g as getRootClassName, c as classnames } from './getRootClassName.js';
5
- import { f as mdiChevronRight, g as mdiChevronLeft } from './Icon2.js';
6
- import 'lodash/isBoolean';
7
- import 'lodash/isEmpty';
8
- import 'lodash/kebabCase';
9
- import 'lodash/noop';
10
- import { u as useFocus, a as Popover, P as Placement } from './Popover2.js';
11
- import { I as IconButton } from './IconButton.js';
12
- import moment$1 from 'moment';
13
- import range from 'lodash/range';
14
- import { extendMoment } from 'moment-range';
15
- import { u as useFocusTrap } from './useFocusTrap.js';
16
- import { T as TextField } from './TextField.js';
17
- import { T as Toolbar } from './Toolbar2.js';
18
-
19
- /**
20
- * Component display name.
21
- */
22
-
23
- var COMPONENT_NAME = 'DatePicker';
24
- /**
25
- * Component default class name and class prefix.
26
- */
27
-
28
- var CLASSNAME = getRootClassName(COMPONENT_NAME);
29
-
30
- var moment = extendMoment(moment$1);
31
- var DAYS_PER_WEEK = 7;
32
-
33
- /**
34
- * Get the list of days in a week based on locale.
35
- *
36
- * @param locale The locale using to generate the order of days in a week.
37
- * @return The list of days in a week based on locale.
38
- */
39
- function getWeekDays(locale) {
40
- return range(DAYS_PER_WEEK).map(function (_, i) {
41
- return moment().locale(locale).weekday(i);
42
- });
43
- }
44
- /**
45
- * Get month calendar based on locale and start date.
46
- *
47
- * @param locale The locale using to generate the order of days in a week.
48
- * @param selectedMonth The selected month.
49
- * @return The list of days in a week based on locale.
50
- */
51
-
52
- function getMonthCalendar(locale, selectedMonth) {
53
- var firstDayOfMonth = moment(selectedMonth).startOf('month');
54
- var endDayOfMonth = moment(selectedMonth).endOf('month'); // The first day of the week depends on the locale used. In FR the first day is a monday but in EN the first day is sunday
55
-
56
- var firstDay = firstDayOfMonth.locale(locale).startOf('week');
57
- var monthRange = moment.range(firstDay.toDate(), endDayOfMonth.toDate());
58
- return Array.from(monthRange.by('day'));
59
- }
60
- /**
61
- * Get month calendar based on locale and start date.
62
- * Each day is annotated to know if they are displayed and/or clickable.
63
- *
64
- * @param locale The locale using to generate the order of days in a week.
65
- * @param minDate The first selectable date.
66
- * @param maxDate The last selectable date.
67
- * @param selectedMonth The selected month.
68
- * @return The list of days in a week based on locale.
69
- */
70
-
71
- function getAnnotatedMonthCalendar(locale, minDate, maxDate, selectedMonth) {
72
- var month = moment(selectedMonth).locale(locale).month();
73
- var clickableRange = moment.range(minDate, maxDate);
74
- return getMonthCalendar(locale, selectedMonth).map(function (date) {
75
- return {
76
- date: date,
77
- isClickable: clickableRange.contains(date),
78
- isDisplayed: date.month() === month,
79
- isToday: date.isSame(moment(), 'day')
80
- };
81
- });
82
- }
83
-
84
- /**
85
- * Defines the props of the component.
86
- */
87
-
88
- /**
89
- * Component display name.
90
- */
91
- var COMPONENT_NAME$1 = 'DatePickerControlled';
92
- /**
93
- * DatePickerControlled component.
94
- *
95
- * @param props Component props.
96
- * @param ref Component ref.
97
- * @return React element.
98
- */
99
-
100
- var DatePickerControlled = forwardRef(function (props, ref) {
101
- var locale = props.locale,
102
- maxDate = props.maxDate,
103
- minDate = props.minDate,
104
- nextButtonProps = props.nextButtonProps,
105
- onChange = props.onChange,
106
- onNextMonthChange = props.onNextMonthChange,
107
- onPrevMonthChange = props.onPrevMonthChange,
108
- previousButtonProps = props.previousButtonProps,
109
- selectedMonth = props.selectedMonth,
110
- todayOrSelectedDateRef = props.todayOrSelectedDateRef,
111
- value = props.value;
112
- var days = React.useMemo(function () {
113
- return getAnnotatedMonthCalendar(locale, minDate, maxDate, moment$1(selectedMonth));
114
- }, [locale, minDate, maxDate, selectedMonth]);
115
- var weekDays = React.useMemo(function () {
116
- return getWeekDays(locale);
117
- }, [locale]);
118
- return React.createElement("div", {
119
- ref: ref,
120
- className: "".concat(CLASSNAME)
121
- }, React.createElement(Toolbar, {
122
- className: "".concat(CLASSNAME, "__toolbar"),
123
- after: React.createElement(IconButton, _extends({}, nextButtonProps, {
124
- emphasis: Emphasis.low,
125
- icon: mdiChevronRight,
126
- onClick: onNextMonthChange
127
- })),
128
- before: React.createElement(IconButton, _extends({}, previousButtonProps, {
129
- emphasis: Emphasis.low,
130
- icon: mdiChevronLeft,
131
- onClick: onPrevMonthChange
132
- })),
133
- label: React.createElement("span", {
134
- className: "".concat(CLASSNAME, "__month")
135
- }, moment$1(selectedMonth).locale(locale).format('MMMM YYYY'))
136
- }), React.createElement("div", {
137
- className: "".concat(CLASSNAME, "__calendar")
138
- }, React.createElement("div", {
139
- className: "".concat(CLASSNAME, "__week-days ").concat(CLASSNAME, "__days-wrapper")
140
- }, weekDays.map(function (weekDay) {
141
- return React.createElement("div", {
142
- key: weekDay.unix(),
143
- className: "".concat(CLASSNAME, "__day-wrapper")
144
- }, React.createElement("span", {
145
- className: "".concat(CLASSNAME, "__week-day")
146
- }, weekDay.format('dddd').slice(0, 1).toLocaleUpperCase()));
147
- })), React.createElement("div", {
148
- className: "".concat(CLASSNAME, "__month-days ").concat(CLASSNAME, "__days-wrapper")
149
- }, days.map(function (annotatedDate) {
150
- if (annotatedDate.isDisplayed) {
151
- var _classNames;
152
-
153
- return React.createElement("div", {
154
- key: annotatedDate.date.unix(),
155
- className: "".concat(CLASSNAME, "__day-wrapper")
156
- }, React.createElement("button", {
157
- ref: value && annotatedDate.date.isSame(value, 'day') || !value && annotatedDate.isToday ? todayOrSelectedDateRef : null,
158
- className: classnames("".concat(CLASSNAME, "__month-day"), (_classNames = {}, _defineProperty(_classNames, "".concat(CLASSNAME, "__month-day--is-selected"), value && annotatedDate.date.isSame(value, 'day')), _defineProperty(_classNames, "".concat(CLASSNAME, "__month-day--is-today"), annotatedDate.isClickable && annotatedDate.isToday), _classNames)),
159
- disabled: !annotatedDate.isClickable,
160
- type: "button",
161
- onClick: function onClick() {
162
- return onChange(moment$1(annotatedDate.date).toDate());
163
- }
164
- }, React.createElement("span", null, annotatedDate.date.format('DD'))));
165
- }
166
-
167
- return React.createElement("div", {
168
- key: annotatedDate.date.unix(),
169
- className: "".concat(CLASSNAME, "__day-wrapper")
170
- });
171
- }))));
172
- });
173
- DatePickerControlled.displayName = COMPONENT_NAME$1;
174
- DatePickerControlled.className = CLASSNAME;
175
-
176
- /**
177
- * DatePicker component.
178
- *
179
- * @param props Component props.
180
- * @param ref Component ref.
181
- * @return React element.
182
- */
183
- var DatePicker = forwardRef(function (props, ref) {
184
- var defaultMonth = props.defaultMonth,
185
- locale = props.locale,
186
- value = props.value,
187
- onChange = props.onChange,
188
- forwardedProps = _objectWithoutProperties(props, ["defaultMonth", "locale", "value", "onChange"]);
189
-
190
- var castedValue;
191
-
192
- if (value) {
193
- castedValue = moment$1(value);
194
- } else if (defaultMonth) {
195
- castedValue = moment$1(defaultMonth);
196
- }
197
-
198
- if (castedValue && !castedValue.isValid()) {
199
- // eslint-disable-next-line no-console
200
- console.warn("[@lumx/react/DatePicker] Invalid date provided ".concat(castedValue));
201
- }
202
-
203
- var selectedDay = castedValue && castedValue.isValid() ? castedValue : moment$1();
204
-
205
- var _useState = useState(0),
206
- _useState2 = _slicedToArray(_useState, 2),
207
- monthOffset = _useState2[0],
208
- setMonthOffset = _useState2[1];
209
-
210
- var setPrevMonth = function setPrevMonth() {
211
- return setMonthOffset(monthOffset - 1);
212
- };
213
-
214
- var setNextMonth = function setNextMonth() {
215
- return setMonthOffset(monthOffset + 1);
216
- };
217
-
218
- var onDatePickerChange = function onDatePickerChange(newDate) {
219
- onChange(newDate);
220
- setMonthOffset(0);
221
- };
222
-
223
- var selectedMonth = moment$1(selectedDay).locale(locale).add(monthOffset, 'months').toDate();
224
- return React.createElement(DatePickerControlled, _extends({
225
- ref: ref
226
- }, forwardedProps, {
227
- defaultMonth: defaultMonth,
228
- locale: locale,
229
- value: value,
230
- onPrevMonthChange: setPrevMonth,
231
- onNextMonthChange: setNextMonth,
232
- selectedMonth: selectedMonth,
233
- onChange: onDatePickerChange
234
- }));
235
- });
236
- DatePicker.displayName = COMPONENT_NAME;
237
- DatePicker.className = CLASSNAME;
238
-
239
- /**
240
- * Component display name.
241
- */
242
- var COMPONENT_NAME$2 = 'DatePickerField';
243
- /**
244
- * DatePickerField component.
245
- *
246
- * @param props Component props.
247
- * @param ref Component ref.
248
- * @return React element.
249
- */
250
-
251
- var DatePickerField = forwardRef(function (props, ref) {
252
- var defaultMonth = props.defaultMonth,
253
- disabled = props.disabled,
254
- _props$isDisabled = props.isDisabled,
255
- isDisabled = _props$isDisabled === void 0 ? disabled : _props$isDisabled,
256
- locale = props.locale,
257
- maxDate = props.maxDate,
258
- minDate = props.minDate,
259
- name = props.name,
260
- nextButtonProps = props.nextButtonProps,
261
- onChange = props.onChange,
262
- previousButtonProps = props.previousButtonProps,
263
- value = props.value,
264
- forwardedProps = _objectWithoutProperties(props, ["defaultMonth", "disabled", "isDisabled", "locale", "maxDate", "minDate", "name", "nextButtonProps", "onChange", "previousButtonProps", "value"]);
265
-
266
- var _useState = useState(null),
267
- _useState2 = _slicedToArray(_useState, 2),
268
- wrapperElement = _useState2[0],
269
- setWrapperElement = _useState2[1];
270
-
271
- var anchorRef = useRef(null);
272
-
273
- var _useState3 = useState(false),
274
- _useState4 = _slicedToArray(_useState3, 2),
275
- isOpen = _useState4[0],
276
- setIsOpen = _useState4[1];
277
-
278
- var toggleSimpleMenu = function toggleSimpleMenu() {
279
- setIsOpen(!isOpen);
280
- };
281
-
282
- var onClose = useCallback(function () {
283
- setIsOpen(false);
284
- }, []);
285
- useFocus(anchorRef.current, isOpen);
286
-
287
- var handleKeyboardNav = function handleKeyboardNav(evt) {
288
- if ((evt.key === 'Enter' || evt.key === ' ') && toggleSimpleMenu) {
289
- toggleSimpleMenu();
290
- }
291
- }; // Handle focus trap.
292
-
293
-
294
- var _useState5 = useState(null),
295
- _useState6 = _slicedToArray(_useState5, 2),
296
- todayOrSelectedDate = _useState6[0],
297
- setTodayOrSelectedDate = _useState6[1];
298
-
299
- useFocusTrap(isOpen && wrapperElement, todayOrSelectedDate);
300
-
301
- var onTextFieldChange = function onTextFieldChange(textFieldValue, textFieldName, event) {
302
- if (!textFieldValue) {
303
- onChange(undefined, textFieldName, event);
304
- }
305
- };
306
-
307
- var onDatePickerChange = function onDatePickerChange(newDate) {
308
- onChange(newDate, name);
309
- onClose();
310
- };
311
-
312
- return React.createElement(React.Fragment, null, React.createElement(TextField, _extends({
313
- ref: ref
314
- }, forwardedProps, {
315
- name: name,
316
- forceFocusStyle: isOpen,
317
- textFieldRef: anchorRef,
318
- value: value ? moment$1(value).locale(locale).format('LL') : '',
319
- onClick: toggleSimpleMenu,
320
- onChange: onTextFieldChange,
321
- onKeyPress: handleKeyboardNav,
322
- isDisabled: isDisabled,
323
- readOnly: true
324
- })), isOpen ? React.createElement(Popover, {
325
- anchorRef: anchorRef,
326
- placement: Placement.BOTTOM_START,
327
- isOpen: isOpen,
328
- onClose: onClose,
329
- closeOnClickAway: true,
330
- closeOnEscape: true
331
- }, React.createElement(DatePicker, {
332
- ref: setWrapperElement,
333
- locale: locale,
334
- maxDate: maxDate,
335
- minDate: minDate,
336
- value: value,
337
- onChange: onDatePickerChange,
338
- todayOrSelectedDateRef: setTodayOrSelectedDate,
339
- defaultMonth: defaultMonth,
340
- nextButtonProps: nextButtonProps,
341
- previousButtonProps: previousButtonProps
342
- })) : null);
343
- });
344
- DatePickerField.displayName = COMPONENT_NAME$2;
345
-
346
- export { DatePicker as D, DatePickerControlled as a, DatePickerField as b };
347
- //# sourceMappingURL=DatePickerField.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DatePickerField.js","sources":["../../../src/components/date-picker/constants.ts","../../../../lumx-core/src/js/date-picker.ts","../../../src/components/date-picker/DatePickerControlled.tsx","../../../src/components/date-picker/DatePicker.tsx","../../../src/components/date-picker/DatePickerField.tsx"],"sourcesContent":["import { getRootClassName } from '@lumx/react/utils';\n\n/**\n * Component display name.\n */\nexport const COMPONENT_NAME = 'DatePicker';\n\n/**\n * Component default class name and class prefix.\n */\nexport const CLASSNAME = getRootClassName(COMPONENT_NAME);\n","import range from 'lodash/range';\nimport mMoment, { Moment } from 'moment';\nimport { extendMoment } from 'moment-range';\n\nconst moment = extendMoment(mMoment as any);\n\nconst DAYS_PER_WEEK = 7;\n\ninterface AnnotatedDate {\n date: Moment;\n isDisplayed: boolean;\n isClickable: boolean;\n isToday: boolean;\n}\n\n/**\n * Get the list of days in a week based on locale.\n *\n * @param locale The locale using to generate the order of days in a week.\n * @return The list of days in a week based on locale.\n */\nexport function getWeekDays(locale: string): Moment[] {\n return range(DAYS_PER_WEEK).map((_, i) => moment().locale(locale).weekday(i));\n}\n\n/**\n * Get month calendar based on locale and start date.\n *\n * @param locale The locale using to generate the order of days in a week.\n * @param selectedMonth The selected month.\n * @return The list of days in a week based on locale.\n */\nexport function getMonthCalendar(locale: string, selectedMonth?: Moment): Moment[] {\n const firstDayOfMonth = moment(selectedMonth).startOf('month');\n const endDayOfMonth = moment(selectedMonth).endOf('month');\n // The first day of the week depends on the locale used. In FR the first day is a monday but in EN the first day is sunday\n const firstDay = firstDayOfMonth.locale(locale).startOf('week');\n const monthRange = moment.range(firstDay.toDate(), endDayOfMonth.toDate());\n\n return Array.from(monthRange.by('day'));\n}\n\n/**\n * Get month calendar based on locale and start date.\n * Each day is annotated to know if they are displayed and/or clickable.\n *\n * @param locale The locale using to generate the order of days in a week.\n * @param minDate The first selectable date.\n * @param maxDate The last selectable date.\n * @param selectedMonth The selected month.\n * @return The list of days in a week based on locale.\n */\nexport function getAnnotatedMonthCalendar(\n locale: string,\n minDate?: Date,\n maxDate?: Date,\n selectedMonth?: Moment,\n): AnnotatedDate[] {\n const month = moment(selectedMonth).locale(locale).month();\n\n const clickableRange = moment.range(minDate as Date, maxDate as Date);\n\n return getMonthCalendar(locale, selectedMonth).map((date) => {\n return {\n date,\n isClickable: clickableRange.contains(date),\n isDisplayed: date.month() === month,\n isToday: date.isSame(moment(), 'day'),\n };\n });\n}\n","import React, { forwardRef } from 'react';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport { DatePickerProps, Emphasis, IconButton, Toolbar } from '@lumx/react';\nimport { mdiChevronLeft, mdiChevronRight } from '@lumx/icons';\nimport { getAnnotatedMonthCalendar, getWeekDays } from '@lumx/core/js/date-picker';\nimport { Comp } from '@lumx/react/utils';\nimport { CLASSNAME } from './constants';\n\n/**\n * Defines the props of the component.\n */\nexport interface DatePickerControlledProps extends DatePickerProps {\n /** Selected month to display. */\n selectedMonth: Date;\n /** On previous month change callback. */\n onPrevMonthChange(): void;\n /** On next month change callback. */\n onNextMonthChange(): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'DatePickerControlled';\n\n/**\n * DatePickerControlled component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePickerControlled: Comp<DatePickerControlledProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n locale,\n maxDate,\n minDate,\n nextButtonProps,\n onChange,\n onNextMonthChange,\n onPrevMonthChange,\n previousButtonProps,\n selectedMonth,\n todayOrSelectedDateRef,\n value,\n } = props;\n const days = React.useMemo(() => {\n return getAnnotatedMonthCalendar(locale, minDate, maxDate, moment(selectedMonth));\n }, [locale, minDate, maxDate, selectedMonth]);\n\n const weekDays = React.useMemo(() => {\n return getWeekDays(locale);\n }, [locale]);\n\n return (\n <div ref={ref} className={`${CLASSNAME}`}>\n <Toolbar\n className={`${CLASSNAME}__toolbar`}\n after={\n <IconButton\n {...nextButtonProps}\n emphasis={Emphasis.low}\n icon={mdiChevronRight}\n onClick={onNextMonthChange}\n />\n }\n before={\n <IconButton\n {...previousButtonProps}\n emphasis={Emphasis.low}\n icon={mdiChevronLeft}\n onClick={onPrevMonthChange}\n />\n }\n label={\n <span className={`${CLASSNAME}__month`}>\n {moment(selectedMonth).locale(locale).format('MMMM YYYY')}\n </span>\n }\n />\n <div className={`${CLASSNAME}__calendar`}>\n <div className={`${CLASSNAME}__week-days ${CLASSNAME}__days-wrapper`}>\n {weekDays.map((weekDay) => (\n <div key={weekDay.unix()} className={`${CLASSNAME}__day-wrapper`}>\n <span className={`${CLASSNAME}__week-day`}>\n {weekDay.format('dddd').slice(0, 1).toLocaleUpperCase()}\n </span>\n </div>\n ))}\n </div>\n\n <div className={`${CLASSNAME}__month-days ${CLASSNAME}__days-wrapper`}>\n {days.map((annotatedDate) => {\n if (annotatedDate.isDisplayed) {\n return (\n <div key={annotatedDate.date.unix()} className={`${CLASSNAME}__day-wrapper`}>\n <button\n ref={\n (value && annotatedDate.date.isSame(value, 'day')) ||\n (!value && annotatedDate.isToday)\n ? todayOrSelectedDateRef\n : null\n }\n className={classNames(`${CLASSNAME}__month-day`, {\n [`${CLASSNAME}__month-day--is-selected`]:\n value && annotatedDate.date.isSame(value, 'day'),\n [`${CLASSNAME}__month-day--is-today`]:\n annotatedDate.isClickable && annotatedDate.isToday,\n })}\n disabled={!annotatedDate.isClickable}\n type=\"button\"\n onClick={() => onChange(moment(annotatedDate.date).toDate())}\n >\n <span>{annotatedDate.date.format('DD')}</span>\n </button>\n </div>\n );\n }\n return <div key={annotatedDate.date.unix()} className={`${CLASSNAME}__day-wrapper`} />;\n })}\n </div>\n </div>\n </div>\n );\n});\nDatePickerControlled.displayName = COMPONENT_NAME;\nDatePickerControlled.className = CLASSNAME;\n","import moment from 'moment';\nimport React, { forwardRef, useState } from 'react';\nimport { Comp } from '@lumx/react/utils';\nimport { CLASSNAME, COMPONENT_NAME } from './constants';\nimport { DatePickerControlled } from './DatePickerControlled';\nimport { DatePickerProps } from './types';\n\n/**\n * DatePicker component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePicker: Comp<DatePickerProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { defaultMonth, locale, value, onChange, ...forwardedProps } = props;\n let castedValue;\n if (value) {\n castedValue = moment(value);\n } else if (defaultMonth) {\n castedValue = moment(defaultMonth);\n }\n if (castedValue && !castedValue.isValid()) {\n // eslint-disable-next-line no-console\n console.warn(`[@lumx/react/DatePicker] Invalid date provided ${castedValue}`);\n }\n const selectedDay = castedValue && castedValue.isValid() ? castedValue : moment();\n\n const [monthOffset, setMonthOffset] = useState(0);\n\n const setPrevMonth = () => setMonthOffset(monthOffset - 1);\n const setNextMonth = () => setMonthOffset(monthOffset + 1);\n\n const onDatePickerChange = (newDate?: Date) => {\n onChange(newDate);\n setMonthOffset(0);\n };\n\n const selectedMonth = moment(selectedDay).locale(locale).add(monthOffset, 'months').toDate();\n\n return (\n <DatePickerControlled\n ref={ref}\n {...forwardedProps}\n defaultMonth={defaultMonth}\n locale={locale}\n value={value}\n onPrevMonthChange={setPrevMonth}\n onNextMonthChange={setNextMonth}\n selectedMonth={selectedMonth}\n onChange={onDatePickerChange}\n />\n );\n});\nDatePicker.displayName = COMPONENT_NAME;\nDatePicker.className = CLASSNAME;\n","import { DatePicker, Placement, Popover, TextField, IconButtonProps } from '@lumx/react';\nimport { useFocusTrap } from '@lumx/react/hooks/useFocusTrap';\n\nimport moment from 'moment';\n\nimport React, { forwardRef, SyntheticEvent, useCallback, useRef, useState } from 'react';\n\nimport { useFocus } from '@lumx/react/hooks/useFocus';\nimport { Comp, GenericProps } from '@lumx/react/utils';\n\n/**\n * Defines the props of the component.\n */\nexport interface DatePickerFieldProps extends GenericProps {\n /** Default month. */\n defaultMonth?: Date;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Locale (language or region) to use. */\n locale: string;\n /** Date after which dates can't be selected. */\n maxDate?: Date;\n /** Date before which dates can't be selected. */\n minDate?: Date;\n /** Native input name property. */\n name?: string;\n /** Props to pass to the next month button (minus those already set by the DatePickerControlled props). */\n nextButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /** Props to pass to the previous month button (minus those already set by the DatePickerControlled props). */\n previousButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /** Currently selected date. */\n value: Date | undefined;\n /** On change callback. */\n onChange(value: Date | undefined, name?: string, event?: SyntheticEvent): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'DatePickerField';\n\n/**\n * DatePickerField component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePickerField: Comp<DatePickerFieldProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n defaultMonth,\n disabled,\n isDisabled = disabled,\n locale,\n maxDate,\n minDate,\n name,\n nextButtonProps,\n onChange,\n previousButtonProps,\n value,\n ...forwardedProps\n } = props;\n const [wrapperElement, setWrapperElement] = useState<HTMLDivElement | null>(null);\n const anchorRef = useRef(null);\n\n const [isOpen, setIsOpen] = useState(false);\n\n const toggleSimpleMenu = () => {\n setIsOpen(!isOpen);\n };\n\n const onClose = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n useFocus(anchorRef.current, isOpen);\n const handleKeyboardNav = (evt: React.KeyboardEvent) => {\n if ((evt.key === 'Enter' || evt.key === ' ') && toggleSimpleMenu) {\n toggleSimpleMenu();\n }\n };\n\n // Handle focus trap.\n const [todayOrSelectedDate, setTodayOrSelectedDate] = useState<HTMLButtonElement | null>(null);\n useFocusTrap(isOpen && wrapperElement, todayOrSelectedDate);\n\n const onTextFieldChange = (textFieldValue: string, textFieldName?: string, event?: SyntheticEvent) => {\n if (!textFieldValue) {\n onChange(undefined, textFieldName, event);\n }\n };\n\n const onDatePickerChange = (newDate?: Date) => {\n onChange(newDate, name);\n onClose();\n };\n\n return (\n <>\n <TextField\n ref={ref}\n {...forwardedProps}\n name={name}\n forceFocusStyle={isOpen}\n textFieldRef={anchorRef}\n value={value ? moment(value).locale(locale).format('LL') : ''}\n onClick={toggleSimpleMenu}\n onChange={onTextFieldChange}\n onKeyPress={handleKeyboardNav}\n isDisabled={isDisabled}\n readOnly\n />\n {isOpen ? (\n <Popover\n anchorRef={anchorRef}\n placement={Placement.BOTTOM_START}\n isOpen={isOpen}\n onClose={onClose}\n closeOnClickAway\n closeOnEscape\n >\n <DatePicker\n ref={setWrapperElement}\n locale={locale}\n maxDate={maxDate}\n minDate={minDate}\n value={value}\n onChange={onDatePickerChange}\n todayOrSelectedDateRef={setTodayOrSelectedDate}\n defaultMonth={defaultMonth}\n nextButtonProps={nextButtonProps}\n previousButtonProps={previousButtonProps}\n />\n </Popover>\n ) : null}\n </>\n );\n});\nDatePickerField.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","moment","extendMoment","mMoment","DAYS_PER_WEEK","getWeekDays","locale","range","map","_","i","weekday","getMonthCalendar","selectedMonth","firstDayOfMonth","startOf","endDayOfMonth","endOf","firstDay","monthRange","toDate","Array","from","by","getAnnotatedMonthCalendar","minDate","maxDate","month","clickableRange","date","isClickable","contains","isDisplayed","isToday","isSame","DatePickerControlled","forwardRef","props","ref","nextButtonProps","onChange","onNextMonthChange","onPrevMonthChange","previousButtonProps","todayOrSelectedDateRef","value","days","React","useMemo","weekDays","Emphasis","low","mdiChevronRight","mdiChevronLeft","format","weekDay","unix","slice","toLocaleUpperCase","annotatedDate","classNames","displayName","className","DatePicker","defaultMonth","forwardedProps","castedValue","isValid","console","warn","selectedDay","useState","monthOffset","setMonthOffset","setPrevMonth","setNextMonth","onDatePickerChange","newDate","add","DatePickerField","disabled","isDisabled","name","wrapperElement","setWrapperElement","anchorRef","useRef","isOpen","setIsOpen","toggleSimpleMenu","onClose","useCallback","useFocus","current","handleKeyboardNav","evt","key","todayOrSelectedDate","setTodayOrSelectedDate","useFocusTrap","onTextFieldChange","textFieldValue","textFieldName","event","undefined","Placement","BOTTOM_START"],"mappings":"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"}
@@ -1,274 +0,0 @@
1
- import { d as _slicedToArray, e as _toConsumableArray, b as _objectWithoutProperties, c as _extends } from './_rollupPluginBabelHelpers.js';
2
- import { Size } from './components.js';
3
- import React, { useState, useEffect, forwardRef, useRef, useMemo, Children } from 'react';
4
- import { g as getRootClassName, c as classnames, h as handleBasicClasses, D as DIALOG_TRANSITION_DURATION } from './getRootClassName.js';
5
- import { D as DOCUMENT } from './constants.js';
6
- import { p as partitionMulti } from './partitionMulti.js';
7
- import { i as isComponent } from './type.js';
8
- import { m as mergeRefs } from './mergeRefs.js';
9
- import { u as useCallbackOnEscape, C as ClickAwayProvider } from './ClickAwayProvider.js';
10
- import { u as useFocusTrap } from './useFocusTrap.js';
11
- import { createPortal } from 'react-dom';
12
- import { u as useDelayedVisibility } from './useDelayedVisibility.js';
13
- import { u as useDisableBodyScroll } from './useDisableBodyScroll.js';
14
- import { a as Progress, P as ProgressVariant } from './Progress2.js';
15
-
16
- /**
17
- * Convenient hook to create interaction observers.
18
- *
19
- * @param elements Elements to observe.
20
- * @param options IntersectionObserver options.
21
- * @return Map of intersections.
22
- */
23
- function useIntersectionObserver(elements, options) {
24
- var _useState = useState(function () {
25
- return new Map();
26
- }),
27
- _useState2 = _slicedToArray(_useState, 2),
28
- intersections = _useState2[0],
29
- setIntersections = _useState2[1];
30
-
31
- useEffect(function () {
32
- if (elements.length < 1 || !elements.some(Boolean)) {
33
- return undefined;
34
- }
35
-
36
- var observer = new IntersectionObserver(function (entries) {
37
- var _iteratorNormalCompletion = true;
38
- var _didIteratorError = false;
39
- var _iteratorError = undefined;
40
-
41
- try {
42
- for (var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
43
- var entry = _step.value;
44
- intersections.set(entry.target, entry);
45
- }
46
- } catch (err) {
47
- _didIteratorError = true;
48
- _iteratorError = err;
49
- } finally {
50
- try {
51
- if (!_iteratorNormalCompletion && _iterator.return != null) {
52
- _iterator.return();
53
- }
54
- } finally {
55
- if (_didIteratorError) {
56
- throw _iteratorError;
57
- }
58
- }
59
- }
60
-
61
- setIntersections(new Map(intersections));
62
- }, options);
63
- var _iteratorNormalCompletion2 = true;
64
- var _didIteratorError2 = false;
65
- var _iteratorError2 = undefined;
66
-
67
- try {
68
- for (var _iterator2 = elements[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
69
- var element = _step2.value;
70
-
71
- if (element) {
72
- observer.observe(element);
73
- }
74
- }
75
- } catch (err) {
76
- _didIteratorError2 = true;
77
- _iteratorError2 = err;
78
- } finally {
79
- try {
80
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
81
- _iterator2.return();
82
- }
83
- } finally {
84
- if (_didIteratorError2) {
85
- throw _iteratorError2;
86
- }
87
- }
88
- }
89
-
90
- return function () {
91
- return observer.disconnect();
92
- };
93
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
94
- _toConsumableArray(elements));
95
- return intersections;
96
- }
97
-
98
- /**
99
- * Defines the props of the component.
100
- */
101
-
102
- var isHeader = isComponent('header');
103
- var isFooter = isComponent('footer');
104
- /**
105
- * Component display name.
106
- */
107
-
108
- var COMPONENT_NAME = 'Dialog';
109
- /**
110
- * Component default class name and class prefix.
111
- */
112
-
113
- var CLASSNAME = getRootClassName(COMPONENT_NAME);
114
- /**
115
- * Component default props.
116
- */
117
-
118
- var DEFAULT_PROPS = {
119
- size: Size.big
120
- };
121
- /**
122
- * Dialog component.
123
- *
124
- * @param props Component props.
125
- * @param ref Component ref.
126
- * @return React element.
127
- */
128
-
129
- var Dialog = forwardRef(function (props, ref) {
130
- var _ref, _intersections$get, _ref2, _intersections$get2, _ref3, _ref4;
131
-
132
- if (!DOCUMENT) {
133
- // Can't render in SSR.
134
- return null;
135
- }
136
-
137
- var children = props.children,
138
- className = props.className,
139
- header = props.header,
140
- focusElement = props.focusElement,
141
- forceFooterDivider = props.forceFooterDivider,
142
- forceHeaderDivider = props.forceHeaderDivider,
143
- footer = props.footer,
144
- isLoading = props.isLoading,
145
- isOpen = props.isOpen,
146
- onClose = props.onClose,
147
- parentElement = props.parentElement,
148
- contentRef = props.contentRef,
149
- preventAutoClose = props.preventAutoClose,
150
- size = props.size,
151
- zIndex = props.zIndex,
152
- dialogProps = props.dialogProps,
153
- onVisibilityChange = props.onVisibilityChange,
154
- forwardedProps = _objectWithoutProperties(props, ["children", "className", "header", "focusElement", "forceFooterDivider", "forceHeaderDivider", "footer", "isLoading", "isOpen", "onClose", "parentElement", "contentRef", "preventAutoClose", "size", "zIndex", "dialogProps", "onVisibilityChange"]); // eslint-disable-next-line react-hooks/rules-of-hooks
155
-
156
-
157
- var previousOpen = React.useRef(isOpen); // eslint-disable-next-line react-hooks/rules-of-hooks
158
-
159
- React.useEffect(function () {
160
- if (isOpen !== previousOpen.current) {
161
- previousOpen.current = isOpen; // Focus the parent element on close.
162
-
163
- if (!isOpen && parentElement && parentElement.current) {
164
- parentElement.current.focus();
165
- }
166
- }
167
- }, [isOpen, parentElement]); // eslint-disable-next-line react-hooks/rules-of-hooks
168
-
169
- useCallbackOnEscape(onClose, isOpen && !preventAutoClose); // eslint-disable-next-line react-hooks/rules-of-hooks
170
-
171
- var wrapperRef = useRef(null);
172
- /**
173
- * Since the `contentRef` comes from the parent and is optional,
174
- * we need to create a stable contentRef that will always be available.
175
- */
176
- // eslint-disable-next-line react-hooks/rules-of-hooks
177
-
178
- var localContentRef = useRef(null); // Handle focus trap.
179
- // eslint-disable-next-line react-hooks/rules-of-hooks
180
-
181
- useFocusTrap(isOpen && wrapperRef.current, focusElement === null || focusElement === void 0 ? void 0 : focusElement.current); // eslint-disable-next-line react-hooks/rules-of-hooks
182
-
183
- useDisableBodyScroll(isOpen && localContentRef.current); // eslint-disable-next-line react-hooks/rules-of-hooks
184
-
185
- var _useState = useState(null),
186
- _useState2 = _slicedToArray(_useState, 2),
187
- sentinelTop = _useState2[0],
188
- setSentinelTop = _useState2[1]; // eslint-disable-next-line react-hooks/rules-of-hooks
189
-
190
-
191
- var _useState3 = useState(null),
192
- _useState4 = _slicedToArray(_useState3, 2),
193
- sentinelBottom = _useState4[0],
194
- setSentinelBottom = _useState4[1]; // eslint-disable-next-line react-hooks/rules-of-hooks
195
-
196
-
197
- var intersections = useIntersectionObserver([sentinelTop, sentinelBottom], {
198
- threshold: [0, 1]
199
- });
200
- var hasTopIntersection = sentinelTop && !((_ref = (_intersections$get = intersections.get(sentinelTop)) === null || _intersections$get === void 0 ? void 0 : _intersections$get.isIntersecting) !== null && _ref !== void 0 ? _ref : true);
201
- var hasBottomIntersection = sentinelBottom && !((_ref2 = (_intersections$get2 = intersections.get(sentinelBottom)) === null || _intersections$get2 === void 0 ? void 0 : _intersections$get2.isIntersecting) !== null && _ref2 !== void 0 ? _ref2 : true); // Separate header, footer and dialog content from children.
202
- // eslint-disable-next-line react-hooks/rules-of-hooks
203
-
204
- var _useMemo = useMemo(function () {
205
- return partitionMulti(Children.toArray(children), [isHeader, isFooter]);
206
- }, [children]),
207
- _useMemo2 = _slicedToArray(_useMemo, 3),
208
- _useMemo2$ = _slicedToArray(_useMemo2[0], 1),
209
- headerChild = _useMemo2$[0],
210
- _useMemo2$2 = _slicedToArray(_useMemo2[1], 1),
211
- footerChild = _useMemo2$2[0],
212
- content = _useMemo2[2];
213
-
214
- var headerChildProps = (_ref3 = headerChild) === null || _ref3 === void 0 ? void 0 : _ref3.props;
215
- var headerChildContent = headerChildProps === null || headerChildProps === void 0 ? void 0 : headerChildProps.children;
216
- var footerChildProps = (_ref4 = footerChild) === null || _ref4 === void 0 ? void 0 : _ref4.props;
217
- var footerChildContent = footerChildProps === null || footerChildProps === void 0 ? void 0 : footerChildProps.children; // eslint-disable-next-line react-hooks/rules-of-hooks
218
-
219
- var isVisible = useDelayedVisibility(Boolean(isOpen), DIALOG_TRANSITION_DURATION, onVisibilityChange); // eslint-disable-next-line react-hooks/rules-of-hooks
220
-
221
- var clickAwayRefs = useRef([wrapperRef]); // eslint-disable-next-line react-hooks/rules-of-hooks
222
-
223
- var rootRef = useRef(null);
224
- return isOpen || isVisible ? createPortal(React.createElement("div", _extends({
225
- ref: mergeRefs(rootRef, ref)
226
- }, forwardedProps, {
227
- className: classnames(className, handleBasicClasses({
228
- isHidden: !isOpen,
229
- isLoading: isLoading,
230
- isShown: isOpen || isVisible,
231
- prefix: CLASSNAME,
232
- size: size
233
- })),
234
- style: {
235
- zIndex: zIndex
236
- }
237
- }), React.createElement("div", {
238
- className: "".concat(CLASSNAME, "__overlay")
239
- }), React.createElement("section", _extends({
240
- className: "".concat(CLASSNAME, "__container"),
241
- role: "dialog",
242
- "aria-modal": "true"
243
- }, dialogProps), React.createElement(ClickAwayProvider, {
244
- callback: !preventAutoClose && onClose,
245
- childrenRefs: clickAwayRefs,
246
- parentRef: rootRef
247
- }, React.createElement("div", {
248
- className: "".concat(CLASSNAME, "__wrapper"),
249
- ref: wrapperRef
250
- }, (header || headerChildContent) && React.createElement("header", _extends({}, headerChildProps, {
251
- className: classnames("".concat(CLASSNAME, "__header"), (forceHeaderDivider || hasTopIntersection) && "".concat(CLASSNAME, "__header--has-divider"), headerChildProps === null || headerChildProps === void 0 ? void 0 : headerChildProps.className)
252
- }), header, headerChildContent), React.createElement("div", {
253
- ref: mergeRefs(contentRef, localContentRef),
254
- className: "".concat(CLASSNAME, "__content")
255
- }, React.createElement("div", {
256
- className: "".concat(CLASSNAME, "__sentinel ").concat(CLASSNAME, "__sentinel--top"),
257
- ref: setSentinelTop
258
- }), content, React.createElement("div", {
259
- className: "".concat(CLASSNAME, "__sentinel ").concat(CLASSNAME, "__sentinel--bottom"),
260
- ref: setSentinelBottom
261
- })), (footer || footerChildContent) && React.createElement("footer", _extends({}, footerChildProps, {
262
- className: classnames("".concat(CLASSNAME, "__footer"), (forceFooterDivider || hasBottomIntersection) && "".concat(CLASSNAME, "__footer--has-divider"), footerChildProps === null || footerChildProps === void 0 ? void 0 : footerChildProps.className)
263
- }), footer, footerChildContent), isLoading && React.createElement("div", {
264
- className: "".concat(CLASSNAME, "__progress-overlay")
265
- }, React.createElement(Progress, {
266
- variant: ProgressVariant.circular
267
- })))))), document.body) : null;
268
- });
269
- Dialog.displayName = COMPONENT_NAME;
270
- Dialog.className = CLASSNAME;
271
- Dialog.defaultProps = DEFAULT_PROPS;
272
-
273
- export { Dialog as D };
274
- //# sourceMappingURL=Dialog2.js.map