@carbon/react 1.102.0 → 1.103.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 (153) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +1011 -1011
  2. package/es/components/Breadcrumb/BreadcrumbItem.js +1 -1
  3. package/es/components/Button/Button.Skeleton.js +2 -1
  4. package/es/components/Button/Button.d.ts +4 -4
  5. package/es/components/Button/Button.js +4 -4
  6. package/es/components/Button/index.js +1 -1
  7. package/es/components/ButtonSet/ButtonSet.js +1 -1
  8. package/es/components/Checkbox/index.js +1 -1
  9. package/es/components/ComboBox/ComboBox.js +2 -2
  10. package/es/components/ComposedModal/ComposedModal.js +0 -3
  11. package/es/components/ComposedModal/ComposedModalPresence.d.ts +9 -1
  12. package/es/components/ComposedModal/ComposedModalPresence.js +14 -1
  13. package/es/components/ComposedModal/index.d.ts +1 -1
  14. package/es/components/ContainedList/index.js +1 -1
  15. package/es/components/DataTable/TableHeader.js +1 -1
  16. package/es/components/DataTable/TableRow.js +1 -1
  17. package/es/components/DataTable/TableToolbarMenu.js +1 -1
  18. package/es/components/DatePicker/DatePicker.Skeleton.d.ts +8 -5
  19. package/es/components/DatePicker/DatePicker.Skeleton.js +2 -2
  20. package/es/components/DatePicker/DatePicker.d.ts +4 -2
  21. package/es/components/DatePicker/DatePicker.js +9 -6
  22. package/es/components/DatePicker/index.js +1 -1
  23. package/es/components/DatePicker/plugins/rangePlugin.d.ts +1 -1
  24. package/es/components/DatePicker/plugins/rangePlugin.js +2 -1
  25. package/es/components/{UIShell/_utils.d.ts → DatePicker/utils.d.ts} +2 -2
  26. package/es/components/{UIShell/_utils.js → DatePicker/utils.js} +2 -2
  27. package/es/components/DatePickerInput/DatePickerInput.js +1 -1
  28. package/es/components/Dialog/Dialog.js +1 -1
  29. package/es/components/Dropdown/index.js +1 -1
  30. package/es/components/ExpandableSearch/ExpandableSearch.js +1 -1
  31. package/es/components/FeatureFlags/index.d.ts +8 -18
  32. package/es/components/FeatureFlags/index.js +23 -103
  33. package/es/components/FileUploader/FileUploader.Skeleton.js +1 -1
  34. package/es/components/FileUploader/FileUploaderButton.d.ts +1 -1
  35. package/es/components/FileUploader/FileUploaderButton.js +3 -7
  36. package/es/components/Icon/Icon.Skeleton.js +1 -1
  37. package/es/components/IconIndicator/index.js +1 -1
  38. package/es/components/Menu/MenuItem.js +1 -1
  39. package/es/components/Modal/ModalPresence.d.ts +9 -1
  40. package/es/components/Modal/ModalPresence.js +14 -1
  41. package/es/components/Modal/index.d.ts +2 -2
  42. package/es/components/MultiSelect/MultiSelect.js +9 -10
  43. package/es/components/Notification/Notification.js +1 -1
  44. package/es/components/NumberInput/NumberInput.js +15 -13
  45. package/es/components/OverflowMenu/OverflowMenu.d.ts +1 -1
  46. package/es/components/OverflowMenu/OverflowMenu.js +3 -5
  47. package/es/components/OverflowMenuV2/index.js +1 -1
  48. package/es/components/PageHeader/PageHeader.js +2 -23
  49. package/es/components/Pagination/Pagination.Skeleton.js +1 -1
  50. package/es/components/Pagination/Pagination.d.ts +4 -0
  51. package/es/components/Pagination/Pagination.js +6 -1
  52. package/es/components/Pagination/experimental/Pagination.js +12 -1
  53. package/es/components/Popover/index.js +1 -1
  54. package/es/components/RadioButton/RadioButton.Skeleton.js +1 -1
  55. package/es/components/Search/index.js +1 -1
  56. package/es/components/Select/index.js +1 -1
  57. package/es/components/ShapeIndicator/index.js +1 -1
  58. package/es/components/Slider/Slider.js +230 -249
  59. package/es/components/Slider/SliderHandles.js +65 -53
  60. package/es/components/Switch/IconSwitch.js +1 -1
  61. package/es/components/Tabs/Tabs.js +10 -12
  62. package/es/components/Tag/Tag.Skeleton.js +1 -1
  63. package/es/components/TextArea/TextArea.js +1 -1
  64. package/es/components/TextArea/index.js +1 -1
  65. package/es/components/TextInput/index.js +1 -1
  66. package/es/components/Tile/Tile.d.ts +2 -2
  67. package/es/components/Tile/Tile.js +7 -2
  68. package/es/components/Toggle/Toggle.Skeleton.js +1 -1
  69. package/es/components/Toggletip/index.js +1 -1
  70. package/es/components/UIShell/HeaderMenu.js +1 -1
  71. package/es/components/UIShell/SideNav.d.ts +1 -4
  72. package/es/components/UIShell/SideNav.js +10 -25
  73. package/es/components/UIShell/SideNavContext.d.ts +17 -0
  74. package/es/components/UIShell/SideNavContext.js +24 -0
  75. package/es/components/UIShell/SideNavItems.d.ts +1 -1
  76. package/es/components/UIShell/SideNavItems.js +12 -16
  77. package/es/components/UIShell/SideNavLink.js +8 -4
  78. package/es/components/UIShell/SideNavMenu.js +7 -5
  79. package/es/index.js +30 -30
  80. package/es/internal/useNoInteractiveChildren.js +25 -30
  81. package/es/internal/usePresence.d.ts +1 -1
  82. package/es/internal/usePresence.js +14 -17
  83. package/lib/components/Button/Button.Skeleton.js +2 -1
  84. package/lib/components/Button/Button.d.ts +4 -4
  85. package/lib/components/Button/Button.js +4 -4
  86. package/lib/components/Button/index.js +1 -1
  87. package/lib/components/ButtonSet/ButtonSet.js +1 -1
  88. package/lib/components/Checkbox/index.js +1 -1
  89. package/lib/components/ComboBox/ComboBox.js +2 -2
  90. package/lib/components/ComposedModal/ComposedModal.js +0 -3
  91. package/lib/components/ComposedModal/ComposedModalPresence.d.ts +9 -1
  92. package/lib/components/ComposedModal/ComposedModalPresence.js +14 -0
  93. package/lib/components/ComposedModal/index.d.ts +1 -1
  94. package/lib/components/ContainedList/index.js +0 -3
  95. package/lib/components/DataTable/TableToolbarMenu.js +1 -1
  96. package/lib/components/DatePicker/DatePicker.Skeleton.d.ts +8 -5
  97. package/lib/components/DatePicker/DatePicker.Skeleton.js +2 -2
  98. package/lib/components/DatePicker/DatePicker.d.ts +4 -2
  99. package/lib/components/DatePicker/DatePicker.js +9 -6
  100. package/lib/components/DatePicker/index.js +1 -1
  101. package/lib/components/DatePicker/plugins/rangePlugin.d.ts +1 -1
  102. package/lib/components/DatePicker/plugins/rangePlugin.js +2 -1
  103. package/lib/components/{UIShell/_utils.d.ts → DatePicker/utils.d.ts} +2 -2
  104. package/lib/components/{UIShell/_utils.js → DatePicker/utils.js} +2 -2
  105. package/lib/components/Dropdown/index.js +1 -1
  106. package/lib/components/FeatureFlags/index.d.ts +8 -18
  107. package/lib/components/FeatureFlags/index.js +21 -102
  108. package/lib/components/FileUploader/FileUploader.Skeleton.js +1 -1
  109. package/lib/components/FileUploader/FileUploaderButton.d.ts +1 -1
  110. package/lib/components/FileUploader/FileUploaderButton.js +2 -6
  111. package/lib/components/Icon/Icon.Skeleton.js +0 -3
  112. package/lib/components/IconIndicator/index.js +0 -3
  113. package/lib/components/Modal/ModalPresence.d.ts +9 -1
  114. package/lib/components/Modal/ModalPresence.js +14 -0
  115. package/lib/components/Modal/index.d.ts +2 -2
  116. package/lib/components/MultiSelect/MultiSelect.js +8 -9
  117. package/lib/components/NumberInput/NumberInput.js +14 -12
  118. package/lib/components/OverflowMenu/OverflowMenu.d.ts +1 -1
  119. package/lib/components/OverflowMenu/OverflowMenu.js +2 -7
  120. package/lib/components/OverflowMenuV2/index.js +1 -1
  121. package/lib/components/PageHeader/PageHeader.js +2 -23
  122. package/lib/components/Pagination/Pagination.Skeleton.js +0 -3
  123. package/lib/components/Pagination/Pagination.d.ts +4 -0
  124. package/lib/components/Pagination/Pagination.js +6 -1
  125. package/lib/components/Pagination/experimental/Pagination.js +12 -1
  126. package/lib/components/RadioButton/RadioButton.Skeleton.js +0 -3
  127. package/lib/components/Search/index.js +1 -1
  128. package/lib/components/Select/index.js +1 -1
  129. package/lib/components/ShapeIndicator/index.js +0 -3
  130. package/lib/components/Slider/Slider.js +229 -248
  131. package/lib/components/Slider/SliderHandles.js +64 -52
  132. package/lib/components/Tabs/Tabs.js +9 -11
  133. package/lib/components/Tag/Tag.Skeleton.js +0 -3
  134. package/lib/components/TextArea/index.js +1 -1
  135. package/lib/components/TextInput/index.js +1 -1
  136. package/lib/components/Tile/Tile.d.ts +2 -2
  137. package/lib/components/Tile/Tile.js +6 -1
  138. package/lib/components/Toggle/Toggle.Skeleton.js +0 -3
  139. package/lib/components/Toggletip/index.js +0 -3
  140. package/lib/components/UIShell/SideNav.d.ts +1 -4
  141. package/lib/components/UIShell/SideNav.js +8 -24
  142. package/lib/components/UIShell/SideNavContext.d.ts +17 -0
  143. package/lib/components/UIShell/SideNavContext.js +27 -0
  144. package/lib/components/UIShell/SideNavItems.d.ts +1 -1
  145. package/lib/components/UIShell/SideNavItems.js +11 -15
  146. package/lib/components/UIShell/SideNavLink.js +7 -3
  147. package/lib/components/UIShell/SideNavMenu.js +8 -6
  148. package/lib/index.js +102 -100
  149. package/lib/internal/useNoInteractiveChildren.js +25 -30
  150. package/lib/internal/usePresence.d.ts +1 -1
  151. package/lib/internal/usePresence.js +13 -16
  152. package/package.json +5 -5
  153. package/telemetry.yml +2 -1
@@ -12,58 +12,70 @@ var usePrefix = require('../../internal/usePrefix.js');
12
12
  var React = require('react');
13
13
 
14
14
  var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path0, _path1, _path10, _path11, _path12;
15
- const LowerHandle = props => /*#__PURE__*/React.createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React.createElement("svg", _rollupPluginBabelHelpers.extends({
16
- xmlns: "http://www.w3.org/2000/svg",
17
- viewBox: "0 0 16 24",
18
- className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--lower`
19
- }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
20
- d: "M15.08 6.46H16v11.08h-.92zM4.46 17.54c-.25 0-.46-.21-.46-.46V6.92a.465.465 0 0 1 .69-.4l8.77 5.08a.46.46 0 0 1 0 .8l-8.77 5.08c-.07.04-.15.06-.23.06Z"
21
- })), _path2 || (_path2 = /*#__PURE__*/React.createElement("path", {
22
- fill: "none",
23
- d: "M-4 0h24v24H-4z"
24
- }))));
25
- const LowerHandleFocus = props => /*#__PURE__*/React.createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React.createElement("svg", _rollupPluginBabelHelpers.extends({
26
- xmlns: "http://www.w3.org/2000/svg",
27
- viewBox: "0 0 16 24",
28
- className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--lower ${prefix}--slider__thumb-icon--focus`
29
- }, props), _path3 || (_path3 = /*#__PURE__*/React.createElement("path", {
30
- d: "M15.08 6.46H16v11.08h-.92zM4.46 17.54c-.25 0-.46-.21-.46-.46V6.92a.465.465 0 0 1 .69-.4l8.77 5.08a.46.46 0 0 1 0 .8l-8.77 5.08c-.07.04-.15.06-.23.06Z"
31
- })), _path4 || (_path4 = /*#__PURE__*/React.createElement("path", {
32
- fill: "none",
33
- d: "M-4 0h24v24H-4z"
34
- })), _path5 || (_path5 = /*#__PURE__*/React.createElement("path", {
35
- d: "M15.08 0H16v6.46h-.92z"
36
- })), _path6 || (_path6 = /*#__PURE__*/React.createElement("path", {
37
- d: "M0 0h.92v24H0zM15.08 0H16v24h-.92z"
38
- })), _path7 || (_path7 = /*#__PURE__*/React.createElement("path", {
39
- d: "M0 .92V0h16v.92zM0 24v-.92h16V24z"
40
- }))));
41
- const UpperHandle = props => /*#__PURE__*/React.createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React.createElement("svg", _rollupPluginBabelHelpers.extends({
42
- xmlns: "http://www.w3.org/2000/svg",
43
- viewBox: "0 0 16 24",
44
- className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--upper`
45
- }, props), _path8 || (_path8 = /*#__PURE__*/React.createElement("path", {
46
- d: "M0 6.46h.92v11.08H0zM11.54 6.46c.25 0 .46.21.46.46v10.15a.465.465 0 0 1-.69.4L2.54 12.4a.46.46 0 0 1 0-.8l8.77-5.08c.07-.04.15-.06.23-.06Z"
47
- })), _path9 || (_path9 = /*#__PURE__*/React.createElement("path", {
48
- fill: "none",
49
- d: "M-4 0h24v24H-4z"
50
- }))));
51
- const UpperHandleFocus = props => /*#__PURE__*/React.createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React.createElement("svg", _rollupPluginBabelHelpers.extends({
52
- xmlns: "http://www.w3.org/2000/svg",
53
- viewBox: "0 0 16 24",
54
- className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--upper ${prefix}--slider__thumb-icon--focus`
55
- }, props), _path0 || (_path0 = /*#__PURE__*/React.createElement("path", {
56
- d: "M0 6.46h.92v11.08H0zM11.54 6.46c.25 0 .46.21.46.46v10.15a.465.465 0 0 1-.69.4L2.54 12.4a.46.46 0 0 1 0-.8l8.77-5.08c.07-.04.15-.06.23-.06Z"
57
- })), _path1 || (_path1 = /*#__PURE__*/React.createElement("path", {
58
- fill: "none",
59
- d: "M-4 0h24v24H-4z"
60
- })), _path10 || (_path10 = /*#__PURE__*/React.createElement("path", {
61
- d: "M.92 24H0v-6.46h.92z"
62
- })), _path11 || (_path11 = /*#__PURE__*/React.createElement("path", {
63
- d: "M16 24h-.92V0H16zM.92 24H0V0h.92z"
64
- })), _path12 || (_path12 = /*#__PURE__*/React.createElement("path", {
65
- d: "M16 23.08V24H0v-.92zM16 0v.92H0V0z"
66
- }))));
15
+ const LowerHandle = props => {
16
+ const prefix = usePrefix.usePrefix();
17
+ return /*#__PURE__*/React.createElement("svg", _rollupPluginBabelHelpers.extends({
18
+ xmlns: "http://www.w3.org/2000/svg",
19
+ viewBox: "0 0 16 24",
20
+ className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--lower`
21
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
22
+ d: "M15.08 6.46H16v11.08h-.92zM4.46 17.54c-.25 0-.46-.21-.46-.46V6.92a.465.465 0 0 1 .69-.4l8.77 5.08a.46.46 0 0 1 0 .8l-8.77 5.08c-.07.04-.15.06-.23.06Z"
23
+ })), _path2 || (_path2 = /*#__PURE__*/React.createElement("path", {
24
+ fill: "none",
25
+ d: "M-4 0h24v24H-4z"
26
+ })));
27
+ };
28
+ const LowerHandleFocus = props => {
29
+ const prefix = usePrefix.usePrefix();
30
+ return /*#__PURE__*/React.createElement("svg", _rollupPluginBabelHelpers.extends({
31
+ xmlns: "http://www.w3.org/2000/svg",
32
+ viewBox: "0 0 16 24",
33
+ className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--lower ${prefix}--slider__thumb-icon--focus`
34
+ }, props), _path3 || (_path3 = /*#__PURE__*/React.createElement("path", {
35
+ d: "M15.08 6.46H16v11.08h-.92zM4.46 17.54c-.25 0-.46-.21-.46-.46V6.92a.465.465 0 0 1 .69-.4l8.77 5.08a.46.46 0 0 1 0 .8l-8.77 5.08c-.07.04-.15.06-.23.06Z"
36
+ })), _path4 || (_path4 = /*#__PURE__*/React.createElement("path", {
37
+ fill: "none",
38
+ d: "M-4 0h24v24H-4z"
39
+ })), _path5 || (_path5 = /*#__PURE__*/React.createElement("path", {
40
+ d: "M15.08 0H16v6.46h-.92z"
41
+ })), _path6 || (_path6 = /*#__PURE__*/React.createElement("path", {
42
+ d: "M0 0h.92v24H0zM15.08 0H16v24h-.92z"
43
+ })), _path7 || (_path7 = /*#__PURE__*/React.createElement("path", {
44
+ d: "M0 .92V0h16v.92zM0 24v-.92h16V24z"
45
+ })));
46
+ };
47
+ const UpperHandle = props => {
48
+ const prefix = usePrefix.usePrefix();
49
+ return /*#__PURE__*/React.createElement("svg", _rollupPluginBabelHelpers.extends({
50
+ xmlns: "http://www.w3.org/2000/svg",
51
+ viewBox: "0 0 16 24",
52
+ className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--upper`
53
+ }, props), _path8 || (_path8 = /*#__PURE__*/React.createElement("path", {
54
+ d: "M0 6.46h.92v11.08H0zM11.54 6.46c.25 0 .46.21.46.46v10.15a.465.465 0 0 1-.69.4L2.54 12.4a.46.46 0 0 1 0-.8l8.77-5.08c.07-.04.15-.06.23-.06Z"
55
+ })), _path9 || (_path9 = /*#__PURE__*/React.createElement("path", {
56
+ fill: "none",
57
+ d: "M-4 0h24v24H-4z"
58
+ })));
59
+ };
60
+ const UpperHandleFocus = props => {
61
+ const prefix = usePrefix.usePrefix();
62
+ return /*#__PURE__*/React.createElement("svg", _rollupPluginBabelHelpers.extends({
63
+ xmlns: "http://www.w3.org/2000/svg",
64
+ viewBox: "0 0 16 24",
65
+ className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--upper ${prefix}--slider__thumb-icon--focus`
66
+ }, props), _path0 || (_path0 = /*#__PURE__*/React.createElement("path", {
67
+ d: "M0 6.46h.92v11.08H0zM11.54 6.46c.25 0 .46.21.46.46v10.15a.465.465 0 0 1-.69.4L2.54 12.4a.46.46 0 0 1 0-.8l8.77-5.08c.07-.04.15-.06.23-.06Z"
68
+ })), _path1 || (_path1 = /*#__PURE__*/React.createElement("path", {
69
+ fill: "none",
70
+ d: "M-4 0h24v24H-4z"
71
+ })), _path10 || (_path10 = /*#__PURE__*/React.createElement("path", {
72
+ d: "M.92 24H0v-6.46h.92z"
73
+ })), _path11 || (_path11 = /*#__PURE__*/React.createElement("path", {
74
+ d: "M16 24h-.92V0H16zM.92 24H0V0h.92z"
75
+ })), _path12 || (_path12 = /*#__PURE__*/React.createElement("path", {
76
+ d: "M16 23.08V24H0v-.92zM16 0v.92H0V0z"
77
+ })));
78
+ };
67
79
 
68
80
  exports.LowerHandle = LowerHandle;
69
81
  exports.LowerHandleFocus = LowerHandleFocus;
@@ -290,6 +290,9 @@ function TabList({
290
290
  // VISIBLE IF:
291
291
  // SCROLLABLE
292
292
  // AND SCROLL_LEFT > 0
293
+ //
294
+ // TODO: Hoist `buttonWidth` to a module level constant like
295
+ // `verticalTabHeight`.
293
296
  const buttonWidth = 44;
294
297
  // Next Button
295
298
  // VISIBLE IF:
@@ -384,14 +387,13 @@ function TabList({
384
387
  // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20452
385
388
  }, []);
386
389
  React.useEffect(() => {
387
- //adding 1 in calculation for firefox support
390
+ // adding 1 in calculation for firefox support
388
391
  setIsNextButtonVisible(ref.current ? scrollLeft + buttonWidth + ref.current.clientWidth + 1 < ref.current.scrollWidth : false);
389
- if (dismissable) {
390
- if (ref.current) {
391
- setIsScrollable(ref.current.scrollWidth > ref.current.clientWidth);
392
- }
392
+ if (dismissable && ref.current) {
393
+ // adding 1 in calculation for firefox support
394
+ setIsScrollable(ref.current.scrollWidth > ref.current.clientWidth + 1);
393
395
  }
394
- }, [scrollLeft, children, dismissable, isScrollable]);
396
+ }, [children, dismissable, scrollLeft]);
395
397
  React.useEffect(() => {
396
398
  if (tabs.current[selectedIndex]?.disabled) {
397
399
  const activeTabs = tabs.current.filter(tab => {
@@ -1040,11 +1042,7 @@ const IconTab = /*#__PURE__*/React.forwardRef(({
1040
1042
  const value = React.useMemo(() => ({
1041
1043
  badgeIndicator
1042
1044
  }), [badgeIndicator]);
1043
- const hasSize20 = /*#__PURE__*/React.isValidElement(children) &&
1044
- // TODO: The interface allows `size` to be a string. Should this case be
1045
- // handled here, or should the prop type be restricted to `number`
1046
- // instead?
1047
- children.props.size === 20;
1045
+ const hasSize20 = /*#__PURE__*/React.isValidElement(children) && (children.props.size === 20 || children.props.size === '20');
1048
1046
  const classNames = cx(`${prefix}--tabs__nav-item--icon-only`, customClassName, {
1049
1047
  [`${prefix}--tabs__nav-item--icon-only__20`]: hasSize20
1050
1048
  });
@@ -7,8 +7,6 @@
7
7
 
8
8
  'use strict';
9
9
 
10
- Object.defineProperty(exports, '__esModule', { value: true });
11
-
12
10
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
11
  var PropTypes = require('prop-types');
14
12
  var React = require('react');
@@ -43,4 +41,3 @@ TagSkeleton.propTypes = {
43
41
  };
44
42
 
45
43
  exports.TagSkeleton = TagSkeleton;
46
- exports.default = TagSkeleton;
@@ -16,4 +16,4 @@ var TextArea_Skeleton = require('./TextArea.Skeleton.js');
16
16
 
17
17
  exports.TextArea = TextArea.default;
18
18
  exports.default = TextArea.default;
19
- exports.TextAreaSkeleton = TextArea_Skeleton.default;
19
+ exports.TextAreaSkeleton = TextArea_Skeleton.TextAreaSkeleton;
@@ -16,4 +16,4 @@ var TextInput_Skeleton = require('./TextInput.Skeleton.js');
16
16
 
17
17
  exports.TextInput = TextInput.default;
18
18
  exports.default = TextInput.default;
19
- exports.TextInputSkeleton = TextInput_Skeleton.default;
19
+ exports.TextInputSkeleton = TextInput_Skeleton.TextInputSkeleton;
@@ -59,11 +59,11 @@ export interface ClickableTileProps extends HTMLAttributes<HTMLAnchorElement> {
59
59
  /**
60
60
  * Specify the function to run when the ClickableTile is clicked
61
61
  */
62
- onClick?(event: MouseEvent): void;
62
+ onClick?(event: MouseEvent<HTMLAnchorElement> | KeyboardEvent<HTMLAnchorElement>): void;
63
63
  /**
64
64
  * Specify the function to run when the ClickableTile is interacted with via a keyboard
65
65
  */
66
- onKeyDown?(event: KeyboardEvent): void;
66
+ onKeyDown?(event: KeyboardEvent<HTMLAnchorElement>): void;
67
67
  /**
68
68
  * The rel property for the link.
69
69
  */
@@ -108,6 +108,9 @@ const ClickableTile = /*#__PURE__*/React.forwardRef(({
108
108
  [`${prefix}--tile--decorator`]: decorator,
109
109
  [`${prefix}--tile--decorator-rounded`]: decorator && hasRoundedCorners
110
110
  }, className);
111
+
112
+ // TODO: Can this be removed? Or is cds--tile--is-clicked supposed to use this instead of `clicked`?
113
+ // This state is never used
111
114
  const [isSelected, setIsSelected] = React.useState(clicked);
112
115
  function handleOnClick(evt) {
113
116
  evt?.persist?.();
@@ -116,8 +119,10 @@ const ClickableTile = /*#__PURE__*/React.forwardRef(({
116
119
  }
117
120
  function handleOnKeyDown(evt) {
118
121
  evt?.persist?.();
119
- if (match.matches(evt, [keys.Enter, keys.Space])) {
122
+ if (!href && match.matches(evt, [keys.Enter, keys.Space])) {
123
+ evt.preventDefault();
120
124
  setIsSelected(!isSelected);
125
+ onClick(evt);
121
126
  }
122
127
  onKeyDown(evt);
123
128
  }
@@ -7,8 +7,6 @@
7
7
 
8
8
  'use strict';
9
9
 
10
- Object.defineProperty(exports, '__esModule', { value: true });
11
-
12
10
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
11
  var PropTypes = require('prop-types');
14
12
  var React = require('react');
@@ -35,4 +33,3 @@ ToggleSkeleton.propTypes = {
35
33
  };
36
34
 
37
35
  exports.ToggleSkeleton = ToggleSkeleton;
38
- exports.default = ToggleSkeleton;
@@ -7,8 +7,6 @@
7
7
 
8
8
  'use strict';
9
9
 
10
- Object.defineProperty(exports, '__esModule', { value: true });
11
-
12
10
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
11
  var cx = require('classnames');
14
12
  var PropTypes = require('prop-types');
@@ -292,4 +290,3 @@ exports.ToggletipActions = ToggletipActions;
292
290
  exports.ToggletipButton = ToggletipButton;
293
291
  exports.ToggletipContent = ToggletipContent;
294
292
  exports.ToggletipLabel = ToggletipLabel;
295
- exports.default = Toggletip;
@@ -20,9 +20,6 @@ export interface SideNavProps {
20
20
  onSideNavBlur?: () => void;
21
21
  enterDelayMs?: number;
22
22
  }
23
- interface SideNavContextData {
24
- isRail?: boolean | undefined;
25
- }
26
- export declare const SideNavContext: React.Context<SideNavContextData>;
27
23
  declare const SideNav: React.ForwardRefExoticComponent<Omit<SideNavProps & React.ClassAttributes<HTMLElement> & React.HTMLAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
28
24
  export default SideNav;
25
+ export { SideNavContext } from './SideNavContext';
@@ -14,20 +14,19 @@ var React = require('react');
14
14
  var cx = require('classnames');
15
15
  var PropTypes = require('prop-types');
16
16
  var AriaPropTypes = require('../../prop-types/AriaPropTypes.js');
17
- var _utils = require('./_utils.js');
18
17
  var usePrefix = require('../../internal/usePrefix.js');
19
18
  var keys = require('../../internal/keyboard/keys.js');
20
19
  var match = require('../../internal/keyboard/match.js');
21
20
  var useMergedRefs = require('../../internal/useMergedRefs.js');
22
21
  var useEvent = require('../../internal/useEvent.js');
23
22
  var useDelayedState = require('../../internal/useDelayedState.js');
23
+ var SideNavContext = require('./SideNavContext.js');
24
24
  var layout = require('@carbon/layout');
25
25
  var useMatchMedia = require('../../internal/useMatchMedia.js');
26
26
 
27
27
  // TODO: comment back in when footer is added for rails
28
28
  // import SideNavFooter from './SideNavFooter';
29
29
 
30
- const SideNavContext = /*#__PURE__*/React.createContext({});
31
30
  const frFn = React.forwardRef;
32
31
  const SideNav = frFn((props, ref) => {
33
32
  const {
@@ -94,23 +93,9 @@ const SideNav = frFn((props, ref) => {
94
93
  [`${prefix}--side-nav__overlay`]: true,
95
94
  [`${prefix}--side-nav__overlay-active`]: expanded || expandedViaHoverState
96
95
  });
97
- let childrenToRender = children;
98
96
 
99
- // Pass the expansion state as a prop, so children can update themselves to match
100
- childrenToRender = React.Children.map(children, child => {
101
- // if we are controlled, check for if we have hovered over or the expanded state, else just use the expanded state (uncontrolled)
102
- const currentExpansionState = controlled ? expandedViaHoverState || expanded : expanded;
103
- if (/*#__PURE__*/React.isValidElement(child)) {
104
- const childJsxElement = child;
105
- // avoid spreading `isSideNavExpanded` to non-Carbon UI Shell children
106
- return /*#__PURE__*/React.cloneElement(childJsxElement, {
107
- ...(_utils.CARBON_SIDENAV_ITEMS.includes(childJsxElement.type?.displayName ?? childJsxElement.type?.name) ? {
108
- isSideNavExpanded: currentExpansionState
109
- } : {})
110
- });
111
- }
112
- return child;
113
- });
97
+ // In controlled mode, rail hover can temporarily expand SideNav.
98
+ const currentExpansionState = controlled ? expandedViaHoverState || expanded : expanded;
114
99
  const eventHandlers = {};
115
100
  if (addFocusListeners) {
116
101
  eventHandlers.onFocus = event => {
@@ -171,10 +156,9 @@ const SideNav = frFn((props, ref) => {
171
156
  node.removeAttribute('inert');
172
157
  }
173
158
  }, [inertEnabled]);
174
- return /*#__PURE__*/React.createElement(SideNavContext.Provider, {
175
- value: {
176
- isRail
177
- }
159
+ return /*#__PURE__*/React.createElement(SideNavContext.SideNavContextProvider, {
160
+ isRail: isRail,
161
+ isSideNavExpanded: currentExpansionState
178
162
  }, isFixedNav ? null :
179
163
  /*#__PURE__*/
180
164
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
@@ -185,7 +169,7 @@ const SideNav = frFn((props, ref) => {
185
169
  tabIndex: -1,
186
170
  ref: navRef,
187
171
  className: `${prefix}--side-nav__navigation ${className}`
188
- }, accessibilityLabel, eventHandlers, other), childrenToRender));
172
+ }, accessibilityLabel, eventHandlers, other), children));
189
173
  });
190
174
  SideNav.displayName = 'SideNav';
191
175
  SideNav.propTypes = {
@@ -268,5 +252,5 @@ SideNav.propTypes = {
268
252
  // translateById: PropTypes.func,
269
253
  };
270
254
 
271
- exports.SideNavContext = SideNavContext;
255
+ exports.SideNavContext = SideNavContext.SideNavContext;
272
256
  exports.default = SideNav;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React, { type ReactNode } from 'react';
8
+ interface SideNavContextData {
9
+ isRail?: boolean | undefined;
10
+ isSideNavExpanded?: boolean | undefined;
11
+ }
12
+ export declare const SideNavContext: React.Context<SideNavContextData>;
13
+ interface SideNavContextProviderProps extends SideNavContextData {
14
+ children: ReactNode;
15
+ }
16
+ export declare const SideNavContextProvider: ({ children, isRail, isSideNavExpanded, }: SideNavContextProviderProps) => import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ var React = require('react');
11
+
12
+ const SideNavContext = /*#__PURE__*/React.createContext({});
13
+ const SideNavContextProvider = ({
14
+ children,
15
+ isRail,
16
+ isSideNavExpanded
17
+ }) => {
18
+ return /*#__PURE__*/React.createElement(SideNavContext.Provider, {
19
+ value: {
20
+ isRail,
21
+ isSideNavExpanded
22
+ }
23
+ }, children);
24
+ };
25
+
26
+ exports.SideNavContext = SideNavContext;
27
+ exports.SideNavContextProvider = SideNavContextProvider;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2025
2
+ * Copyright IBM Corp. 2016, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -12,7 +12,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
12
12
  var cx = require('classnames');
13
13
  var PropTypes = require('prop-types');
14
14
  var React = require('react');
15
- var _utils = require('./_utils.js');
15
+ var SideNavContext = require('./SideNavContext.js');
16
16
  var usePrefix = require('../../internal/usePrefix.js');
17
17
 
18
18
  const SideNavItems = ({
@@ -21,22 +21,18 @@ const SideNavItems = ({
21
21
  isSideNavExpanded
22
22
  }) => {
23
23
  const prefix = usePrefix.usePrefix();
24
+ const {
25
+ isRail,
26
+ isSideNavExpanded: contextIsSideNavExpanded
27
+ } = React.useContext(SideNavContext.SideNavContext);
28
+ const currentIsSideNavExpanded = isSideNavExpanded ?? contextIsSideNavExpanded;
24
29
  const className = cx([`${prefix}--side-nav__items`], customClassName);
25
- const childrenWithExpandedState = React.Children.map(children, child => {
26
- if (/*#__PURE__*/React.isValidElement(child)) {
27
- // avoid spreading `isSideNavExpanded` to non-Carbon UI Shell children
28
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
29
- const childDisplayName = child.type?.displayName;
30
- return /*#__PURE__*/React.cloneElement(child, {
31
- ...(_utils.CARBON_SIDENAV_ITEMS.includes(childDisplayName) ? {
32
- isSideNavExpanded
33
- } : {})
34
- });
35
- }
36
- });
37
- return /*#__PURE__*/React.createElement("ul", {
30
+ return /*#__PURE__*/React.createElement(SideNavContext.SideNavContextProvider, {
31
+ isRail: isRail,
32
+ isSideNavExpanded: currentIsSideNavExpanded
33
+ }, /*#__PURE__*/React.createElement("ul", {
38
34
  className: className
39
- }, childrenWithExpandedState);
35
+ }, children));
40
36
  };
41
37
  SideNavItems.displayName = 'SideNavItems';
42
38
  SideNavItems.propTypes = {
@@ -17,8 +17,8 @@ var Link = require('./Link.js');
17
17
  var SideNavIcon = require('./SideNavIcon.js');
18
18
  var SideNavItem = require('./SideNavItem.js');
19
19
  var SideNavLinkText = require('./SideNavLinkText.js');
20
+ var SideNavContext = require('./SideNavContext.js');
20
21
  var usePrefix = require('../../internal/usePrefix.js');
21
- var SideNav = require('./SideNav.js');
22
22
 
23
23
  // First define a non-generic base component to work with forwardRef
24
24
 
@@ -34,7 +34,11 @@ const SideNavLink = frFn((props, ref) => {
34
34
  tabIndex,
35
35
  ...rest
36
36
  } = props;
37
- const isRail = React.useContext(SideNav.SideNavContext);
37
+ const {
38
+ isRail,
39
+ isSideNavExpanded: contextIsSideNavExpanded
40
+ } = React.useContext(SideNavContext.SideNavContext);
41
+ const currentIsSideNavExpanded = isSideNavExpanded ?? contextIsSideNavExpanded;
38
42
  const prefix = usePrefix.usePrefix();
39
43
  const className = cx({
40
44
  [`${prefix}--side-nav__link`]: true,
@@ -46,7 +50,7 @@ const SideNavLink = frFn((props, ref) => {
46
50
  }, /*#__PURE__*/React.createElement(Link.default, _rollupPluginBabelHelpers.extends({}, rest, {
47
51
  className: className,
48
52
  ref: ref,
49
- tabIndex: tabIndex === undefined ? !isSideNavExpanded && !isRail ? -1 : 0 : tabIndex
53
+ tabIndex: tabIndex === undefined ? !currentIsSideNavExpanded && !isRail ? -1 : 0 : tabIndex
50
54
  }), IconElement && /*#__PURE__*/React.createElement(SideNavIcon.default, {
51
55
  small: true
52
56
  }, /*#__PURE__*/React.createElement(IconElement, null)), /*#__PURE__*/React.createElement(SideNavLinkText.default, null, children)));
@@ -17,7 +17,7 @@ var SideNavIcon = require('./SideNavIcon.js');
17
17
  var keys = require('../../internal/keyboard/keys.js');
18
18
  var match = require('../../internal/keyboard/match.js');
19
19
  var usePrefix = require('../../internal/usePrefix.js');
20
- var SideNav = require('./SideNav.js');
20
+ var SideNavContext = require('./SideNavContext.js');
21
21
 
22
22
  var _ChevronDown;
23
23
  const SideNavMenu = /*#__PURE__*/React.forwardRef(({
@@ -32,8 +32,10 @@ const SideNavMenu = /*#__PURE__*/React.forwardRef(({
32
32
  title
33
33
  }, ref) => {
34
34
  const {
35
- isRail
36
- } = React.useContext(SideNav.SideNavContext);
35
+ isRail,
36
+ isSideNavExpanded: contextIsSideNavExpanded
37
+ } = React.useContext(SideNavContext.SideNavContext);
38
+ const currentIsSideNavExpanded = isSideNavExpanded ?? contextIsSideNavExpanded;
37
39
  const prefix = usePrefix.usePrefix();
38
40
  const [isExpanded, setIsExpanded] = React.useState(defaultExpanded);
39
41
  const [prevExpanded, setPrevExpanded] = React.useState(defaultExpanded);
@@ -44,10 +46,10 @@ const SideNavMenu = /*#__PURE__*/React.forwardRef(({
44
46
  [`${prefix}--side-nav__item--large`]: large,
45
47
  [customClassName]: !!customClassName
46
48
  });
47
- if (!isSideNavExpanded && isExpanded && isRail) {
49
+ if (!currentIsSideNavExpanded && isExpanded && isRail) {
48
50
  setIsExpanded(false);
49
51
  setPrevExpanded(true);
50
- } else if (isSideNavExpanded && prevExpanded && isRail) {
52
+ } else if (currentIsSideNavExpanded && prevExpanded && isRail) {
51
53
  setIsExpanded(true);
52
54
  setPrevExpanded(false);
53
55
  }
@@ -69,7 +71,7 @@ const SideNavMenu = /*#__PURE__*/React.forwardRef(({
69
71
  },
70
72
  ref: ref,
71
73
  type: "button",
72
- tabIndex: tabIndex === undefined ? !isSideNavExpanded && !isRail ? -1 : 0 : tabIndex
74
+ tabIndex: tabIndex === undefined ? !currentIsSideNavExpanded && !isRail ? -1 : 0 : tabIndex
73
75
  }, IconElement && /*#__PURE__*/React.createElement(SideNavIcon.default, null, /*#__PURE__*/React.createElement(IconElement, null)), /*#__PURE__*/React.createElement("span", {
74
76
  className: `${prefix}--side-nav__submenu-title`
75
77
  }, title), /*#__PURE__*/React.createElement(SideNavIcon.default, {