@carbon/ibm-products 2.43.2-canary.1 → 2.43.2-canary.100

Sign up to get free protection for your applications and to get access to all the features.
Files changed (361) hide show
  1. package/css/index-full-carbon.css +428 -143
  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 +218 -9
  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 +248 -105
  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 +349 -129
  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/ActionBar/ActionBarItem.js +1 -1
  18. package/es/components/Coachmark/Coachmark.d.ts +6 -1
  19. package/es/components/Coachmark/Coachmark.js +47 -11
  20. package/es/components/Coachmark/CoachmarkOverlay.js +2 -4
  21. package/es/components/CoachmarkBeacon/CoachmarkBeacon.js +1 -7
  22. package/es/components/CoachmarkFixed/CoachmarkFixed.js +13 -11
  23. package/es/components/CoachmarkStack/CoachmarkStack.js +7 -3
  24. package/es/components/CoachmarkStack/CoachmarkStackHome.js +8 -4
  25. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +76 -55
  26. package/es/components/ConditionBuilder/ConditionBuilder.js +82 -25
  27. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +15 -0
  28. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +154 -0
  29. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +3 -1
  30. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +29 -13
  31. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +8 -1
  32. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +30 -8
  33. package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +14 -9
  34. package/es/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +19 -11
  35. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +9 -13
  36. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +75 -62
  37. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +13 -7
  38. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +31 -8
  39. package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +8 -2
  40. package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +35 -24
  41. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +40 -36
  42. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +40 -36
  43. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +6 -2
  44. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +98 -40
  45. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.d.ts +3 -1
  46. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +24 -9
  47. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +27 -9
  48. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +13 -0
  49. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +114 -0
  50. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.d.ts → ItemOptionForValueField.d.ts} +2 -2
  51. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.js → ItemOptionForValueField.js} +71 -38
  52. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +5 -1
  53. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +22 -9
  54. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js +1 -1
  55. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +1 -3
  56. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +121 -40
  57. package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +3 -1
  58. package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +45 -19
  59. package/es/components/ConditionBuilder/utils/handleKeyboardEvents.d.ts +2 -1
  60. package/es/components/ConditionBuilder/utils/handleKeyboardEvents.js +137 -40
  61. package/es/components/ConditionBuilder/utils/useTranslations.d.ts +1 -0
  62. package/es/components/ConditionBuilder/utils/useTranslations.js +26 -0
  63. package/es/components/ConditionBuilder/utils/util.d.ts +6 -4
  64. package/es/components/ConditionBuilder/utils/util.js +42 -17
  65. package/es/components/CreateFullPage/CreateFullPage.js +2 -2
  66. package/es/components/DataSpreadsheet/DataSpreadsheet.d.ts +26 -0
  67. package/es/components/DataSpreadsheet/DataSpreadsheet.js +140 -54
  68. package/es/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +25 -1
  69. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +50 -9
  70. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.d.ts +16 -0
  71. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +32 -8
  72. package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseMove.js +4 -1
  73. package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.d.ts +3 -1
  74. package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.js +15 -3
  75. package/es/components/DataSpreadsheet/types/index.d.ts +2 -1
  76. package/es/components/DataSpreadsheet/utils/moveColumnIndicatorLine.js +34 -2
  77. package/es/components/Datagrid/Datagrid/Datagrid.d.ts +0 -4
  78. package/es/components/Datagrid/Datagrid/Datagrid.js +4 -9
  79. package/es/components/Datagrid/Datagrid/DatagridContent.js +1 -1
  80. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +23 -8
  81. package/es/components/Datagrid/Datagrid/DatagridRow.js +21 -8
  82. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +2 -1
  83. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +3 -2
  84. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +34 -10
  85. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +6 -1
  86. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +6 -1
  87. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.d.ts +3 -1
  88. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +7 -4
  89. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.d.ts +1 -1
  90. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +54 -17
  91. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +2 -3
  92. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +75 -12
  93. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +10 -2
  94. package/es/components/Datagrid/types/index.d.ts +61 -9
  95. package/es/components/Datagrid/useActionsColumn.d.ts +8 -1
  96. package/es/components/Datagrid/useActionsColumn.js +7 -6
  97. package/es/components/Datagrid/useColumnCenterAlign.d.ts +8 -1
  98. package/es/components/Datagrid/useColumnCenterAlign.js +1 -1
  99. package/es/components/Datagrid/useColumnRightAlign.d.ts +8 -1
  100. package/es/components/Datagrid/useColumnRightAlign.js +4 -3
  101. package/es/components/Datagrid/useCustomizeColumns.d.ts +8 -1
  102. package/es/components/Datagrid/useCustomizeColumns.js +4 -3
  103. package/es/components/Datagrid/useDefaultStringRenderer.js +0 -1
  104. package/es/components/Datagrid/useDisableSelectRows.d.ts +2 -1
  105. package/es/components/Datagrid/useDisableSelectRows.js +27 -22
  106. package/es/components/Datagrid/useInlineEdit.d.ts +8 -1
  107. package/es/components/Datagrid/useInlineEdit.js +13 -3
  108. package/es/components/Datagrid/useNestedRowExpander.js +1 -3
  109. package/es/components/Datagrid/useNestedRows.js +32 -13
  110. package/es/components/Datagrid/useRowExpander.js +1 -3
  111. package/es/components/Datagrid/useSelectRows.js +2 -1
  112. package/es/components/Datagrid/useStickyColumn.d.ts +8 -1
  113. package/es/components/Datagrid/useStickyColumn.js +12 -9
  114. package/es/components/Decorator/Decorator.js +2 -1
  115. package/es/components/DecoratorBase/DecoratorBase.js +3 -5
  116. package/es/components/DecoratorDualButton/DecoratorDualButton.js +2 -1
  117. package/es/components/DecoratorLink/DecoratorLink.js +2 -1
  118. package/es/components/DecoratorSingleButton/DecoratorSingleButton.js +2 -1
  119. package/es/components/EditInPlace/EditInPlace.d.ts +4 -0
  120. package/es/components/EditInPlace/EditInPlace.js +21 -10
  121. package/es/components/EditTearsheet/EditTearsheet.d.ts +7 -2
  122. package/es/components/EditTearsheet/EditTearsheet.js +44 -10
  123. package/es/components/EditTearsheet/EditTearsheetForm.d.ts +45 -2
  124. package/es/components/EditTearsheet/EditTearsheetForm.js +3 -0
  125. package/es/components/EmptyStates/EmptyStateV2.d.ts +63 -2
  126. package/es/components/EmptyStates/EmptyStateV2.js +2 -1
  127. package/es/components/FullPageError/FullPageError.d.ts +36 -2
  128. package/es/components/FullPageError/FullPageError.js +0 -3
  129. package/es/components/GetStartedCard/GetStartedCard.d.ts +61 -2
  130. package/es/components/GetStartedCard/GetStartedCard.js +9 -8
  131. package/es/components/HTTPErrors/HTTPError403/HTTPError403.js +6 -0
  132. package/es/components/HTTPErrors/HTTPError404/HTTPError404.js +6 -0
  133. package/es/components/HTTPErrors/HTTPErrorOther/HTTPErrorOther.js +6 -0
  134. package/es/components/HTTPErrors/assets/HTTPErrorSvg403.js +204 -200
  135. package/es/components/HTTPErrors/assets/HTTPErrorSvg404.js +116 -112
  136. package/es/components/HTTPErrors/assets/HTTPErrorSvgOther.js +110 -106
  137. package/es/components/Nav/NavItem.js +12 -3
  138. package/es/components/OptionsTile/OptionsTile.js +11 -6
  139. package/es/components/PageHeader/PageHeader.js +1 -0
  140. package/es/components/RemoveModal/RemoveModal.d.ts +4 -0
  141. package/es/components/RemoveModal/RemoveModal.js +7 -1
  142. package/es/components/SearchBar/SearchBar.d.ts +1 -1
  143. package/es/components/SearchBar/SearchBar.js +2 -2
  144. package/es/components/SidePanel/SidePanel.js +17 -21
  145. package/es/components/SidePanel/motion/variants.d.ts +4 -6
  146. package/es/components/SidePanel/motion/variants.js +10 -11
  147. package/es/components/StatusIndicator/StatusIndicatorStep.js +87 -0
  148. package/es/components/StringFormatter/StringFormatter.js +14 -3
  149. package/es/components/StringFormatter/utils/enums.d.ts +20 -1
  150. package/es/components/StringFormatter/utils/enums.js +22 -2
  151. package/es/components/TagOverflow/TagOverflow.d.ts +35 -4
  152. package/es/components/TagOverflow/TagOverflow.js +47 -64
  153. package/es/components/TagOverflow/TagOverflowModal.js +4 -6
  154. package/es/components/TagOverflow/TagOverflowPopover.d.ts +13 -1
  155. package/es/components/TagOverflow/TagOverflowPopover.js +38 -41
  156. package/es/components/Tearsheet/Tearsheet.d.ts +8 -1
  157. package/es/components/Tearsheet/Tearsheet.js +9 -1
  158. package/es/components/Tearsheet/TearsheetNarrow.d.ts +11 -0
  159. package/es/components/Tearsheet/TearsheetNarrow.js +12 -0
  160. package/es/components/Tearsheet/TearsheetShell.d.ts +11 -1
  161. package/es/components/Tearsheet/TearsheetShell.js +28 -7
  162. package/es/components/Toolbar/ToolbarButton.js +1 -1
  163. package/es/components/WebTerminal/WebTerminal.js +10 -12
  164. package/es/components/index.d.ts +1 -1
  165. package/es/global/js/hooks/useFocus.d.ts +1 -0
  166. package/es/global/js/hooks/useFocus.js +5 -2
  167. package/es/global/js/hooks/usePrefersReducedMotion.js +14 -8
  168. package/es/global/js/package-settings.d.ts +1 -1
  169. package/es/global/js/package-settings.js +1 -1
  170. package/es/index.js +1 -0
  171. package/es/node_modules/@carbon/icon-helpers/es/index.js +49 -62
  172. package/es/node_modules/@carbon/icons-react/es/generated/bucket-2.js +1020 -1058
  173. package/es/node_modules/@carbon/icons-react/es/generated/bucket-9.js +881 -758
  174. package/es/settings.d.ts +1 -1
  175. package/lib/components/ActionBar/ActionBarItem.js +1 -1
  176. package/lib/components/Coachmark/Coachmark.d.ts +6 -1
  177. package/lib/components/Coachmark/Coachmark.js +46 -10
  178. package/lib/components/Coachmark/CoachmarkOverlay.js +2 -4
  179. package/lib/components/CoachmarkBeacon/CoachmarkBeacon.js +1 -7
  180. package/lib/components/CoachmarkFixed/CoachmarkFixed.js +13 -11
  181. package/lib/components/CoachmarkStack/CoachmarkStack.js +7 -3
  182. package/lib/components/CoachmarkStack/CoachmarkStackHome.js +8 -4
  183. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +74 -53
  184. package/lib/components/ConditionBuilder/ConditionBuilder.js +82 -25
  185. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +15 -0
  186. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +163 -0
  187. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +3 -1
  188. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +28 -11
  189. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +8 -1
  190. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +29 -7
  191. package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +12 -7
  192. package/lib/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +18 -10
  193. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +9 -13
  194. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +73 -60
  195. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +13 -7
  196. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +31 -8
  197. package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +8 -2
  198. package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +34 -24
  199. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +40 -36
  200. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +40 -36
  201. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +6 -2
  202. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +96 -38
  203. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.d.ts +3 -1
  204. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +24 -9
  205. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +28 -10
  206. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +13 -0
  207. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +122 -0
  208. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.d.ts → ItemOptionForValueField.d.ts} +2 -2
  209. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.js → ItemOptionForValueField.js} +68 -35
  210. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +5 -1
  211. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +21 -8
  212. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js +1 -1
  213. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +1 -3
  214. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +118 -37
  215. package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +3 -1
  216. package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +44 -17
  217. package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.d.ts +2 -1
  218. package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.js +137 -39
  219. package/lib/components/ConditionBuilder/utils/useTranslations.d.ts +1 -0
  220. package/lib/components/ConditionBuilder/utils/useTranslations.js +30 -0
  221. package/lib/components/ConditionBuilder/utils/util.d.ts +6 -4
  222. package/lib/components/ConditionBuilder/utils/util.js +44 -16
  223. package/lib/components/CreateFullPage/CreateFullPage.js +2 -2
  224. package/lib/components/DataSpreadsheet/DataSpreadsheet.d.ts +26 -0
  225. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +140 -54
  226. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +25 -1
  227. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +50 -9
  228. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.d.ts +16 -0
  229. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +32 -8
  230. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseMove.js +4 -1
  231. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.d.ts +3 -1
  232. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.js +15 -3
  233. package/lib/components/DataSpreadsheet/types/index.d.ts +2 -1
  234. package/lib/components/DataSpreadsheet/utils/moveColumnIndicatorLine.js +34 -2
  235. package/lib/components/Datagrid/Datagrid/Datagrid.d.ts +0 -4
  236. package/lib/components/Datagrid/Datagrid/Datagrid.js +4 -9
  237. package/lib/components/Datagrid/Datagrid/DatagridContent.js +1 -1
  238. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +23 -8
  239. package/lib/components/Datagrid/Datagrid/DatagridRow.js +21 -8
  240. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +2 -1
  241. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +3 -2
  242. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +34 -10
  243. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +6 -1
  244. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +6 -1
  245. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.d.ts +3 -1
  246. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +7 -4
  247. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.d.ts +1 -1
  248. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +53 -16
  249. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +2 -3
  250. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +74 -11
  251. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +10 -2
  252. package/lib/components/Datagrid/types/index.d.ts +61 -9
  253. package/lib/components/Datagrid/useActionsColumn.d.ts +8 -1
  254. package/lib/components/Datagrid/useActionsColumn.js +7 -6
  255. package/lib/components/Datagrid/useColumnCenterAlign.d.ts +8 -1
  256. package/lib/components/Datagrid/useColumnCenterAlign.js +1 -1
  257. package/lib/components/Datagrid/useColumnRightAlign.d.ts +8 -1
  258. package/lib/components/Datagrid/useColumnRightAlign.js +4 -3
  259. package/lib/components/Datagrid/useCustomizeColumns.d.ts +8 -1
  260. package/lib/components/Datagrid/useCustomizeColumns.js +4 -3
  261. package/lib/components/Datagrid/useDefaultStringRenderer.js +0 -1
  262. package/lib/components/Datagrid/useDisableSelectRows.d.ts +2 -1
  263. package/lib/components/Datagrid/useDisableSelectRows.js +27 -22
  264. package/lib/components/Datagrid/useInlineEdit.d.ts +8 -1
  265. package/lib/components/Datagrid/useInlineEdit.js +13 -3
  266. package/lib/components/Datagrid/useNestedRowExpander.js +1 -3
  267. package/lib/components/Datagrid/useNestedRows.js +32 -13
  268. package/lib/components/Datagrid/useRowExpander.js +1 -3
  269. package/lib/components/Datagrid/useSelectRows.js +2 -1
  270. package/lib/components/Datagrid/useStickyColumn.d.ts +8 -1
  271. package/lib/components/Datagrid/useStickyColumn.js +12 -9
  272. package/lib/components/Decorator/Decorator.js +2 -1
  273. package/lib/components/DecoratorBase/DecoratorBase.js +3 -5
  274. package/lib/components/DecoratorDualButton/DecoratorDualButton.js +2 -1
  275. package/lib/components/DecoratorLink/DecoratorLink.js +2 -1
  276. package/lib/components/DecoratorSingleButton/DecoratorSingleButton.js +2 -1
  277. package/lib/components/EditInPlace/EditInPlace.d.ts +4 -0
  278. package/lib/components/EditInPlace/EditInPlace.js +21 -10
  279. package/lib/components/EditTearsheet/EditTearsheet.d.ts +7 -2
  280. package/lib/components/EditTearsheet/EditTearsheet.js +43 -9
  281. package/lib/components/EditTearsheet/EditTearsheetForm.d.ts +45 -2
  282. package/lib/components/EditTearsheet/EditTearsheetForm.js +3 -0
  283. package/lib/components/EmptyStates/EmptyStateV2.d.ts +63 -2
  284. package/lib/components/EmptyStates/EmptyStateV2.js +2 -1
  285. package/lib/components/FullPageError/FullPageError.d.ts +36 -2
  286. package/lib/components/FullPageError/FullPageError.js +0 -3
  287. package/lib/components/GetStartedCard/GetStartedCard.d.ts +61 -2
  288. package/lib/components/GetStartedCard/GetStartedCard.js +8 -7
  289. package/lib/components/HTTPErrors/HTTPError403/HTTPError403.js +6 -0
  290. package/lib/components/HTTPErrors/HTTPError404/HTTPError404.js +6 -0
  291. package/lib/components/HTTPErrors/HTTPErrorOther/HTTPErrorOther.js +6 -0
  292. package/lib/components/HTTPErrors/assets/HTTPErrorSvg403.js +204 -200
  293. package/lib/components/HTTPErrors/assets/HTTPErrorSvg404.js +116 -112
  294. package/lib/components/HTTPErrors/assets/HTTPErrorSvgOther.js +110 -106
  295. package/lib/components/Nav/NavItem.js +10 -1
  296. package/lib/components/OptionsTile/OptionsTile.js +11 -6
  297. package/lib/components/PageHeader/PageHeader.js +1 -0
  298. package/lib/components/RemoveModal/RemoveModal.d.ts +4 -0
  299. package/lib/components/RemoveModal/RemoveModal.js +7 -1
  300. package/lib/components/SearchBar/SearchBar.d.ts +1 -1
  301. package/lib/components/SearchBar/SearchBar.js +2 -2
  302. package/lib/components/SidePanel/SidePanel.js +16 -20
  303. package/lib/components/SidePanel/motion/variants.d.ts +4 -6
  304. package/lib/components/SidePanel/motion/variants.js +10 -11
  305. package/lib/components/StatusIndicator/StatusIndicatorStep.js +94 -0
  306. package/lib/components/StringFormatter/StringFormatter.js +13 -2
  307. package/lib/components/StringFormatter/utils/enums.d.ts +20 -1
  308. package/lib/components/StringFormatter/utils/enums.js +23 -1
  309. package/lib/components/TagOverflow/TagOverflow.d.ts +35 -4
  310. package/lib/components/TagOverflow/TagOverflow.js +46 -63
  311. package/lib/components/TagOverflow/TagOverflowModal.js +4 -6
  312. package/lib/components/TagOverflow/TagOverflowPopover.d.ts +13 -1
  313. package/lib/components/TagOverflow/TagOverflowPopover.js +37 -40
  314. package/lib/components/Tearsheet/Tearsheet.d.ts +8 -1
  315. package/lib/components/Tearsheet/Tearsheet.js +9 -1
  316. package/lib/components/Tearsheet/TearsheetNarrow.d.ts +11 -0
  317. package/lib/components/Tearsheet/TearsheetNarrow.js +12 -0
  318. package/lib/components/Tearsheet/TearsheetShell.d.ts +11 -1
  319. package/lib/components/Tearsheet/TearsheetShell.js +26 -5
  320. package/lib/components/Toolbar/ToolbarButton.js +1 -1
  321. package/lib/components/WebTerminal/WebTerminal.js +10 -12
  322. package/lib/components/index.d.ts +1 -1
  323. package/lib/global/js/hooks/useFocus.d.ts +1 -0
  324. package/lib/global/js/hooks/useFocus.js +5 -1
  325. package/lib/global/js/hooks/usePrefersReducedMotion.js +13 -7
  326. package/lib/global/js/package-settings.d.ts +1 -1
  327. package/lib/global/js/package-settings.js +1 -1
  328. package/lib/index.js +5 -0
  329. package/lib/node_modules/@carbon/icon-helpers/es/index.js +49 -62
  330. package/lib/node_modules/@carbon/icons-react/es/generated/bucket-2.js +1036 -1074
  331. package/lib/node_modules/@carbon/icons-react/es/generated/bucket-9.js +946 -823
  332. package/lib/settings.d.ts +1 -1
  333. package/package.json +9 -8
  334. package/scss/components/Coachmark/_coachmark-overlay.scss +6 -70
  335. package/scss/components/Coachmark/_coachmark.scss +5 -4
  336. package/scss/components/CoachmarkBeacon/_coachmark-beacon.scss +1 -3
  337. package/scss/components/ConditionBuilder/_condition-builder.scss +5 -1
  338. package/scss/components/ConditionBuilder/styles/_conditionBuilderCondition.scss +20 -3
  339. package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +32 -3
  340. package/scss/components/CreateModal/_create-modal.scss +0 -4
  341. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +17 -2
  342. package/scss/components/Datagrid/_datagrid.scss +0 -4
  343. package/scss/components/Datagrid/styles/_useInlineEdit.scss +13 -0
  344. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsTearsheet.scss +7 -5
  345. package/scss/components/Datagrid/styles/addons/_FilterFlyout.scss +5 -4
  346. package/scss/components/HTTPErrors/_http-errors.scss +77 -0
  347. package/scss/components/OptionsTile/_options-tile.scss +6 -6
  348. package/scss/components/SidePanel/_side-panel.scss +1 -1
  349. package/scss/components/StatusIcon/_status-icon.scss +4 -4
  350. package/scss/components/StringFormatter/_string-formatter.scss +2 -2
  351. package/scss/components/UserProfileImage/_user-profile-image.scss +6 -2
  352. package/scss/components/_index-released-only.scss +1 -0
  353. package/telemetry.yml +32 -19
  354. package/es/components/ConditionBuilder/utils/checkForHoldingKey.d.ts +0 -1
  355. package/es/components/ConditionBuilder/utils/checkForHoldingKey.js +0 -16
  356. package/es/global/js/utils/window.d.ts +0 -2
  357. package/es/global/js/utils/window.js +0 -12
  358. package/lib/components/ConditionBuilder/utils/checkForHoldingKey.d.ts +0 -1
  359. package/lib/components/ConditionBuilder/utils/checkForHoldingKey.js +0 -20
  360. package/lib/global/js/utils/window.d.ts +0 -2
  361. package/lib/global/js/utils/window.js +0 -16
@@ -6,20 +6,19 @@
6
6
  */
7
7
 
8
8
  import { slicedToArray as _slicedToArray, defineProperty as _defineProperty, objectSpread2 as _objectSpread2, toConsumableArray as _toConsumableArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
9
- import React__default, { useContext, useState, Fragment } from 'react';
9
+ import React__default, { useContext, useState, useRef, Fragment } from 'react';
10
10
  import ConditionBlock from '../ConditionBlock/ConditionBlock.js';
11
11
  import PropTypes from '../../../node_modules/prop-types/index.js';
12
12
  import cx from 'classnames';
13
- import { blockClass, translateWithId, statementConfig } from '../ConditionBuilderContext/DataConfigs.js';
13
+ import { blockClass, statementConfig } from '../ConditionBuilderContext/DataConfigs.js';
14
14
  import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem.js';
15
- import { ConditionBuilderItemOption } from '../ConditionBuilderItem/ConditionBuilderItemOption/ConditionBuilderItemOption.js';
16
- import { focusThisField } from '../utils/util.js';
15
+ import { focusThisField, manageTabIndexAndFocus } from '../utils/util.js';
17
16
  import ConditionConnector from '../ConditionBuilderConnector/ConditionConnector.js';
18
17
  import { ConditionBuilderContext } from '../ConditionBuilderContext/ConditionBuilderProvider.js';
19
18
  import uuidv4 from '../../../global/js/utils/uuidv4.js';
20
19
  import ConditionPreview from '../ConditionPreview/ConditionPreview.js';
21
-
22
- var _ConditionPreview, _ConditionPreview2;
20
+ import { ItemOption } from '../ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js';
21
+ import { useTranslations } from '../utils/useTranslations.js';
23
22
 
24
23
  /**
25
24
  *
@@ -29,14 +28,20 @@ var _ConditionPreview, _ConditionPreview2;
29
28
  */
30
29
 
31
30
  var ConditionGroupBuilder = function ConditionGroupBuilder(_ref) {
31
+ var _ConditionPreview, _ConditionPreview2;
32
32
  var group = _ref.group,
33
33
  aria = _ref.aria,
34
34
  onRemove = _ref.onRemove,
35
35
  onChange = _ref.onChange,
36
- conditionBuilderRef = _ref.conditionBuilderRef,
37
36
  className = _ref.className;
37
+ var _useTranslations = useTranslations(['conditionBuilderGroupText', 'conditionText', 'conditionBuilderText']),
38
+ _useTranslations2 = _slicedToArray(_useTranslations, 3),
39
+ conditionBuilderGroupText = _useTranslations2[0],
40
+ conditionText = _useTranslations2[1],
41
+ conditionBuilderText = _useTranslations2[2];
38
42
  var _useContext = useContext(ConditionBuilderContext),
39
- variant = _useContext.variant;
43
+ variant = _useContext.variant,
44
+ conditionBuilderRef = _useContext.conditionBuilderRef;
40
45
  var _useState = useState(-1),
41
46
  _useState2 = _slicedToArray(_useState, 2),
42
47
  showConditionPreview = _useState2[0],
@@ -45,14 +50,46 @@ var ConditionGroupBuilder = function ConditionGroupBuilder(_ref) {
45
50
  _useState4 = _slicedToArray(_useState3, 2),
46
51
  showConditionSubGroupPreview = _useState4[0],
47
52
  setShowConditionSubGroupPreview = _useState4[1];
48
- var onRemoveHandler = function onRemoveHandler(conditionId, evt) {
53
+ var conditionBuilderContentRef = useRef();
54
+ var onRemoveHandler = function onRemoveHandler(conditionId, evt, conditionIndex) {
49
55
  if (group.conditions.length > 1) {
50
- onChange(_objectSpread2(_objectSpread2({}, group), {}, {
51
- conditions: group.conditions.filter(function (condition) {
52
- return conditionId !== condition.id;
53
- })
54
- }));
55
- handleFocusOnClose(evt);
56
+ variant == 'tree' ? handleFocusOnCloseTree(evt) : handleFocusOnClose(evt, conditionIndex);
57
+ if (group.conditions[1].conditions && group.conditions[1].id !== conditionId) {
58
+ //when we remove every plain conditions of a group without deleting the subgroup, we need to restructure the group
59
+ //the inner group become outer group and same level subgroups become plain conditions
60
+
61
+ //ensure we are deleting last condition , not the subgroup
62
+
63
+ //spreading out the condition inside the subgroup
64
+ var allConditions = group.conditions.reduce(function (acc, item) {
65
+ if (item.conditions) {
66
+ return acc.concat(item.conditions);
67
+ }
68
+ return acc;
69
+ }, []);
70
+
71
+ //we always have conditions first and then subgroups, so ordering accordingly
72
+ var groupedItems = {
73
+ groups: [],
74
+ conditions: []
75
+ };
76
+ allConditions.forEach(function (item) {
77
+ if (item.conditions) {
78
+ groupedItems.groups.push(item);
79
+ } else {
80
+ groupedItems.conditions.push(item);
81
+ }
82
+ });
83
+ onChange(_objectSpread2(_objectSpread2({}, group), {}, {
84
+ conditions: [].concat(_toConsumableArray(groupedItems.conditions), _toConsumableArray(groupedItems.groups))
85
+ }));
86
+ } else {
87
+ onChange(_objectSpread2(_objectSpread2({}, group), {}, {
88
+ conditions: group.conditions.filter(function (condition) {
89
+ return conditionId !== condition.id;
90
+ })
91
+ }));
92
+ }
56
93
  } else {
57
94
  onRemove(evt);
58
95
  }
@@ -75,17 +112,59 @@ var ConditionGroupBuilder = function ConditionGroupBuilder(_ref) {
75
112
  conditions: [].concat(_toConsumableArray(group.conditions.slice(0, conditionIndex + 1)), [newCondition], _toConsumableArray(group.conditions.slice(conditionIndex + 1)))
76
113
  }));
77
114
  };
78
- var handleFocusOnClose = function handleFocusOnClose(e) {
79
- var _e$currentTarget;
80
- var previousClose = (_e$currentTarget = e.currentTarget) === null || _e$currentTarget === void 0 || (_e$currentTarget = _e$currentTarget.closest('[role="row"]')) === null || _e$currentTarget === void 0 || (_e$currentTarget = _e$currentTarget.previousSibling) === null || _e$currentTarget === void 0 ? void 0 : _e$currentTarget.querySelector('[data-name="closeCondition"]');
81
- if (previousClose) {
82
- previousClose.focus();
115
+ var handleFocusOnClose = function handleFocusOnClose(e, conditionIndex) {
116
+ var _e$currentTarget$clos;
117
+ //get all close buttons.
118
+ //if the last condition is closing, focus the second last one.
119
+ //or focus the next one.
120
+ var currentGroupCloseButtons = (_e$currentTarget$clos = e.currentTarget.closest(".".concat(blockClass, "__group"))) === null || _e$currentTarget$clos === void 0 ? void 0 : _e$currentTarget$clos.querySelectorAll('[data-name="closeCondition"]');
121
+ if (conditionIndex == currentGroupCloseButtons.length - 1) {
122
+ manageTabIndexAndFocus(currentGroupCloseButtons[conditionIndex - 1], conditionBuilderRef);
123
+ } else {
124
+ manageTabIndexAndFocus(currentGroupCloseButtons[conditionIndex + 1], conditionBuilderRef);
125
+ }
126
+ };
127
+ var handleFocusOnCloseTree = function handleFocusOnCloseTree(evt) {
128
+ var _evt$currentTarget, _evt$currentTarget2, _conditionBuilderCont, _conditionBuilderCont2;
129
+ //getting the current aria-level and aria-posinset.
130
+ var currentLevel = (_evt$currentTarget = evt.currentTarget) === null || _evt$currentTarget === void 0 || (_evt$currentTarget = _evt$currentTarget.closest('[role="row"]')) === null || _evt$currentTarget === void 0 ? void 0 : _evt$currentTarget.getAttribute('aria-level');
131
+ var currentPos = (_evt$currentTarget2 = evt.currentTarget) === null || _evt$currentTarget2 === void 0 || (_evt$currentTarget2 = _evt$currentTarget2.closest('[role="row"]')) === null || _evt$currentTarget2 === void 0 ? void 0 : _evt$currentTarget2.getAttribute('aria-posinset');
132
+
133
+ //finding the next and previous items in same level
134
+ var nextElement = (_conditionBuilderCont = conditionBuilderContentRef.current) === null || _conditionBuilderCont === void 0 ? void 0 : _conditionBuilderCont.querySelector("[aria-level=\"".concat(currentLevel, "\"][aria-posinset=\"").concat(Number(currentPos) + 1, "\"]"));
135
+ var prevElement = (_conditionBuilderCont2 = conditionBuilderContentRef.current) === null || _conditionBuilderCont2 === void 0 ? void 0 : _conditionBuilderCont2.querySelector("[aria-level=\"".concat(currentLevel, "\"][aria-posinset=\"").concat(Number(currentPos) - 1, "\"]"));
136
+ //checking if next level is a valid condition. If then, focus the close button inside that condition
137
+ //Otherwise , check the previous item is a valid condition
138
+
139
+ if (nextElement !== null && nextElement !== void 0 && nextElement.classList.contains("".concat(blockClass, "__condition-block"))) {
140
+ manageTabIndexAndFocus(nextElement === null || nextElement === void 0 ? void 0 : nextElement.querySelector('[data-name="closeCondition"]'), conditionBuilderRef);
141
+ } else if (prevElement !== null && prevElement !== void 0 && prevElement.classList.contains("".concat(blockClass, "__condition-block"))) {
142
+ manageTabIndexAndFocus(prevElement === null || prevElement === void 0 ? void 0 : prevElement.querySelector('[data-name="closeCondition"]'), conditionBuilderRef);
143
+ }
144
+ //If there are no valid condition in this group, focus next or previous row
145
+ else {
146
+ var _conditionBuilderCont3, _conditionBuilderCont4;
147
+ var prevRows = (_conditionBuilderCont3 = conditionBuilderContentRef.current) === null || _conditionBuilderCont3 === void 0 ? void 0 : _conditionBuilderCont3.querySelectorAll("[aria-level=\"".concat(Number(currentLevel) - 1, "\"][role=\"row\"]"));
148
+ var nextRow = (_conditionBuilderCont4 = conditionBuilderContentRef.current) === null || _conditionBuilderCont4 === void 0 ? void 0 : _conditionBuilderCont4.querySelector("[aria-level=\"".concat(Number(currentLevel) + 1, "\"][role=\"row\"]"));
149
+ if (nextRow) {
150
+ //since there are no condition in current group, this group will move one level up
151
+
152
+ var rowIdentity = {
153
+ ariaLevel: Number(nextRow.ariaLevel) - 1,
154
+ ariaPosInSet: nextRow.ariaPosInSet
155
+ };
156
+ setTimeout(function () {
157
+ var currentRowToFocus = conditionBuilderContentRef.current.querySelector("[role=\"row\"][aria-level=\"".concat(rowIdentity.ariaLevel, "\"][aria-posinset=\"").concat(rowIdentity.ariaPosInSet, "\"]"));
158
+ manageTabIndexAndFocus(currentRowToFocus, conditionBuilderRef);
159
+ }, 0);
160
+ } else if ((prevRows === null || prevRows === void 0 ? void 0 : prevRows.length) > 1) {
161
+ manageTabIndexAndFocus(prevRows[prevRows.length - 2], conditionBuilderRef);
162
+ }
83
163
  }
84
164
  };
85
165
  var addConditionSubGroupHandler = function addConditionSubGroupHandler(conditionIndex) {
86
166
  onChange(_objectSpread2(_objectSpread2({}, group), {}, {
87
167
  conditions: [].concat(_toConsumableArray(group.conditions.slice(0, conditionIndex + 1)), [{
88
- groupSeparateOperator: null,
89
168
  groupOperator: 'and',
90
169
  statement: 'if',
91
170
  conditions: [{
@@ -115,7 +194,12 @@ var ConditionGroupBuilder = function ConditionGroupBuilder(_ref) {
115
194
  setShowConditionPreview(-1);
116
195
  };
117
196
  var onStatementChangeHandler = function onStatementChangeHandler(updatedStatement) {
197
+ var _statementConfig$find;
198
+ var groupOperator = (_statementConfig$find = statementConfig.find(function (statement) {
199
+ return statement.id == updatedStatement;
200
+ })) === null || _statementConfig$find === void 0 ? void 0 : _statementConfig$find.connector;
118
201
  onChange(_objectSpread2(_objectSpread2({}, group), {}, {
202
+ groupOperator: groupOperator,
119
203
  statement: updatedStatement
120
204
  }));
121
205
  };
@@ -131,7 +215,7 @@ var ConditionGroupBuilder = function ConditionGroupBuilder(_ref) {
131
215
  }, /*#__PURE__*/React__default.createElement("div", {
132
216
  className: "".concat(blockClass, "__condition-wrapper"),
133
217
  role: "grid",
134
- "aria-label": translateWithId('condition_builder_group')
218
+ "aria-label": conditionBuilderText
135
219
  }, group === null || group === void 0 || (_group$conditions = group.conditions) === null || _group$conditions === void 0 ? void 0 : _group$conditions.map(function (eachCondition, conditionIndex) {
136
220
  return /*#__PURE__*/React__default.createElement("div", {
137
221
  key: eachCondition.id,
@@ -152,7 +236,7 @@ var ConditionGroupBuilder = function ConditionGroupBuilder(_ref) {
152
236
  },
153
237
  addConditionHandler: addConditionHandler,
154
238
  onRemove: function onRemove(e) {
155
- onRemoveHandler(eachCondition.id, e);
239
+ onRemoveHandler(eachCondition.id, e, conditionIndex);
156
240
  },
157
241
  onConnectorOperatorChange: onConnectorOperatorChange,
158
242
  onStatementChange: onStatementChangeHandler,
@@ -165,7 +249,8 @@ var ConditionGroupBuilder = function ConditionGroupBuilder(_ref) {
165
249
  return /*#__PURE__*/React__default.createElement("div", {
166
250
  className: "".concat(className, " ").concat(blockClass, "__condition-wrapper"),
167
251
  role: aria.level === 1 ? 'rowgroup' : undefined,
168
- "aria-label": aria.level == 1 ? translateWithId('condition_builder_group') : undefined
252
+ "aria-label": aria.level == 1 ? conditionBuilderGroupText : undefined,
253
+ ref: conditionBuilderContentRef
169
254
  }, /*#__PURE__*/React__default.createElement("div", {
170
255
  tabIndex: 0,
171
256
  role: "row",
@@ -174,17 +259,17 @@ var ConditionGroupBuilder = function ConditionGroupBuilder(_ref) {
174
259
  "aria-setsize": aria.setsize
175
260
  }, /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
176
261
  label: group.statement,
177
- title: translateWithId('condition'),
262
+ title: conditionText,
178
263
  "data-name": "connectorField",
179
264
  popOverClassName: "".concat(blockClass, "__gap"),
180
265
  className: "".concat(blockClass, "__statement-button")
181
- }, /*#__PURE__*/React__default.createElement(ConditionBuilderItemOption, {
266
+ }, /*#__PURE__*/React__default.createElement(ItemOption, {
182
267
  conditionState: {
183
268
  value: group.statement,
184
- label: translateWithId('condition')
269
+ label: conditionText
185
270
  },
186
271
  onChange: function onChange(v, evt) {
187
- focusThisField(evt);
272
+ focusThisField(evt, conditionBuilderRef);
188
273
  onStatementChangeHandler(v);
189
274
  },
190
275
  config: {
@@ -196,7 +281,7 @@ var ConditionGroupBuilder = function ConditionGroupBuilder(_ref) {
196
281
  }, eachCondition.conditions ? /*#__PURE__*/React__default.createElement("div", {
197
282
  className: cx("".concat(blockClass, "__condition-block subgroup ").concat(blockClass, "__gap"), _defineProperty({}, "".concat(blockClass, "__gap-bottom"), group.conditions.length < conditionIndex + 1))
198
283
  }, /*#__PURE__*/React__default.createElement(ConditionConnector, {
199
- className: "".concat(blockClass, "__gap ").concat(blockClass, "__groupConnector"),
284
+ className: "".concat(blockClass, "__gap ").concat(blockClass, "__gap-bottom ").concat(blockClass, "__groupConnector"),
200
285
  operator: group.groupOperator,
201
286
  "aria-hidden": true
202
287
  }), /*#__PURE__*/React__default.createElement(ConditionGroupBuilder, {
@@ -212,9 +297,8 @@ var ConditionGroupBuilder = function ConditionGroupBuilder(_ref) {
212
297
  },
213
298
  onRemove: function onRemove(e) {
214
299
  onRemoveHandler(eachCondition.id, e);
215
- },
216
- conditionBuilderRef: conditionBuilderRef
217
- })) : /*#__PURE__*/React__default.createElement(ConditionBlock, {
300
+ }
301
+ })) : /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(ConditionBlock, {
218
302
  conjunction: conditionIndex > 0 ? group.groupOperator : undefined,
219
303
  aria: {
220
304
  level: aria.level + 1,
@@ -244,10 +328,12 @@ var ConditionGroupBuilder = function ConditionGroupBuilder(_ref) {
244
328
  },
245
329
  hideConditionPreviewHandler: hideConditionPreviewHandler,
246
330
  isLastCondition: isLastCondition
247
- }), conditionIndex == showConditionSubGroupPreview && (_ConditionPreview || (_ConditionPreview = /*#__PURE__*/React__default.createElement(ConditionPreview, {
248
- previewType: "subGroup"
331
+ })), conditionIndex == showConditionSubGroupPreview && (_ConditionPreview || (_ConditionPreview = /*#__PURE__*/React__default.createElement(ConditionPreview, {
332
+ previewType: "subGroup",
333
+ group: group
249
334
  }))), conditionIndex == showConditionPreview && (_ConditionPreview2 || (_ConditionPreview2 = /*#__PURE__*/React__default.createElement(ConditionPreview, {
250
- previewType: "condition"
335
+ previewType: "condition",
336
+ group: group
251
337
  }))));
252
338
  }));
253
339
  };
@@ -266,11 +352,6 @@ ConditionGroupBuilder.propTypes = {
266
352
  * Provide an optional class to be applied to the containing node.
267
353
  */
268
354
  className: PropTypes.string,
269
- /**
270
- className: PropTypes.string,
271
- * ref of condition builder
272
- */
273
- conditionBuilderRef: PropTypes.object,
274
355
  group: PropTypes.object,
275
356
  /**
276
357
  * callback to update the current condition of the state tree
@@ -1,9 +1,11 @@
1
1
  export default ConditionPreview;
2
- declare function ConditionPreview({ previewType }: {
2
+ declare function ConditionPreview({ previewType, group }: {
3
3
  previewType: any;
4
+ group: any;
4
5
  }): import("react/jsx-runtime").JSX.Element;
5
6
  declare namespace ConditionPreview {
6
7
  namespace propTypes {
8
+ let group: PropTypes.Requireable<object>;
7
9
  let previewType: PropTypes.Requireable<string>;
8
10
  }
9
11
  }
@@ -5,61 +5,87 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import React__default from 'react';
8
+ import { slicedToArray as _slicedToArray, defineProperty as _defineProperty } from '../../../_virtual/_rollupPluginBabelHelpers.js';
9
+ import React__default, { useState, useEffect } from 'react';
10
+ import cx from 'classnames';
9
11
  import PropTypes from '../../../node_modules/prop-types/index.js';
10
- import { blockClass, translateWithId } from '../ConditionBuilderContext/DataConfigs.js';
12
+ import { blockClass } from '../ConditionBuilderContext/DataConfigs.js';
11
13
  import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem.js';
12
14
  import ConditionConnector from '../ConditionBuilderConnector/ConditionConnector.js';
15
+ import { useTranslations } from '../utils/useTranslations.js';
16
+ import { Bee } from '@carbon/react/icons';
13
17
 
14
18
  var ConditionPreview = function ConditionPreview(_ref) {
15
- var previewType = _ref.previewType;
19
+ var _ConditionBuilderItem, _ConditionBuilderItem2, _ConditionBuilderItem3;
20
+ var previewType = _ref.previewType,
21
+ group = _ref.group;
22
+ var _useState = useState(false),
23
+ _useState2 = _slicedToArray(_useState, 2),
24
+ animate = _useState2[0],
25
+ setAnimate = _useState2[1];
26
+ var _useTranslations = useTranslations(['valueText', 'operatorText', 'propertyText', 'ifText']),
27
+ _useTranslations2 = _slicedToArray(_useTranslations, 4),
28
+ propertyText = _useTranslations2[0],
29
+ operatorText = _useTranslations2[1],
30
+ valueText = _useTranslations2[2],
31
+ ifText = _useTranslations2[3];
32
+ useEffect(function () {
33
+ setAnimate(true);
34
+ }, []);
16
35
  var getConditionSection = function getConditionSection() {
17
- return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
18
- label: translateWithId('property')
19
- }), /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
20
- label: translateWithId('operator')
21
- }), /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
22
- label: translateWithId('value')
23
- }));
36
+ return /*#__PURE__*/React__default.createElement("div", {
37
+ className: "".concat(blockClass, "__preview-condition")
38
+ }, _ConditionBuilderItem || (_ConditionBuilderItem = /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
39
+ label: propertyText,
40
+ renderIcon: Bee
41
+ })), _ConditionBuilderItem2 || (_ConditionBuilderItem2 = /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
42
+ label: operatorText
43
+ })), _ConditionBuilderItem3 || (_ConditionBuilderItem3 = /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
44
+ label: valueText
45
+ })));
24
46
  };
25
47
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, previewType == 'newGroup' && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
26
- className: "".concat(blockClass, "__group__row ").concat(blockClass, "__group-preview ")
48
+ className: cx(["".concat(blockClass, "__group__row ").concat(blockClass, "__group-preview "), _defineProperty({}, "".concat(blockClass, "__group-preview-animate"), animate)])
27
49
  }, /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
28
50
  className: "".concat(blockClass, "__statement-button"),
29
- label: translateWithId('and')
51
+ label: group.groupOperator
30
52
  })), /*#__PURE__*/React__default.createElement("div", {
31
53
  "aria-hidden": true,
32
- className: "".concat(blockClass, "__group ").concat(blockClass, "__condition-wrapper ").concat(blockClass, "__group-preview ").concat(blockClass, "__group-wrapper")
54
+ className: cx(["".concat(blockClass, "__group ").concat(blockClass, "__condition-wrapper ").concat(blockClass, "__group-preview ").concat(blockClass, "__group-wrapper "), _defineProperty({}, "".concat(blockClass, "__group-preview-animate"), animate)])
33
55
  }, /*#__PURE__*/React__default.createElement("div", {
34
56
  className: "".concat(blockClass, "__gap")
35
57
  }, /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
36
58
  className: "".concat(blockClass, "__statement-button"),
37
- label: translateWithId('if')
59
+ label: ifText
38
60
  })), getConditionSection())), previewType == 'subGroup' && /*#__PURE__*/React__default.createElement("div", {
39
- className: "".concat(blockClass, "__group-preview")
61
+ className: cx(["".concat(blockClass, "__group__row ").concat(blockClass, "__group-preview "), _defineProperty({}, "".concat(blockClass, "__group-preview-animate"), animate)])
40
62
  }, /*#__PURE__*/React__default.createElement("div", {
41
63
  className: "".concat(blockClass, "__condition-block ").concat(blockClass, "__gap")
42
64
  }, /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
43
- label: translateWithId('and'),
65
+ label: group.groupOperator,
44
66
  className: "".concat(blockClass, "__statement-button"),
45
67
  popOverClassName: "".concat(blockClass, "__gap")
46
68
  }), /*#__PURE__*/React__default.createElement("div", {
47
69
  className: "".concat(blockClass, "__group ").concat(blockClass, "__condition-wrapper")
48
70
  }, /*#__PURE__*/React__default.createElement(ConditionConnector, {
49
71
  className: "".concat(blockClass, "__gap ").concat(blockClass, "__groupConnector"),
50
- operator: translateWithId('if')
72
+ operator: ifText
51
73
  }), getConditionSection()))), previewType == 'condition' && /*#__PURE__*/React__default.createElement("div", {
52
- className: "".concat(blockClass, "__group-preview")
74
+ className: cx(["".concat(blockClass, "__group__row ").concat(blockClass, "__group-preview "), _defineProperty({}, "".concat(blockClass, "__group-preview-animate"), animate)])
53
75
  }, /*#__PURE__*/React__default.createElement("div", {
54
76
  className: "".concat(blockClass, "__condition-block ").concat(blockClass, "__gap")
55
77
  }, /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
56
- label: translateWithId('and'),
78
+ label: group.groupOperator,
57
79
  className: "".concat(blockClass, "__statement-button"),
58
80
  popOverClassName: "".concat(blockClass, "__gap")
59
81
  }), getConditionSection())));
60
82
  };
61
83
  var ConditionPreview$1 = ConditionPreview;
62
84
  ConditionPreview.propTypes = {
85
+ /**
86
+ * current conditional group
87
+ */
88
+ group: PropTypes.object,
63
89
  /**
64
90
  * type of review to be displayed
65
91
  */
@@ -1 +1,2 @@
1
- export function handleKeyDown(evt: any, conditionBuilderRef: any): void;
1
+ export function handleKeyDown(evt: any, conditionBuilderRef: any, variant: any): void;
2
+ export function handleKeyDownForPopover(evt: any, conditionBuilderRef: any, popoverRef: any): void;
@@ -7,18 +7,27 @@
7
7
 
8
8
  import { toConsumableArray as _toConsumableArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import { blockClass } from '../ConditionBuilderContext/DataConfigs.js';
10
- import { checkForHoldingKey } from './checkForHoldingKey.js';
11
- import { focusThisField, traverseReverse, traverseClockVise } from './util.js';
10
+ import { focusThisItem, manageTabIndexAndFocus, traverseClockVise, traverseReverse, checkForHoldingKey, focusThisField } from './util.js';
12
11
 
13
- var handleKeyDown = function handleKeyDown(evt, conditionBuilderRef) {
12
+ var handleKeyDown = function handleKeyDown(evt, conditionBuilderRef, variant) {
13
+ var _activeElement$closes;
14
14
  var activeElement = document.activeElement;
15
- if (activeElement.closest("[role=\"dialog\"]")) {
16
- handleKeyPressForPopover(evt, activeElement.closest("[role=\"dialog\"]"));
17
- } else {
18
- handleKeyPressForMainContent(evt, conditionBuilderRef);
15
+ if (!((_activeElement$closes = activeElement.closest(".".concat(blockClass, "__popover"))) !== null && _activeElement$closes !== void 0 && _activeElement$closes.querySelector('[role="dialog"]'))) {
16
+ handleKeyPressForMainContent(evt, conditionBuilderRef, variant);
17
+ }
18
+ };
19
+ var handleKeyDownForPopover = function handleKeyDownForPopover(evt, conditionBuilderRef, popoverRef) {
20
+ if (excludeKeyPress(evt)) {
21
+ return;
19
22
  }
23
+ handleKeyPressForPopover(evt, popoverRef === null || popoverRef === void 0 ? void 0 : popoverRef.current, conditionBuilderRef);
20
24
  };
21
- var handleKeyPressForPopover = function handleKeyPressForPopover(evt, parentContainer) {
25
+
26
+ //skipping keyboard handling for date and time fields to get take carbon's
27
+ var excludeKeyPress = function excludeKeyPress(evt) {
28
+ return !['Escape'].includes(evt.key) && (evt.target.closest(".".concat(blockClass, "__item-date")) || evt.target.closest(".".concat(blockClass, "__item-time")));
29
+ };
30
+ var handleKeyPressForPopover = function handleKeyPressForPopover(evt, parentContainer, conditionBuilderRef) {
22
31
  var _parentContainer$quer;
23
32
  var key = evt.key;
24
33
  var isHoldingShiftKey = checkForHoldingKey(evt, 'shiftKey');
@@ -28,22 +37,22 @@ var handleKeyPressForPopover = function handleKeyPressForPopover(evt, parentCont
28
37
  case 'ArrowUp':
29
38
  //traverse through the popover options, search box, selectAll button
30
39
  parentContainer.querySelectorAll("[role=\"option\"]").forEach(function (eachElem, index, allElements) {
31
- traverseReverse(eachElem, index, allElements);
40
+ traverseReverse(eachElem, index, allElements, null, null, conditionBuilderRef);
32
41
  });
33
42
  break;
34
43
  case 'ArrowDown':
35
44
  //traverse through the popover options, search box, selectAll button
36
45
  parentContainer.querySelectorAll("[role=\"option\"]").forEach(function (eachElem, index, allElements) {
37
- traverseClockVise(eachElem, index, allElements);
46
+ traverseClockVise(eachElem, index, allElements, null, null, conditionBuilderRef);
38
47
  });
39
48
  break;
40
49
  case 'Tab':
41
50
  allItems = [].concat(_toConsumableArray(Array.from(parentContainer.querySelectorAll(".".concat(blockClass, "__selectAll-button,[role=\"searchbox\"]")))), [parentContainer.querySelector("[role=\"option\"]")]);
42
51
  allItems.forEach(function (eachElem, index, allElements) {
43
52
  if (isHoldingShiftKey) {
44
- traverseReverse(eachElem, index, allElements, true, true);
53
+ traverseReverse(eachElem, index, allElements, true, true, conditionBuilderRef);
45
54
  } else {
46
- traverseClockVise(eachElem, index, allElements, true, true);
55
+ traverseClockVise(eachElem, index, allElements, true, true, conditionBuilderRef);
47
56
  }
48
57
  });
49
58
  evt.preventDefault();
@@ -63,19 +72,88 @@ var handleKeyPressForPopover = function handleKeyPressForPopover(evt, parentCont
63
72
  if (document.activeElement.type !== 'button') {
64
73
  var _document$activeEleme2;
65
74
  //for button , enter key is click which already handled by framework, else trigger click
75
+ focusThisField(evt, conditionBuilderRef);
66
76
  (_document$activeEleme2 = document.activeElement) === null || _document$activeEleme2 === void 0 || _document$activeEleme2.click();
67
- focusThisField(evt);
68
77
  }
69
78
  }
70
79
  break;
71
80
  case 'Escape':
72
- //focus the corresponding field in which the popover is triggered
73
- focusThisField(evt);
81
+ //focus the corresponding field in which the popover is triggered\
82
+ focusThisField(evt, conditionBuilderRef);
83
+ break;
84
+ }
85
+ };
86
+ var handleKeyPressForMainContent = function handleKeyPressForMainContent(evt, conditionBuilderRef, variant) {
87
+ var _document$activeEleme3;
88
+ switch (evt.key) {
89
+ case 'ArrowRight':
90
+ evt.preventDefault();
91
+ if (variant == 'tree') {
92
+ var _evt$target$closest;
93
+ var allCellsInRow = Array.from((_evt$target$closest = evt.target.closest('[role="row"]')) === null || _evt$target$closest === void 0 ? void 0 : _evt$target$closest.querySelectorAll('[role="gridcell"] button'));
94
+ if (allCellsInRow.length === 1) {
95
+ evt.target = evt.target.closest('[role="row"]');
96
+ handleRowNavigationTree(evt, conditionBuilderRef, variant);
97
+ //focus next row
98
+ } else if (evt.target.getAttribute('role') == 'row') {
99
+ //when current focus is on a row, then we need to enter inside and focus the first cell of that row
100
+
101
+ //focus first cell
102
+ manageTabIndexAndFocus(allCellsInRow[0], conditionBuilderRef);
103
+ } else {
104
+ //finding the next cell to be focussed
105
+ //next cell = current cell index + 1
106
+
107
+ var currentItemIndex = allCellsInRow.indexOf(evt.target);
108
+ if (currentItemIndex < allCellsInRow.length - 1) {
109
+ focusThisItem(allCellsInRow[currentItemIndex + 1], conditionBuilderRef);
110
+ }
111
+ }
112
+ } else {
113
+ handleCellNavigation(evt, conditionBuilderRef);
114
+ }
115
+ break;
116
+ case 'ArrowLeft':
117
+ evt.preventDefault();
118
+ if (variant == 'tree') {
119
+ if (evt.target.getAttribute('role') !== 'row') {
120
+ var _evt$target$closest2;
121
+ //when any cell is focussed, arrow left will select the previous cell or current row
122
+
123
+ var _allCellsInRow = Array.from((_evt$target$closest2 = evt.target.closest('[role="row"]')) === null || _evt$target$closest2 === void 0 ? void 0 : _evt$target$closest2.querySelectorAll('[role="gridcell"] button'));
124
+ var _currentItemIndex = _allCellsInRow.indexOf(evt.target);
125
+ if (_currentItemIndex > 0) {
126
+ focusThisItem(_allCellsInRow[_currentItemIndex - 1], conditionBuilderRef);
127
+ } else {
128
+ //focus the row
129
+ var wrapper = evt.target.closest("[role=\"row\"]");
130
+ manageTabIndexAndFocus(wrapper, conditionBuilderRef);
131
+ }
132
+ }
133
+ } else {
134
+ handleCellNavigation(evt, conditionBuilderRef);
135
+ }
136
+ break;
137
+ case 'ArrowUp':
138
+ case 'ArrowDown':
139
+ evt.preventDefault();
140
+ if (variant == 'tree') {
141
+ handleRowNavigationTree(evt, conditionBuilderRef, variant);
142
+ } else {
143
+ handleRowNavigation(evt, conditionBuilderRef, variant);
144
+ }
145
+ break;
146
+ case 'Enter':
147
+ if (((_document$activeEleme3 = document.activeElement) === null || _document$activeEleme3 === void 0 || (_document$activeEleme3 = _document$activeEleme3.querySelectorAll("button")) === null || _document$activeEleme3 === void 0 ? void 0 : _document$activeEleme3.length) === 1) {
148
+ var _document$activeEleme4;
149
+ (_document$activeEleme4 = document.activeElement) === null || _document$activeEleme4 === void 0 || (_document$activeEleme4 = _document$activeEleme4.querySelectorAll("button")[0]) === null || _document$activeEleme4 === void 0 || _document$activeEleme4.click();
150
+ }
74
151
  break;
75
152
  }
76
153
  };
77
154
  var getRows = function getRows(conditionBuilderRef) {
78
- return Array.from(conditionBuilderRef.current.querySelectorAll('[role="row"]'));
155
+ var _conditionBuilderRef$;
156
+ return Array.from((_conditionBuilderRef$ = conditionBuilderRef.current) === null || _conditionBuilderRef$ === void 0 ? void 0 : _conditionBuilderRef$.querySelectorAll('[role="row"]'));
79
157
  };
80
158
  var getRowIndex = function getRowIndex(element, conditionBuilderRef) {
81
159
  var rows = getRows(conditionBuilderRef);
@@ -83,14 +161,37 @@ var getRowIndex = function getRowIndex(element, conditionBuilderRef) {
83
161
  return row.contains(element);
84
162
  });
85
163
  };
86
- var handleRowNavigation = function handleRowNavigation(evt, conditionBuilderRef) {
164
+ var handleRowNavigation = function handleRowNavigation(evt, conditionBuilderRef, variant) {
87
165
  var rows = getRows(conditionBuilderRef);
88
166
  var currentRowIndex = getRowIndex(evt.target, conditionBuilderRef);
89
- navigateToNextRowCell(evt, currentRowIndex, rows);
167
+ navigateToNextRowCell(evt, currentRowIndex, rows, variant, conditionBuilderRef);
90
168
  };
91
- var navigateToNextRowCell = function navigateToNextRowCell(evt, currentRowIndex, rows) {
92
- var _nextRow$querySelecto;
93
- //when the focussed element is a cell of the row which has only 1 cell (connector or statement) , focus the next row
169
+ var handleRowNavigationTree = function handleRowNavigationTree(evt, conditionBuilderRef, variant) {
170
+ var rows = getRows(conditionBuilderRef);
171
+ var currentRowIndex = getRowIndex(evt.target, conditionBuilderRef);
172
+ var nextRowIndex = currentRowIndex;
173
+ if (evt.target.getAttribute('role') == 'row') {
174
+ if (['ArrowDown', 'ArrowRight'].includes(evt.key)) {
175
+ nextRowIndex += 1;
176
+ } else if (evt.key === 'ArrowUp') {
177
+ nextRowIndex -= 1;
178
+ }
179
+
180
+ //maintaining selection for first and last rows
181
+ if (nextRowIndex < 0) {
182
+ nextRowIndex = 0;
183
+ } else if (nextRowIndex >= rows.length) {
184
+ nextRowIndex = rows.length - 1;
185
+ }
186
+ if (nextRowIndex !== currentRowIndex) {
187
+ manageTabIndexAndFocus(rows[nextRowIndex], conditionBuilderRef);
188
+ }
189
+ } else {
190
+ navigateToNextRowCell(evt, currentRowIndex, rows, variant, conditionBuilderRef);
191
+ }
192
+ };
193
+ var navigateToNextRowCell = function navigateToNextRowCell(evt, currentRowIndex, rows, variant, conditionBuilderRef) {
194
+ //when the current focussed element is a cell of any row, arrow up/down will focus the next row same cell.
94
195
 
95
196
  var nextRowIndex = currentRowIndex;
96
197
  if (evt.key === 'ArrowUp') {
@@ -101,25 +202,21 @@ var navigateToNextRowCell = function navigateToNextRowCell(evt, currentRowIndex,
101
202
  }
102
203
  var nextRow = rows[nextRowIndex];
103
204
  var itemName = evt.target.dataset.name;
104
- nextRow === null || nextRow === void 0 || (_nextRow$querySelecto = nextRow.querySelector("[data-name=\"".concat(itemName, "\"]"))) === null || _nextRow$querySelecto === void 0 || _nextRow$querySelecto.focus();
105
- };
106
- var handleKeyPressForMainContent = function handleKeyPressForMainContent(evt, conditionBuilderRef) {
107
- switch (evt.key) {
108
- case 'ArrowRight':
109
- case 'ArrowLeft':
110
- conditionBuilderRef.current.querySelectorAll("[role=\"gridcell\"] button").forEach(function (eachElem, index, allElements) {
111
- if (evt.key === 'ArrowRight') {
112
- traverseClockVise(eachElem, index, allElements);
113
- } else {
114
- traverseReverse(eachElem, index, allElements);
115
- }
116
- });
117
- break;
118
- case 'ArrowUp':
119
- case 'ArrowDown':
120
- handleRowNavigation(evt, conditionBuilderRef);
121
- break;
205
+ if (nextRow !== null && nextRow !== void 0 && nextRow.querySelector("[data-name=\"".concat(itemName, "\"]"))) {
206
+ manageTabIndexAndFocus(nextRow === null || nextRow === void 0 ? void 0 : nextRow.querySelector("[data-name=\"".concat(itemName, "\"]")), conditionBuilderRef);
207
+ } else if (variant === 'tree') {
208
+ //when the next row is a if statement , then that row is focused. From any cell of last row of an group , arrow down select the next row (if)
209
+ manageTabIndexAndFocus(nextRow, conditionBuilderRef);
122
210
  }
123
211
  };
212
+ var handleCellNavigation = function handleCellNavigation(evt, conditionBuilderRef) {
213
+ conditionBuilderRef.current.querySelectorAll("[role=\"gridcell\"] button").forEach(function (eachElem, index, allElements) {
214
+ if (evt.key === 'ArrowRight') {
215
+ traverseClockVise(eachElem, index, allElements, null, null, conditionBuilderRef);
216
+ } else {
217
+ traverseReverse(eachElem, index, allElements, null, null, conditionBuilderRef);
218
+ }
219
+ });
220
+ };
124
221
 
125
- export { handleKeyDown };
222
+ export { handleKeyDown, handleKeyDownForPopover };
@@ -0,0 +1 @@
1
+ export function useTranslations(translationKeys: any): any;