@telus-uds/theme-koodo 0.0.2-prerelease.0 → 0.1.0-prerelease.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.
package/build/theme.js ADDED
@@ -0,0 +1,2365 @@
1
+ /*
2
+ *
3
+ * Do not edit directly
4
+ * Generated on Thu, 20 Jan 2022 13:54:07 GMT
5
+ *
6
+ */
7
+
8
+ const PaletteIconCheck = require('@telus-uds/palette-koodo/build/rn/icons/Check')
9
+ const PaletteIconChevronLeft = require('@telus-uds/palette-koodo/build/rn/icons/ChevronLeft')
10
+ const PaletteIconChevronRight = require('@telus-uds/palette-koodo/build/rn/icons/ChevronRight')
11
+ const PaletteIconChevronUp = require('@telus-uds/palette-koodo/build/rn/icons/ChevronUp')
12
+ const PaletteIconChevronDown = require('@telus-uds/palette-koodo/build/rn/icons/ChevronDown')
13
+ const PaletteIconCheckCircledFilled = require('@telus-uds/palette-koodo/build/rn/icons/CheckCircledFilled')
14
+ const PaletteIconExclamationTriangle = require('@telus-uds/palette-koodo/build/rn/icons/ExclamationTriangle')
15
+ const PaletteIconTimes = require('@telus-uds/palette-koodo/build/rn/icons/Times')
16
+ const PaletteIconExclamationOctagon = require('@telus-uds/palette-koodo/build/rn/icons/ExclamationOctagon')
17
+ const PaletteIconSpyglass = require('@telus-uds/palette-koodo/build/rn/icons/Spyglass')
18
+ const PaletteIconCheckCircledNotFilled = require('@telus-uds/palette-koodo/build/rn/icons/CheckCircledNotFilled')
19
+ const PaletteIconInfo = require('@telus-uds/palette-koodo/build/rn/icons/Info')
20
+
21
+ module.exports = {
22
+ components: {
23
+ ActivityIndicator: {
24
+ appearances: {},
25
+ rules: [],
26
+ tokens: { color: '#014847', size: 40, thickness: 4 }
27
+ },
28
+ Box: {
29
+ appearances: {
30
+ background: {
31
+ description: 'Background colour of box. Transparent if not specified.',
32
+ values: [ 'light', 'lightest' ]
33
+ }
34
+ },
35
+ rules: [
36
+ {
37
+ if: { background: 'lightest' },
38
+ tokens: { backgroundColor: '#ffffff' }
39
+ },
40
+ {
41
+ if: { background: 'light' },
42
+ tokens: { backgroundColor: '#efefef' }
43
+ }
44
+ ],
45
+ tokens: { backgroundColor: null }
46
+ },
47
+ Button: {
48
+ appearances: {
49
+ clear: {
50
+ description: 'Gives a button borders and a transparent background',
51
+ type: 'variant',
52
+ values: [ true ]
53
+ },
54
+ focus: {
55
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
56
+ type: 'state',
57
+ values: [ true ]
58
+ },
59
+ hover: {
60
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
61
+ type: 'state',
62
+ values: [ true ]
63
+ },
64
+ inactive: {
65
+ description: 'Prevents an interactive component from being interacted with and applies accessibility attributes to indicate to the user that this component cannot be used.',
66
+ type: 'state',
67
+ values: [ true ]
68
+ },
69
+ pressed: {
70
+ description: 'Applies while an interactive component is being physically pressed. Most visible on touchscreen taps; in React Native Web, this is visible on web mouse clicks only if the pressable is held down.',
71
+ type: 'state',
72
+ values: [ true ]
73
+ },
74
+ rank: {
75
+ description: 'Prominence of the button. Use the default ("primary") button style for the main action on a page or in a form, and "secondary" style for secondary actions.',
76
+ type: 'variant',
77
+ values: [ 'secondary' ]
78
+ },
79
+ rounded: {
80
+ description: 'Gives a button "pill-style" rounded sides',
81
+ type: 'variant',
82
+ values: [ true ]
83
+ },
84
+ selected: {
85
+ description: 'Applies while an interactive component is the currently selected one in a set of states or components, for example a button in a `ButtonGroup`.',
86
+ type: 'state',
87
+ values: [ true ]
88
+ }
89
+ },
90
+ rules: [
91
+ { if: { rounded: true }, tokens: { borderRadius: 32 } },
92
+ {
93
+ if: { clear: true },
94
+ tokens: {
95
+ backgroundColor: null,
96
+ borderColor: '#016b6a',
97
+ borderWidth: 2,
98
+ color: '#016b6a'
99
+ }
100
+ },
101
+ {
102
+ if: { hover: true },
103
+ tokens: {
104
+ backgroundColor: '#014847',
105
+ borderColor: '#014847',
106
+ color: '#ffffff'
107
+ }
108
+ },
109
+ {
110
+ if: { clear: true, hover: true },
111
+ tokens: { backgroundColor: '#016b6a', borderWidth: 0 }
112
+ },
113
+ {
114
+ if: { pressed: true },
115
+ tokens: {
116
+ backgroundColor: '#016b6a',
117
+ borderColor: '#016b6a',
118
+ color: '#ffffff'
119
+ }
120
+ },
121
+ {
122
+ if: { focus: true },
123
+ tokens: { outerBorderColor: '#016b6a' }
124
+ },
125
+ {
126
+ if: { rank: 'secondary' },
127
+ tokens: {
128
+ backgroundColor: '#00a1db',
129
+ borderColor: '#00a1db',
130
+ color: '#ffffff'
131
+ }
132
+ },
133
+ {
134
+ if: { clear: true, rank: 'secondary' },
135
+ tokens: {
136
+ backgroundColor: '#ffffff',
137
+ borderColor: '#00a1db',
138
+ color: '#00a1db'
139
+ }
140
+ },
141
+ {
142
+ if: { hover: true, rank: 'secondary' },
143
+ tokens: {
144
+ backgroundColor: '#0083b3',
145
+ borderColor: '#0083b3',
146
+ color: '#ffffff'
147
+ }
148
+ },
149
+ {
150
+ if: { pressed: true, rank: 'secondary' },
151
+ tokens: {
152
+ backgroundColor: '#c3efff',
153
+ borderColor: '#c3efff',
154
+ color: '#ffffff'
155
+ }
156
+ },
157
+ {
158
+ if: { focus: true, rank: 'secondary' },
159
+ tokens: { outerBorderColor: '#00a1db' }
160
+ },
161
+ {
162
+ if: { focus: true, pressed: true, rank: 'secondary' },
163
+ tokens: { outerBorderColor: '#c3efff' }
164
+ },
165
+ { if: { inactive: true }, tokens: { opacity: 0.3 } },
166
+ {
167
+ if: { selected: true },
168
+ tokens: {
169
+ opacity: 0.8,
170
+ outerBorderColor: '#016b6a',
171
+ outerBorderGap: 1,
172
+ outerBorderWidth: 4
173
+ }
174
+ },
175
+ {
176
+ if: { focus: true, selected: true },
177
+ tokens: { outerBorderGap: 2 }
178
+ }
179
+ ],
180
+ tokens: {
181
+ alignSelf: 'flex-start',
182
+ backgroundColor: '#016b6a',
183
+ borderColor: '#ffffff',
184
+ borderRadius: 4,
185
+ borderWidth: 0,
186
+ color: '#ffffff',
187
+ fontName: 'StagSans',
188
+ fontSize: 16,
189
+ fontWeight: '600',
190
+ lineHeight: 1.5,
191
+ minWidth: 0,
192
+ opacity: 1,
193
+ outerBackgroundColor: 'rgba(0, 0, 0, 0)',
194
+ outerBorderColor: '#ffffff',
195
+ outerBorderGap: 2,
196
+ outerBorderWidth: 2,
197
+ paddingBottom: 8,
198
+ paddingLeft: 24,
199
+ paddingRight: 24,
200
+ paddingTop: 8,
201
+ shadow: null,
202
+ textAlign: 'center',
203
+ width: null
204
+ }
205
+ },
206
+ ButtonGroup: {
207
+ appearances: {},
208
+ rules: [],
209
+ tokens: {
210
+ alignItems: 'center',
211
+ direction: 'row',
212
+ flexGrow: 0,
213
+ flexShrink: 0,
214
+ justifyContent: 'flex-start',
215
+ space: 3
216
+ }
217
+ },
218
+ ButtonGroupItem: {
219
+ appearances: {
220
+ focus: {
221
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
222
+ type: 'state',
223
+ values: [ true ]
224
+ },
225
+ hover: {
226
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
227
+ type: 'state',
228
+ values: [ true ]
229
+ },
230
+ inactive: {
231
+ description: 'Prevents an interactive component from being interacted with and applies accessibility attributes to indicate to the user that this component cannot be used.',
232
+ type: 'state',
233
+ values: [ true ]
234
+ },
235
+ pressed: {
236
+ description: 'Applies while an interactive component is being physically pressed. Most visible on touchscreen taps; in React Native Web, this is visible on web mouse clicks only if the pressable is held down.',
237
+ type: 'state',
238
+ values: [ true ]
239
+ },
240
+ selected: {
241
+ description: 'Applies while an interactive component is the currently selected one in a set of states or components, for example a button in a `ButtonGroup`.',
242
+ type: 'state',
243
+ values: [ true ]
244
+ }
245
+ },
246
+ rules: [
247
+ {
248
+ if: { pressed: true },
249
+ tokens: {
250
+ backgroundColor: '#016b6a',
251
+ borderColor: '#016b6a',
252
+ color: '#ffffff'
253
+ }
254
+ },
255
+ {
256
+ if: { focus: true },
257
+ tokens: { outerBorderColor: '#016b6a' }
258
+ },
259
+ { if: { hover: true }, tokens: { backgroundColor: '#014847' } },
260
+ {
261
+ if: { selected: true },
262
+ tokens: {
263
+ opacity: 0.8,
264
+ outerBorderColor: '#016b6a',
265
+ outerBorderGap: 1,
266
+ outerBorderWidth: 4
267
+ }
268
+ },
269
+ {
270
+ if: { focus: true, pressed: true },
271
+ tokens: { outerBorderColor: '#258b0b' }
272
+ },
273
+ {
274
+ if: { inactive: true },
275
+ tokens: {
276
+ backgroundColor: '#666666',
277
+ borderWidth: 0,
278
+ color: '#ffffff'
279
+ }
280
+ },
281
+ {
282
+ if: { selected: true },
283
+ tokens: {
284
+ opacity: 0.8,
285
+ outerBorderColor: '#016b6a',
286
+ outerBorderGap: 1,
287
+ outerBorderWidth: 4
288
+ }
289
+ },
290
+ {
291
+ if: { focus: true, selected: true },
292
+ tokens: { outerBorderColor: '#014847' }
293
+ }
294
+ ],
295
+ tokens: {
296
+ alignSelf: 'flex-start',
297
+ backgroundColor: '#016b6a',
298
+ borderColor: '#014847',
299
+ borderRadius: 4,
300
+ borderWidth: 0,
301
+ color: '#ffffff',
302
+ fontName: 'StagSans',
303
+ fontSize: 14,
304
+ fontWeight: '600',
305
+ lineHeight: 1.5,
306
+ minWidth: 0,
307
+ opacity: 1,
308
+ outerBackgroundColor: 'rgba(0, 0, 0, 0)',
309
+ outerBorderColor: 'rgba(0, 0, 0, 0)',
310
+ outerBorderGap: 2,
311
+ outerBorderWidth: 2,
312
+ paddingBottom: 8,
313
+ paddingLeft: 24,
314
+ paddingRight: 24,
315
+ paddingTop: 8,
316
+ shadow: null,
317
+ textAlign: 'center',
318
+ width: null
319
+ }
320
+ },
321
+ Card: {
322
+ appearances: {},
323
+ rules: [],
324
+ tokens: {
325
+ backgroundColor: '#f9f6a5',
326
+ borderColor: null,
327
+ borderRadius: 0,
328
+ borderWidth: 0,
329
+ flex: 1,
330
+ minWidth: null,
331
+ paddingBottom: 16,
332
+ paddingLeft: 16,
333
+ paddingRight: 16,
334
+ paddingTop: 16,
335
+ shadow: null
336
+ }
337
+ },
338
+ Checkbox: {
339
+ appearances: {
340
+ checked: {
341
+ description: 'Corresponds to a selected state for a checkbox or radio',
342
+ type: 'state',
343
+ values: [ true ]
344
+ },
345
+ error: { type: 'state', values: [ true ] },
346
+ focus: {
347
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
348
+ type: 'state',
349
+ values: [ true ]
350
+ },
351
+ hover: {
352
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
353
+ type: 'state',
354
+ values: [ true ]
355
+ },
356
+ inactive: {
357
+ description: 'Prevents an interactive component from being interacted with and applies accessibility attributes to indicate to the user that this component cannot be used.',
358
+ type: 'state',
359
+ values: [ true ]
360
+ }
361
+ },
362
+ rules: [
363
+ {
364
+ if: { focus: true },
365
+ tokens: { inputOutlineColor: '#c9c8c8', inputOutlineWidth: 2 }
366
+ }
367
+ ],
368
+ tokens: {
369
+ containerBackgroundColor: 'rgba(0, 0, 0, 0)',
370
+ feedbackMarginBottom: 0,
371
+ feedbackMarginTop: 0,
372
+ feedbackPosition: 'bottom',
373
+ icon: PaletteIconCheck,
374
+ iconBackgroundColor: '#ffffff',
375
+ iconColor: '#016b6a',
376
+ iconSize: 16,
377
+ inputBackgroundColor: '#ffffff',
378
+ inputBorderColor: '#016b6a',
379
+ inputBorderRadius: 0,
380
+ inputBorderWidth: 2,
381
+ inputHeight: 20,
382
+ inputOutlineColor: null,
383
+ inputOutlineWidth: 0,
384
+ inputShadow: null,
385
+ inputWidth: 20,
386
+ labelColor: '#000000',
387
+ labelFontName: 'StagSans',
388
+ labelFontSize: 16,
389
+ labelFontWeight: '400',
390
+ labelLineHeight: 1.5,
391
+ labelMarginLeft: 8
392
+ }
393
+ },
394
+ CheckboxGroup: { appearances: {}, rules: [], tokens: { fieldSpace: 2, space: 2 } },
395
+ ChevronLink: {
396
+ appearances: {},
397
+ rules: [],
398
+ tokens: {
399
+ iconDisplace: 4,
400
+ iconSize: 24,
401
+ iconSpace: 0,
402
+ leftIcon: PaletteIconChevronLeft,
403
+ rightIcon: PaletteIconChevronRight
404
+ }
405
+ },
406
+ Divider: {
407
+ appearances: {},
408
+ rules: [],
409
+ tokens: { color: '#c9c8c8', width: 1 }
410
+ },
411
+ ExpandCollapse: {
412
+ appearances: {},
413
+ rules: [],
414
+ tokens: {
415
+ borderColor: 'rgba(0, 0, 0, 0)',
416
+ borderStyle: 'solid',
417
+ borderWidth: 0
418
+ }
419
+ },
420
+ ExpandCollapseControl: {
421
+ appearances: {
422
+ expanded: {
423
+ description: 'Applies when an ExpandCollapse panel is open and the content inside is visible',
424
+ type: 'state',
425
+ values: [ true ]
426
+ }
427
+ },
428
+ rules: [
429
+ {
430
+ if: { expanded: true },
431
+ tokens: { icon: PaletteIconChevronDown }
432
+ }
433
+ ],
434
+ tokens: {
435
+ backgroundColor: 'rgba(0, 0, 0, 0)',
436
+ borderColor: 'rgba(0, 0, 0, 0)',
437
+ borderWidth: 0,
438
+ icon: PaletteIconChevronUp,
439
+ iconColor: '#016b6a',
440
+ iconGap: 16,
441
+ iconPosition: 'left',
442
+ iconSize: 16,
443
+ justifyContent: 'flex-start',
444
+ paddingBottom: 16,
445
+ paddingLeft: 16,
446
+ paddingRight: 16,
447
+ paddingTop: 16,
448
+ verticalAlign: 'middle'
449
+ }
450
+ },
451
+ ExpandCollapsePanel: {
452
+ appearances: {},
453
+ rules: [],
454
+ tokens: {
455
+ collapseDuration: 250,
456
+ contentPaddingBottom: 16,
457
+ contentPaddingLeft: 48,
458
+ contentPaddingRight: 16,
459
+ contentPaddingTop: 0,
460
+ expandDuration: 300
461
+ }
462
+ },
463
+ Feedback: {
464
+ appearances: {
465
+ icon: { type: 'variant', values: [ true ] },
466
+ validation: {
467
+ description: 'Validation states for form inputs',
468
+ type: 'state',
469
+ values: [ 'error', 'success' ]
470
+ }
471
+ },
472
+ rules: [
473
+ {
474
+ if: { validation: 'success' },
475
+ tokens: {
476
+ backgroundColor: '#c1f2e8',
477
+ borderColor: '#c1f2e8',
478
+ color: '#258b0b'
479
+ }
480
+ },
481
+ {
482
+ if: { validation: 'error' },
483
+ tokens: {
484
+ backgroundColor: '#fae6f4',
485
+ borderColor: '#fae6f4',
486
+ color: '#df3d0c'
487
+ }
488
+ },
489
+ {
490
+ if: { icon: true, validation: 'success' },
491
+ tokens: {
492
+ icon: PaletteIconCheckCircledFilled,
493
+ iconColor: '#258b0b'
494
+ }
495
+ },
496
+ {
497
+ if: { icon: true, validation: 'error' },
498
+ tokens: {
499
+ icon: PaletteIconExclamationTriangle,
500
+ iconColor: '#df3d0c'
501
+ }
502
+ }
503
+ ],
504
+ tokens: {
505
+ backgroundColor: '#efefef',
506
+ borderColor: '#c9c8c8',
507
+ borderRadius: 4,
508
+ borderWidth: 1,
509
+ color: '#595959',
510
+ contentFontSize: 14,
511
+ fontName: 'StagSans',
512
+ fontWeight: '400',
513
+ icon: null,
514
+ iconColor: 'rgba(0, 0, 0, 0)',
515
+ iconGap: 8,
516
+ iconSize: 24,
517
+ lineHeight: 1.5,
518
+ paddingBottom: 10,
519
+ paddingLeft: 16,
520
+ paddingRight: 16,
521
+ paddingTop: 10,
522
+ space: 2,
523
+ titleFontSize: 16
524
+ }
525
+ },
526
+ HorizontalScrollButton: {
527
+ appearances: {
528
+ focus: {
529
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
530
+ type: 'state',
531
+ values: [ true ]
532
+ },
533
+ hover: {
534
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
535
+ type: 'state',
536
+ values: [ true ]
537
+ },
538
+ pressed: {
539
+ description: 'Applies while an interactive component is being physically pressed. Most visible on touchscreen taps; in React Native Web, this is visible on web mouse clicks only if the pressable is held down.',
540
+ type: 'state',
541
+ values: [ true ]
542
+ }
543
+ },
544
+ rules: [
545
+ {
546
+ if: { hover: true },
547
+ tokens: {
548
+ backgroundColor: '#f9f6a5',
549
+ borderColor: '#014847',
550
+ iconColor: '#014847'
551
+ }
552
+ },
553
+ {
554
+ if: { pressed: true },
555
+ tokens: {
556
+ backgroundColor: '#016b6a',
557
+ borderColor: '#016b6a',
558
+ iconColor: '#ffffff'
559
+ }
560
+ }
561
+ ],
562
+ tokens: {
563
+ backgroundColor: '#ffffff',
564
+ borderColor: '#c9c8c8',
565
+ borderRadius: 32,
566
+ borderWidth: 1,
567
+ iconColor: '#016b6a',
568
+ iconSize: 16,
569
+ padding: 8,
570
+ shadow: null
571
+ }
572
+ },
573
+ Icon: {
574
+ appearances: {
575
+ colour: {
576
+ type: 'variant',
577
+ values: [ 'primary', 'secondary', 'black', 'white' ]
578
+ },
579
+ size: { type: 'variant', values: [ 'small' ] },
580
+ status: {
581
+ description: 'Uses icon colour to communicate meaning to the user',
582
+ type: 'variant',
583
+ values: [ 'success', 'error' ]
584
+ }
585
+ },
586
+ rules: [
587
+ { if: { size: 'small' }, tokens: { size: 20 } },
588
+ { if: { colour: 'primary' }, tokens: { color: '#000000' } },
589
+ { if: { colour: 'secondary' }, tokens: { color: '#00a1db' } },
590
+ { if: { colour: 'black' }, tokens: { color: '#000000' } },
591
+ { if: { colour: 'white' }, tokens: { color: '#ffffff' } },
592
+ { if: { status: 'success' }, tokens: { color: '#016b6a' } },
593
+ { if: { status: 'error' }, tokens: { color: '#ee2c74' } }
594
+ ],
595
+ tokens: {
596
+ color: '#666666',
597
+ scale: 1,
598
+ size: 24,
599
+ translateX: 0,
600
+ translateY: 0
601
+ }
602
+ },
603
+ IconButton: {
604
+ appearances: {
605
+ focus: {
606
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
607
+ type: 'state',
608
+ values: [ true ]
609
+ },
610
+ hover: {
611
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
612
+ type: 'state',
613
+ values: [ true ]
614
+ },
615
+ inactive: {
616
+ description: 'Prevents an interactive component from being interacted with and applies accessibility attributes to indicate to the user that this component cannot be used.',
617
+ type: 'state',
618
+ values: [ true ]
619
+ },
620
+ pressed: {
621
+ description: 'Applies while an interactive component is being physically pressed. Most visible on touchscreen taps; in React Native Web, this is visible on web mouse clicks only if the pressable is held down.',
622
+ type: 'state',
623
+ values: [ true ]
624
+ }
625
+ },
626
+ rules: [],
627
+ tokens: {
628
+ backgroundColor: 'transparent',
629
+ borderColor: '#016b6a',
630
+ borderRadius: 99999999999999,
631
+ borderWidth: 1,
632
+ iconColor: '#016b6a',
633
+ iconScale: 1,
634
+ iconSize: 24,
635
+ iconTranslateX: 0,
636
+ iconTranslateY: 0,
637
+ outerBorderColor: 'transparent',
638
+ outerBorderGap: 0,
639
+ outerBorderWidth: 0,
640
+ padding: 4,
641
+ shadow: null
642
+ }
643
+ },
644
+ InputLabel: {
645
+ appearances: {},
646
+ rules: [],
647
+ tokens: {
648
+ color: '#666666',
649
+ fontName: 'StagSans',
650
+ fontSize: 16,
651
+ fontWeight: '500',
652
+ gap: 8,
653
+ hintColor: '#666666',
654
+ hintFontName: 'StagSans',
655
+ hintFontSize: 14,
656
+ hintFontWeight: '400',
657
+ hintLineHeight: 1.4,
658
+ lineHeight: 1.4
659
+ }
660
+ },
661
+ InputSupports: { appearances: {}, rules: [], tokens: { space: 1 } },
662
+ Link: {
663
+ appearances: {
664
+ hover: {
665
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
666
+ type: 'state',
667
+ values: [ true ]
668
+ },
669
+ iconPosition: {
670
+ description: 'Theme styles to be applied to icon links depending on where the icon is in relation to the link text',
671
+ type: 'state',
672
+ values: [ 'left', 'right' ]
673
+ },
674
+ rank: {
675
+ description: 'Prominence of the link.',
676
+ type: 'variant',
677
+ values: [ 'secondary' ]
678
+ }
679
+ },
680
+ rules: [
681
+ { if: { iconPosition: 'left' }, tokens: { iconSpace: 2 } },
682
+ {
683
+ if: { hover: true },
684
+ tokens: { color: '#014847', textLine: 'none' }
685
+ },
686
+ { if: { rank: 'secondary' }, tokens: { color: '#00a1db' } },
687
+ {
688
+ if: { hover: true, rank: 'secondary' },
689
+ tokens: { color: '#0083b3' }
690
+ }
691
+ ],
692
+ tokens: {
693
+ alignSelf: 'flex-start',
694
+ blockFontName: 'StagSans',
695
+ blockFontSize: 16,
696
+ blockFontWeight: '600',
697
+ blockLineHeight: 1.5,
698
+ borderRadius: 4,
699
+ color: '#016b6a',
700
+ icon: null,
701
+ iconSize: 24,
702
+ iconSpace: 1,
703
+ iconTranslateX: 0,
704
+ iconTranslateY: 0,
705
+ outerBorderColor: 'rgba(0, 0, 0, 0)',
706
+ outerBorderGap: 0,
707
+ outerBorderOutline: 'none',
708
+ outerBorderWidth: 0,
709
+ textLine: 'underline',
710
+ textLineStyle: 'solid'
711
+ }
712
+ },
713
+ List: {
714
+ appearances: {
715
+ compact: {
716
+ description: 'Reduces line height on some body text styles. For data-rich content, not for flow content',
717
+ type: 'variant',
718
+ values: [ true ]
719
+ },
720
+ size: {
721
+ description: 'Text sizes for block links; similar but not always identical to Typography sizes.',
722
+ type: 'variant',
723
+ values: [ 'large', 'small' ]
724
+ }
725
+ },
726
+ rules: [
727
+ {
728
+ if: { size: 'large' },
729
+ tokens: { itemFontSize: 20, itemLineHeight: 1.4, listGutter: 16 }
730
+ },
731
+ {
732
+ if: { size: 'small' },
733
+ tokens: { itemFontSize: 14, listGutter: 10 }
734
+ },
735
+ { if: { compact: true }, tokens: { itemLineHeight: 1.2 } },
736
+ {
737
+ if: { compact: true, size: 'small' },
738
+ tokens: { itemLineHeight: 1.1 }
739
+ },
740
+ {
741
+ if: { compact: true, size: 'large' },
742
+ tokens: { itemLineHeight: 1.3 }
743
+ }
744
+ ],
745
+ tokens: {
746
+ dividerColor: '#c9c8c8',
747
+ dividerSize: 1,
748
+ interItemMargin: 8,
749
+ interItemMarginWithDivider: 16,
750
+ itemBulletColor: '#7c1366',
751
+ itemBulletContainerAlign: 'center',
752
+ itemBulletContainerWidth: 16,
753
+ itemBulletHeight: 4,
754
+ itemBulletWidth: 4,
755
+ itemFontName: 'StagSans',
756
+ itemFontSize: 16,
757
+ itemFontWeight: '600',
758
+ itemIconColor: '#7c1366',
759
+ itemIconSize: 16,
760
+ itemLineHeight: 1.3,
761
+ listGutter: 10
762
+ }
763
+ },
764
+ Modal: {
765
+ appearances: {
766
+ maxWidth: {
767
+ description: 'Whether a modal should expand responsively to the maximum of 8 layout columns width',
768
+ type: 'state',
769
+ values: [ true ]
770
+ },
771
+ viewport: {
772
+ description: 'The size label for the current screen viewport based on the current screen width',
773
+ type: 'state',
774
+ values: [ 'xs', 'sm', 'md', 'lg', 'xl' ]
775
+ }
776
+ },
777
+ rules: [
778
+ {
779
+ if: { viewport: [ 'xs', 'sm' ] },
780
+ tokens: { height: '100%' }
781
+ },
782
+ {
783
+ if: { viewport: [ 'md', 'lg', 'xl' ] },
784
+ tokens: {
785
+ containerPaddingBottom: 32,
786
+ containerPaddingTop: 32,
787
+ maxWidth: 576
788
+ }
789
+ },
790
+ {
791
+ if: { maxWidth: true, viewport: [ 'md', 'lg', 'xl' ] },
792
+ tokens: {
793
+ containerPaddingLeft: 16,
794
+ containerPaddingRight: 16,
795
+ maxWidth: '66.67%'
796
+ }
797
+ }
798
+ ],
799
+ tokens: {
800
+ backdropColor: '#000000',
801
+ backdropOpacity: 0.5,
802
+ backgroundColor: '#ffffff',
803
+ borderRadius: 4,
804
+ closeIcon: PaletteIconTimes,
805
+ closeIconColor: '#000000',
806
+ closeIconSize: 24,
807
+ containerPaddingBottom: 0,
808
+ containerPaddingLeft: 0,
809
+ containerPaddingRight: 0,
810
+ containerPaddingTop: 0,
811
+ height: null,
812
+ maxWidth: '100%',
813
+ paddingBottom: 16,
814
+ paddingLeft: 16,
815
+ paddingRight: 16,
816
+ paddingTop: 16,
817
+ shadow: {
818
+ blur: 0,
819
+ color: 'rgba(0, 0, 0, 0)',
820
+ inset: false,
821
+ offsetX: 0,
822
+ offsetY: 0,
823
+ spread: 0
824
+ }
825
+ }
826
+ },
827
+ Notification: {
828
+ appearances: {
829
+ style: { type: 'state', values: [ 'success', 'warning', 'error' ] },
830
+ system: { type: 'state', values: [ true ] }
831
+ },
832
+ rules: [
833
+ {
834
+ if: { system: true },
835
+ tokens: {
836
+ borderLeftWidth: 0,
837
+ borderRadius: 0,
838
+ borderRightWidth: 0,
839
+ borderTopWidth: 0,
840
+ iconGap: 12,
841
+ paddingBottom: 16,
842
+ paddingLeft: 16,
843
+ paddingRight: 16,
844
+ paddingTop: 16
845
+ }
846
+ },
847
+ {
848
+ if: { style: 'success' },
849
+ tokens: {
850
+ backgroundColor: '#c1f2e8',
851
+ borderColor: '#258b0b',
852
+ icon: PaletteIconCheckCircledFilled,
853
+ iconColor: '#258b0b'
854
+ }
855
+ },
856
+ {
857
+ if: { style: 'warning' },
858
+ tokens: {
859
+ backgroundColor: '#feeec7',
860
+ borderColor: '#fbaf34',
861
+ icon: PaletteIconExclamationTriangle,
862
+ iconColor: '#fbaf34'
863
+ }
864
+ },
865
+ {
866
+ if: { style: 'error' },
867
+ tokens: {
868
+ backgroundColor: '#fae6f4',
869
+ borderColor: '#df3d0c',
870
+ icon: PaletteIconExclamationOctagon,
871
+ iconColor: '#df3d0c'
872
+ }
873
+ }
874
+ ],
875
+ tokens: {
876
+ backgroundColor: '#efefef',
877
+ borderBottomWidth: 1,
878
+ borderColor: '#595959',
879
+ borderLeftWidth: 1,
880
+ borderRadius: 4,
881
+ borderRightWidth: 1,
882
+ borderTopWidth: 1,
883
+ color: '#666666',
884
+ dismissButtonGap: 16,
885
+ dismissIcon: PaletteIconTimes,
886
+ dismissIconColor: '#666666',
887
+ dismissIconSize: 16,
888
+ fontName: 'StagSans',
889
+ fontSize: 16,
890
+ fontWeight: '400',
891
+ icon: null,
892
+ iconColor: null,
893
+ iconGap: 16,
894
+ iconSize: 24,
895
+ lineHeight: 1.5,
896
+ paddingBottom: 12,
897
+ paddingLeft: 12,
898
+ paddingRight: 12,
899
+ paddingTop: 12
900
+ }
901
+ },
902
+ Pagination: {
903
+ appearances: {
904
+ viewport: {
905
+ description: 'The size label for the current screen viewport based on the current screen width',
906
+ type: 'state',
907
+ values: [ 'xs', 'sm', 'md', 'lg', 'xl' ]
908
+ }
909
+ },
910
+ rules: [
911
+ {
912
+ if: { viewport: [ 'md', 'lg', 'xl' ] },
913
+ tokens: { truncateAbove: 6 }
914
+ }
915
+ ],
916
+ tokens: {
917
+ color: '#666666',
918
+ fontName: 'StagSans',
919
+ fontSize: 16,
920
+ fontWeight: '400',
921
+ gap: 2,
922
+ lineHeight: 1.5,
923
+ truncateAbove: 4
924
+ }
925
+ },
926
+ PaginationPageButton: {
927
+ appearances: {
928
+ focus: {
929
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
930
+ type: 'state',
931
+ values: [ true ]
932
+ },
933
+ hover: {
934
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
935
+ type: 'state',
936
+ values: [ true ]
937
+ },
938
+ pressed: {
939
+ description: 'Applies while an interactive component is being physically pressed. Most visible on touchscreen taps; in React Native Web, this is visible on web mouse clicks only if the pressable is held down.',
940
+ type: 'state',
941
+ values: [ true ]
942
+ },
943
+ selected: {
944
+ description: 'Applies while an interactive component is the currently selected one in a set of states or components, for example a button in a `ButtonGroup`.',
945
+ type: 'state',
946
+ values: [ true ]
947
+ }
948
+ },
949
+ rules: [
950
+ {
951
+ if: { hover: true },
952
+ tokens: { borderColor: '#666666', textLine: 'none' }
953
+ },
954
+ {
955
+ if: { focus: true },
956
+ tokens: { borderColor: '#666666', borderWidth: 2 }
957
+ },
958
+ {
959
+ if: { selected: true },
960
+ tokens: {
961
+ backgroundColor: '#666666',
962
+ color: '#ffffff',
963
+ textLine: 'none'
964
+ }
965
+ },
966
+ {
967
+ if: { pressed: true },
968
+ tokens: { backgroundColor: '#666666', color: '#ffffff' }
969
+ }
970
+ ],
971
+ tokens: {
972
+ backgroundColor: 'rgba(0, 0, 0, 0)',
973
+ borderColor: 'rgba(0, 0, 0, 0)',
974
+ borderRadius: 32,
975
+ borderWidth: 1,
976
+ color: '#666666',
977
+ fontName: 'StagSans',
978
+ fontSize: 16,
979
+ fontWeight: '400',
980
+ lineHeight: 1.5,
981
+ outerBorderColor: 'rgba(0, 0, 0, 0)',
982
+ outerBorderGap: 4,
983
+ outerBorderWidth: 4,
984
+ paddingBottom: 4,
985
+ paddingLeft: 8,
986
+ paddingRight: 8,
987
+ paddingTop: 4,
988
+ textAlign: 'center',
989
+ textLine: 'underline',
990
+ width: 32
991
+ }
992
+ },
993
+ PaginationSideButton: {
994
+ appearances: {
995
+ direction: {
996
+ description: "Determines which way does the button navigate in Pagination's context",
997
+ type: 'state',
998
+ values: [ 'previous', 'next' ]
999
+ },
1000
+ focus: {
1001
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
1002
+ type: 'state',
1003
+ values: [ true ]
1004
+ },
1005
+ hover: {
1006
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
1007
+ type: 'state',
1008
+ values: [ true ]
1009
+ },
1010
+ pressed: {
1011
+ description: 'Applies while an interactive component is being physically pressed. Most visible on touchscreen taps; in React Native Web, this is visible on web mouse clicks only if the pressable is held down.',
1012
+ type: 'state',
1013
+ values: [ true ]
1014
+ },
1015
+ selected: {
1016
+ description: 'Applies while an interactive component is the currently selected one in a set of states or components, for example a button in a `ButtonGroup`.',
1017
+ type: 'state',
1018
+ values: [ true ]
1019
+ },
1020
+ viewport: {
1021
+ description: 'The size label for the current screen viewport based on the current screen width',
1022
+ type: 'state',
1023
+ values: [ 'xs', 'sm', 'md', 'lg', 'xl' ]
1024
+ }
1025
+ },
1026
+ rules: [
1027
+ {
1028
+ if: { viewport: [ 'xs', 'sm' ] },
1029
+ tokens: {
1030
+ borderRadius: 32,
1031
+ paddingBottom: 4,
1032
+ paddingTop: 4,
1033
+ width: 32
1034
+ }
1035
+ },
1036
+ {
1037
+ if: { hover: true },
1038
+ tokens: { borderColor: '#666666', iconDisplace: 4, textLine: 'none' }
1039
+ },
1040
+ {
1041
+ if: { focus: true },
1042
+ tokens: { borderColor: '#666666', borderWidth: 3 }
1043
+ },
1044
+ {
1045
+ if: { selected: true },
1046
+ tokens: {
1047
+ backgroundColor: '#666666',
1048
+ color: '#ffffff',
1049
+ textLine: 'none'
1050
+ }
1051
+ },
1052
+ {
1053
+ if: { pressed: true },
1054
+ tokens: { backgroundColor: '#666666', color: '#ffffff' }
1055
+ },
1056
+ {
1057
+ if: { direction: 'previous' },
1058
+ tokens: { icon: PaletteIconChevronLeft }
1059
+ },
1060
+ {
1061
+ if: { direction: 'next' },
1062
+ tokens: { icon: PaletteIconChevronRight }
1063
+ }
1064
+ ],
1065
+ tokens: {
1066
+ backgroundColor: 'rgba(0, 0, 0, 0)',
1067
+ borderColor: 'rgba(0, 0, 0, 0)',
1068
+ borderRadius: 4,
1069
+ borderWidth: 1,
1070
+ color: '#666666',
1071
+ fontName: 'StagSans',
1072
+ fontSize: 16,
1073
+ fontWeight: '400',
1074
+ icon: null,
1075
+ iconDisplace: 0,
1076
+ iconSize: 14,
1077
+ lineHeight: 1.5,
1078
+ outerBorderColor: 'transparent',
1079
+ paddingBottom: 10,
1080
+ paddingLeft: 8,
1081
+ paddingRight: 8,
1082
+ paddingTop: 10,
1083
+ textAlign: 'center',
1084
+ textLine: 'underline',
1085
+ width: null
1086
+ }
1087
+ },
1088
+ Progress: {
1089
+ appearances: { size: { type: 'variant', values: [ 'mini' ] } },
1090
+ rules: [ { if: { size: 'mini' }, tokens: { height: 8 } } ],
1091
+ tokens: {
1092
+ backgroundColor: '#ffffff',
1093
+ borderColor: '#016b6a',
1094
+ borderRadius: 12,
1095
+ borderWidth: 1,
1096
+ height: 16
1097
+ }
1098
+ },
1099
+ ProgressBar: {
1100
+ appearances: {
1101
+ inactive: {
1102
+ description: 'Prevents an interactive component from being interacted with and applies accessibility attributes to indicate to the user that this component cannot be used.',
1103
+ type: 'state',
1104
+ values: [ true ]
1105
+ },
1106
+ negative: { type: 'variant', values: [ true ] }
1107
+ },
1108
+ rules: [
1109
+ {
1110
+ if: { inactive: true },
1111
+ tokens: { backgroundColor: '#666666', outlineColor: '#666666' }
1112
+ },
1113
+ {
1114
+ if: { negative: true },
1115
+ tokens: { backgroundColor: '#b8373e', outlineColor: '#b8373e' }
1116
+ }
1117
+ ],
1118
+ tokens: {
1119
+ backgroundColor: '#016b6a',
1120
+ borderRadius: 12,
1121
+ gradient: null,
1122
+ outlineColor: '#014847',
1123
+ outlineWidth: 1
1124
+ }
1125
+ },
1126
+ Radio: {
1127
+ appearances: {
1128
+ checked: {
1129
+ description: 'Corresponds to a selected state for a checkbox or radio',
1130
+ type: 'state',
1131
+ values: [ true ]
1132
+ },
1133
+ error: { type: 'state', values: [ true ] },
1134
+ focus: {
1135
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
1136
+ type: 'state',
1137
+ values: [ true ]
1138
+ },
1139
+ hover: {
1140
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
1141
+ type: 'state',
1142
+ values: [ true ]
1143
+ },
1144
+ inactive: {
1145
+ description: 'Prevents an interactive component from being interacted with and applies accessibility attributes to indicate to the user that this component cannot be used.',
1146
+ type: 'state',
1147
+ values: [ true ]
1148
+ }
1149
+ },
1150
+ rules: [
1151
+ {
1152
+ if: { focus: true },
1153
+ tokens: { inputOutlineColor: '#c9c8c8', inputOutlineWidth: 2 }
1154
+ }
1155
+ ],
1156
+ tokens: {
1157
+ checkedBackgroundColor: '#016b6a',
1158
+ checkedSize: 12,
1159
+ containerBackgroundColor: 'rgba(0, 0, 0, 0)',
1160
+ containerBorderRadius: 0,
1161
+ containerOpacity: 1,
1162
+ containerPaddingBottom: 0,
1163
+ containerPaddingLeft: 0,
1164
+ containerPaddingRight: 0,
1165
+ containerPaddingTop: 0,
1166
+ containerShadow: null,
1167
+ descriptionFontSize: 14,
1168
+ descriptionLineHeight: 1.4,
1169
+ descriptionMarginLeft: null,
1170
+ inputBackgroundColor: '#ffffff',
1171
+ inputBorderColor: '#016b6a',
1172
+ inputBorderWidth: 2,
1173
+ inputOutlineColor: 'rgba(0, 0, 0, 0)',
1174
+ inputOutlineWidth: 0,
1175
+ inputSize: 20,
1176
+ labelColor: '#000000',
1177
+ labelFontName: 'StagSans',
1178
+ labelFontSize: 16,
1179
+ labelFontWeight: '400',
1180
+ labelLineHeight: 1.5,
1181
+ labelMarginLeft: 8,
1182
+ outerBorderColor: 'transparent',
1183
+ outerBorderGap: 0,
1184
+ outerBorderWidth: 0
1185
+ }
1186
+ },
1187
+ RadioCard: {
1188
+ appearances: {
1189
+ checked: {
1190
+ description: 'Corresponds to a selected state for a checkbox or radio',
1191
+ type: 'state',
1192
+ values: [ true ]
1193
+ },
1194
+ error: { type: 'state', values: [ true ] },
1195
+ focus: {
1196
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
1197
+ type: 'state',
1198
+ values: [ true ]
1199
+ },
1200
+ hover: {
1201
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
1202
+ type: 'state',
1203
+ values: [ true ]
1204
+ },
1205
+ inactive: {
1206
+ description: 'Prevents an interactive component from being interacted with and applies accessibility attributes to indicate to the user that this component cannot be used.',
1207
+ type: 'state',
1208
+ values: [ true ]
1209
+ },
1210
+ pressed: {
1211
+ description: 'Applies while an interactive component is being physically pressed. Most visible on touchscreen taps; in React Native Web, this is visible on web mouse clicks only if the pressable is held down.',
1212
+ type: 'state',
1213
+ values: [ true ]
1214
+ },
1215
+ viewport: {
1216
+ description: 'The size label for the current screen viewport based on the current screen width',
1217
+ type: 'state',
1218
+ values: [ 'xs', 'sm', 'md', 'lg', 'xl' ]
1219
+ }
1220
+ },
1221
+ rules: [
1222
+ {
1223
+ if: { viewport: [ 'lg', 'xl' ] },
1224
+ tokens: {
1225
+ fontSize: 24,
1226
+ lineHeight: 1.3,
1227
+ paddingBottom: 24,
1228
+ paddingLeft: 16,
1229
+ paddingRight: 24,
1230
+ paddingTop: 16
1231
+ }
1232
+ },
1233
+ {
1234
+ if: { hover: true },
1235
+ tokens: {
1236
+ borderColor: '#666666',
1237
+ outerBorderColor: '#efefef',
1238
+ outerBorderWidth: 2,
1239
+ radioInputBorderColor: '#014847'
1240
+ }
1241
+ },
1242
+ {
1243
+ description: 'Pressed state matches hover state plus light grey background',
1244
+ if: { pressed: true },
1245
+ tokens: {
1246
+ backgroundColor: '#efefef',
1247
+ borderColor: '#666666',
1248
+ outerBorderColor: '#efefef',
1249
+ outerBorderWidth: 2,
1250
+ radioInputBorderColor: '#014847'
1251
+ }
1252
+ },
1253
+ {
1254
+ if: { focus: true },
1255
+ tokens: {
1256
+ outerBorderColor: '#666666',
1257
+ outerBorderGap: 4,
1258
+ outerBorderWidth: 2,
1259
+ radioInputBorderColor: '#014847'
1260
+ }
1261
+ },
1262
+ {
1263
+ if: { inactive: true },
1264
+ tokens: {
1265
+ backgroundColor: '#efefef',
1266
+ borderColor: 'transparent',
1267
+ color: '#666666',
1268
+ radioInputBackgroundColor: '#efefef',
1269
+ radioInputBorderColor: '#c9c8c8'
1270
+ }
1271
+ },
1272
+ {
1273
+ if: { error: true },
1274
+ tokens: {
1275
+ borderColor: '#df3d0c',
1276
+ color: '#df3d0c',
1277
+ radioInputBorderColor: '#df3d0c'
1278
+ }
1279
+ }
1280
+ ],
1281
+ tokens: {
1282
+ backgroundColor: '#ffffff',
1283
+ borderColor: '#c9c8c8',
1284
+ borderRadius: 4,
1285
+ borderWidth: 1,
1286
+ color: '#000000',
1287
+ contentSpace: 2,
1288
+ flex: 1,
1289
+ fontName: 'StagSans',
1290
+ fontSize: 20,
1291
+ fontWeight: '700',
1292
+ letterSpacing: 0,
1293
+ lineHeight: 1.4,
1294
+ minWidth: 120,
1295
+ outerBorderColor: 'transparent',
1296
+ outerBorderGap: 0,
1297
+ outerBorderWidth: 0,
1298
+ paddingBottom: 16,
1299
+ paddingLeft: 10,
1300
+ paddingRight: 16,
1301
+ paddingTop: 16,
1302
+ radioCheckedBackgroundColor: '#016b6a',
1303
+ radioCheckedSize: 12,
1304
+ radioInputBackgroundColor: '#ffffff',
1305
+ radioInputBorderColor: '#016b6a',
1306
+ radioInputBorderWidth: 2,
1307
+ radioInputOutlineColor: 'rgba(0, 0, 0, 0)',
1308
+ radioInputOutlineWidth: 0,
1309
+ radioInputSize: 20,
1310
+ radioOuterBorderColor: 'transparent',
1311
+ radioOuterBorderGap: 0,
1312
+ radioOuterBorderWidth: 0,
1313
+ radioSpace: 2,
1314
+ shadow: null,
1315
+ textTransform: 'none'
1316
+ }
1317
+ },
1318
+ RadioCardGroup: {
1319
+ appearances: {
1320
+ viewport: {
1321
+ description: 'The size label for the current screen viewport based on the current screen width',
1322
+ type: 'state',
1323
+ values: [ 'xs', 'sm', 'md', 'lg', 'xl' ]
1324
+ }
1325
+ },
1326
+ rules: [
1327
+ {
1328
+ if: { viewport: [ 'lg', 'xl' ] },
1329
+ tokens: { direction: 'column' }
1330
+ }
1331
+ ],
1332
+ tokens: { direction: 'row', fieldSpace: 2, space: 2 }
1333
+ },
1334
+ RadioGroup: { appearances: {}, rules: [], tokens: { fieldSpace: 2, space: 2 } },
1335
+ Search: {
1336
+ appearances: {
1337
+ focus: {
1338
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
1339
+ type: 'state',
1340
+ values: [ true ]
1341
+ },
1342
+ hover: {
1343
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
1344
+ type: 'state',
1345
+ values: [ true ]
1346
+ },
1347
+ inactive: {
1348
+ description: 'Prevents an interactive component from being interacted with and applies accessibility attributes to indicate to the user that this component cannot be used.',
1349
+ type: 'state',
1350
+ values: [ true ]
1351
+ }
1352
+ },
1353
+ rules: [
1354
+ {
1355
+ if: { hover: true, inactive: null },
1356
+ tokens: {
1357
+ outerBackgroundColor: '#efefef',
1358
+ outerBorderColor: '#efefef'
1359
+ }
1360
+ },
1361
+ {
1362
+ if: { focus: true, inactive: null },
1363
+ tokens: { borderColor: '#016b6a', borderWidth: 2 }
1364
+ },
1365
+ {
1366
+ if: { inactive: true },
1367
+ tokens: { backgroundColor: '#efefef', borderColor: '#efefef' }
1368
+ }
1369
+ ],
1370
+ tokens: {
1371
+ backgroundColor: '#ffffff',
1372
+ borderColor: '#c9c8c8',
1373
+ borderRadius: 32,
1374
+ borderWidth: 1,
1375
+ buttonsGap: 1,
1376
+ clearButtonIcon: PaletteIconTimes,
1377
+ color: '#666666',
1378
+ fontName: 'StagSans',
1379
+ fontSize: 16,
1380
+ fontWeight: '400',
1381
+ lineHeight: 1.5,
1382
+ outerBackgroundColor: 'rgba(0, 0, 0, 0)',
1383
+ outerBorderColor: 'rgba(0, 0, 0, 0)',
1384
+ outerBorderRadius: 32,
1385
+ outerBorderWidth: 2,
1386
+ paddingBottom: 10,
1387
+ paddingLeft: 24,
1388
+ paddingRight: 4,
1389
+ paddingTop: 10,
1390
+ placeholderColor: '#666666',
1391
+ submitButtonIcon: PaletteIconSpyglass
1392
+ }
1393
+ },
1394
+ SearchButton: {
1395
+ appearances: {
1396
+ focus: {
1397
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
1398
+ type: 'state',
1399
+ values: [ true ]
1400
+ },
1401
+ hover: {
1402
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
1403
+ type: 'state',
1404
+ values: [ true ]
1405
+ },
1406
+ inactive: {
1407
+ description: 'Prevents an interactive component from being interacted with and applies accessibility attributes to indicate to the user that this component cannot be used.',
1408
+ type: 'state',
1409
+ values: [ true ]
1410
+ },
1411
+ pressed: {
1412
+ description: 'Applies while an interactive component is being physically pressed. Most visible on touchscreen taps; in React Native Web, this is visible on web mouse clicks only if the pressable is held down.',
1413
+ type: 'state',
1414
+ values: [ true ]
1415
+ },
1416
+ priority: { description: '', type: 'variant', values: [ 'high' ] }
1417
+ },
1418
+ rules: [
1419
+ {
1420
+ if: { priority: 'high' },
1421
+ tokens: { backgroundColor: '#016b6a', iconColor: '#ffffff' }
1422
+ },
1423
+ {
1424
+ if: { hover: true },
1425
+ tokens: {
1426
+ backgroundColor: '#014847',
1427
+ borderColor: '#014847',
1428
+ iconColor: '#ffffff'
1429
+ }
1430
+ },
1431
+ {
1432
+ if: { focus: true },
1433
+ tokens: {
1434
+ backgroundColor: 'transparent',
1435
+ borderColor: '#016b6a',
1436
+ borderWidth: 2,
1437
+ iconColor: '#016b6a'
1438
+ }
1439
+ },
1440
+ {
1441
+ if: { pressed: true },
1442
+ tokens: {
1443
+ backgroundColor: '#016b6a',
1444
+ borderColor: null,
1445
+ borderWidth: 0,
1446
+ iconColor: '#ffffff'
1447
+ }
1448
+ },
1449
+ { if: { inactive: true }, tokens: { opacity: 0.3 } }
1450
+ ],
1451
+ tokens: {
1452
+ backgroundColor: null,
1453
+ borderColor: null,
1454
+ borderRadius: 32,
1455
+ borderWidth: 0,
1456
+ iconColor: '#666666',
1457
+ iconSize: 20,
1458
+ opacity: 1,
1459
+ paddingBottom: 8,
1460
+ paddingLeft: 8,
1461
+ paddingRight: 8,
1462
+ paddingTop: 8,
1463
+ shadow: null
1464
+ }
1465
+ },
1466
+ Select: {
1467
+ appearances: {
1468
+ focus: {
1469
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
1470
+ type: 'state',
1471
+ values: [ true ]
1472
+ },
1473
+ hover: {
1474
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
1475
+ type: 'state',
1476
+ values: [ true ]
1477
+ },
1478
+ inactive: {
1479
+ description: 'Prevents an interactive component from being interacted with and applies accessibility attributes to indicate to the user that this component cannot be used.',
1480
+ type: 'state',
1481
+ values: [ true ]
1482
+ },
1483
+ validation: {
1484
+ description: 'Validation states for form inputs',
1485
+ type: 'state',
1486
+ values: [ 'error', 'success' ]
1487
+ }
1488
+ },
1489
+ rules: [
1490
+ {
1491
+ if: { hover: true, inactive: null },
1492
+ tokens: {
1493
+ outerBackgroundColor: '#efefef',
1494
+ outerBorderColor: '#efefef'
1495
+ }
1496
+ },
1497
+ {
1498
+ if: { validation: 'success' },
1499
+ tokens: {
1500
+ borderColor: '#258b0b',
1501
+ validationIcon: PaletteIconCheckCircledFilled,
1502
+ validationIconColor: '#258b0b'
1503
+ }
1504
+ },
1505
+ {
1506
+ if: { validation: 'error' },
1507
+ tokens: {
1508
+ borderColor: '#df3d0c',
1509
+ validationIcon: PaletteIconTimes,
1510
+ validationIconColor: '#df3d0c'
1511
+ }
1512
+ },
1513
+ {
1514
+ if: { focus: true },
1515
+ tokens: { borderColor: '#016b6a', borderWidth: 2, icon: null }
1516
+ },
1517
+ {
1518
+ if: { inactive: true },
1519
+ tokens: { backgroundColor: '#efefef', borderColor: '#efefef' }
1520
+ }
1521
+ ],
1522
+ tokens: {
1523
+ backgroundColor: '#ffffff',
1524
+ borderColor: '#c9c8c8',
1525
+ borderRadius: 4,
1526
+ borderWidth: 1,
1527
+ color: '#666666',
1528
+ fontName: 'StagSans',
1529
+ fontSize: 16,
1530
+ fontWeight: '400',
1531
+ height: 48,
1532
+ icon: PaletteIconChevronDown,
1533
+ iconColor: '#666666',
1534
+ iconSize: 24,
1535
+ outerBackgroundColor: 'rgba(0, 0, 0, 0)',
1536
+ outerBorderColor: 'rgba(0, 0, 0, 0)',
1537
+ outerBorderWidth: 2,
1538
+ paddingBottom: 10,
1539
+ paddingLeft: 16,
1540
+ paddingRight: 16,
1541
+ paddingTop: 10,
1542
+ validationIcon: null,
1543
+ validationIconColor: 'rgba(0, 0, 0, 0)',
1544
+ validationIconSize: 24
1545
+ }
1546
+ },
1547
+ SideNav: {
1548
+ appearances: {},
1549
+ rules: [],
1550
+ tokens: { borderColor: '#c9c8c8', borderStyle: 'solid', borderWidth: 1 }
1551
+ },
1552
+ SideNavItem: {
1553
+ appearances: {
1554
+ active: {
1555
+ description: 'Used to mark currently active Item or and ItemGroup containing the currently active Item',
1556
+ type: 'state',
1557
+ values: [ true, false ]
1558
+ },
1559
+ expanded: {
1560
+ description: 'Applies when an ExpandCollapse panel is open and the content inside is visible',
1561
+ type: 'state',
1562
+ values: [ true ]
1563
+ },
1564
+ hover: {
1565
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
1566
+ type: 'state',
1567
+ values: [ true ]
1568
+ },
1569
+ type: {
1570
+ description: '`parent` being the toggle button for an ItemsGroup, and `child` an element of the ItemGroup',
1571
+ type: 'state',
1572
+ values: [ 'child', 'parent' ]
1573
+ }
1574
+ },
1575
+ rules: [
1576
+ {
1577
+ if: { active: true },
1578
+ tokens: {
1579
+ accentBackgroundColor: '#016b6a',
1580
+ backgroundColor: '#c1f2e8',
1581
+ color: '#016b6a',
1582
+ paddingLeft: 10
1583
+ }
1584
+ },
1585
+ {
1586
+ if: { type: 'child' },
1587
+ tokens: {
1588
+ accentBackgroundColor: '#c1f2e8',
1589
+ accentOffset: 16,
1590
+ borderWidth: 0,
1591
+ paddingLeft: 36
1592
+ }
1593
+ },
1594
+ {
1595
+ if: { active: true, type: 'parent' },
1596
+ tokens: { paddingLeft: 10 }
1597
+ },
1598
+ {
1599
+ if: { active: true, expanded: true, type: 'parent' },
1600
+ tokens: {
1601
+ accentBackgroundColor: 'rgba(0, 0, 0, 0)',
1602
+ backgroundColor: 'rgba(0, 0, 0, 0)',
1603
+ color: '#666666',
1604
+ paddingLeft: 16
1605
+ }
1606
+ },
1607
+ {
1608
+ if: { hover: true },
1609
+ tokens: { backgroundColor: '#c1f2e8', color: '#016b6a' }
1610
+ },
1611
+ {
1612
+ if: { active: true, type: 'child' },
1613
+ tokens: {
1614
+ accentBackgroundColor: '#016b6a',
1615
+ accentPadding: 16,
1616
+ backgroundColor: '#c1f2e8',
1617
+ color: '#016b6a'
1618
+ }
1619
+ },
1620
+ {
1621
+ if: { active: false, hover: true, type: 'child' },
1622
+ tokens: {
1623
+ accentBackgroundColor: '#ffffff',
1624
+ accentOffset: 0,
1625
+ accentWidth: 16,
1626
+ color: '#666666'
1627
+ }
1628
+ }
1629
+ ],
1630
+ tokens: {
1631
+ accentBackgroundColor: 'rgba(0, 0, 0, 0)',
1632
+ accentOffset: 0,
1633
+ accentPadding: 0,
1634
+ accentWidth: 4,
1635
+ backgroundColor: 'transparent',
1636
+ borderColor: '#c9c8c8',
1637
+ borderStyle: 'solid',
1638
+ borderWidth: 1,
1639
+ color: '#666666',
1640
+ fontName: 'StagSans',
1641
+ fontSize: 16,
1642
+ fontWeight: '400',
1643
+ justifyContent: 'space-between',
1644
+ lineHeight: 1.5,
1645
+ paddingBottom: 16,
1646
+ paddingLeft: 16,
1647
+ paddingRight: 16,
1648
+ paddingTop: 16
1649
+ }
1650
+ },
1651
+ SideNavItemsGroup: {
1652
+ appearances: {},
1653
+ rules: [],
1654
+ tokens: {
1655
+ collapseDuration: 250,
1656
+ contentPaddingBottom: 0,
1657
+ contentPaddingLeft: 0,
1658
+ contentPaddingRight: 0,
1659
+ contentPaddingTop: 0,
1660
+ expandDuration: 300,
1661
+ icon: null,
1662
+ iconColor: null,
1663
+ iconGap: 8,
1664
+ iconPosition: 'right',
1665
+ iconSize: 10,
1666
+ justifyContent: 'space-between',
1667
+ verticalAlign: 'middle'
1668
+ }
1669
+ },
1670
+ Skeleton: {
1671
+ appearances: {},
1672
+ rules: [],
1673
+ tokens: {
1674
+ baseWidth: 40,
1675
+ characters: 10,
1676
+ color: '#666666',
1677
+ radius: 120,
1678
+ size: 2,
1679
+ spaceBetweenLines: 4,
1680
+ squareRadius: 4
1681
+ }
1682
+ },
1683
+ StackView: {
1684
+ appearances: {},
1685
+ rules: [],
1686
+ tokens: {
1687
+ alignItems: 'stretch',
1688
+ flexGrow: 0,
1689
+ flexShrink: 0,
1690
+ justifyContent: 'flex-start'
1691
+ }
1692
+ },
1693
+ StepTracker: {
1694
+ appearances: {
1695
+ viewport: {
1696
+ description: 'The size label for the current screen viewport based on the current screen width',
1697
+ type: 'state',
1698
+ values: [ 'xs', 'sm', 'md', 'lg', 'xl' ]
1699
+ }
1700
+ },
1701
+ rules: [
1702
+ {
1703
+ if: { viewport: [ 'lg', 'xl' ] },
1704
+ tokens: { showStepLabel: true, showStepTrackerLabel: false }
1705
+ }
1706
+ ],
1707
+ tokens: {
1708
+ completedIcon: PaletteIconCheck,
1709
+ completedIconColor: '#ffffff',
1710
+ completedIconSize: 10,
1711
+ connectorColor: '#016b6a',
1712
+ connectorCompletedColor: '#016b6a',
1713
+ connectorCompletedHeight: 1,
1714
+ connectorHeight: 1,
1715
+ connectorMinWidth: 16,
1716
+ containerPaddingBottom: null,
1717
+ containerPaddingLeft: null,
1718
+ containerPaddingRight: null,
1719
+ containerPaddingTop: null,
1720
+ knobBackgroundColor: 'rgba(0, 0, 0, 0)',
1721
+ knobBorderColor: '#016b6a',
1722
+ knobBorderWidth: 1,
1723
+ knobCompletedBackgroundColor: '#016b6a',
1724
+ knobCompletedBorderColor: '#016b6a',
1725
+ knobCompletedPaddingLeft: 2,
1726
+ knobCompletedPaddingTop: 2,
1727
+ knobCurrentBackgroundColor: '#016b6a',
1728
+ knobCurrentBorderColor: '#016b6a',
1729
+ knobCurrentBorderWidth: 1,
1730
+ knobCurrentInnerColor: null,
1731
+ knobCurrentInnerSize: null,
1732
+ knobCurrentPaddingLeft: null,
1733
+ knobCurrentPaddingTop: null,
1734
+ knobSize: 16,
1735
+ labelColor: '#016b6a',
1736
+ labelCurrentColor: '#016b6a',
1737
+ labelCurrentFontName: 'StagSans',
1738
+ labelCurrentFontWeight: '600',
1739
+ labelDirection: 'row',
1740
+ labelFontName: 'StagSans',
1741
+ labelFontSize: 16,
1742
+ labelFontWeight: '400',
1743
+ labelGap: 4,
1744
+ labelLineHeight: 1.5,
1745
+ labelMarginTop: 8,
1746
+ labelPaddingLeft: 16,
1747
+ labelPaddingRight: 16,
1748
+ showStepLabel: false,
1749
+ showStepName: true,
1750
+ showStepTrackerLabel: true
1751
+ }
1752
+ },
1753
+ Tabs: {
1754
+ appearances: {},
1755
+ rules: [],
1756
+ tokens: {
1757
+ borderBottomColor: 'transparent',
1758
+ borderBottomWidth: 0,
1759
+ buttonClearance: 32,
1760
+ gutter: 16,
1761
+ nextIcon: PaletteIconChevronRight,
1762
+ previousIcon: PaletteIconChevronLeft,
1763
+ space: 0
1764
+ }
1765
+ },
1766
+ TabsItem: {
1767
+ appearances: {
1768
+ focus: {
1769
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
1770
+ type: 'state',
1771
+ values: [ true ]
1772
+ },
1773
+ hover: {
1774
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
1775
+ type: 'state',
1776
+ values: [ true ]
1777
+ },
1778
+ selected: {
1779
+ description: 'Applies while an interactive component is being physically pressed. Most visible on touchscreen taps; in React Native Web, this is visible on web mouse clicks only if the pressable is held down.',
1780
+ type: 'state',
1781
+ values: [ true ]
1782
+ }
1783
+ },
1784
+ rules: [
1785
+ { if: { focus: true }, tokens: { borderWidth: 4 } },
1786
+ { if: { hover: true }, tokens: { backgroundColor: '#f9f6a5' } },
1787
+ {
1788
+ if: { selected: true },
1789
+ tokens: {
1790
+ backgroundColor: '#016b6a',
1791
+ borderWidth: 0,
1792
+ color: '#ffffff',
1793
+ highlightColor: '#016b6a',
1794
+ highlightTriangleSize: 8
1795
+ }
1796
+ }
1797
+ ],
1798
+ tokens: {
1799
+ backgroundColor: '#efefef',
1800
+ borderColor: '#c9c8c8',
1801
+ borderRadius: 0,
1802
+ borderWidth: 1,
1803
+ color: '#000000',
1804
+ fontName: 'StagSans',
1805
+ fontScaleCap: 64,
1806
+ fontSize: 16,
1807
+ fontWeight: '700',
1808
+ highlightBarBorderRadius: 0,
1809
+ highlightBarBorderWidth: 0,
1810
+ highlightBarHeight: 0,
1811
+ highlightColor: 'transparent',
1812
+ highlightTriangleSize: 0,
1813
+ letterSpacing: 0,
1814
+ lineHeight: 1.1,
1815
+ maxWidth: null,
1816
+ paddingHorizontal: 16,
1817
+ paddingVertical: 16,
1818
+ space: 0,
1819
+ textAlign: 'center',
1820
+ textTransform: 'none'
1821
+ }
1822
+ },
1823
+ Tags: {
1824
+ appearances: {},
1825
+ rules: [],
1826
+ tokens: {
1827
+ alignItems: 'center',
1828
+ direction: 'row',
1829
+ flexGrow: 0,
1830
+ flexShrink: 0,
1831
+ justifyContent: 'flex-start',
1832
+ space: 3
1833
+ }
1834
+ },
1835
+ TagsItem: {
1836
+ appearances: {
1837
+ focus: {
1838
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
1839
+ type: 'state',
1840
+ values: [ true ]
1841
+ },
1842
+ hover: {
1843
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
1844
+ type: 'state',
1845
+ values: [ true ]
1846
+ },
1847
+ inactive: {
1848
+ description: 'Prevents an interactive component from being interacted with and applies accessibility attributes to indicate to the user that this component cannot be used.',
1849
+ type: 'state',
1850
+ values: [ true ]
1851
+ },
1852
+ pressed: {
1853
+ description: 'Applies while an interactive component is being physically pressed. Most visible on touchscreen taps; in React Native Web, this is visible on web mouse clicks only if the pressable is held down.',
1854
+ type: 'state',
1855
+ values: [ true ]
1856
+ },
1857
+ selected: {
1858
+ description: 'Applies while an interactive component is the currently selected one in a set of states or components, for example a button in a `ButtonGroup`.',
1859
+ type: 'state',
1860
+ values: [ true ]
1861
+ }
1862
+ },
1863
+ rules: [
1864
+ {
1865
+ if: { pressed: true },
1866
+ tokens: {
1867
+ backgroundColor: '#016b6a',
1868
+ borderColor: '#016b6a',
1869
+ color: '#ffffff'
1870
+ }
1871
+ },
1872
+ {
1873
+ if: { focus: true },
1874
+ tokens: { outerBorderColor: '#016b6a' }
1875
+ },
1876
+ {
1877
+ if: { hover: true },
1878
+ tokens: { backgroundColor: '#014847', iconColor: '#014847' }
1879
+ },
1880
+ {
1881
+ if: { selected: true },
1882
+ tokens: {
1883
+ icon: PaletteIconCheckCircledFilled,
1884
+ opacity: 0.8,
1885
+ outerBorderColor: '#016b6a',
1886
+ outerBorderGap: 1,
1887
+ outerBorderWidth: 4
1888
+ }
1889
+ },
1890
+ {
1891
+ if: { focus: true, pressed: true },
1892
+ tokens: { outerBorderColor: '#016b6a' }
1893
+ },
1894
+ {
1895
+ if: { inactive: true },
1896
+ tokens: {
1897
+ backgroundColor: '#666666',
1898
+ borderWidth: 0,
1899
+ color: '#ffffff',
1900
+ iconColor: '#666666'
1901
+ }
1902
+ },
1903
+ {
1904
+ if: { selected: true },
1905
+ tokens: {
1906
+ opacity: 0.8,
1907
+ outerBorderColor: '#016b6a',
1908
+ outerBorderGap: 1,
1909
+ outerBorderWidth: 4
1910
+ }
1911
+ },
1912
+ {
1913
+ if: { focus: true, selected: true },
1914
+ tokens: { outerBorderColor: '#014847' }
1915
+ }
1916
+ ],
1917
+ tokens: {
1918
+ alignSelf: 'center',
1919
+ backgroundColor: '#016b6a',
1920
+ borderColor: '#014847',
1921
+ borderRadius: 4,
1922
+ borderWidth: 0,
1923
+ color: '#ffffff',
1924
+ fontName: 'StagSans',
1925
+ fontSize: 14,
1926
+ fontWeight: '600',
1927
+ icon: PaletteIconCheckCircledNotFilled,
1928
+ iconAlignSelf: 'center',
1929
+ iconBackground: '#ffffff',
1930
+ iconBorderRadius: 32,
1931
+ iconColor: '#016b6a',
1932
+ iconPadding: 4,
1933
+ iconPosition: 'right',
1934
+ iconSize: 20,
1935
+ iconSpace: 3,
1936
+ iconTranslateX: 0,
1937
+ iconTranslateY: 0,
1938
+ lineHeight: 1.5,
1939
+ minWidth: 0,
1940
+ opacity: 1,
1941
+ outerBackgroundColor: 'rgba(0, 0, 0, 0)',
1942
+ outerBorderColor: 'rgba(0, 0, 0, 0)',
1943
+ outerBorderGap: 2,
1944
+ outerBorderWidth: 2,
1945
+ paddingBottom: 8,
1946
+ paddingLeft: 24,
1947
+ paddingRight: 16,
1948
+ paddingTop: 8,
1949
+ shadow: null,
1950
+ textAlign: 'center',
1951
+ width: null
1952
+ }
1953
+ },
1954
+ TextArea: {
1955
+ appearances: {},
1956
+ rules: [],
1957
+ tokens: { maxLines: 4, minLines: 2 }
1958
+ },
1959
+ TextInput: {
1960
+ appearances: {
1961
+ focus: {
1962
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
1963
+ type: 'state',
1964
+ values: [ true ]
1965
+ },
1966
+ hover: {
1967
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
1968
+ type: 'state',
1969
+ values: [ true ]
1970
+ },
1971
+ inactive: {
1972
+ description: 'Prevents an interactive component from being interacted with and applies accessibility attributes to indicate to the user that this component cannot be used.',
1973
+ type: 'state',
1974
+ values: [ true ]
1975
+ },
1976
+ validation: {
1977
+ description: 'Validation states for form inputs',
1978
+ type: 'state',
1979
+ values: [ 'error', 'success' ]
1980
+ }
1981
+ },
1982
+ rules: [
1983
+ {
1984
+ if: { hover: true, inactive: null },
1985
+ tokens: {
1986
+ outerBackgroundColor: '#efefef',
1987
+ outerBorderColor: '#efefef'
1988
+ }
1989
+ },
1990
+ {
1991
+ if: { validation: 'success' },
1992
+ tokens: {
1993
+ borderColor: '#258b0b',
1994
+ icon: PaletteIconCheckCircledFilled,
1995
+ iconColor: '#258b0b'
1996
+ }
1997
+ },
1998
+ {
1999
+ if: { validation: 'error' },
2000
+ tokens: {
2001
+ borderColor: '#df3d0c',
2002
+ icon: PaletteIconTimes,
2003
+ iconColor: '#df3d0c'
2004
+ }
2005
+ },
2006
+ {
2007
+ if: { focus: true, inactive: null },
2008
+ tokens: { borderColor: '#016b6a', borderWidth: 2, icon: null }
2009
+ },
2010
+ {
2011
+ if: { inactive: true },
2012
+ tokens: { backgroundColor: '#efefef', borderColor: '#efefef' }
2013
+ }
2014
+ ],
2015
+ tokens: {
2016
+ backgroundColor: '#ffffff',
2017
+ borderColor: '#c9c8c8',
2018
+ borderRadius: 4,
2019
+ borderWidth: 1,
2020
+ color: '#666666',
2021
+ fontName: 'StagSans',
2022
+ fontSize: 16,
2023
+ fontWeight: '400',
2024
+ icon: null,
2025
+ iconColor: 'rgba(0, 0, 0, 0)',
2026
+ iconSize: 24,
2027
+ lineHeight: 1.5,
2028
+ outerBackgroundColor: 'rgba(0, 0, 0, 0)',
2029
+ outerBorderColor: 'rgba(0, 0, 0, 0)',
2030
+ outerBorderWidth: 2,
2031
+ paddingBottom: 10,
2032
+ paddingLeft: 16,
2033
+ paddingRight: 16,
2034
+ paddingTop: 10
2035
+ }
2036
+ },
2037
+ ToggleSwitch: {
2038
+ appearances: {
2039
+ focus: {
2040
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
2041
+ type: 'state',
2042
+ values: [ true ]
2043
+ },
2044
+ hover: {
2045
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
2046
+ type: 'state',
2047
+ values: [ true ]
2048
+ },
2049
+ inactive: {
2050
+ description: 'Prevents an interactive component from being interacted with and applies accessibility attributes to indicate to the user that this component cannot be used.',
2051
+ type: 'state',
2052
+ values: [ true ]
2053
+ },
2054
+ pressed: {
2055
+ description: 'Applies while an interactive component is being physically pressed. Most visible on touchscreen taps; in React Native Web, this is visible on web mouse clicks only if the pressable is held down.',
2056
+ type: 'state',
2057
+ values: [ true ]
2058
+ },
2059
+ selected: {
2060
+ description: 'Applies while an interactive component is the currently selected one in a set of states or components, for example a button in a `ButtonGroup`.',
2061
+ type: 'state',
2062
+ values: [ true ]
2063
+ }
2064
+ },
2065
+ rules: [
2066
+ { if: { hover: true }, tokens: { backgroundColor: '#014847' } },
2067
+ {
2068
+ if: { pressed: true },
2069
+ tokens: { backgroundColor: '#c3efff' }
2070
+ },
2071
+ {
2072
+ if: { focus: true },
2073
+ tokens: { outerBorderColor: '#016b6a' }
2074
+ },
2075
+ {
2076
+ if: { selected: true },
2077
+ tokens: { backgroundColor: '#00a1db' }
2078
+ },
2079
+ {
2080
+ if: { hover: true, selected: true },
2081
+ tokens: { backgroundColor: '#0083b3' }
2082
+ },
2083
+ {
2084
+ if: { pressed: true, selected: true },
2085
+ tokens: { backgroundColor: '#c3efff' }
2086
+ },
2087
+ {
2088
+ if: { focus: true, selected: true },
2089
+ tokens: { outerBorderColor: '#00a1db' }
2090
+ },
2091
+ {
2092
+ if: { focus: true, pressed: true, selected: true },
2093
+ tokens: { outerBorderColor: '#c3efff' }
2094
+ },
2095
+ { if: { inactive: true }, tokens: { opacity: 0.5 } }
2096
+ ],
2097
+ tokens: {
2098
+ alignSelf: 'flex-start',
2099
+ backgroundColor: '#016b6a',
2100
+ borderColor: 'rgba(0, 0, 0, 0)',
2101
+ borderRadius: 4,
2102
+ borderWidth: 0,
2103
+ icon: null,
2104
+ iconColor: 'rgba(0, 0, 0, 0)',
2105
+ iconSize: 16,
2106
+ opacity: 1,
2107
+ outerBackgroundColor: 'rgba(0, 0, 0, 0)',
2108
+ outerBorderColor: 'rgba(0, 0, 0, 0)',
2109
+ outerBorderGap: 0,
2110
+ outerBorderWidth: 0,
2111
+ paddingBottom: 4,
2112
+ paddingLeft: 8,
2113
+ paddingRight: 8,
2114
+ paddingTop: 4,
2115
+ shadow: null,
2116
+ switchBorderColor: 'rgba(0, 0, 0, 0)',
2117
+ switchBorderRadius: 32,
2118
+ switchBorderWidth: 0,
2119
+ switchColor: '#ffffff',
2120
+ switchShadow: null,
2121
+ switchSize: 24,
2122
+ trackBorderColor: 'rgba(0, 0, 0, 0)',
2123
+ trackBorderRadius: 0,
2124
+ trackBorderWidth: 0,
2125
+ width: 64
2126
+ }
2127
+ },
2128
+ Tooltip: {
2129
+ appearances: {},
2130
+ rules: [],
2131
+ tokens: {
2132
+ arrowBorderRadius: 0,
2133
+ arrowOffset: 4,
2134
+ arrowWidth: 8,
2135
+ backgroundColor: '#014847',
2136
+ borderRadius: 4,
2137
+ color: '#ffffff',
2138
+ fontName: 'StagSans',
2139
+ fontSize: 14,
2140
+ fontWeight: '400',
2141
+ lineHeight: 1.4,
2142
+ paddingBottom: 8,
2143
+ paddingLeft: 16,
2144
+ paddingRight: 16,
2145
+ paddingTop: 8,
2146
+ shadow: {
2147
+ blur: 0,
2148
+ color: 'rgba(0, 0, 0, 0)',
2149
+ inset: false,
2150
+ offsetX: 0,
2151
+ offsetY: 0,
2152
+ spread: 0
2153
+ }
2154
+ }
2155
+ },
2156
+ TooltipButton: {
2157
+ appearances: {
2158
+ focus: {
2159
+ description: "Currently only web has good support for this. Applies when an interactive component's focus handler is triggered, such as keyboard tabbing or selection.",
2160
+ type: 'state',
2161
+ values: [ true ]
2162
+ },
2163
+ hover: {
2164
+ description: "Currently web only. Applies when an interactive component's hover handler is triggered, such as on mouseover.",
2165
+ type: 'state',
2166
+ values: [ true ]
2167
+ },
2168
+ pressed: {
2169
+ description: 'Applies while an interactive component is being physically pressed. Most visible on touchscreen taps; in React Native Web, this is visible on web mouse clicks only if the pressable is held down.',
2170
+ type: 'state',
2171
+ values: [ true ]
2172
+ }
2173
+ },
2174
+ rules: [
2175
+ { if: { hover: true }, tokens: { iconScale: 1.25 } },
2176
+ { if: { pressed: true }, tokens: { iconColor: '#014847' } },
2177
+ {
2178
+ if: { focus: true },
2179
+ tokens: { outerBorderColor: '#014847' }
2180
+ }
2181
+ ],
2182
+ tokens: {
2183
+ borderRadius: 32,
2184
+ icon: PaletteIconInfo,
2185
+ iconColor: '#ee2c74',
2186
+ iconScale: 1,
2187
+ iconSize: 16,
2188
+ outerBorderColor: 'rgba(0, 0, 0, 0)',
2189
+ outerBorderGap: 4,
2190
+ outerBorderWidth: 1,
2191
+ width: 16
2192
+ }
2193
+ },
2194
+ Typography: {
2195
+ appearances: {
2196
+ colour: { type: 'variant', values: [ 'red' ] },
2197
+ inverse: {
2198
+ description: 'Styles the link white for use on dark backgrounds.',
2199
+ type: 'variant',
2200
+ values: [ true ]
2201
+ },
2202
+ size: {
2203
+ type: 'variant',
2204
+ values: [ 'small', 'large', 'h1', 'h2', 'h3', 'h4', 'display' ]
2205
+ },
2206
+ viewport: {
2207
+ description: 'The size label for the current screen viewport based on the current screen width',
2208
+ type: 'state',
2209
+ values: [ 'xs', 'sm', 'md', 'lg', 'xl' ]
2210
+ },
2211
+ weight: {
2212
+ description: 'Sets the font weight, default is regular 400 weight. Does not change accessibility properties.',
2213
+ type: 'variant',
2214
+ values: [ 'semibold', 'bold' ]
2215
+ }
2216
+ },
2217
+ rules: [
2218
+ {
2219
+ if: { weight: 'semibold' },
2220
+ tokens: { fontName: 'StagSans', fontWeight: '600' }
2221
+ },
2222
+ {
2223
+ if: { weight: 'bold' },
2224
+ tokens: { fontName: 'StagSans', fontWeight: '700' }
2225
+ },
2226
+ {
2227
+ if: { size: 'large' },
2228
+ tokens: { fontSize: 20, lineHeight: 1.6 }
2229
+ },
2230
+ {
2231
+ if: { size: 'small' },
2232
+ tokens: { fontSize: 14, lineHeight: 1.4 }
2233
+ },
2234
+ {
2235
+ if: { size: 'display' },
2236
+ tokens: {
2237
+ fontName: 'StagSans',
2238
+ fontSize: 48,
2239
+ fontWeight: '700',
2240
+ lineHeight: 1.2
2241
+ }
2242
+ },
2243
+ {
2244
+ if: { size: 'display', viewport: [ 'lg', 'xl' ] },
2245
+ tokens: { fontSize: 64, lineHeight: 1.1 }
2246
+ },
2247
+ {
2248
+ if: { size: 'h1' },
2249
+ tokens: {
2250
+ fontName: 'StagSans',
2251
+ fontSize: 44,
2252
+ fontWeight: '700',
2253
+ lineHeight: 1.2
2254
+ }
2255
+ },
2256
+ {
2257
+ if: { size: 'h1', viewport: [ 'lg', 'xl' ] },
2258
+ tokens: { fontSize: 40, lineHeight: 1.1 }
2259
+ },
2260
+ {
2261
+ if: { size: 'h2' },
2262
+ tokens: {
2263
+ color: '#000000',
2264
+ fontName: 'StagSans',
2265
+ fontSize: 28,
2266
+ fontWeight: '700',
2267
+ lineHeight: 1.3
2268
+ }
2269
+ },
2270
+ {
2271
+ if: { size: 'h2', viewport: [ 'lg', 'xl' ] },
2272
+ tokens: { fontSize: 28 }
2273
+ },
2274
+ {
2275
+ if: { size: 'h3' },
2276
+ tokens: {
2277
+ fontName: 'StagSans',
2278
+ fontSize: 20,
2279
+ fontWeight: '700',
2280
+ lineHeight: 1.4
2281
+ }
2282
+ },
2283
+ {
2284
+ if: { size: 'h3', viewport: [ 'lg', 'xl' ] },
2285
+ tokens: { fontSize: 24, lineHeight: 1.3 }
2286
+ },
2287
+ {
2288
+ if: { size: 'h4' },
2289
+ tokens: {
2290
+ fontName: 'StagSans',
2291
+ fontSize: 16,
2292
+ fontWeight: '700',
2293
+ lineHeight: 1.5
2294
+ }
2295
+ },
2296
+ { if: { inverse: true }, tokens: { color: '#ffffff' } },
2297
+ { if: { colour: 'red' }, tokens: { color: '#df3d0c' } }
2298
+ ],
2299
+ tokens: {
2300
+ color: '#000000',
2301
+ fontName: 'StagSans',
2302
+ fontScaleCap: 64,
2303
+ fontSize: 16,
2304
+ fontWeight: '400',
2305
+ letterSpacing: 0,
2306
+ lineHeight: 1.5,
2307
+ textTransform: 'none'
2308
+ }
2309
+ },
2310
+ spacingScale: {
2311
+ appearances: {
2312
+ space: {
2313
+ description: 'Index of the intended position on the spacing scale',
2314
+ type: 'state',
2315
+ values: [
2316
+ 0, 1, 2, 3, 4,
2317
+ 5, 6, 7, 8, 9,
2318
+ 10, 11
2319
+ ]
2320
+ },
2321
+ viewport: {
2322
+ description: 'The size label for the current screen viewport based on the current screen width',
2323
+ type: 'state',
2324
+ values: [ 'xs', 'sm', 'md', 'lg', 'xl' ]
2325
+ }
2326
+ },
2327
+ rules: [
2328
+ { if: { viewport: [ 'lg', 'xl' ] }, tokens: { size: 120 } },
2329
+ { if: { space: 10 }, tokens: { size: 80 } },
2330
+ { if: { space: 9 }, tokens: { size: 64 } },
2331
+ { if: { space: 8 }, tokens: { size: 48 } },
2332
+ { if: { space: 7 }, tokens: { size: 40 } },
2333
+ { if: { space: 6 }, tokens: { size: 36 } },
2334
+ { if: { space: 5 }, tokens: { size: 32 } },
2335
+ { if: { space: 4 }, tokens: { size: 24 } },
2336
+ { if: { space: 3 }, tokens: { size: 16 } },
2337
+ { if: { space: 2 }, tokens: { size: 8 } },
2338
+ { if: { space: 1 }, tokens: { size: 4 } },
2339
+ {
2340
+ if: { space: 10, viewport: [ 'lg', 'xl' ] },
2341
+ tokens: { size: 120 }
2342
+ },
2343
+ {
2344
+ if: { space: 9, viewport: [ 'lg', 'xl' ] },
2345
+ tokens: { size: 96 }
2346
+ },
2347
+ {
2348
+ if: { space: 8, viewport: [ 'lg', 'xl' ] },
2349
+ tokens: { size: 72 }
2350
+ },
2351
+ {
2352
+ if: { space: 7, viewport: [ 'lg', 'xl' ] },
2353
+ tokens: { size: 64 }
2354
+ },
2355
+ { if: { space: 0 }, tokens: { size: 0 } }
2356
+ ],
2357
+ tokens: { size: 96 }
2358
+ }
2359
+ },
2360
+ metadata: {
2361
+ name: 'koodo',
2362
+ package: '@telus-uds/theme-koodo',
2363
+ themeTokensVersion: '0.0.2-prerelease.0'
2364
+ }
2365
+ }