@tcn/ui 0.14.0 → 0.16.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 (116) hide show
  1. package/dist/column.css +1 -1
  2. package/dist/inputs/multiselect/multiselect_inline_values.js +9 -7
  3. package/dist/inputs/multiselect/multiselect_inline_values.js.map +1 -1
  4. package/dist/inputs/multiselect/multiselect_values.js +4 -2
  5. package/dist/inputs/multiselect/multiselect_values.js.map +1 -1
  6. package/dist/layouts/containers/columns/column.d.ts +6 -0
  7. package/dist/layouts/containers/columns/column.d.ts.map +1 -0
  8. package/dist/layouts/containers/columns/column.js +20 -0
  9. package/dist/layouts/containers/columns/column.js.map +1 -0
  10. package/dist/layouts/containers/columns/columns.d.ts +6 -0
  11. package/dist/layouts/containers/columns/columns.d.ts.map +1 -0
  12. package/dist/layouts/containers/columns/columns.js +11 -0
  13. package/dist/layouts/containers/columns/columns.js.map +1 -0
  14. package/dist/layouts/index.d.ts +3 -5
  15. package/dist/layouts/index.d.ts.map +1 -1
  16. package/dist/layouts/index.js +27 -27
  17. package/dist/layouts/section/detail.d.ts +4 -0
  18. package/dist/layouts/section/detail.d.ts.map +1 -0
  19. package/dist/layouts/section/detail.js +11 -0
  20. package/dist/layouts/section/detail.js.map +1 -0
  21. package/dist/layouts/section/heading.js +1 -1
  22. package/dist/layouts/section/index.d.ts +4 -0
  23. package/dist/layouts/section/index.d.ts.map +1 -0
  24. package/dist/layouts/section/index.js +9 -0
  25. package/dist/layouts/section/index.js.map +1 -0
  26. package/dist/layouts/section/section.js +1 -1
  27. package/dist/section.css +1 -1
  28. package/dist/section.module-BXlxYmJK.js +5 -0
  29. package/dist/section.module-BXlxYmJK.js.map +1 -0
  30. package/dist/surfaces/pop_confirm/pop_confirm.js +4 -4
  31. package/dist/term.css +1 -0
  32. package/dist/themes/build_stylesheet.d.ts +2 -0
  33. package/dist/themes/build_stylesheet.d.ts.map +1 -0
  34. package/dist/themes/build_stylesheet.js +9 -0
  35. package/dist/themes/build_stylesheet.js.map +1 -0
  36. package/dist/themes/theme_variables.d.ts +7 -0
  37. package/dist/themes/theme_variables.d.ts.map +1 -1
  38. package/dist/themes/theme_variables.js +16 -9
  39. package/dist/themes/theme_variables.js.map +1 -1
  40. package/dist/themes/themes/ergo/ergo_theme.css +1 -1
  41. package/dist/themes/themes/ergo/ergo_theme.d.ts.map +1 -1
  42. package/dist/themes/themes/ergo/ergo_theme.js +281 -161
  43. package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
  44. package/dist/themes/themes/ergo/tokens/system_tokens.css +1 -0
  45. package/dist/themes/themes/ergo/tokens/theme_tokens.css +1 -0
  46. package/dist/tokens/index.d.ts +1 -0
  47. package/dist/tokens/index.d.ts.map +1 -1
  48. package/dist/tokens/index.js +4 -2
  49. package/dist/tokens/index.js.map +1 -1
  50. package/dist/tokens/key/key.d.ts +8 -1
  51. package/dist/tokens/key/key.d.ts.map +1 -1
  52. package/dist/tokens/key/key.js +20 -3
  53. package/dist/tokens/key/key.js.map +1 -1
  54. package/dist/tokens/term/term.d.ts +4 -0
  55. package/dist/tokens/term/term.d.ts.map +1 -0
  56. package/dist/tokens/term/term.js +20 -0
  57. package/dist/tokens/term/term.js.map +1 -0
  58. package/dist/tokens/value/value.d.ts +8 -1
  59. package/dist/tokens/value/value.d.ts.map +1 -1
  60. package/dist/tokens/value/value.js +23 -5
  61. package/dist/tokens/value/value.js.map +1 -1
  62. package/dist/utils/types/variations.d.ts +1 -0
  63. package/dist/utils/types/variations.d.ts.map +1 -1
  64. package/dist/value.css +1 -0
  65. package/dist/value.module-DFaCouFD.js +5 -0
  66. package/dist/value.module-DFaCouFD.js.map +1 -0
  67. package/package.json +1 -1
  68. package/src/layouts/__stories__/columns.stories.tsx +46 -0
  69. package/src/layouts/__stories__/rail.stories.tsx +4 -4
  70. package/src/layouts/__stories__/utils.tsx +4 -4
  71. package/src/layouts/containers/columns/column.module.css +14 -0
  72. package/src/layouts/containers/columns/column.tsx +22 -0
  73. package/src/layouts/containers/columns/columns.tsx +16 -0
  74. package/src/layouts/index.ts +3 -5
  75. package/src/layouts/section/__stories__/section.stories.tsx +79 -50
  76. package/src/layouts/section/detail.tsx +14 -0
  77. package/src/layouts/section/index.ts +3 -0
  78. package/src/layouts/section/section.module.css +0 -36
  79. package/src/surfaces/page/page.stories.tsx +32 -28
  80. package/src/surfaces/panel/__stories__/panel.stories.tsx +147 -40
  81. package/src/themes/build_stylesheet.ts +5 -0
  82. package/src/themes/theme_variables.ts +9 -0
  83. package/src/themes/themes/ergo/ergo_theme.css +175 -222
  84. package/src/themes/themes/ergo/ergo_theme.ts +4 -2
  85. package/src/themes/themes/ergo/tokens/system_tokens.css +68 -0
  86. package/src/themes/themes/ergo/tokens/theme_tokens.css +99 -0
  87. package/src/tokens/index.ts +1 -0
  88. package/src/tokens/key/key.tsx +23 -2
  89. package/src/tokens/term/term.module.css +14 -0
  90. package/src/tokens/term/term.stories.tsx +84 -0
  91. package/src/tokens/term/term.tsx +20 -0
  92. package/src/tokens/value/value.module.css +5 -0
  93. package/src/tokens/value/value.tsx +24 -2
  94. package/src/utils/types/variations.ts +1 -0
  95. package/dist/layouts/column/column.d.ts +0 -10
  96. package/dist/layouts/column/column.d.ts.map +0 -1
  97. package/dist/layouts/column/column.js +0 -52
  98. package/dist/layouts/column/column.js.map +0 -1
  99. package/dist/layouts/containers/side/side.d.ts +0 -6
  100. package/dist/layouts/containers/side/side.d.ts.map +0 -1
  101. package/dist/layouts/containers/side/side.js +0 -22
  102. package/dist/layouts/containers/side/side.js.map +0 -1
  103. package/dist/layouts/row/row.d.ts +0 -4
  104. package/dist/layouts/row/row.d.ts.map +0 -1
  105. package/dist/layouts/row/row.js +0 -11
  106. package/dist/layouts/row/row.js.map +0 -1
  107. package/dist/row.css +0 -1
  108. package/dist/section.module-0wyGkhDg.js +0 -5
  109. package/dist/section.module-0wyGkhDg.js.map +0 -1
  110. package/dist/side.css +0 -1
  111. package/src/layouts/column/column.module.css +0 -35
  112. package/src/layouts/column/column.tsx +0 -57
  113. package/src/layouts/containers/side/side.module.css +0 -7
  114. package/src/layouts/containers/side/side.tsx +0 -25
  115. package/src/layouts/row/row.module.css +0 -5
  116. 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,16 +770,15 @@ 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
- .tcn-utility-strip,
748
- .tcn-side {
781
+ .tcn-utility-strip {
749
782
  padding-block: var(--padding-medium);
750
783
  gap: var(--gap-medium);
751
784
  }
@@ -759,12 +792,12 @@ const n = `@layer tcn-theme {
759
792
  }
760
793
 
761
794
  .tcn-utility-bar {
762
- min-height: var(--bar-md);
795
+ min-height: var(--ergo-sizing-bar-md);
763
796
  }
764
797
 
765
798
  .tcn-footer,
766
799
  .tcn-header {
767
- min-height: var(--bar-lg);
800
+ min-height: var(--ergo-sizing-bar-lg);
768
801
  }
769
802
 
770
803
  .tcn-scaffold {
@@ -778,14 +811,14 @@ const n = `@layer tcn-theme {
778
811
  :where(.tcn-utility-bar) + :where(.tcn-scaffold),
779
812
  :where(.tcn-utility-bar) + :where(.tcn-rail) {
780
813
  border-top: calc(var(--scaffold-divide-header) * 1px) solid
781
- var(--foreground-color-primary);
814
+ var(--ergo-material-border);
782
815
  }
783
816
 
784
817
  /* Border appears on footer when it follows scaffold/rail */
785
818
  :where(.tcn-scaffold) + :where(.tcn-footer),
786
819
  :where(.tcn-rail) + :where(.tcn-footer) {
787
820
  border-top: calc(var(--scaffold-divide-footer) * 1px) solid
788
- var(--foreground-color-primary);
821
+ var(--ergo-material-border);
789
822
  }
790
823
  }
791
824
 
@@ -799,26 +832,19 @@ const n = `@layer tcn-theme {
799
832
  --divide-footer: 0;
800
833
  --material: var(--background-color-tertiary);
801
834
  background-color: var(--material);
802
- padding: var(--padding-medium);
803
- }
804
-
805
- /* TODO: remove - shim to replicate Column at Page level */
806
- .tcn-page > .tcn-scaffold-stack > .tcn-scaffold > .tcn-scaffold-stack,
807
- .tcn-page > .tcn-scaffold-stack > .tcn-rail > .tcn-rail-stack {
808
- gap: var(--gap-medium);
809
835
  }
810
836
 
811
837
  /* MODAL: */
812
838
  .tcn-modal {
813
839
  --divide-header: 0;
814
840
  box-shadow: 0px 4px 34px 0px #00000096;
815
- border-radius: var(--shape-radius-medium);
841
+ border-radius: var(--ergo-shape-radius-medium);
816
842
  background-color: var(--background-color-primary);
817
843
  overflow: hidden;
818
- border: 1px solid var(--foreground-color-primary);
844
+ border: 1px solid var(--ergo-material-border);
819
845
 
820
846
  :where(.tcn-header) {
821
- --material: var(--ergo-secondary-dark);
847
+ --material: var(--ergo-material-overlay);
822
848
  --on-material: var(--ergo-white);
823
849
  --action: var(--ergo-tertiary);
824
850
  --on-action: var(--ergo-secondary-dark);
@@ -839,7 +865,7 @@ const n = `@layer tcn-theme {
839
865
  overflow: hidden;
840
866
 
841
867
  :where(.tcn-header) {
842
- --material: var(--ergo-secondary-dark);
868
+ --material: var(--ergo-material-overlay);
843
869
  --on-material: var(--ergo-white);
844
870
  --action: var(--ergo-tertiary);
845
871
  --on-action: var(--ergo-secondary-dark);
@@ -856,13 +882,13 @@ const n = `@layer tcn-theme {
856
882
  .tcn-window {
857
883
  box-shadow: 0px 4px 34px 0px #00000096;
858
884
  --divide-header: 0;
859
- border-radius: var(--shape-radius-medium);
885
+ border-radius: var(--ergo-shape-radius-medium);
860
886
  background-color: var(--background-color-primary);
861
887
  overflow: hidden;
862
888
  border: 2px solid white;
863
889
 
864
890
  :where(.tcn-header) {
865
- --material: var(--ergo-secondary-dark);
891
+ --material: var(--ergo-material-overlay);
866
892
  --on-material: var(--ergo-white);
867
893
  --action: var(--ergo-tertiary);
868
894
  --on-action: var(--ergo-secondary-dark);
@@ -881,7 +907,7 @@ const n = `@layer tcn-theme {
881
907
  --pad-inline: var(--padding-medium);
882
908
 
883
909
  .tcn-pop-confirm-scaffold > .tcn-scaffold-stack {
884
- border-radius: var(--shape-radius-medium);
910
+ border-radius: var(--ergo-shape-radius-medium);
885
911
  box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.4);
886
912
  background-color: var(--background-color-primary);
887
913
  }
@@ -893,14 +919,14 @@ const n = `@layer tcn-theme {
893
919
  /* Set the indicator to match the header color */
894
920
  &[data-v-origin="top"] {
895
921
  :where(.tcn-tethered-origin-indicator) {
896
- --material: var(--ergo-secondary-dark);
922
+ --material: var(--ergo-material-overlay);
897
923
  }
898
924
  }
899
925
 
900
926
  :where(.tcn-header) {
901
- min-height: var(--bar-md);
927
+ min-height: var(--ergo-sizing-bar-md);
902
928
 
903
- --material: var(--ergo-secondary-dark);
929
+ --material: var(--ergo-material-overlay);
904
930
  --on-material: var(--ergo-white);
905
931
  --action: var(--ergo-tertiary);
906
932
  --on-action: var(--ergo-secondary-dark);
@@ -928,7 +954,7 @@ const n = `@layer tcn-theme {
928
954
  min-width: 2px;
929
955
  height: 18px;
930
956
  background: var(--ergo-grey);
931
- border-radius: var(--shape-radius-small);
957
+ border-radius: var(--ergo-shape-radius-small);
932
958
  align-self: center;
933
959
  }
934
960
  }
@@ -939,7 +965,7 @@ const n = `@layer tcn-theme {
939
965
  --divide-footer: 1;
940
966
  --material: var(--background-color-primary);
941
967
  background-color: var(--material);
942
- border-radius: var(--shape-radius-medium);
968
+ border-radius: var(--ergo-shape-radius-medium);
943
969
  overflow: hidden;
944
970
 
945
971
  :where(.tcn-title) {
@@ -957,11 +983,11 @@ const n = `@layer tcn-theme {
957
983
  overflow: hidden;
958
984
 
959
985
  :where(.tcn-header) {
960
- min-height: var(--bar-md);
986
+ min-height: var(--ergo-sizing-bar-md);
961
987
  }
962
988
 
963
989
  :where(.tcn-footer) {
964
- min-height: var(--bar-md);
990
+ min-height: var(--ergo-sizing-bar-md);
965
991
  }
966
992
 
967
993
  :where(.tcn-title) {
@@ -976,12 +1002,12 @@ const n = `@layer tcn-theme {
976
1002
  --pad-inline: var(--padding-medium);
977
1003
 
978
1004
  background-color: var(--background-color-primary);
979
- border-radius: var(--shape-radius-medium);
980
- border: 1px solid var(--foreground-color-primary);
1005
+ border-radius: var(--ergo-shape-radius-medium);
1006
+ border: 1px solid var(--ergo-material-border);
981
1007
  overflow: hidden;
982
1008
 
983
1009
  :where(.tcn-header) {
984
- min-height: var(--bar-md);
1010
+ min-height: var(--ergo-sizing-bar-md);
985
1011
 
986
1012
  --material: var(--ergo-secondary-light);
987
1013
  --on-material: var(--ergo-accent-blue);
@@ -996,7 +1022,7 @@ const n = `@layer tcn-theme {
996
1022
  }
997
1023
 
998
1024
  :where(.tcn-utility-bar) {
999
- min-height: var(--bar-sm);
1025
+ min-height: var(--ergo-sizing-bar-sm);
1000
1026
  }
1001
1027
 
1002
1028
  :where(.tcn-scaffold-stack) > :where(.tcn-scaffold) > :where(.tcn-scaffold-stack),
@@ -1007,6 +1033,32 @@ const n = `@layer tcn-theme {
1007
1033
  }
1008
1034
  }
1009
1035
 
1036
+ /* Columns: */
1037
+ .tcn-panel {
1038
+ :where(.tcn-columns) {
1039
+ padding: var(--padding-large);
1040
+
1041
+ :where(.tcn-column) {
1042
+ border-right: 1px solid var(--ergo-material-border);
1043
+ padding-inline-end: var(--padding-medium);
1044
+ }
1045
+
1046
+ :where(.tcn-column):not(:first-child) {
1047
+ padding-inline-start: var(--padding-medium);
1048
+ }
1049
+ }
1050
+ }
1051
+
1052
+ .tcn-page {
1053
+ :where(.tcn-columns) {
1054
+ padding: var(--padding-medium);
1055
+
1056
+ :where(.tcn-column):not(:last-child) {
1057
+ padding-inline-end: var(--padding-medium);
1058
+ }
1059
+ }
1060
+ }
1061
+
1010
1062
  /* SECTION */
1011
1063
  .tcn-section {
1012
1064
  --max-section-depth: 4;
@@ -1017,19 +1069,24 @@ const n = `@layer tcn-theme {
1017
1069
  var(--section-tab-start) +
1018
1070
  (var(--section-tab-width) * var(--section-tab-depth))
1019
1071
  );
1072
+ --section-heading-height: var(--ergo-sizing-bar-md);
1020
1073
  --section-action: var(--ergo-secondary);
1021
1074
  --section-mat: var(--ergo-secondary-light);
1022
- --section-on-mat: var(--ergo-ink-primary);
1075
+ --section-on-mat: var(--ergo-text-color-primary);
1023
1076
  }
1024
1077
 
1025
1078
  .tcn-heading {
1026
- background-color: #f1f1f1;
1079
+ position: sticky;
1080
+ background-color: var(--material);
1027
1081
  padding-inline-start: var(--pad-inline, var(--padding-medium));
1028
- height: 30px;
1082
+ padding-inline-end: var(--pad-inline, var(--padding-medium));
1083
+ height: var(--section-heading-height);
1029
1084
  z-index: 5;
1085
+ user-select: none;
1030
1086
  }
1031
1087
 
1032
1088
  .tcn-section > .tcn-heading {
1089
+ top: calc(var(--section-heading-height) * var(--section-tab-depth));
1033
1090
  z-index: calc(var(--max-section-depth) - var(--section-tab-depth));
1034
1091
  padding-inline-start: var(--section-tab);
1035
1092
  --material: var(--section-mat);
@@ -1040,14 +1097,18 @@ const n = `@layer tcn-theme {
1040
1097
  gap: var(--gap-small);
1041
1098
  }
1042
1099
 
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) {
1100
+ .tcn-detail {
1101
+ padding-block: var(--padding-medium);
1102
+ gap: var(--padding-medium);
1103
+ }
1104
+
1105
+ .tcn-section > .tcn-detail {
1050
1106
  padding-inline-start: var(--section-tab);
1107
+ padding-inline-end: var(--pad-inline, var(--padding-medium));
1108
+ }
1109
+
1110
+ .tcn-scaffold-stack > .tcn-detail {
1111
+ padding-inline: var(--pad-inline, var(--padding-medium));
1051
1112
  }
1052
1113
 
1053
1114
  .tcn-section > .tcn-section {
@@ -1069,7 +1130,7 @@ const n = `@layer tcn-theme {
1069
1130
  }
1070
1131
 
1071
1132
  .tcn-caret {
1072
- --caret-size: var(--shape-triangle-medium);
1133
+ --caret-size: var(--ergo-shape-triangle-medium);
1073
1134
  --caret-triangle-height: calc(var(--caret-size) / 2);
1074
1135
  --caret-triangle-width: var(--caret-size);
1075
1136
  --caret-triangle-base: var(--caret-triangle-height) solid transparent;
@@ -1112,7 +1173,7 @@ const n = `@layer tcn-theme {
1112
1173
  --table-pad-inline: var(--pad-inline, var(--padding-medium));
1113
1174
 
1114
1175
  --material: var(--ergo-white);
1115
- --on-material: var(--ergo-ink-primary);
1176
+ --on-material: var(--ergo-text-color-primary);
1116
1177
  --action: var(--ergo-accent-blue);
1117
1178
  --on-action: var(--ergo-white);
1118
1179
  background-color: var(--material);
@@ -1153,7 +1214,7 @@ const n = `@layer tcn-theme {
1153
1214
  .tcn-thead {
1154
1215
  /* Border for header row */
1155
1216
  .tcn-tr {
1156
- height: var(--bar-md);
1217
+ height: var(--ergo-sizing-bar-md);
1157
1218
  .tcn-th {
1158
1219
  border-bottom: 1px solid var(--ergo-grey-light);
1159
1220
  }
@@ -1170,7 +1231,7 @@ const n = `@layer tcn-theme {
1170
1231
  font-weight: bold;
1171
1232
  /* Border for footer row */
1172
1233
  .tcn-tr {
1173
- height: var(--bar-sm);
1234
+ height: var(--ergo-sizing-bar-sm);
1174
1235
  .tcn-th,
1175
1236
  .tcn-td {
1176
1237
  border-top: 1px solid var(--ergo-grey-light);
@@ -1196,7 +1257,7 @@ const n = `@layer tcn-theme {
1196
1257
  }
1197
1258
 
1198
1259
  .tcn-tr {
1199
- height: var(--bar-sm);
1260
+ height: var(--ergo-sizing-bar-sm);
1200
1261
  align-content: center;
1201
1262
  }
1202
1263
 
@@ -1255,17 +1316,17 @@ const n = `@layer tcn-theme {
1255
1316
  --mat: var(--material);
1256
1317
  --act-raised: color-mix(in srgb, var(--mat), var(--act) 12%);
1257
1318
 
1258
- font-size: var(--font-size-input);
1319
+ font-size: var(--ergo-text-size-input);
1259
1320
  border: 1px solid var(--ergo-grey);
1260
1321
  box-sizing: border-box;
1261
- min-height: var(--action-md);
1262
- border-radius: var(--shape-radius-medium);
1322
+ min-height: var(--ergo-sizing-action-md);
1323
+ border-radius: var(--ergo-shape-radius-medium);
1263
1324
  padding-inline: 4px;
1264
1325
  }
1265
1326
 
1266
1327
  .tcn-radio-label,
1267
1328
  .tcn-select-selected-label {
1268
- font-size: var(--font-size-input);
1329
+ font-size: var(--ergo-text-size-input);
1269
1330
  }
1270
1331
 
1271
1332
  .tcn-control[data-is-disabled="false"]:hover {
@@ -1287,12 +1348,12 @@ const n = `@layer tcn-theme {
1287
1348
 
1288
1349
  .tcn-control[data-is-disabled="true"] {
1289
1350
  cursor: not-allowed;
1290
- background: var(--material-disabled);
1291
- color: var(--on-material-disabled);
1351
+ background: var(--ergo-material-disabled-outline);
1352
+ color: var(--ergo-text-color-disabled-outline);
1292
1353
  }
1293
1354
 
1294
1355
  .tcn-control[data-is-disabled="true"]::placeholder {
1295
- color: var(--on-material-disabled);
1356
+ color: var(--ergo-text-color-disabled-outline);
1296
1357
  }
1297
1358
 
1298
1359
  .tcn-control {
@@ -1342,7 +1403,7 @@ const n = `@layer tcn-theme {
1342
1403
  }
1343
1404
 
1344
1405
  .tcn-control-set {
1345
- border-radius: var(--shape-radius-medium);
1406
+ border-radius: var(--ergo-shape-radius-medium);
1346
1407
 
1347
1408
  &:focus-within {
1348
1409
  outline: 2px solid var(--ergo-primary);
@@ -1353,7 +1414,7 @@ const n = `@layer tcn-theme {
1353
1414
  z-index: 1;
1354
1415
  border-radius: 0;
1355
1416
  height: auto;
1356
- min-height: var(--action-md);
1417
+ min-height: var(--ergo-sizing-action-md);
1357
1418
  padding-block: 0;
1358
1419
  &:focus,
1359
1420
  &:focus-visible {
@@ -1363,8 +1424,8 @@ const n = `@layer tcn-theme {
1363
1424
  }
1364
1425
 
1365
1426
  .tcn-control-set-item:first-child {
1366
- border-top-left-radius: var(--shape-radius-medium);
1367
- border-bottom-left-radius: var(--shape-radius-medium);
1427
+ border-top-left-radius: var(--ergo-shape-radius-medium);
1428
+ border-bottom-left-radius: var(--ergo-shape-radius-medium);
1368
1429
  }
1369
1430
 
1370
1431
  .tcn-control-set-item:not(:last-child) {
@@ -1372,8 +1433,8 @@ const n = `@layer tcn-theme {
1372
1433
  }
1373
1434
 
1374
1435
  .tcn-control-set-item:last-child {
1375
- border-top-right-radius: var(--shape-radius-medium);
1376
- border-bottom-right-radius: var(--shape-radius-medium);
1436
+ border-top-right-radius: var(--ergo-shape-radius-medium);
1437
+ border-bottom-right-radius: var(--ergo-shape-radius-medium);
1377
1438
  }
1378
1439
 
1379
1440
  .tcn-select,
@@ -1381,8 +1442,8 @@ const n = `@layer tcn-theme {
1381
1442
  .tcn-button[data-hierarchy] {
1382
1443
  border: 1px solid var(--ergo-grey);
1383
1444
  height: auto;
1384
- min-height: var(--action-md);
1385
- min-width: var(--action-md);
1445
+ min-height: var(--ergo-sizing-action-md);
1446
+ min-width: var(--ergo-sizing-action-md);
1386
1447
  box-sizing: border-box;
1387
1448
  &:hover,
1388
1449
  &[data-hover] {
@@ -1426,7 +1487,7 @@ const n = `@layer tcn-theme {
1426
1487
 
1427
1488
  &[data-is-disabled="true"] {
1428
1489
  cursor: not-allowed;
1429
- border-color: var(--material-disabled);
1490
+ border-color: var(--ergo-material-disabled-outline);
1430
1491
  }
1431
1492
 
1432
1493
  &[data-checked="true"] {
@@ -1471,10 +1532,69 @@ const n = `@layer tcn-theme {
1471
1532
  .tcn-suggestion-list {
1472
1533
  --accent-color: var(--ergo-primary);
1473
1534
  }
1535
+
1536
+ /* Datum/Tokens */
1537
+ .tcn-chip {
1538
+ --action: var(--ergo-primary);
1539
+ --accent-color: var(--ergo-primary);
1540
+ }
1541
+
1542
+ .tcn-datum[data-emphasis="normal"] {
1543
+ --datum-font-color: var(--on-material);
1544
+ }
1545
+
1546
+ .tcn-datum[data-emphasis="strong"] {
1547
+ --datum-font-weight: 700;
1548
+ }
1549
+
1550
+ .tcn-datum[data-emphasis="faint"] {
1551
+ --datum-font-color: color-mix(in srgb, var(--on-material), transparent 12%);
1552
+ }
1553
+
1554
+ .tcn-datum[data-severity="dangerous"] {
1555
+ --datum-font-color: var(--ergo-status-red);
1556
+ }
1557
+
1558
+ .tcn-datum[data-severity="cautious"] {
1559
+ --datum-font-color: var(--ergo-status-yellow);
1560
+ }
1561
+
1562
+ .tcn-datum[data-severity="suggested"] {
1563
+ --datum-font-color: var(--ergo-status-blue);
1564
+ }
1565
+
1566
+ .tcn-datum[data-severity="encouraged"] {
1567
+ --datum-font-color: var(--ergo-status-green);
1568
+ }
1569
+
1570
+ .tcn-key {
1571
+ --accent-color: var(--action);
1572
+ font-size: 14px;
1573
+ color: var(--datum-font-color);
1574
+ font-weight: var(--datum-font-weight, 400);
1575
+ }
1576
+
1577
+ .tcn-value {
1578
+ font-size: 12px;
1579
+
1580
+ color: var(--datum-font-color);
1581
+ font-weight: var(--datum-font-weight, 400);
1582
+ }
1583
+
1584
+ .tcn-term > .tcn-key,
1585
+ .tcn-term > .tcn-value {
1586
+ max-width: 50%;
1587
+ }
1588
+
1589
+ .tcn-value {
1590
+ :where(.tcn-chip) {
1591
+ --action: var(--ergo-accent-blue);
1592
+ --accent-color: var(--ergo-accent-blue);
1593
+ }
1594
+ }
1474
1595
  }
1475
- `, r = new CSSStyleSheet();
1476
- r.replaceSync(n);
1596
+ `, i = n([r, a, e]);
1477
1597
  export {
1478
- r as ergoStyleSheet
1598
+ i as ergoStyleSheet
1479
1599
  };
1480
1600
  //# sourceMappingURL=ergo_theme.js.map