@astryxdesign/theme-neutral 0.0.0-bootstrap.0 → 0.1.0-canary.08d4cf4

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.
package/dist/theme.css ADDED
@@ -0,0 +1,522 @@
1
+ /*
2
+ * @generated by `astryx theme build` — do not edit manually.
3
+ * Source: src/neutralTheme.ts
4
+ * Command: astryx theme build src/neutralTheme.ts --out dist/theme.css
5
+ * Generated: 2026-06-25T23:57:33.889Z
6
+ */
7
+
8
+ @layer reset {
9
+ @scope ([data-astryx-theme="neutral"]) to ([data-astryx-theme]) {
10
+ :where(h1, h2, h3, h4, h5, h6) {
11
+ font-family: var(--font-family-heading);
12
+ color: var(--color-text-primary);
13
+ }
14
+
15
+ :where(h1) {
16
+ font-size: var(--font-size-2xl);
17
+ font-weight: var(--font-weight-semibold);
18
+ line-height: 1.3333;
19
+ }
20
+
21
+ :where(h2) {
22
+ font-size: var(--font-size-xl);
23
+ font-weight: var(--font-weight-semibold);
24
+ line-height: 1.4;
25
+ }
26
+
27
+ :where(h3) {
28
+ font-size: var(--font-size-lg);
29
+ font-weight: var(--font-weight-bold);
30
+ line-height: 1.4118;
31
+ }
32
+
33
+ :where(h4) {
34
+ font-size: var(--font-size-base);
35
+ font-weight: var(--font-weight-bold);
36
+ line-height: 1.4286;
37
+ }
38
+
39
+ :where(h5) {
40
+ font-size: var(--font-size-sm);
41
+ font-weight: var(--font-weight-semibold);
42
+ line-height: 1.6667;
43
+ }
44
+
45
+ :where(h6) {
46
+ font-size: var(--font-size-xs);
47
+ font-weight: var(--font-weight-semibold);
48
+ line-height: 1.6;
49
+ }
50
+
51
+ :where(p) {
52
+ font-family: var(--font-family-body);
53
+ font-size: var(--font-size-base);
54
+ font-weight: var(--font-weight-normal);
55
+ line-height: 1.4286;
56
+ color: var(--color-text-primary);
57
+ }
58
+
59
+ :where(small) {
60
+ font-size: var(--font-size-sm);
61
+ font-weight: var(--font-weight-normal);
62
+ line-height: 1.6667;
63
+ color: var(--color-text-secondary);
64
+ }
65
+
66
+ :where(code, pre) {
67
+ font-family: var(--font-family-code);
68
+ font-size: var(--font-size-base);
69
+ line-height: 1.4286;
70
+ }
71
+
72
+ :where(hr) {
73
+ border: none;
74
+ border-top: 1px solid var(--color-border);
75
+ }
76
+ }
77
+ }
78
+
79
+ @layer astryx-theme {
80
+ :root { color-scheme: light dark; }
81
+
82
+ @scope ([data-astryx-theme="neutral"]) to ([data-astryx-theme]) {
83
+ :scope {
84
+ --font-size-4xs: 0.375rem;
85
+ --font-size-3xs: 0.4375rem;
86
+ --font-size-2xs: 0.5rem;
87
+ --font-size-xs: 0.625rem;
88
+ --font-size-sm: 0.75rem;
89
+ --font-size-base: 0.875rem;
90
+ --font-size-lg: 1.0625rem;
91
+ --font-size-xl: 1.25rem;
92
+ --font-size-2xl: 1.5rem;
93
+ --font-size-3xl: 1.8125rem;
94
+ --font-size-4xl: 2.1875rem;
95
+ --font-size-5xl: 2.625rem;
96
+ --text-heading-1-size: var(--font-size-2xl);
97
+ --text-heading-1-weight: var(--font-weight-semibold);
98
+ --text-heading-1-leading: 1.3333;
99
+ --text-heading-2-size: var(--font-size-xl);
100
+ --text-heading-2-weight: var(--font-weight-semibold);
101
+ --text-heading-2-leading: 1.4;
102
+ --text-heading-3-size: var(--font-size-lg);
103
+ --text-heading-3-weight: var(--font-weight-bold);
104
+ --text-heading-3-leading: 1.4118;
105
+ --text-heading-4-size: var(--font-size-base);
106
+ --text-heading-4-weight: var(--font-weight-bold);
107
+ --text-heading-4-leading: 1.4286;
108
+ --text-heading-5-size: var(--font-size-sm);
109
+ --text-heading-5-weight: var(--font-weight-semibold);
110
+ --text-heading-5-leading: 1.6667;
111
+ --text-heading-6-size: var(--font-size-xs);
112
+ --text-heading-6-weight: var(--font-weight-semibold);
113
+ --text-heading-6-leading: 1.6;
114
+ --text-body-size: var(--font-size-base);
115
+ --text-body-weight: var(--font-weight-normal);
116
+ --text-body-leading: 1.4286;
117
+ --text-large-size: var(--font-size-lg);
118
+ --text-large-weight: var(--font-weight-semibold);
119
+ --text-large-leading: 1.4118;
120
+ --text-label-size: var(--font-size-base);
121
+ --text-label-weight: var(--font-weight-medium);
122
+ --text-label-leading: 1.4286;
123
+ --text-code-size: var(--font-size-base);
124
+ --text-code-weight: var(--font-weight-normal);
125
+ --text-code-leading: 1.4286;
126
+ --text-supporting-size: var(--font-size-sm);
127
+ --text-supporting-weight: var(--font-weight-normal);
128
+ --text-supporting-leading: 1.6667;
129
+ --text-display-1-size: var(--font-size-5xl);
130
+ --text-display-1-weight: var(--font-weight-normal);
131
+ --text-display-1-leading: 1.2381;
132
+ --text-display-2-size: var(--font-size-4xl);
133
+ --text-display-2-weight: var(--font-weight-normal);
134
+ --text-display-2-leading: 1.2571;
135
+ --text-display-3-size: var(--font-size-3xl);
136
+ --text-display-3-weight: var(--font-weight-normal);
137
+ --text-display-3-leading: 1.3793;
138
+ --duration-fast-min: 95ms;
139
+ --duration-fast: 125ms;
140
+ --duration-fast-max: 165ms;
141
+ --duration-medium-min: 225ms;
142
+ --duration-medium: 300ms;
143
+ --duration-medium-max: 400ms;
144
+ --duration-slow-min: 525ms;
145
+ --duration-slow: 700ms;
146
+ --duration-slow-max: 935ms;
147
+ --font-family-body: Figtree, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
148
+ --font-family-heading: Figtree, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
149
+ --font-family-code: ui-monospace, "SF Mono", Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
150
+ --color-syntax-keyword: light-dark(#700084, #efa8ff);
151
+ --color-syntax-string: light-dark(#005600, #a6d2a2);
152
+ --color-syntax-comment: light-dark(#737373, #a3a3a3);
153
+ --color-syntax-number: light-dark(#6e3500, #ffb37f);
154
+ --color-syntax-function: light-dark(#00458c, #a0caff);
155
+ --color-syntax-type: light-dark(#700084, #efa8ff);
156
+ --color-syntax-variable: light-dark(#171717, #e5e5e5);
157
+ --color-syntax-operator: light-dark(#737373, #a3a3a3);
158
+ --color-syntax-constant: light-dark(#6e3500, #ffb37f);
159
+ --color-syntax-tag: light-dark(#89001a, #ffaeaa);
160
+ --color-syntax-attribute: light-dark(#584400, #eec12f);
161
+ --color-syntax-property: light-dark(#005348, #83dac9);
162
+ --color-syntax-punctuation: light-dark(#a3a3a3, #525252);
163
+ --color-syntax-background: light-dark(#fafafa, #0a0a0a);
164
+ --color-background-surface: light-dark(#ffffff, #262626);
165
+ --color-background-body: light-dark(#f1f1f1, #1b1b1b);
166
+ --color-background-card: light-dark(#ffffff, #1b1b1b);
167
+ --color-background-popover: light-dark(#ffffff, #1b1b1b);
168
+ --color-background-muted: light-dark(#f1f1f1, #1b1b1b);
169
+ --color-accent: light-dark(#262626, #ebebeb);
170
+ --color-accent-muted: light-dark(#f1f1f1, #262626);
171
+ --color-neutral: light-dark(#0000000F, #FFFFFF1A);
172
+ --color-overlay: light-dark(#00000080, #000000CC);
173
+ --color-overlay-hover: light-dark(#0000000D, #FFFFFF0D);
174
+ --color-overlay-pressed: light-dark(#0000001A, #FFFFFF1A);
175
+ --color-text-primary: light-dark(#171717, #fafafa);
176
+ --color-text-secondary: light-dark(#737373, #a3a3a3);
177
+ --color-text-disabled: light-dark(#a3a3a3, #525252);
178
+ --color-text-accent: light-dark(#262626, #ebebeb);
179
+ --color-on-dark: #ffffff;
180
+ --color-on-light: #171717;
181
+ --color-on-accent: light-dark(#ffffff, #171717);
182
+ --color-on-success: light-dark(#ffffff, #171717);
183
+ --color-on-error: light-dark(#ffffff, #171717);
184
+ --color-on-warning: #171717;
185
+ --color-icon-accent: light-dark(#262626, #ebebeb);
186
+ --color-icon-primary: light-dark(#171717, #fafafa);
187
+ --color-icon-secondary: light-dark(#737373, #a3a3a3);
188
+ --color-icon-disabled: light-dark(#a3a3a3, #525252);
189
+ --color-success: light-dark(#007004, #9fe59b);
190
+ --color-error: light-dark(#a50c25, #ffc6c1);
191
+ --color-warning: light-dark(#745b00, #fdcf4f);
192
+ --color-success-muted: light-dark(#c5e5c0, #84c9803D);
193
+ --color-error-muted: light-dark(#facecb, #ff9e973D);
194
+ --color-warning-muted: light-dark(#f8da9d, #deb4333D);
195
+ --color-border: light-dark(#ebebeb, #FFFFFF1A);
196
+ --color-border-emphasized: light-dark(#d4d4d4, #525252);
197
+ --color-skeleton: light-dark(#ebebeb, #525252);
198
+ --color-shadow: light-dark(#0000001A, #0000004D);
199
+ --color-tint-hover: light-dark(black, white);
200
+ --color-background-red: light-dark(#facecb, #ff9e973D);
201
+ --color-border-red: light-dark(#e6bab8, #ff6f6c);
202
+ --color-icon-red: light-dark(#89001a, #ff9e97);
203
+ --color-text-red: light-dark(#89001a, #ffc6c1);
204
+ --color-background-orange: light-dark(#fad0b5, #ffa2583D);
205
+ --color-border-orange: light-dark(#e6bda2, #e2883e);
206
+ --color-icon-orange: light-dark(#6e3500, #ffa258);
207
+ --color-text-orange: light-dark(#6e3500, #ffc9a2);
208
+ --color-background-yellow: light-dark(#f8da9d, #deb4333D);
209
+ --color-border-yellow: light-dark(#e4c279, #c0990e);
210
+ --color-icon-yellow: light-dark(#584400, #deb433);
211
+ --color-text-yellow: light-dark(#584400, #fdcf4f);
212
+ --color-background-green: light-dark(#c5e5c0, #84c9803D);
213
+ --color-border-green: light-dark(#b2d1ac, #69ad67);
214
+ --color-icon-green: light-dark(#0c5700, #84c980);
215
+ --color-text-green: light-dark(#0c5700, #9fe59b);
216
+ --color-background-teal: light-dark(#a5e3d6, #7ec6b83D);
217
+ --color-border-teal: light-dark(#94d6c8, #63ab9d);
218
+ --color-icon-teal: light-dark(#005348, #7ec6b8);
219
+ --color-text-teal: light-dark(#005348, #99e2d3);
220
+ --color-background-cyan: light-dark(#a3e0ef, #83c2d43D);
221
+ --color-border-cyan: light-dark(#91d3e3, #67a7b8);
222
+ --color-icon-cyan: light-dark(#00505f, #83c2d4);
223
+ --color-text-cyan: light-dark(#00505f, #9edef0);
224
+ --color-background-blue: light-dark(#c4ddfb, #9eb7ff3D);
225
+ --color-border-blue: light-dark(#b1c9e7, #6d9cfe);
226
+ --color-icon-blue: light-dark(#00458c, #9eb7ff);
227
+ --color-text-blue: light-dark(#00458c, #c7d3ff);
228
+ --color-background-purple: light-dark(#eccef3, #f297ff3D);
229
+ --color-border-purple: light-dark(#d8bbdf, #dd74f0);
230
+ --color-icon-purple: light-dark(#700084, #f297ff);
231
+ --color-text-purple: light-dark(#700084, #fac1ff);
232
+ --color-background-pink: light-dark(#fccadc, #ff99c33D);
233
+ --color-border-pink: light-dark(#e7b7c8, #f273aa);
234
+ --color-icon-pink: light-dark(#83004b, #ff99c3);
235
+ --color-text-pink: light-dark(#83004b, #ffc3da);
236
+ --color-background-gray: light-dark(#e5e5e5, var(--color-neutral));
237
+ --color-border-gray: light-dark(#d4d4d4, #262626);
238
+ --color-icon-gray: light-dark(#525252, #a3a3a3);
239
+ --color-text-gray: light-dark(#262626, #e5e5e5);
240
+ --radius-none: 0.25rem;
241
+ --radius-inner: 0.375rem;
242
+ --radius-element: 0.625rem;
243
+ --radius-container: 0.75rem;
244
+ --radius-page: 1.75rem;
245
+ --radius-full: 9999px;
246
+ --shadow-low: 0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 25%)), 0 4px 8px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 40%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 8%));
247
+ --shadow-med: 0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 35%)), 0 4px 12px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 12%));
248
+ --shadow-high: 0 4px 6px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)), 0 12px 24px light-dark(oklch(0 0 0 / 15%), oklch(0 0 0 / 70%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 15%));
249
+ --shadow-inset-hover: inset 0px 0px 0px 2px #0074e24D;
250
+ --shadow-inset-selected: inset 0px 0px 0px 2px #0074e280;
251
+ --shadow-inset-success: inset 0px 0px 0px 2px #1981004D;
252
+ --shadow-inset-warning: inset 0px 0px 0px 2px #ffce2f4D;
253
+ --shadow-inset-error: inset 0px 0px 0px 2px #e33f4a4D;
254
+ }
255
+
256
+ .astryx-heading.level-1 {
257
+ font-family: var(--font-family-heading);
258
+ font-size: var(--text-heading-1-size);
259
+ font-weight: var(--text-heading-1-weight);
260
+ line-height: var(--text-heading-1-leading);
261
+ }
262
+
263
+ .astryx-heading.level-2 {
264
+ font-family: var(--font-family-heading);
265
+ font-size: var(--text-heading-2-size);
266
+ font-weight: var(--text-heading-2-weight);
267
+ line-height: var(--text-heading-2-leading);
268
+ }
269
+
270
+ .astryx-heading.level-3 {
271
+ font-family: var(--font-family-heading);
272
+ font-size: var(--text-heading-3-size);
273
+ font-weight: var(--text-heading-3-weight);
274
+ line-height: var(--text-heading-3-leading);
275
+ }
276
+
277
+ .astryx-heading.level-4 {
278
+ font-family: var(--font-family-heading);
279
+ font-size: var(--text-heading-4-size);
280
+ font-weight: var(--text-heading-4-weight);
281
+ line-height: var(--text-heading-4-leading);
282
+ }
283
+
284
+ .astryx-heading.level-5 {
285
+ font-family: var(--font-family-heading);
286
+ font-size: var(--text-heading-5-size);
287
+ font-weight: var(--text-heading-5-weight);
288
+ line-height: var(--text-heading-5-leading);
289
+ }
290
+
291
+ .astryx-heading.level-6 {
292
+ font-family: var(--font-family-heading);
293
+ font-size: var(--text-heading-6-size);
294
+ font-weight: var(--text-heading-6-weight);
295
+ line-height: var(--text-heading-6-leading);
296
+ }
297
+
298
+ .astryx-text.body {
299
+ font-family: var(--font-family-body);
300
+ font-size: var(--text-body-size);
301
+ line-height: var(--text-body-leading);
302
+ }
303
+
304
+ .astryx-text.large {
305
+ font-family: var(--font-family-body);
306
+ font-size: var(--text-large-size);
307
+ line-height: var(--text-large-leading);
308
+ }
309
+
310
+ .astryx-text.label {
311
+ font-family: var(--font-family-body);
312
+ font-size: var(--text-label-size);
313
+ line-height: var(--text-label-leading);
314
+ }
315
+
316
+ .astryx-text.code {
317
+ font-family: var(--font-family-code);
318
+ font-size: var(--text-code-size);
319
+ line-height: var(--text-code-leading);
320
+ }
321
+
322
+ .astryx-text.supporting {
323
+ font-family: var(--font-family-body);
324
+ font-size: var(--text-supporting-size);
325
+ line-height: var(--text-supporting-leading);
326
+ }
327
+
328
+ .astryx-text.display-1 {
329
+ font-family: var(--font-family-heading);
330
+ font-size: var(--text-display-1-size);
331
+ line-height: var(--text-display-1-leading);
332
+ }
333
+
334
+ .astryx-text.display-2 {
335
+ font-family: var(--font-family-heading);
336
+ font-size: var(--text-display-2-size);
337
+ line-height: var(--text-display-2-leading);
338
+ }
339
+
340
+ .astryx-text.display-3 {
341
+ font-family: var(--font-family-heading);
342
+ font-size: var(--text-display-3-size);
343
+ line-height: var(--text-display-3-leading);
344
+ }
345
+
346
+ .astryx-button.destructive {
347
+ background-color: var(--color-error-muted);
348
+ color: var(--color-error);
349
+ }
350
+
351
+ .astryx-badge.info {
352
+ background-color: light-dark(#0074e2, #6d9cfe);
353
+ color: light-dark(#ffffff, #171717);
354
+ }
355
+
356
+ .astryx-badge.neutral {
357
+ background-color: var(--color-background-gray);
358
+ color: var(--color-text-gray);
359
+ }
360
+
361
+ .astryx-badge.success {
362
+ background-color: light-dark(#198100, #64af4c);
363
+ color: light-dark(#ffffff, #171717);
364
+ }
365
+
366
+ .astryx-badge.warning {
367
+ background-color: #ffce2f;
368
+ color: #171717;
369
+ }
370
+
371
+ .astryx-badge.error {
372
+ background-color: light-dark(#e33f4a, #ff705d);
373
+ color: light-dark(#ffffff, #171717);
374
+ }
375
+
376
+ .astryx-badge.red {
377
+ background-color: var(--color-background-red);
378
+ color: var(--color-text-red);
379
+ }
380
+
381
+ .astryx-badge.orange {
382
+ background-color: var(--color-background-orange);
383
+ color: var(--color-text-orange);
384
+ }
385
+
386
+ .astryx-badge.yellow {
387
+ background-color: var(--color-background-yellow);
388
+ color: var(--color-text-yellow);
389
+ }
390
+
391
+ .astryx-badge.green {
392
+ background-color: var(--color-background-green);
393
+ color: var(--color-text-green);
394
+ }
395
+
396
+ .astryx-badge.teal {
397
+ background-color: var(--color-background-teal);
398
+ color: var(--color-text-teal);
399
+ }
400
+
401
+ .astryx-badge.cyan {
402
+ background-color: var(--color-background-cyan);
403
+ color: var(--color-text-cyan);
404
+ }
405
+
406
+ .astryx-badge.blue {
407
+ background-color: var(--color-background-blue);
408
+ color: var(--color-text-blue);
409
+ }
410
+
411
+ .astryx-badge.purple {
412
+ background-color: var(--color-background-purple);
413
+ color: var(--color-text-purple);
414
+ }
415
+
416
+ .astryx-badge.pink {
417
+ background-color: var(--color-background-pink);
418
+ color: var(--color-text-pink);
419
+ }
420
+
421
+ .astryx-badge.gray {
422
+ background-color: var(--color-background-gray);
423
+ color: var(--color-text-gray);
424
+ }
425
+
426
+ .astryx-banner.info {
427
+ background-color: var(--color-background-blue);
428
+ --color-accent-muted: transparent;
429
+ --color-text-primary: var(--color-text-blue);
430
+ --color-text-secondary: var(--color-text-blue);
431
+ --color-accent: var(--color-text-blue);
432
+ }
433
+
434
+ .astryx-banner.success {
435
+ --color-text-primary: var(--color-text-green);
436
+ --color-text-secondary: var(--color-text-green);
437
+ --color-success: var(--color-text-green);
438
+ }
439
+
440
+ .astryx-banner.warning {
441
+ --color-text-primary: var(--color-text-yellow);
442
+ --color-text-secondary: var(--color-text-yellow);
443
+ --color-warning: var(--color-text-yellow);
444
+ }
445
+
446
+ .astryx-banner.error {
447
+ --color-text-primary: var(--color-text-red);
448
+ --color-text-secondary: var(--color-text-red);
449
+ --color-error: var(--color-text-red);
450
+ }
451
+
452
+ .astryx-switch {
453
+ --color-background-gray: var(--color-border-emphasized);
454
+ }
455
+
456
+ .astryx-progressbar {
457
+ --color-background-muted: var(--color-border-emphasized);
458
+ }
459
+
460
+ .astryx-progressbar.accent {
461
+ --color-accent: #0074e2;
462
+ }
463
+
464
+ .astryx-progressbar.success {
465
+ --color-success: #198100;
466
+ }
467
+
468
+ .astryx-progressbar.warning {
469
+ --color-warning: #ffce2f;
470
+ }
471
+
472
+ .astryx-progressbar.error {
473
+ --color-error: #e33f4a;
474
+ }
475
+
476
+ .astryx-card {
477
+ --astryx-card-padding: var(--spacing-3);
478
+ }
479
+
480
+ .astryx-section {
481
+ --astryx-section-padding: var(--spacing-3);
482
+ }
483
+
484
+ .astryx-text.primary { color: var(--color-text-primary); }
485
+
486
+ .astryx-heading.primary { color: var(--color-text-primary); }
487
+
488
+ .astryx-text.secondary { color: var(--color-text-secondary); }
489
+
490
+ .astryx-heading.secondary { color: var(--color-text-secondary); }
491
+
492
+ .astryx-text.disabled { color: var(--color-text-disabled); }
493
+
494
+ .astryx-heading.disabled { color: var(--color-text-disabled); }
495
+
496
+ .astryx-text.placeholder { color: var(--color-text-secondary); }
497
+
498
+ .astryx-heading.placeholder { color: var(--color-text-secondary); }
499
+
500
+ .astryx-text.active { color: var(--color-accent); }
501
+
502
+ .astryx-heading.active { color: var(--color-accent); }
503
+ }
504
+ }
505
+
506
+ @layer astryx-theme {
507
+ @scope ([data-astryx-theme="neutral"]) to ([data-astryx-theme]) {
508
+ [data-astryx-media="dark"] {
509
+ color-scheme: dark;
510
+ --color-text-primary: var(--color-on-dark);
511
+ --color-icon-primary: var(--color-on-dark);
512
+ --color-accent: var(--color-on-dark);
513
+ }
514
+
515
+ [data-astryx-media="light"] {
516
+ color-scheme: light;
517
+ --color-text-primary: var(--color-on-light);
518
+ --color-icon-primary: var(--color-on-light);
519
+ --color-accent: var(--color-on-light);
520
+ }
521
+ }
522
+ }
package/package.json CHANGED
@@ -1,11 +1,62 @@
1
1
  {
2
2
  "name": "@astryxdesign/theme-neutral",
3
- "version": "0.0.0-bootstrap.0",
4
- "description": "Placeholder published to claim the npm name during trusted publishing setup. Do not install.",
5
- "homepage": "https://github.com/facebook/astryx",
3
+ "version": "0.1.0-canary.08d4cf4",
4
+ "displayName": "Neutral Theme",
5
+ "private": false,
6
+ "description": "Restrained warm grays. Minimal and quiet, so the content stays the focus.",
7
+ "author": "Meta Open Source",
6
8
  "license": "MIT",
9
+ "homepage": "https://github.com/facebook/astryx#readme",
7
10
  "repository": {
8
11
  "type": "git",
9
- "url": "git+https://github.com/facebook/astryx.git"
12
+ "url": "git+https://github.com/facebook/astryx.git",
13
+ "directory": "packages/themes/neutral"
14
+ },
15
+ "bugs": {
16
+ "url": "https://github.com/facebook/astryx/issues"
17
+ },
18
+ "keywords": [
19
+ "astryx",
20
+ "theme",
21
+ "design-system",
22
+ "lucide",
23
+ "design-tokens"
24
+ ],
25
+ "sideEffects": false,
26
+ "main": "./dist/source.js",
27
+ "types": "./dist/source.d.ts",
28
+ "exports": {
29
+ ".": {
30
+ "types": "./dist/source.d.ts",
31
+ "import": "./dist/source.mjs",
32
+ "require": "./dist/source.js"
33
+ },
34
+ "./built": {
35
+ "types": "./dist/neutral.d.ts",
36
+ "import": "./dist/neutral.js",
37
+ "require": "./dist/neutral.js"
38
+ },
39
+ "./theme.css": {
40
+ "types": "./theme.css.d.ts",
41
+ "default": "./dist/theme.css"
42
+ }
43
+ },
44
+ "files": [
45
+ "dist",
46
+ "src"
47
+ ],
48
+ "dependencies": {
49
+ "lucide-react": "^1.18.0"
50
+ },
51
+ "peerDependencies": {
52
+ "@astryxdesign/core": "0.1.0-canary.08d4cf4",
53
+ "react": ">=19"
54
+ },
55
+ "devDependencies": {
56
+ "@astryxdesign/cli": "0.1.0-canary.08d4cf4"
57
+ },
58
+ "module": "./dist/source.mjs",
59
+ "scripts": {
60
+ "build": "astryx theme build src/neutralTheme.ts -o dist/theme.css && tsup && tsc --project tsconfig.build.json"
10
61
  }
11
- }
62
+ }
package/src/icons.tsx ADDED
@@ -0,0 +1,77 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file icons.tsx
5
+ * @input Uses lucide-react icon components, IconRegistry type
6
+ * @output Exports neutralIconRegistry for the neutral theme
7
+ * @position Icon configuration for the neutral theme; consumed by index.ts
8
+ *
9
+ * Maps semantic icon names to Lucide icon components.
10
+ * These icons are bundled with the theme, not with @astryxdesign/core.
11
+ */
12
+
13
+ import React from 'react';
14
+ import type {IconRegistry} from '@astryxdesign/core/Icon';
15
+
16
+ import {
17
+ X,
18
+ ChevronDown,
19
+ ChevronLeft,
20
+ ChevronRight,
21
+ Check,
22
+ CheckCircle,
23
+ XCircle,
24
+ AlertTriangle,
25
+ Info,
26
+ Calendar,
27
+ Clock,
28
+ ExternalLink,
29
+ Menu,
30
+ MoreHorizontal,
31
+ Search,
32
+ ArrowUp,
33
+ ArrowDown,
34
+ ArrowUpDown,
35
+ Filter,
36
+ EyeOff,
37
+ Columns,
38
+ Copy,
39
+ CheckCheck,
40
+ Wrench,
41
+ Square,
42
+ Mic,
43
+ } from 'lucide-react';
44
+
45
+ const iconProps = {
46
+ size: '1em',
47
+ 'aria-hidden': true as const,
48
+ };
49
+
50
+ export const neutralIconRegistry: IconRegistry = {
51
+ close: <X {...iconProps} />,
52
+ chevronDown: <ChevronDown {...iconProps} />,
53
+ chevronLeft: <ChevronLeft {...iconProps} />,
54
+ chevronRight: <ChevronRight {...iconProps} />,
55
+ check: <Check {...iconProps} />,
56
+ success: <CheckCircle {...iconProps} />,
57
+ error: <XCircle {...iconProps} />,
58
+ warning: <AlertTriangle {...iconProps} />,
59
+ info: <Info {...iconProps} />,
60
+ calendar: <Calendar {...iconProps} />,
61
+ clock: <Clock {...iconProps} />,
62
+ externalLink: <ExternalLink {...iconProps} />,
63
+ menu: <Menu {...iconProps} />,
64
+ moreHorizontal: <MoreHorizontal {...iconProps} />,
65
+ search: <Search {...iconProps} />,
66
+ arrowUp: <ArrowUp {...iconProps} />,
67
+ arrowDown: <ArrowDown {...iconProps} />,
68
+ arrowsUpDown: <ArrowUpDown {...iconProps} />,
69
+ funnel: <Filter {...iconProps} />,
70
+ eyeSlash: <EyeOff {...iconProps} />,
71
+ viewColumns: <Columns {...iconProps} />,
72
+ copy: <Copy {...iconProps} />,
73
+ checkDouble: <CheckCheck {...iconProps} />,
74
+ wrench: <Wrench {...iconProps} />,
75
+ stop: <Square {...iconProps} />,
76
+ microphone: <Mic {...iconProps} />,
77
+ };