@tamagui/tailwind 0.0.0-bootstrap.0 → 3.0.0-beta.637.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,331 @@
1
+ "use strict";
2
+
3
+
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all) __defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: () => from[key],
20
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
21
+ });
22
+ }
23
+ return to;
24
+ };
25
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: true
28
+ }) : target, mod));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var state_exports = {};
31
+ __export(state_exports, {
32
+ TAILWIND_RESOLVED_ID: () => TAILWIND_RESOLVED_ID,
33
+ TAILWIND_VERSION: () => TAILWIND_VERSION,
34
+ TAILWIND_VIRTUAL_ID: () => TAILWIND_VIRTUAL_ID,
35
+ createTailwindScannerState: () => createTailwindScannerState,
36
+ isTamaguiCoreResetCSS: () => isTamaguiCoreResetCSS,
37
+ updateTailwindForWatchChange: () => updateTailwindForWatchChange,
38
+ wrapWithTamaguiLayer: () => wrapWithTamaguiLayer
39
+ });
40
+ module.exports = __toCommonJS(state_exports);
41
+ var import_node = require("@tailwindcss/node");
42
+ var import_oxide = require("@tailwindcss/oxide");
43
+ var import_runtime = require("@tamagui/style-grammar/runtime");
44
+ var import_promises = require("fs/promises");
45
+ var import_module = require("module");
46
+ var import_path = __toESM(require("path"), 1);
47
+ var TAILWIND_VERSION = "4.3.0";
48
+ var TAILWIND_VIRTUAL_ID = "virtual:tamagui-tailwind.css";
49
+ var TAILWIND_RESOLVED_ID = `\0${TAILWIND_VIRTUAL_ID}`;
50
+ function wrapWithTamaguiLayer(css) {
51
+ return `@layer tamagui {
52
+ ${css}
53
+ }`;
54
+ }
55
+ function isTamaguiCoreResetCSS(id) {
56
+ var normalizedId = id.split("?", 1)[0].replace(/\\/g, "/");
57
+ return normalizedId.endsWith("/@tamagui/core/reset.css") || normalizedId.endsWith("/code/core/core/reset.css");
58
+ }
59
+ var TAILWIND_INPUT = `@layer tamagui, theme, utilities;
60
+ @import "tailwindcss/theme.css" layer(theme);
61
+ @import "tailwindcss/utilities.css" layer(utilities);`;
62
+ function extensionForFile(id) {
63
+ return import_path.default.extname(id.split("?", 1)[0]).slice(1) || "html";
64
+ }
65
+ async function assertHostTailwind(root) {
66
+ var requireFromRoot = (0, import_module.createRequire)(import_path.default.join(root, "package.json"));
67
+ var packagePath;
68
+ try {
69
+ packagePath = requireFromRoot.resolve("tailwindcss/package.json");
70
+ } catch (e) {
71
+ 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}).`);
72
+ }
73
+ var packageJSON = JSON.parse(await (0, import_promises.readFile)(packagePath, "utf8"));
74
+ if (packageJSON.version !== TAILWIND_VERSION) {
75
+ 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.`);
76
+ }
77
+ }
78
+ function createTailwindScannerState() {
79
+ var root = "";
80
+ var generation = -1;
81
+ var enabled = false;
82
+ var scanner = null;
83
+ var compiler = null;
84
+ var grammarConfig = (0, import_runtime.createGrammarConfigView)({});
85
+ var candidatesByFile = /* @__PURE__ */ new Map();
86
+ var compiledCandidates = /* @__PURE__ */ new Set();
87
+ var addDependency = function() {};
88
+ var css = "";
89
+ function clear() {
90
+ root = "";
91
+ generation = -1;
92
+ enabled = false;
93
+ scanner = null;
94
+ compiler = null;
95
+ grammarConfig = (0, import_runtime.createGrammarConfigView)({});
96
+ candidatesByFile = /* @__PURE__ */ new Map();
97
+ compiledCandidates = /* @__PURE__ */ new Set();
98
+ addDependency = function() {};
99
+ css = "";
100
+ }
101
+ async function configure(nextRoot, nextGeneration, config, onDependency) {
102
+ var onSourceGlob = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : function() {};
103
+ if (!config) {
104
+ clear();
105
+ generation = nextGeneration;
106
+ return false;
107
+ }
108
+ if (compiler && scanner && enabled && generation === nextGeneration && root === nextRoot) {
109
+ return true;
110
+ }
111
+ await assertHostTailwind(nextRoot);
112
+ root = nextRoot;
113
+ generation = nextGeneration;
114
+ enabled = true;
115
+ grammarConfig = (0, import_runtime.createGrammarConfigView)(config);
116
+ addDependency = onDependency;
117
+ scanner = new import_oxide.Scanner({ sources: [
118
+ {
119
+ base: root,
120
+ pattern: "**/*",
121
+ negated: false
122
+ },
123
+ {
124
+ base: root,
125
+ pattern: "node_modules/**",
126
+ negated: true
127
+ },
128
+ {
129
+ base: root,
130
+ pattern: ".git/**",
131
+ negated: true
132
+ },
133
+ {
134
+ base: root,
135
+ pattern: ".vite/**",
136
+ negated: true
137
+ },
138
+ {
139
+ base: root,
140
+ pattern: "dist/**",
141
+ negated: true
142
+ },
143
+ {
144
+ base: root,
145
+ pattern: "build/**",
146
+ negated: true
147
+ },
148
+ {
149
+ base: root,
150
+ pattern: "coverage/**",
151
+ negated: true
152
+ }
153
+ ] });
154
+ compiler = await createCompiler();
155
+ scanner.scan();
156
+ registerScannerSources(scanner, onDependency, onSourceGlob);
157
+ candidatesByFile = /* @__PURE__ */ new Map();
158
+ await Promise.all(scanner.files.map(async function(file) {
159
+ try {
160
+ var source = await (0, import_promises.readFile)(file, "utf8");
161
+ candidatesByFile.set(await normalizeSourcePath(file), candidatesForSource(scanner, file, source));
162
+ } catch (e) {}
163
+ }));
164
+ await rebuild();
165
+ return true;
166
+ }
167
+ async function createCompiler() {
168
+ return (0, import_node.compile)(TAILWIND_INPUT, {
169
+ base: root,
170
+ onDependency: addDependency
171
+ });
172
+ }
173
+ async function rebuild() {
174
+ if (!compiler) return false;
175
+ var allCandidates = /* @__PURE__ */ new Set();
176
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
177
+ try {
178
+ for (var _iterator = candidatesByFile.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
179
+ var candidates = _step.value;
180
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
181
+ try {
182
+ for (var _iterator1 = candidates[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
183
+ var candidate = _step1.value;
184
+ allCandidates.add(candidate);
185
+ }
186
+ } catch (err) {
187
+ _didIteratorError1 = true;
188
+ _iteratorError1 = err;
189
+ } finally {
190
+ try {
191
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
192
+ _iterator1.return();
193
+ }
194
+ } finally {
195
+ if (_didIteratorError1) {
196
+ throw _iteratorError1;
197
+ }
198
+ }
199
+ }
200
+ }
201
+ } catch (err) {
202
+ _didIteratorError = true;
203
+ _iteratorError = err;
204
+ } finally {
205
+ try {
206
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
207
+ _iterator.return();
208
+ }
209
+ } finally {
210
+ if (_didIteratorError) {
211
+ throw _iteratorError;
212
+ }
213
+ }
214
+ }
215
+ var passthrough = [...allCandidates].filter(function(candidate2) {
216
+ return (0, import_runtime.classifyCandidate)(candidate2, grammarConfig).kind === "passthrough";
217
+ }).sort(function(a, b) {
218
+ return a < b ? -1 : a > b ? 1 : 0;
219
+ });
220
+ var nextCandidates = new Set(passthrough);
221
+ var removedCandidate = [...compiledCandidates].some(function(candidate2) {
222
+ return !nextCandidates.has(candidate2);
223
+ });
224
+ if (removedCandidate) {
225
+ compiler = await createCompiler();
226
+ }
227
+ var nextCSS = compiler.build(passthrough);
228
+ compiledCandidates = nextCandidates;
229
+ if (nextCSS === css) return false;
230
+ css = nextCSS;
231
+ return true;
232
+ }
233
+ async function scanSource(id, source) {
234
+ if (!enabled || !scanner) return false;
235
+ candidatesByFile.set(await normalizeSourcePath(id), candidatesForSource(scanner, id, source));
236
+ return rebuild();
237
+ }
238
+ async function removeSource(id) {
239
+ if (!candidatesByFile.delete(await normalizeSourcePath(id))) return false;
240
+ return rebuild();
241
+ }
242
+ return {
243
+ clear,
244
+ configure,
245
+ removeSource,
246
+ scanSource,
247
+ get enabled() {
248
+ return enabled;
249
+ },
250
+ get css() {
251
+ return css;
252
+ },
253
+ get candidateCount() {
254
+ return compiledCandidates.size;
255
+ }
256
+ };
257
+ }
258
+ async function updateTailwindForWatchChange(state, id, event, configure) {
259
+ if (!await configure()) return false;
260
+ if (event === "delete") {
261
+ return state.removeSource(id);
262
+ }
263
+ try {
264
+ return state.scanSource(id, await (0, import_promises.readFile)(id, "utf8"));
265
+ } catch (e) {
266
+ return state.removeSource(id);
267
+ }
268
+ }
269
+ function registerScannerSources(scanner, onDependency, onSourceGlob) {
270
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
271
+ try {
272
+ for (var _iterator = scanner.files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
273
+ var file = _step.value;
274
+ onDependency(file);
275
+ }
276
+ } catch (err) {
277
+ _didIteratorError = true;
278
+ _iteratorError = err;
279
+ } finally {
280
+ try {
281
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
282
+ _iterator.return();
283
+ }
284
+ } finally {
285
+ if (_didIteratorError) {
286
+ throw _iteratorError;
287
+ }
288
+ }
289
+ }
290
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
291
+ try {
292
+ for (var _iterator1 = scanner.globs[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
293
+ var { base, pattern } = _step1.value;
294
+ onSourceGlob(import_path.default.join(base, pattern));
295
+ }
296
+ } catch (err) {
297
+ _didIteratorError1 = true;
298
+ _iteratorError1 = err;
299
+ } finally {
300
+ try {
301
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
302
+ _iterator1.return();
303
+ }
304
+ } finally {
305
+ if (_didIteratorError1) {
306
+ throw _iteratorError1;
307
+ }
308
+ }
309
+ }
310
+ }
311
+ async function normalizeSourcePath(id) {
312
+ var cleanId = import_path.default.resolve(id.split("?", 1)[0]);
313
+ try {
314
+ return await (0, import_promises.realpath)(cleanId);
315
+ } catch (e) {
316
+ try {
317
+ return import_path.default.join(await (0, import_promises.realpath)(import_path.default.dirname(cleanId)), import_path.default.basename(cleanId));
318
+ } catch (e2) {
319
+ return cleanId;
320
+ }
321
+ }
322
+ }
323
+ function candidatesForSource(scanner, id, source) {
324
+ return new Set(scanner.getCandidatesWithPositions({
325
+ content: source,
326
+ extension: extensionForFile(id)
327
+ }).map(function(param) {
328
+ var { candidate } = param;
329
+ return candidate;
330
+ }));
331
+ }
@@ -0,0 +1,333 @@
1
+ "use strict";
2
+
3
+
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all) __defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: () => from[key],
20
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
21
+ });
22
+ }
23
+ return to;
24
+ };
25
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: true
28
+ }) : target, mod));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var state_exports = {};
31
+ __export(state_exports, {
32
+ TAILWIND_RESOLVED_ID: () => TAILWIND_RESOLVED_ID,
33
+ TAILWIND_VERSION: () => TAILWIND_VERSION,
34
+ TAILWIND_VIRTUAL_ID: () => TAILWIND_VIRTUAL_ID,
35
+ createTailwindScannerState: () => createTailwindScannerState,
36
+ isTamaguiCoreResetCSS: () => isTamaguiCoreResetCSS,
37
+ updateTailwindForWatchChange: () => updateTailwindForWatchChange,
38
+ wrapWithTamaguiLayer: () => wrapWithTamaguiLayer
39
+ });
40
+ module.exports = __toCommonJS(state_exports);
41
+ var import_node = require("@tailwindcss/node");
42
+ var import_oxide = require("@tailwindcss/oxide");
43
+ var import_runtime = require("@tamagui/style-grammar/runtime");
44
+ var import_promises = require("fs/promises");
45
+ var import_module = require("module");
46
+ var import_path = __toESM(require("path"), 1);
47
+ var TAILWIND_VERSION = "4.3.0";
48
+ var TAILWIND_VIRTUAL_ID = "virtual:tamagui-tailwind.css";
49
+ var TAILWIND_RESOLVED_ID = `\0${TAILWIND_VIRTUAL_ID}`;
50
+ function wrapWithTamaguiLayer(css) {
51
+ return `@layer tamagui {
52
+ ${css}
53
+ }`;
54
+ }
55
+ function isTamaguiCoreResetCSS(id) {
56
+ var normalizedId = id.split("?", 1)[0].replace(/\\/g, "/");
57
+ return normalizedId.endsWith("/@tamagui/core/reset.css") || normalizedId.endsWith("/code/core/core/reset.css");
58
+ }
59
+ var TAILWIND_INPUT = `@layer tamagui, theme, utilities;
60
+ @import "tailwindcss/theme.css" layer(theme);
61
+ @import "tailwindcss/utilities.css" layer(utilities);`;
62
+ function extensionForFile(id) {
63
+ return import_path.default.extname(id.split("?", 1)[0]).slice(1) || "html";
64
+ }
65
+ async function assertHostTailwind(root) {
66
+ var requireFromRoot = (0, import_module.createRequire)(import_path.default.join(root, "package.json"));
67
+ var packagePath;
68
+ try {
69
+ packagePath = requireFromRoot.resolve("tailwindcss/package.json");
70
+ } catch (e) {
71
+ 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}).`);
72
+ }
73
+ var packageJSON = JSON.parse(await (0, import_promises.readFile)(packagePath, "utf8"));
74
+ if (packageJSON.version !== TAILWIND_VERSION) {
75
+ 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.`);
76
+ }
77
+ }
78
+ function createTailwindScannerState() {
79
+ var root = "";
80
+ var generation = -1;
81
+ var enabled = false;
82
+ var scanner = null;
83
+ var compiler = null;
84
+ var grammarConfig = (0, import_runtime.createGrammarConfigView)({});
85
+ var candidatesByFile = /* @__PURE__ */ new Map();
86
+ var compiledCandidates = /* @__PURE__ */ new Set();
87
+ var addDependency = function() {};
88
+ var css = "";
89
+ function clear() {
90
+ root = "";
91
+ generation = -1;
92
+ enabled = false;
93
+ scanner = null;
94
+ compiler = null;
95
+ grammarConfig = (0, import_runtime.createGrammarConfigView)({});
96
+ candidatesByFile = /* @__PURE__ */ new Map();
97
+ compiledCandidates = /* @__PURE__ */ new Set();
98
+ addDependency = function() {};
99
+ css = "";
100
+ }
101
+ async function configure(nextRoot, nextGeneration, config, onDependency) {
102
+ var onSourceGlob = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : function() {};
103
+ if (!config) {
104
+ clear();
105
+ generation = nextGeneration;
106
+ return false;
107
+ }
108
+ if (compiler && scanner && enabled && generation === nextGeneration && root === nextRoot) {
109
+ return true;
110
+ }
111
+ await assertHostTailwind(nextRoot);
112
+ root = nextRoot;
113
+ generation = nextGeneration;
114
+ enabled = true;
115
+ grammarConfig = (0, import_runtime.createGrammarConfigView)(config);
116
+ addDependency = onDependency;
117
+ scanner = new import_oxide.Scanner({ sources: [
118
+ {
119
+ base: root,
120
+ pattern: "**/*",
121
+ negated: false
122
+ },
123
+ {
124
+ base: root,
125
+ pattern: "node_modules/**",
126
+ negated: true
127
+ },
128
+ {
129
+ base: root,
130
+ pattern: ".git/**",
131
+ negated: true
132
+ },
133
+ {
134
+ base: root,
135
+ pattern: ".vite/**",
136
+ negated: true
137
+ },
138
+ {
139
+ base: root,
140
+ pattern: "dist/**",
141
+ negated: true
142
+ },
143
+ {
144
+ base: root,
145
+ pattern: "build/**",
146
+ negated: true
147
+ },
148
+ {
149
+ base: root,
150
+ pattern: "coverage/**",
151
+ negated: true
152
+ }
153
+ ] });
154
+ compiler = await createCompiler();
155
+ scanner.scan();
156
+ registerScannerSources(scanner, onDependency, onSourceGlob);
157
+ candidatesByFile = /* @__PURE__ */ new Map();
158
+ await Promise.all(scanner.files.map(async function(file) {
159
+ try {
160
+ var source = await (0, import_promises.readFile)(file, "utf8");
161
+ candidatesByFile.set(await normalizeSourcePath(file), candidatesForSource(scanner, file, source));
162
+ } catch (e) {}
163
+ }));
164
+ await rebuild();
165
+ return true;
166
+ }
167
+ async function createCompiler() {
168
+ return (0, import_node.compile)(TAILWIND_INPUT, {
169
+ base: root,
170
+ onDependency: addDependency
171
+ });
172
+ }
173
+ async function rebuild() {
174
+ if (!compiler) return false;
175
+ var allCandidates = /* @__PURE__ */ new Set();
176
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
177
+ try {
178
+ for (var _iterator = candidatesByFile.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
179
+ var candidates = _step.value;
180
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
181
+ try {
182
+ for (var _iterator1 = candidates[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
183
+ var candidate = _step1.value;
184
+ allCandidates.add(candidate);
185
+ }
186
+ } catch (err) {
187
+ _didIteratorError1 = true;
188
+ _iteratorError1 = err;
189
+ } finally {
190
+ try {
191
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
192
+ _iterator1.return();
193
+ }
194
+ } finally {
195
+ if (_didIteratorError1) {
196
+ throw _iteratorError1;
197
+ }
198
+ }
199
+ }
200
+ }
201
+ } catch (err) {
202
+ _didIteratorError = true;
203
+ _iteratorError = err;
204
+ } finally {
205
+ try {
206
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
207
+ _iterator.return();
208
+ }
209
+ } finally {
210
+ if (_didIteratorError) {
211
+ throw _iteratorError;
212
+ }
213
+ }
214
+ }
215
+ var passthrough = [...allCandidates].filter(function(candidate2) {
216
+ return (0, import_runtime.classifyCandidate)(candidate2, grammarConfig).kind === "passthrough";
217
+ }).sort(function(a, b) {
218
+ return a < b ? -1 : a > b ? 1 : 0;
219
+ });
220
+ var nextCandidates = new Set(passthrough);
221
+ var removedCandidate = [...compiledCandidates].some(function(candidate2) {
222
+ return !nextCandidates.has(candidate2);
223
+ });
224
+ if (removedCandidate) {
225
+ compiler = await createCompiler();
226
+ }
227
+ var nextCSS = compiler.build(passthrough);
228
+ compiledCandidates = nextCandidates;
229
+ if (nextCSS === css) return false;
230
+ css = nextCSS;
231
+ return true;
232
+ }
233
+ async function scanSource(id, source) {
234
+ if (!enabled || !scanner) return false;
235
+ candidatesByFile.set(await normalizeSourcePath(id), candidatesForSource(scanner, id, source));
236
+ return rebuild();
237
+ }
238
+ async function removeSource(id) {
239
+ if (!candidatesByFile.delete(await normalizeSourcePath(id))) return false;
240
+ return rebuild();
241
+ }
242
+ return {
243
+ clear,
244
+ configure,
245
+ removeSource,
246
+ scanSource,
247
+ get enabled() {
248
+ return enabled;
249
+ },
250
+ get css() {
251
+ return css;
252
+ },
253
+ get candidateCount() {
254
+ return compiledCandidates.size;
255
+ }
256
+ };
257
+ }
258
+ async function updateTailwindForWatchChange(state, id, event, configure) {
259
+ if (!await configure()) return false;
260
+ if (event === "delete") {
261
+ return state.removeSource(id);
262
+ }
263
+ try {
264
+ return state.scanSource(id, await (0, import_promises.readFile)(id, "utf8"));
265
+ } catch (e) {
266
+ return state.removeSource(id);
267
+ }
268
+ }
269
+ function registerScannerSources(scanner, onDependency, onSourceGlob) {
270
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
271
+ try {
272
+ for (var _iterator = scanner.files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
273
+ var file = _step.value;
274
+ onDependency(file);
275
+ }
276
+ } catch (err) {
277
+ _didIteratorError = true;
278
+ _iteratorError = err;
279
+ } finally {
280
+ try {
281
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
282
+ _iterator.return();
283
+ }
284
+ } finally {
285
+ if (_didIteratorError) {
286
+ throw _iteratorError;
287
+ }
288
+ }
289
+ }
290
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
291
+ try {
292
+ for (var _iterator1 = scanner.globs[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
293
+ var { base, pattern } = _step1.value;
294
+ onSourceGlob(import_path.default.join(base, pattern));
295
+ }
296
+ } catch (err) {
297
+ _didIteratorError1 = true;
298
+ _iteratorError1 = err;
299
+ } finally {
300
+ try {
301
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
302
+ _iterator1.return();
303
+ }
304
+ } finally {
305
+ if (_didIteratorError1) {
306
+ throw _iteratorError1;
307
+ }
308
+ }
309
+ }
310
+ }
311
+ async function normalizeSourcePath(id) {
312
+ var cleanId = import_path.default.resolve(id.split("?", 1)[0]);
313
+ try {
314
+ return await (0, import_promises.realpath)(cleanId);
315
+ } catch (e) {
316
+ try {
317
+ return import_path.default.join(await (0, import_promises.realpath)(import_path.default.dirname(cleanId)), import_path.default.basename(cleanId));
318
+ } catch (e2) {
319
+ return cleanId;
320
+ }
321
+ }
322
+ }
323
+ function candidatesForSource(scanner, id, source) {
324
+ return new Set(scanner.getCandidatesWithPositions({
325
+ content: source,
326
+ extension: extensionForFile(id)
327
+ }).map(function(param) {
328
+ var { candidate } = param;
329
+ return candidate;
330
+ }));
331
+ }
332
+
333
+ //# sourceMappingURL=state.native.js.map