@stacksjs/hello-world-stx 0.75.330 → 0.75.334

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 (37) hide show
  1. package/README.md +7 -0
  2. package/dist/bundle.js +474 -0
  3. package/dist/bundle.js.map +23 -0
  4. package/dist/custom-elements.d.ts +153 -0
  5. package/dist/custom-elements.json +927 -0
  6. package/dist/index.d.ts +13 -0
  7. package/dist/index.js +13 -0
  8. package/dist/runtime.js +309 -0
  9. package/dist/ssr.d.ts +27 -0
  10. package/dist/ssr.js +388 -0
  11. package/dist/stacks-context-menu-item.d.ts +27 -0
  12. package/dist/stacks-context-menu-item.js +85 -0
  13. package/dist/stacks-context-menu.d.ts +24 -0
  14. package/dist/stacks-context-menu.js +35 -0
  15. package/dist/stacks-desktop-icon.d.ts +33 -0
  16. package/dist/stacks-desktop-icon.js +114 -0
  17. package/dist/stacks-feature-button.d.ts +26 -0
  18. package/dist/stacks-feature-button.js +56 -0
  19. package/dist/stacks-input-group.d.ts +28 -0
  20. package/dist/stacks-input-group.js +68 -0
  21. package/dist/stacks-login-form.d.ts +28 -0
  22. package/dist/stacks-login-form.js +85 -0
  23. package/dist/stacks-login-screen.d.ts +26 -0
  24. package/dist/stacks-login-screen.js +77 -0
  25. package/dist/stacks-notification-popup.d.ts +26 -0
  26. package/dist/stacks-notification-popup.js +85 -0
  27. package/dist/stacks-package-item.d.ts +26 -0
  28. package/dist/stacks-package-item.js +49 -0
  29. package/dist/stacks-start-menu-item.d.ts +28 -0
  30. package/dist/stacks-start-menu-item.js +99 -0
  31. package/dist/stacks-start-menu.d.ts +26 -0
  32. package/dist/stacks-start-menu.js +85 -0
  33. package/dist/stacks-taskbar.d.ts +24 -0
  34. package/dist/stacks-taskbar.js +63 -0
  35. package/dist/stacks-window.d.ts +31 -0
  36. package/dist/stacks-window.js +104 -0
  37. package/package.json +4 -4
@@ -0,0 +1,23 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["runtime.js", "stacks-context-menu.js", "stacks-context-menu-item.js", "stacks-desktop-icon.js", "stacks-feature-button.js", "stacks-input-group.js", "stacks-login-form.js", "stacks-login-screen.js", "stacks-notification-popup.js", "stacks-package-item.js", "stacks-start-menu.js", "stacks-start-menu-item.js", "stacks-taskbar.js", "stacks-window.js"],
4
+ "sourcesContent": [
5
+ "const HTMLElementBase = globalThis.HTMLElement || class {};\n\nconst escapeHTML = (value) => String(value ?? '')\n .replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;')\n .replaceAll('\"', '&quot;').replaceAll(\"'\", '&#039;');\n\nconst valueAt = (host, path) => {\n const parts = path.trim().split('.');\n const first = parts.shift();\n // Render bindings read declared props, including attributes whose names\n // also belong to the native DOM API. The public element keeps that API.\n let value = host._values && Object.prototype.hasOwnProperty.call(host._values, first)\n ? host._values[first]\n : host[first];\n for (const part of parts) value = value?.[part];\n return typeof value === 'function' ? value.call(host) : value;\n};\n\nconst deserialize = (value, type, fallback) => {\n if (value === null) return type === 'boolean' ? false : fallback;\n if (type === 'boolean') return value !== 'false' && value !== '0';\n if (type === 'number') return Number(value);\n if (type === 'object' || type === 'array') {\n try { return JSON.parse(value); }\n catch { return fallback; }\n }\n return value;\n};\n\nconst serialize = (value, type) => {\n if (value == null || value === false) return null;\n if (type === 'boolean') return '';\n if (type === 'object' || type === 'array') return JSON.stringify(value);\n return String(value);\n};\n\nconst cloneDefault = (value, type) => {\n if (value == null || (type !== 'object' && type !== 'array')) return value;\n if (typeof structuredClone === 'function') return structuredClone(value);\n return JSON.parse(JSON.stringify(value));\n};\n\nconst defaultFor = property => cloneDefault(\n property.default ?? ({ string: '', number: 0, boolean: false, object: {}, array: [] })[property.type],\n property.type,\n);\n\nexport class StxElement extends HTMLElementBase {\n static definition = {};\n static get observedAttributes() { return this.definition.observedAttributes || []; }\n\n constructor() {\n super();\n this._values = Object.create(null);\n this._reflecting = false;\n this._connected = false;\n this._hasConnected = false;\n this._initializing = false;\n this._updatePending = false;\n this._listeners = new Map();\n const definition = this.constructor.definition;\n for (const [name, property] of Object.entries(definition.properties || {})) {\n this._values[name] = defaultFor(property);\n }\n if (definition.shadowMode && this.attachShadow && !this.shadowRoot) {\n this._closedRoot = this.attachShadow({ mode: definition.shadowMode });\n }\n }\n\n get updateComplete() { return this._updateComplete || Promise.resolve(); }\n get renderRoot() { return this._closedRoot || this.shadowRoot || this; }\n\n connectedCallback() {\n if (this._connected) return;\n this._connected = true;\n this._initializing = true;\n const definition = this.constructor.definition;\n for (const [name, property] of Object.entries(definition.properties || {})) {\n const attribute = property.attribute === false ? null : (property.attribute || name.replace(/[A-Z]/g, letter => '-' + letter.toLowerCase()));\n if (attribute && this.hasAttribute?.(attribute)) this._values[name] = deserialize(this.getAttribute(attribute), property.type, defaultFor(property));\n }\n // Properties assigned before customElements.define() become own properties.\n // Upgrade them after attributes so imperative state wins, matching the\n // platform's property-first custom-element initialization convention.\n for (const name of Object.keys(definition.properties || {})) this._upgradeProperty(name);\n this._initializing = false;\n const root = this.renderRoot;\n const hasMarkup = [...(root.childNodes || [])].some(node => node.nodeType !== 3 || node.textContent.trim());\n const firstConnection = !this._hasConnected;\n if (!(firstConnection && definition.progressive && hasMarkup)) this._render();\n else this._upgradeDeclarativeEvents();\n this._bindEvents();\n if (firstConnection) {\n this._hasConnected = true;\n this.setAttribute?.('hydrated', '');\n this.dispatchEvent?.(new CustomEvent('stx:hydrated', { bubbles: true, composed: true }));\n }\n // Called last, so a component that acquires something sees its own rendered\n // markup and its events already bound. Reported rather than rethrown: a\n // component that fails to set up must not take the element down with it.\n try { this.onConnect?.(); }\n catch (error) { console.error('[stx] onConnect failed', error); }\n }\n\n disconnectedCallback() {\n this._connected = false;\n // Called before the framework releases anything, so the element is still\n // intact for a component that needs to read it on the way out, and inside\n // try/finally so a throwing hook cannot leak the framework's own listeners.\n try { this.onDisconnect?.(); }\n catch (error) { console.error('[stx] onDisconnect failed', error); }\n finally {\n for (const [event, listener] of this._listeners) this.renderRoot.removeEventListener(event, listener);\n this._listeners.clear();\n }\n }\n\n attributeChangedCallback(attribute, oldValue, newValue) {\n if (oldValue === newValue || this._reflecting) return;\n const definition = this.constructor.definition;\n const name = definition.attributeToProperty?.[attribute];\n if (!name) return;\n const property = definition.properties[name];\n const value = deserialize(newValue, property.type, defaultFor(property));\n if (!Object.is(this._values[name], value)) {\n this._values[name] = value;\n this.requestUpdate();\n }\n }\n\n /**\n * The props a compiled render reads.\n *\n * Its own method rather than _values directly, so a component that sets a\n * property before upgrade still sees it, and so the generated code has one\n * name to depend on rather than a private field's shape.\n */\n _props() {\n return this._values;\n }\n\n requestUpdate() {\n if (!this._connected || this._initializing || this._updatePending) return this.updateComplete;\n this._updatePending = true;\n this._updateComplete = new Promise((resolve) => {\n queueMicrotask(() => {\n this._updatePending = false;\n if (this._connected) this._render();\n resolve();\n });\n });\n return this._updateComplete;\n }\n\n emit(name, detail, options = {}) {\n return this.dispatchEvent(new CustomEvent(name, {\n detail, bubbles: true, composed: true, ...options,\n }));\n }\n\n _upgradeProperty(name) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) return;\n const value = this[name];\n delete this[name];\n this[name] = value;\n }\n\n _upgradeDeclarativeEvents() {\n for (const element of this.renderRoot.querySelectorAll?.('*') || []) {\n const names = element.getAttributeNames?.() || [...(element.attributes || [])].filter(Boolean).map(attribute => attribute.name);\n for (const attributeName of names) {\n if (!attributeName?.startsWith('@')) continue;\n const [event, ...modifiers] = attributeName.slice(1).split('.');\n element.setAttribute('data-stx-on-' + event, element.getAttribute(attributeName));\n if (modifiers.length) element.setAttribute('data-stx-mod-' + event, modifiers.join(' '));\n element.removeAttribute(attributeName);\n }\n }\n }\n\n _bindEvents() {\n for (const event of this.constructor.definition.eventTypes || []) {\n if (this._listeners.has(event)) continue;\n const listener = ($event) => {\n const selector = '[data-stx-on-' + event + ']';\n const target = $event.target?.closest?.(selector);\n if (!target || !this.renderRoot.contains(target)) return;\n const modifiers = (target.getAttribute('data-stx-mod-' + event) || '').split(' ');\n if (modifiers.includes('prevent')) $event.preventDefault();\n if (modifiers.includes('stop')) $event.stopPropagation();\n const method = target.getAttribute('data-stx-on-' + event);\n if (typeof this[method] === 'function') this[method]($event);\n };\n this.renderRoot.addEventListener(event, listener);\n this._listeners.set(event, listener);\n }\n }\n\n _render() {\n const definition = this.constructor.definition;\n const root = this.renderRoot;\n const active = root.activeElement || (root.contains?.(globalThis.document?.activeElement) ? globalThis.document.activeElement : null);\n const focusKey = active && (active.getAttribute?.('data-key') || active.id || active.getAttribute?.('name'));\n const selection = active && 'selectionStart' in active ? [active.selectionStart, active.selectionEnd] : null;\n // A compiled component renders itself: the control flow and the derived\n // values were turned into JavaScript at build time, so there is nothing to\n // interpret here and nothing that needs an eval the page's CSP forbids.\n // The string template remains for components that carry no logic.\n let html = typeof this.render === 'function'\n ? this.render(RENDER_HELPERS)\n : definition.template\n .replace(new RegExp(\"\\\\{!!\\\\s*([\\\\w$.]+)\\\\s*!!\\\\}\", 'g'), (_match, expression) => String(valueAt(this, expression) ?? ''))\n .replace(new RegExp(\"\\\\{\\\\{\\\\s*([\\\\w$.]+)\\\\s*\\\\}\\\\}\", 'g'), (_match, expression) => escapeHTML(valueAt(this, expression)));\n if (definition.shadowMode && definition.styles) html = '<style>' + definition.styles + '</style>' + html;\n root.innerHTML = html;\n this._applyBindings();\n this._bindEvents();\n if (focusKey) {\n const escaped = globalThis.CSS?.escape ? globalThis.CSS.escape(focusKey) : focusKey.replace(/[\"\\\\]/g, '\\$&');\n const next = root.querySelector('[data-key=\"' + escaped + '\"],#' + escaped + ',[name=\"' + escaped + '\"]');\n next?.focus?.();\n if (selection && next?.setSelectionRange) next.setSelectionRange(selection[0], selection[1]);\n }\n this.dispatchEvent?.(new CustomEvent('stx:updated', { bubbles: false }));\n }\n\n _applyBindings() {\n for (const binding of this.constructor.definition.bindings || []) {\n const element = this.renderRoot.querySelector('[data-stx-bind-' + binding.id + ']');\n if (!element) continue;\n const value = valueAt(this, binding.expression);\n if (binding.name === 'class') element.className = value || '';\n else if (binding.name === 'style' && typeof value === 'object') {\n Object.assign(element.style, value);\n }\n else if (typeof value === 'boolean') {\n element.toggleAttribute(binding.name, value);\n if (binding.name in element) element[binding.name] = value;\n }\n else if (value == null || value === false) element.removeAttribute(binding.name);\n else element.setAttribute(binding.name, String(value));\n }\n }\n}\n\n/**\n * What a compiled render is handed.\n *\n * Passed in rather than closed over so the generated code names no globals, and\n * a component module stays readable on its own: __escape is visibly a\n * parameter, not something the bundler happened to leave in scope.\n */\nconst RENDER_HELPERS = {\n escape: escapeHTML,\n // The raw form is the author declaring the value is markup. Null becomes an\n // empty string rather than the word \"null\", which is the only sensible\n // reading of a missing fragment.\n raw: (value) => String(value ?? ''),\n // A loop over something absent runs zero times. Throwing here would fail a\n // whole page over one empty list, which is never what the author meant.\n values: (value) => value == null ? [] : (value[Symbol.iterator] ? value : Object.values(value)),\n entries: (value) => value == null ? [] : (Array.isArray(value) ? value.entries() : Object.entries(value)),\n};\n\nexport function defineComponent(Component, definition) {\n const properties = definition.properties || {};\n const attributeToProperty = {};\n const observedAttributes = [];\n for (const [name, property] of Object.entries(properties)) {\n const attribute = property.attribute === false ? null : (property.attribute || name.replace(/[A-Z]/g, letter => '-' + letter.toLowerCase()));\n if (attribute) {\n attributeToProperty[attribute] = name;\n observedAttributes.push(attribute);\n }\n // A style prop is an attribute value, not a replacement for the browser's\n // CSSStyleDeclaration. Native event handler accessors must survive too.\n if (name in HTMLElementBase.prototype) {\n if (!attribute) throw new TypeError('STX prop \"' + name + '\" overlaps the native DOM API and needs an attribute binding');\n continue;\n }\n Object.defineProperty(Component.prototype, name, {\n configurable: true,\n enumerable: true,\n get() { return this._values[name]; },\n set(value) {\n const oldValue = this._values[name];\n if (Object.is(oldValue, value)) return;\n this._values[name] = value;\n if (property.reflect && attribute && !this._reflecting) {\n const serialized = serialize(value, property.type);\n this._reflecting = true;\n if (serialized === null) this.removeAttribute(attribute);\n else this.setAttribute(attribute, serialized);\n this._reflecting = false;\n }\n this.requestUpdate();\n this.dispatchEvent?.(new CustomEvent(name + '-changed', {\n detail: { value, oldValue }, bubbles: true, composed: true,\n }));\n },\n });\n }\n Component.definition = { ...definition, attributeToProperty, observedAttributes };\n const registry = globalThis.customElements || globalThis.window?.customElements;\n if (registry && !registry.get(definition.tag)) {\n registry.define(definition.tag, Component);\n }\n return Component;\n}\n",
6
+ "import { StxElement, defineComponent } from './runtime.js';\n\n/** ContextMenu web component generated from ContextMenu.stx. */\nexport class ContextMenu extends StxElement {\n\n render(__helpers) {\n const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;\n const { id } = this._props();\n let out = \"\";\n out += '<div class=\"context-menu\" id=\"';\n out += __escape(id);\n out += `\" style=\"display: none;\">\n <slot />\n </div>`;\n return out;\n }\n\n}\n\ndefineComponent(ContextMenu, {\n \"tag\": \"stacks-context-menu\",\n \"template\": \"<div class=\\\"context-menu\\\" id=\\\"{{ id }}\\\" style=\\\"display: none;\\\">\\n <slot />\\n </div>\",\n \"styles\": \"\",\n \"shadowMode\": false,\n \"progressive\": true,\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"reflect\": true\n }\n },\n \"eventTypes\": [],\n \"bindings\": []\n});\nexport default ContextMenu;\n",
7
+ "import { StxElement, defineComponent } from './runtime.js';\n\n/** ContextMenuItem web component generated from ContextMenuItem.stx. */\nexport class ContextMenuItem extends StxElement {\n\n render(__helpers) {\n const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;\n const { icon = \"\", label, onclick, hasSubmenu = false } = this._props();\n let out = \"\";\n if (hasSubmenu) {\n out += `\n <div class=\"context-menu-item has-submenu\">\n `;\n if (icon) {\n out += `\n <div class=\"context-menu-item-icon\">`;\n out += __escape(icon);\n out += `</div>\n `;\n }\n out += \"<div>\";\n out += __escape(label);\n out += `</div>\n <div class=\"context-submenu\">\n <slot />\n </div>\n </div>\n `;\n } else {\n out += '<button class=\"context-menu-item\" ';\n if (onclick) {\n out += 'onclick=\"';\n out += __escape(onclick);\n out += '\"';\n }\n out += `>\n `;\n if (icon) {\n out += `\n <div class=\"context-menu-item-icon\">`;\n out += __escape(icon);\n out += `</div>\n `;\n }\n out += \"<div>\";\n out += __escape(label);\n out += `</div>\n </button>\n `;\n }\n return out;\n }\n\n}\n\ndefineComponent(ContextMenuItem, {\n \"tag\": \"stacks-context-menu-item\",\n \"template\": \"@if (hasSubmenu)\\n <div class=\\\"context-menu-item has-submenu\\\">\\n @if (icon)\\n <div class=\\\"context-menu-item-icon\\\">{{ icon }}</div>\\n @endif\\n <div>{{ label }}</div>\\n <div class=\\\"context-submenu\\\">\\n <slot />\\n </div>\\n </div>\\n @else\\n <button class=\\\"context-menu-item\\\" @if (onclick)onclick=\\\"{{ onclick }}\\\"@endif>\\n @if (icon)\\n <div class=\\\"context-menu-item-icon\\\">{{ icon }}</div>\\n @endif\\n <div>{{ label }}</div>\\n </button>\\n @endif\",\n \"styles\": \"\",\n \"shadowMode\": false,\n \"progressive\": true,\n \"properties\": {\n \"icon\": {\n \"type\": \"string\",\n \"default\": \"\",\n \"reflect\": true\n },\n \"label\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"onclick\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"hasSubmenu\": {\n \"type\": \"boolean\",\n \"default\": false,\n \"reflect\": true\n }\n },\n \"eventTypes\": [],\n \"bindings\": []\n});\nexport default ContextMenuItem;\n",
8
+ "import { StxElement, defineComponent } from './runtime.js';\n\n/** DesktopIcon web component generated from DesktopIcon.stx. */\nexport class DesktopIcon extends StxElement {\n\n render(__helpers) {\n const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;\n const { id, icon = \"\\uD83D\\uDCC4\", label, type = \"window\", section = \"\", url = \"\", onclick, left = \"20px\", top = \"20px\", style = \"\" } = this._props();\n let out = \"\";\n out += `<button\n class=\"desktop-icon\"\n data-icon-id=\"`;\n out += __escape(id);\n out += `\"\n data-icon-type=\"`;\n out += __escape(type);\n out += `\"\n data-icon-section=\"`;\n out += __escape(section);\n out += `\"\n data-icon-url=\"`;\n out += __escape(url);\n out += `\"\n style=\"`;\n if (style) {\n out += __escape(style);\n } else {\n out += \"left: \";\n out += __escape(left);\n out += \"; top: \";\n out += __escape(top);\n out += \";\";\n }\n out += `\"\n `;\n if (onclick) {\n out += `\n onclick=\"`;\n out += __escape(onclick);\n out += `\"\n `;\n }\n out += `>\n <div class=\"desktop-icon-image\">`;\n out += __escape(icon);\n out += `</div>\n <div class=\"desktop-icon-label\">`;\n out += __escape(label);\n out += `</div>\n </button>`;\n return out;\n }\n\n}\n\ndefineComponent(DesktopIcon, {\n \"tag\": \"stacks-desktop-icon\",\n \"template\": \"<button\\n class=\\\"desktop-icon\\\"\\n data-icon-id=\\\"{{ id }}\\\"\\n data-icon-type=\\\"{{ type }}\\\"\\n data-icon-section=\\\"{{ section }}\\\"\\n data-icon-url=\\\"{{ url }}\\\"\\n style=\\\"@if(style){{ style }}@else left: {{ left }}; top: {{ top }};@endif\\\"\\n @if (onclick)\\n onclick=\\\"{{ onclick }}\\\"\\n @endif\\n >\\n <div class=\\\"desktop-icon-image\\\">{{ icon }}</div>\\n <div class=\\\"desktop-icon-label\\\">{{ label }}</div>\\n </button>\",\n \"styles\": \"\",\n \"shadowMode\": false,\n \"progressive\": true,\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"icon\": {\n \"type\": \"string\",\n \"default\": \"📄\",\n \"reflect\": true\n },\n \"label\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"window\",\n \"reflect\": true\n },\n \"section\": {\n \"type\": \"string\",\n \"default\": \"\",\n \"reflect\": true\n },\n \"url\": {\n \"type\": \"string\",\n \"default\": \"\",\n \"reflect\": true\n },\n \"onclick\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"left\": {\n \"type\": \"string\",\n \"default\": \"20px\",\n \"reflect\": true\n },\n \"top\": {\n \"type\": \"string\",\n \"default\": \"20px\",\n \"reflect\": true\n },\n \"style\": {\n \"type\": \"string\",\n \"default\": \"\",\n \"reflect\": true\n }\n },\n \"eventTypes\": [],\n \"bindings\": []\n});\nexport default DesktopIcon;\n",
9
+ "import { StxElement, defineComponent } from './runtime.js';\n\n/** FeatureButton web component generated from FeatureButton.stx. */\nexport class FeatureButton extends StxElement {\n\n render(__helpers) {\n const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;\n const { label, onclick, active = false } = this._props();\n let out = \"\";\n out += `<button\n class=\"feature-btn `;\n if (active) {\n out += \"active\";\n }\n out += `\"\n `;\n if (onclick) {\n out += 'onclick=\"';\n out += __escape(onclick);\n out += '\"';\n }\n out += `>\n `;\n out += __escape(label);\n out += `\n </button>`;\n return out;\n }\n\n}\n\ndefineComponent(FeatureButton, {\n \"tag\": \"stacks-feature-button\",\n \"template\": \"<button\\n class=\\\"feature-btn @if (active)active@endif\\\"\\n @if (onclick)onclick=\\\"{{ onclick }}\\\"@endif\\n >\\n {{ label }}\\n </button>\",\n \"styles\": \"\",\n \"shadowMode\": false,\n \"progressive\": true,\n \"properties\": {\n \"label\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"onclick\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"active\": {\n \"type\": \"boolean\",\n \"default\": false,\n \"reflect\": true\n }\n },\n \"eventTypes\": [],\n \"bindings\": []\n});\nexport default FeatureButton;\n",
10
+ "import { StxElement, defineComponent } from './runtime.js';\n\n/** InputGroup web component generated from InputGroup.stx. */\nexport class InputGroup extends StxElement {\n\n render(__helpers) {\n const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;\n const { id, label, type = \"text\", placeholder = \"\", class: classList = \"login-input\" } = this._props();\n let out = \"\";\n out += `<div class=\"login-input-group\">\n <label>`;\n out += __escape(label);\n out += `:</label>\n <input\n type=\"`;\n out += __escape(type);\n out += `\"\n id=\"`;\n out += __escape(id);\n out += `\"\n class=\"`;\n out += __escape(classList);\n out += `\"\n placeholder=\"`;\n out += __escape(placeholder);\n out += `\"\n />\n </div>`;\n return out;\n }\n\n}\n\ndefineComponent(InputGroup, {\n \"tag\": \"stacks-input-group\",\n \"template\": \"<div class=\\\"login-input-group\\\">\\n <label>{{ label }}:</label>\\n <input\\n type=\\\"{{ type }}\\\"\\n id=\\\"{{ id }}\\\"\\n class=\\\"{{ classList }}\\\"\\n placeholder=\\\"{{ placeholder }}\\\"\\n />\\n </div>\",\n \"styles\": \"\",\n \"shadowMode\": false,\n \"progressive\": true,\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"label\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"text\",\n \"reflect\": true\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"default\": \"\",\n \"reflect\": true\n },\n \"class\": {\n \"type\": \"string\",\n \"default\": \"login-input\",\n \"reflect\": true\n }\n },\n \"eventTypes\": [],\n \"bindings\": []\n});\nexport default InputGroup;\n",
11
+ "import { StxElement, defineComponent } from './runtime.js';\n\n/** LoginForm web component generated from LoginForm.stx. */\nexport class LoginForm extends StxElement {\n\n render(__helpers) {\n const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;\n const { id, icon = \"\\uD83D\\uDC64\", title = \"Login\", prompt = \"Enter your credentials\", submitHandler = \"handleLogin()\" } = this._props();\n let out = \"\";\n out += '<div id=\"';\n out += __escape(id);\n out += `\" class=\"hidden login-form\">\n <div class=\"login-form-background\">\n <div class=\"login-form-container\">\n <button class=\"login-close-btn\" onclick=\"closeLoginScreens()\">×</button>\n <div class=\"login-form-header\">\n <button class=\"login-back-button\" onclick=\"hideLoginForms()\">← Back</button>\n <div class=\"login-form-title\">\n <div class=\"login-form-icon\">`;\n out += __escape(icon);\n out += `</div>\n <h2>`;\n out += __escape(title);\n out += `</h2>\n </div>\n </div>\n\n <div class=\"login-form-content\">\n <div class=\"login-form-prompt\">`;\n out += __escape(prompt);\n out += `</div>\n <slot />\n <div class=\"login-actions\">\n <button class=\"login-submit-btn\" onclick=\"`;\n out += __escape(submitHandler);\n out += `\">\n <span class=\"login-btn-icon\">→</span>\n <span>Log In</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>`;\n return out;\n }\n\n}\n\ndefineComponent(LoginForm, {\n \"tag\": \"stacks-login-form\",\n \"template\": \"<div id=\\\"{{ id }}\\\" class=\\\"hidden login-form\\\">\\n <div class=\\\"login-form-background\\\">\\n <div class=\\\"login-form-container\\\">\\n <button class=\\\"login-close-btn\\\" onclick=\\\"closeLoginScreens()\\\">×</button>\\n <div class=\\\"login-form-header\\\">\\n <button class=\\\"login-back-button\\\" onclick=\\\"hideLoginForms()\\\">← Back</button>\\n <div class=\\\"login-form-title\\\">\\n <div class=\\\"login-form-icon\\\">{{ icon }}</div>\\n <h2>{{ title }}</h2>\\n </div>\\n </div>\\n\\n <div class=\\\"login-form-content\\\">\\n <div class=\\\"login-form-prompt\\\">{{ prompt }}</div>\\n <slot />\\n <div class=\\\"login-actions\\\">\\n <button class=\\\"login-submit-btn\\\" onclick=\\\"{{ submitHandler }}\\\">\\n <span class=\\\"login-btn-icon\\\">→</span>\\n <span>Log In</span>\\n </button>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\",\n \"styles\": \"\",\n \"shadowMode\": false,\n \"progressive\": true,\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"icon\": {\n \"type\": \"string\",\n \"default\": \"👤\",\n \"reflect\": true\n },\n \"title\": {\n \"type\": \"string\",\n \"default\": \"Login\",\n \"reflect\": true\n },\n \"prompt\": {\n \"type\": \"string\",\n \"default\": \"Enter your credentials\",\n \"reflect\": true\n },\n \"submitHandler\": {\n \"type\": \"string\",\n \"default\": \"handleLogin()\",\n \"reflect\": true\n }\n },\n \"eventTypes\": [],\n \"bindings\": []\n});\nexport default LoginForm;\n",
12
+ "import { StxElement, defineComponent } from './runtime.js';\n\n/** LoginScreen web component generated from LoginScreen.stx. */\nexport class LoginScreen extends StxElement {\n\n render(__helpers) {\n const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;\n const { id = \"login-screen\", logoText = \"STACKS\", subtitle = \"To begin, click your user name\" } = this._props();\n let out = \"\";\n out += '<div id=\"';\n out += __escape(id);\n out += `\" class=\"hidden login-screen\">\n <div class=\"login-background\">\n <div class=\"login-container\">\n <button class=\"login-close-btn\" onclick=\"closeLoginScreens()\">×</button>\n <div class=\"login-header\">\n <div class=\"login-logo\">`;\n out += __escape(logoText);\n out += `</div>\n <div class=\"login-subtitle\">`;\n out += __escape(subtitle);\n out += `</div>\n </div>\n\n <div class=\"login-users\">\n <slot name=\"login-options\">\n <button class=\"login-user-button\" id=\"email-login-btn\">\n <div class=\"login-user-icon\">\\uD83D\\uDC64</div>\n <div class=\"login-user-name\">Email Login</div>\n </button>\n <button class=\"login-user-button\" id=\"license-login-btn\">\n <div class=\"login-user-icon\">\\uD83D\\uDD11</div>\n <div class=\"login-user-name\">License Key</div>\n </button>\n </slot>\n </div>\n\n <div class=\"login-footer\">\n <slot name=\"footer\">\n <div class=\"login-footer-text\">After you log in, you can access the STACKS Desktop</div>\n </slot>\n </div>\n </div>\n </div>\n </div>`;\n return out;\n }\n\n}\n\ndefineComponent(LoginScreen, {\n \"tag\": \"stacks-login-screen\",\n \"template\": \"<div id=\\\"{{ id }}\\\" class=\\\"hidden login-screen\\\">\\n <div class=\\\"login-background\\\">\\n <div class=\\\"login-container\\\">\\n <button class=\\\"login-close-btn\\\" onclick=\\\"closeLoginScreens()\\\">×</button>\\n <div class=\\\"login-header\\\">\\n <div class=\\\"login-logo\\\">{{ logoText }}</div>\\n <div class=\\\"login-subtitle\\\">{{ subtitle }}</div>\\n </div>\\n\\n <div class=\\\"login-users\\\">\\n <slot name=\\\"login-options\\\">\\n <button class=\\\"login-user-button\\\" id=\\\"email-login-btn\\\">\\n <div class=\\\"login-user-icon\\\">👤</div>\\n <div class=\\\"login-user-name\\\">Email Login</div>\\n </button>\\n <button class=\\\"login-user-button\\\" id=\\\"license-login-btn\\\">\\n <div class=\\\"login-user-icon\\\">🔑</div>\\n <div class=\\\"login-user-name\\\">License Key</div>\\n </button>\\n </slot>\\n </div>\\n\\n <div class=\\\"login-footer\\\">\\n <slot name=\\\"footer\\\">\\n <div class=\\\"login-footer-text\\\">After you log in, you can access the STACKS Desktop</div>\\n </slot>\\n </div>\\n </div>\\n </div>\\n </div>\",\n \"styles\": \"\",\n \"shadowMode\": false,\n \"progressive\": true,\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"default\": \"login-screen\",\n \"reflect\": true\n },\n \"logoText\": {\n \"type\": \"string\",\n \"default\": \"STACKS\",\n \"reflect\": true\n },\n \"subtitle\": {\n \"type\": \"string\",\n \"default\": \"To begin, click your user name\",\n \"reflect\": true\n }\n },\n \"eventTypes\": [],\n \"bindings\": []\n});\nexport default LoginScreen;\n",
13
+ "import { StxElement, defineComponent } from './runtime.js';\n\n/** NotificationPopup web component generated from NotificationPopup.stx. */\nexport class NotificationPopup extends StxElement {\n\n render(__helpers) {\n const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;\n const { id = \"notification-popup\", title = \"Notifications\", showSignup = true } = this._props();\n let out = \"\";\n out += '<div class=\"notification-popup\" id=\"';\n out += __escape(id);\n out += `\" style=\"display: none;\">\n <div class=\"notification-header\">\n <span class=\"notification-title\">`;\n out += __escape(title);\n out += `</span>\n <button class=\"notification-close\" onclick=\"closeNotificationPopup()\">×</button>\n </div>\n <div class=\"notification-content\">\n <slot />\n </div>\n `;\n if (showSignup) {\n out += `\n <div class=\"notification-signup\" id=\"notification-signup\">\n <div class=\"notification-separator\"></div>\n <div class=\"notification-signup-text\">Get updates on new features & releases:</div>\n <div class=\"notification-signup-form\">\n <input\n type=\"email\"\n id=\"notification-email\"\n class=\"notification-email-input\"\n placeholder=\"your@email.com\"\n autocomplete=\"email\"\n />\n <button class=\"notification-signup-btn\" onclick=\"handleEmailSignup()\">\n Sign Up\n </button>\n </div>\n </div>\n <div class=\"notification-success\" id=\"notification-success\" style=\"display: none;\">\n <div class=\"notification-separator\"></div>\n <div class=\"notification-success-content\">\n <div class=\"notification-success-icon\">✓</div>\n <div class=\"notification-success-text\">\n <div class=\"notification-success-title\">Thanks for subscribing!</div>\n <div class=\"notification-success-subtitle\">We'll keep you updated.</div>\n </div>\n </div>\n </div>\n `;\n }\n out += \"</div>\";\n return out;\n }\n\n}\n\ndefineComponent(NotificationPopup, {\n \"tag\": \"stacks-notification-popup\",\n \"template\": \"<div class=\\\"notification-popup\\\" id=\\\"{{ id }}\\\" style=\\\"display: none;\\\">\\n <div class=\\\"notification-header\\\">\\n <span class=\\\"notification-title\\\">{{ title }}</span>\\n <button class=\\\"notification-close\\\" onclick=\\\"closeNotificationPopup()\\\">×</button>\\n </div>\\n <div class=\\\"notification-content\\\">\\n <slot />\\n </div>\\n @if (showSignup)\\n <div class=\\\"notification-signup\\\" id=\\\"notification-signup\\\">\\n <div class=\\\"notification-separator\\\"></div>\\n <div class=\\\"notification-signup-text\\\">Get updates on new features & releases:</div>\\n <div class=\\\"notification-signup-form\\\">\\n <input\\n type=\\\"email\\\"\\n id=\\\"notification-email\\\"\\n class=\\\"notification-email-input\\\"\\n placeholder=\\\"your@email.com\\\"\\n autocomplete=\\\"email\\\"\\n />\\n <button class=\\\"notification-signup-btn\\\" onclick=\\\"handleEmailSignup()\\\">\\n Sign Up\\n </button>\\n </div>\\n </div>\\n <div class=\\\"notification-success\\\" id=\\\"notification-success\\\" style=\\\"display: none;\\\">\\n <div class=\\\"notification-separator\\\"></div>\\n <div class=\\\"notification-success-content\\\">\\n <div class=\\\"notification-success-icon\\\">✓</div>\\n <div class=\\\"notification-success-text\\\">\\n <div class=\\\"notification-success-title\\\">Thanks for subscribing!</div>\\n <div class=\\\"notification-success-subtitle\\\">We'll keep you updated.</div>\\n </div>\\n </div>\\n </div>\\n @endif\\n </div>\",\n \"styles\": \"\",\n \"shadowMode\": false,\n \"progressive\": true,\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"default\": \"notification-popup\",\n \"reflect\": true\n },\n \"title\": {\n \"type\": \"string\",\n \"default\": \"Notifications\",\n \"reflect\": true\n },\n \"showSignup\": {\n \"type\": \"boolean\",\n \"default\": true,\n \"reflect\": true\n }\n },\n \"eventTypes\": [],\n \"bindings\": []\n});\nexport default NotificationPopup;\n",
14
+ "import { StxElement, defineComponent } from './runtime.js';\n\n/** PackageItem web component generated from PackageItem.stx. */\nexport class PackageItem extends StxElement {\n\n render(__helpers) {\n const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;\n const { emoji, title, description } = this._props();\n let out = \"\";\n out += `<div class=\"package-item\">\n <div class=\"package-emoji\">`;\n out += __escape(emoji);\n out += `</div>\n <div class=\"package-title\">`;\n out += __escape(title);\n out += `</div>\n <div class=\"package-desc\">`;\n out += __escape(description);\n out += `</div>\n </div>`;\n return out;\n }\n\n}\n\ndefineComponent(PackageItem, {\n \"tag\": \"stacks-package-item\",\n \"template\": \"<div class=\\\"package-item\\\">\\n <div class=\\\"package-emoji\\\">{{ emoji }}</div>\\n <div class=\\\"package-title\\\">{{ title }}</div>\\n <div class=\\\"package-desc\\\">{{ description }}</div>\\n </div>\",\n \"styles\": \"\",\n \"shadowMode\": false,\n \"progressive\": true,\n \"properties\": {\n \"emoji\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"title\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"description\": {\n \"type\": \"string\",\n \"reflect\": true\n }\n },\n \"eventTypes\": [],\n \"bindings\": []\n});\nexport default PackageItem;\n",
15
+ "import { StxElement, defineComponent } from './runtime.js';\n\n/** StartMenu web component generated from StartMenu.stx. */\nexport class StartMenu extends StxElement {\n\n render(__helpers) {\n const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;\n const { id = \"start-menu\", userName = \"Developer\", userImage = \"\\uD83D\\uDC64\" } = this._props();\n let out = \"\";\n out += '<div class=\"start-menu\" id=\"';\n out += __escape(id);\n out += `\" style=\"display: none;\">\n <div class=\"start-menu-header\">\n <div class=\"start-menu-user-image\">`;\n out += __escape(userImage);\n out += `</div>\n <div class=\"start-menu-user-name\">`;\n out += __escape(userName);\n out += `</div>\n </div>\n\n <div class=\"start-menu-content\">\n <div class=\"start-menu-left\">\n <div class=\"start-menu-pinned\">\n <slot name=\"pinned-items\" />\n </div>\n <div class=\"start-menu-separator\"></div>\n <slot name=\"all-programs\">\n <button class=\"start-menu-item all-programs\">\n <span>All Programs</span>\n <span class=\"arrow\">▸</span>\n </button>\n </slot>\n </div>\n\n <div class=\"start-menu-right\">\n <slot name=\"right-items\" />\n </div>\n </div>\n\n <div class=\"start-menu-footer\">\n <slot name=\"footer\">\n <button class=\"start-menu-footer-btn\" onclick=\"showLoginScreen()\">\n <span class=\"footer-icon\">\\uD83D\\uDD11</span>\n <span>Log Off</span>\n </button>\n <button class=\"start-menu-footer-btn\" onclick=\"window.location.reload()\">\n <span class=\"footer-icon\">\\uD83D\\uDD04</span>\n <span>Restart</span>\n </button>\n </slot>\n </div>\n </div>`;\n return out;\n }\n\n}\n\ndefineComponent(StartMenu, {\n \"tag\": \"stacks-start-menu\",\n \"template\": \"<div class=\\\"start-menu\\\" id=\\\"{{ id }}\\\" style=\\\"display: none;\\\">\\n <div class=\\\"start-menu-header\\\">\\n <div class=\\\"start-menu-user-image\\\">{{ userImage }}</div>\\n <div class=\\\"start-menu-user-name\\\">{{ userName }}</div>\\n </div>\\n\\n <div class=\\\"start-menu-content\\\">\\n <div class=\\\"start-menu-left\\\">\\n <div class=\\\"start-menu-pinned\\\">\\n <slot name=\\\"pinned-items\\\" />\\n </div>\\n <div class=\\\"start-menu-separator\\\"></div>\\n <slot name=\\\"all-programs\\\">\\n <button class=\\\"start-menu-item all-programs\\\">\\n <span>All Programs</span>\\n <span class=\\\"arrow\\\">▸</span>\\n </button>\\n </slot>\\n </div>\\n\\n <div class=\\\"start-menu-right\\\">\\n <slot name=\\\"right-items\\\" />\\n </div>\\n </div>\\n\\n <div class=\\\"start-menu-footer\\\">\\n <slot name=\\\"footer\\\">\\n <button class=\\\"start-menu-footer-btn\\\" onclick=\\\"showLoginScreen()\\\">\\n <span class=\\\"footer-icon\\\">🔑</span>\\n <span>Log Off</span>\\n </button>\\n <button class=\\\"start-menu-footer-btn\\\" onclick=\\\"window.location.reload()\\\">\\n <span class=\\\"footer-icon\\\">🔄</span>\\n <span>Restart</span>\\n </button>\\n </slot>\\n </div>\\n </div>\",\n \"styles\": \"\",\n \"shadowMode\": false,\n \"progressive\": true,\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"default\": \"start-menu\",\n \"reflect\": true\n },\n \"userName\": {\n \"type\": \"string\",\n \"default\": \"Developer\",\n \"reflect\": true\n },\n \"userImage\": {\n \"type\": \"string\",\n \"default\": \"👤\",\n \"reflect\": true\n }\n },\n \"eventTypes\": [],\n \"bindings\": []\n});\nexport default StartMenu;\n",
16
+ "import { StxElement, defineComponent } from './runtime.js';\n\n/** StartMenuItem web component generated from StartMenuItem.stx. */\nexport class StartMenuItem extends StxElement {\n\n render(__helpers) {\n const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;\n const { icon = \"\\uD83D\\uDCC4\", label, onclick, url, highlighted = false } = this._props();\n let out = \"\";\n if (url) {\n out += `\n <button\n class=\"start-menu-item `;\n out += __escape(highlighted ? \"highlighted\" : \"\");\n out += `\"\n onclick=\"window.open('`;\n out += __escape(url);\n out += `', '_blank')\"\n >\n <span class=\"start-menu-item-icon\">`;\n out += __escape(icon);\n out += `</span>\n <span class=\"start-menu-item-label\">`;\n out += __escape(label);\n out += `</span>\n </button>\n `;\n } else if (onclick) {\n out += `\n <button\n class=\"start-menu-item `;\n out += __escape(highlighted ? \"highlighted\" : \"\");\n out += `\"\n onclick=\"`;\n out += __escape(onclick);\n out += `\"\n >\n <span class=\"start-menu-item-icon\">`;\n out += __escape(icon);\n out += `</span>\n <span class=\"start-menu-item-label\">`;\n out += __escape(label);\n out += `</span>\n </button>\n `;\n } else {\n out += `<button\n class=\"start-menu-item `;\n out += __escape(highlighted ? \"highlighted\" : \"\");\n out += `\"\n >\n <span class=\"start-menu-item-icon\">`;\n out += __escape(icon);\n out += `</span>\n <span class=\"start-menu-item-label\">`;\n out += __escape(label);\n out += `</span>\n </button>\n `;\n }\n return out;\n }\n\n}\n\ndefineComponent(StartMenuItem, {\n \"tag\": \"stacks-start-menu-item\",\n \"template\": \"@if (url)\\n <button\\n class=\\\"start-menu-item {{ highlighted ? 'highlighted' : '' }}\\\"\\n onclick=\\\"window.open('{{ url }}', '_blank')\\\"\\n >\\n <span class=\\\"start-menu-item-icon\\\">{{ icon }}</span>\\n <span class=\\\"start-menu-item-label\\\">{{ label }}</span>\\n </button>\\n @elseif (onclick)\\n <button\\n class=\\\"start-menu-item {{ highlighted ? 'highlighted' : '' }}\\\"\\n onclick=\\\"{{ onclick }}\\\"\\n >\\n <span class=\\\"start-menu-item-icon\\\">{{ icon }}</span>\\n <span class=\\\"start-menu-item-label\\\">{{ label }}</span>\\n </button>\\n @else\\n <button\\n class=\\\"start-menu-item {{ highlighted ? 'highlighted' : '' }}\\\"\\n >\\n <span class=\\\"start-menu-item-icon\\\">{{ icon }}</span>\\n <span class=\\\"start-menu-item-label\\\">{{ label }}</span>\\n </button>\\n @endif\",\n \"styles\": \"\",\n \"shadowMode\": false,\n \"progressive\": true,\n \"properties\": {\n \"icon\": {\n \"type\": \"string\",\n \"default\": \"📄\",\n \"reflect\": true\n },\n \"label\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"onclick\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"url\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"highlighted\": {\n \"type\": \"boolean\",\n \"default\": false,\n \"reflect\": true\n }\n },\n \"eventTypes\": [],\n \"bindings\": []\n});\nexport default StartMenuItem;\n",
17
+ "import { StxElement, defineComponent } from './runtime.js';\n\n/** Taskbar web component generated from Taskbar.stx. */\nexport class Taskbar extends StxElement {\n\n render(__helpers) {\n const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;\n const { showStartMenu = true } = this._props();\n let out = \"\";\n out += `<div class=\"taskbar\">\n `;\n if (showStartMenu) {\n out += `\n <button class=\"start-button\" onclick=\"toggleStartMenu()\">\n <div class=\"start-button-flag\">\n <div class=\"flag-red\"></div>\n <div class=\"flag-green\"></div>\n <div class=\"flag-blue\"></div>\n <div class=\"flag-yellow\"></div>\n </div>\n <span>Start</span>\n </button>\n `;\n }\n out += `<div class=\"quick-launch\">\n <slot name=\"quick-launch\" />\n </div>\n\n <div class=\"taskbar-windows\" id=\"taskbar-windows\">\n <slot name=\"taskbar-windows\" />\n </div>\n\n <div class=\"system-tray\">\n <slot name=\"system-tray\">\n <button class=\"tray-icon\" onclick=\"toggleNotificationPopup()\">\\uD83D\\uDD14</button>\n <button class=\"tray-icon\" onclick=\"window.open('https://github.com/stacksjs/stacks', '_blank')\">\\uD83D\\uDCBB</button>\n <button class=\"tray-icon\" onclick=\"window.open('https://stacksjs.com/discord', '_blank')\">\\uD83D\\uDCAC</button>\n </slot>\n <div class=\"clock\" id=\"clock\"></div>\n </div>\n </div>`;\n return out;\n }\n\n}\n\ndefineComponent(Taskbar, {\n \"tag\": \"stacks-taskbar\",\n \"template\": \"<div class=\\\"taskbar\\\">\\n @if (showStartMenu)\\n <button class=\\\"start-button\\\" onclick=\\\"toggleStartMenu()\\\">\\n <div class=\\\"start-button-flag\\\">\\n <div class=\\\"flag-red\\\"></div>\\n <div class=\\\"flag-green\\\"></div>\\n <div class=\\\"flag-blue\\\"></div>\\n <div class=\\\"flag-yellow\\\"></div>\\n </div>\\n <span>Start</span>\\n </button>\\n @endif\\n\\n <div class=\\\"quick-launch\\\">\\n <slot name=\\\"quick-launch\\\" />\\n </div>\\n\\n <div class=\\\"taskbar-windows\\\" id=\\\"taskbar-windows\\\">\\n <slot name=\\\"taskbar-windows\\\" />\\n </div>\\n\\n <div class=\\\"system-tray\\\">\\n <slot name=\\\"system-tray\\\">\\n <button class=\\\"tray-icon\\\" onclick=\\\"toggleNotificationPopup()\\\">🔔</button>\\n <button class=\\\"tray-icon\\\" onclick=\\\"window.open('https://github.com/stacksjs/stacks', '_blank')\\\">💻</button>\\n <button class=\\\"tray-icon\\\" onclick=\\\"window.open('https://stacksjs.com/discord', '_blank')\\\">💬</button>\\n </slot>\\n <div class=\\\"clock\\\" id=\\\"clock\\\"></div>\\n </div>\\n </div>\",\n \"styles\": \"\",\n \"shadowMode\": false,\n \"progressive\": true,\n \"properties\": {\n \"showStartMenu\": {\n \"type\": \"boolean\",\n \"default\": true,\n \"reflect\": true\n }\n },\n \"eventTypes\": [],\n \"bindings\": []\n});\nexport default Taskbar;\n",
18
+ "import { StxElement, defineComponent } from './runtime.js';\n\n/** Window web component generated from Window.stx. */\nexport class Window extends StxElement {\n\n render(__helpers) {\n const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;\n const { id, icon = \"\\uD83D\\uDCC4\", title, left = \"100px\", top = \"80px\", width = \"600px\", height = \"500px\", style = \"\" } = this._props();\n let out = \"\";\n out += '<div id=\"window-';\n out += __escape(id);\n out += '\" class=\"window\" style=\"';\n if (style) {\n out += __escape(style);\n } else {\n out += \"left: \";\n out += __escape(left);\n out += \"; top: \";\n out += __escape(top);\n out += \"; width: \";\n out += __escape(width);\n out += \"; height: \";\n out += __escape(height);\n out += \";\";\n }\n out += `\">\n <div class=\"window-titlebar\">\n <div class=\"window-icon\">`;\n out += __escape(icon);\n out += `</div>\n <div class=\"window-title\">`;\n out += __escape(title);\n out += `</div>\n <div class=\"window-controls\">\n <button class=\"minimize window-control\" onclick=\"minimizeWindow('`;\n out += __escape(id);\n out += `')\">_</button>\n <button class=\"maximize window-control\" onclick=\"toggleMaximizeWindow('`;\n out += __escape(id);\n out += `')\">□</button>\n <button class=\"close window-control\" onclick=\"closeWindow('`;\n out += __escape(id);\n out += `')\">×</button>\n </div>\n </div>\n <div class=\"window-content\">\n <slot />\n </div>\n </div>`;\n return out;\n }\n\n}\n\ndefineComponent(Window, {\n \"tag\": \"stacks-window\",\n \"template\": \"<div id=\\\"window-{{ id }}\\\" class=\\\"window\\\" style=\\\"@if(style){{ style }}@else left: {{ left }}; top: {{ top }}; width: {{ width }}; height: {{ height }};@endif\\\">\\n <div class=\\\"window-titlebar\\\">\\n <div class=\\\"window-icon\\\">{{ icon }}</div>\\n <div class=\\\"window-title\\\">{{ title }}</div>\\n <div class=\\\"window-controls\\\">\\n <button class=\\\"minimize window-control\\\" onclick=\\\"minimizeWindow('{{ id }}')\\\">_</button>\\n <button class=\\\"maximize window-control\\\" onclick=\\\"toggleMaximizeWindow('{{ id }}')\\\">□</button>\\n <button class=\\\"close window-control\\\" onclick=\\\"closeWindow('{{ id }}')\\\">×</button>\\n </div>\\n </div>\\n <div class=\\\"window-content\\\">\\n <slot />\\n </div>\\n </div>\",\n \"styles\": \"\",\n \"shadowMode\": false,\n \"progressive\": true,\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"icon\": {\n \"type\": \"string\",\n \"default\": \"📄\",\n \"reflect\": true\n },\n \"title\": {\n \"type\": \"string\",\n \"reflect\": true\n },\n \"left\": {\n \"type\": \"string\",\n \"default\": \"100px\",\n \"reflect\": true\n },\n \"top\": {\n \"type\": \"string\",\n \"default\": \"80px\",\n \"reflect\": true\n },\n \"width\": {\n \"type\": \"string\",\n \"default\": \"600px\",\n \"reflect\": true\n },\n \"height\": {\n \"type\": \"string\",\n \"default\": \"500px\",\n \"reflect\": true\n },\n \"style\": {\n \"type\": \"string\",\n \"default\": \"\",\n \"reflect\": true\n }\n },\n \"eventTypes\": [],\n \"bindings\": []\n});\nexport default Window;\n"
19
+ ],
20
+ "mappings": "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",
21
+ "debugId": "ACA2F932EBB98A3364756E2164756E21",
22
+ "names": []
23
+ }
@@ -0,0 +1,153 @@
1
+ declare global {
2
+ namespace JSX {
3
+ interface IntrinsicElements {
4
+ "stacks-context-menu": {
5
+ "id"?: string
6
+
7
+ children?: unknown
8
+ slot?: string
9
+ class?: string
10
+ className?: string
11
+ }
12
+ "stacks-context-menu-item": {
13
+ "icon"?: string
14
+ "label"?: string
15
+ "onclick"?: string
16
+ "hasSubmenu"?: boolean
17
+
18
+ children?: unknown
19
+ slot?: string
20
+ class?: string
21
+ className?: string
22
+ }
23
+ "stacks-desktop-icon": {
24
+ "id"?: string
25
+ "icon"?: string
26
+ "label"?: string
27
+ "type"?: string
28
+ "section"?: string
29
+ "url"?: string
30
+ "onclick"?: string
31
+ "left"?: string
32
+ "top"?: string
33
+ "style"?: string
34
+
35
+ children?: unknown
36
+ slot?: string
37
+ class?: string
38
+ className?: string
39
+ }
40
+ "stacks-feature-button": {
41
+ "label"?: string
42
+ "onclick"?: string
43
+ "active"?: boolean
44
+
45
+ children?: unknown
46
+ slot?: string
47
+ class?: string
48
+ className?: string
49
+ }
50
+ "stacks-input-group": {
51
+ "id"?: string
52
+ "label"?: string
53
+ "type"?: string
54
+ "placeholder"?: string
55
+ "class"?: string
56
+
57
+ children?: unknown
58
+ slot?: string
59
+ class?: string
60
+ className?: string
61
+ }
62
+ "stacks-login-form": {
63
+ "id"?: string
64
+ "icon"?: string
65
+ "title"?: string
66
+ "prompt"?: string
67
+ "submitHandler"?: string
68
+
69
+ children?: unknown
70
+ slot?: string
71
+ class?: string
72
+ className?: string
73
+ }
74
+ "stacks-login-screen": {
75
+ "id"?: string
76
+ "logoText"?: string
77
+ "subtitle"?: string
78
+
79
+ children?: unknown
80
+ slot?: string
81
+ class?: string
82
+ className?: string
83
+ }
84
+ "stacks-notification-popup": {
85
+ "id"?: string
86
+ "title"?: string
87
+ "showSignup"?: boolean
88
+
89
+ children?: unknown
90
+ slot?: string
91
+ class?: string
92
+ className?: string
93
+ }
94
+ "stacks-package-item": {
95
+ "emoji"?: string
96
+ "title"?: string
97
+ "description"?: string
98
+
99
+ children?: unknown
100
+ slot?: string
101
+ class?: string
102
+ className?: string
103
+ }
104
+ "stacks-start-menu": {
105
+ "id"?: string
106
+ "userName"?: string
107
+ "userImage"?: string
108
+
109
+ children?: unknown
110
+ slot?: string
111
+ class?: string
112
+ className?: string
113
+ }
114
+ "stacks-start-menu-item": {
115
+ "icon"?: string
116
+ "label"?: string
117
+ "onclick"?: string
118
+ "url"?: string
119
+ "highlighted"?: boolean
120
+
121
+ children?: unknown
122
+ slot?: string
123
+ class?: string
124
+ className?: string
125
+ }
126
+ "stacks-taskbar": {
127
+ "showStartMenu"?: boolean
128
+
129
+ children?: unknown
130
+ slot?: string
131
+ class?: string
132
+ className?: string
133
+ }
134
+ "stacks-window": {
135
+ "id"?: string
136
+ "icon"?: string
137
+ "title"?: string
138
+ "left"?: string
139
+ "top"?: string
140
+ "width"?: string
141
+ "height"?: string
142
+ "style"?: string
143
+
144
+ children?: unknown
145
+ slot?: string
146
+ class?: string
147
+ className?: string
148
+ }
149
+ }
150
+ }
151
+ }
152
+
153
+ export {}