apprun 3.35.0 → 3.36.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +134 -16
  3. package/WHATSNEW.md +28 -12
  4. package/apprun-book.jpg +0 -0
  5. package/apprun.d.ts +9 -6
  6. package/cli/app.js +29 -0
  7. package/cli/index.html +13 -0
  8. package/{apprun-cli.js → cli/index.js} +8 -14
  9. package/dist/apprun-dev-tools.js +1 -2
  10. package/dist/apprun-dev-tools.js.map +1 -1
  11. package/dist/apprun-html.esm.js +7 -7
  12. package/dist/apprun-html.esm.js.map +1 -1
  13. package/dist/apprun-html.js +1 -1
  14. package/dist/apprun-html.js.map +1 -1
  15. package/dist/apprun-play-html.esm.js +7 -7
  16. package/dist/apprun-play-html.esm.js.map +1 -1
  17. package/dist/apprun-play.js +1 -1
  18. package/dist/apprun-play.js.map +1 -1
  19. package/dist/apprun.esm.js +1 -1
  20. package/dist/apprun.esm.js.map +1 -1
  21. package/dist/apprun.js +1 -1
  22. package/dist/apprun.js.map +1 -1
  23. package/esm/app.js +60 -12
  24. package/esm/app.js.map +1 -1
  25. package/esm/apprun-dev-tools.js +1 -7
  26. package/esm/apprun-dev-tools.js.map +1 -1
  27. package/esm/apprun-html.js +8 -4
  28. package/esm/apprun-html.js.map +1 -1
  29. package/esm/apprun.js +81 -17
  30. package/esm/apprun.js.map +1 -1
  31. package/esm/component.js +60 -19
  32. package/esm/component.js.map +1 -1
  33. package/esm/decorator.js +22 -5
  34. package/esm/decorator.js.map +1 -1
  35. package/esm/directive.js +64 -13
  36. package/esm/directive.js.map +1 -1
  37. package/esm/router.js +263 -22
  38. package/esm/router.js.map +1 -1
  39. package/esm/type-utils.js +91 -0
  40. package/esm/type-utils.js.map +1 -0
  41. package/esm/types.js +32 -11
  42. package/esm/types.js.map +1 -1
  43. package/esm/vdom-my-new.js +329 -0
  44. package/esm/vdom-my-new.js.map +1 -0
  45. package/esm/vdom-my-prop-attr.js +227 -0
  46. package/esm/vdom-my-prop-attr.js.map +1 -0
  47. package/esm/vdom-my.js +77 -88
  48. package/esm/vdom-my.js.map +1 -1
  49. package/esm/version.js +15 -0
  50. package/esm/version.js.map +1 -0
  51. package/esm/web-component.js +30 -10
  52. package/esm/web-component.js.map +1 -1
  53. package/index.html +1 -1
  54. package/jest.config.js +3 -8
  55. package/jest.setup.js +29 -3
  56. package/jsx-runtime.js +1 -1
  57. package/jsx-runtime.js.map +1 -1
  58. package/package.json +7 -7
  59. package/src/app.ts +58 -12
  60. package/src/apprun-dev-tools.tsx +1 -7
  61. package/src/apprun-html.ts +8 -4
  62. package/src/apprun.ts +97 -20
  63. package/src/component.ts +62 -20
  64. package/src/decorator.ts +23 -6
  65. package/src/directive.ts +64 -13
  66. package/src/router.ts +282 -20
  67. package/src/type-utils.ts +130 -0
  68. package/src/types.ts +33 -12
  69. package/src/vdom-my-new.ts +311 -0
  70. package/src/vdom-my-prop-attr.ts +241 -0
  71. package/src/vdom-my.ts +82 -71
  72. package/src/version.ts +16 -0
  73. package/src/web-component.ts +31 -11
  74. package/cli/export.js +0 -92
  75. package/cli/import.js +0 -68
@@ -1 +1 @@
1
- {"version":3,"file":"dist/apprun-html.js","mappings":"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","sources":["webpack://apprun/webpack/universalModuleDefinition","webpack://apprun/./src/app.ts","webpack://apprun/./src/web-component.ts","webpack://apprun/./src/decorator.ts","webpack://apprun/./src/component.ts","webpack://apprun/./src/router.ts","webpack://apprun/./src/apprun.ts","webpack://apprun/./src/directive.ts","webpack://apprun/./src/vdom-my.ts","webpack://apprun/./node_modules/lit-html/directive.js","webpack://apprun/./node_modules/lit-html/lit-html.js","webpack://apprun/webpack/bootstrap","webpack://apprun/webpack/runtime/define property getters","webpack://apprun/webpack/runtime/global","webpack://apprun/webpack/runtime/hasOwnProperty shorthand","webpack://apprun/webpack/runtime/make namespace object","webpack://apprun/./node_modules/@lit/reactive-element/css-tag.js","webpack://apprun/./node_modules/@lit/reactive-element/reactive-element.js","webpack://apprun/./node_modules/lit-element/lit-element.js","webpack://apprun/./node_modules/lit-html/directives/unsafe-html.js","webpack://apprun/./src/vdom-lit-html.ts","webpack://apprun/./src/apprun-html.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"apprun\"] = factory();\n\telse\n\t\troot[\"apprun\"] = factory();\n})(this, () => {\nreturn ","/**\n * Core AppRun application class and singleton instance\n *\n * This file provides:\n * 1. App class - The core event system implementation with pub/sub capabilities\n * - on(): Subscribe to events\n * - off(): Unsubscribe from events\n * - run(): Publish events synchronously\n * - runAsync(): Publish events asynchronously\n * - query(): Alias for runAsync\n *\n * 2. Default app singleton - Global event bus instance\n * - Created once and reused across the application\n * - Stored in global scope (window/global)\n * - Version tracked to prevent duplicate instances\n *\n * Usage:\n * ```ts\n * // Subscribe to events\n * app.on('event-name', (state, ...args) => {\n * // Handle event\n * });\n *\n * // Publish events\n * app.run('event-name', ...args);\n * ```\n */\n\nimport { EventOptions } from './types'\n\nexport class App {\n\n _events: { [key: string]: Array<{ fn: (...args: any[]) => any, options: EventOptions }> };\n\n public start: any;\n public h: any;\n public createElement: any;\n public render: any;\n public Fragment: any;\n public webComponent: any;\n public safeHTML: any;\n public use_render: any;\n public use_react: any;\n public route: any;\n\n public version: string;\n\n constructor() {\n this._events = {} as { [key: string]: Array<{ fn: (...args: any[]) => any, options: EventOptions }> };\n }\n\n on(name: string, fn: (...args: any[]) => any, options: EventOptions = {}): void {\n this._events[name] = this._events[name] || [];\n this._events[name].push({ fn, options });\n }\n\n off(name: string, fn: (...args: any[]) => any): void {\n const subscribers = this._events[name] || [];\n\n this._events[name] = subscribers.filter((sub) => sub.fn !== fn);\n }\n\n find(name: string): any {\n return this._events[name];\n }\n\n run(name: string, ...args: any[]): number {\n const subscribers = this.getSubscribers(name, this._events);\n console.assert(subscribers && subscribers.length > 0, 'No subscriber for event: ' + name);\n subscribers.forEach((sub) => {\n const { fn, options } = sub;\n if (options.delay) {\n this.delay(name, fn, args, options);\n } else {\n Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);\n }\n return !sub.options.once;\n });\n\n return subscribers.length;\n }\n\n once(name: string, fn: (...args: any[]) => any, options: EventOptions = {}): void {\n this.on(name, fn, { ...options, once: true });\n }\n\n private delay(name: string, fn: (...args: any[]) => any, args: any[], options: EventOptions): void {\n if (options._t) clearTimeout(options._t);\n options._t = setTimeout(() => {\n clearTimeout(options._t);\n Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);\n }, options.delay);\n }\n\n runAsync(name: string, ...args: any[]): Promise<any[]> {\n const subscribers = this.getSubscribers(name, this._events);\n console.assert(subscribers && subscribers.length > 0, 'No subscriber for event: ' + name);\n const promises = subscribers.map(sub => {\n const { fn, options } = sub;\n return Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);\n });\n return Promise.all(promises);\n }\n\n query(name: string, ...args: any[]): Promise<any[]> {\n return this.runAsync(name, ...args);\n }\n\n private getSubscribers(name: string, events: { [key: string]: Array<{ fn: (...args: any[]) => any, options: EventOptions }> }): Array<{ fn: (...args: any[]) => any, options: EventOptions }> {\n const subscribers = events[name] || [];\n\n // Update the list of subscribers by pulling out those which will run once.\n // We must do this update prior to running any of the events in case they\n // cause additional events to be turned off or on.\n events[name] = subscribers.filter((sub) => {\n return !sub.options.once;\n });\n Object.keys(events).filter(evt => evt.endsWith('*') && name.startsWith(evt.replace('*', '')))\n .sort((a, b) => b.length - a.length)\n .forEach(evt => subscribers.push(...events[evt].map(sub => ({\n ...sub,\n options: { ...sub.options, event: name }\n }))));\n return subscribers;\n }\n}\n\nconst AppRunVersions = 'AppRun-3.3.11';\nlet _app: App;\nconst root = (typeof window !== 'undefined' ? window :\n typeof global !== 'undefined' ? global :\n typeof self !== 'undefined' ? self : {}) as any;\n\nif (root.app && root._AppRunVersions) {\n _app = root.app;\n} else {\n _app = new App();\n root.app = _app;\n root._AppRunVersions = AppRunVersions;\n}\nexport default _app;\n","/**\n * Web Components Integration\n * \n * This file enables using AppRun components as Web Components:\n * 1. Custom Element Creation\n * - Converts AppRun components to custom elements\n * - Handles lifecycle (connected, disconnected, etc)\n * - Manages shadow DOM and light DOM rendering\n * \n * 2. Property/Attribute Sync\n * - Observes attribute changes\n * - Updates component state automatically\n * - Handles camelCase/kebab-case conversion\n * - Supports complex property types\n * \n * 3. Event Handling\n * - Proxies events between component and element\n * - Supports both global and local events\n * - Maintains proper event bubbling\n * \n * Usage:\n * ```ts\n * // Register web component\n * @customElement('my-element')\n * class MyComponent extends Component {\n * // Regular AppRun component code\n * }\n * \n * // Use in HTML\n * <my-element name=\"value\"></my-element>\n * ```\n */\n\ndeclare var customElements;\n\nexport type CustomElementOptions = {\n render?: boolean;\n shadow?: boolean;\n history?: boolean;\n global_event?: boolean;\n observedAttributes?: string[];\n};\n\nexport const customElement = (componentClass, options: CustomElementOptions = {}) => class CustomElement extends HTMLElement {\n private _shadowRoot;\n private _component;\n private _attrMap: (arg0: string) => string;\n public on;\n public run;\n constructor() {\n super();\n }\n get component() { return this._component; }\n get state() { return this._component.state; }\n\n static get observedAttributes() {\n // attributes need to be set to lowercase in order to get observed\n return (options.observedAttributes || []).map(attr => attr.toLowerCase());\n }\n\n connectedCallback() {\n if (this.isConnected && !this._component) {\n const opts = options || {};\n this._shadowRoot = opts.shadow ? this.attachShadow({ mode: 'open' }) : this;\n const observedAttributes = (opts.observedAttributes || [])\n\n const attrMap = observedAttributes.reduce((map, name) => {\n const lc = name.toLowerCase()\n if (lc !== name) {\n map[lc] = name\n }\n return map\n }, {})\n this._attrMap = (name: string) : string => attrMap[name] || name\n\n const props = {};\n Array.from(this.attributes).forEach(item => props[this._attrMap(item.name)] = item.value);\n\n // add getters/ setters to allow observation on observedAttributes\n observedAttributes.forEach(name => {\n if (this[name] !== undefined) props[name] = this[name];\n Object.defineProperty(this, name, {\n get(): any {\n return props[name];\n },\n set(this: CustomElement, value: unknown) {\n // trigger change event\n this.attributeChangedCallback(name, props[name], value)\n },\n configurable: true,\n enumerable: true\n });\n })\n\n requestAnimationFrame(() => {\n const children = this.children ? Array.from(this.children) : [];\n // children.forEach(el => el.parentElement.removeChild(el));\n this._component = new componentClass({ ...props, children }).mount(this._shadowRoot, opts);\n // attach props to component\n this._component._props = props;\n // expose dispatchEvent\n this._component.dispatchEvent = this.dispatchEvent.bind(this)\n if (this._component.mounted) {\n const new_state = this._component.mounted(props, children, this._component.state);\n if (typeof new_state !== 'undefined') this._component.state = new_state;\n }\n this.on = this._component.on.bind(this._component);\n this.run = this._component.run.bind(this._component);\n if (!(opts.render === false)) this._component.run('.');\n });\n }\n }\n\n disconnectedCallback() {\n this._component?.unload?.();\n this._component?.unmount?.();\n this._component = null;\n }\n\n attributeChangedCallback(name: string, oldValue: unknown, value: unknown) {\n if (this._component) {\n // camelCase attributes arrive only in lowercase\n const mappedName = this._attrMap(name);\n // store the new property/ attribute\n this._component._props[mappedName] = value;\n this._component.run('attributeChanged', mappedName, oldValue, value);\n\n if (value !== oldValue && !(options.render === false)) {\n window.requestAnimationFrame(() => {\n // re-render state with new combined props on next animation frame\n this._component.run('.')\n })\n }\n }\n }\n}\n\nexport default (name: string, componentClass, options?: CustomElementOptions) => {\n (typeof customElements !== 'undefined') && customElements.define(name, customElement(componentClass, options))\n}\n","import webComponent, { CustomElementOptions } from './web-component';\n\n/**\n * TypeScript Decorators for AppRun Components\n * \n * This file provides decorators that enable:\n * 1. Event Handler Registration\n * - @on(): Subscribe to events with options\n * - @update(): Define state updates with metadata\n * \n * 2. Web Component Integration\n * - @customElement(): Register as custom element with options\n * - Handles shadow DOM and attribute observation\n * \n * 3. Metadata Management\n * - Custom Reflect implementation for decorator metadata\n * - Stores event handler and update metadata\n * - Supports runtime reflection for dynamic behavior\n * \n * Usage:\n * ```ts\n * @customElement('my-element')\n * class MyComponent extends Component {\n * @on('event') \n * handler(state, ...args) {\n * // Handle event\n * }\n * \n * @update('event') \n * updater(state, ...args) {\n * // Update state\n * }\n * }\n * ```\n */\n\n// tslint:disable:no-invalid-this\nexport const Reflect = {\n\n meta: new WeakMap(),\n\n defineMetadata(metadataKey, metadataValue, target) {\n if (!this.meta.has(target)) this.meta.set(target, {});\n this.meta.get(target)[metadataKey] = metadataValue;\n },\n\n getMetadataKeys(target) {\n target = Object.getPrototypeOf(target);\n return this.meta.get(target) ? Object.keys(this.meta.get(target)) : [];\n },\n\n getMetadata(metadataKey, target) {\n target = Object.getPrototypeOf(target);\n return this.meta.get(target) ? this.meta.get(target)[metadataKey] : null;\n }\n}\n\nexport function update<E=string>(events?: E, options: any = {}) {\n return (target: any, key: string, descriptor: any) => {\n const name = events ? events.toString() : key;\n Reflect.defineMetadata(`apprun-update:${name}`,\n { name, key, options }, target);\n return descriptor;\n }\n}\n\nexport function on<E = string>(events?: E, options: any = {}) {\n return function (target: any, key: string) {\n const name = events ? events.toString() : key;\n Reflect.defineMetadata(`apprun-update:${name}`,\n { name, key, options }, target)\n }\n}\n\nexport function customElement(name: string, options?: CustomElementOptions) {\n return function _customElement<T extends { new(...args: any[]): {} }>(constructor: T) {\n webComponent(name, constructor, options);\n return constructor;\n }\n}\n","/**\r\n * AppRun Component System Implementation\r\n *\r\n * This file provides the Component class which is the foundation for:\r\n * 1. State Management\r\n * - Maintains component state\r\n * - Handles state updates\r\n * - Supports state history\r\n *\r\n * 2. View Rendering\r\n * - Renders virtual DOM to real DOM\r\n * - Handles component lifecycle (mounted, rendered, unload)\r\n * - Supports shadow DOM and web components\r\n *\r\n * 3. Event Handling\r\n * - Local and global event subscription\r\n * - Event handler registration via decorators\r\n * - Action to state updates\r\n *\r\n * Usage:\r\n * ```ts\r\n * class MyComponent extends Component {\r\n * state = // Initial state\r\n * view = state => // Return virtual DOM\r\n * update = {\r\n * 'event': (state, ...args) => // Return new state\r\n * }\r\n * }\r\n *\r\n * // Mount component\r\n * new MyComponent().mount('element-id');\r\n * ```\r\n */\r\n\r\nimport app, { App } from './app';\r\nimport { Reflect } from './decorator'\r\nimport { View, Update, ActionDef, ActionOptions, MountOptions, EventOptions } from './types';\r\nimport directive from './directive';\r\n\r\nconst componentCache = new Map();\r\nif (!app.find('get-components')) app.on('get-components', o => o.components = componentCache);\r\n\r\nconst REFRESH = state => state;\r\n\r\nexport class Component<T = any, E = any> {\r\n static __isAppRunComponent = true;\r\n private _app = new App();\r\n private _actions = [];\r\n private _global_events = [];\r\n private _state;\r\n private _history = [];\r\n private _history_idx = -1;\r\n private enable_history;\r\n private global_event;\r\n public element;\r\n public rendered;\r\n public mounted;\r\n public unload;\r\n private tracking_id;\r\n private observer;\r\n\r\n\r\n private renderState(state: T, vdom = null) {\r\n if (!this.view) return;\r\n let html = vdom || this.view(state);\r\n app['debug'] && app.run('debug', {\r\n component: this,\r\n _: html ? '.' : '-',\r\n state,\r\n vdom: html,\r\n el: this.element\r\n });\r\n\r\n if (typeof document !== 'object') return;\r\n\r\n const el = (typeof this.element === 'string' && this.element) ?\r\n document.getElementById(this.element) || document.querySelector(this.element) : this.element;\r\n\r\n if (!el) return;\r\n const tracking_attr = '_c';\r\n if (!this.unload) {\r\n el.removeAttribute && el.removeAttribute(tracking_attr);\r\n } else if (el['_component'] !== this || el.getAttribute(tracking_attr) !== this.tracking_id) {\r\n this.tracking_id = new Date().valueOf().toString();\r\n el.setAttribute(tracking_attr, this.tracking_id);\r\n if (typeof MutationObserver !== 'undefined') {\r\n if (!this.observer) this.observer = new MutationObserver(changes => {\r\n if (changes[0].oldValue === this.tracking_id || !document.body.contains(el)) {\r\n this.unload(this.state);\r\n this.observer.disconnect();\r\n this.observer = null;\r\n }\r\n });\r\n this.observer.observe(document.body, {\r\n childList: true, subtree: true,\r\n attributes: true, attributeOldValue: true, attributeFilter: [tracking_attr]\r\n });\r\n }\r\n }\r\n el['_component'] = this;\r\n\r\n if (!vdom && html) {\r\n html = directive(html, this);\r\n if (this.options.transition && document && document['startViewTransition']) {\r\n document['startViewTransition'](() => app.render(el, html, this));\r\n } else {\r\n app.render(el, html, this);\r\n }\r\n }\r\n this.rendered && this.rendered(this.state);\r\n }\r\n\r\n public setState(state: T, options: ActionOptions & EventOptions\r\n = { render: true, history: false }) {\r\n\r\n const handleAsyncIterator = async (iterator: AsyncIterator<T>) => {\r\n try {\r\n while (true) {\r\n const { value, done } = await iterator.next();\r\n if (done) break;\r\n this.setState(value, options);\r\n }\r\n } catch (e) {\r\n console.error('Error in async iterator:', e);\r\n }\r\n };\r\n\r\n const result = state as any;\r\n if (result?.[Symbol.asyncIterator]) {\r\n // handleAsyncIterator(result[Symbol.asyncIterator]());\r\n this.setState(handleAsyncIterator(result[Symbol.asyncIterator]()) as any, options);\r\n return;\r\n } else if (result?.[Symbol.iterator] && typeof result.next === \"function\") {\r\n for (const value of result) {\r\n this.setState(value, options);\r\n }\r\n return;\r\n } else if (state && state instanceof Promise) {\r\n // Promise will not be saved or rendered\r\n // state will be saved and rendered when promise is resolved\r\n Promise.resolve(state).then(v => {\r\n this.setState(v, options);\r\n this._state = state;\r\n });\r\n } else {\r\n this._state = state;\r\n if (state == null) return;\r\n this.state = state;\r\n if (options.render !== false) {\r\n // before render state\r\n if (options.transition && document && document['startViewTransition']) {\r\n document['startViewTransition'](() => this.renderState(state));\r\n } else {\r\n this.renderState(state);\r\n }\r\n }\r\n if (options.history !== false && this.enable_history) {\r\n this._history = [...this._history, state];\r\n this._history_idx = this._history.length - 1;\r\n }\r\n if (typeof options.callback === 'function') options.callback(this.state);\r\n }\r\n }\r\n\r\n private _history_prev = () => {\r\n this._history_idx--;\r\n if (this._history_idx >= 0) {\r\n this.setState(this._history[this._history_idx], { render: true, history: false });\r\n }\r\n else {\r\n this._history_idx = 0;\r\n }\r\n };\r\n\r\n private _history_next = () => {\r\n this._history_idx++;\r\n if (this._history_idx < this._history.length) {\r\n this.setState(this._history[this._history_idx], { render: true, history: false });\r\n }\r\n else {\r\n this._history_idx = this._history.length - 1;\r\n }\r\n };\r\n\r\n constructor(\r\n protected state?: T,\r\n protected view?: View<T>,\r\n protected update?: Update<T, E>,\r\n protected options?) {\r\n }\r\n\r\n start = (element = null, options?: MountOptions): Component<T, E> => {\r\n this.mount(element, { render: true, ...options });\r\n if (this.mounted && typeof this.mounted === 'function') {\r\n const new_state = this.mounted({}, [], this.state);\r\n (typeof new_state !== 'undefined') && this.setState(new_state);\r\n }\r\n return this;\r\n }\r\n\r\n public mount(element = null, options?: MountOptions): Component<T, E> {\r\n console.assert(!this.element, 'Component already mounted.')\r\n this.options = options = { ...this.options, ...options };\r\n this.element = element;\r\n this.global_event = options.global_event;\r\n this.enable_history = !!options.history;\r\n\r\n if (this.enable_history) {\r\n this.on(options.history.prev || 'history-prev', this._history_prev);\r\n this.on(options.history.next || 'history-next', this._history_next);\r\n }\r\n\r\n if (options.route) {\r\n this.update = this.update || {};\r\n if (!this.update[options.route]) this.update[options.route] = REFRESH;\r\n }\r\n\r\n this.add_actions();\r\n this.state = this.state ?? this['model'] ?? {};\r\n if (typeof this.state === 'function') this.state = this.state();\r\n\r\n this.setState(this.state, { render: !!options.render, history: true });\r\n\r\n if (app['debug']) {\r\n if (componentCache.get(element)) { componentCache.get(element).push(this) }\r\n else { componentCache.set(element, [this]) }\r\n }\r\n return this;\r\n }\r\n\r\n is_global_event(name: string): boolean {\r\n return name && (\r\n this.global_event ||\r\n this._global_events.indexOf(name) >= 0 ||\r\n name.startsWith('#') || name.startsWith('/') || name.startsWith('@'));\r\n }\r\n\r\n add_action(name: string, action, options: ActionOptions = {}) {\r\n if (!action || typeof action !== 'function') return;\r\n if (options.global) this._global_events.push(name);\r\n this.on(name as any, (...p) => {\r\n\r\n app['debug'] && app.run('debug', {\r\n component: this,\r\n _: '>',\r\n event: name, p,\r\n current_state: this.state,\r\n options\r\n });\r\n\r\n const newState = action(this.state, ...p);\r\n\r\n app['debug'] && app.run('debug', {\r\n component: this,\r\n _: '<',\r\n event: name, p,\r\n newState,\r\n state: this.state,\r\n options\r\n });\r\n\r\n this.setState(newState, options)\r\n }, options);\r\n }\r\n\r\n add_actions() {\r\n const actions = this.update || {};\r\n Reflect.getMetadataKeys(this).forEach(key => {\r\n if (key.startsWith('apprun-update:')) {\r\n const meta = Reflect.getMetadata(key, this)\r\n actions[meta.name] = [this[meta.key].bind(this), meta.options];\r\n }\r\n })\r\n\r\n const all = {};\r\n if (Array.isArray(actions)) {\r\n actions.forEach(act => {\r\n const [name, action, opts] = act as ActionDef<T, E>;\r\n const names = name.toString();\r\n names.split(',').forEach(n => all[n.trim()] = [action, opts])\r\n })\r\n } else {\r\n Object.keys(actions).forEach(name => {\r\n const action = actions[name];\r\n if (typeof action === 'function' || Array.isArray(action)) {\r\n name.split(',').forEach(n => all[n.trim()] = action)\r\n }\r\n })\r\n }\r\n\r\n if (!all['.']) all['.'] = REFRESH;\r\n Object.keys(all).forEach(name => {\r\n const action = all[name];\r\n if (typeof action === 'function') {\r\n this.add_action(name, action);\r\n } else if (Array.isArray(action)) {\r\n this.add_action(name, action[0], action[1]);\r\n }\r\n });\r\n }\r\n\r\n public run(event: E, ...args) {\r\n if (this.state instanceof Promise) {\r\n return Promise.resolve(this.state).then(state => {\r\n this.state = state;\r\n this.run(event, ...args)\r\n });\r\n } else {\r\n const name = event.toString();\r\n return this.is_global_event(name) ?\r\n app.run(name, ...args) :\r\n this._app.run(name, ...args);\r\n }\r\n }\r\n\r\n public on(event: E, fn: (...args) => void, options?: any) {\r\n const name = event.toString();\r\n this._actions.push({ name, fn });\r\n return this.is_global_event(name) ?\r\n app.on(name, fn, options) :\r\n this._app.on(name, fn, options);\r\n }\r\n\r\n public runAsync(event: E, ...args) {\r\n const name = event.toString();\r\n return this.is_global_event(name) ?\r\n app.runAsync(name, ...args) :\r\n this._app.runAsync(name, ...args);\r\n }\r\n\r\n // obsolete\r\n public query(event: E, ...args) {\r\n return this.runAsync(event, ...args);\r\n }\r\n\r\n public unmount() {\r\n this.observer?.disconnect();\r\n this._actions.forEach(action => {\r\n const { name, fn } = action;\r\n this.is_global_event(name) ?\r\n app.off(name, fn) :\r\n this._app.off(name, fn);\r\n });\r\n }\r\n}\r\n","/**\n * AppRun Router Implementation\n * \n * This file provides URL routing capabilities:\n * 1. Hash-based routing (#/path)\n * 2. Path-based routing (/path) \n * 3. Event-based navigation\n * \n * Features:\n * - Automatic route event firing\n * - 404 handling via ROUTER_404_EVENT\n * - History API integration\n * - Route parameter parsing\n * \n * Usage:\n * ```ts\n * // Handle routes\n * app.on('#/home', () => // Show home page);\n * app.on('#/users/:id', (id) => // Show user profile);\n * \n * // Navigate programmatically\n * app.run('route', '#/home');\n * ```\n */\n\nimport app from './app';\n\nexport type Route = (url: string, ...args: any[]) => any;\n\nexport const ROUTER_EVENT: string = '//';\nexport const ROUTER_404_EVENT: string = '///';\nexport const route: Route = (url: string) => {\n if (app['lastUrl'] === url) return; // Prevent duplicate routing\n app['lastUrl'] = url;\n if (!url) url = '#';\n if (url.startsWith('#')) {\n const [name, ...rest] = url.split('/');\n app.run(name, ...rest) || app.run(ROUTER_404_EVENT, name, ...rest);\n app.run(ROUTER_EVENT, name, ...rest);\n } else if (url.startsWith('/')) {\n const [_, name, ...rest] = url.split('/');\n app.run('/' + name, ...rest) || app.run(ROUTER_404_EVENT, '/' + name, ...rest);\n app.run(ROUTER_EVENT, '/' + name, ...rest);\n } else {\n app.run(url) || app.run(ROUTER_404_EVENT, url);\n app.run(ROUTER_EVENT, url);\n }\n}\nexport default route;\n","/**\n * Main AppRun framework entry point\n *\n * This file:\n * 1. Assembles core AppRun modules into a complete framework\n * 2. Exports public API and types\n * 3. Initializes global app instance with:\n * - Virtual DOM rendering\n * - Component system\n * - Router\n * - Web component support\n *\n * Key exports:\n * - app: Global event system instance\n * - Component: Base component class\n * - Decorators: @on, @update, @customElement\n * - Router events and configuration\n * - Web component registration\n *\n * Usage:\n * ```ts\n * import { app, Component } from 'apprun';\n *\n * // Create components\n * class MyComponent extends Component {\n * state = // Initial state\n * view = state => // Render view\n * update = {\n * 'event': (state, ...args) => // Handle events\n * }\n * }\n * ```\n */\n\nimport app, { App } from './app';\nimport { createElement, render, Fragment, safeHTML } from './vdom';\nimport { Component } from './component';\nimport { VNode, View, Action, Update, EventOptions, ActionOptions, MountOptions, AppStartOptions } from './types';\nimport { on, update, customElement } from './decorator';\nimport webComponent, { CustomElementOptions } from './web-component';\nimport { Route, route, ROUTER_EVENT, ROUTER_404_EVENT } from './router';\n\nexport type StatelessComponent<T = {}> = (args: T) => string | VNode | void;\ntype OnDecorator = {\n <T = any>(options?: any): (constructor: Function) => void;\n <E = string>(events?: E, options?: any): (target: any, key: string) => void;\n};\n\nexport {\n App,\n app,\n Component,\n View,\n Action,\n Update,\n on,\n update,\n EventOptions,\n ActionOptions,\n MountOptions,\n Fragment,\n safeHTML\n}\nexport { update as event };\nexport { ROUTER_EVENT, ROUTER_404_EVENT };\nexport { customElement, CustomElementOptions, AppStartOptions };\nexport default app as IApp;\n\nexport interface IApp {\n start<T, E = any>(element?: Element | string, model?: T, view?: View<T>, update?: Update<T, E>,\n options?: AppStartOptions<T>): Component<T, E>;\n on(name: string, fn: (...args: any[]) => void, options?: any): void;\n off(name: string, fn: (...args: any[]) => void): void;\n run(name: string, ...args: any[]): number;\n find(name: string): any | any[];\n h(tag: string | Function, props, ...children): VNode | VNode[];\n createElement(tag: string | Function, props, ...children): VNode | VNode[];\n render(element: Element | string, node: VNode): void;\n Fragment(props, ...children): any[];\n route?: Route;\n webComponent(name: string, componentClass, options?: CustomElementOptions): void;\n safeHTML(html: string): any[];\n use_render(render, mode?: 0 | 1);\n use_react(createRoot);\n}\n\nif (!app.start) {\n\n app.version = '3.35.0';\n\n app.h = app.createElement = createElement;\n app.render = render;\n app.Fragment = Fragment;\n app.webComponent = webComponent;\n app.safeHTML = safeHTML;\n\n app.start = <T, E = any>(element?: Element | string, model?: T, view?: View<T>, update?: Update<T, E>,\n options?: AppStartOptions<T>): Component<T, E> => {\n const opts = { render: true, global_event: true, ...options };\n const component = new Component<T, E>(model, view, update);\n if (options && options.rendered) component.rendered = options.rendered;\n if (options && options.mounted) component.mounted = options.mounted;\n component.start(element, opts);\n return component;\n };\n\n const NOOP = _ => {/* Intentionally empty */ }\n // app.on('$', NOOP);\n app.on('debug', _ => NOOP);\n app.on(ROUTER_EVENT, NOOP);\n app.on(ROUTER_404_EVENT, NOOP);\n app.route = route;\n app.on('route', url => app['route'] && app['route'](url));\n\n if (typeof document === 'object') {\n document.addEventListener(\"DOMContentLoaded\", () => {\n const init_load = document.body.hasAttribute('apprun-no-init') || app['no-init-route'] || false;\n const use_hash = app.find('#') || app.find('#/') || false;\n\n // console.log(`AppRun ${app.version} started with ${use_hash ? 'hash' : 'path'} routing. Initial load: ${init_load ? 'disabled' : 'enabled'}.`);\n window.addEventListener('hashchange', () => route(location.hash));\n window.addEventListener('popstate', () => route(location.pathname));\n\n if (use_hash) {\n init_load && route(location.hash);\n } else {\n init_load && route(location.pathname);\n document.body.addEventListener('click', e => {\n const element = e.target as HTMLElement;\n const menu = (element.tagName === 'A' ? element : element.closest('a')) as HTMLAnchorElement;\n if (menu &&\n menu.origin === location.origin) {\n e.preventDefault();\n history.pushState(null, '', menu.pathname);\n route(menu.pathname);\n }\n });\n }\n });\n }\n\n type ComponentType = typeof Component & {\n <T = any>(options?: any): (constructor: Function) => void;\n };\n\n if (typeof window === 'object') {\n window['Component'] = Component as ComponentType;\n window['_React'] = window['React'];\n window['React'] = app;\n window['on'] = on as OnDecorator;\n window['customElement'] = customElement;\n window['safeHTML'] = safeHTML;\n }\n\n app.use_render = (render, mode = 0) => {\n if (mode === 0) {\n app.render = (el, vdom) => render(vdom, el); // react style\n } else {\n app.render = (el, vdom) => render(el, vdom); // apprun style\n }\n };\n\n app.use_react = (React, ReactDOM) => {\n app.h = app.createElement = React.createElement;\n app.Fragment = React.Fragment;\n app.render = (el, vdom) => ReactDOM.render(vdom, el);\n if (React.version && React.version.startsWith('18')) {\n app.render = (el, vdom) => {\n if (!el || !vdom) return;\n if (!el._root) el._root = ReactDOM.createRoot(el);\n el._root.render(vdom);\n }\n }\n }\n}\n","/**\n * Component Directives Implementation\n * \n * This file provides built-in directives for components:\n * 1. Event Binding\n * - $on: Bind DOM events to component events\n * - Supports event delegation and parameters\n * - Handles function, string, and array event handlers\n * \n * 2. Two-way Data Binding\n * - $bind: Sync form elements with component state\n * - Handles input types: text, checkbox, radio, select\n * - Automatic value type conversion\n * - Support for complex property paths\n * \n * 3. Custom Directives\n * - Extensible directive system\n * - Processes virtual DOM during rendering\n * - Supports custom attribute directives\n * \n * Usage:\n * ```tsx\n * // Event binding\n * <button $onclick=\"event-name\">Click</button>\n * <input $oninput={e => setState(e.target.value)} />\n * \n * // Two-way binding\n * <input $bind=\"state.property\" />\n * <select $bind=\"selected\">...</select>\n * ```\n */\n\nimport app from './app';\n\nconst getStateValue = (component, name) => {\n return (name ? component['state'][name] : component['state']) || '';\n}\n\nconst setStateValue = (component, name, value) => {\n if (name) {\n const state = component['state'] || {};\n state[name] = value;\n component.setState(state);\n } else {\n component.setState(value);\n }\n}\n\nconst apply_directive = (key: string, props: {}, tag, component) => {\n if (key.startsWith('$on')) {\n const event = props[key];\n key = key.substring(1)\n if (typeof event === 'boolean') {\n props[key] = e => component.run ? component.run(key, e) : app.run(key, e);\n } else if (typeof event === 'string') {\n props[key] = e => component.run ? component.run(event, e) : app.run(event, e);\n } else if (typeof event === 'function') {\n props[key] = e => component.setState(event(component.state, e));\n } else if (Array.isArray(event)) {\n const [handler, ...p] = event;\n if (typeof handler === 'string') {\n props[key] = e => component.run ? component.run(handler, ...p, e) : app.run(handler, ...p, e);\n } else if (typeof handler === 'function') {\n props[key] = e => component.setState(handler(component.state, ...p, e));\n }\n }\n\n } else if (key === '$bind') {\n const type = props['type'] || 'text';\n const name = typeof props[key] === 'string' ? props[key] : props['name'];\n if (tag === 'input') {\n switch (type) {\n case 'checkbox':\n props['checked'] = getStateValue(component, name);\n props['onclick'] = e => setStateValue(component, name || e.target.name, e.target.checked);\n break;\n case 'radio':\n props['checked'] = getStateValue(component, name) === props['value'];\n props['onclick'] = e => setStateValue(component, name || e.target.name, e.target.value);\n break;\n case 'number':\n case 'range':\n props['value'] = getStateValue(component, name);\n props['oninput'] = e => setStateValue(component, name || e.target.name, Number(e.target.value));\n break;\n default:\n props['value'] = getStateValue(component, name);\n props['oninput'] = e => setStateValue(component, name || e.target.name, e.target.value);\n }\n } else if (tag === 'select') {\n props['value'] = getStateValue(component, name);\n props['onchange'] = e => {\n if (!e.target.multiple) { // multiple selection use $bind on option\n setStateValue(component, name || e.target.name, e.target.value);\n }\n }\n } else if (tag === 'option') {\n props['selected'] = getStateValue(component, name);\n props['onclick'] = e => setStateValue(component, name || e.target.name, e.target.selected);\n } else if (tag === 'textarea') {\n props['innerHTML'] = getStateValue(component, name);\n props['oninput'] = e => setStateValue(component, name || e.target.name, e.target.value);\n }\n } else {\n app.run('$', { key, tag, props, component });\n }\n}\n\nconst directive = (vdom, component) => {\n if (Array.isArray(vdom)) {\n return vdom.map(element => directive(element, component));\n } else {\n let { type, tag, props, children } = vdom;\n tag = tag || type;\n children = children || props?.children;\n if (props) Object.keys(props).forEach(key => {\n if (key.startsWith('$')) {\n apply_directive(key, props, tag, component);\n delete props[key];\n }\n });\n if (children) directive(children, component);\n return vdom;\n }\n}\n\nexport default directive;\n","import { VDOM, VNode } from './types';\nimport directive from './directive';\nexport type Element = any; //HTMLElement | SVGSVGElement | SVGElement;\n\nexport function Fragment(props, ...children): any[] {\n return collect(children);\n}\n\nconst ATTR_PROPS = '_props';\n\nfunction collect(children) {\n const ch = [];\n const push = (c) => {\n if (c !== null && c !== undefined && c !== '' && c !== false) {\n ch.push((typeof c === 'function' || typeof c === 'object') ? c : `${c}`);\n }\n }\n children && children.forEach(c => {\n if (Array.isArray(c)) {\n c.forEach(i => push(i));\n } else {\n push(c);\n }\n });\n return ch;\n}\n\nexport function createElement(tag: string | Function | [], props?: {}, ...children) {\n const ch = collect(children);\n if (typeof tag === 'string') return { tag, props, children: ch };\n else if (Array.isArray(tag)) return tag; // JSX fragments - babel\n else if (tag === undefined && children) return ch; // JSX fragments - typescript\n else if (Object.getPrototypeOf(tag).__isAppRunComponent) return { tag, props, children: ch } // createComponent(tag, { ...props, children });\n else if (typeof tag === 'function') return tag(props, ch);\n else throw new Error(`Unknown tag in vdom ${tag}`);\n};\n\nconst keyCache = new WeakMap();\n\nexport const updateElement = (element: Element | string, nodes: VDOM, component = {}) => {\n // tslint:disable-next-line\n if (nodes == null || nodes === false) return;\n const el = (typeof element === 'string' && element) ?\n document.getElementById(element) || document.querySelector(element) : element;\n nodes = directive(nodes, component);\n render(el, nodes, component);\n}\n\nfunction render(element: Element, nodes: VDOM, parent = {}) {\n // tslint:disable-next-line\n if (nodes == null || nodes === false) return;\n nodes = createComponent(nodes, parent);\n if (!element) return;\n const isSvg = element.nodeName === \"SVG\";\n if (Array.isArray(nodes)) {\n updateChildren(element, nodes, isSvg);\n } else {\n updateChildren(element, [nodes], isSvg);\n }\n}\n\nfunction same(el: Element, node: VNode) {\n // if (!el || !node) return false;\n const key1 = el.nodeName;\n const key2 = `${node.tag || ''}`;\n return key1.toUpperCase() === key2.toUpperCase();\n}\n\nfunction update(element: Element, node: VNode, isSvg: boolean) {\n if (node['_op'] === 3) return;\n // console.assert(!!element);\n isSvg = isSvg || node.tag === \"svg\";\n if (!same(element, node)) {\n element.parentNode.replaceChild(create(node, isSvg), element);\n return;\n }\n !(node['_op'] & 2) && updateChildren(element, node.children, isSvg);\n !(node['_op'] & 1) && updateProps(element, node.props, isSvg);\n}\n\nfunction updateChildren(element, children, isSvg: boolean) {\n const old_len = element.childNodes?.length || 0;\n const new_len = children?.length || 0;\n const len = Math.min(old_len, new_len);\n for (let i = 0; i < len; i++) {\n const child = children[i];\n if (child['_op'] === 3) continue;\n const el = element.childNodes[i];\n if (typeof child === 'string') {\n if (el.textContent !== child) {\n if (el.nodeType === 3) {\n el.nodeValue = child\n } else {\n element.replaceChild(createText(child), el);\n }\n }\n } else if (child instanceof HTMLElement || child instanceof SVGElement) {\n element.insertBefore(child, el);\n } else {\n const key = child.props && child.props['key'];\n if (key) {\n if (el.key === key) {\n update(element.childNodes[i], child, isSvg);\n } else {\n // console.log(el.key, key);\n const old = keyCache[key];\n if (old) {\n const temp = old.nextSibling;\n element.insertBefore(old, el);\n temp ? element.insertBefore(el, temp) : element.appendChild(el);\n update(element.childNodes[i], child, isSvg);\n } else {\n element.replaceChild(create(child, isSvg), el);\n }\n }\n } else {\n update(element.childNodes[i], child, isSvg);\n }\n }\n }\n\n let n = element.childNodes?.length || 0;\n while (n > len) {\n element.removeChild(element.lastChild);\n n--;\n }\n\n if (new_len > len) {\n const d = document.createDocumentFragment();\n for (let i = len; i < children.length; i++) {\n d.appendChild(create(children[i], isSvg));\n }\n element.appendChild(d);\n }\n}\n\nexport const safeHTML = (html: string) => {\n const div = document.createElement('section');\n div.insertAdjacentHTML('afterbegin', html)\n return Array.from(div.children);\n}\n\nfunction createText(node) {\n if (node?.indexOf('_html:') === 0) { // ?\n const div = document.createElement('div');\n div.insertAdjacentHTML('afterbegin', node.substring(6))\n return div;\n } else {\n return document.createTextNode(node??'');\n }\n}\n\nfunction create(node: VNode | string | HTMLElement | SVGElement, isSvg: boolean): Element {\n // console.assert(node !== null && node !== undefined);\n if ((node instanceof HTMLElement) || (node instanceof SVGElement)) return node;\n if (typeof node === \"string\") return createText(node);\n if (!node.tag || (typeof node.tag === 'function')) return createText(JSON.stringify(node));\n isSvg = isSvg || node.tag === \"svg\";\n const element = isSvg\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", node.tag)\n : document.createElement(node.tag);\n\n updateProps(element, node.props, isSvg);\n if (node.children) node.children.forEach(child => element.appendChild(create(child, isSvg)));\n return element\n}\n\nfunction mergeProps(oldProps: {}, newProps: {}): {} {\n newProps['class'] = newProps['class'] || newProps['className'];\n delete newProps['className'];\n const props = {};\n if (oldProps) Object.keys(oldProps).forEach(p => props[p] = null);\n if (newProps) Object.keys(newProps).forEach(p => props[p] = newProps[p]);\n return props;\n}\n\nexport function updateProps(element: Element, props: {}, isSvg) {\n // console.assert(!!element);\n const cached = element[ATTR_PROPS] || {};\n props = mergeProps(cached, props || {});\n element[ATTR_PROPS] = props;\n\n for (const name in props) {\n const value = props[name];\n // if (cached[name] === value) continue;\n // console.log('updateProps', name, value);\n if (name.startsWith('data-')) {\n const dname = name.substring(5);\n const cname = dname.replace(/-(\\w)/g, (match) => match[1].toUpperCase());\n if (element.dataset[cname] !== value) {\n if (value || value === \"\") element.dataset[cname] = value;\n else delete element.dataset[cname];\n }\n } else if (name === 'style') {\n if (element.style.cssText) element.style.cssText = '';\n if (typeof value === 'string') element.style.cssText = value;\n else {\n for (const s in value) {\n if (element.style[s] !== value[s]) element.style[s] = value[s];\n }\n }\n } else if (name.startsWith('xlink')) {\n const xname = name.replace('xlink', '').toLowerCase();\n if (value == null || value === false) {\n element.removeAttributeNS('http://www.w3.org/1999/xlink', xname);\n } else {\n element.setAttributeNS('http://www.w3.org/1999/xlink', xname, value);\n }\n } else if (name.startsWith('on')) {\n if (!value || typeof value === 'function') {\n element[name] = value;\n } else if (typeof value === 'string') {\n if (value) element.setAttribute(name, value);\n else element.removeAttribute(name);\n }\n } else if (/^id$|^class$|^list$|^readonly$|^contenteditable$|^role|-|^for$/g.test(name) || isSvg) {\n if (element.getAttribute(name) !== value) {\n if (value) element.setAttribute(name, value);\n else element.removeAttribute(name);\n }\n } else if (element[name] !== value) {\n element[name] = value;\n }\n if (name === 'key' && value) keyCache[value] = element;\n }\n if (props && typeof props['ref'] === 'function') {\n window.requestAnimationFrame(() => props['ref'](element));\n }\n}\n\nfunction render_component(node, parent, idx) {\n const { tag, props, children } = node;\n let key = `_${idx}`;\n let id = props && props['id'];\n if (!id) id = `_${idx}${Date.now()}`;\n else key = id;\n let asTag = 'section';\n if (props && props['as']) {\n asTag = props['as'];\n delete props['as'];\n }\n if (!parent.__componentCache) parent.__componentCache = {};\n let component = parent.__componentCache[key];\n if (!component || !(component instanceof tag) || !component.element) {\n const element = document.createElement(asTag);\n component = parent.__componentCache[key] = new tag({ ...props, children }).mount(element, { render: true });\n } else {\n component.renderState(component.state);\n }\n if (component.mounted) {\n const new_state = component.mounted(props, children, component.state);\n (typeof new_state !== 'undefined') && component.setState(new_state);\n }\n updateProps(component.element, props, false);\n return component.element;\n}\n\nfunction createComponent(node, parent, idx = 0) {\n if (typeof node === 'string') return node;\n if (Array.isArray(node)) return node.map(child => createComponent(child, parent, idx++));\n let vdom = node;\n if (node && typeof node.tag === 'function' && Object.getPrototypeOf(node.tag).__isAppRunComponent) {\n vdom = render_component(node, parent, idx);\n }\n if (vdom && Array.isArray(vdom.children)) {\n const new_parent = vdom.props?._component;\n if (new_parent) {\n let i = 0;\n vdom.children = vdom.children.map(child => createComponent(child, new_parent, i++));\n } else {\n vdom.children = vdom.children.map(child => createComponent(child, parent, idx++));\n }\n }\n return vdom;\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.0\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=h.fromAttribute(s,t.type)??this._$Ej?.get(e)??null,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.0\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.0\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{Directive as r,PartType as s,directive as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends r{constructor(i){if(super(i),this.it=t,i.type!==s.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=n(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import { createElement, updateElement, Fragment } from './vdom-my';\n\n\nimport { render, svg, html, noChange, nothing } from 'lit';\nimport { directive, Directive, PartInfo, ElementPart, DirectiveResult, EventPart, PartType } from 'lit/directive.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport app from './apprun';\n\nfunction _render(element, vdom, parent?) {\n if (!vdom) return;\n if (typeof vdom === 'string') {\n if (!element['_$litPart$']) element.replaceChildren();\n render(html`${unsafeHTML(vdom)}`, element);\n } else if (vdom['_$litType$']) {\n if (!element['_$litPart$']) element.replaceChildren();\n render(vdom, element);\n } else {\n updateElement(element, vdom, parent);\n element['_$litPart$'] = undefined;\n }\n}\n\nexport class RunDirective extends Directive {\n // State stored in class field\n value: number | undefined;\n constructor(partInfo: PartInfo) {\n super(partInfo);\n // When necessary, validate part in constructor using `part.type`\n if (partInfo.type !== PartType.EVENT) { // In lit v3, use PartType.EVENT\n throw new Error('run() can only be used in event handlers');\n }\n }\n // Override update to perform any direct DOM manipulation\n update(part: EventPart, props: Array<any>): DirectiveResult {\n /* Any imperative updates to DOM/parts would go here */\n const element = part.element;\n const name = part.name;\n const [eventOrFn, ...args] = props;\n \n const getComponent = () => {\n let el = element;\n let component = el['_component'];\n while (!component && el) {\n el = el.parentElement;\n component = el && el['_component'];\n }\n console.assert(!!component, 'Component not found.');\n return component;\n }\n\n if (typeof eventOrFn === 'string') {\n element[`on${name}`] = e => {\n const component = getComponent();\n component ? component.run(eventOrFn, ...args, e) : app.run(eventOrFn, ...args, e)\n }\n } else if (typeof eventOrFn === 'function') {\n element[`on${name}`] = e => getComponent().setState(eventOrFn(getComponent().state, ...args, e));\n }\n return this.render();\n }\n render() {\n return noChange;\n }\n}\n\nconst run = directive(RunDirective) as any;\nexport { createElement, Fragment, html, svg, _render as render, run };\n","import app from './apprun'\nexport {\n app, Component, View, Action, Update, on, update, event, EventOptions,\n customElement, CustomElementOptions,\n ROUTER_404_EVENT, ROUTER_EVENT, safeHTML\n} from './apprun'\nimport { createElement, render, Fragment, html, svg, run } from './vdom-lit-html';\nexport { html, svg, render, run }\n\napp.createElement = createElement;\napp.render = render;\napp.Fragment = Fragment;\n\nexport default app;\n\nif (typeof window === 'object') {\n window['React'] = window['_React'] || app;\n window['html'] = html;\n window['svg'] = svg;\n window['run'] = run;\n}\n"],"names":["root","factory","exports","module","define","amd","this","App","constructor","_events","on","name","fn","options","push","off","subscribers","filter","sub","find","run","args","getSubscribers","console","assert","length","forEach","delay","Object","keys","apply","once","_t","clearTimeout","setTimeout","runAsync","promises","map","Promise","all","query","events","evt","endsWith","startsWith","replace","sort","a","b","event","_app","window","g","self","app","_AppRunVersions","customElement","componentClass","HTMLElement","super","component","_component","state","observedAttributes","attr","toLowerCase","connectedCallback","isConnected","opts","_shadowRoot","shadow","attachShadow","mode","attrMap","reduce","lc","_attrMap","props","Array","from","attributes","item","value","undefined","defineProperty","get","set","attributeChangedCallback","configurable","enumerable","requestAnimationFrame","children","mount","_props","dispatchEvent","bind","mounted","new_state","render","disconnectedCallback","unload","unmount","oldValue","mappedName","customElements","Reflect","meta","WeakMap","defineMetadata","metadataKey","metadataValue","target","has","getMetadataKeys","getPrototypeOf","getMetadata","update","key","descriptor","toString","componentCache","Map","o","components","REFRESH","Component","renderState","vdom","view","html","_","el","element","document","getElementById","querySelector","tracking_attr","getAttribute","tracking_id","Date","valueOf","setAttribute","MutationObserver","observer","changes","body","contains","disconnect","observe","childList","subtree","attributeOldValue","attributeFilter","removeAttribute","directive","transition","rendered","setState","history","result","Symbol","asyncIterator","async","iterator","done","next","e","error","handleAsyncIterator","resolve","then","v","_state","enable_history","_history","_history_idx","callback","_actions","_global_events","_history_prev","_history_next","start","global_event","prev","route","add_actions","is_global_event","indexOf","add_action","action","global","p","current_state","newState","actions","isArray","act","split","n","trim","__isAppRunComponent","ROUTER_EVENT","ROUTER_404_EVENT","url","rest","version","h","createElement","Fragment","webComponent","safeHTML","model","NOOP","addEventListener","init_load","hasAttribute","use_hash","location","hash","pathname","menu","tagName","closest","origin","preventDefault","pushState","use_render","use_react","React","ReactDOM","_root","createRoot","getStateValue","setStateValue","type","tag","substring","handler","checked","Number","multiple","selected","apply_directive","collect","ATTR_PROPS","ch","c","i","Error","keyCache","updateElement","nodes","parent","createComponent","isSvg","nodeName","updateChildren","node","key1","key2","toUpperCase","same","updateProps","parentNode","replaceChild","create","old_len","childNodes","new_len","len","Math","min","child","textContent","nodeType","nodeValue","createText","SVGElement","insertBefore","old","temp","nextSibling","appendChild","removeChild","lastChild","d","createDocumentFragment","div","insertAdjacentHTML","createTextNode","JSON","stringify","createElementNS","cached","oldProps","newProps","mergeProps","cname","match","dataset","style","cssText","s","xname","removeAttributeNS","setAttributeNS","test","idx","id","now","asTag","__componentCache","render_component","new_parent","t","ATTRIBUTE","CHILD","PROPERTY","BOOLEAN_ATTRIBUTE","EVENT","ELEMENT","_$litDirective$","values","_$AU","_$AM","_$AT","_$Ct","_$Ci","_$AS","globalThis","trustedTypes","createPolicy","createHTML","random","toFixed","slice","r","l","createComment","f","m","RegExp","$","y","_$litType$","strings","x","T","for","E","A","C","createTreeWalker","P","hasOwnProperty","V","u","lastIndex","exec","N","parts","currentNode","content","firstChild","replaceWith","nextNode","hasAttributes","getAttributeNames","index","ctor","H","I","L","k","emptyScript","append","data","innerHTML","S","_$Co","_$Cl","_$AO","M","_$AV","_$AN","_$AD","creationScope","importNode","R","z","_$AI","_$Cv","_$AH","_$AA","_$AB","startNode","endNode","_$AR","O","_$AC","_$AP","remove","setConnected","fill","String","j","arguments","toggleAttribute","capture","passive","removeEventListener","handleEvent","call","host","litHtmlPolyfillSupport","litHtmlVersions","B","renderBefore","_$litPart$","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","Function","obj","prop","prototype","toStringTag","ShadowRoot","ShadyCSS","nativeShadow","Document","CSSStyleSheet","_$cssResult$","styleSheet","replaceSync","adoptedStyleSheets","litNonce","cssRules","is","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","reactiveElementPolyfillSupport","toAttribute","Boolean","fromAttribute","parse","attribute","converter","reflect","useDefault","hasChanged","metadata","litPropertyMetadata","addInitializer","_$Ei","finalize","_$Eh","createProperty","wrapped","elementProperties","noAccessor","getPropertyDescriptor","requestUpdate","getPropertyOptions","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","Set","flat","reverse","unshift","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","enableUpdating","_$AL","_$E_","addController","_$EO","add","renderRoot","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","shadowRootOptions","hostDisconnected","_$AK","_$ET","_$Ej","_$EP","_$Eq","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","_$EM","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","ReactiveElement","reactiveElementVersions","renderOptions","_$Do","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","it","directiveName","raw","resultType","_render","replaceChildren","RunDirective","partInfo","part","eventOrFn","getComponent","parentElement"],"sourceRoot":""}
1
+ {"version":3,"file":"dist/apprun-html.js","mappings":"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","sources":["webpack://apprun/webpack/universalModuleDefinition","webpack://apprun/./src/app.ts","webpack://apprun/./src/web-component.ts","webpack://apprun/./src/decorator.ts","webpack://apprun/./src/component.ts","webpack://apprun/./src/router.ts","webpack://apprun/./src/apprun.ts","webpack://apprun/./src/directive.ts","webpack://apprun/./src/type-utils.ts","webpack://apprun/./node_modules/property-information/lib/util/info.js","webpack://apprun/./node_modules/property-information/lib/util/types.js","webpack://apprun/./node_modules/property-information/lib/util/defined-info.js","webpack://apprun/./node_modules/property-information/lib/normalize.js","webpack://apprun/./node_modules/property-information/lib/find.js","webpack://apprun/./node_modules/property-information/lib/util/schema.js","webpack://apprun/./node_modules/property-information/lib/util/merge.js","webpack://apprun/./node_modules/property-information/lib/util/create.js","webpack://apprun/./node_modules/property-information/lib/aria.js","webpack://apprun/./node_modules/property-information/lib/util/case-sensitive-transform.js","webpack://apprun/./node_modules/property-information/lib/util/case-insensitive-transform.js","webpack://apprun/./node_modules/property-information/lib/html.js","webpack://apprun/./node_modules/property-information/lib/svg.js","webpack://apprun/./node_modules/property-information/lib/xlink.js","webpack://apprun/./node_modules/property-information/lib/xmlns.js","webpack://apprun/./node_modules/property-information/lib/xml.js","webpack://apprun/./node_modules/property-information/index.js","webpack://apprun/./src/vdom-my-prop-attr.ts","webpack://apprun/./src/vdom-my.ts","webpack://apprun/./src/version.ts","webpack://apprun/./node_modules/lit-html/directive.js","webpack://apprun/./node_modules/lit-html/lit-html.js","webpack://apprun/webpack/bootstrap","webpack://apprun/webpack/runtime/define property getters","webpack://apprun/webpack/runtime/global","webpack://apprun/webpack/runtime/hasOwnProperty shorthand","webpack://apprun/webpack/runtime/make namespace object","webpack://apprun/./node_modules/@lit/reactive-element/css-tag.js","webpack://apprun/./node_modules/@lit/reactive-element/reactive-element.js","webpack://apprun/./node_modules/lit-element/lit-element.js","webpack://apprun/./node_modules/lit-html/directives/unsafe-html.js","webpack://apprun/./src/vdom-lit-html.ts","webpack://apprun/./src/apprun-html.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"apprun\"] = factory();\n\telse\n\t\troot[\"apprun\"] = factory();\n})(this, () => {\nreturn ","/**\n * Core AppRun application class and singleton instance\n *\n * This file provides:\n * 1. App class - The core event system implementation with pub/sub capabilities\n * - on(): Subscribe to events with options (once, delay, global)\n * - off(): Unsubscribe from events with proper cleanup\n * - run(): Publish events synchronously with error handling\n * - runAsync(): Publish events asynchronously with Promise support, returns handler values\n * - query(): Deprecated alias for runAsync() - use runAsync() instead\n *\n * 2. Default app singleton - Global event bus instance\n * - Created once and reused across the application\n * - Stored in global scope (window/global) with version tracking\n * - Prevents duplicate instances across different versions\n *\n * Features:\n * - Event wildcards support (events ending with '*')\n * - Delayed event execution with timeout management\n * - Once-only event subscriptions\n * - Async event handling with Promise.all\n * - Global event bus shared across components\n * - Memory leak prevention with proper cleanup\n *\n * Type Safety Improvements (v3.35.1):\n * - Added validation for event handler functions\n * - Enhanced error handling in event execution\n * - Improved null checks in delayed event handling\n * - Better error reporting for invalid handlers\n *\n * Usage:\n * ```ts\n * // Subscribe to events\n * app.on('event-name', (state, ...args) => {\n * // Handle event\n * });\n *\n * // Publish events (fire-and-forget)\n * app.run('event-name', ...args);\n * \n * // Get return values from event handlers\n * app.runAsync('event-name', data).then(results => {\n * // Handle results array\n * });\n * ```\n */\n\nimport { EventOptions } from './types'\nimport { APPRUN_VERSION_GLOBAL } from './version'\n\nexport class App {\n\n _events: { [key: string]: Array<{ fn: (...args: any[]) => any, options: EventOptions }> };\n\n public start: any;\n public h: any;\n public createElement: any;\n public render: any;\n public Fragment: any;\n public webComponent: any;\n public safeHTML: any;\n public use_render: any;\n public use_react: any;\n public route: any;\n public basePath: string; // Base path for sub-directory deployments\n\n public version: string;\n\n constructor() {\n this._events = {} as { [key: string]: Array<{ fn: (...args: any[]) => any, options: EventOptions }> };\n }\n\n on(name: string, fn: (...args: any[]) => any, options: EventOptions = {}): void {\n this._events[name] = this._events[name] || [];\n this._events[name].push({ fn, options });\n }\n\n off(name: string, fn: (...args: any[]) => any): void {\n const subscribers = this._events[name] || [];\n\n this._events[name] = subscribers.filter((sub) => sub.fn !== fn);\n }\n\n find(name: string): any {\n return this._events[name];\n }\n\n run(name: string, ...args: any[]): number {\n const subscribers = this.getSubscribers(name, this._events);\n console.assert(subscribers && subscribers.length > 0, 'No subscriber for event: ' + name);\n subscribers.forEach((sub) => {\n const { fn, options } = sub;\n if (!fn || typeof fn !== 'function') {\n console.error(`AppRun event handler for '${name}' is not a function:`, fn);\n return false;\n }\n if (options.delay) {\n this.delay(name, fn, args, options);\n } else {\n try {\n Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);\n } catch (error) {\n console.error(`Error in event handler for '${name}':`, error);\n }\n }\n return !sub.options.once;\n });\n\n return subscribers.length;\n }\n\n once(name: string, fn: (...args: any[]) => any, options: EventOptions = {}): void {\n this.on(name, fn, { ...options, once: true });\n }\n\n private delay(name: string, fn: (...args: any[]) => any, args: any[], options: EventOptions): void {\n if (options._t) clearTimeout(options._t);\n options._t = setTimeout(() => {\n clearTimeout(options._t);\n try {\n Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);\n } catch (error) {\n console.error(`Error in delayed event handler for '${name}':`, error);\n }\n }, options.delay);\n }\n\n runAsync(name: string, ...args: any[]): Promise<any[]> {\n const subscribers = this.getSubscribers(name, this._events);\n console.assert(subscribers && subscribers.length > 0, 'No subscriber for event: ' + name);\n const promises = subscribers.map(sub => {\n const { fn, options } = sub;\n if (!fn || typeof fn !== 'function') {\n console.error(`AppRun async event handler for '${name}' is not a function:`, fn);\n return Promise.resolve(null);\n }\n try {\n return Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);\n } catch (error) {\n console.error(`Error in async event handler for '${name}':`, error);\n return Promise.reject(error);\n }\n });\n return Promise.all(promises);\n }\n\n /**\n * @deprecated Use runAsync() instead. app.query() will be removed in a future version.\n */\n query(name: string, ...args: any[]): Promise<any[]> {\n console.warn('app.query() is deprecated. Use app.runAsync() instead.');\n return this.runAsync(name, ...args);\n }\n\n private getSubscribers(name: string, events: { [key: string]: Array<{ fn: (...args: any[]) => any, options: EventOptions }> }): Array<{ fn: (...args: any[]) => any, options: EventOptions }> {\n const subscribers = events[name] || [];\n\n // Update the list of subscribers by pulling out those which will run once.\n // We must do this update prior to running any of the events in case they\n // cause additional events to be turned off or on.\n events[name] = subscribers.filter((sub) => {\n return !sub.options.once;\n });\n Object.keys(events).filter(evt => evt.endsWith('*') && name.startsWith(evt.replace('*', '')))\n .sort((a, b) => b.length - a.length)\n .forEach(evt => subscribers.push(...events[evt].map(sub => ({\n ...sub,\n options: { ...sub.options, event: name }\n }))));\n return subscribers;\n }\n}\n\nconst AppRunVersions = APPRUN_VERSION_GLOBAL;\nlet _app: App;\nconst root = (typeof window !== 'undefined' ? window :\n typeof global !== 'undefined' ? global :\n typeof self !== 'undefined' ? self : {}) as any;\n\nif (root.app && root._AppRunVersions) {\n _app = root.app;\n} else {\n _app = new App();\n root.app = _app;\n root._AppRunVersions = AppRunVersions;\n}\nexport default _app;\n","/**\n * Web Components Integration\n * \n * This file enables using AppRun components as Web Components:\n * 1. Custom Element Creation\n * - Converts AppRun components to custom elements\n * - Handles lifecycle (connected, disconnected, attributeChanged)\n * - Manages shadow DOM and light DOM rendering options\n * - Automatic element registration with customElements.define()\n * \n * 2. Property/Attribute Sync\n * - Observes attribute changes with attributeChangedCallback\n * - Updates component state automatically on changes\n * - Handles camelCase/kebab-case conversion automatically\n * - Supports complex property types and JSON parsing\n * - Two-way data binding between attributes and state\n * \n * 3. Event Handling\n * - Proxies events between component and element\n * - Supports both global and local event systems\n * - Maintains proper event bubbling and capturing\n * - Custom event dispatching for component communication\n * \n * Features:\n * - Shadow DOM encapsulation support\n * - Attribute observation and change detection\n * - Lifecycle management and cleanup\n * - Property reflection to attributes\n * - Event proxy system\n * - Flexible rendering options\n *\n * Type Safety Improvements (v3.35.1):\n * - Enhanced custom element options typing\n * - Better lifecycle method signatures\n * - Improved attribute/property type safety\n * - Safer DOM manipulation with null checks\n *\n * Usage:\n * ```ts\n * // Register web component\n * @customElement('my-element', { \n * shadow: true,\n * observedAttributes: ['name', 'value']\n * })\n * class MyComponent extends Component {\n * // Regular AppRun component code\n * }\n * \n * // Use in HTML\n * <my-element name=\"value\" data-prop=\"complex\"></my-element>\n * ```\n */\n\ndeclare var customElements;\n\nexport type CustomElementOptions = {\n render?: boolean;\n shadow?: boolean;\n history?: boolean;\n global_event?: boolean;\n observedAttributes?: string[];\n};\n\nexport const customElement = (componentClass, options: CustomElementOptions = {}) => class CustomElement extends HTMLElement {\n private _shadowRoot;\n private _component;\n private _attrMap: (arg0: string) => string;\n public on;\n public run;\n constructor() {\n super();\n }\n get component() { return this._component; }\n get state() { return this._component.state; }\n\n static get observedAttributes() {\n // attributes need to be set to lowercase in order to get observed\n return (options.observedAttributes || []).map(attr => attr.toLowerCase());\n }\n\n connectedCallback() {\n if (this.isConnected && !this._component) {\n const opts = options || {};\n this._shadowRoot = opts.shadow ? this.attachShadow({ mode: 'open' }) : this;\n const observedAttributes = (opts.observedAttributes || [])\n\n const attrMap = observedAttributes.reduce((map, name) => {\n const lc = name.toLowerCase()\n if (lc !== name) {\n map[lc] = name\n }\n return map\n }, {})\n this._attrMap = (name: string): string => attrMap[name] || name\n\n const props = {};\n Array.from(this.attributes).forEach(item => props[this._attrMap(item.name)] = item.value);\n\n // add getters/ setters to allow observation on observedAttributes\n observedAttributes.forEach(name => {\n if (this[name] !== undefined) props[name] = this[name];\n Object.defineProperty(this, name, {\n get(): any {\n return props[name];\n },\n set(this: CustomElement, value: unknown) {\n // trigger change event\n this.attributeChangedCallback(name, props[name], value)\n },\n configurable: true,\n enumerable: true\n });\n })\n\n requestAnimationFrame(() => {\n const children = this.children ? Array.from(this.children) : [];\n // children.forEach(el => el.parentElement.removeChild(el));\n this._component = new componentClass({ ...props, children }).mount(this._shadowRoot, opts);\n // attach props to component\n this._component._props = props;\n // expose dispatchEvent\n this._component.dispatchEvent = this.dispatchEvent.bind(this)\n if (this._component.mounted) {\n const new_state = this._component.mounted(props, children, this._component.state);\n if (typeof new_state !== 'undefined') this._component.state = new_state;\n }\n this.on = this._component.on.bind(this._component);\n this.run = this._component.run.bind(this._component);\n if (!(opts.render === false)) this._component.run('.');\n });\n }\n }\n\n disconnectedCallback() {\n this._component?.unload?.();\n this._component?.unmount?.();\n this._component = null;\n }\n\n attributeChangedCallback(name: string, oldValue: unknown, value: unknown) {\n if (this._component) {\n // camelCase attributes arrive only in lowercase\n const mappedName = this._attrMap(name);\n // store the new property/ attribute\n this._component._props[mappedName] = value;\n this._component.run('attributeChanged', mappedName, oldValue, value);\n\n if (value !== oldValue && !(options.render === false)) {\n window.requestAnimationFrame(() => {\n // re-render state with new combined props on next animation frame\n this._component.run('.')\n })\n }\n }\n }\n}\n\nexport default (name: string, componentClass, options?: CustomElementOptions) => {\n (typeof customElements !== 'undefined') && customElements.define(name, customElement(componentClass, options))\n}\n","import webComponent, { CustomElementOptions } from './web-component';\n\n/**\n * TypeScript Decorators for AppRun Components\n * \n * This file provides decorators that enable:\n * 1. Event Handler Registration\n * - @on(): Subscribe to events with options (global, once, delay)\n * - @update(): Define state updates with metadata and options\n * - Supports method and class decoration patterns\n * \n * 2. Web Component Integration\n * - @customElement(): Register as custom element with options\n * - Handles shadow DOM and attribute observation\n * - Automatic lifecycle management for web components\n * \n * 3. Metadata Management\n * - Custom Reflect implementation for decorator metadata\n * - Stores event handler and update metadata for runtime use\n * - Supports runtime reflection for dynamic behavior\n * - Metadata keys for event bindings and updates\n * \n * Features:\n * - Event handler decoration with options\n * - State update method decoration\n * - Web component registration\n * - Metadata-driven event binding\n * - Flexible decorator patterns\n * - Runtime metadata access\n *\n * Type Safety Improvements (v3.35.1):\n * - Enhanced decorator typing for better IDE support\n * - Improved metadata key management\n * - Better type inference for decorated methods\n *\n * Usage:\n * ```ts\n * @customElement('my-element')\n * class MyComponent extends Component {\n * @on('event', { global: true }) \n * handler(state, ...args) {\n * // Handle event\n * }\n * \n * @update('event', { render: true }) \n * updater(state, ...args) {\n * // Update state\n * return newState;\n * }\n * }\n * ```\n */\n\n// tslint:disable:no-invalid-this\nexport const Reflect = {\n\n meta: new WeakMap(),\n\n defineMetadata(metadataKey, metadataValue, target) {\n if (!this.meta.has(target)) this.meta.set(target, {});\n this.meta.get(target)[metadataKey] = metadataValue;\n },\n\n getMetadataKeys(target) {\n target = Object.getPrototypeOf(target);\n return this.meta.get(target) ? Object.keys(this.meta.get(target)) : [];\n },\n\n getMetadata(metadataKey, target) {\n target = Object.getPrototypeOf(target);\n return this.meta.get(target) ? this.meta.get(target)[metadataKey] : null;\n }\n}\n\nexport function update<E = string>(events?: E, options: any = {}) {\n return (target: any, key: string, descriptor: any) => {\n const name = events ? events.toString() : key;\n Reflect.defineMetadata(`apprun-update:${name}`,\n { name, key, options }, target);\n return descriptor;\n }\n}\n\nexport function on<E = string>(events?: E, options: any = {}) {\n return function (target: any, key: string) {\n const name = events ? events.toString() : key;\n Reflect.defineMetadata(`apprun-update:${name}`,\n { name, key, options }, target)\n }\n}\n\nexport function customElement(name: string, options?: CustomElementOptions) {\n return function _customElement<T extends { new(...args: any[]): {} }>(constructor: T) {\n webComponent(name, constructor, options);\n return constructor;\n }\n}\n","/**\r\n * AppRun Component System Implementation\r\n *\r\n * This file provides the Component class which is the foundation for:\r\n * 1. State Management\r\n * - Maintains component state with history support\r\n * - Handles state updates with async/iterator support\r\n * - Supports state history navigation (prev/next)\r\n * - Promise and async iterator state handling\r\n *\r\n * 2. View Rendering\r\n * - Renders virtual DOM to real DOM with directives\r\n * - Handles component lifecycle (mounted, rendered, unload)\r\n * - Supports shadow DOM and web components\r\n * - DOM change tracking with MutationObserver\r\n * - View transition API support\r\n *\r\n * 3. Event Handling\r\n * - Local and global event subscription management\r\n * - Event handler registration via decorators\r\n * - Action to state updates with error handling\r\n * - Support for event options (delay, once, global)\r\n *\r\n * Features:\r\n * - Component caching for debugging\r\n * - Element tracking for cleanup\r\n * - History navigation support\r\n * - Global vs local event routing\r\n * - Async state handling\r\n * - Memory leak prevention\r\n * - Component unmounting with cleanup\r\n *\r\n * Type Safety Improvements (v3.35.1):\r\n * - Enhanced element access with null checks and warnings\r\n * - Improved action validation and error handling\r\n * - Better error reporting in component actions\r\n * - Safer DOM element queries with fallback warnings\r\n *\r\n * Usage:\r\n * ```ts\r\n * class MyComponent extends Component {\r\n * state = // Initial state\r\n * view = state => // Return virtual DOM\r\n * update = {\r\n * 'event': (state, ...args) => // Return new state\r\n * }\r\n * }\r\n *\r\n * // Mount component\r\n * new MyComponent().mount('element-id');\r\n * ```\r\n */\r\n\r\nimport app, { App } from './app';\r\nimport { Reflect } from './decorator'\r\nimport { View, Update, ActionDef, ActionOptions, MountOptions, EventOptions } from './types';\r\nimport directive from './directive';\r\nimport { safeQuerySelector, safeGetElementById } from './type-utils';\r\n\r\nconst componentCache = new Map();\r\nif (!app.find('get-components')) app.on('get-components', o => o.components = componentCache);\r\n\r\nconst REFRESH = state => state;\r\n\r\nexport class Component<T = any, E = any> {\r\n static __isAppRunComponent = true;\r\n private _app = new App();\r\n private _actions = [];\r\n private _global_events = [];\r\n private _state;\r\n private _history = [];\r\n private _history_idx = -1;\r\n private enable_history;\r\n private global_event;\r\n public element;\r\n public rendered;\r\n public mounted;\r\n public unload;\r\n private tracking_id;\r\n private observer;\r\n\r\n\r\n private renderState(state: T, vdom = null) {\r\n if (!this.view) return;\r\n let html = vdom || this.view(state);\r\n app['debug'] && app.run('debug', {\r\n component: this,\r\n _: html ? '.' : '-',\r\n state,\r\n vdom: html,\r\n el: this.element\r\n });\r\n\r\n if (typeof document !== 'object') return;\r\n\r\n const el = (typeof this.element === 'string' && this.element) ?\r\n safeGetElementById(this.element) || safeQuerySelector(this.element) : this.element;\r\n\r\n if (!el) {\r\n console.warn(`Component element not found: ${this.element}`);\r\n return;\r\n }\r\n const tracking_attr = '_c';\r\n if (!this.unload) {\r\n el.removeAttribute && el.removeAttribute(tracking_attr);\r\n } else if (el['_component'] !== this || el.getAttribute(tracking_attr) !== this.tracking_id) {\r\n this.tracking_id = new Date().valueOf().toString();\r\n el.setAttribute(tracking_attr, this.tracking_id);\r\n if (typeof MutationObserver !== 'undefined') {\r\n if (!this.observer) this.observer = new MutationObserver(changes => {\r\n if (changes[0].oldValue === this.tracking_id || !document.body.contains(el)) {\r\n this.unload(this.state);\r\n this.observer.disconnect();\r\n this.observer = null;\r\n }\r\n });\r\n this.observer.observe(document.body, {\r\n childList: true, subtree: true,\r\n attributes: true, attributeOldValue: true, attributeFilter: [tracking_attr]\r\n });\r\n }\r\n }\r\n el['_component'] = this;\r\n\r\n if (!vdom && html) {\r\n html = directive(html, this);\r\n if (this.options.transition && document && document['startViewTransition']) {\r\n document['startViewTransition'](() => app.render(el, html, this));\r\n } else {\r\n app.render(el, html, this);\r\n }\r\n }\r\n this.rendered && this.rendered(this.state);\r\n }\r\n\r\n public setState(state: T, options: ActionOptions & EventOptions\r\n = { render: true, history: false }) {\r\n\r\n const handleAsyncIterator = async (iterator: AsyncIterator<T>) => {\r\n try {\r\n while (true) {\r\n const { value, done } = await iterator.next();\r\n if (done) break;\r\n this.setState(value, options);\r\n }\r\n } catch (e) {\r\n console.error('Error in async iterator:', e);\r\n }\r\n };\r\n\r\n const result = state as any;\r\n if (result?.[Symbol.asyncIterator]) {\r\n // handleAsyncIterator(result[Symbol.asyncIterator]());\r\n this.setState(handleAsyncIterator(result[Symbol.asyncIterator]()) as any, options);\r\n return;\r\n } else if (result?.[Symbol.iterator] && typeof result.next === \"function\") {\r\n for (const value of result) {\r\n this.setState(value, options);\r\n }\r\n return;\r\n } else if (state && state instanceof Promise) {\r\n // Promise will not be saved or rendered\r\n // state will be saved and rendered when promise is resolved\r\n Promise.resolve(state).then(v => {\r\n this.setState(v, options);\r\n this._state = state;\r\n });\r\n } else {\r\n this._state = state;\r\n if (state == null) return;\r\n this.state = state;\r\n if (options.render !== false) {\r\n // before render state\r\n if (options.transition && document && document['startViewTransition']) {\r\n document['startViewTransition'](() => this.renderState(state));\r\n } else {\r\n this.renderState(state);\r\n }\r\n }\r\n if (options.history !== false && this.enable_history) {\r\n this._history = [...this._history, state];\r\n this._history_idx = this._history.length - 1;\r\n }\r\n if (typeof options.callback === 'function') options.callback(this.state);\r\n }\r\n }\r\n\r\n private _history_prev = () => {\r\n this._history_idx--;\r\n if (this._history_idx >= 0) {\r\n this.setState(this._history[this._history_idx], { render: true, history: false });\r\n }\r\n else {\r\n this._history_idx = 0;\r\n }\r\n };\r\n\r\n private _history_next = () => {\r\n this._history_idx++;\r\n if (this._history_idx < this._history.length) {\r\n this.setState(this._history[this._history_idx], { render: true, history: false });\r\n }\r\n else {\r\n this._history_idx = this._history.length - 1;\r\n }\r\n };\r\n\r\n constructor(\r\n protected state?: T,\r\n protected view?: View<T>,\r\n protected update?: Update<T, E>,\r\n protected options?) {\r\n }\r\n\r\n start = (element = null, options?: MountOptions): Component<T, E> => {\r\n this.mount(element, { render: true, ...options });\r\n if (this.mounted && typeof this.mounted === 'function') {\r\n const new_state = this.mounted({}, [], this.state);\r\n (typeof new_state !== 'undefined') && this.setState(new_state);\r\n }\r\n return this;\r\n }\r\n\r\n public mount(element = null, options?: MountOptions): Component<T, E> {\r\n console.assert(!this.element, 'Component already mounted.')\r\n this.options = options = { ...this.options, ...options };\r\n this.element = element;\r\n this.global_event = options.global_event;\r\n this.enable_history = !!options.history;\r\n\r\n if (this.enable_history) {\r\n this.on(options.history.prev || 'history-prev', this._history_prev);\r\n this.on(options.history.next || 'history-next', this._history_next);\r\n }\r\n\r\n if (options.route) {\r\n this.update = this.update || {};\r\n if (!this.update[options.route]) this.update[options.route] = REFRESH;\r\n }\r\n\r\n this.add_actions();\r\n this.state = this.state ?? this['model'] ?? {};\r\n if (typeof this.state === 'function') this.state = this.state();\r\n\r\n this.setState(this.state, { render: !!options.render, history: true });\r\n\r\n if (app['debug']) {\r\n if (componentCache.get(element)) { componentCache.get(element).push(this) }\r\n else { componentCache.set(element, [this]) }\r\n }\r\n return this;\r\n }\r\n\r\n is_global_event(name: string): boolean {\r\n return name && (\r\n this.global_event ||\r\n this._global_events.indexOf(name) >= 0 ||\r\n name.startsWith('#') || name.startsWith('/') || name.startsWith('@'));\r\n }\r\n\r\n add_action(name: string, action, options: ActionOptions = {}) {\r\n if (!action || typeof action !== 'function') {\r\n console.warn(`Component action for '${name}' is not a valid function:`, action);\r\n return;\r\n }\r\n if (options.global) this._global_events.push(name);\r\n this.on(name as any, (...p) => {\r\n\r\n app['debug'] && app.run('debug', {\r\n component: this,\r\n _: '>',\r\n event: name, p,\r\n current_state: this.state,\r\n options\r\n });\r\n\r\n try {\r\n const newState = action(this.state, ...p);\r\n\r\n app['debug'] && app.run('debug', {\r\n component: this,\r\n _: '<',\r\n event: name, p,\r\n newState,\r\n state: this.state,\r\n options\r\n });\r\n\r\n this.setState(newState, options);\r\n } catch (error) {\r\n console.error(`Error in component action '${name}':`, error);\r\n app['debug'] && app.run('debug', {\r\n component: this,\r\n _: '!',\r\n event: name, p,\r\n error,\r\n state: this.state,\r\n options\r\n });\r\n }\r\n }, options);\r\n }\r\n\r\n add_actions() {\r\n const actions = this.update || {};\r\n Reflect.getMetadataKeys(this).forEach(key => {\r\n if (key.startsWith('apprun-update:')) {\r\n const meta = Reflect.getMetadata(key, this)\r\n actions[meta.name] = [this[meta.key].bind(this), meta.options];\r\n }\r\n })\r\n\r\n const all = {};\r\n if (Array.isArray(actions)) {\r\n actions.forEach(act => {\r\n const [name, action, opts] = act as ActionDef<T, E>;\r\n const names = name.toString();\r\n names.split(',').forEach(n => all[n.trim()] = [action, opts])\r\n })\r\n } else {\r\n Object.keys(actions).forEach(name => {\r\n const action = actions[name];\r\n if (typeof action === 'function' || Array.isArray(action)) {\r\n name.split(',').forEach(n => all[n.trim()] = action)\r\n }\r\n })\r\n }\r\n\r\n if (!all['.']) all['.'] = REFRESH;\r\n Object.keys(all).forEach(name => {\r\n const action = all[name];\r\n if (typeof action === 'function') {\r\n this.add_action(name, action);\r\n } else if (Array.isArray(action)) {\r\n this.add_action(name, action[0], action[1]);\r\n }\r\n });\r\n }\r\n\r\n public run(event: E, ...args) {\r\n if (this.state instanceof Promise) {\r\n return Promise.resolve(this.state).then(state => {\r\n this.state = state;\r\n this.run(event, ...args)\r\n });\r\n } else {\r\n const name = event.toString();\r\n return this.is_global_event(name) ?\r\n app.run(name, ...args) :\r\n this._app.run(name, ...args);\r\n }\r\n }\r\n\r\n public on(event: E, fn: (...args) => void, options?: any) {\r\n const name = event.toString();\r\n this._actions.push({ name, fn });\r\n return this.is_global_event(name) ?\r\n app.on(name, fn, options) :\r\n this._app.on(name, fn, options);\r\n }\r\n\r\n public runAsync(event: E, ...args) {\r\n const name = event.toString();\r\n return this.is_global_event(name) ?\r\n app.runAsync(name, ...args) :\r\n this._app.runAsync(name, ...args);\r\n }\r\n\r\n // obsolete\r\n /**\r\n * @deprecated Use runAsync() instead. query() will be removed in a future version.\r\n */\r\n public query(event: E, ...args) {\r\n console.warn('component.query() is deprecated. Use component.runAsync() instead.');\r\n return this.runAsync(event, ...args);\r\n }\r\n\r\n public unmount() {\r\n this.observer?.disconnect();\r\n this._actions.forEach(action => {\r\n const { name, fn } = action;\r\n this.is_global_event(name) ?\r\n app.off(name, fn) :\r\n this._app.off(name, fn);\r\n });\r\n }\r\n}\r\n","/**\n * AppRun Router Implementation with Hierarchical Matching\n * \n * This file provides URL routing capabilities:\n * 1. Hash-based routing (#/path)\n * - Works with SPA mode using hash fragments\n * - Handles hashchange events automatically\n * - No server configuration required\n * 2. Path-based routing (/path) \n * - Works with browser history API\n * - Requires server configuration for SPA routing\n * - Handles popstate events automatically\n * 3. Event-based navigation\n * - Routes trigger corresponding component events\n * - Automatic route parameter extraction\n * - Fallback to 404 handling for unknown routes\n * \n * Features:\n * - Automatic route event firing with ROUTER_EVENT\n * - 404 handling via ROUTER_404_EVENT for unmatched routes\n * - History API integration for seamless navigation\n * - Route parameter parsing and injection into events\n * - URL pattern matching with parameter support\n * - Global and component-level route handling\n * - **NEW: Hierarchical route matching** - progressively tries parent routes\n *\n * Type Safety Improvements (v3.35.1):\n * - Enhanced route type definitions\n * - Better parameter type inference\n * - Improved URL validation and error handling\n * \n * Usage:\n * ```ts\n * // Basic routing\n * app.on('#/home', () => // Show home page);\n * app.on('#/users/:id', (id) => // Show user profile);\n * app.on('/api/*', (path) => // Handle API routes);\n * \n * // Navigate programmatically \n * app.run('route', '#/home');\n * route('/users/123'); // Direct routing\n * \n * // Hierarchical matching examples\n * app.on('/api', (operation, id) => // Handle /api/users/123);\n * app.on('#users', (id, action) => // Handle #users/123/edit);\n * \n * // Hierarchical Route Matching (NEW):\n * // For URL: /api/v1/users/123\n * // Router tries: /api/v1/users/123 → /api/v1/users → /api/v1 → /api → 404\n * // If handler found at /api, it receives: ('v1', 'users', '123')\n * \n * // Base Path Support (NEW):\n * app.basePath = '/myapp'; // For sub-directory deployments\n * // Links: <a href=\"/users/123\"> (relative paths)\n * // Navigation: /myapp/users/123 (full path)\n * // Routing: /users/123 (base path stripped)\n * \n * // Empty Path Handling (NEW):\n * // For URL: \"\" (empty)\n * // Router tries: # → / → #/ → 404 (in priority order)\n * \n * // 404 Behavior (ENHANCED):\n * // Fires only at minimal levels: /a, #a, #/a, a\n * // Never tries root handlers: /, #, #/\n * ```\n */\n\nimport app from './app';\n\n// Helper functions for hierarchical routing\n\n/**\n * Extract clean path segments from URL\n * @param url - The URL to parse\n * @returns Array of path segments\n */\nfunction parsePathSegments(url: string): string[] {\n if (!url) return [];\n\n // Handle different URL types\n if (url.startsWith('#/')) {\n return url.substring(2).split('/');\n } else if (url.startsWith('#')) {\n return url.substring(1).split('/');\n } else if (url.startsWith('/')) {\n return url.substring(1).split('/');\n } else {\n return url.split('/');\n }\n}\n\n/**\n * Normalize trailing slash - convert /a/ to /a\n * @param url - The URL to normalize\n * @returns Normalized URL\n */\nfunction normalizeTrailingSlash(url: string): string {\n if (!url || url === '/' || url === '#' || url === '#/') return url;\n if (url.endsWith('/')) return url.slice(0, -1);\n return url;\n}\n\n/**\n * Validate hierarchy depth and warn if too deep\n * @param segments - Path segments to validate\n */\nfunction validateHierarchyDepth(segments: string[]): void {\n // Count non-empty segments for depth validation\n const nonEmptySegments = segments.filter(Boolean);\n if (nonEmptySegments.length > 11) {\n console.warn(`Deep route hierarchy detected: ${nonEmptySegments.join('/')} (${nonEmptySegments.length} levels)`);\n }\n}\n\n/**\n * Strip base path from URL\n * @param url - The URL to process\n * @param basePath - The base path to remove\n * @returns URL with base path removed\n */\nfunction stripBasePath(url: string, basePath: string): string {\n if (!basePath || basePath === '/' || basePath === '') return url;\n\n // Normalize base path\n const normalizedBasePath = basePath.startsWith('/') ? basePath : '/' + basePath;\n\n if (url.startsWith(normalizedBasePath)) {\n const stripped = url.substring(normalizedBasePath.length);\n return stripped.startsWith('/') ? stripped : '/' + stripped;\n }\n\n return url;\n}\n\n/**\n * Generate hierarchy of routes to try (stops at minimal level)\n * @param segments - Array of path segments\n * @param routeType - Type of route (path, hash, hash-slash, non-prefixed)\n * @returns Array of route names to try in order\n */\nfunction generateRouteHierarchy(segments: string[], routeType: 'path' | 'hash' | 'hash-slash' | 'non-prefixed'): string[] {\n const hierarchy: string[] = [];\n\n // Build hierarchy from most specific to least specific\n for (let i = segments.length; i > 0; i--) {\n const currentSegments = segments.slice(0, i);\n let routeName = '';\n\n switch (routeType) {\n case 'path':\n routeName = '/' + currentSegments.join('/');\n break;\n case 'hash':\n routeName = '#' + currentSegments.join('/');\n break;\n case 'hash-slash':\n routeName = '#/' + currentSegments.join('/');\n break;\n case 'non-prefixed':\n routeName = currentSegments.join('/');\n break;\n }\n\n hierarchy.push(routeName);\n }\n\n return hierarchy;\n}\n\n/**\n * Find handler in hierarchy and return handler info\n * @param hierarchy - Array of route names to try\n * @param originalSegments - Original path segments\n * @returns Handler info if found, null otherwise\n */\nfunction findHandlerInHierarchy(hierarchy: string[], originalSegments: string[]): { eventName: string; parameters: string[] } | null {\n for (let i = 0; i < hierarchy.length; i++) {\n const routeName = hierarchy[i];\n const subscribers = app.find(routeName);\n\n if (subscribers && subscribers.length > 0) {\n // Found handler - calculate remaining parameters\n const handlerDepth = hierarchy.length - i;\n const parameters = originalSegments.slice(handlerDepth);\n\n return {\n eventName: routeName,\n parameters: parameters\n };\n }\n }\n\n return null;\n}\n\n/**\n * Handle empty path with priority order: # → / → #/ → 404\n */\nfunction handleEmptyPath(): void {\n // Try # first\n const hashSubscribers = app.find('#');\n if (hashSubscribers && hashSubscribers.length > 0) {\n app.run('#');\n app.run(ROUTER_EVENT, '#');\n return;\n }\n\n // Try / second\n const pathSubscribers = app.find('/');\n if (pathSubscribers && pathSubscribers.length > 0) {\n app.run('/');\n app.run(ROUTER_EVENT, '/');\n return;\n }\n\n // Try #/ third\n const hashSlashSubscribers = app.find('#/');\n if (hashSlashSubscribers && hashSlashSubscribers.length > 0) {\n app.run('#/');\n app.run(ROUTER_EVENT, '#/');\n return;\n }\n\n // Fire 404 if no handlers found\n console.warn('No subscribers for event: ');\n app.run(ROUTER_404_EVENT, '');\n app.run(ROUTER_EVENT, '');\n}\n\n/**\n * Main hierarchical routing logic\n * @param url - The URL to route\n */\nfunction routeWithHierarchy(url: string): void {\n // Handle empty path\n if (!url) {\n handleEmptyPath();\n return;\n }\n\n // Normalize trailing slash\n url = normalizeTrailingSlash(url);\n\n // Strip base path if configured\n const basePath = app['basePath'];\n if (basePath) {\n url = stripBasePath(url, basePath);\n }\n\n // Parse segments and validate depth\n const segments = parsePathSegments(url);\n validateHierarchyDepth(segments);\n\n // Determine route type\n let routeType: 'path' | 'hash' | 'hash-slash' | 'non-prefixed';\n if (url.startsWith('#/')) {\n routeType = 'hash-slash';\n } else if (url.startsWith('#')) {\n routeType = 'hash';\n } else if (url.startsWith('/')) {\n routeType = 'path';\n } else {\n routeType = 'non-prefixed';\n }\n\n // Generate hierarchy\n const hierarchy = generateRouteHierarchy(segments, routeType);\n\n // Find handler in hierarchy\n const handlerInfo = findHandlerInHierarchy(hierarchy, segments);\n\n if (handlerInfo) {\n // Found handler - publish route with parameters\n publishRoute(handlerInfo.eventName, ...handlerInfo.parameters);\n } else {\n // No handler found - fire 404 with original URL\n if (hierarchy.length > 0) {\n const minimalRoute = hierarchy[hierarchy.length - 1];\n console.warn(`No subscribers for event: ${minimalRoute}`);\n app.run(ROUTER_404_EVENT, url);\n app.run(ROUTER_EVENT, url);\n } else {\n handleEmptyPath();\n }\n }\n}\n\nconst publishRoute = (name: string, ...args: any[]) => {\n if (!name || name === ROUTER_EVENT || name === ROUTER_404_EVENT) return;\n const subscribers = app.find(name);\n if (!subscribers || subscribers.length === 0) {\n console.warn(`No subscribers for event: ${name}`);\n app.run(ROUTER_404_EVENT, name, ...args);\n } else {\n app.run(name, ...args);\n }\n app.run(ROUTER_EVENT, name, ...args);\n}\n\nexport type Route = (url: string, ...args: any[]) => any;\n\nexport const ROUTER_EVENT: string = '//';\nexport const ROUTER_404_EVENT: string = '///';\nexport const route: Route = (url: string) => {\n if (app['lastUrl'] === url) return; // Prevent duplicate routing\n app['lastUrl'] = url;\n\n // Use hierarchical routing logic\n routeWithHierarchy(url);\n}\nexport default route;\n","/**\n * Main AppRun framework entry point\n *\n * This file:\n * 1. Assembles core AppRun modules into a complete framework\n * 2. Exports public API and types\n * 3. Initializes global app instance with:\n * - Virtual DOM rendering\n * - Component system\n * - Router with improved null safety\n * - Web component support\n * - Type-safe React integration\n *\n * Key exports:\n * - app: Global event system instance\n * - Component: Base component class\n * - Decorators: @on, @update, @customElement\n * - Router events and configuration\n * - Web component registration\n *\n * Features:\n * - Event-driven architecture with pub/sub pattern\n * - Virtual DOM rendering with multiple renderer support\n * - Component lifecycle management\n * - Client-side routing with hash/path support\n * - Web Components integration\n * - React compatibility layer\n * - TypeScript support with strong typing\n *\n * Type Safety Improvements (v3.35.1):\n * - Added null checks for DOM event targets\n * - Improved global window object assignments with proper typing\n * - Enhanced React integration parameter validation\n * - Better error handling for invalid event handlers\n * - Safer element access with proper type assertions\n *\n * Usage:\n * ```ts\n * import { app, Component } from 'apprun';\n *\n * // Create components\n * class MyComponent extends Component {\n * state = // Initial state\n * view = state => // Render view\n * update = {\n * 'event': (state, ...args) => // Handle events\n * }\n * }\n * ```\n */\n\nimport app, { App } from './app';\nimport { createElement, render, Fragment, safeHTML } from './vdom';\nimport { Component } from './component';\nimport { VNode, View, Action, Update, EventOptions, ActionOptions, MountOptions, AppStartOptions } from './types';\nimport { on, update, customElement } from './decorator';\nimport webComponent, { CustomElementOptions } from './web-component';\nimport { Route, route, ROUTER_EVENT, ROUTER_404_EVENT } from './router';\nimport { APPRUN_VERSION } from './version';\n\nexport type StatelessComponent<T = {}> = (args: T) => string | VNode | void;\ntype OnDecorator = {\n <T = any>(options?: any): (constructor: Function) => void;\n <E = string>(events?: E, options?: any): (target: any, key: string) => void;\n};\n\nexport {\n App,\n app,\n Component,\n View,\n Action,\n Update,\n on,\n update,\n EventOptions,\n ActionOptions,\n MountOptions,\n Fragment,\n safeHTML\n}\nexport { update as event };\nexport { ROUTER_EVENT, ROUTER_404_EVENT };\nexport { customElement, CustomElementOptions, AppStartOptions };\nexport default app as IApp;\n\nexport interface IApp {\n start<T, E = any>(element?: Element | string, model?: T, view?: View<T>, update?: Update<T, E>,\n options?: AppStartOptions<T>): Component<T, E>;\n on(name: string, fn: (...args: any[]) => void, options?: any): void;\n once(name: string, fn: (...args: any[]) => void, options?: any): void;\n off(name: string, fn: (...args: any[]) => void): void;\n run(name: string, ...args: any[]): number;\n find(name: string): any | any[];\n /** @deprecated Use runAsync() instead. query() will be removed in a future version. */\n query(name: string, ...args: any[]): Promise<any[]>;\n runAsync(name: string, ...args: any[]): Promise<any[]>;\n h(tag: string | Function, props, ...children): VNode | VNode[];\n createElement(tag: string | Function, props, ...children): VNode | VNode[];\n render(element: Element | string, node: VNode): void;\n Fragment(props, ...children): any[];\n route?: Route;\n webComponent(name: string, componentClass, options?: CustomElementOptions): void;\n safeHTML(html: string): any[];\n use_render(render, mode?: 0 | 1);\n use_react(React, ReactDOM);\n version: string;\n}\n\nif (!app.start) {\n\n app.version = APPRUN_VERSION;\n\n app.h = app.createElement = createElement;\n app.render = render;\n app.Fragment = Fragment;\n app.webComponent = webComponent;\n app.safeHTML = safeHTML;\n\n app.start = <T, E = any>(element?: Element | string, model?: T, view?: View<T>, update?: Update<T, E>,\n options?: AppStartOptions<T>): Component<T, E> => {\n const opts = { render: true, global_event: true, ...options };\n const component = new Component<T, E>(model, view, update);\n if (options && options.rendered) component.rendered = options.rendered;\n if (options && options.mounted) component.mounted = options.mounted;\n component.start(element, opts);\n return component;\n };\n\n app.once = app.once || ((name: string, fn: (...args: any[]) => void, options: any = {}) => {\n app.on(name, fn, { ...options, once: true });\n });\n\n // Deprecated: app.query is deprecated in favor of app.runAsync\n app.query = app.query || app.runAsync;\n\n const NOOP = _ => {/* Intentionally empty */ }\n app.on('/', NOOP);\n app.on('debug', _ => NOOP);\n app.on(ROUTER_EVENT, NOOP);\n app.on(ROUTER_404_EVENT, NOOP);\n app.route = route;\n app.on('route', url => app['route'] && app['route'](url));\n\n if (typeof document === 'object') {\n document.addEventListener(\"DOMContentLoaded\", () => {\n const no_init_route = document.body.hasAttribute('apprun-no-init') || app['no-init-route'] || false;\n const use_hash = app.find('#') || app.find('#/') || false;\n\n // console.log(`AppRun ${app.version} started with ${use_hash ? 'hash' : 'path'} routing. Initial load: ${init_load ? 'disabled' : 'enabled'}.`);\n window.addEventListener('hashchange', () => route(location.hash));\n window.addEventListener('popstate', () => route(location.pathname));\n\n if (use_hash) {\n !no_init_route && route(location.hash);\n } else {\n !no_init_route && (() => {\n const basePath = app.basePath || '';\n let initialPath = location.pathname;\n\n // Strip base path if present\n if (basePath && initialPath.startsWith(basePath)) {\n initialPath = initialPath.substring(basePath.length);\n if (!initialPath.startsWith('/')) initialPath = '/' + initialPath;\n }\n\n route(initialPath);\n })();\n document.body.addEventListener('click', e => {\n const element = e.target as HTMLElement;\n if (!element) return;\n\n const menu = (element.tagName === 'A' ? element : element.closest('a')) as HTMLAnchorElement;\n if (menu &&\n menu.origin === location.origin &&\n menu.pathname) {\n e.preventDefault();\n\n // Handle base path for navigation\n const basePath = app.basePath || '';\n const fullPath = basePath + menu.pathname;\n\n history.pushState(null, '', fullPath);\n route(menu.pathname); // Route with relative path (without base path)\n }\n });\n }\n });\n }\n\n type ComponentType = typeof Component & {\n <T = any>(options?: any): (constructor: Function) => void;\n };\n\n if (typeof window === 'object') {\n const globalWindow = window as any;\n globalWindow['Component'] = Component as ComponentType;\n globalWindow['_React'] = globalWindow['React'];\n globalWindow['React'] = app;\n globalWindow['on'] = on as OnDecorator;\n globalWindow['customElement'] = customElement;\n globalWindow['safeHTML'] = safeHTML;\n }\n\n app.use_render = (render, mode = 0) => {\n if (mode === 0) {\n app.render = (el, vdom) => render(vdom, el); // react style\n } else {\n app.render = (el, vdom) => render(el, vdom); // apprun style\n }\n };\n\n app.use_react = (React, ReactDOM) => {\n if (!React || !ReactDOM) {\n console.error('AppRun use_react: React and ReactDOM parameters are required');\n return;\n }\n\n if (typeof React.createElement !== 'function') {\n console.error('AppRun use_react: Invalid React object - createElement method not found');\n return;\n }\n\n if (!React.Fragment) {\n console.error('AppRun use_react: Invalid React object - Fragment not found');\n return;\n }\n\n app.h = app.createElement = React.createElement;\n app.Fragment = React.Fragment;\n\n // React 18+ uses createRoot API\n if (React.version && React.version.startsWith('18')) {\n if (!ReactDOM.createRoot || typeof ReactDOM.createRoot !== 'function') {\n console.error('AppRun use_react: ReactDOM.createRoot not found in React 18+');\n return;\n }\n app.render = (el, vdom) => {\n if (!el || vdom === undefined) return;\n if (!(el as any)._root) (el as any)._root = ReactDOM.createRoot(el);\n (el as any)._root.render(vdom);\n }\n } else {\n // Legacy React versions\n if (!ReactDOM.render || typeof ReactDOM.render !== 'function') {\n console.error('AppRun use_react: ReactDOM.render not found in legacy React');\n return;\n }\n app.render = (el, vdom) => ReactDOM.render(vdom, el);\n }\n }\n}\n","/**\n * Component Directives Implementation\n * \n * This file provides built-in directives for components:\n * 1. Event Binding ($on directives)\n * - $on: Bind DOM events to component events\n * - Supports event delegation and parameters\n * - Handles function, string, and array event handlers\n * - Type-safe event target handling\n * \n * 2. Two-way Data Binding ($bind directive)\n * - $bind: Sync form elements with component state\n * - Handles input types: text, checkbox, radio, number, range\n * - Supports select (single/multiple) and textarea elements\n * - Automatic value type conversion for numbers\n * - Support for complex property paths\n * \n * 3. Custom Directives\n * - Extensible directive system via '$' events\n * - Processes virtual DOM during rendering\n * - Supports custom attribute directives\n * \n * Features:\n * - Automatic state synchronization\n * - Type conversion for form inputs\n * - Event delegation support\n * - Multiple event handler formats\n * - Nested property binding\n * - Custom directive extensibility\n *\n * Type Safety Improvements (v3.35.1):\n * - Added null checks for event targets before type assertions\n * - Proper typing for different HTML element types\n * - Enhanced error handling for invalid event targets\n * - Safer DOM element property access\n *\n * Usage:\n * ```tsx\n * // Event binding\n * <button $onclick=\"event-name\">Click</button>\n * <input $oninput={e => setState(e.target.value)} />\n * \n * // Two-way binding\n * <input $bind=\"state.property\" />\n * <select $bind=\"selected\">...</select>\n * \n * // Array handlers\n * <button $onclick={['handler', param1, param2]}>Click</button>\n * ```\n */\n\nimport app from './app';\nimport { safeEventTarget } from './type-utils';\n\nconst getStateValue = (component, name) => {\n return (name ? component['state'][name] : component['state']) || '';\n}\n\nconst setStateValue = (component, name, value) => {\n if (name) {\n const state = component['state'] || {};\n state[name] = value;\n component.setState(state);\n } else {\n component.setState(value);\n }\n}\n\nconst apply_directive = (key: string, props: {}, tag, component) => {\n if (key.startsWith('$on')) {\n const event = props[key];\n key = key.substring(1)\n if (typeof event === 'boolean') {\n props[key] = e => component.run ? component.run(key, e) : app.run(key, e);\n } else if (typeof event === 'string') {\n props[key] = e => component.run ? component.run(event, e) : app.run(event, e);\n } else if (typeof event === 'function') {\n props[key] = e => component.setState(event(component.state, e));\n } else if (Array.isArray(event)) {\n const [handler, ...p] = event;\n if (typeof handler === 'string') {\n props[key] = e => component.run ? component.run(handler, ...p, e) : app.run(handler, ...p, e);\n } else if (typeof handler === 'function') {\n props[key] = e => component.setState(handler(component.state, ...p, e));\n }\n }\n\n } else if (key === '$bind') {\n const type = props['type'] || 'text';\n const name = typeof props[key] === 'string' ? props[key] : props['name'];\n if (tag === 'input') {\n switch (type) {\n case 'checkbox':\n props['checked'] = getStateValue(component, name);\n props['onclick'] = e => {\n const target = safeEventTarget<HTMLInputElement>(e);\n if (target) {\n setStateValue(component, name || target.name, target.checked);\n }\n };\n break;\n case 'radio':\n props['checked'] = getStateValue(component, name) === props['value'];\n props['onclick'] = e => {\n const target = safeEventTarget<HTMLInputElement>(e);\n if (target) {\n setStateValue(component, name || target.name, target.value);\n }\n };\n break;\n case 'number':\n case 'range':\n props['value'] = getStateValue(component, name);\n props['oninput'] = e => {\n const target = safeEventTarget<HTMLInputElement>(e);\n if (target) {\n setStateValue(component, name || target.name, Number(target.value));\n }\n };\n break;\n default:\n props['value'] = getStateValue(component, name);\n props['oninput'] = e => {\n const target = safeEventTarget<HTMLInputElement>(e);\n if (target) {\n setStateValue(component, name || target.name, target.value);\n }\n };\n }\n } else if (tag === 'select') {\n props['value'] = getStateValue(component, name);\n props['onchange'] = e => {\n const target = safeEventTarget<HTMLSelectElement>(e);\n if (target && !target.multiple) { // multiple selection use $bind on option\n setStateValue(component, name || target.name, target.value);\n }\n }\n } else if (tag === 'option') {\n props['selected'] = getStateValue(component, name);\n props['onclick'] = e => {\n const target = safeEventTarget<HTMLOptionElement>(e);\n if (target) {\n setStateValue(component, name || (target as any).name, target.selected);\n }\n };\n } else if (tag === 'textarea') {\n props['innerHTML'] = getStateValue(component, name);\n props['oninput'] = e => {\n const target = safeEventTarget<HTMLTextAreaElement>(e);\n if (target) {\n setStateValue(component, name || target.name, target.value);\n }\n };\n }\n } else {\n app.run('$', { key, tag, props, component });\n }\n}\n\nconst directive = (vdom, component) => {\n if (Array.isArray(vdom)) {\n return vdom.map(element => directive(element, component));\n } else {\n let { type, tag, props, children } = vdom;\n tag = tag || type;\n children = children || props?.children;\n if (props) Object.keys(props).forEach(key => {\n if (key.startsWith('$')) {\n apply_directive(key, props, tag, component);\n delete props[key];\n }\n });\n if (children) directive(children, component);\n return vdom;\n }\n}\n\nexport default directive;\n","/**\n * Type Safety Utilities for AppRun\n * \n * This file provides utility functions and types to improve type safety\n * across the AppRun framework, including:\n * 1. Safe type assertions with null checks\n * 2. Global object assignment helpers\n * 3. Event target type guards\n * 4. Function validation utilities\n */\n\n/**\n * Safely cast event target to specific HTML element type with null check\n */\nexport function safeEventTarget<T extends HTMLElement = HTMLElement>(event: Event): T | null {\n return event?.target instanceof HTMLElement ? event.target as T : null;\n}\n\n/**\n * Type guard to check if an object is a valid function\n */\nexport function isFunction(obj: any): obj is Function {\n return typeof obj === 'function';\n}\n\n/**\n * Type guard to check if an object is a valid HTML element\n */\nexport function isHTMLElement(obj: any): obj is HTMLElement {\n return obj instanceof HTMLElement;\n}\n\n/**\n * Safely assign properties to global object with type checking\n */\nexport function safeGlobalAssign<T extends Record<string, any>>(\n globalObj: any,\n assignments: T\n): void {\n if (typeof globalObj === 'object' && globalObj !== null) {\n Object.keys(assignments).forEach(key => {\n globalObj[key] = assignments[key];\n });\n }\n}\n\n/**\n * Safely get property from global object with fallback\n */\nexport function safeGlobalGet<T>(\n globalObj: any,\n property: string,\n fallback?: T\n): T | undefined {\n if (typeof globalObj === 'object' && globalObj !== null) {\n return globalObj[property] ?? fallback;\n }\n return fallback;\n}\n\n/**\n * Type-safe wrapper for DOM element queries\n */\nexport function safeQuerySelector<T extends Element = Element>(\n selector: string,\n context: Document | Element = document\n): T | null {\n try {\n return context.querySelector<T>(selector);\n } catch (error) {\n console.warn(`Invalid selector: ${selector}`, error);\n return null;\n }\n}\n\n/**\n * Type-safe wrapper for DOM element by ID\n */\nexport function safeGetElementById<T extends HTMLElement = HTMLElement>(\n id: string\n): T | null {\n try {\n return document.getElementById(id) as T | null;\n } catch (error) {\n console.warn(`Error getting element by id: ${id}`, error);\n return null;\n }\n}\n\n/**\n * Validate and safely execute a function with error handling\n */\nexport function safeExecute<T extends any[], R>(\n fn: ((...args: T) => R) | undefined | null,\n args: T,\n context?: any,\n errorMessage?: string\n): R | undefined {\n if (!isFunction(fn)) {\n if (errorMessage) {\n console.warn(errorMessage, fn);\n }\n return undefined;\n }\n\n try {\n return context ? fn.apply(context, args) : fn(...args);\n } catch (error) {\n console.error(errorMessage || 'Error executing function:', error);\n return undefined;\n }\n}\n\n/**\n * Type definitions for improved global object safety\n */\nexport interface SafeGlobalWindow {\n Component?: any;\n _React?: any;\n React?: any;\n on?: any;\n customElement?: any;\n safeHTML?: any;\n html?: any;\n svg?: any;\n run?: any;\n [key: string]: any;\n}\n\nexport type SafeGlobalContext = SafeGlobalWindow | typeof globalThis | any;\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray<keyof typeof types>} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Schema} from 'property-information'\n */\n\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\nimport {normalize} from './normalize.js'\n\nconst cap = /[A-Z]/g\nconst dash = /-[a-z]/g\nconst valid = /^data[-\\w.:]+$/i\n\n/**\n * Look up info on a property.\n *\n * In most cases the given `schema` contains info on the property.\n * All standard,\n * most legacy,\n * and some non-standard properties are supported.\n * For these cases,\n * the returned `Info` has hints about the value of the property.\n *\n * `name` can also be a valid data attribute or property,\n * in which case an `Info` object with the correctly cased `attribute` and\n * `property` is returned.\n *\n * `name` can be an unknown attribute,\n * in which case an `Info` object with `attribute` and `property` set to the\n * given name is returned.\n * It is not recommended to provide unsupported legacy or recently specced\n * properties.\n *\n *\n * @param {Schema} schema\n * Schema;\n * either the `html` or `svg` export.\n * @param {string} value\n * An attribute-like or property-like name;\n * it will be passed through `normalize` to hopefully find the correct info.\n * @returns {Info}\n * Info.\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let property = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n property = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(property, value)\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Kebab.\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Camel.\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray<Schema>} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record<string, Info>} */\n const property = {}\n /** @type {Record<string, string>} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record<string, string> | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray<string> | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record<string, number | null>} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record<string, Info>} */\n const properties = {}\n /** @type {Record<string, string>} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n },\n space: 'html',\n transform: caseInsensitiveTransform\n})\n","import {caseSensitiveTransform} from './util/case-sensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n boolean,\n commaOrSpaceSeparated,\n commaSeparated,\n number,\n spaceSeparated\n} from './util/types.js'\n\nexport const svg = create({\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n },\n space: 'svg',\n transform: caseSensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n },\n space: 'xlink',\n transform(_, property) {\n return 'xlink:' + property.slice(5).toLowerCase()\n }\n})\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n properties: {xmlnsXLink: null, xmlns: null},\n space: 'xmlns',\n transform: caseInsensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n properties: {xmlBase: null, xmlLang: null, xmlSpace: null},\n space: 'xml',\n transform(_, property) {\n return 'xml:' + property.slice(3).toLowerCase()\n }\n})\n","// Note: types exposed from `index.d.ts`.\nimport {merge} from './lib/util/merge.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\nimport {xlink} from './lib/xlink.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {xml} from './lib/xml.js'\n\nexport {hastToReact} from './lib/hast-to-react.js'\n\nexport const html = merge([aria, htmlBase, xlink, xmlns, xml], 'html')\n\nexport {find} from './lib/find.js'\nexport {normalize} from './lib/normalize.js'\n\nexport const svg = merge([aria, svgBase, xlink, xmlns, xml], 'svg')\n","/**\n * VDOM Property and Attribute Handler\n * Standards-compliant property/attribute handling with caching and special element support\n * Features: Skip logic for preserving user interactions during VDOM reconciliation\n * Exports: updateProps - Main function for DOM element property updates\n * Updated: 2025-01-14 - Added skip logic for focus-sensitive, scroll, and media properties\n */\n\nimport { find, html, svg } from 'property-information';\n\nconst ATTR_PROPS = '_props';\nconst propertyInfoCache = new Map<string, any>();\n\n// Merge old and new props, handling className -> class conversion and null cleanup\nfunction mergeProps(oldProps: { [key: string]: any }, newProps: { [key: string]: any }): { [key: string]: any } {\n if (newProps) {\n newProps['class'] = newProps['class'] || newProps['className'];\n delete newProps['className'];\n }\n\n if (!oldProps || Object.keys(oldProps).length === 0) return newProps || {};\n if (!newProps || Object.keys(newProps).length === 0) {\n const props: { [key: string]: any } = {};\n Object.keys(oldProps).forEach(p => props[p] = null);\n return props;\n }\n\n const props: { [key: string]: any } = {};\n Object.keys(oldProps).forEach(p => {\n if (!(p in newProps)) props[p] = null;\n });\n Object.keys(newProps).forEach(p => props[p] = newProps[p]);\n return props;\n}\n\n// Convert kebab-case to camelCase for dataset keys\nfunction convertKebabToCamelCase(str: string): string {\n if (str.length <= 1) return str.toLowerCase();\n return str.split('-').map((word, index) =>\n index === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()\n ).join('');\n}\n\n// Cached property information lookup\nfunction getPropertyInfo(name: string, isSvg: boolean) {\n const cacheKey = `${name}:${isSvg}`;\n let info = propertyInfoCache.get(cacheKey);\n if (info === undefined) {\n info = find(isSvg ? svg : html, name) || null;\n propertyInfoCache.set(cacheKey, info);\n }\n return info;\n}\n\n\n// Specialized handlers for different attribute types\nfunction setDatasetAttribute(element: Element, attributeName: string, value: any): void {\n const camelKey = convertKebabToCamelCase(attributeName.slice(5));\n if (value == null) {\n delete (element as HTMLElement).dataset[camelKey];\n } else {\n (element as HTMLElement).dataset[camelKey] = String(value);\n }\n}\n\nfunction setEventHandler(element: Element, name: string, value: any): void {\n if (!name.startsWith('on')) return;\n\n if (!value || typeof value === 'function') {\n (element as any)[name] = value;\n } else if (typeof value === 'string') {\n if (value) element.setAttribute(name, value);\n else element.removeAttribute(name);\n }\n}\n\nfunction setBooleanAttribute(element: Element, attributeName: string, value: any): void {\n if (shouldSetBooleanAttribute(value)) {\n element.setAttribute(attributeName, attributeName);\n } else {\n element.removeAttribute(attributeName);\n }\n}\n\nfunction setElementProperty(element: Element, propertyName: string, value: any): void {\n try {\n (element as any)[propertyName] = value;\n } catch (error) {\n setElementAttribute(element, propertyName, value, false);\n }\n}\n\nfunction setElementAttribute(element: Element, attributeName: string, value: any, isSvg: boolean): void {\n if (value == null) {\n element.removeAttribute(attributeName);\n return;\n }\n\n const stringValue = String(value);\n if (isSvg && attributeName.includes(':')) {\n const [prefix] = attributeName.split(':');\n if (prefix === 'xlink') {\n element.setAttributeNS('http://www.w3.org/1999/xlink', attributeName, stringValue);\n } else {\n element.setAttribute(attributeName, stringValue);\n }\n } else {\n element.setAttribute(attributeName, stringValue);\n }\n}\n\nfunction shouldSetBooleanAttribute(value: any): boolean {\n if (value == null || value === false || value === '') return false;\n if (value === true) return true;\n if (typeof value === 'string') {\n const lowerValue = value.toLowerCase();\n return lowerValue !== 'false' && value !== '0';\n }\n return Boolean(value);\n}\n\n// Core property/attribute setting function - handles all property types with skip logic\nfunction setAttributeOrProperty(element: Element, name: string, value: any, isSvg: boolean): void {\n // Check if we should skip this property update to preserve user interaction\n if (shouldSkipPatch(element as HTMLElement, name)) {\n return;\n }\n\n // Special cases with dedicated handling\n if (name === 'style') {\n if ((element as HTMLElement).style.cssText) (element as HTMLElement).style.cssText = '';\n if (typeof value === 'string') (element as HTMLElement).style.cssText = value;\n else if (value && typeof value === 'object') {\n for (const s in value) {\n if ((element as HTMLElement).style[s] !== value[s]) (element as HTMLElement).style[s] = value[s];\n }\n }\n return;\n }\n\n if (name === 'key') {\n if (value !== undefined && value !== null) (element as any).key = value;\n return;\n }\n\n if (name.startsWith('data-')) {\n setDatasetAttribute(element, name, value);\n return;\n }\n\n if (name.startsWith('on')) {\n setEventHandler(element, name, value);\n return;\n }\n\n // Form elements with special property requirements\n if ((element.tagName === 'INPUT' || element.tagName === 'TEXTAREA' || element.tagName === 'SELECT') &&\n (name === 'value' || name === 'selected' || name === 'selectedIndex')) {\n setElementProperty(element, name, value);\n return;\n }\n\n // Input checked needs both property and attribute\n if (element.tagName === 'INPUT' && name === 'checked') {\n setElementProperty(element, name, value);\n setBooleanAttribute(element, name, value);\n return;\n }\n\n // Use property information for standard attributes\n const info = getPropertyInfo(name, isSvg);\n if (info) {\n if (info.boolean || info.overloadedBoolean) {\n setBooleanAttribute(element, info.attribute, value);\n } else if (info.mustUseProperty && !isSvg) {\n setElementProperty(element, info.property, value);\n } else {\n setElementAttribute(element, info.attribute, value, isSvg);\n }\n } else {\n // Fallback handling for unknown attributes\n if (name.startsWith('aria-') || name === 'role') {\n setElementAttribute(element, name, value, isSvg);\n } else if (name in element || (element as any)[name] !== undefined) {\n setElementProperty(element, name, value);\n } else {\n setElementAttribute(element, name, value, isSvg);\n }\n }\n}\n\n// Skip logic for preventing user interaction disruption during VDOM reconciliation\nfunction shouldSkipPatch(dom: HTMLElement, prop: string): boolean {\n if (document.activeElement === dom) {\n return ['value', 'selectionStart', 'selectionEnd', 'selectionDirection']\n .includes(prop);\n }\n if (prop === 'scrollTop' || prop === 'scrollLeft') {\n return true;\n }\n if (dom instanceof HTMLMediaElement &&\n ['currentTime', 'paused', 'playbackRate', 'volume'].includes(prop)) {\n return true;\n }\n return false; // default: allow normal diff logic\n}\n\nfunction isValidAttributeName(name: string): boolean {\n return /^[a-zA-Z_:][\\w\\-:.]*$/.test(name) &&\n !name.includes('<') && !name.includes('>') && !name.includes('\"') && !name.includes(\"'\");\n}\n\n\n// Main exported function for updating element properties\nexport function updateProps(element: Element, props: { [key: string]: any }, isSvg: boolean): void {\n // console.assert(!!element);\n const cached = element[ATTR_PROPS] || {};\n const merged = mergeProps(cached, props);\n element[ATTR_PROPS] = props || {};\n\n applyPropertiesToElement(element, merged, props, isSvg);\n}\n\n// Apply merged properties to element with ref handling\nfunction applyPropertiesToElement(\n element: Element,\n mergedProps: { [key: string]: any },\n originalProps: { [key: string]: any } | null,\n isSvg: boolean\n): void {\n for (const name in mergedProps) {\n if (isValidAttributeName(name)) {\n setAttributeOrProperty(element, name, mergedProps[name], isSvg);\n }\n }\n\n // Handle ref callback\n if (mergedProps && typeof mergedProps['ref'] === 'function') {\n window.requestAnimationFrame(() => mergedProps['ref'](element));\n }\n}\n","/** * VDOM Implementation for AppRun\n * \n * Notes for AppRun’s key prop\n * Use the key prop only if you need to preserve browser-side DOM state (such as cursor \n * position in an <input>, focus, or maintaining state in inline components).\n *\n * For most use cases, especially with stateless or purely data-driven UIs, key is not\n * needed and may decrease performance by forcing DOM moves.\n *\n * AppRun aggressively updates DOM to match your vdom, so DOM node preservation is\n * only valuable when you intentionally depend on browser-managed state.\n *\n * | Use Case | Should I use `key`? | Why |\n * | ----------------------------- | ------------------- | --------------------- |\n * | Preserve input cursor/focus | ✅ Yes | Keeps browser state |\n * | Inline stateful component | ✅ Yes | Preserves component |\n * | Regular data list (stateless) | 🚫 No | Unnecessary DOM moves | \n * | Purely visual updates | 🚫 No | No state to preserve |\n * \n * Features:\n * - Virtual DOM rendering and diffing for efficient DOM updates\n * - JSX Fragment support for both Babel and TypeScript\n * - Element creation with props, children, and event handling\n * - SVG element support with proper namespace handling\n * - Component lifecycle management and caching\n * - Keyed element optimization with automatic cleanup for memory management\n * - Safe HTML insertion and text node creation\n * - Directive processing integration\n * \n * Implementation:\n * - Uses plain JavaScript object for keyCache instead of Map for better performance\n * - Implements automatic cleanup of disconnected elements from keyCache\n * - Supports both string and function-based tags\n * - Handles component mounting and state management\n * - Optimized children updating with minimal DOM operations\n * - Memory-efficient caching with configurable thresholds (500 ops, 1000 max size)\n * \n * Recent Changes:\n * - 2025-07-15: Converted keyCache from Map to plain object ({}) for improved performance\n * - Updated cleanup functions to use object property deletion instead of Map methods\n * - Enhanced memory management with automatic cleanup of disconnected elements\n * - Added comprehensive key prop usage documentation and guidelines\n */\n\nimport { VDOM, VNode } from './types';\nimport directive from './directive';\nimport { updateProps } from './vdom-my-prop-attr';\nexport type Element = any; //HTMLElement | SVGSVGElement | SVGElement;\n\nexport function Fragment(props, ...children): any[] {\n return collect(children);\n}\n\nfunction collect(children) {\n const ch = [];\n const push = (c) => {\n if (c !== null && c !== undefined && c !== '' && c !== false) {\n ch.push((typeof c === 'function' || typeof c === 'object') ? c : `${c}`);\n }\n }\n children && children.forEach(c => {\n if (Array.isArray(c)) {\n c.forEach(i => push(i));\n } else {\n push(c);\n }\n });\n return ch;\n}\n\nconst keyCache: { [key: string]: Element } = {};\nlet cleanupCounter = 0;\nconst CLEANUP_THRESHOLD = 500; // Cleanup every 500 operations\nconst MAX_CACHE_SIZE = 1000;\n\n// Lightweight cleanup function - only runs when needed\nfunction cleanupKeyCache() {\n if (Object.keys(keyCache).length <= MAX_CACHE_SIZE) return; // Skip if under limit\n\n for (const [key, element] of Object.entries(keyCache)) {\n if (!element.isConnected) {\n delete keyCache[key];\n }\n }\n}\n\n// Export cleanup function for manual cleanup if needed\nexport function clearKeyCache() {\n for (const key in keyCache) {\n delete keyCache[key];\n }\n cleanupCounter = 0;\n}\n\nexport function createElement(tag: string | Function | [], props?: {}, ...children) {\n const ch = collect(children);\n if (typeof tag === 'string') return { tag, props, children: ch };\n else if (Array.isArray(tag)) return tag; // JSX fragments - babel\n else if (tag === undefined && children) return ch; // JSX fragments - typescript\n else if (Object.getPrototypeOf(tag).__isAppRunComponent) return { tag, props, children: ch } // createComponent(tag, { ...props, children });\n else if (typeof tag === 'function') return tag(props, ch);\n else throw new Error(`Unknown tag in vdom ${tag}`);\n};\n\nexport const updateElement = (element: Element | string, nodes: VDOM, component = {}) => {\n // tslint:disable-next-line\n if (nodes == null || nodes === false) return;\n const el = (typeof element === 'string' && element) ?\n document.getElementById(element) || document.querySelector(element) : element;\n nodes = directive(nodes, component);\n render(el, nodes, component);\n}\n\nfunction render(element: Element, nodes: VDOM, parent = {}) {\n // tslint:disable-next-line\n if (nodes == null || nodes === false) return;\n nodes = createComponent(nodes, parent);\n if (!element) return;\n const isSvg = element.nodeName === \"SVG\";\n if (Array.isArray(nodes)) {\n updateChildren(element, nodes, isSvg);\n } else {\n updateChildren(element, [nodes], isSvg);\n }\n}\n\nfunction same(el: Element, node: VNode) {\n // if (!el || !node) return false;\n const key1 = el.nodeName;\n const key2 = `${node.tag || ''}`;\n return key1.toUpperCase() === key2.toUpperCase();\n}\n\nfunction update(element: Element, node: VNode, isSvg: boolean) {\n // console.assert(!!element);\n isSvg = isSvg || node.tag === \"svg\";\n if (!same(element, node)) {\n element.parentNode.replaceChild(create(node, isSvg), element);\n return;\n }\n updateChildren(element, node.children, isSvg);\n updateProps(element, node.props, isSvg);\n}\n\nfunction updateChildren(element, children, isSvg: boolean) {\n const old_len = element.childNodes?.length || 0;\n const new_len = children?.length || 0;\n const len = Math.min(old_len, new_len);\n for (let i = 0; i < len; i++) {\n const child = children[i];\n const el = element.childNodes[i];\n if (typeof child === 'string') {\n if (el.textContent !== child) {\n if (el.nodeType === 3) {\n el.nodeValue = child\n } else {\n element.replaceChild(createText(child), el);\n }\n }\n } else if (child instanceof HTMLElement || child instanceof SVGElement) {\n element.insertBefore(child, el);\n } else {\n const key = child.props && child.props['key'];\n if (key) {\n if (el.key === key) {\n update(element.childNodes[i], child, isSvg);\n } else {\n // console.log(el.key, key);\n const old = keyCache[key];\n if (old) {\n // const temp = old.nextSibling;\n element.insertBefore(old, el);\n // temp ? element.insertBefore(el, temp) : element.appendChild(el);\n update(element.childNodes[i], child, isSvg);\n } else {\n element.replaceChild(create(child, isSvg), el);\n }\n }\n } else {\n update(element.childNodes[i], child, isSvg);\n }\n }\n }\n\n let n = element.childNodes?.length || 0;\n while (n > len) {\n element.removeChild(element.lastChild);\n n--;\n }\n\n if (new_len > len) {\n const d = document.createDocumentFragment();\n for (let i = len; i < children.length; i++) {\n d.appendChild(create(children[i], isSvg));\n }\n element.appendChild(d);\n }\n}\n\nexport const safeHTML = (html: string) => {\n const div = document.createElement('section');\n div.insertAdjacentHTML('afterbegin', html)\n return Array.from(div.children);\n}\n\nfunction createText(node) {\n if (node?.indexOf('_html:') === 0) { // ?\n const div = document.createElement('div');\n div.insertAdjacentHTML('afterbegin', node.substring(6))\n return div;\n } else {\n return document.createTextNode(node ?? '');\n }\n}\n\nfunction create(node: VNode | string | HTMLElement | SVGElement, isSvg: boolean): Element {\n // console.assert(node !== null && node !== undefined);\n if ((node instanceof HTMLElement) || (node instanceof SVGElement)) return node;\n if (typeof node === \"string\") return createText(node);\n if (!node.tag || (typeof node.tag === 'function')) return createText(JSON.stringify(node));\n isSvg = isSvg || node.tag === \"svg\";\n const element = isSvg\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", node.tag)\n : document.createElement(node.tag);\n\n updateProps(element, node.props, isSvg);\n if (node.children) node.children.forEach(child => element.appendChild(create(child, isSvg)));\n\n if (node.props && (node.props as any).key !== undefined) {\n (element as any).key = (node.props as any).key;\n keyCache[(node.props as any).key] = element;\n\n // Lightweight cleanup - only when counter reaches threshold\n if (++cleanupCounter >= CLEANUP_THRESHOLD) {\n cleanupKeyCache();\n cleanupCounter = 0;\n }\n }\n return element\n}\n\nfunction render_component(node, parent, idx) {\n const { tag, props, children } = node;\n let key = `_${idx}`;\n let id = props && props['id'];\n if (!id) id = `_${idx}${Date.now()}`;\n else key = id;\n let asTag = 'section';\n if (props && props['as']) {\n asTag = props['as'];\n delete props['as'];\n }\n if (!parent.__componentCache) parent.__componentCache = {};\n let component = parent.__componentCache[key];\n if (!component || !(component instanceof tag) || !component.element) {\n const element = document.createElement(asTag);\n component = parent.__componentCache[key] = new tag({ ...props, children }).mount(element, { render: true });\n } else {\n component.renderState(component.state);\n }\n if (component.mounted) {\n const new_state = component.mounted(props, children, component.state);\n (typeof new_state !== 'undefined') && component.setState(new_state);\n }\n updateProps(component.element, props, false);\n return component.element;\n}\n\nfunction createComponent(node, parent, idx = 0) {\n if (typeof node === 'string') return node;\n if (Array.isArray(node)) return node.map(child => createComponent(child, parent, idx++));\n let vdom = node;\n if (node && typeof node.tag === 'function' && Object.getPrototypeOf(node.tag).__isAppRunComponent) {\n vdom = render_component(node, parent, idx);\n }\n if (vdom && Array.isArray(vdom.children)) {\n const new_parent = vdom.props?._component;\n if (new_parent) {\n let i = 0;\n vdom.children = vdom.children.map(child => createComponent(child, new_parent, i++));\n } else {\n vdom.children = vdom.children.map(child => createComponent(child, parent, idx++));\n }\n }\n return vdom;\n}\n","/**\n * Version Management Utility\n * \n * Single source of truth for AppRun version information.\n * This file ensures version consistency across all modules.\n * \n * The version is derived from package.json and should be updated\n * only when the package version changes.\n */\n\n// Import version from package.json to maintain single source of truth\n// This version string is used across the framework\nexport const APPRUN_VERSION = '3.36.1';\n\n// Version string with prefix for global tracking\nexport const APPRUN_VERSION_GLOBAL = `AppRun-${APPRUN_VERSION}`;\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.0\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=h.fromAttribute(s,t.type)??this._$Ej?.get(e)??null,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.0\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.0\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{Directive as r,PartType as s,directive as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends r{constructor(i){if(super(i),this.it=t,i.type!==s.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=n(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import { createElement, updateElement, Fragment } from './vdom-my';\n\n\nimport { render, svg, html, noChange, nothing } from 'lit';\nimport { directive, Directive, PartInfo, ElementPart, DirectiveResult, EventPart, PartType } from 'lit/directive.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport app from './apprun';\n\nfunction _render(element, vdom, parent?) {\n if (!vdom) return;\n if (typeof vdom === 'string') {\n if (!element['_$litPart$']) element.replaceChildren();\n render(html`${unsafeHTML(vdom)}`, element);\n } else if (vdom['_$litType$']) {\n if (!element['_$litPart$']) element.replaceChildren();\n render(vdom, element);\n } else {\n updateElement(element, vdom, parent);\n element['_$litPart$'] = undefined;\n }\n}\n\nexport class RunDirective extends Directive {\n // State stored in class field\n value: number | undefined;\n constructor(partInfo: PartInfo) {\n super(partInfo);\n // When necessary, validate part in constructor using `part.type`\n if (partInfo.type !== PartType.EVENT) { // In lit v3, use PartType.EVENT\n throw new Error('run() can only be used in event handlers');\n }\n }\n // Override update to perform any direct DOM manipulation\n update(part: EventPart, props: Array<any>): DirectiveResult {\n /* Any imperative updates to DOM/parts would go here */\n const element = part.element;\n const name = part.name;\n const [eventOrFn, ...args] = props;\n \n const getComponent = () => {\n let el = element;\n let component = el['_component'];\n while (!component && el) {\n el = el.parentElement;\n component = el && el['_component'];\n }\n console.assert(!!component, 'Component not found.');\n return component;\n }\n\n if (typeof eventOrFn === 'string') {\n element[`on${name}`] = e => {\n const component = getComponent();\n component ? component.run(eventOrFn, ...args, e) : app.run(eventOrFn, ...args, e)\n }\n } else if (typeof eventOrFn === 'function') {\n element[`on${name}`] = e => getComponent().setState(eventOrFn(getComponent().state, ...args, e));\n }\n return this.render();\n }\n render() {\n return noChange;\n }\n}\n\nconst run = directive(RunDirective) as any;\nexport { createElement, Fragment, html, svg, _render as render, run };\n","import app from './apprun'\nimport { safeGlobalAssign, SafeGlobalContext } from './type-utils';\nexport {\n app, Component, View, Action, Update, on, update, event, EventOptions,\n customElement, CustomElementOptions,\n ROUTER_404_EVENT, ROUTER_EVENT, safeHTML\n} from './apprun'\nimport { createElement, render, Fragment, html, svg, run } from './vdom-lit-html';\nexport { html, svg, render, run }\n\napp.createElement = createElement;\napp.render = render;\napp.Fragment = Fragment;\n\nexport default app;\n\nif (typeof window === 'object') {\n const globalWindow = window as SafeGlobalContext;\n safeGlobalAssign(globalWindow, {\n 'React': globalWindow['_React'] || app,\n 'html': html,\n 'svg': svg,\n 'run': run\n });\n}\n"],"names":["root","factory","exports","module","define","amd","this","App","constructor","_events","on","name","fn","options","push","off","subscribers","filter","sub","find","run","args","getSubscribers","console","assert","length","forEach","error","delay","Object","keys","apply","once","_t","clearTimeout","setTimeout","runAsync","promises","map","Promise","resolve","reject","all","query","warn","events","evt","endsWith","startsWith","replace","sort","a","b","event","AppRunVersions","_app","window","g","self","app","_AppRunVersions","customElement","componentClass","HTMLElement","super","component","_component","state","observedAttributes","attr","toLowerCase","connectedCallback","isConnected","opts","_shadowRoot","shadow","attachShadow","mode","attrMap","reduce","lc","_attrMap","props","Array","from","attributes","item","value","undefined","defineProperty","get","set","attributeChangedCallback","configurable","enumerable","requestAnimationFrame","children","mount","_props","dispatchEvent","bind","mounted","new_state","render","disconnectedCallback","unload","unmount","oldValue","mappedName","customElements","Reflect","meta","WeakMap","defineMetadata","metadataKey","metadataValue","target","has","getMetadataKeys","getPrototypeOf","getMetadata","update","key","descriptor","toString","componentCache","Map","o","components","REFRESH","Component","renderState","vdom","view","html","_","el","element","document","tracking_attr","getAttribute","tracking_id","Date","valueOf","setAttribute","MutationObserver","observer","changes","body","contains","disconnect","observe","childList","subtree","attributeOldValue","attributeFilter","removeAttribute","directive","transition","rendered","setState","history","result","Symbol","asyncIterator","async","iterator","done","next","e","handleAsyncIterator","then","v","_state","enable_history","_history","_history_idx","callback","_actions","_global_events","_history_prev","_history_next","start","global_event","prev","route","add_actions","is_global_event","indexOf","add_action","action","global","p","current_state","newState","actions","isArray","act","split","n","trim","handleEmptyPath","hashSubscribers","ROUTER_EVENT","pathSubscribers","hashSlashSubscribers","ROUTER_404_EVENT","__isAppRunComponent","publishRoute","url","slice","normalizeTrailingSlash","basePath","normalizedBasePath","stripped","substring","stripBasePath","segments","parsePathSegments","routeType","nonEmptySegments","Boolean","join","validateHierarchyDepth","hierarchy","i","currentSegments","routeName","generateRouteHierarchy","handlerInfo","originalSegments","handlerDepth","eventName","parameters","findHandlerInHierarchy","minimalRoute","routeWithHierarchy","version","h","createElement","Fragment","webComponent","safeHTML","model","NOOP","addEventListener","no_init_route","hasAttribute","use_hash","location","hash","pathname","initialPath","menu","tagName","closest","origin","preventDefault","fullPath","pushState","globalWindow","use_render","use_react","React","ReactDOM","createRoot","_root","getStateValue","setStateValue","type","tag","handler","checked","Number","multiple","selected","apply_directive","safeEventTarget","safeGlobalAssign","globalObj","assignments","safeQuerySelector","selector","context","querySelector","safeGetElementById","id","getElementById","Info","property","attribute","prototype","booleanish","boolean","commaOrSpaceSeparated","commaSeparated","defined","mustUseProperty","number","overloadedBoolean","spaceSeparated","space","powers","increment","checks","DefinedInfo","mask","index","mark","check","values","normalize","cap","dash","valid","kebab","$0","camelcase","charAt","toUpperCase","Schema","normal","merge","definitions","definition","assign","create","properties","normals","entries","info","transform","includes","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","caseSensitiveTransform","caseInsensitiveTransform","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","acceptCharset","accessKey","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","alt","as","autoCapitalize","autoComplete","autoFocus","autoPlay","blocking","capture","charSet","cite","className","cols","colSpan","content","contentEditable","controls","controlsList","coords","crossOrigin","data","dateTime","decoding","default","defer","dir","dirName","disabled","download","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","kind","label","lang","language","list","loading","loop","low","manifest","max","maxLength","media","method","min","minLength","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","pattern","ping","placeholder","playsInline","popover","popoverTarget","popoverTargetAction","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rows","rowSpan","sandbox","scope","scoped","seamless","shadowRootClonable","shadowRootDelegatesFocus","shadowRootMode","shape","size","sizes","slot","span","spellCheck","src","srcDoc","srcLang","srcSet","step","style","tabIndex","title","translate","typeMustMatch","useMap","width","wrap","writingSuggestions","align","aLink","archive","axis","background","bgColor","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","clear","code","codeBase","codeType","color","compact","declare","face","frame","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","object","profile","prompt","rev","rightMargin","rules","scheme","scrolling","standby","summary","text","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","results","security","unselectable","svg","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","transformOrigin","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","begin","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","d","defaultAction","descent","diffuseConstant","direction","display","dur","divisor","dx","dy","edgeMode","editable","elevation","end","exponent","externalResourcesRequired","fill","filterRes","filterUnits","focusable","focusHighlight","format","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","offset","opacity","operator","order","orient","orientation","overflow","overlay","path","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","r","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","string","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","to","u1","u2","unicode","viewBox","viewTarget","visibility","widths","x","x1","x2","xChannelSelector","y","y1","y2","yChannelSelector","z","zoomAndPan","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xmlns","xmlnsxlink","xmlnsXLink","xml","xmlBase","xmlLang","xmlSpace","ATTR_PROPS","propertyInfoCache","setBooleanAttribute","shouldSetBooleanAttribute","setElementProperty","propertyName","setElementAttribute","isSvg","stringValue","String","setAttributeNS","setAttributeOrProperty","dom","prop","activeElement","HTMLMediaElement","cssText","s","camelKey","str","word","dataset","setDatasetAttribute","setEventHandler","cacheKey","schema","Type","test","rest","dashes","getPropertyInfo","isValidAttributeName","updateProps","merged","oldProps","newProps","mergeProps","mergedProps","originalProps","applyPropertiesToElement","collect","ch","c","keyCache","cleanupCounter","Error","updateElement","nodes","parent","createComponent","nodeName","updateChildren","node","key1","key2","same","parentNode","replaceChild","old_len","childNodes","new_len","len","Math","child","textContent","nodeType","nodeValue","createText","SVGElement","insertBefore","old","removeChild","lastChild","createDocumentFragment","appendChild","div","insertAdjacentHTML","createTextNode","JSON","stringify","createElementNS","cleanupKeyCache","idx","now","asTag","__componentCache","render_component","new_parent","APPRUN_VERSION","APPRUN_VERSION_GLOBAL","t","ATTRIBUTE","CHILD","PROPERTY","BOOLEAN_ATTRIBUTE","EVENT","ELEMENT","_$litDirective$","_$AU","_$AM","_$AT","_$Ct","_$Ci","_$AS","globalThis","trustedTypes","createPolicy","createHTML","random","toFixed","l","createComment","f","m","RegExp","$","_$litType$","strings","T","for","E","A","C","createTreeWalker","P","hasOwnProperty","V","u","lastIndex","exec","N","parts","currentNode","firstChild","replaceWith","nextNode","hasAttributes","getAttributeNames","ctor","H","I","L","emptyScript","append","innerHTML","S","_$Co","_$Cl","_$AO","M","_$AV","_$AN","_$AD","creationScope","importNode","R","nextSibling","_$AI","_$Cv","_$AH","_$AA","_$AB","startNode","endNode","_$AR","O","_$AC","_$AP","remove","setConnected","j","arguments","toggleAttribute","passive","removeEventListener","handleEvent","call","host","litHtmlPolyfillSupport","litHtmlVersions","B","renderBefore","_$litPart$","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","Function","obj","toStringTag","ShadowRoot","ShadyCSS","nativeShadow","Document","CSSStyleSheet","_$cssResult$","styleSheet","replaceSync","adoptedStyleSheets","litNonce","cssRules","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","reactiveElementPolyfillSupport","toAttribute","fromAttribute","parse","converter","reflect","useDefault","hasChanged","metadata","litPropertyMetadata","addInitializer","_$Ei","finalize","_$Eh","createProperty","wrapped","elementProperties","noAccessor","getPropertyDescriptor","requestUpdate","getPropertyOptions","finalized","_$Eu","elementStyles","finalizeStyles","styles","Set","flat","reverse","unshift","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","enableUpdating","_$AL","_$E_","addController","_$EO","add","renderRoot","hostConnected","removeController","delete","createRenderRoot","shadowRoot","shadowRootOptions","hostDisconnected","_$AK","_$ET","_$Ej","_$EP","_$Eq","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","_$EM","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","ReactiveElement","reactiveElementVersions","renderOptions","_$Do","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","it","directiveName","raw","resultType","_render","replaceChildren","RunDirective","partInfo","part","eventOrFn","getComponent","parentElement"],"sourceRoot":""}