@itwin/itwinui-react 1.48.0 → 2.0.0-dev.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 (267) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +4 -22
  3. package/cjs/core/Alert/Alert.d.ts +7 -6
  4. package/cjs/core/Alert/Alert.js +12 -7
  5. package/cjs/core/Avatar/Avatar.d.ts +69 -0
  6. package/cjs/core/{UserIcon/UserIcon.js → Avatar/Avatar.js} +15 -11
  7. package/cjs/core/Avatar/index.d.ts +4 -0
  8. package/cjs/core/{UserIcon → Avatar}/index.js +5 -4
  9. package/cjs/core/AvatarGroup/AvatarGroup.d.ts +70 -0
  10. package/cjs/core/{UserIconGroup/UserIconGroup.js → AvatarGroup/AvatarGroup.js} +23 -19
  11. package/cjs/core/AvatarGroup/index.d.ts +4 -0
  12. package/cjs/core/{UserIconGroup → AvatarGroup}/index.js +5 -4
  13. package/cjs/core/Badge/Badge.js +2 -4
  14. package/cjs/core/ButtonGroup/ButtonGroup.d.ts +1 -1
  15. package/cjs/core/Buttons/Button/Button.js +5 -14
  16. package/cjs/core/Buttons/DropdownButton/DropdownButton.js +1 -1
  17. package/cjs/core/Buttons/IconButton/IconButton.js +3 -9
  18. package/cjs/core/Buttons/IdeasButton/IdeasButton.js +1 -1
  19. package/cjs/core/Buttons/SplitButton/SplitButton.js +4 -6
  20. package/cjs/core/Checkbox/Checkbox.d.ts +1 -29
  21. package/cjs/core/Checkbox/Checkbox.js +3 -3
  22. package/cjs/core/ColorPicker/ColorBuilder.js +16 -27
  23. package/cjs/core/ColorPicker/ColorSwatch.d.ts +1 -1
  24. package/cjs/core/ColorPicker/ColorSwatch.js +1 -6
  25. package/cjs/core/ComboBox/ComboBoxDropdown.d.ts +1 -1
  26. package/cjs/core/ComboBox/ComboBoxMenu.js +2 -4
  27. package/cjs/core/Dialog/Dialog.d.ts +4 -4
  28. package/cjs/core/Dialog/Dialog.js +1 -1
  29. package/cjs/core/Dialog/DialogBackdrop.d.ts +1 -1
  30. package/cjs/core/Dialog/DialogBackdrop.js +5 -2
  31. package/cjs/core/Dialog/DialogMain.d.ts +1 -1
  32. package/cjs/core/Dialog/DialogMain.js +7 -1
  33. package/cjs/core/Dialog/DialogTitleBar.d.ts +1 -1
  34. package/cjs/core/ExpandableBlock/ExpandableBlock.js +4 -4
  35. package/cjs/core/Header/Header.d.ts +16 -6
  36. package/cjs/core/Header/Header.js +7 -9
  37. package/cjs/core/Header/HeaderBasicButton.d.ts +6 -0
  38. package/cjs/core/Header/HeaderBasicButton.js +52 -0
  39. package/cjs/core/Header/HeaderBreadcrumbs.js +6 -4
  40. package/cjs/core/Header/HeaderButton.d.ts +3 -2
  41. package/cjs/core/Header/HeaderButton.js +10 -18
  42. package/cjs/core/Header/HeaderDropdownButton.d.ts +6 -0
  43. package/cjs/core/Header/HeaderDropdownButton.js +56 -0
  44. package/cjs/core/Header/HeaderLogo.js +3 -3
  45. package/cjs/core/Header/HeaderSplitButton.d.ts +6 -0
  46. package/cjs/core/Header/HeaderSplitButton.js +56 -0
  47. package/cjs/core/Input/Input.d.ts +1 -1
  48. package/cjs/core/Input/Input.js +3 -4
  49. package/cjs/core/InputGroup/InputGroup.d.ts +1 -1
  50. package/cjs/core/InputGroup/InputGroup.js +1 -1
  51. package/cjs/core/Label/Label.d.ts +1 -1
  52. package/cjs/core/Label/Label.js +1 -1
  53. package/cjs/core/LabeledInput/LabeledInput.d.ts +2 -2
  54. package/cjs/core/LabeledInput/LabeledInput.js +1 -1
  55. package/cjs/core/LabeledSelect/LabeledSelect.d.ts +1 -1
  56. package/cjs/core/LabeledSelect/LabeledSelect.js +1 -1
  57. package/cjs/core/LabeledTextarea/LabeledTextarea.d.ts +1 -1
  58. package/cjs/core/LabeledTextarea/LabeledTextarea.js +1 -1
  59. package/cjs/core/Radio/Radio.d.ts +1 -29
  60. package/cjs/core/Radio/Radio.js +3 -3
  61. package/cjs/core/RadioTiles/RadioTileGroup.d.ts +1 -1
  62. package/cjs/core/RadioTiles/RadioTileGroup.js +1 -1
  63. package/cjs/core/Select/Select.d.ts +1 -1
  64. package/cjs/core/Select/Select.js +9 -12
  65. package/cjs/core/Select/SelectTag.d.ts +1 -1
  66. package/cjs/core/Select/SelectTag.js +1 -1
  67. package/cjs/core/SideNavigation/SidenavButton.js +1 -2
  68. package/cjs/core/Stepper/Stepper.d.ts +40 -0
  69. package/cjs/core/{Wizard/Wizard.js → Stepper/Stepper.js} +11 -28
  70. package/cjs/core/{Wizard/Step.d.ts → Stepper/StepperStep.d.ts} +6 -7
  71. package/cjs/core/{Wizard/Step.js → Stepper/StepperStep.js} +10 -10
  72. package/cjs/core/Stepper/Wizard.d.ts +46 -0
  73. package/cjs/core/Stepper/Wizard.js +55 -0
  74. package/cjs/core/Stepper/WorkflowDiagram.d.ts +6 -0
  75. package/cjs/core/Stepper/WorkflowDiagram.js +43 -0
  76. package/cjs/core/Stepper/WorkflowDiagramStep.d.ts +5 -0
  77. package/cjs/core/Stepper/WorkflowDiagramStep.js +42 -0
  78. package/cjs/core/Stepper/index.d.ts +8 -0
  79. package/cjs/core/{Wizard → Stepper}/index.js +5 -1
  80. package/cjs/core/Surface/Surface.js +2 -4
  81. package/cjs/core/Table/SubRowExpander.js +1 -1
  82. package/cjs/core/Table/Table.d.ts +5 -4
  83. package/cjs/core/Table/Table.js +30 -21
  84. package/cjs/core/Table/TableCell.js +4 -4
  85. package/cjs/core/Table/TablePaginator.js +14 -15
  86. package/cjs/core/Table/TableRowMemoized.d.ts +2 -0
  87. package/cjs/core/Table/TableRowMemoized.js +10 -13
  88. package/cjs/core/Table/cells/DefaultCell.js +4 -9
  89. package/cjs/core/Table/columns/actionColumn.js +1 -1
  90. package/cjs/core/Table/columns/expanderColumn.js +1 -1
  91. package/cjs/core/Table/filters/BaseFilter.js +1 -1
  92. package/cjs/core/Table/filters/FilterToggle.js +1 -1
  93. package/cjs/core/Table/hooks/useColumnDragAndDrop.js +4 -4
  94. package/cjs/core/Table/hooks/useResizeColumns.js +110 -106
  95. package/cjs/core/Tabs/Tab.d.ts +0 -8
  96. package/cjs/core/Tabs/Tab.js +1 -5
  97. package/cjs/core/Tabs/Tabs.js +8 -11
  98. package/cjs/core/Tabs/index.d.ts +2 -2
  99. package/cjs/core/Tabs/index.js +1 -2
  100. package/cjs/core/Textarea/Textarea.d.ts +1 -1
  101. package/cjs/core/Textarea/Textarea.js +2 -2
  102. package/cjs/core/ThemeProvider/ThemeProvider.d.ts +27 -17
  103. package/cjs/core/ThemeProvider/ThemeProvider.js +64 -7
  104. package/cjs/core/Tile/Tile.d.ts +19 -1
  105. package/cjs/core/Tile/Tile.js +35 -12
  106. package/cjs/core/Toast/Toast.d.ts +3 -3
  107. package/cjs/core/Toast/Toast.js +3 -3
  108. package/cjs/core/Toast/ToastWrapper.d.ts +1 -1
  109. package/cjs/core/Toast/ToastWrapper.js +1 -1
  110. package/cjs/core/Tree/TreeNode.js +1 -7
  111. package/cjs/core/index.d.ts +8 -8
  112. package/cjs/core/index.js +13 -10
  113. package/cjs/core/utils/components/Popover.d.ts +2 -2
  114. package/cjs/core/utils/components/Popover.js +1 -1
  115. package/cjs/core/utils/components/Resizer.d.ts +5 -0
  116. package/cjs/core/utils/components/Resizer.js +7 -1
  117. package/cjs/core/utils/components/VisuallyHidden.d.ts +1 -0
  118. package/cjs/core/utils/components/VisuallyHidden.js +1 -0
  119. package/cjs/core/utils/functions/colors.d.ts +1 -1
  120. package/cjs/core/utils/functions/colors.js +1 -1
  121. package/cjs/core/utils/functions/dom.js +1 -0
  122. package/cjs/core/utils/hooks/index.d.ts +1 -0
  123. package/cjs/core/utils/hooks/index.js +1 -0
  124. package/cjs/core/utils/hooks/useIsomorphicLayoutEffect.d.ts +7 -0
  125. package/cjs/core/utils/hooks/useIsomorphicLayoutEffect.js +17 -0
  126. package/cjs/core/utils/hooks/useMediaQuery.js +2 -1
  127. package/cjs/core/utils/hooks/useTheme.d.ts +20 -3
  128. package/cjs/core/utils/hooks/useTheme.js +57 -58
  129. package/esm/core/Alert/Alert.d.ts +7 -6
  130. package/esm/core/Alert/Alert.js +12 -7
  131. package/esm/core/Avatar/Avatar.d.ts +69 -0
  132. package/esm/core/{UserIcon/UserIcon.js → Avatar/Avatar.js} +13 -9
  133. package/esm/core/Avatar/index.d.ts +4 -0
  134. package/esm/core/{UserIcon → Avatar}/index.js +2 -2
  135. package/esm/core/AvatarGroup/AvatarGroup.d.ts +70 -0
  136. package/esm/core/{UserIconGroup/UserIconGroup.js → AvatarGroup/AvatarGroup.js} +21 -17
  137. package/esm/core/AvatarGroup/index.d.ts +4 -0
  138. package/esm/core/{UserIconGroup → AvatarGroup}/index.js +2 -2
  139. package/esm/core/Badge/Badge.js +3 -5
  140. package/esm/core/ButtonGroup/ButtonGroup.d.ts +1 -1
  141. package/esm/core/Buttons/Button/Button.js +5 -14
  142. package/esm/core/Buttons/DropdownButton/DropdownButton.js +1 -1
  143. package/esm/core/Buttons/IconButton/IconButton.js +3 -9
  144. package/esm/core/Buttons/IdeasButton/IdeasButton.js +1 -1
  145. package/esm/core/Buttons/SplitButton/SplitButton.js +4 -6
  146. package/esm/core/Checkbox/Checkbox.d.ts +1 -29
  147. package/esm/core/Checkbox/Checkbox.js +3 -3
  148. package/esm/core/ColorPicker/ColorBuilder.js +17 -28
  149. package/esm/core/ColorPicker/ColorSwatch.d.ts +1 -1
  150. package/esm/core/ColorPicker/ColorSwatch.js +2 -7
  151. package/esm/core/ComboBox/ComboBoxDropdown.d.ts +1 -1
  152. package/esm/core/ComboBox/ComboBoxMenu.js +2 -4
  153. package/esm/core/Dialog/Dialog.d.ts +4 -4
  154. package/esm/core/Dialog/Dialog.js +1 -1
  155. package/esm/core/Dialog/DialogBackdrop.d.ts +1 -1
  156. package/esm/core/Dialog/DialogBackdrop.js +5 -2
  157. package/esm/core/Dialog/DialogMain.d.ts +1 -1
  158. package/esm/core/Dialog/DialogMain.js +7 -1
  159. package/esm/core/Dialog/DialogTitleBar.d.ts +1 -1
  160. package/esm/core/ExpandableBlock/ExpandableBlock.js +4 -4
  161. package/esm/core/Header/Header.d.ts +16 -6
  162. package/esm/core/Header/Header.js +7 -9
  163. package/esm/core/Header/HeaderBasicButton.d.ts +6 -0
  164. package/esm/core/Header/HeaderBasicButton.js +46 -0
  165. package/esm/core/Header/HeaderBreadcrumbs.js +6 -4
  166. package/esm/core/Header/HeaderButton.d.ts +3 -2
  167. package/esm/core/Header/HeaderButton.js +10 -18
  168. package/esm/core/Header/HeaderDropdownButton.d.ts +6 -0
  169. package/esm/core/Header/HeaderDropdownButton.js +50 -0
  170. package/esm/core/Header/HeaderLogo.js +3 -3
  171. package/esm/core/Header/HeaderSplitButton.d.ts +6 -0
  172. package/esm/core/Header/HeaderSplitButton.js +50 -0
  173. package/esm/core/Input/Input.d.ts +1 -1
  174. package/esm/core/Input/Input.js +3 -4
  175. package/esm/core/InputGroup/InputGroup.d.ts +1 -1
  176. package/esm/core/InputGroup/InputGroup.js +1 -1
  177. package/esm/core/Label/Label.d.ts +1 -1
  178. package/esm/core/Label/Label.js +1 -1
  179. package/esm/core/LabeledInput/LabeledInput.d.ts +2 -2
  180. package/esm/core/LabeledInput/LabeledInput.js +1 -1
  181. package/esm/core/LabeledSelect/LabeledSelect.d.ts +1 -1
  182. package/esm/core/LabeledSelect/LabeledSelect.js +1 -1
  183. package/esm/core/LabeledTextarea/LabeledTextarea.d.ts +1 -1
  184. package/esm/core/LabeledTextarea/LabeledTextarea.js +1 -1
  185. package/esm/core/Radio/Radio.d.ts +1 -29
  186. package/esm/core/Radio/Radio.js +3 -3
  187. package/esm/core/RadioTiles/RadioTileGroup.d.ts +1 -1
  188. package/esm/core/RadioTiles/RadioTileGroup.js +1 -1
  189. package/esm/core/Select/Select.d.ts +1 -1
  190. package/esm/core/Select/Select.js +9 -12
  191. package/esm/core/Select/SelectTag.d.ts +1 -1
  192. package/esm/core/Select/SelectTag.js +1 -1
  193. package/esm/core/SideNavigation/SidenavButton.js +1 -2
  194. package/esm/core/Stepper/Stepper.d.ts +40 -0
  195. package/esm/core/{Wizard/Wizard.js → Stepper/Stepper.js} +10 -27
  196. package/esm/core/{Wizard/Step.d.ts → Stepper/StepperStep.d.ts} +6 -7
  197. package/esm/core/{Wizard/Step.js → Stepper/StepperStep.js} +8 -8
  198. package/esm/core/Stepper/Wizard.d.ts +46 -0
  199. package/esm/core/Stepper/Wizard.js +49 -0
  200. package/esm/core/Stepper/WorkflowDiagram.d.ts +6 -0
  201. package/esm/core/Stepper/WorkflowDiagram.js +37 -0
  202. package/esm/core/Stepper/WorkflowDiagramStep.d.ts +5 -0
  203. package/esm/core/Stepper/WorkflowDiagramStep.js +35 -0
  204. package/esm/core/Stepper/index.d.ts +8 -0
  205. package/esm/core/{Wizard → Stepper}/index.js +2 -0
  206. package/esm/core/Surface/Surface.js +3 -5
  207. package/esm/core/Table/SubRowExpander.js +1 -1
  208. package/esm/core/Table/Table.d.ts +5 -4
  209. package/esm/core/Table/Table.js +30 -21
  210. package/esm/core/Table/TableCell.js +4 -4
  211. package/esm/core/Table/TablePaginator.js +14 -15
  212. package/esm/core/Table/TableRowMemoized.d.ts +2 -0
  213. package/esm/core/Table/TableRowMemoized.js +10 -13
  214. package/esm/core/Table/cells/DefaultCell.js +4 -9
  215. package/esm/core/Table/columns/actionColumn.js +1 -1
  216. package/esm/core/Table/columns/expanderColumn.js +1 -1
  217. package/esm/core/Table/filters/BaseFilter.js +1 -1
  218. package/esm/core/Table/filters/FilterToggle.js +1 -1
  219. package/esm/core/Table/hooks/useColumnDragAndDrop.js +4 -4
  220. package/esm/core/Table/hooks/useResizeColumns.js +110 -106
  221. package/esm/core/Tabs/Tab.d.ts +0 -8
  222. package/esm/core/Tabs/Tab.js +0 -4
  223. package/esm/core/Tabs/Tabs.js +9 -12
  224. package/esm/core/Tabs/index.d.ts +2 -2
  225. package/esm/core/Tabs/index.js +1 -1
  226. package/esm/core/Textarea/Textarea.d.ts +1 -1
  227. package/esm/core/Textarea/Textarea.js +2 -2
  228. package/esm/core/ThemeProvider/ThemeProvider.d.ts +27 -17
  229. package/esm/core/ThemeProvider/ThemeProvider.js +64 -6
  230. package/esm/core/Tile/Tile.d.ts +19 -1
  231. package/esm/core/Tile/Tile.js +36 -13
  232. package/esm/core/Toast/Toast.d.ts +3 -3
  233. package/esm/core/Toast/Toast.js +3 -3
  234. package/esm/core/Toast/ToastWrapper.d.ts +1 -1
  235. package/esm/core/Toast/ToastWrapper.js +1 -1
  236. package/esm/core/Tree/TreeNode.js +2 -8
  237. package/esm/core/index.d.ts +8 -8
  238. package/esm/core/index.js +4 -4
  239. package/esm/core/utils/components/Popover.d.ts +2 -2
  240. package/esm/core/utils/components/Popover.js +1 -1
  241. package/esm/core/utils/components/Resizer.d.ts +5 -0
  242. package/esm/core/utils/components/Resizer.js +7 -1
  243. package/esm/core/utils/components/VisuallyHidden.d.ts +1 -0
  244. package/esm/core/utils/components/VisuallyHidden.js +1 -0
  245. package/esm/core/utils/functions/colors.d.ts +1 -1
  246. package/esm/core/utils/functions/colors.js +1 -1
  247. package/esm/core/utils/functions/dom.js +1 -0
  248. package/esm/core/utils/hooks/index.d.ts +1 -0
  249. package/esm/core/utils/hooks/index.js +1 -0
  250. package/esm/core/utils/hooks/useIsomorphicLayoutEffect.d.ts +7 -0
  251. package/esm/core/utils/hooks/useIsomorphicLayoutEffect.js +11 -0
  252. package/esm/core/utils/hooks/useMediaQuery.js +2 -1
  253. package/esm/core/utils/hooks/useTheme.d.ts +20 -3
  254. package/esm/core/utils/hooks/useTheme.js +56 -57
  255. package/package.json +3 -2
  256. package/cjs/core/UserIcon/UserIcon.d.ts +0 -57
  257. package/cjs/core/UserIcon/index.d.ts +0 -4
  258. package/cjs/core/UserIconGroup/UserIconGroup.d.ts +0 -62
  259. package/cjs/core/UserIconGroup/index.d.ts +0 -4
  260. package/cjs/core/Wizard/Wizard.d.ts +0 -54
  261. package/cjs/core/Wizard/index.d.ts +0 -4
  262. package/esm/core/UserIcon/UserIcon.d.ts +0 -57
  263. package/esm/core/UserIcon/index.d.ts +0 -4
  264. package/esm/core/UserIconGroup/UserIconGroup.d.ts +0 -62
  265. package/esm/core/UserIconGroup/index.d.ts +0 -4
  266. package/esm/core/Wizard/Wizard.d.ts +0 -54
  267. package/esm/core/Wizard/index.d.ts +0 -4
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import '@itwin/itwinui-css/css/stepper.css';
3
+ export declare type StepperLocalization = {
4
+ stepsCountLabel: (currentStep: number, totalSteps: number) => string;
5
+ };
6
+ export declare type StepProperties = {
7
+ /**
8
+ * The title/label of the step.
9
+ */
10
+ name: string;
11
+ /**
12
+ * A tooltip giving detailed description to this step.
13
+ */
14
+ description?: string;
15
+ };
16
+ export declare type StepperProps = {
17
+ /**
18
+ * Current step index, 0 - based.
19
+ */
20
+ currentStep?: number;
21
+ /**
22
+ * An array of step objects.
23
+ */
24
+ steps: StepProperties[];
25
+ /**
26
+ * The type of Stepper to display.
27
+ * @default 'default'
28
+ */
29
+ type?: 'default' | 'long';
30
+ /**
31
+ * Option to provide localized strings.
32
+ */
33
+ localization?: StepperLocalization;
34
+ /**
35
+ * Click handler on completed step.
36
+ */
37
+ onStepClick?: (clickedIndex: number) => void;
38
+ };
39
+ export declare const Stepper: React.ForwardRefExoticComponent<StepperProps & React.RefAttributes<HTMLDivElement>>;
40
+ export default Stepper;
@@ -24,40 +24,23 @@ var __rest = (this && this.__rest) || function (s, e) {
24
24
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
25
25
  * See LICENSE.md in the project root for license terms and full copyright notice.
26
26
  *--------------------------------------------------------------------------------------------*/
27
- import cx from 'classnames';
28
27
  import React from 'react';
29
28
  import { useTheme } from '../utils';
30
- import '@itwin/itwinui-css/css/wizard.css';
31
- import { Step } from './Step';
32
- var defaultWizardLocalization = {
29
+ import '@itwin/itwinui-css/css/stepper.css';
30
+ import { StepperStep } from './StepperStep';
31
+ var defaultStepperLocalization = {
33
32
  stepsCountLabel: function (currentStep, totalSteps) {
34
33
  return "Step ".concat(currentStep, " of ").concat(totalSteps, ":");
35
34
  },
36
35
  };
37
- /**
38
- * A wizard displays progress through a sequence of logical and numbered steps.
39
- * It may also be used for navigation.
40
- *
41
- * The `type` can be set to 'long' to show labels under steps.
42
- *
43
- * @example
44
- * <Wizard
45
- * steps=[{name: "Step One"}, {name: "Step Two"}, {name: "Step Three"}]
46
- * currentStep={0}
47
- * type='long'
48
- * />
49
- */
50
- export var Wizard = React.forwardRef(function (props, ref) {
51
- var currentStep = props.currentStep, steps = props.steps, _a = props.type, type = _a === void 0 ? 'default' : _a, _b = props.localization, localization = _b === void 0 ? defaultWizardLocalization : _b, onStepClick = props.onStepClick, rest = __rest(props, ["currentStep", "steps", "type", "localization", "onStepClick"]);
36
+ export var Stepper = React.forwardRef(function (props, ref) {
37
+ var currentStep = props.currentStep, steps = props.steps, _a = props.type, type = _a === void 0 ? 'default' : _a, _b = props.localization, localization = _b === void 0 ? defaultStepperLocalization : _b, onStepClick = props.onStepClick, rest = __rest(props, ["currentStep", "steps", "type", "localization", "onStepClick"]);
52
38
  var boundedCurrentStep = Math.min(Math.max(0, currentStep !== null && currentStep !== void 0 ? currentStep : 0), steps.length - 1);
53
39
  useTheme();
54
- return (React.createElement("div", __assign({ className: cx('iui-wizard', {
55
- 'iui-long': type === 'long',
56
- 'iui-workflow': type === 'workflow',
57
- }), ref: ref }, rest),
58
- React.createElement("ol", null, steps.map(function (s, index) { return (React.createElement(Step, { key: index, index: index, title: type === 'long' ? '' : s.name, currentStepNumber: boundedCurrentStep, totalSteps: steps.length, type: type, onClick: onStepClick, description: s.description })); })),
59
- type === 'long' && (React.createElement("div", { className: 'iui-wizard-steps-label' },
60
- React.createElement("span", { className: 'iui-steps-count' }, localization.stepsCountLabel(boundedCurrentStep + 1, steps.length)),
40
+ return (React.createElement("div", __assign({ className: 'iui-stepper', ref: ref }, rest),
41
+ React.createElement("ol", null, steps.map(function (s, index) { return (React.createElement(StepperStep, { key: index, index: index, title: type === 'long' ? '' : s.name, currentStepNumber: boundedCurrentStep, totalSteps: steps.length, type: type, onClick: onStepClick, description: s.description })); })),
42
+ type === 'long' && (React.createElement("div", { className: 'iui-stepper-steps-label' },
43
+ React.createElement("span", { className: 'iui-stepper-steps-label-count' }, localization.stepsCountLabel(boundedCurrentStep + 1, steps.length)),
61
44
  steps[boundedCurrentStep].name))));
62
45
  });
63
- export default Wizard;
46
+ export default Stepper;
@@ -1,7 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { StylingProps } from '../utils';
3
- import { WizardType } from './Wizard';
4
- export declare type StepProps = {
3
+ export declare type StepperStepProps = {
5
4
  /**
6
5
  * The title/label of the step.
7
6
  */
@@ -11,17 +10,17 @@ export declare type StepProps = {
11
10
  */
12
11
  index: number;
13
12
  /**
14
- * the Wizard's current step number, 0-based.
13
+ * the Stepper's current step number, 0-based.
15
14
  */
16
15
  currentStepNumber: number;
17
16
  /**
18
- * number of total steps in the wizard.
17
+ * number of total steps in the stepper.
19
18
  */
20
19
  totalSteps: number;
21
20
  /**
22
- * Wizard type.
21
+ * Stepper type.
23
22
  */
24
- type: WizardType;
23
+ type: 'default' | 'long';
25
24
  /**
26
25
  * Click handler on completed step.
27
26
  */
@@ -31,4 +30,4 @@ export declare type StepProps = {
31
30
  */
32
31
  description?: string;
33
32
  } & StylingProps;
34
- export declare const Step: (props: StepProps) => JSX.Element;
33
+ export declare const StepperStep: (props: StepperStepProps) => JSX.Element;
@@ -27,11 +27,11 @@ var __rest = (this && this.__rest) || function (s, e) {
27
27
  import cx from 'classnames';
28
28
  import React from 'react';
29
29
  import { Tooltip } from '../Tooltip';
30
- export var Step = function (props) {
30
+ export var StepperStep = function (props) {
31
31
  var title = props.title, index = props.index, currentStepNumber = props.currentStepNumber, totalSteps = props.totalSteps, type = props.type, onClick = props.onClick, description = props.description, className = props.className, style = props.style, rest = __rest(props, ["title", "index", "currentStepNumber", "totalSteps", "type", "onClick", "description", "className", "style"]);
32
- var isPast = type !== 'workflow' && currentStepNumber > index;
33
- var isActive = type !== 'workflow' && currentStepNumber === index;
34
- var isClickable = type !== 'workflow' && isPast && !!onClick;
32
+ var isPast = currentStepNumber > index;
33
+ var isActive = currentStepNumber === index;
34
+ var isClickable = isPast && !!onClick;
35
35
  var onCompletedClick = function () {
36
36
  if (isClickable) {
37
37
  onClick === null || onClick === void 0 ? void 0 : onClick(index);
@@ -45,12 +45,12 @@ export var Step = function (props) {
45
45
  onCompletedClick();
46
46
  }
47
47
  };
48
- var stepShape = (React.createElement("li", __assign({ className: cx('iui-wizard-step', {
48
+ var stepShape = (React.createElement("li", __assign({ className: cx('iui-stepper-step', {
49
49
  'iui-current': isActive,
50
50
  'iui-clickable': isClickable,
51
51
  }, className), style: __assign({ width: type === 'default' ? "".concat(100 / totalSteps, "%") : undefined }, style), onClick: onCompletedClick, onKeyDown: onKeyDown, "aria-current": isActive ? 'step' : undefined, tabIndex: isClickable ? 0 : undefined }, rest),
52
- React.createElement("div", { className: 'iui-wizard-track-content' },
53
- React.createElement("span", { className: 'iui-wizard-circle' }, type === 'workflow' ? title : index + 1)),
54
- type === 'default' && (React.createElement("span", { className: 'iui-wizard-step-name' }, title))));
52
+ React.createElement("div", { className: 'iui-stepper-track-content' },
53
+ React.createElement("span", { className: 'iui-stepper-circle' }, index + 1)),
54
+ type === 'default' && (React.createElement("span", { className: 'iui-stepper-step-name' }, title))));
55
55
  return description ? (React.createElement(Tooltip, { content: description }, stepShape)) : (stepShape);
56
56
  };
@@ -0,0 +1,46 @@
1
+ import React from 'react';
2
+ import { StepperProps, StepperLocalization } from './Stepper';
3
+ /**
4
+ * @deprecated Since v2:
5
+ *
6
+ * - For `default` | `long`, use `StepperType` with `Stepper` instead
7
+ * - For `workflow`, use `WorkflowDiagram` instead
8
+ */
9
+ export declare type WizardType = 'default' | 'long' | 'workflow';
10
+ /**
11
+ * @deprecated Since v2, use `StepperLocalization` with `Stepper`
12
+ */
13
+ export declare type WizardLocalization = StepperLocalization;
14
+ /**
15
+ * @deprecated Since v2, use `StepperProps` with `Stepper` or `WorkflowDiagramProps` with `WorkflowDiagram`
16
+ */
17
+ export declare type WizardProps = {
18
+ /**
19
+ * The type of Wizard to display.
20
+ * @default 'default'
21
+ */
22
+ type?: WizardType;
23
+ } & Omit<StepperProps, 'type'>;
24
+ /**
25
+ * @deprecated Since v2, use `Stepper` (type = `default` | `long`) or WorkflowDiagram (type = `workflow`)
26
+ *
27
+ * A wizard displays progress through a sequence of logical and numbered steps.
28
+ * It may also be used for navigation.
29
+ *
30
+ * The `type` can be set to 'long' to show labels under steps.
31
+ *
32
+ * @example
33
+ * <Wizard
34
+ * steps=[{name: "Step One"}, {name: "Step Two"}, {name: "Step Three"}]
35
+ * currentStep={0}
36
+ * type='long'
37
+ * />
38
+ */
39
+ export declare const Wizard: React.ForwardRefExoticComponent<{
40
+ /**
41
+ * The type of Wizard to display.
42
+ * @default 'default'
43
+ */
44
+ type?: WizardType | undefined;
45
+ } & Omit<StepperProps, "type"> & React.RefAttributes<HTMLDivElement>>;
46
+ export default Wizard;
@@ -0,0 +1,49 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ /*---------------------------------------------------------------------------------------------
24
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
25
+ * See LICENSE.md in the project root for license terms and full copyright notice.
26
+ *--------------------------------------------------------------------------------------------*/
27
+ import React from 'react';
28
+ import { Stepper } from './Stepper';
29
+ import { WorkflowDiagram } from './WorkflowDiagram';
30
+ /**
31
+ * @deprecated Since v2, use `Stepper` (type = `default` | `long`) or WorkflowDiagram (type = `workflow`)
32
+ *
33
+ * A wizard displays progress through a sequence of logical and numbered steps.
34
+ * It may also be used for navigation.
35
+ *
36
+ * The `type` can be set to 'long' to show labels under steps.
37
+ *
38
+ * @example
39
+ * <Wizard
40
+ * steps=[{name: "Step One"}, {name: "Step Two"}, {name: "Step Three"}]
41
+ * currentStep={0}
42
+ * type='long'
43
+ * />
44
+ */
45
+ export var Wizard = React.forwardRef(function (props, ref) {
46
+ var currentStep = props.currentStep, steps = props.steps, _a = props.type, type = _a === void 0 ? 'default' : _a, localization = props.localization, onStepClick = props.onStepClick, rest = __rest(props, ["currentStep", "steps", "type", "localization", "onStepClick"]);
47
+ return type !== 'workflow' ? (React.createElement(Stepper, __assign({ type: type, currentStep: currentStep, steps: steps, localization: localization, onStepClick: onStepClick, ref: ref }, rest))) : (React.createElement(WorkflowDiagram, __assign({ steps: steps, ref: ref }, rest)));
48
+ });
49
+ export default Wizard;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import '@itwin/itwinui-css/css/workflow-diagram.css';
3
+ import { StepperProps } from './Stepper';
4
+ export declare type WorkflowDiagramProps = Pick<StepperProps, 'steps'>;
5
+ export declare const WorkflowDiagram: React.ForwardRefExoticComponent<WorkflowDiagramProps & React.RefAttributes<HTMLDivElement>>;
6
+ export default WorkflowDiagram;
@@ -0,0 +1,37 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ /*---------------------------------------------------------------------------------------------
24
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
25
+ * See LICENSE.md in the project root for license terms and full copyright notice.
26
+ *--------------------------------------------------------------------------------------------*/
27
+ import React from 'react';
28
+ import { useTheme } from '../utils';
29
+ import '@itwin/itwinui-css/css/workflow-diagram.css';
30
+ import { WorkflowDiagramStep } from './WorkflowDiagramStep';
31
+ export var WorkflowDiagram = React.forwardRef(function (props, ref) {
32
+ var steps = props.steps, rest = __rest(props, ["steps"]);
33
+ useTheme();
34
+ return (React.createElement("div", { ref: ref },
35
+ React.createElement("ol", __assign({ className: 'iui-workflow-diagram' }, rest), steps.map(function (s, index) { return (React.createElement(WorkflowDiagramStep, { key: index, title: s.name, description: s.description })); }))));
36
+ });
37
+ export default WorkflowDiagram;
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { StylingProps } from '../utils';
3
+ import { StepperStepProps } from './StepperStep';
4
+ export declare type WorkflowDiagramStepProps = Pick<StepperStepProps, 'title' | 'description'> & StylingProps;
5
+ export declare const WorkflowDiagramStep: (props: WorkflowDiagramStepProps) => JSX.Element;
@@ -0,0 +1,35 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ /*---------------------------------------------------------------------------------------------
24
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
25
+ * See LICENSE.md in the project root for license terms and full copyright notice.
26
+ *--------------------------------------------------------------------------------------------*/
27
+ import cx from 'classnames';
28
+ import React from 'react';
29
+ import { Tooltip } from '../Tooltip';
30
+ export var WorkflowDiagramStep = function (props) {
31
+ var title = props.title, description = props.description, className = props.className, style = props.style, rest = __rest(props, ["title", "description", "className", "style"]);
32
+ var stepShape = (React.createElement("li", __assign({ className: cx('iui-workflow-diagram-step', className), style: style }, rest),
33
+ React.createElement("span", { className: 'iui-workflow-diagram-content' }, title)));
34
+ return description ? (React.createElement(Tooltip, { content: description }, stepShape)) : (stepShape);
35
+ };
@@ -0,0 +1,8 @@
1
+ export { Wizard } from './Wizard';
2
+ export { Stepper } from './Stepper';
3
+ export { WorkflowDiagram } from './WorkflowDiagram';
4
+ export type { WizardProps, WizardType, WizardLocalization } from './Wizard';
5
+ export type { StepperProps, StepProperties, StepperLocalization, } from './Stepper';
6
+ export type { WorkflowDiagramProps } from './WorkflowDiagram';
7
+ declare const _default: "./Wizard";
8
+ export default _default;
@@ -3,4 +3,6 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  export { Wizard } from './Wizard';
6
+ export { Stepper } from './Stepper';
7
+ export { WorkflowDiagram } from './WorkflowDiagram';
6
8
  export default './Wizard';
@@ -26,7 +26,7 @@ var __rest = (this && this.__rest) || function (s, e) {
26
26
  *--------------------------------------------------------------------------------------------*/
27
27
  import React from 'react';
28
28
  import cx from 'classnames';
29
- import { useTheme, getWindow } from '../utils';
29
+ import { useTheme } from '../utils';
30
30
  import '@itwin/itwinui-css/css/surface.css';
31
31
  /**
32
32
  * Helper function that returns one of the preset surface elevation values.
@@ -54,11 +54,9 @@ var getSurfaceElevationValue = function (elevation) {
54
54
  * <Surface elevation={2}>Surface Content</Surface>
55
55
  */
56
56
  export var Surface = React.forwardRef(function (props, ref) {
57
- var _a, _b, _c;
58
- var _d = props.elevation, elevation = _d === void 0 ? 0 : _d, className = props.className, style = props.style, children = props.children, rest = __rest(props, ["elevation", "className", "style", "children"]);
57
+ var _a = props.elevation, elevation = _a === void 0 ? 0 : _a, className = props.className, style = props.style, children = props.children, rest = __rest(props, ["elevation", "className", "style", "children"]);
59
58
  useTheme();
60
- var _style = ((_c = (_b = (_a = getWindow()) === null || _a === void 0 ? void 0 : _a.CSS) === null || _b === void 0 ? void 0 : _b.supports) === null || _c === void 0 ? void 0 : _c.call(_b, "--iui-surface-elevation: ".concat(getSurfaceElevationValue(elevation))))
61
- ? __assign({ '--iui-surface-elevation': getSurfaceElevationValue(elevation) }, style) : __assign({ boxShadow: getSurfaceElevationValue(elevation) }, style);
59
+ var _style = __assign({ '--iui-surface-elevation': getSurfaceElevationValue(elevation) }, style);
62
60
  return (React.createElement("div", __assign({ className: cx('iui-surface', className), style: _style, ref: ref }, rest), children));
63
61
  });
64
62
  export default Surface;
@@ -7,7 +7,7 @@ import SvgChevronRight from '@itwin/itwinui-icons-react/cjs/icons/ChevronRight';
7
7
  import { IconButton } from '../Buttons';
8
8
  export var SubRowExpander = function (props) {
9
9
  var cell = props.cell, isDisabled = props.isDisabled, cellProps = props.cellProps, expanderCell = props.expanderCell;
10
- return (React.createElement(React.Fragment, null, expanderCell ? (expanderCell(cellProps)) : (React.createElement(IconButton, { style: { marginRight: 8 }, className: 'iui-row-expander', styleType: 'borderless', size: 'small', onClick: function (e) {
10
+ return (React.createElement(React.Fragment, null, expanderCell ? (expanderCell(cellProps)) : (React.createElement(IconButton, { style: { marginRight: 8 }, className: 'iui-table-row-expander', styleType: 'borderless', size: 'small', onClick: function (e) {
11
11
  e.stopPropagation();
12
12
  cell.row.toggleRowExpanded();
13
13
  }, disabled: isDisabled }, React.createElement(SvgChevronRight, { style: {
@@ -35,6 +35,10 @@ export declare type TablePaginatorRendererProps = {
35
35
  * @default false
36
36
  */
37
37
  isLoading?: boolean;
38
+ /**
39
+ * Total number of rows selected (for mutli-selection mode only)
40
+ */
41
+ totalSelectedRowsCount?: number;
38
42
  };
39
43
  /**
40
44
  * Table props.
@@ -83,12 +87,10 @@ export declare type TableProps<T extends Record<string, unknown> = Record<string
83
87
  onSort?: (state: TableState<T>) => void;
84
88
  /**
85
89
  * Callback function when scroll reaches bottom. Can be used for lazy-loading the data.
86
- * If you want to use it in older browsers e.g. IE, then you need to have IntersectionObserver polyfill.
87
90
  */
88
91
  onBottomReached?: () => void;
89
92
  /**
90
93
  * Callback function when row is in viewport.
91
- * If you want to use it in older browsers e.g. IE, then you need to have IntersectionObserver polyfill.
92
94
  */
93
95
  onRowInViewport?: (rowData: T) => void;
94
96
  /**
@@ -137,6 +139,7 @@ export declare type TableProps<T extends Record<string, unknown> = Record<string
137
139
  */
138
140
  rowProps?: (row: Row<T>) => React.ComponentPropsWithRef<'div'> & {
139
141
  status?: 'positive' | 'warning' | 'negative';
142
+ isLoading?: boolean;
140
143
  };
141
144
  /**
142
145
  * Modify the density of the table (adjusts the row height).
@@ -166,8 +169,6 @@ export declare type TableProps<T extends Record<string, unknown> = Record<string
166
169
  /**
167
170
  * Flag whether columns are resizable.
168
171
  * In order to disable resizing for specific column, set `disableResizing: true` for that column.
169
- *
170
- * If you want to use it in older browsers e.g. IE, then you need to have `ResizeObserver` polyfill.
171
172
  * @default false
172
173
  */
173
174
  isResizable?: boolean;
@@ -97,8 +97,7 @@ var flattenColumns = function (columns) {
97
97
  * />
98
98
  */
99
99
  export var Table = function (props) {
100
- var _a;
101
- var data = props.data, columns = props.columns, _b = props.isLoading, isLoading = _b === void 0 ? false : _b, emptyTableContent = props.emptyTableContent, className = props.className, style = props.style, id = props.id, _c = props.isSelectable, isSelectable = _c === void 0 ? false : _c, onSelect = props.onSelect, onRowClick = props.onRowClick, _d = props.selectionMode, selectionMode = _d === void 0 ? 'multi' : _d, _e = props.isSortable, isSortable = _e === void 0 ? false : _e, onSort = props.onSort, stateReducer = props.stateReducer, onBottomReached = props.onBottomReached, onRowInViewport = props.onRowInViewport, _f = props.intersectionMargin, intersectionMargin = _f === void 0 ? 300 : _f, subComponent = props.subComponent, onExpand = props.onExpand, onFilter = props.onFilter, globalFilterValue = props.globalFilterValue, emptyFilteredTableContent = props.emptyFilteredTableContent, filterFunctions = props.filterTypes, expanderCell = props.expanderCell, isRowDisabled = props.isRowDisabled, rowProps = props.rowProps, _g = props.density, density = _g === void 0 ? 'default' : _g, _h = props.selectSubRows, selectSubRows = _h === void 0 ? true : _h, getSubRows = props.getSubRows, _j = props.selectRowOnClick, selectRowOnClick = _j === void 0 ? true : _j, paginatorRenderer = props.paginatorRenderer, _k = props.pageSize, pageSize = _k === void 0 ? 25 : _k, _l = props.isResizable, isResizable = _l === void 0 ? false : _l, _m = props.columnResizeMode, columnResizeMode = _m === void 0 ? 'fit' : _m, _o = props.styleType, styleType = _o === void 0 ? 'default' : _o, _p = props.enableVirtualization, enableVirtualization = _p === void 0 ? false : _p, _q = props.enableColumnReordering, enableColumnReordering = _q === void 0 ? false : _q, rest = __rest(props, ["data", "columns", "isLoading", "emptyTableContent", "className", "style", "id", "isSelectable", "onSelect", "onRowClick", "selectionMode", "isSortable", "onSort", "stateReducer", "onBottomReached", "onRowInViewport", "intersectionMargin", "subComponent", "onExpand", "onFilter", "globalFilterValue", "emptyFilteredTableContent", "filterTypes", "expanderCell", "isRowDisabled", "rowProps", "density", "selectSubRows", "getSubRows", "selectRowOnClick", "paginatorRenderer", "pageSize", "isResizable", "columnResizeMode", "styleType", "enableVirtualization", "enableColumnReordering"]);
100
+ var data = props.data, columns = props.columns, _a = props.isLoading, isLoading = _a === void 0 ? false : _a, emptyTableContent = props.emptyTableContent, className = props.className, style = props.style, id = props.id, _b = props.isSelectable, isSelectable = _b === void 0 ? false : _b, onSelect = props.onSelect, onRowClick = props.onRowClick, _c = props.selectionMode, selectionMode = _c === void 0 ? 'multi' : _c, _d = props.isSortable, isSortable = _d === void 0 ? false : _d, onSort = props.onSort, stateReducer = props.stateReducer, onBottomReached = props.onBottomReached, onRowInViewport = props.onRowInViewport, _e = props.intersectionMargin, intersectionMargin = _e === void 0 ? 300 : _e, subComponent = props.subComponent, onExpand = props.onExpand, onFilter = props.onFilter, globalFilterValue = props.globalFilterValue, emptyFilteredTableContent = props.emptyFilteredTableContent, filterFunctions = props.filterTypes, expanderCell = props.expanderCell, isRowDisabled = props.isRowDisabled, rowProps = props.rowProps, _f = props.density, density = _f === void 0 ? 'default' : _f, _g = props.selectSubRows, selectSubRows = _g === void 0 ? true : _g, getSubRows = props.getSubRows, _h = props.selectRowOnClick, selectRowOnClick = _h === void 0 ? true : _h, paginatorRenderer = props.paginatorRenderer, _j = props.pageSize, pageSize = _j === void 0 ? 25 : _j, _k = props.isResizable, isResizable = _k === void 0 ? false : _k, _l = props.columnResizeMode, columnResizeMode = _l === void 0 ? 'fit' : _l, _m = props.styleType, styleType = _m === void 0 ? 'default' : _m, _o = props.enableVirtualization, enableVirtualization = _o === void 0 ? false : _o, _p = props.enableColumnReordering, enableColumnReordering = _p === void 0 ? false : _p, rest = __rest(props, ["data", "columns", "isLoading", "emptyTableContent", "className", "style", "id", "isSelectable", "onSelect", "onRowClick", "selectionMode", "isSortable", "onSort", "stateReducer", "onBottomReached", "onRowInViewport", "intersectionMargin", "subComponent", "onExpand", "onFilter", "globalFilterValue", "emptyFilteredTableContent", "filterTypes", "expanderCell", "isRowDisabled", "rowProps", "density", "selectSubRows", "getSubRows", "selectRowOnClick", "paginatorRenderer", "pageSize", "isResizable", "columnResizeMode", "styleType", "enableVirtualization", "enableColumnReordering"]);
102
101
  useTheme();
103
102
  var ownerDocument = React.useRef();
104
103
  var defaultColumn = React.useMemo(function () { return ({
@@ -272,6 +271,7 @@ export var Table = function (props) {
272
271
  isLoading: isLoading,
273
272
  onPageChange: gotoPage,
274
273
  onPageSizeChange: setPageSize,
274
+ totalSelectedRowsCount: selectionMode === 'single' ? 0 : instance.selectedFlatRows.length, // 0 when selectionMode = 'single' since totalSelectedRowCount is for multi-selection mode only
275
275
  }); }, [
276
276
  density,
277
277
  gotoPage,
@@ -280,8 +280,10 @@ export var Table = function (props) {
280
280
  setPageSize,
281
281
  state.pageIndex,
282
282
  state.pageSize,
283
+ instance.selectedFlatRows,
284
+ selectionMode,
283
285
  ]);
284
- var _r = useScrollToRow(__assign(__assign({}, props), { page: page })), scrollToIndex = _r.scrollToIndex, tableRowRef = _r.tableRowRef;
286
+ var _q = useScrollToRow(__assign(__assign({}, props), { page: page })), scrollToIndex = _q.scrollToIndex, tableRowRef = _q.tableRowRef;
285
287
  var columnRefs = React.useRef({});
286
288
  var previousTableWidth = React.useRef(0);
287
289
  var onTableResize = React.useCallback(function (_a) {
@@ -294,7 +296,8 @@ export var Table = function (props) {
294
296
  // Update column widths when table was resized
295
297
  flatHeaders.forEach(function (header) {
296
298
  if (columnRefs.current[header.id]) {
297
- header.resizeWidth = columnRefs.current[header.id].getBoundingClientRect().width;
299
+ header.resizeWidth =
300
+ columnRefs.current[header.id].getBoundingClientRect().width;
298
301
  }
299
302
  });
300
303
  // If no column was resized then leave table resize handling to the flexbox
@@ -310,7 +313,8 @@ export var Table = function (props) {
310
313
  var newColumnWidths_1 = {};
311
314
  flatHeaders.forEach(function (column) {
312
315
  if (columnRefs.current[column.id]) {
313
- newColumnWidths_1[column.id] = columnRefs.current[column.id].getBoundingClientRect().width;
316
+ newColumnWidths_1[column.id] =
317
+ columnRefs.current[column.id].getBoundingClientRect().width;
314
318
  }
315
319
  });
316
320
  dispatch({ type: tableResizeEndAction, columnWidths: newColumnWidths_1 });
@@ -370,9 +374,9 @@ export var Table = function (props) {
370
374
  resizeRef(element);
371
375
  }
372
376
  }, id: id }, getTableProps({
373
- className: cx('iui-table', (_a = {}, _a["iui-".concat(density)] = density !== 'default', _a), className),
377
+ className: cx('iui-table', className),
374
378
  style: __assign({ minWidth: 0 }, style),
375
- }), ariaDataAttributes),
379
+ }), { "data-iui-size": density === 'default' ? undefined : density }, ariaDataAttributes),
376
380
  React.createElement("div", { className: 'iui-table-header-wrapper', ref: headerRef, onScroll: function () {
377
381
  if (headerRef.current && bodyRef.current) {
378
382
  bodyRef.current.scrollLeft = headerRef.current.scrollLeft;
@@ -381,19 +385,20 @@ export var Table = function (props) {
381
385
  } },
382
386
  React.createElement("div", { className: 'iui-table-header' }, headerGroups.slice(1).map(function (headerGroup) {
383
387
  var headerGroupProps = headerGroup.getHeaderGroupProps({
384
- className: 'iui-row',
388
+ className: 'iui-table-row',
385
389
  });
386
390
  return (React.createElement("div", __assign({}, headerGroupProps, { key: headerGroupProps.key }), headerGroup.headers.map(function (column, index) {
387
391
  var _a = column.getSortByToggleProps(), onClick = _a.onClick, restSortProps = __rest(_a, ["onClick"]);
388
- var columnProps = column.getHeaderProps(__assign(__assign({}, restSortProps), { className: cx('iui-cell', {
392
+ var columnProps = column.getHeaderProps(__assign(__assign({}, restSortProps), { className: cx('iui-table-cell', {
389
393
  'iui-actionable': column.canSort,
390
394
  'iui-sorted': column.isSorted,
391
- 'iui-cell-sticky': !!column.sticky,
395
+ 'iui-table-cell-sticky': !!column.sticky,
392
396
  }, column.columnClassName), style: __assign(__assign(__assign({}, getCellStyle(column, !!state.isTableResizing)), getStickyStyle(column, visibleColumns)), { flexWrap: 'unset' }) }));
393
397
  return (React.createElement("div", __assign({}, columnProps, column.getDragAndDropProps(), { key: columnProps.key, title: undefined, ref: function (el) {
394
398
  if (el) {
395
399
  columnRefs.current[column.id] = el;
396
- column.resizeWidth = el.getBoundingClientRect().width;
400
+ column.resizeWidth =
401
+ el.getBoundingClientRect().width;
397
402
  }
398
403
  }, onMouseDown: function () {
399
404
  isHeaderDirectClick.current = true;
@@ -403,24 +408,28 @@ export var Table = function (props) {
403
408
  onClick === null || onClick === void 0 ? void 0 : onClick(e);
404
409
  isHeaderDirectClick.current = false;
405
410
  }
411
+ }, tabIndex: showSortButton(column) ? 0 : undefined, onKeyDown: function (e) {
412
+ if (e.key == 'Enter' && showSortButton(column)) {
413
+ column.toggleSortBy();
414
+ }
406
415
  } }),
407
416
  column.render('Header'),
408
417
  (showFilterButton(column) ||
409
418
  showSortButton(column)) && (React.createElement("div", { className: 'iui-table-header-actions-container' },
410
419
  showFilterButton(column) && (React.createElement(FilterToggle, { column: column })),
411
- showSortButton(column) && (React.createElement("div", { className: 'iui-cell-end-icon' }, column.isSortedDesc ||
412
- (!column.isSorted && column.sortDescFirst) ? (React.createElement(SvgSortDown, { className: 'iui-icon iui-sort', "aria-hidden": true })) : (React.createElement(SvgSortUp, { className: 'iui-icon iui-sort', "aria-hidden": true })))))),
420
+ showSortButton(column) && (React.createElement("div", { className: 'iui-table-cell-end-icon' }, column.isSortedDesc ||
421
+ (!column.isSorted && column.sortDescFirst) ? (React.createElement(SvgSortDown, { className: 'iui-icon iui-table-sort', "aria-hidden": true })) : (React.createElement(SvgSortUp, { className: 'iui-icon iui-table-sort', "aria-hidden": true })))))),
413
422
  isResizable &&
414
423
  column.isResizerVisible &&
415
424
  (index !== headerGroup.headers.length - 1 ||
416
- columnResizeMode === 'expand') && (React.createElement("div", __assign({}, column.getResizerProps(), { className: 'iui-resizer' }),
417
- React.createElement("div", { className: 'iui-resizer-bar' }))),
425
+ columnResizeMode === 'expand') && (React.createElement("div", __assign({}, column.getResizerProps(), { className: 'iui-table-resizer' }),
426
+ React.createElement("div", { className: 'iui-table-resizer-bar' }))),
418
427
  enableColumnReordering &&
419
- !column.disableReordering && (React.createElement("div", { className: 'iui-reorder-bar' })),
428
+ !column.disableReordering && (React.createElement("div", { className: 'iui-table-reorder-bar' })),
420
429
  column.sticky === 'left' &&
421
- state.sticky.isScrolledToRight && (React.createElement("div", { className: 'iui-cell-shadow-right' })),
430
+ state.sticky.isScrolledToRight && (React.createElement("div", { className: 'iui-table-cell-shadow-right' })),
422
431
  column.sticky === 'right' &&
423
- state.sticky.isScrolledToLeft && (React.createElement("div", { className: 'iui-cell-shadow-left' }))));
432
+ state.sticky.isScrolledToLeft && (React.createElement("div", { className: 'iui-table-cell-shadow-left' }))));
424
433
  })));
425
434
  }))),
426
435
  React.createElement("div", __assign({}, getTableBodyProps({
@@ -433,12 +442,12 @@ export var Table = function (props) {
433
442
  headerRef.current.scrollLeft = bodyRef.current.scrollLeft;
434
443
  updateStickyState();
435
444
  }
436
- }, tabIndex: -1 }),
445
+ }, tabIndex: -1, "aria-multiselectable": (isSelectable && selectionMode === 'multi') || undefined }),
437
446
  data.length !== 0 && (React.createElement(React.Fragment, null, enableVirtualization ? (React.createElement(VirtualScroll, { itemsLength: page.length, itemRenderer: virtualizedItemRenderer, scrollToIndex: scrollToIndex })) : (page.map(function (_, index) { return getPreparedRow(index); })))),
438
447
  isLoading && data.length === 0 && (React.createElement("div", { className: 'iui-table-empty' },
439
448
  React.createElement(ProgressRadial, { indeterminate: true }))),
440
- isLoading && data.length !== 0 && (React.createElement("div", { className: 'iui-row' },
441
- React.createElement("div", { className: 'iui-cell', style: { justifyContent: 'center' } },
449
+ isLoading && data.length !== 0 && (React.createElement("div", { className: 'iui-table-row' },
450
+ React.createElement("div", { className: 'iui-table-cell', style: { justifyContent: 'center' } },
442
451
  React.createElement(ProgressRadial, { indeterminate: true, size: 'small', style: { float: 'none', marginLeft: 0 } })))),
443
452
  !isLoading && data.length === 0 && !areFiltersSet && (React.createElement("div", { className: 'iui-table-empty' },
444
453
  React.createElement("div", null, emptyTableContent))),
@@ -34,8 +34,8 @@ export var TableCell = function (props) {
34
34
  };
35
35
  };
36
36
  var cellElementProps = cell.getCellProps({
37
- className: cx('iui-cell', cell.column.cellClassName, {
38
- 'iui-cell-sticky': !!cell.column.sticky,
37
+ className: cx('iui-table-cell', cell.column.cellClassName, {
38
+ 'iui-table-cell-sticky': !!cell.column.sticky,
39
39
  }),
40
40
  style: __assign(__assign(__assign({}, getCellStyle(cell.column, !!tableInstance.state.isTableResizing)), getSubRowStyle()), getStickyStyle(cell.column, tableInstance.visibleColumns)),
41
41
  });
@@ -49,9 +49,9 @@ export var TableCell = function (props) {
49
49
  children: (React.createElement(React.Fragment, null,
50
50
  cellContent,
51
51
  cell.column.sticky === 'left' &&
52
- tableInstance.state.sticky.isScrolledToRight && (React.createElement("div", { className: 'iui-cell-shadow-right' })),
52
+ tableInstance.state.sticky.isScrolledToRight && (React.createElement("div", { className: 'iui-table-cell-shadow-right' })),
53
53
  cell.column.sticky === 'right' &&
54
- tableInstance.state.sticky.isScrolledToLeft && (React.createElement("div", { className: 'iui-cell-shadow-left' })))),
54
+ tableInstance.state.sticky.isScrolledToLeft && (React.createElement("div", { className: 'iui-table-cell-shadow-left' })))),
55
55
  };
56
56
  return (React.createElement(React.Fragment, null, cell.column.cellRenderer ? (cell.column.cellRenderer(__assign(__assign({}, cellRendererProps), { isDisabled: function () { return isDisabled; } }))) : (React.createElement(DefaultCell, __assign({}, cellRendererProps, { isDisabled: function () { return isDisabled; } })))));
57
57
  };