@itwin/itwinui-react 3.0.0-dev.6 → 3.0.0-dev.8

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 (283) hide show
  1. package/CHANGELOG.md +101 -0
  2. package/cjs/core/Alert/Alert.d.ts +20 -9
  3. package/cjs/core/Alert/Alert.js +48 -10
  4. package/cjs/core/Avatar/Avatar.d.ts +3 -2
  5. package/cjs/core/Avatar/Avatar.js +21 -19
  6. package/cjs/core/AvatarGroup/AvatarGroup.js +3 -8
  7. package/cjs/core/ButtonGroup/ButtonGroup.js +41 -36
  8. package/cjs/core/Buttons/Button/Button.d.ts +15 -2
  9. package/cjs/core/Buttons/Button/Button.js +23 -9
  10. package/cjs/core/Buttons/DropdownButton/DropdownButton.js +1 -1
  11. package/cjs/core/Buttons/IconButton/IconButton.d.ts +5 -1
  12. package/cjs/core/Buttons/IconButton/IconButton.js +27 -38
  13. package/cjs/core/Buttons/SplitButton/SplitButton.d.ts +9 -0
  14. package/cjs/core/Buttons/SplitButton/SplitButton.js +25 -13
  15. package/cjs/core/Carousel/Carousel.d.ts +6 -4
  16. package/cjs/core/Carousel/Carousel.js +2 -2
  17. package/cjs/core/Carousel/CarouselDot.js +1 -3
  18. package/cjs/core/Carousel/CarouselNavigation.d.ts +6 -4
  19. package/cjs/core/ColorPicker/ColorBuilder.js +2 -1
  20. package/cjs/core/ColorPicker/ColorInputPanel.js +172 -231
  21. package/cjs/core/ComboBox/ComboBox.js +3 -3
  22. package/cjs/core/ComboBox/ComboBoxDropdown.js +4 -9
  23. package/cjs/core/ComboBox/ComboBoxEndIcon.js +3 -22
  24. package/cjs/core/ComboBox/ComboBoxInput.js +1 -1
  25. package/cjs/core/ComboBox/ComboBoxMenu.d.ts +2 -2
  26. package/cjs/core/ComboBox/ComboBoxMenu.js +5 -5
  27. package/cjs/core/ComboBox/ComboBoxMenuItem.d.ts +1 -1
  28. package/cjs/core/ComboBox/ComboBoxMenuItem.js +8 -6
  29. package/cjs/core/ComboBox/helpers.d.ts +1 -2
  30. package/cjs/core/DatePicker/DatePicker.d.ts +30 -8
  31. package/cjs/core/DatePicker/DatePicker.js +47 -6
  32. package/cjs/core/Dialog/Dialog.js +10 -17
  33. package/cjs/core/Dialog/DialogContext.d.ts +3 -4
  34. package/cjs/core/Dialog/DialogMain.js +5 -5
  35. package/cjs/core/ExpandableBlock/ExpandableBlock.d.ts +20 -14
  36. package/cjs/core/ExpandableBlock/ExpandableBlock.js +39 -18
  37. package/cjs/core/FileUpload/FileUpload.d.ts +4 -0
  38. package/cjs/core/FileUpload/FileUpload.js +24 -3
  39. package/cjs/core/Header/HeaderBasicButton.js +3 -16
  40. package/cjs/core/Header/HeaderDropdownButton.js +1 -1
  41. package/cjs/core/Header/HeaderSplitButton.js +3 -4
  42. package/cjs/core/Input/Input.d.ts +4 -0
  43. package/cjs/core/Input/Input.js +2 -1
  44. package/cjs/core/InputGrid/InputGrid.d.ts +25 -0
  45. package/cjs/core/InputGrid/InputGrid.js +39 -0
  46. package/cjs/core/InputGrid/index.d.ts +3 -0
  47. package/cjs/core/InputGrid/index.js +15 -0
  48. package/cjs/core/InputGroup/InputGroup.d.ts +13 -0
  49. package/cjs/core/InputGroup/InputGroup.js +35 -9
  50. package/cjs/core/InputWithDecorations/InputWithDecorations.d.ts +39 -0
  51. package/cjs/core/InputWithDecorations/InputWithDecorations.js +81 -0
  52. package/cjs/core/InputWithDecorations/index.d.ts +3 -0
  53. package/cjs/core/InputWithDecorations/index.js +15 -0
  54. package/cjs/core/Label/Label.d.ts +5 -0
  55. package/cjs/core/Label/Label.js +2 -0
  56. package/cjs/core/LabeledInput/LabeledInput.d.ts +22 -16
  57. package/cjs/core/LabeledInput/LabeledInput.js +52 -29
  58. package/cjs/core/LabeledSelect/LabeledSelect.d.ts +17 -7
  59. package/cjs/core/LabeledSelect/LabeledSelect.js +36 -17
  60. package/cjs/core/LabeledTextarea/LabeledTextarea.d.ts +15 -5
  61. package/cjs/core/LabeledTextarea/LabeledTextarea.js +12 -45
  62. package/cjs/core/Menu/Menu.d.ts +1 -1
  63. package/cjs/core/Menu/Menu.js +1 -1
  64. package/cjs/core/Menu/MenuDivider.d.ts +2 -1
  65. package/cjs/core/Menu/MenuDivider.js +1 -1
  66. package/cjs/core/Menu/MenuItem.d.ts +1 -1
  67. package/cjs/core/Menu/MenuItem.js +1 -0
  68. package/cjs/core/Menu/MenuItemSkeleton.d.ts +1 -1
  69. package/cjs/core/Menu/MenuItemSkeleton.js +0 -1
  70. package/cjs/core/ProgressIndicators/ProgressLinear.d.ts +4 -0
  71. package/cjs/core/ProgressIndicators/ProgressLinear.js +9 -1
  72. package/cjs/core/SearchBox/SearchBox.js +1 -1
  73. package/cjs/core/Select/Select.d.ts +4 -0
  74. package/cjs/core/Select/Select.js +12 -11
  75. package/cjs/core/SideNavigation/SideNavigation.d.ts +16 -0
  76. package/cjs/core/SideNavigation/SideNavigation.js +42 -9
  77. package/cjs/core/Slider/Slider.d.ts +24 -0
  78. package/cjs/core/Slider/Slider.js +58 -10
  79. package/cjs/core/Slider/Thumb.js +3 -2
  80. package/cjs/core/Slider/Track.d.ts +1 -1
  81. package/cjs/core/Slider/Track.js +17 -6
  82. package/cjs/core/StatusMessage/StatusMessage.d.ts +12 -2
  83. package/cjs/core/StatusMessage/StatusMessage.js +23 -9
  84. package/cjs/core/Stepper/Stepper.d.ts +26 -1
  85. package/cjs/core/Stepper/Stepper.js +35 -6
  86. package/cjs/core/Stepper/StepperStep.d.ts +17 -0
  87. package/cjs/core/Stepper/StepperStep.js +33 -8
  88. package/cjs/core/Stepper/WorkflowDiagram.d.ts +11 -1
  89. package/cjs/core/Stepper/WorkflowDiagram.js +23 -10
  90. package/cjs/core/Stepper/WorkflowDiagramStep.d.ts +6 -1
  91. package/cjs/core/Stepper/WorkflowDiagramStep.js +9 -2
  92. package/cjs/core/Table/SubRowExpander.js +3 -1
  93. package/cjs/core/Table/Table.js +0 -1
  94. package/cjs/core/Table/TableCell.js +1 -1
  95. package/cjs/core/Table/TablePaginator.js +1 -3
  96. package/cjs/core/Table/filters/DateRangeFilter/DatePickerInput.d.ts +6 -1
  97. package/cjs/core/Table/filters/DateRangeFilter/DatePickerInput.js +46 -18
  98. package/cjs/core/Table/filters/DateRangeFilter/DateRangeFilter.d.ts +2 -0
  99. package/cjs/core/Table/filters/DateRangeFilter/DateRangeFilter.js +2 -0
  100. package/cjs/core/Tabs/Tab.js +1 -2
  101. package/cjs/core/Textarea/Textarea.d.ts +7 -1
  102. package/cjs/core/Textarea/Textarea.js +6 -11
  103. package/cjs/core/ThemeProvider/ThemeContext.d.ts +1 -1
  104. package/cjs/core/ThemeProvider/ThemeProvider.d.ts +23 -3
  105. package/cjs/core/ThemeProvider/ThemeProvider.js +56 -23
  106. package/cjs/core/Tile/Tile.d.ts +142 -17
  107. package/cjs/core/Tile/Tile.js +107 -16
  108. package/cjs/core/Toast/Toast.d.ts +12 -4
  109. package/cjs/core/Toast/Toast.js +24 -13
  110. package/cjs/core/Tooltip/Tooltip.d.ts +35 -28
  111. package/cjs/core/Tooltip/Tooltip.js +116 -118
  112. package/cjs/core/TransferList/TransferList.js +4 -12
  113. package/cjs/core/Tree/TreeNode.js +1 -1
  114. package/cjs/core/index.d.ts +2 -0
  115. package/cjs/core/index.js +20 -4
  116. package/cjs/core/utils/components/ButtonBase.d.ts +14 -0
  117. package/cjs/core/utils/components/ButtonBase.js +46 -0
  118. package/cjs/core/utils/components/Icon.d.ts +5 -0
  119. package/cjs/core/utils/components/Icon.js +8 -1
  120. package/cjs/core/utils/components/InputContainer.d.ts +0 -1
  121. package/cjs/core/utils/components/InputContainer.js +14 -34
  122. package/cjs/core/utils/components/InputFlexContainer.d.ts +1 -0
  123. package/cjs/core/utils/components/InputFlexContainer.js +3 -1
  124. package/cjs/core/utils/components/Popover.js +5 -3
  125. package/cjs/core/utils/components/Portal.d.ts +27 -0
  126. package/cjs/core/utils/components/Portal.js +43 -0
  127. package/cjs/core/utils/components/VirtualScroll.js +4 -4
  128. package/cjs/core/utils/components/index.d.ts +2 -0
  129. package/cjs/core/utils/components/index.js +2 -0
  130. package/cjs/core/utils/functions/colors.d.ts +1 -1
  131. package/cjs/core/utils/functions/colors.js +1 -13
  132. package/cjs/core/utils/functions/index.d.ts +1 -0
  133. package/cjs/core/utils/functions/index.js +1 -0
  134. package/cjs/core/utils/functions/react.d.ts +8 -0
  135. package/cjs/core/utils/functions/react.js +40 -0
  136. package/cjs/core/utils/hooks/index.d.ts +1 -0
  137. package/cjs/core/utils/hooks/index.js +1 -0
  138. package/cjs/core/utils/hooks/useControlledState.d.ts +13 -0
  139. package/cjs/core/utils/hooks/useControlledState.js +39 -0
  140. package/cjs/core/utils/hooks/useGlobals.d.ts +1 -1
  141. package/cjs/styles.js +11 -35
  142. package/esm/core/Alert/Alert.d.ts +20 -9
  143. package/esm/core/Alert/Alert.js +49 -10
  144. package/esm/core/Avatar/Avatar.d.ts +3 -2
  145. package/esm/core/Avatar/Avatar.js +21 -17
  146. package/esm/core/AvatarGroup/AvatarGroup.js +3 -8
  147. package/esm/core/ButtonGroup/ButtonGroup.js +41 -36
  148. package/esm/core/Buttons/Button/Button.d.ts +15 -2
  149. package/esm/core/Buttons/Button/Button.js +18 -10
  150. package/esm/core/Buttons/DropdownButton/DropdownButton.js +1 -1
  151. package/esm/core/Buttons/IconButton/IconButton.d.ts +5 -1
  152. package/esm/core/Buttons/IconButton/IconButton.js +25 -37
  153. package/esm/core/Buttons/SplitButton/SplitButton.d.ts +9 -0
  154. package/esm/core/Buttons/SplitButton/SplitButton.js +31 -14
  155. package/esm/core/Carousel/Carousel.d.ts +6 -4
  156. package/esm/core/Carousel/Carousel.js +8 -3
  157. package/esm/core/Carousel/CarouselDot.js +2 -4
  158. package/esm/core/Carousel/CarouselNavigation.d.ts +6 -4
  159. package/esm/core/ColorPicker/ColorBuilder.js +2 -1
  160. package/esm/core/ColorPicker/ColorInputPanel.js +173 -232
  161. package/esm/core/ComboBox/ComboBox.js +3 -3
  162. package/esm/core/ComboBox/ComboBoxDropdown.js +4 -9
  163. package/esm/core/ComboBox/ComboBoxEndIcon.js +4 -25
  164. package/esm/core/ComboBox/ComboBoxInput.js +1 -1
  165. package/esm/core/ComboBox/ComboBoxMenu.d.ts +2 -2
  166. package/esm/core/ComboBox/ComboBoxMenu.js +5 -5
  167. package/esm/core/ComboBox/ComboBoxMenuItem.d.ts +1 -1
  168. package/esm/core/ComboBox/ComboBoxMenuItem.js +9 -7
  169. package/esm/core/ComboBox/helpers.d.ts +1 -2
  170. package/esm/core/DatePicker/DatePicker.d.ts +30 -8
  171. package/esm/core/DatePicker/DatePicker.js +33 -6
  172. package/esm/core/Dialog/Dialog.js +11 -23
  173. package/esm/core/Dialog/DialogContext.d.ts +3 -4
  174. package/esm/core/Dialog/DialogMain.js +5 -5
  175. package/esm/core/ExpandableBlock/ExpandableBlock.d.ts +20 -14
  176. package/esm/core/ExpandableBlock/ExpandableBlock.js +41 -20
  177. package/esm/core/FileUpload/FileUpload.d.ts +4 -0
  178. package/esm/core/FileUpload/FileUpload.js +26 -3
  179. package/esm/core/Header/HeaderBasicButton.js +4 -17
  180. package/esm/core/Header/HeaderDropdownButton.js +1 -1
  181. package/esm/core/Header/HeaderSplitButton.js +9 -5
  182. package/esm/core/Input/Input.d.ts +4 -0
  183. package/esm/core/Input/Input.js +2 -1
  184. package/esm/core/InputGrid/InputGrid.d.ts +25 -0
  185. package/esm/core/InputGrid/InputGrid.js +35 -0
  186. package/esm/core/InputGrid/index.d.ts +3 -0
  187. package/esm/core/InputGrid/index.js +6 -0
  188. package/esm/core/InputGroup/InputGroup.d.ts +13 -0
  189. package/esm/core/InputGroup/InputGroup.js +34 -10
  190. package/esm/core/InputWithDecorations/InputWithDecorations.d.ts +39 -0
  191. package/esm/core/InputWithDecorations/InputWithDecorations.js +80 -0
  192. package/esm/core/InputWithDecorations/index.d.ts +3 -0
  193. package/esm/core/InputWithDecorations/index.js +6 -0
  194. package/esm/core/Label/Label.d.ts +5 -0
  195. package/esm/core/Label/Label.js +2 -0
  196. package/esm/core/LabeledInput/LabeledInput.d.ts +22 -16
  197. package/esm/core/LabeledInput/LabeledInput.js +53 -29
  198. package/esm/core/LabeledSelect/LabeledSelect.d.ts +17 -7
  199. package/esm/core/LabeledSelect/LabeledSelect.js +37 -18
  200. package/esm/core/LabeledTextarea/LabeledTextarea.d.ts +15 -5
  201. package/esm/core/LabeledTextarea/LabeledTextarea.js +14 -45
  202. package/esm/core/Menu/Menu.d.ts +1 -1
  203. package/esm/core/Menu/Menu.js +1 -1
  204. package/esm/core/Menu/MenuDivider.d.ts +2 -1
  205. package/esm/core/Menu/MenuDivider.js +1 -1
  206. package/esm/core/Menu/MenuItem.d.ts +1 -1
  207. package/esm/core/Menu/MenuItem.js +1 -0
  208. package/esm/core/Menu/MenuItemSkeleton.d.ts +1 -1
  209. package/esm/core/Menu/MenuItemSkeleton.js +0 -1
  210. package/esm/core/ProgressIndicators/ProgressLinear.d.ts +4 -0
  211. package/esm/core/ProgressIndicators/ProgressLinear.js +9 -1
  212. package/esm/core/SearchBox/SearchBox.js +1 -1
  213. package/esm/core/Select/Select.d.ts +4 -0
  214. package/esm/core/Select/Select.js +12 -11
  215. package/esm/core/SideNavigation/SideNavigation.d.ts +16 -0
  216. package/esm/core/SideNavigation/SideNavigation.js +33 -9
  217. package/esm/core/Slider/Slider.d.ts +24 -0
  218. package/esm/core/Slider/Slider.js +43 -10
  219. package/esm/core/Slider/Thumb.js +3 -2
  220. package/esm/core/Slider/Track.d.ts +1 -1
  221. package/esm/core/Slider/Track.js +14 -6
  222. package/esm/core/StatusMessage/StatusMessage.d.ts +12 -2
  223. package/esm/core/StatusMessage/StatusMessage.js +23 -16
  224. package/esm/core/Stepper/Stepper.d.ts +26 -1
  225. package/esm/core/Stepper/Stepper.js +32 -6
  226. package/esm/core/Stepper/StepperStep.d.ts +17 -0
  227. package/esm/core/Stepper/StepperStep.js +27 -8
  228. package/esm/core/Stepper/WorkflowDiagram.d.ts +11 -1
  229. package/esm/core/Stepper/WorkflowDiagram.js +10 -7
  230. package/esm/core/Stepper/WorkflowDiagramStep.d.ts +6 -1
  231. package/esm/core/Stepper/WorkflowDiagramStep.js +6 -2
  232. package/esm/core/Table/SubRowExpander.js +3 -1
  233. package/esm/core/Table/Table.js +0 -1
  234. package/esm/core/Table/TableCell.js +1 -1
  235. package/esm/core/Table/TablePaginator.js +2 -3
  236. package/esm/core/Table/filters/DateRangeFilter/DatePickerInput.d.ts +6 -1
  237. package/esm/core/Table/filters/DateRangeFilter/DatePickerInput.js +45 -17
  238. package/esm/core/Table/filters/DateRangeFilter/DateRangeFilter.d.ts +2 -0
  239. package/esm/core/Table/filters/DateRangeFilter/DateRangeFilter.js +2 -0
  240. package/esm/core/Tabs/Tab.js +2 -3
  241. package/esm/core/Textarea/Textarea.d.ts +7 -1
  242. package/esm/core/Textarea/Textarea.js +6 -11
  243. package/esm/core/ThemeProvider/ThemeContext.d.ts +1 -1
  244. package/esm/core/ThemeProvider/ThemeProvider.d.ts +23 -3
  245. package/esm/core/ThemeProvider/ThemeProvider.js +65 -24
  246. package/esm/core/Tile/Tile.d.ts +142 -17
  247. package/esm/core/Tile/Tile.js +107 -16
  248. package/esm/core/Toast/Toast.d.ts +12 -4
  249. package/esm/core/Toast/Toast.js +26 -13
  250. package/esm/core/Tooltip/Tooltip.d.ts +35 -28
  251. package/esm/core/Tooltip/Tooltip.js +119 -116
  252. package/esm/core/TransferList/TransferList.js +4 -9
  253. package/esm/core/Tree/TreeNode.js +1 -1
  254. package/esm/core/index.d.ts +2 -0
  255. package/esm/core/index.js +2 -0
  256. package/esm/core/utils/components/ButtonBase.d.ts +14 -0
  257. package/esm/core/utils/components/ButtonBase.js +42 -0
  258. package/esm/core/utils/components/Icon.d.ts +5 -0
  259. package/esm/core/utils/components/Icon.js +8 -1
  260. package/esm/core/utils/components/InputContainer.d.ts +0 -1
  261. package/esm/core/utils/components/InputContainer.js +14 -30
  262. package/esm/core/utils/components/InputFlexContainer.d.ts +1 -0
  263. package/esm/core/utils/components/InputFlexContainer.js +3 -1
  264. package/esm/core/utils/components/Popover.js +5 -3
  265. package/esm/core/utils/components/Portal.d.ts +27 -0
  266. package/esm/core/utils/components/Portal.js +36 -0
  267. package/esm/core/utils/components/VirtualScroll.js +4 -4
  268. package/esm/core/utils/components/index.d.ts +2 -0
  269. package/esm/core/utils/components/index.js +2 -0
  270. package/esm/core/utils/functions/colors.d.ts +1 -1
  271. package/esm/core/utils/functions/colors.js +1 -13
  272. package/esm/core/utils/functions/index.d.ts +1 -0
  273. package/esm/core/utils/functions/index.js +1 -0
  274. package/esm/core/utils/functions/react.d.ts +8 -0
  275. package/esm/core/utils/functions/react.js +35 -0
  276. package/esm/core/utils/hooks/index.d.ts +1 -0
  277. package/esm/core/utils/hooks/index.js +1 -0
  278. package/esm/core/utils/hooks/useControlledState.d.ts +13 -0
  279. package/esm/core/utils/hooks/useControlledState.js +34 -0
  280. package/esm/core/utils/hooks/useGlobals.d.ts +1 -1
  281. package/esm/styles.js +11 -35
  282. package/package.json +3 -3
  283. package/styles.css +49 -46
@@ -35,6 +35,10 @@ exports.SideNavigation = React.forwardRef((props, forwardedRef) => {
35
35
  onExpanderClick,
36
36
  submenu,
37
37
  isSubmenuOpen = false,
38
+ wrapperProps,
39
+ contentProps,
40
+ topProps,
41
+ bottomProps,
38
42
  ...rest
39
43
  } = props;
40
44
  const [_isExpanded, _setIsExpanded] = React.useState(isExpanded);
@@ -44,6 +48,8 @@ exports.SideNavigation = React.forwardRef((props, forwardedRef) => {
44
48
  const ExpandButton = React.createElement(
45
49
  index_js_2.IconButton,
46
50
  {
51
+ label: 'Toggle icon labels',
52
+ 'aria-expanded': _isExpanded,
47
53
  className: 'iui-sidenav-button iui-expand',
48
54
  onClick: React.useCallback(() => {
49
55
  _setIsExpanded((expanded) => !expanded);
@@ -55,28 +61,48 @@ exports.SideNavigation = React.forwardRef((props, forwardedRef) => {
55
61
  return React.createElement(
56
62
  index_js_1.Box,
57
63
  {
64
+ ...wrapperProps,
58
65
  className: (0, classnames_1.default)(
59
66
  'iui-side-navigation-wrapper',
60
- className,
67
+ wrapperProps?.className,
61
68
  ),
62
69
  ref: forwardedRef,
63
- ...rest,
64
70
  },
65
71
  React.createElement(
66
72
  index_js_1.Box,
67
73
  {
68
- className: (0, classnames_1.default)('iui-side-navigation', {
69
- 'iui-expanded': _isExpanded,
70
- 'iui-collapsed': !_isExpanded,
71
- }),
74
+ as: 'div',
75
+ className: (0, classnames_1.default)(
76
+ 'iui-side-navigation',
77
+ {
78
+ 'iui-expanded': _isExpanded,
79
+ 'iui-collapsed': !_isExpanded,
80
+ },
81
+ className,
82
+ ),
83
+ ...rest,
72
84
  },
73
85
  expanderPlacement === 'top' && ExpandButton,
74
86
  React.createElement(
75
87
  index_js_1.Box,
76
- { className: 'iui-sidenav-content' },
88
+ {
89
+ as: 'div',
90
+ ...contentProps,
91
+ className: (0, classnames_1.default)(
92
+ 'iui-sidenav-content',
93
+ contentProps?.className,
94
+ ),
95
+ },
77
96
  React.createElement(
78
97
  index_js_1.Box,
79
- { className: 'iui-top' },
98
+ {
99
+ as: 'div',
100
+ ...topProps,
101
+ className: (0, classnames_1.default)(
102
+ 'iui-top',
103
+ topProps?.className,
104
+ ),
105
+ },
80
106
  items.map((sidenavButton, index) =>
81
107
  !_isExpanded
82
108
  ? React.createElement(
@@ -93,7 +119,14 @@ exports.SideNavigation = React.forwardRef((props, forwardedRef) => {
93
119
  ),
94
120
  React.createElement(
95
121
  index_js_1.Box,
96
- { className: 'iui-bottom' },
122
+ {
123
+ as: 'div',
124
+ ...bottomProps,
125
+ className: (0, classnames_1.default)(
126
+ 'iui-bottom',
127
+ bottomProps?.className,
128
+ ),
129
+ },
97
130
  secondaryItems?.map((sidenavButton, index) =>
98
131
  !_isExpanded
99
132
  ? React.createElement(
@@ -68,6 +68,30 @@ export type SliderProps = {
68
68
  * Additional props for container `<div>` that hold the slider rail, thumbs, and tracks.
69
69
  */
70
70
  railContainerProps?: React.HTMLAttributes<HTMLDivElement>;
71
+ /**
72
+ * Allows props to be passed for slider-min
73
+ */
74
+ minProps?: React.ComponentProps<'span'>;
75
+ /**
76
+ * Allows props to be passed for slider-max
77
+ */
78
+ maxProps?: React.ComponentProps<'span'>;
79
+ /**
80
+ * Allows props to be passed for slider-rail
81
+ */
82
+ railProps?: React.ComponentProps<'div'>;
83
+ /**
84
+ * Allows props to be passed for slider-track
85
+ */
86
+ trackProps?: React.ComponentProps<'div'>;
87
+ /**
88
+ * Allows props to be passed for slider-tick
89
+ */
90
+ tickProps?: React.ComponentProps<'span'>;
91
+ /**
92
+ * Allows props to be passed for slider-ticks
93
+ */
94
+ ticksProps?: React.ComponentProps<'div'>;
71
95
  /**
72
96
  * Defines the allowed behavior when moving Thumbs when multiple Thumbs are
73
97
  * shown. It controls if a Thumb movement should be limited to only move in
@@ -91,6 +91,12 @@ exports.Slider = React.forwardRef((props, ref) => {
91
91
  thumbProps,
92
92
  className,
93
93
  railContainerProps,
94
+ minProps,
95
+ maxProps,
96
+ railProps,
97
+ trackProps,
98
+ tickProps,
99
+ ticksProps,
94
100
  orientation = 'horizontal',
95
101
  ...rest
96
102
  } = props;
@@ -283,18 +289,33 @@ exports.Slider = React.forwardRef((props, ref) => {
283
289
  if (Array.isArray(tickLabels)) {
284
290
  return React.createElement(
285
291
  index_js_1.Box,
286
- { className: 'iui-slider-ticks' },
292
+ {
293
+ as: 'div',
294
+ ...ticksProps,
295
+ className: (0, classnames_1.default)(
296
+ 'iui-slider-ticks',
297
+ ticksProps?.className,
298
+ ),
299
+ },
287
300
  tickLabels.map((label, index) =>
288
301
  React.createElement(
289
302
  index_js_1.Box,
290
- { as: 'span', key: index, className: 'iui-slider-tick' },
303
+ {
304
+ as: 'span',
305
+ ...tickProps,
306
+ key: index,
307
+ className: (0, classnames_1.default)(
308
+ 'iui-slider-tick',
309
+ tickProps?.className,
310
+ ),
311
+ },
291
312
  label,
292
313
  ),
293
314
  ),
294
315
  );
295
316
  }
296
317
  return tickLabels;
297
- }, [tickLabels]);
318
+ }, [tickLabels, tickProps, ticksProps]);
298
319
  const generateTooltipProps = React.useCallback(
299
320
  (index, val) => {
300
321
  const outProps = tooltipProps ? tooltipProps(index, val, step) : {};
@@ -322,20 +343,39 @@ exports.Slider = React.forwardRef((props, ref) => {
322
343
  minValueLabel &&
323
344
  React.createElement(
324
345
  index_js_1.Box,
325
- { as: 'span', className: 'iui-slider-min' },
346
+ {
347
+ as: 'span',
348
+ ...minProps,
349
+ className: (0, classnames_1.default)(
350
+ 'iui-slider-min',
351
+ minProps?.className,
352
+ ),
353
+ },
326
354
  minValueLabel,
327
355
  ),
328
356
  React.createElement(
329
357
  index_js_1.Box,
330
358
  {
359
+ as: 'div',
331
360
  ref: containerRef,
332
- className: (0, classnames_1.default)('iui-slider-container', {
333
- 'iui-grabbing': undefined !== activeThumbIndex,
334
- }),
335
- onPointerDown: handlePointerDownOnSlider,
336
361
  ...railContainerProps,
362
+ className: (0, classnames_1.default)(
363
+ 'iui-slider-container',
364
+ {
365
+ 'iui-grabbing': undefined !== activeThumbIndex,
366
+ },
367
+ railContainerProps?.className,
368
+ ),
369
+ onPointerDown: handlePointerDownOnSlider,
337
370
  },
338
- React.createElement(index_js_1.Box, { className: 'iui-slider-rail' }),
371
+ React.createElement(index_js_1.Box, {
372
+ as: 'div',
373
+ ...railProps,
374
+ className: (0, classnames_1.default)(
375
+ 'iui-slider-rail',
376
+ railProps?.className,
377
+ ),
378
+ }),
339
379
  currentValues.map((thumbValue, index) => {
340
380
  const [minVal, maxVal] = getAllowableThumbRange(index);
341
381
  const thisThumbProps = thumbProps?.(index);
@@ -363,13 +403,21 @@ exports.Slider = React.forwardRef((props, ref) => {
363
403
  sliderMax: max,
364
404
  values: currentValues,
365
405
  orientation: orientation,
406
+ ...trackProps,
366
407
  }),
367
408
  tickMarkArea,
368
409
  ),
369
410
  maxValueLabel &&
370
411
  React.createElement(
371
412
  index_js_1.Box,
372
- { as: 'span', className: 'iui-slider-max' },
413
+ {
414
+ as: 'span',
415
+ ...maxProps,
416
+ className: (0, classnames_1.default)(
417
+ 'iui-slider-max',
418
+ maxProps?.className,
419
+ ),
420
+ },
373
421
  maxValueLabel,
374
422
  ),
375
423
  );
@@ -92,6 +92,7 @@ const Thumb = (props) => {
92
92
  {
93
93
  placement: 'top',
94
94
  autoUpdateOptions: { animationFrame: true },
95
+ ariaStrategy: 'none',
95
96
  ...tooltipProps,
96
97
  },
97
98
  React.createElement(index_js_2.Box, {
@@ -101,8 +102,8 @@ const Thumb = (props) => {
101
102
  style: {
102
103
  ...style,
103
104
  ...(orientation === 'horizontal'
104
- ? { left: `${lowPercent}%` }
105
- : { bottom: `${lowPercent}%` }),
105
+ ? { insetInlineStart: `${lowPercent}%` }
106
+ : { insetBlockEnd: `${lowPercent}%` }),
106
107
  },
107
108
  className: (0, classnames_1.default)(
108
109
  'iui-slider-thumb',
@@ -6,7 +6,7 @@ export type TrackProps = {
6
6
  sliderMax: number;
7
7
  values: number[];
8
8
  orientation: SliderProps['orientation'];
9
- };
9
+ } & React.HTMLAttributes<HTMLDivElement>;
10
10
  /**
11
11
  * Track displays color segments above Rail. Which, if any, segments that are
12
12
  * colorized is based on `trackDisplayMode`.
@@ -7,6 +7,7 @@ const tslib_1 = require('tslib');
7
7
  * See LICENSE.md in the project root for license terms and full copyright notice.
8
8
  *--------------------------------------------------------------------------------------------*/
9
9
  const React = tslib_1.__importStar(require('react'));
10
+ const classnames_1 = tslib_1.__importDefault(require('classnames'));
10
11
  const index_js_1 = require('../utils/index.js');
11
12
  function shouldDisplaySegment(segmentIndex, mode) {
12
13
  if ('odd-segments' === mode && 0 === (segmentIndex + 1) % 2) {
@@ -41,7 +42,14 @@ function generateSegments(values, min, max) {
41
42
  * colorized is based on `trackDisplayMode`.
42
43
  */
43
44
  const Track = (props) => {
44
- const { trackDisplayMode, sliderMin, sliderMax, values, orientation } = props;
45
+ const {
46
+ className,
47
+ trackDisplayMode,
48
+ sliderMin,
49
+ sliderMax,
50
+ values,
51
+ orientation,
52
+ } = props;
45
53
  const [segments, setSegments] = React.useState(() =>
46
54
  generateSegments(values, sliderMin, sliderMax),
47
55
  );
@@ -67,16 +75,19 @@ const Track = (props) => {
67
75
  { key: index },
68
76
  shouldDisplaySegment(index, trackDisplayMode)
69
77
  ? React.createElement(index_js_1.Box, {
70
- className: 'iui-slider-track',
78
+ className: (0, classnames_1.default)(
79
+ 'iui-slider-track',
80
+ className,
81
+ ),
71
82
  style: {
72
83
  ...(orientation === 'horizontal'
73
84
  ? {
74
- left: `${lowPercent}%`,
75
- right: `${highPercent}%`,
85
+ insetInlineStart: `${lowPercent}%`,
86
+ insetInlineEnd: `${highPercent}%`,
76
87
  }
77
88
  : {
78
- top: `${highPercent}%`,
79
- bottom: `${lowPercent}%`,
89
+ insetBlockStart: `${highPercent}%`,
90
+ insetBlockEnd: `${lowPercent}%`,
80
91
  }),
81
92
  },
82
93
  })
@@ -1,4 +1,6 @@
1
1
  import * as React from 'react';
2
+ import { Icon } from '../utils/index.js';
3
+ import type { PolymorphicForwardRefComponent } from '../utils/index.js';
2
4
  type StatusMessageProps = {
3
5
  /**
4
6
  * Custom icon to be displayed at the beginning.
@@ -13,12 +15,20 @@ type StatusMessageProps = {
13
15
  * Status of the message.
14
16
  */
15
17
  status?: 'positive' | 'warning' | 'negative';
18
+ /**
19
+ * Passes props to icon
20
+ */
21
+ iconProps?: React.ComponentProps<typeof Icon>;
22
+ /**
23
+ * Passes props to content
24
+ */
25
+ contentProps?: React.ComponentPropsWithRef<'div'>;
16
26
  };
17
27
  /**
18
- * Component to display icon and text below the `Combobox` component.
28
+ * Component to display icon and text below the form field.
19
29
  * @example
20
30
  * <StatusMessage>This is the text</StatusMessage>
21
31
  * <StatusMessage startIcon={<SvgStar />}>This is the text</StatusMessage>
22
32
  */
23
- export declare const StatusMessage: ({ startIcon: userStartIcon, children, status, }: StatusMessageProps) => React.JSX.Element;
33
+ export declare const StatusMessage: PolymorphicForwardRefComponent<"div", StatusMessageProps>;
24
34
  export default StatusMessage;
@@ -8,26 +8,40 @@ const tslib_1 = require('tslib');
8
8
  *--------------------------------------------------------------------------------------------*/
9
9
  const React = tslib_1.__importStar(require('react'));
10
10
  const index_js_1 = require('../utils/index.js');
11
+ const classnames_1 = tslib_1.__importDefault(require('classnames'));
11
12
  /**
12
- * Component to display icon and text below the `Combobox` component.
13
+ * Component to display icon and text below the form field.
13
14
  * @example
14
15
  * <StatusMessage>This is the text</StatusMessage>
15
16
  * <StatusMessage startIcon={<SvgStar />}>This is the text</StatusMessage>
16
17
  */
17
- const StatusMessage = ({ startIcon: userStartIcon, children, status }) => {
18
+ exports.StatusMessage = React.forwardRef((props, ref) => {
19
+ const {
20
+ children,
21
+ startIcon: userStartIcon,
22
+ status,
23
+ className,
24
+ iconProps,
25
+ contentProps,
26
+ ...rest
27
+ } = props;
18
28
  const icon = userStartIcon ?? (status && index_js_1.StatusIconMap[status]());
19
29
  return React.createElement(
20
- React.Fragment,
21
- null,
30
+ index_js_1.Box,
31
+ {
32
+ className: (0, classnames_1.default)('iui-status-message', className),
33
+ 'data-iui-status': status,
34
+ ref: ref,
35
+ ...rest,
36
+ },
22
37
  !!icon
23
38
  ? React.createElement(
24
- index_js_1.Box,
25
- { as: 'span', className: 'iui-input-icon', 'aria-hidden': true },
39
+ index_js_1.Icon,
40
+ { 'aria-hidden': true, ...iconProps },
26
41
  icon,
27
42
  )
28
43
  : null,
29
- React.createElement(index_js_1.Box, { className: 'iui-message' }, children),
44
+ React.createElement(index_js_1.Box, { ...contentProps }, children),
30
45
  );
31
- };
32
- exports.StatusMessage = StatusMessage;
46
+ });
33
47
  exports.default = exports.StatusMessage;
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import type { PolymorphicForwardRefComponent } from '../utils/index.js';
2
3
  export type StepperLocalization = {
3
4
  stepsCountLabel: (currentStep: number, totalSteps: number) => string;
@@ -11,7 +12,7 @@ export type StepProperties = {
11
12
  * A tooltip giving detailed description to this step.
12
13
  */
13
14
  description?: string;
14
- };
15
+ } & React.ComponentProps<'li'>;
15
16
  export type StepperProps = {
16
17
  /**
17
18
  * Current step index, 0 - based.
@@ -34,6 +35,30 @@ export type StepperProps = {
34
35
  * Click handler on completed step.
35
36
  */
36
37
  onStepClick?: (clickedIndex: number) => void;
38
+ /**
39
+ * Callback that can provide additional props for `<li>` representing a step.
40
+ */
41
+ stepProps?: (index: number) => React.ComponentProps<'li'>;
42
+ /**
43
+ * Allows props to be passed for track content.
44
+ */
45
+ trackContentProps?: (index: number) => React.ComponentProps<'div'>;
46
+ /**
47
+ * Allows props to be passed for circle.
48
+ */
49
+ circleProps?: (index: number) => React.ComponentProps<'span'>;
50
+ /**
51
+ * Allows props to be passed for name.
52
+ */
53
+ nameProps?: (index: number) => React.ComponentProps<'span'>;
54
+ /**
55
+ * Allows props to be passed for label.
56
+ */
57
+ labelProps?: React.ComponentProps<'div'>;
58
+ /**
59
+ * Allows props to be passed for label count.
60
+ */
61
+ labelCountProps?: React.ComponentProps<'span'>;
37
62
  };
38
63
  export declare const Stepper: PolymorphicForwardRefComponent<"div", StepperProps>;
39
64
  export default Stepper;
@@ -6,6 +6,7 @@ const tslib_1 = require('tslib');
6
6
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
7
7
  * See LICENSE.md in the project root for license terms and full copyright notice.
8
8
  *--------------------------------------------------------------------------------------------*/
9
+ const classnames_1 = tslib_1.__importDefault(require('classnames'));
9
10
  const React = tslib_1.__importStar(require('react'));
10
11
  const index_js_1 = require('../utils/index.js');
11
12
  const StepperStep_js_1 = require('./StepperStep.js');
@@ -20,6 +21,12 @@ exports.Stepper = React.forwardRef((props, ref) => {
20
21
  type = 'default',
21
22
  localization = defaultStepperLocalization,
22
23
  onStepClick,
24
+ stepProps,
25
+ trackContentProps,
26
+ circleProps,
27
+ nameProps,
28
+ labelProps,
29
+ labelCountProps,
23
30
  ...rest
24
31
  } = props;
25
32
  const boundedCurrentStep = Math.min(
@@ -32,8 +39,16 @@ exports.Stepper = React.forwardRef((props, ref) => {
32
39
  React.createElement(
33
40
  'ol',
34
41
  null,
35
- steps.map((s, index) =>
36
- React.createElement(StepperStep_js_1.StepperStep, {
42
+ steps.map((s, index) => {
43
+ const thisStepProps = stepProps?.(index);
44
+ const thisTrackContentProps = trackContentProps?.(index);
45
+ const thisCircleProps = circleProps?.(index);
46
+ const thisNameProps = nameProps?.(index);
47
+ return React.createElement(StepperStep_js_1.StepperStep, {
48
+ stepProps: thisStepProps,
49
+ trackContentProps: thisTrackContentProps,
50
+ circleProps: thisCircleProps,
51
+ nameProps: thisNameProps,
37
52
  key: index,
38
53
  index: index,
39
54
  title: type === 'long' ? '' : s.name,
@@ -42,16 +57,30 @@ exports.Stepper = React.forwardRef((props, ref) => {
42
57
  type: type,
43
58
  onClick: onStepClick,
44
59
  description: s.description,
45
- }),
46
- ),
60
+ });
61
+ }),
47
62
  ),
48
63
  type === 'long' &&
49
64
  React.createElement(
50
65
  index_js_1.Box,
51
- { className: 'iui-stepper-steps-label' },
66
+ {
67
+ as: 'div',
68
+ ...labelProps,
69
+ className: (0, classnames_1.default)(
70
+ 'iui-stepper-steps-label',
71
+ labelProps?.className,
72
+ ),
73
+ },
52
74
  React.createElement(
53
75
  index_js_1.Box,
54
- { as: 'span', className: 'iui-stepper-steps-label-count' },
76
+ {
77
+ as: 'span',
78
+ ...labelCountProps,
79
+ className: (0, classnames_1.default)(
80
+ 'iui-stepper-steps-label-count',
81
+ labelCountProps?.className,
82
+ ),
83
+ },
55
84
  localization.stepsCountLabel(boundedCurrentStep + 1, steps.length),
56
85
  ),
57
86
  steps[boundedCurrentStep].name,
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import type { PolymorphicForwardRefComponent } from '../utils/index.js';
2
3
  export type StepperStepProps = {
3
4
  /**
@@ -28,5 +29,21 @@ export type StepperStepProps = {
28
29
  * A tooltip giving detailed description to this step.
29
30
  */
30
31
  description?: string;
32
+ /**
33
+ * Allows props to be passed for stepper step.
34
+ */
35
+ stepProps?: React.ComponentProps<'li'>;
36
+ /**
37
+ * Allows props to be passed for track content.
38
+ */
39
+ trackContentProps?: React.ComponentProps<'div'>;
40
+ /**
41
+ * Allows props to be passed for stepper-step circle.
42
+ */
43
+ circleProps?: React.ComponentProps<'span'>;
44
+ /**
45
+ * Allows props to be passed for stepper name.
46
+ */
47
+ nameProps?: React.ComponentProps<'span'>;
31
48
  };
32
49
  export declare const StepperStep: PolymorphicForwardRefComponent<"li", StepperStepProps>;
@@ -21,6 +21,10 @@ exports.StepperStep = React.forwardRef((props, forwardedRef) => {
21
21
  description,
22
22
  className,
23
23
  style,
24
+ stepProps,
25
+ trackContentProps,
26
+ circleProps,
27
+ nameProps,
24
28
  ...rest
25
29
  } = props;
26
30
  const isPast = currentStepNumber > index;
@@ -46,17 +50,17 @@ exports.StepperStep = React.forwardRef((props, forwardedRef) => {
46
50
  index_js_2.Box,
47
51
  {
48
52
  as: 'li',
53
+ ...stepProps,
49
54
  className: (0, classnames_1.default)(
50
55
  'iui-stepper-step',
51
- {
52
- 'iui-current': isActive,
53
- 'iui-clickable': isClickable,
54
- },
56
+ { 'iui-current': isActive, 'iui-clickable': isClickable },
55
57
  className,
58
+ stepProps?.className,
56
59
  ),
57
60
  style: {
58
- width: type === 'default' ? `${100 / totalSteps}%` : undefined,
61
+ inlineSize: type === 'default' ? `${100 / totalSteps}%` : undefined,
59
62
  ...style,
63
+ ...stepProps?.style,
60
64
  },
61
65
  onClick: onCompletedClick,
62
66
  onKeyDown: onKeyDown,
@@ -67,17 +71,38 @@ exports.StepperStep = React.forwardRef((props, forwardedRef) => {
67
71
  },
68
72
  React.createElement(
69
73
  index_js_2.Box,
70
- { className: 'iui-stepper-track-content' },
74
+ {
75
+ as: 'div',
76
+ ...trackContentProps,
77
+ className: (0, classnames_1.default)(
78
+ 'iui-stepper-track-content',
79
+ trackContentProps?.className,
80
+ ),
81
+ },
71
82
  React.createElement(
72
83
  index_js_2.Box,
73
- { as: 'span', className: 'iui-stepper-circle' },
84
+ {
85
+ as: 'span',
86
+ ...circleProps,
87
+ className: (0, classnames_1.default)(
88
+ 'iui-stepper-circle',
89
+ circleProps?.className,
90
+ ),
91
+ },
74
92
  index + 1,
75
93
  ),
76
94
  ),
77
95
  type === 'default' &&
78
96
  React.createElement(
79
97
  index_js_2.Box,
80
- { as: 'span', className: 'iui-stepper-step-name' },
98
+ {
99
+ as: 'span',
100
+ ...nameProps,
101
+ className: (0, classnames_1.default)(
102
+ 'iui-stepper-step-name',
103
+ nameProps?.className,
104
+ ),
105
+ },
81
106
  title,
82
107
  ),
83
108
  );
@@ -1,5 +1,15 @@
1
+ import * as React from 'react';
1
2
  import type { PolymorphicForwardRefComponent } from '../utils/index.js';
2
3
  import type { StepperProps } from './Stepper.js';
3
- type WorkflowDiagramProps = Pick<StepperProps, 'steps'>;
4
+ type WorkflowDiagramProps = Pick<StepperProps, 'steps'> & {
5
+ /**
6
+ * Allows props to be passed for diagram.
7
+ */
8
+ contentProps?: (index: number) => React.ComponentProps<'span'>;
9
+ /**
10
+ * Allows props to be passed for diagram wrapper.
11
+ */
12
+ wrapperProps?: React.ComponentProps<'div'>;
13
+ };
4
14
  export declare const WorkflowDiagram: PolymorphicForwardRefComponent<"ol", WorkflowDiagramProps>;
5
15
  export default WorkflowDiagram;