@telus-uds/components-base 0.0.2-prerelease.6 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (458) hide show
  1. package/.eslintrc.js +9 -0
  2. package/.ultra.cache.json +1 -1
  3. package/CHANGELOG.md +85 -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 +851 -57
  9. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +1 -1
  10. package/__tests__/Button/ButtonBase.test.jsx +2 -31
  11. package/__tests__/Button/ButtonGroup.test.jsx +6 -7
  12. package/__tests__/Checkbox/Checkbox.test.jsx +94 -0
  13. package/__tests__/Checkbox/CheckboxGroup.test.jsx +246 -0
  14. package/__tests__/ExpandCollapse/ExpandCollapse.test.jsx +2 -2
  15. package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +164 -0
  16. package/__tests__/Icon/Icon.test.jsx +3 -3
  17. package/__tests__/IconButton/IconButton.test.jsx +52 -0
  18. package/__tests__/InputSupports/InputSupports.test.jsx +50 -0
  19. package/__tests__/Link/LinkBase.test.jsx +0 -14
  20. package/__tests__/List/List.test.jsx +60 -0
  21. package/__tests__/Modal/Modal.test.jsx +47 -0
  22. package/__tests__/Notification/Notification.test.jsx +20 -0
  23. package/__tests__/Pagination/Pagination.test.jsx +2 -2
  24. package/__tests__/Progress/Progress.test.jsx +79 -0
  25. package/__tests__/Radio/Radio.test.jsx +87 -0
  26. package/__tests__/Radio/RadioGroup.test.jsx +220 -0
  27. package/__tests__/RadioCard/RadioCard.test.jsx +87 -0
  28. package/__tests__/RadioCard/RadioCardGroup.test.jsx +246 -0
  29. package/__tests__/Search/Search.test.jsx +73 -0
  30. package/__tests__/Select/Select.test.jsx +94 -0
  31. package/__tests__/Skeleton/Skeleton.test.jsx +61 -0
  32. package/__tests__/StepTracker/StepTracker.test.jsx +94 -0
  33. package/__tests__/Tabs/Tabs.test.jsx +40 -0
  34. package/__tests__/Tags/Tags.test.jsx +327 -0
  35. package/__tests__/TextInput/TextArea.test.jsx +35 -0
  36. package/__tests__/TextInput/{TextInput.test.jsx → TextInputBase.test.jsx} +29 -50
  37. package/__tests__/ThemeProvider/ThemeProvider.test.jsx +77 -0
  38. package/__tests__/ThemeProvider/useThemeTokens.test.jsx +9 -5
  39. package/__tests__/ThemeProvider/utils/theme-tokens.test.js +41 -0
  40. package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +3 -2
  41. package/__tests__/utils/children.test.jsx +128 -0
  42. package/__tests__/utils/input.test.js +59 -1
  43. package/__tests__/utils/semantics.test.jsx +43 -0
  44. package/__tests__/utils/useCopy.test.js +14 -3
  45. package/babel.config.js +20 -0
  46. package/jest.config.js +8 -3
  47. package/lib/A11yInfoProvider/index.js +54 -26
  48. package/lib/A11yText/index.js +45 -17
  49. package/lib/ActivityIndicator/Spinner.js +81 -0
  50. package/lib/ActivityIndicator/Spinner.native.js +129 -91
  51. package/lib/ActivityIndicator/index.js +28 -12
  52. package/lib/ActivityIndicator/shared.js +27 -12
  53. package/lib/BaseProvider/index.js +34 -11
  54. package/lib/Box/Box.js +152 -35
  55. package/lib/Box/index.js +13 -2
  56. package/lib/Button/Button.js +41 -12
  57. package/lib/Button/ButtonBase.js +125 -97
  58. package/lib/Button/ButtonGroup.js +112 -89
  59. package/lib/Button/ButtonLink.js +48 -17
  60. package/lib/Button/index.js +31 -4
  61. package/lib/Button/propTypes.js +32 -9
  62. package/lib/Card/Card.js +38 -41
  63. package/lib/Card/CardBase.js +85 -0
  64. package/lib/Card/PressableCardBase.js +141 -0
  65. package/lib/Card/index.js +40 -2
  66. package/lib/Checkbox/Checkbox.js +355 -0
  67. package/lib/Checkbox/CheckboxGroup.js +241 -0
  68. package/lib/Checkbox/CheckboxInput.js +74 -0
  69. package/lib/Checkbox/CheckboxInput.native.js +14 -0
  70. package/lib/Checkbox/index.js +21 -0
  71. package/lib/Divider/Divider.js +59 -28
  72. package/lib/Divider/index.js +13 -2
  73. package/lib/ExpandCollapse/Accordion.js +26 -7
  74. package/lib/ExpandCollapse/Control.js +60 -31
  75. package/lib/ExpandCollapse/ExpandCollapse.js +50 -28
  76. package/lib/ExpandCollapse/Panel.js +83 -44
  77. package/lib/ExpandCollapse/index.js +25 -7
  78. package/lib/Feedback/Feedback.js +90 -39
  79. package/lib/Feedback/index.js +13 -2
  80. package/lib/Fieldset/Fieldset.js +165 -0
  81. package/lib/Fieldset/FieldsetContainer.js +46 -0
  82. package/lib/Fieldset/FieldsetContainer.native.js +38 -0
  83. package/lib/Fieldset/Legend.js +38 -0
  84. package/lib/Fieldset/Legend.native.js +48 -0
  85. package/lib/Fieldset/cssReset.js +21 -0
  86. package/lib/Fieldset/index.js +13 -0
  87. package/lib/FlexGrid/Col/Col.js +73 -41
  88. package/lib/FlexGrid/Col/index.js +13 -2
  89. package/lib/FlexGrid/FlexGrid.js +99 -49
  90. package/lib/FlexGrid/Row/Row.js +58 -30
  91. package/lib/FlexGrid/Row/index.js +13 -2
  92. package/lib/FlexGrid/helpers/index.js +9 -1
  93. package/lib/FlexGrid/index.js +13 -2
  94. package/lib/FlexGrid/providers/GutterContext.js +15 -3
  95. package/lib/HorizontalScroll/HorizontalScroll.js +200 -0
  96. package/lib/HorizontalScroll/HorizontalScrollButton.js +127 -0
  97. package/lib/HorizontalScroll/ScrollViewEnd.js +66 -0
  98. package/lib/HorizontalScroll/ScrollViewEnd.native.js +41 -0
  99. package/lib/HorizontalScroll/dictionary.js +18 -0
  100. package/lib/HorizontalScroll/index.js +35 -0
  101. package/lib/HorizontalScroll/itemPositions.js +128 -0
  102. package/lib/Icon/Icon.js +62 -50
  103. package/lib/Icon/IconText.js +101 -0
  104. package/lib/Icon/index.js +31 -3
  105. package/lib/IconButton/IconButton.js +140 -0
  106. package/lib/IconButton/index.js +13 -0
  107. package/lib/InputLabel/InputLabel.js +102 -40
  108. package/lib/InputLabel/LabelContent.js +41 -0
  109. package/lib/InputLabel/LabelContent.native.js +32 -6
  110. package/lib/InputLabel/index.js +13 -2
  111. package/lib/InputSupports/InputSupports.js +109 -0
  112. package/lib/InputSupports/index.js +13 -0
  113. package/lib/InputSupports/propTypes.js +66 -0
  114. package/lib/InputSupports/useInputSupports.js +41 -0
  115. package/lib/Link/ChevronLink.js +58 -31
  116. package/lib/Link/InlinePressable.js +56 -0
  117. package/lib/Link/InlinePressable.native.js +102 -0
  118. package/lib/Link/Link.js +39 -15
  119. package/lib/Link/LinkBase.js +126 -150
  120. package/lib/Link/TextButton.js +53 -18
  121. package/lib/Link/index.js +39 -4
  122. package/lib/List/List.js +81 -0
  123. package/lib/List/ListItem.js +245 -0
  124. package/lib/List/index.js +13 -0
  125. package/lib/Modal/Modal.js +231 -0
  126. package/lib/Modal/dictionary.js +16 -0
  127. package/lib/Modal/index.js +13 -0
  128. package/lib/Notification/Notification.js +216 -0
  129. package/lib/Notification/dictionary.js +15 -0
  130. package/lib/Notification/index.js +13 -0
  131. package/lib/Pagination/PageButton.js +58 -48
  132. package/lib/Pagination/Pagination.js +78 -43
  133. package/lib/Pagination/SideButton.js +79 -58
  134. package/lib/Pagination/dictionary.js +9 -2
  135. package/lib/Pagination/index.js +13 -2
  136. package/lib/Pagination/usePagination.js +12 -2
  137. package/lib/Progress/Progress.js +104 -0
  138. package/lib/Progress/ProgressBar.js +157 -0
  139. package/lib/Progress/ProgressBarBackground.js +61 -0
  140. package/lib/Progress/index.js +16 -0
  141. package/lib/Radio/Radio.js +293 -0
  142. package/lib/Radio/RadioButton.js +152 -0
  143. package/lib/Radio/RadioGroup.js +244 -0
  144. package/lib/Radio/RadioInput.js +76 -0
  145. package/lib/Radio/RadioInput.native.js +14 -0
  146. package/lib/Radio/index.js +21 -0
  147. package/lib/RadioCard/RadioCard.js +244 -0
  148. package/lib/RadioCard/RadioCardGroup.js +252 -0
  149. package/lib/RadioCard/index.js +21 -0
  150. package/lib/Search/Search.js +254 -0
  151. package/lib/Search/dictionary.js +19 -0
  152. package/lib/Search/index.js +13 -0
  153. package/lib/Select/Group.js +33 -0
  154. package/lib/Select/Group.native.js +25 -0
  155. package/lib/Select/Item.js +29 -0
  156. package/lib/Select/Item.native.js +19 -0
  157. package/lib/Select/Picker.js +84 -0
  158. package/lib/Select/Picker.native.js +130 -0
  159. package/lib/Select/Select.js +342 -0
  160. package/lib/Select/index.js +19 -0
  161. package/lib/SideNav/Item.js +63 -37
  162. package/lib/SideNav/ItemContent.js +41 -15
  163. package/lib/SideNav/ItemsGroup.js +55 -31
  164. package/lib/SideNav/SideNav.js +100 -73
  165. package/lib/SideNav/index.js +15 -1
  166. package/lib/Skeleton/Skeleton.js +137 -0
  167. package/lib/Skeleton/index.js +13 -0
  168. package/lib/Skeleton/skeleton.constant.js +12 -0
  169. package/lib/Skeleton/skeletonWebAnimation.js +27 -0
  170. package/lib/Skeleton/useSkeletonNativeAnimation.js +37 -0
  171. package/lib/Spacer/Spacer.js +49 -18
  172. package/lib/Spacer/index.js +13 -2
  173. package/lib/StackView/StackView.js +71 -31
  174. package/lib/StackView/StackWrap.js +43 -13
  175. package/lib/StackView/StackWrap.native.js +13 -2
  176. package/lib/StackView/StackWrapBox.js +76 -29
  177. package/lib/StackView/StackWrapGap.js +56 -26
  178. package/lib/StackView/common.js +23 -6
  179. package/lib/StackView/getStackedContent.js +47 -17
  180. package/lib/StackView/index.js +29 -5
  181. package/lib/StepTracker/Step.js +245 -0
  182. package/lib/StepTracker/StepTracker.js +202 -0
  183. package/lib/StepTracker/dictionary.js +17 -0
  184. package/lib/StepTracker/index.js +13 -0
  185. package/lib/Tabs/Tabs.js +124 -0
  186. package/lib/Tabs/TabsItem.js +238 -0
  187. package/lib/Tabs/index.js +13 -0
  188. package/lib/Tags/Tags.js +266 -0
  189. package/lib/Tags/index.js +13 -0
  190. package/lib/TextInput/TextArea.js +111 -0
  191. package/lib/TextInput/TextInput.js +50 -304
  192. package/lib/TextInput/TextInputBase.js +256 -0
  193. package/lib/TextInput/index.js +23 -2
  194. package/lib/TextInput/propTypes.js +42 -0
  195. package/lib/ThemeProvider/ThemeProvider.js +46 -18
  196. package/lib/ThemeProvider/index.js +61 -6
  197. package/lib/ThemeProvider/useSetTheme.js +19 -5
  198. package/lib/ThemeProvider/useTheme.js +13 -4
  199. package/lib/ThemeProvider/useThemeTokens.js +86 -19
  200. package/lib/ThemeProvider/utils/index.js +31 -2
  201. package/lib/ThemeProvider/utils/styles.js +50 -14
  202. package/lib/ThemeProvider/utils/theme-tokens.js +121 -12
  203. package/lib/ToggleSwitch/ToggleSwitch.js +86 -57
  204. package/lib/ToggleSwitch/index.js +13 -2
  205. package/lib/Tooltip/{Backdrop.web.js → Backdrop.js} +20 -8
  206. package/lib/Tooltip/Backdrop.native.js +39 -15
  207. package/lib/Tooltip/Tooltip.js +117 -74
  208. package/lib/Tooltip/dictionary.js +9 -2
  209. package/lib/Tooltip/getTooltipPosition.js +9 -1
  210. package/lib/Tooltip/index.js +13 -2
  211. package/lib/TooltipButton/TooltipButton.js +57 -38
  212. package/lib/TooltipButton/index.js +13 -2
  213. package/lib/Typography/Typography.js +86 -55
  214. package/lib/Typography/index.js +13 -2
  215. package/lib/ViewportProvider/ViewportProvider.js +34 -13
  216. package/lib/ViewportProvider/index.js +28 -3
  217. package/lib/ViewportProvider/useViewport.js +15 -3
  218. package/lib/ViewportProvider/useViewportListener.js +24 -10
  219. package/lib/index.js +539 -26
  220. package/lib/utils/a11y/index.js +31 -0
  221. package/lib/utils/a11y/semantics.js +173 -0
  222. package/lib/utils/a11y/textSize.js +49 -0
  223. package/lib/utils/animation/index.js +15 -2
  224. package/lib/utils/animation/useVerticalExpandAnimation.js +27 -10
  225. package/lib/utils/children.js +134 -0
  226. package/lib/utils/index.js +163 -7
  227. package/lib/utils/info/index.js +19 -0
  228. package/lib/utils/info/platform/index.js +23 -0
  229. package/lib/utils/info/platform/platform.android.js +8 -0
  230. package/lib/utils/info/platform/platform.ios.js +8 -0
  231. package/lib/utils/info/platform/platform.js +8 -0
  232. package/lib/utils/info/platform/platform.native.js +11 -0
  233. package/lib/utils/info/versions.js +16 -0
  234. package/lib/utils/input.js +53 -25
  235. package/lib/utils/pressability.js +120 -0
  236. package/lib/utils/propTypes.js +338 -132
  237. package/lib/utils/useCopy.js +40 -5
  238. package/lib/utils/useHash.js +52 -0
  239. package/lib/utils/useHash.native.js +15 -0
  240. package/lib/utils/useResponsiveProp.js +21 -9
  241. package/lib/utils/useSpacingScale.js +19 -9
  242. package/lib/utils/useUniqueId.js +12 -3
  243. package/package.json +16 -10
  244. package/release-context.json +4 -4
  245. package/src/A11yText/index.jsx +6 -4
  246. package/src/ActivityIndicator/{Spinner.web.jsx → Spinner.jsx} +5 -3
  247. package/src/ActivityIndicator/Spinner.native.jsx +5 -3
  248. package/src/Box/Box.jsx +131 -39
  249. package/src/Button/Button.jsx +13 -6
  250. package/src/Button/ButtonBase.jsx +134 -125
  251. package/src/Button/ButtonGroup.jsx +85 -86
  252. package/src/Button/ButtonLink.jsx +22 -7
  253. package/src/Button/propTypes.js +12 -2
  254. package/src/Card/Card.jsx +5 -31
  255. package/src/Card/CardBase.jsx +58 -0
  256. package/src/Card/PressableCardBase.jsx +119 -0
  257. package/src/Card/index.js +3 -0
  258. package/src/Checkbox/Checkbox.jsx +284 -0
  259. package/src/Checkbox/CheckboxGroup.jsx +206 -0
  260. package/src/Checkbox/CheckboxInput.jsx +55 -0
  261. package/src/Checkbox/CheckboxInput.native.jsx +6 -0
  262. package/src/Checkbox/index.js +5 -0
  263. package/src/Divider/Divider.jsx +7 -4
  264. package/src/ExpandCollapse/Accordion.jsx +3 -2
  265. package/src/ExpandCollapse/Control.jsx +40 -43
  266. package/src/ExpandCollapse/ExpandCollapse.jsx +26 -23
  267. package/src/ExpandCollapse/Panel.jsx +69 -63
  268. package/src/Feedback/Feedback.jsx +42 -30
  269. package/src/Fieldset/Fieldset.jsx +136 -0
  270. package/src/Fieldset/FieldsetContainer.jsx +31 -0
  271. package/src/Fieldset/FieldsetContainer.native.jsx +19 -0
  272. package/src/Fieldset/Legend.jsx +21 -0
  273. package/src/Fieldset/Legend.native.jsx +27 -0
  274. package/src/Fieldset/cssReset.js +14 -0
  275. package/src/Fieldset/index.js +3 -0
  276. package/src/FlexGrid/Col/Col.jsx +139 -132
  277. package/src/FlexGrid/FlexGrid.jsx +79 -51
  278. package/src/FlexGrid/Row/Row.jsx +55 -48
  279. package/src/HorizontalScroll/HorizontalScroll.jsx +168 -0
  280. package/src/HorizontalScroll/HorizontalScrollButton.jsx +105 -0
  281. package/src/HorizontalScroll/ScrollViewEnd.jsx +53 -0
  282. package/src/HorizontalScroll/ScrollViewEnd.native.jsx +24 -0
  283. package/src/HorizontalScroll/dictionary.js +11 -0
  284. package/src/HorizontalScroll/index.js +17 -0
  285. package/src/HorizontalScroll/itemPositions.js +101 -0
  286. package/src/Icon/Icon.jsx +46 -49
  287. package/src/Icon/IconText.jsx +68 -0
  288. package/src/Icon/index.js +3 -2
  289. package/src/IconButton/IconButton.jsx +114 -0
  290. package/src/IconButton/index.js +3 -0
  291. package/src/InputLabel/InputLabel.jsx +57 -35
  292. package/src/InputLabel/LabelContent.jsx +21 -0
  293. package/src/InputLabel/LabelContent.native.jsx +11 -2
  294. package/src/InputSupports/InputSupports.jsx +70 -0
  295. package/src/InputSupports/index.js +3 -0
  296. package/src/InputSupports/propTypes.js +44 -0
  297. package/src/InputSupports/useInputSupports.js +30 -0
  298. package/src/Link/ChevronLink.jsx +34 -21
  299. package/src/Link/InlinePressable.jsx +39 -0
  300. package/src/Link/InlinePressable.native.jsx +75 -0
  301. package/src/Link/Link.jsx +23 -13
  302. package/src/Link/LinkBase.jsx +98 -170
  303. package/src/Link/TextButton.jsx +37 -16
  304. package/src/Link/index.js +2 -1
  305. package/src/List/List.jsx +48 -0
  306. package/src/List/ListItem.jsx +182 -0
  307. package/src/List/index.js +3 -0
  308. package/src/Modal/Modal.jsx +190 -0
  309. package/src/Modal/dictionary.js +9 -0
  310. package/src/Modal/index.js +3 -0
  311. package/src/Notification/Notification.jsx +164 -0
  312. package/src/Notification/dictionary.js +8 -0
  313. package/src/Notification/index.js +3 -0
  314. package/src/Pagination/PageButton.jsx +42 -49
  315. package/src/Pagination/Pagination.jsx +88 -92
  316. package/src/Pagination/SideButton.jsx +58 -66
  317. package/src/Progress/Progress.jsx +78 -0
  318. package/src/Progress/ProgressBar.jsx +123 -0
  319. package/src/Progress/ProgressBarBackground.jsx +36 -0
  320. package/src/Progress/index.js +6 -0
  321. package/src/Radio/Radio.jsx +240 -0
  322. package/src/Radio/RadioButton.jsx +142 -0
  323. package/src/Radio/RadioGroup.jsx +209 -0
  324. package/src/Radio/RadioInput.jsx +57 -0
  325. package/src/Radio/RadioInput.native.jsx +6 -0
  326. package/src/Radio/index.js +5 -0
  327. package/src/RadioCard/RadioCard.jsx +198 -0
  328. package/src/RadioCard/RadioCardGroup.jsx +218 -0
  329. package/src/RadioCard/index.js +5 -0
  330. package/src/Search/Search.jsx +225 -0
  331. package/src/Search/dictionary.js +12 -0
  332. package/src/Search/index.js +3 -0
  333. package/src/Select/Group.jsx +15 -0
  334. package/src/Select/Group.native.jsx +14 -0
  335. package/src/Select/Item.jsx +11 -0
  336. package/src/Select/Item.native.jsx +10 -0
  337. package/src/Select/Picker.jsx +74 -0
  338. package/src/Select/Picker.native.jsx +102 -0
  339. package/src/Select/Select.jsx +298 -0
  340. package/src/Select/index.js +8 -0
  341. package/src/SideNav/Item.jsx +54 -47
  342. package/src/SideNav/ItemsGroup.jsx +50 -43
  343. package/src/SideNav/SideNav.jsx +68 -60
  344. package/src/Skeleton/Skeleton.jsx +94 -0
  345. package/src/Skeleton/index.js +3 -0
  346. package/src/Skeleton/skeleton.constant.js +3 -0
  347. package/src/Skeleton/skeletonWebAnimation.js +13 -0
  348. package/src/Skeleton/useSkeletonNativeAnimation.js +27 -0
  349. package/src/Spacer/Spacer.jsx +11 -4
  350. package/src/StackView/StackView.jsx +53 -23
  351. package/src/StackView/StackWrap.jsx +16 -7
  352. package/src/StackView/StackWrapBox.jsx +62 -28
  353. package/src/StackView/StackWrapGap.jsx +46 -24
  354. package/src/StackView/common.jsx +3 -2
  355. package/src/StackView/getStackedContent.jsx +8 -2
  356. package/src/StepTracker/Step.jsx +202 -0
  357. package/src/StepTracker/StepTracker.jsx +174 -0
  358. package/src/StepTracker/dictionary.js +10 -0
  359. package/src/StepTracker/index.js +3 -0
  360. package/src/Tabs/Tabs.jsx +97 -0
  361. package/src/Tabs/TabsItem.jsx +212 -0
  362. package/src/Tabs/index.js +3 -0
  363. package/src/Tags/Tags.jsx +219 -0
  364. package/src/Tags/index.js +3 -0
  365. package/src/TextInput/TextArea.jsx +79 -0
  366. package/src/TextInput/TextInput.jsx +18 -284
  367. package/src/TextInput/TextInputBase.jsx +217 -0
  368. package/src/TextInput/index.js +2 -1
  369. package/src/TextInput/propTypes.js +29 -0
  370. package/src/ThemeProvider/ThemeProvider.jsx +11 -7
  371. package/src/ThemeProvider/useSetTheme.js +4 -0
  372. package/src/ThemeProvider/useThemeTokens.js +56 -5
  373. package/src/ThemeProvider/utils/styles.js +18 -5
  374. package/src/ThemeProvider/utils/theme-tokens.js +74 -5
  375. package/src/ToggleSwitch/ToggleSwitch.jsx +51 -53
  376. package/src/Tooltip/{Backdrop.web.jsx → Backdrop.jsx} +0 -0
  377. package/src/Tooltip/Tooltip.jsx +135 -131
  378. package/src/TooltipButton/TooltipButton.jsx +23 -27
  379. package/src/Typography/Typography.jsx +72 -59
  380. package/src/index.js +31 -3
  381. package/src/utils/a11y/index.js +2 -0
  382. package/src/utils/a11y/semantics.js +162 -0
  383. package/src/utils/a11y/textSize.js +30 -0
  384. package/src/utils/children.jsx +119 -0
  385. package/src/utils/index.js +6 -0
  386. package/src/utils/info/index.js +8 -0
  387. package/src/utils/info/platform/index.js +11 -0
  388. package/src/utils/info/platform/platform.android.js +1 -0
  389. package/src/utils/info/platform/platform.ios.js +1 -0
  390. package/src/utils/info/platform/platform.js +1 -0
  391. package/src/utils/info/platform/platform.native.js +4 -0
  392. package/src/utils/info/versions.js +6 -0
  393. package/src/utils/input.js +36 -25
  394. package/src/utils/pressability.js +96 -0
  395. package/src/utils/propTypes.js +291 -90
  396. package/src/utils/useCopy.js +30 -4
  397. package/src/utils/useHash.js +39 -0
  398. package/src/utils/useHash.native.js +6 -0
  399. package/stories/A11yText/A11yText.stories.jsx +6 -10
  400. package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +1 -1
  401. package/stories/Box/Box.stories.jsx +1 -1
  402. package/stories/Button/Button.stories.jsx +7 -2
  403. package/stories/Button/ButtonGroup.stories.jsx +1 -1
  404. package/stories/Button/ButtonLink.stories.jsx +1 -1
  405. package/stories/Card/Card.stories.jsx +1 -1
  406. package/stories/Checkbox/Checkbox.stories.jsx +94 -0
  407. package/stories/Divider/Divider.stories.jsx +1 -1
  408. package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +2 -2
  409. package/stories/Feedback/Feedback.stories.jsx +5 -6
  410. package/stories/FlexGrid/01 FlexGrid.stories.jsx +1 -1
  411. package/stories/FlexGrid/02 Row.stories.jsx +1 -1
  412. package/stories/FlexGrid/03 Col.stories.jsx +1 -1
  413. package/stories/Icon/Icon.stories.jsx +27 -7
  414. package/stories/IconButton/IconButton.stories.jsx +50 -0
  415. package/stories/InputLabel/InputLabel.stories.jsx +1 -1
  416. package/stories/Link/ChevronLink.stories.jsx +1 -1
  417. package/stories/Link/Link.stories.jsx +28 -18
  418. package/stories/Link/TextButton.stories.jsx +1 -1
  419. package/stories/List/List.stories.jsx +117 -0
  420. package/stories/Modal/Modal.stories.jsx +29 -0
  421. package/stories/Notification/Notification.stories.jsx +82 -0
  422. package/stories/Pagination/Pagination.stories.jsx +1 -1
  423. package/stories/Progress/Progress.stories.jsx +93 -0
  424. package/stories/Radio/Radio.stories.jsx +100 -0
  425. package/stories/RadioCard/RadioCard.stories.jsx +98 -0
  426. package/stories/Search/Search.stories.jsx +16 -0
  427. package/stories/Select/Select.stories.jsx +55 -0
  428. package/stories/SideNav/SideNav.stories.jsx +1 -1
  429. package/stories/SideNav/SideNavItem.stories.jsx +1 -1
  430. package/stories/SideNav/SideNavItemsGroup.stories.jsx +1 -1
  431. package/stories/Skeleton/Skeleton.stories.jsx +36 -0
  432. package/stories/Spacer/Spacer.stories.jsx +1 -1
  433. package/stories/StackView/StackView.stories.jsx +1 -1
  434. package/stories/StackView/StackWrap.stories.jsx +1 -1
  435. package/stories/StepTracker/StepTracker.stories.jsx +71 -0
  436. package/stories/Tabs/Tabs.stories.jsx +97 -0
  437. package/stories/Tags/Tags.stories.jsx +69 -0
  438. package/stories/TextInput/TextArea.stories.jsx +100 -0
  439. package/stories/TextInput/TextInput.stories.jsx +1 -1
  440. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +1 -1
  441. package/stories/Tooltip/Tooltip.stories.jsx +1 -1
  442. package/stories/TooltipButton/TooltipButton.stories.jsx +1 -1
  443. package/stories/Typography/Typography.stories.jsx +1 -1
  444. package/stories/{platform-supports.web.jsx → platform-supports.jsx} +1 -1
  445. package/stories/supports.jsx +38 -4
  446. package/__fixtures__/accessible.icon.svg +0 -6
  447. package/babel.config.json +0 -8
  448. package/docs/Contributing.stories.mdx +0 -9
  449. package/docs/Fonts.stories.mdx +0 -104
  450. package/docs/Icons.stories.mdx +0 -144
  451. package/docs/Introduction.stories.mdx +0 -9
  452. package/lib/ActivityIndicator/Spinner.web.js +0 -55
  453. package/lib/InputLabel/LabelContent.web.js +0 -17
  454. package/lib/config/svgr-icons-web.js +0 -9
  455. package/lib/config/svgr-icons.js +0 -52
  456. package/src/InputLabel/LabelContent.web.jsx +0 -13
  457. package/src/config/svgr-icons-web.js +0 -11
  458. package/src/config/svgr-icons.js +0 -46
@@ -1,124 +1,162 @@
1
- import React from 'react';
2
- import { Animated, Easing, StyleSheet, View } from 'react-native';
3
- import { DURATION, MIN_EMPTY_ANGLE, MIN_STROKE_ANGLE, BEZIER, propTypes } from './shared';
4
- const ea = MIN_EMPTY_ANGLE / 2;
5
- const sa = MIN_STROKE_ANGLE / 2;
1
+ "use strict";
6
2
 
7
- const Spinner = ({
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _Animated = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Animated"));
11
+
12
+ var _Easing = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Easing"));
13
+
14
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
15
+
16
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
17
+
18
+ var _shared = require("./shared");
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
+
28
+ const ea = _shared.MIN_EMPTY_ANGLE / 2;
29
+ const sa = _shared.MIN_STROKE_ANGLE / 2;
30
+ const Spinner = /*#__PURE__*/(0, _react.forwardRef)(({
8
31
  size,
9
32
  color,
10
33
  thickness,
11
34
  label
12
- }) => {
35
+ }, ref) => {
13
36
  const {
14
37
  current: timer
15
- } = React.useRef(new Animated.Value(0));
16
- React.useLayoutEffect(() => {
17
- const loop = Animated.timing(timer, {
18
- duration: DURATION,
19
- easing: Easing.linear,
38
+ } = _react.default.useRef(new _Animated.default.Value(0));
39
+
40
+ _react.default.useLayoutEffect(() => {
41
+ const loop = _Animated.default.timing(timer, {
42
+ duration: _shared.DURATION,
43
+ easing: _Easing.default.linear,
20
44
  // Animated.loop does not work if useNativeDriver is true on web
21
45
  useNativeDriver: true,
22
46
  toValue: 1,
23
47
  isInteraction: false
24
48
  });
25
- Animated.loop(loop).start();
49
+
50
+ _Animated.default.loop(loop).start();
26
51
  }, [timer]);
27
- const frames = 60 * DURATION / 1000;
28
- const easing = Easing.bezier(...BEZIER);
52
+
53
+ const frames = 60 * _shared.DURATION / 1000;
54
+
55
+ const easing = _Easing.default.bezier(..._shared.BEZIER);
56
+
29
57
  const containerStyle = {
30
58
  width: size,
31
59
  height: size / 2,
32
60
  overflow: 'hidden'
33
61
  }; // Credit to https://github.com/n4kz/react-native-indicators and https://github.com/callstack/react-native-paper for this
34
62
 
35
- return /*#__PURE__*/React.createElement(View, {
63
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
64
+ ref: ref,
36
65
  style: [styles.container],
37
66
  accessible: true,
38
67
  accessibilityLabel: label,
39
68
  accessibilityRole: "progressbar",
40
69
  accessibilityState: {
41
70
  busy: true
42
- }
43
- }, /*#__PURE__*/React.createElement(Animated.View, {
44
- style: [{
45
- width: size,
46
- height: size
47
- }],
48
- collapsable: false
49
- }, [0, 1].map(index => {
50
- const inputRange = Array.from(new Array(frames), (_, frameIndex) => frameIndex / (frames - 1));
51
- const outputRange = Array.from(new Array(frames), (_, frameIndex) => {
52
- let progress = 2 * frameIndex / (frames - 1);
53
- const rotation = index ? +(360 - sa) : -(180 - sa);
54
-
55
- if (progress > 1.0) {
56
- progress = 2.0 - progress;
57
- }
58
-
59
- const direction = index ? -1 : +1;
60
- return `${direction * (180 - (sa + ea)) * easing(progress) + rotation}deg`;
61
- });
62
- const layerStyle = {
63
- width: size,
64
- height: size,
65
- transform: [{
66
- rotate: timer.interpolate({
67
- inputRange: [0, 1],
68
- outputRange: [`${0 + ea + sa}deg`, `${2 * 360 + ea + sa}deg`]
69
- })
70
- }]
71
- };
72
- const viewportStyle = {
73
- width: size,
74
- height: size,
75
- transform: [{
76
- translateY: index ? -size / 2 : 0
77
- }, {
78
- rotate: timer.interpolate({
79
- inputRange,
80
- outputRange
81
- })
82
- }]
83
- };
84
- const offsetStyle = index ? {
85
- top: size / 2
86
- } : null;
87
- const lineStyle = {
88
- width: size,
89
- height: size,
90
- borderColor: color,
91
- borderWidth: thickness,
92
- borderRadius: size / 2
93
- };
94
- return /*#__PURE__*/React.createElement(Animated.View, {
95
- key: index,
96
- style: [styles.layer]
97
- }, /*#__PURE__*/React.createElement(Animated.View, {
98
- style: layerStyle
99
- }, /*#__PURE__*/React.createElement(Animated.View, {
100
- style: [containerStyle, offsetStyle],
101
- collapsable: false
102
- }, /*#__PURE__*/React.createElement(Animated.View, {
103
- style: viewportStyle
104
- }, /*#__PURE__*/React.createElement(Animated.View, {
105
- style: containerStyle,
106
- collapsable: false
107
- }, /*#__PURE__*/React.createElement(Animated.View, {
108
- style: lineStyle
109
- }))))));
110
- })));
111
- };
112
-
113
- Spinner.propTypes = propTypes;
114
- const styles = StyleSheet.create({
71
+ },
72
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Animated.default.View, {
73
+ style: [{
74
+ width: size,
75
+ height: size
76
+ }],
77
+ collapsable: false,
78
+ children: [0, 1].map(index => {
79
+ const inputRange = Array.from(new Array(frames), (_, frameIndex) => frameIndex / (frames - 1));
80
+ const outputRange = Array.from(new Array(frames), (_, frameIndex) => {
81
+ let progress = 2 * frameIndex / (frames - 1);
82
+ const rotation = index ? +(360 - sa) : -(180 - sa);
83
+
84
+ if (progress > 1.0) {
85
+ progress = 2.0 - progress;
86
+ }
87
+
88
+ const direction = index ? -1 : +1;
89
+ return `${direction * (180 - (sa + ea)) * easing(progress) + rotation}deg`;
90
+ });
91
+ const layerStyle = {
92
+ width: size,
93
+ height: size,
94
+ transform: [{
95
+ rotate: timer.interpolate({
96
+ inputRange: [0, 1],
97
+ outputRange: [`${0 + ea + sa}deg`, `${2 * 360 + ea + sa}deg`]
98
+ })
99
+ }]
100
+ };
101
+ const viewportStyle = {
102
+ width: size,
103
+ height: size,
104
+ transform: [{
105
+ translateY: index ? -size / 2 : 0
106
+ }, {
107
+ rotate: timer.interpolate({
108
+ inputRange,
109
+ outputRange
110
+ })
111
+ }]
112
+ };
113
+ const offsetStyle = index ? {
114
+ top: size / 2
115
+ } : null;
116
+ const lineStyle = {
117
+ width: size,
118
+ height: size,
119
+ borderColor: color,
120
+ borderWidth: thickness,
121
+ borderRadius: size / 2
122
+ };
123
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Animated.default.View, {
124
+ style: [styles.layer],
125
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Animated.default.View, {
126
+ style: layerStyle,
127
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Animated.default.View, {
128
+ style: [containerStyle, offsetStyle],
129
+ collapsable: false,
130
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Animated.default.View, {
131
+ style: viewportStyle,
132
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Animated.default.View, {
133
+ style: containerStyle,
134
+ collapsable: false,
135
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Animated.default.View, {
136
+ style: lineStyle
137
+ })
138
+ })
139
+ })
140
+ })
141
+ })
142
+ }, index);
143
+ })
144
+ })
145
+ });
146
+ });
147
+ Spinner.displayName = 'Spinner';
148
+ Spinner.propTypes = _shared.propTypes;
149
+
150
+ const styles = _StyleSheet.default.create({
115
151
  container: {
116
152
  flexGrow: 0,
117
153
  flexShrink: 0
118
154
  },
119
- layer: { ...StyleSheet.absoluteFillObject,
155
+ layer: { ..._StyleSheet.default.absoluteFillObject,
120
156
  justifyContent: 'center',
121
157
  alignItems: 'center'
122
158
  }
123
159
  });
124
- export default Spinner;
160
+
161
+ var _default = Spinner;
162
+ exports.default = _default;
@@ -1,13 +1,28 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { useThemeTokens } from '../ThemeProvider';
4
- import { getTokensPropType, variantProp } from '../utils/propTypes';
5
- import Spinner from './Spinner';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _ThemeProvider = require("../ThemeProvider");
13
+
14
+ var _propTypes2 = require("../utils/propTypes");
15
+
16
+ var _Spinner = _interopRequireDefault(require("./Spinner"));
17
+
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
6
22
  /**
7
23
  * `ActivityIndicator` renders a visual loading state.
8
24
  * It does not handle positioning or layout of that visual loader.
9
25
  */
10
-
11
26
  const ActivityIndicator = ({
12
27
  variant,
13
28
  tokens,
@@ -17,8 +32,8 @@ const ActivityIndicator = ({
17
32
  size,
18
33
  color,
19
34
  thickness
20
- } = useThemeTokens('ActivityIndicator', tokens, variant);
21
- return /*#__PURE__*/React.createElement(Spinner, {
35
+ } = (0, _ThemeProvider.useThemeTokens)('ActivityIndicator', tokens, variant);
36
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.default, {
22
37
  size: size,
23
38
  color: color,
24
39
  thickness: thickness,
@@ -27,12 +42,13 @@ const ActivityIndicator = ({
27
42
  };
28
43
 
29
44
  ActivityIndicator.propTypes = {
30
- variant: variantProp.propType,
31
- tokens: getTokensPropType('ActivityIndicator'),
45
+ variant: _propTypes2.variantProp.propType,
46
+ tokens: (0, _propTypes2.getTokensPropType)('ActivityIndicator'),
32
47
 
33
48
  /**
34
49
  * A visually hidden accessible label describing the action taking place
35
50
  */
36
- label: PropTypes.string.isRequired
51
+ label: _propTypes.default.string.isRequired
37
52
  };
38
- export default ActivityIndicator;
53
+ var _default = ActivityIndicator;
54
+ exports.default = _default;
@@ -1,12 +1,27 @@
1
- import PropTypes from 'prop-types'; // these could be specified by the theme
2
-
3
- export const DURATION = 1800;
4
- export const MIN_EMPTY_ANGLE = 60;
5
- export const MIN_STROKE_ANGLE = 30;
6
- export const BEZIER = [0.42, 0.0, 0.58, 1.0];
7
- export const propTypes = {
8
- color: PropTypes.string.isRequired,
9
- label: PropTypes.string.isRequired,
10
- size: PropTypes.number.isRequired,
11
- thickness: PropTypes.number.isRequired
12
- };
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.propTypes = exports.BEZIER = exports.MIN_STROKE_ANGLE = exports.MIN_EMPTY_ANGLE = exports.DURATION = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ // these could be specified by the theme
13
+ const DURATION = 1800;
14
+ exports.DURATION = DURATION;
15
+ const MIN_EMPTY_ANGLE = 60;
16
+ exports.MIN_EMPTY_ANGLE = MIN_EMPTY_ANGLE;
17
+ const MIN_STROKE_ANGLE = 30;
18
+ exports.MIN_STROKE_ANGLE = MIN_STROKE_ANGLE;
19
+ const BEZIER = [0.42, 0.0, 0.58, 1.0];
20
+ exports.BEZIER = BEZIER;
21
+ const propTypes = {
22
+ color: _propTypes.default.string.isRequired,
23
+ label: _propTypes.default.string.isRequired,
24
+ size: _propTypes.default.number.isRequired,
25
+ thickness: _propTypes.default.number.isRequired
26
+ };
27
+ exports.propTypes = propTypes;
@@ -1,18 +1,41 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import A11yInfoProvider from '../A11yInfoProvider';
4
- import ViewportProvider from '../ViewportProvider';
5
- import ThemeProvider from '../ThemeProvider';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _A11yInfoProvider = _interopRequireDefault(require("../A11yInfoProvider"));
13
+
14
+ var _ViewportProvider = _interopRequireDefault(require("../ViewportProvider"));
15
+
16
+ var _ThemeProvider = _interopRequireDefault(require("../ThemeProvider"));
17
+
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+
20
+ var _ThemeProvider$propTy;
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
23
 
7
24
  const BaseProvider = ({
8
25
  defaultTheme,
9
26
  children
10
- }) => /*#__PURE__*/React.createElement(A11yInfoProvider, null, /*#__PURE__*/React.createElement(ViewportProvider, null, /*#__PURE__*/React.createElement(ThemeProvider, {
11
- defaultTheme: defaultTheme
12
- }, children)));
27
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_A11yInfoProvider.default, {
28
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ViewportProvider.default, {
29
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ThemeProvider.default, {
30
+ defaultTheme: defaultTheme,
31
+ children: children
32
+ })
33
+ })
34
+ });
13
35
 
14
36
  BaseProvider.propTypes = {
15
- defaultTheme: ThemeProvider.propTypes?.defaultTheme,
16
- children: PropTypes.node.isRequired
37
+ defaultTheme: (_ThemeProvider$propTy = _ThemeProvider.default.propTypes) === null || _ThemeProvider$propTy === void 0 ? void 0 : _ThemeProvider$propTy.defaultTheme,
38
+ children: _propTypes.default.node.isRequired
17
39
  };
18
- export default BaseProvider;
40
+ var _default = BaseProvider;
41
+ exports.default = _default;
package/lib/Box/Box.js CHANGED
@@ -1,15 +1,36 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { View, ScrollView } from 'react-native';
4
- import { useThemeTokens } from '../ThemeProvider';
5
- import { a11yProps, spacingProps, variantProp, getTokensPropType, useSpacingScale } 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 _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
13
+
14
+ var _ScrollView = _interopRequireDefault(require("react-native-web/dist/cjs/exports/ScrollView"));
15
+
16
+ var _ThemeProvider = require("../ThemeProvider");
17
+
18
+ var _utils = require("../utils");
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
+
6
28
  /**
7
29
  * @typedef {import('../utils/propTypes.js').SpacingValue} SpacingValue
8
30
  * @typedef {import('../utils/propTypes.js').SpacingIndex} SpacingIndex
9
31
  * @typedef {import('../utils/propTypes.js').SpacingObject} SpacingObject
10
32
  * @typedef {import('../utils/propTypes.js').SpacingOptions} SpacingOptions
11
33
  */
12
-
13
34
  const selectBoxStyles = tokens => {
14
35
  const styles = {
15
36
  backgroundColor: tokens.backgroundColor
@@ -90,7 +111,7 @@ const selectBoxStyles = tokens => {
90
111
  */
91
112
 
92
113
 
93
- const Box = ({
114
+ const Box = /*#__PURE__*/(0, _react.forwardRef)(({
94
115
  space,
95
116
  horizontal = space,
96
117
  vertical = space,
@@ -98,49 +119,145 @@ const Box = ({
98
119
  bottom = vertical,
99
120
  left = horizontal,
100
121
  right = horizontal,
122
+ flex,
101
123
  children,
102
124
  variant,
103
125
  tokens,
104
126
  scroll,
127
+ tag,
128
+ accessibilityRole,
105
129
  testID,
130
+ dataSet,
106
131
  ...rest
107
- }) => {
108
- const a11y = a11yProps.select(rest);
109
- const themeTokens = useThemeTokens('Box', tokens, variant);
132
+ }, ref) => {
133
+ const props = { ...(0, _utils.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
134
+ ..._utils.a11yProps.select(rest),
135
+ ..._utils.viewProps.select(rest)
136
+ };
137
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('Box', tokens, variant);
110
138
  const styles = {
111
- paddingLeft: useSpacingScale(left),
112
- paddingRight: useSpacingScale(right),
113
- paddingTop: useSpacingScale(top),
114
- paddingBottom: useSpacingScale(bottom),
139
+ flex,
140
+ paddingLeft: (0, _utils.useSpacingScale)(left),
141
+ paddingRight: (0, _utils.useSpacingScale)(right),
142
+ paddingTop: (0, _utils.useSpacingScale)(top),
143
+ paddingBottom: (0, _utils.useSpacingScale)(bottom),
115
144
  ...selectBoxStyles(themeTokens)
116
145
  };
117
146
 
118
147
  if (scroll) {
119
148
  const scrollProps = typeof scroll === 'object' ? scroll : {};
120
149
  scrollProps.contentContainerStyle = [styles, scrollProps.contentContainerStyle];
121
- return /*#__PURE__*/React.createElement(ScrollView, Object.assign({}, scrollProps, a11y, {
122
- testID: testID
123
- }), children);
150
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScrollView.default, { ...scrollProps,
151
+ ...props,
152
+ testID: testID,
153
+ dataSet: dataSet,
154
+ ref: ref,
155
+ children: children
156
+ });
124
157
  }
125
158
 
126
- return /*#__PURE__*/React.createElement(View, Object.assign({}, a11y, {
159
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, { ...props,
127
160
  style: styles,
128
- testID: testID
129
- }), children);
130
- };
161
+ testID: testID,
162
+ dataSet: dataSet,
163
+ ref: ref,
164
+ children: children
165
+ });
166
+ });
167
+ Box.displayName = 'Box';
168
+ Box.propTypes = { ..._utils.a11yProps.propTypes,
169
+ variant: _utils.variantProp.propType,
170
+ tokens: (0, _utils.getTokensPropType)('Box'),
171
+
172
+ /**
173
+ * Sets default padding on all sides of the box using the theme's spacing scale.
174
+ *
175
+ * @see {@link SpacingValue}
176
+ */
177
+ space: _utils.spacingProps.types.spacingValue,
178
+
179
+ /**
180
+ * Sets top and bottom padding using the theme's spacing scale.
181
+ *
182
+ * @see {@link SpacingValue}
183
+ */
184
+ vertical: _utils.spacingProps.types.spacingValue,
185
+
186
+ /**
187
+ * Sets left and right padding using the theme's spacing scale.
188
+ *
189
+ * @see {@link SpacingValue}
190
+ */
191
+ horizontal: _utils.spacingProps.types.spacingValue,
192
+
193
+ /**
194
+ * Sets bottom padding using the theme's spacing scale.
195
+ *
196
+ * @see {@link SpacingValue}
197
+ */
198
+ bottom: _utils.spacingProps.types.spacingValue,
199
+
200
+ /**
201
+ * Sets left padding using the theme's spacing scale.
202
+ *
203
+ * @see {@link SpacingValue}
204
+ */
205
+ left: _utils.spacingProps.types.spacingValue,
206
+
207
+ /**
208
+ * Sets right padding using the theme's spacing scale.
209
+ *
210
+ * @see {@link SpacingValue}
211
+ */
212
+ right: _utils.spacingProps.types.spacingValue,
213
+
214
+ /**
215
+ * Sets top padding using the theme's spacing scale.
216
+ *
217
+ * @see {@link SpacingValue}
218
+ */
219
+ top: _utils.spacingProps.types.spacingValue,
220
+
221
+ /**
222
+ * Sets the `flex` style, which controls `flexGrow`, `flexShrink` and `flexBasis` styles.
223
+ *
224
+ * Set as 1 for the box to stretch and grow to fit in the available space, or another number to share
225
+ * space disproportionately with siblings. See https://reactnative.dev/docs/flexbox#flex for details.
226
+ *
227
+ * With the default `0`, the box takes its minimum width from its content.
228
+ */
229
+ flex: _propTypes.default.number,
230
+
231
+ /**
232
+ * Renders a scrollable ScrollView instead of an unscrollable View.
233
+ *
234
+ * May take an object of ScrollView props which are passed to the rendered ScrollView.
235
+ */
236
+ scroll: _propTypes.default.oneOfType([_propTypes.default.bool, _ScrollView.default.propTypes ? _propTypes.default.shape(_ScrollView.default.propTypes) : _propTypes.default.object]),
237
+
238
+ /**
239
+ * Optional semantic HTML tag, to apply to the container on web. Does not change styling.
240
+ *
241
+ * In native apps, if a header tag is provided ("h1", "h2" etc) and accessibilityRole prop
242
+ * is not defined, the accessibilityRole will default to "heading".
243
+ */
244
+ tag: _propTypes.default.oneOf(_utils.layoutTags),
245
+
246
+ /**
247
+ * Use in tests if the box itself needs to be targetted and no other way of selecting the
248
+ * box is available (e.g. it cannot be targetted using an appropriate `accessibilityRole`).
249
+ */
250
+ testID: _propTypes.default.string,
251
+
252
+ /**
253
+ * @ignore
254
+ */
255
+ dataSet: _propTypes.default.object,
131
256
 
132
- Box.propTypes = {
133
- space: spacingProps.types.spacingValue,
134
- vertical: spacingProps.types.spacingValue,
135
- horizontal: spacingProps.types.spacingValue,
136
- bottom: spacingProps.types.spacingValue,
137
- left: spacingProps.types.spacingValue,
138
- right: spacingProps.types.spacingValue,
139
- top: spacingProps.types.spacingValue,
140
- scroll: PropTypes.oneOfType([PropTypes.bool, ScrollView.propTypes ? PropTypes.shape(ScrollView.propTypes) : PropTypes.object]),
141
- variant: variantProp.propType,
142
- tokens: getTokensPropType('Box'),
143
- testID: PropTypes.string,
144
- children: PropTypes.node.isRequired
257
+ /**
258
+ * Box accepts any content as children.
259
+ */
260
+ children: _propTypes.default.node.isRequired
145
261
  };
146
- export default Box;
262
+ var _default = Box;
263
+ exports.default = _default;
package/lib/Box/index.js CHANGED
@@ -1,2 +1,13 @@
1
- import Box from './Box';
2
- export default Box;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _Box = _interopRequireDefault(require("./Box"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _Box.default;
13
+ exports.default = _default;