@hypen-space/web 0.4.5 → 0.4.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/canvas/index.js +17 -1
- package/dist/canvas/index.js.map +3 -3
- package/dist/canvas/renderer.d.ts +4 -0
- package/dist/canvas/renderer.js +17 -1
- package/dist/canvas/renderer.js.map +3 -3
- package/dist/client.js +11 -4
- package/dist/client.js.map +4 -4
- package/dist/dom/applicators/advanced-layout.js +1 -4
- package/dist/dom/applicators/advanced-layout.js.map +3 -3
- package/dist/dom/applicators/index.js +1 -4
- package/dist/dom/applicators/index.js.map +3 -3
- package/dist/dom/index.js +11 -4
- package/dist/dom/index.js.map +4 -4
- package/dist/dom/renderer.d.ts +4 -0
- package/dist/dom/renderer.js +11 -4
- package/dist/dom/renderer.js.map +4 -4
- package/dist/hypen.js +11 -4
- package/dist/hypen.js.map +4 -4
- package/dist/index.js +27 -4
- package/dist/index.js.map +5 -5
- package/package.json +2 -2
- package/src/canvas/renderer.ts +23 -0
- package/src/dom/applicators/advanced-layout.ts +0 -4
- package/src/dom/renderer.ts +14 -0
package/dist/index.js.map
CHANGED
|
@@ -47,14 +47,14 @@
|
|
|
47
47
|
"/**\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",
|
|
48
48
|
"/**\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",
|
|
49
49
|
"/**\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",
|
|
50
|
-
"/**\n * Advanced Layout Applicators (Flexbox, Grid, Positioning)\n */\n\nimport type { ApplicatorHandler } from \"./index.js\";\nimport { mapAlignmentValue } from \"./layout.js\";\n\nexport const advancedLayoutHandlers: Record<string, ApplicatorHandler> = {\n // Flexbox properties\n flexDirection: (el, value) => {\n el.style.flexDirection = String(value);\n },\n\n flexWrap: (el, value) => {\n el.style.flexWrap = String(value);\n },\n\n flexBasis: (el, value) => {\n el.style.flexBasis = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n alignContent: (el, value) => {\n el.style.alignContent = String(value);\n },\n\n
|
|
50
|
+
"/**\n * Advanced Layout Applicators (Flexbox, Grid, Positioning)\n */\n\nimport type { ApplicatorHandler } from \"./index.js\";\nimport { mapAlignmentValue } from \"./layout.js\";\n\nexport const advancedLayoutHandlers: Record<string, ApplicatorHandler> = {\n // Flexbox properties\n flexDirection: (el, value) => {\n el.style.flexDirection = String(value);\n },\n\n flexWrap: (el, value) => {\n el.style.flexWrap = String(value);\n },\n\n flexBasis: (el, value) => {\n el.style.flexBasis = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n alignContent: (el, value) => {\n el.style.alignContent = String(value);\n },\n\n order: (el, value) => {\n el.style.order = String(value);\n },\n\n // Grid properties\n gridTemplateColumns: (el, value) => {\n el.style.gridTemplateColumns = String(value);\n },\n\n gridTemplateRows: (el, value) => {\n el.style.gridTemplateRows = String(value);\n },\n\n // Unified API aliases (simpler names)\n gridColumns: (el, value) => {\n // Support number (repeat) or string (CSS value)\n if (typeof value === \"number\") {\n el.style.gridTemplateColumns = `repeat(${value}, 1fr)`;\n } else {\n el.style.gridTemplateColumns = String(value);\n }\n },\n\n gridRows: (el, value) => {\n // Support number (repeat) or string (CSS value)\n if (typeof value === \"number\") {\n el.style.gridTemplateRows = `repeat(${value}, 1fr)`;\n } else {\n el.style.gridTemplateRows = String(value);\n }\n },\n\n gridTemplateAreas: (el, value) => {\n el.style.gridTemplateAreas = String(value);\n },\n\n gridColumn: (el, value) => {\n el.style.gridColumn = String(value);\n },\n\n gridRow: (el, value) => {\n el.style.gridRow = String(value);\n },\n\n gridArea: (el, value) => {\n el.style.gridArea = String(value);\n },\n\n gridAutoFlow: (el, value) => {\n el.style.gridAutoFlow = String(value);\n },\n\n gridAutoColumns: (el, value) => {\n el.style.gridAutoColumns = String(value);\n },\n\n gridAutoRows: (el, value) => {\n el.style.gridAutoRows = String(value);\n },\n\n rowGap: (el, value) => {\n el.style.rowGap = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n columnGap: (el, value) => {\n el.style.columnGap = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n placeItems: (el, value) => {\n el.style.placeItems = String(value);\n },\n\n placeContent: (el, value) => {\n el.style.placeContent = String(value);\n },\n\n placeSelf: (el, value) => {\n el.style.placeSelf = String(value);\n },\n\n // Positioning\n position: (el, value) => {\n el.style.position = String(value);\n },\n\n top: (el, value) => {\n el.style.top = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n right: (el, value) => {\n el.style.right = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n bottom: (el, value) => {\n el.style.bottom = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n left: (el, value) => {\n el.style.left = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n inset: (el, value) => {\n el.style.inset = typeof value === \"number\" ? `${value}px` : String(value);\n },\n\n zIndex: (el, value) => {\n el.style.zIndex = String(value);\n },\n};\n\n\n",
|
|
51
51
|
"/**\n * Background Applicators\n */\n\nimport type { ApplicatorHandler } from \"./types.js\";\n\nexport const backgroundHandlers: Record<string, ApplicatorHandler> = {\n backgroundImage: (el, value) => {\n el.style.backgroundImage = String(value);\n },\n\n backgroundSize: (el, value) => {\n el.style.backgroundSize = String(value);\n },\n\n backgroundPosition: (el, value) => {\n el.style.backgroundPosition = String(value);\n },\n\n backgroundRepeat: (el, value) => {\n el.style.backgroundRepeat = String(value);\n },\n\n backgroundAttachment: (el, value) => {\n el.style.backgroundAttachment = String(value);\n },\n\n backgroundClip: (el, value) => {\n el.style.backgroundClip = String(value);\n },\n\n backgroundOrigin: (el, value) => {\n el.style.backgroundOrigin = String(value);\n },\n\n // Gradient helpers\n linearGradient: (el, value) => {\n el.style.backgroundImage = `linear-gradient(${value})`;\n },\n\n radialGradient: (el, value) => {\n el.style.backgroundImage = `radial-gradient(${value})`;\n },\n\n conicGradient: (el, value) => {\n el.style.backgroundImage = `conic-gradient(${value})`;\n },\n};\n\n\n",
|
|
52
52
|
"/**\n * Display and Visibility Applicators\n */\n\nimport type { ApplicatorHandler } from \"./types.js\";\n\nexport const displayHandlers: Record<string, ApplicatorHandler> = {\n display: (el, value) => {\n el.style.display = String(value);\n },\n\n visibility: (el, value) => {\n el.style.visibility = String(value);\n },\n\n overflowX: (el, value) => {\n el.style.overflowX = String(value);\n },\n\n overflowY: (el, value) => {\n el.style.overflowY = String(value);\n },\n\n pointerEvents: (el, value) => {\n el.style.pointerEvents = String(value);\n },\n\n userSelect: (el, value) => {\n el.style.userSelect = String(value);\n },\n\n resize: (el, value) => {\n el.style.resize = String(value);\n },\n\n boxSizing: (el, value) => {\n el.style.boxSizing = String(value);\n },\n\n // Sizing helpers\n aspectRatio: (el, value) => {\n el.style.aspectRatio = String(value);\n },\n\n objectFit: (el, value) => {\n el.style.objectFit = String(value);\n },\n\n objectPosition: (el, value) => {\n el.style.objectPosition = String(value);\n },\n};\n\n\n",
|
|
53
53
|
"/**\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",
|
|
54
54
|
"/**\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",
|
|
55
55
|
"/**\n * Canvas Component with Applicators\n *\n * Special handling for canvas rendering\n */\n\nimport type { ComponentHandler } from \"../components/index.js\";\nimport type { ApplicatorHandler } from \"../applicators/index.js\";\n\nexport const canvasHandler: ComponentHandler = {\n create(): HTMLElement {\n const el = document.createElement(\"canvas\");\n el.dataset.hypenType = \"canvas\";\n return el as any as HTMLElement;\n },\n\n applyProps(el: HTMLElement, props: Record<string, any>): void {\n const canvas = el as HTMLCanvasElement;\n\n if (props.width !== undefined) {\n canvas.width = Number(props.width);\n }\n\n if (props.height !== undefined) {\n canvas.height = Number(props.height);\n }\n },\n};\n\n/**\n * Canvas applicators - special drawing commands\n */\nexport const canvasApplicators: Record<string, ApplicatorHandler> = {\n // Fill style\n fillStyle: (el, value) => {\n const canvas = el as HTMLCanvasElement;\n const ctx = canvas.getContext(\"2d\");\n if (ctx) {\n ctx.fillStyle = String(value);\n }\n },\n\n // Stroke style\n strokeStyle: (el, value) => {\n const canvas = el as HTMLCanvasElement;\n const ctx = canvas.getContext(\"2d\");\n if (ctx) {\n ctx.strokeStyle = String(value);\n }\n },\n\n // Line width\n lineWidth: (el, value) => {\n const canvas = el as HTMLCanvasElement;\n const ctx = canvas.getContext(\"2d\");\n if (ctx) {\n ctx.lineWidth = Number(value);\n }\n },\n};\n",
|
|
56
56
|
"/**\n * Debug utilities for DOM rendering visualization\n *\n * Provides heatmap overlays to visualize re-renders\n */\n\nimport { frameworkLoggers } from \"@hypen-space/core/logger\";\n\nconst log = frameworkLoggers.debug;\n\nexport interface DebugConfig {\n /** Enable debug mode */\n enabled: boolean;\n /** Show heatmap overlays on re-renders */\n showHeatmap: boolean;\n /** Increment per re-render (default: 5%) */\n heatmapIncrement: number;\n /** Maximum opacity for heatmap (default: 0.8) */\n maxOpacity: number;\n /** Fade out duration in ms (0 to disable) */\n fadeOutDuration: number;\n}\n\nexport const defaultDebugConfig: DebugConfig = {\n enabled: false,\n showHeatmap: true,\n heatmapIncrement: 5,\n maxOpacity: 0.8,\n fadeOutDuration: 2000,\n};\n\n/**\n * Tracks re-render counts for each element\n */\nexport class RerenderTracker {\n private renderCounts = new Map<string, number>();\n private overlays = new Map<string, HTMLDivElement>();\n private config: DebugConfig;\n\n constructor(config: DebugConfig = defaultDebugConfig) {\n this.config = config;\n }\n\n /**\n * Update the configuration\n */\n setConfig(config: Partial<DebugConfig>): void {\n this.config = { ...this.config, ...config };\n\n // If debug mode is disabled, clean up all overlays\n if (!this.config.enabled) {\n this.cleanup();\n }\n }\n\n /**\n * Track a re-render for an element\n */\n trackRerender(id: string, element: HTMLElement, patchType: string): void {\n if (!this.config.enabled || !this.config.showHeatmap) {\n return;\n }\n\n log.debug(`Tracking re-render: ${id} - ${patchType}`);\n\n // Increment render count\n const currentCount = this.renderCounts.get(id) || 0;\n const newCount = currentCount + 1;\n this.renderCounts.set(id, newCount);\n\n // Create or update heatmap overlay\n this.updateHeatmap(id, element, newCount, patchType);\n }\n\n /**\n * Create or update the heatmap overlay for an element\n */\n private updateHeatmap(id: string, element: HTMLElement, renderCount: number, patchType: string): void {\n // Calculate opacity based on render count (increment by heatmapIncrement% each time)\n const opacity = Math.min(\n (renderCount * this.config.heatmapIncrement) / 100,\n this.config.maxOpacity\n );\n\n log.debug(`Updating heatmap for ${id}, count: ${renderCount}, opacity: ${opacity}`);\n\n // For inline elements or text, use a simpler approach: background color + outline\n const isInline = window.getComputedStyle(element).display.includes('inline');\n\n if (isInline || element.tagName === 'SPAN') {\n // Store original styles if not already stored\n if (!element.dataset.hypenDebugOriginalBg) {\n element.dataset.hypenDebugOriginalBg = element.style.backgroundColor || '';\n element.dataset.hypenDebugOriginalOutline = element.style.outline || '';\n element.dataset.hypenDebugOriginalPosition = element.style.position || '';\n }\n\n // Apply red background and outline directly to the element\n element.style.backgroundColor = `rgba(255, 0, 0, ${Math.max(opacity, 0.15)})`;\n element.style.outline = `2px solid rgba(255, 0, 0, ${Math.max(opacity + 0.2, 0.3)})`;\n element.style.outlineOffset = '2px';\n element.style.position = 'relative';\n\n // Add count badge as ::before pseudo-element or data attribute\n element.setAttribute('data-hypen-renders', `${renderCount}× ${patchType}`);\n\n // Add CSS for the badge if not already added\n if (!document.getElementById('hypen-debug-styles')) {\n const style = document.createElement('style');\n style.id = 'hypen-debug-styles';\n style.textContent = `\n [data-hypen-renders]::before {\n content: attr(data-hypen-renders);\n position: absolute;\n top: -18px;\n left: 0;\n background: rgba(255, 0, 0, 0.9);\n color: white;\n padding: 2px 6px;\n font-size: 10px;\n font-family: 'Courier New', monospace;\n font-weight: bold;\n border-radius: 3px;\n z-index: 999999;\n pointer-events: none;\n white-space: nowrap;\n text-shadow: none;\n }\n `;\n document.head.appendChild(style);\n }\n\n // Store in overlays map for cleanup\n this.overlays.set(id, element as any);\n\n // Fade out after duration if enabled\n if (this.config.fadeOutDuration > 0) {\n setTimeout(() => {\n const originalBg = element.dataset.hypenDebugOriginalBg || '';\n const originalOutline = element.dataset.hypenDebugOriginalOutline || '';\n element.style.backgroundColor = originalBg;\n element.style.outline = originalOutline;\n element.style.opacity = '1';\n }, this.config.fadeOutDuration);\n }\n } else {\n // For block elements, use overlay approach\n let overlay = this.overlays.get(id);\n\n if (!overlay) {\n overlay = document.createElement(\"div\");\n overlay.className = \"hypen-debug-overlay\";\n overlay.style.cssText = `\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: 999999 !important;\n transition: opacity ${this.config.fadeOutDuration}ms ease-out;\n border: 2px solid rgba(255, 0, 0, 0.7) !important;\n box-sizing: border-box;\n font-size: 11px;\n color: white;\n text-shadow: 0 0 3px black, 0 0 5px black;\n padding: 4px;\n font-family: 'Courier New', monospace;\n font-weight: bold;\n display: block !important;\n visibility: visible !important;\n `;\n\n const currentPosition = window.getComputedStyle(element).position;\n if (currentPosition === 'static') {\n element.style.position = 'relative';\n }\n\n element.appendChild(overlay);\n this.overlays.set(id, overlay);\n }\n\n overlay.style.backgroundColor = `rgba(255, 0, 0, ${Math.max(opacity, 0.15)})`;\n overlay.style.opacity = '1';\n overlay.textContent = `${renderCount}× ${patchType}`;\n\n if (this.config.fadeOutDuration > 0) {\n setTimeout(() => {\n if (overlay) {\n overlay.style.opacity = '0.2';\n }\n }, this.config.fadeOutDuration);\n }\n }\n }\n\n /**\n * Reset tracking for a specific element\n */\n reset(id: string): void {\n this.renderCounts.delete(id);\n const overlay = this.overlays.get(id);\n if (overlay) {\n overlay.remove();\n this.overlays.delete(id);\n }\n }\n\n /**\n * Reset tracking for all elements\n */\n resetAll(): void {\n this.renderCounts.clear();\n for (const overlay of this.overlays.values()) {\n overlay.remove();\n }\n this.overlays.clear();\n }\n\n /**\n * Get render count for an element\n */\n getRenderCount(id: string): number {\n return this.renderCounts.get(id) || 0;\n }\n\n /**\n * Clean up all overlays (called when debug mode is disabled)\n */\n private cleanup(): void {\n for (const overlay of this.overlays.values()) {\n overlay.remove();\n }\n this.overlays.clear();\n }\n\n /**\n * Get statistics about re-renders\n */\n getStats(): { totalRerenders: number; elementCount: number; avgRerenders: number } {\n const totalRerenders = Array.from(this.renderCounts.values()).reduce((sum, count) => sum + count, 0);\n const elementCount = this.renderCounts.size;\n const avgRerenders = elementCount > 0 ? totalRerenders / elementCount : 0;\n\n return {\n totalRerenders,\n elementCount,\n avgRerenders: Math.round(avgRerenders * 100) / 100,\n };\n }\n}\n",
|
|
57
|
-
"/**\n * DOM Renderer\n *\n * Renders Hypen patches to the DOM\n */\n\nimport type { Patch } from \"@hypen-space/core/types\";\nimport type { HypenModuleInstance } from \"@hypen-space/core/app\";\nimport type { HypenRouter } from \"@hypen-space/core/router\";\nimport type { HypenGlobalContext } from \"@hypen-space/core/context\";\nimport { frameworkLoggers } from \"@hypen-space/core/logger\";\n\nconst log = frameworkLoggers.renderer;\nimport { ComponentRegistry } from \"./components/index.js\";\nimport { ApplicatorRegistry } from \"./applicators/index.js\";\nimport { canvasHandler, canvasApplicators } from \"./canvas/index.js\";\nimport { RerenderTracker, type DebugConfig, defaultDebugConfig } from \"./debug.js\";\nimport { setEngine } from \"./element-data.js\";\n\n// Interface for the engine that renderer needs\ninterface IEngine {\n dispatchAction(name: string, payload?: any): void;\n}\n\nexport class DOMRenderer {\n private container: HTMLElement;\n private nodes: Map<string, HTMLElement> = new Map();\n private rootId: string | null = null;\n private components: ComponentRegistry;\n private applicators: ApplicatorRegistry;\n private engine: IEngine;\n private currentState: Record<string, any> = {};\n private router: HypenRouter | null = null;\n private globalContext: HypenGlobalContext | null = null;\n private componentInstances = new Map<string, HypenModuleInstance>();\n private debugTracker: RerenderTracker;\n\n constructor(container: HTMLElement, engine: IEngine, debugConfig?: Partial<DebugConfig>) {\n this.container = container;\n this.engine = engine;\n this.components = new ComponentRegistry();\n this.applicators = new ApplicatorRegistry();\n this.debugTracker = new RerenderTracker({ ...defaultDebugConfig, ...debugConfig });\n\n // Register canvas component and applicators\n this.components.register(\"canvas\", canvasHandler);\n for (const [name, handler] of Object.entries(canvasApplicators)) {\n this.applicators.register(name, handler);\n }\n }\n\n /**\n * Set router and global context for component composition\n */\n setContext(router: HypenRouter | null, globalContext: HypenGlobalContext): void {\n this.router = router;\n this.globalContext = globalContext;\n }\n\n /**\n * Apply a batch of patches to the DOM\n */\n applyPatches(patches: Patch[]): void {\n for (const patch of patches) {\n this.applyPatch(patch);\n }\n }\n\n /**\n * Update state and interpolate text content\n */\n updateState(state: Record<string, any>): void {\n log.debug(\"Updating state:\", state);\n this.currentState = state;\n this.interpolateAllText();\n }\n\n /**\n * Merge component state into current state and re-interpolate\n */\n private mergeComponentState(componentState: Record<string, any>): void {\n this.currentState = { ...this.currentState, ...componentState };\n log.debug(\"Merged state:\", this.currentState);\n this.interpolateAllText();\n }\n\n /**\n * Interpolate state values in all text elements\n */\n private interpolateAllText(): void {\n for (const [id, element] of this.nodes.entries()) {\n if (element.dataset.hypenType === \"text\" && element.dataset.textTemplate) {\n const template = element.dataset.textTemplate;\n const interpolated = this.interpolateText(template, this.currentState);\n\n // Track re-render if text actually changed\n const currentText = element.textContent;\n if (currentText !== interpolated) {\n this.debugTracker.trackRerender(id, element, \"interpolate\");\n }\n\n element.textContent = interpolated;\n }\n }\n }\n\n /**\n * Interpolate state values in text template\n */\n private interpolateText(template: string, state: Record<string, any>): string {\n return template.replace(/\\$\\{([^}]+)\\}/g, (match, path) => {\n try {\n const value = path.split('.').reduce((obj: any, key: string) => {\n if (key === 'state') return state;\n return obj?.[key];\n }, state);\n return value !== undefined ? String(value) : match;\n } catch {\n return match;\n }\n });\n }\n\n /**\n * Apply a single patch\n *\n * Handles both camelCase (direct WASM) and snake_case (WebSocket JSON) field names.\n */\n private applyPatch(patch: Patch): void {\n // Normalize: accept both camelCase and snake_case field names.\n // WASM serde outputs camelCase, but patches forwarded via JSON over WebSocket\n // may arrive with snake_case depending on the serialization path.\n const p = patch as any;\n const id: string | undefined = patch.id ?? p.id;\n const elementType: string | undefined = patch.elementType ?? p.element_type;\n const parentId: string | undefined = patch.parentId ?? p.parent_id;\n const beforeId: string | undefined = patch.beforeId ?? p.before_id;\n const eventName: string | undefined = patch.eventName ?? p.event_name;\n\n switch (patch.type) {\n case \"create\":\n this.onCreate(id!, elementType ?? \"container\", patch.props || {});\n break;\n case \"setProp\":\n this.onSetProp(id!, patch.name!, patch.value);\n break;\n case \"setText\":\n this.onSetText(id!, patch.text!);\n break;\n case \"insert\":\n this.onInsert(parentId!, id!, beforeId);\n break;\n case \"move\":\n this.onMove(parentId!, id!, beforeId);\n break;\n case \"remove\":\n this.onRemove(id!);\n break;\n }\n }\n\n /**\n * Create a new element\n */\n private onCreate(id: string, elementType: string, props: Record<string, any> | Map<string, any>): void {\n const propsObj = props instanceof Map ? Object.fromEntries(props) : props;\n\n let element = this.components.createElement(elementType, propsObj);\n\n if (!element) {\n // For unknown component types, create a transparent container (div).\n // This handles module wrappers (like \"App\") and custom components\n // that aren't registered but should act as layout containers.\n const fallback = document.createElement(\"div\");\n fallback.dataset.hypenType = elementType.toLowerCase();\n fallback.style.display = \"contents\"; // Make container transparent in layout\n element = fallback;\n log.debug(`Unknown component \"${elementType}\" - using transparent container`);\n }\n\n element.dataset.hypenType = elementType.toLowerCase();\n element.dataset.hypenId = id;\n setEngine(element, this.engine);\n\n this.applicators.applyAll(element, propsObj);\n this.nodes.set(id, element);\n this.debugTracker.trackRerender(id, element, `create:${elementType}`);\n\n if (!this.rootId) {\n this.rootId = id;\n if (!this.container.contains(element)) {\n this.container.appendChild(element);\n }\n }\n }\n\n /**\n * Set a property on an element\n */\n private onSetProp(id: string, name: string, value: any): void {\n const element = this.nodes.get(id);\n if (!element) return;\n\n this.debugTracker.trackRerender(id, element, `setProp:${name}`);\n\n if (name === \"0\" || name === \"text\") {\n const elementType = element.dataset.hypenType;\n\n if (elementType === \"input\") {\n const inputEl = element as HTMLInputElement;\n inputEl.value = String(value);\n log.debug(`Updated input value: \"${value}\"`);\n return;\n }\n\n const nextText = String(value);\n element.textContent = nextText;\n\n // Preserve the original template when it contains state interpolation.\n // Engine patches may send interpolated strings; if we overwrite the template,\n // future state updates won't be able to re-interpolate.\n const currentTemplate = element.dataset.textTemplate;\n const nextLooksLikeTemplate = nextText.includes(\"${\");\n const currentLooksLikeTemplate = typeof currentTemplate === \"string\" && currentTemplate.includes(\"${\");\n\n if (nextLooksLikeTemplate) {\n element.dataset.textTemplate = nextText;\n } else if (currentTemplate === undefined) {\n // No template stored yet; treat this as the template.\n element.dataset.textTemplate = nextText;\n } else if (!currentLooksLikeTemplate) {\n // If current template isn't a template, keep it in sync.\n element.dataset.textTemplate = nextText;\n }\n log.debug(`Updated text content: \"${value}\"`);\n return;\n }\n\n this.applicators.apply(element, name, value);\n }\n\n /**\n * Set text content\n */\n private onSetText(id: string, text: string): void {\n const element = this.nodes.get(id);\n if (!element) return;\n\n this.debugTracker.trackRerender(id, element, \"setText\");\n element.textContent = text;\n }\n\n /**\n * Insert an element into the tree\n */\n private onInsert(parentId: string, id: string, beforeId?: string): void {\n const parent = parentId === \"root\" ? this.container : this.nodes.get(parentId);\n const child = this.nodes.get(id);\n\n log.debug(`Inserting ${id} into ${parentId}`, {\n parent: parent ? `${parent.tagName}#${parent.id || 'no-id'}` : 'null',\n child: child ? `${child.tagName}#${child.id || 'no-id'}` : 'null',\n childText: child?.textContent?.substring(0, 20)\n });\n\n if (!parent || !child) return;\n\n if (parentId === \"root\") {\n this.rootId = id;\n }\n\n if (beforeId) {\n const before = this.nodes.get(beforeId);\n if (before && before.parentNode === parent) {\n parent.insertBefore(child, before);\n } else if (!parent.contains(child)) {\n parent.appendChild(child);\n }\n } else {\n if (!parent.contains(child)) {\n parent.appendChild(child);\n }\n }\n }\n\n /**\n * Move an element within the tree\n */\n private onMove(parentId: string, id: string, beforeId?: string): void {\n this.onInsert(parentId, id, beforeId);\n }\n\n /**\n * Remove an element from the tree\n */\n private onRemove(id: string): void {\n const element = this.nodes.get(id);\n if (!element) return;\n\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n this.nodes.delete(id);\n\n if (this.rootId === id) {\n this.rootId = null;\n }\n }\n\n /**\n * Get an element by ID\n */\n getNode(id: string): HTMLElement | undefined {\n return this.nodes.get(id);\n }\n\n /**\n * Clear all nodes\n */\n clear(): void {\n this.container.innerHTML = \"\";\n this.nodes.clear();\n this.rootId = null;\n }\n\n /**\n * Get the component registry (for registering custom components)\n */\n getComponentRegistry(): ComponentRegistry {\n return this.components;\n }\n\n /**\n * Get the applicator registry (for registering custom applicators)\n */\n getApplicatorRegistry(): ApplicatorRegistry {\n return this.applicators;\n }\n\n /**\n * Enable or configure debug mode\n */\n setDebugConfig(config: Partial<DebugConfig>): void {\n this.debugTracker.setConfig(config);\n }\n\n /**\n * Reset debug tracking for all elements\n */\n resetDebugTracking(): void {\n this.debugTracker.resetAll();\n }\n\n /**\n * Get debug statistics\n */\n getDebugStats(): { totalRerenders: number; elementCount: number; avgRerenders: number } {\n return this.debugTracker.getStats();\n }\n}\n",
|
|
57
|
+
"/**\n * DOM Renderer\n *\n * Renders Hypen patches to the DOM\n */\n\nimport type { Patch } from \"@hypen-space/core/types\";\nimport type { HypenModuleInstance } from \"@hypen-space/core/app\";\nimport type { HypenRouter } from \"@hypen-space/core/router\";\nimport type { HypenGlobalContext } from \"@hypen-space/core/context\";\nimport { frameworkLoggers } from \"@hypen-space/core/logger\";\n\nconst log = frameworkLoggers.renderer;\nimport { ComponentRegistry } from \"./components/index.js\";\nimport { ApplicatorRegistry } from \"./applicators/index.js\";\nimport { canvasHandler, canvasApplicators } from \"./canvas/index.js\";\nimport { RerenderTracker, type DebugConfig, defaultDebugConfig } from \"./debug.js\";\nimport { setEngine } from \"./element-data.js\";\n\n// Interface for the engine that renderer needs\ninterface IEngine {\n dispatchAction(name: string, payload?: any): void;\n}\n\nexport class DOMRenderer {\n private container: HTMLElement;\n private nodes: Map<string, HTMLElement> = new Map();\n private rootId: string | null = null;\n private components: ComponentRegistry;\n private applicators: ApplicatorRegistry;\n private engine: IEngine;\n private currentState: Record<string, any> = {};\n private router: HypenRouter | null = null;\n private globalContext: HypenGlobalContext | null = null;\n private componentInstances = new Map<string, HypenModuleInstance>();\n private debugTracker: RerenderTracker;\n\n constructor(container: HTMLElement, engine: IEngine, debugConfig?: Partial<DebugConfig>) {\n this.container = container;\n this.engine = engine;\n this.components = new ComponentRegistry();\n this.applicators = new ApplicatorRegistry();\n this.debugTracker = new RerenderTracker({ ...defaultDebugConfig, ...debugConfig });\n\n // Register canvas component and applicators\n this.components.register(\"canvas\", canvasHandler);\n for (const [name, handler] of Object.entries(canvasApplicators)) {\n this.applicators.register(name, handler);\n }\n }\n\n /**\n * Set router and global context for component composition\n */\n setContext(router: HypenRouter | null, globalContext: HypenGlobalContext): void {\n this.router = router;\n this.globalContext = globalContext;\n }\n\n /**\n * Apply a batch of patches to the DOM\n */\n applyPatches(patches: Patch[]): void {\n for (const patch of patches) {\n this.applyPatch(patch);\n }\n }\n\n /**\n * Update state and interpolate text content\n */\n updateState(state: Record<string, any>): void {\n log.debug(\"Updating state:\", state);\n this.currentState = state;\n this.interpolateAllText();\n }\n\n /**\n * Merge component state into current state and re-interpolate\n */\n private mergeComponentState(componentState: Record<string, any>): void {\n this.currentState = { ...this.currentState, ...componentState };\n log.debug(\"Merged state:\", this.currentState);\n this.interpolateAllText();\n }\n\n /**\n * Interpolate state values in all text elements\n */\n private interpolateAllText(): void {\n for (const [id, element] of this.nodes.entries()) {\n if (element.dataset.hypenType === \"text\" && element.dataset.textTemplate) {\n const template = element.dataset.textTemplate;\n const interpolated = this.interpolateText(template, this.currentState);\n\n // Track re-render if text actually changed\n const currentText = element.textContent;\n if (currentText !== interpolated) {\n this.debugTracker.trackRerender(id, element, \"interpolate\");\n }\n\n element.textContent = interpolated;\n }\n }\n }\n\n /**\n * Interpolate state values in text template\n */\n private interpolateText(template: string, state: Record<string, any>): string {\n return template.replace(/\\$\\{([^}]+)\\}/g, (match, path) => {\n try {\n const value = path.split('.').reduce((obj: any, key: string) => {\n if (key === 'state') return state;\n return obj?.[key];\n }, state);\n return value !== undefined ? String(value) : match;\n } catch {\n return match;\n }\n });\n }\n\n /**\n * Apply a single patch\n *\n * Handles both camelCase (direct WASM) and snake_case (WebSocket JSON) field names.\n */\n private applyPatch(patch: Patch): void {\n // Normalize: accept both camelCase and snake_case field names.\n // WASM serde outputs camelCase, but patches forwarded via JSON over WebSocket\n // may arrive with snake_case depending on the serialization path.\n const p = patch as any;\n const id: string | undefined = patch.id ?? p.id;\n const elementType: string | undefined = patch.elementType ?? p.element_type;\n const parentId: string | undefined = patch.parentId ?? p.parent_id;\n const beforeId: string | undefined = patch.beforeId ?? p.before_id;\n const eventName: string | undefined = patch.eventName ?? p.event_name;\n\n switch (patch.type) {\n case \"create\":\n this.onCreate(id!, elementType ?? \"container\", patch.props || {});\n break;\n case \"setProp\":\n this.onSetProp(id!, patch.name!, patch.value);\n break;\n case \"removeProp\":\n this.onRemoveProp(id!, patch.name!);\n break;\n case \"setText\":\n this.onSetText(id!, patch.text!);\n break;\n case \"insert\":\n this.onInsert(parentId!, id!, beforeId);\n break;\n case \"move\":\n this.onMove(parentId!, id!, beforeId);\n break;\n case \"remove\":\n this.onRemove(id!);\n break;\n }\n }\n\n /**\n * Create a new element\n */\n private onCreate(id: string, elementType: string, props: Record<string, any> | Map<string, any>): void {\n const propsObj = props instanceof Map ? Object.fromEntries(props) : props;\n\n let element = this.components.createElement(elementType, propsObj);\n\n if (!element) {\n // For unknown component types, create a transparent container (div).\n // This handles module wrappers (like \"App\") and custom components\n // that aren't registered but should act as layout containers.\n const fallback = document.createElement(\"div\");\n fallback.dataset.hypenType = elementType.toLowerCase();\n fallback.style.display = \"contents\"; // Make container transparent in layout\n element = fallback;\n log.debug(`Unknown component \"${elementType}\" - using transparent container`);\n }\n\n element.dataset.hypenType = elementType.toLowerCase();\n element.dataset.hypenId = id;\n setEngine(element, this.engine);\n\n this.applicators.applyAll(element, propsObj);\n this.nodes.set(id, element);\n this.debugTracker.trackRerender(id, element, `create:${elementType}`);\n\n if (!this.rootId) {\n this.rootId = id;\n if (!this.container.contains(element)) {\n this.container.appendChild(element);\n }\n }\n }\n\n /**\n * Set a property on an element\n */\n private onSetProp(id: string, name: string, value: any): void {\n const element = this.nodes.get(id);\n if (!element) return;\n\n this.debugTracker.trackRerender(id, element, `setProp:${name}`);\n\n if (name === \"0\" || name === \"text\") {\n const elementType = element.dataset.hypenType;\n\n if (elementType === \"input\") {\n const inputEl = element as HTMLInputElement;\n inputEl.value = String(value);\n log.debug(`Updated input value: \"${value}\"`);\n return;\n }\n\n const nextText = String(value);\n element.textContent = nextText;\n\n // Preserve the original template when it contains state interpolation.\n // Engine patches may send interpolated strings; if we overwrite the template,\n // future state updates won't be able to re-interpolate.\n const currentTemplate = element.dataset.textTemplate;\n const nextLooksLikeTemplate = nextText.includes(\"${\");\n const currentLooksLikeTemplate = typeof currentTemplate === \"string\" && currentTemplate.includes(\"${\");\n\n if (nextLooksLikeTemplate) {\n element.dataset.textTemplate = nextText;\n } else if (currentTemplate === undefined) {\n // No template stored yet; treat this as the template.\n element.dataset.textTemplate = nextText;\n } else if (!currentLooksLikeTemplate) {\n // If current template isn't a template, keep it in sync.\n element.dataset.textTemplate = nextText;\n }\n log.debug(`Updated text content: \"${value}\"`);\n return;\n }\n\n this.applicators.apply(element, name, value);\n }\n\n /**\n * Remove a property from an element\n */\n private onRemoveProp(id: string, name: string): void {\n const element = this.nodes.get(id);\n if (!element) return;\n\n this.debugTracker.trackRerender(id, element, `removeProp:${name}`);\n this.applicators.apply(element, name, undefined);\n }\n\n /**\n * Set text content\n */\n private onSetText(id: string, text: string): void {\n const element = this.nodes.get(id);\n if (!element) return;\n\n this.debugTracker.trackRerender(id, element, \"setText\");\n element.textContent = text;\n }\n\n /**\n * Insert an element into the tree\n */\n private onInsert(parentId: string, id: string, beforeId?: string): void {\n const parent = parentId === \"root\" ? this.container : this.nodes.get(parentId);\n const child = this.nodes.get(id);\n\n log.debug(`Inserting ${id} into ${parentId}`, {\n parent: parent ? `${parent.tagName}#${parent.id || 'no-id'}` : 'null',\n child: child ? `${child.tagName}#${child.id || 'no-id'}` : 'null',\n childText: child?.textContent?.substring(0, 20)\n });\n\n if (!parent || !child) return;\n\n if (parentId === \"root\") {\n this.rootId = id;\n }\n\n if (beforeId) {\n const before = this.nodes.get(beforeId);\n if (before && before.parentNode === parent) {\n parent.insertBefore(child, before);\n } else if (!parent.contains(child)) {\n parent.appendChild(child);\n }\n } else {\n if (!parent.contains(child)) {\n parent.appendChild(child);\n }\n }\n }\n\n /**\n * Move an element within the tree\n */\n private onMove(parentId: string, id: string, beforeId?: string): void {\n this.onInsert(parentId, id, beforeId);\n }\n\n /**\n * Remove an element from the tree\n */\n private onRemove(id: string): void {\n const element = this.nodes.get(id);\n if (!element) return;\n\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n this.nodes.delete(id);\n\n if (this.rootId === id) {\n this.rootId = null;\n }\n }\n\n /**\n * Get an element by ID\n */\n getNode(id: string): HTMLElement | undefined {\n return this.nodes.get(id);\n }\n\n /**\n * Clear all nodes\n */\n clear(): void {\n this.container.innerHTML = \"\";\n this.nodes.clear();\n this.rootId = null;\n }\n\n /**\n * Get the component registry (for registering custom components)\n */\n getComponentRegistry(): ComponentRegistry {\n return this.components;\n }\n\n /**\n * Get the applicator registry (for registering custom applicators)\n */\n getApplicatorRegistry(): ApplicatorRegistry {\n return this.applicators;\n }\n\n /**\n * Enable or configure debug mode\n */\n setDebugConfig(config: Partial<DebugConfig>): void {\n this.debugTracker.setConfig(config);\n }\n\n /**\n * Reset debug tracking for all elements\n */\n resetDebugTracking(): void {\n this.debugTracker.resetAll();\n }\n\n /**\n * Get debug statistics\n */\n getDebugStats(): { totalRerenders: number; elementCount: number; avgRerenders: number } {\n return this.debugTracker.getStats();\n }\n}\n",
|
|
58
58
|
"/**\n * Event Management System\n *\n * Handles DOM event binding and action dispatching\n */\n\nimport { frameworkLoggers } from \"@hypen-space/core/logger\";\n\nconst log = frameworkLoggers.events;\n\n// Interface for the engine that EventManager needs\ninterface IEngine {\n dispatchAction(name: string, payload?: any): void;\n}\n\nexport interface EventBinding {\n elementId: string;\n eventName: string;\n actionName: string;\n}\n\nexport class EventManager {\n private engine: IEngine;\n private bindings: Map<string, Map<string, EventListener>> = new Map();\n\n constructor(engine: IEngine) {\n this.engine = engine;\n }\n\n /**\n * Attach an event listener to an element\n */\n attach(elementId: string, element: HTMLElement, eventName: string, actionName: string): void {\n // Convert onClick to click for DOM events\n const domEventName = eventName === \"onClick\" ? \"click\" : eventName;\n log.debug(`Attaching ${eventName} (DOM: ${domEventName}) to element ${elementId}, action: ${actionName}`);\n\n // Create event listener that dispatches action\n const listener = (event: Event) => {\n log.debug(`Event fired: ${eventName} on ${elementId}, dispatching action: ${actionName}`);\n log.debug(`Event object:`, event);\n log.debug(`Element:`, element);\n\n // Prevent default for certain events\n if (eventName === \"submit\" || (eventName === \"click\" && element.tagName === \"A\")) {\n event.preventDefault();\n }\n\n // Extract event data\n const payload = this.extractEventData(event, element);\n log.debug(`Event payload:`, payload);\n\n // Dispatch action to engine\n log.debug(`Calling engine.dispatchAction(${actionName})`);\n try {\n this.engine.dispatchAction(actionName, payload);\n log.debug(`dispatchAction succeeded`);\n } catch (error) {\n log.error(`dispatchAction failed:`, error);\n }\n };\n\n // Store listener reference\n let elementBindings = this.bindings.get(elementId);\n if (!elementBindings) {\n elementBindings = new Map();\n this.bindings.set(elementId, elementBindings);\n }\n elementBindings.set(eventName, listener);\n\n // Attach to DOM\n element.addEventListener(domEventName, listener);\n log.debug(`Listener attached to DOM for ${domEventName}`);\n log.debug(`Element details:`, {\n tagName: element.tagName,\n id: element.id,\n dataset: element.dataset,\n textContent: element.textContent?.substring(0, 50)\n });\n\n // Test: Add a simple click listener to verify DOM events work\n if (domEventName === \"click\") {\n element.addEventListener(\"click\", (e) => {\n log.debug(`Raw DOM click detected on ${element.tagName}`, e);\n });\n }\n }\n\n /**\n * Detach an event listener from an element\n */\n detach(elementId: string, element: HTMLElement, eventName: string): void {\n const elementBindings = this.bindings.get(elementId);\n if (!elementBindings) return;\n\n const listener = elementBindings.get(eventName);\n if (listener) {\n element.removeEventListener(eventName, listener);\n elementBindings.delete(eventName);\n }\n\n if (elementBindings.size === 0) {\n this.bindings.delete(elementId);\n }\n }\n\n /**\n * Extract relevant data from an event\n */\n private extractEventData(event: Event, element: HTMLElement): any {\n const data: any = {\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 events (for form elements)\n if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n data.value = element.value;\n }\n\n // Select events\n if (element instanceof HTMLSelectElement) {\n data.value = element.value;\n data.selectedIndex = element.selectedIndex;\n }\n\n // Form events\n if (event.type === \"submit\" && element instanceof HTMLFormElement) {\n data.formData = new FormData(element);\n }\n\n return data;\n }\n\n /**\n * Clear all event bindings for an element\n */\n clearElement(elementId: string, element: HTMLElement): void {\n const elementBindings = this.bindings.get(elementId);\n if (!elementBindings) return;\n\n for (const [eventName, listener] of elementBindings) {\n element.removeEventListener(eventName, listener);\n }\n\n this.bindings.delete(elementId);\n }\n\n /**\n * Clear all event bindings\n */\n clearAll(): void {\n this.bindings.clear();\n }\n}\n",
|
|
59
59
|
"/**\n * Canvas Renderer Utilities\n *\n * Common utility functions\n */\n\nimport type { BoxSpacing, Rectangle, Point, VirtualNode } from \"./types.js\";\n\n/**\n * Parse spacing value (margin, padding)\n * Supports: number, \"10\", \"10 20\", \"10 20 30 40\"\n */\nexport function parseSpacing(value: any): BoxSpacing {\n if (typeof value === \"number\") {\n return { top: value, right: value, bottom: value, left: value };\n }\n\n if (typeof value === \"string\") {\n const parts = value.split(/\\s+/).map((v) => parseFloat(v) || 0);\n if (parts.length === 1) {\n return { top: parts[0], right: parts[0], bottom: parts[0], left: parts[0] };\n }\n if (parts.length === 2) {\n return { top: parts[0], right: parts[1], bottom: parts[0], left: parts[1] };\n }\n if (parts.length === 4) {\n return { top: parts[0], right: parts[1], bottom: parts[2], left: parts[3] };\n }\n }\n\n if (typeof value === \"object\" && value !== null) {\n return {\n top: parseFloat(value.top) || 0,\n right: parseFloat(value.right) || 0,\n bottom: parseFloat(value.bottom) || 0,\n left: parseFloat(value.left) || 0,\n };\n }\n\n return { top: 0, right: 0, bottom: 0, left: 0 };\n}\n\n/**\n * Parse size value (width, height)\n * Returns pixel value or null for \"auto\"\n */\nexport function parseSize(value: any): number | null {\n if (typeof value === \"number\") return value;\n if (typeof value === \"string\") {\n if (value === \"auto\") return null;\n const num = parseFloat(value);\n return isNaN(num) ? null : num;\n }\n return null;\n}\n\n/**\n * Check if point is inside rectangle\n */\nexport function isPointInRect(point: Point, rect: Rectangle): boolean {\n return (\n point.x >= rect.x &&\n point.x <= rect.x + rect.width &&\n point.y >= rect.y &&\n point.y <= rect.y + rect.height\n );\n}\n\n/**\n * Check if point is inside rounded rectangle\n */\nexport function isPointInRoundedRect(\n point: Point,\n rect: Rectangle,\n radius: number\n): boolean {\n const { x, y, width, height } = rect;\n\n // Quick reject if outside bounding box\n if (!isPointInRect(point, rect)) return false;\n\n // No radius means simple rectangle\n if (radius <= 0) return true;\n\n const px = point.x;\n const py = point.y;\n\n // Check corners\n // Top-left\n if (px < x + radius && py < y + radius) {\n return Math.pow(px - (x + radius), 2) + Math.pow(py - (y + radius), 2) <= Math.pow(radius, 2);\n }\n\n // Top-right\n if (px > x + width - radius && py < y + radius) {\n return (\n Math.pow(px - (x + width - radius), 2) + Math.pow(py - (y + radius), 2) <=\n Math.pow(radius, 2)\n );\n }\n\n // Bottom-left\n if (px < x + radius && py > y + height - radius) {\n return (\n Math.pow(px - (x + radius), 2) + Math.pow(py - (y + height - radius), 2) <=\n Math.pow(radius, 2)\n );\n }\n\n // Bottom-right\n if (px > x + width - radius && py > y + height - radius) {\n return (\n Math.pow(px - (x + width - radius), 2) + Math.pow(py - (y + height - radius), 2) <=\n Math.pow(radius, 2)\n );\n }\n\n // Inside rectangle\n return true;\n}\n\n/**\n * Merge rectangles into bounding box\n */\nexport function mergeRects(rects: Rectangle[]): Rectangle | null {\n if (rects.length === 0) return null;\n if (rects.length === 1) return rects[0];\n\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n\n for (const rect of rects) {\n minX = Math.min(minX, rect.x);\n minY = Math.min(minY, rect.y);\n maxX = Math.max(maxX, rect.x + rect.width);\n maxY = Math.max(maxY, rect.y + rect.height);\n }\n\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n}\n\n/**\n * Create a canvas font string from font style\n */\nexport function createFontString(\n fontSize: number,\n fontWeight: string | number,\n fontFamily: string\n): string {\n return `${fontWeight} ${fontSize}px ${fontFamily}`;\n}\n\n/**\n * Walk tree depth-first\n */\nexport function walkTree(node: VirtualNode, callback: (node: VirtualNode) => void): void {\n callback(node);\n for (const child of node.children) {\n walkTree(child, callback);\n }\n}\n\n/**\n * Find node by ID in tree\n */\nexport function findNodeById(root: VirtualNode, id: string): VirtualNode | null {\n if (root.id === id) return root;\n\n for (const child of root.children) {\n const found = findNodeById(child, id);\n if (found) return found;\n }\n\n return null;\n}\n\n/**\n * Get absolute bounds of node (including transformations)\n */\nexport function getAbsoluteBounds(node: VirtualNode): Rectangle | null {\n if (!node.layout) return null;\n\n let x = node.layout.x;\n let y = node.layout.y;\n\n // Walk up tree to accumulate offsets\n let current = node.parent;\n while (current && current.layout) {\n x += current.layout.contentX;\n y += current.layout.contentY;\n current = current.parent;\n }\n\n return {\n x,\n y,\n width: node.layout.width,\n height: node.layout.height,\n };\n}\n\n\n\n\n\n\n\n\n\n\n\n",
|
|
60
60
|
"/**\n * Text Rendering System\n *\n * Text measurement, wrapping, and rendering\n */\n\nimport type { FontStyle, TextMetrics, TextStyle } from \"./types.js\";\nimport { createFontString } from \"./utils.js\";\nimport { frameworkLoggers } from \"@hypen-space/core/logger\";\n\nconst log = frameworkLoggers.canvas;\n\n/**\n * Text metrics cache\n */\nconst textMetricsCache = new Map<string, TextMetrics>();\n\n/**\n * Get cache key for text metrics\n */\nfunction getCacheKey(text: string, fontStyle: FontStyle, maxWidth?: number): string {\n return `${text}|${fontStyle.fontSize}|${fontStyle.fontWeight}|${fontStyle.fontFamily}|${maxWidth || \"auto\"}`;\n}\n\n/**\n * Measure text dimensions\n */\nexport function measureText(\n ctx: CanvasRenderingContext2D,\n text: string,\n fontStyle: FontStyle,\n maxWidth?: number\n): TextMetrics {\n const cacheKey = getCacheKey(text, fontStyle, maxWidth);\n const cached = textMetricsCache.get(cacheKey);\n if (cached) return cached;\n\n const font = createFontString(fontStyle.fontSize, fontStyle.fontWeight, fontStyle.fontFamily);\n ctx.save();\n ctx.font = font;\n\n const lineHeight = fontStyle.lineHeight || fontStyle.fontSize * 1.2;\n\n // No wrapping needed\n if (!maxWidth) {\n const metrics = ctx.measureText(text);\n const result: TextMetrics = {\n width: metrics.width,\n height: lineHeight,\n lines: [text],\n lineHeight,\n };\n ctx.restore();\n textMetricsCache.set(cacheKey, result);\n return result;\n }\n\n // Wrap text\n const lines = wrapText(ctx, text, maxWidth);\n const width = Math.max(...lines.map((line) => ctx.measureText(line).width));\n const height = lines.length * lineHeight;\n\n const result: TextMetrics = {\n width,\n height,\n lines,\n lineHeight,\n };\n\n ctx.restore();\n textMetricsCache.set(cacheKey, result);\n return result;\n}\n\n/**\n * Wrap text to fit within maxWidth\n */\nfunction wrapText(ctx: CanvasRenderingContext2D, text: string, maxWidth: number): string[] {\n const lines: string[] = [];\n const paragraphs = text.split(\"\\n\");\n\n for (const paragraph of paragraphs) {\n const words = paragraph.split(\" \");\n let currentLine = \"\";\n\n for (const word of words) {\n const testLine = currentLine ? `${currentLine} ${word}` : word;\n const metrics = ctx.measureText(testLine);\n\n if (metrics.width > maxWidth && currentLine) {\n lines.push(currentLine);\n currentLine = word;\n } else {\n currentLine = testLine;\n }\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n }\n\n return lines.length > 0 ? lines : [\"\"];\n}\n\n/**\n * Render text with style\n */\nexport function renderText(\n ctx: CanvasRenderingContext2D,\n text: string,\n x: number,\n y: number,\n width: number,\n height: number,\n style: TextStyle\n): void {\n const font = createFontString(style.fontSize, style.fontWeight, style.fontFamily);\n ctx.save();\n ctx.font = font;\n ctx.fillStyle = style.color;\n ctx.textBaseline = \"top\";\n\n const metrics = measureText(ctx, text, style, width);\n\n // Calculate starting Y based on vertical alignment\n let startY = y;\n if (style.verticalAlign === \"middle\") {\n startY = y + (height - metrics.height) / 2;\n } else if (style.verticalAlign === \"bottom\") {\n startY = y + height - metrics.height;\n }\n\n // Render each line\n for (let i = 0; i < metrics.lines.length; i++) {\n const line = metrics.lines[i];\n const lineY = startY + i * metrics.lineHeight;\n\n // Calculate X based on text alignment\n let lineX = x;\n if (style.textAlign === \"center\") {\n const lineWidth = ctx.measureText(line).width;\n lineX = x + (width - lineWidth) / 2;\n } else if (style.textAlign === \"right\") {\n const lineWidth = ctx.measureText(line).width;\n lineX = x + width - lineWidth;\n }\n\n ctx.fillText(line, lineX, lineY);\n }\n\n ctx.restore();\n}\n\n/**\n * Clear text metrics cache\n */\nexport function clearTextCache(): void {\n textMetricsCache.clear();\n}\n\n/**\n * Preload font to ensure it's available\n */\nexport async function loadFont(fontFamily: string, fontWeight: string | number = \"normal\"): Promise<void> {\n if (!(\"fonts\" in document)) return;\n\n const font = `${fontWeight} 16px ${fontFamily}`;\n try {\n await document.fonts.load(font);\n } catch (error) {\n log.warn(`Failed to load font: ${font}`, error);\n }\n}\n\n\n\n\n\n\n\n\n\n\n\n",
|
|
@@ -63,10 +63,10 @@
|
|
|
63
63
|
"/**\n * Event System\n *\n * Hit testing and event handling for canvas nodes\n */\n\nimport type { VirtualNode, Point } from \"./types.js\";\nimport { isPointInRoundedRect, getAbsoluteBounds } from \"./utils.js\";\n\n// Interface for the engine that CanvasEventManager needs\ninterface IEngine {\n dispatchAction(name: string, payload?: any): void;\n}\n\n/**\n * Canvas Event Manager\n */\nexport class CanvasEventManager {\n private canvas: HTMLCanvasElement;\n private engine: IEngine;\n private rootNode: VirtualNode | null = null;\n private hoveredNode: VirtualNode | null = null;\n private focusedNode: VirtualNode | null = null;\n private mouseDownNode: VirtualNode | null = null;\n\n constructor(canvas: HTMLCanvasElement, engine: IEngine) {\n this.canvas = canvas;\n this.engine = engine;\n this.setupEventListeners();\n }\n\n /**\n * Set the root node for hit testing\n */\n setRootNode(node: VirtualNode | null): void {\n this.rootNode = node;\n }\n\n /**\n * Setup canvas event listeners\n */\n private setupEventListeners(): void {\n this.canvas.addEventListener(\"mousemove\", this.onMouseMove.bind(this));\n this.canvas.addEventListener(\"mousedown\", this.onMouseDown.bind(this));\n this.canvas.addEventListener(\"mouseup\", this.onMouseUp.bind(this));\n this.canvas.addEventListener(\"click\", this.onClick.bind(this));\n this.canvas.addEventListener(\"dblclick\", this.onDoubleClick.bind(this));\n this.canvas.addEventListener(\"keydown\", this.onKeyDown.bind(this));\n this.canvas.addEventListener(\"keyup\", this.onKeyUp.bind(this));\n }\n\n /**\n * Get canvas coordinates from mouse event\n */\n private getCanvasCoordinates(e: MouseEvent): Point {\n const rect = this.canvas.getBoundingClientRect();\n const scaleX = this.canvas.width / rect.width;\n const scaleY = this.canvas.height / rect.height;\n\n return {\n x: (e.clientX - rect.left) * scaleX,\n y: (e.clientY - rect.top) * scaleY,\n };\n }\n\n /**\n * Find node at canvas coordinates\n */\n private hitTest(point: Point): VirtualNode | null {\n if (!this.rootNode) return null;\n return this.hitTestNode(this.rootNode, point);\n }\n\n /**\n * Recursively test node and children\n */\n private hitTestNode(node: VirtualNode, point: Point): VirtualNode | null {\n if (!node.visible || !node.layout) return null;\n\n const bounds = getAbsoluteBounds(node);\n if (!bounds) return null;\n\n // Test children first (front to back)\n for (let i = node.children.length - 1; i >= 0; i--) {\n const child = node.children[i];\n const hit = this.hitTestNode(child, point);\n if (hit) return hit;\n }\n\n // Test this node\n const radius = node.layout.border.radius;\n if (isPointInRoundedRect(point, bounds, radius)) {\n return node;\n }\n\n return null;\n }\n\n /**\n * Handle mouse move\n */\n private onMouseMove(e: MouseEvent): void {\n const point = this.getCanvasCoordinates(e);\n const node = this.hitTest(point);\n\n // Update hover state\n if (node !== this.hoveredNode) {\n // Leave old node\n if (this.hoveredNode) {\n this.hoveredNode.hovered = false;\n this.dispatchNodeEvent(this.hoveredNode, \"mouseleave\", {});\n }\n\n // Enter new node\n this.hoveredNode = node;\n if (node) {\n node.hovered = true;\n this.dispatchNodeEvent(node, \"mouseenter\", {});\n }\n\n // Update cursor\n this.updateCursor(node);\n\n // Request redraw for hover effects\n this.requestRedraw();\n }\n }\n\n /**\n * Handle mouse down\n */\n private onMouseDown(e: MouseEvent): void {\n const point = this.getCanvasCoordinates(e);\n const node = this.hitTest(point);\n\n this.mouseDownNode = node;\n\n if (node && node.clickable) {\n this.dispatchNodeEvent(node, \"mousedown\", {\n button: e.button,\n clientX: e.clientX,\n clientY: e.clientY,\n });\n }\n\n // Update focus\n if (node && node.focusable) {\n this.setFocus(node);\n } else {\n this.setFocus(null);\n }\n }\n\n /**\n * Handle mouse up\n */\n private onMouseUp(e: MouseEvent): void {\n const point = this.getCanvasCoordinates(e);\n const node = this.hitTest(point);\n\n if (node && node.clickable) {\n this.dispatchNodeEvent(node, \"mouseup\", {\n button: e.button,\n clientX: e.clientX,\n clientY: e.clientY,\n });\n }\n\n this.mouseDownNode = null;\n }\n\n /**\n * Handle click\n */\n private onClick(e: MouseEvent): void {\n const point = this.getCanvasCoordinates(e);\n const node = this.hitTest(point);\n\n if (node && node.clickable && node === this.mouseDownNode) {\n this.dispatchNodeEvent(node, \"click\", {\n button: e.button,\n clientX: e.clientX,\n clientY: e.clientY,\n });\n }\n }\n\n /**\n * Handle double click\n */\n private onDoubleClick(e: MouseEvent): void {\n const point = this.getCanvasCoordinates(e);\n const node = this.hitTest(point);\n\n if (node && node.clickable) {\n this.dispatchNodeEvent(node, \"dblclick\", {\n button: e.button,\n clientX: e.clientX,\n clientY: e.clientY,\n });\n }\n }\n\n /**\n * Handle keyboard events\n */\n private onKeyDown(e: KeyboardEvent): void {\n if (this.focusedNode) {\n this.dispatchNodeEvent(this.focusedNode, \"keydown\", {\n key: e.key,\n code: e.code,\n ctrlKey: e.ctrlKey,\n shiftKey: e.shiftKey,\n altKey: e.altKey,\n });\n }\n }\n\n private onKeyUp(e: KeyboardEvent): void {\n if (this.focusedNode) {\n this.dispatchNodeEvent(this.focusedNode, \"keyup\", {\n key: e.key,\n code: e.code,\n ctrlKey: e.ctrlKey,\n shiftKey: e.shiftKey,\n altKey: e.altKey,\n });\n }\n }\n\n /**\n * Set focused node\n */\n private setFocus(node: VirtualNode | null): void {\n if (node === this.focusedNode) return;\n\n if (this.focusedNode) {\n this.focusedNode.focused = false;\n this.dispatchNodeEvent(this.focusedNode, \"blur\", {});\n }\n\n this.focusedNode = node;\n\n if (node) {\n node.focused = true;\n this.dispatchNodeEvent(node, \"focus\", {});\n }\n\n this.requestRedraw();\n }\n\n /**\n * Update cursor based on node\n */\n private updateCursor(node: VirtualNode | null): void {\n if (!node) {\n this.canvas.style.cursor = \"default\";\n return;\n }\n\n const cursor = node.props.cursor || (node.clickable ? \"pointer\" : \"default\");\n this.canvas.style.cursor = cursor;\n }\n\n /**\n * Dispatch event to engine\n */\n private dispatchNodeEvent(node: VirtualNode, eventType: string, data: any): void {\n // Check if node has action handler for this event\n const actionName = node.props[`on${eventType}`] || node.props[eventType];\n\n if (actionName && typeof actionName === \"string\") {\n // Dispatch to engine\n this.engine.dispatchAction(actionName, {\n type: eventType,\n nodeId: node.id,\n timestamp: Date.now(),\n ...data,\n });\n }\n }\n\n /**\n * Request redraw from renderer\n */\n private requestRedraw(): void {\n // This will be called via a callback set by the renderer\n // For now, dispatch a custom event\n this.canvas.dispatchEvent(new CustomEvent(\"hypen:redraw\"));\n }\n\n /**\n * Cleanup\n */\n destroy(): void {\n // Remove event listeners if needed\n }\n}\n\n\n\n\n\n\n\n\n\n",
|
|
64
64
|
"/**\n * Input Overlay System\n *\n * Handle text input using DOM overlay elements\n */\n\nimport type { VirtualNode, Rectangle } from \"./types.js\";\nimport { getAbsoluteBounds } from \"./utils.js\";\n\n/** Minimal engine interface for dispatching bind actions */\ninterface BindEngine {\n dispatchAction(name: string, payload?: unknown): void;\n}\n\n/**\n * Input Overlay Manager\n */\nexport class InputOverlay {\n private container: HTMLElement;\n private overlay: HTMLInputElement | HTMLTextAreaElement | null = null;\n private focusedNode: VirtualNode | null = null;\n private onChangeCallback: ((value: string) => void) | null = null;\n private bindPath: string | null = null;\n private engine: BindEngine | null = null;\n\n constructor(container: HTMLElement | null) {\n this.container = container || ({} as HTMLElement);\n }\n\n /**\n * Show input overlay for a node\n */\n showInput(\n node: VirtualNode,\n canvasBounds: DOMRect,\n onChange: (value: string) => void,\n engine?: BindEngine | null\n ): void {\n // Skip if document is not available (non-browser environment)\n if (typeof document === \"undefined\") return;\n\n this.hideInput();\n\n // Store bind path and engine for two-way binding\n this.bindPath = (node.props.bind as string) || null;\n this.engine = engine || null;\n\n const bounds = getAbsoluteBounds(node);\n if (!bounds) return;\n\n const isMultiline = node.type === \"textarea\";\n this.overlay = isMultiline\n ? document.createElement(\"textarea\")\n : document.createElement(\"input\");\n\n // Style overlay\n this.styleOverlay(node, bounds, canvasBounds);\n\n // Set initial value\n const value = node.props.value || \"\";\n this.overlay.value = value;\n\n // Setup event handlers\n this.onChangeCallback = onChange;\n this.overlay.addEventListener(\"input\", this.onInput.bind(this));\n this.overlay.addEventListener(\"blur\", this.onBlur.bind(this));\n this.overlay.addEventListener(\"keydown\", this.onKeyDown.bind(this) as EventListener);\n\n // Add to DOM and focus\n this.container.appendChild(this.overlay);\n this.overlay.focus();\n\n this.focusedNode = node;\n }\n\n /**\n * Hide input overlay\n */\n hideInput(): void {\n if (this.overlay) {\n this.overlay.remove();\n this.overlay = null;\n }\n this.focusedNode = null;\n this.onChangeCallback = null;\n this.bindPath = null;\n this.engine = null;\n }\n\n /**\n * Update overlay position\n */\n updatePosition(node: VirtualNode, canvasBounds: DOMRect): void {\n if (!this.overlay || node !== this.focusedNode) return;\n\n const bounds = getAbsoluteBounds(node);\n if (!bounds) return;\n\n this.positionOverlay(bounds, canvasBounds);\n }\n\n /**\n * Style overlay to match canvas node\n */\n private styleOverlay(\n node: VirtualNode,\n bounds: Rectangle,\n canvasBounds: DOMRect\n ): void {\n if (!this.overlay) return;\n\n const props = node.props;\n\n // Position\n this.positionOverlay(bounds, canvasBounds);\n\n // Font and text styling\n const fontSize = parseFloat(props.fontSize) || 16;\n const fontWeight = props.fontWeight || \"normal\";\n const fontFamily = props.fontFamily || \"system-ui, sans-serif\";\n const color = props.color || \"#000000\";\n\n Object.assign(this.overlay.style, {\n fontSize: `${fontSize}px`,\n fontWeight: fontWeight,\n fontFamily: fontFamily,\n color: color,\n border: \"none\",\n outline: \"2px solid #007bff\",\n backgroundColor: props.backgroundColor || \"#ffffff\",\n padding: `${props.padding || 8}px`,\n borderRadius: `${props.borderRadius || 4}px`,\n boxSizing: \"border-box\",\n resize: \"none\",\n });\n\n // Placeholder\n if (props.placeholder) {\n this.overlay.placeholder = props.placeholder;\n }\n\n // Input type\n if (this.overlay instanceof HTMLInputElement && props.type) {\n this.overlay.type = props.type;\n }\n }\n\n /**\n * Position overlay over canvas node\n */\n private positionOverlay(bounds: Rectangle, canvasBounds: DOMRect): void {\n if (!this.overlay) return;\n\n // Calculate scale factor between canvas and display\n const canvas = this.container.querySelector(\"canvas\") as HTMLCanvasElement;\n const scaleX = canvasBounds.width / canvas.width;\n const scaleY = canvasBounds.height / canvas.height;\n\n const left = bounds.x * scaleX;\n const top = bounds.y * scaleY;\n const width = bounds.width * scaleX;\n const height = bounds.height * scaleY;\n\n Object.assign(this.overlay.style, {\n position: \"absolute\",\n left: `${left}px`,\n top: `${top}px`,\n width: `${width}px`,\n height: `${height}px`,\n });\n }\n\n /**\n * Handle input event\n */\n private onInput(e: Event): void {\n if (!this.overlay || !this.onChangeCallback) return;\n\n const value = this.overlay.value;\n this.onChangeCallback(value);\n\n // Dispatch __hypen_bind for two-way binding\n if (this.bindPath && this.engine) {\n this.engine.dispatchAction(\"__hypen_bind\", {\n path: this.bindPath,\n value,\n });\n }\n }\n\n /**\n * Handle blur event\n */\n private onBlur(): void {\n // Hide overlay when focus is lost\n this.hideInput();\n }\n\n /**\n * Handle keyboard events\n */\n private onKeyDown(e: KeyboardEvent): void {\n if (!this.overlay) return;\n\n // Enter key submits (unless multiline)\n if (e.key === \"Enter\" && this.overlay instanceof HTMLInputElement) {\n e.preventDefault();\n this.overlay.blur();\n }\n\n // Escape cancels\n if (e.key === \"Escape\") {\n e.preventDefault();\n this.overlay.blur();\n }\n }\n\n /**\n * Check if input is currently shown\n */\n isShown(): boolean {\n return this.overlay !== null;\n }\n\n /**\n * Get current focused node\n */\n getFocusedNode(): VirtualNode | null {\n return this.focusedNode;\n }\n}\n\n",
|
|
65
65
|
"/**\n * Accessibility Layer\n *\n * Maintain shadow DOM for screen readers\n */\n\nimport type { VirtualNode } from \"./types.js\";\nimport { walkTree } from \"./utils.js\";\n\n/**\n * Accessibility Manager\n */\nexport class AccessibilityLayer {\n private shadowRoot: HTMLElement;\n private nodeMap = new Map<string, HTMLElement>();\n private enabled: boolean;\n\n constructor(container: HTMLElement | null, enabled: boolean = true) {\n this.enabled = enabled && typeof document !== \"undefined\";\n\n // Create shadow root container (only in browser)\n if (this.enabled && typeof document !== \"undefined\") {\n this.shadowRoot = document.createElement(\"div\");\n this.shadowRoot.setAttribute(\"role\", \"application\");\n this.shadowRoot.setAttribute(\"aria-label\", \"Hypen Canvas Application\");\n this.shadowRoot.style.position = \"absolute\";\n this.shadowRoot.style.left = \"-9999px\";\n this.shadowRoot.style.width = \"1px\";\n this.shadowRoot.style.height = \"1px\";\n this.shadowRoot.style.overflow = \"hidden\";\n\n if (container) {\n container.appendChild(this.shadowRoot);\n }\n } else {\n // Fallback for non-browser environments\n this.shadowRoot = {} as HTMLElement;\n }\n }\n\n /**\n * Sync shadow DOM with virtual tree\n */\n syncTree(root: VirtualNode): void {\n if (!this.enabled) return;\n\n // Clear existing\n this.shadowRoot.innerHTML = \"\";\n this.nodeMap.clear();\n\n // Build shadow DOM\n const shadowNode = this.createShadowNode(root);\n if (shadowNode) {\n this.shadowRoot.appendChild(shadowNode);\n }\n }\n\n /**\n * Create shadow DOM element for virtual node\n */\n private createShadowNode(node: VirtualNode): HTMLElement | null {\n if (!node.visible) return null;\n\n let element: HTMLElement;\n\n // Create appropriate HTML element\n switch (node.type.toLowerCase()) {\n case \"button\":\n element = document.createElement(\"button\");\n element.textContent = this.getNodeText(node);\n if (node.props.onclick) {\n element.setAttribute(\"aria-label\", \"Clickable button\");\n }\n break;\n\n case \"input\":\n element = document.createElement(\"input\");\n (element as HTMLInputElement).type = node.props.type || \"text\";\n (element as HTMLInputElement).value = node.props.value || \"\";\n if (node.props.placeholder) {\n (element as HTMLInputElement).placeholder = node.props.placeholder;\n }\n break;\n\n case \"textarea\":\n element = document.createElement(\"textarea\");\n (element as HTMLTextAreaElement).value = node.props.value || \"\";\n if (node.props.placeholder) {\n (element as HTMLTextAreaElement).placeholder = node.props.placeholder;\n }\n break;\n\n case \"image\":\n element = document.createElement(\"img\");\n (element as HTMLImageElement).src = node.props.src || \"\";\n (element as HTMLImageElement).alt = node.props.alt || \"Image\";\n break;\n\n case \"text\":\n element = document.createElement(\"span\");\n element.textContent = String(node.props[0] || node.props.text || \"\");\n break;\n\n case \"column\":\n case \"row\":\n case \"container\":\n case \"box\":\n element = document.createElement(\"div\");\n element.setAttribute(\"role\", node.type === \"column\" ? \"group\" : \"group\");\n break;\n\n default:\n element = document.createElement(\"div\");\n }\n\n // Set common attributes\n element.setAttribute(\"data-hypen-id\", node.id);\n\n if (node.props[\"aria-label\"]) {\n element.setAttribute(\"aria-label\", node.props[\"aria-label\"]);\n }\n\n if (node.focusable) {\n element.tabIndex = 0;\n }\n\n // Store mapping\n this.nodeMap.set(node.id, element);\n\n // Add children\n for (const child of node.children) {\n const childElement = this.createShadowNode(child);\n if (childElement) {\n element.appendChild(childElement);\n }\n }\n\n return element;\n }\n\n /**\n * Get text content from node tree\n */\n private getNodeText(node: VirtualNode): string {\n if (node.type === \"text\") {\n return String(node.props[0] || node.props.text || \"\");\n }\n\n let text = \"\";\n for (const child of node.children) {\n text += this.getNodeText(child);\n }\n return text;\n }\n\n /**\n * Focus node in shadow DOM\n */\n focusNode(nodeId: string): void {\n if (!this.enabled) return;\n\n const element = this.nodeMap.get(nodeId);\n if (element) {\n element.focus();\n }\n }\n\n /**\n * Update single node\n */\n updateNode(node: VirtualNode): void {\n if (!this.enabled) return;\n\n const element = this.nodeMap.get(node.id);\n if (!element) return;\n\n // Update text content\n if (node.type === \"text\") {\n element.textContent = String(node.props[0] || node.props.text || \"\");\n }\n\n // Update input value\n if (node.type === \"input\" || node.type === \"textarea\") {\n (element as HTMLInputElement | HTMLTextAreaElement).value = node.props.value || \"\";\n }\n\n // Update visibility\n element.style.display = node.visible ? \"\" : \"none\";\n }\n\n /**\n * Get shadow element by node ID\n */\n getElement(nodeId: string): HTMLElement | undefined {\n return this.nodeMap.get(nodeId);\n }\n\n /**\n * Enable or disable accessibility layer\n */\n setEnabled(enabled: boolean): void {\n this.enabled = enabled;\n if (!enabled && this.shadowRoot.parentElement) {\n this.shadowRoot.remove();\n }\n }\n\n /**\n * Cleanup\n */\n destroy(): void {\n if (this.shadowRoot.parentElement) {\n this.shadowRoot.remove();\n }\n this.nodeMap.clear();\n }\n}\n\n",
|
|
66
|
-
"/**\n * Canvas Renderer\n *\n * Main renderer class that orchestrates layout, painting, and events\n */\n\nimport type { Renderer } from \"@hypen-space/core/renderer\";\nimport type { Patch } from \"@hypen-space/core/types\";\nimport { frameworkLoggers } from \"@hypen-space/core/logger\";\n\nconst log = frameworkLoggers.canvas;\n\n// Interface for the engine that canvas renderer needs\ninterface IEngine {\n dispatchAction(name: string, payload?: any): void;\n}\nimport type {\n VirtualNode,\n CanvasRendererOptions,\n PainterFunction,\n LayoutFunction,\n} from \"./types.js\";\nimport { computeLayout } from \"./layout.js\";\nimport { paintNode, registerPainter } from \"./paint.js\";\nimport { CanvasEventManager } from \"./events.js\";\nimport { InputOverlay } from \"./input.js\";\nimport { AccessibilityLayer } from \"./accessibility.js\";\nimport { findNodeById } from \"./utils.js\";\n\nconst DEFAULT_OPTIONS: CanvasRendererOptions = {\n devicePixelRatio: typeof window !== \"undefined\" ? window.devicePixelRatio || 1 : 1,\n backgroundColor: \"#ffffff\",\n enableAccessibility: true,\n enableHitTesting: true,\n enableInputOverlay: true,\n enableDirtyRects: false,\n enableLayerCaching: false,\n maxLayerCacheSize: 10,\n showLayoutBounds: false,\n showDirtyRects: false,\n logPerformance: false,\n};\n\n/**\n * Canvas Renderer\n */\nexport class CanvasRenderer implements Renderer {\n private canvas: HTMLCanvasElement;\n private ctx: CanvasRenderingContext2D;\n private engine: IEngine;\n private options: CanvasRendererOptions;\n \n private rootNode: VirtualNode | null = null;\n private nodes = new Map<string, VirtualNode>();\n \n private eventManager: CanvasEventManager;\n private inputOverlay: InputOverlay;\n private accessibilityLayer: AccessibilityLayer;\n \n private rafId: number | null = null;\n private needsRedraw = false;\n \n private frameCount = 0;\n private lastFrameTime = 0;\n\n constructor(canvas: HTMLCanvasElement, engine: IEngine, options?: Partial<CanvasRendererOptions>) {\n this.canvas = canvas;\n this.engine = engine;\n this.options = { ...DEFAULT_OPTIONS, ...options };\n\n // Get context\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Failed to get 2D context from canvas\");\n }\n this.ctx = ctx;\n\n // Setup HiDPI\n this.setupHiDPI();\n\n // Initialize subsystems\n this.eventManager = new CanvasEventManager(canvas, engine);\n this.inputOverlay = new InputOverlay(\n (canvas as any).parentElement || (typeof document !== \"undefined\" ? document.body : null)\n );\n this.accessibilityLayer = new AccessibilityLayer(\n (canvas as any).parentElement || (typeof document !== \"undefined\" ? document.body : null),\n this.options.enableAccessibility || false\n );\n\n // Listen for redraw requests from event manager\n this.canvas.addEventListener(\"hypen:redraw\", () => this.scheduleRedraw());\n\n // Don't schedule initial render - wait for patches\n }\n\n /**\n * Setup HiDPI rendering\n */\n private setupHiDPI(): void {\n const dpr = this.options.devicePixelRatio || 1;\n const rect = this.canvas.getBoundingClientRect();\n\n this.canvas.width = rect.width * dpr;\n this.canvas.height = rect.height * dpr;\n\n this.ctx.scale(dpr, dpr);\n\n // Update canvas display size\n this.canvas.style.width = `${rect.width}px`;\n this.canvas.style.height = `${rect.height}px`;\n }\n\n /**\n * Apply patches from engine\n */\n applyPatches(patches: Patch[]): void {\n for (const patch of patches) {\n this.applyPatch(patch);\n }\n\n // Update accessibility layer\n if (this.rootNode) {\n this.accessibilityLayer.syncTree(this.rootNode);\n }\n\n // Schedule redraw\n this.scheduleRedraw();\n }\n\n /**\n * Apply single patch\n */\n private applyPatch(patch: Patch): void {\n switch (patch.type) {\n case \"create\":\n this.onCreate(patch.id!, patch.elementType!, patch.props || {});\n break;\n\n case \"setProp\":\n this.onSetProp(patch.id!, patch.name!, patch.value);\n break;\n\n case \"setText\":\n this.onSetText(patch.id!, patch.text!);\n break;\n\n case \"insert\":\n this.onInsert(patch.parentId!, patch.id!, patch.beforeId);\n break;\n\n case \"move\":\n this.onMove(patch.parentId!, patch.id!, patch.beforeId);\n break;\n\n case \"remove\":\n this.onRemove(patch.id!);\n break;\n }\n }\n\n /**\n * Create new virtual node\n */\n private onCreate(id: string, elementType: string, props: Record<string, any>): void {\n const node: VirtualNode = {\n id,\n type: elementType,\n props: props instanceof Map ? Object.fromEntries(props) : props,\n children: [],\n parent: null,\n visible: true,\n opacity: parseFloat(props.opacity) || 1,\n clickable: elementType === \"button\" || !!props.onclick,\n hoverable: true,\n focusable: elementType === \"input\" || elementType === \"textarea\" || elementType === \"button\",\n focused: false,\n hovered: false,\n };\n\n this.nodes.set(id, node);\n }\n\n /**\n * Set property on node\n */\n private onSetProp(id: string, name: string, value: any): void {\n const node = this.nodes.get(id);\n if (!node) return;\n\n node.props[name] = value;\n\n // Update computed properties\n if (name === \"visible\") {\n node.visible = !!value;\n }\n if (name === \"opacity\") {\n node.opacity = parseFloat(value) || 1;\n }\n\n // Update accessibility\n this.accessibilityLayer.updateNode(node);\n }\n\n /**\n * Set text on node\n */\n private onSetText(id: string, text: string): void {\n const node = this.nodes.get(id);\n if (!node) return;\n\n node.props[0] = text;\n\n // Update accessibility\n this.accessibilityLayer.updateNode(node);\n }\n\n /**\n * Insert node into tree\n */\n private onInsert(parentId: string, id: string, beforeId?: string): void {\n const child = this.nodes.get(id);\n if (!child) return;\n\n // Check if this is setting the root node (parent_id === id === \"root\" or similar)\n if (parentId === \"root\" && id === \"root\") {\n this.rootNode = child;\n this.eventManager.setRootNode(child);\n return;\n }\n\n // Otherwise find the parent node\n const parent = this.nodes.get(parentId);\n if (!parent) {\n // If parent is \"root\", this might be the first real root node\n if (parentId === \"root\") {\n this.rootNode = child;\n this.eventManager.setRootNode(child);\n }\n return;\n }\n\n // Insert child into parent\n child.parent = parent;\n\n if (beforeId) {\n const beforeIndex = parent.children.findIndex((c) => c.id === beforeId);\n if (beforeIndex >= 0) {\n parent.children.splice(beforeIndex, 0, child);\n } else {\n parent.children.push(child);\n }\n } else {\n parent.children.push(child);\n }\n }\n\n /**\n * Move node in tree\n */\n private onMove(parentId: string, id: string, beforeId?: string): void {\n // Remove from old parent\n const node = this.nodes.get(id);\n if (!node || !node.parent) return;\n\n const oldParent = node.parent;\n const oldIndex = oldParent.children.indexOf(node);\n if (oldIndex >= 0) {\n oldParent.children.splice(oldIndex, 1);\n }\n\n // Insert into new location\n this.onInsert(parentId, id, beforeId);\n }\n\n /**\n * Remove node from tree\n */\n private onRemove(id: string): void {\n const node = this.nodes.get(id);\n if (!node) return;\n\n // Remove from parent\n if (node.parent) {\n const index = node.parent.children.indexOf(node);\n if (index >= 0) {\n node.parent.children.splice(index, 1);\n }\n }\n\n // Remove from root\n if (this.rootNode === node) {\n this.rootNode = null;\n this.eventManager.setRootNode(null);\n }\n\n // Remove from nodes map\n this.nodes.delete(id);\n }\n\n /**\n * Schedule redraw\n */\n private scheduleRedraw(): void {\n if (this.rafId !== null) return;\n\n // Use requestAnimationFrame if available (browser), otherwise render immediately (tests)\n if (typeof requestAnimationFrame !== \"undefined\") {\n this.rafId = requestAnimationFrame(() => {\n this.render();\n this.rafId = null;\n });\n } else {\n // In non-browser environments (tests), render immediately\n this.render();\n }\n }\n\n /**\n * Main render function\n */\n private render(): void {\n const startTime = performance.now();\n\n // Clear canvas\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\n // Draw background\n if (this.options.backgroundColor) {\n this.ctx.fillStyle = this.options.backgroundColor;\n this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);\n }\n\n // Layout and paint\n if (this.rootNode) {\n // Compute layout\n const dpr = this.options.devicePixelRatio || 1;\n computeLayout(\n this.ctx,\n this.rootNode,\n this.canvas.width / dpr,\n this.canvas.height / dpr\n );\n\n // Paint\n paintNode(this.ctx, this.rootNode);\n\n // Debug: show layout bounds\n if (this.options.showLayoutBounds) {\n this.drawLayoutBounds(this.rootNode);\n }\n }\n\n // Performance logging\n if (this.options.logPerformance) {\n const elapsed = performance.now() - startTime;\n this.frameCount++;\n if (performance.now() - this.lastFrameTime > 1000) {\n log.debug(`Canvas FPS: ${this.frameCount}, Last frame: ${elapsed.toFixed(2)}ms`);\n this.frameCount = 0;\n this.lastFrameTime = performance.now();\n }\n }\n }\n\n /**\n * Draw layout bounds for debugging\n */\n private drawLayoutBounds(node: VirtualNode): void {\n if (!node.layout) return;\n\n const layout = node.layout;\n\n this.ctx.strokeStyle = \"#ff0000\";\n this.ctx.lineWidth = 1;\n this.ctx.strokeRect(layout.x, layout.y, layout.width, layout.height);\n\n for (const child of node.children) {\n this.drawLayoutBounds(child);\n }\n }\n\n /**\n * Get node by ID\n */\n getNode(id: string): VirtualNode | undefined {\n return this.nodes.get(id);\n }\n\n /**\n * Clear renderer\n */\n clear(): void {\n this.rootNode = null;\n this.nodes.clear();\n this.eventManager.setRootNode(null);\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n }\n\n /**\n * Register custom painter\n */\n registerPainter(type: string, painter: PainterFunction): void {\n registerPainter(type, painter);\n }\n\n /**\n * Set renderer options\n */\n setOptions(options: Partial<CanvasRendererOptions>): void {\n this.options = { ...this.options, ...options };\n this.accessibilityLayer.setEnabled(this.options.enableAccessibility || false);\n }\n\n /**\n * Destroy renderer\n */\n destroy(): void {\n if (this.rafId !== null) {\n cancelAnimationFrame(this.rafId);\n }\n this.eventManager.destroy();\n this.accessibilityLayer.destroy();\n }\n}\n\n",
|
|
66
|
+
"/**\n * Canvas Renderer\n *\n * Main renderer class that orchestrates layout, painting, and events\n */\n\nimport type { Renderer } from \"@hypen-space/core/renderer\";\nimport type { Patch } from \"@hypen-space/core/types\";\nimport { frameworkLoggers } from \"@hypen-space/core/logger\";\n\nconst log = frameworkLoggers.canvas;\n\n// Interface for the engine that canvas renderer needs\ninterface IEngine {\n dispatchAction(name: string, payload?: any): void;\n}\nimport type {\n VirtualNode,\n CanvasRendererOptions,\n PainterFunction,\n LayoutFunction,\n} from \"./types.js\";\nimport { computeLayout } from \"./layout.js\";\nimport { paintNode, registerPainter } from \"./paint.js\";\nimport { CanvasEventManager } from \"./events.js\";\nimport { InputOverlay } from \"./input.js\";\nimport { AccessibilityLayer } from \"./accessibility.js\";\nimport { findNodeById } from \"./utils.js\";\n\nconst DEFAULT_OPTIONS: CanvasRendererOptions = {\n devicePixelRatio: typeof window !== \"undefined\" ? window.devicePixelRatio || 1 : 1,\n backgroundColor: \"#ffffff\",\n enableAccessibility: true,\n enableHitTesting: true,\n enableInputOverlay: true,\n enableDirtyRects: false,\n enableLayerCaching: false,\n maxLayerCacheSize: 10,\n showLayoutBounds: false,\n showDirtyRects: false,\n logPerformance: false,\n};\n\n/**\n * Canvas Renderer\n */\nexport class CanvasRenderer implements Renderer {\n private canvas: HTMLCanvasElement;\n private ctx: CanvasRenderingContext2D;\n private engine: IEngine;\n private options: CanvasRendererOptions;\n \n private rootNode: VirtualNode | null = null;\n private nodes = new Map<string, VirtualNode>();\n \n private eventManager: CanvasEventManager;\n private inputOverlay: InputOverlay;\n private accessibilityLayer: AccessibilityLayer;\n \n private rafId: number | null = null;\n private needsRedraw = false;\n \n private frameCount = 0;\n private lastFrameTime = 0;\n\n constructor(canvas: HTMLCanvasElement, engine: IEngine, options?: Partial<CanvasRendererOptions>) {\n this.canvas = canvas;\n this.engine = engine;\n this.options = { ...DEFAULT_OPTIONS, ...options };\n\n // Get context\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Failed to get 2D context from canvas\");\n }\n this.ctx = ctx;\n\n // Setup HiDPI\n this.setupHiDPI();\n\n // Initialize subsystems\n this.eventManager = new CanvasEventManager(canvas, engine);\n this.inputOverlay = new InputOverlay(\n (canvas as any).parentElement || (typeof document !== \"undefined\" ? document.body : null)\n );\n this.accessibilityLayer = new AccessibilityLayer(\n (canvas as any).parentElement || (typeof document !== \"undefined\" ? document.body : null),\n this.options.enableAccessibility || false\n );\n\n // Listen for redraw requests from event manager\n this.canvas.addEventListener(\"hypen:redraw\", () => this.scheduleRedraw());\n\n // Don't schedule initial render - wait for patches\n }\n\n /**\n * Setup HiDPI rendering\n */\n private setupHiDPI(): void {\n const dpr = this.options.devicePixelRatio || 1;\n const rect = this.canvas.getBoundingClientRect();\n\n this.canvas.width = rect.width * dpr;\n this.canvas.height = rect.height * dpr;\n\n this.ctx.scale(dpr, dpr);\n\n // Update canvas display size\n this.canvas.style.width = `${rect.width}px`;\n this.canvas.style.height = `${rect.height}px`;\n }\n\n /**\n * Apply patches from engine\n */\n applyPatches(patches: Patch[]): void {\n for (const patch of patches) {\n this.applyPatch(patch);\n }\n\n // Update accessibility layer\n if (this.rootNode) {\n this.accessibilityLayer.syncTree(this.rootNode);\n }\n\n // Schedule redraw\n this.scheduleRedraw();\n }\n\n /**\n * Apply single patch\n */\n private applyPatch(patch: Patch): void {\n switch (patch.type) {\n case \"create\":\n this.onCreate(patch.id!, patch.elementType!, patch.props || {});\n break;\n\n case \"setProp\":\n this.onSetProp(patch.id!, patch.name!, patch.value);\n break;\n\n case \"removeProp\":\n this.onRemoveProp(patch.id!, patch.name!);\n break;\n\n case \"setText\":\n this.onSetText(patch.id!, patch.text!);\n break;\n\n case \"insert\":\n this.onInsert(patch.parentId!, patch.id!, patch.beforeId);\n break;\n\n case \"move\":\n this.onMove(patch.parentId!, patch.id!, patch.beforeId);\n break;\n\n case \"remove\":\n this.onRemove(patch.id!);\n break;\n }\n }\n\n /**\n * Create new virtual node\n */\n private onCreate(id: string, elementType: string, props: Record<string, any>): void {\n const node: VirtualNode = {\n id,\n type: elementType,\n props: props instanceof Map ? Object.fromEntries(props) : props,\n children: [],\n parent: null,\n visible: true,\n opacity: parseFloat(props.opacity) || 1,\n clickable: elementType === \"button\" || !!props.onclick,\n hoverable: true,\n focusable: elementType === \"input\" || elementType === \"textarea\" || elementType === \"button\",\n focused: false,\n hovered: false,\n };\n\n this.nodes.set(id, node);\n }\n\n /**\n * Set property on node\n */\n private onSetProp(id: string, name: string, value: any): void {\n const node = this.nodes.get(id);\n if (!node) return;\n\n node.props[name] = value;\n\n // Update computed properties\n if (name === \"visible\") {\n node.visible = !!value;\n }\n if (name === \"opacity\") {\n node.opacity = parseFloat(value) || 1;\n }\n\n // Update accessibility\n this.accessibilityLayer.updateNode(node);\n }\n\n /**\n * Remove a property from a node\n */\n private onRemoveProp(id: string, name: string): void {\n const node = this.nodes.get(id);\n if (!node) return;\n\n delete node.props[name];\n\n if (name === \"visible\") {\n node.visible = true;\n }\n if (name === \"opacity\") {\n node.opacity = 1;\n }\n\n this.accessibilityLayer.updateNode(node);\n }\n\n /**\n * Set text on node\n */\n private onSetText(id: string, text: string): void {\n const node = this.nodes.get(id);\n if (!node) return;\n\n node.props[0] = text;\n\n // Update accessibility\n this.accessibilityLayer.updateNode(node);\n }\n\n /**\n * Insert node into tree\n */\n private onInsert(parentId: string, id: string, beforeId?: string): void {\n const child = this.nodes.get(id);\n if (!child) return;\n\n // Check if this is setting the root node (parent_id === id === \"root\" or similar)\n if (parentId === \"root\" && id === \"root\") {\n this.rootNode = child;\n this.eventManager.setRootNode(child);\n return;\n }\n\n // Otherwise find the parent node\n const parent = this.nodes.get(parentId);\n if (!parent) {\n // If parent is \"root\", this might be the first real root node\n if (parentId === \"root\") {\n this.rootNode = child;\n this.eventManager.setRootNode(child);\n }\n return;\n }\n\n // Insert child into parent\n child.parent = parent;\n\n if (beforeId) {\n const beforeIndex = parent.children.findIndex((c) => c.id === beforeId);\n if (beforeIndex >= 0) {\n parent.children.splice(beforeIndex, 0, child);\n } else {\n parent.children.push(child);\n }\n } else {\n parent.children.push(child);\n }\n }\n\n /**\n * Move node in tree\n */\n private onMove(parentId: string, id: string, beforeId?: string): void {\n // Remove from old parent\n const node = this.nodes.get(id);\n if (!node || !node.parent) return;\n\n const oldParent = node.parent;\n const oldIndex = oldParent.children.indexOf(node);\n if (oldIndex >= 0) {\n oldParent.children.splice(oldIndex, 1);\n }\n\n // Insert into new location\n this.onInsert(parentId, id, beforeId);\n }\n\n /**\n * Remove node from tree\n */\n private onRemove(id: string): void {\n const node = this.nodes.get(id);\n if (!node) return;\n\n // Remove from parent\n if (node.parent) {\n const index = node.parent.children.indexOf(node);\n if (index >= 0) {\n node.parent.children.splice(index, 1);\n }\n }\n\n // Remove from root\n if (this.rootNode === node) {\n this.rootNode = null;\n this.eventManager.setRootNode(null);\n }\n\n // Remove from nodes map\n this.nodes.delete(id);\n }\n\n /**\n * Schedule redraw\n */\n private scheduleRedraw(): void {\n if (this.rafId !== null) return;\n\n // Use requestAnimationFrame if available (browser), otherwise render immediately (tests)\n if (typeof requestAnimationFrame !== \"undefined\") {\n this.rafId = requestAnimationFrame(() => {\n this.render();\n this.rafId = null;\n });\n } else {\n // In non-browser environments (tests), render immediately\n this.render();\n }\n }\n\n /**\n * Main render function\n */\n private render(): void {\n const startTime = performance.now();\n\n // Clear canvas\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\n // Draw background\n if (this.options.backgroundColor) {\n this.ctx.fillStyle = this.options.backgroundColor;\n this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);\n }\n\n // Layout and paint\n if (this.rootNode) {\n // Compute layout\n const dpr = this.options.devicePixelRatio || 1;\n computeLayout(\n this.ctx,\n this.rootNode,\n this.canvas.width / dpr,\n this.canvas.height / dpr\n );\n\n // Paint\n paintNode(this.ctx, this.rootNode);\n\n // Debug: show layout bounds\n if (this.options.showLayoutBounds) {\n this.drawLayoutBounds(this.rootNode);\n }\n }\n\n // Performance logging\n if (this.options.logPerformance) {\n const elapsed = performance.now() - startTime;\n this.frameCount++;\n if (performance.now() - this.lastFrameTime > 1000) {\n log.debug(`Canvas FPS: ${this.frameCount}, Last frame: ${elapsed.toFixed(2)}ms`);\n this.frameCount = 0;\n this.lastFrameTime = performance.now();\n }\n }\n }\n\n /**\n * Draw layout bounds for debugging\n */\n private drawLayoutBounds(node: VirtualNode): void {\n if (!node.layout) return;\n\n const layout = node.layout;\n\n this.ctx.strokeStyle = \"#ff0000\";\n this.ctx.lineWidth = 1;\n this.ctx.strokeRect(layout.x, layout.y, layout.width, layout.height);\n\n for (const child of node.children) {\n this.drawLayoutBounds(child);\n }\n }\n\n /**\n * Get node by ID\n */\n getNode(id: string): VirtualNode | undefined {\n return this.nodes.get(id);\n }\n\n /**\n * Clear renderer\n */\n clear(): void {\n this.rootNode = null;\n this.nodes.clear();\n this.eventManager.setRootNode(null);\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n }\n\n /**\n * Register custom painter\n */\n registerPainter(type: string, painter: PainterFunction): void {\n registerPainter(type, painter);\n }\n\n /**\n * Set renderer options\n */\n setOptions(options: Partial<CanvasRendererOptions>): void {\n this.options = { ...this.options, ...options };\n this.accessibilityLayer.setEnabled(this.options.enableAccessibility || false);\n }\n\n /**\n * Destroy renderer\n */\n destroy(): void {\n if (this.rafId !== null) {\n cancelAnimationFrame(this.rafId);\n }\n this.eventManager.destroy();\n this.accessibilityLayer.destroy();\n }\n}\n\n",
|
|
67
67
|
"/**\n * @hypen-space/web - Hypen Web Renderers\n *\n * Browser-only package providing DOM and Canvas rendering for Hypen applications.\n * This entry point is WASM-free — it only contains renderers and the remote UI\n * embed component.\n *\n * For client-side rendering (with WASM engine), use \"@hypen-space/web/client\":\n *\n * ```typescript\n * import { render } from \"@hypen-space/web/client\";\n * await render(\"Counter\", \"#app\");\n * ```\n *\n * For remote UI (no WASM needed in the browser):\n *\n * ```typescript\n * import { DOMRenderer } from \"@hypen-space/web\";\n * ```\n */\n\n// ============================================================================\n// DOM RENDERER\n// ============================================================================\n\nexport { DOMRenderer } from \"./dom/renderer.js\";\nexport { ComponentRegistry } from \"./dom/components/index.js\";\nexport { ApplicatorRegistry } from \"./dom/applicators/index.js\";\nexport { EventManager } from \"./dom/events.js\";\nexport { RerenderTracker, type DebugConfig, defaultDebugConfig } from \"./dom/debug.js\";\n\n// HypenApp - Embed remote Hypen apps\nexport { hypenAppHandler, disconnectHypenApp } from \"./dom/components/hypenapp.js\";\n\n// ============================================================================\n// CANVAS RENDERER\n// ============================================================================\n\nexport { CanvasRenderer } from \"./canvas/renderer.js\";\nexport { canvasHandler, canvasApplicators } from \"./dom/canvas/index.js\";\n"
|
|
68
68
|
],
|
|
69
|
-
"mappings": "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",
|
|
70
|
-
"debugId": "
|
|
69
|
+
"mappings": "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",
|
|
70
|
+
"debugId": "BCCCE4DA4D43838E64756E2164756E21",
|
|
71
71
|
"names": []
|
|
72
72
|
}
|