ds-one 0.3.0-alpha.1 → 0.3.0-alpha.2
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/DS1/0-face/device.ts +180 -34
- package/DS1/1-root/one.css +1 -1
- package/DS1/index.ts +0 -1
- package/README.md +2 -2
- package/dist/0-face/device.d.ts +47 -1
- package/dist/0-face/device.d.ts.map +1 -1
- package/dist/0-face/device.js +132 -25
- package/dist/ds-one.bundle.js +1421 -1436
- package/dist/ds-one.bundle.js.map +1 -1
- package/dist/ds-one.bundle.min.js +1206 -1217
- package/dist/ds-one.bundle.min.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/package.json +1 -1
- package/DS1/0-face/scaling.ts +0 -152
- package/dist/0-face/scaling.d.ts +0 -48
- package/dist/0-face/scaling.d.ts.map +0 -1
- package/dist/0-face/scaling.js +0 -114
- package/dist/2-core/styles/ds-banner.css +0 -77
- package/dist/2-core/styles/ds-button.css +0 -67
- package/dist/2-core/styles/ds-cycle.css +0 -21
- package/dist/2-core/styles/ds-date.css +0 -9
- package/dist/2-core/styles/ds-gap.css +0 -93
- package/dist/2-core/styles/ds-icon.css +0 -30
- package/dist/2-core/styles/ds-input.css +0 -46
- package/dist/2-core/styles/ds-pagedots.css +0 -26
- package/dist/2-core/styles/ds-text.css +0 -29
- package/dist/2-core/styles/ds-tooltip.css +0 -49
- package/dist/3-unit/styles/ds-accordion.css +0 -46
- package/dist/3-unit/styles/ds-list.css +0 -9
- package/dist/3-unit/styles/ds-row.css +0 -19
- package/dist/3-unit/styles/ds-table.css +0 -80
- package/dist/4-page/styles/ds-container.css +0 -35
- package/dist/4-page/styles/ds-grid.css +0 -56
- package/dist/4-page/styles/ds-layout.css +0 -251
- package/dist/ds-one.bundle.css +0 -700
- package/dist/ds-one.bundle.css.map +0 -7
- package/dist/ds-one.bundle.min.css +0 -2
- package/dist/ds-one.bundle.min.css.map +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-one.bundle.min.js","sources":["../DS1/0-face/device.ts","../DS1/0-face/i18n.ts","../DS1/0-face/preferences.ts","../DS1/0-face/pricing.ts","../node_modules/signal-polyfill/dist/index.js","../node_modules/@lit-labs/signals/lib/signal-watcher.js","../node_modules/lit-html/directive.js","../node_modules/lit-html/lit-html.js","../node_modules/@lit-labs/signals/index.js","../DS1/0-face/scaling.ts","../DS1/0-face/theme.ts","../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-element/lit-element.js","../DS1/2-core/ds-text.ts","../DS1/2-core/ds-button.ts","../DS1/2-core/ds-banner.ts","../DS1/2-core/ds-card.ts","../DS1/x-icon/1x.svg?raw","../DS1/x-icon/1xdots.svg?raw","../DS1/x-icon/1xgrid.svg?raw","../DS1/x-icon/1xlines.svg?raw","../DS1/x-icon/2x.svg?raw","../DS1/x-icon/2xdots.svg?raw","../DS1/x-icon/2xgrid.svg?raw","../DS1/x-icon/2xlines.svg?raw","../DS1/x-icon/4x4.svg?raw","../DS1/x-icon/apple.svg?raw","../DS1/x-icon/avatar.svg?raw","../DS1/x-icon/big.svg?raw","../DS1/x-icon/blank.svg?raw","../DS1/x-icon/check.svg?raw","../DS1/x-icon/close.svg?raw","../DS1/x-icon/collapse.svg?raw","../DS1/x-icon/color.svg?raw","../DS1/x-icon/column.svg?raw","../DS1/x-icon/default.svg?raw","../DS1/x-icon/delete.svg?raw","../DS1/x-icon/dictate.svg?raw","../DS1/x-icon/do.svg?raw","../DS1/x-icon/down.svg?raw","../DS1/x-icon/duplicate.svg?raw","../DS1/x-icon/email.svg?raw","../DS1/x-icon/expand.svg?raw","../DS1/x-icon/gallery.svg?raw","../DS1/x-icon/google.svg?raw","../DS1/x-icon/group.svg?raw","../DS1/x-icon/head.svg?raw","../DS1/x-icon/home.svg?raw","../DS1/x-icon/icon.svg?raw","../DS1/x-icon/in.svg?raw","../DS1/x-icon/left.svg?raw","../DS1/x-icon/lock.svg?raw","../DS1/x-icon/loop.svg?raw","../DS1/x-icon/mic.svg?raw","../DS1/x-icon/minimize.svg?raw","../DS1/x-icon/more.svg?raw","../DS1/x-icon/neutral.svg?raw","../DS1/x-icon/note.svg?raw","../DS1/x-icon/open.svg?raw","../DS1/x-icon/page.svg?raw","../DS1/x-icon/plus.svg?raw","../DS1/x-icon/rewind.svg?raw","../DS1/x-icon/right.svg?raw","../DS1/x-icon/row.svg?raw","../DS1/x-icon/sdown.svg?raw","../DS1/x-icon/search.svg?raw","../DS1/x-icon/see.svg?raw","../DS1/x-icon/ship.svg?raw","../DS1/x-icon/star.svg?raw","../DS1/x-icon/status.svg?raw","../DS1/x-icon/sup.svg?raw","../DS1/x-icon/title.svg?raw","../DS1/x-icon/undo.svg?raw","../DS1/x-icon/ungroup.svg?raw","../DS1/x-icon/unhead.svg?raw","../DS1/x-icon/unicon.svg?raw","../DS1/x-icon/unlock.svg?raw","../DS1/x-icon/unmic.svg?raw","../DS1/x-icon/unsee.svg?raw","../DS1/x-icon/unstar.svg?raw","../DS1/x-icon/untitle.svg?raw","../DS1/x-icon/up.svg?raw","../node_modules/lit-html/directives/unsafe-html.js","../DS1/2-core/ds-icon.ts","../DS1/2-core/ds-cycle.ts","../DS1/2-core/ds-date.ts","../DS1/2-core/ds-gap.ts","../DS1/2-core/ds-input.ts","../DS1/2-core/ds-tooltip.ts","../DS1/3-unit/ds-row.ts","../DS1/3-unit/ds-accordion.ts","../DS1/3-unit/ds-form.ts","../DS1/3-unit/ds-list.ts","../DS1/3-unit/ds-table.ts","../DS1/4-page/ds-container.ts","../DS1/4-page/ds-grid.ts","../DS1/4-page/ds-layout.ts"],"sourcesContent":["// 2025-04-23-device.ts\n// Device detection and context utilities\n\nexport type DeviceType = \"mobile\" | \"tablet\" | \"desktop\";\n\nexport interface DeviceInfo {\n isMobile: boolean;\n isTablet: boolean;\n isDesktop: boolean;\n isTouchCapable: boolean;\n deviceType: DeviceType;\n userAgent: string;\n screenWidth: number;\n screenHeight: number;\n}\n\n/**\n * Comprehensive mobile device detection\n * Combines user agent detection, touch capability, and viewport size\n */\nexport function detectMobileDevice(): boolean {\n if (typeof navigator === \"undefined\" || typeof window === \"undefined\") {\n return false;\n }\n\n const nav = navigator as any;\n const win = window as any;\n const ua: string =\n (nav && (nav.userAgent || nav.vendor)) || (win && win.opera) || \"\";\n\n // User agent based detection\n const uaMatchesMobile =\n /Mobile|Android|iP(ad|hone|od)|IEMobile|BlackBerry|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)|Windows Phone|Phone|Tablet/i.test(\n ua\n );\n\n // Touch capability detection\n const touchPoints = (nav && nav.maxTouchPoints) || 0;\n const isTouchCapable = touchPoints > 1;\n\n // Viewport detection\n const narrowViewport = win\n ? Math.min(win.innerWidth || 0, win.innerHeight || 0) <= 820\n : false;\n\n return uaMatchesMobile || (isTouchCapable && narrowViewport);\n}\n\n/**\n * Get detailed device information\n */\nexport function getDeviceInfo(): DeviceInfo {\n const isMobile = detectMobileDevice();\n const nav = navigator as any;\n const win = window as any;\n\n const touchPoints = (nav && nav.maxTouchPoints) || 0;\n const isTouchCapable = touchPoints > 1;\n\n // Use clientWidth instead of innerWidth to exclude scrollbars\n const screenWidth =\n typeof document !== \"undefined\"\n ? document.documentElement.clientWidth\n : win?.innerWidth || 0;\n const screenHeight =\n typeof document !== \"undefined\"\n ? document.documentElement.clientHeight\n : win?.innerHeight || 0;\n const isTablet = isMobile && Math.min(screenWidth, screenHeight) >= 600;\n\n return {\n isMobile,\n isTablet,\n isDesktop: !isMobile,\n isTouchCapable,\n deviceType: isMobile ? (isTablet ? \"tablet\" : \"mobile\") : \"desktop\",\n userAgent: (nav && (nav.userAgent || nav.vendor)) || \"\",\n screenWidth,\n screenHeight,\n };\n}\n\n/**\n * Initialize device detection and log to console\n */\nexport function initDeviceDetection(): DeviceInfo {\n const deviceInfo = getDeviceInfo();\n\n // Calculate and set scaling factor for mobile\n if (deviceInfo.isMobile && typeof document !== \"undefined\") {\n // Design width: 280px (14 columns × 20px)\n const designWidth = 280;\n const actualWidth = deviceInfo.screenWidth;\n const scalingFactor = actualWidth / designWidth;\n\n // Set CSS custom property for scaling on html element\n document.documentElement.style.setProperty(\n \"--sf\",\n scalingFactor.toFixed(3)\n );\n // Also set --sf for backwards compatibility\n document.documentElement.style.setProperty(\n \"--sf\",\n scalingFactor.toFixed(3)\n );\n\n // Add .mobile class to html element for CSS targeting\n document.documentElement.classList.add(\"mobile\");\n document.documentElement.classList.remove(\"desktop\");\n\n console.log(\n `[DS one] Mobile device detected - ${deviceInfo.deviceType} (${deviceInfo.screenWidth}x${deviceInfo.screenHeight}), scaling factor: ${scalingFactor.toFixed(2)}`\n );\n } else {\n // Desktop - no scaling\n if (typeof document !== \"undefined\") {\n document.documentElement.style.setProperty(\"--sf\", \"1\");\n // Also set --sf for backwards compatibility\n document.documentElement.style.setProperty(\"--sf\", \"1\");\n\n // Add .desktop class and remove .mobile class\n document.documentElement.classList.add(\"desktop\");\n document.documentElement.classList.remove(\"mobile\");\n }\n console.log(\n `[DS one] Desktop device detected (${deviceInfo.screenWidth}x${deviceInfo.screenHeight})`\n );\n }\n\n // Log additional details in development mode\n if (typeof window !== \"undefined\" && (window as any).DS_ONE_DEBUG) {\n console.log(\"[DS one] Device Info:\", {\n type: deviceInfo.deviceType,\n isMobile: deviceInfo.isMobile,\n isTablet: deviceInfo.isTablet,\n isDesktop: deviceInfo.isDesktop,\n isTouchCapable: deviceInfo.isTouchCapable,\n viewport: `${deviceInfo.screenWidth}x${deviceInfo.screenHeight}`,\n userAgent: deviceInfo.userAgent,\n });\n }\n\n return deviceInfo;\n}\n\n// Auto-initialize when module loads\nif (typeof window !== \"undefined\") {\n // Wait for DOM to be ready\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => {\n initDeviceDetection();\n });\n } else {\n // DOM is already ready\n initDeviceDetection();\n }\n\n // Recalculate on resize (debounced)\n let resizeTimeout: any;\n window.addEventListener(\"resize\", () => {\n clearTimeout(resizeTimeout);\n resizeTimeout = setTimeout(() => {\n initDeviceDetection();\n }, 100);\n });\n}\n\n/**\n * Disable double-tap to zoom in the browser (app-like behavior)\n * Prevents all zoom gestures including double-tap and pinch-to-zoom\n */\nexport function applike(): void {\n if (typeof document === \"undefined\" || typeof window === \"undefined\") {\n return;\n }\n\n // Set viewport meta tag to prevent zoom - this is the most important step\n let viewport = document.querySelector('meta[name=\"viewport\"]');\n if (!viewport) {\n viewport = document.createElement(\"meta\");\n viewport.setAttribute(\"name\", \"viewport\");\n document.head.appendChild(viewport);\n }\n viewport.setAttribute(\n \"content\",\n \"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\"\n );\n\n // Apply touch-action: pan-x pan-y globally to prevent zoom but allow panning\n const style = document.createElement(\"style\");\n style.id = \"ds-one-applike-style\";\n style.textContent = `\n * {\n touch-action: pan-x pan-y !important;\n -ms-touch-action: pan-x pan-y !important;\n }\n html, body {\n touch-action: pan-x pan-y !important;\n -ms-touch-action: pan-x pan-y !important;\n }\n `;\n // Remove existing style if present\n const existingStyle = document.getElementById(\"ds-one-applike-style\");\n if (existingStyle) {\n existingStyle.remove();\n }\n document.head.appendChild(style);\n\n // Track touch events to prevent double-tap zoom\n let lastTouchEnd = 0;\n let touchStartTime = 0;\n\n const preventZoom = (event: TouchEvent | WheelEvent | Event) => {\n // Prevent pinch zoom (two fingers)\n if (event instanceof TouchEvent) {\n if (event.touches.length > 1) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n const now = Date.now();\n\n if (event.type === \"touchstart\") {\n // If touchstart happens within 300ms of last touchend, it's likely a double-tap\n if (now - lastTouchEnd < 300) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n touchStartTime = now;\n } else if (event.type === \"touchend\") {\n const touchDuration = now - touchStartTime;\n // If this is a quick tap (< 300ms) and happened soon after previous touchend, prevent it\n if (touchDuration < 300 && now - lastTouchEnd < 300) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n lastTouchEnd = now;\n } else if (event.type === \"touchmove\") {\n // Prevent any touchmove that might trigger zoom\n if (event.touches.length > 1) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n }\n\n // Prevent wheel zoom with ctrl/cmd key (common on trackpads)\n if (event instanceof WheelEvent && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n };\n\n // Use capture phase to catch events earlier\n const options = { passive: false, capture: true };\n\n // Prevent all zoom gestures - use capture phase\n document.addEventListener(\"touchstart\", preventZoom, options);\n document.addEventListener(\"touchmove\", preventZoom, options);\n document.addEventListener(\"touchend\", preventZoom, options);\n document.addEventListener(\"touchcancel\", preventZoom, options);\n\n // Prevent wheel zoom\n document.addEventListener(\"wheel\", preventZoom, options);\n\n // Prevent gesture events (iOS Safari) - use capture phase\n document.addEventListener(\n \"gesturestart\",\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n options\n );\n document.addEventListener(\n \"gesturechange\",\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n options\n );\n document.addEventListener(\n \"gestureend\",\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n options\n );\n}\n","// Define the supported languages using ISO codes (extensible)\nexport type LanguageCode = string;\n\n// Define the structure of our translation data\ntype TranslationData = {\n [key: string]: string;\n};\n\ntype TranslationMap = Record<string, TranslationData>;\n\n// Bundled translations (keys.json may not exist - will use external translations if not available)\n// This is a fallback for when external translations aren't loaded\nlet translationKeys: TranslationMap = {};\n\n// Primary language list – prioritise the 10 requested languages when cycling\nconst LANGUAGE_PRIORITY_ORDER = [\n \"da\",\n \"de\",\n \"en\",\n \"es\",\n \"fr\",\n \"it\",\n \"ja\",\n \"pt\",\n \"sv\",\n \"zh\",\n] as const;\n\nconst LANGUAGE_PRIORITY_LOOKUP = new Map<string, number>(\n LANGUAGE_PRIORITY_ORDER.map((code, index) => [code, index])\n);\n\n// Fallback language names if Intl.DisplayNames is not available\nconst FALLBACK_LANGUAGE_NAMES: Record<string, string> = {\n da: \"Danish\",\n \"da-dk\": \"Danish\",\n de: \"German\",\n \"de-de\": \"German\",\n en: \"English\",\n \"en-us\": \"English\",\n es: \"Spanish\",\n \"es-es\": \"Spanish\",\n fr: \"French\",\n \"fr-fr\": \"French\",\n it: \"Italian\",\n \"it-it\": \"Italian\",\n ja: \"Japanese\",\n \"ja-jp\": \"Japanese\",\n pt: \"Portuguese\",\n \"pt-pt\": \"Portuguese\",\n sv: \"Swedish\",\n \"sv-se\": \"Swedish\",\n zh: \"Chinese\",\n \"zh-cn\": \"Chinese\",\n \"zh-tw\": \"Chinese\",\n \"zh-hans\": \"Chinese\",\n \"zh-hant\": \"Chinese\",\n};\n\nconst DISPLAY_NAME_CACHE = new Map<string, Intl.DisplayNames>();\nlet displayNameFallbackWarningShown = false;\n\n// Declare window property for external translations\ndeclare global {\n interface Window {\n DS_ONE_TRANSLATIONS?: Record<string, TranslationData>;\n DS_ONE_TRANSLATIONS_FILE?: string;\n }\n}\n\n// CDN Loader: Automatically detects and loads translation JSON files\n// for CDN users who want to use external translations\n\nconst DEFAULT_TRANSLATION_FILE = \"./translations.json\";\nlet loadAttempted = false;\n\nfunction normalizeCandidate(path: string): string | null {\n if (!path) {\n return null;\n }\n const trimmed = path.trim();\n if (!trimmed) {\n return null;\n }\n\n if (\n trimmed.startsWith(\"./\") ||\n trimmed.startsWith(\"../\") ||\n trimmed.startsWith(\"/\") ||\n /^https?:\\/\\//i.test(trimmed)\n ) {\n return trimmed;\n }\n\n return `./${trimmed}`;\n}\n\nfunction findAttributeCandidate(): string | null {\n if (typeof document === \"undefined\") {\n return null;\n }\n\n const scriptWithAttribute = document.querySelector(\n \"script[data-ds-one-translations]\"\n );\n const scriptCandidate = scriptWithAttribute?.getAttribute(\n \"data-ds-one-translations\"\n );\n if (scriptCandidate) {\n return scriptCandidate;\n }\n\n const metaCandidate = document\n .querySelector('meta[name=\"ds-one:translations\"]')\n ?.getAttribute(\"content\");\n if (metaCandidate) {\n return metaCandidate;\n }\n\n const linkCandidate = document\n .querySelector('link[rel=\"ds-one-translations\"]')\n ?.getAttribute(\"href\");\n if (linkCandidate) {\n return linkCandidate;\n }\n\n return null;\n}\n\nfunction resolveTranslationSources(): string[] {\n const candidates: string[] = [];\n\n const windowCandidate =\n typeof window !== \"undefined\" ? window.DS_ONE_TRANSLATIONS_FILE : null;\n const attributeCandidate = findAttributeCandidate();\n\n // Only use explicitly configured paths, or the single default\n const windowNormalized = normalizeCandidate(windowCandidate ?? \"\");\n if (windowNormalized) {\n candidates.push(windowNormalized);\n }\n\n const attrNormalized = normalizeCandidate(attributeCandidate ?? \"\");\n if (attrNormalized && !candidates.includes(attrNormalized)) {\n candidates.push(attrNormalized);\n }\n\n // Only try default if no explicit path was configured\n if (candidates.length === 0) {\n candidates.push(DEFAULT_TRANSLATION_FILE);\n }\n\n return candidates;\n}\n\nfunction validateTranslationMap(\n candidate: unknown\n): candidate is TranslationMap {\n if (!candidate || typeof candidate !== \"object\") {\n return false;\n }\n\n return Object.values(candidate).every(\n (entry) => entry && typeof entry === \"object\"\n );\n}\n\nasync function fetchTranslationFile(\n source: string\n): Promise<TranslationMap | null> {\n try {\n const response = await fetch(source);\n\n if (!response.ok) {\n // 404 is expected if no translations file exists - don't log as error\n return null;\n }\n\n const translations = await response.json();\n\n if (!validateTranslationMap(translations)) {\n console.warn(\n `[DS one] Invalid translation format in ${source}. Expected object with language codes as keys.`\n );\n return null;\n }\n\n const languages = Object.keys(translations);\n if (languages.length === 0) {\n console.warn(`[DS one] No languages found in ${source}`);\n return null;\n }\n\n return translations;\n } catch {\n // Silently fail - file likely doesn't exist or isn't valid JSON\n return null;\n }\n}\n\n/**\n * Attempts to load translations from a JSON file in the same directory\n */\nasync function loadExternalTranslations(): Promise<boolean> {\n // Only attempt once\n if (loadAttempted) {\n return false;\n }\n loadAttempted = true;\n\n if (typeof window === \"undefined\") {\n return false;\n }\n\n // Check if translations are already loaded (e.g., by the application)\n if (\n window.DS_ONE_TRANSLATIONS &&\n Object.keys(window.DS_ONE_TRANSLATIONS).length > 0\n ) {\n console.log(\n `[DS one] Translations already loaded (${Object.keys(window.DS_ONE_TRANSLATIONS).length} languages), skipping auto-load`\n );\n return true;\n }\n\n const sources = resolveTranslationSources();\n\n for (const source of sources) {\n const translations = await fetchTranslationFile(source);\n if (!translations) {\n continue;\n }\n\n window.DS_ONE_TRANSLATIONS = translations;\n\n const languages = Object.keys(translations);\n console.log(\n `[DS one] External translations loaded from ${source}: ${languages.length} language(s) – ${languages.join(\", \")}`\n );\n\n window.dispatchEvent(new CustomEvent(\"translations-ready\"));\n return true;\n }\n\n console.info(\n `[DS one] No external translations found at ${sources[0] ?? DEFAULT_TRANSLATION_FILE}. Using bundled translations.`\n );\n\n return false;\n}\n\n// Get translation data - prioritize external, fall back to bundled\nfunction getTranslationData(): TranslationMap {\n // Check for externally loaded translations first (CDN usage)\n if (typeof window !== \"undefined\" && window.DS_ONE_TRANSLATIONS) {\n return window.DS_ONE_TRANSLATIONS;\n }\n\n // Fall back to bundled translations\n return translationKeys as TranslationMap;\n}\n\n// Cached translation data - use getter to always get fresh data\nlet translationData = getTranslationData();\n\nconst defaultLanguage: LanguageCode = \"en\";\n\nfunction extractPrimarySubtag(code: LanguageCode): string {\n if (!code) {\n return \"\";\n }\n return code.toLowerCase().split(/[-_]/)[0] ?? \"\";\n}\n\nfunction getLanguagePriority(code: LanguageCode): number {\n const primary = extractPrimarySubtag(code);\n const priority = LANGUAGE_PRIORITY_LOOKUP.get(primary);\n\n if (typeof priority === \"number\") {\n return priority;\n }\n\n return LANGUAGE_PRIORITY_ORDER.length;\n}\n\nfunction sortLanguageCodes(codes: LanguageCode[]): LanguageCode[] {\n return [...codes].sort((a, b) => {\n const priorityA = getLanguagePriority(a);\n const priorityB = getLanguagePriority(b);\n\n if (priorityA !== priorityB) {\n return priorityA - priorityB;\n }\n\n return a.localeCompare(b);\n });\n}\n\nfunction getDisplayNameForLocale(\n locale: string,\n code: LanguageCode\n): string | undefined {\n const normalizedLocale = locale?.replace(\"_\", \"-\");\n if (!normalizedLocale) {\n return undefined;\n }\n\n try {\n let displayNames = DISPLAY_NAME_CACHE.get(normalizedLocale);\n\n if (!displayNames) {\n displayNames = new Intl.DisplayNames([normalizedLocale], {\n type: \"language\",\n });\n DISPLAY_NAME_CACHE.set(normalizedLocale, displayNames);\n }\n\n const cleanedCode = code.replace(\"_\", \"-\");\n\n // Try full tag first\n const fullMatch = displayNames.of(cleanedCode);\n if (fullMatch && fullMatch !== cleanedCode) {\n return fullMatch;\n }\n\n // Then the primary subtag\n const baseMatch = displayNames.of(extractPrimarySubtag(cleanedCode));\n if (baseMatch) {\n return baseMatch;\n }\n } catch (error) {\n // Intl.DisplayNames may not be supported; fall back gracefully\n if (!displayNameFallbackWarningShown) {\n console.info(\n \"[DS one] Intl.DisplayNames is not available, using fallback language names.\"\n );\n displayNameFallbackWarningShown = true;\n }\n }\n\n return undefined;\n}\n\nfunction getFallbackDisplayName(code: LanguageCode): string | undefined {\n const normalized = code.toLowerCase().replace(\"_\", \"-\");\n const direct = FALLBACK_LANGUAGE_NAMES[normalized];\n\n if (direct) {\n return direct;\n }\n\n const primary = extractPrimarySubtag(normalized);\n return FALLBACK_LANGUAGE_NAMES[primary];\n}\n\nexport function getLanguageDisplayName(\n code: LanguageCode,\n options: { locale?: string } = {}\n): string {\n if (!code) {\n return \"\";\n }\n\n const localesToTry: string[] = [];\n\n if (options.locale) {\n localesToTry.push(options.locale);\n }\n\n if (typeof navigator !== \"undefined\") {\n if (Array.isArray(navigator.languages)) {\n localesToTry.push(...navigator.languages);\n }\n if (navigator.language) {\n localesToTry.push(navigator.language);\n }\n }\n\n localesToTry.push(defaultLanguage);\n localesToTry.push(\"en\");\n\n const tried = new Set<string>();\n\n for (const locale of localesToTry) {\n if (!locale || tried.has(locale)) {\n continue;\n }\n tried.add(locale);\n\n const displayName = getDisplayNameForLocale(locale, code);\n if (displayName) {\n return displayName;\n }\n }\n\n const fallback = getFallbackDisplayName(code);\n if (fallback) {\n return fallback;\n }\n\n // Fall back to the primary subtag in uppercase\n const primary = extractPrimarySubtag(code);\n return primary ? primary.toUpperCase() : code;\n}\n\nconst BROWSER_LANGUAGE_PREFERENCES: Record<string, LanguageCode> = {\n da: \"da\",\n \"da-dk\": \"da\",\n de: \"de\",\n \"de-de\": \"de\",\n en: \"en\",\n \"en-us\": \"en\",\n \"en-gb\": \"en\",\n es: \"es\",\n \"es-es\": \"es\",\n \"es-mx\": \"es\",\n fr: \"fr\",\n \"fr-fr\": \"fr\",\n it: \"it\",\n \"it-it\": \"it\",\n ja: \"ja\",\n \"ja-jp\": \"ja\",\n pt: \"pt\",\n \"pt-pt\": \"pt\",\n \"pt-br\": \"pt\",\n sv: \"sv\",\n \"sv-se\": \"sv\",\n zh: \"zh\",\n \"zh-cn\": \"zh\",\n \"zh-hans\": \"zh\",\n \"zh-tw\": \"zh\",\n \"zh-hant\": \"zh\",\n};\n\nfunction resolvePreferredLanguage(languageTag: string): LanguageCode | null {\n if (!languageTag) {\n return null;\n }\n\n const normalized = languageTag.toLowerCase().replace(\"_\", \"-\");\n\n const directMatch = BROWSER_LANGUAGE_PREFERENCES[normalized];\n if (directMatch) {\n return directMatch;\n }\n\n const primary = extractPrimarySubtag(normalized);\n const primaryMatch = BROWSER_LANGUAGE_PREFERENCES[primary];\n if (primaryMatch) {\n return primaryMatch;\n }\n\n return languageTag as LanguageCode;\n}\n\n// Helper function to get browser language\nexport function getBrowserLanguage(): LanguageCode {\n if (typeof navigator === \"undefined\") {\n return defaultLanguage;\n }\n\n const browserLang = navigator.language;\n\n if (browserLang) {\n const resolved = resolvePreferredLanguage(browserLang);\n if (resolved) {\n return resolved;\n }\n }\n\n if (Array.isArray(navigator.languages)) {\n for (const candidate of navigator.languages) {\n const resolved = resolvePreferredLanguage(candidate);\n if (resolved) {\n return resolved;\n }\n }\n }\n\n return defaultLanguage;\n}\n\n// Get stored language from localStorage\nconst storedLanguage =\n typeof window !== \"undefined\"\n ? ((window.localStorage?.getItem(\n \"ds-one:language\"\n ) as LanguageCode | null) ?? undefined)\n : undefined;\n\n// Create a reactive signal for the current language (Portfolio pattern)\nexport const currentLanguage = {\n value:\n (localStorage.getItem(\"language\") as LanguageCode) || getBrowserLanguage(),\n set: function (lang: LanguageCode) {\n this.value = lang;\n localStorage.setItem(\"language\", lang);\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: lang },\n bubbles: true,\n composed: true,\n })\n );\n },\n};\n\n// Auto-load translations when this module is imported (for CDN bundle)\nif (typeof window !== \"undefined\") {\n // Wait a bit to ensure the DOM is ready\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => {\n loadExternalTranslations();\n });\n } else {\n // DOM is already ready\n loadExternalTranslations();\n }\n}\n\n// Listen for external translations being loaded\nif (typeof window !== \"undefined\") {\n window.addEventListener(\"translations-ready\", () => {\n // Refresh translation data from external source\n translationData = getTranslationData();\n\n // Dispatch that translations are loaded\n window.dispatchEvent(new CustomEvent(\"translations-loaded\"));\n\n // Dispatch language-changed to update all components\n const currentLang = currentLanguage.value;\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: currentLang },\n bubbles: true,\n composed: true,\n })\n );\n });\n}\n\n// Initialize translations on module load\n// Use setTimeout to give other parts of the app time to set up event listeners first\nsetTimeout(() => {\n // Since we directly imported the data, just dispatch the events\n window.dispatchEvent(new CustomEvent(\"translations-loaded\"));\n\n // Also dispatch language-changed with the current language\n const currentLang = currentLanguage.value;\n\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: currentLang },\n bubbles: true,\n composed: true,\n })\n );\n}, 100);\n\n// Get translation by key\nexport function translate(key: string): string {\n const lang = currentLanguage.value;\n\n // Check if key exists in current language\n if (translationData?.[lang]?.[key]) {\n return translationData[lang][key];\n }\n\n // Try fallback to English\n if (lang !== defaultLanguage && translationData?.[defaultLanguage]?.[key]) {\n return translationData[defaultLanguage][key];\n }\n\n console.warn(\n `[DS one (Internationalization)] No translation found for key \"${key}\"`\n );\n return key;\n}\n\nexport function hasTranslation(\n key: string,\n language: LanguageCode = currentLanguage.value\n): boolean {\n if (!key) {\n return false;\n }\n\n const langData = translationData?.[language];\n if (langData && Object.prototype.hasOwnProperty.call(langData, key)) {\n return true;\n }\n\n if (\n language !== defaultLanguage &&\n translationData?.[defaultLanguage] &&\n Object.prototype.hasOwnProperty.call(translationData[defaultLanguage], key)\n ) {\n return true;\n }\n\n return false;\n}\n\n// Get text - synchronous version for components\nexport function getText(key: string): string {\n return translate(key);\n}\n\n// Get available languages - dynamically detect from loaded data\nexport function getAvailableLanguages(): Promise<LanguageCode[]> {\n // Always get fresh translation data\n const currentData = getTranslationData();\n\n if (currentData && Object.keys(currentData).length > 0) {\n const languages = Object.keys(currentData) as LanguageCode[];\n return Promise.resolve(sortLanguageCodes(languages));\n }\n return Promise.resolve([defaultLanguage]);\n}\n\n// Synchronous version for immediate use\nexport function getAvailableLanguagesSync(): LanguageCode[] {\n const currentData = getTranslationData();\n\n if (currentData && Object.keys(currentData).length > 0) {\n return sortLanguageCodes(Object.keys(currentData) as LanguageCode[]);\n }\n return [defaultLanguage];\n}\n\n// Load translations programmatically (for compatibility)\nexport function loadTranslations(\n language: LanguageCode,\n translations: TranslationData\n): void {\n // Since we have static data, this is mainly for compatibility\n console.log(\n `Loading additional translations for ${language}:`,\n Object.keys(translations).length,\n \"keys\"\n );\n}\n\n// Set language (Portfolio pattern)\nexport function setLanguage(language: LanguageCode): void {\n // Update the language in localStorage first\n localStorage.setItem(\"language\", language);\n\n // Then update the signal - this should trigger effects in components\n // that are subscribed to the signal\n currentLanguage.set(language);\n\n // Dispatch a custom event so non-signal-based components can update\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language },\n bubbles: true,\n composed: true,\n })\n );\n}\n","import type { LanguageCode } from \"./i18n\";\nimport type { ThemeType } from \"./theme\";\n\nexport type Preferences = {\n language?: LanguageCode;\n theme?: ThemeType;\n [key: string]: unknown;\n};\n\nexport function savePreferences(preferences: Preferences): void {\n if (typeof window === \"undefined\") {\n return;\n }\n\n try {\n const raw = window.localStorage?.getItem(\"ds-one:preferences\");\n const existing = raw ? (JSON.parse(raw) as Record<string, unknown>) : {};\n const next = { ...existing, ...preferences };\n window.localStorage?.setItem(\"ds-one:preferences\", JSON.stringify(next));\n } catch (error) {\n console.warn(\"ds-one: unable to persist preferences\", error);\n }\n}\n","/**\n * Currency label utilities for regional price display\n *\n * Note: This module provides currency symbols/labels based on language and region.\n * Consider moving this functionality into i18n.ts as it's region/locale-related.\n * Actual price values will be stored in a database or managed via Stripe.\n */\n\nimport type { LanguageCode } from \"./i18n\";\n\ntype PriceLabelOptions = {\n language: LanguageCode;\n country?: string;\n};\n\n// Simple price label mapping based on language/country\nconst PRICE_LABELS: Record<string, string> = {\n da: \"kr.\",\n nb: \"kr.\",\n sv: \"kr.\",\n de: \"€\",\n en: \"$\",\n pt: \"€\",\n es: \"€\",\n zh: \"¥\",\n ja: \"¥\",\n ko: \"₩\",\n};\n\nexport function getPriceLabel(options: PriceLabelOptions): string {\n const { language, country } = options;\n\n // If country is provided, try to map it to a currency\n if (country) {\n const countryUpper = country.toUpperCase();\n // Add country-specific mappings if needed\n if (countryUpper === \"US\" || countryUpper === \"USA\") {\n return \"$\";\n }\n if (countryUpper === \"GB\" || countryUpper === \"UK\") {\n return \"£\";\n }\n if (countryUpper === \"JP\" || countryUpper === \"JPN\") {\n return \"¥\";\n }\n if (countryUpper === \"CN\" || countryUpper === \"CHN\") {\n return \"¥\";\n }\n if (countryUpper === \"KR\" || countryUpper === \"KOR\") {\n return \"₩\";\n }\n }\n\n // Fall back to language-based mapping\n const primaryLang = language.toLowerCase().split(/[-_]/)[0];\n return PRICE_LABELS[primaryLang] || \"$\";\n}\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateIn = (member, obj) => {\n if (Object(obj) !== obj)\n throw TypeError('Cannot use the \"in\" operator on this value');\n return member.has(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction defaultEquals(a, b) {\n return Object.is(a, b);\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet activeConsumer = null;\nlet inNotificationPhase = false;\nlet epoch = 1;\nconst SIGNAL = /* @__PURE__ */ Symbol(\"SIGNAL\");\nfunction setActiveConsumer(consumer) {\n const prev = activeConsumer;\n activeConsumer = consumer;\n return prev;\n}\nfunction getActiveConsumer() {\n return activeConsumer;\n}\nfunction isInNotificationPhase() {\n return inNotificationPhase;\n}\nconst REACTIVE_NODE = {\n version: 0,\n lastCleanEpoch: 0,\n dirty: false,\n producerNode: void 0,\n producerLastReadVersion: void 0,\n producerIndexOfThis: void 0,\n nextProducerIndex: 0,\n liveConsumerNode: void 0,\n liveConsumerIndexOfThis: void 0,\n consumerAllowSignalWrites: false,\n consumerIsAlwaysLive: false,\n producerMustRecompute: () => false,\n producerRecomputeValue: () => {\n },\n consumerMarkedDirty: () => {\n },\n consumerOnSignalRead: () => {\n }\n};\nfunction producerAccessed(node) {\n if (inNotificationPhase) {\n throw new Error(\n typeof ngDevMode !== \"undefined\" && ngDevMode ? `Assertion error: signal read during notification phase` : \"\"\n );\n }\n if (activeConsumer === null) {\n return;\n }\n activeConsumer.consumerOnSignalRead(node);\n const idx = activeConsumer.nextProducerIndex++;\n assertConsumerNode(activeConsumer);\n if (idx < activeConsumer.producerNode.length && activeConsumer.producerNode[idx] !== node) {\n if (consumerIsLive(activeConsumer)) {\n const staleProducer = activeConsumer.producerNode[idx];\n producerRemoveLiveConsumerAtIndex(staleProducer, activeConsumer.producerIndexOfThis[idx]);\n }\n }\n if (activeConsumer.producerNode[idx] !== node) {\n activeConsumer.producerNode[idx] = node;\n activeConsumer.producerIndexOfThis[idx] = consumerIsLive(activeConsumer) ? producerAddLiveConsumer(node, activeConsumer, idx) : 0;\n }\n activeConsumer.producerLastReadVersion[idx] = node.version;\n}\nfunction producerIncrementEpoch() {\n epoch++;\n}\nfunction producerUpdateValueVersion(node) {\n if (!node.dirty && node.lastCleanEpoch === epoch) {\n return;\n }\n if (!node.producerMustRecompute(node) && !consumerPollProducersForChange(node)) {\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n return;\n }\n node.producerRecomputeValue(node);\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n}\nfunction producerNotifyConsumers(node) {\n if (node.liveConsumerNode === void 0) {\n return;\n }\n const prev = inNotificationPhase;\n inNotificationPhase = true;\n try {\n for (const consumer of node.liveConsumerNode) {\n if (!consumer.dirty) {\n consumerMarkDirty(consumer);\n }\n }\n } finally {\n inNotificationPhase = prev;\n }\n}\nfunction producerUpdatesAllowed() {\n return (activeConsumer == null ? void 0 : activeConsumer.consumerAllowSignalWrites) !== false;\n}\nfunction consumerMarkDirty(node) {\n var _a;\n node.dirty = true;\n producerNotifyConsumers(node);\n (_a = node.consumerMarkedDirty) == null ? void 0 : _a.call(node.wrapper ?? node);\n}\nfunction consumerBeforeComputation(node) {\n node && (node.nextProducerIndex = 0);\n return setActiveConsumer(node);\n}\nfunction consumerAfterComputation(node, prevConsumer) {\n setActiveConsumer(prevConsumer);\n if (!node || node.producerNode === void 0 || node.producerIndexOfThis === void 0 || node.producerLastReadVersion === void 0) {\n return;\n }\n if (consumerIsLive(node)) {\n for (let i = node.nextProducerIndex; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n while (node.producerNode.length > node.nextProducerIndex) {\n node.producerNode.pop();\n node.producerLastReadVersion.pop();\n node.producerIndexOfThis.pop();\n }\n}\nfunction consumerPollProducersForChange(node) {\n assertConsumerNode(node);\n for (let i = 0; i < node.producerNode.length; i++) {\n const producer = node.producerNode[i];\n const seenVersion = node.producerLastReadVersion[i];\n if (seenVersion !== producer.version) {\n return true;\n }\n producerUpdateValueVersion(producer);\n if (seenVersion !== producer.version) {\n return true;\n }\n }\n return false;\n}\nfunction producerAddLiveConsumer(node, consumer, indexOfThis) {\n var _a;\n assertProducerNode(node);\n assertConsumerNode(node);\n if (node.liveConsumerNode.length === 0) {\n (_a = node.watched) == null ? void 0 : _a.call(node.wrapper);\n for (let i = 0; i < node.producerNode.length; i++) {\n node.producerIndexOfThis[i] = producerAddLiveConsumer(node.producerNode[i], node, i);\n }\n }\n node.liveConsumerIndexOfThis.push(indexOfThis);\n return node.liveConsumerNode.push(consumer) - 1;\n}\nfunction producerRemoveLiveConsumerAtIndex(node, idx) {\n var _a;\n assertProducerNode(node);\n assertConsumerNode(node);\n if (typeof ngDevMode !== \"undefined\" && ngDevMode && idx >= node.liveConsumerNode.length) {\n throw new Error(\n `Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`\n );\n }\n if (node.liveConsumerNode.length === 1) {\n (_a = node.unwatched) == null ? void 0 : _a.call(node.wrapper);\n for (let i = 0; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n const lastIdx = node.liveConsumerNode.length - 1;\n node.liveConsumerNode[idx] = node.liveConsumerNode[lastIdx];\n node.liveConsumerIndexOfThis[idx] = node.liveConsumerIndexOfThis[lastIdx];\n node.liveConsumerNode.length--;\n node.liveConsumerIndexOfThis.length--;\n if (idx < node.liveConsumerNode.length) {\n const idxProducer = node.liveConsumerIndexOfThis[idx];\n const consumer = node.liveConsumerNode[idx];\n assertConsumerNode(consumer);\n consumer.producerIndexOfThis[idxProducer] = idx;\n }\n}\nfunction consumerIsLive(node) {\n var _a;\n return node.consumerIsAlwaysLive || (((_a = node == null ? void 0 : node.liveConsumerNode) == null ? void 0 : _a.length) ?? 0) > 0;\n}\nfunction assertConsumerNode(node) {\n node.producerNode ?? (node.producerNode = []);\n node.producerIndexOfThis ?? (node.producerIndexOfThis = []);\n node.producerLastReadVersion ?? (node.producerLastReadVersion = []);\n}\nfunction assertProducerNode(node) {\n node.liveConsumerNode ?? (node.liveConsumerNode = []);\n node.liveConsumerIndexOfThis ?? (node.liveConsumerIndexOfThis = []);\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction computedGet(node) {\n producerUpdateValueVersion(node);\n producerAccessed(node);\n if (node.value === ERRORED) {\n throw node.error;\n }\n return node.value;\n}\nfunction createComputed(computation) {\n const node = Object.create(COMPUTED_NODE);\n node.computation = computation;\n const computed = () => computedGet(node);\n computed[SIGNAL] = node;\n return computed;\n}\nconst UNSET = /* @__PURE__ */ Symbol(\"UNSET\");\nconst COMPUTING = /* @__PURE__ */ Symbol(\"COMPUTING\");\nconst ERRORED = /* @__PURE__ */ Symbol(\"ERRORED\");\nconst COMPUTED_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n value: UNSET,\n dirty: true,\n error: null,\n equal: defaultEquals,\n producerMustRecompute(node) {\n return node.value === UNSET || node.value === COMPUTING;\n },\n producerRecomputeValue(node) {\n if (node.value === COMPUTING) {\n throw new Error(\"Detected cycle in computations.\");\n }\n const oldValue = node.value;\n node.value = COMPUTING;\n const prevConsumer = consumerBeforeComputation(node);\n let newValue;\n let wasEqual = false;\n try {\n newValue = node.computation.call(node.wrapper);\n const oldOk = oldValue !== UNSET && oldValue !== ERRORED;\n wasEqual = oldOk && node.equal.call(node.wrapper, oldValue, newValue);\n } catch (err) {\n newValue = ERRORED;\n node.error = err;\n } finally {\n consumerAfterComputation(node, prevConsumer);\n }\n if (wasEqual) {\n node.value = oldValue;\n return;\n }\n node.value = newValue;\n node.version++;\n }\n };\n})();\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction defaultThrowError() {\n throw new Error();\n}\nlet throwInvalidWriteToSignalErrorFn = defaultThrowError;\nfunction throwInvalidWriteToSignalError() {\n throwInvalidWriteToSignalErrorFn();\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction createSignal(initialValue) {\n const node = Object.create(SIGNAL_NODE);\n node.value = initialValue;\n const getter = () => {\n producerAccessed(node);\n return node.value;\n };\n getter[SIGNAL] = node;\n return getter;\n}\nfunction signalGetFn() {\n producerAccessed(this);\n return this.value;\n}\nfunction signalSetFn(node, newValue) {\n if (!producerUpdatesAllowed()) {\n throwInvalidWriteToSignalError();\n }\n if (!node.equal.call(node.wrapper, node.value, newValue)) {\n node.value = newValue;\n signalValueChanged(node);\n }\n}\nconst SIGNAL_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n equal: defaultEquals,\n value: void 0\n };\n})();\nfunction signalValueChanged(node) {\n node.version++;\n producerIncrementEpoch();\n producerNotifyConsumers(node);\n}\n/**\n * @license\n * Copyright 2024 Bloomberg Finance L.P.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst NODE = Symbol(\"node\");\nvar Signal;\n((Signal2) => {\n var _a, _brand, brand_fn, _b, _brand2, brand_fn2;\n class State {\n constructor(initialValue, options = {}) {\n __privateAdd(this, _brand);\n __publicField(this, _a);\n const ref = createSignal(initialValue);\n const node = ref[SIGNAL];\n this[NODE] = node;\n node.wrapper = this;\n if (options) {\n const equals = options.equals;\n if (equals) {\n node.equal = equals;\n }\n node.watched = options[Signal2.subtle.watched];\n node.unwatched = options[Signal2.subtle.unwatched];\n }\n }\n get() {\n if (!(0, Signal2.isState)(this))\n throw new TypeError(\"Wrong receiver type for Signal.State.prototype.get\");\n return signalGetFn.call(this[NODE]);\n }\n set(newValue) {\n if (!(0, Signal2.isState)(this))\n throw new TypeError(\"Wrong receiver type for Signal.State.prototype.set\");\n if (isInNotificationPhase()) {\n throw new Error(\"Writes to signals not permitted during Watcher callback\");\n }\n const ref = this[NODE];\n signalSetFn(ref, newValue);\n }\n }\n _a = NODE;\n _brand = new WeakSet();\n brand_fn = function() {\n };\n Signal2.isState = (s) => typeof s === \"object\" && __privateIn(_brand, s);\n Signal2.State = State;\n class Computed {\n // Create a Signal which evaluates to the value returned by the callback.\n // Callback is called with this signal as the parameter.\n constructor(computation, options) {\n __privateAdd(this, _brand2);\n __publicField(this, _b);\n const ref = createComputed(computation);\n const node = ref[SIGNAL];\n node.consumerAllowSignalWrites = true;\n this[NODE] = node;\n node.wrapper = this;\n if (options) {\n const equals = options.equals;\n if (equals) {\n node.equal = equals;\n }\n node.watched = options[Signal2.subtle.watched];\n node.unwatched = options[Signal2.subtle.unwatched];\n }\n }\n get() {\n if (!(0, Signal2.isComputed)(this))\n throw new TypeError(\"Wrong receiver type for Signal.Computed.prototype.get\");\n return computedGet(this[NODE]);\n }\n }\n _b = NODE;\n _brand2 = new WeakSet();\n brand_fn2 = function() {\n };\n Signal2.isComputed = (c) => typeof c === \"object\" && __privateIn(_brand2, c);\n Signal2.Computed = Computed;\n ((subtle2) => {\n var _a2, _brand3, brand_fn3, _assertSignals, assertSignals_fn;\n function untrack(cb) {\n let output;\n let prevActiveConsumer = null;\n try {\n prevActiveConsumer = setActiveConsumer(null);\n output = cb();\n } finally {\n setActiveConsumer(prevActiveConsumer);\n }\n return output;\n }\n subtle2.untrack = untrack;\n function introspectSources(sink) {\n var _a3;\n if (!(0, Signal2.isComputed)(sink) && !(0, Signal2.isWatcher)(sink)) {\n throw new TypeError(\"Called introspectSources without a Computed or Watcher argument\");\n }\n return ((_a3 = sink[NODE].producerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [];\n }\n subtle2.introspectSources = introspectSources;\n function introspectSinks(signal) {\n var _a3;\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called introspectSinks without a Signal argument\");\n }\n return ((_a3 = signal[NODE].liveConsumerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [];\n }\n subtle2.introspectSinks = introspectSinks;\n function hasSinks(signal) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called hasSinks without a Signal argument\");\n }\n const liveConsumerNode = signal[NODE].liveConsumerNode;\n if (!liveConsumerNode)\n return false;\n return liveConsumerNode.length > 0;\n }\n subtle2.hasSinks = hasSinks;\n function hasSources(signal) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isWatcher)(signal)) {\n throw new TypeError(\"Called hasSources without a Computed or Watcher argument\");\n }\n const producerNode = signal[NODE].producerNode;\n if (!producerNode)\n return false;\n return producerNode.length > 0;\n }\n subtle2.hasSources = hasSources;\n class Watcher {\n // When a (recursive) source of Watcher is written to, call this callback,\n // if it hasn't already been called since the last `watch` call.\n // No signals may be read or written during the notify.\n constructor(notify) {\n __privateAdd(this, _brand3);\n __privateAdd(this, _assertSignals);\n __publicField(this, _a2);\n let node = Object.create(REACTIVE_NODE);\n node.wrapper = this;\n node.consumerMarkedDirty = notify;\n node.consumerIsAlwaysLive = true;\n node.consumerAllowSignalWrites = false;\n node.producerNode = [];\n this[NODE] = node;\n }\n // Add these signals to the Watcher's set, and set the watcher to run its\n // notify callback next time any signal in the set (or one of its dependencies) changes.\n // Can be called with no arguments just to reset the \"notified\" state, so that\n // the notify callback will be invoked again.\n watch(...signals) {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called unwatch without Watcher receiver\");\n }\n __privateMethod(this, _assertSignals, assertSignals_fn).call(this, signals);\n const node = this[NODE];\n node.dirty = false;\n const prev = setActiveConsumer(node);\n for (const signal of signals) {\n producerAccessed(signal[NODE]);\n }\n setActiveConsumer(prev);\n }\n // Remove these signals from the watched set (e.g., for an effect which is disposed)\n unwatch(...signals) {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called unwatch without Watcher receiver\");\n }\n __privateMethod(this, _assertSignals, assertSignals_fn).call(this, signals);\n const node = this[NODE];\n assertConsumerNode(node);\n for (let i = node.producerNode.length - 1; i >= 0; i--) {\n if (signals.includes(node.producerNode[i].wrapper)) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n const lastIdx = node.producerNode.length - 1;\n node.producerNode[i] = node.producerNode[lastIdx];\n node.producerIndexOfThis[i] = node.producerIndexOfThis[lastIdx];\n node.producerNode.length--;\n node.producerIndexOfThis.length--;\n node.nextProducerIndex--;\n if (i < node.producerNode.length) {\n const idxConsumer = node.producerIndexOfThis[i];\n const producer = node.producerNode[i];\n assertProducerNode(producer);\n producer.liveConsumerIndexOfThis[idxConsumer] = i;\n }\n }\n }\n }\n // Returns the set of computeds in the Watcher's set which are still yet\n // to be re-evaluated\n getPending() {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called getPending without Watcher receiver\");\n }\n const node = this[NODE];\n return node.producerNode.filter((n) => n.dirty).map((n) => n.wrapper);\n }\n }\n _a2 = NODE;\n _brand3 = new WeakSet();\n brand_fn3 = function() {\n };\n _assertSignals = new WeakSet();\n assertSignals_fn = function(signals) {\n for (const signal of signals) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called watch/unwatch without a Computed or State argument\");\n }\n }\n };\n Signal2.isWatcher = (w) => __privateIn(_brand3, w);\n subtle2.Watcher = Watcher;\n function currentComputed() {\n var _a3;\n return (_a3 = getActiveConsumer()) == null ? void 0 : _a3.wrapper;\n }\n subtle2.currentComputed = currentComputed;\n subtle2.watched = Symbol(\"watched\");\n subtle2.unwatched = Symbol(\"unwatched\");\n })(Signal2.subtle || (Signal2.subtle = {}));\n})(Signal || (Signal = {}));\nexport {\n Signal\n};\n","import{Signal as t}from\"signal-polyfill\";\n/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const i=Symbol(\"SignalWatcherBrand\"),s=new FinalizationRegistry((({watcher:t,signal:i})=>{t.unwatch(i)})),h=new WeakMap;function e(e){return!0===e[i]?(console.warn(\"SignalWatcher should not be applied to the same class more than once.\"),e):class extends e{constructor(){super(...arguments),this._$St=new t.State(0),this._$Si=!1,this._$So=!0,this._$Sh=new Set}_$Sl(){if(void 0!==this._$Su)return;this._$Sv=new t.Computed((()=>{this._$St.get(),super.performUpdate()}));const i=this._$Su=new t.subtle.Watcher((function(){const t=h.get(this);void 0!==t&&(!1===t._$Si&&t.requestUpdate(),this.watch())}));h.set(i,this),s.register(this,{watcher:i,signal:this._$Sv}),i.watch(this._$Sv)}_$Sp(){void 0!==this._$Su&&(this._$Su.unwatch(this._$Sv),this._$Sv=void 0,this._$Su=void 0)}performUpdate(){this.isUpdatePending&&(this._$Sl(),this._$Si=!0,this._$St.set(this._$St.get()+1),this._$Si=!1,this._$Sv.get())}update(t){try{this._$So?(this._$So=!1,super.update(t)):this._$Sh.forEach((t=>t.commit()))}finally{this.isUpdatePending=!1,this._$Sh.clear()}}requestUpdate(t,i,s){this._$So=!0,super.requestUpdate(t,i,s)}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){super.disconnectedCallback(),queueMicrotask((()=>{!1===this.isConnected&&this._$Sp()}))}_(t){this._$Sh.add(t);const i=this._$So;this.requestUpdate(),this._$So=i}m(t){this._$Sh.delete(t)}}}export{e as SignalWatcher};\n//# sourceMappingURL=signal-watcher.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.1\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{Signal as t}from\"signal-polyfill\";export*from\"signal-polyfill\";export{SignalWatcher}from\"./lib/signal-watcher.js\";export{WatchDirective,watch}from\"./lib/watch.js\";export{html,svg,withWatch}from\"./lib/html-tag.js\";\n/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=t.State,o=t.Computed,r=(l,o)=>new t.State(l,o),i=(l,o)=>new t.Computed(l,o);export{o as Computed,l as State,i as computed,r as signal};\n//# sourceMappingURL=index.js.map\n","// scaling.ts\n// Responsive scaling utilities for the design system\n\nimport { signal } from \"@lit-labs/signals\";\n\nexport type ScalingMode = \"auto\" | \"fixed\" | \"fluid\";\n\nexport interface ScalingConfig {\n mode: ScalingMode;\n baseWidth: number;\n minScale: number;\n maxScale: number;\n}\n\nconst defaultConfig: ScalingConfig = {\n mode: \"auto\",\n baseWidth: 280,\n minScale: 0.75,\n maxScale: 2.0,\n};\n\n// Reactive scaling factor signal\nexport const scalingFactor = signal<number>(1);\n\n// Current scaling configuration\nexport const scalingConfig = signal<ScalingConfig>(defaultConfig);\n\n/**\n * Calculate the scaling factor based on viewport width\n * @param viewportWidth - Current viewport width in pixels\n * @param config - Scaling configuration\n * @returns The calculated scaling factor\n */\nexport function calculateScalingFactor(\n viewportWidth: number,\n config: ScalingConfig = scalingConfig.get()\n): number {\n if (config.mode === \"fixed\") {\n return 1;\n }\n\n const rawScale = viewportWidth / config.baseWidth;\n const clampedScale = Math.max(\n config.minScale,\n Math.min(config.maxScale, rawScale)\n );\n\n return Number(clampedScale.toFixed(3));\n}\n\n/**\n * Set the scaling configuration\n * @param config - Partial scaling configuration to apply\n */\nexport function setScalingConfig(config: Partial<ScalingConfig>): void {\n const currentConfig = scalingConfig.get();\n const newConfig = { ...currentConfig, ...config };\n scalingConfig.set(newConfig);\n\n // Recalculate scaling factor if in browser\n if (typeof window !== \"undefined\") {\n updateScalingFactor();\n }\n}\n\n/**\n * Update the scaling factor based on current viewport\n */\nexport function updateScalingFactor(): void {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n\n const viewportWidth = document.documentElement.clientWidth;\n const config = scalingConfig.get();\n const newFactor = calculateScalingFactor(viewportWidth, config);\n\n scalingFactor.set(newFactor);\n\n // Update CSS custom property\n document.documentElement.style.setProperty(\"--sf\", newFactor.toString());\n\n // Dispatch event for components that need to react\n window.dispatchEvent(\n new CustomEvent(\"scaling-changed\", {\n detail: { scalingFactor: newFactor, config },\n })\n );\n}\n\n/**\n * Get the current scaling factor\n * @returns The current scaling factor\n */\nexport function getScalingFactor(): number {\n return scalingFactor.get();\n}\n\n/**\n * Convert a design pixel value to scaled pixels\n * @param designPx - The design pixel value (based on 280px width)\n * @returns The scaled pixel value\n */\nexport function scale(designPx: number): number {\n return designPx * scalingFactor.get();\n}\n\n/**\n * Convert a scaled pixel value back to design pixels\n * @param scaledPx - The scaled pixel value\n * @returns The design pixel value\n */\nexport function unscale(scaledPx: number): number {\n const factor = scalingFactor.get();\n return factor === 0 ? scaledPx : scaledPx / factor;\n}\n\n/**\n * Initialize scaling system\n * This is typically called automatically when the module loads\n */\nexport function initScaling(): void {\n if (typeof window === \"undefined\") {\n return;\n }\n\n // Initial calculation\n updateScalingFactor();\n\n // Update on resize (debounced)\n let resizeTimeout: ReturnType<typeof setTimeout>;\n window.addEventListener(\"resize\", () => {\n clearTimeout(resizeTimeout);\n resizeTimeout = setTimeout(() => {\n updateScalingFactor();\n }, 100);\n });\n\n // Update on orientation change\n window.addEventListener(\"orientationchange\", () => {\n setTimeout(updateScalingFactor, 100);\n });\n}\n\n// Auto-initialize when module loads in browser\nif (typeof window !== \"undefined\") {\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", initScaling);\n } else {\n initScaling();\n }\n}\n","import { signal } from \"@lit-labs/signals\";\n\nexport type ThemeType = \"light\" | \"dark\";\n\nfunction getInitialTheme(): ThemeType {\n if (typeof window === \"undefined\") {\n return \"light\";\n }\n\n const storedTheme = window.localStorage?.getItem(\"ds-one:theme\");\n if (storedTheme === \"light\" || storedTheme === \"dark\") {\n return storedTheme;\n }\n\n // Check system preference\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n return prefersDark ? \"dark\" : \"light\";\n}\n\nexport const currentTheme = signal<ThemeType>(getInitialTheme());\n\nexport function setTheme(theme: ThemeType): void {\n if (theme === currentTheme.get()) {\n return;\n }\n\n currentTheme.set(theme);\n\n if (typeof window !== \"undefined\") {\n try {\n window.localStorage?.setItem(\"ds-one:theme\", theme);\n } catch (error) {\n console.warn(\"ds-one: unable to persist theme preference\", error);\n }\n\n const root = window.document?.documentElement;\n if (root) {\n root.classList.remove(\"light-theme\", \"dark-theme\");\n root.classList.add(`${theme}-theme`);\n }\n\n window.dispatchEvent(\n new CustomEvent(\"theme-changed\", { detail: { theme } })\n );\n }\n}\n\n// Initialize theme on load\nif (typeof window !== \"undefined\") {\n const theme = currentTheme.get();\n const root = window.document?.documentElement;\n if (root) {\n root.classList.remove(\"light-theme\", \"dark-theme\");\n root.classList.add(`${theme}-theme`);\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.1\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { getText, currentLanguage } from \"../0-face/i18n\";\nimport styles from \"./styles/ds-text.css?inline\";\n\n/**\n * A component for displaying text from translations\n *\n * @element ds-text\n * @prop {string} text - The translation text to use\n * @prop {string} defaultValue - Default value if translation is not found\n * @prop {string} fallback - Optional fallback text if translation is not found (deprecated, use defaultValue)\n */\nexport class Text extends LitElement {\n static get properties() {\n return {\n text: { type: String, reflect: true },\n defaultValue: { type: String, reflect: true, attribute: \"default-value\" },\n fallback: { type: String, reflect: true }, // Kept for backward compatibility\n _text: { type: String, state: true },\n };\n }\n\n declare text: string;\n declare defaultValue: string;\n declare fallback: string;\n declare _text: string;\n declare _currentLanguage: string;\n private boundHandlers: { languageChanged: EventListener };\n\n constructor() {\n super();\n this.text = \"\";\n this.defaultValue = \"\";\n this.fallback = \"\";\n this._text = \"\";\n this._currentLanguage = currentLanguage.value;\n\n // Create bound event handlers for proper cleanup\n this.boundHandlers = {\n languageChanged: (() => {\n console.log(\"Language changed event received in ds-text\");\n this._currentLanguage = currentLanguage.value;\n this._updateLanguageAttribute();\n this._loadText();\n this.requestUpdate();\n }) as EventListener,\n };\n }\n\n static styles = unsafeCSS(styles);\n\n connectedCallback() {\n super.connectedCallback();\n this._currentLanguage = currentLanguage.value;\n this._updateLanguageAttribute();\n this._loadText();\n\n // Listen for language changes\n window.addEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n\n // Also listen for translations loaded event\n window.addEventListener(\n \"translations-loaded\",\n this.boundHandlers.languageChanged\n );\n\n // Listen for language changes via events instead of signals\n // The currentLanguage signal changes will trigger the language-changed event\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n window.removeEventListener(\n \"translations-loaded\",\n this.boundHandlers.languageChanged\n );\n }\n\n updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties);\n\n if (changedProperties.has(\"text\") || changedProperties.has(\"defaultValue\")) {\n this._loadText();\n }\n }\n\n _updateLanguageAttribute() {\n const lang = this._currentLanguage || currentLanguage.value;\n // Handles \"ja\", \"ja-JP\", \"zh-Hant\", \"zh-Hans\", etc.\n const parts = (lang || \"\").toLowerCase().split(/[-_]/).filter(Boolean);\n const primaryLang = parts[0] || \"\";\n\n if (primaryLang === \"ja\") {\n this.setAttribute(\"data-language\", \"ja\");\n return;\n }\n\n if (primaryLang === \"zh\") {\n // Prefer explicit script; otherwise infer from common regions.\n const hasHans =\n parts.includes(\"hans\") || parts.includes(\"cn\") || parts.includes(\"sg\");\n const hasHant =\n parts.includes(\"hant\") ||\n parts.includes(\"tw\") ||\n parts.includes(\"hk\") ||\n parts.includes(\"mo\");\n\n if (hasHans) this.setAttribute(\"data-language\", \"zh-hans\");\n else if (hasHant) this.setAttribute(\"data-language\", \"zh-hant\");\n else this.setAttribute(\"data-language\", \"zh\");\n return;\n }\n\n this.removeAttribute(\"data-language\");\n }\n\n _loadText() {\n if (!this.text) {\n this._text = this.defaultValue || this.fallback || \"\";\n this._updateLanguageAttribute();\n this.requestUpdate();\n return;\n }\n\n try {\n const translatedText = getText(this.text);\n this._text = translatedText || this.defaultValue || this.fallback || this.text;\n } catch (error) {\n console.error(\"Error loading text for text:\", this.text, error);\n this._text = this.defaultValue || this.fallback || this.text;\n }\n this._updateLanguageAttribute();\n this.requestUpdate();\n }\n\n render() {\n return html`<span>${this._text || this.defaultValue || this.text}</span>`;\n }\n}\n\ncustomElements.define(\"ds-text\", Text);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-text\": Text;\n }\n}\n","// ds-button.ts\n// Core button component\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport \"./ds-text\";\nimport styles from \"./styles/ds-button.css?inline\";\n\nexport class Button extends LitElement {\n static properties = {\n variant: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n bold: { type: Boolean, reflect: true },\n \"no-background\": {\n type: Boolean,\n reflect: true,\n attribute: \"no-background\",\n },\n blank: { type: Boolean, reflect: true },\n text: { type: String },\n fallback: { type: String },\n language: { type: String },\n defaultText: { type: String, attribute: \"default-text\" },\n href: { type: String },\n _loading: { type: Boolean, state: true },\n };\n\n // Public properties\n declare variant: string;\n declare disabled: boolean;\n declare bold: boolean;\n declare \"no-background\": boolean;\n declare blank: boolean;\n declare text: string;\n declare fallback: string;\n declare language: string;\n declare defaultText: string;\n declare href: string;\n\n // Private state\n declare _loading: boolean;\n\n constructor() {\n super();\n this.variant = \"title\";\n this.disabled = false;\n this.bold = false;\n this[\"no-background\"] = false;\n this.blank = false;\n this.text = \"\";\n this.fallback = \"\";\n this.language = \"en-US\";\n this.defaultText = \"\";\n this.href = \"\";\n this._loading = false;\n }\n\n static styles = unsafeCSS(styles);\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n render() {\n const hasTextProps = this.text || this.defaultText || this.fallback;\n\n return html`\n <button\n class=${this.variant}\n ?disabled=${this.disabled}\n ?bold=${this.bold}\n ?no-background=${this[\"no-background\"]}\n @click=${this._handleClick}\n >\n ${hasTextProps\n ? html`<ds-text\n .text=${this.text}\n .defaultValue=${this.defaultText}\n .fallback=${this.fallback}\n ></ds-text>`\n : html`<slot></slot>`}\n </button>\n `;\n }\n\n private _handleClick(e: Event) {\n // Prevent any action if disabled and stop event propagation\n if (this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n // If href is provided, navigate to the URL and do not bubble further\n if (this.href) {\n e.preventDefault();\n e.stopPropagation();\n if (this.blank) {\n window.open(this.href, \"_blank\", \"noopener,noreferrer\");\n } else {\n window.location.href = this.href;\n }\n return;\n }\n\n // Otherwise, rely on the native 'click' event bubbling from the inner\n // <button> through the shadow boundary to consumers of <ds-button>.\n // Do not re-dispatch a synthetic 'click' here to avoid duplicate events.\n }\n}\n\ncustomElements.define(\"ds-button\", Button);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-button\": Button;\n }\n}\n","// ds-banner.ts\n// Fixed banner component for notifications/alerts\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport { getText } from \"../0-face/i18n.js\";\nimport \"./ds-text.js\";\nimport \"./ds-button.js\";\nimport styles from \"./styles/ds-banner.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Banner extends LitElement {\n static properties = {\n text: { type: String },\n action: { type: String },\n href: { type: String },\n mailto: { type: String },\n subject: { type: String },\n describe: { type: String },\n appVersion: { type: String, attribute: \"app-version\" },\n variant: { type: String },\n version: { type: String },\n _showVersion: { type: Boolean, state: true },\n };\n\n text: string = \"\";\n action: string = \"\";\n href: string = \"\";\n mailto: string = \"\";\n subject: string = \"\";\n describe: string = \"\";\n appVersion: string = \"\";\n variant: string = \"warning\"; // warning, info, success, error\n version: string = \"\";\n _showVersion: boolean = false;\n\n private _boundUpdate = () => this.requestUpdate();\n\n connectedCallback() {\n super.connectedCallback();\n // Listen for translations and language changes to rebuild mailto URL\n window.addEventListener(\"translations-loaded\", this._boundUpdate);\n window.addEventListener(\"language-changed\", this._boundUpdate);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener(\"translations-loaded\", this._boundUpdate);\n window.removeEventListener(\"language-changed\", this._boundUpdate);\n }\n\n static styles = unsafeCSS(styles);\n\n private _toggleVersion() {\n if (this.version) {\n this._showVersion = !this._showVersion;\n }\n }\n\n private _getMailtoHref(): string {\n // If a direct href is provided, use it\n if (this.href && this.href !== \"#\") return this.href;\n\n // If mailto is provided, build internationalized URL\n if (this.mailto) {\n try {\n const subject = this.subject\n ? getText(this.subject) || this.subject\n : \"Issue report\";\n const describe = this.describe\n ? getText(this.describe) || this.describe\n : \"Describe the issue:\";\n const appVersionLabel = this.appVersion\n ? getText(this.appVersion) || this.appVersion\n : \"App version:\";\n\n const body = `${describe}\\n\\n\\n${appVersionLabel} ${this.version || \"\"}`;\n\n return `mailto:${this.mailto}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;\n } catch (error) {\n // Fallback if translations fail\n return `mailto:${this.mailto}?subject=Issue%20report&body=Describe%20the%20issue%3A%0A%0A%0AApp%20version%3A%20${this.version || \"\"}`;\n }\n }\n\n return \"#\";\n }\n\n render() {\n const mailtoHref = this._getMailtoHref();\n\n return html`\n <div class=\"text-wrapper\" @click=${this._toggleVersion}>\n ${this._showVersion && this.version\n ? html`<ds-text default-value=${this.version}></ds-text>`\n : html`<ds-text text=${this.text}><slot></slot></ds-text>`}\n </div>\n ${this.action\n ? html`\n <div class=\"action-wrapper\">\n <a href=${mailtoHref}>\n <ds-text text=${this.action}></ds-text>\n </a>\n </div>\n `\n : \"\"}\n `;\n }\n}\n\ncustomElements.define(\"ds-banner\", Banner);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-banner\": Banner;\n }\n}\n","// ds-card.ts\n// Card component for displaying content in a contained box\n\nimport { LitElement, html, css } from \"lit\";\n\nexport class Card extends LitElement {\n static properties = {\n variant: { type: String, reflect: true },\n elevation: { type: Number, reflect: true },\n interactive: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n padding: { type: String, reflect: true },\n };\n\n declare variant: \"default\" | \"outlined\" | \"elevated\" | \"filled\";\n declare elevation: number;\n declare interactive: boolean;\n declare disabled: boolean;\n declare padding: \"none\" | \"small\" | \"medium\" | \"large\";\n\n constructor() {\n super();\n this.variant = \"default\";\n this.elevation = 1;\n this.interactive = false;\n this.disabled = false;\n this.padding = \"medium\";\n }\n\n static styles = css`\n :host {\n display: block;\n box-sizing: border-box;\n border-radius: calc(var(--025) * var(--sf, 1));\n background-color: var(--card-background, var(--surface-color, #fff));\n color: var(--text-color-primary);\n transition:\n box-shadow 0.2s ease,\n transform 0.2s ease;\n }\n\n :host([variant=\"default\"]) {\n background-color: var(--card-background, var(--surface-color, #fff));\n border: 1px solid var(--border-color, rgba(0, 0, 0, 0.1));\n }\n\n :host([variant=\"outlined\"]) {\n background-color: transparent;\n border: 1px solid var(--border-color, rgba(0, 0, 0, 0.2));\n }\n\n :host([variant=\"elevated\"]) {\n background-color: var(--card-background, var(--surface-color, #fff));\n border: none;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n }\n\n :host([variant=\"filled\"]) {\n background-color: var(\n --card-background-filled,\n var(--surface-color-secondary, #f5f5f5)\n );\n border: none;\n }\n\n :host([elevation=\"0\"]) {\n box-shadow: none;\n }\n\n :host([elevation=\"1\"]) {\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\n }\n\n :host([elevation=\"2\"]) {\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);\n }\n\n :host([elevation=\"3\"]) {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.16);\n }\n\n :host([interactive]) {\n cursor: pointer;\n }\n\n :host([interactive]:hover:not([disabled])) {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n }\n\n :host([interactive]:active:not([disabled])) {\n transform: translateY(0);\n }\n\n :host([disabled]) {\n opacity: 0.5;\n pointer-events: none;\n }\n\n :host([padding=\"none\"]) {\n padding: 0;\n }\n\n :host([padding=\"small\"]) {\n padding: calc(var(--025) * var(--sf, 1));\n }\n\n :host([padding=\"medium\"]) {\n padding: calc(var(--05) * var(--sf, 1));\n }\n\n :host([padding=\"large\"]) {\n padding: calc(var(--1) * var(--sf, 1));\n }\n\n .card-content {\n width: 100%;\n height: 100%;\n }\n `;\n\n render() {\n return html`\n <div class=\"card-content\" part=\"content\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ncustomElements.define(\"ds-card\", Card);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-card\": Card;\n }\n}\n","export default \"<svg width=\\\"9\\\" height=\\\"8\\\" viewBox=\\\"0 0 9 8\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M2.20008 2.1176C1.96088 2.3776 1.48248 2.5024 1.09768 2.5024H0.848083V1.4H1.01448C1.68008 1.4 2.21048 1.0464 2.41848 0.307999H3.39608V7.692H2.20008V2.1176Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M4.27992 7.692L5.81912 4.9776L4.39432 2.492H5.68392L6.30792 3.7816C6.41192 3.9896 6.48472 4.1456 6.52632 4.312H6.54712C6.57832 4.156 6.65112 3.9792 6.75512 3.7712L7.33752 2.492H8.60632L7.21272 5.0088L8.75192 7.692H7.44152L6.72392 6.2672C6.61992 6.0592 6.53672 5.872 6.50552 5.7368H6.48472C6.45352 5.8512 6.37032 6.0488 6.25592 6.2672L5.53832 7.692H4.27992Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1.28996 0.148769V1.16877H0.269958V0.148769H1.28996Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.30998 0.148769V1.16877H5.28998V0.148769H6.30998Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.33 0.148769V1.16877H10.31V0.148769H11.33Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1.28996 5.16877V6.18877H0.269958V5.16877H1.28996Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.30998 5.16877V6.18877H5.28998V5.16877H6.30998Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.33 5.16877V6.18877H10.31V5.16877H11.33Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1.28996 10.1888V11.2088H0.269958V10.1888H1.28996Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.30998 10.1888V11.2088H5.28998V10.1888H6.30998Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.33 10.1888V11.2088H10.31V10.1888H11.33Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"17\\\" height=\\\"17\\\" viewBox=\\\"0 0 17 17\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M0.799988 3.34877L16.8 3.34877V4.36877L0.799988 4.36877V3.34877Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 8.16877L16.8 8.16877V9.18877L0.799988 9.18877V8.16877Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 12.9888H16.8V14.0088L0.799988 14.0088V12.9888Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M4.48999 16.6788L3.46999 16.6788L3.46999 0.678791L4.48999 0.678772L4.48999 16.6788Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M9.30999 16.6788L8.28999 16.6788L8.28999 0.678791L9.30999 0.678772L9.30999 16.6788Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M14.13 16.6788L13.11 16.6788L13.11 0.678791L14.13 0.678772L14.13 16.6788Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"17\\\" height=\\\"12\\\" viewBox=\\\"0 0 17 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M0.799988 0.148769L16.8 0.14877V1.16877L0.799988 1.16877V0.148769Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 5.16877L16.8 5.16877V6.18877L0.799988 6.18877V5.16877Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 10.1888H16.8V11.2088L0.799988 11.2088V10.1888Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"8\\\" viewBox=\\\"0 0 12 8\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M3.2 2.12C2.96 2.38 2.48 2.5 2.1 2.5H1.85V1.4H2.01C2.68 1.4 3.21 1.05 3.42 0.31H4.4V7.69H3.2V2.12Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M5.28 7.69L6.82 4.98L5.39 2.49H6.68L7.31 3.78C7.41 3.99 7.48 4.15 7.53 4.31H7.55C7.58 4.16 7.65 3.98 7.76 3.77L8.34 2.49H9.61L8.21 5.01L9.75 7.69H8.44L7.72 6.27C7.62 6.06 7.54 5.87 7.51 5.74H7.48C7.45 5.85 7.37 6.05 7.26 6.27L6.54 7.69H5.28Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"1\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"1\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"1\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"1\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0\\\" y=\\\"0\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"6.5\\\" y=\\\"0\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"6.5\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"6.5\\\" y=\\\"6.5\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<line x1=\\\"0\\\" y1=\\\"1\\\" x2=\\\"12\\\" y2=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n<line x1=\\\"0\\\" y1=\\\"4\\\" x2=\\\"12\\\" y2=\\\"4\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n<line x1=\\\"0\\\" y1=\\\"7\\\" x2=\\\"12\\\" y2=\\\"7\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n<line x1=\\\"0\\\" y1=\\\"10\\\" x2=\\\"12\\\" y2=\\\"10\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0\\\" y=\\\"0\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"0\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"0\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"0\\\" width=\\\"1.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"3.5\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"3.5\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"3.5\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"3.5\\\" width=\\\"1.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"7\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"7\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"7\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"7\\\" width=\\\"1.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"10.5\\\" width=\\\"2.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"10.5\\\" width=\\\"2.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"10.5\\\" width=\\\"2.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"10.5\\\" width=\\\"1.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"14\\\" viewBox=\\\"0 0 12 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M9.87 7.12C9.85 5.38 11.27 4.56 11.34 4.51C10.5 3.31 9.21 3.14 8.77 3.13C7.65 3.01 6.57 3.8 6 3.8C5.42 3.8 4.52 3.14 3.58 3.16C2.36 3.18 1.22 3.88 0.6 4.97C-0.68 7.18 0.28 10.44 1.51 12.23C2.13 13.1 2.85 14.09 3.79 14.06C4.7 14.02 5.05 13.47 6.15 13.47C7.24 13.47 7.56 14.06 8.52 14.03C9.5 14.01 10.12 13.15 10.71 12.27C11.42 11.26 11.7 10.28 11.71 10.23C11.69 10.22 9.89 9.52 9.87 7.12Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M8.15 2.06C8.65 1.45 9 0.62 8.91 0C8.18 0.03 7.29 0.49 6.77 1.08C6.31 1.61 5.88 2.47 5.99 3.08C6.79 3.14 7.63 2.66 8.15 2.06Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"6\\\" cy=\\\"3.5\\\" r=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M1 11C1 8.23858 3.23858 6 6 6C8.76142 6 11 8.23858 11 11V12H1V11Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"1\\\" width=\\\"10\\\" height=\\\"10\\\" rx=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M4 6L6 4L8 6M6 4V8\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"0.5\\\" width=\\\"10\\\" height=\\\"11\\\" rx=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"10\\\" viewBox=\\\"0 0 12 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 5L4.5 8.5L11 1.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M2 2L10 10M10 2L2 10\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M2 4L6 8L10 4\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"3\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0.5\\\" y=\\\"0.5\\\" width=\\\"3\\\" height=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n<rect x=\\\"4.5\\\" y=\\\"0.5\\\" width=\\\"3\\\" height=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n<rect x=\\\"8.5\\\" y=\\\"0.5\\\" width=\\\"3\\\" height=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"1\\\" width=\\\"10\\\" height=\\\"10\\\" rx=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"14\\\" viewBox=\\\"0 0 12 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 3H11M4.5 3V1.5H7.5V3M2.5 3V12.5C2.5 13.0523 2.94772 13.5 3.5 13.5H8.5C9.05228 13.5 9.5 13.0523 9.5 12.5V3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"4.5\\\" y1=\\\"5.5\\\" x2=\\\"4.5\\\" y2=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n<line x1=\\\"7.5\\\" y1=\\\"5.5\\\" x2=\\\"7.5\\\" y2=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"14\\\" viewBox=\\\"0 0 12 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"3.5\\\" y=\\\"0\\\" width=\\\"5\\\" height=\\\"8\\\" rx=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M1 6C1 8.76142 3.23858 11 6 11C8.76142 11 11 8.76142 11 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"6\\\" y1=\\\"11\\\" x2=\\\"6\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\"/>\\n<line x1=\\\"3.5\\\" y1=\\\"14\\\" x2=\\\"8.5\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M10 3L4.5 9L2 6.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6 2V10M6 10L2 6M6 10L10 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"3\\\" y=\\\"3\\\" width=\\\"8\\\" height=\\\"8\\\" rx=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M9 3V2C9 1.44772 8.55228 1 8 1H2C1.44772 1 1 1.44772 1 2V8C1 8.55228 1.44772 9 2 9H3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"11\\\" viewBox=\\\"0 0 16 11\\\" fill=\\\"none\\\">\\n <path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M14.0871 0.989435L0.930906 0.988037L0.930542 11L13.0753 11H14.0871V0.989435ZM7.50709 8.0566L1.94249 2.49201L1.94248 9.98814H13.0753V2.48839L7.50709 8.0566ZM2.85116 2L7.50709 6.65593L12.1515 1.99952L2.85116 2Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\">\\n <path d=\\\"M0 5.81415V0H5.80924L5.81842 0.990424H1.70698L11.0089 10.2943L10.9997 6.18585H12V12H6.19076L6.18158 11.0096H10.293L0.99115 1.70573L1.00033 5.81415H0Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"10\\\" viewBox=\\\"0 0 12 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0.5\\\" y=\\\"0.5\\\" width=\\\"11\\\" height=\\\"9\\\" rx=\\\"0.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"3.5\\\" cy=\\\"3.5\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M0 8L4 5L7 7L12 3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M11.82 6.13C11.82 5.72 11.79 5.32 11.71 4.93H6.12V7.2H9.31C9.18 7.91 8.78 8.52 8.18 8.92V10.4H10.08C11.19 9.38 11.82 7.9 11.82 6.13Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M6.12 11.82C7.76 11.82 9.15 11.28 10.08 10.4L8.18 8.92C7.67 9.27 7.01 9.47 6.12 9.47C4.54 9.47 3.2 8.44 2.76 7.05H0.81V8.58C1.76 10.46 3.8 11.82 6.12 11.82Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M2.76 7.05C2.63 6.65 2.55 6.23 2.55 5.79C2.55 5.35 2.63 4.93 2.76 4.53V3H0.81C0.29 4.02 0 5.17 0 6.41C0 7.65 0.29 8.8 0.81 9.82L2.76 7.05Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M6.12 2.12C7.08 2.12 7.95 2.45 8.63 3.1L10.13 1.6C9.15 0.69 7.76 0.18 6.12 0.18C3.8 0.18 1.76 1.54 0.81 3.42L2.76 4.95C3.2 3.56 4.54 2.53 6.12 2.53V2.12Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"9\\\" height=\\\"11\\\" viewBox=\\\"0 0 9 11\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M4.87149 10.5148C4.04816 10.5148 3.32882 10.3068 2.71349 9.89077C2.10682 9.47477 1.63882 8.90277 1.30949 8.17477C0.988825 7.4381 0.828491 6.6061 0.828491 5.67877C0.828491 4.7341 0.993158 3.89777 1.32249 3.16977C1.66049 2.4331 2.14582 1.8611 2.77849 1.45377C3.41982 1.04643 4.18682 0.842768 5.07949 0.842768C5.85949 0.842768 6.50082 0.994435 7.00349 1.29777C7.51483 1.6011 7.89183 1.9651 8.13449 2.38977C8.38583 2.80577 8.54183 3.22177 8.60249 3.63777L7.38049 3.80677C7.29383 3.3041 7.06416 2.85777 6.69149 2.46777C6.32749 2.07777 5.77716 1.88277 5.04049 1.88277C4.42516 1.88277 3.89216 2.0431 3.44149 2.36377C2.99949 2.68444 2.66149 3.13077 2.42749 3.70277C2.20216 4.27477 2.08949 4.93777 2.08949 5.69177C2.08949 6.80977 2.34082 7.71977 2.84349 8.42177C3.35483 9.12377 4.09149 9.47477 5.05349 9.47477C5.74683 9.47477 6.28849 9.31877 6.67849 9.00677C7.06849 8.6861 7.32849 8.31344 7.45849 7.88877C7.59716 7.4641 7.66649 7.05677 7.66649 6.66677V6.51077H4.96249V5.47077H8.77149V10.2938H7.87449L7.70549 8.81177C7.49749 9.3231 7.14216 9.73477 6.63949 10.0468C6.13683 10.3588 5.54749 10.5148 4.87149 10.5148Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 4H11M1 4V2C1 1.44772 1.44772 1 2 1H10C10.5523 1 11 1.44772 11 2V4M1 4V10C1 10.5523 1.44772 11 2 11H10C10.5523 11 11 10.5523 11 10V4\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"4\\\" y1=\\\"6.5\\\" x2=\\\"8\\\" y2=\\\"6.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\"/>\\n<line x1=\\\"4\\\" y1=\\\"8.5\\\" x2=\\\"8\\\" y2=\\\"8.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 5L6 1L11 5V11H7.5V7.5H4.5V11H1V5Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"1\\\" width=\\\"10\\\" height=\\\"10\\\" rx=\\\"2\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6 1L6 8M6 8L3 5M6 8L9 5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n<path d=\\\"M2 10H10\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"9\\\" viewBox=\\\"0 0 16 9\\\" fill=\\\"none\\\">\\n <path d=\\\"M1.90697 3.60594H15.0636V4.61651L1.90734 4.61791L4.81456 7.52513L4.10774 8.21898L-1.23978e-05 4.11123L4.11122 0L4.81855 0.707338L1.90697 3.60594Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\\n\"","export default \"<svg width=\\\"10\\\" height=\\\"12\\\" viewBox=\\\"0 0 10 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"5\\\" width=\\\"8\\\" height=\\\"6\\\" rx=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M3 5V3C3 1.89543 3.89543 1 5 1C6.10457 1 7 1.89543 7 3V5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"5\\\" cy=\\\"8\\\" r=\\\"1\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M10 3H2C1.44772 3 1 3.44772 1 4V8C1 8.55228 1.44772 9 2 9H10C10.5523 9 11 8.55228 11 8V4C11 3.44772 10.5523 3 10 3Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M8.5 1L10.5 3L8.5 5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M3.5 7L1.5 9L3.5 11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"10\\\" height=\\\"14\\\" viewBox=\\\"0 0 10 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"2.5\\\" y=\\\"1\\\" width=\\\"5\\\" height=\\\"7\\\" rx=\\\"2.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M1 6C1 8.76142 2.79086 11 5 11C7.20914 11 9 8.76142 9 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"5\\\" y1=\\\"11\\\" x2=\\\"5\\\" y2=\\\"13\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"2\\\" viewBox=\\\"0 0 12 2\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<line x1=\\\"1\\\" y1=\\\"1\\\" x2=\\\"11\\\" y2=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"4\\\" viewBox=\\\"0 0 12 4\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"2\\\" cy=\\\"2\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"6\\\" cy=\\\"2\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"2\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"5\\\" r=\\\"1\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"8\\\" cy=\\\"5\\\" r=\\\"1\\\" fill=\\\"currentColor\\\"/>\\n<line x1=\\\"4\\\" y1=\\\"8\\\" x2=\\\"8\\\" y2=\\\"8\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 2C1 1.44772 1.44772 1 2 1H7L11 5V10C11 10.5523 10.5523 11 10 11H2C1.44772 11 1 10.5523 1 10V2Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M7 1V5H11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"3\\\" y1=\\\"7\\\" x2=\\\"9\\\" y2=\\\"7\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\"/>\\n<line x1=\\\"3\\\" y1=\\\"9\\\" x2=\\\"7\\\" y2=\\\"9\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\">\\n <path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M12 0.688477V6.54217H10.9936L11.0028 2.40581L1.64458 11.7729L0.924406 11.0528L10.2827 1.68564H6.14631L6.15554 0.688477H12Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\\n\"","export default \"<svg width=\\\"10\\\" height=\\\"12\\\" viewBox=\\\"0 0 10 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 2C1 1.44772 1.44772 1 2 1H6L9 4V10C9 10.5523 8.55228 11 8 11H2C1.44772 11 1 10.5523 1 10V2Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M6 1V4H9\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6 2V10M2 6H10\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"10\\\" viewBox=\\\"0 0 12 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6 1L1 5L6 9V1Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M12 1L7 5L12 9V1Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"15.064\\\" height=\\\"8.219\\\" viewBox=\\\"0 0 15.064 8.219\\\" fill=\\\"none\\\">\\n <path d=\\\"M14.5815 4.48047L11.0815 8.21047L10.4315 7.59047L13.1315 4.71047H0.581543V3.71047H13.1315L10.4315 0.830469L11.0815 0.210469L14.5815 3.94047C14.7815 4.15047 14.7815 4.27047 14.5815 4.48047Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0.5\\\" y=\\\"0.5\\\" width=\\\"11\\\" height=\\\"3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n<rect x=\\\"0.5\\\" y=\\\"4.5\\\" width=\\\"11\\\" height=\\\"3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n<rect x=\\\"0.5\\\" y=\\\"8.5\\\" width=\\\"11\\\" height=\\\"3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"8\\\" height=\\\"5\\\" viewBox=\\\"0 0 8 5\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 1L4 4L7 1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"5\\\" cy=\\\"5\\\" r=\\\"4\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"8\\\" y1=\\\"8\\\" x2=\\\"11\\\" y2=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"14\\\" height=\\\"10\\\" viewBox=\\\"0 0 14 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M7 1C3.5 1 1 5 1 5C1 5 3.5 9 7 9C10.5 9 13 5 13 5C13 5 10.5 1 7 1Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"5\\\" r=\\\"2\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"14\\\" height=\\\"12\\\" viewBox=\\\"0 0 14 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M2 8L1 11H13L12 8\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M3 8V4H6V1H8V4H11V8H3Z\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"5\\\" y=\\\"5\\\" width=\\\"4\\\" height=\\\"2\\\" fill=\\\"var(--surface-color, #fff)\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6 1L7.5 4.5L11 5L8.5 7.5L9 11L6 9.5L3 11L3.5 7.5L1 5L4.5 4.5L6 1Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"2\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"8\\\" height=\\\"5\\\" viewBox=\\\"0 0 8 5\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 4L4 1L7 4\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"10\\\" viewBox=\\\"0 0 12 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 1H11M6 1V9M3 9H9\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"10\\\" viewBox=\\\"0 0 12 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 4L4 1M1 4L4 7M1 4H8C9.65685 4 11 5.34315 11 7V9\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0.5\\\" y=\\\"0.5\\\" width=\\\"5\\\" height=\\\"5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" stroke-dasharray=\\\"2 1\\\" fill=\\\"none\\\"/>\\n<rect x=\\\"6.5\\\" y=\\\"6.5\\\" width=\\\"5\\\" height=\\\"5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" stroke-dasharray=\\\"2 1\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 1H11M1 1V10C1 10.5523 1.44772 11 2 11H10C10.5523 11 11 10.5523 11 10V1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-dasharray=\\\"2 1\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"1\\\" width=\\\"10\\\" height=\\\"10\\\" rx=\\\"2\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-dasharray=\\\"2 1\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"10\\\" height=\\\"12\\\" viewBox=\\\"0 0 10 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"5\\\" width=\\\"8\\\" height=\\\"6\\\" rx=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M3 5V3C3 1.89543 3.89543 1 5 1C6.10457 1 7 1.89543 7 3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"5\\\" cy=\\\"8\\\" r=\\\"1\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"10\\\" height=\\\"14\\\" viewBox=\\\"0 0 10 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"2.5\\\" y=\\\"1\\\" width=\\\"5\\\" height=\\\"7\\\" rx=\\\"2.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M1 6C1 8.76142 2.79086 11 5 11C7.20914 11 9 8.76142 9 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"5\\\" y1=\\\"11\\\" x2=\\\"5\\\" y2=\\\"13\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n<line x1=\\\"1\\\" y1=\\\"1\\\" x2=\\\"9\\\" y2=\\\"13\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"14\\\" height=\\\"12\\\" viewBox=\\\"0 0 14 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M7 2C3.5 2 1 6 1 6C1 6 3.5 10 7 10C10.5 10 13 6 13 6C13 6 10.5 2 7 2Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"6\\\" r=\\\"2\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"2\\\" y1=\\\"1\\\" x2=\\\"12\\\" y2=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6 1L7.5 4.5L11 5L8.5 7.5L9 11L6 9.5L3 11L3.5 7.5L1 5L4.5 4.5L6 1Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linejoin=\\\"round\\\" stroke-dasharray=\\\"2 1\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"10\\\" viewBox=\\\"0 0 12 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 1H11M6 1V9M3 9H9\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-dasharray=\\\"2 1\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6 10V2M6 2L2 6M6 2L10 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","import{nothing as t,noChange as i}from\"../lit-html.js\";import{Directive as r,PartType as s,directive as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends r{constructor(i){if(super(i),this.it=t,i.type!==s.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=n(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import { LitElement, html, unsafeCSS, type PropertyValues } from \"lit\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport styles from \"./styles/ds-icon.css?inline\";\n\nexport class Icon extends LitElement {\n static properties = {\n type: { type: String, reflect: true },\n };\n\n private _type = \"\";\n\n size = \"1em\";\n color = \"currentColor\";\n background = \"transparent\";\n\n get type() {\n return this._type;\n }\n set type(val) {\n const oldVal = this._type;\n this._type = val;\n this.requestUpdate(\"type\", oldVal);\n }\n\n static styles = unsafeCSS(styles);\n\n // Load all SVGs from `x Icon/` as raw strings at build time (Vite)\n // The keys will be the file base names (without extension), lowercased.\n private static readonly iconNameToSvgMap: Record<string, string> = (() => {\n try {\n // Note: folder name contains a space, keep it exact.\n const modules = (import.meta as any).glob(\"../x-icon/*.svg\", {\n query: \"?raw\",\n import: \"default\",\n eager: true,\n }) as Record<string, string>;\n\n const map: Record<string, string> = {};\n for (const [path, content] of Object.entries(modules)) {\n const fileName = path.split(\"/\").pop() ?? \"\";\n const baseName = fileName.replace(/\\.svg$/i, \"\").toLowerCase();\n if (baseName) {\n map[baseName] = content;\n }\n }\n return map;\n } catch (err) {\n // If not running under Vite (or during tests), gracefully degrade.\n console.warn(\n \"Icon: failed to glob SVGs from x Icon/; falling back only to inline switch icons.\",\n err\n );\n return {};\n }\n })();\n\n constructor() {\n super();\n console.log(\"Icon constructor\", this._type);\n }\n\n connectedCallback() {\n super.connectedCallback();\n console.log(\"Icon connected\", this._type);\n }\n\n renderIcon() {\n console.log(\"renderIcon called with type:\", this._type);\n\n if (!this._type || this._type === \"\") {\n console.log(\"No type specified, rendering default slot\");\n return html`<div class=\"icon-container\"><slot></slot></div>`;\n }\n\n // First, try to render an SVG whose file name matches `type`\n const svgFromSet = Icon.iconNameToSvgMap[this._type.toLowerCase()];\n if (svgFromSet) {\n return html`<div class=\"icon-container\">${unsafeHTML(svgFromSet)}</div>`;\n }\n\n switch (this._type.toLowerCase()) {\n case \"close\":\n console.log(\"Rendering close icon\");\n return html`\n <div class=\"icon-container\">\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M18.3 5.71a.996.996 0 00-1.41 0L12 10.59 7.11 5.7A.996.996 0 105.7 7.11L10.59 12 5.7 16.89a.996.996 0 101.41 1.41L12 13.41l4.89 4.89a.996.996 0 101.41-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\"\n />\n </svg>\n </div>\n `;\n case \"page\":\n console.log(\"Rendering page icon\");\n return html`\n <div class=\"icon-container\">\n <svg viewBox=\"0 0 17 17\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect\n width=\"16\"\n height=\"16\"\n transform=\"translate(0.799988 0.678772)\"\n fill=\"var(--accent-color)\"\n />\n <path\n d=\"M13.7956 2.38385V14.9737H3.80438V2.38385H13.7956ZM4.7243 14.0538H12.8757V3.30377H4.7243V14.0538ZM8.67841 8.53619V9.45612H5.92938V8.53619H8.67841ZM10.8259 6.60455V7.52448H5.92938V6.60455H10.8259ZM10.8259 4.67194V5.59283H5.92938V4.67194H10.8259Z\"\n fill=\"#2A2A2A\"\n />\n </svg>\n </div>\n `;\n case \"note\":\n console.log(\"Rendering note icon\");\n return html`\n <div class=\"icon-container\">\n <svg viewBox=\"0 0 17 17\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect\n width=\"16\"\n height=\"16\"\n transform=\"translate(0.799988 0.678772)\"\n fill=\"var(--accent-color, #CCFF4D)\"\n />\n <path\n d=\"M14.7653 3.99225V13.3653H2.83466V3.99225H14.7653ZM3.83466 12.3653H13.7653V4.99225H3.83466V12.3653Z\"\n fill=\"#2A2A2A\"\n />\n <path\n d=\"M8.8064 7.75881V8.67873H4.51343V7.75881H8.8064ZM10.7527 5.75881V6.67873H4.51343V5.75881H10.7527Z\"\n fill=\"#2A2A2A\"\n />\n </svg>\n </div>\n `;\n case \"default\":\n console.log(\"Rendering default icon\");\n return html`\n <div class=\"icon-container\">\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n width=\"16\"\n height=\"16\"\n transform=\"translate(0.799988)\"\n fill=\"var(--accent-color, #CCFF4D)\"\n />\n <path\n d=\"M9.95899 15V6.81H7.05999V5.77H14.093V6.81H11.194V15H9.95899Z\"\n fill=\"#2A2A2A\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5.89999 0V5.10001H0.799988V0H5.89999Z\"\n fill=\"#2A2A2A\"\n />\n </svg>\n </div>\n `;\n case \"big\":\n console.log(\"Rendering big icon\");\n return html`\n <div class=\"icon-container\">\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_3141_3351)\">\n <rect\n width=\"16\"\n height=\"16\"\n transform=\"translate(0.799988)\"\n fill=\"var(--accent-color, #CCFF4D)\"\n />\n <path\n d=\"M13.959 12.615V4.425H11.06V3.385H16.802V4.425H15.194V12.615H13.959Z\"\n fill=\"#2A2A2A\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9.79999 3.5V12.5H0.799988V3.5H9.79999Z\"\n fill=\"#2A2A2A\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_3141_3351\">\n <rect\n width=\"16\"\n height=\"16\"\n fill=\"white\"\n transform=\"translate(0.799988)\"\n />\n </clipPath>\n </defs>\n </svg>\n </div>\n `;\n case \"gallery\":\n console.log(\"Rendering gallery icon\");\n return html`\n <div class=\"icon-container\">\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_3144_2504)\">\n <rect\n width=\"16\"\n height=\"16\"\n transform=\"translate(0.799988)\"\n fill=\"var(--accent-color, #CCFF4D)\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M0.799988 16V0H16.8L0.799988 16ZM1.50604 0.769531V1.80957H4.40546V10H5.63983V1.80957H8.53925V0.769531H1.50604Z\"\n fill=\"#2A2A2A\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_3144_2504\">\n <rect\n width=\"16\"\n height=\"16\"\n fill=\"white\"\n transform=\"translate(0.799988)\"\n />\n </clipPath>\n </defs>\n </svg>\n </div>\n `;\n case \"check\":\n console.log(\"Rendering check icon\");\n return html`\n <div class=\"icon-container\">\n <svg\n viewBox=\"0 0 17 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n width=\"16\"\n height=\"16\"\n transform=\"translate(0.799988 0.678772)\"\n fill=\"var(--accent-color)\"\n />\n <path\n d=\"M7.48658 11.8747L13.2431 6.12674L12.5361 5.41788L7.48845 10.4734L5.06409 8.04082L4.35706 8.73597L7.48658 11.8747Z\"\n fill=\"#2A2A2A\"\n />\n </svg>\n </div>\n `;\n default:\n console.log(`Unknown icon type: ${this._type}, rendering default slot`);\n return html`<div class=\"icon-container\"><slot></slot></div>`;\n }\n }\n\n updated(changedProperties: PropertyValues) {\n console.log(\"Icon updated\", changedProperties);\n\n this.style.setProperty(\"--icon-size\", this.size);\n this.style.setProperty(\"--icon-color\", this.color);\n this.style.setProperty(\"--icon-background\", this.background);\n }\n\n render() {\n console.log(\"Icon render\", this._type);\n return this.renderIcon();\n }\n}\n\ncustomElements.define(\"ds-icon\", Icon);\n\n// Add this line to help with debugging\nconsole.log(\"Icon component registered with custom elements registry\");\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-icon\": Icon;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport {\n translate,\n currentLanguage,\n getAvailableLanguagesSync,\n getLanguageDisplayName,\n setLanguage,\n} from \"../0-face/i18n\";\nimport type { LanguageCode } from \"../0-face/i18n\";\nimport { currentTheme, setTheme } from \"../0-face/theme\";\nimport type { ThemeType } from \"../0-face/theme\";\nimport { savePreferences } from \"../0-face/preferences\";\nimport \"./ds-button\";\nimport \"./ds-icon\";\nimport \"./ds-text\";\nimport styles from \"./styles/ds-cycle.css?inline\";\n\n// Accent color utilities\nconst saveAccentColor = (color: string) => {\n localStorage.setItem(\"accentColor\", color);\n};\n\nconst getAccentColor = (): string => {\n return localStorage.getItem(\"accentColor\") || \"--sharp-blue\"; // Default color if none set\n};\n\nconst applyAccentColor = () => {\n const color = getAccentColor();\n document.documentElement.style.setProperty(\"--accent-color\", `var(${color})`);\n};\n\n// Notes style medium utilities\nconst saveNotesStyleMedium = (style: string) => {\n localStorage.setItem(\"notesStyleMedium\", style);\n};\n\nconst getNotesStyleMedium = (): string => {\n return localStorage.getItem(\"notesStyleMedium\") || \"note\"; // Default to note\n};\n\n// Note behavior utilities\nconst savePageStyle = (style: string) => {\n localStorage.setItem(\"pageStyle\", style);\n};\n\nconst getPageStyle = (): string => {\n return localStorage.getItem(\"pageStyle\") || \"note\"; // Default to note\n};\n\n// App width utilities removed\n\n// Use a regular class with proper TypeScript type declarations and JSDoc comments\nexport class Cycle extends LitElement {\n // Define reactive properties using Lit's property system\n static get properties() {\n return {\n type: { type: String },\n values: { type: Array },\n currentValue: { type: String, state: true }, // Make this a private state property\n translationsReady: { type: Boolean, state: true }, // Track if translations are loaded\n disabled: { type: Boolean, state: true },\n variant: { type: String },\n };\n }\n\n static styles = unsafeCSS(styles);\n\n // Add runtime properties using the any type\n // These are just for TypeScript and don't create shadowing fields\n declare type: string;\n declare values: string[];\n declare currentValue: string;\n declare translationsReady: boolean;\n declare disabled: boolean;\n declare variant: string;\n\n // Store bound event handlers for proper cleanup\n private boundHandlers: {\n translationsLoaded: EventListener;\n languageChanged: EventListener;\n handleLanguageChanged: EventListener;\n handleThemeChanged: EventListener;\n handleAccentColorChanged: EventListener;\n handleNoteBehaviorChanged: EventListener;\n };\n\n constructor() {\n super();\n\n // Initialize properties with default values\n this.type = \"\";\n this.values = [];\n this.currentValue = \"\";\n this.translationsReady = false;\n this.disabled = false;\n this.variant = \"\";\n\n // Bind event handlers to this instance for proper cleanup\n this.boundHandlers = {\n translationsLoaded: this.handleTranslationsLoaded.bind(this),\n languageChanged: this.handleLanguageChanged.bind(this),\n handleLanguageChanged: this.handleLanguageChanged.bind(this),\n handleThemeChanged: this.handleThemeChanged.bind(this),\n handleAccentColorChanged: this.handleAccentColorChanged.bind(this),\n handleNoteBehaviorChanged: this.handleNoteBehaviorChanged.bind(this),\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Add event listeners\n window.addEventListener(\n \"translations-loaded\",\n this.boundHandlers.translationsLoaded\n );\n window.addEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n window.addEventListener(\n \"theme-changed\",\n this.boundHandlers.handleThemeChanged\n );\n window.addEventListener(\n \"accent-color-changed\",\n this.boundHandlers.handleAccentColorChanged\n );\n window.addEventListener(\n \"page-style-changed\",\n this.boundHandlers.handleNoteBehaviorChanged\n );\n\n // Initialize the component\n this.initializeValues();\n }\n\n async initializeValues() {\n if (this.type === \"language\") {\n // Dynamically get available languages from translation data\n const availableLanguages = getAvailableLanguagesSync();\n this.values = availableLanguages;\n this.currentValue = currentLanguage.value;\n } else if (this.type === \"theme\") {\n // Set up theme cycling\n this.values = [\"light\", \"dark\"];\n\n // Set initial value based on current theme\n const currentThemeValue = currentTheme.get();\n this.currentValue = currentThemeValue;\n } else if (this.type === \"accent-color\") {\n // Set up accent color cycling\n this.values = [\n \"--apple-green\",\n \"--every-green\",\n \"--zenith-blue\",\n \"--sharp-blue\",\n \"--pink\",\n \"--tuned-red\",\n \"--orange\",\n \"--yellow\",\n ];\n\n // Set initial value based on current accent color\n const currentAccentColor = getAccentColor();\n this.currentValue = currentAccentColor;\n\n // Apply the accent color to ensure it's active\n applyAccentColor();\n } else if (this.type === \"notes-style-medium\") {\n // Set up notes style medium cycling\n this.values = [\"default\", \"big\", \"gallery\"];\n\n // Set initial value based on current notes style medium\n const currentNotesStyle = getNotesStyleMedium();\n this.currentValue = currentNotesStyle;\n\n // Check if this should be disabled based on note behavior\n const currentPageStyle = getPageStyle();\n this.disabled = currentPageStyle === \"note\";\n } else if (this.type === \"page-style\") {\n // Set up page style cycling\n this.values = [\"note\", \"page\"];\n\n // Set initial value based on current page style\n const currentPageStyle = getPageStyle();\n this.currentValue = currentPageStyle;\n } else if (this.type === \"icon-only\") {\n // Set up icon-only cycling (no label)\n this.values = [\"note\", \"page\"];\n\n // Set initial value\n this.currentValue = this.values[0];\n }\n\n // Request update to re-render with new values\n this.requestUpdate();\n }\n\n ensureThemeInitialized() {\n // Ensure theme is properly initialized\n const savedTheme = localStorage.getItem(\"theme\");\n if (!savedTheme) {\n const prefersDark = window.matchMedia(\n \"(prefers-color-scheme: dark)\"\n ).matches;\n const defaultTheme = prefersDark ? \"dark\" : \"light\";\n localStorage.setItem(\"theme\", defaultTheme);\n document.documentElement.classList.add(`${defaultTheme}-theme`);\n }\n }\n\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\n super.attributeChangedCallback(name, oldValue, newValue);\n\n if (name === \"type\" && oldValue !== newValue) {\n // Type changed, reinitialize values\n this.initializeValues();\n }\n }\n\n async setupInitialValue() {\n if (this.type === \"language\") {\n // Get current language\n const currentLang = currentLanguage.value;\n this.currentValue = currentLang;\n } else if (this.type === \"theme\") {\n // Get current theme\n const currentThemeValue = currentTheme.get();\n this.currentValue = currentThemeValue;\n } else if (this.type === \"accent-color\") {\n // Get current accent color\n const currentAccentColor = getAccentColor();\n this.currentValue = currentAccentColor;\n\n // Apply the accent color to ensure it's active\n applyAccentColor();\n } else if (this.type === \"notes-style-medium\") {\n // Get current notes style medium\n const currentNotesStyle = getNotesStyleMedium();\n this.currentValue = currentNotesStyle;\n\n // Check if this should be disabled based on note behavior\n const currentPageStyle = getPageStyle();\n this.disabled = currentPageStyle === \"note\";\n } else if (this.type === \"page-style\") {\n // Get current page style\n const currentPageStyle = getPageStyle();\n this.currentValue = currentPageStyle;\n } else if (this.type === \"icon-only\") {\n // Get current page style for icon-only\n const currentPageStyle = getPageStyle();\n this.currentValue = currentPageStyle;\n }\n\n this.requestUpdate();\n }\n\n handleSettingsChanges() {\n // Handle any settings changes that might affect this component\n this.setupInitialValue();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n // Remove event listeners\n window.removeEventListener(\n \"translations-loaded\",\n this.boundHandlers.translationsLoaded\n );\n window.removeEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n window.removeEventListener(\n \"theme-changed\",\n this.boundHandlers.handleThemeChanged\n );\n window.removeEventListener(\n \"accent-color-changed\",\n this.boundHandlers.handleAccentColorChanged\n );\n window.removeEventListener(\n \"page-style-changed\",\n this.boundHandlers.handleNoteBehaviorChanged\n );\n }\n\n handleButtonClick(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n\n // Don't handle clicks if disabled\n if (this.disabled) {\n return;\n }\n\n if (this.type === \"language\") {\n // Cycle through available languages\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newLanguage = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newLanguage;\n\n // Set the new language with view transition like Portfolio\n if ((document as any).startViewTransition) {\n (document as any).startViewTransition(() => {\n setLanguage(newLanguage as LanguageCode);\n });\n } else {\n setLanguage(newLanguage as LanguageCode);\n }\n\n // Save preferences\n savePreferences({ language: newLanguage as LanguageCode });\n\n // Dispatch language change event\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: newLanguage },\n })\n );\n } else if (this.type === \"theme\") {\n // Cycle through themes\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newTheme = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newTheme;\n\n // Set the new theme using the shared helper\n setTheme(newTheme as ThemeType);\n\n // Save preferences\n savePreferences({ theme: newTheme as ThemeType });\n\n // Theme helper already emits the change event, so no manual dispatch here\n } else if (this.type === \"accent-color\") {\n // Cycle through accent colors\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newColor = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newColor;\n\n // Save the new accent color\n saveAccentColor(newColor);\n\n // Apply the new accent color\n applyAccentColor();\n\n // Save preferences\n savePreferences({ accentColor: newColor });\n\n // Dispatch accent color change event\n window.dispatchEvent(\n new CustomEvent(\"accent-color-changed\", {\n detail: { color: newColor },\n })\n );\n } else if (this.type === \"notes-style-medium\") {\n // Cycle through notes style medium options\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newStyle = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newStyle;\n\n // Save the new notes style medium\n saveNotesStyleMedium(newStyle);\n\n // Save preferences\n savePreferences({ notesStyleMedium: newStyle });\n\n // Dispatch notes style medium change event\n window.dispatchEvent(\n new CustomEvent(\"notes-style-medium-changed\", {\n detail: { style: newStyle },\n })\n );\n } else if (this.type === \"page-style\") {\n // Cycle through note behavior options\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newBehavior = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newBehavior;\n\n // Save the new note behavior\n savePageStyle(newBehavior);\n\n // Save preferences\n savePreferences({ pageStyle: newBehavior });\n\n // Dispatch note behavior change event\n window.dispatchEvent(\n new CustomEvent(\"page-style-changed\", {\n detail: { behavior: newBehavior },\n })\n );\n } else if (this.type === \"icon-only\") {\n // Cycle through icon-only options (note/page)\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newIconOnlyValue = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newIconOnlyValue;\n\n // Save the new page style\n savePageStyle(newIconOnlyValue);\n\n // Save preferences\n savePreferences({ pageStyle: newIconOnlyValue });\n\n // Dispatch page style change event\n window.dispatchEvent(\n new CustomEvent(\"page-style-changed\", {\n detail: { behavior: newIconOnlyValue },\n })\n );\n }\n\n // Request update to re-render\n this.requestUpdate();\n }\n\n getValueDisplay(value: string): string | any {\n if (this.type === \"language\") {\n return getLanguageDisplayName(value, {\n locale: currentLanguage.value,\n });\n } else if (this.type === \"theme\") {\n // Try to get translated theme name\n if (this.translationsReady) {\n const translatedName = translate(value);\n if (translatedName && translatedName !== value) {\n return translatedName;\n }\n }\n\n // Fall back to the theme value itself\n return value;\n } else if (this.type === \"accent-color\") {\n // Get color name from CSS variable\n return this.getColorName(value);\n } else if (this.type === \"notes-style-medium\") {\n // Return SVG icon for notes style medium\n return this.getNotesStyleIcon(value);\n } else if (this.type === \"page-style\") {\n // Return translated text for note behavior\n if (this.translationsReady) {\n const translatedText = translate(value === \"note\" ? \"Note\" : \"Page\");\n if (\n translatedText &&\n translatedText !== (value === \"note\" ? \"Note\" : \"Page\")\n ) {\n return translatedText;\n }\n }\n return value;\n } else if (this.type === \"icon-only\") {\n // Return SVG icon for icon-only type (note/page icons)\n if (value === \"note\") {\n return html`<ds-icon type=\"note\"></ds-icon>`;\n } else if (value === \"page\") {\n return html`<ds-icon type=\"page\"></ds-icon>`;\n }\n return html`<span>${value}</span>`;\n }\n\n return value;\n }\n\n getColorKey(colorVar: string): string {\n // Map CSS variables to translation text keys\n const colorMap: { [key: string]: string } = {\n \"--tuned-red\": \"Red\",\n \"--orange\": \"Orange\",\n \"--yellow\": \"Yellow\",\n \"--apple-green\": \"Apple green\",\n \"--every-green\": \"Green\",\n \"--zenith-blue\": \"Light blue\",\n \"--sharp-blue\": \"Blue\",\n \"--pink\": \"Pink\",\n };\n\n return colorMap[colorVar] || colorVar.replace(\"--\", \"\").replace(\"-\", \" \");\n }\n\n getColorName(colorVar: string): string {\n // Map CSS variables to translation text keys\n const colorMap: { [key: string]: string } = {\n \"--tuned-red\": \"Red\",\n \"--orange\": \"Orange\",\n \"--yellow\": \"Yellow\",\n \"--apple-green\": \"Apple green\",\n \"--every-green\": \"Green\",\n \"--zenith-blue\": \"Light blue\",\n \"--sharp-blue\": \"Blue\",\n \"--pink\": \"Pink\",\n };\n\n const translationText = colorMap[colorVar];\n if (translationText && this.translationsReady) {\n const translatedName = translate(translationText);\n if (translatedName && translatedName !== translationText) {\n return translatedName;\n }\n }\n\n // Fallback to simple name conversion\n return colorVar.replace(\"--\", \"\").replace(\"-\", \" \");\n }\n\n getNotesStyleIcon(style: string) {\n if (style === \"page\") {\n return html`<ds-icon type=\"page\"></ds-icon>`;\n } else if (style === \"note\") {\n return html`<ds-icon type=\"note\"></ds-icon>`;\n } else if (style === \"default\") {\n return html`<ds-icon type=\"default\"></ds-icon>`;\n } else if (style === \"big\") {\n return html`<ds-icon type=\"big\"></ds-icon>`;\n } else if (style === \"gallery\") {\n return html`<ds-icon type=\"gallery\"></ds-icon>`;\n }\n return html`<span>${style}</span>`;\n }\n\n render() {\n return html`\n <div class=\"cycle\">\n <ds-button\n variant=${this.variant ||\n (this.type === \"language\" || this.type === \"theme\"\n ? \"secondary\"\n : \"primary\")}\n ?disabled=${this.disabled}\n @click=${this.handleButtonClick}\n >\n ${this.type === \"notes-style-medium\" || this.type === \"icon-only\"\n ? html`<span\n style=\"display: inline-flex; align-items: center; gap: var(--025)\"\n >${this.getValueDisplay(this.currentValue)}</span\n >`\n : this.type === \"language\"\n ? html`<ds-text\n default-value=${this.getValueDisplay(this.currentValue)}\n ></ds-text>`\n : this.type === \"theme\"\n ? html`<ds-text\n text=${this.currentValue}\n default-value=${this.currentValue}\n ></ds-text>`\n : this.type === \"accent-color\"\n ? html`<ds-text\n text=${this.getColorKey(this.currentValue)}\n default-value=${this.getColorName(this.currentValue)}\n ></ds-text>`\n : this.type === \"page-style\"\n ? html`<ds-text\n text=${this.currentValue === \"note\" ? \"Note\" : \"Page\"}\n default-value=${this.currentValue}\n ></ds-text>`\n : html`<ds-text\n default-value=${this.getValueDisplay(this.currentValue)}\n ></ds-text>`}\n </ds-button>\n\n ${this.type === \"accent-color\"\n ? html`\n <div\n class=\"color-preview\"\n style=\"background-color: var(${this.currentValue})\"\n ></div>\n `\n : \"\"}\n </div>\n `;\n }\n\n private async waitForTranslations(): Promise<void> {\n return new Promise((resolve) => {\n if (this.translationsReady) {\n resolve();\n return;\n }\n\n const handleTranslationsLoaded = () => {\n this.translationsReady = true;\n resolve();\n };\n\n window.addEventListener(\"translations-loaded\", handleTranslationsLoaded, {\n once: true,\n });\n\n // Timeout after 5 seconds\n setTimeout(() => {\n this.translationsReady = true;\n resolve();\n }, 5000);\n });\n }\n\n private handleTranslationsLoaded() {\n this.translationsReady = true;\n\n // Refresh language values if this is a language cycle\n if (this.type === \"language\") {\n const availableLanguages = getAvailableLanguagesSync();\n this.values = availableLanguages;\n }\n\n this.setupInitialValue();\n }\n\n private handleLanguageChanged() {\n this.setupInitialValue();\n }\n\n private handleThemeChanged() {\n this.setupInitialValue();\n }\n\n private handleAccentColorChanged() {\n this.setupInitialValue();\n }\n\n private handleNoteBehaviorChanged() {\n this.setupInitialValue();\n }\n}\n\ncustomElements.define(\"ds-cycle\", Cycle);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-cycle\": Cycle;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-date.css?inline\";\n\n/**\n * A component for displaying the current year\n *\n * @element ds-date\n */\nexport class DateComponent extends LitElement {\n static styles = unsafeCSS(styles);\n\n render() {\n const year = new Date().getFullYear();\n return html`<span>${year}</span>`;\n }\n}\n\ncustomElements.define(\"ds-date\", DateComponent);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-date\": DateComponent;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-gap.css?inline\";\n\n/**\n * Full-width vertical spacer.\n *\n * Usage:\n * - <ds-gap unit></ds-gap>\n * - <ds-gap double></ds-gap>\n * - <ds-gap size=\"05\"></ds-gap>\n */\nexport class Gap extends LitElement {\n static properties = {\n /** Raw scale token selector (\"01\", \"025\", \"05\", \"08\", \"1\", \"2\", \"3\", \"4\", \"8\", \"12\") */\n size: { type: String, reflect: true },\n };\n\n declare size: string;\n\n constructor() {\n super();\n this.size = \"\";\n }\n\n static styles = unsafeCSS(styles);\n\n render() {\n return html``;\n }\n}\n\ncustomElements.define(\"ds-gap\", Gap);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-gap\": Gap;\n }\n}\n","// ds-input.ts\n// Input component for text and other input types\n\nimport { LitElement, html, css } from \"lit\";\nimport \"./ds-text\";\n\nexport class Input extends LitElement {\n static properties = {\n type: { type: String, reflect: true },\n name: { type: String, reflect: true },\n value: { type: String },\n placeholder: { type: String },\n placeholderKey: { type: String, attribute: \"placeholder-key\" },\n label: { type: String },\n labelText: { type: String, attribute: \"label-text\" },\n disabled: { type: Boolean, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n autofocus: { type: Boolean },\n autocomplete: { type: String },\n pattern: { type: String },\n minlength: { type: Number },\n maxlength: { type: Number },\n min: { type: String },\n max: { type: String },\n step: { type: String },\n variant: { type: String, reflect: true },\n error: { type: String },\n errorText: { type: String, attribute: \"error-text\" },\n _focused: { type: Boolean, state: true },\n };\n\n declare type:\n | \"text\"\n | \"password\"\n | \"email\"\n | \"number\"\n | \"tel\"\n | \"url\"\n | \"search\"\n | \"date\"\n | \"time\"\n | \"datetime-local\";\n declare name: string;\n declare value: string;\n declare placeholder: string;\n declare placeholderKey: string;\n declare label: string;\n declare labelText: string;\n declare disabled: boolean;\n declare readonly: boolean;\n declare required: boolean;\n declare autofocus: boolean;\n declare autocomplete: string;\n declare pattern: string;\n declare minlength: number;\n declare maxlength: number;\n declare min: string;\n declare max: string;\n declare step: string;\n declare variant: \"default\" | \"filled\" | \"outlined\";\n declare error: string;\n declare errorText: string;\n declare _focused: boolean;\n\n constructor() {\n super();\n this.type = \"text\";\n this.name = \"\";\n this.value = \"\";\n this.placeholder = \"\";\n this.placeholderKey = \"\";\n this.label = \"\";\n this.labelText = \"\";\n this.disabled = false;\n this.readonly = false;\n this.required = false;\n this.autofocus = false;\n this.autocomplete = \"off\";\n this.pattern = \"\";\n this.minlength = 0;\n this.maxlength = 0;\n this.min = \"\";\n this.max = \"\";\n this.step = \"\";\n this.variant = \"default\";\n this.error = \"\";\n this.errorText = \"\";\n this._focused = false;\n }\n\n static styles = css`\n :host {\n display: block;\n width: 100%;\n }\n\n .input-wrapper {\n display: flex;\n flex-direction: column;\n gap: calc(var(--025) * var(--sf, 1));\n width: 100%;\n }\n\n label {\n font-family: var(--typeface-regular);\n font-size: calc(12px * var(--sf, 1));\n color: var(--text-color-secondary);\n }\n\n .input-container {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n }\n\n input {\n width: 100%;\n height: calc(var(--1) * var(--sf, 1));\n padding: 0 calc(var(--025) * var(--sf, 1));\n font-family: var(--typeface-regular);\n font-size: calc(14px * var(--sf, 1));\n color: var(--text-color-primary);\n background-color: var(--input-background, transparent);\n border: 1px solid var(--input-border-color, var(--border-color, #ccc));\n border-radius: calc(var(--025) * var(--sf, 1));\n outline: none;\n transition:\n border-color 0.2s ease,\n box-shadow 0.2s ease;\n box-sizing: border-box;\n }\n\n input::placeholder {\n color: var(--text-color-tertiary, #999);\n }\n\n input:focus {\n border-color: var(--accent-color, #007aff);\n box-shadow: 0 0 0 2px var(--input-focus-ring, rgba(0, 122, 255, 0.2));\n }\n\n input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background-color: var(--input-disabled-background, #f5f5f5);\n }\n\n input:read-only {\n background-color: var(--input-readonly-background, #fafafa);\n }\n\n :host([variant=\"filled\"]) input {\n background-color: var(\n --input-filled-background,\n var(--surface-color-secondary, #f5f5f5)\n );\n border: none;\n border-bottom: 2px solid var(--border-color, #ccc);\n border-radius: calc(var(--025) * var(--sf, 1))\n calc(var(--025) * var(--sf, 1)) 0 0;\n }\n\n :host([variant=\"filled\"]) input:focus {\n border-bottom-color: var(--accent-color, #007aff);\n box-shadow: none;\n }\n\n :host([variant=\"outlined\"]) input {\n background-color: transparent;\n border: 2px solid var(--border-color, #ccc);\n }\n\n :host([variant=\"outlined\"]) input:focus {\n border-color: var(--accent-color, #007aff);\n }\n\n .error-message {\n font-family: var(--typeface-regular);\n font-size: calc(12px * var(--sf, 1));\n color: var(--error-color, #ff3b30);\n margin-top: calc(var(--025) * var(--sf, 1));\n }\n\n :host([required]) label::after {\n content: \" *\";\n color: var(--error-color, #ff3b30);\n }\n\n /* Error state */\n input.has-error {\n border-color: var(--error-color, #ff3b30);\n }\n\n input.has-error:focus {\n box-shadow: 0 0 0 2px rgba(255, 59, 48, 0.2);\n }\n `;\n\n private _handleInput(e: Event): void {\n const target = e.target as HTMLInputElement;\n this.value = target.value;\n this.dispatchEvent(\n new CustomEvent(\"input-change\", {\n detail: { value: this.value, name: this.name },\n bubbles: true,\n })\n );\n }\n\n private _handleFocus(): void {\n this._focused = true;\n this.dispatchEvent(new CustomEvent(\"input-focus\", { bubbles: true }));\n }\n\n private _handleBlur(): void {\n this._focused = false;\n this.dispatchEvent(new CustomEvent(\"input-blur\", { bubbles: true }));\n }\n\n /**\n * Focus the input element\n */\n focus(): void {\n const input = this.shadowRoot?.querySelector(\"input\");\n input?.focus();\n }\n\n /**\n * Blur the input element\n */\n blur(): void {\n const input = this.shadowRoot?.querySelector(\"input\");\n input?.blur();\n }\n\n /**\n * Select all text in the input\n */\n select(): void {\n const input = this.shadowRoot?.querySelector(\"input\");\n input?.select();\n }\n\n render() {\n const hasError = Boolean(this.error || this.errorText);\n\n return html`\n <div class=\"input-wrapper\">\n ${this.label || this.labelText\n ? html`\n <label for=\"input\">\n ${this.labelText\n ? html`<ds-text .text=${this.labelText}></ds-text>`\n : this.label}\n </label>\n `\n : null}\n\n <div class=\"input-container\">\n <input\n id=\"input\"\n .type=${this.type}\n .name=${this.name}\n .value=${this.value}\n .placeholder=${this.placeholder}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n ?autofocus=${this.autofocus}\n autocomplete=${this.autocomplete}\n pattern=${this.pattern || \"\"}\n minlength=${this.minlength || \"\"}\n maxlength=${this.maxlength || \"\"}\n min=${this.min}\n max=${this.max}\n step=${this.step}\n class=${hasError ? \"has-error\" : \"\"}\n @input=${this._handleInput}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n />\n </div>\n\n ${hasError\n ? html`\n <div class=\"error-message\">\n ${this.errorText\n ? html`<ds-text .text=${this.errorText}></ds-text>`\n : this.error}\n </div>\n `\n : null}\n </div>\n `;\n }\n}\n\ncustomElements.define(\"ds-input\", Input);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-input\": Input;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { translate } from \"../0-face/i18n\";\nimport styles from \"./styles/ds-tooltip.css?inline\";\n\nexport class Tooltip extends LitElement {\n static properties = {\n text: { type: String, reflect: true },\n defaultValue: { type: String, reflect: true, attribute: \"default-value\" },\n _text: { state: true },\n _visible: { state: true },\n };\n\n declare text: string;\n declare defaultValue: string;\n private _text: string;\n private _visible: boolean;\n\n private boundWindowHandlers: {\n languageChanged: EventListener;\n translationsLoaded: EventListener;\n };\n private boundHostHandlers: {\n mouseenter: EventListener;\n mouseleave: EventListener;\n focusin: EventListener;\n focusout: EventListener;\n };\n\n constructor() {\n super();\n this.text = \"\";\n this.defaultValue = \"\";\n this._text = \"\";\n this._visible = false;\n\n this.boundWindowHandlers = {\n languageChanged: (() => {\n this._loadText();\n }) as EventListener,\n translationsLoaded: (() => {\n this._loadText();\n }) as EventListener,\n };\n\n this.boundHostHandlers = {\n mouseenter: (() => {\n this._visible = true;\n this.requestUpdate();\n }) as EventListener,\n mouseleave: (() => {\n this._visible = false;\n this.requestUpdate();\n }) as EventListener,\n focusin: (() => {\n this._visible = true;\n this.requestUpdate();\n }) as EventListener,\n focusout: (() => {\n this._visible = false;\n this.requestUpdate();\n }) as EventListener,\n };\n }\n\n static styles = unsafeCSS(styles);\n\n connectedCallback(): void {\n super.connectedCallback();\n this._loadText();\n\n window.addEventListener(\n \"language-changed\",\n this.boundWindowHandlers.languageChanged\n );\n window.addEventListener(\n \"translations-loaded\",\n this.boundWindowHandlers.translationsLoaded\n );\n\n this.addEventListener(\"mouseenter\", this.boundHostHandlers.mouseenter);\n this.addEventListener(\"mouseleave\", this.boundHostHandlers.mouseleave);\n this.addEventListener(\"focusin\", this.boundHostHandlers.focusin);\n this.addEventListener(\"focusout\", this.boundHostHandlers.focusout);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener(\n \"language-changed\",\n this.boundWindowHandlers.languageChanged\n );\n window.removeEventListener(\n \"translations-loaded\",\n this.boundWindowHandlers.translationsLoaded\n );\n\n this.removeEventListener(\"mouseenter\", this.boundHostHandlers.mouseenter);\n this.removeEventListener(\"mouseleave\", this.boundHostHandlers.mouseleave);\n this.removeEventListener(\"focusin\", this.boundHostHandlers.focusin);\n this.removeEventListener(\"focusout\", this.boundHostHandlers.focusout);\n }\n\n updated(changed: Map<string, unknown>): void {\n if (changed.has(\"text\") || changed.has(\"defaultValue\")) {\n this._loadText();\n }\n }\n\n _loadText(): void {\n if (!this.text) {\n this._text = this.defaultValue || \"\";\n this.requestUpdate();\n return;\n }\n\n try {\n const t = translate(this.text);\n this._text = t && t !== this.text ? t : this.defaultValue || this.text;\n } catch (err) {\n console.error(\"ds-tooltip: error loading text for text\", this.text, err);\n this._text = this.defaultValue || this.text;\n }\n this.requestUpdate();\n }\n\n render() {\n const bubbleClasses = [\"bubble\", this._visible ? \"visible\" : \"\"].join(\" \");\n\n return html`\n <span class=\"slot-wrapper\"><slot></slot></span>\n ${this._text\n ? html`<div class=\"${bubbleClasses}\">${this._text}</div>`\n : null}\n `;\n }\n}\n\ncustomElements.define(\"ds-tooltip\", Tooltip);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-tooltip\": Tooltip;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-row.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Row extends LitElement {\n static properties = {\n type: { type: String, reflect: true },\n };\n\n declare type: \"fill\" | \"centered\";\n\n constructor() {\n super();\n this.type = \"fill\";\n }\n\n static styles = unsafeCSS(styles);\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ncustomElements.define(\"ds-row\", Row);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-row\": Row;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport \"../2-core/ds-text\";\nimport \"../2-core/ds-icon\";\nimport \"./ds-row\";\nimport styles from \"./styles/ds-accordion.css?inline\";\n\n/**\n * Native accordion using <details>/<summary> (no JS toggle logic).\n *\n * Usage (with translation text):\n * <ds-accordion summary=\"How it began\" details=\"Designed in Hokkaido\"></ds-accordion>\n *\n * Usage (with slotted details content):\n * <ds-accordion summary=\"How it began\">\n * <div slot=\"details\">Rich HTML content here</div>\n * </ds-accordion>\n */\nexport class Accordion extends LitElement {\n static properties = {\n summary: { type: String },\n details: { type: String },\n open: { type: Boolean, reflect: true },\n _hasSlottedContent: { type: Boolean, state: true },\n };\n\n declare summary: string;\n declare details: string;\n declare open: boolean;\n declare _hasSlottedContent: boolean;\n\n constructor() {\n super();\n this.summary = \"\";\n this.details = \"\";\n this.open = false;\n this._hasSlottedContent = false;\n }\n\n static styles = unsafeCSS(styles);\n\n private _handleSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n const assignedNodes = slot.assignedNodes({ flatten: true });\n // Filter out empty text nodes (whitespace only)\n const hasContent = assignedNodes.some(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim())\n );\n this._hasSlottedContent = hasContent;\n }\n\n render() {\n return html`\n <details ?open=${this.open}>\n <summary>\n <ds-row class=\"summaryRow\" type=\"centered\">\n <ds-text .text=${this.summary}></ds-text>\n <ds-icon class=\"chevron\" aria-hidden=\"true\">\n <svg\n viewBox=\"0 0 10.157 8.219\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M5.078 8.219L0 3.141L1.414 1.727L5.078 5.391L8.743 1.727L10.157 3.141L5.078 8.219Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ds-icon>\n </ds-row>\n </summary>\n\n <div class=\"detailsBody\">\n <slot name=\"details\" @slotchange=${this._handleSlotChange}></slot>\n ${!this._hasSlottedContent\n ? html`<ds-text\n class=\"detailsText\"\n .text=${this.details}\n ></ds-text>`\n : \"\"}\n </div>\n </details>\n `;\n }\n}\n\ncustomElements.define(\"ds-accordion\", Accordion);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-accordion\": Accordion;\n }\n}\n","// ds-form.ts\n// Form component for handling form submissions and validation\n\nimport { LitElement, html, css } from \"lit\";\n\nexport interface FormData {\n [key: string]: string | number | boolean | null;\n}\n\nexport interface FormValidationResult {\n valid: boolean;\n errors: { [key: string]: string };\n}\n\nexport class Form extends LitElement {\n static properties = {\n action: { type: String },\n method: { type: String },\n name: { type: String },\n novalidate: { type: Boolean, reflect: true },\n autocomplete: { type: String },\n _isSubmitting: { type: Boolean, state: true },\n };\n\n declare action: string;\n declare method: \"get\" | \"post\";\n declare name: string;\n declare novalidate: boolean;\n declare autocomplete: \"on\" | \"off\";\n declare _isSubmitting: boolean;\n\n constructor() {\n super();\n this.action = \"\";\n this.method = \"post\";\n this.name = \"\";\n this.novalidate = false;\n this.autocomplete = \"on\";\n this._isSubmitting = false;\n }\n\n static styles = css`\n :host {\n display: block;\n width: 100%;\n }\n\n form {\n display: flex;\n flex-direction: column;\n gap: calc(var(--05) * var(--sf, 1));\n width: 100%;\n }\n\n ::slotted(*) {\n width: 100%;\n }\n\n :host([disabled]) {\n opacity: 0.6;\n pointer-events: none;\n }\n `;\n\n /**\n * Get all form data as an object\n */\n getFormData(): FormData {\n const data: FormData = {};\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const elements = slot?.assignedElements({ flatten: true }) || [];\n\n for (const element of elements) {\n this._collectFormData(element as HTMLElement, data);\n }\n\n return data;\n }\n\n private _collectFormData(element: HTMLElement, data: FormData): void {\n // Check if element has name and value properties\n const name = element.getAttribute(\"name\") || (element as any).name;\n if (name) {\n const value = (element as any).value;\n if (value !== undefined) {\n // Handle checkboxes and radio buttons\n if (\n element instanceof HTMLInputElement &&\n (element.type === \"checkbox\" || element.type === \"radio\")\n ) {\n if (element.type === \"checkbox\") {\n data[name] = element.checked;\n } else if (element.type === \"radio\" && element.checked) {\n data[name] = value;\n }\n } else {\n data[name] = value;\n }\n }\n }\n\n // Recursively check children\n const children =\n element.shadowRoot?.querySelectorAll(\"*\") || element.querySelectorAll(\"*\");\n children.forEach((child) => {\n this._collectFormData(child as HTMLElement, data);\n });\n }\n\n /**\n * Validate the form\n */\n validate(): FormValidationResult {\n const result: FormValidationResult = {\n valid: true,\n errors: {},\n };\n\n if (this.novalidate) {\n return result;\n }\n\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const elements = slot?.assignedElements({ flatten: true }) || [];\n\n for (const element of elements) {\n this._validateElement(element as HTMLElement, result);\n }\n\n return result;\n }\n\n private _validateElement(\n element: HTMLElement,\n result: FormValidationResult\n ): void {\n const name = element.getAttribute(\"name\") || (element as any).name;\n\n // Check for custom validation on ds-input elements\n if (element.tagName.toLowerCase() === \"ds-input\") {\n const input = element as any;\n if (input.required && !input.value) {\n result.valid = false;\n result.errors[name || \"unknown\"] = \"This field is required\";\n }\n }\n\n // Check native form elements\n if (\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement ||\n element instanceof HTMLSelectElement\n ) {\n if (!element.checkValidity()) {\n result.valid = false;\n result.errors[name || \"unknown\"] = element.validationMessage;\n }\n }\n\n // Recursively check children\n const children =\n element.shadowRoot?.querySelectorAll(\"*\") || element.querySelectorAll(\"*\");\n children.forEach((child) => {\n this._validateElement(child as HTMLElement, result);\n });\n }\n\n /**\n * Reset the form\n */\n reset(): void {\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const elements = slot?.assignedElements({ flatten: true }) || [];\n\n for (const element of elements) {\n this._resetElement(element as HTMLElement);\n }\n\n this.dispatchEvent(new CustomEvent(\"form-reset\", { bubbles: true }));\n }\n\n private _resetElement(element: HTMLElement): void {\n if (\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement ||\n element instanceof HTMLSelectElement\n ) {\n if (element instanceof HTMLInputElement && element.type === \"checkbox\") {\n element.checked = false;\n } else {\n element.value = \"\";\n }\n }\n\n // Handle ds-input elements\n if (element.tagName.toLowerCase() === \"ds-input\") {\n (element as any).value = \"\";\n }\n\n // Recursively reset children\n const children =\n element.shadowRoot?.querySelectorAll(\"*\") || element.querySelectorAll(\"*\");\n children.forEach((child) => {\n this._resetElement(child as HTMLElement);\n });\n }\n\n /**\n * Submit the form\n */\n async submit(): Promise<void> {\n if (this._isSubmitting) return;\n\n const validationResult = this.validate();\n if (!validationResult.valid) {\n this.dispatchEvent(\n new CustomEvent(\"form-invalid\", {\n detail: validationResult.errors,\n bubbles: true,\n })\n );\n return;\n }\n\n this._isSubmitting = true;\n const formData = this.getFormData();\n\n this.dispatchEvent(\n new CustomEvent(\"form-submit\", {\n detail: { data: formData },\n bubbles: true,\n })\n );\n\n // If action is provided, submit to the server\n if (this.action) {\n try {\n const response = await fetch(this.action, {\n method: this.method.toUpperCase(),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(formData),\n });\n\n this.dispatchEvent(\n new CustomEvent(\"form-response\", {\n detail: { response, data: formData },\n bubbles: true,\n })\n );\n } catch (error) {\n this.dispatchEvent(\n new CustomEvent(\"form-error\", {\n detail: { error, data: formData },\n bubbles: true,\n })\n );\n }\n }\n\n this._isSubmitting = false;\n }\n\n private _handleSubmit(e: Event): void {\n e.preventDefault();\n this.submit();\n }\n\n private _handleKeydown(e: KeyboardEvent): void {\n if (e.key === \"Enter\" && !e.shiftKey) {\n const target = e.target as HTMLElement;\n // Don't submit if in a textarea\n if (target.tagName.toLowerCase() !== \"textarea\") {\n e.preventDefault();\n this.submit();\n }\n }\n }\n\n render() {\n return html`\n <form\n .action=${this.action}\n .method=${this.method}\n .name=${this.name}\n ?novalidate=${this.novalidate}\n autocomplete=${this.autocomplete}\n @submit=${this._handleSubmit}\n @keydown=${this._handleKeydown}\n >\n <slot></slot>\n </form>\n `;\n }\n}\n\ncustomElements.define(\"ds-form\", Form);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-form\": Form;\n }\n}\n","// ds-list.ts\n// Unit component that\n// can be used to show a list of items consisting of components from core\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-list.css?inline\";\n\nexport class List extends LitElement {\n static styles = unsafeCSS(styles);\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ncustomElements.define(\"ds-list\", List);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-list\": List;\n }\n}\n\n","// ds-table.ts\n// Data table component\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-table.css?inline\";\n\nexport interface TableRow {\n product: string;\n users: string;\n retention: string;\n status?: string;\n}\n\nexport class DsTable extends LitElement {\n static properties = {\n data: { type: Array },\n columns: { type: Array },\n showStatus: { type: Boolean, attribute: \"show-status\" },\n };\n\n declare data: TableRow[];\n declare columns: string[];\n declare showStatus: boolean;\n\n constructor() {\n super();\n this.data = [];\n this.columns = [\"Product\", \"Users\", \"Retention\"];\n this.showStatus = true;\n }\n\n static styles = unsafeCSS(styles);\n\n render() {\n return html`\n <div class=\"table-container\">\n <div class=\"table-header\">\n <div class=\"header-cell product-cell\">Product</div>\n <div class=\"header-cell users-cell\">Users</div>\n <div class=\"header-cell retention-cell\">Retention</div>\n ${this.showStatus ? html`<div class=\"header-cell\">Status</div>` : \"\"}\n </div>\n <div class=\"table-body\">\n ${this.data.map(\n (row, rowIndex) => html`\n <div class=\"data-cell product-cell\">${row.product}</div>\n <div class=\"data-cell users-cell\">${row.users}</div>\n <div class=\"data-cell retention-cell\">${row.retention}</div>\n ${this.showStatus\n ? html`<div class=\"data-cell status-cell\">\n ${row.status || \"Pending\"}\n </div>`\n : \"\"}\n `\n )}\n </div>\n </div>\n `;\n }\n}\n\ncustomElements.define(\"ds-table\", DsTable);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-table\": DsTable;\n }\n}\n","// ds-container.ts\n// Container component with responsive width constraints\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-container.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Container extends LitElement {\n static styles = unsafeCSS(styles);\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ncustomElements.define(\"ds-container\", Container);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-container\": Container;\n }\n}\n","// ds-grid.ts\n// Simple grid layout component\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport { detectMobileDevice } from \"../0-face/device\";\nimport styles from \"./styles/ds-grid.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Grid extends LitElement {\n static properties = {\n align: { type: String },\n };\n\n align?: string;\n private resizeObserver?: () => void;\n private resizeTimeout?: any;\n\n static styles = unsafeCSS(styles);\n\n connectedCallback() {\n super.connectedCallback();\n this.updateMobileClass();\n\n // Listen for resize events to update mobile class\n this.resizeObserver = () => {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n this.resizeTimeout = setTimeout(() => {\n this.updateMobileClass();\n }, 100);\n };\n window.addEventListener(\"resize\", this.resizeObserver);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this.resizeObserver) {\n window.removeEventListener(\"resize\", this.resizeObserver);\n }\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n }\n\n private updateMobileClass() {\n const isMobile = detectMobileDevice();\n if (isMobile) {\n this.classList.add(\"mobile\");\n this.classList.remove(\"desktop\");\n } else {\n this.classList.add(\"desktop\");\n this.classList.remove(\"mobile\");\n }\n }\n\n render() {\n return html``;\n }\n}\n\ncustomElements.define(\"ds-grid\", Grid);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-grid\": Grid;\n }\n}\n","// ds-layout.ts\n// Simple grid layout component with view mode\n\nimport { LitElement, html, css, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-layout.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Layout extends LitElement {\n static properties = {\n mode: { type: String },\n align: { type: String },\n view: { type: Boolean },\n };\n\n mode: string = \"portfolio\";\n align?: string;\n view?: boolean;\n\n static styles = [\n unsafeCSS(styles),\n css`\n :host {\n display: grid;\n position: relative;\n width: 100%;\n }\n\n slot {\n display: contents;\n }\n\n :host([mode=\"portfolio\"]) {\n --portfolio-cols: 120px 480px 40px;\n --portfolio-rows: 120px 120px 60px 180px 60px 120px 60px 20px 120px 120px;\n --portfolio-areas: \"square . .\" \". title .\" \". header .\" \". projects .\"\n \". . .\" \". bio .\" \". . .\" \". nav .\" \". . .\" \". footer .\" \". . .\";\n --portfolio-overlay-cols: 120px 480px;\n --portfolio-overlay-areas: \"square .\" \". title\" \". header\" \". projects\"\n \". .\" \". bio\" \". .\" \". nav\" \". .\" \". footer\" \". .\";\n grid-template-columns: var(--portfolio-cols);\n grid-template-rows: var(--portfolio-rows);\n grid-template-areas: var(--portfolio-areas);\n min-height: 600px;\n background-color: rgba(165, 165, 165, 0.03);\n max-width: 640px;\n margin: 0;\n }\n\n :host([mode=\"portfolio\"]) .view-overlay {\n grid-template-columns: var(--portfolio-overlay-cols);\n grid-template-rows: var(--portfolio-rows);\n grid-template-areas: var(--portfolio-overlay-areas);\n }\n\n :host([mode=\"company\"]) {\n --company-cols: auto 400px auto;\n --company-rows: 80px 20px 20px 120px 20px 120px;\n --company-areas: \". . .\" \". header .\" \". . .\" \". content .\" \". . .\"\n \". footer .\";\n grid-template-columns: var(--company-cols);\n grid-template-rows: var(--company-rows);\n grid-template-areas: var(--company-areas);\n gap: 0;\n max-width: 100%;\n }\n\n :host([mode=\"company\"]) .view-overlay {\n grid-template-columns: var(--company-cols);\n grid-template-rows: var(--company-rows);\n grid-template-areas: var(--company-areas);\n gap: 0;\n }\n\n :host([align=\"left\"]),\n :host([mode=\"portfolio\"][align=\"left\"]),\n :host([mode=\"company\"][align=\"left\"]),\n :host([mode=\"app\"][align=\"left\"]),\n :host([mode=\"list\"][align=\"left\"]),\n :host([mode=\"home\"][align=\"left\"]) {\n margin: 0;\n justify-self: start;\n }\n\n :host([align=\"center\"]),\n :host([mode=\"portfolio\"][align=\"center\"]),\n :host([mode=\"company\"][align=\"center\"]),\n :host([mode=\"app\"][align=\"center\"]),\n :host([mode=\"list\"][align=\"center\"]),\n :host([mode=\"home\"][align=\"center\"]) {\n margin: 0 auto;\n justify-self: center;\n }\n\n :host([align=\"right\"]),\n :host([mode=\"portfolio\"][align=\"right\"]),\n :host([mode=\"company\"][align=\"right\"]),\n :host([mode=\"app\"][align=\"right\"]),\n :host([mode=\"list\"][align=\"right\"]),\n :host([mode=\"home\"][align=\"right\"]) {\n margin: 0 0 0 auto;\n justify-self: end;\n }\n\n /* App mode - Base */\n :host([mode=\"app\"]) {\n --app-cols: 100%;\n --app-overlay-cols: 100%;\n grid-template-columns: var(--app-cols);\n grid-template-rows: var(--app-layout);\n grid-template-areas: var(--app-layout-areas);\n min-height: 100vh;\n background-color: transparent;\n width: calc(240px * var(--sf, 1));\n max-width: calc(240px * var(--sf, 1));\n margin: 0 auto;\n }\n\n :host([mode=\"app\"]) .view-overlay {\n grid-template-columns: var(--app-overlay-cols);\n grid-template-rows: var(--app-layout);\n grid-template-areas: var(--app-layout-areas);\n }\n\n /* List mode - Base */\n :host([mode=\"list\"]) {\n --list-cols: 100%;\n --list-rows: calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))\n calc(var(--unit) * var(--sf)) calc(var(--twenty) * var(--sf));\n --list-areas: \"banner\" \".\" \"header\" \"board\";\n --list-overlay-cols: 100%;\n --list-overlay-rows: calc(var(--unit) * var(--sf))\n calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))\n calc(var(--twenty) * var(--sf));\n --list-overlay-areas: \"banner\" \".\" \"header\" \"board\";\n grid-template-columns: var(--list-cols);\n grid-template-rows: var(--list-rows);\n grid-template-areas: var(--list-areas);\n min-height: 100vh;\n background-color: transparent;\n width: calc(240px * var(--sf, 1));\n max-width: calc(240px * var(--sf, 1));\n margin: 0 auto;\n }\n\n :host([mode=\"list\"]) .view-overlay {\n grid-template-columns: var(--list-overlay-cols);\n grid-template-rows: var(--list-overlay-rows);\n grid-template-areas: var(--list-overlay-areas);\n }\n\n /* Home mode - Base */\n :host([mode=\"home\"]) {\n --home-cols: 100%;\n --home-areas: \"banner\" \".\" \"header\" \".\" \"message\" \"lists\" \".\" \"footer\";\n --home-overlay-cols: 100%;\n --home-overlay-areas: \"banner\" \".\" \"header\" \".\" \"message\" \"lists\" \".\"\n \"footer\";\n grid-template-columns: var(--home-cols);\n grid-template-rows: var(--home-layout);\n grid-template-areas: var(--home-areas);\n min-height: 100vh;\n background-color: transparent;\n width: calc(240px * var(--sf, 1));\n max-width: calc(240px * var(--sf, 1));\n margin: 0 auto;\n }\n\n :host([mode=\"home\"]) .view-overlay {\n grid-template-columns: var(--home-overlay-cols);\n grid-template-rows: var(--home-layout);\n grid-template-areas: var(--home-overlay-areas);\n }\n\n .view-overlay {\n position: absolute;\n margin-left: -1px;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: 1000;\n display: grid;\n }\n\n .view-area {\n display: flex;\n width: calc(240px * var(--sf, 1));\n height: 100%;\n align-items: center;\n justify-content: center;\n font-family: var(--typeface-regular);\n font-size: calc(var(--type-size-default) * var(--05));\n color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n background-color: color-mix(\n in srgb,\n var(--accent-color) 25%,\n transparent\n );\n opacity: 1;\n position: relative;\n }\n\n .grid-area-label {\n position: absolute;\n top: calc(-20px * var(--sf, 1));\n left: 0;\n height: calc(20px * var(--sf, 1));\n width: fit-content;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0 calc(4px * var(--sf, 1));\n border-radius: calc(2px * var(--sf, 1));\n z-index: 10000;\n pointer-events: none;\n white-space: nowrap;\n }\n\n /* Banner label stays inside the area (first item) */\n :host([mode=\"app\"]) .view-area.view-banner .grid-area-label,\n :host([mode=\"list\"]) .view-area.view-banner .grid-area-label,\n :host([mode=\"home\"]) .view-area.view-banner .grid-area-label,\n :host([mode=\"company\"]) .view-area.view-header .grid-area-label,\n :host([mode=\"portfolio\"]) .view-area.view-square .grid-area-label {\n top: 0;\n }\n\n .grid-area-label ds-text {\n font-size: calc(11px * var(--sf, 1));\n line-height: 1;\n color: white;\n text-transform: lowercase;\n }\n\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(2) {\n border-color: var(--sharp-blue);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(3) {\n border-color: var(--yellow);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(4) {\n border-color: var(--apple-green);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(5) {\n border-color: var(--pink);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(5) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--pink) 70%, black) 0%,\n color-mix(in srgb, var(--pink) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(6) {\n border-color: var(--orange);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(6) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--orange) 70%, black) 0%,\n color-mix(in srgb, var(--orange) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(7) {\n border-color: var(--zenith-blue);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(7) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--zenith-blue) 70%, black) 0%,\n color-mix(in srgb, var(--zenith-blue) 70%, black) 100%\n );\n }\n\n :host([mode=\"company\"]) .view-area:nth-of-type(1) {\n border-color: var(--tuned-red);\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(2) {\n border-color: var(--sharp-blue);\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(3) {\n border-color: var(--yellow);\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n\n :host([mode=\"app\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(2) {\n background-color: color-mix(in srgb, var(--sharp-blue) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(3) {\n background-color: color-mix(in srgb, var(--yellow) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(4) {\n background-color: color-mix(in srgb, var(--apple-green) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(5) {\n background-color: color-mix(in srgb, var(--pink) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(5) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--pink) 70%, black) 0%,\n color-mix(in srgb, var(--pink) 70%, black) 100%\n );\n }\n\n :host([mode=\"list\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(2) {\n background-color: color-mix(in srgb, var(--sharp-blue) 25%, transparent);\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(3) {\n background-color: color-mix(in srgb, var(--yellow) 25%, transparent);\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(4) {\n background-color: color-mix(in srgb, var(--apple-green) 25%, transparent);\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n\n :host([mode=\"home\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(2) {\n background-color: color-mix(in srgb, var(--sharp-blue) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(3) {\n background-color: color-mix(in srgb, var(--yellow) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(4) {\n background-color: color-mix(in srgb, var(--apple-green) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(5) {\n background-color: color-mix(in srgb, var(--pink) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(5) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--pink) 70%, black) 0%,\n color-mix(in srgb, var(--pink) 70%, black) 100%\n );\n }\n\n .view-square {\n grid-area: square;\n }\n\n .view-title {\n grid-area: title;\n }\n\n .view-header {\n grid-area: header;\n }\n\n .view-projects {\n grid-area: projects;\n }\n\n .view-bio {\n grid-area: bio;\n }\n\n .view-nav {\n grid-area: nav;\n }\n\n .view-footer {\n grid-area: footer;\n }\n\n .view-content {\n grid-area: content;\n }\n\n .view-banner {\n grid-area: banner;\n }\n\n .view-main {\n grid-area: main;\n }\n\n .view-page-dots {\n grid-area: page-dots;\n }\n\n .view-board {\n grid-area: board;\n }\n\n .view-message {\n grid-area: message;\n }\n\n .view-lists {\n grid-area: lists;\n }\n `\n ];\n\n render() {\n const isView = this.view || this.mode === \"view\";\n const isPortfolio = this.mode === \"portfolio\";\n const isCompany = this.mode === \"company\";\n const isApp = this.mode === \"app\";\n const isList = this.mode === \"list\";\n const isHome = this.mode === \"home\";\n\n return html`\n <slot></slot>\n ${isView\n ? html`\n <div class=\"view-overlay\">\n ${isHome\n ? html`\n <div class=\"view-area view-banner\">\n <div class=\"grid-area-label\">\n <ds-text key=\"banner\" default-value=\"banner\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text key=\"header\" default-value=\"header\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-message\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"message\"\n default-value=\"message\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-lists\">\n <div class=\"grid-area-label\">\n <ds-text key=\"lists\" default-value=\"lists\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text key=\"footer\" default-value=\"footer\"></ds-text>\n </div>\n </div>\n `\n : isList\n ? html`\n <div class=\"view-area view-banner\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"banner\"\n default-value=\"banner\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"header\"\n default-value=\"header\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-board\">\n <div class=\"grid-area-label\">\n <ds-text key=\"board\" default-value=\"board\"></ds-text>\n </div>\n </div>\n `\n : isApp\n ? html`\n <div class=\"view-area view-banner\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"banner\"\n default-value=\"banner\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"header\"\n default-value=\"header\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-main\">\n <div class=\"grid-area-label\">\n <ds-text key=\"main\" default-value=\"main\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-page-dots\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"pageDots\"\n default-value=\"page-dots\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"footer\"\n default-value=\"footer\"\n ></ds-text>\n </div>\n </div>\n `\n : isCompany\n ? html`\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"header\"\n default-value=\"header\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-content\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"content\"\n default-value=\"content\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"footer\"\n default-value=\"footer\"\n ></ds-text>\n </div>\n </div>\n `\n : isPortfolio\n ? html`\n <div class=\"view-area view-square\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"square\"\n default-value=\"square\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-title\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"title\"\n default-value=\"title\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"header\"\n default-value=\"header\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-projects\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"projects\"\n default-value=\"projects\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-bio\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"bio\"\n default-value=\"bio\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-nav\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"nav\"\n default-value=\"nav\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"footer\"\n default-value=\"footer\"\n ></ds-text>\n </div>\n </div>\n `\n : \"\"}\n </div>\n `\n : \"\"}\n `;\n }\n}\n\ncustomElements.define(\"ds-layout\", Layout);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-layout\": Layout;\n }\n}\n"],"names":["detectMobileDevice","nav","win","ua","uaMatchesMobile","isTouchCapable","narrowViewport","getDeviceInfo","isMobile","screenWidth","screenHeight","isTablet","initDeviceDetection","deviceInfo","scalingFactor","resizeTimeout","applike","viewport","style","existingStyle","lastTouchEnd","touchStartTime","preventZoom","event","now","options","e","translationKeys","LANGUAGE_PRIORITY_ORDER","LANGUAGE_PRIORITY_LOOKUP","code","index","FALLBACK_LANGUAGE_NAMES","DISPLAY_NAME_CACHE","displayNameFallbackWarningShown","DEFAULT_TRANSLATION_FILE","loadAttempted","normalizeCandidate","path","trimmed","findAttributeCandidate","scriptCandidate","metaCandidate","linkCandidate","resolveTranslationSources","candidates","windowCandidate","attributeCandidate","windowNormalized","attrNormalized","validateTranslationMap","candidate","entry","fetchTranslationFile","source","response","translations","loadExternalTranslations","sources","languages","getTranslationData","translationData","defaultLanguage","extractPrimarySubtag","getLanguagePriority","primary","priority","sortLanguageCodes","codes","a","b","priorityA","priorityB","getDisplayNameForLocale","locale","normalizedLocale","displayNames","cleanedCode","fullMatch","baseMatch","getFallbackDisplayName","normalized","direct","getLanguageDisplayName","localesToTry","tried","displayName","fallback","BROWSER_LANGUAGE_PREFERENCES","resolvePreferredLanguage","languageTag","directMatch","primaryMatch","getBrowserLanguage","browserLang","resolved","currentLanguage","lang","currentLang","translate","key","hasTranslation","language","langData","getText","getAvailableLanguages","currentData","getAvailableLanguagesSync","loadTranslations","setLanguage","savePreferences","preferences","raw","next","error","PRICE_LABELS","getPriceLabel","country","countryUpper","primaryLang","__defProp","__defNormalProp","obj","value","__publicField","__accessCheck","member","msg","__privateIn","__privateAdd","__privateMethod","method","defaultEquals","activeConsumer","inNotificationPhase","epoch","SIGNAL","setActiveConsumer","consumer","prev","getActiveConsumer","isInNotificationPhase","REACTIVE_NODE","producerAccessed","node","idx","assertConsumerNode","consumerIsLive","staleProducer","producerRemoveLiveConsumerAtIndex","producerAddLiveConsumer","producerIncrementEpoch","producerUpdateValueVersion","consumerPollProducersForChange","producerNotifyConsumers","consumerMarkDirty","producerUpdatesAllowed","_a","consumerBeforeComputation","consumerAfterComputation","prevConsumer","i","producer","seenVersion","indexOfThis","assertProducerNode","lastIdx","idxProducer","computedGet","ERRORED","createComputed","computation","COMPUTED_NODE","computed","UNSET","COMPUTING","oldValue","newValue","wasEqual","err","defaultThrowError","throwInvalidWriteToSignalErrorFn","throwInvalidWriteToSignalError","createSignal","initialValue","SIGNAL_NODE","getter","signalGetFn","signalSetFn","signalValueChanged","NODE","Signal","Signal2","_brand","_b","_brand2","State","equals","ref","s","Computed","c","subtle2","_a2","_brand3","_assertSignals","assertSignals_fn","untrack","cb","output","prevActiveConsumer","introspectSources","sink","_a3","n","introspectSinks","signal","hasSinks","liveConsumerNode","hasSources","producerNode","Watcher","notify","signals","idxConsumer","w","currentComputed","t","i$4","h","o","r","l","u","d","f","v","_","m","p","g","$","y","x","T","E","A","C","P","V","N","H","I","L","k","S","M","R","z","j","B","defaultConfig","scalingConfig","calculateScalingFactor","viewportWidth","config","rawScale","clampedScale","setScalingConfig","newConfig","updateScalingFactor","newFactor","getScalingFactor","scale","designPx","unscale","scaledPx","factor","initScaling","getInitialTheme","storedTheme","currentTheme","setTheme","theme","root","n$1","_Text","LitElement","changedProperties","parts","hasHans","hasHant","translatedText","html","unsafeCSS","styles","Text","_Button","hasTextProps","Button","_Banner","subject","describe","appVersionLabel","body","mailtoHref","Banner","_Card","css","Card","__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","__vite_glob_0_4","__vite_glob_0_5","__vite_glob_0_6","__vite_glob_0_7","__vite_glob_0_8","__vite_glob_0_9","__vite_glob_0_10","__vite_glob_0_11","__vite_glob_0_12","__vite_glob_0_13","__vite_glob_0_14","__vite_glob_0_15","__vite_glob_0_16","__vite_glob_0_17","__vite_glob_0_18","__vite_glob_0_19","__vite_glob_0_20","__vite_glob_0_21","__vite_glob_0_22","__vite_glob_0_23","__vite_glob_0_24","__vite_glob_0_25","__vite_glob_0_26","__vite_glob_0_27","__vite_glob_0_28","__vite_glob_0_29","__vite_glob_0_30","__vite_glob_0_31","__vite_glob_0_32","__vite_glob_0_33","__vite_glob_0_34","__vite_glob_0_35","__vite_glob_0_36","__vite_glob_0_37","__vite_glob_0_38","__vite_glob_0_39","__vite_glob_0_40","__vite_glob_0_41","__vite_glob_0_42","__vite_glob_0_43","__vite_glob_0_44","__vite_glob_0_45","__vite_glob_0_46","__vite_glob_0_47","__vite_glob_0_48","__vite_glob_0_49","__vite_glob_0_50","__vite_glob_0_51","__vite_glob_0_52","__vite_glob_0_53","__vite_glob_0_54","__vite_glob_0_55","__vite_glob_0_56","__vite_glob_0_57","__vite_glob_0_58","__vite_glob_0_59","__vite_glob_0_60","__vite_glob_0_61","__vite_glob_0_62","__vite_glob_0_63","__vite_glob_0_64","_Icon","val","oldVal","svgFromSet","unsafeHTML","modules","map","content","baseName","Icon","saveAccentColor","color","getAccentColor","applyAccentColor","saveNotesStyleMedium","getNotesStyleMedium","savePageStyle","getPageStyle","_Cycle","availableLanguages","currentThemeValue","currentAccentColor","currentNotesStyle","currentPageStyle","defaultTheme","name","nextIndex","newLanguage","newTheme","newColor","newStyle","newBehavior","newIconOnlyValue","translatedName","colorVar","translationText","resolve","handleTranslationsLoaded","Cycle","_DateComponent","year","DateComponent","_Gap","Gap","_Input","target","hasError","Input","_Tooltip","changed","bubbleClasses","Tooltip","_Row","Row","_Accordion","hasContent","Accordion","_Form","data","elements","element","child","result","input","validationResult","formData","Form","_List","List","_DsTable","row","rowIndex","DsTable","_Container","Container","_Grid","Grid","_Layout","isView","isPortfolio","isCompany","isApp","isList","isHome","Layout"],"mappings":"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AAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;ACCf;AAAA;AAAA;AAAA;AAAA;AAIG,MAAM5V,WAAU6M,GAAC;AAAA,EAAC,YAAYtE,GAAE;AAAC,QAAG,MAAMA,CAAC,GAAE,KAAK,KAAGkE,GAAElE,EAAE,SAAOsC,GAAE,MAAM,OAAM,MAAM,KAAK,YAAY,gBAAc,uCAAuC;AAAA,EAAC;AAAA,EAAC,OAAOgC,GAAE;AAAC,QAAGA,MAAIJ,KAASI,KAAN,KAAQ,QAAO,KAAK,KAAG,QAAO,KAAK,KAAGA;AAAE,QAAGA,MAAItE,EAAE,QAAOsE;AAAE,QAAa,OAAOA,KAAjB,SAAmB,OAAM,MAAM,KAAK,YAAY,gBAAc,mCAAmC;AAAE,QAAGA,MAAI,KAAK,GAAG,QAAO,KAAK;AAAG,SAAK,KAAGA;AAAE,UAAMhC,IAAE,CAACgC,CAAC;AAAE,WAAOhC,EAAE,MAAIA,GAAE,KAAK,KAAG,EAAC,YAAW,KAAK,YAAY,YAAW,SAAQA,GAAE,QAAO,CAAA,EAAE;AAAA,EAAC;AAAC;AAAC7K,GAAE,gBAAc,cAAaA,GAAE,aAAW;AAAE,MAAM4M,KAAEhB,GAAE5L,EAAC,oZCDtgB6V,IAAN,MAAMA,UAAaxF,EAAW;AAAA,EAoDnC,cAAc;AACZ,UAAA,GAhDF,KAAQ,QAAQ,IAEhB,KAAA,OAAO,OACP,KAAA,QAAQ,gBACR,KAAA,aAAa,eA6CX,QAAQ,IAAI,oBAAoB,KAAK,KAAK;AAAA,EAC5C;AAAA,EA5CA,IAAI,OAAO;AACT,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAI,KAAKyF,GAAK;AACZ,UAAMC,IAAS,KAAK;AACpB,SAAK,QAAQD,GACb,KAAK,cAAc,QAAQC,CAAM;AAAA,EACnC;AAAA,EAuCA,oBAAoB;AAClB,UAAM,kBAAA,GACN,QAAQ,IAAI,kBAAkB,KAAK,KAAK;AAAA,EAC1C;AAAA,EAEA,aAAa;AAGX,QAFA,QAAQ,IAAI,gCAAgC,KAAK,KAAK,GAElD,CAAC,KAAK,SAAS,KAAK,UAAU;AAChC,qBAAQ,IAAI,2CAA2C,GAChDpF;AAIT,UAAMqF,IAAaH,EAAK,iBAAiB,KAAK,MAAM,aAAa;AACjE,QAAIG;AACF,aAAOrF,gCAAmCsF,GAAWD,CAAU,CAAC;AAGlE,YAAQ,KAAK,MAAM,YAAA,GAAY;AAAA,MAC7B,KAAK;AACH,uBAAQ,IAAI,sBAAsB,GAC3BrF;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAST,KAAK;AACH,uBAAQ,IAAI,qBAAqB,GAC1BA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAgBT,KAAK;AACH,uBAAQ,IAAI,qBAAqB,GAC1BA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAoBT,KAAK;AACH,uBAAQ,IAAI,wBAAwB,GAC7BA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MA4BT,KAAK;AACH,uBAAQ,IAAI,oBAAoB,GACzBA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAwCT,KAAK;AACH,uBAAQ,IAAI,wBAAwB,GAC7BA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAoCT,KAAK;AACH,uBAAQ,IAAI,sBAAsB,GAC3BA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAoBT;AACE,uBAAQ,IAAI,sBAAsB,KAAK,KAAK,0BAA0B,GAC/DA;AAAAA,IAAA;AAAA,EAEb;AAAA,EAEA,QAAQL,GAAmC;AACzC,YAAQ,IAAI,gBAAgBA,CAAiB,GAE7C,KAAK,MAAM,YAAY,eAAe,KAAK,IAAI,GAC/C,KAAK,MAAM,YAAY,gBAAgB,KAAK,KAAK,GACjD,KAAK,MAAM,YAAY,qBAAqB,KAAK,UAAU;AAAA,EAC7D;AAAA,EAEA,SAAS;AACP,mBAAQ,IAAI,eAAe,KAAK,KAAK,GAC9B,KAAK,WAAA;AAAA,EACd;AACF;AArREuF,EAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,QAAQ,SAAS,GAAA;AAAK,GAkBtCA,EAAO,SAASjF,EAAUC,EAAM,GAIhCgF,EAAwB,oBAA4C,MAAM;AACxE,MAAI;AAEF,UAAMK,IAAW,uBAAA,OAAA;AAAA,MAAA,oBAAAtE;AAAA,MAAA,wBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,oBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,qBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,qBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,0BAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,oBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,2BAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,oBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,qBAAAC;AAAA,MAAA,0BAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,qBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,qBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,qBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,oBAAAC;AAAA,IAAA,CAAA,GAMXO,IAA8B,CAAA;AACpC,eAAW,CAACvV,GAAMwV,CAAO,KAAK,OAAO,QAAQF,CAAO,GAAG;AAErD,YAAMG,KADWzV,EAAK,MAAM,GAAG,EAAE,SAAS,IAChB,QAAQ,WAAW,EAAE,EAAE,YAAA;AACjD,MAAIyV,MACFF,EAAIE,CAAQ,IAAID;AAAA,IAEpB;AACA,WAAOD;AAAA,EACT,SAAS1M,GAAK;AAEZ,mBAAQ;AAAA,MACN;AAAA,MACAA;AAAA,IAAA,GAEK,CAAA;AAAA,EACT;AACF,GAAA;AAlDK,IAAM6M,KAANT;AAwRP,eAAe,OAAO,WAAWS,EAAI;AAGrC,QAAQ,IAAI,yDAAyD;yRC7Q/DC,KAAkB,CAACC,MAAkB;AACzC,eAAa,QAAQ,eAAeA,CAAK;AAC3C,GAEMC,KAAiB,MACd,aAAa,QAAQ,aAAa,KAAK,gBAG1CC,KAAmB,MAAM;AAC7B,QAAMF,IAAQC,GAAA;AACd,WAAS,gBAAgB,MAAM,YAAY,kBAAkB,OAAOD,CAAK,GAAG;AAC9E,GAGMG,KAAuB,CAACnX,MAAkB;AAC9C,eAAa,QAAQ,oBAAoBA,CAAK;AAChD,GAEMoX,KAAsB,MACnB,aAAa,QAAQ,kBAAkB,KAAK,QAI/CC,KAAgB,CAACrX,MAAkB;AACvC,eAAa,QAAQ,aAAaA,CAAK;AACzC,GAEMsX,IAAe,MACZ,aAAa,QAAQ,WAAW,KAAK,QAMjCC,KAAN,MAAMA,WAAc1G,EAAW;AAAA;AAAA,EAEpC,WAAW,aAAa;AACtB,WAAO;AAAA,MACL,MAAM,EAAE,MAAM,OAAA;AAAA,MACd,QAAQ,EAAE,MAAM,MAAA;AAAA,MAChB,cAAc,EAAE,MAAM,QAAQ,OAAO,GAAA;AAAA;AAAA,MACrC,mBAAmB,EAAE,MAAM,SAAS,OAAO,GAAA;AAAA;AAAA,MAC3C,UAAU,EAAE,MAAM,SAAS,OAAO,GAAA;AAAA,MAClC,SAAS,EAAE,MAAM,OAAA;AAAA,IAAO;AAAA,EAE5B;AAAA,EAuBA,cAAc;AACZ,UAAA,GAGA,KAAK,OAAO,IACZ,KAAK,SAAS,CAAA,GACd,KAAK,eAAe,IACpB,KAAK,oBAAoB,IACzB,KAAK,WAAW,IAChB,KAAK,UAAU,IAGf,KAAK,gBAAgB;AAAA,MACnB,oBAAoB,KAAK,yBAAyB,KAAK,IAAI;AAAA,MAC3D,iBAAiB,KAAK,sBAAsB,KAAK,IAAI;AAAA,MACrD,uBAAuB,KAAK,sBAAsB,KAAK,IAAI;AAAA,MAC3D,oBAAoB,KAAK,mBAAmB,KAAK,IAAI;AAAA,MACrD,0BAA0B,KAAK,yBAAyB,KAAK,IAAI;AAAA,MACjE,2BAA2B,KAAK,0BAA0B,KAAK,IAAI;AAAA,IAAA;AAAA,EAEvE;AAAA,EAEA,oBAAoB;AAClB,UAAM,kBAAA,GAGN,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAIrB,KAAK,iBAAA;AAAA,EACP;AAAA,EAEA,MAAM,mBAAmB;AACvB,QAAI,KAAK,SAAS,YAAY;AAE5B,YAAM2G,IAAqB/R,GAAA;AAC3B,WAAK,SAAS+R,GACd,KAAK,eAAe1S,EAAgB;AAAA,IACtC,WAAW,KAAK,SAAS,SAAS;AAEhC,WAAK,SAAS,CAAC,SAAS,MAAM;AAG9B,YAAM2S,IAAoBlH,EAAa,IAAA;AACvC,WAAK,eAAekH;AAAA,IACtB,WAAW,KAAK,SAAS,gBAAgB;AAEvC,WAAK,SAAS;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAIF,YAAMC,IAAqBT,GAAA;AAC3B,WAAK,eAAeS,GAGpBR,GAAA;AAAA,IACF,WAAW,KAAK,SAAS,sBAAsB;AAE7C,WAAK,SAAS,CAAC,WAAW,OAAO,SAAS;AAG1C,YAAMS,IAAoBP,GAAA;AAC1B,WAAK,eAAeO;AAGpB,YAAMC,IAAmBN,EAAA;AACzB,WAAK,WAAWM,MAAqB;AAAA,IACvC,WAAW,KAAK,SAAS,cAAc;AAErC,WAAK,SAAS,CAAC,QAAQ,MAAM;AAG7B,YAAMA,IAAmBN,EAAA;AACzB,WAAK,eAAeM;AAAA,IACtB,MAAA,CAAW,KAAK,SAAS,gBAEvB,KAAK,SAAS,CAAC,QAAQ,MAAM,GAG7B,KAAK,eAAe,KAAK,OAAO,CAAC;AAInC,SAAK,cAAA;AAAA,EACP;AAAA,EAEA,yBAAyB;AAGvB,QAAI,CADe,aAAa,QAAQ,OAAO,GAC9B;AAIf,YAAMC,IAHc,OAAO;AAAA,QACzB;AAAA,MAAA,EACA,UACiC,SAAS;AAC5C,mBAAa,QAAQ,SAASA,CAAY,GAC1C,SAAS,gBAAgB,UAAU,IAAI,GAAGA,CAAY,QAAQ;AAAA,IAChE;AAAA,EACF;AAAA,EAEA,yBAAyBC,GAAchO,GAAkBC,GAAkB;AACzE,UAAM,yBAAyB+N,GAAMhO,GAAUC,CAAQ,GAEnD+N,MAAS,UAAUhO,MAAaC,KAElC,KAAK,iBAAA;AAAA,EAET;AAAA,EAEA,MAAM,oBAAoB;AACxB,QAAI,KAAK,SAAS,YAAY;AAE5B,YAAM/E,IAAcF,EAAgB;AACpC,WAAK,eAAeE;AAAA,IACtB,WAAW,KAAK,SAAS,SAAS;AAEhC,YAAMyS,IAAoBlH,EAAa,IAAA;AACvC,WAAK,eAAekH;AAAA,IACtB,WAAW,KAAK,SAAS,gBAAgB;AAEvC,YAAMC,IAAqBT,GAAA;AAC3B,WAAK,eAAeS,GAGpBR,GAAA;AAAA,IACF,WAAW,KAAK,SAAS,sBAAsB;AAE7C,YAAMS,IAAoBP,GAAA;AAC1B,WAAK,eAAeO;AAGpB,YAAMC,IAAmBN,EAAA;AACzB,WAAK,WAAWM,MAAqB;AAAA,IACvC,WAAW,KAAK,SAAS,cAAc;AAErC,YAAMA,IAAmBN,EAAA;AACzB,WAAK,eAAeM;AAAA,IACtB,WAAW,KAAK,SAAS,aAAa;AAEpC,YAAMA,IAAmBN,EAAA;AACzB,WAAK,eAAeM;AAAA,IACtB;AAEA,SAAK,cAAA;AAAA,EACP;AAAA,EAEA,wBAAwB;AAEtB,SAAK,kBAAA;AAAA,EACP;AAAA,EAEA,uBAAuB;AACrB,UAAM,qBAAA,GAGN,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAAA,EAEvB;AAAA,EAEA,kBAAkB,GAAU;AAK1B,QAJA,EAAE,eAAA,GACF,EAAE,gBAAA,GAGE,MAAK,UAIT;AAAA,UAAI,KAAK,SAAS,YAAY;AAG5B,cAAMG,KADe,KAAK,OAAO,QAAQ,KAAK,YAAY,IACxB,KAAK,KAAK,OAAO,QAC7CC,IAAc,KAAK,OAAOD,CAAS;AAGzC,aAAK,eAAeC,GAGf,SAAiB,sBACnB,SAAiB,oBAAoB,MAAM;AAC1C,UAAArS,GAAYqS,CAA2B;AAAA,QACzC,CAAC,IAEDrS,GAAYqS,CAA2B,GAIzCpS,EAAgB,EAAE,UAAUoS,GAA6B,GAGzD,OAAO;AAAA,UACL,IAAI,YAAY,oBAAoB;AAAA,YAClC,QAAQ,EAAE,UAAUA,EAAA;AAAA,UAAY,CACjC;AAAA,QAAA;AAAA,MAEL,WAAW,KAAK,SAAS,SAAS;AAGhC,cAAMD,KADe,KAAK,OAAO,QAAQ,KAAK,YAAY,IACxB,KAAK,KAAK,OAAO,QAC7CE,IAAW,KAAK,OAAOF,CAAS;AAGtC,aAAK,eAAeE,GAGpBzH,GAASyH,CAAqB,GAG9BrS,EAAgB,EAAE,OAAOqS,GAAuB;AAAA,MAGlD,WAAW,KAAK,SAAS,gBAAgB;AAGvC,cAAMF,KADe,KAAK,OAAO,QAAQ,KAAK,YAAY,IACxB,KAAK,KAAK,OAAO,QAC7CG,IAAW,KAAK,OAAOH,CAAS;AAGtC,aAAK,eAAeG,GAGpBnB,GAAgBmB,CAAQ,GAGxBhB,GAAA,GAGAtR,EAAgB,EAAE,aAAasS,GAAU,GAGzC,OAAO;AAAA,UACL,IAAI,YAAY,wBAAwB;AAAA,YACtC,QAAQ,EAAE,OAAOA,EAAA;AAAA,UAAS,CAC3B;AAAA,QAAA;AAAA,MAEL,WAAW,KAAK,SAAS,sBAAsB;AAG7C,cAAMH,KADe,KAAK,OAAO,QAAQ,KAAK,YAAY,IACxB,KAAK,KAAK,OAAO,QAC7CI,IAAW,KAAK,OAAOJ,CAAS;AAGtC,aAAK,eAAeI,GAGpBhB,GAAqBgB,CAAQ,GAG7BvS,EAAgB,EAAE,kBAAkBuS,GAAU,GAG9C,OAAO;AAAA,UACL,IAAI,YAAY,8BAA8B;AAAA,YAC5C,QAAQ,EAAE,OAAOA,EAAA;AAAA,UAAS,CAC3B;AAAA,QAAA;AAAA,MAEL,WAAW,KAAK,SAAS,cAAc;AAGrC,cAAMJ,KADe,KAAK,OAAO,QAAQ,KAAK,YAAY,IACxB,KAAK,KAAK,OAAO,QAC7CK,IAAc,KAAK,OAAOL,CAAS;AAGzC,aAAK,eAAeK,GAGpBf,GAAce,CAAW,GAGzBxS,EAAgB,EAAE,WAAWwS,GAAa,GAG1C,OAAO;AAAA,UACL,IAAI,YAAY,sBAAsB;AAAA,YACpC,QAAQ,EAAE,UAAUA,EAAA;AAAA,UAAY,CACjC;AAAA,QAAA;AAAA,MAEL,WAAW,KAAK,SAAS,aAAa;AAGpC,cAAML,KADe,KAAK,OAAO,QAAQ,KAAK,YAAY,IACxB,KAAK,KAAK,OAAO,QAC7CM,IAAmB,KAAK,OAAON,CAAS;AAG9C,aAAK,eAAeM,GAGpBhB,GAAcgB,CAAgB,GAG9BzS,EAAgB,EAAE,WAAWyS,GAAkB,GAG/C,OAAO;AAAA,UACL,IAAI,YAAY,sBAAsB;AAAA,YACpC,QAAQ,EAAE,UAAUA,EAAA;AAAA,UAAiB,CACtC;AAAA,QAAA;AAAA,MAEL;AAGA,WAAK,cAAA;AAAA;AAAA,EACP;AAAA,EAEA,gBAAgB5R,GAA6B;AAC3C,QAAI,KAAK,SAAS;AAChB,aAAOxC,GAAuBwC,GAAO;AAAA,QACnC,QAAQ3B,EAAgB;AAAA,MAAA,CACzB;AACH,QAAW,KAAK,SAAS,SAAS;AAEhC,UAAI,KAAK,mBAAmB;AAC1B,cAAMwT,IAAiBrT,EAAUwB,CAAK;AACtC,YAAI6R,KAAkBA,MAAmB7R;AACvC,iBAAO6R;AAAA,MAEX;AAGA,aAAO7R;AAAA,IACT,OAAA;AAAA,UAAW,KAAK,SAAS;AAEvB,eAAO,KAAK,aAAaA,CAAK;AAChC,UAAW,KAAK,SAAS;AAEvB,eAAO,KAAK,kBAAkBA,CAAK;AACrC,UAAW,KAAK,SAAS,cAAc;AAErC,YAAI,KAAK,mBAAmB;AAC1B,gBAAMyK,IAAiBjM,EAAUwB,MAAU,SAAS,SAAS,MAAM;AACnE,cACEyK,KACAA,OAAoBzK,MAAU,SAAS,SAAS;AAEhD,mBAAOyK;AAAA,QAEX;AACA,eAAOzK;AAAA,MACT,WAAW,KAAK,SAAS;AAEvB,eAAIA,MAAU,SACL0K,qCACE1K,MAAU,SACZ0K,qCAEFA,UAAa1K,CAAK;AAAA;AAG3B,WAAOA;AAAA,EACT;AAAA,EAEA,YAAY8R,GAA0B;AAapC,WAX4C;AAAA,MAC1C,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,UAAU;AAAA,IAAA,EAGIA,CAAQ,KAAKA,EAAS,QAAQ,MAAM,EAAE,EAAE,QAAQ,KAAK,GAAG;AAAA,EAC1E;AAAA,EAEA,aAAaA,GAA0B;AAarC,UAAMC,IAXsC;AAAA,MAC1C,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,UAAU;AAAA,IAAA,EAGqBD,CAAQ;AACzC,QAAIC,KAAmB,KAAK,mBAAmB;AAC7C,YAAMF,IAAiBrT,EAAUuT,CAAe;AAChD,UAAIF,KAAkBA,MAAmBE;AACvC,eAAOF;AAAA,IAEX;AAGA,WAAOC,EAAS,QAAQ,MAAM,EAAE,EAAE,QAAQ,KAAK,GAAG;AAAA,EACpD;AAAA,EAEA,kBAAkBvY,GAAe;AAC/B,WAAIA,MAAU,SACLmR,qCACEnR,MAAU,SACZmR,qCACEnR,MAAU,YACZmR,wCACEnR,MAAU,QACZmR,oCACEnR,MAAU,YACZmR,wCAEFA,UAAanR,CAAK;AAAA,EAC3B;AAAA,EAEA,SAAS;AACP,WAAOmR;AAAAA;AAAAA;AAAAA,oBAGS,KAAK,YACd,KAAK,SAAS,cAAc,KAAK,SAAS,UACvC,cACA,UAAU;AAAA,sBACF,KAAK,QAAQ;AAAA,mBAChB,KAAK,iBAAiB;AAAA;AAAA,YAE7B,KAAK,SAAS,wBAAwB,KAAK,SAAS,cAClDA;AAAAA;AAAAA,mBAEK,KAAK,gBAAgB,KAAK,YAAY,CAAC;AAAA,mBAE5C,KAAK,SAAS,aACZA;AAAAA,kCACkB,KAAK,gBAAgB,KAAK,YAAY,CAAC;AAAA,+BAEzD,KAAK,SAAS,UACZA;AAAAA,2BACS,KAAK,YAAY;AAAA,oCACR,KAAK,YAAY;AAAA,iCAEnC,KAAK,SAAS,iBACZA;AAAAA,6BACS,KAAK,YAAY,KAAK,YAAY,CAAC;AAAA,sCAC1B,KAAK,aAAa,KAAK,YAAY,CAAC;AAAA,mCAEtD,KAAK,SAAS,eACZA;AAAAA,+BACS,KAAK,iBAAiB,SAAS,SAAS,MAAM;AAAA,wCACrC,KAAK,YAAY;AAAA,qCAEnCA;AAAAA,wCACkB,KAAK,gBAAgB,KAAK,YAAY,CAAC;AAAA,kCAC7C;AAAA;AAAA;AAAA,UAGxB,KAAK,SAAS,iBACZA;AAAAA;AAAAA;AAAAA,+CAGmC,KAAK,YAAY;AAAA;AAAA,gBAGpD,EAAE;AAAA;AAAA;AAAA,EAGZ;AAAA,EAEA,MAAc,sBAAqC;AACjD,WAAO,IAAI,QAAQ,CAACsH,MAAY;AAC9B,UAAI,KAAK,mBAAmB;AAC1B,QAAAA,EAAA;AACA;AAAA,MACF;AAEA,YAAMC,IAA2B,MAAM;AACrC,aAAK,oBAAoB,IACzBD,EAAA;AAAA,MACF;AAEA,aAAO,iBAAiB,uBAAuBC,GAA0B;AAAA,QACvE,MAAM;AAAA,MAAA,CACP,GAGD,WAAW,MAAM;AACf,aAAK,oBAAoB,IACzBD,EAAA;AAAA,MACF,GAAG,GAAI;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAEQ,2BAA2B;AAIjC,QAHA,KAAK,oBAAoB,IAGrB,KAAK,SAAS,YAAY;AAC5B,YAAMjB,IAAqB/R,GAAA;AAC3B,WAAK,SAAS+R;AAAA,IAChB;AAEA,SAAK,kBAAA;AAAA,EACP;AAAA,EAEQ,wBAAwB;AAC9B,SAAK,kBAAA;AAAA,EACP;AAAA,EAEQ,qBAAqB;AAC3B,SAAK,kBAAA;AAAA,EACP;AAAA,EAEQ,2BAA2B;AACjC,SAAK,kBAAA;AAAA,EACP;AAAA,EAEQ,4BAA4B;AAClC,SAAK,kBAAA;AAAA,EACP;AACF;AA/jBED,GAAO,SAASnG,EAAUC,EAAM;AAb3B,IAAMsH,KAANpB;AA8kBP,eAAe,OAAO,YAAYoB,EAAK;yIC1nB1BC,KAAN,MAAMA,WAAsB/H,EAAW;AAAA,EAG5C,SAAS;AACP,UAAMgI,KAAO,oBAAI,KAAA,GAAO,YAAA;AACxB,WAAO1H,UAAa0H,CAAI;AAAA,EAC1B;AACF;AANED,GAAO,SAASxH,EAAUC,EAAM;AAD3B,IAAMyH,KAANF;AASP,eAAe,OAAO,WAAWE,EAAa;u5BCNjCC,KAAN,MAAMA,WAAYlI,EAAW;AAAA,EAQlC,cAAc;AACZ,UAAA,GACA,KAAK,OAAO;AAAA,EACd;AAAA,EAIA,SAAS;AACP,WAAOM;AAAAA,EACT;AACF;AAjBE4H,GAAO,aAAa;AAAA;AAAA,EAElB,MAAM,EAAE,MAAM,QAAQ,SAAS,GAAA;AAAK,GAUtCA,GAAO,SAAS3H,EAAUC,EAAM;AAb3B,IAAM2H,KAAND;AAoBP,eAAe,OAAO,UAAUC,EAAG;ACzB5B,MAAMC,KAAN,MAAMA,WAAcpI,EAAW;AAAA,EA2DpC,cAAc;AACZ,UAAA,GACA,KAAK,OAAO,QACZ,KAAK,OAAO,IACZ,KAAK,QAAQ,IACb,KAAK,cAAc,IACnB,KAAK,iBAAiB,IACtB,KAAK,QAAQ,IACb,KAAK,YAAY,IACjB,KAAK,WAAW,IAChB,KAAK,WAAW,IAChB,KAAK,WAAW,IAChB,KAAK,YAAY,IACjB,KAAK,eAAe,OACpB,KAAK,UAAU,IACf,KAAK,YAAY,GACjB,KAAK,YAAY,GACjB,KAAK,MAAM,IACX,KAAK,MAAM,IACX,KAAK,OAAO,IACZ,KAAK,UAAU,WACf,KAAK,QAAQ,IACb,KAAK,YAAY,IACjB,KAAK,WAAW;AAAA,EAClB;AAAA,EA+GQ,aAAa,GAAgB;AACnC,UAAMqI,IAAS,EAAE;AACjB,SAAK,QAAQA,EAAO,OACpB,KAAK;AAAA,MACH,IAAI,YAAY,gBAAgB;AAAA,QAC9B,QAAQ,EAAE,OAAO,KAAK,OAAO,MAAM,KAAK,KAAA;AAAA,QACxC,SAAS;AAAA,MAAA,CACV;AAAA,IAAA;AAAA,EAEL;AAAA,EAEQ,eAAqB;AAC3B,SAAK,WAAW,IAChB,KAAK,cAAc,IAAI,YAAY,eAAe,EAAE,SAAS,GAAA,CAAM,CAAC;AAAA,EACtE;AAAA,EAEQ,cAAoB;AAC1B,SAAK,WAAW,IAChB,KAAK,cAAc,IAAI,YAAY,cAAc,EAAE,SAAS,GAAA,CAAM,CAAC;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AAEZ,IADc,KAAK,YAAY,cAAc,OAAO,GAC7C,MAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAa;AAEX,IADc,KAAK,YAAY,cAAc,OAAO,GAC7C,KAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,SAAe;AAEb,IADc,KAAK,YAAY,cAAc,OAAO,GAC7C,OAAA;AAAA,EACT;AAAA,EAEA,SAAS;AACP,UAAMC,IAAW,GAAQ,KAAK,SAAS,KAAK;AAE5C,WAAOhI;AAAAA;AAAAA,UAED,KAAK,SAAS,KAAK,YACjBA;AAAAA;AAAAA,kBAEM,KAAK,YACHA,mBAAsB,KAAK,SAAS,gBACpC,KAAK,KAAK;AAAA;AAAA,gBAGlB,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKI,KAAK,IAAI;AAAA,oBACT,KAAK,IAAI;AAAA,qBACR,KAAK,KAAK;AAAA,2BACJ,KAAK,WAAW;AAAA,wBACnB,KAAK,QAAQ;AAAA,wBACb,KAAK,QAAQ;AAAA,wBACb,KAAK,QAAQ;AAAA,yBACZ,KAAK,SAAS;AAAA,2BACZ,KAAK,YAAY;AAAA,sBACtB,KAAK,WAAW,EAAE;AAAA,wBAChB,KAAK,aAAa,EAAE;AAAA,wBACpB,KAAK,aAAa,EAAE;AAAA,kBAC1B,KAAK,GAAG;AAAA,kBACR,KAAK,GAAG;AAAA,mBACP,KAAK,IAAI;AAAA,oBACRgI,IAAW,cAAc,EAAE;AAAA,qBAC1B,KAAK,YAAY;AAAA,qBACjB,KAAK,YAAY;AAAA,oBAClB,KAAK,WAAW;AAAA;AAAA;AAAA;AAAA,UAI1BA,IACEhI;AAAAA;AAAAA,kBAEM,KAAK,YACHA,mBAAsB,KAAK,SAAS,gBACpC,KAAK,KAAK;AAAA;AAAA,gBAGlB,IAAI;AAAA;AAAA;AAAA,EAGd;AACF;AAlSE8H,GAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,QAAQ,SAAS,GAAA;AAAA,EAC/B,MAAM,EAAE,MAAM,QAAQ,SAAS,GAAA;AAAA,EAC/B,OAAO,EAAE,MAAM,OAAA;AAAA,EACf,aAAa,EAAE,MAAM,OAAA;AAAA,EACrB,gBAAgB,EAAE,MAAM,QAAQ,WAAW,kBAAA;AAAA,EAC3C,OAAO,EAAE,MAAM,OAAA;AAAA,EACf,WAAW,EAAE,MAAM,QAAQ,WAAW,aAAA;AAAA,EACtC,UAAU,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EACpC,UAAU,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EACpC,UAAU,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EACpC,WAAW,EAAE,MAAM,QAAA;AAAA,EACnB,cAAc,EAAE,MAAM,OAAA;AAAA,EACtB,SAAS,EAAE,MAAM,OAAA;AAAA,EACjB,WAAW,EAAE,MAAM,OAAA;AAAA,EACnB,WAAW,EAAE,MAAM,OAAA;AAAA,EACnB,KAAK,EAAE,MAAM,OAAA;AAAA,EACb,KAAK,EAAE,MAAM,OAAA;AAAA,EACb,MAAM,EAAE,MAAM,OAAA;AAAA,EACd,SAAS,EAAE,MAAM,QAAQ,SAAS,GAAA;AAAA,EAClC,OAAO,EAAE,MAAM,OAAA;AAAA,EACf,WAAW,EAAE,MAAM,QAAQ,WAAW,aAAA;AAAA,EACtC,UAAU,EAAE,MAAM,SAAS,OAAO,GAAA;AAAK,GA8DzCA,GAAO,SAAS/G;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AArFX,IAAMkH,KAANH;AAqSP,eAAe,OAAO,YAAYG,EAAK;2vBCvS1BC,KAAN,MAAMA,WAAgBxI,EAAW;AAAA,EAwBtC,cAAc;AACZ,UAAA,GACA,KAAK,OAAO,IACZ,KAAK,eAAe,IACpB,KAAK,QAAQ,IACb,KAAK,WAAW,IAEhB,KAAK,sBAAsB;AAAA,MACzB,kBAAkB,MAAM;AACtB,aAAK,UAAA;AAAA,MACP;AAAA,MACA,qBAAqB,MAAM;AACzB,aAAK,UAAA;AAAA,MACP;AAAA,IAAA,GAGF,KAAK,oBAAoB;AAAA,MACvB,aAAa,MAAM;AACjB,aAAK,WAAW,IAChB,KAAK,cAAA;AAAA,MACP;AAAA,MACA,aAAa,MAAM;AACjB,aAAK,WAAW,IAChB,KAAK,cAAA;AAAA,MACP;AAAA,MACA,UAAU,MAAM;AACd,aAAK,WAAW,IAChB,KAAK,cAAA;AAAA,MACP;AAAA,MACA,WAAW,MAAM;AACf,aAAK,WAAW,IAChB,KAAK,cAAA;AAAA,MACP;AAAA,IAAA;AAAA,EAEJ;AAAA,EAIA,oBAA0B;AACxB,UAAM,kBAAA,GACN,KAAK,UAAA,GAEL,OAAO;AAAA,MACL;AAAA,MACA,KAAK,oBAAoB;AAAA,IAAA,GAE3B,OAAO;AAAA,MACL;AAAA,MACA,KAAK,oBAAoB;AAAA,IAAA,GAG3B,KAAK,iBAAiB,cAAc,KAAK,kBAAkB,UAAU,GACrE,KAAK,iBAAiB,cAAc,KAAK,kBAAkB,UAAU,GACrE,KAAK,iBAAiB,WAAW,KAAK,kBAAkB,OAAO,GAC/D,KAAK,iBAAiB,YAAY,KAAK,kBAAkB,QAAQ;AAAA,EACnE;AAAA,EAEA,uBAA6B;AAC3B,UAAM,qBAAA,GACN,OAAO;AAAA,MACL;AAAA,MACA,KAAK,oBAAoB;AAAA,IAAA,GAE3B,OAAO;AAAA,MACL;AAAA,MACA,KAAK,oBAAoB;AAAA,IAAA,GAG3B,KAAK,oBAAoB,cAAc,KAAK,kBAAkB,UAAU,GACxE,KAAK,oBAAoB,cAAc,KAAK,kBAAkB,UAAU,GACxE,KAAK,oBAAoB,WAAW,KAAK,kBAAkB,OAAO,GAClE,KAAK,oBAAoB,YAAY,KAAK,kBAAkB,QAAQ;AAAA,EACtE;AAAA,EAEA,QAAQyI,GAAqC;AAC3C,KAAIA,EAAQ,IAAI,MAAM,KAAKA,EAAQ,IAAI,cAAc,MACnD,KAAK,UAAA;AAAA,EAET;AAAA,EAEA,YAAkB;AAChB,QAAI,CAAC,KAAK,MAAM;AACd,WAAK,QAAQ,KAAK,gBAAgB,IAClC,KAAK,cAAA;AACL;AAAA,IACF;AAEA,QAAI;AACF,YAAMrM,IAAIhI,EAAU,KAAK,IAAI;AAC7B,WAAK,QAAQgI,KAAKA,MAAM,KAAK,OAAOA,IAAI,KAAK,gBAAgB,KAAK;AAAA,IACpE,SAAShD,GAAK;AACZ,cAAQ,MAAM,2CAA2C,KAAK,MAAMA,CAAG,GACvE,KAAK,QAAQ,KAAK,gBAAgB,KAAK;AAAA,IACzC;AACA,SAAK,cAAA;AAAA,EACP;AAAA,EAEA,SAAS;AACP,UAAMsP,IAAgB,CAAC,UAAU,KAAK,WAAW,YAAY,EAAE,EAAE,KAAK,GAAG;AAEzE,WAAOpI;AAAAA;AAAAA,QAEH,KAAK,QACHA,gBAAmBoI,CAAa,KAAK,KAAK,KAAK,WAC/C,IAAI;AAAA;AAAA,EAEZ;AACF;AAlIEF,GAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,QAAQ,SAAS,GAAA;AAAA,EAC/B,cAAc,EAAE,MAAM,QAAQ,SAAS,IAAM,WAAW,gBAAA;AAAA,EACxD,OAAO,EAAE,OAAO,GAAA;AAAA,EAChB,UAAU,EAAE,OAAO,GAAA;AAAK,GAuD1BA,GAAO,SAASjI,EAAUC,EAAM;AA5D3B,IAAMmI,KAANH;AAqIP,eAAe,OAAO,cAAcG,EAAO;wRC/H9BC,KAAN,MAAMA,WAAY5I,EAAW;AAAA,EAOlC,cAAc;AACZ,UAAA,GACA,KAAK,OAAO;AAAA,EACd;AAAA,EAIA,SAAS;AACP,WAAOM;AAAAA,EACT;AACF;AAhBEsI,GAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,QAAQ,SAAS,GAAA;AAAK,GAUtCA,GAAO,SAASrI,EAAUC,EAAM;AAZ3B,IAAMqI,KAAND;AAmBP,eAAe,OAAO,UAAUC,EAAG;4eCZtBC,KAAN,MAAMA,WAAkB9I,EAAW;AAAA,EAaxC,cAAc;AACZ,UAAA,GACA,KAAK,UAAU,IACf,KAAK,UAAU,IACf,KAAK,OAAO,IACZ,KAAK,qBAAqB;AAAA,EAC5B;AAAA,EAIQ,kBAAkB,GAAU;AAIlC,UAAM+I,IAHO,EAAE,OACY,cAAc,EAAE,SAAS,IAAM,EAEzB;AAAA,MAC/B,CAAC9R,MACCA,EAAK,aAAa,KAAK,gBACtBA,EAAK,aAAa,KAAK,aAAaA,EAAK,aAAa,KAAA;AAAA,IAAK;AAEhE,SAAK,qBAAqB8R;AAAA,EAC5B;AAAA,EAEA,SAAS;AACP,WAAOzI;AAAAA,uBACY,KAAK,IAAI;AAAA;AAAA;AAAA,6BAGH,KAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6CAkBI,KAAK,iBAAiB;AAAA,YACtD,KAAK,qBAKJ,KAJAA;AAAAA;AAAAA,wBAEU,KAAK,OAAO;AAAA,0BAEpB;AAAA;AAAA;AAAA;AAAA,EAId;AACF;AApEEwI,GAAO,aAAa;AAAA,EAClB,SAAS,EAAE,MAAM,OAAA;AAAA,EACjB,SAAS,EAAE,MAAM,OAAA;AAAA,EACjB,MAAM,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EAChC,oBAAoB,EAAE,MAAM,SAAS,OAAO,GAAA;AAAK,GAgBnDA,GAAO,SAASvI,EAAUC,EAAM;AArB3B,IAAMwI,KAANF;AAuEP,eAAe,OAAO,gBAAgBE,EAAS;AC1ExC,MAAMC,KAAN,MAAMA,WAAajJ,EAAW;AAAA,EAiBnC,cAAc;AACZ,UAAA,GACA,KAAK,SAAS,IACd,KAAK,SAAS,QACd,KAAK,OAAO,IACZ,KAAK,aAAa,IAClB,KAAK,eAAe,MACpB,KAAK,gBAAgB;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EA4BA,cAAwB;AACtB,UAAMkJ,IAAiB,CAAA,GAEjBC,IADO,KAAK,YAAY,cAAc,MAAM,GAC3B,iBAAiB,EAAE,SAAS,GAAA,CAAM,KAAK,CAAA;AAE9D,eAAWC,KAAWD;AACpB,WAAK,iBAAiBC,GAAwBF,CAAI;AAGpD,WAAOA;AAAA,EACT;AAAA,EAEQ,iBAAiBE,GAAsBF,GAAsB;AAEnE,UAAMjC,IAAOmC,EAAQ,aAAa,MAAM,KAAMA,EAAgB;AAC9D,QAAInC,GAAM;AACR,YAAMrR,IAASwT,EAAgB;AAC/B,MAAIxT,MAAU,WAGVwT,aAAmB,qBAClBA,EAAQ,SAAS,cAAcA,EAAQ,SAAS,WAE7CA,EAAQ,SAAS,aACnBF,EAAKjC,CAAI,IAAImC,EAAQ,UACZA,EAAQ,SAAS,WAAWA,EAAQ,YAC7CF,EAAKjC,CAAI,IAAIrR,KAGfsT,EAAKjC,CAAI,IAAIrR;AAAA,IAGnB;AAKA,KADEwT,EAAQ,YAAY,iBAAiB,GAAG,KAAKA,EAAQ,iBAAiB,GAAG,GAClE,QAAQ,CAACC,MAAU;AAC1B,WAAK,iBAAiBA,GAAsBH,CAAI;AAAA,IAClD,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,WAAiC;AAC/B,UAAMI,IAA+B;AAAA,MACnC,OAAO;AAAA,MACP,QAAQ,CAAA;AAAA,IAAC;AAGX,QAAI,KAAK;AACP,aAAOA;AAIT,UAAMH,IADO,KAAK,YAAY,cAAc,MAAM,GAC3B,iBAAiB,EAAE,SAAS,GAAA,CAAM,KAAK,CAAA;AAE9D,eAAWC,KAAWD;AACpB,WAAK,iBAAiBC,GAAwBE,CAAM;AAGtD,WAAOA;AAAA,EACT;AAAA,EAEQ,iBACNF,GACAE,GACM;AACN,UAAMrC,IAAOmC,EAAQ,aAAa,MAAM,KAAMA,EAAgB;AAG9D,QAAIA,EAAQ,QAAQ,YAAA,MAAkB,YAAY;AAChD,YAAMG,IAAQH;AACd,MAAIG,EAAM,YAAY,CAACA,EAAM,UAC3BD,EAAO,QAAQ,IACfA,EAAO,OAAOrC,KAAQ,SAAS,IAAI;AAAA,IAEvC;AAGA,KACEmC,aAAmB,oBACnBA,aAAmB,uBACnBA,aAAmB,uBAEdA,EAAQ,oBACXE,EAAO,QAAQ,IACfA,EAAO,OAAOrC,KAAQ,SAAS,IAAImC,EAAQ,sBAM7CA,EAAQ,YAAY,iBAAiB,GAAG,KAAKA,EAAQ,iBAAiB,GAAG,GAClE,QAAQ,CAACC,MAAU;AAC1B,WAAK,iBAAiBA,GAAsBC,CAAM;AAAA,IACpD,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AAEZ,UAAMH,IADO,KAAK,YAAY,cAAc,MAAM,GAC3B,iBAAiB,EAAE,SAAS,GAAA,CAAM,KAAK,CAAA;AAE9D,eAAWC,KAAWD;AACpB,WAAK,cAAcC,CAAsB;AAG3C,SAAK,cAAc,IAAI,YAAY,cAAc,EAAE,SAAS,GAAA,CAAM,CAAC;AAAA,EACrE;AAAA,EAEQ,cAAcA,GAA4B;AAChD,KACEA,aAAmB,oBACnBA,aAAmB,uBACnBA,aAAmB,uBAEfA,aAAmB,oBAAoBA,EAAQ,SAAS,aAC1DA,EAAQ,UAAU,KAElBA,EAAQ,QAAQ,KAKhBA,EAAQ,QAAQ,YAAA,MAAkB,eACnCA,EAAgB,QAAQ,MAKzBA,EAAQ,YAAY,iBAAiB,GAAG,KAAKA,EAAQ,iBAAiB,GAAG,GAClE,QAAQ,CAACC,MAAU;AAC1B,WAAK,cAAcA,CAAoB;AAAA,IACzC,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAwB;AAC5B,QAAI,KAAK,cAAe;AAExB,UAAMG,IAAmB,KAAK,SAAA;AAC9B,QAAI,CAACA,EAAiB,OAAO;AAC3B,WAAK;AAAA,QACH,IAAI,YAAY,gBAAgB;AAAA,UAC9B,QAAQA,EAAiB;AAAA,UACzB,SAAS;AAAA,QAAA,CACV;AAAA,MAAA;AAEH;AAAA,IACF;AAEA,SAAK,gBAAgB;AACrB,UAAMC,IAAW,KAAK,YAAA;AAUtB,QARA,KAAK;AAAA,MACH,IAAI,YAAY,eAAe;AAAA,QAC7B,QAAQ,EAAE,MAAMA,EAAA;AAAA,QAChB,SAAS;AAAA,MAAA,CACV;AAAA,IAAA,GAIC,KAAK;AACP,UAAI;AACF,cAAMjY,IAAW,MAAM,MAAM,KAAK,QAAQ;AAAA,UACxC,QAAQ,KAAK,OAAO,YAAA;AAAA,UACpB,SAAS;AAAA,YACP,gBAAgB;AAAA,UAAA;AAAA,UAElB,MAAM,KAAK,UAAUiY,CAAQ;AAAA,QAAA,CAC9B;AAED,aAAK;AAAA,UACH,IAAI,YAAY,iBAAiB;AAAA,YAC/B,QAAQ,EAAE,UAAAjY,GAAU,MAAMiY,EAAA;AAAA,YAC1B,SAAS;AAAA,UAAA,CACV;AAAA,QAAA;AAAA,MAEL,SAAStU,GAAO;AACd,aAAK;AAAA,UACH,IAAI,YAAY,cAAc;AAAA,YAC5B,QAAQ,EAAE,OAAAA,GAAO,MAAMsU,EAAA;AAAA,YACvB,SAAS;AAAA,UAAA,CACV;AAAA,QAAA;AAAA,MAEL;AAGF,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEQ,cAAc,GAAgB;AACpC,MAAE,eAAA,GACF,KAAK,OAAA;AAAA,EACP;AAAA,EAEQ,eAAe,GAAwB;AAC7C,IAAI,EAAE,QAAQ,WAAW,CAAC,EAAE,YACX,EAAE,OAEN,QAAQ,YAAA,MAAkB,eACnC,EAAE,eAAA,GACF,KAAK,OAAA;AAAA,EAGX;AAAA,EAEA,SAAS;AACP,WAAOnJ;AAAAA;AAAAA,kBAEO,KAAK,MAAM;AAAA,kBACX,KAAK,MAAM;AAAA,gBACb,KAAK,IAAI;AAAA,sBACH,KAAK,UAAU;AAAA,uBACd,KAAK,YAAY;AAAA,kBACtB,KAAK,aAAa;AAAA,mBACjB,KAAK,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpC;AACF;AAxRE2I,GAAO,aAAa;AAAA,EAClB,QAAQ,EAAE,MAAM,OAAA;AAAA,EAChB,QAAQ,EAAE,MAAM,OAAA;AAAA,EAChB,MAAM,EAAE,MAAM,OAAA;AAAA,EACd,YAAY,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EACtC,cAAc,EAAE,MAAM,OAAA;AAAA,EACtB,eAAe,EAAE,MAAM,SAAS,OAAO,GAAA;AAAK,GAoB9CA,GAAO,SAAS5H;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AA3BX,IAAMqI,KAANT;AA2RP,eAAe,OAAO,WAAWS,EAAI;yEClSxBC,KAAN,MAAMA,WAAa3J,EAAW;AAAA,EAGnC,SAAS;AACP,WAAOM;AAAAA,EACT;AACF;AALEqJ,GAAO,SAASpJ,EAAUC,EAAM;AAD3B,IAAMoJ,KAAND;AAQP,eAAe,OAAO,WAAWC,EAAI;uqCCFxBC,KAAN,MAAMA,WAAgB7J,EAAW;AAAA,EAWtC,cAAc;AACZ,UAAA,GACA,KAAK,OAAO,CAAA,GACZ,KAAK,UAAU,CAAC,WAAW,SAAS,WAAW,GAC/C,KAAK,aAAa;AAAA,EACpB;AAAA,EAIA,SAAS;AACP,WAAOM;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,YAMC,KAAK,aAAaA,2CAA8C,EAAE;AAAA;AAAA;AAAA,YAGlE,KAAK,KAAK;AAAA,MACV,CAACwJ,GAAKC,MAAazJ;AAAAA,oDACqBwJ,EAAI,OAAO;AAAA,kDACbA,EAAI,KAAK;AAAA,sDACLA,EAAI,SAAS;AAAA,gBACnD,KAAK,aACHxJ;AAAAA,sBACIwJ,EAAI,UAAU,SAAS;AAAA,4BAE3B,EAAE;AAAA;AAAA,IAAA,CAET;AAAA;AAAA;AAAA;AAAA,EAIT;AACF;AA7CED,GAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,MAAA;AAAA,EACd,SAAS,EAAE,MAAM,MAAA;AAAA,EACjB,YAAY,EAAE,MAAM,SAAS,WAAW,cAAA;AAAc,GAcxDA,GAAO,SAAStJ,EAAUC,EAAM;AAlB3B,IAAMwJ,KAANH;AAgDP,eAAe,OAAO,YAAYG,EAAO;oWChD5BC,KAAN,MAAMA,WAAkBjK,EAAW;AAAA,EAGxC,SAAS;AACP,WAAOM;AAAAA,EACT;AACF;AALE2J,GAAO,SAAS1J,EAAUC,EAAM;AAD3B,IAAM0J,KAAND;AAQP,eAAe,OAAO,gBAAgBC,EAAS;ohCCPlCC,KAAN,MAAMA,WAAanK,EAAW;AAAA,EAWnC,oBAAoB;AAClB,UAAM,kBAAA,GACN,KAAK,kBAAA,GAGL,KAAK,iBAAiB,MAAM;AAC1B,MAAI,KAAK,iBACP,aAAa,KAAK,aAAa,GAEjC,KAAK,gBAAgB,WAAW,MAAM;AACpC,aAAK,kBAAA;AAAA,MACP,GAAG,GAAG;AAAA,IACR,GACA,OAAO,iBAAiB,UAAU,KAAK,cAAc;AAAA,EACvD;AAAA,EAEA,uBAAuB;AACrB,UAAM,qBAAA,GACF,KAAK,kBACP,OAAO,oBAAoB,UAAU,KAAK,cAAc,GAEtD,KAAK,iBACP,aAAa,KAAK,aAAa;AAAA,EAEnC;AAAA,EAEQ,oBAAoB;AAE1B,IADiB/R,GAAA,KAEf,KAAK,UAAU,IAAI,QAAQ,GAC3B,KAAK,UAAU,OAAO,SAAS,MAE/B,KAAK,UAAU,IAAI,SAAS,GAC5B,KAAK,UAAU,OAAO,QAAQ;AAAA,EAElC;AAAA,EAEA,SAAS;AACP,WAAOqS;AAAAA,EACT;AACF;AAlDE6J,GAAO,aAAa;AAAA,EAClB,OAAO,EAAE,MAAM,OAAA;AAAO,GAOxBA,GAAO,SAAS5J,EAAUC,EAAM;AAT3B,IAAM4J,KAAND;AAqDP,eAAe,OAAO,WAAWC,EAAI;4mKCtDxBC,KAAN,MAAMA,WAAerK,EAAW;AAAA,EAAhC,cAAA;AAAA,UAAA,GAAA,SAAA,GAOL,KAAA,OAAe;AAAA,EAAA;AAAA,EA4jBf,SAAS;AACP,UAAMsK,IAAS,KAAK,QAAQ,KAAK,SAAS,QACpCC,IAAc,KAAK,SAAS,aAC5BC,IAAY,KAAK,SAAS,WAC1BC,IAAQ,KAAK,SAAS,OACtBC,IAAS,KAAK,SAAS,QACvBC,IAAS,KAAK,SAAS;AAE7B,WAAOrK;AAAAA;AAAAA,QAEHgK,IACEhK;AAAAA;AAAAA,gBAEMqK,IACErK;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,sBA8BAoK,IACEpK;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,wBAuBAmK,IACEnK;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,0BAuCAkK,IACElK;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,4BA0BAiK,IACEjK;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,8BA0DA,EAAE;AAAA;AAAA,cAGlB,EAAE;AAAA;AAAA,EAEV;AACF;AA1wBE+J,GAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,OAAA;AAAA,EACd,OAAO,EAAE,MAAM,OAAA;AAAA,EACf,MAAM,EAAE,MAAM,QAAA;AAAQ,GAOxBA,GAAO,SAAS;AAAA,EACd9J,EAAUC,EAAM;AAAA,EAChBa;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAA;AAbG,IAAMuJ,KAANP;AA6wBP,eAAe,OAAO,aAAaO,EAAM;","x_google_ignoreList":[4,5,6,7,8,11,12,13,83]}
|
|
1
|
+
{"version":3,"file":"ds-one.bundle.min.js","sources":["../node_modules/signal-polyfill/dist/index.js","../node_modules/@lit-labs/signals/lib/signal-watcher.js","../node_modules/lit-html/directive.js","../node_modules/lit-html/lit-html.js","../node_modules/@lit-labs/signals/index.js","../DS1/0-face/device.ts","../DS1/0-face/i18n.ts","../DS1/0-face/preferences.ts","../DS1/0-face/pricing.ts","../DS1/0-face/theme.ts","../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-element/lit-element.js","../DS1/2-core/ds-text.ts","../DS1/2-core/ds-button.ts","../DS1/2-core/ds-banner.ts","../DS1/2-core/ds-card.ts","../DS1/x-icon/1x.svg?raw","../DS1/x-icon/1xdots.svg?raw","../DS1/x-icon/1xgrid.svg?raw","../DS1/x-icon/1xlines.svg?raw","../DS1/x-icon/2x.svg?raw","../DS1/x-icon/2xdots.svg?raw","../DS1/x-icon/2xgrid.svg?raw","../DS1/x-icon/2xlines.svg?raw","../DS1/x-icon/4x4.svg?raw","../DS1/x-icon/apple.svg?raw","../DS1/x-icon/avatar.svg?raw","../DS1/x-icon/big.svg?raw","../DS1/x-icon/blank.svg?raw","../DS1/x-icon/check.svg?raw","../DS1/x-icon/close.svg?raw","../DS1/x-icon/collapse.svg?raw","../DS1/x-icon/color.svg?raw","../DS1/x-icon/column.svg?raw","../DS1/x-icon/default.svg?raw","../DS1/x-icon/delete.svg?raw","../DS1/x-icon/dictate.svg?raw","../DS1/x-icon/do.svg?raw","../DS1/x-icon/down.svg?raw","../DS1/x-icon/duplicate.svg?raw","../DS1/x-icon/email.svg?raw","../DS1/x-icon/expand.svg?raw","../DS1/x-icon/gallery.svg?raw","../DS1/x-icon/google.svg?raw","../DS1/x-icon/group.svg?raw","../DS1/x-icon/head.svg?raw","../DS1/x-icon/home.svg?raw","../DS1/x-icon/icon.svg?raw","../DS1/x-icon/in.svg?raw","../DS1/x-icon/left.svg?raw","../DS1/x-icon/lock.svg?raw","../DS1/x-icon/loop.svg?raw","../DS1/x-icon/mic.svg?raw","../DS1/x-icon/minimize.svg?raw","../DS1/x-icon/more.svg?raw","../DS1/x-icon/neutral.svg?raw","../DS1/x-icon/note.svg?raw","../DS1/x-icon/open.svg?raw","../DS1/x-icon/page.svg?raw","../DS1/x-icon/plus.svg?raw","../DS1/x-icon/rewind.svg?raw","../DS1/x-icon/right.svg?raw","../DS1/x-icon/row.svg?raw","../DS1/x-icon/sdown.svg?raw","../DS1/x-icon/search.svg?raw","../DS1/x-icon/see.svg?raw","../DS1/x-icon/ship.svg?raw","../DS1/x-icon/star.svg?raw","../DS1/x-icon/status.svg?raw","../DS1/x-icon/sup.svg?raw","../DS1/x-icon/title.svg?raw","../DS1/x-icon/undo.svg?raw","../DS1/x-icon/ungroup.svg?raw","../DS1/x-icon/unhead.svg?raw","../DS1/x-icon/unicon.svg?raw","../DS1/x-icon/unlock.svg?raw","../DS1/x-icon/unmic.svg?raw","../DS1/x-icon/unsee.svg?raw","../DS1/x-icon/unstar.svg?raw","../DS1/x-icon/untitle.svg?raw","../DS1/x-icon/up.svg?raw","../node_modules/lit-html/directives/unsafe-html.js","../DS1/2-core/ds-icon.ts","../DS1/2-core/ds-cycle.ts","../DS1/2-core/ds-date.ts","../DS1/2-core/ds-gap.ts","../DS1/2-core/ds-input.ts","../DS1/2-core/ds-tooltip.ts","../DS1/3-unit/ds-row.ts","../DS1/3-unit/ds-accordion.ts","../DS1/3-unit/ds-form.ts","../DS1/3-unit/ds-list.ts","../DS1/3-unit/ds-table.ts","../DS1/4-page/ds-container.ts","../DS1/4-page/ds-grid.ts","../DS1/4-page/ds-layout.ts"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateIn = (member, obj) => {\n if (Object(obj) !== obj)\n throw TypeError('Cannot use the \"in\" operator on this value');\n return member.has(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction defaultEquals(a, b) {\n return Object.is(a, b);\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet activeConsumer = null;\nlet inNotificationPhase = false;\nlet epoch = 1;\nconst SIGNAL = /* @__PURE__ */ Symbol(\"SIGNAL\");\nfunction setActiveConsumer(consumer) {\n const prev = activeConsumer;\n activeConsumer = consumer;\n return prev;\n}\nfunction getActiveConsumer() {\n return activeConsumer;\n}\nfunction isInNotificationPhase() {\n return inNotificationPhase;\n}\nconst REACTIVE_NODE = {\n version: 0,\n lastCleanEpoch: 0,\n dirty: false,\n producerNode: void 0,\n producerLastReadVersion: void 0,\n producerIndexOfThis: void 0,\n nextProducerIndex: 0,\n liveConsumerNode: void 0,\n liveConsumerIndexOfThis: void 0,\n consumerAllowSignalWrites: false,\n consumerIsAlwaysLive: false,\n producerMustRecompute: () => false,\n producerRecomputeValue: () => {\n },\n consumerMarkedDirty: () => {\n },\n consumerOnSignalRead: () => {\n }\n};\nfunction producerAccessed(node) {\n if (inNotificationPhase) {\n throw new Error(\n typeof ngDevMode !== \"undefined\" && ngDevMode ? `Assertion error: signal read during notification phase` : \"\"\n );\n }\n if (activeConsumer === null) {\n return;\n }\n activeConsumer.consumerOnSignalRead(node);\n const idx = activeConsumer.nextProducerIndex++;\n assertConsumerNode(activeConsumer);\n if (idx < activeConsumer.producerNode.length && activeConsumer.producerNode[idx] !== node) {\n if (consumerIsLive(activeConsumer)) {\n const staleProducer = activeConsumer.producerNode[idx];\n producerRemoveLiveConsumerAtIndex(staleProducer, activeConsumer.producerIndexOfThis[idx]);\n }\n }\n if (activeConsumer.producerNode[idx] !== node) {\n activeConsumer.producerNode[idx] = node;\n activeConsumer.producerIndexOfThis[idx] = consumerIsLive(activeConsumer) ? producerAddLiveConsumer(node, activeConsumer, idx) : 0;\n }\n activeConsumer.producerLastReadVersion[idx] = node.version;\n}\nfunction producerIncrementEpoch() {\n epoch++;\n}\nfunction producerUpdateValueVersion(node) {\n if (!node.dirty && node.lastCleanEpoch === epoch) {\n return;\n }\n if (!node.producerMustRecompute(node) && !consumerPollProducersForChange(node)) {\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n return;\n }\n node.producerRecomputeValue(node);\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n}\nfunction producerNotifyConsumers(node) {\n if (node.liveConsumerNode === void 0) {\n return;\n }\n const prev = inNotificationPhase;\n inNotificationPhase = true;\n try {\n for (const consumer of node.liveConsumerNode) {\n if (!consumer.dirty) {\n consumerMarkDirty(consumer);\n }\n }\n } finally {\n inNotificationPhase = prev;\n }\n}\nfunction producerUpdatesAllowed() {\n return (activeConsumer == null ? void 0 : activeConsumer.consumerAllowSignalWrites) !== false;\n}\nfunction consumerMarkDirty(node) {\n var _a;\n node.dirty = true;\n producerNotifyConsumers(node);\n (_a = node.consumerMarkedDirty) == null ? void 0 : _a.call(node.wrapper ?? node);\n}\nfunction consumerBeforeComputation(node) {\n node && (node.nextProducerIndex = 0);\n return setActiveConsumer(node);\n}\nfunction consumerAfterComputation(node, prevConsumer) {\n setActiveConsumer(prevConsumer);\n if (!node || node.producerNode === void 0 || node.producerIndexOfThis === void 0 || node.producerLastReadVersion === void 0) {\n return;\n }\n if (consumerIsLive(node)) {\n for (let i = node.nextProducerIndex; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n while (node.producerNode.length > node.nextProducerIndex) {\n node.producerNode.pop();\n node.producerLastReadVersion.pop();\n node.producerIndexOfThis.pop();\n }\n}\nfunction consumerPollProducersForChange(node) {\n assertConsumerNode(node);\n for (let i = 0; i < node.producerNode.length; i++) {\n const producer = node.producerNode[i];\n const seenVersion = node.producerLastReadVersion[i];\n if (seenVersion !== producer.version) {\n return true;\n }\n producerUpdateValueVersion(producer);\n if (seenVersion !== producer.version) {\n return true;\n }\n }\n return false;\n}\nfunction producerAddLiveConsumer(node, consumer, indexOfThis) {\n var _a;\n assertProducerNode(node);\n assertConsumerNode(node);\n if (node.liveConsumerNode.length === 0) {\n (_a = node.watched) == null ? void 0 : _a.call(node.wrapper);\n for (let i = 0; i < node.producerNode.length; i++) {\n node.producerIndexOfThis[i] = producerAddLiveConsumer(node.producerNode[i], node, i);\n }\n }\n node.liveConsumerIndexOfThis.push(indexOfThis);\n return node.liveConsumerNode.push(consumer) - 1;\n}\nfunction producerRemoveLiveConsumerAtIndex(node, idx) {\n var _a;\n assertProducerNode(node);\n assertConsumerNode(node);\n if (typeof ngDevMode !== \"undefined\" && ngDevMode && idx >= node.liveConsumerNode.length) {\n throw new Error(\n `Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`\n );\n }\n if (node.liveConsumerNode.length === 1) {\n (_a = node.unwatched) == null ? void 0 : _a.call(node.wrapper);\n for (let i = 0; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n const lastIdx = node.liveConsumerNode.length - 1;\n node.liveConsumerNode[idx] = node.liveConsumerNode[lastIdx];\n node.liveConsumerIndexOfThis[idx] = node.liveConsumerIndexOfThis[lastIdx];\n node.liveConsumerNode.length--;\n node.liveConsumerIndexOfThis.length--;\n if (idx < node.liveConsumerNode.length) {\n const idxProducer = node.liveConsumerIndexOfThis[idx];\n const consumer = node.liveConsumerNode[idx];\n assertConsumerNode(consumer);\n consumer.producerIndexOfThis[idxProducer] = idx;\n }\n}\nfunction consumerIsLive(node) {\n var _a;\n return node.consumerIsAlwaysLive || (((_a = node == null ? void 0 : node.liveConsumerNode) == null ? void 0 : _a.length) ?? 0) > 0;\n}\nfunction assertConsumerNode(node) {\n node.producerNode ?? (node.producerNode = []);\n node.producerIndexOfThis ?? (node.producerIndexOfThis = []);\n node.producerLastReadVersion ?? (node.producerLastReadVersion = []);\n}\nfunction assertProducerNode(node) {\n node.liveConsumerNode ?? (node.liveConsumerNode = []);\n node.liveConsumerIndexOfThis ?? (node.liveConsumerIndexOfThis = []);\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction computedGet(node) {\n producerUpdateValueVersion(node);\n producerAccessed(node);\n if (node.value === ERRORED) {\n throw node.error;\n }\n return node.value;\n}\nfunction createComputed(computation) {\n const node = Object.create(COMPUTED_NODE);\n node.computation = computation;\n const computed = () => computedGet(node);\n computed[SIGNAL] = node;\n return computed;\n}\nconst UNSET = /* @__PURE__ */ Symbol(\"UNSET\");\nconst COMPUTING = /* @__PURE__ */ Symbol(\"COMPUTING\");\nconst ERRORED = /* @__PURE__ */ Symbol(\"ERRORED\");\nconst COMPUTED_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n value: UNSET,\n dirty: true,\n error: null,\n equal: defaultEquals,\n producerMustRecompute(node) {\n return node.value === UNSET || node.value === COMPUTING;\n },\n producerRecomputeValue(node) {\n if (node.value === COMPUTING) {\n throw new Error(\"Detected cycle in computations.\");\n }\n const oldValue = node.value;\n node.value = COMPUTING;\n const prevConsumer = consumerBeforeComputation(node);\n let newValue;\n let wasEqual = false;\n try {\n newValue = node.computation.call(node.wrapper);\n const oldOk = oldValue !== UNSET && oldValue !== ERRORED;\n wasEqual = oldOk && node.equal.call(node.wrapper, oldValue, newValue);\n } catch (err) {\n newValue = ERRORED;\n node.error = err;\n } finally {\n consumerAfterComputation(node, prevConsumer);\n }\n if (wasEqual) {\n node.value = oldValue;\n return;\n }\n node.value = newValue;\n node.version++;\n }\n };\n})();\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction defaultThrowError() {\n throw new Error();\n}\nlet throwInvalidWriteToSignalErrorFn = defaultThrowError;\nfunction throwInvalidWriteToSignalError() {\n throwInvalidWriteToSignalErrorFn();\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction createSignal(initialValue) {\n const node = Object.create(SIGNAL_NODE);\n node.value = initialValue;\n const getter = () => {\n producerAccessed(node);\n return node.value;\n };\n getter[SIGNAL] = node;\n return getter;\n}\nfunction signalGetFn() {\n producerAccessed(this);\n return this.value;\n}\nfunction signalSetFn(node, newValue) {\n if (!producerUpdatesAllowed()) {\n throwInvalidWriteToSignalError();\n }\n if (!node.equal.call(node.wrapper, node.value, newValue)) {\n node.value = newValue;\n signalValueChanged(node);\n }\n}\nconst SIGNAL_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n equal: defaultEquals,\n value: void 0\n };\n})();\nfunction signalValueChanged(node) {\n node.version++;\n producerIncrementEpoch();\n producerNotifyConsumers(node);\n}\n/**\n * @license\n * Copyright 2024 Bloomberg Finance L.P.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst NODE = Symbol(\"node\");\nvar Signal;\n((Signal2) => {\n var _a, _brand, brand_fn, _b, _brand2, brand_fn2;\n class State {\n constructor(initialValue, options = {}) {\n __privateAdd(this, _brand);\n __publicField(this, _a);\n const ref = createSignal(initialValue);\n const node = ref[SIGNAL];\n this[NODE] = node;\n node.wrapper = this;\n if (options) {\n const equals = options.equals;\n if (equals) {\n node.equal = equals;\n }\n node.watched = options[Signal2.subtle.watched];\n node.unwatched = options[Signal2.subtle.unwatched];\n }\n }\n get() {\n if (!(0, Signal2.isState)(this))\n throw new TypeError(\"Wrong receiver type for Signal.State.prototype.get\");\n return signalGetFn.call(this[NODE]);\n }\n set(newValue) {\n if (!(0, Signal2.isState)(this))\n throw new TypeError(\"Wrong receiver type for Signal.State.prototype.set\");\n if (isInNotificationPhase()) {\n throw new Error(\"Writes to signals not permitted during Watcher callback\");\n }\n const ref = this[NODE];\n signalSetFn(ref, newValue);\n }\n }\n _a = NODE;\n _brand = new WeakSet();\n brand_fn = function() {\n };\n Signal2.isState = (s) => typeof s === \"object\" && __privateIn(_brand, s);\n Signal2.State = State;\n class Computed {\n // Create a Signal which evaluates to the value returned by the callback.\n // Callback is called with this signal as the parameter.\n constructor(computation, options) {\n __privateAdd(this, _brand2);\n __publicField(this, _b);\n const ref = createComputed(computation);\n const node = ref[SIGNAL];\n node.consumerAllowSignalWrites = true;\n this[NODE] = node;\n node.wrapper = this;\n if (options) {\n const equals = options.equals;\n if (equals) {\n node.equal = equals;\n }\n node.watched = options[Signal2.subtle.watched];\n node.unwatched = options[Signal2.subtle.unwatched];\n }\n }\n get() {\n if (!(0, Signal2.isComputed)(this))\n throw new TypeError(\"Wrong receiver type for Signal.Computed.prototype.get\");\n return computedGet(this[NODE]);\n }\n }\n _b = NODE;\n _brand2 = new WeakSet();\n brand_fn2 = function() {\n };\n Signal2.isComputed = (c) => typeof c === \"object\" && __privateIn(_brand2, c);\n Signal2.Computed = Computed;\n ((subtle2) => {\n var _a2, _brand3, brand_fn3, _assertSignals, assertSignals_fn;\n function untrack(cb) {\n let output;\n let prevActiveConsumer = null;\n try {\n prevActiveConsumer = setActiveConsumer(null);\n output = cb();\n } finally {\n setActiveConsumer(prevActiveConsumer);\n }\n return output;\n }\n subtle2.untrack = untrack;\n function introspectSources(sink) {\n var _a3;\n if (!(0, Signal2.isComputed)(sink) && !(0, Signal2.isWatcher)(sink)) {\n throw new TypeError(\"Called introspectSources without a Computed or Watcher argument\");\n }\n return ((_a3 = sink[NODE].producerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [];\n }\n subtle2.introspectSources = introspectSources;\n function introspectSinks(signal) {\n var _a3;\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called introspectSinks without a Signal argument\");\n }\n return ((_a3 = signal[NODE].liveConsumerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [];\n }\n subtle2.introspectSinks = introspectSinks;\n function hasSinks(signal) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called hasSinks without a Signal argument\");\n }\n const liveConsumerNode = signal[NODE].liveConsumerNode;\n if (!liveConsumerNode)\n return false;\n return liveConsumerNode.length > 0;\n }\n subtle2.hasSinks = hasSinks;\n function hasSources(signal) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isWatcher)(signal)) {\n throw new TypeError(\"Called hasSources without a Computed or Watcher argument\");\n }\n const producerNode = signal[NODE].producerNode;\n if (!producerNode)\n return false;\n return producerNode.length > 0;\n }\n subtle2.hasSources = hasSources;\n class Watcher {\n // When a (recursive) source of Watcher is written to, call this callback,\n // if it hasn't already been called since the last `watch` call.\n // No signals may be read or written during the notify.\n constructor(notify) {\n __privateAdd(this, _brand3);\n __privateAdd(this, _assertSignals);\n __publicField(this, _a2);\n let node = Object.create(REACTIVE_NODE);\n node.wrapper = this;\n node.consumerMarkedDirty = notify;\n node.consumerIsAlwaysLive = true;\n node.consumerAllowSignalWrites = false;\n node.producerNode = [];\n this[NODE] = node;\n }\n // Add these signals to the Watcher's set, and set the watcher to run its\n // notify callback next time any signal in the set (or one of its dependencies) changes.\n // Can be called with no arguments just to reset the \"notified\" state, so that\n // the notify callback will be invoked again.\n watch(...signals) {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called unwatch without Watcher receiver\");\n }\n __privateMethod(this, _assertSignals, assertSignals_fn).call(this, signals);\n const node = this[NODE];\n node.dirty = false;\n const prev = setActiveConsumer(node);\n for (const signal of signals) {\n producerAccessed(signal[NODE]);\n }\n setActiveConsumer(prev);\n }\n // Remove these signals from the watched set (e.g., for an effect which is disposed)\n unwatch(...signals) {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called unwatch without Watcher receiver\");\n }\n __privateMethod(this, _assertSignals, assertSignals_fn).call(this, signals);\n const node = this[NODE];\n assertConsumerNode(node);\n for (let i = node.producerNode.length - 1; i >= 0; i--) {\n if (signals.includes(node.producerNode[i].wrapper)) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n const lastIdx = node.producerNode.length - 1;\n node.producerNode[i] = node.producerNode[lastIdx];\n node.producerIndexOfThis[i] = node.producerIndexOfThis[lastIdx];\n node.producerNode.length--;\n node.producerIndexOfThis.length--;\n node.nextProducerIndex--;\n if (i < node.producerNode.length) {\n const idxConsumer = node.producerIndexOfThis[i];\n const producer = node.producerNode[i];\n assertProducerNode(producer);\n producer.liveConsumerIndexOfThis[idxConsumer] = i;\n }\n }\n }\n }\n // Returns the set of computeds in the Watcher's set which are still yet\n // to be re-evaluated\n getPending() {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called getPending without Watcher receiver\");\n }\n const node = this[NODE];\n return node.producerNode.filter((n) => n.dirty).map((n) => n.wrapper);\n }\n }\n _a2 = NODE;\n _brand3 = new WeakSet();\n brand_fn3 = function() {\n };\n _assertSignals = new WeakSet();\n assertSignals_fn = function(signals) {\n for (const signal of signals) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called watch/unwatch without a Computed or State argument\");\n }\n }\n };\n Signal2.isWatcher = (w) => __privateIn(_brand3, w);\n subtle2.Watcher = Watcher;\n function currentComputed() {\n var _a3;\n return (_a3 = getActiveConsumer()) == null ? void 0 : _a3.wrapper;\n }\n subtle2.currentComputed = currentComputed;\n subtle2.watched = Symbol(\"watched\");\n subtle2.unwatched = Symbol(\"unwatched\");\n })(Signal2.subtle || (Signal2.subtle = {}));\n})(Signal || (Signal = {}));\nexport {\n Signal\n};\n","import{Signal as t}from\"signal-polyfill\";\n/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const i=Symbol(\"SignalWatcherBrand\"),s=new FinalizationRegistry((({watcher:t,signal:i})=>{t.unwatch(i)})),h=new WeakMap;function e(e){return!0===e[i]?(console.warn(\"SignalWatcher should not be applied to the same class more than once.\"),e):class extends e{constructor(){super(...arguments),this._$St=new t.State(0),this._$Si=!1,this._$So=!0,this._$Sh=new Set}_$Sl(){if(void 0!==this._$Su)return;this._$Sv=new t.Computed((()=>{this._$St.get(),super.performUpdate()}));const i=this._$Su=new t.subtle.Watcher((function(){const t=h.get(this);void 0!==t&&(!1===t._$Si&&t.requestUpdate(),this.watch())}));h.set(i,this),s.register(this,{watcher:i,signal:this._$Sv}),i.watch(this._$Sv)}_$Sp(){void 0!==this._$Su&&(this._$Su.unwatch(this._$Sv),this._$Sv=void 0,this._$Su=void 0)}performUpdate(){this.isUpdatePending&&(this._$Sl(),this._$Si=!0,this._$St.set(this._$St.get()+1),this._$Si=!1,this._$Sv.get())}update(t){try{this._$So?(this._$So=!1,super.update(t)):this._$Sh.forEach((t=>t.commit()))}finally{this.isUpdatePending=!1,this._$Sh.clear()}}requestUpdate(t,i,s){this._$So=!0,super.requestUpdate(t,i,s)}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){super.disconnectedCallback(),queueMicrotask((()=>{!1===this.isConnected&&this._$Sp()}))}_(t){this._$Sh.add(t);const i=this._$So;this.requestUpdate(),this._$So=i}m(t){this._$Sh.delete(t)}}}export{e as SignalWatcher};\n//# sourceMappingURL=signal-watcher.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.1\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{Signal as t}from\"signal-polyfill\";export*from\"signal-polyfill\";export{SignalWatcher}from\"./lib/signal-watcher.js\";export{WatchDirective,watch}from\"./lib/watch.js\";export{html,svg,withWatch}from\"./lib/html-tag.js\";\n/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=t.State,o=t.Computed,r=(l,o)=>new t.State(l,o),i=(l,o)=>new t.Computed(l,o);export{o as Computed,l as State,i as computed,r as signal};\n//# sourceMappingURL=index.js.map\n","// device.ts\n// Device detection, context utilities, and responsive scaling\n\nimport { signal } from \"@lit-labs/signals\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type DeviceType = \"mobile\" | \"tablet\" | \"desktop\";\n\nexport interface DeviceInfo {\n isMobile: boolean;\n isTablet: boolean;\n isDesktop: boolean;\n isTouchCapable: boolean;\n deviceType: DeviceType;\n userAgent: string;\n screenWidth: number;\n screenHeight: number;\n}\n\nexport type ScalingMode = \"auto\" | \"fixed\" | \"fluid\";\n\nexport interface ScalingConfig {\n mode: ScalingMode;\n baseWidth: number;\n minScale: number;\n maxScale: number;\n}\n\n// ============================================================================\n// Configuration & Signals\n// ============================================================================\n\nconst defaultScalingConfig: ScalingConfig = {\n mode: \"auto\",\n baseWidth: 280,\n minScale: 0.75,\n maxScale: 2.0,\n};\n\n/** Reactive scaling factor signal */\nexport const scalingFactor = signal<number>(1);\n\n/** Current scaling configuration */\nexport const scalingConfig = signal<ScalingConfig>(defaultScalingConfig);\n\n// ============================================================================\n// Device Detection\n// ============================================================================\n\n/**\n * Comprehensive mobile device detection\n * Combines user agent detection, touch capability, and viewport size\n */\nexport function detectMobileDevice(): boolean {\n if (typeof navigator === \"undefined\" || typeof window === \"undefined\") {\n return false;\n }\n\n const nav = navigator as any;\n const win = window as any;\n const ua: string =\n (nav && (nav.userAgent || nav.vendor)) || (win && win.opera) || \"\";\n\n // User agent based detection\n const uaMatchesMobile =\n /Mobile|Android|iP(ad|hone|od)|IEMobile|BlackBerry|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)|Windows Phone|Phone|Tablet/i.test(\n ua\n );\n\n // Touch capability detection\n const touchPoints = (nav && nav.maxTouchPoints) || 0;\n const isTouchCapable = touchPoints > 1;\n\n // Viewport detection\n const narrowViewport = win\n ? Math.min(win.innerWidth || 0, win.innerHeight || 0) <= 820\n : false;\n\n return uaMatchesMobile || (isTouchCapable && narrowViewport);\n}\n\n/**\n * Get detailed device information\n */\nexport function getDeviceInfo(): DeviceInfo {\n const isMobile = detectMobileDevice();\n const nav = navigator as any;\n const win = window as any;\n\n const touchPoints = (nav && nav.maxTouchPoints) || 0;\n const isTouchCapable = touchPoints > 1;\n\n // Use clientWidth instead of innerWidth to exclude scrollbars\n const screenWidth =\n typeof document !== \"undefined\"\n ? document.documentElement.clientWidth\n : win?.innerWidth || 0;\n const screenHeight =\n typeof document !== \"undefined\"\n ? document.documentElement.clientHeight\n : win?.innerHeight || 0;\n const isTablet = isMobile && Math.min(screenWidth, screenHeight) >= 600;\n\n return {\n isMobile,\n isTablet,\n isDesktop: !isMobile,\n isTouchCapable,\n deviceType: isMobile ? (isTablet ? \"tablet\" : \"mobile\") : \"desktop\",\n userAgent: (nav && (nav.userAgent || nav.vendor)) || \"\",\n screenWidth,\n screenHeight,\n };\n}\n\n// ============================================================================\n// Scaling\n// ============================================================================\n\n/**\n * Calculate the scaling factor based on viewport width\n * @param viewportWidth - Current viewport width in pixels\n * @param config - Scaling configuration\n * @returns The calculated scaling factor\n */\nexport function calculateScalingFactor(\n viewportWidth: number,\n config: ScalingConfig = scalingConfig.get()\n): number {\n if (config.mode === \"fixed\") {\n return 1;\n }\n\n const rawScale = viewportWidth / config.baseWidth;\n const clampedScale = Math.max(\n config.minScale,\n Math.min(config.maxScale, rawScale)\n );\n\n return Number(clampedScale.toFixed(3));\n}\n\n/**\n * Set the scaling configuration\n * @param config - Partial scaling configuration to apply\n */\nexport function setScalingConfig(config: Partial<ScalingConfig>): void {\n const currentConfig = scalingConfig.get();\n const newConfig = { ...currentConfig, ...config };\n scalingConfig.set(newConfig);\n\n // Recalculate scaling factor if in browser\n if (typeof window !== \"undefined\") {\n updateScalingFactor();\n }\n}\n\n/**\n * Update the scaling factor based on current viewport\n * Desktop always uses factor 1; mobile uses computed factor\n */\nexport function updateScalingFactor(): void {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n\n const isMobile = detectMobileDevice();\n\n // Desktop: always use factor 1\n if (!isMobile) {\n const factor = 1;\n scalingFactor.set(factor);\n document.documentElement.style.setProperty(\"--sf\", factor.toString());\n window.dispatchEvent(\n new CustomEvent(\"scaling-changed\", {\n detail: { scalingFactor: factor, config: scalingConfig.get() },\n })\n );\n return;\n }\n\n // Mobile: compute scaling based on viewport\n const viewportWidth = document.documentElement.clientWidth;\n const config = scalingConfig.get();\n const newFactor = calculateScalingFactor(viewportWidth, config);\n\n scalingFactor.set(newFactor);\n document.documentElement.style.setProperty(\"--sf\", newFactor.toString());\n\n window.dispatchEvent(\n new CustomEvent(\"scaling-changed\", {\n detail: { scalingFactor: newFactor, config },\n })\n );\n}\n\n/**\n * Get the current scaling factor\n * @returns The current scaling factor\n */\nexport function getScalingFactor(): number {\n return scalingFactor.get();\n}\n\n/**\n * Convert a design pixel value to scaled pixels\n * @param designPx - The design pixel value (based on 280px width)\n * @returns The scaled pixel value\n */\nexport function scale(designPx: number): number {\n return designPx * scalingFactor.get();\n}\n\n/**\n * Convert a scaled pixel value back to design pixels\n * @param scaledPx - The scaled pixel value\n * @returns The design pixel value\n */\nexport function unscale(scaledPx: number): number {\n const factor = scalingFactor.get();\n return factor === 0 ? scaledPx : scaledPx / factor;\n}\n\n// ============================================================================\n// Unified Initialization\n// ============================================================================\n\n/**\n * Initialize device detection and scaling\n * Sets CSS classes (.mobile/.desktop) and --sf custom property\n */\nexport function initDeviceDetection(): DeviceInfo {\n const deviceInfo = getDeviceInfo();\n\n if (typeof document === \"undefined\") {\n return deviceInfo;\n }\n\n // Set device class on html element\n if (deviceInfo.isMobile) {\n document.documentElement.classList.add(\"mobile\");\n document.documentElement.classList.remove(\"desktop\");\n } else {\n document.documentElement.classList.add(\"desktop\");\n document.documentElement.classList.remove(\"mobile\");\n }\n\n // Update scaling factor (handles --sf CSS property)\n updateScalingFactor();\n\n // Log device info\n const factor = scalingFactor.get();\n if (deviceInfo.isMobile) {\n console.log(\n `[DS one] Mobile device detected - ${deviceInfo.deviceType} (${deviceInfo.screenWidth}x${deviceInfo.screenHeight}), scaling factor: ${factor.toFixed(2)}`\n );\n } else {\n console.log(\n `[DS one] Desktop device detected (${deviceInfo.screenWidth}x${deviceInfo.screenHeight})`\n );\n }\n\n // Log additional details in development mode\n if (typeof window !== \"undefined\" && (window as any).DS_ONE_DEBUG) {\n console.log(\"[DS one] Device Info:\", {\n type: deviceInfo.deviceType,\n isMobile: deviceInfo.isMobile,\n isTablet: deviceInfo.isTablet,\n isDesktop: deviceInfo.isDesktop,\n isTouchCapable: deviceInfo.isTouchCapable,\n viewport: `${deviceInfo.screenWidth}x${deviceInfo.screenHeight}`,\n scalingFactor: factor,\n userAgent: deviceInfo.userAgent,\n });\n }\n\n return deviceInfo;\n}\n\n// Auto-initialize when module loads\nif (typeof window !== \"undefined\") {\n // Wait for DOM to be ready\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => {\n initDeviceDetection();\n });\n } else {\n // DOM is already ready\n initDeviceDetection();\n }\n\n // Single debounced resize handler for both device detection + scaling\n let resizeTimeout: ReturnType<typeof setTimeout>;\n window.addEventListener(\"resize\", () => {\n clearTimeout(resizeTimeout);\n resizeTimeout = setTimeout(() => {\n initDeviceDetection();\n }, 100);\n });\n\n // Also handle orientation change\n window.addEventListener(\"orientationchange\", () => {\n setTimeout(initDeviceDetection, 100);\n });\n}\n\n// ============================================================================\n// App-like Behavior\n// ============================================================================\n\n/**\n * Disable double-tap to zoom in the browser (app-like behavior)\n * Prevents all zoom gestures including double-tap and pinch-to-zoom\n */\nexport function applike(): void {\n if (typeof document === \"undefined\" || typeof window === \"undefined\") {\n return;\n }\n\n // Set viewport meta tag to prevent zoom - this is the most important step\n let viewport = document.querySelector('meta[name=\"viewport\"]');\n if (!viewport) {\n viewport = document.createElement(\"meta\");\n viewport.setAttribute(\"name\", \"viewport\");\n document.head.appendChild(viewport);\n }\n viewport.setAttribute(\n \"content\",\n \"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\"\n );\n\n // Apply touch-action: pan-x pan-y globally to prevent zoom but allow panning\n const style = document.createElement(\"style\");\n style.id = \"ds-one-applike-style\";\n style.textContent = `\n * {\n touch-action: pan-x pan-y !important;\n -ms-touch-action: pan-x pan-y !important;\n }\n html, body {\n touch-action: pan-x pan-y !important;\n -ms-touch-action: pan-x pan-y !important;\n }\n `;\n // Remove existing style if present\n const existingStyle = document.getElementById(\"ds-one-applike-style\");\n if (existingStyle) {\n existingStyle.remove();\n }\n document.head.appendChild(style);\n\n // Track touch events to prevent double-tap zoom\n let lastTouchEnd = 0;\n let touchStartTime = 0;\n\n const preventZoom = (event: TouchEvent | WheelEvent | Event) => {\n // Prevent pinch zoom (two fingers)\n if (event instanceof TouchEvent) {\n if (event.touches.length > 1) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n const now = Date.now();\n\n if (event.type === \"touchstart\") {\n // If touchstart happens within 300ms of last touchend, it's likely a double-tap\n if (now - lastTouchEnd < 300) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n touchStartTime = now;\n } else if (event.type === \"touchend\") {\n const touchDuration = now - touchStartTime;\n // If this is a quick tap (< 300ms) and happened soon after previous touchend, prevent it\n if (touchDuration < 300 && now - lastTouchEnd < 300) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n lastTouchEnd = now;\n } else if (event.type === \"touchmove\") {\n // Prevent any touchmove that might trigger zoom\n if (event.touches.length > 1) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n }\n\n // Prevent wheel zoom with ctrl/cmd key (common on trackpads)\n if (event instanceof WheelEvent && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n };\n\n // Use capture phase to catch events earlier\n const options = { passive: false, capture: true };\n\n // Prevent all zoom gestures - use capture phase\n document.addEventListener(\"touchstart\", preventZoom, options);\n document.addEventListener(\"touchmove\", preventZoom, options);\n document.addEventListener(\"touchend\", preventZoom, options);\n document.addEventListener(\"touchcancel\", preventZoom, options);\n\n // Prevent wheel zoom\n document.addEventListener(\"wheel\", preventZoom, options);\n\n // Prevent gesture events (iOS Safari) - use capture phase\n document.addEventListener(\n \"gesturestart\",\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n options\n );\n document.addEventListener(\n \"gesturechange\",\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n options\n );\n document.addEventListener(\n \"gestureend\",\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n options\n );\n}\n","// Define the supported languages using ISO codes (extensible)\nexport type LanguageCode = string;\n\n// Define the structure of our translation data\ntype TranslationData = {\n [key: string]: string;\n};\n\ntype TranslationMap = Record<string, TranslationData>;\n\n// Bundled translations (keys.json may not exist - will use external translations if not available)\n// This is a fallback for when external translations aren't loaded\nlet translationKeys: TranslationMap = {};\n\n// Primary language list – prioritise the 10 requested languages when cycling\nconst LANGUAGE_PRIORITY_ORDER = [\n \"da\",\n \"de\",\n \"en\",\n \"es\",\n \"fr\",\n \"it\",\n \"ja\",\n \"pt\",\n \"sv\",\n \"zh\",\n] as const;\n\nconst LANGUAGE_PRIORITY_LOOKUP = new Map<string, number>(\n LANGUAGE_PRIORITY_ORDER.map((code, index) => [code, index])\n);\n\n// Fallback language names if Intl.DisplayNames is not available\nconst FALLBACK_LANGUAGE_NAMES: Record<string, string> = {\n da: \"Danish\",\n \"da-dk\": \"Danish\",\n de: \"German\",\n \"de-de\": \"German\",\n en: \"English\",\n \"en-us\": \"English\",\n es: \"Spanish\",\n \"es-es\": \"Spanish\",\n fr: \"French\",\n \"fr-fr\": \"French\",\n it: \"Italian\",\n \"it-it\": \"Italian\",\n ja: \"Japanese\",\n \"ja-jp\": \"Japanese\",\n pt: \"Portuguese\",\n \"pt-pt\": \"Portuguese\",\n sv: \"Swedish\",\n \"sv-se\": \"Swedish\",\n zh: \"Chinese\",\n \"zh-cn\": \"Chinese\",\n \"zh-tw\": \"Chinese\",\n \"zh-hans\": \"Chinese\",\n \"zh-hant\": \"Chinese\",\n};\n\nconst DISPLAY_NAME_CACHE = new Map<string, Intl.DisplayNames>();\nlet displayNameFallbackWarningShown = false;\n\n// Declare window property for external translations\ndeclare global {\n interface Window {\n DS_ONE_TRANSLATIONS?: Record<string, TranslationData>;\n DS_ONE_TRANSLATIONS_FILE?: string;\n }\n}\n\n// CDN Loader: Automatically detects and loads translation JSON files\n// for CDN users who want to use external translations\n\nconst DEFAULT_TRANSLATION_FILE = \"./translations.json\";\nlet loadAttempted = false;\n\nfunction normalizeCandidate(path: string): string | null {\n if (!path) {\n return null;\n }\n const trimmed = path.trim();\n if (!trimmed) {\n return null;\n }\n\n if (\n trimmed.startsWith(\"./\") ||\n trimmed.startsWith(\"../\") ||\n trimmed.startsWith(\"/\") ||\n /^https?:\\/\\//i.test(trimmed)\n ) {\n return trimmed;\n }\n\n return `./${trimmed}`;\n}\n\nfunction findAttributeCandidate(): string | null {\n if (typeof document === \"undefined\") {\n return null;\n }\n\n const scriptWithAttribute = document.querySelector(\n \"script[data-ds-one-translations]\"\n );\n const scriptCandidate = scriptWithAttribute?.getAttribute(\n \"data-ds-one-translations\"\n );\n if (scriptCandidate) {\n return scriptCandidate;\n }\n\n const metaCandidate = document\n .querySelector('meta[name=\"ds-one:translations\"]')\n ?.getAttribute(\"content\");\n if (metaCandidate) {\n return metaCandidate;\n }\n\n const linkCandidate = document\n .querySelector('link[rel=\"ds-one-translations\"]')\n ?.getAttribute(\"href\");\n if (linkCandidate) {\n return linkCandidate;\n }\n\n return null;\n}\n\nfunction resolveTranslationSources(): string[] {\n const candidates: string[] = [];\n\n const windowCandidate =\n typeof window !== \"undefined\" ? window.DS_ONE_TRANSLATIONS_FILE : null;\n const attributeCandidate = findAttributeCandidate();\n\n // Only use explicitly configured paths, or the single default\n const windowNormalized = normalizeCandidate(windowCandidate ?? \"\");\n if (windowNormalized) {\n candidates.push(windowNormalized);\n }\n\n const attrNormalized = normalizeCandidate(attributeCandidate ?? \"\");\n if (attrNormalized && !candidates.includes(attrNormalized)) {\n candidates.push(attrNormalized);\n }\n\n // Only try default if no explicit path was configured\n if (candidates.length === 0) {\n candidates.push(DEFAULT_TRANSLATION_FILE);\n }\n\n return candidates;\n}\n\nfunction validateTranslationMap(\n candidate: unknown\n): candidate is TranslationMap {\n if (!candidate || typeof candidate !== \"object\") {\n return false;\n }\n\n return Object.values(candidate).every(\n (entry) => entry && typeof entry === \"object\"\n );\n}\n\nasync function fetchTranslationFile(\n source: string\n): Promise<TranslationMap | null> {\n try {\n const response = await fetch(source);\n\n if (!response.ok) {\n // 404 is expected if no translations file exists - don't log as error\n return null;\n }\n\n const translations = await response.json();\n\n if (!validateTranslationMap(translations)) {\n console.warn(\n `[DS one] Invalid translation format in ${source}. Expected object with language codes as keys.`\n );\n return null;\n }\n\n const languages = Object.keys(translations);\n if (languages.length === 0) {\n console.warn(`[DS one] No languages found in ${source}`);\n return null;\n }\n\n return translations;\n } catch {\n // Silently fail - file likely doesn't exist or isn't valid JSON\n return null;\n }\n}\n\n/**\n * Attempts to load translations from a JSON file in the same directory\n */\nasync function loadExternalTranslations(): Promise<boolean> {\n // Only attempt once\n if (loadAttempted) {\n return false;\n }\n loadAttempted = true;\n\n if (typeof window === \"undefined\") {\n return false;\n }\n\n // Check if translations are already loaded (e.g., by the application)\n if (\n window.DS_ONE_TRANSLATIONS &&\n Object.keys(window.DS_ONE_TRANSLATIONS).length > 0\n ) {\n console.log(\n `[DS one] Translations already loaded (${Object.keys(window.DS_ONE_TRANSLATIONS).length} languages), skipping auto-load`\n );\n return true;\n }\n\n const sources = resolveTranslationSources();\n\n for (const source of sources) {\n const translations = await fetchTranslationFile(source);\n if (!translations) {\n continue;\n }\n\n window.DS_ONE_TRANSLATIONS = translations;\n\n const languages = Object.keys(translations);\n console.log(\n `[DS one] External translations loaded from ${source}: ${languages.length} language(s) – ${languages.join(\", \")}`\n );\n\n window.dispatchEvent(new CustomEvent(\"translations-ready\"));\n return true;\n }\n\n console.info(\n `[DS one] No external translations found at ${sources[0] ?? DEFAULT_TRANSLATION_FILE}. Using bundled translations.`\n );\n\n return false;\n}\n\n// Get translation data - prioritize external, fall back to bundled\nfunction getTranslationData(): TranslationMap {\n // Check for externally loaded translations first (CDN usage)\n if (typeof window !== \"undefined\" && window.DS_ONE_TRANSLATIONS) {\n return window.DS_ONE_TRANSLATIONS;\n }\n\n // Fall back to bundled translations\n return translationKeys as TranslationMap;\n}\n\n// Cached translation data - use getter to always get fresh data\nlet translationData = getTranslationData();\n\nconst defaultLanguage: LanguageCode = \"en\";\n\nfunction extractPrimarySubtag(code: LanguageCode): string {\n if (!code) {\n return \"\";\n }\n return code.toLowerCase().split(/[-_]/)[0] ?? \"\";\n}\n\nfunction getLanguagePriority(code: LanguageCode): number {\n const primary = extractPrimarySubtag(code);\n const priority = LANGUAGE_PRIORITY_LOOKUP.get(primary);\n\n if (typeof priority === \"number\") {\n return priority;\n }\n\n return LANGUAGE_PRIORITY_ORDER.length;\n}\n\nfunction sortLanguageCodes(codes: LanguageCode[]): LanguageCode[] {\n return [...codes].sort((a, b) => {\n const priorityA = getLanguagePriority(a);\n const priorityB = getLanguagePriority(b);\n\n if (priorityA !== priorityB) {\n return priorityA - priorityB;\n }\n\n return a.localeCompare(b);\n });\n}\n\nfunction getDisplayNameForLocale(\n locale: string,\n code: LanguageCode\n): string | undefined {\n const normalizedLocale = locale?.replace(\"_\", \"-\");\n if (!normalizedLocale) {\n return undefined;\n }\n\n try {\n let displayNames = DISPLAY_NAME_CACHE.get(normalizedLocale);\n\n if (!displayNames) {\n displayNames = new Intl.DisplayNames([normalizedLocale], {\n type: \"language\",\n });\n DISPLAY_NAME_CACHE.set(normalizedLocale, displayNames);\n }\n\n const cleanedCode = code.replace(\"_\", \"-\");\n\n // Try full tag first\n const fullMatch = displayNames.of(cleanedCode);\n if (fullMatch && fullMatch !== cleanedCode) {\n return fullMatch;\n }\n\n // Then the primary subtag\n const baseMatch = displayNames.of(extractPrimarySubtag(cleanedCode));\n if (baseMatch) {\n return baseMatch;\n }\n } catch (error) {\n // Intl.DisplayNames may not be supported; fall back gracefully\n if (!displayNameFallbackWarningShown) {\n console.info(\n \"[DS one] Intl.DisplayNames is not available, using fallback language names.\"\n );\n displayNameFallbackWarningShown = true;\n }\n }\n\n return undefined;\n}\n\nfunction getFallbackDisplayName(code: LanguageCode): string | undefined {\n const normalized = code.toLowerCase().replace(\"_\", \"-\");\n const direct = FALLBACK_LANGUAGE_NAMES[normalized];\n\n if (direct) {\n return direct;\n }\n\n const primary = extractPrimarySubtag(normalized);\n return FALLBACK_LANGUAGE_NAMES[primary];\n}\n\nexport function getLanguageDisplayName(\n code: LanguageCode,\n options: { locale?: string } = {}\n): string {\n if (!code) {\n return \"\";\n }\n\n const localesToTry: string[] = [];\n\n if (options.locale) {\n localesToTry.push(options.locale);\n }\n\n if (typeof navigator !== \"undefined\") {\n if (Array.isArray(navigator.languages)) {\n localesToTry.push(...navigator.languages);\n }\n if (navigator.language) {\n localesToTry.push(navigator.language);\n }\n }\n\n localesToTry.push(defaultLanguage);\n localesToTry.push(\"en\");\n\n const tried = new Set<string>();\n\n for (const locale of localesToTry) {\n if (!locale || tried.has(locale)) {\n continue;\n }\n tried.add(locale);\n\n const displayName = getDisplayNameForLocale(locale, code);\n if (displayName) {\n return displayName;\n }\n }\n\n const fallback = getFallbackDisplayName(code);\n if (fallback) {\n return fallback;\n }\n\n // Fall back to the primary subtag in uppercase\n const primary = extractPrimarySubtag(code);\n return primary ? primary.toUpperCase() : code;\n}\n\nconst BROWSER_LANGUAGE_PREFERENCES: Record<string, LanguageCode> = {\n da: \"da\",\n \"da-dk\": \"da\",\n de: \"de\",\n \"de-de\": \"de\",\n en: \"en\",\n \"en-us\": \"en\",\n \"en-gb\": \"en\",\n es: \"es\",\n \"es-es\": \"es\",\n \"es-mx\": \"es\",\n fr: \"fr\",\n \"fr-fr\": \"fr\",\n it: \"it\",\n \"it-it\": \"it\",\n ja: \"ja\",\n \"ja-jp\": \"ja\",\n pt: \"pt\",\n \"pt-pt\": \"pt\",\n \"pt-br\": \"pt\",\n sv: \"sv\",\n \"sv-se\": \"sv\",\n zh: \"zh\",\n \"zh-cn\": \"zh\",\n \"zh-hans\": \"zh\",\n \"zh-tw\": \"zh\",\n \"zh-hant\": \"zh\",\n};\n\nfunction resolvePreferredLanguage(languageTag: string): LanguageCode | null {\n if (!languageTag) {\n return null;\n }\n\n const normalized = languageTag.toLowerCase().replace(\"_\", \"-\");\n\n const directMatch = BROWSER_LANGUAGE_PREFERENCES[normalized];\n if (directMatch) {\n return directMatch;\n }\n\n const primary = extractPrimarySubtag(normalized);\n const primaryMatch = BROWSER_LANGUAGE_PREFERENCES[primary];\n if (primaryMatch) {\n return primaryMatch;\n }\n\n return languageTag as LanguageCode;\n}\n\n// Helper function to get browser language\nexport function getBrowserLanguage(): LanguageCode {\n if (typeof navigator === \"undefined\") {\n return defaultLanguage;\n }\n\n const browserLang = navigator.language;\n\n if (browserLang) {\n const resolved = resolvePreferredLanguage(browserLang);\n if (resolved) {\n return resolved;\n }\n }\n\n if (Array.isArray(navigator.languages)) {\n for (const candidate of navigator.languages) {\n const resolved = resolvePreferredLanguage(candidate);\n if (resolved) {\n return resolved;\n }\n }\n }\n\n return defaultLanguage;\n}\n\n// Get stored language from localStorage\nconst storedLanguage =\n typeof window !== \"undefined\"\n ? ((window.localStorage?.getItem(\n \"ds-one:language\"\n ) as LanguageCode | null) ?? undefined)\n : undefined;\n\n// Create a reactive signal for the current language (Portfolio pattern)\nexport const currentLanguage = {\n value:\n (localStorage.getItem(\"language\") as LanguageCode) || getBrowserLanguage(),\n set: function (lang: LanguageCode) {\n this.value = lang;\n localStorage.setItem(\"language\", lang);\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: lang },\n bubbles: true,\n composed: true,\n })\n );\n },\n};\n\n// Auto-load translations when this module is imported (for CDN bundle)\nif (typeof window !== \"undefined\") {\n // Wait a bit to ensure the DOM is ready\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => {\n loadExternalTranslations();\n });\n } else {\n // DOM is already ready\n loadExternalTranslations();\n }\n}\n\n// Listen for external translations being loaded\nif (typeof window !== \"undefined\") {\n window.addEventListener(\"translations-ready\", () => {\n // Refresh translation data from external source\n translationData = getTranslationData();\n\n // Dispatch that translations are loaded\n window.dispatchEvent(new CustomEvent(\"translations-loaded\"));\n\n // Dispatch language-changed to update all components\n const currentLang = currentLanguage.value;\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: currentLang },\n bubbles: true,\n composed: true,\n })\n );\n });\n}\n\n// Initialize translations on module load\n// Use setTimeout to give other parts of the app time to set up event listeners first\nsetTimeout(() => {\n // Since we directly imported the data, just dispatch the events\n window.dispatchEvent(new CustomEvent(\"translations-loaded\"));\n\n // Also dispatch language-changed with the current language\n const currentLang = currentLanguage.value;\n\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: currentLang },\n bubbles: true,\n composed: true,\n })\n );\n}, 100);\n\n// Get translation by key\nexport function translate(key: string): string {\n const lang = currentLanguage.value;\n\n // Check if key exists in current language\n if (translationData?.[lang]?.[key]) {\n return translationData[lang][key];\n }\n\n // Try fallback to English\n if (lang !== defaultLanguage && translationData?.[defaultLanguage]?.[key]) {\n return translationData[defaultLanguage][key];\n }\n\n console.warn(\n `[DS one (Internationalization)] No translation found for key \"${key}\"`\n );\n return key;\n}\n\nexport function hasTranslation(\n key: string,\n language: LanguageCode = currentLanguage.value\n): boolean {\n if (!key) {\n return false;\n }\n\n const langData = translationData?.[language];\n if (langData && Object.prototype.hasOwnProperty.call(langData, key)) {\n return true;\n }\n\n if (\n language !== defaultLanguage &&\n translationData?.[defaultLanguage] &&\n Object.prototype.hasOwnProperty.call(translationData[defaultLanguage], key)\n ) {\n return true;\n }\n\n return false;\n}\n\n// Get text - synchronous version for components\nexport function getText(key: string): string {\n return translate(key);\n}\n\n// Get available languages - dynamically detect from loaded data\nexport function getAvailableLanguages(): Promise<LanguageCode[]> {\n // Always get fresh translation data\n const currentData = getTranslationData();\n\n if (currentData && Object.keys(currentData).length > 0) {\n const languages = Object.keys(currentData) as LanguageCode[];\n return Promise.resolve(sortLanguageCodes(languages));\n }\n return Promise.resolve([defaultLanguage]);\n}\n\n// Synchronous version for immediate use\nexport function getAvailableLanguagesSync(): LanguageCode[] {\n const currentData = getTranslationData();\n\n if (currentData && Object.keys(currentData).length > 0) {\n return sortLanguageCodes(Object.keys(currentData) as LanguageCode[]);\n }\n return [defaultLanguage];\n}\n\n// Load translations programmatically (for compatibility)\nexport function loadTranslations(\n language: LanguageCode,\n translations: TranslationData\n): void {\n // Since we have static data, this is mainly for compatibility\n console.log(\n `Loading additional translations for ${language}:`,\n Object.keys(translations).length,\n \"keys\"\n );\n}\n\n// Set language (Portfolio pattern)\nexport function setLanguage(language: LanguageCode): void {\n // Update the language in localStorage first\n localStorage.setItem(\"language\", language);\n\n // Then update the signal - this should trigger effects in components\n // that are subscribed to the signal\n currentLanguage.set(language);\n\n // Dispatch a custom event so non-signal-based components can update\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language },\n bubbles: true,\n composed: true,\n })\n );\n}\n","import type { LanguageCode } from \"./i18n\";\nimport type { ThemeType } from \"./theme\";\n\nexport type Preferences = {\n language?: LanguageCode;\n theme?: ThemeType;\n [key: string]: unknown;\n};\n\nexport function savePreferences(preferences: Preferences): void {\n if (typeof window === \"undefined\") {\n return;\n }\n\n try {\n const raw = window.localStorage?.getItem(\"ds-one:preferences\");\n const existing = raw ? (JSON.parse(raw) as Record<string, unknown>) : {};\n const next = { ...existing, ...preferences };\n window.localStorage?.setItem(\"ds-one:preferences\", JSON.stringify(next));\n } catch (error) {\n console.warn(\"ds-one: unable to persist preferences\", error);\n }\n}\n","/**\n * Currency label utilities for regional price display\n *\n * Note: This module provides currency symbols/labels based on language and region.\n * Consider moving this functionality into i18n.ts as it's region/locale-related.\n * Actual price values will be stored in a database or managed via Stripe.\n */\n\nimport type { LanguageCode } from \"./i18n\";\n\ntype PriceLabelOptions = {\n language: LanguageCode;\n country?: string;\n};\n\n// Simple price label mapping based on language/country\nconst PRICE_LABELS: Record<string, string> = {\n da: \"kr.\",\n nb: \"kr.\",\n sv: \"kr.\",\n de: \"€\",\n en: \"$\",\n pt: \"€\",\n es: \"€\",\n zh: \"¥\",\n ja: \"¥\",\n ko: \"₩\",\n};\n\nexport function getPriceLabel(options: PriceLabelOptions): string {\n const { language, country } = options;\n\n // If country is provided, try to map it to a currency\n if (country) {\n const countryUpper = country.toUpperCase();\n // Add country-specific mappings if needed\n if (countryUpper === \"US\" || countryUpper === \"USA\") {\n return \"$\";\n }\n if (countryUpper === \"GB\" || countryUpper === \"UK\") {\n return \"£\";\n }\n if (countryUpper === \"JP\" || countryUpper === \"JPN\") {\n return \"¥\";\n }\n if (countryUpper === \"CN\" || countryUpper === \"CHN\") {\n return \"¥\";\n }\n if (countryUpper === \"KR\" || countryUpper === \"KOR\") {\n return \"₩\";\n }\n }\n\n // Fall back to language-based mapping\n const primaryLang = language.toLowerCase().split(/[-_]/)[0];\n return PRICE_LABELS[primaryLang] || \"$\";\n}\n","import { signal } from \"@lit-labs/signals\";\n\nexport type ThemeType = \"light\" | \"dark\";\n\nfunction getInitialTheme(): ThemeType {\n if (typeof window === \"undefined\") {\n return \"light\";\n }\n\n const storedTheme = window.localStorage?.getItem(\"ds-one:theme\");\n if (storedTheme === \"light\" || storedTheme === \"dark\") {\n return storedTheme;\n }\n\n // Check system preference\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n return prefersDark ? \"dark\" : \"light\";\n}\n\nexport const currentTheme = signal<ThemeType>(getInitialTheme());\n\nexport function setTheme(theme: ThemeType): void {\n if (theme === currentTheme.get()) {\n return;\n }\n\n currentTheme.set(theme);\n\n if (typeof window !== \"undefined\") {\n try {\n window.localStorage?.setItem(\"ds-one:theme\", theme);\n } catch (error) {\n console.warn(\"ds-one: unable to persist theme preference\", error);\n }\n\n const root = window.document?.documentElement;\n if (root) {\n root.classList.remove(\"light-theme\", \"dark-theme\");\n root.classList.add(`${theme}-theme`);\n }\n\n window.dispatchEvent(\n new CustomEvent(\"theme-changed\", { detail: { theme } })\n );\n }\n}\n\n// Initialize theme on load\nif (typeof window !== \"undefined\") {\n const theme = currentTheme.get();\n const root = window.document?.documentElement;\n if (root) {\n root.classList.remove(\"light-theme\", \"dark-theme\");\n root.classList.add(`${theme}-theme`);\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.1\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { getText, currentLanguage } from \"../0-face/i18n\";\nimport styles from \"./styles/ds-text.css?inline\";\n\n/**\n * A component for displaying text from translations\n *\n * @element ds-text\n * @prop {string} text - The translation text to use\n * @prop {string} defaultValue - Default value if translation is not found\n * @prop {string} fallback - Optional fallback text if translation is not found (deprecated, use defaultValue)\n */\nexport class Text extends LitElement {\n static get properties() {\n return {\n text: { type: String, reflect: true },\n defaultValue: { type: String, reflect: true, attribute: \"default-value\" },\n fallback: { type: String, reflect: true }, // Kept for backward compatibility\n _text: { type: String, state: true },\n };\n }\n\n declare text: string;\n declare defaultValue: string;\n declare fallback: string;\n declare _text: string;\n declare _currentLanguage: string;\n private boundHandlers: { languageChanged: EventListener };\n\n constructor() {\n super();\n this.text = \"\";\n this.defaultValue = \"\";\n this.fallback = \"\";\n this._text = \"\";\n this._currentLanguage = currentLanguage.value;\n\n // Create bound event handlers for proper cleanup\n this.boundHandlers = {\n languageChanged: (() => {\n console.log(\"Language changed event received in ds-text\");\n this._currentLanguage = currentLanguage.value;\n this._updateLanguageAttribute();\n this._loadText();\n this.requestUpdate();\n }) as EventListener,\n };\n }\n\n static styles = unsafeCSS(styles);\n\n connectedCallback() {\n super.connectedCallback();\n this._currentLanguage = currentLanguage.value;\n this._updateLanguageAttribute();\n this._loadText();\n\n // Listen for language changes\n window.addEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n\n // Also listen for translations loaded event\n window.addEventListener(\n \"translations-loaded\",\n this.boundHandlers.languageChanged\n );\n\n // Listen for language changes via events instead of signals\n // The currentLanguage signal changes will trigger the language-changed event\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n window.removeEventListener(\n \"translations-loaded\",\n this.boundHandlers.languageChanged\n );\n }\n\n updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties);\n\n if (changedProperties.has(\"text\") || changedProperties.has(\"defaultValue\")) {\n this._loadText();\n }\n }\n\n _updateLanguageAttribute() {\n const lang = this._currentLanguage || currentLanguage.value;\n // Handles \"ja\", \"ja-JP\", \"zh-Hant\", \"zh-Hans\", etc.\n const parts = (lang || \"\").toLowerCase().split(/[-_]/).filter(Boolean);\n const primaryLang = parts[0] || \"\";\n\n if (primaryLang === \"ja\") {\n this.setAttribute(\"data-language\", \"ja\");\n return;\n }\n\n if (primaryLang === \"zh\") {\n // Prefer explicit script; otherwise infer from common regions.\n const hasHans =\n parts.includes(\"hans\") || parts.includes(\"cn\") || parts.includes(\"sg\");\n const hasHant =\n parts.includes(\"hant\") ||\n parts.includes(\"tw\") ||\n parts.includes(\"hk\") ||\n parts.includes(\"mo\");\n\n if (hasHans) this.setAttribute(\"data-language\", \"zh-hans\");\n else if (hasHant) this.setAttribute(\"data-language\", \"zh-hant\");\n else this.setAttribute(\"data-language\", \"zh\");\n return;\n }\n\n this.removeAttribute(\"data-language\");\n }\n\n _loadText() {\n if (!this.text) {\n this._text = this.defaultValue || this.fallback || \"\";\n this._updateLanguageAttribute();\n this.requestUpdate();\n return;\n }\n\n try {\n const translatedText = getText(this.text);\n this._text = translatedText || this.defaultValue || this.fallback || this.text;\n } catch (error) {\n console.error(\"Error loading text for text:\", this.text, error);\n this._text = this.defaultValue || this.fallback || this.text;\n }\n this._updateLanguageAttribute();\n this.requestUpdate();\n }\n\n render() {\n return html`<span>${this._text || this.defaultValue || this.text}</span>`;\n }\n}\n\ncustomElements.define(\"ds-text\", Text);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-text\": Text;\n }\n}\n","// ds-button.ts\n// Core button component\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport \"./ds-text\";\nimport styles from \"./styles/ds-button.css?inline\";\n\nexport class Button extends LitElement {\n static properties = {\n variant: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n bold: { type: Boolean, reflect: true },\n \"no-background\": {\n type: Boolean,\n reflect: true,\n attribute: \"no-background\",\n },\n blank: { type: Boolean, reflect: true },\n text: { type: String },\n fallback: { type: String },\n language: { type: String },\n defaultText: { type: String, attribute: \"default-text\" },\n href: { type: String },\n _loading: { type: Boolean, state: true },\n };\n\n // Public properties\n declare variant: string;\n declare disabled: boolean;\n declare bold: boolean;\n declare \"no-background\": boolean;\n declare blank: boolean;\n declare text: string;\n declare fallback: string;\n declare language: string;\n declare defaultText: string;\n declare href: string;\n\n // Private state\n declare _loading: boolean;\n\n constructor() {\n super();\n this.variant = \"title\";\n this.disabled = false;\n this.bold = false;\n this[\"no-background\"] = false;\n this.blank = false;\n this.text = \"\";\n this.fallback = \"\";\n this.language = \"en-US\";\n this.defaultText = \"\";\n this.href = \"\";\n this._loading = false;\n }\n\n static styles = unsafeCSS(styles);\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n render() {\n const hasTextProps = this.text || this.defaultText || this.fallback;\n\n return html`\n <button\n class=${this.variant}\n ?disabled=${this.disabled}\n ?bold=${this.bold}\n ?no-background=${this[\"no-background\"]}\n @click=${this._handleClick}\n >\n ${hasTextProps\n ? html`<ds-text\n .text=${this.text}\n .defaultValue=${this.defaultText}\n .fallback=${this.fallback}\n ></ds-text>`\n : html`<slot></slot>`}\n </button>\n `;\n }\n\n private _handleClick(e: Event) {\n // Prevent any action if disabled and stop event propagation\n if (this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n // If href is provided, navigate to the URL and do not bubble further\n if (this.href) {\n e.preventDefault();\n e.stopPropagation();\n if (this.blank) {\n window.open(this.href, \"_blank\", \"noopener,noreferrer\");\n } else {\n window.location.href = this.href;\n }\n return;\n }\n\n // Otherwise, rely on the native 'click' event bubbling from the inner\n // <button> through the shadow boundary to consumers of <ds-button>.\n // Do not re-dispatch a synthetic 'click' here to avoid duplicate events.\n }\n}\n\ncustomElements.define(\"ds-button\", Button);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-button\": Button;\n }\n}\n","// ds-banner.ts\n// Fixed banner component for notifications/alerts\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport { getText } from \"../0-face/i18n.js\";\nimport \"./ds-text.js\";\nimport \"./ds-button.js\";\nimport styles from \"./styles/ds-banner.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Banner extends LitElement {\n static properties = {\n text: { type: String },\n action: { type: String },\n href: { type: String },\n mailto: { type: String },\n subject: { type: String },\n describe: { type: String },\n appVersion: { type: String, attribute: \"app-version\" },\n variant: { type: String },\n version: { type: String },\n _showVersion: { type: Boolean, state: true },\n };\n\n text: string = \"\";\n action: string = \"\";\n href: string = \"\";\n mailto: string = \"\";\n subject: string = \"\";\n describe: string = \"\";\n appVersion: string = \"\";\n variant: string = \"warning\"; // warning, info, success, error\n version: string = \"\";\n _showVersion: boolean = false;\n\n private _boundUpdate = () => this.requestUpdate();\n\n connectedCallback() {\n super.connectedCallback();\n // Listen for translations and language changes to rebuild mailto URL\n window.addEventListener(\"translations-loaded\", this._boundUpdate);\n window.addEventListener(\"language-changed\", this._boundUpdate);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener(\"translations-loaded\", this._boundUpdate);\n window.removeEventListener(\"language-changed\", this._boundUpdate);\n }\n\n static styles = unsafeCSS(styles);\n\n private _toggleVersion() {\n if (this.version) {\n this._showVersion = !this._showVersion;\n }\n }\n\n private _getMailtoHref(): string {\n // If a direct href is provided, use it\n if (this.href && this.href !== \"#\") return this.href;\n\n // If mailto is provided, build internationalized URL\n if (this.mailto) {\n try {\n const subject = this.subject\n ? getText(this.subject) || this.subject\n : \"Issue report\";\n const describe = this.describe\n ? getText(this.describe) || this.describe\n : \"Describe the issue:\";\n const appVersionLabel = this.appVersion\n ? getText(this.appVersion) || this.appVersion\n : \"App version:\";\n\n const body = `${describe}\\n\\n\\n${appVersionLabel} ${this.version || \"\"}`;\n\n return `mailto:${this.mailto}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;\n } catch (error) {\n // Fallback if translations fail\n return `mailto:${this.mailto}?subject=Issue%20report&body=Describe%20the%20issue%3A%0A%0A%0AApp%20version%3A%20${this.version || \"\"}`;\n }\n }\n\n return \"#\";\n }\n\n render() {\n const mailtoHref = this._getMailtoHref();\n\n return html`\n <div class=\"text-wrapper\" @click=${this._toggleVersion}>\n ${this._showVersion && this.version\n ? html`<ds-text default-value=${this.version}></ds-text>`\n : html`<ds-text text=${this.text}><slot></slot></ds-text>`}\n </div>\n ${this.action\n ? html`\n <div class=\"action-wrapper\">\n <a href=${mailtoHref}>\n <ds-text text=${this.action}></ds-text>\n </a>\n </div>\n `\n : \"\"}\n `;\n }\n}\n\ncustomElements.define(\"ds-banner\", Banner);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-banner\": Banner;\n }\n}\n","// ds-card.ts\n// Card component for displaying content in a contained box\n\nimport { LitElement, html, css } from \"lit\";\n\nexport class Card extends LitElement {\n static properties = {\n variant: { type: String, reflect: true },\n elevation: { type: Number, reflect: true },\n interactive: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n padding: { type: String, reflect: true },\n };\n\n declare variant: \"default\" | \"outlined\" | \"elevated\" | \"filled\";\n declare elevation: number;\n declare interactive: boolean;\n declare disabled: boolean;\n declare padding: \"none\" | \"small\" | \"medium\" | \"large\";\n\n constructor() {\n super();\n this.variant = \"default\";\n this.elevation = 1;\n this.interactive = false;\n this.disabled = false;\n this.padding = \"medium\";\n }\n\n static styles = css`\n :host {\n display: block;\n box-sizing: border-box;\n border-radius: calc(var(--025) * var(--sf, 1));\n background-color: var(--card-background, var(--surface-color, #fff));\n color: var(--text-color-primary);\n transition:\n box-shadow 0.2s ease,\n transform 0.2s ease;\n }\n\n :host([variant=\"default\"]) {\n background-color: var(--card-background, var(--surface-color, #fff));\n border: 1px solid var(--border-color, rgba(0, 0, 0, 0.1));\n }\n\n :host([variant=\"outlined\"]) {\n background-color: transparent;\n border: 1px solid var(--border-color, rgba(0, 0, 0, 0.2));\n }\n\n :host([variant=\"elevated\"]) {\n background-color: var(--card-background, var(--surface-color, #fff));\n border: none;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n }\n\n :host([variant=\"filled\"]) {\n background-color: var(\n --card-background-filled,\n var(--surface-color-secondary, #f5f5f5)\n );\n border: none;\n }\n\n :host([elevation=\"0\"]) {\n box-shadow: none;\n }\n\n :host([elevation=\"1\"]) {\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\n }\n\n :host([elevation=\"2\"]) {\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);\n }\n\n :host([elevation=\"3\"]) {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.16);\n }\n\n :host([interactive]) {\n cursor: pointer;\n }\n\n :host([interactive]:hover:not([disabled])) {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n }\n\n :host([interactive]:active:not([disabled])) {\n transform: translateY(0);\n }\n\n :host([disabled]) {\n opacity: 0.5;\n pointer-events: none;\n }\n\n :host([padding=\"none\"]) {\n padding: 0;\n }\n\n :host([padding=\"small\"]) {\n padding: calc(var(--025) * var(--sf, 1));\n }\n\n :host([padding=\"medium\"]) {\n padding: calc(var(--05) * var(--sf, 1));\n }\n\n :host([padding=\"large\"]) {\n padding: calc(var(--1) * var(--sf, 1));\n }\n\n .card-content {\n width: 100%;\n height: 100%;\n }\n `;\n\n render() {\n return html`\n <div class=\"card-content\" part=\"content\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ncustomElements.define(\"ds-card\", Card);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-card\": Card;\n }\n}\n","export default \"<svg width=\\\"9\\\" height=\\\"8\\\" viewBox=\\\"0 0 9 8\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M2.20008 2.1176C1.96088 2.3776 1.48248 2.5024 1.09768 2.5024H0.848083V1.4H1.01448C1.68008 1.4 2.21048 1.0464 2.41848 0.307999H3.39608V7.692H2.20008V2.1176Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M4.27992 7.692L5.81912 4.9776L4.39432 2.492H5.68392L6.30792 3.7816C6.41192 3.9896 6.48472 4.1456 6.52632 4.312H6.54712C6.57832 4.156 6.65112 3.9792 6.75512 3.7712L7.33752 2.492H8.60632L7.21272 5.0088L8.75192 7.692H7.44152L6.72392 6.2672C6.61992 6.0592 6.53672 5.872 6.50552 5.7368H6.48472C6.45352 5.8512 6.37032 6.0488 6.25592 6.2672L5.53832 7.692H4.27992Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1.28996 0.148769V1.16877H0.269958V0.148769H1.28996Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.30998 0.148769V1.16877H5.28998V0.148769H6.30998Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.33 0.148769V1.16877H10.31V0.148769H11.33Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1.28996 5.16877V6.18877H0.269958V5.16877H1.28996Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.30998 5.16877V6.18877H5.28998V5.16877H6.30998Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.33 5.16877V6.18877H10.31V5.16877H11.33Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1.28996 10.1888V11.2088H0.269958V10.1888H1.28996Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.30998 10.1888V11.2088H5.28998V10.1888H6.30998Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.33 10.1888V11.2088H10.31V10.1888H11.33Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"17\\\" height=\\\"17\\\" viewBox=\\\"0 0 17 17\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M0.799988 3.34877L16.8 3.34877V4.36877L0.799988 4.36877V3.34877Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 8.16877L16.8 8.16877V9.18877L0.799988 9.18877V8.16877Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 12.9888H16.8V14.0088L0.799988 14.0088V12.9888Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M4.48999 16.6788L3.46999 16.6788L3.46999 0.678791L4.48999 0.678772L4.48999 16.6788Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M9.30999 16.6788L8.28999 16.6788L8.28999 0.678791L9.30999 0.678772L9.30999 16.6788Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M14.13 16.6788L13.11 16.6788L13.11 0.678791L14.13 0.678772L14.13 16.6788Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"17\\\" height=\\\"12\\\" viewBox=\\\"0 0 17 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M0.799988 0.148769L16.8 0.14877V1.16877L0.799988 1.16877V0.148769Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 5.16877L16.8 5.16877V6.18877L0.799988 6.18877V5.16877Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 10.1888H16.8V11.2088L0.799988 11.2088V10.1888Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"8\\\" viewBox=\\\"0 0 12 8\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M3.2 2.12C2.96 2.38 2.48 2.5 2.1 2.5H1.85V1.4H2.01C2.68 1.4 3.21 1.05 3.42 0.31H4.4V7.69H3.2V2.12Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M5.28 7.69L6.82 4.98L5.39 2.49H6.68L7.31 3.78C7.41 3.99 7.48 4.15 7.53 4.31H7.55C7.58 4.16 7.65 3.98 7.76 3.77L8.34 2.49H9.61L8.21 5.01L9.75 7.69H8.44L7.72 6.27C7.62 6.06 7.54 5.87 7.51 5.74H7.48C7.45 5.85 7.37 6.05 7.26 6.27L6.54 7.69H5.28Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"1\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"1\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"1\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"1\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0\\\" y=\\\"0\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"6.5\\\" y=\\\"0\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"6.5\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"6.5\\\" y=\\\"6.5\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<line x1=\\\"0\\\" y1=\\\"1\\\" x2=\\\"12\\\" y2=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n<line x1=\\\"0\\\" y1=\\\"4\\\" x2=\\\"12\\\" y2=\\\"4\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n<line x1=\\\"0\\\" y1=\\\"7\\\" x2=\\\"12\\\" y2=\\\"7\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n<line x1=\\\"0\\\" y1=\\\"10\\\" x2=\\\"12\\\" y2=\\\"10\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0\\\" y=\\\"0\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"0\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"0\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"0\\\" width=\\\"1.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"3.5\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"3.5\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"3.5\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"3.5\\\" width=\\\"1.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"7\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"7\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"7\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"7\\\" width=\\\"1.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"10.5\\\" width=\\\"2.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"10.5\\\" width=\\\"2.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"10.5\\\" width=\\\"2.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"10.5\\\" width=\\\"1.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"14\\\" viewBox=\\\"0 0 12 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M9.87 7.12C9.85 5.38 11.27 4.56 11.34 4.51C10.5 3.31 9.21 3.14 8.77 3.13C7.65 3.01 6.57 3.8 6 3.8C5.42 3.8 4.52 3.14 3.58 3.16C2.36 3.18 1.22 3.88 0.6 4.97C-0.68 7.18 0.28 10.44 1.51 12.23C2.13 13.1 2.85 14.09 3.79 14.06C4.7 14.02 5.05 13.47 6.15 13.47C7.24 13.47 7.56 14.06 8.52 14.03C9.5 14.01 10.12 13.15 10.71 12.27C11.42 11.26 11.7 10.28 11.71 10.23C11.69 10.22 9.89 9.52 9.87 7.12Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M8.15 2.06C8.65 1.45 9 0.62 8.91 0C8.18 0.03 7.29 0.49 6.77 1.08C6.31 1.61 5.88 2.47 5.99 3.08C6.79 3.14 7.63 2.66 8.15 2.06Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"6\\\" cy=\\\"3.5\\\" r=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M1 11C1 8.23858 3.23858 6 6 6C8.76142 6 11 8.23858 11 11V12H1V11Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"1\\\" width=\\\"10\\\" height=\\\"10\\\" rx=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M4 6L6 4L8 6M6 4V8\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"0.5\\\" width=\\\"10\\\" height=\\\"11\\\" rx=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"10\\\" viewBox=\\\"0 0 12 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 5L4.5 8.5L11 1.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M2 2L10 10M10 2L2 10\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M2 4L6 8L10 4\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"3\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0.5\\\" y=\\\"0.5\\\" width=\\\"3\\\" height=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n<rect x=\\\"4.5\\\" y=\\\"0.5\\\" width=\\\"3\\\" height=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n<rect x=\\\"8.5\\\" y=\\\"0.5\\\" width=\\\"3\\\" height=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"1\\\" width=\\\"10\\\" height=\\\"10\\\" rx=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"14\\\" viewBox=\\\"0 0 12 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 3H11M4.5 3V1.5H7.5V3M2.5 3V12.5C2.5 13.0523 2.94772 13.5 3.5 13.5H8.5C9.05228 13.5 9.5 13.0523 9.5 12.5V3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"4.5\\\" y1=\\\"5.5\\\" x2=\\\"4.5\\\" y2=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n<line x1=\\\"7.5\\\" y1=\\\"5.5\\\" x2=\\\"7.5\\\" y2=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"14\\\" viewBox=\\\"0 0 12 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"3.5\\\" y=\\\"0\\\" width=\\\"5\\\" height=\\\"8\\\" rx=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M1 6C1 8.76142 3.23858 11 6 11C8.76142 11 11 8.76142 11 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"6\\\" y1=\\\"11\\\" x2=\\\"6\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\"/>\\n<line x1=\\\"3.5\\\" y1=\\\"14\\\" x2=\\\"8.5\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M10 3L4.5 9L2 6.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6 2V10M6 10L2 6M6 10L10 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"3\\\" y=\\\"3\\\" width=\\\"8\\\" height=\\\"8\\\" rx=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M9 3V2C9 1.44772 8.55228 1 8 1H2C1.44772 1 1 1.44772 1 2V8C1 8.55228 1.44772 9 2 9H3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"11\\\" viewBox=\\\"0 0 16 11\\\" fill=\\\"none\\\">\\n <path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M14.0871 0.989435L0.930906 0.988037L0.930542 11L13.0753 11H14.0871V0.989435ZM7.50709 8.0566L1.94249 2.49201L1.94248 9.98814H13.0753V2.48839L7.50709 8.0566ZM2.85116 2L7.50709 6.65593L12.1515 1.99952L2.85116 2Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\">\\n <path d=\\\"M0 5.81415V0H5.80924L5.81842 0.990424H1.70698L11.0089 10.2943L10.9997 6.18585H12V12H6.19076L6.18158 11.0096H10.293L0.99115 1.70573L1.00033 5.81415H0Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"10\\\" viewBox=\\\"0 0 12 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0.5\\\" y=\\\"0.5\\\" width=\\\"11\\\" height=\\\"9\\\" rx=\\\"0.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"3.5\\\" cy=\\\"3.5\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M0 8L4 5L7 7L12 3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M11.82 6.13C11.82 5.72 11.79 5.32 11.71 4.93H6.12V7.2H9.31C9.18 7.91 8.78 8.52 8.18 8.92V10.4H10.08C11.19 9.38 11.82 7.9 11.82 6.13Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M6.12 11.82C7.76 11.82 9.15 11.28 10.08 10.4L8.18 8.92C7.67 9.27 7.01 9.47 6.12 9.47C4.54 9.47 3.2 8.44 2.76 7.05H0.81V8.58C1.76 10.46 3.8 11.82 6.12 11.82Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M2.76 7.05C2.63 6.65 2.55 6.23 2.55 5.79C2.55 5.35 2.63 4.93 2.76 4.53V3H0.81C0.29 4.02 0 5.17 0 6.41C0 7.65 0.29 8.8 0.81 9.82L2.76 7.05Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M6.12 2.12C7.08 2.12 7.95 2.45 8.63 3.1L10.13 1.6C9.15 0.69 7.76 0.18 6.12 0.18C3.8 0.18 1.76 1.54 0.81 3.42L2.76 4.95C3.2 3.56 4.54 2.53 6.12 2.53V2.12Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"9\\\" height=\\\"11\\\" viewBox=\\\"0 0 9 11\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M4.87149 10.5148C4.04816 10.5148 3.32882 10.3068 2.71349 9.89077C2.10682 9.47477 1.63882 8.90277 1.30949 8.17477C0.988825 7.4381 0.828491 6.6061 0.828491 5.67877C0.828491 4.7341 0.993158 3.89777 1.32249 3.16977C1.66049 2.4331 2.14582 1.8611 2.77849 1.45377C3.41982 1.04643 4.18682 0.842768 5.07949 0.842768C5.85949 0.842768 6.50082 0.994435 7.00349 1.29777C7.51483 1.6011 7.89183 1.9651 8.13449 2.38977C8.38583 2.80577 8.54183 3.22177 8.60249 3.63777L7.38049 3.80677C7.29383 3.3041 7.06416 2.85777 6.69149 2.46777C6.32749 2.07777 5.77716 1.88277 5.04049 1.88277C4.42516 1.88277 3.89216 2.0431 3.44149 2.36377C2.99949 2.68444 2.66149 3.13077 2.42749 3.70277C2.20216 4.27477 2.08949 4.93777 2.08949 5.69177C2.08949 6.80977 2.34082 7.71977 2.84349 8.42177C3.35483 9.12377 4.09149 9.47477 5.05349 9.47477C5.74683 9.47477 6.28849 9.31877 6.67849 9.00677C7.06849 8.6861 7.32849 8.31344 7.45849 7.88877C7.59716 7.4641 7.66649 7.05677 7.66649 6.66677V6.51077H4.96249V5.47077H8.77149V10.2938H7.87449L7.70549 8.81177C7.49749 9.3231 7.14216 9.73477 6.63949 10.0468C6.13683 10.3588 5.54749 10.5148 4.87149 10.5148Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 4H11M1 4V2C1 1.44772 1.44772 1 2 1H10C10.5523 1 11 1.44772 11 2V4M1 4V10C1 10.5523 1.44772 11 2 11H10C10.5523 11 11 10.5523 11 10V4\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"4\\\" y1=\\\"6.5\\\" x2=\\\"8\\\" y2=\\\"6.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\"/>\\n<line x1=\\\"4\\\" y1=\\\"8.5\\\" x2=\\\"8\\\" y2=\\\"8.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 5L6 1L11 5V11H7.5V7.5H4.5V11H1V5Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"1\\\" width=\\\"10\\\" height=\\\"10\\\" rx=\\\"2\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6 1L6 8M6 8L3 5M6 8L9 5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n<path d=\\\"M2 10H10\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"9\\\" viewBox=\\\"0 0 16 9\\\" fill=\\\"none\\\">\\n <path d=\\\"M1.90697 3.60594H15.0636V4.61651L1.90734 4.61791L4.81456 7.52513L4.10774 8.21898L-1.23978e-05 4.11123L4.11122 0L4.81855 0.707338L1.90697 3.60594Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\\n\"","export default \"<svg width=\\\"10\\\" height=\\\"12\\\" viewBox=\\\"0 0 10 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"5\\\" width=\\\"8\\\" height=\\\"6\\\" rx=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M3 5V3C3 1.89543 3.89543 1 5 1C6.10457 1 7 1.89543 7 3V5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"5\\\" cy=\\\"8\\\" r=\\\"1\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M10 3H2C1.44772 3 1 3.44772 1 4V8C1 8.55228 1.44772 9 2 9H10C10.5523 9 11 8.55228 11 8V4C11 3.44772 10.5523 3 10 3Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M8.5 1L10.5 3L8.5 5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M3.5 7L1.5 9L3.5 11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"10\\\" height=\\\"14\\\" viewBox=\\\"0 0 10 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"2.5\\\" y=\\\"1\\\" width=\\\"5\\\" height=\\\"7\\\" rx=\\\"2.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M1 6C1 8.76142 2.79086 11 5 11C7.20914 11 9 8.76142 9 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"5\\\" y1=\\\"11\\\" x2=\\\"5\\\" y2=\\\"13\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"2\\\" viewBox=\\\"0 0 12 2\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<line x1=\\\"1\\\" y1=\\\"1\\\" x2=\\\"11\\\" y2=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"4\\\" viewBox=\\\"0 0 12 4\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"2\\\" cy=\\\"2\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"6\\\" cy=\\\"2\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"2\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"5\\\" r=\\\"1\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"8\\\" cy=\\\"5\\\" r=\\\"1\\\" fill=\\\"currentColor\\\"/>\\n<line x1=\\\"4\\\" y1=\\\"8\\\" x2=\\\"8\\\" y2=\\\"8\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 2C1 1.44772 1.44772 1 2 1H7L11 5V10C11 10.5523 10.5523 11 10 11H2C1.44772 11 1 10.5523 1 10V2Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M7 1V5H11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"3\\\" y1=\\\"7\\\" x2=\\\"9\\\" y2=\\\"7\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\"/>\\n<line x1=\\\"3\\\" y1=\\\"9\\\" x2=\\\"7\\\" y2=\\\"9\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\">\\n <path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M12 0.688477V6.54217H10.9936L11.0028 2.40581L1.64458 11.7729L0.924406 11.0528L10.2827 1.68564H6.14631L6.15554 0.688477H12Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\\n\"","export default \"<svg width=\\\"10\\\" height=\\\"12\\\" viewBox=\\\"0 0 10 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 2C1 1.44772 1.44772 1 2 1H6L9 4V10C9 10.5523 8.55228 11 8 11H2C1.44772 11 1 10.5523 1 10V2Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M6 1V4H9\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6 2V10M2 6H10\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"10\\\" viewBox=\\\"0 0 12 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6 1L1 5L6 9V1Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M12 1L7 5L12 9V1Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"15.064\\\" height=\\\"8.219\\\" viewBox=\\\"0 0 15.064 8.219\\\" fill=\\\"none\\\">\\n <path d=\\\"M14.5815 4.48047L11.0815 8.21047L10.4315 7.59047L13.1315 4.71047H0.581543V3.71047H13.1315L10.4315 0.830469L11.0815 0.210469L14.5815 3.94047C14.7815 4.15047 14.7815 4.27047 14.5815 4.48047Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0.5\\\" y=\\\"0.5\\\" width=\\\"11\\\" height=\\\"3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n<rect x=\\\"0.5\\\" y=\\\"4.5\\\" width=\\\"11\\\" height=\\\"3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n<rect x=\\\"0.5\\\" y=\\\"8.5\\\" width=\\\"11\\\" height=\\\"3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"8\\\" height=\\\"5\\\" viewBox=\\\"0 0 8 5\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 1L4 4L7 1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"5\\\" cy=\\\"5\\\" r=\\\"4\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"8\\\" y1=\\\"8\\\" x2=\\\"11\\\" y2=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"14\\\" height=\\\"10\\\" viewBox=\\\"0 0 14 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M7 1C3.5 1 1 5 1 5C1 5 3.5 9 7 9C10.5 9 13 5 13 5C13 5 10.5 1 7 1Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"5\\\" r=\\\"2\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"14\\\" height=\\\"12\\\" viewBox=\\\"0 0 14 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M2 8L1 11H13L12 8\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M3 8V4H6V1H8V4H11V8H3Z\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"5\\\" y=\\\"5\\\" width=\\\"4\\\" height=\\\"2\\\" fill=\\\"var(--surface-color, #fff)\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6 1L7.5 4.5L11 5L8.5 7.5L9 11L6 9.5L3 11L3.5 7.5L1 5L4.5 4.5L6 1Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"2\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"8\\\" height=\\\"5\\\" viewBox=\\\"0 0 8 5\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 4L4 1L7 4\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"10\\\" viewBox=\\\"0 0 12 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 1H11M6 1V9M3 9H9\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"10\\\" viewBox=\\\"0 0 12 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 4L4 1M1 4L4 7M1 4H8C9.65685 4 11 5.34315 11 7V9\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0.5\\\" y=\\\"0.5\\\" width=\\\"5\\\" height=\\\"5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" stroke-dasharray=\\\"2 1\\\" fill=\\\"none\\\"/>\\n<rect x=\\\"6.5\\\" y=\\\"6.5\\\" width=\\\"5\\\" height=\\\"5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" stroke-dasharray=\\\"2 1\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 1H11M1 1V10C1 10.5523 1.44772 11 2 11H10C10.5523 11 11 10.5523 11 10V1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-dasharray=\\\"2 1\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"1\\\" width=\\\"10\\\" height=\\\"10\\\" rx=\\\"2\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-dasharray=\\\"2 1\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"10\\\" height=\\\"12\\\" viewBox=\\\"0 0 10 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"5\\\" width=\\\"8\\\" height=\\\"6\\\" rx=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M3 5V3C3 1.89543 3.89543 1 5 1C6.10457 1 7 1.89543 7 3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"5\\\" cy=\\\"8\\\" r=\\\"1\\\" fill=\\\"currentColor\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"10\\\" height=\\\"14\\\" viewBox=\\\"0 0 10 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"2.5\\\" y=\\\"1\\\" width=\\\"5\\\" height=\\\"7\\\" rx=\\\"2.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M1 6C1 8.76142 2.79086 11 5 11C7.20914 11 9 8.76142 9 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"5\\\" y1=\\\"11\\\" x2=\\\"5\\\" y2=\\\"13\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n<line x1=\\\"1\\\" y1=\\\"1\\\" x2=\\\"9\\\" y2=\\\"13\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"14\\\" height=\\\"12\\\" viewBox=\\\"0 0 14 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M7 2C3.5 2 1 6 1 6C1 6 3.5 10 7 10C10.5 10 13 6 13 6C13 6 10.5 2 7 2Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"6\\\" r=\\\"2\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"2\\\" y1=\\\"1\\\" x2=\\\"12\\\" y2=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6 1L7.5 4.5L11 5L8.5 7.5L9 11L6 9.5L3 11L3.5 7.5L1 5L4.5 4.5L6 1Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linejoin=\\\"round\\\" stroke-dasharray=\\\"2 1\\\" fill=\\\"none\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"10\\\" viewBox=\\\"0 0 12 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 1H11M6 1V9M3 9H9\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-dasharray=\\\"2 1\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6 10V2M6 2L2 6M6 2L10 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","import{nothing as t,noChange as i}from\"../lit-html.js\";import{Directive as r,PartType as s,directive as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends r{constructor(i){if(super(i),this.it=t,i.type!==s.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=n(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import { LitElement, html, unsafeCSS, type PropertyValues } from \"lit\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport styles from \"./styles/ds-icon.css?inline\";\n\nexport class Icon extends LitElement {\n static properties = {\n type: { type: String, reflect: true },\n };\n\n private _type = \"\";\n\n size = \"1em\";\n color = \"currentColor\";\n background = \"transparent\";\n\n get type() {\n return this._type;\n }\n set type(val) {\n const oldVal = this._type;\n this._type = val;\n this.requestUpdate(\"type\", oldVal);\n }\n\n static styles = unsafeCSS(styles);\n\n // Load all SVGs from `x Icon/` as raw strings at build time (Vite)\n // The keys will be the file base names (without extension), lowercased.\n private static readonly iconNameToSvgMap: Record<string, string> = (() => {\n try {\n // Note: folder name contains a space, keep it exact.\n const modules = (import.meta as any).glob(\"../x-icon/*.svg\", {\n query: \"?raw\",\n import: \"default\",\n eager: true,\n }) as Record<string, string>;\n\n const map: Record<string, string> = {};\n for (const [path, content] of Object.entries(modules)) {\n const fileName = path.split(\"/\").pop() ?? \"\";\n const baseName = fileName.replace(/\\.svg$/i, \"\").toLowerCase();\n if (baseName) {\n map[baseName] = content;\n }\n }\n return map;\n } catch (err) {\n // If not running under Vite (or during tests), gracefully degrade.\n console.warn(\n \"Icon: failed to glob SVGs from x Icon/; falling back only to inline switch icons.\",\n err\n );\n return {};\n }\n })();\n\n constructor() {\n super();\n console.log(\"Icon constructor\", this._type);\n }\n\n connectedCallback() {\n super.connectedCallback();\n console.log(\"Icon connected\", this._type);\n }\n\n renderIcon() {\n console.log(\"renderIcon called with type:\", this._type);\n\n if (!this._type || this._type === \"\") {\n console.log(\"No type specified, rendering default slot\");\n return html`<div class=\"icon-container\"><slot></slot></div>`;\n }\n\n // First, try to render an SVG whose file name matches `type`\n const svgFromSet = Icon.iconNameToSvgMap[this._type.toLowerCase()];\n if (svgFromSet) {\n return html`<div class=\"icon-container\">${unsafeHTML(svgFromSet)}</div>`;\n }\n\n switch (this._type.toLowerCase()) {\n case \"close\":\n console.log(\"Rendering close icon\");\n return html`\n <div class=\"icon-container\">\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M18.3 5.71a.996.996 0 00-1.41 0L12 10.59 7.11 5.7A.996.996 0 105.7 7.11L10.59 12 5.7 16.89a.996.996 0 101.41 1.41L12 13.41l4.89 4.89a.996.996 0 101.41-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\"\n />\n </svg>\n </div>\n `;\n case \"page\":\n console.log(\"Rendering page icon\");\n return html`\n <div class=\"icon-container\">\n <svg viewBox=\"0 0 17 17\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect\n width=\"16\"\n height=\"16\"\n transform=\"translate(0.799988 0.678772)\"\n fill=\"var(--accent-color)\"\n />\n <path\n d=\"M13.7956 2.38385V14.9737H3.80438V2.38385H13.7956ZM4.7243 14.0538H12.8757V3.30377H4.7243V14.0538ZM8.67841 8.53619V9.45612H5.92938V8.53619H8.67841ZM10.8259 6.60455V7.52448H5.92938V6.60455H10.8259ZM10.8259 4.67194V5.59283H5.92938V4.67194H10.8259Z\"\n fill=\"#2A2A2A\"\n />\n </svg>\n </div>\n `;\n case \"note\":\n console.log(\"Rendering note icon\");\n return html`\n <div class=\"icon-container\">\n <svg viewBox=\"0 0 17 17\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect\n width=\"16\"\n height=\"16\"\n transform=\"translate(0.799988 0.678772)\"\n fill=\"var(--accent-color, #CCFF4D)\"\n />\n <path\n d=\"M14.7653 3.99225V13.3653H2.83466V3.99225H14.7653ZM3.83466 12.3653H13.7653V4.99225H3.83466V12.3653Z\"\n fill=\"#2A2A2A\"\n />\n <path\n d=\"M8.8064 7.75881V8.67873H4.51343V7.75881H8.8064ZM10.7527 5.75881V6.67873H4.51343V5.75881H10.7527Z\"\n fill=\"#2A2A2A\"\n />\n </svg>\n </div>\n `;\n case \"default\":\n console.log(\"Rendering default icon\");\n return html`\n <div class=\"icon-container\">\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n width=\"16\"\n height=\"16\"\n transform=\"translate(0.799988)\"\n fill=\"var(--accent-color, #CCFF4D)\"\n />\n <path\n d=\"M9.95899 15V6.81H7.05999V5.77H14.093V6.81H11.194V15H9.95899Z\"\n fill=\"#2A2A2A\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5.89999 0V5.10001H0.799988V0H5.89999Z\"\n fill=\"#2A2A2A\"\n />\n </svg>\n </div>\n `;\n case \"big\":\n console.log(\"Rendering big icon\");\n return html`\n <div class=\"icon-container\">\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_3141_3351)\">\n <rect\n width=\"16\"\n height=\"16\"\n transform=\"translate(0.799988)\"\n fill=\"var(--accent-color, #CCFF4D)\"\n />\n <path\n d=\"M13.959 12.615V4.425H11.06V3.385H16.802V4.425H15.194V12.615H13.959Z\"\n fill=\"#2A2A2A\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9.79999 3.5V12.5H0.799988V3.5H9.79999Z\"\n fill=\"#2A2A2A\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_3141_3351\">\n <rect\n width=\"16\"\n height=\"16\"\n fill=\"white\"\n transform=\"translate(0.799988)\"\n />\n </clipPath>\n </defs>\n </svg>\n </div>\n `;\n case \"gallery\":\n console.log(\"Rendering gallery icon\");\n return html`\n <div class=\"icon-container\">\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_3144_2504)\">\n <rect\n width=\"16\"\n height=\"16\"\n transform=\"translate(0.799988)\"\n fill=\"var(--accent-color, #CCFF4D)\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M0.799988 16V0H16.8L0.799988 16ZM1.50604 0.769531V1.80957H4.40546V10H5.63983V1.80957H8.53925V0.769531H1.50604Z\"\n fill=\"#2A2A2A\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_3144_2504\">\n <rect\n width=\"16\"\n height=\"16\"\n fill=\"white\"\n transform=\"translate(0.799988)\"\n />\n </clipPath>\n </defs>\n </svg>\n </div>\n `;\n case \"check\":\n console.log(\"Rendering check icon\");\n return html`\n <div class=\"icon-container\">\n <svg\n viewBox=\"0 0 17 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n width=\"16\"\n height=\"16\"\n transform=\"translate(0.799988 0.678772)\"\n fill=\"var(--accent-color)\"\n />\n <path\n d=\"M7.48658 11.8747L13.2431 6.12674L12.5361 5.41788L7.48845 10.4734L5.06409 8.04082L4.35706 8.73597L7.48658 11.8747Z\"\n fill=\"#2A2A2A\"\n />\n </svg>\n </div>\n `;\n default:\n console.log(`Unknown icon type: ${this._type}, rendering default slot`);\n return html`<div class=\"icon-container\"><slot></slot></div>`;\n }\n }\n\n updated(changedProperties: PropertyValues) {\n console.log(\"Icon updated\", changedProperties);\n\n this.style.setProperty(\"--icon-size\", this.size);\n this.style.setProperty(\"--icon-color\", this.color);\n this.style.setProperty(\"--icon-background\", this.background);\n }\n\n render() {\n console.log(\"Icon render\", this._type);\n return this.renderIcon();\n }\n}\n\ncustomElements.define(\"ds-icon\", Icon);\n\n// Add this line to help with debugging\nconsole.log(\"Icon component registered with custom elements registry\");\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-icon\": Icon;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport {\n translate,\n currentLanguage,\n getAvailableLanguagesSync,\n getLanguageDisplayName,\n setLanguage,\n} from \"../0-face/i18n\";\nimport type { LanguageCode } from \"../0-face/i18n\";\nimport { currentTheme, setTheme } from \"../0-face/theme\";\nimport type { ThemeType } from \"../0-face/theme\";\nimport { savePreferences } from \"../0-face/preferences\";\nimport \"./ds-button\";\nimport \"./ds-icon\";\nimport \"./ds-text\";\nimport styles from \"./styles/ds-cycle.css?inline\";\n\n// Accent color utilities\nconst saveAccentColor = (color: string) => {\n localStorage.setItem(\"accentColor\", color);\n};\n\nconst getAccentColor = (): string => {\n return localStorage.getItem(\"accentColor\") || \"--sharp-blue\"; // Default color if none set\n};\n\nconst applyAccentColor = () => {\n const color = getAccentColor();\n document.documentElement.style.setProperty(\"--accent-color\", `var(${color})`);\n};\n\n// Notes style medium utilities\nconst saveNotesStyleMedium = (style: string) => {\n localStorage.setItem(\"notesStyleMedium\", style);\n};\n\nconst getNotesStyleMedium = (): string => {\n return localStorage.getItem(\"notesStyleMedium\") || \"note\"; // Default to note\n};\n\n// Note behavior utilities\nconst savePageStyle = (style: string) => {\n localStorage.setItem(\"pageStyle\", style);\n};\n\nconst getPageStyle = (): string => {\n return localStorage.getItem(\"pageStyle\") || \"note\"; // Default to note\n};\n\n// App width utilities removed\n\n// Use a regular class with proper TypeScript type declarations and JSDoc comments\nexport class Cycle extends LitElement {\n // Define reactive properties using Lit's property system\n static get properties() {\n return {\n type: { type: String },\n values: { type: Array },\n currentValue: { type: String, state: true }, // Make this a private state property\n translationsReady: { type: Boolean, state: true }, // Track if translations are loaded\n disabled: { type: Boolean, state: true },\n variant: { type: String },\n };\n }\n\n static styles = unsafeCSS(styles);\n\n // Add runtime properties using the any type\n // These are just for TypeScript and don't create shadowing fields\n declare type: string;\n declare values: string[];\n declare currentValue: string;\n declare translationsReady: boolean;\n declare disabled: boolean;\n declare variant: string;\n\n // Store bound event handlers for proper cleanup\n private boundHandlers: {\n translationsLoaded: EventListener;\n languageChanged: EventListener;\n handleLanguageChanged: EventListener;\n handleThemeChanged: EventListener;\n handleAccentColorChanged: EventListener;\n handleNoteBehaviorChanged: EventListener;\n };\n\n constructor() {\n super();\n\n // Initialize properties with default values\n this.type = \"\";\n this.values = [];\n this.currentValue = \"\";\n this.translationsReady = false;\n this.disabled = false;\n this.variant = \"\";\n\n // Bind event handlers to this instance for proper cleanup\n this.boundHandlers = {\n translationsLoaded: this.handleTranslationsLoaded.bind(this),\n languageChanged: this.handleLanguageChanged.bind(this),\n handleLanguageChanged: this.handleLanguageChanged.bind(this),\n handleThemeChanged: this.handleThemeChanged.bind(this),\n handleAccentColorChanged: this.handleAccentColorChanged.bind(this),\n handleNoteBehaviorChanged: this.handleNoteBehaviorChanged.bind(this),\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Add event listeners\n window.addEventListener(\n \"translations-loaded\",\n this.boundHandlers.translationsLoaded\n );\n window.addEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n window.addEventListener(\n \"theme-changed\",\n this.boundHandlers.handleThemeChanged\n );\n window.addEventListener(\n \"accent-color-changed\",\n this.boundHandlers.handleAccentColorChanged\n );\n window.addEventListener(\n \"page-style-changed\",\n this.boundHandlers.handleNoteBehaviorChanged\n );\n\n // Initialize the component\n this.initializeValues();\n }\n\n async initializeValues() {\n if (this.type === \"language\") {\n // Dynamically get available languages from translation data\n const availableLanguages = getAvailableLanguagesSync();\n this.values = availableLanguages;\n this.currentValue = currentLanguage.value;\n } else if (this.type === \"theme\") {\n // Set up theme cycling\n this.values = [\"light\", \"dark\"];\n\n // Set initial value based on current theme\n const currentThemeValue = currentTheme.get();\n this.currentValue = currentThemeValue;\n } else if (this.type === \"accent-color\") {\n // Set up accent color cycling\n this.values = [\n \"--apple-green\",\n \"--every-green\",\n \"--zenith-blue\",\n \"--sharp-blue\",\n \"--pink\",\n \"--tuned-red\",\n \"--orange\",\n \"--yellow\",\n ];\n\n // Set initial value based on current accent color\n const currentAccentColor = getAccentColor();\n this.currentValue = currentAccentColor;\n\n // Apply the accent color to ensure it's active\n applyAccentColor();\n } else if (this.type === \"notes-style-medium\") {\n // Set up notes style medium cycling\n this.values = [\"default\", \"big\", \"gallery\"];\n\n // Set initial value based on current notes style medium\n const currentNotesStyle = getNotesStyleMedium();\n this.currentValue = currentNotesStyle;\n\n // Check if this should be disabled based on note behavior\n const currentPageStyle = getPageStyle();\n this.disabled = currentPageStyle === \"note\";\n } else if (this.type === \"page-style\") {\n // Set up page style cycling\n this.values = [\"note\", \"page\"];\n\n // Set initial value based on current page style\n const currentPageStyle = getPageStyle();\n this.currentValue = currentPageStyle;\n } else if (this.type === \"icon-only\") {\n // Set up icon-only cycling (no label)\n this.values = [\"note\", \"page\"];\n\n // Set initial value\n this.currentValue = this.values[0];\n }\n\n // Request update to re-render with new values\n this.requestUpdate();\n }\n\n ensureThemeInitialized() {\n // Ensure theme is properly initialized\n const savedTheme = localStorage.getItem(\"theme\");\n if (!savedTheme) {\n const prefersDark = window.matchMedia(\n \"(prefers-color-scheme: dark)\"\n ).matches;\n const defaultTheme = prefersDark ? \"dark\" : \"light\";\n localStorage.setItem(\"theme\", defaultTheme);\n document.documentElement.classList.add(`${defaultTheme}-theme`);\n }\n }\n\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\n super.attributeChangedCallback(name, oldValue, newValue);\n\n if (name === \"type\" && oldValue !== newValue) {\n // Type changed, reinitialize values\n this.initializeValues();\n }\n }\n\n async setupInitialValue() {\n if (this.type === \"language\") {\n // Get current language\n const currentLang = currentLanguage.value;\n this.currentValue = currentLang;\n } else if (this.type === \"theme\") {\n // Get current theme\n const currentThemeValue = currentTheme.get();\n this.currentValue = currentThemeValue;\n } else if (this.type === \"accent-color\") {\n // Get current accent color\n const currentAccentColor = getAccentColor();\n this.currentValue = currentAccentColor;\n\n // Apply the accent color to ensure it's active\n applyAccentColor();\n } else if (this.type === \"notes-style-medium\") {\n // Get current notes style medium\n const currentNotesStyle = getNotesStyleMedium();\n this.currentValue = currentNotesStyle;\n\n // Check if this should be disabled based on note behavior\n const currentPageStyle = getPageStyle();\n this.disabled = currentPageStyle === \"note\";\n } else if (this.type === \"page-style\") {\n // Get current page style\n const currentPageStyle = getPageStyle();\n this.currentValue = currentPageStyle;\n } else if (this.type === \"icon-only\") {\n // Get current page style for icon-only\n const currentPageStyle = getPageStyle();\n this.currentValue = currentPageStyle;\n }\n\n this.requestUpdate();\n }\n\n handleSettingsChanges() {\n // Handle any settings changes that might affect this component\n this.setupInitialValue();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n // Remove event listeners\n window.removeEventListener(\n \"translations-loaded\",\n this.boundHandlers.translationsLoaded\n );\n window.removeEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n window.removeEventListener(\n \"theme-changed\",\n this.boundHandlers.handleThemeChanged\n );\n window.removeEventListener(\n \"accent-color-changed\",\n this.boundHandlers.handleAccentColorChanged\n );\n window.removeEventListener(\n \"page-style-changed\",\n this.boundHandlers.handleNoteBehaviorChanged\n );\n }\n\n handleButtonClick(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n\n // Don't handle clicks if disabled\n if (this.disabled) {\n return;\n }\n\n if (this.type === \"language\") {\n // Cycle through available languages\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newLanguage = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newLanguage;\n\n // Set the new language with view transition like Portfolio\n if ((document as any).startViewTransition) {\n (document as any).startViewTransition(() => {\n setLanguage(newLanguage as LanguageCode);\n });\n } else {\n setLanguage(newLanguage as LanguageCode);\n }\n\n // Save preferences\n savePreferences({ language: newLanguage as LanguageCode });\n\n // Dispatch language change event\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: newLanguage },\n })\n );\n } else if (this.type === \"theme\") {\n // Cycle through themes\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newTheme = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newTheme;\n\n // Set the new theme using the shared helper\n setTheme(newTheme as ThemeType);\n\n // Save preferences\n savePreferences({ theme: newTheme as ThemeType });\n\n // Theme helper already emits the change event, so no manual dispatch here\n } else if (this.type === \"accent-color\") {\n // Cycle through accent colors\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newColor = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newColor;\n\n // Save the new accent color\n saveAccentColor(newColor);\n\n // Apply the new accent color\n applyAccentColor();\n\n // Save preferences\n savePreferences({ accentColor: newColor });\n\n // Dispatch accent color change event\n window.dispatchEvent(\n new CustomEvent(\"accent-color-changed\", {\n detail: { color: newColor },\n })\n );\n } else if (this.type === \"notes-style-medium\") {\n // Cycle through notes style medium options\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newStyle = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newStyle;\n\n // Save the new notes style medium\n saveNotesStyleMedium(newStyle);\n\n // Save preferences\n savePreferences({ notesStyleMedium: newStyle });\n\n // Dispatch notes style medium change event\n window.dispatchEvent(\n new CustomEvent(\"notes-style-medium-changed\", {\n detail: { style: newStyle },\n })\n );\n } else if (this.type === \"page-style\") {\n // Cycle through note behavior options\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newBehavior = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newBehavior;\n\n // Save the new note behavior\n savePageStyle(newBehavior);\n\n // Save preferences\n savePreferences({ pageStyle: newBehavior });\n\n // Dispatch note behavior change event\n window.dispatchEvent(\n new CustomEvent(\"page-style-changed\", {\n detail: { behavior: newBehavior },\n })\n );\n } else if (this.type === \"icon-only\") {\n // Cycle through icon-only options (note/page)\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newIconOnlyValue = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newIconOnlyValue;\n\n // Save the new page style\n savePageStyle(newIconOnlyValue);\n\n // Save preferences\n savePreferences({ pageStyle: newIconOnlyValue });\n\n // Dispatch page style change event\n window.dispatchEvent(\n new CustomEvent(\"page-style-changed\", {\n detail: { behavior: newIconOnlyValue },\n })\n );\n }\n\n // Request update to re-render\n this.requestUpdate();\n }\n\n getValueDisplay(value: string): string | any {\n if (this.type === \"language\") {\n return getLanguageDisplayName(value, {\n locale: currentLanguage.value,\n });\n } else if (this.type === \"theme\") {\n // Try to get translated theme name\n if (this.translationsReady) {\n const translatedName = translate(value);\n if (translatedName && translatedName !== value) {\n return translatedName;\n }\n }\n\n // Fall back to the theme value itself\n return value;\n } else if (this.type === \"accent-color\") {\n // Get color name from CSS variable\n return this.getColorName(value);\n } else if (this.type === \"notes-style-medium\") {\n // Return SVG icon for notes style medium\n return this.getNotesStyleIcon(value);\n } else if (this.type === \"page-style\") {\n // Return translated text for note behavior\n if (this.translationsReady) {\n const translatedText = translate(value === \"note\" ? \"Note\" : \"Page\");\n if (\n translatedText &&\n translatedText !== (value === \"note\" ? \"Note\" : \"Page\")\n ) {\n return translatedText;\n }\n }\n return value;\n } else if (this.type === \"icon-only\") {\n // Return SVG icon for icon-only type (note/page icons)\n if (value === \"note\") {\n return html`<ds-icon type=\"note\"></ds-icon>`;\n } else if (value === \"page\") {\n return html`<ds-icon type=\"page\"></ds-icon>`;\n }\n return html`<span>${value}</span>`;\n }\n\n return value;\n }\n\n getColorKey(colorVar: string): string {\n // Map CSS variables to translation text keys\n const colorMap: { [key: string]: string } = {\n \"--tuned-red\": \"Red\",\n \"--orange\": \"Orange\",\n \"--yellow\": \"Yellow\",\n \"--apple-green\": \"Apple green\",\n \"--every-green\": \"Green\",\n \"--zenith-blue\": \"Light blue\",\n \"--sharp-blue\": \"Blue\",\n \"--pink\": \"Pink\",\n };\n\n return colorMap[colorVar] || colorVar.replace(\"--\", \"\").replace(\"-\", \" \");\n }\n\n getColorName(colorVar: string): string {\n // Map CSS variables to translation text keys\n const colorMap: { [key: string]: string } = {\n \"--tuned-red\": \"Red\",\n \"--orange\": \"Orange\",\n \"--yellow\": \"Yellow\",\n \"--apple-green\": \"Apple green\",\n \"--every-green\": \"Green\",\n \"--zenith-blue\": \"Light blue\",\n \"--sharp-blue\": \"Blue\",\n \"--pink\": \"Pink\",\n };\n\n const translationText = colorMap[colorVar];\n if (translationText && this.translationsReady) {\n const translatedName = translate(translationText);\n if (translatedName && translatedName !== translationText) {\n return translatedName;\n }\n }\n\n // Fallback to simple name conversion\n return colorVar.replace(\"--\", \"\").replace(\"-\", \" \");\n }\n\n getNotesStyleIcon(style: string) {\n if (style === \"page\") {\n return html`<ds-icon type=\"page\"></ds-icon>`;\n } else if (style === \"note\") {\n return html`<ds-icon type=\"note\"></ds-icon>`;\n } else if (style === \"default\") {\n return html`<ds-icon type=\"default\"></ds-icon>`;\n } else if (style === \"big\") {\n return html`<ds-icon type=\"big\"></ds-icon>`;\n } else if (style === \"gallery\") {\n return html`<ds-icon type=\"gallery\"></ds-icon>`;\n }\n return html`<span>${style}</span>`;\n }\n\n render() {\n return html`\n <div class=\"cycle\">\n <ds-button\n variant=${this.variant ||\n (this.type === \"language\" || this.type === \"theme\"\n ? \"secondary\"\n : \"primary\")}\n ?disabled=${this.disabled}\n @click=${this.handleButtonClick}\n >\n ${this.type === \"notes-style-medium\" || this.type === \"icon-only\"\n ? html`<span\n style=\"display: inline-flex; align-items: center; gap: var(--025)\"\n >${this.getValueDisplay(this.currentValue)}</span\n >`\n : this.type === \"language\"\n ? html`<ds-text\n default-value=${this.getValueDisplay(this.currentValue)}\n ></ds-text>`\n : this.type === \"theme\"\n ? html`<ds-text\n text=${this.currentValue}\n default-value=${this.currentValue}\n ></ds-text>`\n : this.type === \"accent-color\"\n ? html`<ds-text\n text=${this.getColorKey(this.currentValue)}\n default-value=${this.getColorName(this.currentValue)}\n ></ds-text>`\n : this.type === \"page-style\"\n ? html`<ds-text\n text=${this.currentValue === \"note\" ? \"Note\" : \"Page\"}\n default-value=${this.currentValue}\n ></ds-text>`\n : html`<ds-text\n default-value=${this.getValueDisplay(this.currentValue)}\n ></ds-text>`}\n </ds-button>\n\n ${this.type === \"accent-color\"\n ? html`\n <div\n class=\"color-preview\"\n style=\"background-color: var(${this.currentValue})\"\n ></div>\n `\n : \"\"}\n </div>\n `;\n }\n\n private async waitForTranslations(): Promise<void> {\n return new Promise((resolve) => {\n if (this.translationsReady) {\n resolve();\n return;\n }\n\n const handleTranslationsLoaded = () => {\n this.translationsReady = true;\n resolve();\n };\n\n window.addEventListener(\"translations-loaded\", handleTranslationsLoaded, {\n once: true,\n });\n\n // Timeout after 5 seconds\n setTimeout(() => {\n this.translationsReady = true;\n resolve();\n }, 5000);\n });\n }\n\n private handleTranslationsLoaded() {\n this.translationsReady = true;\n\n // Refresh language values if this is a language cycle\n if (this.type === \"language\") {\n const availableLanguages = getAvailableLanguagesSync();\n this.values = availableLanguages;\n }\n\n this.setupInitialValue();\n }\n\n private handleLanguageChanged() {\n this.setupInitialValue();\n }\n\n private handleThemeChanged() {\n this.setupInitialValue();\n }\n\n private handleAccentColorChanged() {\n this.setupInitialValue();\n }\n\n private handleNoteBehaviorChanged() {\n this.setupInitialValue();\n }\n}\n\ncustomElements.define(\"ds-cycle\", Cycle);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-cycle\": Cycle;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-date.css?inline\";\n\n/**\n * A component for displaying the current year\n *\n * @element ds-date\n */\nexport class DateComponent extends LitElement {\n static styles = unsafeCSS(styles);\n\n render() {\n const year = new Date().getFullYear();\n return html`<span>${year}</span>`;\n }\n}\n\ncustomElements.define(\"ds-date\", DateComponent);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-date\": DateComponent;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-gap.css?inline\";\n\n/**\n * Full-width vertical spacer.\n *\n * Usage:\n * - <ds-gap unit></ds-gap>\n * - <ds-gap double></ds-gap>\n * - <ds-gap size=\"05\"></ds-gap>\n */\nexport class Gap extends LitElement {\n static properties = {\n /** Raw scale token selector (\"01\", \"025\", \"05\", \"08\", \"1\", \"2\", \"3\", \"4\", \"8\", \"12\") */\n size: { type: String, reflect: true },\n };\n\n declare size: string;\n\n constructor() {\n super();\n this.size = \"\";\n }\n\n static styles = unsafeCSS(styles);\n\n render() {\n return html``;\n }\n}\n\ncustomElements.define(\"ds-gap\", Gap);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-gap\": Gap;\n }\n}\n","// ds-input.ts\n// Input component for text and other input types\n\nimport { LitElement, html, css } from \"lit\";\nimport \"./ds-text\";\n\nexport class Input extends LitElement {\n static properties = {\n type: { type: String, reflect: true },\n name: { type: String, reflect: true },\n value: { type: String },\n placeholder: { type: String },\n placeholderKey: { type: String, attribute: \"placeholder-key\" },\n label: { type: String },\n labelText: { type: String, attribute: \"label-text\" },\n disabled: { type: Boolean, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n autofocus: { type: Boolean },\n autocomplete: { type: String },\n pattern: { type: String },\n minlength: { type: Number },\n maxlength: { type: Number },\n min: { type: String },\n max: { type: String },\n step: { type: String },\n variant: { type: String, reflect: true },\n error: { type: String },\n errorText: { type: String, attribute: \"error-text\" },\n _focused: { type: Boolean, state: true },\n };\n\n declare type:\n | \"text\"\n | \"password\"\n | \"email\"\n | \"number\"\n | \"tel\"\n | \"url\"\n | \"search\"\n | \"date\"\n | \"time\"\n | \"datetime-local\";\n declare name: string;\n declare value: string;\n declare placeholder: string;\n declare placeholderKey: string;\n declare label: string;\n declare labelText: string;\n declare disabled: boolean;\n declare readonly: boolean;\n declare required: boolean;\n declare autofocus: boolean;\n declare autocomplete: string;\n declare pattern: string;\n declare minlength: number;\n declare maxlength: number;\n declare min: string;\n declare max: string;\n declare step: string;\n declare variant: \"default\" | \"filled\" | \"outlined\";\n declare error: string;\n declare errorText: string;\n declare _focused: boolean;\n\n constructor() {\n super();\n this.type = \"text\";\n this.name = \"\";\n this.value = \"\";\n this.placeholder = \"\";\n this.placeholderKey = \"\";\n this.label = \"\";\n this.labelText = \"\";\n this.disabled = false;\n this.readonly = false;\n this.required = false;\n this.autofocus = false;\n this.autocomplete = \"off\";\n this.pattern = \"\";\n this.minlength = 0;\n this.maxlength = 0;\n this.min = \"\";\n this.max = \"\";\n this.step = \"\";\n this.variant = \"default\";\n this.error = \"\";\n this.errorText = \"\";\n this._focused = false;\n }\n\n static styles = css`\n :host {\n display: block;\n width: 100%;\n }\n\n .input-wrapper {\n display: flex;\n flex-direction: column;\n gap: calc(var(--025) * var(--sf, 1));\n width: 100%;\n }\n\n label {\n font-family: var(--typeface-regular);\n font-size: calc(12px * var(--sf, 1));\n color: var(--text-color-secondary);\n }\n\n .input-container {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n }\n\n input {\n width: 100%;\n height: calc(var(--1) * var(--sf, 1));\n padding: 0 calc(var(--025) * var(--sf, 1));\n font-family: var(--typeface-regular);\n font-size: calc(14px * var(--sf, 1));\n color: var(--text-color-primary);\n background-color: var(--input-background, transparent);\n border: 1px solid var(--input-border-color, var(--border-color, #ccc));\n border-radius: calc(var(--025) * var(--sf, 1));\n outline: none;\n transition:\n border-color 0.2s ease,\n box-shadow 0.2s ease;\n box-sizing: border-box;\n }\n\n input::placeholder {\n color: var(--text-color-tertiary, #999);\n }\n\n input:focus {\n border-color: var(--accent-color, #007aff);\n box-shadow: 0 0 0 2px var(--input-focus-ring, rgba(0, 122, 255, 0.2));\n }\n\n input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background-color: var(--input-disabled-background, #f5f5f5);\n }\n\n input:read-only {\n background-color: var(--input-readonly-background, #fafafa);\n }\n\n :host([variant=\"filled\"]) input {\n background-color: var(\n --input-filled-background,\n var(--surface-color-secondary, #f5f5f5)\n );\n border: none;\n border-bottom: 2px solid var(--border-color, #ccc);\n border-radius: calc(var(--025) * var(--sf, 1))\n calc(var(--025) * var(--sf, 1)) 0 0;\n }\n\n :host([variant=\"filled\"]) input:focus {\n border-bottom-color: var(--accent-color, #007aff);\n box-shadow: none;\n }\n\n :host([variant=\"outlined\"]) input {\n background-color: transparent;\n border: 2px solid var(--border-color, #ccc);\n }\n\n :host([variant=\"outlined\"]) input:focus {\n border-color: var(--accent-color, #007aff);\n }\n\n .error-message {\n font-family: var(--typeface-regular);\n font-size: calc(12px * var(--sf, 1));\n color: var(--error-color, #ff3b30);\n margin-top: calc(var(--025) * var(--sf, 1));\n }\n\n :host([required]) label::after {\n content: \" *\";\n color: var(--error-color, #ff3b30);\n }\n\n /* Error state */\n input.has-error {\n border-color: var(--error-color, #ff3b30);\n }\n\n input.has-error:focus {\n box-shadow: 0 0 0 2px rgba(255, 59, 48, 0.2);\n }\n `;\n\n private _handleInput(e: Event): void {\n const target = e.target as HTMLInputElement;\n this.value = target.value;\n this.dispatchEvent(\n new CustomEvent(\"input-change\", {\n detail: { value: this.value, name: this.name },\n bubbles: true,\n })\n );\n }\n\n private _handleFocus(): void {\n this._focused = true;\n this.dispatchEvent(new CustomEvent(\"input-focus\", { bubbles: true }));\n }\n\n private _handleBlur(): void {\n this._focused = false;\n this.dispatchEvent(new CustomEvent(\"input-blur\", { bubbles: true }));\n }\n\n /**\n * Focus the input element\n */\n focus(): void {\n const input = this.shadowRoot?.querySelector(\"input\");\n input?.focus();\n }\n\n /**\n * Blur the input element\n */\n blur(): void {\n const input = this.shadowRoot?.querySelector(\"input\");\n input?.blur();\n }\n\n /**\n * Select all text in the input\n */\n select(): void {\n const input = this.shadowRoot?.querySelector(\"input\");\n input?.select();\n }\n\n render() {\n const hasError = Boolean(this.error || this.errorText);\n\n return html`\n <div class=\"input-wrapper\">\n ${this.label || this.labelText\n ? html`\n <label for=\"input\">\n ${this.labelText\n ? html`<ds-text .text=${this.labelText}></ds-text>`\n : this.label}\n </label>\n `\n : null}\n\n <div class=\"input-container\">\n <input\n id=\"input\"\n .type=${this.type}\n .name=${this.name}\n .value=${this.value}\n .placeholder=${this.placeholder}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n ?autofocus=${this.autofocus}\n autocomplete=${this.autocomplete}\n pattern=${this.pattern || \"\"}\n minlength=${this.minlength || \"\"}\n maxlength=${this.maxlength || \"\"}\n min=${this.min}\n max=${this.max}\n step=${this.step}\n class=${hasError ? \"has-error\" : \"\"}\n @input=${this._handleInput}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n />\n </div>\n\n ${hasError\n ? html`\n <div class=\"error-message\">\n ${this.errorText\n ? html`<ds-text .text=${this.errorText}></ds-text>`\n : this.error}\n </div>\n `\n : null}\n </div>\n `;\n }\n}\n\ncustomElements.define(\"ds-input\", Input);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-input\": Input;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { translate } from \"../0-face/i18n\";\nimport styles from \"./styles/ds-tooltip.css?inline\";\n\nexport class Tooltip extends LitElement {\n static properties = {\n text: { type: String, reflect: true },\n defaultValue: { type: String, reflect: true, attribute: \"default-value\" },\n _text: { state: true },\n _visible: { state: true },\n };\n\n declare text: string;\n declare defaultValue: string;\n private _text: string;\n private _visible: boolean;\n\n private boundWindowHandlers: {\n languageChanged: EventListener;\n translationsLoaded: EventListener;\n };\n private boundHostHandlers: {\n mouseenter: EventListener;\n mouseleave: EventListener;\n focusin: EventListener;\n focusout: EventListener;\n };\n\n constructor() {\n super();\n this.text = \"\";\n this.defaultValue = \"\";\n this._text = \"\";\n this._visible = false;\n\n this.boundWindowHandlers = {\n languageChanged: (() => {\n this._loadText();\n }) as EventListener,\n translationsLoaded: (() => {\n this._loadText();\n }) as EventListener,\n };\n\n this.boundHostHandlers = {\n mouseenter: (() => {\n this._visible = true;\n this.requestUpdate();\n }) as EventListener,\n mouseleave: (() => {\n this._visible = false;\n this.requestUpdate();\n }) as EventListener,\n focusin: (() => {\n this._visible = true;\n this.requestUpdate();\n }) as EventListener,\n focusout: (() => {\n this._visible = false;\n this.requestUpdate();\n }) as EventListener,\n };\n }\n\n static styles = unsafeCSS(styles);\n\n connectedCallback(): void {\n super.connectedCallback();\n this._loadText();\n\n window.addEventListener(\n \"language-changed\",\n this.boundWindowHandlers.languageChanged\n );\n window.addEventListener(\n \"translations-loaded\",\n this.boundWindowHandlers.translationsLoaded\n );\n\n this.addEventListener(\"mouseenter\", this.boundHostHandlers.mouseenter);\n this.addEventListener(\"mouseleave\", this.boundHostHandlers.mouseleave);\n this.addEventListener(\"focusin\", this.boundHostHandlers.focusin);\n this.addEventListener(\"focusout\", this.boundHostHandlers.focusout);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener(\n \"language-changed\",\n this.boundWindowHandlers.languageChanged\n );\n window.removeEventListener(\n \"translations-loaded\",\n this.boundWindowHandlers.translationsLoaded\n );\n\n this.removeEventListener(\"mouseenter\", this.boundHostHandlers.mouseenter);\n this.removeEventListener(\"mouseleave\", this.boundHostHandlers.mouseleave);\n this.removeEventListener(\"focusin\", this.boundHostHandlers.focusin);\n this.removeEventListener(\"focusout\", this.boundHostHandlers.focusout);\n }\n\n updated(changed: Map<string, unknown>): void {\n if (changed.has(\"text\") || changed.has(\"defaultValue\")) {\n this._loadText();\n }\n }\n\n _loadText(): void {\n if (!this.text) {\n this._text = this.defaultValue || \"\";\n this.requestUpdate();\n return;\n }\n\n try {\n const t = translate(this.text);\n this._text = t && t !== this.text ? t : this.defaultValue || this.text;\n } catch (err) {\n console.error(\"ds-tooltip: error loading text for text\", this.text, err);\n this._text = this.defaultValue || this.text;\n }\n this.requestUpdate();\n }\n\n render() {\n const bubbleClasses = [\"bubble\", this._visible ? \"visible\" : \"\"].join(\" \");\n\n return html`\n <span class=\"slot-wrapper\"><slot></slot></span>\n ${this._text\n ? html`<div class=\"${bubbleClasses}\">${this._text}</div>`\n : null}\n `;\n }\n}\n\ncustomElements.define(\"ds-tooltip\", Tooltip);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-tooltip\": Tooltip;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-row.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Row extends LitElement {\n static properties = {\n type: { type: String, reflect: true },\n };\n\n declare type: \"fill\" | \"centered\";\n\n constructor() {\n super();\n this.type = \"fill\";\n }\n\n static styles = unsafeCSS(styles);\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ncustomElements.define(\"ds-row\", Row);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-row\": Row;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport \"../2-core/ds-text\";\nimport \"../2-core/ds-icon\";\nimport \"./ds-row\";\nimport styles from \"./styles/ds-accordion.css?inline\";\n\n/**\n * Native accordion using <details>/<summary> (no JS toggle logic).\n *\n * Usage (with translation text):\n * <ds-accordion summary=\"How it began\" details=\"Designed in Hokkaido\"></ds-accordion>\n *\n * Usage (with slotted details content):\n * <ds-accordion summary=\"How it began\">\n * <div slot=\"details\">Rich HTML content here</div>\n * </ds-accordion>\n */\nexport class Accordion extends LitElement {\n static properties = {\n summary: { type: String },\n details: { type: String },\n open: { type: Boolean, reflect: true },\n _hasSlottedContent: { type: Boolean, state: true },\n };\n\n declare summary: string;\n declare details: string;\n declare open: boolean;\n declare _hasSlottedContent: boolean;\n\n constructor() {\n super();\n this.summary = \"\";\n this.details = \"\";\n this.open = false;\n this._hasSlottedContent = false;\n }\n\n static styles = unsafeCSS(styles);\n\n private _handleSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n const assignedNodes = slot.assignedNodes({ flatten: true });\n // Filter out empty text nodes (whitespace only)\n const hasContent = assignedNodes.some(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim())\n );\n this._hasSlottedContent = hasContent;\n }\n\n render() {\n return html`\n <details ?open=${this.open}>\n <summary>\n <ds-row class=\"summaryRow\" type=\"centered\">\n <ds-text .text=${this.summary}></ds-text>\n <ds-icon class=\"chevron\" aria-hidden=\"true\">\n <svg\n viewBox=\"0 0 10.157 8.219\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M5.078 8.219L0 3.141L1.414 1.727L5.078 5.391L8.743 1.727L10.157 3.141L5.078 8.219Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ds-icon>\n </ds-row>\n </summary>\n\n <div class=\"detailsBody\">\n <slot name=\"details\" @slotchange=${this._handleSlotChange}></slot>\n ${!this._hasSlottedContent\n ? html`<ds-text\n class=\"detailsText\"\n .text=${this.details}\n ></ds-text>`\n : \"\"}\n </div>\n </details>\n `;\n }\n}\n\ncustomElements.define(\"ds-accordion\", Accordion);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-accordion\": Accordion;\n }\n}\n","// ds-form.ts\n// Form component for handling form submissions and validation\n\nimport { LitElement, html, css } from \"lit\";\n\nexport interface FormData {\n [key: string]: string | number | boolean | null;\n}\n\nexport interface FormValidationResult {\n valid: boolean;\n errors: { [key: string]: string };\n}\n\nexport class Form extends LitElement {\n static properties = {\n action: { type: String },\n method: { type: String },\n name: { type: String },\n novalidate: { type: Boolean, reflect: true },\n autocomplete: { type: String },\n _isSubmitting: { type: Boolean, state: true },\n };\n\n declare action: string;\n declare method: \"get\" | \"post\";\n declare name: string;\n declare novalidate: boolean;\n declare autocomplete: \"on\" | \"off\";\n declare _isSubmitting: boolean;\n\n constructor() {\n super();\n this.action = \"\";\n this.method = \"post\";\n this.name = \"\";\n this.novalidate = false;\n this.autocomplete = \"on\";\n this._isSubmitting = false;\n }\n\n static styles = css`\n :host {\n display: block;\n width: 100%;\n }\n\n form {\n display: flex;\n flex-direction: column;\n gap: calc(var(--05) * var(--sf, 1));\n width: 100%;\n }\n\n ::slotted(*) {\n width: 100%;\n }\n\n :host([disabled]) {\n opacity: 0.6;\n pointer-events: none;\n }\n `;\n\n /**\n * Get all form data as an object\n */\n getFormData(): FormData {\n const data: FormData = {};\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const elements = slot?.assignedElements({ flatten: true }) || [];\n\n for (const element of elements) {\n this._collectFormData(element as HTMLElement, data);\n }\n\n return data;\n }\n\n private _collectFormData(element: HTMLElement, data: FormData): void {\n // Check if element has name and value properties\n const name = element.getAttribute(\"name\") || (element as any).name;\n if (name) {\n const value = (element as any).value;\n if (value !== undefined) {\n // Handle checkboxes and radio buttons\n if (\n element instanceof HTMLInputElement &&\n (element.type === \"checkbox\" || element.type === \"radio\")\n ) {\n if (element.type === \"checkbox\") {\n data[name] = element.checked;\n } else if (element.type === \"radio\" && element.checked) {\n data[name] = value;\n }\n } else {\n data[name] = value;\n }\n }\n }\n\n // Recursively check children\n const children =\n element.shadowRoot?.querySelectorAll(\"*\") || element.querySelectorAll(\"*\");\n children.forEach((child) => {\n this._collectFormData(child as HTMLElement, data);\n });\n }\n\n /**\n * Validate the form\n */\n validate(): FormValidationResult {\n const result: FormValidationResult = {\n valid: true,\n errors: {},\n };\n\n if (this.novalidate) {\n return result;\n }\n\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const elements = slot?.assignedElements({ flatten: true }) || [];\n\n for (const element of elements) {\n this._validateElement(element as HTMLElement, result);\n }\n\n return result;\n }\n\n private _validateElement(\n element: HTMLElement,\n result: FormValidationResult\n ): void {\n const name = element.getAttribute(\"name\") || (element as any).name;\n\n // Check for custom validation on ds-input elements\n if (element.tagName.toLowerCase() === \"ds-input\") {\n const input = element as any;\n if (input.required && !input.value) {\n result.valid = false;\n result.errors[name || \"unknown\"] = \"This field is required\";\n }\n }\n\n // Check native form elements\n if (\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement ||\n element instanceof HTMLSelectElement\n ) {\n if (!element.checkValidity()) {\n result.valid = false;\n result.errors[name || \"unknown\"] = element.validationMessage;\n }\n }\n\n // Recursively check children\n const children =\n element.shadowRoot?.querySelectorAll(\"*\") || element.querySelectorAll(\"*\");\n children.forEach((child) => {\n this._validateElement(child as HTMLElement, result);\n });\n }\n\n /**\n * Reset the form\n */\n reset(): void {\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const elements = slot?.assignedElements({ flatten: true }) || [];\n\n for (const element of elements) {\n this._resetElement(element as HTMLElement);\n }\n\n this.dispatchEvent(new CustomEvent(\"form-reset\", { bubbles: true }));\n }\n\n private _resetElement(element: HTMLElement): void {\n if (\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement ||\n element instanceof HTMLSelectElement\n ) {\n if (element instanceof HTMLInputElement && element.type === \"checkbox\") {\n element.checked = false;\n } else {\n element.value = \"\";\n }\n }\n\n // Handle ds-input elements\n if (element.tagName.toLowerCase() === \"ds-input\") {\n (element as any).value = \"\";\n }\n\n // Recursively reset children\n const children =\n element.shadowRoot?.querySelectorAll(\"*\") || element.querySelectorAll(\"*\");\n children.forEach((child) => {\n this._resetElement(child as HTMLElement);\n });\n }\n\n /**\n * Submit the form\n */\n async submit(): Promise<void> {\n if (this._isSubmitting) return;\n\n const validationResult = this.validate();\n if (!validationResult.valid) {\n this.dispatchEvent(\n new CustomEvent(\"form-invalid\", {\n detail: validationResult.errors,\n bubbles: true,\n })\n );\n return;\n }\n\n this._isSubmitting = true;\n const formData = this.getFormData();\n\n this.dispatchEvent(\n new CustomEvent(\"form-submit\", {\n detail: { data: formData },\n bubbles: true,\n })\n );\n\n // If action is provided, submit to the server\n if (this.action) {\n try {\n const response = await fetch(this.action, {\n method: this.method.toUpperCase(),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(formData),\n });\n\n this.dispatchEvent(\n new CustomEvent(\"form-response\", {\n detail: { response, data: formData },\n bubbles: true,\n })\n );\n } catch (error) {\n this.dispatchEvent(\n new CustomEvent(\"form-error\", {\n detail: { error, data: formData },\n bubbles: true,\n })\n );\n }\n }\n\n this._isSubmitting = false;\n }\n\n private _handleSubmit(e: Event): void {\n e.preventDefault();\n this.submit();\n }\n\n private _handleKeydown(e: KeyboardEvent): void {\n if (e.key === \"Enter\" && !e.shiftKey) {\n const target = e.target as HTMLElement;\n // Don't submit if in a textarea\n if (target.tagName.toLowerCase() !== \"textarea\") {\n e.preventDefault();\n this.submit();\n }\n }\n }\n\n render() {\n return html`\n <form\n .action=${this.action}\n .method=${this.method}\n .name=${this.name}\n ?novalidate=${this.novalidate}\n autocomplete=${this.autocomplete}\n @submit=${this._handleSubmit}\n @keydown=${this._handleKeydown}\n >\n <slot></slot>\n </form>\n `;\n }\n}\n\ncustomElements.define(\"ds-form\", Form);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-form\": Form;\n }\n}\n","// ds-list.ts\n// Unit component that\n// can be used to show a list of items consisting of components from core\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-list.css?inline\";\n\nexport class List extends LitElement {\n static styles = unsafeCSS(styles);\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ncustomElements.define(\"ds-list\", List);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-list\": List;\n }\n}\n\n","// ds-table.ts\n// Data table component\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-table.css?inline\";\n\nexport interface TableRow {\n product: string;\n users: string;\n retention: string;\n status?: string;\n}\n\nexport class DsTable extends LitElement {\n static properties = {\n data: { type: Array },\n columns: { type: Array },\n showStatus: { type: Boolean, attribute: \"show-status\" },\n };\n\n declare data: TableRow[];\n declare columns: string[];\n declare showStatus: boolean;\n\n constructor() {\n super();\n this.data = [];\n this.columns = [\"Product\", \"Users\", \"Retention\"];\n this.showStatus = true;\n }\n\n static styles = unsafeCSS(styles);\n\n render() {\n return html`\n <div class=\"table-container\">\n <div class=\"table-header\">\n <div class=\"header-cell product-cell\">Product</div>\n <div class=\"header-cell users-cell\">Users</div>\n <div class=\"header-cell retention-cell\">Retention</div>\n ${this.showStatus ? html`<div class=\"header-cell\">Status</div>` : \"\"}\n </div>\n <div class=\"table-body\">\n ${this.data.map(\n (row, rowIndex) => html`\n <div class=\"data-cell product-cell\">${row.product}</div>\n <div class=\"data-cell users-cell\">${row.users}</div>\n <div class=\"data-cell retention-cell\">${row.retention}</div>\n ${this.showStatus\n ? html`<div class=\"data-cell status-cell\">\n ${row.status || \"Pending\"}\n </div>`\n : \"\"}\n `\n )}\n </div>\n </div>\n `;\n }\n}\n\ncustomElements.define(\"ds-table\", DsTable);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-table\": DsTable;\n }\n}\n","// ds-container.ts\n// Container component with responsive width constraints\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-container.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Container extends LitElement {\n static styles = unsafeCSS(styles);\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ncustomElements.define(\"ds-container\", Container);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-container\": Container;\n }\n}\n","// ds-grid.ts\n// Simple grid layout component\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport { detectMobileDevice } from \"../0-face/device\";\nimport styles from \"./styles/ds-grid.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Grid extends LitElement {\n static properties = {\n align: { type: String },\n };\n\n align?: string;\n private resizeObserver?: () => void;\n private resizeTimeout?: any;\n\n static styles = unsafeCSS(styles);\n\n connectedCallback() {\n super.connectedCallback();\n this.updateMobileClass();\n\n // Listen for resize events to update mobile class\n this.resizeObserver = () => {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n this.resizeTimeout = setTimeout(() => {\n this.updateMobileClass();\n }, 100);\n };\n window.addEventListener(\"resize\", this.resizeObserver);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this.resizeObserver) {\n window.removeEventListener(\"resize\", this.resizeObserver);\n }\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n }\n\n private updateMobileClass() {\n const isMobile = detectMobileDevice();\n if (isMobile) {\n this.classList.add(\"mobile\");\n this.classList.remove(\"desktop\");\n } else {\n this.classList.add(\"desktop\");\n this.classList.remove(\"mobile\");\n }\n }\n\n render() {\n return html``;\n }\n}\n\ncustomElements.define(\"ds-grid\", Grid);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-grid\": Grid;\n }\n}\n","// ds-layout.ts\n// Simple grid layout component with view mode\n\nimport { LitElement, html, css, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-layout.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Layout extends LitElement {\n static properties = {\n mode: { type: String },\n align: { type: String },\n view: { type: Boolean },\n };\n\n mode: string = \"portfolio\";\n align?: string;\n view?: boolean;\n\n static styles = [\n unsafeCSS(styles),\n css`\n :host {\n display: grid;\n position: relative;\n width: 100%;\n }\n\n slot {\n display: contents;\n }\n\n :host([mode=\"portfolio\"]) {\n --portfolio-cols: 120px 480px 40px;\n --portfolio-rows: 120px 120px 60px 180px 60px 120px 60px 20px 120px 120px;\n --portfolio-areas: \"square . .\" \". title .\" \". header .\" \". projects .\"\n \". . .\" \". bio .\" \". . .\" \". nav .\" \". . .\" \". footer .\" \". . .\";\n --portfolio-overlay-cols: 120px 480px;\n --portfolio-overlay-areas: \"square .\" \". title\" \". header\" \". projects\"\n \". .\" \". bio\" \". .\" \". nav\" \". .\" \". footer\" \". .\";\n grid-template-columns: var(--portfolio-cols);\n grid-template-rows: var(--portfolio-rows);\n grid-template-areas: var(--portfolio-areas);\n min-height: 600px;\n background-color: rgba(165, 165, 165, 0.03);\n max-width: 640px;\n margin: 0;\n }\n\n :host([mode=\"portfolio\"]) .view-overlay {\n grid-template-columns: var(--portfolio-overlay-cols);\n grid-template-rows: var(--portfolio-rows);\n grid-template-areas: var(--portfolio-overlay-areas);\n }\n\n :host([mode=\"company\"]) {\n --company-cols: auto 400px auto;\n --company-rows: 80px 20px 20px 120px 20px 120px;\n --company-areas: \". . .\" \". header .\" \". . .\" \". content .\" \". . .\"\n \". footer .\";\n grid-template-columns: var(--company-cols);\n grid-template-rows: var(--company-rows);\n grid-template-areas: var(--company-areas);\n gap: 0;\n max-width: 100%;\n }\n\n :host([mode=\"company\"]) .view-overlay {\n grid-template-columns: var(--company-cols);\n grid-template-rows: var(--company-rows);\n grid-template-areas: var(--company-areas);\n gap: 0;\n }\n\n :host([align=\"left\"]),\n :host([mode=\"portfolio\"][align=\"left\"]),\n :host([mode=\"company\"][align=\"left\"]),\n :host([mode=\"app\"][align=\"left\"]),\n :host([mode=\"list\"][align=\"left\"]),\n :host([mode=\"home\"][align=\"left\"]) {\n margin: 0;\n justify-self: start;\n }\n\n :host([align=\"center\"]),\n :host([mode=\"portfolio\"][align=\"center\"]),\n :host([mode=\"company\"][align=\"center\"]),\n :host([mode=\"app\"][align=\"center\"]),\n :host([mode=\"list\"][align=\"center\"]),\n :host([mode=\"home\"][align=\"center\"]) {\n margin: 0 auto;\n justify-self: center;\n }\n\n :host([align=\"right\"]),\n :host([mode=\"portfolio\"][align=\"right\"]),\n :host([mode=\"company\"][align=\"right\"]),\n :host([mode=\"app\"][align=\"right\"]),\n :host([mode=\"list\"][align=\"right\"]),\n :host([mode=\"home\"][align=\"right\"]) {\n margin: 0 0 0 auto;\n justify-self: end;\n }\n\n /* App mode - Base */\n :host([mode=\"app\"]) {\n --app-cols: 100%;\n --app-overlay-cols: 100%;\n grid-template-columns: var(--app-cols);\n grid-template-rows: var(--app-layout);\n grid-template-areas: var(--app-layout-areas);\n min-height: 100vh;\n background-color: transparent;\n width: calc(240px * var(--sf, 1));\n max-width: calc(240px * var(--sf, 1));\n margin: 0 auto;\n }\n\n :host([mode=\"app\"]) .view-overlay {\n grid-template-columns: var(--app-overlay-cols);\n grid-template-rows: var(--app-layout);\n grid-template-areas: var(--app-layout-areas);\n }\n\n /* List mode - Base */\n :host([mode=\"list\"]) {\n --list-cols: 100%;\n --list-rows: calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))\n calc(var(--unit) * var(--sf)) calc(var(--twenty) * var(--sf));\n --list-areas: \"banner\" \".\" \"header\" \"board\";\n --list-overlay-cols: 100%;\n --list-overlay-rows: calc(var(--unit) * var(--sf))\n calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))\n calc(var(--twenty) * var(--sf));\n --list-overlay-areas: \"banner\" \".\" \"header\" \"board\";\n grid-template-columns: var(--list-cols);\n grid-template-rows: var(--list-rows);\n grid-template-areas: var(--list-areas);\n min-height: 100vh;\n background-color: transparent;\n width: calc(240px * var(--sf, 1));\n max-width: calc(240px * var(--sf, 1));\n margin: 0 auto;\n }\n\n :host([mode=\"list\"]) .view-overlay {\n grid-template-columns: var(--list-overlay-cols);\n grid-template-rows: var(--list-overlay-rows);\n grid-template-areas: var(--list-overlay-areas);\n }\n\n /* Home mode - Base */\n :host([mode=\"home\"]) {\n --home-cols: 100%;\n --home-areas: \"banner\" \".\" \"header\" \".\" \"message\" \"lists\" \".\" \"footer\";\n --home-overlay-cols: 100%;\n --home-overlay-areas: \"banner\" \".\" \"header\" \".\" \"message\" \"lists\" \".\"\n \"footer\";\n grid-template-columns: var(--home-cols);\n grid-template-rows: var(--home-layout);\n grid-template-areas: var(--home-areas);\n min-height: 100vh;\n background-color: transparent;\n width: calc(240px * var(--sf, 1));\n max-width: calc(240px * var(--sf, 1));\n margin: 0 auto;\n }\n\n :host([mode=\"home\"]) .view-overlay {\n grid-template-columns: var(--home-overlay-cols);\n grid-template-rows: var(--home-layout);\n grid-template-areas: var(--home-overlay-areas);\n }\n\n .view-overlay {\n position: absolute;\n margin-left: -1px;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: 1000;\n display: grid;\n }\n\n .view-area {\n display: flex;\n width: calc(240px * var(--sf, 1));\n height: 100%;\n align-items: center;\n justify-content: center;\n font-family: var(--typeface-regular);\n font-size: calc(var(--type-size-default) * var(--05));\n color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n background-color: color-mix(\n in srgb,\n var(--accent-color) 25%,\n transparent\n );\n opacity: 1;\n position: relative;\n }\n\n .grid-area-label {\n position: absolute;\n top: calc(-20px * var(--sf, 1));\n left: 0;\n height: calc(20px * var(--sf, 1));\n width: fit-content;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0 calc(4px * var(--sf, 1));\n border-radius: calc(2px * var(--sf, 1));\n z-index: 10000;\n pointer-events: none;\n white-space: nowrap;\n }\n\n /* Banner label stays inside the area (first item) */\n :host([mode=\"app\"]) .view-area.view-banner .grid-area-label,\n :host([mode=\"list\"]) .view-area.view-banner .grid-area-label,\n :host([mode=\"home\"]) .view-area.view-banner .grid-area-label,\n :host([mode=\"company\"]) .view-area.view-header .grid-area-label,\n :host([mode=\"portfolio\"]) .view-area.view-square .grid-area-label {\n top: 0;\n }\n\n .grid-area-label ds-text {\n font-size: calc(11px * var(--sf, 1));\n line-height: 1;\n color: white;\n text-transform: lowercase;\n }\n\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(2) {\n border-color: var(--sharp-blue);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(3) {\n border-color: var(--yellow);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(4) {\n border-color: var(--apple-green);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(5) {\n border-color: var(--pink);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(5) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--pink) 70%, black) 0%,\n color-mix(in srgb, var(--pink) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(6) {\n border-color: var(--orange);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(6) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--orange) 70%, black) 0%,\n color-mix(in srgb, var(--orange) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(7) {\n border-color: var(--zenith-blue);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(7) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--zenith-blue) 70%, black) 0%,\n color-mix(in srgb, var(--zenith-blue) 70%, black) 100%\n );\n }\n\n :host([mode=\"company\"]) .view-area:nth-of-type(1) {\n border-color: var(--tuned-red);\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(2) {\n border-color: var(--sharp-blue);\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(3) {\n border-color: var(--yellow);\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n\n :host([mode=\"app\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(2) {\n background-color: color-mix(in srgb, var(--sharp-blue) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(3) {\n background-color: color-mix(in srgb, var(--yellow) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(4) {\n background-color: color-mix(in srgb, var(--apple-green) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(5) {\n background-color: color-mix(in srgb, var(--pink) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(5) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--pink) 70%, black) 0%,\n color-mix(in srgb, var(--pink) 70%, black) 100%\n );\n }\n\n :host([mode=\"list\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(2) {\n background-color: color-mix(in srgb, var(--sharp-blue) 25%, transparent);\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(3) {\n background-color: color-mix(in srgb, var(--yellow) 25%, transparent);\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(4) {\n background-color: color-mix(in srgb, var(--apple-green) 25%, transparent);\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n\n :host([mode=\"home\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(2) {\n background-color: color-mix(in srgb, var(--sharp-blue) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(3) {\n background-color: color-mix(in srgb, var(--yellow) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(4) {\n background-color: color-mix(in srgb, var(--apple-green) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(5) {\n background-color: color-mix(in srgb, var(--pink) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(5) .grid-area-label {\n background-image:\n linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--pink) 70%, black) 0%,\n color-mix(in srgb, var(--pink) 70%, black) 100%\n );\n }\n\n .view-square {\n grid-area: square;\n }\n\n .view-title {\n grid-area: title;\n }\n\n .view-header {\n grid-area: header;\n }\n\n .view-projects {\n grid-area: projects;\n }\n\n .view-bio {\n grid-area: bio;\n }\n\n .view-nav {\n grid-area: nav;\n }\n\n .view-footer {\n grid-area: footer;\n }\n\n .view-content {\n grid-area: content;\n }\n\n .view-banner {\n grid-area: banner;\n }\n\n .view-main {\n grid-area: main;\n }\n\n .view-page-dots {\n grid-area: page-dots;\n }\n\n .view-board {\n grid-area: board;\n }\n\n .view-message {\n grid-area: message;\n }\n\n .view-lists {\n grid-area: lists;\n }\n `\n ];\n\n render() {\n const isView = this.view || this.mode === \"view\";\n const isPortfolio = this.mode === \"portfolio\";\n const isCompany = this.mode === \"company\";\n const isApp = this.mode === \"app\";\n const isList = this.mode === \"list\";\n const isHome = this.mode === \"home\";\n\n return html`\n <slot></slot>\n ${isView\n ? html`\n <div class=\"view-overlay\">\n ${isHome\n ? html`\n <div class=\"view-area view-banner\">\n <div class=\"grid-area-label\">\n <ds-text key=\"banner\" default-value=\"banner\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text key=\"header\" default-value=\"header\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-message\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"message\"\n default-value=\"message\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-lists\">\n <div class=\"grid-area-label\">\n <ds-text key=\"lists\" default-value=\"lists\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text key=\"footer\" default-value=\"footer\"></ds-text>\n </div>\n </div>\n `\n : isList\n ? html`\n <div class=\"view-area view-banner\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"banner\"\n default-value=\"banner\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"header\"\n default-value=\"header\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-board\">\n <div class=\"grid-area-label\">\n <ds-text key=\"board\" default-value=\"board\"></ds-text>\n </div>\n </div>\n `\n : isApp\n ? html`\n <div class=\"view-area view-banner\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"banner\"\n default-value=\"banner\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"header\"\n default-value=\"header\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-main\">\n <div class=\"grid-area-label\">\n <ds-text key=\"main\" default-value=\"main\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-page-dots\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"pageDots\"\n default-value=\"page-dots\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"footer\"\n default-value=\"footer\"\n ></ds-text>\n </div>\n </div>\n `\n : isCompany\n ? html`\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"header\"\n default-value=\"header\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-content\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"content\"\n default-value=\"content\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"footer\"\n default-value=\"footer\"\n ></ds-text>\n </div>\n </div>\n `\n : isPortfolio\n ? html`\n <div class=\"view-area view-square\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"square\"\n default-value=\"square\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-title\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"title\"\n default-value=\"title\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"header\"\n default-value=\"header\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-projects\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"projects\"\n default-value=\"projects\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-bio\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"bio\"\n default-value=\"bio\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-nav\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"nav\"\n default-value=\"nav\"\n ></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text\n key=\"footer\"\n default-value=\"footer\"\n ></ds-text>\n </div>\n </div>\n `\n : \"\"}\n </div>\n `\n : \"\"}\n `;\n }\n}\n\ncustomElements.define(\"ds-layout\", Layout);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-layout\": Layout;\n }\n}\n"],"names":["__defProp","__defNormalProp","obj","key","value","__publicField","__accessCheck","member","msg","__privateIn","__privateAdd","__privateMethod","method","defaultEquals","a","b","activeConsumer","inNotificationPhase","epoch","SIGNAL","setActiveConsumer","consumer","prev","getActiveConsumer","isInNotificationPhase","REACTIVE_NODE","producerAccessed","node","idx","assertConsumerNode","consumerIsLive","staleProducer","producerRemoveLiveConsumerAtIndex","producerAddLiveConsumer","producerIncrementEpoch","producerUpdateValueVersion","consumerPollProducersForChange","producerNotifyConsumers","consumerMarkDirty","producerUpdatesAllowed","_a","consumerBeforeComputation","consumerAfterComputation","prevConsumer","i","producer","seenVersion","indexOfThis","assertProducerNode","lastIdx","idxProducer","computedGet","ERRORED","createComputed","computation","COMPUTED_NODE","computed","UNSET","COMPUTING","oldValue","newValue","wasEqual","err","defaultThrowError","throwInvalidWriteToSignalErrorFn","throwInvalidWriteToSignalError","createSignal","initialValue","SIGNAL_NODE","getter","signalGetFn","signalSetFn","signalValueChanged","NODE","Signal","Signal2","_brand","_b","_brand2","State","options","equals","ref","s","Computed","c","subtle2","_a2","_brand3","_assertSignals","assertSignals_fn","untrack","cb","output","prevActiveConsumer","introspectSources","sink","_a3","n","introspectSinks","signal","hasSinks","liveConsumerNode","hasSources","producerNode","Watcher","notify","signals","idxConsumer","w","currentComputed","t","e","i$4","h","o","r","l","u","d","f","v","_","m","p","g","$","y","x","T","E","A","C","P","V","N","H","I","L","k","S","M","R","z","j","B","defaultScalingConfig","scalingFactor","scalingConfig","detectMobileDevice","nav","win","ua","uaMatchesMobile","isTouchCapable","narrowViewport","getDeviceInfo","isMobile","screenWidth","screenHeight","isTablet","calculateScalingFactor","viewportWidth","config","rawScale","clampedScale","setScalingConfig","newConfig","updateScalingFactor","newFactor","getScalingFactor","scale","designPx","unscale","scaledPx","factor","initDeviceDetection","deviceInfo","resizeTimeout","applike","viewport","style","existingStyle","lastTouchEnd","touchStartTime","preventZoom","event","now","translationKeys","LANGUAGE_PRIORITY_ORDER","LANGUAGE_PRIORITY_LOOKUP","code","index","FALLBACK_LANGUAGE_NAMES","DISPLAY_NAME_CACHE","displayNameFallbackWarningShown","DEFAULT_TRANSLATION_FILE","loadAttempted","normalizeCandidate","path","trimmed","findAttributeCandidate","scriptCandidate","metaCandidate","linkCandidate","resolveTranslationSources","candidates","windowCandidate","attributeCandidate","windowNormalized","attrNormalized","validateTranslationMap","candidate","entry","fetchTranslationFile","source","response","translations","loadExternalTranslations","sources","languages","getTranslationData","translationData","defaultLanguage","extractPrimarySubtag","getLanguagePriority","primary","priority","sortLanguageCodes","codes","priorityA","priorityB","getDisplayNameForLocale","locale","normalizedLocale","displayNames","cleanedCode","fullMatch","baseMatch","getFallbackDisplayName","normalized","direct","getLanguageDisplayName","localesToTry","tried","displayName","fallback","BROWSER_LANGUAGE_PREFERENCES","resolvePreferredLanguage","languageTag","directMatch","primaryMatch","getBrowserLanguage","browserLang","resolved","currentLanguage","lang","currentLang","translate","hasTranslation","language","langData","getText","getAvailableLanguages","currentData","getAvailableLanguagesSync","loadTranslations","setLanguage","savePreferences","preferences","raw","next","error","PRICE_LABELS","getPriceLabel","country","countryUpper","primaryLang","getInitialTheme","storedTheme","currentTheme","setTheme","theme","root","n$1","_Text","LitElement","changedProperties","parts","hasHans","hasHant","translatedText","html","unsafeCSS","styles","Text","_Button","hasTextProps","Button","_Banner","subject","describe","appVersionLabel","body","mailtoHref","Banner","_Card","css","Card","__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","__vite_glob_0_4","__vite_glob_0_5","__vite_glob_0_6","__vite_glob_0_7","__vite_glob_0_8","__vite_glob_0_9","__vite_glob_0_10","__vite_glob_0_11","__vite_glob_0_12","__vite_glob_0_13","__vite_glob_0_14","__vite_glob_0_15","__vite_glob_0_16","__vite_glob_0_17","__vite_glob_0_18","__vite_glob_0_19","__vite_glob_0_20","__vite_glob_0_21","__vite_glob_0_22","__vite_glob_0_23","__vite_glob_0_24","__vite_glob_0_25","__vite_glob_0_26","__vite_glob_0_27","__vite_glob_0_28","__vite_glob_0_29","__vite_glob_0_30","__vite_glob_0_31","__vite_glob_0_32","__vite_glob_0_33","__vite_glob_0_34","__vite_glob_0_35","__vite_glob_0_36","__vite_glob_0_37","__vite_glob_0_38","__vite_glob_0_39","__vite_glob_0_40","__vite_glob_0_41","__vite_glob_0_42","__vite_glob_0_43","__vite_glob_0_44","__vite_glob_0_45","__vite_glob_0_46","__vite_glob_0_47","__vite_glob_0_48","__vite_glob_0_49","__vite_glob_0_50","__vite_glob_0_51","__vite_glob_0_52","__vite_glob_0_53","__vite_glob_0_54","__vite_glob_0_55","__vite_glob_0_56","__vite_glob_0_57","__vite_glob_0_58","__vite_glob_0_59","__vite_glob_0_60","__vite_glob_0_61","__vite_glob_0_62","__vite_glob_0_63","__vite_glob_0_64","_Icon","val","oldVal","svgFromSet","unsafeHTML","modules","map","content","baseName","Icon","saveAccentColor","color","getAccentColor","applyAccentColor","saveNotesStyleMedium","getNotesStyleMedium","savePageStyle","getPageStyle","_Cycle","availableLanguages","currentThemeValue","currentAccentColor","currentNotesStyle","currentPageStyle","defaultTheme","name","nextIndex","newLanguage","newTheme","newColor","newStyle","newBehavior","newIconOnlyValue","translatedName","colorVar","translationText","resolve","handleTranslationsLoaded","Cycle","_DateComponent","year","DateComponent","_Gap","Gap","_Input","target","hasError","Input","_Tooltip","changed","bubbleClasses","Tooltip","_Row","Row","_Accordion","hasContent","Accordion","_Form","data","elements","element","child","result","input","validationResult","formData","Form","_List","List","_DsTable","row","rowIndex","DsTable","_Container","Container","_Grid","Grid","_Layout","isView","isPortfolio","isCompany","isApp","isList","isHome","Layout"],"mappings":"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GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA,GCAfC,KAAe;AAAA;AAAA;AAAA;ACCf;AAAA;AAAA;AAAA;AAAA;AAIG,MAAMrQ,WAAUI,GAAC;AAAA,EAAC,YAAYxE,GAAE;AAAC,QAAG,MAAMA,CAAC,GAAE,KAAK,KAAGmE,GAAEnE,EAAE,SAAOuC,GAAE,MAAM,OAAM,MAAM,KAAK,YAAY,gBAAc,uCAAuC;AAAA,EAAC;AAAA,EAAC,OAAOiC,GAAE;AAAC,QAAGA,MAAIL,KAASK,KAAN,KAAQ,QAAO,KAAK,KAAG,QAAO,KAAK,KAAGA;AAAE,QAAGA,MAAIxE,EAAE,QAAOwE;AAAE,QAAa,OAAOA,KAAjB,SAAmB,OAAM,MAAM,KAAK,YAAY,gBAAc,mCAAmC;AAAE,QAAGA,MAAI,KAAK,GAAG,QAAO,KAAK;AAAG,SAAK,KAAGA;AAAE,UAAMjC,IAAE,CAACiC,CAAC;AAAE,WAAOjC,EAAE,MAAIA,GAAE,KAAK,KAAG,EAAC,YAAW,KAAK,YAAY,YAAW,SAAQA,GAAE,QAAO,CAAA,EAAE;AAAA,EAAC;AAAC;AAAC6B,GAAE,gBAAc,cAAaA,GAAE,aAAW;AAAE,MAAMG,KAAEjB,GAAEc,EAAC,oZCDtgBsQ,IAAN,MAAMA,UAAaxF,EAAW;AAAA,EAoDnC,cAAc;AACZ,UAAA,GAhDF,KAAQ,QAAQ,IAEhB,KAAA,OAAO,OACP,KAAA,QAAQ,gBACR,KAAA,aAAa,eA6CX,QAAQ,IAAI,oBAAoB,KAAK,KAAK;AAAA,EAC5C;AAAA,EA5CA,IAAI,OAAO;AACT,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAI,KAAKyF,GAAK;AACZ,UAAMC,IAAS,KAAK;AACpB,SAAK,QAAQD,GACb,KAAK,cAAc,QAAQC,CAAM;AAAA,EACnC;AAAA,EAuCA,oBAAoB;AAClB,UAAM,kBAAA,GACN,QAAQ,IAAI,kBAAkB,KAAK,KAAK;AAAA,EAC1C;AAAA,EAEA,aAAa;AAGX,QAFA,QAAQ,IAAI,gCAAgC,KAAK,KAAK,GAElD,CAAC,KAAK,SAAS,KAAK,UAAU;AAChC,qBAAQ,IAAI,2CAA2C,GAChDpF;AAIT,UAAMqF,IAAaH,EAAK,iBAAiB,KAAK,MAAM,aAAa;AACjE,QAAIG;AACF,aAAOrF,gCAAmCsF,GAAWD,CAAU,CAAC;AAGlE,YAAQ,KAAK,MAAM,YAAA,GAAY;AAAA,MAC7B,KAAK;AACH,uBAAQ,IAAI,sBAAsB,GAC3BrF;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAST,KAAK;AACH,uBAAQ,IAAI,qBAAqB,GAC1BA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAgBT,KAAK;AACH,uBAAQ,IAAI,qBAAqB,GAC1BA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAoBT,KAAK;AACH,uBAAQ,IAAI,wBAAwB,GAC7BA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MA4BT,KAAK;AACH,uBAAQ,IAAI,oBAAoB,GACzBA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAwCT,KAAK;AACH,uBAAQ,IAAI,wBAAwB,GAC7BA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAoCT,KAAK;AACH,uBAAQ,IAAI,sBAAsB,GAC3BA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAoBT;AACE,uBAAQ,IAAI,sBAAsB,KAAK,KAAK,0BAA0B,GAC/DA;AAAAA,IAAA;AAAA,EAEb;AAAA,EAEA,QAAQL,GAAmC;AACzC,YAAQ,IAAI,gBAAgBA,CAAiB,GAE7C,KAAK,MAAM,YAAY,eAAe,KAAK,IAAI,GAC/C,KAAK,MAAM,YAAY,gBAAgB,KAAK,KAAK,GACjD,KAAK,MAAM,YAAY,qBAAqB,KAAK,UAAU;AAAA,EAC7D;AAAA,EAEA,SAAS;AACP,mBAAQ,IAAI,eAAe,KAAK,KAAK,GAC9B,KAAK,WAAA;AAAA,EACd;AACF;AArREuF,EAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,QAAQ,SAAS,GAAA;AAAK,GAkBtCA,EAAO,SAASjF,EAAUC,EAAM,GAIhCgF,EAAwB,oBAA4C,MAAM;AACxE,MAAI;AAEF,UAAMK,IAAW,uBAAA,OAAA;AAAA,MAAA,oBAAAtE;AAAA,MAAA,wBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,oBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,qBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,qBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,0BAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,oBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,2BAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,oBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,qBAAAC;AAAA,MAAA,0BAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,qBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,qBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,qBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,sBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,uBAAAC;AAAA,MAAA,wBAAAC;AAAA,MAAA,yBAAAC;AAAA,MAAA,oBAAAC;AAAA,IAAA,CAAA,GAMXO,IAA8B,CAAA;AACpC,eAAW,CAACrL,GAAMsL,CAAO,KAAK,OAAO,QAAQF,CAAO,GAAG;AAErD,YAAMG,KADWvL,EAAK,MAAM,GAAG,EAAE,SAAS,IAChB,QAAQ,WAAW,EAAE,EAAE,YAAA;AACjD,MAAIuL,MACFF,EAAIE,CAAQ,IAAID;AAAA,IAEpB;AACA,WAAOD;AAAA,EACT,SAAS9T,GAAK;AAEZ,mBAAQ;AAAA,MACN;AAAA,MACAA;AAAA,IAAA,GAEK,CAAA;AAAA,EACT;AACF,GAAA;AAlDK,IAAMiU,KAANT;AAwRP,eAAe,OAAO,WAAWS,EAAI;AAGrC,QAAQ,IAAI,yDAAyD;yRC7Q/DC,KAAkB,CAACC,MAAkB;AACzC,eAAa,QAAQ,eAAeA,CAAK;AAC3C,GAEMC,KAAiB,MACd,aAAa,QAAQ,aAAa,KAAK,gBAG1CC,KAAmB,MAAM;AAC7B,QAAMF,IAAQC,GAAA;AACd,WAAS,gBAAgB,MAAM,YAAY,kBAAkB,OAAOD,CAAK,GAAG;AAC9E,GAGMG,KAAuB,CAAC/M,MAAkB;AAC9C,eAAa,QAAQ,oBAAoBA,CAAK;AAChD,GAEMgN,KAAsB,MACnB,aAAa,QAAQ,kBAAkB,KAAK,QAI/CC,KAAgB,CAACjN,MAAkB;AACvC,eAAa,QAAQ,aAAaA,CAAK;AACzC,GAEMkN,IAAe,MACZ,aAAa,QAAQ,WAAW,KAAK,QAMjCC,KAAN,MAAMA,WAAc1G,EAAW;AAAA;AAAA,EAEpC,WAAW,aAAa;AACtB,WAAO;AAAA,MACL,MAAM,EAAE,MAAM,OAAA;AAAA,MACd,QAAQ,EAAE,MAAM,MAAA;AAAA,MAChB,cAAc,EAAE,MAAM,QAAQ,OAAO,GAAA;AAAA;AAAA,MACrC,mBAAmB,EAAE,MAAM,SAAS,OAAO,GAAA;AAAA;AAAA,MAC3C,UAAU,EAAE,MAAM,SAAS,OAAO,GAAA;AAAA,MAClC,SAAS,EAAE,MAAM,OAAA;AAAA,IAAO;AAAA,EAE5B;AAAA,EAuBA,cAAc;AACZ,UAAA,GAGA,KAAK,OAAO,IACZ,KAAK,SAAS,CAAA,GACd,KAAK,eAAe,IACpB,KAAK,oBAAoB,IACzB,KAAK,WAAW,IAChB,KAAK,UAAU,IAGf,KAAK,gBAAgB;AAAA,MACnB,oBAAoB,KAAK,yBAAyB,KAAK,IAAI;AAAA,MAC3D,iBAAiB,KAAK,sBAAsB,KAAK,IAAI;AAAA,MACrD,uBAAuB,KAAK,sBAAsB,KAAK,IAAI;AAAA,MAC3D,oBAAoB,KAAK,mBAAmB,KAAK,IAAI;AAAA,MACrD,0BAA0B,KAAK,yBAAyB,KAAK,IAAI;AAAA,MACjE,2BAA2B,KAAK,0BAA0B,KAAK,IAAI;AAAA,IAAA;AAAA,EAEvE;AAAA,EAEA,oBAAoB;AAClB,UAAM,kBAAA,GAGN,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAIrB,KAAK,iBAAA;AAAA,EACP;AAAA,EAEA,MAAM,mBAAmB;AACvB,QAAI,KAAK,SAAS,YAAY;AAE5B,YAAM2G,IAAqBhI,GAAA;AAC3B,WAAK,SAASgI,GACd,KAAK,eAAe1I,EAAgB;AAAA,IACtC,WAAW,KAAK,SAAS,SAAS;AAEhC,WAAK,SAAS,CAAC,SAAS,MAAM;AAG9B,YAAM2I,IAAoBlH,EAAa,IAAA;AACvC,WAAK,eAAekH;AAAA,IACtB,WAAW,KAAK,SAAS,gBAAgB;AAEvC,WAAK,SAAS;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAIF,YAAMC,IAAqBT,GAAA;AAC3B,WAAK,eAAeS,GAGpBR,GAAA;AAAA,IACF,WAAW,KAAK,SAAS,sBAAsB;AAE7C,WAAK,SAAS,CAAC,WAAW,OAAO,SAAS;AAG1C,YAAMS,IAAoBP,GAAA;AAC1B,WAAK,eAAeO;AAGpB,YAAMC,IAAmBN,EAAA;AACzB,WAAK,WAAWM,MAAqB;AAAA,IACvC,WAAW,KAAK,SAAS,cAAc;AAErC,WAAK,SAAS,CAAC,QAAQ,MAAM;AAG7B,YAAMA,IAAmBN,EAAA;AACzB,WAAK,eAAeM;AAAA,IACtB,MAAA,CAAW,KAAK,SAAS,gBAEvB,KAAK,SAAS,CAAC,QAAQ,MAAM,GAG7B,KAAK,eAAe,KAAK,OAAO,CAAC;AAInC,SAAK,cAAA;AAAA,EACP;AAAA,EAEA,yBAAyB;AAGvB,QAAI,CADe,aAAa,QAAQ,OAAO,GAC9B;AAIf,YAAMC,IAHc,OAAO;AAAA,QACzB;AAAA,MAAA,EACA,UACiC,SAAS;AAC5C,mBAAa,QAAQ,SAASA,CAAY,GAC1C,SAAS,gBAAgB,UAAU,IAAI,GAAGA,CAAY,QAAQ;AAAA,IAChE;AAAA,EACF;AAAA,EAEA,yBAAyBC,GAAcpV,GAAkBC,GAAkB;AACzE,UAAM,yBAAyBmV,GAAMpV,GAAUC,CAAQ,GAEnDmV,MAAS,UAAUpV,MAAaC,KAElC,KAAK,iBAAA;AAAA,EAET;AAAA,EAEA,MAAM,oBAAoB;AACxB,QAAI,KAAK,SAAS,YAAY;AAE5B,YAAMqM,IAAcF,EAAgB;AACpC,WAAK,eAAeE;AAAA,IACtB,WAAW,KAAK,SAAS,SAAS;AAEhC,YAAMyI,IAAoBlH,EAAa,IAAA;AACvC,WAAK,eAAekH;AAAA,IACtB,WAAW,KAAK,SAAS,gBAAgB;AAEvC,YAAMC,IAAqBT,GAAA;AAC3B,WAAK,eAAeS,GAGpBR,GAAA;AAAA,IACF,WAAW,KAAK,SAAS,sBAAsB;AAE7C,YAAMS,IAAoBP,GAAA;AAC1B,WAAK,eAAeO;AAGpB,YAAMC,IAAmBN,EAAA;AACzB,WAAK,WAAWM,MAAqB;AAAA,IACvC,WAAW,KAAK,SAAS,cAAc;AAErC,YAAMA,IAAmBN,EAAA;AACzB,WAAK,eAAeM;AAAA,IACtB,WAAW,KAAK,SAAS,aAAa;AAEpC,YAAMA,IAAmBN,EAAA;AACzB,WAAK,eAAeM;AAAA,IACtB;AAEA,SAAK,cAAA;AAAA,EACP;AAAA,EAEA,wBAAwB;AAEtB,SAAK,kBAAA;AAAA,EACP;AAAA,EAEA,uBAAuB;AACrB,UAAM,qBAAA,GAGN,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA,GAErB,OAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAAA,EAEvB;AAAA,EAEA,kBAAkB,GAAU;AAK1B,QAJA,EAAE,eAAA,GACF,EAAE,gBAAA,GAGE,MAAK,UAIT;AAAA,UAAI,KAAK,SAAS,YAAY;AAG5B,cAAMG,KADe,KAAK,OAAO,QAAQ,KAAK,YAAY,IACxB,KAAK,KAAK,OAAO,QAC7CC,IAAc,KAAK,OAAOD,CAAS;AAGzC,aAAK,eAAeC,GAGf,SAAiB,sBACnB,SAAiB,oBAAoB,MAAM;AAC1C,UAAAtI,GAAYsI,CAA2B;AAAA,QACzC,CAAC,IAEDtI,GAAYsI,CAA2B,GAIzCrI,EAAgB,EAAE,UAAUqI,GAA6B,GAGzD,OAAO;AAAA,UACL,IAAI,YAAY,oBAAoB;AAAA,YAClC,QAAQ,EAAE,UAAUA,EAAA;AAAA,UAAY,CACjC;AAAA,QAAA;AAAA,MAEL,WAAW,KAAK,SAAS,SAAS;AAGhC,cAAMD,KADe,KAAK,OAAO,QAAQ,KAAK,YAAY,IACxB,KAAK,KAAK,OAAO,QAC7CE,IAAW,KAAK,OAAOF,CAAS;AAGtC,aAAK,eAAeE,GAGpBzH,GAASyH,CAAqB,GAG9BtI,EAAgB,EAAE,OAAOsI,GAAuB;AAAA,MAGlD,WAAW,KAAK,SAAS,gBAAgB;AAGvC,cAAMF,KADe,KAAK,OAAO,QAAQ,KAAK,YAAY,IACxB,KAAK,KAAK,OAAO,QAC7CG,IAAW,KAAK,OAAOH,CAAS;AAGtC,aAAK,eAAeG,GAGpBnB,GAAgBmB,CAAQ,GAGxBhB,GAAA,GAGAvH,EAAgB,EAAE,aAAauI,GAAU,GAGzC,OAAO;AAAA,UACL,IAAI,YAAY,wBAAwB;AAAA,YACtC,QAAQ,EAAE,OAAOA,EAAA;AAAA,UAAS,CAC3B;AAAA,QAAA;AAAA,MAEL,WAAW,KAAK,SAAS,sBAAsB;AAG7C,cAAMH,KADe,KAAK,OAAO,QAAQ,KAAK,YAAY,IACxB,KAAK,KAAK,OAAO,QAC7CI,IAAW,KAAK,OAAOJ,CAAS;AAGtC,aAAK,eAAeI,GAGpBhB,GAAqBgB,CAAQ,GAG7BxI,EAAgB,EAAE,kBAAkBwI,GAAU,GAG9C,OAAO;AAAA,UACL,IAAI,YAAY,8BAA8B;AAAA,YAC5C,QAAQ,EAAE,OAAOA,EAAA;AAAA,UAAS,CAC3B;AAAA,QAAA;AAAA,MAEL,WAAW,KAAK,SAAS,cAAc;AAGrC,cAAMJ,KADe,KAAK,OAAO,QAAQ,KAAK,YAAY,IACxB,KAAK,KAAK,OAAO,QAC7CK,IAAc,KAAK,OAAOL,CAAS;AAGzC,aAAK,eAAeK,GAGpBf,GAAce,CAAW,GAGzBzI,EAAgB,EAAE,WAAWyI,GAAa,GAG1C,OAAO;AAAA,UACL,IAAI,YAAY,sBAAsB;AAAA,YACpC,QAAQ,EAAE,UAAUA,EAAA;AAAA,UAAY,CACjC;AAAA,QAAA;AAAA,MAEL,WAAW,KAAK,SAAS,aAAa;AAGpC,cAAML,KADe,KAAK,OAAO,QAAQ,KAAK,YAAY,IACxB,KAAK,KAAK,OAAO,QAC7CM,IAAmB,KAAK,OAAON,CAAS;AAG9C,aAAK,eAAeM,GAGpBhB,GAAcgB,CAAgB,GAG9B1I,EAAgB,EAAE,WAAW0I,GAAkB,GAG/C,OAAO;AAAA,UACL,IAAI,YAAY,sBAAsB;AAAA,YACpC,QAAQ,EAAE,UAAUA,EAAA;AAAA,UAAiB,CACtC;AAAA,QAAA;AAAA,MAEL;AAGA,WAAK,cAAA;AAAA;AAAA,EACP;AAAA,EAEA,gBAAgBlZ,GAA6B;AAC3C,QAAI,KAAK,SAAS;AAChB,aAAO8O,GAAuB9O,GAAO;AAAA,QACnC,QAAQ2P,EAAgB;AAAA,MAAA,CACzB;AACH,QAAW,KAAK,SAAS,SAAS;AAEhC,UAAI,KAAK,mBAAmB;AAC1B,cAAMwJ,IAAiBrJ,EAAU9P,CAAK;AACtC,YAAImZ,KAAkBA,MAAmBnZ;AACvC,iBAAOmZ;AAAA,MAEX;AAGA,aAAOnZ;AAAA,IACT,OAAA;AAAA,UAAW,KAAK,SAAS;AAEvB,eAAO,KAAK,aAAaA,CAAK;AAChC,UAAW,KAAK,SAAS;AAEvB,eAAO,KAAK,kBAAkBA,CAAK;AACrC,UAAW,KAAK,SAAS,cAAc;AAErC,YAAI,KAAK,mBAAmB;AAC1B,gBAAM+R,IAAiBjC,EAAU9P,MAAU,SAAS,SAAS,MAAM;AACnE,cACE+R,KACAA,OAAoB/R,MAAU,SAAS,SAAS;AAEhD,mBAAO+R;AAAA,QAEX;AACA,eAAO/R;AAAA,MACT,WAAW,KAAK,SAAS;AAEvB,eAAIA,MAAU,SACLgS,qCACEhS,MAAU,SACZgS,qCAEFA,UAAahS,CAAK;AAAA;AAG3B,WAAOA;AAAA,EACT;AAAA,EAEA,YAAYoZ,GAA0B;AAapC,WAX4C;AAAA,MAC1C,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,UAAU;AAAA,IAAA,EAGIA,CAAQ,KAAKA,EAAS,QAAQ,MAAM,EAAE,EAAE,QAAQ,KAAK,GAAG;AAAA,EAC1E;AAAA,EAEA,aAAaA,GAA0B;AAarC,UAAMC,IAXsC;AAAA,MAC1C,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,UAAU;AAAA,IAAA,EAGqBD,CAAQ;AACzC,QAAIC,KAAmB,KAAK,mBAAmB;AAC7C,YAAMF,IAAiBrJ,EAAUuJ,CAAe;AAChD,UAAIF,KAAkBA,MAAmBE;AACvC,eAAOF;AAAA,IAEX;AAGA,WAAOC,EAAS,QAAQ,MAAM,EAAE,EAAE,QAAQ,KAAK,GAAG;AAAA,EACpD;AAAA,EAEA,kBAAkBnO,GAAe;AAC/B,WAAIA,MAAU,SACL+G,qCACE/G,MAAU,SACZ+G,qCACE/G,MAAU,YACZ+G,wCACE/G,MAAU,QACZ+G,oCACE/G,MAAU,YACZ+G,wCAEFA,UAAa/G,CAAK;AAAA,EAC3B;AAAA,EAEA,SAAS;AACP,WAAO+G;AAAAA;AAAAA;AAAAA,oBAGS,KAAK,YACd,KAAK,SAAS,cAAc,KAAK,SAAS,UACvC,cACA,UAAU;AAAA,sBACF,KAAK,QAAQ;AAAA,mBAChB,KAAK,iBAAiB;AAAA;AAAA,YAE7B,KAAK,SAAS,wBAAwB,KAAK,SAAS,cAClDA;AAAAA;AAAAA,mBAEK,KAAK,gBAAgB,KAAK,YAAY,CAAC;AAAA,mBAE5C,KAAK,SAAS,aACZA;AAAAA,kCACkB,KAAK,gBAAgB,KAAK,YAAY,CAAC;AAAA,+BAEzD,KAAK,SAAS,UACZA;AAAAA,2BACS,KAAK,YAAY;AAAA,oCACR,KAAK,YAAY;AAAA,iCAEnC,KAAK,SAAS,iBACZA;AAAAA,6BACS,KAAK,YAAY,KAAK,YAAY,CAAC;AAAA,sCAC1B,KAAK,aAAa,KAAK,YAAY,CAAC;AAAA,mCAEtD,KAAK,SAAS,eACZA;AAAAA,+BACS,KAAK,iBAAiB,SAAS,SAAS,MAAM;AAAA,wCACrC,KAAK,YAAY;AAAA,qCAEnCA;AAAAA,wCACkB,KAAK,gBAAgB,KAAK,YAAY,CAAC;AAAA,kCAC7C;AAAA;AAAA;AAAA,UAGxB,KAAK,SAAS,iBACZA;AAAAA;AAAAA;AAAAA,+CAGmC,KAAK,YAAY;AAAA;AAAA,gBAGpD,EAAE;AAAA;AAAA;AAAA,EAGZ;AAAA,EAEA,MAAc,sBAAqC;AACjD,WAAO,IAAI,QAAQ,CAACsH,MAAY;AAC9B,UAAI,KAAK,mBAAmB;AAC1B,QAAAA,EAAA;AACA;AAAA,MACF;AAEA,YAAMC,IAA2B,MAAM;AACrC,aAAK,oBAAoB,IACzBD,EAAA;AAAA,MACF;AAEA,aAAO,iBAAiB,uBAAuBC,GAA0B;AAAA,QACvE,MAAM;AAAA,MAAA,CACP,GAGD,WAAW,MAAM;AACf,aAAK,oBAAoB,IACzBD,EAAA;AAAA,MACF,GAAG,GAAI;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAEQ,2BAA2B;AAIjC,QAHA,KAAK,oBAAoB,IAGrB,KAAK,SAAS,YAAY;AAC5B,YAAMjB,IAAqBhI,GAAA;AAC3B,WAAK,SAASgI;AAAA,IAChB;AAEA,SAAK,kBAAA;AAAA,EACP;AAAA,EAEQ,wBAAwB;AAC9B,SAAK,kBAAA;AAAA,EACP;AAAA,EAEQ,qBAAqB;AAC3B,SAAK,kBAAA;AAAA,EACP;AAAA,EAEQ,2BAA2B;AACjC,SAAK,kBAAA;AAAA,EACP;AAAA,EAEQ,4BAA4B;AAClC,SAAK,kBAAA;AAAA,EACP;AACF;AA/jBED,GAAO,SAASnG,EAAUC,EAAM;AAb3B,IAAMsH,KAANpB;AA8kBP,eAAe,OAAO,YAAYoB,EAAK;yIC1nB1BC,KAAN,MAAMA,WAAsB/H,EAAW;AAAA,EAG5C,SAAS;AACP,UAAMgI,KAAO,oBAAI,KAAA,GAAO,YAAA;AACxB,WAAO1H,UAAa0H,CAAI;AAAA,EAC1B;AACF;AANED,GAAO,SAASxH,EAAUC,EAAM;AAD3B,IAAMyH,KAANF;AASP,eAAe,OAAO,WAAWE,EAAa;u5BCNjCC,KAAN,MAAMA,WAAYlI,EAAW;AAAA,EAQlC,cAAc;AACZ,UAAA,GACA,KAAK,OAAO;AAAA,EACd;AAAA,EAIA,SAAS;AACP,WAAOM;AAAAA,EACT;AACF;AAjBE4H,GAAO,aAAa;AAAA;AAAA,EAElB,MAAM,EAAE,MAAM,QAAQ,SAAS,GAAA;AAAK,GAUtCA,GAAO,SAAS3H,EAAUC,EAAM;AAb3B,IAAM2H,KAAND;AAoBP,eAAe,OAAO,UAAUC,EAAG;ACzB5B,MAAMC,KAAN,MAAMA,WAAcpI,EAAW;AAAA,EA2DpC,cAAc;AACZ,UAAA,GACA,KAAK,OAAO,QACZ,KAAK,OAAO,IACZ,KAAK,QAAQ,IACb,KAAK,cAAc,IACnB,KAAK,iBAAiB,IACtB,KAAK,QAAQ,IACb,KAAK,YAAY,IACjB,KAAK,WAAW,IAChB,KAAK,WAAW,IAChB,KAAK,WAAW,IAChB,KAAK,YAAY,IACjB,KAAK,eAAe,OACpB,KAAK,UAAU,IACf,KAAK,YAAY,GACjB,KAAK,YAAY,GACjB,KAAK,MAAM,IACX,KAAK,MAAM,IACX,KAAK,OAAO,IACZ,KAAK,UAAU,WACf,KAAK,QAAQ,IACb,KAAK,YAAY,IACjB,KAAK,WAAW;AAAA,EAClB;AAAA,EA+GQ,aAAa,GAAgB;AACnC,UAAMqI,IAAS,EAAE;AACjB,SAAK,QAAQA,EAAO,OACpB,KAAK;AAAA,MACH,IAAI,YAAY,gBAAgB;AAAA,QAC9B,QAAQ,EAAE,OAAO,KAAK,OAAO,MAAM,KAAK,KAAA;AAAA,QACxC,SAAS;AAAA,MAAA,CACV;AAAA,IAAA;AAAA,EAEL;AAAA,EAEQ,eAAqB;AAC3B,SAAK,WAAW,IAChB,KAAK,cAAc,IAAI,YAAY,eAAe,EAAE,SAAS,GAAA,CAAM,CAAC;AAAA,EACtE;AAAA,EAEQ,cAAoB;AAC1B,SAAK,WAAW,IAChB,KAAK,cAAc,IAAI,YAAY,cAAc,EAAE,SAAS,GAAA,CAAM,CAAC;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AAEZ,IADc,KAAK,YAAY,cAAc,OAAO,GAC7C,MAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAa;AAEX,IADc,KAAK,YAAY,cAAc,OAAO,GAC7C,KAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,SAAe;AAEb,IADc,KAAK,YAAY,cAAc,OAAO,GAC7C,OAAA;AAAA,EACT;AAAA,EAEA,SAAS;AACP,UAAMC,IAAW,GAAQ,KAAK,SAAS,KAAK;AAE5C,WAAOhI;AAAAA;AAAAA,UAED,KAAK,SAAS,KAAK,YACjBA;AAAAA;AAAAA,kBAEM,KAAK,YACHA,mBAAsB,KAAK,SAAS,gBACpC,KAAK,KAAK;AAAA;AAAA,gBAGlB,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKI,KAAK,IAAI;AAAA,oBACT,KAAK,IAAI;AAAA,qBACR,KAAK,KAAK;AAAA,2BACJ,KAAK,WAAW;AAAA,wBACnB,KAAK,QAAQ;AAAA,wBACb,KAAK,QAAQ;AAAA,wBACb,KAAK,QAAQ;AAAA,yBACZ,KAAK,SAAS;AAAA,2BACZ,KAAK,YAAY;AAAA,sBACtB,KAAK,WAAW,EAAE;AAAA,wBAChB,KAAK,aAAa,EAAE;AAAA,wBACpB,KAAK,aAAa,EAAE;AAAA,kBAC1B,KAAK,GAAG;AAAA,kBACR,KAAK,GAAG;AAAA,mBACP,KAAK,IAAI;AAAA,oBACRgI,IAAW,cAAc,EAAE;AAAA,qBAC1B,KAAK,YAAY;AAAA,qBACjB,KAAK,YAAY;AAAA,oBAClB,KAAK,WAAW;AAAA;AAAA;AAAA;AAAA,UAI1BA,IACEhI;AAAAA;AAAAA,kBAEM,KAAK,YACHA,mBAAsB,KAAK,SAAS,gBACpC,KAAK,KAAK;AAAA;AAAA,gBAGlB,IAAI;AAAA;AAAA;AAAA,EAGd;AACF;AAlSE8H,GAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,QAAQ,SAAS,GAAA;AAAA,EAC/B,MAAM,EAAE,MAAM,QAAQ,SAAS,GAAA;AAAA,EAC/B,OAAO,EAAE,MAAM,OAAA;AAAA,EACf,aAAa,EAAE,MAAM,OAAA;AAAA,EACrB,gBAAgB,EAAE,MAAM,QAAQ,WAAW,kBAAA;AAAA,EAC3C,OAAO,EAAE,MAAM,OAAA;AAAA,EACf,WAAW,EAAE,MAAM,QAAQ,WAAW,aAAA;AAAA,EACtC,UAAU,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EACpC,UAAU,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EACpC,UAAU,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EACpC,WAAW,EAAE,MAAM,QAAA;AAAA,EACnB,cAAc,EAAE,MAAM,OAAA;AAAA,EACtB,SAAS,EAAE,MAAM,OAAA;AAAA,EACjB,WAAW,EAAE,MAAM,OAAA;AAAA,EACnB,WAAW,EAAE,MAAM,OAAA;AAAA,EACnB,KAAK,EAAE,MAAM,OAAA;AAAA,EACb,KAAK,EAAE,MAAM,OAAA;AAAA,EACb,MAAM,EAAE,MAAM,OAAA;AAAA,EACd,SAAS,EAAE,MAAM,QAAQ,SAAS,GAAA;AAAA,EAClC,OAAO,EAAE,MAAM,OAAA;AAAA,EACf,WAAW,EAAE,MAAM,QAAQ,WAAW,aAAA;AAAA,EACtC,UAAU,EAAE,MAAM,SAAS,OAAO,GAAA;AAAK,GA8DzCA,GAAO,SAAS/G;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AArFX,IAAMkH,KAANH;AAqSP,eAAe,OAAO,YAAYG,EAAK;2vBCvS1BC,KAAN,MAAMA,WAAgBxI,EAAW;AAAA,EAwBtC,cAAc;AACZ,UAAA,GACA,KAAK,OAAO,IACZ,KAAK,eAAe,IACpB,KAAK,QAAQ,IACb,KAAK,WAAW,IAEhB,KAAK,sBAAsB;AAAA,MACzB,kBAAkB,MAAM;AACtB,aAAK,UAAA;AAAA,MACP;AAAA,MACA,qBAAqB,MAAM;AACzB,aAAK,UAAA;AAAA,MACP;AAAA,IAAA,GAGF,KAAK,oBAAoB;AAAA,MACvB,aAAa,MAAM;AACjB,aAAK,WAAW,IAChB,KAAK,cAAA;AAAA,MACP;AAAA,MACA,aAAa,MAAM;AACjB,aAAK,WAAW,IAChB,KAAK,cAAA;AAAA,MACP;AAAA,MACA,UAAU,MAAM;AACd,aAAK,WAAW,IAChB,KAAK,cAAA;AAAA,MACP;AAAA,MACA,WAAW,MAAM;AACf,aAAK,WAAW,IAChB,KAAK,cAAA;AAAA,MACP;AAAA,IAAA;AAAA,EAEJ;AAAA,EAIA,oBAA0B;AACxB,UAAM,kBAAA,GACN,KAAK,UAAA,GAEL,OAAO;AAAA,MACL;AAAA,MACA,KAAK,oBAAoB;AAAA,IAAA,GAE3B,OAAO;AAAA,MACL;AAAA,MACA,KAAK,oBAAoB;AAAA,IAAA,GAG3B,KAAK,iBAAiB,cAAc,KAAK,kBAAkB,UAAU,GACrE,KAAK,iBAAiB,cAAc,KAAK,kBAAkB,UAAU,GACrE,KAAK,iBAAiB,WAAW,KAAK,kBAAkB,OAAO,GAC/D,KAAK,iBAAiB,YAAY,KAAK,kBAAkB,QAAQ;AAAA,EACnE;AAAA,EAEA,uBAA6B;AAC3B,UAAM,qBAAA,GACN,OAAO;AAAA,MACL;AAAA,MACA,KAAK,oBAAoB;AAAA,IAAA,GAE3B,OAAO;AAAA,MACL;AAAA,MACA,KAAK,oBAAoB;AAAA,IAAA,GAG3B,KAAK,oBAAoB,cAAc,KAAK,kBAAkB,UAAU,GACxE,KAAK,oBAAoB,cAAc,KAAK,kBAAkB,UAAU,GACxE,KAAK,oBAAoB,WAAW,KAAK,kBAAkB,OAAO,GAClE,KAAK,oBAAoB,YAAY,KAAK,kBAAkB,QAAQ;AAAA,EACtE;AAAA,EAEA,QAAQyI,GAAqC;AAC3C,KAAIA,EAAQ,IAAI,MAAM,KAAKA,EAAQ,IAAI,cAAc,MACnD,KAAK,UAAA;AAAA,EAET;AAAA,EAEA,YAAkB;AAChB,QAAI,CAAC,KAAK,MAAM;AACd,WAAK,QAAQ,KAAK,gBAAgB,IAClC,KAAK,cAAA;AACL;AAAA,IACF;AAEA,QAAI;AACF,YAAMxT,IAAImJ,EAAU,KAAK,IAAI;AAC7B,WAAK,QAAQnJ,KAAKA,MAAM,KAAK,OAAOA,IAAI,KAAK,gBAAgB,KAAK;AAAA,IACpE,SAASjD,GAAK;AACZ,cAAQ,MAAM,2CAA2C,KAAK,MAAMA,CAAG,GACvE,KAAK,QAAQ,KAAK,gBAAgB,KAAK;AAAA,IACzC;AACA,SAAK,cAAA;AAAA,EACP;AAAA,EAEA,SAAS;AACP,UAAM0W,IAAgB,CAAC,UAAU,KAAK,WAAW,YAAY,EAAE,EAAE,KAAK,GAAG;AAEzE,WAAOpI;AAAAA;AAAAA,QAEH,KAAK,QACHA,gBAAmBoI,CAAa,KAAK,KAAK,KAAK,WAC/C,IAAI;AAAA;AAAA,EAEZ;AACF;AAlIEF,GAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,QAAQ,SAAS,GAAA;AAAA,EAC/B,cAAc,EAAE,MAAM,QAAQ,SAAS,IAAM,WAAW,gBAAA;AAAA,EACxD,OAAO,EAAE,OAAO,GAAA;AAAA,EAChB,UAAU,EAAE,OAAO,GAAA;AAAK,GAuD1BA,GAAO,SAASjI,EAAUC,EAAM;AA5D3B,IAAMmI,KAANH;AAqIP,eAAe,OAAO,cAAcG,EAAO;wRC/H9BC,KAAN,MAAMA,WAAY5I,EAAW;AAAA,EAOlC,cAAc;AACZ,UAAA,GACA,KAAK,OAAO;AAAA,EACd;AAAA,EAIA,SAAS;AACP,WAAOM;AAAAA,EACT;AACF;AAhBEsI,GAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,QAAQ,SAAS,GAAA;AAAK,GAUtCA,GAAO,SAASrI,EAAUC,EAAM;AAZ3B,IAAMqI,KAAND;AAmBP,eAAe,OAAO,UAAUC,EAAG;4eCZtBC,KAAN,MAAMA,WAAkB9I,EAAW;AAAA,EAaxC,cAAc;AACZ,UAAA,GACA,KAAK,UAAU,IACf,KAAK,UAAU,IACf,KAAK,OAAO,IACZ,KAAK,qBAAqB;AAAA,EAC5B;AAAA,EAIQ,kBAAkB,GAAU;AAIlC,UAAM+I,IAHO,EAAE,OACY,cAAc,EAAE,SAAS,IAAM,EAEzB;AAAA,MAC/B,CAAClZ,MACCA,EAAK,aAAa,KAAK,gBACtBA,EAAK,aAAa,KAAK,aAAaA,EAAK,aAAa,KAAA;AAAA,IAAK;AAEhE,SAAK,qBAAqBkZ;AAAA,EAC5B;AAAA,EAEA,SAAS;AACP,WAAOzI;AAAAA,uBACY,KAAK,IAAI;AAAA;AAAA;AAAA,6BAGH,KAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6CAkBI,KAAK,iBAAiB;AAAA,YACtD,KAAK,qBAKJ,KAJAA;AAAAA;AAAAA,wBAEU,KAAK,OAAO;AAAA,0BAEpB;AAAA;AAAA;AAAA;AAAA,EAId;AACF;AApEEwI,GAAO,aAAa;AAAA,EAClB,SAAS,EAAE,MAAM,OAAA;AAAA,EACjB,SAAS,EAAE,MAAM,OAAA;AAAA,EACjB,MAAM,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EAChC,oBAAoB,EAAE,MAAM,SAAS,OAAO,GAAA;AAAK,GAgBnDA,GAAO,SAASvI,EAAUC,EAAM;AArB3B,IAAMwI,KAANF;AAuEP,eAAe,OAAO,gBAAgBE,EAAS;AC1ExC,MAAMC,KAAN,MAAMA,WAAajJ,EAAW;AAAA,EAiBnC,cAAc;AACZ,UAAA,GACA,KAAK,SAAS,IACd,KAAK,SAAS,QACd,KAAK,OAAO,IACZ,KAAK,aAAa,IAClB,KAAK,eAAe,MACpB,KAAK,gBAAgB;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EA4BA,cAAwB;AACtB,UAAMkJ,IAAiB,CAAA,GAEjBC,IADO,KAAK,YAAY,cAAc,MAAM,GAC3B,iBAAiB,EAAE,SAAS,GAAA,CAAM,KAAK,CAAA;AAE9D,eAAWC,KAAWD;AACpB,WAAK,iBAAiBC,GAAwBF,CAAI;AAGpD,WAAOA;AAAA,EACT;AAAA,EAEQ,iBAAiBE,GAAsBF,GAAsB;AAEnE,UAAMjC,IAAOmC,EAAQ,aAAa,MAAM,KAAMA,EAAgB;AAC9D,QAAInC,GAAM;AACR,YAAM3Y,IAAS8a,EAAgB;AAC/B,MAAI9a,MAAU,WAGV8a,aAAmB,qBAClBA,EAAQ,SAAS,cAAcA,EAAQ,SAAS,WAE7CA,EAAQ,SAAS,aACnBF,EAAKjC,CAAI,IAAImC,EAAQ,UACZA,EAAQ,SAAS,WAAWA,EAAQ,YAC7CF,EAAKjC,CAAI,IAAI3Y,KAGf4a,EAAKjC,CAAI,IAAI3Y;AAAA,IAGnB;AAKA,KADE8a,EAAQ,YAAY,iBAAiB,GAAG,KAAKA,EAAQ,iBAAiB,GAAG,GAClE,QAAQ,CAACC,MAAU;AAC1B,WAAK,iBAAiBA,GAAsBH,CAAI;AAAA,IAClD,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,WAAiC;AAC/B,UAAMI,IAA+B;AAAA,MACnC,OAAO;AAAA,MACP,QAAQ,CAAA;AAAA,IAAC;AAGX,QAAI,KAAK;AACP,aAAOA;AAIT,UAAMH,IADO,KAAK,YAAY,cAAc,MAAM,GAC3B,iBAAiB,EAAE,SAAS,GAAA,CAAM,KAAK,CAAA;AAE9D,eAAWC,KAAWD;AACpB,WAAK,iBAAiBC,GAAwBE,CAAM;AAGtD,WAAOA;AAAA,EACT;AAAA,EAEQ,iBACNF,GACAE,GACM;AACN,UAAMrC,IAAOmC,EAAQ,aAAa,MAAM,KAAMA,EAAgB;AAG9D,QAAIA,EAAQ,QAAQ,YAAA,MAAkB,YAAY;AAChD,YAAMG,IAAQH;AACd,MAAIG,EAAM,YAAY,CAACA,EAAM,UAC3BD,EAAO,QAAQ,IACfA,EAAO,OAAOrC,KAAQ,SAAS,IAAI;AAAA,IAEvC;AAGA,KACEmC,aAAmB,oBACnBA,aAAmB,uBACnBA,aAAmB,uBAEdA,EAAQ,oBACXE,EAAO,QAAQ,IACfA,EAAO,OAAOrC,KAAQ,SAAS,IAAImC,EAAQ,sBAM7CA,EAAQ,YAAY,iBAAiB,GAAG,KAAKA,EAAQ,iBAAiB,GAAG,GAClE,QAAQ,CAACC,MAAU;AAC1B,WAAK,iBAAiBA,GAAsBC,CAAM;AAAA,IACpD,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AAEZ,UAAMH,IADO,KAAK,YAAY,cAAc,MAAM,GAC3B,iBAAiB,EAAE,SAAS,GAAA,CAAM,KAAK,CAAA;AAE9D,eAAWC,KAAWD;AACpB,WAAK,cAAcC,CAAsB;AAG3C,SAAK,cAAc,IAAI,YAAY,cAAc,EAAE,SAAS,GAAA,CAAM,CAAC;AAAA,EACrE;AAAA,EAEQ,cAAcA,GAA4B;AAChD,KACEA,aAAmB,oBACnBA,aAAmB,uBACnBA,aAAmB,uBAEfA,aAAmB,oBAAoBA,EAAQ,SAAS,aAC1DA,EAAQ,UAAU,KAElBA,EAAQ,QAAQ,KAKhBA,EAAQ,QAAQ,YAAA,MAAkB,eACnCA,EAAgB,QAAQ,MAKzBA,EAAQ,YAAY,iBAAiB,GAAG,KAAKA,EAAQ,iBAAiB,GAAG,GAClE,QAAQ,CAACC,MAAU;AAC1B,WAAK,cAAcA,CAAoB;AAAA,IACzC,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAwB;AAC5B,QAAI,KAAK,cAAe;AAExB,UAAMG,IAAmB,KAAK,SAAA;AAC9B,QAAI,CAACA,EAAiB,OAAO;AAC3B,WAAK;AAAA,QACH,IAAI,YAAY,gBAAgB;AAAA,UAC9B,QAAQA,EAAiB;AAAA,UACzB,SAAS;AAAA,QAAA,CACV;AAAA,MAAA;AAEH;AAAA,IACF;AAEA,SAAK,gBAAgB;AACrB,UAAMC,IAAW,KAAK,YAAA;AAUtB,QARA,KAAK;AAAA,MACH,IAAI,YAAY,eAAe;AAAA,QAC7B,QAAQ,EAAE,MAAMA,EAAA;AAAA,QAChB,SAAS;AAAA,MAAA,CACV;AAAA,IAAA,GAIC,KAAK;AACP,UAAI;AACF,cAAM/N,IAAW,MAAM,MAAM,KAAK,QAAQ;AAAA,UACxC,QAAQ,KAAK,OAAO,YAAA;AAAA,UACpB,SAAS;AAAA,YACP,gBAAgB;AAAA,UAAA;AAAA,UAElB,MAAM,KAAK,UAAU+N,CAAQ;AAAA,QAAA,CAC9B;AAED,aAAK;AAAA,UACH,IAAI,YAAY,iBAAiB;AAAA,YAC/B,QAAQ,EAAE,UAAA/N,GAAU,MAAM+N,EAAA;AAAA,YAC1B,SAAS;AAAA,UAAA,CACV;AAAA,QAAA;AAAA,MAEL,SAASvK,GAAO;AACd,aAAK;AAAA,UACH,IAAI,YAAY,cAAc;AAAA,YAC5B,QAAQ,EAAE,OAAAA,GAAO,MAAMuK,EAAA;AAAA,YACvB,SAAS;AAAA,UAAA,CACV;AAAA,QAAA;AAAA,MAEL;AAGF,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEQ,cAAc,GAAgB;AACpC,MAAE,eAAA,GACF,KAAK,OAAA;AAAA,EACP;AAAA,EAEQ,eAAe,GAAwB;AAC7C,IAAI,EAAE,QAAQ,WAAW,CAAC,EAAE,YACX,EAAE,OAEN,QAAQ,YAAA,MAAkB,eACnC,EAAE,eAAA,GACF,KAAK,OAAA;AAAA,EAGX;AAAA,EAEA,SAAS;AACP,WAAOnJ;AAAAA;AAAAA,kBAEO,KAAK,MAAM;AAAA,kBACX,KAAK,MAAM;AAAA,gBACb,KAAK,IAAI;AAAA,sBACH,KAAK,UAAU;AAAA,uBACd,KAAK,YAAY;AAAA,kBACtB,KAAK,aAAa;AAAA,mBACjB,KAAK,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpC;AACF;AAxRE2I,GAAO,aAAa;AAAA,EAClB,QAAQ,EAAE,MAAM,OAAA;AAAA,EAChB,QAAQ,EAAE,MAAM,OAAA;AAAA,EAChB,MAAM,EAAE,MAAM,OAAA;AAAA,EACd,YAAY,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EACtC,cAAc,EAAE,MAAM,OAAA;AAAA,EACtB,eAAe,EAAE,MAAM,SAAS,OAAO,GAAA;AAAK,GAoB9CA,GAAO,SAAS5H;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AA3BX,IAAMqI,KAANT;AA2RP,eAAe,OAAO,WAAWS,EAAI;yEClSxBC,KAAN,MAAMA,WAAa3J,EAAW;AAAA,EAGnC,SAAS;AACP,WAAOM;AAAAA,EACT;AACF;AALEqJ,GAAO,SAASpJ,EAAUC,EAAM;AAD3B,IAAMoJ,KAAND;AAQP,eAAe,OAAO,WAAWC,EAAI;uqCCFxBC,KAAN,MAAMA,WAAgB7J,EAAW;AAAA,EAWtC,cAAc;AACZ,UAAA,GACA,KAAK,OAAO,CAAA,GACZ,KAAK,UAAU,CAAC,WAAW,SAAS,WAAW,GAC/C,KAAK,aAAa;AAAA,EACpB;AAAA,EAIA,SAAS;AACP,WAAOM;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,YAMC,KAAK,aAAaA,2CAA8C,EAAE;AAAA;AAAA;AAAA,YAGlE,KAAK,KAAK;AAAA,MACV,CAACwJ,GAAKC,MAAazJ;AAAAA,oDACqBwJ,EAAI,OAAO;AAAA,kDACbA,EAAI,KAAK;AAAA,sDACLA,EAAI,SAAS;AAAA,gBACnD,KAAK,aACHxJ;AAAAA,sBACIwJ,EAAI,UAAU,SAAS;AAAA,4BAE3B,EAAE;AAAA;AAAA,IAAA,CAET;AAAA;AAAA;AAAA;AAAA,EAIT;AACF;AA7CED,GAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,MAAA;AAAA,EACd,SAAS,EAAE,MAAM,MAAA;AAAA,EACjB,YAAY,EAAE,MAAM,SAAS,WAAW,cAAA;AAAc,GAcxDA,GAAO,SAAStJ,EAAUC,EAAM;AAlB3B,IAAMwJ,KAANH;AAgDP,eAAe,OAAO,YAAYG,EAAO;oWChD5BC,KAAN,MAAMA,WAAkBjK,EAAW;AAAA,EAGxC,SAAS;AACP,WAAOM;AAAAA,EACT;AACF;AALE2J,GAAO,SAAS1J,EAAUC,EAAM;AAD3B,IAAM0J,KAAND;AAQP,eAAe,OAAO,gBAAgBC,EAAS;ohCCPlCC,KAAN,MAAMA,WAAanK,EAAW;AAAA,EAWnC,oBAAoB;AAClB,UAAM,kBAAA,GACN,KAAK,kBAAA,GAGL,KAAK,iBAAiB,MAAM;AAC1B,MAAI,KAAK,iBACP,aAAa,KAAK,aAAa,GAEjC,KAAK,gBAAgB,WAAW,MAAM;AACpC,aAAK,kBAAA;AAAA,MACP,GAAG,GAAG;AAAA,IACR,GACA,OAAO,iBAAiB,UAAU,KAAK,cAAc;AAAA,EACvD;AAAA,EAEA,uBAAuB;AACrB,UAAM,qBAAA,GACF,KAAK,kBACP,OAAO,oBAAoB,UAAU,KAAK,cAAc,GAEtD,KAAK,iBACP,aAAa,KAAK,aAAa;AAAA,EAEnC;AAAA,EAEQ,oBAAoB;AAE1B,IADiBzI,GAAA,KAEf,KAAK,UAAU,IAAI,QAAQ,GAC3B,KAAK,UAAU,OAAO,SAAS,MAE/B,KAAK,UAAU,IAAI,SAAS,GAC5B,KAAK,UAAU,OAAO,QAAQ;AAAA,EAElC;AAAA,EAEA,SAAS;AACP,WAAO+I;AAAAA,EACT;AACF;AAlDE6J,GAAO,aAAa;AAAA,EAClB,OAAO,EAAE,MAAM,OAAA;AAAO,GAOxBA,GAAO,SAAS5J,EAAUC,EAAM;AAT3B,IAAM4J,KAAND;AAqDP,eAAe,OAAO,WAAWC,EAAI;4mKCtDxBC,KAAN,MAAMA,WAAerK,EAAW;AAAA,EAAhC,cAAA;AAAA,UAAA,GAAA,SAAA,GAOL,KAAA,OAAe;AAAA,EAAA;AAAA,EA4jBf,SAAS;AACP,UAAMsK,IAAS,KAAK,QAAQ,KAAK,SAAS,QACpCC,IAAc,KAAK,SAAS,aAC5BC,IAAY,KAAK,SAAS,WAC1BC,IAAQ,KAAK,SAAS,OACtBC,IAAS,KAAK,SAAS,QACvBC,IAAS,KAAK,SAAS;AAE7B,WAAOrK;AAAAA;AAAAA,QAEHgK,IACEhK;AAAAA;AAAAA,gBAEMqK,IACErK;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,sBA8BAoK,IACEpK;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,wBAuBAmK,IACEnK;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,0BAuCAkK,IACElK;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,4BA0BAiK,IACEjK;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,8BA0DA,EAAE;AAAA;AAAA,cAGlB,EAAE;AAAA;AAAA,EAEV;AACF;AA1wBE+J,GAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,OAAA;AAAA,EACd,OAAO,EAAE,MAAM,OAAA;AAAA,EACf,MAAM,EAAE,MAAM,QAAA;AAAQ,GAOxBA,GAAO,SAAS;AAAA,EACd9J,EAAUC,EAAM;AAAA,EAChBa;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAA;AAbG,IAAMuJ,KAANP;AA6wBP,eAAe,OAAO,aAAaO,EAAM;","x_google_ignoreList":[0,1,2,3,4,10,11,12,82]}
|