@colorye/react-native-css 0.3.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.
- package/README.md +198 -0
- package/crates/transformer/index.js +105 -0
- package/crates/transformer/transformer.darwin-arm64.node +0 -0
- package/crates/transformer/transformer.node +0 -0
- package/dist/babel.js +208 -0
- package/dist/exported-stylesheet.json +1 -0
- package/dist/features/build-transform.js +575 -0
- package/dist/features/css-calc.js +539 -0
- package/dist/features/css-media.js +77 -0
- package/dist/features/css-transform.js +426 -0
- package/dist/features/css-vars.js +153 -0
- package/dist/features/stylesheet.js +45 -0
- package/dist/index.d.ts +89 -0
- package/dist/index.js +60 -0
- package/dist/interop.js +260 -0
- package/dist/transformer-runtime.js +274 -0
- package/dist/transformer.js +100 -0
- package/dist/utils/babel.js +363 -0
- package/dist/utils/css.js +263 -0
- package/dist/utils/helper.js +11 -0
- package/package.json +51 -0
- package/src/babel.js +271 -0
- package/src/exported-stylesheet.json +1 -0
- package/src/features/build-transform.js +536 -0
- package/src/features/css-calc.js +490 -0
- package/src/features/css-media.js +78 -0
- package/src/features/css-transform.js +446 -0
- package/src/features/css-vars.js +138 -0
- package/src/features/stylesheet.js +29 -0
- package/src/index.d.ts +89 -0
- package/src/index.js +29 -0
- package/src/interop.js +269 -0
- package/src/transformer-runtime.js +241 -0
- package/src/transformer.js +87 -0
- package/src/utils/babel.js +425 -0
- package/src/utils/css.js +221 -0
- package/src/utils/helper.js +3 -0
- package/types.d.ts +47 -0
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@colorye/react-native-css",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"author": "Rye Nguyen <ryenguyen7411@gmail.com>",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"packageManager": "yarn@4.18.0+sha512.fcb8716fe7cd0eece141ffc18b92193a9df9204c1ba83189c288835223fc0bbe64af473bab0d5e9927a7daeb5caf2bb07eb2787cc9338ca040ea125f2a1f2f7e",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"prepare": "yarn build:js",
|
|
11
|
+
"build:native": "node scripts/build-native.js",
|
|
12
|
+
"build:js": "rm -rf ./dist && yarn run babel ./src -d ./dist --copy-files && cp src/index.d.ts dist/index.d.ts",
|
|
13
|
+
"build": "yarn build:native && yarn build:js"
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@babel/cli": "^7.22.9",
|
|
17
|
+
"@babel/core": "^7.22.9",
|
|
18
|
+
"@babel/generator": "^7.25.0",
|
|
19
|
+
"@babel/preset-env": "^7.22.9"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"lightningcss": "^1.29.0"
|
|
23
|
+
},
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"react": ">=18.0.0",
|
|
26
|
+
"react-native": "*"
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"dist",
|
|
30
|
+
"src",
|
|
31
|
+
"crates/transformer/index.js",
|
|
32
|
+
"crates/transformer/*.node",
|
|
33
|
+
"crates/transformer/transformer.node",
|
|
34
|
+
"types.d.ts",
|
|
35
|
+
"package.json",
|
|
36
|
+
"README.md"
|
|
37
|
+
],
|
|
38
|
+
"exports": {
|
|
39
|
+
".": {
|
|
40
|
+
"types": "./dist/index.d.ts",
|
|
41
|
+
"default": "./dist/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./types": "./types.d.ts",
|
|
44
|
+
"./transformer": "./dist/transformer.js",
|
|
45
|
+
"./native": "./crates/transformer/index.js",
|
|
46
|
+
"./babel": "./dist/babel.js",
|
|
47
|
+
"./exported-stylesheet.json": "./dist/exported-stylesheet.json",
|
|
48
|
+
"./dist/transformer-runtime": "./dist/transformer-runtime.js",
|
|
49
|
+
"./dist/transformer-runtime.js": "./dist/transformer-runtime.js"
|
|
50
|
+
}
|
|
51
|
+
}
|
package/src/babel.js
ADDED
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import nodePath from "path";
|
|
3
|
+
import {
|
|
4
|
+
getInheritStyleExpression,
|
|
5
|
+
getRootInheritStyleExpression,
|
|
6
|
+
getStaticMergeExpression,
|
|
7
|
+
getStyleExpression,
|
|
8
|
+
inlineStaticAttributes,
|
|
9
|
+
isFragmentElement,
|
|
10
|
+
isImportOrRequire,
|
|
11
|
+
isRootLevelJSXElement,
|
|
12
|
+
tryGetStaticStyleInfo,
|
|
13
|
+
} from "./utils/babel.js";
|
|
14
|
+
|
|
15
|
+
const libRoot = nodePath.dirname(__filename);
|
|
16
|
+
|
|
17
|
+
// Cache for loaded stylesheets
|
|
18
|
+
const stylesheetCache = new Map();
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Load pre-computed stylesheet JSON (generated by Metro transformer)
|
|
22
|
+
*/
|
|
23
|
+
function loadStylesheet(cssPath, fileDir) {
|
|
24
|
+
if (stylesheetCache.has(cssPath)) {
|
|
25
|
+
return stylesheetCache.get(cssPath);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
try {
|
|
29
|
+
const cwd = process.cwd();
|
|
30
|
+
const cleanPath = cssPath.replace(/^@\//, "");
|
|
31
|
+
|
|
32
|
+
// 1. Try project root relative paths
|
|
33
|
+
const projectRootJson = nodePath.resolve(cwd, cleanPath.endsWith(".json") ? cleanPath : `${cleanPath}.json`);
|
|
34
|
+
if (fs.existsSync(projectRootJson)) {
|
|
35
|
+
const content = fs.readFileSync(projectRootJson, "utf-8");
|
|
36
|
+
const stylesheet = JSON.parse(content);
|
|
37
|
+
stylesheetCache.set(cssPath, stylesheet);
|
|
38
|
+
return stylesheet;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const defaultIndexJson = nodePath.resolve(cwd, "index.css.json");
|
|
42
|
+
if (fs.existsSync(defaultIndexJson)) {
|
|
43
|
+
const content = fs.readFileSync(defaultIndexJson, "utf-8");
|
|
44
|
+
const stylesheet = JSON.parse(content);
|
|
45
|
+
stylesheetCache.set(cssPath, stylesheet);
|
|
46
|
+
return stylesheet;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// 2. Try fileDir if provided
|
|
50
|
+
if (fileDir) {
|
|
51
|
+
const localJson = nodePath.resolve(fileDir, cssPath);
|
|
52
|
+
if (fs.existsSync(localJson)) {
|
|
53
|
+
const content = fs.readFileSync(localJson, "utf-8");
|
|
54
|
+
const stylesheet = JSON.parse(content);
|
|
55
|
+
stylesheetCache.set(cssPath, stylesheet);
|
|
56
|
+
return stylesheet;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// 3. Try resolving the module if it's a module specifier like @colorye/react-native-css/exported-stylesheet.json
|
|
61
|
+
try {
|
|
62
|
+
const resolvedModule = require.resolve(cssPath, { paths: [cwd, libRoot] });
|
|
63
|
+
if (fs.existsSync(resolvedModule)) {
|
|
64
|
+
const content = fs.readFileSync(resolvedModule, "utf-8");
|
|
65
|
+
const stylesheet = JSON.parse(content);
|
|
66
|
+
stylesheetCache.set(cssPath, stylesheet);
|
|
67
|
+
return stylesheet;
|
|
68
|
+
}
|
|
69
|
+
} catch {}
|
|
70
|
+
|
|
71
|
+
// 4. Try the exported-stylesheet.json from lib directory
|
|
72
|
+
const exportedPath = nodePath.join(libRoot, "exported-stylesheet.json");
|
|
73
|
+
if (fs.existsSync(exportedPath)) {
|
|
74
|
+
const content = fs.readFileSync(exportedPath, "utf-8");
|
|
75
|
+
const stylesheet = JSON.parse(content);
|
|
76
|
+
stylesheetCache.set(cssPath, stylesheet);
|
|
77
|
+
return stylesheet;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// 5. Try .json next to the CSS file
|
|
81
|
+
const cssJsonPath = `${cssPath}.json`;
|
|
82
|
+
if (fs.existsSync(cssJsonPath)) {
|
|
83
|
+
const content = fs.readFileSync(cssJsonPath, "utf-8");
|
|
84
|
+
const stylesheet = JSON.parse(content);
|
|
85
|
+
stylesheetCache.set(cssPath, stylesheet);
|
|
86
|
+
return stylesheet;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return null;
|
|
90
|
+
} catch {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export default function ({ types: t }) {
|
|
96
|
+
return {
|
|
97
|
+
name: "@colorye/react-native-css",
|
|
98
|
+
visitor: {
|
|
99
|
+
Program: {
|
|
100
|
+
enter(path, state) {
|
|
101
|
+
if (!this.opts.css) {
|
|
102
|
+
console.warn("No css file provided");
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const { filename } = state.file.opts;
|
|
107
|
+
const options = {
|
|
108
|
+
paths: this.opts.paths || [],
|
|
109
|
+
excludes: this.opts.excludes || [],
|
|
110
|
+
css: this.opts.css,
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
// Normalize filename for cross-platform regex matching
|
|
114
|
+
const normalizedFilename = filename.replace(/\\/g, "/");
|
|
115
|
+
const regex = options.paths.map((p) => new RegExp(p));
|
|
116
|
+
const excludesRegex = options.excludes.map((p) => new RegExp(p));
|
|
117
|
+
if (
|
|
118
|
+
!regex.some((re) => normalizedFilename.match(re) || filename.match(re)) ||
|
|
119
|
+
excludesRegex.some((re) => normalizedFilename.match(re) || filename.match(re))
|
|
120
|
+
) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
state.enabled = true;
|
|
125
|
+
|
|
126
|
+
// Load pre-computed stylesheet for static inlining
|
|
127
|
+
state.stylesheetData = loadStylesheet(
|
|
128
|
+
options.css,
|
|
129
|
+
filename ? nodePath.dirname(filename) : null,
|
|
130
|
+
);
|
|
131
|
+
|
|
132
|
+
// Track which runtime helpers we need
|
|
133
|
+
state.needsGetStyle = false;
|
|
134
|
+
state.needsGetInheritStyle = false;
|
|
135
|
+
state.needsMergeStyles = false;
|
|
136
|
+
|
|
137
|
+
// Prepare runtime helper declarations
|
|
138
|
+
state.stylesheetId = path.scope.generateUidIdentifier();
|
|
139
|
+
state.stylesheet = t.variableDeclaration("var", [
|
|
140
|
+
t.variableDeclarator(
|
|
141
|
+
state.stylesheetId,
|
|
142
|
+
t.callExpression(t.identifier("require"), [t.stringLiteral(options.css)]),
|
|
143
|
+
),
|
|
144
|
+
]);
|
|
145
|
+
|
|
146
|
+
state.getStyleId = path.scope.generateUidIdentifier();
|
|
147
|
+
state.getStyle = t.variableDeclaration("var", [
|
|
148
|
+
t.variableDeclarator(
|
|
149
|
+
state.getStyleId,
|
|
150
|
+
t.memberExpression(
|
|
151
|
+
t.memberExpression(
|
|
152
|
+
t.callExpression(t.identifier("require"), [
|
|
153
|
+
t.stringLiteral("@colorye/react-native-css/dist/transformer-runtime"),
|
|
154
|
+
]),
|
|
155
|
+
t.identifier("default"),
|
|
156
|
+
),
|
|
157
|
+
t.identifier("getStyle"),
|
|
158
|
+
),
|
|
159
|
+
),
|
|
160
|
+
]);
|
|
161
|
+
|
|
162
|
+
state.getInheritStyleId = path.scope.generateUidIdentifier();
|
|
163
|
+
state.getInheritStyle = t.variableDeclaration("var", [
|
|
164
|
+
t.variableDeclarator(
|
|
165
|
+
state.getInheritStyleId,
|
|
166
|
+
t.memberExpression(
|
|
167
|
+
t.memberExpression(
|
|
168
|
+
t.callExpression(t.identifier("require"), [
|
|
169
|
+
t.stringLiteral("@colorye/react-native-css/dist/transformer-runtime"),
|
|
170
|
+
]),
|
|
171
|
+
t.identifier("default"),
|
|
172
|
+
),
|
|
173
|
+
t.identifier("getInheritStyle"),
|
|
174
|
+
),
|
|
175
|
+
),
|
|
176
|
+
]);
|
|
177
|
+
|
|
178
|
+
state.mergeStylesId = path.scope.generateUidIdentifier();
|
|
179
|
+
state.mergeStyles = t.variableDeclaration("var", [
|
|
180
|
+
t.variableDeclarator(
|
|
181
|
+
state.mergeStylesId,
|
|
182
|
+
t.memberExpression(
|
|
183
|
+
t.memberExpression(
|
|
184
|
+
t.callExpression(t.identifier("require"), [
|
|
185
|
+
t.stringLiteral("@colorye/react-native-css/dist/transformer-runtime"),
|
|
186
|
+
]),
|
|
187
|
+
t.identifier("default"),
|
|
188
|
+
),
|
|
189
|
+
t.identifier("mergeStyles"),
|
|
190
|
+
),
|
|
191
|
+
),
|
|
192
|
+
]);
|
|
193
|
+
},
|
|
194
|
+
exit(path, state) {
|
|
195
|
+
if (!state.enabled) return;
|
|
196
|
+
|
|
197
|
+
const helpers = [];
|
|
198
|
+
|
|
199
|
+
// Only inject helpers that are actually used
|
|
200
|
+
if (state.needsGetStyle) {
|
|
201
|
+
helpers.push(state.stylesheet);
|
|
202
|
+
helpers.push(state.getStyle);
|
|
203
|
+
}
|
|
204
|
+
if (state.needsGetInheritStyle) {
|
|
205
|
+
helpers.push(state.getInheritStyle);
|
|
206
|
+
}
|
|
207
|
+
if (state.needsMergeStyles) {
|
|
208
|
+
helpers.push(state.mergeStyles);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
if (helpers.length === 0) return;
|
|
212
|
+
|
|
213
|
+
const lastImport = path
|
|
214
|
+
.get("body")
|
|
215
|
+
.filter((p) => isImportOrRequire(p))
|
|
216
|
+
.pop();
|
|
217
|
+
|
|
218
|
+
helpers
|
|
219
|
+
.reverse()
|
|
220
|
+
.forEach((node) =>
|
|
221
|
+
lastImport ? lastImport.insertAfter(node) : path.unshiftContainer("body", node),
|
|
222
|
+
);
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
JSXElement(path, state) {
|
|
226
|
+
if (!state.enabled) return;
|
|
227
|
+
if (isFragmentElement(t, path.node.openingElement.name)) return;
|
|
228
|
+
|
|
229
|
+
// Perform zero-runtime static style inlining for static classes
|
|
230
|
+
inlineStaticAttributes(path, state, t);
|
|
231
|
+
|
|
232
|
+
const openingElement = path.node.openingElement;
|
|
233
|
+
const isRootLevel = isRootLevelJSXElement(path);
|
|
234
|
+
|
|
235
|
+
const shouldCombineStyles = openingElement.attributes.some(
|
|
236
|
+
(attr) => attr.name?.name === "__combinedStyles",
|
|
237
|
+
);
|
|
238
|
+
|
|
239
|
+
if (shouldCombineStyles) {
|
|
240
|
+
let styleExpressions;
|
|
241
|
+
|
|
242
|
+
// Try static inlining first (if stylesheet loaded and class is static)
|
|
243
|
+
if (state.stylesheetData) {
|
|
244
|
+
const staticInfo = tryGetStaticStyleInfo(path, state, t);
|
|
245
|
+
|
|
246
|
+
if (staticInfo) {
|
|
247
|
+
// Static class! Use lightweight mergeStyles
|
|
248
|
+
styleExpressions = getStaticMergeExpression(path, state, t, staticInfo);
|
|
249
|
+
state.needsMergeStyles = true;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
if (!styleExpressions) {
|
|
254
|
+
// Fall back to full runtime getStyle
|
|
255
|
+
state.needsGetStyle = true;
|
|
256
|
+
styleExpressions = getStyleExpression(path, state, t);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
const style = openingElement.attributes.find((attr) => attr.name?.name === "style");
|
|
260
|
+
if (style) {
|
|
261
|
+
style.value = t.jsxExpressionContainer(styleExpressions);
|
|
262
|
+
} else {
|
|
263
|
+
openingElement.attributes.push(
|
|
264
|
+
t.jsxAttribute(t.jsxIdentifier("style"), t.jsxExpressionContainer(styleExpressions)),
|
|
265
|
+
);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
},
|
|
270
|
+
};
|
|
271
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{":root":{"--font-sans":"-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\",\n \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\"","--font-mono":"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace","--spacing":".25rem","--font-weight-semibold":"600","--font-weight-bold":"700","--tracking-wider":".05em","--default-transition-duration":".15s","--default-transition-timing-function":"cubic-bezier(.4, 0, .2, 1)","--default-font-family":"var(--font-sans)","--default-mono-font-family":"var(--font-mono)","--color-yellow-500":"lab(77.1036% 13.6926 83.561)","--color-green-200":"lab(95.239% -10.8266 9.24107)","--color-green-500":"lab(57.4893% -40.5347 37.516)","--color-orange-500":"lab(66.2947% 49.6344 117.647)","--color-red-500":"lab(45.0394% 75.4726 71.4577)","--color-blue-200":"lab(88.4823% -12.6735 -16.6484)","--color-blue-500":"lab(43.2001% 15.8505 -66.7688)","--color-magenta-500":"lab(34.1384% 59.3948 -45.5364)","--color-black":"lab(0% 0 0)","--color-white":"lab(100% 0 0)","--color-navy-100":"lab(95.2175% -1.96895 -3.05733)","--color-navy-200":"lab(88.3954% -1.94326 -3.07581)","--color-navy-300":"lab(76.7078% -5.64724 -9.13405)","--color-navy-400":"lab(58.179% -8.91814 -15.0204)","--color-navy-500":"lab(39.6076% -11.2321 -20.6616)","--color-navy-600":"lab(20.9196% -10.7469 -25.9701)","--color-navy-700":"lab(3.17211% 1.80869 -28.6588)","--color-primary":"var(--color-blue-500)","--color-success":"var(--color-green-500)","--text-2xs":"10px","--text-2xs--line-height":"12px","--text-xs":"12px","--text-xs--line-height":"16px","--text-sm":"14px","--text-sm--line-height":"20px","--text-md":"18px","--text-md--line-height":"24px","--text-2xl":"32px","--text-2xl--line-height":"36px","--radius-lg":"16px","--radius-xl":"20px","--radius-full":"50%"},"static":{"position":"static"},"container":{"_static":{"width":"100%"},"_dynamic":{"@media (min-width: 580px)":{"_static":{"maxWidth":580},"_dynamic":{}},"@media (min-width: 768px)":{"_static":{"maxWidth":768},"_dynamic":{}},"@media (min-width: 980px)":{"_static":{"maxWidth":980},"_dynamic":{}},"@media (min-width: 1200px)":{"_static":{"maxWidth":1200},"_dynamic":{}}}},"mt-0.5":{"_static":{},"_dynamic":{"marginTop":"calc(var(--spacing) * .5)"}},"mt-1":{"_static":{},"_dynamic":{"marginTop":"var(--spacing)"}},"mt-4":{"_static":{},"_dynamic":{"marginTop":"calc(var(--spacing) * 4)"}},"mb-1":{"_static":{},"_dynamic":{"marginBottom":"var(--spacing)"}},"mb-2":{"_static":{},"_dynamic":{"marginBottom":"calc(var(--spacing) * 2)"}},"mb-3":{"_static":{},"_dynamic":{"marginBottom":"calc(var(--spacing) * 3)"}},"mb-4":{"_static":{},"_dynamic":{"marginBottom":"calc(var(--spacing) * 4)"}},"mb-5":{"_static":{},"_dynamic":{"marginBottom":"calc(var(--spacing) * 5)"}},"h-20":{"_static":{},"_dynamic":{"height":"calc(var(--spacing) * 20)"}},"w-20":{"_static":{},"_dynamic":{"width":"calc(var(--spacing) * 20)"}},"w-[48%]":{"width":"48%"},"flex-1":{"flex":1},"transform":{"_static":{},"_dynamic":{"transform":"var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, )"}},"flex-row":{"flexDirection":"row"},"flex-wrap":{"flexWrap":"wrap"},"items-center":{"alignItems":"center"},"justify-between":{"justifyContent":"space-between"},"justify-center":{"justifyContent":"center"},"gap-1":{"_static":{},"_dynamic":{"gap":"var(--spacing)"}},"gap-2":{"_static":{},"_dynamic":{"gap":"calc(var(--spacing) * 2)"}},"gap-y-2.5":{"_static":{},"_dynamic":{"rowGap":"calc(var(--spacing) * 2.5)"}},"rounded-full":{"_static":{},"_dynamic":{"borderRadius":"var(--radius-full)"}},"rounded-lg":{"_static":{},"_dynamic":{"borderRadius":"var(--radius-lg)"}},"rounded-xl":{"_static":{},"_dynamic":{"borderRadius":"var(--radius-xl)"}},"border":{"_static":{"borderWidth":1},"_dynamic":{"borderStyle":"var(--tw-border-style)"}},"border-s-4":{"_static":{"borderInlineStartWidth":4},"_dynamic":{"borderInlineStartStyle":"var(--tw-border-style)"}},"border-blue-500":{"_static":{},"_dynamic":{"borderColor":"var(--color-blue-500)"}},"border-blue-500/30":{"_static":{},"_dynamic":{"borderColor":"color-mix(in oklab, var(--color-blue-500) 30%, transparent)"}},"border-green-500":{"_static":{},"_dynamic":{"borderColor":"var(--color-green-500)"}},"border-green-500/30":{"_static":{},"_dynamic":{"borderColor":"color-mix(in oklab, var(--color-green-500) 30%, transparent)"}},"border-navy-300":{"_static":{},"_dynamic":{"borderColor":"var(--color-navy-300)"}},"border-navy-500":{"_static":{},"_dynamic":{"borderColor":"var(--color-navy-500)"}},"border-orange-500":{"_static":{},"_dynamic":{"borderColor":"var(--color-orange-500)"}},"border-primary":{"_static":{},"_dynamic":{"borderColor":"var(--color-primary)"}},"bg-blue-500":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-blue-500)"}},"bg-blue-500/10":{"_static":{},"_dynamic":{"backgroundColor":"color-mix(in oklab, var(--color-blue-500) 10%, transparent)"}},"bg-blue-500/20":{"_static":{},"_dynamic":{"backgroundColor":"color-mix(in oklab, var(--color-blue-500) 20%, transparent)"}},"bg-green-500":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-green-500)"}},"bg-green-500/10":{"_static":{},"_dynamic":{"backgroundColor":"color-mix(in oklab, var(--color-green-500) 10%, transparent)"}},"bg-green-500/20":{"_static":{},"_dynamic":{"backgroundColor":"color-mix(in oklab, var(--color-green-500) 20%, transparent)"}},"bg-magenta-500":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-magenta-500)"}},"bg-navy-100":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-navy-100)"}},"bg-navy-600":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-navy-600)"}},"bg-navy-700":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-navy-700)"}},"bg-orange-500":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-orange-500)"}},"bg-orange-500/10":{"_static":{},"_dynamic":{"backgroundColor":"color-mix(in oklab, var(--color-orange-500) 10%, transparent)"}},"bg-primary":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-primary)"}},"bg-primary/20":{"_static":{},"_dynamic":{"backgroundColor":"color-mix(in oklab, var(--color-primary) 20%, transparent)"}},"bg-primary/40":{"_static":{},"_dynamic":{"backgroundColor":"color-mix(in oklab, var(--color-primary) 40%, transparent)"}},"bg-primary/60":{"_static":{},"_dynamic":{"backgroundColor":"color-mix(in oklab, var(--color-primary) 60%, transparent)"}},"bg-primary/80":{"_static":{},"_dynamic":{"backgroundColor":"color-mix(in oklab, var(--color-primary) 80%, transparent)"}},"bg-red-500":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-red-500)"}},"bg-success":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-success)"}},"bg-transparent":{"backgroundColor":"#0000"},"bg-yellow-500":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-yellow-500)"}},"bg-gradient-to-tr":{"_static":{"--tw-gradient-position":"to top right in oklab"},"_dynamic":{"backgroundImage":"linear-gradient(var(--tw-gradient-stops))"}},"p-1":{"_static":{},"_dynamic":{"paddingTop":"var(--spacing)","paddingRight":"var(--spacing)","paddingBottom":"var(--spacing)","paddingLeft":"var(--spacing)"}},"p-3":{"_static":{},"_dynamic":{"paddingTop":"calc(var(--spacing) * 3)","paddingRight":"calc(var(--spacing) * 3)","paddingBottom":"calc(var(--spacing) * 3)","paddingLeft":"calc(var(--spacing) * 3)"}},"p-3.5":{"_static":{},"_dynamic":{"paddingTop":"calc(var(--spacing) * 3.5)","paddingRight":"calc(var(--spacing) * 3.5)","paddingBottom":"calc(var(--spacing) * 3.5)","paddingLeft":"calc(var(--spacing) * 3.5)"}},"p-4":{"_static":{},"_dynamic":{"paddingTop":"calc(var(--spacing) * 4)","paddingRight":"calc(var(--spacing) * 4)","paddingBottom":"calc(var(--spacing) * 4)","paddingLeft":"calc(var(--spacing) * 4)"}},"p-5":{"_static":{},"_dynamic":{"paddingTop":"calc(var(--spacing) * 5)","paddingRight":"calc(var(--spacing) * 5)","paddingBottom":"calc(var(--spacing) * 5)","paddingLeft":"calc(var(--spacing) * 5)"}},"p-6":{"_static":{},"_dynamic":{"paddingTop":"calc(var(--spacing) * 6)","paddingRight":"calc(var(--spacing) * 6)","paddingBottom":"calc(var(--spacing) * 6)","paddingLeft":"calc(var(--spacing) * 6)"}},"px-3":{"_static":{},"_dynamic":{"paddingHorizontal":"calc(var(--spacing) * 3)"}},"px-3.5":{"_static":{},"_dynamic":{"paddingHorizontal":"calc(var(--spacing) * 3.5)"}},"px-4":{"_static":{},"_dynamic":{"paddingHorizontal":"calc(var(--spacing) * 4)"}},"px-5":{"_static":{},"_dynamic":{"paddingHorizontal":"calc(var(--spacing) * 5)"}},"py-1":{"_static":{},"_dynamic":{"paddingVertical":"var(--spacing)"}},"py-2":{"_static":{},"_dynamic":{"paddingVertical":"calc(var(--spacing) * 2)"}},"py-2.5":{"_static":{},"_dynamic":{"paddingVertical":"calc(var(--spacing) * 2.5)"}},"py-3.5":{"_static":{},"_dynamic":{"paddingVertical":"calc(var(--spacing) * 3.5)"}},"py-4":{"_static":{},"_dynamic":{"paddingVertical":"calc(var(--spacing) * 4)"}},"pr-3":{"_static":{},"_dynamic":{"paddingRight":"calc(var(--spacing) * 3)"}},"pb-20":{"_static":{},"_dynamic":{"paddingBottom":"calc(var(--spacing) * 20)"}},"text-2xl":{"_static":{},"_dynamic":{"fontSize":"var(--text-2xl)","lineHeight":"var(--tw-leading, var(--text-2xl--line-height))"}},"text-2xs":{"_static":{},"_dynamic":{"fontSize":"var(--text-2xs)","lineHeight":"var(--tw-leading, var(--text-2xs--line-height))"}},"text-md":{"_static":{},"_dynamic":{"fontSize":"var(--text-md)","lineHeight":"var(--tw-leading, var(--text-md--line-height))"}},"text-sm":{"_static":{},"_dynamic":{"fontSize":"var(--text-sm)","lineHeight":"var(--tw-leading, var(--text-sm--line-height))"}},"text-xs":{"_static":{},"_dynamic":{"fontSize":"var(--text-xs)","lineHeight":"var(--tw-leading, var(--text-xs--line-height))"}},"font-bold":{"_static":{"--tw-font-weight":"var(--font-weight-bold)"},"_dynamic":{"fontWeight":"var(--font-weight-bold)"}},"font-semibold":{"_static":{"--tw-font-weight":"var(--font-weight-semibold)"},"_dynamic":{"fontWeight":"var(--font-weight-semibold)"}},"tracking-wider":{"_static":{"--tw-tracking":"var(--tracking-wider)"},"_dynamic":{"letterSpacing":"var(--tracking-wider)"}},"text-blue-200":{"_static":{},"_dynamic":{"color":"var(--color-blue-200)"}},"text-green-200":{"_static":{},"_dynamic":{"color":"var(--color-green-200)"}},"text-green-500":{"_static":{},"_dynamic":{"color":"var(--color-green-500)"}},"text-navy-200":{"_static":{},"_dynamic":{"color":"var(--color-navy-200)"}},"text-navy-300":{"_static":{},"_dynamic":{"color":"var(--color-navy-300)"}},"text-navy-600":{"_static":{},"_dynamic":{"color":"var(--color-navy-600)"}},"text-navy-700":{"_static":{},"_dynamic":{"color":"var(--color-navy-700)"}},"text-white":{"_static":{},"_dynamic":{"color":"var(--color-white)"}},"text-yellow-500":{"_static":{},"_dynamic":{"color":"var(--color-yellow-500)"}},"capitalize":{"textTransform":"capitalize"},"uppercase":{"textTransform":"uppercase"},"shadow-base":{"_static":{"--tw-shadow":"0px 0px 4px var(--tw-shadow-color, lab(0% 0 0 / .1))"},"_dynamic":{"boxShadow":"var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)"}},"transition":{"_static":{"transitionProperty":"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events"},"_dynamic":{"transitionTimingFunction":"var(--tw-ease, var(--default-transition-timing-function))","transitionDuration":"var(--tw-duration, var(--default-transition-duration))"}},"transition-all":{"_static":{"transitionProperty":"all"},"_dynamic":{"transitionTimingFunction":"var(--tw-ease, var(--default-transition-timing-function))","transitionDuration":"var(--tw-duration, var(--default-transition-duration))"}},"group-active:scale-105":{"_static":{"--tw-scale-x":"105%","--tw-scale-y":"105%","--tw-scale-z":"105%"},"_dynamic":{"scale":"var(--tw-scale-x) var(--tw-scale-y)"}},"group-active:bg-yellow-500":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-yellow-500)"}},"group-active:text-black":{"_static":{},"_dynamic":{"color":"var(--color-black)"}},"group-active:text-yellow-500":{"_static":{},"_dynamic":{"color":"var(--color-yellow-500)"}},"active:scale-95":{"_static":{"--tw-scale-x":"95%","--tw-scale-y":"95%","--tw-scale-z":"95%"},"_dynamic":{"scale":"var(--tw-scale-x) var(--tw-scale-y)"}},"scale-95":{"_static":{"--tw-scale-x":"95%","--tw-scale-y":"95%","--tw-scale-z":"95%"},"_dynamic":{"scale":"var(--tw-scale-x) var(--tw-scale-y)"}},"active:border-primary":{"_static":{},"_dynamic":{"borderColor":"var(--color-primary)"}},"active:bg-navy-600":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-navy-600)"}},"active:opacity-75":{"opacity":0.75},"opacity-75":{"opacity":0.75},"active:opacity-80":{"opacity":0.8},"opacity-80":{"opacity":0.8},"disabled:bg-navy-400":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-navy-400)"}},"bg-navy-400":{"_static":{},"_dynamic":{"backgroundColor":"var(--color-navy-400)"}},"disabled:opacity-40":{"opacity":0.4},"opacity-40":{"opacity":0.4}}
|