@carbon/ibm-products 2.73.1 → 2.74.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 (154) hide show
  1. package/css/index-full-carbon.css +56 -6
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +5 -1
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +1 -1
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +56 -6
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +1 -1
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +56 -6
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +1 -1
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/AboutModal/AboutModal.d.ts +17 -23
  18. package/es/components/AboutModal/AboutModal.js +17 -23
  19. package/es/components/AddSelect/AddSelectBody.js +1 -1
  20. package/es/components/Carousel/Carousel.js +1 -1
  21. package/es/components/Coachmark/Coachmark.d.ts +4 -0
  22. package/es/components/Coachmark/Coachmark.js +9 -2
  23. package/es/components/Coachmark/CoachmarkDragbar.d.ts +0 -4
  24. package/es/components/Coachmark/CoachmarkDragbar.js +2 -6
  25. package/es/components/Coachmark/CoachmarkHeader.d.ts +0 -4
  26. package/es/components/Coachmark/CoachmarkHeader.js +2 -2
  27. package/es/components/Coachmark/CoachmarkTagline.js +5 -3
  28. package/es/components/Coachmark/next/Coachmark/Coachmark.d.ts +1 -22
  29. package/es/components/Coachmark/next/Coachmark/Coachmark.js +14 -29
  30. package/es/components/Coachmark/next/Coachmark/CoachmarkBeacon/CoachmarkBeacon.d.ts +1 -0
  31. package/es/components/Coachmark/next/Coachmark/CoachmarkBubble/CoachmarkBubble.js +13 -2
  32. package/es/components/Coachmark/next/Coachmark/CoachmarkContent.js +2 -2
  33. package/es/components/Coachmark/next/Coachmark/ContentBody.js +1 -1
  34. package/es/components/Coachmark/next/Coachmark/ContentHeader.js +15 -1
  35. package/es/components/Coachmark/next/Coachmark/context.d.ts +25 -0
  36. package/es/components/Coachmark/next/Coachmark/context.js +28 -0
  37. package/es/components/Coachmark/utils/context.d.ts +2 -2
  38. package/es/components/CoachmarkFixed/CoachmarkFixed.d.ts +4 -0
  39. package/es/components/CoachmarkFixed/CoachmarkFixed.js +6 -1
  40. package/es/components/CoachmarkStack/CoachmarkStack.d.ts +4 -0
  41. package/es/components/CoachmarkStack/CoachmarkStack.js +7 -1
  42. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +11 -7
  43. package/es/components/ConditionBuilder/ConditionBuilder.js +11 -2
  44. package/es/components/ConditionBuilder/ConditionBuilder.types.d.ts +10 -0
  45. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +10 -5
  46. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +14 -3
  47. package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +2 -2
  48. package/es/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +1 -1
  49. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +5 -4
  50. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +2 -1
  51. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +8 -2
  52. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +4 -3
  53. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +20 -4
  54. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +1 -1
  55. package/es/components/ConditionBuilder/index.d.ts +1 -0
  56. package/es/components/ConditionBuilder/utils/handleKeyboardEvents.js +12 -7
  57. package/es/components/ConditionBuilder/utils/useDataConfigs.d.ts +1 -1
  58. package/es/components/ConditionBuilder/utils/util.d.ts +1 -1
  59. package/es/components/ConditionBuilder/utils/util.js +2 -2
  60. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +1 -1
  61. package/es/components/EmptyStates/EmptyState.js +1 -1
  62. package/es/components/EmptyStates/{EmptyStateV2.js → EmptyStateV2.deprecated.js} +1 -1
  63. package/es/components/EmptyStates/index.d.ts +2 -2
  64. package/es/components/NotificationsPanel/NotificationsPanel.js +1 -1
  65. package/es/components/SidePanel/SidePanel.d.ts +1 -0
  66. package/es/components/SidePanel/SidePanel.js +1 -0
  67. package/es/components/StepFlow/StepContext.d.ts +14 -0
  68. package/es/components/StepFlow/StepGroup.d.ts +10 -0
  69. package/es/components/StepFlow/index.d.ts +9 -0
  70. package/es/components/StepFlow/story-assets/SidePanel/Example.d.ts +8 -0
  71. package/es/components/StepFlow/story-assets/SidePanel/StepSidePanel.d.ts +20 -0
  72. package/es/components/StepFlow/story-assets/StepActions.d.ts +23 -0
  73. package/es/components/StepFlow/story-assets/Tearsheet/Example.d.ts +8 -0
  74. package/es/components/StepFlow/story-assets/Tearsheet/StepTearsheet.d.ts +20 -0
  75. package/es/components/StepFlow/types.d.ts +22 -0
  76. package/es/components/TruncatedText/TruncatedText.js +4 -2
  77. package/es/global/js/utils/makeDraggable/makeDraggable.js +28 -0
  78. package/es/index.js +1 -1
  79. package/lib/components/AboutModal/AboutModal.d.ts +17 -23
  80. package/lib/components/AboutModal/AboutModal.js +17 -23
  81. package/lib/components/AddSelect/AddSelectBody.js +1 -1
  82. package/lib/components/Carousel/Carousel.js +1 -1
  83. package/lib/components/Coachmark/Coachmark.d.ts +4 -0
  84. package/lib/components/Coachmark/Coachmark.js +9 -2
  85. package/lib/components/Coachmark/CoachmarkDragbar.d.ts +0 -4
  86. package/lib/components/Coachmark/CoachmarkDragbar.js +2 -6
  87. package/lib/components/Coachmark/CoachmarkHeader.d.ts +0 -4
  88. package/lib/components/Coachmark/CoachmarkHeader.js +2 -2
  89. package/lib/components/Coachmark/CoachmarkTagline.js +5 -3
  90. package/lib/components/Coachmark/next/Coachmark/Coachmark.d.ts +1 -22
  91. package/lib/components/Coachmark/next/Coachmark/Coachmark.js +16 -33
  92. package/lib/components/Coachmark/next/Coachmark/CoachmarkBeacon/CoachmarkBeacon.d.ts +1 -0
  93. package/lib/components/Coachmark/next/Coachmark/CoachmarkBubble/CoachmarkBubble.js +13 -2
  94. package/lib/components/Coachmark/next/Coachmark/CoachmarkContent.js +5 -5
  95. package/lib/components/Coachmark/next/Coachmark/ContentBody.js +2 -2
  96. package/lib/components/Coachmark/next/Coachmark/ContentHeader.js +17 -3
  97. package/lib/components/Coachmark/next/Coachmark/context.d.ts +25 -0
  98. package/lib/components/Coachmark/next/Coachmark/context.js +31 -0
  99. package/lib/components/Coachmark/utils/context.d.ts +2 -2
  100. package/lib/components/CoachmarkFixed/CoachmarkFixed.d.ts +4 -0
  101. package/lib/components/CoachmarkFixed/CoachmarkFixed.js +6 -1
  102. package/lib/components/CoachmarkStack/CoachmarkStack.d.ts +4 -0
  103. package/lib/components/CoachmarkStack/CoachmarkStack.js +7 -1
  104. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +11 -7
  105. package/lib/components/ConditionBuilder/ConditionBuilder.js +11 -2
  106. package/lib/components/ConditionBuilder/ConditionBuilder.types.d.ts +10 -0
  107. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +10 -5
  108. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +13 -2
  109. package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +2 -2
  110. package/lib/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +1 -1
  111. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +5 -4
  112. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +2 -1
  113. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +8 -2
  114. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +4 -3
  115. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +20 -4
  116. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +1 -1
  117. package/lib/components/ConditionBuilder/index.d.ts +1 -0
  118. package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.js +11 -6
  119. package/lib/components/ConditionBuilder/utils/useDataConfigs.d.ts +1 -1
  120. package/lib/components/ConditionBuilder/utils/util.d.ts +1 -1
  121. package/lib/components/ConditionBuilder/utils/util.js +2 -2
  122. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +1 -1
  123. package/lib/components/EmptyStates/EmptyState.js +2 -2
  124. package/lib/components/EmptyStates/{EmptyStateV2.js → EmptyStateV2.deprecated.js} +2 -2
  125. package/lib/components/EmptyStates/index.d.ts +2 -2
  126. package/lib/components/NotificationsPanel/NotificationsPanel.js +1 -1
  127. package/lib/components/SidePanel/SidePanel.d.ts +1 -0
  128. package/lib/components/SidePanel/SidePanel.js +1 -0
  129. package/lib/components/StepFlow/StepContext.d.ts +14 -0
  130. package/lib/components/StepFlow/StepGroup.d.ts +10 -0
  131. package/lib/components/StepFlow/index.d.ts +9 -0
  132. package/lib/components/StepFlow/story-assets/SidePanel/Example.d.ts +8 -0
  133. package/lib/components/StepFlow/story-assets/SidePanel/StepSidePanel.d.ts +20 -0
  134. package/lib/components/StepFlow/story-assets/StepActions.d.ts +23 -0
  135. package/lib/components/StepFlow/story-assets/Tearsheet/Example.d.ts +8 -0
  136. package/lib/components/StepFlow/story-assets/Tearsheet/StepTearsheet.d.ts +20 -0
  137. package/lib/components/StepFlow/types.d.ts +22 -0
  138. package/lib/components/TruncatedText/TruncatedText.js +4 -2
  139. package/lib/global/js/utils/makeDraggable/makeDraggable.js +28 -0
  140. package/lib/index.js +2 -2
  141. package/package.json +7 -7
  142. package/scss/components/Coachmark/_coachmark.scss +7 -0
  143. package/scss/components/ConditionBuilder/styles/_conditionBuilderCondition.scss +24 -0
  144. package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +26 -12
  145. package/scss/components/SidePanel/_side-panel.scss +6 -1
  146. package/scss/components/Tearsheet/_tearsheet.scss +1 -0
  147. package/scss/components/TruncatedText/_truncated-text.scss +1 -0
  148. package/telemetry.yml +1 -1
  149. /package/es/components/EmptyStates/{EmptyStateIllustration.d.ts → EmptyStateIllustration.deprecated.d.ts} +0 -0
  150. /package/es/components/EmptyStates/{EmptyStateIllustration.js → EmptyStateIllustration.deprecated.js} +0 -0
  151. /package/es/components/EmptyStates/{EmptyStateV2.d.ts → EmptyStateV2.deprecated.d.ts} +0 -0
  152. /package/lib/components/EmptyStates/{EmptyStateIllustration.d.ts → EmptyStateIllustration.deprecated.d.ts} +0 -0
  153. /package/lib/components/EmptyStates/{EmptyStateIllustration.js → EmptyStateIllustration.deprecated.js} +0 -0
  154. /package/lib/components/EmptyStates/{EmptyStateV2.d.ts → EmptyStateV2.deprecated.d.ts} +0 -0
@@ -93,6 +93,14 @@ export type Property = Item & {
93
93
  description?: string;
94
94
  type?: any;
95
95
  config?: any;
96
+ getIsDisabled?: (args: {
97
+ conditionState: Condition;
98
+ group?: ConditionGroup;
99
+ }) => boolean;
100
+ getIsHidden?: (args: {
101
+ conditionState: Condition;
102
+ group?: ConditionGroup;
103
+ }) => boolean;
96
104
  } & ConfigType;
97
105
  export type inputConfig = {
98
106
  properties: Property[];
@@ -149,6 +157,7 @@ export type ConditionBuilderProps = {
149
157
  onAddItem?: (config: AddItemConfig) => {
150
158
  preventAdd: boolean;
151
159
  };
160
+ readOnly?: boolean;
152
161
  };
153
162
  export type InitialState = {
154
163
  state: ConditionBuilderState;
@@ -163,6 +172,7 @@ export interface ConditionBuilderContextInputProps extends PropsWithChildren {
163
172
  translateWithId?: (id: ConditionBuilderTextKeys) => string;
164
173
  statementConfigCustom?: statementConfig[];
165
174
  conditionBuilderRef?: ForwardedRef<HTMLDivElement>;
175
+ readOnly?: boolean;
166
176
  }
167
177
  export type ConditionBuilderContextProps = {
168
178
  rootState?: ConditionBuilderState;
@@ -30,11 +30,15 @@ const ConditionBuilderActions = _ref => {
30
30
  } = _ref;
31
31
  const {
32
32
  actionState = [],
33
- setActionState
33
+ setActionState,
34
+ readOnly
34
35
  } = React.useContext(ConditionBuilderProvider.ConditionBuilderContext);
35
36
  const [showDeletionPreview, setShowDeletionPreview] = React.useState(-1);
36
37
  const [actionsText, thenText, andText, removeActionText, addActionText, actionSectionText] = useTranslations.useTranslations(['actionsText', 'then', 'and', 'removeActionText', 'addActionText', 'actionSectionText']);
37
38
  const addActionHandler = () => {
39
+ if (readOnly) {
40
+ return;
41
+ }
38
42
  const action = {
39
43
  id: uuidv4.default(),
40
44
  label: undefined,
@@ -79,14 +83,15 @@ const ConditionBuilderActions = _ref => {
79
83
  }, /*#__PURE__*/React.createElement(ConditionBuilderItem.ConditionBuilderItem, {
80
84
  className: `${util.blockClass}__statement-button`,
81
85
  tabIndex: 0,
82
- popOverClassName: `${util.blockClass}__gap`,
86
+ popOverClassName: `${util.blockClass}__gap ${util.blockClass}__connector`,
83
87
  label: index === 0 ? thenText : andText
84
88
  }), /*#__PURE__*/React.createElement(ConditionBuilderItem.ConditionBuilderItem, {
85
89
  label: action.label,
86
90
  title: actionsText,
87
91
  condition: action,
88
92
  "data-name": "valueField",
89
- type: "option"
93
+ type: "option",
94
+ popOverClassName: `${util.blockClass}__action-block`
90
95
  }, /*#__PURE__*/React.createElement(ItemOptionForValueField.ItemOptionForValueField, {
91
96
  conditionState: {
92
97
  value: action.label
@@ -95,7 +100,7 @@ const ConditionBuilderActions = _ref => {
95
100
  config: {
96
101
  options: actions
97
102
  }
98
- })), /*#__PURE__*/React.createElement("span", {
103
+ })), !readOnly && /*#__PURE__*/React.createElement("span", {
99
104
  role: "gridcell",
100
105
  "aria-label": removeActionText
101
106
  }, /*#__PURE__*/React.createElement(ConditionBuilderButton.ConditionBuilderButton, {
@@ -109,7 +114,7 @@ const ConditionBuilderActions = _ref => {
109
114
  renderIcon: icons.Close,
110
115
  className: `${util.blockClass}__close-condition`,
111
116
  "data-name": "closeCondition"
112
- })), actionState.length === index + 1 && /*#__PURE__*/React.createElement(ConditionBuilderAdd.default, {
117
+ })), !readOnly && actionState.length === index + 1 && /*#__PURE__*/React.createElement(ConditionBuilderAdd.default, {
113
118
  onClick: addActionHandler,
114
119
  className: `${util.blockClass}__gap ${util.blockClass}__gap-left`,
115
120
  buttonLabel: addActionText,
@@ -14,6 +14,7 @@ var index = require('../../../_virtual/index.js');
14
14
  var react = require('@carbon/react');
15
15
  var icons = require('@carbon/react/icons');
16
16
  var util = require('../utils/util.js');
17
+ var ConditionBuilderProvider = require('../ConditionBuilderContext/ConditionBuilderProvider.js');
17
18
 
18
19
  var _WarningAltFilled;
19
20
  const ConditionBuilderButton = _ref => {
@@ -41,6 +42,15 @@ const ConditionBuilderButton = _ref => {
41
42
  const carbonPrefix = react.usePrefix();
42
43
  const Button = () => {
43
44
  const dataName = rest['data-name'] ?? '';
45
+ const {
46
+ readOnly
47
+ } = React.useContext(ConditionBuilderProvider.ConditionBuilderContext);
48
+ const handleClick = e => {
49
+ if (readOnly) {
50
+ return;
51
+ }
52
+ onClick?.(e);
53
+ };
44
54
  return /*#__PURE__*/React.createElement("button", _rollupPluginBabelHelpers.extends({
45
55
  tabIndex: tabIndex !== undefined ? tabIndex : -1,
46
56
  className: cx([className, `${util.blockClass}__button`, {
@@ -49,12 +59,13 @@ const ConditionBuilderButton = _ref => {
49
59
  [`${util.blockClass}__invalid-input`]: isInvalid
50
60
  }]),
51
61
  type: "button",
52
- onClick: onClick,
62
+ onClick: handleClick,
53
63
  onBlur: onBlur,
54
64
  onFocus: onFocus,
55
65
  onMouseEnter: onMouseEnter,
56
66
  onMouseLeave: onMouseLeave,
57
- "data-name": dataName
67
+ "data-name": dataName,
68
+ "aria-disabled": readOnly
58
69
  }, rest), Icon && (_Icon || (_Icon = /*#__PURE__*/React.createElement(Icon, null))), !hideLabel && (_span || (_span = /*#__PURE__*/React.createElement("span", null, label))), isInvalid && (_WarningAltFilled || (_WarningAltFilled = /*#__PURE__*/React.createElement(icons.WarningAltFilled, null))));
59
70
  };
60
71
  return hideLabel || showToolTip || description ? /*#__PURE__*/React.createElement(react.Tooltip, _rollupPluginBabelHelpers.extends({
@@ -55,7 +55,7 @@ const ConditionConnector = _ref => {
55
55
  util.focusThisField(evt, conditionBuilderRef);
56
56
  };
57
57
  return variant == util.HIERARCHICAL_VARIANT ? /*#__PURE__*/React.createElement("span", {
58
- className: `${className} ${util.blockClass}__connector--disabled`
58
+ className: `${className} ${util.blockClass}__connector ${util.blockClass}__connector--disabled`
59
59
  }, /*#__PURE__*/React.createElement(ConditionBuilderButton.ConditionBuilderButton, {
60
60
  label: operator
61
61
  })) : /*#__PURE__*/React.createElement(ConditionBuilderItem.ConditionBuilderItem, _rollupPluginBabelHelpers.extends({
@@ -67,7 +67,7 @@ const ConditionConnector = _ref => {
67
67
  onFocus: activeConnectorHandler,
68
68
  onBlur: inActiveConnectorHandler
69
69
  }, rest, {
70
- popOverClassName: className,
70
+ popOverClassName: `${className} ${util.blockClass}__connector`,
71
71
  className: `${util.blockClass}__connector-button`
72
72
  }), /*#__PURE__*/React.createElement(ItemOption.ItemOption, {
73
73
  config: {
@@ -41,7 +41,7 @@ const GroupConnector = () => {
41
41
  label: rootState.operator,
42
42
  title: conditionText,
43
43
  "data-name": "connectorField",
44
- popOverClassName: `${util.blockClass}__gap`,
44
+ popOverClassName: `${util.blockClass}__gap ${util.blockClass}__groupConnector`,
45
45
  className: `${util.blockClass}__statement-button`
46
46
  }, /*#__PURE__*/React.createElement(ItemOption.ItemOption, {
47
47
  conditionState: {
@@ -38,7 +38,8 @@ const ConditionBuilderContent = _ref => {
38
38
  setRootState,
39
39
  variant,
40
40
  actionState,
41
- onAddItem
41
+ onAddItem,
42
+ readOnly
42
43
  } = React.useContext(ConditionBuilderProvider.ConditionBuilderContext);
43
44
  const initialConditionState = React.useRef(initialState?.state ? JSON.parse(JSON.stringify(initialState?.state)) : null);
44
45
  const [isConditionBuilderActive, setIsConditionBuilderActive] = React.useState(false);
@@ -174,7 +175,7 @@ const ConditionBuilderContent = _ref => {
174
175
  onChange: updatedGroup => {
175
176
  onChangeHandler(updatedGroup, groupIndex);
176
177
  }
177
- }), rootState.groups && groupIndex < rootState.groups.length - 1 && (_GroupConnector || (_GroupConnector = /*#__PURE__*/React.createElement(GroupConnector.default, null))))), variant == util.HIERARCHICAL_VARIANT && /*#__PURE__*/React.createElement("div", {
178
+ }), rootState.groups && groupIndex < rootState.groups.length - 1 && (_GroupConnector || (_GroupConnector = /*#__PURE__*/React.createElement(GroupConnector.default, null))))), !readOnly && variant == util.HIERARCHICAL_VARIANT && /*#__PURE__*/React.createElement("div", {
178
179
  role: "row",
179
180
  tabIndex: -1,
180
181
  "aria-level": 1,
@@ -193,7 +194,7 @@ const ConditionBuilderContent = _ref => {
193
194
  role: 'gridcell',
194
195
  'aria-label': addConditionGroupText
195
196
  }
196
- })), /*#__PURE__*/React.createElement(ConditionPreview.default, {
197
+ })), variant === util.HIERARCHICAL_VARIANT ? /*#__PURE__*/React.createElement(ConditionPreview.default, {
197
198
  previewType: "newGroup",
198
199
  colorIndex: getColorIndex(),
199
200
  className: showConditionGroupPreview ? `${util.blockClass}__visible` : `${util.blockClass}__hidden`,
@@ -201,7 +202,7 @@ const ConditionBuilderContent = _ref => {
201
202
  groupOperator: rootState?.operator,
202
203
  id: uuidv4.default()
203
204
  }
204
- })), actions && /*#__PURE__*/React.createElement(ConditionBuilderActions.default, {
205
+ }) : null), actions && /*#__PURE__*/React.createElement(ConditionBuilderActions.default, {
205
206
  actions: actions,
206
207
  className: `${util.blockClass}__actions-container`
207
208
  }));
@@ -48,7 +48,8 @@ const ConditionBuilderProvider = props => {
48
48
  translateWithId: props.translateWithId,
49
49
  conditionBuilderRef: props.conditionBuilderRef,
50
50
  statementConfigCustom: props.statementConfigCustom,
51
- onAddItem: props.onAddItem
51
+ onAddItem: props.onAddItem,
52
+ readOnly: props.readOnly
52
53
  };
53
54
  return /*#__PURE__*/React.createElement(ConditionBuilderContext.Provider, {
54
55
  value: contextValue
@@ -41,7 +41,8 @@ const ConditionBuilderItem = _ref => {
41
41
  const [open, setOpen] = React.useState(false);
42
42
  const {
43
43
  conditionBuilderRef,
44
- statementConfigCustom
44
+ statementConfigCustom,
45
+ readOnly
45
46
  } = React.useContext(ConditionBuilderProvider.ConditionBuilderContext);
46
47
  const statementIdMap = {
47
48
  ifAll: translationObject.translationsObject.ifText,
@@ -153,7 +154,12 @@ const ConditionBuilderItem = _ref => {
153
154
  }
154
155
  setOpen(false);
155
156
  };
156
- const openPopOver = () => setOpen(true);
157
+ const openPopOver = () => {
158
+ if (readOnly) {
159
+ return;
160
+ }
161
+ setOpen(true);
162
+ };
157
163
  const togglePopover = () => {
158
164
  if (children || renderChildren) {
159
165
  setOpen(!open);
@@ -5,22 +5,23 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React from 'react';
8
- import { option, statementConfig } from '../../ConditionBuilder.types';
8
+ import { ConditionGroup, option, Property, statementConfig } from '../../ConditionBuilder.types';
9
9
  interface ItemOptionProps {
10
10
  conditionState: {
11
11
  label?: string;
12
12
  value?: string;
13
13
  };
14
14
  config: {
15
- options?: option[] | statementConfig[];
15
+ options?: option[] | statementConfig[] | Property[];
16
16
  } & {
17
17
  isStatement?: boolean;
18
18
  };
19
19
  onChange: (value: string, e: Event) => void;
20
20
  closePopover?: () => void;
21
+ group?: ConditionGroup;
21
22
  }
22
23
  export declare const ItemOption: {
23
- ({ conditionState, config, onChange, closePopover, }: ItemOptionProps): React.JSX.Element | undefined;
24
+ ({ conditionState, config, onChange, closePopover, group, }: ItemOptionProps): React.JSX.Element | undefined;
24
25
  propTypes: {
25
26
  /**
26
27
  * current condition object
@@ -7,6 +7,7 @@
7
7
 
8
8
  'use strict';
9
9
 
10
+ var _rollupPluginBabelHelpers = require('../../../../_virtual/_rollupPluginBabelHelpers.js');
10
11
  var React = require('react');
11
12
  var react = require('@carbon/react');
12
13
  var icons = require('@carbon/react/icons');
@@ -20,7 +21,8 @@ const ItemOption = _ref => {
20
21
  conditionState = {},
21
22
  config = {},
22
23
  onChange,
23
- closePopover
24
+ closePopover,
25
+ group
24
26
  } = _ref;
25
27
  const {
26
28
  popOverSearchThreshold
@@ -45,7 +47,9 @@ const ItemOption = _ref => {
45
47
  }
46
48
  }, [allOptions]);
47
49
  const onClickHandler = (evt, option) => {
48
- onChange(option.id, evt);
50
+ if (!evt.currentTarget.hasAttribute('aria-disabled')) {
51
+ onChange(option.id, evt);
52
+ }
49
53
  };
50
54
  const onSearchChangeHandler = evt => {
51
55
  const {
@@ -83,7 +87,15 @@ const ItemOption = _ref => {
83
87
  }, filteredItems?.map(option => {
84
88
  const isSelected = selection === option.id;
85
89
  const Icon = option.icon;
86
- return /*#__PURE__*/React.createElement("li", {
90
+ const disabled = option?.getIsDisabled?.({
91
+ conditionState,
92
+ group
93
+ });
94
+ const hidden = option?.getIsHidden?.({
95
+ conditionState,
96
+ group
97
+ });
98
+ return /*#__PURE__*/React.createElement("li", _rollupPluginBabelHelpers.extends({
87
99
  tabIndex: 0,
88
100
  key: option.id,
89
101
  role: "option",
@@ -93,7 +105,11 @@ const ItemOption = _ref => {
93
105
  return false;
94
106
  },
95
107
  onClick: evt => onClickHandler(evt, option)
96
- }, /*#__PURE__*/React.createElement("div", {
108
+ }, disabled ? {
109
+ 'aria-disabled': 'true'
110
+ } : {}, hidden ? {
111
+ 'aria-hidden': 'true'
112
+ } : {}), /*#__PURE__*/React.createElement("div", {
97
113
  className: `${util.blockClass}__item-option__option-content`
98
114
  }, /*#__PURE__*/React.createElement("span", {
99
115
  className: `${util.blockClass}__item-option__option-label`
@@ -301,7 +301,7 @@ const ConditionGroupBuilder = _ref => {
301
301
  label: group.statement,
302
302
  title: conditionText,
303
303
  "data-name": "connectorField",
304
- popOverClassName: `${util.blockClass}__gap`,
304
+ popOverClassName: `${util.blockClass}__gap ${util.blockClass}__connector`,
305
305
  className: `${util.blockClass}__statement-button`
306
306
  }, /*#__PURE__*/React.createElement(ItemOption.ItemOption, {
307
307
  conditionState: {
@@ -1 +1,2 @@
1
1
  export { ConditionBuilder } from "./ConditionBuilder";
2
+ export * from "./ConditionBuilder.types";
@@ -26,6 +26,9 @@ const handleKeyDownForPopover = (evt, conditionBuilderRef, popoverRef, closePopo
26
26
  const excludeKeyPress = evt => {
27
27
  return !['Escape'].includes(evt.key) && evt.target.closest(`.${util.blockClass}__item-date`);
28
28
  };
29
+ const getVisibleOptions = parentContainer => {
30
+ return Array.from(parentContainer.querySelectorAll(`[role="option"]`)).filter(el => !el.hasAttribute('aria-disabled') && !el.hasAttribute('aria-hidden'));
31
+ };
29
32
  const handleKeyPressForPopover = (evt, parentContainer, conditionBuilderRef, closePopover) => {
30
33
  const key = evt.key;
31
34
  const isHoldingShiftKey = util.checkForHoldingKey(evt, 'shiftKey');
@@ -45,7 +48,8 @@ const handleKeyPressForPopover = (evt, parentContainer, conditionBuilderRef, clo
45
48
  case 'ArrowUp':
46
49
  evt.preventDefault();
47
50
  //traverse through the popover options, search box, selectAll button
48
- parentContainer.querySelectorAll(`[role="option"]`).forEach((eachElem, index, allElements) => {
51
+ allItems = getVisibleOptions(parentContainer);
52
+ allItems.forEach((eachElem, index, allElements) => {
49
53
  util.traverseReverse(eachElem, index, allElements, null, null, conditionBuilderRef);
50
54
  });
51
55
  //scroll to top when we reach a the top of the list to make search box visible
@@ -56,17 +60,18 @@ const handleKeyPressForPopover = (evt, parentContainer, conditionBuilderRef, clo
56
60
  case 'ArrowDown':
57
61
  evt.preventDefault();
58
62
  //traverse through the popover options, search box, selectAll button
59
- parentContainer.querySelectorAll(`[role="option"]`).forEach((eachElem, index, allElements) => {
60
- util.traverseClockVise(eachElem, index, allElements, null, null, conditionBuilderRef);
63
+ allItems = getVisibleOptions(parentContainer);
64
+ allItems.forEach((eachElem, index, allElements) => {
65
+ util.traverseClockwise(eachElem, index, allElements, null, null, conditionBuilderRef);
61
66
  });
62
67
  break;
63
68
  case 'Tab':
64
- allItems = [...Array.from(parentContainer.querySelectorAll(`.${util.blockClass}__selectAll-button,[role="searchbox"]`)), parentContainer.querySelector(`[role="option"]`)];
69
+ allItems = [...Array.from(parentContainer.querySelectorAll(`.${util.blockClass}__selectAll-button,[role="searchbox"]`)), getVisibleOptions(parentContainer)?.[0]];
65
70
  allItems.forEach((eachElem, index, allElements) => {
66
71
  if (isHoldingShiftKey) {
67
72
  util.traverseReverse(eachElem, index, allElements, true, true, conditionBuilderRef);
68
73
  } else {
69
- util.traverseClockVise(eachElem, index, allElements, true, true, conditionBuilderRef);
74
+ util.traverseClockwise(eachElem, index, allElements, true, true, conditionBuilderRef);
70
75
  }
71
76
  });
72
77
  evt.preventDefault();
@@ -220,7 +225,7 @@ const navigateToNextRowCell = (evt, currentRowIndex, rows, variant, conditionBui
220
225
  const handleCellNavigation = (evt, conditionBuilderRef) => {
221
226
  conditionBuilderRef.current.querySelectorAll(`[role="gridcell"] button`).forEach((eachElem, index, allElements) => {
222
227
  if (evt.key === 'ArrowRight') {
223
- util.traverseClockVise(eachElem, index, allElements, null, null, conditionBuilderRef);
228
+ util.traverseClockwise(eachElem, index, allElements, null, null, conditionBuilderRef);
224
229
  } else {
225
230
  util.traverseReverse(eachElem, index, allElements, null, null, conditionBuilderRef);
226
231
  }
@@ -1,5 +1,5 @@
1
1
  export function useDataConfigs(): {
2
- statementConfig: import("../ConditionBuilder.types").statementConfig[] | {
2
+ statementConfig: import("..").statementConfig[] | {
3
3
  id: string;
4
4
  connector: string;
5
5
  label: any;
@@ -3,7 +3,7 @@ export const NON_HIERARCHICAL_VARIANT: "Non-Hierarchical";
3
3
  export const HIERARCHICAL_VARIANT: "Hierarchical";
4
4
  export function focusThisField(evt: any, conditionBuilderRef: any): void;
5
5
  export function focusThisItem(currentElement: any, conditionBuilderRef: any): void;
6
- export function traverseClockVise(eachElem: any, index: any, allElements: any, rotate: any, trapFocus: any, conditionBuilderRef: any): void;
6
+ export function traverseClockwise(eachElem: any, index: any, allElements: any, rotate: any, trapFocus: any, conditionBuilderRef: any): void;
7
7
  export function traverseReverse(eachElem: any, index: any, allElements: any, rotate: any, trapFocus: any, conditionBuilderRef: any): void;
8
8
  export function checkForHoldingKey(evt: any, key: any): any;
9
9
  export function checkIsValid(item: any): any;
@@ -32,7 +32,7 @@ const focusThisItem = (currentElement, conditionBuilderRef) => {
32
32
  manageTabIndexAndFocus(currentElement, conditionBuilderRef);
33
33
  }, 0);
34
34
  };
35
- const traverseClockVise = (eachElem, index, allElements, rotate, trapFocus, conditionBuilderRef) => {
35
+ const traverseClockwise = (eachElem, index, allElements, rotate, trapFocus, conditionBuilderRef) => {
36
36
  if (eachElem == document.activeElement) {
37
37
  if (index !== allElements.length - 1) {
38
38
  focusThisItem(allElements[index + 1], conditionBuilderRef);
@@ -104,5 +104,5 @@ exports.focusThisItem = focusThisItem;
104
104
  exports.getValue = getValue;
105
105
  exports.manageTabIndexAndFocus = manageTabIndexAndFocus;
106
106
  exports.onKeyDownHandlerForSearch = onKeyDownHandlerForSearch;
107
- exports.traverseClockVise = traverseClockVise;
107
+ exports.traverseClockwise = traverseClockwise;
108
108
  exports.traverseReverse = traverseReverse;
@@ -14,7 +14,7 @@ var React = require('react');
14
14
  var settings = require('../../../settings.js');
15
15
  var react = require('@carbon/react');
16
16
  var EmptyState = require('../../EmptyStates/EmptyState.js');
17
- require('../../EmptyStates/EmptyStateV2.js');
17
+ require('../../EmptyStates/EmptyStateV2.deprecated.js');
18
18
  var ErrorEmptyState = require('../../EmptyStates/ErrorEmptyState/ErrorEmptyState.js');
19
19
  var NoDataEmptyState = require('../../EmptyStates/NoDataEmptyState/NoDataEmptyState.js');
20
20
  require('../../EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js');
@@ -9,7 +9,7 @@
9
9
 
10
10
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
11
11
  var React = require('react');
12
- var EmptyStateV2 = require('./EmptyStateV2.js');
12
+ var EmptyStateV2_deprecated = require('./EmptyStateV2.deprecated.js');
13
13
  var index = require('../../_virtual/index.js');
14
14
  var cx = require('classnames');
15
15
  var react = require('@carbon/react');
@@ -39,7 +39,7 @@ exports.EmptyState = /*#__PURE__*/React.forwardRef((_ref, ref) => {
39
39
  ...props
40
40
  } = _ref;
41
41
  if (v2) {
42
- return /*#__PURE__*/React.createElement(EmptyStateV2.EmptyStateV2, props);
42
+ return /*#__PURE__*/React.createElement(EmptyStateV2_deprecated.EmptyStateV2, props);
43
43
  }
44
44
  const {
45
45
  action,
@@ -15,7 +15,7 @@ var react = require('@carbon/react');
15
15
  var devtools = require('../../global/js/utils/devtools.js');
16
16
  require('../../global/js/utils/props-helper.js');
17
17
  var settings = require('../../settings.js');
18
- var EmptyStateIllustration = require('./EmptyStateIllustration.js');
18
+ var EmptyStateIllustration_deprecated = require('./EmptyStateIllustration.deprecated.js');
19
19
 
20
20
  const blockClass = `${settings.pkg.prefix}--empty-state`;
21
21
  const componentName = 'EmptyStateV2';
@@ -55,7 +55,7 @@ exports.EmptyStateV2 = /*#__PURE__*/React.forwardRef((props, ref) => {
55
55
  src: customIllustration,
56
56
  alt: illustrationDescription,
57
57
  className: cx([`${blockClass}__illustration`, `${blockClass}__illustration--${size}`])
58
- }), !customIllustration && kind && /*#__PURE__*/React.createElement(EmptyStateIllustration.default, illustrationProps), /*#__PURE__*/React.createElement("div", {
58
+ }), !customIllustration && kind && /*#__PURE__*/React.createElement(EmptyStateIllustration_deprecated.default, illustrationProps), /*#__PURE__*/React.createElement("div", {
59
59
  className: `${blockClass}__content`
60
60
  }, /*#__PURE__*/React.createElement("h3", {
61
61
  className: cx(`${blockClass}__header`, {
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  export { EmptyState } from './EmptyState';
8
- export { EmptyStateV2 } from './EmptyStateV2';
8
+ export { EmptyStateV2 } from './EmptyStateV2.deprecated';
9
9
  export { ErrorEmptyState } from './ErrorEmptyState';
10
10
  export { NoDataEmptyState } from './NoDataEmptyState';
11
11
  export { NoTagsEmptyState } from './NoTagsEmptyState';
@@ -13,7 +13,7 @@ export { NotFoundEmptyState } from './NotFoundEmptyState';
13
13
  export { NotificationsEmptyState } from './NotificationsEmptyState';
14
14
  export { UnauthorizedEmptyState } from './UnauthorizedEmptyState';
15
15
  export type { EmptyStateProps } from './EmptyState';
16
- export type { EmptyStateV2Props } from './EmptyStateV2';
16
+ export type { EmptyStateV2Props } from './EmptyStateV2.deprecated';
17
17
  export type { ErrorEmptyStateProps } from './ErrorEmptyState';
18
18
  export type { NoDataEmptyStateProps } from './NoDataEmptyState';
19
19
  export type { NoTagsEmptyStateProps } from './NoTagsEmptyState';
@@ -13,7 +13,7 @@ var utilities = require('@carbon/utilities');
13
13
  var icons = require('@carbon/react/icons');
14
14
  var React = require('react');
15
15
  require('../EmptyStates/EmptyState.js');
16
- require('../EmptyStates/EmptyStateV2.js');
16
+ require('../EmptyStates/EmptyStateV2.deprecated.js');
17
17
  require('../EmptyStates/ErrorEmptyState/ErrorEmptyState.js');
18
18
  require('../EmptyStates/NoDataEmptyState/NoDataEmptyState.js');
19
19
  require('../EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js');
@@ -4,6 +4,7 @@
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.
6
6
  */
7
+ import '../../feature-flags';
7
8
  import { ButtonProps } from '@carbon/react';
8
9
  import React, { ReactNode, RefObject } from 'react';
9
10
  type SidePanelBaseProps = {
@@ -9,6 +9,7 @@
9
9
 
10
10
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
11
11
  var icons = require('@carbon/react/icons');
12
+ require('../../feature-flags.js');
12
13
  var react = require('@carbon/react');
13
14
  var index$1 = require('../FeatureFlags/index.js');
14
15
  var React = require('react');
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright IBM Corp. 2025, 2025
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, { ReactNode } from 'react';
8
+ import { StepContextType } from './types';
9
+ interface StepProviderProps {
10
+ children?: ReactNode;
11
+ }
12
+ export declare const StepProvider: React.FC<StepProviderProps>;
13
+ export declare const useStepContext: () => StepContextType;
14
+ export {};
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright IBM Corp. 2025, 2025
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
+ export declare const StepGroup: ({ children }: {
9
+ children: any;
10
+ }) => string | number | bigint | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | React.ReactPortal | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined>;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright IBM Corp. 2025, 2025
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
+ export { StepGroup } from './StepGroup';
8
+ export { StepProvider, useStepContext } from './StepContext';
9
+ export type { StepState, StepContextType } from './types';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright IBM Corp. 2025, 2025
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
+ export declare const Example: () => React.JSX.Element;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright IBM Corp. 2025, 2025
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, { ReactNode } from 'react';
8
+ import { StepState } from '../..';
9
+ interface Props {
10
+ children?: ReactNode;
11
+ subtitle?: ((a: StepState) => ReactNode) | null;
12
+ open?: boolean;
13
+ onClose?: () => void;
14
+ title?: ReactNode;
15
+ hasCloseIcon?: boolean;
16
+ closeIconDescription?: string;
17
+ selectorPrimaryFocus?: string;
18
+ }
19
+ export declare const StepSidePanel: ({ subtitle, children, open, onClose, title, selectorPrimaryFocus, ...rest }: Props) => React.JSX.Element;
20
+ export {};
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Copyright IBM Corp. 2025, 2025
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 { ReactNode } from 'react';
8
+ import { StepState } from '..';
9
+ export interface StepActionsProps {
10
+ buttonRenderer: (stepData: StepState) => ReactNode;
11
+ className?: string;
12
+ }
13
+ /**
14
+ * This is an alternative approach to creating your own component and using the `useStepContext` hook.
15
+ * @example <StepActions buttonRenderer={(stepData) => <><Button /><Button /><Button /></>}/>
16
+ *
17
+ * In the example above, you can see how to retrieve the step data in order to update your buttons
18
+ * (disabled states, changing text, ie Next to Submit, etc.).
19
+ */
20
+ export declare const StepActions: {
21
+ ({ buttonRenderer }: StepActionsProps): ReactNode;
22
+ displayName: string;
23
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright IBM Corp. 2025, 2025
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
+ export declare const Example: () => React.JSX.Element;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright IBM Corp. 2025, 2025
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, { ReactNode } from 'react';
8
+ import { StepState } from '../../types';
9
+ interface Props {
10
+ children?: ReactNode;
11
+ influencer?: ((a: StepState) => ReactNode) | null;
12
+ open?: boolean;
13
+ onClose?: () => void;
14
+ title?: ReactNode;
15
+ hasCloseIcon?: boolean;
16
+ closeIconDescription?: string;
17
+ selectorPrimaryFocus?: string;
18
+ }
19
+ export declare const StepTearsheet: ({ children, open, onClose, influencer, title, hasCloseIcon, closeIconDescription, selectorPrimaryFocus, ...rest }: Props) => React.JSX.Element;
20
+ export {};