@telus-uds/components-base 0.0.2-prerelease.5 → 0.0.2-prerelease.9

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 (429) hide show
  1. package/.ultra.cache.json +1 -0
  2. package/CHANGELOG.md +65 -0
  3. package/__fixtures__/Accessible.js +33 -0
  4. package/__fixtures__/Accessible.native.js +32 -0
  5. package/__fixtures__/testTheme.js +871 -52
  6. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +1 -1
  7. package/__tests__/Button/ButtonBase.test.jsx +3 -32
  8. package/__tests__/Button/ButtonGroup.test.jsx +2 -2
  9. package/__tests__/Checkbox/Checkbox.test.jsx +94 -0
  10. package/__tests__/Checkbox/CheckboxGroup.test.jsx +247 -0
  11. package/__tests__/Icon/Icon.test.jsx +3 -3
  12. package/__tests__/IconButton/IconButton.test.jsx +52 -0
  13. package/__tests__/InputSupports/InputSupports.test.jsx +50 -0
  14. package/__tests__/List/List.test.jsx +60 -0
  15. package/__tests__/Modal/Modal.test.jsx +47 -0
  16. package/__tests__/Notification/Notification.test.jsx +20 -0
  17. package/__tests__/Pagination/Pagination.test.jsx +2 -2
  18. package/__tests__/Progress/Progress.test.jsx +79 -0
  19. package/__tests__/Radio/Radio.test.jsx +87 -0
  20. package/__tests__/Radio/RadioGroup.test.jsx +221 -0
  21. package/__tests__/RadioCard/RadioCard.test.jsx +87 -0
  22. package/__tests__/RadioCard/RadioCardGroup.test.jsx +247 -0
  23. package/__tests__/Search/Search.test.jsx +72 -0
  24. package/__tests__/Select/Select.test.jsx +93 -0
  25. package/__tests__/Skeleton/Skeleton.test.jsx +61 -0
  26. package/__tests__/StackView/StackView.test.jsx +0 -26
  27. package/__tests__/StepTracker/StepTracker.test.jsx +94 -0
  28. package/__tests__/Tabs/Tabs.test.jsx +200 -0
  29. package/__tests__/Tags/Tags.test.jsx +328 -0
  30. package/__tests__/TextInput/TextArea.test.jsx +34 -0
  31. package/__tests__/TextInput/{TextInput.test.jsx → TextInputBase.test.jsx} +20 -46
  32. package/__tests__/Tooltip/Tooltip.test.jsx +65 -0
  33. package/__tests__/Tooltip/getTooltipPosition.test.js +79 -0
  34. package/__tests__/utils/input.test.js +58 -0
  35. package/__tests__/utils/useCopy.test.js +42 -0
  36. package/__tests__/utils/useResponsiveProp.test.jsx +202 -0
  37. package/__tests__/utils/{spacing.test.jsx → useSpacingScale.test.jsx} +1 -1
  38. package/babel.config.js +20 -0
  39. package/jest.config.js +13 -4
  40. package/lib/A11yInfoProvider/index.js +54 -26
  41. package/lib/A11yText/index.js +37 -14
  42. package/lib/ActivityIndicator/Spinner.js +78 -0
  43. package/lib/ActivityIndicator/Spinner.native.js +121 -87
  44. package/lib/ActivityIndicator/index.js +28 -12
  45. package/lib/ActivityIndicator/shared.js +27 -12
  46. package/lib/BaseProvider/index.js +34 -11
  47. package/lib/Box/Box.js +54 -31
  48. package/lib/Box/index.js +13 -2
  49. package/lib/Button/Button.js +38 -10
  50. package/lib/Button/ButtonBase.js +115 -94
  51. package/lib/Button/ButtonGroup.js +94 -86
  52. package/lib/Button/ButtonLink.js +41 -13
  53. package/lib/Button/index.js +31 -4
  54. package/lib/Button/propTypes.js +32 -9
  55. package/lib/Card/Card.js +36 -41
  56. package/lib/Card/CardBase.js +78 -0
  57. package/lib/Card/PressableCardBase.js +137 -0
  58. package/lib/Card/index.js +40 -2
  59. package/lib/Checkbox/Checkbox.js +344 -0
  60. package/lib/Checkbox/CheckboxGroup.js +231 -0
  61. package/lib/Checkbox/CheckboxInput.js +74 -0
  62. package/lib/Checkbox/CheckboxInput.native.js +14 -0
  63. package/lib/Checkbox/index.js +21 -0
  64. package/lib/Divider/Divider.js +50 -24
  65. package/lib/Divider/index.js +13 -2
  66. package/lib/ExpandCollapse/Accordion.js +20 -7
  67. package/lib/ExpandCollapse/Control.js +50 -27
  68. package/lib/ExpandCollapse/ExpandCollapse.js +41 -24
  69. package/lib/ExpandCollapse/Panel.js +75 -37
  70. package/lib/ExpandCollapse/index.js +25 -7
  71. package/lib/Feedback/Feedback.js +85 -34
  72. package/lib/Feedback/index.js +13 -2
  73. package/lib/Fieldset/Fieldset.js +160 -0
  74. package/lib/Fieldset/FieldsetContainer.js +41 -0
  75. package/lib/Fieldset/FieldsetContainer.native.js +33 -0
  76. package/lib/Fieldset/Legend.js +33 -0
  77. package/lib/Fieldset/Legend.native.js +43 -0
  78. package/lib/Fieldset/cssReset.js +21 -0
  79. package/lib/Fieldset/index.js +13 -0
  80. package/lib/FlexGrid/Col/Col.js +67 -38
  81. package/lib/FlexGrid/Col/index.js +13 -2
  82. package/lib/FlexGrid/FlexGrid.js +70 -45
  83. package/lib/FlexGrid/Row/Row.js +48 -27
  84. package/lib/FlexGrid/Row/index.js +13 -2
  85. package/lib/FlexGrid/helpers/index.js +9 -1
  86. package/lib/FlexGrid/index.js +13 -2
  87. package/lib/FlexGrid/providers/GutterContext.js +15 -3
  88. package/lib/Icon/Icon.js +52 -47
  89. package/lib/Icon/IconText.js +100 -0
  90. package/lib/Icon/index.js +31 -3
  91. package/lib/IconButton/IconButton.js +135 -0
  92. package/lib/IconButton/index.js +13 -0
  93. package/lib/InputLabel/InputLabel.js +70 -34
  94. package/lib/InputLabel/LabelContent.js +31 -0
  95. package/lib/InputLabel/LabelContent.native.js +9 -1
  96. package/lib/InputLabel/index.js +13 -2
  97. package/lib/InputSupports/InputSupports.js +104 -0
  98. package/lib/InputSupports/index.js +13 -0
  99. package/lib/InputSupports/propTypes.js +66 -0
  100. package/lib/InputSupports/useInputSupports.js +41 -0
  101. package/lib/Link/ChevronLink.js +57 -15
  102. package/lib/Link/InlinePressable.js +50 -0
  103. package/lib/Link/InlinePressable.native.js +101 -0
  104. package/lib/Link/Link.js +30 -13
  105. package/lib/Link/LinkBase.js +114 -145
  106. package/lib/Link/TextButton.js +47 -17
  107. package/lib/Link/index.js +39 -4
  108. package/lib/List/List.js +80 -0
  109. package/lib/List/ListItem.js +237 -0
  110. package/lib/List/index.js +13 -0
  111. package/lib/Modal/Modal.js +226 -0
  112. package/lib/Modal/dictionary.js +16 -0
  113. package/lib/Modal/index.js +13 -0
  114. package/lib/Notification/Notification.js +200 -0
  115. package/lib/Notification/dictionary.js +15 -0
  116. package/lib/Notification/index.js +13 -0
  117. package/lib/Pagination/PageButton.js +45 -46
  118. package/lib/Pagination/Pagination.js +70 -40
  119. package/lib/Pagination/SideButton.js +74 -58
  120. package/lib/Pagination/dictionary.js +9 -2
  121. package/lib/Pagination/index.js +13 -2
  122. package/lib/Pagination/usePagination.js +12 -2
  123. package/lib/Progress/Progress.js +99 -0
  124. package/lib/Progress/ProgressBar.js +146 -0
  125. package/lib/Progress/ProgressBarBackground.js +57 -0
  126. package/lib/Progress/index.js +16 -0
  127. package/lib/Radio/Radio.js +292 -0
  128. package/lib/Radio/RadioButton.js +141 -0
  129. package/lib/Radio/RadioGroup.js +233 -0
  130. package/lib/Radio/RadioInput.js +76 -0
  131. package/lib/Radio/RadioInput.native.js +14 -0
  132. package/lib/Radio/index.js +21 -0
  133. package/lib/RadioCard/RadioCard.js +240 -0
  134. package/lib/RadioCard/RadioCardGroup.js +251 -0
  135. package/lib/RadioCard/index.js +21 -0
  136. package/lib/Search/Search.js +243 -0
  137. package/lib/Search/dictionary.js +19 -0
  138. package/lib/Search/index.js +13 -0
  139. package/lib/Select/Group.js +33 -0
  140. package/lib/Select/Group.native.js +25 -0
  141. package/lib/Select/Item.js +29 -0
  142. package/lib/Select/Item.native.js +19 -0
  143. package/lib/Select/Picker.js +79 -0
  144. package/lib/Select/Picker.native.js +115 -0
  145. package/lib/Select/Select.js +300 -0
  146. package/lib/Select/index.js +19 -0
  147. package/lib/SideNav/Item.js +54 -33
  148. package/lib/SideNav/ItemContent.js +41 -15
  149. package/lib/SideNav/ItemsGroup.js +46 -27
  150. package/lib/SideNav/SideNav.js +92 -69
  151. package/lib/SideNav/index.js +15 -1
  152. package/lib/Skeleton/Skeleton.js +137 -0
  153. package/lib/Skeleton/index.js +13 -0
  154. package/lib/Skeleton/skeleton.constant.js +12 -0
  155. package/lib/Skeleton/skeletonWebAnimation.js +27 -0
  156. package/lib/Skeleton/useSkeletonNativeAnimation.js +37 -0
  157. package/lib/Spacer/Spacer.js +31 -12
  158. package/lib/Spacer/index.js +13 -2
  159. package/lib/StackView/StackView.js +57 -33
  160. package/lib/StackView/StackWrap.js +33 -10
  161. package/lib/StackView/StackWrap.native.js +13 -2
  162. package/lib/StackView/StackWrapBox.js +50 -23
  163. package/lib/StackView/StackWrapGap.js +45 -19
  164. package/lib/StackView/common.js +19 -4
  165. package/lib/StackView/getStackedContent.js +49 -19
  166. package/lib/StackView/index.js +29 -5
  167. package/lib/StepTracker/Step.js +245 -0
  168. package/lib/StepTracker/StepTracker.js +197 -0
  169. package/lib/StepTracker/dictionary.js +17 -0
  170. package/lib/StepTracker/index.js +13 -0
  171. package/lib/Tabs/HorizontalScroll.js +199 -0
  172. package/lib/Tabs/ScrollViewEnd.js +66 -0
  173. package/lib/Tabs/ScrollViewEnd.native.js +41 -0
  174. package/lib/Tabs/Tabs.js +117 -0
  175. package/lib/Tabs/TabsItem.js +234 -0
  176. package/lib/Tabs/TabsScrollButton.js +121 -0
  177. package/lib/Tabs/dictionary.js +18 -0
  178. package/lib/Tabs/index.js +13 -0
  179. package/lib/Tabs/itemPositions.js +128 -0
  180. package/lib/Tags/Tags.js +250 -0
  181. package/lib/Tags/index.js +13 -0
  182. package/lib/TextInput/TextArea.js +109 -0
  183. package/lib/TextInput/TextInput.js +41 -303
  184. package/lib/TextInput/TextInputBase.js +252 -0
  185. package/lib/TextInput/index.js +23 -2
  186. package/lib/TextInput/propTypes.js +42 -0
  187. package/lib/ThemeProvider/ThemeProvider.js +38 -14
  188. package/lib/ThemeProvider/index.js +61 -6
  189. package/lib/ThemeProvider/useSetTheme.js +14 -5
  190. package/lib/ThemeProvider/useTheme.js +13 -4
  191. package/lib/ThemeProvider/useThemeTokens.js +86 -19
  192. package/lib/ThemeProvider/utils/index.js +31 -2
  193. package/lib/ThemeProvider/utils/styles.js +52 -16
  194. package/lib/ThemeProvider/utils/theme-tokens.js +94 -16
  195. package/lib/ToggleSwitch/ToggleSwitch.js +76 -52
  196. package/lib/ToggleSwitch/index.js +13 -2
  197. package/lib/Tooltip/Backdrop.js +56 -0
  198. package/lib/Tooltip/Backdrop.native.js +59 -0
  199. package/lib/Tooltip/Tooltip.js +357 -0
  200. package/lib/Tooltip/dictionary.js +15 -0
  201. package/lib/Tooltip/getTooltipPosition.js +172 -0
  202. package/lib/Tooltip/index.js +13 -0
  203. package/lib/TooltipButton/TooltipButton.js +83 -0
  204. package/lib/TooltipButton/index.js +13 -0
  205. package/lib/Typography/Typography.js +58 -43
  206. package/lib/Typography/index.js +13 -2
  207. package/lib/ViewportProvider/ViewportProvider.js +46 -0
  208. package/lib/ViewportProvider/index.js +22 -38
  209. package/lib/ViewportProvider/useViewport.js +15 -0
  210. package/lib/ViewportProvider/useViewportListener.js +57 -0
  211. package/lib/index.js +518 -24
  212. package/lib/utils/a11y/index.js +18 -0
  213. package/lib/utils/a11y/textSize.js +49 -0
  214. package/lib/utils/animation/index.js +15 -2
  215. package/lib/utils/animation/useVerticalExpandAnimation.js +28 -11
  216. package/lib/utils/children.js +87 -0
  217. package/lib/utils/index.js +163 -4
  218. package/lib/utils/info/index.js +19 -0
  219. package/lib/utils/info/platform/index.js +23 -0
  220. package/lib/utils/info/platform/platform.android.js +8 -0
  221. package/lib/utils/info/platform/platform.ios.js +8 -0
  222. package/lib/utils/info/platform/platform.js +8 -0
  223. package/lib/utils/info/platform/platform.native.js +11 -0
  224. package/lib/utils/info/versions.js +16 -0
  225. package/lib/utils/input.js +51 -33
  226. package/lib/utils/pressability.js +120 -0
  227. package/lib/utils/propTypes.js +269 -116
  228. package/lib/utils/useCopy.js +51 -0
  229. package/lib/utils/useHash.js +48 -0
  230. package/lib/utils/useHash.native.js +15 -0
  231. package/lib/utils/useResponsiveProp.js +59 -0
  232. package/lib/utils/{spacing/useSpacingScale.js → useSpacingScale.js} +45 -12
  233. package/lib/utils/useUniqueId.js +13 -4
  234. package/package.json +12 -9
  235. package/release-context.json +4 -4
  236. package/src/ActivityIndicator/{Spinner.web.jsx → Spinner.jsx} +0 -0
  237. package/src/Box/Box.jsx +11 -4
  238. package/src/Button/Button.jsx +9 -5
  239. package/src/Button/ButtonBase.jsx +69 -69
  240. package/src/Button/ButtonGroup.jsx +11 -24
  241. package/src/Button/ButtonLink.jsx +14 -4
  242. package/src/Button/propTypes.js +12 -2
  243. package/src/Card/Card.jsx +4 -30
  244. package/src/Card/CardBase.jsx +57 -0
  245. package/src/Card/PressableCardBase.jsx +112 -0
  246. package/src/Card/index.js +3 -0
  247. package/src/Checkbox/Checkbox.jsx +274 -0
  248. package/src/Checkbox/CheckboxGroup.jsx +196 -0
  249. package/src/Checkbox/CheckboxInput.jsx +55 -0
  250. package/src/Checkbox/CheckboxInput.native.jsx +6 -0
  251. package/src/Checkbox/index.js +5 -0
  252. package/src/ExpandCollapse/Control.jsx +1 -1
  253. package/src/Feedback/Feedback.jsx +31 -22
  254. package/src/Fieldset/Fieldset.jsx +129 -0
  255. package/src/Fieldset/FieldsetContainer.jsx +22 -0
  256. package/src/Fieldset/FieldsetContainer.native.jsx +16 -0
  257. package/src/Fieldset/Legend.jsx +16 -0
  258. package/src/Fieldset/Legend.native.jsx +22 -0
  259. package/src/Fieldset/cssReset.js +14 -0
  260. package/src/Fieldset/index.js +3 -0
  261. package/src/Icon/Icon.jsx +21 -26
  262. package/src/Icon/IconText.jsx +63 -0
  263. package/src/Icon/index.js +3 -2
  264. package/src/IconButton/IconButton.jsx +107 -0
  265. package/src/IconButton/index.js +3 -0
  266. package/src/InputLabel/InputLabel.jsx +11 -4
  267. package/src/InputLabel/{LabelContent.web.jsx → LabelContent.jsx} +0 -0
  268. package/src/InputSupports/InputSupports.jsx +75 -0
  269. package/src/InputSupports/index.js +3 -0
  270. package/src/InputSupports/propTypes.js +44 -0
  271. package/src/InputSupports/useInputSupports.js +30 -0
  272. package/src/Link/ChevronLink.jsx +28 -7
  273. package/src/Link/InlinePressable.jsx +37 -0
  274. package/src/Link/InlinePressable.native.jsx +73 -0
  275. package/src/Link/Link.jsx +17 -13
  276. package/src/Link/LinkBase.jsx +67 -148
  277. package/src/Link/TextButton.jsx +25 -11
  278. package/src/Link/index.js +2 -1
  279. package/src/List/List.jsx +47 -0
  280. package/src/List/ListItem.jsx +187 -0
  281. package/src/List/index.js +3 -0
  282. package/src/Modal/Modal.jsx +185 -0
  283. package/src/Modal/dictionary.js +9 -0
  284. package/src/Modal/index.js +3 -0
  285. package/src/Notification/Notification.jsx +149 -0
  286. package/src/Notification/dictionary.js +8 -0
  287. package/src/Notification/index.js +3 -0
  288. package/src/Pagination/PageButton.jsx +3 -17
  289. package/src/Pagination/SideButton.jsx +27 -38
  290. package/src/Progress/Progress.jsx +77 -0
  291. package/src/Progress/ProgressBar.jsx +110 -0
  292. package/src/Progress/ProgressBarBackground.jsx +34 -0
  293. package/src/Progress/index.js +6 -0
  294. package/src/Radio/Radio.jsx +233 -0
  295. package/src/Radio/RadioButton.jsx +131 -0
  296. package/src/Radio/RadioGroup.jsx +198 -0
  297. package/src/Radio/RadioInput.jsx +57 -0
  298. package/src/Radio/RadioInput.native.jsx +6 -0
  299. package/src/Radio/index.js +5 -0
  300. package/src/RadioCard/RadioCard.jsx +191 -0
  301. package/src/RadioCard/RadioCardGroup.jsx +211 -0
  302. package/src/RadioCard/index.js +5 -0
  303. package/src/Search/Search.jsx +204 -0
  304. package/src/Search/dictionary.js +12 -0
  305. package/src/Search/index.js +3 -0
  306. package/src/Select/Group.jsx +15 -0
  307. package/src/Select/Group.native.jsx +14 -0
  308. package/src/Select/Item.jsx +11 -0
  309. package/src/Select/Item.native.jsx +10 -0
  310. package/src/Select/Picker.jsx +67 -0
  311. package/src/Select/Picker.native.jsx +95 -0
  312. package/src/Select/Select.jsx +255 -0
  313. package/src/Select/index.js +8 -0
  314. package/src/SideNav/Item.jsx +2 -2
  315. package/src/Skeleton/Skeleton.jsx +98 -0
  316. package/src/Skeleton/index.js +3 -0
  317. package/src/Skeleton/skeleton.constant.js +3 -0
  318. package/src/Skeleton/skeletonWebAnimation.js +13 -0
  319. package/src/Skeleton/useSkeletonNativeAnimation.js +27 -0
  320. package/src/StackView/StackView.jsx +25 -17
  321. package/src/StackView/StackWrap.jsx +9 -1
  322. package/src/StackView/StackWrapBox.jsx +19 -7
  323. package/src/StackView/StackWrapGap.jsx +15 -5
  324. package/src/StackView/getStackedContent.jsx +8 -2
  325. package/src/StepTracker/Step.jsx +202 -0
  326. package/src/StepTracker/StepTracker.jsx +163 -0
  327. package/src/StepTracker/dictionary.js +10 -0
  328. package/src/StepTracker/index.js +3 -0
  329. package/src/Tabs/HorizontalScroll.jsx +165 -0
  330. package/src/Tabs/ScrollViewEnd.jsx +53 -0
  331. package/src/Tabs/ScrollViewEnd.native.jsx +24 -0
  332. package/src/Tabs/Tabs.jsx +89 -0
  333. package/src/Tabs/TabsItem.jsx +204 -0
  334. package/src/Tabs/TabsScrollButton.jsx +100 -0
  335. package/src/Tabs/dictionary.js +11 -0
  336. package/src/Tabs/index.js +3 -0
  337. package/src/Tabs/itemPositions.js +101 -0
  338. package/src/Tags/Tags.jsx +207 -0
  339. package/src/Tags/index.js +3 -0
  340. package/src/TextInput/TextArea.jsx +78 -0
  341. package/src/TextInput/TextInput.jsx +17 -290
  342. package/src/TextInput/TextInputBase.jsx +210 -0
  343. package/src/TextInput/index.js +2 -1
  344. package/src/TextInput/propTypes.js +29 -0
  345. package/src/ThemeProvider/useThemeTokens.js +56 -5
  346. package/src/ThemeProvider/utils/styles.js +18 -5
  347. package/src/ThemeProvider/utils/theme-tokens.js +46 -5
  348. package/src/ToggleSwitch/ToggleSwitch.jsx +3 -4
  349. package/src/Tooltip/Backdrop.jsx +60 -0
  350. package/src/Tooltip/Backdrop.native.jsx +33 -0
  351. package/src/Tooltip/Tooltip.jsx +294 -0
  352. package/src/Tooltip/dictionary.js +8 -0
  353. package/src/Tooltip/getTooltipPosition.js +161 -0
  354. package/src/Tooltip/index.js +3 -0
  355. package/src/TooltipButton/TooltipButton.jsx +49 -0
  356. package/src/TooltipButton/index.js +3 -0
  357. package/src/Typography/Typography.jsx +10 -20
  358. package/src/ViewportProvider/ViewportProvider.jsx +21 -0
  359. package/src/ViewportProvider/index.jsx +2 -41
  360. package/src/ViewportProvider/useViewport.js +5 -0
  361. package/src/ViewportProvider/useViewportListener.js +43 -0
  362. package/src/index.js +31 -3
  363. package/src/utils/a11y/index.js +1 -0
  364. package/src/utils/a11y/textSize.js +30 -0
  365. package/src/utils/children.jsx +66 -0
  366. package/src/utils/index.js +11 -1
  367. package/src/utils/info/index.js +8 -0
  368. package/src/utils/info/platform/index.js +11 -0
  369. package/src/utils/info/platform/platform.android.js +1 -0
  370. package/src/utils/info/platform/platform.ios.js +1 -0
  371. package/src/utils/info/platform/platform.js +1 -0
  372. package/src/utils/info/platform/platform.native.js +4 -0
  373. package/src/utils/info/versions.js +6 -0
  374. package/src/utils/input.js +20 -12
  375. package/src/utils/pressability.js +96 -0
  376. package/src/utils/propTypes.js +195 -56
  377. package/src/utils/useCopy.js +39 -0
  378. package/src/utils/useHash.js +34 -0
  379. package/src/utils/useHash.native.js +6 -0
  380. package/src/utils/useResponsiveProp.js +50 -0
  381. package/src/utils/{spacing/useSpacingScale.js → useSpacingScale.js} +25 -10
  382. package/stories/A11yText/A11yText.stories.jsx +4 -8
  383. package/stories/Button/Button.stories.jsx +5 -0
  384. package/stories/Card/Card.stories.jsx +1 -1
  385. package/stories/Checkbox/Checkbox.stories.jsx +94 -0
  386. package/stories/Feedback/Feedback.stories.jsx +5 -6
  387. package/stories/Icon/Icon.stories.jsx +27 -7
  388. package/stories/IconButton/IconButton.stories.jsx +50 -0
  389. package/stories/InputLabel/InputLabel.stories.jsx +8 -3
  390. package/stories/Link/ChevronLink.stories.jsx +3 -3
  391. package/stories/Link/Link.stories.jsx +28 -18
  392. package/stories/List/List.stories.jsx +117 -0
  393. package/stories/Modal/Modal.stories.jsx +29 -0
  394. package/stories/Notification/Notification.stories.jsx +82 -0
  395. package/stories/Progress/Progress.stories.jsx +93 -0
  396. package/stories/Radio/Radio.stories.jsx +100 -0
  397. package/stories/RadioCard/RadioCard.stories.jsx +98 -0
  398. package/stories/Search/Search.stories.jsx +16 -0
  399. package/stories/Select/Select.stories.jsx +55 -0
  400. package/stories/Skeleton/Skeleton.stories.jsx +36 -0
  401. package/stories/Spacer/Spacer.stories.jsx +7 -2
  402. package/stories/StackView/StackView.stories.jsx +10 -0
  403. package/stories/StackView/StackWrap.stories.jsx +12 -0
  404. package/stories/StepTracker/StepTracker.stories.jsx +71 -0
  405. package/stories/Tabs/Tabs.stories.jsx +97 -0
  406. package/stories/Tags/Tags.stories.jsx +69 -0
  407. package/stories/TextInput/TextArea.stories.jsx +100 -0
  408. package/stories/Tooltip/Tooltip.stories.jsx +81 -0
  409. package/stories/TooltipButton/TooltipButton.stories.jsx +11 -0
  410. package/stories/{platform-supports.web.jsx → platform-supports.jsx} +0 -0
  411. package/stories/supports.jsx +36 -2
  412. package/__fixtures__/accessible.icon.svg +0 -6
  413. package/babel.config.json +0 -8
  414. package/docs/Contributing.stories.mdx +0 -9
  415. package/docs/Fonts.stories.mdx +0 -104
  416. package/docs/Icons.stories.mdx +0 -144
  417. package/docs/Introduction.stories.mdx +0 -9
  418. package/lib/ActivityIndicator/Spinner.web.js +0 -55
  419. package/lib/InputLabel/LabelContent.web.js +0 -17
  420. package/lib/Pagination/useCopy.js +0 -10
  421. package/lib/config/svgr-icons-web.js +0 -9
  422. package/lib/config/svgr-icons.js +0 -52
  423. package/lib/utils/spacing/index.js +0 -2
  424. package/lib/utils/spacing/utils.js +0 -32
  425. package/src/Pagination/useCopy.js +0 -7
  426. package/src/config/svgr-icons-web.js +0 -11
  427. package/src/config/svgr-icons.js +0 -46
  428. package/src/utils/spacing/index.js +0 -3
  429. package/src/utils/spacing/utils.js +0 -28
@@ -1,24 +1,20 @@
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-themes/schema'
10
2
 
11
3
  // 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
4
+ /* eslint-disable-next-line import/no-extraneous-dependencies */
5
+ import {
6
+ ChevronLeft,
7
+ ChevronRight,
8
+ Checkmark,
9
+ Close,
10
+ Question,
11
+ SearchBold,
12
+ Times
13
+ } from '@telus-uds/palette-allium/build/rn/icons'
18
14
 
19
15
  const transparent = 'rgba(0, 0, 0, 0)'
20
16
 
21
- module.exports = {
17
+ export default {
22
18
  metadata: {
23
19
  name: 'test'
24
20
  },
@@ -114,7 +110,9 @@ module.exports = {
114
110
  values: [true],
115
111
  type: 'variant'
116
112
  },
117
- ...buttonAppearances
113
+ focus: appearances.Button.focus,
114
+ hover: appearances.Button.hover,
115
+ pressed: appearances.Button.pressed
118
116
  },
119
117
  tokens: {
120
118
  borderColor: '#0e6ac8',
@@ -125,12 +123,12 @@ module.exports = {
125
123
  outerBorderColor: transparent,
126
124
  outerBorderWidth: 4,
127
125
  outerBorderGap: 2,
128
- outerBorderRadius: 2,
129
126
 
130
127
  fontSize: 16,
131
128
  color: '#0e6ac8',
132
129
  lineHeight: 1.5,
133
130
  fontWeight: '600',
131
+ alignSelf: 'flex-start',
134
132
 
135
133
  backgroundColor: '#ffffff',
136
134
  opacity: 1,
@@ -225,8 +223,7 @@ module.exports = {
225
223
  {
226
224
  if: { rounded: true },
227
225
  tokens: {
228
- borderRadius: 48,
229
- outerBorderRadius: 16
226
+ borderRadius: 48
230
227
  }
231
228
  },
232
229
  {
@@ -244,8 +241,7 @@ module.exports = {
244
241
  {
245
242
  if: { rounded: true, pressed: true },
246
243
  tokens: {
247
- borderRadius: 0,
248
- outerBorderRadius: 0
244
+ borderRadius: 0
249
245
  }
250
246
  },
251
247
  {
@@ -290,10 +286,72 @@ module.exports = {
290
286
  },
291
287
  ButtonGroup: {
292
288
  tokens: {
293
- gap: 8,
294
- direction: 'row'
289
+ space: 2,
290
+ direction: 'row',
291
+ alignItems: 'flex-start',
292
+ justifyContent: 'flex-start',
293
+ flexGrow: 1
295
294
  }
296
295
  },
296
+ ButtonGroupItem: {
297
+ appearances: {
298
+ focus: appearances.ButtonGroupItem.focus,
299
+ hover: appearances.ButtonGroupItem.hover,
300
+ pressed: appearances.ButtonGroupItem.pressed,
301
+ selected: appearances.ButtonGroupItem.selected
302
+ },
303
+ tokens: {
304
+ borderColor: '#0e6ac8',
305
+ borderWidth: 2,
306
+ borderRadius: 0,
307
+ shadow: null,
308
+
309
+ outerBorderColor: transparent,
310
+ outerBorderWidth: 4,
311
+ outerBorderGap: 2,
312
+
313
+ fontSize: 16,
314
+ color: '#0e6ac8',
315
+ lineHeight: 1.5,
316
+ fontWeight: '600',
317
+ alignSelf: 'flex-start',
318
+
319
+ backgroundColor: '#ffffff',
320
+ opacity: 1,
321
+ paddingLeft: 24,
322
+ paddingRight: 24,
323
+ paddingTop: 8,
324
+ paddingBottom: 8,
325
+
326
+ width: null
327
+ },
328
+ rules: [
329
+ {
330
+ if: { focus: true },
331
+ tokens: {
332
+ borderWidth: 4,
333
+ outerBorderColor: '#0e6ac8',
334
+ opacity: 0.5
335
+ }
336
+ },
337
+ {
338
+ if: { hover: true },
339
+ tokens: {
340
+ borderWidth: 6
341
+ }
342
+ },
343
+ {
344
+ if: { pressed: true },
345
+ tokens: {
346
+ borderWidth: 8
347
+ }
348
+ },
349
+ {
350
+ if: { selected: true },
351
+ tokens: { backgroundColor: '#0e6ac8', color: '#ffffff', opacity: 1 }
352
+ }
353
+ ]
354
+ },
297
355
  Card: {
298
356
  appearances: {
299
357
  background: {
@@ -304,9 +362,10 @@ module.exports = {
304
362
  values: ['narrow', 'intermediate', 'compact', 'custom'],
305
363
  type: 'variant'
306
364
  },
307
- viewport: systemAppearances.viewport
365
+ viewport: appearances.system.viewport
308
366
  },
309
367
  tokens: {
368
+ flex: 1,
310
369
  backgroundColor: '#ffffff',
311
370
  borderColor: '#666666',
312
371
  borderRadius: 6,
@@ -388,6 +447,85 @@ module.exports = {
388
447
  }
389
448
  ]
390
449
  },
450
+ Checkbox: {
451
+ appearances: {
452
+ error: appearances.Checkbox.error,
453
+ focus: appearances.Checkbox.focus,
454
+ inactive: appearances.Checkbox.inactive
455
+ },
456
+ tokens: {
457
+ containerBackgroundColor: transparent,
458
+ feedbackMarginBottom: 0,
459
+ feedbackMarginTop: 2,
460
+ feedbackPosition: 'bottom',
461
+ icon: Checkmark,
462
+ iconBackgroundColor: '#7c53a5',
463
+ iconColor: '#ffffff',
464
+ iconSize: 18,
465
+ inputBackgroundColor: '#ffffff',
466
+ inputBorderColor: '#676e73',
467
+ inputBorderRadius: 4,
468
+ inputBorderWidth: 1,
469
+ inputHeight: 20,
470
+ inputOutlineColor: null,
471
+ inputOutlineWidth: 0,
472
+ inputShadow: {
473
+ color: '#00000044',
474
+ offsetY: 1,
475
+ offsetX: 1,
476
+ spread: 0,
477
+ blur: 1,
478
+ inset: false
479
+ },
480
+ inputWidth: 20,
481
+ labelColor: '#414547',
482
+ labelFontSize: 18,
483
+ labelFontWeight: '500',
484
+ labelLineHeight: 1.5,
485
+ labelMarginLeft: 8
486
+ },
487
+ rules: [
488
+ {
489
+ if: { error: true },
490
+ tokens: {
491
+ inputBorderColor: '#e12339'
492
+ }
493
+ },
494
+ {
495
+ if: { focus: true },
496
+ tokens: {
497
+ inputBorderColor: '#7c53a5',
498
+ inputBorderWidth: 3
499
+ }
500
+ },
501
+ {
502
+ if: { inactive: true },
503
+ tokens: {
504
+ inputBorderColor: 'transparent',
505
+ inputBackgroundColor: '#e3e6e8',
506
+ iconBackgroundColor: '#e3e6e8',
507
+ iconColor: 'rgba(103, 110, 115, 1)',
508
+ labelColor: '#676e73'
509
+ }
510
+ }
511
+ ]
512
+ },
513
+ ChevronLink: {
514
+ appearances: {},
515
+ tokens: {
516
+ leftIcon: ChevronLeft,
517
+ rightIcon: ChevronRight,
518
+ iconDisplace: 4
519
+ }
520
+ },
521
+ CheckboxGroup: {
522
+ appearances: {},
523
+ tokens: {
524
+ fieldSpace: 2,
525
+ space: 2
526
+ },
527
+ rules: []
528
+ },
391
529
  Divider: {
392
530
  appearances: {
393
531
  weight: {
@@ -463,6 +601,353 @@ module.exports = {
463
601
  }
464
602
  ]
465
603
  },
604
+ IconButton: {
605
+ appearances: {},
606
+ tokens: {},
607
+ rules: []
608
+ },
609
+ Progress: {
610
+ appearances: {
611
+ size: { values: ['mini'], type: 'variant' }
612
+ },
613
+ tokens: {
614
+ backgroundColor: '#ffffff',
615
+ borderWidth: 1,
616
+ borderColor: '#f4f4f7',
617
+ borderRadius: 12,
618
+ height: 16
619
+ },
620
+ rules: [{ if: { size: 'mini' }, tokens: { height: 8 } }]
621
+ },
622
+ ProgressBar: {
623
+ appearances: {
624
+ inactive: appearances.ProgressBar.inactive,
625
+ negative: { values: [true], type: 'variant' }
626
+ },
627
+ tokens: {
628
+ backgroundColor: '#08804b',
629
+ borderRadius: 12,
630
+ outlineWidth: 1,
631
+ outlineColor: '#2b8000'
632
+ },
633
+ rules: [
634
+ {
635
+ if: { inactive: true },
636
+ tokens: {
637
+ backgroundColor: '#b2b9bf',
638
+ outlineColor: '#f4f4f7'
639
+ }
640
+ },
641
+ {
642
+ if: { negative: true },
643
+ tokens: {
644
+ backgroundColor: '#c12335',
645
+ outlineColor: '#c12335'
646
+ }
647
+ }
648
+ ]
649
+ },
650
+ RadioCardGroup: {
651
+ appearances: {
652
+ viewport: appearances.system.viewport
653
+ },
654
+ tokens: {
655
+ direction: 'column',
656
+ fieldSpace: 2,
657
+ space: 2
658
+ },
659
+ rules: [
660
+ {
661
+ if: {
662
+ viewport: ['lg', 'xl']
663
+ },
664
+ tokens: {
665
+ direction: 'row'
666
+ }
667
+ }
668
+ ]
669
+ },
670
+ RadioGroup: {
671
+ appearances: {},
672
+ tokens: {
673
+ fieldSpace: 2,
674
+ space: 2
675
+ },
676
+ rules: []
677
+ },
678
+ Modal: {
679
+ appearances: {},
680
+ tokens: {
681
+ backdropColor: 'rgba(0,0,0,0.5)',
682
+ backdropOpacity: 1,
683
+ maxWidth: 600,
684
+ containerPaddingLeft: 16,
685
+ containerPaddingRight: 16,
686
+ containerPaddingTop: 16,
687
+ containerPaddingBottom: 16,
688
+ backgroundColor: '#fff',
689
+ borderRadius: 4,
690
+ paddingLeft: 24,
691
+ paddingRight: 24,
692
+ paddingTop: 24,
693
+ paddingBottom: 24,
694
+
695
+ closeIcon: Close,
696
+ closeIconSize: 24,
697
+ closeIconColor: '#000'
698
+ },
699
+ rules: []
700
+ },
701
+ Search: {
702
+ appearances: {
703
+ focus: appearances.Search.focus,
704
+ hover: appearances.Search.hover,
705
+ inactive: appearances.Search.inactive
706
+ },
707
+ tokens: {
708
+ borderRadius: 32,
709
+ borderWidth: 1,
710
+ borderColor: '#00000044',
711
+ paddingTop: 6,
712
+ paddingBottom: 6,
713
+ paddingLeft: 16,
714
+ paddingRight: 6,
715
+ outerBorderWidth: 1,
716
+ outerBorderColor: transparent,
717
+ outerBorderRadius: 32,
718
+ buttonsGap: 2,
719
+ clearButtonIcon: Times,
720
+ submitButtonIcon: SearchBold
721
+ },
722
+ rules: [
723
+ {
724
+ if: { focus: true },
725
+ tokens: {
726
+ outerBorderColor: '#debc06'
727
+ }
728
+ },
729
+ {
730
+ if: { hover: true },
731
+ tokens: {
732
+ outerBorderColor: '#6666cc'
733
+ }
734
+ }
735
+ ]
736
+ },
737
+ SearchButton: {
738
+ appearances: {},
739
+ tokens: {},
740
+ rules: []
741
+ },
742
+ Notification: {
743
+ appearances: {},
744
+ tokens: {
745
+ dismissIcon: Close
746
+ },
747
+ rules: []
748
+ },
749
+ RadioCard: {
750
+ appearances: {
751
+ checked: appearances.Radio.checked,
752
+ error: appearances.Radio.error,
753
+ focus: appearances.Radio.focus,
754
+ hover: appearances.Radio.hover,
755
+ inactive: appearances.Radio.inactive
756
+ },
757
+ tokens: {
758
+ // Taken from Allium theme snapshot
759
+ flex: 1,
760
+ backgroundColor: '#ffffff',
761
+ borderColor: '#b2b9bf',
762
+ borderRadius: 6,
763
+ borderWidth: 1,
764
+ color: '#2c2e30',
765
+ contentSpace: 2,
766
+ fontSize: 20,
767
+ fontWeight: '500',
768
+ letterSpacing: 0,
769
+ lineHeight: 1.4,
770
+ outerBorderColor: transparent,
771
+ outerBorderGap: 0,
772
+ outerBorderWidth: 0,
773
+ paddingBottom: 16,
774
+ paddingLeft: 10,
775
+ paddingRight: 16,
776
+ paddingTop: 16,
777
+ radioCheckedBackgroundColor: '#7c53a5',
778
+ radioCheckedSize: 12,
779
+ radioInputBackgroundColor: '#ffffff',
780
+ radioInputBorderColor: '#676e73',
781
+ radioInputBorderWidth: 1,
782
+ radioInputOutlineColor: transparent,
783
+ radioInputOutlineWidth: 0,
784
+ radioInputSize: 20,
785
+ radioOuterBorderColor: transparent,
786
+ radioOuterBorderGap: 0,
787
+ radioOuterBorderWidth: 0,
788
+ radioSpace: 2,
789
+ minWidth: 288,
790
+ shadow: null,
791
+ textTransform: 'none'
792
+ },
793
+ rules: [
794
+ {
795
+ if: {
796
+ viewport: ['lg', 'xl']
797
+ },
798
+ tokens: {
799
+ fontSize: 24,
800
+ lineHeight: 1.33333333333,
801
+ paddingBottom: 24,
802
+ paddingLeft: 16,
803
+ paddingRight: 24,
804
+ paddingTop: 16
805
+ }
806
+ },
807
+ {
808
+ if: {
809
+ hover: true
810
+ },
811
+ tokens: {
812
+ borderColor: '#676e73',
813
+ outerBorderColor: '#e3e6e8',
814
+ outerBorderWidth: 2,
815
+ radioOuterBorderColor: '#e3e6e8',
816
+ radioOuterBorderWidth: 2
817
+ }
818
+ },
819
+ {
820
+ description: 'Pressed state matches hover state plus light grey background',
821
+ if: {
822
+ pressed: true
823
+ },
824
+ tokens: {
825
+ backgroundColor: '#f4f4f7',
826
+ borderColor: '#676e73',
827
+ outerBorderColor: '#e3e6e8',
828
+ outerBorderWidth: 2
829
+ }
830
+ },
831
+ {
832
+ if: {
833
+ focus: true
834
+ },
835
+ tokens: {
836
+ radioIputBorderColor: '#7c53a5',
837
+ radioInputBorderWidth: 3,
838
+ outerBorderColor: '#676e73',
839
+ outerBorderGap: 2,
840
+ outerBorderWidth: 2
841
+ }
842
+ },
843
+ {
844
+ if: {
845
+ inactive: true
846
+ },
847
+ tokens: {
848
+ backgroundColor: '#f4f4f7',
849
+ borderColor: 'transparent',
850
+ radioInputBackgroundColor: '#e3e6e8',
851
+ radioInputBorderColor: 'rgba(0, 0, 0, 0)',
852
+ labelColor: '#676e73'
853
+ }
854
+ },
855
+ {
856
+ if: {
857
+ error: true
858
+ },
859
+ tokens: {
860
+ borderColor: '#e12339',
861
+ color: '#e12339',
862
+ radioInputBorderColor: '#e12339'
863
+ }
864
+ }
865
+ ]
866
+ },
867
+ Tabs: {
868
+ appearances: {},
869
+ tokens: {
870
+ buttonClearance: 20,
871
+ gutter: 12,
872
+ nextIcon: ChevronRight,
873
+ previousIcon: ChevronLeft,
874
+ borderBottomWidth: 1,
875
+ borderBottomColor: '#ebefed',
876
+ space: 1
877
+ },
878
+ rules: []
879
+ },
880
+ TabsItem: {
881
+ appearances: {},
882
+ tokens: {
883
+ backgroundColor: transparent,
884
+ borderColor: transparent,
885
+ borderRadius: 0,
886
+ borderWidth: 0,
887
+ color: '#034045',
888
+ fontName: '',
889
+ fontScaleCap: 66,
890
+ fontSize: 14,
891
+ fontWeight: '700',
892
+ highlightBarBorderRadius: 0,
893
+ highlightBarBorderWidth: 0,
894
+ highlightBarHeight: 0,
895
+ highlightColor: transparent,
896
+ highlightTriangleSize: 0,
897
+ letterSpacing: 0,
898
+ lineHeight: 1,
899
+ maxWidth: 150,
900
+ paddingHorizontal: 16,
901
+ paddingVertical: 16,
902
+ space: 0,
903
+ textAlign: 'left',
904
+ textTransform: 'uppercase'
905
+ },
906
+ rules: [
907
+ {
908
+ if: { hover: true },
909
+ tokens: {
910
+ highlightBarHeight: 2,
911
+ highlightColor: '#81a0a2'
912
+ }
913
+ },
914
+ {
915
+ if: { focus: true },
916
+ tokens: {
917
+ borderColor: '#81a0a2',
918
+ borderWidth: 1
919
+ }
920
+ },
921
+ {
922
+ if: { pressed: true },
923
+ tokens: {
924
+ backgroundColor: '#ebefed'
925
+ }
926
+ },
927
+ {
928
+ if: { selected: true },
929
+ tokens: {
930
+ highlightBarHeight: 2,
931
+ highlightColor: '#034045',
932
+ highlightTriangleSize: 8
933
+ }
934
+ }
935
+ ]
936
+ },
937
+ TabsScrollButton: {
938
+ appearances: {},
939
+ tokens: {
940
+ backgroundColor: '#ffffff',
941
+ borderColor: '#81a0a2',
942
+ borderRadius: 12,
943
+ borderWidth: 1,
944
+ iconColor: '#81a0a2',
945
+ iconSize: 24,
946
+ padding: 0,
947
+ shadow: null
948
+ },
949
+ rules: []
950
+ },
466
951
  Typography: {
467
952
  appearances: {
468
953
  weight: {
@@ -494,7 +979,7 @@ module.exports = {
494
979
  values: [true],
495
980
  type: 'variant'
496
981
  },
497
- viewport: systemAppearances.viewport
982
+ viewport: appearances.system.viewport
498
983
  },
499
984
  tokens: {
500
985
  fontWeight: '400',
@@ -725,8 +1210,7 @@ module.exports = {
725
1210
  values: [true],
726
1211
  type: 'state'
727
1212
  },
728
- iconPosition: linkAppearances.iconPosition,
729
- component: linkAppearances.component
1213
+ iconPosition: appearances.Link.iconPosition
730
1214
  },
731
1215
  tokens: {
732
1216
  color: '#0000ff',
@@ -744,9 +1228,7 @@ module.exports = {
744
1228
  textLineStyle: 'solid',
745
1229
 
746
1230
  iconSize: 18,
747
- iconGapBefore: 4,
748
- iconGapAfter: 4,
749
- iconScale: 1
1231
+ iconSpace: 1
750
1232
  },
751
1233
  rules: [
752
1234
  {
@@ -768,14 +1250,6 @@ module.exports = {
768
1250
  color: '#ff0000',
769
1251
  textLine: 'none'
770
1252
  }
771
- },
772
- {
773
- if: { component: 'ChevronLink', iconPosition: 'left' },
774
- tokens: { icon: chevronLeft }
775
- },
776
- {
777
- if: { component: 'ChevronLink', iconPosition: 'right' },
778
- tokens: { icon: chevronRight }
779
1253
  }
780
1254
  ]
781
1255
  },
@@ -825,10 +1299,73 @@ module.exports = {
825
1299
  }
826
1300
  ]
827
1301
  },
1302
+ Radio: {
1303
+ appearances: {
1304
+ checked: appearances.Radio.checked,
1305
+ error: appearances.Radio.error,
1306
+ focus: appearances.Radio.focus,
1307
+ hover: appearances.Radio.hover,
1308
+ inactive: appearances.Radio.inactive
1309
+ },
1310
+ tokens: {
1311
+ checkedBackgroundColor: '#7c53a5',
1312
+ checkedSize: 12,
1313
+ containerBackgroundColor: '#ffffff',
1314
+ containerBorderRadius: 12,
1315
+ containerOpacity: 1,
1316
+ containerPaddingBottom: 12,
1317
+ containerPaddingLeft: 18,
1318
+ containerPaddingRight: 18,
1319
+ containerPaddingTop: 12,
1320
+ containerShadow: null,
1321
+ descriptionFontSize: 14,
1322
+ descriptionLineHeight: 1.4,
1323
+ descriptionMarginLeft: null,
1324
+ inputBackgroundColor: '#ffffff',
1325
+ inputBorderColor: '#676e73',
1326
+ inputBorderWidth: 1,
1327
+ inputOutlineColor: null,
1328
+ inputOutlineWidth: 0,
1329
+ inputSize: 20,
1330
+ inputShadow: null,
1331
+ outerBorderWidth: 0,
1332
+ outerBorderColor: transparent,
1333
+ outerBorderGap: 0,
1334
+ labelColor: '#414547',
1335
+ labelFontName: '',
1336
+ labelFontSize: 18,
1337
+ labelFontWeight: '500',
1338
+ labelLineHeight: 1.5,
1339
+ labelMarginLeft: 8
1340
+ },
1341
+ rules: [
1342
+ {
1343
+ if: { error: true },
1344
+ tokens: {
1345
+ inputBorderColor: '#e12339'
1346
+ }
1347
+ },
1348
+ {
1349
+ if: { focus: true },
1350
+ tokens: {
1351
+ inputBorderColor: '#7c53a5',
1352
+ inputBorderWidth: 3
1353
+ }
1354
+ },
1355
+ {
1356
+ if: { inactive: true },
1357
+ tokens: {
1358
+ inputBorderColor: 'transparent',
1359
+ inputBackgroundColor: '#e3e6e8',
1360
+ labelColor: '#676e73'
1361
+ }
1362
+ }
1363
+ ]
1364
+ },
828
1365
  SideNav: {},
829
1366
  SideNavItem: {
830
1367
  appearances: {
831
- ...sideNavItemAppearances
1368
+ type: appearances.SideNavItem.type
832
1369
  },
833
1370
  rules: [
834
1371
  {
@@ -845,19 +1382,74 @@ module.exports = {
845
1382
  StackView: {
846
1383
  tokens: {}
847
1384
  },
1385
+ StepTracker: {
1386
+ appearances: {},
1387
+ tokens: {
1388
+ completedIcon: null,
1389
+ completedIconColor: '#ffffff',
1390
+ completedIconSize: 12,
1391
+ connectorColor: '#676e73',
1392
+ connectorHeight: 1,
1393
+ connectorMinWidth: 16,
1394
+ connectorCompletedHeight: 3,
1395
+ connectorCompletedColor: '#7c53a5',
1396
+ containerPaddingBottom: 0,
1397
+ containerPaddingLeft: 0,
1398
+ containerPaddingRight: 0,
1399
+ containerPaddingTop: 0,
1400
+ knobBackgroundColor: transparent,
1401
+ knobBorderWidth: 1,
1402
+ knobBorderColor: '#676e73',
1403
+ knobCompletedBackgroundColor: '#7c53a5',
1404
+ knobCompletedBorderColor: '#7c53a5',
1405
+ knobCompletedPaddingLeft: 1,
1406
+ knobCompletedPaddingTop: 1,
1407
+ knobCurrentBackgroundColor: transparent,
1408
+ knobCurrentBorderColor: '#7c53a5',
1409
+ knobCurrentBorderWidth: 2,
1410
+ knobCurrentInnerColor: '#7c53a5',
1411
+ knobCurrentInnerSize: 8,
1412
+ knobCurrentPaddingLeft: 2,
1413
+ knobCurrentPaddingTop: 2,
1414
+ knobSize: 16,
1415
+ labelColor: '#676e73',
1416
+ labelCurrentColor: '#7c53a5',
1417
+ labelCurrentFontWeight: '600',
1418
+ labelDirection: 'column',
1419
+ labelFontSize: 16,
1420
+ labelFontWeight: '400',
1421
+ labelFontName: '',
1422
+ labelGap: 0,
1423
+ labelLineHeight: 1.5,
1424
+ labelMarginTop: 8,
1425
+ labelPaddingLeft: 16,
1426
+ labelPaddingRight: 16,
1427
+ showStepLabel: false,
1428
+ showStepName: true,
1429
+ showStepTrackerLabel: true
1430
+ },
1431
+ rules: [
1432
+ {
1433
+ if: { viewport: ['lg', 'xl'] },
1434
+ tokens: {
1435
+ showStepLabel: true,
1436
+ showStepTrackerLabel: false
1437
+ }
1438
+ }
1439
+ ]
1440
+ },
848
1441
  ToggleSwitch: {
849
1442
  appearances: {
850
- focus: toggleSwitchAppearances.focus,
851
- hover: toggleSwitchAppearances.hover,
852
- pressed: toggleSwitchAppearances.pressed,
853
- inactive: toggleSwitchAppearances.inactive,
854
- selected: toggleSwitchAppearances.selected
1443
+ focus: appearances.ToggleSwitch.focus,
1444
+ hover: appearances.ToggleSwitch.hover,
1445
+ pressed: appearances.ToggleSwitch.pressed,
1446
+ inactive: appearances.ToggleSwitch.inactive,
1447
+ selected: appearances.ToggleSwitch.selected
855
1448
  },
856
1449
  tokens: {
857
1450
  outerBorderColor: '#000000',
858
1451
  outerBorderWidth: 2,
859
1452
  outerBorderGap: 2,
860
- outerBorderRadius: 8,
861
1453
  outerBackgroundColor: '#333333',
862
1454
  borderColor: '#666666',
863
1455
  borderWidth: 2,
@@ -868,6 +1460,7 @@ module.exports = {
868
1460
  paddingRight: 2,
869
1461
  paddingTop: 2,
870
1462
  paddingBottom: 2,
1463
+ alignSelf: 'flex-start',
871
1464
 
872
1465
  trackBorderWidth: 2,
873
1466
  trackBorderColor: '#bbbbbb',
@@ -922,7 +1515,10 @@ module.exports = {
922
1515
  },
923
1516
  TextInput: {
924
1517
  appearances: {
925
- ...textInputAppearances
1518
+ validation: appearances.TextInput.validation,
1519
+ focus: appearances.TextInput.focus,
1520
+ hover: appearances.TextInput.hover,
1521
+ inactive: appearances.TextInput.inactive
926
1522
  },
927
1523
  tokens: {
928
1524
  borderRadius: 4,
@@ -933,8 +1529,7 @@ module.exports = {
933
1529
  paddingLeft: 6,
934
1530
  paddingRight: 6,
935
1531
  outerBorderWidth: 1,
936
- outerBorderColor: transparent,
937
- outerBorderRadius: 4
1532
+ outerBorderColor: transparent
938
1533
  },
939
1534
  rules: [
940
1535
  {
@@ -978,7 +1573,7 @@ module.exports = {
978
1573
  },
979
1574
  Feedback: {
980
1575
  appearances: {
981
- ...feedbackAppearances
1576
+ validation: appearances.Feedback.validation
982
1577
  },
983
1578
  tokens: {
984
1579
  borderColor: '#eee',
@@ -992,8 +1587,232 @@ module.exports = {
992
1587
  paddingRight: 12
993
1588
  },
994
1589
  rules: [
995
- { if: { state: 'success' }, tokens: { color: 'green' } },
996
- { if: { state: 'error' }, tokens: { color: 'red' } }
1590
+ { if: { validation: 'success' }, tokens: { color: 'green' } },
1591
+ { if: { validation: 'error' }, tokens: { color: 'red' } }
1592
+ ]
1593
+ },
1594
+ List: {
1595
+ appearances: {
1596
+ size: {
1597
+ values: ['large', 'small'],
1598
+ type: 'variant'
1599
+ },
1600
+ compact: {
1601
+ values: [true],
1602
+ type: 'variant'
1603
+ }
1604
+ },
1605
+ tokens: {
1606
+ interItemMargin: 8,
1607
+ interItemMarginWithDivider: 16,
1608
+ dividerColor: '#666666',
1609
+ dividerSize: 1,
1610
+ itemBulletContainerWidth: 16,
1611
+ itemBulletContainerAlign: 'center',
1612
+ itemBulletWidth: 4,
1613
+ itemBulletHeight: 4,
1614
+ itemBulletColor: '#6666cc',
1615
+ itemIconSize: 16,
1616
+ itemIconColor: '#6666cc',
1617
+ listGutter: 10,
1618
+ itemLineHeight: 1.5
1619
+ },
1620
+ rules: [
1621
+ {
1622
+ if: { size: 'large' },
1623
+ tokens: {
1624
+ itemFontSize: 20,
1625
+ itemLineHeight: 1.6,
1626
+ listGutter: 16
1627
+ }
1628
+ },
1629
+ {
1630
+ if: { size: 'small' },
1631
+ tokens: {
1632
+ itemFontSize: 14,
1633
+ itemLineHeight: 1.42857142857,
1634
+ listGutter: 10
1635
+ }
1636
+ },
1637
+ {
1638
+ if: { compact: true },
1639
+ tokens: {
1640
+ itemLineHeight: 1.25
1641
+ }
1642
+ },
1643
+ {
1644
+ if: { compact: true, size: 'small' },
1645
+ tokens: {
1646
+ itemLineHeight: 1.14285714286
1647
+ }
1648
+ },
1649
+ {
1650
+ if: { compact: true, size: 'large' },
1651
+ tokens: {
1652
+ itemLineHeight: 1.2
1653
+ }
1654
+ }
1655
+ ]
1656
+ },
1657
+ Tags: {
1658
+ space: 2,
1659
+ direction: 'row',
1660
+ alignItems: 'flex-start',
1661
+ justifyContent: 'flex-start',
1662
+ flexGrow: 1
1663
+ },
1664
+ TagsItem: {
1665
+ appearances: {
1666
+ focus: appearances.ButtonGroupItem.focus,
1667
+ hover: appearances.ButtonGroupItem.hover,
1668
+ pressed: appearances.ButtonGroupItem.pressed,
1669
+ selected: appearances.ButtonGroupItem.selected
1670
+ },
1671
+ tokens: {
1672
+ icon: Checkmark,
1673
+ iconSize: 16,
1674
+ iconColor: '#ffffff',
1675
+ iconTranslateX: 0,
1676
+ iconTranslateY: 0,
1677
+
1678
+ iconPosition: 'right',
1679
+ iconSpace: 2,
1680
+ iconBackground: '#ffffff',
1681
+ iconBorderRadius: 0,
1682
+ iconAlignSelf: 'center',
1683
+ iconPadding: 0,
1684
+
1685
+ borderColor: '#0e6ac8',
1686
+ borderWidth: 2,
1687
+ borderRadius: 0,
1688
+ shadow: null,
1689
+
1690
+ outerBorderColor: transparent,
1691
+ outerBorderWidth: 4,
1692
+ outerBorderGap: 2,
1693
+
1694
+ fontSize: 16,
1695
+ color: '#0e6ac8',
1696
+ lineHeight: 1.5,
1697
+ fontWeight: '600',
1698
+ alignSelf: 'flex-start',
1699
+
1700
+ backgroundColor: '#ffffff',
1701
+ opacity: 1,
1702
+ paddingLeft: 24,
1703
+ paddingRight: 24,
1704
+ paddingTop: 8,
1705
+ paddingBottom: 8,
1706
+
1707
+ width: null
1708
+ },
1709
+ rules: [
1710
+ {
1711
+ if: { focus: true },
1712
+ tokens: {
1713
+ borderWidth: 4,
1714
+ outerBorderColor: '#0e6ac8',
1715
+ opacity: 0.5
1716
+ }
1717
+ },
1718
+ {
1719
+ if: { hover: true },
1720
+ tokens: {
1721
+ borderWidth: 6
1722
+ }
1723
+ },
1724
+ {
1725
+ if: { pressed: true },
1726
+ tokens: {
1727
+ borderWidth: 8
1728
+ }
1729
+ },
1730
+ {
1731
+ if: { selected: true },
1732
+ tokens: {
1733
+ backgroundColor: '#0e6ac8',
1734
+ color: '#ffffff',
1735
+ opacity: 1,
1736
+ iconBackground: '#0e6ac8'
1737
+ }
1738
+ }
1739
+ ]
1740
+ },
1741
+ Tooltip: {
1742
+ tokens: {
1743
+ backgroundColor: 'black',
1744
+ color: 'white',
1745
+ paddingLeft: 4,
1746
+ paddingRight: 4,
1747
+ paddingTop: 4,
1748
+ paddingBottom: 4,
1749
+ arrowOffset: 4
1750
+ }
1751
+ },
1752
+ TooltipButton: {
1753
+ tokens: {
1754
+ icon: Question,
1755
+ iconColor: 'black',
1756
+ iconSize: 16
1757
+ }
1758
+ },
1759
+ TextArea: {},
1760
+ InputSupports: {},
1761
+ Skeleton: {
1762
+ tokens: {
1763
+ color: '#b2b9bf',
1764
+ radius: 100,
1765
+ size: 3,
1766
+ baseWidth: 40,
1767
+ characters: 10,
1768
+ spaceBetweenLines: 2,
1769
+ squareRadius: 4
1770
+ }
1771
+ },
1772
+ Select: {
1773
+ tokens: {
1774
+ borderRadius: 4,
1775
+ borderWidth: 1,
1776
+ borderColor: '#00000044',
1777
+ paddingTop: 6,
1778
+ paddingBottom: 6,
1779
+ paddingLeft: 6,
1780
+ paddingRight: 6,
1781
+ outerBorderWidth: 1,
1782
+ outerBorderColor: transparent
1783
+ },
1784
+ rules: [
1785
+ {
1786
+ if: { validation: 'success' },
1787
+ tokens: {
1788
+ outerBorderColor: '#99ff99'
1789
+ }
1790
+ },
1791
+ {
1792
+ if: { validation: 'error' },
1793
+ tokens: {
1794
+ outerBorderColor: '#990000'
1795
+ }
1796
+ },
1797
+ {
1798
+ if: { focus: true },
1799
+ tokens: {
1800
+ outerBorderColor: '#debc06'
1801
+ }
1802
+ },
1803
+ {
1804
+ if: { hover: true },
1805
+ tokens: {
1806
+ outerBorderColor: '#6666cc'
1807
+ }
1808
+ },
1809
+ {
1810
+ if: { inactive: true },
1811
+ tokens: {
1812
+ outerBorderColor: transparent,
1813
+ backgroundColor: '#00000044'
1814
+ }
1815
+ }
997
1816
  ]
998
1817
  }
999
1818
  }