@carbon/react 1.24.0 → 1.26.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 (197) hide show
  1. package/es/components/Button/Button.js +2 -2
  2. package/es/components/CodeSnippet/CodeSnippet.js +13 -115
  3. package/es/components/ComboBox/ComboBox.d.ts +6 -0
  4. package/es/components/ComboBox/ComboBox.js +19 -172
  5. package/es/components/ComboButton/index.js +164 -0
  6. package/es/components/ComposedModal/ComposedModal.js +1 -2
  7. package/es/components/DataTable/Table.d.ts +74 -0
  8. package/es/components/DataTable/Table.js +4 -2
  9. package/es/components/DataTable/TableCell.d.ts +10 -0
  10. package/es/components/DataTable/TableContext.d.ts +13 -0
  11. package/es/components/DataTable/TableContext.js +2 -2
  12. package/es/components/DataTable/TableExpandRow.d.ts +67 -0
  13. package/es/components/DataTable/TableExpandedRow.d.ts +32 -0
  14. package/es/components/DataTable/TableHead.d.ts +10 -0
  15. package/es/components/DataTable/TableHeader.d.ts +64 -0
  16. package/es/components/DataTable/TableHeader.js +23 -28
  17. package/es/components/DataTable/TableRow.d.ts +32 -0
  18. package/es/components/DataTable/TableSelectAll.js +1 -1
  19. package/es/components/DataTable/TableSelectRow.js +1 -3
  20. package/es/components/DataTable/TableToolbar.d.ts +19 -0
  21. package/es/components/DataTable/TableToolbar.js +1 -1
  22. package/es/components/DataTable/TableToolbarAction.d.ts +21 -0
  23. package/es/components/DataTable/TableToolbarContent.d.ts +19 -0
  24. package/es/components/DataTable/TableToolbarMenu.d.ts +24 -0
  25. package/es/components/DataTable/TableToolbarMenu.js +3 -3
  26. package/es/components/DataTable/TableToolbarSearch.js +1 -0
  27. package/es/components/DataTable/tools/sorting.js +2 -1
  28. package/es/components/DataTableSkeleton/DataTableSkeleton.d.ts +107 -0
  29. package/es/components/Dropdown/Dropdown.d.ts +6 -0
  30. package/es/components/Dropdown/Dropdown.js +8 -145
  31. package/es/components/ExpandableSearch/ExpandableSearch.js +1 -0
  32. package/es/components/FileUploader/FileUploader.js +1 -1
  33. package/es/components/FileUploader/FileUploaderButton.js +2 -0
  34. package/es/components/FileUploader/FileUploaderDropContainer.js +30 -18
  35. package/es/components/FileUploader/FileUploaderItem.js +2 -1
  36. package/es/components/FileUploader/Filename.js +8 -2
  37. package/es/components/FluidTextArea/FluidTextArea.js +12 -1
  38. package/es/components/IconButton/index.js +1 -0
  39. package/es/components/InlineCheckbox/InlineCheckbox.js +7 -53
  40. package/es/components/ListBox/ListBoxSelection.js +4 -23
  41. package/es/components/ListBox/next/ListBoxSelection.js +2 -23
  42. package/es/components/Menu/Menu.js +50 -29
  43. package/es/components/Menu/MenuItem.js +1 -0
  44. package/es/components/MenuButton/index.js +127 -0
  45. package/es/components/Modal/Modal.js +4 -3
  46. package/es/components/MultiSelect/FilterableMultiSelect.js +46 -144
  47. package/es/components/MultiSelect/MultiSelect.d.ts +1 -1
  48. package/es/components/MultiSelect/MultiSelect.js +48 -28
  49. package/es/components/Notification/Notification.js +27 -264
  50. package/es/components/NumberInput/NumberInput.js +9 -1
  51. package/es/components/OverflowMenu/OverflowMenu.js +13 -139
  52. package/es/components/OverflowMenuItem/OverflowMenuItem.d.ts +58 -0
  53. package/es/components/OverflowMenuItem/OverflowMenuItem.js +12 -7
  54. package/es/components/OverflowMenuV2/index.js +15 -51
  55. package/es/components/Popover/index.d.ts +5 -1
  56. package/es/components/Popover/index.js +37 -9
  57. package/es/components/RadioButton/RadioButton.Skeleton.d.ts +25 -0
  58. package/es/components/RadioButton/RadioButton.Skeleton.js +3 -3
  59. package/es/components/RadioButton/RadioButton.d.ts +64 -0
  60. package/es/components/RadioButton/RadioButton.js +19 -17
  61. package/es/components/RadioButtonGroup/RadioButtonGroup.d.ts +80 -0
  62. package/es/components/RadioButtonGroup/RadioButtonGroup.js +88 -26
  63. package/es/components/RadioTile/RadioTile.js +6 -6
  64. package/es/components/Search/Search.Skeleton.d.ts +36 -0
  65. package/es/components/Search/Search.js +3 -2
  66. package/es/components/Search/index.js +1 -0
  67. package/es/components/Select/Select.d.ts +89 -0
  68. package/es/components/SelectItem/SelectItem.d.ts +62 -0
  69. package/es/components/SelectItem/SelectItem.js +2 -4
  70. package/es/components/SelectItemGroup/SelectItemGroup.d.ts +52 -0
  71. package/es/components/SkeletonText/SkeletonText.js +1 -1
  72. package/es/components/StructuredList/StructuredList.js +11 -39
  73. package/es/components/Tabs/Tabs.js +29 -6
  74. package/es/components/TextArea/TextArea.Skeleton.d.ts +33 -0
  75. package/es/components/TextArea/TextArea.Skeleton.js +5 -5
  76. package/es/components/TextArea/TextArea.d.ts +9 -2
  77. package/es/components/TextArea/TextArea.js +31 -8
  78. package/es/components/TextArea/index.js +1 -0
  79. package/es/components/TextInput/TextInput.Skeleton.d.ts +33 -0
  80. package/es/components/TextInput/index.js +1 -0
  81. package/es/components/Tile/Tile.js +15 -8
  82. package/es/components/Toggle/Toggle.js +8 -19
  83. package/es/components/Tooltip/DefinitionTooltip.d.ts +52 -0
  84. package/es/components/Tooltip/DefinitionTooltip.js +2 -2
  85. package/es/components/Tooltip/Tooltip.d.ts +117 -0
  86. package/es/components/Tooltip/Tooltip.js +6 -4
  87. package/es/components/Tooltip/index.d.ts +9 -0
  88. package/es/components/UIShell/HeaderMenu.js +13 -4
  89. package/es/components/UIShell/HeaderMenuItem.js +17 -4
  90. package/es/index.d.ts +2 -0
  91. package/es/index.js +5 -3
  92. package/es/internal/ClickListener.js +1 -2
  93. package/es/internal/keyboard/match.js +1 -1
  94. package/es/internal/useAttachedMenu.js +85 -0
  95. package/es/internal/useDelayedState.d.ts +19 -0
  96. package/es/internal/useDelayedState.js +7 -3
  97. package/es/internal/useId.js +1 -1
  98. package/es/tools/wrapComponent.js +9 -0
  99. package/lib/components/Button/Button.js +2 -2
  100. package/lib/components/CodeSnippet/CodeSnippet.js +13 -115
  101. package/lib/components/ComboBox/ComboBox.d.ts +6 -0
  102. package/lib/components/ComboBox/ComboBox.js +18 -171
  103. package/lib/components/ComboButton/index.js +174 -0
  104. package/lib/components/ComposedModal/ComposedModal.js +1 -2
  105. package/lib/components/DataTable/Table.d.ts +74 -0
  106. package/lib/components/DataTable/Table.js +4 -2
  107. package/lib/components/DataTable/TableCell.d.ts +10 -0
  108. package/lib/components/DataTable/TableContext.d.ts +13 -0
  109. package/lib/components/DataTable/TableContext.js +2 -2
  110. package/lib/components/DataTable/TableExpandRow.d.ts +67 -0
  111. package/lib/components/DataTable/TableExpandedRow.d.ts +32 -0
  112. package/lib/components/DataTable/TableHead.d.ts +10 -0
  113. package/lib/components/DataTable/TableHeader.d.ts +64 -0
  114. package/lib/components/DataTable/TableHeader.js +23 -28
  115. package/lib/components/DataTable/TableRow.d.ts +32 -0
  116. package/lib/components/DataTable/TableSelectAll.js +1 -1
  117. package/lib/components/DataTable/TableSelectRow.js +1 -3
  118. package/lib/components/DataTable/TableToolbar.d.ts +19 -0
  119. package/lib/components/DataTable/TableToolbar.js +1 -1
  120. package/lib/components/DataTable/TableToolbarAction.d.ts +21 -0
  121. package/lib/components/DataTable/TableToolbarContent.d.ts +19 -0
  122. package/lib/components/DataTable/TableToolbarMenu.d.ts +24 -0
  123. package/lib/components/DataTable/TableToolbarMenu.js +3 -3
  124. package/lib/components/DataTable/TableToolbarSearch.js +1 -0
  125. package/lib/components/DataTable/tools/sorting.js +2 -1
  126. package/lib/components/DataTableSkeleton/DataTableSkeleton.d.ts +107 -0
  127. package/lib/components/Dropdown/Dropdown.d.ts +6 -0
  128. package/lib/components/Dropdown/Dropdown.js +7 -144
  129. package/lib/components/ExpandableSearch/ExpandableSearch.js +1 -0
  130. package/lib/components/FileUploader/FileUploader.js +1 -1
  131. package/lib/components/FileUploader/FileUploaderButton.js +2 -0
  132. package/lib/components/FileUploader/FileUploaderDropContainer.js +30 -18
  133. package/lib/components/FileUploader/FileUploaderItem.js +2 -1
  134. package/lib/components/FileUploader/Filename.js +8 -2
  135. package/lib/components/FluidTextArea/FluidTextArea.js +12 -1
  136. package/lib/components/IconButton/index.js +1 -0
  137. package/lib/components/InlineCheckbox/InlineCheckbox.js +7 -53
  138. package/lib/components/ListBox/ListBoxSelection.js +4 -23
  139. package/lib/components/ListBox/next/ListBoxSelection.js +2 -23
  140. package/lib/components/Menu/Menu.js +50 -29
  141. package/lib/components/Menu/MenuItem.js +1 -0
  142. package/lib/components/MenuButton/index.js +137 -0
  143. package/lib/components/Modal/Modal.js +4 -3
  144. package/lib/components/MultiSelect/FilterableMultiSelect.js +43 -141
  145. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  146. package/lib/components/MultiSelect/MultiSelect.js +47 -27
  147. package/lib/components/Notification/Notification.js +27 -264
  148. package/lib/components/NumberInput/NumberInput.js +9 -1
  149. package/lib/components/OverflowMenu/OverflowMenu.js +13 -139
  150. package/lib/components/OverflowMenuItem/OverflowMenuItem.d.ts +58 -0
  151. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +12 -7
  152. package/lib/components/OverflowMenuV2/index.js +13 -49
  153. package/lib/components/Popover/index.d.ts +5 -1
  154. package/lib/components/Popover/index.js +37 -9
  155. package/lib/components/RadioButton/RadioButton.Skeleton.d.ts +25 -0
  156. package/lib/components/RadioButton/RadioButton.Skeleton.js +3 -3
  157. package/lib/components/RadioButton/RadioButton.d.ts +64 -0
  158. package/lib/components/RadioButton/RadioButton.js +18 -16
  159. package/lib/components/RadioButtonGroup/RadioButtonGroup.d.ts +80 -0
  160. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +86 -24
  161. package/lib/components/RadioTile/RadioTile.js +6 -6
  162. package/lib/components/Search/Search.Skeleton.d.ts +36 -0
  163. package/lib/components/Search/Search.js +3 -2
  164. package/lib/components/Search/index.js +2 -0
  165. package/lib/components/Select/Select.d.ts +89 -0
  166. package/lib/components/SelectItem/SelectItem.d.ts +62 -0
  167. package/lib/components/SelectItem/SelectItem.js +1 -3
  168. package/lib/components/SelectItemGroup/SelectItemGroup.d.ts +52 -0
  169. package/lib/components/SkeletonText/SkeletonText.js +1 -1
  170. package/lib/components/StructuredList/StructuredList.js +11 -39
  171. package/lib/components/Tabs/Tabs.js +29 -6
  172. package/lib/components/TextArea/TextArea.Skeleton.d.ts +33 -0
  173. package/lib/components/TextArea/TextArea.Skeleton.js +5 -5
  174. package/lib/components/TextArea/TextArea.d.ts +9 -2
  175. package/lib/components/TextArea/TextArea.js +30 -7
  176. package/lib/components/TextArea/index.js +2 -0
  177. package/lib/components/TextInput/TextInput.Skeleton.d.ts +33 -0
  178. package/lib/components/TextInput/index.js +2 -0
  179. package/lib/components/Tile/Tile.js +15 -8
  180. package/lib/components/Toggle/Toggle.js +8 -19
  181. package/lib/components/Tooltip/DefinitionTooltip.d.ts +52 -0
  182. package/lib/components/Tooltip/DefinitionTooltip.js +2 -2
  183. package/lib/components/Tooltip/Tooltip.d.ts +117 -0
  184. package/lib/components/Tooltip/Tooltip.js +6 -4
  185. package/lib/components/Tooltip/index.d.ts +9 -0
  186. package/lib/components/UIShell/HeaderMenu.js +13 -4
  187. package/lib/components/UIShell/HeaderMenuItem.js +17 -4
  188. package/lib/index.d.ts +2 -0
  189. package/lib/index.js +50 -46
  190. package/lib/internal/ClickListener.js +1 -2
  191. package/lib/internal/keyboard/match.js +1 -1
  192. package/lib/internal/useAttachedMenu.js +89 -0
  193. package/lib/internal/useDelayedState.d.ts +19 -0
  194. package/lib/internal/useDelayedState.js +7 -3
  195. package/lib/internal/useId.js +1 -1
  196. package/lib/tools/wrapComponent.js +9 -0
  197. package/package.json +3 -3
@@ -31,9 +31,9 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
31
31
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
32
32
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
33
33
 
34
- var _excluded = ["id", "ariaLabel", "children", "iconDescription", "direction", "flipped", "focusTrap", "menuOffset", "menuOffsetFlip", "iconClass", "onClick", "onOpen", "selectorPrimaryFocus", "renderIcon", "innerRef", "menuOptionsClass", "light", "size"];
34
+ var _excluded = ["id", "aria-label", "ariaLabel", "children", "iconDescription", "direction", "flipped", "focusTrap", "menuOffset", "menuOffsetFlip", "iconClass", "onClick", "onOpen", "selectorPrimaryFocus", "renderIcon", "innerRef", "menuOptionsClass", "light", "size"];
35
35
 
36
- var _triggerButtonPositio, _triggerButtonPositio2;
36
+ var _triggerButtonPositio, _triggerButtonPositio2, _defineProperty2, _defineProperty3;
37
37
 
38
38
  var on = function on(element) {
39
39
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
@@ -299,7 +299,8 @@ var OverflowMenu = /*#__PURE__*/function (_Component) {
299
299
 
300
300
  var _this$props = this.props,
301
301
  id = _this$props.id,
302
- ariaLabel = _this$props.ariaLabel,
302
+ ariaLabel = _this$props['aria-label'],
303
+ deprecatedAriaLabel = _this$props.ariaLabel,
303
304
  children = _this$props.children,
304
305
  iconDescription = _this$props.iconDescription,
305
306
  direction = _this$props.direction,
@@ -339,7 +340,7 @@ var OverflowMenu = /*#__PURE__*/function (_Component) {
339
340
  className: overflowMenuOptionsClasses,
340
341
  tabIndex: "-1",
341
342
  role: "menu",
342
- "aria-label": ariaLabel,
343
+ "aria-label": ariaLabel || deprecatedAriaLabel,
343
344
  onKeyDown: this.handleKeyPress
344
345
  }, childrenWithProps);
345
346
  var wrappedMenuBody = /*#__PURE__*/React__default["default"].createElement(FloatingMenu["default"], {
@@ -389,144 +390,17 @@ var OverflowMenu = /*#__PURE__*/function (_Component) {
389
390
  return OverflowMenu;
390
391
  }(React.Component);
391
392
 
392
- _rollupPluginBabelHelpers.defineProperty(OverflowMenu, "propTypes", {
393
- /**
394
- * The ARIA label.
395
- */
396
- ariaLabel: PropTypes__default["default"].string.isRequired,
397
-
398
- /**
399
- * The child nodes.
400
- */
401
- children: PropTypes__default["default"].node,
402
-
403
- /**
404
- * The CSS class names.
405
- */
406
- className: PropTypes__default["default"].string,
407
-
408
- /**
409
- * The menu direction.
410
- */
411
- direction: PropTypes__default["default"].oneOf([FloatingMenu.DIRECTION_TOP, FloatingMenu.DIRECTION_BOTTOM]),
412
-
413
- /**
414
- * `true` if the menu alignment should be flipped.
415
- */
416
- flipped: PropTypes__default["default"].bool,
417
-
418
- /**
419
- * Enable or disable focus trap behavior
420
- */
421
- focusTrap: PropTypes__default["default"].bool,
422
-
423
- /**
424
- * The CSS class for the icon.
425
- */
426
- iconClass: PropTypes__default["default"].string,
427
-
428
- /**
429
- * The icon description.
430
- */
431
- iconDescription: PropTypes__default["default"].string.isRequired,
432
-
433
- /**
434
- * The element ID.
435
- */
436
- id: PropTypes__default["default"].string,
437
-
438
- /**
439
- * `true` to use the light version. For use on $ui-01 backgrounds only.
440
- * Don't use this to make OverflowMenu background color same as container background color.
441
- */
442
- light: deprecate["default"](PropTypes__default["default"].bool, 'The `light` prop for `OverflowMenu` is no longer needed and has been deprecated. It will be removed in the next major release. Use the Layer component instead.'),
443
-
444
- /**
445
- * The adjustment in position applied to the floating menu.
446
- */
447
- menuOffset: PropTypes__default["default"].oneOfType([PropTypes__default["default"].shape({
448
- top: PropTypes__default["default"].number,
449
- left: PropTypes__default["default"].number
450
- }), PropTypes__default["default"].func]),
451
-
452
- /**
453
- * The adjustment in position applied to the floating menu.
454
- */
455
- menuOffsetFlip: PropTypes__default["default"].oneOfType([PropTypes__default["default"].shape({
456
- top: PropTypes__default["default"].number,
457
- left: PropTypes__default["default"].number
458
- }), PropTypes__default["default"].func]),
459
-
460
- /**
461
- * The class to apply to the menu options
462
- */
463
- menuOptionsClass: PropTypes__default["default"].string,
464
-
465
- /**
466
- * The event handler for the `click` event.
467
- */
468
- onClick: PropTypes__default["default"].func,
469
-
470
- /**
471
- * Function called when menu is closed
472
- */
473
- onClose: PropTypes__default["default"].func,
474
-
475
- /**
476
- * The event handler for the `focus` event.
477
- */
478
- onFocus: PropTypes__default["default"].func,
479
-
480
- /**
481
- * The event handler for the `keydown` event.
482
- */
483
- onKeyDown: PropTypes__default["default"].func,
484
-
485
- /**
486
- * Function called when menu is opened
487
- */
488
- onOpen: PropTypes__default["default"].func,
489
-
490
- /**
491
- * `true` if the menu should be open.
492
- */
493
- open: PropTypes__default["default"].bool,
494
-
495
- /**
496
- * Function called to override icon rendering.
497
- */
498
- renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
499
-
500
- /**
501
- * Specify a CSS selector that matches the DOM element that should
502
- * be focused when the OverflowMenu opens
503
- */
504
- selectorPrimaryFocus: PropTypes__default["default"].string,
505
-
506
- /**
507
- * Specify the size of the OverflowMenu. Currently supports either `sm`, 'md' (default) or 'lg` as an option.
508
- */
509
- size: PropTypes__default["default"].oneOf(['sm', 'md', 'lg'])
510
- });
393
+ _rollupPluginBabelHelpers.defineProperty(OverflowMenu, "propTypes", (_defineProperty2 = {}, _rollupPluginBabelHelpers.defineProperty(_defineProperty2, 'aria-label', PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "ariaLabel", deprecate["default"](PropTypes__default["default"].string, 'This prop syntax has been deprecated. Please use the new `aria-label`.')), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "children", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "className", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "direction", PropTypes__default["default"].oneOf([FloatingMenu.DIRECTION_TOP, FloatingMenu.DIRECTION_BOTTOM])), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "flipped", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "focusTrap", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "iconClass", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "iconDescription", PropTypes__default["default"].string.isRequired), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "id", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "light", deprecate["default"](PropTypes__default["default"].bool, 'The `light` prop for `OverflowMenu` is no longer needed and has been deprecated. It will be removed in the next major release. Use the Layer component instead.')), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "menuOffset", PropTypes__default["default"].oneOfType([PropTypes__default["default"].shape({
394
+ top: PropTypes__default["default"].number,
395
+ left: PropTypes__default["default"].number
396
+ }), PropTypes__default["default"].func])), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "menuOffsetFlip", PropTypes__default["default"].oneOfType([PropTypes__default["default"].shape({
397
+ top: PropTypes__default["default"].number,
398
+ left: PropTypes__default["default"].number
399
+ }), PropTypes__default["default"].func])), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "menuOptionsClass", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "onClick", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "onClose", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "onFocus", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "onKeyDown", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "onOpen", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "open", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "renderIcon", PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object])), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "selectorPrimaryFocus", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "size", PropTypes__default["default"].oneOf(['sm', 'md', 'lg'])), _defineProperty2));
511
400
 
512
401
  _rollupPluginBabelHelpers.defineProperty(OverflowMenu, "contextType", usePrefix.PrefixContext);
513
402
 
514
- _rollupPluginBabelHelpers.defineProperty(OverflowMenu, "defaultProps", {
515
- ariaLabel: null,
516
- iconDescription: 'Options',
517
- open: false,
518
- direction: FloatingMenu.DIRECTION_BOTTOM,
519
- flipped: false,
520
- focusTrap: true,
521
- renderIcon: iconsReact.OverflowMenuVertical,
522
- onClick: function onClick() {},
523
- onKeyDown: function onKeyDown() {},
524
- onClose: function onClose() {},
525
- onOpen: function onOpen() {},
526
- menuOffset: getMenuOffset,
527
- menuOffsetFlip: getMenuOffset,
528
- selectorPrimaryFocus: '[data-overflow-menu-primary-focus]'
529
- });
403
+ _rollupPluginBabelHelpers.defineProperty(OverflowMenu, "defaultProps", (_defineProperty3 = {}, _rollupPluginBabelHelpers.defineProperty(_defineProperty3, 'aria-label', null), _rollupPluginBabelHelpers.defineProperty(_defineProperty3, "iconDescription", 'Options'), _rollupPluginBabelHelpers.defineProperty(_defineProperty3, "open", false), _rollupPluginBabelHelpers.defineProperty(_defineProperty3, "direction", FloatingMenu.DIRECTION_BOTTOM), _rollupPluginBabelHelpers.defineProperty(_defineProperty3, "flipped", false), _rollupPluginBabelHelpers.defineProperty(_defineProperty3, "focusTrap", true), _rollupPluginBabelHelpers.defineProperty(_defineProperty3, "renderIcon", iconsReact.OverflowMenuVertical), _rollupPluginBabelHelpers.defineProperty(_defineProperty3, "onClick", function onClick() {}), _rollupPluginBabelHelpers.defineProperty(_defineProperty3, "onKeyDown", function onKeyDown() {}), _rollupPluginBabelHelpers.defineProperty(_defineProperty3, "onClose", function onClose() {}), _rollupPluginBabelHelpers.defineProperty(_defineProperty3, "onOpen", function onOpen() {}), _rollupPluginBabelHelpers.defineProperty(_defineProperty3, "menuOffset", getMenuOffset), _rollupPluginBabelHelpers.defineProperty(_defineProperty3, "menuOffsetFlip", getMenuOffset), _rollupPluginBabelHelpers.defineProperty(_defineProperty3, "selectorPrimaryFocus", '[data-overflow-menu-primary-focus]'), _defineProperty3));
530
404
  ((function () {
531
405
  var forwardRef = function forwardRef(props, ref) {
532
406
  return /*#__PURE__*/React__default["default"].createElement(OverflowMenu, _rollupPluginBabelHelpers["extends"]({}, props, {
@@ -0,0 +1,58 @@
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
+ import React from 'react';
8
+ import { ForwardRefReturn } from '../../types/common';
9
+ export interface OverflowMenuItemProps extends React.HTMLAttributes<HTMLElement> {
10
+ /**
11
+ * The CSS class name to be placed on the button element
12
+ */
13
+ className?: string;
14
+ /**
15
+ * A callback to tell the parent menu component that the menu should be closed.
16
+ */
17
+ closeMenu?: () => void;
18
+ /**
19
+ * `true` to make this menu item disabled.
20
+ */
21
+ disabled?: boolean;
22
+ handleOverflowMenuItemFocus?: (options: {
23
+ currentIndex?: number;
24
+ direction: number;
25
+ }) => void;
26
+ /**
27
+ * `true` to make this menu item a divider.
28
+ */
29
+ hasDivider?: boolean;
30
+ /**
31
+ * If given, overflow item will render as a link with the given href
32
+ */
33
+ href?: string;
34
+ index?: number;
35
+ /**
36
+ * The text to show for the menu item
37
+ */
38
+ itemText?: React.ReactNode;
39
+ /**
40
+ * `true` to make this menu item a danger button.
41
+ */
42
+ isDelete?: boolean;
43
+ /**
44
+ * `true` to require the title attribute.
45
+ */
46
+ requireTitle?: boolean;
47
+ /**
48
+ * The title attribute.
49
+ */
50
+ title?: string;
51
+ /**
52
+ * The CSS class name to be placed on the wrapper element
53
+ */
54
+ wrapperClassName?: string;
55
+ }
56
+ export type OverflowMenuItemComponent = ForwardRefReturn<HTMLElement, OverflowMenuItemProps>;
57
+ declare const OverflowMenuItem: OverflowMenuItemComponent;
58
+ export default OverflowMenuItem;
@@ -13,8 +13,8 @@ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelper
13
13
  var cx = require('classnames');
14
14
  var PropTypes = require('prop-types');
15
15
  var React = require('react');
16
- var warning = require('../../internal/warning.js');
17
16
  var usePrefix = require('../../internal/usePrefix.js');
17
+ var warning = require('../../internal/warning.js');
18
18
  var match = require('../../internal/keyboard/match.js');
19
19
  var keys = require('../../internal/keyboard/keys.js');
20
20
 
@@ -54,14 +54,14 @@ var OverflowMenuItem = /*#__PURE__*/React__default["default"].forwardRef(functio
54
54
 
55
55
  function setTabFocus(evt) {
56
56
  if (match.match(evt, keys.ArrowDown)) {
57
- handleOverflowMenuItemFocus({
57
+ handleOverflowMenuItemFocus === null || handleOverflowMenuItemFocus === void 0 ? void 0 : handleOverflowMenuItemFocus({
58
58
  currentIndex: index,
59
59
  direction: 1
60
60
  });
61
61
  }
62
62
 
63
63
  if (match.match(evt, keys.ArrowUp)) {
64
- handleOverflowMenuItemFocus({
64
+ handleOverflowMenuItemFocus === null || handleOverflowMenuItemFocus === void 0 ? void 0 : handleOverflowMenuItemFocus({
65
65
  currentIndex: index,
66
66
  direction: -1
67
67
  });
@@ -101,17 +101,22 @@ var OverflowMenuItem = /*#__PURE__*/React__default["default"].forwardRef(functio
101
101
  className: overflowMenuBtnClasses,
102
102
  disabled: disabled,
103
103
  href: href,
104
- index: index,
105
104
  onClick: handleClick,
106
105
  onKeyDown: function onKeyDown(evt) {
107
106
  setTabFocus(evt);
108
107
 
109
108
  _onKeyDown(evt);
110
109
  },
111
- role: "menuitem",
110
+ role: "menuitem" // ref as any: the type of `ref` is `ForwardedRef<HTMLButtonElement>` in `Button` component
111
+ // but `OverflowMenuItem` can be rendered as `a` tag as well, which is `HTMLAnchorElement`
112
+ // so we have to use `any` here
113
+ ,
112
114
  ref: ref,
113
- tabIndex: "-1",
114
- title: requireTitle ? title || itemText : null
115
+ tabIndex: -1 // itemText as any: itemText may be a ReactNode, but `title` only accepts string
116
+ // to avoid compatibility issue, we use `any` here. Consider to enforce `itemText` to be `string?`
117
+ // in the next major release
118
+ ,
119
+ title: requireTitle ? title || itemText : undefined
115
120
  }, rest), OverflowMenuItemContent));
116
121
  });
117
122
  OverflowMenuItem.propTypes = {
@@ -14,9 +14,10 @@ var React = require('react');
14
14
  var PropTypes = require('prop-types');
15
15
  var cx = require('classnames');
16
16
  var iconsReact = require('@carbon/icons-react');
17
- var useId = require('../../internal/useId.js');
18
17
  var Menu = require('../Menu/Menu.js');
18
+ var useId = require('../../internal/useId.js');
19
19
  var usePrefix = require('../../internal/usePrefix.js');
20
+ var useAttachedMenu = require('../../internal/useAttachedMenu.js');
20
21
 
21
22
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
23
 
@@ -39,53 +40,16 @@ function OverflowMenuV2(_ref) {
39
40
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
40
41
 
41
42
  var id = useId.useId('overflowmenu');
42
-
43
- var _useState = React.useState(false),
44
- _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
45
- open = _useState2[0],
46
- setOpen = _useState2[1];
47
-
48
- var _useState3 = React.useState([[0, 0], [0, 0]]),
49
- _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
50
- position = _useState4[0],
51
- setPosition = _useState4[1];
52
-
53
- var triggerRef = React.useRef(null);
54
43
  var prefix = usePrefix.usePrefix();
44
+ var triggerRef = React.useRef(null);
55
45
 
56
- function openMenu() {
57
- if (triggerRef.current) {
58
- var _triggerRef$current$g = triggerRef.current.getBoundingClientRect(),
59
- left = _triggerRef$current$g.left,
60
- top = _triggerRef$current$g.top,
61
- right = _triggerRef$current$g.right,
62
- bottom = _triggerRef$current$g.bottom;
63
-
64
- setPosition([[left, right], [top, bottom]]);
65
- }
66
-
67
- setOpen(true);
68
- }
69
-
70
- function closeMenu() {
71
- setOpen(false);
72
- }
73
-
74
- function handleClick() {
75
- if (open) {
76
- closeMenu();
77
- } else {
78
- openMenu();
79
- }
80
- }
81
-
82
- function handleMousedown(e) {
83
- // prevent default for mousedown on trigger element to avoid
84
- // the "blur" event from firing on the menu as this would close
85
- // it and immediately re-open since "click" event is fired after
86
- // "blur" event.
87
- e.preventDefault();
88
- }
46
+ var _useAttachedMenu = useAttachedMenu.useAttachedMenu(triggerRef),
47
+ open = _useAttachedMenu.open,
48
+ x = _useAttachedMenu.x,
49
+ y = _useAttachedMenu.y,
50
+ handleClick = _useAttachedMenu.handleClick,
51
+ handleMousedown = _useAttachedMenu.handleMousedown,
52
+ handleClose = _useAttachedMenu.handleClose;
89
53
 
90
54
  var containerClasses = cx__default["default"]("".concat(prefix, "--overflow-menu__container"));
91
55
  var triggerClasses = cx__default["default"]("".concat(prefix, "--overflow-menu"), (_classNames = {}, _rollupPluginBabelHelpers.defineProperty(_classNames, "".concat(prefix, "--overflow-menu--open"), open), _rollupPluginBabelHelpers.defineProperty(_classNames, className, className), _classNames), size !== defaultSize && "".concat(prefix, "--overflow-menu--").concat(size));
@@ -106,9 +70,9 @@ function OverflowMenuV2(_ref) {
106
70
  id: id,
107
71
  size: size,
108
72
  open: open,
109
- onClose: closeMenu,
110
- x: position[0],
111
- y: position[1]
73
+ onClose: handleClose,
74
+ x: x,
75
+ y: y
112
76
  }, children));
113
77
  }
114
78
 
@@ -13,7 +13,7 @@ interface PopoverBaseProps {
13
13
  */
14
14
  align?: PopoverAlignment;
15
15
  /**
16
- * Will auto-align the popover on first render if it is not visible. This prop is currently experimental and is subject to futurue changes.
16
+ * Will auto-align the popover on first render if it is not visible. This prop is currently experimental and is subject to future changes.
17
17
  */
18
18
  autoAlign?: boolean;
19
19
  /**
@@ -37,6 +37,10 @@ interface PopoverBaseProps {
37
37
  * Render the component using the high-contrast variant
38
38
  */
39
39
  highContrast?: boolean;
40
+ /**
41
+ * Render the component using the tab tip variant
42
+ */
43
+ isTabTip?: boolean;
40
44
  /**
41
45
  * Specify whether the component is currently open or closed
42
46
  */
@@ -23,7 +23,7 @@ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
23
23
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
24
24
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
25
 
26
- var _excluded = ["align", "as", "autoAlign", "caret", "className", "children", "dropShadow", "highContrast", "open"],
26
+ var _excluded = ["isTabTip", "align", "as", "autoAlign", "caret", "className", "children", "dropShadow", "highContrast", "open"],
27
27
  _excluded2 = ["className", "children"];
28
28
  var PopoverContext = /*#__PURE__*/React__default["default"].createContext({
29
29
  floating: {
@@ -33,13 +33,14 @@ var PopoverContext = /*#__PURE__*/React__default["default"].createContext({
33
33
  var Popover = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, forwardRef) {
34
34
  var _cx;
35
35
 
36
- var _ref$align = _ref.align,
37
- align = _ref$align === void 0 ? 'bottom' : _ref$align,
36
+ var isTabTip = _ref.isTabTip,
37
+ _ref$align = _ref.align,
38
+ align = _ref$align === void 0 ? isTabTip ? 'bottom-left' : 'bottom' : _ref$align,
38
39
  as = _ref.as,
39
40
  _ref$autoAlign = _ref.autoAlign,
40
41
  autoAlign = _ref$autoAlign === void 0 ? false : _ref$autoAlign,
41
42
  _ref$caret = _ref.caret,
42
- caret = _ref$caret === void 0 ? true : _ref$caret,
43
+ caret = _ref$caret === void 0 ? isTabTip ? false : true : _ref$caret,
43
44
  customClassName = _ref.className,
44
45
  children = _ref.children,
45
46
  _ref$dropShadow = _ref.dropShadow,
@@ -57,6 +58,15 @@ var Popover = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
57
58
  floating: floating
58
59
  };
59
60
  }, []);
61
+
62
+ if (isTabTip) {
63
+ var tabTipAlignments = ['bottom-left', 'bottom-right'];
64
+
65
+ if (!tabTipAlignments.includes(align)) {
66
+ align = 'bottom-left';
67
+ }
68
+ }
69
+
60
70
  var ref = useMergedRefs.useMergedRefs([forwardRef, popover]);
61
71
 
62
72
  var _useState = React.useState(false),
@@ -69,13 +79,13 @@ var Popover = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
69
79
  autoAlignment = _useState4[0],
70
80
  setAutoAlignment = _useState4[1];
71
81
 
72
- var className = cx__default["default"]((_cx = {}, _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover-container"), true), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover--caret"), caret), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover--drop-shadow"), dropShadow), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover--high-contrast"), highContrast), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover--open"), open), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover--").concat(autoAlignment), autoAligned), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover--").concat(align), !autoAligned), _cx), customClassName);
82
+ var className = cx__default["default"]((_cx = {}, _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover-container"), true), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover--caret"), caret), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover--drop-shadow"), dropShadow), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover--high-contrast"), highContrast), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover--open"), open), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover--").concat(autoAlignment), autoAligned && !isTabTip), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover--").concat(align), !autoAligned), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--popover--tab-tip"), isTabTip), _cx), customClassName);
73
83
  useIsomorphicEffect["default"](function () {
74
84
  if (!open) {
75
85
  return;
76
86
  }
77
87
 
78
- if (!autoAlign) {
88
+ if (!autoAlign || isTabTip) {
79
89
  setAutoAligned(false);
80
90
  return;
81
91
  }
@@ -166,14 +176,27 @@ var Popover = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
166
176
  setAutoAligned(true);
167
177
  setAutoAlignment(alignment);
168
178
  }
169
- }, [autoAligned, align, autoAlign, prefix, open]);
179
+ }, [autoAligned, align, autoAlign, prefix, open, isTabTip]);
170
180
  var BaseComponent = as !== null && as !== void 0 ? as : 'span';
181
+ var mappedChildren = React__default["default"].Children.map(children, function (child) {
182
+ var item = child;
183
+
184
+ if ((item === null || item === void 0 ? void 0 : item.type) === 'button') {
185
+ var _className = item.props.className;
186
+ var tabTipClasses = cx__default["default"]("".concat(prefix, "--popover--tab-tip__button"), _className);
187
+ return /*#__PURE__*/React__default["default"].cloneElement(item, {
188
+ className: tabTipClasses
189
+ });
190
+ } else {
191
+ return item;
192
+ }
193
+ });
171
194
  return /*#__PURE__*/React__default["default"].createElement(PopoverContext.Provider, {
172
195
  value: value
173
196
  }, /*#__PURE__*/React__default["default"].createElement(BaseComponent, _rollupPluginBabelHelpers["extends"]({}, rest, {
174
197
  className: className,
175
198
  ref: ref
176
- }), children));
199
+ }), isTabTip ? mappedChildren : children));
177
200
  }); // Note: this displayName is temporarily set so that Storybook ArgTable
178
201
  // correctly displays the name of this component
179
202
 
@@ -194,7 +217,7 @@ Popover.propTypes = {
194
217
  as: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].elementType]),
195
218
 
196
219
  /**
197
- * Will auto-align the popover on first render if it is not visible. This prop is currently experimental and is subject to futurue changes.
220
+ * Will auto-align the popover on first render if it is not visible. This prop is currently experimental and is subject to future changes.
198
221
  */
199
222
  autoAlign: PropTypes__default["default"].bool,
200
223
 
@@ -224,6 +247,11 @@ Popover.propTypes = {
224
247
  */
225
248
  highContrast: PropTypes__default["default"].bool,
226
249
 
250
+ /**
251
+ * Render the component using the tab tip variant
252
+ */
253
+ isTabTip: PropTypes__default["default"].bool,
254
+
227
255
  /**
228
256
  * Specify whether the component is currently open or closed
229
257
  */
@@ -0,0 +1,25 @@
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
+ import PropTypes from 'prop-types';
8
+ import React from 'react';
9
+ export interface RadioButtonSkeletonProps extends React.InputHTMLAttributes<HTMLInputElement> {
10
+ /**
11
+ * Specify an optional className to add.
12
+ */
13
+ className?: string;
14
+ }
15
+ declare function RadioButtonSkeleton(props: RadioButtonSkeletonProps): JSX.Element;
16
+ declare namespace RadioButtonSkeleton {
17
+ var propTypes: {
18
+ /**
19
+ * Specify an optional className to add.
20
+ */
21
+ className: PropTypes.Requireable<string>;
22
+ };
23
+ }
24
+ export default RadioButtonSkeleton;
25
+ export { RadioButtonSkeleton };
@@ -23,9 +23,9 @@ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
23
23
 
24
24
  var _excluded = ["className"];
25
25
 
26
- function RadioButtonSkeleton(_ref) {
27
- var className = _ref.className,
28
- rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
26
+ function RadioButtonSkeleton(props) {
27
+ var className = props.className,
28
+ rest = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
29
29
 
30
30
  var prefix = usePrefix.usePrefix();
31
31
  return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
@@ -0,0 +1,64 @@
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
+ import { ReactNodeLike } from 'prop-types';
8
+ import React from 'react';
9
+ type ExcludedAttributes = 'onChange';
10
+ export interface RadioButtonProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, ExcludedAttributes> {
11
+ /**
12
+ * Specify whether the `<RadioButton>` is currently checked
13
+ */
14
+ checked?: boolean;
15
+ /**
16
+ * Provide an optional className to be applied to the containing node
17
+ */
18
+ className?: string;
19
+ /**
20
+ * Specify whether the `<RadioButton>` should be checked by default
21
+ */
22
+ defaultChecked?: boolean;
23
+ /**
24
+ * Specify whether the control is disabled
25
+ */
26
+ disabled?: boolean;
27
+ /**
28
+ * Specify whether the label should be hidden, or not
29
+ */
30
+ hideLabel?: boolean;
31
+ /**
32
+ * Provide a unique id for the underlying `<input>` node
33
+ */
34
+ id?: string;
35
+ /**
36
+ * Provide where label text should be placed
37
+ * NOTE: `top`/`bottom` are deprecated
38
+ */
39
+ labelPosition?: 'left' | 'right';
40
+ /**
41
+ * Provide label text to be read by screen readers when interacting with the
42
+ * control
43
+ */
44
+ labelText: ReactNodeLike;
45
+ /**
46
+ * Provide a name for the underlying `<input>` node
47
+ */
48
+ name?: string;
49
+ /**
50
+ * Provide an optional `onChange` hook that is called each time the value of
51
+ * the underlying `<input>` changes
52
+ */
53
+ onChange?: (value: string | number, name: string | undefined, event: any) => void;
54
+ /**
55
+ * Provide a handler that is invoked when a user clicks on the control
56
+ */
57
+ onClick?: (evt: React.MouseEvent<HTMLInputElement>) => void;
58
+ /**
59
+ * Specify the value of the `<RadioButton>`
60
+ */
61
+ value?: string | number;
62
+ }
63
+ declare const RadioButton: React.ForwardRefExoticComponent<RadioButtonProps & React.RefAttributes<unknown>>;
64
+ export default RadioButton;