@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,28 +1,24 @@
1
- const {
2
- buttonAppearances,
3
- linkAppearances,
4
- sideNavItemAppearances,
5
- toggleSwitchAppearances,
6
- textInputAppearances,
7
- feedbackAppearances
8
- } = require('@telus-uds/tools-theme')
9
- const { appearances: systemAppearances } = require('@telus-uds/system-constants')
1
+ import { appearances } from '@telus-uds/system-theme-tokens'
2
+ import systemThemeTokensPackage from '@telus-uds/system-theme-tokens/package.json'
10
3
 
11
4
  // This is a dev-only file so we don't need to make @telus-uds/palette-allium a dependency.
12
- // eslint-disable-next-line import/no-extraneous-dependencies
13
- const chevronLeft = require('@telus-uds/palette-allium/build/rn/icons/chevron-left.icon.svg')
14
- .default
15
- // eslint-disable-next-line import/no-extraneous-dependencies
16
- const chevronRight = require('@telus-uds/palette-allium/build/rn/icons/chevron-right.icon.svg')
17
- .default
18
- // eslint-disable-next-line import/no-extraneous-dependencies
19
- const questionIcon = require('@telus-uds/palette-allium/build/rn/icons/question.icon.svg').default
5
+ /* eslint-disable-next-line import/no-extraneous-dependencies */
6
+ import {
7
+ ChevronLeft,
8
+ ChevronRight,
9
+ Checkmark,
10
+ Close,
11
+ Question,
12
+ SearchBold,
13
+ Times
14
+ } from '@telus-uds/palette-allium/build/rn/icons'
20
15
 
21
16
  const transparent = 'rgba(0, 0, 0, 0)'
22
17
 
23
- module.exports = {
18
+ export default {
24
19
  metadata: {
25
- name: 'test'
20
+ name: 'test',
21
+ themeTokensVersion: systemThemeTokensPackage.version
26
22
  },
27
23
  components: {
28
24
  spacingScale: {
@@ -116,7 +112,9 @@ module.exports = {
116
112
  values: [true],
117
113
  type: 'variant'
118
114
  },
119
- ...buttonAppearances
115
+ focus: appearances.Button.focus,
116
+ hover: appearances.Button.hover,
117
+ pressed: appearances.Button.pressed
120
118
  },
121
119
  tokens: {
122
120
  borderColor: '#0e6ac8',
@@ -127,12 +125,12 @@ module.exports = {
127
125
  outerBorderColor: transparent,
128
126
  outerBorderWidth: 4,
129
127
  outerBorderGap: 2,
130
- outerBorderRadius: 2,
131
128
 
132
129
  fontSize: 16,
133
130
  color: '#0e6ac8',
134
131
  lineHeight: 1.5,
135
132
  fontWeight: '600',
133
+ alignSelf: 'flex-start',
136
134
 
137
135
  backgroundColor: '#ffffff',
138
136
  opacity: 1,
@@ -227,8 +225,7 @@ module.exports = {
227
225
  {
228
226
  if: { rounded: true },
229
227
  tokens: {
230
- borderRadius: 48,
231
- outerBorderRadius: 16
228
+ borderRadius: 48
232
229
  }
233
230
  },
234
231
  {
@@ -246,8 +243,7 @@ module.exports = {
246
243
  {
247
244
  if: { rounded: true, pressed: true },
248
245
  tokens: {
249
- borderRadius: 0,
250
- outerBorderRadius: 0
246
+ borderRadius: 0
251
247
  }
252
248
  },
253
249
  {
@@ -292,10 +288,72 @@ module.exports = {
292
288
  },
293
289
  ButtonGroup: {
294
290
  tokens: {
295
- gap: 8,
296
- direction: 'row'
291
+ space: 2,
292
+ direction: 'row',
293
+ alignItems: 'flex-start',
294
+ justifyContent: 'flex-start',
295
+ flexGrow: 1
297
296
  }
298
297
  },
298
+ ButtonGroupItem: {
299
+ appearances: {
300
+ focus: appearances.ButtonGroupItem.focus,
301
+ hover: appearances.ButtonGroupItem.hover,
302
+ pressed: appearances.ButtonGroupItem.pressed,
303
+ selected: appearances.ButtonGroupItem.selected
304
+ },
305
+ tokens: {
306
+ borderColor: '#0e6ac8',
307
+ borderWidth: 2,
308
+ borderRadius: 0,
309
+ shadow: null,
310
+
311
+ outerBorderColor: transparent,
312
+ outerBorderWidth: 4,
313
+ outerBorderGap: 2,
314
+
315
+ fontSize: 16,
316
+ color: '#0e6ac8',
317
+ lineHeight: 1.5,
318
+ fontWeight: '600',
319
+ alignSelf: 'flex-start',
320
+
321
+ backgroundColor: '#ffffff',
322
+ opacity: 1,
323
+ paddingLeft: 24,
324
+ paddingRight: 24,
325
+ paddingTop: 8,
326
+ paddingBottom: 8,
327
+
328
+ width: null
329
+ },
330
+ rules: [
331
+ {
332
+ if: { focus: true },
333
+ tokens: {
334
+ borderWidth: 4,
335
+ outerBorderColor: '#0e6ac8',
336
+ opacity: 0.5
337
+ }
338
+ },
339
+ {
340
+ if: { hover: true },
341
+ tokens: {
342
+ borderWidth: 6
343
+ }
344
+ },
345
+ {
346
+ if: { pressed: true },
347
+ tokens: {
348
+ borderWidth: 8
349
+ }
350
+ },
351
+ {
352
+ if: { selected: true },
353
+ tokens: { backgroundColor: '#0e6ac8', color: '#ffffff', opacity: 1 }
354
+ }
355
+ ]
356
+ },
299
357
  Card: {
300
358
  appearances: {
301
359
  background: {
@@ -306,9 +364,10 @@ module.exports = {
306
364
  values: ['narrow', 'intermediate', 'compact', 'custom'],
307
365
  type: 'variant'
308
366
  },
309
- viewport: systemAppearances.viewport
367
+ viewport: appearances.system.viewport
310
368
  },
311
369
  tokens: {
370
+ flex: 1,
312
371
  backgroundColor: '#ffffff',
313
372
  borderColor: '#666666',
314
373
  borderRadius: 6,
@@ -390,14 +449,85 @@ module.exports = {
390
449
  }
391
450
  ]
392
451
  },
452
+ Checkbox: {
453
+ appearances: {
454
+ error: appearances.Checkbox.error,
455
+ focus: appearances.Checkbox.focus,
456
+ inactive: appearances.Checkbox.inactive
457
+ },
458
+ tokens: {
459
+ containerBackgroundColor: transparent,
460
+ feedbackMarginBottom: 0,
461
+ feedbackMarginTop: 2,
462
+ feedbackPosition: 'bottom',
463
+ icon: Checkmark,
464
+ iconBackgroundColor: '#7c53a5',
465
+ iconColor: '#ffffff',
466
+ iconSize: 18,
467
+ inputBackgroundColor: '#ffffff',
468
+ inputBorderColor: '#676e73',
469
+ inputBorderRadius: 4,
470
+ inputBorderWidth: 1,
471
+ inputHeight: 20,
472
+ inputOutlineColor: null,
473
+ inputOutlineWidth: 0,
474
+ inputShadow: {
475
+ color: '#00000044',
476
+ offsetY: 1,
477
+ offsetX: 1,
478
+ spread: 0,
479
+ blur: 1,
480
+ inset: false
481
+ },
482
+ inputWidth: 20,
483
+ labelColor: '#414547',
484
+ labelFontSize: 18,
485
+ labelFontWeight: '500',
486
+ labelLineHeight: 1.5,
487
+ labelMarginLeft: 8
488
+ },
489
+ rules: [
490
+ {
491
+ if: { error: true },
492
+ tokens: {
493
+ inputBorderColor: '#e12339'
494
+ }
495
+ },
496
+ {
497
+ if: { focus: true },
498
+ tokens: {
499
+ inputBorderColor: '#7c53a5',
500
+ inputBorderWidth: 3
501
+ }
502
+ },
503
+ {
504
+ if: { inactive: true },
505
+ tokens: {
506
+ inputBorderColor: 'transparent',
507
+ inputBackgroundColor: '#e3e6e8',
508
+ iconBackgroundColor: '#e3e6e8',
509
+ iconColor: 'rgba(103, 110, 115, 1)',
510
+ labelColor: '#676e73'
511
+ }
512
+ }
513
+ ]
514
+ },
393
515
  ChevronLink: {
394
516
  appearances: {},
395
517
  tokens: {
396
- leftIcon: chevronLeft,
397
- rightIcon: chevronRight,
518
+ leftIcon: ChevronLeft,
519
+ rightIcon: ChevronRight,
398
520
  iconDisplace: 4
399
521
  }
400
522
  },
523
+ CheckboxGroup: {
524
+ appearances: {},
525
+ tokens: {
526
+ fieldSpace: 2,
527
+ space: 2
528
+ },
529
+ rules: []
530
+ },
401
531
  Divider: {
402
532
  appearances: {
403
533
  weight: {
@@ -473,6 +603,353 @@ module.exports = {
473
603
  }
474
604
  ]
475
605
  },
606
+ IconButton: {
607
+ appearances: {},
608
+ tokens: {},
609
+ rules: []
610
+ },
611
+ Progress: {
612
+ appearances: {
613
+ size: { values: ['mini'], type: 'variant' }
614
+ },
615
+ tokens: {
616
+ backgroundColor: '#ffffff',
617
+ borderWidth: 1,
618
+ borderColor: '#f4f4f7',
619
+ borderRadius: 12,
620
+ height: 16
621
+ },
622
+ rules: [{ if: { size: 'mini' }, tokens: { height: 8 } }]
623
+ },
624
+ ProgressBar: {
625
+ appearances: {
626
+ inactive: appearances.ProgressBar.inactive,
627
+ negative: { values: [true], type: 'variant' }
628
+ },
629
+ tokens: {
630
+ backgroundColor: '#08804b',
631
+ borderRadius: 12,
632
+ outlineWidth: 1,
633
+ outlineColor: '#2b8000'
634
+ },
635
+ rules: [
636
+ {
637
+ if: { inactive: true },
638
+ tokens: {
639
+ backgroundColor: '#b2b9bf',
640
+ outlineColor: '#f4f4f7'
641
+ }
642
+ },
643
+ {
644
+ if: { negative: true },
645
+ tokens: {
646
+ backgroundColor: '#c12335',
647
+ outlineColor: '#c12335'
648
+ }
649
+ }
650
+ ]
651
+ },
652
+ RadioCardGroup: {
653
+ appearances: {
654
+ viewport: appearances.system.viewport
655
+ },
656
+ tokens: {
657
+ direction: 'column',
658
+ fieldSpace: 2,
659
+ space: 2
660
+ },
661
+ rules: [
662
+ {
663
+ if: {
664
+ viewport: ['lg', 'xl']
665
+ },
666
+ tokens: {
667
+ direction: 'row'
668
+ }
669
+ }
670
+ ]
671
+ },
672
+ RadioGroup: {
673
+ appearances: {},
674
+ tokens: {
675
+ fieldSpace: 2,
676
+ space: 2
677
+ },
678
+ rules: []
679
+ },
680
+ Modal: {
681
+ appearances: {},
682
+ tokens: {
683
+ backdropColor: 'rgba(0,0,0,0.5)',
684
+ backdropOpacity: 1,
685
+ maxWidth: 600,
686
+ containerPaddingLeft: 16,
687
+ containerPaddingRight: 16,
688
+ containerPaddingTop: 16,
689
+ containerPaddingBottom: 16,
690
+ backgroundColor: '#fff',
691
+ borderRadius: 4,
692
+ paddingLeft: 24,
693
+ paddingRight: 24,
694
+ paddingTop: 24,
695
+ paddingBottom: 24,
696
+
697
+ closeIcon: Close,
698
+ closeIconSize: 24,
699
+ closeIconColor: '#000'
700
+ },
701
+ rules: []
702
+ },
703
+ Search: {
704
+ appearances: {
705
+ focus: appearances.Search.focus,
706
+ hover: appearances.Search.hover,
707
+ inactive: appearances.Search.inactive
708
+ },
709
+ tokens: {
710
+ borderRadius: 32,
711
+ borderWidth: 1,
712
+ borderColor: '#00000044',
713
+ paddingTop: 6,
714
+ paddingBottom: 6,
715
+ paddingLeft: 16,
716
+ paddingRight: 6,
717
+ outerBorderWidth: 1,
718
+ outerBorderColor: transparent,
719
+ outerBorderRadius: 32,
720
+ buttonsGap: 2,
721
+ clearButtonIcon: Times,
722
+ submitButtonIcon: SearchBold
723
+ },
724
+ rules: [
725
+ {
726
+ if: { focus: true },
727
+ tokens: {
728
+ outerBorderColor: '#debc06'
729
+ }
730
+ },
731
+ {
732
+ if: { hover: true },
733
+ tokens: {
734
+ outerBorderColor: '#6666cc'
735
+ }
736
+ }
737
+ ]
738
+ },
739
+ SearchButton: {
740
+ appearances: {},
741
+ tokens: {},
742
+ rules: []
743
+ },
744
+ Notification: {
745
+ appearances: {},
746
+ tokens: {
747
+ dismissIcon: Close
748
+ },
749
+ rules: []
750
+ },
751
+ RadioCard: {
752
+ appearances: {
753
+ checked: appearances.Radio.checked,
754
+ error: appearances.Radio.error,
755
+ focus: appearances.Radio.focus,
756
+ hover: appearances.Radio.hover,
757
+ inactive: appearances.Radio.inactive
758
+ },
759
+ tokens: {
760
+ // Taken from Allium theme snapshot
761
+ flex: 1,
762
+ backgroundColor: '#ffffff',
763
+ borderColor: '#b2b9bf',
764
+ borderRadius: 6,
765
+ borderWidth: 1,
766
+ color: '#2c2e30',
767
+ contentSpace: 2,
768
+ fontSize: 20,
769
+ fontWeight: '500',
770
+ letterSpacing: 0,
771
+ lineHeight: 1.4,
772
+ outerBorderColor: transparent,
773
+ outerBorderGap: 0,
774
+ outerBorderWidth: 0,
775
+ paddingBottom: 16,
776
+ paddingLeft: 10,
777
+ paddingRight: 16,
778
+ paddingTop: 16,
779
+ radioCheckedBackgroundColor: '#7c53a5',
780
+ radioCheckedSize: 12,
781
+ radioInputBackgroundColor: '#ffffff',
782
+ radioInputBorderColor: '#676e73',
783
+ radioInputBorderWidth: 1,
784
+ radioInputOutlineColor: transparent,
785
+ radioInputOutlineWidth: 0,
786
+ radioInputSize: 20,
787
+ radioOuterBorderColor: transparent,
788
+ radioOuterBorderGap: 0,
789
+ radioOuterBorderWidth: 0,
790
+ radioSpace: 2,
791
+ minWidth: 288,
792
+ shadow: null,
793
+ textTransform: 'none'
794
+ },
795
+ rules: [
796
+ {
797
+ if: {
798
+ viewport: ['lg', 'xl']
799
+ },
800
+ tokens: {
801
+ fontSize: 24,
802
+ lineHeight: 1.33333333333,
803
+ paddingBottom: 24,
804
+ paddingLeft: 16,
805
+ paddingRight: 24,
806
+ paddingTop: 16
807
+ }
808
+ },
809
+ {
810
+ if: {
811
+ hover: true
812
+ },
813
+ tokens: {
814
+ borderColor: '#676e73',
815
+ outerBorderColor: '#e3e6e8',
816
+ outerBorderWidth: 2,
817
+ radioOuterBorderColor: '#e3e6e8',
818
+ radioOuterBorderWidth: 2
819
+ }
820
+ },
821
+ {
822
+ description: 'Pressed state matches hover state plus light grey background',
823
+ if: {
824
+ pressed: true
825
+ },
826
+ tokens: {
827
+ backgroundColor: '#f4f4f7',
828
+ borderColor: '#676e73',
829
+ outerBorderColor: '#e3e6e8',
830
+ outerBorderWidth: 2
831
+ }
832
+ },
833
+ {
834
+ if: {
835
+ focus: true
836
+ },
837
+ tokens: {
838
+ radioIputBorderColor: '#7c53a5',
839
+ radioInputBorderWidth: 3,
840
+ outerBorderColor: '#676e73',
841
+ outerBorderGap: 2,
842
+ outerBorderWidth: 2
843
+ }
844
+ },
845
+ {
846
+ if: {
847
+ inactive: true
848
+ },
849
+ tokens: {
850
+ backgroundColor: '#f4f4f7',
851
+ borderColor: 'transparent',
852
+ radioInputBackgroundColor: '#e3e6e8',
853
+ radioInputBorderColor: 'rgba(0, 0, 0, 0)',
854
+ labelColor: '#676e73'
855
+ }
856
+ },
857
+ {
858
+ if: {
859
+ error: true
860
+ },
861
+ tokens: {
862
+ borderColor: '#e12339',
863
+ color: '#e12339',
864
+ radioInputBorderColor: '#e12339'
865
+ }
866
+ }
867
+ ]
868
+ },
869
+ Tabs: {
870
+ appearances: {},
871
+ tokens: {
872
+ buttonClearance: 20,
873
+ gutter: 12,
874
+ nextIcon: ChevronRight,
875
+ previousIcon: ChevronLeft,
876
+ borderBottomWidth: 1,
877
+ borderBottomColor: '#ebefed',
878
+ space: 1
879
+ },
880
+ rules: []
881
+ },
882
+ TabsItem: {
883
+ appearances: {},
884
+ tokens: {
885
+ backgroundColor: transparent,
886
+ borderColor: transparent,
887
+ borderRadius: 0,
888
+ borderWidth: 0,
889
+ color: '#034045',
890
+ fontName: '',
891
+ fontScaleCap: 66,
892
+ fontSize: 14,
893
+ fontWeight: '700',
894
+ highlightBarBorderRadius: 0,
895
+ highlightBarBorderWidth: 0,
896
+ highlightBarHeight: 0,
897
+ highlightColor: transparent,
898
+ highlightTriangleSize: 0,
899
+ letterSpacing: 0,
900
+ lineHeight: 1,
901
+ maxWidth: 150,
902
+ paddingHorizontal: 16,
903
+ paddingVertical: 16,
904
+ space: 0,
905
+ textAlign: 'left',
906
+ textTransform: 'uppercase'
907
+ },
908
+ rules: [
909
+ {
910
+ if: { hover: true },
911
+ tokens: {
912
+ highlightBarHeight: 2,
913
+ highlightColor: '#81a0a2'
914
+ }
915
+ },
916
+ {
917
+ if: { focus: true },
918
+ tokens: {
919
+ borderColor: '#81a0a2',
920
+ borderWidth: 1
921
+ }
922
+ },
923
+ {
924
+ if: { pressed: true },
925
+ tokens: {
926
+ backgroundColor: '#ebefed'
927
+ }
928
+ },
929
+ {
930
+ if: { selected: true },
931
+ tokens: {
932
+ highlightBarHeight: 2,
933
+ highlightColor: '#034045',
934
+ highlightTriangleSize: 8
935
+ }
936
+ }
937
+ ]
938
+ },
939
+ TabsScrollButton: {
940
+ appearances: {},
941
+ tokens: {
942
+ backgroundColor: '#ffffff',
943
+ borderColor: '#81a0a2',
944
+ borderRadius: 12,
945
+ borderWidth: 1,
946
+ iconColor: '#81a0a2',
947
+ iconSize: 24,
948
+ padding: 0,
949
+ shadow: null
950
+ },
951
+ rules: []
952
+ },
476
953
  Typography: {
477
954
  appearances: {
478
955
  weight: {
@@ -504,7 +981,7 @@ module.exports = {
504
981
  values: [true],
505
982
  type: 'variant'
506
983
  },
507
- viewport: systemAppearances.viewport
984
+ viewport: appearances.system.viewport
508
985
  },
509
986
  tokens: {
510
987
  fontWeight: '400',
@@ -735,7 +1212,7 @@ module.exports = {
735
1212
  values: [true],
736
1213
  type: 'state'
737
1214
  },
738
- iconPosition: linkAppearances.iconPosition
1215
+ iconPosition: appearances.Link.iconPosition
739
1216
  },
740
1217
  tokens: {
741
1218
  color: '#0000ff',
@@ -753,9 +1230,7 @@ module.exports = {
753
1230
  textLineStyle: 'solid',
754
1231
 
755
1232
  iconSize: 18,
756
- iconGapBefore: 4,
757
- iconGapAfter: 4,
758
- iconScale: 1
1233
+ iconSpace: 1
759
1234
  },
760
1235
  rules: [
761
1236
  {
@@ -777,14 +1252,6 @@ module.exports = {
777
1252
  color: '#ff0000',
778
1253
  textLine: 'none'
779
1254
  }
780
- },
781
- {
782
- if: { component: 'ChevronLink', iconPosition: 'left' },
783
- tokens: { icon: chevronLeft }
784
- },
785
- {
786
- if: { component: 'ChevronLink', iconPosition: 'right' },
787
- tokens: { icon: chevronRight }
788
1255
  }
789
1256
  ]
790
1257
  },
@@ -834,10 +1301,73 @@ module.exports = {
834
1301
  }
835
1302
  ]
836
1303
  },
1304
+ Radio: {
1305
+ appearances: {
1306
+ checked: appearances.Radio.checked,
1307
+ error: appearances.Radio.error,
1308
+ focus: appearances.Radio.focus,
1309
+ hover: appearances.Radio.hover,
1310
+ inactive: appearances.Radio.inactive
1311
+ },
1312
+ tokens: {
1313
+ checkedBackgroundColor: '#7c53a5',
1314
+ checkedSize: 12,
1315
+ containerBackgroundColor: '#ffffff',
1316
+ containerBorderRadius: 12,
1317
+ containerOpacity: 1,
1318
+ containerPaddingBottom: 12,
1319
+ containerPaddingLeft: 18,
1320
+ containerPaddingRight: 18,
1321
+ containerPaddingTop: 12,
1322
+ containerShadow: null,
1323
+ descriptionFontSize: 14,
1324
+ descriptionLineHeight: 1.4,
1325
+ descriptionMarginLeft: null,
1326
+ inputBackgroundColor: '#ffffff',
1327
+ inputBorderColor: '#676e73',
1328
+ inputBorderWidth: 1,
1329
+ inputOutlineColor: null,
1330
+ inputOutlineWidth: 0,
1331
+ inputSize: 20,
1332
+ inputShadow: null,
1333
+ outerBorderWidth: 0,
1334
+ outerBorderColor: transparent,
1335
+ outerBorderGap: 0,
1336
+ labelColor: '#414547',
1337
+ labelFontName: '',
1338
+ labelFontSize: 18,
1339
+ labelFontWeight: '500',
1340
+ labelLineHeight: 1.5,
1341
+ labelMarginLeft: 8
1342
+ },
1343
+ rules: [
1344
+ {
1345
+ if: { error: true },
1346
+ tokens: {
1347
+ inputBorderColor: '#e12339'
1348
+ }
1349
+ },
1350
+ {
1351
+ if: { focus: true },
1352
+ tokens: {
1353
+ inputBorderColor: '#7c53a5',
1354
+ inputBorderWidth: 3
1355
+ }
1356
+ },
1357
+ {
1358
+ if: { inactive: true },
1359
+ tokens: {
1360
+ inputBorderColor: 'transparent',
1361
+ inputBackgroundColor: '#e3e6e8',
1362
+ labelColor: '#676e73'
1363
+ }
1364
+ }
1365
+ ]
1366
+ },
837
1367
  SideNav: {},
838
1368
  SideNavItem: {
839
1369
  appearances: {
840
- ...sideNavItemAppearances
1370
+ type: appearances.SideNavItem.type
841
1371
  },
842
1372
  rules: [
843
1373
  {
@@ -854,19 +1384,74 @@ module.exports = {
854
1384
  StackView: {
855
1385
  tokens: {}
856
1386
  },
1387
+ StepTracker: {
1388
+ appearances: {},
1389
+ tokens: {
1390
+ completedIcon: null,
1391
+ completedIconColor: '#ffffff',
1392
+ completedIconSize: 12,
1393
+ connectorColor: '#676e73',
1394
+ connectorHeight: 1,
1395
+ connectorMinWidth: 16,
1396
+ connectorCompletedHeight: 3,
1397
+ connectorCompletedColor: '#7c53a5',
1398
+ containerPaddingBottom: 0,
1399
+ containerPaddingLeft: 0,
1400
+ containerPaddingRight: 0,
1401
+ containerPaddingTop: 0,
1402
+ knobBackgroundColor: transparent,
1403
+ knobBorderWidth: 1,
1404
+ knobBorderColor: '#676e73',
1405
+ knobCompletedBackgroundColor: '#7c53a5',
1406
+ knobCompletedBorderColor: '#7c53a5',
1407
+ knobCompletedPaddingLeft: 1,
1408
+ knobCompletedPaddingTop: 1,
1409
+ knobCurrentBackgroundColor: transparent,
1410
+ knobCurrentBorderColor: '#7c53a5',
1411
+ knobCurrentBorderWidth: 2,
1412
+ knobCurrentInnerColor: '#7c53a5',
1413
+ knobCurrentInnerSize: 8,
1414
+ knobCurrentPaddingLeft: 2,
1415
+ knobCurrentPaddingTop: 2,
1416
+ knobSize: 16,
1417
+ labelColor: '#676e73',
1418
+ labelCurrentColor: '#7c53a5',
1419
+ labelCurrentFontWeight: '600',
1420
+ labelDirection: 'column',
1421
+ labelFontSize: 16,
1422
+ labelFontWeight: '400',
1423
+ labelFontName: '',
1424
+ labelGap: 0,
1425
+ labelLineHeight: 1.5,
1426
+ labelMarginTop: 8,
1427
+ labelPaddingLeft: 16,
1428
+ labelPaddingRight: 16,
1429
+ showStepLabel: false,
1430
+ showStepName: true,
1431
+ showStepTrackerLabel: true
1432
+ },
1433
+ rules: [
1434
+ {
1435
+ if: { viewport: ['lg', 'xl'] },
1436
+ tokens: {
1437
+ showStepLabel: true,
1438
+ showStepTrackerLabel: false
1439
+ }
1440
+ }
1441
+ ]
1442
+ },
857
1443
  ToggleSwitch: {
858
1444
  appearances: {
859
- focus: toggleSwitchAppearances.focus,
860
- hover: toggleSwitchAppearances.hover,
861
- pressed: toggleSwitchAppearances.pressed,
862
- inactive: toggleSwitchAppearances.inactive,
863
- selected: toggleSwitchAppearances.selected
1445
+ focus: appearances.ToggleSwitch.focus,
1446
+ hover: appearances.ToggleSwitch.hover,
1447
+ pressed: appearances.ToggleSwitch.pressed,
1448
+ inactive: appearances.ToggleSwitch.inactive,
1449
+ selected: appearances.ToggleSwitch.selected
864
1450
  },
865
1451
  tokens: {
866
1452
  outerBorderColor: '#000000',
867
1453
  outerBorderWidth: 2,
868
1454
  outerBorderGap: 2,
869
- outerBorderRadius: 8,
870
1455
  outerBackgroundColor: '#333333',
871
1456
  borderColor: '#666666',
872
1457
  borderWidth: 2,
@@ -877,6 +1462,7 @@ module.exports = {
877
1462
  paddingRight: 2,
878
1463
  paddingTop: 2,
879
1464
  paddingBottom: 2,
1465
+ alignSelf: 'flex-start',
880
1466
 
881
1467
  trackBorderWidth: 2,
882
1468
  trackBorderColor: '#bbbbbb',
@@ -931,7 +1517,10 @@ module.exports = {
931
1517
  },
932
1518
  TextInput: {
933
1519
  appearances: {
934
- ...textInputAppearances
1520
+ validation: appearances.TextInput.validation,
1521
+ focus: appearances.TextInput.focus,
1522
+ hover: appearances.TextInput.hover,
1523
+ inactive: appearances.TextInput.inactive
935
1524
  },
936
1525
  tokens: {
937
1526
  borderRadius: 4,
@@ -942,8 +1531,7 @@ module.exports = {
942
1531
  paddingLeft: 6,
943
1532
  paddingRight: 6,
944
1533
  outerBorderWidth: 1,
945
- outerBorderColor: transparent,
946
- outerBorderRadius: 4
1534
+ outerBorderColor: transparent
947
1535
  },
948
1536
  rules: [
949
1537
  {
@@ -987,7 +1575,7 @@ module.exports = {
987
1575
  },
988
1576
  Feedback: {
989
1577
  appearances: {
990
- ...feedbackAppearances
1578
+ validation: appearances.Feedback.validation
991
1579
  },
992
1580
  tokens: {
993
1581
  borderColor: '#eee',
@@ -1001,8 +1589,155 @@ module.exports = {
1001
1589
  paddingRight: 12
1002
1590
  },
1003
1591
  rules: [
1004
- { if: { state: 'success' }, tokens: { color: 'green' } },
1005
- { if: { state: 'error' }, tokens: { color: 'red' } }
1592
+ { if: { validation: 'success' }, tokens: { color: 'green' } },
1593
+ { if: { validation: 'error' }, tokens: { color: 'red' } }
1594
+ ]
1595
+ },
1596
+ List: {
1597
+ appearances: {
1598
+ size: {
1599
+ values: ['large', 'small'],
1600
+ type: 'variant'
1601
+ },
1602
+ compact: {
1603
+ values: [true],
1604
+ type: 'variant'
1605
+ }
1606
+ },
1607
+ tokens: {
1608
+ interItemMargin: 8,
1609
+ interItemMarginWithDivider: 16,
1610
+ dividerColor: '#666666',
1611
+ dividerSize: 1,
1612
+ itemBulletContainerWidth: 16,
1613
+ itemBulletContainerAlign: 'center',
1614
+ itemBulletWidth: 4,
1615
+ itemBulletHeight: 4,
1616
+ itemBulletColor: '#6666cc',
1617
+ itemIconSize: 16,
1618
+ itemIconColor: '#6666cc',
1619
+ listGutter: 10,
1620
+ itemLineHeight: 1.5
1621
+ },
1622
+ rules: [
1623
+ {
1624
+ if: { size: 'large' },
1625
+ tokens: {
1626
+ itemFontSize: 20,
1627
+ itemLineHeight: 1.6,
1628
+ listGutter: 16
1629
+ }
1630
+ },
1631
+ {
1632
+ if: { size: 'small' },
1633
+ tokens: {
1634
+ itemFontSize: 14,
1635
+ itemLineHeight: 1.42857142857,
1636
+ listGutter: 10
1637
+ }
1638
+ },
1639
+ {
1640
+ if: { compact: true },
1641
+ tokens: {
1642
+ itemLineHeight: 1.25
1643
+ }
1644
+ },
1645
+ {
1646
+ if: { compact: true, size: 'small' },
1647
+ tokens: {
1648
+ itemLineHeight: 1.14285714286
1649
+ }
1650
+ },
1651
+ {
1652
+ if: { compact: true, size: 'large' },
1653
+ tokens: {
1654
+ itemLineHeight: 1.2
1655
+ }
1656
+ }
1657
+ ]
1658
+ },
1659
+ Tags: {
1660
+ space: 2,
1661
+ direction: 'row',
1662
+ alignItems: 'flex-start',
1663
+ justifyContent: 'flex-start',
1664
+ flexGrow: 1
1665
+ },
1666
+ TagsItem: {
1667
+ appearances: {
1668
+ focus: appearances.ButtonGroupItem.focus,
1669
+ hover: appearances.ButtonGroupItem.hover,
1670
+ pressed: appearances.ButtonGroupItem.pressed,
1671
+ selected: appearances.ButtonGroupItem.selected
1672
+ },
1673
+ tokens: {
1674
+ icon: Checkmark,
1675
+ iconSize: 16,
1676
+ iconColor: '#ffffff',
1677
+ iconTranslateX: 0,
1678
+ iconTranslateY: 0,
1679
+
1680
+ iconPosition: 'right',
1681
+ iconSpace: 2,
1682
+ iconBackground: '#ffffff',
1683
+ iconBorderRadius: 0,
1684
+ iconAlignSelf: 'center',
1685
+ iconPadding: 0,
1686
+
1687
+ borderColor: '#0e6ac8',
1688
+ borderWidth: 2,
1689
+ borderRadius: 0,
1690
+ shadow: null,
1691
+
1692
+ outerBorderColor: transparent,
1693
+ outerBorderWidth: 4,
1694
+ outerBorderGap: 2,
1695
+
1696
+ fontSize: 16,
1697
+ color: '#0e6ac8',
1698
+ lineHeight: 1.5,
1699
+ fontWeight: '600',
1700
+ alignSelf: 'flex-start',
1701
+
1702
+ backgroundColor: '#ffffff',
1703
+ opacity: 1,
1704
+ paddingLeft: 24,
1705
+ paddingRight: 24,
1706
+ paddingTop: 8,
1707
+ paddingBottom: 8,
1708
+
1709
+ width: null
1710
+ },
1711
+ rules: [
1712
+ {
1713
+ if: { focus: true },
1714
+ tokens: {
1715
+ borderWidth: 4,
1716
+ outerBorderColor: '#0e6ac8',
1717
+ opacity: 0.5
1718
+ }
1719
+ },
1720
+ {
1721
+ if: { hover: true },
1722
+ tokens: {
1723
+ borderWidth: 6
1724
+ }
1725
+ },
1726
+ {
1727
+ if: { pressed: true },
1728
+ tokens: {
1729
+ borderWidth: 8
1730
+ }
1731
+ },
1732
+ {
1733
+ if: { selected: true },
1734
+ tokens: {
1735
+ backgroundColor: '#0e6ac8',
1736
+ color: '#ffffff',
1737
+ opacity: 1,
1738
+ iconBackground: '#0e6ac8'
1739
+ }
1740
+ }
1006
1741
  ]
1007
1742
  },
1008
1743
  Tooltip: {
@@ -1018,10 +1753,69 @@ module.exports = {
1018
1753
  },
1019
1754
  TooltipButton: {
1020
1755
  tokens: {
1021
- icon: questionIcon,
1756
+ icon: Question,
1022
1757
  iconColor: 'black',
1023
1758
  iconSize: 16
1024
1759
  }
1760
+ },
1761
+ TextArea: {},
1762
+ InputSupports: {},
1763
+ Skeleton: {
1764
+ tokens: {
1765
+ color: '#b2b9bf',
1766
+ radius: 100,
1767
+ size: 3,
1768
+ baseWidth: 40,
1769
+ characters: 10,
1770
+ spaceBetweenLines: 2,
1771
+ squareRadius: 4
1772
+ }
1773
+ },
1774
+ Select: {
1775
+ tokens: {
1776
+ borderRadius: 4,
1777
+ borderWidth: 1,
1778
+ borderColor: '#00000044',
1779
+ paddingTop: 6,
1780
+ paddingBottom: 6,
1781
+ paddingLeft: 6,
1782
+ paddingRight: 6,
1783
+ outerBorderWidth: 1,
1784
+ outerBorderColor: transparent
1785
+ },
1786
+ rules: [
1787
+ {
1788
+ if: { validation: 'success' },
1789
+ tokens: {
1790
+ outerBorderColor: '#99ff99'
1791
+ }
1792
+ },
1793
+ {
1794
+ if: { validation: 'error' },
1795
+ tokens: {
1796
+ outerBorderColor: '#990000'
1797
+ }
1798
+ },
1799
+ {
1800
+ if: { focus: true },
1801
+ tokens: {
1802
+ outerBorderColor: '#debc06'
1803
+ }
1804
+ },
1805
+ {
1806
+ if: { hover: true },
1807
+ tokens: {
1808
+ outerBorderColor: '#6666cc'
1809
+ }
1810
+ },
1811
+ {
1812
+ if: { inactive: true },
1813
+ tokens: {
1814
+ outerBorderColor: transparent,
1815
+ backgroundColor: '#00000044'
1816
+ }
1817
+ }
1818
+ ]
1025
1819
  }
1026
1820
  }
1027
1821
  }