xertica-ui 1.2.1 → 1.2.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 (4) hide show
  1. package/bin/cli.ts +56 -0
  2. package/dist/cli.js +41 -0
  3. package/index.css +128 -212
  4. package/package.json +1 -1
package/bin/cli.ts CHANGED
@@ -287,6 +287,62 @@ program
287
287
  componentsToUpdate = response.selected;
288
288
  }
289
289
 
290
+
291
+
292
+ // --- Theme Update Logic ---
293
+ // Ask if user wants to update theme
294
+ const themeResponse = await prompts({
295
+ type: 'confirm',
296
+ name: 'updateTheme',
297
+ message: 'Do you want to update/change the project theme?',
298
+ initial: false
299
+ });
300
+
301
+ if (themeResponse.updateTheme) {
302
+ const themeSelection = await prompts({
303
+ type: 'select',
304
+ name: 'theme',
305
+ message: 'Select the new color theme:',
306
+ choices: colorThemes.map(t => ({
307
+ title: t.name,
308
+ description: t.description,
309
+ value: t.id
310
+ })),
311
+ initial: 0
312
+ });
313
+
314
+ if (themeSelection.theme) {
315
+ const spinnerTheme = ora('Updating theme...').start();
316
+ // 1. Update React Context
317
+ const contextPath = path.join(targetDir, 'contexts', 'BrandColorsContext.tsx');
318
+ if (await fs.pathExists(contextPath)) {
319
+ let content = await fs.readFile(contextPath, 'utf8');
320
+ // Replace existing default. We can try to find any string like "return saved || '...';"
321
+ // The regex needs to be robust to catch whatever is there currently.
322
+ // It might be 'xertica-original' or previously set 'rose', etc.
323
+ // Regex: /return saved \|\| '([a-zA-Z0-9-]+)';/
324
+ content = content.replace(
325
+ /return saved \|\| '([a-zA-Z0-9-]+)';/,
326
+ `return saved || '${themeSelection.theme}';`
327
+ );
328
+ await fs.writeFile(contextPath, content);
329
+ } else {
330
+ spinnerTheme.warn('BrandColorsContext.tsx not found. Skipping context update.');
331
+ }
332
+
333
+ // 2. Update styles/xertica/tokens.css
334
+ const tokensPath = path.join(targetDir, 'styles', 'xertica', 'tokens.css');
335
+ const selectedTheme = colorThemes.find(t => t.id === themeSelection.theme);
336
+
337
+ if (selectedTheme) {
338
+ await fs.ensureDir(path.dirname(tokensPath));
339
+ const newTokensCss = generateTokensCss(selectedTheme);
340
+ await fs.writeFile(tokensPath, newTokensCss);
341
+ }
342
+ spinnerTheme.succeed('Theme updated successfully!');
343
+ }
344
+ }
345
+
290
346
  const spinner = ora('Updating components...').start();
291
347
 
292
348
  try {
package/dist/cli.js CHANGED
@@ -713,6 +713,47 @@ program.command("update").description("Update components in your project").argum
713
713
  if (!response.selected) return;
714
714
  componentsToUpdate = response.selected;
715
715
  }
716
+ const themeResponse = await prompts({
717
+ type: "confirm",
718
+ name: "updateTheme",
719
+ message: "Do you want to update/change the project theme?",
720
+ initial: false
721
+ });
722
+ if (themeResponse.updateTheme) {
723
+ const themeSelection = await prompts({
724
+ type: "select",
725
+ name: "theme",
726
+ message: "Select the new color theme:",
727
+ choices: colorThemes.map((t) => ({
728
+ title: t.name,
729
+ description: t.description,
730
+ value: t.id
731
+ })),
732
+ initial: 0
733
+ });
734
+ if (themeSelection.theme) {
735
+ const spinnerTheme = ora("Updating theme...").start();
736
+ const contextPath = path.join(targetDir, "contexts", "BrandColorsContext.tsx");
737
+ if (await fs.pathExists(contextPath)) {
738
+ let content = await fs.readFile(contextPath, "utf8");
739
+ content = content.replace(
740
+ /return saved \|\| '([a-zA-Z0-9-]+)';/,
741
+ `return saved || '${themeSelection.theme}';`
742
+ );
743
+ await fs.writeFile(contextPath, content);
744
+ } else {
745
+ spinnerTheme.warn("BrandColorsContext.tsx not found. Skipping context update.");
746
+ }
747
+ const tokensPath = path.join(targetDir, "styles", "xertica", "tokens.css");
748
+ const selectedTheme = colorThemes.find((t) => t.id === themeSelection.theme);
749
+ if (selectedTheme) {
750
+ await fs.ensureDir(path.dirname(tokensPath));
751
+ const newTokensCss = generateTokensCss(selectedTheme);
752
+ await fs.writeFile(tokensPath, newTokensCss);
753
+ }
754
+ spinnerTheme.succeed("Theme updated successfully!");
755
+ }
756
+ }
716
757
  const spinner = ora("Updating components...").start();
717
758
  try {
718
759
  let updatedCount = 0;
package/index.css CHANGED
@@ -1,8 +1,14 @@
1
1
  @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700;800&display=swap");
2
+ @import './styles/xertica/tokens.css';
3
+
2
4
  /*! tailwindcss v4.1.3 | MIT License | https://tailwindcss.com */
3
5
  @layer properties {
4
6
  @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
5
- *, :before, :after, ::backdrop {
7
+
8
+ *,
9
+ :before,
10
+ :after,
11
+ ::backdrop {
6
12
  --tw-translate-x: 0;
7
13
  --tw-translate-y: 0;
8
14
  --tw-translate-z: 0;
@@ -68,7 +74,9 @@
68
74
  }
69
75
 
70
76
  @layer theme {
71
- :root, :host {
77
+
78
+ :root,
79
+ :host {
72
80
  --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
73
81
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
74
82
  --color-red-500: oklch(.637 .237 25.331);
@@ -98,8 +106,8 @@
98
106
  --font-weight-extrabold: var(--font-weight-extrabold);
99
107
  --leading-tight: 1.25;
100
108
  --leading-relaxed: 1.625;
101
- --radius-sm: calc(var(--radius) - 2px);
102
- --radius-lg: calc(var(--radius) + 6px);
109
+ --radius-sm: calc(var(--radius) - 2px);
110
+ --radius-lg: calc(var(--radius) + 6px);
103
111
  --radius-2xl: 1rem;
104
112
  --drop-shadow-sm: 0 1px 2px #00000026;
105
113
  --ease-in-out: cubic-bezier(.4, 0, .2, 1);
@@ -129,7 +137,11 @@
129
137
  }
130
138
 
131
139
  @layer base {
132
- *, :after, :before, ::backdrop {
140
+
141
+ *,
142
+ :after,
143
+ :before,
144
+ ::backdrop {
133
145
  box-sizing: border-box;
134
146
  border: 0 solid;
135
147
  margin: 0;
@@ -143,7 +155,8 @@
143
155
  padding: 0;
144
156
  }
145
157
 
146
- html, :host {
158
+ html,
159
+ :host {
147
160
  -webkit-text-size-adjust: 100%;
148
161
  tab-size: 4;
149
162
  line-height: 1.5;
@@ -168,7 +181,12 @@
168
181
  text-decoration: underline dotted;
169
182
  }
170
183
 
171
- h1, h2, h3, h4, h5, h6 {
184
+ h1,
185
+ h2,
186
+ h3,
187
+ h4,
188
+ h5,
189
+ h6 {
172
190
  font-size: inherit;
173
191
  font-weight: inherit;
174
192
  }
@@ -180,11 +198,15 @@
180
198
  text-decoration: inherit;
181
199
  }
182
200
 
183
- b, strong {
201
+ b,
202
+ strong {
184
203
  font-weight: bolder;
185
204
  }
186
205
 
187
- code, kbd, samp, pre {
206
+ code,
207
+ kbd,
208
+ samp,
209
+ pre {
188
210
  font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
189
211
  font-feature-settings: var(--default-mono-font-feature-settings, normal);
190
212
  font-variation-settings: var(--default-mono-font-variation-settings, normal);
@@ -195,7 +217,8 @@
195
217
  font-size: 80%;
196
218
  }
197
219
 
198
- sub, sup {
220
+ sub,
221
+ sup {
199
222
  vertical-align: baseline;
200
223
  font-size: 75%;
201
224
  line-height: 0;
@@ -228,21 +251,35 @@
228
251
  display: list-item;
229
252
  }
230
253
 
231
- ol, ul, menu {
254
+ ol,
255
+ ul,
256
+ menu {
232
257
  list-style: none;
233
258
  }
234
259
 
235
- img, svg, video, canvas, audio, iframe, embed, object {
260
+ img,
261
+ svg,
262
+ video,
263
+ canvas,
264
+ audio,
265
+ iframe,
266
+ embed,
267
+ object {
236
268
  vertical-align: middle;
237
269
  display: block;
238
270
  }
239
271
 
240
- img, video {
272
+ img,
273
+ video {
241
274
  max-width: 100%;
242
275
  height: auto;
243
276
  }
244
277
 
245
- button, input, select, optgroup, textarea {
278
+ button,
279
+ input,
280
+ select,
281
+ optgroup,
282
+ textarea {
246
283
  font: inherit;
247
284
  font-feature-settings: inherit;
248
285
  font-variation-settings: inherit;
@@ -348,7 +385,8 @@
348
385
  box-shadow: none;
349
386
  }
350
387
 
351
- button, input:where([type="button"], [type="reset"], [type="submit"]) {
388
+ button,
389
+ input:where([type="button"], [type="reset"], [type="submit"]) {
352
390
  appearance: button;
353
391
  }
354
392
 
@@ -559,31 +597,31 @@
559
597
  width: 100%;
560
598
  }
561
599
 
562
- @media (width >= 40rem) {
600
+ @media (width >=40rem) {
563
601
  .container {
564
602
  max-width: 40rem;
565
603
  }
566
604
  }
567
605
 
568
- @media (width >= 48rem) {
606
+ @media (width >=48rem) {
569
607
  .container {
570
608
  max-width: 48rem;
571
609
  }
572
610
  }
573
611
 
574
- @media (width >= 64rem) {
612
+ @media (width >=64rem) {
575
613
  .container {
576
614
  max-width: 64rem;
577
615
  }
578
616
  }
579
617
 
580
- @media (width >= 80rem) {
618
+ @media (width >=80rem) {
581
619
  .container {
582
620
  max-width: 80rem;
583
621
  }
584
622
  }
585
623
 
586
- @media (width >= 96rem) {
624
+ @media (width >=96rem) {
587
625
  .container {
588
626
  max-width: 96rem;
589
627
  }
@@ -1039,7 +1077,8 @@
1039
1077
  flex: 1;
1040
1078
  }
1041
1079
 
1042
- .flex-shrink-0, .shrink-0 {
1080
+ .flex-shrink-0,
1081
+ .shrink-0 {
1043
1082
  flex-shrink: 0;
1044
1083
  }
1045
1084
 
@@ -1338,7 +1377,7 @@
1338
1377
  }
1339
1378
 
1340
1379
  .rounded-lg {
1341
- border-radius: calc(var(--radius) + 6px);
1380
+ border-radius: calc(var(--radius) + 6px);
1342
1381
  }
1343
1382
 
1344
1383
  .rounded-md {
@@ -1346,11 +1385,11 @@
1346
1385
  }
1347
1386
 
1348
1387
  .rounded-sm {
1349
- border-radius: calc(var(--radius) - 2px);
1388
+ border-radius: calc(var(--radius) - 2px);
1350
1389
  }
1351
1390
 
1352
1391
  .rounded-xl {
1353
- border-radius: calc(var(--radius) + 12px);
1392
+ border-radius: calc(var(--radius) + 12px);
1354
1393
  }
1355
1394
 
1356
1395
  .border {
@@ -3095,23 +3134,23 @@
3095
3134
  grid-template-columns: 1fr auto;
3096
3135
  }
3097
3136
 
3098
- .has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has( > svg) {
3137
+ .has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(> svg) {
3099
3138
  grid-template-columns: calc(var(--spacing) * 4) 1fr;
3100
3139
  }
3101
3140
 
3102
- .has-\[\>svg\]\:gap-x-3:has( > svg) {
3141
+ .has-\[\>svg\]\:gap-x-3:has(> svg) {
3103
3142
  column-gap: calc(var(--spacing) * 3);
3104
3143
  }
3105
3144
 
3106
- .has-\[\>svg\]\:px-2\.5:has( > svg) {
3145
+ .has-\[\>svg\]\:px-2\.5:has(> svg) {
3107
3146
  padding-inline: calc(var(--spacing) * 2.5);
3108
3147
  }
3109
3148
 
3110
- .has-\[\>svg\]\:px-3:has( > svg) {
3149
+ .has-\[\>svg\]\:px-3:has(> svg) {
3111
3150
  padding-inline: calc(var(--spacing) * 3);
3112
3151
  }
3113
3152
 
3114
- .has-\[\>svg\]\:px-4:has( > svg) {
3153
+ .has-\[\>svg\]\:px-4:has(> svg) {
3115
3154
  padding-inline: calc(var(--spacing) * 4);
3116
3155
  }
3117
3156
 
@@ -3326,153 +3365,153 @@
3326
3365
  background-color: var(--muted);
3327
3366
  }
3328
3367
 
3329
- @media (width >= 40rem) {
3368
+ @media (width >=40rem) {
3330
3369
  .sm\:flex {
3331
3370
  display: flex;
3332
3371
  }
3333
3372
  }
3334
3373
 
3335
- @media (width >= 40rem) {
3374
+ @media (width >=40rem) {
3336
3375
  .sm\:p-4 {
3337
3376
  padding: calc(var(--spacing) * 4);
3338
3377
  }
3339
3378
  }
3340
3379
 
3341
- @media (width >= 40rem) {
3380
+ @media (width >=40rem) {
3342
3381
  .sm\:px-6 {
3343
3382
  padding-inline: calc(var(--spacing) * 6);
3344
3383
  }
3345
3384
  }
3346
3385
 
3347
- @media (width >= 48rem) {
3386
+ @media (width >=48rem) {
3348
3387
  .md\:fixed {
3349
3388
  position: fixed;
3350
3389
  }
3351
3390
  }
3352
3391
 
3353
- @media (width >= 48rem) {
3392
+ @media (width >=48rem) {
3354
3393
  .md\:inset-y-0 {
3355
3394
  inset-block: calc(var(--spacing) * 0);
3356
3395
  }
3357
3396
  }
3358
3397
 
3359
- @media (width >= 48rem) {
3398
+ @media (width >=48rem) {
3360
3399
  .md\:left-0 {
3361
3400
  left: calc(var(--spacing) * 0);
3362
3401
  }
3363
3402
  }
3364
3403
 
3365
- @media (width >= 48rem) {
3404
+ @media (width >=48rem) {
3366
3405
  .md\:block {
3367
3406
  display: block;
3368
3407
  }
3369
3408
  }
3370
3409
 
3371
- @media (width >= 48rem) {
3410
+ @media (width >=48rem) {
3372
3411
  .md\:hidden {
3373
3412
  display: none;
3374
3413
  }
3375
3414
  }
3376
3415
 
3377
- @media (width >= 48rem) {
3416
+ @media (width >=48rem) {
3378
3417
  .md\:w-64 {
3379
3418
  width: calc(var(--spacing) * 64);
3380
3419
  }
3381
3420
  }
3382
3421
 
3383
- @media (width >= 48rem) {
3422
+ @media (width >=48rem) {
3384
3423
  .md\:translate-x-0 {
3385
3424
  --tw-translate-x: calc(var(--spacing) * 0);
3386
3425
  translate: var(--tw-translate-x) var(--tw-translate-y);
3387
3426
  }
3388
3427
  }
3389
3428
 
3390
- @media (width >= 48rem) {
3429
+ @media (width >=48rem) {
3391
3430
  .md\:grid-cols-2 {
3392
3431
  grid-template-columns: repeat(2, minmax(0, 1fr));
3393
3432
  }
3394
3433
  }
3395
3434
 
3396
- @media (width >= 48rem) {
3435
+ @media (width >=48rem) {
3397
3436
  .md\:grid-cols-3 {
3398
3437
  grid-template-columns: repeat(3, minmax(0, 1fr));
3399
3438
  }
3400
3439
  }
3401
3440
 
3402
- @media (width >= 48rem) {
3441
+ @media (width >=48rem) {
3403
3442
  .md\:p-6 {
3404
3443
  padding: calc(var(--spacing) * 6);
3405
3444
  }
3406
3445
  }
3407
3446
 
3408
- @media (width >= 48rem) {
3447
+ @media (width >=48rem) {
3409
3448
  .md\:pr-20 {
3410
3449
  padding-right: calc(var(--spacing) * 20);
3411
3450
  }
3412
3451
  }
3413
3452
 
3414
- @media (width >= 48rem) {
3453
+ @media (width >=48rem) {
3415
3454
  .md\:pr-\[420px\] {
3416
3455
  padding-right: 420px;
3417
3456
  }
3418
3457
  }
3419
3458
 
3420
- @media (width >= 48rem) {
3459
+ @media (width >=48rem) {
3421
3460
  .md\:pl-20 {
3422
3461
  padding-left: calc(var(--spacing) * 20);
3423
3462
  }
3424
3463
  }
3425
3464
 
3426
- @media (width >= 48rem) {
3465
+ @media (width >=48rem) {
3427
3466
  .md\:pl-64 {
3428
3467
  padding-left: calc(var(--spacing) * 64);
3429
3468
  }
3430
3469
  }
3431
3470
 
3432
- @media (width >= 48rem) {
3471
+ @media (width >=48rem) {
3433
3472
  .md\:text-sm {
3434
3473
  font-size: var(--text-sm);
3435
3474
  line-height: var(--tw-leading, var(--text-sm--line-height));
3436
3475
  }
3437
3476
  }
3438
3477
 
3439
- @media (width >= 64rem) {
3478
+ @media (width >=64rem) {
3440
3479
  .lg\:flex {
3441
3480
  display: flex;
3442
3481
  }
3443
3482
  }
3444
3483
 
3445
- @media (width >= 64rem) {
3484
+ @media (width >=64rem) {
3446
3485
  .lg\:hidden {
3447
3486
  display: none;
3448
3487
  }
3449
3488
  }
3450
3489
 
3451
- @media (width >= 64rem) {
3490
+ @media (width >=64rem) {
3452
3491
  .lg\:w-1\/2 {
3453
3492
  width: 50%;
3454
3493
  }
3455
3494
  }
3456
3495
 
3457
- @media (width >= 64rem) {
3496
+ @media (width >=64rem) {
3458
3497
  .lg\:flex-1 {
3459
3498
  flex: 1;
3460
3499
  }
3461
3500
  }
3462
3501
 
3463
- @media (width >= 64rem) {
3502
+ @media (width >=64rem) {
3464
3503
  .lg\:flex-none {
3465
3504
  flex: none;
3466
3505
  }
3467
3506
  }
3468
3507
 
3469
- @media (width >= 64rem) {
3508
+ @media (width >=64rem) {
3470
3509
  .lg\:grid-cols-3 {
3471
3510
  grid-template-columns: repeat(3, minmax(0, 1fr));
3472
3511
  }
3473
3512
  }
3474
3513
 
3475
- @media (width >= 64rem) {
3514
+ @media (width >=64rem) {
3476
3515
  .lg\:px-8 {
3477
3516
  padding-inline: calc(var(--spacing) * 8);
3478
3517
  }
@@ -3633,71 +3672,71 @@
3633
3672
  padding-bottom: calc(var(--spacing) * 6);
3634
3673
  }
3635
3674
 
3636
- .\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\] > [role="checkbox"] {
3675
+ .\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role="checkbox"] {
3637
3676
  --tw-translate-y: 2px;
3638
3677
  translate: var(--tw-translate-x) var(--tw-translate-y);
3639
3678
  }
3640
3679
 
3641
- .\[\&\>svg\]\:pointer-events-none > svg {
3680
+ .\[\&\>svg\]\:pointer-events-none>svg {
3642
3681
  pointer-events: none;
3643
3682
  }
3644
3683
 
3645
- .\[\&\>svg\]\:size-3 > svg {
3684
+ .\[\&\>svg\]\:size-3>svg {
3646
3685
  width: calc(var(--spacing) * 3);
3647
3686
  height: calc(var(--spacing) * 3);
3648
3687
  }
3649
3688
 
3650
- .\[\&\>svg\]\:size-5 > svg {
3689
+ .\[\&\>svg\]\:size-5>svg {
3651
3690
  width: calc(var(--spacing) * 5);
3652
3691
  height: calc(var(--spacing) * 5);
3653
3692
  }
3654
3693
 
3655
- .\[\&\>svg\]\:translate-y-0\.5 > svg {
3694
+ .\[\&\>svg\]\:translate-y-0\.5>svg {
3656
3695
  --tw-translate-y: calc(var(--spacing) * .5);
3657
3696
  translate: var(--tw-translate-x) var(--tw-translate-y);
3658
3697
  }
3659
3698
 
3660
- .\[\&\>svg\]\:text-\[color\:var\(--chart-2\)\] > svg {
3699
+ .\[\&\>svg\]\:text-\[color\:var\(--chart-2\)\]>svg {
3661
3700
  color: var(--chart-2);
3662
3701
  }
3663
3702
 
3664
- .\[\&\>svg\]\:text-\[color\:var\(--chart-3\)\] > svg {
3703
+ .\[\&\>svg\]\:text-\[color\:var\(--chart-3\)\]>svg {
3665
3704
  color: var(--chart-3);
3666
3705
  }
3667
3706
 
3668
- .\[\&\>svg\]\:text-\[color\:var\(--chart-4\)\] > svg {
3707
+ .\[\&\>svg\]\:text-\[color\:var\(--chart-4\)\]>svg {
3669
3708
  color: var(--chart-4);
3670
3709
  }
3671
3710
 
3672
- .\[\&\>svg\]\:text-\[color\:var\(--destructive\)\] > svg {
3711
+ .\[\&\>svg\]\:text-\[color\:var\(--destructive\)\]>svg {
3673
3712
  color: var(--destructive);
3674
3713
  }
3675
3714
 
3676
- .\[\&\>svg\]\:text-\[color\:var\(--info\)\] > svg {
3715
+ .\[\&\>svg\]\:text-\[color\:var\(--info\)\]>svg {
3677
3716
  color: var(--info);
3678
3717
  }
3679
3718
 
3680
- .\[\&\>svg\]\:text-\[color\:var\(--success\)\] > svg {
3719
+ .\[\&\>svg\]\:text-\[color\:var\(--success\)\]>svg {
3681
3720
  color: var(--success);
3682
3721
  }
3683
3722
 
3684
- .\[\&\>svg\]\:text-\[color\:var\(--warning\)\] > svg {
3723
+ .\[\&\>svg\]\:text-\[color\:var\(--warning\)\]>svg {
3685
3724
  color: var(--warning);
3686
3725
  }
3687
3726
 
3688
- .\[\&\>svg\]\:text-current > svg {
3727
+ .\[\&\>svg\]\:text-current>svg {
3689
3728
  color: currentColor;
3690
3729
  }
3691
3730
 
3692
- .\[\&\>svg\]\:text-destructive > svg {
3731
+ .\[\&\>svg\]\:text-destructive>svg {
3693
3732
  color: var(--destructive);
3694
3733
  }
3695
3734
 
3696
- .\[\&\>svg\]\:text-muted-foreground > svg {
3735
+ .\[\&\>svg\]\:text-muted-foreground>svg {
3697
3736
  color: var(--muted-foreground);
3698
3737
  }
3699
3738
 
3700
- .\[\&\>tr\]\:last\:border-b-0 > tr:last-child {
3739
+ .\[\&\>tr\]\:last\:border-b-0>tr:last-child {
3701
3740
  border-bottom-style: var(--tw-border-style);
3702
3741
  border-bottom-width: 0;
3703
3742
  }
@@ -3751,138 +3790,7 @@
3751
3790
  }
3752
3791
  }
3753
3792
 
3754
- :root, :root[data-theme="default"] {
3755
- --xertica-primary: #2c275b;
3756
- --xertica-dark: #231d4f;
3757
- --background: #fff;
3758
- --foreground: #09090b;
3759
- --card: #fff;
3760
- --card-foreground: #09090b;
3761
- --popover: #fff;
3762
- --popover-foreground: #09090b;
3763
- --primary: var(--xertica-primary);
3764
- --primary-foreground: #fafafa;
3765
- --primary-light: #2c275b26;
3766
- --primary-light-foreground: #2c275b;
3767
- --secondary: #f4f4f5;
3768
- --secondary-foreground: #18181b;
3769
- --muted: #f4f4f5;
3770
- --muted-foreground: #71717a;
3771
- --accent: #f4f4f5;
3772
- --accent-foreground: #18181b;
3773
- --destructive: #ef4444;
3774
- --destructive-foreground: #fafafa;
3775
- --border: #e4e4e7;
3776
- --input: #f4f4f580;
3777
- --input-background: #f4f4f580;
3778
- --ring: #a1a1aa;
3779
- --sidebar: #2c275b;
3780
- --sidebar-foreground: #fafafa;
3781
- --sidebar-primary: #fff;
3782
- --sidebar-primary-foreground: #09090b;
3783
- --sidebar-accent: #f4f4f5;
3784
- --sidebar-accent-foreground: #18181b;
3785
- --sidebar-border: #413d6b;
3786
- --sidebar-ring: #a1a1aa;
3787
- --chart-1: #2c275b;
3788
- --chart-2: #059669;
3789
- --chart-3: #f59e0b;
3790
- --chart-4: #2563eb;
3791
- --chart-5: #ef4444;
3792
- --gradient-diagonal: linear-gradient(135deg, #fdb0f2 0%, #72cdfd 100%);
3793
- --radius: 6px;
3794
- --radius-button: 12px;
3795
- --radius-card: 12px;
3796
- --elevation-sm: 0px 0px 48px 0px #0000001a;
3797
- --font-size: 16px;
3798
- --text-h1: 2rem;
3799
- --text-h2: 1.75rem;
3800
- --text-h3: 1.5rem;
3801
- --text-h4: 1.25rem;
3802
- --text-base: 1rem;
3803
- --text-p: .875rem;
3804
- --text-label: .875rem;
3805
- --text-small: .875rem;
3806
- --text-xs: .75rem;
3807
- --text-muted: .875rem;
3808
- --text-stats: 2.25rem;
3809
- --text-table-head: 1.25rem;
3810
- --font-weight-regular: 400;
3811
- --font-weight-medium: 500;
3812
- --font-weight-semibold: 600;
3813
- --font-weight-bold: 700;
3814
- --font-weight-extrabold: 800;
3815
- --spacing-1: .25rem;
3816
- --spacing-2: .5rem;
3817
- --spacing-3: .75rem;
3818
- --spacing-4: 1rem;
3819
- --spacing-5: 1.25rem;
3820
- --spacing-6: 1.5rem;
3821
- --spacing-8: 2rem;
3822
- --cell-size: 2.5rem;
3823
- --cell-radius: var(--radius);
3824
- --calendar-caption-size: 15px;
3825
- --calendar-weekday-size: 12px;
3826
- --calendar-day-size: 14px;
3827
- --toast-success-bg: #dcfce7;
3828
- --toast-success-border: #059669;
3829
- --toast-success-icon: #059669;
3830
- --toast-warning-bg: #fef3c7;
3831
- --toast-warning-border: #f59e0b;
3832
- --toast-warning-icon: #f59e0b;
3833
- --toast-info-bg: #dbeafe;
3834
- --toast-info-border: #2563eb;
3835
- --toast-info-icon: #2563eb;
3836
- --toast-error-bg: #fee2e2;
3837
- --toast-error-border: #ef4444;
3838
- --toast-error-icon: #ef4444;
3839
- }
3840
-
3841
- :root[data-mode="dark"], .dark {
3842
- --xertica-primary: #2c275b;
3843
- --background: #050505;
3844
- --foreground: #fafafa;
3845
- --card: #141416;
3846
- --card-foreground: #fafafa;
3847
- --popover: #141416;
3848
- --popover-foreground: #fafafa;
3849
- --primary-foreground: #fafafa;
3850
- --primary-light: #2c275b26;
3851
- --primary-light-foreground: #2c275b;
3852
- --secondary: #27272a;
3853
- --secondary-foreground: #fafafa;
3854
- --muted: #27272a;
3855
- --muted-foreground: #a1a1aa;
3856
- --accent: #27272a;
3857
- --accent-foreground: #fafafa;
3858
- --destructive: #ef4444;
3859
- --destructive-foreground: #fafafa;
3860
- --border: #3f3f46;
3861
- --input: #27272a80;
3862
- --input-background: #27272a80;
3863
- --ring: #71717a;
3864
- --elevation-sm: 0px 0px 48px 0px #0000004d;
3865
- --sidebar-foreground: #fafafa;
3866
- --sidebar-primary: #fff;
3867
- --sidebar-primary-foreground: #09090b;
3868
- --sidebar-accent: #3f3f46;
3869
- --sidebar-accent-foreground: #fafafa;
3870
- --sidebar-border: #413d6b;
3871
- --sidebar-ring: #a1a1aa;
3872
- --gradient-diagonal: linear-gradient(135deg, #7b4a7a 0%, #3a5c7d 100%);
3873
- --toast-success-bg: #064e3b;
3874
- --toast-success-border: #22c55e;
3875
- --toast-success-icon: #22c55e;
3876
- --toast-warning-bg: #713f12;
3877
- --toast-warning-border: #fbbf24;
3878
- --toast-warning-icon: #fbbf24;
3879
- --toast-info-bg: #1e3a8a;
3880
- --toast-info-border: #60a5fa;
3881
- --toast-info-icon: #60a5fa;
3882
- --toast-error-bg: #7f1d1d;
3883
- --toast-error-border: #f87171;
3884
- --toast-error-icon: #f87171;
3885
- }
3793
+ /* Colors are now managed by styles/xertica/tokens.css */
3886
3794
 
3887
3795
  [data-sonner-toast] {
3888
3796
  border-radius: var(--radius) !important;
@@ -3971,7 +3879,8 @@
3971
3879
  padding-bottom: var(--spacing-2) !important;
3972
3880
  }
3973
3881
 
3974
- .gm-style .gm-style-iw-c .gm-style-iw-d .poi-info-window, .gm-style .gm-style-iw-c .gm-style-iw-d .transit-container {
3882
+ .gm-style .gm-style-iw-c .gm-style-iw-d .poi-info-window,
3883
+ .gm-style .gm-style-iw-c .gm-style-iw-d .transit-container {
3975
3884
  padding: var(--spacing-4) !important;
3976
3885
  padding-top: 0 !important;
3977
3886
  }
@@ -3991,7 +3900,7 @@
3991
3900
  background-color: var(--accent) !important;
3992
3901
  }
3993
3902
 
3994
- .gm-style .gm-ui-hover-effect > span {
3903
+ .gm-style .gm-ui-hover-effect>span {
3995
3904
  background-color: var(--foreground) !important;
3996
3905
  width: 14px !important;
3997
3906
  height: 14px !important;
@@ -4009,34 +3918,41 @@
4009
3918
  font-family: Roboto, sans-serif !important;
4010
3919
  }
4011
3920
 
4012
- .xertica-infowindow-content *, .gm-style .gm-style-iw-c * {
3921
+ .xertica-infowindow-content *,
3922
+ .gm-style .gm-style-iw-c * {
4013
3923
  font-family: Roboto, sans-serif !important;
4014
3924
  }
4015
3925
 
4016
- [data-chat-message-container] .break-words img, [data-chat-message-container] .overflow-wrap-anywhere img {
3926
+ [data-chat-message-container] .break-words img,
3927
+ [data-chat-message-container] .overflow-wrap-anywhere img {
4017
3928
  max-width: 100%;
4018
3929
  height: auto;
4019
3930
  }
4020
3931
 
4021
- [data-chat-message-container] .break-words pre, [data-chat-message-container] .overflow-wrap-anywhere pre {
3932
+ [data-chat-message-container] .break-words pre,
3933
+ [data-chat-message-container] .overflow-wrap-anywhere pre {
4022
3934
  white-space: pre-wrap;
4023
3935
  word-wrap: break-word;
4024
3936
  max-width: 100%;
4025
3937
  overflow-x: auto;
4026
3938
  }
4027
3939
 
4028
- [data-chat-message-container] .break-words table, [data-chat-message-container] .overflow-wrap-anywhere table {
3940
+ [data-chat-message-container] .break-words table,
3941
+ [data-chat-message-container] .overflow-wrap-anywhere table {
4029
3942
  max-width: 100%;
4030
3943
  display: block;
4031
3944
  overflow-x: auto;
4032
3945
  }
4033
3946
 
4034
- [data-chat-message-container] .break-words > *, [data-chat-message-container] .overflow-hidden > * {
3947
+ [data-chat-message-container] .break-words>*,
3948
+ [data-chat-message-container] .overflow-hidden>* {
4035
3949
  box-sizing: border-box;
4036
3950
  max-width: 100%;
4037
3951
  }
4038
3952
 
4039
- [data-chat-message-container] audio, [data-chat-message-container] video, [data-chat-message-container] iframe {
3953
+ [data-chat-message-container] audio,
3954
+ [data-chat-message-container] video,
3955
+ [data-chat-message-container] iframe {
4040
3956
  width: 100%;
4041
3957
  max-width: 100%;
4042
3958
  }
@@ -4056,7 +3972,7 @@
4056
3972
  box-sizing: border-box;
4057
3973
  }
4058
3974
 
4059
- [data-chat-message-container] > div {
3975
+ [data-chat-message-container]>div {
4060
3976
  max-width: 100%;
4061
3977
  overflow-x: hidden;
4062
3978
  }
@@ -4445,4 +4361,4 @@
4445
4361
  opacity: var(--tw-exit-opacity, 1);
4446
4362
  transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));
4447
4363
  }
4448
- }
4364
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xertica-ui",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
4
4
  "description": "Xertica UI - Design System completo com componentes React e Tailwind CSS",
5
5
  "type": "module",
6
6
  "bin": "./dist/cli.js",