@telus-uds/components-base 0.0.2-prerelease.3 → 0.0.2-prerelease.7

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 (266) hide show
  1. package/.ultra.cache.json +1 -0
  2. package/CHANGELOG.md +55 -0
  3. package/__fixtures__/testTheme.js +528 -42
  4. package/__tests__/Button/ButtonBase.test.jsx +3 -32
  5. package/__tests__/Checkbox/Checkbox.test.jsx +94 -0
  6. package/__tests__/Divider/Divider.test.jsx +26 -5
  7. package/__tests__/Feedback/Feedback.test.jsx +42 -0
  8. package/__tests__/FlexGrid/Col.test.jsx +5 -0
  9. package/__tests__/InputSupports/InputSupports.test.jsx +50 -0
  10. package/__tests__/List/List.test.jsx +60 -0
  11. package/__tests__/Radio/Radio.test.jsx +87 -0
  12. package/__tests__/Select/Select.test.jsx +93 -0
  13. package/__tests__/Skeleton/Skeleton.test.jsx +61 -0
  14. package/__tests__/Spacer/Spacer.test.jsx +63 -0
  15. package/__tests__/StackView/StackView.test.jsx +216 -0
  16. package/__tests__/StackView/StackWrap.test.jsx +47 -0
  17. package/__tests__/StackView/getStackedContent.test.jsx +295 -0
  18. package/__tests__/Tags/Tags.test.jsx +328 -0
  19. package/__tests__/TextInput/TextArea.test.jsx +34 -0
  20. package/__tests__/TextInput/TextInputBase.test.jsx +120 -0
  21. package/__tests__/Tooltip/Tooltip.test.jsx +65 -0
  22. package/__tests__/Tooltip/getTooltipPosition.test.js +79 -0
  23. package/__tests__/utils/useCopy.test.js +31 -0
  24. package/__tests__/utils/useResponsiveProp.test.jsx +202 -0
  25. package/__tests__/utils/{spacing.test.jsx → useSpacingScale.test.jsx} +1 -1
  26. package/__tests__/utils/useUniqueId.test.js +31 -0
  27. package/jest.config.js +8 -2
  28. package/lib/Box/Box.js +7 -2
  29. package/lib/Button/Button.js +10 -3
  30. package/lib/Button/ButtonBase.js +79 -75
  31. package/lib/Button/ButtonGroup.js +24 -49
  32. package/lib/Button/ButtonLink.js +5 -0
  33. package/lib/Checkbox/Checkbox.js +308 -0
  34. package/lib/Checkbox/CheckboxInput.native.js +6 -0
  35. package/lib/Checkbox/CheckboxInput.web.js +57 -0
  36. package/lib/Checkbox/index.js +2 -0
  37. package/lib/Divider/Divider.js +40 -2
  38. package/lib/Feedback/Feedback.js +132 -0
  39. package/lib/Feedback/index.js +2 -0
  40. package/lib/Icon/Icon.js +9 -6
  41. package/lib/Icon/IconText.js +72 -0
  42. package/lib/Icon/index.js +2 -1
  43. package/lib/InputLabel/InputLabel.js +88 -0
  44. package/lib/InputLabel/LabelContent.native.js +8 -0
  45. package/lib/InputLabel/LabelContent.web.js +17 -0
  46. package/lib/InputLabel/index.js +2 -0
  47. package/lib/InputSupports/InputSupports.js +90 -0
  48. package/lib/InputSupports/index.js +2 -0
  49. package/lib/InputSupports/propTypes.js +55 -0
  50. package/lib/Link/ChevronLink.js +35 -10
  51. package/lib/Link/InlinePressable.native.js +78 -0
  52. package/lib/Link/InlinePressable.web.js +32 -0
  53. package/lib/Link/Link.js +11 -10
  54. package/lib/Link/LinkBase.js +69 -124
  55. package/lib/Link/TextButton.js +20 -9
  56. package/lib/Link/index.js +2 -1
  57. package/lib/List/List.js +52 -0
  58. package/lib/List/ListItem.js +207 -0
  59. package/lib/List/index.js +2 -0
  60. package/lib/Pagination/PageButton.js +3 -26
  61. package/lib/Pagination/SideButton.js +32 -42
  62. package/lib/Radio/Radio.js +291 -0
  63. package/lib/Radio/RadioInput.native.js +6 -0
  64. package/lib/Radio/RadioInput.web.js +59 -0
  65. package/lib/Radio/index.js +2 -0
  66. package/lib/Select/Group.native.js +14 -0
  67. package/lib/Select/Group.web.js +18 -0
  68. package/lib/Select/Item.native.js +9 -0
  69. package/lib/Select/Item.web.js +15 -0
  70. package/lib/Select/Picker.native.js +87 -0
  71. package/lib/Select/Picker.web.js +63 -0
  72. package/lib/Select/Select.js +272 -0
  73. package/lib/Select/index.js +6 -0
  74. package/lib/Skeleton/Skeleton.js +119 -0
  75. package/lib/Skeleton/index.js +2 -0
  76. package/lib/Spacer/Spacer.js +98 -0
  77. package/lib/Spacer/index.js +2 -0
  78. package/lib/StackView/StackView.js +107 -0
  79. package/lib/StackView/StackWrap.js +32 -0
  80. package/lib/StackView/StackWrap.native.js +3 -0
  81. package/lib/StackView/StackWrapBox.js +90 -0
  82. package/lib/StackView/StackWrapGap.js +50 -0
  83. package/lib/StackView/common.js +30 -0
  84. package/lib/StackView/getStackedContent.js +111 -0
  85. package/lib/StackView/index.js +5 -0
  86. package/lib/Tags/Tags.js +217 -0
  87. package/lib/Tags/index.js +2 -0
  88. package/lib/TextInput/TextArea.js +82 -0
  89. package/lib/TextInput/TextInput.js +54 -0
  90. package/lib/TextInput/TextInputBase.js +229 -0
  91. package/lib/TextInput/index.js +3 -0
  92. package/lib/TextInput/propTypes.js +31 -0
  93. package/lib/ThemeProvider/useThemeTokens.js +54 -3
  94. package/lib/ToggleSwitch/ToggleSwitch.js +1 -1
  95. package/lib/Tooltip/Backdrop.native.js +35 -0
  96. package/lib/Tooltip/Backdrop.web.js +52 -0
  97. package/lib/Tooltip/Tooltip.js +315 -0
  98. package/lib/Tooltip/dictionary.js +8 -0
  99. package/lib/Tooltip/getTooltipPosition.js +164 -0
  100. package/lib/Tooltip/index.js +2 -0
  101. package/lib/TooltipButton/TooltipButton.js +64 -0
  102. package/lib/TooltipButton/index.js +2 -0
  103. package/lib/Typography/Typography.js +4 -23
  104. package/lib/ViewportProvider/ViewportProvider.js +25 -0
  105. package/lib/ViewportProvider/index.js +2 -43
  106. package/lib/ViewportProvider/useViewport.js +3 -0
  107. package/lib/ViewportProvider/useViewportListener.js +43 -0
  108. package/lib/index.js +15 -1
  109. package/lib/utils/a11y/index.js +1 -0
  110. package/lib/utils/a11y/textSize.js +33 -0
  111. package/lib/utils/index.js +7 -1
  112. package/lib/utils/info/index.js +7 -0
  113. package/lib/utils/info/platform/index.js +11 -0
  114. package/lib/utils/info/platform/platform.android.js +1 -0
  115. package/lib/utils/info/platform/platform.ios.js +1 -0
  116. package/lib/utils/info/platform/platform.native.js +4 -0
  117. package/lib/utils/info/platform/platform.web.js +1 -0
  118. package/lib/utils/info/versions.js +5 -0
  119. package/lib/utils/input.js +3 -1
  120. package/lib/utils/pressability.js +92 -0
  121. package/lib/utils/propTypes.js +77 -8
  122. package/lib/utils/useCopy.js +16 -0
  123. package/lib/utils/useResponsiveProp.js +47 -0
  124. package/lib/utils/{spacing/useSpacingScale.js → useSpacingScale.js} +30 -9
  125. package/lib/utils/useUniqueId.js +12 -0
  126. package/package.json +7 -5
  127. package/release-context.json +4 -4
  128. package/src/Box/Box.jsx +4 -2
  129. package/src/Button/Button.jsx +6 -3
  130. package/src/Button/ButtonBase.jsx +72 -75
  131. package/src/Button/ButtonGroup.jsx +22 -39
  132. package/src/Button/ButtonLink.jsx +11 -2
  133. package/src/Checkbox/Checkbox.jsx +275 -0
  134. package/src/Checkbox/CheckboxInput.native.jsx +6 -0
  135. package/src/Checkbox/CheckboxInput.web.jsx +55 -0
  136. package/src/Checkbox/index.js +3 -0
  137. package/src/Divider/Divider.jsx +38 -3
  138. package/src/Feedback/Feedback.jsx +108 -0
  139. package/src/Feedback/index.js +3 -0
  140. package/src/Icon/Icon.jsx +11 -6
  141. package/src/Icon/IconText.jsx +63 -0
  142. package/src/Icon/index.js +2 -1
  143. package/src/InputLabel/InputLabel.jsx +99 -0
  144. package/src/InputLabel/LabelContent.native.jsx +6 -0
  145. package/src/InputLabel/LabelContent.web.jsx +13 -0
  146. package/src/InputLabel/index.js +3 -0
  147. package/src/InputSupports/InputSupports.jsx +86 -0
  148. package/src/InputSupports/index.js +3 -0
  149. package/src/InputSupports/propTypes.js +44 -0
  150. package/src/Link/ChevronLink.jsx +28 -7
  151. package/src/Link/InlinePressable.native.jsx +73 -0
  152. package/src/Link/InlinePressable.web.jsx +37 -0
  153. package/src/Link/Link.jsx +17 -13
  154. package/src/Link/LinkBase.jsx +62 -139
  155. package/src/Link/TextButton.jsx +25 -11
  156. package/src/Link/index.js +2 -1
  157. package/src/List/List.jsx +47 -0
  158. package/src/List/ListItem.jsx +187 -0
  159. package/src/List/index.js +3 -0
  160. package/src/Pagination/PageButton.jsx +3 -17
  161. package/src/Pagination/SideButton.jsx +27 -38
  162. package/src/Radio/Radio.jsx +270 -0
  163. package/src/Radio/RadioInput.native.jsx +6 -0
  164. package/src/Radio/RadioInput.web.jsx +57 -0
  165. package/src/Radio/index.js +3 -0
  166. package/src/Select/Group.native.jsx +14 -0
  167. package/src/Select/Group.web.jsx +15 -0
  168. package/src/Select/Item.native.jsx +10 -0
  169. package/src/Select/Item.web.jsx +11 -0
  170. package/src/Select/Picker.native.jsx +95 -0
  171. package/src/Select/Picker.web.jsx +67 -0
  172. package/src/Select/Select.jsx +265 -0
  173. package/src/Select/index.js +8 -0
  174. package/src/Skeleton/Skeleton.jsx +101 -0
  175. package/src/Skeleton/index.js +3 -0
  176. package/src/Spacer/Spacer.jsx +91 -0
  177. package/src/Spacer/index.js +3 -0
  178. package/src/StackView/StackView.jsx +104 -0
  179. package/src/StackView/StackWrap.jsx +33 -0
  180. package/src/StackView/StackWrap.native.jsx +4 -0
  181. package/src/StackView/StackWrapBox.jsx +93 -0
  182. package/src/StackView/StackWrapGap.jsx +49 -0
  183. package/src/StackView/common.jsx +28 -0
  184. package/src/StackView/getStackedContent.jsx +106 -0
  185. package/src/StackView/index.js +6 -0
  186. package/src/Tags/Tags.jsx +206 -0
  187. package/src/Tags/index.js +3 -0
  188. package/src/TextInput/TextArea.jsx +78 -0
  189. package/src/TextInput/TextInput.jsx +52 -0
  190. package/src/TextInput/TextInputBase.jsx +220 -0
  191. package/src/TextInput/index.js +4 -0
  192. package/src/TextInput/propTypes.js +29 -0
  193. package/src/ThemeProvider/useThemeTokens.js +54 -3
  194. package/src/ToggleSwitch/ToggleSwitch.jsx +1 -1
  195. package/src/Tooltip/Backdrop.native.jsx +33 -0
  196. package/src/Tooltip/Backdrop.web.jsx +60 -0
  197. package/src/Tooltip/Tooltip.jsx +294 -0
  198. package/src/Tooltip/dictionary.js +8 -0
  199. package/src/Tooltip/getTooltipPosition.js +161 -0
  200. package/src/Tooltip/index.js +3 -0
  201. package/src/TooltipButton/TooltipButton.jsx +53 -0
  202. package/src/TooltipButton/index.js +3 -0
  203. package/src/Typography/Typography.jsx +4 -19
  204. package/src/ViewportProvider/ViewportProvider.jsx +21 -0
  205. package/src/ViewportProvider/index.jsx +2 -41
  206. package/src/ViewportProvider/useViewport.js +5 -0
  207. package/src/ViewportProvider/useViewportListener.js +43 -0
  208. package/src/index.js +15 -1
  209. package/src/utils/a11y/index.js +1 -0
  210. package/src/utils/a11y/textSize.js +30 -0
  211. package/src/utils/index.js +8 -1
  212. package/src/utils/info/index.js +8 -0
  213. package/src/utils/info/platform/index.js +11 -0
  214. package/src/utils/info/platform/platform.android.js +1 -0
  215. package/src/utils/info/platform/platform.ios.js +1 -0
  216. package/src/utils/info/platform/platform.native.js +4 -0
  217. package/src/utils/info/platform/platform.web.js +1 -0
  218. package/src/utils/info/versions.js +6 -0
  219. package/src/utils/input.js +2 -1
  220. package/src/utils/pressability.js +92 -0
  221. package/src/utils/propTypes.js +97 -13
  222. package/src/utils/useCopy.js +13 -0
  223. package/src/utils/useResponsiveProp.js +50 -0
  224. package/src/utils/{spacing/useSpacingScale.js → useSpacingScale.js} +25 -10
  225. package/src/utils/useUniqueId.js +14 -0
  226. package/stories/A11yText/A11yText.stories.jsx +11 -5
  227. package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +11 -2
  228. package/stories/Box/Box.stories.jsx +29 -2
  229. package/stories/Button/Button.stories.jsx +21 -20
  230. package/stories/Button/ButtonGroup.stories.jsx +2 -1
  231. package/stories/Button/ButtonLink.stories.jsx +6 -4
  232. package/stories/Card/Card.stories.jsx +13 -1
  233. package/stories/Checkbox/Checkbox.stories.jsx +71 -0
  234. package/stories/Divider/Divider.stories.jsx +26 -2
  235. package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +74 -79
  236. package/stories/Feedback/Feedback.stories.jsx +96 -0
  237. package/stories/FlexGrid/01 FlexGrid.stories.jsx +20 -7
  238. package/stories/Icon/Icon.stories.jsx +11 -3
  239. package/stories/InputLabel/InputLabel.stories.jsx +42 -0
  240. package/stories/Link/ChevronLink.stories.jsx +20 -4
  241. package/stories/Link/Link.stories.jsx +39 -3
  242. package/stories/Link/TextButton.stories.jsx +24 -2
  243. package/stories/List/List.stories.jsx +117 -0
  244. package/stories/Pagination/Pagination.stories.jsx +28 -14
  245. package/stories/Radio/Radio.stories.jsx +113 -0
  246. package/stories/Select/Select.stories.jsx +55 -0
  247. package/stories/SideNav/SideNav.stories.jsx +17 -2
  248. package/stories/Skeleton/Skeleton.stories.jsx +36 -0
  249. package/stories/Spacer/Spacer.stories.jsx +38 -0
  250. package/stories/StackView/StackView.stories.jsx +75 -0
  251. package/stories/StackView/StackWrap.stories.jsx +64 -0
  252. package/stories/Tags/Tags.stories.jsx +69 -0
  253. package/stories/TextInput/TextArea.stories.jsx +100 -0
  254. package/stories/TextInput/TextInput.stories.jsx +103 -0
  255. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +16 -3
  256. package/stories/Tooltip/Tooltip.stories.jsx +81 -0
  257. package/stories/TooltipButton/TooltipButton.stories.jsx +11 -0
  258. package/stories/Typography/Typography.stories.jsx +12 -3
  259. package/stories/platform-supports.web.jsx +1 -1
  260. package/stories/supports.jsx +110 -14
  261. package/lib/Pagination/useCopy.js +0 -10
  262. package/lib/utils/spacing/index.js +0 -2
  263. package/lib/utils/spacing/utils.js +0 -32
  264. package/src/Pagination/useCopy.js +0 -7
  265. package/src/utils/spacing/index.js +0 -3
  266. package/src/utils/spacing/utils.js +0 -28
@@ -1,10 +1,4 @@
1
- const {
2
- buttonAppearances,
3
- linkAppearances,
4
- sideNavItemAppearances,
5
- toggleSwitchAppearances
6
- } = require('@telus-uds/tools-theme')
7
- const { appearances: systemAppearances } = require('@telus-uds/system-constants')
1
+ import { appearances } from '@telus-uds/system-themes/schema'
8
2
 
9
3
  // This is a dev-only file so we don't need to make @telus-uds/palette-allium a dependency.
10
4
  // eslint-disable-next-line import/no-extraneous-dependencies
@@ -13,10 +7,14 @@ const chevronLeft = require('@telus-uds/palette-allium/build/rn/icons/chevron-le
13
7
  // eslint-disable-next-line import/no-extraneous-dependencies
14
8
  const chevronRight = require('@telus-uds/palette-allium/build/rn/icons/chevron-right.icon.svg')
15
9
  .default
10
+ // eslint-disable-next-line import/no-extraneous-dependencies
11
+ const checkmarkIcon = require('@telus-uds/palette-allium/build/rn/icons/checkmark.icon.svg').default
12
+ // eslint-disable-next-line import/no-extraneous-dependencies
13
+ const questionIcon = require('@telus-uds/palette-allium/build/rn/icons/question.icon.svg').default
16
14
 
17
15
  const transparent = 'rgba(0, 0, 0, 0)'
18
16
 
19
- module.exports = {
17
+ export default {
20
18
  metadata: {
21
19
  name: 'test'
22
20
  },
@@ -112,7 +110,9 @@ module.exports = {
112
110
  values: [true],
113
111
  type: 'variant'
114
112
  },
115
- ...buttonAppearances
113
+ focus: appearances.Button.focus,
114
+ hover: appearances.Button.hover,
115
+ pressed: appearances.Button.pressed
116
116
  },
117
117
  tokens: {
118
118
  borderColor: '#0e6ac8',
@@ -129,6 +129,7 @@ module.exports = {
129
129
  color: '#0e6ac8',
130
130
  lineHeight: 1.5,
131
131
  fontWeight: '600',
132
+ alignSelf: 'flex-start',
132
133
 
133
134
  backgroundColor: '#ffffff',
134
135
  opacity: 1,
@@ -137,12 +138,7 @@ module.exports = {
137
138
  paddingTop: 8,
138
139
  paddingBottom: 8,
139
140
 
140
- width: null,
141
-
142
- marginLeft: 0,
143
- marginRight: 0,
144
- marginTop: 0,
145
- marginBottom: 0
141
+ width: null
146
142
  },
147
143
  rules: [
148
144
  {
@@ -293,10 +289,73 @@ module.exports = {
293
289
  },
294
290
  ButtonGroup: {
295
291
  tokens: {
296
- gap: 8,
297
- direction: 'row'
292
+ space: 2,
293
+ direction: 'row',
294
+ alignItems: 'flex-start',
295
+ justifyContent: 'flex-start',
296
+ flexGrow: 1
298
297
  }
299
298
  },
299
+ ButtonGroupItem: {
300
+ appearances: {
301
+ focus: appearances.ButtonGroupItem.focus,
302
+ hover: appearances.ButtonGroupItem.hover,
303
+ pressed: appearances.ButtonGroupItem.pressed,
304
+ selected: appearances.ButtonGroupItem.selected
305
+ },
306
+ tokens: {
307
+ borderColor: '#0e6ac8',
308
+ borderWidth: 2,
309
+ borderRadius: 0,
310
+ shadow: null,
311
+
312
+ outerBorderColor: transparent,
313
+ outerBorderWidth: 4,
314
+ outerBorderGap: 2,
315
+ outerBorderRadius: 2,
316
+
317
+ fontSize: 16,
318
+ color: '#0e6ac8',
319
+ lineHeight: 1.5,
320
+ fontWeight: '600',
321
+ alignSelf: 'flex-start',
322
+
323
+ backgroundColor: '#ffffff',
324
+ opacity: 1,
325
+ paddingLeft: 24,
326
+ paddingRight: 24,
327
+ paddingTop: 8,
328
+ paddingBottom: 8,
329
+
330
+ width: null
331
+ },
332
+ rules: [
333
+ {
334
+ if: { focus: true },
335
+ tokens: {
336
+ borderWidth: 4,
337
+ outerBorderColor: '#0e6ac8',
338
+ opacity: 0.5
339
+ }
340
+ },
341
+ {
342
+ if: { hover: true },
343
+ tokens: {
344
+ borderWidth: 6
345
+ }
346
+ },
347
+ {
348
+ if: { pressed: true },
349
+ tokens: {
350
+ borderWidth: 8
351
+ }
352
+ },
353
+ {
354
+ if: { selected: true },
355
+ tokens: { backgroundColor: '#0e6ac8', color: '#ffffff', opacity: 1 }
356
+ }
357
+ ]
358
+ },
300
359
  Card: {
301
360
  appearances: {
302
361
  background: {
@@ -307,7 +366,7 @@ module.exports = {
307
366
  values: ['narrow', 'intermediate', 'compact', 'custom'],
308
367
  type: 'variant'
309
368
  },
310
- viewport: systemAppearances.viewport
369
+ viewport: appearances.system.viewport
311
370
  },
312
371
  tokens: {
313
372
  backgroundColor: '#ffffff',
@@ -391,6 +450,78 @@ module.exports = {
391
450
  }
392
451
  ]
393
452
  },
453
+ Checkbox: {
454
+ appearances: {
455
+ error: appearances.Checkbox.error,
456
+ focus: appearances.Checkbox.focus,
457
+ inactive: appearances.Checkbox.inactive
458
+ },
459
+ tokens: {
460
+ containerBackgroundColor: transparent,
461
+ containerMarginBottom: 8,
462
+ feedbackMarginBottom: 0,
463
+ feedbackMarginTop: 2,
464
+ feedbackPosition: 'bottom',
465
+ icon: checkmarkIcon,
466
+ iconBackgroundColor: '#7c53a5',
467
+ iconColor: '#ffffff',
468
+ iconSize: 18,
469
+ inputBackgroundColor: '#ffffff',
470
+ inputBorderColor: '#676e73',
471
+ inputBorderRadius: 4,
472
+ inputBorderWidth: 1,
473
+ inputHeight: 20,
474
+ inputOutlineColor: null,
475
+ inputOutlineWidth: 0,
476
+ inputShadow: {
477
+ color: '#00000044',
478
+ offsetY: 1,
479
+ offsetX: 1,
480
+ spread: 0,
481
+ blur: 1,
482
+ inset: false
483
+ },
484
+ inputWidth: 20,
485
+ labelColor: '#414547',
486
+ labelFontSize: 18,
487
+ labelFontWeight: '500',
488
+ labelLineHeight: 1.5,
489
+ labelMarginLeft: 8
490
+ },
491
+ rules: [
492
+ {
493
+ if: { error: true },
494
+ tokens: {
495
+ inputBorderColor: '#e12339'
496
+ }
497
+ },
498
+ {
499
+ if: { focus: true },
500
+ tokens: {
501
+ inputBorderColor: '#7c53a5',
502
+ inputBorderWidth: 3
503
+ }
504
+ },
505
+ {
506
+ if: { inactive: true },
507
+ tokens: {
508
+ inputBorderColor: 'transparent',
509
+ inputBackgroundColor: '#e3e6e8',
510
+ iconBackgroundColor: '#e3e6e8',
511
+ iconColor: 'rgba(103, 110, 115, 1)',
512
+ labelColor: '#676e73'
513
+ }
514
+ }
515
+ ]
516
+ },
517
+ ChevronLink: {
518
+ appearances: {},
519
+ tokens: {
520
+ leftIcon: chevronLeft,
521
+ rightIcon: chevronRight,
522
+ iconDisplace: 4
523
+ }
524
+ },
394
525
  Divider: {
395
526
  appearances: {
396
527
  weight: {
@@ -497,15 +628,13 @@ module.exports = {
497
628
  values: [true],
498
629
  type: 'variant'
499
630
  },
500
- viewport: systemAppearances.viewport
631
+ viewport: appearances.system.viewport
501
632
  },
502
633
  tokens: {
503
634
  fontWeight: '400',
504
635
  fontSize: 16,
505
636
  color: '#2c2e30',
506
637
  lineHeight: 1.5,
507
- marginTop: 8,
508
- marginBottom: 8,
509
638
  fontScaleCap: 64
510
639
  },
511
640
  rules: [
@@ -730,8 +859,7 @@ module.exports = {
730
859
  values: [true],
731
860
  type: 'state'
732
861
  },
733
- iconPosition: linkAppearances.iconPosition,
734
- component: linkAppearances.component
862
+ iconPosition: appearances.Link.iconPosition
735
863
  },
736
864
  tokens: {
737
865
  color: '#0000ff',
@@ -739,8 +867,6 @@ module.exports = {
739
867
  blockFontWeight: '400',
740
868
  blockFontSize: 16,
741
869
  blockLineHeight: 1.5,
742
- blockMarginTop: 8,
743
- blockMarginBottom: 8,
744
870
 
745
871
  outerBorderColor: transparent,
746
872
  outerBorderOutline: 'none',
@@ -751,9 +877,7 @@ module.exports = {
751
877
  textLineStyle: 'solid',
752
878
 
753
879
  iconSize: 18,
754
- iconGapBefore: 4,
755
- iconGapAfter: 4,
756
- iconScale: 1
880
+ iconSpace: 1
757
881
  },
758
882
  rules: [
759
883
  {
@@ -775,14 +899,6 @@ module.exports = {
775
899
  color: '#ff0000',
776
900
  textLine: 'none'
777
901
  }
778
- },
779
- {
780
- if: { component: 'ChevronLink', iconPosition: 'left' },
781
- tokens: { icon: chevronLeft }
782
- },
783
- {
784
- if: { component: 'ChevronLink', iconPosition: 'right' },
785
- tokens: { icon: chevronRight }
786
902
  }
787
903
  ]
788
904
  },
@@ -832,10 +948,71 @@ module.exports = {
832
948
  }
833
949
  ]
834
950
  },
951
+ Radio: {
952
+ appearances: {
953
+ checked: appearances.Radio.checked,
954
+ error: appearances.Radio.error,
955
+ focus: appearances.Radio.focus,
956
+ hover: appearances.Radio.hover,
957
+ inactive: appearances.Radio.inactive
958
+ },
959
+ tokens: {
960
+ checkedBackgroundColor: '#7c53a5',
961
+ checkedSize: 12,
962
+ containerBackgroundColor: '#ffffff',
963
+ containerBorderRadius: 12,
964
+ containerMarginBottom: 0,
965
+ containerOpacity: 1,
966
+ containerPaddingBottom: 12,
967
+ containerPaddingLeft: 18,
968
+ containerPaddingRight: 18,
969
+ containerPaddingTop: 12,
970
+ containerShadow: null,
971
+ descriptionFontSize: 14,
972
+ descriptionLineHeight: 1.4,
973
+ descriptionMarginLeft: null,
974
+ inputBackgroundColor: '#ffffff',
975
+ inputBorderColor: '#676e73',
976
+ inputBorderWidth: 1,
977
+ inputOutlineColor: null,
978
+ inputOutlineWidth: 0,
979
+ inputSize: 20,
980
+ inputShadow: null,
981
+ labelColor: '#414547',
982
+ labelFontName: '',
983
+ labelFontSize: 18,
984
+ labelFontWeight: '500',
985
+ labelLineHeight: 1.5,
986
+ labelMarginLeft: 8
987
+ },
988
+ rules: [
989
+ {
990
+ if: { error: true },
991
+ tokens: {
992
+ inputBorderColor: '#e12339'
993
+ }
994
+ },
995
+ {
996
+ if: { focus: true },
997
+ tokens: {
998
+ inputBorderColor: '#7c53a5',
999
+ inputBorderWidth: 3
1000
+ }
1001
+ },
1002
+ {
1003
+ if: { inactive: true },
1004
+ tokens: {
1005
+ inputBorderColor: 'transparent',
1006
+ inputBackgroundColor: '#e3e6e8',
1007
+ labelColor: '#676e73'
1008
+ }
1009
+ }
1010
+ ]
1011
+ },
835
1012
  SideNav: {},
836
1013
  SideNavItem: {
837
1014
  appearances: {
838
- ...sideNavItemAppearances
1015
+ type: appearances.SideNavItem.type
839
1016
  },
840
1017
  rules: [
841
1018
  {
@@ -849,13 +1026,16 @@ module.exports = {
849
1026
  ]
850
1027
  },
851
1028
  SideNavItemsGroup: {},
1029
+ StackView: {
1030
+ tokens: {}
1031
+ },
852
1032
  ToggleSwitch: {
853
1033
  appearances: {
854
- focus: toggleSwitchAppearances.focus,
855
- hover: toggleSwitchAppearances.hover,
856
- pressed: toggleSwitchAppearances.pressed,
857
- inactive: toggleSwitchAppearances.inactive,
858
- selected: toggleSwitchAppearances.selected
1034
+ focus: appearances.ToggleSwitch.focus,
1035
+ hover: appearances.ToggleSwitch.hover,
1036
+ pressed: appearances.ToggleSwitch.pressed,
1037
+ inactive: appearances.ToggleSwitch.inactive,
1038
+ selected: appearances.ToggleSwitch.selected
859
1039
  },
860
1040
  tokens: {
861
1041
  outerBorderColor: '#000000',
@@ -872,6 +1052,7 @@ module.exports = {
872
1052
  paddingRight: 2,
873
1053
  paddingTop: 2,
874
1054
  paddingBottom: 2,
1055
+ alignSelf: 'flex-start',
875
1056
 
876
1057
  trackBorderWidth: 2,
877
1058
  trackBorderColor: '#bbbbbb',
@@ -923,6 +1104,311 @@ module.exports = {
923
1104
  tokens: { opacity: 0.4 }
924
1105
  }
925
1106
  ]
1107
+ },
1108
+ TextInput: {
1109
+ appearances: {
1110
+ validation: appearances.TextInput.validation,
1111
+ focus: appearances.TextInput.focus,
1112
+ hover: appearances.TextInput.hover,
1113
+ inactive: appearances.TextInput.inactive
1114
+ },
1115
+ tokens: {
1116
+ borderRadius: 4,
1117
+ borderWidth: 1,
1118
+ borderColor: '#00000044',
1119
+ paddingTop: 6,
1120
+ paddingBottom: 6,
1121
+ paddingLeft: 6,
1122
+ paddingRight: 6,
1123
+ outerBorderWidth: 1,
1124
+ outerBorderColor: transparent,
1125
+ outerBorderRadius: 4
1126
+ },
1127
+ rules: [
1128
+ {
1129
+ if: { validation: 'success' },
1130
+ tokens: {
1131
+ outerBorderColor: '#99ff99'
1132
+ }
1133
+ },
1134
+ {
1135
+ if: { validation: 'error' },
1136
+ tokens: {
1137
+ outerBorderColor: '#990000'
1138
+ }
1139
+ },
1140
+ {
1141
+ if: { focus: true },
1142
+ tokens: {
1143
+ outerBorderColor: '#debc06'
1144
+ }
1145
+ },
1146
+ {
1147
+ if: { hover: true },
1148
+ tokens: {
1149
+ outerBorderColor: '#6666cc'
1150
+ }
1151
+ },
1152
+ {
1153
+ if: { inactive: true },
1154
+ tokens: {
1155
+ outerBorderColor: transparent,
1156
+ backgroundColor: '#00000044'
1157
+ }
1158
+ }
1159
+ ]
1160
+ },
1161
+ InputLabel: {
1162
+ tokens: {
1163
+ gap: 20,
1164
+ hintFontSize: 12
1165
+ }
1166
+ },
1167
+ Feedback: {
1168
+ appearances: {
1169
+ validation: appearances.Feedback.validation
1170
+ },
1171
+ tokens: {
1172
+ borderColor: '#eee',
1173
+ borderWidth: 1,
1174
+ borderRadius: 3,
1175
+ titleFontSize: 16,
1176
+ contentFontSize: 14,
1177
+ paddingTop: 12,
1178
+ paddingBottom: 12,
1179
+ paddingLeft: 12,
1180
+ paddingRight: 12
1181
+ },
1182
+ rules: [
1183
+ { if: { validation: 'success' }, tokens: { color: 'green' } },
1184
+ { if: { validation: 'error' }, tokens: { color: 'red' } }
1185
+ ]
1186
+ },
1187
+ List: {
1188
+ appearances: {
1189
+ size: {
1190
+ values: ['large', 'small'],
1191
+ type: 'variant'
1192
+ },
1193
+ compact: {
1194
+ values: [true],
1195
+ type: 'variant'
1196
+ }
1197
+ },
1198
+ tokens: {
1199
+ interItemMargin: 8,
1200
+ interItemMarginWithDivider: 16,
1201
+ dividerColor: '#666666',
1202
+ dividerSize: 1,
1203
+ itemBulletContainerWidth: 16,
1204
+ itemBulletContainerAlign: 'center',
1205
+ itemBulletWidth: 4,
1206
+ itemBulletHeight: 4,
1207
+ itemBulletColor: '#6666cc',
1208
+ itemIconSize: 16,
1209
+ itemIconColor: '#6666cc',
1210
+ listGutter: 10,
1211
+ itemLineHeight: 1.5
1212
+ },
1213
+ rules: [
1214
+ {
1215
+ if: { size: 'large' },
1216
+ tokens: {
1217
+ itemFontSize: 20,
1218
+ itemLineHeight: 1.6,
1219
+ listGutter: 16
1220
+ }
1221
+ },
1222
+ {
1223
+ if: { size: 'small' },
1224
+ tokens: {
1225
+ itemFontSize: 14,
1226
+ itemLineHeight: 1.42857142857,
1227
+ listGutter: 10
1228
+ }
1229
+ },
1230
+ {
1231
+ if: { compact: true },
1232
+ tokens: {
1233
+ itemLineHeight: 1.25
1234
+ }
1235
+ },
1236
+ {
1237
+ if: { compact: true, size: 'small' },
1238
+ tokens: {
1239
+ itemLineHeight: 1.14285714286
1240
+ }
1241
+ },
1242
+ {
1243
+ if: { compact: true, size: 'large' },
1244
+ tokens: {
1245
+ itemLineHeight: 1.2
1246
+ }
1247
+ }
1248
+ ]
1249
+ },
1250
+ Tags: {
1251
+ space: 2,
1252
+ direction: 'row',
1253
+ alignItems: 'flex-start',
1254
+ justifyContent: 'flex-start',
1255
+ flexGrow: 1
1256
+ },
1257
+ TagsItem: {
1258
+ appearances: {
1259
+ focus: appearances.ButtonGroupItem.focus,
1260
+ hover: appearances.ButtonGroupItem.hover,
1261
+ pressed: appearances.ButtonGroupItem.pressed,
1262
+ selected: appearances.ButtonGroupItem.selected
1263
+ },
1264
+ tokens: {
1265
+ icon: checkmarkIcon,
1266
+ iconSize: 16,
1267
+ iconColor: '#ffffff',
1268
+ iconTranslateX: 0,
1269
+ iconTranslateY: 0,
1270
+
1271
+ iconPosition: 'right',
1272
+ iconSpace: 2,
1273
+ iconBackground: '#ffffff',
1274
+ iconBorderRadius: 0,
1275
+ iconAlignSelf: 'center',
1276
+ iconPadding: 0,
1277
+
1278
+ borderColor: '#0e6ac8',
1279
+ borderWidth: 2,
1280
+ borderRadius: 0,
1281
+ shadow: null,
1282
+
1283
+ outerBorderColor: transparent,
1284
+ outerBorderWidth: 4,
1285
+ outerBorderGap: 2,
1286
+ outerBorderRadius: 2,
1287
+
1288
+ fontSize: 16,
1289
+ color: '#0e6ac8',
1290
+ lineHeight: 1.5,
1291
+ fontWeight: '600',
1292
+ alignSelf: 'flex-start',
1293
+
1294
+ backgroundColor: '#ffffff',
1295
+ opacity: 1,
1296
+ paddingLeft: 24,
1297
+ paddingRight: 24,
1298
+ paddingTop: 8,
1299
+ paddingBottom: 8,
1300
+
1301
+ width: null
1302
+ },
1303
+ rules: [
1304
+ {
1305
+ if: { focus: true },
1306
+ tokens: {
1307
+ borderWidth: 4,
1308
+ outerBorderColor: '#0e6ac8',
1309
+ opacity: 0.5
1310
+ }
1311
+ },
1312
+ {
1313
+ if: { hover: true },
1314
+ tokens: {
1315
+ borderWidth: 6
1316
+ }
1317
+ },
1318
+ {
1319
+ if: { pressed: true },
1320
+ tokens: {
1321
+ borderWidth: 8
1322
+ }
1323
+ },
1324
+ {
1325
+ if: { selected: true },
1326
+ tokens: {
1327
+ backgroundColor: '#0e6ac8',
1328
+ color: '#ffffff',
1329
+ opacity: 1,
1330
+ iconBackground: '#0e6ac8'
1331
+ }
1332
+ }
1333
+ ]
1334
+ },
1335
+ Tooltip: {
1336
+ tokens: {
1337
+ backgroundColor: 'black',
1338
+ color: 'white',
1339
+ paddingLeft: 4,
1340
+ paddingRight: 4,
1341
+ paddingTop: 4,
1342
+ paddingBottom: 4,
1343
+ arrowOffset: 4
1344
+ }
1345
+ },
1346
+ TooltipButton: {
1347
+ tokens: {
1348
+ icon: questionIcon,
1349
+ iconColor: 'black',
1350
+ iconSize: 16
1351
+ }
1352
+ },
1353
+ TextArea: {},
1354
+ InputSupports: {},
1355
+ Skeleton: {
1356
+ tokens: {
1357
+ color: '#b2b9bf',
1358
+ radius: 100,
1359
+ size: 3,
1360
+ baseWidth: 40,
1361
+ characters: 10,
1362
+ spaceBetweenLines: 2,
1363
+ squareRadius: 4
1364
+ }
1365
+ },
1366
+ Select: {
1367
+ tokens: {
1368
+ borderRadius: 4,
1369
+ borderWidth: 1,
1370
+ borderColor: '#00000044',
1371
+ paddingTop: 6,
1372
+ paddingBottom: 6,
1373
+ paddingLeft: 6,
1374
+ paddingRight: 6,
1375
+ outerBorderWidth: 1,
1376
+ outerBorderColor: transparent,
1377
+ outerBorderRadius: 4
1378
+ },
1379
+ rules: [
1380
+ {
1381
+ if: { validation: 'success' },
1382
+ tokens: {
1383
+ outerBorderColor: '#99ff99'
1384
+ }
1385
+ },
1386
+ {
1387
+ if: { validation: 'error' },
1388
+ tokens: {
1389
+ outerBorderColor: '#990000'
1390
+ }
1391
+ },
1392
+ {
1393
+ if: { focus: true },
1394
+ tokens: {
1395
+ outerBorderColor: '#debc06'
1396
+ }
1397
+ },
1398
+ {
1399
+ if: { hover: true },
1400
+ tokens: {
1401
+ outerBorderColor: '#6666cc'
1402
+ }
1403
+ },
1404
+ {
1405
+ if: { inactive: true },
1406
+ tokens: {
1407
+ outerBorderColor: transparent,
1408
+ backgroundColor: '#00000044'
1409
+ }
1410
+ }
1411
+ ]
926
1412
  }
927
1413
  }
928
1414
  }