@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/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}}