@zidsa/zidmui 1.5.2-beta.1 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/cjs/components/app-icon-with-tooltip.js.map +1 -1
  2. package/dist/cjs/components/app-input-base-search.js.map +1 -1
  3. package/dist/cjs/stories/css/Alert.stories.js +69 -0
  4. package/dist/cjs/stories/css/Alert.stories.js.map +1 -0
  5. package/dist/cjs/stories/design/Colors.stories.js.map +1 -0
  6. package/dist/cjs/stories/design/Spacing.stories.js.map +1 -1
  7. package/dist/cjs/stories/{AppAlert.stories.js → react/AppAlert.stories.js} +3 -3
  8. package/dist/cjs/stories/react/AppAlert.stories.js.map +1 -0
  9. package/dist/cjs/stories/{AppButton.stories.js → react/AppButton.stories.js} +2 -2
  10. package/dist/cjs/stories/react/AppButton.stories.js.map +1 -0
  11. package/dist/cjs/stories/{AppIconWithTooltip.stories.js → react/AppIconWithTooltip.stories.js} +2 -2
  12. package/dist/cjs/stories/react/AppIconWithTooltip.stories.js.map +1 -0
  13. package/dist/cjs/stories/{AppInputBase.stories.js → react/AppInputBase.stories.js} +13 -5
  14. package/dist/cjs/stories/react/AppInputBase.stories.js.map +1 -0
  15. package/dist/cjs/stories/{AppInputBaseSearch.stories.js → react/AppInputBaseSearch.stories.js} +4 -4
  16. package/dist/cjs/stories/react/AppInputBaseSearch.stories.js.map +1 -0
  17. package/dist/cjs/stories/{AppListItem.stories.js → react/AppListItem.stories.js} +6 -6
  18. package/dist/cjs/stories/react/AppListItem.stories.js.map +1 -0
  19. package/dist/cjs/stories/{AppOverflownTextWithTooltip.stories.js → react/AppOverflownTextWithTooltip.stories.js} +3 -3
  20. package/dist/cjs/stories/react/AppOverflownTextWithTooltip.stories.js.map +1 -0
  21. package/dist/cjs/stories/{AppStatus.stories.js → react/AppStatus.stories.js} +2 -2
  22. package/dist/cjs/stories/react/AppStatus.stories.js.map +1 -0
  23. package/dist/cjs/stories/{AppTooltip.stories.js → react/AppTooltip.stories.js} +7 -7
  24. package/dist/cjs/stories/react/AppTooltip.stories.js.map +1 -0
  25. package/dist/es/components/app-icon-with-tooltip.js.map +1 -1
  26. package/dist/es/components/app-input-base-search.js.map +1 -1
  27. package/dist/es/stories/css/Alert.stories.js +69 -0
  28. package/dist/es/stories/css/Alert.stories.js.map +1 -0
  29. package/dist/es/stories/design/Colors.stories.js.map +1 -0
  30. package/dist/es/stories/design/Spacing.stories.js.map +1 -1
  31. package/dist/es/stories/{AppAlert.stories.js → react/AppAlert.stories.js} +3 -3
  32. package/dist/es/stories/react/AppAlert.stories.js.map +1 -0
  33. package/dist/es/stories/{AppButton.stories.js → react/AppButton.stories.js} +2 -2
  34. package/dist/es/stories/react/AppButton.stories.js.map +1 -0
  35. package/dist/es/stories/{AppIconWithTooltip.stories.js → react/AppIconWithTooltip.stories.js} +2 -2
  36. package/dist/es/stories/react/AppIconWithTooltip.stories.js.map +1 -0
  37. package/dist/es/stories/{AppInputBase.stories.js → react/AppInputBase.stories.js} +13 -5
  38. package/dist/es/stories/react/AppInputBase.stories.js.map +1 -0
  39. package/dist/es/stories/{AppInputBaseSearch.stories.js → react/AppInputBaseSearch.stories.js} +4 -4
  40. package/dist/es/stories/react/AppInputBaseSearch.stories.js.map +1 -0
  41. package/dist/es/stories/{AppListItem.stories.js → react/AppListItem.stories.js} +6 -6
  42. package/dist/es/stories/react/AppListItem.stories.js.map +1 -0
  43. package/dist/es/stories/{AppOverflownTextWithTooltip.stories.js → react/AppOverflownTextWithTooltip.stories.js} +3 -3
  44. package/dist/es/stories/react/AppOverflownTextWithTooltip.stories.js.map +1 -0
  45. package/dist/es/stories/{AppStatus.stories.js → react/AppStatus.stories.js} +2 -2
  46. package/dist/es/stories/react/AppStatus.stories.js.map +1 -0
  47. package/dist/es/stories/{AppTooltip.stories.js → react/AppTooltip.stories.js} +7 -7
  48. package/dist/es/stories/react/AppTooltip.stories.js.map +1 -0
  49. package/dist/types/stories/css/Alert.stories.d.ts +11 -0
  50. package/dist/types/stories/{AppAlert.stories.d.ts → react/AppAlert.stories.d.ts} +1 -1
  51. package/dist/types/stories/{AppButton.stories.d.ts → react/AppButton.stories.d.ts} +1 -1
  52. package/dist/types/stories/{AppIconWithTooltip.stories.d.ts → react/AppIconWithTooltip.stories.d.ts} +1 -1
  53. package/dist/types/stories/{AppInputBase.stories.d.ts → react/AppInputBase.stories.d.ts} +1 -1
  54. package/dist/types/stories/{AppInputBaseSearch.stories.d.ts → react/AppInputBaseSearch.stories.d.ts} +1 -1
  55. package/dist/types/stories/{AppListItem.stories.d.ts → react/AppListItem.stories.d.ts} +1 -1
  56. package/dist/types/stories/{AppOverflownTextWithTooltip.stories.d.ts → react/AppOverflownTextWithTooltip.stories.d.ts} +1 -1
  57. package/dist/types/stories/{AppStatus.stories.d.ts → react/AppStatus.stories.d.ts} +1 -1
  58. package/dist/types/stories/{AppTooltip.stories.d.ts → react/AppTooltip.stories.d.ts} +1 -1
  59. package/dist/zidmui.css +3062 -0
  60. package/package.json +1 -1
  61. package/dist/cjs/stories/AppAlert.stories.js.map +0 -1
  62. package/dist/cjs/stories/AppButton.stories.js.map +0 -1
  63. package/dist/cjs/stories/AppIconWithTooltip.stories.js.map +0 -1
  64. package/dist/cjs/stories/AppInputBase.stories.js.map +0 -1
  65. package/dist/cjs/stories/AppInputBaseSearch.stories.js.map +0 -1
  66. package/dist/cjs/stories/AppListItem.stories.js.map +0 -1
  67. package/dist/cjs/stories/AppOverflownTextWithTooltip.stories.js.map +0 -1
  68. package/dist/cjs/stories/AppStatus.stories.js.map +0 -1
  69. package/dist/cjs/stories/AppTooltip.stories.js.map +0 -1
  70. package/dist/cjs/stories/Colors.stories.js.map +0 -1
  71. package/dist/es/stories/AppAlert.stories.js.map +0 -1
  72. package/dist/es/stories/AppButton.stories.js.map +0 -1
  73. package/dist/es/stories/AppIconWithTooltip.stories.js.map +0 -1
  74. package/dist/es/stories/AppInputBase.stories.js.map +0 -1
  75. package/dist/es/stories/AppInputBaseSearch.stories.js.map +0 -1
  76. package/dist/es/stories/AppListItem.stories.js.map +0 -1
  77. package/dist/es/stories/AppOverflownTextWithTooltip.stories.js.map +0 -1
  78. package/dist/es/stories/AppStatus.stories.js.map +0 -1
  79. package/dist/es/stories/AppTooltip.stories.js.map +0 -1
  80. package/dist/es/stories/Colors.stories.js.map +0 -1
  81. /package/dist/cjs/stories/{Colors.stories.js → design/Colors.stories.js} +0 -0
  82. /package/dist/es/stories/{Colors.stories.js → design/Colors.stories.js} +0 -0
  83. /package/dist/types/stories/{Colors.stories.d.ts → design/Colors.stories.d.ts} +0 -0
@@ -0,0 +1,3062 @@
1
+ /**
2
+ * Zid Partner CSS Design System
3
+ * Entry point - imports all files in correct order
4
+ *
5
+ * @package @zid/partner-css
6
+ * @version 1.0.0
7
+ */
8
+
9
+ /* ========================================
10
+ * 1. Token Definitions (no dependencies)
11
+ * ======================================== */
12
+
13
+ /**
14
+ * Color Tokens
15
+ * Derived from MUI theme palette
16
+ */
17
+
18
+ :root {
19
+ /* ========================================
20
+ * Base Colors
21
+ * ======================================== */
22
+ --zid-base-white: #FFFFFF;
23
+ --zid-base-black: #000000;
24
+ --zid-base-neutral: #F5F4F6;
25
+ --zid-base-silver: #E8E4EB;
26
+ --zid-base-blur: rgba(255, 255, 255, 0.8);
27
+
28
+ /* ========================================
29
+ * Primary Scale
30
+ * ======================================== */
31
+ --zid-color-primary-50: #FBF9FF;
32
+ --zid-color-primary-100: #F8F5FF;
33
+ --zid-color-primary-200: #F1EAFF;
34
+ --zid-color-primary-300: #E2D2FF;
35
+ --zid-color-primary-400: #D2B8FF;
36
+ --zid-color-primary-500: #C199FF;
37
+ --zid-color-primary-600: #AE72FF;
38
+ --zid-color-primary-700: #9C66E4;
39
+ --zid-color-primary-800: #8758C6;
40
+ --zid-color-primary-900: #6E48A1;
41
+ --zid-color-primary-1000: #4E3372;
42
+
43
+ /* ========================================
44
+ * Secondary Scale
45
+ * ======================================== */
46
+ --zid-color-secondary-50: #F4F3F5;
47
+ --zid-color-secondary-100: #EBE8ED;
48
+ --zid-color-secondary-200: #D8D2DD;
49
+ --zid-color-secondary-300: #B1A4BB;
50
+ --zid-color-secondary-400: #8A7798;
51
+ --zid-color-secondary-500: #634976;
52
+ --zid-color-secondary-600: #3C1C54;
53
+ --zid-color-secondary-700: #36194B;
54
+ --zid-color-secondary-800: #2E1641;
55
+ --zid-color-secondary-900: #261235;
56
+ --zid-color-secondary-1000: #1B0D26;
57
+
58
+ /* ========================================
59
+ * Neutral Scale
60
+ * ======================================== */
61
+ --zid-color-neutral-50: #F8F8F8;
62
+ --zid-color-neutral-100: #F2F2F2;
63
+ --zid-color-neutral-200: #E4E4E5;
64
+ --zid-color-neutral-300: #C6C6C8;
65
+ --zid-color-neutral-400: #A3A1A6;
66
+ --zid-color-neutral-500: #75727B;
67
+ --zid-color-neutral-600: #1F0433;
68
+ --zid-color-neutral-700: #1C042E;
69
+ --zid-color-neutral-800: #180328;
70
+ --zid-color-neutral-900: #140320;
71
+ --zid-color-neutral-1000: #0E0217;
72
+
73
+
74
+ /* ========================================
75
+ * Green Scale
76
+ * ======================================== */
77
+ --zid-color-green-50: #FAFDFA;
78
+ --zid-color-green-100: #F7FDF7;
79
+ --zid-color-green-200: #EFFBEE;
80
+ --zid-color-green-300: #DDF8DC;
81
+ --zid-color-green-400: #CAF4C8;
82
+ --zid-color-green-500: #B6F0B1;
83
+ --zid-color-green-600: #9EEC98;
84
+ --zid-color-green-700: #8DD388;
85
+ --zid-color-green-800: #7AB776;
86
+ --zid-color-green-900: #649560;
87
+ --zid-color-green-1000: #476A44;
88
+
89
+ /* ========================================
90
+ * Blue Scale
91
+ * ======================================== */
92
+ --zid-color-blue-50: #F9FDFD;
93
+ --zid-color-blue-100: #F4FCFC;
94
+ --zid-color-blue-200: #E9FAFA;
95
+ --zid-color-blue-300: #D1F4F4;
96
+ --zid-color-blue-400: #B5EFEF;
97
+ --zid-color-blue-500: #95E9E9;
98
+ --zid-color-blue-600: #6BE3E3;
99
+ --zid-color-blue-700: #60CBCB;
100
+ --zid-color-blue-800: #53B0B0;
101
+ --zid-color-blue-900: #449090;
102
+ --zid-color-blue-1000: #306666;
103
+
104
+ /* ========================================
105
+ * Yellow Scale
106
+ * ======================================== */
107
+ --zid-color-yellow-50: #FEFDF9;
108
+ --zid-color-yellow-100: #FEFDF5;
109
+ --zid-color-yellow-200: #FEFAEB;
110
+ --zid-color-yellow-300: #FDF5D6;
111
+ --zid-color-yellow-400: #FBF0BF;
112
+ --zid-color-yellow-500: #FAEBA4;
113
+ --zid-color-yellow-600: #F9E683;
114
+ --zid-color-yellow-700: #DFCE75;
115
+ --zid-color-yellow-800: #C1B265;
116
+ --zid-color-yellow-900: #9D9153;
117
+ --zid-color-yellow-1000: #6F673B;
118
+
119
+ /* ========================================
120
+ * Orange Scale
121
+ * ======================================== */
122
+ --zid-color-orange-50: #FFFAF8;
123
+ --zid-color-orange-100: #FFF6F3;
124
+ --zid-color-orange-200: #FFEDE6;
125
+ --zid-color-orange-300: #FFD8C9;
126
+ --zid-color-orange-400: #FFC2A7;
127
+ --zid-color-orange-500: #FFA97D;
128
+ --zid-color-orange-600: #FF8C3A;
129
+ --zid-color-orange-700: #E47D34;
130
+ --zid-color-orange-800: #C66C2D;
131
+ --zid-color-orange-900: #A15925;
132
+ --zid-color-orange-1000: #723F1A;
133
+
134
+ /* ========================================
135
+ * Red Scale
136
+ * ======================================== */
137
+ --zid-color-red-50: #FFF8F9;
138
+ --zid-color-red-100: #FFF3F4;
139
+ --zid-color-red-200: #FEE5E9;
140
+ --zid-color-red-300: #FDC9D0;
141
+ --zid-color-red-400: #FCA7B4;
142
+ --zid-color-red-500: #FB7C93;
143
+ --zid-color-red-600: #FA3768;
144
+ --zid-color-red-700: #E0315D;
145
+ --zid-color-red-800: #C22B51;
146
+ --zid-color-red-900: #9E2342;
147
+ --zid-color-red-1000: #70192F;
148
+
149
+ /* ========================================
150
+ * Semantic Tokens - Primary
151
+ * ======================================== */
152
+ --zid-primary-main: #AE72FF;
153
+ --zid-primary-dark: #8758C6;
154
+ --zid-primary-light: #D2B8FF;
155
+ --zid-primary-contrast-text: #FFFFFF;
156
+
157
+ /* ========================================
158
+ * Semantic Tokens - Secondary
159
+ * ======================================== */
160
+ --zid-secondary-main: #3C1C54;
161
+ --zid-secondary-dark: #2E1641;
162
+ --zid-secondary-light: #8A7798;
163
+ --zid-secondary-contrast-text: #FFFFFF;
164
+
165
+ /* ========================================
166
+ * Semantic Tokens - Error
167
+ * ======================================== */
168
+ --zid-error-main: #FA3768;
169
+ --zid-error-dark: #C22B51;
170
+ --zid-error-light: #FCA7B4;
171
+ --zid-error-contrast-text: #FFFFFF;
172
+
173
+ /* ========================================
174
+ * Semantic Tokens - Warning
175
+ * ======================================== */
176
+ --zid-warning-main: #F9E683;
177
+ --zid-warning-dark: #DFCE75;
178
+ --zid-warning-light: #FBF0BF;
179
+ --zid-warning-contrast-text: #6F673B;
180
+
181
+ /* ========================================
182
+ * Semantic Tokens - Info
183
+ * ======================================== */
184
+ --zid-info-main: #60CBCB;
185
+ --zid-info-dark: #449090;
186
+ --zid-info-light: #95E9E9;
187
+ --zid-info-contrast-text: #FFFFFF;
188
+
189
+ /* ========================================
190
+ * Semantic Tokens - Success
191
+ * ======================================== */
192
+ --zid-success-main: #9EEC98;
193
+ --zid-success-dark: #649560;
194
+ --zid-success-light: #DDF8DC;
195
+ --zid-success-contrast-text: #000000;
196
+
197
+ /* ========================================
198
+ * Text Colors
199
+ * ======================================== */
200
+ --zid-text-primary: var(--zid-color-neutral-1000);
201
+ --zid-text-secondary: var(--zid-color-neutral-600);
202
+ --zid-text-tertiary: var(--zid-color-neutral-500);
203
+ --zid-text-disabled: var(--zid-color-neutral-400);
204
+
205
+ /* ========================================
206
+ * Background Colors
207
+ * ======================================== */
208
+ --zid-bg-default: #F8F8F8;
209
+ --zid-bg-paper: var(--zid-base-white);
210
+
211
+ /* ========================================
212
+ * Divider
213
+ * ======================================== */
214
+ --zid-divider: var(--zid-color-secondary-50);
215
+ }
216
+
217
+ /**
218
+ * Typography Tokens
219
+ * Derived from MUI theme typography
220
+ */
221
+
222
+ :root {
223
+ /* ========================================
224
+ * Font Family
225
+ * ======================================== */
226
+ --zid-font-family: 'IBM Plex Sans Arabic', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
227
+
228
+ /* ========================================
229
+ * Font Sizes
230
+ * ======================================== */
231
+ --zid-font-size-xs: 0.75rem; /* 12px */
232
+ --zid-font-size-sm: 0.875rem; /* 14px */
233
+ --zid-font-size-base: 1rem; /* 16px */
234
+ --zid-font-size-lg: 1.125rem; /* 18px */
235
+ --zid-font-size-xl: 1.25rem; /* 20px */
236
+ --zid-font-size-2xl: 1.5rem; /* 24px */
237
+ --zid-font-size-3xl: 1.875rem; /* 30px */
238
+ --zid-font-size-4xl: 2.25rem; /* 36px */
239
+
240
+ /* ========================================
241
+ * Font Weights
242
+ * ======================================== */
243
+ --zid-font-weight-regular: 400;
244
+ --zid-font-weight-medium: 500;
245
+ --zid-font-weight-semibold: 600;
246
+ --zid-font-weight-bold: 700;
247
+
248
+ /* ========================================
249
+ * Line Heights
250
+ * ======================================== */
251
+ --zid-line-height-tight: 1.25;
252
+ --zid-line-height-normal: 1.5;
253
+ --zid-line-height-relaxed: 1.75;
254
+
255
+ /* ========================================
256
+ * Letter Spacing
257
+ * ======================================== */
258
+ --zid-letter-spacing-tight: -0.5px;
259
+ --zid-letter-spacing-normal: 0;
260
+ --zid-letter-spacing-wide: 0.15px;
261
+ --zid-letter-spacing-wider: 0.25px;
262
+ }
263
+
264
+ /**
265
+ * Spacing Tokens
266
+ * Based on 8px baseline with half-step support
267
+ */
268
+
269
+ :root {
270
+ /* ========================================
271
+ * Spacing Scale
272
+ * ======================================== */
273
+ --zid-spacing-0: 0;
274
+ --zid-spacing-0-25: 2px;
275
+ --zid-spacing-0-5: 4px;
276
+ --zid-spacing-0-75: 6px;
277
+ --zid-spacing-1: 8px;
278
+ --zid-spacing-1-5: 12px;
279
+ --zid-spacing-2: 16px;
280
+ --zid-spacing-2-5: 20px;
281
+ --zid-spacing-3: 24px;
282
+ --zid-spacing-3-5: 28px;
283
+ --zid-spacing-4: 32px;
284
+ --zid-spacing-5: 40px;
285
+ --zid-spacing-6: 48px;
286
+ --zid-spacing-7: 56px;
287
+ --zid-spacing-8: 64px;
288
+ --zid-spacing-9: 72px;
289
+ --zid-spacing-10: 80px;
290
+ --zid-spacing-11: 88px;
291
+ --zid-spacing-12: 96px;
292
+ }
293
+
294
+ /**
295
+ * Action State Tokens
296
+ * Derived from MUI theme action states
297
+ */
298
+
299
+ :root {
300
+ /* ========================================
301
+ * Action States (based on neutral-600)
302
+ * ======================================== */
303
+ --zid-action-active: rgba(31, 4, 51, 0.56);
304
+ --zid-action-hover: rgba(31, 4, 51, 0.04);
305
+ --zid-action-selected: rgba(31, 4, 51, 0.08);
306
+ --zid-action-focus: rgba(31, 4, 51, 0.12);
307
+ --zid-action-disabled: rgba(31, 4, 51, 0.38);
308
+ --zid-action-disabled-background: rgba(31, 4, 51, 0.12);
309
+
310
+ /* ========================================
311
+ * Primary States
312
+ * ======================================== */
313
+ --zid-primary-state-hover: rgba(174, 114, 255, 0.04);
314
+ --zid-primary-state-selected: rgba(174, 114, 255, 0.08);
315
+ --zid-primary-state-focus: rgba(174, 114, 255, 0.12);
316
+ --zid-primary-state-focus-visible: rgba(174, 114, 255, 0.3);
317
+ --zid-primary-state-outlined-border: rgba(174, 114, 255, 0.5);
318
+
319
+ /* ========================================
320
+ * Secondary States
321
+ * ======================================== */
322
+ --zid-secondary-state-hover: rgba(60, 28, 84, 0.04);
323
+ --zid-secondary-state-selected: rgba(60, 28, 84, 0.08);
324
+ --zid-secondary-state-focus: rgba(60, 28, 84, 0.12);
325
+ --zid-secondary-state-focus-visible: rgba(60, 28, 84, 0.3);
326
+ --zid-secondary-state-outlined-border: rgba(60, 28, 84, 0.5);
327
+
328
+ /* ========================================
329
+ * Error States
330
+ * ======================================== */
331
+ --zid-error-state-hover: rgba(250, 55, 104, 0.04);
332
+ --zid-error-state-selected: rgba(250, 55, 104, 0.08);
333
+ --zid-error-state-focus-visible: rgba(250, 55, 104, 0.3);
334
+ --zid-error-state-outlined-border: rgba(250, 55, 104, 0.5);
335
+
336
+ /* ========================================
337
+ * Success States
338
+ * ======================================== */
339
+ --zid-success-state-hover: rgba(46, 125, 50, 0.04);
340
+ --zid-success-state-focus-visible: rgba(46, 125, 50, 0.3);
341
+ --zid-success-state-outlined-border: rgba(46, 125, 50, 0.5);
342
+
343
+ /* ========================================
344
+ * Warning States
345
+ * ======================================== */
346
+ --zid-warning-state-hover: rgba(193, 178, 101, 0.04);
347
+ --zid-warning-state-selected: rgba(193, 178, 101, 0.08);
348
+ --zid-warning-state-focus-visible: rgba(193, 178, 101, 0.3);
349
+ --zid-warning-state-outlined-border: rgba(193, 178, 101, 0.5);
350
+
351
+ /* ========================================
352
+ * Common States
353
+ * ======================================== */
354
+ --zid-common-black-hover: rgba(0, 0, 0, 0.04);
355
+ --zid-common-black-selected: rgba(0, 0, 0, 0.08);
356
+ --zid-common-black-focus: rgba(0, 0, 0, 0.12);
357
+ --zid-common-white-focus: rgba(255, 255, 255, 0.12);
358
+ --zid-common-white-focus-visible: rgba(255, 255, 255, 0.3);
359
+ }
360
+
361
+ /**
362
+ * Root Tokens
363
+ * Shape and shadow definitions
364
+ */
365
+
366
+ :root {
367
+ /* ========================================
368
+ * Border Radius
369
+ * ======================================== */
370
+ --zid-radius-none: 0;
371
+ --zid-radius-sm: 4px;
372
+ --zid-radius-standard: 8px;
373
+ --zid-radius-md: 12px;
374
+ --zid-radius-lg: 16px;
375
+ --zid-radius-xl: 24px;
376
+ --zid-radius-full: 9999px;
377
+
378
+ /* ========================================
379
+ * Shadows (Elevation Scale 0-24)
380
+ * ======================================== */
381
+ --zid-shadow-0: none;
382
+ --zid-shadow-1: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);
383
+ --zid-shadow-2: 0px 1px 2px 0px rgba(16, 24, 40, 0.05), 0px 1px 3px 0px rgba(16, 24, 40, 0.05);
384
+ --zid-shadow-3: 0px 2px 4px -2px rgba(16, 24, 40, 0.05), 0px 4px 8px -2px rgba(16, 24, 40, 0.10);
385
+ --zid-shadow-4: 0px 2px 6px -2px rgba(16, 24, 40, 0.03), 0px 12px 16px -4px rgba(16, 24, 40, 0.08);
386
+ --zid-shadow-5: 0px 3px 5px -1px rgba(0, 0, 0, 0.20), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);
387
+ --zid-shadow-6: 0px 3px 5px -1px rgba(0, 0, 0, 0.20), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
388
+ --zid-shadow-7: 0px 4px 5px -2px rgba(0, 0, 0, 0.20), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);
389
+ --zid-shadow-8: 0px 4px 5px -2px rgba(0, 0, 0, 0.20), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);
390
+ --zid-shadow-9: 0px 5px 5px -3px rgba(0, 0, 0, 0.20), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
391
+ --zid-shadow-10: 0px 5px 6px -3px rgba(0, 0, 0, 0.20), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);
392
+ --zid-shadow-11: 0px 6px 6px -3px rgba(0, 0, 0, 0.20), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);
393
+ --zid-shadow-12: 0px 6px 7px -4px rgba(0, 0, 0, 0.20), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);
394
+ --zid-shadow-13: 0px 7px 8px -4px rgba(0, 0, 0, 0.20), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);
395
+ --zid-shadow-14: 0px 7px 8px -4px rgba(0, 0, 0, 0.20), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);
396
+ --zid-shadow-15: 0px 7px 9px -4px rgba(0, 0, 0, 0.20), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);
397
+ --zid-shadow-16: 0px 8px 9px -5px rgba(0, 0, 0, 0.20), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);
398
+ --zid-shadow-17: 0px 8px 10px -5px rgba(0, 0, 0, 0.20), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
399
+ --zid-shadow-18: 0px 8px 11px -5px rgba(0, 0, 0, 0.20), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);
400
+ --zid-shadow-19: 0px 9px 11px -5px rgba(0, 0, 0, 0.20), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);
401
+ --zid-shadow-20: 0px 9px 12px -6px rgba(0, 0, 0, 0.20), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);
402
+ --zid-shadow-21: 0px 10px 13px -6px rgba(0, 0, 0, 0.20), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);
403
+ --zid-shadow-22: 0px 10px 13px -6px rgba(0, 0, 0, 0.20), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);
404
+ --zid-shadow-23: 0px 10px 14px -6px rgba(0, 0, 0, 0.20), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);
405
+ --zid-shadow-24: 0px 11px 14px -7px rgba(0, 0, 0, 0.20), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);
406
+
407
+ /* ========================================
408
+ * Transitions
409
+ * ======================================== */
410
+ --zid-transition-fast: 150ms ease-in-out;
411
+ --zid-transition-normal: 200ms ease-in-out;
412
+ --zid-transition-slow: 300ms ease-in-out;
413
+ }
414
+
415
+ /* ========================================
416
+ * 2. Utilities (depends on tokens)
417
+ * ======================================== */
418
+
419
+ /**
420
+ * Utility Classes
421
+ * Common patterns using design tokens
422
+ */
423
+
424
+ /* ========================================
425
+ * Display Utilities
426
+ * ======================================== */
427
+
428
+ .zid-hidden {
429
+ display: none;
430
+ }
431
+
432
+ .zid-block {
433
+ display: block;
434
+ }
435
+
436
+ .zid-inline {
437
+ display: inline;
438
+ }
439
+
440
+ .zid-inline-block {
441
+ display: inline-block;
442
+ }
443
+
444
+ .zid-flex {
445
+ display: flex;
446
+ }
447
+
448
+ .zid-inline-flex {
449
+ display: inline-flex;
450
+ }
451
+
452
+ .zid-grid {
453
+ display: grid;
454
+ }
455
+
456
+ /* ========================================
457
+ * Flex Utilities
458
+ * ======================================== */
459
+
460
+ .zid-flex-row {
461
+ flex-direction: row;
462
+ }
463
+
464
+ .zid-flex-col {
465
+ flex-direction: column;
466
+ }
467
+
468
+ .zid-flex-wrap {
469
+ flex-wrap: wrap;
470
+ }
471
+
472
+ .zid-flex-nowrap {
473
+ flex-wrap: nowrap;
474
+ }
475
+
476
+ .zid-items-start {
477
+ align-items: flex-start;
478
+ }
479
+
480
+ .zid-items-center {
481
+ align-items: center;
482
+ }
483
+
484
+ .zid-items-end {
485
+ align-items: flex-end;
486
+ }
487
+
488
+ .zid-justify-start {
489
+ justify-content: flex-start;
490
+ }
491
+
492
+ .zid-justify-center {
493
+ justify-content: center;
494
+ }
495
+
496
+ .zid-justify-end {
497
+ justify-content: flex-end;
498
+ }
499
+
500
+ .zid-justify-between {
501
+ justify-content: space-between;
502
+ }
503
+
504
+ .zid-flex-1 {
505
+ flex: 1;
506
+ }
507
+
508
+ .zid-flex-auto {
509
+ flex: auto;
510
+ }
511
+
512
+ .zid-flex-none {
513
+ flex: none;
514
+ }
515
+
516
+ /* ========================================
517
+ * Gap Utilities
518
+ * ======================================== */
519
+
520
+ .zid-gap-0 {
521
+ gap: var(--zid-spacing-0);
522
+ }
523
+
524
+ .zid-gap-1 {
525
+ gap: var(--zid-spacing-1);
526
+ }
527
+
528
+ .zid-gap-2 {
529
+ gap: var(--zid-spacing-2);
530
+ }
531
+
532
+ .zid-gap-3 {
533
+ gap: var(--zid-spacing-3);
534
+ }
535
+
536
+ .zid-gap-4 {
537
+ gap: var(--zid-spacing-4);
538
+ }
539
+
540
+ /* ========================================
541
+ * Text Alignment
542
+ * ======================================== */
543
+
544
+ .zid-text-left {
545
+ text-align: left;
546
+ }
547
+
548
+ .zid-text-center {
549
+ text-align: center;
550
+ }
551
+
552
+ .zid-text-right {
553
+ text-align: right;
554
+ }
555
+
556
+ /* ========================================
557
+ * Text Colors
558
+ * ======================================== */
559
+
560
+ .zid-text-primary {
561
+ color: var(--zid-text-primary);
562
+ }
563
+
564
+ .zid-text-secondary {
565
+ color: var(--zid-text-secondary);
566
+ }
567
+
568
+ .zid-text-tertiary {
569
+ color: var(--zid-text-tertiary);
570
+ }
571
+
572
+ .zid-text-disabled {
573
+ color: var(--zid-text-disabled);
574
+ }
575
+
576
+ /* ========================================
577
+ * Font Weights
578
+ * ======================================== */
579
+
580
+ .zid-font-regular {
581
+ font-weight: var(--zid-font-weight-regular);
582
+ }
583
+
584
+ .zid-font-medium {
585
+ font-weight: var(--zid-font-weight-medium);
586
+ }
587
+
588
+ .zid-font-semibold {
589
+ font-weight: var(--zid-font-weight-semibold);
590
+ }
591
+
592
+ .zid-font-bold {
593
+ font-weight: var(--zid-font-weight-bold);
594
+ }
595
+
596
+ /* ========================================
597
+ * Font Sizes
598
+ * ======================================== */
599
+
600
+ .zid-text-xs {
601
+ font-size: var(--zid-font-size-xs);
602
+ }
603
+
604
+ .zid-text-sm {
605
+ font-size: var(--zid-font-size-sm);
606
+ }
607
+
608
+ .zid-text-base {
609
+ font-size: var(--zid-font-size-base);
610
+ }
611
+
612
+ .zid-text-lg {
613
+ font-size: var(--zid-font-size-lg);
614
+ }
615
+
616
+ .zid-text-xl {
617
+ font-size: var(--zid-font-size-xl);
618
+ }
619
+
620
+ /* ========================================
621
+ * Width Utilities
622
+ * ======================================== */
623
+
624
+ .zid-w-full {
625
+ width: 100%;
626
+ }
627
+
628
+ .zid-w-auto {
629
+ width: auto;
630
+ }
631
+
632
+ /* ========================================
633
+ * Margin Utilities
634
+ * ======================================== */
635
+
636
+ .zid-m-0 {
637
+ margin: var(--zid-spacing-0);
638
+ }
639
+
640
+ .zid-m-1 {
641
+ margin: var(--zid-spacing-1);
642
+ }
643
+
644
+ .zid-m-2 {
645
+ margin: var(--zid-spacing-2);
646
+ }
647
+
648
+ .zid-mt-1 {
649
+ margin-top: var(--zid-spacing-1);
650
+ }
651
+
652
+ .zid-mt-2 {
653
+ margin-top: var(--zid-spacing-2);
654
+ }
655
+
656
+ .zid-mb-1 {
657
+ margin-bottom: var(--zid-spacing-1);
658
+ }
659
+
660
+ .zid-mb-2 {
661
+ margin-bottom: var(--zid-spacing-2);
662
+ }
663
+
664
+ /* ========================================
665
+ * Padding Utilities
666
+ * ======================================== */
667
+
668
+ .zid-p-0 {
669
+ padding: var(--zid-spacing-0);
670
+ }
671
+
672
+ .zid-p-1 {
673
+ padding: var(--zid-spacing-1);
674
+ }
675
+
676
+ .zid-p-2 {
677
+ padding: var(--zid-spacing-2);
678
+ }
679
+
680
+ .zid-p-3 {
681
+ padding: var(--zid-spacing-3);
682
+ }
683
+
684
+ .zid-p-4 {
685
+ padding: var(--zid-spacing-4);
686
+ }
687
+
688
+ /* ========================================
689
+ * Border Radius
690
+ * ======================================== */
691
+
692
+ .zid-rounded-none {
693
+ border-radius: var(--zid-radius-none);
694
+ }
695
+
696
+ .zid-rounded-sm {
697
+ border-radius: var(--zid-radius-sm);
698
+ }
699
+
700
+ .zid-rounded {
701
+ border-radius: var(--zid-radius-standard);
702
+ }
703
+
704
+ .zid-rounded-md {
705
+ border-radius: var(--zid-radius-md);
706
+ }
707
+
708
+ .zid-rounded-lg {
709
+ border-radius: var(--zid-radius-lg);
710
+ }
711
+
712
+ .zid-rounded-full {
713
+ border-radius: var(--zid-radius-full);
714
+ }
715
+
716
+ /* ========================================
717
+ * Shadows
718
+ * ======================================== */
719
+
720
+ .zid-shadow-none {
721
+ box-shadow: var(--zid-shadow-0);
722
+ }
723
+
724
+ .zid-shadow-sm {
725
+ box-shadow: var(--zid-shadow-1);
726
+ }
727
+
728
+ .zid-shadow {
729
+ box-shadow: var(--zid-shadow-2);
730
+ }
731
+
732
+ .zid-shadow-md {
733
+ box-shadow: var(--zid-shadow-4);
734
+ }
735
+
736
+ .zid-shadow-lg {
737
+ box-shadow: var(--zid-shadow-8);
738
+ }
739
+
740
+ .zid-shadow-xl {
741
+ box-shadow: var(--zid-shadow-16);
742
+ }
743
+
744
+ /* ========================================
745
+ * Overflow
746
+ * ======================================== */
747
+
748
+ .zid-overflow-hidden {
749
+ overflow: hidden;
750
+ }
751
+
752
+ .zid-overflow-auto {
753
+ overflow: auto;
754
+ }
755
+
756
+ .zid-overflow-scroll {
757
+ overflow: scroll;
758
+ }
759
+
760
+ /* ========================================
761
+ * Cursor
762
+ * ======================================== */
763
+
764
+ .zid-cursor-pointer {
765
+ cursor: pointer;
766
+ }
767
+
768
+ .zid-cursor-not-allowed {
769
+ cursor: not-allowed;
770
+ }
771
+
772
+ /* ========================================
773
+ * Visibility
774
+ * ======================================== */
775
+
776
+ .zid-visible {
777
+ visibility: visible;
778
+ }
779
+
780
+ .zid-invisible {
781
+ visibility: hidden;
782
+ }
783
+
784
+ /* ========================================
785
+ * Screen Reader Only
786
+ * ======================================== */
787
+
788
+ .zid-sr-only {
789
+ position: absolute;
790
+ width: 1px;
791
+ height: 1px;
792
+ padding: 0;
793
+ margin: -1px;
794
+ overflow: hidden;
795
+ clip: rect(0, 0, 0, 0);
796
+ white-space: nowrap;
797
+ border: 0;
798
+ }
799
+
800
+ /* ========================================
801
+ * 3. Components (depends on tokens)
802
+ * ======================================== */
803
+
804
+ /**
805
+ * Button Component
806
+ * Variants: contained, outlined, text
807
+ * Colors: primary, secondary, error
808
+ * Sizes: sm, md, lg
809
+ */
810
+
811
+ /* ========================================
812
+ * Base Button (low specificity with :where)
813
+ * ======================================== */
814
+
815
+ :where(.zid-button) {
816
+ display: inline-flex;
817
+ align-items: center;
818
+ justify-content: center;
819
+ gap: var(--zid-spacing-1);
820
+ font-family: var(--zid-font-family);
821
+ font-weight: var(--zid-font-weight-regular);
822
+ text-decoration: none;
823
+ text-transform: initial;
824
+ border: 1px solid transparent;
825
+ border-radius: 360px; /* Pill shape like MUI */
826
+ cursor: pointer;
827
+ transition: background-color var(--zid-transition-normal),
828
+ border-color var(--zid-transition-normal);
829
+ outline: none;
830
+ -webkit-tap-highlight-color: transparent;
831
+ white-space: nowrap;
832
+ overflow: hidden;
833
+ text-overflow: ellipsis;
834
+ }
835
+
836
+ /* ========================================
837
+ * Size Modifiers
838
+ * ======================================== */
839
+
840
+ .zid-button--sm {
841
+ padding: 4px 16px;
842
+ font-size: 12px;
843
+ line-height: 22px;
844
+ min-width: 72px;
845
+ min-height: 32px;
846
+ max-height: 32px;
847
+ }
848
+
849
+ .zid-button--md {
850
+ padding: 7px 16px;
851
+ font-size: 14px;
852
+ line-height: 24px;
853
+ min-width: 104px;
854
+ min-height: 40px;
855
+ max-height: 40px;
856
+ }
857
+
858
+ .zid-button--lg {
859
+ padding: 10px 16px;
860
+ font-size: 16px;
861
+ line-height: 26px;
862
+ min-width: 122px;
863
+ min-height: 48px;
864
+ max-height: 48px;
865
+ }
866
+
867
+ /* ========================================
868
+ * Contained Variant - Primary
869
+ * ======================================== */
870
+
871
+ .zid-button--contained.zid-button--primary {
872
+ background-color: var(--zid-color-primary-1000);
873
+ border-color: var(--zid-color-primary-1000);
874
+ color: var(--zid-base-white);
875
+ }
876
+
877
+ .zid-button--contained.zid-button--primary:hover {
878
+ background-color: var(--zid-color-primary-900);
879
+ border-color: var(--zid-color-primary-900);
880
+ }
881
+
882
+ .zid-button--contained.zid-button--primary:active {
883
+ background-color: var(--zid-color-primary-600);
884
+ border-color: var(--zid-color-primary-600);
885
+ }
886
+
887
+ .zid-button--contained.zid-button--primary:focus-visible {
888
+ background-color: var(--zid-color-primary-900);
889
+ border-color: var(--zid-color-primary-900);
890
+ outline: 2px solid var(--zid-primary-dark);
891
+ outline-offset: 2px;
892
+ }
893
+
894
+ /* ========================================
895
+ * Contained Variant - Secondary
896
+ * ======================================== */
897
+
898
+ .zid-button--contained.zid-button--secondary {
899
+ background-color: var(--zid-color-secondary-50);
900
+ border-color: var(--zid-color-secondary-200);
901
+ color: var(--zid-color-secondary-1000);
902
+ }
903
+
904
+ .zid-button--contained.zid-button--secondary:hover {
905
+ background-color: var(--zid-color-secondary-50);
906
+ border-color: var(--zid-color-secondary-200);
907
+ }
908
+
909
+ .zid-button--contained.zid-button--secondary:active {
910
+ background-color: #EBE8ED;
911
+ border-color: var(--zid-color-secondary-200);
912
+ }
913
+
914
+ .zid-button--contained.zid-button--secondary:focus-visible {
915
+ background-color: var(--zid-color-primary-200);
916
+ border-color: var(--zid-color-secondary-200);
917
+ outline: 2px solid var(--zid-primary-dark);
918
+ outline-offset: 2px;
919
+ }
920
+
921
+ /* ========================================
922
+ * Contained Variant - Error
923
+ * ======================================== */
924
+
925
+ .zid-button--contained.zid-button--error {
926
+ background-color: var(--zid-color-red-200);
927
+ border-color: var(--zid-color-red-400);
928
+ color: var(--zid-color-red-1000);
929
+ }
930
+
931
+ .zid-button--contained.zid-button--error:hover {
932
+ background-color: var(--zid-color-red-300);
933
+ border-color: var(--zid-color-red-400);
934
+ }
935
+
936
+ .zid-button--contained.zid-button--error:active {
937
+ background-color: var(--zid-color-red-300);
938
+ border-color: var(--zid-color-red-700);
939
+ }
940
+
941
+ .zid-button--contained.zid-button--error:focus-visible {
942
+ background-color: var(--zid-color-red-600);
943
+ border-color: transparent;
944
+ color: var(--zid-base-white);
945
+ outline: 2px solid var(--zid-primary-dark);
946
+ outline-offset: 2px;
947
+ }
948
+
949
+ /* ========================================
950
+ * Outlined Variant - Primary
951
+ * ======================================== */
952
+
953
+ .zid-button--outlined.zid-button--primary {
954
+ background-color: transparent;
955
+ border-color: var(--zid-primary-main);
956
+ color: var(--zid-primary-main);
957
+ }
958
+
959
+ .zid-button--outlined.zid-button--primary:hover {
960
+ background-color: var(--zid-primary-state-hover);
961
+ border-color: var(--zid-primary-main);
962
+ }
963
+
964
+ .zid-button--outlined.zid-button--primary:active {
965
+ background-color: var(--zid-primary-state-selected);
966
+ }
967
+
968
+ .zid-button--outlined.zid-button--primary:focus-visible {
969
+ background-color: transparent;
970
+ outline: 2px solid var(--zid-primary-dark);
971
+ outline-offset: 2px;
972
+ }
973
+
974
+ /* ========================================
975
+ * Outlined Variant - Secondary
976
+ * ======================================== */
977
+
978
+ .zid-button--outlined.zid-button--secondary {
979
+ background-color: transparent;
980
+ border-color: var(--zid-color-secondary-200);
981
+ color: var(--zid-color-secondary-1000);
982
+ }
983
+
984
+ .zid-button--outlined.zid-button--secondary:hover {
985
+ background-color: var(--zid-secondary-state-hover);
986
+ border-color: var(--zid-color-secondary-200);
987
+ }
988
+
989
+ .zid-button--outlined.zid-button--secondary:active {
990
+ background-color: var(--zid-secondary-state-selected);
991
+ }
992
+
993
+ .zid-button--outlined.zid-button--secondary:focus-visible {
994
+ background-color: transparent;
995
+ outline: 2px solid var(--zid-primary-dark);
996
+ outline-offset: 2px;
997
+ }
998
+
999
+ /* ========================================
1000
+ * Outlined Variant - Error
1001
+ * ======================================== */
1002
+
1003
+ .zid-button--outlined.zid-button--error {
1004
+ background-color: transparent;
1005
+ border-color: var(--zid-error-main);
1006
+ color: var(--zid-color-red-800);
1007
+ }
1008
+
1009
+ .zid-button--outlined.zid-button--error:hover {
1010
+ background-color: var(--zid-color-red-100);
1011
+ border-color: var(--zid-error-main);
1012
+ }
1013
+
1014
+ .zid-button--outlined.zid-button--error:active {
1015
+ background-color: var(--zid-error-state-selected);
1016
+ }
1017
+
1018
+ .zid-button--outlined.zid-button--error:focus-visible {
1019
+ background-color: transparent;
1020
+ outline: 2px solid var(--zid-primary-dark);
1021
+ outline-offset: 2px;
1022
+ }
1023
+
1024
+ /* ========================================
1025
+ * Text Variant - Primary
1026
+ * ======================================== */
1027
+
1028
+ .zid-button--text.zid-button--primary {
1029
+ background-color: transparent;
1030
+ border-color: transparent;
1031
+ color: var(--zid-primary-main);
1032
+ }
1033
+
1034
+ .zid-button--text.zid-button--primary:hover {
1035
+ background-color: var(--zid-primary-state-hover);
1036
+ }
1037
+
1038
+ .zid-button--text.zid-button--primary:active {
1039
+ background-color: var(--zid-primary-state-selected);
1040
+ }
1041
+
1042
+ .zid-button--text.zid-button--primary:focus-visible {
1043
+ background-color: transparent;
1044
+ outline: 2px solid var(--zid-primary-dark);
1045
+ outline-offset: 2px;
1046
+ }
1047
+
1048
+ /* ========================================
1049
+ * Text Variant - Secondary
1050
+ * ======================================== */
1051
+
1052
+ .zid-button--text.zid-button--secondary {
1053
+ background-color: transparent;
1054
+ border-color: transparent;
1055
+ color: var(--zid-color-secondary-1000);
1056
+ }
1057
+
1058
+ .zid-button--text.zid-button--secondary:hover {
1059
+ background-color: var(--zid-secondary-state-hover);
1060
+ }
1061
+
1062
+ .zid-button--text.zid-button--secondary:active {
1063
+ background-color: var(--zid-secondary-state-selected);
1064
+ }
1065
+
1066
+ .zid-button--text.zid-button--secondary:focus-visible {
1067
+ background-color: transparent;
1068
+ outline: 2px solid var(--zid-primary-dark);
1069
+ outline-offset: 2px;
1070
+ }
1071
+
1072
+ /* ========================================
1073
+ * Text Variant - Error
1074
+ * ======================================== */
1075
+
1076
+ .zid-button--text.zid-button--error {
1077
+ background-color: transparent;
1078
+ border-color: transparent;
1079
+ color: var(--zid-error-main);
1080
+ }
1081
+
1082
+ .zid-button--text.zid-button--error:hover {
1083
+ background-color: var(--zid-error-state-hover);
1084
+ }
1085
+
1086
+ .zid-button--text.zid-button--error:active {
1087
+ background-color: var(--zid-error-state-selected);
1088
+ }
1089
+
1090
+ .zid-button--text.zid-button--error:focus-visible {
1091
+ background-color: transparent;
1092
+ outline: 2px solid var(--zid-primary-dark);
1093
+ outline-offset: 2px;
1094
+ }
1095
+
1096
+ /* ========================================
1097
+ * Disabled State (all variants)
1098
+ * ======================================== */
1099
+
1100
+ .zid-button:disabled,
1101
+ .zid-button--disabled {
1102
+ background-color: var(--zid-color-neutral-100);
1103
+ border-color: var(--zid-color-neutral-200);
1104
+ color: var(--zid-color-neutral-400);
1105
+ cursor: not-allowed;
1106
+ pointer-events: none;
1107
+ }
1108
+
1109
+ /* ========================================
1110
+ * Full Width Modifier
1111
+ * ======================================== */
1112
+
1113
+ .zid-button--full-width {
1114
+ width: 100%;
1115
+ }
1116
+
1117
+ /* ========================================
1118
+ * Icon Button Modifier
1119
+ * ======================================== */
1120
+
1121
+ .zid-button--icon-only {
1122
+ padding: var(--zid-spacing-1);
1123
+ min-width: auto;
1124
+ }
1125
+
1126
+ .zid-button--icon-only.zid-button--sm {
1127
+ padding: var(--zid-spacing-0-5);
1128
+ }
1129
+
1130
+ .zid-button--icon-only.zid-button--lg {
1131
+ padding: var(--zid-spacing-1-5);
1132
+ }
1133
+
1134
+ /**
1135
+ * Input Component
1136
+ * States: default, hover, focus, error, disabled
1137
+ * Sizes: sm, md, lg
1138
+ */
1139
+
1140
+ /* ========================================
1141
+ * Base Input
1142
+ * ======================================== */
1143
+
1144
+ :where(.zid-input) {
1145
+ display: flex;
1146
+ align-items: center;
1147
+ gap: var(--zid-spacing-1);
1148
+ font-family: var(--zid-font-family);
1149
+ font-size: var(--zid-font-size-base);
1150
+ line-height: var(--zid-line-height-normal);
1151
+ color: var(--zid-text-primary);
1152
+ background-color: var(--zid-bg-paper);
1153
+ border: 1px solid #EBE8ED;
1154
+ border-radius: var(--zid-radius-standard);
1155
+ transition: border-color var(--zid-transition-fast),
1156
+ box-shadow var(--zid-transition-fast);
1157
+ width: 100%;
1158
+ }
1159
+
1160
+ /* ========================================
1161
+ * Size Modifiers
1162
+ * ======================================== */
1163
+
1164
+ .zid-input--sm {
1165
+ padding: 8px 16px;
1166
+ font-size: var(--zid-font-size-sm);
1167
+ min-height: 40px;
1168
+ line-height: 24px;
1169
+ }
1170
+
1171
+ .zid-input--md {
1172
+ padding: 8px 16px;
1173
+ font-size: var(--zid-font-size-base);
1174
+ min-height: 48px;
1175
+ line-height: 24px;
1176
+ }
1177
+
1178
+ .zid-input--lg {
1179
+ padding: 12px 16px;
1180
+ font-size: var(--zid-font-size-lg);
1181
+ min-height: 56px;
1182
+ line-height: 24px;
1183
+ }
1184
+
1185
+ /* ========================================
1186
+ * Native Input Element
1187
+ * ======================================== */
1188
+
1189
+ .zid-input__field {
1190
+ flex: 1;
1191
+ border: none;
1192
+ outline: none;
1193
+ background: transparent;
1194
+ font-family: inherit;
1195
+ font-size: inherit;
1196
+ line-height: inherit;
1197
+ color: inherit;
1198
+ padding: 0;
1199
+ margin: 0;
1200
+ width: 100%;
1201
+ }
1202
+
1203
+ .zid-input__field::placeholder {
1204
+ color: var(--zid-text-disabled);
1205
+ }
1206
+
1207
+ /* ========================================
1208
+ * Hover State
1209
+ * ======================================== */
1210
+
1211
+ .zid-input:hover:not(.zid-input--disabled):not(.zid-input--error) {
1212
+ border-color: #D8D2DD;
1213
+ }
1214
+
1215
+ /* ========================================
1216
+ * Focus State
1217
+ * ======================================== */
1218
+
1219
+ .zid-input:focus-within:not(.zid-input--disabled):not(.zid-input--error) {
1220
+ border-color: var(--zid-primary-main);
1221
+ border-width: 2px;
1222
+ }
1223
+
1224
+ /* ========================================
1225
+ * Error State
1226
+ * ======================================== */
1227
+
1228
+ .zid-input--error {
1229
+ border-color: var(--zid-error-main);
1230
+ }
1231
+
1232
+ .zid-input--error:focus-within {
1233
+ border-color: var(--zid-error-main);
1234
+ }
1235
+
1236
+ /* ========================================
1237
+ * Disabled State
1238
+ * ======================================== */
1239
+
1240
+ .zid-input--disabled {
1241
+ background-color: var(--zid-action-disabled-background);
1242
+ border-color: var(--zid-color-neutral-200);
1243
+ color: var(--zid-text-disabled);
1244
+ cursor: not-allowed;
1245
+ }
1246
+
1247
+ .zid-input--disabled .zid-input__field {
1248
+ cursor: not-allowed;
1249
+ }
1250
+
1251
+ /* ========================================
1252
+ * Adornments
1253
+ * ======================================== */
1254
+
1255
+ .zid-input__adornment {
1256
+ display: flex;
1257
+ align-items: center;
1258
+ justify-content: center;
1259
+ color: var(--zid-text-secondary);
1260
+ flex-shrink: 0;
1261
+ }
1262
+
1263
+ .zid-input__adornment--start {
1264
+ margin-right: var(--zid-spacing-0-5);
1265
+ }
1266
+
1267
+ .zid-input__adornment--end {
1268
+ margin-left: var(--zid-spacing-0-5);
1269
+ }
1270
+
1271
+ /* ========================================
1272
+ * Adornment Text
1273
+ * ======================================== */
1274
+
1275
+ .zid-input__adornment-text {
1276
+ font-size: var(--zid-font-size-sm);
1277
+ color: var(--zid-text-tertiary);
1278
+ white-space: nowrap;
1279
+ }
1280
+
1281
+ /* ========================================
1282
+ * Helper Text
1283
+ * ======================================== */
1284
+
1285
+ .zid-input-helper {
1286
+ font-family: var(--zid-font-family);
1287
+ font-size: var(--zid-font-size-xs);
1288
+ line-height: var(--zid-line-height-normal);
1289
+ color: var(--zid-text-secondary);
1290
+ margin-top: var(--zid-spacing-0-5);
1291
+ }
1292
+
1293
+ .zid-input-helper--error {
1294
+ color: var(--zid-error-main);
1295
+ }
1296
+
1297
+ /* ========================================
1298
+ * Label
1299
+ * ======================================== */
1300
+
1301
+ .zid-input-label {
1302
+ display: block;
1303
+ font-family: var(--zid-font-family);
1304
+ font-size: var(--zid-font-size-sm);
1305
+ font-weight: var(--zid-font-weight-medium);
1306
+ color: var(--zid-text-primary);
1307
+ margin-bottom: var(--zid-spacing-0-5);
1308
+ }
1309
+
1310
+ .zid-input-label--required::after {
1311
+ content: ' *';
1312
+ color: var(--zid-error-main);
1313
+ }
1314
+
1315
+ /**
1316
+ * Checkbox Component
1317
+ * States: checked, unchecked, disabled, indeterminate
1318
+ */
1319
+
1320
+ /* ========================================
1321
+ * Base Checkbox
1322
+ * ======================================== */
1323
+
1324
+ :where(.zid-checkbox) {
1325
+ display: inline-flex;
1326
+ align-items: center;
1327
+ gap: var(--zid-spacing-1);
1328
+ cursor: pointer;
1329
+ font-family: var(--zid-font-family);
1330
+ font-size: var(--zid-font-size-base);
1331
+ color: var(--zid-text-primary);
1332
+ }
1333
+
1334
+ /* ========================================
1335
+ * Checkbox Input (visually hidden)
1336
+ * ======================================== */
1337
+
1338
+ .zid-checkbox__input {
1339
+ position: absolute;
1340
+ opacity: 0;
1341
+ width: 0;
1342
+ height: 0;
1343
+ }
1344
+
1345
+ /* ========================================
1346
+ * Checkbox Box
1347
+ * ======================================== */
1348
+
1349
+ .zid-checkbox__box {
1350
+ display: flex;
1351
+ align-items: center;
1352
+ justify-content: center;
1353
+ width: 20px;
1354
+ height: 20px;
1355
+ border: 2px solid var(--zid-color-neutral-400);
1356
+ border-radius: var(--zid-radius-sm);
1357
+ background-color: var(--zid-bg-paper);
1358
+ transition: background-color var(--zid-transition-fast),
1359
+ border-color var(--zid-transition-fast),
1360
+ box-shadow var(--zid-transition-fast);
1361
+ }
1362
+
1363
+ .zid-checkbox__box svg {
1364
+ width: 14px;
1365
+ height: 14px;
1366
+ opacity: 0;
1367
+ transform: scale(0.5);
1368
+ transition: opacity var(--zid-transition-fast),
1369
+ transform var(--zid-transition-fast);
1370
+ }
1371
+
1372
+ /* ========================================
1373
+ * Checked State
1374
+ * ======================================== */
1375
+
1376
+ .zid-checkbox__input:checked + .zid-checkbox__box {
1377
+ background-color: var(--zid-color-primary-1000);
1378
+ border-color: var(--zid-color-primary-1000);
1379
+ }
1380
+
1381
+ .zid-checkbox__input:checked + .zid-checkbox__box svg {
1382
+ opacity: 1;
1383
+ transform: scale(1);
1384
+ color: var(--zid-base-white);
1385
+ }
1386
+
1387
+ /* ========================================
1388
+ * Indeterminate State
1389
+ * ======================================== */
1390
+
1391
+ .zid-checkbox--indeterminate .zid-checkbox__box {
1392
+ background-color: var(--zid-color-primary-1000);
1393
+ border-color: var(--zid-color-primary-1000);
1394
+ }
1395
+
1396
+ .zid-checkbox--indeterminate .zid-checkbox__box svg {
1397
+ opacity: 1;
1398
+ transform: scale(1);
1399
+ color: var(--zid-base-white);
1400
+ }
1401
+
1402
+ /* ========================================
1403
+ * Hover State
1404
+ * ======================================== */
1405
+
1406
+ .zid-checkbox:hover:not(.zid-checkbox--disabled) .zid-checkbox__box {
1407
+ border-color: var(--zid-color-neutral-500);
1408
+ }
1409
+
1410
+ .zid-checkbox:hover:not(.zid-checkbox--disabled) .zid-checkbox__input:checked + .zid-checkbox__box {
1411
+ background-color: var(--zid-color-primary-900);
1412
+ border-color: var(--zid-color-primary-900);
1413
+ }
1414
+
1415
+ /* ========================================
1416
+ * Focus Visible State
1417
+ * ======================================== */
1418
+
1419
+ .zid-checkbox__input:focus-visible + .zid-checkbox__box {
1420
+ outline: 2px solid var(--zid-color-primary-1000);
1421
+ outline-offset: 2px;
1422
+ }
1423
+
1424
+ /* ========================================
1425
+ * Disabled State
1426
+ * ======================================== */
1427
+
1428
+ .zid-checkbox--disabled {
1429
+ cursor: not-allowed;
1430
+ color: var(--zid-text-disabled);
1431
+ }
1432
+
1433
+ .zid-checkbox--disabled .zid-checkbox__box {
1434
+ background-color: var(--zid-action-disabled-background);
1435
+ border-color: var(--zid-color-neutral-300);
1436
+ }
1437
+
1438
+ .zid-checkbox--disabled .zid-checkbox__input:checked + .zid-checkbox__box {
1439
+ background-color: var(--zid-color-neutral-300);
1440
+ border-color: var(--zid-color-neutral-300);
1441
+ }
1442
+
1443
+ /* ========================================
1444
+ * Label
1445
+ * ======================================== */
1446
+
1447
+ .zid-checkbox__label {
1448
+ user-select: none;
1449
+ }
1450
+
1451
+ /**
1452
+ * Radio Component
1453
+ * States: checked, unchecked, disabled
1454
+ */
1455
+
1456
+ /* ========================================
1457
+ * Base Radio
1458
+ * ======================================== */
1459
+
1460
+ :where(.zid-radio) {
1461
+ display: inline-flex;
1462
+ align-items: center;
1463
+ gap: var(--zid-spacing-1);
1464
+ cursor: pointer;
1465
+ font-family: var(--zid-font-family);
1466
+ font-size: var(--zid-font-size-base);
1467
+ color: var(--zid-text-primary);
1468
+ }
1469
+
1470
+ /* ========================================
1471
+ * Radio Input (visually hidden)
1472
+ * ======================================== */
1473
+
1474
+ .zid-radio__input {
1475
+ position: absolute;
1476
+ opacity: 0;
1477
+ width: 0;
1478
+ height: 0;
1479
+ }
1480
+
1481
+ /* ========================================
1482
+ * Radio Circle
1483
+ * ======================================== */
1484
+
1485
+ .zid-radio__circle {
1486
+ display: flex;
1487
+ align-items: center;
1488
+ justify-content: center;
1489
+ width: 20px;
1490
+ height: 20px;
1491
+ border: 2px solid var(--zid-color-neutral-400);
1492
+ border-radius: var(--zid-radius-full);
1493
+ background-color: var(--zid-bg-paper);
1494
+ transition: background-color var(--zid-transition-fast),
1495
+ border-color var(--zid-transition-fast),
1496
+ box-shadow var(--zid-transition-fast);
1497
+ }
1498
+
1499
+ .zid-radio__circle::after {
1500
+ content: '';
1501
+ width: 10px;
1502
+ height: 10px;
1503
+ border-radius: var(--zid-radius-full);
1504
+ background-color: transparent;
1505
+ transform: scale(0);
1506
+ transition: transform var(--zid-transition-fast),
1507
+ background-color var(--zid-transition-fast);
1508
+ }
1509
+
1510
+ /* ========================================
1511
+ * Checked State
1512
+ * ======================================== */
1513
+
1514
+ .zid-radio__input:checked + .zid-radio__circle {
1515
+ border-color: var(--zid-color-primary-1000);
1516
+ }
1517
+
1518
+ .zid-radio__input:checked + .zid-radio__circle::after {
1519
+ background-color: var(--zid-color-primary-1000);
1520
+ transform: scale(1);
1521
+ }
1522
+
1523
+ /* ========================================
1524
+ * Hover State
1525
+ * ======================================== */
1526
+
1527
+ .zid-radio:hover:not(.zid-radio--disabled) .zid-radio__circle {
1528
+ border-color: var(--zid-color-neutral-500);
1529
+ }
1530
+
1531
+ .zid-radio:hover:not(.zid-radio--disabled) .zid-radio__input:checked + .zid-radio__circle {
1532
+ border-color: var(--zid-color-primary-900);
1533
+ }
1534
+
1535
+ .zid-radio:hover:not(.zid-radio--disabled) .zid-radio__input:checked + .zid-radio__circle::after {
1536
+ background-color: var(--zid-color-primary-900);
1537
+ }
1538
+
1539
+ /* ========================================
1540
+ * Focus Visible State
1541
+ * ======================================== */
1542
+
1543
+ .zid-radio__input:focus-visible + .zid-radio__circle {
1544
+ outline: 2px solid var(--zid-color-primary-1000);
1545
+ outline-offset: 2px;
1546
+ }
1547
+
1548
+ /* ========================================
1549
+ * Disabled State
1550
+ * ======================================== */
1551
+
1552
+ .zid-radio--disabled {
1553
+ cursor: not-allowed;
1554
+ color: var(--zid-text-disabled);
1555
+ }
1556
+
1557
+ .zid-radio--disabled .zid-radio__circle {
1558
+ background-color: var(--zid-action-disabled-background);
1559
+ border-color: var(--zid-color-neutral-300);
1560
+ }
1561
+
1562
+ .zid-radio--disabled .zid-radio__input:checked + .zid-radio__circle::after {
1563
+ background-color: var(--zid-color-neutral-400);
1564
+ }
1565
+
1566
+ /* ========================================
1567
+ * Label
1568
+ * ======================================== */
1569
+
1570
+ .zid-radio__label {
1571
+ user-select: none;
1572
+ }
1573
+
1574
+ /* ========================================
1575
+ * Radio Group
1576
+ * ======================================== */
1577
+
1578
+ .zid-radio-group {
1579
+ display: flex;
1580
+ flex-direction: column;
1581
+ gap: var(--zid-spacing-1);
1582
+ }
1583
+
1584
+ .zid-radio-group--row {
1585
+ flex-direction: row;
1586
+ gap: var(--zid-spacing-3);
1587
+ }
1588
+
1589
+ /**
1590
+ * Switch Component
1591
+ * States: checked, unchecked, disabled
1592
+ * Colors: primary, secondary
1593
+ */
1594
+
1595
+ /* ========================================
1596
+ * Base Switch
1597
+ * ======================================== */
1598
+
1599
+ :where(.zid-switch) {
1600
+ display: inline-flex;
1601
+ align-items: center;
1602
+ gap: var(--zid-spacing-1);
1603
+ cursor: pointer;
1604
+ font-family: var(--zid-font-family);
1605
+ font-size: var(--zid-font-size-base);
1606
+ color: var(--zid-text-primary);
1607
+ }
1608
+
1609
+ /* ========================================
1610
+ * Switch Input (visually hidden)
1611
+ * ======================================== */
1612
+
1613
+ .zid-switch__input {
1614
+ position: absolute;
1615
+ opacity: 0;
1616
+ width: 0;
1617
+ height: 0;
1618
+ }
1619
+
1620
+ /* ========================================
1621
+ * Switch Track
1622
+ * ======================================== */
1623
+
1624
+ .zid-switch__track {
1625
+ position: relative;
1626
+ width: 44px;
1627
+ height: 24px;
1628
+ background-color: var(--zid-color-neutral-400);
1629
+ border-radius: var(--zid-radius-full);
1630
+ transition: background-color var(--zid-transition-fast),
1631
+ box-shadow var(--zid-transition-fast);
1632
+ }
1633
+
1634
+ /* ========================================
1635
+ * Switch Thumb
1636
+ * ======================================== */
1637
+
1638
+ .zid-switch__thumb {
1639
+ position: absolute;
1640
+ top: 2px;
1641
+ left: 2px;
1642
+ width: 20px;
1643
+ height: 20px;
1644
+ background-color: var(--zid-color-neutral-50);
1645
+ border-radius: var(--zid-radius-full);
1646
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
1647
+ transition: transform var(--zid-transition-fast),
1648
+ background-color var(--zid-transition-fast);
1649
+ }
1650
+
1651
+ /* ========================================
1652
+ * Checked State - Primary (Success/Green)
1653
+ * ======================================== */
1654
+
1655
+ .zid-switch--primary .zid-switch__input:checked + .zid-switch__track {
1656
+ background-color: var(--zid-success-main);
1657
+ }
1658
+
1659
+ .zid-switch--primary .zid-switch__input:checked + .zid-switch__track .zid-switch__thumb {
1660
+ transform: translateX(20px);
1661
+ background-color: var(--zid-bg-paper);
1662
+ }
1663
+
1664
+ /* ========================================
1665
+ * Checked State - Secondary (Primary Purple)
1666
+ * ======================================== */
1667
+
1668
+ .zid-switch--secondary .zid-switch__input:checked + .zid-switch__track {
1669
+ background-color: var(--zid-primary-main);
1670
+ }
1671
+
1672
+ .zid-switch--secondary .zid-switch__input:checked + .zid-switch__track .zid-switch__thumb {
1673
+ transform: translateX(20px);
1674
+ background-color: var(--zid-bg-paper);
1675
+ }
1676
+
1677
+ /* ========================================
1678
+ * Checked State - Error
1679
+ * ======================================== */
1680
+
1681
+ .zid-switch--error .zid-switch__input:checked + .zid-switch__track {
1682
+ background-color: var(--zid-error-main);
1683
+ }
1684
+
1685
+ .zid-switch--error .zid-switch__input:checked + .zid-switch__track .zid-switch__thumb {
1686
+ transform: translateX(20px);
1687
+ background-color: var(--zid-bg-paper);
1688
+ }
1689
+
1690
+ /* ========================================
1691
+ * Hover State
1692
+ * ======================================== */
1693
+
1694
+ .zid-switch:hover:not(.zid-switch--disabled) .zid-switch__track {
1695
+ background-color: var(--zid-color-neutral-500);
1696
+ }
1697
+
1698
+ .zid-switch--primary:hover:not(.zid-switch--disabled) .zid-switch__input:checked + .zid-switch__track {
1699
+ background-color: var(--zid-success-dark);
1700
+ }
1701
+
1702
+ .zid-switch--secondary:hover:not(.zid-switch--disabled) .zid-switch__input:checked + .zid-switch__track {
1703
+ background-color: var(--zid-primary-dark);
1704
+ }
1705
+
1706
+ .zid-switch--error:hover:not(.zid-switch--disabled) .zid-switch__input:checked + .zid-switch__track {
1707
+ background-color: var(--zid-error-dark);
1708
+ }
1709
+
1710
+ /* ========================================
1711
+ * Focus Visible State
1712
+ * ======================================== */
1713
+
1714
+ .zid-switch__input:focus-visible + .zid-switch__track {
1715
+ outline: 2px solid var(--zid-primary-main);
1716
+ outline-offset: 2px;
1717
+ }
1718
+
1719
+ .zid-switch--primary .zid-switch__input:focus-visible:checked + .zid-switch__track {
1720
+ box-shadow: 0 0 0 3px rgba(46, 125, 50, 0.5);
1721
+ }
1722
+
1723
+ .zid-switch--error .zid-switch__input:focus-visible:checked + .zid-switch__track {
1724
+ box-shadow: 0 0 0 3px rgba(250, 55, 104, 0.5);
1725
+ }
1726
+
1727
+ /* ========================================
1728
+ * Disabled State
1729
+ * ======================================== */
1730
+
1731
+ .zid-switch--disabled {
1732
+ cursor: not-allowed;
1733
+ color: var(--zid-text-disabled);
1734
+ }
1735
+
1736
+ .zid-switch--disabled .zid-switch__track {
1737
+ background-color: var(--zid-color-neutral-200);
1738
+ }
1739
+
1740
+ .zid-switch--disabled .zid-switch__thumb {
1741
+ background-color: var(--zid-color-neutral-100);
1742
+ }
1743
+
1744
+ .zid-switch--disabled .zid-switch__input:checked + .zid-switch__track {
1745
+ background-color: var(--zid-color-neutral-300);
1746
+ }
1747
+
1748
+ /* ========================================
1749
+ * Label
1750
+ * ======================================== */
1751
+
1752
+ .zid-switch__label {
1753
+ user-select: none;
1754
+ }
1755
+
1756
+ /**
1757
+ * Select Component
1758
+ * States: default, hover, focus, error, disabled
1759
+ * Sizes: sm, md, lg
1760
+ */
1761
+
1762
+ /* ========================================
1763
+ * Base Select
1764
+ * ======================================== */
1765
+
1766
+ :where(.zid-select) {
1767
+ position: relative;
1768
+ display: flex;
1769
+ align-items: center;
1770
+ gap: var(--zid-spacing-1);
1771
+ font-family: var(--zid-font-family);
1772
+ font-size: var(--zid-font-size-base);
1773
+ line-height: var(--zid-line-height-normal);
1774
+ color: var(--zid-text-primary);
1775
+ background-color: var(--zid-bg-paper);
1776
+ border: 1px solid #EBE8ED;
1777
+ border-radius: var(--zid-radius-standard);
1778
+ cursor: pointer;
1779
+ transition: border-color var(--zid-transition-fast),
1780
+ box-shadow var(--zid-transition-fast);
1781
+ width: 100%;
1782
+ }
1783
+
1784
+ /* ========================================
1785
+ * Size Modifiers
1786
+ * ======================================== */
1787
+
1788
+ .zid-select--sm {
1789
+ padding: var(--zid-spacing-0-5) var(--zid-spacing-1);
1790
+ font-size: var(--zid-font-size-sm);
1791
+ min-height: 32px;
1792
+ }
1793
+
1794
+ .zid-select--md {
1795
+ padding: var(--zid-spacing-1) var(--zid-spacing-1-5);
1796
+ font-size: var(--zid-font-size-base);
1797
+ min-height: 40px;
1798
+ }
1799
+
1800
+ .zid-select--lg {
1801
+ padding: var(--zid-spacing-1-5) var(--zid-spacing-2);
1802
+ font-size: var(--zid-font-size-lg);
1803
+ min-height: 48px;
1804
+ }
1805
+
1806
+ /* ========================================
1807
+ * Native Select Element
1808
+ * ======================================== */
1809
+
1810
+ .zid-select__native {
1811
+ flex: 1;
1812
+ border: none;
1813
+ outline: none;
1814
+ background: transparent;
1815
+ font-family: inherit;
1816
+ font-size: inherit;
1817
+ line-height: inherit;
1818
+ color: inherit;
1819
+ padding: 0;
1820
+ margin: 0;
1821
+ cursor: pointer;
1822
+ appearance: none;
1823
+ -webkit-appearance: none;
1824
+ -moz-appearance: none;
1825
+ }
1826
+
1827
+ /* ========================================
1828
+ * Select Arrow Icon
1829
+ * ======================================== */
1830
+
1831
+ .zid-select__icon {
1832
+ display: flex;
1833
+ align-items: center;
1834
+ justify-content: center;
1835
+ color: var(--zid-text-secondary);
1836
+ flex-shrink: 0;
1837
+ pointer-events: none;
1838
+ transition: transform var(--zid-transition-fast);
1839
+ }
1840
+
1841
+ .zid-select--open .zid-select__icon {
1842
+ transform: rotate(180deg);
1843
+ }
1844
+
1845
+ /* ========================================
1846
+ * Placeholder
1847
+ * ======================================== */
1848
+
1849
+ .zid-select__placeholder {
1850
+ color: var(--zid-text-disabled);
1851
+ }
1852
+
1853
+ /* ========================================
1854
+ * Hover State
1855
+ * ======================================== */
1856
+
1857
+ .zid-select:hover:not(.zid-select--disabled):not(.zid-select--error) {
1858
+ border-color: #D8D2DD;
1859
+ }
1860
+
1861
+ /* ========================================
1862
+ * Focus State
1863
+ * ======================================== */
1864
+
1865
+ .zid-select:focus-within:not(.zid-select--disabled):not(.zid-select--error) {
1866
+ border-color: var(--zid-primary-main);
1867
+ outline: 2px solid var(--zid-primary-main);
1868
+ outline-offset: 2px;
1869
+ }
1870
+
1871
+ /* ========================================
1872
+ * Error State
1873
+ * ======================================== */
1874
+
1875
+ .zid-select--error {
1876
+ border-color: var(--zid-error-main);
1877
+ }
1878
+
1879
+ .zid-select--error:focus-within {
1880
+ border-color: var(--zid-error-main);
1881
+ outline: 2px solid var(--zid-error-main);
1882
+ outline-offset: 2px;
1883
+ }
1884
+
1885
+ /* ========================================
1886
+ * Disabled State
1887
+ * ======================================== */
1888
+
1889
+ .zid-select--disabled {
1890
+ background-color: var(--zid-action-disabled-background);
1891
+ border-color: var(--zid-color-neutral-200);
1892
+ color: var(--zid-text-disabled);
1893
+ cursor: not-allowed;
1894
+ }
1895
+
1896
+ .zid-select--disabled .zid-select__native {
1897
+ cursor: not-allowed;
1898
+ }
1899
+
1900
+ /* ========================================
1901
+ * Select Menu (Dropdown)
1902
+ * ======================================== */
1903
+
1904
+ .zid-select-menu {
1905
+ position: absolute;
1906
+ top: 100%;
1907
+ left: 0;
1908
+ right: 0;
1909
+ margin-top: var(--zid-spacing-0-5);
1910
+ background-color: var(--zid-bg-paper);
1911
+ border: 1px solid var(--zid-divider);
1912
+ border-radius: var(--zid-radius-standard);
1913
+ box-shadow: var(--zid-shadow-4);
1914
+ z-index: 1000;
1915
+ max-height: 300px;
1916
+ overflow-y: auto;
1917
+ }
1918
+
1919
+ /* ========================================
1920
+ * Select Option
1921
+ * ======================================== */
1922
+
1923
+ .zid-select-option {
1924
+ padding: var(--zid-spacing-1) var(--zid-spacing-1-5);
1925
+ cursor: pointer;
1926
+ transition: background-color var(--zid-transition-fast);
1927
+ }
1928
+
1929
+ .zid-select-option:hover {
1930
+ background-color: var(--zid-action-hover);
1931
+ }
1932
+
1933
+ .zid-select-option--selected {
1934
+ background-color: var(--zid-action-selected);
1935
+ }
1936
+
1937
+ .zid-select-option--disabled {
1938
+ color: var(--zid-text-disabled);
1939
+ cursor: not-allowed;
1940
+ }
1941
+
1942
+ /**
1943
+ * Card Component
1944
+ * Elevation variants: 0-24
1945
+ */
1946
+
1947
+ /* ========================================
1948
+ * Base Card
1949
+ * ======================================== */
1950
+
1951
+ :where(.zid-card) {
1952
+ background-color: var(--zid-bg-paper);
1953
+ border-radius: var(--zid-radius-standard);
1954
+ padding: var(--zid-spacing-2);
1955
+ box-shadow: var(--zid-shadow-1);
1956
+ }
1957
+
1958
+ /* ========================================
1959
+ * Elevation Variants
1960
+ * ======================================== */
1961
+
1962
+ .zid-card--elevation-0 {
1963
+ box-shadow: var(--zid-shadow-0);
1964
+ }
1965
+
1966
+ .zid-card--elevation-1 {
1967
+ box-shadow: var(--zid-shadow-1);
1968
+ }
1969
+
1970
+ .zid-card--elevation-2 {
1971
+ box-shadow: var(--zid-shadow-2);
1972
+ }
1973
+
1974
+ .zid-card--elevation-3 {
1975
+ box-shadow: var(--zid-shadow-3);
1976
+ }
1977
+
1978
+ .zid-card--elevation-4 {
1979
+ box-shadow: var(--zid-shadow-4);
1980
+ }
1981
+
1982
+ .zid-card--elevation-5 {
1983
+ box-shadow: var(--zid-shadow-5);
1984
+ }
1985
+
1986
+ .zid-card--elevation-6 {
1987
+ box-shadow: var(--zid-shadow-6);
1988
+ }
1989
+
1990
+ .zid-card--elevation-8 {
1991
+ box-shadow: var(--zid-shadow-8);
1992
+ }
1993
+
1994
+ .zid-card--elevation-12 {
1995
+ box-shadow: var(--zid-shadow-12);
1996
+ }
1997
+
1998
+ .zid-card--elevation-16 {
1999
+ box-shadow: var(--zid-shadow-16);
2000
+ }
2001
+
2002
+ .zid-card--elevation-24 {
2003
+ box-shadow: var(--zid-shadow-24);
2004
+ }
2005
+
2006
+ /* ========================================
2007
+ * Card with Border
2008
+ * ======================================== */
2009
+
2010
+ .zid-card--outlined {
2011
+ box-shadow: none;
2012
+ border: 1px solid var(--zid-divider);
2013
+ }
2014
+
2015
+ /* ========================================
2016
+ * Card Header
2017
+ * ======================================== */
2018
+
2019
+ .zid-card__header {
2020
+ display: flex;
2021
+ align-items: center;
2022
+ justify-content: space-between;
2023
+ gap: var(--zid-spacing-2);
2024
+ margin-bottom: var(--zid-spacing-2);
2025
+ }
2026
+
2027
+ .zid-card__title {
2028
+ font-family: var(--zid-font-family);
2029
+ font-size: var(--zid-font-size-lg);
2030
+ font-weight: var(--zid-font-weight-semibold);
2031
+ color: var(--zid-text-primary);
2032
+ margin: 0;
2033
+ }
2034
+
2035
+ .zid-card__subtitle {
2036
+ font-family: var(--zid-font-family);
2037
+ font-size: var(--zid-font-size-sm);
2038
+ color: var(--zid-text-secondary);
2039
+ margin: 0;
2040
+ margin-top: var(--zid-spacing-0-5);
2041
+ }
2042
+
2043
+ /* ========================================
2044
+ * Card Content
2045
+ * ======================================== */
2046
+
2047
+ .zid-card__content {
2048
+ font-family: var(--zid-font-family);
2049
+ font-size: var(--zid-font-size-base);
2050
+ color: var(--zid-text-primary);
2051
+ line-height: var(--zid-line-height-normal);
2052
+ }
2053
+
2054
+ /* ========================================
2055
+ * Card Actions
2056
+ * ======================================== */
2057
+
2058
+ .zid-card__actions {
2059
+ display: flex;
2060
+ align-items: center;
2061
+ gap: var(--zid-spacing-1);
2062
+ margin-top: var(--zid-spacing-2);
2063
+ padding-top: var(--zid-spacing-2);
2064
+ border-top: 1px solid var(--zid-divider);
2065
+ }
2066
+
2067
+ .zid-card__actions--no-border {
2068
+ border-top: none;
2069
+ padding-top: 0;
2070
+ }
2071
+
2072
+ /* ========================================
2073
+ * Card Media
2074
+ * ======================================== */
2075
+
2076
+ .zid-card__media {
2077
+ margin: calc(var(--zid-spacing-2) * -1);
2078
+ margin-bottom: var(--zid-spacing-2);
2079
+ border-radius: var(--zid-radius-standard) var(--zid-radius-standard) 0 0;
2080
+ overflow: hidden;
2081
+ }
2082
+
2083
+ .zid-card__media img {
2084
+ display: block;
2085
+ width: 100%;
2086
+ height: auto;
2087
+ }
2088
+
2089
+ /* ========================================
2090
+ * Clickable Card
2091
+ * ======================================== */
2092
+
2093
+ .zid-card--clickable {
2094
+ cursor: pointer;
2095
+ transition: box-shadow var(--zid-transition-fast),
2096
+ transform var(--zid-transition-fast);
2097
+ }
2098
+
2099
+ .zid-card--clickable:hover {
2100
+ box-shadow: var(--zid-shadow-4);
2101
+ }
2102
+
2103
+ .zid-card--clickable:active {
2104
+ transform: scale(0.99);
2105
+ }
2106
+
2107
+ /* ========================================
2108
+ * Selected Card
2109
+ * ======================================== */
2110
+
2111
+ .zid-card--selected {
2112
+ background-color: var(--zid-color-primary-50);
2113
+ border: 1px solid var(--zid-color-primary-300);
2114
+ }
2115
+
2116
+ /**
2117
+ * Modal Component
2118
+ * Dialog overlay with backdrop
2119
+ */
2120
+
2121
+ /* ========================================
2122
+ * Modal Backdrop
2123
+ * ======================================== */
2124
+
2125
+ .zid-modal__backdrop {
2126
+ position: fixed;
2127
+ top: 0;
2128
+ left: 0;
2129
+ right: 0;
2130
+ bottom: 0;
2131
+ background-color: rgba(0, 0, 0, 0.1);
2132
+ display: flex;
2133
+ align-items: center;
2134
+ justify-content: center;
2135
+ z-index: 1300;
2136
+ opacity: 0;
2137
+ visibility: hidden;
2138
+ transition: opacity var(--zid-transition-normal),
2139
+ visibility var(--zid-transition-normal);
2140
+ }
2141
+
2142
+ .zid-modal__backdrop--open {
2143
+ opacity: 1;
2144
+ visibility: visible;
2145
+ }
2146
+
2147
+ /* ========================================
2148
+ * Modal Content
2149
+ * ======================================== */
2150
+
2151
+ .zid-modal__content {
2152
+ background-color: var(--zid-bg-paper);
2153
+ border-radius: var(--zid-radius-md);
2154
+ box-shadow: var(--zid-shadow-24);
2155
+ max-width: 90vw;
2156
+ max-height: 90vh;
2157
+ overflow: auto;
2158
+ transform: scale(0.95);
2159
+ transition: transform var(--zid-transition-normal);
2160
+ }
2161
+
2162
+ .zid-modal__backdrop--open .zid-modal__content {
2163
+ transform: scale(1);
2164
+ }
2165
+
2166
+ /* ========================================
2167
+ * Modal Size Variants
2168
+ * ======================================== */
2169
+
2170
+ .zid-modal__content--sm {
2171
+ width: 400px;
2172
+ }
2173
+
2174
+ .zid-modal__content--md {
2175
+ width: 600px;
2176
+ }
2177
+
2178
+ .zid-modal__content--lg {
2179
+ width: 800px;
2180
+ }
2181
+
2182
+ .zid-modal__content--xl {
2183
+ width: 1000px;
2184
+ }
2185
+
2186
+ .zid-modal__content--full {
2187
+ width: 100vw;
2188
+ height: 100vh;
2189
+ max-width: 100vw;
2190
+ max-height: 100vh;
2191
+ border-radius: 0;
2192
+ }
2193
+
2194
+ /* ========================================
2195
+ * Modal Header
2196
+ * ======================================== */
2197
+
2198
+ .zid-modal__header {
2199
+ display: flex;
2200
+ align-items: center;
2201
+ justify-content: space-between;
2202
+ gap: var(--zid-spacing-2);
2203
+ padding: var(--zid-spacing-2) var(--zid-spacing-3);
2204
+ border-bottom: 1px solid var(--zid-divider);
2205
+ }
2206
+
2207
+ .zid-modal__title {
2208
+ font-family: var(--zid-font-family);
2209
+ font-size: var(--zid-font-size-xl);
2210
+ font-weight: var(--zid-font-weight-semibold);
2211
+ color: var(--zid-text-primary);
2212
+ margin: 0;
2213
+ }
2214
+
2215
+ .zid-modal__close {
2216
+ display: flex;
2217
+ align-items: center;
2218
+ justify-content: center;
2219
+ width: 32px;
2220
+ height: 32px;
2221
+ border: none;
2222
+ background: transparent;
2223
+ border-radius: var(--zid-radius-standard);
2224
+ cursor: pointer;
2225
+ color: var(--zid-text-secondary);
2226
+ transition: background-color var(--zid-transition-fast);
2227
+ }
2228
+
2229
+ .zid-modal__close:hover {
2230
+ background-color: var(--zid-action-hover);
2231
+ }
2232
+
2233
+ .zid-modal__close:focus-visible {
2234
+ outline: 2px solid var(--zid-primary-main);
2235
+ outline-offset: 2px;
2236
+ }
2237
+
2238
+ /* ========================================
2239
+ * Modal Body
2240
+ * ======================================== */
2241
+
2242
+ .zid-modal__body {
2243
+ padding: var(--zid-spacing-3);
2244
+ font-family: var(--zid-font-family);
2245
+ font-size: var(--zid-font-size-base);
2246
+ color: var(--zid-text-primary);
2247
+ line-height: var(--zid-line-height-normal);
2248
+ }
2249
+
2250
+ /* ========================================
2251
+ * Modal Footer
2252
+ * ======================================== */
2253
+
2254
+ .zid-modal__footer {
2255
+ display: flex;
2256
+ align-items: center;
2257
+ justify-content: flex-end;
2258
+ gap: var(--zid-spacing-1);
2259
+ padding: var(--zid-spacing-2) var(--zid-spacing-3);
2260
+ border-top: 1px solid var(--zid-divider);
2261
+ }
2262
+
2263
+ .zid-modal__footer--start {
2264
+ justify-content: flex-start;
2265
+ }
2266
+
2267
+ .zid-modal__footer--center {
2268
+ justify-content: center;
2269
+ }
2270
+
2271
+ .zid-modal__footer--between {
2272
+ justify-content: space-between;
2273
+ }
2274
+
2275
+ /**
2276
+ * Table Component
2277
+ * Header, rows, cells with hover states
2278
+ */
2279
+
2280
+ /* ========================================
2281
+ * Base Table
2282
+ * ======================================== */
2283
+
2284
+ :where(.zid-table) {
2285
+ width: 100%;
2286
+ border-collapse: collapse;
2287
+ font-family: var(--zid-font-family);
2288
+ font-size: var(--zid-font-size-base);
2289
+ color: var(--zid-text-primary);
2290
+ }
2291
+
2292
+ /* ========================================
2293
+ * Table Head
2294
+ * ======================================== */
2295
+
2296
+ .zid-table__head {
2297
+ background-color: var(--zid-color-neutral-50);
2298
+ }
2299
+
2300
+ .zid-table__head .zid-table__cell {
2301
+ font-weight: var(--zid-font-weight-semibold);
2302
+ color: var(--zid-text-secondary);
2303
+ text-align: left;
2304
+ }
2305
+
2306
+ /* ========================================
2307
+ * Table Row
2308
+ * ======================================== */
2309
+
2310
+ .zid-table__row {
2311
+ border-bottom: 1px solid var(--zid-divider);
2312
+ transition: background-color var(--zid-transition-fast);
2313
+ }
2314
+
2315
+ .zid-table__body .zid-table__row:hover {
2316
+ background-color: var(--zid-action-hover);
2317
+ }
2318
+
2319
+ .zid-table__row--selected {
2320
+ background-color: var(--zid-action-selected);
2321
+ }
2322
+
2323
+ .zid-table__body .zid-table__row--selected:hover {
2324
+ background-color: var(--zid-action-selected);
2325
+ }
2326
+
2327
+ /* ========================================
2328
+ * Table Cell
2329
+ * ======================================== */
2330
+
2331
+ .zid-table__cell {
2332
+ padding: var(--zid-spacing-1-5) var(--zid-spacing-2);
2333
+ vertical-align: middle;
2334
+ line-height: var(--zid-line-height-normal);
2335
+ }
2336
+
2337
+ /* ========================================
2338
+ * Cell Alignment
2339
+ * ======================================== */
2340
+
2341
+ .zid-table__cell--left {
2342
+ text-align: left;
2343
+ }
2344
+
2345
+ .zid-table__cell--center {
2346
+ text-align: center;
2347
+ }
2348
+
2349
+ .zid-table__cell--right {
2350
+ text-align: right;
2351
+ }
2352
+
2353
+ /* ========================================
2354
+ * Compact Table
2355
+ * ======================================== */
2356
+
2357
+ .zid-table--compact .zid-table__cell {
2358
+ padding: var(--zid-spacing-1) var(--zid-spacing-1-5);
2359
+ }
2360
+
2361
+ /* ========================================
2362
+ * Bordered Table
2363
+ * ======================================== */
2364
+
2365
+ .zid-table--bordered {
2366
+ border: 1px solid var(--zid-divider);
2367
+ }
2368
+
2369
+ .zid-table--bordered .zid-table__cell {
2370
+ border: 1px solid var(--zid-divider);
2371
+ }
2372
+
2373
+ /* ========================================
2374
+ * Striped Table
2375
+ * ======================================== */
2376
+
2377
+ .zid-table--striped .zid-table__body .zid-table__row:nth-child(even) {
2378
+ background-color: var(--zid-color-neutral-50);
2379
+ }
2380
+
2381
+ .zid-table--striped .zid-table__body .zid-table__row:nth-child(even):hover {
2382
+ background-color: var(--zid-action-hover);
2383
+ }
2384
+
2385
+ /* ========================================
2386
+ * Sticky Header
2387
+ * ======================================== */
2388
+
2389
+ .zid-table--sticky-header .zid-table__head {
2390
+ position: sticky;
2391
+ top: 0;
2392
+ z-index: 1;
2393
+ }
2394
+
2395
+ /* ========================================
2396
+ * Table Container
2397
+ * ======================================== */
2398
+
2399
+ .zid-table-container {
2400
+ overflow-x: auto;
2401
+ border-radius: var(--zid-radius-standard);
2402
+ border: 1px solid var(--zid-divider);
2403
+ }
2404
+
2405
+ .zid-table-container .zid-table {
2406
+ border: none;
2407
+ }
2408
+
2409
+ /* ========================================
2410
+ * Empty State
2411
+ * ======================================== */
2412
+
2413
+ .zid-table__empty {
2414
+ text-align: center;
2415
+ padding: var(--zid-spacing-6);
2416
+ color: var(--zid-text-secondary);
2417
+ }
2418
+
2419
+ /**
2420
+ * Tooltip Component
2421
+ * Dark background with light text
2422
+ */
2423
+
2424
+ /* ========================================
2425
+ * Base Tooltip
2426
+ * ======================================== */
2427
+
2428
+ :where(.zid-tooltip) {
2429
+ position: relative;
2430
+ display: inline-block;
2431
+ }
2432
+
2433
+ /* ========================================
2434
+ * Tooltip Content
2435
+ * ======================================== */
2436
+
2437
+ .zid-tooltip__content {
2438
+ position: absolute;
2439
+ z-index: 1500;
2440
+ padding: var(--zid-spacing-1) var(--zid-spacing-1-5);
2441
+ background-color: var(--zid-color-neutral-1000);
2442
+ color: var(--zid-color-neutral-50);
2443
+ font-family: var(--zid-font-family);
2444
+ font-size: var(--zid-font-size-sm);
2445
+ line-height: var(--zid-line-height-normal);
2446
+ border-radius: var(--zid-radius-sm);
2447
+ white-space: nowrap;
2448
+ opacity: 0;
2449
+ visibility: hidden;
2450
+ transition: opacity var(--zid-transition-fast),
2451
+ visibility var(--zid-transition-fast);
2452
+ pointer-events: none;
2453
+ }
2454
+
2455
+ .zid-tooltip:hover .zid-tooltip__content,
2456
+ .zid-tooltip--open .zid-tooltip__content {
2457
+ opacity: 1;
2458
+ visibility: visible;
2459
+ }
2460
+
2461
+ /* ========================================
2462
+ * Tooltip Positions
2463
+ * ======================================== */
2464
+
2465
+ .zid-tooltip__content--top {
2466
+ bottom: 100%;
2467
+ left: 50%;
2468
+ transform: translateX(-50%);
2469
+ margin-bottom: var(--zid-spacing-1);
2470
+ }
2471
+
2472
+ .zid-tooltip__content--bottom {
2473
+ top: 100%;
2474
+ left: 50%;
2475
+ transform: translateX(-50%);
2476
+ margin-top: var(--zid-spacing-1);
2477
+ }
2478
+
2479
+ .zid-tooltip__content--left {
2480
+ right: 100%;
2481
+ top: 50%;
2482
+ transform: translateY(-50%);
2483
+ margin-right: var(--zid-spacing-1);
2484
+ }
2485
+
2486
+ .zid-tooltip__content--right {
2487
+ left: 100%;
2488
+ top: 50%;
2489
+ transform: translateY(-50%);
2490
+ margin-left: var(--zid-spacing-1);
2491
+ }
2492
+
2493
+ /* ========================================
2494
+ * Tooltip Arrow
2495
+ * ======================================== */
2496
+
2497
+ .zid-tooltip__content::after {
2498
+ content: '';
2499
+ position: absolute;
2500
+ border: 6px solid transparent;
2501
+ }
2502
+
2503
+ .zid-tooltip__content--top::after {
2504
+ top: 100%;
2505
+ left: 50%;
2506
+ transform: translateX(-50%);
2507
+ border-top-color: var(--zid-color-neutral-1000);
2508
+ }
2509
+
2510
+ .zid-tooltip__content--bottom::after {
2511
+ bottom: 100%;
2512
+ left: 50%;
2513
+ transform: translateX(-50%);
2514
+ border-bottom-color: var(--zid-color-neutral-1000);
2515
+ }
2516
+
2517
+ .zid-tooltip__content--left::after {
2518
+ left: 100%;
2519
+ top: 50%;
2520
+ transform: translateY(-50%);
2521
+ border-left-color: var(--zid-color-neutral-1000);
2522
+ }
2523
+
2524
+ .zid-tooltip__content--right::after {
2525
+ right: 100%;
2526
+ top: 50%;
2527
+ transform: translateY(-50%);
2528
+ border-right-color: var(--zid-color-neutral-1000);
2529
+ }
2530
+
2531
+ /* ========================================
2532
+ * Tooltip Title
2533
+ * ======================================== */
2534
+
2535
+ .zid-tooltip__title {
2536
+ font-weight: 600;
2537
+ font-size: 13px;
2538
+ line-height: 20px;
2539
+ margin-bottom: var(--zid-spacing-0-5);
2540
+ }
2541
+
2542
+ /* ========================================
2543
+ * Tooltip Description
2544
+ * ======================================== */
2545
+
2546
+ .zid-tooltip__description {
2547
+ font-weight: 400;
2548
+ font-size: 12px;
2549
+ }
2550
+
2551
+ /* ========================================
2552
+ * Multiline Tooltip
2553
+ * ======================================== */
2554
+
2555
+ .zid-tooltip__content--multiline {
2556
+ white-space: normal;
2557
+ max-width: 300px;
2558
+ }
2559
+
2560
+ /**
2561
+ * Alert Component
2562
+ * Matches MUI Alert styling exactly
2563
+ * Severity variants: success, info, warning, error
2564
+ */
2565
+
2566
+ /* ========================================
2567
+ * Base Alert
2568
+ * ======================================== */
2569
+
2570
+ :where(.zid-alert) {
2571
+ display: flex;
2572
+ padding: 6px 16px;
2573
+ font-family: var(--zid-font-family);
2574
+ font-size: 0.875rem;
2575
+ line-height: 1.43;
2576
+ letter-spacing: 0.01071em;
2577
+ border-radius: 12px;
2578
+ border-style: solid;
2579
+ border-width: 1px;
2580
+ flex-wrap: wrap;
2581
+ }
2582
+
2583
+ /* ========================================
2584
+ * Alert Icon
2585
+ * ======================================== */
2586
+
2587
+ .zid-alert__icon {
2588
+ display: flex;
2589
+ flex: 0;
2590
+ padding-block: 6px;
2591
+ align-items: flex-start;
2592
+ margin-right: 12px;
2593
+ opacity: 0.9;
2594
+ }
2595
+
2596
+ .zid-alert__icon svg {
2597
+ width: 22px;
2598
+ height: 22px;
2599
+ fill: currentColor;
2600
+ }
2601
+
2602
+ /* ========================================
2603
+ * Alert Content
2604
+ * ======================================== */
2605
+
2606
+ .zid-alert__content {
2607
+ flex: 1;
2608
+ padding-block: 6px;
2609
+ display: flex;
2610
+ flex-direction: column;
2611
+ gap: 4px;
2612
+ }
2613
+
2614
+ .zid-alert__title {
2615
+ font-weight: 500;
2616
+ font-size: 0.875rem;
2617
+ line-height: 1.57;
2618
+ letter-spacing: 0.00714em;
2619
+ margin: 0;
2620
+ }
2621
+
2622
+ .zid-alert__message {
2623
+ font-size: 0.875rem;
2624
+ line-height: 1.43;
2625
+ letter-spacing: 0.01071em;
2626
+ }
2627
+
2628
+ /* ========================================
2629
+ * Alert Close Button
2630
+ * ======================================== */
2631
+
2632
+ .zid-alert__close {
2633
+ display: flex;
2634
+ align-items: flex-start;
2635
+ padding-top: 2px;
2636
+ margin-right: 0;
2637
+ margin-left: auto;
2638
+ border: none;
2639
+ background: transparent;
2640
+ cursor: pointer;
2641
+ padding: 4px;
2642
+ border-radius: 50%;
2643
+ transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1);
2644
+ }
2645
+
2646
+ .zid-alert__close:hover {
2647
+ background-color: rgba(0, 0, 0, 0.04);
2648
+ }
2649
+
2650
+ .zid-alert__close svg {
2651
+ width: 20px;
2652
+ height: 20px;
2653
+ fill: currentColor;
2654
+ }
2655
+
2656
+ /* ========================================
2657
+ * Success Variant
2658
+ * ======================================== */
2659
+
2660
+ .zid-alert--success {
2661
+ background-color: #F7FDF7;
2662
+ border-color: #CAF4C8;
2663
+ color: inherit;
2664
+ }
2665
+
2666
+ .zid-alert--success .zid-alert__icon {
2667
+ color: #9EEC98;
2668
+ }
2669
+
2670
+ .zid-alert--success .zid-alert__close {
2671
+ color: #476A44;
2672
+ }
2673
+
2674
+ /* ========================================
2675
+ * Info Variant
2676
+ * ======================================== */
2677
+
2678
+ .zid-alert--info {
2679
+ background-color: #F4FCFC;
2680
+ border-color: #B5EFEF;
2681
+ color: inherit;
2682
+ }
2683
+
2684
+ .zid-alert--info .zid-alert__icon {
2685
+ color: #449090;
2686
+ }
2687
+
2688
+ .zid-alert--info .zid-alert__close {
2689
+ color: #306666;
2690
+ }
2691
+
2692
+ /* ========================================
2693
+ * Warning Variant
2694
+ * ======================================== */
2695
+
2696
+ .zid-alert--warning {
2697
+ background-color: #FEFDF5;
2698
+ border-color: #FAEBA4;
2699
+ color: inherit;
2700
+ }
2701
+
2702
+ .zid-alert--warning .zid-alert__icon {
2703
+ color: #DFCE75;
2704
+ }
2705
+
2706
+ .zid-alert--warning .zid-alert__close {
2707
+ color: #6F673B;
2708
+ }
2709
+
2710
+ /* ========================================
2711
+ * Error Variant
2712
+ * ======================================== */
2713
+
2714
+ .zid-alert--error {
2715
+ background-color: #FFF3F4;
2716
+ border-color: #FDC9D0;
2717
+ color: inherit;
2718
+ }
2719
+
2720
+ .zid-alert--error .zid-alert__icon {
2721
+ color: #FCA7B4;
2722
+ }
2723
+
2724
+ .zid-alert--error .zid-alert__close {
2725
+ color: #70192F;
2726
+ }
2727
+
2728
+ /**
2729
+ * Status Component
2730
+ * Color variants: success, error, warning, info, neutral, disabled, orange, blue
2731
+ * Sizes: sm, md
2732
+ */
2733
+
2734
+ /* ========================================
2735
+ * Base Status
2736
+ * ======================================== */
2737
+
2738
+ :where(.zid-status) {
2739
+ display: inline-flex;
2740
+ align-items: center;
2741
+ justify-content: center;
2742
+ font-family: var(--zid-font-family);
2743
+ font-weight: var(--zid-font-weight-regular);
2744
+ font-size: 0.75rem;
2745
+ line-height: 1.125rem;
2746
+ border-radius: var(--zid-radius-full);
2747
+ white-space: nowrap;
2748
+ min-width: 60px;
2749
+ }
2750
+
2751
+ /* ========================================
2752
+ * Size Modifiers
2753
+ * ======================================== */
2754
+
2755
+ .zid-status--sm {
2756
+ padding: var(--zid-spacing-0-5) var(--zid-spacing-1);
2757
+ font-size: 0.75rem;
2758
+ line-height: 1.125rem;
2759
+ }
2760
+
2761
+ .zid-status--md {
2762
+ padding: var(--zid-spacing-0-5) var(--zid-spacing-1-5);
2763
+ font-size: 0.75rem;
2764
+ line-height: 1.125rem;
2765
+ }
2766
+
2767
+ /* ========================================
2768
+ * Success Variant
2769
+ * ======================================== */
2770
+
2771
+ .zid-status--success {
2772
+ background-color: var(--zid-color-green-300);
2773
+ color: var(--zid-color-green-900);
2774
+ }
2775
+
2776
+ /* ========================================
2777
+ * Error Variant
2778
+ * ======================================== */
2779
+
2780
+ .zid-status--error {
2781
+ background-color: var(--zid-color-red-200);
2782
+ color: var(--zid-color-red-900);
2783
+ }
2784
+
2785
+ /* ========================================
2786
+ * Warning Variant
2787
+ * ======================================== */
2788
+
2789
+ .zid-status--warning {
2790
+ background-color: var(--zid-color-yellow-300);
2791
+ color: var(--zid-color-yellow-1000);
2792
+ }
2793
+
2794
+ /* ========================================
2795
+ * Info Variant
2796
+ * ======================================== */
2797
+
2798
+ .zid-status--info {
2799
+ background-color: var(--zid-color-primary-200);
2800
+ color: var(--zid-color-primary-800);
2801
+ }
2802
+
2803
+ /* ========================================
2804
+ * Neutral Variant
2805
+ * ======================================== */
2806
+
2807
+ .zid-status--neutral {
2808
+ background-color: var(--zid-color-neutral-100);
2809
+ color: var(--zid-color-neutral-600);
2810
+ }
2811
+
2812
+ /* ========================================
2813
+ * Disabled Variant
2814
+ * ======================================== */
2815
+
2816
+ .zid-status--disabled {
2817
+ background-color: var(--zid-color-neutral-50);
2818
+ color: var(--zid-color-neutral-400);
2819
+ }
2820
+
2821
+ /* ========================================
2822
+ * Orange Variant
2823
+ * ======================================== */
2824
+
2825
+ .zid-status--orange {
2826
+ background-color: var(--zid-color-orange-200);
2827
+ color: var(--zid-color-orange-700);
2828
+ }
2829
+
2830
+ /* ========================================
2831
+ * Blue Variant
2832
+ * ======================================== */
2833
+
2834
+ .zid-status--blue {
2835
+ background-color: var(--zid-color-blue-300);
2836
+ color: var(--zid-color-blue-900);
2837
+ }
2838
+
2839
+ /* ========================================
2840
+ * Status with Icon
2841
+ * ======================================== */
2842
+
2843
+ .zid-status__icon {
2844
+ display: flex;
2845
+ align-items: center;
2846
+ justify-content: center;
2847
+ margin-right: var(--zid-spacing-0-5);
2848
+ }
2849
+
2850
+ .zid-status__icon svg {
2851
+ width: 12px;
2852
+ height: 12px;
2853
+ }
2854
+
2855
+ .zid-status--md .zid-status__icon svg {
2856
+ width: 14px;
2857
+ height: 14px;
2858
+ }
2859
+
2860
+ /* ========================================
2861
+ * Status with Dot
2862
+ * ======================================== */
2863
+
2864
+ .zid-status__dot {
2865
+ width: 6px;
2866
+ height: 6px;
2867
+ border-radius: var(--zid-radius-full);
2868
+ margin-right: var(--zid-spacing-0-5);
2869
+ }
2870
+
2871
+ .zid-status--success .zid-status__dot {
2872
+ background-color: var(--zid-color-green-700);
2873
+ }
2874
+
2875
+ .zid-status--error .zid-status__dot {
2876
+ background-color: var(--zid-color-red-700);
2877
+ }
2878
+
2879
+ .zid-status--warning .zid-status__dot {
2880
+ background-color: var(--zid-color-yellow-700);
2881
+ }
2882
+
2883
+ .zid-status--info .zid-status__dot {
2884
+ background-color: var(--zid-color-primary-600);
2885
+ }
2886
+
2887
+ .zid-status--neutral .zid-status__dot {
2888
+ background-color: var(--zid-color-neutral-500);
2889
+ }
2890
+
2891
+ .zid-status--disabled .zid-status__dot {
2892
+ background-color: var(--zid-color-neutral-300);
2893
+ }
2894
+
2895
+ .zid-status--orange .zid-status__dot {
2896
+ background-color: var(--zid-color-orange-600);
2897
+ }
2898
+
2899
+ .zid-status--blue .zid-status__dot {
2900
+ background-color: var(--zid-color-blue-700);
2901
+ }
2902
+
2903
+ /**
2904
+ * List Item Component
2905
+ * Icon, text, and content slots
2906
+ */
2907
+
2908
+ /* ========================================
2909
+ * Base List Item
2910
+ * ======================================== */
2911
+
2912
+ :where(.zid-list-item) {
2913
+ display: flex;
2914
+ align-items: center;
2915
+ gap: var(--zid-spacing-1-5);
2916
+ padding: var(--zid-spacing-1-5) 0;
2917
+ font-family: var(--zid-font-family);
2918
+ border-bottom: 1px solid var(--zid-divider);
2919
+ }
2920
+
2921
+ .zid-list-item:first-child {
2922
+ padding-top: 0;
2923
+ }
2924
+
2925
+ .zid-list-item:last-child {
2926
+ border-bottom: none;
2927
+ }
2928
+
2929
+ /* ========================================
2930
+ * List Item Icon
2931
+ * ======================================== */
2932
+
2933
+ .zid-list-item__icon {
2934
+ display: flex;
2935
+ align-items: center;
2936
+ justify-content: center;
2937
+ flex-shrink: 0;
2938
+ min-width: auto;
2939
+ color: var(--zid-text-secondary);
2940
+ }
2941
+
2942
+ .zid-list-item__icon svg {
2943
+ width: 20px;
2944
+ height: 20px;
2945
+ }
2946
+
2947
+ /* ========================================
2948
+ * List Item Text Container
2949
+ * ======================================== */
2950
+
2951
+ .zid-list-item__text {
2952
+ flex: 1;
2953
+ min-width: 0;
2954
+ display: flex;
2955
+ flex-direction: column;
2956
+ gap: var(--zid-spacing-0-5);
2957
+ }
2958
+
2959
+ /* ========================================
2960
+ * Primary Text
2961
+ * ======================================== */
2962
+
2963
+ .zid-list-item__primary {
2964
+ font-size: var(--zid-font-size-sm);
2965
+ font-weight: var(--zid-font-weight-regular);
2966
+ color: var(--zid-text-primary);
2967
+ line-height: var(--zid-line-height-normal);
2968
+ overflow: hidden;
2969
+ text-overflow: ellipsis;
2970
+ white-space: nowrap;
2971
+ }
2972
+
2973
+ /* ========================================
2974
+ * Secondary Text (Description)
2975
+ * ======================================== */
2976
+
2977
+ .zid-list-item__secondary {
2978
+ font-size: var(--zid-font-size-xs);
2979
+ font-weight: var(--zid-font-weight-regular);
2980
+ color: var(--zid-text-tertiary);
2981
+ line-height: var(--zid-line-height-normal);
2982
+ overflow: hidden;
2983
+ text-overflow: ellipsis;
2984
+ white-space: nowrap;
2985
+ }
2986
+
2987
+ /* ========================================
2988
+ * Right-side Content
2989
+ * ======================================== */
2990
+
2991
+ .zid-list-item__content {
2992
+ display: flex;
2993
+ align-items: center;
2994
+ gap: var(--zid-spacing-1);
2995
+ flex-shrink: 0;
2996
+ color: var(--zid-text-secondary);
2997
+ }
2998
+
2999
+ /* ========================================
3000
+ * Clickable List Item
3001
+ * ======================================== */
3002
+
3003
+ .zid-list-item--clickable {
3004
+ cursor: pointer;
3005
+ transition: background-color var(--zid-transition-fast);
3006
+ margin: 0 calc(var(--zid-spacing-1-5) * -1);
3007
+ padding-left: var(--zid-spacing-1-5);
3008
+ padding-right: var(--zid-spacing-1-5);
3009
+ border-radius: var(--zid-radius-standard);
3010
+ }
3011
+
3012
+ .zid-list-item--clickable:hover {
3013
+ background-color: var(--zid-action-hover);
3014
+ }
3015
+
3016
+ .zid-list-item--clickable:active {
3017
+ background-color: var(--zid-action-selected);
3018
+ }
3019
+
3020
+ /* ========================================
3021
+ * Selected List Item
3022
+ * ======================================== */
3023
+
3024
+ .zid-list-item--selected {
3025
+ background-color: var(--zid-action-selected);
3026
+ }
3027
+
3028
+ /* ========================================
3029
+ * Disabled List Item
3030
+ * ======================================== */
3031
+
3032
+ .zid-list-item--disabled {
3033
+ opacity: 0.5;
3034
+ pointer-events: none;
3035
+ }
3036
+
3037
+ /* ========================================
3038
+ * Dense List Item
3039
+ * ======================================== */
3040
+
3041
+ .zid-list-item--dense {
3042
+ padding: var(--zid-spacing-1) 0;
3043
+ gap: var(--zid-spacing-1-5);
3044
+ }
3045
+
3046
+ .zid-list-item--dense .zid-list-item__primary {
3047
+ font-size: var(--zid-font-size-xs);
3048
+ }
3049
+
3050
+ .zid-list-item--dense .zid-list-item__secondary {
3051
+ font-size: var(--zid-font-size-xs);
3052
+ }
3053
+
3054
+ /* ========================================
3055
+ * List Container
3056
+ * ======================================== */
3057
+
3058
+ .zid-list {
3059
+ list-style: none;
3060
+ margin: 0;
3061
+ padding: 0;
3062
+ }