{"version":3,"file":"keycloakify-angular-email-tailwindcss-preset-email-css-processor.mjs","sources":["../../../projects/angular-email/tailwindcss-preset-email/css-processor/css-processor.ts","../../../projects/angular-email/tailwindcss-preset-email/css-processor/keycloakify-angular-email-tailwindcss-preset-email-css-processor.ts"],"sourcesContent":["import tailwindcss from '@tailwindcss/postcss';\nimport postcss from 'postcss';\nimport calc from 'postcss-calc';\nimport properties from 'postcss-custom-properties';\nimport logical, { type DirectionFlow } from 'postcss-logical';\nimport preset from 'postcss-preset-env';\n\nexport const cssProcessor = async (style: string, html: string) => {\n  try {\n    const inlineSafelist = html\n      ? Array.from(\n          new Set(\n            (html.match(/class=[\"']([^\"']+)[\"']/g) ?? [])\n              .flatMap((m) =>\n                m\n                  .replace(/^class=[\"']|[\"']$/g, '')\n                  .trim()\n                  .split(/\\s+/),\n              )\n              .filter(Boolean),\n          ),\n        )\n          .slice(0, 5000) // safety cap\n          .map((c) => c.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"'))\n          .join(' ')\n      : '';\n    const styleWithSources = inlineSafelist.length > 0 ? `@source inline(\"${inlineSafelist}\");\\n${style}` : style;\n    const result = await postcss(\n      tailwindcss({ base: '' }),\n      properties({ preserve: false }),\n      calc({ preserve: false }),\n      {\n        postcssPlugin: 'inline-tw-vars-from-layer',\n        Once(root) {\n          const defaultVars = new Map<string, string>();\n\n          // 1. Find the default variables in @layer properties\n          root.walkAtRules('layer', (layerRule) => {\n            if (layerRule.params === 'properties') {\n              layerRule.walkDecls(/^--tw-/, (decl) => {\n                defaultVars.set(decl.prop, decl.value);\n              });\n            }\n          });\n\n          // 2. Walk all rules and replace var() usages\n          root.walkDecls((decl) => {\n            decl.value = decl.value.replace(/var\\((--tw-[^,)]+)\\)/g, (match, varName) => {\n              return defaultVars.has(varName) ? defaultVars.get(varName)! : match;\n            });\n          });\n        },\n      },\n      {\n        postcssPlugin: 'remove-unused-tw-vars',\n        Once(root) {\n          root.walkDecls(/^--tw-/, (decl) => {\n            decl.remove();\n          });\n          root.walkAtRules('property', (atRule) => {\n            if (atRule.params.startsWith('--tw-')) {\n              atRule.remove();\n            }\n          });\n          root.walkAtRules('layer', (atRule) => {\n            if (atRule.params === 'properties') {\n              atRule.remove();\n            }\n          });\n        },\n      },\n      logical({\n        blockDirection: 'top-to-bottom' as DirectionFlow,\n        inlineDirection: 'left-to-right' as DirectionFlow,\n      }),\n      preset({\n        stage: 4,\n        minimumVendorImplementations: 3,\n        logical: {\n          blockDirection: 'top-to-bottom' as DirectionFlow,\n          inlineDirection: 'left-to-right' as DirectionFlow,\n        },\n      }),\n    ).process(styleWithSources, { map: false, from: undefined });\n    return result.css;\n  } catch (error) {\n    console.error('CSS processing failed:', error);\n    throw new Error(`Failed to process CSS: ${error instanceof Error ? error.message : 'Unknown error'}`);\n  }\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}