@litsx/babel-preset-litsx 0.4.0 → 0.5.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.
@@ -1 +1 @@
1
- {"version":3,"file":"transform-litsx-components.cjs","sources":["../../src/internal/transform-litsx-static-hoists.js","../../src/internal/transform-litsx-handlers.js","../../src/internal/transform-litsx-wrapper-utils.js","../../src/internal/transform-litsx-refs.js","../../src/internal/transform-litsx-class-generation.js","../../src/internal/transform-litsx-param-rewrites.js","../../src/internal/transform-litsx-renderer-calls.js","../../src/internal/transform-litsx-render-body.js","../../src/internal/transform-litsx-program.js","../../src/internal/transform-litsx-components.js"],"sourcesContent":["import {\n createPropertyConfig,\n createPropertyValue,\n mergePropertyConfig,\n} from \"./transform-litsx-properties.js\";\n\nlet t;\n\nexport function setStaticHoistsBabelTypes(types) {\n t = types;\n}\n\nfunction isLightDomHoist(statement) {\n if (!t.isExpressionStatement(statement)) return false;\n if (!t.isCallExpression(statement.expression)) return false;\n if (!t.isIdentifier(statement.expression.callee, { name: \"__litsx_static_lightDom\" })) {\n return false;\n }\n if (statement.expression.arguments.length !== 0) {\n throw new Error(\"^lightDom() does not accept arguments.\");\n }\n return true;\n}\n\nfunction createStaticHoistGetter(name, symbolId, expression) {\n const getter = t.classMethod(\n \"get\",\n t.identifier(name),\n [],\n t.blockStatement([\n t.returnStatement(\n t.callExpression(\n t.memberExpression(t.thisExpression(), t.identifier(\"__litsxStatic\")),\n [\n t.cloneNode(symbolId),\n t.arrowFunctionExpression([], expression),\n ]\n )\n ),\n ])\n );\n getter.static = true;\n return getter;\n}\n\nfunction resolveStaticHoistExpression(expression) {\n return t.callExpression(\n t.memberExpression(t.thisExpression(), t.identifier(\"__litsxResolveStaticValue\")),\n [t.cloneNode(expression)]\n );\n}\n\nfunction createPropertiesHoistResolver(propertiesStatic, staticProps, expression) {\n const mergedProperties = propertiesStatic.map((property) => t.cloneNode(property));\n if (staticProps.length > 0) {\n mergeStaticPropsIntoProperties(mergedProperties, staticProps);\n }\n\n return t.callExpression(\n t.memberExpression(t.thisExpression(), t.identifier(\"__litsxMergeProperties\")),\n [\n t.objectExpression(mergedProperties),\n resolveStaticHoistExpression(expression),\n ]\n );\n}\n\nfunction createStylesHoistResolver(staticStyles, expression) {\n const resolvedExpression = resolveStaticHoistExpression(expression);\n if (staticStyles.length === 0) {\n return resolvedExpression;\n }\n\n const baseStyles =\n staticStyles.length === 1\n ? t.cloneNode(staticStyles[0])\n : t.arrayExpression(staticStyles.map((style) => t.cloneNode(style)));\n\n return t.logicalExpression(\"||\", resolvedExpression, baseStyles);\n}\n\nfunction getStaticPropsExpression(statement) {\n if (!t.isExpressionStatement(statement)) return null;\n if (!t.isCallExpression(statement.expression)) return null;\n const isLegacyStaticProps = t.isIdentifier(statement.expression.callee, { name: \"staticProps\" });\n const isHoistedProperties = t.isIdentifier(\n statement.expression.callee,\n { name: \"__litsx_static_properties\" }\n );\n if (\n !isLegacyStaticProps &&\n !isHoistedProperties\n ) {\n return null;\n }\n if (statement.expression.arguments.length !== 1) return null;\n\n const [argument] = statement.expression.arguments;\n if (isHoistedProperties && (t.isFunctionExpression(argument) || t.isArrowFunctionExpression(argument))) {\n throw new Error(\"^properties(...) only accepts an object literal with static Lit property options.\");\n }\n\n if (!t.isObjectExpression(argument)) {\n throw new Error(\"^properties(...) only accepts an object literal with static Lit property options.\");\n }\n\n return isHoistedProperties ? {\n __litsxHoistedProperties: true,\n expression: t.cloneNode(argument),\n } : t.cloneNode(argument);\n}\n\nfunction getStaticPropertyName(node) {\n if (t.isIdentifier(node)) return node.name;\n if (t.isStringLiteral(node)) return node.value;\n return null;\n}\n\nfunction normalizeStaticPropOverrideValue(value) {\n if (\n t.isIdentifier(value) &&\n [\"String\", \"Number\", \"Boolean\", \"Object\", \"Array\", \"Date\"].includes(value.name)\n ) {\n return createPropertyConfig(t.identifier(value.name));\n }\n\n if (t.isObjectExpression(value)) {\n const typeProperty = value.properties.find(\n (prop) =>\n t.isObjectProperty(prop) &&\n t.isIdentifier(prop.key, { name: \"type\" }) &&\n t.isIdentifier(prop.value)\n );\n\n const attributeProperty = value.properties.find(\n (prop) =>\n t.isObjectProperty(prop) &&\n t.isIdentifier(prop.key, { name: \"attribute\" }) &&\n t.isBooleanLiteral(prop.value) &&\n prop.value.value === false\n );\n\n return createPropertyConfig(typeProperty ? typeProperty.value : null, {\n attribute: attributeProperty ? false : undefined,\n });\n }\n\n throw new Error(\n \"^properties(...) values must be Lit property option objects or constructor references.\"\n );\n}\n\nfunction mergeStaticPropertyObject(targetNode, overrideObject) {\n if (!t.isObjectProperty(targetNode) || !t.isObjectExpression(targetNode.value)) {\n return;\n }\n\n overrideObject.properties.forEach((property) => {\n if (!t.isObjectProperty(property) && !t.isObjectMethod(property)) {\n throw new Error(\"^properties(...) only accepts plain object members.\");\n }\n\n const keyName = getStaticPropertyName(property.key);\n if (!keyName) {\n throw new Error(\"^properties(...) property option names must be static identifiers or strings.\");\n }\n\n const existing = targetNode.value.properties.find(\n (candidate) =>\n (t.isObjectProperty(candidate) || t.isObjectMethod(candidate)) &&\n getStaticPropertyName(candidate.key) === keyName\n );\n\n if (existing) {\n const nextNode = t.cloneNode(property);\n const index = targetNode.value.properties.indexOf(existing);\n targetNode.value.properties.splice(index, 1, nextNode);\n } else {\n targetNode.value.properties.push(t.cloneNode(property));\n }\n });\n}\n\nfunction mergeStaticPropsIntoProperties(propertiesStatic, staticProps) {\n const propertyMap = new Map();\n\n propertiesStatic.forEach((propertyNode) => {\n if (!t.isObjectProperty(propertyNode)) return;\n const keyName = getStaticPropertyName(propertyNode.key);\n if (!keyName) return;\n propertyMap.set(keyName, propertyNode);\n });\n\n staticProps.forEach((optionsObject) => {\n optionsObject.properties.forEach((property) => {\n if (!t.isObjectProperty(property)) {\n throw new Error(\"^properties(...) only accepts plain object properties.\");\n }\n\n const keyName = getStaticPropertyName(property.key);\n if (!keyName) {\n throw new Error(\"^properties(...) property names must be static identifiers or strings.\");\n }\n\n const existing = propertyMap.get(keyName);\n const normalized = normalizeStaticPropOverrideValue(property.value);\n\n if (!existing) {\n const node = t.objectProperty(\n t.identifier(keyName),\n createPropertyValue(normalized, false)\n );\n if (t.isObjectExpression(property.value)) {\n mergeStaticPropertyObject(node, property.value);\n }\n propertiesStatic.push(node);\n propertyMap.set(keyName, node);\n return;\n }\n\n mergePropertyConfig(\n { node: existing },\n normalized,\n false\n );\n\n if (t.isObjectExpression(property.value)) {\n mergeStaticPropertyObject(existing, property.value);\n }\n });\n });\n}\n\nfunction normalizeStylesTemplate(argument, functionPath) {\n if (t.isTemplateLiteral(argument)) {\n if (\n !argument.expressions.every((expression) =>\n isStaticStylesExpression(expression, functionPath)\n )\n ) {\n return null;\n }\n return t.templateLiteral(\n argument.quasis,\n argument.expressions.map((expression) =>\n wrapStaticStylesInterpolation(expression)\n )\n );\n }\n\n if (t.isStringLiteral(argument)) {\n return t.templateLiteral(\n [t.templateElement({ raw: argument.value, cooked: argument.value }, true)],\n []\n );\n }\n\n if (isStaticStylesExpression(argument, functionPath)) {\n return t.templateLiteral(\n [\n t.templateElement({ raw: \"\", cooked: \"\" }, false),\n t.templateElement({ raw: \"\", cooked: \"\" }, true),\n ],\n [wrapStaticStylesInterpolation(argument)]\n );\n }\n\n return null;\n}\n\nfunction wrapStaticStylesInterpolation(expression) {\n if (\n t.isTaggedTemplateExpression(expression) &&\n t.isIdentifier(expression.tag, { name: \"css\" })\n ) {\n return expression;\n }\n\n if (t.isNumericLiteral(expression)) {\n return expression;\n }\n\n return t.callExpression(\n t.identifier(\"unsafeCSS\"),\n [expression]\n );\n}\n\nfunction getStaticStylesExpression(statement, functionPath) {\n if (!t.isExpressionStatement(statement)) return null;\n if (!t.isCallExpression(statement.expression)) return null;\n const isLegacyStaticStyles = t.isIdentifier(statement.expression.callee, { name: \"staticStyles\" });\n const isHoistedStyles = t.isIdentifier(statement.expression.callee, { name: \"__litsx_static_styles\" });\n if (\n !isLegacyStaticStyles &&\n !isHoistedStyles\n ) {\n return null;\n }\n if (statement.expression.arguments.length !== 1) return null;\n\n const [argument] = statement.expression.arguments;\n\n if (isHoistedStyles && (t.isFunctionExpression(argument) || t.isArrowFunctionExpression(argument))) {\n throw new Error(\"^styles(...) only accepts static values. Move dynamic values to useStyle(...) or CSS custom properties.\");\n }\n\n const template = normalizeStylesTemplate(\n argument,\n functionPath\n );\n if (!template) {\n throw new Error(\"^styles(...) only accepts static values. Move dynamic values to useStyle(...) or CSS custom properties.\");\n }\n\n const expression = t.taggedTemplateExpression(t.identifier(\"css\"), template);\n return isHoistedStyles\n ? { __litsxHoistedStyles: true, expression }\n : expression;\n}\n\nfunction getStaticHoistExpression(statement, functionPath) {\n if (!t.isExpressionStatement(statement)) return null;\n if (!t.isCallExpression(statement.expression)) return null;\n if (!t.isIdentifier(statement.expression.callee)) return null;\n\n const calleeName = statement.expression.callee.name;\n if (!calleeName.startsWith(\"__litsx_static_\")) {\n return null;\n }\n\n const name = calleeName.slice(\"__litsx_static_\".length);\n if (!name || name === \"properties\" || name === \"styles\") {\n return null;\n }\n\n if (statement.expression.arguments.length !== 1) {\n throw new Error(`^${name}(...) expects exactly one argument.`);\n }\n\n const [argument] = statement.expression.arguments;\n if (name === \"expose\") {\n if (t.isObjectExpression(argument)) {\n return {\n name,\n expression: t.cloneNode(argument),\n };\n }\n\n throw new Error(\"^expose(...) only accepts an object literal.\");\n }\n\n if (t.isFunctionExpression(argument) || t.isArrowFunctionExpression(argument)) {\n throw new Error(`^${name}(...) only accepts a direct static value.`);\n }\n\n if (!isStaticStylesExpression(argument, functionPath)) {\n throw new Error(`^${name}(...) only accepts a direct static value.`);\n }\n\n return {\n name,\n expression: t.cloneNode(argument),\n };\n}\n\nfunction createExposeHoistMembers(expression) {\n const { methodsExpression } = normalizeExposeHoistExpression(expression);\n\n return methodsExpression.properties.map((property) =>\n createExposeClassMethod(property)\n );\n}\n\nfunction normalizeExposeHoistExpression(expression) {\n if (t.isObjectExpression(expression)) {\n return {\n methodsExpression: t.cloneNode(expression),\n };\n }\n\n throw new Error(\"^expose(...) only accepts an object literal.\");\n}\n\nfunction createExposeClassMethod(property) {\n const method = normalizeExposePropertyToClassMethod(property);\n method.static = true;\n return method;\n}\n\nfunction normalizeExposePropertyToClassMethod(property) {\n if (t.isSpreadElement(property)) {\n throw new Error(\"^expose(...) does not accept spread elements.\");\n }\n\n if (t.isObjectMethod(property)) {\n if (property.kind !== \"method\") {\n throw new Error(\"^expose(...) only accepts plain methods.\");\n }\n\n return t.classMethod(\n \"method\",\n t.cloneNode(property.key),\n property.params.map((param) => t.cloneNode(param)),\n t.cloneNode(property.body),\n property.computed\n );\n }\n\n if (!t.isObjectProperty(property)) {\n throw new Error(\"^expose(...) only accepts plain methods.\");\n }\n\n const value = property.value;\n if (!t.isFunctionExpression(value) && !t.isArrowFunctionExpression(value)) {\n throw new Error(\"^expose(...) values must be functions.\");\n }\n\n const body = t.isBlockStatement(value.body)\n ? t.cloneNode(value.body)\n : t.blockStatement([t.returnStatement(t.cloneNode(value.body))]);\n\n const method = t.classMethod(\n \"method\",\n t.cloneNode(property.key),\n value.params.map((param) => t.cloneNode(param)),\n body,\n property.computed\n );\n method.async = value.async;\n method.generator = value.generator || false;\n return method;\n}\n\nexport function assertStaticHoistsStayTopLevel(functionPath) {\n functionPath.traverse({\n CallExpression(callPath) {\n if (!t.isIdentifier(callPath.node.callee)) return;\n if (!callPath.node.callee.name.startsWith(\"__litsx_static_\")) return;\n\n const statementParent = callPath.parentPath;\n const blockParent = statementParent?.parentPath;\n\n if (\n statementParent?.isExpressionStatement() &&\n blockParent?.isBlockStatement() &&\n blockParent.node === functionPath.node.body\n ) {\n return;\n }\n\n const macroName = callPath.node.callee.name.slice(\"__litsx_static_\".length);\n throw callPath.buildCodeFrameError(\n `^${macroName}(...) must appear as a top-level statement in the component body.`\n );\n },\n });\n}\n\nfunction containsUnsafeCssCall(node) {\n if (!node || typeof node !== \"object\") return false;\n if (\n t.isCallExpression(node) &&\n t.isIdentifier(node.callee, { name: \"unsafeCSS\" })\n ) {\n return true;\n }\n\n return Object.values(node).some((value) => {\n if (Array.isArray(value)) {\n return value.some((entry) => containsUnsafeCssCall(entry));\n }\n return containsUnsafeCssCall(value);\n });\n}\n\nfunction isStaticStylesExpression(node, functionPath, seenBindings = new Set()) {\n if (\n t.isStringLiteral(node) ||\n t.isNumericLiteral(node) ||\n t.isBooleanLiteral(node) ||\n t.isNullLiteral(node) ||\n t.isBigIntLiteral?.(node)\n ) {\n return true;\n }\n\n if (t.isTemplateLiteral(node)) {\n return node.expressions.every((expression) =>\n isStaticStylesExpression(expression, functionPath, seenBindings)\n );\n }\n\n if (t.isIdentifier(node)) {\n return isStaticStylesIdentifier(node, functionPath, seenBindings);\n }\n\n if (t.isUnaryExpression(node)) {\n return isStaticStylesExpression(node.argument, functionPath, seenBindings);\n }\n\n if (t.isBinaryExpression(node) || t.isLogicalExpression(node)) {\n return (\n isStaticStylesExpression(node.left, functionPath, seenBindings) &&\n isStaticStylesExpression(node.right, functionPath, seenBindings)\n );\n }\n\n if (t.isConditionalExpression(node)) {\n return (\n isStaticStylesExpression(node.test, functionPath, seenBindings) &&\n isStaticStylesExpression(node.consequent, functionPath, seenBindings) &&\n isStaticStylesExpression(node.alternate, functionPath, seenBindings)\n );\n }\n\n if (t.isArrayExpression(node)) {\n return node.elements.every((element) =>\n element == null || isStaticStylesExpression(element, functionPath, seenBindings)\n );\n }\n\n if (t.isObjectExpression(node)) {\n return node.properties.every((property) => {\n if (t.isObjectProperty(property)) {\n return (\n (!property.computed ||\n isStaticStylesExpression(property.key, functionPath, seenBindings)) &&\n isStaticStylesExpression(property.value, functionPath, seenBindings)\n );\n }\n return false;\n });\n }\n\n if (t.isMemberExpression(node)) {\n return (\n isStaticStylesExpression(node.object, functionPath, seenBindings) &&\n (!node.computed ||\n isStaticStylesExpression(node.property, functionPath, seenBindings))\n );\n }\n\n if (t.isCallExpression(node)) {\n return (\n isStaticStylesExpression(node.callee, functionPath, seenBindings) &&\n node.arguments.every((argument) =>\n t.isSpreadElement(argument)\n ? false\n : isStaticStylesExpression(argument, functionPath, seenBindings)\n )\n );\n }\n\n if (t.isTaggedTemplateExpression(node)) {\n return (\n isStaticStylesExpression(node.tag, functionPath, seenBindings) &&\n isStaticStylesExpression(node.quasi, functionPath, seenBindings)\n );\n }\n\n return false;\n}\n\nfunction isStaticStylesIdentifier(node, functionPath, seenBindings) {\n const binding = functionPath?.scope\n ? functionPath.scope.getBinding(node.name)\n : null;\n\n if (!binding) {\n return false;\n }\n\n if (binding.path.findParent((parent) => parent === functionPath)) {\n return false;\n }\n\n if (\n binding.path.isImportSpecifier() ||\n binding.path.isImportDefaultSpecifier() ||\n binding.path.isImportNamespaceSpecifier()\n ) {\n return true;\n }\n\n if (binding.path.isVariableDeclarator()) {\n if (binding.kind !== \"const\" || !binding.path.node.init) {\n return false;\n }\n\n if (seenBindings.has(binding)) {\n return true;\n }\n\n seenBindings.add(binding);\n return isStaticStylesExpression(binding.path.node.init, functionPath, seenBindings);\n }\n\n if (binding.path.isFunctionDeclaration() || binding.path.isClassDeclaration()) {\n return true;\n }\n\n return false;\n}\n\nexport function processStaticHoists({\n functionPath,\n node,\n renderStatements,\n programPath,\n propertiesStatic,\n classMembers,\n options = {},\n getOrCreateModuleStaticHoistSymbol,\n}) {\n const staticStyles = [];\n const staticProps = [];\n const staticHoists = [];\n let lightDomRequested = options.defaultDomMode === \"light\";\n\n if (t.isBlockStatement(node.body)) {\n for (let index = renderStatements.length - 1; index >= 0; index -= 1) {\n const propertyOptions = getStaticPropsExpression(renderStatements[index]);\n if (propertyOptions) {\n if (propertyOptions.__litsxHoistedProperties) {\n staticHoists.unshift({\n name: \"properties\",\n expression: propertyOptions.expression,\n });\n } else {\n staticProps.unshift(propertyOptions);\n }\n renderStatements.splice(index, 1);\n continue;\n }\n\n const cssExpression = getStaticStylesExpression(renderStatements[index], functionPath);\n if (!cssExpression) continue;\n if (cssExpression.__litsxHoistedStyles) {\n staticHoists.unshift({\n name: \"styles\",\n expression: cssExpression.expression,\n });\n } else {\n staticStyles.unshift(cssExpression);\n }\n renderStatements.splice(index, 1);\n }\n\n for (let index = renderStatements.length - 1; index >= 0; index -= 1) {\n if (isLightDomHoist(renderStatements[index])) {\n lightDomRequested = true;\n renderStatements.splice(index, 1);\n }\n }\n\n for (let index = renderStatements.length - 1; index >= 0; index -= 1) {\n const hoistExpression = getStaticHoistExpression(renderStatements[index], functionPath);\n if (!hoistExpression) continue;\n staticHoists.unshift(hoistExpression);\n renderStatements.splice(index, 1);\n }\n }\n\n if (lightDomRequested && staticHoists.some((entry) => entry.name === \"shadowRootOptions\")) {\n throw new Error(\"^lightDom() cannot be combined with ^shadowRootOptions(...).\");\n }\n\n if (staticProps.length > 0) {\n mergeStaticPropsIntoProperties(propertiesStatic, staticProps);\n }\n\n const hasHoistedProperties = staticHoists.some((entry) => entry.name === \"properties\");\n if (propertiesStatic.length > 0 && !hasHoistedProperties) {\n const classProperties = t.classProperty(\n t.identifier(\"properties\"),\n t.objectExpression(propertiesStatic),\n null,\n [],\n false\n );\n\n classProperties.static = true;\n classMembers.push(classProperties);\n }\n\n const hasHoistedStyles = staticHoists.some((entry) => entry.name === \"styles\");\n if (staticStyles.length > 0 && !hasHoistedStyles) {\n const stylesProperty = t.classProperty(\n t.identifier(\"styles\"),\n staticStyles.length === 1 ? staticStyles[0] : t.arrayExpression(staticStyles),\n null,\n [],\n false\n );\n stylesProperty.static = true;\n classMembers.push(stylesProperty);\n }\n\n const hoistSymbolDeclarations = [];\n let needsStaticHoistsMixin = false;\n const hoistMembers = staticHoists.flatMap((hoist) => {\n if (hoist.name === \"expose\") {\n return createExposeHoistMembers(hoist.expression);\n }\n\n needsStaticHoistsMixin = true;\n const { symbolId, declaration } = getOrCreateModuleStaticHoistSymbol(programPath, hoist.name);\n if (declaration) {\n hoistSymbolDeclarations.push(declaration);\n const symbolMap = programPath.getData(\"__litsxStaticHoistSymbols\");\n if (symbolMap?.has(hoist.name)) {\n symbolMap.set(hoist.name, { symbolId, declaration: null });\n }\n }\n\n if (hoist.name === \"properties\") {\n return createStaticHoistGetter(\n \"properties\",\n symbolId,\n createPropertiesHoistResolver(propertiesStatic, staticProps, hoist.expression)\n );\n }\n\n if (hoist.name === \"styles\") {\n return createStaticHoistGetter(\n \"styles\",\n symbolId,\n createStylesHoistResolver(staticStyles, hoist.expression)\n );\n }\n\n return createStaticHoistGetter(\n hoist.name,\n symbolId,\n resolveStaticHoistExpression(hoist.expression)\n );\n });\n\n return {\n lightDomRequested,\n hoistMembers,\n hoistSymbolDeclarations,\n needsStaticHoistsMixin,\n needsCss:\n staticStyles.length > 0 ||\n staticHoists.some((entry) => entry.name === \"styles\"),\n needsUnsafeCss:\n staticStyles.some(containsUnsafeCssCall) ||\n staticHoists.some(\n (entry) => entry.name === \"styles\" && containsUnsafeCssCall(entry.expression)\n ),\n };\n}\n","let t;\n\nexport function setHandlersBabelTypes(types) {\n t = types;\n}\n\nfunction isHoistableHandler(exprPath, componentPath) {\n let hoistable = true;\n\n exprPath.traverse({\n Identifier(identifierPath) {\n if (!identifierPath.isReferencedIdentifier()) return;\n\n const name = identifierPath.node.name;\n const ownBinding = exprPath.scope.getOwnBinding(name);\n if (ownBinding) return;\n\n const binding = identifierPath.scope.getBinding(name);\n if (!binding) return;\n\n if (binding.scope === componentPath.scope) {\n hoistable = false;\n identifierPath.stop();\n }\n },\n });\n\n return hoistable;\n}\n\nfunction ensureUniqueHandlerName(baseName, usedNames) {\n let candidate = baseName;\n let suffix = 2;\n\n while (usedNames.has(candidate)) {\n candidate = `${baseName}${suffix}`;\n suffix += 1;\n }\n\n usedNames.add(candidate);\n return candidate;\n}\n\nfunction generateHandlerName(attrName, usedNames) {\n const eventSegment = attrName.slice(2) || \"Event\";\n const base = `handle${eventSegment}`;\n return ensureUniqueHandlerName(base, usedNames);\n}\n\nfunction normalizeHandlerBody(body) {\n if (t.isBlockStatement(body)) {\n return t.cloneNode(body, true);\n }\n\n return t.blockStatement([t.returnStatement(t.cloneNode(body, true))]);\n}\n\nfunction hoistDeclaredHandlers(functionPath, usedNames) {\n const handlerInfos = [];\n const bodyPath = functionPath.get(\"body\");\n if (!bodyPath.isBlockStatement()) {\n return handlerInfos;\n }\n\n functionPath.traverse({\n VariableDeclarator(path) {\n if (path.getFunctionParent() !== functionPath) return;\n\n const id = path.node.id;\n if (!t.isIdentifier(id)) return;\n\n const initPath = path.get(\"init\");\n if (!initPath.isArrowFunctionExpression() && !initPath.isFunctionExpression()) {\n return;\n }\n\n const statementParent = path.getStatementParent();\n if (!statementParent || statementParent.parentPath !== bodyPath) {\n return;\n }\n\n if (!isHoistableHandler(initPath, functionPath)) return;\n\n const originalName = id.name;\n usedNames.delete(originalName);\n const handlerName = ensureUniqueHandlerName(originalName, usedNames);\n const binding = path.scope.getBinding(originalName);\n\n if (!binding) return;\n\n binding.referencePaths.slice().forEach((refPath) => {\n if (!refPath.node || refPath.removed) return;\n refPath.replaceWith(\n t.memberExpression(t.thisExpression(), t.identifier(handlerName))\n );\n });\n\n handlerInfos.push({\n name: handlerName,\n params: initPath.node.params.map((param) => t.cloneNode(param, true)),\n body: normalizeHandlerBody(initPath.node.body),\n async: initPath.node.async,\n generator: initPath.node.generator,\n });\n\n path.remove();\n\n if (\n statementParent.isVariableDeclaration() &&\n statementParent.node.declarations.length === 0\n ) {\n statementParent.remove();\n }\n\n binding.scope.removeBinding(originalName);\n },\n });\n\n return handlerInfos;\n}\n\nfunction hoistEventHandlers(functionPath, usedNames) {\n const handlerInfos = [];\n\n functionPath.traverse({\n JSXAttribute(attrPath) {\n if (attrPath.getFunctionParent() !== functionPath) return;\n\n const { node } = attrPath;\n if (!t.isJSXIdentifier(node.name)) return;\n\n const attrName = node.name.name;\n if (!/^on[A-Z]/.test(attrName)) return;\n\n const valuePath = attrPath.get(\"value\");\n if (!valuePath.isJSXExpressionContainer()) return;\n\n const exprPath = valuePath.get(\"expression\");\n if (\n !exprPath.isArrowFunctionExpression() &&\n !exprPath.isFunctionExpression()\n ) {\n return;\n }\n\n if (!isHoistableHandler(exprPath, functionPath)) return;\n\n const handlerName = generateHandlerName(attrName, usedNames);\n\n handlerInfos.push({\n name: handlerName,\n params: exprPath.node.params.map((param) => t.cloneNode(param, true)),\n body: normalizeHandlerBody(exprPath.node.body),\n async: exprPath.node.async,\n generator: exprPath.node.generator,\n });\n\n valuePath.replaceWith(\n t.jsxExpressionContainer(\n t.memberExpression(t.thisExpression(), t.identifier(handlerName))\n )\n );\n },\n });\n\n return handlerInfos;\n}\n\nfunction isNativeIntrinsicJsxElement(nameNode) {\n return t.isJSXIdentifier(nameNode) && /^[a-z]/.test(nameNode.name);\n}\n\nexport function collectNativeClassNameWarnings(functionPath, warn, options = {}) {\n if (typeof warn !== \"function\" || options.suppressNativeClassNameWarning === true) {\n return;\n }\n\n functionPath.traverse({\n JSXAttribute(attrPath) {\n if (attrPath.getFunctionParent() !== functionPath) return;\n\n const openingElement = attrPath.parentPath;\n if (!openingElement?.isJSXOpeningElement()) return;\n if (!isNativeIntrinsicJsxElement(openingElement.node.name)) return;\n\n const { node } = attrPath;\n if (!t.isJSXIdentifier(node.name, { name: \"className\" })) return;\n\n warn({\n code: \"LITSX_NATIVE_CLASSNAME\",\n message:\n '`className` is not native LitSX syntax. Use `class` in native LitSX, or add the React compatibility layer to rewrite `className`.',\n attributeName: \"className\",\n tagName: openingElement.node.name.name,\n line: node.loc?.start?.line ?? null,\n column: node.loc?.start?.column ?? null,\n });\n },\n });\n}\n\nexport function processHandlers(functionPath, usedNames) {\n const declaredHandlers = hoistDeclaredHandlers(functionPath, usedNames);\n const inlineHandlers = hoistEventHandlers(functionPath, usedNames);\n return [...declaredHandlers, ...inlineHandlers];\n}\n\nexport function createHandlerClassMember({ name, params, body, async, generator }) {\n const method = t.classMethod(\n \"method\",\n t.identifier(name),\n params.map((param) => t.cloneNode(param, true)),\n t.cloneNode(body, true)\n );\n\n method.async = Boolean(async);\n method.generator = Boolean(generator);\n\n return method;\n}\n","let t;\n\nfunction isCapitalizedComponentName(name) {\n if (typeof name !== \"string\" || name.length === 0) {\n return false;\n }\n\n const first = name[0];\n return first === first.toUpperCase() && first !== first.toLowerCase();\n}\n\nexport function setWrapperUtilsBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction emitWrapperWarnings(meta, warn) {\n if (!meta || typeof warn !== \"function\" || !Array.isArray(meta.warnings)) {\n return;\n }\n\n meta.warnings.forEach((warning) => warn(warning));\n}\n\nfunction pruneWrapperImports(meta) {\n if (!meta || !Array.isArray(meta.cleanups)) {\n return;\n }\n\n meta.cleanups.forEach((cleanup) => {\n if (!cleanup || !cleanup.shouldRemoveImport || !cleanup.importSpecifierPath) {\n return;\n }\n const importDecl = cleanup.importSpecifierPath.parentPath;\n cleanup.importSpecifierPath.remove();\n if (importDecl.node.specifiers.length === 0) {\n importDecl.remove();\n }\n });\n}\n\nexport function maybeTransformWrappedVariableDeclarator({\n varPath,\n resolvedPluginOptions,\n state,\n transformFunction,\n updateTransformState,\n getWrapperMetadata,\n}) {\n if (typeof getWrapperMetadata !== \"function\") {\n return false;\n }\n\n const initPath = varPath.get(\"init\");\n if (!initPath || !initPath.isCallExpression()) {\n return false;\n }\n\n const wrapperMeta = getWrapperMetadata(initPath);\n if (!wrapperMeta) {\n return false;\n }\n\n emitWrapperWarnings(wrapperMeta, (warning) => {\n state?.__litsxWarnings?.push(warning);\n });\n\n const programPath = varPath.findParent((p) => p.isProgram());\n const localName = t.isIdentifier(varPath.node.id)\n ? varPath.node.id.name\n : undefined;\n\n const classNode = transformFunction(\n wrapperMeta.functionPath,\n programPath,\n localName,\n {\n ...resolvedPluginOptions,\n ...wrapperMeta.options,\n state,\n typeResolver: state?.__litsxTypeResolver,\n warn: (warning) => {\n state?.__litsxWarnings?.push(warning);\n },\n }\n );\n\n if (!classNode) {\n return true;\n }\n\n if (t.isIdentifier(varPath.node.id)) {\n varPath.scope.removeBinding(varPath.node.id.name);\n }\n\n const declarationPath = varPath.parentPath;\n if (!declarationPath.isVariableDeclaration()) {\n return true;\n }\n\n declarationPath.replaceWith(classNode);\n declarationPath.requeue();\n pruneWrapperImports(wrapperMeta);\n updateTransformState?.(state, classNode);\n return true;\n}\n\nexport function handlePotentialComponentExport({\n exportPath,\n state,\n isDefault = false,\n transformFunction,\n isInsideFunctionOrClass,\n updateTransformState,\n getWrapperMetadata,\n}) {\n const declaration = exportPath.node.declaration;\n const typeResolver = state?.__litsxTypeResolver || null;\n if (!declaration || isInsideFunctionOrClass(exportPath)) {\n return false;\n }\n\n if (\n t.isFunctionDeclaration(declaration) ||\n (t.isVariableDeclaration(declaration) &&\n declaration.declarations.length === 1 &&\n t.isArrowFunctionExpression(declaration.declarations[0].init))\n ) {\n const funcPath = exportPath.get(\"declaration\");\n const declarationPath = funcPath.isVariableDeclaration()\n ? funcPath.get(\"declarations.0.init\")\n : funcPath;\n let exportName;\n if (t.isFunctionDeclaration(declaration) && declaration.id) {\n exportName = declaration.id.name;\n } else if (\n t.isVariableDeclaration(declaration) &&\n t.isIdentifier(declaration.declarations[0].id)\n ) {\n exportName = declaration.declarations[0].id.name;\n }\n\n if (exportName && !isCapitalizedComponentName(exportName)) {\n return false;\n }\n\n const classNode = transformFunction(\n declarationPath,\n exportPath.findParent((p) => p.isProgram()),\n exportName,\n {\n ...state?.__litsxResolvedPluginOptions,\n state,\n typeResolver,\n warn: (warning) => {\n state?.__litsxWarnings?.push(warning);\n },\n }\n );\n\n if (!classNode) return true;\n\n if (exportName) {\n exportPath.scope.removeBinding(exportName);\n }\n\n exportPath.insertBefore(\n isDefault\n ? t.exportDefaultDeclaration(classNode)\n : t.exportNamedDeclaration(classNode, [])\n );\n exportPath.remove();\n updateTransformState?.(state, classNode);\n return true;\n }\n\n if (\n typeof getWrapperMetadata === \"function\" &&\n t.isVariableDeclaration(declaration) &&\n declaration.declarations.length === 1\n ) {\n const declaratorPath = exportPath.get(\"declaration.declarations.0\");\n const initPath = declaratorPath.get(\"init\");\n const exportName = t.isIdentifier(declaratorPath.node.id)\n ? declaratorPath.node.id.name\n : undefined;\n const programPath = exportPath.findParent((p) => p.isProgram());\n\n if (exportName && !isCapitalizedComponentName(exportName)) {\n return false;\n }\n\n if (initPath.isCallExpression()) {\n const wrapperMeta = getWrapperMetadata(initPath);\n if (!wrapperMeta) return false;\n emitWrapperWarnings(wrapperMeta, (warning) => {\n state?.__litsxWarnings?.push(warning);\n });\n\n const classNode = transformFunction(\n wrapperMeta.functionPath,\n programPath,\n exportName,\n {\n ...state?.__litsxResolvedPluginOptions,\n ...wrapperMeta.options,\n state,\n typeResolver,\n warn: (warning) => {\n state?.__litsxWarnings?.push(warning);\n },\n }\n );\n if (!classNode) return true;\n\n if (exportName) {\n exportPath.scope.removeBinding(exportName);\n }\n\n exportPath.replaceWith(\n isDefault\n ? t.exportDefaultDeclaration(classNode)\n : t.exportNamedDeclaration(classNode, [])\n );\n exportPath.requeue();\n pruneWrapperImports(wrapperMeta);\n updateTransformState?.(state, classNode);\n return true;\n }\n }\n\n if (typeof getWrapperMetadata === \"function\" && isDefault && t.isCallExpression(declaration)) {\n const callPath = exportPath.get(\"declaration\");\n const wrapperMeta = getWrapperMetadata(callPath);\n if (!wrapperMeta) return false;\n emitWrapperWarnings(wrapperMeta, (warning) => {\n state?.__litsxWarnings?.push(warning);\n });\n\n const programPath = exportPath.findParent((p) => p.isProgram());\n const inferredName = wrapperMeta.functionPath.node.id\n ? wrapperMeta.functionPath.node.id.name\n : undefined;\n\n if (!inferredName || !isCapitalizedComponentName(inferredName)) {\n return false;\n }\n\n const classNode = transformFunction(\n wrapperMeta.functionPath,\n programPath,\n inferredName,\n {\n ...state?.__litsxResolvedPluginOptions,\n ...wrapperMeta.options,\n state,\n typeResolver,\n warn: (warning) => {\n state?.__litsxWarnings?.push(warning);\n },\n }\n );\n if (!classNode) return true;\n\n exportPath.replaceWith(t.exportDefaultDeclaration(classNode));\n exportPath.requeue();\n pruneWrapperImports(wrapperMeta);\n updateTransformState?.(state, classNode);\n return true;\n }\n\n return false;\n}\n","let t;\n\nexport function setRefsBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction createThisMemberExpression(propName) {\n return t.memberExpression(t.thisExpression(), t.identifier(propName));\n}\n\nfunction createManagedRefLookupExpression(refName) {\n const selectorLiteral = t.stringLiteral(`[data-ref=\"${refName}\"]`);\n\n const renderRootQuery = t.optionalCallExpression(\n t.optionalMemberExpression(\n t.memberExpression(t.thisExpression(), t.identifier(\"renderRoot\")),\n t.identifier(\"querySelector\"),\n false,\n true\n ),\n [selectorLiteral],\n false\n );\n\n const hostQuery = t.callExpression(\n t.memberExpression(t.thisExpression(), t.identifier(\"querySelector\")),\n [t.cloneNode(selectorLiteral)]\n );\n\n return t.logicalExpression(\"??\", renderRootQuery, hostQuery);\n}\n\nfunction createForwardedTargetRefSyncStatement(propName, refName) {\n return t.expressionStatement(\n t.callExpression(t.identifier(\"useCallbackRef\"), [\n t.thisExpression(),\n t.arrowFunctionExpression([], createManagedRefLookupExpression(refName)),\n t.arrowFunctionExpression(\n [t.identifier(\"node\")],\n t.blockStatement([\n t.variableDeclaration(\"const\", [\n t.variableDeclarator(\n t.identifier(\"componentRef\"),\n createThisMemberExpression(propName)\n ),\n ]),\n t.ifStatement(\n t.binaryExpression(\n \"===\",\n t.unaryExpression(\"typeof\", t.identifier(\"componentRef\")),\n t.stringLiteral(\"function\")\n ),\n t.blockStatement([\n t.expressionStatement(\n t.callExpression(t.identifier(\"componentRef\"), [t.identifier(\"node\")])\n ),\n ]),\n t.ifStatement(\n t.logicalExpression(\n \"&&\",\n t.identifier(\"componentRef\"),\n t.binaryExpression(\n \"===\",\n t.unaryExpression(\"typeof\", t.identifier(\"componentRef\")),\n t.stringLiteral(\"object\")\n )\n ),\n t.blockStatement([\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(t.identifier(\"componentRef\"), t.identifier(\"current\")),\n t.identifier(\"node\")\n )\n ),\n ])\n )\n ),\n ])\n ),\n t.arrayExpression([createThisMemberExpression(propName)]),\n ])\n );\n}\n\nfunction isStandardElementJsxName(nameNode) {\n if (!t.isJSXIdentifier(nameNode)) {\n return false;\n }\n\n const name = nameNode.name || \"\";\n return Boolean(name) && name[0] === name[0].toLowerCase() && !name.includes(\"-\");\n}\n\nexport function createComponentInstanceRefSyncStatement() {\n return t.expressionStatement(\n t.callExpression(t.identifier(\"useCallbackRef\"), [\n t.thisExpression(),\n t.arrowFunctionExpression([], t.thisExpression()),\n t.arrowFunctionExpression(\n [t.identifier(\"node\")],\n t.blockStatement([\n t.variableDeclaration(\"const\", [\n t.variableDeclarator(\n t.identifier(\"componentRef\"),\n createThisMemberExpression(\"ref\")\n ),\n ]),\n t.ifStatement(\n t.binaryExpression(\n \"===\",\n t.unaryExpression(\"typeof\", t.identifier(\"componentRef\")),\n t.stringLiteral(\"function\")\n ),\n t.blockStatement([\n t.expressionStatement(\n t.callExpression(t.identifier(\"componentRef\"), [t.identifier(\"node\")])\n ),\n ]),\n t.ifStatement(\n t.logicalExpression(\n \"&&\",\n t.identifier(\"componentRef\"),\n t.binaryExpression(\n \"===\",\n t.unaryExpression(\"typeof\", t.identifier(\"componentRef\")),\n t.stringLiteral(\"object\")\n )\n ),\n t.blockStatement([\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(t.identifier(\"componentRef\"), t.identifier(\"current\")),\n t.identifier(\"node\")\n )\n ),\n ])\n )\n ),\n ])\n ),\n t.arrayExpression([createThisMemberExpression(\"ref\")]),\n ])\n );\n}\n\nexport function hasRefProp(functionPath) {\n const [firstParam] = functionPath.node.params || [];\n if (!firstParam) {\n return false;\n }\n\n if (t.isObjectPattern(firstParam)) {\n return firstParam.properties.some((property) => {\n if (!t.isObjectProperty(property)) return false;\n return (\n t.isIdentifier(property.key, { name: \"ref\" }) ||\n t.isStringLiteral(property.key, { value: \"ref\" })\n );\n });\n }\n\n if (t.isAssignmentPattern(firstParam) && t.isObjectPattern(firstParam.left)) {\n return firstParam.left.properties.some((property) => {\n if (!t.isObjectProperty(property)) return false;\n return (\n t.isIdentifier(property.key, { name: \"ref\" }) ||\n t.isStringLiteral(property.key, { value: \"ref\" })\n );\n });\n }\n\n if (t.isIdentifier(firstParam)) {\n const binding = functionPath.scope.getBinding(firstParam.name);\n if (!binding) return false;\n return binding.referencePaths.some((refPath) => {\n const parentPath = refPath.parentPath;\n return Boolean(\n parentPath &&\n parentPath.isMemberExpression() &&\n parentPath.node.object === refPath.node &&\n t.isIdentifier(parentPath.node.property, { name: \"ref\" }) &&\n !parentPath.node.computed\n );\n });\n }\n\n return false;\n}\n\nexport function lowerForwardedElementRefs(functionPath, propName) {\n if (!propName) {\n return [];\n }\n\n const callbackStatements = [];\n const seenRefNames = new Set();\n\n functionPath.traverse({\n JSXAttribute(attrPath) {\n if (!t.isJSXIdentifier(attrPath.node.name, { name: \"ref\" })) return;\n\n const value = attrPath.node.value;\n if (!t.isJSXExpressionContainer(value)) return;\n if (\n !t.isMemberExpression(value.expression) ||\n !t.isThisExpression(value.expression.object) ||\n !t.isIdentifier(value.expression.property, { name: propName }) ||\n value.expression.computed\n ) {\n return;\n }\n\n const openingElement = attrPath.parentPath;\n if (!openingElement?.isJSXOpeningElement()) return;\n if (!isStandardElementJsxName(openingElement.node.name)) return;\n\n const managedRefName = functionPath.scope.generateUidIdentifier(`${propName}Element`).name;\n attrPath.replaceWith(\n t.jsxAttribute(t.jsxIdentifier(\"data-ref\"), t.stringLiteral(managedRefName))\n );\n\n if (seenRefNames.has(managedRefName)) return;\n seenRefNames.add(managedRefName);\n callbackStatements.push(createForwardedTargetRefSyncStatement(propName, managedRefName));\n },\n });\n\n return callbackStatements;\n}\n","let t;\n\nexport function setClassGenerationBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction createThisMemberExpression(propName) {\n return t.memberExpression(t.thisExpression(), t.identifier(propName));\n}\n\nexport function buildClassMembers({\n classMembers = [],\n defaults,\n renderStatements,\n handlerInfos,\n createHandlerClassMember,\n}) {\n if (defaults.size > 0) {\n const constructorStatements = [\n t.expressionStatement(t.callExpression(t.super(), [])),\n ];\n\n defaults.forEach((defaultExpression, propName) => {\n constructorStatements.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"??=\",\n createThisMemberExpression(propName),\n t.cloneNode(defaultExpression)\n )\n )\n );\n });\n\n const constructorMethod = t.classMethod(\n \"constructor\",\n t.identifier(\"constructor\"),\n [],\n t.blockStatement(constructorStatements)\n );\n\n const insertionIndex = classMembers.findIndex((member) => !member.static);\n if (insertionIndex === -1) {\n classMembers.push(constructorMethod);\n } else {\n classMembers.splice(insertionIndex, 0, constructorMethod);\n }\n }\n\n const handlerMembers = handlerInfos.map((handler) =>\n createHandlerClassMember(handler)\n );\n\n const renderMethod = t.classMethod(\n \"method\",\n t.identifier(\"render\"),\n [],\n t.blockStatement(renderStatements)\n );\n\n classMembers.push(...handlerMembers, renderMethod);\n return classMembers;\n}\n\nexport function createComponentClass({\n className,\n classMembers,\n hoistMembers,\n hoistSymbolDeclarations,\n needsStaticHoistsMixin,\n lightDomRequested,\n needsCss,\n needsUnsafeCss,\n needsCallbackRef = false,\n}) {\n const classNode = t.classDeclaration(\n t.identifier(className),\n t.identifier(\"LitElement\"),\n t.classBody(classMembers)\n );\n\n if (hoistMembers.length > 0) {\n classNode.body.body.unshift(...hoistMembers);\n if (hoistSymbolDeclarations.length > 0) {\n classNode._litsxStaticSymbolDeclarations = hoistSymbolDeclarations;\n }\n if (needsStaticHoistsMixin) {\n classNode.superClass = t.callExpression(\n t.identifier(\"LitsxStaticHoistsMixin\"),\n [classNode.superClass]\n );\n classNode._needsStaticHoistsMixin = true;\n }\n }\n\n if (lightDomRequested) {\n classNode.superClass = t.callExpression(\n t.identifier(\"LightDomMixin\"),\n [classNode.superClass]\n );\n classNode._needsLightDomMixin = true;\n }\n\n classNode._needsCss = needsCss;\n classNode._needsUnsafeCss = needsUnsafeCss;\n classNode._litsxLightDom = lightDomRequested;\n classNode._needsCallbackRef = needsCallbackRef;\n return classNode;\n}\n","let t;\n\nexport function setParamRewriteBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction createThisMemberExpression(propName) {\n return t.memberExpression(t.thisExpression(), t.identifier(propName));\n}\n\nexport function transformJSXExpressions(jsxPath, bindings, state = null) {\n const localNames = Array.from(bindings.keys());\n\n jsxPath.traverse({\n JSXExpressionContainer(expressionPath) {\n if (t.isIdentifier(expressionPath.node.expression)) {\n const name = expressionPath.node.expression.name;\n if (localNames.includes(name)) {\n const propName = bindings.get(name) || name;\n expressionPath.node.expression = t.memberExpression(\n t.thisExpression(),\n t.identifier(propName)\n );\n }\n }\n },\n });\n}\n\nfunction registerLocalPropAliases(functionPath, bindings) {\n let changed = true;\n\n while (changed) {\n changed = false;\n\n functionPath.traverse({\n VariableDeclarator(path) {\n if (path.getFunctionParent() !== functionPath) return;\n\n const { id, init } = path.node;\n if (!t.isIdentifier(init)) return;\n\n if (t.isIdentifier(id)) {\n if (bindings.has(id.name) || !bindings.has(init.name)) return;\n bindings.set(id.name, bindings.get(init.name));\n changed = true;\n return;\n }\n\n if (!t.isObjectPattern(id)) return;\n\n const bindingInfo = bindings.get(init.name);\n if (!bindingInfo || typeof bindingInfo !== \"object\" || bindingInfo.kind !== \"alias\") {\n return;\n }\n\n id.properties.forEach((property) => {\n if (!t.isObjectProperty(property)) return;\n\n const keyName = t.isIdentifier(property.key)\n ? property.key.name\n : t.isStringLiteral(property.key)\n ? property.key.value\n : null;\n\n if (!keyName || !bindingInfo.properties.has(keyName)) return;\n\n if (t.isIdentifier(property.value)) {\n if (!bindings.has(property.value.name)) {\n bindings.set(property.value.name, keyName);\n changed = true;\n }\n return;\n }\n\n if (\n t.isAssignmentPattern(property.value) &&\n t.isIdentifier(property.value.left) &&\n !bindings.has(property.value.left.name)\n ) {\n bindings.set(property.value.left.name, keyName);\n changed = true;\n }\n });\n },\n });\n }\n}\n\nfunction shouldCapturePropReference(refPath, functionPath) {\n const functionParent = refPath.getFunctionParent();\n if (!functionParent || functionParent === functionPath) {\n return false;\n }\n\n return !functionParent.isArrowFunctionExpression();\n}\n\nexport function replaceParamReferences(functionPath, bindings, propertyMap = new Map()) {\n registerLocalPropAliases(functionPath, bindings);\n\n const capturedPropAliases = new Map();\n\n function getReplacementForProp(propName, refPath) {\n if (shouldCapturePropReference(refPath, functionPath)) {\n let aliasId = capturedPropAliases.get(propName);\n if (!aliasId) {\n aliasId = functionPath.scope.generateUidIdentifier(propName);\n capturedPropAliases.set(propName, aliasId);\n }\n return t.cloneNode(aliasId);\n }\n\n return t.memberExpression(t.thisExpression(), t.identifier(propName));\n }\n\n bindings.forEach((bindingInfo, localName) => {\n if (!localName) return;\n const binding = functionPath.scope.getBinding(localName);\n if (!binding) return;\n\n binding.referencePaths.slice().forEach((refPath) => {\n if (!refPath.node) return;\n\n if (\n bindingInfo &&\n typeof bindingInfo === \"object\" &&\n bindingInfo.kind === \"alias\" &&\n (!refPath.parentPath || !refPath.parentPath.isMemberExpression())\n ) {\n if (shouldCapturePropReference(refPath, functionPath)) {\n return;\n }\n\n if (\n refPath.parentPath &&\n refPath.parentPath.isObjectProperty({ shorthand: true }) &&\n refPath.parentKey === \"value\"\n ) {\n return;\n }\n\n refPath.replaceWith(t.thisExpression());\n return;\n }\n\n if (\n bindingInfo &&\n typeof bindingInfo === \"object\" &&\n bindingInfo.kind === \"alias\" &&\n refPath.parentPath &&\n refPath.parentPath.isMemberExpression() &&\n refPath.parentKey === \"object\" &&\n t.isIdentifier(refPath.parentPath.node.property) &&\n !refPath.parentPath.node.computed\n ) {\n const propName = refPath.parentPath.node.property.name;\n if (bindingInfo.properties.has(propName)) {\n refPath.parentPath.replaceWith(getReplacementForProp(propName, refPath));\n return;\n }\n }\n\n let targetProp;\n if (typeof bindingInfo === \"string\") {\n targetProp = bindingInfo;\n } else if (bindingInfo && typeof bindingInfo === \"object\") {\n targetProp = bindingInfo.bindKey;\n }\n\n if (\n typeof bindingInfo === \"string\" &&\n refPath.parentPath &&\n refPath.parentPath.isMemberExpression() &&\n refPath.parentKey === \"object\" &&\n t.isIdentifier(refPath.parentPath.node.property) &&\n !refPath.parentPath.node.computed\n ) {\n const propName = refPath.parentPath.node.property.name;\n if (localName === \"props\" || propertyMap.has(propName)) {\n refPath.parentPath.replaceWith(getReplacementForProp(propName, refPath));\n return;\n }\n }\n\n if (\n refPath.parentPath &&\n refPath.parentPath.isObjectProperty({ shorthand: true }) &&\n refPath.parentKey === \"value\"\n ) {\n refPath.parentPath.node.shorthand = false;\n refPath.replaceWith(getReplacementForProp(targetProp || localName, refPath));\n return;\n }\n\n if (\n refPath.parentPath &&\n refPath.parentPath.isJSXAttribute() &&\n refPath.parentKey === \"value\"\n ) {\n refPath.replaceWith(\n t.jsxExpressionContainer(\n getReplacementForProp(targetProp || localName, refPath)\n )\n );\n return;\n }\n\n if (refPath.parentPath && refPath.parentPath.isMemberExpression()) {\n if (\n refPath.parentKey === \"property\" &&\n !refPath.parentPath.node.computed\n ) {\n return;\n }\n }\n\n refPath.replaceWith(getReplacementForProp(targetProp || localName, refPath));\n });\n });\n\n return Array.from(capturedPropAliases.entries()).map(([propName, aliasId]) =>\n t.variableDeclaration(\"const\", [\n t.variableDeclarator(t.cloneNode(aliasId), createThisMemberExpression(propName)),\n ])\n );\n}\n","let t;\n\nexport function setRendererCallsBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction createThisMemberExpression(propName) {\n return t.memberExpression(t.thisExpression(), t.identifier(propName));\n}\n\nfunction getBoundPropName(bindingInfo) {\n if (typeof bindingInfo === \"string\") {\n return bindingInfo;\n }\n\n if (bindingInfo && typeof bindingInfo === \"object\") {\n return bindingInfo.bindKey ?? null;\n }\n\n return null;\n}\n\nfunction isPropBackedCallee(node, localNames) {\n if (t.isIdentifier(node)) {\n return localNames.includes(node.name);\n }\n\n if (\n t.isMemberExpression(node) &&\n !node.computed &&\n t.isIdentifier(node.object)\n ) {\n return localNames.includes(node.object.name) && node.object.name === \"props\";\n }\n\n return false;\n}\n\nfunction getPropBackedCalleeReplacement(node, bindings) {\n if (t.isIdentifier(node)) {\n const propName = getBoundPropName(bindings.get(node.name));\n return propName ? createThisMemberExpression(propName) : node;\n }\n\n if (\n t.isMemberExpression(node) &&\n !node.computed &&\n t.isIdentifier(node.object)\n ) {\n const propName = getBoundPropName(bindings.get(node.object.name));\n if (!propName) {\n return node;\n }\n\n return t.memberExpression(\n createThisMemberExpression(propName),\n t.cloneNode(node.property),\n false\n );\n }\n\n return node;\n}\n\nexport function transformJSXRendererCalls(jsxPath, bindings, state = null) {\n const localNames = Array.from(bindings.keys());\n\n jsxPath.traverse({\n JSXExpressionContainer(expressionPath) {\n if (!t.isCallExpression(expressionPath.node.expression)) {\n return;\n }\n\n const { callee, arguments: args } = expressionPath.node.expression;\n if (!isPropBackedCallee(callee, localNames)) {\n return;\n }\n\n if (state) {\n state.__litsxNeedsRendererCallImport = true;\n }\n\n expressionPath.node.expression = t.callExpression(\n t.identifier(\"renderRendererCall\"),\n [\n getPropBackedCalleeReplacement(callee, bindings),\n ...args,\n ]\n );\n },\n });\n}\n","import {\n createComponentInstanceRefSyncStatement,\n hasRefProp,\n lowerForwardedElementRefs,\n} from \"./transform-litsx-refs.js\";\nimport {\n replaceParamReferences,\n transformJSXExpressions,\n} from \"./transform-litsx-param-rewrites.js\";\nimport { transformJSXRendererCalls } from \"./transform-litsx-renderer-calls.js\";\n\nlet t;\n\nexport function setRenderBodyBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction createThisMemberExpression(propName) {\n return t.memberExpression(t.thisExpression(), t.identifier(propName));\n}\n\nfunction createNestedInitializerStatement(pattern, root, defaultValue) {\n const rootAccess = createThisMemberExpression(root);\n let sourceExpression = rootAccess;\n\n if (defaultValue) {\n sourceExpression = t.logicalExpression(\n \"??\",\n t.cloneNode(rootAccess),\n t.cloneNode(defaultValue)\n );\n }\n\n return t.variableDeclaration(\"const\", [\n t.variableDeclarator(t.cloneNode(pattern), sourceExpression),\n ]);\n}\n\nfunction collectReturnStatement(functionPath, bindings, state) {\n let returnStatement = null;\n\n functionPath.traverse({\n ReturnStatement(returnPath) {\n if (t.isJSXElement(returnPath.node.argument)) {\n returnStatement = returnPath.node;\n transformJSXRendererCalls(returnPath, bindings, state);\n transformJSXExpressions(returnPath, bindings, state);\n }\n },\n });\n\n return returnStatement;\n}\n\nexport function prepareComponentRender(functionPath, node, propertyNames, bindings, nestedInitializers, options = {}) {\n const returnStatement = collectReturnStatement(\n functionPath,\n bindings,\n options.state ?? null\n );\n\n if (!returnStatement) {\n return null;\n }\n\n const capturedPropAliasStatements = replaceParamReferences(\n functionPath,\n bindings,\n propertyNames\n );\n const prefixStatements = [];\n\n const forwardRefOptions = options.forwardRef || null;\n const resolvedRefPropName =\n forwardRefOptions?.propName ||\n (propertyNames.has(\"ref\") || hasRefProp(functionPath) ? \"ref\" : null);\n let needsCallbackRef = false;\n\n if (resolvedRefPropName) {\n prefixStatements.push(\n ...lowerForwardedElementRefs(functionPath, resolvedRefPropName)\n );\n needsCallbackRef =\n prefixStatements.some(\n (statement) =>\n t.isExpressionStatement(statement) &&\n t.isCallExpression(statement.expression) &&\n t.isIdentifier(statement.expression.callee, { name: \"useCallbackRef\" })\n ) || needsCallbackRef;\n }\n\n if (resolvedRefPropName && !forwardRefOptions) {\n prefixStatements.push(createComponentInstanceRefSyncStatement());\n needsCallbackRef = true;\n }\n\n if (capturedPropAliasStatements.length > 0) {\n prefixStatements.push(...capturedPropAliasStatements);\n }\n\n if (nestedInitializers.length > 0) {\n const initializerStatements = nestedInitializers.map(({ pattern, root, defaultValue }) =>\n createNestedInitializerStatement(pattern, root, defaultValue)\n );\n prefixStatements.push(...initializerStatements);\n }\n\n return {\n needsCallbackRef,\n prefixStatements,\n returnStatement,\n };\n}\n","let t;\n\nexport function setProgramBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction createLitElementImport() {\n return t.importDeclaration(\n [\n t.importSpecifier(t.identifier(\"LitElement\"), t.identifier(\"LitElement\")),\n ],\n t.stringLiteral(\"lit\")\n );\n}\n\nfunction createLitsxInfrastructureImport(importedName) {\n return t.importDeclaration(\n [\n t.importSpecifier(t.identifier(importedName), t.identifier(importedName)),\n ],\n t.stringLiteral(\"@litsx/litsx/runtime-infrastructure\")\n );\n}\n\nfunction createLitsxInternalRuntimeImport(importedName) {\n return t.importDeclaration(\n [\n t.importSpecifier(t.identifier(importedName), t.identifier(importedName)),\n ],\n t.stringLiteral(\"@litsx/litsx/internal/runtime-render-context\")\n );\n}\n\nfunction createLitsxImport(importedName) {\n return t.importDeclaration(\n [\n t.importSpecifier(t.identifier(importedName), t.identifier(importedName)),\n ],\n t.stringLiteral(\"@litsx/litsx\")\n );\n}\n\nfunction ensureNamedImport(importPath, importedName) {\n const specifiers = importPath.node.specifiers;\n\n if (\n specifiers.some(\n (specifier) =>\n t.isImportSpecifier(specifier) &&\n t.isIdentifier(specifier.imported, { name: importedName })\n )\n ) {\n return true;\n }\n\n if (specifiers.some((specifier) => t.isImportNamespaceSpecifier(specifier))) {\n return false;\n }\n\n specifiers.push(\n t.importSpecifier(t.identifier(importedName), t.identifier(importedName))\n );\n return true;\n}\n\nfunction pruneUnusedLitsxStaticImports(programPath) {\n programPath.scope.crawl();\n\n const bodyPaths = programPath.get(\"body\");\n const litsxImports = bodyPaths.filter(\n (path) => path.isImportDeclaration() && path.node.source.value === \"@litsx/litsx\"\n );\n\n litsxImports.forEach((importPath) => {\n const removableSpecifiers = importPath.get(\"specifiers\").filter((specifierPath) => {\n if (!specifierPath.isImportSpecifier()) return false;\n if (!t.isIdentifier(specifierPath.node.imported)) return false;\n\n const importedName = specifierPath.node.imported.name;\n if (importedName !== \"staticStyles\" && importedName !== \"staticProps\") {\n return false;\n }\n\n const localName = t.isIdentifier(specifierPath.node.local)\n ? specifierPath.node.local.name\n : importedName;\n const binding = specifierPath.scope.getBinding(localName);\n return !binding || binding.referencePaths.length === 0;\n });\n\n removableSpecifiers.forEach((specifierPath) => {\n specifierPath.remove();\n });\n\n if (importPath.node.specifiers.length === 0) {\n importPath.remove();\n }\n });\n}\n\nexport function finalizeProgram(programPath, state) {\n if (!state?.__litsxTransformCount) {\n return;\n }\n\n const hoistDeclarations = [];\n for (const bodyPath of programPath.get(\"body\")) {\n const node = bodyPath.isClassDeclaration()\n ? bodyPath.node\n : bodyPath.isVariableDeclaration()\n ? bodyPath.node\n : bodyPath.isExportNamedDeclaration() || bodyPath.isExportDefaultDeclaration()\n ? bodyPath.node.declaration\n : null;\n\n if (!node) {\n continue;\n }\n\n if (t.isClassDeclaration(node) && Array.isArray(node._litsxStaticSymbolDeclarations)) {\n hoistDeclarations.push(...node._litsxStaticSymbolDeclarations);\n continue;\n }\n\n if (t.isVariableDeclaration(node)) {\n node.declarations.forEach((declarator) => {\n if (Array.isArray(declarator.init?._litsxStaticSymbolDeclarations)) {\n hoistDeclarations.push(...declarator.init._litsxStaticSymbolDeclarations);\n }\n });\n }\n }\n\n if (hoistDeclarations.length > 0) {\n programPath.unshiftContainer(\"body\", hoistDeclarations);\n }\n\n const bodyPaths = programPath.get(\"body\");\n const litImports = bodyPaths.filter(\n (n) => n.isImportDeclaration() && n.node.source.value === \"lit\"\n );\n\n let litElementImported = false;\n\n litImports.some((importPath) => {\n if (ensureNamedImport(importPath, \"LitElement\")) {\n litElementImported = true;\n return true;\n }\n\n return false;\n });\n\n if (!litElementImported) {\n programPath.unshiftContainer(\"body\", createLitElementImport());\n }\n\n if (state.__litsxNeedsCss) {\n const nextBodyPaths = programPath.get(\"body\");\n const nextLitImports = nextBodyPaths.filter(\n (n) => n.isImportDeclaration() && n.node.source.value === \"lit\"\n );\n nextLitImports.some((importPath) => ensureNamedImport(importPath, \"css\"));\n }\n\n if (state.__litsxNeedsUnsafeCss) {\n const nextBodyPaths = programPath.get(\"body\");\n const nextLitImports = nextBodyPaths.filter(\n (n) => n.isImportDeclaration() && n.node.source.value === \"lit\"\n );\n nextLitImports.some((importPath) => ensureNamedImport(importPath, \"unsafeCSS\"));\n }\n\n if (state.__litsxNeedsStaticHoistsMixin) {\n const bodyPathsWithInternal = programPath.get(\"body\");\n const internalImports = bodyPathsWithInternal.filter(\n (n) => n.isImportDeclaration() && n.node.source.value === \"@litsx/litsx/runtime-infrastructure\"\n );\n\n let internalImported = false;\n internalImports.some((importPath) => {\n if (ensureNamedImport(importPath, \"LitsxStaticHoistsMixin\")) {\n internalImported = true;\n return true;\n }\n\n return false;\n });\n\n if (!internalImported) {\n programPath.unshiftContainer(\"body\", createLitsxInfrastructureImport(\"LitsxStaticHoistsMixin\"));\n }\n }\n\n if (state.__litsxNeedsLightDomMixin) {\n const bodyPathsWithInternal = programPath.get(\"body\");\n const internalImports = bodyPathsWithInternal.filter(\n (n) => n.isImportDeclaration() && n.node.source.value === \"@litsx/litsx/runtime-infrastructure\"\n );\n\n let internalImported = false;\n internalImports.some((importPath) => {\n if (ensureNamedImport(importPath, \"LightDomMixin\")) {\n internalImported = true;\n return true;\n }\n\n return false;\n });\n\n if (!internalImported) {\n programPath.unshiftContainer(\"body\", createLitsxInfrastructureImport(\"LightDomMixin\"));\n }\n }\n\n if (state.__litsxNeedsCallbackRef) {\n const bodyPathsWithLitsx = programPath.get(\"body\");\n const litsxImports = bodyPathsWithLitsx.filter(\n (n) => n.isImportDeclaration() && n.node.source.value === \"@litsx/litsx\"\n );\n\n let litsxImported = false;\n litsxImports.some((importPath) => {\n if (ensureNamedImport(importPath, \"useCallbackRef\")) {\n litsxImported = true;\n return true;\n }\n\n return false;\n });\n\n if (!litsxImported) {\n programPath.unshiftContainer(\"body\", createLitsxImport(\"useCallbackRef\"));\n }\n }\n\n if (state.__litsxNeedsRendererCallImport) {\n const bodyPathsWithInternalRuntime = programPath.get(\"body\");\n const internalRuntimeImports = bodyPathsWithInternalRuntime.filter(\n (n) =>\n n.isImportDeclaration() &&\n n.node.source.value === \"@litsx/litsx/internal/runtime-render-context\"\n );\n\n let internalRuntimeImported = false;\n internalRuntimeImports.some((importPath) => {\n if (ensureNamedImport(importPath, \"renderRendererCall\")) {\n internalRuntimeImported = true;\n return true;\n }\n\n return false;\n });\n\n if (!internalRuntimeImported) {\n programPath.unshiftContainer(\"body\", createLitsxInternalRuntimeImport(\"renderRendererCall\"));\n }\n }\n\n pruneUnusedLitsxStaticImports(programPath);\n}\n","import jsxSyntaxPlugin from \"@babel/plugin-syntax-jsx\";\nimport {\n createTypeResolver,\n ensureTypescriptModule,\n extractProperties,\n setPropertyBabelTypes,\n} from \"./transform-litsx-properties.js\";\nimport {\n assertStaticHoistsStayTopLevel,\n processStaticHoists,\n setStaticHoistsBabelTypes,\n} from \"./transform-litsx-static-hoists.js\";\nimport {\n collectNativeClassNameWarnings,\n createHandlerClassMember,\n processHandlers,\n setHandlersBabelTypes,\n} from \"./transform-litsx-handlers.js\";\nimport {\n handlePotentialComponentExport,\n maybeTransformWrappedVariableDeclarator,\n setWrapperUtilsBabelTypes,\n} from \"./transform-litsx-wrapper-utils.js\";\nimport {\n setRefsBabelTypes,\n} from \"./transform-litsx-refs.js\";\nimport {\n buildClassMembers,\n createComponentClass,\n setClassGenerationBabelTypes,\n} from \"./transform-litsx-class-generation.js\";\nimport {\n setParamRewriteBabelTypes,\n} from \"./transform-litsx-param-rewrites.js\";\nimport {\n setRendererCallsBabelTypes,\n} from \"./transform-litsx-renderer-calls.js\";\nimport {\n getAnnotatedElementCandidates,\n getAnnotatedImportedElementCandidates,\n setElementCandidatesBabelTypes,\n} from \"./transform-litsx-element-candidates.js\";\nimport {\n prepareComponentRender,\n setRenderBodyBabelTypes,\n} from \"./transform-litsx-render-body.js\";\nimport {\n finalizeProgram,\n setProgramBabelTypes,\n} from \"./transform-litsx-program.js\";\n\nlet t;\n\nfunction isCapitalizedComponentName(name) {\n if (typeof name !== \"string\" || name.length === 0) {\n return false;\n }\n\n const first = name[0];\n return first === first.toUpperCase() && first !== first.toLowerCase();\n}\n\nexport function createTransformFunctionToClassPlugin(defaultPluginOptions = {}) {\n return function transformFunctionToClassPlugin(_api, pluginOptions = {}) {\n ensureTypescriptModule();\n t = _api.types;\n setPropertyBabelTypes(t);\n setStaticHoistsBabelTypes(t);\n setHandlersBabelTypes(t);\n setWrapperUtilsBabelTypes(t);\n setRefsBabelTypes(t);\n setClassGenerationBabelTypes(t);\n setParamRewriteBabelTypes(t);\n setRendererCallsBabelTypes(t);\n setElementCandidatesBabelTypes(t);\n setRenderBodyBabelTypes(t);\n setProgramBabelTypes(t);\n const resolvedPluginOptions = {\n ...defaultPluginOptions,\n ...pluginOptions,\n };\n\n const getWrapperMetadata =\n typeof resolvedPluginOptions.getWrapperMetadata === \"function\"\n ? resolvedPluginOptions.getWrapperMetadata\n : null;\n\n return {\n name: \"transform-function-to-class\",\n inherits: jsxSyntaxPlugin.default || jsxSyntaxPlugin,\n pre() {\n this.__litsxTransformCount = 0;\n this.__litsxNeedsCss = false;\n this.__litsxNeedsUnsafeCss = false;\n this.__litsxNeedsStaticHoistsMixin = false;\n this.__litsxNeedsLightDomMixin = false;\n this.__litsxNeedsCallbackRef = false;\n this.__litsxNeedsRendererCallImport = false;\n this.__litsxWarnings = [];\n this.__litsxResolvedPluginOptions = resolvedPluginOptions;\n this.__litsxTypeResolver = fileLikelyNeedsTypeResolver(this)\n ? createTypeResolver(\n this.file?.opts?.filename,\n this.file?.code,\n resolvedPluginOptions\n )\n : undefined;\n },\n post() {\n if (!this.file) return;\n this.file.metadata ||= {};\n this.file.metadata.litsxWarnings = this.__litsxWarnings || [];\n },\n visitor: {\n Program: {\n exit(programPath) {\n finalizeProgram(programPath, this);\n },\n },\n ExportNamedDeclaration(exportPath) {\n handlePotentialComponentExport({\n exportPath,\n state: this,\n transformFunction,\n isInsideFunctionOrClass,\n updateTransformState,\n getWrapperMetadata,\n });\n },\n ExportDefaultDeclaration(exportPath) {\n handlePotentialComponentExport({\n exportPath,\n state: this,\n isDefault: true,\n transformFunction,\n isInsideFunctionOrClass,\n updateTransformState,\n getWrapperMetadata,\n });\n },\n VariableDeclarator(varPath) {\n if (\n varPath.findParent(\n (p) => p.isExportNamedDeclaration?.() || p.isExportDefaultDeclaration?.()\n )\n ) {\n return;\n }\n\n const initPath = varPath.get(\"init\");\n\n if (\n maybeTransformWrappedVariableDeclarator({\n varPath,\n resolvedPluginOptions,\n state: this,\n transformFunction,\n updateTransformState,\n getWrapperMetadata,\n })\n ) {\n return;\n }\n\n if (\n initPath &&\n initPath.isArrowFunctionExpression() &&\n !isInsideFunctionOrClass(varPath) &&\n t.isIdentifier(varPath.node.id) &&\n isCapitalizedComponentName(varPath.node.id.name)\n ) {\n const programPath = varPath.findParent((p) => p.isProgram());\n const classNode = transformFunction(\n initPath,\n programPath,\n varPath.node.id.name,\n {\n ...resolvedPluginOptions,\n state: this,\n typeResolver: getTypeResolverForFunction(initPath, this),\n warn: (warning) => {\n this.__litsxWarnings.push(warning);\n },\n }\n );\n\n if (!classNode) return;\n\n const declarationPath = varPath.parentPath;\n if (!declarationPath.isVariableDeclaration()) return;\n\n varPath.scope.removeBinding(varPath.node.id.name);\n declarationPath.replaceWith(classNode);\n declarationPath.requeue();\n updateTransformState(this, classNode);\n }\n },\n FunctionDeclaration(funcPath) {\n if (\n !funcPath.parentPath?.isExportNamedDeclaration?.() &&\n !funcPath.parentPath?.isExportDefaultDeclaration?.() &&\n !isInsideFunctionOrClass(funcPath) &&\n funcPath.node.id &&\n isCapitalizedComponentName(funcPath.node.id.name)\n ) {\n const programPath = funcPath.findParent((p) => p.isProgram());\n const classNode = transformFunction(\n funcPath,\n programPath,\n undefined,\n {\n ...resolvedPluginOptions,\n state: this,\n typeResolver: getTypeResolverForFunction(funcPath, this),\n warn: (warning) => {\n this.__litsxWarnings.push(warning);\n },\n }\n );\n\n if (!classNode) return;\n\n if (funcPath.node.id) {\n funcPath.scope.removeBinding(funcPath.node.id.name);\n }\n funcPath.replaceWith(classNode);\n funcPath.requeue();\n updateTransformState(this, classNode);\n }\n },\n },\n };\n };\n}\n\nexport default createTransformFunctionToClassPlugin();\nexport { isCapitalizedComponentName };\n\nfunction getOrCreateModuleStaticHoistSymbol(programPath, hoistName) {\n let symbolMap = programPath.getData(\"__litsxStaticHoistSymbols\");\n if (!symbolMap) {\n symbolMap = new Map();\n programPath.setData(\"__litsxStaticHoistSymbols\", symbolMap);\n }\n\n if (symbolMap.has(hoistName)) {\n return symbolMap.get(hoistName);\n }\n\n const symbolId = programPath.scope.generateUidIdentifier(`litsx_static_${hoistName}`);\n const declaration = t.variableDeclaration(\"const\", [\n t.variableDeclarator(\n symbolId,\n t.callExpression(t.identifier(\"Symbol\"), [t.stringLiteral(`litsx.static.${hoistName}`)])\n ),\n ]);\n\n const entry = { symbolId, declaration };\n symbolMap.set(hoistName, entry);\n return entry;\n}\n\n\nfunction updateTransformState(state, classNode) {\n if (!state || !classNode) {\n return;\n }\n\n state.__litsxTransformCount = (state.__litsxTransformCount || 0) + 1;\n state.__litsxNeedsCss ||= Boolean(classNode._needsCss);\n state.__litsxNeedsUnsafeCss ||= Boolean(classNode._needsUnsafeCss);\n state.__litsxNeedsStaticHoistsMixin ||= Boolean(\n classNode._needsStaticHoistsMixin\n );\n state.__litsxNeedsLightDomMixin ||= Boolean(\n classNode._needsLightDomMixin\n );\n state.__litsxNeedsCallbackRef ||= Boolean(\n classNode._needsCallbackRef\n );\n}\n\n// Verifica si el nodo está dentro de otra función o clase\nfunction isInsideFunctionOrClass(path) {\n return path.findParent(\n (p) => p.isFunctionDeclaration() || p.isFunctionExpression() || p.isArrowFunctionExpression() || p.isClassDeclaration()\n );\n}\n\nfunction getOrCreateTypeResolver(state) {\n if (state.__litsxTypeResolver !== undefined) {\n return state.__litsxTypeResolver;\n }\n\n state.__litsxTypeResolver = createTypeResolver(\n state.file?.opts?.filename,\n state.file?.code,\n state.__litsxResolvedPluginOptions\n );\n return state.__litsxTypeResolver;\n}\n\nfunction fileLikelyNeedsTypeResolver(state) {\n const filename = state?.file?.opts?.filename || \"\";\n if (/\\.(?:[cm]?ts|tsx)$/i.test(filename)) {\n return true;\n }\n\n const source = state?.file?.code || \"\";\n return /\\b(?:type|interface|enum)\\b/.test(source);\n}\n\nfunction functionNeedsTypeResolver(functionPath, state) {\n const params = functionPath.get(\"params\");\n if (!Array.isArray(params) || params.length === 0) {\n return false;\n }\n\n if (fileLikelyNeedsTypeResolver(state)) {\n return true;\n }\n\n return params.some((paramPath) => containsTypeResolutionSyntax(paramPath));\n}\n\nfunction containsTypeResolutionSyntax(path) {\n if (!path?.node) {\n return false;\n }\n\n if (\n path.isIdentifier?.() ||\n path.isObjectPattern?.() ||\n path.isArrayPattern?.() ||\n path.isAssignmentPattern?.()\n ) {\n if (path.node.typeAnnotation) {\n return true;\n }\n }\n\n if (path.isAssignmentPattern?.()) {\n return containsTypeResolutionSyntax(path.get(\"left\"));\n }\n\n if (path.isObjectPattern?.()) {\n return path.get(\"properties\").some((propertyPath) => {\n if (propertyPath.isRestElement()) {\n return containsTypeResolutionSyntax(propertyPath.get(\"argument\"));\n }\n if (propertyPath.isObjectProperty()) {\n return containsTypeResolutionSyntax(propertyPath.get(\"value\"));\n }\n return false;\n });\n }\n\n if (path.isArrayPattern?.()) {\n return path.get(\"elements\").some((elementPath) => {\n if (!elementPath?.node) return false;\n return containsTypeResolutionSyntax(elementPath);\n });\n }\n\n return false;\n}\n\nfunction getTypeResolverForFunction(functionPath, state) {\n if (!functionNeedsTypeResolver(functionPath, state)) {\n return null;\n }\n\n return getOrCreateTypeResolver(state);\n}\n\nfunction transformFunction(functionPath, programPath, className, options = {}) {\n const { node } = functionPath;\n const elementCandidates = getAnnotatedElementCandidates(functionPath, programPath, options);\n const importedElementCandidates = getAnnotatedImportedElementCandidates(functionPath, programPath, options);\n let resolvedName = className;\n if (!resolvedName && node && node.id && t.isIdentifier(node.id)) {\n resolvedName = node.id.name;\n }\n if (!resolvedName) {\n resolvedName = \"AnonymousComponent\";\n }\n\n className = resolvedName;\n\n const {\n properties: propertiesStatic,\n propertyNames,\n bindings,\n defaults,\n nestedInitializers,\n } = extractProperties(\n functionPath,\n programPath,\n options\n );\n\n assertStaticHoistsStayTopLevel(functionPath);\n collectNativeClassNameWarnings(functionPath, options.warn, options);\n\n const renderPreparation = prepareComponentRender(\n functionPath,\n node,\n propertyNames,\n bindings,\n nestedInitializers,\n options\n );\n\n if (!renderPreparation?.returnStatement) return;\n\n const {\n needsCallbackRef,\n prefixStatements,\n } = renderPreparation;\n\n const usedNames = new Set([\n ...Object.keys(functionPath.scope.bindings || {}),\n \"render\",\n \"properties\",\n \"constructor\",\n ]);\n\n const handlerInfos = processHandlers(functionPath, usedNames);\n const renderStatements = t.isBlockStatement(node.body)\n ? [...node.body.body]\n : [t.returnStatement(node.body)];\n\n if (prefixStatements.length > 0) {\n renderStatements.unshift(...prefixStatements);\n }\n\n const classMembers = [];\n\n const {\n lightDomRequested,\n hoistMembers,\n hoistSymbolDeclarations,\n needsStaticHoistsMixin,\n needsCss,\n needsUnsafeCss,\n } = processStaticHoists({\n functionPath,\n node,\n renderStatements,\n programPath,\n propertiesStatic,\n classMembers,\n options,\n getOrCreateModuleStaticHoistSymbol,\n });\n\n buildClassMembers({\n classMembers,\n defaults,\n renderStatements,\n handlerInfos,\n createHandlerClassMember,\n });\n\n const classNode = createComponentClass({\n className,\n classMembers,\n hoistMembers,\n hoistSymbolDeclarations,\n needsStaticHoistsMixin,\n lightDomRequested,\n needsCss,\n needsUnsafeCss,\n needsCallbackRef,\n });\n\n if (classNode && elementCandidates.size) {\n classNode._litsxElementCandidates &&= new Set(classNode._litsxElementCandidates);\n const elementSet = classNode._litsxElementCandidates ||= new Set();\n elementCandidates.forEach((candidate) => elementSet.add(candidate));\n }\n\n if (classNode && importedElementCandidates.length > 0) {\n classNode._litsxImportedElementCandidates ||= [];\n importedElementCandidates.forEach((candidate) => {\n if (!classNode._litsxImportedElementCandidates.some(\n (entry) =>\n entry.sourceFile === candidate.sourceFile &&\n entry.importedName === candidate.importedName &&\n entry.tagName === candidate.tagName\n )) {\n classNode._litsxImportedElementCandidates.push(candidate);\n }\n });\n }\n\n return classNode;\n}\n\nfunction ensureClassIdentifier(classNode, fallbackName) {\n if (classNode.id && t.isIdentifier(classNode.id)) {\n return classNode.id;\n }\n\n const safeName =\n typeof fallbackName === \"string\" && fallbackName\n ? fallbackName\n : \"AnonymousComponent\";\n const identifier = t.identifier(safeName);\n classNode.id = identifier;\n return identifier;\n}\n"],"names":["t","createPropertyConfig","createPropertyValue","mergePropertyConfig","isCapitalizedComponentName","createThisMemberExpression","ensureTypescriptModule","setPropertyBabelTypes","setElementCandidatesBabelTypes","createTypeResolver","getAnnotatedElementCandidates","getAnnotatedImportedElementCandidates","extractProperties"],"mappings":"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"}
1
+ {"version":3,"file":"transform-litsx-components.cjs","sources":["../../src/internal/transform-litsx-static-hoists.js","../../src/internal/transform-litsx-handlers.js","../../src/internal/transform-litsx-wrapper-utils.js","../../src/internal/transform-litsx-refs.js","../../src/internal/transform-litsx-class-generation.js","../../src/internal/transform-litsx-param-rewrites.js","../../src/internal/transform-litsx-renderer-calls.js","../../src/internal/transform-litsx-render-body.js","../../src/internal/transform-litsx-program.js","../../src/internal/transform-litsx-components.js"],"sourcesContent":["import {\n createPropertyConfig,\n createPropertyValue,\n mergePropertyConfig,\n} from \"./transform-litsx-properties.js\";\n\nlet t;\n\nexport function setStaticHoistsBabelTypes(types) {\n t = types;\n}\n\nfunction isLightDomHoist(statement) {\n if (!t.isExpressionStatement(statement)) return false;\n if (!t.isCallExpression(statement.expression)) return false;\n if (!t.isIdentifier(statement.expression.callee, { name: \"__litsx_static_lightDom\" })) {\n return false;\n }\n\n const args = statement.expression.arguments;\n if (args.length === 0) {\n return true;\n }\n\n if (args.length === 1 && t.isBooleanLiteral(args[0], { value: true })) {\n return true;\n }\n\n throw new Error(\"static lightDom = true only accepts the literal value true.\");\n}\n\nfunction createStaticHoistGetter(name, symbolId, expression) {\n const getter = t.classMethod(\n \"get\",\n t.identifier(name),\n [],\n t.blockStatement([\n t.returnStatement(\n t.callExpression(\n t.memberExpression(t.thisExpression(), t.identifier(\"__litsxStatic\")),\n [\n t.cloneNode(symbolId),\n t.arrowFunctionExpression([], expression),\n ]\n )\n ),\n ])\n );\n getter.static = true;\n return getter;\n}\n\nfunction resolveStaticHoistExpression(expression) {\n return t.callExpression(\n t.memberExpression(t.thisExpression(), t.identifier(\"__litsxResolveStaticValue\")),\n [t.cloneNode(expression)]\n );\n}\n\nfunction createPropertiesHoistResolver(propertiesStatic, staticProps, expression) {\n const mergedProperties = propertiesStatic.map((property) => t.cloneNode(property));\n if (staticProps.length > 0) {\n mergeStaticPropsIntoProperties(mergedProperties, staticProps);\n }\n\n return t.callExpression(\n t.memberExpression(t.thisExpression(), t.identifier(\"__litsxMergeProperties\")),\n [\n t.objectExpression(mergedProperties),\n resolveStaticHoistExpression(expression),\n ]\n );\n}\n\nfunction createStylesHoistResolver(staticStyles, expression) {\n const resolvedExpression = resolveStaticHoistExpression(expression);\n if (staticStyles.length === 0) {\n return resolvedExpression;\n }\n\n const baseStyles =\n staticStyles.length === 1\n ? t.cloneNode(staticStyles[0])\n : t.arrayExpression(staticStyles.map((style) => t.cloneNode(style)));\n\n return t.logicalExpression(\"||\", resolvedExpression, baseStyles);\n}\n\nfunction getStaticPropsExpression(statement) {\n if (!t.isExpressionStatement(statement)) return null;\n if (!t.isCallExpression(statement.expression)) return null;\n const isLegacyStaticProps = t.isIdentifier(statement.expression.callee, { name: \"staticProps\" });\n const isHoistedProperties = t.isIdentifier(\n statement.expression.callee,\n { name: \"__litsx_static_properties\" }\n );\n if (\n !isLegacyStaticProps &&\n !isHoistedProperties\n ) {\n return null;\n }\n if (statement.expression.arguments.length !== 1) return null;\n\n const [argument] = statement.expression.arguments;\n if (isHoistedProperties && (t.isFunctionExpression(argument) || t.isArrowFunctionExpression(argument))) {\n throw new Error(\"static properties = ... only accepts an object literal with static Lit property options.\");\n }\n\n if (!t.isObjectExpression(argument)) {\n throw new Error(\"static properties = ... only accepts an object literal with static Lit property options.\");\n }\n\n return isHoistedProperties ? {\n __litsxHoistedProperties: true,\n expression: t.cloneNode(argument),\n } : t.cloneNode(argument);\n}\n\nfunction getStaticPropertyName(node) {\n if (t.isIdentifier(node)) return node.name;\n if (t.isStringLiteral(node)) return node.value;\n return null;\n}\n\nfunction normalizeStaticPropOverrideValue(value) {\n if (\n t.isIdentifier(value) &&\n [\"String\", \"Number\", \"Boolean\", \"Object\", \"Array\", \"Date\"].includes(value.name)\n ) {\n return createPropertyConfig(t.identifier(value.name));\n }\n\n if (t.isObjectExpression(value)) {\n const typeProperty = value.properties.find(\n (prop) =>\n t.isObjectProperty(prop) &&\n t.isIdentifier(prop.key, { name: \"type\" }) &&\n t.isIdentifier(prop.value)\n );\n\n const attributeProperty = value.properties.find(\n (prop) =>\n t.isObjectProperty(prop) &&\n t.isIdentifier(prop.key, { name: \"attribute\" }) &&\n t.isBooleanLiteral(prop.value) &&\n prop.value.value === false\n );\n\n return createPropertyConfig(typeProperty ? typeProperty.value : null, {\n attribute: attributeProperty ? false : undefined,\n });\n }\n\n throw new Error(\n \"static properties = ... values must be Lit property option objects or constructor references.\"\n );\n}\n\nfunction mergeStaticPropertyObject(targetNode, overrideObject) {\n if (!t.isObjectProperty(targetNode) || !t.isObjectExpression(targetNode.value)) {\n return;\n }\n\n overrideObject.properties.forEach((property) => {\n if (!t.isObjectProperty(property) && !t.isObjectMethod(property)) {\n throw new Error(\"static properties = ... only accepts plain object members.\");\n }\n\n const keyName = getStaticPropertyName(property.key);\n if (!keyName) {\n throw new Error(\"static properties = ... property option names must be static identifiers or strings.\");\n }\n\n const existing = targetNode.value.properties.find(\n (candidate) =>\n (t.isObjectProperty(candidate) || t.isObjectMethod(candidate)) &&\n getStaticPropertyName(candidate.key) === keyName\n );\n\n if (existing) {\n const nextNode = t.cloneNode(property);\n const index = targetNode.value.properties.indexOf(existing);\n targetNode.value.properties.splice(index, 1, nextNode);\n } else {\n targetNode.value.properties.push(t.cloneNode(property));\n }\n });\n}\n\nfunction mergeStaticPropsIntoProperties(propertiesStatic, staticProps) {\n const propertyMap = new Map();\n\n propertiesStatic.forEach((propertyNode) => {\n if (!t.isObjectProperty(propertyNode)) return;\n const keyName = getStaticPropertyName(propertyNode.key);\n if (!keyName) return;\n propertyMap.set(keyName, propertyNode);\n });\n\n staticProps.forEach((optionsObject) => {\n optionsObject.properties.forEach((property) => {\n if (!t.isObjectProperty(property)) {\n throw new Error(\"static properties = ... only accepts plain object properties.\");\n }\n\n const keyName = getStaticPropertyName(property.key);\n if (!keyName) {\n throw new Error(\"static properties = ... property names must be static identifiers or strings.\");\n }\n\n const existing = propertyMap.get(keyName);\n const normalized = normalizeStaticPropOverrideValue(property.value);\n\n if (!existing) {\n const node = t.objectProperty(\n t.identifier(keyName),\n createPropertyValue(normalized, false)\n );\n if (t.isObjectExpression(property.value)) {\n mergeStaticPropertyObject(node, property.value);\n }\n propertiesStatic.push(node);\n propertyMap.set(keyName, node);\n return;\n }\n\n mergePropertyConfig(\n { node: existing },\n normalized,\n false\n );\n\n if (t.isObjectExpression(property.value)) {\n mergeStaticPropertyObject(existing, property.value);\n }\n });\n });\n}\n\nfunction normalizeStylesTemplate(argument, functionPath) {\n if (t.isTemplateLiteral(argument)) {\n if (\n !argument.expressions.every((expression) =>\n isStaticStylesExpression(expression, functionPath)\n )\n ) {\n return null;\n }\n return t.templateLiteral(\n argument.quasis,\n argument.expressions.map((expression) =>\n wrapStaticStylesInterpolation(expression)\n )\n );\n }\n\n if (t.isStringLiteral(argument)) {\n return t.templateLiteral(\n [t.templateElement({ raw: argument.value, cooked: argument.value }, true)],\n []\n );\n }\n\n if (isStaticStylesExpression(argument, functionPath)) {\n return t.templateLiteral(\n [\n t.templateElement({ raw: \"\", cooked: \"\" }, false),\n t.templateElement({ raw: \"\", cooked: \"\" }, true),\n ],\n [wrapStaticStylesInterpolation(argument)]\n );\n }\n\n return null;\n}\n\nfunction wrapStaticStylesInterpolation(expression) {\n if (\n t.isTaggedTemplateExpression(expression) &&\n t.isIdentifier(expression.tag, { name: \"css\" })\n ) {\n return expression;\n }\n\n if (t.isNumericLiteral(expression)) {\n return expression;\n }\n\n return t.callExpression(\n t.identifier(\"unsafeCSS\"),\n [expression]\n );\n}\n\nfunction getStaticStylesExpression(statement, functionPath) {\n if (!t.isExpressionStatement(statement)) return null;\n if (!t.isCallExpression(statement.expression)) return null;\n const isLegacyStaticStyles = t.isIdentifier(statement.expression.callee, { name: \"staticStyles\" });\n const isHoistedStyles = t.isIdentifier(statement.expression.callee, { name: \"__litsx_static_styles\" });\n if (\n !isLegacyStaticStyles &&\n !isHoistedStyles\n ) {\n return null;\n }\n if (statement.expression.arguments.length !== 1) return null;\n\n const [argument] = statement.expression.arguments;\n\n if (isHoistedStyles && (t.isFunctionExpression(argument) || t.isArrowFunctionExpression(argument))) {\n throw new Error(\"static styles = ... only accepts static values. Move dynamic values to useStyle(...) or CSS custom properties.\");\n }\n\n const template = normalizeStylesTemplate(\n argument,\n functionPath\n );\n if (!template) {\n throw new Error(\"static styles = ... only accepts static values. Move dynamic values to useStyle(...) or CSS custom properties.\");\n }\n\n const expression = t.taggedTemplateExpression(t.identifier(\"css\"), template);\n return isHoistedStyles\n ? { __litsxHoistedStyles: true, expression }\n : expression;\n}\n\nfunction getStaticHoistExpression(statement, functionPath) {\n if (!t.isExpressionStatement(statement)) return null;\n if (!t.isCallExpression(statement.expression)) return null;\n if (!t.isIdentifier(statement.expression.callee)) return null;\n\n const calleeName = statement.expression.callee.name;\n if (!calleeName.startsWith(\"__litsx_static_\")) {\n return null;\n }\n\n const name = calleeName.slice(\"__litsx_static_\".length);\n if (!name || name === \"properties\" || name === \"styles\") {\n return null;\n }\n\n if (statement.expression.arguments.length !== 1) {\n throw new Error(`static ${name} = ... expects exactly one argument.`);\n }\n\n const [argument] = statement.expression.arguments;\n if (name === \"expose\") {\n if (t.isObjectExpression(argument)) {\n return {\n name,\n expression: t.cloneNode(argument),\n };\n }\n\n throw new Error(\"static expose = ... only accepts an object literal.\");\n }\n\n if (t.isFunctionExpression(argument) || t.isArrowFunctionExpression(argument)) {\n throw new Error(`static ${name} = ... only accepts a direct static value.`);\n }\n\n if (!isStaticStylesExpression(argument, functionPath)) {\n throw new Error(`static ${name} = ... only accepts a direct static value.`);\n }\n\n return {\n name,\n expression: t.cloneNode(argument),\n };\n}\n\nfunction createExposeHoistMembers(expression) {\n const { methodsExpression } = normalizeExposeHoistExpression(expression);\n\n return methodsExpression.properties.map((property) =>\n createExposeClassMethod(property)\n );\n}\n\nfunction normalizeExposeHoistExpression(expression) {\n if (t.isObjectExpression(expression)) {\n return {\n methodsExpression: t.cloneNode(expression),\n };\n }\n\n throw new Error(\"static expose = ... only accepts an object literal.\");\n}\n\nfunction createExposeClassMethod(property) {\n const method = normalizeExposePropertyToClassMethod(property);\n method.static = true;\n return method;\n}\n\nfunction normalizeExposePropertyToClassMethod(property) {\n if (t.isSpreadElement(property)) {\n throw new Error(\"static expose = ... does not accept spread elements.\");\n }\n\n if (t.isObjectMethod(property)) {\n if (property.kind !== \"method\") {\n throw new Error(\"static expose = ... only accepts plain methods.\");\n }\n\n return t.classMethod(\n \"method\",\n t.cloneNode(property.key),\n property.params.map((param) => t.cloneNode(param)),\n t.cloneNode(property.body),\n property.computed\n );\n }\n\n if (!t.isObjectProperty(property)) {\n throw new Error(\"static expose = ... only accepts plain methods.\");\n }\n\n const value = property.value;\n if (!t.isFunctionExpression(value) && !t.isArrowFunctionExpression(value)) {\n throw new Error(\"static expose = ... values must be functions.\");\n }\n\n const body = t.isBlockStatement(value.body)\n ? t.cloneNode(value.body)\n : t.blockStatement([t.returnStatement(t.cloneNode(value.body))]);\n\n const method = t.classMethod(\n \"method\",\n t.cloneNode(property.key),\n value.params.map((param) => t.cloneNode(param)),\n body,\n property.computed\n );\n method.async = value.async;\n method.generator = value.generator || false;\n return method;\n}\n\nexport function assertStaticHoistsStayTopLevel(functionPath) {\n functionPath.traverse({\n CallExpression(callPath) {\n if (!t.isIdentifier(callPath.node.callee)) return;\n if (!callPath.node.callee.name.startsWith(\"__litsx_static_\")) return;\n\n const statementParent = callPath.parentPath;\n const blockParent = statementParent?.parentPath;\n\n if (\n statementParent?.isExpressionStatement() &&\n blockParent?.isBlockStatement() &&\n blockParent.node === functionPath.node.body\n ) {\n return;\n }\n\n const macroName = callPath.node.callee.name.slice(\"__litsx_static_\".length);\n throw callPath.buildCodeFrameError(\n `static ${macroName} = ... must appear as a top-level statement in the component body.`\n );\n },\n });\n}\n\nfunction containsUnsafeCssCall(node) {\n if (!node || typeof node !== \"object\") return false;\n if (\n t.isCallExpression(node) &&\n t.isIdentifier(node.callee, { name: \"unsafeCSS\" })\n ) {\n return true;\n }\n\n return Object.values(node).some((value) => {\n if (Array.isArray(value)) {\n return value.some((entry) => containsUnsafeCssCall(entry));\n }\n return containsUnsafeCssCall(value);\n });\n}\n\nfunction isStaticStylesExpression(node, functionPath, seenBindings = new Set()) {\n if (\n t.isStringLiteral(node) ||\n t.isNumericLiteral(node) ||\n t.isBooleanLiteral(node) ||\n t.isNullLiteral(node) ||\n t.isBigIntLiteral?.(node)\n ) {\n return true;\n }\n\n if (t.isTemplateLiteral(node)) {\n return node.expressions.every((expression) =>\n isStaticStylesExpression(expression, functionPath, seenBindings)\n );\n }\n\n if (t.isIdentifier(node)) {\n return isStaticStylesIdentifier(node, functionPath, seenBindings);\n }\n\n if (t.isUnaryExpression(node)) {\n return isStaticStylesExpression(node.argument, functionPath, seenBindings);\n }\n\n if (t.isBinaryExpression(node) || t.isLogicalExpression(node)) {\n return (\n isStaticStylesExpression(node.left, functionPath, seenBindings) &&\n isStaticStylesExpression(node.right, functionPath, seenBindings)\n );\n }\n\n if (t.isConditionalExpression(node)) {\n return (\n isStaticStylesExpression(node.test, functionPath, seenBindings) &&\n isStaticStylesExpression(node.consequent, functionPath, seenBindings) &&\n isStaticStylesExpression(node.alternate, functionPath, seenBindings)\n );\n }\n\n if (t.isArrayExpression(node)) {\n return node.elements.every((element) =>\n element == null || isStaticStylesExpression(element, functionPath, seenBindings)\n );\n }\n\n if (t.isObjectExpression(node)) {\n return node.properties.every((property) => {\n if (t.isObjectProperty(property)) {\n return (\n (!property.computed ||\n isStaticStylesExpression(property.key, functionPath, seenBindings)) &&\n isStaticStylesExpression(property.value, functionPath, seenBindings)\n );\n }\n return false;\n });\n }\n\n if (t.isMemberExpression(node)) {\n return (\n isStaticStylesExpression(node.object, functionPath, seenBindings) &&\n (!node.computed ||\n isStaticStylesExpression(node.property, functionPath, seenBindings))\n );\n }\n\n if (t.isCallExpression(node)) {\n return (\n isStaticStylesExpression(node.callee, functionPath, seenBindings) &&\n node.arguments.every((argument) =>\n t.isSpreadElement(argument)\n ? false\n : isStaticStylesExpression(argument, functionPath, seenBindings)\n )\n );\n }\n\n if (t.isTaggedTemplateExpression(node)) {\n return (\n isStaticStylesExpression(node.tag, functionPath, seenBindings) &&\n isStaticStylesExpression(node.quasi, functionPath, seenBindings)\n );\n }\n\n return false;\n}\n\nfunction isStaticStylesIdentifier(node, functionPath, seenBindings) {\n const binding = functionPath?.scope\n ? functionPath.scope.getBinding(node.name)\n : null;\n\n if (!binding) {\n return false;\n }\n\n if (binding.path.findParent((parent) => parent === functionPath)) {\n return false;\n }\n\n if (\n binding.path.isImportSpecifier() ||\n binding.path.isImportDefaultSpecifier() ||\n binding.path.isImportNamespaceSpecifier()\n ) {\n return true;\n }\n\n if (binding.path.isVariableDeclarator()) {\n if (binding.kind !== \"const\" || !binding.path.node.init) {\n return false;\n }\n\n if (seenBindings.has(binding)) {\n return true;\n }\n\n seenBindings.add(binding);\n return isStaticStylesExpression(binding.path.node.init, functionPath, seenBindings);\n }\n\n if (binding.path.isFunctionDeclaration() || binding.path.isClassDeclaration()) {\n return true;\n }\n\n return false;\n}\n\nexport function processStaticHoists({\n functionPath,\n node,\n renderStatements,\n programPath,\n propertiesStatic,\n classMembers,\n options = {},\n getOrCreateModuleStaticHoistSymbol,\n}) {\n const staticStyles = [];\n const staticProps = [];\n const staticHoists = [];\n let lightDomRequested = options.defaultDomMode === \"light\";\n\n if (t.isBlockStatement(node.body)) {\n for (let index = renderStatements.length - 1; index >= 0; index -= 1) {\n const propertyOptions = getStaticPropsExpression(renderStatements[index]);\n if (propertyOptions) {\n if (propertyOptions.__litsxHoistedProperties) {\n staticHoists.unshift({\n name: \"properties\",\n expression: propertyOptions.expression,\n });\n } else {\n staticProps.unshift(propertyOptions);\n }\n renderStatements.splice(index, 1);\n continue;\n }\n\n const cssExpression = getStaticStylesExpression(renderStatements[index], functionPath);\n if (!cssExpression) continue;\n if (cssExpression.__litsxHoistedStyles) {\n staticHoists.unshift({\n name: \"styles\",\n expression: cssExpression.expression,\n });\n } else {\n staticStyles.unshift(cssExpression);\n }\n renderStatements.splice(index, 1);\n }\n\n for (let index = renderStatements.length - 1; index >= 0; index -= 1) {\n if (isLightDomHoist(renderStatements[index])) {\n lightDomRequested = true;\n renderStatements.splice(index, 1);\n }\n }\n\n for (let index = renderStatements.length - 1; index >= 0; index -= 1) {\n const hoistExpression = getStaticHoistExpression(renderStatements[index], functionPath);\n if (!hoistExpression) continue;\n staticHoists.unshift(hoistExpression);\n renderStatements.splice(index, 1);\n }\n }\n\n if (lightDomRequested) {\n for (let index = staticHoists.length - 1; index >= 0; index -= 1) {\n if (staticHoists[index]?.name === \"shadowRootOptions\") {\n staticHoists.splice(index, 1);\n }\n }\n }\n\n if (staticProps.length > 0) {\n mergeStaticPropsIntoProperties(propertiesStatic, staticProps);\n }\n\n const hasHoistedProperties = staticHoists.some((entry) => entry.name === \"properties\");\n if (propertiesStatic.length > 0 && !hasHoistedProperties) {\n const classProperties = t.classProperty(\n t.identifier(\"properties\"),\n t.objectExpression(propertiesStatic),\n null,\n [],\n false\n );\n\n classProperties.static = true;\n classMembers.push(classProperties);\n }\n\n const hasHoistedStyles = staticHoists.some((entry) => entry.name === \"styles\");\n if (staticStyles.length > 0 && !hasHoistedStyles) {\n const stylesProperty = t.classProperty(\n t.identifier(\"styles\"),\n staticStyles.length === 1 ? staticStyles[0] : t.arrayExpression(staticStyles),\n null,\n [],\n false\n );\n stylesProperty.static = true;\n classMembers.push(stylesProperty);\n }\n\n const hoistSymbolDeclarations = [];\n let needsStaticHoistsMixin = false;\n const hoistMembers = staticHoists.flatMap((hoist) => {\n if (hoist.name === \"expose\") {\n return createExposeHoistMembers(hoist.expression);\n }\n\n needsStaticHoistsMixin = true;\n const { symbolId, declaration } = getOrCreateModuleStaticHoistSymbol(programPath, hoist.name);\n if (declaration) {\n hoistSymbolDeclarations.push(declaration);\n const symbolMap = programPath.getData(\"__litsxStaticHoistSymbols\");\n if (symbolMap?.has(hoist.name)) {\n symbolMap.set(hoist.name, { symbolId, declaration: null });\n }\n }\n\n if (hoist.name === \"properties\") {\n return createStaticHoistGetter(\n \"properties\",\n symbolId,\n createPropertiesHoistResolver(propertiesStatic, staticProps, hoist.expression)\n );\n }\n\n if (hoist.name === \"styles\") {\n return createStaticHoistGetter(\n \"styles\",\n symbolId,\n createStylesHoistResolver(staticStyles, hoist.expression)\n );\n }\n\n return createStaticHoistGetter(\n hoist.name,\n symbolId,\n resolveStaticHoistExpression(hoist.expression)\n );\n });\n\n return {\n lightDomRequested,\n hoistMembers,\n hoistSymbolDeclarations,\n needsStaticHoistsMixin,\n needsCss:\n staticStyles.length > 0 ||\n staticHoists.some((entry) => entry.name === \"styles\"),\n needsUnsafeCss:\n staticStyles.some(containsUnsafeCssCall) ||\n staticHoists.some(\n (entry) => entry.name === \"styles\" && containsUnsafeCssCall(entry.expression)\n ),\n };\n}\n","let t;\n\nexport function setHandlersBabelTypes(types) {\n t = types;\n}\n\nfunction isHoistableHandler(exprPath, componentPath) {\n let hoistable = true;\n\n exprPath.traverse({\n Identifier(identifierPath) {\n if (!identifierPath.isReferencedIdentifier()) return;\n\n const name = identifierPath.node.name;\n const ownBinding = exprPath.scope.getOwnBinding(name);\n if (ownBinding) return;\n\n const binding = identifierPath.scope.getBinding(name);\n if (!binding) return;\n\n if (binding.scope === componentPath.scope) {\n hoistable = false;\n identifierPath.stop();\n }\n },\n });\n\n return hoistable;\n}\n\nfunction ensureUniqueHandlerName(baseName, usedNames) {\n let candidate = baseName;\n let suffix = 2;\n\n while (usedNames.has(candidate)) {\n candidate = `${baseName}${suffix}`;\n suffix += 1;\n }\n\n usedNames.add(candidate);\n return candidate;\n}\n\nfunction generateHandlerName(attrName, usedNames) {\n const eventSegment = attrName.slice(2) || \"Event\";\n const base = `handle${eventSegment}`;\n return ensureUniqueHandlerName(base, usedNames);\n}\n\nfunction normalizeHandlerBody(body) {\n if (t.isBlockStatement(body)) {\n return t.cloneNode(body, true);\n }\n\n return t.blockStatement([t.returnStatement(t.cloneNode(body, true))]);\n}\n\nfunction hoistDeclaredHandlers(functionPath, usedNames) {\n const handlerInfos = [];\n const bodyPath = functionPath.get(\"body\");\n if (!bodyPath.isBlockStatement()) {\n return handlerInfos;\n }\n\n functionPath.traverse({\n VariableDeclarator(path) {\n if (path.getFunctionParent() !== functionPath) return;\n\n const id = path.node.id;\n if (!t.isIdentifier(id)) return;\n\n const initPath = path.get(\"init\");\n if (!initPath.isArrowFunctionExpression() && !initPath.isFunctionExpression()) {\n return;\n }\n\n const statementParent = path.getStatementParent();\n if (!statementParent || statementParent.parentPath !== bodyPath) {\n return;\n }\n\n if (!isHoistableHandler(initPath, functionPath)) return;\n\n const originalName = id.name;\n usedNames.delete(originalName);\n const handlerName = ensureUniqueHandlerName(originalName, usedNames);\n const binding = path.scope.getBinding(originalName);\n\n if (!binding) return;\n\n binding.referencePaths.slice().forEach((refPath) => {\n if (!refPath.node || refPath.removed) return;\n refPath.replaceWith(\n t.memberExpression(t.thisExpression(), t.identifier(handlerName))\n );\n });\n\n handlerInfos.push({\n name: handlerName,\n params: initPath.node.params.map((param) => t.cloneNode(param, true)),\n body: normalizeHandlerBody(initPath.node.body),\n async: initPath.node.async,\n generator: initPath.node.generator,\n });\n\n path.remove();\n\n if (\n statementParent.isVariableDeclaration() &&\n statementParent.node.declarations.length === 0\n ) {\n statementParent.remove();\n }\n\n binding.scope.removeBinding(originalName);\n },\n });\n\n return handlerInfos;\n}\n\nfunction hoistEventHandlers(functionPath, usedNames) {\n const handlerInfos = [];\n\n functionPath.traverse({\n JSXAttribute(attrPath) {\n if (attrPath.getFunctionParent() !== functionPath) return;\n\n const { node } = attrPath;\n if (!t.isJSXIdentifier(node.name)) return;\n\n const attrName = node.name.name;\n if (!/^on[A-Z]/.test(attrName)) return;\n\n const valuePath = attrPath.get(\"value\");\n if (!valuePath.isJSXExpressionContainer()) return;\n\n const exprPath = valuePath.get(\"expression\");\n if (\n !exprPath.isArrowFunctionExpression() &&\n !exprPath.isFunctionExpression()\n ) {\n return;\n }\n\n if (!isHoistableHandler(exprPath, functionPath)) return;\n\n const handlerName = generateHandlerName(attrName, usedNames);\n\n handlerInfos.push({\n name: handlerName,\n params: exprPath.node.params.map((param) => t.cloneNode(param, true)),\n body: normalizeHandlerBody(exprPath.node.body),\n async: exprPath.node.async,\n generator: exprPath.node.generator,\n });\n\n valuePath.replaceWith(\n t.jsxExpressionContainer(\n t.memberExpression(t.thisExpression(), t.identifier(handlerName))\n )\n );\n },\n });\n\n return handlerInfos;\n}\n\nfunction isNativeIntrinsicJsxElement(nameNode) {\n return t.isJSXIdentifier(nameNode) && /^[a-z]/.test(nameNode.name);\n}\n\nexport function collectNativeClassNameWarnings(functionPath, warn, options = {}) {\n if (typeof warn !== \"function\" || options.suppressNativeClassNameWarning === true) {\n return;\n }\n\n functionPath.traverse({\n JSXAttribute(attrPath) {\n if (attrPath.getFunctionParent() !== functionPath) return;\n\n const openingElement = attrPath.parentPath;\n if (!openingElement?.isJSXOpeningElement()) return;\n if (!isNativeIntrinsicJsxElement(openingElement.node.name)) return;\n\n const { node } = attrPath;\n if (!t.isJSXIdentifier(node.name, { name: \"className\" })) return;\n\n warn({\n code: \"LITSX_NATIVE_CLASSNAME\",\n message:\n '`className` is not native LitSX syntax. Use `class` in native LitSX, or add the React compatibility layer to rewrite `className`.',\n attributeName: \"className\",\n tagName: openingElement.node.name.name,\n line: node.loc?.start?.line ?? null,\n column: node.loc?.start?.column ?? null,\n });\n },\n });\n}\n\nexport function processHandlers(functionPath, usedNames) {\n const declaredHandlers = hoistDeclaredHandlers(functionPath, usedNames);\n const inlineHandlers = hoistEventHandlers(functionPath, usedNames);\n return [...declaredHandlers, ...inlineHandlers];\n}\n\nexport function createHandlerClassMember({ name, params, body, async, generator }) {\n const method = t.classMethod(\n \"method\",\n t.identifier(name),\n params.map((param) => t.cloneNode(param, true)),\n t.cloneNode(body, true)\n );\n\n method.async = Boolean(async);\n method.generator = Boolean(generator);\n\n return method;\n}\n","let t;\n\nfunction isCapitalizedComponentName(name) {\n if (typeof name !== \"string\" || name.length === 0) {\n return false;\n }\n\n const first = name[0];\n return first === first.toUpperCase() && first !== first.toLowerCase();\n}\n\nexport function setWrapperUtilsBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction emitWrapperWarnings(meta, warn) {\n if (!meta || typeof warn !== \"function\" || !Array.isArray(meta.warnings)) {\n return;\n }\n\n meta.warnings.forEach((warning) => warn(warning));\n}\n\nfunction pruneWrapperImports(meta) {\n if (!meta || !Array.isArray(meta.cleanups)) {\n return;\n }\n\n meta.cleanups.forEach((cleanup) => {\n if (!cleanup || !cleanup.shouldRemoveImport || !cleanup.importSpecifierPath) {\n return;\n }\n const importDecl = cleanup.importSpecifierPath.parentPath;\n cleanup.importSpecifierPath.remove();\n if (importDecl.node.specifiers.length === 0) {\n importDecl.remove();\n }\n });\n}\n\nexport function maybeTransformWrappedVariableDeclarator({\n varPath,\n resolvedPluginOptions,\n state,\n transformFunction,\n updateTransformState,\n getWrapperMetadata,\n}) {\n if (typeof getWrapperMetadata !== \"function\") {\n return false;\n }\n\n const initPath = varPath.get(\"init\");\n if (!initPath || !initPath.isCallExpression()) {\n return false;\n }\n\n const wrapperMeta = getWrapperMetadata(initPath);\n if (!wrapperMeta) {\n return false;\n }\n\n emitWrapperWarnings(wrapperMeta, (warning) => {\n state?.__litsxWarnings?.push(warning);\n });\n\n const programPath = varPath.findParent((p) => p.isProgram());\n const localName = t.isIdentifier(varPath.node.id)\n ? varPath.node.id.name\n : undefined;\n\n const classNode = transformFunction(\n wrapperMeta.functionPath,\n programPath,\n localName,\n {\n ...resolvedPluginOptions,\n ...wrapperMeta.options,\n state,\n typeResolver: state?.__litsxTypeResolver,\n warn: (warning) => {\n state?.__litsxWarnings?.push(warning);\n },\n }\n );\n\n if (!classNode) {\n return true;\n }\n\n if (t.isIdentifier(varPath.node.id)) {\n varPath.scope.removeBinding(varPath.node.id.name);\n }\n\n const declarationPath = varPath.parentPath;\n if (!declarationPath.isVariableDeclaration()) {\n return true;\n }\n\n declarationPath.replaceWith(classNode);\n declarationPath.requeue();\n pruneWrapperImports(wrapperMeta);\n updateTransformState?.(state, classNode);\n return true;\n}\n\nexport function handlePotentialComponentExport({\n exportPath,\n state,\n isDefault = false,\n transformFunction,\n isInsideFunctionOrClass,\n updateTransformState,\n getWrapperMetadata,\n}) {\n const declaration = exportPath.node.declaration;\n const typeResolver = state?.__litsxTypeResolver || null;\n if (!declaration || isInsideFunctionOrClass(exportPath)) {\n return false;\n }\n\n if (\n t.isFunctionDeclaration(declaration) ||\n (t.isVariableDeclaration(declaration) &&\n declaration.declarations.length === 1 &&\n t.isArrowFunctionExpression(declaration.declarations[0].init))\n ) {\n const funcPath = exportPath.get(\"declaration\");\n const declarationPath = funcPath.isVariableDeclaration()\n ? funcPath.get(\"declarations.0.init\")\n : funcPath;\n let exportName;\n if (t.isFunctionDeclaration(declaration) && declaration.id) {\n exportName = declaration.id.name;\n } else if (\n t.isVariableDeclaration(declaration) &&\n t.isIdentifier(declaration.declarations[0].id)\n ) {\n exportName = declaration.declarations[0].id.name;\n }\n\n if (exportName && !isCapitalizedComponentName(exportName)) {\n return false;\n }\n\n const classNode = transformFunction(\n declarationPath,\n exportPath.findParent((p) => p.isProgram()),\n exportName,\n {\n ...state?.__litsxResolvedPluginOptions,\n state,\n typeResolver,\n warn: (warning) => {\n state?.__litsxWarnings?.push(warning);\n },\n }\n );\n\n if (!classNode) return true;\n\n if (exportName) {\n exportPath.scope.removeBinding(exportName);\n }\n\n exportPath.insertBefore(\n isDefault\n ? t.exportDefaultDeclaration(classNode)\n : t.exportNamedDeclaration(classNode, [])\n );\n exportPath.remove();\n updateTransformState?.(state, classNode);\n return true;\n }\n\n if (\n typeof getWrapperMetadata === \"function\" &&\n t.isVariableDeclaration(declaration) &&\n declaration.declarations.length === 1\n ) {\n const declaratorPath = exportPath.get(\"declaration.declarations.0\");\n const initPath = declaratorPath.get(\"init\");\n const exportName = t.isIdentifier(declaratorPath.node.id)\n ? declaratorPath.node.id.name\n : undefined;\n const programPath = exportPath.findParent((p) => p.isProgram());\n\n if (exportName && !isCapitalizedComponentName(exportName)) {\n return false;\n }\n\n if (initPath.isCallExpression()) {\n const wrapperMeta = getWrapperMetadata(initPath);\n if (!wrapperMeta) return false;\n emitWrapperWarnings(wrapperMeta, (warning) => {\n state?.__litsxWarnings?.push(warning);\n });\n\n const classNode = transformFunction(\n wrapperMeta.functionPath,\n programPath,\n exportName,\n {\n ...state?.__litsxResolvedPluginOptions,\n ...wrapperMeta.options,\n state,\n typeResolver,\n warn: (warning) => {\n state?.__litsxWarnings?.push(warning);\n },\n }\n );\n if (!classNode) return true;\n\n if (exportName) {\n exportPath.scope.removeBinding(exportName);\n }\n\n exportPath.replaceWith(\n isDefault\n ? t.exportDefaultDeclaration(classNode)\n : t.exportNamedDeclaration(classNode, [])\n );\n exportPath.requeue();\n pruneWrapperImports(wrapperMeta);\n updateTransformState?.(state, classNode);\n return true;\n }\n }\n\n if (typeof getWrapperMetadata === \"function\" && isDefault && t.isCallExpression(declaration)) {\n const callPath = exportPath.get(\"declaration\");\n const wrapperMeta = getWrapperMetadata(callPath);\n if (!wrapperMeta) return false;\n emitWrapperWarnings(wrapperMeta, (warning) => {\n state?.__litsxWarnings?.push(warning);\n });\n\n const programPath = exportPath.findParent((p) => p.isProgram());\n const inferredName = wrapperMeta.functionPath.node.id\n ? wrapperMeta.functionPath.node.id.name\n : undefined;\n\n if (!inferredName || !isCapitalizedComponentName(inferredName)) {\n return false;\n }\n\n const classNode = transformFunction(\n wrapperMeta.functionPath,\n programPath,\n inferredName,\n {\n ...state?.__litsxResolvedPluginOptions,\n ...wrapperMeta.options,\n state,\n typeResolver,\n warn: (warning) => {\n state?.__litsxWarnings?.push(warning);\n },\n }\n );\n if (!classNode) return true;\n\n exportPath.replaceWith(t.exportDefaultDeclaration(classNode));\n exportPath.requeue();\n pruneWrapperImports(wrapperMeta);\n updateTransformState?.(state, classNode);\n return true;\n }\n\n return false;\n}\n","let t;\n\nexport function setRefsBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction createThisMemberExpression(propName) {\n return t.memberExpression(t.thisExpression(), t.identifier(propName));\n}\n\nfunction createManagedRefLookupExpression(refName) {\n const selectorLiteral = t.stringLiteral(`[data-ref=\"${refName}\"]`);\n\n const renderRootQuery = t.optionalCallExpression(\n t.optionalMemberExpression(\n t.memberExpression(t.thisExpression(), t.identifier(\"renderRoot\")),\n t.identifier(\"querySelector\"),\n false,\n true\n ),\n [selectorLiteral],\n false\n );\n\n const hostQuery = t.callExpression(\n t.memberExpression(t.thisExpression(), t.identifier(\"querySelector\")),\n [t.cloneNode(selectorLiteral)]\n );\n\n return t.logicalExpression(\"??\", renderRootQuery, hostQuery);\n}\n\nfunction createForwardedTargetRefSyncStatement(propName, refName) {\n return t.expressionStatement(\n t.callExpression(t.identifier(\"useCallbackRef\"), [\n t.thisExpression(),\n t.arrowFunctionExpression([], createManagedRefLookupExpression(refName)),\n t.arrowFunctionExpression(\n [t.identifier(\"node\")],\n t.blockStatement([\n t.variableDeclaration(\"const\", [\n t.variableDeclarator(\n t.identifier(\"componentRef\"),\n createThisMemberExpression(propName)\n ),\n ]),\n t.ifStatement(\n t.binaryExpression(\n \"===\",\n t.unaryExpression(\"typeof\", t.identifier(\"componentRef\")),\n t.stringLiteral(\"function\")\n ),\n t.blockStatement([\n t.expressionStatement(\n t.callExpression(t.identifier(\"componentRef\"), [t.identifier(\"node\")])\n ),\n ]),\n t.ifStatement(\n t.logicalExpression(\n \"&&\",\n t.identifier(\"componentRef\"),\n t.binaryExpression(\n \"===\",\n t.unaryExpression(\"typeof\", t.identifier(\"componentRef\")),\n t.stringLiteral(\"object\")\n )\n ),\n t.blockStatement([\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(t.identifier(\"componentRef\"), t.identifier(\"current\")),\n t.identifier(\"node\")\n )\n ),\n ])\n )\n ),\n ])\n ),\n t.arrayExpression([createThisMemberExpression(propName)]),\n ])\n );\n}\n\nfunction isStandardElementJsxName(nameNode) {\n if (!t.isJSXIdentifier(nameNode)) {\n return false;\n }\n\n const name = nameNode.name || \"\";\n return Boolean(name) && name[0] === name[0].toLowerCase() && !name.includes(\"-\");\n}\n\nexport function createComponentInstanceRefSyncStatement() {\n return t.expressionStatement(\n t.callExpression(t.identifier(\"useCallbackRef\"), [\n t.thisExpression(),\n t.arrowFunctionExpression([], t.thisExpression()),\n t.arrowFunctionExpression(\n [t.identifier(\"node\")],\n t.blockStatement([\n t.variableDeclaration(\"const\", [\n t.variableDeclarator(\n t.identifier(\"componentRef\"),\n createThisMemberExpression(\"ref\")\n ),\n ]),\n t.ifStatement(\n t.binaryExpression(\n \"===\",\n t.unaryExpression(\"typeof\", t.identifier(\"componentRef\")),\n t.stringLiteral(\"function\")\n ),\n t.blockStatement([\n t.expressionStatement(\n t.callExpression(t.identifier(\"componentRef\"), [t.identifier(\"node\")])\n ),\n ]),\n t.ifStatement(\n t.logicalExpression(\n \"&&\",\n t.identifier(\"componentRef\"),\n t.binaryExpression(\n \"===\",\n t.unaryExpression(\"typeof\", t.identifier(\"componentRef\")),\n t.stringLiteral(\"object\")\n )\n ),\n t.blockStatement([\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(t.identifier(\"componentRef\"), t.identifier(\"current\")),\n t.identifier(\"node\")\n )\n ),\n ])\n )\n ),\n ])\n ),\n t.arrayExpression([createThisMemberExpression(\"ref\")]),\n ])\n );\n}\n\nexport function hasRefProp(functionPath) {\n const [firstParam] = functionPath.node.params || [];\n if (!firstParam) {\n return false;\n }\n\n if (t.isObjectPattern(firstParam)) {\n return firstParam.properties.some((property) => {\n if (!t.isObjectProperty(property)) return false;\n return (\n t.isIdentifier(property.key, { name: \"ref\" }) ||\n t.isStringLiteral(property.key, { value: \"ref\" })\n );\n });\n }\n\n if (t.isAssignmentPattern(firstParam) && t.isObjectPattern(firstParam.left)) {\n return firstParam.left.properties.some((property) => {\n if (!t.isObjectProperty(property)) return false;\n return (\n t.isIdentifier(property.key, { name: \"ref\" }) ||\n t.isStringLiteral(property.key, { value: \"ref\" })\n );\n });\n }\n\n if (t.isIdentifier(firstParam)) {\n const binding = functionPath.scope.getBinding(firstParam.name);\n if (!binding) return false;\n return binding.referencePaths.some((refPath) => {\n const parentPath = refPath.parentPath;\n return Boolean(\n parentPath &&\n parentPath.isMemberExpression() &&\n parentPath.node.object === refPath.node &&\n t.isIdentifier(parentPath.node.property, { name: \"ref\" }) &&\n !parentPath.node.computed\n );\n });\n }\n\n return false;\n}\n\nexport function lowerForwardedElementRefs(functionPath, propName) {\n if (!propName) {\n return [];\n }\n\n const callbackStatements = [];\n const seenRefNames = new Set();\n\n functionPath.traverse({\n JSXAttribute(attrPath) {\n if (!t.isJSXIdentifier(attrPath.node.name, { name: \"ref\" })) return;\n\n const value = attrPath.node.value;\n if (!t.isJSXExpressionContainer(value)) return;\n if (\n !t.isMemberExpression(value.expression) ||\n !t.isThisExpression(value.expression.object) ||\n !t.isIdentifier(value.expression.property, { name: propName }) ||\n value.expression.computed\n ) {\n return;\n }\n\n const openingElement = attrPath.parentPath;\n if (!openingElement?.isJSXOpeningElement()) return;\n if (!isStandardElementJsxName(openingElement.node.name)) return;\n\n const managedRefName = functionPath.scope.generateUidIdentifier(`${propName}Element`).name;\n attrPath.replaceWith(\n t.jsxAttribute(t.jsxIdentifier(\"data-ref\"), t.stringLiteral(managedRefName))\n );\n\n if (seenRefNames.has(managedRefName)) return;\n seenRefNames.add(managedRefName);\n callbackStatements.push(createForwardedTargetRefSyncStatement(propName, managedRefName));\n },\n });\n\n return callbackStatements;\n}\n","let t;\n\nexport function setClassGenerationBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction createThisMemberExpression(propName) {\n return t.memberExpression(t.thisExpression(), t.identifier(propName));\n}\n\nexport function buildClassMembers({\n classMembers = [],\n defaults,\n renderStatements,\n handlerInfos,\n createHandlerClassMember,\n}) {\n if (defaults.size > 0) {\n const constructorStatements = [\n t.expressionStatement(t.callExpression(t.super(), [])),\n ];\n\n defaults.forEach((defaultExpression, propName) => {\n constructorStatements.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"??=\",\n createThisMemberExpression(propName),\n t.cloneNode(defaultExpression)\n )\n )\n );\n });\n\n const constructorMethod = t.classMethod(\n \"constructor\",\n t.identifier(\"constructor\"),\n [],\n t.blockStatement(constructorStatements)\n );\n\n const insertionIndex = classMembers.findIndex((member) => !member.static);\n if (insertionIndex === -1) {\n classMembers.push(constructorMethod);\n } else {\n classMembers.splice(insertionIndex, 0, constructorMethod);\n }\n }\n\n const handlerMembers = handlerInfos.map((handler) =>\n createHandlerClassMember(handler)\n );\n\n const renderMethod = t.classMethod(\n \"method\",\n t.identifier(\"render\"),\n [],\n t.blockStatement(renderStatements)\n );\n\n classMembers.push(...handlerMembers, renderMethod);\n return classMembers;\n}\n\nexport function createComponentClass({\n className,\n classMembers,\n hoistMembers,\n hoistSymbolDeclarations,\n needsStaticHoistsMixin,\n lightDomRequested,\n needsCss,\n needsUnsafeCss,\n needsCallbackRef = false,\n}) {\n const classNode = t.classDeclaration(\n t.identifier(className),\n t.identifier(\"LitElement\"),\n t.classBody(classMembers)\n );\n\n if (hoistMembers.length > 0) {\n classNode.body.body.unshift(...hoistMembers);\n if (hoistSymbolDeclarations.length > 0) {\n classNode._litsxStaticSymbolDeclarations = hoistSymbolDeclarations;\n }\n if (needsStaticHoistsMixin) {\n classNode.superClass = t.callExpression(\n t.identifier(\"LitsxStaticHoistsMixin\"),\n [classNode.superClass]\n );\n classNode._needsStaticHoistsMixin = true;\n }\n }\n\n if (lightDomRequested) {\n classNode.superClass = t.callExpression(\n t.identifier(\"LightDomMixin\"),\n [classNode.superClass]\n );\n classNode._needsLightDomMixin = true;\n }\n\n classNode._needsCss = needsCss;\n classNode._needsUnsafeCss = needsUnsafeCss;\n classNode._litsxLightDom = lightDomRequested;\n classNode._needsCallbackRef = needsCallbackRef;\n return classNode;\n}\n","let t;\n\nexport function setParamRewriteBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction createThisMemberExpression(propName) {\n return t.memberExpression(t.thisExpression(), t.identifier(propName));\n}\n\nexport function transformJSXExpressions(jsxPath, bindings, state = null) {\n const localNames = Array.from(bindings.keys());\n\n jsxPath.traverse({\n JSXExpressionContainer(expressionPath) {\n if (t.isIdentifier(expressionPath.node.expression)) {\n const name = expressionPath.node.expression.name;\n if (localNames.includes(name)) {\n const propName = bindings.get(name) || name;\n expressionPath.node.expression = t.memberExpression(\n t.thisExpression(),\n t.identifier(propName)\n );\n }\n }\n },\n });\n}\n\nfunction registerLocalPropAliases(functionPath, bindings) {\n let changed = true;\n\n while (changed) {\n changed = false;\n\n functionPath.traverse({\n VariableDeclarator(path) {\n if (path.getFunctionParent() !== functionPath) return;\n\n const { id, init } = path.node;\n if (!t.isIdentifier(init)) return;\n\n if (t.isIdentifier(id)) {\n if (bindings.has(id.name) || !bindings.has(init.name)) return;\n bindings.set(id.name, bindings.get(init.name));\n changed = true;\n return;\n }\n\n if (!t.isObjectPattern(id)) return;\n\n const bindingInfo = bindings.get(init.name);\n if (!bindingInfo || typeof bindingInfo !== \"object\" || bindingInfo.kind !== \"alias\") {\n return;\n }\n\n id.properties.forEach((property) => {\n if (!t.isObjectProperty(property)) return;\n\n const keyName = t.isIdentifier(property.key)\n ? property.key.name\n : t.isStringLiteral(property.key)\n ? property.key.value\n : null;\n\n if (!keyName || !bindingInfo.properties.has(keyName)) return;\n\n if (t.isIdentifier(property.value)) {\n if (!bindings.has(property.value.name)) {\n bindings.set(property.value.name, keyName);\n changed = true;\n }\n return;\n }\n\n if (\n t.isAssignmentPattern(property.value) &&\n t.isIdentifier(property.value.left) &&\n !bindings.has(property.value.left.name)\n ) {\n bindings.set(property.value.left.name, keyName);\n changed = true;\n }\n });\n },\n });\n }\n}\n\nfunction shouldCapturePropReference(refPath, functionPath) {\n const functionParent = refPath.getFunctionParent();\n if (!functionParent || functionParent === functionPath) {\n return false;\n }\n\n return !functionParent.isArrowFunctionExpression();\n}\n\nexport function replaceParamReferences(functionPath, bindings, propertyMap = new Map()) {\n registerLocalPropAliases(functionPath, bindings);\n\n const capturedPropAliases = new Map();\n\n function getReplacementForProp(propName, refPath) {\n if (shouldCapturePropReference(refPath, functionPath)) {\n let aliasId = capturedPropAliases.get(propName);\n if (!aliasId) {\n aliasId = functionPath.scope.generateUidIdentifier(propName);\n capturedPropAliases.set(propName, aliasId);\n }\n return t.cloneNode(aliasId);\n }\n\n return t.memberExpression(t.thisExpression(), t.identifier(propName));\n }\n\n bindings.forEach((bindingInfo, localName) => {\n if (!localName) return;\n const binding = functionPath.scope.getBinding(localName);\n if (!binding) return;\n\n binding.referencePaths.slice().forEach((refPath) => {\n if (!refPath.node) return;\n\n if (\n bindingInfo &&\n typeof bindingInfo === \"object\" &&\n bindingInfo.kind === \"alias\" &&\n (!refPath.parentPath || !refPath.parentPath.isMemberExpression())\n ) {\n if (shouldCapturePropReference(refPath, functionPath)) {\n return;\n }\n\n if (\n refPath.parentPath &&\n refPath.parentPath.isObjectProperty({ shorthand: true }) &&\n refPath.parentKey === \"value\"\n ) {\n return;\n }\n\n refPath.replaceWith(t.thisExpression());\n return;\n }\n\n if (\n bindingInfo &&\n typeof bindingInfo === \"object\" &&\n bindingInfo.kind === \"alias\" &&\n refPath.parentPath &&\n refPath.parentPath.isMemberExpression() &&\n refPath.parentKey === \"object\" &&\n t.isIdentifier(refPath.parentPath.node.property) &&\n !refPath.parentPath.node.computed\n ) {\n const propName = refPath.parentPath.node.property.name;\n if (bindingInfo.properties.has(propName)) {\n refPath.parentPath.replaceWith(getReplacementForProp(propName, refPath));\n return;\n }\n }\n\n let targetProp;\n if (typeof bindingInfo === \"string\") {\n targetProp = bindingInfo;\n } else if (bindingInfo && typeof bindingInfo === \"object\") {\n targetProp = bindingInfo.bindKey;\n }\n\n if (\n typeof bindingInfo === \"string\" &&\n refPath.parentPath &&\n refPath.parentPath.isMemberExpression() &&\n refPath.parentKey === \"object\" &&\n t.isIdentifier(refPath.parentPath.node.property) &&\n !refPath.parentPath.node.computed\n ) {\n const propName = refPath.parentPath.node.property.name;\n if (localName === \"props\" || propertyMap.has(propName)) {\n refPath.parentPath.replaceWith(getReplacementForProp(propName, refPath));\n return;\n }\n }\n\n if (\n refPath.parentPath &&\n refPath.parentPath.isObjectProperty({ shorthand: true }) &&\n refPath.parentKey === \"value\"\n ) {\n refPath.parentPath.node.shorthand = false;\n refPath.replaceWith(getReplacementForProp(targetProp || localName, refPath));\n return;\n }\n\n if (\n refPath.parentPath &&\n refPath.parentPath.isJSXAttribute() &&\n refPath.parentKey === \"value\"\n ) {\n refPath.replaceWith(\n t.jsxExpressionContainer(\n getReplacementForProp(targetProp || localName, refPath)\n )\n );\n return;\n }\n\n if (refPath.parentPath && refPath.parentPath.isMemberExpression()) {\n if (\n refPath.parentKey === \"property\" &&\n !refPath.parentPath.node.computed\n ) {\n return;\n }\n }\n\n refPath.replaceWith(getReplacementForProp(targetProp || localName, refPath));\n });\n });\n\n return Array.from(capturedPropAliases.entries()).map(([propName, aliasId]) =>\n t.variableDeclaration(\"const\", [\n t.variableDeclarator(t.cloneNode(aliasId), createThisMemberExpression(propName)),\n ])\n );\n}\n","let t;\n\nexport function setRendererCallsBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction createThisMemberExpression(propName) {\n return t.memberExpression(t.thisExpression(), t.identifier(propName));\n}\n\nfunction getBoundPropName(bindingInfo) {\n if (typeof bindingInfo === \"string\") {\n return bindingInfo;\n }\n\n if (bindingInfo && typeof bindingInfo === \"object\") {\n return bindingInfo.bindKey ?? null;\n }\n\n return null;\n}\n\nfunction isPropBackedCallee(node, localNames) {\n if (t.isIdentifier(node)) {\n return localNames.includes(node.name);\n }\n\n if (\n t.isMemberExpression(node) &&\n !node.computed &&\n t.isIdentifier(node.object)\n ) {\n return localNames.includes(node.object.name) && node.object.name === \"props\";\n }\n\n return false;\n}\n\nfunction getPropBackedCalleeReplacement(node, bindings) {\n if (t.isIdentifier(node)) {\n const propName = getBoundPropName(bindings.get(node.name));\n return propName ? createThisMemberExpression(propName) : node;\n }\n\n if (\n t.isMemberExpression(node) &&\n !node.computed &&\n t.isIdentifier(node.object)\n ) {\n const propName = getBoundPropName(bindings.get(node.object.name));\n if (!propName) {\n return node;\n }\n\n return t.memberExpression(\n createThisMemberExpression(propName),\n t.cloneNode(node.property),\n false\n );\n }\n\n return node;\n}\n\nexport function transformJSXRendererCalls(jsxPath, bindings, state = null) {\n const localNames = Array.from(bindings.keys());\n\n jsxPath.traverse({\n JSXExpressionContainer(expressionPath) {\n if (!t.isCallExpression(expressionPath.node.expression)) {\n return;\n }\n\n const { callee, arguments: args } = expressionPath.node.expression;\n if (!isPropBackedCallee(callee, localNames)) {\n return;\n }\n\n if (state) {\n state.__litsxNeedsRendererCallImport = true;\n }\n\n expressionPath.node.expression = t.callExpression(\n t.identifier(\"renderRendererCall\"),\n [\n getPropBackedCalleeReplacement(callee, bindings),\n ...args,\n ]\n );\n },\n });\n}\n","import {\n createComponentInstanceRefSyncStatement,\n hasRefProp,\n lowerForwardedElementRefs,\n} from \"./transform-litsx-refs.js\";\nimport {\n replaceParamReferences,\n transformJSXExpressions,\n} from \"./transform-litsx-param-rewrites.js\";\nimport { transformJSXRendererCalls } from \"./transform-litsx-renderer-calls.js\";\n\nlet t;\n\nexport function setRenderBodyBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction createThisMemberExpression(propName) {\n return t.memberExpression(t.thisExpression(), t.identifier(propName));\n}\n\nfunction createNestedInitializerStatement(pattern, root, defaultValue) {\n const rootAccess = createThisMemberExpression(root);\n let sourceExpression = rootAccess;\n\n if (defaultValue) {\n sourceExpression = t.logicalExpression(\n \"??\",\n t.cloneNode(rootAccess),\n t.cloneNode(defaultValue)\n );\n }\n\n return t.variableDeclaration(\"const\", [\n t.variableDeclarator(t.cloneNode(pattern), sourceExpression),\n ]);\n}\n\nfunction collectReturnStatement(functionPath, bindings, state) {\n let returnStatement = null;\n\n functionPath.traverse({\n ReturnStatement(returnPath) {\n if (t.isJSXElement(returnPath.node.argument)) {\n returnStatement = returnPath.node;\n transformJSXRendererCalls(returnPath, bindings, state);\n transformJSXExpressions(returnPath, bindings, state);\n }\n },\n });\n\n return returnStatement;\n}\n\nexport function prepareComponentRender(functionPath, node, propertyNames, bindings, nestedInitializers, options = {}) {\n const returnStatement = collectReturnStatement(\n functionPath,\n bindings,\n options.state ?? null\n );\n\n if (!returnStatement) {\n return null;\n }\n\n const capturedPropAliasStatements = replaceParamReferences(\n functionPath,\n bindings,\n propertyNames\n );\n const prefixStatements = [];\n\n const forwardRefOptions = options.forwardRef || null;\n const resolvedRefPropName =\n forwardRefOptions?.propName ||\n (propertyNames.has(\"ref\") || hasRefProp(functionPath) ? \"ref\" : null);\n let needsCallbackRef = false;\n\n if (resolvedRefPropName) {\n prefixStatements.push(\n ...lowerForwardedElementRefs(functionPath, resolvedRefPropName)\n );\n needsCallbackRef =\n prefixStatements.some(\n (statement) =>\n t.isExpressionStatement(statement) &&\n t.isCallExpression(statement.expression) &&\n t.isIdentifier(statement.expression.callee, { name: \"useCallbackRef\" })\n ) || needsCallbackRef;\n }\n\n if (resolvedRefPropName && !forwardRefOptions) {\n prefixStatements.push(createComponentInstanceRefSyncStatement());\n needsCallbackRef = true;\n }\n\n if (capturedPropAliasStatements.length > 0) {\n prefixStatements.push(...capturedPropAliasStatements);\n }\n\n if (nestedInitializers.length > 0) {\n const initializerStatements = nestedInitializers.map(({ pattern, root, defaultValue }) =>\n createNestedInitializerStatement(pattern, root, defaultValue)\n );\n prefixStatements.push(...initializerStatements);\n }\n\n return {\n needsCallbackRef,\n prefixStatements,\n returnStatement,\n };\n}\n","let t;\n\nexport function setProgramBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction createLitElementImport() {\n return t.importDeclaration(\n [\n t.importSpecifier(t.identifier(\"LitElement\"), t.identifier(\"LitElement\")),\n ],\n t.stringLiteral(\"lit\")\n );\n}\n\nfunction createLitsxInfrastructureImport(importedName) {\n return t.importDeclaration(\n [\n t.importSpecifier(t.identifier(importedName), t.identifier(importedName)),\n ],\n t.stringLiteral(\"@litsx/litsx/runtime-infrastructure\")\n );\n}\n\nfunction createLitsxInternalRuntimeImport(importedName) {\n return t.importDeclaration(\n [\n t.importSpecifier(t.identifier(importedName), t.identifier(importedName)),\n ],\n t.stringLiteral(\"@litsx/litsx/internal/runtime-render-context\")\n );\n}\n\nfunction createLitsxImport(importedName) {\n return t.importDeclaration(\n [\n t.importSpecifier(t.identifier(importedName), t.identifier(importedName)),\n ],\n t.stringLiteral(\"@litsx/litsx\")\n );\n}\n\nfunction ensureNamedImport(importPath, importedName) {\n const specifiers = importPath.node.specifiers;\n\n if (\n specifiers.some(\n (specifier) =>\n t.isImportSpecifier(specifier) &&\n t.isIdentifier(specifier.imported, { name: importedName })\n )\n ) {\n return true;\n }\n\n if (specifiers.some((specifier) => t.isImportNamespaceSpecifier(specifier))) {\n return false;\n }\n\n specifiers.push(\n t.importSpecifier(t.identifier(importedName), t.identifier(importedName))\n );\n return true;\n}\n\nfunction pruneUnusedLitsxStaticImports(programPath) {\n programPath.scope.crawl();\n\n const bodyPaths = programPath.get(\"body\");\n const litsxImports = bodyPaths.filter(\n (path) => path.isImportDeclaration() && path.node.source.value === \"@litsx/litsx\"\n );\n\n litsxImports.forEach((importPath) => {\n const removableSpecifiers = importPath.get(\"specifiers\").filter((specifierPath) => {\n if (!specifierPath.isImportSpecifier()) return false;\n if (!t.isIdentifier(specifierPath.node.imported)) return false;\n\n const importedName = specifierPath.node.imported.name;\n if (importedName !== \"staticStyles\" && importedName !== \"staticProps\") {\n return false;\n }\n\n const localName = t.isIdentifier(specifierPath.node.local)\n ? specifierPath.node.local.name\n : importedName;\n const binding = specifierPath.scope.getBinding(localName);\n return !binding || binding.referencePaths.length === 0;\n });\n\n removableSpecifiers.forEach((specifierPath) => {\n specifierPath.remove();\n });\n\n if (importPath.node.specifiers.length === 0) {\n importPath.remove();\n }\n });\n}\n\nexport function finalizeProgram(programPath, state) {\n if (!state?.__litsxTransformCount) {\n return;\n }\n\n const hoistDeclarations = [];\n for (const bodyPath of programPath.get(\"body\")) {\n const node = bodyPath.isClassDeclaration()\n ? bodyPath.node\n : bodyPath.isVariableDeclaration()\n ? bodyPath.node\n : bodyPath.isExportNamedDeclaration() || bodyPath.isExportDefaultDeclaration()\n ? bodyPath.node.declaration\n : null;\n\n if (!node) {\n continue;\n }\n\n if (t.isClassDeclaration(node) && Array.isArray(node._litsxStaticSymbolDeclarations)) {\n hoistDeclarations.push(...node._litsxStaticSymbolDeclarations);\n continue;\n }\n\n if (t.isVariableDeclaration(node)) {\n node.declarations.forEach((declarator) => {\n if (Array.isArray(declarator.init?._litsxStaticSymbolDeclarations)) {\n hoistDeclarations.push(...declarator.init._litsxStaticSymbolDeclarations);\n }\n });\n }\n }\n\n if (hoistDeclarations.length > 0) {\n programPath.unshiftContainer(\"body\", hoistDeclarations);\n }\n\n const bodyPaths = programPath.get(\"body\");\n const litImports = bodyPaths.filter(\n (n) => n.isImportDeclaration() && n.node.source.value === \"lit\"\n );\n\n let litElementImported = false;\n\n litImports.some((importPath) => {\n if (ensureNamedImport(importPath, \"LitElement\")) {\n litElementImported = true;\n return true;\n }\n\n return false;\n });\n\n if (!litElementImported) {\n programPath.unshiftContainer(\"body\", createLitElementImport());\n }\n\n if (state.__litsxNeedsCss) {\n const nextBodyPaths = programPath.get(\"body\");\n const nextLitImports = nextBodyPaths.filter(\n (n) => n.isImportDeclaration() && n.node.source.value === \"lit\"\n );\n nextLitImports.some((importPath) => ensureNamedImport(importPath, \"css\"));\n }\n\n if (state.__litsxNeedsUnsafeCss) {\n const nextBodyPaths = programPath.get(\"body\");\n const nextLitImports = nextBodyPaths.filter(\n (n) => n.isImportDeclaration() && n.node.source.value === \"lit\"\n );\n nextLitImports.some((importPath) => ensureNamedImport(importPath, \"unsafeCSS\"));\n }\n\n if (state.__litsxNeedsStaticHoistsMixin) {\n const bodyPathsWithInternal = programPath.get(\"body\");\n const internalImports = bodyPathsWithInternal.filter(\n (n) => n.isImportDeclaration() && n.node.source.value === \"@litsx/litsx/runtime-infrastructure\"\n );\n\n let internalImported = false;\n internalImports.some((importPath) => {\n if (ensureNamedImport(importPath, \"LitsxStaticHoistsMixin\")) {\n internalImported = true;\n return true;\n }\n\n return false;\n });\n\n if (!internalImported) {\n programPath.unshiftContainer(\"body\", createLitsxInfrastructureImport(\"LitsxStaticHoistsMixin\"));\n }\n }\n\n if (state.__litsxNeedsLightDomMixin) {\n const bodyPathsWithInternal = programPath.get(\"body\");\n const internalImports = bodyPathsWithInternal.filter(\n (n) => n.isImportDeclaration() && n.node.source.value === \"@litsx/litsx/runtime-infrastructure\"\n );\n\n let internalImported = false;\n internalImports.some((importPath) => {\n if (ensureNamedImport(importPath, \"LightDomMixin\")) {\n internalImported = true;\n return true;\n }\n\n return false;\n });\n\n if (!internalImported) {\n programPath.unshiftContainer(\"body\", createLitsxInfrastructureImport(\"LightDomMixin\"));\n }\n }\n\n if (state.__litsxNeedsCallbackRef) {\n const bodyPathsWithLitsx = programPath.get(\"body\");\n const litsxImports = bodyPathsWithLitsx.filter(\n (n) => n.isImportDeclaration() && n.node.source.value === \"@litsx/litsx\"\n );\n\n let litsxImported = false;\n litsxImports.some((importPath) => {\n if (ensureNamedImport(importPath, \"useCallbackRef\")) {\n litsxImported = true;\n return true;\n }\n\n return false;\n });\n\n if (!litsxImported) {\n programPath.unshiftContainer(\"body\", createLitsxImport(\"useCallbackRef\"));\n }\n }\n\n if (state.__litsxNeedsRendererCallImport) {\n const bodyPathsWithInternalRuntime = programPath.get(\"body\");\n const internalRuntimeImports = bodyPathsWithInternalRuntime.filter(\n (n) =>\n n.isImportDeclaration() &&\n n.node.source.value === \"@litsx/litsx/internal/runtime-render-context\"\n );\n\n let internalRuntimeImported = false;\n internalRuntimeImports.some((importPath) => {\n if (ensureNamedImport(importPath, \"renderRendererCall\")) {\n internalRuntimeImported = true;\n return true;\n }\n\n return false;\n });\n\n if (!internalRuntimeImported) {\n programPath.unshiftContainer(\"body\", createLitsxInternalRuntimeImport(\"renderRendererCall\"));\n }\n }\n\n pruneUnusedLitsxStaticImports(programPath);\n}\n","import jsxSyntaxPlugin from \"@babel/plugin-syntax-jsx\";\nimport {\n createTypeResolver,\n ensureTypescriptModule,\n extractProperties,\n setPropertyBabelTypes,\n} from \"./transform-litsx-properties.js\";\nimport {\n assertStaticHoistsStayTopLevel,\n processStaticHoists,\n setStaticHoistsBabelTypes,\n} from \"./transform-litsx-static-hoists.js\";\nimport {\n collectNativeClassNameWarnings,\n createHandlerClassMember,\n processHandlers,\n setHandlersBabelTypes,\n} from \"./transform-litsx-handlers.js\";\nimport {\n handlePotentialComponentExport,\n maybeTransformWrappedVariableDeclarator,\n setWrapperUtilsBabelTypes,\n} from \"./transform-litsx-wrapper-utils.js\";\nimport {\n setRefsBabelTypes,\n} from \"./transform-litsx-refs.js\";\nimport {\n buildClassMembers,\n createComponentClass,\n setClassGenerationBabelTypes,\n} from \"./transform-litsx-class-generation.js\";\nimport {\n setParamRewriteBabelTypes,\n} from \"./transform-litsx-param-rewrites.js\";\nimport {\n setRendererCallsBabelTypes,\n} from \"./transform-litsx-renderer-calls.js\";\nimport {\n getAnnotatedElementCandidates,\n getAnnotatedImportedElementCandidates,\n setElementCandidatesBabelTypes,\n} from \"./transform-litsx-element-candidates.js\";\nimport {\n prepareComponentRender,\n setRenderBodyBabelTypes,\n} from \"./transform-litsx-render-body.js\";\nimport {\n finalizeProgram,\n setProgramBabelTypes,\n} from \"./transform-litsx-program.js\";\n\nlet t;\n\nfunction isCapitalizedComponentName(name) {\n if (typeof name !== \"string\" || name.length === 0) {\n return false;\n }\n\n const first = name[0];\n return first === first.toUpperCase() && first !== first.toLowerCase();\n}\n\nexport function createTransformFunctionToClassPlugin(defaultPluginOptions = {}) {\n return function transformFunctionToClassPlugin(_api, pluginOptions = {}) {\n ensureTypescriptModule();\n t = _api.types;\n setPropertyBabelTypes(t);\n setStaticHoistsBabelTypes(t);\n setHandlersBabelTypes(t);\n setWrapperUtilsBabelTypes(t);\n setRefsBabelTypes(t);\n setClassGenerationBabelTypes(t);\n setParamRewriteBabelTypes(t);\n setRendererCallsBabelTypes(t);\n setElementCandidatesBabelTypes(t);\n setRenderBodyBabelTypes(t);\n setProgramBabelTypes(t);\n const resolvedPluginOptions = {\n ...defaultPluginOptions,\n ...pluginOptions,\n };\n\n const getWrapperMetadata =\n typeof resolvedPluginOptions.getWrapperMetadata === \"function\"\n ? resolvedPluginOptions.getWrapperMetadata\n : null;\n\n return {\n name: \"transform-function-to-class\",\n inherits: jsxSyntaxPlugin.default || jsxSyntaxPlugin,\n pre() {\n this.__litsxTransformCount = 0;\n this.__litsxNeedsCss = false;\n this.__litsxNeedsUnsafeCss = false;\n this.__litsxNeedsStaticHoistsMixin = false;\n this.__litsxNeedsLightDomMixin = false;\n this.__litsxNeedsCallbackRef = false;\n this.__litsxNeedsRendererCallImport = false;\n this.__litsxWarnings = [];\n this.__litsxResolvedPluginOptions = resolvedPluginOptions;\n this.__litsxTypeResolver = fileLikelyNeedsTypeResolver(this)\n ? createTypeResolver(\n this.file?.opts?.filename,\n this.file?.code,\n resolvedPluginOptions\n )\n : undefined;\n },\n post() {\n if (!this.file) return;\n this.file.metadata ||= {};\n this.file.metadata.litsxWarnings = this.__litsxWarnings || [];\n },\n visitor: {\n Program: {\n exit(programPath) {\n finalizeProgram(programPath, this);\n },\n },\n ExportNamedDeclaration(exportPath) {\n handlePotentialComponentExport({\n exportPath,\n state: this,\n transformFunction,\n isInsideFunctionOrClass,\n updateTransformState,\n getWrapperMetadata,\n });\n },\n ExportDefaultDeclaration(exportPath) {\n handlePotentialComponentExport({\n exportPath,\n state: this,\n isDefault: true,\n transformFunction,\n isInsideFunctionOrClass,\n updateTransformState,\n getWrapperMetadata,\n });\n },\n VariableDeclarator(varPath) {\n if (\n varPath.findParent(\n (p) => p.isExportNamedDeclaration?.() || p.isExportDefaultDeclaration?.()\n )\n ) {\n return;\n }\n\n const initPath = varPath.get(\"init\");\n\n if (\n maybeTransformWrappedVariableDeclarator({\n varPath,\n resolvedPluginOptions,\n state: this,\n transformFunction,\n updateTransformState,\n getWrapperMetadata,\n })\n ) {\n return;\n }\n\n if (\n initPath &&\n initPath.isArrowFunctionExpression() &&\n !isInsideFunctionOrClass(varPath) &&\n t.isIdentifier(varPath.node.id) &&\n isCapitalizedComponentName(varPath.node.id.name)\n ) {\n const programPath = varPath.findParent((p) => p.isProgram());\n const classNode = transformFunction(\n initPath,\n programPath,\n varPath.node.id.name,\n {\n ...resolvedPluginOptions,\n state: this,\n typeResolver: getTypeResolverForFunction(initPath, this),\n warn: (warning) => {\n this.__litsxWarnings.push(warning);\n },\n }\n );\n\n if (!classNode) return;\n\n const declarationPath = varPath.parentPath;\n if (!declarationPath.isVariableDeclaration()) return;\n\n varPath.scope.removeBinding(varPath.node.id.name);\n declarationPath.replaceWith(classNode);\n declarationPath.requeue();\n updateTransformState(this, classNode);\n }\n },\n FunctionDeclaration(funcPath) {\n if (\n !funcPath.parentPath?.isExportNamedDeclaration?.() &&\n !funcPath.parentPath?.isExportDefaultDeclaration?.() &&\n !isInsideFunctionOrClass(funcPath) &&\n funcPath.node.id &&\n isCapitalizedComponentName(funcPath.node.id.name)\n ) {\n const programPath = funcPath.findParent((p) => p.isProgram());\n const classNode = transformFunction(\n funcPath,\n programPath,\n undefined,\n {\n ...resolvedPluginOptions,\n state: this,\n typeResolver: getTypeResolverForFunction(funcPath, this),\n warn: (warning) => {\n this.__litsxWarnings.push(warning);\n },\n }\n );\n\n if (!classNode) return;\n\n if (funcPath.node.id) {\n funcPath.scope.removeBinding(funcPath.node.id.name);\n }\n funcPath.replaceWith(classNode);\n funcPath.requeue();\n updateTransformState(this, classNode);\n }\n },\n },\n };\n };\n}\n\nexport default createTransformFunctionToClassPlugin();\nexport { isCapitalizedComponentName };\n\nfunction getOrCreateModuleStaticHoistSymbol(programPath, hoistName) {\n let symbolMap = programPath.getData(\"__litsxStaticHoistSymbols\");\n if (!symbolMap) {\n symbolMap = new Map();\n programPath.setData(\"__litsxStaticHoistSymbols\", symbolMap);\n }\n\n if (symbolMap.has(hoistName)) {\n return symbolMap.get(hoistName);\n }\n\n const symbolId = programPath.scope.generateUidIdentifier(`litsx_static_${hoistName}`);\n const declaration = t.variableDeclaration(\"const\", [\n t.variableDeclarator(\n symbolId,\n t.callExpression(t.identifier(\"Symbol\"), [t.stringLiteral(`litsx.static.${hoistName}`)])\n ),\n ]);\n\n const entry = { symbolId, declaration };\n symbolMap.set(hoistName, entry);\n return entry;\n}\n\n\nfunction updateTransformState(state, classNode) {\n if (!state || !classNode) {\n return;\n }\n\n state.__litsxTransformCount = (state.__litsxTransformCount || 0) + 1;\n state.__litsxNeedsCss ||= Boolean(classNode._needsCss);\n state.__litsxNeedsUnsafeCss ||= Boolean(classNode._needsUnsafeCss);\n state.__litsxNeedsStaticHoistsMixin ||= Boolean(\n classNode._needsStaticHoistsMixin\n );\n state.__litsxNeedsLightDomMixin ||= Boolean(\n classNode._needsLightDomMixin\n );\n state.__litsxNeedsCallbackRef ||= Boolean(\n classNode._needsCallbackRef\n );\n}\n\n// Verifica si el nodo está dentro de otra función o clase\nfunction isInsideFunctionOrClass(path) {\n return path.findParent(\n (p) => p.isFunctionDeclaration() || p.isFunctionExpression() || p.isArrowFunctionExpression() || p.isClassDeclaration()\n );\n}\n\nfunction getOrCreateTypeResolver(state) {\n if (state.__litsxTypeResolver !== undefined) {\n return state.__litsxTypeResolver;\n }\n\n state.__litsxTypeResolver = createTypeResolver(\n state.file?.opts?.filename,\n state.file?.code,\n state.__litsxResolvedPluginOptions\n );\n return state.__litsxTypeResolver;\n}\n\nfunction fileLikelyNeedsTypeResolver(state) {\n const filename = state?.file?.opts?.filename || \"\";\n if (/\\.(?:[cm]?ts|tsx)$/i.test(filename)) {\n return true;\n }\n\n const source = state?.file?.code || \"\";\n return /\\b(?:type|interface|enum)\\b/.test(source);\n}\n\nfunction functionNeedsTypeResolver(functionPath, state) {\n const params = functionPath.get(\"params\");\n if (!Array.isArray(params) || params.length === 0) {\n return false;\n }\n\n if (fileLikelyNeedsTypeResolver(state)) {\n return true;\n }\n\n return params.some((paramPath) => containsTypeResolutionSyntax(paramPath));\n}\n\nfunction containsTypeResolutionSyntax(path) {\n if (!path?.node) {\n return false;\n }\n\n if (\n path.isIdentifier?.() ||\n path.isObjectPattern?.() ||\n path.isArrayPattern?.() ||\n path.isAssignmentPattern?.()\n ) {\n if (path.node.typeAnnotation) {\n return true;\n }\n }\n\n if (path.isAssignmentPattern?.()) {\n return containsTypeResolutionSyntax(path.get(\"left\"));\n }\n\n if (path.isObjectPattern?.()) {\n return path.get(\"properties\").some((propertyPath) => {\n if (propertyPath.isRestElement()) {\n return containsTypeResolutionSyntax(propertyPath.get(\"argument\"));\n }\n if (propertyPath.isObjectProperty()) {\n return containsTypeResolutionSyntax(propertyPath.get(\"value\"));\n }\n return false;\n });\n }\n\n if (path.isArrayPattern?.()) {\n return path.get(\"elements\").some((elementPath) => {\n if (!elementPath?.node) return false;\n return containsTypeResolutionSyntax(elementPath);\n });\n }\n\n return false;\n}\n\nfunction getTypeResolverForFunction(functionPath, state) {\n if (!functionNeedsTypeResolver(functionPath, state)) {\n return null;\n }\n\n return getOrCreateTypeResolver(state);\n}\n\nfunction transformFunction(functionPath, programPath, className, options = {}) {\n const { node } = functionPath;\n const elementCandidates = getAnnotatedElementCandidates(functionPath, programPath, options);\n const importedElementCandidates = getAnnotatedImportedElementCandidates(functionPath, programPath, options);\n let resolvedName = className;\n if (!resolvedName && node && node.id && t.isIdentifier(node.id)) {\n resolvedName = node.id.name;\n }\n if (!resolvedName) {\n resolvedName = \"AnonymousComponent\";\n }\n\n className = resolvedName;\n\n const {\n properties: propertiesStatic,\n propertyNames,\n bindings,\n defaults,\n nestedInitializers,\n } = extractProperties(\n functionPath,\n programPath,\n options\n );\n\n assertStaticHoistsStayTopLevel(functionPath);\n collectNativeClassNameWarnings(functionPath, options.warn, options);\n\n const renderPreparation = prepareComponentRender(\n functionPath,\n node,\n propertyNames,\n bindings,\n nestedInitializers,\n options\n );\n\n if (!renderPreparation?.returnStatement) return;\n\n const {\n needsCallbackRef,\n prefixStatements,\n } = renderPreparation;\n\n const usedNames = new Set([\n ...Object.keys(functionPath.scope.bindings || {}),\n \"render\",\n \"properties\",\n \"constructor\",\n ]);\n\n const handlerInfos = processHandlers(functionPath, usedNames);\n const renderStatements = t.isBlockStatement(node.body)\n ? [...node.body.body]\n : [t.returnStatement(node.body)];\n\n if (prefixStatements.length > 0) {\n renderStatements.unshift(...prefixStatements);\n }\n\n const classMembers = [];\n\n const {\n lightDomRequested,\n hoistMembers,\n hoistSymbolDeclarations,\n needsStaticHoistsMixin,\n needsCss,\n needsUnsafeCss,\n } = processStaticHoists({\n functionPath,\n node,\n renderStatements,\n programPath,\n propertiesStatic,\n classMembers,\n options,\n getOrCreateModuleStaticHoistSymbol,\n });\n\n buildClassMembers({\n classMembers,\n defaults,\n renderStatements,\n handlerInfos,\n createHandlerClassMember,\n });\n\n const classNode = createComponentClass({\n className,\n classMembers,\n hoistMembers,\n hoistSymbolDeclarations,\n needsStaticHoistsMixin,\n lightDomRequested,\n needsCss,\n needsUnsafeCss,\n needsCallbackRef,\n });\n\n if (classNode && elementCandidates.size) {\n classNode._litsxElementCandidates &&= new Set(classNode._litsxElementCandidates);\n const elementSet = classNode._litsxElementCandidates ||= new Set();\n elementCandidates.forEach((candidate) => elementSet.add(candidate));\n }\n\n if (classNode && importedElementCandidates.length > 0) {\n classNode._litsxImportedElementCandidates ||= [];\n importedElementCandidates.forEach((candidate) => {\n if (!classNode._litsxImportedElementCandidates.some(\n (entry) =>\n entry.sourceFile === candidate.sourceFile &&\n entry.importedName === candidate.importedName &&\n entry.tagName === candidate.tagName\n )) {\n classNode._litsxImportedElementCandidates.push(candidate);\n }\n });\n }\n\n return classNode;\n}\n\nfunction ensureClassIdentifier(classNode, fallbackName) {\n if (classNode.id && t.isIdentifier(classNode.id)) {\n return classNode.id;\n }\n\n const safeName =\n typeof fallbackName === \"string\" && fallbackName\n ? fallbackName\n : \"AnonymousComponent\";\n const identifier = t.identifier(safeName);\n classNode.id = identifier;\n return identifier;\n}\n"],"names":["t","createPropertyConfig","createPropertyValue","mergePropertyConfig","isCapitalizedComponentName","createThisMemberExpression","ensureTypescriptModule","setPropertyBabelTypes","setElementCandidatesBabelTypes","createTypeResolver","getAnnotatedElementCandidates","getAnnotatedImportedElementCandidates","extractProperties"],"mappings":"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"}