@scattered-light/base-ui-theme 0.1.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 (105) hide show
  1. package/README.md +19 -0
  2. package/dist/index.d.ts +103 -0
  3. package/dist/index.js +313 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/styles/base/borders.css +26 -0
  6. package/dist/styles/base/breakpoints.css +26 -0
  7. package/dist/styles/base/colors.css +150 -0
  8. package/dist/styles/base/global.css +108 -0
  9. package/dist/styles/base/reset-accessibility.css +119 -0
  10. package/dist/styles/base/reset.css +451 -0
  11. package/dist/styles/base/shadows.css +42 -0
  12. package/dist/styles/base/spacing.css +62 -0
  13. package/dist/styles/base/transitions.css +29 -0
  14. package/dist/styles/base/typography.css +63 -0
  15. package/dist/styles/base/z-index.css +22 -0
  16. package/dist/styles/components/AGGrid.css +6 -0
  17. package/dist/styles/components/Accordion.css +184 -0
  18. package/dist/styles/components/AlertDialog.css +172 -0
  19. package/dist/styles/components/Autocomplete.css +261 -0
  20. package/dist/styles/components/Avatar.css +154 -0
  21. package/dist/styles/components/Button.css +164 -0
  22. package/dist/styles/components/Checkbox.css +199 -0
  23. package/dist/styles/components/CheckboxGroup.css +21 -0
  24. package/dist/styles/components/Collapsible.css +115 -0
  25. package/dist/styles/components/Combobox.css +514 -0
  26. package/dist/styles/components/ContextMenu.css +209 -0
  27. package/dist/styles/components/Dialog.css +159 -0
  28. package/dist/styles/components/Field.css +138 -0
  29. package/dist/styles/components/Fieldset.css +48 -0
  30. package/dist/styles/components/Form.css +22 -0
  31. package/dist/styles/components/Input.css +106 -0
  32. package/dist/styles/components/Menu.css +158 -0
  33. package/dist/styles/components/Menubar.css +201 -0
  34. package/dist/styles/components/Meter.css +104 -0
  35. package/dist/styles/components/NavigationMenu.css +469 -0
  36. package/dist/styles/components/NumberField.css +182 -0
  37. package/dist/styles/components/Popover.css +167 -0
  38. package/dist/styles/components/PreviewCard.css +148 -0
  39. package/dist/styles/components/Progress.css +130 -0
  40. package/dist/styles/components/Radio.css +178 -0
  41. package/dist/styles/components/ScrollArea.css +103 -0
  42. package/dist/styles/components/Select.css +297 -0
  43. package/dist/styles/components/Separator.css +34 -0
  44. package/dist/styles/components/Slider.css +163 -0
  45. package/dist/styles/components/Switch.css +197 -0
  46. package/dist/styles/components/Tabs.css +163 -0
  47. package/dist/styles/components/Toast.css +261 -0
  48. package/dist/styles/components/Toggle.css +103 -0
  49. package/dist/styles/components/ToggleGroup.css +19 -0
  50. package/dist/styles/components/Toolbar.css +78 -0
  51. package/dist/styles/components/Tooltip.css +87 -0
  52. package/dist/styles/index.css +103 -0
  53. package/dist/styles/semantic/accessibility.css +77 -0
  54. package/dist/styles/semantic/accordion.css +102 -0
  55. package/dist/styles/semantic/ag-grid.css +114 -0
  56. package/dist/styles/semantic/alert-dialog.css +78 -0
  57. package/dist/styles/semantic/autocomplete.css +162 -0
  58. package/dist/styles/semantic/avatar.css +96 -0
  59. package/dist/styles/semantic/badge.css +16 -0
  60. package/dist/styles/semantic/button.css +145 -0
  61. package/dist/styles/semantic/card.css +14 -0
  62. package/dist/styles/semantic/checkbox-group.css +18 -0
  63. package/dist/styles/semantic/checkbox.css +117 -0
  64. package/dist/styles/semantic/collapsible.css +123 -0
  65. package/dist/styles/semantic/combobox.css +325 -0
  66. package/dist/styles/semantic/context-menu.css +131 -0
  67. package/dist/styles/semantic/dialog.css +91 -0
  68. package/dist/styles/semantic/dropdown.css +16 -0
  69. package/dist/styles/semantic/field.css +73 -0
  70. package/dist/styles/semantic/fieldset.css +45 -0
  71. package/dist/styles/semantic/form.css +20 -0
  72. package/dist/styles/semantic/input.css +83 -0
  73. package/dist/styles/semantic/menu.css +104 -0
  74. package/dist/styles/semantic/menubar.css +70 -0
  75. package/dist/styles/semantic/meter.css +88 -0
  76. package/dist/styles/semantic/modal.css +14 -0
  77. package/dist/styles/semantic/navigation-menu.css +171 -0
  78. package/dist/styles/semantic/number-field.css +142 -0
  79. package/dist/styles/semantic/popover.css +113 -0
  80. package/dist/styles/semantic/preview-card.css +108 -0
  81. package/dist/styles/semantic/progress.css +85 -0
  82. package/dist/styles/semantic/radio.css +103 -0
  83. package/dist/styles/semantic/scroll-area.css +64 -0
  84. package/dist/styles/semantic/select.css +197 -0
  85. package/dist/styles/semantic/separator.css +37 -0
  86. package/dist/styles/semantic/slider.css +120 -0
  87. package/dist/styles/semantic/switch.css +158 -0
  88. package/dist/styles/semantic/tabs.css +150 -0
  89. package/dist/styles/semantic/toast.css +171 -0
  90. package/dist/styles/semantic/toggle-group.css +29 -0
  91. package/dist/styles/semantic/toggle.css +94 -0
  92. package/dist/styles/semantic/toolbar.css +47 -0
  93. package/dist/styles/semantic/tooltip.css +56 -0
  94. package/dist/styles/theme/README.md +179 -0
  95. package/dist/styles/theme/theme-accessibility.css +13 -0
  96. package/dist/styles/theme/theme-primitives.css +7 -0
  97. package/dist/styles/theme/theme-radius.css +12 -0
  98. package/dist/styles/theme/theme-roles.css +66 -0
  99. package/dist/styles/theme/theme-spacing.css +28 -0
  100. package/dist/styles/theme/theme-stroke.css +7 -0
  101. package/dist/styles/theme/theme-typography.css +218 -0
  102. package/dist/styles/utilities/color-styles.css +34 -0
  103. package/dist/styles/utilities/layout-styles.css +19 -0
  104. package/dist/styles/utilities/text-styles.css +102 -0
  105. package/package.json +75 -0
@@ -0,0 +1,123 @@
1
+ /* Collapsible Component Tokens - Mojave Theme */
2
+
3
+ :root {
4
+ /* ============================================
5
+ ROOT CONTAINER
6
+ ============================================ */
7
+
8
+ --collapsible-root-display: flex;
9
+ --collapsible-root-width: 14rem;
10
+ --collapsible-root-min-height: 9rem;
11
+ --collapsible-root-flex-direction: column;
12
+ --collapsible-root-justify-content: center;
13
+ --collapsible-root-color: var(--theme-neutral-900);
14
+
15
+ /* ============================================
16
+ ICON
17
+ ============================================ */
18
+
19
+ --collapsible-icon-size: 0.75rem;
20
+ --collapsible-icon-transition: transform 150ms ease-out;
21
+
22
+ /* ============================================
23
+ TRIGGER
24
+ ============================================ */
25
+
26
+ --collapsible-trigger-display: flex;
27
+ --collapsible-trigger-align-items: center;
28
+ --collapsible-trigger-gap: var(--space-2);
29
+ --collapsible-trigger-margin: 0;
30
+ --collapsible-trigger-border: 0;
31
+ --collapsible-trigger-outline: 0;
32
+ --collapsible-trigger-padding: var(--space-1) var(--space-2);
33
+ --collapsible-trigger-border-radius: var(--theme-radius-item);
34
+ --collapsible-trigger-background-default: var(--theme-neutral-100);
35
+ --collapsible-trigger-background-hover: var(--theme-neutral-200);
36
+ --collapsible-trigger-background-active: var(--theme-neutral-200);
37
+ --collapsible-trigger-color: var(--theme-neutral-900);
38
+ --collapsible-trigger-font-family: var(--theme-font-base-subtitle-font-family);
39
+ --collapsible-trigger-font-size: var(--theme-font-base-subtitle-font-size);
40
+ --collapsible-trigger-line-height: var(--theme-font-base-subtitle-line-height);
41
+ --collapsible-trigger-font-weight: var(--theme-font-base-subtitle-font-weight);
42
+ --collapsible-trigger-letter-spacing: var(--theme-font-base-subtitle-letter-spacing);
43
+ --collapsible-trigger-cursor: pointer;
44
+
45
+ /* Trigger Focus State */
46
+ --collapsible-trigger-focus-outline: var(--theme-a11y-focus-outline-width) solid var(--theme-primary-600);
47
+
48
+ /* ============================================
49
+ PANEL
50
+ ============================================ */
51
+
52
+ --collapsible-panel-display: flex;
53
+ --collapsible-panel-height: var(--collapsible-panel-height);
54
+ --collapsible-panel-flex-direction: column;
55
+ --collapsible-panel-justify-content: end;
56
+ --collapsible-panel-overflow: hidden;
57
+ --collapsible-panel-font-family: var(--theme-font-base-font-family);
58
+ --collapsible-panel-font-size: var(--theme-font-base-font-size);
59
+ --collapsible-panel-font-weight: var(--theme-font-base-font-weight);
60
+ --collapsible-panel-line-height: var(--theme-font-base-line-height);
61
+ --collapsible-panel-letter-spacing: var(--theme-font-base-letter-spacing);
62
+ --collapsible-panel-transition: all 150ms ease-out;
63
+
64
+ /* Panel Text */
65
+ --collapsible-panel-text-color: var(--theme-neutral-900);
66
+ --collapsible-panel-text-line-height: var(--theme-font-base-line-height);
67
+
68
+ /* Panel Code */
69
+ --collapsible-panel-code-margin-top: var(--space-2);
70
+ --collapsible-panel-code-padding: var(--space-2);
71
+ --collapsible-panel-code-background: var(--theme-neutral-50);
72
+ --collapsible-panel-code-border-radius: var(--theme-radius-item);
73
+ --collapsible-panel-code-font-family: var(--theme-font-code-font-family);
74
+ --collapsible-panel-code-font-size: var(--theme-font-code-font-size);
75
+ --collapsible-panel-code-font-weight: var(--theme-font-code-font-weight);
76
+ --collapsible-panel-code-line-height: var(--theme-font-code-line-height);
77
+ --collapsible-panel-code-letter-spacing: var(--theme-font-code-letter-spacing);
78
+
79
+ /* ============================================
80
+ CONTENT
81
+ ============================================ */
82
+
83
+ --collapsible-content-display: flex;
84
+ --collapsible-content-flex-direction: column;
85
+ --collapsible-content-gap: var(--space-2);
86
+ --collapsible-content-margin-top: var(--space-1);
87
+ --collapsible-content-padding: var(--space-2) 0 var(--space-2) 1.75rem;
88
+ --collapsible-content-border-radius: var(--theme-radius-item);
89
+ --collapsible-content-background: var(--theme-neutral-100);
90
+ --collapsible-content-cursor: text;
91
+ --collapsible-content-color: var(--theme-neutral-900);
92
+ --collapsible-content-font-family: var(--theme-font-base-font-family);
93
+ --collapsible-content-font-size: var(--theme-font-base-font-size);
94
+ --collapsible-content-font-weight: var(--theme-font-base-font-weight);
95
+ --collapsible-content-line-height: var(--theme-font-base-line-height);
96
+ --collapsible-content-letter-spacing: var(--theme-font-base-letter-spacing);
97
+ }
98
+
99
+ /* ============================================
100
+ DARK MODE OVERRIDES
101
+ ============================================ */
102
+
103
+ @media (prefers-color-scheme: dark) {
104
+ :root {
105
+ --collapsible-root-color: var(--theme-neutral-100);
106
+ --collapsible-trigger-background-default: var(--theme-neutral-800);
107
+ --collapsible-trigger-background-hover: var(--theme-neutral-700);
108
+ --collapsible-trigger-background-active: var(--theme-neutral-700);
109
+ --collapsible-trigger-color: var(--theme-neutral-100);
110
+ --collapsible-content-background: var(--theme-neutral-800);
111
+ --collapsible-content-color: var(--theme-neutral-100);
112
+ }
113
+ }
114
+
115
+ [data-theme='dark'] {
116
+ --collapsible-root-color: var(--theme-neutral-100);
117
+ --collapsible-trigger-background-default: var(--theme-neutral-800);
118
+ --collapsible-trigger-background-hover: var(--theme-neutral-700);
119
+ --collapsible-trigger-background-active: var(--theme-neutral-700);
120
+ --collapsible-trigger-color: var(--theme-neutral-100);
121
+ --collapsible-content-background: var(--theme-neutral-800);
122
+ --collapsible-content-color: var(--theme-neutral-100);
123
+ }
@@ -0,0 +1,325 @@
1
+ /* Combobox Component Tokens - Mojave Theme */
2
+
3
+ :root {
4
+ /* ============================================
5
+ ROOT CONTAINER
6
+ ============================================ */
7
+
8
+ --combobox-root-display: flex;
9
+ --combobox-root-flex-direction: column;
10
+ --combobox-root-gap: var(--space-2);
11
+ --combobox-root-width: 100%;
12
+ --combobox-root-max-width: 400px;
13
+ --combobox-min-height: 42px;
14
+
15
+ /* ============================================
16
+ LABEL
17
+ ============================================ */
18
+
19
+ --combobox-label-font-family: var(--theme-font-base-label-font-family);
20
+ --combobox-label-font-size: var(--theme-font-base-label-font-size);
21
+ --combobox-label-font-weight: var(--theme-font-base-label-font-weight);
22
+ --combobox-label-line-height: var(--theme-font-base-label-line-height);
23
+ --combobox-label-letter-spacing: var(--theme-font-base-label-letter-spacing);
24
+ --combobox-label-color: var(--text-primary);
25
+ --combobox-label-margin-bottom: var(--space-1);
26
+
27
+ /* ============================================
28
+ INPUT WRAPPER
29
+ ============================================ */
30
+
31
+ --combobox-input-wrapper-display: flex;
32
+ --combobox-input-wrapper-align-items: center;
33
+ --combobox-input-wrapper-position: relative;
34
+
35
+ /* ============================================
36
+ INPUT (reuses base input tokens)
37
+ ============================================ */
38
+
39
+ --combobox-input-width: var(--input-width);
40
+ --combobox-input-height: var(--input-height);
41
+ --combobox-input-padding-block: var(--input-padding-block);
42
+ --combobox-input-padding-inline-start: var(--input-padding-inline);
43
+ --combobox-input-padding-inline-end: var(--space-10); /* Extra space for action buttons */
44
+ --combobox-input-font-family: var(--input-font-family);
45
+ --combobox-input-font-size: var(--input-font-size);
46
+ --combobox-input-font-weight: var(--input-font-weight);
47
+ --combobox-input-line-height: var(--input-line-height);
48
+ --combobox-input-letter-spacing: var(--input-letter-spacing);
49
+ --combobox-input-color: var(--input-color);
50
+ --combobox-input-background: var(--input-background);
51
+ --combobox-input-border-width: var(--input-border-width);
52
+ --combobox-input-border-color: var(--input-border-color);
53
+ --combobox-input-border-radius: var(--input-border-radius);
54
+ --combobox-input-transition: var(--input-transition);
55
+ --combobox-input-placeholder-color: var(--input-placeholder-color);
56
+
57
+ /* Input states (reuse from base input) */
58
+ --combobox-input-border-color-hover: var(--input-border-color-hover);
59
+ --combobox-input-border-color-focus: var(--input-border-color-focus);
60
+ --combobox-input-shadow-focus: var(--input-shadow-focus);
61
+ --combobox-input-background-disabled: var(--input-background-disabled);
62
+ --combobox-input-color-disabled: var(--input-color-disabled);
63
+ --combobox-input-cursor-disabled: var(--input-cursor-disabled);
64
+
65
+ /* ============================================
66
+ ACTION BUTTONS
67
+ ============================================ */
68
+
69
+ --combobox-action-buttons-display: flex;
70
+ --combobox-action-buttons-gap: var(--space-1);
71
+ --combobox-action-buttons-position: absolute;
72
+ --combobox-action-buttons-right: var(--space-3);
73
+
74
+ /* ============================================
75
+ CLEAR BUTTON
76
+ ============================================ */
77
+
78
+ --combobox-clear-position: relative;
79
+ --combobox-clear-size: var(--space-6);
80
+ --combobox-clear-bg: transparent;
81
+ --combobox-clear-bg-hover: var(--surface-raised);
82
+ --combobox-clear-color: var(--text-tertiary);
83
+ --combobox-clear-color-hover: var(--text-primary);
84
+ --combobox-clear-border-radius: var(--theme-radius-item);
85
+ --combobox-clear-font-size: var(--theme-maximize-xl-font-size);
86
+ --combobox-clear-transition: all 0.2s ease;
87
+
88
+ /* ============================================
89
+ TRIGGER BUTTON
90
+ ============================================ */
91
+
92
+ --combobox-trigger-position: relative;
93
+ --combobox-trigger-size: var(--space-6);
94
+ --combobox-trigger-bg: transparent;
95
+ --combobox-trigger-bg-hover: var(--surface-raised);
96
+ --combobox-trigger-color: var(--text-tertiary);
97
+ --combobox-trigger-color-hover: var(--text-primary);
98
+ --combobox-trigger-border-radius: var(--theme-radius-item);
99
+ --combobox-trigger-font-size: var(--theme-maximize-xl-font-size);
100
+ --combobox-trigger-transition: all 0.2s ease;
101
+
102
+ /* ============================================
103
+ CHIPS (Multiple Select)
104
+ ============================================ */
105
+
106
+ --combobox-chip-background: var(--theme-neutral-200);
107
+ --combobox-chip-color: var(--text-primary);
108
+ --combobox-chip-border-radius: var(--theme-radius-item);
109
+ --combobox-chip-font-family: var(--theme-font-condense-font-family);
110
+ --combobox-chip-font-size: var(--theme-font-condense-font-size);
111
+ --combobox-chip-font-weight: var(--theme-font-condense-font-weight);
112
+ --combobox-chip-line-height: var(--theme-font-condense-line-height);
113
+ --combobox-chip-letter-spacing: var(--theme-font-condense-letter-spacing);
114
+ --combobox-chip-padding: var(--space-1) var(--space-2);
115
+
116
+ --combobox-chip-remove-border-radius: var(--theme-radius-item);
117
+ --combobox-chip-remove-background-hover: var(--theme-neutral-300);
118
+ --combobox-chip-remove-icon-size: 14px;
119
+
120
+ /* ============================================
121
+ POSITIONER & POPUP
122
+ ============================================ */
123
+
124
+ --combobox-positioner-z-index: 1500;
125
+
126
+ --combobox-popup-margin-block-start: var(--space-1);
127
+ --combobox-popup-bg: var(--surface-base);
128
+ --combobox-popup-border-width: var(--theme-stroke-default);
129
+ --combobox-popup-border-color: var(--border-default);
130
+ --combobox-popup-border-radius: var(--input-border-radius);
131
+ --combobox-popup-shadow: var(--shadow-lg);
132
+ --combobox-popup-animation-duration: 0.2s;
133
+ --combobox-popup-animation-easing: ease-out;
134
+
135
+ /* ============================================
136
+ LIST
137
+ ============================================ */
138
+
139
+ --combobox-list-max-height: 300px;
140
+ --combobox-list-padding: var(--space-1);
141
+
142
+ /* ============================================
143
+ ITEM
144
+ ============================================ */
145
+
146
+ --combobox-item-padding-block: var(--space-2-5);
147
+ --combobox-item-padding-inline: var(--space-3);
148
+ --combobox-item-font-family: var(--theme-font-base-font-family);
149
+ --combobox-item-font-size: var(--theme-font-base-font-size);
150
+ --combobox-item-font-weight: var(--theme-font-base-font-weight);
151
+ --combobox-item-line-height: var(--theme-font-base-line-height);
152
+ --combobox-item-letter-spacing: var(--theme-font-base-letter-spacing);
153
+ --combobox-item-color: var(--text-primary);
154
+ --combobox-item-bg-hover: var(--theme-primary-100);
155
+ --combobox-item-color-hover: var(--theme-primary-800);
156
+ --combobox-item-bg-selected: var(--theme-primary-200);
157
+ --combobox-item-color-selected: var(--theme-primary-900);
158
+ --combobox-item-font-weight-selected: var(--font-weight-normal);
159
+ --combobox-item-color-disabled: var(--text-disabled);
160
+ --combobox-item-opacity-disabled: 0.5;
161
+ --combobox-item-border-radius: var(--theme-radius-item);
162
+ --combobox-item-transition: all 0.15s ease;
163
+
164
+ /* ============================================
165
+ ITEM INDICATOR
166
+ ============================================ */
167
+
168
+ --combobox-item-indicator-display: flex;
169
+ --combobox-item-indicator-align-items: center;
170
+ --combobox-item-indicator-justify-content: center;
171
+ --combobox-item-indicator-width: 16px;
172
+ --combobox-item-indicator-height: 16px;
173
+ --combobox-item-indicator-color: var(--theme-primary-600);
174
+
175
+ /* ============================================
176
+ EMPTY STATE
177
+ ============================================ */
178
+
179
+ --combobox-empty-padding-block: var(--space-6);
180
+ --combobox-empty-padding-inline: var(--space-3);
181
+ --combobox-empty-text-align: center;
182
+ --combobox-empty-color: var(--text-tertiary);
183
+ --combobox-empty-font-family: var(--theme-font-condense-font-family);
184
+ --combobox-empty-font-size: var(--theme-font-condense-font-size);
185
+ --combobox-empty-font-weight: var(--theme-font-condense-font-weight);
186
+ --combobox-empty-line-height: var(--theme-font-condense-line-height);
187
+ --combobox-empty-letter-spacing: var(--theme-font-condense-letter-spacing);
188
+
189
+ /* ============================================
190
+ STATUS
191
+ ============================================ */
192
+
193
+ --combobox-status-padding: var(--space-2);
194
+ --combobox-status-color: var(--text-secondary);
195
+ --combobox-status-font-family: var(--theme-font-condense-font-family);
196
+ --combobox-status-font-size: var(--theme-font-condense-font-size);
197
+ --combobox-status-font-weight: var(--theme-font-condense-font-weight);
198
+ --combobox-status-line-height: var(--theme-font-condense-line-height);
199
+ --combobox-status-letter-spacing: var(--theme-font-condense-letter-spacing);
200
+
201
+ /* ============================================
202
+ GROUP
203
+ ============================================ */
204
+
205
+ --combobox-group-padding: 0;
206
+
207
+ --combobox-group-label-padding-block-start: var(--space-2);
208
+ --combobox-group-label-padding-block-end: var(--space-1);
209
+ --combobox-group-label-padding-inline: var(--space-3);
210
+ --combobox-group-label-font-family: var(--theme-font-condense-subtitle-label-font-family);
211
+ --combobox-group-label-font-size: var(--theme-font-condense-subtitle-label-font-size);
212
+ --combobox-group-label-font-weight: var(--theme-font-condense-subtitle-label-font-weight);
213
+ --combobox-group-label-line-height: var(--theme-font-condense-subtitle-label-line-height);
214
+ --combobox-group-label-letter-spacing: var(--theme-font-condense-subtitle-label-letter-spacing);
215
+ --combobox-group-label-color: var(--text-secondary);
216
+ --combobox-group-label-text-transform: var(--theme-font-condense-subtitle-label-text-transform);
217
+
218
+ /* ============================================
219
+ SEPARATOR
220
+ ============================================ */
221
+
222
+ --combobox-separator-height: var(--theme-stroke-default);
223
+ --combobox-separator-bg: var(--border-subtle);
224
+ --combobox-separator-margin-block: var(--space-1);
225
+
226
+ /* ============================================
227
+ SELECT-STYLE TRIGGER (Input inside popup)
228
+ ============================================ */
229
+
230
+ --combobox-select-trigger-display: flex;
231
+ --combobox-select-trigger-align-items: center;
232
+ --combobox-select-trigger-justify-content: space-between;
233
+ --combobox-select-trigger-width: 100%;
234
+ --combobox-select-trigger-height: var(--input-height);
235
+ --combobox-select-trigger-padding-block: var(--input-padding-block);
236
+ --combobox-select-trigger-padding-inline: var(--input-padding-inline);
237
+ --combobox-select-trigger-font-family: var(--input-font-family);
238
+ --combobox-select-trigger-font-size: var(--input-font-size);
239
+ --combobox-select-trigger-font-weight: var(--input-font-weight);
240
+ --combobox-select-trigger-line-height: var(--input-line-height);
241
+ --combobox-select-trigger-letter-spacing: var(--input-letter-spacing);
242
+ --combobox-select-trigger-color: var(--input-color);
243
+ --combobox-select-trigger-background: var(--input-background);
244
+ --combobox-select-trigger-border-width: var(--input-border-width);
245
+ --combobox-select-trigger-border-color: var(--input-border-color);
246
+ --combobox-select-trigger-border-radius: var(--input-border-radius);
247
+ --combobox-select-trigger-transition: var(--input-transition);
248
+
249
+ --combobox-select-trigger-border-color-hover: var(--input-border-color-hover);
250
+ --combobox-select-trigger-border-color-focus: var(--input-border-color-focus);
251
+ --combobox-select-trigger-shadow-focus: var(--input-shadow-focus);
252
+
253
+ /* ============================================
254
+ ICON (chevron in trigger)
255
+ ============================================ */
256
+
257
+ --combobox-icon-size: 16px;
258
+ --combobox-icon-color: var(--text-tertiary);
259
+
260
+ /* ============================================
261
+ INPUT CONTAINER (inside popup)
262
+ ============================================ */
263
+
264
+ --combobox-input-container-padding: var(--space-2);
265
+ --combobox-input-container-border-bottom-width: var(--theme-stroke-default);
266
+ --combobox-input-container-border-bottom-color: var(--border-subtle);
267
+
268
+ /* ============================================
269
+ ASYNC/STATUS STYLES
270
+ ============================================ */
271
+
272
+ --combobox-spinner-size: 14px;
273
+ --combobox-spinner-border-width: var(--theme-stroke-emphasis);
274
+ --combobox-spinner-color: var(--theme-primary-600);
275
+
276
+ --combobox-item-title-font-family: var(--theme-font-base-trigger-font-family);
277
+ --combobox-item-title-font-size: var(--theme-font-base-trigger-font-size);
278
+ --combobox-item-title-font-weight: var(--theme-font-base-trigger-font-weight);
279
+ --combobox-item-title-line-height: var(--theme-font-base-trigger-line-height);
280
+ --combobox-item-title-letter-spacing: var(--theme-font-base-trigger-letter-spacing);
281
+ --combobox-item-title-color: var(--text-primary);
282
+
283
+ --combobox-item-subtitle-font-family: var(--theme-font-condense-font-family);
284
+ --combobox-item-subtitle-font-size: var(--theme-font-condense-font-size);
285
+ --combobox-item-subtitle-font-weight: var(--theme-font-condense-font-weight);
286
+ --combobox-item-subtitle-line-height: var(--theme-font-condense-line-height);
287
+ --combobox-item-subtitle-letter-spacing: var(--theme-font-condense-letter-spacing);
288
+ --combobox-item-subtitle-color: var(--text-secondary);
289
+ --combobox-item-subtitle-margin-top: var(--space-0-5);
290
+
291
+ --combobox-item-username-color: var(--theme-primary-600);
292
+ --combobox-item-username-font-family: var(--theme-font-condense-font-family);
293
+ --combobox-item-username-font-weight: var(--font-weight-medium);
294
+ --combobox-item-username-letter-spacing: var(--theme-font-condense-letter-spacing);
295
+
296
+ --combobox-item-email-font-family: var(--theme-font-minimize-font-family);
297
+ --combobox-item-email-font-size: var(--theme-font-minimize-font-size);
298
+ --combobox-item-email-font-weight: var(--theme-font-minimize-font-weight);
299
+ --combobox-item-email-line-height: var(--theme-font-minimize-line-height);
300
+ --combobox-item-email-letter-spacing: var(--theme-font-minimize-letter-spacing);
301
+ --combobox-item-email-color: var(--text-tertiary);
302
+ --combobox-item-email-margin-top: var(--space-0-5);
303
+ }
304
+
305
+ /* ============================================
306
+ DARK MODE OVERRIDES
307
+ ============================================ */
308
+
309
+ @media (prefers-color-scheme: dark) {
310
+ :root {
311
+ --combobox-input-background: var(--input-background);
312
+ --combobox-popup-bg: var(--theme-neutral-50);
313
+ --combobox-clear-bg-hover: var(--theme-neutral-100);
314
+ --combobox-trigger-bg-hover: var(--theme-neutral-100);
315
+ --combobox-select-trigger-background: var(--input-background);
316
+ }
317
+ }
318
+
319
+ [data-theme='dark'] {
320
+ --combobox-input-background: var(--input-background);
321
+ --combobox-popup-bg: var(--theme-neutral-50);
322
+ --combobox-clear-bg-hover: var(--theme-neutral-100);
323
+ --combobox-trigger-bg-hover: var(--theme-neutral-100);
324
+ --combobox-select-trigger-background: var(--input-background);
325
+ }
@@ -0,0 +1,131 @@
1
+ /* Context Menu Component Tokens - Mojave Theme */
2
+
3
+ :root {
4
+ /* ============================================
5
+ TRIGGER
6
+ ============================================ */
7
+
8
+ --context-menu-trigger-cursor: context-menu;
9
+ --context-menu-trigger-user-select: none;
10
+
11
+ /* ============================================
12
+ POSITIONER
13
+ ============================================ */
14
+
15
+ --context-menu-positioner-z-index: 1500;
16
+
17
+ /* ============================================
18
+ POPUP
19
+ ============================================ */
20
+
21
+ --context-menu-popup-min-width: 200px;
22
+ --context-menu-popup-background: var(--theme-surface-canvas);
23
+ --context-menu-popup-border: var(--theme-stroke-default) solid var(--theme-neutral-300);
24
+ --context-menu-popup-border-radius: var(--theme-radius-surface);
25
+ --context-menu-popup-padding: var(--space-1);
26
+ --context-menu-popup-shadow: var(--shadow-lg);
27
+ --context-menu-popup-animation-duration: 0.15s;
28
+ --context-menu-popup-animation-easing: ease-out;
29
+
30
+ /* ============================================
31
+ ITEM (includes regular items, checkbox items, radio items)
32
+ ============================================ */
33
+
34
+ --context-menu-item-padding-block: var(--space-2);
35
+ --context-menu-item-padding-inline: var(--space-3);
36
+ --context-menu-item-font-family: var(--theme-font-base-font-family);
37
+ --context-menu-item-font-size: var(--theme-font-base-font-size);
38
+ --context-menu-item-font-weight: var(--theme-font-base-font-weight);
39
+ --context-menu-item-line-height: var(--theme-font-base-line-height);
40
+ --context-menu-item-letter-spacing: var(--theme-font-base-letter-spacing);
41
+ --context-menu-item-color: var(--text-primary);
42
+ --context-menu-item-cursor: pointer;
43
+ --context-menu-item-border-radius: var(--theme-radius-item);
44
+ --context-menu-item-transition: all 0.15s ease;
45
+ --context-menu-item-gap: var(--space-2);
46
+
47
+ /* Item states */
48
+ --context-menu-item-background-hover: var(--theme-primary-100);
49
+ --context-menu-item-color-hover: var(--theme-primary-800);
50
+ --context-menu-item-color-disabled: var(--text-disabled);
51
+ --context-menu-item-cursor-disabled: not-allowed;
52
+ --context-menu-item-opacity-disabled: 0.5;
53
+
54
+ /* ============================================
55
+ CHECKBOX & RADIO ITEM INDICATOR
56
+ ============================================ */
57
+
58
+ --context-menu-item-indicator-width: 16px;
59
+ --context-menu-item-indicator-height: 16px;
60
+ --context-menu-item-indicator-color: var(--theme-primary-700);
61
+ --context-menu-item-indicator-font-size: 12px;
62
+
63
+ /* ============================================
64
+ GROUP
65
+ ============================================ */
66
+
67
+ --context-menu-group-padding: 0;
68
+
69
+ /* ============================================
70
+ GROUP LABEL
71
+ ============================================ */
72
+
73
+ --context-menu-group-label-padding-block-start: var(--space-2);
74
+ --context-menu-group-label-padding-block-end: var(--space-1);
75
+ --context-menu-group-label-padding-inline: var(--space-3);
76
+ --context-menu-group-label-font-family: var(--theme-font-minimize-subtitle-label-font-family);
77
+ --context-menu-group-label-font-size: var(--theme-font-minimize-subtitle-label-font-size);
78
+ --context-menu-group-label-font-weight: var(--theme-font-minimize-subtitle-label-font-weight);
79
+ --context-menu-group-label-line-height: var(--theme-font-minimize-subtitle-label-line-height);
80
+ --context-menu-group-label-color: var(--text-secondary);
81
+ --context-menu-group-label-text-transform: var(--theme-font-minimize-subtitle-label-text-transform);
82
+ --context-menu-group-label-letter-spacing: var(--theme-font-minimize-subtitle-label-letter-spacing);
83
+
84
+ /* ============================================
85
+ SEPARATOR
86
+ ============================================ */
87
+
88
+ --context-menu-separator-height: var(--theme-stroke-default);
89
+ --context-menu-separator-background: var(--theme-neutral-300);
90
+ --context-menu-separator-margin-block: var(--space-1);
91
+
92
+ /* ============================================
93
+ SUBMENU TRIGGER
94
+ ============================================ */
95
+
96
+ --context-menu-submenu-trigger-padding-inline-end: var(--space-8);
97
+ --context-menu-submenu-arrow-color: var(--text-tertiary);
98
+ --context-menu-submenu-arrow-font-size: var(--theme-font-base-font-size);
99
+
100
+ /* ============================================
101
+ ARROW (Popup arrow/pointer)
102
+ ============================================ */
103
+
104
+ --context-menu-arrow-width: 10px;
105
+ --context-menu-arrow-height: 10px;
106
+ --context-menu-arrow-fill: var(--theme-surface-canvas);
107
+ --context-menu-arrow-stroke: var(--theme-neutral-300);
108
+ --context-menu-arrow-stroke-width: var(--theme-stroke-default);
109
+ }
110
+
111
+ /* ============================================
112
+ DARK MODE OVERRIDES
113
+ ============================================ */
114
+
115
+ @media (prefers-color-scheme: dark) {
116
+ :root {
117
+ --context-menu-popup-background: var(--theme-neutral-100);
118
+ --context-menu-popup-border: var(--theme-stroke-default) solid var(--theme-neutral-600);
119
+ --context-menu-separator-background: var(--theme-neutral-600);
120
+ --context-menu-arrow-fill: var(--theme-neutral-100);
121
+ --context-menu-arrow-stroke: var(--theme-neutral-600);
122
+ }
123
+ }
124
+
125
+ [data-theme='dark'] {
126
+ --context-menu-popup-background: var(--theme-neutral-100);
127
+ --context-menu-popup-border: var(--theme-stroke-default) solid var(--theme-neutral-600);
128
+ --context-menu-separator-background: var(--theme-neutral-600);
129
+ --context-menu-arrow-fill: var(--theme-neutral-100);
130
+ --context-menu-arrow-stroke: var(--theme-neutral-600);
131
+ }
@@ -0,0 +1,91 @@
1
+ /* Dialog Component Tokens - Mojave Theme */
2
+
3
+ :root {
4
+ /* ============================================
5
+ BACKDROP
6
+ ============================================ */
7
+
8
+ --dialog-backdrop-background: color-mix(in srgb, var(--theme-overlay-base) 50%, transparent);
9
+ --dialog-backdrop-z-index: 1000;
10
+ --dialog-backdrop-animation-duration: 0.2s;
11
+ --dialog-backdrop-animation-easing: ease-out;
12
+
13
+ /* ============================================
14
+ POPUP
15
+ ============================================ */
16
+
17
+ --dialog-popup-width: 90vw;
18
+ --dialog-popup-max-width: 500px;
19
+ --dialog-popup-max-height: 90vh;
20
+ --dialog-popup-background: var(--theme-surface-canvas);
21
+ --dialog-popup-border-width: var(--theme-stroke-default);
22
+ --dialog-popup-border-color: var(--theme-neutral-300);
23
+ --dialog-popup-border-radius: var(--theme-radius-surface);
24
+ --dialog-popup-box-shadow: var(--shadow-xl);
25
+ --dialog-popup-padding: var(--space-6);
26
+ --dialog-popup-gap: var(--space-4);
27
+ --dialog-popup-z-index: 1001;
28
+ --dialog-popup-animation-duration: 0.2s;
29
+ --dialog-popup-animation-easing: ease-out;
30
+
31
+ /* ============================================
32
+ TITLE — display xl
33
+ ============================================ */
34
+
35
+ --dialog-title-font-family: var(--theme-maximize-xl-font-family);
36
+ --dialog-title-font-size: var(--theme-maximize-xl-font-size);
37
+ --dialog-title-font-weight: var(--theme-maximize-xl-font-weight);
38
+ --dialog-title-line-height: var(--theme-maximize-xl-line-height);
39
+ --dialog-title-letter-spacing: var(--theme-maximize-xl-letter-spacing);
40
+ --dialog-title-color: var(--text-primary);
41
+
42
+ /* ============================================
43
+ DESCRIPTION — body
44
+ ============================================ */
45
+
46
+ --dialog-description-font-family: var(--theme-font-base-font-family);
47
+ --dialog-description-font-size: var(--theme-font-base-font-size);
48
+ --dialog-description-font-weight: var(--theme-font-base-font-weight);
49
+ --dialog-description-line-height: var(--theme-font-base-line-height);
50
+ --dialog-description-letter-spacing: var(--theme-font-base-letter-spacing);
51
+ --dialog-description-color: var(--text-secondary);
52
+
53
+ /* ============================================
54
+ CONTENT (scrollable area)
55
+ ============================================ */
56
+
57
+ --dialog-content-margin: var(--space-4) 0;
58
+ --dialog-content-padding-right: var(--space-2);
59
+
60
+ /* ============================================
61
+ FORM (when form is inside dialog)
62
+ ============================================ */
63
+
64
+ --dialog-form-gap: var(--space-4);
65
+ --dialog-form-margin: var(--space-4) 0;
66
+
67
+ /* ============================================
68
+ ACTIONS
69
+ ============================================ */
70
+
71
+ --dialog-actions-display: flex;
72
+ --dialog-actions-gap: var(--space-3);
73
+ --dialog-actions-justify-content: flex-end;
74
+ --dialog-actions-margin-top: var(--space-6);
75
+ }
76
+
77
+ /* ============================================
78
+ DARK MODE OVERRIDES
79
+ ============================================ */
80
+
81
+ @media (prefers-color-scheme: dark) {
82
+ :root {
83
+ --dialog-popup-background: var(--theme-neutral-50);
84
+ --dialog-popup-border-color: var(--theme-neutral-600);
85
+ }
86
+ }
87
+
88
+ [data-theme='dark'] {
89
+ --dialog-popup-background: var(--theme-neutral-50);
90
+ --dialog-popup-border-color: var(--theme-neutral-600);
91
+ }
@@ -0,0 +1,16 @@
1
+ /* Dropdown Component Tokens - Mojave Theme */
2
+
3
+ :root {
4
+ /* ============================================
5
+ DROPDOWN TOKENS
6
+ ============================================ */
7
+
8
+ --dropdown-bg: var(--surface-overlay);
9
+ --dropdown-border-color: var(--border-default);
10
+ --dropdown-border-radius: var(--theme-radius-surface);
11
+ --dropdown-shadow: var(--shadow-lg);
12
+ --dropdown-padding: var(--space-2);
13
+ --dropdown-item-padding-block: var(--space-2);
14
+ --dropdown-item-padding-inline: var(--space-inline-sm);
15
+ --dropdown-item-border-radius: var(--theme-radius-item);
16
+ }