zabi-components 7.0.0 → 7.0.2

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.
@@ -130,23 +130,112 @@
130
130
  --zabi-base-925: #101013;
131
131
  --zabi-base-950: #09090b;
132
132
  --font-family-sans: 'Nunito Sans', ui-sans-serif, system-ui, sans-serif;
133
- --color-brand-50: #f7faff;
134
- --color-brand-100: #edf2fb;
135
- --color-brand-200: #dfe7fb;
136
- --color-brand-300: #ccdbfd;
137
- --color-brand-400: #abc4ff;
138
- --color-brand-500: #8fa8ff;
139
- --color-brand-600: #6e84fa;
140
- --color-brand-700: #5366e2;
141
- --color-brand-800: #3f4fc0;
142
- --color-brand-900: #2f3c99;
143
- --color-brand-950: #1f2866;
144
- --color-iris-50: #f4f4fa;
145
- --color-iris-100: #e9e9f7;
146
- --color-iris-200: #d6d6f0;
147
- --color-iris-300: #bdbde6;
148
- --color-iris-500: #6969B3;
149
- --color-iris-900: #2a2a56;
133
+ --zabi-brand-50: #f7faff;
134
+ --zabi-brand-100: #edf2fb;
135
+ --zabi-brand-200: #dfe7fb;
136
+ --zabi-brand-300: #ccdbfd;
137
+ --zabi-brand-400: #abc4ff;
138
+ --zabi-brand-500: #8fa8ff;
139
+ --zabi-brand-600: #6e84fa;
140
+ --zabi-brand-700: #5366e2;
141
+ --zabi-brand-800: #3f4fc0;
142
+ --zabi-brand-900: #2f3c99;
143
+ --zabi-brand-950: #1f2866;
144
+ --color-brand-50: var(--zabi-brand-50);
145
+ --color-brand-100: var(--zabi-brand-100);
146
+ --color-brand-200: var(--zabi-brand-200);
147
+ --color-brand-300: var(--zabi-brand-300);
148
+ --color-brand-400: var(--zabi-brand-400);
149
+ --color-brand-500: var(--zabi-brand-500);
150
+ --color-brand-600: var(--zabi-brand-600);
151
+ --color-brand-700: var(--zabi-brand-700);
152
+ --color-brand-800: var(--zabi-brand-800);
153
+ --color-brand-900: var(--zabi-brand-900);
154
+ --color-brand-950: var(--zabi-brand-950);
155
+ --zabi-citron-50: #f9faeb;
156
+ --zabi-citron-100: #f1f5cf;
157
+ --zabi-citron-200: #e4ecaa;
158
+ --zabi-citron-300: #d5e184;
159
+ --zabi-citron-400: #c7d460;
160
+ --zabi-citron-500: #bbbe64;
161
+ --zabi-citron-600: #a3a852;
162
+ --zabi-citron-700: #848a43;
163
+ --zabi-citron-800: #666c35;
164
+ --zabi-citron-900: #4d5229;
165
+ --zabi-citron-950: #323518;
166
+ --color-citron-300: var(--zabi-citron-300);
167
+ --color-citron-400: var(--zabi-citron-400);
168
+ --color-citron-500: var(--zabi-citron-500);
169
+ --color-citron-600: var(--zabi-citron-600);
170
+ --color-citron-700: var(--zabi-citron-700);
171
+ --zabi-pine-50: #e9f6f2;
172
+ --zabi-pine-100: #d2ece4;
173
+ --zabi-pine-200: #a7d9c9;
174
+ --zabi-pine-300: #78c4ad;
175
+ --zabi-pine-400: #49ad91;
176
+ --zabi-pine-500: #0c5d43;
177
+ --zabi-pine-600: #0a513a;
178
+ --zabi-pine-700: #084532;
179
+ --zabi-pine-800: #063a2a;
180
+ --zabi-pine-900: #04231a;
181
+ --zabi-pine-950: #02160f;
182
+ --color-pine-600: var(--zabi-pine-600);
183
+ --color-pine-700: var(--zabi-pine-700);
184
+ --color-pine-800: var(--zabi-pine-800);
185
+ --color-pine-900: var(--zabi-pine-900);
186
+ --zabi-iris-50: #f4f4fa;
187
+ --zabi-iris-100: #e9e9f7;
188
+ --zabi-iris-200: #d6d6f0;
189
+ --zabi-iris-300: #bdbde6;
190
+ --zabi-iris-400: #a3a3d8;
191
+ --zabi-iris-500: #6969b3;
192
+ --zabi-iris-600: #58589e;
193
+ --zabi-iris-700: #474788;
194
+ --zabi-iris-800: #38386f;
195
+ --zabi-iris-900: #2a2a56;
196
+ --zabi-iris-950: #1b1b37;
197
+ --color-iris-50: var(--zabi-iris-50);
198
+ --color-iris-100: var(--zabi-iris-100);
199
+ --color-iris-200: var(--zabi-iris-200);
200
+ --color-iris-300: var(--zabi-iris-300);
201
+ --color-iris-400: var(--zabi-iris-400);
202
+ --color-iris-500: var(--zabi-iris-500);
203
+ --color-iris-600: var(--zabi-iris-600);
204
+ --color-iris-700: var(--zabi-iris-700);
205
+ --color-iris-800: var(--zabi-iris-800);
206
+ --color-iris-900: var(--zabi-iris-900);
207
+ --zabi-warning-50: #fffbeb;
208
+ --zabi-warning-100: #fef3c7;
209
+ --zabi-warning-200: #fde68a;
210
+ --zabi-warning-300: #fcd34d;
211
+ --zabi-warning-400: #fbbf24;
212
+ --zabi-warning-500: #f59e0b;
213
+ --zabi-warning-600: #d97706;
214
+ --zabi-warning-700: #b45309;
215
+ --zabi-warning-800: #92400e;
216
+ --zabi-warning-900: #78350f;
217
+ --zabi-warning-950: #451a03;
218
+ --color-warning-300: var(--zabi-warning-300);
219
+ --color-warning-400: var(--zabi-warning-400);
220
+ --color-warning-500: var(--zabi-warning-500);
221
+ --color-warning-600: var(--zabi-warning-600);
222
+ --color-warning-700: var(--zabi-warning-700);
223
+ --zabi-error-50: #fef2f2;
224
+ --zabi-error-100: #fee2e2;
225
+ --zabi-error-200: #fecaca;
226
+ --zabi-error-300: #fca5a5;
227
+ --zabi-error-400: #f87171;
228
+ --zabi-error-500: #ef4444;
229
+ --zabi-error-600: #dc2626;
230
+ --zabi-error-700: #b91c1c;
231
+ --zabi-error-800: #991b1b;
232
+ --zabi-error-900: #7f1d1d;
233
+ --zabi-error-950: #450a0a;
234
+ --color-error-300: var(--zabi-error-300);
235
+ --color-error-400: var(--zabi-error-400);
236
+ --color-error-500: var(--zabi-error-500);
237
+ --color-error-600: var(--zabi-error-600);
238
+ --color-error-700: var(--zabi-error-700);
150
239
  --color-base-50: var(--zabi-base-50);
151
240
  --color-base-75: var(--zabi-base-75);
152
241
  --color-base-100: var(--zabi-base-100);
@@ -172,11 +261,11 @@
172
261
  --color-background-secondary: var(--color-base-50);
173
262
  --color-background-tertiary: var(--color-base-100);
174
263
  --color-page: var(--color-base-100);
175
- --color-card: #fff;
264
+ --color-card: #ffffff;
176
265
  --color-card-hover: var(--color-base-100);
177
266
  --color-card-active: var(--color-base-100);
178
- --color-card-elevated: #fff;
179
- --color-surface-1: #fff;
267
+ --color-card-elevated: #ffffff;
268
+ --color-surface-1: #ffffff;
180
269
  --color-surface-2: var(--color-base-50);
181
270
  --color-surface-3: var(--color-base-75);
182
271
  --color-surface-4: var(--color-base-100);
@@ -192,8 +281,8 @@
192
281
  --color-caption: var(--color-base-500);
193
282
  --color-input-placeholder: var(--color-base-400);
194
283
  --color-label: var(--color-base-700);
195
- --color-link: #6e84fa;
196
- --color-link-hover: #5366e2;
284
+ --color-link: var(--color-brand-600);
285
+ --color-link-hover: var(--color-brand-700);
197
286
  --color-nav-menu-item: var(--color-body);
198
287
  --color-nav-menu-item-hover: var(--color-headline);
199
288
  --color-nav-menu-item-active: var(--color-link);
@@ -201,36 +290,36 @@
201
290
  --color-nav-menu-active: var(--color-action-primary-subtle);
202
291
  --color-nav-menu-focus: var(--color-brand-500);
203
292
  --color-success-text: var(--color-success);
204
- --color-warning-text: oklch(55.5% 0.163 48.998);
293
+ --color-warning-text: var(--color-warning-700);
205
294
  --color-neutral-text: var(--color-base-700);
206
- --color-energetic-text: #848a43;
207
- --color-error-text: oklch(50.5% 0.213 27.518);
208
- --color-inverse: #fff;
295
+ --color-energetic-text: var(--color-citron-700);
296
+ --color-error-text: var(--color-error-700);
297
+ --color-inverse: var(--color-base-100);
209
298
  --color-disabled: var(--color-base-400);
210
299
  --color-border: var(--color-base-300);
211
300
  --color-border-weak: var(--color-base-300);
212
301
  --color-border-medium: var(--color-base-400);
213
302
  --color-border-strong: var(--color-base-500);
214
- --color-focus: #8fa8ff;
215
- --color-focus-weak: #6e84fa;
216
- --color-focus-medium: #5366e2;
217
- --color-focus-strong: #3f4fc0;
303
+ --color-focus: var(--color-brand-500);
304
+ --color-focus-weak: var(--color-brand-600);
305
+ --color-focus-medium: var(--color-brand-700);
306
+ --color-focus-strong: var(--color-brand-800);
218
307
  --color-focus-ring: var(--color-focus);
219
308
  --color-focus-ring-offset: var(--color-card);
220
- --color-primary: #6e84fa;
221
- --color-primary-weak: #5366e2;
222
- --color-primary-medium: #3f4fc0;
223
- --color-primary-strong: #2f3c99;
309
+ --color-primary: var(--color-brand-600);
310
+ --color-primary-weak: var(--color-brand-700);
311
+ --color-primary-medium: var(--color-brand-800);
312
+ --color-primary-strong: var(--color-brand-900);
224
313
  --color-secondary: var(--color-base-600);
225
314
  --color-secondary-weak: var(--color-base-700);
226
315
  --color-secondary-medium: var(--color-base-800);
227
316
  --color-secondary-strong: var(--color-base-900);
228
- --color-success: #0a513a;
229
- --color-warning: oklch(76.9% 0.188 70.08);
230
- --color-error: oklch(63.7% 0.237 25.331);
231
- --color-energetic: #bbbe64;
317
+ --color-success: var(--color-pine-600);
318
+ --color-warning: var(--color-warning-500);
319
+ --color-error: var(--color-error-500);
320
+ --color-energetic: var(--color-citron-500);
232
321
  --color-neutral: var(--color-base-600);
233
- --color-info: #58589e;
322
+ --color-info: var(--color-iris-600);
234
323
  --color-info-text: var(--color-info);
235
324
  --color-action-primary: var(--color-brand-950);
236
325
  --color-action-primary-hover: var(--color-brand-900);
@@ -255,12 +344,12 @@
255
344
  --color-action-secondary-disabled: var(--color-brand-500);
256
345
  --color-action-secondary-subtle: var(--color-brand-600);
257
346
  --color-action-secondary-subtle-hover: var(--color-brand-700);
258
- --color-action-danger: oklch(57.7% 0.245 27.325);
259
- --color-action-danger-hover: oklch(50.5% 0.213 27.518);
260
- --color-action-danger-active: oklch(44.4% 0.177 26.899);
261
- --color-action-danger-disabled: oklch(80.8% 0.114 19.571);
262
- --color-action-danger-subtle: oklch(97.1% 0.013 17.38);
263
- --color-action-danger-subtle-hover: oklch(93.6% 0.032 17.717);
347
+ --color-action-danger: #dc2626;
348
+ --color-action-danger-hover: #b91c1c;
349
+ --color-action-danger-active: #991b1b;
350
+ --color-action-danger-disabled: #fca5a5;
351
+ --color-action-danger-subtle: #fef2f2;
352
+ --color-action-danger-subtle-hover: #fee2e2;
264
353
  --shadow-color: 0 0 0;
265
354
  --shadow-opacity: 0.1;
266
355
  --spacing-xs: 0.25rem;
@@ -275,6 +364,8 @@
275
364
  --z-popover: 1060;
276
365
  --z-tooltip: 1070;
277
366
  --z-toast: 1080;
367
+ --color-tooltip-bg: var(--color-base-800);
368
+ --color-tooltip-fg: var(--color-base-50);
278
369
  }
279
370
  }
280
371
  @layer base {
@@ -1715,6 +1806,9 @@
1715
1806
  .bg-surface-2 {
1716
1807
  background-color: var(--color-surface-2);
1717
1808
  }
1809
+ .bg-tooltip-bg {
1810
+ background-color: var(--color-tooltip-bg);
1811
+ }
1718
1812
  .bg-transparent {
1719
1813
  background-color: transparent;
1720
1814
  }
@@ -2041,6 +2135,12 @@
2041
2135
  .break-words {
2042
2136
  overflow-wrap: break-word;
2043
2137
  }
2138
+ .wrap-break-word {
2139
+ overflow-wrap: break-word;
2140
+ }
2141
+ .whitespace-normal {
2142
+ white-space: normal;
2143
+ }
2044
2144
  .whitespace-pre {
2045
2145
  white-space: pre;
2046
2146
  }
@@ -2154,6 +2254,9 @@
2154
2254
  .text-success {
2155
2255
  color: var(--color-success);
2156
2256
  }
2257
+ .text-tooltip-fg {
2258
+ color: var(--color-tooltip-fg);
2259
+ }
2157
2260
  .text-warning {
2158
2261
  color: var(--color-warning);
2159
2262
  }
@@ -2315,6 +2418,11 @@
2315
2418
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2316
2419
  transition-duration: var(--tw-duration, var(--default-transition-duration));
2317
2420
  }
2421
+ .transition-\[opacity\,visibility\,transform\] {
2422
+ transition-property: opacity,visibility,transform;
2423
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2424
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2425
+ }
2318
2426
  .transition-all {
2319
2427
  transition-property: all;
2320
2428
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -2548,7 +2656,7 @@
2548
2656
  .hover\:border-primary\/20 {
2549
2657
  &:hover {
2550
2658
  @media (hover: hover) {
2551
- border-color: color-mix(in srgb, theme(colors.brand.600) 20%, transparent);
2659
+ border-color: color-mix(in srgb, #6e84fa 20%, transparent);
2552
2660
  @supports (color: color-mix(in lab, red, red)) {
2553
2661
  & {
2554
2662
  border-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
@@ -3593,6 +3701,12 @@
3593
3701
  --tw-ring-offset-color: transparent;
3594
3702
  }
3595
3703
  }
3704
+ @media (prefers-contrast: high) {
3705
+ :root {
3706
+ --color-tooltip-bg: CanvasText;
3707
+ --color-tooltip-fg: Canvas;
3708
+ }
3709
+ }
3596
3710
  body {
3597
3711
  font-family: var(--font-family-sans);
3598
3712
  }
@@ -3618,50 +3732,138 @@ body {
3618
3732
  --zabi-base-900: #18181b;
3619
3733
  --zabi-base-925: #101013;
3620
3734
  --zabi-base-950: #09090b;
3621
- --color-brand-50: #1f2866;
3622
- --color-brand-100: #2f3c99;
3623
- --color-brand-200: #3f4fc0;
3624
- --color-brand-300: #5366e2;
3625
- --color-brand-400: #6e84fa;
3626
- --color-brand-500: #8fa8ff;
3627
- --color-brand-600: #abc4ff;
3628
- --color-brand-700: #ccdbfd;
3629
- --color-brand-800: #dfe7fb;
3630
- --color-brand-900: #edf2fb;
3631
- --color-brand-950: #f7faff;
3632
- --color-citron-50: #323518;
3633
- --color-citron-100: #4d5229;
3634
- --color-citron-200: #666c35;
3635
- --color-citron-300: #848a43;
3636
- --color-citron-400: #a3a852;
3637
- --color-citron-500: #bbbe64;
3638
- --color-citron-600: #c7d460;
3639
- --color-citron-700: #d5e184;
3640
- --color-citron-800: #e4ecaa;
3641
- --color-citron-900: #f1f5cf;
3642
- --color-citron-950: #f9faeb;
3643
- --color-pine-50: #02160f;
3644
- --color-pine-100: #04231a;
3645
- --color-pine-200: #063a2a;
3646
- --color-pine-300: #084532;
3647
- --color-pine-400: #0a513a;
3648
- --color-pine-500: #0C5D43;
3649
- --color-pine-600: #49ad91;
3650
- --color-pine-700: #78c4ad;
3651
- --color-pine-800: #a7d9c9;
3652
- --color-pine-900: #d2ece4;
3653
- --color-pine-950: #e9f6f2;
3654
- --color-iris-50: #1b1b37;
3655
- --color-iris-100: #2a2a56;
3656
- --color-iris-200: #38386f;
3657
- --color-iris-300: #474788;
3658
- --color-iris-400: #58589e;
3659
- --color-iris-500: #6969B3;
3660
- --color-iris-600: #a3a3d8;
3661
- --color-iris-700: #bdbde6;
3662
- --color-iris-800: #d6d6f0;
3663
- --color-iris-900: #e9e9f7;
3664
- --color-iris-950: #f4f4fa;
3735
+ --zabi-brand-50: #f7faff;
3736
+ --zabi-brand-100: #edf2fb;
3737
+ --zabi-brand-200: #dfe7fb;
3738
+ --zabi-brand-300: #ccdbfd;
3739
+ --zabi-brand-400: #abc4ff;
3740
+ --zabi-brand-500: #8fa8ff;
3741
+ --zabi-brand-600: #6e84fa;
3742
+ --zabi-brand-700: #5366e2;
3743
+ --zabi-brand-800: #3f4fc0;
3744
+ --zabi-brand-900: #2f3c99;
3745
+ --zabi-brand-950: #1f2866;
3746
+ --color-brand-50: var(--zabi-brand-950);
3747
+ --color-brand-100: var(--zabi-brand-900);
3748
+ --color-brand-200: var(--zabi-brand-800);
3749
+ --color-brand-300: var(--zabi-brand-700);
3750
+ --color-brand-400: var(--zabi-brand-600);
3751
+ --color-brand-500: var(--zabi-brand-500);
3752
+ --color-brand-600: var(--zabi-brand-400);
3753
+ --color-brand-700: var(--zabi-brand-300);
3754
+ --color-brand-800: var(--zabi-brand-200);
3755
+ --color-brand-900: var(--zabi-brand-100);
3756
+ --color-brand-950: var(--zabi-brand-50);
3757
+ --zabi-citron-50: #f9faeb;
3758
+ --zabi-citron-100: #f1f5cf;
3759
+ --zabi-citron-200: #e4ecaa;
3760
+ --zabi-citron-300: #d5e184;
3761
+ --zabi-citron-400: #c7d460;
3762
+ --zabi-citron-500: #bbbe64;
3763
+ --zabi-citron-600: #a3a852;
3764
+ --zabi-citron-700: #848a43;
3765
+ --zabi-citron-800: #666c35;
3766
+ --zabi-citron-900: #4d5229;
3767
+ --zabi-citron-950: #323518;
3768
+ --color-citron-50: var(--zabi-citron-950);
3769
+ --color-citron-100: var(--zabi-citron-900);
3770
+ --color-citron-200: var(--zabi-citron-800);
3771
+ --color-citron-300: var(--zabi-citron-700);
3772
+ --color-citron-400: var(--zabi-citron-600);
3773
+ --color-citron-500: var(--zabi-citron-500);
3774
+ --color-citron-600: var(--zabi-citron-400);
3775
+ --color-citron-700: var(--zabi-citron-300);
3776
+ --color-citron-800: var(--zabi-citron-200);
3777
+ --color-citron-900: var(--zabi-citron-100);
3778
+ --color-citron-950: var(--zabi-citron-50);
3779
+ --zabi-pine-50: #e9f6f2;
3780
+ --zabi-pine-100: #d2ece4;
3781
+ --zabi-pine-200: #a7d9c9;
3782
+ --zabi-pine-300: #78c4ad;
3783
+ --zabi-pine-400: #49ad91;
3784
+ --zabi-pine-500: #0c5d43;
3785
+ --zabi-pine-600: #0a513a;
3786
+ --zabi-pine-700: #084532;
3787
+ --zabi-pine-800: #063a2a;
3788
+ --zabi-pine-900: #04231a;
3789
+ --zabi-pine-950: #02160f;
3790
+ --color-pine-50: var(--zabi-pine-950);
3791
+ --color-pine-100: var(--zabi-pine-900);
3792
+ --color-pine-200: var(--zabi-pine-800);
3793
+ --color-pine-300: var(--zabi-pine-700);
3794
+ --color-pine-400: var(--zabi-pine-600);
3795
+ --color-pine-500: var(--zabi-pine-500);
3796
+ --color-pine-600: var(--zabi-pine-400);
3797
+ --color-pine-700: var(--zabi-pine-300);
3798
+ --color-pine-800: var(--zabi-pine-200);
3799
+ --color-pine-900: var(--zabi-pine-100);
3800
+ --color-pine-950: var(--zabi-pine-50);
3801
+ --zabi-iris-50: #f4f4fa;
3802
+ --zabi-iris-100: #e9e9f7;
3803
+ --zabi-iris-200: #d6d6f0;
3804
+ --zabi-iris-300: #bdbde6;
3805
+ --zabi-iris-400: #a3a3d8;
3806
+ --zabi-iris-500: #6969b3;
3807
+ --zabi-iris-600: #58589e;
3808
+ --zabi-iris-700: #474788;
3809
+ --zabi-iris-800: #38386f;
3810
+ --zabi-iris-900: #2a2a56;
3811
+ --zabi-iris-950: #1b1b37;
3812
+ --color-iris-50: var(--zabi-iris-950);
3813
+ --color-iris-100: var(--zabi-iris-900);
3814
+ --color-iris-200: var(--zabi-iris-800);
3815
+ --color-iris-300: var(--zabi-iris-700);
3816
+ --color-iris-400: var(--zabi-iris-600);
3817
+ --color-iris-500: var(--zabi-iris-500);
3818
+ --color-iris-600: var(--zabi-iris-400);
3819
+ --color-iris-700: var(--zabi-iris-300);
3820
+ --color-iris-800: var(--zabi-iris-200);
3821
+ --color-iris-900: var(--zabi-iris-100);
3822
+ --color-iris-950: var(--zabi-iris-50);
3823
+ --zabi-warning-50: #fffbeb;
3824
+ --zabi-warning-100: #fef3c7;
3825
+ --zabi-warning-200: #fde68a;
3826
+ --zabi-warning-300: #fcd34d;
3827
+ --zabi-warning-400: #fbbf24;
3828
+ --zabi-warning-500: #f59e0b;
3829
+ --zabi-warning-600: #d97706;
3830
+ --zabi-warning-700: #b45309;
3831
+ --zabi-warning-800: #92400e;
3832
+ --zabi-warning-900: #78350f;
3833
+ --zabi-warning-950: #451a03;
3834
+ --color-warning-50: var(--zabi-warning-950);
3835
+ --color-warning-100: var(--zabi-warning-900);
3836
+ --color-warning-200: var(--zabi-warning-800);
3837
+ --color-warning-300: var(--zabi-warning-700);
3838
+ --color-warning-400: var(--zabi-warning-600);
3839
+ --color-warning-500: var(--zabi-warning-500);
3840
+ --color-warning-600: var(--zabi-warning-400);
3841
+ --color-warning-700: var(--zabi-warning-300);
3842
+ --color-warning-800: var(--zabi-warning-200);
3843
+ --color-warning-900: var(--zabi-warning-100);
3844
+ --color-warning-950: var(--zabi-warning-50);
3845
+ --zabi-error-50: #fef2f2;
3846
+ --zabi-error-100: #fee2e2;
3847
+ --zabi-error-200: #fecaca;
3848
+ --zabi-error-300: #fca5a5;
3849
+ --zabi-error-400: #f87171;
3850
+ --zabi-error-500: #ef4444;
3851
+ --zabi-error-600: #dc2626;
3852
+ --zabi-error-700: #b91c1c;
3853
+ --zabi-error-800: #991b1b;
3854
+ --zabi-error-900: #7f1d1d;
3855
+ --zabi-error-950: #450a0a;
3856
+ --color-error-50: var(--zabi-error-950);
3857
+ --color-error-100: var(--zabi-error-900);
3858
+ --color-error-200: var(--zabi-error-800);
3859
+ --color-error-300: var(--zabi-error-700);
3860
+ --color-error-400: var(--zabi-error-600);
3861
+ --color-error-500: var(--zabi-error-500);
3862
+ --color-error-600: var(--zabi-error-400);
3863
+ --color-error-700: var(--zabi-error-300);
3864
+ --color-error-800: var(--zabi-error-200);
3865
+ --color-error-900: var(--zabi-error-100);
3866
+ --color-error-950: var(--zabi-error-50);
3665
3867
  --color-base-50: #09090b;
3666
3868
  --color-base-75: #101013;
3667
3869
  --color-base-100: #18181b;
@@ -3697,35 +3899,13 @@ body {
3697
3899
  --color-input-hover: var(--color-base-300);
3698
3900
  --color-input-focus: var(--color-base-300);
3699
3901
  --color-input-disabled: var(--color-base-300);
3700
- --color-success: #49ad91;
3701
- --color-success-weak: #0C5D43;
3702
- --color-success-medium: #78c4ad;
3703
- --color-success-strong: #a7d9c9;
3704
- --color-warning: oklch(76.9% 0.188 70.08);
3705
- --color-warning-weak: oklch(66.6% 0.179 58.318);
3706
- --color-warning-medium: oklch(82.8% 0.189 84.429);
3707
- --color-warning-strong: oklch(87.9% 0.169 91.605);
3708
- --color-error: oklch(63.7% 0.237 25.331);
3709
- --color-error-weak: oklch(57.7% 0.245 27.325);
3710
- --color-error-medium: oklch(70.4% 0.191 22.216);
3711
- --color-error-strong: oklch(80.8% 0.114 19.571);
3712
- --color-energetic: #c7d460;
3713
- --color-energetic-weak: #bbbe64;
3714
- --color-energetic-medium: #d5e184;
3715
- --color-energetic-strong: #e4ecaa;
3716
- --color-info: #6969B3;
3717
- --color-info-weak: #58589e;
3718
- --color-info-active: #a3a3d8;
3719
- --color-info-medium: #a3a3d8;
3720
- --color-info-strong: #bdbde6;
3721
- --color-info-text: var(--color-info);
3722
3902
  --color-action-primary-text: var(--color-brand-50);
3723
- --color-action-danger: oklch(63.7% 0.237 25.331);
3724
- --color-action-danger-hover: oklch(57.7% 0.245 27.325);
3725
- --color-action-danger-active: oklch(50.5% 0.213 27.518);
3726
- --color-action-danger-disabled: oklch(50.5% 0.213 27.518);
3727
- --color-action-danger-subtle: oklch(25.8% 0.092 26.042);
3728
- --color-action-danger-subtle-hover: oklch(39.6% 0.141 25.723);
3903
+ --color-action-danger: #ef4444;
3904
+ --color-action-danger-hover: #dc2626;
3905
+ --color-action-danger-active: #b91c1c;
3906
+ --color-action-danger-disabled: #b91c1c;
3907
+ --color-action-danger-subtle: #450a0a;
3908
+ --color-action-danger-subtle-hover: #7f1d1d;
3729
3909
  --shadow-opacity: 0.3;
3730
3910
  --shadow-sm: 0 1px 3px 0 rgb(var(--shadow-color) / var(--shadow-opacity)), 0 1px 2px -1px rgb(var(--shadow-color) / var(--shadow-opacity));
3731
3911
  --shadow-md: 0 4px 6px -1px rgb(var(--shadow-color) / var(--shadow-opacity)), 0 2px 4px -2px rgb(var(--shadow-color) / var(--shadow-opacity));
@@ -0,0 +1,24 @@
1
+ # Lucide icons used by zabi-components
2
+
3
+ The package depends on `@lucide/svelte`. If your app **aliases** `@lucide/svelte` to a hand-authored barrel, re-export every icon the library imports, or drop the alias and use the real package (or per-icon paths only).
4
+
5
+ ## Packaged components (from the `zabi-components` build)
6
+
7
+ | Source | Import style | Icons |
8
+ |--------|--------------|--------|
9
+ | `CodeBlock` | Per-icon path | `check`, `copy` |
10
+ | `ThemeToggle` | Barrel | `Sun`, `Moon` |
11
+ | `ListItem` | Barrel | `ArrowRight` |
12
+ | `Badge` | Barrel | `Check`, `AlertTriangle`, `X`, `Info` |
13
+ | `ImageUpload` | Barrel | `Image` |
14
+ | `Input` | Barrel | `CheckCircle`, `AlertTriangle`, `AlertCircle` |
15
+ | `Select` | Barrel | `ChevronDown`, `CheckCircle`, `AlertTriangle`, `AlertCircle` |
16
+ | `SidebarPanel` | Barrel | `Search`, `X` |
17
+ | `SidebarAccountPanel` | Barrel | `LogOut`, `Moon`, `Sun`, `User` |
18
+ | `SidebarNavigation` | Barrel | `Command`, `Search` |
19
+
20
+ Showcase and demo routes under this repo import additional icons (e.g. `CircleQuestionMark`, `Heart`); those are **not** required for consumers who only install the library.
21
+
22
+ ## Typings for `@lucide/svelte/icons/*`
23
+
24
+ Some versions of `@lucide/svelte` ship per-icon `.d.ts` files that confuse certain TypeScript setups. The published package runs **`postinstall`** → `scripts/fix-lucide-svelte-icon-dts.js` (the script is included in the npm tarball). Keep install scripts enabled, or run that script manually after install if you use `--ignore-scripts`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zabi-components",
3
- "version": "7.0.0",
3
+ "version": "7.0.2",
4
4
  "description": "Svelte 5 UI components with TypeScript and Tailwind CSS v4. Accessible, easy to theme, works with SSR.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -62,7 +62,9 @@
62
62
  "README.md",
63
63
  "THEME.md",
64
64
  "THEMING.md",
65
- "docs/theme-imports.md"
65
+ "docs/theme-imports.md",
66
+ "docs/lucide-icons.md",
67
+ "scripts/fix-lucide-svelte-icon-dts.js"
66
68
  ],
67
69
  "keywords": [
68
70
  "svelte",
@@ -79,7 +81,7 @@
79
81
  "license": "MIT",
80
82
  "repository": {
81
83
  "type": "git",
82
- "url": "https://github.com/sabnor/zabi-components.git"
84
+ "url": "git+https://github.com/sabnor/zabi-components.git"
83
85
  },
84
86
  "scripts": {
85
87
  "dev": "vite dev",
@@ -122,7 +124,6 @@
122
124
  "@types/node": "^24.5.2",
123
125
  "@types/react": "^19.2.2",
124
126
  "autoprefixer": "^10.4.17",
125
- "baseline-browser-mapping": "^2.10.18",
126
127
  "culori": "^4.0.2",
127
128
  "jsdom": "^29.0.2",
128
129
  "postcss": "^8.4.35",
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @lucide/svelte (0.544.x) ships `dist/icons/*.svelte.d.ts` with a duplicate
4
+ * `type X = ReturnType<typeof X>` line that makes some TypeScript language
5
+ * services treat the file as a non-module; re-exports from the package root
6
+ * then fail (e.g. `Check` / `Copy` missing). Strip those lines after install.
7
+ */
8
+ import fs from "fs";
9
+ import path from "path";
10
+ import { fileURLToPath } from "url";
11
+
12
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
13
+ const iconsDir = path.join(__dirname, "..", "node_modules", "@lucide", "svelte", "dist", "icons");
14
+
15
+ const duplicateTypeLine = /\r?\ntype (\w+) = ReturnType<typeof \1>;\r?\n/g;
16
+
17
+ function fixFile(filePath) {
18
+ let text = fs.readFileSync(filePath, "utf8");
19
+ const next = text.replace(duplicateTypeLine, "\n");
20
+ if (next !== text) {
21
+ fs.writeFileSync(filePath, next);
22
+ }
23
+ }
24
+
25
+ function main() {
26
+ if (!fs.existsSync(iconsDir)) {
27
+ return;
28
+ }
29
+ for (const name of fs.readdirSync(iconsDir)) {
30
+ if (!name.endsWith(".svelte.d.ts")) continue;
31
+ fixFile(path.join(iconsDir, name));
32
+ }
33
+ }
34
+
35
+ main();