@carbon/react 1.27.0-rc.0 → 1.28.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (591) hide show
  1. package/es/_virtual/_rollupPluginBabelHelpers.js +1 -313
  2. package/es/components/Accordion/Accordion.Skeleton.js +28 -30
  3. package/es/components/Accordion/Accordion.js +18 -21
  4. package/es/components/Accordion/AccordionItem.js +37 -49
  5. package/es/components/AspectRatio/AspectRatio.js +10 -12
  6. package/es/components/Breadcrumb/Breadcrumb.Skeleton.js +10 -11
  7. package/es/components/Breadcrumb/Breadcrumb.js +14 -13
  8. package/es/components/Breadcrumb/BreadcrumbItem.js +24 -22
  9. package/es/components/Button/Button.Skeleton.js +25 -23
  10. package/es/components/Button/Button.js +77 -72
  11. package/es/components/ButtonSet/ButtonSet.js +12 -10
  12. package/es/components/Checkbox/Checkbox.Skeleton.js +10 -11
  13. package/es/components/Checkbox/Checkbox.js +55 -52
  14. package/es/components/CheckboxGroup/CheckboxGroup.js +33 -31
  15. package/es/components/ClassPrefix/index.js +4 -2
  16. package/es/components/CodeSnippet/CodeSnippet.Skeleton.js +15 -14
  17. package/es/components/CodeSnippet/CodeSnippet.js +199 -102
  18. package/es/components/ComboBox/ComboBox.js +349 -178
  19. package/es/components/ComboBox/tools/filter.js +6 -4
  20. package/es/components/ComboButton/index.js +38 -43
  21. package/es/components/ComposedModal/ComposedModal.js +187 -85
  22. package/es/components/ComposedModal/ModalFooter.js +54 -49
  23. package/es/components/ComposedModal/ModalHeader.js +39 -26
  24. package/es/components/ContainedList/ContainedList.js +18 -17
  25. package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +20 -18
  26. package/es/components/ContentSwitcher/ContentSwitcher.js +83 -98
  27. package/es/components/ContentSwitcher/index.js +1 -1
  28. package/es/components/ContextMenu/useContextMenu.js +12 -21
  29. package/es/components/Copy/Copy.js +24 -29
  30. package/es/components/CopyButton/CopyButton.js +10 -10
  31. package/es/components/DangerButton/DangerButton.js +3 -5
  32. package/es/components/DataTable/DataTable.js +334 -361
  33. package/es/components/DataTable/Table.js +29 -26
  34. package/es/components/DataTable/TableActionList.js +2 -4
  35. package/es/components/DataTable/TableBatchAction.js +2 -4
  36. package/es/components/DataTable/TableBatchActions.js +29 -30
  37. package/es/components/DataTable/TableBody.js +7 -8
  38. package/es/components/DataTable/TableCell.js +1 -1
  39. package/es/components/DataTable/TableContainer.js +23 -23
  40. package/es/components/DataTable/TableContext.js +1 -1
  41. package/es/components/DataTable/TableExpandHeader.js +19 -21
  42. package/es/components/DataTable/TableExpandRow.js +23 -23
  43. package/es/components/DataTable/TableExpandedRow.js +18 -23
  44. package/es/components/DataTable/TableHead.js +1 -1
  45. package/es/components/DataTable/TableHeader.js +45 -41
  46. package/es/components/DataTable/TableRow.js +7 -8
  47. package/es/components/DataTable/TableSelectAll.js +13 -11
  48. package/es/components/DataTable/TableSelectRow.js +29 -21
  49. package/es/components/DataTable/TableToolbar.js +19 -14
  50. package/es/components/DataTable/TableToolbarAction.js +6 -6
  51. package/es/components/DataTable/TableToolbarContent.js +2 -4
  52. package/es/components/DataTable/TableToolbarMenu.js +11 -12
  53. package/es/components/DataTable/TableToolbarSearch.js +52 -71
  54. package/es/components/DataTable/state/getDerivedStateFromProps.js +15 -15
  55. package/es/components/DataTable/state/sortStates.js +1 -1
  56. package/es/components/DataTable/state/sorting.js +28 -20
  57. package/es/components/DataTable/tools/cells.js +1 -3
  58. package/es/components/DataTable/tools/denormalize.js +4 -17
  59. package/es/components/DataTable/tools/filter.js +18 -16
  60. package/es/components/DataTable/tools/instanceId.js +2 -2
  61. package/es/components/DataTable/tools/normalize.js +28 -25
  62. package/es/components/DataTable/tools/sorting.js +28 -25
  63. package/es/components/DataTableSkeleton/DataTableSkeleton.js +36 -38
  64. package/es/components/DatePicker/DatePicker.Skeleton.js +17 -18
  65. package/es/components/DatePicker/DatePicker.js +206 -195
  66. package/es/components/DatePicker/plugins/appendToPlugin.js +45 -43
  67. package/es/components/DatePicker/plugins/fixEventsPlugin.js +117 -107
  68. package/es/components/DatePicker/plugins/rangePlugin.js +19 -11
  69. package/es/components/DatePickerInput/DatePickerInput.js +83 -74
  70. package/es/components/Dropdown/Dropdown.Skeleton.js +13 -12
  71. package/es/components/Dropdown/Dropdown.js +266 -109
  72. package/es/components/ErrorBoundary/ErrorBoundary.js +27 -48
  73. package/es/components/ErrorBoundary/ErrorBoundaryContext.js +3 -2
  74. package/es/components/ExpandableSearch/ExpandableSearch.d.ts +13 -0
  75. package/es/components/ExpandableSearch/ExpandableSearch.js +18 -25
  76. package/es/components/FeatureFlags/index.js +25 -43
  77. package/es/components/FileUploader/FileUploader.Skeleton.js +8 -9
  78. package/es/components/FileUploader/FileUploader.js +120 -147
  79. package/es/components/FileUploader/FileUploaderButton.js +36 -48
  80. package/es/components/FileUploader/FileUploaderDropContainer.js +49 -53
  81. package/es/components/FileUploader/FileUploaderItem.js +30 -30
  82. package/es/components/FileUploader/Filename.js +13 -14
  83. package/es/components/FluidComboBox/FluidComboBox.Skeleton.js +11 -12
  84. package/es/components/FluidComboBox/FluidComboBox.js +11 -9
  85. package/es/components/FluidDatePicker/FluidDatePicker.Skeleton.js +18 -18
  86. package/es/components/FluidDatePicker/FluidDatePicker.js +19 -16
  87. package/es/components/FluidDatePickerInput/FluidDatePickerInput.js +3 -3
  88. package/es/components/FluidDropdown/FluidDropdown.Skeleton.js +11 -12
  89. package/es/components/FluidDropdown/FluidDropdown.js +11 -9
  90. package/es/components/FluidForm/FluidForm.js +9 -10
  91. package/es/components/FluidForm/FormContext.js +1 -1
  92. package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +11 -12
  93. package/es/components/FluidMultiSelect/FluidMultiSelect.js +12 -10
  94. package/es/components/FluidSelect/FluidSelect.Skeleton.js +11 -12
  95. package/es/components/FluidSelect/FluidSelect.js +9 -9
  96. package/es/components/FluidTextArea/FluidTextArea.Skeleton.js +9 -10
  97. package/es/components/FluidTextArea/FluidTextArea.js +7 -8
  98. package/es/components/FluidTextInput/FluidTextInput.Skeleton.js +9 -10
  99. package/es/components/FluidTextInput/FluidTextInput.js +10 -9
  100. package/es/components/FluidTimePicker/FluidTimePicker.Skeleton.js +11 -10
  101. package/es/components/FluidTimePicker/FluidTimePicker.js +30 -26
  102. package/es/components/FluidTimePickerSelect/FluidTimePickerSelect.js +7 -7
  103. package/es/components/Form/Form.js +9 -10
  104. package/es/components/FormGroup/FormGroup.js +16 -17
  105. package/es/components/FormItem/FormItem.js +8 -9
  106. package/es/components/FormLabel/FormLabel.js +11 -10
  107. package/es/components/Grid/CSSGrid.js +38 -39
  108. package/es/components/Grid/Column.js +86 -79
  109. package/es/components/Grid/ColumnHang.js +12 -14
  110. package/es/components/Grid/FlexGrid.js +19 -21
  111. package/es/components/Grid/Grid.js +2 -2
  112. package/es/components/Grid/GridContext.js +12 -11
  113. package/es/components/Grid/Row.js +16 -18
  114. package/es/components/Heading/index.js +11 -13
  115. package/es/components/Icon/Icon.Skeleton.js +10 -12
  116. package/es/components/IconButton/index.js +19 -22
  117. package/es/components/IdPrefix/index.js +4 -2
  118. package/es/components/InlineCheckbox/InlineCheckbox.js +89 -36
  119. package/es/components/InlineLoading/InlineLoading.js +23 -25
  120. package/es/components/Layer/LayerContext.js +1 -1
  121. package/es/components/Layer/index.js +17 -18
  122. package/es/components/Layout/LayoutDirection.js +8 -10
  123. package/es/components/Layout/LayoutDirectionContext.js +1 -1
  124. package/es/components/Link/Link.js +25 -25
  125. package/es/components/ListBox/ListBox.js +38 -31
  126. package/es/components/ListBox/ListBoxField.js +9 -10
  127. package/es/components/ListBox/ListBoxMenu.js +9 -10
  128. package/es/components/ListBox/ListBoxMenuIcon.js +16 -14
  129. package/es/components/ListBox/ListBoxMenuItem.js +23 -26
  130. package/es/components/ListBox/ListBoxPropTypes.js +4 -4
  131. package/es/components/ListBox/ListBoxSelection.js +30 -25
  132. package/es/components/ListBox/index.js +1 -1
  133. package/es/components/ListBox/next/ListBoxSelection.js +27 -24
  134. package/es/components/ListBox/next/ListBoxTrigger.js +20 -19
  135. package/es/components/ListItem/ListItem.js +9 -10
  136. package/es/components/Loading/Loading.js +24 -24
  137. package/es/components/Menu/Menu.js +67 -80
  138. package/es/components/Menu/MenuContext.js +9 -12
  139. package/es/components/Menu/MenuItem.js +104 -128
  140. package/es/components/MenuButton/index.js +37 -41
  141. package/es/components/Modal/Modal.js +281 -120
  142. package/es/components/ModalWrapper/ModalWrapper.js +72 -96
  143. package/es/components/MultiSelect/FilterableMultiSelect.js +299 -163
  144. package/es/components/MultiSelect/MultiSelect.js +162 -174
  145. package/es/components/MultiSelect/MultiSelectPropTypes.js +1 -1
  146. package/es/components/MultiSelect/tools/itemToString.js +3 -4
  147. package/es/components/MultiSelect/tools/sorting.js +15 -13
  148. package/es/components/Notification/Notification.js +436 -164
  149. package/es/components/NumberInput/NumberInput.Skeleton.js +10 -11
  150. package/es/components/NumberInput/NumberInput.js +140 -139
  151. package/es/components/OrderedList/OrderedList.js +17 -15
  152. package/es/components/OverflowMenu/OverflowMenu.js +359 -227
  153. package/es/components/OverflowMenu/index.js +1 -1
  154. package/es/components/OverflowMenuItem/OverflowMenuItem.js +32 -37
  155. package/es/components/OverflowMenuV2/index.js +26 -28
  156. package/es/components/Pagination/Pagination.Skeleton.js +9 -10
  157. package/es/components/Pagination/Pagination.js +98 -140
  158. package/es/components/Pagination/experimental/PageSelector.js +16 -16
  159. package/es/components/Pagination/experimental/Pagination.js +73 -94
  160. package/es/components/PaginationNav/PaginationNav.js +98 -117
  161. package/es/components/Popover/index.js +74 -80
  162. package/es/components/PrimaryButton/PrimaryButton.js +3 -5
  163. package/es/components/ProgressBar/ProgressBar.js +39 -37
  164. package/es/components/ProgressIndicator/ProgressIndicator.Skeleton.js +15 -14
  165. package/es/components/ProgressIndicator/ProgressIndicator.js +71 -71
  166. package/es/components/RadioButton/RadioButton.Skeleton.js +9 -10
  167. package/es/components/RadioButton/RadioButton.js +27 -27
  168. package/es/components/RadioButtonGroup/RadioButtonGroup.js +55 -65
  169. package/es/components/RadioTile/RadioTile.js +28 -26
  170. package/es/components/Search/Search.Skeleton.js +16 -16
  171. package/es/components/Search/Search.d.ts +83 -0
  172. package/es/components/Search/Search.js +65 -72
  173. package/es/components/Search/index.d.ts +11 -0
  174. package/es/components/SecondaryButton/SecondaryButton.js +3 -5
  175. package/es/components/Select/Select.Skeleton.js +12 -13
  176. package/es/components/Select/Select.js +79 -73
  177. package/es/components/SelectItem/SelectItem.js +17 -13
  178. package/es/components/SelectItemGroup/SelectItemGroup.js +11 -12
  179. package/es/components/SkeletonIcon/SkeletonIcon.js +11 -11
  180. package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +11 -11
  181. package/es/components/SkeletonText/SkeletonText.js +29 -29
  182. package/es/components/Slider/Slider.Skeleton.js +17 -18
  183. package/es/components/Slider/Slider.js +306 -329
  184. package/es/components/Slider/index.js +1 -1
  185. package/es/components/Stack/Stack.js +19 -20
  186. package/es/components/Stack/index.js +2 -2
  187. package/es/components/StructuredList/StructuredList.Skeleton.js +25 -24
  188. package/es/components/StructuredList/StructuredList.js +134 -106
  189. package/es/components/Switch/IconSwitch.js +48 -54
  190. package/es/components/Switch/Switch.js +33 -31
  191. package/es/components/Tab/Tab.js +77 -83
  192. package/es/components/Tab/index.js +1 -1
  193. package/es/components/TabContent/TabContent.js +16 -18
  194. package/es/components/Tabs/Tabs.Skeleton.js +14 -13
  195. package/es/components/Tabs/Tabs.js +211 -210
  196. package/es/components/Tabs/usePressable.js +27 -36
  197. package/es/components/Tag/Tag.Skeleton.js +10 -9
  198. package/es/components/Tag/Tag.js +34 -31
  199. package/es/components/Text/Text.js +20 -20
  200. package/es/components/Text/TextDirection.js +8 -7
  201. package/es/components/Text/TextDirectionContext.js +1 -1
  202. package/es/components/Text/index.js +1 -1
  203. package/es/components/TextArea/TextArea.Skeleton.js +11 -12
  204. package/es/components/TextArea/TextArea.js +89 -83
  205. package/es/components/TextInput/ControlledPasswordInput.js +79 -73
  206. package/es/components/TextInput/PasswordInput.js +101 -91
  207. package/es/components/TextInput/TextInput.Skeleton.js +11 -12
  208. package/es/components/TextInput/TextInput.js +104 -92
  209. package/es/components/TextInput/util.js +26 -28
  210. package/es/components/Theme/index.js +25 -20
  211. package/es/components/Tile/Tile.js +135 -176
  212. package/es/components/TileGroup/TileGroup.js +55 -70
  213. package/es/components/TileGroup/index.js +1 -1
  214. package/es/components/TimePicker/TimePicker.js +60 -67
  215. package/es/components/TimePickerSelect/TimePickerSelect.js +20 -18
  216. package/es/components/TimePickerSelect/index.js +1 -1
  217. package/es/components/Toggle/Toggle.Skeleton.js +63 -52
  218. package/es/components/Toggle/Toggle.js +44 -48
  219. package/es/components/ToggleSmall/ToggleSmall.Skeleton.js +56 -50
  220. package/es/components/Toggletip/index.js +52 -48
  221. package/es/components/Tooltip/DefinitionTooltip.js +24 -31
  222. package/es/components/Tooltip/Tooltip.js +35 -50
  223. package/es/components/TreeView/TreeNode.js +94 -74
  224. package/es/components/TreeView/TreeView.js +72 -83
  225. package/es/components/UIShell/Content.js +12 -14
  226. package/es/components/UIShell/Header.js +16 -12
  227. package/es/components/UIShell/HeaderContainer.js +8 -14
  228. package/es/components/UIShell/HeaderGlobalAction.js +26 -19
  229. package/es/components/UIShell/HeaderGlobalBar.js +1 -3
  230. package/es/components/UIShell/HeaderMenu.js +114 -129
  231. package/es/components/UIShell/HeaderMenuButton.js +31 -22
  232. package/es/components/UIShell/HeaderMenuItem.js +28 -20
  233. package/es/components/UIShell/HeaderName.js +19 -14
  234. package/es/components/UIShell/HeaderNavigation.js +19 -15
  235. package/es/components/UIShell/HeaderPanel.js +23 -17
  236. package/es/components/UIShell/HeaderSideNavItems.js +11 -9
  237. package/es/components/UIShell/Link.js +11 -11
  238. package/es/components/UIShell/SideNav.js +66 -62
  239. package/es/components/UIShell/SideNavDetails.js +11 -12
  240. package/es/components/UIShell/SideNavDivider.js +5 -3
  241. package/es/components/UIShell/SideNavFooter.js +12 -12
  242. package/es/components/UIShell/SideNavHeader.js +8 -6
  243. package/es/components/UIShell/SideNavIcon.js +11 -8
  244. package/es/components/UIShell/SideNavItem.js +11 -9
  245. package/es/components/UIShell/SideNavItems.js +13 -11
  246. package/es/components/UIShell/SideNavLink.js +19 -17
  247. package/es/components/UIShell/SideNavLinkText.js +8 -9
  248. package/es/components/UIShell/SideNavMenu.js +28 -35
  249. package/es/components/UIShell/SideNavMenuItem.js +14 -14
  250. package/es/components/UIShell/SideNavSwitcher.js +19 -19
  251. package/es/components/UIShell/SkipToContent.js +10 -11
  252. package/es/components/UIShell/Switcher.js +20 -11
  253. package/es/components/UIShell/SwitcherDivider.js +10 -9
  254. package/es/components/UIShell/SwitcherItem.js +26 -19
  255. package/es/components/UIShell/_utils.js +1 -1
  256. package/es/components/UnorderedList/UnorderedList.js +14 -14
  257. package/es/index.js +5 -5
  258. package/es/internal/ClickListener.js +49 -65
  259. package/es/internal/FloatingMenu.js +193 -200
  260. package/es/internal/OptimizedResize.js +9 -8
  261. package/es/internal/Selection.js +92 -111
  262. package/es/internal/createClassWrapper.js +2 -2
  263. package/es/internal/deprecateFieldOnObject.js +5 -3
  264. package/es/internal/environment.js +1 -1
  265. package/es/internal/focus/index.js +1 -1
  266. package/es/internal/keyboard/keys.js +11 -11
  267. package/es/internal/keyboard/match.js +7 -6
  268. package/es/internal/keyboard/navigation.js +15 -5
  269. package/es/internal/useAnnouncer.js +2 -2
  270. package/es/internal/useAttachedMenu.js +12 -20
  271. package/es/internal/useControllableState.js +11 -16
  272. package/es/internal/useDelayedState.js +9 -18
  273. package/es/internal/useEffectOnce.js +4 -4
  274. package/es/internal/useEvent.js +4 -4
  275. package/es/internal/useId.js +15 -19
  276. package/es/internal/useIdPrefix.js +1 -1
  277. package/es/internal/useIsomorphicEffect.js +1 -1
  278. package/es/internal/useMergedRefs.js +3 -3
  279. package/es/internal/useNoInteractiveChildren.js +8 -19
  280. package/es/internal/useNormalizedInputProps.js +16 -14
  281. package/es/internal/usePrefix.js +1 -1
  282. package/es/internal/useSavedCallback.js +3 -3
  283. package/es/internal/warning.js +4 -4
  284. package/es/internal/wrapFocus.js +16 -21
  285. package/es/prop-types/AriaPropTypes.js +1 -1
  286. package/es/prop-types/deprecate.js +6 -5
  287. package/es/prop-types/isRequiredOneOf.js +12 -25
  288. package/es/prop-types/requiredIfGivenPropIsTruthy.js +2 -2
  289. package/es/prop-types/types.js +1 -1
  290. package/es/tools/array.js +1 -1
  291. package/es/tools/events.js +21 -14
  292. package/es/tools/mergeRefs.js +3 -3
  293. package/es/tools/setupGetInstanceId.js +1 -1
  294. package/es/tools/uniqueId.js +3 -3
  295. package/es/tools/wrapComponent.js +14 -13
  296. package/lib/_virtual/_rollupPluginBabelHelpers.js +0 -336
  297. package/lib/components/Accordion/Accordion.Skeleton.js +27 -29
  298. package/lib/components/Accordion/Accordion.js +17 -20
  299. package/lib/components/Accordion/AccordionItem.js +36 -48
  300. package/lib/components/AspectRatio/AspectRatio.js +9 -11
  301. package/lib/components/Breadcrumb/Breadcrumb.Skeleton.js +9 -10
  302. package/lib/components/Breadcrumb/Breadcrumb.js +13 -12
  303. package/lib/components/Breadcrumb/BreadcrumbItem.js +23 -21
  304. package/lib/components/Button/Button.Skeleton.js +24 -22
  305. package/lib/components/Button/Button.js +76 -71
  306. package/lib/components/ButtonSet/ButtonSet.js +11 -9
  307. package/lib/components/Checkbox/Checkbox.Skeleton.js +9 -10
  308. package/lib/components/Checkbox/Checkbox.js +54 -51
  309. package/lib/components/CheckboxGroup/CheckboxGroup.js +32 -30
  310. package/lib/components/ClassPrefix/index.js +4 -2
  311. package/lib/components/CodeSnippet/CodeSnippet.Skeleton.js +14 -13
  312. package/lib/components/CodeSnippet/CodeSnippet.js +198 -101
  313. package/lib/components/ComboBox/ComboBox.js +348 -177
  314. package/lib/components/ComboBox/tools/filter.js +6 -4
  315. package/lib/components/ComboButton/index.js +37 -42
  316. package/lib/components/ComposedModal/ComposedModal.js +187 -85
  317. package/lib/components/ComposedModal/ModalFooter.js +53 -48
  318. package/lib/components/ComposedModal/ModalHeader.js +38 -25
  319. package/lib/components/ContainedList/ContainedList.js +18 -17
  320. package/lib/components/ContainedList/ContainedListItem/ContainedListItem.js +20 -18
  321. package/lib/components/ContentSwitcher/ContentSwitcher.js +82 -97
  322. package/lib/components/ContentSwitcher/index.js +1 -1
  323. package/lib/components/ContextMenu/useContextMenu.js +12 -21
  324. package/lib/components/Copy/Copy.js +23 -28
  325. package/lib/components/CopyButton/CopyButton.js +9 -9
  326. package/lib/components/DangerButton/DangerButton.js +3 -5
  327. package/lib/components/DataTable/DataTable.js +332 -359
  328. package/lib/components/DataTable/Table.js +28 -25
  329. package/lib/components/DataTable/TableActionList.js +2 -4
  330. package/lib/components/DataTable/TableBatchAction.js +2 -4
  331. package/lib/components/DataTable/TableBatchActions.js +28 -29
  332. package/lib/components/DataTable/TableBody.js +6 -7
  333. package/lib/components/DataTable/TableCell.js +1 -1
  334. package/lib/components/DataTable/TableContainer.js +22 -22
  335. package/lib/components/DataTable/TableContext.js +1 -1
  336. package/lib/components/DataTable/TableExpandHeader.js +18 -20
  337. package/lib/components/DataTable/TableExpandRow.js +22 -22
  338. package/lib/components/DataTable/TableExpandedRow.js +17 -22
  339. package/lib/components/DataTable/TableHead.js +1 -1
  340. package/lib/components/DataTable/TableHeader.js +43 -39
  341. package/lib/components/DataTable/TableRow.js +7 -8
  342. package/lib/components/DataTable/TableSelectAll.js +13 -11
  343. package/lib/components/DataTable/TableSelectRow.js +28 -20
  344. package/lib/components/DataTable/TableToolbar.js +18 -13
  345. package/lib/components/DataTable/TableToolbarAction.js +5 -5
  346. package/lib/components/DataTable/TableToolbarContent.js +2 -4
  347. package/lib/components/DataTable/TableToolbarMenu.js +10 -11
  348. package/lib/components/DataTable/TableToolbarSearch.js +51 -70
  349. package/lib/components/DataTable/state/getDerivedStateFromProps.js +15 -15
  350. package/lib/components/DataTable/state/sortStates.js +1 -1
  351. package/lib/components/DataTable/state/sorting.js +28 -20
  352. package/lib/components/DataTable/tools/cells.js +1 -3
  353. package/lib/components/DataTable/tools/denormalize.js +4 -17
  354. package/lib/components/DataTable/tools/filter.js +18 -16
  355. package/lib/components/DataTable/tools/instanceId.js +2 -2
  356. package/lib/components/DataTable/tools/normalize.js +28 -25
  357. package/lib/components/DataTable/tools/sorting.js +27 -24
  358. package/lib/components/DataTableSkeleton/DataTableSkeleton.js +35 -37
  359. package/lib/components/DatePicker/DatePicker.Skeleton.js +16 -17
  360. package/lib/components/DatePicker/DatePicker.js +205 -194
  361. package/lib/components/DatePicker/plugins/appendToPlugin.js +45 -43
  362. package/lib/components/DatePicker/plugins/fixEventsPlugin.js +117 -107
  363. package/lib/components/DatePicker/plugins/rangePlugin.js +19 -11
  364. package/lib/components/DatePickerInput/DatePickerInput.js +83 -74
  365. package/lib/components/Dropdown/Dropdown.Skeleton.js +12 -11
  366. package/lib/components/Dropdown/Dropdown.js +265 -108
  367. package/lib/components/ErrorBoundary/ErrorBoundary.js +27 -48
  368. package/lib/components/ErrorBoundary/ErrorBoundaryContext.js +3 -2
  369. package/lib/components/ExpandableSearch/ExpandableSearch.d.ts +13 -0
  370. package/lib/components/ExpandableSearch/ExpandableSearch.js +17 -24
  371. package/lib/components/FeatureFlags/index.js +25 -43
  372. package/lib/components/FileUploader/FileUploader.Skeleton.js +7 -8
  373. package/lib/components/FileUploader/FileUploader.js +119 -146
  374. package/lib/components/FileUploader/FileUploaderButton.js +35 -47
  375. package/lib/components/FileUploader/FileUploaderDropContainer.js +48 -52
  376. package/lib/components/FileUploader/FileUploaderItem.js +29 -29
  377. package/lib/components/FileUploader/Filename.js +12 -13
  378. package/lib/components/FluidComboBox/FluidComboBox.Skeleton.js +10 -11
  379. package/lib/components/FluidComboBox/FluidComboBox.js +10 -8
  380. package/lib/components/FluidDatePicker/FluidDatePicker.Skeleton.js +17 -17
  381. package/lib/components/FluidDatePicker/FluidDatePicker.js +18 -15
  382. package/lib/components/FluidDatePickerInput/FluidDatePickerInput.js +3 -3
  383. package/lib/components/FluidDropdown/FluidDropdown.Skeleton.js +10 -11
  384. package/lib/components/FluidDropdown/FluidDropdown.js +10 -8
  385. package/lib/components/FluidForm/FluidForm.js +8 -9
  386. package/lib/components/FluidForm/FormContext.js +1 -1
  387. package/lib/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +10 -11
  388. package/lib/components/FluidMultiSelect/FluidMultiSelect.js +11 -9
  389. package/lib/components/FluidSelect/FluidSelect.Skeleton.js +10 -11
  390. package/lib/components/FluidSelect/FluidSelect.js +8 -8
  391. package/lib/components/FluidTextArea/FluidTextArea.Skeleton.js +8 -9
  392. package/lib/components/FluidTextArea/FluidTextArea.js +6 -7
  393. package/lib/components/FluidTextInput/FluidTextInput.Skeleton.js +8 -9
  394. package/lib/components/FluidTextInput/FluidTextInput.js +9 -8
  395. package/lib/components/FluidTimePicker/FluidTimePicker.Skeleton.js +10 -9
  396. package/lib/components/FluidTimePicker/FluidTimePicker.js +30 -26
  397. package/lib/components/FluidTimePickerSelect/FluidTimePickerSelect.js +6 -6
  398. package/lib/components/Form/Form.js +8 -9
  399. package/lib/components/FormGroup/FormGroup.js +15 -16
  400. package/lib/components/FormItem/FormItem.js +7 -8
  401. package/lib/components/FormLabel/FormLabel.js +10 -9
  402. package/lib/components/Grid/CSSGrid.js +37 -38
  403. package/lib/components/Grid/Column.js +85 -78
  404. package/lib/components/Grid/ColumnHang.js +11 -13
  405. package/lib/components/Grid/FlexGrid.js +19 -21
  406. package/lib/components/Grid/Grid.js +2 -2
  407. package/lib/components/Grid/GridContext.js +12 -11
  408. package/lib/components/Grid/Row.js +16 -18
  409. package/lib/components/Heading/index.js +11 -13
  410. package/lib/components/Icon/Icon.Skeleton.js +9 -11
  411. package/lib/components/IconButton/index.js +18 -21
  412. package/lib/components/IdPrefix/index.js +4 -2
  413. package/lib/components/InlineCheckbox/InlineCheckbox.js +89 -36
  414. package/lib/components/InlineLoading/InlineLoading.js +22 -24
  415. package/lib/components/Layer/LayerContext.js +1 -1
  416. package/lib/components/Layer/index.js +16 -17
  417. package/lib/components/Layout/LayoutDirection.js +7 -9
  418. package/lib/components/Layout/LayoutDirectionContext.js +1 -1
  419. package/lib/components/Link/Link.js +24 -24
  420. package/lib/components/ListBox/ListBox.js +37 -30
  421. package/lib/components/ListBox/ListBoxField.js +8 -9
  422. package/lib/components/ListBox/ListBoxMenu.js +8 -9
  423. package/lib/components/ListBox/ListBoxMenuIcon.js +16 -14
  424. package/lib/components/ListBox/ListBoxMenuItem.js +22 -25
  425. package/lib/components/ListBox/ListBoxPropTypes.js +4 -4
  426. package/lib/components/ListBox/ListBoxSelection.js +30 -25
  427. package/lib/components/ListBox/index.js +1 -1
  428. package/lib/components/ListBox/next/ListBoxSelection.js +26 -23
  429. package/lib/components/ListBox/next/ListBoxTrigger.js +19 -18
  430. package/lib/components/ListItem/ListItem.js +8 -9
  431. package/lib/components/Loading/Loading.js +23 -23
  432. package/lib/components/Menu/Menu.js +66 -79
  433. package/lib/components/Menu/MenuContext.js +9 -12
  434. package/lib/components/Menu/MenuItem.js +103 -127
  435. package/lib/components/MenuButton/index.js +36 -40
  436. package/lib/components/Modal/Modal.js +280 -119
  437. package/lib/components/ModalWrapper/ModalWrapper.js +71 -95
  438. package/lib/components/MultiSelect/FilterableMultiSelect.js +298 -162
  439. package/lib/components/MultiSelect/MultiSelect.js +163 -175
  440. package/lib/components/MultiSelect/MultiSelectPropTypes.js +1 -1
  441. package/lib/components/MultiSelect/tools/itemToString.js +3 -4
  442. package/lib/components/MultiSelect/tools/sorting.js +15 -13
  443. package/lib/components/Notification/Notification.js +434 -162
  444. package/lib/components/NumberInput/NumberInput.Skeleton.js +9 -10
  445. package/lib/components/NumberInput/NumberInput.js +139 -138
  446. package/lib/components/OrderedList/OrderedList.js +16 -14
  447. package/lib/components/OverflowMenu/OverflowMenu.js +358 -226
  448. package/lib/components/OverflowMenu/index.js +1 -1
  449. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +31 -36
  450. package/lib/components/OverflowMenuV2/index.js +25 -27
  451. package/lib/components/Pagination/Pagination.Skeleton.js +8 -9
  452. package/lib/components/Pagination/Pagination.js +97 -139
  453. package/lib/components/Pagination/experimental/PageSelector.js +17 -17
  454. package/lib/components/Pagination/experimental/Pagination.js +72 -93
  455. package/lib/components/PaginationNav/PaginationNav.js +97 -116
  456. package/lib/components/Popover/index.js +73 -79
  457. package/lib/components/PrimaryButton/PrimaryButton.js +3 -5
  458. package/lib/components/ProgressBar/ProgressBar.js +38 -36
  459. package/lib/components/ProgressIndicator/ProgressIndicator.Skeleton.js +14 -13
  460. package/lib/components/ProgressIndicator/ProgressIndicator.js +70 -70
  461. package/lib/components/RadioButton/RadioButton.Skeleton.js +8 -9
  462. package/lib/components/RadioButton/RadioButton.js +26 -26
  463. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +54 -64
  464. package/lib/components/RadioTile/RadioTile.js +27 -25
  465. package/lib/components/Search/Search.Skeleton.js +15 -15
  466. package/lib/components/Search/Search.d.ts +83 -0
  467. package/lib/components/Search/Search.js +62 -69
  468. package/lib/components/Search/index.d.ts +11 -0
  469. package/lib/components/SecondaryButton/SecondaryButton.js +3 -5
  470. package/lib/components/Select/Select.Skeleton.js +11 -12
  471. package/lib/components/Select/Select.js +78 -72
  472. package/lib/components/SelectItem/SelectItem.js +16 -12
  473. package/lib/components/SelectItemGroup/SelectItemGroup.js +10 -11
  474. package/lib/components/SkeletonIcon/SkeletonIcon.js +10 -10
  475. package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.js +10 -10
  476. package/lib/components/SkeletonText/SkeletonText.js +28 -28
  477. package/lib/components/Slider/Slider.Skeleton.js +16 -17
  478. package/lib/components/Slider/Slider.js +305 -328
  479. package/lib/components/Slider/index.js +1 -1
  480. package/lib/components/Stack/Stack.js +18 -19
  481. package/lib/components/Stack/index.js +2 -2
  482. package/lib/components/StructuredList/StructuredList.Skeleton.js +24 -23
  483. package/lib/components/StructuredList/StructuredList.js +133 -105
  484. package/lib/components/Switch/IconSwitch.js +45 -51
  485. package/lib/components/Switch/Switch.js +33 -31
  486. package/lib/components/Tab/Tab.js +76 -82
  487. package/lib/components/Tab/index.js +1 -1
  488. package/lib/components/TabContent/TabContent.js +15 -17
  489. package/lib/components/Tabs/Tabs.Skeleton.js +13 -12
  490. package/lib/components/Tabs/Tabs.js +210 -209
  491. package/lib/components/Tabs/usePressable.js +27 -36
  492. package/lib/components/Tag/Tag.Skeleton.js +9 -8
  493. package/lib/components/Tag/Tag.js +33 -30
  494. package/lib/components/Text/Text.js +19 -19
  495. package/lib/components/Text/TextDirection.js +8 -7
  496. package/lib/components/Text/TextDirectionContext.js +1 -1
  497. package/lib/components/Text/index.js +1 -1
  498. package/lib/components/TextArea/TextArea.Skeleton.js +10 -11
  499. package/lib/components/TextArea/TextArea.js +88 -82
  500. package/lib/components/TextInput/ControlledPasswordInput.js +78 -72
  501. package/lib/components/TextInput/PasswordInput.js +100 -90
  502. package/lib/components/TextInput/TextInput.Skeleton.js +10 -11
  503. package/lib/components/TextInput/TextInput.js +104 -92
  504. package/lib/components/TextInput/util.js +28 -30
  505. package/lib/components/Theme/index.js +24 -19
  506. package/lib/components/Tile/Tile.js +134 -175
  507. package/lib/components/TileGroup/TileGroup.js +54 -69
  508. package/lib/components/TileGroup/index.js +1 -1
  509. package/lib/components/TimePicker/TimePicker.js +59 -66
  510. package/lib/components/TimePickerSelect/TimePickerSelect.js +19 -17
  511. package/lib/components/TimePickerSelect/index.js +1 -1
  512. package/lib/components/Toggle/Toggle.Skeleton.js +68 -57
  513. package/lib/components/Toggle/Toggle.js +43 -47
  514. package/lib/components/ToggleSmall/ToggleSmall.Skeleton.js +60 -54
  515. package/lib/components/Toggletip/index.js +51 -47
  516. package/lib/components/Tooltip/DefinitionTooltip.js +23 -30
  517. package/lib/components/Tooltip/Tooltip.js +34 -49
  518. package/lib/components/TreeView/TreeNode.js +93 -73
  519. package/lib/components/TreeView/TreeView.js +71 -82
  520. package/lib/components/UIShell/Content.js +12 -14
  521. package/lib/components/UIShell/Header.js +15 -11
  522. package/lib/components/UIShell/HeaderContainer.js +8 -14
  523. package/lib/components/UIShell/HeaderGlobalAction.js +25 -18
  524. package/lib/components/UIShell/HeaderGlobalBar.js +1 -3
  525. package/lib/components/UIShell/HeaderMenu.js +113 -128
  526. package/lib/components/UIShell/HeaderMenuButton.js +30 -21
  527. package/lib/components/UIShell/HeaderMenuItem.js +27 -19
  528. package/lib/components/UIShell/HeaderName.js +18 -13
  529. package/lib/components/UIShell/HeaderNavigation.js +18 -14
  530. package/lib/components/UIShell/HeaderPanel.js +22 -16
  531. package/lib/components/UIShell/HeaderSideNavItems.js +11 -9
  532. package/lib/components/UIShell/Link.js +11 -11
  533. package/lib/components/UIShell/SideNav.js +65 -61
  534. package/lib/components/UIShell/SideNavDetails.js +10 -11
  535. package/lib/components/UIShell/SideNavDivider.js +5 -3
  536. package/lib/components/UIShell/SideNavFooter.js +12 -12
  537. package/lib/components/UIShell/SideNavHeader.js +8 -6
  538. package/lib/components/UIShell/SideNavIcon.js +11 -8
  539. package/lib/components/UIShell/SideNavItem.js +11 -9
  540. package/lib/components/UIShell/SideNavItems.js +13 -11
  541. package/lib/components/UIShell/SideNavLink.js +18 -16
  542. package/lib/components/UIShell/SideNavLinkText.js +7 -8
  543. package/lib/components/UIShell/SideNavMenu.js +28 -35
  544. package/lib/components/UIShell/SideNavMenuItem.js +13 -13
  545. package/lib/components/UIShell/SideNavSwitcher.js +19 -19
  546. package/lib/components/UIShell/SkipToContent.js +9 -10
  547. package/lib/components/UIShell/Switcher.js +19 -10
  548. package/lib/components/UIShell/SwitcherDivider.js +9 -8
  549. package/lib/components/UIShell/SwitcherItem.js +25 -18
  550. package/lib/components/UIShell/_utils.js +1 -1
  551. package/lib/components/UnorderedList/UnorderedList.js +13 -13
  552. package/lib/index.js +10 -10
  553. package/lib/internal/ClickListener.js +49 -65
  554. package/lib/internal/FloatingMenu.js +192 -199
  555. package/lib/internal/OptimizedResize.js +9 -8
  556. package/lib/internal/Selection.js +91 -110
  557. package/lib/internal/createClassWrapper.js +2 -2
  558. package/lib/internal/deprecateFieldOnObject.js +5 -3
  559. package/lib/internal/environment.js +1 -1
  560. package/lib/internal/focus/index.js +1 -1
  561. package/lib/internal/keyboard/keys.js +11 -11
  562. package/lib/internal/keyboard/match.js +7 -6
  563. package/lib/internal/keyboard/navigation.js +15 -5
  564. package/lib/internal/useAnnouncer.js +2 -2
  565. package/lib/internal/useAttachedMenu.js +12 -20
  566. package/lib/internal/useControllableState.js +11 -16
  567. package/lib/internal/useDelayedState.js +9 -18
  568. package/lib/internal/useEffectOnce.js +4 -4
  569. package/lib/internal/useEvent.js +4 -4
  570. package/lib/internal/useId.js +14 -18
  571. package/lib/internal/useIdPrefix.js +1 -1
  572. package/lib/internal/useIsomorphicEffect.js +1 -1
  573. package/lib/internal/useMergedRefs.js +3 -3
  574. package/lib/internal/useNoInteractiveChildren.js +8 -19
  575. package/lib/internal/useNormalizedInputProps.js +16 -14
  576. package/lib/internal/usePrefix.js +1 -1
  577. package/lib/internal/useSavedCallback.js +3 -3
  578. package/lib/internal/warning.js +4 -4
  579. package/lib/internal/wrapFocus.js +16 -21
  580. package/lib/prop-types/AriaPropTypes.js +1 -1
  581. package/lib/prop-types/deprecate.js +6 -5
  582. package/lib/prop-types/isRequiredOneOf.js +15 -28
  583. package/lib/prop-types/requiredIfGivenPropIsTruthy.js +2 -2
  584. package/lib/prop-types/types.js +1 -1
  585. package/lib/tools/array.js +1 -1
  586. package/lib/tools/events.js +21 -14
  587. package/lib/tools/mergeRefs.js +3 -3
  588. package/lib/tools/setupGetInstanceId.js +1 -1
  589. package/lib/tools/uniqueId.js +3 -3
  590. package/lib/tools/wrapComponent.js +14 -13
  591. package/package.json +9 -9
@@ -9,49 +9,51 @@
9
9
  * @param {object} config Plugin configuration.
10
10
  * @returns {Plugin} A Flatpickr plugin to put adjust the position of calendar dropdown.
11
11
  */
12
- var carbonFlatpickrAppendToPlugin = (function (config) {
13
- return function (fp) {
14
- /**
15
- * Adjusts the floating menu position after Flatpicker sets it.
16
- */
17
- var handlePreCalendarPosition = function handlePreCalendarPosition() {
18
- Promise.resolve().then(function () {
19
- var calendarContainer = fp.calendarContainer,
20
- fpConfig = fp.config,
21
- positionElement = fp._positionElement;
22
- var appendTo = fpConfig.appendTo;
23
-
24
- var _appendTo$getBounding = appendTo.getBoundingClientRect(),
25
- containerLeft = _appendTo$getBounding.left,
26
- containerTop = _appendTo$getBounding.top;
27
-
28
- var _positionElement$getB = positionElement.getBoundingClientRect(),
29
- refLeft = _positionElement$getB.left,
30
- refBottom = _positionElement$getB.bottom;
31
-
32
- if ((appendTo !== appendTo.ownerDocument.body || containerLeft !== 0 || containerTop !== 0) && appendTo.ownerDocument.defaultView.getComputedStyle(appendTo).getPropertyValue('position') === 'static') {
33
- throw new Error('Floating menu container must not have `position:static`.');
34
- } // `2` for negative margin on calendar dropdown
35
-
36
-
37
- calendarContainer.style.top = "".concat(refBottom - containerTop + 2, "px");
38
- calendarContainer.style.left = "".concat(refLeft - containerLeft, "px");
39
- });
40
- };
41
- /**
42
- * Registers this Flatpickr plugin.
43
- */
44
-
45
-
46
- var register = function register() {
47
- fp.loadedPlugins.push('carbonFlatpickrAppendToPlugin');
48
- };
49
-
50
- return {
51
- appendTo: config.appendTo,
52
- onReady: register,
53
- onPreCalendarPosition: handlePreCalendarPosition
54
- };
12
+ var carbonFlatpickrAppendToPlugin = (config => fp => {
13
+ /**
14
+ * Adjusts the floating menu position after Flatpicker sets it.
15
+ */
16
+ const handlePreCalendarPosition = () => {
17
+ Promise.resolve().then(() => {
18
+ const {
19
+ calendarContainer,
20
+ config: fpConfig,
21
+ _positionElement: positionElement
22
+ } = fp;
23
+ const {
24
+ appendTo
25
+ } = fpConfig;
26
+ const {
27
+ left: containerLeft,
28
+ top: containerTop
29
+ } = appendTo.getBoundingClientRect();
30
+ const {
31
+ left: refLeft,
32
+ bottom: refBottom
33
+ } = positionElement.getBoundingClientRect();
34
+
35
+ if ((appendTo !== appendTo.ownerDocument.body || containerLeft !== 0 || containerTop !== 0) && appendTo.ownerDocument.defaultView.getComputedStyle(appendTo).getPropertyValue('position') === 'static') {
36
+ throw new Error('Floating menu container must not have `position:static`.');
37
+ } // `2` for negative margin on calendar dropdown
38
+
39
+
40
+ calendarContainer.style.top = `${refBottom - containerTop + 2}px`;
41
+ calendarContainer.style.left = `${refLeft - containerLeft}px`;
42
+ });
43
+ };
44
+ /**
45
+ * Registers this Flatpickr plugin.
46
+ */
47
+
48
+
49
+ const register = () => {
50
+ fp.loadedPlugins.push('carbonFlatpickrAppendToPlugin');
51
+ };
52
+
53
+ return {
54
+ appendTo: config.appendTo,
55
+ onReady: register,
56
+ onPreCalendarPosition: handlePreCalendarPosition
55
57
  };
56
58
  });
57
59
 
@@ -13,130 +13,140 @@ import { Enter, ArrowLeft, ArrowRight, ArrowDown } from '../../../internal/keybo
13
13
  * @returns {Plugin} A Flatpickr plugin to fix Flatpickr's behavior of certain events.
14
14
  */
15
15
 
16
- var carbonFlatpickrFixEventsPlugin = (function (config) {
17
- return function (fp) {
18
- /**
19
- * Handles `keydown` event.
20
- */
21
- var handleKeydown = function handleKeydown(event) {
22
- var inputFrom = config.inputFrom,
23
- inputTo = config.inputTo;
24
- var target = event.target;
25
-
26
- if (inputFrom === target || inputTo === target) {
27
- if (match(event, Enter)) {
28
- // Makes sure the hitting enter key picks up pending values of both `<input>`
29
- // Workaround for: https://github.com/flatpickr/flatpickr/issues/1942
30
- fp.setDate([inputFrom.value, inputTo && inputTo.value], true, fp.config.dateFormat);
31
- event.stopPropagation();
32
- } else if (match(event, ArrowLeft) || match(event, ArrowRight)) {
33
- // Prevents Flatpickr code from canceling the event if left/right arrow keys are hit on `<input>`,
34
- // so user can move the keyboard cursor for editing dates
35
- // Workaround for: https://github.com/flatpickr/flatpickr/issues/1943
36
- event.stopPropagation();
37
- } else if (match(event, ArrowDown)) {
38
- event.preventDefault();
39
- fp.open();
40
- }
16
+ var carbonFlatpickrFixEventsPlugin = (config => fp => {
17
+ /**
18
+ * Handles `keydown` event.
19
+ */
20
+ const handleKeydown = event => {
21
+ const {
22
+ inputFrom,
23
+ inputTo
24
+ } = config;
25
+ const {
26
+ target
27
+ } = event;
28
+
29
+ if (inputFrom === target || inputTo === target) {
30
+ if (match(event, Enter)) {
31
+ // Makes sure the hitting enter key picks up pending values of both `<input>`
32
+ // Workaround for: https://github.com/flatpickr/flatpickr/issues/1942
33
+ fp.setDate([inputFrom.value, inputTo && inputTo.value], true, fp.config.dateFormat);
34
+ event.stopPropagation();
35
+ } else if (match(event, ArrowLeft) || match(event, ArrowRight)) {
36
+ // Prevents Flatpickr code from canceling the event if left/right arrow keys are hit on `<input>`,
37
+ // so user can move the keyboard cursor for editing dates
38
+ // Workaround for: https://github.com/flatpickr/flatpickr/issues/1943
39
+ event.stopPropagation();
40
+ } else if (match(event, ArrowDown)) {
41
+ event.preventDefault();
42
+ fp.open();
41
43
  }
42
- };
43
- /**
44
- * Handles `blur` event.
45
- *
46
- * For whatever reason, manual changes within the `to` input do not update the
47
- * calendar on blur. If a manual change is made within the input, this block will
48
- * set the date again, triggering the calendar to update.
49
- */
50
-
51
-
52
- var handleBlur = function handleBlur(event) {
53
- var inputFrom = config.inputFrom,
54
- inputTo = config.inputTo,
55
- lastStartValue = config.lastStartValue;
56
- var target = event.target; // Only fall into this logic if the event is on the `to` input and there is a
57
- // `to` date selected
58
-
59
- if (inputTo === target && fp.selectedDates[1]) {
60
- // Using getTime() enables the ability to more readily compare the date currently
61
- // selected in the calendar and the date currently in the value of the input
62
- var selectedToDate = new Date(fp.selectedDates[1]).setHours(0, 0, 0, 0);
63
- var currentValueToDate = new Date(inputTo.value).setHours(0, 0, 0, 0); // The date should only be set if both dates are valid dates, and they don't match.
64
- // When they don't match, this indiciates that the date selected in the calendar is stale,
65
- // and the current value in the input should be set for the calendar to update.
66
-
67
- if (selectedToDate && currentValueToDate && selectedToDate !== currentValueToDate) {
68
- // Update the calendar with the value of the `to` date input
69
- fp.setDate([inputFrom.value, inputTo && inputTo.value], true, fp.config.dateFormat);
70
- }
71
- } // save end date in calendar inmediately after it's been written down
44
+ }
45
+ };
46
+ /**
47
+ * Handles `blur` event.
48
+ *
49
+ * For whatever reason, manual changes within the `to` input do not update the
50
+ * calendar on blur. If a manual change is made within the input, this block will
51
+ * set the date again, triggering the calendar to update.
52
+ */
53
+
54
+
55
+ const handleBlur = event => {
56
+ const {
57
+ inputFrom,
58
+ inputTo,
59
+ lastStartValue
60
+ } = config;
61
+ const {
62
+ target
63
+ } = event; // Only fall into this logic if the event is on the `to` input and there is a
64
+ // `to` date selected
65
+
66
+ if (inputTo === target && fp.selectedDates[1]) {
67
+ // Using getTime() enables the ability to more readily compare the date currently
68
+ // selected in the calendar and the date currently in the value of the input
69
+ const selectedToDate = new Date(fp.selectedDates[1]).setHours(0, 0, 0, 0);
70
+ const currentValueToDate = new Date(inputTo.value).setHours(0, 0, 0, 0); // The date should only be set if both dates are valid dates, and they don't match.
71
+ // When they don't match, this indiciates that the date selected in the calendar is stale,
72
+ // and the current value in the input should be set for the calendar to update.
73
+
74
+ if (selectedToDate && currentValueToDate && selectedToDate !== currentValueToDate) {
75
+ // Update the calendar with the value of the `to` date input
76
+ fp.setDate([inputFrom.value, inputTo && inputTo.value], true, fp.config.dateFormat);
77
+ }
78
+ } // save end date in calendar inmediately after it's been written down
72
79
 
73
80
 
74
- if (inputTo === target && fp.selectedDates.length === 1 && inputTo.value) {
75
- var currentEndDate = new Date(inputTo.value);
81
+ if (inputTo === target && fp.selectedDates.length === 1 && inputTo.value) {
82
+ let currentEndDate = new Date(inputTo.value);
76
83
 
77
- if (currentEndDate.toString() !== 'Invalid Date') {
78
- fp.setDate([inputFrom.value, inputTo.value], true, fp.config.dateFormat);
79
- }
80
- } // overriding the flatpickr bug where the startDate gets deleted on blur
84
+ if (currentEndDate.toString() !== 'Invalid Date') {
85
+ fp.setDate([inputFrom.value, inputTo.value], true, fp.config.dateFormat);
86
+ }
87
+ } // overriding the flatpickr bug where the startDate gets deleted on blur
81
88
 
82
89
 
83
- if (inputTo === target && !inputFrom.value && lastStartValue.current) {
84
- var currentStartDate = new Date(lastStartValue.current);
90
+ if (inputTo === target && !inputFrom.value && lastStartValue.current) {
91
+ let currentStartDate = new Date(lastStartValue.current);
85
92
 
86
- if (currentStartDate.toString() !== 'Invalid Date') {
87
- inputFrom.value = lastStartValue.current;
93
+ if (currentStartDate.toString() !== 'Invalid Date') {
94
+ inputFrom.value = lastStartValue.current;
88
95
 
89
- if (inputTo.value) {
90
- fp.setDate([inputFrom.value, inputTo.value], true, fp.config.dateFormat);
91
- }
96
+ if (inputTo.value) {
97
+ fp.setDate([inputFrom.value, inputTo.value], true, fp.config.dateFormat);
92
98
  }
93
99
  }
94
- };
95
- /**
96
- * Releases event listeners used in this Flatpickr plugin.
97
- */
98
-
99
-
100
- var release = function release() {
101
- var inputFrom = config.inputFrom,
102
- inputTo = config.inputTo;
103
-
104
- if (inputTo) {
105
- inputTo.removeEventListener('keydown', handleKeydown, true);
106
- inputTo.removeEventListener('blur', handleBlur, true);
107
- }
100
+ }
101
+ };
102
+ /**
103
+ * Releases event listeners used in this Flatpickr plugin.
104
+ */
108
105
 
109
- inputFrom.removeEventListener('keydown', handleKeydown, true);
110
- };
111
- /**
112
- * Sets up event listeners used for this Flatpickr plugin.
113
- */
114
106
 
107
+ const release = () => {
108
+ const {
109
+ inputFrom,
110
+ inputTo
111
+ } = config;
115
112
 
116
- var init = function init() {
117
- release();
118
- var inputFrom = config.inputFrom,
119
- inputTo = config.inputTo;
120
- inputFrom.addEventListener('keydown', handleKeydown, true);
113
+ if (inputTo) {
114
+ inputTo.removeEventListener('keydown', handleKeydown, true);
115
+ inputTo.removeEventListener('blur', handleBlur, true);
116
+ }
121
117
 
122
- if (inputTo) {
123
- inputTo.addEventListener('keydown', handleKeydown, true);
124
- inputTo.addEventListener('blur', handleBlur, true);
125
- }
126
- };
127
- /**
128
- * Registers this Flatpickr plugin.
129
- */
118
+ inputFrom.removeEventListener('keydown', handleKeydown, true);
119
+ };
120
+ /**
121
+ * Sets up event listeners used for this Flatpickr plugin.
122
+ */
123
+
124
+
125
+ const init = () => {
126
+ release();
127
+ const {
128
+ inputFrom,
129
+ inputTo
130
+ } = config;
131
+ inputFrom.addEventListener('keydown', handleKeydown, true);
132
+
133
+ if (inputTo) {
134
+ inputTo.addEventListener('keydown', handleKeydown, true);
135
+ inputTo.addEventListener('blur', handleBlur, true);
136
+ }
137
+ };
138
+ /**
139
+ * Registers this Flatpickr plugin.
140
+ */
130
141
 
131
142
 
132
- var register = function register() {
133
- fp.loadedPlugins.push('carbonFlatpickrFixEventsPlugin');
134
- };
143
+ const register = () => {
144
+ fp.loadedPlugins.push('carbonFlatpickrFixEventsPlugin');
145
+ };
135
146
 
136
- return {
137
- onReady: [register, init],
138
- onDestroy: [release]
139
- };
147
+ return {
148
+ onReady: [register, init],
149
+ onDestroy: [release]
140
150
  };
141
151
  });
142
152
 
@@ -15,22 +15,26 @@ import rangePlugin from 'flatpickr/dist/plugins/rangePlugin';
15
15
  * * A logic to ensure `fp.setDate()` call won't end up with "startDate to endDate" set to the first `<input>`
16
16
  */
17
17
 
18
- var carbonFlatpickrRangePlugin = (function (config) {
19
- var factory = rangePlugin(Object.assign({
18
+ var carbonFlatpickrRangePlugin = (config => {
19
+ const factory = rangePlugin(Object.assign({
20
20
  position: 'left'
21
21
  }, config));
22
- return function (fp) {
23
- var origSetDate = fp.setDate;
22
+ return fp => {
23
+ const origSetDate = fp.setDate;
24
24
 
25
- var init = function init() {
25
+ const init = () => {
26
26
  fp.setDate = function setDate(dates, triggerChange, format) {
27
27
  origSetDate.call(this, dates, triggerChange, format); // If `triggerChange` is `true`, `onValueUpdate` Flatpickr event is fired
28
28
  // where Flatpickr's range plugin takes care of fixing the first `<input>`
29
29
 
30
30
  if (!triggerChange) {
31
- var inputFrom = fp._input;
32
- var inputTo = config.input;
33
- [inputFrom, inputTo].forEach(function (input, i) {
31
+ const {
32
+ _input: inputFrom
33
+ } = fp;
34
+ const {
35
+ input: inputTo
36
+ } = config;
37
+ [inputFrom, inputTo].forEach((input, i) => {
34
38
  if (input) {
35
39
  input.value = !dates[i] ? '' : fp.formatDate(new Date(dates[i]), fp.config.dateFormat);
36
40
  }
@@ -39,11 +43,15 @@ var carbonFlatpickrRangePlugin = (function (config) {
39
43
  };
40
44
  };
41
45
 
42
- var origRangePlugin = factory(fp);
43
- var origOnReady = origRangePlugin.onReady;
46
+ const origRangePlugin = factory(fp);
47
+ const {
48
+ onReady: origOnReady
49
+ } = origRangePlugin;
44
50
  return Object.assign(origRangePlugin, {
45
51
  onReady: [init, origOnReady],
46
- onPreCalendarPosition: function onPreCalendarPosition() {}
52
+
53
+ onPreCalendarPosition() {}
54
+
47
55
  });
48
56
  };
49
57
  });
@@ -5,7 +5,6 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { objectWithoutProperties as _objectWithoutProperties, defineProperty as _defineProperty, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
8
  import { WarningFilled, WarningAltFilled, Calendar } from '@carbon/icons-react';
10
9
  import cx from 'classnames';
11
10
  import PropTypes from 'prop-types';
@@ -15,76 +14,84 @@ import '../FluidForm/FluidForm.js';
15
14
  import { FormContext } from '../FluidForm/FormContext.js';
16
15
  import setupGetInstanceId from '../../tools/setupGetInstanceId.js';
17
16
 
18
- var _excluded = ["datePickerType", "disabled", "helperText", "hideLabel", "id", "invalid", "invalidText", "labelText", "onClick", "onChange", "pattern", "placeholder", "size", "type", "warn", "warnText"];
19
- var getInstanceId = setupGetInstanceId();
20
- var DatePickerInput = /*#__PURE__*/React__default.forwardRef(function DatePickerInput(props, ref) {
21
- var _cx, _cx2, _cx4, _cx5;
22
-
23
- var datePickerType = props.datePickerType,
24
- _props$disabled = props.disabled,
25
- disabled = _props$disabled === void 0 ? false : _props$disabled,
26
- helperText = props.helperText,
27
- hideLabel = props.hideLabel,
28
- id = props.id,
29
- _props$invalid = props.invalid,
30
- invalid = _props$invalid === void 0 ? false : _props$invalid,
31
- invalidText = props.invalidText,
32
- labelText = props.labelText,
33
- _props$onClick = props.onClick,
34
- _onClick = _props$onClick === void 0 ? function () {} : _props$onClick,
35
- _props$onChange = props.onChange,
36
- _onChange = _props$onChange === void 0 ? function () {} : _props$onChange,
37
- _props$pattern = props.pattern,
38
- pattern = _props$pattern === void 0 ? '\\d{1,2}\\/\\d{1,2}\\/\\d{4}' : _props$pattern,
39
- placeholder = props.placeholder,
40
- _props$size = props.size,
41
- size = _props$size === void 0 ? 'md' : _props$size,
42
- _props$type = props.type,
43
- type = _props$type === void 0 ? 'text' : _props$type,
44
- warn = props.warn,
45
- warnText = props.warnText,
46
- rest = _objectWithoutProperties(props, _excluded);
47
-
48
- var prefix = usePrefix();
49
-
50
- var _useContext = useContext(FormContext),
51
- isFluid = _useContext.isFluid;
52
-
53
- var datePickerInputInstanceId = getInstanceId();
54
- var datePickerInputProps = {
55
- id: id,
56
- onChange: function onChange(event) {
17
+ const getInstanceId = setupGetInstanceId();
18
+ const DatePickerInput = /*#__PURE__*/React__default.forwardRef(function DatePickerInput(props, ref) {
19
+ const {
20
+ datePickerType,
21
+ disabled = false,
22
+ helperText,
23
+ hideLabel,
24
+ id,
25
+ invalid = false,
26
+ invalidText,
27
+ labelText,
28
+ onClick = () => {},
29
+ onChange = () => {},
30
+ pattern = '\\d{1,2}\\/\\d{1,2}\\/\\d{4}',
31
+ placeholder,
32
+ size = 'md',
33
+ type = 'text',
34
+ warn,
35
+ warnText,
36
+ ...rest
37
+ } = props;
38
+ const prefix = usePrefix();
39
+ const {
40
+ isFluid
41
+ } = useContext(FormContext);
42
+ const datePickerInputInstanceId = getInstanceId();
43
+ const datePickerInputProps = {
44
+ id,
45
+ onChange: event => {
57
46
  if (!disabled) {
58
- _onChange(event);
47
+ onChange(event);
59
48
  }
60
49
  },
61
- onClick: function onClick(event) {
50
+ onClick: event => {
62
51
  if (!disabled) {
63
- _onClick(event);
52
+ onClick(event);
64
53
  }
65
54
  },
66
- pattern: pattern,
67
- placeholder: placeholder,
68
- type: type
55
+ pattern,
56
+ placeholder,
57
+ type
69
58
  };
70
- var wrapperClasses = cx("".concat(prefix, "--date-picker-input__wrapper"), (_cx = {}, _defineProperty(_cx, "".concat(prefix, "--date-picker-input__wrapper--invalid"), invalid), _defineProperty(_cx, "".concat(prefix, "--date-picker-input__wrapper--warn"), warn), _cx));
71
- var labelClasses = cx("".concat(prefix, "--label"), (_cx2 = {}, _defineProperty(_cx2, "".concat(prefix, "--visually-hidden"), hideLabel), _defineProperty(_cx2, "".concat(prefix, "--label--disabled"), disabled), _defineProperty(_cx2, "".concat(prefix, "--label--readonly"), rest.readOnly), _cx2));
72
- var helperTextClasses = cx("".concat(prefix, "--form__helper-text"), _defineProperty({}, "".concat(prefix, "--form__helper-text--disabled"), disabled));
73
- var inputClasses = cx("".concat(prefix, "--date-picker__input"), (_cx4 = {}, _defineProperty(_cx4, "".concat(prefix, "--date-picker__input--").concat(size), size), _defineProperty(_cx4, "".concat(prefix, "--date-picker__input--invalid"), invalid), _defineProperty(_cx4, "".concat(prefix, "--date-picker__input--warn"), warn), _cx4));
74
- var containerClasses = cx("".concat(prefix, "--date-picker-container"), (_cx5 = {}, _defineProperty(_cx5, "".concat(prefix, "--date-picker--nolabel"), !labelText), _defineProperty(_cx5, "".concat(prefix, "--date-picker--fluid--invalid"), isFluid && invalid), _defineProperty(_cx5, "".concat(prefix, "--date-picker--fluid--warn"), isFluid && warn), _cx5));
75
- var datePickerInputHelperId = !helperText ? undefined : "detepicker-input-helper-text-".concat(datePickerInputInstanceId);
76
-
77
- var inputProps = _objectSpread2(_objectSpread2(_objectSpread2({}, rest), datePickerInputProps), {}, _defineProperty({
59
+ const wrapperClasses = cx(`${prefix}--date-picker-input__wrapper`, {
60
+ [`${prefix}--date-picker-input__wrapper--invalid`]: invalid,
61
+ [`${prefix}--date-picker-input__wrapper--warn`]: warn
62
+ });
63
+ const labelClasses = cx(`${prefix}--label`, {
64
+ [`${prefix}--visually-hidden`]: hideLabel,
65
+ [`${prefix}--label--disabled`]: disabled,
66
+ [`${prefix}--label--readonly`]: rest.readOnly
67
+ });
68
+ const helperTextClasses = cx(`${prefix}--form__helper-text`, {
69
+ [`${prefix}--form__helper-text--disabled`]: disabled
70
+ });
71
+ const inputClasses = cx(`${prefix}--date-picker__input`, {
72
+ [`${prefix}--date-picker__input--${size}`]: size,
73
+ [`${prefix}--date-picker__input--invalid`]: invalid,
74
+ [`${prefix}--date-picker__input--warn`]: warn
75
+ });
76
+ const containerClasses = cx(`${prefix}--date-picker-container`, {
77
+ [`${prefix}--date-picker--nolabel`]: !labelText,
78
+ [`${prefix}--date-picker--fluid--invalid`]: isFluid && invalid,
79
+ [`${prefix}--date-picker--fluid--warn`]: isFluid && warn
80
+ });
81
+ const datePickerInputHelperId = !helperText ? undefined : `detepicker-input-helper-text-${datePickerInputInstanceId}`;
82
+ const inputProps = { ...rest,
83
+ ...datePickerInputProps,
78
84
  className: inputClasses,
79
- disabled: disabled,
80
- ref: ref
81
- }, 'aria-describedby', helperText ? datePickerInputHelperId : undefined));
85
+ disabled,
86
+ ref,
87
+ ['aria-describedby']: helperText ? datePickerInputHelperId : undefined
88
+ };
82
89
 
83
90
  if (invalid) {
84
91
  inputProps['data-invalid'] = true;
85
92
  }
86
93
 
87
- var input = /*#__PURE__*/React__default.createElement("input", inputProps);
94
+ const input = /*#__PURE__*/React__default.createElement("input", inputProps);
88
95
  return /*#__PURE__*/React__default.createElement("div", {
89
96
  className: containerClasses
90
97
  }, labelText && /*#__PURE__*/React__default.createElement("label", {
@@ -99,13 +106,13 @@ var DatePickerInput = /*#__PURE__*/React__default.forwardRef(function DatePicker
99
106
  invalid: invalid,
100
107
  warn: warn
101
108
  })), invalid && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isFluid && /*#__PURE__*/React__default.createElement("hr", {
102
- className: "".concat(prefix, "--date-picker__divider")
109
+ className: `${prefix}--date-picker__divider`
103
110
  }), /*#__PURE__*/React__default.createElement("div", {
104
- className: "".concat(prefix, "--form-requirement")
111
+ className: `${prefix}--form-requirement`
105
112
  }, invalidText)), warn && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isFluid && /*#__PURE__*/React__default.createElement("hr", {
106
- className: "".concat(prefix, "--date-picker__divider")
113
+ className: `${prefix}--date-picker__divider`
107
114
  }), /*#__PURE__*/React__default.createElement("div", {
108
- className: "".concat(prefix, "--form-requirement")
115
+ className: `${prefix}--form-requirement`
109
116
  }, warnText)), helperText && /*#__PURE__*/React__default.createElement("div", {
110
117
  id: datePickerInputHelperId,
111
118
  className: helperTextClasses
@@ -171,7 +178,7 @@ DatePickerInput.propTypes = {
171
178
  /**
172
179
  * Provide a regular expression that the input value must match
173
180
  */
174
- pattern: function pattern(props, propName, componentName) {
181
+ pattern: (props, propName, componentName) => {
175
182
  if (props[propName] === undefined) {
176
183
  return;
177
184
  }
@@ -179,7 +186,7 @@ DatePickerInput.propTypes = {
179
186
  try {
180
187
  new RegExp(props[propName]);
181
188
  } catch (e) {
182
- return new Error("Invalid value of prop '".concat(propName, "' supplied to '").concat(componentName, "', it should be a valid regular expression"));
189
+ return new Error(`Invalid value of prop '${propName}' supplied to '${componentName}', it should be a valid regular expression`);
183
190
  }
184
191
  },
185
192
 
@@ -215,13 +222,15 @@ DatePickerInput.propTypes = {
215
222
  };
216
223
 
217
224
  function DatePickerIcon(_ref) {
218
- var datePickerType = _ref.datePickerType,
219
- invalid = _ref.invalid,
220
- warn = _ref.warn;
221
- var prefix = usePrefix();
222
-
223
- var _useContext2 = useContext(FormContext),
224
- isFluid = _useContext2.isFluid;
225
+ let {
226
+ datePickerType,
227
+ invalid,
228
+ warn
229
+ } = _ref;
230
+ const prefix = usePrefix();
231
+ const {
232
+ isFluid
233
+ } = useContext(FormContext);
225
234
 
226
235
  if (datePickerType === 'simple' && !invalid && !warn) {
227
236
  if (!isFluid) {
@@ -231,18 +240,18 @@ function DatePickerIcon(_ref) {
231
240
 
232
241
  if (invalid) {
233
242
  return /*#__PURE__*/React__default.createElement(WarningFilled, {
234
- className: "".concat(prefix, "--date-picker__icon ").concat(prefix, "--date-picker__icon--invalid")
243
+ className: `${prefix}--date-picker__icon ${prefix}--date-picker__icon--invalid`
235
244
  });
236
245
  }
237
246
 
238
247
  if (!invalid && warn) {
239
248
  return /*#__PURE__*/React__default.createElement(WarningAltFilled, {
240
- className: "".concat(prefix, "--date-picker__icon ").concat(prefix, "--date-picker__icon--warn")
249
+ className: `${prefix}--date-picker__icon ${prefix}--date-picker__icon--warn`
241
250
  });
242
251
  }
243
252
 
244
253
  return /*#__PURE__*/React__default.createElement(Calendar, {
245
- className: "".concat(prefix, "--date-picker__icon"),
254
+ className: `${prefix}--date-picker__icon`,
246
255
  role: "img",
247
256
  "aria-hidden": "true"
248
257
  });