@carbon/react 1.69.0-rc.0 → 1.70.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.
- package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +864 -864
- package/es/components/Checkbox/Checkbox.js +1 -1
- package/es/components/ContextMenu/index.d.ts +8 -0
- package/es/components/ContextMenu/useContextMenu.d.ts +21 -0
- package/es/components/ContextMenu/useContextMenu.js +9 -8
- package/es/components/DataTable/DataTable.d.ts +3 -2
- package/es/components/Dropdown/Dropdown.d.ts +2 -2
- package/es/components/FeatureFlags/index.d.ts +3 -1
- package/es/components/FeatureFlags/index.js +5 -2
- package/es/components/FluidComboBox/FluidComboBox.Skeleton.js +5 -5
- package/es/components/FluidDropdown/FluidDropdown.Skeleton.d.ts +15 -0
- package/es/components/FluidDropdown/FluidDropdown.Skeleton.js +6 -8
- package/es/components/FluidDropdown/FluidDropdown.d.ts +101 -0
- package/es/components/FluidDropdown/FluidDropdown.js +1 -2
- package/es/components/FluidDropdown/index.d.ts +13 -0
- package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +5 -5
- package/es/components/FluidSelect/FluidSelect.Skeleton.js +5 -5
- package/es/components/FluidTextArea/FluidTextArea.Skeleton.d.ts +2 -13
- package/es/components/FluidTextArea/FluidTextArea.Skeleton.js +22 -5
- package/es/components/Grid/CSSGrid.js +8 -1
- package/es/components/Grid/Grid.js +4 -0
- package/es/components/ListBox/next/ListBoxSelection.d.ts +9 -1
- package/es/components/ListBox/next/ListBoxSelection.js +12 -5
- package/es/components/MultiSelect/FilterableMultiSelect.d.ts +4 -0
- package/es/components/MultiSelect/FilterableMultiSelect.js +32 -6
- package/es/components/Notification/Notification.js +2 -6
- package/es/components/NumberInput/NumberInput.Skeleton.d.ts +9 -1
- package/es/components/NumberInput/NumberInput.Skeleton.js +7 -2
- package/es/components/Popover/index.js +2 -0
- package/es/components/Tabs/Tabs.js +47 -21
- package/es/components/Tag/SelectableTag.d.ts +17 -1
- package/es/components/Tag/SelectableTag.js +21 -13
- package/es/components/UIShell/HeaderPanel.js +1 -1
- package/es/feature-flags.js +2 -1
- package/es/index.js +3 -3
- package/lib/components/Checkbox/Checkbox.js +1 -1
- package/lib/components/ContextMenu/index.d.ts +8 -0
- package/lib/components/ContextMenu/useContextMenu.d.ts +21 -0
- package/lib/components/ContextMenu/useContextMenu.js +9 -8
- package/lib/components/DataTable/DataTable.d.ts +3 -2
- package/lib/components/Dropdown/Dropdown.d.ts +2 -2
- package/lib/components/FeatureFlags/index.d.ts +3 -1
- package/lib/components/FeatureFlags/index.js +5 -2
- package/lib/components/FluidComboBox/FluidComboBox.Skeleton.js +5 -5
- package/lib/components/FluidDropdown/FluidDropdown.Skeleton.d.ts +15 -0
- package/lib/components/FluidDropdown/FluidDropdown.Skeleton.js +6 -8
- package/lib/components/FluidDropdown/FluidDropdown.d.ts +101 -0
- package/lib/components/FluidDropdown/FluidDropdown.js +1 -2
- package/lib/components/FluidDropdown/index.d.ts +13 -0
- package/lib/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +5 -5
- package/lib/components/FluidSelect/FluidSelect.Skeleton.js +5 -5
- package/lib/components/FluidTextArea/FluidTextArea.Skeleton.d.ts +2 -13
- package/lib/components/FluidTextArea/FluidTextArea.Skeleton.js +24 -5
- package/lib/components/Grid/CSSGrid.js +8 -1
- package/lib/components/Grid/Grid.js +4 -0
- package/lib/components/ListBox/next/ListBoxSelection.d.ts +9 -1
- package/lib/components/ListBox/next/ListBoxSelection.js +12 -5
- package/lib/components/MultiSelect/FilterableMultiSelect.d.ts +4 -0
- package/lib/components/MultiSelect/FilterableMultiSelect.js +32 -6
- package/lib/components/Notification/Notification.js +2 -6
- package/lib/components/NumberInput/NumberInput.Skeleton.d.ts +9 -1
- package/lib/components/NumberInput/NumberInput.Skeleton.js +7 -2
- package/lib/components/Popover/index.js +2 -0
- package/lib/components/Tabs/Tabs.js +47 -21
- package/lib/components/Tag/SelectableTag.d.ts +17 -1
- package/lib/components/Tag/SelectableTag.js +21 -13
- package/lib/components/UIShell/HeaderPanel.js +1 -1
- package/lib/feature-flags.js +2 -1
- package/lib/index.js +6 -6
- package/package.json +12 -10
- package/telemetry.yml +765 -710
|
@@ -138,6 +138,8 @@ const Popover = /*#__PURE__*/React__default["default"].forwardRef(function Popov
|
|
|
138
138
|
strategy: 'fixed',
|
|
139
139
|
// Middleware order matters, arrow should be last
|
|
140
140
|
middleware: [react.offset(!isTabTip ? popoverDimensions?.current?.offset : 0), autoAlign && react.flip({
|
|
141
|
+
fallbackPlacements: align.includes('bottom') ? ['bottom', 'bottom-start', 'bottom-end', 'right', 'right-start', 'right-end', 'left', 'left-start', 'left-end', 'top', 'top-start', 'top-end'] : ['top', 'top-start', 'top-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end'],
|
|
142
|
+
fallbackStrategy: 'initialPlacement',
|
|
141
143
|
fallbackAxisSideDirection: 'start'
|
|
142
144
|
}), react.arrow({
|
|
143
145
|
element: caretRef
|
|
@@ -333,8 +333,8 @@ function TabList(_ref4) {
|
|
|
333
333
|
function onKeyDown(event) {
|
|
334
334
|
if (match.matches(event, [keys.ArrowRight, keys.ArrowLeft, keys.Home, keys.End])) {
|
|
335
335
|
event.preventDefault();
|
|
336
|
-
const
|
|
337
|
-
const activeTabs =
|
|
336
|
+
const filteredTabs = tabs.current.filter(tab => tab !== null);
|
|
337
|
+
const activeTabs = filteredTabs.filter(tab => !tab.disabled);
|
|
338
338
|
const currentIndex = activeTabs.indexOf(tabs.current[activation === 'automatic' ? selectedIndex : activeIndex]);
|
|
339
339
|
const nextIndex = tabs.current.indexOf(activeTabs[getNextIndex(event, activeTabs.length, currentIndex)]);
|
|
340
340
|
if (activation === 'automatic') {
|
|
@@ -345,6 +345,18 @@ function TabList(_ref4) {
|
|
|
345
345
|
tabs.current[nextIndex]?.focus();
|
|
346
346
|
}
|
|
347
347
|
}
|
|
348
|
+
function handleBlur(_ref5) {
|
|
349
|
+
let {
|
|
350
|
+
relatedTarget: currentActiveNode
|
|
351
|
+
} = _ref5;
|
|
352
|
+
if (ref.current?.contains(currentActiveNode)) {
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
// reset active index to selected tab index for manual activation
|
|
356
|
+
if (activation === 'manual') {
|
|
357
|
+
setActiveIndex(selectedIndex);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
348
360
|
useEffectOnce.useEffectOnce(() => {
|
|
349
361
|
const tab = tabs.current[selectedIndex];
|
|
350
362
|
if (scrollIntoView && tab) {
|
|
@@ -430,10 +442,10 @@ function TabList(_ref4) {
|
|
|
430
442
|
}
|
|
431
443
|
}, [activation, activeIndex, selectedIndex, isScrollable, children]);
|
|
432
444
|
usePressable.usePressable(previousButton, {
|
|
433
|
-
onPress(
|
|
445
|
+
onPress(_ref6) {
|
|
434
446
|
let {
|
|
435
447
|
longPress
|
|
436
|
-
} =
|
|
448
|
+
} = _ref6;
|
|
437
449
|
if (!longPress && ref.current) {
|
|
438
450
|
setScrollLeft(Math.max(scrollLeft - ref.current.scrollWidth / tabs.current.length * 1.5, 0));
|
|
439
451
|
}
|
|
@@ -443,10 +455,10 @@ function TabList(_ref4) {
|
|
|
443
455
|
}
|
|
444
456
|
});
|
|
445
457
|
usePressable.usePressable(nextButton, {
|
|
446
|
-
onPress(
|
|
458
|
+
onPress(_ref7) {
|
|
447
459
|
let {
|
|
448
460
|
longPress
|
|
449
|
-
} =
|
|
461
|
+
} = _ref7;
|
|
450
462
|
if (!longPress && ref.current) {
|
|
451
463
|
setScrollLeft(Math.min(scrollLeft + ref.current.scrollWidth / tabs.current.length * 1.5, ref.current.scrollWidth - ref.current.clientWidth));
|
|
452
464
|
}
|
|
@@ -470,7 +482,8 @@ function TabList(_ref4) {
|
|
|
470
482
|
role: "tablist",
|
|
471
483
|
className: `${prefix}--tab--list`,
|
|
472
484
|
onScroll: debouncedOnScroll,
|
|
473
|
-
onKeyDown: onKeyDown
|
|
485
|
+
onKeyDown: onKeyDown,
|
|
486
|
+
onBlur: handleBlur
|
|
474
487
|
}), React__default["default"].Children.map(children, (child, index) => {
|
|
475
488
|
return !reactIs.isElement(child) ? null : /*#__PURE__*/React__default["default"].createElement(TabContext.Provider, {
|
|
476
489
|
value: {
|
|
@@ -555,7 +568,7 @@ TabList.propTypes = {
|
|
|
555
568
|
|
|
556
569
|
// type TabElement = HTMLElement & { disabled?: boolean };
|
|
557
570
|
|
|
558
|
-
function TabListVertical(
|
|
571
|
+
function TabListVertical(_ref8) {
|
|
559
572
|
let {
|
|
560
573
|
activation = 'automatic',
|
|
561
574
|
'aria-label': label,
|
|
@@ -563,7 +576,7 @@ function TabListVertical(_ref7) {
|
|
|
563
576
|
className: customClassName,
|
|
564
577
|
scrollIntoView,
|
|
565
578
|
...rest
|
|
566
|
-
} =
|
|
579
|
+
} = _ref8;
|
|
567
580
|
const {
|
|
568
581
|
activeIndex,
|
|
569
582
|
selectedIndex,
|
|
@@ -580,8 +593,8 @@ function TabListVertical(_ref7) {
|
|
|
580
593
|
function onKeyDown(event) {
|
|
581
594
|
if (match.matches(event, [keys.ArrowDown, keys.ArrowUp, keys.Home, keys.End])) {
|
|
582
595
|
event.preventDefault();
|
|
583
|
-
const
|
|
584
|
-
const activeTabs =
|
|
596
|
+
const filteredTabs = tabs.current.filter(tab => tab !== null);
|
|
597
|
+
const activeTabs = filteredTabs.filter(tab => !tab.disabled);
|
|
585
598
|
const currentIndex = activeTabs.indexOf(tabs.current[activation === 'automatic' ? selectedIndex : activeIndex]);
|
|
586
599
|
const nextIndex = tabs.current.indexOf(activeTabs[getNextIndexVertical(event, activeTabs.length, currentIndex)]);
|
|
587
600
|
if (activation === 'automatic') {
|
|
@@ -592,6 +605,18 @@ function TabListVertical(_ref7) {
|
|
|
592
605
|
tabs.current[nextIndex]?.focus();
|
|
593
606
|
}
|
|
594
607
|
}
|
|
608
|
+
function handleBlur(_ref9) {
|
|
609
|
+
let {
|
|
610
|
+
relatedTarget: currentActiveNode
|
|
611
|
+
} = _ref9;
|
|
612
|
+
if (ref.current?.contains(currentActiveNode)) {
|
|
613
|
+
return;
|
|
614
|
+
}
|
|
615
|
+
// reset active index to selected tab index for manual activation
|
|
616
|
+
if (activation === 'manual') {
|
|
617
|
+
setActiveIndex(selectedIndex);
|
|
618
|
+
}
|
|
619
|
+
}
|
|
595
620
|
useEffectOnce.useEffectOnce(() => {
|
|
596
621
|
if (tabs.current[selectedIndex]?.disabled) {
|
|
597
622
|
const activeTabs = tabs.current.filter(tab => {
|
|
@@ -658,7 +683,8 @@ function TabListVertical(_ref7) {
|
|
|
658
683
|
ref: ref,
|
|
659
684
|
role: "tablist",
|
|
660
685
|
className: `${prefix}--tab--list`,
|
|
661
|
-
onKeyDown: onKeyDown
|
|
686
|
+
onKeyDown: onKeyDown,
|
|
687
|
+
onBlur: handleBlur
|
|
662
688
|
}), React__default["default"].Children.map(children, (child, index) => {
|
|
663
689
|
return !reactIs.isElement(child) ? null : /*#__PURE__*/React__default["default"].createElement(TabContext.Provider, {
|
|
664
690
|
value: {
|
|
@@ -741,7 +767,7 @@ function createLongPressBehavior(ref, direction, setScrollLeft) {
|
|
|
741
767
|
* Tab
|
|
742
768
|
*/
|
|
743
769
|
|
|
744
|
-
const Tab = /*#__PURE__*/React.forwardRef(function Tab(
|
|
770
|
+
const Tab = /*#__PURE__*/React.forwardRef(function Tab(_ref10, forwardRef) {
|
|
745
771
|
let {
|
|
746
772
|
as = 'button',
|
|
747
773
|
children,
|
|
@@ -752,7 +778,7 @@ const Tab = /*#__PURE__*/React.forwardRef(function Tab(_ref8, forwardRef) {
|
|
|
752
778
|
secondaryLabel,
|
|
753
779
|
renderIcon: Icon,
|
|
754
780
|
...rest
|
|
755
|
-
} =
|
|
781
|
+
} = _ref10;
|
|
756
782
|
const prefix = usePrefix.usePrefix();
|
|
757
783
|
const {
|
|
758
784
|
selectedIndex,
|
|
@@ -994,7 +1020,7 @@ Tab.propTypes = {
|
|
|
994
1020
|
* IconTab
|
|
995
1021
|
*/
|
|
996
1022
|
|
|
997
|
-
const IconTab = /*#__PURE__*/React__default["default"].forwardRef(function IconTab(
|
|
1023
|
+
const IconTab = /*#__PURE__*/React__default["default"].forwardRef(function IconTab(_ref11, ref) {
|
|
998
1024
|
let {
|
|
999
1025
|
children,
|
|
1000
1026
|
className: customClassName,
|
|
@@ -1003,7 +1029,7 @@ const IconTab = /*#__PURE__*/React__default["default"].forwardRef(function IconT
|
|
|
1003
1029
|
leaveDelayMs,
|
|
1004
1030
|
label,
|
|
1005
1031
|
...rest
|
|
1006
|
-
} =
|
|
1032
|
+
} = _ref11;
|
|
1007
1033
|
const prefix = usePrefix.usePrefix();
|
|
1008
1034
|
const classNames = cx__default["default"](`${prefix}--tabs__nav-item--icon-only`, customClassName);
|
|
1009
1035
|
return /*#__PURE__*/React__default["default"].createElement(Tooltip.Tooltip, {
|
|
@@ -1052,12 +1078,12 @@ IconTab.propTypes = {
|
|
|
1052
1078
|
* TabPanel
|
|
1053
1079
|
*/
|
|
1054
1080
|
|
|
1055
|
-
const TabPanel = /*#__PURE__*/React__default["default"].forwardRef(function TabPanel(
|
|
1081
|
+
const TabPanel = /*#__PURE__*/React__default["default"].forwardRef(function TabPanel(_ref12, forwardRef) {
|
|
1056
1082
|
let {
|
|
1057
1083
|
children,
|
|
1058
1084
|
className: customClassName,
|
|
1059
1085
|
...rest
|
|
1060
|
-
} =
|
|
1086
|
+
} = _ref12;
|
|
1061
1087
|
const prefix = usePrefix.usePrefix();
|
|
1062
1088
|
const panel = React.useRef(null);
|
|
1063
1089
|
const ref = useMergedRefs.useMergedRefs([forwardRef, panel]);
|
|
@@ -1132,10 +1158,10 @@ TabPanel.propTypes = {
|
|
|
1132
1158
|
* TabPanels
|
|
1133
1159
|
*/
|
|
1134
1160
|
|
|
1135
|
-
function TabPanels(
|
|
1161
|
+
function TabPanels(_ref13) {
|
|
1136
1162
|
let {
|
|
1137
1163
|
children
|
|
1138
|
-
} =
|
|
1164
|
+
} = _ref13;
|
|
1139
1165
|
const prefix = usePrefix.usePrefix();
|
|
1140
1166
|
const refs = React.useRef([]);
|
|
1141
1167
|
const hiddenStates = React.useRef([]);
|
|
@@ -1169,7 +1195,7 @@ function TabPanels(_ref11) {
|
|
|
1169
1195
|
}
|
|
1170
1196
|
});
|
|
1171
1197
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].Children.map(children, (child, index) => {
|
|
1172
|
-
return /*#__PURE__*/React__default["default"].createElement(TabPanelContext.Provider, {
|
|
1198
|
+
return !reactIs.isElement(child) ? null : /*#__PURE__*/React__default["default"].createElement(TabPanelContext.Provider, {
|
|
1173
1199
|
value: index
|
|
1174
1200
|
}, /*#__PURE__*/React__default["default"].cloneElement(child, {
|
|
1175
1201
|
ref: element => {
|
|
@@ -26,6 +26,14 @@ export interface SelectableTagBaseProps {
|
|
|
26
26
|
* Can be a React component class
|
|
27
27
|
*/
|
|
28
28
|
renderIcon?: React.ElementType;
|
|
29
|
+
/**
|
|
30
|
+
* Provide an optional hook that is called when selected is changed
|
|
31
|
+
*/
|
|
32
|
+
onChange?: (selected: boolean) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Provide an optional function to be called when the tag is clicked.
|
|
35
|
+
*/
|
|
36
|
+
onClick?: (e: Event) => void;
|
|
29
37
|
/**
|
|
30
38
|
* Specify the state of the selectable tag.
|
|
31
39
|
*/
|
|
@@ -42,7 +50,7 @@ export interface SelectableTagBaseProps {
|
|
|
42
50
|
}
|
|
43
51
|
export type SelectableTagProps<T extends React.ElementType> = PolymorphicProps<T, SelectableTagBaseProps>;
|
|
44
52
|
declare const SelectableTag: {
|
|
45
|
-
<T extends React.ElementType<any, keyof React.JSX.IntrinsicElements>>({ className, disabled, id, renderIcon, selected, size, text, ...other }: SelectableTagProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
53
|
+
<T extends React.ElementType<any, keyof React.JSX.IntrinsicElements>>({ className, disabled, id, renderIcon, onChange, onClick, selected, size, text, ...other }: SelectableTagProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
46
54
|
propTypes: {
|
|
47
55
|
/**
|
|
48
56
|
* Provide a custom className that is applied to the containing <span>
|
|
@@ -61,6 +69,14 @@ declare const SelectableTag: {
|
|
|
61
69
|
* Can be a React component class
|
|
62
70
|
*/
|
|
63
71
|
renderIcon: PropTypes.Requireable<object>;
|
|
72
|
+
/**
|
|
73
|
+
* Provide an optional hook that is called when selected is changed
|
|
74
|
+
*/
|
|
75
|
+
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
76
|
+
/**
|
|
77
|
+
* Provide an optional function to be called when the tag is clicked.
|
|
78
|
+
*/
|
|
79
|
+
onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
64
80
|
/**
|
|
65
81
|
* Specify the state of the selectable tag.
|
|
66
82
|
*/
|
|
@@ -34,6 +34,8 @@ const SelectableTag = _ref => {
|
|
|
34
34
|
disabled,
|
|
35
35
|
id,
|
|
36
36
|
renderIcon,
|
|
37
|
+
onChange,
|
|
38
|
+
onClick,
|
|
37
39
|
selected = false,
|
|
38
40
|
size,
|
|
39
41
|
text,
|
|
@@ -52,13 +54,11 @@ const SelectableTag = _ref => {
|
|
|
52
54
|
setIsEllipsisApplied(isEllipsisActive.isEllipsisActive(newElement));
|
|
53
55
|
}, [prefix, tagRef]);
|
|
54
56
|
const tooltipClasses = cx__default["default"](`${prefix}--icon-tooltip`, `${prefix}--tag-label-tooltip`);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
...otherProps
|
|
61
|
-
} = other;
|
|
57
|
+
const handleClick = e => {
|
|
58
|
+
setSelectedTag(!selectedTag);
|
|
59
|
+
onChange?.(!selectedTag);
|
|
60
|
+
onClick?.(e);
|
|
61
|
+
};
|
|
62
62
|
if (isEllipsisApplied) {
|
|
63
63
|
return /*#__PURE__*/React__default["default"].createElement(Tooltip.Tooltip, {
|
|
64
64
|
label: text,
|
|
@@ -67,29 +67,29 @@ const SelectableTag = _ref => {
|
|
|
67
67
|
leaveDelayMs: 0,
|
|
68
68
|
onMouseEnter: () => false
|
|
69
69
|
}, /*#__PURE__*/React__default["default"].createElement(Tag["default"], _rollupPluginBabelHelpers["extends"]({
|
|
70
|
-
"aria-pressed": selectedTag,
|
|
70
|
+
"aria-pressed": selectedTag !== false,
|
|
71
71
|
ref: tagRef,
|
|
72
72
|
size: size,
|
|
73
73
|
renderIcon: renderIcon,
|
|
74
74
|
disabled: disabled,
|
|
75
75
|
className: tagClasses,
|
|
76
76
|
id: tagId,
|
|
77
|
-
onClick:
|
|
78
|
-
},
|
|
77
|
+
onClick: handleClick
|
|
78
|
+
}, other), /*#__PURE__*/React__default["default"].createElement(Text.Text, {
|
|
79
79
|
title: text,
|
|
80
80
|
className: `${prefix}--tag__label`
|
|
81
81
|
}, text)));
|
|
82
82
|
}
|
|
83
83
|
return /*#__PURE__*/React__default["default"].createElement(Tag["default"], _rollupPluginBabelHelpers["extends"]({
|
|
84
|
-
"aria-pressed": selectedTag,
|
|
84
|
+
"aria-pressed": selectedTag !== false,
|
|
85
85
|
ref: tagRef,
|
|
86
86
|
size: size,
|
|
87
87
|
renderIcon: renderIcon,
|
|
88
88
|
disabled: disabled,
|
|
89
89
|
className: tagClasses,
|
|
90
90
|
id: tagId,
|
|
91
|
-
onClick:
|
|
92
|
-
},
|
|
91
|
+
onClick: handleClick
|
|
92
|
+
}, other), /*#__PURE__*/React__default["default"].createElement(Text.Text, {
|
|
93
93
|
title: text,
|
|
94
94
|
className: `${prefix}--tag__label`
|
|
95
95
|
}, text));
|
|
@@ -112,6 +112,14 @@ SelectableTag.propTypes = {
|
|
|
112
112
|
* Can be a React component class
|
|
113
113
|
*/
|
|
114
114
|
renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
|
|
115
|
+
/**
|
|
116
|
+
* Provide an optional hook that is called when selected is changed
|
|
117
|
+
*/
|
|
118
|
+
onChange: PropTypes__default["default"].func,
|
|
119
|
+
/**
|
|
120
|
+
* Provide an optional function to be called when the tag is clicked.
|
|
121
|
+
*/
|
|
122
|
+
onClick: PropTypes__default["default"].func,
|
|
115
123
|
/**
|
|
116
124
|
* Specify the state of the selectable tag.
|
|
117
125
|
*/
|
|
@@ -72,7 +72,7 @@ const HeaderPanel = /*#__PURE__*/React__default["default"].forwardRef(function H
|
|
|
72
72
|
const focusedElement = document.activeElement;
|
|
73
73
|
setLastClickedElement(focusedElement);
|
|
74
74
|
const childJsxElement = children;
|
|
75
|
-
if (childJsxElement
|
|
75
|
+
if (childJsxElement?.type?.displayName === 'Switcher' && !focusedElement?.closest(`.${prefix}--header-panel--expanded`) && !focusedElement?.closest(`.${prefix}--header__action`) && !headerPanelReference?.current?.classList.contains(`${prefix}--switcher`) && expanded) {
|
|
76
76
|
setExpandedState(false);
|
|
77
77
|
onHeaderPanelFocus();
|
|
78
78
|
}
|
package/lib/feature-flags.js
CHANGED
|
@@ -35,5 +35,6 @@ FeatureFlags__namespace.merge({
|
|
|
35
35
|
'enable-v11-release': true,
|
|
36
36
|
'enable-experimental-tile-contrast': false,
|
|
37
37
|
'enable-v12-tile-radio-icons': false,
|
|
38
|
-
'enable-v12-structured-list-visible-icons': false
|
|
38
|
+
'enable-v12-structured-list-visible-icons': false,
|
|
39
|
+
'enable-v12-dynamic-floating-styles': false
|
|
39
40
|
});
|
package/lib/index.js
CHANGED
|
@@ -33,6 +33,7 @@ var ModalHeader = require('./components/ComposedModal/ModalHeader.js');
|
|
|
33
33
|
var ModalFooter = require('./components/ComposedModal/ModalFooter.js');
|
|
34
34
|
require('./components/ContainedList/index.js');
|
|
35
35
|
var index$6 = require('./components/ContentSwitcher/index.js');
|
|
36
|
+
var useContextMenu = require('./components/ContextMenu/useContextMenu.js');
|
|
36
37
|
var Copy = require('./components/Copy/Copy.js');
|
|
37
38
|
var CopyButton = require('./components/CopyButton/CopyButton.js');
|
|
38
39
|
var DangerButton = require('./components/DangerButton/DangerButton.js');
|
|
@@ -169,6 +170,8 @@ var FluidComboBox_Skeleton = require('./components/FluidComboBox/FluidComboBox.S
|
|
|
169
170
|
var FluidDatePicker = require('./components/FluidDatePicker/FluidDatePicker.js');
|
|
170
171
|
var FluidDatePicker_Skeleton = require('./components/FluidDatePicker/FluidDatePicker.Skeleton.js');
|
|
171
172
|
var FluidDatePickerInput = require('./components/FluidDatePickerInput/FluidDatePickerInput.js');
|
|
173
|
+
var FluidDropdown = require('./components/FluidDropdown/FluidDropdown.js');
|
|
174
|
+
var FluidDropdown_Skeleton = require('./components/FluidDropdown/FluidDropdown.Skeleton.js');
|
|
172
175
|
var FluidMultiSelect = require('./components/FluidMultiSelect/FluidMultiSelect.js');
|
|
173
176
|
var FluidMultiSelect_Skeleton = require('./components/FluidMultiSelect/FluidMultiSelect.Skeleton.js');
|
|
174
177
|
var FluidSelect = require('./components/FluidSelect/FluidSelect.js');
|
|
@@ -206,12 +209,9 @@ var PageSelector = require('./components/Pagination/experimental/PageSelector.js
|
|
|
206
209
|
var Pagination = require('./components/Pagination/experimental/Pagination.js');
|
|
207
210
|
var ContainedListItem = require('./components/ContainedList/ContainedListItem/ContainedListItem.js');
|
|
208
211
|
var ContainedList = require('./components/ContainedList/ContainedList.js');
|
|
209
|
-
var useContextMenu = require('./components/ContextMenu/useContextMenu.js');
|
|
210
212
|
var Slider_Skeleton = require('./components/Slider/Slider.Skeleton.js');
|
|
211
213
|
var TextInput_Skeleton = require('./components/TextInput/TextInput.Skeleton.js');
|
|
212
214
|
var TextInput = require('./components/TextInput/TextInput.js');
|
|
213
|
-
var FluidDropdown = require('./components/FluidDropdown/FluidDropdown.js');
|
|
214
|
-
var FluidDropdown_Skeleton = require('./components/FluidDropdown/FluidDropdown.Skeleton.js');
|
|
215
215
|
var LayoutDirection = require('./components/LayoutDirection/LayoutDirection.js');
|
|
216
216
|
var useLayoutDirection = require('./components/LayoutDirection/useLayoutDirection.js');
|
|
217
217
|
var Text = require('./components/Text/Text.js');
|
|
@@ -270,6 +270,7 @@ exports.ModalBody = ComposedModal.ModalBody;
|
|
|
270
270
|
exports.ModalHeader = ModalHeader.ModalHeader;
|
|
271
271
|
exports.ModalFooter = ModalFooter.ModalFooter;
|
|
272
272
|
exports.ContentSwitcher = index$6["default"];
|
|
273
|
+
exports.useContextMenu = useContextMenu["default"];
|
|
273
274
|
exports.Copy = Copy["default"];
|
|
274
275
|
exports.CopyButton = CopyButton["default"];
|
|
275
276
|
exports.DangerButton = DangerButton["default"];
|
|
@@ -437,6 +438,8 @@ exports.unstable__FluidComboBoxSkeleton = FluidComboBox_Skeleton["default"];
|
|
|
437
438
|
exports.unstable__FluidDatePicker = FluidDatePicker["default"];
|
|
438
439
|
exports.unstable__FluidDatePickerSkeleton = FluidDatePicker_Skeleton["default"];
|
|
439
440
|
exports.unstable__FluidDatePickerInput = FluidDatePickerInput["default"];
|
|
441
|
+
exports.unstable__FluidDropdown = FluidDropdown["default"];
|
|
442
|
+
exports.unstable__FluidDropdownSkeleton = FluidDropdown_Skeleton["default"];
|
|
440
443
|
exports.unstable__FluidMultiSelect = FluidMultiSelect["default"];
|
|
441
444
|
exports.unstable__FluidMultiSelectSkeleton = FluidMultiSelect_Skeleton["default"];
|
|
442
445
|
exports.unstable__FluidSelect = FluidSelect["default"];
|
|
@@ -489,12 +492,9 @@ exports.unstable_PageSelector = PageSelector["default"];
|
|
|
489
492
|
exports.unstable_Pagination = Pagination["default"];
|
|
490
493
|
exports.ContainedListItem = ContainedListItem["default"];
|
|
491
494
|
exports.ContainedList = ContainedList["default"];
|
|
492
|
-
exports.useContextMenu = useContextMenu["default"];
|
|
493
495
|
exports.SliderSkeleton = Slider_Skeleton["default"];
|
|
494
496
|
exports.TextInputSkeleton = TextInput_Skeleton["default"];
|
|
495
497
|
exports.TextInput = TextInput["default"];
|
|
496
|
-
exports.unstable__FluidDropdown = FluidDropdown["default"];
|
|
497
|
-
exports.unstable__FluidDropdownSkeleton = FluidDropdown_Skeleton["default"];
|
|
498
498
|
exports.unstable_LayoutDirection = LayoutDirection.LayoutDirection;
|
|
499
499
|
exports.unstable_useLayoutDirection = useLayoutDirection.useLayoutDirection;
|
|
500
500
|
exports.unstable_Text = Text.Text;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carbon/react",
|
|
3
3
|
"description": "React components for the Carbon Design System",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.70.0-rc.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "es/index.js",
|
|
@@ -39,7 +39,8 @@
|
|
|
39
39
|
"clean": "rimraf es lib icons/index.js icons/index.d.ts icons/index.esm.js storybook-static",
|
|
40
40
|
"postinstall": "ibmtelemetry --config=telemetry.yml",
|
|
41
41
|
"storybook": "storybook dev -p 3000",
|
|
42
|
-
"storybook:build": "storybook build"
|
|
42
|
+
"storybook:build": "storybook build",
|
|
43
|
+
"telemetry:config": "npx -y @ibm/telemetry-js-config-generator generate --id fd89d12b-6a39-48b4-adf4-30c94dc0dddd --endpoint https://www-api.ibm.com/ibm-telemetry/v1/metrics --files ./src/components/**/*.(tsx|js|jsx)"
|
|
43
44
|
},
|
|
44
45
|
"peerDependencies": {
|
|
45
46
|
"react": "^16.8.6 || ^17.0.1 || ^18.2.0",
|
|
@@ -48,10 +49,10 @@
|
|
|
48
49
|
},
|
|
49
50
|
"dependencies": {
|
|
50
51
|
"@babel/runtime": "^7.24.7",
|
|
51
|
-
"@carbon/feature-flags": "^0.24.0
|
|
52
|
-
"@carbon/icons-react": "^11.52.0
|
|
53
|
-
"@carbon/layout": "^11.28.0
|
|
54
|
-
"@carbon/styles": "^1.
|
|
52
|
+
"@carbon/feature-flags": "^0.24.0",
|
|
53
|
+
"@carbon/icons-react": "^11.52.0",
|
|
54
|
+
"@carbon/layout": "^11.28.0",
|
|
55
|
+
"@carbon/styles": "^1.69.0-rc.0",
|
|
55
56
|
"@floating-ui/react": "^0.26.0",
|
|
56
57
|
"@ibm/telemetry-js": "^1.5.0",
|
|
57
58
|
"classnames": "2.5.1",
|
|
@@ -79,11 +80,11 @@
|
|
|
79
80
|
"@babel/preset-env": "^7.24.7",
|
|
80
81
|
"@babel/preset-react": "^7.24.7",
|
|
81
82
|
"@babel/preset-typescript": "^7.24.7",
|
|
82
|
-
"@carbon/test-utils": "^10.
|
|
83
|
-
"@carbon/themes": "^11.43.0
|
|
83
|
+
"@carbon/test-utils": "^10.34.0",
|
|
84
|
+
"@carbon/themes": "^11.43.0",
|
|
84
85
|
"@figma/code-connect": "^1.1.4",
|
|
85
86
|
"@rollup/plugin-babel": "^6.0.0",
|
|
86
|
-
"@rollup/plugin-commonjs": "^
|
|
87
|
+
"@rollup/plugin-commonjs": "^28.0.0",
|
|
87
88
|
"@rollup/plugin-node-resolve": "^15.0.0",
|
|
88
89
|
"@rollup/plugin-typescript": "^11.0.0",
|
|
89
90
|
"@storybook/addon-a11y": "^8.2.8",
|
|
@@ -114,6 +115,7 @@
|
|
|
114
115
|
"mini-css-extract-plugin": "^2.4.5",
|
|
115
116
|
"postcss": "^8.4.5",
|
|
116
117
|
"postcss-loader": "^8.0.0",
|
|
118
|
+
"prettier2": "npm:prettier@2",
|
|
117
119
|
"process": "^0.11.10",
|
|
118
120
|
"prop-types": "^15.7.2",
|
|
119
121
|
"react": "^18.2.0",
|
|
@@ -144,5 +146,5 @@
|
|
|
144
146
|
"**/*.scss",
|
|
145
147
|
"**/*.css"
|
|
146
148
|
],
|
|
147
|
-
"gitHead": "
|
|
149
|
+
"gitHead": "8708f6dfd38bea7d5bd6d14ce34293c014cba87c"
|
|
148
150
|
}
|