@tamagui/to-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.
@@ -0,0 +1,933 @@
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 transform_exports = {};
31
+ __export(transform_exports, {
32
+ findParseError: () => findParseError,
33
+ tamaguiToTailwind: () => tamaguiToTailwind
34
+ });
35
+ module.exports = __toCommonJS(transform_exports);
36
+ var import_parser = require("@babel/parser");
37
+ var import_traverse = __toESM(require("@babel/traverse"), 1);
38
+ var import_generator = __toESM(require("@babel/generator"), 1);
39
+ var t = __toESM(require("@babel/types"), 1);
40
+ var import_tooling = require("@tamagui/style-grammar/tooling");
41
+ var import_componentToTag = require("./maps/componentToTag.native.js");
42
+ var import_v4 = require("@tamagui/shorthands/v4");
43
+ function _instanceof(left, right) {
44
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
45
+ return !!right[Symbol.hasInstance](left);
46
+ } else {
47
+ return left instanceof right;
48
+ }
49
+ }
50
+ var _traverse_default;
51
+ var traverse = (_traverse_default = import_traverse.default.default) !== null && _traverse_default !== void 0 ? _traverse_default : import_traverse.default;
52
+ var _generate_default;
53
+ var generate = (_generate_default = import_generator.default.default) !== null && _generate_default !== void 0 ? _generate_default : import_generator.default;
54
+ var defaultShorthands = import_v4.shorthands;
55
+ var removedV6ThemeNames = new Set(import_tooling.v6RemovedThemeNames);
56
+ function getV6ThemeName(name) {
57
+ var opacityIndex = name.indexOf("/");
58
+ var baseName = opacityIndex === -1 ? name : name.slice(0, opacityIndex);
59
+ if (removedV6ThemeNames.has(baseName)) return null;
60
+ var _v6ThemeNameReplacements_baseName;
61
+ var mapped = (_v6ThemeNameReplacements_baseName = import_tooling.v6ThemeNameReplacements[baseName]) !== null && _v6ThemeNameReplacements_baseName !== void 0 ? _v6ThemeNameReplacements_baseName : baseName;
62
+ return opacityIndex === -1 ? mapped : `${mapped}${name.slice(opacityIndex)}`;
63
+ }
64
+ function namesToSet(names) {
65
+ if (!names) return /* @__PURE__ */ new Set();
66
+ if (Array.isArray(names)) return new Set(names);
67
+ if (_instanceof(names, Set)) return new Set(names);
68
+ return new Set(Object.keys(names));
69
+ }
70
+ function addConfigNames(target, source) {
71
+ if (!source) return;
72
+ for (var key in source) target.add(key);
73
+ }
74
+ function createTransformGrammarConfig(options, mediaKeys, shorthands) {
75
+ if (options.grammarConfig) {
76
+ return {
77
+ ...options.grammarConfig,
78
+ shorthands,
79
+ mediaNames: mediaKeys
80
+ };
81
+ }
82
+ var tokenNames = {};
83
+ var tokenCategories = [
84
+ "space",
85
+ "size",
86
+ "radius",
87
+ "zIndex",
88
+ "color"
89
+ ];
90
+ var fontCategories = [
91
+ "fontFamily",
92
+ "fontSize",
93
+ "fontWeight",
94
+ "lineHeight",
95
+ "letterSpacing"
96
+ ];
97
+ var authoritative = [
98
+ "tokens",
99
+ "fonts",
100
+ "themes",
101
+ "media",
102
+ "shorthands"
103
+ ].some(function(key) {
104
+ return Object.prototype.hasOwnProperty.call(options, key);
105
+ });
106
+ if (authoritative) {
107
+ for (var _i = 0, _iter = [...tokenCategories, ...fontCategories]; _i < _iter.length; _i++) {
108
+ var category = _iter[_i];
109
+ tokenNames[category] = /* @__PURE__ */ new Set();
110
+ }
111
+ }
112
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
113
+ try {
114
+ for (var _iterator = tokenCategories[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
115
+ var category1 = _step.value;
116
+ var _options_tokens;
117
+ if ((_options_tokens = options.tokens) === null || _options_tokens === void 0 ? void 0 : _options_tokens[category1]) {
118
+ var names = tokenNames[category1] || /* @__PURE__ */ new Set();
119
+ addConfigNames(names, options.tokens[category1]);
120
+ tokenNames[category1] = names;
121
+ }
122
+ }
123
+ } catch (err) {
124
+ _didIteratorError = true;
125
+ _iteratorError = err;
126
+ } finally {
127
+ try {
128
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
129
+ _iterator.return();
130
+ }
131
+ } finally {
132
+ if (_didIteratorError) {
133
+ throw _iteratorError;
134
+ }
135
+ }
136
+ }
137
+ if (options.fonts) {
138
+ var _tokenNames, _tokenNames1, _tokenNames2, _tokenNames3, _tokenNames4;
139
+ (_tokenNames = tokenNames).fontFamily || (_tokenNames.fontFamily = /* @__PURE__ */ new Set());
140
+ (_tokenNames1 = tokenNames).fontSize || (_tokenNames1.fontSize = /* @__PURE__ */ new Set());
141
+ (_tokenNames2 = tokenNames).fontWeight || (_tokenNames2.fontWeight = /* @__PURE__ */ new Set());
142
+ (_tokenNames3 = tokenNames).lineHeight || (_tokenNames3.lineHeight = /* @__PURE__ */ new Set());
143
+ (_tokenNames4 = tokenNames).letterSpacing || (_tokenNames4.letterSpacing = /* @__PURE__ */ new Set());
144
+ for (var familyName in options.fonts) {
145
+ tokenNames.fontFamily.add(familyName);
146
+ var font = options.fonts[familyName];
147
+ addConfigNames(tokenNames.fontSize, font === null || font === void 0 ? void 0 : font.size);
148
+ addConfigNames(tokenNames.fontWeight, font === null || font === void 0 ? void 0 : font.weight);
149
+ addConfigNames(tokenNames.lineHeight, font === null || font === void 0 ? void 0 : font.lineHeight);
150
+ addConfigNames(tokenNames.letterSpacing, font === null || font === void 0 ? void 0 : font.letterSpacing);
151
+ }
152
+ }
153
+ var themeNames = /* @__PURE__ */ new Set();
154
+ if (options.themes) {
155
+ var _tokenNames5;
156
+ (_tokenNames5 = tokenNames).color || (_tokenNames5.color = /* @__PURE__ */ new Set());
157
+ for (var themeName in options.themes) {
158
+ themeNames.add(themeName);
159
+ for (var name in options.themes[themeName]) {
160
+ var mapped = getV6ThemeName(name);
161
+ if (mapped) tokenNames.color.add(mapped);
162
+ }
163
+ }
164
+ }
165
+ return {
166
+ shorthands,
167
+ mediaNames: mediaKeys,
168
+ themeNames,
169
+ tokenNames
170
+ };
171
+ }
172
+ function findParseError(source) {
173
+ try {
174
+ var ast = (0, import_parser.parse)(source, {
175
+ sourceType: "module",
176
+ plugins: ["jsx", "typescript"],
177
+ errorRecovery: true
178
+ });
179
+ var errs = ast.errors;
180
+ if (errs && errs.length > 0) {
181
+ var _$e = errs[0];
182
+ var loc = (_$e === null || _$e === void 0 ? void 0 : _$e.loc) ? `${_$e.loc.line}:${_$e.loc.column}` : "?";
183
+ return `${(_$e === null || _$e === void 0 ? void 0 : _$e.reasonCode) || (_$e === null || _$e === void 0 ? void 0 : _$e.message) || "parse error"} at ${loc}`;
184
+ }
185
+ return null;
186
+ } catch (e) {
187
+ return e.message || "parse error";
188
+ }
189
+ }
190
+ function tamaguiToTailwind(source) {
191
+ var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
192
+ var _options_grammarConfig, _options_grammarConfig1;
193
+ var { renameComponents = true } = options;
194
+ var mediaKeys = ((_options_grammarConfig = options.grammarConfig) === null || _options_grammarConfig === void 0 ? void 0 : _options_grammarConfig.mediaNames) ? namesToSet(options.grammarConfig.mediaNames) : options.media ? new Set(Array.isArray(options.media) ? options.media : Object.keys(options.media)) : new Set(import_tooling.defaultMediaKeys);
195
+ var _options_grammarConfig_shorthands, _ref;
196
+ var shorthands = (_ref = (_options_grammarConfig_shorthands = (_options_grammarConfig1 = options.grammarConfig) === null || _options_grammarConfig1 === void 0 ? void 0 : _options_grammarConfig1.shorthands) !== null && _options_grammarConfig_shorthands !== void 0 ? _options_grammarConfig_shorthands : options.shorthands) !== null && _ref !== void 0 ? _ref : defaultShorthands;
197
+ var grammarConfig = createTransformGrammarConfig(options, mediaKeys, shorthands);
198
+ var _options_components;
199
+ var ctx = {
200
+ mediaKeys,
201
+ componentAllow: new Set((_options_components = options.components) !== null && _options_components !== void 0 ? _options_components : []),
202
+ shorthands,
203
+ grammarConfig,
204
+ modifierRegistry: (0, import_tooling.createModifierRegistry)(grammarConfig).registry
205
+ };
206
+ var ast;
207
+ try {
208
+ ast = (0, import_parser.parse)(source, {
209
+ sourceType: "module",
210
+ plugins: ["jsx", "typescript"],
211
+ errorRecovery: true
212
+ });
213
+ } catch (e) {
214
+ return source;
215
+ }
216
+ if (ast.errors && ast.errors.length > 0) {
217
+ return source;
218
+ }
219
+ var didTransform = false;
220
+ traverse(ast, { JSXOpeningElement(path) {
221
+ var node = path.node;
222
+ var resolved = resolveTamaguiComponent(path, ctx);
223
+ if (resolved === null) return;
224
+ var { name: componentName, isSimpleKnown, isPlainIdentifier } = resolved;
225
+ if (node.attributes.some(function(a2) {
226
+ return t.isJSXSpreadAttribute(a2);
227
+ })) return;
228
+ var hasDynamicClassName = node.attributes.some(function(attr2) {
229
+ return t.isJSXAttribute(attr2) && attr2.name.name === "className" && getStringValue(attr2.value) === null;
230
+ });
231
+ if (hasDynamicClassName) return;
232
+ var hasClassName = node.attributes.some(function(attr2) {
233
+ return t.isJSXAttribute(attr2) && attr2.name.name === "className";
234
+ });
235
+ var hasNeighboringStyleProp = node.attributes.some(function(attr2) {
236
+ if (!t.isJSXAttribute(attr2) || attr2.name.name === "className") return false;
237
+ var name2 = attr2.name.name;
238
+ return isConvertibleStyleProp(resolveShorthand(ctx, name2));
239
+ });
240
+ if (hasClassName && hasNeighboringStyleProp) return;
241
+ var classes = [];
242
+ var keptAttrs = [];
243
+ var existingClassName = null;
244
+ var blockedLeafKeys = /* @__PURE__ */ new Set();
245
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
246
+ try {
247
+ for (var _iterator = node.attributes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
248
+ var a = _step.value;
249
+ if (t.isJSXAttribute(a) && a.name.name === "className") {
250
+ var v = getStringValue(a.value);
251
+ if (v) {
252
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
253
+ try {
254
+ for (var _iterator1 = v.split(/\s+/)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
255
+ var tok = _step1.value;
256
+ var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
257
+ if (tok) try {
258
+ for (var _iterator2 = leafKeysOfClassToken(tok)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
259
+ var k = _step2.value;
260
+ blockedLeafKeys.add(k);
261
+ }
262
+ } catch (err) {
263
+ _didIteratorError2 = true;
264
+ _iteratorError2 = err;
265
+ } finally {
266
+ try {
267
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
268
+ _iterator2.return();
269
+ }
270
+ } finally {
271
+ if (_didIteratorError2) {
272
+ throw _iteratorError2;
273
+ }
274
+ }
275
+ }
276
+ }
277
+ } catch (err) {
278
+ _didIteratorError1 = true;
279
+ _iteratorError1 = err;
280
+ } finally {
281
+ try {
282
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
283
+ _iterator1.return();
284
+ }
285
+ } finally {
286
+ if (_didIteratorError1) {
287
+ throw _iteratorError1;
288
+ }
289
+ }
290
+ }
291
+ }
292
+ }
293
+ }
294
+ } catch (err) {
295
+ _didIteratorError = true;
296
+ _iteratorError = err;
297
+ } finally {
298
+ try {
299
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
300
+ _iterator.return();
301
+ }
302
+ } finally {
303
+ if (_didIteratorError) {
304
+ throw _iteratorError;
305
+ }
306
+ }
307
+ }
308
+ var implicitClasses = [];
309
+ if (componentName === "XStack") implicitClasses.push("flex", "flex-row");
310
+ else if (componentName === "YStack") implicitClasses.push("flex", "flex-col");
311
+ else if (componentName === "ZStack") implicitClasses.push("relative");
312
+ var styleEntries = [];
313
+ var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;
314
+ try {
315
+ for (var _iterator3 = node.attributes[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
316
+ var attr = _step3.value;
317
+ if (!t.isJSXAttribute(attr)) {
318
+ keptAttrs.push(attr);
319
+ continue;
320
+ }
321
+ var name = attr.name.name;
322
+ if (name === "className") {
323
+ existingClassName = attr;
324
+ continue;
325
+ }
326
+ styleEntries.push({
327
+ attr,
328
+ fullProp: resolveShorthand(ctx, name),
329
+ cls: propValueToClass(ctx, name, attr.value)
330
+ });
331
+ }
332
+ } catch (err) {
333
+ _didIteratorError3 = true;
334
+ _iteratorError3 = err;
335
+ } finally {
336
+ try {
337
+ if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
338
+ _iterator3.return();
339
+ }
340
+ } finally {
341
+ if (_didIteratorError3) {
342
+ throw _iteratorError3;
343
+ }
344
+ }
345
+ }
346
+ var retainedLeafKeys = new Set(blockedLeafKeys);
347
+ var _iteratorNormalCompletion4 = true, _didIteratorError4 = false, _iteratorError4 = void 0;
348
+ try {
349
+ for (var _iterator4 = styleEntries[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
350
+ var e = _step4.value;
351
+ if (e.cls === null && isConvertibleStyleProp(e.fullProp)) {
352
+ var _iteratorNormalCompletion5 = true, _didIteratorError5 = false, _iteratorError5 = void 0;
353
+ try {
354
+ for (var _iterator5 = leafKeysOfProp(e.fullProp)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
355
+ var k1 = _step5.value;
356
+ retainedLeafKeys.add(k1);
357
+ }
358
+ } catch (err) {
359
+ _didIteratorError5 = true;
360
+ _iteratorError5 = err;
361
+ } finally {
362
+ try {
363
+ if (!_iteratorNormalCompletion5 && _iterator5.return != null) {
364
+ _iterator5.return();
365
+ }
366
+ } finally {
367
+ if (_didIteratorError5) {
368
+ throw _iteratorError5;
369
+ }
370
+ }
371
+ }
372
+ }
373
+ }
374
+ } catch (err) {
375
+ _didIteratorError4 = true;
376
+ _iteratorError4 = err;
377
+ } finally {
378
+ try {
379
+ if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
380
+ _iterator4.return();
381
+ }
382
+ } finally {
383
+ if (_didIteratorError4) {
384
+ throw _iteratorError4;
385
+ }
386
+ }
387
+ }
388
+ var _iteratorNormalCompletion6 = true, _didIteratorError6 = false, _iteratorError6 = void 0;
389
+ try {
390
+ for (var _iterator6 = implicitClasses[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
391
+ var c = _step6.value;
392
+ if (!overlapsSet(leafKeysOfClassToken(c), retainedLeafKeys)) classes.push(c);
393
+ }
394
+ } catch (err) {
395
+ _didIteratorError6 = true;
396
+ _iteratorError6 = err;
397
+ } finally {
398
+ try {
399
+ if (!_iteratorNormalCompletion6 && _iterator6.return != null) {
400
+ _iterator6.return();
401
+ }
402
+ } finally {
403
+ if (_didIteratorError6) {
404
+ throw _iteratorError6;
405
+ }
406
+ }
407
+ }
408
+ var _iteratorNormalCompletion7 = true, _didIteratorError7 = false, _iteratorError7 = void 0;
409
+ try {
410
+ for (var _iterator7 = styleEntries[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
411
+ var e1 = _step7.value;
412
+ if (e1.cls !== null && !overlapsSet(leafKeysOfProp(e1.fullProp), retainedLeafKeys)) {
413
+ classes.push(e1.cls);
414
+ } else {
415
+ keptAttrs.push(e1.attr);
416
+ }
417
+ }
418
+ } catch (err) {
419
+ _didIteratorError7 = true;
420
+ _iteratorError7 = err;
421
+ } finally {
422
+ try {
423
+ if (!_iteratorNormalCompletion7 && _iterator7.return != null) {
424
+ _iterator7.return();
425
+ }
426
+ } finally {
427
+ if (_didIteratorError7) {
428
+ throw _iteratorError7;
429
+ }
430
+ }
431
+ }
432
+ if (classes.length > 0) {
433
+ var classStr = classes.join(" ");
434
+ if (existingClassName) {
435
+ var existingVal = getStringValue(existingClassName.value);
436
+ if (existingVal !== null) {
437
+ existingClassName.value = t.stringLiteral(existingVal ? `${classStr} ${existingVal}` : classStr);
438
+ keptAttrs.unshift(existingClassName);
439
+ } else if (t.isJSXExpressionContainer(existingClassName.value) && !t.isJSXEmptyExpression(existingClassName.value.expression)) {
440
+ var expr = existingClassName.value.expression;
441
+ existingClassName.value = t.jsxExpressionContainer(t.templateLiteral([t.templateElement({
442
+ raw: `${classStr} `,
443
+ cooked: `${classStr} `
444
+ }, false), t.templateElement({
445
+ raw: "",
446
+ cooked: ""
447
+ }, true)], [expr]));
448
+ keptAttrs.unshift(existingClassName);
449
+ } else {
450
+ keptAttrs.unshift(t.jsxAttribute(t.jsxIdentifier("className"), t.stringLiteral(classStr)));
451
+ }
452
+ } else {
453
+ keptAttrs.unshift(t.jsxAttribute(t.jsxIdentifier("className"), t.stringLiteral(classStr)));
454
+ }
455
+ } else if (existingClassName) {
456
+ keptAttrs.unshift(existingClassName);
457
+ }
458
+ node.attributes = keptAttrs;
459
+ if (classes.length > 0) didTransform = true;
460
+ if (renameComponents && isSimpleKnown && isPlainIdentifier) {
461
+ var tag = import_componentToTag.componentToTag[componentName];
462
+ node.name = t.jsxIdentifier(tag);
463
+ var parent = path.parent;
464
+ if (t.isJSXElement(parent) && parent.closingElement) {
465
+ parent.closingElement.name = t.jsxIdentifier(tag);
466
+ }
467
+ didTransform = true;
468
+ }
469
+ } });
470
+ if (!didTransform) return source;
471
+ var output = generate(ast, {
472
+ retainLines: true,
473
+ concise: false
474
+ });
475
+ return output.code;
476
+ }
477
+ var knownCompoundComponents = /* @__PURE__ */ new Set([
478
+ "Sheet.Frame",
479
+ "Sheet.Overlay",
480
+ "Sheet.Handle",
481
+ "Sheet.ScrollView",
482
+ "Sheet.Container",
483
+ "Dialog.Content",
484
+ "Dialog.Overlay",
485
+ "Popover.Content",
486
+ "Tabs.Tab"
487
+ ]);
488
+ function isTamaguiSource(source) {
489
+ return source === "tamagui" || source.startsWith("@tamagui/");
490
+ }
491
+ function resolveTamaguiComponent(path, ctx) {
492
+ var _path_scope_getBinding, _path_scope;
493
+ var nameNode = path.node.name;
494
+ var baseName;
495
+ var memberChain = [];
496
+ var isPlainIdentifier = t.isJSXIdentifier(nameNode);
497
+ if (t.isJSXIdentifier(nameNode)) {
498
+ baseName = nameNode.name;
499
+ } else if (t.isJSXMemberExpression(nameNode)) {
500
+ var parts = [];
501
+ var cur = nameNode;
502
+ while (t.isJSXMemberExpression(cur)) {
503
+ parts.unshift(cur.property.name);
504
+ cur = cur.object;
505
+ }
506
+ if (!t.isJSXIdentifier(cur)) return null;
507
+ baseName = cur.name;
508
+ memberChain = parts;
509
+ } else {
510
+ return null;
511
+ }
512
+ var binding = (_path_scope = path.scope) === null || _path_scope === void 0 ? void 0 : (_path_scope_getBinding = _path_scope.getBinding) === null || _path_scope_getBinding === void 0 ? void 0 : _path_scope_getBinding.call(_path_scope, baseName);
513
+ var tamaguiBase;
514
+ if (binding) {
515
+ var bnode = binding.path.node;
516
+ if (t.isImportSpecifier(bnode) || t.isImportDefaultSpecifier(bnode) || t.isImportNamespaceSpecifier(bnode)) {
517
+ var decl = binding.path.parent;
518
+ var source = t.isImportDeclaration(decl) ? String(decl.source.value) : "";
519
+ if (!isTamaguiSource(source)) return null;
520
+ if (t.isImportNamespaceSpecifier(bnode)) {
521
+ if (memberChain.length === 0) return null;
522
+ tamaguiBase = memberChain[0];
523
+ memberChain = memberChain.slice(1);
524
+ } else if (t.isImportSpecifier(bnode)) {
525
+ var imported = bnode.imported;
526
+ tamaguiBase = t.isIdentifier(imported) ? imported.name : String(imported.value);
527
+ } else {
528
+ return null;
529
+ }
530
+ } else {
531
+ return null;
532
+ }
533
+ } else {
534
+ tamaguiBase = baseName;
535
+ }
536
+ var name = memberChain.length ? [tamaguiBase, ...memberChain].join(".") : tamaguiBase;
537
+ var isSimpleKnown = memberChain.length === 0 && name in import_componentToTag.componentToTag;
538
+ if (!isSimpleKnown && !knownCompoundComponents.has(name) && !ctx.componentAllow.has(name)) {
539
+ return null;
540
+ }
541
+ return {
542
+ name,
543
+ isSimpleKnown,
544
+ isPlainIdentifier
545
+ };
546
+ }
547
+ function classPrefixOf(token) {
548
+ var noMod = token.slice(token.lastIndexOf(":") + 1);
549
+ var core = noMod[0] === "-" ? noMod.slice(1) : noMod;
550
+ var dash = core.indexOf("-");
551
+ return dash === -1 ? core : core.slice(0, dash);
552
+ }
553
+ var leafExpansion = {
554
+ padding: [
555
+ "paddingTop",
556
+ "paddingRight",
557
+ "paddingBottom",
558
+ "paddingLeft"
559
+ ],
560
+ paddingHorizontal: ["paddingLeft", "paddingRight"],
561
+ paddingVertical: ["paddingTop", "paddingBottom"],
562
+ margin: [
563
+ "marginTop",
564
+ "marginRight",
565
+ "marginBottom",
566
+ "marginLeft"
567
+ ],
568
+ marginHorizontal: ["marginLeft", "marginRight"],
569
+ marginVertical: ["marginTop", "marginBottom"],
570
+ inset: [
571
+ "top",
572
+ "right",
573
+ "bottom",
574
+ "left"
575
+ ],
576
+ gap: [
577
+ "gap",
578
+ "rowGap",
579
+ "columnGap"
580
+ ],
581
+ borderWidth: [
582
+ "borderTopWidth",
583
+ "borderRightWidth",
584
+ "borderBottomWidth",
585
+ "borderLeftWidth"
586
+ ],
587
+ borderColor: [
588
+ "borderTopColor",
589
+ "borderRightColor",
590
+ "borderBottomColor",
591
+ "borderLeftColor"
592
+ ],
593
+ borderRadius: [
594
+ "borderTopLeftRadius",
595
+ "borderTopRightRadius",
596
+ "borderBottomLeftRadius",
597
+ "borderBottomRightRadius"
598
+ ]
599
+ };
600
+ function leafKeysOfProp(fullProp) {
601
+ var _leafExpansion_fullProp;
602
+ return (_leafExpansion_fullProp = leafExpansion[fullProp]) !== null && _leafExpansion_fullProp !== void 0 ? _leafExpansion_fullProp : [fullProp];
603
+ }
604
+ var prefixToProp = (function() {
605
+ var m = {};
606
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
607
+ try {
608
+ for (var _iterator = Object.entries(import_tooling.propToTailwindPrefix)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
609
+ var [prop, prefix] = _step.value;
610
+ if (prefix && !(prefix in m)) m[prefix] = prop;
611
+ }
612
+ } catch (err) {
613
+ _didIteratorError = true;
614
+ _iteratorError = err;
615
+ } finally {
616
+ try {
617
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
618
+ _iterator.return();
619
+ }
620
+ } finally {
621
+ if (_didIteratorError) {
622
+ throw _iteratorError;
623
+ }
624
+ }
625
+ }
626
+ return m;
627
+ })();
628
+ function leafKeysOfClassToken(token) {
629
+ var prefix = classPrefixOf(token);
630
+ var _prefixToProp_prefix;
631
+ return leafKeysOfProp((_prefixToProp_prefix = prefixToProp[prefix]) !== null && _prefixToProp_prefix !== void 0 ? _prefixToProp_prefix : prefix);
632
+ }
633
+ function overlapsSet(keys, set) {
634
+ return keys.some(function(k) {
635
+ return set.has(k);
636
+ });
637
+ }
638
+ function isConvertibleStyleProp(fullProp) {
639
+ return import_tooling.propToTailwindPrefix[fullProp] !== void 0 || fullProp in import_tooling.standaloneValueProps;
640
+ }
641
+ function propValueToClass(ctx, propName, value) {
642
+ var fullProp = resolveShorthand(ctx, propName);
643
+ if (import_tooling.propToTailwindPrefix[fullProp] === void 0) return null;
644
+ var strVal = getStringValue(value);
645
+ var numVal = getNumericValue(value);
646
+ if (strVal !== null) {
647
+ var parsed = (0, import_tooling.parseValue)(strVal, ctx.modifierRegistry);
648
+ if (!parsed.ok) return null;
649
+ var classes = [];
650
+ if (parsed.value.base !== null) {
651
+ var base = payloadToClass(ctx, fullProp, parsed.value.base, []);
652
+ if (base === null) return null;
653
+ classes.push(base);
654
+ }
655
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
656
+ try {
657
+ for (var _iterator = parsed.value.clauses[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
658
+ var clause = _step.value;
659
+ var conditional = payloadToClass(ctx, fullProp, clause.payload, clause.modifiers);
660
+ if (conditional === null) return null;
661
+ classes.push(conditional);
662
+ }
663
+ } catch (err) {
664
+ _didIteratorError = true;
665
+ _iteratorError = err;
666
+ } finally {
667
+ try {
668
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
669
+ _iterator.return();
670
+ }
671
+ } finally {
672
+ if (_didIteratorError) {
673
+ throw _iteratorError;
674
+ }
675
+ }
676
+ }
677
+ return classes.length ? classes.join(" ") : null;
678
+ }
679
+ if (numVal === null) return null;
680
+ var formatted = formatNumericValue(fullProp, numVal);
681
+ if (formatted === null) return null;
682
+ return (0, import_tooling.formatCandidate)({
683
+ prop: fullProp,
684
+ value: formatted.value,
685
+ valueKind: formatted.valueKind,
686
+ modifiers: void 0
687
+ }, ctx.grammarConfig);
688
+ }
689
+ function payloadToClass(ctx, fullProp, payload, modifiers) {
690
+ var _standaloneValueProps_fullProp;
691
+ var formatted;
692
+ if ((_standaloneValueProps_fullProp = import_tooling.standaloneValueProps[fullProp]) === null || _standaloneValueProps_fullProp === void 0 ? void 0 : _standaloneValueProps_fullProp[payload]) {
693
+ formatted = {
694
+ value: payload,
695
+ valueKind: "enum"
696
+ };
697
+ } else {
698
+ formatted = formatStringValue(ctx, fullProp, payload);
699
+ if (formatted === null && /^-?\d+(?:\.\d+)?$/.test(payload)) {
700
+ var _ctx_grammarConfig_tokenNames;
701
+ var category = (0, import_tooling.getTokenCategory)(fullProp);
702
+ if (!category || ((_ctx_grammarConfig_tokenNames = ctx.grammarConfig.tokenNames) === null || _ctx_grammarConfig_tokenNames === void 0 ? void 0 : _ctx_grammarConfig_tokenNames[category]) !== void 0) {
703
+ formatted = formatNumericValue(fullProp, Number(payload));
704
+ }
705
+ }
706
+ }
707
+ if (formatted === null) return null;
708
+ return (0, import_tooling.formatCandidate)({
709
+ prop: fullProp,
710
+ value: formatted.value,
711
+ valueKind: formatted.valueKind,
712
+ modifiers: modifiers.length ? modifiers : void 0
713
+ }, ctx.grammarConfig);
714
+ }
715
+ function getStringValue(value) {
716
+ if (!value) return null;
717
+ if (t.isStringLiteral(value)) return value.value;
718
+ if (t.isJSXExpressionContainer(value) && t.isStringLiteral(value.expression)) {
719
+ return value.expression.value;
720
+ }
721
+ if (t.isJSXExpressionContainer(value) && t.isTemplateLiteral(value.expression)) {
722
+ if (value.expression.expressions.length === 0 && value.expression.quasis.length === 1) {
723
+ return value.expression.quasis[0].value.raw;
724
+ }
725
+ }
726
+ return null;
727
+ }
728
+ function getNumericValue(value) {
729
+ if (!value) return null;
730
+ if (t.isJSXExpressionContainer(value)) {
731
+ if (t.isNumericLiteral(value.expression)) return value.expression.value;
732
+ if (t.isUnaryExpression(value.expression) && value.expression.operator === "-" && t.isNumericLiteral(value.expression.argument)) {
733
+ return -value.expression.argument.value;
734
+ }
735
+ }
736
+ return null;
737
+ }
738
+ function resolveShorthand(ctx, name) {
739
+ return ctx.shorthands[name] || name;
740
+ }
741
+ function hasConfiguredName(names, value) {
742
+ if (!names) return false;
743
+ if (Array.isArray(names)) return names.includes(value);
744
+ if (_instanceof(names, Set)) return names.has(value);
745
+ return Object.prototype.hasOwnProperty.call(names, value);
746
+ }
747
+ function formatStringValue(ctx, prop, value) {
748
+ var _ctx_grammarConfig_tokenNames;
749
+ var category = (0, import_tooling.getTokenCategory)(prop);
750
+ if (prop !== "fontWeight" && category && hasConfiguredName((_ctx_grammarConfig_tokenNames = ctx.grammarConfig.tokenNames) === null || _ctx_grammarConfig_tokenNames === void 0 ? void 0 : _ctx_grammarConfig_tokenNames[category], value)) {
751
+ if (category === "color") {
752
+ var mapped = getV6ThemeName(value);
753
+ return mapped ? {
754
+ value: mapped,
755
+ valueKind: "token"
756
+ } : null;
757
+ }
758
+ return {
759
+ value,
760
+ valueKind: "token"
761
+ };
762
+ }
763
+ if (prop === "fontWeight") {
764
+ return import_tooling.fontWeightNames[value] ? {
765
+ value,
766
+ valueKind: "enum"
767
+ } : null;
768
+ }
769
+ if (prop === "zIndex" && /^\d+$/.test(value)) {
770
+ return {
771
+ value,
772
+ valueKind: "convenience"
773
+ };
774
+ }
775
+ if (/^-?\d+(\.\d+)?$/.test(value)) return null;
776
+ if (value.endsWith("%")) {
777
+ var exact = {
778
+ "100%": "full",
779
+ "50%": "1/2",
780
+ "25%": "1/4",
781
+ "75%": "3/4"
782
+ };
783
+ if ((0, import_tooling.getTokenCategory)(prop) === "size" && exact[value]) {
784
+ return {
785
+ value: exact[value],
786
+ valueKind: "convenience"
787
+ };
788
+ }
789
+ return {
790
+ value,
791
+ valueKind: "arbitrary"
792
+ };
793
+ }
794
+ if (value === "auto" && (0, import_tooling.getTokenCategory)(prop) === "size") {
795
+ return {
796
+ value,
797
+ valueKind: "convenience"
798
+ };
799
+ }
800
+ if (prop === "fontFamily") return {
801
+ value,
802
+ valueKind: "arbitrary"
803
+ };
804
+ if (value.includes("(") || value.includes(" ") || value.includes("_") || value.startsWith("#") || value.startsWith("-") || /^[\d.]+[a-z%]/i.test(value)) {
805
+ return {
806
+ value,
807
+ valueKind: "arbitrary"
808
+ };
809
+ }
810
+ return {
811
+ value,
812
+ valueKind: "arbitrary"
813
+ };
814
+ }
815
+ var pxLengthProps = /* @__PURE__ */ new Set([
816
+ "width",
817
+ "height",
818
+ "minWidth",
819
+ "maxWidth",
820
+ "minHeight",
821
+ "maxHeight",
822
+ "flexBasis",
823
+ "padding",
824
+ "paddingTop",
825
+ "paddingRight",
826
+ "paddingBottom",
827
+ "paddingLeft",
828
+ "paddingHorizontal",
829
+ "paddingVertical",
830
+ "margin",
831
+ "marginTop",
832
+ "marginRight",
833
+ "marginBottom",
834
+ "marginLeft",
835
+ "marginHorizontal",
836
+ "marginVertical",
837
+ "gap",
838
+ "rowGap",
839
+ "columnGap",
840
+ "top",
841
+ "right",
842
+ "bottom",
843
+ "left",
844
+ "inset",
845
+ "borderRadius",
846
+ "borderTopLeftRadius",
847
+ "borderTopRightRadius",
848
+ "borderBottomLeftRadius",
849
+ "borderBottomRightRadius",
850
+ "fontSize",
851
+ "letterSpacing",
852
+ "lineHeight"
853
+ ]);
854
+ function formatNumericValue(prop, value) {
855
+ if (prop === "opacity") {
856
+ var pct = value * 100;
857
+ return Number.isInteger(pct) ? {
858
+ value: String(pct),
859
+ valueKind: "convenience"
860
+ } : {
861
+ value: String(value),
862
+ valueKind: "arbitrary"
863
+ };
864
+ }
865
+ if (prop === "aspectRatio") return {
866
+ value: String(value),
867
+ valueKind: "arbitrary"
868
+ };
869
+ if (prop === "scale" || prop === "scaleX" || prop === "scaleY") {
870
+ if (value === 0) return {
871
+ value: "0",
872
+ valueKind: "convenience"
873
+ };
874
+ if (value === 1) return {
875
+ value: "100",
876
+ valueKind: "convenience"
877
+ };
878
+ return {
879
+ value: String(value),
880
+ valueKind: "arbitrary"
881
+ };
882
+ }
883
+ if (prop === "flex") {
884
+ return value === 1 ? {
885
+ value: "1",
886
+ valueKind: "convenience"
887
+ } : {
888
+ value: String(value),
889
+ valueKind: "arbitrary"
890
+ };
891
+ }
892
+ if (prop === "flexGrow" || prop === "flexShrink") {
893
+ return {
894
+ value: String(value),
895
+ valueKind: "arbitrary"
896
+ };
897
+ }
898
+ if (prop === "zIndex") {
899
+ return Number.isInteger(value) && value >= 0 ? {
900
+ value: String(value),
901
+ valueKind: "convenience"
902
+ } : {
903
+ value: String(value),
904
+ valueKind: "arbitrary"
905
+ };
906
+ }
907
+ if (prop === "fontWeight") {
908
+ return import_tooling.fontWeightNames[String(value)] ? {
909
+ value: String(value),
910
+ valueKind: "enum"
911
+ } : null;
912
+ }
913
+ if (prop === "rotate") return null;
914
+ if (prop === "x" || prop === "y") {
915
+ return {
916
+ value: `${value}px`,
917
+ valueKind: "arbitrary"
918
+ };
919
+ }
920
+ if (prop.includes("Width") && prop.startsWith("border")) {
921
+ return {
922
+ value: `${value}px`,
923
+ valueKind: "arbitrary"
924
+ };
925
+ }
926
+ if (pxLengthProps.has(prop)) {
927
+ return {
928
+ value: `${value}px`,
929
+ valueKind: "arbitrary"
930
+ };
931
+ }
932
+ return null;
933
+ }