@pure-ds/core 0.7.48 → 0.7.50
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.
- package/dist/types/pds.d.ts +7 -5
- package/dist/types/public/assets/pds/components/pds-toaster.d.ts +4 -1
- package/dist/types/public/assets/pds/components/pds-toaster.d.ts.map +1 -1
- package/dist/types/src/js/common/toast.d.ts +9 -0
- package/dist/types/src/js/common/toast.d.ts.map +1 -1
- package/package.json +1 -1
- package/public/assets/js/app.js +2131 -5
- package/public/assets/js/app.js.map +7 -0
- package/public/assets/js/lit.js +1031 -3
- package/public/assets/js/lit.js.map +7 -0
- package/public/assets/js/pds-ask.js +464 -9
- package/public/assets/js/pds-ask.js.map +7 -0
- package/public/assets/js/pds-autocomplete.js +639 -7
- package/public/assets/js/pds-autocomplete.js.map +7 -0
- package/public/assets/js/pds-enhancers.js +1471 -1
- package/public/assets/js/pds-enhancers.js.map +7 -0
- package/public/assets/js/pds-manager.js +17568 -3384
- package/public/assets/js/pds-manager.js.map +7 -0
- package/public/assets/js/pds-toast.js +30 -1
- package/public/assets/js/pds-toast.js.map +7 -0
- package/public/assets/js/pds.js +1969 -2
- package/public/assets/js/pds.js.map +7 -0
- package/public/assets/pds/components/pds-toaster.js +25 -7
- package/public/assets/pds/core/pds-ask.js +464 -9
- package/public/assets/pds/core/pds-autocomplete.js +639 -7
- package/public/assets/pds/core/pds-enhancers.js +1471 -1
- package/public/assets/pds/core/pds-manager.js +17568 -3384
- package/public/assets/pds/core/pds-toast.js +30 -1
- package/public/assets/pds/core.js +1969 -2
- package/public/assets/pds/external/lit.js +1031 -3
- package/src/js/common/toast.js +8 -0
- package/src/js/pds-core/pds-generator.js +1 -1
- package/src/js/pds.d.ts +7 -5
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/js/pds-singleton.js", "../../../src/js/pds-core/pds-registry.js", "../../../src/js/pds-core/pds-runtime.js", "../../../src/js/pds-core/pds-enums.js", "../../../src/js/common/common.js", "../../../src/js/pds-core/pds-paths.js", "../../../node_modules/pure-web/src/js/auto-definer.js", "../../../src/js/pds-core/pds-start-helpers.js", "../../../src/js/pds-core/pds-theme-utils.js", "../../../src/js/common/pds-log.js", "../../../src/js/pds.js", "../../../pds.config.js", "../../../package.json", "../../../src/js/app.js"],
|
|
4
|
+
"sourcesContent": ["export class PDSBase extends EventTarget {\r\n constructor() {\r\n super();\r\n /** @type {'live' | 'static' | null} */\r\n this.mode = null;\r\n /** @type {Record<string, any> | null} */\r\n this.compiled = null;\r\n /** @type {(level: 'log' | 'warn' | 'error' | 'debug' | 'info', message?: any, ...data: any[]) => void} */\r\n this.log = () => {};\r\n /** @type {((level: 'log' | 'warn' | 'error' | 'debug' | 'info', message?: any, ...data: any[]) => void) | null} */\r\n this.logHandler = null;\r\n }\r\n}\r\n\r\nexport const PDS_SINGLETON_KEY = \"__PURE_DS_PDS_SINGLETON__\";\r\n\r\nconst globalScope = typeof globalThis !== \"undefined\" ? globalThis : window;\r\nconst existingPDS = globalScope?.[PDS_SINGLETON_KEY];\r\n\r\nexport const PDS =\r\n existingPDS && typeof existingPDS.addEventListener === \"function\"\r\n ? existingPDS\r\n : new PDSBase();\r\n\r\nif (globalScope) {\r\n globalScope[PDS_SINGLETON_KEY] = PDS;\r\n}\r\n\r\nif (typeof PDS.log !== \"function\") {\r\n PDS.log = (level = \"log\", message, ...data) => {\r\n if (typeof console === \"undefined\") return;\r\n const method =\r\n typeof console[level] === \"function\"\r\n ? console[level].bind(console)\r\n : typeof console.log === \"function\"\r\n ? console.log.bind(console)\r\n : null;\r\n if (!method) return;\r\n if (data.length > 0) {\r\n method(message, ...data);\r\n } else {\r\n method(message);\r\n }\r\n };\r\n}\r\n\r\nif (typeof PDS.logHandler !== \"function\") {\r\n PDS.logHandler = null;\r\n}\r\n", "\n// ============================================================================\n// PDS REGISTRY - Global mode manager for live vs static mode\n// ============================================================================\n\nimport { PDS } from \"../pds-singleton.js\";\n\nclass PDSRegistry {\n constructor() {\n this._mode = \"static\"; // Default to static mode\n this._staticPaths = {\n tokens: \"/assets/pds/styles/pds-tokens.css.js\",\n primitives: \"/assets/pds/styles/pds-primitives.css.js\",\n components: \"/assets/pds/styles/pds-components.css.js\",\n utilities: \"/assets/pds/styles/pds-utilities.css.js\",\n styles: \"/assets/pds/styles/pds-styles.css.js\",\n };\n }\n\n /**\n * Switch to live mode\n */\n setLiveMode() {\n this._mode = \"live\";\n }\n\n /**\n * Switch to static mode with custom paths\n * Called by consumers who want to use static CSS files\n */\n setStaticMode(paths = {}) {\n this._mode = \"static\";\n this._staticPaths = { ...this._staticPaths, ...paths };\n }\n\n /**\n * Get stylesheet for adoption in shadow DOM\n * Returns CSSStyleSheet object (constructable stylesheet)\n */\n async getStylesheet(layer) {\n if (this._mode === \"live\") {\n // In live mode, stylesheets should be retrieved from Generator.instance\n // If we are here, it means adoptLayers fell back or something is wrong\n return null;\n } else {\n // Import from static path\n try {\n const module = await import(/* @vite-ignore */ this._staticPaths[layer]);\n return module[layer]; // Return exported stylesheet\n } catch (error) {\n // Route through centralized logger fallback behavior\n PDS.log(\"error\", `Registry: failed to load static ${layer}:`, error);\n PDS.log(\"error\", `Registry: looking for ${this._staticPaths[layer]}`);\n PDS.log(\"error\", \"Registry: make sure you've run 'npm run pds:build' and configured PDS.start() with the correct static.root path\");\n // Return empty stylesheet as fallback\n const fallback = new CSSStyleSheet();\n fallback.replaceSync(\"/* Failed to load \" + layer + \" */\");\n return fallback;\n }\n }\n }\n\n /**\n * Get current mode\n */\n get mode() {\n return this._mode;\n }\n\n /**\n * Check if in live mode\n */\n get isLive() {\n return this._mode === \"live\";\n }\n}\n\n// Export singleton instance\nexport const registry = new PDSRegistry();\n", "/**\r\n * Runtime helpers for applying and adopting PDS styles in live and static modes.\r\n * These functions are intentionally separated from the Generator to keep the\r\n * generator bundle lean and optional.\r\n */\r\nimport { registry as pdsRegistry } from \"./pds-registry.js\";\r\nimport { PDS } from \"../pds-singleton.js\";\r\n\r\n/**\r\n * Install runtime styles for PDS using constructable stylesheets when\r\n * available, otherwise update a single <style id=\"pds-runtime-stylesheet\">.\r\n * This approach reduces flicker and avoids link/blob swapping.\r\n */\r\nexport function installRuntimeStyles(cssText) {\r\n try {\r\n if (typeof document === \"undefined\") return; // server-side guard\r\n\r\n // Preferred: constructable stylesheet (fast, atomic)\r\n if (\r\n typeof CSSStyleSheet !== \"undefined\" &&\r\n \"adoptedStyleSheets\" in Document.prototype\r\n ) {\r\n const sheet = new CSSStyleSheet();\r\n // replaceSync is synchronous and atomic for the stylesheet\r\n sheet.replaceSync(cssText);\r\n\r\n // Tag it so we can keep existing non-PDS sheets\r\n sheet._pds = true;\r\n\r\n const others = (document.adoptedStyleSheets || []).filter(\r\n (s) => s._pds !== true\r\n );\r\n document.adoptedStyleSheets = [...others, sheet];\r\n return;\r\n }\r\n\r\n // Fallback: single <style> element in the document head\r\n const styleId = \"pds-runtime-stylesheet\";\r\n let el = document.getElementById(styleId);\r\n if (!el) {\r\n el = document.createElement(\"style\");\r\n el.id = styleId;\r\n el.type = \"text/css\";\r\n const head = document.head || document.getElementsByTagName(\"head\")[0];\r\n if (head) head.appendChild(el);\r\n else document.documentElement.appendChild(el);\r\n }\r\n\r\n // Update the stylesheet content in place\r\n el.textContent = cssText;\r\n } catch (err) {\r\n PDS.log(\"warn\", \"installRuntimeStyles failed:\", err);\r\n }\r\n}\r\n\r\n/**\r\n * Apply generated styles to the current document.\r\n * @param {Generator} [generator] - Optional Generator instance (defaults to singleton)\r\n */\r\nexport function applyStyles(generator) {\r\n const target = generator;\r\n\r\n if (!target || typeof target !== \"object\") {\r\n PDS.log(\r\n \"error\",\r\n \"Runtime applyStyles requires an explicit generator instance in live mode\"\r\n );\r\n return;\r\n }\r\n\r\n // Preferred: apply layered CSS so tokens + primitives + components + utilities\r\n // are available in light DOM (ensures primitives like :where(button):active apply)\r\n const cssText = target.layeredCSS || target.css || \"\";\r\n if (!cssText) {\r\n target.options?.log?.(\r\n \"warn\",\r\n \"Runtime: no CSS available on generator to apply\"\r\n );\r\n return;\r\n }\r\n\r\n // Install/update runtime styles atomically to avoid flicker\r\n installRuntimeStyles(cssText);\r\n}\r\n\r\n// ============================================================================\r\n// PDS ADOPTER - Helper for web components\r\n// ============================================================================\r\n\r\n/**\r\n * Adopt primitives stylesheet into a shadow root.\r\n * This is the primary method components should use.\r\n *\r\n * @param {ShadowRoot} shadowRoot - The shadow root to adopt into\r\n * @param {CSSStyleSheet[]} additionalSheets - Additional component-specific stylesheets\r\n * @returns {Promise<void>}\r\n */\r\nexport async function adoptPrimitives(\r\n shadowRoot,\r\n additionalSheets = [],\r\n generator = null\r\n) {\r\n try {\r\n // Prefer live generator when provided\r\n const primitives = generator?.primitivesStylesheet\r\n ? generator.primitivesStylesheet\r\n : await pdsRegistry.getStylesheet(\"primitives\");\r\n\r\n // Adopt primitives + additional sheets\r\n shadowRoot.adoptedStyleSheets = [primitives, ...additionalSheets];\r\n } catch (error) {\r\n const componentName = shadowRoot.host?.tagName?.toLowerCase() || \"unknown\";\r\n PDS.log(\r\n \"error\",\r\n `Adopter: <${componentName}> failed to adopt primitives:`,\r\n error\r\n );\r\n // Continue with just additional sheets as fallback\r\n shadowRoot.adoptedStyleSheets = additionalSheets;\r\n }\r\n}\r\n\r\n/**\r\n * Adopt multiple layers into a shadow root.\r\n * For complex components that need more than just primitives.\r\n *\r\n * @param {ShadowRoot} shadowRoot - The shadow root to adopt into\r\n * @param {string[]} layers - Array of layer names to adopt (e.g., ['tokens', 'primitives', 'components'])\r\n * @param {CSSStyleSheet[]} additionalSheets - Additional component-specific stylesheets\r\n * @returns {Promise<void>}\r\n */\r\nexport async function adoptLayers(\r\n shadowRoot,\r\n layers = [\"primitives\"],\r\n additionalSheets = [],\r\n generator = null\r\n) {\r\n const safeAdditionalSheets = Array.isArray(additionalSheets)\r\n ? additionalSheets.filter(Boolean)\r\n : [];\r\n\r\n // Apply component-local sheets immediately so lazy-loaded components avoid\r\n // transient UA default styling while shared layers are resolving.\r\n if (safeAdditionalSheets.length) {\r\n const existing = Array.isArray(shadowRoot.adoptedStyleSheets)\r\n ? shadowRoot.adoptedStyleSheets\r\n : [];\r\n const nonAdditional = existing.filter(\r\n (sheet) => !safeAdditionalSheets.includes(sheet)\r\n );\r\n shadowRoot.adoptedStyleSheets = [...nonAdditional, ...safeAdditionalSheets];\r\n }\r\n\r\n try {\r\n // Get all requested stylesheets\r\n const stylesheets = await Promise.all(\r\n layers.map(async (layer) => {\r\n if (generator) {\r\n switch (layer) {\r\n case \"tokens\":\r\n return generator.tokensStylesheet;\r\n case \"primitives\":\r\n return generator.primitivesStylesheet;\r\n case \"components\":\r\n return generator.componentsStylesheet;\r\n case \"utilities\":\r\n return generator.utilitiesStylesheet;\r\n default:\r\n break;\r\n }\r\n }\r\n return pdsRegistry.getStylesheet(layer);\r\n })\r\n );\r\n\r\n // Filter out any null results\r\n const validStylesheets = stylesheets.filter((sheet) => sheet !== null);\r\n\r\n // Adopt all layers + additional sheets\r\n shadowRoot.adoptedStyleSheets = [...validStylesheets, ...safeAdditionalSheets];\r\n } catch (error) {\r\n const componentName = shadowRoot.host?.tagName?.toLowerCase() || \"unknown\";\r\n PDS.log(\r\n \"error\",\r\n `Adopter: <${componentName}> failed to adopt layers:`,\r\n error\r\n );\r\n // Continue with just additional sheets as fallback\r\n shadowRoot.adoptedStyleSheets = safeAdditionalSheets;\r\n }\r\n}\r\n\r\n/**\r\n * Create a component-specific stylesheet from CSS string.\r\n * Helper to create constructable stylesheets.\r\n *\r\n * @param {string} css - CSS string\r\n * @returns {CSSStyleSheet}\r\n */\r\nexport function createStylesheet(css) {\r\n const sheet = new CSSStyleSheet();\r\n sheet.replaceSync(css);\r\n return sheet;\r\n}\r\n", "// Static enums for design system values\nexport const enums = {\n FontWeights: {\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n LineHeights: {\n tight: 1.25,\n normal: 1.5,\n relaxed: 1.75,\n },\n\n BorderWidths: {\n hairline: 0.5,\n thin: 1,\n medium: 2,\n thick: 3,\n },\n\n RadiusSizes: {\n none: 0,\n small: 4,\n medium: 8,\n large: 16,\n xlarge: 24,\n xxlarge: 32\n },\n\n ShadowDepths: {\n none: \"none\",\n light: \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n medium:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n deep: \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n extreme: \"0 25px 50px -12px rgba(0, 0, 0, 0.25)\",\n },\n TransitionSpeeds: {\n fast: 150,\n normal: 250,\n slow: 350,\n },\n\n AnimationEasings: {\n linear: \"linear\",\n ease: \"ease\",\n \"ease-in\": \"ease-in\",\n \"ease-out\": \"ease-out\",\n \"ease-in-out\": \"ease-in-out\",\n bounce: \"cubic-bezier(0.68, -0.55, 0.265, 1.55)\",\n },\n TouchTargetSizes: {\n compact: 36,\n standard: 44, // iOS/Android accessibility standard\n comfortable: 48,\n spacious: 56,\n },\n\n LinkStyles: {\n inline: \"inline\", // Normal inline text links\n block: \"block\", // Block-level links\n button: \"button\", // Button-like links (flex with touch target)\n },\n\n FocusStyles: {\n ring: \"ring\", // Box-shadow ring (default)\n outline: \"outline\", // Browser outline\n border: \"border\", // Border change\n glow: \"glow\", // Subtle glow effect\n },\n\n TabSizes: {\n compact: 2,\n standard: 4,\n wide: 8,\n },\n\n SelectIcons: {\n chevron: \"chevron\", // Standard chevron down\n arrow: \"arrow\", // Simple arrow\n caret: \"caret\", // Triangle caret\n none: \"none\", // No icon\n },\n IconSizes: {\n xs: 16,\n sm: 20,\n md: 24,\n lg: 32,\n xl: 48,\n \"2xl\": 64,\n \"3xl\": 96,\n },\n};\n", "export function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item);\n}\n\nexport function deepMerge(target, source) {\n const output = { ...target };\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach(key => {\n if (isObject(source[key])) {\n if (!(key in target))\n Object.assign(output, { [key]: source[key] });\n else\n output[key] = deepMerge(target[key], source[key]);\n } else {\n Object.assign(output, { [key]: source[key] });\n }\n });\n }\n return output;\n }\n\n/**\n * Build a DocumentFragment from a template-like object (strings + values)\n * @param {{strings: string[], values: unknown[]}} templateLike\n * @returns {DocumentFragment}\n */\nexport function fragmentFromTemplateLike(templateLike) {\n const strings = Array.isArray(templateLike?.strings) ? templateLike.strings : [];\n const values = Array.isArray(templateLike?.values) ? templateLike.values : [];\n const consumedValues = new Set();\n const htmlParts = [];\n\n const propBindingPattern = /(\\s)(\\.[\\w-]+)=\\s*$/;\n\n for (let i = 0; i < strings.length; i += 1) {\n let chunk = strings[i] ?? \"\";\n const match = chunk.match(propBindingPattern);\n\n if (match && i < values.length) {\n const propToken = match[2];\n const propName = propToken.slice(1);\n const marker = `pds-val-${i}`;\n chunk = chunk.replace(\n propBindingPattern,\n `$1data-pds-prop=\"${propName}:${marker}\"`\n );\n consumedValues.add(i);\n }\n\n htmlParts.push(chunk);\n\n if (i < values.length && !consumedValues.has(i)) {\n htmlParts.push(`<!--pds-val-${i}-->`);\n }\n }\n\n const tpl = document.createElement(\"template\");\n tpl.innerHTML = htmlParts.join(\"\");\n\n const replaceValueAtMarker = (markerNode, value) => {\n const parent = markerNode.parentNode;\n if (!parent) return;\n\n if (value == null) {\n parent.removeChild(markerNode);\n return;\n }\n\n const insertValue = (val) => {\n if (val == null) return;\n if (val instanceof Node) {\n parent.insertBefore(val, markerNode);\n return;\n }\n if (Array.isArray(val)) {\n val.forEach((item) => insertValue(item));\n return;\n }\n parent.insertBefore(document.createTextNode(String(val)), markerNode);\n };\n\n insertValue(value);\n parent.removeChild(markerNode);\n };\n\n const walker = document.createTreeWalker(tpl.content, NodeFilter.SHOW_COMMENT);\n const markers = [];\n while (walker.nextNode()) {\n const node = walker.currentNode;\n if (node?.nodeValue?.startsWith(\"pds-val-\")) {\n markers.push(node);\n }\n }\n\n markers.forEach((node) => {\n const index = Number(node.nodeValue.replace(\"pds-val-\", \"\"));\n replaceValueAtMarker(node, values[index]);\n });\n\n const elements = tpl.content.querySelectorAll(\"*\");\n elements.forEach((el) => {\n const propAttr = el.getAttribute(\"data-pds-prop\");\n if (!propAttr) return;\n const [propName, markerValue] = propAttr.split(\":\");\n const index = Number(String(markerValue).replace(\"pds-val-\", \"\"));\n if (propName && Number.isInteger(index)) {\n el[propName] = values[index];\n }\n el.removeAttribute(\"data-pds-prop\");\n });\n\n return tpl.content;\n}\n\n/**\n * Parses an HTML string into a NodeList\n * @param {String} html\n * @returns {NodeListOf<ChildNode>}\n */\nexport function parseHTML(html) {\n return new DOMParser().parseFromString(html, \"text/html\").body.childNodes;\n}", "const DEFAULT_SEGMENT = \"pds\";\nconst URL_PATTERN = /^([a-z][a-z0-9+\\-.]*:)?\\/\\//i;\nconst DRIVE_PATTERN = /^[a-z]:/i;\n\nfunction ensureTrailingSlash(value = \"\") {\n return value.endsWith(\"/\") ? value : `${value}/`;\n}\n\nfunction appendSegmentIfMissing(input = \"\", segment = DEFAULT_SEGMENT) {\n const trimmed = input.replace(/\\/+$/, \"\");\n const regex = new RegExp(`(?:^|\\/)${segment}$`, \"i\");\n if (regex.test(trimmed)) {\n return trimmed;\n }\n return `${trimmed}/${segment}`;\n}\n\nfunction stripLeadingDotSlash(value) {\n return value.replace(/^\\.\\/+/, \"\");\n}\n\nfunction stripDriveLetter(value) {\n if (DRIVE_PATTERN.test(value)) {\n return value.replace(DRIVE_PATTERN, \"\").replace(/^\\/+/, \"\");\n }\n return value;\n}\n\nfunction stripPublicPrefix(value) {\n if (value.startsWith(\"public/\")) {\n return value.substring(\"public/\".length);\n }\n return value;\n}\n\n/**\n * Resolve the public asset root URL for PDS static assets based on the consumer config.\n * Falls back to \"/assets/pds/\" when no root is provided. Automatically appends the\n * \"pds\" segment when the provided root omits it.\n *\n * @param {object} config - Unified PDS configuration.\n * @param {{ defaultRoot?: string, segment?: string }} [options]\n * @returns {string} Normalized URL (always ends with a trailing slash).\n */\nexport function resolvePublicAssetURL(config, options = {}) {\n const segment = options.segment || DEFAULT_SEGMENT;\n const defaultRoot = options.defaultRoot || `/assets/${segment}/`;\n const candidate =\n (config?.public && config.public?.root) ||\n (config?.static && config.static?.root) ||\n null;\n\n if (!candidate || typeof candidate !== \"string\") {\n return ensureTrailingSlash(defaultRoot);\n }\n\n let normalized = candidate.trim();\n if (!normalized) {\n return ensureTrailingSlash(defaultRoot);\n }\n\n normalized = normalized.replace(/\\\\/g, \"/\");\n normalized = appendSegmentIfMissing(normalized, segment);\n normalized = ensureTrailingSlash(normalized);\n\n if (URL_PATTERN.test(normalized)) {\n return normalized;\n }\n\n normalized = stripLeadingDotSlash(normalized);\n normalized = stripDriveLetter(normalized);\n\n if (normalized.startsWith(\"/\")) {\n return ensureTrailingSlash(normalized);\n }\n\n normalized = stripPublicPrefix(normalized);\n\n if (!normalized.startsWith(\"/\")) {\n normalized = `/${normalized}`;\n }\n\n normalized = normalized.replace(/\\/+/g, (match, offset) =>\n offset === 0 ? match : \"/\"\n );\n\n return ensureTrailingSlash(normalized);\n}\n\n/**\n * Extract the raw public root candidate from config for reuse in Node-side helpers.\n * @param {object} config\n * @returns {string|null}\n */\nexport function getPublicRootCandidate(config) {\n if (config?.public?.root) return config.public.root;\n if (config?.static?.root) return config.static.root;\n return null;\n}\n\nexport const __internal = {\n ensureTrailingSlash,\n appendSegmentIfMissing,\n stripLeadingDotSlash,\n stripDriveLetter,\n stripPublicPrefix,\n URL_PATTERN,\n DEFAULT_SEGMENT,\n};\n", "/**\r\n * Dynamically load and (idempotently) define a set of web components by tag name.\r\n */\r\nasync function defineWebComponents(...args) {\r\n let opts = {};\r\n if (args.length && typeof args[args.length - 1] === \"object\") {\r\n opts = args.pop() || {};\r\n }\r\n const tags = args;\r\n\r\n const {\r\n baseURL,\r\n mapper = (tag) => `${tag}.js`,\r\n onError = (tag, err) => console.error(`[defineWebComponents] ${tag}:`, err),\r\n } = opts;\r\n\r\n const base = baseURL\r\n ? new URL(\r\n baseURL,\r\n typeof location !== \"undefined\" ? location.href : import.meta.url\r\n )\r\n : new URL(\"./\", import.meta.url);\r\n\r\n const toPascal = (tag) =>\r\n tag.toLowerCase().replace(/(^|-)([a-z])/g, (_, __, c) => c.toUpperCase());\r\n\r\n const loadOne = async (tag) => {\r\n try {\r\n if (customElements.get(tag)) return { tag, status: \"already-defined\" };\r\n\r\n // Allow mapper to return either a string (path) or a URL instance\r\n const spec = mapper(tag);\r\n const href = spec instanceof URL ? spec.href : new URL(spec, base).href;\r\n const mod = await import(href);\r\n const Named = mod?.default ?? mod?.[toPascal(tag)];\r\n\r\n if (!Named) {\r\n if (customElements.get(tag)) return { tag, status: \"self-defined\" };\r\n throw new Error(\r\n `No export found for ${tag}. Expected default export or named export \"${toPascal(\r\n tag\r\n )}\".`\r\n );\r\n }\r\n\r\n if (!customElements.get(tag)) {\r\n customElements.define(tag, Named);\r\n return { tag, status: \"defined\" };\r\n }\r\n return { tag, status: \"race-already-defined\" };\r\n } catch (err) {\r\n onError(tag, err);\r\n throw err;\r\n }\r\n };\r\n\r\n return Promise.all(tags.map(loadOne));\r\n}\r\n\r\n/**\r\n * Auto-definer that also works inside open Shadow DOM.\r\n * Automatically defines unknown custom elements (tags with a dash)\r\n * and attach progressive enhancers to given selectors.\r\n *\r\n * Options:\r\n * baseURL: string | URL\r\n * mapper: (tag) => string\r\n * onError: (tag, err) => void\r\n * predicate: (tag, el) => boolean\r\n * attributeModule: string = \"data-module\"\r\n * root: Node = document\r\n * scanExisting: boolean = true\r\n * debounceMs: number = 16\r\n * observeShadows: boolean = true\r\n * enhancers: Array<{selector: string, run: (elem: Element) => void}> = []\r\n * patchAttachShadow: boolean = true\r\n * mapper: (tag) => string | URL\r\n *\r\n * Returns: { stop(): void, flush(): Promise<void> }\r\n */\r\nexport class AutoDefiner {\r\n constructor(options = {}) {\r\n const {\r\n baseURL,\r\n mapper,\r\n onError,\r\n predicate = () => true,\r\n attributeModule = \"data-module\",\r\n root = document,\r\n scanExisting = true,\r\n debounceMs = 16,\r\n observeShadows = true,\r\n enhancers = [], // [{String selector, Function run(elem)}]\r\n patchAttachShadow = true,\r\n } = options;\r\n\r\n const pending = new Set(); // tags queued for definition\r\n const inFlight = new Set(); // tags currently importing\r\n const knownMissing = new Set(); // tags that failed before\r\n const perTagModulePath = new Map(); // tag -> explicit module path (from data-module)\r\n const shadowObservers = new WeakMap(); // ShadowRoot -> MutationObserver\r\n const enhancerApplied = new WeakMap(); // element -> Set of applied enhancer selectors\r\n let timer = 0;\r\n let stopped = false;\r\n let restoreAttachShadow = null;\r\n\r\n const applyEnhancers = (element) => {\r\n // Skip if no enhancers provided\r\n if (!element || !enhancers.length) return;\r\n\r\n // Get or create the set of applied enhancers for this element\r\n let appliedEnhancers = enhancerApplied.get(element);\r\n if (!appliedEnhancers) {\r\n appliedEnhancers = new Set();\r\n enhancerApplied.set(element, appliedEnhancers);\r\n }\r\n\r\n // Check each enhancer\r\n for (const enhancer of enhancers) {\r\n if (!enhancer.selector || !enhancer.run) continue;\r\n\r\n // Skip if this enhancer was already applied to this element\r\n if (appliedEnhancers.has(enhancer.selector)) continue;\r\n\r\n try {\r\n // Check if element matches the selector\r\n if (element.matches && element.matches(enhancer.selector)) {\r\n enhancer.run(element);\r\n // Mark this enhancer as applied to this element\r\n appliedEnhancers.add(enhancer.selector);\r\n }\r\n } catch (err) {\r\n console.warn(\r\n `[AutoDefiner] Error applying enhancer for selector \"${enhancer.selector}\":`,\r\n err\r\n );\r\n }\r\n }\r\n };\r\n\r\n const queueTag = (tag, el /* optional */) => {\r\n if (stopped) return;\r\n if (!tag || !tag.includes(\"-\")) return;\r\n if (customElements.get(tag)) return;\r\n if (inFlight.has(tag)) return;\r\n if (knownMissing.has(tag)) return;\r\n\r\n // Capture per-instance module override from the element itself (works in shadow DOM)\r\n if (el && el.getAttribute) {\r\n const override = el.getAttribute(attributeModule);\r\n if (override && !perTagModulePath.has(tag)) {\r\n perTagModulePath.set(tag, override);\r\n }\r\n }\r\n\r\n pending.add(tag);\r\n schedule();\r\n };\r\n\r\n const schedule = () => {\r\n if (timer) return;\r\n timer = setTimeout(flush, debounceMs);\r\n };\r\n\r\n const crawlTree = (rootNode) => {\r\n // rootNode can be Document, Element, ShadowRoot\r\n if (!rootNode) return;\r\n\r\n // Process the root node if it's an element\r\n if (rootNode.nodeType === 1) {\r\n const el = /** @type {Element} */ (rootNode);\r\n const tag = el.tagName?.toLowerCase();\r\n if (\r\n tag &&\r\n tag.includes(\"-\") &&\r\n !customElements.get(tag) &&\r\n predicate(tag, el)\r\n ) {\r\n queueTag(tag, el);\r\n }\r\n\r\n // Apply enhancers to this element\r\n applyEnhancers(el);\r\n\r\n // Observe/open shadow roots we encounter\r\n if (observeShadows && el.shadowRoot) {\r\n observeShadowRoot(el.shadowRoot);\r\n }\r\n }\r\n\r\n // Process all descendant elements (but not the root node again)\r\n if (rootNode.querySelectorAll) {\r\n rootNode.querySelectorAll(\"*\").forEach((e) => {\r\n const t = e.tagName?.toLowerCase();\r\n if (\r\n t &&\r\n t.includes(\"-\") &&\r\n !customElements.get(t) &&\r\n predicate(t, e)\r\n ) {\r\n queueTag(t, e);\r\n }\r\n\r\n // Apply enhancers to descendant elements\r\n applyEnhancers(e);\r\n\r\n if (observeShadows && e.shadowRoot) {\r\n observeShadowRoot(e.shadowRoot);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const observeShadowRoot = (sr) => {\r\n if (!sr || shadowObservers.has(sr)) return;\r\n // Initial scan inside this shadow\r\n crawlTree(sr);\r\n\r\n const mo = new MutationObserver((mutations) => {\r\n for (const m of mutations) {\r\n m.addedNodes?.forEach((n) => {\r\n crawlTree(n);\r\n });\r\n if (m.type === \"attributes\" && m.target) {\r\n crawlTree(m.target);\r\n }\r\n }\r\n });\r\n mo.observe(sr, {\r\n childList: true,\r\n subtree: true,\r\n attributes: true,\r\n attributeFilter: [\r\n attributeModule,\r\n ...enhancers\r\n .map((e) => e.selector)\r\n .filter((s) => s.startsWith(\"data-\")),\r\n ],\r\n });\r\n shadowObservers.set(sr, mo);\r\n };\r\n\r\n async function flush() {\r\n clearTimeout(timer);\r\n timer = 0;\r\n if (!pending.size) return;\r\n\r\n const tags = Array.from(pending);\r\n pending.clear();\r\n tags.forEach((t) => inFlight.add(t));\r\n\r\n try {\r\n const effectiveMapper = (tag) =>\r\n perTagModulePath.get(tag) ?? (mapper ? mapper(tag) : `${tag}.js`);\r\n\r\n await defineWebComponents(...tags, {\r\n baseURL,\r\n mapper: effectiveMapper,\r\n onError: (tag, err) => {\r\n knownMissing.add(tag);\r\n onError?.(tag, err);\r\n },\r\n });\r\n } catch {\r\n // errors per tag recorded via onError\r\n } finally {\r\n tags.forEach((t) => inFlight.delete(t));\r\n }\r\n }\r\n\r\n // Root observer (document or provided root)\r\n const mountNode = root === document ? document.documentElement : root;\r\n const obs = new MutationObserver((mutations) => {\r\n for (const m of mutations) {\r\n m.addedNodes?.forEach((n) => {\r\n crawlTree(n);\r\n });\r\n if (m.type === \"attributes\" && m.target) {\r\n crawlTree(m.target);\r\n }\r\n }\r\n });\r\n obs.observe(mountNode, {\r\n childList: true,\r\n subtree: true,\r\n attributes: true,\r\n attributeFilter: [\r\n attributeModule,\r\n ...enhancers\r\n .map((e) => e.selector)\r\n .filter((s) => s.startsWith(\"data-\")),\r\n ],\r\n });\r\n\r\n // Patch attachShadow to auto-observe newly created open shadows\r\n if (observeShadows && patchAttachShadow && Element.prototype.attachShadow) {\r\n const orig = Element.prototype.attachShadow;\r\n Element.prototype.attachShadow = function patchedAttachShadow(init) {\r\n const sr = orig.call(this, init);\r\n if (init && init.mode === \"open\") {\r\n observeShadowRoot(sr);\r\n // queue potential unknown host tag too\r\n const tag = this.tagName?.toLowerCase();\r\n if (tag && tag.includes(\"-\") && !customElements.get(tag)) {\r\n queueTag(tag, this);\r\n }\r\n }\r\n return sr;\r\n };\r\n restoreAttachShadow = () => (Element.prototype.attachShadow = orig);\r\n }\r\n\r\n // Initial scan\r\n if (scanExisting) {\r\n crawlTree(mountNode);\r\n }\r\n\r\n return {\r\n stop() {\r\n stopped = true;\r\n obs.disconnect();\r\n if (restoreAttachShadow) restoreAttachShadow();\r\n if (timer) {\r\n clearTimeout(timer);\r\n timer = 0;\r\n }\r\n // Disconnect all shadow observers\r\n shadowObservers.forEach((mo) => mo.disconnect());\r\n },\r\n flush,\r\n };\r\n }\r\n\r\n /**\r\n * Dynamically load and (idempotently) define a set of web components by tag name.\r\n */\r\n static async define(...args) {\r\n let opts = {};\r\n if (args.length && typeof args[args.length - 1] === \"object\") {\r\n opts = args.pop() || {};\r\n }\r\n const tags = args;\r\n\r\n const {\r\n baseURL,\r\n mapper = (tag) => `${tag}.js`,\r\n onError = (tag, err) =>\r\n console.error(`[defineWebComponents] ${tag}:`, err),\r\n } = opts;\r\n\r\n const base = baseURL\r\n ? new URL(\r\n baseURL,\r\n typeof location !== \"undefined\" ? location.href : import.meta.url\r\n )\r\n : new URL(\"./\", import.meta.url);\r\n\r\n const toPascal = (tag) =>\r\n tag.toLowerCase().replace(/(^|-)([a-z])/g, (_, __, c) => c.toUpperCase());\r\n\r\n const loadOne = async (tag) => {\r\n try {\r\n if (customElements.get(tag)) return { tag, status: \"already-defined\" };\r\n\r\n // Allow mapper to return either a string (path) or a URL instance\r\n const spec = mapper(tag);\r\n const href = spec instanceof URL ? spec.href : new URL(spec, base).href;\r\n const mod = await import(href);\r\n const Named = mod?.default ?? mod?.[toPascal(tag)];\r\n\r\n if (!Named) {\r\n if (customElements.get(tag)) return { tag, status: \"self-defined\" };\r\n throw new Error(\r\n `No export found for ${tag}. Expected default export or named export \"${toPascal(\r\n tag\r\n )}\".`\r\n );\r\n }\r\n\r\n if (!customElements.get(tag)) {\r\n customElements.define(tag, Named);\r\n return { tag, status: \"defined\" };\r\n }\r\n return { tag, status: \"race-already-defined\" };\r\n } catch (err) {\r\n onError(tag, err);\r\n throw err;\r\n }\r\n };\r\n\r\n return Promise.all(tags.map(loadOne));\r\n }\r\n}\r\n", "/**\r\n * Shared initialization helpers for static and live startup.\r\n * Kept separate to avoid pulling live-only logic into the base runtime bundle.\r\n */\r\n\r\nimport { AutoDefiner as CoreAutoDefiner } from \"pure-web/auto-definer\";\r\nimport { PDS } from \"../pds-singleton.js\";\r\n\r\nconst __ABSOLUTE_URL_PATTERN__ = /^[a-z][a-z0-9+\\-.]*:\\/\\//i;\r\nconst __MODULE_URL__ = (() => {\r\n try {\r\n return import.meta.url;\r\n } catch (e) {\r\n return undefined;\r\n }\r\n})();\r\n\r\nexport const ensureTrailingSlash = (value) =>\r\n typeof value === \"string\" && value.length && !value.endsWith(\"/\")\r\n ? `${value}/`\r\n : value;\r\n\r\nexport function ensureAbsoluteAssetURL(value, options = {}) {\r\n if (!value || __ABSOLUTE_URL_PATTERN__.test(value)) {\r\n return value;\r\n }\r\n\r\n const { preferModule = true } = options;\r\n\r\n const tryModule = () => {\r\n if (!__MODULE_URL__) return null;\r\n try {\r\n return new URL(value, __MODULE_URL__).href;\r\n } catch (e) {\r\n return null;\r\n }\r\n };\r\n\r\n const tryWindow = () => {\r\n if (typeof window === \"undefined\" || !window.location?.origin) {\r\n return null;\r\n }\r\n try {\r\n return new URL(value, window.location.origin).href;\r\n } catch (e) {\r\n return null;\r\n }\r\n };\r\n\r\n const resolved = preferModule\r\n ? tryModule() || tryWindow()\r\n : tryWindow() || tryModule();\r\n\r\n return resolved || value;\r\n}\r\n\r\nconst __MODULE_DEFAULT_ASSET_ROOT__ = (() => {\r\n if (!__MODULE_URL__) return undefined;\r\n try {\r\n const parsed = new URL(__MODULE_URL__);\r\n if (/\\/public\\/assets\\/js\\//.test(parsed.pathname)) {\r\n return new URL(\"../pds/\", __MODULE_URL__).href;\r\n }\r\n } catch (e) {\r\n return undefined;\r\n }\r\n return undefined;\r\n})();\r\n\r\nlet __foucListenerAttached = false;\r\n\r\nexport function attachFoucListener(PDS) {\r\n if (__foucListenerAttached || typeof document === \"undefined\") return;\r\n __foucListenerAttached = true;\r\n PDS.addEventListener(\"pds:ready\", (event) => {\r\n const mode = event.detail?.mode;\r\n if (mode) {\r\n document.documentElement.classList.add(`pds-${mode}`, \"pds-ready\");\r\n }\r\n });\r\n}\r\n\r\n// Internal: deep merge utility (arrays replace; objects merge)\r\nfunction __deepMerge(target = {}, source = {}) {\r\n if (!source || typeof source !== \"object\") return target;\r\n const out = Array.isArray(target) ? [...target] : { ...target };\r\n for (const [key, value] of Object.entries(source)) {\r\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\r\n out[key] = __deepMerge(\r\n out[key] && typeof out[key] === \"object\" ? out[key] : {},\r\n value\r\n );\r\n } else {\r\n out[key] = value;\r\n }\r\n }\r\n return out;\r\n}\r\n\r\n// Internal: create a slug for matching names like \"Paper & Ink\" -> \"paper-and-ink\"\r\nfunction __slugify(str = \"\") {\r\n return String(str)\r\n .toLowerCase()\r\n .replace(/&/g, \" and \")\r\n .replace(/[^a-z0-9]+/g, \"-\")\r\n .replace(/^-+|-+$/g, \"\");\r\n}\r\n\r\n// Internal: recursively remove functions from an object to make it cloneable\r\nexport function stripFunctions(obj) {\r\n if (obj === null || obj === undefined) return obj;\r\n if (typeof obj === \"function\") return undefined;\r\n if (typeof obj !== \"object\") return obj;\r\n\r\n if (Array.isArray(obj)) {\r\n return obj.map((item) => stripFunctions(item)).filter((item) => item !== undefined);\r\n }\r\n\r\n const result = {};\r\n for (const key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n const value = obj[key];\r\n if (typeof value !== \"function\") {\r\n const stripped = stripFunctions(value);\r\n if (stripped !== undefined) {\r\n result[key] = stripped;\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nfunction cloneWithoutFunctions(value) {\r\n const cloneCandidate = stripFunctions(value);\r\n if (typeof structuredClone === \"function\") {\r\n return structuredClone(cloneCandidate);\r\n }\r\n return JSON.parse(JSON.stringify(cloneCandidate));\r\n}\r\n\r\n// Internal: normalize first-arg config to a full generator config and extract enhancers if provided inline\r\nexport function normalizeInitConfig(\r\n inputConfig = {},\r\n options = {},\r\n { presets, defaultLog, validateDesignConfig, validateInitConfig } = {}\r\n) {\r\n const logFn =\r\n inputConfig && typeof inputConfig.log === \"function\"\r\n ? inputConfig.log\r\n : defaultLog;\r\n\r\n // If caller passed a plain design config (legacy), keep as-is\r\n const hasDesignKeys =\r\n typeof inputConfig === \"object\" &&\r\n (\"colors\" in inputConfig ||\r\n \"typography\" in inputConfig ||\r\n \"spatialRhythm\" in inputConfig ||\r\n \"shape\" in inputConfig ||\r\n \"behavior\" in inputConfig ||\r\n \"layout\" in inputConfig ||\r\n \"advanced\" in inputConfig ||\r\n \"a11y\" in inputConfig ||\r\n \"components\" in inputConfig ||\r\n \"icons\" in inputConfig);\r\n\r\n // Extract potential inline enhancers from config; prefer inline over options\r\n let inlineEnhancers = inputConfig && inputConfig.enhancers;\r\n if (inlineEnhancers && !Array.isArray(inlineEnhancers)) {\r\n // If an object was provided, convert to array of values\r\n inlineEnhancers = Object.values(inlineEnhancers);\r\n }\r\n const enhancers = inlineEnhancers ?? options.enhancers ?? [];\r\n\r\n // New API: { preset?: string, design?: object }\r\n const presetId = inputConfig && inputConfig.preset;\r\n const designOverrides = inputConfig && inputConfig.design;\r\n const iconOverrides =\r\n inputConfig &&\r\n inputConfig.icons &&\r\n typeof inputConfig.icons === \"object\"\r\n ? inputConfig.icons\r\n : null;\r\n\r\n const hasNewShape =\r\n \"preset\" in (inputConfig || {}) ||\r\n \"design\" in (inputConfig || {}) ||\r\n \"enhancers\" in (inputConfig || {});\r\n\r\n if (inputConfig && typeof inputConfig === \"object\" && typeof validateInitConfig === \"function\") {\r\n validateInitConfig(inputConfig, { log: logFn, context: \"PDS.start\" });\r\n }\r\n\r\n let generatorConfig;\r\n let presetInfo = null;\r\n\r\n if (hasNewShape) {\r\n if (\r\n designOverrides &&\r\n typeof designOverrides === \"object\" &&\r\n typeof validateDesignConfig === \"function\"\r\n ) {\r\n validateDesignConfig(designOverrides, { log: logFn, context: \"PDS.start\" });\r\n }\r\n // Always resolve a preset; default if none provided\r\n const effectivePreset = String(presetId || \"default\").toLowerCase();\r\n const found =\r\n presets?.[effectivePreset] ||\r\n Object.values(presets || {}).find(\r\n (p) =>\r\n __slugify(p.name) === effectivePreset ||\r\n String(p.name || \"\").toLowerCase() === effectivePreset\r\n );\r\n if (!found)\r\n throw new Error(`PDS preset not found: \"${presetId || \"default\"}\"`);\r\n\r\n presetInfo = {\r\n id: found.id || __slugify(found.name),\r\n name: found.name || found.id || String(effectivePreset),\r\n };\r\n\r\n // Merge preset with design overrides\r\n let mergedDesign = cloneWithoutFunctions(found);\r\n if (\r\n (designOverrides && typeof designOverrides === \"object\") ||\r\n iconOverrides\r\n ) {\r\n // Strip functions before cloning to avoid DataCloneError\r\n const cloneableDesign = designOverrides\r\n ? stripFunctions(designOverrides)\r\n : {};\r\n const cloneableIcons = iconOverrides\r\n ? stripFunctions(iconOverrides)\r\n : null;\r\n const mergedOverrides = cloneableIcons\r\n ? __deepMerge(cloneableDesign, { icons: cloneableIcons })\r\n : cloneableDesign;\r\n mergedDesign = __deepMerge(mergedDesign, cloneWithoutFunctions(mergedOverrides));\r\n }\r\n\r\n // Build structured config with design nested\r\n // Exclude runtime-specific properties that shouldn't be passed to Generator\r\n const {\r\n mode, autoDefine, applyGlobalStyles, manageTheme,\r\n themeStorageKey, preloadStyles, criticalLayers,\r\n managerURL, manager,\r\n localization,\r\n preset: _preset, design: _design, enhancers: _enhancers,\r\n log: userLog,\r\n ...otherProps\r\n } = inputConfig;\r\n\r\n generatorConfig = {\r\n ...otherProps,\r\n design: mergedDesign,\r\n preset: presetInfo.name,\r\n log: userLog || defaultLog,\r\n };\r\n } else if (hasDesignKeys) {\r\n if (typeof validateDesignConfig === \"function\") {\r\n validateDesignConfig(inputConfig, { log: logFn, context: \"PDS.start\" });\r\n }\r\n // Back-compat: treat the provided object as the full design, wrap it\r\n const { log: userLog, ...designConfig } = inputConfig;\r\n generatorConfig = {\r\n design: cloneWithoutFunctions(designConfig),\r\n log: userLog || defaultLog,\r\n };\r\n } else {\r\n // Nothing recognizable: use default preset\r\n const foundDefault =\r\n presets?.[\"default\"] ||\r\n Object.values(presets || {}).find((p) => __slugify(p.name) === \"default\");\r\n if (!foundDefault) throw new Error(\"PDS default preset not available\");\r\n presetInfo = {\r\n id: foundDefault.id || \"default\",\r\n name: foundDefault.name || \"Default\",\r\n };\r\n generatorConfig = {\r\n design: cloneWithoutFunctions(foundDefault),\r\n preset: presetInfo.name,\r\n log: defaultLog,\r\n };\r\n }\r\n\r\n return { generatorConfig, enhancers, presetInfo };\r\n}\r\n\r\n// Internal: resolve theme and set html[data-theme], return resolvedTheme and storedTheme\r\nexport function resolveThemeAndApply({ manageTheme, themeStorageKey, applyResolvedTheme, setupSystemListenerIfNeeded }) {\r\n let resolvedTheme = \"light\";\r\n let storedTheme = null;\r\n if (manageTheme && typeof window !== \"undefined\") {\r\n // Read raw preference (may be null, 'system', 'light', 'dark') using provided storage key\r\n try {\r\n storedTheme = localStorage.getItem(themeStorageKey) || null;\r\n } catch (e) {\r\n storedTheme = null;\r\n }\r\n\r\n // Apply the resolved theme and ensure system listener exists when needed\r\n try {\r\n applyResolvedTheme?.(storedTheme);\r\n setupSystemListenerIfNeeded?.(storedTheme);\r\n } catch (e) {}\r\n\r\n // Compute explicit resolvedTheme to return\r\n if (storedTheme) {\r\n if (storedTheme === \"system\") {\r\n const prefersDark =\r\n window.matchMedia &&\r\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\r\n resolvedTheme = prefersDark ? \"dark\" : \"light\";\r\n } else {\r\n resolvedTheme = storedTheme;\r\n }\r\n } else {\r\n const prefersDark =\r\n window.matchMedia &&\r\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\r\n resolvedTheme = prefersDark ? \"dark\" : \"light\";\r\n }\r\n }\r\n return { resolvedTheme, storedTheme };\r\n}\r\n\r\nexport function resolveRuntimeAssetRoot(config, { resolvePublicAssetURL }) {\r\n const hasCustomRoot = Boolean(config?.public?.root || config?.static?.root);\r\n let candidate = resolvePublicAssetURL(config);\r\n\r\n if (!hasCustomRoot && __MODULE_DEFAULT_ASSET_ROOT__) {\r\n candidate = __MODULE_DEFAULT_ASSET_ROOT__;\r\n }\r\n\r\n return ensureTrailingSlash(ensureAbsoluteAssetURL(candidate));\r\n}\r\n\r\n// Internal: setup AutoDefiner and run enhancers\r\nexport async function setupAutoDefinerAndEnhancers(options, { baseEnhancers = [] } = {}) {\r\n const {\r\n autoDefineBaseURL = \"/auto-define/\",\r\n autoDefinePreload = [],\r\n autoDefineMapper = null,\r\n enhancers = [],\r\n autoDefineOverrides = null,\r\n autoDefinePreferModule = true,\r\n } = options;\r\n\r\n // Merge defaults with user enhancers (user overrides by selector)\r\n const mergedEnhancers = (() => {\r\n const map = new Map();\r\n (baseEnhancers || []).forEach((e) => map.set(e.selector, e));\r\n (enhancers || []).forEach((e) => map.set(e.selector, e));\r\n return Array.from(map.values());\r\n })();\r\n\r\n // Setup AutoDefiner in browser context (it already observes shadow DOMs)\r\n let autoDefiner = null;\r\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\r\n const AutoDefinerCtor = CoreAutoDefiner;\r\n\r\n const defaultMapper = (tag) => {\r\n switch (tag) {\r\n case \"pds-tabpanel\":\r\n return \"pds-tabstrip.js\";\r\n default:\r\n return `${tag}.js`;\r\n }\r\n };\r\n\r\n // Respect user overrides but never allow them to overwrite our mapper wrapper.\r\n // Also merge `autoDefine.enhancers` safely instead of allowing it to clobber\r\n // default enhancers (this previously caused silent loss of required/dropdown behavior).\r\n const {\r\n mapper: _overrideMapperIgnored,\r\n enhancers: overrideEnhancers,\r\n ...restAutoDefineOverrides\r\n } =\r\n autoDefineOverrides && typeof autoDefineOverrides === \"object\"\r\n ? autoDefineOverrides\r\n : {};\r\n\r\n const normalizedOverrideEnhancers = (() => {\r\n if (!overrideEnhancers) return [];\r\n if (Array.isArray(overrideEnhancers)) return overrideEnhancers;\r\n if (typeof overrideEnhancers === \"object\") {\r\n return Object.values(overrideEnhancers);\r\n }\r\n return [];\r\n })();\r\n\r\n const resolvedEnhancers = (() => {\r\n const map = new Map();\r\n (mergedEnhancers || []).forEach((enhancer) => {\r\n if (!enhancer?.selector) return;\r\n map.set(enhancer.selector, enhancer);\r\n });\r\n\r\n (normalizedOverrideEnhancers || []).forEach((enhancer) => {\r\n if (!enhancer?.selector) return;\r\n const existing = map.get(enhancer.selector) || null;\r\n map.set(enhancer.selector, {\r\n ...(existing || {}),\r\n ...enhancer,\r\n run:\r\n typeof enhancer?.run === \"function\"\r\n ? enhancer.run\r\n : existing?.run,\r\n });\r\n });\r\n\r\n return Array.from(map.values());\r\n })();\r\n\r\n const normalizedBaseURL = autoDefineBaseURL\r\n ? ensureTrailingSlash(\r\n ensureAbsoluteAssetURL(autoDefineBaseURL, {\r\n preferModule: autoDefinePreferModule,\r\n })\r\n )\r\n : autoDefineBaseURL;\r\n\r\n const autoDefineConfig = {\r\n baseURL: normalizedBaseURL,\r\n predefine: autoDefinePreload,\r\n scanExisting: true,\r\n observeShadows: true,\r\n patchAttachShadow: true,\r\n debounceMs: 16,\r\n enhancers: resolvedEnhancers,\r\n onError: (tag, err) => {\r\n if (typeof tag === \"string\" && tag.startsWith(\"pds-\")) {\r\n const litDependentComponents = [\"pds-form\", \"pds-drawer\"];\r\n const isLitComponent = litDependentComponents.includes(tag);\r\n const isMissingLitError = err?.message?.includes(\"#pds/lit\") ||\r\n err?.message?.includes(\"Failed to resolve module specifier\");\r\n\r\n if (isLitComponent && isMissingLitError) {\r\n PDS.log(\r\n \"error\",\r\n `\u274C PDS component <${tag}> requires Lit but #pds/lit is not in import map.\r\n See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`\r\n );\r\n } else {\r\n PDS.log(\r\n \"warn\",\r\n `\u26A0\uFE0F PDS component <${tag}> not found. Assets may not be installed.`\r\n );\r\n }\r\n } else {\r\n PDS.log(\"error\", `\u274C Auto-define error for <${tag}>:`, err);\r\n }\r\n },\r\n // Apply all user overrides except mapper so we can still wrap it\r\n ...restAutoDefineOverrides,\r\n mapper: (tag) => {\r\n // If already defined, do nothing\r\n if (customElements.get(tag)) return null;\r\n\r\n // If a custom mapper exists, let it try first; if it returns a non-value, fallback to default\r\n if (typeof autoDefineMapper === \"function\") {\r\n try {\r\n const mapped = autoDefineMapper(tag);\r\n if (mapped === undefined) {\r\n return defaultMapper(tag);\r\n }\r\n return mapped;\r\n } catch (e) {\r\n PDS.log(\r\n \"warn\",\r\n \"Custom autoDefine.mapper error; falling back to default:\",\r\n e?.message || e\r\n );\r\n return defaultMapper(tag);\r\n }\r\n }\r\n\r\n // No custom mapper provided \u2014 use default\r\n return defaultMapper(tag);\r\n },\r\n };\r\n\r\n autoDefiner = new AutoDefinerCtor(autoDefineConfig);\r\n if (\r\n autoDefinePreload.length > 0 &&\r\n typeof AutoDefinerCtor.define === \"function\"\r\n ) {\r\n await AutoDefinerCtor.define(...autoDefinePreload, {\r\n baseURL: autoDefineBaseURL,\r\n mapper: autoDefineConfig.mapper,\r\n onError: autoDefineConfig.onError,\r\n });\r\n }\r\n }\r\n\r\n return { autoDefiner, mergedEnhancers };\r\n}\r\n", "const DEFAULT_THEMES = [\"light\", \"dark\"];\r\nconst VALID_THEMES = new Set(DEFAULT_THEMES);\r\n\r\nexport function normalizePresetThemes(preset) {\r\n const themes = Array.isArray(preset?.themes)\r\n ? preset.themes.map((theme) => String(theme).toLowerCase())\r\n : DEFAULT_THEMES;\r\n const normalized = themes.filter((theme) => VALID_THEMES.has(theme));\r\n return normalized.length ? normalized : DEFAULT_THEMES;\r\n}\r\n\r\nexport function resolveThemePreference(preference, { preferDocument = true } = {}) {\r\n const normalized = String(preference || \"\").toLowerCase();\r\n if (VALID_THEMES.has(normalized)) return normalized;\r\n\r\n if (preferDocument && typeof document !== \"undefined\") {\r\n const applied = document.documentElement?.getAttribute(\"data-theme\");\r\n if (VALID_THEMES.has(applied)) return applied;\r\n }\r\n\r\n if (typeof window !== \"undefined\" && window.matchMedia) {\r\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\r\n return prefersDark ? \"dark\" : \"light\";\r\n }\r\n\r\n return \"light\";\r\n}\r\n\r\nexport function isPresetThemeCompatible(preset, themePreference) {\r\n const resolvedTheme = resolveThemePreference(themePreference);\r\n const themes = normalizePresetThemes(preset);\r\n return themes.includes(resolvedTheme);\r\n}\r\n", "const __SUPPORTED_LOG_LEVELS = new Set([\"log\", \"warn\", \"error\", \"debug\", \"info\"]);\r\nconst __PDS_SINGLETON_KEY = \"__PURE_DS_PDS_SINGLETON__\";\r\n\r\nlet __logProvider = null;\r\nlet __contextProvider = null;\r\n\r\nfunction __resolveGlobalPDS() {\r\n try {\r\n const scope = typeof globalThis !== \"undefined\" ? globalThis : window;\r\n const candidate = scope?.[__PDS_SINGLETON_KEY];\r\n if (candidate && typeof candidate === \"object\") {\r\n return candidate;\r\n }\r\n } catch (error) {\r\n return null;\r\n }\r\n return null;\r\n}\r\n\r\nfunction __normalizeContext(context) {\r\n if (!context || typeof context !== \"object\") {\r\n return null;\r\n }\r\n return {\r\n mode: context.mode === \"live\" || context.mode === \"static\" ? context.mode : null,\r\n debug: context.debug === true,\r\n thisArg: context.thisArg,\r\n };\r\n}\r\n\r\nfunction __normalizeLevel(level) {\r\n if (typeof level !== \"string\") return \"log\";\r\n const normalized = level.toLowerCase();\r\n return __SUPPORTED_LOG_LEVELS.has(normalized) ? normalized : \"log\";\r\n}\r\n\r\nfunction __resolveContext() {\r\n if (typeof __contextProvider === \"function\") {\r\n try {\r\n const configuredContext = __normalizeContext(__contextProvider());\r\n if (configuredContext) {\r\n return configuredContext;\r\n }\r\n } catch (error) {}\r\n }\r\n\r\n const globalPDS = __resolveGlobalPDS();\r\n if (globalPDS) {\r\n const mode =\r\n globalPDS?.mode ||\r\n globalPDS?.compiled?.mode ||\r\n (globalPDS?.registry?.isLive ? \"live\" : \"static\");\r\n const debug =\r\n (globalPDS?.debug ||\r\n globalPDS?.currentConfig?.debug ||\r\n globalPDS?.currentConfig?.design?.debug ||\r\n globalPDS?.compiled?.debug ||\r\n globalPDS?.compiled?.design?.debug ||\r\n false) === true;\r\n return {\r\n mode,\r\n debug,\r\n thisArg: globalPDS,\r\n };\r\n }\r\n\r\n return { mode: null, debug: false };\r\n}\r\n\r\nfunction __resolveLogger() {\r\n if (typeof __logProvider === \"function\") {\r\n try {\r\n const logger = __logProvider();\r\n if (typeof logger === \"function\") {\r\n return logger;\r\n }\r\n } catch (error) {}\r\n }\r\n\r\n const globalPDS = __resolveGlobalPDS();\r\n if (typeof globalPDS?.logHandler === \"function\") {\r\n return globalPDS.logHandler;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction __consoleLog(level, message, ...data) {\r\n if (typeof console === \"undefined\") return;\r\n const method =\r\n typeof console[level] === \"function\"\r\n ? console[level].bind(console)\r\n : typeof console.log === \"function\"\r\n ? console.log.bind(console)\r\n : null;\r\n if (!method) return;\r\n\r\n if (data.length > 0) {\r\n method(message, ...data);\r\n } else {\r\n method(message);\r\n }\r\n}\r\n\r\nfunction __shouldUseConsoleFallback(level, context) {\r\n const debugEnabled = context?.debug === true;\r\n const staticMode = context?.mode === \"static\";\r\n\r\n if (staticMode && !debugEnabled) {\r\n return false;\r\n }\r\n\r\n if (!debugEnabled && level !== \"error\" && level !== \"warn\") {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport function configurePDSLogger({ getLogger, getContext } = {}) {\r\n __logProvider = typeof getLogger === \"function\" ? getLogger : null;\r\n __contextProvider = typeof getContext === \"function\" ? getContext : null;\r\n}\r\n\r\nexport function pdsLog(level = \"log\", message, ...data) {\r\n const normalizedLevel = __normalizeLevel(level);\r\n const context = __resolveContext();\r\n const customLogger = __resolveLogger();\r\n\r\n if (customLogger) {\r\n try {\r\n customLogger.call(context?.thisArg, normalizedLevel, message, ...data);\r\n return;\r\n } catch (error) {\r\n __consoleLog(\"error\", \"Custom log handler failed:\", error);\r\n }\r\n }\r\n\r\n if (!__shouldUseConsoleFallback(normalizedLevel, context)) {\r\n return;\r\n }\r\n\r\n __consoleLog(normalizedLevel, message, ...data);\r\n}\r\n", "/// <reference path=\"./pds.d.ts\" />\n\n/**\n * Public PDS runtime object exported to consumers.\n *\n * This object exposes the core runtime building blocks for the Pure Design System.\n * It intentionally provides a small, stable surface area so consuming apps can:\n * - programmatically generate design system artifacts (via `getGenerator()` in live mode),\n * - adopt styles into Shadow DOM (via `adoptLayers` / `adoptPrimitives`),\n * - query runtime mode and obtain constructable stylesheets (via `registry`).\n *\n * Common events in the PDS ecosystem (emitted by other packages/components):\n * - `design-updated` \u2014 emitted by the designer component when the in-memory design changes (detail: { config }).\n * - `pds-generated` \u2014 emitted by the PDS configurator when generation completes (detail: { modules, meta }).\n * - `pds-error` \u2014 emitted by the PDS configurator when generation fails (detail: Error).\n *\n * Error handling notes:\n * - Methods that perform dynamic imports (e.g. `adoptLayers` via the registry) may log and return fallbacks\n * rather than throwing; consumers should check return values (e.g. null) and listen for `pds-error` in UI flows.\n * - `createStylesheet(css)` will throw synchronously if the provided CSS cannot be parsed by the browser's\n * `CSSStyleSheet.replaceSync()` \u2014 callers should guard invalid input or wrap calls in try/catch.\n *\n * @typedef {Object} PDSAPI\n * @property {import(\"./pds-core/pds-registry.js\").PDSRegistry} registry - Singleton runtime registry for live/static mode\n * @property {(generator?: import(\"./pds-core/pds-generator.js\").Generator) => void} applyStyles - Apply generated styles to the document (live-only)\n * @property {(shadowRoot: ShadowRoot, layers?: string[], additionalSheets?: CSSStyleSheet[]) => Promise<void>} adoptLayers - Adopt multiple layers into a ShadowRoot. May log errors and fallback to additionalSheets when static imports fail.\n * @property {(shadowRoot: ShadowRoot, additionalSheets?: CSSStyleSheet[]) => Promise<void>} adoptPrimitives - Adopt primitives layer into a ShadowRoot. Designed as a convenience for components.\n * @property {(css:string) => CSSStyleSheet} createStylesheet - Create a constructable stylesheet from CSS text. @throws {DOMException} on invalid CSS in some browsers.\n * @property {() => boolean} isLiveMode - Returns true when running in live/designer-backed mode\n * @property {() => Promise<typeof import(\"./pds-core/pds-generator.js\").Generator>} getGenerator - Live-only accessor for the Generator class\n * @property {(level: 'log'|'warn'|'error'|'debug'|'info', message?: any, ...data: any[]) => void} log - Unified logging entry point used by PDS internals and consumers\n */\nimport { PDS } from \"./pds-singleton.js\";\n\n// State properties\nif (typeof PDS.initializing !== \"boolean\") {\n PDS.initializing = false;\n}\nif (!(\"currentPreset\" in PDS)) {\n PDS.currentPreset = null;\n}\nif (typeof PDS.debug !== \"boolean\") {\n PDS.debug = false;\n}\nif (!(\"currentConfig\" in PDS)) {\n PDS.currentConfig = null;\n}\nif (!(\"compiled\" in PDS)) {\n PDS.compiled = null;\n}\nif (typeof PDS.logHandler !== \"function\") {\n PDS.logHandler = null;\n}\nif (!(\"mode\" in PDS)) {\n PDS.mode = null;\n}\n\nimport {\n adoptLayers,\n adoptPrimitives,\n createStylesheet,\n} from \"./pds-core/pds-runtime.js\";\nimport { registry } from \"./pds-core/pds-registry.js\";\nimport { enums } from \"./pds-core/pds-enums.js\";\nimport * as common from \"./common/common.js\";\nimport { resolvePublicAssetURL } from \"./pds-core/pds-paths.js\";\nimport {\n ensureAbsoluteAssetURL,\n ensureTrailingSlash,\n attachFoucListener,\n resolveRuntimeAssetRoot,\n resolveThemeAndApply,\n setupAutoDefinerAndEnhancers,\n} from \"./pds-core/pds-start-helpers.js\";\nimport {\n isPresetThemeCompatible,\n resolveThemePreference,\n} from \"./pds-core/pds-theme-utils.js\";\nimport { configurePDSLogger, pdsLog } from \"./common/pds-log.js\";\n\nlet __autoCompletePromise = null;\nlet __askPromise = null;\nlet __toastPromise = null;\nlet __defaultEnhancersPromise = null;\nlet __localizationPromise = null;\nlet __localizationRuntime = null;\n\nconst __LOCALIZATION_RUNTIME_SINGLETON_KEY__ = \"__pdsLocalizationRuntime\";\n\nfunction __getLocalizationRuntimeSync() {\n if (__localizationRuntime) {\n return __localizationRuntime;\n }\n\n const sharedRuntime = PDS?.[__LOCALIZATION_RUNTIME_SINGLETON_KEY__];\n if (sharedRuntime && typeof sharedRuntime === \"object\") {\n __localizationRuntime = sharedRuntime;\n return sharedRuntime;\n }\n\n return null;\n}\n\nfunction __setLocalizationRuntime(runtime) {\n const normalizedRuntime = runtime && typeof runtime === \"object\" ? runtime : null;\n __localizationRuntime = normalizedRuntime;\n PDS[__LOCALIZATION_RUNTIME_SINGLETON_KEY__] = normalizedRuntime;\n}\n\nconfigurePDSLogger({\n getLogger: () => (typeof PDS.logHandler === \"function\" ? PDS.logHandler : null),\n getContext: () => {\n const mode =\n PDS?.mode ||\n PDS?.compiled?.mode ||\n (PDS?.registry?.isLive ? \"live\" : \"static\");\n const debug =\n (PDS?.debug ||\n PDS?.currentConfig?.debug ||\n PDS?.currentConfig?.design?.debug ||\n PDS?.compiled?.debug ||\n PDS?.compiled?.design?.debug ||\n false) === true;\n return {\n mode,\n debug,\n thisArg: PDS,\n };\n },\n});\n\nPDS.log = (level = \"log\", message, ...data) => {\n pdsLog(level, message, ...data);\n};\n\nconst __fallbackLocalizationState = {\n locale: \"en\",\n messages: {},\n hasProvider: false,\n};\nconst __pendingLocalizationKeys = new Set();\n\nfunction __isStrTagged(template) {\n return (\n Boolean(template) &&\n typeof template !== \"string\" &&\n typeof template === \"object\" &&\n \"strTag\" in template\n );\n}\n\nfunction __collateStrings(strings = []) {\n let result = \"\";\n for (let index = 0; index <= strings.length - 1; index += 1) {\n result += strings[index];\n if (index < strings.length - 1) {\n result += `{${index}}`;\n }\n }\n return result;\n}\n\nfunction __replacePlaceholders(input, callback) {\n return String(input).replace(/\\{(\\d+)\\}/g, (_match, index) =>\n callback(Number(index))\n );\n}\n\nfunction __normalizeMessages(messages) {\n if (!messages || typeof messages !== \"object\") {\n return {};\n }\n\n const normalized = {};\n for (const [key, value] of Object.entries(messages)) {\n if (typeof value === \"string\") {\n normalized[key] = value;\n continue;\n }\n\n if (value && typeof value === \"object\" && typeof value.content === \"string\") {\n normalized[key] = value.content;\n }\n }\n return normalized;\n}\n\nfunction __fallbackStr(strings, ...values) {\n return {\n strTag: true,\n strings: Array.from(strings || []),\n values,\n raw: Array.from(strings?.raw || []),\n };\n}\n\nfunction __fallbackMsg(template) {\n if (!template) {\n return \"\";\n }\n\n if (__isStrTagged(template)) {\n const key = __collateStrings(template.strings || []);\n const translated = __fallbackLocalizationState.messages[key] || key;\n return __replacePlaceholders(translated, (index) => template.values?.[index]);\n }\n\n const key = String(template);\n return __fallbackLocalizationState.messages[key] || key;\n}\n\nfunction __queuePendingLocalizationKey(template) {\n if (!template) {\n return;\n }\n\n const key = __isStrTagged(template)\n ? __collateStrings(template.strings || [])\n : String(template);\n\n if (typeof key === \"string\" && key.length > 0) {\n __pendingLocalizationKeys.add(key);\n }\n}\n\nfunction __flushPendingLocalizationKeys(runtime) {\n if (\n !runtime ||\n typeof runtime.msg !== \"function\" ||\n __pendingLocalizationKeys.size === 0\n ) {\n return;\n }\n\n const pendingKeys = Array.from(__pendingLocalizationKeys);\n __pendingLocalizationKeys.clear();\n\n for (const key of pendingKeys) {\n try {\n runtime.msg(key);\n } catch {}\n }\n}\n\nasync function __loadLocalizationRuntime() {\n const runtime = __getLocalizationRuntimeSync();\n if (runtime) {\n return runtime;\n }\n\n if (!__localizationPromise) {\n const localizationModuleURL = __resolveExternalRuntimeModuleURL(\n \"pds-localization.js\"\n );\n\n __localizationPromise = import(/* @vite-ignore */ localizationModuleURL)\n .then((mod) => {\n if (\n typeof mod?.msg !== \"function\" ||\n typeof mod?.str !== \"function\" ||\n typeof mod?.configureLocalization !== \"function\" ||\n typeof mod?.loadLocale !== \"function\" ||\n typeof mod?.setLocale !== \"function\" ||\n typeof mod?.getLocalizationState !== \"function\"\n ) {\n throw new Error(\"Failed to load localization runtime exports\");\n }\n\n __setLocalizationRuntime(mod);\n __flushPendingLocalizationKeys(mod);\n return mod;\n })\n .catch((error) => {\n __localizationPromise = null;\n throw error;\n });\n }\n\n return __localizationPromise;\n}\n\nconst msg = (template, options = {}) => {\n const runtime = __getLocalizationRuntimeSync();\n if (typeof runtime?.msg === \"function\") {\n return runtime.msg(template, options);\n }\n __queuePendingLocalizationKey(template);\n return __fallbackMsg(template, options);\n};\n\nconst str = (strings, ...values) => {\n const runtime = __getLocalizationRuntimeSync();\n if (typeof runtime?.str === \"function\") {\n return runtime.str(strings, ...values);\n }\n return __fallbackStr(strings, ...values);\n};\n\nconst configureLocalization = (config = null) => {\n const runtime = __getLocalizationRuntimeSync();\n if (typeof runtime?.configureLocalization === \"function\") {\n return runtime.configureLocalization(config);\n }\n\n if (!config || typeof config !== \"object\") {\n __fallbackLocalizationState.locale = \"en\";\n __fallbackLocalizationState.messages = {};\n __fallbackLocalizationState.hasProvider = false;\n return {\n locale: __fallbackLocalizationState.locale,\n messages: { ...__fallbackLocalizationState.messages },\n hasProvider: __fallbackLocalizationState.hasProvider,\n };\n }\n\n if (typeof config.locale === \"string\" && config.locale.trim()) {\n __fallbackLocalizationState.locale = config.locale.trim();\n }\n\n if (Object.prototype.hasOwnProperty.call(config, \"messages\")) {\n __fallbackLocalizationState.messages = __normalizeMessages(config.messages);\n }\n\n const hasProvider = Boolean(\n config.provider ||\n config.translate ||\n config.loadLocale ||\n config.setLocale\n );\n __fallbackLocalizationState.hasProvider = hasProvider;\n\n if (hasProvider) {\n __loadLocalizationRuntime()\n .then((runtime) => {\n runtime.configureLocalization(config);\n __flushPendingLocalizationKeys(runtime);\n })\n .catch(() => {});\n }\n\n return {\n locale: __fallbackLocalizationState.locale,\n messages: { ...__fallbackLocalizationState.messages },\n hasProvider: __fallbackLocalizationState.hasProvider,\n };\n};\n\nconst loadLocale = async (locale) => {\n const runtime = await __loadLocalizationRuntime();\n return runtime.loadLocale(locale);\n};\n\nconst setLocale = async (locale, options = {}) => {\n const runtime = await __loadLocalizationRuntime();\n return runtime.setLocale(locale, options);\n};\n\nconst getLocalizationState = () => {\n const runtime = __getLocalizationRuntimeSync();\n if (typeof runtime?.getLocalizationState === \"function\") {\n return runtime.getLocalizationState();\n }\n return {\n locale: __fallbackLocalizationState.locale,\n messages: { ...__fallbackLocalizationState.messages },\n hasProvider: __fallbackLocalizationState.hasProvider,\n };\n};\n\nconst createJSONLocalization = (options = {}) => {\n const runtime = __getLocalizationRuntimeSync();\n if (typeof runtime?.createJSONLocalization === \"function\") {\n return runtime.createJSONLocalization(options);\n }\n\n const defaultLocale =\n typeof options?.locale === \"string\" && options.locale.trim()\n ? options.locale.trim().toLowerCase()\n : \"en\";\n\n const configuredLocales = Array.isArray(options?.locales)\n ? options.locales\n .map((locale) => String(locale || \"\").trim().toLowerCase())\n .filter(Boolean)\n : [];\n\n const locales = Array.from(new Set([defaultLocale, ...configuredLocales]));\n\n let __jsonLocalizationConfigPromise = null;\n const __resolveJSONLocalizationConfig = async () => {\n if (!__jsonLocalizationConfigPromise) {\n __jsonLocalizationConfigPromise = __loadLocalizationRuntime()\n .then((runtime) => {\n if (typeof runtime?.createJSONLocalization === \"function\") {\n return runtime.createJSONLocalization(options);\n }\n return null;\n })\n .catch(() => null);\n }\n\n return __jsonLocalizationConfigPromise;\n };\n\n const resolveLoader = async (kind = \"loadLocale\") => {\n const runtimeConfig = await __resolveJSONLocalizationConfig();\n if (!runtimeConfig || typeof runtimeConfig !== \"object\") {\n return null;\n }\n\n const provider = runtimeConfig.provider;\n if (!provider || typeof provider !== \"object\") {\n return null;\n }\n\n const exactLoader = provider[kind];\n if (typeof exactLoader === \"function\") {\n return exactLoader;\n }\n\n if (kind === \"setLocale\" && typeof provider.loadLocale === \"function\") {\n return provider.loadLocale;\n }\n\n return null;\n };\n\n return {\n locale: defaultLocale,\n locales: [...locales],\n provider: {\n locales: [...locales],\n async loadLocale(context = {}) {\n const loader = await resolveLoader(\"loadLocale\");\n if (typeof loader !== \"function\") {\n return {};\n }\n return loader(context);\n },\n async setLocale(context = {}) {\n const loader = await resolveLoader(\"setLocale\");\n if (typeof loader !== \"function\") {\n return {};\n }\n return loader(context);\n },\n },\n };\n};\n\nfunction __resolveExternalRuntimeModuleURL(filename, overrideURL) {\n if (overrideURL && typeof overrideURL === \"string\") {\n return overrideURL;\n }\n const assetRootURL = resolveRuntimeAssetRoot(PDS.currentConfig || {}, {\n resolvePublicAssetURL,\n });\n return `${assetRootURL}core/${filename}`;\n}\n\nasync function __loadDefaultEnhancers() {\n if (Array.isArray(PDS.defaultEnhancers) && PDS.defaultEnhancers.length > 0) {\n return PDS.defaultEnhancers;\n }\n if (!__defaultEnhancersPromise) {\n const enhancersModuleURL = __resolveExternalRuntimeModuleURL(\n \"pds-enhancers.js\",\n PDS.currentConfig?.enhancersURL\n );\n __defaultEnhancersPromise = import(/* @vite-ignore */ enhancersModuleURL)\n .then((mod) => {\n const enhancers = Array.isArray(mod?.defaultPDSEnhancers)\n ? mod.defaultPDSEnhancers\n : [];\n PDS.defaultEnhancers = enhancers;\n return enhancers;\n })\n .catch((error) => {\n __defaultEnhancersPromise = null;\n throw error;\n });\n }\n return __defaultEnhancersPromise;\n}\n\nasync function __loadAsk() {\n if (typeof PDS.ask === \"function\" && PDS.ask !== __lazyAsk) {\n return PDS.ask;\n }\n if (!__askPromise) {\n const askModuleURL = __resolveExternalRuntimeModuleURL(\n \"pds-ask.js\",\n PDS.currentConfig?.askURL\n );\n __askPromise = import(/* @vite-ignore */ askModuleURL)\n .then((mod) => {\n const impl = mod?.ask;\n if (typeof impl !== \"function\") {\n throw new Error(\"Failed to load ask helper\");\n }\n PDS.ask = impl;\n return impl;\n })\n .catch((error) => {\n __askPromise = null;\n throw error;\n });\n }\n return __askPromise;\n}\n\nasync function __loadToast() {\n if (typeof PDS.toast === \"function\" && PDS.toast !== __lazyToast) {\n return PDS.toast;\n }\n if (!__toastPromise) {\n const toastModuleURL = __resolveExternalRuntimeModuleURL(\n \"pds-toast.js\",\n PDS.currentConfig?.toastURL\n );\n __toastPromise = import(/* @vite-ignore */ toastModuleURL)\n .then((mod) => {\n const impl = mod?.toast;\n if (typeof impl !== \"function\") {\n throw new Error(\"Failed to load toast helper\");\n }\n PDS.toast = impl;\n return impl;\n })\n .catch((error) => {\n __toastPromise = null;\n throw error;\n });\n }\n return __toastPromise;\n}\n\nasync function __lazyAsk(...args) {\n const askImpl = await __loadAsk();\n return askImpl(...args);\n}\n\nasync function __lazyToast(...args) {\n const toastImpl = await __loadToast();\n return toastImpl(...args);\n}\n\n__lazyToast.success = async (...args) => {\n const toastImpl = await __loadToast();\n return toastImpl.success(...args);\n};\n__lazyToast.error = async (...args) => {\n const toastImpl = await __loadToast();\n return toastImpl.error(...args);\n};\n__lazyToast.warning = async (...args) => {\n const toastImpl = await __loadToast();\n return toastImpl.warning(...args);\n};\n__lazyToast.info = async (...args) => {\n const toastImpl = await __loadToast();\n return toastImpl.info(...args);\n};\n\nconst __defaultLog = function (level = \"log\", message, ...data) {\n PDS.log(level, message, ...data);\n};\n\nfunction __stripFunctionsForClone(value) {\n if (value === null || value === undefined) return value;\n if (typeof value === \"function\") return undefined;\n if (typeof value !== \"object\") return value;\n\n if (Array.isArray(value)) {\n return value\n .map((item) => __stripFunctionsForClone(item))\n .filter((item) => item !== undefined);\n }\n\n const result = {};\n for (const [key, entry] of Object.entries(value)) {\n const stripped = __stripFunctionsForClone(entry);\n if (stripped !== undefined) {\n result[key] = stripped;\n }\n }\n return result;\n}\n\nfunction __deepFreeze(value, seen = new WeakSet()) {\n if (!value || typeof value !== \"object\") {\n return value;\n }\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n Object.freeze(value);\n for (const key of Object.keys(value)) {\n __deepFreeze(value[key], seen);\n }\n return value;\n}\n\nfunction __toReadonlyClone(value) {\n if (value === null || value === undefined) {\n return value;\n }\n if (typeof value !== \"object\") {\n return value;\n }\n return __deepFreeze(structuredClone(__stripFunctionsForClone(value)));\n}\n\nasync function __loadRuntimeConfig(assetRootURL, config = {}) {\n if (config?.runtimeConfig === false) return null;\n if (typeof fetch !== \"function\") return null;\n const runtimeUrl =\n config?.runtimeConfigURL || `${assetRootURL}pds-runtime-config.json`;\n try {\n const res = await fetch(runtimeUrl, { cache: \"no-store\" });\n if (!res.ok) return null;\n return await res.json();\n } catch (e) {\n return null;\n }\n}\n\n/** Singleton runtime registry. Use `registry.setLiveMode()` to enable live mode or `registry.setStaticMode()` for static assets */\nPDS.registry = registry;\n\n/** Expose enums in static and live modes */\nPDS.enums = enums;\n\n/** Adopt a set of layered stylesheets into a ShadowRoot */\nPDS.adoptLayers = adoptLayers;\n\n/** Convenience to adopt only primitives into a ShadowRoot */\nPDS.adoptPrimitives = adoptPrimitives;\n\n/** Parse an HTML string into a NodeList */\nPDS.parse = common.parseHTML;\n\n/** Create a constructable CSSStyleSheet from a CSS string */\nPDS.createStylesheet = createStylesheet;\n\n/** Return true when running inside a live/designer-backed environment */\nPDS.isLiveMode = () => registry.isLive;\nPDS.ask = __lazyAsk;\nPDS.toast = __lazyToast;\nPDS.common = common;\nPDS.msg = msg;\nPDS.str = str;\nPDS.configureLocalization = configureLocalization;\nPDS.loadLocale = loadLocale;\nPDS.setLocale = setLocale;\nPDS.getLocalizationState = getLocalizationState;\nPDS.createJSONLocalization = createJSONLocalization;\nPDS.i18n = {\n msg,\n str,\n configure: configureLocalization,\n loadLocale,\n setLocale,\n getState: getLocalizationState,\n createJSONLocalization,\n};\nPDS.AutoComplete = null;\nPDS.loadAutoComplete = async () => {\n if (PDS.AutoComplete && typeof PDS.AutoComplete.connect === \"function\") {\n return PDS.AutoComplete;\n }\n\n const autoCompleteModuleURL = __resolveExternalRuntimeModuleURL(\n \"pds-autocomplete.js\",\n PDS.currentConfig?.autoCompleteURL\n );\n\n if (!__autoCompletePromise) {\n __autoCompletePromise = import(/* @vite-ignore */ autoCompleteModuleURL)\n .then((mod) => {\n const autoCompleteCtor =\n mod?.AutoComplete ||\n mod?.default?.AutoComplete ||\n mod?.default ||\n null;\n if (!autoCompleteCtor) {\n throw new Error(\"AutoComplete export not found in module\");\n }\n PDS.AutoComplete = autoCompleteCtor;\n return autoCompleteCtor;\n })\n .catch((error) => {\n __autoCompletePromise = null;\n throw error;\n });\n }\n return __autoCompletePromise;\n};\n\nfunction __emitPDSReady(detail) {\n const hasCustomEvent = typeof CustomEvent === \"function\";\n\n try {\n const readyEvent = hasCustomEvent\n ? new CustomEvent(\"pds:ready\", { detail })\n : new Event(\"pds:ready\");\n PDS.dispatchEvent(readyEvent);\n } catch (e) {}\n\n if (typeof document !== \"undefined\") {\n if (hasCustomEvent) {\n const eventOptions = { detail, bubbles: true, composed: true };\n try {\n document.dispatchEvent(new CustomEvent(\"pds:ready\", eventOptions));\n } catch (e) {}\n try {\n document.dispatchEvent(new CustomEvent(\"pds-ready\", eventOptions));\n } catch (e) {}\n } else {\n try {\n document.dispatchEvent(new Event(\"pds:ready\"));\n } catch (e) {}\n try {\n document.dispatchEvent(new Event(\"pds-ready\"));\n } catch (e) {}\n }\n }\n}\n\nfunction __emitPDSConfigChanged(detail = {}) {\n const hasCustomEvent = typeof CustomEvent === \"function\";\n const payload = {\n at: Date.now(),\n ...detail,\n };\n\n try {\n const changedEvent = hasCustomEvent\n ? new CustomEvent(\"pds:config-changed\", { detail: payload })\n : new Event(\"pds:config-changed\");\n PDS.dispatchEvent(changedEvent);\n } catch (e) {}\n\n if (typeof document !== \"undefined\") {\n if (hasCustomEvent) {\n const eventOptions = { detail: payload, bubbles: true, composed: true };\n try {\n document.dispatchEvent(\n new CustomEvent(\"pds:config-changed\", eventOptions)\n );\n } catch (e) {}\n } else {\n try {\n document.dispatchEvent(new Event(\"pds:config-changed\"));\n } catch (e) {}\n }\n }\n}\n\n// ---------------------------------------------------------------------------\n// Theme management (centralized on PDS.theme)\n// Consumers may read/write `PDS.theme` with values: 'system' | 'light' | 'dark'\n// Setting the property persists to localStorage (when available), updates\n// document.documentElement[data-theme] to an explicit 'light'|'dark' value\n// and emits a `pds:theme:changed` event. Reading the property returns the\n// raw stored preference (or null if none).\n\n// Private module-level variables for theme management\nconst __themeStorageKey = \"pure-ds-theme\";\nlet __themeMQ = null;\nlet __themeMQListener = null;\n\n// Private: Apply resolved theme to document\nfunction __applyResolvedTheme(raw) {\n try {\n if (typeof document === \"undefined\") return;\n let resolved = \"light\";\n if (!raw) {\n // No stored preference: use OS preference\n const prefersDark =\n typeof window !== \"undefined\" &&\n window.matchMedia &&\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n resolved = prefersDark ? \"dark\" : \"light\";\n } else if (raw === \"system\") {\n const prefersDark =\n typeof window !== \"undefined\" &&\n window.matchMedia &&\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n resolved = prefersDark ? \"dark\" : \"light\";\n } else {\n resolved = raw;\n }\n document.documentElement.setAttribute(\"data-theme\", resolved);\n } catch (e) {}\n}\n\n// Private: Setup system theme change listener when needed\nfunction __setupSystemListenerIfNeeded(raw) {\n try {\n // Remove any existing listener first\n if (__themeMQ && __themeMQListener) {\n try {\n if (typeof __themeMQ.removeEventListener === \"function\")\n __themeMQ.removeEventListener(\"change\", __themeMQListener);\n else if (typeof __themeMQ.removeListener === \"function\")\n __themeMQ.removeListener(__themeMQListener);\n } catch (e) {}\n __themeMQ = null;\n __themeMQListener = null;\n }\n\n if (\n raw === \"system\" &&\n typeof window !== \"undefined\" &&\n window.matchMedia\n ) {\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const listener = (e) => {\n const isDark = e?.matches === undefined ? mq.matches : e.matches;\n try {\n const newTheme = isDark ? \"dark\" : \"light\";\n document.documentElement.setAttribute(\"data-theme\", newTheme);\n PDS.dispatchEvent(\n new CustomEvent(\"pds:theme:changed\", {\n detail: { theme: newTheme, source: \"system\" },\n })\n );\n } catch (ex) {}\n };\n __themeMQ = mq;\n __themeMQListener = listener;\n if (typeof mq.addEventListener === \"function\")\n mq.addEventListener(\"change\", listener);\n else if (typeof mq.addListener === \"function\") mq.addListener(listener);\n }\n } catch (e) {}\n}\n\nconst __themeDescriptor = Object.getOwnPropertyDescriptor(PDS, \"theme\");\nif (!__themeDescriptor) {\n Object.defineProperty(PDS, \"theme\", {\n get() {\n try {\n if (typeof window === \"undefined\") return null;\n return localStorage.getItem(__themeStorageKey) || null;\n } catch (e) {\n return null;\n }\n },\n set(value) {\n try {\n if (typeof window === \"undefined\") return;\n const currentPreset = PDS.currentConfig?.design || null;\n const resolvedTheme = resolveThemePreference(value);\n if (currentPreset && !isPresetThemeCompatible(currentPreset, resolvedTheme)) {\n const presetName =\n currentPreset?.name ||\n PDS.currentPreset?.name ||\n PDS.currentConfig?.preset ||\n \"current preset\";\n PDS.log(\n \"warn\",\n `PDS theme \"${resolvedTheme}\" not supported by preset \"${presetName}\".`\n );\n PDS.dispatchEvent(\n new CustomEvent(\"pds:theme:blocked\", {\n detail: { theme: value, resolvedTheme, preset: presetName },\n })\n );\n return;\n }\n if (value === null || value === undefined) {\n localStorage.removeItem(__themeStorageKey);\n } else {\n localStorage.setItem(__themeStorageKey, value);\n }\n\n // Apply resolved (light/dark) value to document\n __applyResolvedTheme(value);\n // Setup system change listener only when 'system' is selected\n __setupSystemListenerIfNeeded(value);\n\n // Emit a notification with the raw preference (value may be 'system')\n PDS.dispatchEvent(\n new CustomEvent(\"pds:theme:changed\", {\n detail: { theme: value, source: \"api\" },\n })\n );\n } catch (e) {}\n },\n });\n}\n\n// ----------------------------------------------------------------------------\n// Default Enhancers \u2014 first-class citizens alongside AutoDefiner\n// ----------------------------------------------------------------------------\n/**\n * Default DOM enhancers shipped with PDS. These are lightweight progressive\n * enhancements that can be applied to vanilla markup. Consumers can override\n * or add to these via the `enhancers` option of PDS.start({ mode }).\n */\nPDS.defaultEnhancers = [];\n\n/**\n * Initialize PDS in live mode with the given configuration (new unified shape).\n * Typically invoked via PDS.start({ mode: 'live', ... }).\n *\n * Shape:\n * PDS.start({\n * mode: 'live',\n * preset?: string,\n * design?: object,\n * autoDefine?: {\n * baseURL?: string,\n * predefine?: string[],\n * mapper?: (tag:string)=>string|undefined|null, // return undefined/null/false to let PDS default mapper handle it\n * // plus any AutoDefiner flags: scanExisting, observeShadows, patchAttachShadow, debounceMs, onError\n * },\n * // runtime flags (optional)\n * applyGlobalStyles?: boolean,\n * manageTheme?: boolean,\n * themeStorageKey?: string,\n * preloadStyles?: boolean,\n * criticalLayers?: string[]\n * })\n *\n * @param {object} config - The PDS configuration object (unified shape)\n * @returns {Promise<{generator: Generator, config: object, theme: string, autoDefiner?: any}>}\n *\n * @example\n * await PDS.start({ mode: 'live',\n * preset: 'paper-and-ink',\n * design: { colors: { accent: '#FF4081' } },\n * autoDefine: { predefine: ['pds-icon'] }\n * });\n */\n\n/**\n * Start PDS given a unified configuration and an explicit mode.\n *\n * @param {object} config - Unified configuration\n * @param {('live'|'static')} [config.mode='live'] - Runtime mode selector\n * @returns {Promise<any>} Live returns { generator, config, theme, autoDefiner }; Static returns { config, theme, autoDefiner }\n */\nasync function start(config) {\n PDS.initializing = true;\n try {\n const mode = (config && config.mode) || \"live\";\n const { mode: _omit, ...rest } = config || {};\n\n PDS.mode = mode;\n PDS.logHandler = typeof rest?.log === \"function\" ? rest.log : null;\n\n PDS.currentConfig = __toReadonlyClone(rest);\n\n const localizationConfig =\n rest && typeof rest.localization === \"object\" && rest.localization\n ? rest.localization\n : null;\n\n if (localizationConfig) {\n await __loadLocalizationRuntime();\n configureLocalization(localizationConfig);\n } else {\n configureLocalization(null);\n }\n\n let startResult;\n if (mode === \"static\") {\n startResult = await staticInit(rest);\n } else {\n const { localization: _managerLocalization, ...managerConfig } = rest || {};\n const assetRootURL = resolveRuntimeAssetRoot(managerConfig, { resolvePublicAssetURL });\n const managerUrl =\n managerConfig?.managerURL ||\n managerConfig?.public?.managerURL ||\n managerConfig?.manager?.url ||\n new URL(\"core/pds-manager.js\", assetRootURL).href ||\n new URL(\"./pds-manager.js\", import.meta.url).href;\n const { startLive } = await import(/* @vite-ignore */ managerUrl);\n startResult = await startLive(PDS, managerConfig, {\n emitReady: __emitPDSReady,\n emitConfigChanged: __emitPDSConfigChanged,\n applyResolvedTheme: __applyResolvedTheme,\n setupSystemListenerIfNeeded: __setupSystemListenerIfNeeded,\n });\n }\n\n PDS.compiled = __toReadonlyClone(startResult?.config || null);\n\n const resolvedExternalIconPath =\n PDS?.compiled?.design?.icons?.externalPath || \"/assets/img/icons/\";\n\n PDS.log(\"info\", `startup ready; external icon path: ${resolvedExternalIconPath}`);\n\n return startResult;\n } finally {\n PDS.initializing = false;\n }\n}\n\n/** Primary unified entry point */\nPDS.start = start;\n\n/**\n * Initialize PDS in static mode with the same unified configuration shape as live mode.\n *\n * Shape:\n * PDS.start({\n * mode: 'static',\n * preset?: string,\n * design?: object,\n * autoDefine?: {\n * baseURL?: string,\n * predefine?: string[],\n * mapper?: (tag:string)=>string,\n * // plus any AutoDefiner flags\n * },\n * // static/runtime flags (optional)\n * applyGlobalStyles?: boolean,\n * manageTheme?: boolean,\n * themeStorageKey?: string,\n * staticPaths?: Record<string,string>\n * })\n */\nasync function staticInit(config) {\n if (!config || typeof config !== \"object\") {\n throw new Error(\n \"PDS.start({ mode: 'static', ... }) requires a valid configuration object\"\n );\n }\n\n const applyGlobalStyles = config.applyGlobalStyles ?? true;\n const manageTheme = config.manageTheme ?? true;\n const themeStorageKey = config.themeStorageKey ?? \"pure-ds-theme\";\n let staticPaths = config.staticPaths ?? {};\n const assetRootURL = resolveRuntimeAssetRoot(config, { resolvePublicAssetURL });\n const cfgAuto = (config && config.autoDefine) || null;\n let autoDefineBaseURL;\n if (cfgAuto && cfgAuto.baseURL) {\n autoDefineBaseURL = ensureTrailingSlash(\n ensureAbsoluteAssetURL(cfgAuto.baseURL, { preferModule: false })\n );\n } else {\n autoDefineBaseURL = `${assetRootURL}components/`;\n }\n const autoDefinePreload =\n (cfgAuto && Array.isArray(cfgAuto.predefine) && cfgAuto.predefine) || [];\n const autoDefineMapper =\n (cfgAuto && typeof cfgAuto.mapper === \"function\" && cfgAuto.mapper) || null;\n\n try {\n attachFoucListener(PDS);\n // 1) Theme\n const { resolvedTheme } = resolveThemeAndApply({\n manageTheme,\n themeStorageKey,\n applyResolvedTheme: __applyResolvedTheme,\n setupSystemListenerIfNeeded: __setupSystemListenerIfNeeded,\n });\n\n // Load runtime config for static assets; config metadata remains live-mode only\n const runtimeConfig = await __loadRuntimeConfig(assetRootURL, config);\n const userEnhancers = Array.isArray(config?.enhancers)\n ? config.enhancers\n : config?.enhancers && typeof config.enhancers === \"object\"\n ? Object.values(config.enhancers)\n : [];\n const resolvedConfig = runtimeConfig?.config\n ? {\n ...runtimeConfig.config,\n ...config,\n design: config?.design || runtimeConfig.config.design,\n preset: config?.preset || runtimeConfig.config.preset,\n }\n : { ...config };\n \n\n // 2) Derive static asset URLs from the normalized public root\n const baseStaticPaths = {\n tokens: `${assetRootURL}styles/pds-tokens.css.js`,\n primitives: `${assetRootURL}styles/pds-primitives.css.js`,\n components: `${assetRootURL}styles/pds-components.css.js`,\n utilities: `${assetRootURL}styles/pds-utilities.css.js`,\n styles: `${assetRootURL}styles/pds-styles.css.js`,\n };\n const runtimePaths = runtimeConfig?.paths || {};\n staticPaths = { ...baseStaticPaths, ...runtimePaths, ...staticPaths };\n\n // 3) Static mode registry\n PDS.registry.setStaticMode(staticPaths);\n\n // 4) Apply global static styles if requested\n if (applyGlobalStyles && typeof document !== \"undefined\") {\n try {\n // Always adopt from exported css.js modules so static mode loads from JS exports\n const stylesSheet = await PDS.registry.getStylesheet(\"styles\");\n if (stylesSheet) {\n // Tag and adopt alongside existing non-PDS sheets\n stylesSheet._pds = true;\n const others = (document.adoptedStyleSheets || []).filter(\n (s) => s._pds !== true\n );\n document.adoptedStyleSheets = [...others, stylesSheet];\n __emitPDSConfigChanged({\n mode: \"static\",\n source: \"static:styles-applied\",\n });\n }\n } catch (e) {\n __defaultLog.call(PDS, \"warn\", \"Failed to apply static styles:\", e);\n }\n }\n\n // 5) AutoDefiner + Enhancers\n let autoDefiner = null;\n let mergedEnhancers = [];\n try {\n const defaultPDSEnhancers = await __loadDefaultEnhancers();\n const res = await setupAutoDefinerAndEnhancers({\n autoDefineBaseURL,\n autoDefinePreload,\n autoDefineMapper,\n enhancers: userEnhancers,\n autoDefineOverrides: cfgAuto || null,\n autoDefinePreferModule: !(cfgAuto && cfgAuto.baseURL),\n }, { baseEnhancers: defaultPDSEnhancers });\n autoDefiner = res.autoDefiner;\n mergedEnhancers = res.mergedEnhancers || [];\n } catch (error) {\n __defaultLog.call(\n PDS,\n \"error\",\n \"\u274C Failed to initialize AutoDefiner/Enhancers (static):\",\n error\n );\n }\n\n PDS.compiled = __toReadonlyClone({\n mode: \"static\",\n ...resolvedConfig,\n theme: resolvedTheme,\n enhancers: mergedEnhancers,\n });\n\n // 6) Emit ready event (unified)\n __emitPDSReady({\n mode: \"static\",\n config: resolvedConfig,\n theme: resolvedTheme,\n autoDefiner,\n });\n return {\n config: resolvedConfig,\n theme: resolvedTheme,\n autoDefiner,\n };\n } catch (error) {\n PDS.dispatchEvent(new CustomEvent(\"pds:error\", { detail: { error } }));\n throw error;\n }\n}\n\n// Note: PDS.static is not exported. Use PDS.start({ mode: 'static', ... }).\n\n// Note: PDS object is not frozen to allow runtime properties like currentConfig\n// to be set during initialization. The config object itself is frozen for immutability.\n\nexport const applyResolvedTheme = __applyResolvedTheme;\nexport const setupSystemListenerIfNeeded = __setupSystemListenerIfNeeded;\nexport {\n PDS,\n msg,\n str,\n configureLocalization,\n loadLocale,\n setLocale,\n getLocalizationState,\n createJSONLocalization,\n};\n", "// @ts-check\n/** @typedef {import(\"./src/js/pds-core/pds-config\").PDSInitConfig} PDSInitConfig */\n/** @typedef {import(\"./src/js/pds-singleton.js\").PDSBase} PDSBase */\nimport { PDS } from \"./src/js/pds.js\";\n\nconst localization = PDS.createJSONLocalization({\n locale: \"en-US\",\n locales: [\"en-US\", \"nl-NL\"],\n aliases: {\n en: [\"en-US\"],\n nl: [\"nl-NL\"],\n },\n basePath: \"/assets/locales\",\n});\n\n/** @type {PDSInitConfig} */\nexport const config = {\n mode: \"live\",\n liveEdit: true,\n preset: \"default\",\n localization,\n autoDefine: {\n predefine: [\"pds-icon\", \"pds-drawer\", \"pds-toaster\"]\n },\n\n /** @this {PDSBase} */\n log(level, message, ...data) {\n const mode = this?.mode || this?.compiled?.mode || \"live\";\n if (mode !== \"static\") {\n const method = typeof console[level] === \"function\" ? console[level] : console.log;\n method(`[PDS] ${message}`, ...data);\n }\n },\n};\n", "{\n \"name\": \"@pure-ds/core\",\n \"shortname\": \"pds\",\n \"version\": \"0.7.49\",\n \"description\": \"Why develop a Design System when you can generate one?\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/Pure-Web-Foundation/pure-ds.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/Pure-Web-Foundation/pure-ds/issues\"\n },\n \"homepage\": \"https://puredesignsystem.z6.web.core.windows.net/\",\n \"keywords\": [\n \"design-system\",\n \"css\",\n \"web-components\",\n \"lit\",\n \"constructable-stylesheets\",\n \"tokens\",\n \"utilities\",\n \"a11y\"\n ],\n \"type\": \"module\",\n \"main\": \"./public/assets/pds/core.js\",\n \"module\": \"./public/assets/pds/core.js\",\n \"types\": \"./dist/types/pds.d.ts\",\n \"bin\": {\n \"pds-build\": \"packages/pds-cli/bin/pds-static.js\",\n \"pds-sync-assets\": \"packages/pds-cli/bin/sync-assets.js\",\n \"pds-build-icons\": \"packages/pds-cli/bin/pds-build-icons.js\",\n \"pds-import\": \"packages/pds-cli/bin/pds-import.js\",\n \"pds-setup-copilot\": \"packages/pds-cli/bin/pds-setup-copilot.js\",\n \"pds-setup-mcp\": \"packages/pds-cli/bin/pds-setup-mcp.js\",\n \"pds-init-config\": \"packages/pds-cli/bin/pds-init-config.js\",\n \"pds-bootstrap\": \"packages/pds-cli/bin/pds-bootstrap.js\",\n \"pds-mcp-server\": \"packages/pds-cli/bin/pds-mcp-server.js\",\n \"pds-mcp-health\": \"packages/pds-cli/bin/pds-mcp-health.js\",\n \"pds-mcp-eval\": \"packages/pds-cli/bin/pds-mcp-eval.js\"\n },\n \"exports\": {\n \".\": {\n \"types\": \"./src/js/pds.d.ts\",\n \"import\": \"./public/assets/pds/core.js\"\n },\n \"./localization\": {\n \"types\": \"./dist/types/src/js/pds-localization.d.ts\",\n \"import\": \"./public/assets/pds/core/pds-localization.js\"\n },\n \"./lit\": {\n \"types\": \"./dist/types/src/js/lit.d.ts\",\n \"import\": \"./public/assets/pds/external/lit.js\"\n },\n \"./pds-core\": \"./src/js/pds.js\",\n \"./auto-define/*\": \"./public/auto-define/*\"\n },\n \"files\": [\n \".github/copilot-instructions.md\",\n \".cursorrules\",\n \"dist/types/\",\n \"public/assets/js/\",\n \"public/assets/pds/components/\",\n \"public/assets/pds/templates/\",\n \"public/assets/pds/core.js\",\n \"public/assets/pds/core/\",\n \"public/assets/pds/external/\",\n \"public/assets/pds/vscode-custom-data.json\",\n \"public/assets/pds/pds.css-data.json\",\n \"public/assets/pds/pds-css-complete.json\",\n \"public/auto-define/\",\n \"public/pds/components/\",\n \"public/assets/pds/icons/pds-icons.svg\",\n \"packages/pds-cli/bin/\",\n \"packages/pds-cli/lib/\",\n \"src/js/pds.d.ts\",\n \"src/js/pds.js\",\n \"src/js/pds-singleton.js\",\n \"src/js/common/\",\n \"src/js/pds-live-manager/\",\n \"src/js/pds-core/\",\n \"custom-elements.json\",\n \"custom-elements-manifest.config.js\",\n \"pds.html-data.json\",\n \"pds.css-data.json\",\n \"LOCALIZATION.md\",\n \"readme.md\",\n \"INTELLISENSE.md\",\n \"CSS-INTELLISENSE-LIMITATION.md\",\n \"CSS-INTELLISENSE-QUICK-REF.md\"\n ],\n \"scripts\": {\n \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n \"dev\": \"node esbuild-dev.js\",\n \"prebuild\": \"npm run types\",\n \"build\": \"node esbuild-build.js\",\n \"types\": \"tsc -p tsconfig.json && node scripts/sync-types.mjs\",\n \"postinstall\": \"node packages/pds-cli/bin/postinstall.mjs\",\n \"prepds:build\": \"npm run types\",\n \"pds:build\": \"node packages/pds-cli/bin/pds-static.js\",\n \"pds:build-icons\": \"node packages/pds-cli/bin/pds-build-icons.js\",\n \"pds:bootstrap\": \"node packages/pds-cli/bin/pds-bootstrap.js\",\n \"pds:manifest\": \"node packages/pds-cli/bin/generate-manifest.js\",\n \"pds:css-data\": \"node packages/pds-cli/bin/generate-css-data.js\",\n \"pds:import\": \"node packages/pds-cli/bin/pds-import.js\",\n \"pds:dx\": \"node packages/pds-cli/bin/pds-dx.js\",\n \"pds:mcp:server\": \"node packages/pds-cli/bin/pds-mcp-server.js\",\n \"pds:mcp:health\": \"node packages/pds-cli/bin/pds-mcp-health.js\",\n \"pds:mcp:eval\": \"node packages/pds-cli/bin/pds-mcp-eval.js\",\n \"storybook:generate\": \"cd packages/pds-storybook && npm run generate-stories\",\n \"storybook:dev\": \"cd packages/pds-storybook && npm run storybook:dev\",\n \"storybook:build\": \"cd packages/pds-storybook && npm run storybook:build\"\n },\n \"author\": \"Marc van Neerven\",\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"devDependencies\": {\n \"@custom-elements-manifest/analyzer\": \"^0.9.9\",\n \"@types/node\": \"^22.10.2\",\n \"esbuild\": \"^0.19.0\",\n \"fs-extra\": \"^11.1.1\",\n \"typescript\": \"^5.6.3\"\n },\n \"dependencies\": {\n \"lit\": \"^3.3.2\",\n \"pure-web\": \"1.1.32\"\n },\n \"customElements\": \"custom-elements.json\"\n}\n", "import { PDS, msg, str } from \"./pds\";\nimport { config } from \"../../pds.config.js\";\nimport pkg from \"../../package.json\";\n\n// Initialize PDS once at app startup using the new unified shape\nawait PDS.start(config);\n\ndocument.documentElement.lang = \"en\";\n\nconst rawRepoUrl =\n typeof pkg.repository === \"string\" ? pkg.repository : pkg.repository?.url;\nconst repoUrl = rawRepoUrl\n ? rawRepoUrl.replace(/^git\\+/, \"\").replace(/\\.git$/, \"\")\n : \"\";\nconst homepageUrl = pkg.homepage || repoUrl;\nconst issuesUrl = pkg.bugs?.url || \"\";\n\ndocument.body.innerHTML = /*html*/ `\n\t<div class=\"container text-center\">\n\t\t<img src=\"/assets/img/pds-logo.svg\" alt=\"PDS Logo\" title=\"${msg(\"PDS Logo\")}\" width=\"64\" height=\"64\" />\n\t\t<header class=\"container section\">\n\t\t\t<h1>${pkg.name} ${msg(str`version ${pkg.version}`)}</h1>\n\t\t\t<small class=\"text-muted\">${msg(pkg.description)}</small>\t\t\t\t\n\t\t</header>\n\t</div>\n`;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["config", "ensureTrailingSlash", "PDS", "config", "resolvePublicAssetURL", "ensureTrailingSlash", "key", "config", "runtime", "ensureTrailingSlash"]
|
|
7
|
+
}
|