@zeyos/zx 2.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.
package/dist/zx.css ADDED
@@ -0,0 +1,4946 @@
1
+ /* styles/tokens/global.css */
2
+ :root {
3
+ --zx-gray-0: #ffffff;
4
+ --zx-gray-50: #fafafa;
5
+ --zx-gray-100: #f4f4f5;
6
+ --zx-gray-150: #ececee;
7
+ --zx-gray-200: #e4e4e7;
8
+ --zx-gray-300: #d4d4d8;
9
+ --zx-gray-400: #9f9fa9;
10
+ --zx-gray-500: #71717b;
11
+ --zx-gray-600: #52525c;
12
+ --zx-gray-700: #3f3f47;
13
+ --zx-gray-800: #27272a;
14
+ --zx-gray-900: #18181b;
15
+ --zx-gray-950: #09090b;
16
+ --zx-green-300: #5ee9b5;
17
+ --zx-green-400: #21cc75;
18
+ --zx-green-500: #009966;
19
+ --zx-green-600: #007a55;
20
+ --zx-green-700: #006045;
21
+ --zx-red-400: #ff6467;
22
+ --zx-red-500: #e7000b;
23
+ --zx-red-600: #c10007;
24
+ --zx-amber-400: #ffb900;
25
+ --zx-amber-500: #fe9a00;
26
+ --zx-amber-600: #bb4d00;
27
+ --zx-blue-400: #51a2ff;
28
+ --zx-blue-500: #2b7fff;
29
+ --zx-blue-600: #155dfc;
30
+ --zx-space-1: 4px;
31
+ --zx-space-2: 8px;
32
+ --zx-space-3: 12px;
33
+ --zx-space-4: 16px;
34
+ --zx-space-5: 20px;
35
+ --zx-space-6: 24px;
36
+ --zx-space-7: 32px;
37
+ --zx-space-8: 40px;
38
+ --zx-radius: 0.45rem;
39
+ --zx-radius-sm: calc(var(--zx-radius) - 4px);
40
+ --zx-radius-md: calc(var(--zx-radius) - 2px);
41
+ --zx-radius-lg: var(--zx-radius);
42
+ --zx-radius-xl: calc(var(--zx-radius) + 4px);
43
+ --zx-radius-full: 999px;
44
+ --zx-font-sans:
45
+ Inter,
46
+ "Inter Variable",
47
+ ui-sans-serif,
48
+ system-ui,
49
+ -apple-system,
50
+ "Segoe UI",
51
+ Roboto,
52
+ "Helvetica Neue",
53
+ Arial,
54
+ sans-serif;
55
+ --zx-font-mono:
56
+ "Geist Mono",
57
+ ui-monospace,
58
+ SFMono-Regular,
59
+ "SF Mono",
60
+ Menlo,
61
+ Monaco,
62
+ Consolas,
63
+ monospace;
64
+ --zx-text-xs: 12px;
65
+ --zx-text-sm: 13px;
66
+ --zx-text-md: 14px;
67
+ --zx-text-lg: 16px;
68
+ --zx-text-xl: 18px;
69
+ --zx-text-2xl: 24px;
70
+ --zx-shadow-1: 0 1px 2px 0 rgb(9 9 11 / 5%);
71
+ --zx-shadow-2: 0 1px 3px 0 rgb(9 9 11 / 10%), 0 1px 2px -1px rgb(9 9 11 / 10%);
72
+ --zx-shadow-3: 0 10px 15px -3px rgb(9 9 11 / 10%), 0 4px 6px -4px rgb(9 9 11 / 10%);
73
+ --zx-dur-fast: 120ms;
74
+ --zx-dur-base: 180ms;
75
+ --zx-ease: cubic-bezier(.2, .6, .3, 1);
76
+ }
77
+
78
+ /* styles/tokens/semantic.css */
79
+ :root,
80
+ [data-zx-theme=light] {
81
+ color-scheme: light;
82
+ --zx-color-bg-page: var(--zx-gray-50);
83
+ --zx-color-bg-surface: var(--zx-gray-0);
84
+ --zx-color-bg-raised: var(--zx-gray-0);
85
+ --zx-color-bg-control: var(--zx-gray-0);
86
+ --zx-color-bg-muted: var(--zx-gray-100);
87
+ --zx-color-bg-hover: var(--zx-gray-100);
88
+ --zx-color-bg-selected: color-mix(in srgb, var(--zx-green-600) 10%, var(--zx-gray-0));
89
+ --zx-color-bg-backdrop: color-mix(in srgb, var(--zx-gray-950) 50%, transparent);
90
+ --zx-color-border: var(--zx-gray-200);
91
+ --zx-color-border-strong: var(--zx-gray-300);
92
+ --zx-color-border-control: var(--zx-gray-200);
93
+ --zx-color-text: var(--zx-gray-950);
94
+ --zx-color-text-muted: var(--zx-gray-500);
95
+ --zx-color-text-placeholder: var(--zx-gray-400);
96
+ --zx-color-text-invert: var(--zx-gray-50);
97
+ --zx-color-accent: var(--zx-green-600);
98
+ --zx-color-accent-hover: var(--zx-green-700);
99
+ --zx-color-accent-active: var(--zx-green-700);
100
+ --zx-color-accent-subtle: color-mix(in srgb, var(--zx-green-600) 10%, var(--zx-gray-0));
101
+ --zx-color-on-accent: var(--zx-gray-0);
102
+ --zx-color-danger: var(--zx-red-500);
103
+ --zx-color-danger-bg: color-mix(in srgb, var(--zx-red-500) 10%, var(--zx-gray-0));
104
+ --zx-color-warning: var(--zx-amber-600);
105
+ --zx-color-warning-bg: color-mix(in srgb, var(--zx-amber-400) 18%, var(--zx-gray-0));
106
+ --zx-color-success: var(--zx-green-600);
107
+ --zx-color-success-bg: color-mix(in srgb, var(--zx-green-600) 10%, var(--zx-gray-0));
108
+ --zx-color-info: var(--zx-blue-600);
109
+ --zx-color-info-bg: color-mix(in srgb, var(--zx-blue-500) 10%, var(--zx-gray-0));
110
+ --zx-color-ring: var(--zx-color-accent);
111
+ --zx-focus-ring: 0 0 0 3px color-mix(in srgb, var(--zx-color-ring) 45%, transparent);
112
+ --zx-control-height: 32px;
113
+ --zx-control-pad-x: 10px;
114
+ --zx-control-radius: var(--zx-radius-lg);
115
+ --zx-control-font-size: var(--zx-text-md);
116
+ --zx-control-font-weight: 500;
117
+ --zx-overlay-shadow: var(--zx-shadow-3);
118
+ --zx-header-bg: var(--zx-gray-900);
119
+ --zx-header-text: var(--zx-gray-50);
120
+ }
121
+
122
+ /* styles/tokens/dark.css */
123
+ [data-zx-theme=dark] {
124
+ color-scheme: dark;
125
+ --zx-color-bg-page: var(--zx-gray-950);
126
+ --zx-color-bg-surface: var(--zx-gray-900);
127
+ --zx-color-bg-raised: var(--zx-gray-800);
128
+ --zx-color-bg-control: color-mix(in srgb, var(--zx-gray-0) 5%, transparent);
129
+ --zx-color-bg-muted: var(--zx-gray-800);
130
+ --zx-color-bg-hover: color-mix(in srgb, var(--zx-gray-0) 8%, transparent);
131
+ --zx-color-bg-selected: color-mix(in srgb, var(--zx-green-400) 18%, var(--zx-gray-900));
132
+ --zx-color-bg-backdrop: color-mix(in srgb, var(--zx-gray-950) 75%, transparent);
133
+ --zx-color-border: color-mix(in srgb, var(--zx-gray-0) 10%, transparent);
134
+ --zx-color-border-strong: color-mix(in srgb, var(--zx-gray-0) 28%, transparent);
135
+ --zx-color-border-control: color-mix(in srgb, var(--zx-gray-0) 15%, transparent);
136
+ --zx-color-text: var(--zx-gray-50);
137
+ --zx-color-text-muted: var(--zx-gray-400);
138
+ --zx-color-text-placeholder: var(--zx-gray-500);
139
+ --zx-color-text-invert: var(--zx-gray-950);
140
+ --zx-color-accent: var(--zx-green-400);
141
+ --zx-color-accent-hover: var(--zx-green-300);
142
+ --zx-color-accent-active: var(--zx-green-500);
143
+ --zx-color-accent-subtle: color-mix(in srgb, var(--zx-green-400) 16%, var(--zx-gray-900));
144
+ --zx-color-on-accent: var(--zx-gray-950);
145
+ --zx-color-danger: var(--zx-red-400);
146
+ --zx-color-danger-bg: color-mix(in srgb, var(--zx-red-400) 16%, var(--zx-gray-900));
147
+ --zx-color-warning: var(--zx-amber-400);
148
+ --zx-color-warning-bg: color-mix(in srgb, var(--zx-amber-400) 16%, var(--zx-gray-900));
149
+ --zx-color-success: var(--zx-green-400);
150
+ --zx-color-success-bg: color-mix(in srgb, var(--zx-green-400) 16%, var(--zx-gray-900));
151
+ --zx-color-info: var(--zx-blue-400);
152
+ --zx-color-info-bg: color-mix(in srgb, var(--zx-blue-400) 16%, var(--zx-gray-900));
153
+ --zx-color-ring: var(--zx-color-accent);
154
+ --zx-focus-ring: 0 0 0 3px color-mix(in srgb, var(--zx-color-ring) 45%, transparent);
155
+ --zx-overlay-shadow: 0 12px 36px rgb(0 0 0 / 45%);
156
+ --zx-header-bg: var(--zx-gray-900);
157
+ --zx-header-text: var(--zx-gray-50);
158
+ }
159
+ @media (prefers-color-scheme: dark) {
160
+ [data-zx-theme=auto] {
161
+ color-scheme: dark;
162
+ --zx-color-bg-page: var(--zx-gray-950);
163
+ --zx-color-bg-surface: var(--zx-gray-900);
164
+ --zx-color-bg-raised: var(--zx-gray-800);
165
+ --zx-color-bg-control: color-mix(in srgb, var(--zx-gray-0) 5%, transparent);
166
+ --zx-color-bg-muted: var(--zx-gray-800);
167
+ --zx-color-bg-hover: color-mix(in srgb, var(--zx-gray-0) 8%, transparent);
168
+ --zx-color-bg-selected: color-mix(in srgb, var(--zx-green-400) 18%, var(--zx-gray-900));
169
+ --zx-color-bg-backdrop: color-mix(in srgb, var(--zx-gray-950) 75%, transparent);
170
+ --zx-color-border: color-mix(in srgb, var(--zx-gray-0) 10%, transparent);
171
+ --zx-color-border-strong: color-mix(in srgb, var(--zx-gray-0) 28%, transparent);
172
+ --zx-color-border-control: color-mix(in srgb, var(--zx-gray-0) 15%, transparent);
173
+ --zx-color-text: var(--zx-gray-50);
174
+ --zx-color-text-muted: var(--zx-gray-400);
175
+ --zx-color-text-placeholder: var(--zx-gray-500);
176
+ --zx-color-text-invert: var(--zx-gray-950);
177
+ --zx-color-accent: var(--zx-green-400);
178
+ --zx-color-accent-hover: var(--zx-green-300);
179
+ --zx-color-accent-active: var(--zx-green-500);
180
+ --zx-color-accent-subtle: color-mix(in srgb, var(--zx-green-400) 16%, var(--zx-gray-900));
181
+ --zx-color-on-accent: var(--zx-gray-950);
182
+ --zx-color-danger: var(--zx-red-400);
183
+ --zx-color-danger-bg: color-mix(in srgb, var(--zx-red-400) 16%, var(--zx-gray-900));
184
+ --zx-color-warning: var(--zx-amber-400);
185
+ --zx-color-warning-bg: color-mix(in srgb, var(--zx-amber-400) 16%, var(--zx-gray-900));
186
+ --zx-color-success: var(--zx-green-400);
187
+ --zx-color-success-bg: color-mix(in srgb, var(--zx-green-400) 16%, var(--zx-gray-900));
188
+ --zx-color-info: var(--zx-blue-400);
189
+ --zx-color-info-bg: color-mix(in srgb, var(--zx-blue-400) 16%, var(--zx-gray-900));
190
+ --zx-color-ring: var(--zx-color-accent);
191
+ --zx-focus-ring: 0 0 0 3px color-mix(in srgb, var(--zx-color-ring) 45%, transparent);
192
+ --zx-overlay-shadow: 0 12px 36px rgb(0 0 0 / 45%);
193
+ --zx-header-bg: var(--zx-gray-900);
194
+ --zx-header-text: var(--zx-gray-50);
195
+ }
196
+ }
197
+
198
+ /* styles/tokens/density.css */
199
+ [data-zx-density=compact] {
200
+ --zx-control-height: 28px;
201
+ --zx-control-pad-x: var(--zx-space-2);
202
+ --zx-text-md: 13px;
203
+ --zx-space-1: 3px;
204
+ --zx-space-2: 6px;
205
+ --zx-space-3: 10px;
206
+ --zx-space-4: 14px;
207
+ }
208
+
209
+ /* styles/tokens/modules.css */
210
+ :root {
211
+ --zx-module-fg-light: #ffffff;
212
+ --zx-module-fg-dark: #141414;
213
+ --zx-module-accounts: #bc3885;
214
+ --zx-module-actionsteps: #f67f00;
215
+ --zx-module-admin: #4b5563;
216
+ --zx-module-applications: #2563eb;
217
+ --zx-module-appointments: #bd1e32;
218
+ --zx-module-auth: #a16207;
219
+ --zx-module-billing: #535494;
220
+ --zx-module-calendar: #bd1e32;
221
+ --zx-module-campaigns: #f16528;
222
+ --zx-module-categories: #9a3412;
223
+ --zx-module-channels: #0891b2;
224
+ --zx-module-collection: #0d60ae;
225
+ --zx-module-contacts: #8c6641;
226
+ --zx-module-contracts: #823e89;
227
+ --zx-module-control: #0f766e;
228
+ --zx-module-coupons: #10775c;
229
+ --zx-module-davservers: #475569;
230
+ --zx-module-default: #21cc75;
231
+ --zx-module-dev: #1f2937;
232
+ --zx-module-devices: #064e4f;
233
+ --zx-module-documents: #808000;
234
+ --zx-module-dunning: #0d60ae;
235
+ --zx-module-error: #b91c1c;
236
+ --zx-module-events: #bd1e32;
237
+ --zx-module-global: #0369a1;
238
+ --zx-module-groups: #007a55;
239
+ --zx-module-inventory: #064e4f;
240
+ --zx-module-items: #064e4f;
241
+ --zx-module-ledgers: #4679c8;
242
+ --zx-module-line: #064e4f;
243
+ --zx-module-links: #405e76;
244
+ --zx-module-logout: #9f1239;
245
+ --zx-module-mailinglists: #0299ac;
246
+ --zx-module-messages: #31a8e0;
247
+ --zx-module-messages-unread: #31a8e0;
248
+ --zx-module-notes: #008853;
249
+ --zx-module-objects: #7e22ce;
250
+ --zx-module-opportunities: #7b67ae;
251
+ --zx-module-participants: #4338ca;
252
+ --zx-module-payments: #4679c8;
253
+ --zx-module-permissions: #5b21b6;
254
+ --zx-module-pricelists: #10775c;
255
+ --zx-module-procurement: #006e9f;
256
+ --zx-module-production: #226375;
257
+ --zx-module-projects: #db532d;
258
+ --zx-module-records: #57534e;
259
+ --zx-module-resources: #15803d;
260
+ --zx-module-services: #b45309;
261
+ --zx-module-stocktransactions: #064e4f;
262
+ --zx-module-storages: #064e4f;
263
+ --zx-module-system: #374151;
264
+ --zx-module-tasks: #e2b301;
265
+ --zx-module-text: #064e4f;
266
+ --zx-module-tickets: #f04639;
267
+ --zx-module-transactions-billing: #535494;
268
+ --zx-module-transactions-collection: #0d60ae;
269
+ --zx-module-transactions-procurement: #006e9f;
270
+ --zx-module-transactions-production: #226375;
271
+ --zx-module-users: #007a55;
272
+ --zx-module-weblets: #4f46e5;
273
+ --zx-module-zeyos: #007a55;
274
+ --zx-module-addresses: var(--zx-module-contacts);
275
+ --zx-module-clocking: var(--zx-module-actionsteps);
276
+ --zx-module-comments: var(--zx-module-notes);
277
+ --zx-module-couponcodes: var(--zx-module-coupons);
278
+ --zx-module-customers: var(--zx-module-accounts);
279
+ --zx-module-customfields: var(--zx-module-objects);
280
+ --zx-module-davids: var(--zx-module-davservers);
281
+ --zx-module-documentversions: var(--zx-module-documents);
282
+ --zx-module-enhancements: var(--zx-module-applications);
283
+ --zx-module-extdata: var(--zx-module-objects);
284
+ --zx-module-feedservers: var(--zx-module-channels);
285
+ --zx-module-files: var(--zx-module-documents);
286
+ --zx-module-filters: var(--zx-module-records);
287
+ --zx-module-forks: var(--zx-module-applications);
288
+ --zx-module-imports: var(--zx-module-records);
289
+ --zx-module-invoices: var(--zx-module-transactions-billing);
290
+ --zx-module-linecoupon: var(--zx-module-line);
291
+ --zx-module-logins: var(--zx-module-auth);
292
+ --zx-module-mailservers: var(--zx-module-channels);
293
+ --zx-module-notifications: var(--zx-module-messages);
294
+ --zx-module-participants-campaigns: var(--zx-module-participants);
295
+ --zx-module-participants-mailinglists: var(--zx-module-participants);
296
+ --zx-module-prices: var(--zx-module-pricelists);
297
+ --zx-module-purchaseorders: var(--zx-module-transactions-procurement);
298
+ --zx-module-pwd: var(--zx-module-auth);
299
+ --zx-module-sessions: var(--zx-module-auth);
300
+ --zx-module-settings: var(--zx-module-system);
301
+ --zx-module-suppliers: var(--zx-module-accounts);
302
+ --zx-module-tags: var(--zx-module-categories);
303
+ --zx-module-tokens: var(--zx-module-auth);
304
+ --zx-module-transactions: var(--zx-module-transactions-billing);
305
+ --zx-module-userfields: var(--zx-module-objects);
306
+ --zx-module-userfilters: var(--zx-module-records);
307
+ --zx-module-usergroups: var(--zx-module-groups);
308
+ --zx-module-usermgmt: var(--zx-module-users);
309
+ --zx-module-usersettings: var(--zx-module-system);
310
+ }
311
+
312
+ /* styles/base.css */
313
+ .zx-scope,
314
+ .zx-scope *,
315
+ .zx-scope *::before,
316
+ .zx-scope *::after {
317
+ box-sizing: border-box;
318
+ }
319
+ .zx-scope {
320
+ min-block-size: 100%;
321
+ margin: 0;
322
+ background: var(--zx-color-bg-page);
323
+ color: var(--zx-color-text);
324
+ font-family: var(--zx-font-sans);
325
+ font-size: var(--zx-text-md);
326
+ line-height: 1.5;
327
+ -webkit-font-smoothing: antialiased;
328
+ scrollbar-gutter: stable;
329
+ }
330
+ .zx-scope :focus-visible {
331
+ outline: 2px solid transparent;
332
+ outline-offset: 2px;
333
+ box-shadow: var(--zx-focus-ring);
334
+ }
335
+ .zx-scope ::selection {
336
+ background: var(--zx-color-accent);
337
+ color: var(--zx-color-on-accent);
338
+ }
339
+ :where(.zx-scope button:not(.zx-icon-btn)),
340
+ :where(.zx-scope input, .zx-scope select, .zx-scope textarea) {
341
+ min-block-size: var(--zx-control-height);
342
+ border: 1px solid var(--zx-color-border-control);
343
+ border-radius: var(--zx-control-radius);
344
+ background: var(--zx-color-bg-control);
345
+ color: var(--zx-color-text);
346
+ font: inherit;
347
+ font-size: var(--zx-control-font-size);
348
+ transition:
349
+ color var(--zx-dur-fast) var(--zx-ease),
350
+ background-color var(--zx-dur-fast) var(--zx-ease),
351
+ border-color var(--zx-dur-fast) var(--zx-ease),
352
+ box-shadow var(--zx-dur-fast) var(--zx-ease);
353
+ }
354
+ :where(.zx-scope button:not(.zx-icon-btn)) {
355
+ font-weight: var(--zx-control-font-weight);
356
+ }
357
+ :where(.zx-scope button:not(.zx-icon-btn), .zx-scope select, .zx-scope textarea),
358
+ :where(.zx-scope input:not([type=checkbox]):not([type=radio])) {
359
+ padding-inline: var(--zx-control-pad-x);
360
+ }
361
+ :where(.zx-scope button) {
362
+ cursor: pointer;
363
+ }
364
+ :where(.zx-scope button:not(.zx-icon-btn)):hover {
365
+ background: var(--zx-color-bg-hover);
366
+ }
367
+ .zx-scope .zx-icon-btn {
368
+ display: inline-grid;
369
+ place-items: center;
370
+ flex: 0 0 auto;
371
+ inline-size: var(--zx-control-height);
372
+ block-size: var(--zx-control-height);
373
+ padding: 0;
374
+ border: 0;
375
+ border-radius: var(--zx-radius-sm);
376
+ background: none;
377
+ color: var(--zx-color-text-muted);
378
+ cursor: pointer;
379
+ }
380
+ .zx-scope .zx-icon-btn:hover {
381
+ background: var(--zx-color-bg-hover);
382
+ color: var(--zx-color-text);
383
+ }
384
+ .zx-scope .zx-icon-btn:focus-visible {
385
+ outline: 0;
386
+ box-shadow: inset var(--zx-focus-ring);
387
+ }
388
+ .zx-scope .zx-icon-btn:disabled {
389
+ color: var(--zx-color-text-placeholder);
390
+ cursor: not-allowed;
391
+ }
392
+ .zx-scope .zx-mark {
393
+ padding: 0;
394
+ border-radius: var(--zx-radius-sm);
395
+ background: var(--zx-color-accent-subtle);
396
+ color: var(--zx-color-text);
397
+ }
398
+ .zx-scope input::placeholder,
399
+ .zx-scope textarea::placeholder {
400
+ color: var(--zx-color-text-placeholder);
401
+ }
402
+ @media (prefers-reduced-motion: reduce) {
403
+ .zx-scope *,
404
+ .zx-scope *::before,
405
+ .zx-scope *::after {
406
+ scroll-behavior: auto !important;
407
+ animation-duration: 0.01ms !important;
408
+ animation-iteration-count: 1 !important;
409
+ transition-duration: 0.01ms !important;
410
+ }
411
+ }
412
+
413
+ /* styles/icons.css */
414
+ .zx-icon {
415
+ flex: none;
416
+ }
417
+ i.zx-icon {
418
+ display: inline-block;
419
+ inline-size: 1em;
420
+ block-size: 1em;
421
+ line-height: 1;
422
+ text-align: center;
423
+ }
424
+ svg.zx-icon {
425
+ vertical-align: middle;
426
+ }
427
+ .zx-module-icon {
428
+ display: inline-grid;
429
+ place-items: center;
430
+ flex: none;
431
+ inline-size: var(--zx-module-icon-size, 1.5rem);
432
+ block-size: var(--zx-module-icon-size, 1.5rem);
433
+ border-radius: var(--zx-radius-sm);
434
+ background: var(--zx-module-color, var(--zx-module-default));
435
+ color: var(--zx-module-glyph, var(--zx-module-fg-light));
436
+ font-size: calc(var(--zx-module-icon-size, 1.5rem) * 0.6);
437
+ }
438
+
439
+ /* src/components/button/button.css */
440
+ .zx-btn {
441
+ display: inline-flex;
442
+ align-items: center;
443
+ justify-content: center;
444
+ gap: var(--zx-space-2);
445
+ min-block-size: var(--zx-control-height);
446
+ border: 1px solid var(--zx-color-border-control);
447
+ border-radius: var(--zx-control-radius);
448
+ background: var(--zx-color-bg-control);
449
+ color: var(--zx-color-text);
450
+ padding-inline: var(--zx-control-pad-x);
451
+ font: inherit;
452
+ font-size: var(--zx-control-font-size);
453
+ font-weight: var(--zx-control-font-weight);
454
+ line-height: 1;
455
+ cursor: pointer;
456
+ transition:
457
+ color var(--zx-dur-fast) var(--zx-ease),
458
+ background-color var(--zx-dur-fast) var(--zx-ease),
459
+ border-color var(--zx-dur-fast) var(--zx-ease),
460
+ box-shadow var(--zx-dur-fast) var(--zx-ease);
461
+ }
462
+ .zx-btn:hover:not(:disabled) {
463
+ background: var(--zx-color-bg-hover);
464
+ }
465
+ .zx-btn:active:not(:disabled) {
466
+ border-color: var(--zx-color-border-strong);
467
+ }
468
+ .zx-btn:focus-visible {
469
+ box-shadow: var(--zx-focus-ring);
470
+ }
471
+ .zx-btn:disabled {
472
+ opacity: 0.55;
473
+ cursor: not-allowed;
474
+ }
475
+ .zx-btn[data-kind=primary] {
476
+ border-color: var(--zx-color-accent);
477
+ background: var(--zx-color-accent);
478
+ color: var(--zx-color-on-accent);
479
+ }
480
+ .zx-btn[data-kind=primary]:hover:not(:disabled) {
481
+ border-color: var(--zx-color-accent-hover);
482
+ background: var(--zx-color-accent-hover);
483
+ }
484
+ .zx-btn[data-kind=primary]:active:not(:disabled) {
485
+ border-color: var(--zx-color-accent-active);
486
+ background: var(--zx-color-accent-active);
487
+ }
488
+ .zx-btn[data-kind=danger] {
489
+ border-color: var(--zx-color-danger);
490
+ background: var(--zx-color-danger);
491
+ color: var(--zx-color-on-accent);
492
+ }
493
+ .zx-btn[data-kind=danger]:hover:not(:disabled) {
494
+ background: color-mix(in srgb, var(--zx-color-danger) 88%, var(--zx-color-text));
495
+ }
496
+ .zx-btn[data-kind=ghost] {
497
+ border-color: transparent;
498
+ background: none;
499
+ }
500
+ .zx-btn[data-kind=ghost]:hover:not(:disabled) {
501
+ border-color: transparent;
502
+ background: var(--zx-color-bg-hover);
503
+ }
504
+ .zx-btn[data-size=sm] {
505
+ min-block-size: calc(var(--zx-control-height) - var(--zx-space-1));
506
+ padding-inline: var(--zx-space-2);
507
+ font-size: var(--zx-text-sm);
508
+ }
509
+ .zx-btn > svg,
510
+ .zx-btn > .zx-icon {
511
+ flex: none;
512
+ }
513
+ .zx-btn-group {
514
+ display: inline-flex;
515
+ }
516
+ .zx-btn-group > .zx-btn:not(:first-child) {
517
+ margin-inline-start: -1px;
518
+ border-start-start-radius: 0;
519
+ border-end-start-radius: 0;
520
+ }
521
+ .zx-btn-group > .zx-btn:not(:last-child) {
522
+ border-start-end-radius: 0;
523
+ border-end-end-radius: 0;
524
+ }
525
+ .zx-btn-group > .zx-btn:focus-visible {
526
+ z-index: 1;
527
+ }
528
+
529
+ /* src/components/badge/badge.css */
530
+ .zx-badge {
531
+ display: inline-flex;
532
+ align-items: center;
533
+ gap: var(--zx-space-1);
534
+ max-inline-size: 100%;
535
+ border: 1px solid transparent;
536
+ border-radius: var(--zx-radius-full);
537
+ background: var(--zx-color-bg-muted);
538
+ color: var(--zx-color-text-muted);
539
+ padding-block: 2px;
540
+ padding-inline: var(--zx-space-2);
541
+ font-size: var(--zx-text-xs);
542
+ font-weight: 600;
543
+ font-variant-numeric: tabular-nums;
544
+ line-height: 1.35;
545
+ white-space: nowrap;
546
+ vertical-align: middle;
547
+ }
548
+ .zx-badge__label {
549
+ overflow: hidden;
550
+ text-overflow: ellipsis;
551
+ }
552
+ .zx-badge__dot {
553
+ flex: none;
554
+ inline-size: 6px;
555
+ block-size: 6px;
556
+ border-radius: var(--zx-radius-full);
557
+ background: currentColor;
558
+ }
559
+ .zx-badge .zx-icon {
560
+ flex: none;
561
+ }
562
+ .zx-badge[data-kind=accent] {
563
+ background: var(--zx-color-accent-subtle);
564
+ color: var(--zx-color-accent);
565
+ }
566
+ .zx-badge[data-kind=success] {
567
+ background: var(--zx-color-success-bg);
568
+ color: var(--zx-color-success);
569
+ }
570
+ .zx-badge[data-kind=warning] {
571
+ background: var(--zx-color-warning-bg);
572
+ color: var(--zx-color-warning);
573
+ }
574
+ .zx-badge[data-kind=danger] {
575
+ background: var(--zx-color-danger-bg);
576
+ color: var(--zx-color-danger);
577
+ }
578
+ .zx-badge[data-kind=info] {
579
+ background: var(--zx-color-info-bg);
580
+ color: var(--zx-color-info);
581
+ }
582
+ .zx-badge[data-variant=solid] {
583
+ background: var(--zx-color-text-muted);
584
+ color: var(--zx-color-bg-surface);
585
+ }
586
+ .zx-badge[data-variant=solid][data-kind=accent] {
587
+ background: var(--zx-color-accent);
588
+ color: var(--zx-color-on-accent);
589
+ }
590
+ .zx-badge[data-variant=solid][data-kind=success] {
591
+ background: var(--zx-color-success);
592
+ color: var(--zx-color-on-accent);
593
+ }
594
+ .zx-badge[data-variant=solid][data-kind=warning] {
595
+ background: var(--zx-color-warning);
596
+ color: var(--zx-color-on-accent);
597
+ }
598
+ .zx-badge[data-variant=solid][data-kind=danger] {
599
+ background: var(--zx-color-danger);
600
+ color: var(--zx-color-on-accent);
601
+ }
602
+ .zx-badge[data-variant=solid][data-kind=info] {
603
+ background: var(--zx-color-info);
604
+ color: var(--zx-color-on-accent);
605
+ }
606
+ .zx-badge[data-variant=outline] {
607
+ border-color: var(--zx-color-border-strong);
608
+ background: transparent;
609
+ color: var(--zx-color-text-muted);
610
+ }
611
+ .zx-badge[data-variant=outline][data-kind=accent],
612
+ .zx-badge[data-variant=outline][data-kind=success],
613
+ .zx-badge[data-variant=outline][data-kind=warning],
614
+ .zx-badge[data-variant=outline][data-kind=danger],
615
+ .zx-badge[data-variant=outline][data-kind=info] {
616
+ border-color: currentColor;
617
+ background: transparent;
618
+ }
619
+ .zx-badge[data-variant=outline][data-kind=accent] {
620
+ color: var(--zx-color-accent);
621
+ }
622
+ .zx-badge[data-variant=outline][data-kind=success] {
623
+ color: var(--zx-color-success);
624
+ }
625
+ .zx-badge[data-variant=outline][data-kind=warning] {
626
+ color: var(--zx-color-warning);
627
+ }
628
+ .zx-badge[data-variant=outline][data-kind=danger] {
629
+ color: var(--zx-color-danger);
630
+ }
631
+ .zx-badge[data-variant=outline][data-kind=info] {
632
+ color: var(--zx-color-info);
633
+ }
634
+ .zx-badge[data-size=sm] {
635
+ gap: calc(var(--zx-space-1) / 2);
636
+ padding-block: 1px;
637
+ padding-inline: var(--zx-space-1);
638
+ font-size: calc(var(--zx-text-xs) - 1px);
639
+ }
640
+ .zx-badge[data-size=sm] .zx-badge__dot {
641
+ inline-size: 5px;
642
+ block-size: 5px;
643
+ }
644
+ .zx-badge-group {
645
+ display: inline-flex;
646
+ flex-wrap: wrap;
647
+ align-items: center;
648
+ gap: var(--zx-space-1);
649
+ }
650
+
651
+ /* src/components/check-button/check-button.css */
652
+ .zx-check-button {
653
+ display: inline-flex;
654
+ align-items: center;
655
+ justify-content: center;
656
+ gap: var(--zx-space-2);
657
+ min-block-size: var(--zx-control-height);
658
+ border: 1px solid var(--zx-color-border-control);
659
+ border-radius: var(--zx-control-radius);
660
+ background: var(--zx-color-bg-control);
661
+ color: var(--zx-color-text);
662
+ padding-inline: var(--zx-control-pad-x);
663
+ font: inherit;
664
+ font-size: var(--zx-control-font-size);
665
+ cursor: pointer;
666
+ }
667
+ .zx-check-button:hover:not(:disabled) {
668
+ background: var(--zx-color-bg-hover);
669
+ }
670
+ .zx-check-button[aria-pressed=true] {
671
+ border-color: var(--zx-color-accent);
672
+ background: var(--zx-color-bg-selected);
673
+ color: var(--zx-color-accent);
674
+ }
675
+ .zx-check-button:focus-visible {
676
+ box-shadow: var(--zx-focus-ring);
677
+ }
678
+ .zx-check-button:disabled {
679
+ opacity: 0.55;
680
+ cursor: not-allowed;
681
+ }
682
+ .zx-check-button__icon {
683
+ display: inline-grid;
684
+ flex: none;
685
+ grid-template-areas: "state";
686
+ place-items: center;
687
+ }
688
+ .zx-check-button__off,
689
+ .zx-check-button__on {
690
+ display: inline-grid;
691
+ grid-area: state;
692
+ place-items: center;
693
+ }
694
+ .zx-check-button__off {
695
+ color: var(--zx-color-text-muted);
696
+ }
697
+ .zx-check-button__on,
698
+ .zx-check-button[aria-pressed=true] .zx-check-button__off {
699
+ visibility: hidden;
700
+ }
701
+ .zx-check-button[aria-pressed=true] .zx-check-button__on {
702
+ visibility: visible;
703
+ }
704
+ .zx-check-button__icon .zx-icon {
705
+ display: block;
706
+ }
707
+
708
+ /* src/components/empty-state/empty-state.css */
709
+ .zx-empty-state {
710
+ display: flex;
711
+ flex-direction: column;
712
+ align-items: center;
713
+ gap: var(--zx-space-2);
714
+ padding-block: var(--zx-space-7);
715
+ padding-inline: var(--zx-space-5);
716
+ color: var(--zx-color-text-muted);
717
+ text-align: center;
718
+ }
719
+ .zx-empty-state__icon {
720
+ display: flex;
721
+ color: var(--zx-color-text-placeholder);
722
+ }
723
+ .zx-empty-state__title {
724
+ margin: 0;
725
+ color: var(--zx-color-text);
726
+ font-size: var(--zx-text-lg);
727
+ font-weight: 600;
728
+ line-height: 1.4;
729
+ }
730
+ .zx-empty-state__description {
731
+ margin: 0;
732
+ max-inline-size: 52ch;
733
+ font-size: var(--zx-control-font-size);
734
+ line-height: 1.6;
735
+ }
736
+ .zx-empty-state__actions {
737
+ display: flex;
738
+ flex-wrap: wrap;
739
+ align-items: center;
740
+ justify-content: center;
741
+ gap: var(--zx-space-2);
742
+ margin-block-start: var(--zx-space-2);
743
+ }
744
+ .zx-empty-state[data-align=start] {
745
+ align-items: flex-start;
746
+ text-align: start;
747
+ }
748
+ .zx-empty-state[data-align=start] .zx-empty-state__actions {
749
+ justify-content: flex-start;
750
+ }
751
+ .zx-empty-state[data-size=sm] {
752
+ gap: var(--zx-space-1);
753
+ padding-block: var(--zx-space-5);
754
+ padding-inline: var(--zx-space-4);
755
+ }
756
+ .zx-empty-state[data-size=sm] .zx-empty-state__title {
757
+ font-size: var(--zx-control-font-size);
758
+ }
759
+ .zx-empty-state[data-size=sm] .zx-empty-state__description {
760
+ font-size: var(--zx-text-sm);
761
+ }
762
+ @media (prefers-reduced-motion: no-preference) {
763
+ .zx-empty-state {
764
+ animation: zx-empty-state-in var(--zx-dur-base) var(--zx-ease) both;
765
+ }
766
+ }
767
+ @keyframes zx-empty-state-in {
768
+ from {
769
+ opacity: 0;
770
+ transform: translateY(4px);
771
+ }
772
+ to {
773
+ opacity: 1;
774
+ transform: none;
775
+ }
776
+ }
777
+
778
+ /* src/components/layout/layout.css */
779
+ .zx-stack {
780
+ --zx-stack-gap: var(--zx-space-4);
781
+ display: flex;
782
+ flex-direction: column;
783
+ gap: var(--zx-stack-gap);
784
+ min-inline-size: 0;
785
+ }
786
+ .zx-stack[data-inline] {
787
+ display: inline-flex;
788
+ }
789
+ .zx-stack[data-direction=row] {
790
+ flex-direction: row;
791
+ align-items: center;
792
+ }
793
+ .zx-stack[data-wrap] {
794
+ flex-wrap: wrap;
795
+ }
796
+ .zx-stack[data-align=start] {
797
+ align-items: flex-start;
798
+ }
799
+ .zx-stack[data-align=center] {
800
+ align-items: center;
801
+ }
802
+ .zx-stack[data-align=end] {
803
+ align-items: flex-end;
804
+ }
805
+ .zx-stack[data-align=stretch] {
806
+ align-items: stretch;
807
+ }
808
+ .zx-stack[data-align=baseline] {
809
+ align-items: baseline;
810
+ }
811
+ .zx-stack[data-justify=start] {
812
+ justify-content: flex-start;
813
+ }
814
+ .zx-stack[data-justify=center] {
815
+ justify-content: center;
816
+ }
817
+ .zx-stack[data-justify=end] {
818
+ justify-content: flex-end;
819
+ }
820
+ .zx-stack[data-justify=between] {
821
+ justify-content: space-between;
822
+ }
823
+ .zx-stack[data-justify=around] {
824
+ justify-content: space-around;
825
+ }
826
+ .zx-grid {
827
+ --zx-grid-gap: var(--zx-space-4);
828
+ --zx-grid-min: 16rem;
829
+ display: grid;
830
+ gap: var(--zx-grid-gap);
831
+ grid-template-columns: repeat(auto-fit, minmax(min(var(--zx-grid-min), 100%), 1fr));
832
+ min-inline-size: 0;
833
+ }
834
+ .zx-grid[data-columns] {
835
+ grid-template-columns: repeat(auto-fit, minmax(max(min(var(--zx-grid-min), 100%), calc((100% - (var(--zx-grid-columns) - 1) * var(--zx-grid-gap)) / var(--zx-grid-columns))), 1fr));
836
+ }
837
+ .zx-grid[data-align=start] {
838
+ align-items: start;
839
+ }
840
+ .zx-grid[data-align=center] {
841
+ align-items: center;
842
+ }
843
+ .zx-grid[data-align=end] {
844
+ align-items: end;
845
+ }
846
+ .zx-grid[data-align=stretch] {
847
+ align-items: stretch;
848
+ }
849
+ .zx-aspect {
850
+ display: block;
851
+ aspect-ratio: var(--zx-aspect-ratio, 16 / 9);
852
+ inline-size: 100%;
853
+ overflow: hidden;
854
+ }
855
+ .zx-aspect > * {
856
+ inline-size: 100%;
857
+ block-size: 100%;
858
+ object-fit: var(--zx-aspect-fit, cover);
859
+ }
860
+
861
+ /* src/components/truncate/truncate.css */
862
+ .zx-truncate {
863
+ min-inline-size: 0;
864
+ overflow: hidden;
865
+ text-overflow: ellipsis;
866
+ white-space: nowrap;
867
+ }
868
+ .zx-truncate[data-lines] {
869
+ display: -webkit-box;
870
+ -webkit-box-orient: vertical;
871
+ -webkit-line-clamp: var(--zx-truncate-lines, 2);
872
+ line-clamp: var(--zx-truncate-lines, 2);
873
+ white-space: normal;
874
+ overflow-wrap: anywhere;
875
+ }
876
+
877
+ /* src/components/loading/spinner.css */
878
+ .zx-spinner {
879
+ display: inline-flex;
880
+ align-items: center;
881
+ gap: var(--zx-space-2);
882
+ vertical-align: middle;
883
+ }
884
+ .zx-spinner__ring {
885
+ display: block;
886
+ flex: none;
887
+ inline-size: var(--zx-spinner-size, 24px);
888
+ block-size: var(--zx-spinner-size, 24px);
889
+ border: var(--zx-spinner-stroke, 2px) solid var(--zx-color-border);
890
+ border-block-start-color: var(--zx-color-accent);
891
+ border-radius: var(--zx-radius-full);
892
+ }
893
+ .zx-spinner[data-size=sm] {
894
+ --zx-spinner-size: 16px;
895
+ --zx-spinner-stroke: 2px;
896
+ }
897
+ .zx-spinner[data-size=lg] {
898
+ --zx-spinner-size: 40px;
899
+ --zx-spinner-stroke: 3px;
900
+ }
901
+ .zx-spinner[data-kind=current] .zx-spinner__ring {
902
+ border-color: color-mix(in srgb, currentColor 25%, transparent);
903
+ border-block-start-color: currentColor;
904
+ }
905
+ .zx-spinner__label {
906
+ color: var(--zx-color-text-muted);
907
+ font-size: var(--zx-control-font-size);
908
+ }
909
+ .zx-spinner__label:not([data-visible]) {
910
+ position: absolute;
911
+ clip-path: inset(50%);
912
+ inline-size: 1px;
913
+ block-size: 1px;
914
+ overflow: hidden;
915
+ white-space: nowrap;
916
+ }
917
+ @media (prefers-reduced-motion: no-preference) {
918
+ .zx-spinner__ring {
919
+ animation: zx-spinner-turn 720ms linear infinite;
920
+ }
921
+ }
922
+ @keyframes zx-spinner-turn {
923
+ to {
924
+ transform: rotate(1turn);
925
+ }
926
+ }
927
+
928
+ /* src/components/loading/progress-bar.css */
929
+ .zx-progress-bar {
930
+ display: flex;
931
+ flex-direction: column;
932
+ gap: var(--zx-space-1);
933
+ inline-size: 100%;
934
+ }
935
+ .zx-progress-bar__head {
936
+ display: flex;
937
+ align-items: baseline;
938
+ justify-content: space-between;
939
+ gap: var(--zx-space-3);
940
+ font-size: var(--zx-control-font-size);
941
+ }
942
+ .zx-progress-bar__label {
943
+ color: var(--zx-color-text);
944
+ font-weight: 500;
945
+ }
946
+ .zx-progress-bar__value {
947
+ display: inline-flex;
948
+ align-items: center;
949
+ gap: var(--zx-space-1);
950
+ color: var(--zx-color-text-muted);
951
+ font-variant-numeric: tabular-nums;
952
+ }
953
+ .zx-progress-bar__track {
954
+ position: relative;
955
+ block-size: var(--zx-progress-thickness, 8px);
956
+ background: var(--zx-color-bg-muted);
957
+ border-radius: var(--zx-radius-full);
958
+ overflow: hidden;
959
+ }
960
+ .zx-progress-bar__fill {
961
+ block-size: 100%;
962
+ inline-size: var(--zx-progress-fill, 0%);
963
+ background: var(--zx-color-accent);
964
+ border-radius: inherit;
965
+ }
966
+ .zx-progress-bar__helper {
967
+ margin: 0;
968
+ color: var(--zx-color-text-muted);
969
+ font-size: var(--zx-text-sm);
970
+ }
971
+ .zx-progress-bar__helper:empty,
972
+ .zx-progress-bar__head:not(:has(.zx-progress-bar__label:not(:empty), .zx-progress-bar__value:not(:empty))) {
973
+ display: none;
974
+ }
975
+ .zx-progress-bar[data-size=sm] {
976
+ --zx-progress-thickness: 4px;
977
+ }
978
+ .zx-progress-bar[data-hide-label] .zx-progress-bar__label {
979
+ position: absolute;
980
+ clip-path: inset(50%);
981
+ inline-size: 1px;
982
+ block-size: 1px;
983
+ overflow: hidden;
984
+ white-space: nowrap;
985
+ }
986
+ .zx-progress-bar[data-status=success] .zx-progress-bar__fill {
987
+ background: var(--zx-color-success);
988
+ }
989
+ .zx-progress-bar[data-status=success] .zx-progress-bar__value {
990
+ color: var(--zx-color-success);
991
+ }
992
+ .zx-progress-bar[data-status=error] .zx-progress-bar__fill {
993
+ background: var(--zx-color-danger);
994
+ }
995
+ .zx-progress-bar[data-status=error] .zx-progress-bar__value {
996
+ color: var(--zx-color-danger);
997
+ }
998
+ .zx-progress-bar[data-indeterminate] .zx-progress-bar__fill {
999
+ inline-size: 100%;
1000
+ background: color-mix(in srgb, var(--zx-color-accent) 30%, var(--zx-color-bg-muted));
1001
+ }
1002
+ @media (prefers-reduced-motion: no-preference) {
1003
+ .zx-progress-bar__fill {
1004
+ transition: inline-size var(--zx-dur-base) var(--zx-ease);
1005
+ }
1006
+ .zx-progress-bar[data-indeterminate] .zx-progress-bar__fill {
1007
+ inline-size: 35%;
1008
+ background: var(--zx-color-accent);
1009
+ animation: zx-progress-slide 1200ms var(--zx-ease) infinite;
1010
+ }
1011
+ }
1012
+ @keyframes zx-progress-slide {
1013
+ from {
1014
+ transform: translateX(-100%);
1015
+ }
1016
+ to {
1017
+ transform: translateX(calc(100% / 0.35));
1018
+ }
1019
+ }
1020
+
1021
+ /* src/components/loading/inline-loading.css */
1022
+ .zx-inline-loading {
1023
+ display: inline-flex;
1024
+ align-items: center;
1025
+ gap: var(--zx-space-2);
1026
+ color: var(--zx-color-text-muted);
1027
+ font-size: var(--zx-control-font-size);
1028
+ vertical-align: middle;
1029
+ }
1030
+ .zx-inline-loading__indicator {
1031
+ display: inline-flex;
1032
+ align-items: center;
1033
+ flex: none;
1034
+ }
1035
+ .zx-inline-loading__indicator:empty {
1036
+ display: none;
1037
+ }
1038
+ .zx-inline-loading[data-status=success] {
1039
+ color: var(--zx-color-success);
1040
+ }
1041
+ .zx-inline-loading[data-status=error] {
1042
+ color: var(--zx-color-danger);
1043
+ }
1044
+ .zx-inline-loading[data-status=inactive] {
1045
+ color: var(--zx-color-text-placeholder);
1046
+ }
1047
+ .zx-inline-loading[data-size=md] {
1048
+ font-size: var(--zx-text-lg);
1049
+ }
1050
+
1051
+ /* src/components/skeleton/skeleton.css */
1052
+ .zx-skeleton {
1053
+ display: block;
1054
+ background: var(--zx-color-bg-muted);
1055
+ border-radius: var(--zx-radius-sm);
1056
+ }
1057
+ .zx-skeleton[data-radius=md] {
1058
+ border-radius: var(--zx-radius-md);
1059
+ }
1060
+ .zx-skeleton[data-radius=full] {
1061
+ border-radius: var(--zx-radius-full);
1062
+ }
1063
+ .zx-skeleton-text {
1064
+ display: flex;
1065
+ flex-direction: column;
1066
+ gap: var(--zx-space-2);
1067
+ }
1068
+ .zx-skeleton-table {
1069
+ display: flex;
1070
+ flex-direction: column;
1071
+ gap: var(--zx-space-1);
1072
+ inline-size: 100%;
1073
+ }
1074
+ .zx-skeleton-table__row {
1075
+ display: grid;
1076
+ grid-template-columns: repeat(var(--zx-skeleton-columns, 4), minmax(0, 1fr));
1077
+ gap: var(--zx-space-4);
1078
+ align-items: center;
1079
+ padding-block: var(--zx-space-3);
1080
+ padding-inline: var(--zx-space-3);
1081
+ border-block-end: 1px solid var(--zx-color-border);
1082
+ }
1083
+ .zx-skeleton-table__row[data-kind=header] {
1084
+ border-block-end-color: var(--zx-color-border-strong);
1085
+ }
1086
+ .zx-skeleton-table__row[data-kind=header] .zx-skeleton {
1087
+ background: var(--zx-color-border);
1088
+ }
1089
+ .zx-skeleton-table__row:last-child {
1090
+ border-block-end: 0;
1091
+ }
1092
+ @media (prefers-reduced-motion: no-preference) {
1093
+ .zx-skeleton {
1094
+ animation: zx-skeleton-pulse 1400ms var(--zx-ease) infinite;
1095
+ }
1096
+ .zx-skeleton-text .zx-skeleton:nth-child(2n) {
1097
+ animation-delay: 120ms;
1098
+ }
1099
+ .zx-skeleton-table__row:nth-child(2n) .zx-skeleton {
1100
+ animation-delay: 120ms;
1101
+ }
1102
+ }
1103
+ @keyframes zx-skeleton-pulse {
1104
+ 50% {
1105
+ opacity: 0.5;
1106
+ }
1107
+ }
1108
+
1109
+ /* src/components/copy/copy-button.css */
1110
+ .zx-copy-button {
1111
+ display: inline-flex;
1112
+ align-items: center;
1113
+ gap: var(--zx-space-2);
1114
+ }
1115
+ .zx-copy-button__icon {
1116
+ display: inline-flex;
1117
+ flex: none;
1118
+ }
1119
+ .zx-copy-button[data-copied] {
1120
+ color: var(--zx-color-success);
1121
+ }
1122
+ .zx-copy-button__status {
1123
+ position: absolute;
1124
+ clip-path: inset(50%);
1125
+ inline-size: 1px;
1126
+ block-size: 1px;
1127
+ overflow: hidden;
1128
+ white-space: nowrap;
1129
+ }
1130
+
1131
+ /* src/components/copy/copy-input.css */
1132
+ .zx-copy-input {
1133
+ display: flex;
1134
+ flex-direction: column;
1135
+ gap: var(--zx-space-1);
1136
+ inline-size: 100%;
1137
+ }
1138
+ .zx-copy-input__label {
1139
+ color: var(--zx-color-text);
1140
+ font-size: var(--zx-control-font-size);
1141
+ font-weight: 500;
1142
+ }
1143
+ .zx-copy-input[data-hide-label] .zx-copy-input__label {
1144
+ position: absolute;
1145
+ clip-path: inset(50%);
1146
+ inline-size: 1px;
1147
+ block-size: 1px;
1148
+ overflow: hidden;
1149
+ white-space: nowrap;
1150
+ }
1151
+ .zx-copy-input__box {
1152
+ display: flex;
1153
+ align-items: center;
1154
+ gap: var(--zx-space-1);
1155
+ min-inline-size: 0;
1156
+ padding-inline-end: var(--zx-space-1);
1157
+ border: 1px solid var(--zx-color-border-control);
1158
+ border-radius: var(--zx-control-radius);
1159
+ background: var(--zx-color-bg-control);
1160
+ }
1161
+ .zx-copy-input__box:focus-within {
1162
+ border-color: var(--zx-color-accent);
1163
+ box-shadow: var(--zx-focus-ring);
1164
+ }
1165
+ .zx-copy-input__field {
1166
+ flex: 1 1 auto;
1167
+ min-inline-size: 0;
1168
+ border: 0;
1169
+ border-radius: 0;
1170
+ background: none;
1171
+ font-family: var(--zx-font-mono);
1172
+ font-size: var(--zx-text-sm);
1173
+ text-overflow: ellipsis;
1174
+ }
1175
+ .zx-copy-input__field:focus-visible {
1176
+ outline: 0;
1177
+ box-shadow: none;
1178
+ }
1179
+ .zx-copy-input[data-size=sm] .zx-copy-input__field {
1180
+ min-block-size: calc(var(--zx-control-height) - 4px);
1181
+ font-size: var(--zx-text-xs);
1182
+ }
1183
+
1184
+ /* src/components/toolbar/toolbar.css */
1185
+ .zx-toolbar {
1186
+ display: flex;
1187
+ flex-wrap: nowrap;
1188
+ min-inline-size: 0;
1189
+ align-items: center;
1190
+ gap: var(--zx-space-2);
1191
+ }
1192
+ .zx-toolbar > * {
1193
+ flex: 0 0 auto;
1194
+ }
1195
+ .zx-toolbar > .zx-toolbar__spacer {
1196
+ flex: 1 1 auto;
1197
+ min-inline-size: 0;
1198
+ }
1199
+ .zx-toolbar > [hidden] {
1200
+ display: none;
1201
+ }
1202
+ .zx-toolbar[data-overflow=true] {
1203
+ overflow: clip;
1204
+ overflow-clip-margin: var(--zx-space-1);
1205
+ }
1206
+ .zx-toolbar[data-align=start] {
1207
+ justify-content: flex-start;
1208
+ }
1209
+ .zx-toolbar[data-align=end] {
1210
+ justify-content: flex-end;
1211
+ }
1212
+ .zx-toolbar[data-align=between] {
1213
+ justify-content: space-between;
1214
+ }
1215
+ .zx-toolbar[data-dense=true] {
1216
+ gap: var(--zx-space-1);
1217
+ }
1218
+ .zx-toolbar__separator,
1219
+ .zx-toolbar > [data-separator] {
1220
+ flex: none;
1221
+ align-self: stretch;
1222
+ inline-size: 1px;
1223
+ min-block-size: calc(var(--zx-control-height) - var(--zx-space-3));
1224
+ margin-block: var(--zx-space-1);
1225
+ border: 0;
1226
+ background: var(--zx-color-border);
1227
+ }
1228
+ .zx-toolbar[data-dense=true] .zx-toolbar__separator,
1229
+ .zx-toolbar[data-dense=true] > [data-separator] {
1230
+ margin-block: calc(var(--zx-space-1) / 2);
1231
+ }
1232
+ .zx-toolbar__overflow > .zx-btn__label:empty {
1233
+ display: none;
1234
+ }
1235
+ .zx-toolbar > :focus-visible,
1236
+ .zx-toolbar > [role=group] > :focus-visible {
1237
+ box-shadow: var(--zx-focus-ring);
1238
+ }
1239
+
1240
+ /* src/components/toggle/toggle.css */
1241
+ .zx-toggle {
1242
+ display: inline-flex;
1243
+ align-items: center;
1244
+ gap: var(--zx-space-2);
1245
+ min-block-size: var(--zx-control-height);
1246
+ border: 0;
1247
+ background: none;
1248
+ color: var(--zx-color-text);
1249
+ padding: 0;
1250
+ font: inherit;
1251
+ font-size: var(--zx-control-font-size);
1252
+ cursor: pointer;
1253
+ }
1254
+ .zx-toggle:hover:not(:disabled) {
1255
+ background: none;
1256
+ }
1257
+ .zx-toggle:focus-visible {
1258
+ border-radius: var(--zx-control-radius);
1259
+ box-shadow: var(--zx-focus-ring);
1260
+ }
1261
+ .zx-toggle:disabled {
1262
+ opacity: 0.55;
1263
+ cursor: not-allowed;
1264
+ }
1265
+ .zx-toggle__track {
1266
+ display: block;
1267
+ flex: none;
1268
+ inline-size: 34px;
1269
+ block-size: 20px;
1270
+ border: 1px solid var(--zx-color-border-strong);
1271
+ border-radius: var(--zx-radius-full);
1272
+ background: var(--zx-color-bg-control);
1273
+ padding: 2px;
1274
+ }
1275
+ .zx-toggle__thumb {
1276
+ display: block;
1277
+ inline-size: 14px;
1278
+ block-size: 14px;
1279
+ border-radius: var(--zx-radius-full);
1280
+ background: var(--zx-color-text-muted);
1281
+ }
1282
+ .zx-toggle[aria-checked=true] .zx-toggle__track {
1283
+ border-color: var(--zx-color-accent);
1284
+ background: var(--zx-color-accent);
1285
+ }
1286
+ .zx-toggle[aria-checked=true] .zx-toggle__thumb {
1287
+ background: var(--zx-color-on-accent);
1288
+ transform: translateX(14px);
1289
+ }
1290
+ @media (prefers-reduced-motion: no-preference) {
1291
+ .zx-toggle__track,
1292
+ .zx-toggle__thumb {
1293
+ transition:
1294
+ background-color var(--zx-dur-fast) var(--zx-ease),
1295
+ border-color var(--zx-dur-fast) var(--zx-ease),
1296
+ transform var(--zx-dur-base) var(--zx-ease);
1297
+ }
1298
+ }
1299
+
1300
+ /* src/components/groupbox/groupbox.css */
1301
+ .zx-groupbox {
1302
+ overflow: hidden;
1303
+ border: 1px solid var(--zx-color-border);
1304
+ border-radius: var(--zx-radius-lg);
1305
+ background: var(--zx-color-bg-surface);
1306
+ }
1307
+ .zx-groupbox__summary {
1308
+ display: flex;
1309
+ align-items: center;
1310
+ gap: var(--zx-space-2);
1311
+ min-block-size: var(--zx-control-height);
1312
+ padding: var(--zx-space-2) var(--zx-space-4);
1313
+ font-weight: 650;
1314
+ cursor: pointer;
1315
+ user-select: none;
1316
+ }
1317
+ .zx-groupbox__summary::-webkit-details-marker {
1318
+ display: none;
1319
+ }
1320
+ .zx-groupbox__summary:hover {
1321
+ background: var(--zx-color-bg-hover);
1322
+ }
1323
+ .zx-groupbox__summary:focus-visible {
1324
+ box-shadow: var(--zx-focus-ring);
1325
+ }
1326
+ .zx-groupbox__chevron {
1327
+ display: inline-grid;
1328
+ flex: none;
1329
+ place-items: center;
1330
+ color: var(--zx-color-text-muted);
1331
+ }
1332
+ .zx-groupbox[open] .zx-groupbox__chevron {
1333
+ transform: rotate(90deg);
1334
+ }
1335
+ .zx-groupbox__content {
1336
+ border-block-start: 1px solid var(--zx-color-border);
1337
+ padding: var(--zx-space-4);
1338
+ }
1339
+ @media (prefers-reduced-motion: no-preference) {
1340
+ .zx-groupbox__chevron {
1341
+ transition: transform var(--zx-dur-fast) var(--zx-ease);
1342
+ }
1343
+ }
1344
+
1345
+ /* src/components/panel/panel.css */
1346
+ .zx-panel {
1347
+ overflow: hidden;
1348
+ border: 1px solid var(--zx-color-border);
1349
+ border-radius: var(--zx-radius-lg);
1350
+ background: var(--zx-color-bg-surface);
1351
+ box-shadow: var(--zx-overlay-shadow);
1352
+ }
1353
+ .zx-panel__header {
1354
+ display: flex;
1355
+ align-items: center;
1356
+ gap: var(--zx-space-2);
1357
+ min-block-size: var(--zx-control-height);
1358
+ background: var(--zx-color-bg-raised);
1359
+ }
1360
+ .zx-panel__toggle {
1361
+ display: flex;
1362
+ flex: 1 1 auto;
1363
+ align-items: center;
1364
+ gap: var(--zx-space-2);
1365
+ min-inline-size: 0;
1366
+ border: 0;
1367
+ background: none;
1368
+ padding: var(--zx-space-3) var(--zx-space-4);
1369
+ color: var(--zx-color-text);
1370
+ font: inherit;
1371
+ font-weight: 650;
1372
+ text-align: start;
1373
+ }
1374
+ button.zx-panel__toggle {
1375
+ cursor: pointer;
1376
+ }
1377
+ button.zx-panel__toggle:hover {
1378
+ background: var(--zx-color-bg-hover);
1379
+ }
1380
+ button.zx-panel__toggle:focus-visible {
1381
+ outline: 0;
1382
+ box-shadow: inset var(--zx-focus-ring);
1383
+ }
1384
+ .zx-panel__title {
1385
+ overflow: hidden;
1386
+ text-overflow: ellipsis;
1387
+ white-space: nowrap;
1388
+ }
1389
+ .zx-panel__buttons,
1390
+ .zx-panel__footer-buttons {
1391
+ display: flex;
1392
+ flex: none;
1393
+ align-items: center;
1394
+ gap: var(--zx-space-2);
1395
+ }
1396
+ .zx-panel__buttons {
1397
+ padding-inline-end: var(--zx-space-3);
1398
+ }
1399
+ .zx-panel__buttons:empty,
1400
+ .zx-panel__footer-buttons:empty {
1401
+ display: none;
1402
+ }
1403
+ .zx-panel__chevron {
1404
+ display: inline-grid;
1405
+ flex: none;
1406
+ place-items: center;
1407
+ color: var(--zx-color-text-muted);
1408
+ }
1409
+ .zx-panel[data-state=open] .zx-panel__chevron {
1410
+ transform: rotate(90deg);
1411
+ }
1412
+ .zx-panel__body,
1413
+ .zx-panel__footer {
1414
+ border-block-start: 1px solid var(--zx-color-border);
1415
+ }
1416
+ .zx-panel__content {
1417
+ padding: var(--zx-space-4);
1418
+ }
1419
+ .zx-panel__footer {
1420
+ display: flex;
1421
+ align-items: center;
1422
+ gap: var(--zx-space-3);
1423
+ padding: var(--zx-space-4);
1424
+ background: var(--zx-color-bg-raised);
1425
+ }
1426
+ .zx-panel__footer[hidden] {
1427
+ display: none;
1428
+ }
1429
+ .zx-panel__footer-content {
1430
+ flex: 1 1 auto;
1431
+ min-inline-size: 0;
1432
+ }
1433
+ .zx-panel__footer-content:empty {
1434
+ display: none;
1435
+ }
1436
+ .zx-panel__footer-buttons {
1437
+ margin-inline-start: auto;
1438
+ }
1439
+ @media (prefers-reduced-motion: no-preference) {
1440
+ .zx-panel__chevron {
1441
+ transition: transform var(--zx-dur-fast) var(--zx-ease);
1442
+ }
1443
+ }
1444
+
1445
+ /* src/components/master-panel/master-panel.css */
1446
+ .zx-master-panel {
1447
+ display: flex;
1448
+ min-block-size: 0;
1449
+ block-size: 100%;
1450
+ flex-direction: column;
1451
+ overflow: hidden;
1452
+ border: 1px solid var(--zx-color-border);
1453
+ border-radius: var(--zx-radius-lg);
1454
+ background: var(--zx-color-bg-surface);
1455
+ }
1456
+ .zx-master-panel__header {
1457
+ display: flex;
1458
+ flex: none;
1459
+ align-items: center;
1460
+ gap: var(--zx-space-4);
1461
+ min-block-size: calc(var(--zx-control-height) + var(--zx-space-4));
1462
+ border-block-start: 4px solid var(--zx-master-panel-accent, var(--zx-module-default));
1463
+ border-block-end: 1px solid var(--zx-color-border);
1464
+ background: var(--zx-color-bg-raised);
1465
+ padding: var(--zx-space-2) var(--zx-space-4);
1466
+ }
1467
+ .zx-master-panel__title {
1468
+ min-inline-size: 0;
1469
+ margin: 0;
1470
+ flex: 1;
1471
+ font-size: var(--zx-text-xl);
1472
+ }
1473
+ .zx-master-panel__buttons {
1474
+ display: flex;
1475
+ flex: none;
1476
+ align-items: center;
1477
+ gap: var(--zx-space-2);
1478
+ }
1479
+ .zx-master-panel__content {
1480
+ min-block-size: 0;
1481
+ padding: var(--zx-space-4);
1482
+ flex: 1 1 auto;
1483
+ overflow: auto;
1484
+ }
1485
+ .zx-master-panel__footer {
1486
+ flex: none;
1487
+ border-block-start: 1px solid var(--zx-color-border);
1488
+ background: var(--zx-color-bg-raised);
1489
+ padding: var(--zx-space-3) var(--zx-space-4);
1490
+ color: var(--zx-color-text-muted);
1491
+ }
1492
+
1493
+ /* src/components/tabbox/tabbox.css */
1494
+ .zx-tabbox {
1495
+ --zx-tabbox-radius: 0px;
1496
+ min-inline-size: 0;
1497
+ }
1498
+ .zx-tabbox__tablist {
1499
+ display: flex;
1500
+ align-items: stretch;
1501
+ overflow-x: auto;
1502
+ overflow-y: hidden;
1503
+ scrollbar-width: none;
1504
+ scrollbar-gutter: auto;
1505
+ }
1506
+ .zx-tabbox__tablist::-webkit-scrollbar {
1507
+ display: none;
1508
+ }
1509
+ .zx-tabbox__tab {
1510
+ position: relative;
1511
+ display: inline-flex;
1512
+ flex: 0 0 auto;
1513
+ align-items: center;
1514
+ justify-content: center;
1515
+ gap: var(--zx-space-2);
1516
+ min-block-size: 0;
1517
+ border: 0;
1518
+ border-radius: 0;
1519
+ background: none;
1520
+ color: var(--zx-color-text-muted);
1521
+ font: inherit;
1522
+ font-size: var(--zx-control-font-size);
1523
+ font-weight: 500;
1524
+ white-space: nowrap;
1525
+ cursor: pointer;
1526
+ }
1527
+ .zx-tabbox__tab:hover:not([aria-disabled=true]) {
1528
+ color: var(--zx-color-text);
1529
+ }
1530
+ .zx-tabbox__tab[aria-selected=true] {
1531
+ color: var(--zx-color-text);
1532
+ }
1533
+ .zx-tabbox__tab[aria-disabled=true] {
1534
+ color: var(--zx-color-text-placeholder);
1535
+ cursor: not-allowed;
1536
+ }
1537
+ .zx-tabbox__icon {
1538
+ display: inline-grid;
1539
+ flex: none;
1540
+ place-items: center;
1541
+ }
1542
+ .zx-tabbox[data-variant=divided] .zx-tabbox__tablist {
1543
+ border-block-end: 1px solid var(--zx-color-border);
1544
+ background: var(--zx-color-bg-muted);
1545
+ }
1546
+ .zx-tabbox[data-variant=divided] .zx-tabbox__tab {
1547
+ block-size: calc(var(--zx-control-height) + 8px);
1548
+ border-block-start: 2px solid transparent;
1549
+ border-inline-end: 1px solid var(--zx-color-border);
1550
+ padding-inline: var(--zx-space-4);
1551
+ }
1552
+ .zx-tabbox[data-variant=divided] .zx-tabbox__tab:last-child {
1553
+ border-inline-end: 0;
1554
+ }
1555
+ .zx-tabbox[data-variant=divided] .zx-tabbox__tab:hover:not([aria-disabled=true]):not([aria-selected=true]) {
1556
+ background: var(--zx-color-bg-hover);
1557
+ }
1558
+ .zx-tabbox[data-variant=divided] .zx-tabbox__tab[aria-selected=true] {
1559
+ border-block-start-color: var(--zx-color-accent);
1560
+ background: var(--zx-color-bg-surface);
1561
+ font-weight: 650;
1562
+ }
1563
+ .zx-tabbox[data-variant=divided] .zx-tabbox__tab:focus-visible {
1564
+ z-index: 1;
1565
+ outline: 0;
1566
+ box-shadow: inset var(--zx-focus-ring);
1567
+ }
1568
+ .zx-tabbox[data-variant=bracket] .zx-tabbox__tablist {
1569
+ border-block-end: 1px solid var(--zx-color-border);
1570
+ padding-inline-start: var(--zx-space-2);
1571
+ }
1572
+ .zx-tabbox[data-variant=bracket] .zx-tabbox__tab {
1573
+ block-size: calc(var(--zx-control-height) + 8px);
1574
+ margin-block-end: -1px;
1575
+ border: 1px solid transparent;
1576
+ border-block-end: 0;
1577
+ border-start-start-radius: var(--zx-tabbox-radius);
1578
+ border-start-end-radius: var(--zx-tabbox-radius);
1579
+ padding-inline: var(--zx-space-4);
1580
+ }
1581
+ .zx-tabbox[data-variant=bracket] .zx-tabbox__tab:hover:not([aria-disabled=true]):not([aria-selected=true]) {
1582
+ background: var(--zx-color-bg-hover);
1583
+ }
1584
+ .zx-tabbox[data-variant=bracket] .zx-tabbox__tab[aria-selected=true] {
1585
+ border-color: var(--zx-color-border);
1586
+ background: var(--zx-color-bg-surface);
1587
+ font-weight: 650;
1588
+ }
1589
+ .zx-tabbox[data-variant=bracket] .zx-tabbox__tab[aria-selected=true]::after {
1590
+ content: "";
1591
+ position: absolute;
1592
+ inset-inline: -1px;
1593
+ inset-block-end: -1px;
1594
+ block-size: 1px;
1595
+ background: var(--zx-color-bg-surface);
1596
+ }
1597
+ .zx-tabbox[data-variant=bracket] .zx-tabbox__tab:focus-visible {
1598
+ z-index: 1;
1599
+ outline: 0;
1600
+ box-shadow: inset var(--zx-focus-ring);
1601
+ }
1602
+ .zx-tabbox[data-variant=line] .zx-tabbox__tablist {
1603
+ border-block-end: 1px solid var(--zx-color-border);
1604
+ }
1605
+ .zx-tabbox[data-variant=line] .zx-tabbox__tab {
1606
+ block-size: calc(var(--zx-control-height) + 8px);
1607
+ border-block-end: 2px solid transparent;
1608
+ padding-inline: var(--zx-space-4);
1609
+ }
1610
+ .zx-tabbox[data-variant=line] .zx-tabbox__tab:hover:not([aria-disabled=true]) {
1611
+ border-block-end-color: var(--zx-color-border-strong);
1612
+ }
1613
+ .zx-tabbox[data-variant=line] .zx-tabbox__tab[aria-selected=true] {
1614
+ border-block-end-color: var(--zx-color-accent);
1615
+ font-weight: 600;
1616
+ }
1617
+ .zx-tabbox[data-variant=line] .zx-tabbox__tab:focus-visible {
1618
+ z-index: 1;
1619
+ outline: 0;
1620
+ box-shadow: inset var(--zx-focus-ring);
1621
+ }
1622
+ .zx-tabbox[data-variant=segmented] .zx-tabbox__tablist {
1623
+ inline-size: fit-content;
1624
+ max-inline-size: 100%;
1625
+ align-items: center;
1626
+ gap: 2px;
1627
+ block-size: var(--zx-control-height);
1628
+ border-radius: var(--zx-tabbox-radius);
1629
+ background: var(--zx-color-bg-muted);
1630
+ padding: 3px;
1631
+ }
1632
+ .zx-tabbox[data-variant=segmented] .zx-tabbox__tab {
1633
+ block-size: 100%;
1634
+ border: 1px solid transparent;
1635
+ border-radius: max(0px, calc(var(--zx-tabbox-radius) - 2px));
1636
+ padding-inline: var(--zx-space-3);
1637
+ font-size: var(--zx-text-sm);
1638
+ }
1639
+ .zx-tabbox[data-variant=segmented] .zx-tabbox__tab:hover:not([aria-disabled=true]):not([aria-selected=true]) {
1640
+ background: var(--zx-color-bg-hover);
1641
+ }
1642
+ .zx-tabbox[data-variant=segmented] .zx-tabbox__tab[aria-selected=true] {
1643
+ border-color: var(--zx-color-border-control);
1644
+ background: var(--zx-color-bg-control);
1645
+ box-shadow: var(--zx-shadow-2);
1646
+ }
1647
+ .zx-tabbox[data-variant=segmented] .zx-tabbox__tab:focus-visible {
1648
+ z-index: 1;
1649
+ outline: 0;
1650
+ border-color: var(--zx-color-ring);
1651
+ box-shadow: var(--zx-focus-ring);
1652
+ }
1653
+ @media (prefers-reduced-motion: no-preference) {
1654
+ .zx-tabbox__tab {
1655
+ transition:
1656
+ color var(--zx-dur-fast) var(--zx-ease),
1657
+ background-color var(--zx-dur-fast) var(--zx-ease),
1658
+ border-color var(--zx-dur-fast) var(--zx-ease),
1659
+ box-shadow var(--zx-dur-fast) var(--zx-ease);
1660
+ }
1661
+ }
1662
+ .zx-tabbox__badge {
1663
+ min-inline-size: 1.25rem;
1664
+ border-radius: var(--zx-radius-full);
1665
+ background: var(--zx-color-accent);
1666
+ padding-inline: var(--zx-space-1);
1667
+ color: var(--zx-color-on-accent);
1668
+ font-size: var(--zx-text-xs);
1669
+ font-weight: 700;
1670
+ line-height: 1.25rem;
1671
+ text-align: center;
1672
+ }
1673
+ .zx-tabbox__close {
1674
+ margin-inline-start: calc(-1 * var(--zx-space-1));
1675
+ color: var(--zx-color-text-muted);
1676
+ }
1677
+ .zx-tabbox__panel {
1678
+ padding-block-start: var(--zx-space-4);
1679
+ }
1680
+ .zx-tabbox[data-variant=divided] .zx-tabbox__panels,
1681
+ .zx-tabbox[data-variant=bracket] .zx-tabbox__panels {
1682
+ border: 1px solid var(--zx-color-border);
1683
+ border-block-start: 0;
1684
+ border-end-start-radius: var(--zx-tabbox-radius);
1685
+ border-end-end-radius: var(--zx-tabbox-radius);
1686
+ background: var(--zx-color-bg-surface);
1687
+ }
1688
+ .zx-tabbox[data-variant=divided] .zx-tabbox__panel,
1689
+ .zx-tabbox[data-variant=bracket] .zx-tabbox__panel {
1690
+ padding: var(--zx-space-4);
1691
+ }
1692
+ .zx-tabbox__panel:focus-visible {
1693
+ outline: 0;
1694
+ box-shadow: inset var(--zx-focus-ring);
1695
+ }
1696
+
1697
+ /* src/components/navigation-bar/navigation-bar.css */
1698
+ .zx-navigation-bar {
1699
+ min-inline-size: 0;
1700
+ container-type: inline-size;
1701
+ }
1702
+ .zx-navigation-bar__bar {
1703
+ display: flex;
1704
+ min-inline-size: 0;
1705
+ align-items: center;
1706
+ gap: var(--zx-space-3);
1707
+ border: 1px solid var(--zx-color-border);
1708
+ border-radius: var(--zx-radius-lg);
1709
+ background: var(--zx-color-bg-raised);
1710
+ padding: var(--zx-space-2) var(--zx-space-3);
1711
+ box-shadow: var(--zx-overlay-shadow);
1712
+ }
1713
+ .zx-navigation-bar__brand {
1714
+ flex: none;
1715
+ padding-inline: var(--zx-space-2);
1716
+ color: var(--zx-color-accent);
1717
+ font-size: var(--zx-text-xl);
1718
+ font-weight: 750;
1719
+ }
1720
+ .zx-navigation-bar__navigation {
1721
+ min-inline-size: 0;
1722
+ flex: 1;
1723
+ }
1724
+ .zx-navigation-bar__items {
1725
+ display: flex;
1726
+ min-inline-size: 0;
1727
+ align-items: center;
1728
+ gap: var(--zx-space-1);
1729
+ }
1730
+ .zx-navigation-bar__item {
1731
+ display: inline-flex;
1732
+ min-block-size: var(--zx-control-height);
1733
+ align-items: center;
1734
+ gap: var(--zx-space-2);
1735
+ border: 0;
1736
+ border-radius: var(--zx-control-radius);
1737
+ background: var(--zx-color-bg-raised);
1738
+ padding-inline: var(--zx-control-pad-x);
1739
+ color: var(--zx-color-text-muted);
1740
+ font: inherit;
1741
+ text-decoration: none;
1742
+ cursor: pointer;
1743
+ }
1744
+ .zx-navigation-bar__item:hover:not([aria-disabled=true]) {
1745
+ background: var(--zx-color-bg-hover);
1746
+ color: var(--zx-color-text);
1747
+ }
1748
+ .zx-navigation-bar__item[aria-current=page],
1749
+ .zx-navigation-bar__item[aria-selected=true] {
1750
+ background: var(--zx-color-bg-selected);
1751
+ color: var(--zx-color-accent);
1752
+ font-weight: 650;
1753
+ }
1754
+ .zx-navigation-bar__item[aria-disabled=true] {
1755
+ color: var(--zx-color-text-muted);
1756
+ cursor: not-allowed;
1757
+ opacity: .6;
1758
+ }
1759
+ .zx-navigation-bar__item:focus-visible {
1760
+ box-shadow: var(--zx-focus-ring);
1761
+ }
1762
+ .zx-navigation-bar__badge {
1763
+ min-inline-size: var(--zx-space-4);
1764
+ border-radius: var(--zx-radius-full);
1765
+ background: var(--zx-color-accent);
1766
+ padding-inline: var(--zx-space-1);
1767
+ color: var(--zx-color-on-accent);
1768
+ font-size: var(--zx-text-sm);
1769
+ font-weight: 700;
1770
+ line-height: var(--zx-space-4);
1771
+ text-align: center;
1772
+ }
1773
+ .zx-navigation-bar__more {
1774
+ display: none;
1775
+ }
1776
+ .zx-navigation-bar__more[data-empty=true] {
1777
+ display: none;
1778
+ }
1779
+ .zx-navigation-bar__actions {
1780
+ display: flex;
1781
+ flex: none;
1782
+ align-items: center;
1783
+ gap: var(--zx-space-2);
1784
+ margin-inline-start: auto;
1785
+ }
1786
+ .zx-navigation-bar__actions:empty {
1787
+ display: none;
1788
+ }
1789
+ .zx-navigation-bar__panels {
1790
+ border: 1px solid var(--zx-color-border);
1791
+ border-block-start: 0;
1792
+ border-radius: 0 0 var(--zx-radius-lg) var(--zx-radius-lg);
1793
+ background: var(--zx-color-bg-surface);
1794
+ }
1795
+ .zx-navigation-bar__panel {
1796
+ padding: var(--zx-space-4);
1797
+ }
1798
+ .zx-navigation-bar__panel:focus-visible {
1799
+ box-shadow: inset var(--zx-focus-ring);
1800
+ }
1801
+ @container (max-width: 44rem) {
1802
+ .zx-navigation-bar__items {
1803
+ display: none;
1804
+ }
1805
+ .zx-navigation-bar__more:not([data-empty=true]) {
1806
+ display: inline-flex;
1807
+ }
1808
+ }
1809
+
1810
+ /* src/components/search/search.css */
1811
+ .zx-search {
1812
+ position: relative;
1813
+ display: inline-flex;
1814
+ align-items: stretch;
1815
+ min-block-size: var(--zx-control-height);
1816
+ border: 1px solid var(--zx-color-border-control);
1817
+ border-radius: var(--zx-control-radius);
1818
+ background: var(--zx-color-bg-control);
1819
+ }
1820
+ .zx-search:focus-within {
1821
+ box-shadow: var(--zx-focus-ring);
1822
+ }
1823
+ .zx-search__input {
1824
+ min-inline-size: 12rem;
1825
+ min-block-size: 0;
1826
+ border: 0;
1827
+ background: none;
1828
+ padding-inline: var(--zx-control-pad-x) var(--zx-control-height);
1829
+ }
1830
+ .zx-search__input:focus-visible,
1831
+ .zx-search__clear:focus-visible,
1832
+ .zx-search__submit:focus-visible {
1833
+ box-shadow: var(--zx-focus-ring);
1834
+ }
1835
+ .zx-search__input::-webkit-search-cancel-button {
1836
+ appearance: none;
1837
+ }
1838
+ .zx-search__clear,
1839
+ .zx-search__submit {
1840
+ display: inline-grid;
1841
+ place-items: center;
1842
+ min-block-size: 0;
1843
+ inline-size: var(--zx-control-height);
1844
+ border: 0;
1845
+ border-radius: 0;
1846
+ background: none;
1847
+ color: var(--zx-color-text-muted);
1848
+ padding: 0;
1849
+ }
1850
+ .zx-search__clear:hover,
1851
+ .zx-search__submit:hover {
1852
+ color: var(--zx-color-text);
1853
+ }
1854
+ .zx-search__submit:hover {
1855
+ background: var(--zx-color-bg-hover);
1856
+ }
1857
+ .zx-search__submit {
1858
+ border-start-end-radius: var(--zx-control-radius);
1859
+ border-end-end-radius: var(--zx-control-radius);
1860
+ }
1861
+ .zx-search__clear {
1862
+ position: absolute;
1863
+ inset-block: 0;
1864
+ inset-inline-end: var(--zx-control-height);
1865
+ }
1866
+ .zx-search__clear[hidden] {
1867
+ display: none;
1868
+ }
1869
+
1870
+ /* src/components/message/message.css */
1871
+ .zx-message {
1872
+ display: grid;
1873
+ gap: var(--zx-space-2);
1874
+ }
1875
+ .zx-message-region {
1876
+ position: fixed;
1877
+ inset-block: var(--zx-space-4) auto;
1878
+ inset-inline: var(--zx-space-4);
1879
+ inline-size: min(420px, calc(100% - (2 * var(--zx-space-4))));
1880
+ max-block-size: calc(100% - (2 * var(--zx-space-4)));
1881
+ margin: 0 auto;
1882
+ overflow: visible;
1883
+ border: 0;
1884
+ background: none;
1885
+ padding: 0;
1886
+ }
1887
+ .zx-message-region:popover-open {
1888
+ display: grid;
1889
+ }
1890
+ .zx-message__toast {
1891
+ --zx-message-kind: var(--zx-color-info);
1892
+ position: relative;
1893
+ display: grid;
1894
+ grid-template-columns: auto minmax(0, 1fr) auto;
1895
+ align-items: start;
1896
+ gap: var(--zx-space-3);
1897
+ border: 1px solid var(--zx-color-border);
1898
+ border-inline-start: 4px solid var(--zx-message-kind);
1899
+ border-radius: var(--zx-radius-md);
1900
+ background: var(--zx-color-info-bg);
1901
+ box-shadow: var(--zx-overlay-shadow);
1902
+ padding: var(--zx-space-3);
1903
+ color: var(--zx-color-text);
1904
+ }
1905
+ .zx-message__toast[data-kind=success] {
1906
+ --zx-message-kind: var(--zx-color-success);
1907
+ background: var(--zx-color-success-bg);
1908
+ }
1909
+ .zx-message__toast[data-kind=warning] {
1910
+ --zx-message-kind: var(--zx-color-warning);
1911
+ background: var(--zx-color-warning-bg);
1912
+ }
1913
+ .zx-message__toast[data-kind=error] {
1914
+ --zx-message-kind: var(--zx-color-danger);
1915
+ background: var(--zx-color-danger-bg);
1916
+ }
1917
+ .zx-message__icon {
1918
+ display: inline-grid;
1919
+ place-items: center;
1920
+ color: var(--zx-message-kind);
1921
+ }
1922
+ .zx-message__content {
1923
+ min-inline-size: 0;
1924
+ overflow-wrap: anywhere;
1925
+ }
1926
+ .zx-message__close {
1927
+ margin: calc(-1 * var(--zx-space-1)) calc(-1 * var(--zx-space-1)) 0 0;
1928
+ }
1929
+ .zx-message__progress {
1930
+ overflow: hidden;
1931
+ block-size: 4px;
1932
+ margin-block-start: var(--zx-space-2);
1933
+ border-radius: var(--zx-radius-full);
1934
+ background: var(--zx-color-border);
1935
+ }
1936
+ .zx-message__progress-fill {
1937
+ display: block;
1938
+ block-size: 100%;
1939
+ border-radius: inherit;
1940
+ background: var(--zx-message-kind);
1941
+ }
1942
+ @media (prefers-reduced-motion: no-preference) {
1943
+ .zx-message__toast[data-state=open] {
1944
+ animation: zx-message-enter var(--zx-dur-base) var(--zx-ease) both;
1945
+ }
1946
+ .zx-message__toast[data-state=closing] {
1947
+ animation: zx-message-exit var(--zx-dur-base) var(--zx-ease) both;
1948
+ }
1949
+ .zx-message__progress-fill {
1950
+ transition: inline-size var(--zx-dur-base) var(--zx-ease);
1951
+ }
1952
+ }
1953
+ @keyframes zx-message-enter {
1954
+ from {
1955
+ opacity: 0;
1956
+ transform: translateY(calc(-1 * var(--zx-space-2)));
1957
+ }
1958
+ to {
1959
+ opacity: 1;
1960
+ transform: translateY(0);
1961
+ }
1962
+ }
1963
+ @keyframes zx-message-exit {
1964
+ from {
1965
+ opacity: 1;
1966
+ transform: translateY(0);
1967
+ }
1968
+ to {
1969
+ opacity: 0;
1970
+ transform: translateY(calc(-1 * var(--zx-space-2)));
1971
+ }
1972
+ }
1973
+
1974
+ /* src/components/modal/modal.css */
1975
+ .zx-modal {
1976
+ max-inline-size: calc(100vw - (2 * var(--zx-space-4)));
1977
+ max-block-size: calc(100vh - (2 * var(--zx-space-4)));
1978
+ overflow: auto;
1979
+ border: 1px solid var(--zx-color-border);
1980
+ border-radius: var(--zx-radius-lg);
1981
+ background: var(--zx-color-bg-raised);
1982
+ box-shadow: var(--zx-overlay-shadow);
1983
+ color: var(--zx-color-text);
1984
+ padding: 0;
1985
+ }
1986
+ .zx-modal::backdrop {
1987
+ background: var(--zx-color-bg-backdrop);
1988
+ }
1989
+ .zx-modal__content {
1990
+ padding: var(--zx-space-5);
1991
+ }
1992
+ body:has(> .zx-modal[open]) {
1993
+ overflow: hidden;
1994
+ overscroll-behavior: none;
1995
+ }
1996
+ @media (prefers-reduced-motion: no-preference) {
1997
+ .zx-modal[data-state=open] {
1998
+ animation: zx-modal-enter var(--zx-dur-base) var(--zx-ease);
1999
+ }
2000
+ .zx-modal[data-state=open]::backdrop {
2001
+ animation: zx-modal-backdrop-enter var(--zx-dur-base) var(--zx-ease);
2002
+ }
2003
+ }
2004
+ @keyframes zx-modal-enter {
2005
+ from {
2006
+ opacity: 0;
2007
+ transform: translateY(var(--zx-space-2)) scale(.98);
2008
+ }
2009
+ }
2010
+ @keyframes zx-modal-backdrop-enter {
2011
+ from {
2012
+ opacity: 0;
2013
+ }
2014
+ }
2015
+
2016
+ /* src/components/dialog/dialog.css */
2017
+ .zx-dialog {
2018
+ grid-template-rows: auto minmax(0, 1fr) auto;
2019
+ padding: 0;
2020
+ }
2021
+ .zx-dialog[open] {
2022
+ display: grid;
2023
+ }
2024
+ .zx-dialog__header,
2025
+ .zx-dialog__footer {
2026
+ display: flex;
2027
+ align-items: center;
2028
+ gap: var(--zx-space-3);
2029
+ padding: var(--zx-space-4) var(--zx-space-5);
2030
+ }
2031
+ .zx-dialog__header {
2032
+ justify-content: space-between;
2033
+ border-block-end: 1px solid var(--zx-color-border);
2034
+ }
2035
+ .zx-dialog__title {
2036
+ margin: 0;
2037
+ font-size: var(--zx-text-xl);
2038
+ line-height: 1.3;
2039
+ }
2040
+ .zx-dialog__close {
2041
+ flex: none;
2042
+ inline-size: var(--zx-control-height);
2043
+ padding-inline: 0;
2044
+ font-size: var(--zx-text-xl);
2045
+ }
2046
+ .zx-dialog__body {
2047
+ min-block-size: 0;
2048
+ overflow: auto;
2049
+ }
2050
+ .zx-dialog__footer {
2051
+ justify-content: flex-end;
2052
+ border-block-start: 1px solid var(--zx-color-border);
2053
+ }
2054
+ .zx-dialog__footer[hidden] {
2055
+ display: none;
2056
+ }
2057
+ .zx-dialog__view[aria-hidden=true] {
2058
+ display: none;
2059
+ }
2060
+ .zx-dialog__prompt {
2061
+ display: grid;
2062
+ gap: var(--zx-space-3);
2063
+ }
2064
+ .zx-dialog__prompt-input {
2065
+ inline-size: 100%;
2066
+ }
2067
+ @media (prefers-reduced-motion: no-preference) {
2068
+ .zx-dialog__view[aria-hidden=false] {
2069
+ animation: zx-dialog-view-enter var(--zx-dur-fast) var(--zx-ease);
2070
+ }
2071
+ }
2072
+ @keyframes zx-dialog-view-enter {
2073
+ from {
2074
+ opacity: 0;
2075
+ transform: translateX(var(--zx-space-2));
2076
+ }
2077
+ }
2078
+
2079
+ /* src/components/dropdown/dropdown.css */
2080
+ .zx-dropdown {
2081
+ max-inline-size: calc(100vw - (2 * var(--zx-space-3)));
2082
+ max-block-size: calc(100vh - (2 * var(--zx-space-3)));
2083
+ overflow: auto;
2084
+ border: 1px solid var(--zx-color-border);
2085
+ border-radius: var(--zx-radius-md);
2086
+ background: var(--zx-color-bg-raised);
2087
+ box-shadow: var(--zx-overlay-shadow);
2088
+ color: var(--zx-color-text);
2089
+ padding: var(--zx-space-3);
2090
+ }
2091
+ @media (prefers-reduced-motion: no-preference) {
2092
+ .zx-dropdown:popover-open {
2093
+ animation: zx-dropdown-enter var(--zx-dur-fast) var(--zx-ease);
2094
+ }
2095
+ }
2096
+ @keyframes zx-dropdown-enter {
2097
+ from {
2098
+ opacity: 0;
2099
+ transform: translateY(calc(-1 * var(--zx-space-1)));
2100
+ }
2101
+ }
2102
+
2103
+ /* src/components/tooltip/tooltip.css */
2104
+ .zx-tooltip {
2105
+ max-inline-size: var(--zx-tooltip-max-inline-size, 260px);
2106
+ border: 1px solid var(--zx-color-border);
2107
+ border-radius: var(--zx-radius-md);
2108
+ background: var(--zx-color-bg-raised);
2109
+ box-shadow: var(--zx-overlay-shadow);
2110
+ padding: var(--zx-space-1) var(--zx-space-2);
2111
+ color: var(--zx-color-text);
2112
+ font-size: var(--zx-text-sm);
2113
+ line-height: 1.45;
2114
+ text-align: start;
2115
+ overflow-wrap: anywhere;
2116
+ pointer-events: none;
2117
+ user-select: none;
2118
+ }
2119
+ @media (prefers-reduced-motion: no-preference) {
2120
+ .zx-tooltip:popover-open {
2121
+ animation: zx-tooltip-enter var(--zx-dur-fast) var(--zx-ease);
2122
+ }
2123
+ }
2124
+ @keyframes zx-tooltip-enter {
2125
+ from {
2126
+ opacity: 0;
2127
+ transform: translateY(calc(-1 * var(--zx-space-1)));
2128
+ }
2129
+ }
2130
+
2131
+ /* src/components/split-view/split-view.css */
2132
+ .zx-split-view {
2133
+ --zx-split-view-divider-size: var(--zx-space-2);
2134
+ --zx-split-view-divider-line: 1px;
2135
+ display: grid;
2136
+ min-inline-size: 0;
2137
+ min-block-size: 0;
2138
+ }
2139
+ .zx-split-view[data-orientation=horizontal] {
2140
+ grid-template-columns: var(--zx-split-size, 38%) auto minmax(0, 1fr);
2141
+ grid-template-rows: minmax(0, 1fr);
2142
+ }
2143
+ .zx-split-view[data-orientation=vertical] {
2144
+ grid-template-columns: minmax(0, 1fr);
2145
+ grid-template-rows: var(--zx-split-size, 38%) auto minmax(0, 1fr);
2146
+ }
2147
+ .zx-split-view[data-orientation=horizontal][data-collapsed=start] {
2148
+ grid-template-columns: 0 auto minmax(0, 1fr);
2149
+ }
2150
+ .zx-split-view[data-orientation=horizontal][data-collapsed=end] {
2151
+ grid-template-columns: minmax(0, 1fr) auto 0;
2152
+ }
2153
+ .zx-split-view[data-orientation=vertical][data-collapsed=start] {
2154
+ grid-template-rows: 0 auto minmax(0, 1fr);
2155
+ }
2156
+ .zx-split-view[data-orientation=vertical][data-collapsed=end] {
2157
+ grid-template-rows: minmax(0, 1fr) auto 0;
2158
+ }
2159
+ .zx-split-view__pane {
2160
+ overflow: auto;
2161
+ min-inline-size: 0;
2162
+ min-block-size: 0;
2163
+ }
2164
+ .zx-split-view[data-collapsed=start] > .zx-split-view__pane[data-pane=start],
2165
+ .zx-split-view[data-collapsed=end] > .zx-split-view__pane[data-pane=end] {
2166
+ visibility: hidden;
2167
+ }
2168
+ .zx-split-view__divider {
2169
+ position: relative;
2170
+ touch-action: none;
2171
+ user-select: none;
2172
+ }
2173
+ .zx-split-view__divider::before {
2174
+ content: "";
2175
+ position: absolute;
2176
+ background: var(--zx-color-border);
2177
+ }
2178
+ .zx-split-view[data-orientation=horizontal] > .zx-split-view__divider {
2179
+ inline-size: var(--zx-split-view-divider-size);
2180
+ cursor: col-resize;
2181
+ }
2182
+ .zx-split-view[data-orientation=horizontal] > .zx-split-view__divider::before {
2183
+ inset-block: 0;
2184
+ inset-inline-start: calc(50% - (var(--zx-split-view-divider-line) / 2));
2185
+ inline-size: var(--zx-split-view-divider-line);
2186
+ }
2187
+ .zx-split-view[data-orientation=vertical] > .zx-split-view__divider {
2188
+ block-size: var(--zx-split-view-divider-size);
2189
+ cursor: row-resize;
2190
+ }
2191
+ .zx-split-view[data-orientation=vertical] > .zx-split-view__divider::before {
2192
+ inset-inline: 0;
2193
+ inset-block-start: calc(50% - (var(--zx-split-view-divider-line) / 2));
2194
+ block-size: var(--zx-split-view-divider-line);
2195
+ }
2196
+ .zx-split-view__divider:hover::before,
2197
+ .zx-split-view[data-dragging=true] > .zx-split-view__divider::before {
2198
+ --zx-split-view-divider-line: 2px;
2199
+ background: var(--zx-color-accent);
2200
+ }
2201
+ .zx-split-view__divider:focus-visible {
2202
+ outline: 0;
2203
+ box-shadow: var(--zx-focus-ring);
2204
+ z-index: 1;
2205
+ }
2206
+ .zx-split-view__divider:focus-visible::before {
2207
+ background: var(--zx-color-accent);
2208
+ }
2209
+ .zx-split-view__divider[aria-disabled=true] {
2210
+ cursor: default;
2211
+ }
2212
+ .zx-split-view__divider[aria-disabled=true]:hover::before {
2213
+ --zx-split-view-divider-line: 1px;
2214
+ background: var(--zx-color-border);
2215
+ }
2216
+ .zx-split-view[data-dragging=true] {
2217
+ user-select: none;
2218
+ }
2219
+ .zx-split-view[data-orientation=horizontal][data-dragging=true] {
2220
+ cursor: col-resize;
2221
+ }
2222
+ .zx-split-view[data-orientation=vertical][data-dragging=true] {
2223
+ cursor: row-resize;
2224
+ }
2225
+ @media (prefers-reduced-motion: no-preference) {
2226
+ .zx-split-view__divider::before {
2227
+ transition: background-color var(--zx-dur-fast) var(--zx-ease);
2228
+ }
2229
+ }
2230
+
2231
+ /* src/components/menu-button/menu-button.css */
2232
+ .zx-menu-button {
2233
+ display: inline-flex;
2234
+ align-items: center;
2235
+ justify-content: center;
2236
+ gap: var(--zx-space-2);
2237
+ }
2238
+ .zx-menu-button__menu {
2239
+ min-inline-size: 180px;
2240
+ padding: var(--zx-space-1);
2241
+ }
2242
+ .zx-menu-button__item {
2243
+ display: flex;
2244
+ align-items: center;
2245
+ gap: var(--zx-space-2);
2246
+ inline-size: 100%;
2247
+ min-block-size: var(--zx-control-height);
2248
+ border-color: var(--zx-color-bg-raised);
2249
+ background: var(--zx-color-bg-raised);
2250
+ padding-inline: var(--zx-control-pad-x);
2251
+ text-align: start;
2252
+ }
2253
+ .zx-menu-button__item:hover,
2254
+ .zx-menu-button__item:focus-visible {
2255
+ background: var(--zx-color-bg-hover);
2256
+ }
2257
+ .zx-menu-button__item[data-danger=true] {
2258
+ color: var(--zx-color-danger);
2259
+ }
2260
+ .zx-menu-button__item[aria-disabled=true] {
2261
+ color: var(--zx-color-text-muted);
2262
+ cursor: not-allowed;
2263
+ opacity: .65;
2264
+ }
2265
+ .zx-menu-button__icon {
2266
+ display: inline-flex;
2267
+ flex: none;
2268
+ }
2269
+ .zx-menu-button__separator {
2270
+ block-size: 1px;
2271
+ margin: var(--zx-space-1) var(--zx-space-2);
2272
+ background: var(--zx-color-border);
2273
+ }
2274
+
2275
+ /* src/components/context-menu/context-menu.css */
2276
+ .zx-context-menu__anchor {
2277
+ position: fixed;
2278
+ inline-size: 0;
2279
+ block-size: 0;
2280
+ pointer-events: none;
2281
+ }
2282
+ .zx-context-menu {
2283
+ min-inline-size: 180px;
2284
+ padding: var(--zx-space-1);
2285
+ }
2286
+ .zx-context-menu__item {
2287
+ display: flex;
2288
+ align-items: center;
2289
+ gap: var(--zx-space-2);
2290
+ inline-size: 100%;
2291
+ min-block-size: var(--zx-control-height);
2292
+ border-color: var(--zx-color-bg-raised);
2293
+ background: var(--zx-color-bg-raised);
2294
+ padding-inline: var(--zx-control-pad-x);
2295
+ text-align: start;
2296
+ }
2297
+ .zx-context-menu__item:hover,
2298
+ .zx-context-menu__item:focus-visible {
2299
+ background: var(--zx-color-bg-hover);
2300
+ }
2301
+ .zx-context-menu__item[data-danger=true] {
2302
+ color: var(--zx-color-danger);
2303
+ }
2304
+ .zx-context-menu__item[aria-disabled=true] {
2305
+ color: var(--zx-color-text-muted);
2306
+ cursor: not-allowed;
2307
+ opacity: 0.65;
2308
+ }
2309
+ .zx-context-menu__icon {
2310
+ display: inline-flex;
2311
+ flex: none;
2312
+ }
2313
+ .zx-context-menu__separator {
2314
+ block-size: 1px;
2315
+ margin: var(--zx-space-1) var(--zx-space-2);
2316
+ background: var(--zx-color-border);
2317
+ }
2318
+
2319
+ /* src/components/select/select.css */
2320
+ .zx-select {
2321
+ display: inline-block;
2322
+ inline-size: 100%;
2323
+ min-inline-size: 0;
2324
+ color: var(--zx-color-text);
2325
+ font-size: var(--zx-control-font-size);
2326
+ }
2327
+ .zx-select__control {
2328
+ display: grid;
2329
+ grid-template-columns: minmax(0, 1fr) auto auto auto;
2330
+ align-items: center;
2331
+ min-block-size: var(--zx-control-height);
2332
+ overflow: hidden;
2333
+ border: 1px solid var(--zx-color-border-control);
2334
+ border-radius: var(--zx-control-radius);
2335
+ background: var(--zx-color-bg-control);
2336
+ }
2337
+ .zx-select__control:has(.zx-select__input:focus-visible) {
2338
+ box-shadow: var(--zx-focus-ring);
2339
+ }
2340
+ .zx-select__input {
2341
+ inline-size: 100%;
2342
+ min-inline-size: 0;
2343
+ min-block-size: calc(var(--zx-control-height) - 2px) !important;
2344
+ border: 0 !important;
2345
+ border-radius: 0 !important;
2346
+ background: none !important;
2347
+ box-shadow: none !important;
2348
+ }
2349
+ .zx-select__input:read-only {
2350
+ cursor: default;
2351
+ }
2352
+ .zx-select__clear,
2353
+ .zx-select__toggle {
2354
+ display: grid;
2355
+ place-items: center;
2356
+ inline-size: var(--zx-control-height);
2357
+ min-block-size: calc(var(--zx-control-height) - 2px) !important;
2358
+ border: 0 !important;
2359
+ border-radius: 0 !important;
2360
+ background: none !important;
2361
+ color: var(--zx-color-text-muted);
2362
+ padding: 0 !important;
2363
+ }
2364
+ .zx-select__clear:hover,
2365
+ .zx-select__toggle:hover {
2366
+ color: var(--zx-color-text);
2367
+ }
2368
+ .zx-select__clear[hidden],
2369
+ .zx-select__loading[hidden] {
2370
+ display: none;
2371
+ }
2372
+ .zx-select__loading {
2373
+ inline-size: 14px;
2374
+ block-size: 14px;
2375
+ border: 2px solid var(--zx-color-border);
2376
+ border-block-start-color: var(--zx-color-accent);
2377
+ border-radius: var(--zx-radius-full);
2378
+ }
2379
+ .zx-select[aria-disabled=true] .zx-select__control {
2380
+ background: var(--zx-color-bg-page);
2381
+ color: var(--zx-color-text-muted);
2382
+ cursor: default;
2383
+ }
2384
+ .zx-select__panel {
2385
+ z-index: 20;
2386
+ inline-size: max-content;
2387
+ max-inline-size: calc(100vw - var(--zx-space-4));
2388
+ overflow: hidden;
2389
+ border: 1px solid var(--zx-color-border-strong);
2390
+ border-radius: var(--zx-radius-md);
2391
+ background: var(--zx-color-bg-raised);
2392
+ box-shadow: var(--zx-overlay-shadow);
2393
+ color: var(--zx-color-text);
2394
+ padding: var(--zx-space-1);
2395
+ }
2396
+ .zx-select__list {
2397
+ min-inline-size: 0;
2398
+ overflow-y: auto;
2399
+ overscroll-behavior: contain;
2400
+ }
2401
+ .zx-select__option {
2402
+ display: flex;
2403
+ align-items: center;
2404
+ gap: var(--zx-space-2);
2405
+ min-block-size: var(--zx-control-height);
2406
+ border-radius: var(--zx-radius-sm);
2407
+ cursor: default;
2408
+ padding: var(--zx-space-1) var(--zx-control-pad-x);
2409
+ }
2410
+ .zx-select__option-content {
2411
+ min-inline-size: 0;
2412
+ flex: 1;
2413
+ }
2414
+ .zx-select__option[data-active=true] {
2415
+ background: var(--zx-color-bg-hover);
2416
+ }
2417
+ .zx-select__option:hover {
2418
+ background: var(--zx-color-bg-hover);
2419
+ }
2420
+ .zx-select__option[aria-selected=true] {
2421
+ background: var(--zx-color-bg-selected);
2422
+ }
2423
+ .zx-select__option > svg,
2424
+ .zx-select__option > .zx-icon {
2425
+ flex: none;
2426
+ color: var(--zx-color-accent);
2427
+ }
2428
+ .zx-select__group {
2429
+ position: sticky;
2430
+ z-index: 1;
2431
+ inset-block-start: 0;
2432
+ background: var(--zx-color-bg-raised);
2433
+ color: var(--zx-color-text-muted);
2434
+ font-size: var(--zx-text-xs);
2435
+ font-weight: 700;
2436
+ letter-spacing: 0.04em;
2437
+ padding: var(--zx-space-2) var(--zx-control-pad-x) var(--zx-space-1);
2438
+ text-transform: uppercase;
2439
+ }
2440
+ .zx-select__empty {
2441
+ color: var(--zx-color-text-muted);
2442
+ padding: var(--zx-space-3) var(--zx-control-pad-x);
2443
+ text-align: center;
2444
+ }
2445
+ .zx-select__priority {
2446
+ display: flex;
2447
+ align-items: center;
2448
+ gap: var(--zx-space-2);
2449
+ }
2450
+ .zx-select__priority-icon {
2451
+ inline-size: 10px;
2452
+ block-size: 10px;
2453
+ flex: none;
2454
+ border-radius: var(--zx-radius-sm);
2455
+ background: var(--zx-color-warning);
2456
+ }
2457
+ .zx-select__priority-icon[data-level="0"],
2458
+ .zx-select__priority-icon[data-level="1"] {
2459
+ background: var(--zx-color-success);
2460
+ }
2461
+ .zx-select__priority-icon[data-level="3"],
2462
+ .zx-select__priority-icon[data-level="4"] {
2463
+ background: var(--zx-color-danger);
2464
+ }
2465
+ @media (prefers-reduced-motion: no-preference) {
2466
+ .zx-select__loading {
2467
+ animation: zx-select-spin var(--zx-dur-slow) linear infinite;
2468
+ }
2469
+ }
2470
+ @keyframes zx-select-spin {
2471
+ to {
2472
+ transform: rotate(1turn);
2473
+ }
2474
+ }
2475
+
2476
+ /* src/components/checklist/checklist.css */
2477
+ .zx-checklist {
2478
+ display: grid;
2479
+ gap: var(--zx-space-2);
2480
+ min-inline-size: 0;
2481
+ color: var(--zx-color-text);
2482
+ font-size: var(--zx-control-font-size);
2483
+ }
2484
+ .zx-checklist__label {
2485
+ font-weight: 650;
2486
+ }
2487
+ .zx-checklist__search {
2488
+ inline-size: 100%;
2489
+ }
2490
+ .zx-checklist__search[hidden] {
2491
+ display: none;
2492
+ }
2493
+ .zx-checklist__list {
2494
+ overflow-y: auto;
2495
+ overscroll-behavior: contain;
2496
+ border: 1px solid var(--zx-color-border);
2497
+ border-radius: var(--zx-radius-md);
2498
+ background: var(--zx-color-bg-surface);
2499
+ padding: var(--zx-space-1);
2500
+ }
2501
+ .zx-checklist__item {
2502
+ display: flex;
2503
+ align-items: center;
2504
+ gap: var(--zx-space-2);
2505
+ min-block-size: var(--zx-control-height);
2506
+ border-radius: var(--zx-radius-sm);
2507
+ cursor: pointer;
2508
+ padding: var(--zx-space-1) var(--zx-space-2);
2509
+ }
2510
+ .zx-checklist__item:hover {
2511
+ background: var(--zx-color-bg-hover);
2512
+ }
2513
+ .zx-checklist__item:has(input:checked) {
2514
+ background: var(--zx-color-bg-selected);
2515
+ }
2516
+ .zx-checklist__item input {
2517
+ flex: none;
2518
+ accent-color: var(--zx-color-accent);
2519
+ }
2520
+ .zx-checklist__item:has(input:focus-visible) {
2521
+ box-shadow: var(--zx-focus-ring);
2522
+ }
2523
+ .zx-checklist__empty {
2524
+ color: var(--zx-color-text-muted);
2525
+ padding: var(--zx-space-3);
2526
+ text-align: center;
2527
+ }
2528
+ .zx-checklist[data-state=loading] .zx-checklist__list {
2529
+ color: var(--zx-color-text-muted);
2530
+ }
2531
+
2532
+ /* src/components/tag-picker/tag-picker.css */
2533
+ .zx-tag-picker {
2534
+ display: block;
2535
+ color: var(--zx-color-text);
2536
+ font-size: var(--zx-control-font-size);
2537
+ }
2538
+ .zx-tag-picker__control {
2539
+ display: flex;
2540
+ flex-wrap: wrap;
2541
+ align-items: center;
2542
+ gap: var(--zx-space-1);
2543
+ min-block-size: var(--zx-control-height);
2544
+ padding: 3px 3px 3px var(--zx-space-2);
2545
+ border: 1px solid var(--zx-color-border-control);
2546
+ border-radius: var(--zx-control-radius);
2547
+ background: var(--zx-color-bg-control);
2548
+ cursor: text;
2549
+ }
2550
+ .zx-tag-picker[data-focus] .zx-tag-picker__control {
2551
+ box-shadow: var(--zx-focus-ring);
2552
+ }
2553
+ .zx-tag-picker[data-disabled] {
2554
+ opacity: 0.55;
2555
+ }
2556
+ .zx-tag-picker[data-disabled] .zx-tag-picker__control,
2557
+ .zx-tag-picker[data-readonly] .zx-tag-picker__control {
2558
+ cursor: default;
2559
+ }
2560
+ .zx-tag-picker__tags {
2561
+ display: contents;
2562
+ }
2563
+ .zx-tag-picker__tag {
2564
+ display: inline-flex;
2565
+ align-items: center;
2566
+ gap: var(--zx-space-1);
2567
+ max-inline-size: 100%;
2568
+ padding-inline-start: var(--zx-space-2);
2569
+ border: 1px solid var(--zx-color-border);
2570
+ border-radius: var(--zx-radius-md);
2571
+ background: var(--zx-color-bg-muted);
2572
+ font-size: var(--zx-text-sm);
2573
+ line-height: 1.5;
2574
+ }
2575
+ .zx-tag-picker__tag:not(:has(.zx-tag-picker__remove)) {
2576
+ padding-inline-end: var(--zx-space-2);
2577
+ }
2578
+ .zx-tag-picker__tag-label {
2579
+ overflow: hidden;
2580
+ text-overflow: ellipsis;
2581
+ white-space: nowrap;
2582
+ }
2583
+ .zx-tag-picker .zx-tag-picker__remove {
2584
+ inline-size: 20px;
2585
+ block-size: 20px;
2586
+ border-radius: var(--zx-radius-sm);
2587
+ }
2588
+ .zx-tag-picker__input {
2589
+ flex: 1 1 6ch;
2590
+ min-inline-size: 6ch;
2591
+ min-block-size: 24px;
2592
+ border: 0;
2593
+ border-radius: 0;
2594
+ background: none;
2595
+ padding-inline: 0;
2596
+ }
2597
+ .zx-tag-picker__input:focus-visible {
2598
+ box-shadow: none;
2599
+ }
2600
+ .zx-tag-picker__toggle {
2601
+ display: inline-grid;
2602
+ place-items: center;
2603
+ inline-size: 24px;
2604
+ block-size: 24px;
2605
+ min-block-size: 0;
2606
+ flex: none;
2607
+ margin-inline-start: auto;
2608
+ padding: 0;
2609
+ border: 0;
2610
+ border-radius: var(--zx-radius-sm);
2611
+ background: none;
2612
+ color: var(--zx-color-text-muted);
2613
+ }
2614
+ .zx-tag-picker__toggle:hover:not(:disabled) {
2615
+ background: var(--zx-color-bg-hover);
2616
+ color: var(--zx-color-text);
2617
+ }
2618
+ .zx-tag-picker[data-state=open] .zx-tag-picker__toggle {
2619
+ transform: rotate(180deg);
2620
+ }
2621
+ .zx-tag-picker__panel {
2622
+ z-index: 20;
2623
+ inline-size: max-content;
2624
+ max-inline-size: calc(100vw - var(--zx-space-4));
2625
+ overflow: hidden;
2626
+ border: 1px solid var(--zx-color-border-strong);
2627
+ border-radius: var(--zx-radius-md);
2628
+ background: var(--zx-color-bg-raised);
2629
+ box-shadow: var(--zx-overlay-shadow);
2630
+ color: var(--zx-color-text);
2631
+ padding: var(--zx-space-1);
2632
+ }
2633
+ .zx-tag-picker__list {
2634
+ min-inline-size: 0;
2635
+ overflow-y: auto;
2636
+ overscroll-behavior: contain;
2637
+ }
2638
+ .zx-tag-picker__option {
2639
+ display: flex;
2640
+ align-items: center;
2641
+ gap: var(--zx-space-2);
2642
+ padding: var(--zx-space-2) var(--zx-space-2);
2643
+ border-radius: var(--zx-radius-md);
2644
+ cursor: pointer;
2645
+ }
2646
+ .zx-tag-picker__option[data-active] {
2647
+ background: var(--zx-color-bg-hover);
2648
+ }
2649
+ .zx-tag-picker__option[aria-selected=true] {
2650
+ color: var(--zx-color-accent);
2651
+ font-weight: 550;
2652
+ }
2653
+ .zx-tag-picker__option[aria-disabled=true] {
2654
+ opacity: 0.45;
2655
+ cursor: not-allowed;
2656
+ }
2657
+ .zx-tag-picker__check {
2658
+ display: inline-grid;
2659
+ place-items: center;
2660
+ inline-size: 16px;
2661
+ flex: none;
2662
+ color: var(--zx-color-accent);
2663
+ }
2664
+ .zx-tag-picker__option-label {
2665
+ overflow: hidden;
2666
+ text-overflow: ellipsis;
2667
+ white-space: nowrap;
2668
+ }
2669
+ .zx-tag-picker__option[data-create] .zx-tag-picker__option-label {
2670
+ color: var(--zx-color-text-muted);
2671
+ }
2672
+ .zx-tag-picker__empty {
2673
+ padding: var(--zx-space-3);
2674
+ color: var(--zx-color-text-muted);
2675
+ font-size: var(--zx-text-sm);
2676
+ text-align: center;
2677
+ }
2678
+
2679
+ /* src/components/number-field/number-field.css */
2680
+ .zx-number-field {
2681
+ display: inline-flex;
2682
+ align-items: stretch;
2683
+ min-block-size: var(--zx-control-height);
2684
+ border: 1px solid var(--zx-color-border-control);
2685
+ border-radius: var(--zx-control-radius);
2686
+ background: var(--zx-color-bg-control);
2687
+ color: var(--zx-color-text);
2688
+ font-size: var(--zx-control-font-size);
2689
+ }
2690
+ .zx-number-field:focus-within {
2691
+ box-shadow: var(--zx-focus-ring);
2692
+ }
2693
+ .zx-number-field[data-disabled] {
2694
+ opacity: 0.55;
2695
+ }
2696
+ .zx-number-field__input {
2697
+ min-inline-size: 5em;
2698
+ min-block-size: 0;
2699
+ flex: 1 1 auto;
2700
+ border: 0;
2701
+ border-radius: 0;
2702
+ background: none;
2703
+ padding-inline: var(--zx-space-2);
2704
+ font-variant-numeric: tabular-nums;
2705
+ text-align: end;
2706
+ }
2707
+ .zx-number-field__input:focus-visible {
2708
+ box-shadow: none;
2709
+ }
2710
+ .zx-number-field__unit {
2711
+ display: grid;
2712
+ place-items: center;
2713
+ padding-inline-end: var(--zx-space-2);
2714
+ color: var(--zx-color-text-muted);
2715
+ font-size: var(--zx-text-sm);
2716
+ }
2717
+ .zx-number-field__step {
2718
+ display: inline-grid;
2719
+ place-items: center;
2720
+ min-block-size: 0;
2721
+ inline-size: calc(var(--zx-control-height) - 6px);
2722
+ flex: none;
2723
+ padding: 0;
2724
+ border: 0;
2725
+ border-radius: 0;
2726
+ background: none;
2727
+ color: var(--zx-color-text-muted);
2728
+ cursor: pointer;
2729
+ }
2730
+ .zx-number-field__step:hover:not(:disabled) {
2731
+ background: var(--zx-color-bg-hover);
2732
+ color: var(--zx-color-text);
2733
+ }
2734
+ .zx-number-field__step:disabled {
2735
+ cursor: not-allowed;
2736
+ }
2737
+ .zx-number-field__step[data-step=down] {
2738
+ border-start-start-radius: var(--zx-control-radius);
2739
+ border-end-start-radius: var(--zx-control-radius);
2740
+ border-inline-end: 1px solid var(--zx-color-border-control);
2741
+ }
2742
+ .zx-number-field__step[data-step=up] {
2743
+ border-start-end-radius: var(--zx-control-radius);
2744
+ border-end-end-radius: var(--zx-control-radius);
2745
+ border-inline-start: 1px solid var(--zx-color-border-control);
2746
+ }
2747
+
2748
+ /* src/components/slider/slider.css */
2749
+ .zx-slider {
2750
+ display: flex;
2751
+ flex-direction: column;
2752
+ gap: var(--zx-space-2);
2753
+ inline-size: 100%;
2754
+ --zx-slider-thumb: 16px;
2755
+ --zx-slider-rail: 4px;
2756
+ }
2757
+ .zx-slider[data-size=sm] {
2758
+ --zx-slider-thumb: 12px;
2759
+ --zx-slider-rail: 3px;
2760
+ }
2761
+ .zx-slider__head {
2762
+ display: flex;
2763
+ align-items: baseline;
2764
+ justify-content: space-between;
2765
+ gap: var(--zx-space-3);
2766
+ font-size: var(--zx-control-font-size);
2767
+ }
2768
+ .zx-slider__label {
2769
+ color: var(--zx-color-text);
2770
+ font-weight: 500;
2771
+ }
2772
+ .zx-slider__value {
2773
+ color: var(--zx-color-text-muted);
2774
+ font-variant-numeric: tabular-nums;
2775
+ }
2776
+ .zx-slider__value:empty {
2777
+ display: none;
2778
+ }
2779
+ .zx-slider[data-hide-label] .zx-slider__label {
2780
+ position: absolute;
2781
+ clip-path: inset(50%);
2782
+ inline-size: 1px;
2783
+ block-size: 1px;
2784
+ overflow: hidden;
2785
+ white-space: nowrap;
2786
+ }
2787
+ .zx-slider__control {
2788
+ display: flex;
2789
+ align-items: start;
2790
+ gap: var(--zx-space-3);
2791
+ }
2792
+ .zx-slider__bound {
2793
+ flex: none;
2794
+ align-self: start;
2795
+ margin-block-start: calc((var(--zx-slider-thumb) - 1.5em) / 2);
2796
+ color: var(--zx-color-text-muted);
2797
+ font-size: var(--zx-text-sm);
2798
+ font-variant-numeric: tabular-nums;
2799
+ }
2800
+ .zx-slider__track {
2801
+ position: relative;
2802
+ flex: 1 1 auto;
2803
+ min-inline-size: 0;
2804
+ }
2805
+ .zx-slider__input {
2806
+ display: block;
2807
+ appearance: none;
2808
+ inline-size: 100%;
2809
+ min-block-size: 0;
2810
+ block-size: var(--zx-slider-thumb);
2811
+ margin: 0;
2812
+ padding: 0;
2813
+ border: 0;
2814
+ border-radius: 0;
2815
+ background: none;
2816
+ cursor: pointer;
2817
+ }
2818
+ .zx-slider__input::-webkit-slider-runnable-track {
2819
+ block-size: var(--zx-slider-rail);
2820
+ border-radius: var(--zx-radius-full);
2821
+ background:
2822
+ linear-gradient(
2823
+ to right,
2824
+ var(--zx-color-accent) 0 var(--zx-slider-fill, 0%),
2825
+ var(--zx-color-bg-muted) var(--zx-slider-fill, 0%) 100%);
2826
+ }
2827
+ .zx-slider__input::-moz-range-track {
2828
+ block-size: var(--zx-slider-rail);
2829
+ border-radius: var(--zx-radius-full);
2830
+ background: var(--zx-color-bg-muted);
2831
+ }
2832
+ .zx-slider__input::-moz-range-progress {
2833
+ block-size: var(--zx-slider-rail);
2834
+ border-radius: var(--zx-radius-full);
2835
+ background: var(--zx-color-accent);
2836
+ }
2837
+ .zx-slider__input::-webkit-slider-thumb {
2838
+ appearance: none;
2839
+ inline-size: var(--zx-slider-thumb);
2840
+ block-size: var(--zx-slider-thumb);
2841
+ margin-block-start: calc((var(--zx-slider-rail) - var(--zx-slider-thumb)) / 2);
2842
+ border: 2px solid var(--zx-color-bg-surface);
2843
+ border-radius: var(--zx-radius-full);
2844
+ background: var(--zx-color-accent);
2845
+ box-shadow: var(--zx-shadow-1);
2846
+ }
2847
+ .zx-slider__input::-moz-range-thumb {
2848
+ inline-size: var(--zx-slider-thumb);
2849
+ block-size: var(--zx-slider-thumb);
2850
+ border: 2px solid var(--zx-color-bg-surface);
2851
+ border-radius: var(--zx-radius-full);
2852
+ background: var(--zx-color-accent);
2853
+ box-shadow: var(--zx-shadow-1);
2854
+ }
2855
+ .zx-slider__input:focus-visible {
2856
+ outline: 2px solid transparent;
2857
+ outline-offset: 2px;
2858
+ box-shadow: var(--zx-focus-ring);
2859
+ border-radius: var(--zx-radius-full);
2860
+ }
2861
+ .zx-slider__number {
2862
+ flex: none;
2863
+ align-self: start;
2864
+ inline-size: 10ch;
2865
+ text-align: end;
2866
+ font-variant-numeric: tabular-nums;
2867
+ }
2868
+ .zx-slider__marks {
2869
+ position: relative;
2870
+ block-size: var(--zx-space-5);
2871
+ margin-block-start: var(--zx-space-1);
2872
+ }
2873
+ .zx-slider__mark {
2874
+ position: absolute;
2875
+ inset-block-start: 0;
2876
+ inset-inline-start: var(--zx-slider-mark, 0%);
2877
+ transform: translateX(-50%);
2878
+ color: var(--zx-color-text-muted);
2879
+ font-size: var(--zx-text-xs);
2880
+ white-space: nowrap;
2881
+ }
2882
+ .zx-slider[data-disabled] {
2883
+ opacity: 0.55;
2884
+ }
2885
+ .zx-slider[data-disabled] .zx-slider__input,
2886
+ .zx-slider[data-readonly] .zx-slider__input {
2887
+ cursor: not-allowed;
2888
+ }
2889
+ .zx-slider[data-readonly] .zx-slider__input::-webkit-slider-thumb {
2890
+ background: var(--zx-color-text-muted);
2891
+ }
2892
+ .zx-slider[data-readonly] .zx-slider__input::-moz-range-thumb {
2893
+ background: var(--zx-color-text-muted);
2894
+ }
2895
+
2896
+ /* src/components/rating/rating.css */
2897
+ .zx-rating {
2898
+ display: inline-flex;
2899
+ align-items: center;
2900
+ gap: var(--zx-space-3);
2901
+ color: var(--zx-color-text);
2902
+ }
2903
+ .zx-rating__symbols {
2904
+ display: inline-flex;
2905
+ align-items: center;
2906
+ gap: 2px;
2907
+ }
2908
+ .zx-rating__symbol {
2909
+ --zx-rating-fill: 0%;
2910
+ position: relative;
2911
+ display: inline-grid;
2912
+ line-height: 0;
2913
+ }
2914
+ .zx-rating__glyph {
2915
+ grid-area: 1 / 1;
2916
+ color: var(--zx-color-border-strong);
2917
+ }
2918
+ .zx-rating__glyph[data-part=on] {
2919
+ color: var(--zx-color-warning);
2920
+ clip-path: inset(0 calc(100% - var(--zx-rating-fill)) 0 0);
2921
+ }
2922
+ .zx-rating__symbol[data-preview] .zx-rating__glyph[data-part=on] {
2923
+ color: var(--zx-color-warning);
2924
+ opacity: 0.75;
2925
+ }
2926
+ @media (prefers-reduced-motion: no-preference) {
2927
+ .zx-rating__glyph[data-part=on] {
2928
+ transition: clip-path var(--zx-dur-fast) var(--zx-ease);
2929
+ }
2930
+ }
2931
+ .zx-rating__radio {
2932
+ position: absolute;
2933
+ inset-block: 0;
2934
+ z-index: 1;
2935
+ min-block-size: 0;
2936
+ padding: 0;
2937
+ border: 0;
2938
+ border-radius: var(--zx-radius-sm);
2939
+ background: none;
2940
+ cursor: pointer;
2941
+ }
2942
+ .zx-rating__radio[data-part=full] {
2943
+ inset-inline: 0;
2944
+ }
2945
+ .zx-rating__radio[data-part=half] {
2946
+ inset-inline-start: 0;
2947
+ inline-size: 50%;
2948
+ z-index: 2;
2949
+ }
2950
+ .zx-rating__radio:hover {
2951
+ background: none;
2952
+ }
2953
+ .zx-rating__radio:focus-visible {
2954
+ outline: 0;
2955
+ box-shadow: var(--zx-focus-ring);
2956
+ }
2957
+ .zx-rating[data-inert] .zx-rating__radio {
2958
+ cursor: default;
2959
+ }
2960
+ .zx-rating[data-disabled] {
2961
+ opacity: 0.55;
2962
+ }
2963
+ .zx-rating__readout {
2964
+ color: var(--zx-color-text-muted);
2965
+ font-size: var(--zx-text-sm);
2966
+ font-variant-numeric: tabular-nums;
2967
+ white-space: nowrap;
2968
+ }
2969
+ .zx-rating[data-size=sm] .zx-rating__symbols {
2970
+ gap: 1px;
2971
+ }
2972
+ .zx-rating[data-size=lg] .zx-rating__symbols {
2973
+ gap: 4px;
2974
+ }
2975
+
2976
+ /* src/components/permission/permission.css */
2977
+ .zx-permission {
2978
+ min-inline-size: 0;
2979
+ color: var(--zx-color-text);
2980
+ font-size: var(--zx-control-font-size);
2981
+ }
2982
+ .zx-permission__choices {
2983
+ display: grid;
2984
+ grid-template-columns: repeat(3, max-content) minmax(160px, 1fr);
2985
+ align-items: center;
2986
+ gap: var(--zx-space-2) var(--zx-space-4);
2987
+ }
2988
+ .zx-permission__choice {
2989
+ display: inline-flex;
2990
+ align-items: center;
2991
+ gap: var(--zx-space-2);
2992
+ min-block-size: var(--zx-control-height);
2993
+ cursor: pointer;
2994
+ }
2995
+ .zx-permission__choice input {
2996
+ accent-color: var(--zx-color-accent);
2997
+ }
2998
+ .zx-permission__choice:has(input:focus-visible) {
2999
+ border-radius: var(--zx-radius-sm);
3000
+ box-shadow: var(--zx-focus-ring);
3001
+ }
3002
+ .zx-permission__groups {
3003
+ min-inline-size: 160px;
3004
+ }
3005
+ .zx-permission:not([data-state=group]) .zx-permission__groups {
3006
+ color: var(--zx-color-text-muted);
3007
+ }
3008
+ @media (max-width: 640px) {
3009
+ .zx-permission__choices {
3010
+ grid-template-columns: 1fr;
3011
+ }
3012
+ .zx-permission__groups {
3013
+ inline-size: 100%;
3014
+ }
3015
+ }
3016
+
3017
+ /* src/components/date-picker/date-picker.css */
3018
+ .zx-date-picker,
3019
+ .zx-month-picker {
3020
+ display: inline-block;
3021
+ color: var(--zx-color-text);
3022
+ font-size: var(--zx-control-font-size);
3023
+ }
3024
+ .zx-date-picker__surface,
3025
+ .zx-month-picker__surface {
3026
+ position: relative;
3027
+ inline-size: 292px;
3028
+ border: 1px solid var(--zx-color-border);
3029
+ border-radius: var(--zx-radius-lg);
3030
+ background: var(--zx-color-bg-surface);
3031
+ padding: var(--zx-space-3);
3032
+ }
3033
+ .zx-date-picker__header,
3034
+ .zx-month-picker__header,
3035
+ .zx-date-picker__quick-header {
3036
+ display: grid;
3037
+ grid-template-columns: var(--zx-control-height) minmax(0, 1fr) var(--zx-control-height);
3038
+ align-items: center;
3039
+ gap: var(--zx-space-2);
3040
+ margin-block-end: var(--zx-space-2);
3041
+ }
3042
+ .zx-date-picker__nav,
3043
+ .zx-month-picker__nav {
3044
+ display: inline-grid;
3045
+ place-items: center;
3046
+ min-inline-size: var(--zx-control-height);
3047
+ padding: 0;
3048
+ border-color: var(--zx-color-bg-surface);
3049
+ background: inherit;
3050
+ }
3051
+ .zx-date-picker__heading {
3052
+ overflow: hidden;
3053
+ border-color: var(--zx-color-bg-surface);
3054
+ background: inherit;
3055
+ font-weight: 650;
3056
+ text-overflow: ellipsis;
3057
+ text-wrap: nowrap;
3058
+ }
3059
+ .zx-month-picker__year,
3060
+ .zx-date-picker__quick-year {
3061
+ text-align: center;
3062
+ font-weight: 650;
3063
+ }
3064
+ .zx-date-picker__grid {
3065
+ inline-size: 100%;
3066
+ border-collapse: separate;
3067
+ border-spacing: 2px;
3068
+ table-layout: fixed;
3069
+ }
3070
+ .zx-date-picker__grid th {
3071
+ block-size: 24px;
3072
+ padding: 0;
3073
+ color: var(--zx-color-text-muted);
3074
+ font-size: var(--zx-text-xs);
3075
+ font-weight: 600;
3076
+ text-align: center;
3077
+ }
3078
+ .zx-date-picker__grid td {
3079
+ padding: 0;
3080
+ }
3081
+ .zx-date-picker__day {
3082
+ position: relative;
3083
+ inline-size: 100%;
3084
+ min-inline-size: 0;
3085
+ min-block-size: var(--zx-control-height);
3086
+ padding: 0;
3087
+ border-color: var(--zx-color-bg-surface);
3088
+ border-radius: var(--zx-radius-md);
3089
+ background: inherit;
3090
+ font-variant-numeric: tabular-nums;
3091
+ }
3092
+ .zx-date-picker__day[data-other-month=true] {
3093
+ color: var(--zx-color-text-muted);
3094
+ }
3095
+ .zx-date-picker__day[aria-current=date] {
3096
+ border-color: var(--zx-color-accent);
3097
+ }
3098
+ .zx-date-picker__day[aria-selected=true] {
3099
+ border-color: var(--zx-color-accent);
3100
+ background: var(--zx-color-accent);
3101
+ color: var(--zx-color-on-accent);
3102
+ font-weight: 700;
3103
+ }
3104
+ .zx-date-picker__day[aria-disabled=true] {
3105
+ color: var(--zx-color-text-placeholder);
3106
+ cursor: not-allowed;
3107
+ text-decoration: line-through;
3108
+ }
3109
+ .zx-date-picker__day:focus-visible,
3110
+ .zx-date-picker__heading:focus-visible,
3111
+ .zx-date-picker__nav:focus-visible,
3112
+ .zx-date-picker__quick-month:focus-visible,
3113
+ .zx-month-picker__month:focus-visible,
3114
+ .zx-month-picker__nav:focus-visible {
3115
+ z-index: 1;
3116
+ box-shadow: var(--zx-focus-ring);
3117
+ }
3118
+ .zx-date-picker__week,
3119
+ .zx-date-picker__week-heading {
3120
+ inline-size: 24px;
3121
+ border-inline-end: 1px solid var(--zx-color-border);
3122
+ }
3123
+ .zx-date-picker__quick {
3124
+ position: absolute;
3125
+ z-index: 2;
3126
+ inset: var(--zx-space-3);
3127
+ border: 1px solid var(--zx-color-border-strong);
3128
+ border-radius: var(--zx-radius-md);
3129
+ background: var(--zx-color-bg-raised);
3130
+ box-shadow: var(--zx-overlay-shadow);
3131
+ padding: var(--zx-space-3);
3132
+ }
3133
+ .zx-date-picker__quick[hidden] {
3134
+ display: none;
3135
+ }
3136
+ .zx-date-picker__quick-grid,
3137
+ .zx-month-picker__grid {
3138
+ display: grid;
3139
+ grid-template-columns: repeat(3, minmax(0, 1fr));
3140
+ gap: var(--zx-space-2);
3141
+ }
3142
+ .zx-date-picker__quick-month,
3143
+ .zx-month-picker__month {
3144
+ min-inline-size: 0;
3145
+ padding-inline: var(--zx-space-1);
3146
+ border-color: var(--zx-color-bg-surface);
3147
+ background: inherit;
3148
+ }
3149
+ .zx-date-picker__quick-month[aria-selected=true],
3150
+ .zx-month-picker__month[aria-selected=true] {
3151
+ background: var(--zx-color-bg-selected);
3152
+ color: var(--zx-color-accent);
3153
+ font-weight: 700;
3154
+ }
3155
+ .zx-month-picker__month[aria-disabled=true] {
3156
+ color: var(--zx-color-text-placeholder);
3157
+ cursor: not-allowed;
3158
+ text-decoration: line-through;
3159
+ }
3160
+ .zx-date-picker > .zx-time-picker,
3161
+ .zx-date-picker__surface > .zx-time-picker {
3162
+ display: block;
3163
+ margin-block-start: var(--zx-space-3);
3164
+ border-block-start: 1px solid var(--zx-color-border);
3165
+ padding-block-start: var(--zx-space-3);
3166
+ text-align: center;
3167
+ }
3168
+ @media (prefers-reduced-motion: no-preference) {
3169
+ .zx-date-picker__day,
3170
+ .zx-date-picker__quick-month,
3171
+ .zx-month-picker__month {
3172
+ transition: background-color var(--zx-dur-fast) var(--zx-ease), color var(--zx-dur-fast) var(--zx-ease);
3173
+ }
3174
+ }
3175
+
3176
+ /* src/components/date-picker/time-picker.css */
3177
+ .zx-time-picker {
3178
+ display: inline-block;
3179
+ color: var(--zx-color-text);
3180
+ font-size: var(--zx-control-font-size);
3181
+ }
3182
+ .zx-time-picker__segments {
3183
+ display: inline-flex;
3184
+ align-items: center;
3185
+ gap: var(--zx-space-1);
3186
+ }
3187
+ .zx-time-picker__spin {
3188
+ inline-size: calc(var(--zx-control-height) + var(--zx-space-2));
3189
+ padding-inline: var(--zx-space-1);
3190
+ text-align: center;
3191
+ font-variant-numeric: tabular-nums;
3192
+ }
3193
+ .zx-time-picker__spin:focus-visible {
3194
+ box-shadow: var(--zx-focus-ring);
3195
+ }
3196
+ .zx-time-picker__separator {
3197
+ color: var(--zx-color-text-muted);
3198
+ font-weight: 700;
3199
+ }
3200
+ .zx-time-picker__clock-toggle {
3201
+ margin-inline-start: var(--zx-space-1);
3202
+ color: var(--zx-color-text-muted);
3203
+ }
3204
+ .zx-time-picker__clock-toggle[aria-expanded=true] {
3205
+ color: var(--zx-color-accent);
3206
+ }
3207
+ .zx-time-picker__clock {
3208
+ --zx-clock-size: 232px;
3209
+ --zx-clock-mark: 32px;
3210
+ --zx-clock-outer: calc(var(--zx-clock-size) / 2 - var(--zx-clock-mark) / 2 - 4px);
3211
+ --zx-clock-inner: calc(var(--zx-clock-outer) - var(--zx-clock-mark) - 2px);
3212
+ display: grid;
3213
+ justify-items: center;
3214
+ gap: var(--zx-space-2);
3215
+ margin-block-start: var(--zx-space-3);
3216
+ border-block-start: 1px solid var(--zx-color-border);
3217
+ padding-block-start: var(--zx-space-3);
3218
+ }
3219
+ .zx-time-picker__clock[hidden] {
3220
+ display: none;
3221
+ }
3222
+ .zx-time-picker__clock-head {
3223
+ display: flex;
3224
+ align-items: baseline;
3225
+ gap: var(--zx-space-1);
3226
+ }
3227
+ .zx-time-picker__clock-unit {
3228
+ min-block-size: 0;
3229
+ border: 0;
3230
+ border-radius: var(--zx-radius-sm);
3231
+ background: none;
3232
+ padding: 0 var(--zx-space-1);
3233
+ color: var(--zx-color-text-muted);
3234
+ font: inherit;
3235
+ font-size: var(--zx-text-2xl);
3236
+ font-weight: 600;
3237
+ font-variant-numeric: tabular-nums;
3238
+ line-height: 1.2;
3239
+ cursor: pointer;
3240
+ }
3241
+ .zx-time-picker__clock-unit[aria-pressed=true] {
3242
+ color: var(--zx-color-accent);
3243
+ }
3244
+ .zx-time-picker__clock-unit:focus-visible {
3245
+ outline: 0;
3246
+ box-shadow: var(--zx-focus-ring);
3247
+ }
3248
+ .zx-time-picker__clock-colon {
3249
+ color: var(--zx-color-text-muted);
3250
+ font-size: var(--zx-text-2xl);
3251
+ font-weight: 600;
3252
+ }
3253
+ .zx-time-picker__dial {
3254
+ position: relative;
3255
+ inline-size: var(--zx-clock-size);
3256
+ block-size: var(--zx-clock-size);
3257
+ border-radius: var(--zx-radius-full);
3258
+ background: var(--zx-color-bg-muted);
3259
+ }
3260
+ .zx-time-picker__mark {
3261
+ position: absolute;
3262
+ inset-block-start: 50%;
3263
+ inset-inline-start: 50%;
3264
+ display: grid;
3265
+ place-items: center;
3266
+ inline-size: var(--zx-clock-mark);
3267
+ block-size: var(--zx-clock-mark);
3268
+ min-block-size: 0;
3269
+ border: 0;
3270
+ border-radius: var(--zx-radius-full);
3271
+ background: none;
3272
+ padding: 0;
3273
+ color: var(--zx-color-text);
3274
+ font: inherit;
3275
+ font-size: var(--zx-text-sm);
3276
+ font-variant-numeric: tabular-nums;
3277
+ cursor: pointer;
3278
+ transform: translate(-50%, -50%) rotate(var(--zx-clock-angle)) translateY(calc(-1 * var(--zx-clock-outer))) rotate(calc(-1 * var(--zx-clock-angle)));
3279
+ }
3280
+ .zx-time-picker__mark[data-ring=inner] {
3281
+ color: var(--zx-color-text-muted);
3282
+ font-size: var(--zx-text-xs);
3283
+ transform: translate(-50%, -50%) rotate(var(--zx-clock-angle)) translateY(calc(-1 * var(--zx-clock-inner))) rotate(calc(-1 * var(--zx-clock-angle)));
3284
+ }
3285
+ .zx-time-picker__mark:hover {
3286
+ background: var(--zx-color-bg-hover);
3287
+ }
3288
+ .zx-time-picker__mark[aria-checked=true] {
3289
+ background: var(--zx-color-accent);
3290
+ color: var(--zx-color-on-accent);
3291
+ font-weight: 600;
3292
+ }
3293
+ .zx-time-picker__mark:focus-visible {
3294
+ outline: 0;
3295
+ box-shadow: var(--zx-focus-ring);
3296
+ }
3297
+ .zx-time-picker__hand {
3298
+ position: absolute;
3299
+ inset-block-start: calc(50% - var(--zx-clock-outer));
3300
+ inset-inline-start: 50%;
3301
+ inline-size: 2px;
3302
+ block-size: var(--zx-clock-outer);
3303
+ margin-inline-start: -1px;
3304
+ background: var(--zx-color-accent);
3305
+ transform-origin: 50% 100%;
3306
+ transform: rotate(var(--zx-clock-angle, 0deg));
3307
+ }
3308
+ .zx-time-picker__hand[data-ring=inner] {
3309
+ inset-block-start: calc(50% - var(--zx-clock-inner));
3310
+ block-size: var(--zx-clock-inner);
3311
+ }
3312
+ .zx-time-picker__pivot {
3313
+ position: absolute;
3314
+ inset-block-start: 50%;
3315
+ inset-inline-start: 50%;
3316
+ inline-size: 8px;
3317
+ block-size: 8px;
3318
+ border-radius: var(--zx-radius-full);
3319
+ background: var(--zx-color-accent);
3320
+ transform: translate(-50%, -50%);
3321
+ }
3322
+ @media (prefers-reduced-motion: no-preference) {
3323
+ .zx-time-picker__hand {
3324
+ transition: transform var(--zx-dur-base) var(--zx-ease);
3325
+ }
3326
+ .zx-time-picker__mark {
3327
+ transition: background-color var(--zx-dur-fast) var(--zx-ease), color var(--zx-dur-fast) var(--zx-ease);
3328
+ }
3329
+ }
3330
+
3331
+ /* src/components/datebox/datebox.css */
3332
+ .zx-datebox {
3333
+ display: inline-block;
3334
+ color: var(--zx-color-text);
3335
+ font-size: var(--zx-control-font-size);
3336
+ }
3337
+ .zx-datebox__content,
3338
+ .zx-datebox__control {
3339
+ display: inline-flex;
3340
+ align-items: stretch;
3341
+ }
3342
+ .zx-datebox__control {
3343
+ position: relative;
3344
+ border: 1px solid var(--zx-color-border-control);
3345
+ border-radius: var(--zx-control-radius);
3346
+ background: var(--zx-color-bg-control);
3347
+ }
3348
+ .zx-datebox__control:focus-within {
3349
+ box-shadow: var(--zx-focus-ring);
3350
+ }
3351
+ .zx-datebox[data-state=invalid] .zx-datebox__control {
3352
+ border-color: var(--zx-color-danger);
3353
+ background: var(--zx-color-danger-bg);
3354
+ }
3355
+ .zx-datebox__input {
3356
+ min-inline-size: 10em;
3357
+ border: 0;
3358
+ border-radius: var(--zx-control-radius) 0 0 var(--zx-control-radius);
3359
+ background: inherit;
3360
+ padding-inline-end: var(--zx-control-height);
3361
+ }
3362
+ .zx-datebox__input:focus-visible,
3363
+ .zx-datebox__toggle:focus-visible {
3364
+ position: relative;
3365
+ z-index: 1;
3366
+ box-shadow: var(--zx-focus-ring);
3367
+ }
3368
+ .zx-datebox__clear:focus-visible {
3369
+ box-shadow: var(--zx-focus-ring);
3370
+ }
3371
+ .zx-datebox__clear,
3372
+ .zx-datebox__toggle {
3373
+ display: inline-grid;
3374
+ place-items: center;
3375
+ min-inline-size: var(--zx-control-height);
3376
+ padding: 0;
3377
+ border: 0;
3378
+ border-radius: 0;
3379
+ background: inherit;
3380
+ color: var(--zx-color-text-muted);
3381
+ }
3382
+ .zx-datebox__toggle {
3383
+ border-inline-start: 1px solid var(--zx-color-border-control);
3384
+ border-radius: 0 var(--zx-control-radius) var(--zx-control-radius) 0;
3385
+ }
3386
+ .zx-datebox__clear {
3387
+ position: absolute;
3388
+ z-index: 2;
3389
+ inset-block-start: 50%;
3390
+ inset-inline-end: var(--zx-control-height);
3391
+ transform: translateY(-50%);
3392
+ background: none;
3393
+ }
3394
+ .zx-datebox__clear:hover {
3395
+ color: var(--zx-color-text);
3396
+ }
3397
+ .zx-datebox__clear[hidden] {
3398
+ display: none;
3399
+ }
3400
+ .zx-datebox__popover {
3401
+ overflow: visible;
3402
+ max-inline-size: calc(100vw - var(--zx-space-4));
3403
+ border: 0;
3404
+ background: var(--zx-color-bg-raised);
3405
+ padding: 0;
3406
+ }
3407
+ .zx-datebox__popover:not(:popover-open)[data-state=closed] {
3408
+ display: none;
3409
+ }
3410
+ .zx-datebox__popover[data-state=open] {
3411
+ display: block;
3412
+ }
3413
+ .zx-datebox__popover .zx-date-picker__surface {
3414
+ background: var(--zx-color-bg-raised);
3415
+ box-shadow: var(--zx-overlay-shadow);
3416
+ }
3417
+
3418
+ /* src/components/date-picker/date-range-picker.css */
3419
+ .zx-date-range-picker {
3420
+ display: block;
3421
+ container-type: inline-size;
3422
+ color: var(--zx-color-text);
3423
+ font-size: var(--zx-control-font-size);
3424
+ }
3425
+ .zx-date-range-picker__surface {
3426
+ display: flex;
3427
+ align-items: flex-start;
3428
+ gap: var(--zx-space-4);
3429
+ max-inline-size: max-content;
3430
+ border: 1px solid var(--zx-color-border);
3431
+ border-radius: var(--zx-radius-lg);
3432
+ background: var(--zx-color-bg-surface);
3433
+ padding: var(--zx-space-3);
3434
+ }
3435
+ .zx-date-range-picker__presets {
3436
+ display: flex;
3437
+ flex: 0 0 auto;
3438
+ flex-direction: column;
3439
+ gap: var(--zx-space-1);
3440
+ min-inline-size: 8.5rem;
3441
+ }
3442
+ .zx-date-range-picker__preset {
3443
+ position: relative;
3444
+ justify-content: start;
3445
+ border-color: transparent;
3446
+ background: none;
3447
+ text-align: start;
3448
+ }
3449
+ .zx-date-range-picker__preset:hover {
3450
+ background: var(--zx-color-bg-hover);
3451
+ }
3452
+ .zx-date-range-picker__calendars {
3453
+ display: flex;
3454
+ flex: 1 1 auto;
3455
+ gap: var(--zx-space-4);
3456
+ min-inline-size: 0;
3457
+ }
3458
+ .zx-date-range-picker__month {
3459
+ display: block;
3460
+ flex: 1 1 15rem;
3461
+ min-inline-size: 0;
3462
+ }
3463
+ .zx-date-range-picker__header {
3464
+ display: grid;
3465
+ grid-template-columns: var(--zx-control-height) minmax(0, 1fr) var(--zx-control-height);
3466
+ align-items: center;
3467
+ gap: var(--zx-space-2);
3468
+ margin-block-end: var(--zx-space-2);
3469
+ }
3470
+ .zx-date-range-picker__nav {
3471
+ position: relative;
3472
+ display: inline-grid;
3473
+ place-items: center;
3474
+ min-inline-size: var(--zx-control-height);
3475
+ padding: 0;
3476
+ border-color: transparent;
3477
+ background: none;
3478
+ }
3479
+ .zx-date-range-picker__caption {
3480
+ overflow: hidden;
3481
+ font-weight: 650;
3482
+ text-align: center;
3483
+ text-overflow: ellipsis;
3484
+ text-wrap: nowrap;
3485
+ }
3486
+ .zx-date-range-picker__month + .zx-date-range-picker__month {
3487
+ display: none;
3488
+ }
3489
+ @container (min-width: 32rem) {
3490
+ .zx-date-range-picker:not([data-presets=true]) .zx-date-range-picker__month + .zx-date-range-picker__month {
3491
+ display: block;
3492
+ }
3493
+ .zx-date-range-picker:not([data-presets=true]) .zx-date-range-picker__month:not(:first-child) .zx-date-range-picker__nav[data-nav=previous],
3494
+ .zx-date-range-picker:not([data-presets=true]) .zx-date-range-picker__month:not(:last-child) .zx-date-range-picker__nav[data-nav=next] {
3495
+ visibility: hidden;
3496
+ }
3497
+ }
3498
+ @container (min-width: 42rem) {
3499
+ .zx-date-range-picker[data-presets=true] .zx-date-range-picker__month + .zx-date-range-picker__month {
3500
+ display: block;
3501
+ }
3502
+ .zx-date-range-picker[data-presets=true] .zx-date-range-picker__month:not(:first-child) .zx-date-range-picker__nav[data-nav=previous],
3503
+ .zx-date-range-picker[data-presets=true] .zx-date-range-picker__month:not(:last-child) .zx-date-range-picker__nav[data-nav=next] {
3504
+ visibility: hidden;
3505
+ }
3506
+ }
3507
+ @container (max-width: 26rem) {
3508
+ .zx-date-range-picker__surface {
3509
+ flex-direction: column;
3510
+ }
3511
+ .zx-date-range-picker__presets {
3512
+ flex-direction: row;
3513
+ flex-wrap: wrap;
3514
+ min-inline-size: 0;
3515
+ }
3516
+ }
3517
+ .zx-date-range-picker__grid {
3518
+ inline-size: 100%;
3519
+ border-collapse: separate;
3520
+ border-spacing: 0 2px;
3521
+ table-layout: fixed;
3522
+ }
3523
+ .zx-date-range-picker__grid th {
3524
+ block-size: 24px;
3525
+ padding: 0;
3526
+ color: var(--zx-color-text-muted);
3527
+ font-size: var(--zx-text-xs);
3528
+ font-weight: 600;
3529
+ text-align: center;
3530
+ }
3531
+ .zx-date-range-picker__grid td {
3532
+ padding: 0;
3533
+ }
3534
+ .zx-date-range-picker__week,
3535
+ .zx-date-range-picker__week-heading {
3536
+ inline-size: 28px;
3537
+ border-inline-end: 1px solid var(--zx-color-border);
3538
+ padding-inline-end: var(--zx-space-1);
3539
+ }
3540
+ .zx-date-range-picker__day {
3541
+ position: relative;
3542
+ inline-size: 100%;
3543
+ min-inline-size: 0;
3544
+ min-block-size: var(--zx-control-height);
3545
+ padding: 0;
3546
+ border: 1px solid transparent;
3547
+ border-radius: var(--zx-radius-md);
3548
+ background: none;
3549
+ font-variant-numeric: tabular-nums;
3550
+ }
3551
+ .zx-date-range-picker__day:hover {
3552
+ background: var(--zx-color-bg-hover);
3553
+ }
3554
+ .zx-date-range-picker__day[aria-current=date] {
3555
+ border-color: var(--zx-color-accent);
3556
+ }
3557
+ .zx-date-range-picker__day[aria-disabled=true] {
3558
+ color: var(--zx-color-text-placeholder);
3559
+ cursor: not-allowed;
3560
+ text-decoration: line-through;
3561
+ }
3562
+ .zx-date-range-picker__day[aria-disabled=true]:hover {
3563
+ background: none;
3564
+ }
3565
+ .zx-date-range-picker__grid td[data-range] {
3566
+ background: var(--zx-color-accent-subtle);
3567
+ }
3568
+ .zx-date-range-picker__grid td[data-range=preview] {
3569
+ background: var(--zx-color-bg-hover);
3570
+ }
3571
+ .zx-date-range-picker__grid td[data-range-edge=start] {
3572
+ border-start-start-radius: var(--zx-radius-full);
3573
+ border-end-start-radius: var(--zx-radius-full);
3574
+ }
3575
+ .zx-date-range-picker__grid td[data-range-edge=end] {
3576
+ border-start-end-radius: var(--zx-radius-full);
3577
+ border-end-end-radius: var(--zx-radius-full);
3578
+ }
3579
+ .zx-date-range-picker__grid td[data-range-edge=both] {
3580
+ border-radius: var(--zx-radius-full);
3581
+ }
3582
+ .zx-date-range-picker__grid td[data-range=start] > .zx-date-range-picker__day,
3583
+ .zx-date-range-picker__grid td[data-range=end] > .zx-date-range-picker__day {
3584
+ border-color: var(--zx-color-accent);
3585
+ border-radius: var(--zx-radius-full);
3586
+ background: var(--zx-color-accent);
3587
+ color: var(--zx-color-on-accent);
3588
+ font-weight: 700;
3589
+ }
3590
+ .zx-date-range-picker__grid td[data-range=middle] > .zx-date-range-picker__day,
3591
+ .zx-date-range-picker__grid td[data-range=preview] > .zx-date-range-picker__day {
3592
+ color: var(--zx-color-text);
3593
+ font-weight: 600;
3594
+ }
3595
+ .zx-date-range-picker__day:focus-visible,
3596
+ .zx-date-range-picker__nav:focus-visible,
3597
+ .zx-date-range-picker__preset:focus-visible {
3598
+ z-index: 1;
3599
+ box-shadow: var(--zx-focus-ring);
3600
+ }
3601
+ .zx-date-range-picker[aria-disabled=true] .zx-date-range-picker__surface {
3602
+ background: var(--zx-color-bg-page);
3603
+ opacity: 0.65;
3604
+ }
3605
+ .zx-date-range-picker__status {
3606
+ position: absolute;
3607
+ inline-size: 1px;
3608
+ block-size: 1px;
3609
+ margin: -1px;
3610
+ border: 0;
3611
+ padding: 0;
3612
+ overflow: hidden;
3613
+ clip-path: inset(50%);
3614
+ white-space: nowrap;
3615
+ }
3616
+ @media (prefers-reduced-motion: no-preference) {
3617
+ .zx-date-range-picker__day,
3618
+ .zx-date-range-picker__preset {
3619
+ transition: background-color var(--zx-dur-fast) var(--zx-ease), color var(--zx-dur-fast) var(--zx-ease);
3620
+ }
3621
+ .zx-date-range-picker__grid td[data-range] {
3622
+ transition: background-color var(--zx-dur-fast) var(--zx-ease);
3623
+ }
3624
+ }
3625
+
3626
+ /* src/components/datebox/date-range-box.css */
3627
+ .zx-date-range-box {
3628
+ display: inline-block;
3629
+ color: var(--zx-color-text);
3630
+ font-size: var(--zx-control-font-size);
3631
+ }
3632
+ .zx-date-range-box__content,
3633
+ .zx-date-range-box__control {
3634
+ display: inline-flex;
3635
+ align-items: stretch;
3636
+ }
3637
+ .zx-date-range-box__control {
3638
+ position: relative;
3639
+ border: 1px solid var(--zx-color-border-control);
3640
+ border-radius: var(--zx-control-radius);
3641
+ background: var(--zx-color-bg-control);
3642
+ }
3643
+ .zx-date-range-box__control:focus-within {
3644
+ box-shadow: var(--zx-focus-ring);
3645
+ }
3646
+ .zx-date-range-box[data-state=invalid] .zx-date-range-box__control {
3647
+ border-color: var(--zx-color-danger);
3648
+ background: var(--zx-color-danger-bg);
3649
+ }
3650
+ .zx-date-range-box__input {
3651
+ min-inline-size: 16em;
3652
+ border: 0;
3653
+ border-radius: var(--zx-control-radius) 0 0 var(--zx-control-radius);
3654
+ background: inherit;
3655
+ padding-inline-end: var(--zx-control-height);
3656
+ }
3657
+ .zx-date-range-box__input:focus-visible,
3658
+ .zx-date-range-box__toggle:focus-visible {
3659
+ position: relative;
3660
+ z-index: 1;
3661
+ box-shadow: var(--zx-focus-ring);
3662
+ }
3663
+ .zx-date-range-box__clear:focus-visible {
3664
+ box-shadow: var(--zx-focus-ring);
3665
+ }
3666
+ .zx-date-range-box__clear,
3667
+ .zx-date-range-box__toggle {
3668
+ display: inline-grid;
3669
+ place-items: center;
3670
+ min-inline-size: var(--zx-control-height);
3671
+ padding: 0;
3672
+ border: 0;
3673
+ border-radius: 0;
3674
+ background: inherit;
3675
+ color: var(--zx-color-text-muted);
3676
+ }
3677
+ .zx-date-range-box__toggle {
3678
+ border-inline-start: 1px solid var(--zx-color-border-control);
3679
+ border-radius: 0 var(--zx-control-radius) var(--zx-control-radius) 0;
3680
+ }
3681
+ .zx-date-range-box__clear {
3682
+ position: absolute;
3683
+ z-index: 2;
3684
+ inset-block-start: 50%;
3685
+ inset-inline-end: var(--zx-control-height);
3686
+ transform: translateY(-50%);
3687
+ background: none;
3688
+ }
3689
+ .zx-date-range-box__clear:hover {
3690
+ color: var(--zx-color-text);
3691
+ }
3692
+ .zx-date-range-box__clear[hidden] {
3693
+ display: none;
3694
+ }
3695
+ .zx-date-range-box__popover {
3696
+ overflow: visible;
3697
+ max-inline-size: calc(100vw - var(--zx-space-4));
3698
+ border: 0;
3699
+ background: none;
3700
+ padding: 0;
3701
+ }
3702
+ .zx-date-range-box__popover:not(:popover-open)[data-state=closed] {
3703
+ display: none;
3704
+ }
3705
+ .zx-date-range-box__popover[data-state=open] {
3706
+ display: block;
3707
+ }
3708
+ .zx-date-range-box__popover .zx-date-range-picker {
3709
+ inline-size: min(calc(100vw - var(--zx-space-4)), 33rem);
3710
+ }
3711
+ .zx-date-range-box__popover .zx-date-range-picker[data-presets=true] {
3712
+ inline-size: min(calc(100vw - var(--zx-space-4)), 43rem);
3713
+ }
3714
+ .zx-date-range-box__popover .zx-date-range-picker[data-months="1"] {
3715
+ inline-size: min(calc(100vw - var(--zx-space-4)), 18rem);
3716
+ }
3717
+ .zx-date-range-box__popover .zx-date-range-picker[data-months="1"][data-presets=true] {
3718
+ inline-size: min(calc(100vw - var(--zx-space-4)), 27rem);
3719
+ }
3720
+ .zx-date-range-box__popover .zx-date-range-picker__surface {
3721
+ max-inline-size: none;
3722
+ background: var(--zx-color-bg-raised);
3723
+ box-shadow: var(--zx-overlay-shadow);
3724
+ }
3725
+
3726
+ /* src/components/timebox/timebox.css */
3727
+ .zx-timebox {
3728
+ display: inline-block;
3729
+ color: var(--zx-color-text);
3730
+ font-size: var(--zx-control-font-size);
3731
+ }
3732
+ .zx-timebox__content {
3733
+ display: inline-flex;
3734
+ align-items: center;
3735
+ gap: var(--zx-space-1);
3736
+ }
3737
+ .zx-timebox__segment {
3738
+ inline-size: calc(var(--zx-control-height) + var(--zx-space-2));
3739
+ padding-inline: var(--zx-space-1);
3740
+ text-align: center;
3741
+ font-variant-numeric: tabular-nums;
3742
+ }
3743
+ .zx-timebox__segment[data-segment=hours] {
3744
+ inline-size: calc(var(--zx-control-height) + var(--zx-space-4));
3745
+ }
3746
+ .zx-timebox__segment:focus-visible,
3747
+ .zx-timebox__sign:focus-visible {
3748
+ box-shadow: var(--zx-focus-ring);
3749
+ }
3750
+ .zx-timebox__separator {
3751
+ color: var(--zx-color-text-muted);
3752
+ font-weight: 700;
3753
+ }
3754
+ .zx-timebox__sign {
3755
+ min-inline-size: var(--zx-control-height);
3756
+ padding: 0;
3757
+ border-color: var(--zx-color-border-control);
3758
+ font-weight: 750;
3759
+ }
3760
+ .zx-timebox__sign[data-state=positive] {
3761
+ border-color: var(--zx-color-success);
3762
+ background: var(--zx-color-success-bg);
3763
+ color: var(--zx-color-success);
3764
+ }
3765
+ .zx-timebox__sign[data-state=negative] {
3766
+ border-color: var(--zx-color-danger);
3767
+ background: var(--zx-color-danger-bg);
3768
+ color: var(--zx-color-danger);
3769
+ }
3770
+
3771
+ /* src/components/table/table.css */
3772
+ .zx-table {
3773
+ min-inline-size: 0;
3774
+ }
3775
+ .zx-table__scroll {
3776
+ position: relative;
3777
+ max-inline-size: 100%;
3778
+ overflow: auto;
3779
+ border: 1px solid var(--zx-color-border);
3780
+ border-radius: var(--zx-radius-md);
3781
+ background: var(--zx-color-bg-surface);
3782
+ scrollbar-gutter: stable;
3783
+ }
3784
+ .zx-table[data-loading=true] .zx-table__body {
3785
+ opacity: 0.5;
3786
+ }
3787
+ .zx-table[data-loading=true] .zx-table__scroll::after {
3788
+ content: "";
3789
+ position: sticky;
3790
+ inset-block-start: 0;
3791
+ inset-inline: 0;
3792
+ display: block;
3793
+ block-size: 2px;
3794
+ margin-block-end: -2px;
3795
+ background: var(--zx-color-accent);
3796
+ opacity: 0.85;
3797
+ z-index: 2;
3798
+ }
3799
+ @media (prefers-reduced-motion: no-preference) {
3800
+ .zx-table[data-loading=true] .zx-table__scroll::after {
3801
+ background:
3802
+ linear-gradient(
3803
+ 90deg,
3804
+ transparent 0%,
3805
+ var(--zx-color-accent) 50%,
3806
+ transparent 100%);
3807
+ background-size: 40% 100%;
3808
+ background-repeat: no-repeat;
3809
+ animation: zx-table-loading 1.1s var(--zx-ease) infinite;
3810
+ }
3811
+ }
3812
+ @keyframes zx-table-loading {
3813
+ from {
3814
+ background-position: -40% 0;
3815
+ }
3816
+ to {
3817
+ background-position: 140% 0;
3818
+ }
3819
+ }
3820
+ .zx-table__table {
3821
+ inline-size: 100%;
3822
+ border-spacing: 0;
3823
+ background: var(--zx-color-bg-surface);
3824
+ color: var(--zx-color-text);
3825
+ }
3826
+ .zx-table__table[data-layout=auto] {
3827
+ min-inline-size: max-content;
3828
+ }
3829
+ .zx-table__table[data-layout=fixed] {
3830
+ table-layout: fixed;
3831
+ }
3832
+ .zx-table__selection-column {
3833
+ inline-size: var(--zx-control-height);
3834
+ }
3835
+ .zx-table th,
3836
+ .zx-table td {
3837
+ border-block-end: 1px solid var(--zx-color-border);
3838
+ padding: var(--zx-space-2) var(--zx-space-3);
3839
+ text-align: start;
3840
+ vertical-align: middle;
3841
+ }
3842
+ .zx-table th {
3843
+ background: var(--zx-color-bg-raised);
3844
+ color: var(--zx-color-text-muted);
3845
+ font-size: var(--zx-text-sm);
3846
+ font-weight: 650;
3847
+ }
3848
+ .zx-table__scroll[data-sticky-header=true] th {
3849
+ position: sticky;
3850
+ z-index: 1;
3851
+ inset-block-start: 0;
3852
+ }
3853
+ .zx-table th[data-align=center],
3854
+ .zx-table td[data-align=center] {
3855
+ text-align: center;
3856
+ }
3857
+ .zx-table th[data-align=end],
3858
+ .zx-table td[data-align=end],
3859
+ .zx-table th[data-align=right],
3860
+ .zx-table td[data-align=right] {
3861
+ text-align: end;
3862
+ }
3863
+ .zx-table th[data-align=left],
3864
+ .zx-table td[data-align=left] {
3865
+ text-align: left;
3866
+ }
3867
+ .zx-table__sort-button {
3868
+ display: flex;
3869
+ align-items: center;
3870
+ justify-content: space-between;
3871
+ gap: var(--zx-space-2);
3872
+ inline-size: 100%;
3873
+ min-block-size: auto;
3874
+ border: 0;
3875
+ border-radius: var(--zx-radius-sm);
3876
+ background: inherit;
3877
+ color: inherit;
3878
+ padding: 0;
3879
+ text-align: inherit;
3880
+ }
3881
+ .zx-table__sort-button:hover {
3882
+ background: var(--zx-color-bg-hover);
3883
+ color: var(--zx-color-text);
3884
+ }
3885
+ .zx-table__sort-button:focus-visible {
3886
+ box-shadow: var(--zx-focus-ring);
3887
+ }
3888
+ .zx-table th[aria-sort=ascending] .zx-table__sort-button::after {
3889
+ content: "\2191";
3890
+ color: var(--zx-color-accent);
3891
+ }
3892
+ .zx-table th[aria-sort=descending] .zx-table__sort-button::after {
3893
+ content: "\2193";
3894
+ color: var(--zx-color-accent);
3895
+ }
3896
+ .zx-table__body tr:last-child td {
3897
+ border-block-end: 0;
3898
+ }
3899
+ .zx-table__scroll[data-zebra=true] .zx-table__body tr:nth-child(even):not([aria-selected=true]) {
3900
+ background: var(--zx-color-bg-page);
3901
+ }
3902
+ .zx-table__body tr[aria-selected=true] {
3903
+ background: var(--zx-color-bg-selected);
3904
+ }
3905
+ .zx-table__body tr[data-row]:hover {
3906
+ background: var(--zx-color-bg-hover);
3907
+ }
3908
+ .zx-table__checkbox {
3909
+ inline-size: var(--zx-space-4);
3910
+ min-block-size: auto;
3911
+ block-size: var(--zx-space-4);
3912
+ margin: 0;
3913
+ accent-color: var(--zx-color-accent);
3914
+ }
3915
+ .zx-table__selection-header,
3916
+ .zx-table__selection-cell {
3917
+ inline-size: var(--zx-control-height);
3918
+ text-align: center;
3919
+ }
3920
+ .zx-table__empty {
3921
+ padding-block: var(--zx-space-6);
3922
+ color: var(--zx-color-text-muted);
3923
+ text-align: center;
3924
+ }
3925
+ .zx-table[data-edit-mode] .zx-table__body td {
3926
+ block-size: var(--zx-control-height);
3927
+ }
3928
+ .zx-table__body td[data-editable=true] {
3929
+ cursor: cell;
3930
+ }
3931
+ .zx-table__body td[data-editable=true]:focus-visible {
3932
+ outline: 0;
3933
+ box-shadow: inset var(--zx-focus-ring);
3934
+ }
3935
+ .zx-table__body td[data-editing=true] {
3936
+ position: relative;
3937
+ }
3938
+ .zx-table__cell-shadow {
3939
+ visibility: hidden;
3940
+ }
3941
+ .zx-table__editor {
3942
+ position: absolute;
3943
+ inset: 0;
3944
+ display: flex;
3945
+ align-items: center;
3946
+ gap: var(--zx-space-1);
3947
+ padding-inline: var(--zx-space-1);
3948
+ background: var(--zx-color-bg-surface);
3949
+ }
3950
+ .zx-table__editor > * {
3951
+ inline-size: 100%;
3952
+ }
3953
+ .zx-table__editor[data-editor=checkbox] {
3954
+ justify-content: center;
3955
+ }
3956
+ .zx-table__editor[data-editor=checkbox] > * {
3957
+ inline-size: auto;
3958
+ }
3959
+ .zx-table__editor-input {
3960
+ inline-size: 100%;
3961
+ min-block-size: 0;
3962
+ block-size: var(--zx-control-height);
3963
+ padding-inline: var(--zx-space-2);
3964
+ }
3965
+ .zx-table__editor-textarea {
3966
+ block-size: 100%;
3967
+ padding-block: var(--zx-space-1);
3968
+ resize: none;
3969
+ }
3970
+ .zx-table__body td[data-invalid=true] .zx-table__editor {
3971
+ box-shadow: inset 0 0 0 1px var(--zx-color-danger);
3972
+ }
3973
+ .zx-table__body td[data-invalid=true] .zx-table__editor-input {
3974
+ border-color: var(--zx-color-danger);
3975
+ }
3976
+ .zx-table__message {
3977
+ padding: var(--zx-space-2) var(--zx-space-3);
3978
+ color: var(--zx-color-danger);
3979
+ font-size: var(--zx-text-sm);
3980
+ }
3981
+ .zx-table__message:empty {
3982
+ display: none;
3983
+ }
3984
+
3985
+ /* src/components/tree/tree.css */
3986
+ .zx-tree {
3987
+ --zx-tree-indent: 18px;
3988
+ display: block;
3989
+ min-inline-size: 0;
3990
+ color: var(--zx-color-text);
3991
+ font-size: var(--zx-control-font-size);
3992
+ }
3993
+ .zx-tree__row {
3994
+ display: flex;
3995
+ align-items: center;
3996
+ gap: var(--zx-space-2);
3997
+ min-block-size: calc(var(--zx-control-height) - 6px);
3998
+ padding-inline: var(--zx-space-2);
3999
+ padding-inline-start: calc(var(--zx-space-2) + var(--zx-tree-level, 0) * var(--zx-tree-indent));
4000
+ border-radius: var(--zx-radius-md);
4001
+ cursor: pointer;
4002
+ }
4003
+ .zx-tree__row:hover {
4004
+ background: var(--zx-color-bg-hover);
4005
+ }
4006
+ .zx-tree__row[aria-selected=true] {
4007
+ background: var(--zx-color-bg-selected);
4008
+ color: var(--zx-color-accent);
4009
+ font-weight: 550;
4010
+ }
4011
+ .zx-tree__row:focus-visible {
4012
+ outline: 0;
4013
+ box-shadow: var(--zx-focus-ring);
4014
+ }
4015
+ .zx-tree__twisty {
4016
+ display: inline-grid;
4017
+ place-items: center;
4018
+ inline-size: 14px;
4019
+ block-size: 14px;
4020
+ flex: none;
4021
+ color: var(--zx-color-text-muted);
4022
+ }
4023
+ .zx-tree__row[aria-expanded=true] .zx-tree__twisty {
4024
+ transform: rotate(90deg);
4025
+ }
4026
+ @media (prefers-reduced-motion: no-preference) {
4027
+ .zx-tree__twisty {
4028
+ transition: transform var(--zx-dur-fast) var(--zx-ease);
4029
+ }
4030
+ }
4031
+ .zx-tree__row[data-loading] .zx-tree__twisty {
4032
+ opacity: 0.5;
4033
+ }
4034
+ .zx-tree__checkbox {
4035
+ flex: none;
4036
+ margin: 0;
4037
+ }
4038
+ .zx-tree__icon {
4039
+ display: inline-grid;
4040
+ place-items: center;
4041
+ flex: none;
4042
+ color: var(--zx-color-text-muted);
4043
+ }
4044
+ .zx-tree__row[data-branch] .zx-tree__icon {
4045
+ color: var(--zx-color-warning);
4046
+ }
4047
+ .zx-tree__row[aria-selected=true] .zx-tree__icon {
4048
+ color: inherit;
4049
+ }
4050
+ .zx-tree__label {
4051
+ overflow: hidden;
4052
+ text-overflow: ellipsis;
4053
+ white-space: nowrap;
4054
+ }
4055
+ .zx-tree__badge {
4056
+ margin-inline-start: auto;
4057
+ padding-inline: var(--zx-space-2);
4058
+ border-radius: var(--zx-radius-full);
4059
+ background: var(--zx-color-bg-muted);
4060
+ color: var(--zx-color-text-muted);
4061
+ font-size: var(--zx-text-xs);
4062
+ font-variant-numeric: tabular-nums;
4063
+ }
4064
+ .zx-tree__empty {
4065
+ padding: var(--zx-space-5);
4066
+ color: var(--zx-color-text-muted);
4067
+ font-size: var(--zx-text-sm);
4068
+ text-align: center;
4069
+ }
4070
+
4071
+ /* src/components/finder/finder.css */
4072
+ .zx-finder {
4073
+ --zx-finder-column: 220px;
4074
+ display: flex;
4075
+ align-items: stretch;
4076
+ overflow-x: auto;
4077
+ overscroll-behavior-x: contain;
4078
+ border: 1px solid var(--zx-color-border);
4079
+ border-radius: var(--zx-radius-lg);
4080
+ background: var(--zx-color-bg-surface);
4081
+ color: var(--zx-color-text);
4082
+ font-size: var(--zx-control-font-size);
4083
+ }
4084
+ .zx-finder__column {
4085
+ display: flex;
4086
+ inline-size: var(--zx-finder-column);
4087
+ flex: none;
4088
+ min-inline-size: 0;
4089
+ flex-direction: column;
4090
+ border-inline-end: 1px solid var(--zx-color-border);
4091
+ }
4092
+ .zx-finder__list {
4093
+ flex: 1 1 auto;
4094
+ min-block-size: 0;
4095
+ overflow-y: auto;
4096
+ overscroll-behavior-y: contain;
4097
+ padding: var(--zx-space-1);
4098
+ }
4099
+ .zx-finder__row {
4100
+ display: flex;
4101
+ align-items: center;
4102
+ gap: var(--zx-space-2);
4103
+ min-block-size: calc(var(--zx-control-height) - 6px);
4104
+ padding-inline: var(--zx-space-2);
4105
+ border-radius: var(--zx-radius-md);
4106
+ cursor: pointer;
4107
+ }
4108
+ .zx-finder__row:hover {
4109
+ background: var(--zx-color-bg-hover);
4110
+ }
4111
+ .zx-finder__row[aria-selected=true] {
4112
+ background: var(--zx-color-bg-selected);
4113
+ color: var(--zx-color-accent);
4114
+ font-weight: 550;
4115
+ }
4116
+ .zx-finder__row:focus-visible {
4117
+ outline: 0;
4118
+ box-shadow: var(--zx-focus-ring);
4119
+ }
4120
+ .zx-finder__icon {
4121
+ display: inline-grid;
4122
+ place-items: center;
4123
+ flex: none;
4124
+ color: var(--zx-color-text-muted);
4125
+ }
4126
+ .zx-finder__row[data-branch] .zx-finder__icon {
4127
+ color: var(--zx-color-warning);
4128
+ }
4129
+ .zx-finder__row[aria-selected=true] .zx-finder__icon {
4130
+ color: inherit;
4131
+ }
4132
+ .zx-finder__label {
4133
+ overflow: hidden;
4134
+ flex: 1 1 auto;
4135
+ text-overflow: ellipsis;
4136
+ white-space: nowrap;
4137
+ }
4138
+ .zx-finder__chevron {
4139
+ display: inline-grid;
4140
+ place-items: center;
4141
+ flex: none;
4142
+ color: var(--zx-color-text-placeholder);
4143
+ }
4144
+ .zx-finder__empty {
4145
+ padding: var(--zx-space-4) var(--zx-space-3);
4146
+ color: var(--zx-color-text-muted);
4147
+ font-size: var(--zx-text-sm);
4148
+ text-align: center;
4149
+ }
4150
+ .zx-finder__preview {
4151
+ inline-size: calc(var(--zx-finder-column) * 1.4);
4152
+ flex: none;
4153
+ overflow-y: auto;
4154
+ padding: var(--zx-space-4);
4155
+ background: var(--zx-color-bg-page);
4156
+ }
4157
+
4158
+ /* src/components/data-filter/data-filter.css */
4159
+ .zx-data-filter {
4160
+ display: flex;
4161
+ flex-wrap: wrap;
4162
+ align-items: end;
4163
+ gap: var(--zx-space-3);
4164
+ padding: var(--zx-space-3);
4165
+ border: 1px solid var(--zx-color-border);
4166
+ border-radius: var(--zx-radius-md);
4167
+ background: var(--zx-color-bg-surface);
4168
+ }
4169
+ .zx-data-filter__controls {
4170
+ display: contents;
4171
+ }
4172
+ .zx-data-filter__field {
4173
+ display: grid;
4174
+ flex: 1 1 180px;
4175
+ gap: var(--zx-space-1);
4176
+ min-inline-size: 150px;
4177
+ }
4178
+ .zx-data-filter__field > input:not([type=checkbox]):not([type=radio]),
4179
+ .zx-data-filter__field > select {
4180
+ inline-size: 100%;
4181
+ }
4182
+ .zx-data-filter__label {
4183
+ color: var(--zx-color-text-muted);
4184
+ font-size: var(--zx-text-sm);
4185
+ font-weight: 650;
4186
+ }
4187
+ .zx-data-filter__badge {
4188
+ align-self: center;
4189
+ min-inline-size: var(--zx-control-height);
4190
+ border-radius: var(--zx-radius-full);
4191
+ background: var(--zx-color-bg-selected);
4192
+ color: var(--zx-color-accent);
4193
+ padding: var(--zx-space-1) var(--zx-space-2);
4194
+ font-size: var(--zx-text-sm);
4195
+ font-weight: 650;
4196
+ text-align: center;
4197
+ }
4198
+ .zx-data-filter__clear {
4199
+ align-self: end;
4200
+ }
4201
+ .zx-data-filter__badge[hidden],
4202
+ .zx-data-filter__clear[hidden] {
4203
+ display: none;
4204
+ }
4205
+
4206
+ /* src/components/pagination/pagination.css */
4207
+ .zx-pagination {
4208
+ display: flex;
4209
+ flex-wrap: wrap;
4210
+ align-items: center;
4211
+ gap: var(--zx-space-3);
4212
+ min-inline-size: 0;
4213
+ font-size: var(--zx-text-sm);
4214
+ }
4215
+ .zx-pagination__summary {
4216
+ color: var(--zx-color-text-muted);
4217
+ font-variant-numeric: tabular-nums;
4218
+ white-space: nowrap;
4219
+ }
4220
+ .zx-pagination__spacer {
4221
+ flex: 1 1 var(--zx-space-4);
4222
+ }
4223
+ .zx-pagination__size {
4224
+ display: inline-flex;
4225
+ align-items: center;
4226
+ gap: var(--zx-space-2);
4227
+ color: var(--zx-color-text-muted);
4228
+ white-space: nowrap;
4229
+ }
4230
+ .zx-pagination__select {
4231
+ min-block-size: calc(var(--zx-control-height) - var(--zx-space-1));
4232
+ padding-inline: var(--zx-space-2);
4233
+ font-size: var(--zx-text-sm);
4234
+ }
4235
+ .zx-pagination__select:focus-visible {
4236
+ outline: 0;
4237
+ box-shadow: var(--zx-focus-ring);
4238
+ }
4239
+ .zx-pagination__controls {
4240
+ display: inline-flex;
4241
+ align-items: center;
4242
+ gap: var(--zx-space-1);
4243
+ }
4244
+ .zx-pagination__pages {
4245
+ display: inline-flex;
4246
+ align-items: center;
4247
+ gap: var(--zx-space-1);
4248
+ }
4249
+ .zx-pagination__nav {
4250
+ inline-size: calc(var(--zx-control-height) - var(--zx-space-1));
4251
+ padding-inline: 0;
4252
+ color: var(--zx-color-text-muted);
4253
+ }
4254
+ .zx-pagination__page {
4255
+ min-inline-size: calc(var(--zx-control-height) - var(--zx-space-1));
4256
+ padding-inline: var(--zx-space-2);
4257
+ font-variant-numeric: tabular-nums;
4258
+ }
4259
+ .zx-pagination__page[aria-current=page] {
4260
+ border-color: var(--zx-color-accent);
4261
+ background: var(--zx-color-accent);
4262
+ color: var(--zx-color-on-accent);
4263
+ }
4264
+ .zx-pagination__page[aria-current=page]:hover:not(:disabled) {
4265
+ border-color: var(--zx-color-accent-hover);
4266
+ background: var(--zx-color-accent-hover);
4267
+ }
4268
+ .zx-pagination__ellipsis {
4269
+ display: inline-flex;
4270
+ justify-content: center;
4271
+ min-inline-size: var(--zx-space-5);
4272
+ color: var(--zx-color-text-placeholder);
4273
+ user-select: none;
4274
+ }
4275
+ .zx-pagination[data-mode=loadmore] .zx-pagination__more {
4276
+ flex: none;
4277
+ }
4278
+
4279
+ /* src/components/stepper/stepper.css */
4280
+ .zx-stepper {
4281
+ --zx-stepper-marker: 26px;
4282
+ display: grid;
4283
+ gap: var(--zx-space-3);
4284
+ min-inline-size: 0;
4285
+ }
4286
+ .zx-stepper__counter {
4287
+ margin: 0;
4288
+ color: var(--zx-color-text-muted);
4289
+ font-size: var(--zx-text-sm);
4290
+ font-variant-numeric: tabular-nums;
4291
+ }
4292
+ .zx-stepper__list {
4293
+ display: flex;
4294
+ margin: 0;
4295
+ padding: 0;
4296
+ list-style: none;
4297
+ }
4298
+ .zx-stepper__step {
4299
+ position: relative;
4300
+ display: flex;
4301
+ align-items: center;
4302
+ min-inline-size: 0;
4303
+ }
4304
+ .zx-stepper__control {
4305
+ display: flex;
4306
+ flex: 1 1 auto;
4307
+ align-items: center;
4308
+ gap: var(--zx-space-3);
4309
+ min-inline-size: 0;
4310
+ min-block-size: 0;
4311
+ border: 0;
4312
+ border-radius: var(--zx-radius-lg);
4313
+ background: none;
4314
+ padding: var(--zx-space-2);
4315
+ color: inherit;
4316
+ font: inherit;
4317
+ text-align: start;
4318
+ }
4319
+ button.zx-stepper__control:not(:disabled) {
4320
+ cursor: pointer;
4321
+ }
4322
+ button.zx-stepper__control:not(:disabled):hover {
4323
+ background: var(--zx-color-bg-hover);
4324
+ }
4325
+ button.zx-stepper__control:disabled {
4326
+ cursor: default;
4327
+ }
4328
+ .zx-stepper__control:focus-visible {
4329
+ outline: 0;
4330
+ box-shadow: var(--zx-focus-ring);
4331
+ }
4332
+ .zx-stepper__marker {
4333
+ display: grid;
4334
+ place-items: center;
4335
+ flex: none;
4336
+ inline-size: var(--zx-stepper-marker);
4337
+ block-size: var(--zx-stepper-marker);
4338
+ border: 1px solid var(--zx-color-border-strong);
4339
+ border-radius: var(--zx-radius-full);
4340
+ color: var(--zx-color-text-muted);
4341
+ font-size: var(--zx-text-xs);
4342
+ font-weight: 600;
4343
+ font-variant-numeric: tabular-nums;
4344
+ line-height: 1;
4345
+ }
4346
+ .zx-stepper__step[data-state=active] .zx-stepper__marker {
4347
+ border-color: var(--zx-color-accent);
4348
+ background: var(--zx-color-accent-subtle);
4349
+ color: var(--zx-color-accent);
4350
+ }
4351
+ .zx-stepper__step[data-state=complete] .zx-stepper__marker {
4352
+ border-color: var(--zx-color-accent);
4353
+ background: var(--zx-color-accent);
4354
+ color: var(--zx-color-on-accent);
4355
+ }
4356
+ .zx-stepper__step[data-state=error] .zx-stepper__marker {
4357
+ border-color: var(--zx-color-danger);
4358
+ background: var(--zx-color-danger-bg);
4359
+ color: var(--zx-color-danger);
4360
+ }
4361
+ .zx-stepper__text {
4362
+ display: grid;
4363
+ gap: 2px;
4364
+ min-inline-size: 0;
4365
+ }
4366
+ .zx-stepper__title {
4367
+ color: var(--zx-color-text-muted);
4368
+ font-size: var(--zx-control-font-size);
4369
+ font-weight: 500;
4370
+ overflow-wrap: anywhere;
4371
+ }
4372
+ .zx-stepper__step[data-state=active] .zx-stepper__title,
4373
+ .zx-stepper__step[data-state=complete] .zx-stepper__title {
4374
+ color: var(--zx-color-text);
4375
+ }
4376
+ .zx-stepper__step[data-state=error] .zx-stepper__title {
4377
+ color: var(--zx-color-danger);
4378
+ }
4379
+ .zx-stepper__step[aria-current=step] .zx-stepper__title {
4380
+ font-weight: 600;
4381
+ }
4382
+ .zx-stepper__description {
4383
+ color: var(--zx-color-text-muted);
4384
+ font-size: var(--zx-text-xs);
4385
+ overflow-wrap: anywhere;
4386
+ }
4387
+ .zx-stepper__optional {
4388
+ color: var(--zx-color-text-placeholder);
4389
+ font-size: var(--zx-text-xs);
4390
+ font-style: italic;
4391
+ }
4392
+ .zx-stepper__step[data-disabled] {
4393
+ opacity: 0.55;
4394
+ }
4395
+ .zx-stepper__status {
4396
+ position: absolute;
4397
+ inline-size: 1px;
4398
+ block-size: 1px;
4399
+ margin: -1px;
4400
+ border: 0;
4401
+ padding: 0;
4402
+ overflow: hidden;
4403
+ clip-path: inset(50%);
4404
+ white-space: nowrap;
4405
+ }
4406
+ .zx-stepper[data-orientation=horizontal] .zx-stepper__list {
4407
+ flex-wrap: wrap;
4408
+ align-items: center;
4409
+ gap: var(--zx-space-2);
4410
+ }
4411
+ .zx-stepper[data-orientation=horizontal] .zx-stepper__step {
4412
+ flex: 0 1 auto;
4413
+ gap: var(--zx-space-2);
4414
+ }
4415
+ .zx-stepper[data-orientation=horizontal] .zx-stepper__step:not(:last-child)::after {
4416
+ content: "";
4417
+ flex: 1 1 var(--zx-space-6);
4418
+ min-inline-size: var(--zx-space-4);
4419
+ block-size: 2px;
4420
+ border-radius: var(--zx-radius-full);
4421
+ background: var(--zx-color-border);
4422
+ }
4423
+ .zx-stepper[data-orientation=vertical] .zx-stepper__list {
4424
+ flex-direction: column;
4425
+ align-items: stretch;
4426
+ }
4427
+ .zx-stepper[data-orientation=vertical] .zx-stepper__step {
4428
+ padding-block-end: var(--zx-space-5);
4429
+ }
4430
+ .zx-stepper[data-orientation=vertical] .zx-stepper__step:last-child {
4431
+ padding-block-end: 0;
4432
+ }
4433
+ .zx-stepper[data-orientation=vertical] .zx-stepper__step:not(:last-child)::after {
4434
+ content: "";
4435
+ position: absolute;
4436
+ inset-block: calc(var(--zx-space-2) + var(--zx-stepper-marker) + var(--zx-space-1)) var(--zx-space-1);
4437
+ inset-inline-start: calc(var(--zx-space-2) + var(--zx-stepper-marker) / 2 - 1px);
4438
+ inline-size: 2px;
4439
+ border-radius: var(--zx-radius-full);
4440
+ background: var(--zx-color-border);
4441
+ }
4442
+ .zx-stepper__step[data-state=complete]::after {
4443
+ background: var(--zx-color-accent);
4444
+ }
4445
+ @media (prefers-reduced-motion: no-preference) {
4446
+ .zx-stepper__control,
4447
+ .zx-stepper__marker,
4448
+ .zx-stepper__title,
4449
+ .zx-stepper__step::after {
4450
+ transition:
4451
+ color var(--zx-dur-fast) var(--zx-ease),
4452
+ background-color var(--zx-dur-fast) var(--zx-ease),
4453
+ border-color var(--zx-dur-fast) var(--zx-ease);
4454
+ }
4455
+ }
4456
+
4457
+ /* src/components/breadcrumb/breadcrumb.css */
4458
+ .zx-breadcrumb {
4459
+ min-inline-size: 0;
4460
+ }
4461
+ .zx-breadcrumb__list {
4462
+ display: flex;
4463
+ flex-wrap: wrap;
4464
+ align-items: center;
4465
+ gap: var(--zx-space-1);
4466
+ margin: 0;
4467
+ padding: 0;
4468
+ list-style: none;
4469
+ font-size: var(--zx-text-sm);
4470
+ }
4471
+ .zx-breadcrumb__item {
4472
+ display: inline-flex;
4473
+ align-items: center;
4474
+ gap: var(--zx-space-1);
4475
+ min-inline-size: 0;
4476
+ }
4477
+ .zx-breadcrumb__separator {
4478
+ display: inline-flex;
4479
+ align-items: center;
4480
+ color: var(--zx-color-text-placeholder);
4481
+ }
4482
+ .zx-breadcrumb__link {
4483
+ display: inline-flex;
4484
+ align-items: center;
4485
+ gap: var(--zx-space-2);
4486
+ min-inline-size: 0;
4487
+ min-block-size: 0;
4488
+ border: 0;
4489
+ border-radius: var(--zx-radius-md);
4490
+ background: none;
4491
+ padding: var(--zx-space-1) var(--zx-space-2);
4492
+ color: var(--zx-color-text-muted);
4493
+ font: inherit;
4494
+ font-size: inherit;
4495
+ font-weight: 500;
4496
+ text-decoration: none;
4497
+ cursor: pointer;
4498
+ }
4499
+ .zx-breadcrumb__link:hover {
4500
+ background: var(--zx-color-bg-hover);
4501
+ color: var(--zx-color-text);
4502
+ }
4503
+ .zx-breadcrumb__link:focus-visible {
4504
+ outline: 0;
4505
+ box-shadow: var(--zx-focus-ring);
4506
+ }
4507
+ .zx-breadcrumb__current {
4508
+ display: inline-flex;
4509
+ align-items: center;
4510
+ gap: var(--zx-space-2);
4511
+ min-inline-size: 0;
4512
+ padding: var(--zx-space-1) var(--zx-space-2);
4513
+ color: var(--zx-color-text);
4514
+ font-weight: 600;
4515
+ }
4516
+ .zx-breadcrumb__label {
4517
+ overflow: hidden;
4518
+ text-overflow: ellipsis;
4519
+ white-space: nowrap;
4520
+ }
4521
+ .zx-breadcrumb__icon {
4522
+ display: inline-flex;
4523
+ flex: none;
4524
+ align-items: center;
4525
+ color: var(--zx-color-text-muted);
4526
+ }
4527
+ .zx-breadcrumb__more.zx-btn {
4528
+ min-block-size: 0;
4529
+ border-radius: var(--zx-radius-md);
4530
+ padding: var(--zx-space-1) var(--zx-space-2);
4531
+ color: var(--zx-color-text-muted);
4532
+ }
4533
+ .zx-breadcrumb__more .zx-btn__label:empty {
4534
+ display: none;
4535
+ }
4536
+ @media (prefers-reduced-motion: no-preference) {
4537
+ .zx-breadcrumb__link {
4538
+ transition: color var(--zx-dur-fast) var(--zx-ease), background-color var(--zx-dur-fast) var(--zx-ease);
4539
+ }
4540
+ }
4541
+
4542
+ /* src/components/field/field.css */
4543
+ .zx-field {
4544
+ display: grid;
4545
+ gap: var(--zx-space-1);
4546
+ min-inline-size: 0;
4547
+ }
4548
+ .zx-field[data-layout=inline] {
4549
+ grid-template-columns: minmax(8rem, 1fr) minmax(0, 2fr);
4550
+ column-gap: var(--zx-space-4);
4551
+ align-items: start;
4552
+ }
4553
+ .zx-field[data-field-type=hidden] {
4554
+ display: none;
4555
+ }
4556
+ .zx-field__label {
4557
+ min-inline-size: 0;
4558
+ color: var(--zx-color-text);
4559
+ font-size: var(--zx-text-sm);
4560
+ font-weight: 600;
4561
+ }
4562
+ .zx-field__required,
4563
+ .zx-field[data-state=danger] .zx-field__label {
4564
+ color: var(--zx-color-danger);
4565
+ }
4566
+ .zx-field[data-state=warning] .zx-field__label {
4567
+ color: var(--zx-color-warning);
4568
+ }
4569
+ .zx-field[data-state=success] .zx-field__label {
4570
+ color: var(--zx-color-success);
4571
+ }
4572
+ .zx-field__body,
4573
+ .zx-field__control {
4574
+ min-inline-size: 0;
4575
+ }
4576
+ .zx-field__control > input:not([type=checkbox]):not([type=radio]),
4577
+ .zx-field__control > select,
4578
+ .zx-field__control > textarea {
4579
+ inline-size: 100%;
4580
+ }
4581
+ .zx-field__control > textarea {
4582
+ min-block-size: calc(var(--zx-control-height) * 2.5);
4583
+ padding-block: var(--zx-space-2);
4584
+ resize: vertical;
4585
+ }
4586
+ .zx-field__option-list {
4587
+ display: flex;
4588
+ flex-wrap: wrap;
4589
+ gap: var(--zx-space-2) var(--zx-space-4);
4590
+ min-block-size: var(--zx-control-height);
4591
+ align-items: center;
4592
+ }
4593
+ .zx-field__option {
4594
+ display: inline-flex;
4595
+ gap: var(--zx-space-2);
4596
+ align-items: center;
4597
+ cursor: pointer;
4598
+ }
4599
+ .zx-field__option input {
4600
+ margin: 0;
4601
+ }
4602
+ .zx-field__description,
4603
+ .zx-field__highlight {
4604
+ margin-block-start: var(--zx-space-1);
4605
+ color: var(--zx-color-text-muted);
4606
+ font-size: var(--zx-text-sm);
4607
+ }
4608
+ .zx-field__highlight[hidden],
4609
+ .zx-field__description:empty {
4610
+ display: none;
4611
+ }
4612
+ .zx-field[data-state=danger] .zx-field__highlight {
4613
+ color: var(--zx-color-danger);
4614
+ }
4615
+ .zx-field[data-state=warning] .zx-field__highlight {
4616
+ color: var(--zx-color-warning);
4617
+ }
4618
+ .zx-field[data-state=success] .zx-field__highlight {
4619
+ color: var(--zx-color-success);
4620
+ }
4621
+ .zx-field[data-state=danger] .zx-field__control > input,
4622
+ .zx-field[data-state=danger] .zx-field__control > select,
4623
+ .zx-field[data-state=danger] .zx-field__control > textarea,
4624
+ .zx-field[data-state=danger] .zx-field__option-list {
4625
+ border-color: var(--zx-color-danger);
4626
+ }
4627
+ .zx-field__static,
4628
+ .zx-field__error-control {
4629
+ min-block-size: var(--zx-control-height);
4630
+ padding: var(--zx-space-2) var(--zx-control-pad-x);
4631
+ border: 1px solid var(--zx-color-border);
4632
+ border-radius: var(--zx-control-radius);
4633
+ background: var(--zx-color-bg-surface);
4634
+ }
4635
+ .zx-field__error-control {
4636
+ border-color: var(--zx-color-danger);
4637
+ background: var(--zx-color-danger-bg);
4638
+ color: var(--zx-color-danger);
4639
+ }
4640
+ .zx-field[data-disabled=true] {
4641
+ opacity: 0.65;
4642
+ }
4643
+ @container (max-width: 30rem) {
4644
+ .zx-field[data-layout=inline] {
4645
+ grid-template-columns: 1fr;
4646
+ }
4647
+ }
4648
+
4649
+ /* src/components/fieldset/fieldset.css */
4650
+ .zx-fieldset {
4651
+ min-inline-size: 0;
4652
+ margin: 0;
4653
+ padding: var(--zx-space-5);
4654
+ border: 1px solid var(--zx-color-border);
4655
+ border-radius: var(--zx-radius-lg);
4656
+ background: var(--zx-color-bg-surface);
4657
+ container-type: inline-size;
4658
+ }
4659
+ .zx-fieldset__legend {
4660
+ padding-inline: var(--zx-space-2);
4661
+ color: var(--zx-color-text);
4662
+ font-size: var(--zx-text-lg);
4663
+ font-weight: 600;
4664
+ }
4665
+ .zx-fieldset__grid {
4666
+ display: grid;
4667
+ grid-template-columns: minmax(0, 1fr);
4668
+ gap: var(--zx-space-4) var(--zx-space-5);
4669
+ }
4670
+ .zx-fieldset[data-columns="2"] .zx-fieldset__grid {
4671
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4672
+ }
4673
+ .zx-fieldset[data-columns="3"] .zx-fieldset__grid {
4674
+ grid-template-columns: repeat(3, minmax(0, 1fr));
4675
+ }
4676
+ @container (max-width: 38rem) {
4677
+ .zx-fieldset[data-columns="2"] .zx-fieldset__grid,
4678
+ .zx-fieldset[data-columns="3"] .zx-fieldset__grid {
4679
+ grid-template-columns: minmax(0, 1fr);
4680
+ }
4681
+ }
4682
+
4683
+ /* src/components/form/form.css */
4684
+ .zx-form,
4685
+ .zx-form__body {
4686
+ display: grid;
4687
+ gap: var(--zx-space-5);
4688
+ min-inline-size: 0;
4689
+ }
4690
+ .zx-form__actions {
4691
+ display: flex;
4692
+ flex-wrap: wrap;
4693
+ justify-content: flex-end;
4694
+ gap: var(--zx-space-2);
4695
+ padding-block-start: var(--zx-space-2);
4696
+ }
4697
+ .zx-form__actions[hidden] {
4698
+ display: none;
4699
+ }
4700
+ .zx-form__actions .zx-btn {
4701
+ min-inline-size: 6rem;
4702
+ }
4703
+ .zx-form__actions .zx-btn[type=submit] {
4704
+ border-color: var(--zx-color-accent);
4705
+ background: var(--zx-color-accent);
4706
+ color: var(--zx-color-on-accent);
4707
+ }
4708
+ .zx-form__actions .zx-btn[type=submit]:hover {
4709
+ background: var(--zx-color-accent-hover);
4710
+ }
4711
+
4712
+ /* src/components/value-list/value-list.css */
4713
+ .zx-value-list {
4714
+ display: flex;
4715
+ flex-wrap: wrap;
4716
+ align-items: center;
4717
+ gap: var(--zx-space-2);
4718
+ min-block-size: var(--zx-control-height);
4719
+ padding: var(--zx-space-1);
4720
+ border: 1px solid var(--zx-color-border-control);
4721
+ border-radius: var(--zx-control-radius);
4722
+ background: var(--zx-color-bg-control);
4723
+ }
4724
+ .zx-value-list:focus-within {
4725
+ box-shadow: var(--zx-focus-ring);
4726
+ }
4727
+ .zx-value-list__list {
4728
+ display: contents;
4729
+ margin: 0;
4730
+ padding: 0;
4731
+ list-style: none;
4732
+ }
4733
+ .zx-value-list__chip {
4734
+ display: inline-flex;
4735
+ align-items: center;
4736
+ gap: var(--zx-space-1);
4737
+ min-block-size: calc(var(--zx-control-height) - var(--zx-space-2));
4738
+ max-inline-size: 100%;
4739
+ padding-inline: var(--zx-space-2);
4740
+ border: 1px solid var(--zx-color-border);
4741
+ border-radius: var(--zx-radius-full);
4742
+ background: var(--zx-color-bg-selected);
4743
+ color: var(--zx-color-text);
4744
+ cursor: grab;
4745
+ }
4746
+ .zx-value-list__chip:focus-visible {
4747
+ box-shadow: var(--zx-focus-ring);
4748
+ }
4749
+ .zx-value-list__value {
4750
+ overflow: hidden;
4751
+ text-overflow: ellipsis;
4752
+ text-wrap: nowrap;
4753
+ }
4754
+ .zx-value-list__remove {
4755
+ display: inline-grid;
4756
+ place-items: center;
4757
+ min-inline-size: 1.25rem;
4758
+ min-block-size: 1.25rem;
4759
+ border-radius: var(--zx-radius-full);
4760
+ color: var(--zx-color-text-muted);
4761
+ cursor: pointer;
4762
+ }
4763
+ .zx-value-list__remove:hover {
4764
+ background: var(--zx-color-bg-hover);
4765
+ color: var(--zx-color-danger);
4766
+ }
4767
+ .zx-value-list__input {
4768
+ flex: 1 1 8rem;
4769
+ min-inline-size: 6rem;
4770
+ border: 0;
4771
+ background: inherit;
4772
+ box-shadow: none;
4773
+ }
4774
+ .zx-value-list__input:focus-visible {
4775
+ box-shadow: none;
4776
+ }
4777
+ .zx-value-list__status {
4778
+ flex-basis: 100%;
4779
+ color: var(--zx-color-danger);
4780
+ font-size: var(--zx-text-sm);
4781
+ }
4782
+ .zx-value-list__status:empty {
4783
+ display: none;
4784
+ }
4785
+ .zx-value-list__instructions {
4786
+ position: absolute;
4787
+ inline-size: 1px;
4788
+ block-size: 1px;
4789
+ overflow: hidden;
4790
+ clip-path: inset(50%);
4791
+ }
4792
+ .zx-value-list[data-state=dragging] .zx-value-list__chip {
4793
+ cursor: grabbing;
4794
+ }
4795
+ .zx-value-list[data-disabled=true] {
4796
+ background: var(--zx-color-bg-page);
4797
+ opacity: 0.65;
4798
+ }
4799
+ .zx-value-list[data-disabled=true] .zx-value-list__chip {
4800
+ cursor: default;
4801
+ }
4802
+ .zx-value-list[data-disabled=true] .zx-value-list__remove {
4803
+ display: none;
4804
+ }
4805
+
4806
+ /* src/components/multi-value-editor/multi-value-editor.css */
4807
+ .zx-multi-value-editor {
4808
+ display: grid;
4809
+ gap: var(--zx-space-3);
4810
+ min-inline-size: 0;
4811
+ padding: var(--zx-space-3);
4812
+ border: 1px solid var(--zx-color-border);
4813
+ border-radius: var(--zx-radius-lg);
4814
+ background: var(--zx-color-bg-surface);
4815
+ container-type: inline-size;
4816
+ }
4817
+ .zx-multi-value-editor__rows {
4818
+ display: grid;
4819
+ gap: var(--zx-space-2);
4820
+ }
4821
+ .zx-multi-value-editor__row {
4822
+ display: grid;
4823
+ grid-template-columns: minmax(0, 1fr) auto;
4824
+ gap: var(--zx-space-2);
4825
+ align-items: center;
4826
+ }
4827
+ .zx-multi-value-editor__value {
4828
+ inline-size: 100%;
4829
+ }
4830
+ .zx-multi-value-editor__controls {
4831
+ display: inline-flex;
4832
+ gap: var(--zx-space-1);
4833
+ }
4834
+ .zx-multi-value-editor__controls .zx-btn {
4835
+ min-inline-size: var(--zx-control-height);
4836
+ padding-inline: var(--zx-space-2);
4837
+ }
4838
+ .zx-multi-value-editor__controls .zx-btn:last-child {
4839
+ color: var(--zx-color-danger);
4840
+ }
4841
+ .zx-multi-value-editor__add {
4842
+ justify-self: start;
4843
+ border-color: var(--zx-color-accent);
4844
+ color: var(--zx-color-accent);
4845
+ }
4846
+ @container (max-width: 24rem) {
4847
+ .zx-multi-value-editor__row {
4848
+ grid-template-columns: minmax(0, 1fr);
4849
+ }
4850
+ .zx-multi-value-editor__controls {
4851
+ justify-self: end;
4852
+ }
4853
+ }
4854
+
4855
+ /* src/components/field-upload/field-upload.css */
4856
+ .zx-field-upload {
4857
+ display: grid;
4858
+ gap: var(--zx-space-3);
4859
+ min-inline-size: 0;
4860
+ }
4861
+ .zx-field-upload__input {
4862
+ position: absolute;
4863
+ inline-size: 1px;
4864
+ block-size: 1px;
4865
+ overflow: hidden;
4866
+ clip-path: inset(50%);
4867
+ }
4868
+ .zx-field-upload__dropzone {
4869
+ display: grid;
4870
+ place-items: center;
4871
+ gap: var(--zx-space-1);
4872
+ min-block-size: 8rem;
4873
+ inline-size: 100%;
4874
+ padding: var(--zx-space-5);
4875
+ border: 1px dashed var(--zx-color-border-strong);
4876
+ background: var(--zx-color-bg-surface);
4877
+ text-align: center;
4878
+ }
4879
+ .zx-field-upload__dropzone:hover,
4880
+ .zx-field-upload[data-state=dragover] .zx-field-upload__dropzone {
4881
+ border-color: var(--zx-color-accent);
4882
+ background: var(--zx-color-bg-selected);
4883
+ }
4884
+ .zx-field-upload__prompt {
4885
+ color: var(--zx-color-text);
4886
+ font-weight: 600;
4887
+ }
4888
+ .zx-field-upload__hint,
4889
+ .zx-field-upload__status,
4890
+ .zx-field-upload__progress-text {
4891
+ color: var(--zx-color-text-muted);
4892
+ font-size: var(--zx-text-sm);
4893
+ }
4894
+ .zx-field-upload__preview:empty {
4895
+ display: none;
4896
+ }
4897
+ .zx-field-upload__image {
4898
+ display: block;
4899
+ max-inline-size: 12rem;
4900
+ max-block-size: 9rem;
4901
+ border: 1px solid var(--zx-color-border);
4902
+ border-radius: var(--zx-radius-md);
4903
+ object-fit: contain;
4904
+ }
4905
+ .zx-field-upload__progress-wrap {
4906
+ display: grid;
4907
+ grid-template-columns: minmax(0, 1fr) auto auto;
4908
+ gap: var(--zx-space-3);
4909
+ align-items: center;
4910
+ }
4911
+ .zx-field-upload__progress-wrap[hidden] {
4912
+ display: none;
4913
+ }
4914
+ .zx-field-upload__progress {
4915
+ inline-size: 100%;
4916
+ accent-color: var(--zx-color-accent);
4917
+ }
4918
+ .zx-field-upload__abort {
4919
+ color: var(--zx-color-danger);
4920
+ }
4921
+ .zx-field-upload__abort[hidden] {
4922
+ display: none;
4923
+ }
4924
+ .zx-field-upload[data-state=error] .zx-field-upload__dropzone {
4925
+ border-color: var(--zx-color-danger);
4926
+ background: var(--zx-color-danger-bg);
4927
+ }
4928
+ .zx-field-upload[data-state=error] .zx-field-upload__status {
4929
+ color: var(--zx-color-danger);
4930
+ }
4931
+ .zx-field-upload[data-state=success] .zx-field-upload__dropzone {
4932
+ border-color: var(--zx-color-success);
4933
+ }
4934
+ .zx-field-upload[data-state=success] .zx-field-upload__status {
4935
+ color: var(--zx-color-success);
4936
+ }
4937
+ .zx-field-upload[data-disabled=true] {
4938
+ opacity: 0.65;
4939
+ }
4940
+ @media (prefers-reduced-motion: no-preference) {
4941
+ .zx-field-upload__dropzone {
4942
+ transition: border-color var(--zx-dur-fast) var(--zx-ease), background var(--zx-dur-fast) var(--zx-ease);
4943
+ }
4944
+ }
4945
+
4946
+ /* styles/zx.css */