@telus-uds/components-base 0.0.2-prerelease.7 → 1.0.1

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 (445) hide show
  1. package/.eslintrc.js +9 -0
  2. package/.ultra.cache.json +1 -1
  3. package/CHANGELOG.md +71 -0
  4. package/README.md +4 -2
  5. package/__fixtures__/Accessible.js +33 -0
  6. package/__fixtures__/Accessible.native.js +32 -0
  7. package/__fixtures__/test-utils.js +25 -0
  8. package/__fixtures__/testTheme.js +438 -31
  9. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +1 -1
  10. package/__tests__/Button/ButtonGroup.test.jsx +6 -7
  11. package/__tests__/Checkbox/Checkbox.test.jsx +2 -2
  12. package/__tests__/Checkbox/CheckboxGroup.test.jsx +246 -0
  13. package/__tests__/ExpandCollapse/ExpandCollapse.test.jsx +2 -2
  14. package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +164 -0
  15. package/__tests__/Icon/Icon.test.jsx +3 -3
  16. package/__tests__/IconButton/IconButton.test.jsx +52 -0
  17. package/__tests__/Link/LinkBase.test.jsx +0 -14
  18. package/__tests__/Modal/Modal.test.jsx +47 -0
  19. package/__tests__/Notification/Notification.test.jsx +20 -0
  20. package/__tests__/Pagination/Pagination.test.jsx +2 -2
  21. package/__tests__/Progress/Progress.test.jsx +79 -0
  22. package/__tests__/Radio/Radio.test.jsx +2 -2
  23. package/__tests__/Radio/RadioGroup.test.jsx +220 -0
  24. package/__tests__/RadioCard/RadioCard.test.jsx +87 -0
  25. package/__tests__/RadioCard/RadioCardGroup.test.jsx +246 -0
  26. package/__tests__/Search/Search.test.jsx +73 -0
  27. package/__tests__/Select/Select.test.jsx +3 -2
  28. package/__tests__/Skeleton/Skeleton.test.jsx +1 -1
  29. package/__tests__/StepTracker/StepTracker.test.jsx +94 -0
  30. package/__tests__/Tabs/Tabs.test.jsx +40 -0
  31. package/__tests__/Tags/Tags.test.jsx +5 -6
  32. package/__tests__/TextInput/TextArea.test.jsx +3 -2
  33. package/__tests__/TextInput/TextInputBase.test.jsx +10 -5
  34. package/__tests__/ThemeProvider/ThemeProvider.test.jsx +77 -0
  35. package/__tests__/ThemeProvider/useThemeTokens.test.jsx +9 -5
  36. package/__tests__/ThemeProvider/utils/theme-tokens.test.js +41 -0
  37. package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +3 -2
  38. package/__tests__/utils/children.test.jsx +128 -0
  39. package/__tests__/utils/input.test.js +59 -1
  40. package/__tests__/utils/semantics.test.jsx +43 -0
  41. package/__tests__/utils/useCopy.test.js +14 -3
  42. package/babel.config.js +20 -0
  43. package/jest.config.js +6 -3
  44. package/lib/A11yInfoProvider/index.js +54 -26
  45. package/lib/A11yText/index.js +45 -17
  46. package/lib/ActivityIndicator/Spinner.js +81 -0
  47. package/lib/ActivityIndicator/Spinner.native.js +129 -91
  48. package/lib/ActivityIndicator/index.js +28 -12
  49. package/lib/ActivityIndicator/shared.js +27 -12
  50. package/lib/BaseProvider/index.js +34 -11
  51. package/lib/Box/Box.js +153 -35
  52. package/lib/Box/index.js +13 -2
  53. package/lib/Button/Button.js +38 -16
  54. package/lib/Button/ButtonBase.js +93 -79
  55. package/lib/Button/ButtonGroup.js +112 -73
  56. package/lib/Button/ButtonLink.js +45 -19
  57. package/lib/Button/index.js +31 -4
  58. package/lib/Button/propTypes.js +32 -9
  59. package/lib/Card/Card.js +38 -41
  60. package/lib/Card/CardBase.js +86 -0
  61. package/lib/Card/PressableCardBase.js +141 -0
  62. package/lib/Card/index.js +40 -2
  63. package/lib/Checkbox/Checkbox.js +158 -111
  64. package/lib/Checkbox/CheckboxGroup.js +241 -0
  65. package/lib/Checkbox/CheckboxInput.js +74 -0
  66. package/lib/Checkbox/CheckboxInput.native.js +9 -1
  67. package/lib/Checkbox/index.js +21 -2
  68. package/lib/Divider/Divider.js +59 -28
  69. package/lib/Divider/index.js +13 -2
  70. package/lib/ExpandCollapse/Accordion.js +26 -7
  71. package/lib/ExpandCollapse/Control.js +60 -31
  72. package/lib/ExpandCollapse/ExpandCollapse.js +50 -28
  73. package/lib/ExpandCollapse/Panel.js +83 -44
  74. package/lib/ExpandCollapse/index.js +25 -7
  75. package/lib/Feedback/Feedback.js +77 -43
  76. package/lib/Feedback/index.js +13 -2
  77. package/lib/Fieldset/Fieldset.js +165 -0
  78. package/lib/Fieldset/FieldsetContainer.js +46 -0
  79. package/lib/Fieldset/FieldsetContainer.native.js +38 -0
  80. package/lib/Fieldset/Legend.js +38 -0
  81. package/lib/Fieldset/Legend.native.js +48 -0
  82. package/lib/Fieldset/cssReset.js +21 -0
  83. package/lib/Fieldset/index.js +13 -0
  84. package/lib/FlexGrid/Col/Col.js +73 -41
  85. package/lib/FlexGrid/Col/index.js +13 -2
  86. package/lib/FlexGrid/FlexGrid.js +99 -49
  87. package/lib/FlexGrid/Row/Row.js +58 -30
  88. package/lib/FlexGrid/Row/index.js +13 -2
  89. package/lib/FlexGrid/helpers/index.js +9 -1
  90. package/lib/FlexGrid/index.js +13 -2
  91. package/lib/FlexGrid/providers/GutterContext.js +15 -3
  92. package/lib/HorizontalScroll/HorizontalScroll.js +200 -0
  93. package/lib/HorizontalScroll/HorizontalScrollButton.js +127 -0
  94. package/lib/HorizontalScroll/ScrollViewEnd.js +66 -0
  95. package/lib/HorizontalScroll/ScrollViewEnd.native.js +41 -0
  96. package/lib/HorizontalScroll/dictionary.js +18 -0
  97. package/lib/HorizontalScroll/index.js +35 -0
  98. package/lib/HorizontalScroll/itemPositions.js +128 -0
  99. package/lib/Icon/Icon.js +57 -48
  100. package/lib/Icon/IconText.js +54 -25
  101. package/lib/Icon/index.js +31 -4
  102. package/lib/IconButton/IconButton.js +140 -0
  103. package/lib/IconButton/index.js +13 -0
  104. package/lib/InputLabel/InputLabel.js +102 -40
  105. package/lib/InputLabel/LabelContent.js +41 -0
  106. package/lib/InputLabel/LabelContent.native.js +32 -6
  107. package/lib/InputLabel/index.js +13 -2
  108. package/lib/InputSupports/InputSupports.js +71 -52
  109. package/lib/InputSupports/index.js +13 -2
  110. package/lib/InputSupports/propTypes.js +19 -8
  111. package/lib/InputSupports/useInputSupports.js +41 -0
  112. package/lib/Link/ChevronLink.js +44 -20
  113. package/lib/Link/InlinePressable.js +56 -0
  114. package/lib/Link/InlinePressable.native.js +39 -15
  115. package/lib/Link/Link.js +36 -13
  116. package/lib/Link/LinkBase.js +98 -61
  117. package/lib/Link/TextButton.js +41 -17
  118. package/lib/Link/index.js +39 -5
  119. package/lib/List/List.js +55 -26
  120. package/lib/List/ListItem.js +79 -41
  121. package/lib/List/index.js +13 -2
  122. package/lib/Modal/Modal.js +231 -0
  123. package/lib/Modal/dictionary.js +16 -0
  124. package/lib/Modal/index.js +13 -0
  125. package/lib/Notification/Notification.js +216 -0
  126. package/lib/Notification/dictionary.js +15 -0
  127. package/lib/Notification/index.js +13 -0
  128. package/lib/Pagination/PageButton.js +61 -28
  129. package/lib/Pagination/Pagination.js +78 -43
  130. package/lib/Pagination/SideButton.js +73 -42
  131. package/lib/Pagination/dictionary.js +9 -2
  132. package/lib/Pagination/index.js +13 -2
  133. package/lib/Pagination/usePagination.js +12 -2
  134. package/lib/Progress/Progress.js +104 -0
  135. package/lib/Progress/ProgressBar.js +157 -0
  136. package/lib/Progress/ProgressBarBackground.js +61 -0
  137. package/lib/Progress/index.js +16 -0
  138. package/lib/Radio/Radio.js +116 -114
  139. package/lib/Radio/RadioButton.js +152 -0
  140. package/lib/Radio/RadioGroup.js +244 -0
  141. package/lib/Radio/RadioInput.js +76 -0
  142. package/lib/Radio/RadioInput.native.js +9 -1
  143. package/lib/Radio/index.js +21 -2
  144. package/lib/RadioCard/RadioCard.js +244 -0
  145. package/lib/RadioCard/RadioCardGroup.js +252 -0
  146. package/lib/RadioCard/index.js +21 -0
  147. package/lib/Search/Search.js +254 -0
  148. package/lib/Search/dictionary.js +19 -0
  149. package/lib/Search/index.js +13 -0
  150. package/lib/Select/Group.js +33 -0
  151. package/lib/Select/Group.native.js +16 -5
  152. package/lib/Select/Item.js +29 -0
  153. package/lib/Select/Item.native.js +14 -4
  154. package/lib/Select/Picker.js +84 -0
  155. package/lib/Select/Picker.native.js +73 -30
  156. package/lib/Select/Select.js +155 -85
  157. package/lib/Select/index.js +19 -6
  158. package/lib/SideNav/Item.js +63 -37
  159. package/lib/SideNav/ItemContent.js +41 -15
  160. package/lib/SideNav/ItemsGroup.js +55 -31
  161. package/lib/SideNav/SideNav.js +100 -73
  162. package/lib/SideNav/index.js +15 -1
  163. package/lib/Skeleton/Skeleton.js +64 -46
  164. package/lib/Skeleton/index.js +13 -2
  165. package/lib/Skeleton/skeleton.constant.js +12 -0
  166. package/lib/Skeleton/skeletonWebAnimation.js +27 -0
  167. package/lib/Skeleton/useSkeletonNativeAnimation.js +37 -0
  168. package/lib/Spacer/Spacer.js +49 -18
  169. package/lib/Spacer/index.js +13 -2
  170. package/lib/StackView/StackView.js +72 -31
  171. package/lib/StackView/StackWrap.js +43 -13
  172. package/lib/StackView/StackWrap.native.js +13 -2
  173. package/lib/StackView/StackWrapBox.js +77 -29
  174. package/lib/StackView/StackWrapGap.js +56 -26
  175. package/lib/StackView/common.js +23 -6
  176. package/lib/StackView/getStackedContent.js +47 -17
  177. package/lib/StackView/index.js +29 -5
  178. package/lib/StepTracker/Step.js +245 -0
  179. package/lib/StepTracker/StepTracker.js +202 -0
  180. package/lib/StepTracker/dictionary.js +17 -0
  181. package/lib/StepTracker/index.js +13 -0
  182. package/lib/Tabs/Tabs.js +124 -0
  183. package/lib/Tabs/TabsItem.js +238 -0
  184. package/lib/Tabs/index.js +13 -0
  185. package/lib/Tags/Tags.js +148 -99
  186. package/lib/Tags/index.js +13 -2
  187. package/lib/TextInput/TextArea.js +57 -28
  188. package/lib/TextInput/TextInput.js +50 -23
  189. package/lib/TextInput/TextInputBase.js +90 -63
  190. package/lib/TextInput/index.js +23 -3
  191. package/lib/TextInput/propTypes.js +18 -7
  192. package/lib/ThemeProvider/ThemeProvider.js +46 -18
  193. package/lib/ThemeProvider/index.js +61 -6
  194. package/lib/ThemeProvider/useSetTheme.js +19 -5
  195. package/lib/ThemeProvider/useTheme.js +13 -4
  196. package/lib/ThemeProvider/useThemeTokens.js +32 -16
  197. package/lib/ThemeProvider/utils/index.js +31 -2
  198. package/lib/ThemeProvider/utils/styles.js +50 -14
  199. package/lib/ThemeProvider/utils/theme-tokens.js +121 -12
  200. package/lib/ToggleSwitch/ToggleSwitch.js +85 -56
  201. package/lib/ToggleSwitch/index.js +13 -2
  202. package/lib/Tooltip/{Backdrop.web.js → Backdrop.js} +20 -8
  203. package/lib/Tooltip/Backdrop.native.js +39 -15
  204. package/lib/Tooltip/Tooltip.js +117 -74
  205. package/lib/Tooltip/dictionary.js +9 -2
  206. package/lib/Tooltip/getTooltipPosition.js +9 -1
  207. package/lib/Tooltip/index.js +13 -2
  208. package/lib/TooltipButton/TooltipButton.js +57 -38
  209. package/lib/TooltipButton/index.js +13 -2
  210. package/lib/Typography/Typography.js +87 -41
  211. package/lib/Typography/index.js +13 -2
  212. package/lib/ViewportProvider/ViewportProvider.js +34 -13
  213. package/lib/ViewportProvider/index.js +28 -3
  214. package/lib/ViewportProvider/useViewport.js +15 -3
  215. package/lib/ViewportProvider/useViewportListener.js +24 -10
  216. package/lib/index.js +539 -33
  217. package/lib/utils/a11y/index.js +31 -1
  218. package/lib/utils/a11y/semantics.js +173 -0
  219. package/lib/utils/a11y/textSize.js +23 -7
  220. package/lib/utils/animation/index.js +15 -2
  221. package/lib/utils/animation/useVerticalExpandAnimation.js +27 -10
  222. package/lib/utils/children.js +134 -0
  223. package/lib/utils/index.js +163 -10
  224. package/lib/utils/info/index.js +18 -6
  225. package/lib/utils/info/platform/index.js +19 -7
  226. package/lib/utils/info/platform/platform.android.js +8 -1
  227. package/lib/utils/info/platform/platform.ios.js +8 -1
  228. package/lib/utils/info/platform/platform.js +8 -0
  229. package/lib/utils/info/platform/platform.native.js +8 -1
  230. package/lib/utils/info/versions.js +15 -4
  231. package/lib/utils/input.js +53 -25
  232. package/lib/utils/pressability.js +38 -10
  233. package/lib/utils/propTypes.js +287 -141
  234. package/lib/utils/useCopy.js +40 -5
  235. package/lib/utils/useHash.js +52 -0
  236. package/lib/utils/useHash.native.js +15 -0
  237. package/lib/utils/useResponsiveProp.js +21 -9
  238. package/lib/utils/useSpacingScale.js +19 -9
  239. package/lib/utils/useUniqueId.js +12 -3
  240. package/package.json +14 -9
  241. package/release-context.json +4 -4
  242. package/src/A11yText/index.jsx +6 -4
  243. package/src/ActivityIndicator/{Spinner.web.jsx → Spinner.jsx} +5 -3
  244. package/src/ActivityIndicator/Spinner.native.jsx +5 -3
  245. package/src/Box/Box.jsx +132 -39
  246. package/src/Button/Button.jsx +10 -6
  247. package/src/Button/ButtonBase.jsx +99 -99
  248. package/src/Button/ButtonGroup.jsx +81 -69
  249. package/src/Button/ButtonLink.jsx +21 -15
  250. package/src/Button/propTypes.js +12 -2
  251. package/src/Card/Card.jsx +5 -31
  252. package/src/Card/CardBase.jsx +59 -0
  253. package/src/Card/PressableCardBase.jsx +119 -0
  254. package/src/Card/index.js +3 -0
  255. package/src/Checkbox/Checkbox.jsx +121 -112
  256. package/src/Checkbox/CheckboxGroup.jsx +206 -0
  257. package/src/Checkbox/{CheckboxInput.web.jsx → CheckboxInput.jsx} +0 -0
  258. package/src/Checkbox/index.js +2 -0
  259. package/src/Divider/Divider.jsx +7 -4
  260. package/src/ExpandCollapse/Accordion.jsx +3 -2
  261. package/src/ExpandCollapse/Control.jsx +40 -43
  262. package/src/ExpandCollapse/ExpandCollapse.jsx +26 -23
  263. package/src/ExpandCollapse/Panel.jsx +69 -63
  264. package/src/Feedback/Feedback.jsx +36 -33
  265. package/src/Fieldset/Fieldset.jsx +136 -0
  266. package/src/Fieldset/FieldsetContainer.jsx +31 -0
  267. package/src/Fieldset/FieldsetContainer.native.jsx +19 -0
  268. package/src/Fieldset/Legend.jsx +21 -0
  269. package/src/Fieldset/Legend.native.jsx +27 -0
  270. package/src/Fieldset/cssReset.js +14 -0
  271. package/src/Fieldset/index.js +3 -0
  272. package/src/FlexGrid/Col/Col.jsx +139 -132
  273. package/src/FlexGrid/FlexGrid.jsx +79 -51
  274. package/src/FlexGrid/Row/Row.jsx +55 -48
  275. package/src/HorizontalScroll/HorizontalScroll.jsx +168 -0
  276. package/src/HorizontalScroll/HorizontalScrollButton.jsx +105 -0
  277. package/src/HorizontalScroll/ScrollViewEnd.jsx +53 -0
  278. package/src/HorizontalScroll/ScrollViewEnd.native.jsx +24 -0
  279. package/src/HorizontalScroll/dictionary.js +11 -0
  280. package/src/HorizontalScroll/index.js +17 -0
  281. package/src/HorizontalScroll/itemPositions.js +101 -0
  282. package/src/Icon/Icon.jsx +43 -50
  283. package/src/Icon/IconText.jsx +23 -18
  284. package/src/Icon/index.js +2 -2
  285. package/src/IconButton/IconButton.jsx +114 -0
  286. package/src/IconButton/index.js +3 -0
  287. package/src/InputLabel/InputLabel.jsx +57 -35
  288. package/src/InputLabel/LabelContent.jsx +21 -0
  289. package/src/InputLabel/LabelContent.native.jsx +11 -2
  290. package/src/InputSupports/InputSupports.jsx +29 -45
  291. package/src/InputSupports/useInputSupports.js +30 -0
  292. package/src/Link/ChevronLink.jsx +26 -16
  293. package/src/Link/{InlinePressable.web.jsx → InlinePressable.jsx} +5 -3
  294. package/src/Link/InlinePressable.native.jsx +5 -3
  295. package/src/Link/Link.jsx +22 -16
  296. package/src/Link/LinkBase.jsx +76 -65
  297. package/src/Link/TextButton.jsx +30 -23
  298. package/src/List/List.jsx +5 -4
  299. package/src/List/ListItem.jsx +77 -82
  300. package/src/Modal/Modal.jsx +190 -0
  301. package/src/Modal/dictionary.js +9 -0
  302. package/src/Modal/index.js +3 -0
  303. package/src/Notification/Notification.jsx +164 -0
  304. package/src/Notification/dictionary.js +8 -0
  305. package/src/Notification/index.js +3 -0
  306. package/src/Pagination/PageButton.jsx +42 -35
  307. package/src/Pagination/Pagination.jsx +88 -92
  308. package/src/Pagination/SideButton.jsx +44 -41
  309. package/src/Progress/Progress.jsx +78 -0
  310. package/src/Progress/ProgressBar.jsx +123 -0
  311. package/src/Progress/ProgressBarBackground.jsx +36 -0
  312. package/src/Progress/index.js +6 -0
  313. package/src/Radio/Radio.jsx +82 -112
  314. package/src/Radio/RadioButton.jsx +142 -0
  315. package/src/Radio/RadioGroup.jsx +209 -0
  316. package/src/Radio/{RadioInput.web.jsx → RadioInput.jsx} +0 -0
  317. package/src/Radio/index.js +2 -0
  318. package/src/RadioCard/RadioCard.jsx +198 -0
  319. package/src/RadioCard/RadioCardGroup.jsx +218 -0
  320. package/src/RadioCard/index.js +5 -0
  321. package/src/Search/Search.jsx +225 -0
  322. package/src/Search/dictionary.js +12 -0
  323. package/src/Search/index.js +3 -0
  324. package/src/Select/{Group.web.jsx → Group.jsx} +0 -0
  325. package/src/Select/{Item.web.jsx → Item.jsx} +0 -0
  326. package/src/Select/Picker.jsx +74 -0
  327. package/src/Select/Picker.native.jsx +56 -49
  328. package/src/Select/Select.jsx +125 -92
  329. package/src/SideNav/Item.jsx +54 -47
  330. package/src/SideNav/ItemsGroup.jsx +50 -43
  331. package/src/SideNav/SideNav.jsx +68 -60
  332. package/src/Skeleton/Skeleton.jsx +25 -32
  333. package/src/Skeleton/skeleton.constant.js +3 -0
  334. package/src/Skeleton/skeletonWebAnimation.js +13 -0
  335. package/src/Skeleton/useSkeletonNativeAnimation.js +27 -0
  336. package/src/Spacer/Spacer.jsx +11 -4
  337. package/src/StackView/StackView.jsx +54 -23
  338. package/src/StackView/StackWrap.jsx +16 -7
  339. package/src/StackView/StackWrapBox.jsx +63 -28
  340. package/src/StackView/StackWrapGap.jsx +46 -24
  341. package/src/StackView/common.jsx +3 -2
  342. package/src/StackView/getStackedContent.jsx +8 -2
  343. package/src/StepTracker/Step.jsx +202 -0
  344. package/src/StepTracker/StepTracker.jsx +174 -0
  345. package/src/StepTracker/dictionary.js +10 -0
  346. package/src/StepTracker/index.js +3 -0
  347. package/src/Tabs/Tabs.jsx +97 -0
  348. package/src/Tabs/TabsItem.jsx +212 -0
  349. package/src/Tabs/index.js +3 -0
  350. package/src/Tags/Tags.jsx +115 -102
  351. package/src/TextInput/TextArea.jsx +5 -4
  352. package/src/TextInput/TextInput.jsx +5 -4
  353. package/src/TextInput/TextInputBase.jsx +95 -98
  354. package/src/ThemeProvider/ThemeProvider.jsx +11 -7
  355. package/src/ThemeProvider/useSetTheme.js +4 -0
  356. package/src/ThemeProvider/useThemeTokens.js +2 -2
  357. package/src/ThemeProvider/utils/styles.js +18 -5
  358. package/src/ThemeProvider/utils/theme-tokens.js +74 -5
  359. package/src/ToggleSwitch/ToggleSwitch.jsx +50 -52
  360. package/src/Tooltip/{Backdrop.web.jsx → Backdrop.jsx} +0 -0
  361. package/src/Tooltip/Tooltip.jsx +135 -131
  362. package/src/TooltipButton/TooltipButton.jsx +23 -27
  363. package/src/Typography/Typography.jsx +71 -47
  364. package/src/index.js +23 -2
  365. package/src/utils/a11y/index.js +1 -0
  366. package/src/utils/a11y/semantics.js +162 -0
  367. package/src/utils/children.jsx +119 -0
  368. package/src/utils/index.js +3 -0
  369. package/src/utils/info/platform/platform.js +1 -0
  370. package/src/utils/info/versions.js +2 -2
  371. package/src/utils/input.js +36 -25
  372. package/src/utils/pressability.js +4 -0
  373. package/src/utils/propTypes.js +199 -72
  374. package/src/utils/useCopy.js +30 -4
  375. package/src/utils/useHash.js +39 -0
  376. package/src/utils/useHash.native.js +6 -0
  377. package/stories/A11yText/A11yText.stories.jsx +6 -10
  378. package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +1 -1
  379. package/stories/Box/Box.stories.jsx +1 -1
  380. package/stories/Button/Button.stories.jsx +2 -2
  381. package/stories/Button/ButtonGroup.stories.jsx +1 -1
  382. package/stories/Button/ButtonLink.stories.jsx +1 -1
  383. package/stories/Card/Card.stories.jsx +1 -1
  384. package/stories/Checkbox/Checkbox.stories.jsx +24 -1
  385. package/stories/Divider/Divider.stories.jsx +1 -1
  386. package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +2 -2
  387. package/stories/Feedback/Feedback.stories.jsx +1 -1
  388. package/stories/FlexGrid/01 FlexGrid.stories.jsx +1 -1
  389. package/stories/FlexGrid/02 Row.stories.jsx +1 -1
  390. package/stories/FlexGrid/03 Col.stories.jsx +1 -1
  391. package/stories/Icon/Icon.stories.jsx +27 -7
  392. package/stories/IconButton/IconButton.stories.jsx +50 -0
  393. package/stories/InputLabel/InputLabel.stories.jsx +1 -1
  394. package/stories/Link/ChevronLink.stories.jsx +1 -1
  395. package/stories/Link/Link.stories.jsx +17 -21
  396. package/stories/Link/TextButton.stories.jsx +1 -1
  397. package/stories/List/List.stories.jsx +1 -1
  398. package/stories/Modal/Modal.stories.jsx +29 -0
  399. package/stories/Notification/Notification.stories.jsx +82 -0
  400. package/stories/Pagination/Pagination.stories.jsx +1 -1
  401. package/stories/Progress/Progress.stories.jsx +93 -0
  402. package/stories/Radio/Radio.stories.jsx +23 -36
  403. package/stories/RadioCard/RadioCard.stories.jsx +98 -0
  404. package/stories/Search/Search.stories.jsx +16 -0
  405. package/stories/Select/Select.stories.jsx +1 -1
  406. package/stories/SideNav/SideNav.stories.jsx +1 -1
  407. package/stories/SideNav/SideNavItem.stories.jsx +1 -1
  408. package/stories/SideNav/SideNavItemsGroup.stories.jsx +1 -1
  409. package/stories/Skeleton/Skeleton.stories.jsx +2 -2
  410. package/stories/Spacer/Spacer.stories.jsx +1 -1
  411. package/stories/StackView/StackView.stories.jsx +1 -1
  412. package/stories/StackView/StackWrap.stories.jsx +1 -1
  413. package/stories/StepTracker/StepTracker.stories.jsx +71 -0
  414. package/stories/Tabs/Tabs.stories.jsx +97 -0
  415. package/stories/Tags/Tags.stories.jsx +1 -1
  416. package/stories/TextInput/TextArea.stories.jsx +1 -1
  417. package/stories/TextInput/TextInput.stories.jsx +1 -1
  418. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +1 -1
  419. package/stories/Tooltip/Tooltip.stories.jsx +1 -1
  420. package/stories/TooltipButton/TooltipButton.stories.jsx +1 -1
  421. package/stories/Typography/Typography.stories.jsx +1 -1
  422. package/stories/{platform-supports.web.jsx → platform-supports.jsx} +1 -1
  423. package/stories/supports.jsx +37 -3
  424. package/__fixtures__/accessible.icon.svg +0 -6
  425. package/babel.config.json +0 -8
  426. package/docs/Contributing.stories.mdx +0 -9
  427. package/docs/Fonts.stories.mdx +0 -104
  428. package/docs/Icons.stories.mdx +0 -144
  429. package/docs/Introduction.stories.mdx +0 -9
  430. package/lib/ActivityIndicator/Spinner.web.js +0 -55
  431. package/lib/Checkbox/CheckboxInput.web.js +0 -57
  432. package/lib/InputLabel/LabelContent.web.js +0 -17
  433. package/lib/Link/InlinePressable.web.js +0 -32
  434. package/lib/Radio/RadioInput.web.js +0 -59
  435. package/lib/Select/Group.web.js +0 -18
  436. package/lib/Select/Item.web.js +0 -15
  437. package/lib/Select/Picker.web.js +0 -63
  438. package/lib/config/svgr-icons-web.js +0 -9
  439. package/lib/config/svgr-icons.js +0 -52
  440. package/lib/utils/info/platform/platform.web.js +0 -1
  441. package/src/InputLabel/LabelContent.web.jsx +0 -13
  442. package/src/Select/Picker.web.jsx +0 -67
  443. package/src/config/svgr-icons-web.js +0 -11
  444. package/src/config/svgr-icons.js +0 -46
  445. package/src/utils/info/platform/platform.web.js +0 -1
@@ -1,9 +1,29 @@
1
- import React from 'react';
2
- import { Pressable } from 'react-native';
3
- import PropTypes from 'prop-types';
4
- import { variantProp, getTokensPropType, a11yProps, hrefAttrsProp, linkProps } from '../utils';
5
- import { useThemeTokensCallback, verticalAlignRow } from '../ThemeProvider';
6
- import ItemContent from './ItemContent';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _Pressable = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Pressable"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _utils = require("../utils");
15
+
16
+ var _ThemeProvider = require("../ThemeProvider");
17
+
18
+ var _ItemContent = _interopRequireDefault(require("./ItemContent"));
19
+
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
7
27
 
8
28
  function selectItemStyles({
9
29
  backgroundColor,
@@ -27,7 +47,7 @@ function selectItemStyles({
27
47
  paddingTop,
28
48
  paddingBottom,
29
49
  justifyContent,
30
- ...verticalAlignRow(verticalAlign)
50
+ ...(0, _ThemeProvider.verticalAlignRow)(verticalAlign)
31
51
  };
32
52
  }
33
53
  /**
@@ -37,7 +57,7 @@ function selectItemStyles({
37
57
  */
38
58
 
39
59
 
40
- const Item = ({
60
+ const Item = /*#__PURE__*/(0, _react.forwardRef)(({
41
61
  children,
42
62
  itemId,
43
63
  groupId,
@@ -50,21 +70,23 @@ const Item = ({
50
70
  accessibilityRole = 'link',
51
71
  testID,
52
72
  ...props
53
- }) => {
73
+ }, ref) => {
54
74
  const handlePress = () => onPress(itemId, groupId);
55
75
 
56
76
  const {
57
77
  hrefAttrs,
58
78
  rest
59
- } = hrefAttrsProp.bundle(props);
60
- const linkPropSet = linkProps.select({
79
+ } = _utils.hrefAttrsProp.bundle(props);
80
+
81
+ const linkPropSet = _utils.linkProps.select({
61
82
  accessibilityRole,
62
83
  href,
63
84
  onPress: handlePress,
64
- ...hrefAttrsProp.spread(hrefAttrs),
85
+ hrefAttrs,
65
86
  ...rest
66
87
  });
67
- const getTokens = useThemeTokensCallback('SideNavItem', tokens, variant);
88
+
89
+ const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('SideNavItem', tokens, variant);
68
90
 
69
91
  const getAppearanceState = ({
70
92
  hovered
@@ -76,60 +98,64 @@ const Item = ({
76
98
 
77
99
  const getPressableStyle = pressableState => selectItemStyles(getTokens(getAppearanceState(pressableState)));
78
100
 
79
- return /*#__PURE__*/React.createElement(Pressable, Object.assign({
80
- style: getPressableStyle
81
- }, linkPropSet, {
101
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
102
+ ref: ref,
103
+ style: getPressableStyle,
104
+ ...linkPropSet,
82
105
  accessibilityState: {
83
106
  selected: isActive
84
107
  },
85
- testID: testID
86
- }), pressableState => {
87
- const themeTokens = getTokens(getAppearanceState(pressableState));
88
- return /*#__PURE__*/React.createElement(ItemContent, {
89
- tokens: themeTokens
90
- }, children);
108
+ testID: testID,
109
+ children: pressableState => {
110
+ const themeTokens = getTokens(getAppearanceState(pressableState));
111
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ItemContent.default, {
112
+ tokens: themeTokens,
113
+ children: children
114
+ });
115
+ }
91
116
  });
92
- };
93
-
117
+ });
118
+ Item.displayName = 'Item';
94
119
  Item.propTypes = {
95
120
  /**
96
121
  * Text content of the `Item`.
97
122
  */
98
- children: PropTypes.node.isRequired,
123
+ children: _propTypes.default.node.isRequired,
99
124
 
100
125
  /**
101
126
  * @ignore
102
127
  * Set internally in `SideNav` render function - used to keep track of active item.
103
128
  */
104
- itemId: PropTypes.string,
129
+ itemId: _propTypes.default.string,
105
130
 
106
131
  /**
107
132
  * @ignore
108
133
  * Set internally in `SideNav` render function - used to keep track of expanded items groups.
109
134
  */
110
- groupId: PropTypes.string,
111
- onPress: PropTypes.func,
112
- href: PropTypes.string,
135
+ groupId: _propTypes.default.string,
136
+ onPress: _propTypes.default.func,
137
+ href: _propTypes.default.string,
113
138
 
114
139
  /**
115
140
  * On Web if href is passed, React Native Web maps this object's props to
116
- * `rel`, `target` and (>= RNW 0.15.0) `download` attrs.
141
+ * `rel`, `target` and `download` attrs.
117
142
  */
118
- hrefAttrs: PropTypes.shape(hrefAttrsProp.types),
143
+ hrefAttrs: _propTypes.default.shape(_utils.hrefAttrsProp.types),
119
144
 
120
145
  /**
121
146
  * @ignore
122
147
  * Set internally in `SideNav` render function.
123
148
  */
124
- isActive: PropTypes.bool,
149
+ isActive: _propTypes.default.bool,
125
150
 
126
151
  /**
127
152
  * @ignore
128
153
  * Set internally in `SideNav.ItemsGroup` render function. Used to mark expanded `ItemsGroup` parent.
129
154
  */
130
- isExpanded: PropTypes.bool,
131
- tokens: getTokensPropType('SideNavItem'),
132
- variant: variantProp.propType,
133
- ...a11yProps.types
155
+ isExpanded: _propTypes.default.bool,
156
+ tokens: (0, _utils.getTokensPropType)('SideNavItem'),
157
+ variant: _utils.variantProp.propType,
158
+ ..._utils.a11yProps.types
134
159
  };
135
- export default Item;
160
+ var _default = Item;
161
+ exports.default = _default;
@@ -1,9 +1,28 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { View, StyleSheet } from 'react-native';
4
- import Typography from '../Typography';
5
- import { selectTokens, getTokensPropType } from '../utils';
6
- export function selectAccentStyles(tokens) {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.selectAccentStyles = selectAccentStyles;
7
+ exports.default = void 0;
8
+
9
+ var _react = _interopRequireDefault(require("react"));
10
+
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+
13
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
14
+
15
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
16
+
17
+ var _Typography = _interopRequireDefault(require("../Typography"));
18
+
19
+ var _utils = require("../utils");
20
+
21
+ var _jsxRuntime = require("react/jsx-runtime");
22
+
23
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
+
25
+ function selectAccentStyles(tokens) {
7
26
  return {
8
27
  left: tokens.accentOffset,
9
28
  top: tokens.accentPadding,
@@ -17,22 +36,29 @@ export function selectAccentStyles(tokens) {
17
36
  * Content inside an item or control in a SideNav, themed by the SideNavItem theme
18
37
  */
19
38
 
39
+
20
40
  const ItemContent = ({
21
41
  children,
22
42
  tokens
23
- }) => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Typography, {
24
- tokens: selectTokens('Typography', tokens)
25
- }, children), /*#__PURE__*/React.createElement(View, {
26
- style: [staticStyles.absolute, selectAccentStyles(tokens)]
27
- }));
43
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
44
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
45
+ tokens: (0, _utils.selectTokens)('Typography', tokens),
46
+ children: children
47
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
48
+ style: [staticStyles.absolute, selectAccentStyles(tokens)]
49
+ })]
50
+ });
28
51
 
29
52
  ItemContent.propTypes = {
30
- tokens: getTokensPropType('SideNavItem'),
31
- children: PropTypes.node
53
+ tokens: (0, _utils.getTokensPropType)('SideNavItem'),
54
+ children: _propTypes.default.node
32
55
  };
33
- const staticStyles = StyleSheet.create({
56
+
57
+ const staticStyles = _StyleSheet.default.create({
34
58
  absolute: {
35
59
  position: 'absolute'
36
60
  }
37
61
  });
38
- export default ItemContent;
62
+
63
+ var _default = ItemContent;
64
+ exports.default = _default;
@@ -1,9 +1,30 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import ItemContent from './ItemContent';
4
- import ExpandCollapse from '../ExpandCollapse';
5
- import { getTokensPropType, variantProp, componentPropType, selectTokens } from '../utils';
6
- import { useThemeTokensCallback } from '../ThemeProvider';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _ItemContent = _interopRequireDefault(require("./ItemContent"));
13
+
14
+ var _ExpandCollapse = _interopRequireDefault(require("../ExpandCollapse"));
15
+
16
+ var _utils = require("../utils");
17
+
18
+ var _ThemeProvider = require("../ThemeProvider");
19
+
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
7
28
  /**
8
29
  Expandable content areas for use within `SideNav`.
9
30
 
@@ -14,8 +35,7 @@ import { useThemeTokensCallback } from '../ThemeProvider';
14
35
  ## Usage Criteria
15
36
  - Use `SideNav.ItemsGroup` with large pages that have multiple sections
16
37
  */
17
-
18
- const ItemsGroup = ({
38
+ const ItemsGroup = /*#__PURE__*/(0, _react.forwardRef)(({
19
39
  children,
20
40
  label,
21
41
  openGroups,
@@ -25,7 +45,7 @@ const ItemsGroup = ({
25
45
  tokens,
26
46
  itemTokens,
27
47
  onToggle
28
- }) => {
48
+ }, ref) => {
29
49
  // A SideNav control uses the same style and theme as SideNavItem, with a 'parent' variant,
30
50
  // plus control-specific tokens from the SideNavItemsGroup theme (e.g. open/close icon, etc).
31
51
  const getAppearance = appearance => ({ ...variant,
@@ -37,13 +57,13 @@ const ItemsGroup = ({
37
57
  type: 'parent'
38
58
  });
39
59
 
40
- const getGroupTokens = useThemeTokensCallback('SideNavItemsGroup', tokens, variant);
60
+ const getGroupTokens = (0, _ThemeProvider.useThemeTokensCallback)('SideNavItemsGroup', tokens, variant);
41
61
 
42
- const getPanelTokens = appearance => selectTokens('ExpandCollapsePanel', getGroupTokens(getAppearance(appearance)));
62
+ const getPanelTokens = appearance => (0, _utils.selectTokens)('ExpandCollapsePanel', getGroupTokens(getAppearance(appearance)));
43
63
 
44
- const getItemTokens = useThemeTokensCallback('SideNavItem', itemTokens, variant);
64
+ const getItemTokens = (0, _ThemeProvider.useThemeTokensCallback)('SideNavItem', itemTokens, variant);
45
65
 
46
- const getControlTokens = appearance => selectTokens('ExpandCollapseControl', { ...getItemTokens(getItemAppearance(appearance)),
66
+ const getControlTokens = appearance => (0, _utils.selectTokens)('ExpandCollapseControl', { ...getItemTokens(getItemAppearance(appearance)),
47
67
  // main style from SideNavItem
48
68
  ...getGroupTokens(getAppearance(appearance)) // control-specific tokens like icon etc
49
69
 
@@ -51,12 +71,14 @@ const ItemsGroup = ({
51
71
 
52
72
  const controlContent = controlState => {
53
73
  const currentItemTokens = getItemTokens(getItemAppearance(controlState));
54
- return /*#__PURE__*/React.createElement(ItemContent, {
55
- tokens: currentItemTokens
56
- }, label);
74
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ItemContent.default, {
75
+ tokens: currentItemTokens,
76
+ children: label
77
+ });
57
78
  };
58
79
 
59
- return /*#__PURE__*/React.createElement(ExpandCollapse.Panel, {
80
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandCollapse.default.Panel, {
81
+ ref: ref,
60
82
  openIds: openGroups,
61
83
  panelId: groupId,
62
84
  onToggle: onToggle,
@@ -66,46 +88,48 @@ const ItemsGroup = ({
66
88
  accessibilityState: {
67
89
  active: isActive
68
90
  } // ExpandCollapse.Panel handles expanded state
69
-
70
- }, children);
71
- };
72
-
91
+ ,
92
+ children: children
93
+ });
94
+ });
95
+ ItemsGroup.displayName = 'ItemsGroup';
73
96
  ItemsGroup.propTypes = {
74
97
  /**
75
98
  * Specifies the links contained within. It may only contain `SideNav.Item`.
76
99
  */
77
- children: componentPropType('Item'),
100
+ children: (0, _utils.componentPropType)('Item'),
78
101
 
79
102
  /**
80
103
  * Text content of the group's parent `SideNav.Item`.
81
104
  */
82
- label: PropTypes.string.isRequired,
105
+ label: _propTypes.default.string.isRequired,
83
106
 
84
107
  /**
85
108
  * @ignore
86
109
  * Set internally in `SideNav` render function - used to keep track of expanded items groups.
87
110
  */
88
- groupId: PropTypes.string,
111
+ groupId: _propTypes.default.string,
89
112
 
90
113
  /**
91
114
  * @ignore
92
115
  * Set internally in `SideNav` render function. Called when the group is expanded/collapsed.
93
116
  */
94
- onToggle: PropTypes.func,
117
+ onToggle: _propTypes.default.func,
95
118
 
96
119
  /**
97
120
  * @ignore
98
121
  * Set internally in `SideNav` render function. Contains `groupId`s of currently open groups.
99
122
  */
100
- openGroups: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),
123
+ openGroups: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])),
101
124
 
102
125
  /**
103
126
  * @ignore
104
127
  * Set internally in `SideNav` render function. Used to mark group containing the currently active `SideNav.Item`.
105
128
  */
106
- isActive: PropTypes.bool,
107
- variant: variantProp.propType,
108
- tokens: getTokensPropType('SideNavItemsGroup'),
109
- itemTokens: getTokensPropType('SideNavItem')
129
+ isActive: _propTypes.default.bool,
130
+ variant: _utils.variantProp.propType,
131
+ tokens: (0, _utils.getTokensPropType)('SideNavItemsGroup'),
132
+ itemTokens: (0, _utils.getTokensPropType)('SideNavItem')
110
133
  };
111
- export default ItemsGroup;
134
+ var _default = ItemsGroup;
135
+ exports.default = _default;
@@ -1,10 +1,31 @@
1
- import React, { useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import ExpandCollapse from '../ExpandCollapse';
4
- import Item from './Item';
5
- import ItemsGroup from './ItemsGroup';
6
- import { useThemeTokens } from '../ThemeProvider';
7
- import { componentPropType, getTokensPropType, variantProp } from '../utils';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _ExpandCollapse = _interopRequireDefault(require("../ExpandCollapse"));
13
+
14
+ var _Item = _interopRequireDefault(require("./Item"));
15
+
16
+ var _ItemsGroup = _interopRequireDefault(require("./ItemsGroup"));
17
+
18
+ var _ThemeProvider = require("../ThemeProvider");
19
+
20
+ var _utils = require("../utils");
21
+
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
8
29
 
9
30
  function selectBorderStyles(tokens) {
10
31
  return {
@@ -20,16 +41,16 @@ function selectBorderStyles(tokens) {
20
41
  */
21
42
 
22
43
 
23
- const SideNav = ({
44
+ const SideNav = /*#__PURE__*/(0, _react.forwardRef)(({
24
45
  children,
25
46
  variant = {},
26
47
  tokens,
27
48
  accordion = true,
28
49
  itemTokens,
29
50
  groupTokens
30
- }) => {
31
- const themeTokens = useThemeTokens('SideNav', tokens, variant);
32
- const [active, setActive] = useState({
51
+ }, ref) => {
52
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('SideNav', tokens, variant);
53
+ const [active, setActive] = (0, _react.useState)({
33
54
  groupId: undefined,
34
55
  itemId: undefined
35
56
  });
@@ -45,78 +66,84 @@ const SideNav = ({
45
66
  return active.groupId === groupId && active.itemId === itemId;
46
67
  };
47
68
 
48
- return /*#__PURE__*/React.createElement(ExpandCollapse, {
69
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandCollapse.default, {
70
+ ref: ref,
49
71
  maxOpen: accordion ? 1 : null,
50
- style: selectBorderStyles(themeTokens)
51
- }, ({
52
- openIds,
53
- onToggle
54
- }) => {
55
- const renderItem = (item, index, groupId) => {
56
- const {
57
- itemId = `item-${index}`,
58
- onPress
59
- } = item.props;
60
-
61
- const handlePress = (...args) => {
62
- onItemPress(...args);
63
- if (onPress) onPress(...args);
64
- };
65
-
66
- return /*#__PURE__*/React.createElement(Item, Object.assign({}, item.props, {
67
- key: itemId,
68
- itemId: itemId,
69
- groupId: groupId,
70
- variant: groupId ? { ...variant,
71
- type: 'child'
72
- } : variant,
73
- tokens: itemTokens,
74
- isActive: isItemActive(itemId, groupId),
75
- onPress: handlePress
76
- }));
77
- };
78
-
79
- return React.Children.map(children, (child, index) => {
80
- // iterate over children and identify them internally to later reference expanded groups and active items
81
- if (child.type === Item) return renderItem(child, index);
82
-
83
- if (child.type === ItemsGroup) {
72
+ style: selectBorderStyles(themeTokens),
73
+ children: ({
74
+ openIds,
75
+ onToggle
76
+ }) => {
77
+ const renderItem = (item, index, groupId) => {
84
78
  const {
85
- groupId = `group-${index}`
86
- } = child.props;
87
- const isGroupActive = active.itemId !== undefined && active.groupId === groupId;
88
- return /*#__PURE__*/React.createElement(ItemsGroup, Object.assign({}, child.props, {
89
- key: groupId,
79
+ itemId = `item-${index}`,
80
+ onPress
81
+ } = item.props;
82
+
83
+ const handlePress = (...args) => {
84
+ onItemPress(...args);
85
+ if (onPress) onPress(...args);
86
+ };
87
+
88
+ return /*#__PURE__*/(0, _react.createElement)(_Item.default, { ...item.props,
89
+ key: itemId,
90
+ itemId: itemId,
90
91
  groupId: groupId,
91
- variant: variant,
92
- tokens: groupTokens,
93
- itemTokens: itemTokens,
94
- openGroups: openIds,
95
- isActive: isGroupActive,
96
- onToggle: () => onToggle(groupId)
97
- }), React.Children.map(child.props.children, (item, itemIndex) => renderItem(item, itemIndex, groupId)));
98
- }
99
-
100
- return null;
101
- });
102
- });
103
- };
92
+ variant: groupId ? { ...variant,
93
+ type: 'child'
94
+ } : variant,
95
+ tokens: itemTokens,
96
+ isActive: isItemActive(itemId, groupId),
97
+ onPress: handlePress
98
+ });
99
+ };
100
+
101
+ return _react.default.Children.map(children, (child, index) => {
102
+ // iterate over children and identify them internally to later reference expanded groups and active items
103
+ if (child.type === _Item.default) return renderItem(child, index);
104
+
105
+ if (child.type === _ItemsGroup.default) {
106
+ const {
107
+ groupId = `group-${index}`
108
+ } = child.props;
109
+ const isGroupActive = active.itemId !== undefined && active.groupId === groupId;
104
110
 
111
+ const handleToggle = event => onToggle(groupId, event);
112
+
113
+ return /*#__PURE__*/(0, _react.createElement)(_ItemsGroup.default, { ...child.props,
114
+ key: groupId,
115
+ groupId: groupId,
116
+ variant: variant,
117
+ tokens: groupTokens,
118
+ itemTokens: itemTokens,
119
+ openGroups: openIds,
120
+ isActive: isGroupActive,
121
+ onToggle: handleToggle
122
+ }, _react.default.Children.map(child.props.children, (item, itemIndex) => renderItem(item, itemIndex, groupId)));
123
+ }
124
+
125
+ return null;
126
+ });
127
+ }
128
+ });
129
+ });
130
+ SideNav.displayName = 'SideNav';
105
131
  SideNav.propTypes = {
106
132
  /**
107
133
  * Specifies the structure and links of the `SideNav`. It may only consist of `SideNav.Item` and `SideNav.ItemsGroup`.
108
134
  */
109
- children: componentPropType(['Item', 'ItemsGroup']),
135
+ children: (0, _utils.componentPropType)(['Item', 'ItemsGroup']),
110
136
 
111
137
  /**
112
138
  * Identifies if only one `SideNav.ItemsGroup` should be open at a time.
113
139
  */
114
- accordion: PropTypes.bool,
115
- variant: variantProp.propType,
116
- tokens: getTokensPropType('SideNav'),
117
- itemTokens: getTokensPropType('SideNavItem'),
118
- groupTokens: getTokensPropType('SideNavItemsGroup')
140
+ accordion: _propTypes.default.bool,
141
+ variant: _utils.variantProp.propType,
142
+ tokens: (0, _utils.getTokensPropType)('SideNav'),
143
+ itemTokens: (0, _utils.getTokensPropType)('SideNavItem'),
144
+ groupTokens: (0, _utils.getTokensPropType)('SideNavItemsGroup')
119
145
  };
120
- SideNav.Item = Item;
121
- SideNav.ItemsGroup = ItemsGroup;
122
- export default SideNav;
146
+ SideNav.Item = _Item.default;
147
+ SideNav.ItemsGroup = _ItemsGroup.default;
148
+ var _default = SideNav;
149
+ exports.default = _default;
@@ -1 +1,15 @@
1
- export { default } from './SideNav';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _SideNav.default;
10
+ }
11
+ });
12
+
13
+ var _SideNav = _interopRequireDefault(require("./SideNav"));
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }