@telus-uds/components-base 1.7.1 → 1.8.2

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 (509) hide show
  1. package/CHANGELOG.md +41 -2
  2. package/component-docs.json +944 -691
  3. package/lib/A11yInfoProvider/index.js +4 -3
  4. package/lib/A11yText/index.js +6 -5
  5. package/lib/ActivityIndicator/Spinner.js +7 -6
  6. package/lib/ActivityIndicator/Spinner.native.js +8 -6
  7. package/lib/ActivityIndicator/index.js +6 -5
  8. package/lib/ActivityIndicator/shared.js +1 -1
  9. package/lib/BaseProvider/index.js +13 -10
  10. package/lib/Box/Box.js +20 -19
  11. package/lib/Button/Button.js +7 -6
  12. package/lib/Button/ButtonBase.js +95 -77
  13. package/lib/Button/ButtonGroup.js +140 -65
  14. package/lib/Button/ButtonLink.js +9 -7
  15. package/lib/Button/index.js +4 -4
  16. package/lib/Button/propTypes.js +1 -1
  17. package/lib/Card/Card.js +8 -7
  18. package/lib/Card/CardBase.js +35 -31
  19. package/lib/Card/PressableCardBase.js +14 -12
  20. package/lib/Checkbox/Checkbox.js +96 -82
  21. package/lib/Checkbox/CheckboxGroup.js +30 -28
  22. package/lib/Checkbox/CheckboxInput.js +12 -10
  23. package/lib/Divider/Divider.js +8 -7
  24. package/lib/ExpandCollapse/Control.js +42 -36
  25. package/lib/ExpandCollapse/ExpandCollapse.js +11 -10
  26. package/lib/ExpandCollapse/Panel.js +29 -24
  27. package/lib/Feedback/Feedback.js +48 -35
  28. package/lib/Fieldset/Fieldset.js +22 -14
  29. package/lib/Fieldset/FieldsetContainer.js +16 -13
  30. package/lib/Fieldset/FieldsetContainer.native.js +11 -8
  31. package/lib/Fieldset/Legend.js +10 -7
  32. package/lib/Fieldset/Legend.native.js +10 -7
  33. package/lib/FlexGrid/Col/Col.js +17 -16
  34. package/lib/FlexGrid/FlexGrid.js +15 -14
  35. package/lib/FlexGrid/Row/Row.js +13 -12
  36. package/lib/HorizontalScroll/HorizontalScroll.js +25 -20
  37. package/lib/HorizontalScroll/HorizontalScrollButton.js +18 -14
  38. package/lib/HorizontalScroll/ScrollViewEnd.js +6 -5
  39. package/lib/HorizontalScroll/ScrollViewEnd.native.js +12 -9
  40. package/lib/HorizontalScroll/itemPositions.js +19 -13
  41. package/lib/Icon/Icon.js +10 -9
  42. package/lib/Icon/IconText.js +8 -7
  43. package/lib/Icon/index.js +5 -5
  44. package/lib/IconButton/IconButton.js +50 -42
  45. package/lib/InputLabel/InputLabel.js +44 -30
  46. package/lib/InputLabel/LabelContent.js +12 -9
  47. package/lib/InputLabel/LabelContent.native.js +9 -6
  48. package/lib/InputSupports/InputSupports.js +17 -9
  49. package/lib/InputSupports/useInputSupports.js +7 -6
  50. package/lib/Link/ChevronLink.js +9 -8
  51. package/lib/Link/InlinePressable.js +13 -10
  52. package/lib/Link/InlinePressable.native.js +20 -16
  53. package/lib/Link/Link.js +10 -9
  54. package/lib/Link/LinkBase.js +96 -78
  55. package/lib/Link/TextButton.js +9 -8
  56. package/lib/List/List.js +9 -7
  57. package/lib/List/ListItem.js +99 -74
  58. package/lib/Modal/Modal.js +72 -59
  59. package/lib/Notification/Notification.js +47 -34
  60. package/lib/Pagination/PageButton.js +11 -10
  61. package/lib/Pagination/Pagination.js +39 -28
  62. package/lib/Pagination/SideButton.js +21 -18
  63. package/lib/Pagination/usePagination.js +5 -4
  64. package/lib/Progress/Progress.js +23 -19
  65. package/lib/Progress/ProgressBar.js +23 -19
  66. package/lib/Progress/ProgressBarBackground.js +4 -3
  67. package/lib/Radio/Radio.js +79 -68
  68. package/lib/Radio/RadioButton.js +63 -53
  69. package/lib/Radio/RadioGroup.js +39 -30
  70. package/lib/Radio/RadioInput.js +12 -10
  71. package/lib/RadioCard/RadioCard.js +15 -14
  72. package/lib/RadioCard/RadioCardGroup.js +34 -25
  73. package/lib/Search/Search.js +52 -32
  74. package/lib/Select/Group.js +5 -4
  75. package/lib/Select/Group.native.js +4 -3
  76. package/lib/Select/Item.js +10 -7
  77. package/lib/Select/Item.native.js +1 -9
  78. package/lib/Select/Picker.js +16 -15
  79. package/lib/Select/Picker.native.js +49 -38
  80. package/lib/Select/Select.js +134 -113
  81. package/lib/SideNav/Item.js +39 -33
  82. package/lib/SideNav/ItemContent.js +15 -12
  83. package/lib/SideNav/ItemsGroup.js +13 -11
  84. package/lib/SideNav/SideNav.js +19 -16
  85. package/lib/Skeleton/Skeleton.js +106 -44
  86. package/lib/Skeleton/skeleton.constant.js +1 -1
  87. package/lib/Spacer/Spacer.js +6 -5
  88. package/lib/StackView/StackView.js +12 -11
  89. package/lib/StackView/StackWrap.js +2 -2
  90. package/lib/StackView/StackWrapBox.js +12 -11
  91. package/lib/StackView/StackWrapGap.js +11 -10
  92. package/lib/StackView/common.js +14 -11
  93. package/lib/StackView/getStackedContent.js +8 -7
  94. package/lib/StackView/index.js +1 -1
  95. package/lib/StepTracker/Step.js +122 -103
  96. package/lib/StepTracker/StepTracker.js +48 -38
  97. package/lib/Tabs/Tabs.js +29 -24
  98. package/lib/Tabs/TabsItem.js +79 -68
  99. package/lib/Tags/Tags.js +67 -61
  100. package/lib/TextInput/TextArea.js +26 -20
  101. package/lib/TextInput/TextInput.js +20 -15
  102. package/lib/TextInput/TextInputBase.js +74 -62
  103. package/lib/TextInput/index.js +4 -4
  104. package/lib/ThemeProvider/ThemeProvider.js +6 -5
  105. package/lib/ThemeProvider/index.js +5 -5
  106. package/lib/ThemeProvider/useSetTheme.js +6 -3
  107. package/lib/ThemeProvider/useThemeTokens.js +7 -2
  108. package/lib/ThemeProvider/utils/styles.js +48 -41
  109. package/lib/ThemeProvider/utils/theme-tokens.js +26 -12
  110. package/lib/ToggleSwitch/ToggleSwitch.js +95 -72
  111. package/lib/ToggleSwitch/ToggleSwitchGroup.js +42 -33
  112. package/lib/Tooltip/Backdrop.js +4 -3
  113. package/lib/Tooltip/Backdrop.native.js +5 -4
  114. package/lib/Tooltip/Tooltip.js +82 -66
  115. package/lib/Tooltip/getTooltipPosition.js +29 -18
  116. package/lib/TooltipButton/TooltipButton.js +28 -21
  117. package/lib/Typography/Typography.js +37 -33
  118. package/lib/ViewportProvider/ViewportProvider.js +4 -3
  119. package/lib/ViewportProvider/useViewportListener.js +6 -3
  120. package/lib/index.js +54 -54
  121. package/lib/utils/a11y/semantics.js +5 -2
  122. package/lib/utils/a11y/textSize.js +8 -6
  123. package/lib/utils/animation/useVerticalExpandAnimation.js +32 -18
  124. package/lib/utils/children.js +2 -1
  125. package/lib/utils/index.js +10 -10
  126. package/lib/utils/input.js +22 -17
  127. package/lib/utils/pressability.js +36 -22
  128. package/lib/utils/props/clickProps.js +2 -1
  129. package/lib/utils/props/getPropSelector.js +6 -3
  130. package/lib/utils/props/handlerProps.js +25 -19
  131. package/lib/utils/props/hrefAttrsProp.js +14 -11
  132. package/lib/utils/props/index.js +12 -12
  133. package/lib/utils/props/inputSupportsProps.js +21 -11
  134. package/lib/utils/props/linkProps.js +7 -6
  135. package/lib/utils/props/pressProps.js +1 -1
  136. package/lib/utils/props/tokens.js +27 -13
  137. package/lib/utils/ssr.js +6 -2
  138. package/lib/utils/useCopy.js +6 -4
  139. package/lib/utils/useHash.js +2 -1
  140. package/lib/utils/useResponsiveProp.js +1 -1
  141. package/lib/utils/useUniqueId.js +2 -1
  142. package/lib/utils/withLinkRouter.js +6 -5
  143. package/package.json +18 -12
  144. package/src/Button/ButtonGroup.jsx +106 -41
  145. package/src/Checkbox/Checkbox.jsx +7 -4
  146. package/src/Checkbox/CheckboxGroup.jsx +3 -3
  147. package/src/ExpandCollapse/Panel.jsx +3 -1
  148. package/src/Fieldset/Fieldset.jsx +6 -0
  149. package/src/InputLabel/InputLabel.jsx +17 -2
  150. package/src/InputSupports/InputSupports.jsx +9 -1
  151. package/src/Notification/Notification.jsx +1 -1
  152. package/src/Pagination/Pagination.jsx +3 -0
  153. package/src/Radio/Radio.jsx +5 -1
  154. package/src/Radio/RadioGroup.jsx +11 -5
  155. package/src/RadioCard/RadioCard.jsx +5 -1
  156. package/src/RadioCard/RadioCardGroup.jsx +6 -0
  157. package/src/Search/Search.jsx +12 -1
  158. package/src/Select/Item.native.jsx +0 -7
  159. package/src/Skeleton/Skeleton.jsx +56 -3
  160. package/src/ToggleSwitch/ToggleSwitch.jsx +6 -0
  161. package/src/ToggleSwitch/ToggleSwitchGroup.jsx +6 -0
  162. package/src/Tooltip/Tooltip.jsx +1 -1
  163. package/src/utils/animation/useVerticalExpandAnimation.js +25 -12
  164. package/src/utils/props/inputSupportsProps.js +6 -1
  165. package/src/utils/props/tokens.js +21 -19
  166. package/.storybook/main.js +0 -4
  167. package/.storybook/preview.js +0 -37
  168. package/.turbo/turbo-build.log +0 -8
  169. package/.turbo/turbo-lint.log +0 -13
  170. package/CHANGELOG.json +0 -250
  171. package/__fixtures__/Accessible.js +0 -35
  172. package/__fixtures__/Accessible.native.js +0 -35
  173. package/__fixtures__/Theme.jsx +0 -13
  174. package/__fixtures__/Viewport.jsx +0 -17
  175. package/__fixtures__/test-utils.js +0 -25
  176. package/__fixtures__/testTheme.js +0 -1830
  177. package/__tests__/A11yText/A11yText.test.jsx +0 -34
  178. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +0 -68
  179. package/__tests__/ActivityIndicator/__snapshots__/ActivityIndicator.test.jsx.snap +0 -287
  180. package/__tests__/Box/Box.test.jsx +0 -111
  181. package/__tests__/Button/Button.test.jsx +0 -86
  182. package/__tests__/Button/ButtonBase.test.jsx +0 -82
  183. package/__tests__/Button/ButtonGroup.test.jsx +0 -347
  184. package/__tests__/Button/ButtonLink.test.jsx +0 -61
  185. package/__tests__/Card/Card.test.jsx +0 -63
  186. package/__tests__/Checkbox/Checkbox.test.jsx +0 -94
  187. package/__tests__/Checkbox/CheckboxGroup.test.jsx +0 -246
  188. package/__tests__/Divider/Divider.test.jsx +0 -91
  189. package/__tests__/ExpandCollapse/ExpandCollapse.test.jsx +0 -109
  190. package/__tests__/Feedback/Feedback.test.jsx +0 -42
  191. package/__tests__/FlexGrid/Col.test.jsx +0 -256
  192. package/__tests__/FlexGrid/FlexGrid.test.jsx +0 -136
  193. package/__tests__/FlexGrid/Row.test.jsx +0 -273
  194. package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +0 -165
  195. package/__tests__/Icon/Icon.test.jsx +0 -61
  196. package/__tests__/IconButton/IconButton.test.jsx +0 -52
  197. package/__tests__/InputSupports/InputSupports.test.jsx +0 -50
  198. package/__tests__/Link/Link.test.jsx +0 -63
  199. package/__tests__/Link/TextButton.test.jsx +0 -35
  200. package/__tests__/List/List.test.jsx +0 -60
  201. package/__tests__/Modal/Modal.test.jsx +0 -47
  202. package/__tests__/Notification/Notification.test.jsx +0 -20
  203. package/__tests__/Pagination/Pagination.test.jsx +0 -160
  204. package/__tests__/Progress/Progress.test.jsx +0 -79
  205. package/__tests__/Radio/Radio.test.jsx +0 -87
  206. package/__tests__/Radio/RadioGroup.test.jsx +0 -220
  207. package/__tests__/RadioCard/RadioCard.test.jsx +0 -87
  208. package/__tests__/RadioCard/RadioCardGroup.test.jsx +0 -246
  209. package/__tests__/Search/Search.test.jsx +0 -73
  210. package/__tests__/Select/Select.test.jsx +0 -94
  211. package/__tests__/SideNav/SideNav.test.jsx +0 -110
  212. package/__tests__/Skeleton/Skeleton.test.jsx +0 -61
  213. package/__tests__/Spacer/Spacer.test.jsx +0 -63
  214. package/__tests__/StackView/StackView.test.jsx +0 -216
  215. package/__tests__/StackView/StackWrap.test.jsx +0 -47
  216. package/__tests__/StackView/getStackedContent.test.jsx +0 -295
  217. package/__tests__/StepTracker/StepTracker.test.jsx +0 -94
  218. package/__tests__/Tabs/Tabs.test.jsx +0 -40
  219. package/__tests__/Tags/Tags.test.jsx +0 -327
  220. package/__tests__/TextInput/TextArea.test.jsx +0 -35
  221. package/__tests__/TextInput/TextInputBase.test.jsx +0 -125
  222. package/__tests__/ThemeProvider/ThemeProvider.test.jsx +0 -77
  223. package/__tests__/ThemeProvider/useThemeTokens.test.jsx +0 -514
  224. package/__tests__/ThemeProvider/utils/theme-tokens.test.js +0 -41
  225. package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +0 -82
  226. package/__tests__/ToggleSwitch/ToggleSwitchGroup.test.jsx +0 -192
  227. package/__tests__/Tooltip/Tooltip.test.jsx +0 -65
  228. package/__tests__/Tooltip/getTooltipPosition.test.js +0 -79
  229. package/__tests__/Typography/typography.test.jsx +0 -90
  230. package/__tests__/utils/children.test.jsx +0 -128
  231. package/__tests__/utils/containUniqueFields.test.js +0 -25
  232. package/__tests__/utils/input.test.js +0 -375
  233. package/__tests__/utils/props.test.js +0 -36
  234. package/__tests__/utils/semantics.test.jsx +0 -34
  235. package/__tests__/utils/useCopy.test.js +0 -42
  236. package/__tests__/utils/useResponsiveProp.test.jsx +0 -202
  237. package/__tests__/utils/useSpacingScale.test.jsx +0 -273
  238. package/__tests__/utils/useUniqueId.test.js +0 -31
  239. package/babel.config.js +0 -35
  240. package/generate-component-docs.js +0 -72
  241. package/jest.config.js +0 -32
  242. package/lib-module/A11yInfoProvider/index.js +0 -62
  243. package/lib-module/A11yText/index.js +0 -55
  244. package/lib-module/ActivityIndicator/Spinner.js +0 -76
  245. package/lib-module/ActivityIndicator/Spinner.native.js +0 -143
  246. package/lib-module/ActivityIndicator/index.js +0 -40
  247. package/lib-module/ActivityIndicator/shared.js +0 -12
  248. package/lib-module/BaseProvider/index.js +0 -26
  249. package/lib-module/Box/Box.js +0 -243
  250. package/lib-module/Box/index.js +0 -2
  251. package/lib-module/Button/Button.js +0 -25
  252. package/lib-module/Button/ButtonBase.js +0 -254
  253. package/lib-module/Button/ButtonGroup.js +0 -173
  254. package/lib-module/Button/ButtonLink.js +0 -39
  255. package/lib-module/Button/index.js +0 -4
  256. package/lib-module/Button/propTypes.js +0 -36
  257. package/lib-module/Card/Card.js +0 -83
  258. package/lib-module/Card/CardBase.js +0 -62
  259. package/lib-module/Card/PressableCardBase.js +0 -113
  260. package/lib-module/Card/index.js +0 -4
  261. package/lib-module/Checkbox/Checkbox.js +0 -332
  262. package/lib-module/Checkbox/CheckboxGroup.js +0 -231
  263. package/lib-module/Checkbox/CheckboxInput.js +0 -58
  264. package/lib-module/Checkbox/CheckboxInput.native.js +0 -6
  265. package/lib-module/Checkbox/index.js +0 -3
  266. package/lib-module/Divider/Divider.js +0 -123
  267. package/lib-module/Divider/index.js +0 -2
  268. package/lib-module/ExpandCollapse/Accordion.js +0 -15
  269. package/lib-module/ExpandCollapse/Control.js +0 -130
  270. package/lib-module/ExpandCollapse/ExpandCollapse.js +0 -94
  271. package/lib-module/ExpandCollapse/Panel.js +0 -158
  272. package/lib-module/ExpandCollapse/index.js +0 -7
  273. package/lib-module/Feedback/Feedback.js +0 -144
  274. package/lib-module/Feedback/index.js +0 -2
  275. package/lib-module/Fieldset/Fieldset.js +0 -145
  276. package/lib-module/Fieldset/FieldsetContainer.js +0 -29
  277. package/lib-module/Fieldset/FieldsetContainer.native.js +0 -20
  278. package/lib-module/Fieldset/Legend.js +0 -21
  279. package/lib-module/Fieldset/Legend.native.js +0 -28
  280. package/lib-module/Fieldset/cssReset.js +0 -14
  281. package/lib-module/Fieldset/index.js +0 -2
  282. package/lib-module/FlexGrid/Col/Col.js +0 -275
  283. package/lib-module/FlexGrid/Col/index.js +0 -2
  284. package/lib-module/FlexGrid/FlexGrid.js +0 -147
  285. package/lib-module/FlexGrid/Row/Row.js +0 -183
  286. package/lib-module/FlexGrid/Row/index.js +0 -2
  287. package/lib-module/FlexGrid/helpers/index.js +0 -18
  288. package/lib-module/FlexGrid/index.js +0 -2
  289. package/lib-module/FlexGrid/providers/GutterContext.js +0 -3
  290. package/lib-module/HorizontalScroll/HorizontalScroll.js +0 -170
  291. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +0 -77
  292. package/lib-module/HorizontalScroll/ScrollViewEnd.js +0 -47
  293. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -24
  294. package/lib-module/HorizontalScroll/dictionary.js +0 -11
  295. package/lib-module/HorizontalScroll/index.js +0 -11
  296. package/lib-module/HorizontalScroll/itemPositions.js +0 -106
  297. package/lib-module/Icon/Icon.js +0 -61
  298. package/lib-module/Icon/IconText.js +0 -81
  299. package/lib-module/Icon/index.js +0 -4
  300. package/lib-module/IconButton/IconButton.js +0 -115
  301. package/lib-module/IconButton/index.js +0 -2
  302. package/lib-module/InputLabel/InputLabel.js +0 -134
  303. package/lib-module/InputLabel/LabelContent.js +0 -24
  304. package/lib-module/InputLabel/LabelContent.native.js +0 -16
  305. package/lib-module/InputLabel/index.js +0 -2
  306. package/lib-module/InputSupports/InputSupports.js +0 -88
  307. package/lib-module/InputSupports/index.js +0 -2
  308. package/lib-module/InputSupports/useInputSupports.js +0 -31
  309. package/lib-module/Link/ChevronLink.js +0 -51
  310. package/lib-module/Link/InlinePressable.js +0 -37
  311. package/lib-module/Link/InlinePressable.native.js +0 -85
  312. package/lib-module/Link/Link.js +0 -27
  313. package/lib-module/Link/LinkBase.js +0 -223
  314. package/lib-module/Link/TextButton.js +0 -34
  315. package/lib-module/Link/index.js +0 -5
  316. package/lib-module/List/List.js +0 -55
  317. package/lib-module/List/ListItem.js +0 -223
  318. package/lib-module/List/index.js +0 -5
  319. package/lib-module/Modal/Modal.js +0 -208
  320. package/lib-module/Modal/dictionary.js +0 -9
  321. package/lib-module/Modal/index.js +0 -2
  322. package/lib-module/Notification/Notification.js +0 -196
  323. package/lib-module/Notification/dictionary.js +0 -8
  324. package/lib-module/Notification/index.js +0 -2
  325. package/lib-module/Pagination/PageButton.js +0 -65
  326. package/lib-module/Pagination/Pagination.js +0 -140
  327. package/lib-module/Pagination/SideButton.js +0 -103
  328. package/lib-module/Pagination/dictionary.js +0 -18
  329. package/lib-module/Pagination/index.js +0 -2
  330. package/lib-module/Pagination/usePagination.js +0 -72
  331. package/lib-module/Progress/Progress.js +0 -85
  332. package/lib-module/Progress/ProgressBar.js +0 -134
  333. package/lib-module/Progress/ProgressBarBackground.js +0 -41
  334. package/lib-module/Progress/index.js +0 -4
  335. package/lib-module/Radio/Radio.js +0 -274
  336. package/lib-module/Radio/RadioButton.js +0 -128
  337. package/lib-module/Radio/RadioGroup.js +0 -234
  338. package/lib-module/Radio/RadioInput.js +0 -60
  339. package/lib-module/Radio/RadioInput.native.js +0 -6
  340. package/lib-module/Radio/index.js +0 -3
  341. package/lib-module/RadioCard/RadioCard.js +0 -218
  342. package/lib-module/RadioCard/RadioCardGroup.js +0 -241
  343. package/lib-module/RadioCard/index.js +0 -3
  344. package/lib-module/Search/Search.js +0 -241
  345. package/lib-module/Search/dictionary.js +0 -12
  346. package/lib-module/Search/index.js +0 -2
  347. package/lib-module/Select/Group.js +0 -20
  348. package/lib-module/Select/Group.native.js +0 -14
  349. package/lib-module/Select/Item.js +0 -17
  350. package/lib-module/Select/Item.native.js +0 -9
  351. package/lib-module/Select/Picker.js +0 -67
  352. package/lib-module/Select/Picker.native.js +0 -110
  353. package/lib-module/Select/Select.js +0 -316
  354. package/lib-module/Select/index.js +0 -6
  355. package/lib-module/SideNav/Item.js +0 -139
  356. package/lib-module/SideNav/ItemContent.js +0 -45
  357. package/lib-module/SideNav/ItemsGroup.js +0 -115
  358. package/lib-module/SideNav/SideNav.js +0 -133
  359. package/lib-module/SideNav/index.js +0 -1
  360. package/lib-module/Skeleton/Skeleton.js +0 -117
  361. package/lib-module/Skeleton/index.js +0 -2
  362. package/lib-module/Skeleton/skeleton.constant.js +0 -3
  363. package/lib-module/Skeleton/skeletonWebAnimation.js +0 -18
  364. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +0 -24
  365. package/lib-module/Spacer/Spacer.js +0 -97
  366. package/lib-module/Spacer/index.js +0 -2
  367. package/lib-module/StackView/StackView.js +0 -124
  368. package/lib-module/StackView/StackWrap.js +0 -48
  369. package/lib-module/StackView/StackWrap.native.js +0 -3
  370. package/lib-module/StackView/StackWrapBox.js +0 -114
  371. package/lib-module/StackView/StackWrapGap.js +0 -58
  372. package/lib-module/StackView/common.js +0 -32
  373. package/lib-module/StackView/getStackedContent.js +0 -123
  374. package/lib-module/StackView/index.js +0 -5
  375. package/lib-module/StepTracker/Step.js +0 -229
  376. package/lib-module/StepTracker/StepTracker.js +0 -175
  377. package/lib-module/StepTracker/dictionary.js +0 -10
  378. package/lib-module/StepTracker/index.js +0 -2
  379. package/lib-module/Tabs/Tabs.js +0 -113
  380. package/lib-module/Tabs/TabsItem.js +0 -215
  381. package/lib-module/Tabs/index.js +0 -2
  382. package/lib-module/Tags/Tags.js +0 -245
  383. package/lib-module/Tags/index.js +0 -2
  384. package/lib-module/TextInput/TextArea.js +0 -88
  385. package/lib-module/TextInput/TextInput.js +0 -68
  386. package/lib-module/TextInput/TextInputBase.js +0 -233
  387. package/lib-module/TextInput/index.js +0 -3
  388. package/lib-module/TextInput/propTypes.js +0 -37
  389. package/lib-module/ThemeProvider/ThemeProvider.js +0 -35
  390. package/lib-module/ThemeProvider/index.js +0 -6
  391. package/lib-module/ThemeProvider/useSetTheme.js +0 -22
  392. package/lib-module/ThemeProvider/useTheme.js +0 -14
  393. package/lib-module/ThemeProvider/useThemeTokens.js +0 -105
  394. package/lib-module/ThemeProvider/utils/index.js +0 -2
  395. package/lib-module/ThemeProvider/utils/styles.js +0 -174
  396. package/lib-module/ThemeProvider/utils/theme-tokens.js +0 -151
  397. package/lib-module/ToggleSwitch/ToggleSwitch.js +0 -227
  398. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +0 -211
  399. package/lib-module/ToggleSwitch/index.js +0 -3
  400. package/lib-module/Tooltip/Backdrop.js +0 -52
  401. package/lib-module/Tooltip/Backdrop.native.js +0 -43
  402. package/lib-module/Tooltip/Tooltip.js +0 -332
  403. package/lib-module/Tooltip/dictionary.js +0 -8
  404. package/lib-module/Tooltip/getTooltipPosition.js +0 -164
  405. package/lib-module/Tooltip/index.js +0 -2
  406. package/lib-module/TooltipButton/TooltipButton.js +0 -71
  407. package/lib-module/TooltipButton/index.js +0 -2
  408. package/lib-module/Typography/Typography.js +0 -120
  409. package/lib-module/Typography/index.js +0 -2
  410. package/lib-module/ViewportProvider/ViewportProvider.js +0 -28
  411. package/lib-module/ViewportProvider/index.js +0 -3
  412. package/lib-module/ViewportProvider/useViewport.js +0 -3
  413. package/lib-module/ViewportProvider/useViewportListener.js +0 -43
  414. package/lib-module/index.js +0 -48
  415. package/lib-module/utils/a11y/index.js +0 -2
  416. package/lib-module/utils/a11y/semantics.js +0 -154
  417. package/lib-module/utils/a11y/textSize.js +0 -34
  418. package/lib-module/utils/animation/index.js +0 -2
  419. package/lib-module/utils/animation/useVerticalExpandAnimation.js +0 -49
  420. package/lib-module/utils/children.js +0 -118
  421. package/lib-module/utils/containUniqueFields.js +0 -26
  422. package/lib-module/utils/index.js +0 -16
  423. package/lib-module/utils/info/index.js +0 -7
  424. package/lib-module/utils/info/platform/index.js +0 -11
  425. package/lib-module/utils/info/platform/platform.android.js +0 -1
  426. package/lib-module/utils/info/platform/platform.ios.js +0 -1
  427. package/lib-module/utils/info/platform/platform.js +0 -1
  428. package/lib-module/utils/info/platform/platform.native.js +0 -4
  429. package/lib-module/utils/info/versions.js +0 -5
  430. package/lib-module/utils/input.js +0 -180
  431. package/lib-module/utils/pressability.js +0 -97
  432. package/lib-module/utils/props/a11yProps.js +0 -140
  433. package/lib-module/utils/props/clickProps.js +0 -25
  434. package/lib-module/utils/props/componentPropType.js +0 -63
  435. package/lib-module/utils/props/copyPropTypes.js +0 -2
  436. package/lib-module/utils/props/getPropSelector.js +0 -6
  437. package/lib-module/utils/props/handlerProps.js +0 -59
  438. package/lib-module/utils/props/hrefAttrsProp.js +0 -30
  439. package/lib-module/utils/props/index.js +0 -19
  440. package/lib-module/utils/props/inputSupportsProps.js +0 -52
  441. package/lib-module/utils/props/linkProps.js +0 -43
  442. package/lib-module/utils/props/paddingProp.js +0 -9
  443. package/lib-module/utils/props/pressProps.js +0 -42
  444. package/lib-module/utils/props/rectProp.js +0 -9
  445. package/lib-module/utils/props/responsiveProps.js +0 -30
  446. package/lib-module/utils/props/selectSystemProps.js +0 -24
  447. package/lib-module/utils/props/spacingProps.js +0 -56
  448. package/lib-module/utils/props/textInputProps.js +0 -194
  449. package/lib-module/utils/props/textProps.js +0 -59
  450. package/lib-module/utils/props/tokens.js +0 -120
  451. package/lib-module/utils/props/variantProp.js +0 -18
  452. package/lib-module/utils/props/viewProps.js +0 -22
  453. package/lib-module/utils/ssr.js +0 -35
  454. package/lib-module/utils/useCopy.js +0 -42
  455. package/lib-module/utils/useHash.js +0 -44
  456. package/lib-module/utils/useHash.native.js +0 -7
  457. package/lib-module/utils/useResponsiveProp.js +0 -47
  458. package/lib-module/utils/useSpacingScale.js +0 -123
  459. package/lib-module/utils/useUniqueId.js +0 -12
  460. package/lib-module/utils/withLinkRouter.js +0 -82
  461. package/stories/A11yText/A11yText.stories.jsx +0 -71
  462. package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +0 -22
  463. package/stories/Box/Box.stories.jsx +0 -143
  464. package/stories/Button/Button.stories.jsx +0 -72
  465. package/stories/Button/ButtonGroup.stories.jsx +0 -81
  466. package/stories/Button/ButtonLink.stories.jsx +0 -30
  467. package/stories/Card/Card.stories.jsx +0 -62
  468. package/stories/Checkbox/Checkbox.stories.jsx +0 -94
  469. package/stories/Divider/Divider.stories.jsx +0 -68
  470. package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +0 -112
  471. package/stories/Feedback/Feedback.stories.jsx +0 -96
  472. package/stories/FlexGrid/01 FlexGrid.stories.jsx +0 -54
  473. package/stories/FlexGrid/02 Row.stories.jsx +0 -41
  474. package/stories/FlexGrid/03 Col.stories.jsx +0 -141
  475. package/stories/Icon/Icon.stories.jsx +0 -79
  476. package/stories/IconButton/IconButton.stories.jsx +0 -50
  477. package/stories/InputLabel/InputLabel.stories.jsx +0 -39
  478. package/stories/Link/ChevronLink.stories.jsx +0 -48
  479. package/stories/Link/Link.stories.jsx +0 -90
  480. package/stories/Link/TextButton.stories.jsx +0 -79
  481. package/stories/List/List.stories.jsx +0 -117
  482. package/stories/Modal/Modal.stories.jsx +0 -54
  483. package/stories/Notification/Notification.stories.jsx +0 -82
  484. package/stories/Pagination/Pagination.stories.jsx +0 -64
  485. package/stories/Progress/Progress.stories.jsx +0 -93
  486. package/stories/Radio/Radio.stories.jsx +0 -100
  487. package/stories/RadioCard/RadioCard.stories.jsx +0 -98
  488. package/stories/Search/Search.stories.jsx +0 -66
  489. package/stories/Select/Select.stories.jsx +0 -55
  490. package/stories/SideNav/SideNav.stories.jsx +0 -42
  491. package/stories/SideNav/SideNavItem.stories.jsx +0 -9
  492. package/stories/SideNav/SideNavItemsGroup.stories.jsx +0 -17
  493. package/stories/Skeleton/Skeleton.stories.jsx +0 -36
  494. package/stories/Spacer/Spacer.stories.jsx +0 -38
  495. package/stories/StackView/StackView.stories.jsx +0 -75
  496. package/stories/StackView/StackWrap.stories.jsx +0 -64
  497. package/stories/StepTracker/StepTracker.stories.jsx +0 -71
  498. package/stories/Tabs/Tabs.stories.jsx +0 -97
  499. package/stories/Tags/Tags.stories.jsx +0 -69
  500. package/stories/TextInput/TextArea.stories.jsx +0 -101
  501. package/stories/TextInput/TextInput.stories.jsx +0 -141
  502. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +0 -64
  503. package/stories/ToggleSwitch/ToggleSwitchGroup.stories.jsx +0 -81
  504. package/stories/Tooltip/Tooltip.stories.jsx +0 -81
  505. package/stories/TooltipButton/TooltipButton.stories.jsx +0 -11
  506. package/stories/Typography/Typography.stories.jsx +0 -49
  507. package/stories/platform-supports.jsx +0 -32
  508. package/stories/platform-supports.native.jsx +0 -3
  509. package/stories/supports.jsx +0 -236
@@ -1,58 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import PropTypes from 'prop-types';
3
- /**
4
- * On Web we need to include an actual input but hide it.
5
- */
6
-
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- const CheckboxInput = /*#__PURE__*/forwardRef(({
9
- checked,
10
- defaultChecked,
11
- disabled,
12
- id,
13
- isControlled,
14
- name,
15
- onChange,
16
- value
17
- }, ref) => {
18
- const handleClick = event => {
19
- // Cancel the click dispatched via the label tag, since it's already wrapped
20
- // in <Pressable>
21
- event.preventDefault();
22
- event.stopPropagation();
23
- };
24
-
25
- return /*#__PURE__*/_jsx("input", {
26
- checked: isControlled ? checked : undefined,
27
- defaultChecked: isControlled ? undefined : defaultChecked,
28
- disabled: disabled,
29
- hidden: true,
30
- id: id,
31
- name: name,
32
- onChange: onChange,
33
- onClick: handleClick,
34
- ref: ref,
35
- type: "checkbox",
36
- value: value
37
- });
38
- });
39
- CheckboxInput.displayName = 'CheckboxInput';
40
- CheckboxInput.propTypes = {
41
- checked: PropTypes.bool,
42
- defaultChecked: PropTypes.bool,
43
- disabled: PropTypes.bool,
44
- id: PropTypes.string.isRequired,
45
- isControlled: PropTypes.bool.isRequired,
46
- name: PropTypes.string,
47
- onChange: PropTypes.func,
48
- value: PropTypes.string
49
- };
50
- CheckboxInput.defaultProps = {
51
- checked: undefined,
52
- defaultChecked: undefined,
53
- disabled: false,
54
- name: undefined,
55
- onChange: () => {},
56
- value: undefined
57
- };
58
- export default CheckboxInput;
@@ -1,6 +0,0 @@
1
- /**
2
- * There's no checkbox input on native platforms, so this is a noop.
3
- */
4
- const CheckboxInput = () => null;
5
-
6
- export default CheckboxInput;
@@ -1,3 +0,0 @@
1
- import Checkbox from './Checkbox';
2
- export default Checkbox;
3
- export { default as CheckboxGroup } from './CheckboxGroup';
@@ -1,123 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import PropTypes from 'prop-types';
3
- import View from "react-native-web/dist/exports/View";
4
- import StyleSheet from "react-native-web/dist/exports/StyleSheet";
5
- import Platform from "react-native-web/dist/exports/Platform";
6
- import { useThemeTokens } from '../ThemeProvider';
7
- import Spacer from '../Spacer';
8
- import { a11yProps, getTokensPropType, selectSystemProps, spacingProps, variantProp, viewProps } from '../utils';
9
- import { jsx as _jsx } from "react/jsx-runtime";
10
- import { Fragment as _Fragment } from "react/jsx-runtime";
11
- import { jsxs as _jsxs } from "react/jsx-runtime";
12
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
13
- /**
14
- * @typedef {import('../utils/props/spacingProps.js').SpacingIndex} SpacingIndex
15
- * @typedef {import('../utils/props/spacingProps.js').SpacingObject} SpacingObject
16
- */
17
-
18
- /**
19
- * A basic divider component, horizontal by default. Color and thickness can be controlled by theme.
20
- * Divider is based on the flexbox model and uses `alignSelf: flex` to span its flex parent.
21
- *
22
- * ## Vertical
23
- *
24
- * Vertical dividers can be created by passing a `vertical` boolean prop.
25
- * Note that for a vertical divider the parent flex element **must** have flex direction set to row.
26
- * This is the default for web but not for React Native.
27
- *
28
- * In a flexbox row, vertical dividers will automatically size to their parent height.
29
- *
30
- * ## Space
31
- *
32
- * Use this to create **space either side of the divider**. For simple cases, pass a number referring to
33
- * a position on the theme's spacing scale; for example, this will put a Spacer of the smallest supported
34
- * size either side of the divider:
35
- *
36
- * ```jsx
37
- * <Divider space={1} />
38
- * ```
39
- *
40
- * `space` prop uses `useSpacingScale` and may accept a {@link SpacingObject} or a {@link SpacingIndex} number.
41
- *
42
- * To **reduce the length of a divider** as well as creating space between it and its neighbours, wrap it in
43
- * a `Box` component. For example, this will have the second-smallest theme-supported spacing value between
44
- * the dividing line and its neighbours, and will shorten the line at either end by the same amount:
45
- *
46
- * ```jsx
47
- * <Box space={2}><Divider /></Box>
48
- * ```
49
- *
50
- * ## Accessibility
51
- *
52
- * For accessibility purposes a divider component will be described with ARIA attributes, i.e. `role="separator"` and `aria-orientation="vertical/horizontal"`.
53
- */
54
-
55
- const Divider = /*#__PURE__*/forwardRef(({
56
- variant,
57
- vertical = false,
58
- space,
59
- tokens,
60
- ...rest
61
- }, ref) => {
62
- const {
63
- color,
64
- width
65
- } = useThemeTokens('Divider', tokens, variant);
66
- const borderStyles = vertical ? {
67
- borderRightColor: color,
68
- borderRightWidth: width
69
- } : {
70
- borderBottomColor: color,
71
- borderBottomWidth: width
72
- };
73
- const a11y = Platform.OS === 'web' ? // There are aria attributes for dividers on web
74
- {
75
- 'aria-orientation': vertical ? 'vertical' : 'horizontal',
76
- accessibilityRole: 'separator'
77
- } : // There are no such equivalent attributes for native
78
- {};
79
- const {
80
- testID,
81
- ...selectedProps
82
- } = selectProps({ ...a11y,
83
- ...rest
84
- });
85
-
86
- const divider = /*#__PURE__*/_jsx(View, {
87
- ref: ref,
88
- style: [styles.divider, borderStyles],
89
- testID: testID,
90
- ...selectedProps
91
- });
92
-
93
- if (!space) return divider;
94
- const spacerProps = {
95
- space,
96
- direction: vertical ? 'row' : 'column'
97
- };
98
- return /*#__PURE__*/_jsxs(_Fragment, {
99
- children: [/*#__PURE__*/_jsx(Spacer, { ...spacerProps,
100
- testID: testID ? `${testID}-Spacer-before` : undefined
101
- }), divider, /*#__PURE__*/_jsx(Spacer, { ...spacerProps,
102
- testID: testID ? `${testID}-Spacer-after` : undefined
103
- })]
104
- });
105
- });
106
- Divider.displayName = 'Divider';
107
- Divider.propTypes = { ...selectedSystemPropTypes,
108
- tokens: getTokensPropType('Divider'),
109
- space: spacingProps.types.spacingValue,
110
- variant: variantProp.propType,
111
-
112
- /**
113
- * By default, the divider is a horizontal line the full width of its parent.
114
- * With `vertical` prop and when inside a container with { flexDirection: row }, draws a full height vertical line.
115
- */
116
- vertical: PropTypes.bool
117
- };
118
- const styles = StyleSheet.create({
119
- divider: {
120
- alignSelf: 'stretch'
121
- }
122
- });
123
- export default Divider;
@@ -1,2 +0,0 @@
1
- import Divider from './Divider';
2
- export default Divider;
@@ -1,15 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import ExpandCollapse from './ExpandCollapse';
3
- /**
4
- * 'Accordion' is a shorthand for an ExpandCollapse where only one item may be open at a time
5
- */
6
-
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- const Accordion = /*#__PURE__*/forwardRef((props, ref) => /*#__PURE__*/_jsx(ExpandCollapse, {
9
- ref: ref,
10
- ...props,
11
- maxOpen: 1
12
- }));
13
- Accordion.displayName = 'Accordion';
14
- Accordion.propTypes = ExpandCollapse.propTypes;
15
- export default Accordion;
@@ -1,130 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import Pressable from "react-native-web/dist/exports/Pressable";
3
- import View from "react-native-web/dist/exports/View";
4
- import PropTypes from 'prop-types';
5
- import { useThemeTokensCallback, verticalAlignRow } from '../ThemeProvider';
6
- import { a11yProps, getTokensPropType, selectSystemProps, variantProp, viewProps } from '../utils';
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- import { Fragment as _Fragment } from "react/jsx-runtime";
9
- import { jsxs as _jsxs } from "react/jsx-runtime";
10
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
11
-
12
- function selectContainerStyles({
13
- backgroundColor,
14
- borderColor,
15
- borderWidth,
16
- borderStyle,
17
- paddingLeft,
18
- paddingRight,
19
- paddingTop,
20
- paddingBottom,
21
- justifyContent,
22
- verticalAlign,
23
- iconPosition
24
- }) {
25
- return {
26
- backgroundColor,
27
- borderTopColor: borderColor,
28
- borderTopWidth: borderWidth,
29
- borderTopStyle: borderStyle,
30
- paddingLeft,
31
- paddingRight,
32
- paddingTop,
33
- paddingBottom,
34
- justifyContent,
35
- ...verticalAlignRow(verticalAlign, iconPosition === 'right')
36
- };
37
- } // TODO: use stack / spacer when available
38
-
39
-
40
- function selectIconContainerStyles({
41
- iconGap,
42
- iconPosition
43
- }) {
44
- const paddingSide = iconPosition === 'right' ? 'paddingLeft' : 'paddingRight';
45
- return {
46
- [paddingSide]: iconGap
47
- };
48
- }
49
-
50
- function selectIconTokens(tokens) {
51
- return {
52
- color: tokens.iconColor,
53
- size: tokens.iconSize
54
- };
55
- }
56
-
57
- const ExpandCollapseControl = /*#__PURE__*/forwardRef(({
58
- onPress,
59
- isExpanded,
60
- children,
61
- tokens,
62
- accessibilityRole = 'button',
63
- variant,
64
- ...rest
65
- }, ref) => {
66
- const getTokens = useThemeTokensCallback('ExpandCollapseControl', tokens, variant);
67
- const selectedProps = selectProps({ ...rest,
68
- accessibilityRole
69
- });
70
- selectedProps.accessibilityState = { ...(selectedProps.accessibilityState || {}),
71
- expanded: isExpanded
72
- };
73
-
74
- const getControlState = ({
75
- pressed,
76
- hovered,
77
- focused
78
- }) => ({
79
- pressed,
80
- hover: hovered,
81
- focus: focused,
82
- expanded: isExpanded
83
- });
84
-
85
- const getControlTokens = pressableState => getTokens(getControlState(pressableState));
86
-
87
- const getPressableStyle = pressableState => selectContainerStyles(getControlTokens(pressableState));
88
-
89
- return /*#__PURE__*/_jsx(Pressable, {
90
- ref: ref,
91
- ...selectedProps,
92
- onPress: onPress,
93
- style: getPressableStyle,
94
- children: pressableState => {
95
- const {
96
- icon: IconComponent,
97
- ...themeTokens
98
- } = getControlTokens(pressableState);
99
- return /*#__PURE__*/_jsxs(_Fragment, {
100
- children: [IconComponent && /*#__PURE__*/_jsx(View, {
101
- style: selectIconContainerStyles(themeTokens),
102
- children: /*#__PURE__*/_jsx(IconComponent, { ...selectIconTokens(themeTokens)
103
- })
104
- }), typeof children === 'function' ? children(getControlState(pressableState)) : children]
105
- });
106
- }
107
- });
108
- });
109
- ExpandCollapseControl.displayName = 'ExpandCollapseControl';
110
- ExpandCollapseControl.propTypes = { ...selectedSystemPropTypes,
111
- tokens: getTokensPropType('ExpandCollapseControl'),
112
- variant: variantProp.propType,
113
-
114
- /**
115
- * ExpandCollapseControl's children are the content within the button that opens or closes this panel. May
116
- * accept a render function that recieves the control state: { pressed, hover, focus, expanded }
117
- */
118
- children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
119
-
120
- /**
121
- * Whether the linked ExpandCollapsePanel is opened or closed. Allows themes to set `expanded` styles.
122
- */
123
- isExpanded: PropTypes.bool,
124
-
125
- /**
126
- * Function called when the ExpandCollapse is pressed.
127
- */
128
- onPress: PropTypes.func.isRequired
129
- };
130
- export default ExpandCollapseControl;
@@ -1,94 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import View from "react-native-web/dist/exports/View";
3
- import PropTypes from 'prop-types';
4
- import { useThemeTokens } from '../ThemeProvider';
5
- import { a11yProps, getTokensPropType, selectSystemProps, useMultipleInputValues, variantProp, viewProps } from '../utils';
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
8
-
9
- function selectBorderStyles(tokens) {
10
- return {
11
- borderBottomWidth: tokens.borderWidth,
12
- borderBottomStyle: tokens.borderStyle,
13
- borderBottomColor: tokens.borderColor
14
- };
15
- }
16
- /**
17
- * Flexible base component for lists where some or all items are collapsible headers.
18
- *
19
- * Pass a render function as `children` which takes and passes `openIds` and `onToggle` props to
20
- * <ExpandCollapse.Panel> children, and assign the panels explicit `panelId` props. The panels may be
21
- * nested (they do not need to be direct children), and non-interactive items may be included too.
22
- */
23
-
24
-
25
- const ExpandCollapse = /*#__PURE__*/forwardRef(({
26
- children,
27
- tokens,
28
- variant,
29
- maxOpen,
30
- open,
31
- initialOpen,
32
- onChange,
33
- ...rest
34
- }, ref) => {
35
- const {
36
- currentValues: openIds,
37
- toggleOneValue: onToggle,
38
- resetValues,
39
- setValues,
40
- unsetValues
41
- } = useMultipleInputValues({
42
- maxValues: maxOpen,
43
- values: open,
44
- initialValues: initialOpen,
45
- onChange
46
- });
47
- const themeTokens = useThemeTokens('ExpandCollapse', tokens, variant);
48
- return /*#__PURE__*/_jsx(View, {
49
- ref: ref,
50
- style: selectBorderStyles(themeTokens),
51
- ...selectProps(rest),
52
- children: typeof children === 'function' ? children({
53
- openIds,
54
- onToggle,
55
- resetValues,
56
- setValues,
57
- unsetValues
58
- }) : children
59
- });
60
- });
61
- ExpandCollapse.displayName = 'ExpandCollapse';
62
- ExpandCollapse.propTypes = { ...selectedSystemPropTypes,
63
- variant: variantProp.propType,
64
- tokens: getTokensPropType('ExpandCollapse'),
65
-
66
- /**
67
- * ExpandCollapse usually takes a render function to which it passes an object with properties
68
- * { openIds, onToggle, resetValues, setValues, unsetValues }. openIds (array of ids) and
69
- * onToggle (function) will usually be passed to `<ExpandCollapse.Panel>`
70
- */
71
- children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]).isRequired,
72
-
73
- /**
74
- * If set, enforces a specific maximum number of open items, closing already-open items when new
75
- * items are opened. By default, any number of items may be open at once.
76
- */
77
- maxOpen: PropTypes.number,
78
-
79
- /**
80
- * If passed, the item or items that are expanded will be controlled by a parent component
81
- */
82
- open: PropTypes.arrayOf(PropTypes.string),
83
-
84
- /**
85
- * Function called when which panels are currently open changes. Necessary if `open` is passed.
86
- */
87
- onChange: PropTypes.func,
88
-
89
- /**
90
- * Allows items with specified ids to be open by default on first load. Should not be used with `open`.
91
- */
92
- initialOpen: PropTypes.arrayOf(PropTypes.string)
93
- };
94
- export default ExpandCollapse;
@@ -1,158 +0,0 @@
1
- import React, { forwardRef, useState } from 'react';
2
- import Animated from "react-native-web/dist/exports/Animated";
3
- import Platform from "react-native-web/dist/exports/Platform";
4
- import StyleSheet from "react-native-web/dist/exports/StyleSheet";
5
- import View from "react-native-web/dist/exports/View";
6
- import PropTypes from 'prop-types';
7
- import ExpandCollapseControl from './Control';
8
- import { useThemeTokens } from '../ThemeProvider';
9
- import { a11yProps, getTokensPropType, selectSystemProps, useVerticalExpandAnimation, variantProp, viewProps } from '../utils';
10
- import { jsx as _jsx } from "react/jsx-runtime";
11
- import { jsxs as _jsxs } from "react/jsx-runtime";
12
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]); // just void functions for now, since there are no style tokens for a panel or control at this point
13
-
14
- const selectGroupStyles = () => {};
15
-
16
- const selectContainerStyles = ({
17
- contentPaddingLeft,
18
- contentPaddingRight,
19
- contentPaddingTop,
20
- contentPaddingBottom
21
- }) => ({
22
- paddingLeft: contentPaddingLeft,
23
- paddingRight: contentPaddingRight,
24
- paddingTop: contentPaddingTop,
25
- paddingBottom: contentPaddingBottom
26
- });
27
- /**
28
- * An item in an `ExpandCollapse` which contains collapsible `children` and a `control` that opens
29
- * and closes the collapsible children when pressed.
30
- *
31
- * Expects `openIds` and `onToggle` props from the `ExpandCollapse` render function and a unique
32
- * `panelId` that matches the ids passed to the `<ExpandCollapse>`.
33
- *
34
- * The panel does not need to be a direct child of the `<ExpandCollapse>` (unless this is required
35
- * by the chosen accessibility props for a particular accessibility tools).
36
- */
37
-
38
-
39
- const ExpandCollapsePanel = /*#__PURE__*/forwardRef(({
40
- openIds = [],
41
- panelId,
42
- onToggle,
43
- onPress,
44
- control,
45
- controlTokens,
46
- children,
47
- tokens,
48
- variant,
49
- ...rest
50
- }, ref) => {
51
- const [containerHeight, setContainerHeight] = useState(null);
52
- const isExpanded = openIds.includes(panelId);
53
- const selectedProps = selectProps(rest);
54
- selectedProps.accessibilityState = { ...(selectedProps.accessibilityState || {}),
55
- expanded: isExpanded
56
- };
57
- const themeTokens = useThemeTokens('ExpandCollapsePanel', tokens, variant, {
58
- expanded: isExpanded
59
- });
60
-
61
- const handleControlPress = event => {
62
- onToggle(panelId, event);
63
- if (onPress) onPress(panelId, event);
64
- };
65
-
66
- const onContainerLayout = event => {
67
- const {
68
- layout: {
69
- height = 0
70
- } = {}
71
- } = event.nativeEvent;
72
-
73
- if (Platform.OS === 'web' || Platform.OS !== 'web' && containerHeight === null) {
74
- setContainerHeight(height);
75
- }
76
- };
77
-
78
- const animatedStyles = useVerticalExpandAnimation({
79
- containerHeight,
80
- isExpanded,
81
- tokens: themeTokens
82
- }); // on web we can hide the contents until we have the container measured and avoid occasional jitter
83
- // this won't work on native platforms
84
-
85
- const overflowContainerStyles = containerHeight === null && Platform.OS === 'web' ? {
86
- height: 0,
87
- visibility: 'hidden'
88
- } : undefined;
89
- const focusabilityProps = isExpanded ? {} : a11yProps.nonFocusableProps;
90
- return /*#__PURE__*/_jsxs(View, {
91
- ref: ref,
92
- style: selectGroupStyles(themeTokens),
93
- children: [/*#__PURE__*/_jsx(ExpandCollapseControl, { ...selectedProps,
94
- isExpanded: isExpanded,
95
- tokens: controlTokens,
96
- onPress: handleControlPress,
97
- children: control
98
- }), /*#__PURE__*/_jsx(Animated.View, {
99
- style: [overflowContainerStyles, animatedStyles, staticStyles.itemsContainer],
100
- ...focusabilityProps,
101
- children: /*#__PURE__*/_jsx(View, {
102
- onLayout: onContainerLayout,
103
- children: /*#__PURE__*/_jsx(View, {
104
- style: selectContainerStyles(themeTokens),
105
- children: children
106
- })
107
- })
108
- })]
109
- });
110
- });
111
- ExpandCollapsePanel.displayName = 'ExpandCollapsePanel';
112
- ExpandCollapsePanel.propTypes = { ...selectedSystemPropTypes,
113
- variant: variantProp.propType,
114
- tokens: getTokensPropType('ExpandCollapsePanel'),
115
-
116
- /**
117
- * Array of the ids of currently open groups
118
- */
119
- openIds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),
120
-
121
- /**
122
- * Unique name by which the ExpandCollapse controls this element.
123
- */
124
- panelId: PropTypes.string.isRequired,
125
-
126
- /**
127
- * Function to call on pressing the panel's control, which should open or close the panel.
128
- * If Panel is a direct child of `ExpandCollapse`, this prop will be provided by the ExpandCollapse parent.
129
- */
130
- onToggle: PropTypes.func.isRequired,
131
-
132
- /**
133
- * Optional function to call on pressing the panel's control, in addition to opening or closing the panel.
134
- */
135
- onPress: PropTypes.func,
136
-
137
- /**
138
- * ExpandCollapsePanel's children are the content that is hidden or revealed on open or close, and may be any
139
- * single React element or a render function which takes this group's isExpanded state, onToggle function and panelId
140
- */
141
- children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
142
-
143
- /**
144
- * The content inside the always-visible control element that opens and closes the ExpandCollapse when pressed.
145
- */
146
- control: ExpandCollapseControl.propTypes.children.isRequired,
147
-
148
- /**
149
- * Optional theme token overrides that may be passed to the ExpandCollapseControl element.
150
- */
151
- controlTokens: getTokensPropType('ExpandCollapseControl')
152
- };
153
- const staticStyles = StyleSheet.create({
154
- itemsContainer: {
155
- overflow: 'hidden'
156
- }
157
- });
158
- export default ExpandCollapsePanel;
@@ -1,7 +0,0 @@
1
- import ExpandCollapse from './ExpandCollapse';
2
- import Accordion from './Accordion';
3
- import Panel from './Panel';
4
- ExpandCollapse.Panel = Panel;
5
- Accordion.Panel = Panel;
6
- export default ExpandCollapse;
7
- export { Accordion };