@nexus-cross/design-system 1.0.0 → 1.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.
Files changed (82) hide show
  1. package/cursor-rules/nexus-project-setup.mdc +150 -150
  2. package/cursor-rules/nexus-ui-api.mdc +659 -316
  3. package/cursor-rules/nexus-ui-components.mdc +162 -96
  4. package/dist/chunks/chunk-55IEEVNR.js +7 -0
  5. package/dist/chunks/{chunk-D6FII7HW.js → chunk-BBLBTOP4.js} +8 -5
  6. package/dist/chunks/{chunk-5JHN4FCY.mjs → chunk-K2TBLM3F.mjs} +1 -4
  7. package/dist/chunks/{chunk-MTX7GD3H.js → chunk-PEIEVKD5.js} +1 -4
  8. package/dist/chunks/{chunk-54RBL7J4.mjs → chunk-UKRU46PH.mjs} +8 -5
  9. package/dist/chunks/chunk-XMG7ZEYY.mjs +5 -0
  10. package/dist/data-list.js +2 -2
  11. package/dist/data-list.mjs +1 -1
  12. package/dist/error-boundary.d.mts +1 -1
  13. package/dist/error-boundary.d.ts +1 -1
  14. package/dist/index.js +5 -5
  15. package/dist/index.mjs +2 -2
  16. package/dist/schemas/_all.json +870 -373
  17. package/dist/schemas/accordion.json +12 -12
  18. package/dist/schemas/avatar.json +9 -9
  19. package/dist/schemas/button.json +27 -9
  20. package/dist/schemas/carousel.json +6 -6
  21. package/dist/schemas/carouselButton.json +3 -3
  22. package/dist/schemas/carouselDots.json +2 -2
  23. package/dist/schemas/carouselSlide.json +3 -3
  24. package/dist/schemas/checkBox.json +28 -10
  25. package/dist/schemas/chip.json +13 -7
  26. package/dist/schemas/clientOnly.json +3 -3
  27. package/dist/schemas/countdown.json +8 -8
  28. package/dist/schemas/counter.json +13 -10
  29. package/dist/schemas/dataList.json +10 -10
  30. package/dist/schemas/divider.json +8 -5
  31. package/dist/schemas/drawer.json +22 -3
  32. package/dist/schemas/drawerClose.json +24 -0
  33. package/dist/schemas/drawerContent.json +7 -7
  34. package/dist/schemas/drawerDescription.json +20 -0
  35. package/dist/schemas/drawerTitle.json +20 -0
  36. package/dist/schemas/drawerTrigger.json +24 -0
  37. package/dist/schemas/ellipsis.json +9 -9
  38. package/dist/schemas/errorBoundary.json +4 -4
  39. package/dist/schemas/infiniteScroll.json +12 -12
  40. package/dist/schemas/marquee.json +10 -7
  41. package/dist/schemas/modalCall.json +81 -3
  42. package/dist/schemas/modalTemplate.json +28 -25
  43. package/dist/schemas/numberInput.json +32 -14
  44. package/dist/schemas/pagination.json +8 -8
  45. package/dist/schemas/popover.json +12 -12
  46. package/dist/schemas/radioGroup.json +17 -10
  47. package/dist/schemas/radioItem.json +12 -5
  48. package/dist/schemas/select.json +11 -11
  49. package/dist/schemas/selectItem.json +5 -5
  50. package/dist/schemas/skeleton.json +10 -7
  51. package/dist/schemas/spinner.json +11 -4
  52. package/dist/schemas/switch.json +18 -7
  53. package/dist/schemas/tab.json +15 -15
  54. package/dist/schemas/table.json +14 -14
  55. package/dist/schemas/tableRow.json +5 -5
  56. package/dist/schemas/tdColumn.json +17 -17
  57. package/dist/schemas/textArea.json +42 -9
  58. package/dist/schemas/textInput.json +55 -15
  59. package/dist/schemas/themeProvider.json +10 -10
  60. package/dist/schemas/toastOptions.json +81 -0
  61. package/dist/schemas/toaster.json +48 -3
  62. package/dist/schemas/tooltip.json +10 -10
  63. package/dist/schemas/virtualGrid.json +19 -16
  64. package/dist/schemas/virtualList.json +12 -9
  65. package/dist/schemas.d.mts +420 -56
  66. package/dist/schemas.d.ts +420 -56
  67. package/dist/schemas.js +502 -367
  68. package/dist/schemas.mjs +498 -368
  69. package/dist/styles/layer.js +2 -2
  70. package/dist/styles/layer.mjs +1 -1
  71. package/dist/styles.css +56 -45
  72. package/dist/styles.js +2 -2
  73. package/dist/styles.layered.css +56 -45
  74. package/dist/styles.mjs +1 -1
  75. package/dist/text-input.d.mts +1 -1
  76. package/dist/text-input.d.ts +1 -1
  77. package/dist/text-input.js +3 -3
  78. package/dist/text-input.mjs +1 -1
  79. package/package.json +8 -6
  80. package/scripts/setup-cursor-rules.cjs +6 -6
  81. package/dist/chunks/chunk-7AISZYWL.js +0 -7
  82. package/dist/chunks/chunk-V5OTJP6H.mjs +0 -5
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk7AISZYWL_js = require('../chunks/chunk-7AISZYWL.js');
3
+ var chunk55IEEVNR_js = require('../chunks/chunk-55IEEVNR.js');
4
4
  require('../chunks/chunk-JNMCYWGY.js');
5
5
 
6
6
  // src/styles/inject-layer.ts
@@ -9,7 +9,7 @@ var __nexus_styles_injected__ = typeof document !== "undefined" && !document.get
9
9
  const style = document.createElement("style");
10
10
  style.id = STYLE_ID;
11
11
  style.textContent = `@layer nexus {
12
- ${chunk7AISZYWL_js.built_default}
12
+ ${chunk55IEEVNR_js.built_default}
13
13
  }`;
14
14
  document.head.appendChild(style);
15
15
  return true;
@@ -1,4 +1,4 @@
1
- import { built_default } from '../chunks/chunk-V5OTJP6H.mjs';
1
+ import { built_default } from '../chunks/chunk-XMG7ZEYY.mjs';
2
2
  import '../chunks/chunk-CVYXRSXT.mjs';
3
3
 
4
4
  // src/styles/inject-layer.ts
package/dist/styles.css CHANGED
@@ -54,7 +54,7 @@
54
54
  --color-comp-btn-danger-base: var(--color-status-danger);
55
55
  --color-comp-btn-danger-hover: var(--color-status-danger-hover);
56
56
  --color-comp-btn-danger-pressed: var(--color-status-danger-pressed);
57
- --color-comp-btn-danger-on: var(--color-static-white, #fff);
57
+ --color-comp-btn-danger-on: var(--color-static-white);
58
58
  --color-comp-btn-danger-text: var(
59
59
  --color-status-danger-intense,
60
60
  var(--color-status-danger)
@@ -88,6 +88,19 @@
88
88
  /* ── Button: Misc ── */
89
89
  --shadow-comp-btn: none;
90
90
  --opacity-comp-btn-disabled: 0.5;
91
+
92
+ /* ── Shared: Shadow ── */
93
+ --shadow-comp-sm: var(--shadow-elevation-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));
94
+ --shadow-comp-md: var(--shadow-elevation-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));
95
+ --shadow-comp-lg: var(--shadow-elevation-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
96
+
97
+ /* ── Shared: Overlay ── */
98
+ --color-comp-overlay: var(--color-overlay-dim, rgba(0, 0, 0, 0.6));
99
+
100
+ /* ── ErrorBoundary ── */
101
+ --color-comp-error-border: var(--color-status-danger);
102
+ --color-comp-error-bg: var(--color-status-danger-bg, #fef2f2);
103
+ --color-comp-error-text: var(--color-status-danger-intense, #991b1b);
91
104
  }
92
105
 
93
106
  /* ═══════════════════════════════════════════
@@ -311,11 +324,12 @@
311
324
  .nexus-text-input-field {
312
325
  display: flex;
313
326
  flex-direction: column;
314
- gap: 0.375rem;
327
+ gap: 0.25rem;
315
328
  }
316
329
  .nexus-text-input-field__label {
317
- font-size: var(--text-text-xs, 0.75rem);
318
- color: var(--color-text-secondary);
330
+ font-size: var(--text-text-sm, 0.875rem);
331
+ font-weight: 600;
332
+ color: var(--color-text-muted);
319
333
  line-height: 1;
320
334
  }
321
335
  .nexus-text-input-field__footer {
@@ -325,15 +339,16 @@
325
339
  }
326
340
  .nexus-text-input-field__description {
327
341
  font-size: var(--text-text-xs, 0.75rem);
328
- color: var(--color-text-tertiary);
329
- line-height: 1.4;
342
+ color: var(--color-text-muted);
343
+ line-height: 1.5;
344
+ letter-spacing: -0.12px;
330
345
  }
331
346
  .nexus-text-input-field__description--error {
332
347
  color: var(--color-status-danger);
333
348
  }
334
349
  .nexus-text-input-field__count {
335
350
  font-size: var(--text-text-xs, 0.75rem);
336
- color: var(--color-text-tertiary);
351
+ color: var(--color-text-muted);
337
352
  margin-left: auto;
338
353
  flex-shrink: 0;
339
354
  }
@@ -346,10 +361,12 @@
346
361
  display: flex;
347
362
  align-items: center;
348
363
  gap: 0.5rem;
349
- border-radius: var(--radius-corner-md, 0.375rem);
364
+ border-radius: var(--radius-corner-md, 0.5rem);
350
365
  border: 1px solid var(--color-border-default);
351
366
  background: var(--color-surface-default);
352
367
  font-size: var(--text-text-sm, 0.875rem);
368
+ font-weight: 500;
369
+ line-height: 1;
353
370
  color: var(--color-text-primary);
354
371
  transition: border-color 200ms, box-shadow 200ms;
355
372
  }
@@ -357,7 +374,8 @@
357
374
  width: 100%;
358
375
  }
359
376
  .nexus-text-input:hover:not(.nexus-text-input--disabled):not(:focus-within) {
360
- box-shadow: 0 0 0 0.5px var(--color-border-default);
377
+ border-color: var(--color-border-default-hover);
378
+ box-shadow: 0 0 0 0.5px var(--color-border-default-hover);
361
379
  }
362
380
  .nexus-text-input--default:focus-within {
363
381
  border-color: var(--color-accent-primary);
@@ -372,36 +390,30 @@
372
390
  }
373
391
  .nexus-text-input--disabled {
374
392
  cursor: not-allowed;
375
- opacity: 0.5;
393
+ background: var(--color-surface-strong);
394
+ border-color: var(--color-border-medium);
395
+ color: var(--color-text-muted);
376
396
  }
377
397
 
378
398
  /* ── Sizes ── */
379
399
  .nexus-text-input--xl {
380
- height: 3.5rem;
381
- padding-inline: var(--spacing-padding-lg, 1.25rem);
400
+ padding: calc(var(--spacing-padding-md, 1rem) - 1px) var(--spacing-padding-md, 1rem);
382
401
  font-size: var(--text-text-base, 1rem);
383
402
  }
384
403
  .nexus-text-input--lg {
385
- height: 3rem;
386
- padding-inline: var(--spacing-padding-md, 1rem);
404
+ padding: calc(var(--spacing-padding-sm, 0.75rem) - 1px) var(--spacing-padding-sm, 0.75rem);
387
405
  font-size: var(--text-text-base, 1rem);
388
406
  }
389
407
  .nexus-text-input--md {
390
- height: 2.5rem;
391
- padding-inline: var(--spacing-padding-sm, 0.75rem);
408
+ padding: calc(var(--spacing-padding-xs, 0.5rem) - 1px) var(--spacing-padding-sm, 0.75rem);
392
409
  font-size: var(--text-text-sm, 0.875rem);
393
410
  }
394
- .nexus-text-input--sm {
395
- height: 2rem;
396
- padding-inline: 0.625rem;
397
- font-size: var(--text-text-xs, 0.75rem);
398
- }
399
411
 
400
412
  /* ── Inner elements ── */
401
413
  .nexus-text-input__inner {
402
414
  flex: 1;
403
415
  min-width: 0;
404
- height: 100%;
416
+ padding: 0;
405
417
  background: transparent;
406
418
  border: none;
407
419
  outline: none;
@@ -412,31 +424,30 @@
412
424
  outline: none;
413
425
  }
414
426
  .nexus-text-input__inner::placeholder {
415
- color: var(--color-text-tertiary);
427
+ color: var(--color-text-muted);
416
428
  }
417
429
  .nexus-text-input__icon {
418
430
  display: flex;
419
431
  flex-shrink: 0;
420
- color: var(--color-text-tertiary);
432
+ color: var(--color-text-muted);
421
433
  }
422
434
  .nexus-text-input__clear {
423
435
  display: flex;
424
436
  align-items: center;
425
437
  justify-content: center;
426
438
  flex-shrink: 0;
427
- width: 1.25rem;
428
- height: 1.25rem;
439
+ width: 1rem;
440
+ height: 1rem;
429
441
  border: none;
430
442
  background: transparent;
431
- color: var(--color-text-tertiary);
443
+ color: var(--color-text-muted);
432
444
  cursor: pointer;
433
445
  padding: 0;
434
- border-radius: var(--radius-corner-full, 9999px);
435
- transition: color 150ms, background-color 150ms;
446
+ transition: color 150ms;
436
447
  }
437
448
  .nexus-text-input__clear:hover {
438
- color: var(--color-text-secondary);
439
- background-color: var(--color-surface-hover, rgba(0, 0, 0, 0.06));
449
+ color: var(--color-icon-tertiary-hover);
450
+ background: transparent;
440
451
  }
441
452
 
442
453
  /* ═══════════════════════════════════════════
@@ -737,8 +748,8 @@
737
748
  pointer-events: none;
738
749
  display: block;
739
750
  border-radius: 9999px;
740
- background: #fff;
741
- box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
751
+ background: var(--color-static-white);
752
+ box-shadow: var(--shadow-comp-sm);
742
753
  transition-property: transform;
743
754
  transition-duration: 200ms;
744
755
  }
@@ -813,7 +824,7 @@
813
824
  .nexus-checkbox__box--checked {
814
825
  border-color: var(--color-accent-primary);
815
826
  background: var(--color-accent-primary);
816
- color: #fff;
827
+ color: var(--color-static-white);
817
828
  }
818
829
  .nexus-checkbox__box--unchecked {
819
830
  border-color: var(--color-border-default);
@@ -1027,7 +1038,7 @@
1027
1038
  }
1028
1039
  .nexus-page-btn--active {
1029
1040
  background: var(--color-accent-primary);
1030
- color: #fff;
1041
+ color: var(--color-static-white);
1031
1042
  border-color: var(--color-accent-primary);
1032
1043
  }
1033
1044
  .nexus-page-btn--inactive {
@@ -1097,7 +1108,7 @@
1097
1108
  .nexus-tab-trigger--pill-active {
1098
1109
  color: var(--color-text-primary);
1099
1110
  background: var(--color-surface-default);
1100
- box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
1111
+ box-shadow: var(--shadow-comp-sm);
1101
1112
  }
1102
1113
  .nexus-tab-trigger--sm {
1103
1114
  font-size: var(--text-text-xs, 0.75rem);
@@ -1152,9 +1163,9 @@
1152
1163
  .nexus-error-boundary {
1153
1164
  padding: 1rem;
1154
1165
  border-radius: var(--radius-corner-lg, 0.5rem);
1155
- border: 1px solid var(--color-status-danger, #ef4444);
1156
- background: var(--color-bg-negative, #fef2f2);
1157
- color: var(--color-text-negative, #991b1b);
1166
+ border: 1px solid var(--color-comp-error-border);
1167
+ background: var(--color-comp-error-bg);
1168
+ color: var(--color-comp-error-text);
1158
1169
  font-size: var(--text-text-sm, 0.875rem);
1159
1170
  }
1160
1171
  .nexus-error-boundary__title {
@@ -1333,7 +1344,7 @@
1333
1344
  border-radius: var(--radius-corner-sm, 0.25rem);
1334
1345
  border: 1px solid var(--color-border-default);
1335
1346
  background: var(--color-surface-default);
1336
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
1347
+ box-shadow: var(--shadow-comp-lg);
1337
1348
  transform-origin: top center;
1338
1349
  will-change: transform, opacity;
1339
1350
  }
@@ -1408,7 +1419,7 @@
1408
1419
  border: 1px solid var(--color-border-default);
1409
1420
  background: var(--color-static-white);
1410
1421
  color: var(--color-static-black);
1411
- box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
1422
+ box-shadow: var(--shadow-comp-md);
1412
1423
  }
1413
1424
  .nexus-tooltip--dark {
1414
1425
  border: none;
@@ -1434,7 +1445,7 @@
1434
1445
  border-radius: var(--radius-corner-lg, 0.5rem);
1435
1446
  border: 1px solid var(--color-border-default);
1436
1447
  padding: var(--spacing-padding-md, 1rem);
1437
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
1448
+ box-shadow: var(--shadow-comp-lg);
1438
1449
  outline: none;
1439
1450
  background: var(--color-surface-default);
1440
1451
  color: var(--color-text-primary);
@@ -1467,7 +1478,7 @@
1467
1478
  position: fixed;
1468
1479
  inset: 0;
1469
1480
  z-index: 50;
1470
- background: rgba(0, 0, 0, 0.6);
1481
+ background: var(--color-comp-overlay);
1471
1482
  }
1472
1483
  .nexus-drawer-overlay--blur-sm {
1473
1484
  backdrop-filter: blur(4px);
@@ -1662,7 +1673,7 @@
1662
1673
  border-radius: 9999px;
1663
1674
  background: var(--color-surface-default);
1664
1675
  border: 1px solid var(--color-border-default);
1665
- box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
1676
+ box-shadow: var(--shadow-comp-sm);
1666
1677
  color: var(--color-text-primary);
1667
1678
  transition-property: background-color;
1668
1679
  transition-duration: 150ms;
@@ -1718,7 +1729,7 @@
1718
1729
  border-radius: var(--radius-corner-lg, 0.5rem);
1719
1730
  border: 1px solid var(--color-border-default);
1720
1731
  padding: var(--spacing-padding-sm, 0.75rem) var(--spacing-padding-md, 1rem);
1721
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
1732
+ box-shadow: var(--shadow-comp-lg);
1722
1733
  background: var(--color-surface-default);
1723
1734
  color: var(--color-text-primary);
1724
1735
  }
package/dist/styles.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk7AISZYWL_js = require('./chunks/chunk-7AISZYWL.js');
3
+ var chunk55IEEVNR_js = require('./chunks/chunk-55IEEVNR.js');
4
4
  require('./chunks/chunk-JNMCYWGY.js');
5
5
 
6
6
  // src/styles/inject.ts
@@ -8,7 +8,7 @@ var STYLE_ID = "__nexus-ds__";
8
8
  var __nexus_styles_injected__ = typeof document !== "undefined" && !document.getElementById(STYLE_ID) ? (() => {
9
9
  const style = document.createElement("style");
10
10
  style.id = STYLE_ID;
11
- style.textContent = chunk7AISZYWL_js.built_default;
11
+ style.textContent = chunk55IEEVNR_js.built_default;
12
12
  document.head.appendChild(style);
13
13
  return true;
14
14
  })() : false;
@@ -55,7 +55,7 @@
55
55
  --color-comp-btn-danger-base: var(--color-status-danger);
56
56
  --color-comp-btn-danger-hover: var(--color-status-danger-hover);
57
57
  --color-comp-btn-danger-pressed: var(--color-status-danger-pressed);
58
- --color-comp-btn-danger-on: var(--color-static-white, #fff);
58
+ --color-comp-btn-danger-on: var(--color-static-white);
59
59
  --color-comp-btn-danger-text: var(
60
60
  --color-status-danger-intense,
61
61
  var(--color-status-danger)
@@ -89,6 +89,19 @@
89
89
  /* ── Button: Misc ── */
90
90
  --shadow-comp-btn: none;
91
91
  --opacity-comp-btn-disabled: 0.5;
92
+
93
+ /* ── Shared: Shadow ── */
94
+ --shadow-comp-sm: var(--shadow-elevation-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));
95
+ --shadow-comp-md: var(--shadow-elevation-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));
96
+ --shadow-comp-lg: var(--shadow-elevation-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
97
+
98
+ /* ── Shared: Overlay ── */
99
+ --color-comp-overlay: var(--color-overlay-dim, rgba(0, 0, 0, 0.6));
100
+
101
+ /* ── ErrorBoundary ── */
102
+ --color-comp-error-border: var(--color-status-danger);
103
+ --color-comp-error-bg: var(--color-status-danger-bg, #fef2f2);
104
+ --color-comp-error-text: var(--color-status-danger-intense, #991b1b);
92
105
  }
93
106
 
94
107
  /* ═══════════════════════════════════════════
@@ -312,11 +325,12 @@
312
325
  .nexus-text-input-field {
313
326
  display: flex;
314
327
  flex-direction: column;
315
- gap: 0.375rem;
328
+ gap: 0.25rem;
316
329
  }
317
330
  .nexus-text-input-field__label {
318
- font-size: var(--text-text-xs, 0.75rem);
319
- color: var(--color-text-secondary);
331
+ font-size: var(--text-text-sm, 0.875rem);
332
+ font-weight: 600;
333
+ color: var(--color-text-muted);
320
334
  line-height: 1;
321
335
  }
322
336
  .nexus-text-input-field__footer {
@@ -326,15 +340,16 @@
326
340
  }
327
341
  .nexus-text-input-field__description {
328
342
  font-size: var(--text-text-xs, 0.75rem);
329
- color: var(--color-text-tertiary);
330
- line-height: 1.4;
343
+ color: var(--color-text-muted);
344
+ line-height: 1.5;
345
+ letter-spacing: -0.12px;
331
346
  }
332
347
  .nexus-text-input-field__description--error {
333
348
  color: var(--color-status-danger);
334
349
  }
335
350
  .nexus-text-input-field__count {
336
351
  font-size: var(--text-text-xs, 0.75rem);
337
- color: var(--color-text-tertiary);
352
+ color: var(--color-text-muted);
338
353
  margin-left: auto;
339
354
  flex-shrink: 0;
340
355
  }
@@ -347,10 +362,12 @@
347
362
  display: flex;
348
363
  align-items: center;
349
364
  gap: 0.5rem;
350
- border-radius: var(--radius-corner-md, 0.375rem);
365
+ border-radius: var(--radius-corner-md, 0.5rem);
351
366
  border: 1px solid var(--color-border-default);
352
367
  background: var(--color-surface-default);
353
368
  font-size: var(--text-text-sm, 0.875rem);
369
+ font-weight: 500;
370
+ line-height: 1;
354
371
  color: var(--color-text-primary);
355
372
  transition: border-color 200ms, box-shadow 200ms;
356
373
  }
@@ -358,7 +375,8 @@
358
375
  width: 100%;
359
376
  }
360
377
  .nexus-text-input:hover:not(.nexus-text-input--disabled):not(:focus-within) {
361
- box-shadow: 0 0 0 0.5px var(--color-border-default);
378
+ border-color: var(--color-border-default-hover);
379
+ box-shadow: 0 0 0 0.5px var(--color-border-default-hover);
362
380
  }
363
381
  .nexus-text-input--default:focus-within {
364
382
  border-color: var(--color-accent-primary);
@@ -373,36 +391,30 @@
373
391
  }
374
392
  .nexus-text-input--disabled {
375
393
  cursor: not-allowed;
376
- opacity: 0.5;
394
+ background: var(--color-surface-strong);
395
+ border-color: var(--color-border-medium);
396
+ color: var(--color-text-muted);
377
397
  }
378
398
 
379
399
  /* ── Sizes ── */
380
400
  .nexus-text-input--xl {
381
- height: 3.5rem;
382
- padding-inline: var(--spacing-padding-lg, 1.25rem);
401
+ padding: calc(var(--spacing-padding-md, 1rem) - 1px) var(--spacing-padding-md, 1rem);
383
402
  font-size: var(--text-text-base, 1rem);
384
403
  }
385
404
  .nexus-text-input--lg {
386
- height: 3rem;
387
- padding-inline: var(--spacing-padding-md, 1rem);
405
+ padding: calc(var(--spacing-padding-sm, 0.75rem) - 1px) var(--spacing-padding-sm, 0.75rem);
388
406
  font-size: var(--text-text-base, 1rem);
389
407
  }
390
408
  .nexus-text-input--md {
391
- height: 2.5rem;
392
- padding-inline: var(--spacing-padding-sm, 0.75rem);
409
+ padding: calc(var(--spacing-padding-xs, 0.5rem) - 1px) var(--spacing-padding-sm, 0.75rem);
393
410
  font-size: var(--text-text-sm, 0.875rem);
394
411
  }
395
- .nexus-text-input--sm {
396
- height: 2rem;
397
- padding-inline: 0.625rem;
398
- font-size: var(--text-text-xs, 0.75rem);
399
- }
400
412
 
401
413
  /* ── Inner elements ── */
402
414
  .nexus-text-input__inner {
403
415
  flex: 1;
404
416
  min-width: 0;
405
- height: 100%;
417
+ padding: 0;
406
418
  background: transparent;
407
419
  border: none;
408
420
  outline: none;
@@ -413,31 +425,30 @@
413
425
  outline: none;
414
426
  }
415
427
  .nexus-text-input__inner::placeholder {
416
- color: var(--color-text-tertiary);
428
+ color: var(--color-text-muted);
417
429
  }
418
430
  .nexus-text-input__icon {
419
431
  display: flex;
420
432
  flex-shrink: 0;
421
- color: var(--color-text-tertiary);
433
+ color: var(--color-text-muted);
422
434
  }
423
435
  .nexus-text-input__clear {
424
436
  display: flex;
425
437
  align-items: center;
426
438
  justify-content: center;
427
439
  flex-shrink: 0;
428
- width: 1.25rem;
429
- height: 1.25rem;
440
+ width: 1rem;
441
+ height: 1rem;
430
442
  border: none;
431
443
  background: transparent;
432
- color: var(--color-text-tertiary);
444
+ color: var(--color-text-muted);
433
445
  cursor: pointer;
434
446
  padding: 0;
435
- border-radius: var(--radius-corner-full, 9999px);
436
- transition: color 150ms, background-color 150ms;
447
+ transition: color 150ms;
437
448
  }
438
449
  .nexus-text-input__clear:hover {
439
- color: var(--color-text-secondary);
440
- background-color: var(--color-surface-hover, rgba(0, 0, 0, 0.06));
450
+ color: var(--color-icon-tertiary-hover);
451
+ background: transparent;
441
452
  }
442
453
 
443
454
  /* ═══════════════════════════════════════════
@@ -738,8 +749,8 @@
738
749
  pointer-events: none;
739
750
  display: block;
740
751
  border-radius: 9999px;
741
- background: #fff;
742
- box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
752
+ background: var(--color-static-white);
753
+ box-shadow: var(--shadow-comp-sm);
743
754
  transition-property: transform;
744
755
  transition-duration: 200ms;
745
756
  }
@@ -814,7 +825,7 @@
814
825
  .nexus-checkbox__box--checked {
815
826
  border-color: var(--color-accent-primary);
816
827
  background: var(--color-accent-primary);
817
- color: #fff;
828
+ color: var(--color-static-white);
818
829
  }
819
830
  .nexus-checkbox__box--unchecked {
820
831
  border-color: var(--color-border-default);
@@ -1028,7 +1039,7 @@
1028
1039
  }
1029
1040
  .nexus-page-btn--active {
1030
1041
  background: var(--color-accent-primary);
1031
- color: #fff;
1042
+ color: var(--color-static-white);
1032
1043
  border-color: var(--color-accent-primary);
1033
1044
  }
1034
1045
  .nexus-page-btn--inactive {
@@ -1098,7 +1109,7 @@
1098
1109
  .nexus-tab-trigger--pill-active {
1099
1110
  color: var(--color-text-primary);
1100
1111
  background: var(--color-surface-default);
1101
- box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
1112
+ box-shadow: var(--shadow-comp-sm);
1102
1113
  }
1103
1114
  .nexus-tab-trigger--sm {
1104
1115
  font-size: var(--text-text-xs, 0.75rem);
@@ -1153,9 +1164,9 @@
1153
1164
  .nexus-error-boundary {
1154
1165
  padding: 1rem;
1155
1166
  border-radius: var(--radius-corner-lg, 0.5rem);
1156
- border: 1px solid var(--color-status-danger, #ef4444);
1157
- background: var(--color-bg-negative, #fef2f2);
1158
- color: var(--color-text-negative, #991b1b);
1167
+ border: 1px solid var(--color-comp-error-border);
1168
+ background: var(--color-comp-error-bg);
1169
+ color: var(--color-comp-error-text);
1159
1170
  font-size: var(--text-text-sm, 0.875rem);
1160
1171
  }
1161
1172
  .nexus-error-boundary__title {
@@ -1334,7 +1345,7 @@
1334
1345
  border-radius: var(--radius-corner-sm, 0.25rem);
1335
1346
  border: 1px solid var(--color-border-default);
1336
1347
  background: var(--color-surface-default);
1337
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
1348
+ box-shadow: var(--shadow-comp-lg);
1338
1349
  transform-origin: top center;
1339
1350
  will-change: transform, opacity;
1340
1351
  }
@@ -1409,7 +1420,7 @@
1409
1420
  border: 1px solid var(--color-border-default);
1410
1421
  background: var(--color-static-white);
1411
1422
  color: var(--color-static-black);
1412
- box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
1423
+ box-shadow: var(--shadow-comp-md);
1413
1424
  }
1414
1425
  .nexus-tooltip--dark {
1415
1426
  border: none;
@@ -1435,7 +1446,7 @@
1435
1446
  border-radius: var(--radius-corner-lg, 0.5rem);
1436
1447
  border: 1px solid var(--color-border-default);
1437
1448
  padding: var(--spacing-padding-md, 1rem);
1438
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
1449
+ box-shadow: var(--shadow-comp-lg);
1439
1450
  outline: none;
1440
1451
  background: var(--color-surface-default);
1441
1452
  color: var(--color-text-primary);
@@ -1468,7 +1479,7 @@
1468
1479
  position: fixed;
1469
1480
  inset: 0;
1470
1481
  z-index: 50;
1471
- background: rgba(0, 0, 0, 0.6);
1482
+ background: var(--color-comp-overlay);
1472
1483
  }
1473
1484
  .nexus-drawer-overlay--blur-sm {
1474
1485
  backdrop-filter: blur(4px);
@@ -1663,7 +1674,7 @@
1663
1674
  border-radius: 9999px;
1664
1675
  background: var(--color-surface-default);
1665
1676
  border: 1px solid var(--color-border-default);
1666
- box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
1677
+ box-shadow: var(--shadow-comp-sm);
1667
1678
  color: var(--color-text-primary);
1668
1679
  transition-property: background-color;
1669
1680
  transition-duration: 150ms;
@@ -1719,7 +1730,7 @@
1719
1730
  border-radius: var(--radius-corner-lg, 0.5rem);
1720
1731
  border: 1px solid var(--color-border-default);
1721
1732
  padding: var(--spacing-padding-sm, 0.75rem) var(--spacing-padding-md, 1rem);
1722
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
1733
+ box-shadow: var(--shadow-comp-lg);
1723
1734
  background: var(--color-surface-default);
1724
1735
  color: var(--color-text-primary);
1725
1736
  }
package/dist/styles.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { built_default } from './chunks/chunk-V5OTJP6H.mjs';
1
+ import { built_default } from './chunks/chunk-XMG7ZEYY.mjs';
2
2
  import './chunks/chunk-CVYXRSXT.mjs';
3
3
 
4
4
  // src/styles/inject.ts
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const textInputVariants: (props?: ({
6
- size?: "xl" | "lg" | "md" | "sm" | null | undefined;
6
+ size?: "xl" | "lg" | "md" | null | undefined;
7
7
  state?: "error" | "default" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  interface TextInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>, VariantProps<typeof textInputVariants> {
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const textInputVariants: (props?: ({
6
- size?: "xl" | "lg" | "md" | "sm" | null | undefined;
6
+ size?: "xl" | "lg" | "md" | null | undefined;
7
7
  state?: "error" | "default" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  interface TextInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>, VariantProps<typeof textInputVariants> {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkD6FII7HW_js = require('./chunks/chunk-D6FII7HW.js');
3
+ var chunkBBLBTOP4_js = require('./chunks/chunk-BBLBTOP4.js');
4
4
  require('./chunks/chunk-CZC76ZD5.js');
5
5
  require('./chunks/chunk-JNMCYWGY.js');
6
6
 
@@ -8,9 +8,9 @@ require('./chunks/chunk-JNMCYWGY.js');
8
8
 
9
9
  Object.defineProperty(exports, "TextInput", {
10
10
  enumerable: true,
11
- get: function () { return chunkD6FII7HW_js.TextInput; }
11
+ get: function () { return chunkBBLBTOP4_js.TextInput; }
12
12
  });
13
13
  Object.defineProperty(exports, "textInputVariants", {
14
14
  enumerable: true,
15
- get: function () { return chunkD6FII7HW_js.textInputVariants; }
15
+ get: function () { return chunkBBLBTOP4_js.textInputVariants; }
16
16
  });
@@ -1,3 +1,3 @@
1
- export { TextInput, textInputVariants } from './chunks/chunk-54RBL7J4.mjs';
1
+ export { TextInput, textInputVariants } from './chunks/chunk-UKRU46PH.mjs';
2
2
  import './chunks/chunk-MCKOWMLS.mjs';
3
3
  import './chunks/chunk-CVYXRSXT.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexus-cross/design-system",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "NEXUS Design System UI Components",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -222,8 +222,6 @@
222
222
  "./dist/styles.mjs",
223
223
  "./dist/styles/layer.js",
224
224
  "./dist/styles/layer.mjs",
225
- "./dist/index.js",
226
- "./dist/index.mjs",
227
225
  "*.css"
228
226
  ],
229
227
  "files": [
@@ -269,13 +267,17 @@
269
267
  "zod": "^3.25.76"
270
268
  },
271
269
  "devDependencies": {
270
+ "@testing-library/jest-dom": "^6.9.1",
271
+ "@testing-library/react": "^16.3.2",
272
+ "@testing-library/user-event": "^14.6.1",
272
273
  "@types/lodash-es": "^4.17.12",
273
- "@types/react": "^18.0.0",
274
- "@types/react-dom": "^18.0.0",
274
+ "@types/react": "^19.0.0",
275
+ "@types/react-dom": "^19.0.0",
275
276
  "tsup": "^8.0.0",
276
277
  "typescript": "^5.0.0",
278
+ "vitest": "^1.6.1",
277
279
  "zod-to-json-schema": "^3.25.2",
278
- "@nexus-cross/tokens": "1.0.0"
280
+ "@nexus-cross/tokens": "1.0.2"
279
281
  },
280
282
  "scripts": {
281
283
  "postinstall": "node scripts/setup-cursor-rules.cjs",