@react-native-rethemed/tailwind-css-tokens 0.0.0-stage → 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,461 @@
1
+ "use strict";
2
+ // Generated by scripts/generate.ts from tailwindcss@4.3.3 (theme.css).
3
+ // Do not edit by hand: run `pnpm generate` instead.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.text = exports.shadows = exports.letterSpacings = exports.lineHeights = exports.fontWeights = exports.fontSizes = exports.radii = exports.spacing = exports.colors = void 0;
6
+ /** Tailwind's palette (`--color-*`), converted from oklch to hex: `'<hue>.<shade>'`, plus `black` and `white`. */
7
+ exports.colors = {
8
+ 'red.50': '#fef2f2',
9
+ 'red.100': '#ffe2e2',
10
+ 'red.200': '#ffc9c9',
11
+ 'red.300': '#ffa2a2',
12
+ 'red.400': '#ff6467',
13
+ 'red.500': '#fb2c36',
14
+ 'red.600': '#e7000b',
15
+ 'red.700': '#c10007',
16
+ 'red.800': '#9f0712',
17
+ 'red.900': '#82181a',
18
+ 'red.950': '#460809',
19
+ 'orange.50': '#fff7ed',
20
+ 'orange.100': '#ffedd4',
21
+ 'orange.200': '#ffd6a8',
22
+ 'orange.300': '#ffb86a',
23
+ 'orange.400': '#ff8904',
24
+ 'orange.500': '#ff6900',
25
+ 'orange.600': '#f54a00',
26
+ 'orange.700': '#ca3500',
27
+ 'orange.800': '#9f2d00',
28
+ 'orange.900': '#7e2a0c',
29
+ 'orange.950': '#441306',
30
+ 'amber.50': '#fffbeb',
31
+ 'amber.100': '#fef3c6',
32
+ 'amber.200': '#fee685',
33
+ 'amber.300': '#ffd230',
34
+ 'amber.400': '#ffba00',
35
+ 'amber.500': '#fd9a00',
36
+ 'amber.600': '#e17100',
37
+ 'amber.700': '#bb4d00',
38
+ 'amber.800': '#973c00',
39
+ 'amber.900': '#7b3306',
40
+ 'amber.950': '#461901',
41
+ 'yellow.50': '#fefce8',
42
+ 'yellow.100': '#fef9c2',
43
+ 'yellow.200': '#fff085',
44
+ 'yellow.300': '#ffdf20',
45
+ 'yellow.400': '#fcc800',
46
+ 'yellow.500': '#efb100',
47
+ 'yellow.600': '#d08700',
48
+ 'yellow.700': '#a65f00',
49
+ 'yellow.800': '#894b00',
50
+ 'yellow.900': '#733e0a',
51
+ 'yellow.950': '#432004',
52
+ 'lime.50': '#f7fee7',
53
+ 'lime.100': '#ecfcca',
54
+ 'lime.200': '#d8f999',
55
+ 'lime.300': '#bbf451',
56
+ 'lime.400': '#9ae600',
57
+ 'lime.500': '#7ccf00',
58
+ 'lime.600': '#5ea500',
59
+ 'lime.700': '#497d00',
60
+ 'lime.800': '#3d6300',
61
+ 'lime.900': '#35530e',
62
+ 'lime.950': '#192e03',
63
+ 'green.50': '#f0fdf4',
64
+ 'green.100': '#dcfce7',
65
+ 'green.200': '#b9f8cf',
66
+ 'green.300': '#7bf1a8',
67
+ 'green.400': '#05df72',
68
+ 'green.500': '#00c951',
69
+ 'green.600': '#00a63e',
70
+ 'green.700': '#008236',
71
+ 'green.800': '#016630',
72
+ 'green.900': '#0d542b',
73
+ 'green.950': '#032e15',
74
+ 'emerald.50': '#ecfdf5',
75
+ 'emerald.100': '#d0fae5',
76
+ 'emerald.200': '#a4f4cf',
77
+ 'emerald.300': '#5ee9b5',
78
+ 'emerald.400': '#00d492',
79
+ 'emerald.500': '#00bc7d',
80
+ 'emerald.600': '#009966',
81
+ 'emerald.700': '#007a55',
82
+ 'emerald.800': '#006045',
83
+ 'emerald.900': '#004f3b',
84
+ 'emerald.950': '#002c22',
85
+ 'teal.50': '#f0fdfa',
86
+ 'teal.100': '#cbfbf1',
87
+ 'teal.200': '#96f7e4',
88
+ 'teal.300': '#46ecd5',
89
+ 'teal.400': '#00d5be',
90
+ 'teal.500': '#00bba7',
91
+ 'teal.600': '#009689',
92
+ 'teal.700': '#00786f',
93
+ 'teal.800': '#005f5a',
94
+ 'teal.900': '#0b4f4a',
95
+ 'teal.950': '#022f2e',
96
+ 'cyan.50': '#ecfeff',
97
+ 'cyan.100': '#cefafe',
98
+ 'cyan.200': '#a2f4fd',
99
+ 'cyan.300': '#53eafd',
100
+ 'cyan.400': '#00d3f2',
101
+ 'cyan.500': '#00b8db',
102
+ 'cyan.600': '#0092b8',
103
+ 'cyan.700': '#007595',
104
+ 'cyan.800': '#005f78',
105
+ 'cyan.900': '#104e64',
106
+ 'cyan.950': '#053345',
107
+ 'sky.50': '#f0f9ff',
108
+ 'sky.100': '#dff2fe',
109
+ 'sky.200': '#b8e6fe',
110
+ 'sky.300': '#74d4ff',
111
+ 'sky.400': '#00bcff',
112
+ 'sky.500': '#00a6f4',
113
+ 'sky.600': '#0084d1',
114
+ 'sky.700': '#0069a8',
115
+ 'sky.800': '#00598a',
116
+ 'sky.900': '#024a70',
117
+ 'sky.950': '#052f4a',
118
+ 'blue.50': '#eff6ff',
119
+ 'blue.100': '#dbeafe',
120
+ 'blue.200': '#bedbff',
121
+ 'blue.300': '#8ec5ff',
122
+ 'blue.400': '#51a2ff',
123
+ 'blue.500': '#2b7fff',
124
+ 'blue.600': '#155dfc',
125
+ 'blue.700': '#1447e6',
126
+ 'blue.800': '#193cb8',
127
+ 'blue.900': '#1c398e',
128
+ 'blue.950': '#162456',
129
+ 'indigo.50': '#eef2ff',
130
+ 'indigo.100': '#e0e7ff',
131
+ 'indigo.200': '#c6d2ff',
132
+ 'indigo.300': '#a3b3ff',
133
+ 'indigo.400': '#7c86ff',
134
+ 'indigo.500': '#615fff',
135
+ 'indigo.600': '#4f39f6',
136
+ 'indigo.700': '#432dd7',
137
+ 'indigo.800': '#372aac',
138
+ 'indigo.900': '#312c85',
139
+ 'indigo.950': '#1e1a4d',
140
+ 'violet.50': '#f5f3ff',
141
+ 'violet.100': '#ede9fe',
142
+ 'violet.200': '#ddd6ff',
143
+ 'violet.300': '#c4b4ff',
144
+ 'violet.400': '#a684ff',
145
+ 'violet.500': '#8e51ff',
146
+ 'violet.600': '#7f22fe',
147
+ 'violet.700': '#7008e7',
148
+ 'violet.800': '#5d0ec0',
149
+ 'violet.900': '#4d179a',
150
+ 'violet.950': '#2f0d68',
151
+ 'purple.50': '#faf5ff',
152
+ 'purple.100': '#f3e8ff',
153
+ 'purple.200': '#e9d4ff',
154
+ 'purple.300': '#dab2ff',
155
+ 'purple.400': '#c27aff',
156
+ 'purple.500': '#ad46ff',
157
+ 'purple.600': '#9810fa',
158
+ 'purple.700': '#8200db',
159
+ 'purple.800': '#6e11b0',
160
+ 'purple.900': '#59168b',
161
+ 'purple.950': '#3c0366',
162
+ 'fuchsia.50': '#fdf4ff',
163
+ 'fuchsia.100': '#fae8ff',
164
+ 'fuchsia.200': '#f6cfff',
165
+ 'fuchsia.300': '#f4a8ff',
166
+ 'fuchsia.400': '#ed6bff',
167
+ 'fuchsia.500': '#e12afb',
168
+ 'fuchsia.600': '#c800de',
169
+ 'fuchsia.700': '#a800b7',
170
+ 'fuchsia.800': '#8a0194',
171
+ 'fuchsia.900': '#721378',
172
+ 'fuchsia.950': '#4b004f',
173
+ 'pink.50': '#fdf2f8',
174
+ 'pink.100': '#fce7f3',
175
+ 'pink.200': '#fccee8',
176
+ 'pink.300': '#fda5d5',
177
+ 'pink.400': '#fb64b6',
178
+ 'pink.500': '#f6339a',
179
+ 'pink.600': '#e60076',
180
+ 'pink.700': '#c6005c',
181
+ 'pink.800': '#a3004c',
182
+ 'pink.900': '#861043',
183
+ 'pink.950': '#510424',
184
+ 'rose.50': '#fff1f2',
185
+ 'rose.100': '#ffe4e6',
186
+ 'rose.200': '#ffccd3',
187
+ 'rose.300': '#ffa1ad',
188
+ 'rose.400': '#ff637e',
189
+ 'rose.500': '#ff2056',
190
+ 'rose.600': '#ec003f',
191
+ 'rose.700': '#c70036',
192
+ 'rose.800': '#a50036',
193
+ 'rose.900': '#8b0836',
194
+ 'rose.950': '#4d0218',
195
+ 'slate.50': '#f8fafc',
196
+ 'slate.100': '#f1f5f9',
197
+ 'slate.200': '#e2e8f0',
198
+ 'slate.300': '#cad5e2',
199
+ 'slate.400': '#90a1b9',
200
+ 'slate.500': '#62748e',
201
+ 'slate.600': '#45556c',
202
+ 'slate.700': '#314158',
203
+ 'slate.800': '#1d293d',
204
+ 'slate.900': '#0f172b',
205
+ 'slate.950': '#020618',
206
+ 'gray.50': '#f9fafb',
207
+ 'gray.100': '#f3f4f6',
208
+ 'gray.200': '#e5e7eb',
209
+ 'gray.300': '#d1d5dc',
210
+ 'gray.400': '#99a1af',
211
+ 'gray.500': '#6a7282',
212
+ 'gray.600': '#4a5565',
213
+ 'gray.700': '#364153',
214
+ 'gray.800': '#1e2939',
215
+ 'gray.900': '#101828',
216
+ 'gray.950': '#030712',
217
+ 'zinc.50': '#fafafa',
218
+ 'zinc.100': '#f4f4f5',
219
+ 'zinc.200': '#e4e4e7',
220
+ 'zinc.300': '#d4d4d8',
221
+ 'zinc.400': '#9f9fa9',
222
+ 'zinc.500': '#71717b',
223
+ 'zinc.600': '#52525c',
224
+ 'zinc.700': '#3f3f46',
225
+ 'zinc.800': '#27272a',
226
+ 'zinc.900': '#18181b',
227
+ 'zinc.950': '#09090b',
228
+ 'neutral.50': '#fafafa',
229
+ 'neutral.100': '#f5f5f5',
230
+ 'neutral.200': '#e5e5e5',
231
+ 'neutral.300': '#d4d4d4',
232
+ 'neutral.400': '#a1a1a1',
233
+ 'neutral.500': '#737373',
234
+ 'neutral.600': '#525252',
235
+ 'neutral.700': '#404040',
236
+ 'neutral.800': '#262626',
237
+ 'neutral.900': '#171717',
238
+ 'neutral.950': '#0a0a0a',
239
+ 'stone.50': '#fafaf9',
240
+ 'stone.100': '#f5f5f4',
241
+ 'stone.200': '#e7e5e4',
242
+ 'stone.300': '#d6d3d1',
243
+ 'stone.400': '#a6a09b',
244
+ 'stone.500': '#79716b',
245
+ 'stone.600': '#57534d',
246
+ 'stone.700': '#44403b',
247
+ 'stone.800': '#292524',
248
+ 'stone.900': '#1c1917',
249
+ 'stone.950': '#0c0a09',
250
+ 'mauve.50': '#fafafa',
251
+ 'mauve.100': '#f3f1f3',
252
+ 'mauve.200': '#e7e4e7',
253
+ 'mauve.300': '#d7d0d7',
254
+ 'mauve.400': '#a89ea9',
255
+ 'mauve.500': '#79697b',
256
+ 'mauve.600': '#594c5b',
257
+ 'mauve.700': '#463947',
258
+ 'mauve.800': '#2a212c',
259
+ 'mauve.900': '#1d161e',
260
+ 'mauve.950': '#0c090c',
261
+ 'olive.50': '#fbfbf9',
262
+ 'olive.100': '#f4f4f0',
263
+ 'olive.200': '#e8e8e3',
264
+ 'olive.300': '#d8d8d0',
265
+ 'olive.400': '#abab9c',
266
+ 'olive.500': '#7c7c67',
267
+ 'olive.600': '#5b5b4b',
268
+ 'olive.700': '#474739',
269
+ 'olive.800': '#2b2b22',
270
+ 'olive.900': '#1d1d16',
271
+ 'olive.950': '#0c0c09',
272
+ 'mist.50': '#f9fbfb',
273
+ 'mist.100': '#f1f3f3',
274
+ 'mist.200': '#e3e7e8',
275
+ 'mist.300': '#d0d6d8',
276
+ 'mist.400': '#9ca8ab',
277
+ 'mist.500': '#67787c',
278
+ 'mist.600': '#4b585b',
279
+ 'mist.700': '#394447',
280
+ 'mist.800': '#22292b',
281
+ 'mist.900': '#161b1d',
282
+ 'mist.950': '#090b0c',
283
+ 'taupe.50': '#fbfaf9',
284
+ 'taupe.100': '#f3f1f1',
285
+ 'taupe.200': '#e8e4e3',
286
+ 'taupe.300': '#d8d2d0',
287
+ 'taupe.400': '#aba09c',
288
+ 'taupe.500': '#7c6d67',
289
+ 'taupe.600': '#5b4f4b',
290
+ 'taupe.700': '#473c39',
291
+ 'taupe.800': '#2b2422',
292
+ 'taupe.900': '#1d1816',
293
+ 'taupe.950': '#0c0a09',
294
+ black: '#000000',
295
+ white: '#ffffff',
296
+ };
297
+ /** `--spacing` (0.25rem) × n for the steps in Tailwind's docs: `padding: 4` is `p-4` (16). `px` is 1. */
298
+ exports.spacing = {
299
+ px: 1,
300
+ 0: 0,
301
+ 0.5: 2,
302
+ 1: 4,
303
+ 1.5: 6,
304
+ 2: 8,
305
+ 2.5: 10,
306
+ 3: 12,
307
+ 3.5: 14,
308
+ 4: 16,
309
+ 5: 20,
310
+ 6: 24,
311
+ 7: 28,
312
+ 8: 32,
313
+ 9: 36,
314
+ 10: 40,
315
+ 11: 44,
316
+ 12: 48,
317
+ 14: 56,
318
+ 16: 64,
319
+ 20: 80,
320
+ 24: 96,
321
+ 28: 112,
322
+ 32: 128,
323
+ 36: 144,
324
+ 40: 160,
325
+ 44: 176,
326
+ 48: 192,
327
+ 52: 208,
328
+ 56: 224,
329
+ 60: 240,
330
+ 64: 256,
331
+ 72: 288,
332
+ 80: 320,
333
+ 96: 384,
334
+ };
335
+ /** `--radius-*` in points, plus the `rounded-none` / `rounded-full` utilities. */
336
+ exports.radii = {
337
+ none: 0,
338
+ xs: 2,
339
+ sm: 4,
340
+ md: 6,
341
+ lg: 8,
342
+ xl: 12,
343
+ '2xl': 16,
344
+ '3xl': 24,
345
+ '4xl': 32,
346
+ full: 9999,
347
+ };
348
+ /** `--text-*` sizes in points. */
349
+ exports.fontSizes = {
350
+ xs: 12,
351
+ sm: 14,
352
+ base: 16,
353
+ lg: 18,
354
+ xl: 20,
355
+ '2xl': 24,
356
+ '3xl': 30,
357
+ '4xl': 36,
358
+ '5xl': 48,
359
+ '6xl': 60,
360
+ '7xl': 72,
361
+ '8xl': 96,
362
+ '9xl': 128,
363
+ };
364
+ /** `--font-weight-*`. */
365
+ exports.fontWeights = {
366
+ thin: '100',
367
+ extralight: '200',
368
+ light: '300',
369
+ normal: '400',
370
+ medium: '500',
371
+ semibold: '600',
372
+ bold: '700',
373
+ extrabold: '800',
374
+ black: '900',
375
+ };
376
+ /** `--leading-*` as ratios of `fontSize`, plus the `leading-none` utility. */
377
+ exports.lineHeights = {
378
+ none: 1,
379
+ tight: 1.25,
380
+ snug: 1.375,
381
+ normal: 1.5,
382
+ relaxed: 1.625,
383
+ loose: 2,
384
+ };
385
+ /** `--tracking-*`: em values converted to points at a 16px font size. */
386
+ exports.letterSpacings = {
387
+ tighter: -0.8,
388
+ tight: -0.4,
389
+ normal: 0,
390
+ wide: 0.4,
391
+ wider: 0.8,
392
+ widest: 1.6,
393
+ };
394
+ /** `--shadow-*` as single-layer RN shadows (first layer). */
395
+ exports.shadows = {
396
+ '2xs': {
397
+ shadowColor: '#000000',
398
+ shadowOffset: { width: 0, height: 1 },
399
+ shadowOpacity: 0.05,
400
+ shadowRadius: 0,
401
+ elevation: 1,
402
+ },
403
+ xs: {
404
+ shadowColor: '#000000',
405
+ shadowOffset: { width: 0, height: 1 },
406
+ shadowOpacity: 0.05,
407
+ shadowRadius: 1,
408
+ elevation: 1,
409
+ },
410
+ sm: {
411
+ shadowColor: '#000000',
412
+ shadowOffset: { width: 0, height: 1 },
413
+ shadowOpacity: 0.1,
414
+ shadowRadius: 1.5,
415
+ elevation: 2,
416
+ },
417
+ md: {
418
+ shadowColor: '#000000',
419
+ shadowOffset: { width: 0, height: 4 },
420
+ shadowOpacity: 0.1,
421
+ shadowRadius: 3,
422
+ elevation: 4,
423
+ },
424
+ lg: {
425
+ shadowColor: '#000000',
426
+ shadowOffset: { width: 0, height: 10 },
427
+ shadowOpacity: 0.1,
428
+ shadowRadius: 7.5,
429
+ elevation: 8,
430
+ },
431
+ xl: {
432
+ shadowColor: '#000000',
433
+ shadowOffset: { width: 0, height: 20 },
434
+ shadowOpacity: 0.1,
435
+ shadowRadius: 12.5,
436
+ elevation: 12,
437
+ },
438
+ '2xl': {
439
+ shadowColor: '#000000',
440
+ shadowOffset: { width: 0, height: 25 },
441
+ shadowOpacity: 0.25,
442
+ shadowRadius: 25,
443
+ elevation: 16,
444
+ },
445
+ };
446
+ /** `text-*` as presets: each size with its paired `--text-*--line-height`, made absolute. */
447
+ exports.text = {
448
+ xs: { fontSize: 12, lineHeight: 16 },
449
+ sm: { fontSize: 14, lineHeight: 20 },
450
+ base: { fontSize: 16, lineHeight: 24 },
451
+ lg: { fontSize: 18, lineHeight: 28 },
452
+ xl: { fontSize: 20, lineHeight: 28 },
453
+ '2xl': { fontSize: 24, lineHeight: 32 },
454
+ '3xl': { fontSize: 30, lineHeight: 36 },
455
+ '4xl': { fontSize: 36, lineHeight: 40 },
456
+ '5xl': { fontSize: 48, lineHeight: 48 },
457
+ '6xl': { fontSize: 60, lineHeight: 60 },
458
+ '7xl': { fontSize: 72, lineHeight: 72 },
459
+ '8xl': { fontSize: 96, lineHeight: 96 },
460
+ '9xl': { fontSize: 128, lineHeight: 128 },
461
+ };
@@ -0,0 +1,26 @@
1
+ import { colors, fontSizes, fontWeights, letterSpacings, lineHeights, radii, shadows, spacing, text } from './tokens.gen.js';
2
+ /**
3
+ * Tailwind CSS's default theme (`tailwindcss/theme.css`), converted for
4
+ * React Native with Tailwind's names. Values are generated by
5
+ * `scripts/generate.ts`; see `src/tokens.gen.ts`.
6
+ *
7
+ * - Lengths: rem → points at 16px; em letter spacings → points at 16px.
8
+ * - `colors`: the oklch palette as hex, `'<hue>.<shade>'` (`'sky.500'`).
9
+ * Fixed in both schemes: Tailwind has no semantic colors (it uses `dark:`
10
+ * variants), so define `semanticTokens.colors` in the app.
11
+ * - `spacing`: `padding: 4` is `p-4` (16), for the steps Tailwind's docs
12
+ * list. `radii` / `lineHeights` add the `rounded-none` / `rounded-full` /
13
+ * `leading-none` utilities.
14
+ * - `text`: `themed.text.sm()` is `text-sm` — font size plus its paired line
15
+ * height. `fontSizes` (`fontSize: 'sm'`) sets the size alone.
16
+ * - `defaults.fontSize` is `base` (16), the size `lineHeights` ratios use when
17
+ * a style has no `fontSize` of its own.
18
+ * - `shadows`: first layer only. Not included (no RN equivalent): fonts,
19
+ * inset / drop / text shadows, blur, perspective, easing, animations,
20
+ * aspect ratios, breakpoints, containers.
21
+ *
22
+ * The palette, radii and shadows are the same values as
23
+ * `@react-native-rethemed/panda-css-tokens` (Panda's preset uses Tailwind's).
24
+ */
25
+ export declare const tailwindCssTheme: import("@react-native-rethemed/core/config").ThemeConfig;
26
+ export { colors, fontSizes, fontWeights, letterSpacings, lineHeights, radii, shadows, spacing, text, };
@@ -0,0 +1,44 @@
1
+ import { defineTheme } from '@react-native-rethemed/core/config';
2
+ import { colors, fontSizes, fontWeights, letterSpacings, lineHeights, radii, shadows, spacing, text, } from './tokens.gen.js';
3
+ /**
4
+ * Tailwind CSS's default theme (`tailwindcss/theme.css`), converted for
5
+ * React Native with Tailwind's names. Values are generated by
6
+ * `scripts/generate.ts`; see `src/tokens.gen.ts`.
7
+ *
8
+ * - Lengths: rem → points at 16px; em letter spacings → points at 16px.
9
+ * - `colors`: the oklch palette as hex, `'<hue>.<shade>'` (`'sky.500'`).
10
+ * Fixed in both schemes: Tailwind has no semantic colors (it uses `dark:`
11
+ * variants), so define `semanticTokens.colors` in the app.
12
+ * - `spacing`: `padding: 4` is `p-4` (16), for the steps Tailwind's docs
13
+ * list. `radii` / `lineHeights` add the `rounded-none` / `rounded-full` /
14
+ * `leading-none` utilities.
15
+ * - `text`: `themed.text.sm()` is `text-sm` — font size plus its paired line
16
+ * height. `fontSizes` (`fontSize: 'sm'`) sets the size alone.
17
+ * - `defaults.fontSize` is `base` (16), the size `lineHeights` ratios use when
18
+ * a style has no `fontSize` of its own.
19
+ * - `shadows`: first layer only. Not included (no RN equivalent): fonts,
20
+ * inset / drop / text shadows, blur, perspective, easing, animations,
21
+ * aspect ratios, breakpoints, containers.
22
+ *
23
+ * The palette, radii and shadows are the same values as
24
+ * `@react-native-rethemed/panda-css-tokens` (Panda's preset uses Tailwind's).
25
+ */
26
+ export const tailwindCssTheme = defineTheme({
27
+ tokens: {
28
+ colors,
29
+ radii,
30
+ spacing,
31
+ fontSizes,
32
+ fontWeights,
33
+ lineHeights,
34
+ letterSpacings,
35
+ shadows,
36
+ },
37
+ semanticTokens: {
38
+ text,
39
+ },
40
+ defaults: {
41
+ fontSize: 'base',
42
+ },
43
+ });
44
+ export { colors, fontSizes, fontWeights, letterSpacings, lineHeights, radii, shadows, spacing, text, };
@@ -0,0 +1 @@
1
+ {"type":"module"}