@omni-design/components 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/OmniDesignProvider.esm.js +1 -1
  2. package/dist/OmniDesignProvider.esm.js.map +1 -1
  3. package/dist/OmniDesignProvider.js +1 -1
  4. package/dist/OmniDesignProvider.js.map +1 -1
  5. package/dist/index.esm.js +8 -3
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.js +8 -3
  8. package/dist/index.js.map +1 -1
  9. package/dist/types/components/BackgroundPicker.d.ts +1 -1
  10. package/dist/types/components/BrandIcon/BrandIcon.d.ts +23 -0
  11. package/dist/types/components/BrandIcon/BrandIconShowcase.d.ts +2 -0
  12. package/dist/types/components/BrandIcon/index.d.ts +2 -0
  13. package/dist/types/components/Button/Button.d.ts +35 -66
  14. package/dist/types/components/ButtonGroup/ButtonGroup.d.ts +3 -1
  15. package/dist/types/components/Charts/tokens.d.ts +1 -1
  16. package/dist/types/components/CodeBlock/index.d.ts +1 -0
  17. package/dist/types/components/Footer/Footer.d.ts +3 -1
  18. package/dist/types/components/Foundations/FoundationTopic.d.ts +4 -0
  19. package/dist/types/components/Foundations/HowToSlot.d.ts +16 -0
  20. package/dist/types/components/Foundations/TokenRoles.d.ts +19 -0
  21. package/dist/types/components/Foundations/TypographySummary.d.ts +2 -0
  22. package/dist/types/components/List/List.d.ts +2 -1
  23. package/dist/types/components/Rail/Rail.d.ts +2 -1
  24. package/dist/types/components/ShowcaseHeader.d.ts +5 -0
  25. package/dist/types/components/Slider/Slider.d.ts +6 -3
  26. package/dist/types/components/TextField/TextField.d.ts +1 -1
  27. package/dist/types/components/ToggleButtonGroup/ToggleButtonGroup.d.ts +8 -5
  28. package/dist/types/components/ToggleButtonGroup/ToggleButtonGroupShowcase.d.ts +2 -0
  29. package/dist/types/components/ToggleButtonGroup/index.d.ts +2 -0
  30. package/dist/types/components/Typography/Typography.d.ts +54 -1
  31. package/dist/types/components/Typography/index.d.ts +1 -1
  32. package/dist/types/components/_states.d.ts +1 -1
  33. package/dist/types/components/a11yPanel.d.ts +58 -0
  34. package/dist/types/components/index.d.ts +3 -2
  35. package/dist/types/docs/DocPanels.d.ts +0 -14
  36. package/dist/types/docs/components.d.ts +131 -0
  37. package/dist/types/docs/componentsNav.d.ts +29 -13
  38. package/dist/types/docs/componentsSurfaces.d.ts +113 -10
  39. package/dist/types/docs/examples.d.ts +55 -34
  40. package/dist/types/docs/examples.lead.d.ts +89 -0
  41. package/dist/types/docs/figmaHowTo.d.ts +28 -0
  42. package/dist/types/docs/figmaLinks.d.ts +59 -0
  43. package/dist/types/docs/foundations.d.ts +12 -0
  44. package/dist/types/docs/samples.buttongroup.d.ts +22 -0
  45. package/dist/types/docs/samples.core.d.ts +104 -0
  46. package/dist/types/docs/samples.d.ts +27 -0
  47. package/dist/types/docs/samples.forms.d.ts +69 -0
  48. package/dist/types/docs/samples.nav.d.ts +70 -0
  49. package/dist/types/docs/samples.slider.d.ts +12 -0
  50. package/dist/types/docs/samples.surfaces.d.ts +69 -0
  51. package/package.json +4 -2
  52. package/public/styles/Dark-Mode.css +6 -0
  53. package/public/styles/Light-Mode.css +6 -0
  54. package/public/styles/README.md +1 -1
  55. package/public/styles/base.css +64 -19
  56. package/public/styles/core.css +94 -15
  57. package/public/styles/foundation.css +18 -0
  58. package/public/styles/typography-tokens.css +269 -20
  59. package/dist/types/theme/useThemeMode.d.ts +0 -4
@@ -18,11 +18,23 @@ export const FOUNDATIONS: ({
18
18
  head: string[];
19
19
  rows: string[][];
20
20
  };
21
+ body2: any[];
21
22
  trap: string;
23
+ } | {
24
+ title: string;
25
+ lede: string;
26
+ body: string[];
27
+ table: {
28
+ head: string[];
29
+ rows: string[][];
30
+ };
31
+ trap: string;
32
+ body2?: undefined;
22
33
  } | {
23
34
  title: string;
24
35
  lede: string;
25
36
  body: string[];
26
37
  trap: string;
27
38
  table?: undefined;
39
+ body2?: undefined;
28
40
  })[];
@@ -0,0 +1,22 @@
1
+ export const BUTTON_GROUP_SAMPLES: {
2
+ separated: () => JSX.Element;
3
+ fit: () => JSX.Element;
4
+ orientation: () => JSX.Element;
5
+ size: () => JSX.Element;
6
+ variant: () => JSX.Element;
7
+ disabled: () => JSX.Element;
8
+ 'aria-label': () => JSX.Element;
9
+ };
10
+ export const TOGGLE_BUTTON_GROUP_SAMPLES: {
11
+ allowEmpty: () => JSX.Element;
12
+ multiple: () => JSX.Element;
13
+ separated: () => JSX.Element;
14
+ variant: () => JSX.Element;
15
+ color: () => JSX.Element;
16
+ size: () => JSX.Element;
17
+ fit: () => JSX.Element;
18
+ orientation: () => JSX.Element;
19
+ 'value / defaultValue': () => JSX.Element;
20
+ onChange: () => JSX.Element;
21
+ disabled: () => JSX.Element;
22
+ };
@@ -0,0 +1,104 @@
1
+ export namespace CORE_SAMPLES {
2
+ namespace Button {
3
+ function selected(): JSX.Element;
4
+ function avatar(): JSX.Element;
5
+ function letterNumber(): JSX.Element;
6
+ function swatch(): JSX.Element;
7
+ }
8
+ namespace Chip {
9
+ export function variant(): JSX.Element;
10
+ export function selected_1(): JSX.Element;
11
+ export { selected_1 as selected };
12
+ export function clickable(): JSX.Element;
13
+ export function disabled(): JSX.Element;
14
+ }
15
+ namespace Badge {
16
+ export function variant_1(): JSX.Element;
17
+ export { variant_1 as variant };
18
+ export function dot(): JSX.Element;
19
+ export function showZero(): JSX.Element;
20
+ export function invisible(): JSX.Element;
21
+ export function overlap(): JSX.Element;
22
+ }
23
+ namespace Alert {
24
+ function color(): JSX.Element;
25
+ function size(): JSX.Element;
26
+ }
27
+ namespace Avatar {
28
+ export function defaultPhoto(): JSX.Element;
29
+ export function size_1(): JSX.Element;
30
+ export { size_1 as size };
31
+ export function clickable_1(): JSX.Element;
32
+ export { clickable_1 as clickable };
33
+ }
34
+ namespace Icon {
35
+ export function color_1(): JSX.Element;
36
+ export { color_1 as color };
37
+ export function size_2(): JSX.Element;
38
+ export { size_2 as size };
39
+ export function twoTone(): JSX.Element;
40
+ export function disabled_1(): JSX.Element;
41
+ export { disabled_1 as disabled };
42
+ }
43
+ namespace Swatch {
44
+ export function size_3(): JSX.Element;
45
+ export { size_3 as size };
46
+ export function selected_2(): JSX.Element;
47
+ export { selected_2 as selected };
48
+ export function disabled_2(): JSX.Element;
49
+ export { disabled_2 as disabled };
50
+ export function radio(): JSX.Element;
51
+ }
52
+ namespace Tag {
53
+ export function color_2(): JSX.Element;
54
+ export { color_2 as color };
55
+ export function width(): JSX.Element;
56
+ export function allCaps(): JSX.Element;
57
+ }
58
+ namespace IconBadge {
59
+ export function color_3(): JSX.Element;
60
+ export { color_3 as color };
61
+ export function size_4(): JSX.Element;
62
+ export { size_4 as size };
63
+ }
64
+ namespace Link {
65
+ export function disabled_3(): JSX.Element;
66
+ export { disabled_3 as disabled };
67
+ }
68
+ namespace Divider {
69
+ export function color_4(): JSX.Element;
70
+ export { color_4 as color };
71
+ export function orientation(): JSX.Element;
72
+ export function size_5(): JSX.Element;
73
+ export { size_5 as size };
74
+ export function indicatorStyle(): JSX.Element;
75
+ export function textAlign(): JSX.Element;
76
+ }
77
+ namespace Loader {
78
+ export function color_5(): JSX.Element;
79
+ export { color_5 as color };
80
+ export function size_6(): JSX.Element;
81
+ export { size_6 as size };
82
+ }
83
+ namespace StateMessage {
84
+ export function type(): JSX.Element;
85
+ export function size_7(): JSX.Element;
86
+ export { size_7 as size };
87
+ }
88
+ namespace Fab {
89
+ export function variant_2(): JSX.Element;
90
+ export { variant_2 as variant };
91
+ }
92
+ namespace Rating {
93
+ export function color_6(): JSX.Element;
94
+ export { color_6 as color };
95
+ export function size_8(): JSX.Element;
96
+ export { size_8 as size };
97
+ export function readOnly(): JSX.Element;
98
+ }
99
+ namespace CodeBlock {
100
+ function showCopy(): JSX.Element;
101
+ function showHeader(): JSX.Element;
102
+ function wrap(): JSX.Element;
103
+ }
104
+ }
@@ -0,0 +1,27 @@
1
+ export const PALETTES: string[];
2
+ export const BUTTON_ONLY: string[];
3
+ export const SIZES: string[];
4
+ export function Cell({ label, emphasis, width, children }: {
5
+ label: any;
6
+ emphasis?: boolean;
7
+ width: any;
8
+ children: any;
9
+ }): JSX.Element;
10
+ export function Axis({ values, render, defaultValue, width }: {
11
+ values: any;
12
+ render: any;
13
+ defaultValue: any;
14
+ width: any;
15
+ }): JSX.Element;
16
+ export function AxisStack({ values, render, defaultValue, width }: {
17
+ values: any;
18
+ render: any;
19
+ defaultValue: any;
20
+ width?: string;
21
+ }): JSX.Element;
22
+ export function Toggle({ render, offLabel, onLabel, width }: {
23
+ render: any;
24
+ offLabel?: string;
25
+ onLabel?: string;
26
+ width: any;
27
+ }): JSX.Element;
@@ -0,0 +1,69 @@
1
+ export namespace FORM_SAMPLES {
2
+ let Checkbox: {
3
+ variant: () => JSX.Element;
4
+ size: () => JSX.Element;
5
+ 'checked / defaultChecked': () => JSX.Element;
6
+ indeterminate: () => JSX.Element;
7
+ disabled: () => JSX.Element;
8
+ };
9
+ namespace Radio {
10
+ function color(): JSX.Element;
11
+ function size(): JSX.Element;
12
+ function labelPlacement(): JSX.Element;
13
+ function checked(): JSX.Element;
14
+ function disabled(): JSX.Element;
15
+ }
16
+ let SwitchInput: {
17
+ variant: () => JSX.Element;
18
+ size: () => JSX.Element;
19
+ 'checked / defaultChecked': () => JSX.Element;
20
+ icon: () => JSX.Element;
21
+ labelPlacement: () => JSX.Element;
22
+ disabled: () => JSX.Element;
23
+ };
24
+ namespace Input {
25
+ export function variant(): JSX.Element;
26
+ export function size_1(): JSX.Element;
27
+ export { size_1 as size };
28
+ export function labelPosition(): JSX.Element;
29
+ export function validation(): JSX.Element;
30
+ export function disabled_1(): JSX.Element;
31
+ export { disabled_1 as disabled };
32
+ }
33
+ namespace TextField {
34
+ export function error(): JSX.Element;
35
+ export function size_2(): JSX.Element;
36
+ export { size_2 as size };
37
+ }
38
+ namespace SearchField {
39
+ export function color_1(): JSX.Element;
40
+ export { color_1 as color };
41
+ export function showClearButton(): JSX.Element;
42
+ export function size_3(): JSX.Element;
43
+ export { size_3 as size };
44
+ }
45
+ namespace Select {
46
+ export function labelPosition_1(): JSX.Element;
47
+ export { labelPosition_1 as labelPosition };
48
+ export function size_4(): JSX.Element;
49
+ export { size_4 as size };
50
+ export function mode(): JSX.Element;
51
+ }
52
+ namespace Autocomplete {
53
+ export function labelPosition_2(): JSX.Element;
54
+ export { labelPosition_2 as labelPosition };
55
+ export function size_5(): JSX.Element;
56
+ export { size_5 as size };
57
+ }
58
+ namespace DropZone {
59
+ export function multiple(): JSX.Element;
60
+ export function size_6(): JSX.Element;
61
+ export { size_6 as size };
62
+ export function disabled_2(): JSX.Element;
63
+ export { disabled_2 as disabled };
64
+ }
65
+ namespace Avatar {
66
+ export function color_2(): JSX.Element;
67
+ export { color_2 as color };
68
+ }
69
+ }
@@ -0,0 +1,70 @@
1
+ export namespace NAV_SAMPLES {
2
+ namespace Tabs {
3
+ function orientation(): JSX.Element;
4
+ function baseline(): JSX.Element;
5
+ function variant(): JSX.Element;
6
+ function size(): JSX.Element;
7
+ function scrollable(): JSX.Element;
8
+ }
9
+ namespace Breadcrumbs {
10
+ export function size_1(): JSX.Element;
11
+ export { size_1 as size };
12
+ export function condense(): JSX.Element;
13
+ export function backOnlyMobile(): JSX.Element;
14
+ }
15
+ let Pagination: {
16
+ size: () => JSX.Element;
17
+ 'showFirstButton / showLastButton': () => JSX.Element;
18
+ };
19
+ namespace Stepper {
20
+ export function orientation_1(): JSX.Element;
21
+ export { orientation_1 as orientation };
22
+ export function size_2(): JSX.Element;
23
+ export { size_2 as size };
24
+ export function clickable(): JSX.Element;
25
+ export function dashedIncomplete(): JSX.Element;
26
+ }
27
+ namespace List {
28
+ export function orientation_2(): JSX.Element;
29
+ export { orientation_2 as orientation };
30
+ export function dividers(): JSX.Element;
31
+ export function clickable_1(): JSX.Element;
32
+ export { clickable_1 as clickable };
33
+ export function selectionMode(): JSX.Element;
34
+ export function loading(): JSX.Element;
35
+ }
36
+ namespace TreeView {
37
+ export function selectionMode_1(): JSX.Element;
38
+ export { selectionMode_1 as selectionMode };
39
+ }
40
+ namespace AppBar {
41
+ function mode(): JSX.Element;
42
+ function brandType(): JSX.Element;
43
+ function menuType(): JSX.Element;
44
+ }
45
+ namespace Rail {
46
+ export function variant_1(): JSX.Element;
47
+ export { variant_1 as variant };
48
+ export function expandable(): JSX.Element;
49
+ export function expandedWidth(): JSX.Element;
50
+ export function labelStyle(): JSX.Element;
51
+ }
52
+ namespace BottomNavigation {
53
+ export function showLabels(): JSX.Element;
54
+ export function variant_2(): JSX.Element;
55
+ export { variant_2 as variant };
56
+ }
57
+ namespace Sidebar {
58
+ export function variant_3(): JSX.Element;
59
+ export { variant_3 as variant };
60
+ }
61
+ namespace Toolbar {
62
+ export function type(): JSX.Element;
63
+ export function orientation_3(): JSX.Element;
64
+ export { orientation_3 as orientation };
65
+ }
66
+ namespace Menu {
67
+ export function size_3(): JSX.Element;
68
+ export { size_3 as size };
69
+ }
70
+ }
@@ -0,0 +1,12 @@
1
+ export const SLIDER_SAMPLES: {
2
+ variant: () => JSX.Element;
3
+ size: () => JSX.Element;
4
+ 'value / defaultValue': () => JSX.Element;
5
+ fill: () => JSX.Element;
6
+ orientation: () => JSX.Element;
7
+ marks: () => JSX.Element;
8
+ step: () => JSX.Element;
9
+ valueLabelDisplay: () => JSX.Element;
10
+ label: () => JSX.Element;
11
+ disabled: () => JSX.Element;
12
+ };
@@ -0,0 +1,69 @@
1
+ export namespace SURFACE_SAMPLES {
2
+ namespace Card {
3
+ function variant(): JSX.Element;
4
+ function size(): JSX.Element;
5
+ function orientation(): JSX.Element;
6
+ function clickable(): JSX.Element;
7
+ function elevated(): JSX.Element;
8
+ function selected(): JSX.Element;
9
+ }
10
+ namespace Accordion {
11
+ export function variant_1(): JSX.Element;
12
+ export { variant_1 as variant };
13
+ export function size_1(): JSX.Element;
14
+ export { size_1 as size };
15
+ export function defaultExpanded(): JSX.Element;
16
+ export function disabled(): JSX.Element;
17
+ }
18
+ namespace Paper {
19
+ export function outlined(): JSX.Element;
20
+ export function variant_2(): JSX.Element;
21
+ export { variant_2 as variant };
22
+ }
23
+ namespace Ratio {
24
+ function fit(): JSX.Element;
25
+ }
26
+ namespace Table {
27
+ function loading(): JSX.Element;
28
+ }
29
+ namespace Modal {
30
+ export function open(): JSX.Element;
31
+ export function size_2(): JSX.Element;
32
+ export { size_2 as size };
33
+ export function layout(): JSX.Element;
34
+ export function closeOnBackdrop(): JSX.Element;
35
+ export function showCloseButton(): JSX.Element;
36
+ }
37
+ namespace Dialog {
38
+ export function open_1(): JSX.Element;
39
+ export { open_1 as open };
40
+ export function maxWidth(): JSX.Element;
41
+ export function fullScreen(): JSX.Element;
42
+ export function alert(): JSX.Element;
43
+ export function nonModal(): JSX.Element;
44
+ }
45
+ namespace Drawer {
46
+ export function open_2(): JSX.Element;
47
+ export { open_2 as open };
48
+ export function anchor(): JSX.Element;
49
+ export function size_3(): JSX.Element;
50
+ export { size_3 as size };
51
+ export function hideBackdrop(): JSX.Element;
52
+ }
53
+ namespace Snackbar {
54
+ export function open_3(): JSX.Element;
55
+ export { open_3 as open };
56
+ export function color(): JSX.Element;
57
+ export function anchor_1(): JSX.Element;
58
+ export { anchor_1 as anchor };
59
+ }
60
+ namespace Tooltip {
61
+ function placement(): JSX.Element;
62
+ function arrow(): JSX.Element;
63
+ function describeChild(): JSX.Element;
64
+ }
65
+ namespace Popover {
66
+ export function open_4(): JSX.Element;
67
+ export { open_4 as open };
68
+ }
69
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omni-design/components",
3
- "version": "0.12.0",
3
+ "version": "0.14.0",
4
4
  "description": "DynoDesign adaptive component library — token-driven React components with customizable CSS theming",
5
5
  "author": "Lise Noble",
6
6
  "license": "Apache-2.0",
@@ -107,7 +107,9 @@
107
107
  "type": "git",
108
108
  "url": "https://github.com/lwnoble/omni-design"
109
109
  },
110
- "dependencies": {},
110
+ "dependencies": {
111
+ "@fortawesome/free-brands-svg-icons": "^7.3.1"
112
+ },
111
113
  "homepage": "/",
112
114
  "browserslist": {
113
115
  "production": [
@@ -170,6 +170,8 @@ body { margin: 0; }
170
170
  * ======================================== */
171
171
 
172
172
  /* Theme: Default - Surfaces */
173
+ :root,
174
+ [data-surface="Surface"],
173
175
  [data-theme="Default"],
174
176
  [data-theme="Default"][data-surface="Surface"] {
175
177
  --Background: var(--Neutral-Color-1);
@@ -338,6 +340,7 @@ body { margin: 0; }
338
340
  }
339
341
 
340
342
  /* Theme: Default - Surfaces-Dim */
343
+ [data-surface="Surface-Dim"],
341
344
  [data-theme="Default"] [data-surface="Surface-Dim"],
342
345
  [data-theme="Default"][data-surface="Surface-Dim"] {
343
346
  --Background: var(--Neutral-Color-1);
@@ -506,6 +509,7 @@ body { margin: 0; }
506
509
  }
507
510
 
508
511
  /* Theme: Default - Surfaces-Dimmest */
512
+ [data-surface="Surface-Dimmest"],
509
513
  [data-theme="Default"] [data-surface="Surface-Dimmest"],
510
514
  [data-theme="Default"][data-surface="Surface-Dimmest"] {
511
515
  --Background: var(--Neutral-Color-3);
@@ -674,6 +678,7 @@ body { margin: 0; }
674
678
  }
675
679
 
676
680
  /* Theme: Default - Surfaces-Bright */
681
+ [data-surface="Surface-Bright"],
677
682
  [data-theme="Default"] [data-surface="Surface-Bright"],
678
683
  [data-theme="Default"][data-surface="Surface-Bright"] {
679
684
  --Background: var(--Neutral-Color-3);
@@ -842,6 +847,7 @@ body { margin: 0; }
842
847
  }
843
848
 
844
849
  /* Theme: Default - Surfaces-Brightest */
850
+ [data-surface="Surface-Brightest"],
845
851
  [data-theme="Default"] [data-surface="Surface-Brightest"],
846
852
  [data-theme="Default"][data-surface="Surface-Brightest"] {
847
853
  --Background: var(--Neutral-Color-11);
@@ -170,6 +170,8 @@ body { margin: 0; }
170
170
  * ======================================== */
171
171
 
172
172
  /* Theme: Default - Surfaces */
173
+ :root,
174
+ [data-surface="Surface"],
173
175
  [data-theme="Default"],
174
176
  [data-theme="Default"][data-surface="Surface"] {
175
177
  --Background: var(--Neutral-Color-12);
@@ -347,6 +349,7 @@ body { margin: 0; }
347
349
  }
348
350
 
349
351
  /* Theme: Default - Surfaces-Dim */
352
+ [data-surface="Surface-Dim"],
350
353
  [data-theme="Default"] [data-surface="Surface-Dim"],
351
354
  [data-theme="Default"][data-surface="Surface-Dim"] {
352
355
  --Background: var(--Neutral-Color-11);
@@ -524,6 +527,7 @@ body { margin: 0; }
524
527
  }
525
528
 
526
529
  /* Theme: Default - Surfaces-Dimmest */
530
+ [data-surface="Surface-Dimmest"],
527
531
  [data-theme="Default"] [data-surface="Surface-Dimmest"],
528
532
  [data-theme="Default"][data-surface="Surface-Dimmest"] {
529
533
  --Background: var(--Neutral-Color-3);
@@ -701,6 +705,7 @@ body { margin: 0; }
701
705
  }
702
706
 
703
707
  /* Theme: Default - Surfaces-Bright */
708
+ [data-surface="Surface-Bright"],
704
709
  [data-theme="Default"] [data-surface="Surface-Bright"],
705
710
  [data-theme="Default"][data-surface="Surface-Bright"] {
706
711
  --Background: var(--Neutral-Color-12);
@@ -878,6 +883,7 @@ body { margin: 0; }
878
883
  }
879
884
 
880
885
  /* Theme: Default - Surfaces-Brightest */
886
+ [data-surface="Surface-Brightest"],
881
887
  [data-theme="Default"] [data-surface="Surface-Brightest"],
882
888
  [data-theme="Default"][data-surface="Surface-Brightest"] {
883
889
  --Background: var(--Neutral-Color-12);
@@ -66,7 +66,7 @@ variable-font axes (`--Font-Slant-Header`, `--Font-Roundness-Header`, …) and
66
66
  the full per-style ramp into both.
67
67
 
68
68
  The old wording — overwrite only base/Light/Dark — therefore gave a consumer
69
- the brand's colours but not its fonts or axes, silently. A design system with a
69
+ the brand's colors but not its fonts or axes, silently. A design system with a
70
70
  header weight of 857 rendered at 600 because the lib's bundled copy won.
71
71
 
72
72
  **The checked-in copies here are SEEDS, not the authority.** They define the
@@ -99,24 +99,35 @@
99
99
  --Buttons-Default-Quiet: var(--Buttons-Secondary-Quiet);
100
100
  --Buttons-Default-Hover: #efa5a4;
101
101
  --Buttons-Default-Pressed: #efa5a4;
102
- --Icons-Default: var(--Icon-Surfaces-Neutral-Color-9);
103
- --Icons-Default-Variant: var(--Icon-Variant-Surfaces-Neutral-Color-9);
104
- --Icons-Primary: var(--Icon-Surfaces-Primary-Color-9);
105
- --Icons-Primary-Variant: var(--Icon-Variant-Surfaces-Primary-Color-9);
106
- --Icons-Secondary: var(--Icon-Surfaces-Secondary-Color-9);
107
- --Icons-Secondary-Variant: var(--Icon-Variant-Surfaces-Secondary-Color-9);
108
- --Icons-Tertiary: var(--Icon-Surfaces-Tertiary-Color-9);
109
- --Icons-Tertiary-Variant: var(--Icon-Variant-Surfaces-Tertiary-Color-9);
110
- --Icons-Neutral: var(--Icon-Surfaces-Neutral-Color-9);
111
- --Icons-Neutral-Variant: var(--Icon-Variant-Surfaces-Neutral-Color-9);
112
- --Icons-Info: var(--Icon-Surfaces-Info-Color-9);
113
- --Icons-Info-Variant: var(--Icon-Variant-Surfaces-Info-Color-9);
114
- --Icons-Success: var(--Icon-Surfaces-Success-Color-9);
115
- --Icons-Success-Variant: var(--Icon-Variant-Surfaces-Success-Color-9);
116
- --Icons-Warning: var(--Icon-Surfaces-Warning-Color-9);
117
- --Icons-Warning-Variant: var(--Icon-Variant-Surfaces-Warning-Color-9);
118
- --Icons-Error: var(--Icon-Surfaces-Error-Color-9);
119
- --Icons-Error-Variant: var(--Icon-Variant-Surfaces-Error-Color-9);
102
+ /* The Icons ramp, with a fallback that is doing real work.
103
+ `--Icon-Surfaces-<Palette>-Color-9` and its Variant sibling are referenced
104
+ here and defined NOWHERE — not in this file and not in a generated brand
105
+ sheet. An undefined var() makes the whole declaration invalid at computed
106
+ value time, so every one of these resolved to nothing, and a Switch on
107
+ `secondary` painted the same dark track as one on `tertiary`, `info` and
108
+ `error`. Nine variants, one color, no error anywhere.
109
+ The surface-scoped name stays FIRST, because a brand that emits it should
110
+ win — that is the rule this system runs on. The palette ramp behind it is
111
+ what the themed blocks further down this file already use, so the fallback
112
+ agrees with them rather than inventing a value. */
113
+ --Icons-Default: var(--Icon-Surfaces-Neutral-Color-9, var(--Neutral-Color-6));
114
+ --Icons-Default-Variant: var(--Icon-Variant-Surfaces-Neutral-Color-9, var(--Neutral-Color-7));
115
+ --Icons-Primary: var(--Icon-Surfaces-Primary-Color-9, var(--Primary-Color-6));
116
+ --Icons-Primary-Variant: var(--Icon-Variant-Surfaces-Primary-Color-9, var(--Primary-Color-7));
117
+ --Icons-Secondary: var(--Icon-Surfaces-Secondary-Color-9, var(--Secondary-Color-6));
118
+ --Icons-Secondary-Variant: var(--Icon-Variant-Surfaces-Secondary-Color-9, var(--Secondary-Color-7));
119
+ --Icons-Tertiary: var(--Icon-Surfaces-Tertiary-Color-9, var(--Tertiary-Color-6));
120
+ --Icons-Tertiary-Variant: var(--Icon-Variant-Surfaces-Tertiary-Color-9, var(--Tertiary-Color-7));
121
+ --Icons-Neutral: var(--Icon-Surfaces-Neutral-Color-9, var(--Neutral-Color-6));
122
+ --Icons-Neutral-Variant: var(--Icon-Variant-Surfaces-Neutral-Color-9, var(--Neutral-Color-7));
123
+ --Icons-Info: var(--Icon-Surfaces-Info-Color-9, var(--Info-Color-6));
124
+ --Icons-Info-Variant: var(--Icon-Variant-Surfaces-Info-Color-9, var(--Info-Color-7));
125
+ --Icons-Success: var(--Icon-Surfaces-Success-Color-9, var(--Success-Color-6));
126
+ --Icons-Success-Variant: var(--Icon-Variant-Surfaces-Success-Color-9, var(--Success-Color-7));
127
+ --Icons-Warning: var(--Icon-Surfaces-Warning-Color-9, var(--Warning-Color-6));
128
+ --Icons-Warning-Variant: var(--Icon-Variant-Surfaces-Warning-Color-9, var(--Warning-Color-7));
129
+ --Icons-Error: var(--Icon-Surfaces-Error-Color-9, var(--Error-Color-6));
130
+ --Icons-Error-Variant: var(--Icon-Variant-Surfaces-Error-Color-9, var(--Error-Color-7));
120
131
  }
121
132
 
122
133
  :root {
@@ -175,7 +186,7 @@
175
186
 
176
187
 
177
188
  :root {
178
- /* Default Primary / Secondary / Tertiary Tone — the Color-N each brand colour sits at. */
189
+ /* Default Primary / Secondary / Tertiary Tone — the Color-N each brand color sits at. */
179
190
  --DPT: 6;
180
191
  --DST: 7;
181
192
  --DTT: 8;
@@ -250,6 +261,17 @@
250
261
  --Checkbox-Gap: 8px;
251
262
  --Sm-Checkbox-Gap: 4px;
252
263
  --Lg-Checkbox-Gap: 12px;
264
+ /* The Switch track. These are the Component-Size collection's values, and
265
+ they are here because they were nowhere: the number lived in Figma and
266
+ again as a literal in Switch.js, with nothing able to see the two drift.
267
+ They had — 28x16 and 40x24 against the file's 35x20 and 42x24, with large
268
+ matching, which is why it read as consistent. */
269
+ --Switch-Width: 42px;
270
+ --Sm-Switch-Width: 35px;
271
+ --Lg-Switch-Width: 56px;
272
+ --Switch-Height: 24px;
273
+ --Sm-Switch-Height: 20px;
274
+ --Lg-Switch-Height: 32px;
253
275
  --Divider: 1px;
254
276
  --Sm-Divider: 0.5px;
255
277
  --Lg-Divider: 2px;
@@ -295,6 +317,9 @@
295
317
  --Dropdown-Frame-Radius: 2px;
296
318
  --Menu-Item-Radius: 0px;
297
319
  --Menu-Focus-Radius: 0px;
320
+ --Sm-Menu-Swatch: 16px;
321
+ --Menu-Swatch: 24px;
322
+ --Lg-Menu-Swatch: 32px;
298
323
  --Disabled: 0.38;
299
324
  --Rail-Width: 80px;
300
325
  --Sm-Rail-Width: 72px;
@@ -426,18 +451,38 @@
426
451
  --Background: var(--Container);
427
452
  }
428
453
 
454
+ [data-theme][data-surface="Container"] {
455
+ --Background: var(--Container);
456
+ }
457
+
429
458
  [data-surface="Container-Low"] {
430
459
  --Background: var(--Container-Low);
431
460
  }
432
461
 
462
+ [data-theme][data-surface="Container-Low"] {
463
+ --Background: var(--Container-Low);
464
+ }
465
+
433
466
  [data-surface="Container-Lowest"] {
434
467
  --Background: var(--Container-Lowest);
435
468
  }
436
469
 
470
+ [data-theme][data-surface="Container-Lowest"] {
471
+ --Background: var(--Container-Lowest);
472
+ }
473
+
437
474
  [data-surface="Container-High"] {
438
475
  --Background: var(--Container-High);
439
476
  }
440
477
 
478
+ [data-theme][data-surface="Container-High"] {
479
+ --Background: var(--Container-High);
480
+ }
481
+
441
482
  [data-surface="Container-Highest"] {
442
483
  --Background: var(--Container-Highest);
443
484
  }
485
+
486
+ [data-theme][data-surface="Container-Highest"] {
487
+ --Background: var(--Container-Highest);
488
+ }