@tamagui/tailwind 0.0.0-bootstrap.0 → 3.0.0-beta.643.1

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.
Files changed (77) hide show
  1. package/dist/cjs/candidate.cjs +385 -0
  2. package/dist/cjs/candidate.native.cjs +431 -0
  3. package/dist/cjs/candidate.native.js +433 -0
  4. package/dist/cjs/candidate.native.js.map +1 -0
  5. package/dist/cjs/frontend.cjs +80 -0
  6. package/dist/cjs/frontend.native.cjs +95 -0
  7. package/dist/cjs/frontend.native.js +97 -0
  8. package/dist/cjs/frontend.native.js.map +1 -0
  9. package/dist/cjs/index.cjs +39 -0
  10. package/dist/cjs/index.native.cjs +41 -0
  11. package/dist/cjs/index.native.js +43 -0
  12. package/dist/cjs/index.native.js.map +1 -0
  13. package/dist/cjs/styled.cjs +30 -0
  14. package/dist/cjs/styled.native.cjs +32 -0
  15. package/dist/cjs/styled.native.js +34 -0
  16. package/dist/cjs/styled.native.js.map +1 -0
  17. package/dist/cjs/types.cjs +17 -0
  18. package/dist/cjs/types.native.cjs +19 -0
  19. package/dist/cjs/types.native.js +21 -0
  20. package/dist/cjs/types.native.js.map +1 -0
  21. package/dist/cjs/vite/state.cjs +249 -0
  22. package/dist/cjs/vite/state.native.cjs +331 -0
  23. package/dist/cjs/vite/state.native.js +333 -0
  24. package/dist/cjs/vite/state.native.js.map +1 -0
  25. package/dist/cjs/vite.cjs +148 -0
  26. package/dist/cjs/vite.native.cjs +188 -0
  27. package/dist/cjs/vite.native.js +190 -0
  28. package/dist/cjs/vite.native.js.map +1 -0
  29. package/dist/esm/candidate.mjs +360 -0
  30. package/dist/esm/candidate.mjs.map +1 -0
  31. package/dist/esm/candidate.native.js +404 -0
  32. package/dist/esm/candidate.native.js.map +1 -0
  33. package/dist/esm/frontend.mjs +57 -0
  34. package/dist/esm/frontend.mjs.map +1 -0
  35. package/dist/esm/frontend.native.js +70 -0
  36. package/dist/esm/frontend.native.js.map +1 -0
  37. package/dist/esm/index.mjs +11 -0
  38. package/dist/esm/index.mjs.map +1 -0
  39. package/dist/esm/index.native.js +11 -0
  40. package/dist/esm/index.native.js.map +1 -0
  41. package/dist/esm/styled.mjs +10 -0
  42. package/dist/esm/styled.mjs.map +1 -0
  43. package/dist/esm/styled.native.js +10 -0
  44. package/dist/esm/styled.native.js.map +1 -0
  45. package/dist/esm/types.mjs +0 -0
  46. package/dist/esm/types.native.js +0 -0
  47. package/dist/esm/vite/state.mjs +215 -0
  48. package/dist/esm/vite/state.mjs.map +1 -0
  49. package/dist/esm/vite/state.native.js +295 -0
  50. package/dist/esm/vite/state.native.js.map +1 -0
  51. package/dist/esm/vite.mjs +116 -0
  52. package/dist/esm/vite.mjs.map +1 -0
  53. package/dist/esm/vite.native.js +154 -0
  54. package/dist/esm/vite.native.js.map +1 -0
  55. package/package.json +88 -5
  56. package/src/candidate.ts +527 -0
  57. package/src/frontend.ts +116 -0
  58. package/src/index.tsx +24 -0
  59. package/src/styled.tsx +52 -0
  60. package/src/types.ts +226 -0
  61. package/src/vite/state.ts +274 -0
  62. package/src/vite.ts +204 -0
  63. package/types/candidate.d.ts +23 -0
  64. package/types/candidate.d.ts.map +1 -0
  65. package/types/frontend.d.ts +20 -0
  66. package/types/frontend.d.ts.map +1 -0
  67. package/types/index.d.ts +8 -0
  68. package/types/index.d.ts.map +1 -0
  69. package/types/styled.d.ts +12 -0
  70. package/types/styled.d.ts.map +1 -0
  71. package/types/types.d.ts +158 -0
  72. package/types/types.d.ts.map +1 -0
  73. package/types/vite/state.d.ts +28 -0
  74. package/types/vite/state.d.ts.map +1 -0
  75. package/types/vite.d.ts +20 -0
  76. package/types/vite.d.ts.map +1 -0
  77. package/README.md +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styled.native.js","names":[],"sources":["esm/styled.native.js"],"sourcesContent":["import { createFrontendStyled } from \"@tamagui/core/internal-runtime\";\nimport { tailwindStyleFrontend } from \"./frontend\";\nvar styledWithFrontend = createFrontendStyled(tailwindStyleFrontend);\nfunction styled(Component, optionsOrBaseClassName, maybeOptions) {\n return styledWithFrontend(Component, optionsOrBaseClassName, maybeOptions);\n}\nexport {\n styled\n};\n//# sourceMappingURL=styled.js.map\n"],"mappings":";;;;AAEA,IAAI,qBAAqB,qBAAqB,qBAAqB;AACnE,SAAS,OAAO,WAAW,wBAAwB,cAAc;CAC/D,OAAO,mBAAmB,WAAW,wBAAwB,YAAY;AAC3E"}
File without changes
File without changes
@@ -0,0 +1,215 @@
1
+ import { compile } from "@tailwindcss/node";
2
+ import { Scanner } from "@tailwindcss/oxide";
3
+ import { classifyCandidate, createGrammarConfigView } from "@tamagui/style-grammar/runtime";
4
+ import { readFile, realpath } from "node:fs/promises";
5
+ import { createRequire } from "node:module";
6
+ import path from "node:path";
7
+
8
+ const TAILWIND_VERSION = "4.3.0";
9
+ const TAILWIND_VIRTUAL_ID = "virtual:tamagui-tailwind.css";
10
+ const TAILWIND_RESOLVED_ID = `\0${TAILWIND_VIRTUAL_ID}`;
11
+ function wrapWithTamaguiLayer(css) {
12
+ return `@layer tamagui {
13
+ ${css}
14
+ }`;
15
+ }
16
+ function isTamaguiCoreResetCSS(id) {
17
+ const normalizedId = id.split("?", 1)[0].replace(/\\/g, "/");
18
+ return normalizedId.endsWith("/@tamagui/core/reset.css") || normalizedId.endsWith("/code/core/core/reset.css");
19
+ }
20
+ const TAILWIND_INPUT = `@layer tamagui, theme, utilities;
21
+ @import "tailwindcss/theme.css" layer(theme);
22
+ @import "tailwindcss/utilities.css" layer(utilities);`;
23
+ function extensionForFile(id) {
24
+ return path.extname(id.split("?", 1)[0]).slice(1) || "html";
25
+ }
26
+ async function assertHostTailwind(root) {
27
+ const requireFromRoot = createRequire(path.join(root, "package.json"));
28
+ let packagePath;
29
+ try {
30
+ packagePath = requireFromRoot.resolve("tailwindcss/package.json");
31
+ } catch {
32
+ throw new Error(`[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION} in the app. Install it with \`bun add -D tailwindcss@${TAILWIND_VERSION}\` (resolved from ${root}).`);
33
+ }
34
+ const packageJSON = JSON.parse(await readFile(packagePath, "utf8"));
35
+ if (packageJSON.version !== "4.3.0") {
36
+ throw new Error(`[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION}, but ${packageJSON.version || "an unknown version"} was resolved from ${packagePath}. Align the app dependency before starting Vite.`);
37
+ }
38
+ }
39
+ function createTailwindScannerState() {
40
+ let root = "";
41
+ let generation = -1;
42
+ let enabled = false;
43
+ let scanner = null;
44
+ let compiler = null;
45
+ let grammarConfig = createGrammarConfigView({});
46
+ let candidatesByFile = /* @__PURE__ */ new Map();
47
+ let compiledCandidates = /* @__PURE__ */ new Set();
48
+ let addDependency = () => {};
49
+ let css = "";
50
+ function clear() {
51
+ root = "";
52
+ generation = -1;
53
+ enabled = false;
54
+ scanner = null;
55
+ compiler = null;
56
+ grammarConfig = createGrammarConfigView({});
57
+ candidatesByFile = /* @__PURE__ */ new Map();
58
+ compiledCandidates = /* @__PURE__ */ new Set();
59
+ addDependency = () => {};
60
+ css = "";
61
+ }
62
+ async function configure(nextRoot, nextGeneration, config, onDependency, onSourceGlob = () => {}) {
63
+ if (!config) {
64
+ clear();
65
+ generation = nextGeneration;
66
+ return false;
67
+ }
68
+ if (compiler && scanner && enabled && generation === nextGeneration && root === nextRoot) {
69
+ return true;
70
+ }
71
+ await assertHostTailwind(nextRoot);
72
+ root = nextRoot;
73
+ generation = nextGeneration;
74
+ enabled = true;
75
+ grammarConfig = createGrammarConfigView(config);
76
+ addDependency = onDependency;
77
+ scanner = new Scanner({ sources: [
78
+ {
79
+ base: root,
80
+ pattern: "**/*",
81
+ negated: false
82
+ },
83
+ {
84
+ base: root,
85
+ pattern: "node_modules/**",
86
+ negated: true
87
+ },
88
+ {
89
+ base: root,
90
+ pattern: ".git/**",
91
+ negated: true
92
+ },
93
+ {
94
+ base: root,
95
+ pattern: ".vite/**",
96
+ negated: true
97
+ },
98
+ {
99
+ base: root,
100
+ pattern: "dist/**",
101
+ negated: true
102
+ },
103
+ {
104
+ base: root,
105
+ pattern: "build/**",
106
+ negated: true
107
+ },
108
+ {
109
+ base: root,
110
+ pattern: "coverage/**",
111
+ negated: true
112
+ }
113
+ ] });
114
+ compiler = await createCompiler();
115
+ scanner.scan();
116
+ registerScannerSources(scanner, onDependency, onSourceGlob);
117
+ candidatesByFile = /* @__PURE__ */ new Map();
118
+ await Promise.all(scanner.files.map(async (file) => {
119
+ try {
120
+ const source = await readFile(file, "utf8");
121
+ candidatesByFile.set(await normalizeSourcePath(file), candidatesForSource(scanner, file, source));
122
+ } catch {}
123
+ }));
124
+ await rebuild();
125
+ return true;
126
+ }
127
+ async function createCompiler() {
128
+ return compile(TAILWIND_INPUT, {
129
+ base: root,
130
+ onDependency: addDependency
131
+ });
132
+ }
133
+ async function rebuild() {
134
+ if (!compiler) return false;
135
+ const allCandidates = /* @__PURE__ */ new Set();
136
+ for (const candidates of candidatesByFile.values()) {
137
+ for (const candidate of candidates) allCandidates.add(candidate);
138
+ }
139
+ const passthrough = [...allCandidates].filter((candidate) => classifyCandidate(candidate, grammarConfig).kind === "passthrough").sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
140
+ const nextCandidates = new Set(passthrough);
141
+ const removedCandidate = [...compiledCandidates].some((candidate) => !nextCandidates.has(candidate));
142
+ if (removedCandidate) {
143
+ compiler = await createCompiler();
144
+ }
145
+ const nextCSS = compiler.build(passthrough);
146
+ compiledCandidates = nextCandidates;
147
+ if (nextCSS === css) return false;
148
+ css = nextCSS;
149
+ return true;
150
+ }
151
+ async function scanSource(id, source) {
152
+ if (!enabled || !scanner) return false;
153
+ candidatesByFile.set(await normalizeSourcePath(id), candidatesForSource(scanner, id, source));
154
+ return rebuild();
155
+ }
156
+ async function removeSource(id) {
157
+ if (!candidatesByFile.delete(await normalizeSourcePath(id))) return false;
158
+ return rebuild();
159
+ }
160
+ return {
161
+ clear,
162
+ configure,
163
+ removeSource,
164
+ scanSource,
165
+ get enabled() {
166
+ return enabled;
167
+ },
168
+ get css() {
169
+ return css;
170
+ },
171
+ get candidateCount() {
172
+ return compiledCandidates.size;
173
+ }
174
+ };
175
+ }
176
+ async function updateTailwindForWatchChange(state, id, event, configure) {
177
+ if (!await configure()) return false;
178
+ if (event === "delete") {
179
+ return state.removeSource(id);
180
+ }
181
+ try {
182
+ return state.scanSource(id, await readFile(id, "utf8"));
183
+ } catch {
184
+ return state.removeSource(id);
185
+ }
186
+ }
187
+ function registerScannerSources(scanner, onDependency, onSourceGlob) {
188
+ for (const file of scanner.files) {
189
+ onDependency(file);
190
+ }
191
+ for (const { base, pattern } of scanner.globs) {
192
+ onSourceGlob(path.join(base, pattern));
193
+ }
194
+ }
195
+ async function normalizeSourcePath(id) {
196
+ const cleanId = path.resolve(id.split("?", 1)[0]);
197
+ try {
198
+ return await realpath(cleanId);
199
+ } catch {
200
+ try {
201
+ return path.join(await realpath(path.dirname(cleanId)), path.basename(cleanId));
202
+ } catch {
203
+ return cleanId;
204
+ }
205
+ }
206
+ }
207
+ function candidatesForSource(scanner, id, source) {
208
+ return new Set(scanner.getCandidatesWithPositions({
209
+ content: source,
210
+ extension: extensionForFile(id)
211
+ }).map(({ candidate }) => candidate));
212
+ }
213
+
214
+ export { TAILWIND_RESOLVED_ID, TAILWIND_VERSION, TAILWIND_VIRTUAL_ID, createTailwindScannerState, isTamaguiCoreResetCSS, updateTailwindForWatchChange, wrapWithTamaguiLayer };
215
+ //# sourceMappingURL=state.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","names":[],"sources":["esm/vite/state.js"],"sourcesContent":["import { compile } from \"@tailwindcss/node\";\nimport { Scanner } from \"@tailwindcss/oxide\";\nimport {\n classifyCandidate,\n createGrammarConfigView\n} from \"@tamagui/style-grammar/runtime\";\nimport { readFile, realpath } from \"node:fs/promises\";\nimport { createRequire } from \"node:module\";\nimport path from \"node:path\";\nconst TAILWIND_VERSION = \"4.3.0\";\nconst TAILWIND_VIRTUAL_ID = \"virtual:tamagui-tailwind.css\";\nconst TAILWIND_RESOLVED_ID = `\\0${TAILWIND_VIRTUAL_ID}`;\nfunction wrapWithTamaguiLayer(css) {\n return `@layer tamagui {\n${css}\n}`;\n}\nfunction isTamaguiCoreResetCSS(id) {\n const normalizedId = id.split(\"?\", 1)[0].replace(/\\\\/g, \"/\");\n return normalizedId.endsWith(\"/@tamagui/core/reset.css\") || normalizedId.endsWith(\"/code/core/core/reset.css\");\n}\nconst TAILWIND_INPUT = `@layer tamagui, theme, utilities;\n@import \"tailwindcss/theme.css\" layer(theme);\n@import \"tailwindcss/utilities.css\" layer(utilities);`;\nfunction extensionForFile(id) {\n return path.extname(id.split(\"?\", 1)[0]).slice(1) || \"html\";\n}\nasync function assertHostTailwind(root) {\n const requireFromRoot = createRequire(path.join(root, \"package.json\"));\n let packagePath;\n try {\n packagePath = requireFromRoot.resolve(\"tailwindcss/package.json\");\n } catch {\n throw new Error(\n `[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION} in the app. Install it with \\`bun add -D tailwindcss@${TAILWIND_VERSION}\\` (resolved from ${root}).`\n );\n }\n const packageJSON = JSON.parse(await readFile(packagePath, \"utf8\"));\n if (packageJSON.version !== TAILWIND_VERSION) {\n throw new Error(\n `[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION}, but ${packageJSON.version || \"an unknown version\"} was resolved from ${packagePath}. Align the app dependency before starting Vite.`\n );\n }\n}\nfunction createTailwindScannerState() {\n let root = \"\";\n let generation = -1;\n let enabled = false;\n let scanner = null;\n let compiler = null;\n let grammarConfig = createGrammarConfigView({});\n let candidatesByFile = /* @__PURE__ */ new Map();\n let compiledCandidates = /* @__PURE__ */ new Set();\n let addDependency = () => {\n };\n let css = \"\";\n function clear() {\n root = \"\";\n generation = -1;\n enabled = false;\n scanner = null;\n compiler = null;\n grammarConfig = createGrammarConfigView({});\n candidatesByFile = /* @__PURE__ */ new Map();\n compiledCandidates = /* @__PURE__ */ new Set();\n addDependency = () => {\n };\n css = \"\";\n }\n async function configure(nextRoot, nextGeneration, config, onDependency, onSourceGlob = () => {\n }) {\n if (!config) {\n clear();\n generation = nextGeneration;\n return false;\n }\n if (compiler && scanner && enabled && generation === nextGeneration && root === nextRoot) {\n return true;\n }\n await assertHostTailwind(nextRoot);\n root = nextRoot;\n generation = nextGeneration;\n enabled = true;\n grammarConfig = createGrammarConfigView(config);\n addDependency = onDependency;\n scanner = new Scanner({\n sources: [\n { base: root, pattern: \"**/*\", negated: false },\n { base: root, pattern: \"node_modules/**\", negated: true },\n { base: root, pattern: \".git/**\", negated: true },\n { base: root, pattern: \".vite/**\", negated: true },\n { base: root, pattern: \"dist/**\", negated: true },\n { base: root, pattern: \"build/**\", negated: true },\n { base: root, pattern: \"coverage/**\", negated: true }\n ]\n });\n compiler = await createCompiler();\n scanner.scan();\n registerScannerSources(scanner, onDependency, onSourceGlob);\n candidatesByFile = /* @__PURE__ */ new Map();\n await Promise.all(\n scanner.files.map(async (file) => {\n try {\n const source = await readFile(file, \"utf8\");\n candidatesByFile.set(\n await normalizeSourcePath(file),\n candidatesForSource(scanner, file, source)\n );\n } catch {\n }\n })\n );\n await rebuild();\n return true;\n }\n async function createCompiler() {\n return compile(TAILWIND_INPUT, {\n base: root,\n onDependency: addDependency\n });\n }\n async function rebuild() {\n if (!compiler) return false;\n const allCandidates = /* @__PURE__ */ new Set();\n for (const candidates of candidatesByFile.values()) {\n for (const candidate of candidates) allCandidates.add(candidate);\n }\n const passthrough = [...allCandidates].filter(\n (candidate) => classifyCandidate(candidate, grammarConfig).kind === \"passthrough\"\n ).sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n const nextCandidates = new Set(passthrough);\n const removedCandidate = [...compiledCandidates].some(\n (candidate) => !nextCandidates.has(candidate)\n );\n if (removedCandidate) {\n compiler = await createCompiler();\n }\n const nextCSS = compiler.build(passthrough);\n compiledCandidates = nextCandidates;\n if (nextCSS === css) return false;\n css = nextCSS;\n return true;\n }\n async function scanSource(id, source) {\n if (!enabled || !scanner) return false;\n candidatesByFile.set(\n await normalizeSourcePath(id),\n candidatesForSource(scanner, id, source)\n );\n return rebuild();\n }\n async function removeSource(id) {\n if (!candidatesByFile.delete(await normalizeSourcePath(id))) return false;\n return rebuild();\n }\n return {\n clear,\n configure,\n removeSource,\n scanSource,\n get enabled() {\n return enabled;\n },\n get css() {\n return css;\n },\n get candidateCount() {\n return compiledCandidates.size;\n }\n };\n}\nasync function updateTailwindForWatchChange(state, id, event, configure) {\n if (!await configure()) return false;\n if (event === \"delete\") {\n return state.removeSource(id);\n }\n try {\n return state.scanSource(id, await readFile(id, \"utf8\"));\n } catch {\n return state.removeSource(id);\n }\n}\nfunction registerScannerSources(scanner, onDependency, onSourceGlob) {\n for (const file of scanner.files) {\n onDependency(file);\n }\n for (const { base, pattern } of scanner.globs) {\n onSourceGlob(path.join(base, pattern));\n }\n}\nasync function normalizeSourcePath(id) {\n const cleanId = path.resolve(id.split(\"?\", 1)[0]);\n try {\n return await realpath(cleanId);\n } catch {\n try {\n return path.join(await realpath(path.dirname(cleanId)), path.basename(cleanId));\n } catch {\n return cleanId;\n }\n }\n}\nfunction candidatesForSource(scanner, id, source) {\n return new Set(\n scanner.getCandidatesWithPositions({\n content: source,\n extension: extensionForFile(id)\n }).map(({ candidate }) => candidate)\n );\n}\nexport {\n TAILWIND_RESOLVED_ID,\n TAILWIND_VERSION,\n TAILWIND_VIRTUAL_ID,\n createTailwindScannerState,\n isTamaguiCoreResetCSS,\n updateTailwindForWatchChange,\n wrapWithTamaguiLayer\n};\n//# sourceMappingURL=state.js.map\n"],"mappings":"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"}
@@ -0,0 +1,295 @@
1
+ import { compile } from "@tailwindcss/node";
2
+ import { Scanner } from "@tailwindcss/oxide";
3
+ import { classifyCandidate, createGrammarConfigView } from "@tamagui/style-grammar/runtime";
4
+ import { readFile, realpath } from "fs/promises";
5
+ import { createRequire } from "module";
6
+ import path from "path";
7
+
8
+ var TAILWIND_VERSION = "4.3.0";
9
+ var TAILWIND_VIRTUAL_ID = "virtual:tamagui-tailwind.css";
10
+ var TAILWIND_RESOLVED_ID = `\0${TAILWIND_VIRTUAL_ID}`;
11
+ function wrapWithTamaguiLayer(css) {
12
+ return `@layer tamagui {
13
+ ${css}
14
+ }`;
15
+ }
16
+ function isTamaguiCoreResetCSS(id) {
17
+ var normalizedId = id.split("?", 1)[0].replace(/\\/g, "/");
18
+ return normalizedId.endsWith("/@tamagui/core/reset.css") || normalizedId.endsWith("/code/core/core/reset.css");
19
+ }
20
+ var TAILWIND_INPUT = `@layer tamagui, theme, utilities;
21
+ @import "tailwindcss/theme.css" layer(theme);
22
+ @import "tailwindcss/utilities.css" layer(utilities);`;
23
+ function extensionForFile(id) {
24
+ return path.extname(id.split("?", 1)[0]).slice(1) || "html";
25
+ }
26
+ async function assertHostTailwind(root) {
27
+ var requireFromRoot = createRequire(path.join(root, "package.json"));
28
+ var packagePath;
29
+ try {
30
+ packagePath = requireFromRoot.resolve("tailwindcss/package.json");
31
+ } catch (e) {
32
+ throw new Error(`[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION} in the app. Install it with \`bun add -D tailwindcss@${TAILWIND_VERSION}\` (resolved from ${root}).`);
33
+ }
34
+ var packageJSON = JSON.parse(await readFile(packagePath, "utf8"));
35
+ if (packageJSON.version !== "4.3.0") {
36
+ throw new Error(`[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION}, but ${packageJSON.version || "an unknown version"} was resolved from ${packagePath}. Align the app dependency before starting Vite.`);
37
+ }
38
+ }
39
+ function createTailwindScannerState() {
40
+ var root = "";
41
+ var generation = -1;
42
+ var enabled = false;
43
+ var scanner = null;
44
+ var compiler = null;
45
+ var grammarConfig = createGrammarConfigView({});
46
+ var candidatesByFile = /* @__PURE__ */ new Map();
47
+ var compiledCandidates = /* @__PURE__ */ new Set();
48
+ var addDependency = function() {};
49
+ var css = "";
50
+ function clear() {
51
+ root = "";
52
+ generation = -1;
53
+ enabled = false;
54
+ scanner = null;
55
+ compiler = null;
56
+ grammarConfig = createGrammarConfigView({});
57
+ candidatesByFile = /* @__PURE__ */ new Map();
58
+ compiledCandidates = /* @__PURE__ */ new Set();
59
+ addDependency = function() {};
60
+ css = "";
61
+ }
62
+ async function configure(nextRoot, nextGeneration, config, onDependency) {
63
+ var onSourceGlob = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : function() {};
64
+ if (!config) {
65
+ clear();
66
+ generation = nextGeneration;
67
+ return false;
68
+ }
69
+ if (compiler && scanner && enabled && generation === nextGeneration && root === nextRoot) {
70
+ return true;
71
+ }
72
+ await assertHostTailwind(nextRoot);
73
+ root = nextRoot;
74
+ generation = nextGeneration;
75
+ enabled = true;
76
+ grammarConfig = createGrammarConfigView(config);
77
+ addDependency = onDependency;
78
+ scanner = new Scanner({ sources: [
79
+ {
80
+ base: root,
81
+ pattern: "**/*",
82
+ negated: false
83
+ },
84
+ {
85
+ base: root,
86
+ pattern: "node_modules/**",
87
+ negated: true
88
+ },
89
+ {
90
+ base: root,
91
+ pattern: ".git/**",
92
+ negated: true
93
+ },
94
+ {
95
+ base: root,
96
+ pattern: ".vite/**",
97
+ negated: true
98
+ },
99
+ {
100
+ base: root,
101
+ pattern: "dist/**",
102
+ negated: true
103
+ },
104
+ {
105
+ base: root,
106
+ pattern: "build/**",
107
+ negated: true
108
+ },
109
+ {
110
+ base: root,
111
+ pattern: "coverage/**",
112
+ negated: true
113
+ }
114
+ ] });
115
+ compiler = await createCompiler();
116
+ scanner.scan();
117
+ registerScannerSources(scanner, onDependency, onSourceGlob);
118
+ candidatesByFile = /* @__PURE__ */ new Map();
119
+ await Promise.all(scanner.files.map(async function(file) {
120
+ try {
121
+ var source = await readFile(file, "utf8");
122
+ candidatesByFile.set(await normalizeSourcePath(file), candidatesForSource(scanner, file, source));
123
+ } catch (e) {}
124
+ }));
125
+ await rebuild();
126
+ return true;
127
+ }
128
+ async function createCompiler() {
129
+ return compile(TAILWIND_INPUT, {
130
+ base: root,
131
+ onDependency: addDependency
132
+ });
133
+ }
134
+ async function rebuild() {
135
+ if (!compiler) return false;
136
+ var allCandidates = /* @__PURE__ */ new Set();
137
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
138
+ try {
139
+ for (var _iterator = candidatesByFile.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
140
+ var candidates = _step.value;
141
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
142
+ try {
143
+ for (var _iterator1 = candidates[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
144
+ var candidate = _step1.value;
145
+ allCandidates.add(candidate);
146
+ }
147
+ } catch (err) {
148
+ _didIteratorError1 = true;
149
+ _iteratorError1 = err;
150
+ } finally {
151
+ try {
152
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
153
+ _iterator1.return();
154
+ }
155
+ } finally {
156
+ if (_didIteratorError1) {
157
+ throw _iteratorError1;
158
+ }
159
+ }
160
+ }
161
+ }
162
+ } catch (err) {
163
+ _didIteratorError = true;
164
+ _iteratorError = err;
165
+ } finally {
166
+ try {
167
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
168
+ _iterator.return();
169
+ }
170
+ } finally {
171
+ if (_didIteratorError) {
172
+ throw _iteratorError;
173
+ }
174
+ }
175
+ }
176
+ var passthrough = [...allCandidates].filter(function(candidate2) {
177
+ return classifyCandidate(candidate2, grammarConfig).kind === "passthrough";
178
+ }).sort(function(a, b) {
179
+ return a < b ? -1 : a > b ? 1 : 0;
180
+ });
181
+ var nextCandidates = new Set(passthrough);
182
+ var removedCandidate = [...compiledCandidates].some(function(candidate2) {
183
+ return !nextCandidates.has(candidate2);
184
+ });
185
+ if (removedCandidate) {
186
+ compiler = await createCompiler();
187
+ }
188
+ var nextCSS = compiler.build(passthrough);
189
+ compiledCandidates = nextCandidates;
190
+ if (nextCSS === css) return false;
191
+ css = nextCSS;
192
+ return true;
193
+ }
194
+ async function scanSource(id, source) {
195
+ if (!enabled || !scanner) return false;
196
+ candidatesByFile.set(await normalizeSourcePath(id), candidatesForSource(scanner, id, source));
197
+ return rebuild();
198
+ }
199
+ async function removeSource(id) {
200
+ if (!candidatesByFile.delete(await normalizeSourcePath(id))) return false;
201
+ return rebuild();
202
+ }
203
+ return {
204
+ clear,
205
+ configure,
206
+ removeSource,
207
+ scanSource,
208
+ get enabled() {
209
+ return enabled;
210
+ },
211
+ get css() {
212
+ return css;
213
+ },
214
+ get candidateCount() {
215
+ return compiledCandidates.size;
216
+ }
217
+ };
218
+ }
219
+ async function updateTailwindForWatchChange(state, id, event, configure) {
220
+ if (!await configure()) return false;
221
+ if (event === "delete") {
222
+ return state.removeSource(id);
223
+ }
224
+ try {
225
+ return state.scanSource(id, await readFile(id, "utf8"));
226
+ } catch (e) {
227
+ return state.removeSource(id);
228
+ }
229
+ }
230
+ function registerScannerSources(scanner, onDependency, onSourceGlob) {
231
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
232
+ try {
233
+ for (var _iterator = scanner.files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
234
+ var file = _step.value;
235
+ onDependency(file);
236
+ }
237
+ } catch (err) {
238
+ _didIteratorError = true;
239
+ _iteratorError = err;
240
+ } finally {
241
+ try {
242
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
243
+ _iterator.return();
244
+ }
245
+ } finally {
246
+ if (_didIteratorError) {
247
+ throw _iteratorError;
248
+ }
249
+ }
250
+ }
251
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
252
+ try {
253
+ for (var _iterator1 = scanner.globs[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
254
+ var { base, pattern } = _step1.value;
255
+ onSourceGlob(path.join(base, pattern));
256
+ }
257
+ } catch (err) {
258
+ _didIteratorError1 = true;
259
+ _iteratorError1 = err;
260
+ } finally {
261
+ try {
262
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
263
+ _iterator1.return();
264
+ }
265
+ } finally {
266
+ if (_didIteratorError1) {
267
+ throw _iteratorError1;
268
+ }
269
+ }
270
+ }
271
+ }
272
+ async function normalizeSourcePath(id) {
273
+ var cleanId = path.resolve(id.split("?", 1)[0]);
274
+ try {
275
+ return await realpath(cleanId);
276
+ } catch (e) {
277
+ try {
278
+ return path.join(await realpath(path.dirname(cleanId)), path.basename(cleanId));
279
+ } catch (e2) {
280
+ return cleanId;
281
+ }
282
+ }
283
+ }
284
+ function candidatesForSource(scanner, id, source) {
285
+ return new Set(scanner.getCandidatesWithPositions({
286
+ content: source,
287
+ extension: extensionForFile(id)
288
+ }).map(function(param) {
289
+ var { candidate } = param;
290
+ return candidate;
291
+ }));
292
+ }
293
+
294
+ export { TAILWIND_RESOLVED_ID, TAILWIND_VERSION, TAILWIND_VIRTUAL_ID, createTailwindScannerState, isTamaguiCoreResetCSS, updateTailwindForWatchChange, wrapWithTamaguiLayer };
295
+ //# sourceMappingURL=state.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.native.js","names":[],"sources":["esm/vite/state.native.js"],"sourcesContent":["import { compile } from \"@tailwindcss/node\";\nimport { Scanner } from \"@tailwindcss/oxide\";\nimport { classifyCandidate, createGrammarConfigView } from \"@tamagui/style-grammar/runtime\";\nimport { readFile, realpath } from \"fs/promises\";\nimport { createRequire } from \"module\";\nimport path from \"path\";\nvar TAILWIND_VERSION = \"4.3.0\";\nvar TAILWIND_VIRTUAL_ID = \"virtual:tamagui-tailwind.css\";\nvar TAILWIND_RESOLVED_ID = `\\0${TAILWIND_VIRTUAL_ID}`;\nfunction wrapWithTamaguiLayer(css) {\n return `@layer tamagui {\n${css}\n}`;\n}\nfunction isTamaguiCoreResetCSS(id) {\n var normalizedId = id.split(\"?\", 1)[0].replace(/\\\\/g, \"/\");\n return normalizedId.endsWith(\"/@tamagui/core/reset.css\") || normalizedId.endsWith(\"/code/core/core/reset.css\");\n}\nvar TAILWIND_INPUT = `@layer tamagui, theme, utilities;\n@import \"tailwindcss/theme.css\" layer(theme);\n@import \"tailwindcss/utilities.css\" layer(utilities);`;\nfunction extensionForFile(id) {\n return path.extname(id.split(\"?\", 1)[0]).slice(1) || \"html\";\n}\nasync function assertHostTailwind(root) {\n var requireFromRoot = createRequire(path.join(root, \"package.json\"));\n var packagePath;\n try {\n packagePath = requireFromRoot.resolve(\"tailwindcss/package.json\");\n } catch (e) {\n throw new Error(`[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION} in the app. Install it with \\`bun add -D tailwindcss@${TAILWIND_VERSION}\\` (resolved from ${root}).`);\n }\n var packageJSON = JSON.parse(await readFile(packagePath, \"utf8\"));\n if (packageJSON.version !== TAILWIND_VERSION) {\n throw new Error(`[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION}, but ${packageJSON.version || \"an unknown version\"} was resolved from ${packagePath}. Align the app dependency before starting Vite.`);\n }\n}\nfunction createTailwindScannerState() {\n var root = \"\";\n var generation = -1;\n var enabled = false;\n var scanner = null;\n var compiler = null;\n var grammarConfig = createGrammarConfigView({});\n var candidatesByFile = /* @__PURE__ */ new Map();\n var compiledCandidates = /* @__PURE__ */ new Set();\n var addDependency = function() {\n };\n var css = \"\";\n function clear() {\n root = \"\";\n generation = -1;\n enabled = false;\n scanner = null;\n compiler = null;\n grammarConfig = createGrammarConfigView({});\n candidatesByFile = /* @__PURE__ */ new Map();\n compiledCandidates = /* @__PURE__ */ new Set();\n addDependency = function() {\n };\n css = \"\";\n }\n async function configure(nextRoot, nextGeneration, config, onDependency) {\n var onSourceGlob = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : function() {\n };\n if (!config) {\n clear();\n generation = nextGeneration;\n return false;\n }\n if (compiler && scanner && enabled && generation === nextGeneration && root === nextRoot) {\n return true;\n }\n await assertHostTailwind(nextRoot);\n root = nextRoot;\n generation = nextGeneration;\n enabled = true;\n grammarConfig = createGrammarConfigView(config);\n addDependency = onDependency;\n scanner = new Scanner({\n sources: [\n {\n base: root,\n pattern: \"**/*\",\n negated: false\n },\n {\n base: root,\n pattern: \"node_modules/**\",\n negated: true\n },\n {\n base: root,\n pattern: \".git/**\",\n negated: true\n },\n {\n base: root,\n pattern: \".vite/**\",\n negated: true\n },\n {\n base: root,\n pattern: \"dist/**\",\n negated: true\n },\n {\n base: root,\n pattern: \"build/**\",\n negated: true\n },\n {\n base: root,\n pattern: \"coverage/**\",\n negated: true\n }\n ]\n });\n compiler = await createCompiler();\n scanner.scan();\n registerScannerSources(scanner, onDependency, onSourceGlob);\n candidatesByFile = /* @__PURE__ */ new Map();\n await Promise.all(scanner.files.map(async function(file) {\n try {\n var source = await readFile(file, \"utf8\");\n candidatesByFile.set(await normalizeSourcePath(file), candidatesForSource(scanner, file, source));\n } catch (e) {\n }\n }));\n await rebuild();\n return true;\n }\n async function createCompiler() {\n return compile(TAILWIND_INPUT, {\n base: root,\n onDependency: addDependency\n });\n }\n async function rebuild() {\n if (!compiler) return false;\n var allCandidates = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = candidatesByFile.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var candidates = _step.value;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = candidates[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var candidate = _step1.value;\n allCandidates.add(candidate);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var passthrough = [\n ...allCandidates\n ].filter(function(candidate2) {\n return classifyCandidate(candidate2, grammarConfig).kind === \"passthrough\";\n }).sort(function(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n });\n var nextCandidates = new Set(passthrough);\n var removedCandidate = [\n ...compiledCandidates\n ].some(function(candidate2) {\n return !nextCandidates.has(candidate2);\n });\n if (removedCandidate) {\n compiler = await createCompiler();\n }\n var nextCSS = compiler.build(passthrough);\n compiledCandidates = nextCandidates;\n if (nextCSS === css) return false;\n css = nextCSS;\n return true;\n }\n async function scanSource(id, source) {\n if (!enabled || !scanner) return false;\n candidatesByFile.set(await normalizeSourcePath(id), candidatesForSource(scanner, id, source));\n return rebuild();\n }\n async function removeSource(id) {\n if (!candidatesByFile.delete(await normalizeSourcePath(id))) return false;\n return rebuild();\n }\n return {\n clear,\n configure,\n removeSource,\n scanSource,\n get enabled() {\n return enabled;\n },\n get css() {\n return css;\n },\n get candidateCount() {\n return compiledCandidates.size;\n }\n };\n}\nasync function updateTailwindForWatchChange(state, id, event, configure) {\n if (!await configure()) return false;\n if (event === \"delete\") {\n return state.removeSource(id);\n }\n try {\n return state.scanSource(id, await readFile(id, \"utf8\"));\n } catch (e) {\n return state.removeSource(id);\n }\n}\nfunction registerScannerSources(scanner, onDependency, onSourceGlob) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = scanner.files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var file = _step.value;\n onDependency(file);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = scanner.globs[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var { base, pattern } = _step1.value;\n onSourceGlob(path.join(base, pattern));\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n}\nasync function normalizeSourcePath(id) {\n var cleanId = path.resolve(id.split(\"?\", 1)[0]);\n try {\n return await realpath(cleanId);\n } catch (e) {\n try {\n return path.join(await realpath(path.dirname(cleanId)), path.basename(cleanId));\n } catch (e2) {\n return cleanId;\n }\n }\n}\nfunction candidatesForSource(scanner, id, source) {\n return new Set(scanner.getCandidatesWithPositions({\n content: source,\n extension: extensionForFile(id)\n }).map(function(param) {\n var { candidate } = param;\n return candidate;\n }));\n}\nexport {\n TAILWIND_RESOLVED_ID,\n TAILWIND_VERSION,\n TAILWIND_VIRTUAL_ID,\n createTailwindScannerState,\n isTamaguiCoreResetCSS,\n updateTailwindForWatchChange,\n wrapWithTamaguiLayer\n};\n//# sourceMappingURL=state.js.map\n"],"mappings":"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"}