@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
@@ -0,0 +1,216 @@
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 _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
11
+
12
+ var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
13
+
14
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
15
+
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+
18
+ var _ThemeProvider = require("../ThemeProvider");
19
+
20
+ var _utils = require("../utils");
21
+
22
+ var _ButtonBase = _interopRequireDefault(require("../Button/ButtonBase"));
23
+
24
+ var _useCopy = _interopRequireDefault(require("../utils/useCopy"));
25
+
26
+ var _dictionary = _interopRequireDefault(require("./dictionary"));
27
+
28
+ var _jsxRuntime = require("react/jsx-runtime");
29
+
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+
32
+ 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); }
33
+
34
+ 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; }
35
+
36
+ const selectContainerStyles = tokens => ({ ...tokens
37
+ });
38
+
39
+ const selectTextStyles = tokens => (0, _ThemeProvider.applyTextStyles)((0, _utils.selectTokens)('Typography', tokens));
40
+
41
+ const selectIconProps = ({
42
+ iconSize,
43
+ iconColor
44
+ }) => ({
45
+ size: iconSize,
46
+ color: iconColor
47
+ });
48
+
49
+ const selectIconContainerStyles = ({
50
+ iconGap
51
+ }) => ({
52
+ paddingRight: iconGap
53
+ });
54
+
55
+ const selectDismissIconProps = ({
56
+ dismissIconSize,
57
+ dismissIconColor
58
+ }) => ({
59
+ size: dismissIconSize,
60
+ color: dismissIconColor
61
+ });
62
+
63
+ const selectDismissButtonContainerStyles = ({
64
+ dismissButtonGap
65
+ }) => ({
66
+ paddingLeft: dismissButtonGap
67
+ });
68
+ /**
69
+ * A banner that highlights important messages:
70
+ * - Status message to show there is an error or outage of services
71
+ * - Confirmation message in response to user action
72
+ * - Account information letting the user know they have almost used all their data
73
+ *
74
+ * ## Usage criteria
75
+ * - Use simple text content only, such as bold test or links. Don’t use other complex components or paragraphs
76
+ * - Show notifications before the content that the message is related to, otherwise show at the top of the main content
77
+ * - Show system notifications at the top of the page, below the navigation, and expands the full-width of the viewport
78
+ * - When showing multiple notifications, show them in order of importance from top to bottom
79
+ * - Use variants to visually show the type of message contained within the Notification.
80
+ * - The icon and colour will indicate meaning and importance
81
+ *
82
+ * ### Variants
83
+ * - Use `variant.style` to set the visual style of the notification
84
+ * - Use `dismissible` prop to enable dismissible functionality
85
+ * - Use `system` prop to set the visual style of the notification and denote an announcement from the system or application
86
+ *
87
+ * ### When to use the system prop?
88
+ * - Use `system` to show system-based messages coming from the application
89
+ * - Don’t use `system` when the message is in response to user action
90
+ *
91
+ * ## Variants
92
+ *
93
+ * #### Success
94
+ * Use the success variant to provide feedback of a successful operation. The message will include an icon to indicate meaning and importance.
95
+ *
96
+ * #### Warning
97
+ * Use the warning variant to provide feedback of a warning; users would still be able to proceed forward.
98
+ * The message will include an icon to indicate meaning and importance.
99
+ *
100
+ * #### Error
101
+ * Use the error variant to provide feedback of a failed operation. The message will include an icon to indicate meaning and importance.
102
+ *
103
+ * #### Dismissible
104
+ * Dismissible notifications should only be used for default or success notifications where there is no action needed from the user.
105
+ * If the information is passive then it should be dismissible as indicated by an interactive close button on the far right.
106
+ * If the notification requires an action then make the option(s) clear with a `ChevronLink` or `Link`.
107
+ *
108
+ * Use the `dismissible` prop to allow users to dismiss the Notification at any time. Once dismissed, the Notification is removed from the DOM.
109
+ *
110
+ * Please note:
111
+ *
112
+ * - Default and Success variants are dismissible
113
+ * - Error and Warning variants are not dismissible
114
+ *
115
+ * #### System message
116
+ * Use full-width `Notifications` to show system-based messages coming from the application, not in response to user action.
117
+ * Show system notifications at the top of the page, below the navigation, and expands the full-width of the viewport
118
+ */
119
+
120
+
121
+ const Notification = /*#__PURE__*/(0, _react.forwardRef)(({
122
+ children,
123
+ system,
124
+ dismissible,
125
+ copy = 'en',
126
+ tokens,
127
+ variant
128
+ }, ref) => {
129
+ const [isDismissed, setIsDismissed] = (0, _react.useState)(false);
130
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('Notification', tokens, variant, {
131
+ system
132
+ });
133
+ const getCopy = (0, _useCopy.default)({
134
+ dictionary: _dictionary.default,
135
+ copy
136
+ });
137
+
138
+ if (isDismissed) {
139
+ return null;
140
+ }
141
+
142
+ const textStyles = selectTextStyles(themeTokens);
143
+ const content = typeof children === 'string' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
144
+ style: textStyles,
145
+ children: children
146
+ }) : children;
147
+ const {
148
+ icon: IconComponent,
149
+ dismissIcon: DismissIconComponent
150
+ } = themeTokens;
151
+
152
+ const onDismissPress = () => setIsDismissed(true); // TODO: replace the dismiss button with IconButton when implemented (https://github.com/telus/universal-design-system/issues/281)
153
+
154
+
155
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
156
+ ref: ref,
157
+ style: [staticStyles.container, selectContainerStyles(themeTokens)],
158
+ children: [IconComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
159
+ style: selectIconContainerStyles(themeTokens),
160
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, { ...selectIconProps(themeTokens)
161
+ })
162
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
163
+ style: staticStyles.contentContainer,
164
+ children: content && typeof content === 'function' ? content({
165
+ textStyles,
166
+ variant
167
+ }) : content
168
+ }), dismissible && DismissIconComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
169
+ style: selectDismissButtonContainerStyles(themeTokens),
170
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
171
+ onPress: onDismissPress,
172
+ accessibilityRole: "button",
173
+ accessibilityLabel: getCopy('dismiss'),
174
+ children: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(DismissIconComponent, { ...selectDismissIconProps(themeTokens)
175
+ })
176
+ })
177
+ })]
178
+ });
179
+ });
180
+ Notification.displayName = 'Notification';
181
+ Notification.propTypes = {
182
+ /**
183
+ * Content of the `Notification`.
184
+ */
185
+ children: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node, _propTypes.default.func]),
186
+
187
+ /**
188
+ * Use `system` prop to set the visual style of the notification and denote an announcement from the system or application
189
+ */
190
+ system: _propTypes.default.bool,
191
+
192
+ /**
193
+ * Use the `dismissible` prop to allow users to dismiss the Notification at any time.
194
+ */
195
+ dismissible: _propTypes.default.bool,
196
+
197
+ /**
198
+ * Select english or french copy for the accessible label of the dismiss button.
199
+ */
200
+ copy: _propTypes.default.oneOfType([_propTypes.default.oneOf(['en', 'fr']), _propTypes.default.shape({
201
+ dismiss: _propTypes.default.string
202
+ })]),
203
+ tokens: (0, _utils.getTokensPropType)('Notification'),
204
+ variant: _utils.variantProp.propType
205
+ };
206
+ var _default = Notification;
207
+ exports.default = _default;
208
+
209
+ const staticStyles = _StyleSheet.default.create({
210
+ container: {
211
+ flexDirection: 'row'
212
+ },
213
+ contentContainer: {
214
+ flex: 1
215
+ }
216
+ });
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = {
8
+ en: {
9
+ dismiss: 'Close'
10
+ },
11
+ fr: {
12
+ dismiss: 'Fermer'
13
+ }
14
+ };
15
+ exports.default = _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _Notification = _interopRequireDefault(require("./Notification"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _Notification.default;
13
+ exports.default = _default;
@@ -1,29 +1,33 @@
1
- import React from 'react';
2
- import { Text } from 'react-native';
3
- import PropTypes from 'prop-types';
4
- import ButtonBase from '../Button/ButtonBase';
5
- import { applyTextStyles, useThemeTokensCallback } from '../ThemeProvider';
6
- import { a11yProps, copyPropTypes, getTokensPropType, hrefAttrsProp, linkProps, selectTokens, variantProp } from '../utils';
7
- import useCopy from '../utils/useCopy';
8
- import dictionary from './dictionary';
9
-
10
- const selectTextStyles = ({
11
- color,
12
- fontName,
13
- fontSize,
14
- fontWeight,
15
- lineHeight,
16
- textLine
17
- }) => applyTextStyles({
18
- color,
19
- fontName,
20
- fontSize,
21
- fontWeight,
22
- lineHeight,
23
- textDecorationLine: textLine
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
24
5
  });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _ButtonBase = _interopRequireDefault(require("../Button/ButtonBase"));
13
+
14
+ var _ThemeProvider = require("../ThemeProvider");
15
+
16
+ var _utils = require("../utils");
17
+
18
+ var _useCopy = _interopRequireDefault(require("../utils/useCopy"));
19
+
20
+ var _dictionary = _interopRequireDefault(require("./dictionary"));
21
+
22
+ var _jsxRuntime = require("react/jsx-runtime");
25
23
 
26
- function PageButton({
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ const PageButton = /*#__PURE__*/(0, _react.forwardRef)(({
27
31
  label,
28
32
  onPress,
29
33
  href,
@@ -32,20 +36,18 @@ function PageButton({
32
36
  variant,
33
37
  tokens,
34
38
  ...props
35
- }) {
36
- const getTokens = useThemeTokensCallback('PaginationPageButton', tokens, variant);
37
- const getCopy = useCopy({
38
- dictionary,
39
+ }, ref) => {
40
+ const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('PaginationPageButton', tokens, variant);
41
+ const getCopy = (0, _useCopy.default)({
42
+ dictionary: _dictionary.default,
39
43
  copy
40
44
  });
41
45
 
42
- const getButtonTokens = buttonState => selectTokens('Button', getTokens(buttonState));
43
-
44
- const getTextStyles = buttonState => selectTextStyles(getTokens(buttonState));
46
+ const getButtonTokens = buttonState => (0, _utils.selectTokens)('Button', getTokens(buttonState));
45
47
 
46
48
  const activeProps = isActive ? {
47
49
  selected: true,
48
- ...a11yProps.nonFocusableProps,
50
+ ..._utils.a11yProps.nonFocusableProps,
49
51
  // a brute fix for the focus state being stuck on an active item since it becomes non-focusable
50
52
  // (see https://github.com/telus/universal-design-system/pull/577#issuecomment-931344107)
51
53
  key: 'active-item'
@@ -53,10 +55,12 @@ function PageButton({
53
55
  const accessibilityRole = href !== undefined ? 'link' : 'button';
54
56
  const activeLabel = isActive ? ` ${getCopy('currentLabel')}` : '';
55
57
  const accessibilityLabel = `${getCopy('goToLabel')} ${label}${activeLabel}`;
58
+
56
59
  const {
57
60
  hrefAttrs,
58
61
  rest
59
- } = hrefAttrsProp.bundle(props);
62
+ } = _utils.hrefAttrsProp.bundle(props);
63
+
60
64
  const buttonProps = {
61
65
  accessibilityRole,
62
66
  accessibilityLabel,
@@ -65,21 +69,27 @@ function PageButton({
65
69
  hrefAttrs,
66
70
  ...rest
67
71
  };
68
- return /*#__PURE__*/React.createElement(ButtonBase, Object.assign({}, buttonProps, {
69
- tokens: getButtonTokens
70
- }, activeProps), buttonState => {
71
- return /*#__PURE__*/React.createElement(Text, {
72
- style: getTextStyles(buttonState)
73
- }, label);
72
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
73
+ ref: ref,
74
+ ...buttonProps,
75
+ tokens: getButtonTokens,
76
+ ...activeProps,
77
+ children: label
74
78
  });
75
- }
76
-
79
+ });
80
+ PageButton.displayName = 'PageButton';
77
81
  PageButton.propTypes = {
78
- label: PropTypes.string,
79
- isActive: PropTypes.bool,
80
- copy: copyPropTypes,
81
- variant: variantProp.propType,
82
- tokens: getTokensPropType('PaginationPageButton'),
83
- ...linkProps.types
82
+ // Spreading any props into a secondary component accessed like Pagination.PageButton
83
+ // crashes a Docusaurus props table, but only in production, not in development
84
+ onPress: _propTypes.default.func,
85
+ href: _propTypes.default.string,
86
+ // If the above is fixed, the above can be replaced with this which includes full a11y etc:
87
+ // ...linkProps.types,
88
+ label: _propTypes.default.string,
89
+ isActive: _propTypes.default.bool,
90
+ copy: _utils.copyPropTypes,
91
+ variant: _utils.variantProp.propType,
92
+ tokens: (0, _utils.getTokensPropType)('PaginationPageButton')
84
93
  };
85
- export default PageButton;
94
+ var _default = PageButton;
95
+ exports.default = _default;
@@ -1,12 +1,39 @@
1
- import React from 'react';
2
- import { View, Text, StyleSheet } from 'react-native';
3
- import { componentPropType, copyPropTypes, getTokensPropType, variantProp } from '../utils';
4
- import { applyTextStyles, useThemeTokens } from '../ThemeProvider';
5
- import { useViewport } from '../ViewportProvider';
6
- import Box from '../Box';
7
- import usePagination from './usePagination';
8
- import PageButton from './PageButton';
9
- import SideButton from './SideButton';
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 _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
11
+
12
+ var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
13
+
14
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
15
+
16
+ var _utils = require("../utils");
17
+
18
+ var _ThemeProvider = require("../ThemeProvider");
19
+
20
+ var _ViewportProvider = require("../ViewportProvider");
21
+
22
+ var _Box = _interopRequireDefault(require("../Box"));
23
+
24
+ var _usePagination = _interopRequireDefault(require("./usePagination"));
25
+
26
+ var _PageButton = _interopRequireDefault(require("./PageButton"));
27
+
28
+ var _SideButton = _interopRequireDefault(require("./SideButton"));
29
+
30
+ var _jsxRuntime = require("react/jsx-runtime");
31
+
32
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
+
34
+ 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); }
35
+
36
+ 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; }
10
37
 
11
38
  const selectTextStyles = ({
12
39
  color,
@@ -14,7 +41,7 @@ const selectTextStyles = ({
14
41
  fontSize,
15
42
  fontWeight,
16
43
  lineHeight
17
- }) => applyTextStyles({
44
+ }) => (0, _ThemeProvider.applyTextStyles)({
18
45
  color,
19
46
  fontName,
20
47
  fontSize,
@@ -22,23 +49,25 @@ const selectTextStyles = ({
22
49
  lineHeight
23
50
  });
24
51
 
25
- function Pagination({
52
+ const Pagination = /*#__PURE__*/(0, _react.forwardRef)(({
26
53
  children,
27
54
  copy = 'en',
28
55
  variant,
29
56
  tokens,
30
57
  sideButtonVariant,
31
58
  sideButtonTokens
32
- }) {
33
- const viewport = useViewport();
59
+ }, ref) => {
60
+ const viewport = (0, _ViewportProvider.useViewport)();
34
61
  const {
35
62
  truncateAbove,
36
63
  gap,
37
64
  ...themeTokens
38
- } = useThemeTokens('Pagination', tokens, variant, {
65
+ } = (0, _ThemeProvider.useThemeTokens)('Pagination', tokens, variant, {
39
66
  viewport
40
67
  });
41
- const items = React.Children.toArray(children);
68
+
69
+ const items = _react.default.Children.toArray(children);
70
+
42
71
  const {
43
72
  isItemActive,
44
73
  getItemProps,
@@ -48,7 +77,7 @@ function Pagination({
48
77
  previousItemProps,
49
78
  shouldRenderButton,
50
79
  shouldRenderEllipsis
51
- } = usePagination({
80
+ } = (0, _usePagination.default)({
52
81
  items,
53
82
  truncateAbove
54
83
  });
@@ -60,59 +89,65 @@ function Pagination({
60
89
  // concatenate all items to easily wrap them in identical spacing components
61
90
 
62
91
 
63
- const buttons = [showPrevious && /*#__PURE__*/React.createElement(SideButton, Object.assign({}, previousItemProps, {
92
+ const buttons = [showPrevious && /*#__PURE__*/(0, _jsxRuntime.jsx)(_SideButton.default, { ...previousItemProps,
64
93
  direction: "previous",
65
94
  copy: copy,
66
95
  variant: sideButtonVariant,
67
96
  tokens: sideButtonTokens
68
- })), ...items.map((child, itemIndex) => {
97
+ }), ...items.map((child, itemIndex) => {
69
98
  const buttonLabel = `${itemIndex + 1}`;
70
99
  const itemProps = getItemProps(itemIndex);
71
100
 
72
101
  if (shouldRenderButton(itemIndex)) {
73
- return /*#__PURE__*/React.createElement(PageButton, Object.assign({}, itemProps, {
102
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PageButton.default, { ...itemProps,
74
103
  label: buttonLabel,
75
104
  copy: copy,
76
105
  isActive: isItemActive(itemIndex)
77
- }));
106
+ });
78
107
  }
79
108
 
80
109
  if (shouldRenderEllipsis(itemIndex)) {
81
- return /*#__PURE__*/React.createElement(Text, {
82
- style: ellipsisTextStyles
83
- }, "...");
110
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
111
+ style: ellipsisTextStyles,
112
+ children: "..."
113
+ });
84
114
  }
85
115
 
86
116
  return null;
87
- }), showNext && /*#__PURE__*/React.createElement(SideButton, Object.assign({}, nextItemProps, {
117
+ }), showNext && /*#__PURE__*/(0, _jsxRuntime.jsx)(_SideButton.default, { ...nextItemProps,
88
118
  direction: "next",
89
119
  copy: copy,
90
120
  variant: sideButtonVariant,
91
121
  tokens: sideButtonTokens
92
- }))];
93
- return /*#__PURE__*/React.createElement(View, {
94
- style: staticStyles.container
95
- }, buttons // keep the keys in-line with the page numbers regardless of which buttons are actually rendered
96
- .map((element, index) => [element, `page-${index + 1}`]).filter(([element]) => element !== null).map(([element, key]) => /*#__PURE__*/React.createElement(Box, {
97
- right: gap,
98
- key: key
99
- }, element)));
100
- }
101
-
102
- Pagination.PageButton = PageButton;
122
+ })];
123
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
124
+ style: staticStyles.container,
125
+ ref: ref,
126
+ children: buttons // keep the keys in-line with the page numbers regardless of which buttons are actually rendered
127
+ .map((element, index) => [element, `page-${index + 1}`]).filter(([element]) => element !== null).map(([element, key]) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
128
+ right: gap,
129
+ children: element
130
+ }, key))
131
+ });
132
+ });
133
+ _PageButton.default.displayName = 'PageButton';
134
+ Pagination.PageButton = _PageButton.default;
103
135
  Pagination.propTypes = {
104
- children: componentPropType('PageButton'),
105
- copy: copyPropTypes,
106
- variant: variantProp.propType,
107
- tokens: getTokensPropType('Pagination'),
108
- sideButtonVariant: variantProp.propType,
109
- sideButtonTokens: getTokensPropType('PaginationSideButton')
136
+ children: (0, _utils.componentPropType)('PageButton'),
137
+ copy: _utils.copyPropTypes,
138
+ variant: _utils.variantProp.propType,
139
+ tokens: (0, _utils.getTokensPropType)('Pagination'),
140
+ sideButtonVariant: _utils.variantProp.propType,
141
+ sideButtonTokens: (0, _utils.getTokensPropType)('PaginationSideButton')
110
142
  };
111
- const staticStyles = StyleSheet.create({
143
+
144
+ const staticStyles = _StyleSheet.default.create({
112
145
  container: {
113
146
  flexDirection: 'row',
114
147
  flexWrap: 'wrap',
115
148
  alignItems: 'center'
116
149
  }
117
150
  });
118
- export default Pagination;
151
+
152
+ var _default = Pagination;
153
+ exports.default = _default;