@nova-design-system/nova-base 3.29.0 → 3.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,127 @@
1
+ /**
2
+ * @fileoverview Shared source of truth for the `.typo-{type}-{size}-{weight}`
3
+ * utility classes. Consumed by the Tailwind plugin (runtime utilities), the
4
+ * `@source inline()` generator (CSS safelisting), and the LLM extractor
5
+ * (structured JSON for AI consumers).
6
+ */
7
+ export const TYPOGRAPHY_WEIGHTS = ['regular', 'medium', 'bold'];
8
+ export const TYPOGRAPHY_WEIGHT_MAP = {
9
+ regular: 'low-emphasis',
10
+ medium: 'medium-emphasis',
11
+ bold: 'high-emphasis',
12
+ };
13
+ export const TYPOGRAPHY_CONFIG = {
14
+ heading: {
15
+ xl: {
16
+ size: '4xl',
17
+ lineHeight: 'leading-px-10',
18
+ letterSpacing: 'heading-xl',
19
+ },
20
+ lg: {
21
+ size: '3xl',
22
+ lineHeight: 'leading-px-8',
23
+ letterSpacing: 'heading-lg',
24
+ },
25
+ md: {
26
+ size: '2xl',
27
+ lineHeight: 'leading-px-7',
28
+ letterSpacing: 'heading-md',
29
+ },
30
+ sm: { size: 'xl', lineHeight: 'leading-px-6', letterSpacing: 'heading-sm' },
31
+ xs: { size: 'lg', lineHeight: 'leading-px-6', letterSpacing: 'heading-xs' },
32
+ },
33
+ text: {
34
+ xl: { size: 'xl', lineHeight: 'xl' },
35
+ lg: { size: 'lg', lineHeight: 'lg' },
36
+ md: { size: 'md', lineHeight: 'base' },
37
+ sm: { size: 'sm', lineHeight: 'sm' },
38
+ xs: { size: 'xs', lineHeight: 'xs' },
39
+ },
40
+ mono: {
41
+ md: { size: 'md', lineHeight: 'base' },
42
+ sm: { size: 'sm', lineHeight: 'sm' },
43
+ xs: { size: 'xs', lineHeight: 'xs' },
44
+ },
45
+ };
46
+ /**
47
+ * Resolves a line-height config value to its CSS custom-property name.
48
+ * @param {string} lineHeight - Raw token value (either a `leading-*` utility name or a size suffix).
49
+ * @returns {string} CSS custom-property name including the leading `--`.
50
+ */
51
+ function resolveLineHeightVar(lineHeight) {
52
+ return lineHeight.startsWith('leading-')
53
+ ? `--${lineHeight}`
54
+ : `--line-height-${lineHeight}`;
55
+ }
56
+ /**
57
+ * Expands `TYPOGRAPHY_CONFIG` into the flat list of typography utility entries,
58
+ * one per type × size × weight combination.
59
+ * @returns {TypographyTokenEntry[]} Array of structured typography entries.
60
+ */
61
+ function buildTypographyEntries() {
62
+ const entries = [];
63
+ Object.entries(TYPOGRAPHY_CONFIG).forEach(([type, sizes]) => {
64
+ Object.entries(sizes).forEach(([size, config]) => {
65
+ TYPOGRAPHY_WEIGHTS.forEach((weight) => {
66
+ const tokens = {
67
+ fontSize: `--font-size-${config.size}`,
68
+ fontWeight: `--font-weight-${TYPOGRAPHY_WEIGHT_MAP[weight]}`,
69
+ lineHeight: resolveLineHeightVar(config.lineHeight),
70
+ };
71
+ if (type === 'heading' && 'letterSpacing' in config) {
72
+ tokens.letterSpacing = `--letter-spacing-${config.letterSpacing}`;
73
+ }
74
+ if (type === 'mono') {
75
+ tokens.fontFamily = '--font-family-mono';
76
+ }
77
+ entries.push({
78
+ className: `typo-${type}-${size}-${weight}`,
79
+ type,
80
+ size,
81
+ weight,
82
+ tokens,
83
+ });
84
+ });
85
+ });
86
+ });
87
+ return entries;
88
+ }
89
+ /**
90
+ * Returns the `{ '.typo-...': { 'font-size': 'var(--...)', ... } }` map
91
+ * consumed by Tailwind's `addUtilities`.
92
+ * @returns {Record<string, Record<string, string>>} Map from utility class selector to CSS declaration block.
93
+ */
94
+ export function getTypographyUtilities() {
95
+ const utilities = {};
96
+ buildTypographyEntries().forEach((entry) => {
97
+ const styles = {
98
+ 'font-size': `var(${entry.tokens.fontSize})`,
99
+ 'font-weight': `var(${entry.tokens.fontWeight})`,
100
+ 'line-height': `var(${entry.tokens.lineHeight})`,
101
+ };
102
+ if (entry.tokens.letterSpacing) {
103
+ styles['letter-spacing'] = `var(${entry.tokens.letterSpacing})`;
104
+ }
105
+ if (entry.tokens.fontFamily) {
106
+ styles['font-family'] = `var(${entry.tokens.fontFamily}), monospace`;
107
+ }
108
+ utilities[`.${entry.className}`] = styles;
109
+ });
110
+ return utilities;
111
+ }
112
+ /**
113
+ * Returns the typography class names without the leading `.`, suitable for
114
+ * Tailwind v4 `@source inline()` directives.
115
+ * @returns {string[]} List of utility class names.
116
+ */
117
+ export function getTypographyClassNames() {
118
+ return buildTypographyEntries().map((entry) => entry.className);
119
+ }
120
+ /**
121
+ * Returns structured, JSON-friendly typography token entries for LLM and
122
+ * documentation consumers.
123
+ * @returns {TypographyTokenEntry[]} Array of structured typography entries.
124
+ */
125
+ export function getTypographyTokenEntries() {
126
+ return buildTypographyEntries();
127
+ }
@@ -8,7 +8,7 @@
8
8
  "light",
9
9
  "dark"
10
10
  ],
11
- "totalTokens": 194
11
+ "totalTokens": 209
12
12
  },
13
13
  "tokens": [
14
14
  {
@@ -545,9 +545,9 @@
545
545
  "tailwindClass": ".bg-rainbow-3",
546
546
  "cssProperty": "background-color",
547
547
  "values": {
548
- "oceanLight": "#ffecb3",
548
+ "oceanLight": "#fff7df",
549
549
  "oceanDark": "#4d3a00",
550
- "sparkLight": "#ffecb3",
550
+ "sparkLight": "#fff7df",
551
551
  "sparkDark": "#4d3a00"
552
552
  }
553
553
  },
@@ -558,9 +558,9 @@
558
558
  "cssProperty": "background-color",
559
559
  "values": {
560
560
  "oceanLight": "#f9e3e3",
561
- "oceanDark": "#610e0e",
561
+ "oceanDark": "#3d0909",
562
562
  "sparkLight": "#f9e3e3",
563
- "sparkDark": "#610e0e"
563
+ "sparkDark": "#3d0909"
564
564
  }
565
565
  },
566
566
  {
@@ -582,9 +582,9 @@
582
582
  "cssProperty": "background-color",
583
583
  "values": {
584
584
  "oceanLight": "#f7e9ee",
585
- "oceanDark": "#490019",
585
+ "oceanDark": "#2e0010",
586
586
  "sparkLight": "#f7e9ee",
587
- "sparkDark": "#490019"
587
+ "sparkDark": "#2e0010"
588
588
  }
589
589
  },
590
590
  {
@@ -596,7 +596,7 @@
596
596
  "oceanLight": "#e2f0e2",
597
597
  "oceanDark": "#09400c",
598
598
  "sparkLight": "#e2f0e2",
599
- "sparkDark": "#09400c"
599
+ "sparkDark": "#062908"
600
600
  }
601
601
  },
602
602
  {
@@ -606,9 +606,9 @@
606
606
  "cssProperty": "background-color",
607
607
  "values": {
608
608
  "oceanLight": "#e4f0f2",
609
- "oceanDark": "#124148",
609
+ "oceanDark": "#0b292e",
610
610
  "sparkLight": "#e4f0f2",
611
- "sparkDark": "#124148"
611
+ "sparkDark": "#0b292e"
612
612
  }
613
613
  },
614
614
  {
@@ -707,6 +707,18 @@
707
707
  "sparkDark": "#ff6161"
708
708
  }
709
709
  },
710
+ {
711
+ "type": "border",
712
+ "figmaToken": "--color-feedback-error-low-border-subtle",
713
+ "tailwindClass": ".border-feedback-error-low-subtle",
714
+ "cssProperty": "border-color",
715
+ "values": {
716
+ "oceanLight": "#f5c4c4",
717
+ "oceanDark": "#911515",
718
+ "sparkLight": "#f5c4c4",
719
+ "sparkDark": "#911515"
720
+ }
721
+ },
710
722
  {
711
723
  "type": "border",
712
724
  "figmaToken": "--color-feedback-information-high-border",
@@ -743,6 +755,18 @@
743
755
  "sparkDark": "#659fff"
744
756
  }
745
757
  },
758
+ {
759
+ "type": "border",
760
+ "figmaToken": "--color-feedback-information-low-border-subtle",
761
+ "tailwindClass": ".border-feedback-information-low-subtle",
762
+ "cssProperty": "border-color",
763
+ "values": {
764
+ "oceanLight": "#c7dcff",
765
+ "oceanDark": "#113a80",
766
+ "sparkLight": "#c7dcff",
767
+ "sparkDark": "#113a80"
768
+ }
769
+ },
746
770
  {
747
771
  "type": "border",
748
772
  "figmaToken": "--color-feedback-neutral-high-border",
@@ -779,6 +803,18 @@
779
803
  "sparkDark": "#a9a9a9"
780
804
  }
781
805
  },
806
+ {
807
+ "type": "border",
808
+ "figmaToken": "--color-feedback-neutral-low-border-subtle",
809
+ "tailwindClass": ".border-feedback-neutral-low-subtle",
810
+ "cssProperty": "border-color",
811
+ "values": {
812
+ "oceanLight": "#e1e4e6",
813
+ "oceanDark": "#394d55",
814
+ "sparkLight": "#e3e3e3",
815
+ "sparkDark": "#484848"
816
+ }
817
+ },
782
818
  {
783
819
  "type": "border",
784
820
  "figmaToken": "--color-feedback-success-high-border",
@@ -815,6 +851,18 @@
815
851
  "sparkDark": "#45d24d"
816
852
  }
817
853
  },
854
+ {
855
+ "type": "border",
856
+ "figmaToken": "--color-feedback-success-low-border-subtle",
857
+ "tailwindClass": ".border-feedback-success-low-subtle",
858
+ "cssProperty": "border-color",
859
+ "values": {
860
+ "oceanLight": "#c8facb",
861
+ "oceanDark": "#035707",
862
+ "sparkLight": "#c8facb",
863
+ "sparkDark": "#035707"
864
+ }
865
+ },
818
866
  {
819
867
  "type": "border",
820
868
  "figmaToken": "--color-feedback-warning-high-border",
@@ -851,6 +899,18 @@
851
899
  "sparkDark": "#e0a917"
852
900
  }
853
901
  },
902
+ {
903
+ "type": "border",
904
+ "figmaToken": "--color-feedback-warning-low-border-subtle",
905
+ "tailwindClass": ".border-feedback-warning-low-subtle",
906
+ "cssProperty": "border-color",
907
+ "values": {
908
+ "oceanLight": "#fae49d",
909
+ "oceanDark": "#805c00",
910
+ "sparkLight": "#fae49d",
911
+ "sparkDark": "#805c00"
912
+ }
913
+ },
854
914
  {
855
915
  "type": "border",
856
916
  "figmaToken": "--color-interaction-container-branded-high-border",
@@ -971,6 +1031,18 @@
971
1031
  "sparkDark": "#f0801a"
972
1032
  }
973
1033
  },
1034
+ {
1035
+ "type": "border",
1036
+ "figmaToken": "--color-rainbow-1-border-light",
1037
+ "tailwindClass": ".border-rainbow-1-light",
1038
+ "cssProperty": "border-color",
1039
+ "values": {
1040
+ "oceanLight": "#fbd9ba",
1041
+ "oceanDark": "#9c5311",
1042
+ "sparkLight": "#fbd9ba",
1043
+ "sparkDark": "#9c5311"
1044
+ }
1045
+ },
974
1046
  {
975
1047
  "type": "border",
976
1048
  "figmaToken": "--color-rainbow-10-border",
@@ -983,6 +1055,18 @@
983
1055
  "sparkDark": "#a9a9a9"
984
1056
  }
985
1057
  },
1058
+ {
1059
+ "type": "border",
1060
+ "figmaToken": "--color-rainbow-10-border-light",
1061
+ "tailwindClass": ".border-rainbow-10-light",
1062
+ "cssProperty": "border-color",
1063
+ "values": {
1064
+ "oceanLight": "#c6ced1",
1065
+ "oceanDark": "#3f555e",
1066
+ "sparkLight": "#cccccc",
1067
+ "sparkDark": "#4f4f4f"
1068
+ }
1069
+ },
986
1070
  {
987
1071
  "type": "border",
988
1072
  "figmaToken": "--color-rainbow-2-border",
@@ -995,6 +1079,18 @@
995
1079
  "sparkDark": "#eb7247"
996
1080
  }
997
1081
  },
1082
+ {
1083
+ "type": "border",
1084
+ "figmaToken": "--color-rainbow-2-border-light",
1085
+ "tailwindClass": ".border-rainbow-2-light",
1086
+ "cssProperty": "border-color",
1087
+ "values": {
1088
+ "oceanLight": "#f8ccbc",
1089
+ "oceanDark": "#963715",
1090
+ "sparkLight": "#f8ccbc",
1091
+ "sparkDark": "#963715"
1092
+ }
1093
+ },
998
1094
  {
999
1095
  "type": "border",
1000
1096
  "figmaToken": "--color-rainbow-3-border",
@@ -1007,6 +1103,18 @@
1007
1103
  "sparkDark": "#d29f00"
1008
1104
  }
1009
1105
  },
1106
+ {
1107
+ "type": "border",
1108
+ "figmaToken": "--color-rainbow-3-border-light",
1109
+ "tailwindClass": ".border-rainbow-3-light",
1110
+ "cssProperty": "border-color",
1111
+ "values": {
1112
+ "oceanLight": "#ffe286",
1113
+ "oceanDark": "#a67d00",
1114
+ "sparkLight": "#ffe286",
1115
+ "sparkDark": "#a67d00"
1116
+ }
1117
+ },
1010
1118
  {
1011
1119
  "type": "border",
1012
1120
  "figmaToken": "--color-rainbow-4-border",
@@ -1019,6 +1127,18 @@
1019
1127
  "sparkDark": "#e79494"
1020
1128
  }
1021
1129
  },
1130
+ {
1131
+ "type": "border",
1132
+ "figmaToken": "--color-rainbow-4-border-light",
1133
+ "tailwindClass": ".border-rainbow-4-light",
1134
+ "cssProperty": "border-color",
1135
+ "values": {
1136
+ "oceanLight": "#f0bbbb",
1137
+ "oceanDark": "#a81818",
1138
+ "sparkLight": "#f0bbbb",
1139
+ "sparkDark": "#a81818"
1140
+ }
1141
+ },
1022
1142
  {
1023
1143
  "type": "border",
1024
1144
  "figmaToken": "--color-rainbow-5-border",
@@ -1026,9 +1146,21 @@
1026
1146
  "cssProperty": "border-color",
1027
1147
  "values": {
1028
1148
  "oceanLight": "#32504c",
1029
- "oceanDark": "#6aa9a0",
1149
+ "oceanDark": "#84b8b1",
1030
1150
  "sparkLight": "#32504c",
1031
- "sparkDark": "#6aa9a0"
1151
+ "sparkDark": "#84b8b1"
1152
+ }
1153
+ },
1154
+ {
1155
+ "type": "border",
1156
+ "figmaToken": "--color-rainbow-5-border-light",
1157
+ "tailwindClass": ".border-rainbow-5-light",
1158
+ "cssProperty": "border-color",
1159
+ "values": {
1160
+ "oceanLight": "#d2e5e3",
1161
+ "oceanDark": "#456e68",
1162
+ "sparkLight": "#d2e5e3",
1163
+ "sparkDark": "#456e68"
1032
1164
  }
1033
1165
  },
1034
1166
  {
@@ -1043,6 +1175,18 @@
1043
1175
  "sparkDark": "#cf869f"
1044
1176
  }
1045
1177
  },
1178
+ {
1179
+ "type": "border",
1180
+ "figmaToken": "--color-rainbow-6-border-light",
1181
+ "tailwindClass": ".border-rainbow-6-light",
1182
+ "cssProperty": "border-color",
1183
+ "values": {
1184
+ "oceanLight": "#e0b3c2",
1185
+ "oceanDark": "#7e002c",
1186
+ "sparkLight": "#e0b3c2",
1187
+ "sparkDark": "#7e002c"
1188
+ }
1189
+ },
1046
1190
  {
1047
1191
  "type": "border",
1048
1192
  "figmaToken": "--color-rainbow-7-border",
@@ -1055,6 +1199,18 @@
1055
1199
  "sparkDark": "#66b16a"
1056
1200
  }
1057
1201
  },
1202
+ {
1203
+ "type": "border",
1204
+ "figmaToken": "--color-rainbow-7-border-light",
1205
+ "tailwindClass": ".border-rainbow-7-light",
1206
+ "cssProperty": "border-color",
1207
+ "values": {
1208
+ "oceanLight": "#b8dbba",
1209
+ "oceanDark": "#106f15",
1210
+ "sparkLight": "#b8dbba",
1211
+ "sparkDark": "#106f15"
1212
+ }
1213
+ },
1058
1214
  {
1059
1215
  "type": "border",
1060
1216
  "figmaToken": "--color-rainbow-8-border",
@@ -1067,6 +1223,18 @@
1067
1223
  "sparkDark": "#71b2bc"
1068
1224
  }
1069
1225
  },
1226
+ {
1227
+ "type": "border",
1228
+ "figmaToken": "--color-rainbow-8-border-light",
1229
+ "tailwindClass": ".border-rainbow-8-light",
1230
+ "cssProperty": "border-color",
1231
+ "values": {
1232
+ "oceanLight": "#bedce0",
1233
+ "oceanDark": "#1f717d",
1234
+ "sparkLight": "#bedce0",
1235
+ "sparkDark": "#1f717d"
1236
+ }
1237
+ },
1070
1238
  {
1071
1239
  "type": "border",
1072
1240
  "figmaToken": "--color-rainbow-9-border",
@@ -1079,6 +1247,18 @@
1079
1247
  "sparkDark": "#8da930"
1080
1248
  }
1081
1249
  },
1250
+ {
1251
+ "type": "border",
1252
+ "figmaToken": "--color-rainbow-9-border-light",
1253
+ "tailwindClass": ".border-rainbow-9-light",
1254
+ "cssProperty": "border-color",
1255
+ "values": {
1256
+ "oceanLight": "#dde5c1",
1257
+ "oceanDark": "#5c6e1f",
1258
+ "sparkLight": "#dde5c1",
1259
+ "sparkDark": "#5c6e1f"
1260
+ }
1261
+ },
1082
1262
  {
1083
1263
  "type": "icon",
1084
1264
  "figmaToken": "--color-content-high-icon",
@@ -1650,9 +1830,9 @@
1650
1830
  "cssProperty": "color",
1651
1831
  "values": {
1652
1832
  "oceanLight": "#32504c",
1653
- "oceanDark": "#6aa9a0",
1833
+ "oceanDark": "#84b8b1",
1654
1834
  "sparkLight": "#32504c",
1655
- "sparkDark": "#6aa9a0"
1835
+ "sparkDark": "#84b8b1"
1656
1836
  }
1657
1837
  },
1658
1838
  {
@@ -2228,7 +2408,7 @@
2228
2408
  "oceanLight": "#9c5311",
2229
2409
  "oceanDark": "#f0801a",
2230
2410
  "sparkLight": "#9c5311",
2231
- "sparkDark": "#f0801a"
2411
+ "sparkDark": "#f39642"
2232
2412
  }
2233
2413
  },
2234
2414
  {
@@ -2286,9 +2466,9 @@
2286
2466
  "cssProperty": "color",
2287
2467
  "values": {
2288
2468
  "oceanLight": "#32504c",
2289
- "oceanDark": "#6aa9a0",
2469
+ "oceanDark": "#84b8b1",
2290
2470
  "sparkLight": "#32504c",
2291
- "sparkDark": "#6aa9a0"
2471
+ "sparkDark": "#84b8b1"
2292
2472
  }
2293
2473
  },
2294
2474
  {
@@ -89,6 +89,9 @@ export const NOVA_TAILWIND_TOKENS = {
89
89
  '.border-feedback-error-low': {
90
90
  'border-color': 'var(--color-feedback-error-low-border)'
91
91
  },
92
+ '.border-feedback-error-low-subtle': {
93
+ 'border-color': 'var(--color-feedback-error-low-border-subtle)'
94
+ },
92
95
  '.icon-feedback-error-low': {
93
96
  'color': 'var(--color-feedback-error-low-icon)'
94
97
  },
@@ -125,6 +128,9 @@ export const NOVA_TAILWIND_TOKENS = {
125
128
  '.border-feedback-information-low': {
126
129
  'border-color': 'var(--color-feedback-information-low-border)'
127
130
  },
131
+ '.border-feedback-information-low-subtle': {
132
+ 'border-color': 'var(--color-feedback-information-low-border-subtle)'
133
+ },
128
134
  '.icon-feedback-information-low': {
129
135
  'color': 'var(--color-feedback-information-low-icon)'
130
136
  },
@@ -161,6 +167,9 @@ export const NOVA_TAILWIND_TOKENS = {
161
167
  '.border-feedback-neutral-low': {
162
168
  'border-color': 'var(--color-feedback-neutral-low-border)'
163
169
  },
170
+ '.border-feedback-neutral-low-subtle': {
171
+ 'border-color': 'var(--color-feedback-neutral-low-border-subtle)'
172
+ },
164
173
  '.icon-feedback-neutral-low': {
165
174
  'color': 'var(--color-feedback-neutral-low-icon)'
166
175
  },
@@ -197,6 +206,9 @@ export const NOVA_TAILWIND_TOKENS = {
197
206
  '.border-feedback-success-low': {
198
207
  'border-color': 'var(--color-feedback-success-low-border)'
199
208
  },
209
+ '.border-feedback-success-low-subtle': {
210
+ 'border-color': 'var(--color-feedback-success-low-border-subtle)'
211
+ },
200
212
  '.icon-feedback-success-low': {
201
213
  'color': 'var(--color-feedback-success-low-icon)'
202
214
  },
@@ -233,6 +245,9 @@ export const NOVA_TAILWIND_TOKENS = {
233
245
  '.border-feedback-warning-low': {
234
246
  'border-color': 'var(--color-feedback-warning-low-border)'
235
247
  },
248
+ '.border-feedback-warning-low-subtle': {
249
+ 'border-color': 'var(--color-feedback-warning-low-border-subtle)'
250
+ },
236
251
  '.icon-feedback-warning-low': {
237
252
  'color': 'var(--color-feedback-warning-low-icon)'
238
253
  },
@@ -473,6 +488,9 @@ export const NOVA_TAILWIND_TOKENS = {
473
488
  '.border-rainbow-1': {
474
489
  'border-color': 'var(--color-rainbow-1-border)'
475
490
  },
491
+ '.border-rainbow-1-light': {
492
+ 'border-color': 'var(--color-rainbow-1-border-light)'
493
+ },
476
494
  '.icon-rainbow-1': {
477
495
  'color': 'var(--color-rainbow-1-icon)'
478
496
  },
@@ -485,6 +503,9 @@ export const NOVA_TAILWIND_TOKENS = {
485
503
  '.border-rainbow-10': {
486
504
  'border-color': 'var(--color-rainbow-10-border)'
487
505
  },
506
+ '.border-rainbow-10-light': {
507
+ 'border-color': 'var(--color-rainbow-10-border-light)'
508
+ },
488
509
  '.icon-rainbow-10': {
489
510
  'color': 'var(--color-rainbow-10-icon)'
490
511
  },
@@ -497,6 +518,9 @@ export const NOVA_TAILWIND_TOKENS = {
497
518
  '.border-rainbow-2': {
498
519
  'border-color': 'var(--color-rainbow-2-border)'
499
520
  },
521
+ '.border-rainbow-2-light': {
522
+ 'border-color': 'var(--color-rainbow-2-border-light)'
523
+ },
500
524
  '.icon-rainbow-2': {
501
525
  'color': 'var(--color-rainbow-2-icon)'
502
526
  },
@@ -509,6 +533,9 @@ export const NOVA_TAILWIND_TOKENS = {
509
533
  '.border-rainbow-3': {
510
534
  'border-color': 'var(--color-rainbow-3-border)'
511
535
  },
536
+ '.border-rainbow-3-light': {
537
+ 'border-color': 'var(--color-rainbow-3-border-light)'
538
+ },
512
539
  '.icon-rainbow-3': {
513
540
  'color': 'var(--color-rainbow-3-icon)'
514
541
  },
@@ -521,6 +548,9 @@ export const NOVA_TAILWIND_TOKENS = {
521
548
  '.border-rainbow-4': {
522
549
  'border-color': 'var(--color-rainbow-4-border)'
523
550
  },
551
+ '.border-rainbow-4-light': {
552
+ 'border-color': 'var(--color-rainbow-4-border-light)'
553
+ },
524
554
  '.icon-rainbow-4': {
525
555
  'color': 'var(--color-rainbow-4-icon)'
526
556
  },
@@ -533,6 +563,9 @@ export const NOVA_TAILWIND_TOKENS = {
533
563
  '.border-rainbow-5': {
534
564
  'border-color': 'var(--color-rainbow-5-border)'
535
565
  },
566
+ '.border-rainbow-5-light': {
567
+ 'border-color': 'var(--color-rainbow-5-border-light)'
568
+ },
536
569
  '.icon-rainbow-5': {
537
570
  'color': 'var(--color-rainbow-5-icon)'
538
571
  },
@@ -545,6 +578,9 @@ export const NOVA_TAILWIND_TOKENS = {
545
578
  '.border-rainbow-6': {
546
579
  'border-color': 'var(--color-rainbow-6-border)'
547
580
  },
581
+ '.border-rainbow-6-light': {
582
+ 'border-color': 'var(--color-rainbow-6-border-light)'
583
+ },
548
584
  '.icon-rainbow-6': {
549
585
  'color': 'var(--color-rainbow-6-icon)'
550
586
  },
@@ -557,6 +593,9 @@ export const NOVA_TAILWIND_TOKENS = {
557
593
  '.border-rainbow-7': {
558
594
  'border-color': 'var(--color-rainbow-7-border)'
559
595
  },
596
+ '.border-rainbow-7-light': {
597
+ 'border-color': 'var(--color-rainbow-7-border-light)'
598
+ },
560
599
  '.icon-rainbow-7': {
561
600
  'color': 'var(--color-rainbow-7-icon)'
562
601
  },
@@ -569,6 +608,9 @@ export const NOVA_TAILWIND_TOKENS = {
569
608
  '.border-rainbow-8': {
570
609
  'border-color': 'var(--color-rainbow-8-border)'
571
610
  },
611
+ '.border-rainbow-8-light': {
612
+ 'border-color': 'var(--color-rainbow-8-border-light)'
613
+ },
572
614
  '.icon-rainbow-8': {
573
615
  'color': 'var(--color-rainbow-8-icon)'
574
616
  },
@@ -581,6 +623,9 @@ export const NOVA_TAILWIND_TOKENS = {
581
623
  '.border-rainbow-9': {
582
624
  'border-color': 'var(--color-rainbow-9-border)'
583
625
  },
626
+ '.border-rainbow-9-light': {
627
+ 'border-color': 'var(--color-rainbow-9-border-light)'
628
+ },
584
629
  '.icon-rainbow-9': {
585
630
  'color': 'var(--color-rainbow-9-icon)'
586
631
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nova-design-system/nova-base",
3
- "version": "3.29.0",
3
+ "version": "3.31.0",
4
4
  "description": "Nova is a design system created by Elia Group to empower creators to efficiently build solutions that people love to use.",
5
5
  "author": "Elia Group",
6
6
  "homepage": "https://nova.eliagroup.io",
@@ -12,13 +12,14 @@
12
12
  },
13
13
  "scripts": {
14
14
  "generate-tokens": "tsx scripts/extract-tokens/extract-tokens.ts && tsx scripts/generate-token-files.ts",
15
+ "generate-source-inline": "tsx scripts/generate-source-inline.ts",
15
16
  "generate-css-utils": "tailwindcss -i ./plugin/tailwind.css -o ./dist/css/nova-utils.css",
16
17
  "generate-tailwind-tokens": "tsx scripts/generate-tailwind-tokens.ts",
17
18
  "generate-tailwind-components": "tsx scripts/generate-tailwind-components.ts",
18
19
  "analyze-component-tokens": "tsx scripts/analyze-component-tokens.ts",
19
20
  "build-lib": "tsc && tsc --module CommonJS --moduleResolution Node --declaration false --outDir ./dist/cjs",
20
21
  "merge-css": "tsx scripts/merge-css.ts",
21
- "build": "npm run clean && tsx scripts/generate-tokens.ts && npm run generate-tailwind-components && npm run merge-css && npm run generate-tailwind-tokens && npm run generate-css-utils && npm run build-lib",
22
+ "build": "npm run clean && tsx scripts/generate-tokens.ts && npm run generate-tailwind-components && npm run merge-css && npm run generate-tailwind-tokens && npm run generate-source-inline && npm run generate-css-utils && npm run build-lib",
22
23
  "clean": "rimraf dist",
23
24
  "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.node.json --noEmit"
24
25
  },
@@ -29,9 +30,11 @@
29
30
  ],
30
31
  "dependencies": {
31
32
  "style-dictionary": "4.0.0",
32
- "tailwindcss": "3.4.10"
33
+ "tailwindcss": "4.2.2"
33
34
  },
34
35
  "devDependencies": {
36
+ "@types/postcss-js": "4.0.1",
37
+ "@tailwindcss/cli": "4.2.2",
35
38
  "nova-utils": "*",
36
39
  "sass": "1.83.4"
37
40
  },