@tcn/ui 0.14.0 → 0.15.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 (87) hide show
  1. package/dist/inputs/multiselect/multiselect_inline_values.js +9 -7
  2. package/dist/inputs/multiselect/multiselect_inline_values.js.map +1 -1
  3. package/dist/inputs/multiselect/multiselect_values.js +4 -2
  4. package/dist/inputs/multiselect/multiselect_values.js.map +1 -1
  5. package/dist/layouts/index.d.ts +1 -3
  6. package/dist/layouts/index.d.ts.map +1 -1
  7. package/dist/layouts/index.js +20 -20
  8. package/dist/layouts/section/detail.d.ts +4 -0
  9. package/dist/layouts/section/detail.d.ts.map +1 -0
  10. package/dist/layouts/section/detail.js +11 -0
  11. package/dist/layouts/section/detail.js.map +1 -0
  12. package/dist/layouts/section/heading.js +1 -1
  13. package/dist/layouts/section/index.d.ts +4 -0
  14. package/dist/layouts/section/index.d.ts.map +1 -0
  15. package/dist/layouts/section/index.js +9 -0
  16. package/dist/layouts/section/index.js.map +1 -0
  17. package/dist/layouts/section/section.js +1 -1
  18. package/dist/section.css +1 -1
  19. package/dist/section.module-BXlxYmJK.js +5 -0
  20. package/dist/section.module-BXlxYmJK.js.map +1 -0
  21. package/dist/surfaces/pop_confirm/pop_confirm.js +2 -2
  22. package/dist/term.css +1 -0
  23. package/dist/themes/build_stylesheet.d.ts +2 -0
  24. package/dist/themes/build_stylesheet.d.ts.map +1 -0
  25. package/dist/themes/build_stylesheet.js +9 -0
  26. package/dist/themes/build_stylesheet.js.map +1 -0
  27. package/dist/themes/theme_variables.d.ts +7 -0
  28. package/dist/themes/theme_variables.d.ts.map +1 -1
  29. package/dist/themes/theme_variables.js +16 -9
  30. package/dist/themes/theme_variables.js.map +1 -1
  31. package/dist/themes/themes/ergo/ergo_theme.css +1 -1
  32. package/dist/themes/themes/ergo/ergo_theme.d.ts.map +1 -1
  33. package/dist/themes/themes/ergo/ergo_theme.js +254 -152
  34. package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
  35. package/dist/themes/themes/ergo/tokens/system_tokens.css +1 -0
  36. package/dist/themes/themes/ergo/tokens/theme_tokens.css +1 -0
  37. package/dist/tokens/index.d.ts +1 -0
  38. package/dist/tokens/index.d.ts.map +1 -1
  39. package/dist/tokens/index.js +4 -2
  40. package/dist/tokens/index.js.map +1 -1
  41. package/dist/tokens/key/key.d.ts +8 -1
  42. package/dist/tokens/key/key.d.ts.map +1 -1
  43. package/dist/tokens/key/key.js +20 -3
  44. package/dist/tokens/key/key.js.map +1 -1
  45. package/dist/tokens/term/term.d.ts +4 -0
  46. package/dist/tokens/term/term.d.ts.map +1 -0
  47. package/dist/tokens/term/term.js +20 -0
  48. package/dist/tokens/term/term.js.map +1 -0
  49. package/dist/tokens/value/value.d.ts +8 -1
  50. package/dist/tokens/value/value.d.ts.map +1 -1
  51. package/dist/tokens/value/value.js +23 -5
  52. package/dist/tokens/value/value.js.map +1 -1
  53. package/dist/utils/types/variations.d.ts +1 -0
  54. package/dist/utils/types/variations.d.ts.map +1 -1
  55. package/dist/value.css +1 -0
  56. package/dist/value.module-DFaCouFD.js +5 -0
  57. package/dist/value.module-DFaCouFD.js.map +1 -0
  58. package/package.json +1 -1
  59. package/src/layouts/index.ts +1 -3
  60. package/src/layouts/section/__stories__/section.stories.tsx +79 -50
  61. package/src/layouts/section/detail.tsx +14 -0
  62. package/src/layouts/section/index.ts +3 -0
  63. package/src/layouts/section/section.module.css +0 -36
  64. package/src/surfaces/panel/__stories__/panel.stories.tsx +84 -40
  65. package/src/themes/build_stylesheet.ts +5 -0
  66. package/src/themes/theme_variables.ts +9 -0
  67. package/src/themes/themes/ergo/ergo_theme.css +148 -213
  68. package/src/themes/themes/ergo/ergo_theme.ts +4 -2
  69. package/src/themes/themes/ergo/tokens/system_tokens.css +68 -0
  70. package/src/themes/themes/ergo/tokens/theme_tokens.css +99 -0
  71. package/src/tokens/index.ts +1 -0
  72. package/src/tokens/key/key.tsx +23 -2
  73. package/src/tokens/term/term.module.css +14 -0
  74. package/src/tokens/term/term.stories.tsx +84 -0
  75. package/src/tokens/term/term.tsx +20 -0
  76. package/src/tokens/value/value.module.css +5 -0
  77. package/src/tokens/value/value.tsx +24 -2
  78. package/src/utils/types/variations.ts +1 -0
  79. package/dist/layouts/row/row.d.ts +0 -4
  80. package/dist/layouts/row/row.d.ts.map +0 -1
  81. package/dist/layouts/row/row.js +0 -11
  82. package/dist/layouts/row/row.js.map +0 -1
  83. package/dist/row.css +0 -1
  84. package/dist/section.module-0wyGkhDg.js +0 -5
  85. package/dist/section.module-0wyGkhDg.js.map +0 -1
  86. package/src/layouts/row/row.module.css +0 -5
  87. package/src/layouts/row/row.tsx +0 -15
@@ -1,24 +1,33 @@
1
+ import { buildStyleSheet as n } from "../../build_stylesheet.js";
1
2
  import "@fontsource/lato";
2
- const n = `@layer tcn-theme {
3
- /* ===== CSS VARIABLES ===== */
3
+ const r = `@layer tcn-theme {
4
4
  :root {
5
- /* ========== Ergo Brand Palette ========== */
5
+ /* ========== Ergo Palette ========== */
6
+ --ergo-white: #ffffff;
7
+
6
8
  --ergo-primary: #ce6b2b;
9
+ --ergo-primary-light: #fff7f0;
10
+ --ergo-primary-dark: #b86128;
11
+
7
12
  --ergo-secondary: #669eb4;
8
13
  --ergo-secondary-light: #ecf4fb;
9
14
  --ergo-secondary-dark: #497485;
15
+
10
16
  --ergo-tertiary: #dfd7cd;
11
17
  --ergo-tertiary-light: #f9f4ed;
12
18
  --ergo-tertiary-dark: #7e6c5d;
13
- --ergo-white: #ffffff;
14
19
 
15
20
  --ergo-accent-blue: #395578;
16
21
  --ergo-accent-blue-light: #f3f4f6;
22
+ --ergo-accent-blue-dark: #627083;
23
+
17
24
  --ergo-accent-green: #97bba3;
18
25
  --ergo-accent-green-light: #eef8ef;
19
26
  --ergo-accent-green-dark: #4f785c;
27
+
20
28
  --ergo-accent-yellow: #dbc97e;
21
29
  --ergo-accent-yellow-light: #fef9e7;
30
+ --ergo-accent-yellow-dark: #82722b;
22
31
 
23
32
  --ergo-grey: #aaaaaa;
24
33
  --ergo-grey-light: #d3d3d3;
@@ -26,51 +35,89 @@ const n = `@layer tcn-theme {
26
35
 
27
36
  --ergo-status-red: #ff6565;
28
37
  --ergo-status-red-dark: #c24848;
38
+ --ergo-status-red-light: #fff4f4;
29
39
 
30
40
  --ergo-status-yellow: #ffd439;
31
41
  --ergo-status-yellow-dark: #dbb735;
42
+ --ergo-status-yellow-light: #ffeca9;
32
43
 
33
44
  --ergo-status-blue: var(--ergo-secondary);
34
45
  --ergo-status-blue-dark: var(--ergo-secondary-dark);
46
+ --ergo-status-blue-light: var(--ergo-secondary-light);
35
47
 
36
48
  --ergo-status-green: #3fbc6a;
37
49
  --ergo-status-green-dark: #2d904f;
38
-
39
- /* ========== Ergo Component Tokens ========== */
40
- --font-size-input: 12px;
41
-
42
- --ergo-ink-primary: var(--ergo-accent-blue);
43
- --ergo-ink-inverse: var(--ergo-white);
44
-
50
+ --ergo-status-green-light: #87e8a8;
51
+
52
+ --ergo-material-bg-primary: #ffffff;
53
+ --ergo-material-bg-secondary: #fafafa;
54
+ --ergo-material-bg-tertiary: #f1f1f1;
55
+ --ergo-material-bg-quaternary: #ffffff;
56
+
57
+ --ergo-material-overlay: var(--ergo-secondary-dark);
58
+ --ergo-material-border: var(--ergo-grey);
59
+ --ergo-material-divider: var(--ergo-grey);
60
+ --ergo-material-disabled-outline: var(--ergo-grey-light);
61
+ --ergo-material-disabled-fill: var(--ergo-grey);
62
+
63
+ /* ========== Ergo Text ========== */
64
+ --ergo-text-size-input: 12px;
65
+ --ergo-text-size-default: 12px;
66
+ --ergo-text-color-primary: var(--ergo-accent-blue);
67
+ --ergo-text-color-inverse: var(--ergo-white);
68
+ --ergo-text-color-disabled-outline: var(--ergo-grey);
69
+ --ergo-text-color-disabled-fill: var(--ergo-white);
70
+
71
+ /* ========== Spacing ========== */
72
+ --ergo-spacing-xs: 2px;
73
+ --ergo-spacing-sm: 4px;
74
+ --ergo-spacing-md: 8px;
75
+ --ergo-spacing-lg: 16px;
76
+ --ergo-spacing-xl: 32px;
77
+
78
+ /* ========== Sizing ========== */
79
+ --ergo-sizing-bar-xs: 16px;
80
+ --ergo-sizing-bar-sm: 24px;
81
+ --ergo-sizing-bar-md: 32px;
82
+ --ergo-sizing-bar-lg: 40px;
83
+ --ergo-sizing-bar-xl: 48px;
84
+
85
+ --ergo-sizing-action-sm: 20px;
86
+ --ergo-sizing-action-md: 24px;
87
+ --ergo-sizing-action-lg: 32px;
88
+
89
+ /* ========== Shape ========== */
90
+ --ergo-shape-radius-small: 2px;
91
+ --ergo-shape-radius-medium: 4px;
92
+ --ergo-shape-radius-large: 8px;
93
+ --ergo-shape-triangle-medium: 12px;
94
+
95
+ /* Default Material - TODO: move to system once blackcat support material */
96
+ --action: var(--ergo-primary);
97
+ --on-action: var(--ergo-white);
98
+ --material: var(--ergo-white);
99
+ --on-material: var(--ergo-accent-blue);
100
+ }
101
+ }
102
+ `, a = `@layer tcn-theme {
103
+ :root {
45
104
  /* ========== Blackcat System Tokens ========== */
46
105
  --scalar: 1;
47
106
  --accent-color: var(--ergo-primary);
48
107
 
49
108
  /* Typography */
50
- --font-color: var(--ergo-ink-primary);
109
+ --font-color: var(--ergo-text-color-primary);
51
110
  --font-family: "Lato", sans-serif;
52
- --font-size: 12px;
111
+ --font-size: var(--ergo-text-size-default);
53
112
 
54
113
  /* Spacing */
55
- --gap-xs: 2px;
56
- --gap-small: 4px;
57
- --gap-medium: 8px;
58
- --gap-large: 16px;
59
-
60
- --padding-small: 4px;
61
- --padding-medium: 8px;
62
- --padding-large: 16px;
63
-
64
- /* Sizing */
65
- --bar-xs: 16px;
66
- --bar-sm: 24px;
67
- --bar-md: 32px;
68
- --bar-lg: 40px;
69
- --bar-xl: 48px;
70
-
71
- --action-sm: 20px;
72
- --action-md: 24px;
73
- --action-lg: 32px;
114
+ --gap-small: var(--ergo-spacing-sm);
115
+ --gap-medium: var(--ergo-spacing-md);
116
+ --gap-large: var(--ergo-spacing-lg);
117
+
118
+ --padding-small: var(--ergo-spacing-sm);
119
+ --padding-medium: var(--ergo-spacing-md);
120
+ --padding-large: var(--ergo-spacing-lg);
74
121
 
75
122
  /* Status Colors */
76
123
  --status-color-disabled: var(--ergo-grey-light);
@@ -84,61 +131,49 @@ const n = `@layer tcn-theme {
84
131
  --async-color-success: var(--ergo-status-green);
85
132
  --async-color-failed: var(--ergo-status-red);
86
133
 
134
+ /* Action Severity */
87
135
  --action-severity-dangerous: var(--ergo-status-red);
88
136
  --action-severity-cautious: var(--ergo-status-yellow);
89
137
  --action-severity-neutral: var(--ergo-primary);
90
138
  --action-severity-suggested: var(--ergo-status-blue);
91
139
  --action-severity-encouraged: var(--ergo-status-green);
92
140
 
93
- /* Shape */
94
- --shape-radius-small: 2px;
95
- --shape-radius-medium: 4px;
96
- --shape-radius-large: 8px;
97
- --shape-triangle-medium: 12px;
98
-
99
141
  /* Palette */
100
- --primary-color-faint: #c0c0c0;
101
- --primary-color: #008cff;
102
- --primary-color-strong: #008cff;
103
-
104
- --secondary-color-faint: #c0c0c0;
105
- --secondary-color: #008cff;
106
- --secondary-color-strong: #008cff;
107
-
108
- --tertiary-color-faint: #c0c0c0;
109
- --tertiary-color: #008cff;
110
- --tertiary-color-strong: #008cff;
142
+ --primary-color-faint: var(--ergo-grey-light);
143
+ --primary-color: var(--ergo-primary);
144
+ --primary-color-strong: var(--ergo-primary-dark);
111
145
 
112
- --quaternary-color-faint: #c0c0c0;
113
- --quaternary-color: #008cff;
114
- --quaternary-color-strong: #008cff;
146
+ --secondary-color-faint: var(--ergo-secondary-light);
147
+ --secondary-color: var(--ergo-secondary);
148
+ --secondary-color-strong: var(--ergo-secondary-dark);
115
149
 
116
- --background-color-primary: #ffffff;
117
- --background-color-secondary: #fafafa;
118
- --background-color-tertiary: #f1f1f1;
119
- --background-color-quaternary: #ffffff;
150
+ --tertiary-color-faint: var(--ergo-tertiary-light);
151
+ --tertiary-color: var(--ergo-tertiary);
152
+ --tertiary-color-strong: var(--ergo-tertiary-dark);
120
153
 
121
- --foreground-color-primary: #aaa;
122
- --foreground-color-secondary: #222222;
123
- --foreground-color-tertiary: #222222;
124
- --foreground-color-quaternary: #222222;
154
+ --quaternary-color-faint: var(--ergo-accent-blue-light);
155
+ --quaternary-color: var(--ergo-accent-blue);
156
+ --quaternary-color-strong: var(--ergo-accent-blue-dark);
125
157
 
126
- --material-disabled: var(--ergo-grey-light);
127
- --on-material-disabled: var(--ergo-ink-inverse);
128
- --ink-disabled: var(--ergo-grey-light);
158
+ --background-color-primary: var(--ergo-material-bg-primary);
159
+ --background-color-secondary: var(--ergo-material-bg-secondary);
160
+ --background-color-tertiary: var(--ergo-material-bg-tertiary);
161
+ --background-color-quaternary: var(--ergo-material-bg-quaternary);
129
162
 
130
- --material-line: var(--ergo-grey);
131
-
132
- /* Default Material */
133
- --action: var(--ergo-primary);
134
- --on-action: var(--ergo-white);
135
- --material: var(--ergo-white);
136
- --on-material: var(--ergo-accent-blue);
163
+ /* Not sure what other text colors are needed */
164
+ --foreground-color-primary: var(--ergo-text-color-primary);
165
+ --foreground-color-secondary: var(--ergo-text-color-primary);
166
+ --foreground-color-tertiary: var(--ergo-text-color-primary);
167
+ --foreground-color-quaternary: var(--ergo-text-color-primary);
137
168
  }
169
+ }
170
+ `, e = `@layer tcn-theme {
171
+ /* ===== CSS VARIABLES ===== */
138
172
 
139
173
  .tcn-theme-root {
140
174
  font-family: var(--font-family);
141
175
  color: var(--font-color);
176
+ /* TODO: move to system */
142
177
  --action: var(--ergo-primary);
143
178
  --on-action: var(--ergo-white);
144
179
  --material: var(--ergo-white);
@@ -209,7 +244,7 @@ const n = `@layer tcn-theme {
209
244
  --btn-pad: calc(var(--btn-pad-base) + var(--btn-pad-delta) * var(--btn-step));
210
245
  --btn-size: calc(var(--btn-size-base) + var(--btn-size-delta) * var(--btn-step));
211
246
 
212
- border-radius: var(--shape-radius-medium);
247
+ border-radius: var(--ergo-shape-radius-medium);
213
248
  min-height: var(--btn-size);
214
249
  padding: var(--padding-small) var(--btn-pad);
215
250
 
@@ -445,12 +480,12 @@ const n = `@layer tcn-theme {
445
480
  border-radius: 0;
446
481
  }
447
482
  .tcn-button-group-button:first-child {
448
- border-start-start-radius: var(--shape-radius-medium);
449
- border-end-start-radius: var(--shape-radius-medium);
483
+ border-start-start-radius: var(--ergo-shape-radius-medium);
484
+ border-end-start-radius: var(--ergo-shape-radius-medium);
450
485
  }
451
486
  .tcn-button-group-button:last-child {
452
- border-start-end-radius: var(--shape-radius-medium);
453
- border-end-end-radius: var(--shape-radius-medium);
487
+ border-start-end-radius: var(--ergo-shape-radius-medium);
488
+ border-end-end-radius: var(--ergo-shape-radius-medium);
454
489
  }
455
490
  .tcn-button-group-button[data-hierarchy="tertiary"] {
456
491
  border: 0;
@@ -490,26 +525,26 @@ const n = `@layer tcn-theme {
490
525
  }
491
526
 
492
527
  .tcn-select-group-option[data-hierarchy="secondary"][data-is-disabled="true"] {
493
- color: var(--material-disabled);
494
- border: 1px solid var(--material-disabled);
528
+ color: var(--ergo-material-disabled-outline);
529
+ border: 1px solid var(--ergo-material-disabled-outline);
495
530
  }
496
531
 
497
532
  .tcn-select-group-option[data-hierarchy="primary"][data-is-disabled="true"] {
498
- background: var(--material-disabled);
533
+ background: var(--ergo-material-disabled-outline);
499
534
  color: white;
500
- border: 1px solid var(--material-disabled);
535
+ border: 1px solid var(--ergo-material-disabled-outline);
501
536
  }
502
537
 
503
538
  .tcn-select-group-option {
504
539
  border-radius: 0;
505
540
  }
506
541
  .tcn-select-group-option:first-child {
507
- border-top-left-radius: var(--shape-radius-medium);
508
- border-bottom-left-radius: var(--shape-radius-medium);
542
+ border-top-left-radius: var(--ergo-shape-radius-medium);
543
+ border-bottom-left-radius: var(--ergo-shape-radius-medium);
509
544
  }
510
545
  .tcn-select-group-option:last-child {
511
- border-top-right-radius: var(--shape-radius-medium);
512
- border-bottom-right-radius: var(--shape-radius-medium);
546
+ border-top-right-radius: var(--ergo-shape-radius-medium);
547
+ border-bottom-right-radius: var(--ergo-shape-radius-medium);
513
548
  }
514
549
  }
515
550
 
@@ -590,7 +625,7 @@ const n = `@layer tcn-theme {
590
625
  left: 0;
591
626
  width: 100%;
592
627
  height: 1px;
593
- background: var(--material-line);
628
+ background: var(--ergo-material-divider);
594
629
  pointer-events: none;
595
630
  z-index: 1;
596
631
  }
@@ -602,16 +637,15 @@ const n = `@layer tcn-theme {
602
637
  min-width: min-content;
603
638
  width: auto;
604
639
  flex-grow: 0;
605
- border-radius: var(--shape-radius-medium);
640
+ border-radius: 6px;
606
641
  border: 1px solid var(--on-material);
607
- padding-block: 1px;
608
- padding-inline: 2px;
642
+ padding: 2px;
609
643
 
610
644
  .tcn-tabs-list {
611
645
  height: 20px;
612
- gap: var(--gap-xs);
646
+ gap: var(--ergo-spacing-xs);
613
647
  .tcn-tab-item {
614
- border-radius: var(--shape-radius-medium);
648
+ border-radius: var(--ergo-shape-radius-medium);
615
649
  min-height: 20px;
616
650
  }
617
651
  }
@@ -699,19 +733,19 @@ const n = `@layer tcn-theme {
699
733
  }
700
734
 
701
735
  &[data-anchor-direction="bottom"] {
702
- padding-bottom: var(--shape-triangle-medium);
736
+ padding-bottom: var(--ergo-shape-triangle-medium);
703
737
  }
704
738
 
705
739
  &[data-anchor-direction="top"] {
706
- padding-top: var(--shape-triangle-medium);
740
+ padding-top: var(--ergo-shape-triangle-medium);
707
741
  }
708
742
 
709
743
  &[data-anchor-direction="start"] {
710
- padding-left: var(--shape-triangle-medium);
744
+ padding-left: var(--ergo-shape-triangle-medium);
711
745
  }
712
746
 
713
747
  &[data-anchor-direction="end"] {
714
- padding-right: var(--shape-triangle-medium);
748
+ padding-right: var(--ergo-shape-triangle-medium);
715
749
  }
716
750
  }
717
751
 
@@ -726,7 +760,7 @@ const n = `@layer tcn-theme {
726
760
  box-shadow: 0px 4px 7px 0px rgba(65, 65, 65, 0.66);
727
761
  color: var(--on-material);
728
762
  background: var(--material);
729
- border-radius: var(--shape-radius-medium);
763
+ border-radius: var(--ergo-shape-radius-medium);
730
764
  padding: var(--padding-medium);
731
765
  }
732
766
  }
@@ -736,12 +770,12 @@ const n = `@layer tcn-theme {
736
770
  .tcn-item {
737
771
  height: 24px;
738
772
  padding: 0px var(--padding-medium);
739
- border-radius: var(--shape-radius-medium);
773
+ border-radius: var(--ergo-shape-radius-medium);
740
774
  }
741
775
  }
742
776
  /* Rail: */
743
777
  .tcn-utility-strip {
744
- min-width: var(--bar-md);
778
+ min-width: var(--ergo-sizing-bar-md);
745
779
  }
746
780
 
747
781
  .tcn-utility-strip,
@@ -759,12 +793,12 @@ const n = `@layer tcn-theme {
759
793
  }
760
794
 
761
795
  .tcn-utility-bar {
762
- min-height: var(--bar-md);
796
+ min-height: var(--ergo-sizing-bar-md);
763
797
  }
764
798
 
765
799
  .tcn-footer,
766
800
  .tcn-header {
767
- min-height: var(--bar-lg);
801
+ min-height: var(--ergo-sizing-bar-lg);
768
802
  }
769
803
 
770
804
  .tcn-scaffold {
@@ -778,14 +812,14 @@ const n = `@layer tcn-theme {
778
812
  :where(.tcn-utility-bar) + :where(.tcn-scaffold),
779
813
  :where(.tcn-utility-bar) + :where(.tcn-rail) {
780
814
  border-top: calc(var(--scaffold-divide-header) * 1px) solid
781
- var(--foreground-color-primary);
815
+ var(--ergo-material-border);
782
816
  }
783
817
 
784
818
  /* Border appears on footer when it follows scaffold/rail */
785
819
  :where(.tcn-scaffold) + :where(.tcn-footer),
786
820
  :where(.tcn-rail) + :where(.tcn-footer) {
787
821
  border-top: calc(var(--scaffold-divide-footer) * 1px) solid
788
- var(--foreground-color-primary);
822
+ var(--ergo-material-border);
789
823
  }
790
824
  }
791
825
 
@@ -812,13 +846,13 @@ const n = `@layer tcn-theme {
812
846
  .tcn-modal {
813
847
  --divide-header: 0;
814
848
  box-shadow: 0px 4px 34px 0px #00000096;
815
- border-radius: var(--shape-radius-medium);
849
+ border-radius: var(--ergo-shape-radius-medium);
816
850
  background-color: var(--background-color-primary);
817
851
  overflow: hidden;
818
- border: 1px solid var(--foreground-color-primary);
852
+ border: 1px solid var(--ergo-material-border);
819
853
 
820
854
  :where(.tcn-header) {
821
- --material: var(--ergo-secondary-dark);
855
+ --material: var(--ergo-material-overlay);
822
856
  --on-material: var(--ergo-white);
823
857
  --action: var(--ergo-tertiary);
824
858
  --on-action: var(--ergo-secondary-dark);
@@ -839,7 +873,7 @@ const n = `@layer tcn-theme {
839
873
  overflow: hidden;
840
874
 
841
875
  :where(.tcn-header) {
842
- --material: var(--ergo-secondary-dark);
876
+ --material: var(--ergo-material-overlay);
843
877
  --on-material: var(--ergo-white);
844
878
  --action: var(--ergo-tertiary);
845
879
  --on-action: var(--ergo-secondary-dark);
@@ -856,13 +890,13 @@ const n = `@layer tcn-theme {
856
890
  .tcn-window {
857
891
  box-shadow: 0px 4px 34px 0px #00000096;
858
892
  --divide-header: 0;
859
- border-radius: var(--shape-radius-medium);
893
+ border-radius: var(--ergo-shape-radius-medium);
860
894
  background-color: var(--background-color-primary);
861
895
  overflow: hidden;
862
896
  border: 2px solid white;
863
897
 
864
898
  :where(.tcn-header) {
865
- --material: var(--ergo-secondary-dark);
899
+ --material: var(--ergo-material-overlay);
866
900
  --on-material: var(--ergo-white);
867
901
  --action: var(--ergo-tertiary);
868
902
  --on-action: var(--ergo-secondary-dark);
@@ -881,7 +915,7 @@ const n = `@layer tcn-theme {
881
915
  --pad-inline: var(--padding-medium);
882
916
 
883
917
  .tcn-pop-confirm-scaffold > .tcn-scaffold-stack {
884
- border-radius: var(--shape-radius-medium);
918
+ border-radius: var(--ergo-shape-radius-medium);
885
919
  box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.4);
886
920
  background-color: var(--background-color-primary);
887
921
  }
@@ -893,14 +927,14 @@ const n = `@layer tcn-theme {
893
927
  /* Set the indicator to match the header color */
894
928
  &[data-v-origin="top"] {
895
929
  :where(.tcn-tethered-origin-indicator) {
896
- --material: var(--ergo-secondary-dark);
930
+ --material: var(--ergo-material-overlay);
897
931
  }
898
932
  }
899
933
 
900
934
  :where(.tcn-header) {
901
- min-height: var(--bar-md);
935
+ min-height: var(--ergo-sizing-bar-md);
902
936
 
903
- --material: var(--ergo-secondary-dark);
937
+ --material: var(--ergo-material-overlay);
904
938
  --on-material: var(--ergo-white);
905
939
  --action: var(--ergo-tertiary);
906
940
  --on-action: var(--ergo-secondary-dark);
@@ -928,7 +962,7 @@ const n = `@layer tcn-theme {
928
962
  min-width: 2px;
929
963
  height: 18px;
930
964
  background: var(--ergo-grey);
931
- border-radius: var(--shape-radius-small);
965
+ border-radius: var(--ergo-shape-radius-small);
932
966
  align-self: center;
933
967
  }
934
968
  }
@@ -939,7 +973,7 @@ const n = `@layer tcn-theme {
939
973
  --divide-footer: 1;
940
974
  --material: var(--background-color-primary);
941
975
  background-color: var(--material);
942
- border-radius: var(--shape-radius-medium);
976
+ border-radius: var(--ergo-shape-radius-medium);
943
977
  overflow: hidden;
944
978
 
945
979
  :where(.tcn-title) {
@@ -957,11 +991,11 @@ const n = `@layer tcn-theme {
957
991
  overflow: hidden;
958
992
 
959
993
  :where(.tcn-header) {
960
- min-height: var(--bar-md);
994
+ min-height: var(--ergo-sizing-bar-md);
961
995
  }
962
996
 
963
997
  :where(.tcn-footer) {
964
- min-height: var(--bar-md);
998
+ min-height: var(--ergo-sizing-bar-md);
965
999
  }
966
1000
 
967
1001
  :where(.tcn-title) {
@@ -976,12 +1010,12 @@ const n = `@layer tcn-theme {
976
1010
  --pad-inline: var(--padding-medium);
977
1011
 
978
1012
  background-color: var(--background-color-primary);
979
- border-radius: var(--shape-radius-medium);
980
- border: 1px solid var(--foreground-color-primary);
1013
+ border-radius: var(--ergo-shape-radius-medium);
1014
+ border: 1px solid var(--ergo-material-border);
981
1015
  overflow: hidden;
982
1016
 
983
1017
  :where(.tcn-header) {
984
- min-height: var(--bar-md);
1018
+ min-height: var(--ergo-sizing-bar-md);
985
1019
 
986
1020
  --material: var(--ergo-secondary-light);
987
1021
  --on-material: var(--ergo-accent-blue);
@@ -996,7 +1030,7 @@ const n = `@layer tcn-theme {
996
1030
  }
997
1031
 
998
1032
  :where(.tcn-utility-bar) {
999
- min-height: var(--bar-sm);
1033
+ min-height: var(--ergo-sizing-bar-sm);
1000
1034
  }
1001
1035
 
1002
1036
  :where(.tcn-scaffold-stack) > :where(.tcn-scaffold) > :where(.tcn-scaffold-stack),
@@ -1017,19 +1051,24 @@ const n = `@layer tcn-theme {
1017
1051
  var(--section-tab-start) +
1018
1052
  (var(--section-tab-width) * var(--section-tab-depth))
1019
1053
  );
1054
+ --section-heading-height: var(--ergo-sizing-bar-md);
1020
1055
  --section-action: var(--ergo-secondary);
1021
1056
  --section-mat: var(--ergo-secondary-light);
1022
- --section-on-mat: var(--ergo-ink-primary);
1057
+ --section-on-mat: var(--ergo-text-color-primary);
1023
1058
  }
1024
1059
 
1025
1060
  .tcn-heading {
1026
- background-color: #f1f1f1;
1061
+ position: sticky;
1062
+ background-color: var(--material);
1027
1063
  padding-inline-start: var(--pad-inline, var(--padding-medium));
1028
- height: 30px;
1064
+ padding-inline-end: var(--pad-inline, var(--padding-medium));
1065
+ height: var(--section-heading-height);
1029
1066
  z-index: 5;
1067
+ user-select: none;
1030
1068
  }
1031
1069
 
1032
1070
  .tcn-section > .tcn-heading {
1071
+ top: calc(var(--section-heading-height) * var(--section-tab-depth));
1033
1072
  z-index: calc(var(--max-section-depth) - var(--section-tab-depth));
1034
1073
  padding-inline-start: var(--section-tab);
1035
1074
  --material: var(--section-mat);
@@ -1040,14 +1079,18 @@ const n = `@layer tcn-theme {
1040
1079
  gap: var(--gap-small);
1041
1080
  }
1042
1081
 
1043
- /* TODO: Consider an opt-in model (E) where Section exposes --section-tab but does not
1044
- apply padding-inline-start automatically. A dedicated component (e.g. SectionContent)
1045
- would opt in via the variable, and surfaces like Card would be unaffected by default.
1046
- This would decouple Section from needing to know about every surface type and give
1047
- clearer boundaries between "content that lives inside a section" vs "a surface placed
1048
- at section level". High blast-radius refactor — table for a future pass. */
1049
- .tcn-section > :not(.tcn-heading, .tcn-section) {
1082
+ .tcn-detail {
1083
+ padding-block: var(--padding-medium);
1084
+ gap: var(--padding-medium);
1085
+ }
1086
+
1087
+ .tcn-section > .tcn-detail {
1050
1088
  padding-inline-start: var(--section-tab);
1089
+ padding-inline-end: var(--pad-inline, var(--padding-medium));
1090
+ }
1091
+
1092
+ .tcn-scaffold-stack > .tcn-detail {
1093
+ padding-inline: var(--pad-inline, var(--padding-medium));
1051
1094
  }
1052
1095
 
1053
1096
  .tcn-section > .tcn-section {
@@ -1069,7 +1112,7 @@ const n = `@layer tcn-theme {
1069
1112
  }
1070
1113
 
1071
1114
  .tcn-caret {
1072
- --caret-size: var(--shape-triangle-medium);
1115
+ --caret-size: var(--ergo-shape-triangle-medium);
1073
1116
  --caret-triangle-height: calc(var(--caret-size) / 2);
1074
1117
  --caret-triangle-width: var(--caret-size);
1075
1118
  --caret-triangle-base: var(--caret-triangle-height) solid transparent;
@@ -1112,7 +1155,7 @@ const n = `@layer tcn-theme {
1112
1155
  --table-pad-inline: var(--pad-inline, var(--padding-medium));
1113
1156
 
1114
1157
  --material: var(--ergo-white);
1115
- --on-material: var(--ergo-ink-primary);
1158
+ --on-material: var(--ergo-text-color-primary);
1116
1159
  --action: var(--ergo-accent-blue);
1117
1160
  --on-action: var(--ergo-white);
1118
1161
  background-color: var(--material);
@@ -1153,7 +1196,7 @@ const n = `@layer tcn-theme {
1153
1196
  .tcn-thead {
1154
1197
  /* Border for header row */
1155
1198
  .tcn-tr {
1156
- height: var(--bar-md);
1199
+ height: var(--ergo-sizing-bar-md);
1157
1200
  .tcn-th {
1158
1201
  border-bottom: 1px solid var(--ergo-grey-light);
1159
1202
  }
@@ -1170,7 +1213,7 @@ const n = `@layer tcn-theme {
1170
1213
  font-weight: bold;
1171
1214
  /* Border for footer row */
1172
1215
  .tcn-tr {
1173
- height: var(--bar-sm);
1216
+ height: var(--ergo-sizing-bar-sm);
1174
1217
  .tcn-th,
1175
1218
  .tcn-td {
1176
1219
  border-top: 1px solid var(--ergo-grey-light);
@@ -1196,7 +1239,7 @@ const n = `@layer tcn-theme {
1196
1239
  }
1197
1240
 
1198
1241
  .tcn-tr {
1199
- height: var(--bar-sm);
1242
+ height: var(--ergo-sizing-bar-sm);
1200
1243
  align-content: center;
1201
1244
  }
1202
1245
 
@@ -1255,17 +1298,17 @@ const n = `@layer tcn-theme {
1255
1298
  --mat: var(--material);
1256
1299
  --act-raised: color-mix(in srgb, var(--mat), var(--act) 12%);
1257
1300
 
1258
- font-size: var(--font-size-input);
1301
+ font-size: var(--ergo-text-size-input);
1259
1302
  border: 1px solid var(--ergo-grey);
1260
1303
  box-sizing: border-box;
1261
- min-height: var(--action-md);
1262
- border-radius: var(--shape-radius-medium);
1304
+ min-height: var(--ergo-sizing-action-md);
1305
+ border-radius: var(--ergo-shape-radius-medium);
1263
1306
  padding-inline: 4px;
1264
1307
  }
1265
1308
 
1266
1309
  .tcn-radio-label,
1267
1310
  .tcn-select-selected-label {
1268
- font-size: var(--font-size-input);
1311
+ font-size: var(--ergo-text-size-input);
1269
1312
  }
1270
1313
 
1271
1314
  .tcn-control[data-is-disabled="false"]:hover {
@@ -1287,12 +1330,12 @@ const n = `@layer tcn-theme {
1287
1330
 
1288
1331
  .tcn-control[data-is-disabled="true"] {
1289
1332
  cursor: not-allowed;
1290
- background: var(--material-disabled);
1291
- color: var(--on-material-disabled);
1333
+ background: var(--ergo-material-disabled-outline);
1334
+ color: var(--ergo-text-color-disabled-outline);
1292
1335
  }
1293
1336
 
1294
1337
  .tcn-control[data-is-disabled="true"]::placeholder {
1295
- color: var(--on-material-disabled);
1338
+ color: var(--ergo-text-color-disabled-outline);
1296
1339
  }
1297
1340
 
1298
1341
  .tcn-control {
@@ -1342,7 +1385,7 @@ const n = `@layer tcn-theme {
1342
1385
  }
1343
1386
 
1344
1387
  .tcn-control-set {
1345
- border-radius: var(--shape-radius-medium);
1388
+ border-radius: var(--ergo-shape-radius-medium);
1346
1389
 
1347
1390
  &:focus-within {
1348
1391
  outline: 2px solid var(--ergo-primary);
@@ -1353,7 +1396,7 @@ const n = `@layer tcn-theme {
1353
1396
  z-index: 1;
1354
1397
  border-radius: 0;
1355
1398
  height: auto;
1356
- min-height: var(--action-md);
1399
+ min-height: var(--ergo-sizing-action-md);
1357
1400
  padding-block: 0;
1358
1401
  &:focus,
1359
1402
  &:focus-visible {
@@ -1363,8 +1406,8 @@ const n = `@layer tcn-theme {
1363
1406
  }
1364
1407
 
1365
1408
  .tcn-control-set-item:first-child {
1366
- border-top-left-radius: var(--shape-radius-medium);
1367
- border-bottom-left-radius: var(--shape-radius-medium);
1409
+ border-top-left-radius: var(--ergo-shape-radius-medium);
1410
+ border-bottom-left-radius: var(--ergo-shape-radius-medium);
1368
1411
  }
1369
1412
 
1370
1413
  .tcn-control-set-item:not(:last-child) {
@@ -1372,8 +1415,8 @@ const n = `@layer tcn-theme {
1372
1415
  }
1373
1416
 
1374
1417
  .tcn-control-set-item:last-child {
1375
- border-top-right-radius: var(--shape-radius-medium);
1376
- border-bottom-right-radius: var(--shape-radius-medium);
1418
+ border-top-right-radius: var(--ergo-shape-radius-medium);
1419
+ border-bottom-right-radius: var(--ergo-shape-radius-medium);
1377
1420
  }
1378
1421
 
1379
1422
  .tcn-select,
@@ -1381,8 +1424,8 @@ const n = `@layer tcn-theme {
1381
1424
  .tcn-button[data-hierarchy] {
1382
1425
  border: 1px solid var(--ergo-grey);
1383
1426
  height: auto;
1384
- min-height: var(--action-md);
1385
- min-width: var(--action-md);
1427
+ min-height: var(--ergo-sizing-action-md);
1428
+ min-width: var(--ergo-sizing-action-md);
1386
1429
  box-sizing: border-box;
1387
1430
  &:hover,
1388
1431
  &[data-hover] {
@@ -1426,7 +1469,7 @@ const n = `@layer tcn-theme {
1426
1469
 
1427
1470
  &[data-is-disabled="true"] {
1428
1471
  cursor: not-allowed;
1429
- border-color: var(--material-disabled);
1472
+ border-color: var(--ergo-material-disabled-outline);
1430
1473
  }
1431
1474
 
1432
1475
  &[data-checked="true"] {
@@ -1471,10 +1514,69 @@ const n = `@layer tcn-theme {
1471
1514
  .tcn-suggestion-list {
1472
1515
  --accent-color: var(--ergo-primary);
1473
1516
  }
1517
+
1518
+ /* Datum/Tokens */
1519
+ .tcn-chip {
1520
+ --action: var(--ergo-primary);
1521
+ --accent-color: var(--ergo-primary);
1522
+ }
1523
+
1524
+ .tcn-datum[data-emphasis="normal"] {
1525
+ --datum-font-color: var(--on-material);
1526
+ }
1527
+
1528
+ .tcn-datum[data-emphasis="strong"] {
1529
+ --datum-font-weight: 700;
1530
+ }
1531
+
1532
+ .tcn-datum[data-emphasis="faint"] {
1533
+ --datum-font-color: color-mix(in srgb, var(--on-material), transparent 12%);
1534
+ }
1535
+
1536
+ .tcn-datum[data-severity="dangerous"] {
1537
+ --datum-font-color: var(--ergo-status-red);
1538
+ }
1539
+
1540
+ .tcn-datum[data-severity="cautious"] {
1541
+ --datum-font-color: var(--ergo-status-yellow);
1542
+ }
1543
+
1544
+ .tcn-datum[data-severity="suggested"] {
1545
+ --datum-font-color: var(--ergo-status-blue);
1546
+ }
1547
+
1548
+ .tcn-datum[data-severity="encouraged"] {
1549
+ --datum-font-color: var(--ergo-status-green);
1550
+ }
1551
+
1552
+ .tcn-key {
1553
+ --accent-color: var(--action);
1554
+ font-size: 14px;
1555
+ color: var(--datum-font-color);
1556
+ font-weight: var(--datum-font-weight, 400);
1557
+ }
1558
+
1559
+ .tcn-value {
1560
+ font-size: 12px;
1561
+
1562
+ color: var(--datum-font-color);
1563
+ font-weight: var(--datum-font-weight, 400);
1564
+ }
1565
+
1566
+ .tcn-term > .tcn-key,
1567
+ .tcn-term > .tcn-value {
1568
+ max-width: 50%;
1569
+ }
1570
+
1571
+ .tcn-value {
1572
+ :where(.tcn-chip) {
1573
+ --action: var(--ergo-accent-blue);
1574
+ --accent-color: var(--ergo-accent-blue);
1575
+ }
1576
+ }
1474
1577
  }
1475
- `, r = new CSSStyleSheet();
1476
- r.replaceSync(n);
1578
+ `, i = n([r, a, e]);
1477
1579
  export {
1478
- r as ergoStyleSheet
1580
+ i as ergoStyleSheet
1479
1581
  };
1480
1582
  //# sourceMappingURL=ergo_theme.js.map