@protoflexo/proto-ui 0.1.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,296 @@
1
+ /*
2
+ * Flex Design System Tokens
3
+ * Extracted from genoa/src/rxp/unistyles.ts and genoa/src/rxp/globalStyles.ts
4
+ *
5
+ * Naming: --flex-{category}-{name}
6
+ */
7
+
8
+ :root {
9
+ /* ========================================
10
+ RAW PALETTE
11
+ ======================================== */
12
+
13
+ /* Brand Purples */
14
+ --flex-brand-purple-01: #2C194D;
15
+ --flex-brand-purple-02: #6A3DB8;
16
+ --flex-brand-purple-03: #DDC6F9;
17
+ --flex-brand-purple-04: #EEE2FC;
18
+ --flex-brand-purple-05: #E3E1E6;
19
+
20
+ /* Primary */
21
+ --flex-off-white: #F7F7F7;
22
+ --flex-off-black: #1D1D1D;
23
+ --flex-white: #FFFFFF;
24
+ --flex-black: #000000;
25
+
26
+ /* Gray Purple */
27
+ --flex-gray-purple-01: #EDEBF1;
28
+ --flex-gray-purple-02: #D5D1DB;
29
+ --flex-gray-purple-03: #C0BACA;
30
+ --flex-gray-purple-04: #ABA3B8;
31
+ --flex-gray-purple-05: #958CA6;
32
+ --flex-gray-purple-06: #807594;
33
+ --flex-gray-purple-07: #6B5E82;
34
+ --flex-gray-purple-08: #564771;
35
+
36
+ /* Gray */
37
+ --flex-gray-01: #F3F3F3;
38
+ --flex-gray-02: #EEEEEE;
39
+ --flex-gray-03: #E2E2E2;
40
+ --flex-gray-04: #BBBBBB;
41
+ --flex-gray-05: #949494;
42
+ --flex-gray-06: #737373;
43
+ --flex-gray-07: #6A6A6A;
44
+ --flex-gray-08: #535353;
45
+
46
+ /* Success */
47
+ --flex-success-01: #01795C;
48
+ --flex-success-02: #67AF9D;
49
+ --flex-success-03: #B3D7CE;
50
+ --flex-success-04: #E6F2EF;
51
+
52
+ /* Error */
53
+ --flex-error-01: #7A0800;
54
+ --flex-error-02: #E27474;
55
+ --flex-error-03: #F0BABA;
56
+ --flex-error-04: #FAE8E8;
57
+
58
+ /* Warning */
59
+ --flex-warning-01: #C8880A;
60
+ --flex-warning-02: rgba(200, 136, 10, 0.6);
61
+ --flex-warning-03: rgba(200, 136, 10, 0.3);
62
+ --flex-warning-04: rgba(200, 136, 10, 0.1);
63
+ --flex-warning-05: #FFF5E2;
64
+
65
+ /* Red */
66
+ --flex-red-01: #CE1818;
67
+ --flex-red-02: rgba(206, 24, 24, 0.6);
68
+ --flex-red-03: rgba(206, 24, 24, 0.3);
69
+ --flex-red-04: rgba(206, 24, 24, 0.1);
70
+
71
+ /* Blue */
72
+ --flex-blue-01: #00359C;
73
+ --flex-blue-02: #1C53BA;
74
+ --flex-blue-03: #6CA3EB;
75
+ --flex-blue-04: #B1D4FF;
76
+ --flex-blue-05: #E5EEFF;
77
+
78
+ /* Legacy named colors */
79
+ --flex-jewel-purple: #6A3DB8;
80
+ --flex-flavender: #B28CF4;
81
+ --flex-soft-lilac: #DDC6F9;
82
+ --flex-purple-powder: #EEE2FC;
83
+ --flex-midnight: #0E0622;
84
+ --flex-dusk: #767184;
85
+ --flex-storm: #C7C3D1;
86
+ --flex-cloud: #ECEAF2;
87
+ --flex-wildflower: #F7F7FA;
88
+ --flex-evergreen: #01795C;
89
+ --flex-fire-engine: #D6001A;
90
+ --flex-cider: #A16B00;
91
+ --flex-amber: #C58301;
92
+ --flex-forward-blue: #1C53BA;
93
+ --flex-frost: #E5EEFF;
94
+
95
+ /* ========================================
96
+ SEMANTIC COLOR TOKENS
97
+ ======================================== */
98
+
99
+ /* Base */
100
+ --flex-base-surface: var(--flex-white);
101
+ --flex-base-on-surface: var(--flex-off-black);
102
+ --flex-base-primary: var(--flex-brand-purple-01);
103
+ --flex-base-secondary: var(--flex-gray-purple-02);
104
+ --flex-base-interactive: var(--flex-brand-purple-02);
105
+ --flex-base-critical: var(--flex-red-01);
106
+ --flex-base-warning: var(--flex-warning-01);
107
+ --flex-base-success: var(--flex-success-01);
108
+ --flex-base-highlight: var(--flex-blue-02);
109
+
110
+ /* Text */
111
+ --flex-text-default: var(--flex-off-black);
112
+ --flex-text-subdued: var(--flex-gray-07);
113
+ --flex-text-disabled: var(--flex-gray-03);
114
+ --flex-text-on-dark: var(--flex-white);
115
+ --flex-text-on-dark-subdued: var(--flex-off-white);
116
+ --flex-text-link: var(--flex-brand-purple-01);
117
+ --flex-text-link-inline: var(--flex-brand-purple-02);
118
+ --flex-text-link-disabled: var(--flex-gray-07);
119
+ --flex-text-link-pressed: var(--flex-brand-purple-02);
120
+ --flex-text-link-on-dark: var(--flex-white);
121
+ --flex-text-link-on-dark-subdued: var(--flex-off-white);
122
+ --flex-text-action: var(--flex-brand-purple-01);
123
+ --flex-text-action-on-dark: var(--flex-off-white);
124
+ --flex-text-action-on-light-disabled: var(--flex-gray-purple-03);
125
+ --flex-text-critical: var(--flex-red-01);
126
+ --flex-text-critical-pressed: var(--flex-red-02);
127
+ --flex-text-critical-disabled: var(--flex-red-03);
128
+ --flex-text-success: var(--flex-success-01);
129
+ --flex-text-warning: var(--flex-warning-01);
130
+ --flex-text-highlight: var(--flex-blue-01);
131
+
132
+ /* Surface */
133
+ --flex-surface-default: var(--flex-white);
134
+ --flex-surface-subdued: var(--flex-off-white);
135
+ --flex-surface-pressed: var(--flex-brand-purple-01);
136
+ --flex-surface-disabled: var(--flex-gray-purple-01);
137
+ --flex-surface-callout: var(--flex-gray-02);
138
+ --flex-surface-brand: var(--flex-brand-purple-04);
139
+ --flex-surface-brand-subdued: var(--flex-gray-purple-01);
140
+ --flex-surface-brand-dark: var(--flex-brand-purple-02);
141
+ --flex-surface-brand-darkest: var(--flex-brand-purple-01);
142
+ --flex-surface-critical: var(--flex-error-04);
143
+ --flex-surface-critical-dark: var(--flex-error-01);
144
+ --flex-surface-success: var(--flex-success-04);
145
+ --flex-surface-success-dark: var(--flex-success-01);
146
+ --flex-surface-warning: var(--flex-warning-05);
147
+ --flex-surface-warning-dark: var(--flex-warning-01);
148
+ --flex-surface-highlight: var(--flex-blue-05);
149
+ --flex-surface-highlight-dark: var(--flex-blue-01);
150
+
151
+ /* Action */
152
+ --flex-action-primary: var(--flex-brand-purple-01);
153
+ --flex-action-primary-pressed: var(--flex-brand-purple-02);
154
+ --flex-action-primary-disabled: var(--flex-gray-03);
155
+ --flex-action-secondary: var(--flex-gray-purple-01);
156
+ --flex-action-secondary-pressed: var(--flex-gray-purple-02);
157
+ --flex-action-secondary-disabled: var(--flex-gray-03);
158
+ --flex-action-selection-default: var(--flex-gray-purple-01);
159
+ --flex-action-selection-pressed: var(--flex-brand-purple-02);
160
+ --flex-action-selection-disabled: var(--flex-gray-03);
161
+ --flex-action-on-dark: var(--flex-white);
162
+ --flex-action-progress-inactive: var(--flex-gray-purple-02);
163
+
164
+ /* Focus */
165
+ --flex-focus: var(--flex-brand-purple-02);
166
+
167
+ /* Icon */
168
+ --flex-icon-primary: var(--flex-brand-purple-01);
169
+ --flex-icon-subdued: var(--flex-gray-07);
170
+ --flex-icon-primary-disabled: var(--flex-brand-purple-05);
171
+ --flex-icon-subdued-disabled: var(--flex-gray-03);
172
+ --flex-icon-brand: var(--flex-brand-purple-02);
173
+ --flex-icon-brand-dark: var(--flex-brand-purple-01);
174
+ --flex-icon-brand-subdued: var(--flex-gray-purple-05);
175
+ --flex-icon-on-dark: var(--flex-white);
176
+ --flex-icon-critical: var(--flex-red-01);
177
+ --flex-icon-success: var(--flex-success-01);
178
+ --flex-icon-warning: var(--flex-warning-01);
179
+
180
+ /* Border */
181
+ --flex-border-default: var(--flex-gray-04);
182
+ --flex-border-subdued: var(--flex-gray-03);
183
+ --flex-border-hover: var(--flex-brand-purple-03);
184
+ --flex-border-pressed: var(--flex-brand-purple-02);
185
+ --flex-border-disabled: var(--flex-gray-purple-02);
186
+ --flex-border-action-default: var(--flex-brand-purple-05);
187
+ --flex-border-action-pressed: var(--flex-brand-purple-02);
188
+ --flex-border-critical: var(--flex-red-01);
189
+ --flex-border-critical-subdued: var(--flex-red-03);
190
+ --flex-border-success: var(--flex-success-01);
191
+ --flex-border-success-subdued: var(--flex-success-03);
192
+ --flex-border-warning: var(--flex-warning-01);
193
+ --flex-border-highlight: var(--flex-blue-01);
194
+
195
+ /* Decorative */
196
+ --flex-decorative-surface-1: var(--flex-gray-purple-02);
197
+ --flex-decorative-surface-2: var(--flex-blue-05);
198
+ --flex-decorative-surface-3: var(--flex-brand-purple-04);
199
+ --flex-decorative-surface-4: var(--flex-warning-05);
200
+ --flex-decorative-surface-5: var(--flex-gray-01);
201
+
202
+ /* Background */
203
+ --flex-background-dark: var(--flex-off-white);
204
+ --flex-background-lighter: var(--flex-white);
205
+
206
+ /* ========================================
207
+ SPACING
208
+ ======================================== */
209
+ --flex-space-12: 2px;
210
+ --flex-space-18: 3px;
211
+ --flex-space-25: 4px;
212
+ --flex-space-37: 6px;
213
+ --flex-space-50: 8px;
214
+ --flex-space-75: 12px;
215
+ --flex-space-87: 14px;
216
+ --flex-space-100: 16px;
217
+ --flex-space-112: 18px;
218
+ --flex-space-125: 20px;
219
+ --flex-space-150: 24px;
220
+ --flex-space-175: 28px;
221
+ --flex-space-200: 32px;
222
+ --flex-space-250: 40px;
223
+ --flex-space-275: 44px;
224
+ --flex-space-300: 48px;
225
+ --flex-space-325: 52px;
226
+ --flex-space-350: 56px;
227
+ --flex-space-375: 60px;
228
+ --flex-space-400: 64px;
229
+ --flex-space-500: 80px;
230
+ --flex-space-600: 96px;
231
+ --flex-space-725: 116px;
232
+ --flex-space-800: 128px;
233
+ --flex-space-900: 144px;
234
+
235
+ /* ========================================
236
+ BORDER RADIUS
237
+ ======================================== */
238
+ --flex-radius-none: 0px;
239
+ --flex-radius-xs: 2px;
240
+ --flex-radius-sm: 4px;
241
+ --flex-radius-md: 8px;
242
+ --flex-radius-mlg: 10px;
243
+ --flex-radius-lg: 12px;
244
+ --flex-radius-xl: 16px;
245
+ --flex-radius-xxl: 20px;
246
+ --flex-radius-xxxl: 24px;
247
+ --flex-radius-super: 100px;
248
+ --flex-radius-full: 9999px;
249
+
250
+ /* ========================================
251
+ FONT FAMILIES
252
+ ======================================== */
253
+ --flex-font-sans: 'ABCDiatype', system-ui, -apple-system, sans-serif;
254
+ --flex-font-serif: 'CooperBT-Medium', Georgia, serif;
255
+ --flex-font-mono: 'ABCDiatypeSemi-Mono', ui-monospace, monospace;
256
+
257
+ /* ========================================
258
+ FONT SIZES
259
+ ======================================== */
260
+ --flex-font-size-250: 10px;
261
+ --flex-font-size-300: 12px;
262
+ --flex-font-size-350: 14px;
263
+ --flex-font-size-400: 16px;
264
+ --flex-font-size-450: 18px;
265
+ --flex-font-size-500: 20px;
266
+ --flex-font-size-550: 22px;
267
+ --flex-font-size-600: 24px;
268
+ --flex-font-size-700: 28px;
269
+ --flex-font-size-800: 32px;
270
+ --flex-font-size-900: 36px;
271
+ --flex-font-size-1000: 40px;
272
+ --flex-font-size-1200: 48px;
273
+
274
+ /* ========================================
275
+ LINE HEIGHTS
276
+ ======================================== */
277
+ --flex-line-height-350: 14px;
278
+ --flex-line-height-400: 16px;
279
+ --flex-line-height-450: 18px;
280
+ --flex-line-height-475: 19px;
281
+ --flex-line-height-500: 20px;
282
+ --flex-line-height-550: 22px;
283
+ --flex-line-height-600: 24px;
284
+ --flex-line-height-700: 28px;
285
+ --flex-line-height-850: 34px;
286
+ --flex-line-height-925: 37px;
287
+ --flex-line-height-1050: 42px;
288
+ --flex-line-height-1225: 49px;
289
+
290
+ /* ========================================
291
+ FONT WEIGHTS
292
+ ======================================== */
293
+ --flex-font-weight-regular: 400;
294
+ --flex-font-weight-medium: 500;
295
+ --flex-font-weight-bold: 700;
296
+ }
@@ -0,0 +1,299 @@
1
+ /*
2
+ * Flex Typography Preset Classes
3
+ * Extracted from genoa/src/rxp/components/Typography/Typography.tsx
4
+ *
5
+ * Usage: <span class="flex-type-body">Text</span>
6
+ * Or via Typography component: <Typography type="body">Text</Typography>
7
+ */
8
+
9
+ /* ── Heading Semantic Tokens ─────────────────────────────── */
10
+
11
+ .flex-type-hero-lg {
12
+ font-family: var(--flex-font-serif);
13
+ font-size: 40px;
14
+ line-height: 42px;
15
+ font-weight: 400;
16
+ letter-spacing: -0.8px;
17
+ }
18
+
19
+ .flex-type-hero-lg-italic {
20
+ font-family: var(--flex-font-serif);
21
+ font-size: 40px;
22
+ line-height: 42px;
23
+ font-weight: 400;
24
+ letter-spacing: -0.8px;
25
+ font-style: italic;
26
+ }
27
+
28
+ .flex-type-hero-lg-number {
29
+ font-family: var(--flex-font-mono);
30
+ font-size: 48px;
31
+ line-height: 49px;
32
+ font-weight: 500;
33
+ letter-spacing: -0.96px;
34
+ }
35
+
36
+ .flex-type-hero-md {
37
+ font-family: var(--flex-font-serif);
38
+ font-size: 28px;
39
+ line-height: 37px;
40
+ font-weight: 400;
41
+ letter-spacing: -0.56px;
42
+ }
43
+
44
+ .flex-type-hero-md-italic {
45
+ font-family: var(--flex-font-serif);
46
+ font-size: 32px;
47
+ line-height: 37px;
48
+ font-weight: 400;
49
+ letter-spacing: -0.64px;
50
+ font-style: italic;
51
+ }
52
+
53
+ .flex-type-hero-sm {
54
+ font-family: var(--flex-font-sans);
55
+ font-size: 32px;
56
+ line-height: 37px;
57
+ font-weight: 700;
58
+ letter-spacing: 0;
59
+ }
60
+
61
+ .flex-type-hero-sm-expressive {
62
+ font-family: var(--flex-font-serif);
63
+ font-size: 32px;
64
+ line-height: 37px;
65
+ font-weight: 400;
66
+ letter-spacing: 0;
67
+ }
68
+
69
+ .flex-type-hero-sm-expressive-italic {
70
+ font-family: var(--flex-font-serif);
71
+ font-size: 32px;
72
+ line-height: 37px;
73
+ font-weight: 400;
74
+ letter-spacing: 0;
75
+ font-style: italic;
76
+ }
77
+
78
+ .flex-type-hero-sm-number {
79
+ font-family: var(--flex-font-mono);
80
+ font-size: 24px;
81
+ line-height: 34px;
82
+ font-weight: 500;
83
+ letter-spacing: 0;
84
+ }
85
+
86
+ .flex-type-page-title {
87
+ font-family: var(--flex-font-sans);
88
+ font-size: 22px;
89
+ line-height: 34px;
90
+ font-weight: 700;
91
+ letter-spacing: -0.44px;
92
+ }
93
+
94
+ .flex-type-section-title {
95
+ font-family: var(--flex-font-sans);
96
+ font-size: 18px;
97
+ line-height: 28px;
98
+ font-weight: 700;
99
+ letter-spacing: -0.36px;
100
+ }
101
+
102
+ .flex-type-title-number {
103
+ font-family: var(--flex-font-mono);
104
+ font-size: 20px;
105
+ line-height: 28px;
106
+ font-weight: 500;
107
+ letter-spacing: -0.4px;
108
+ }
109
+
110
+ .flex-type-header-sm {
111
+ font-family: var(--flex-font-sans);
112
+ font-size: 16px;
113
+ line-height: 24px;
114
+ font-weight: 500;
115
+ letter-spacing: -0.16px;
116
+ }
117
+
118
+ .flex-type-headline {
119
+ font-family: var(--flex-font-serif);
120
+ font-size: 48px;
121
+ line-height: 49px;
122
+ font-weight: 400;
123
+ letter-spacing: -0.96px;
124
+ }
125
+
126
+ /* ── Body Semantic Tokens ────────────────────────────────── */
127
+
128
+ .flex-type-body {
129
+ font-family: var(--flex-font-sans);
130
+ font-size: 16px;
131
+ line-height: 21.6px;
132
+ font-weight: 400;
133
+ letter-spacing: -0.16px;
134
+ }
135
+
136
+ .flex-type-body-md {
137
+ font-family: var(--flex-font-sans);
138
+ font-size: 14px;
139
+ line-height: 18px;
140
+ font-weight: 400;
141
+ letter-spacing: -0.14px;
142
+ }
143
+
144
+ .flex-type-body-sm {
145
+ font-family: var(--flex-font-sans);
146
+ font-size: 12px;
147
+ line-height: 16px;
148
+ font-weight: 400;
149
+ letter-spacing: -0.12px;
150
+ }
151
+
152
+ .flex-type-body-xs {
153
+ font-family: var(--flex-font-sans);
154
+ font-size: 10px;
155
+ line-height: 14px;
156
+ font-weight: 400;
157
+ letter-spacing: -0.1px;
158
+ }
159
+
160
+ .flex-type-body-bold {
161
+ font-family: var(--flex-font-sans);
162
+ font-size: 16px;
163
+ line-height: 22px;
164
+ font-weight: 700;
165
+ letter-spacing: -0.16px;
166
+ }
167
+
168
+ .flex-type-body-md-bold {
169
+ font-family: var(--flex-font-sans);
170
+ font-size: 14px;
171
+ line-height: 18px;
172
+ font-weight: 700;
173
+ letter-spacing: -0.14px;
174
+ }
175
+
176
+ .flex-type-body-input {
177
+ font-family: var(--flex-font-sans);
178
+ font-size: 16px;
179
+ line-height: 21.6px;
180
+ font-weight: 400;
181
+ letter-spacing: 0;
182
+ }
183
+
184
+ .flex-type-body-hyperlink {
185
+ font-family: var(--flex-font-sans);
186
+ font-size: 16px;
187
+ line-height: 21.6px;
188
+ font-weight: 500;
189
+ letter-spacing: -0.16px;
190
+ text-decoration: underline;
191
+ }
192
+
193
+ .flex-type-body-md-hyperlink {
194
+ font-family: var(--flex-font-sans);
195
+ font-size: 14px;
196
+ line-height: 18px;
197
+ font-weight: 400;
198
+ letter-spacing: -0.14px;
199
+ text-decoration: underline;
200
+ }
201
+
202
+ /* ── Label Tokens ────────────────────────────────────────── */
203
+
204
+ .flex-type-label {
205
+ font-family: var(--flex-font-sans);
206
+ font-size: 16px;
207
+ line-height: 21.6px;
208
+ font-weight: 500;
209
+ letter-spacing: 0;
210
+ }
211
+
212
+ .flex-type-label-sm {
213
+ font-family: var(--flex-font-sans);
214
+ font-size: 12px;
215
+ line-height: 16.2px;
216
+ font-weight: 400;
217
+ letter-spacing: -0.12px;
218
+ }
219
+
220
+ .flex-type-label-sm-bold {
221
+ font-family: var(--flex-font-sans);
222
+ font-size: 12px;
223
+ line-height: 16.2px;
224
+ font-weight: 700;
225
+ letter-spacing: -0.12px;
226
+ }
227
+
228
+ .flex-type-label-sm-hyperlink {
229
+ font-family: var(--flex-font-sans);
230
+ font-size: 12px;
231
+ line-height: 16.2px;
232
+ font-weight: 400;
233
+ letter-spacing: -0.12px;
234
+ text-decoration: underline;
235
+ }
236
+
237
+ /* ── Button Tokens ───────────────────────────────────────── */
238
+
239
+ .flex-type-button {
240
+ font-family: var(--flex-font-sans);
241
+ font-size: 16px;
242
+ line-height: 21.6px;
243
+ font-weight: 500;
244
+ letter-spacing: -0.16px;
245
+ }
246
+
247
+ .flex-type-button-sm {
248
+ font-family: var(--flex-font-sans);
249
+ font-size: 14px;
250
+ line-height: 19px;
251
+ font-weight: 500;
252
+ letter-spacing: -0.14px;
253
+ }
254
+
255
+ /* ── Number Tokens ───────────────────────────────────────── */
256
+
257
+ .flex-type-number {
258
+ font-family: var(--flex-font-mono);
259
+ font-size: 16px;
260
+ line-height: 21.6px;
261
+ font-weight: 400;
262
+ letter-spacing: -0.16px;
263
+ }
264
+
265
+ .flex-type-number-bold {
266
+ font-family: var(--flex-font-mono);
267
+ font-size: 16px;
268
+ line-height: 21.6px;
269
+ font-weight: 700;
270
+ letter-spacing: -0.16px;
271
+ }
272
+
273
+ /* ── Caption & Overline ──────────────────────────────────── */
274
+
275
+ .flex-type-caption {
276
+ font-family: var(--flex-font-sans);
277
+ font-size: 10px;
278
+ line-height: 13.5px;
279
+ font-weight: 400;
280
+ letter-spacing: -0.1px;
281
+ }
282
+
283
+ .flex-type-caption-hyperlink {
284
+ font-family: var(--flex-font-sans);
285
+ font-size: 10px;
286
+ line-height: 13.5px;
287
+ font-weight: 400;
288
+ letter-spacing: -0.1px;
289
+ text-decoration: underline;
290
+ }
291
+
292
+ .flex-type-overline {
293
+ font-family: var(--flex-font-sans);
294
+ font-size: 10px;
295
+ line-height: 13.5px;
296
+ font-weight: 400;
297
+ letter-spacing: 1px;
298
+ text-transform: uppercase;
299
+ }
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@protoflexo/proto-ui",
3
+ "version": "0.1.0",
4
+ "description": "Flex design system components for ProtoFlexo prototypes",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ },
14
+ "./tokens.css": "./dist/tokens.css",
15
+ "./typography.css": "./dist/typography.css",
16
+ "./fonts.css": "./dist/fonts.css"
17
+ },
18
+ "files": ["dist"],
19
+ "publishConfig": {
20
+ "access": "public"
21
+ },
22
+ "scripts": {
23
+ "build": "tsup",
24
+ "dev": "tsup --watch",
25
+ "typecheck": "tsc --noEmit"
26
+ },
27
+ "devDependencies": {
28
+ "tsup": "^8.0.0",
29
+ "react": "^19.0.0",
30
+ "react-dom": "^19.0.0",
31
+ "@types/react": "^19.0.0",
32
+ "@types/react-dom": "^19.0.0",
33
+ "typescript": "^5.0.0"
34
+ },
35
+ "peerDependencies": {
36
+ "react": "^18.0.0 || ^19.0.0",
37
+ "react-dom": "^18.0.0 || ^19.0.0"
38
+ }
39
+ }