stampd 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/README.md +611 -0
  2. package/dist/analyzer/analyzeStyle.d.ts +13 -0
  3. package/dist/analyzer/analyzeStyle.d.ts.map +1 -0
  4. package/dist/analyzer/analyzeStyle.js +43 -0
  5. package/dist/analyzer/analyzeStyle.js.map +1 -0
  6. package/dist/analyzer/classifyValue.d.ts +7 -0
  7. package/dist/analyzer/classifyValue.d.ts.map +1 -0
  8. package/dist/analyzer/classifyValue.js +30 -0
  9. package/dist/analyzer/classifyValue.js.map +1 -0
  10. package/dist/analyzer/isThemeAccess.d.ts +7 -0
  11. package/dist/analyzer/isThemeAccess.d.ts.map +1 -0
  12. package/dist/analyzer/isThemeAccess.js +17 -0
  13. package/dist/analyzer/isThemeAccess.js.map +1 -0
  14. package/dist/cli/runTransform.d.ts +2 -0
  15. package/dist/cli/runTransform.d.ts.map +1 -0
  16. package/dist/cli/runTransform.js +55 -0
  17. package/dist/cli/runTransform.js.map +1 -0
  18. package/dist/config/createTheme.d.ts +101 -0
  19. package/dist/config/createTheme.d.ts.map +1 -0
  20. package/dist/config/createTheme.js +61 -0
  21. package/dist/config/createTheme.js.map +1 -0
  22. package/dist/config/generateTypes.d.ts +2 -0
  23. package/dist/config/generateTypes.d.ts.map +1 -0
  24. package/dist/config/generateTypes.js +103 -0
  25. package/dist/config/generateTypes.js.map +1 -0
  26. package/dist/config/loadStyledConfig.d.ts +13 -0
  27. package/dist/config/loadStyledConfig.d.ts.map +1 -0
  28. package/dist/config/loadStyledConfig.js +175 -0
  29. package/dist/config/loadStyledConfig.js.map +1 -0
  30. package/dist/context/Provider.d.ts +40 -0
  31. package/dist/context/Provider.d.ts.map +1 -0
  32. package/dist/context/Provider.js +141 -0
  33. package/dist/context/Provider.js.map +1 -0
  34. package/dist/core/shouldTransform.d.ts +6 -0
  35. package/dist/core/shouldTransform.d.ts.map +1 -0
  36. package/dist/core/shouldTransform.js +28 -0
  37. package/dist/core/shouldTransform.js.map +1 -0
  38. package/dist/detectors/isStyledCall.d.ts +10 -0
  39. package/dist/detectors/isStyledCall.d.ts.map +1 -0
  40. package/dist/detectors/isStyledCall.js +20 -0
  41. package/dist/detectors/isStyledCall.js.map +1 -0
  42. package/dist/detectors/isStyledImported.d.ts +9 -0
  43. package/dist/detectors/isStyledImported.d.ts.map +1 -0
  44. package/dist/detectors/isStyledImported.js +27 -0
  45. package/dist/detectors/isStyledImported.js.map +1 -0
  46. package/dist/extractors/extractAttrs.d.ts +13 -0
  47. package/dist/extractors/extractAttrs.d.ts.map +1 -0
  48. package/dist/extractors/extractAttrs.js +40 -0
  49. package/dist/extractors/extractAttrs.js.map +1 -0
  50. package/dist/extractors/extractStyle.d.ts +24 -0
  51. package/dist/extractors/extractStyle.d.ts.map +1 -0
  52. package/dist/extractors/extractStyle.js +57 -0
  53. package/dist/extractors/extractStyle.js.map +1 -0
  54. package/dist/extractors/extractVariants.d.ts +11 -0
  55. package/dist/extractors/extractVariants.d.ts.map +1 -0
  56. package/dist/extractors/extractVariants.js +31 -0
  57. package/dist/extractors/extractVariants.js.map +1 -0
  58. package/dist/extractors/getStyledConfig.d.ts +9 -0
  59. package/dist/extractors/getStyledConfig.d.ts.map +1 -0
  60. package/dist/extractors/getStyledConfig.js +17 -0
  61. package/dist/extractors/getStyledConfig.js.map +1 -0
  62. package/dist/index.d.ts +7 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +36 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/runtime/Styled.d.ts +48 -0
  67. package/dist/runtime/Styled.d.ts.map +1 -0
  68. package/dist/runtime/Styled.js +17 -0
  69. package/dist/runtime/Styled.js.map +1 -0
  70. package/dist/theme/astFromValue.d.ts +3 -0
  71. package/dist/theme/astFromValue.d.ts.map +1 -0
  72. package/dist/theme/astFromValue.js +22 -0
  73. package/dist/theme/astFromValue.js.map +1 -0
  74. package/dist/theme/extractThemePath.d.ts +7 -0
  75. package/dist/theme/extractThemePath.d.ts.map +1 -0
  76. package/dist/theme/extractThemePath.js +21 -0
  77. package/dist/theme/extractThemePath.js.map +1 -0
  78. package/dist/theme/resolveExpression.d.ts +7 -0
  79. package/dist/theme/resolveExpression.d.ts.map +1 -0
  80. package/dist/theme/resolveExpression.js +46 -0
  81. package/dist/theme/resolveExpression.js.map +1 -0
  82. package/dist/theme/resolveThemeInStyle.d.ts +6 -0
  83. package/dist/theme/resolveThemeInStyle.d.ts.map +1 -0
  84. package/dist/theme/resolveThemeInStyle.js +26 -0
  85. package/dist/theme/resolveThemeInStyle.js.map +1 -0
  86. package/dist/theme/resolveThemePath.d.ts +8 -0
  87. package/dist/theme/resolveThemePath.d.ts.map +1 -0
  88. package/dist/theme/resolveThemePath.js +22 -0
  89. package/dist/theme/resolveThemePath.js.map +1 -0
  90. package/dist/transformers/transformStyled.d.ts +7 -0
  91. package/dist/transformers/transformStyled.d.ts.map +1 -0
  92. package/dist/transformers/transformStyled.js +104 -0
  93. package/dist/transformers/transformStyled.js.map +1 -0
  94. package/dist/transformers/transformStyledWithVariants.d.ts +22 -0
  95. package/dist/transformers/transformStyledWithVariants.d.ts.map +1 -0
  96. package/dist/transformers/transformStyledWithVariants.js +197 -0
  97. package/dist/transformers/transformStyledWithVariants.js.map +1 -0
  98. package/dist/utils/buildDefaultVariantsAST.d.ts +3 -0
  99. package/dist/utils/buildDefaultVariantsAST.d.ts.map +1 -0
  100. package/dist/utils/buildDefaultVariantsAST.js +41 -0
  101. package/dist/utils/buildDefaultVariantsAST.js.map +1 -0
  102. package/dist/utils/buildVariantsObjectAST.d.ts +3 -0
  103. package/dist/utils/buildVariantsObjectAST.d.ts.map +1 -0
  104. package/dist/utils/buildVariantsObjectAST.js +43 -0
  105. package/dist/utils/buildVariantsObjectAST.js.map +1 -0
  106. package/dist/utils/defaultFontStyle.d.ts +8 -0
  107. package/dist/utils/defaultFontStyle.d.ts.map +1 -0
  108. package/dist/utils/defaultFontStyle.js +32 -0
  109. package/dist/utils/defaultFontStyle.js.map +1 -0
  110. package/dist/utils/ensureImport.d.ts +13 -0
  111. package/dist/utils/ensureImport.d.ts.map +1 -0
  112. package/dist/utils/ensureImport.js +76 -0
  113. package/dist/utils/ensureImport.js.map +1 -0
  114. package/dist/utils/getProgramPath.d.ts +6 -0
  115. package/dist/utils/getProgramPath.d.ts.map +1 -0
  116. package/dist/utils/getProgramPath.js +10 -0
  117. package/dist/utils/getProgramPath.js.map +1 -0
  118. package/dist/utils/nodeHasPlatformSelect.d.ts +3 -0
  119. package/dist/utils/nodeHasPlatformSelect.d.ts.map +1 -0
  120. package/dist/utils/nodeHasPlatformSelect.js +37 -0
  121. package/dist/utils/nodeHasPlatformSelect.js.map +1 -0
  122. package/dist/utils/nodeHasThemeAccess.d.ts +7 -0
  123. package/dist/utils/nodeHasThemeAccess.d.ts.map +1 -0
  124. package/dist/utils/nodeHasThemeAccess.js +36 -0
  125. package/dist/utils/nodeHasThemeAccess.js.map +1 -0
  126. package/dist/utils/replaceParamWithProps.d.ts +7 -0
  127. package/dist/utils/replaceParamWithProps.d.ts.map +1 -0
  128. package/dist/utils/replaceParamWithProps.js +34 -0
  129. package/dist/utils/replaceParamWithProps.js.map +1 -0
  130. package/package.json +95 -0
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformStyledWithVariants = transformStyledWithVariants;
4
+ // plugins/src/transformers/transformStyledWithVariants.ts
5
+ const core_1 = require("@babel/core");
6
+ const resolveThemeInStyle_1 = require("../theme/resolveThemeInStyle");
7
+ const nodeHasThemeAccess_1 = require("../utils/nodeHasThemeAccess");
8
+ const ensureImport_1 = require("../utils/ensureImport");
9
+ const nodeHasPlatformSelect_1 = require("../utils/nodeHasPlatformSelect");
10
+ const defaultFontStyle_1 = require("../utils/defaultFontStyle");
11
+ /**
12
+ * Normaliza ({ theme }) => ({...}) para (theme) => ({...})
13
+ */
14
+ function normalizeToThemeParam(node) {
15
+ return core_1.types.arrowFunctionExpression([core_1.types.identifier("theme")], node.body, node.async);
16
+ }
17
+ /**
18
+ * Constrói __variants_X.
19
+ * - Resolve theme em hardcode em cada função de variant.
20
+ * - Emite como `(theme) => ({...})` se ainda houver acesso a theme,
21
+ * ou como plain object `{...}` se tudo foi resolvido.
22
+ * - Rastreia por grupo se alguma sub-variant precisa de theme.
23
+ */
24
+ function buildNormalizedVariantsAST(variantsPath) {
25
+ const props = [];
26
+ const groupNeedsTheme = {};
27
+ for (const prop of variantsPath.get("properties")) {
28
+ if (!prop.isObjectProperty())
29
+ continue;
30
+ const groupKeyNode = prop.node.key;
31
+ const groupName = core_1.types.isIdentifier(groupKeyNode) ? groupKeyNode.name : "";
32
+ const value = prop.get("value");
33
+ if (!value.isObjectExpression())
34
+ continue;
35
+ let groupHasTheme = false;
36
+ const subProps = [];
37
+ for (const subProp of value.get("properties")) {
38
+ if (!subProp.isObjectProperty())
39
+ continue;
40
+ const subValue = subProp.node.value;
41
+ // Resolve theme em hardcode no body da função de variant
42
+ if (core_1.types.isArrowFunctionExpression(subValue) && core_1.types.isObjectExpression(subValue.body)) {
43
+ (0, resolveThemeInStyle_1.resolveThemeInStyle)(subValue.body);
44
+ if ((0, nodeHasThemeAccess_1.nodeHasThemeAccess)(subValue.body)) {
45
+ groupHasTheme = true;
46
+ }
47
+ }
48
+ subProps.push(core_1.types.objectProperty(subProp.node.key, subValue));
49
+ }
50
+ // Se o grupo inteiro não precisa de theme, converte funções para plain objects
51
+ // Se alguma precisa, normaliza todas as funções para (theme) => ({...})
52
+ const finalSubProps = subProps.map((sp) => {
53
+ const val = sp.value;
54
+ if (!core_1.types.isArrowFunctionExpression(val))
55
+ return sp;
56
+ const normalized = groupHasTheme
57
+ ? normalizeToThemeParam(val)
58
+ : (core_1.types.isObjectExpression(val.body) ? val.body : val);
59
+ return core_1.types.objectProperty(sp.key, normalized);
60
+ });
61
+ if (groupName)
62
+ groupNeedsTheme[groupName] = groupHasTheme;
63
+ props.push(core_1.types.objectProperty(groupKeyNode, core_1.types.objectExpression(finalSubProps)));
64
+ }
65
+ return { ast: core_1.types.objectExpression(props), groupNeedsTheme };
66
+ }
67
+ /**
68
+ * Obtém o nome da variável declarada: `const ButtonText = Styled.Text(...)` → "ButtonText"
69
+ */
70
+ function getDeclarationName(path, fallback) {
71
+ const parent = path.parentPath;
72
+ if ((parent === null || parent === void 0 ? void 0 : parent.isVariableDeclarator()) && core_1.types.isIdentifier(parent.node.id)) {
73
+ return parent.node.id.name;
74
+ }
75
+ return fallback;
76
+ }
77
+ /**
78
+ * Transforma Styled.X({...}) com variants:
79
+ *
80
+ * - Resolve tema em hardcode onde possível (stampd.config.ts)
81
+ * - Emite `useStampdUI` e `(theme) => ({...})` SOMENTE quando necessário
82
+ *
83
+ * Caso tudo resolva:
84
+ * const __baseStyle_X = {...};
85
+ * const __variants_X = { variant: { outline: {...} } };
86
+ * const X = (props) => { const { variant, style, ...rest } = props; return <X ... />; };
87
+ *
88
+ * Caso haja valores runtime:
89
+ * const __baseStyle_X = (theme) => ({...});
90
+ * const __variants_X = { variant: { outline: (theme) => ({...}) } };
91
+ * const X = (props) => { const { theme } = useStampdUI(); ... };
92
+ */
93
+ function transformStyledWithVariants(path, componentName, style, variants, attrs = null) {
94
+ const varName = getDeclarationName(path, componentName);
95
+ const baseStyleName = `__baseStyle_${varName}`;
96
+ const variantsName = `__variants_${varName}`;
97
+ const variantKeys = variants.keys;
98
+ // ── 1. Resolve base style e verifica se ainda precisa de theme ──────────
99
+ (0, resolveThemeInStyle_1.resolveThemeInStyle)(style.node);
100
+ const baseNeedsTheme = (0, nodeHasThemeAccess_1.nodeHasThemeAccess)(style.node);
101
+ // ── 2. Resolve variants e verifica por grupo ─────────────────────────────
102
+ const { ast: variantsAst, groupNeedsTheme } = buildNormalizedVariantsAST(variants.path);
103
+ const anyVariantNeedsTheme = Object.values(groupNeedsTheme).some(Boolean);
104
+ // ── 2b. Resolve attrs ────────────────────────────────────────────────────
105
+ const attrsName = `__attrs_${varName}`;
106
+ let attrsDecl = null;
107
+ let attrsNeedsTheme = false;
108
+ if (attrs) {
109
+ (0, resolveThemeInStyle_1.resolveThemeInStyle)(attrs.node);
110
+ attrsNeedsTheme = (0, nodeHasThemeAccess_1.nodeHasThemeAccess)(attrs.node);
111
+ const attrsValue = attrsNeedsTheme
112
+ ? core_1.types.arrowFunctionExpression([core_1.types.identifier("theme")], attrs.node)
113
+ : attrs.node;
114
+ attrsDecl = core_1.types.variableDeclaration("const", [
115
+ core_1.types.variableDeclarator(core_1.types.identifier(attrsName), attrsValue),
116
+ ]);
117
+ }
118
+ const anyNeedsTheme = baseNeedsTheme || anyVariantNeedsTheme || attrsNeedsTheme;
119
+ // ── 3. __baseStyle_X: função ou plain object ─────────────────────────────
120
+ const baseStyleValue = baseNeedsTheme
121
+ ? core_1.types.arrowFunctionExpression([core_1.types.identifier("theme")], style.node)
122
+ : style.node;
123
+ const baseStyleDecl = core_1.types.variableDeclaration("const", [
124
+ core_1.types.variableDeclarator(core_1.types.identifier(baseStyleName), baseStyleValue),
125
+ ]);
126
+ // ── 4. __variants_X ──────────────────────────────────────────────────────
127
+ const variantsDecl = core_1.types.variableDeclaration("const", [
128
+ core_1.types.variableDeclarator(core_1.types.identifier(variantsName), variantsAst),
129
+ ]);
130
+ // ── 5. style={[...]} ─────────────────────────────────────────────────────
131
+ // Base: __baseStyle_X(theme) se precisa, senão __baseStyle_X
132
+ const baseStyleRef = baseNeedsTheme
133
+ ? core_1.types.callExpression(core_1.types.identifier(baseStyleName), [core_1.types.identifier("theme")])
134
+ : core_1.types.identifier(baseStyleName);
135
+ const defaultFont = (0, defaultFontStyle_1.buildDefaultFontStyle)(componentName);
136
+ const styleArrayElements = [
137
+ ...(defaultFont ? [defaultFont] : []),
138
+ baseStyleRef,
139
+ ...variantKeys.map((key) => {
140
+ const lookup = core_1.types.memberExpression(core_1.types.memberExpression(core_1.types.identifier(variantsName), core_1.types.identifier(key)), core_1.types.identifier(key), true);
141
+ const variantValue = groupNeedsTheme[key]
142
+ ? core_1.types.optionalCallExpression(lookup, [core_1.types.identifier("theme")], true) // ?.( theme)
143
+ : lookup; // plain object — sem chamada
144
+ return core_1.types.logicalExpression("&&", core_1.types.identifier(key), variantValue);
145
+ }),
146
+ core_1.types.identifier("style"),
147
+ ];
148
+ // ── 6. Corpo do componente ───────────────────────────────────────────────
149
+ const destructureDecl = core_1.types.variableDeclaration("const", [
150
+ core_1.types.variableDeclarator(core_1.types.objectPattern([
151
+ ...variantKeys.map((key) => core_1.types.objectProperty(core_1.types.identifier(key), core_1.types.identifier(key), false, true)),
152
+ core_1.types.objectProperty(core_1.types.identifier("style"), core_1.types.identifier("style"), false, true),
153
+ core_1.types.restElement(core_1.types.identifier("rest")),
154
+ ]), core_1.types.identifier("props")),
155
+ ]);
156
+ const jsxReturn = core_1.types.returnStatement(core_1.types.jsxElement(core_1.types.jsxOpeningElement(core_1.types.jsxIdentifier(componentName), [
157
+ ...(attrs
158
+ ? [
159
+ core_1.types.jsxSpreadAttribute(attrsNeedsTheme
160
+ ? core_1.types.callExpression(core_1.types.identifier(attrsName), [core_1.types.identifier("theme")])
161
+ : core_1.types.identifier(attrsName)),
162
+ ]
163
+ : []),
164
+ core_1.types.jsxSpreadAttribute(core_1.types.identifier("rest")),
165
+ core_1.types.jsxAttribute(core_1.types.jsxIdentifier("style"), core_1.types.jsxExpressionContainer(core_1.types.arrayExpression(styleArrayElements))),
166
+ ], true), null, [], true));
167
+ const bodyStatements = [];
168
+ // useStampdUI só entra se necessário
169
+ if (anyNeedsTheme) {
170
+ bodyStatements.push(core_1.types.variableDeclaration("const", [
171
+ core_1.types.variableDeclarator(core_1.types.objectPattern([
172
+ core_1.types.objectProperty(core_1.types.identifier("theme"), core_1.types.identifier("theme"), false, true),
173
+ ]), core_1.types.callExpression(core_1.types.identifier("useStampdUI"), [])),
174
+ ]));
175
+ }
176
+ bodyStatements.push(destructureDecl, jsxReturn);
177
+ const componentFn = core_1.types.arrowFunctionExpression([core_1.types.identifier("props")], core_1.types.blockStatement(bodyStatements));
178
+ // ── 7. Hoist + imports ───────────────────────────────────────────────────
179
+ const statementParent = path.getStatementParent();
180
+ if (statementParent) {
181
+ const hoisted = [baseStyleDecl, variantsDecl];
182
+ if (attrsDecl)
183
+ hoisted.push(attrsDecl);
184
+ statementParent.insertBefore(hoisted);
185
+ }
186
+ const program = path.findParent((p) => p.isProgram());
187
+ const hasPlatformSelect = (0, nodeHasPlatformSelect_1.nodeHasPlatformSelect)(style.node) || (0, nodeHasPlatformSelect_1.nodeHasPlatformSelect)(variantsAst);
188
+ if (program && program.isProgram()) {
189
+ (0, ensureImport_1.ensureReactNativeImport)(program, componentName);
190
+ if (anyNeedsTheme)
191
+ (0, ensureImport_1.ensureUseThemeImport)(program);
192
+ if (hasPlatformSelect)
193
+ (0, ensureImport_1.ensurePlatformImport)(program);
194
+ }
195
+ path.replaceWith(componentFn);
196
+ }
197
+ //# sourceMappingURL=transformStyledWithVariants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformStyledWithVariants.js","sourceRoot":"","sources":["../../src/transformers/transformStyledWithVariants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import * as t from "@babel/types";
2
+ export declare function buildDefaultVariantsAST(defaults: any): t.ObjectExpression;
3
+ //# sourceMappingURL=buildDefaultVariantsAST.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildDefaultVariantsAST.d.ts","sourceRoot":"","sources":["../../src/utils/buildDefaultVariantsAST.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,GAAG,sBAMpD"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.buildDefaultVariantsAST = buildDefaultVariantsAST;
37
+ const t = __importStar(require("@babel/types"));
38
+ function buildDefaultVariantsAST(defaults) {
39
+ return t.objectExpression(Object.entries(defaults).map(([key, value]) => t.objectProperty(t.identifier(key), t.valueToNode(value))));
40
+ }
41
+ //# sourceMappingURL=buildDefaultVariantsAST.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildDefaultVariantsAST.js","sourceRoot":"","sources":["../../src/utils/buildDefaultVariantsAST.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,0DAMC;AARD,gDAAkC;AAElC,SAAgB,uBAAuB,CAAC,QAAa;IACnD,OAAO,CAAC,CAAC,gBAAgB,CACvB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAC5C,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAC1D,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import * as t from "@babel/types";
2
+ export declare function buildVariantsObjectAST(variants: any): t.ObjectExpression;
3
+ //# sourceMappingURL=buildVariantsObjectAST.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildVariantsObjectAST.d.ts","sourceRoot":"","sources":["../../src/utils/buildVariantsObjectAST.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,GAAG,sBAiBnD"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.buildVariantsObjectAST = buildVariantsObjectAST;
37
+ const t = __importStar(require("@babel/types"));
38
+ function buildVariantsObjectAST(variants) {
39
+ return t.objectExpression(Object.entries(variants).map(([variantName, variantValues]) => t.objectProperty(t.identifier(variantName), t.objectExpression(Object.entries(variantValues).map(([key, value]) => t.objectProperty(t.identifier(key),
40
+ // 🔥 mantém função original
41
+ value))))));
42
+ }
43
+ //# sourceMappingURL=buildVariantsObjectAST.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildVariantsObjectAST.js","sourceRoot":"","sources":["../../src/utils/buildVariantsObjectAST.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wDAiBC;AAnBD,gDAAkC;AAElC,SAAgB,sBAAsB,CAAC,QAAa;IAClD,OAAO,CAAC,CAAC,gBAAgB,CACvB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,EAAE,CAC5D,CAAC,CAAC,cAAc,CACd,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,EACzB,CAAC,CAAC,gBAAgB,CAChB,MAAM,CAAC,OAAO,CAAC,aAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAM,EAAE,EAAE,CAC7D,CAAC,CAAC,cAAc,CACd,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;IACjB,4BAA4B;IAC5B,KAAK,CACN,CACF,CACF,CACF,CACF,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { types as t } from "@babel/core";
2
+ export declare function isTextComponent(name: string): boolean;
3
+ /**
4
+ * Retorna um ObjectExpression com { fontFamily, fontSize } lidos de fonts.default,
5
+ * ou null se o componente não for de texto ou se fonts.default não estiver configurado.
6
+ */
7
+ export declare function buildDefaultFontStyle(componentName: string): t.ObjectExpression | null;
8
+ //# sourceMappingURL=defaultFontStyle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultFontStyle.d.ts","sourceRoot":"","sources":["../../src/utils/defaultFontStyle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,aAAa,CAAC;AAKzC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,GACpB,CAAC,CAAC,gBAAgB,GAAG,IAAI,CA6B3B"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTextComponent = isTextComponent;
4
+ exports.buildDefaultFontStyle = buildDefaultFontStyle;
5
+ const core_1 = require("@babel/core");
6
+ const loadStyledConfig_1 = require("../config/loadStyledConfig");
7
+ const TEXT_COMPONENTS = new Set(["Text", "TextInput"]);
8
+ function isTextComponent(name) {
9
+ return TEXT_COMPONENTS.has(name);
10
+ }
11
+ /**
12
+ * Retorna um ObjectExpression com { fontFamily, fontSize } lidos de fonts.default,
13
+ * ou null se o componente não for de texto ou se fonts.default não estiver configurado.
14
+ */
15
+ function buildDefaultFontStyle(componentName) {
16
+ var _a;
17
+ if (!TEXT_COMPONENTS.has(componentName))
18
+ return null;
19
+ const config = (0, loadStyledConfig_1.loadStyledConfig)();
20
+ const defaultFont = (_a = config === null || config === void 0 ? void 0 : config.fonts) === null || _a === void 0 ? void 0 : _a.default;
21
+ if (!defaultFont)
22
+ return null;
23
+ const props = [];
24
+ if (typeof defaultFont.family === "string") {
25
+ props.push(core_1.types.objectProperty(core_1.types.identifier("fontFamily"), core_1.types.stringLiteral(defaultFont.family)));
26
+ }
27
+ if (typeof defaultFont.size === "number") {
28
+ props.push(core_1.types.objectProperty(core_1.types.identifier("fontSize"), core_1.types.numericLiteral(defaultFont.size)));
29
+ }
30
+ return props.length > 0 ? core_1.types.objectExpression(props) : null;
31
+ }
32
+ //# sourceMappingURL=defaultFontStyle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultFontStyle.js","sourceRoot":"","sources":["../../src/utils/defaultFontStyle.ts"],"names":[],"mappings":";;AAKA,0CAEC;AAMD,sDA+BC;AA5CD,sCAAyC;AACzC,iEAA8D;AAE9D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAEvD,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CACnC,aAAqB;;IAErB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IAErD,MAAM,MAAM,GAAG,IAAA,mCAAgB,GAAyB,CAAC;IACzD,MAAM,WAAW,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,OAEtB,CAAC;IACd,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,KAAK,GAAuB,EAAE,CAAC;IAErC,IAAI,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CACR,YAAC,CAAC,cAAc,CACd,YAAC,CAAC,UAAU,CAAC,YAAY,CAAC,EAC1B,YAAC,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CACpC,CACF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CACR,YAAC,CAAC,cAAc,CACd,YAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EACxB,YAAC,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CACnC,CACF,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { NodePath, types as t } from "@babel/core";
2
+ /**
3
+ * Garante que useStampdUI está importado de stampd/context.
4
+ * Se o import já existe, adiciona o specifier. Caso contrário, cria o import.
5
+ */
6
+ export declare function ensureUseThemeImport(program: NodePath<t.Program>): void;
7
+ export declare function ensurePlatformImport(program: NodePath<t.Program>): void;
8
+ /**
9
+ * Garante import:
10
+ * import { View } from 'react-native'
11
+ */
12
+ export declare function ensureReactNativeImport(program: NodePath<t.Program>, componentName: string): void;
13
+ //# sourceMappingURL=ensureImport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureImport.d.ts","sourceRoot":"","sources":["../../src/utils/ensureImport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,aAAa,CAAC;AAInD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QA8BhE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAyBhE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAC5B,aAAa,EAAE,MAAM,QA2BtB"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureUseThemeImport = ensureUseThemeImport;
4
+ exports.ensurePlatformImport = ensurePlatformImport;
5
+ exports.ensureReactNativeImport = ensureReactNativeImport;
6
+ const core_1 = require("@babel/core");
7
+ const CONTEXT_SOURCE = "stampd/context";
8
+ /**
9
+ * Garante que useStampdUI está importado de stampd/context.
10
+ * Se o import já existe, adiciona o specifier. Caso contrário, cria o import.
11
+ */
12
+ function ensureUseThemeImport(program) {
13
+ const alreadyImported = program.node.body.some((node) => {
14
+ if (!core_1.types.isImportDeclaration(node))
15
+ return false;
16
+ if (node.source.value !== CONTEXT_SOURCE)
17
+ return false;
18
+ return node.specifiers.some((s) => core_1.types.isImportSpecifier(s) &&
19
+ core_1.types.isIdentifier(s.imported, { name: "useStampdUI" }));
20
+ });
21
+ if (alreadyImported)
22
+ return;
23
+ // Add to existing context import if present
24
+ for (const node of program.node.body) {
25
+ if (!core_1.types.isImportDeclaration(node))
26
+ continue;
27
+ if (node.source.value !== CONTEXT_SOURCE)
28
+ continue;
29
+ node.specifiers.push(core_1.types.importSpecifier(core_1.types.identifier("useStampdUI"), core_1.types.identifier("useStampdUI")));
30
+ return;
31
+ }
32
+ // No context import found — add a new one
33
+ program.node.body.unshift(core_1.types.importDeclaration([core_1.types.importSpecifier(core_1.types.identifier("useStampdUI"), core_1.types.identifier("useStampdUI"))], core_1.types.stringLiteral(CONTEXT_SOURCE)));
34
+ }
35
+ function ensurePlatformImport(program) {
36
+ const alreadyImported = program.node.body.some((node) => {
37
+ if (!core_1.types.isImportDeclaration(node))
38
+ return false;
39
+ if (node.source.value !== "react-native")
40
+ return false;
41
+ return node.specifiers.some((s) => core_1.types.isImportSpecifier(s) && core_1.types.isIdentifier(s.imported, { name: "Platform" }));
42
+ });
43
+ if (alreadyImported)
44
+ return;
45
+ // Try to add to existing react-native import
46
+ for (const node of program.node.body) {
47
+ if (!core_1.types.isImportDeclaration(node))
48
+ continue;
49
+ if (node.source.value !== "react-native")
50
+ continue;
51
+ node.specifiers.push(core_1.types.importSpecifier(core_1.types.identifier("Platform"), core_1.types.identifier("Platform")));
52
+ return;
53
+ }
54
+ // Add new import
55
+ program.node.body.unshift(core_1.types.importDeclaration([core_1.types.importSpecifier(core_1.types.identifier("Platform"), core_1.types.identifier("Platform"))], core_1.types.stringLiteral("react-native")));
56
+ }
57
+ /**
58
+ * Garante import:
59
+ * import { View } from 'react-native'
60
+ */
61
+ function ensureReactNativeImport(program, componentName) {
62
+ const alreadyImported = program.node.body.some((node) => {
63
+ if (!core_1.types.isImportDeclaration(node))
64
+ return false;
65
+ if (node.source.value !== "react-native")
66
+ return false;
67
+ return node.specifiers.some((s) => core_1.types.isImportSpecifier(s) &&
68
+ core_1.types.isIdentifier(s.imported, { name: componentName }));
69
+ });
70
+ if (alreadyImported)
71
+ return;
72
+ program.node.body.unshift(core_1.types.importDeclaration([
73
+ core_1.types.importSpecifier(core_1.types.identifier(componentName), core_1.types.identifier(componentName)),
74
+ ], core_1.types.stringLiteral("react-native")));
75
+ }
76
+ //# sourceMappingURL=ensureImport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureImport.js","sourceRoot":"","sources":["../../src/utils/ensureImport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { NodePath, types as t } from "@babel/core";
2
+ /**
3
+ * Sobe na árvore AST até encontrar o Program (raiz do arquivo)
4
+ */
5
+ export declare function getProgramPath(path: NodePath): NodePath<t.Program> | null;
6
+ //# sourceMappingURL=getProgramPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getProgramPath.d.ts","sourceRoot":"","sources":["../../src/utils/getProgramPath.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAEzE"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProgramPath = getProgramPath;
4
+ /**
5
+ * Sobe na árvore AST até encontrar o Program (raiz do arquivo)
6
+ */
7
+ function getProgramPath(path) {
8
+ return path.findParent((p) => p.isProgram());
9
+ }
10
+ //# sourceMappingURL=getProgramPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getProgramPath.js","sourceRoot":"","sources":["../../src/utils/getProgramPath.ts"],"names":[],"mappings":";;AAMA,wCAEC;AALD;;GAEG;AACH,SAAgB,cAAc,CAAC,IAAc;IAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAA+B,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { types as t } from "@babel/core";
2
+ export declare function nodeHasPlatformSelect(node: t.Node): boolean;
3
+ //# sourceMappingURL=nodeHasPlatformSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeHasPlatformSelect.d.ts","sourceRoot":"","sources":["../../src/utils/nodeHasPlatformSelect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,aAAa,CAAC;AAazC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,OAAO,CAiB3D"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nodeHasPlatformSelect = nodeHasPlatformSelect;
4
+ // plugins/src/utils/nodeHasPlatformSelect.ts
5
+ const core_1 = require("@babel/core");
6
+ const SKIP_KEYS = new Set(["type", "start", "end", "loc", "extra"]);
7
+ function isPlatformSelectCall(node) {
8
+ return (core_1.types.isCallExpression(node) &&
9
+ core_1.types.isMemberExpression(node.callee) &&
10
+ core_1.types.isIdentifier(node.callee.object, { name: "Platform" }) &&
11
+ core_1.types.isIdentifier(node.callee.property, { name: "select" }));
12
+ }
13
+ function nodeHasPlatformSelect(node) {
14
+ if (isPlatformSelectCall(node))
15
+ return true;
16
+ for (const key of Object.keys(node)) {
17
+ if (SKIP_KEYS.has(key))
18
+ continue;
19
+ const child = node[key];
20
+ if (!child || typeof child !== "object")
21
+ continue;
22
+ if (Array.isArray(child)) {
23
+ for (const item of child) {
24
+ if (item && typeof item === "object" && "type" in item) {
25
+ if (nodeHasPlatformSelect(item))
26
+ return true;
27
+ }
28
+ }
29
+ }
30
+ else if ("type" in child) {
31
+ if (nodeHasPlatformSelect(child))
32
+ return true;
33
+ }
34
+ }
35
+ return false;
36
+ }
37
+ //# sourceMappingURL=nodeHasPlatformSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeHasPlatformSelect.js","sourceRoot":"","sources":["../../src/utils/nodeHasPlatformSelect.ts"],"names":[],"mappings":";;AAcA,sDAiBC;AA/BD,6CAA6C;AAC7C,sCAAyC;AAEzC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAEpE,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,CACL,YAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;QACxB,YAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;QACjC,YAAC,CAAC,YAAY,CAAE,IAAI,CAAC,MAA6B,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAChF,YAAC,CAAC,YAAY,CAAE,IAAI,CAAC,MAA6B,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CACjF,CAAC;AACJ,CAAC;AAED,SAAgB,qBAAqB,CAAC,IAAY;IAChD,IAAI,oBAAoB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACjC,MAAM,KAAK,GAAI,IAAY,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAClD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACvD,IAAI,qBAAqB,CAAC,IAAc,CAAC;wBAAE,OAAO,IAAI,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,IAAI,qBAAqB,CAAC,KAAe,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { types as t } from "@babel/core";
2
+ /**
3
+ * Verifica recursivamente se um nó AST ainda contém algum acesso a `theme.xxx`.
4
+ * Usado após `resolveThemeInStyle` para decidir se ainda é necessário passar `theme`.
5
+ */
6
+ export declare function nodeHasThemeAccess(node: t.Node): boolean;
7
+ //# sourceMappingURL=nodeHasThemeAccess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeHasThemeAccess.d.ts","sourceRoot":"","sources":["../../src/utils/nodeHasThemeAccess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,aAAa,CAAC;AAKzC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,OAAO,CAmBxD"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nodeHasThemeAccess = nodeHasThemeAccess;
4
+ // plugins/src/utils/nodeHasThemeAccess.ts
5
+ const core_1 = require("@babel/core");
6
+ const isThemeAccess_1 = require("../analyzer/isThemeAccess");
7
+ const SKIP_KEYS = new Set(["type", "start", "end", "loc", "extra"]);
8
+ /**
9
+ * Verifica recursivamente se um nó AST ainda contém algum acesso a `theme.xxx`.
10
+ * Usado após `resolveThemeInStyle` para decidir se ainda é necessário passar `theme`.
11
+ */
12
+ function nodeHasThemeAccess(node) {
13
+ if (core_1.types.isMemberExpression(node) && (0, isThemeAccess_1.isThemeAccess)(node))
14
+ return true;
15
+ for (const key of Object.keys(node)) {
16
+ if (SKIP_KEYS.has(key))
17
+ continue;
18
+ const child = node[key];
19
+ if (!child || typeof child !== "object")
20
+ continue;
21
+ if (Array.isArray(child)) {
22
+ for (const item of child) {
23
+ if (item && typeof item === "object" && "type" in item) {
24
+ if (nodeHasThemeAccess(item))
25
+ return true;
26
+ }
27
+ }
28
+ }
29
+ else if ("type" in child) {
30
+ if (nodeHasThemeAccess(child))
31
+ return true;
32
+ }
33
+ }
34
+ return false;
35
+ }
36
+ //# sourceMappingURL=nodeHasThemeAccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeHasThemeAccess.js","sourceRoot":"","sources":["../../src/utils/nodeHasThemeAccess.ts"],"names":[],"mappings":";;AAUA,gDAmBC;AA7BD,0CAA0C;AAC1C,sCAAyC;AACzC,6DAA0D;AAE1D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAEpE;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,IAAI,YAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,IAAA,6BAAa,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACjC,MAAM,KAAK,GAAI,IAAY,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAClD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACvD,IAAI,kBAAkB,CAAC,IAAc,CAAC;wBAAE,OAAO,IAAI,CAAC;gBACtD,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,IAAI,kBAAkB,CAAC,KAAe,CAAC;gBAAE,OAAO,IAAI,CAAC;QACvD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { NodePath, types as t } from "@babel/core";
2
+ /**
3
+ * Substitui variáveis vindas da função:
4
+ * ({ disabled }) → props.disabled
5
+ */
6
+ export declare function replaceParamWithProps(nodePath: NodePath<t.ObjectExpression>, paramNames: string[]): t.ObjectExpression;
7
+ //# sourceMappingURL=replaceParamWithProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replaceParamWithProps.d.ts","sourceRoot":"","sources":["../../src/utils/replaceParamWithProps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,aAAa,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,EACtC,UAAU,EAAE,MAAM,EAAE,GACnB,CAAC,CAAC,gBAAgB,CAiCpB"}