contain-css-svelte 1.1.4 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Card.svelte +60 -10
- package/dist/controls/Button.svelte +72 -12
- package/dist/controls/ButtonLink.svelte +89 -15
- package/dist/controls/Checkbox.svelte +24 -4
- package/dist/controls/Input.svelte +12 -2
- package/dist/controls/Input.svelte.d.ts +1 -1
- package/dist/controls/MiniButton.svelte +84 -14
- package/dist/controls/Option.svelte +3 -3
- package/dist/controls/RadioButton.svelte +24 -4
- package/dist/controls/Select.svelte +28 -7
- package/dist/controls/Slider.svelte +5 -1
- package/dist/controls/TabItem.svelte +24 -4
- package/dist/controls/Toggle.svelte +24 -4
- package/dist/cssprops.js +3 -0
- package/dist/dropdowns/DropdownMenu.svelte +74 -35
- package/dist/layout/Accordion.svelte +48 -8
- package/dist/layout/Bar.svelte +28 -6
- package/dist/layout/Container.svelte +12 -2
- package/dist/layout/Container.svelte.d.ts +6 -4
- package/dist/layout/DataList.svelte +12 -2
- package/dist/layout/DataListItem.svelte +13 -3
- package/dist/layout/Fieldset.svelte +24 -4
- package/dist/layout/Form.svelte +12 -2
- package/dist/layout/FormProvider.svelte +3 -1
- package/dist/layout/GridLayout.svelte +1 -1
- package/dist/layout/Hero.svelte +12 -2
- package/dist/layout/Inline.svelte +5 -1
- package/dist/layout/MenuList.svelte +48 -8
- package/dist/layout/Page.svelte +53 -5
- package/dist/layout/ResponsiveText.svelte +1 -1
- package/dist/layout/ResponsiveText.svelte.d.ts +2 -0
- package/dist/layout/Sidebar.svelte +82 -17
- package/dist/layout/SplitPane.svelte +3 -3
- package/dist/layout/Stack.svelte +5 -1
- package/dist/layout/TabBar.svelte +14 -5
- package/dist/layout/Table.svelte +81 -21
- package/dist/layout/Tile.svelte +49 -8
- package/dist/misc/CodeInner.svelte +108 -18
- package/dist/misc/Progress.svelte +48 -8
- package/dist/misc/Tag.svelte +88 -22
- package/dist/overlays/Dialog.svelte +14 -4
- package/dist/overlays/Dialog.svelte.d.ts +2 -2
- package/dist/overlays/Tooltip.svelte +77 -29
- package/dist/overlays/Tooltip.svelte.d.ts +1 -0
- package/dist/review/loadReviewAppPage.d.ts +1 -1
- package/dist/review/scenarios/IncredibleAppShell.svelte +44 -37
- package/dist/review/scenarios/LaunchStudio.svelte +108 -83
- package/dist/review/scenarios/LayoutWorkbench.svelte +49 -34
- package/dist/review/scenarios/TableWorkbench.svelte +82 -74
- package/dist/review/scenarios/VisualSystemBoard.svelte +387 -0
- package/dist/review/scenarios/VisualSystemBoard.svelte.d.ts +3 -0
- package/dist/review/scenarios.d.ts +8 -4
- package/dist/review/scenarios.js +9 -4
- package/dist/sass/_color.scss +46 -2
- package/dist/types.d.ts +3 -0
- package/dist/vars/colors.css +1 -1
- package/dist/vars/defaults.css +8 -1
- package/dist/vars/layout.css +7 -0
- package/dist/vars/themes/bootstrap.css +1 -0
- package/package.json +2 -1
|
@@ -30,10 +30,20 @@ const style = $derived(injectVars(restProps, "mini-button", [
|
|
|
30
30
|
*/
|
|
31
31
|
/* Convenience groupings */
|
|
32
32
|
button.primary {
|
|
33
|
-
--_background-color: var(--primary-bg, var(--button-bg, var(--control-bg, var(--bg, unset))));
|
|
34
|
-
--_color: var(--primary-fg, var(--button-fg, var(--control-fg, var(--fg, unset))));
|
|
35
33
|
--link-bg: var(--primary-link-bg, var(--button-link-bg, var(--control-link-bg, inherit)));
|
|
36
34
|
--link-fg: var(--primary-link-fg, var(--button-link-fg, var(--control-link-fg, inherit)));
|
|
35
|
+
--_bg-mix-color: var(--primary-bg-mix-color, var(--button-bg-mix-color, var(--control-bg-mix-color, var(--bg-mix-color, transparent))));
|
|
36
|
+
--_bg-mix-amount: var(--primary-bg-mix-amount, var(--button-bg-mix-amount, var(--control-bg-mix-amount, var(--bg-mix-amount, 0%))));
|
|
37
|
+
--_fg-mix-color: var(--primary-fg-mix-color, var(--button-fg-mix-color, var(--control-fg-mix-color, var(--fg-mix-color, transparent))));
|
|
38
|
+
--_fg-mix-amount: var(--primary-fg-mix-amount, var(--button-fg-mix-amount, var(--control-fg-mix-amount, var(--fg-mix-amount, 0%))));
|
|
39
|
+
--_bg-base: var(--primary-bg, var(--button-bg, var(--control-bg, var(--bg, unset))));
|
|
40
|
+
--_fg-base: var(--primary-fg, var(--button-fg, var(--control-fg, var(--fg, unset))));
|
|
41
|
+
--_background-color: color-mix(
|
|
42
|
+
in srgb,
|
|
43
|
+
var(--_bg-base),
|
|
44
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
45
|
+
);
|
|
46
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
37
47
|
background-color: var(--_background-color);
|
|
38
48
|
color: var(--_color);
|
|
39
49
|
}
|
|
@@ -56,10 +66,20 @@ button {
|
|
|
56
66
|
text-indent: var(--mini-button-indent, var(--button-indent, var(--ui-indent, var(--control-indent, var(--indent, unset)))));
|
|
57
67
|
font-variant: var(--mini-button-font-variant, var(--button-font-variant, var(--ui-font-variant, var(--control-font-variant, var(--font-variant, unset)))));
|
|
58
68
|
text-align: var(--mini-button-text-align, var(--button-text-align, var(--ui-text-align, var(--control-text-align, var(--text-align, unset)))));
|
|
59
|
-
--_background-color: var(--mini-button-bg, var(--button-bg, var(--control-bg, var(--secondary-bg, var(--bg, unset)))));
|
|
60
|
-
--_color: var(--mini-button-fg, var(--button-fg, var(--control-fg, var(--secondary-fg, var(--fg, unset)))));
|
|
61
69
|
--link-bg: var(--mini-button-link-bg, var(--button-link-bg, var(--control-link-bg, var(--secondary-link-bg, inherit))));
|
|
62
70
|
--link-fg: var(--mini-button-link-fg, var(--button-link-fg, var(--control-link-fg, var(--secondary-link-fg, inherit))));
|
|
71
|
+
--_bg-mix-color: var(--mini-button-bg-mix-color, var(--button-bg-mix-color, var(--control-bg-mix-color, var(--secondary-bg-mix-color, var(--bg-mix-color, transparent)))));
|
|
72
|
+
--_bg-mix-amount: var(--mini-button-bg-mix-amount, var(--button-bg-mix-amount, var(--control-bg-mix-amount, var(--secondary-bg-mix-amount, var(--bg-mix-amount, 0%)))));
|
|
73
|
+
--_fg-mix-color: var(--mini-button-fg-mix-color, var(--button-fg-mix-color, var(--control-fg-mix-color, var(--secondary-fg-mix-color, var(--fg-mix-color, transparent)))));
|
|
74
|
+
--_fg-mix-amount: var(--mini-button-fg-mix-amount, var(--button-fg-mix-amount, var(--control-fg-mix-amount, var(--secondary-fg-mix-amount, var(--fg-mix-amount, 0%)))));
|
|
75
|
+
--_bg-base: var(--mini-button-bg, var(--button-bg, var(--control-bg, var(--secondary-bg, var(--bg, unset)))));
|
|
76
|
+
--_fg-base: var(--mini-button-fg, var(--button-fg, var(--control-fg, var(--secondary-fg, var(--fg, unset)))));
|
|
77
|
+
--_background-color: color-mix(
|
|
78
|
+
in srgb,
|
|
79
|
+
var(--_bg-base),
|
|
80
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
81
|
+
);
|
|
82
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
63
83
|
background-color: var(--_background-color);
|
|
64
84
|
color: var(--_color);
|
|
65
85
|
cursor: var(--mini-button-cursor, var(--button-cursor, var(--clickable-cursor, var(--cursor, pointer))));
|
|
@@ -116,46 +136,96 @@ button {
|
|
|
116
136
|
}
|
|
117
137
|
|
|
118
138
|
button.primary {
|
|
119
|
-
--_background-color: var(--primary-bg, var(--button-bg, var(--control-bg, var(--bg, unset))));
|
|
120
|
-
--_color: var(--primary-fg, var(--button-fg, var(--control-fg, var(--fg, unset))));
|
|
121
139
|
--link-bg: var(--primary-link-bg, var(--button-link-bg, var(--control-link-bg, inherit)));
|
|
122
140
|
--link-fg: var(--primary-link-fg, var(--button-link-fg, var(--control-link-fg, inherit)));
|
|
141
|
+
--_bg-mix-color: var(--primary-bg-mix-color, var(--button-bg-mix-color, var(--control-bg-mix-color, var(--bg-mix-color, transparent))));
|
|
142
|
+
--_bg-mix-amount: var(--primary-bg-mix-amount, var(--button-bg-mix-amount, var(--control-bg-mix-amount, var(--bg-mix-amount, 0%))));
|
|
143
|
+
--_fg-mix-color: var(--primary-fg-mix-color, var(--button-fg-mix-color, var(--control-fg-mix-color, var(--fg-mix-color, transparent))));
|
|
144
|
+
--_fg-mix-amount: var(--primary-fg-mix-amount, var(--button-fg-mix-amount, var(--control-fg-mix-amount, var(--fg-mix-amount, 0%))));
|
|
145
|
+
--_bg-base: var(--primary-bg, var(--button-bg, var(--control-bg, var(--bg, unset))));
|
|
146
|
+
--_fg-base: var(--primary-fg, var(--button-fg, var(--control-fg, var(--fg, unset))));
|
|
147
|
+
--_background-color: color-mix(
|
|
148
|
+
in srgb,
|
|
149
|
+
var(--_bg-base),
|
|
150
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
151
|
+
);
|
|
152
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
123
153
|
background-color: var(--_background-color);
|
|
124
154
|
color: var(--_color);
|
|
125
155
|
}
|
|
126
156
|
|
|
127
157
|
button.warning {
|
|
128
|
-
--_background-color: var(--warning-bg, var(--button-bg, var(--control-bg, var(--bg, unset))));
|
|
129
|
-
--_color: var(--warning-fg, var(--button-fg, var(--control-fg, var(--fg, unset))));
|
|
130
158
|
--link-bg: var(--warning-link-bg, var(--button-link-bg, var(--control-link-bg, inherit)));
|
|
131
159
|
--link-fg: var(--warning-link-fg, var(--button-link-fg, var(--control-link-fg, inherit)));
|
|
160
|
+
--_bg-mix-color: var(--warning-bg-mix-color, var(--button-bg-mix-color, var(--control-bg-mix-color, var(--bg-mix-color, transparent))));
|
|
161
|
+
--_bg-mix-amount: var(--warning-bg-mix-amount, var(--button-bg-mix-amount, var(--control-bg-mix-amount, var(--bg-mix-amount, 0%))));
|
|
162
|
+
--_fg-mix-color: var(--warning-fg-mix-color, var(--button-fg-mix-color, var(--control-fg-mix-color, var(--fg-mix-color, transparent))));
|
|
163
|
+
--_fg-mix-amount: var(--warning-fg-mix-amount, var(--button-fg-mix-amount, var(--control-fg-mix-amount, var(--fg-mix-amount, 0%))));
|
|
164
|
+
--_bg-base: var(--warning-bg, var(--button-bg, var(--control-bg, var(--bg, unset))));
|
|
165
|
+
--_fg-base: var(--warning-fg, var(--button-fg, var(--control-fg, var(--fg, unset))));
|
|
166
|
+
--_background-color: color-mix(
|
|
167
|
+
in srgb,
|
|
168
|
+
var(--_bg-base),
|
|
169
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
170
|
+
);
|
|
171
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
132
172
|
background-color: var(--_background-color);
|
|
133
173
|
color: var(--_color);
|
|
134
174
|
}
|
|
135
175
|
|
|
136
176
|
button.danger {
|
|
137
|
-
--_background-color: var(--danger-bg, var(--button-bg, var(--control-bg, var(--bg, unset))));
|
|
138
|
-
--_color: var(--danger-fg, var(--button-fg, var(--control-fg, var(--fg, unset))));
|
|
139
177
|
--link-bg: var(--danger-link-bg, var(--button-link-bg, var(--control-link-bg, inherit)));
|
|
140
178
|
--link-fg: var(--danger-link-fg, var(--button-link-fg, var(--control-link-fg, inherit)));
|
|
179
|
+
--_bg-mix-color: var(--danger-bg-mix-color, var(--button-bg-mix-color, var(--control-bg-mix-color, var(--bg-mix-color, transparent))));
|
|
180
|
+
--_bg-mix-amount: var(--danger-bg-mix-amount, var(--button-bg-mix-amount, var(--control-bg-mix-amount, var(--bg-mix-amount, 0%))));
|
|
181
|
+
--_fg-mix-color: var(--danger-fg-mix-color, var(--button-fg-mix-color, var(--control-fg-mix-color, var(--fg-mix-color, transparent))));
|
|
182
|
+
--_fg-mix-amount: var(--danger-fg-mix-amount, var(--button-fg-mix-amount, var(--control-fg-mix-amount, var(--fg-mix-amount, 0%))));
|
|
183
|
+
--_bg-base: var(--danger-bg, var(--button-bg, var(--control-bg, var(--bg, unset))));
|
|
184
|
+
--_fg-base: var(--danger-fg, var(--button-fg, var(--control-fg, var(--fg, unset))));
|
|
185
|
+
--_background-color: color-mix(
|
|
186
|
+
in srgb,
|
|
187
|
+
var(--_bg-base),
|
|
188
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
189
|
+
);
|
|
190
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
141
191
|
background-color: var(--_background-color);
|
|
142
192
|
color: var(--_color);
|
|
143
193
|
}
|
|
144
194
|
|
|
145
195
|
button.success {
|
|
146
|
-
--_background-color: var(--success-bg, var(--button-bg, var(--control-bg, var(--bg, unset))));
|
|
147
|
-
--_color: var(--success-fg, var(--button-fg, var(--control-fg, var(--fg, unset))));
|
|
148
196
|
--link-bg: var(--success-link-bg, var(--button-link-bg, var(--control-link-bg, inherit)));
|
|
149
197
|
--link-fg: var(--success-link-fg, var(--button-link-fg, var(--control-link-fg, inherit)));
|
|
198
|
+
--_bg-mix-color: var(--success-bg-mix-color, var(--button-bg-mix-color, var(--control-bg-mix-color, var(--bg-mix-color, transparent))));
|
|
199
|
+
--_bg-mix-amount: var(--success-bg-mix-amount, var(--button-bg-mix-amount, var(--control-bg-mix-amount, var(--bg-mix-amount, 0%))));
|
|
200
|
+
--_fg-mix-color: var(--success-fg-mix-color, var(--button-fg-mix-color, var(--control-fg-mix-color, var(--fg-mix-color, transparent))));
|
|
201
|
+
--_fg-mix-amount: var(--success-fg-mix-amount, var(--button-fg-mix-amount, var(--control-fg-mix-amount, var(--fg-mix-amount, 0%))));
|
|
202
|
+
--_bg-base: var(--success-bg, var(--button-bg, var(--control-bg, var(--bg, unset))));
|
|
203
|
+
--_fg-base: var(--success-fg, var(--button-fg, var(--control-fg, var(--fg, unset))));
|
|
204
|
+
--_background-color: color-mix(
|
|
205
|
+
in srgb,
|
|
206
|
+
var(--_bg-base),
|
|
207
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
208
|
+
);
|
|
209
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
150
210
|
background-color: var(--_background-color);
|
|
151
211
|
color: var(--_color);
|
|
152
212
|
}
|
|
153
213
|
|
|
154
214
|
button.info {
|
|
155
|
-
--_background-color: var(--info-bg, var(--button-bg, var(--control-bg, var(--bg, unset))));
|
|
156
|
-
--_color: var(--info-fg, var(--button-fg, var(--control-fg, var(--fg, unset))));
|
|
157
215
|
--link-bg: var(--info-link-bg, var(--button-link-bg, var(--control-link-bg, inherit)));
|
|
158
216
|
--link-fg: var(--info-link-fg, var(--button-link-fg, var(--control-link-fg, inherit)));
|
|
217
|
+
--_bg-mix-color: var(--info-bg-mix-color, var(--button-bg-mix-color, var(--control-bg-mix-color, var(--bg-mix-color, transparent))));
|
|
218
|
+
--_bg-mix-amount: var(--info-bg-mix-amount, var(--button-bg-mix-amount, var(--control-bg-mix-amount, var(--bg-mix-amount, 0%))));
|
|
219
|
+
--_fg-mix-color: var(--info-fg-mix-color, var(--button-fg-mix-color, var(--control-fg-mix-color, var(--fg-mix-color, transparent))));
|
|
220
|
+
--_fg-mix-amount: var(--info-fg-mix-amount, var(--button-fg-mix-amount, var(--control-fg-mix-amount, var(--fg-mix-amount, 0%))));
|
|
221
|
+
--_bg-base: var(--info-bg, var(--button-bg, var(--control-bg, var(--bg, unset))));
|
|
222
|
+
--_fg-base: var(--info-fg, var(--button-fg, var(--control-fg, var(--fg, unset))));
|
|
223
|
+
--_background-color: color-mix(
|
|
224
|
+
in srgb,
|
|
225
|
+
var(--_bg-base),
|
|
226
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
227
|
+
);
|
|
228
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
159
229
|
background-color: var(--_background-color);
|
|
160
230
|
color: var(--_color);
|
|
161
231
|
}</style>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">let { children, value, ...restProps } = $props();
|
|
2
|
-
let template = $state(
|
|
2
|
+
let template = $state();
|
|
3
3
|
// Extract text content from rendered children
|
|
4
|
-
let textContent = $derived(template ? template.textContent : "");
|
|
4
|
+
let textContent = $derived(template ? template.textContent ?? "" : "");
|
|
5
5
|
let htmlContent = $derived(template ? template.innerHTML : "");
|
|
6
6
|
export {};
|
|
7
7
|
</script>
|
|
@@ -10,6 +10,6 @@ export {};
|
|
|
10
10
|
{@html textContent}
|
|
11
11
|
</option>
|
|
12
12
|
|
|
13
|
-
<div bind:this={template} style="display: none;" class="option-template hidden">
|
|
13
|
+
<div bind:this={template} style="display: none;" class="option-template hidden" aria-hidden="true">
|
|
14
14
|
{@render children?.()}
|
|
15
15
|
</div>
|
|
@@ -136,10 +136,20 @@ label.radio-item::before {
|
|
|
136
136
|
content: " ";
|
|
137
137
|
width: var(--radio-button-size, var(--font-size, var(--size, 1em)));
|
|
138
138
|
height: var(--radio-button-size, var(--font-size, var(--size, 1em)));
|
|
139
|
-
--_background-color: var(--radio-button-bg, var(--toggle-bg, var(--inactive-bg, var(--secondary-bg, var(--bg, unset)))));
|
|
140
|
-
--_color: var(--radio-button-fg, var(--toggle-fg, var(--inactive-fg, var(--secondary-fg, var(--fg, unset)))));
|
|
141
139
|
--link-bg: var(--radio-button-link-bg, var(--toggle-link-bg, var(--inactive-link-bg, var(--secondary-link-bg, inherit))));
|
|
142
140
|
--link-fg: var(--radio-button-link-fg, var(--toggle-link-fg, var(--inactive-link-fg, var(--secondary-link-fg, inherit))));
|
|
141
|
+
--_bg-mix-color: var(--radio-button-bg-mix-color, var(--toggle-bg-mix-color, var(--inactive-bg-mix-color, var(--secondary-bg-mix-color, var(--bg-mix-color, transparent)))));
|
|
142
|
+
--_bg-mix-amount: var(--radio-button-bg-mix-amount, var(--toggle-bg-mix-amount, var(--inactive-bg-mix-amount, var(--secondary-bg-mix-amount, var(--bg-mix-amount, 0%)))));
|
|
143
|
+
--_fg-mix-color: var(--radio-button-fg-mix-color, var(--toggle-fg-mix-color, var(--inactive-fg-mix-color, var(--secondary-fg-mix-color, var(--fg-mix-color, transparent)))));
|
|
144
|
+
--_fg-mix-amount: var(--radio-button-fg-mix-amount, var(--toggle-fg-mix-amount, var(--inactive-fg-mix-amount, var(--secondary-fg-mix-amount, var(--fg-mix-amount, 0%)))));
|
|
145
|
+
--_bg-base: var(--radio-button-bg, var(--toggle-bg, var(--inactive-bg, var(--secondary-bg, var(--bg, unset)))));
|
|
146
|
+
--_fg-base: var(--radio-button-fg, var(--toggle-fg, var(--inactive-fg, var(--secondary-fg, var(--fg, unset)))));
|
|
147
|
+
--_background-color: color-mix(
|
|
148
|
+
in srgb,
|
|
149
|
+
var(--_bg-base),
|
|
150
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
151
|
+
);
|
|
152
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
143
153
|
background-color: var(--_background-color);
|
|
144
154
|
color: var(--_color);
|
|
145
155
|
border: var(--radio-button-border, var(--border, 1px solid var(--border-color)));
|
|
@@ -163,10 +173,20 @@ label.radio-item:active::before {
|
|
|
163
173
|
}
|
|
164
174
|
|
|
165
175
|
label.radio-item:has(input:checked)::before {
|
|
166
|
-
--_background-color: var(--radio-button-checked-bg, var(--toggle-on-bg, var(--primary-bg, var(--bg, unset))));
|
|
167
|
-
--_color: var(--radio-button-checked-fg, var(--toggle-on-fg, var(--primary-fg, var(--fg, unset))));
|
|
168
176
|
--link-bg: var(--radio-button-checked-link-bg, var(--toggle-on-link-bg, var(--primary-link-bg, inherit)));
|
|
169
177
|
--link-fg: var(--radio-button-checked-link-fg, var(--toggle-on-link-fg, var(--primary-link-fg, inherit)));
|
|
178
|
+
--_bg-mix-color: var(--radio-button-checked-bg-mix-color, var(--toggle-on-bg-mix-color, var(--primary-bg-mix-color, var(--bg-mix-color, transparent))));
|
|
179
|
+
--_bg-mix-amount: var(--radio-button-checked-bg-mix-amount, var(--toggle-on-bg-mix-amount, var(--primary-bg-mix-amount, var(--bg-mix-amount, 0%))));
|
|
180
|
+
--_fg-mix-color: var(--radio-button-checked-fg-mix-color, var(--toggle-on-fg-mix-color, var(--primary-fg-mix-color, var(--fg-mix-color, transparent))));
|
|
181
|
+
--_fg-mix-amount: var(--radio-button-checked-fg-mix-amount, var(--toggle-on-fg-mix-amount, var(--primary-fg-mix-amount, var(--fg-mix-amount, 0%))));
|
|
182
|
+
--_bg-base: var(--radio-button-checked-bg, var(--toggle-on-bg, var(--primary-bg, var(--bg, unset))));
|
|
183
|
+
--_fg-base: var(--radio-button-checked-fg, var(--toggle-on-fg, var(--primary-fg, var(--fg, unset))));
|
|
184
|
+
--_background-color: color-mix(
|
|
185
|
+
in srgb,
|
|
186
|
+
var(--_bg-base),
|
|
187
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
188
|
+
);
|
|
189
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
170
190
|
background-color: var(--_background-color);
|
|
171
191
|
color: var(--_color);
|
|
172
192
|
border: var(--radio-button-checked-border, var(--toggle-on-border, var(--border, radio-button)));
|
|
@@ -6,9 +6,8 @@ let observer;
|
|
|
6
6
|
let resizeObserver;
|
|
7
7
|
let targetWidth = $state("");
|
|
8
8
|
let optionButtons = $state([]);
|
|
9
|
-
onMount(
|
|
10
|
-
|
|
11
|
-
updateOptions();
|
|
9
|
+
onMount(() => {
|
|
10
|
+
tick().then(() => updateOptions());
|
|
12
11
|
// Observe changes in the select element
|
|
13
12
|
observer = new MutationObserver((mutations) => {
|
|
14
13
|
mutations.forEach((mutation) => {
|
|
@@ -56,6 +55,8 @@ function updateTargetWidth() {
|
|
|
56
55
|
targetWidth = maxWidth ? maxWidth + "px" : "100%"; // || 150; // Fallback width if measurement fails
|
|
57
56
|
}
|
|
58
57
|
function setValue(idx) {
|
|
58
|
+
if (!selectElement)
|
|
59
|
+
return;
|
|
59
60
|
selectElement.selectedIndex = idx;
|
|
60
61
|
selectElement.dispatchEvent(new Event("change", { bubbles: true }));
|
|
61
62
|
activeOption = options[idx];
|
|
@@ -126,10 +127,20 @@ select,
|
|
|
126
127
|
--_padding: var(--select-padding, var(--input-padding, var(--menu-padding, var(--control-padding, var(--surface-padding, var(--padding, 4px))))));
|
|
127
128
|
padding: var(--_padding);
|
|
128
129
|
border-radius: var(--select-square-radius, var(--input-square-radius, var(--menu-square-radius, var(--control-square-radius, var(--surface-square-radius, var(--square-radius, 0))))));
|
|
129
|
-
--_background-color: var(--select-bg, var(--input-bg, var(--menu-bg, var(--control-bg, var(--surface-bg, var(--bg, unset))))));
|
|
130
|
-
--_color: var(--select-fg, var(--input-fg, var(--menu-fg, var(--control-fg, var(--surface-fg, var(--fg, unset))))));
|
|
131
130
|
--link-bg: var(--select-link-bg, var(--input-link-bg, var(--menu-link-bg, var(--control-link-bg, var(--surface-link-bg, inherit)))));
|
|
132
131
|
--link-fg: var(--select-link-fg, var(--input-link-fg, var(--menu-link-fg, var(--control-link-fg, var(--surface-link-fg, inherit)))));
|
|
132
|
+
--_bg-mix-color: var(--select-bg-mix-color, var(--input-bg-mix-color, var(--menu-bg-mix-color, var(--control-bg-mix-color, var(--surface-bg-mix-color, var(--bg-mix-color, transparent))))));
|
|
133
|
+
--_bg-mix-amount: var(--select-bg-mix-amount, var(--input-bg-mix-amount, var(--menu-bg-mix-amount, var(--control-bg-mix-amount, var(--surface-bg-mix-amount, var(--bg-mix-amount, 0%))))));
|
|
134
|
+
--_fg-mix-color: var(--select-fg-mix-color, var(--input-fg-mix-color, var(--menu-fg-mix-color, var(--control-fg-mix-color, var(--surface-fg-mix-color, var(--fg-mix-color, transparent))))));
|
|
135
|
+
--_fg-mix-amount: var(--select-fg-mix-amount, var(--input-fg-mix-amount, var(--menu-fg-mix-amount, var(--control-fg-mix-amount, var(--surface-fg-mix-amount, var(--fg-mix-amount, 0%))))));
|
|
136
|
+
--_bg-base: var(--select-bg, var(--input-bg, var(--menu-bg, var(--control-bg, var(--surface-bg, var(--bg, unset))))));
|
|
137
|
+
--_fg-base: var(--select-fg, var(--input-fg, var(--menu-fg, var(--control-fg, var(--surface-fg, var(--fg, unset))))));
|
|
138
|
+
--_background-color: color-mix(
|
|
139
|
+
in srgb,
|
|
140
|
+
var(--_bg-base),
|
|
141
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
142
|
+
);
|
|
143
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
133
144
|
background-color: var(--_background-color);
|
|
134
145
|
color: var(--_color);
|
|
135
146
|
width: var(--select-width, var(--target-width, var(--dropdown-menu-width, min(12em, 100vw))));
|
|
@@ -179,10 +190,20 @@ button:focus-visible {
|
|
|
179
190
|
}
|
|
180
191
|
|
|
181
192
|
.dropdown-wrapper {
|
|
182
|
-
--_background-color: var(--select-bg, var(--input-bg, var(--menu-bg, var(--control-bg, var(--surface-bg, var(--bg, unset))))));
|
|
183
|
-
--_color: var(--select-fg, var(--input-fg, var(--menu-fg, var(--control-fg, var(--surface-fg, var(--fg, unset))))));
|
|
184
193
|
--link-bg: var(--select-link-bg, var(--input-link-bg, var(--menu-link-bg, var(--control-link-bg, var(--surface-link-bg, inherit)))));
|
|
185
194
|
--link-fg: var(--select-link-fg, var(--input-link-fg, var(--menu-link-fg, var(--control-link-fg, var(--surface-link-fg, inherit)))));
|
|
195
|
+
--_bg-mix-color: var(--select-bg-mix-color, var(--input-bg-mix-color, var(--menu-bg-mix-color, var(--control-bg-mix-color, var(--surface-bg-mix-color, var(--bg-mix-color, transparent))))));
|
|
196
|
+
--_bg-mix-amount: var(--select-bg-mix-amount, var(--input-bg-mix-amount, var(--menu-bg-mix-amount, var(--control-bg-mix-amount, var(--surface-bg-mix-amount, var(--bg-mix-amount, 0%))))));
|
|
197
|
+
--_fg-mix-color: var(--select-fg-mix-color, var(--input-fg-mix-color, var(--menu-fg-mix-color, var(--control-fg-mix-color, var(--surface-fg-mix-color, var(--fg-mix-color, transparent))))));
|
|
198
|
+
--_fg-mix-amount: var(--select-fg-mix-amount, var(--input-fg-mix-amount, var(--menu-fg-mix-amount, var(--control-fg-mix-amount, var(--surface-fg-mix-amount, var(--fg-mix-amount, 0%))))));
|
|
199
|
+
--_bg-base: var(--select-bg, var(--input-bg, var(--menu-bg, var(--control-bg, var(--surface-bg, var(--bg, unset))))));
|
|
200
|
+
--_fg-base: var(--select-fg, var(--input-fg, var(--menu-fg, var(--control-fg, var(--surface-fg, var(--fg, unset))))));
|
|
201
|
+
--_background-color: color-mix(
|
|
202
|
+
in srgb,
|
|
203
|
+
var(--_bg-base),
|
|
204
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
205
|
+
);
|
|
206
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
186
207
|
background-color: var(--_background-color);
|
|
187
208
|
color: var(--_color);
|
|
188
209
|
--menu-item-justify: var(--select-menu-item-justify, flex-start);
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
<script lang="ts">import { injectVars } from "../util";
|
|
2
2
|
let { value = $bindable(0), min = 0, max = 100, step = 1, ...restProps } = $props();
|
|
3
|
-
const
|
|
3
|
+
const inlineStyle = $derived(restProps.style);
|
|
4
|
+
const elementProps = $derived.by(() => {
|
|
5
|
+
const { style: _, ...rest } = restProps;
|
|
6
|
+
return rest;
|
|
7
|
+
});
|
|
4
8
|
const normalizedMin = $derived(Number.isFinite(min) ? min : 0);
|
|
5
9
|
const normalizedMax = $derived(Number.isFinite(max) && max > normalizedMin ? max : normalizedMin + 1);
|
|
6
10
|
const clampedValue = $derived(Math.min(Math.max(Number(value) || 0, normalizedMin), normalizedMax));
|
|
@@ -23,10 +23,20 @@ const style = $derived(injectVars(restProps, "tab", ["bg", "fg", "padding", "wid
|
|
|
23
23
|
|
|
24
24
|
.tab > :global(button),
|
|
25
25
|
.tab > :global(div > button) {
|
|
26
|
-
--_background-color: var(--tab-bg, var(--button-bg, var(--control-bg, var(--secondary-bg, var(--bg, unset)))));
|
|
27
|
-
--_color: var(--tab-fg, var(--button-fg, var(--control-fg, var(--secondary-fg, var(--fg, unset)))));
|
|
28
26
|
--link-bg: var(--tab-link-bg, var(--button-link-bg, var(--control-link-bg, var(--secondary-link-bg, inherit))));
|
|
29
27
|
--link-fg: var(--tab-link-fg, var(--button-link-fg, var(--control-link-fg, var(--secondary-link-fg, inherit))));
|
|
28
|
+
--_bg-mix-color: var(--tab-bg-mix-color, var(--button-bg-mix-color, var(--control-bg-mix-color, var(--secondary-bg-mix-color, var(--bg-mix-color, transparent)))));
|
|
29
|
+
--_bg-mix-amount: var(--tab-bg-mix-amount, var(--button-bg-mix-amount, var(--control-bg-mix-amount, var(--secondary-bg-mix-amount, var(--bg-mix-amount, 0%)))));
|
|
30
|
+
--_fg-mix-color: var(--tab-fg-mix-color, var(--button-fg-mix-color, var(--control-fg-mix-color, var(--secondary-fg-mix-color, var(--fg-mix-color, transparent)))));
|
|
31
|
+
--_fg-mix-amount: var(--tab-fg-mix-amount, var(--button-fg-mix-amount, var(--control-fg-mix-amount, var(--secondary-fg-mix-amount, var(--fg-mix-amount, 0%)))));
|
|
32
|
+
--_bg-base: var(--tab-bg, var(--button-bg, var(--control-bg, var(--secondary-bg, var(--bg, unset)))));
|
|
33
|
+
--_fg-base: var(--tab-fg, var(--button-fg, var(--control-fg, var(--secondary-fg, var(--fg, unset)))));
|
|
34
|
+
--_background-color: color-mix(
|
|
35
|
+
in srgb,
|
|
36
|
+
var(--_bg-base),
|
|
37
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
38
|
+
);
|
|
39
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
30
40
|
background-color: var(--_background-color);
|
|
31
41
|
color: var(--_color);
|
|
32
42
|
box-sizing: border-box;
|
|
@@ -75,10 +85,20 @@ const style = $derived(injectVars(restProps, "tab", ["bg", "fg", "padding", "wid
|
|
|
75
85
|
|
|
76
86
|
.tab.active > :global(button),
|
|
77
87
|
.tab.active > :global(div > button) {
|
|
78
|
-
--_background-color: var(--tab-active-bg, var(--primary-bg, var(--tab-bg, var(--button-bg, var(--control-bg, var(--secondary-bg, var(--bg, unset)))))));
|
|
79
|
-
--_color: var(--tab-active-fg, var(--primary-fg, var(--tab-fg, var(--button-fg, var(--control-fg, var(--secondary-fg, var(--fg, unset)))))));
|
|
80
88
|
--link-bg: var(--tab-active-link-bg, var(--primary-link-bg, var(--tab-link-bg, var(--button-link-bg, var(--control-link-bg, var(--secondary-link-bg, inherit))))));
|
|
81
89
|
--link-fg: var(--tab-active-link-fg, var(--primary-link-fg, var(--tab-link-fg, var(--button-link-fg, var(--control-link-fg, var(--secondary-link-fg, inherit))))));
|
|
90
|
+
--_bg-mix-color: var(--tab-active-bg-mix-color, var(--primary-bg-mix-color, var(--tab-bg-mix-color, var(--button-bg-mix-color, var(--control-bg-mix-color, var(--secondary-bg-mix-color, var(--bg-mix-color, transparent)))))));
|
|
91
|
+
--_bg-mix-amount: var(--tab-active-bg-mix-amount, var(--primary-bg-mix-amount, var(--tab-bg-mix-amount, var(--button-bg-mix-amount, var(--control-bg-mix-amount, var(--secondary-bg-mix-amount, var(--bg-mix-amount, 0%)))))));
|
|
92
|
+
--_fg-mix-color: var(--tab-active-fg-mix-color, var(--primary-fg-mix-color, var(--tab-fg-mix-color, var(--button-fg-mix-color, var(--control-fg-mix-color, var(--secondary-fg-mix-color, var(--fg-mix-color, transparent)))))));
|
|
93
|
+
--_fg-mix-amount: var(--tab-active-fg-mix-amount, var(--primary-fg-mix-amount, var(--tab-fg-mix-amount, var(--button-fg-mix-amount, var(--control-fg-mix-amount, var(--secondary-fg-mix-amount, var(--fg-mix-amount, 0%)))))));
|
|
94
|
+
--_bg-base: var(--tab-active-bg, var(--primary-bg, var(--tab-bg, var(--button-bg, var(--control-bg, var(--secondary-bg, var(--bg, unset)))))));
|
|
95
|
+
--_fg-base: var(--tab-active-fg, var(--primary-fg, var(--tab-fg, var(--button-fg, var(--control-fg, var(--secondary-fg, var(--fg, unset)))))));
|
|
96
|
+
--_background-color: color-mix(
|
|
97
|
+
in srgb,
|
|
98
|
+
var(--_bg-base),
|
|
99
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
100
|
+
);
|
|
101
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
82
102
|
background-color: var(--_background-color);
|
|
83
103
|
color: var(--_color);
|
|
84
104
|
font-family: var(--tab-active-font-family, var(--tab-font-family, var(--button-font-family, var(--ui-font-family, var(--control-font-family, var(--secondary-font-family, var(--font-family, unset)))))));
|
|
@@ -79,10 +79,20 @@ const effectiveOnLabel = $derived(onLabel || children);
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
.toggle-track {
|
|
82
|
-
--_background-color: var(--toggle-bg, var(--toggle-off-bg, var(--inactive-bg, var(--secondary-bg, var(--bg, unset)))));
|
|
83
|
-
--_color: var(--toggle-fg, var(--toggle-off-fg, var(--inactive-fg, var(--secondary-fg, var(--fg, unset)))));
|
|
84
82
|
--link-bg: var(--toggle-link-bg, var(--toggle-off-link-bg, var(--inactive-link-bg, var(--secondary-link-bg, inherit))));
|
|
85
83
|
--link-fg: var(--toggle-link-fg, var(--toggle-off-link-fg, var(--inactive-link-fg, var(--secondary-link-fg, inherit))));
|
|
84
|
+
--_bg-mix-color: var(--toggle-bg-mix-color, var(--toggle-off-bg-mix-color, var(--inactive-bg-mix-color, var(--secondary-bg-mix-color, var(--bg-mix-color, transparent)))));
|
|
85
|
+
--_bg-mix-amount: var(--toggle-bg-mix-amount, var(--toggle-off-bg-mix-amount, var(--inactive-bg-mix-amount, var(--secondary-bg-mix-amount, var(--bg-mix-amount, 0%)))));
|
|
86
|
+
--_fg-mix-color: var(--toggle-fg-mix-color, var(--toggle-off-fg-mix-color, var(--inactive-fg-mix-color, var(--secondary-fg-mix-color, var(--fg-mix-color, transparent)))));
|
|
87
|
+
--_fg-mix-amount: var(--toggle-fg-mix-amount, var(--toggle-off-fg-mix-amount, var(--inactive-fg-mix-amount, var(--secondary-fg-mix-amount, var(--fg-mix-amount, 0%)))));
|
|
88
|
+
--_bg-base: var(--toggle-bg, var(--toggle-off-bg, var(--inactive-bg, var(--secondary-bg, var(--bg, unset)))));
|
|
89
|
+
--_fg-base: var(--toggle-fg, var(--toggle-off-fg, var(--inactive-fg, var(--secondary-fg, var(--fg, unset)))));
|
|
90
|
+
--_background-color: color-mix(
|
|
91
|
+
in srgb,
|
|
92
|
+
var(--_bg-base),
|
|
93
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
94
|
+
);
|
|
95
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
86
96
|
background-color: var(--_background-color);
|
|
87
97
|
color: var(--_color);
|
|
88
98
|
display: block;
|
|
@@ -138,10 +148,20 @@ input[type=checkbox] {
|
|
|
138
148
|
}
|
|
139
149
|
|
|
140
150
|
.toggle:has(input:checked) .toggle-track {
|
|
141
|
-
--_background-color: var(--toggle-on-bg, var(--primary-bg, var(--toggle-bg, var(--bg, unset))));
|
|
142
|
-
--_color: var(--toggle-on-fg, var(--primary-fg, var(--toggle-fg, var(--fg, unset))));
|
|
143
151
|
--link-bg: var(--toggle-on-link-bg, var(--primary-link-bg, var(--toggle-link-bg, inherit)));
|
|
144
152
|
--link-fg: var(--toggle-on-link-fg, var(--primary-link-fg, var(--toggle-link-fg, inherit)));
|
|
153
|
+
--_bg-mix-color: var(--toggle-on-bg-mix-color, var(--primary-bg-mix-color, var(--toggle-bg-mix-color, var(--bg-mix-color, transparent))));
|
|
154
|
+
--_bg-mix-amount: var(--toggle-on-bg-mix-amount, var(--primary-bg-mix-amount, var(--toggle-bg-mix-amount, var(--bg-mix-amount, 0%))));
|
|
155
|
+
--_fg-mix-color: var(--toggle-on-fg-mix-color, var(--primary-fg-mix-color, var(--toggle-fg-mix-color, var(--fg-mix-color, transparent))));
|
|
156
|
+
--_fg-mix-amount: var(--toggle-on-fg-mix-amount, var(--primary-fg-mix-amount, var(--toggle-fg-mix-amount, var(--fg-mix-amount, 0%))));
|
|
157
|
+
--_bg-base: var(--toggle-on-bg, var(--primary-bg, var(--toggle-bg, var(--bg, unset))));
|
|
158
|
+
--_fg-base: var(--toggle-on-fg, var(--primary-fg, var(--toggle-fg, var(--fg, unset))));
|
|
159
|
+
--_background-color: color-mix(
|
|
160
|
+
in srgb,
|
|
161
|
+
var(--_bg-base),
|
|
162
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
163
|
+
);
|
|
164
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
145
165
|
background-color: var(--_background-color);
|
|
146
166
|
color: var(--_color);
|
|
147
167
|
border: var(--toggle-on-border, var(--toggle-border, var(--border, 1px solid transparent)));
|
package/dist/cssprops.js
CHANGED
|
@@ -41,8 +41,10 @@ const miscComponentProps = [
|
|
|
41
41
|
"--split-pane-right-width",
|
|
42
42
|
"--split-pane-left-width",
|
|
43
43
|
"--sidebar-collapse",
|
|
44
|
+
"--sidebar-compact-side-padding",
|
|
44
45
|
"--sidebar-expand",
|
|
45
46
|
"--sidebar-transition",
|
|
47
|
+
"--sidebar-mobile-icon-filter",
|
|
46
48
|
"--resizer-grab-width",
|
|
47
49
|
"--resizer-grab-height",
|
|
48
50
|
"--resizer-color",
|
|
@@ -124,6 +126,7 @@ const components = [
|
|
|
124
126
|
...[
|
|
125
127
|
"button",
|
|
126
128
|
"mini-button",
|
|
129
|
+
"menu-trigger",
|
|
127
130
|
"menu-item",
|
|
128
131
|
"dropdown-menu",
|
|
129
132
|
"select",
|
|
@@ -13,7 +13,16 @@ let buttonElement = $state();
|
|
|
13
13
|
let dropdownContentElement = $state();
|
|
14
14
|
let isOpen = $state(false);
|
|
15
15
|
// Style injection
|
|
16
|
-
const style = $derived(injectVars(props, "menu", [
|
|
16
|
+
const style = $derived(injectVars(props, "menu", [
|
|
17
|
+
"bg",
|
|
18
|
+
"fg",
|
|
19
|
+
"padding",
|
|
20
|
+
"width",
|
|
21
|
+
"height",
|
|
22
|
+
"triggerBg",
|
|
23
|
+
"triggerFg",
|
|
24
|
+
"triggerPadding",
|
|
25
|
+
]));
|
|
17
26
|
let dropdownTop = $state(0);
|
|
18
27
|
let dropdownLeft = $state(0);
|
|
19
28
|
let dropdownMaxHeight = $state(0);
|
|
@@ -34,13 +43,13 @@ function computePosition() {
|
|
|
34
43
|
}
|
|
35
44
|
dropdownMaxHeight = window.innerHeight - dropdownTop;
|
|
36
45
|
}
|
|
37
|
-
function triggerMenu(
|
|
46
|
+
function triggerMenu(_e) {
|
|
38
47
|
if (!isOpen) {
|
|
39
48
|
injectVariablesIntoDropdown();
|
|
40
49
|
computePosition();
|
|
41
50
|
}
|
|
42
51
|
}
|
|
43
|
-
function dismissPopover(
|
|
52
|
+
function dismissPopover(_e) {
|
|
44
53
|
if (!popoverDiv)
|
|
45
54
|
return;
|
|
46
55
|
popoverDiv.hidePopover();
|
|
@@ -63,7 +72,7 @@ function handleKeystroke(event) {
|
|
|
63
72
|
else {
|
|
64
73
|
searchString = "";
|
|
65
74
|
if (event.key === "Escape") {
|
|
66
|
-
popoverDiv
|
|
75
|
+
popoverDiv?.hidePopover();
|
|
67
76
|
}
|
|
68
77
|
else if (event.key === "ArrowDown" || event.key === "ArrowUp") {
|
|
69
78
|
event.preventDefault(); // Prevent default to stop scrolling the page
|
|
@@ -87,7 +96,7 @@ function maybeFocusMatch(searchString) {
|
|
|
87
96
|
}
|
|
88
97
|
}
|
|
89
98
|
function navigateMenu(direction) {
|
|
90
|
-
if (!popoverDiv
|
|
99
|
+
if (!popoverDiv?.matches(":popover-open") && buttonElement) {
|
|
91
100
|
buttonElement.click();
|
|
92
101
|
return;
|
|
93
102
|
}
|
|
@@ -171,48 +180,58 @@ let popoverDiv = $state();
|
|
|
171
180
|
*/
|
|
172
181
|
/* Convenience groupings */
|
|
173
182
|
button {
|
|
174
|
-
--
|
|
175
|
-
--
|
|
176
|
-
--
|
|
177
|
-
--
|
|
183
|
+
--link-bg: var(--menu-trigger-link-bg, var(--menu-link-bg, var(--button-link-bg, var(--surface-link-bg, inherit))));
|
|
184
|
+
--link-fg: var(--menu-trigger-link-fg, var(--menu-link-fg, var(--button-link-fg, var(--surface-link-fg, inherit))));
|
|
185
|
+
--_bg-mix-color: var(--menu-trigger-bg-mix-color, var(--menu-bg-mix-color, var(--button-bg-mix-color, var(--surface-bg-mix-color, var(--bg-mix-color, transparent)))));
|
|
186
|
+
--_bg-mix-amount: var(--menu-trigger-bg-mix-amount, var(--menu-bg-mix-amount, var(--button-bg-mix-amount, var(--surface-bg-mix-amount, var(--bg-mix-amount, 0%)))));
|
|
187
|
+
--_fg-mix-color: var(--menu-trigger-fg-mix-color, var(--menu-fg-mix-color, var(--button-fg-mix-color, var(--surface-fg-mix-color, var(--fg-mix-color, transparent)))));
|
|
188
|
+
--_fg-mix-amount: var(--menu-trigger-fg-mix-amount, var(--menu-fg-mix-amount, var(--button-fg-mix-amount, var(--surface-fg-mix-amount, var(--fg-mix-amount, 0%)))));
|
|
189
|
+
--_bg-base: var(--menu-trigger-bg, var(--menu-bg, var(--button-bg, var(--surface-bg, var(--bg, unset)))));
|
|
190
|
+
--_fg-base: var(--menu-trigger-fg, var(--menu-fg, var(--button-fg, var(--surface-fg, var(--fg, unset)))));
|
|
191
|
+
--_background-color: color-mix(
|
|
192
|
+
in srgb,
|
|
193
|
+
var(--_bg-base),
|
|
194
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
195
|
+
);
|
|
196
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
178
197
|
background-color: var(--_background-color);
|
|
179
198
|
color: var(--_color);
|
|
180
199
|
box-sizing: border-box;
|
|
181
|
-
border: var(--menu-border, var(--button-border, var(--surface-border, var(--border, inherit))));
|
|
182
|
-
border-width: var(--menu-border-width, var(--button-border-width, var(--surface-border-width, var(--__missing-border-width))));
|
|
183
|
-
border-style: var(--menu-border-style, var(--button-border-style, var(--surface-border-style, var(--__missing-border-style))));
|
|
184
|
-
border-color: var(--menu-border-color, var(--button-border-color, var(--surface-border-color, var(--__missing-border-color))));
|
|
185
|
-
border-top: var(--menu-border-top, var(--button-border-top, var(--surface-border-top, var(--border-top, var(--menu-border, var(--button-border, var(--surface-border, var(--border, none))))))));
|
|
186
|
-
border-right: var(--menu-border-right, var(--button-border-right, var(--surface-border-right, var(--border-right, var(--menu-border, var(--button-border, var(--surface-border, var(--border, none))))))));
|
|
187
|
-
border-bottom: var(--menu-border-bottom, var(--button-border-bottom, var(--surface-border-bottom, var(--border-bottom, var(--menu-border, var(--button-border, var(--surface-border, var(--border, none))))))));
|
|
188
|
-
border-left: var(--menu-border-left, var(--button-border-left, var(--surface-border-left, var(--border-left, var(--menu-border, var(--button-border, var(--surface-border, var(--border, none))))))));
|
|
189
|
-
--_padding: var(--menu-padding, var(--button-padding, var(--surface-padding, var(--padding, 4px))));
|
|
200
|
+
border: var(--menu-trigger-border, var(--menu-border, var(--button-border, var(--surface-border, var(--border, inherit)))));
|
|
201
|
+
border-width: var(--menu-trigger-border-width, var(--menu-border-width, var(--button-border-width, var(--surface-border-width, var(--__missing-border-width)))));
|
|
202
|
+
border-style: var(--menu-trigger-border-style, var(--menu-border-style, var(--button-border-style, var(--surface-border-style, var(--__missing-border-style)))));
|
|
203
|
+
border-color: var(--menu-trigger-border-color, var(--menu-border-color, var(--button-border-color, var(--surface-border-color, var(--__missing-border-color)))));
|
|
204
|
+
border-top: var(--menu-trigger-border-top, var(--menu-border-top, var(--button-border-top, var(--surface-border-top, var(--border-top, var(--menu-trigger-border, var(--menu-border, var(--button-border, var(--surface-border, var(--border, none))))))))));
|
|
205
|
+
border-right: var(--menu-trigger-border-right, var(--menu-border-right, var(--button-border-right, var(--surface-border-right, var(--border-right, var(--menu-trigger-border, var(--menu-border, var(--button-border, var(--surface-border, var(--border, none))))))))));
|
|
206
|
+
border-bottom: var(--menu-trigger-border-bottom, var(--menu-border-bottom, var(--button-border-bottom, var(--surface-border-bottom, var(--border-bottom, var(--menu-trigger-border, var(--menu-border, var(--button-border, var(--surface-border, var(--border, none))))))))));
|
|
207
|
+
border-left: var(--menu-trigger-border-left, var(--menu-border-left, var(--button-border-left, var(--surface-border-left, var(--border-left, var(--menu-trigger-border, var(--menu-border, var(--button-border, var(--surface-border, var(--border, none))))))))));
|
|
208
|
+
--_padding: var(--menu-trigger-padding, var(--menu-padding, var(--button-padding, var(--surface-padding, var(--padding, 4px)))));
|
|
190
209
|
padding: var(--_padding);
|
|
191
|
-
border-radius: var(--menu-square-radius, var(--button-square-radius, var(--surface-square-radius, var(--square-radius, 0))));
|
|
192
|
-
cursor: var(--menu-cursor, var(--button-cursor, var(--control-cursor, var(--cursor, pointer))));
|
|
193
|
-
transition: filter var(--menu-transition, var(--button-transition, var(--control-transition, var(--transition, 300ms)))), background-color var(--menu-transition, var(--button-transition, var(--control-transition, var(--transition, 300ms)))), border-color var(--menu-transition, var(--button-transition, var(--control-transition, var(--transition, 300ms)))), box-shadow var(--menu-transition, var(--button-transition, var(--control-transition, var(--transition, 300ms)))), transform var(--menu-transition, var(--button-transition, var(--control-transition, var(--transition, 300ms))));
|
|
210
|
+
border-radius: var(--menu-trigger-square-radius, var(--menu-square-radius, var(--button-square-radius, var(--surface-square-radius, var(--square-radius, 0)))));
|
|
211
|
+
cursor: var(--menu-trigger-cursor, var(--menu-cursor, var(--button-cursor, var(--control-cursor, var(--cursor, pointer)))));
|
|
212
|
+
transition: filter var(--menu-trigger-transition, var(--menu-transition, var(--button-transition, var(--control-transition, var(--transition, 300ms))))), background-color var(--menu-trigger-transition, var(--menu-transition, var(--button-transition, var(--control-transition, var(--transition, 300ms))))), border-color var(--menu-trigger-transition, var(--menu-transition, var(--button-transition, var(--control-transition, var(--transition, 300ms))))), box-shadow var(--menu-trigger-transition, var(--menu-transition, var(--button-transition, var(--control-transition, var(--transition, 300ms))))), transform var(--menu-trigger-transition, var(--menu-transition, var(--button-transition, var(--control-transition, var(--transition, 300ms)))));
|
|
194
213
|
}
|
|
195
214
|
|
|
196
215
|
button:hover {
|
|
197
|
-
filter: var(--menu-hover-filter, var(--button-hover-filter, var(--control-hover-filter, var(--hover-filter, brightness(1.05)))));
|
|
198
|
-
transform: var(--menu-hover-transform, var(--button-hover-transform, var(--control-hover-transform, var(--hover-transform, none))));
|
|
216
|
+
filter: var(--menu-trigger-hover-filter, var(--menu-hover-filter, var(--button-hover-filter, var(--control-hover-filter, var(--hover-filter, brightness(1.05))))));
|
|
217
|
+
transform: var(--menu-trigger-hover-transform, var(--menu-hover-transform, var(--button-hover-transform, var(--control-hover-transform, var(--hover-transform, none)))));
|
|
199
218
|
background-color: color-mix(in oklch, var(--_background-color) var(--hover-base-color-percentage, 90%), var(--hover-color-mix, white) calc(100% - var(--hover-base-color-percentage, 90%)));
|
|
200
|
-
box-shadow: var(--menu-hover-box-shadow, var(--button-hover-box-shadow, var(--control-hover-box-shadow, var(--hover-box-shadow, var(--_box-shadow, none)))));
|
|
219
|
+
box-shadow: var(--menu-trigger-hover-box-shadow, var(--menu-hover-box-shadow, var(--button-hover-box-shadow, var(--control-hover-box-shadow, var(--hover-box-shadow, var(--_box-shadow, none))))));
|
|
201
220
|
}
|
|
202
221
|
|
|
203
222
|
button:active {
|
|
204
|
-
filter: var(--menu-active-filter, var(--button-active-filter, var(--control-active-filter, var(--active-filter, brightness(0.9)))));
|
|
205
|
-
transform: var(--menu-active-transform, var(--button-active-transform, var(--control-active-transform, var(--active-transform, none))));
|
|
223
|
+
filter: var(--menu-trigger-active-filter, var(--menu-active-filter, var(--button-active-filter, var(--control-active-filter, var(--active-filter, brightness(0.9))))));
|
|
224
|
+
transform: var(--menu-trigger-active-transform, var(--menu-active-transform, var(--button-active-transform, var(--control-active-transform, var(--active-transform, none)))));
|
|
206
225
|
background-color: color-mix(in oklch, var(--_background-color) var(--active-base-color-percentage, 90%), var(--active-color-mix, black) calc(100% - var(--active-base-color-percentage, 90%)));
|
|
207
|
-
box-shadow: var(--menu-active-box-shadow, var(--button-active-box-shadow, var(--control-active-box-shadow, var(--active-box-shadow, var(--_box-shadow, none)))));
|
|
226
|
+
box-shadow: var(--menu-trigger-active-box-shadow, var(--menu-active-box-shadow, var(--button-active-box-shadow, var(--control-active-box-shadow, var(--active-box-shadow, var(--_box-shadow, none))))));
|
|
208
227
|
}
|
|
209
228
|
|
|
210
229
|
button:disabled {
|
|
211
|
-
cursor: var(--menu-disabled-cursor, var(--button-disabled-cursor, var(--control-disabled-cursor, var(--disabled-cursor, not-allowed))));
|
|
212
|
-
transform: var(--menu-disabled-transform, var(--button-disabled-transform, var(--control-disabled-transform, var(--disabled-transform, none))));
|
|
213
|
-
filter: var(--menu-disabled-filter, var(--button-disabled-filter, var(--control-disabled-filter, var(--disabled-filter, grayscale(0.5)))));
|
|
230
|
+
cursor: var(--menu-trigger-disabled-cursor, var(--menu-disabled-cursor, var(--button-disabled-cursor, var(--control-disabled-cursor, var(--disabled-cursor, not-allowed)))));
|
|
231
|
+
transform: var(--menu-trigger-disabled-transform, var(--menu-disabled-transform, var(--button-disabled-transform, var(--control-disabled-transform, var(--disabled-transform, none)))));
|
|
232
|
+
filter: var(--menu-trigger-disabled-filter, var(--menu-disabled-filter, var(--button-disabled-filter, var(--control-disabled-filter, var(--disabled-filter, grayscale(0.5))))));
|
|
214
233
|
background-color: color-mix(in oklch, var(--_background-color) var(--disabled-base-color-percentage, 50%), var(--disabled-color-mix, gray) calc(100% - var(--disabled-base-color-percentage, 50%)));
|
|
215
|
-
box-shadow: var(--menu-disabled-box-shadow, var(--button-disabled-box-shadow, var(--control-disabled-box-shadow, var(--disabled-box-shadow, var(--_box-shadow, none)))));
|
|
234
|
+
box-shadow: var(--menu-trigger-disabled-box-shadow, var(--menu-disabled-box-shadow, var(--button-disabled-box-shadow, var(--control-disabled-box-shadow, var(--disabled-box-shadow, var(--_box-shadow, none))))));
|
|
216
235
|
}
|
|
217
236
|
|
|
218
237
|
button:focus-visible {
|
|
@@ -226,10 +245,20 @@ button {
|
|
|
226
245
|
}
|
|
227
246
|
|
|
228
247
|
.dropdown-content :global(.menu) {
|
|
229
|
-
--_background-color: var(--menu-bg, var(--surface-bg, var(--bg, unset)));
|
|
230
|
-
--_color: var(--menu-fg, var(--surface-fg, var(--fg, unset)));
|
|
231
248
|
--link-bg: var(--menu-link-bg, var(--surface-link-bg, inherit));
|
|
232
249
|
--link-fg: var(--menu-link-fg, var(--surface-link-fg, inherit));
|
|
250
|
+
--_bg-mix-color: var(--menu-bg-mix-color, var(--surface-bg-mix-color, var(--bg-mix-color, transparent)));
|
|
251
|
+
--_bg-mix-amount: var(--menu-bg-mix-amount, var(--surface-bg-mix-amount, var(--bg-mix-amount, 0%)));
|
|
252
|
+
--_fg-mix-color: var(--menu-fg-mix-color, var(--surface-fg-mix-color, var(--fg-mix-color, transparent)));
|
|
253
|
+
--_fg-mix-amount: var(--menu-fg-mix-amount, var(--surface-fg-mix-amount, var(--fg-mix-amount, 0%)));
|
|
254
|
+
--_bg-base: var(--menu-bg, var(--surface-bg, var(--bg, unset)));
|
|
255
|
+
--_fg-base: var(--menu-fg, var(--surface-fg, var(--fg, unset)));
|
|
256
|
+
--_background-color: color-mix(
|
|
257
|
+
in srgb,
|
|
258
|
+
var(--_bg-base),
|
|
259
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
260
|
+
);
|
|
261
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
233
262
|
background-color: var(--_background-color);
|
|
234
263
|
color: var(--_color);
|
|
235
264
|
font-family: var(--menu-font-family, var(--surface-font-family, var(--font-family, unset)));
|
|
@@ -354,10 +383,20 @@ button {
|
|
|
354
383
|
.dropdown-content {
|
|
355
384
|
width: max(var(--dropdown-menu-min-width, 12em), var(--dropdown-menu-width, 12em));
|
|
356
385
|
min-width: var(--dropdown-menu-min-width, 12em);
|
|
357
|
-
--_background-color: var(--dropdown-menu-bg, var(--menu-bg, var(--surface-bg, var(--bg, unset))));
|
|
358
|
-
--_color: var(--dropdown-menu-fg, var(--menu-fg, var(--surface-fg, var(--fg, unset))));
|
|
359
386
|
--link-bg: var(--dropdown-menu-link-bg, var(--menu-link-bg, var(--surface-link-bg, inherit)));
|
|
360
387
|
--link-fg: var(--dropdown-menu-link-fg, var(--menu-link-fg, var(--surface-link-fg, inherit)));
|
|
388
|
+
--_bg-mix-color: var(--dropdown-menu-bg-mix-color, var(--menu-bg-mix-color, var(--surface-bg-mix-color, var(--bg-mix-color, transparent))));
|
|
389
|
+
--_bg-mix-amount: var(--dropdown-menu-bg-mix-amount, var(--menu-bg-mix-amount, var(--surface-bg-mix-amount, var(--bg-mix-amount, 0%))));
|
|
390
|
+
--_fg-mix-color: var(--dropdown-menu-fg-mix-color, var(--menu-fg-mix-color, var(--surface-fg-mix-color, var(--fg-mix-color, transparent))));
|
|
391
|
+
--_fg-mix-amount: var(--dropdown-menu-fg-mix-amount, var(--menu-fg-mix-amount, var(--surface-fg-mix-amount, var(--fg-mix-amount, 0%))));
|
|
392
|
+
--_bg-base: var(--dropdown-menu-bg, var(--menu-bg, var(--surface-bg, var(--bg, unset))));
|
|
393
|
+
--_fg-base: var(--dropdown-menu-fg, var(--menu-fg, var(--surface-fg, var(--fg, unset))));
|
|
394
|
+
--_background-color: color-mix(
|
|
395
|
+
in srgb,
|
|
396
|
+
var(--_bg-base),
|
|
397
|
+
var(--_bg-mix-color) var(--_bg-mix-amount)
|
|
398
|
+
);
|
|
399
|
+
--_color: color-mix(in srgb, var(--_fg-base), var(--_fg-mix-color) var(--_fg-mix-amount));
|
|
361
400
|
background-color: var(--_background-color);
|
|
362
401
|
color: var(--_color);
|
|
363
402
|
--_box-shadow:
|