@hypen-space/web 0.4.32 → 0.4.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/canvas/accessibility.js +19 -9
  2. package/dist/canvas/accessibility.js.map +2 -2
  3. package/dist/canvas/events.d.ts +7 -0
  4. package/dist/canvas/events.js +53 -17
  5. package/dist/canvas/events.js.map +3 -3
  6. package/dist/canvas/index.js +19 -2134
  7. package/dist/canvas/index.js.map +3 -11
  8. package/dist/canvas/input.js +19 -9
  9. package/dist/canvas/input.js.map +2 -2
  10. package/dist/canvas/layout.js +19 -9
  11. package/dist/canvas/layout.js.map +2 -2
  12. package/dist/canvas/paint.d.ts +4 -0
  13. package/dist/canvas/paint.js +100 -11
  14. package/dist/canvas/paint.js.map +3 -3
  15. package/dist/canvas/renderer.js +821 -707
  16. package/dist/canvas/renderer.js.map +7 -7
  17. package/dist/canvas/text.js +19 -9
  18. package/dist/canvas/text.js.map +2 -2
  19. package/dist/canvas/utils.js +19 -9
  20. package/dist/canvas/utils.js.map +2 -2
  21. package/dist/client.js +19 -3863
  22. package/dist/client.js.map +3 -57
  23. package/dist/dom/applicators/advanced-layout.js +19 -9
  24. package/dist/dom/applicators/advanced-layout.js.map +2 -2
  25. package/dist/dom/applicators/background.js +19 -9
  26. package/dist/dom/applicators/background.js.map +2 -2
  27. package/dist/dom/applicators/border.js +19 -9
  28. package/dist/dom/applicators/border.js.map +2 -2
  29. package/dist/dom/applicators/color.js +19 -9
  30. package/dist/dom/applicators/color.js.map +2 -2
  31. package/dist/dom/applicators/display.js +19 -9
  32. package/dist/dom/applicators/display.js.map +2 -2
  33. package/dist/dom/applicators/effects.js +19 -9
  34. package/dist/dom/applicators/effects.js.map +2 -2
  35. package/dist/dom/applicators/events.js +26 -10
  36. package/dist/dom/applicators/events.js.map +3 -3
  37. package/dist/dom/applicators/font.js +19 -9
  38. package/dist/dom/applicators/font.js.map +2 -2
  39. package/dist/dom/applicators/index.js +26 -10
  40. package/dist/dom/applicators/index.js.map +3 -3
  41. package/dist/dom/applicators/layout.js +19 -9
  42. package/dist/dom/applicators/layout.js.map +2 -2
  43. package/dist/dom/applicators/margin.js +19 -9
  44. package/dist/dom/applicators/margin.js.map +2 -2
  45. package/dist/dom/applicators/padding.js +19 -9
  46. package/dist/dom/applicators/padding.js.map +2 -2
  47. package/dist/dom/applicators/size.js +19 -9
  48. package/dist/dom/applicators/size.js.map +2 -2
  49. package/dist/dom/applicators/transform.js +19 -9
  50. package/dist/dom/applicators/transform.js.map +2 -2
  51. package/dist/dom/applicators/transition.js +19 -9
  52. package/dist/dom/applicators/transition.js.map +2 -2
  53. package/dist/dom/applicators/typography.js +19 -9
  54. package/dist/dom/applicators/typography.js.map +2 -2
  55. package/dist/dom/canvas/index.js +19 -9
  56. package/dist/dom/canvas/index.js.map +2 -2
  57. package/dist/dom/components/app.js +19 -9
  58. package/dist/dom/components/app.js.map +2 -2
  59. package/dist/dom/components/audio.js +19 -9
  60. package/dist/dom/components/audio.js.map +2 -2
  61. package/dist/dom/components/avatar.js +19 -9
  62. package/dist/dom/components/avatar.js.map +2 -2
  63. package/dist/dom/components/badge.js +19 -9
  64. package/dist/dom/components/badge.js.map +2 -2
  65. package/dist/dom/components/button.js +19 -9
  66. package/dist/dom/components/button.js.map +2 -2
  67. package/dist/dom/components/card.js +19 -9
  68. package/dist/dom/components/card.js.map +2 -2
  69. package/dist/dom/components/center.js +19 -9
  70. package/dist/dom/components/center.js.map +2 -2
  71. package/dist/dom/components/checkbox.js +19 -9
  72. package/dist/dom/components/checkbox.js.map +2 -2
  73. package/dist/dom/components/column.js +19 -9
  74. package/dist/dom/components/column.js.map +2 -2
  75. package/dist/dom/components/container.js +19 -9
  76. package/dist/dom/components/container.js.map +2 -2
  77. package/dist/dom/components/divider.js +19 -9
  78. package/dist/dom/components/divider.js.map +2 -2
  79. package/dist/dom/components/grid.js +19 -9
  80. package/dist/dom/components/grid.js.map +2 -2
  81. package/dist/dom/components/heading.js +19 -9
  82. package/dist/dom/components/heading.js.map +2 -2
  83. package/dist/dom/components/hypenapp.js +19 -9
  84. package/dist/dom/components/hypenapp.js.map +2 -2
  85. package/dist/dom/components/image.js +19 -9
  86. package/dist/dom/components/image.js.map +2 -2
  87. package/dist/dom/components/index.js +20 -10
  88. package/dist/dom/components/index.js.map +3 -3
  89. package/dist/dom/components/input.js +19 -9
  90. package/dist/dom/components/input.js.map +2 -2
  91. package/dist/dom/components/link.js +19 -9
  92. package/dist/dom/components/link.js.map +2 -2
  93. package/dist/dom/components/list.js +19 -9
  94. package/dist/dom/components/list.js.map +2 -2
  95. package/dist/dom/components/paragraph.js +19 -9
  96. package/dist/dom/components/paragraph.js.map +2 -2
  97. package/dist/dom/components/progressbar.js +19 -9
  98. package/dist/dom/components/progressbar.js.map +2 -2
  99. package/dist/dom/components/route.js +19 -9
  100. package/dist/dom/components/route.js.map +2 -2
  101. package/dist/dom/components/router.js +19 -9
  102. package/dist/dom/components/router.js.map +2 -2
  103. package/dist/dom/components/row.js +19 -9
  104. package/dist/dom/components/row.js.map +2 -2
  105. package/dist/dom/components/select.js +19 -9
  106. package/dist/dom/components/select.js.map +2 -2
  107. package/dist/dom/components/slider.js +19 -9
  108. package/dist/dom/components/slider.js.map +2 -2
  109. package/dist/dom/components/spacer.js +19 -9
  110. package/dist/dom/components/spacer.js.map +2 -2
  111. package/dist/dom/components/spinner.js +19 -9
  112. package/dist/dom/components/spinner.js.map +2 -2
  113. package/dist/dom/components/stack.js +19 -9
  114. package/dist/dom/components/stack.js.map +2 -2
  115. package/dist/dom/components/switch.js +19 -9
  116. package/dist/dom/components/switch.js.map +2 -2
  117. package/dist/dom/components/text.js +19 -9
  118. package/dist/dom/components/text.js.map +2 -2
  119. package/dist/dom/components/textarea.js +20 -10
  120. package/dist/dom/components/textarea.js.map +3 -3
  121. package/dist/dom/components/video.js +19 -9
  122. package/dist/dom/components/video.js.map +2 -2
  123. package/dist/dom/debug.js +19 -9
  124. package/dist/dom/debug.js.map +2 -2
  125. package/dist/dom/element-data.js +19 -9
  126. package/dist/dom/element-data.js.map +2 -2
  127. package/dist/dom/events.js +28 -18
  128. package/dist/dom/events.js.map +3 -3
  129. package/dist/dom/index.js +19 -3682
  130. package/dist/dom/index.js.map +3 -57
  131. package/dist/dom/renderer.js +31 -11
  132. package/dist/dom/renderer.js.map +5 -5
  133. package/dist/hypen.js +31 -11
  134. package/dist/hypen.js.map +5 -5
  135. package/dist/index.js +19 -5810
  136. package/dist/index.js.map +3 -66
  137. package/package.json +2 -2
  138. package/src/canvas/events.ts +35 -8
  139. package/src/canvas/paint.ts +104 -4
  140. package/src/dom/applicators/events.ts +11 -2
  141. package/src/dom/components/textarea.ts +3 -3
  142. package/src/dom/events.ts +14 -12
  143. package/src/dom/renderer.ts +8 -1
@@ -10,7 +10,7 @@
10
10
  "/**\n * Font Applicators with Google Fonts support\n */\n\nimport type { ApplicatorHandler } from \"./types.js\";\n\n// Track loaded Google Fonts to avoid duplicate link tags\nconst loadedGoogleFonts = new Set<string>();\n\n// System font keywords that shouldn't be loaded from Google Fonts\nconst systemFontKeywords = new Set([\n \"default\", \"system\", \"system-ui\", \"inherit\", \"initial\", \"unset\",\n \"serif\", \"sans-serif\", \"monospace\", \"cursive\", \"fantasy\",\n \"-apple-system\", \"BlinkMacSystemFont\", \"Segoe UI\", \"Arial\", \"Helvetica\",\n \"Times New Roman\", \"Georgia\", \"Courier New\", \"Verdana\", \"Tahoma\",\n]);\n\n/**\n * Check if a font name is a system font or generic CSS font.\n */\nfunction isSystemFont(fontName: string): boolean {\n const normalized = fontName.toLowerCase().trim();\n return systemFontKeywords.has(normalized) ||\n normalized.startsWith(\"-\") ||\n normalized.startsWith(\"ui-\");\n}\n\n/**\n * Load a Google Font by injecting a link tag.\n * @param fontName - The Google Font name (e.g., \"Roboto\", \"Open Sans\")\n */\nfunction loadGoogleFont(fontName: string): void {\n const normalized = fontName.trim();\n\n // Skip if already loaded or is a system font\n if (loadedGoogleFonts.has(normalized) || isSystemFont(normalized)) {\n return;\n }\n\n // Mark as loading to avoid duplicates\n loadedGoogleFonts.add(normalized);\n\n // Create link element for Google Fonts\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = `https://fonts.googleapis.com/css2?family=${encodeURIComponent(normalized)}:wght@100;200;300;400;500;600;700;800;900&display=swap`;\n\n // Add to document head\n document.head.appendChild(link);\n}\n\n/**\n * Parse a fontFamily value and load any Google Fonts.\n * Returns a CSS-safe font-family string.\n */\nfunction processFontFamily(value: string): string {\n // Split by comma to handle font stacks\n const fonts = value.split(\",\").map(f => f.trim().replace(/[\"']/g, \"\"));\n\n for (const font of fonts) {\n if (!isSystemFont(font)) {\n loadGoogleFont(font);\n }\n }\n\n // Return original value with proper quoting for CSS\n return fonts.map(f => {\n // Quote font names that contain spaces or special characters\n if (f.includes(\" \") && !f.startsWith('\"') && !f.startsWith(\"'\")) {\n return `\"${f}\"`;\n }\n return f;\n }).join(\", \");\n}\n\nexport const fontHandlers: Record<string, ApplicatorHandler> = {\n fontSize: (el, value) => {\n el.style.fontSize = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n fontWeight: (el, value) => {\n el.style.fontWeight = String(value);\n },\n\n fontFamily: (el, value) => {\n const fontValue = String(value);\n // Process font family and load Google Fonts as needed\n el.style.fontFamily = processFontFamily(fontValue);\n },\n\n textAlign: (el, value) => {\n el.style.textAlign = String(value);\n },\n\n lineHeight: (el, value) => {\n el.style.lineHeight = String(value);\n },\n\n fontStyle: (el, value) => {\n // Support: normal, italic, oblique\n el.style.fontStyle = String(value);\n },\n\n textTransform: (el, value) => {\n // Support: none, capitalize, uppercase, lowercase\n el.style.textTransform = String(value);\n },\n};\n\n// Export the font loading utility for manual use\nexport const GoogleFonts = {\n /**\n * Preload a Google Font before it's used.\n */\n preload: loadGoogleFont,\n\n /**\n * Check if a font has been loaded.\n */\n isLoaded: (fontName: string) => loadedGoogleFonts.has(fontName.trim()),\n\n /**\n * Get list of loaded fonts.\n */\n getLoadedFonts: () => Array.from(loadedGoogleFonts),\n\n /**\n * Popular Google Fonts for reference.\n */\n popular: [\n \"Roboto\",\n \"Open Sans\",\n \"Lato\",\n \"Montserrat\",\n \"Poppins\",\n \"Inter\",\n \"Nunito\",\n \"Playfair Display\",\n \"Merriweather\",\n \"Source Code Pro\",\n \"Fira Code\",\n \"JetBrains Mono\",\n \"Raleway\",\n \"Ubuntu\",\n \"Oswald\",\n \"Quicksand\",\n \"Work Sans\",\n \"Rubik\",\n \"Karla\",\n \"DM Sans\",\n ],\n};\n",
11
11
  "/**\n * Layout Applicators (Flexbox/Grid)\n */\n\nimport type { ApplicatorHandler } from \"./types.js\";\n\n/**\n * Maps Hypen alignment values to CSS flexbox values.\n * Ensures consistent cross-platform API (Android/iOS/Web).\n */\nexport function mapAlignmentValue(value: string): string {\n const v = String(value).toLowerCase();\n switch (v) {\n // Positional values -> CSS equivalents\n case \"top\":\n case \"start\":\n case \"leading\":\n case \"left\":\n return \"flex-start\";\n case \"bottom\":\n case \"end\":\n case \"trailing\":\n case \"right\":\n return \"flex-end\";\n case \"center\":\n return \"center\";\n // Spacing values -> CSS equivalents\n case \"spacebetween\":\n case \"space-between\":\n return \"space-between\";\n case \"spacearound\":\n case \"space-around\":\n return \"space-around\";\n case \"spaceevenly\":\n case \"space-evenly\":\n return \"space-evenly\";\n // Pass through CSS values as-is\n default:\n return v;\n }\n}\n\nexport const layoutHandlers: Record<string, ApplicatorHandler> = {\n // Unified alignment API - works for both Column and Row\n verticalAlignment: (el, value) => {\n const val = mapAlignmentValue(String(value));\n // Check display and flex-direction to determine which CSS property to set\n const display = el.style.display || getComputedStyle(el).display;\n const flexDirection = el.style.flexDirection || getComputedStyle(el).flexDirection;\n\n if (display === \"grid\") {\n // For Grid (Stack): use align-items to align children vertically\n el.style.alignItems = val;\n } else if (flexDirection === \"column\" || flexDirection === \"column-reverse\") {\n // For column: vertical is the main axis (justify-content)\n el.style.justifyContent = val;\n } else {\n // For row: vertical is the cross axis (align-items)\n el.style.alignItems = val;\n }\n },\n\n horizontalAlignment: (el, value) => {\n const val = mapAlignmentValue(String(value));\n // Check display and flex-direction to determine which CSS property to set\n const display = el.style.display || getComputedStyle(el).display;\n const flexDirection = el.style.flexDirection || getComputedStyle(el).flexDirection;\n\n if (display === \"grid\") {\n // For Grid (Stack): use justify-items to align children horizontally\n el.style.justifyItems = val;\n } else if (flexDirection === \"column\" || flexDirection === \"column-reverse\") {\n // For column: horizontal is the cross axis (align-items)\n el.style.alignItems = val;\n } else if (flexDirection === \"row\" || flexDirection === \"row-reverse\") {\n // For row: horizontal is the main axis (justify-content)\n el.style.justifyContent = val;\n // For arrangement to have visible effect, Row needs to fill available width\n // (matching iOS/Android behavior where non-start alignment auto-expands)\n // Only auto-expand if not scrollable\n if (val !== \"flex-start\" && el.style.overflow !== \"auto\" && el.style.overflowX !== \"auto\") {\n el.style.width = \"100%\";\n }\n } else {\n // Fallback for other display types\n el.style.justifyContent = val;\n }\n },\n\n // Legacy aliases (kept for backward compatibility)\n horizontalAlign: (el, value) => {\n el.style.justifyContent = mapAlignmentValue(String(value));\n },\n\n verticalAlign: (el, value) => {\n el.style.alignItems = mapAlignmentValue(String(value));\n },\n\n gap: (el, value) => {\n el.style.gap = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n // weight: unified cross-platform API (same as flex)\n // Use .weight(1) to make element take remaining space in Row/Column\n weight: (el, value) => {\n el.style.flex = String(value);\n // Mark element as having flex for CSS parent detection\n el.dataset.hypenFlex = \"true\";\n },\n\n // flex: CSS flex shorthand (kept for CSS compatibility)\n flex: (el, value) => {\n el.style.flex = String(value);\n // Mark element as having flex for CSS parent detection\n el.dataset.hypenFlex = \"true\";\n },\n\n flexGrow: (el, value) => {\n el.style.flexGrow = String(value);\n },\n\n flexShrink: (el, value) => {\n el.style.flexShrink = String(value);\n },\n\n cursor: (el, value) => {\n el.style.cursor = String(value);\n },\n\n overflow: (el, value) => {\n el.style.overflow = String(value);\n },\n\n scrollable: (el, value) => {\n if (value === true || value === \"true\") {\n el.style.overflow = \"auto\";\n } else if (value === false || value === \"false\") {\n el.style.overflow = \"hidden\";\n } else if (value === \"vertical\") {\n el.style.overflowX = \"hidden\";\n el.style.overflowY = \"auto\";\n } else if (value === \"horizontal\") {\n el.style.overflowX = \"auto\";\n el.style.overflowY = \"hidden\";\n } else if (value === \"both\") {\n el.style.overflow = \"auto\";\n } else {\n el.style.overflow = String(value);\n }\n },\n};\n",
12
12
  "/**\n * Type-Safe Element Data\n *\n * Provides strongly-typed access to Hypen-specific data attached to DOM elements.\n * Eliminates `as any` casts throughout the codebase.\n */\n\nimport { type DisposableStack, getElementDisposables } from \"@hypen-space/core/disposable\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Engine interface for dispatching actions\n */\nexport interface IEngine {\n dispatchAction(name: string, payload?: unknown): void;\n}\n\n/**\n * All Hypen-specific data attached to an element\n */\nexport interface HypenElementData {\n /** Engine reference for action dispatch */\n engine?: IEngine;\n /** Target key for keyboard events (e.g., \"Enter\", \"Escape\") */\n keyTarget?: string;\n /** Set of registered event type:action pairs */\n registeredEvents?: Set<string>;\n /** Custom element metadata */\n meta?: Record<string, unknown>;\n}\n\n// ============================================================================\n// Private Storage\n// ============================================================================\n\n/**\n * WeakMap to store Hypen data without polluting the element\n */\nconst elementDataMap = new WeakMap<HTMLElement, HypenElementData>();\n\n// ============================================================================\n// Core API\n// ============================================================================\n\n/**\n * Get Hypen data for an element, creating if needed\n */\nexport function getHypenData(element: HTMLElement): HypenElementData {\n let data = elementDataMap.get(element);\n if (!data) {\n data = {};\n elementDataMap.set(element, data);\n }\n return data;\n}\n\n/**\n * Check if element has Hypen data\n */\nexport function hasHypenData(element: HTMLElement): boolean {\n return elementDataMap.has(element);\n}\n\n/**\n * Clear Hypen data from an element\n */\nexport function clearHypenData(element: HTMLElement): void {\n elementDataMap.delete(element);\n}\n\n// ============================================================================\n// Engine Access\n// ============================================================================\n\n/**\n * Get the engine attached to an element\n */\nexport function getEngine(element: HTMLElement): IEngine | undefined {\n return getHypenData(element).engine;\n}\n\n/**\n * Set the engine on an element\n */\nexport function setEngine(element: HTMLElement, engine: IEngine): void {\n getHypenData(element).engine = engine;\n}\n\n/**\n * Find engine by walking up the DOM tree\n */\nexport function findEngine(element: HTMLElement): IEngine | undefined {\n let current: HTMLElement | null = element;\n while (current) {\n const engine = getEngine(current);\n if (engine) return engine;\n current = current.parentElement;\n }\n return undefined;\n}\n\n// ============================================================================\n// Event Registration Tracking\n// ============================================================================\n\n/**\n * Get registered events set for an element\n */\nexport function getRegisteredEvents(element: HTMLElement): Set<string> {\n const data = getHypenData(element);\n if (!data.registeredEvents) {\n data.registeredEvents = new Set();\n }\n return data.registeredEvents;\n}\n\n/**\n * Check if an event handler is registered\n */\nexport function isEventRegistered(element: HTMLElement, eventKey: string): boolean {\n return getRegisteredEvents(element).has(eventKey);\n}\n\n/**\n * Mark an event handler as registered\n */\nexport function registerEvent(element: HTMLElement, eventKey: string): void {\n getRegisteredEvents(element).add(eventKey);\n}\n\n/**\n * Unregister an event handler\n */\nexport function unregisterEvent(element: HTMLElement, eventKey: string): void {\n getRegisteredEvents(element).delete(eventKey);\n}\n\n// ============================================================================\n// Keyboard Event Key Target\n// ============================================================================\n\n/**\n * Get the target key for keyboard events\n */\nexport function getKeyTarget(element: HTMLElement): string | undefined {\n return getHypenData(element).keyTarget;\n}\n\n/**\n * Set the target key for keyboard events\n */\nexport function setKeyTarget(element: HTMLElement, key: string): void {\n getHypenData(element).keyTarget = key;\n}\n\n// ============================================================================\n// Metadata\n// ============================================================================\n\n/**\n * Get custom metadata value\n */\nexport function getMeta<T>(element: HTMLElement, key: string): T | undefined {\n return getHypenData(element).meta?.[key] as T | undefined;\n}\n\n/**\n * Set custom metadata value\n */\nexport function setMeta<T>(element: HTMLElement, key: string, value: T): void {\n const data = getHypenData(element);\n if (!data.meta) {\n data.meta = {};\n }\n data.meta[key] = value;\n}\n\n// ============================================================================\n// Cleanup\n// ============================================================================\n\n/**\n * Dispose all resources attached to an element and clear data\n * Call this when removing an element from the DOM\n */\nexport function disposeHypenElement(element: HTMLElement): void {\n // Dispose any registered disposables\n try {\n const disposables = getElementDisposables(element);\n disposables.dispose();\n } catch {\n // Ignore if no disposables\n }\n\n // Clear Hypen data\n clearHypenData(element);\n}\n\n// ============================================================================\n// Legacy Compatibility Layer\n// ============================================================================\n\n/**\n * Symbol-based legacy accessor (for backwards compatibility)\n * Use the typed functions above instead when possible\n */\nconst HYPEN_ENGINE_SYMBOL = Symbol.for(\"hypen.engine\");\nconst REGISTERED_EVENTS_SYMBOL = Symbol.for(\"hypen.registeredEvents\");\nconst KEY_TARGET_SYMBOL = Symbol.for(\"hypen.keyTarget\");\n\n/**\n * Legacy accessor for engine (backwards compatible with existing code)\n */\nexport function getLegacyEngine(element: HTMLElement): IEngine | undefined {\n // Try new storage first\n const engine = getEngine(element);\n if (engine) return engine;\n\n // Fall back to legacy storage\n return (element as any)[HYPEN_ENGINE_SYMBOL] ??\n (element as any).__hypenEngine;\n}\n\n/**\n * Legacy setter for engine (backwards compatible)\n */\nexport function setLegacyEngine(element: HTMLElement, engine: IEngine): void {\n // Set in both locations for compatibility\n setEngine(element, engine);\n (element as any).__hypenEngine = engine;\n}\n",
13
- "/**\n * Event Applicators\n *\n * Handles event applicators like onClick, onPress, etc.\n * Uses a factory pattern to reduce boilerplate and ensure consistency.\n */\n\nimport type { ApplicatorHandler } from \"./types.js\";\nimport {\n getElementDisposables,\n disposableListener,\n disposableTimeout,\n type Disposable,\n} from \"@hypen-space/core/disposable\";\nimport { frameworkLoggers } from \"@hypen-space/core/logger\";\nimport {\n type IEngine,\n getEngine,\n getRegisteredEvents,\n registerEvent,\n unregisterEvent,\n getKeyTarget,\n setKeyTarget,\n} from \"../element-data.js\";\n\nconst log = frameworkLoggers.events;\n\n// ============================================================================\n// Types\n// ============================================================================\n\ninterface EventHandlerOptions {\n /** Custom payload extractor for this event type */\n extractPayload?: (event: Event, element: HTMLElement) => Record<string, unknown>;\n /** Throttle events to max one per N milliseconds */\n throttleMs?: number;\n /** Prevent default behavior */\n preventDefault?: boolean;\n /** Use passive listener (for scroll, touch) */\n passive?: boolean;\n /** Key to listen for (keyboard events) */\n key?: string;\n}\n\n\n// ============================================================================\n// Utility Functions\n// ============================================================================\n\n/**\n * Convert Map or nested objects to plain objects\n */\nfunction toPlainObject(value: unknown): unknown {\n if (value instanceof Map) {\n const obj: Record<string, unknown> = {};\n for (const [key, val] of value.entries()) {\n obj[key] = toPlainObject(val);\n }\n return obj;\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => toPlainObject(item));\n }\n\n if (value && typeof value === \"object\") {\n const obj: Record<string, unknown> = {};\n for (const [key, val] of Object.entries(value)) {\n obj[key] = toPlainObject(val);\n }\n return obj;\n }\n\n return value;\n}\n\n/**\n * Extract action name and custom payload from an applicator value\n */\nfunction extractActionDetails(value: unknown): {\n actionName: string | null;\n payload: Record<string, unknown>;\n} {\n // String format: \"@actions.doSomething\" or \"@doSomething\"\n if (typeof value === \"string\") {\n if (!value.startsWith(\"@\")) {\n return { actionName: null, payload: {} };\n }\n\n let actionName = value.substring(1);\n if (actionName.startsWith(\"actions.\")) {\n actionName = actionName.substring(8);\n }\n return { actionName, payload: {} };\n }\n\n // Object format: { \"0\": \"@actions.doSomething\", \"customKey\": \"value\" }\n if (value && typeof value === \"object\") {\n const plain = toPlainObject(value) as Record<string, unknown>;\n const payload: Record<string, unknown> = {};\n let actionName: string | null = null;\n\n if (plain && typeof plain === \"object\") {\n const actionValue = plain[\"0\"];\n if (typeof actionValue === \"string\" && actionValue.startsWith(\"@\")) {\n actionName = actionValue.substring(1);\n if (actionName.startsWith(\"actions.\")) {\n actionName = actionName.substring(8);\n }\n }\n\n for (const [key, val] of Object.entries(plain)) {\n if (key !== \"0\") {\n // If the key is numeric (like \"1\", \"2\") and the value is an object,\n // merge the object's keys into the payload directly.\n // This handles: .onClick(\"@actions.foo\", { id: \"123\" })\n // where the second positional arg becomes \"1\": { id: \"123\" }\n if (/^\\d+$/.test(key) && val && typeof val === \"object\" && !Array.isArray(val)) {\n for (const [innerKey, innerVal] of Object.entries(val)) {\n payload[innerKey] = innerVal;\n }\n } else {\n payload[key] = val;\n }\n }\n }\n }\n\n return { actionName, payload };\n }\n\n return { actionName: null, payload: {} };\n}\n\n/**\n * Extract relevant data from a DOM event\n */\nfunction extractEventData(event: Event, element: HTMLElement): Record<string, unknown> {\n const data: Record<string, unknown> = {\n type: event.type,\n timestamp: Date.now(),\n };\n\n // Mouse events\n if (event instanceof MouseEvent) {\n data.clientX = event.clientX;\n data.clientY = event.clientY;\n data.button = event.button;\n }\n\n // Keyboard events\n if (event instanceof KeyboardEvent) {\n data.key = event.key;\n data.code = event.code;\n data.ctrlKey = event.ctrlKey;\n data.shiftKey = event.shiftKey;\n data.altKey = event.altKey;\n data.metaKey = event.metaKey;\n }\n\n // Input element values\n if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n data.value = element.value;\n }\n\n // Select element values\n if (element instanceof HTMLSelectElement) {\n data.value = element.value;\n data.selectedIndex = element.selectedIndex;\n }\n\n // Form data\n if (event.type === \"submit\" && element instanceof HTMLFormElement) {\n data.formData = new FormData(element);\n }\n\n return data;\n}\n\n\n/**\n * Capitalize first letter of a string\n */\nfunction capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\n// ============================================================================\n// Event Handler Factory\n// ============================================================================\n\n\n/**\n * Create an event handler applicator with common boilerplate\n */\nfunction createEventHandler(\n eventType: string,\n options: EventHandlerOptions = {}\n): ApplicatorHandler {\n return (element: HTMLElement, value: unknown) => {\n const { actionName, payload: customPayload } = extractActionDetails(value);\n\n if (!actionName) {\n log.warn(`${eventType} requires an action reference starting with @, got:`, value);\n return;\n }\n\n const disposables = getElementDisposables(element);\n\n // Track that we've registered this event type\n // The disposable stack handles cleanup automatically\n const eventKey = `${eventType}:${actionName}`;\n if (getRegisteredEvents(element).has(eventKey)) {\n // Already registered - skip to avoid duplicates\n // This can happen during re-renders\n return;\n }\n registerEvent(element, eventKey);\n\n // Create throttle state if needed\n let throttleTimer: Disposable | null = null;\n\n // Create the event listener\n const listener = (event: Event) => {\n // Handle throttling\n if (options.throttleMs && throttleTimer) {\n return;\n }\n\n if (options.throttleMs) {\n throttleTimer = disposableTimeout(() => {\n throttleTimer = null;\n }, options.throttleMs);\n }\n\n // Handle preventDefault\n if (options.preventDefault) {\n event.preventDefault();\n }\n\n // Build payload\n const payload =\n Object.keys(customPayload).length > 0\n ? { ...customPayload }\n : options.extractPayload\n ? options.extractPayload(event, element)\n : extractEventData(event, element);\n\n // Dispatch to engine\n const engine = getEngine(element);\n if (engine) {\n engine.dispatchAction(actionName, payload);\n }\n };\n\n // Register the listener using disposable pattern\n disposables.add(\n disposableListener(element, eventType, listener, {\n passive: options.passive,\n })\n );\n\n // Clean up registered events tracking on dispose\n disposables.addCallback(() => {\n unregisterEvent(element, eventKey);\n if (throttleTimer) {\n throttleTimer.dispose();\n }\n });\n };\n}\n\n/**\n * Create a keyboard event handler that filters by key\n */\nfunction createKeyHandler(defaultKey: string = \"Enter\"): ApplicatorHandler {\n return (element: HTMLElement, value: unknown) => {\n const { actionName, payload: customPayload } = extractActionDetails(value);\n\n if (!actionName) {\n log.warn(`onKey requires an action reference starting with @, got:`, value);\n return;\n }\n\n const disposables = getElementDisposables(element);\n\n const eventKey = `keydown:${actionName}:${defaultKey}`;\n if (getRegisteredEvents(element).has(eventKey)) {\n return;\n }\n registerEvent(element, eventKey);\n\n // Get target key from element data or use default\n const targetKey = getKeyTarget(element) || defaultKey;\n const keyToMatch = targetKey.toLowerCase() === \"return\" ? \"Enter\" : targetKey;\n\n const listener = (event: Event) => {\n const keyEvent = event as KeyboardEvent;\n if (keyEvent.key !== keyToMatch) {\n return;\n }\n\n event.preventDefault();\n\n const target = event.target as HTMLInputElement | HTMLTextAreaElement;\n const payload =\n Object.keys(customPayload).length > 0\n ? { ...customPayload }\n : {\n type: event.type,\n timestamp: Date.now(),\n key: keyEvent.key,\n code: keyEvent.code,\n value: target.value,\n input: target.value,\n ctrlKey: keyEvent.ctrlKey,\n shiftKey: keyEvent.shiftKey,\n altKey: keyEvent.altKey,\n metaKey: keyEvent.metaKey,\n };\n\n const engine = getEngine(element);\n if (engine) {\n engine.dispatchAction(actionName, payload);\n }\n };\n\n disposables.add(disposableListener(element, \"keydown\", listener));\n disposables.addCallback(() => {\n unregisterEvent(element, eventKey);\n });\n };\n}\n\n/**\n * Create a long-click/long-press handler\n */\nfunction createLongClickHandler(thresholdMs: number = 500): ApplicatorHandler {\n return (element: HTMLElement, value: unknown) => {\n const { actionName, payload: customPayload } = extractActionDetails(value);\n\n if (!actionName) {\n log.warn(`onLongClick requires an action reference starting with @, got:`, value);\n return;\n }\n\n const disposables = getElementDisposables(element);\n\n const eventKey = `longclick:${actionName}`;\n if (getRegisteredEvents(element).has(eventKey)) {\n return;\n }\n registerEvent(element, eventKey);\n\n let longClickTimer: Disposable | null = null;\n\n const downListener = (event: Event) => {\n const pointerEvent = event as PointerEvent;\n\n longClickTimer = disposableTimeout(() => {\n const payload =\n Object.keys(customPayload).length > 0\n ? { ...customPayload }\n : {\n type: \"longclick\",\n timestamp: Date.now(),\n clientX: pointerEvent.clientX,\n clientY: pointerEvent.clientY,\n };\n\n const engine = getEngine(element);\n if (engine) {\n engine.dispatchAction(actionName, payload);\n }\n\n longClickTimer = null;\n }, thresholdMs);\n };\n\n const cancelListener = () => {\n if (longClickTimer) {\n longClickTimer.dispose();\n longClickTimer = null;\n }\n };\n\n disposables.add(disposableListener(element, \"pointerdown\", downListener));\n disposables.add(disposableListener(element, \"pointerup\", cancelListener));\n disposables.add(disposableListener(element, \"pointerleave\", cancelListener));\n disposables.addCallback(() => {\n unregisterEvent(element, eventKey);\n cancelListener();\n });\n };\n}\n\n// ============================================================================\n// Payload Extractors\n// ============================================================================\n\nconst inputPayload = (event: Event, element: HTMLElement): Record<string, unknown> => {\n const target = element as HTMLInputElement | HTMLTextAreaElement;\n return {\n type: event.type,\n timestamp: Date.now(),\n value: target.value,\n input: target.value,\n };\n};\n\nconst scrollPayload = (_event: Event, element: HTMLElement): Record<string, unknown> => {\n const scrollTop = element.scrollTop;\n const scrollHeight = element.scrollHeight;\n const clientHeight = element.clientHeight;\n const scrollPercentage =\n scrollHeight - clientHeight > 0\n ? (scrollTop / (scrollHeight - clientHeight)) * 100\n : 0;\n\n const nearBottom =\n scrollHeight - scrollTop - clientHeight < 100 || scrollPercentage > 90;\n\n return {\n type: \"scroll\",\n timestamp: Date.now(),\n scrollTop,\n scrollLeft: element.scrollLeft,\n scrollHeight,\n scrollWidth: element.scrollWidth,\n clientHeight,\n clientWidth: element.clientWidth,\n scrollPercentage: Math.round(scrollPercentage),\n nearBottom,\n atBottom: scrollHeight - scrollTop === clientHeight,\n atTop: scrollTop === 0,\n };\n};\n\nconst focusPayload = (event: Event, element: HTMLElement): Record<string, unknown> => ({\n type: event.type,\n timestamp: Date.now(),\n value: (element as HTMLInputElement).value ?? undefined,\n});\n\nconst mousePayload = (event: Event, _element: HTMLElement): Record<string, unknown> => {\n const mouseEvent = event as MouseEvent;\n return {\n type: event.type,\n timestamp: Date.now(),\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n };\n};\n\n// ============================================================================\n// Event Handlers Export\n// ============================================================================\n\nexport const eventHandlers: Record<string, ApplicatorHandler> = {\n // Basic click/press\n onClick: createEventHandler(\"click\"),\n onPress: createEventHandler(\"click\"), // Alias for mobile-style naming\n\n // Form events\n onChange: createEventHandler(\"change\"),\n onSubmit: createEventHandler(\"submit\", { preventDefault: true }),\n onInput: createEventHandler(\"input\", { extractPayload: inputPayload }),\n\n // Keyboard events\n onKey: createKeyHandler(\"Enter\"),\n \"onKey.key\": (element: HTMLElement, value: unknown) => {\n // Store the target key for the action handler to use\n setKeyTarget(element, String(value));\n },\n \"onKey.action\": createKeyHandler(\"Enter\"),\n\n // Scroll (throttled)\n onScroll: createEventHandler(\"scroll\", {\n throttleMs: 100,\n passive: true,\n extractPayload: scrollPayload,\n }),\n\n // Long click/press\n onLongClick: createLongClickHandler(500),\n onLongPress: createLongClickHandler(500), // Alias for mobile-style naming\n\n // Focus events\n onFocus: createEventHandler(\"focus\", { extractPayload: focusPayload }),\n onBlur: createEventHandler(\"blur\", { extractPayload: focusPayload }),\n\n // Mouse hover events\n onMouseEnter: createEventHandler(\"mouseenter\", { extractPayload: mousePayload }),\n onMouseLeave: createEventHandler(\"mouseleave\", { extractPayload: mousePayload }),\n\n // Two-way binding for .bind(@state.x)\n bind: ((element: HTMLElement, value: unknown) => {\n const bindPath = typeof value === \"string\" ? value : null;\n if (!bindPath) return;\n\n const disposables = getElementDisposables(element);\n const eventKey = `bind:${bindPath}`;\n if (getRegisteredEvents(element).has(eventKey)) return;\n registerEvent(element, eventKey);\n\n // Determine the target element, event type, and value extractor based on component type\n const hypenType = element.dataset?.hypenType;\n\n if (hypenType === \"checkbox\" || hypenType === \"switch\") {\n // Checkbox/Switch: wrapper <label> containing <input type=\"checkbox\">\n const input = element.querySelector('input[type=\"checkbox\"]') as HTMLInputElement | null;\n if (!input) return;\n\n const listener = () => {\n const engine = getEngine(element);\n if (engine) {\n engine.dispatchAction(\"__hypen_bind\", {\n path: bindPath,\n value: input.checked,\n });\n }\n };\n\n disposables.add(\n disposableListener(input, \"change\", listener, { passive: true })\n );\n } else if (element instanceof HTMLSelectElement) {\n // Select: listen to change event, read .value\n const listener = () => {\n const engine = getEngine(element);\n if (engine) {\n engine.dispatchAction(\"__hypen_bind\", {\n path: bindPath,\n value: element.value,\n });\n }\n };\n\n disposables.add(\n disposableListener(element, \"change\", listener, { passive: true })\n );\n } else if (\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement\n ) {\n // Input/Textarea: listen to input event, read .value\n const listener = () => {\n const engine = getEngine(element);\n if (engine) {\n engine.dispatchAction(\"__hypen_bind\", {\n path: bindPath,\n value: element.value,\n });\n }\n };\n\n disposables.add(\n disposableListener(element, \"input\", listener, { passive: true })\n );\n } else {\n return;\n }\n\n disposables.addCallback(() => unregisterEvent(element, eventKey));\n }) as ApplicatorHandler,\n};\n",
13
+ "/**\n * Event Applicators\n *\n * Handles event applicators like onClick, onPress, etc.\n * Uses a factory pattern to reduce boilerplate and ensure consistency.\n */\n\nimport type { ApplicatorHandler } from \"./types.js\";\nimport {\n getElementDisposables,\n disposableListener,\n disposableTimeout,\n type Disposable,\n} from \"@hypen-space/core/disposable\";\nimport { frameworkLoggers } from \"@hypen-space/core/logger\";\nimport {\n type IEngine,\n getEngine,\n getRegisteredEvents,\n registerEvent,\n unregisterEvent,\n getKeyTarget,\n setKeyTarget,\n} from \"../element-data.js\";\n\nconst log = frameworkLoggers.events;\n\n// ============================================================================\n// Types\n// ============================================================================\n\ninterface EventHandlerOptions {\n /** Custom payload extractor for this event type */\n extractPayload?: (event: Event, element: HTMLElement) => Record<string, unknown>;\n /** Throttle events to max one per N milliseconds */\n throttleMs?: number;\n /** Prevent default behavior */\n preventDefault?: boolean;\n /** Use passive listener (for scroll, touch) */\n passive?: boolean;\n /** Key to listen for (keyboard events) */\n key?: string;\n}\n\n\n// ============================================================================\n// Utility Functions\n// ============================================================================\n\n/**\n * Convert Map or nested objects to plain objects\n */\nfunction toPlainObject(value: unknown): unknown {\n if (value instanceof Map) {\n const obj: Record<string, unknown> = {};\n for (const [key, val] of value.entries()) {\n obj[key] = toPlainObject(val);\n }\n return obj;\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => toPlainObject(item));\n }\n\n if (value && typeof value === \"object\") {\n const obj: Record<string, unknown> = {};\n for (const [key, val] of Object.entries(value)) {\n obj[key] = toPlainObject(val);\n }\n return obj;\n }\n\n return value;\n}\n\n/**\n * Extract action name and custom payload from an applicator value\n */\nfunction extractActionDetails(value: unknown): {\n actionName: string | null;\n payload: Record<string, unknown>;\n} {\n // String format: \"@actions.doSomething\" or \"@doSomething\"\n if (typeof value === \"string\") {\n if (!value.startsWith(\"@\")) {\n return { actionName: null, payload: {} };\n }\n\n let actionName = value.substring(1);\n if (actionName.startsWith(\"actions.\")) {\n actionName = actionName.substring(8);\n }\n return { actionName, payload: {} };\n }\n\n // Object format: { \"0\": \"@actions.doSomething\", \"customKey\": \"value\" }\n if (value && typeof value === \"object\") {\n const plain = toPlainObject(value) as Record<string, unknown>;\n const payload: Record<string, unknown> = {};\n let actionName: string | null = null;\n\n if (plain && typeof plain === \"object\") {\n const actionValue = plain[\"0\"];\n if (typeof actionValue === \"string\" && actionValue.startsWith(\"@\")) {\n actionName = actionValue.substring(1);\n if (actionName.startsWith(\"actions.\")) {\n actionName = actionName.substring(8);\n }\n }\n\n for (const [key, val] of Object.entries(plain)) {\n if (key !== \"0\") {\n // If the key is numeric (like \"1\", \"2\") and the value is an object,\n // merge the object's keys into the payload directly.\n // This handles: .onClick(\"@actions.foo\", { id: \"123\" })\n // where the second positional arg becomes \"1\": { id: \"123\" }\n if (/^\\d+$/.test(key) && val && typeof val === \"object\" && !Array.isArray(val)) {\n for (const [innerKey, innerVal] of Object.entries(val)) {\n payload[innerKey] = innerVal;\n }\n } else {\n payload[key] = val;\n }\n }\n }\n }\n\n return { actionName, payload };\n }\n\n return { actionName: null, payload: {} };\n}\n\n/**\n * Extract relevant data from a DOM event\n */\nfunction extractEventData(event: Event, element: HTMLElement): Record<string, unknown> {\n const data: Record<string, unknown> = {\n type: event.type,\n timestamp: Date.now(),\n };\n\n // Mouse events\n if (event instanceof MouseEvent) {\n data.clientX = event.clientX;\n data.clientY = event.clientY;\n data.button = event.button;\n }\n\n // Keyboard events\n if (event instanceof KeyboardEvent) {\n data.key = event.key;\n data.code = event.code;\n data.ctrlKey = event.ctrlKey;\n data.shiftKey = event.shiftKey;\n data.altKey = event.altKey;\n data.metaKey = event.metaKey;\n }\n\n // Input element values\n if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n data.value = element.value;\n }\n\n // Select element values\n if (element instanceof HTMLSelectElement) {\n data.value = element.value;\n data.selectedIndex = element.selectedIndex;\n }\n\n // Form data\n if (event.type === \"submit\" && element instanceof HTMLFormElement) {\n data.formData = new FormData(element);\n }\n\n return data;\n}\n\n\n/**\n * Capitalize first letter of a string\n */\nfunction capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\n// ============================================================================\n// Event Handler Factory\n// ============================================================================\n\n\n/**\n * Create an event handler applicator with common boilerplate\n */\nfunction createEventHandler(\n eventType: string,\n options: EventHandlerOptions = {}\n): ApplicatorHandler {\n return (element: HTMLElement, value: unknown) => {\n const { actionName, payload: customPayload } = extractActionDetails(value);\n\n if (!actionName) {\n log.warn(`${eventType} requires an action reference starting with @, got:`, value);\n return;\n }\n\n const disposables = getElementDisposables(element);\n\n // Track that we've registered this event type\n // The disposable stack handles cleanup automatically\n const eventKey = `${eventType}:${actionName}`;\n if (getRegisteredEvents(element).has(eventKey)) {\n // Already registered - skip to avoid duplicates\n // This can happen during re-renders\n return;\n }\n registerEvent(element, eventKey);\n\n // Create throttle state if needed\n let throttleTimer: Disposable | null = null;\n\n // Create the event listener\n const listener = (event: Event) => {\n // Handle throttling\n if (options.throttleMs && throttleTimer) {\n return;\n }\n\n if (options.throttleMs) {\n throttleTimer = disposableTimeout(() => {\n throttleTimer = null;\n }, options.throttleMs);\n }\n\n // Handle preventDefault\n if (options.preventDefault) {\n event.preventDefault();\n }\n\n // Build payload\n const payload =\n Object.keys(customPayload).length > 0\n ? { ...customPayload }\n : options.extractPayload\n ? options.extractPayload(event, element)\n : extractEventData(event, element);\n\n // Dispatch to engine, catching any async rejections\n const engine = getEngine(element);\n if (engine) {\n try {\n engine.dispatchAction(actionName, payload);\n } catch (err) {\n log.error(`Error dispatching action \"${actionName}\":`, err);\n }\n }\n };\n\n // Register the listener using disposable pattern\n disposables.add(\n disposableListener(element, eventType, listener, {\n passive: options.passive,\n })\n );\n\n // Clean up registered events tracking on dispose\n disposables.addCallback(() => {\n unregisterEvent(element, eventKey);\n if (throttleTimer) {\n throttleTimer.dispose();\n }\n });\n };\n}\n\n/**\n * Create a keyboard event handler that filters by key\n */\nfunction createKeyHandler(defaultKey: string = \"Enter\"): ApplicatorHandler {\n return (element: HTMLElement, value: unknown) => {\n const { actionName, payload: customPayload } = extractActionDetails(value);\n\n if (!actionName) {\n log.warn(`onKey requires an action reference starting with @, got:`, value);\n return;\n }\n\n const disposables = getElementDisposables(element);\n\n const eventKey = `keydown:${actionName}:${defaultKey}`;\n if (getRegisteredEvents(element).has(eventKey)) {\n return;\n }\n registerEvent(element, eventKey);\n\n // Get target key from element data or use default\n const targetKey = getKeyTarget(element) || defaultKey;\n const keyToMatch = targetKey.toLowerCase() === \"return\" ? \"Enter\" : targetKey;\n\n const listener = (event: Event) => {\n const keyEvent = event as KeyboardEvent;\n if (keyEvent.key !== keyToMatch) {\n return;\n }\n\n event.preventDefault();\n\n const target = event.target as HTMLInputElement | HTMLTextAreaElement;\n const payload =\n Object.keys(customPayload).length > 0\n ? { ...customPayload }\n : {\n type: event.type,\n timestamp: Date.now(),\n key: keyEvent.key,\n code: keyEvent.code,\n value: target.value,\n input: target.value,\n ctrlKey: keyEvent.ctrlKey,\n shiftKey: keyEvent.shiftKey,\n altKey: keyEvent.altKey,\n metaKey: keyEvent.metaKey,\n };\n\n const engine = getEngine(element);\n if (engine) {\n engine.dispatchAction(actionName, payload);\n }\n };\n\n disposables.add(disposableListener(element, \"keydown\", listener));\n disposables.addCallback(() => {\n unregisterEvent(element, eventKey);\n });\n };\n}\n\n/**\n * Create a long-click/long-press handler\n */\nfunction createLongClickHandler(thresholdMs: number = 500): ApplicatorHandler {\n return (element: HTMLElement, value: unknown) => {\n const { actionName, payload: customPayload } = extractActionDetails(value);\n\n if (!actionName) {\n log.warn(`onLongClick requires an action reference starting with @, got:`, value);\n return;\n }\n\n const disposables = getElementDisposables(element);\n\n const eventKey = `longclick:${actionName}`;\n if (getRegisteredEvents(element).has(eventKey)) {\n return;\n }\n registerEvent(element, eventKey);\n\n let longClickTimer: Disposable | null = null;\n\n const downListener = (event: Event) => {\n const pointerEvent = event as PointerEvent;\n\n longClickTimer = disposableTimeout(() => {\n const payload =\n Object.keys(customPayload).length > 0\n ? { ...customPayload }\n : {\n type: \"longclick\",\n timestamp: Date.now(),\n clientX: pointerEvent.clientX,\n clientY: pointerEvent.clientY,\n };\n\n const engine = getEngine(element);\n if (engine) {\n engine.dispatchAction(actionName, payload);\n }\n\n longClickTimer = null;\n }, thresholdMs);\n };\n\n const cancelListener = () => {\n if (longClickTimer) {\n longClickTimer.dispose();\n longClickTimer = null;\n }\n };\n\n disposables.add(disposableListener(element, \"pointerdown\", downListener));\n disposables.add(disposableListener(element, \"pointerup\", cancelListener));\n disposables.add(disposableListener(element, \"pointerleave\", cancelListener));\n disposables.addCallback(() => {\n unregisterEvent(element, eventKey);\n cancelListener();\n });\n };\n}\n\n// ============================================================================\n// Payload Extractors\n// ============================================================================\n\nconst inputPayload = (event: Event, element: HTMLElement): Record<string, unknown> => {\n const target = element as HTMLInputElement | HTMLTextAreaElement;\n return {\n type: event.type,\n timestamp: Date.now(),\n value: target.value,\n input: target.value,\n };\n};\n\nconst scrollPayload = (_event: Event, element: HTMLElement): Record<string, unknown> => {\n const scrollTop = element.scrollTop;\n const scrollHeight = element.scrollHeight;\n const clientHeight = element.clientHeight;\n const scrollPercentage =\n scrollHeight - clientHeight > 0\n ? (scrollTop / (scrollHeight - clientHeight)) * 100\n : 0;\n\n const nearBottom =\n scrollHeight - scrollTop - clientHeight < 100 || scrollPercentage > 90;\n\n return {\n type: \"scroll\",\n timestamp: Date.now(),\n scrollTop,\n scrollLeft: element.scrollLeft,\n scrollHeight,\n scrollWidth: element.scrollWidth,\n clientHeight,\n clientWidth: element.clientWidth,\n scrollPercentage: Math.round(scrollPercentage),\n nearBottom,\n atBottom: scrollHeight - scrollTop === clientHeight,\n atTop: scrollTop === 0,\n };\n};\n\nconst focusPayload = (event: Event, element: HTMLElement): Record<string, unknown> => ({\n type: event.type,\n timestamp: Date.now(),\n value: (element as HTMLInputElement).value ?? undefined,\n});\n\nconst mousePayload = (event: Event, _element: HTMLElement): Record<string, unknown> => {\n const mouseEvent = event as MouseEvent;\n return {\n type: event.type,\n timestamp: Date.now(),\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n };\n};\n\n// ============================================================================\n// Event Handlers Export\n// ============================================================================\n\nexport const eventHandlers: Record<string, ApplicatorHandler> = {\n // Basic click/press\n onClick: createEventHandler(\"click\"),\n onPress: createEventHandler(\"click\"), // Alias for mobile-style naming\n\n // Form events\n onChange: createEventHandler(\"change\"),\n onSubmit: createEventHandler(\"submit\", { preventDefault: true }),\n onInput: createEventHandler(\"input\", { extractPayload: inputPayload }),\n\n // Keyboard events\n onKey: createKeyHandler(\"Enter\"),\n \"onKey.key\": (element: HTMLElement, value: unknown) => {\n // Store the target key for the action handler to use\n setKeyTarget(element, String(value));\n },\n \"onKey.action\": createKeyHandler(\"Enter\"),\n\n // Scroll (throttled)\n onScroll: createEventHandler(\"scroll\", {\n throttleMs: 100,\n passive: true,\n extractPayload: scrollPayload,\n }),\n\n // Long click/press\n onLongClick: createLongClickHandler(500),\n onLongPress: createLongClickHandler(500), // Alias for mobile-style naming\n\n // Focus events\n onFocus: createEventHandler(\"focus\", { extractPayload: focusPayload }),\n onBlur: createEventHandler(\"blur\", { extractPayload: focusPayload }),\n\n // Mouse hover events\n onMouseEnter: createEventHandler(\"mouseenter\", { extractPayload: mousePayload }),\n onMouseLeave: createEventHandler(\"mouseleave\", { extractPayload: mousePayload }),\n\n // Two-way binding for .bind(@state.x)\n bind: ((element: HTMLElement, value: unknown) => {\n const bindPath = typeof value === \"string\" ? value : null;\n if (!bindPath) return;\n\n const disposables = getElementDisposables(element);\n const eventKey = `bind:${bindPath}`;\n if (getRegisteredEvents(element).has(eventKey)) return;\n registerEvent(element, eventKey);\n\n // Determine the target element, event type, and value extractor based on component type\n const hypenType = element.dataset?.hypenType;\n\n if (hypenType === \"checkbox\" || hypenType === \"switch\") {\n // Checkbox/Switch: wrapper <label> containing <input type=\"checkbox\">\n const input = element.querySelector('input[type=\"checkbox\"]') as HTMLInputElement | null;\n if (!input) return;\n\n const listener = () => {\n const engine = getEngine(element);\n if (engine) {\n engine.dispatchAction(\"__hypen_bind\", {\n path: bindPath,\n value: input.checked,\n });\n }\n };\n\n disposables.add(\n disposableListener(input, \"change\", listener, { passive: true })\n );\n } else if (element instanceof HTMLSelectElement) {\n // Select: listen to change event, read .value\n const listener = () => {\n const engine = getEngine(element);\n if (engine) {\n engine.dispatchAction(\"__hypen_bind\", {\n path: bindPath,\n value: element.value,\n });\n }\n };\n\n disposables.add(\n disposableListener(element, \"change\", listener, { passive: true })\n );\n } else if (\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement\n ) {\n // Input/Textarea: listen to input event, read .value\n const listener = () => {\n const engine = getEngine(element);\n if (engine) {\n engine.dispatchAction(\"__hypen_bind\", {\n path: bindPath,\n value: element.value,\n });\n }\n };\n\n disposables.add(\n disposableListener(element, \"input\", listener, { passive: true })\n );\n } else {\n log.warn(\n `.bind() is not supported on element type \"${element.dataset?.hypenType || element.tagName}\". ` +\n `Supported types: input, textarea, checkbox, switch, select.`\n );\n unregisterEvent(element, eventKey);\n return;\n }\n\n disposables.addCallback(() => unregisterEvent(element, eventKey));\n }) as ApplicatorHandler,\n};\n",
14
14
  "/**\n * Typography Applicators\n */\n\nimport type { ApplicatorHandler } from \"./types.js\";\n\nexport const typographyHandlers: Record<string, ApplicatorHandler> = {\n textAlign: (el, value) => {\n el.style.textAlign = String(value);\n },\n\n textTransform: (el, value) => {\n el.style.textTransform = String(value);\n },\n\n textDecoration: (el, value) => {\n el.style.textDecoration = String(value);\n },\n\n textDecorationColor: (el, value) => {\n el.style.textDecorationColor = String(value);\n },\n\n textDecorationStyle: (el, value) => {\n el.style.textDecorationStyle = String(value);\n },\n\n textDecorationThickness: (el, value) => {\n el.style.textDecorationThickness = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n letterSpacing: (el, value) => {\n el.style.letterSpacing = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n wordSpacing: (el, value) => {\n el.style.wordSpacing = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n lineHeight: (el, value) => {\n el.style.lineHeight = String(value);\n },\n\n textIndent: (el, value) => {\n el.style.textIndent = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n textOverflow: (el, value) => {\n el.style.textOverflow = String(value);\n },\n\n whiteSpace: (el, value) => {\n el.style.whiteSpace = String(value);\n },\n\n wordBreak: (el, value) => {\n el.style.wordBreak = String(value);\n },\n\n verticalAlign: (el, value) => {\n el.style.verticalAlign = String(value);\n },\n\n fontVariant: (el, value) => {\n el.style.fontVariant = String(value);\n },\n\n fontStretch: (el, value) => {\n el.style.fontStretch = String(value);\n },\n\n fontStyle: (el, value) => {\n el.style.fontStyle = String(value);\n },\n\n writingMode: (el, value) => {\n el.style.writingMode = String(value);\n },\n\n maxLines: (el, value) => {\n const lines = typeof value === \"number\" ? value : parseInt(String(value), 10);\n if (!isNaN(lines) && lines > 0) {\n el.style.display = \"-webkit-box\";\n el.style.setProperty(\"-webkit-line-clamp\", String(lines));\n el.style.setProperty(\"-webkit-box-orient\", \"vertical\");\n el.style.overflow = \"hidden\";\n }\n },\n};\n\n\n",
15
15
  "/**\n * Transform Applicators\n */\n\nimport type { ApplicatorHandler } from \"./types.js\";\n\nexport const transformHandlers: Record<string, ApplicatorHandler> = {\n transform: (el, value) => {\n el.style.transform = String(value);\n },\n\n transformOrigin: (el, value) => {\n el.style.transformOrigin = String(value);\n },\n\n translateX: (el, value) => {\n const current = el.style.transform || \"\";\n const val = typeof value === \"number\" ? `${value}px` : String(value);\n el.style.transform = current ? `${current} translateX(${val})` : `translateX(${val})`;\n },\n\n translateY: (el, value) => {\n const current = el.style.transform || \"\";\n const val = typeof value === \"number\" ? `${value}px` : String(value);\n el.style.transform = current ? `${current} translateY(${val})` : `translateY(${val})`;\n },\n\n translateZ: (el, value) => {\n const current = el.style.transform || \"\";\n const val = typeof value === \"number\" ? `${value}px` : String(value);\n el.style.transform = current ? `${current} translateZ(${val})` : `translateZ(${val})`;\n },\n\n rotate: (el, value) => {\n const current = el.style.transform || \"\";\n const val = String(value);\n el.style.transform = current ? `${current} rotate(${val})` : `rotate(${val})`;\n },\n\n rotateX: (el, value) => {\n const current = el.style.transform || \"\";\n const val = String(value);\n el.style.transform = current ? `${current} rotateX(${val})` : `rotateX(${val})`;\n },\n\n rotateY: (el, value) => {\n const current = el.style.transform || \"\";\n const val = String(value);\n el.style.transform = current ? `${current} rotateY(${val})` : `rotateY(${val})`;\n },\n\n rotateZ: (el, value) => {\n const current = el.style.transform || \"\";\n const val = String(value);\n el.style.transform = current ? `${current} rotateZ(${val})` : `rotateZ(${val})`;\n },\n\n scale: (el, value) => {\n const current = el.style.transform || \"\";\n el.style.transform = current ? `${current} scale(${value})` : `scale(${value})`;\n },\n\n scaleX: (el, value) => {\n const current = el.style.transform || \"\";\n el.style.transform = current ? `${current} scaleX(${value})` : `scaleX(${value})`;\n },\n\n scaleY: (el, value) => {\n const current = el.style.transform || \"\";\n el.style.transform = current ? `${current} scaleY(${value})` : `scaleY(${value})`;\n },\n\n skew: (el, value) => {\n const current = el.style.transform || \"\";\n el.style.transform = current ? `${current} skew(${value})` : `skew(${value})`;\n },\n\n skewX: (el, value) => {\n const current = el.style.transform || \"\";\n el.style.transform = current ? `${current} skewX(${value})` : `skewX(${value})`;\n },\n\n skewY: (el, value) => {\n const current = el.style.transform || \"\";\n el.style.transform = current ? `${current} skewY(${value})` : `skewY(${value})`;\n },\n\n perspective: (el, value) => {\n el.style.perspective = typeof value === \"number\" ? `${value}px` : String(value);\n },\n};\n\n\n",
16
16
  "/**\n * Visual Effects Applicators (Shadows, Filters, Blend Modes)\n */\n\nimport type { ApplicatorHandler } from \"./types.js\";\n\nexport const effectsHandlers: Record<string, ApplicatorHandler> = {\n // Shadow effects\n boxShadow: (el, value) => {\n if (typeof value === \"string\") {\n el.style.boxShadow = value;\n } else if (typeof value === \"object\" && value !== null) {\n // Object format: { x, y, blur, spread, color, inset }\n const obj = value as Record<string, any>;\n const x = typeof obj.x === \"number\" ? `${obj.x}px` : (obj.x ?? obj.offsetX ?? \"0px\");\n const y = typeof obj.y === \"number\" ? `${obj.y}px` : (obj.y ?? obj.offsetY ?? \"0px\");\n const blur = typeof obj.blur === \"number\" ? `${obj.blur}px` : (obj.blur ?? obj.radius ?? \"0px\");\n const spread = typeof obj.spread === \"number\" ? `${obj.spread}px` : (obj.spread ?? \"0px\");\n const color = obj.color ?? \"rgba(0,0,0,0.2)\";\n const inset = obj.inset ? \"inset \" : \"\";\n el.style.boxShadow = `${inset}${x} ${y} ${blur} ${spread} ${color}`;\n } else if (typeof value === \"number\") {\n // Just blur/elevation as number\n el.style.boxShadow = `0 ${value}px ${value * 2}px rgba(0,0,0,0.2)`;\n }\n },\n\n // Compound shadow with explicit offset support\n shadow: (el, value) => {\n if (typeof value === \"object\" && value !== null) {\n const obj = value as Record<string, any>;\n const x = typeof obj.x === \"number\" ? `${obj.x}px` : (obj.x ?? obj.offsetX ?? \"0px\");\n const y = typeof obj.y === \"number\" ? `${obj.y}px` : (obj.y ?? obj.offsetY ?? \"0px\");\n const blur = typeof obj.blur === \"number\" ? `${obj.blur}px` : (obj.blur ?? obj.radius ?? \"4px\");\n const color = obj.color ?? \"rgba(0,0,0,0.2)\";\n el.style.boxShadow = `${x} ${y} ${blur} ${color}`;\n } else if (typeof value === \"number\") {\n // Elevation-style: shadow grows with value\n el.style.boxShadow = `0 ${value}px ${value * 2}px rgba(0,0,0,0.2)`;\n } else {\n el.style.boxShadow = String(value);\n }\n },\n\n // Elevation (Material Design style)\n elevation: (el, value) => {\n const level = typeof value === \"number\" ? value : parseInt(String(value), 10);\n if (!isNaN(level) && level >= 0) {\n // Map elevation to box-shadow similar to Material Design\n const y = level * 0.5;\n const blur = level * 1.5;\n const opacity = Math.min(0.1 + level * 0.02, 0.4);\n el.style.boxShadow = `0 ${y}px ${blur}px rgba(0,0,0,${opacity})`;\n }\n },\n\n textShadow: (el, value) => {\n el.style.textShadow = String(value);\n },\n\n // Filter effects\n filter: (el, value) => {\n el.style.filter = String(value);\n },\n\n backdropFilter: (el, value) => {\n el.style.backdropFilter = String(value);\n },\n\n // Individual filter functions\n blur: (el, value) => {\n const val = typeof value === \"number\" ? `${value}px` : String(value);\n const current = el.style.filter || \"\";\n el.style.filter = current ? `${current} blur(${val})` : `blur(${val})`;\n },\n\n brightness: (el, value) => {\n const current = el.style.filter || \"\";\n el.style.filter = current ? `${current} brightness(${value})` : `brightness(${value})`;\n },\n\n contrast: (el, value) => {\n const current = el.style.filter || \"\";\n el.style.filter = current ? `${current} contrast(${value})` : `contrast(${value})`;\n },\n\n grayscale: (el, value) => {\n const current = el.style.filter || \"\";\n el.style.filter = current ? `${current} grayscale(${value})` : `grayscale(${value})`;\n },\n\n hueRotate: (el, value) => {\n const val = String(value);\n const current = el.style.filter || \"\";\n el.style.filter = current ? `${current} hue-rotate(${val})` : `hue-rotate(${val})`;\n },\n\n invert: (el, value) => {\n const current = el.style.filter || \"\";\n el.style.filter = current ? `${current} invert(${value})` : `invert(${value})`;\n },\n\n saturate: (el, value) => {\n const current = el.style.filter || \"\";\n el.style.filter = current ? `${current} saturate(${value})` : `saturate(${value})`;\n },\n\n sepia: (el, value) => {\n const current = el.style.filter || \"\";\n el.style.filter = current ? `${current} sepia(${value})` : `sepia(${value})`;\n },\n\n dropShadow: (el, value) => {\n const current = el.style.filter || \"\";\n el.style.filter = current ? `${current} drop-shadow(${value})` : `drop-shadow(${value})`;\n },\n\n // Blend modes\n mixBlendMode: (el, value) => {\n el.style.mixBlendMode = String(value);\n },\n\n backgroundBlendMode: (el, value) => {\n el.style.backgroundBlendMode = String(value);\n },\n\n // Clip and mask\n clipPath: (el, value) => {\n el.style.clipPath = String(value);\n },\n\n mask: (el, value) => {\n el.style.mask = String(value);\n },\n\n maskImage: (el, value) => {\n el.style.maskImage = String(value);\n },\n};\n\n\n",
@@ -20,7 +20,7 @@
20
20
  "/**\n * Transition and Animation Applicators\n */\n\nimport type { ApplicatorHandler } from \"./types.js\";\n\nexport const transitionHandlers: Record<string, ApplicatorHandler> = {\n transition: (el, value) => {\n el.style.transition = String(value);\n },\n\n transitionProperty: (el, value) => {\n el.style.transitionProperty = String(value);\n },\n\n transitionDuration: (el, value) => {\n el.style.transitionDuration = String(value);\n },\n\n transitionTimingFunction: (el, value) => {\n el.style.transitionTimingFunction = String(value);\n },\n\n transitionDelay: (el, value) => {\n el.style.transitionDelay = String(value);\n },\n\n animation: (el, value) => {\n el.style.animation = String(value);\n },\n\n animationName: (el, value) => {\n el.style.animationName = String(value);\n },\n\n animationDuration: (el, value) => {\n el.style.animationDuration = String(value);\n },\n\n animationTimingFunction: (el, value) => {\n el.style.animationTimingFunction = String(value);\n },\n\n animationDelay: (el, value) => {\n el.style.animationDelay = String(value);\n },\n\n animationIterationCount: (el, value) => {\n el.style.animationIterationCount = String(value);\n },\n\n animationDirection: (el, value) => {\n el.style.animationDirection = String(value);\n },\n\n animationFillMode: (el, value) => {\n el.style.animationFillMode = String(value);\n },\n\n animationPlayState: (el, value) => {\n el.style.animationPlayState = String(value);\n },\n};\n\n\n",
21
21
  "/**\n * Applicator Registry\n *\n * Handles style applicators (modifiers) for Hypen components\n */\n\n// Re-export the type from types.ts to maintain API compatibility\nexport type { ApplicatorHandler } from \"./types.js\";\nimport type { ApplicatorHandler } from \"./types.js\";\n\n// Static imports for all applicator handlers (avoids circular dependency)\nimport {\n paddingHandler,\n paddingTopHandler,\n paddingBottomHandler,\n paddingLeftHandler,\n paddingRightHandler,\n paddingHorizontalHandler,\n paddingVerticalHandler,\n} from \"./padding.js\";\nimport {\n marginHandler,\n marginTopHandler,\n marginBottomHandler,\n marginLeftHandler,\n marginRightHandler,\n marginHorizontalHandler,\n marginVerticalHandler,\n} from \"./margin.js\";\nimport { colorHandlers } from \"./color.js\";\nimport { borderHandlers } from \"./border.js\";\nimport { sizeHandlers } from \"./size.js\";\nimport { fontHandlers } from \"./font.js\";\nimport { layoutHandlers } from \"./layout.js\";\nimport { eventHandlers } from \"./events.js\";\nimport { typographyHandlers } from \"./typography.js\";\nimport { transformHandlers } from \"./transform.js\";\nimport { effectsHandlers } from \"./effects.js\";\nimport { advancedLayoutHandlers } from \"./advanced-layout.js\";\nimport { backgroundHandlers } from \"./background.js\";\nimport { displayHandlers } from \"./display.js\";\nimport { transitionHandlers } from \"./transition.js\";\n\n/**\n * Tailwind breakpoint values for responsive variants\n */\nconst BREAKPOINTS: Record<string, string> = {\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n};\n\n/**\n * Singleton stylesheet for variant CSS rules\n */\nlet variantStyleSheet: CSSStyleSheet | null = null;\n\n/**\n * Track inserted rules to avoid duplicates\n */\nconst insertedRules = new Set<string>();\n\n/**\n * Get or create the variant stylesheet\n */\nfunction getVariantStyleSheet(): CSSStyleSheet {\n if (!variantStyleSheet) {\n const style = document.createElement('style');\n style.id = 'hypen-variants';\n document.head.appendChild(style);\n variantStyleSheet = style.sheet as CSSStyleSheet;\n }\n return variantStyleSheet;\n}\n\n/**\n * Generate a simple hash for deduplication\n */\nfunction hashValue(value: any): string {\n return String(value).replace(/[^a-zA-Z0-9]/g, '').slice(0, 8);\n}\n\nexport class ApplicatorRegistry {\n private handlers: Map<string, ApplicatorHandler> = new Map();\n private elementState: WeakMap<HTMLElement, Map<string, any>> = new WeakMap();\n\n constructor() {\n this.registerDefaults();\n }\n\n /**\n * Register an applicator handler\n */\n register(name: string, handler: ApplicatorHandler): void {\n this.handlers.set(name, handler);\n }\n\n /**\n * Apply an applicator to an element\n */\n apply(element: HTMLElement, name: string, value: any): void {\n // Parse applicator metadata so we can normalize event arguments and retain legacy behavior\n const { handlerName, argKey, aggregate, fallbackName } = this.parseApplicatorName(name);\n\n const handler = this.handlers.get(handlerName);\n const state = this.getElementState(element);\n const previous = state.get(handlerName);\n\n if (aggregate && argKey !== null) {\n // Merge event payload updates with the previously applied arguments so handlers\n // always receive the full payload object (prevents stale dispatch data)\n const merged = this.mergeAggregateState(previous, argKey, this.normalizeValue(value));\n\n state.set(handlerName, merged);\n\n if (handler) {\n handler(element, merged);\n } else {\n // Fallback: set as CSS property using the original name if no handler exists\n this.setStyleProperty(element, fallbackName, value);\n }\n return;\n }\n\n if (handler) {\n if (this.isEventApplicator(handlerName)) {\n const normalizedValue = this.normalizeEventValue(previous, value);\n state.set(handlerName, normalizedValue);\n handler(element, normalizedValue);\n } else {\n state.set(handlerName, value);\n handler(element, value);\n }\n } else {\n // Fallback: set as CSS property\n this.setStyleProperty(element, handlerName, value);\n }\n }\n\n /**\n * Parse applicator name to handle indexed and event argument formats\n * e.g., \"fontSize.0\" -> { handlerName: \"fontSize\" }\n * \"onClick.id\" -> { handlerName: \"onClick\", aggregate: true, argKey: \"id\" }\n * Keeps compound names like \"padding.top\" as-is so they can fall back to CSS.\n */\n private parseApplicatorName(name: string): {\n handlerName: string;\n argKey: string | null;\n aggregate: boolean;\n fallbackName: string;\n } {\n const dotIndex = name.indexOf('.');\n if (dotIndex === -1) {\n return { handlerName: name, argKey: null, aggregate: false, fallbackName: name };\n }\n\n const baseName = name.substring(0, dotIndex);\n const argKey = name.substring(dotIndex + 1);\n\n if (this.handlers.has(baseName) && this.isEventApplicator(baseName)) {\n return { handlerName: baseName, argKey, aggregate: true, fallbackName: name };\n }\n\n if (/^\\d+$/.test(argKey)) {\n return { handlerName: baseName, argKey: null, aggregate: false, fallbackName: baseName };\n }\n\n return { handlerName: name, argKey: null, aggregate: false, fallbackName: name };\n }\n\n /**\n * Get or initialize per-element applicator state used for merging event payloads\n */\n private getElementState(element: HTMLElement): Map<string, any> {\n let state = this.elementState.get(element);\n if (!state) {\n state = new Map();\n this.elementState.set(element, state);\n }\n return state;\n }\n\n /**\n * Merge updated event argument into previously stored payload snapshot\n */\n private mergeAggregateState(previous: any, argKey: string, value: any): Record<string, any> {\n const base: Record<string, any> = this.cloneAggregateState(previous);\n\n if (value === undefined) {\n delete base[argKey];\n } else {\n base[argKey] = value;\n }\n\n return base;\n }\n\n /**\n * Convert stored state into a mutable payload object we can merge into\n */\n private cloneAggregateState(previous: any): Record<string, any> {\n if (previous && typeof previous === \"object\" && !Array.isArray(previous)) {\n return { ...previous };\n }\n\n if (typeof previous === \"string\") {\n return { \"0\": previous };\n }\n\n return {};\n }\n\n /**\n * Normalize event value updates so action payload arguments persist across SetProp orderings\n */\n private normalizeEventValue(previous: any, value: any): Record<string, any> {\n const normalizedInput = this.normalizeValue(value);\n const base = this.cloneAggregateState(previous);\n\n if (normalizedInput && typeof normalizedInput === \"object\" && !Array.isArray(normalizedInput)) {\n const next = { ...base, ...normalizedInput } as Record<string, any>;\n\n if (!Object.prototype.hasOwnProperty.call(next, \"0\") && base[\"0\"] !== undefined) {\n next[\"0\"] = base[\"0\"];\n }\n\n return next;\n }\n\n if (normalizedInput !== undefined) {\n base[\"0\"] = normalizedInput;\n }\n\n return base;\n }\n\n /**\n * Convert Maps (from WASM) and nested structures into plain JS values we can merge safely\n */\n private normalizeValue(value: any): any {\n if (value instanceof Map) {\n const obj: Record<string, any> = {};\n for (const [key, val] of value.entries()) {\n obj[key] = this.normalizeValue(val);\n }\n return obj;\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => this.normalizeValue(item));\n }\n\n if (value && typeof value === \"object\") {\n const obj: Record<string, any> = {};\n for (const [key, val] of Object.entries(value)) {\n obj[key] = this.normalizeValue(val);\n }\n return obj;\n }\n\n return value;\n }\n\n /**\n * Determine if a handler name follows the event applicator naming convention\n */\n private isEventApplicator(name: string): boolean {\n return /^on[A-Z]/.test(name);\n }\n\n /**\n * Apply multiple applicators\n */\n applyAll(element: HTMLElement, applicators: Record<string, any>): void {\n //console.log(`[ApplicatorRegistry] Applying applicators:`, applicators);\n\n // Group applicators by their base name (treat applicators like components with arguments)\n // e.g., \"onClick.0\", \"onClick.id\", \"onClick.title\" -> onClick: {0: ..., id: ..., title: ...}\n const grouped = new Map<string, Record<string, any>>();\n\n for (const [name, value] of Object.entries(applicators)) {\n // Extract base name and argument key\n const dotIndex = name.indexOf('.');\n const baseName = dotIndex !== -1 ? name.substring(0, dotIndex) : name;\n const argKey = dotIndex !== -1 ? name.substring(dotIndex + 1) : null;\n\n if (!grouped.has(baseName)) {\n grouped.set(baseName, {});\n }\n\n const args = grouped.get(baseName)!;\n if (argKey !== null) {\n // This is an argument (e.g., \"onClick.0\" or \"onClick.id\")\n args[argKey] = value;\n } else {\n // This is a single-value applicator (e.g., \"padding\")\n args['__value'] = value;\n }\n }\n\n // Apply each applicator with its arguments\n for (const [baseName, args] of grouped.entries()) {\n // If it's a single value (either __value or just \"0\"), pass just the value\n if (Object.keys(args).length === 1) {\n if ('__value' in args) {\n this.apply(element, baseName, args['__value']);\n } else if ('0' in args) {\n // Single positional argument (e.g., padding.0 -> just pass the value)\n this.apply(element, baseName, args['0']);\n } else {\n // Single named argument? Pass the whole object\n this.apply(element, baseName, args);\n }\n } else {\n // Multiple arguments - pass the entire args object\n this.apply(element, baseName, args);\n }\n }\n }\n\n /**\n * Set a CSS property with automatic unit handling and variant support\n */\n private setStyleProperty(element: HTMLElement, name: string, value: any): void {\n const atIndex = name.indexOf('@');\n const colonIndex = name.indexOf(':');\n\n // Responsive variant: padding@md, width@lg, etc.\n if (atIndex !== -1) {\n const prop = name.slice(0, atIndex);\n const breakpoint = name.slice(atIndex + 1);\n const minWidth = BREAKPOINTS[breakpoint];\n\n if (minWidth) {\n const cssName = this.toKebabCase(prop);\n const cssValue = this.formatCssValue(cssName, value);\n const className = `hypen-${cssName.replace(/[^a-zA-Z0-9-]/g, '')}-${breakpoint}-${hashValue(value)}`;\n const ruleKey = `${className}:${cssValue}`;\n\n // Avoid duplicate rule insertion\n if (!insertedRules.has(ruleKey)) {\n const sheet = getVariantStyleSheet();\n sheet.insertRule(\n `@media (min-width: ${minWidth}) { .${className} { ${cssName}: ${cssValue}; } }`,\n sheet.cssRules.length\n );\n insertedRules.add(ruleKey);\n }\n\n element.classList.add(className);\n }\n return;\n }\n\n // State variant: background-color:hover, border-color:focus, etc.\n if (colonIndex !== -1) {\n const prop = name.slice(0, colonIndex);\n const state = name.slice(colonIndex + 1);\n\n // Only handle known CSS pseudo-states\n const validStates = ['hover', 'focus', 'active', 'disabled', 'focus-visible', 'focus-within'];\n if (validStates.includes(state)) {\n const cssName = this.toKebabCase(prop);\n const cssValue = this.formatCssValue(cssName, value);\n const className = `hypen-${cssName.replace(/[^a-zA-Z0-9-]/g, '')}-${state}-${hashValue(value)}`;\n const ruleKey = `${className}:${cssValue}`;\n\n // Avoid duplicate rule insertion\n if (!insertedRules.has(ruleKey)) {\n const sheet = getVariantStyleSheet();\n sheet.insertRule(\n `.${className}:${state} { ${cssName}: ${cssValue}; }`,\n sheet.cssRules.length\n );\n insertedRules.add(ruleKey);\n }\n\n element.classList.add(className);\n }\n return;\n }\n\n // Normal property: convert camelCase to kebab-case and apply\n const cssName = this.toKebabCase(name);\n element.style.setProperty(cssName, this.formatCssValue(cssName, value));\n }\n\n /**\n * Convert camelCase to kebab-case\n */\n private toKebabCase(name: string): string {\n return name.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n }\n\n /**\n * Format a CSS value with automatic unit handling\n */\n private formatCssValue(cssName: string, value: any): string {\n if (typeof value === \"number\" && this.needsUnit(cssName)) {\n return `${value}px`;\n }\n return String(value);\n }\n\n /**\n * Check if a property needs a unit\n */\n private needsUnit(prop: string): boolean {\n const unitless = [\n \"opacity\",\n \"z-index\",\n \"font-weight\",\n \"line-height\",\n \"flex\",\n \"flex-grow\",\n \"flex-shrink\",\n \"order\",\n ];\n return !unitless.includes(prop);\n }\n\n /**\n * Register default applicator handlers\n * Uses statically imported handlers (defined at top of file) to avoid circular dependencies\n */\n private registerDefaults(): void {\n this.register(\"padding\", paddingHandler);\n this.register(\"paddingTop\", paddingTopHandler);\n this.register(\"paddingBottom\", paddingBottomHandler);\n this.register(\"paddingLeft\", paddingLeftHandler);\n this.register(\"paddingRight\", paddingRightHandler);\n this.register(\"paddingHorizontal\", paddingHorizontalHandler);\n this.register(\"paddingVertical\", paddingVerticalHandler);\n this.register(\"margin\", marginHandler);\n this.register(\"marginTop\", marginTopHandler);\n this.register(\"marginBottom\", marginBottomHandler);\n this.register(\"marginLeft\", marginLeftHandler);\n this.register(\"marginRight\", marginRightHandler);\n this.register(\"marginHorizontal\", marginHorizontalHandler);\n this.register(\"marginVertical\", marginVerticalHandler);\n\n for (const [name, handler] of Object.entries(colorHandlers)) {\n this.register(name, handler as ApplicatorHandler);\n }\n\n for (const [name, handler] of Object.entries(borderHandlers)) {\n this.register(name, handler as ApplicatorHandler);\n }\n\n for (const [name, handler] of Object.entries(sizeHandlers)) {\n this.register(name, handler as ApplicatorHandler);\n }\n\n for (const [name, handler] of Object.entries(fontHandlers)) {\n this.register(name, handler as ApplicatorHandler);\n }\n\n for (const [name, handler] of Object.entries(layoutHandlers)) {\n this.register(name, handler as ApplicatorHandler);\n }\n\n for (const [name, handler] of Object.entries(eventHandlers)) {\n this.register(name, handler as ApplicatorHandler);\n }\n\n for (const [name, handler] of Object.entries(typographyHandlers)) {\n this.register(name, handler as ApplicatorHandler);\n }\n\n for (const [name, handler] of Object.entries(transformHandlers)) {\n this.register(name, handler as ApplicatorHandler);\n }\n\n for (const [name, handler] of Object.entries(effectsHandlers)) {\n this.register(name, handler as ApplicatorHandler);\n }\n\n for (const [name, handler] of Object.entries(advancedLayoutHandlers)) {\n this.register(name, handler as ApplicatorHandler);\n }\n\n for (const [name, handler] of Object.entries(backgroundHandlers)) {\n this.register(name, handler as ApplicatorHandler);\n }\n\n for (const [name, handler] of Object.entries(displayHandlers)) {\n this.register(name, handler as ApplicatorHandler);\n }\n\n for (const [name, handler] of Object.entries(transitionHandlers)) {\n this.register(name, handler as ApplicatorHandler);\n }\n }\n}\n"
22
22
  ],
23
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAM,kBAAkB,CAAC,UAA8B;AAAA,EACrD,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,IAAI,OAAO,UAAU,YAAY,MAAM,SAAS;AAAA,IAAW,OAAO,OAAO,MAAM,IAAI;AAAA,EACnF,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO,WAAW,KAAK;AAAA,EACtD,OAAO;AAAA;AAGF,IAAM,iBAAoC,CAAC,IAAI,UAAU;AAAA,EAC9D,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,GAAG,MAAM,UAAU,GAAG;AAAA,EACxB,EAAO,SAAI,OAAO,UAAU,UAAU;AAAA,IAEpC,IAAI,MAAM,SAAS,aAAa,OAAO,KAAK,KAAK,EAAE,WAAW,GAAG;AAAA,MAC/D,GAAG,MAAM,UAAU,GAAG,MAAM;AAAA,IAC9B,EAAO;AAAA,MACL,IAAI,MAAM,SAAS;AAAA,QAAW,GAAG,MAAM,cAAc,GAAG,MAAM;AAAA,MAC9D,IAAI,MAAM,UAAU;AAAA,QAAW,GAAG,MAAM,eAAe,GAAG,MAAM;AAAA,MAChE,IAAI,MAAM,QAAQ;AAAA,QAAW,GAAG,MAAM,aAAa,GAAG,MAAM;AAAA,MAC5D,IAAI,MAAM,WAAW;AAAA,QAAW,GAAG,MAAM,gBAAgB,GAAG,MAAM;AAAA;AAAA,EAEtE,EAAO;AAAA,IACL,GAAG,MAAM,UAAU,OAAO,KAAK;AAAA;AAAA;AAK5B,IAAM,oBAAuC,CAAC,IAAI,UAAU;AAAA,EACjE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,aAAa,GAAG;AAAA;AAGpC,IAAM,uBAA0C,CAAC,IAAI,UAAU;AAAA,EACpE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,gBAAgB,GAAG;AAAA;AAGvC,IAAM,qBAAwC,CAAC,IAAI,UAAU;AAAA,EAClE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,cAAc,GAAG;AAAA;AAGrC,IAAM,sBAAyC,CAAC,IAAI,UAAU;AAAA,EACnE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,eAAe,GAAG;AAAA;AAGtC,IAAM,2BAA8C,CAAC,IAAI,UAAU;AAAA,EACxE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM,MAAM;AAAA,IACd,GAAG,MAAM,cAAc,GAAG;AAAA,IAC1B,GAAG,MAAM,eAAe,GAAG;AAAA,EAC7B;AAAA;AAGK,IAAM,yBAA4C,CAAC,IAAI,UAAU;AAAA,EACtE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM,MAAM;AAAA,IACd,GAAG,MAAM,aAAa,GAAG;AAAA,IACzB,GAAG,MAAM,gBAAgB,GAAG;AAAA,EAC9B;AAAA;;;AC3DF,IAAM,mBAAkB,CAAC,UAA8B;AAAA,EACrD,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,IAAI,OAAO,UAAU,YAAY,MAAM,SAAS;AAAA,IAAW,OAAO,OAAO,MAAM,IAAI;AAAA,EACnF,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO,WAAW,KAAK;AAAA,EACtD,OAAO;AAAA;AAGF,IAAM,gBAAmC,CAAC,IAAI,UAAU;AAAA,EAC7D,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,GAAG,MAAM,SAAS,GAAG;AAAA,EACvB,EAAO,SAAI,OAAO,UAAU,UAAU;AAAA,IAEpC,IAAI,MAAM,SAAS,aAAa,OAAO,KAAK,KAAK,EAAE,WAAW,GAAG;AAAA,MAC/D,GAAG,MAAM,SAAS,GAAG,MAAM;AAAA,IAC7B,EAAO;AAAA,MACL,IAAI,MAAM,SAAS;AAAA,QAAW,GAAG,MAAM,aAAa,GAAG,MAAM;AAAA,MAC7D,IAAI,MAAM,UAAU;AAAA,QAAW,GAAG,MAAM,cAAc,GAAG,MAAM;AAAA,MAC/D,IAAI,MAAM,QAAQ;AAAA,QAAW,GAAG,MAAM,YAAY,GAAG,MAAM;AAAA,MAC3D,IAAI,MAAM,WAAW;AAAA,QAAW,GAAG,MAAM,eAAe,GAAG,MAAM;AAAA;AAAA,EAErE,EAAO;AAAA,IACL,GAAG,MAAM,SAAS,OAAO,KAAK;AAAA;AAAA;AAK3B,IAAM,mBAAsC,CAAC,IAAI,UAAU;AAAA,EAChE,MAAM,IAAI,iBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,YAAY,GAAG;AAAA;AAGnC,IAAM,sBAAyC,CAAC,IAAI,UAAU;AAAA,EACnE,MAAM,IAAI,iBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,eAAe,GAAG;AAAA;AAGtC,IAAM,oBAAuC,CAAC,IAAI,UAAU;AAAA,EACjE,MAAM,IAAI,iBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,aAAa,GAAG;AAAA;AAGpC,IAAM,qBAAwC,CAAC,IAAI,UAAU;AAAA,EAClE,MAAM,IAAI,iBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,cAAc,GAAG;AAAA;AAGrC,IAAM,0BAA6C,CAAC,IAAI,UAAU;AAAA,EACvE,MAAM,IAAI,iBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM,MAAM;AAAA,IACd,GAAG,MAAM,aAAa,GAAG;AAAA,IACzB,GAAG,MAAM,cAAc,GAAG;AAAA,EAC5B;AAAA;AAGK,IAAM,wBAA2C,CAAC,IAAI,UAAU;AAAA,EACrE,MAAM,IAAI,iBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM,MAAM;AAAA,IACd,GAAG,MAAM,YAAY,GAAG;AAAA,IACxB,GAAG,MAAM,eAAe,GAAG;AAAA,EAC7B;AAAA;;;AC5DK,IAAM,gBAAmD;AAAA,EAC9D,OAAO,CAAC,IAAI,UAAU;AAAA,IACpB,GAAG,MAAM,QAAQ,OAAO,KAAK;AAAA;AAAA,EAG/B,iBAAiB,CAAC,IAAI,UAAU;AAAA,IAC9B,GAAG,MAAM,kBAAkB,OAAO,KAAK;AAAA;AAAA,EAGzC,aAAa,CAAC,IAAI,UAAU;AAAA,IAC1B,GAAG,MAAM,cAAc,OAAO,KAAK;AAAA;AAAA,EAGrC,SAAS,CAAC,IAAI,UAAU;AAAA,IACtB,GAAG,MAAM,UAAU,OAAO,KAAK;AAAA;AAEnC;;;AChBO,IAAM,iBAAoD;AAAA,EAE/D,QAAQ,CAAC,IAAI,UAAU;AAAA,IACrB,IAAI,OAAO,UAAU,UAAU;AAAA,MAE7B,GAAG,MAAM,cAAc,GAAG;AAAA,MAC1B,GAAG,MAAM,cAAc;AAAA,IACzB,EAAO,SAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAAA,MACtD,MAAM,MAAM;AAAA,MAGZ,IAAI,IAAI,UAAU,WAAW;AAAA,QAC3B,GAAG,MAAM,cAAc,OAAO,IAAI,UAAU,WAAW,GAAG,IAAI,YAAY,OAAO,IAAI,KAAK;AAAA,MAC5F;AAAA,MAGA,IAAI,IAAI,UAAU,WAAW;AAAA,QAC3B,GAAG,MAAM,cAAc,OAAO,IAAI,KAAK;AAAA,MACzC;AAAA,MAGA,IAAI,IAAI,UAAU,WAAW;AAAA,QAC3B,GAAG,MAAM,cAAc,OAAO,IAAI,KAAK;AAAA,MACzC,EAAO;AAAA,QAEL,GAAG,MAAM,cAAc;AAAA;AAAA,MAIzB,IAAI,IAAI,WAAW,WAAW;AAAA,QAC5B,GAAG,MAAM,eAAe,OAAO,IAAI,WAAW,WAAW,GAAG,IAAI,aAAa,OAAO,IAAI,MAAM;AAAA,MAChG;AAAA,IACF,EAAO,SAAI,OAAO,UAAU,UAAU;AAAA,MAEpC,GAAG,MAAM,SAAS;AAAA,IACpB;AAAA;AAAA,EAGF,aAAa,CAAC,IAAI,UAAU;AAAA,IAC1B,GAAG,MAAM,cAAc,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAGhF,aAAa,CAAC,IAAI,UAAU;AAAA,IAC1B,GAAG,MAAM,cAAc,OAAO,KAAK;AAAA;AAAA,EAGrC,cAAc,CAAC,IAAI,UAAU;AAAA,IAC3B,IAAI,OAAO,UAAU,UAAU;AAAA,MAC7B,GAAG,MAAM,eAAe,GAAG;AAAA,IAC7B,EAAO,SAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAAA,MAEtD,MAAM,MAAM;AAAA,MACZ,MAAM,UAAU,IAAI,WAAW,IAAI,YAAY;AAAA,MAC/C,MAAM,WAAW,IAAI,YAAY,IAAI,UAAU;AAAA,MAC/C,MAAM,cAAc,IAAI,eAAe,IAAI,aAAa;AAAA,MACxD,MAAM,aAAa,IAAI,cAAc,IAAI,eAAe;AAAA,MAExD,MAAM,cAAc,CAAC,MAAW,OAAO,MAAM,WAAW,GAAG,QAAQ,OAAO,CAAC;AAAA,MAC3E,GAAG,MAAM,eAAe,GAAG,YAAY,OAAO,KAAK,YAAY,QAAQ,KAAK,YAAY,WAAW,KAAK,YAAY,UAAU;AAAA,IAChI,EAAO;AAAA,MACL,GAAG,MAAM,eAAe,OAAO,KAAK;AAAA;AAAA;AAAA,EAKxC,cAAc,CAAC,IAAI,UAAU;AAAA,IAC3B,IAAI,OAAO,UAAU,UAAU;AAAA,MAC7B,GAAG,MAAM,eAAe,GAAG;AAAA,IAC7B,EAAO,SAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAAA,MACtD,MAAM,MAAM;AAAA,MACZ,MAAM,UAAU,IAAI,WAAW,IAAI,YAAY;AAAA,MAC/C,MAAM,WAAW,IAAI,YAAY,IAAI,UAAU;AAAA,MAC/C,MAAM,cAAc,IAAI,eAAe,IAAI,aAAa;AAAA,MACxD,MAAM,aAAa,IAAI,cAAc,IAAI,eAAe;AAAA,MAExD,MAAM,cAAc,CAAC,MAAW,OAAO,MAAM,WAAW,GAAG,QAAQ,OAAO,CAAC;AAAA,MAC3E,GAAG,MAAM,eAAe,GAAG,YAAY,OAAO,KAAK,YAAY,QAAQ,KAAK,YAAY,WAAW,KAAK,YAAY,UAAU;AAAA,IAChI,EAAO;AAAA,MACL,GAAG,MAAM,eAAe,OAAO,KAAK;AAAA;AAAA;AAG1C;;;ACpEA,SAAS,cAAc,CAAC,OAA2B;AAAA,EACjD,IAAI,UAAU,QAAQ,UAAU;AAAA,IAAW,OAAO;AAAA,EAGlD,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,OAAO,GAAG;AAAA,EACZ;AAAA,EAEA,MAAM,MAAM,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY;AAAA,EAG7C,QAAQ;AAAA,SACD;AAAA,SACA;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,SACA;AAAA,SACA;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,SACA;AAAA,SACA;AAAA,MACH,OAAO;AAAA;AAAA,EAIX,MAAM,QAAQ,IAAI,MAAM,qDAAqD;AAAA,EAC7E,IAAI,CAAC,OAAO;AAAA,IAEV,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,MAAM,WAAW,MAAM,EAAE;AAAA,EAC/B,MAAM,OAAO,MAAM,MAAM;AAAA,EAEzB,QAAQ;AAAA,SACD;AAAA,MAEH,OAAO,GAAG;AAAA,SACP;AAAA,SACA;AAAA,MAMH,OAAO,GAAG;AAAA,SACP;AAAA,MACH,OAAO,GAAG;AAAA,SACP;AAAA,MACH,OAAO,GAAG;AAAA,SACP;AAAA,MACH,OAAO,GAAG;AAAA,SACP;AAAA,MACH,OAAO,GAAG;AAAA,SACP;AAAA,MACH,OAAO,GAAG;AAAA,SACP;AAAA,MACH,OAAO,GAAG;AAAA,SACP;AAAA,MACH,OAAO,GAAG;AAAA;AAAA,MAEV,OAAO,GAAG;AAAA;AAAA;AAIT,IAAM,eAAkD;AAAA,EAC7D,OAAO,CAAC,IAAI,UAAU;AAAA,IACpB,MAAM,OAAO,eAAe,KAAK;AAAA,IACjC,IAAI;AAAA,MAAM,GAAG,MAAM,QAAQ;AAAA;AAAA,EAG7B,QAAQ,CAAC,IAAI,UAAU;AAAA,IACrB,MAAM,OAAO,eAAe,KAAK;AAAA,IACjC,IAAI;AAAA,MAAM,GAAG,MAAM,SAAS;AAAA;AAAA,EAG9B,UAAU,CAAC,IAAI,UAAU;AAAA,IACvB,MAAM,OAAO,eAAe,KAAK;AAAA,IACjC,IAAI;AAAA,MAAM,GAAG,MAAM,WAAW;AAAA;AAAA,EAGhC,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,MAAM,OAAO,eAAe,KAAK;AAAA,IACjC,IAAI;AAAA,MAAM,GAAG,MAAM,YAAY;AAAA;AAAA,EAGjC,UAAU,CAAC,IAAI,UAAU;AAAA,IACvB,MAAM,OAAO,eAAe,KAAK;AAAA,IACjC,IAAI;AAAA,MAAM,GAAG,MAAM,WAAW;AAAA;AAAA,EAGhC,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,MAAM,OAAO,eAAe,KAAK;AAAA,IACjC,IAAI;AAAA,MAAM,GAAG,MAAM,YAAY;AAAA;AAAA,EAIjC,MAAM,CAAC,IAAI,UAAU;AAAA,IACnB,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAAA,MAC/C,MAAM,MAAM;AAAA,MACZ,IAAI,IAAI,UAAU,WAAW;AAAA,QAC3B,MAAM,IAAI,eAAe,IAAI,KAAK;AAAA,QAClC,IAAI;AAAA,UAAG,GAAG,MAAM,QAAQ;AAAA,MAC1B;AAAA,MACA,IAAI,IAAI,WAAW,WAAW;AAAA,QAC5B,MAAM,IAAI,eAAe,IAAI,MAAM;AAAA,QACnC,IAAI;AAAA,UAAG,GAAG,MAAM,SAAS;AAAA,MAC3B;AAAA,IACF,EAAO;AAAA,MACL,MAAM,OAAO,eAAe,KAAK;AAAA,MACjC,IAAI,MAAM;AAAA,QACR,GAAG,MAAM,QAAQ;AAAA,QACjB,GAAG,MAAM,SAAS;AAAA,MACpB;AAAA;AAAA;AAAA,EAOJ,cAAc,CAAC,IAAI,UAAU;AAAA,IAC3B,IAAI,UAAU;AAAA,MAAO;AAAA,IACrB,MAAM,WAAW,OAAO,UAAU,WAAW,QAAQ;AAAA,IACrD,IAAI,aAAa,GAAG;AAAA,MAElB,GAAG,MAAM,YAAY;AAAA,MACrB,GAAG,MAAM,QAAQ;AAAA,MACjB,GAAG,MAAM,WAAW;AAAA,IACtB,EAAO;AAAA,MAEL,GAAG,MAAM,QAAQ,GAAG,WAAW;AAAA;AAAA,IAGjC,GAAG,MAAM,cAAc;AAAA;AAAA,EAIzB,eAAe,CAAC,IAAI,UAAU;AAAA,IAC5B,IAAI,UAAU;AAAA,MAAO;AAAA,IAErB,MAAM,WAAW,OAAO,UAAU,WAAW,QAAQ;AAAA,IACrD,GAAG,MAAM,SAAS,GAAG,WAAW;AAAA;AAAA,EAIlC,aAAa,CAAC,IAAI,UAAU;AAAA,IAC1B,IAAI,UAAU;AAAA,MAAO;AAAA,IAErB,MAAM,WAAW,OAAO,UAAU,WAAW,QAAQ;AAAA,IACrD,GAAG,MAAM,QAAQ,GAAG,WAAW;AAAA,IAC/B,GAAG,MAAM,SAAS,GAAG,WAAW;AAAA,IAGhC,GAAG,MAAM,YAAY;AAAA,IACrB,GAAG,MAAM,WAAW;AAAA;AAExB;;;ACzKA,IAAM,oBAAoB,IAAI;AAG9B,IAAM,qBAAqB,IAAI,IAAI;AAAA,EACjC;AAAA,EAAW;AAAA,EAAU;AAAA,EAAa;AAAA,EAAW;AAAA,EAAW;AAAA,EACxD;AAAA,EAAS;AAAA,EAAc;AAAA,EAAa;AAAA,EAAW;AAAA,EAC/C;AAAA,EAAiB;AAAA,EAAsB;AAAA,EAAY;AAAA,EAAS;AAAA,EAC5D;AAAA,EAAmB;AAAA,EAAW;AAAA,EAAe;AAAA,EAAW;AAC1D,CAAC;AAKD,SAAS,YAAY,CAAC,UAA2B;AAAA,EAC/C,MAAM,aAAa,SAAS,YAAY,EAAE,KAAK;AAAA,EAC/C,OAAO,mBAAmB,IAAI,UAAU,KACjC,WAAW,WAAW,GAAG,KACzB,WAAW,WAAW,KAAK;AAAA;AAOpC,SAAS,cAAc,CAAC,UAAwB;AAAA,EAC9C,MAAM,aAAa,SAAS,KAAK;AAAA,EAGjC,IAAI,kBAAkB,IAAI,UAAU,KAAK,aAAa,UAAU,GAAG;AAAA,IACjE;AAAA,EACF;AAAA,EAGA,kBAAkB,IAAI,UAAU;AAAA,EAGhC,MAAM,OAAO,SAAS,cAAc,MAAM;AAAA,EAC1C,KAAK,MAAM;AAAA,EACX,KAAK,OAAO,4CAA4C,mBAAmB,UAAU;AAAA,EAGrF,SAAS,KAAK,YAAY,IAAI;AAAA;AAOhC,SAAS,iBAAiB,CAAC,OAAuB;AAAA,EAEhD,MAAM,QAAQ,MAAM,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,EAAE,QAAQ,SAAS,EAAE,CAAC;AAAA,EAErE,WAAW,QAAQ,OAAO;AAAA,IACxB,IAAI,CAAC,aAAa,IAAI,GAAG;AAAA,MACvB,eAAe,IAAI;AAAA,IACrB;AAAA,EACF;AAAA,EAGA,OAAO,MAAM,IAAI,OAAK;AAAA,IAEpB,IAAI,EAAE,SAAS,GAAG,KAAK,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,EAAE,WAAW,GAAG,GAAG;AAAA,MAC/D,OAAO,IAAI;AAAA,IACb;AAAA,IACA,OAAO;AAAA,GACR,EAAE,KAAK,IAAI;AAAA;AAGP,IAAM,eAAkD;AAAA,EAC7D,UAAU,CAAC,IAAI,UAAU;AAAA,IACvB,GAAG,MAAM,WAAW,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAG7E,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,GAAG,MAAM,aAAa,OAAO,KAAK;AAAA;AAAA,EAGpC,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,MAAM,YAAY,OAAO,KAAK;AAAA,IAE9B,GAAG,MAAM,aAAa,kBAAkB,SAAS;AAAA;AAAA,EAGnD,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,GAAG,MAAM,YAAY,OAAO,KAAK;AAAA;AAAA,EAGnC,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,GAAG,MAAM,aAAa,OAAO,KAAK;AAAA;AAAA,EAGpC,WAAW,CAAC,IAAI,UAAU;AAAA,IAExB,GAAG,MAAM,YAAY,OAAO,KAAK;AAAA;AAAA,EAGnC,eAAe,CAAC,IAAI,UAAU;AAAA,IAE5B,GAAG,MAAM,gBAAgB,OAAO,KAAK;AAAA;AAEzC;AAGO,IAAM,cAAc;AAAA,EAIzB,SAAS;AAAA,EAKT,UAAU,CAAC,aAAqB,kBAAkB,IAAI,SAAS,KAAK,CAAC;AAAA,EAKrE,gBAAgB,MAAM,MAAM,KAAK,iBAAiB;AAAA,EAKlD,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AC7IO,SAAS,iBAAiB,CAAC,OAAuB;AAAA,EACvD,MAAM,IAAI,OAAO,KAAK,EAAE,YAAY;AAAA,EACpC,QAAQ;AAAA,SAED;AAAA,SACA;AAAA,SACA;AAAA,SACA;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,SACA;AAAA,SACA;AAAA,SACA;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO;AAAA,SAEJ;AAAA,SACA;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,SACA;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,SACA;AAAA,MACH,OAAO;AAAA;AAAA,MAGP,OAAO;AAAA;AAAA;AAIN,IAAM,iBAAoD;AAAA,EAE/D,mBAAmB,CAAC,IAAI,UAAU;AAAA,IAChC,MAAM,MAAM,kBAAkB,OAAO,KAAK,CAAC;AAAA,IAE3C,MAAM,UAAU,GAAG,MAAM,WAAW,iBAAiB,EAAE,EAAE;AAAA,IACzD,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,iBAAiB,EAAE,EAAE;AAAA,IAErE,IAAI,YAAY,QAAQ;AAAA,MAEtB,GAAG,MAAM,aAAa;AAAA,IACxB,EAAO,SAAI,kBAAkB,YAAY,kBAAkB,kBAAkB;AAAA,MAE3E,GAAG,MAAM,iBAAiB;AAAA,IAC5B,EAAO;AAAA,MAEL,GAAG,MAAM,aAAa;AAAA;AAAA;AAAA,EAI1B,qBAAqB,CAAC,IAAI,UAAU;AAAA,IAClC,MAAM,MAAM,kBAAkB,OAAO,KAAK,CAAC;AAAA,IAE3C,MAAM,UAAU,GAAG,MAAM,WAAW,iBAAiB,EAAE,EAAE;AAAA,IACzD,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,iBAAiB,EAAE,EAAE;AAAA,IAErE,IAAI,YAAY,QAAQ;AAAA,MAEtB,GAAG,MAAM,eAAe;AAAA,IAC1B,EAAO,SAAI,kBAAkB,YAAY,kBAAkB,kBAAkB;AAAA,MAE3E,GAAG,MAAM,aAAa;AAAA,IACxB,EAAO,SAAI,kBAAkB,SAAS,kBAAkB,eAAe;AAAA,MAErE,GAAG,MAAM,iBAAiB;AAAA,MAI1B,IAAI,QAAQ,gBAAgB,GAAG,MAAM,aAAa,UAAU,GAAG,MAAM,cAAc,QAAQ;AAAA,QACzF,GAAG,MAAM,QAAQ;AAAA,MACnB;AAAA,IACF,EAAO;AAAA,MAEL,GAAG,MAAM,iBAAiB;AAAA;AAAA;AAAA,EAK9B,iBAAiB,CAAC,IAAI,UAAU;AAAA,IAC9B,GAAG,MAAM,iBAAiB,kBAAkB,OAAO,KAAK,CAAC;AAAA;AAAA,EAG3D,eAAe,CAAC,IAAI,UAAU;AAAA,IAC5B,GAAG,MAAM,aAAa,kBAAkB,OAAO,KAAK,CAAC;AAAA;AAAA,EAGvD,KAAK,CAAC,IAAI,UAAU;AAAA,IAClB,GAAG,MAAM,MAAM,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAKxE,QAAQ,CAAC,IAAI,UAAU;AAAA,IACrB,GAAG,MAAM,OAAO,OAAO,KAAK;AAAA,IAE5B,GAAG,QAAQ,YAAY;AAAA;AAAA,EAIzB,MAAM,CAAC,IAAI,UAAU;AAAA,IACnB,GAAG,MAAM,OAAO,OAAO,KAAK;AAAA,IAE5B,GAAG,QAAQ,YAAY;AAAA;AAAA,EAGzB,UAAU,CAAC,IAAI,UAAU;AAAA,IACvB,GAAG,MAAM,WAAW,OAAO,KAAK;AAAA;AAAA,EAGlC,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,GAAG,MAAM,aAAa,OAAO,KAAK;AAAA;AAAA,EAGpC,QAAQ,CAAC,IAAI,UAAU;AAAA,IACrB,GAAG,MAAM,SAAS,OAAO,KAAK;AAAA;AAAA,EAGhC,UAAU,CAAC,IAAI,UAAU;AAAA,IACvB,GAAG,MAAM,WAAW,OAAO,KAAK;AAAA;AAAA,EAGlC,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,IAAI,UAAU,QAAQ,UAAU,QAAQ;AAAA,MACtC,GAAG,MAAM,WAAW;AAAA,IACtB,EAAO,SAAI,UAAU,SAAS,UAAU,SAAS;AAAA,MAC/C,GAAG,MAAM,WAAW;AAAA,IACtB,EAAO,SAAI,UAAU,YAAY;AAAA,MAC/B,GAAG,MAAM,YAAY;AAAA,MACrB,GAAG,MAAM,YAAY;AAAA,IACvB,EAAO,SAAI,UAAU,cAAc;AAAA,MACjC,GAAG,MAAM,YAAY;AAAA,MACrB,GAAG,MAAM,YAAY;AAAA,IACvB,EAAO,SAAI,UAAU,QAAQ;AAAA,MAC3B,GAAG,MAAM,WAAW;AAAA,IACtB,EAAO;AAAA,MACL,GAAG,MAAM,WAAW,OAAO,KAAK;AAAA;AAAA;AAGtC;;;AC/IA;AAkCA,IAAM,iBAAiB,IAAI;AASpB,SAAS,YAAY,CAAC,SAAwC;AAAA,EACnE,IAAI,OAAO,eAAe,IAAI,OAAO;AAAA,EACrC,IAAI,CAAC,MAAM;AAAA,IACT,OAAO,CAAC;AAAA,IACR,eAAe,IAAI,SAAS,IAAI;AAAA,EAClC;AAAA,EACA,OAAO;AAAA;AAMF,SAAS,YAAY,CAAC,SAA+B;AAAA,EAC1D,OAAO,eAAe,IAAI,OAAO;AAAA;AAM5B,SAAS,cAAc,CAAC,SAA4B;AAAA,EACzD,eAAe,OAAO,OAAO;AAAA;AAUxB,SAAS,SAAS,CAAC,SAA2C;AAAA,EACnE,OAAO,aAAa,OAAO,EAAE;AAAA;AAMxB,SAAS,SAAS,CAAC,SAAsB,QAAuB;AAAA,EACrE,aAAa,OAAO,EAAE,SAAS;AAAA;AAM1B,SAAS,UAAU,CAAC,SAA2C;AAAA,EACpE,IAAI,UAA8B;AAAA,EAClC,OAAO,SAAS;AAAA,IACd,MAAM,SAAS,UAAU,OAAO;AAAA,IAChC,IAAI;AAAA,MAAQ,OAAO;AAAA,IACnB,UAAU,QAAQ;AAAA,EACpB;AAAA,EACA;AAAA;AAUK,SAAS,mBAAmB,CAAC,SAAmC;AAAA,EACrE,MAAM,OAAO,aAAa,OAAO;AAAA,EACjC,IAAI,CAAC,KAAK,kBAAkB;AAAA,IAC1B,KAAK,mBAAmB,IAAI;AAAA,EAC9B;AAAA,EACA,OAAO,KAAK;AAAA;AAMP,SAAS,iBAAiB,CAAC,SAAsB,UAA2B;AAAA,EACjF,OAAO,oBAAoB,OAAO,EAAE,IAAI,QAAQ;AAAA;AAM3C,SAAS,aAAa,CAAC,SAAsB,UAAwB;AAAA,EAC1E,oBAAoB,OAAO,EAAE,IAAI,QAAQ;AAAA;AAMpC,SAAS,eAAe,CAAC,SAAsB,UAAwB;AAAA,EAC5E,oBAAoB,OAAO,EAAE,OAAO,QAAQ;AAAA;AAUvC,SAAS,YAAY,CAAC,SAA0C;AAAA,EACrE,OAAO,aAAa,OAAO,EAAE;AAAA;AAMxB,SAAS,YAAY,CAAC,SAAsB,KAAmB;AAAA,EACpE,aAAa,OAAO,EAAE,YAAY;AAAA;AAU7B,SAAS,OAAU,CAAC,SAAsB,KAA4B;AAAA,EAC3E,OAAO,aAAa,OAAO,EAAE,OAAO;AAAA;AAM/B,SAAS,OAAU,CAAC,SAAsB,KAAa,OAAgB;AAAA,EAC5E,MAAM,OAAO,aAAa,OAAO;AAAA,EACjC,IAAI,CAAC,KAAK,MAAM;AAAA,IACd,KAAK,OAAO,CAAC;AAAA,EACf;AAAA,EACA,KAAK,KAAK,OAAO;AAAA;AAWZ,SAAS,mBAAmB,CAAC,SAA4B;AAAA,EAE9D,IAAI;AAAA,IACF,MAAM,cAAc,sBAAsB,OAAO;AAAA,IACjD,YAAY,QAAQ;AAAA,IACpB,MAAM;AAAA,EAKR,eAAe,OAAO;AAAA;AAWxB,IAAM,sBAAsB,OAAO,IAAI,cAAc;AACrD,IAAM,2BAA2B,OAAO,IAAI,wBAAwB;AACpE,IAAM,oBAAoB,OAAO,IAAI,iBAAiB;AAK/C,SAAS,eAAe,CAAC,SAA2C;AAAA,EAEzE,MAAM,SAAS,UAAU,OAAO;AAAA,EAChC,IAAI;AAAA,IAAQ,OAAO;AAAA,EAGnB,OAAQ,QAAgB,wBACrB,QAAgB;AAAA;AAMd,SAAS,eAAe,CAAC,SAAsB,QAAuB;AAAA,EAE3E,UAAU,SAAS,MAAM;AAAA,EACxB,QAAgB,gBAAgB;AAAA;;;AChOnC;AAAA,2BACE;AAAA;AAAA;AAAA;AAKF;AAWA,IAAM,MAAM,iBAAiB;AA2B7B,SAAS,aAAa,CAAC,OAAyB;AAAA,EAC9C,IAAI,iBAAiB,KAAK;AAAA,IACxB,MAAM,MAA+B,CAAC;AAAA,IACtC,YAAY,KAAK,QAAQ,MAAM,QAAQ,GAAG;AAAA,MACxC,IAAI,OAAO,cAAc,GAAG;AAAA,IAC9B;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,IACxB,OAAO,MAAM,IAAI,CAAC,SAAS,cAAc,IAAI,CAAC;AAAA,EAChD;AAAA,EAEA,IAAI,SAAS,OAAO,UAAU,UAAU;AAAA,IACtC,MAAM,MAA+B,CAAC;AAAA,IACtC,YAAY,KAAK,QAAQ,OAAO,QAAQ,KAAK,GAAG;AAAA,MAC9C,IAAI,OAAO,cAAc,GAAG;AAAA,IAC9B;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EAEA,OAAO;AAAA;AAMT,SAAS,oBAAoB,CAAC,OAG5B;AAAA,EAEA,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,IAAI,CAAC,MAAM,WAAW,GAAG,GAAG;AAAA,MAC1B,OAAO,EAAE,YAAY,MAAM,SAAS,CAAC,EAAE;AAAA,IACzC;AAAA,IAEA,IAAI,aAAa,MAAM,UAAU,CAAC;AAAA,IAClC,IAAI,WAAW,WAAW,UAAU,GAAG;AAAA,MACrC,aAAa,WAAW,UAAU,CAAC;AAAA,IACrC;AAAA,IACA,OAAO,EAAE,YAAY,SAAS,CAAC,EAAE;AAAA,EACnC;AAAA,EAGA,IAAI,SAAS,OAAO,UAAU,UAAU;AAAA,IACtC,MAAM,QAAQ,cAAc,KAAK;AAAA,IACjC,MAAM,UAAmC,CAAC;AAAA,IAC1C,IAAI,aAA4B;AAAA,IAEhC,IAAI,SAAS,OAAO,UAAU,UAAU;AAAA,MACtC,MAAM,cAAc,MAAM;AAAA,MAC1B,IAAI,OAAO,gBAAgB,YAAY,YAAY,WAAW,GAAG,GAAG;AAAA,QAClE,aAAa,YAAY,UAAU,CAAC;AAAA,QACpC,IAAI,WAAW,WAAW,UAAU,GAAG;AAAA,UACrC,aAAa,WAAW,UAAU,CAAC;AAAA,QACrC;AAAA,MACF;AAAA,MAEA,YAAY,KAAK,QAAQ,OAAO,QAAQ,KAAK,GAAG;AAAA,QAC9C,IAAI,QAAQ,KAAK;AAAA,UAKf,IAAI,QAAQ,KAAK,GAAG,KAAK,OAAO,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,GAAG,GAAG;AAAA,YAC9E,YAAY,UAAU,aAAa,OAAO,QAAQ,GAAG,GAAG;AAAA,cACtD,QAAQ,YAAY;AAAA,YACtB;AAAA,UACF,EAAO;AAAA,YACL,QAAQ,OAAO;AAAA;AAAA,QAEnB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,OAAO,EAAE,YAAY,QAAQ;AAAA,EAC/B;AAAA,EAEA,OAAO,EAAE,YAAY,MAAM,SAAS,CAAC,EAAE;AAAA;AAMzC,SAAS,gBAAgB,CAAC,OAAc,SAA+C;AAAA,EACrF,MAAM,OAAgC;AAAA,IACpC,MAAM,MAAM;AAAA,IACZ,WAAW,KAAK,IAAI;AAAA,EACtB;AAAA,EAGA,IAAI,iBAAiB,YAAY;AAAA,IAC/B,KAAK,UAAU,MAAM;AAAA,IACrB,KAAK,UAAU,MAAM;AAAA,IACrB,KAAK,SAAS,MAAM;AAAA,EACtB;AAAA,EAGA,IAAI,iBAAiB,eAAe;AAAA,IAClC,KAAK,MAAM,MAAM;AAAA,IACjB,KAAK,OAAO,MAAM;AAAA,IAClB,KAAK,UAAU,MAAM;AAAA,IACrB,KAAK,WAAW,MAAM;AAAA,IACtB,KAAK,SAAS,MAAM;AAAA,IACpB,KAAK,UAAU,MAAM;AAAA,EACvB;AAAA,EAGA,IAAI,mBAAmB,oBAAoB,mBAAmB,qBAAqB;AAAA,IACjF,KAAK,QAAQ,QAAQ;AAAA,EACvB;AAAA,EAGA,IAAI,mBAAmB,mBAAmB;AAAA,IACxC,KAAK,QAAQ,QAAQ;AAAA,IACrB,KAAK,gBAAgB,QAAQ;AAAA,EAC/B;AAAA,EAGA,IAAI,MAAM,SAAS,YAAY,mBAAmB,iBAAiB;AAAA,IACjE,KAAK,WAAW,IAAI,SAAS,OAAO;AAAA,EACtC;AAAA,EAEA,OAAO;AAAA;AAmBT,SAAS,kBAAkB,CACzB,WACA,UAA+B,CAAC,GACb;AAAA,EACnB,OAAO,CAAC,SAAsB,UAAmB;AAAA,IAC/C,QAAQ,YAAY,SAAS,kBAAkB,qBAAqB,KAAK;AAAA,IAEzE,IAAI,CAAC,YAAY;AAAA,MACf,IAAI,KAAK,GAAG,gEAAgE,KAAK;AAAA,MACjF;AAAA,IACF;AAAA,IAEA,MAAM,cAAc,uBAAsB,OAAO;AAAA,IAIjD,MAAM,WAAW,GAAG,aAAa;AAAA,IACjC,IAAI,oBAAoB,OAAO,EAAE,IAAI,QAAQ,GAAG;AAAA,MAG9C;AAAA,IACF;AAAA,IACA,cAAc,SAAS,QAAQ;AAAA,IAG/B,IAAI,gBAAmC;AAAA,IAGvC,MAAM,WAAW,CAAC,UAAiB;AAAA,MAEjC,IAAI,QAAQ,cAAc,eAAe;AAAA,QACvC;AAAA,MACF;AAAA,MAEA,IAAI,QAAQ,YAAY;AAAA,QACtB,gBAAgB,kBAAkB,MAAM;AAAA,UACtC,gBAAgB;AAAA,WACf,QAAQ,UAAU;AAAA,MACvB;AAAA,MAGA,IAAI,QAAQ,gBAAgB;AAAA,QAC1B,MAAM,eAAe;AAAA,MACvB;AAAA,MAGA,MAAM,UACJ,OAAO,KAAK,aAAa,EAAE,SAAS,IAChC,KAAK,cAAc,IACnB,QAAQ,iBACN,QAAQ,eAAe,OAAO,OAAO,IACrC,iBAAiB,OAAO,OAAO;AAAA,MAGvC,MAAM,SAAS,UAAU,OAAO;AAAA,MAChC,IAAI,QAAQ;AAAA,QACV,OAAO,eAAe,YAAY,OAAO;AAAA,MAC3C;AAAA;AAAA,IAIF,YAAY,IACV,mBAAmB,SAAS,WAAW,UAAU;AAAA,MAC/C,SAAS,QAAQ;AAAA,IACnB,CAAC,CACH;AAAA,IAGA,YAAY,YAAY,MAAM;AAAA,MAC5B,gBAAgB,SAAS,QAAQ;AAAA,MACjC,IAAI,eAAe;AAAA,QACjB,cAAc,QAAQ;AAAA,MACxB;AAAA,KACD;AAAA;AAAA;AAOL,SAAS,gBAAgB,CAAC,aAAqB,SAA4B;AAAA,EACzE,OAAO,CAAC,SAAsB,UAAmB;AAAA,IAC/C,QAAQ,YAAY,SAAS,kBAAkB,qBAAqB,KAAK;AAAA,IAEzE,IAAI,CAAC,YAAY;AAAA,MACf,IAAI,KAAK,4DAA4D,KAAK;AAAA,MAC1E;AAAA,IACF;AAAA,IAEA,MAAM,cAAc,uBAAsB,OAAO;AAAA,IAEjD,MAAM,WAAW,WAAW,cAAc;AAAA,IAC1C,IAAI,oBAAoB,OAAO,EAAE,IAAI,QAAQ,GAAG;AAAA,MAC9C;AAAA,IACF;AAAA,IACA,cAAc,SAAS,QAAQ;AAAA,IAG/B,MAAM,YAAY,aAAa,OAAO,KAAK;AAAA,IAC3C,MAAM,aAAa,UAAU,YAAY,MAAM,WAAW,UAAU;AAAA,IAEpE,MAAM,WAAW,CAAC,UAAiB;AAAA,MACjC,MAAM,WAAW;AAAA,MACjB,IAAI,SAAS,QAAQ,YAAY;AAAA,QAC/B;AAAA,MACF;AAAA,MAEA,MAAM,eAAe;AAAA,MAErB,MAAM,SAAS,MAAM;AAAA,MACrB,MAAM,UACJ,OAAO,KAAK,aAAa,EAAE,SAAS,IAChC,KAAK,cAAc,IACnB;AAAA,QACE,MAAM,MAAM;AAAA,QACZ,WAAW,KAAK,IAAI;AAAA,QACpB,KAAK,SAAS;AAAA,QACd,MAAM,SAAS;AAAA,QACf,OAAO,OAAO;AAAA,QACd,OAAO,OAAO;AAAA,QACd,SAAS,SAAS;AAAA,QAClB,UAAU,SAAS;AAAA,QACnB,QAAQ,SAAS;AAAA,QACjB,SAAS,SAAS;AAAA,MACpB;AAAA,MAEN,MAAM,SAAS,UAAU,OAAO;AAAA,MAChC,IAAI,QAAQ;AAAA,QACV,OAAO,eAAe,YAAY,OAAO;AAAA,MAC3C;AAAA;AAAA,IAGF,YAAY,IAAI,mBAAmB,SAAS,WAAW,QAAQ,CAAC;AAAA,IAChE,YAAY,YAAY,MAAM;AAAA,MAC5B,gBAAgB,SAAS,QAAQ;AAAA,KAClC;AAAA;AAAA;AAOL,SAAS,sBAAsB,CAAC,cAAsB,KAAwB;AAAA,EAC5E,OAAO,CAAC,SAAsB,UAAmB;AAAA,IAC/C,QAAQ,YAAY,SAAS,kBAAkB,qBAAqB,KAAK;AAAA,IAEzE,IAAI,CAAC,YAAY;AAAA,MACf,IAAI,KAAK,kEAAkE,KAAK;AAAA,MAChF;AAAA,IACF;AAAA,IAEA,MAAM,cAAc,uBAAsB,OAAO;AAAA,IAEjD,MAAM,WAAW,aAAa;AAAA,IAC9B,IAAI,oBAAoB,OAAO,EAAE,IAAI,QAAQ,GAAG;AAAA,MAC9C;AAAA,IACF;AAAA,IACA,cAAc,SAAS,QAAQ;AAAA,IAE/B,IAAI,iBAAoC;AAAA,IAExC,MAAM,eAAe,CAAC,UAAiB;AAAA,MACrC,MAAM,eAAe;AAAA,MAErB,iBAAiB,kBAAkB,MAAM;AAAA,QACvC,MAAM,UACJ,OAAO,KAAK,aAAa,EAAE,SAAS,IAChC,KAAK,cAAc,IACnB;AAAA,UACE,MAAM;AAAA,UACN,WAAW,KAAK,IAAI;AAAA,UACpB,SAAS,aAAa;AAAA,UACtB,SAAS,aAAa;AAAA,QACxB;AAAA,QAEN,MAAM,SAAS,UAAU,OAAO;AAAA,QAChC,IAAI,QAAQ;AAAA,UACV,OAAO,eAAe,YAAY,OAAO;AAAA,QAC3C;AAAA,QAEA,iBAAiB;AAAA,SAChB,WAAW;AAAA;AAAA,IAGhB,MAAM,iBAAiB,MAAM;AAAA,MAC3B,IAAI,gBAAgB;AAAA,QAClB,eAAe,QAAQ;AAAA,QACvB,iBAAiB;AAAA,MACnB;AAAA;AAAA,IAGF,YAAY,IAAI,mBAAmB,SAAS,eAAe,YAAY,CAAC;AAAA,IACxE,YAAY,IAAI,mBAAmB,SAAS,aAAa,cAAc,CAAC;AAAA,IACxE,YAAY,IAAI,mBAAmB,SAAS,gBAAgB,cAAc,CAAC;AAAA,IAC3E,YAAY,YAAY,MAAM;AAAA,MAC5B,gBAAgB,SAAS,QAAQ;AAAA,MACjC,eAAe;AAAA,KAChB;AAAA;AAAA;AAQL,IAAM,eAAe,CAAC,OAAc,YAAkD;AAAA,EACpF,MAAM,SAAS;AAAA,EACf,OAAO;AAAA,IACL,MAAM,MAAM;AAAA,IACZ,WAAW,KAAK,IAAI;AAAA,IACpB,OAAO,OAAO;AAAA,IACd,OAAO,OAAO;AAAA,EAChB;AAAA;AAGF,IAAM,gBAAgB,CAAC,QAAe,YAAkD;AAAA,EACtF,MAAM,YAAY,QAAQ;AAAA,EAC1B,MAAM,eAAe,QAAQ;AAAA,EAC7B,MAAM,eAAe,QAAQ;AAAA,EAC7B,MAAM,mBACJ,eAAe,eAAe,IACzB,aAAa,eAAe,gBAAiB,MAC9C;AAAA,EAEN,MAAM,aACJ,eAAe,YAAY,eAAe,OAAO,mBAAmB;AAAA,EAEtE,OAAO;AAAA,IACL,MAAM;AAAA,IACN,WAAW,KAAK,IAAI;AAAA,IACpB;AAAA,IACA,YAAY,QAAQ;AAAA,IACpB;AAAA,IACA,aAAa,QAAQ;AAAA,IACrB;AAAA,IACA,aAAa,QAAQ;AAAA,IACrB,kBAAkB,KAAK,MAAM,gBAAgB;AAAA,IAC7C;AAAA,IACA,UAAU,eAAe,cAAc;AAAA,IACvC,OAAO,cAAc;AAAA,EACvB;AAAA;AAGF,IAAM,eAAe,CAAC,OAAc,aAAmD;AAAA,EACrF,MAAM,MAAM;AAAA,EACZ,WAAW,KAAK,IAAI;AAAA,EACpB,OAAQ,QAA6B,SAAS;AAChD;AAEA,IAAM,eAAe,CAAC,OAAc,aAAmD;AAAA,EACrF,MAAM,aAAa;AAAA,EACnB,OAAO;AAAA,IACL,MAAM,MAAM;AAAA,IACZ,WAAW,KAAK,IAAI;AAAA,IACpB,SAAS,WAAW;AAAA,IACpB,SAAS,WAAW;AAAA,EACtB;AAAA;AAOK,IAAM,gBAAmD;AAAA,EAE9D,SAAS,mBAAmB,OAAO;AAAA,EACnC,SAAS,mBAAmB,OAAO;AAAA,EAGnC,UAAU,mBAAmB,QAAQ;AAAA,EACrC,UAAU,mBAAmB,UAAU,EAAE,gBAAgB,KAAK,CAAC;AAAA,EAC/D,SAAS,mBAAmB,SAAS,EAAE,gBAAgB,aAAa,CAAC;AAAA,EAGrE,OAAO,iBAAiB,OAAO;AAAA,EAC/B,aAAa,CAAC,SAAsB,UAAmB;AAAA,IAErD,aAAa,SAAS,OAAO,KAAK,CAAC;AAAA;AAAA,EAErC,gBAAgB,iBAAiB,OAAO;AAAA,EAGxC,UAAU,mBAAmB,UAAU;AAAA,IACrC,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,gBAAgB;AAAA,EAClB,CAAC;AAAA,EAGD,aAAa,uBAAuB,GAAG;AAAA,EACvC,aAAa,uBAAuB,GAAG;AAAA,EAGvC,SAAS,mBAAmB,SAAS,EAAE,gBAAgB,aAAa,CAAC;AAAA,EACrE,QAAQ,mBAAmB,QAAQ,EAAE,gBAAgB,aAAa,CAAC;AAAA,EAGnE,cAAc,mBAAmB,cAAc,EAAE,gBAAgB,aAAa,CAAC;AAAA,EAC/E,cAAc,mBAAmB,cAAc,EAAE,gBAAgB,aAAa,CAAC;AAAA,EAG/E,MAAO,CAAC,SAAsB,UAAmB;AAAA,IAC/C,MAAM,WAAW,OAAO,UAAU,WAAW,QAAQ;AAAA,IACrD,IAAI,CAAC;AAAA,MAAU;AAAA,IAEf,MAAM,cAAc,uBAAsB,OAAO;AAAA,IACjD,MAAM,WAAW,QAAQ;AAAA,IACzB,IAAI,oBAAoB,OAAO,EAAE,IAAI,QAAQ;AAAA,MAAG;AAAA,IAChD,cAAc,SAAS,QAAQ;AAAA,IAG/B,MAAM,YAAY,QAAQ,SAAS;AAAA,IAEnC,IAAI,cAAc,cAAc,cAAc,UAAU;AAAA,MAEtD,MAAM,QAAQ,QAAQ,cAAc,wBAAwB;AAAA,MAC5D,IAAI,CAAC;AAAA,QAAO;AAAA,MAEZ,MAAM,WAAW,MAAM;AAAA,QACrB,MAAM,SAAS,UAAU,OAAO;AAAA,QAChC,IAAI,QAAQ;AAAA,UACV,OAAO,eAAe,gBAAgB;AAAA,YACpC,MAAM;AAAA,YACN,OAAO,MAAM;AAAA,UACf,CAAC;AAAA,QACH;AAAA;AAAA,MAGF,YAAY,IACV,mBAAmB,OAAO,UAAU,UAAU,EAAE,SAAS,KAAK,CAAC,CACjE;AAAA,IACF,EAAO,SAAI,mBAAmB,mBAAmB;AAAA,MAE/C,MAAM,WAAW,MAAM;AAAA,QACrB,MAAM,SAAS,UAAU,OAAO;AAAA,QAChC,IAAI,QAAQ;AAAA,UACV,OAAO,eAAe,gBAAgB;AAAA,YACpC,MAAM;AAAA,YACN,OAAO,QAAQ;AAAA,UACjB,CAAC;AAAA,QACH;AAAA;AAAA,MAGF,YAAY,IACV,mBAAmB,SAAS,UAAU,UAAU,EAAE,SAAS,KAAK,CAAC,CACnE;AAAA,IACF,EAAO,SACL,mBAAmB,oBACnB,mBAAmB,qBACnB;AAAA,MAEA,MAAM,WAAW,MAAM;AAAA,QACrB,MAAM,SAAS,UAAU,OAAO;AAAA,QAChC,IAAI,QAAQ;AAAA,UACV,OAAO,eAAe,gBAAgB;AAAA,YACpC,MAAM;AAAA,YACN,OAAO,QAAQ;AAAA,UACjB,CAAC;AAAA,QACH;AAAA;AAAA,MAGF,YAAY,IACV,mBAAmB,SAAS,SAAS,UAAU,EAAE,SAAS,KAAK,CAAC,CAClE;AAAA,IACF,EAAO;AAAA,MACL;AAAA;AAAA,IAGF,YAAY,YAAY,MAAM,gBAAgB,SAAS,QAAQ,CAAC;AAAA;AAEpE;;;AC/iBO,IAAM,qBAAwD;AAAA,EACnE,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,GAAG,MAAM,YAAY,OAAO,KAAK;AAAA;AAAA,EAGnC,eAAe,CAAC,IAAI,UAAU;AAAA,IAC5B,GAAG,MAAM,gBAAgB,OAAO,KAAK;AAAA;AAAA,EAGvC,gBAAgB,CAAC,IAAI,UAAU;AAAA,IAC7B,GAAG,MAAM,iBAAiB,OAAO,KAAK;AAAA;AAAA,EAGxC,qBAAqB,CAAC,IAAI,UAAU;AAAA,IAClC,GAAG,MAAM,sBAAsB,OAAO,KAAK;AAAA;AAAA,EAG7C,qBAAqB,CAAC,IAAI,UAAU;AAAA,IAClC,GAAG,MAAM,sBAAsB,OAAO,KAAK;AAAA;AAAA,EAG7C,yBAAyB,CAAC,IAAI,UAAU;AAAA,IACtC,GAAG,MAAM,0BAA0B,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAG5F,eAAe,CAAC,IAAI,UAAU;AAAA,IAC5B,GAAG,MAAM,gBAAgB,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAGlF,aAAa,CAAC,IAAI,UAAU;AAAA,IAC1B,GAAG,MAAM,cAAc,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAGhF,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,GAAG,MAAM,aAAa,OAAO,KAAK;AAAA;AAAA,EAGpC,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,GAAG,MAAM,aAAa,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAG/E,cAAc,CAAC,IAAI,UAAU;AAAA,IAC3B,GAAG,MAAM,eAAe,OAAO,KAAK;AAAA;AAAA,EAGtC,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,GAAG,MAAM,aAAa,OAAO,KAAK;AAAA;AAAA,EAGpC,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,GAAG,MAAM,YAAY,OAAO,KAAK;AAAA;AAAA,EAGnC,eAAe,CAAC,IAAI,UAAU;AAAA,IAC5B,GAAG,MAAM,gBAAgB,OAAO,KAAK;AAAA;AAAA,EAGvC,aAAa,CAAC,IAAI,UAAU;AAAA,IAC1B,GAAG,MAAM,cAAc,OAAO,KAAK;AAAA;AAAA,EAGrC,aAAa,CAAC,IAAI,UAAU;AAAA,IAC1B,GAAG,MAAM,cAAc,OAAO,KAAK;AAAA;AAAA,EAGrC,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,GAAG,MAAM,YAAY,OAAO,KAAK;AAAA;AAAA,EAGnC,aAAa,CAAC,IAAI,UAAU;AAAA,IAC1B,GAAG,MAAM,cAAc,OAAO,KAAK;AAAA;AAAA,EAGrC,UAAU,CAAC,IAAI,UAAU;AAAA,IACvB,MAAM,QAAQ,OAAO,UAAU,WAAW,QAAQ,SAAS,OAAO,KAAK,GAAG,EAAE;AAAA,IAC5E,IAAI,CAAC,MAAM,KAAK,KAAK,QAAQ,GAAG;AAAA,MAC9B,GAAG,MAAM,UAAU;AAAA,MACnB,GAAG,MAAM,YAAY,sBAAsB,OAAO,KAAK,CAAC;AAAA,MACxD,GAAG,MAAM,YAAY,sBAAsB,UAAU;AAAA,MACrD,GAAG,MAAM,WAAW;AAAA,IACtB;AAAA;AAEJ;;;AClFO,IAAM,oBAAuD;AAAA,EAClE,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,GAAG,MAAM,YAAY,OAAO,KAAK;AAAA;AAAA,EAGnC,iBAAiB,CAAC,IAAI,UAAU;AAAA,IAC9B,GAAG,MAAM,kBAAkB,OAAO,KAAK;AAAA;AAAA,EAGzC,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,MAAM,UAAU,GAAG,MAAM,aAAa;AAAA,IACtC,MAAM,MAAM,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA,IACnE,GAAG,MAAM,YAAY,UAAU,GAAG,sBAAsB,SAAS,cAAc;AAAA;AAAA,EAGjF,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,MAAM,UAAU,GAAG,MAAM,aAAa;AAAA,IACtC,MAAM,MAAM,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA,IACnE,GAAG,MAAM,YAAY,UAAU,GAAG,sBAAsB,SAAS,cAAc;AAAA;AAAA,EAGjF,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,MAAM,UAAU,GAAG,MAAM,aAAa;AAAA,IACtC,MAAM,MAAM,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA,IACnE,GAAG,MAAM,YAAY,UAAU,GAAG,sBAAsB,SAAS,cAAc;AAAA;AAAA,EAGjF,QAAQ,CAAC,IAAI,UAAU;AAAA,IACrB,MAAM,UAAU,GAAG,MAAM,aAAa;AAAA,IACtC,MAAM,MAAM,OAAO,KAAK;AAAA,IACxB,GAAG,MAAM,YAAY,UAAU,GAAG,kBAAkB,SAAS,UAAU;AAAA;AAAA,EAGzE,SAAS,CAAC,IAAI,UAAU;AAAA,IACtB,MAAM,UAAU,GAAG,MAAM,aAAa;AAAA,IACtC,MAAM,MAAM,OAAO,KAAK;AAAA,IACxB,GAAG,MAAM,YAAY,UAAU,GAAG,mBAAmB,SAAS,WAAW;AAAA;AAAA,EAG3E,SAAS,CAAC,IAAI,UAAU;AAAA,IACtB,MAAM,UAAU,GAAG,MAAM,aAAa;AAAA,IACtC,MAAM,MAAM,OAAO,KAAK;AAAA,IACxB,GAAG,MAAM,YAAY,UAAU,GAAG,mBAAmB,SAAS,WAAW;AAAA;AAAA,EAG3E,SAAS,CAAC,IAAI,UAAU;AAAA,IACtB,MAAM,UAAU,GAAG,MAAM,aAAa;AAAA,IACtC,MAAM,MAAM,OAAO,KAAK;AAAA,IACxB,GAAG,MAAM,YAAY,UAAU,GAAG,mBAAmB,SAAS,WAAW;AAAA;AAAA,EAG3E,OAAO,CAAC,IAAI,UAAU;AAAA,IACpB,MAAM,UAAU,GAAG,MAAM,aAAa;AAAA,IACtC,GAAG,MAAM,YAAY,UAAU,GAAG,iBAAiB,WAAW,SAAS;AAAA;AAAA,EAGzE,QAAQ,CAAC,IAAI,UAAU;AAAA,IACrB,MAAM,UAAU,GAAG,MAAM,aAAa;AAAA,IACtC,GAAG,MAAM,YAAY,UAAU,GAAG,kBAAkB,WAAW,UAAU;AAAA;AAAA,EAG3E,QAAQ,CAAC,IAAI,UAAU;AAAA,IACrB,MAAM,UAAU,GAAG,MAAM,aAAa;AAAA,IACtC,GAAG,MAAM,YAAY,UAAU,GAAG,kBAAkB,WAAW,UAAU;AAAA;AAAA,EAG3E,MAAM,CAAC,IAAI,UAAU;AAAA,IACnB,MAAM,UAAU,GAAG,MAAM,aAAa;AAAA,IACtC,GAAG,MAAM,YAAY,UAAU,GAAG,gBAAgB,WAAW,QAAQ;AAAA;AAAA,EAGvE,OAAO,CAAC,IAAI,UAAU;AAAA,IACpB,MAAM,UAAU,GAAG,MAAM,aAAa;AAAA,IACtC,GAAG,MAAM,YAAY,UAAU,GAAG,iBAAiB,WAAW,SAAS;AAAA;AAAA,EAGzE,OAAO,CAAC,IAAI,UAAU;AAAA,IACpB,MAAM,UAAU,GAAG,MAAM,aAAa;AAAA,IACtC,GAAG,MAAM,YAAY,UAAU,GAAG,iBAAiB,WAAW,SAAS;AAAA;AAAA,EAGzE,aAAa,CAAC,IAAI,UAAU;AAAA,IAC1B,GAAG,MAAM,cAAc,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAElF;;;ACpFO,IAAM,kBAAqD;AAAA,EAEhE,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,IAAI,OAAO,UAAU,UAAU;AAAA,MAC7B,GAAG,MAAM,YAAY;AAAA,IACvB,EAAO,SAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAAA,MAEtD,MAAM,MAAM;AAAA,MACZ,MAAM,IAAI,OAAO,IAAI,MAAM,WAAW,GAAG,IAAI,QAAS,IAAI,KAAK,IAAI,WAAW;AAAA,MAC9E,MAAM,IAAI,OAAO,IAAI,MAAM,WAAW,GAAG,IAAI,QAAS,IAAI,KAAK,IAAI,WAAW;AAAA,MAC9E,MAAM,OAAO,OAAO,IAAI,SAAS,WAAW,GAAG,IAAI,WAAY,IAAI,QAAQ,IAAI,UAAU;AAAA,MACzF,MAAM,SAAS,OAAO,IAAI,WAAW,WAAW,GAAG,IAAI,aAAc,IAAI,UAAU;AAAA,MACnF,MAAM,QAAQ,IAAI,SAAS;AAAA,MAC3B,MAAM,QAAQ,IAAI,QAAQ,WAAW;AAAA,MACrC,GAAG,MAAM,YAAY,GAAG,QAAQ,KAAK,KAAK,QAAQ,UAAU;AAAA,IAC9D,EAAO,SAAI,OAAO,UAAU,UAAU;AAAA,MAEpC,GAAG,MAAM,YAAY,KAAK,WAAW,QAAQ;AAAA,IAC/C;AAAA;AAAA,EAIF,QAAQ,CAAC,IAAI,UAAU;AAAA,IACrB,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAAA,MAC/C,MAAM,MAAM;AAAA,MACZ,MAAM,IAAI,OAAO,IAAI,MAAM,WAAW,GAAG,IAAI,QAAS,IAAI,KAAK,IAAI,WAAW;AAAA,MAC9E,MAAM,IAAI,OAAO,IAAI,MAAM,WAAW,GAAG,IAAI,QAAS,IAAI,KAAK,IAAI,WAAW;AAAA,MAC9E,MAAM,OAAO,OAAO,IAAI,SAAS,WAAW,GAAG,IAAI,WAAY,IAAI,QAAQ,IAAI,UAAU;AAAA,MACzF,MAAM,QAAQ,IAAI,SAAS;AAAA,MAC3B,GAAG,MAAM,YAAY,GAAG,KAAK,KAAK,QAAQ;AAAA,IAC5C,EAAO,SAAI,OAAO,UAAU,UAAU;AAAA,MAEpC,GAAG,MAAM,YAAY,KAAK,WAAW,QAAQ;AAAA,IAC/C,EAAO;AAAA,MACL,GAAG,MAAM,YAAY,OAAO,KAAK;AAAA;AAAA;AAAA,EAKrC,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,MAAM,QAAQ,OAAO,UAAU,WAAW,QAAQ,SAAS,OAAO,KAAK,GAAG,EAAE;AAAA,IAC5E,IAAI,CAAC,MAAM,KAAK,KAAK,SAAS,GAAG;AAAA,MAE/B,MAAM,IAAI,QAAQ;AAAA,MAClB,MAAM,OAAO,QAAQ;AAAA,MACrB,MAAM,UAAU,KAAK,IAAI,MAAM,QAAQ,MAAM,GAAG;AAAA,MAChD,GAAG,MAAM,YAAY,KAAK,OAAO,qBAAqB;AAAA,IACxD;AAAA;AAAA,EAGF,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,GAAG,MAAM,aAAa,OAAO,KAAK;AAAA;AAAA,EAIpC,QAAQ,CAAC,IAAI,UAAU;AAAA,IACrB,GAAG,MAAM,SAAS,OAAO,KAAK;AAAA;AAAA,EAGhC,gBAAgB,CAAC,IAAI,UAAU;AAAA,IAC7B,GAAG,MAAM,iBAAiB,OAAO,KAAK;AAAA;AAAA,EAIxC,MAAM,CAAC,IAAI,UAAU;AAAA,IACnB,MAAM,MAAM,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA,IACnE,MAAM,UAAU,GAAG,MAAM,UAAU;AAAA,IACnC,GAAG,MAAM,SAAS,UAAU,GAAG,gBAAgB,SAAS,QAAQ;AAAA;AAAA,EAGlE,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,MAAM,UAAU,GAAG,MAAM,UAAU;AAAA,IACnC,GAAG,MAAM,SAAS,UAAU,GAAG,sBAAsB,WAAW,cAAc;AAAA;AAAA,EAGhF,UAAU,CAAC,IAAI,UAAU;AAAA,IACvB,MAAM,UAAU,GAAG,MAAM,UAAU;AAAA,IACnC,GAAG,MAAM,SAAS,UAAU,GAAG,oBAAoB,WAAW,YAAY;AAAA;AAAA,EAG5E,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,MAAM,UAAU,GAAG,MAAM,UAAU;AAAA,IACnC,GAAG,MAAM,SAAS,UAAU,GAAG,qBAAqB,WAAW,aAAa;AAAA;AAAA,EAG9E,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,MAAM,MAAM,OAAO,KAAK;AAAA,IACxB,MAAM,UAAU,GAAG,MAAM,UAAU;AAAA,IACnC,GAAG,MAAM,SAAS,UAAU,GAAG,sBAAsB,SAAS,cAAc;AAAA;AAAA,EAG9E,QAAQ,CAAC,IAAI,UAAU;AAAA,IACrB,MAAM,UAAU,GAAG,MAAM,UAAU;AAAA,IACnC,GAAG,MAAM,SAAS,UAAU,GAAG,kBAAkB,WAAW,UAAU;AAAA;AAAA,EAGxE,UAAU,CAAC,IAAI,UAAU;AAAA,IACvB,MAAM,UAAU,GAAG,MAAM,UAAU;AAAA,IACnC,GAAG,MAAM,SAAS,UAAU,GAAG,oBAAoB,WAAW,YAAY;AAAA;AAAA,EAG5E,OAAO,CAAC,IAAI,UAAU;AAAA,IACpB,MAAM,UAAU,GAAG,MAAM,UAAU;AAAA,IACnC,GAAG,MAAM,SAAS,UAAU,GAAG,iBAAiB,WAAW,SAAS;AAAA;AAAA,EAGtE,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,MAAM,UAAU,GAAG,MAAM,UAAU;AAAA,IACnC,GAAG,MAAM,SAAS,UAAU,GAAG,uBAAuB,WAAW,eAAe;AAAA;AAAA,EAIlF,cAAc,CAAC,IAAI,UAAU;AAAA,IAC3B,GAAG,MAAM,eAAe,OAAO,KAAK;AAAA;AAAA,EAGtC,qBAAqB,CAAC,IAAI,UAAU;AAAA,IAClC,GAAG,MAAM,sBAAsB,OAAO,KAAK;AAAA;AAAA,EAI7C,UAAU,CAAC,IAAI,UAAU;AAAA,IACvB,GAAG,MAAM,WAAW,OAAO,KAAK;AAAA;AAAA,EAGlC,MAAM,CAAC,IAAI,UAAU;AAAA,IACnB,GAAG,MAAM,OAAO,OAAO,KAAK;AAAA;AAAA,EAG9B,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,GAAG,MAAM,YAAY,OAAO,KAAK;AAAA;AAErC;;;ACnIO,IAAM,yBAA4D;AAAA,EAEvE,eAAe,CAAC,IAAI,UAAU;AAAA,IAC5B,GAAG,MAAM,gBAAgB,OAAO,KAAK;AAAA;AAAA,EAGvC,UAAU,CAAC,IAAI,UAAU;AAAA,IACvB,GAAG,MAAM,WAAW,OAAO,KAAK;AAAA;AAAA,EAGlC,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,GAAG,MAAM,YAAY,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAG9E,cAAc,CAAC,IAAI,UAAU;AAAA,IAC3B,GAAG,MAAM,eAAe,OAAO,KAAK;AAAA;AAAA,EAGtC,OAAO,CAAC,IAAI,UAAU;AAAA,IACpB,GAAG,MAAM,QAAQ,OAAO,KAAK;AAAA;AAAA,EAI/B,qBAAqB,CAAC,IAAI,UAAU;AAAA,IAClC,GAAG,MAAM,sBAAsB,OAAO,KAAK;AAAA;AAAA,EAG7C,kBAAkB,CAAC,IAAI,UAAU;AAAA,IAC/B,GAAG,MAAM,mBAAmB,OAAO,KAAK;AAAA;AAAA,EAI1C,aAAa,CAAC,IAAI,UAAU;AAAA,IAE1B,IAAI,OAAO,UAAU,UAAU;AAAA,MAC7B,GAAG,MAAM,sBAAsB,UAAU;AAAA,IAC3C,EAAO;AAAA,MACL,GAAG,MAAM,sBAAsB,OAAO,KAAK;AAAA;AAAA;AAAA,EAI/C,UAAU,CAAC,IAAI,UAAU;AAAA,IAEvB,IAAI,OAAO,UAAU,UAAU;AAAA,MAC7B,GAAG,MAAM,mBAAmB,UAAU;AAAA,IACxC,EAAO;AAAA,MACL,GAAG,MAAM,mBAAmB,OAAO,KAAK;AAAA;AAAA;AAAA,EAI5C,mBAAmB,CAAC,IAAI,UAAU;AAAA,IAChC,GAAG,MAAM,oBAAoB,OAAO,KAAK;AAAA;AAAA,EAG3C,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,GAAG,MAAM,aAAa,OAAO,KAAK;AAAA;AAAA,EAGpC,SAAS,CAAC,IAAI,UAAU;AAAA,IACtB,GAAG,MAAM,UAAU,OAAO,KAAK;AAAA;AAAA,EAGjC,UAAU,CAAC,IAAI,UAAU;AAAA,IACvB,GAAG,MAAM,WAAW,OAAO,KAAK;AAAA;AAAA,EAGlC,cAAc,CAAC,IAAI,UAAU;AAAA,IAC3B,GAAG,MAAM,eAAe,OAAO,KAAK;AAAA;AAAA,EAGtC,iBAAiB,CAAC,IAAI,UAAU;AAAA,IAC9B,GAAG,MAAM,kBAAkB,OAAO,KAAK;AAAA;AAAA,EAGzC,cAAc,CAAC,IAAI,UAAU;AAAA,IAC3B,GAAG,MAAM,eAAe,OAAO,KAAK;AAAA;AAAA,EAGtC,QAAQ,CAAC,IAAI,UAAU;AAAA,IACrB,GAAG,MAAM,SAAS,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAG3E,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,GAAG,MAAM,YAAY,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAG9E,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,GAAG,MAAM,aAAa,OAAO,KAAK;AAAA;AAAA,EAGpC,cAAc,CAAC,IAAI,UAAU;AAAA,IAC3B,GAAG,MAAM,eAAe,OAAO,KAAK;AAAA;AAAA,EAGtC,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,GAAG,MAAM,YAAY,OAAO,KAAK;AAAA;AAAA,EAInC,UAAU,CAAC,IAAI,UAAU;AAAA,IACvB,GAAG,MAAM,WAAW,OAAO,KAAK;AAAA;AAAA,EAGlC,KAAK,CAAC,IAAI,UAAU;AAAA,IAClB,GAAG,MAAM,MAAM,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAGxE,OAAO,CAAC,IAAI,UAAU;AAAA,IACpB,GAAG,MAAM,QAAQ,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAG1E,QAAQ,CAAC,IAAI,UAAU;AAAA,IACrB,GAAG,MAAM,SAAS,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAG3E,MAAM,CAAC,IAAI,UAAU;AAAA,IACnB,GAAG,MAAM,OAAO,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAGzE,OAAO,CAAC,IAAI,UAAU;AAAA,IACpB,GAAG,MAAM,QAAQ,OAAO,UAAU,WAAW,GAAG,YAAY,OAAO,KAAK;AAAA;AAAA,EAG1E,QAAQ,CAAC,IAAI,UAAU;AAAA,IACrB,GAAG,MAAM,SAAS,OAAO,KAAK;AAAA;AAElC;;;AC/HO,IAAM,qBAAwD;AAAA,EACnE,iBAAiB,CAAC,IAAI,UAAU;AAAA,IAC9B,GAAG,MAAM,kBAAkB,OAAO,KAAK;AAAA;AAAA,EAGzC,gBAAgB,CAAC,IAAI,UAAU;AAAA,IAC7B,GAAG,MAAM,iBAAiB,OAAO,KAAK;AAAA;AAAA,EAGxC,oBAAoB,CAAC,IAAI,UAAU;AAAA,IACjC,GAAG,MAAM,qBAAqB,OAAO,KAAK;AAAA;AAAA,EAG5C,kBAAkB,CAAC,IAAI,UAAU;AAAA,IAC/B,GAAG,MAAM,mBAAmB,OAAO,KAAK;AAAA;AAAA,EAG1C,sBAAsB,CAAC,IAAI,UAAU;AAAA,IACnC,GAAG,MAAM,uBAAuB,OAAO,KAAK;AAAA;AAAA,EAG9C,gBAAgB,CAAC,IAAI,UAAU;AAAA,IAC7B,GAAG,MAAM,iBAAiB,OAAO,KAAK;AAAA;AAAA,EAGxC,kBAAkB,CAAC,IAAI,UAAU;AAAA,IAC/B,GAAG,MAAM,mBAAmB,OAAO,KAAK;AAAA;AAAA,EAI1C,gBAAgB,CAAC,IAAI,UAAU;AAAA,IAC7B,GAAG,MAAM,kBAAkB,mBAAmB;AAAA;AAAA,EAGhD,gBAAgB,CAAC,IAAI,UAAU;AAAA,IAC7B,GAAG,MAAM,kBAAkB,mBAAmB;AAAA;AAAA,EAGhD,eAAe,CAAC,IAAI,UAAU;AAAA,IAC5B,GAAG,MAAM,kBAAkB,kBAAkB;AAAA;AAEjD;;;ACzCO,IAAM,kBAAqD;AAAA,EAChE,SAAS,CAAC,IAAI,UAAU;AAAA,IACtB,GAAG,MAAM,UAAU,OAAO,KAAK;AAAA;AAAA,EAGjC,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,GAAG,MAAM,aAAa,OAAO,KAAK;AAAA;AAAA,EAGpC,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,GAAG,MAAM,YAAY,OAAO,KAAK;AAAA;AAAA,EAGnC,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,GAAG,MAAM,YAAY,OAAO,KAAK;AAAA;AAAA,EAGnC,eAAe,CAAC,IAAI,UAAU;AAAA,IAC5B,GAAG,MAAM,gBAAgB,OAAO,KAAK;AAAA;AAAA,EAGvC,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,GAAG,MAAM,aAAa,OAAO,KAAK;AAAA;AAAA,EAGpC,QAAQ,CAAC,IAAI,UAAU;AAAA,IACrB,GAAG,MAAM,SAAS,OAAO,KAAK;AAAA;AAAA,EAGhC,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,GAAG,MAAM,YAAY,OAAO,KAAK;AAAA;AAAA,EAInC,aAAa,CAAC,IAAI,UAAU;AAAA,IAC1B,GAAG,MAAM,cAAc,OAAO,KAAK;AAAA;AAAA,EAGrC,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,GAAG,MAAM,YAAY,OAAO,KAAK;AAAA;AAAA,EAGnC,gBAAgB,CAAC,IAAI,UAAU;AAAA,IAC7B,GAAG,MAAM,iBAAiB,OAAO,KAAK;AAAA;AAE1C;;;AC7CO,IAAM,qBAAwD;AAAA,EACnE,YAAY,CAAC,IAAI,UAAU;AAAA,IACzB,GAAG,MAAM,aAAa,OAAO,KAAK;AAAA;AAAA,EAGpC,oBAAoB,CAAC,IAAI,UAAU;AAAA,IACjC,GAAG,MAAM,qBAAqB,OAAO,KAAK;AAAA;AAAA,EAG5C,oBAAoB,CAAC,IAAI,UAAU;AAAA,IACjC,GAAG,MAAM,qBAAqB,OAAO,KAAK;AAAA;AAAA,EAG5C,0BAA0B,CAAC,IAAI,UAAU;AAAA,IACvC,GAAG,MAAM,2BAA2B,OAAO,KAAK;AAAA;AAAA,EAGlD,iBAAiB,CAAC,IAAI,UAAU;AAAA,IAC9B,GAAG,MAAM,kBAAkB,OAAO,KAAK;AAAA;AAAA,EAGzC,WAAW,CAAC,IAAI,UAAU;AAAA,IACxB,GAAG,MAAM,YAAY,OAAO,KAAK;AAAA;AAAA,EAGnC,eAAe,CAAC,IAAI,UAAU;AAAA,IAC5B,GAAG,MAAM,gBAAgB,OAAO,KAAK;AAAA;AAAA,EAGvC,mBAAmB,CAAC,IAAI,UAAU;AAAA,IAChC,GAAG,MAAM,oBAAoB,OAAO,KAAK;AAAA;AAAA,EAG3C,yBAAyB,CAAC,IAAI,UAAU;AAAA,IACtC,GAAG,MAAM,0BAA0B,OAAO,KAAK;AAAA;AAAA,EAGjD,gBAAgB,CAAC,IAAI,UAAU;AAAA,IAC7B,GAAG,MAAM,iBAAiB,OAAO,KAAK;AAAA;AAAA,EAGxC,yBAAyB,CAAC,IAAI,UAAU;AAAA,IACtC,GAAG,MAAM,0BAA0B,OAAO,KAAK;AAAA;AAAA,EAGjD,oBAAoB,CAAC,IAAI,UAAU;AAAA,IACjC,GAAG,MAAM,qBAAqB,OAAO,KAAK;AAAA;AAAA,EAG5C,mBAAmB,CAAC,IAAI,UAAU;AAAA,IAChC,GAAG,MAAM,oBAAoB,OAAO,KAAK;AAAA;AAAA,EAG3C,oBAAoB,CAAC,IAAI,UAAU;AAAA,IACjC,GAAG,MAAM,qBAAqB,OAAO,KAAK;AAAA;AAE9C;;;AChBA,IAAM,cAAsC;AAAA,EAC1C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AACT;AAKA,IAAI,oBAA0C;AAK9C,IAAM,gBAAgB,IAAI;AAK1B,SAAS,oBAAoB,GAAkB;AAAA,EAC7C,IAAI,CAAC,mBAAmB;AAAA,IACtB,MAAM,QAAQ,SAAS,cAAc,OAAO;AAAA,IAC5C,MAAM,KAAK;AAAA,IACX,SAAS,KAAK,YAAY,KAAK;AAAA,IAC/B,oBAAoB,MAAM;AAAA,EAC5B;AAAA,EACA,OAAO;AAAA;AAMT,SAAS,SAAS,CAAC,OAAoB;AAAA,EACrC,OAAO,OAAO,KAAK,EAAE,QAAQ,iBAAiB,EAAE,EAAE,MAAM,GAAG,CAAC;AAAA;AAAA;AAGvD,MAAM,mBAAmB;AAAA,EACtB,WAA2C,IAAI;AAAA,EAC/C,eAAuD,IAAI;AAAA,EAEnE,WAAW,GAAG;AAAA,IACZ,KAAK,iBAAiB;AAAA;AAAA,EAMxB,QAAQ,CAAC,MAAc,SAAkC;AAAA,IACvD,KAAK,SAAS,IAAI,MAAM,OAAO;AAAA;AAAA,EAMjC,KAAK,CAAC,SAAsB,MAAc,OAAkB;AAAA,IAE1D,QAAQ,aAAa,QAAQ,WAAW,iBAAiB,KAAK,oBAAoB,IAAI;AAAA,IAEtF,MAAM,UAAU,KAAK,SAAS,IAAI,WAAW;AAAA,IAC7C,MAAM,QAAQ,KAAK,gBAAgB,OAAO;AAAA,IAC1C,MAAM,WAAW,MAAM,IAAI,WAAW;AAAA,IAEtC,IAAI,aAAa,WAAW,MAAM;AAAA,MAGhC,MAAM,SAAS,KAAK,oBAAoB,UAAU,QAAQ,KAAK,eAAe,KAAK,CAAC;AAAA,MAEpF,MAAM,IAAI,aAAa,MAAM;AAAA,MAE7B,IAAI,SAAS;AAAA,QACX,QAAQ,SAAS,MAAM;AAAA,MACzB,EAAO;AAAA,QAEL,KAAK,iBAAiB,SAAS,cAAc,KAAK;AAAA;AAAA,MAEpD;AAAA,IACF;AAAA,IAEA,IAAI,SAAS;AAAA,MACX,IAAI,KAAK,kBAAkB,WAAW,GAAG;AAAA,QACvC,MAAM,kBAAkB,KAAK,oBAAoB,UAAU,KAAK;AAAA,QAChE,MAAM,IAAI,aAAa,eAAe;AAAA,QACtC,QAAQ,SAAS,eAAe;AAAA,MAClC,EAAO;AAAA,QACL,MAAM,IAAI,aAAa,KAAK;AAAA,QAC5B,QAAQ,SAAS,KAAK;AAAA;AAAA,IAE1B,EAAO;AAAA,MAEL,KAAK,iBAAiB,SAAS,aAAa,KAAK;AAAA;AAAA;AAAA,EAU7C,mBAAmB,CAAC,MAK1B;AAAA,IACA,MAAM,WAAW,KAAK,QAAQ,GAAG;AAAA,IACjC,IAAI,aAAa,IAAI;AAAA,MACnB,OAAO,EAAE,aAAa,MAAM,QAAQ,MAAM,WAAW,OAAO,cAAc,KAAK;AAAA,IACjF;AAAA,IAEA,MAAM,WAAW,KAAK,UAAU,GAAG,QAAQ;AAAA,IAC3C,MAAM,SAAS,KAAK,UAAU,WAAW,CAAC;AAAA,IAE1C,IAAI,KAAK,SAAS,IAAI,QAAQ,KAAK,KAAK,kBAAkB,QAAQ,GAAG;AAAA,MACnE,OAAO,EAAE,aAAa,UAAU,QAAQ,WAAW,MAAM,cAAc,KAAK;AAAA,IAC9E;AAAA,IAEA,IAAI,QAAQ,KAAK,MAAM,GAAG;AAAA,MACxB,OAAO,EAAE,aAAa,UAAU,QAAQ,MAAM,WAAW,OAAO,cAAc,SAAS;AAAA,IACzF;AAAA,IAEA,OAAO,EAAE,aAAa,MAAM,QAAQ,MAAM,WAAW,OAAO,cAAc,KAAK;AAAA;AAAA,EAMzE,eAAe,CAAC,SAAwC;AAAA,IAC9D,IAAI,QAAQ,KAAK,aAAa,IAAI,OAAO;AAAA,IACzC,IAAI,CAAC,OAAO;AAAA,MACV,QAAQ,IAAI;AAAA,MACZ,KAAK,aAAa,IAAI,SAAS,KAAK;AAAA,IACtC;AAAA,IACA,OAAO;AAAA;AAAA,EAMD,mBAAmB,CAAC,UAAe,QAAgB,OAAiC;AAAA,IAC1F,MAAM,OAA4B,KAAK,oBAAoB,QAAQ;AAAA,IAEnE,IAAI,UAAU,WAAW;AAAA,MACvB,OAAO,KAAK;AAAA,IACd,EAAO;AAAA,MACL,KAAK,UAAU;AAAA;AAAA,IAGjB,OAAO;AAAA;AAAA,EAMD,mBAAmB,CAAC,UAAoC;AAAA,IAC9D,IAAI,YAAY,OAAO,aAAa,YAAY,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAAA,MACxE,OAAO,KAAK,SAAS;AAAA,IACvB;AAAA,IAEA,IAAI,OAAO,aAAa,UAAU;AAAA,MAChC,OAAO,EAAE,KAAK,SAAS;AAAA,IACzB;AAAA,IAEA,OAAO,CAAC;AAAA;AAAA,EAMF,mBAAmB,CAAC,UAAe,OAAiC;AAAA,IAC1E,MAAM,kBAAkB,KAAK,eAAe,KAAK;AAAA,IACjD,MAAM,OAAO,KAAK,oBAAoB,QAAQ;AAAA,IAE9C,IAAI,mBAAmB,OAAO,oBAAoB,YAAY,CAAC,MAAM,QAAQ,eAAe,GAAG;AAAA,MAC7F,MAAM,OAAO,KAAK,SAAS,gBAAgB;AAAA,MAE3C,IAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,GAAG,KAAK,KAAK,SAAS,WAAW;AAAA,QAC/E,KAAK,OAAO,KAAK;AAAA,MACnB;AAAA,MAEA,OAAO;AAAA,IACT;AAAA,IAEA,IAAI,oBAAoB,WAAW;AAAA,MACjC,KAAK,OAAO;AAAA,IACd;AAAA,IAEA,OAAO;AAAA;AAAA,EAMD,cAAc,CAAC,OAAiB;AAAA,IACtC,IAAI,iBAAiB,KAAK;AAAA,MACxB,MAAM,MAA2B,CAAC;AAAA,MAClC,YAAY,KAAK,QAAQ,MAAM,QAAQ,GAAG;AAAA,QACxC,IAAI,OAAO,KAAK,eAAe,GAAG;AAAA,MACpC;AAAA,MACA,OAAO;AAAA,IACT;AAAA,IAEA,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,MACxB,OAAO,MAAM,IAAI,CAAC,SAAS,KAAK,eAAe,IAAI,CAAC;AAAA,IACtD;AAAA,IAEA,IAAI,SAAS,OAAO,UAAU,UAAU;AAAA,MACtC,MAAM,MAA2B,CAAC;AAAA,MAClC,YAAY,KAAK,QAAQ,OAAO,QAAQ,KAAK,GAAG;AAAA,QAC9C,IAAI,OAAO,KAAK,eAAe,GAAG;AAAA,MACpC;AAAA,MACA,OAAO;AAAA,IACT;AAAA,IAEA,OAAO;AAAA;AAAA,EAMD,iBAAiB,CAAC,MAAuB;AAAA,IAC/C,OAAO,WAAW,KAAK,IAAI;AAAA;AAAA,EAM7B,QAAQ,CAAC,SAAsB,aAAwC;AAAA,IAKrE,MAAM,UAAU,IAAI;AAAA,IAEpB,YAAY,MAAM,UAAU,OAAO,QAAQ,WAAW,GAAG;AAAA,MAEvD,MAAM,WAAW,KAAK,QAAQ,GAAG;AAAA,MACjC,MAAM,WAAW,aAAa,KAAK,KAAK,UAAU,GAAG,QAAQ,IAAI;AAAA,MACjE,MAAM,SAAS,aAAa,KAAK,KAAK,UAAU,WAAW,CAAC,IAAI;AAAA,MAEhE,IAAI,CAAC,QAAQ,IAAI,QAAQ,GAAG;AAAA,QAC1B,QAAQ,IAAI,UAAU,CAAC,CAAC;AAAA,MAC1B;AAAA,MAEA,MAAM,OAAO,QAAQ,IAAI,QAAQ;AAAA,MACjC,IAAI,WAAW,MAAM;AAAA,QAEnB,KAAK,UAAU;AAAA,MACjB,EAAO;AAAA,QAEL,KAAK,aAAa;AAAA;AAAA,IAEtB;AAAA,IAGA,YAAY,UAAU,SAAS,QAAQ,QAAQ,GAAG;AAAA,MAEhD,IAAI,OAAO,KAAK,IAAI,EAAE,WAAW,GAAG;AAAA,QAClC,IAAI,aAAa,MAAM;AAAA,UACrB,KAAK,MAAM,SAAS,UAAU,KAAK,UAAU;AAAA,QAC/C,EAAO,SAAI,OAAO,MAAM;AAAA,UAEtB,KAAK,MAAM,SAAS,UAAU,KAAK,IAAI;AAAA,QACzC,EAAO;AAAA,UAEL,KAAK,MAAM,SAAS,UAAU,IAAI;AAAA;AAAA,MAEtC,EAAO;AAAA,QAEL,KAAK,MAAM,SAAS,UAAU,IAAI;AAAA;AAAA,IAEtC;AAAA;AAAA,EAMM,gBAAgB,CAAC,SAAsB,MAAc,OAAkB;AAAA,IAC7E,MAAM,UAAU,KAAK,QAAQ,GAAG;AAAA,IAChC,MAAM,aAAa,KAAK,QAAQ,GAAG;AAAA,IAGnC,IAAI,YAAY,IAAI;AAAA,MAClB,MAAM,OAAO,KAAK,MAAM,GAAG,OAAO;AAAA,MAClC,MAAM,aAAa,KAAK,MAAM,UAAU,CAAC;AAAA,MACzC,MAAM,WAAW,YAAY;AAAA,MAE7B,IAAI,UAAU;AAAA,QACZ,MAAM,WAAU,KAAK,YAAY,IAAI;AAAA,QACrC,MAAM,WAAW,KAAK,eAAe,UAAS,KAAK;AAAA,QACnD,MAAM,YAAY,SAAS,SAAQ,QAAQ,kBAAkB,EAAE,KAAK,cAAc,UAAU,KAAK;AAAA,QACjG,MAAM,UAAU,GAAG,aAAa;AAAA,QAGhC,IAAI,CAAC,cAAc,IAAI,OAAO,GAAG;AAAA,UAC/B,MAAM,QAAQ,qBAAqB;AAAA,UACnC,MAAM,WACJ,sBAAsB,gBAAgB,eAAe,aAAY,iBACjE,MAAM,SAAS,MACjB;AAAA,UACA,cAAc,IAAI,OAAO;AAAA,QAC3B;AAAA,QAEA,QAAQ,UAAU,IAAI,SAAS;AAAA,MACjC;AAAA,MACA;AAAA,IACF;AAAA,IAGA,IAAI,eAAe,IAAI;AAAA,MACrB,MAAM,OAAO,KAAK,MAAM,GAAG,UAAU;AAAA,MACrC,MAAM,QAAQ,KAAK,MAAM,aAAa,CAAC;AAAA,MAGvC,MAAM,cAAc,CAAC,SAAS,SAAS,UAAU,YAAY,iBAAiB,cAAc;AAAA,MAC5F,IAAI,YAAY,SAAS,KAAK,GAAG;AAAA,QAC/B,MAAM,WAAU,KAAK,YAAY,IAAI;AAAA,QACrC,MAAM,WAAW,KAAK,eAAe,UAAS,KAAK;AAAA,QACnD,MAAM,YAAY,SAAS,SAAQ,QAAQ,kBAAkB,EAAE,KAAK,SAAS,UAAU,KAAK;AAAA,QAC5F,MAAM,UAAU,GAAG,aAAa;AAAA,QAGhC,IAAI,CAAC,cAAc,IAAI,OAAO,GAAG;AAAA,UAC/B,MAAM,QAAQ,qBAAqB;AAAA,UACnC,MAAM,WACJ,IAAI,aAAa,WAAW,aAAY,eACxC,MAAM,SAAS,MACjB;AAAA,UACA,cAAc,IAAI,OAAO;AAAA,QAC3B;AAAA,QAEA,QAAQ,UAAU,IAAI,SAAS;AAAA,MACjC;AAAA,MACA;AAAA,IACF;AAAA,IAGA,MAAM,UAAU,KAAK,YAAY,IAAI;AAAA,IACrC,QAAQ,MAAM,YAAY,SAAS,KAAK,eAAe,SAAS,KAAK,CAAC;AAAA;AAAA,EAMhE,WAAW,CAAC,MAAsB;AAAA,IACxC,OAAO,KAAK,QAAQ,YAAY,KAAK,EAAE,YAAY;AAAA;AAAA,EAM7C,cAAc,CAAC,SAAiB,OAAoB;AAAA,IAC1D,IAAI,OAAO,UAAU,YAAY,KAAK,UAAU,OAAO,GAAG;AAAA,MACxD,OAAO,GAAG;AAAA,IACZ;AAAA,IACA,OAAO,OAAO,KAAK;AAAA;AAAA,EAMb,SAAS,CAAC,MAAuB;AAAA,IACvC,MAAM,WAAW;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,OAAO,CAAC,SAAS,SAAS,IAAI;AAAA;AAAA,EAOxB,gBAAgB,GAAS;AAAA,IAC/B,KAAK,SAAS,WAAW,cAAc;AAAA,IACvC,KAAK,SAAS,cAAc,iBAAiB;AAAA,IAC7C,KAAK,SAAS,iBAAiB,oBAAoB;AAAA,IACnD,KAAK,SAAS,eAAe,kBAAkB;AAAA,IAC/C,KAAK,SAAS,gBAAgB,mBAAmB;AAAA,IACjD,KAAK,SAAS,qBAAqB,wBAAwB;AAAA,IAC3D,KAAK,SAAS,mBAAmB,sBAAsB;AAAA,IACvD,KAAK,SAAS,UAAU,aAAa;AAAA,IACrC,KAAK,SAAS,aAAa,gBAAgB;AAAA,IAC3C,KAAK,SAAS,gBAAgB,mBAAmB;AAAA,IACjD,KAAK,SAAS,cAAc,iBAAiB;AAAA,IAC7C,KAAK,SAAS,eAAe,kBAAkB;AAAA,IAC/C,KAAK,SAAS,oBAAoB,uBAAuB;AAAA,IACzD,KAAK,SAAS,kBAAkB,qBAAqB;AAAA,IAErD,YAAY,MAAM,YAAY,OAAO,QAAQ,aAAa,GAAG;AAAA,MAC3D,KAAK,SAAS,MAAM,OAA4B;AAAA,IAClD;AAAA,IAEA,YAAY,MAAM,YAAY,OAAO,QAAQ,cAAc,GAAG;AAAA,MAC5D,KAAK,SAAS,MAAM,OAA4B;AAAA,IAClD;AAAA,IAEA,YAAY,MAAM,YAAY,OAAO,QAAQ,YAAY,GAAG;AAAA,MAC1D,KAAK,SAAS,MAAM,OAA4B;AAAA,IAClD;AAAA,IAEA,YAAY,MAAM,YAAY,OAAO,QAAQ,YAAY,GAAG;AAAA,MAC1D,KAAK,SAAS,MAAM,OAA4B;AAAA,IAClD;AAAA,IAEA,YAAY,MAAM,YAAY,OAAO,QAAQ,cAAc,GAAG;AAAA,MAC5D,KAAK,SAAS,MAAM,OAA4B;AAAA,IAClD;AAAA,IAEA,YAAY,MAAM,YAAY,OAAO,QAAQ,aAAa,GAAG;AAAA,MAC3D,KAAK,SAAS,MAAM,OAA4B;AAAA,IAClD;AAAA,IAEA,YAAY,MAAM,YAAY,OAAO,QAAQ,kBAAkB,GAAG;AAAA,MAChE,KAAK,SAAS,MAAM,OAA4B;AAAA,IAClD;AAAA,IAEA,YAAY,MAAM,YAAY,OAAO,QAAQ,iBAAiB,GAAG;AAAA,MAC/D,KAAK,SAAS,MAAM,OAA4B;AAAA,IAClD;AAAA,IAEA,YAAY,MAAM,YAAY,OAAO,QAAQ,eAAe,GAAG;AAAA,MAC7D,KAAK,SAAS,MAAM,OAA4B;AAAA,IAClD;AAAA,IAEA,YAAY,MAAM,YAAY,OAAO,QAAQ,sBAAsB,GAAG;AAAA,MACpE,KAAK,SAAS,MAAM,OAA4B;AAAA,IAClD;AAAA,IAEA,YAAY,MAAM,YAAY,OAAO,QAAQ,kBAAkB,GAAG;AAAA,MAChE,KAAK,SAAS,MAAM,OAA4B;AAAA,IAClD;AAAA,IAEA,YAAY,MAAM,YAAY,OAAO,QAAQ,eAAe,GAAG;AAAA,MAC7D,KAAK,SAAS,MAAM,OAA4B;AAAA,IAClD;AAAA,IAEA,YAAY,MAAM,YAAY,OAAO,QAAQ,kBAAkB,GAAG;AAAA,MAChE,KAAK,SAAS,MAAM,OAA4B;AAAA,IAClD;AAAA;AAEJ;",
24
- "debugId": "D724D60DE3C58BE364756E2164756E21",
23
+ "mappings": "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",
24
+ "debugId": "B381B58060F7445564756E2164756E21",
25
25
  "names": []
26
26
  }
@@ -2,27 +2,37 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
  var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
@@ -138,4 +148,4 @@ export {
138
148
  layoutHandlers
139
149
  };
140
150
 
141
- //# debugId=6B0C0CF5AA87D0DA64756E2164756E21
151
+ //# debugId=2982DE6D6B400B8964756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "/**\n * Layout Applicators (Flexbox/Grid)\n */\n\nimport type { ApplicatorHandler } from \"./types.js\";\n\n/**\n * Maps Hypen alignment values to CSS flexbox values.\n * Ensures consistent cross-platform API (Android/iOS/Web).\n */\nexport function mapAlignmentValue(value: string): string {\n const v = String(value).toLowerCase();\n switch (v) {\n // Positional values -> CSS equivalents\n case \"top\":\n case \"start\":\n case \"leading\":\n case \"left\":\n return \"flex-start\";\n case \"bottom\":\n case \"end\":\n case \"trailing\":\n case \"right\":\n return \"flex-end\";\n case \"center\":\n return \"center\";\n // Spacing values -> CSS equivalents\n case \"spacebetween\":\n case \"space-between\":\n return \"space-between\";\n case \"spacearound\":\n case \"space-around\":\n return \"space-around\";\n case \"spaceevenly\":\n case \"space-evenly\":\n return \"space-evenly\";\n // Pass through CSS values as-is\n default:\n return v;\n }\n}\n\nexport const layoutHandlers: Record<string, ApplicatorHandler> = {\n // Unified alignment API - works for both Column and Row\n verticalAlignment: (el, value) => {\n const val = mapAlignmentValue(String(value));\n // Check display and flex-direction to determine which CSS property to set\n const display = el.style.display || getComputedStyle(el).display;\n const flexDirection = el.style.flexDirection || getComputedStyle(el).flexDirection;\n\n if (display === \"grid\") {\n // For Grid (Stack): use align-items to align children vertically\n el.style.alignItems = val;\n } else if (flexDirection === \"column\" || flexDirection === \"column-reverse\") {\n // For column: vertical is the main axis (justify-content)\n el.style.justifyContent = val;\n } else {\n // For row: vertical is the cross axis (align-items)\n el.style.alignItems = val;\n }\n },\n\n horizontalAlignment: (el, value) => {\n const val = mapAlignmentValue(String(value));\n // Check display and flex-direction to determine which CSS property to set\n const display = el.style.display || getComputedStyle(el).display;\n const flexDirection = el.style.flexDirection || getComputedStyle(el).flexDirection;\n\n if (display === \"grid\") {\n // For Grid (Stack): use justify-items to align children horizontally\n el.style.justifyItems = val;\n } else if (flexDirection === \"column\" || flexDirection === \"column-reverse\") {\n // For column: horizontal is the cross axis (align-items)\n el.style.alignItems = val;\n } else if (flexDirection === \"row\" || flexDirection === \"row-reverse\") {\n // For row: horizontal is the main axis (justify-content)\n el.style.justifyContent = val;\n // For arrangement to have visible effect, Row needs to fill available width\n // (matching iOS/Android behavior where non-start alignment auto-expands)\n // Only auto-expand if not scrollable\n if (val !== \"flex-start\" && el.style.overflow !== \"auto\" && el.style.overflowX !== \"auto\") {\n el.style.width = \"100%\";\n }\n } else {\n // Fallback for other display types\n el.style.justifyContent = val;\n }\n },\n\n // Legacy aliases (kept for backward compatibility)\n horizontalAlign: (el, value) => {\n el.style.justifyContent = mapAlignmentValue(String(value));\n },\n\n verticalAlign: (el, value) => {\n el.style.alignItems = mapAlignmentValue(String(value));\n },\n\n gap: (el, value) => {\n el.style.gap = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n // weight: unified cross-platform API (same as flex)\n // Use .weight(1) to make element take remaining space in Row/Column\n weight: (el, value) => {\n el.style.flex = String(value);\n // Mark element as having flex for CSS parent detection\n el.dataset.hypenFlex = \"true\";\n },\n\n // flex: CSS flex shorthand (kept for CSS compatibility)\n flex: (el, value) => {\n el.style.flex = String(value);\n // Mark element as having flex for CSS parent detection\n el.dataset.hypenFlex = \"true\";\n },\n\n flexGrow: (el, value) => {\n el.style.flexGrow = String(value);\n },\n\n flexShrink: (el, value) => {\n el.style.flexShrink = String(value);\n },\n\n cursor: (el, value) => {\n el.style.cursor = String(value);\n },\n\n overflow: (el, value) => {\n el.style.overflow = String(value);\n },\n\n scrollable: (el, value) => {\n if (value === true || value === \"true\") {\n el.style.overflow = \"auto\";\n } else if (value === false || value === \"false\") {\n el.style.overflow = \"hidden\";\n } else if (value === \"vertical\") {\n el.style.overflowX = \"hidden\";\n el.style.overflowY = \"auto\";\n } else if (value === \"horizontal\") {\n el.style.overflowX = \"auto\";\n el.style.overflowY = \"hidden\";\n } else if (value === \"both\") {\n el.style.overflow = \"auto\";\n } else {\n el.style.overflow = String(value);\n }\n },\n};\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "6B0C0CF5AA87D0DA64756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "2982DE6D6B400B8964756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -2,27 +2,37 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
  var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
@@ -101,4 +111,4 @@ export {
101
111
  marginBottomHandler
102
112
  };
103
113
 
104
- //# debugId=C55CF1B39AC88F1E64756E2164756E21
114
+ //# debugId=8E302FFA69B77AF964756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "/**\n * Margin Applicators\n */\n\nimport type { ApplicatorHandler } from \"./types.js\";\n\n// Helper to extract numeric value from applicator value\nconst getNumericValue = (value: any): number | null => {\n if (typeof value === \"number\") return value;\n if (typeof value === \"object\" && value[\"0\"] !== undefined) return Number(value[\"0\"]);\n if (typeof value === \"string\") return parseFloat(value);\n return null;\n};\n\nexport const marginHandler: ApplicatorHandler = (el, value) => {\n if (typeof value === \"number\") {\n el.style.margin = `${value}px`;\n } else if (typeof value === \"object\") {\n // Handle {0: value} format from .margin(value)\n if (value[\"0\"] !== undefined && Object.keys(value).length === 1) {\n el.style.margin = `${value[\"0\"]}px`;\n } else {\n if (value.left !== undefined) el.style.marginLeft = `${value.left}px`;\n if (value.right !== undefined) el.style.marginRight = `${value.right}px`;\n if (value.top !== undefined) el.style.marginTop = `${value.top}px`;\n if (value.bottom !== undefined) el.style.marginBottom = `${value.bottom}px`;\n }\n } else {\n el.style.margin = String(value);\n }\n};\n\n// Directional margin handlers for .marginTop(8), .marginBottom(8), etc.\nexport const marginTopHandler: ApplicatorHandler = (el, value) => {\n const v = getNumericValue(value);\n if (v !== null) el.style.marginTop = `${v}px`;\n};\n\nexport const marginBottomHandler: ApplicatorHandler = (el, value) => {\n const v = getNumericValue(value);\n if (v !== null) el.style.marginBottom = `${v}px`;\n};\n\nexport const marginLeftHandler: ApplicatorHandler = (el, value) => {\n const v = getNumericValue(value);\n if (v !== null) el.style.marginLeft = `${v}px`;\n};\n\nexport const marginRightHandler: ApplicatorHandler = (el, value) => {\n const v = getNumericValue(value);\n if (v !== null) el.style.marginRight = `${v}px`;\n};\n\nexport const marginHorizontalHandler: ApplicatorHandler = (el, value) => {\n const v = getNumericValue(value);\n if (v !== null) {\n el.style.marginLeft = `${v}px`;\n el.style.marginRight = `${v}px`;\n }\n};\n\nexport const marginVerticalHandler: ApplicatorHandler = (el, value) => {\n const v = getNumericValue(value);\n if (v !== null) {\n el.style.marginTop = `${v}px`;\n el.style.marginBottom = `${v}px`;\n }\n};\n"
6
6
  ],
7
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAM,kBAAkB,CAAC,UAA8B;AAAA,EACrD,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,IAAI,OAAO,UAAU,YAAY,MAAM,SAAS;AAAA,IAAW,OAAO,OAAO,MAAM,IAAI;AAAA,EACnF,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO,WAAW,KAAK;AAAA,EACtD,OAAO;AAAA;AAGF,IAAM,gBAAmC,CAAC,IAAI,UAAU;AAAA,EAC7D,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,GAAG,MAAM,SAAS,GAAG;AAAA,EACvB,EAAO,SAAI,OAAO,UAAU,UAAU;AAAA,IAEpC,IAAI,MAAM,SAAS,aAAa,OAAO,KAAK,KAAK,EAAE,WAAW,GAAG;AAAA,MAC/D,GAAG,MAAM,SAAS,GAAG,MAAM;AAAA,IAC7B,EAAO;AAAA,MACL,IAAI,MAAM,SAAS;AAAA,QAAW,GAAG,MAAM,aAAa,GAAG,MAAM;AAAA,MAC7D,IAAI,MAAM,UAAU;AAAA,QAAW,GAAG,MAAM,cAAc,GAAG,MAAM;AAAA,MAC/D,IAAI,MAAM,QAAQ;AAAA,QAAW,GAAG,MAAM,YAAY,GAAG,MAAM;AAAA,MAC3D,IAAI,MAAM,WAAW;AAAA,QAAW,GAAG,MAAM,eAAe,GAAG,MAAM;AAAA;AAAA,EAErE,EAAO;AAAA,IACL,GAAG,MAAM,SAAS,OAAO,KAAK;AAAA;AAAA;AAK3B,IAAM,mBAAsC,CAAC,IAAI,UAAU;AAAA,EAChE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,YAAY,GAAG;AAAA;AAGnC,IAAM,sBAAyC,CAAC,IAAI,UAAU;AAAA,EACnE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,eAAe,GAAG;AAAA;AAGtC,IAAM,oBAAuC,CAAC,IAAI,UAAU;AAAA,EACjE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,aAAa,GAAG;AAAA;AAGpC,IAAM,qBAAwC,CAAC,IAAI,UAAU;AAAA,EAClE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,cAAc,GAAG;AAAA;AAGrC,IAAM,0BAA6C,CAAC,IAAI,UAAU;AAAA,EACvE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM,MAAM;AAAA,IACd,GAAG,MAAM,aAAa,GAAG;AAAA,IACzB,GAAG,MAAM,cAAc,GAAG;AAAA,EAC5B;AAAA;AAGK,IAAM,wBAA2C,CAAC,IAAI,UAAU;AAAA,EACrE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM,MAAM;AAAA,IACd,GAAG,MAAM,YAAY,GAAG;AAAA,IACxB,GAAG,MAAM,eAAe,GAAG;AAAA,EAC7B;AAAA;",
8
- "debugId": "C55CF1B39AC88F1E64756E2164756E21",
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAM,kBAAkB,CAAC,UAA8B;AAAA,EACrD,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,IAAI,OAAO,UAAU,YAAY,MAAM,SAAS;AAAA,IAAW,OAAO,OAAO,MAAM,IAAI;AAAA,EACnF,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO,WAAW,KAAK;AAAA,EACtD,OAAO;AAAA;AAGF,IAAM,gBAAmC,CAAC,IAAI,UAAU;AAAA,EAC7D,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,GAAG,MAAM,SAAS,GAAG;AAAA,EACvB,EAAO,SAAI,OAAO,UAAU,UAAU;AAAA,IAEpC,IAAI,MAAM,SAAS,aAAa,OAAO,KAAK,KAAK,EAAE,WAAW,GAAG;AAAA,MAC/D,GAAG,MAAM,SAAS,GAAG,MAAM;AAAA,IAC7B,EAAO;AAAA,MACL,IAAI,MAAM,SAAS;AAAA,QAAW,GAAG,MAAM,aAAa,GAAG,MAAM;AAAA,MAC7D,IAAI,MAAM,UAAU;AAAA,QAAW,GAAG,MAAM,cAAc,GAAG,MAAM;AAAA,MAC/D,IAAI,MAAM,QAAQ;AAAA,QAAW,GAAG,MAAM,YAAY,GAAG,MAAM;AAAA,MAC3D,IAAI,MAAM,WAAW;AAAA,QAAW,GAAG,MAAM,eAAe,GAAG,MAAM;AAAA;AAAA,EAErE,EAAO;AAAA,IACL,GAAG,MAAM,SAAS,OAAO,KAAK;AAAA;AAAA;AAK3B,IAAM,mBAAsC,CAAC,IAAI,UAAU;AAAA,EAChE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,YAAY,GAAG;AAAA;AAGnC,IAAM,sBAAyC,CAAC,IAAI,UAAU;AAAA,EACnE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,eAAe,GAAG;AAAA;AAGtC,IAAM,oBAAuC,CAAC,IAAI,UAAU;AAAA,EACjE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,aAAa,GAAG;AAAA;AAGpC,IAAM,qBAAwC,CAAC,IAAI,UAAU;AAAA,EAClE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAM,GAAG,MAAM,cAAc,GAAG;AAAA;AAGrC,IAAM,0BAA6C,CAAC,IAAI,UAAU;AAAA,EACvE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM,MAAM;AAAA,IACd,GAAG,MAAM,aAAa,GAAG;AAAA,IACzB,GAAG,MAAM,cAAc,GAAG;AAAA,EAC5B;AAAA;AAGK,IAAM,wBAA2C,CAAC,IAAI,UAAU;AAAA,EACrE,MAAM,IAAI,gBAAgB,KAAK;AAAA,EAC/B,IAAI,MAAM,MAAM;AAAA,IACd,GAAG,MAAM,YAAY,GAAG;AAAA,IACxB,GAAG,MAAM,eAAe,GAAG;AAAA,EAC7B;AAAA;",
8
+ "debugId": "8E302FFA69B77AF964756E2164756E21",
9
9
  "names": []
10
10
  }