@sigx/runtime-dom 0.1.4 → 0.1.6

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.
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Portal component for rendering children to a different DOM location.
3
+ *
4
+ * Uses the `moveBefore` API (Chrome 133+) when available for state-preserving
5
+ * DOM moves. Falls back to `insertBefore` for older browsers.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * import { Portal } from '@sigx/runtime-dom';
10
+ *
11
+ * // Render to document.body (default)
12
+ * <Portal>
13
+ * <div class="modal">Modal content</div>
14
+ * </Portal>
15
+ *
16
+ * // Render to a specific container
17
+ * <Portal to={document.getElementById('modal-root')}>
18
+ * <div class="modal">Modal content</div>
19
+ * </Portal>
20
+ *
21
+ * // Render to a container by selector
22
+ * <Portal to="#modal-root">
23
+ * <div class="modal">Modal content</div>
24
+ * </Portal>
25
+ * ```
26
+ */
27
+ import { DefineProp } from '@sigx/runtime-core';
28
+ /**
29
+ * Check if the browser supports the moveBefore API.
30
+ * moveBefore allows moving DOM nodes without losing state (iframes, videos, focus, etc.)
31
+ */
32
+ export declare function supportsMoveBefore(): boolean;
33
+ /**
34
+ * Move or insert a node into a parent, using moveBefore when available
35
+ * for state-preserving moves.
36
+ *
37
+ * @param parent - The target parent element
38
+ * @param node - The node to move/insert
39
+ * @param anchor - Optional reference node to insert before
40
+ */
41
+ export declare function moveNode(parent: Element, node: Node, anchor?: Node | null): void;
42
+ type PortalProps = DefineProp<'to', string | Element> & DefineProp<'disabled', boolean>;
43
+ /**
44
+ * Portal component - renders children to a different DOM location.
45
+ *
46
+ * Props:
47
+ * - `to` - Target container (Element or CSS selector string). Defaults to document.body.
48
+ * - `disabled` - When true, renders children in place instead of portaling
49
+ * - `children` - Content to render in the portal
50
+ *
51
+ * Features:
52
+ * - Uses `moveBefore` API (Chrome 133+) for state-preserving DOM moves
53
+ * - Preserves iframe content, video playback, focus, and CSS animations
54
+ * - Falls back to `insertBefore` for older browsers
55
+ */
56
+ export declare const Portal: import("@sigx/runtime-core").ComponentFactory<PortalProps, void, {}>;
57
+ export {};
58
+ //# sourceMappingURL=Portal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Portal.d.ts","sourceRoot":"","sources":["../src/Portal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAa,UAAU,EAA0C,MAAM,oBAAoB,CAAC;AAInG;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACpB,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,IAAI,EACV,MAAM,GAAE,IAAI,GAAG,IAAW,GAC3B,IAAI,CAQN;AAuBD,KAAK,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAExF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM,sEA2EG,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,26 @@
1
1
  import './jsx';
2
2
  import './types.js';
3
- import { JSXElement } from '@sigx/runtime-core';
4
- export declare const render: (element: JSXElement, container: Element, appContext?: import("@sigx/runtime-core").AppContext) => void, createApp: (rootComponent: any) => {
5
- mount(selectorOrContainer: string | Element): void;
6
- };
3
+ import { RendererOptions } from '@sigx/runtime-core';
4
+ declare function patchProp(dom: Element, key: string, prevValue: any, nextValue: any, isSVG?: boolean): void;
5
+ declare const nodeOps: RendererOptions<Node, Element>;
6
+ /**
7
+ * Render a SignalX element to a DOM container.
8
+ * Supports both Element references and CSS selectors.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * import { render } from 'sigx';
13
+ *
14
+ * // Using CSS selector
15
+ * render(<App />, "#app");
16
+ *
17
+ * // Using element reference
18
+ * render(<App />, document.getElementById('app')!);
19
+ * ```
20
+ */
21
+ export declare const render: (element: any, container: Element | string, appContext?: any) => void;
22
+ export declare const patch: import("@sigx/runtime-core").RendererPatchFn<Node, Element>, mount: import("@sigx/runtime-core").RendererMountFn<Node, Element>, unmount: import("@sigx/runtime-core").RendererUnmountFn<Node, Element>, mountComponent: import("@sigx/runtime-core").RendererMountComponentFn<Node, Element>;
23
+ export { patchProp, nodeOps };
7
24
  /**
8
25
  * Mount function for DOM environments.
9
26
  * Use this with defineApp().mount() to render to the DOM.
@@ -19,8 +36,5 @@ export declare const render: (element: JSXElement, container: Element, appContex
19
36
  * ```
20
37
  */
21
38
  export declare const domMount: (component: any, container: HTMLElement | Element | ShadowRoot | string, appContext?: any) => (() => void);
22
- /**
23
- * Hydrate existing DOM with VNode structure
24
- */
25
- export declare function hydrate(element: JSXElement, container: Element | ShadowRoot): void;
39
+ export { Portal, supportsMoveBefore, moveNode } from './Portal.js';
26
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,CAAC;AAEf,OAAO,YAAY,CAAC;AACpB,OAAO,EAAmB,UAAU,EAAoF,MAAM,oBAAoB,CAAC;AAyNnJ,eAAO,MAAQ,MAAM,2GAAE,SAAS;;CAAa,CAAC;AAE9C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,GAAI,WAAW,GAAG,EAAE,WAAW,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,EAAE,aAAa,GAAG,KAAG,CAAC,MAAM,IAAI,CAiB9H,CAAC;AAKF;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAuBlF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,CAAC;AAEf,OAAO,YAAY,CAAC;AACpB,OAAO,EAA0E,eAAe,EAAyB,MAAM,oBAAoB,CAAC;AAwHpJ,iBAAS,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,OAAO,QA6K5F;AAED,QAAA,MAAM,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,CA+B3C,CAAC;AAIF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,MAAM,GAAI,SAAS,GAAG,EAAE,WAAW,OAAO,GAAG,MAAM,EAAE,aAAa,GAAG,KAAG,IAUpF,CAAC;AAGF,eAAO,MAAQ,KAAK,+DAAE,KAAK,+DAAE,OAAO,iEAAE,cAAc,sEAAa,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAE9B;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,GAAI,WAAW,GAAG,EAAE,WAAW,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,EAAE,aAAa,GAAG,KAAG,CAAC,MAAM,IAAI,CAiB9H,CAAC;AAMF,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,25 +1,85 @@
1
- import { Fragment, Text, createRenderer, setDefaultMount, setPlatformSyncProcessor } from "@sigx/runtime-core";
2
-
3
- //#region src/index.ts
4
- setPlatformSyncProcessor((type, props, [stateObj, key], originalProps) => {
1
+ import { Fragment, component as component$1, createRenderer, jsx, normalizeSubTree, setDefaultMount, setPlatformModelProcessor } from "@sigx/runtime-core";
2
+ import { effect } from "@sigx/reactivity";
3
+ function supportsMoveBefore() {
4
+ return typeof Node !== "undefined" && "moveBefore" in Node.prototype;
5
+ }
6
+ function moveNode(parent, node, anchor = null) {
7
+ if (supportsMoveBefore()) parent.moveBefore(node, anchor);
8
+ else parent.insertBefore(node, anchor);
9
+ }
10
+ function resolveTarget(target) {
11
+ if (target === void 0) return document.body;
12
+ if (typeof target === "string") {
13
+ const resolved = document.querySelector(target);
14
+ if (!resolved) {
15
+ console.warn(`Portal: Target "${target}" not found, falling back to document.body`);
16
+ return document.body;
17
+ }
18
+ return resolved;
19
+ }
20
+ return target;
21
+ }
22
+ const Portal = component$1(({ props, slots, onMounted, onUnmounted }) => {
23
+ let portalContainer = null;
24
+ let mountedVNode = null;
25
+ let cleanupEffect = null;
26
+ onMounted(() => {
27
+ if (props.disabled) return;
28
+ const targetContainer = resolveTarget(props.to);
29
+ portalContainer = document.createElement("div");
30
+ portalContainer.setAttribute("data-sigx-portal", "");
31
+ moveNode(targetContainer, portalContainer);
32
+ cleanupEffect = effect(() => {
33
+ const children = slots.default();
34
+ if (!portalContainer) return;
35
+ const vnode = normalizeSubTree(children);
36
+ if (mountedVNode) patch(mountedVNode, vnode, portalContainer);
37
+ else mount(vnode, portalContainer);
38
+ mountedVNode = vnode;
39
+ });
40
+ });
41
+ onUnmounted(() => {
42
+ if (cleanupEffect) {
43
+ cleanupEffect();
44
+ cleanupEffect = null;
45
+ }
46
+ if (mountedVNode && portalContainer) {
47
+ unmount(mountedVNode, portalContainer);
48
+ mountedVNode = null;
49
+ }
50
+ if (portalContainer && portalContainer.parentNode) portalContainer.parentNode.removeChild(portalContainer);
51
+ portalContainer = null;
52
+ });
53
+ return () => {
54
+ if (props.disabled) return jsx(Fragment, { children: slots.default() });
55
+ return null;
56
+ };
57
+ }, { name: "Portal" });
58
+ var svgNS = "http://www.w3.org/2000/svg";
59
+ setPlatformModelProcessor((type, props, [stateObj, key], originalProps) => {
60
+ const setValue = (v) => {
61
+ const updateHandler = stateObj[`onUpdate:${key}`];
62
+ if (typeof updateHandler === "function") updateHandler(v);
63
+ else stateObj[key] = v;
64
+ };
5
65
  if (type === "input" && originalProps.type === "checkbox") {
6
66
  const val = stateObj[key];
7
67
  if (Array.isArray(val)) {
8
68
  props.checked = val.includes(originalProps.value);
9
- const existingHandler = props["onUpdate:value"];
10
- props["onUpdate:value"] = (checked) => {
69
+ const existingHandler = props["onUpdate:modelValue"];
70
+ props["onUpdate:modelValue"] = (checked) => {
11
71
  const currentVal = originalProps.value;
12
72
  const currentArr = stateObj[key];
13
73
  if (checked) {
14
- if (!currentArr.includes(currentVal)) stateObj[key] = [...currentArr, currentVal];
15
- } else stateObj[key] = currentArr.filter((i) => i !== currentVal);
74
+ if (!currentArr.includes(currentVal)) setValue([...currentArr, currentVal]);
75
+ } else setValue(currentArr.filter((i) => i !== currentVal));
16
76
  if (existingHandler) existingHandler(checked);
17
77
  };
18
78
  } else {
19
79
  props.checked = val;
20
- const existingHandler = props["onUpdate:value"];
21
- props["onUpdate:value"] = (v) => {
22
- stateObj[key] = v;
80
+ const existingHandler = props["onUpdate:modelValue"];
81
+ props["onUpdate:modelValue"] = (v) => {
82
+ setValue(v);
23
83
  if (existingHandler) existingHandler(v);
24
84
  };
25
85
  }
@@ -27,17 +87,46 @@ setPlatformSyncProcessor((type, props, [stateObj, key], originalProps) => {
27
87
  }
28
88
  if (type === "input" && originalProps.type === "radio") {
29
89
  props.checked = stateObj[key] === originalProps.value;
30
- const existingHandler = props["onUpdate:value"];
31
- props["onUpdate:value"] = (checked) => {
32
- if (checked) stateObj[key] = originalProps.value;
90
+ const existingHandler = props["onUpdate:modelValue"];
91
+ props["onUpdate:modelValue"] = (checked) => {
92
+ if (checked) setValue(originalProps.value);
33
93
  if (existingHandler) existingHandler(checked);
34
94
  };
35
95
  return true;
36
96
  }
97
+ if (type === "input") {
98
+ props.value = stateObj[key] ?? "";
99
+ const existingHandler = props["onUpdate:modelValue"];
100
+ props["onUpdate:modelValue"] = (v) => {
101
+ setValue(v);
102
+ if (existingHandler) existingHandler(v);
103
+ };
104
+ return true;
105
+ }
106
+ if (type === "textarea") {
107
+ props.value = stateObj[key] ?? "";
108
+ const existingHandler = props["onUpdate:modelValue"];
109
+ props["onUpdate:modelValue"] = (v) => {
110
+ setValue(v);
111
+ if (existingHandler) existingHandler(v);
112
+ };
113
+ return true;
114
+ }
115
+ if (type === "select") {
116
+ props.value = stateObj[key] ?? "";
117
+ const existingHandler = props["onUpdate:modelValue"];
118
+ props["onUpdate:modelValue"] = (v) => {
119
+ setValue(v);
120
+ if (existingHandler) existingHandler(v);
121
+ };
122
+ return true;
123
+ }
37
124
  return false;
38
125
  });
39
126
  function patchProp(dom, key, prevValue, nextValue, isSVG) {
127
+ if (!dom) return;
40
128
  const tagName = dom.tagName.toLowerCase();
129
+ const isSvgElement = isSVG ?? dom instanceof SVGElement;
41
130
  const oldValue = prevValue;
42
131
  const newValue = nextValue;
43
132
  if (key === "children" || key === "key" || key === "ref") return;
@@ -49,10 +138,10 @@ function patchProp(dom, key, prevValue, nextValue, isSVG) {
49
138
  else el.style[styleKey] = styleObj[styleKey];
50
139
  } else el.style.cssText = String(newValue);
51
140
  } else if (key.startsWith("on")) {
52
- if (key === "onUpdate:value" && (tagName === "input" || tagName === "textarea" || tagName === "select")) {
141
+ if (key === "onUpdate:modelValue" && (tagName === "input" || tagName === "textarea" || tagName === "select")) {
53
142
  const el = dom;
54
143
  if (oldValue) {
55
- const wrapper = oldValue.__sigx_sync_handler;
144
+ const wrapper = oldValue.__sigx_model_handler;
56
145
  if (wrapper) {
57
146
  el.removeEventListener("input", wrapper);
58
147
  el.removeEventListener("change", wrapper);
@@ -68,7 +157,7 @@ function patchProp(dom, key, prevValue, nextValue, isSVG) {
68
157
  else val = target.value;
69
158
  newValue(val);
70
159
  };
71
- newValue.__sigx_sync_handler = handler;
160
+ newValue.__sigx_model_handler = handler;
72
161
  const inputType = dom.type;
73
162
  if (tagName === "select" || tagName === "input" && (inputType === "checkbox" || inputType === "radio")) el.addEventListener("change", handler);
74
163
  else el.addEventListener("input", handler);
@@ -99,11 +188,26 @@ function patchProp(dom, key, prevValue, nextValue, isSVG) {
99
188
  else if (key.startsWith(".")) {
100
189
  const propName = key.slice(1);
101
190
  dom[propName] = newValue;
102
- } else if ((tagName === "input" || tagName === "textarea" || tagName === "select") && (key === "value" || key === "checked")) {
103
- if (tagName === "select" && key === "value") return;
191
+ } else if (isSvgElement) if (key === "innerHTML" || key === "textContent") dom[key] = newValue ?? "";
192
+ else if (key.startsWith("xlink:")) {
193
+ const xlinkNS = "http://www.w3.org/1999/xlink";
194
+ if (newValue == null) dom.removeAttributeNS(xlinkNS, key.slice(6));
195
+ else dom.setAttributeNS(xlinkNS, key, String(newValue));
196
+ } else if (newValue === true) dom.setAttribute(key, "");
197
+ else if (newValue === false || newValue == null) dom.removeAttribute(key);
198
+ else dom.setAttribute(key, String(newValue));
199
+ else if ((tagName === "input" || tagName === "textarea" || tagName === "select") && (key === "value" || key === "checked")) {
200
+ if (tagName === "select" && key === "value") {
201
+ queueMicrotask(() => {
202
+ dom.value = String(newValue ?? "");
203
+ });
204
+ return;
205
+ }
104
206
  if (key === "checked" && tagName === "input") dom.checked = Boolean(newValue);
105
207
  else if (key === "value") dom.value = String(newValue ?? "");
106
- } else if (key in dom) try {
208
+ } else if (key in dom) if (newValue == null) {
209
+ if (dom.hasAttribute?.(key)) dom.removeAttribute(key);
210
+ } else try {
107
211
  dom[key] = newValue;
108
212
  } catch (e) {
109
213
  dom.setAttribute(key, String(newValue));
@@ -113,7 +217,7 @@ function patchProp(dom, key, prevValue, nextValue, isSVG) {
113
217
  else if (newValue === false || newValue == null) dom.removeAttribute(key);
114
218
  else dom.setAttribute(key, String(newValue));
115
219
  }
116
- const renderer = createRenderer({
220
+ var nodeOps = {
117
221
  insert: (child, parent, anchor) => {
118
222
  parent.insertBefore(child, anchor || null);
119
223
  },
@@ -122,6 +226,7 @@ const renderer = createRenderer({
122
226
  if (parent) parent.removeChild(child);
123
227
  },
124
228
  createElement: (tag, isSVG, isCustomizedBuiltIn) => {
229
+ if (isSVG) return document.createElementNS(svgNS, tag);
125
230
  const is = isCustomizedBuiltIn ? { is: isCustomizedBuiltIn } : void 0;
126
231
  return document.createElement(tag, is);
127
232
  },
@@ -139,22 +244,14 @@ const renderer = createRenderer({
139
244
  setScopeId: (el, id) => el.setAttribute(id, ""),
140
245
  cloneNode: (node) => node.cloneNode(true),
141
246
  patchProp
142
- });
143
- const { render, createApp } = renderer;
144
- /**
145
- * Mount function for DOM environments.
146
- * Use this with defineApp().mount() to render to the DOM.
147
- *
148
- * @example
149
- * ```tsx
150
- * import { defineApp } from '@sigx/runtime-core';
151
- * import { domMount } from '@sigx/runtime-dom';
152
- *
153
- * const app = defineApp(<App />);
154
- * app.use(routerPlugin)
155
- * .mount(document.getElementById('app')!, domMount);
156
- * ```
157
- */
247
+ };
248
+ var renderer = createRenderer(nodeOps);
249
+ const render = (element, container, appContext) => {
250
+ const target = typeof container === "string" ? document.querySelector(container) : container;
251
+ if (!target) throw new Error(`Render target "${container}" not found.`);
252
+ return renderer.render(element, target, appContext);
253
+ };
254
+ const { patch, mount, unmount, mountComponent } = renderer;
158
255
  const domMount = (component, container, appContext) => {
159
256
  const target = typeof container === "string" ? document.querySelector(container) : container;
160
257
  if (!target) throw new Error(`Mount target "${container}" not found.`);
@@ -164,78 +261,6 @@ const domMount = (component, container, appContext) => {
164
261
  };
165
262
  };
166
263
  setDefaultMount(domMount);
167
- /**
168
- * Hydrate existing DOM with VNode structure
169
- */
170
- function hydrate(element, container) {
171
- let vnode = null;
172
- if (element != null && element !== false && element !== true) if (typeof element === "string" || typeof element === "number") vnode = {
173
- type: Text,
174
- props: {},
175
- key: null,
176
- children: [],
177
- dom: null,
178
- text: element
179
- };
180
- else vnode = element;
181
- if (vnode) {
182
- container._vnode = vnode;
183
- hydrateRecursive(vnode, container.firstChild);
184
- }
185
- }
186
- function hydrateRecursive(vnode, dom) {
187
- if (!dom) {
188
- console.warn("Hydration mismatch: DOM node missing for vnode", vnode);
189
- return null;
190
- }
191
- vnode.dom = dom;
192
- dom.__vnode = vnode;
193
- if (vnode.type === Text) {
194
- if (dom.nodeType !== Node.TEXT_NODE) console.warn("Hydration mismatch: Expected text node", dom);
195
- else if (dom.nodeValue !== String(vnode.text)) {
196
- console.warn(`Hydration mismatch: Text content "${dom.nodeValue}" !== "${vnode.text}"`);
197
- dom.nodeValue = String(vnode.text);
198
- }
199
- return dom.nextSibling;
200
- }
201
- if (vnode.type === Fragment) {
202
- let next = dom;
203
- for (const child of vnode.children) next = hydrateRecursive(child, next);
204
- return next;
205
- }
206
- if (dom.nodeType !== Node.ELEMENT_NODE) {
207
- console.warn("Hydration mismatch: Expected element node", dom);
208
- return dom.nextSibling;
209
- }
210
- const el = dom;
211
- if (el.tagName.toLowerCase() !== vnode.type.toLowerCase()) {
212
- console.warn(`Hydration mismatch: Tag name "${el.tagName}" !== "${vnode.type}"`);
213
- return dom.nextSibling;
214
- }
215
- if (vnode.props) for (const key in vnode.props) patchProp(el, key, null, vnode.props[key]);
216
- if (vnode.props.ref) {
217
- if (typeof vnode.props.ref === "function") vnode.props.ref(el);
218
- else if (vnode.props.ref && typeof vnode.props.ref === "object") vnode.props.ref.current = el;
219
- }
220
- let childDom = el.firstChild;
221
- for (const child of vnode.children) {
222
- child.parent = vnode;
223
- childDom = hydrateRecursive(child, childDom);
224
- }
225
- if (vnode.type === "select") fixSelectValue(el, vnode.props);
226
- return dom.nextSibling;
227
- }
228
- function fixSelectValue(dom, props) {
229
- if (dom.tagName === "SELECT" && "value" in props) {
230
- const val = props.value;
231
- if (dom.multiple) {
232
- const options = dom.options;
233
- const valArray = Array.isArray(val) ? val : [val];
234
- for (let i = 0; i < options.length; i++) options[i].selected = valArray.includes(options[i].value);
235
- } else dom.value = String(val);
236
- }
237
- }
264
+ export { Portal, domMount, mount, mountComponent, moveNode, nodeOps, patch, patchProp, render, supportsMoveBefore, unmount };
238
265
 
239
- //#endregion
240
- export { createApp, domMount, hydrate, render };
241
266
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["val: any","vnode: VNode | null","next: Node | null","childDom: Node | null"],"sources":["../src/index.ts"],"sourcesContent":["// Import JSX types (global augmentation)\r\nimport './jsx';\r\n// Import type augmentation for @sigx/runtime-core\r\nimport './types.js';\r\nimport { VNode, Fragment, JSXElement, setPlatformSyncProcessor, createRenderer, RendererOptions, Text, setDefaultMount } from '@sigx/runtime-core';\r\n\r\n// Register DOM-specific sync processor for intrinsic elements (checkbox, radio, etc.)\r\nsetPlatformSyncProcessor((type, props, [stateObj, key], originalProps) => {\r\n // Smart mapping for checkbox\r\n if (type === 'input' && originalProps.type === 'checkbox') {\r\n const val = stateObj[key];\r\n\r\n if (Array.isArray(val)) {\r\n // Array Checkbox (Multi-select)\r\n props.checked = val.includes(originalProps.value);\r\n\r\n const existingHandler = props['onUpdate:value'];\r\n props['onUpdate:value'] = (checked: boolean) => {\r\n const currentVal = originalProps.value;\r\n const currentArr = stateObj[key] as any[];\r\n if (checked) {\r\n if (!currentArr.includes(currentVal)) {\r\n stateObj[key] = [...currentArr, currentVal];\r\n }\r\n } else {\r\n stateObj[key] = currentArr.filter((i: any) => i !== currentVal);\r\n }\r\n if (existingHandler) existingHandler(checked);\r\n };\r\n } else {\r\n // Boolean Checkbox\r\n props.checked = val;\r\n const existingHandler = props['onUpdate:value'];\r\n props['onUpdate:value'] = (v: any) => {\r\n stateObj[key] = v;\r\n if (existingHandler) existingHandler(v);\r\n };\r\n }\r\n return true; // Handled\r\n }\r\n\r\n // Radio Button\r\n if (type === 'input' && originalProps.type === 'radio') {\r\n props.checked = stateObj[key] === originalProps.value;\r\n const existingHandler = props['onUpdate:value'];\r\n props['onUpdate:value'] = (checked: boolean) => {\r\n if (checked) stateObj[key] = originalProps.value;\r\n if (existingHandler) existingHandler(checked);\r\n };\r\n return true; // Handled\r\n }\r\n\r\n // Not handled - use generic fallback\r\n return false;\r\n});\r\n\r\nfunction patchProp(dom: Element, key: string, prevValue: any, nextValue: any, isSVG?: boolean) {\r\n const tagName = dom.tagName.toLowerCase();\r\n const oldProps = prevValue ? { [key]: prevValue } : {};\r\n const newProps = nextValue ? { [key]: nextValue } : {};\r\n\r\n // This is a simplified version of updateProps that handles a single prop\r\n // But the original updateProps handled all props at once.\r\n // The renderer calls patchProp for each key.\r\n\r\n // Logic adapted from original updateProps\r\n const oldValue = prevValue;\r\n const newValue = nextValue;\r\n\r\n if (key === 'children' || key === 'key' || key === 'ref') return;\r\n\r\n if (key === 'style') {\r\n const el = dom as HTMLElement;\r\n if (typeof newValue === 'object' && newValue !== null) {\r\n const styleObj = newValue as Record<string, string | number>;\r\n // We might need to unset old styles if they are not in new styles\r\n // But here we only get the new value for the key.\r\n // Ideally patchProp should handle diffing inside style object if it's an object.\r\n // For now, let's assume full replacement or simple update.\r\n for (const styleKey in styleObj) {\r\n if (styleKey.startsWith('--')) {\r\n el.style.setProperty(styleKey, String(styleObj[styleKey]));\r\n } else {\r\n (el.style as any)[styleKey] = styleObj[styleKey];\r\n }\r\n }\r\n } else {\r\n el.style.cssText = String(newValue);\r\n }\r\n } else if (key.startsWith('on')) {\r\n if (key === 'onUpdate:value' && (tagName === 'input' || tagName === 'textarea' || tagName === 'select')) {\r\n const el = dom as HTMLElement;\r\n if (oldValue) {\r\n const wrapper = (oldValue as any).__sigx_sync_handler;\r\n if (wrapper) {\r\n el.removeEventListener('input', wrapper);\r\n el.removeEventListener('change', wrapper);\r\n }\r\n }\r\n\r\n if (newValue) {\r\n const handler = (e: Event) => {\r\n const target = e.target as HTMLInputElement;\r\n let val: any;\r\n\r\n if (target.type === 'checkbox' || target.type === 'radio') {\r\n val = target.checked;\r\n } else if (target.type === 'number') {\r\n val = target.valueAsNumber;\r\n } else if (tagName === 'select' && (dom as HTMLSelectElement).multiple) {\r\n val = Array.from((dom as HTMLSelectElement).selectedOptions).map(o => o.value);\r\n } else {\r\n val = target.value;\r\n }\r\n\r\n (newValue as Function)(val);\r\n };\r\n (newValue as any).__sigx_sync_handler = handler;\r\n\r\n const inputType = (dom as HTMLInputElement).type;\r\n if (tagName === 'select' || (tagName === 'input' && (inputType === 'checkbox' || inputType === 'radio'))) {\r\n el.addEventListener('change', handler);\r\n } else {\r\n el.addEventListener('input', handler);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n const eventName = key.slice(2).toLowerCase();\r\n // Store handlers on the DOM element to properly track them across re-renders\r\n // Using a Map keyed by event name to ensure we remove the correct wrapper\r\n const handlersKey = '__sigx_event_handlers';\r\n let handlers = (dom as any)[handlersKey] as Map<string, EventListener> | undefined;\r\n if (!handlers) {\r\n handlers = new Map();\r\n (dom as any)[handlersKey] = handlers;\r\n }\r\n\r\n // Remove old handler if exists\r\n const oldHandler = handlers.get(eventName);\r\n if (oldHandler) {\r\n dom.removeEventListener(eventName, oldHandler);\r\n handlers.delete(eventName);\r\n }\r\n\r\n // Add new handler\r\n if (newValue) {\r\n const handler = (e: Event) => {\r\n if (e instanceof CustomEvent) {\r\n (newValue as Function)(e.detail);\r\n } else {\r\n (newValue as Function)(e);\r\n }\r\n };\r\n handlers.set(eventName, handler);\r\n dom.addEventListener(eventName, handler as EventListener);\r\n }\r\n } else if (key === 'className') {\r\n dom.setAttribute('class', String(newValue));\r\n } else if (key.startsWith('.')) {\r\n const propName = key.slice(1);\r\n (dom as any)[propName] = newValue;\r\n } else {\r\n if ((tagName === 'input' || tagName === 'textarea' || tagName === 'select') &&\r\n (key === 'value' || key === 'checked')) {\r\n if (tagName === 'select' && key === 'value') return;\r\n\r\n if (key === 'checked' && tagName === 'input') {\r\n (dom as HTMLInputElement).checked = Boolean(newValue);\r\n } else if (key === 'value') {\r\n (dom as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement).value = String(newValue ?? '');\r\n }\r\n } else if (key in dom) {\r\n try {\r\n (dom as Record<string, any>)[key] = newValue;\r\n } catch (e) {\r\n dom.setAttribute(key, String(newValue));\r\n }\r\n } else if (tagName.includes('-') && !key.includes('-')) {\r\n (dom as Record<string, any>)[key] = newValue;\r\n } else {\r\n if (newValue === true) dom.setAttribute(key, '');\r\n else if (newValue === false || newValue == null) dom.removeAttribute(key);\r\n else dom.setAttribute(key, String(newValue));\r\n }\r\n }\r\n}\r\n\r\nconst nodeOps: RendererOptions<Node, Element> = {\r\n insert: (child, parent, anchor) => {\r\n parent.insertBefore(child, anchor || null);\r\n },\r\n remove: (child) => {\r\n const parent = child.parentNode;\r\n if (parent) {\r\n parent.removeChild(child);\r\n }\r\n },\r\n createElement: (tag, isSVG, isCustomizedBuiltIn) => {\r\n const is = isCustomizedBuiltIn ? { is: isCustomizedBuiltIn } : undefined;\r\n return document.createElement(tag, is);\r\n },\r\n createText: (text) => document.createTextNode(text),\r\n createComment: (text) => document.createComment(text),\r\n setText: (node, text) => {\r\n node.nodeValue = text;\r\n },\r\n setElementText: (el, text) => {\r\n el.textContent = text;\r\n },\r\n parentNode: (node) => node.parentNode as Element,\r\n nextSibling: (node) => node.nextSibling,\r\n querySelector: (selector) => document.querySelector(selector),\r\n setScopeId: (el, id) => el.setAttribute(id, ''),\r\n cloneNode: (node) => node.cloneNode(true),\r\n patchProp\r\n};\r\n\r\nconst renderer = createRenderer(nodeOps);\r\n\r\nexport const { render, createApp } = renderer;\r\n\r\n/**\r\n * Mount function for DOM environments.\r\n * Use this with defineApp().mount() to render to the DOM.\r\n * \r\n * @example\r\n * ```tsx\r\n * import { defineApp } from '@sigx/runtime-core';\r\n * import { domMount } from '@sigx/runtime-dom';\r\n * \r\n * const app = defineApp(<App />);\r\n * app.use(routerPlugin)\r\n * .mount(document.getElementById('app')!, domMount);\r\n * ```\r\n */\r\nexport const domMount = (component: any, container: HTMLElement | Element | ShadowRoot | string, appContext?: any): (() => void) => {\r\n // Resolve string selector to element\r\n const target = typeof container === 'string'\r\n ? document.querySelector(container)\r\n : container;\r\n\r\n if (!target) {\r\n throw new Error(`Mount target \"${container}\" not found.`);\r\n }\r\n\r\n render(component, target as Element, appContext);\r\n\r\n // Return an unmount function\r\n return () => {\r\n // Render null to unmount\r\n render(null as any, target as Element);\r\n };\r\n};\r\n\r\n// Set domMount as the default mount function for this platform\r\nsetDefaultMount(domMount);\r\n\r\n/**\r\n * Hydrate existing DOM with VNode structure\r\n */\r\nexport function hydrate(element: JSXElement, container: Element | ShadowRoot): void {\r\n // Normalize element to VNode\r\n let vnode: VNode | null = null;\r\n if (element != null && element !== false && element !== true) {\r\n if (typeof element === 'string' || typeof element === 'number') {\r\n vnode = {\r\n type: Text,\r\n props: {},\r\n key: null,\r\n children: [],\r\n dom: null,\r\n text: element\r\n };\r\n } else {\r\n vnode = element as VNode;\r\n }\r\n }\r\n\r\n if (vnode) {\r\n (container as any)._vnode = vnode;\r\n // Hydrate starting from the first child of the container\r\n hydrateRecursive(vnode, container.firstChild);\r\n }\r\n}\r\n\r\nfunction hydrateRecursive(vnode: VNode, dom: Node | null): Node | null {\r\n if (!dom) {\r\n // Mismatch: DOM missing. \r\n // In a real implementation, we would mount the node here.\r\n // For now, we just warn.\r\n console.warn('Hydration mismatch: DOM node missing for vnode', vnode);\r\n return null;\r\n }\r\n\r\n vnode.dom = dom;\r\n (dom as any).__vnode = vnode;\r\n\r\n if (vnode.type === Text) {\r\n if (dom.nodeType !== Node.TEXT_NODE) {\r\n console.warn('Hydration mismatch: Expected text node', dom);\r\n // Recovery could happen here\r\n } else {\r\n if (dom.nodeValue !== String(vnode.text)) {\r\n console.warn(`Hydration mismatch: Text content \"${dom.nodeValue}\" !== \"${vnode.text}\"`);\r\n dom.nodeValue = String(vnode.text);\r\n }\r\n }\r\n return dom.nextSibling;\r\n }\r\n\r\n if (vnode.type === Fragment) {\r\n let next: Node | null = dom;\r\n for (const child of vnode.children) {\r\n next = hydrateRecursive(child, next);\r\n }\r\n return next;\r\n }\r\n\r\n // Element\r\n if (dom.nodeType !== Node.ELEMENT_NODE) {\r\n console.warn('Hydration mismatch: Expected element node', dom);\r\n return dom.nextSibling;\r\n }\r\n\r\n const el = dom as HTMLElement;\r\n if (el.tagName.toLowerCase() !== (vnode.type as string).toLowerCase()) {\r\n console.warn(`Hydration mismatch: Tag name \"${el.tagName}\" !== \"${vnode.type}\"`);\r\n return dom.nextSibling;\r\n }\r\n\r\n // Hydrate props (attach listeners and ensure attributes match)\r\n // We reuse updateProps to attach event listeners and fix any attribute mismatches\r\n // updateProps(el, {}, vnode.props, vnode.type as string);\r\n // We need to use patchProp here for each prop\r\n if (vnode.props) {\r\n for (const key in vnode.props) {\r\n patchProp(el, key, null, vnode.props[key]);\r\n }\r\n }\r\n\r\n // Handle ref\r\n if (vnode.props.ref) {\r\n if (typeof vnode.props.ref === 'function') {\r\n vnode.props.ref(el);\r\n } else if (vnode.props.ref && typeof vnode.props.ref === 'object') {\r\n vnode.props.ref.current = el;\r\n }\r\n }\r\n\r\n // Hydrate children\r\n let childDom: Node | null = el.firstChild;\r\n for (const child of vnode.children) {\r\n child.parent = vnode;\r\n childDom = hydrateRecursive(child, childDom);\r\n }\r\n\r\n if (vnode.type === 'select') {\r\n fixSelectValue(el, vnode.props);\r\n }\r\n\r\n return dom.nextSibling;\r\n}\r\n\r\nfunction fixSelectValue(dom: HTMLElement, props: any) {\r\n if (dom.tagName === 'SELECT' && 'value' in props) {\r\n const val = props.value;\r\n if ((dom as HTMLSelectElement).multiple) {\r\n const options = (dom as HTMLSelectElement).options;\r\n const valArray = Array.isArray(val) ? val : [val];\r\n for (let i = 0; i < options.length; i++) {\r\n options[i].selected = valArray.includes(options[i].value);\r\n }\r\n } else {\r\n (dom as HTMLSelectElement).value = String(val);\r\n }\r\n }\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/Portal.tsx","../src/index.ts"],"sourcesContent":["/**\r\n * Portal component for rendering children to a different DOM location.\r\n * \r\n * Uses the `moveBefore` API (Chrome 133+) when available for state-preserving\r\n * DOM moves. Falls back to `insertBefore` for older browsers.\r\n * \r\n * @example\r\n * ```tsx\r\n * import { Portal } from '@sigx/runtime-dom';\r\n * \r\n * // Render to document.body (default)\r\n * <Portal>\r\n * <div class=\"modal\">Modal content</div>\r\n * </Portal>\r\n * \r\n * // Render to a specific container\r\n * <Portal to={document.getElementById('modal-root')}>\r\n * <div class=\"modal\">Modal content</div>\r\n * </Portal>\r\n * \r\n * // Render to a container by selector\r\n * <Portal to=\"#modal-root\">\r\n * <div class=\"modal\">Modal content</div>\r\n * </Portal>\r\n * ```\r\n */\r\n\r\nimport { component, DefineProp, Fragment, VNode, jsx, normalizeSubTree } from '@sigx/runtime-core';\r\nimport { effect } from '@sigx/reactivity';\r\nimport { mount, unmount, patch } from './index.js';\r\n\r\n/**\r\n * Check if the browser supports the moveBefore API.\r\n * moveBefore allows moving DOM nodes without losing state (iframes, videos, focus, etc.)\r\n */\r\nexport function supportsMoveBefore(): boolean {\r\n return typeof Node !== 'undefined' && 'moveBefore' in Node.prototype;\r\n}\r\n\r\n/**\r\n * Move or insert a node into a parent, using moveBefore when available\r\n * for state-preserving moves.\r\n * \r\n * @param parent - The target parent element\r\n * @param node - The node to move/insert\r\n * @param anchor - Optional reference node to insert before\r\n */\r\nexport function moveNode(\r\n parent: Element,\r\n node: Node,\r\n anchor: Node | null = null\r\n): void {\r\n if (supportsMoveBefore()) {\r\n // Use moveBefore for state-preserving move (Chrome 133+)\r\n (parent as any).moveBefore(node, anchor);\r\n } else {\r\n // Fallback to insertBefore (causes state reset for iframes, etc.)\r\n parent.insertBefore(node, anchor);\r\n }\r\n}\r\n\r\n/**\r\n * Resolve a portal target from a string selector or Element.\r\n * Returns document.body as fallback.\r\n */\r\nfunction resolveTarget(target: string | Element | undefined): Element {\r\n if (target === undefined) {\r\n return document.body;\r\n }\r\n \r\n if (typeof target === 'string') {\r\n const resolved = document.querySelector(target);\r\n if (!resolved) {\r\n console.warn(`Portal: Target \"${target}\" not found, falling back to document.body`);\r\n return document.body;\r\n }\r\n return resolved;\r\n }\r\n \r\n return target;\r\n}\r\n\r\ntype PortalProps = DefineProp<'to', string | Element> & DefineProp<'disabled', boolean>;\r\n\r\n/**\r\n * Portal component - renders children to a different DOM location.\r\n * \r\n * Props:\r\n * - `to` - Target container (Element or CSS selector string). Defaults to document.body.\r\n * - `disabled` - When true, renders children in place instead of portaling\r\n * - `children` - Content to render in the portal\r\n * \r\n * Features:\r\n * - Uses `moveBefore` API (Chrome 133+) for state-preserving DOM moves\r\n * - Preserves iframe content, video playback, focus, and CSS animations\r\n * - Falls back to `insertBefore` for older browsers\r\n */\r\nexport const Portal = component<PortalProps>(({ props, slots, onMounted, onUnmounted }) => {\r\n // Container element for portal content\r\n let portalContainer: HTMLDivElement | null = null;\r\n let mountedVNode: VNode | null = null;\r\n let cleanupEffect: (() => void) | null = null;\r\n\r\n onMounted(() => {\r\n if (props.disabled) {\r\n return;\r\n }\r\n\r\n // Resolve target container\r\n const targetContainer = resolveTarget(props.to);\r\n\r\n // Create a container div for the portal content\r\n portalContainer = document.createElement('div');\r\n portalContainer.setAttribute('data-sigx-portal', '');\r\n\r\n // Use moveBefore when available for state-preserving move\r\n moveNode(targetContainer, portalContainer);\r\n\r\n // Set up reactive effect to render children into portal container\r\n const stopEffect = effect(() => {\r\n const children = slots.default();\r\n \r\n if (!portalContainer) return;\r\n \r\n // Normalize children to a proper VNode using the shared utility\r\n const vnode = normalizeSubTree(children);\r\n\r\n if (mountedVNode) {\r\n // Patch existing content\r\n patch(mountedVNode, vnode, portalContainer);\r\n } else {\r\n // Initial mount\r\n mount(vnode, portalContainer);\r\n }\r\n \r\n mountedVNode = vnode;\r\n });\r\n\r\n cleanupEffect = stopEffect;\r\n });\r\n\r\n onUnmounted(() => {\r\n // Stop the reactive effect\r\n if (cleanupEffect) {\r\n cleanupEffect();\r\n cleanupEffect = null;\r\n }\r\n\r\n // Unmount the portal content\r\n if (mountedVNode && portalContainer) {\r\n unmount(mountedVNode, portalContainer);\r\n mountedVNode = null;\r\n }\r\n\r\n // Remove the portal container from the DOM\r\n if (portalContainer && portalContainer.parentNode) {\r\n portalContainer.parentNode.removeChild(portalContainer);\r\n }\r\n portalContainer = null;\r\n });\r\n\r\n return () => {\r\n // When disabled, render children in place using jsx function\r\n if (props.disabled) {\r\n const children = slots.default();\r\n return jsx(Fragment, { children });\r\n }\r\n\r\n // When portal is active, render nothing in place\r\n // Children are rendered into the portal container via the effect\r\n return null;\r\n };\r\n}, { name: 'Portal' });\r\n","// Import JSX types (global augmentation)\r\nimport './jsx';\r\n// Import type augmentation for @sigx/runtime-core\r\nimport './types.js';\r\nimport { VNode, Fragment, JSXElement, setPlatformModelProcessor, createRenderer, RendererOptions, Text, setDefaultMount } from '@sigx/runtime-core';\r\n\r\n// SVG namespace for createElementNS\r\nconst svgNS = 'http://www.w3.org/2000/svg';\r\n\r\n// SVG elements that should be created with createElementNS\r\n// Based on https://developer.mozilla.org/en-US/docs/Web/SVG/Element\r\nconst svgElements = new Set([\r\n 'svg', 'animate', 'animateMotion', 'animateTransform', 'circle', 'clipPath',\r\n 'defs', 'desc', 'ellipse', 'feBlend', 'feColorMatrix', 'feComponentTransfer',\r\n 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap',\r\n 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG',\r\n 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology',\r\n 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile',\r\n 'feTurbulence', 'filter', 'foreignObject', 'g', 'image', 'line', 'linearGradient',\r\n 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline',\r\n 'radialGradient', 'rect', 'set', 'stop', 'switch', 'symbol', 'text', 'textPath',\r\n 'title', 'tspan', 'use', 'view'\r\n]);\r\n\r\n/**\r\n * Check if a tag is an SVG element\r\n */\r\nfunction isSvgTag(tag: string): boolean {\r\n return svgElements.has(tag);\r\n}\r\n\r\n// Register DOM-specific model processor for intrinsic elements (checkbox, radio, etc.)\r\nsetPlatformModelProcessor((type, props, [stateObj, key], originalProps) => {\r\n // Helper to set value - uses onUpdate handler if available (for props model forwarding)\r\n const setValue = (v: any) => {\r\n const updateHandler = stateObj[`onUpdate:${key}`];\r\n if (typeof updateHandler === 'function') {\r\n updateHandler(v);\r\n } else {\r\n stateObj[key] = v;\r\n }\r\n };\r\n\r\n // Smart mapping for checkbox\r\n if (type === 'input' && originalProps.type === 'checkbox') {\r\n const val = stateObj[key];\r\n\r\n if (Array.isArray(val)) {\r\n // Array Checkbox (Multi-select)\r\n props.checked = val.includes(originalProps.value);\r\n\r\n const existingHandler = props['onUpdate:modelValue'];\r\n props['onUpdate:modelValue'] = (checked: boolean) => {\r\n const currentVal = originalProps.value;\r\n const currentArr = stateObj[key] as any[];\r\n if (checked) {\r\n if (!currentArr.includes(currentVal)) {\r\n setValue([...currentArr, currentVal]);\r\n }\r\n } else {\r\n setValue(currentArr.filter((i: any) => i !== currentVal));\r\n }\r\n if (existingHandler) existingHandler(checked);\r\n };\r\n } else {\r\n // Boolean Checkbox\r\n props.checked = val;\r\n const existingHandler = props['onUpdate:modelValue'];\r\n props['onUpdate:modelValue'] = (v: any) => {\r\n setValue(v);\r\n if (existingHandler) existingHandler(v);\r\n };\r\n }\r\n return true; // Handled\r\n }\r\n\r\n // Radio Button\r\n if (type === 'input' && originalProps.type === 'radio') {\r\n props.checked = stateObj[key] === originalProps.value;\r\n const existingHandler = props['onUpdate:modelValue'];\r\n props['onUpdate:modelValue'] = (checked: boolean) => {\r\n if (checked) setValue(originalProps.value);\r\n if (existingHandler) existingHandler(checked);\r\n };\r\n return true; // Handled\r\n }\r\n\r\n // Text input (default input type)\r\n if (type === 'input') {\r\n props.value = stateObj[key] ?? '';\r\n const existingHandler = props['onUpdate:modelValue'];\r\n props['onUpdate:modelValue'] = (v: any) => {\r\n setValue(v);\r\n if (existingHandler) existingHandler(v);\r\n };\r\n return true; // Handled\r\n }\r\n\r\n // Textarea\r\n if (type === 'textarea') {\r\n props.value = stateObj[key] ?? '';\r\n const existingHandler = props['onUpdate:modelValue'];\r\n props['onUpdate:modelValue'] = (v: any) => {\r\n setValue(v);\r\n if (existingHandler) existingHandler(v);\r\n };\r\n return true; // Handled\r\n }\r\n\r\n // Select\r\n if (type === 'select') {\r\n props.value = stateObj[key] ?? '';\r\n const existingHandler = props['onUpdate:modelValue'];\r\n props['onUpdate:modelValue'] = (v: any) => {\r\n setValue(v);\r\n if (existingHandler) existingHandler(v);\r\n };\r\n return true; // Handled\r\n }\r\n\r\n // Not handled - use generic fallback\r\n return false;\r\n});\r\n\r\nfunction patchProp(dom: Element, key: string, prevValue: any, nextValue: any, isSVG?: boolean) {\r\n // Guard: skip if dom is null (shouldn't happen but protects against edge cases)\r\n if (!dom) return;\r\n const tagName = dom.tagName.toLowerCase();\r\n \r\n // Detect SVG context: either passed explicitly or detect from element type\r\n // This ensures SVG attributes are handled correctly even if renderer doesn't pass isSVG\r\n const isSvgElement = isSVG ?? (dom instanceof SVGElement);\r\n \r\n const oldProps = prevValue ? { [key]: prevValue } : {};\r\n const newProps = nextValue ? { [key]: nextValue } : {};\r\n\r\n // This is a simplified version of updateProps that handles a single prop\r\n // But the original updateProps handled all props at once.\r\n // The renderer calls patchProp for each key.\r\n\r\n // Logic adapted from original updateProps\r\n const oldValue = prevValue;\r\n const newValue = nextValue;\r\n\r\n if (key === 'children' || key === 'key' || key === 'ref') return;\r\n\r\n if (key === 'style') {\r\n const el = dom as HTMLElement;\r\n if (typeof newValue === 'object' && newValue !== null) {\r\n const styleObj = newValue as Record<string, string | number>;\r\n // We might need to unset old styles if they are not in new styles\r\n // But here we only get the new value for the key.\r\n // Ideally patchProp should handle diffing inside style object if it's an object.\r\n // For now, let's assume full replacement or simple update.\r\n for (const styleKey in styleObj) {\r\n if (styleKey.startsWith('--')) {\r\n el.style.setProperty(styleKey, String(styleObj[styleKey]));\r\n } else {\r\n (el.style as any)[styleKey] = styleObj[styleKey];\r\n }\r\n }\r\n } else {\r\n el.style.cssText = String(newValue);\r\n }\r\n } else if (key.startsWith('on')) {\r\n if (key === 'onUpdate:modelValue' && (tagName === 'input' || tagName === 'textarea' || tagName === 'select')) {\r\n const el = dom as HTMLElement;\r\n if (oldValue) {\r\n const wrapper = (oldValue as any).__sigx_model_handler;\r\n if (wrapper) {\r\n el.removeEventListener('input', wrapper);\r\n el.removeEventListener('change', wrapper);\r\n }\r\n }\r\n\r\n if (newValue) {\r\n const handler = (e: Event) => {\r\n const target = e.target as HTMLInputElement;\r\n let val: any;\r\n\r\n if (target.type === 'checkbox' || target.type === 'radio') {\r\n val = target.checked;\r\n } else if (target.type === 'number') {\r\n val = target.valueAsNumber;\r\n } else if (tagName === 'select' && (dom as HTMLSelectElement).multiple) {\r\n val = Array.from((dom as HTMLSelectElement).selectedOptions).map(o => o.value);\r\n } else {\r\n val = target.value;\r\n }\r\n\r\n (newValue as Function)(val);\r\n };\r\n (newValue as any).__sigx_model_handler = handler;\r\n\r\n const inputType = (dom as HTMLInputElement).type;\r\n if (tagName === 'select' || (tagName === 'input' && (inputType === 'checkbox' || inputType === 'radio'))) {\r\n el.addEventListener('change', handler);\r\n } else {\r\n el.addEventListener('input', handler);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n const eventName = key.slice(2).toLowerCase();\r\n // Store handlers on the DOM element to properly track them across re-renders\r\n // Using a Map keyed by event name to ensure we remove the correct wrapper\r\n const handlersKey = '__sigx_event_handlers';\r\n let handlers = (dom as any)[handlersKey] as Map<string, EventListener> | undefined;\r\n if (!handlers) {\r\n handlers = new Map();\r\n (dom as any)[handlersKey] = handlers;\r\n }\r\n\r\n // Remove old handler if exists\r\n const oldHandler = handlers.get(eventName);\r\n if (oldHandler) {\r\n dom.removeEventListener(eventName, oldHandler);\r\n handlers.delete(eventName);\r\n }\r\n\r\n // Add new handler\r\n if (newValue) {\r\n const handler = (e: Event) => {\r\n if (e instanceof CustomEvent) {\r\n (newValue as Function)(e.detail);\r\n } else {\r\n (newValue as Function)(e);\r\n }\r\n };\r\n handlers.set(eventName, handler);\r\n dom.addEventListener(eventName, handler as EventListener);\r\n }\r\n } else if (key === 'className') {\r\n // For SVG, use setAttribute to preserve case (class works on both)\r\n dom.setAttribute('class', String(newValue));\r\n } else if (key.startsWith('.')) {\r\n const propName = key.slice(1);\r\n (dom as any)[propName] = newValue;\r\n } else if (isSvgElement) {\r\n // SVG elements: use setAttribute to preserve case-sensitive attribute names\r\n // SVG attributes like viewBox, preserveAspectRatio, etc. are case-sensitive\r\n if (key === 'innerHTML' || key === 'textContent') {\r\n // These can be set as properties even on SVG\r\n (dom as any)[key] = newValue ?? '';\r\n } else if (key.startsWith('xlink:')) {\r\n // xlink: attributes need special namespace handling\r\n const xlinkNS = 'http://www.w3.org/1999/xlink';\r\n if (newValue == null) {\r\n dom.removeAttributeNS(xlinkNS, key.slice(6));\r\n } else {\r\n dom.setAttributeNS(xlinkNS, key, String(newValue));\r\n }\r\n } else {\r\n // Standard SVG attribute - use setAttribute to preserve case\r\n if (newValue === true) dom.setAttribute(key, '');\r\n else if (newValue === false || newValue == null) dom.removeAttribute(key);\r\n else dom.setAttribute(key, String(newValue));\r\n }\r\n } else {\r\n if ((tagName === 'input' || tagName === 'textarea' || tagName === 'select') &&\r\n (key === 'value' || key === 'checked')) {\r\n if (tagName === 'select' && key === 'value') {\r\n // Defer setting select value until options are mounted\r\n queueMicrotask(() => {\r\n (dom as HTMLSelectElement).value = String(newValue ?? '');\r\n });\r\n return;\r\n }\r\n\r\n if (key === 'checked' && tagName === 'input') {\r\n (dom as HTMLInputElement).checked = Boolean(newValue);\r\n } else if (key === 'value') {\r\n (dom as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement).value = String(newValue ?? '');\r\n }\r\n } else if (key in dom) {\r\n // Skip undefined/null to avoid DOM coercing to 0 for numeric props like maxLength\r\n if (newValue == null) {\r\n // Remove attribute if it exists\r\n if (dom.hasAttribute?.(key)) {\r\n dom.removeAttribute(key);\r\n }\r\n } else {\r\n try {\r\n (dom as Record<string, any>)[key] = newValue;\r\n } catch (e) {\r\n dom.setAttribute(key, String(newValue));\r\n }\r\n }\r\n } else if (tagName.includes('-') && !key.includes('-')) {\r\n (dom as Record<string, any>)[key] = newValue;\r\n } else {\r\n if (newValue === true) dom.setAttribute(key, '');\r\n else if (newValue === false || newValue == null) dom.removeAttribute(key);\r\n else dom.setAttribute(key, String(newValue));\r\n }\r\n }\r\n}\r\n\r\nconst nodeOps: RendererOptions<Node, Element> = {\r\n insert: (child, parent, anchor) => {\r\n parent.insertBefore(child, anchor || null);\r\n },\r\n remove: (child) => {\r\n const parent = child.parentNode;\r\n if (parent) {\r\n parent.removeChild(child);\r\n }\r\n },\r\n createElement: (tag, isSVG, isCustomizedBuiltIn) => {\r\n if (isSVG) {\r\n return document.createElementNS(svgNS, tag);\r\n }\r\n const is = isCustomizedBuiltIn ? { is: isCustomizedBuiltIn } : undefined;\r\n return document.createElement(tag, is);\r\n },\r\n createText: (text) => document.createTextNode(text),\r\n createComment: (text) => document.createComment(text),\r\n setText: (node, text) => {\r\n node.nodeValue = text;\r\n },\r\n setElementText: (el, text) => {\r\n el.textContent = text;\r\n },\r\n parentNode: (node) => node.parentNode as Element,\r\n nextSibling: (node) => node.nextSibling,\r\n querySelector: (selector) => document.querySelector(selector),\r\n setScopeId: (el, id) => el.setAttribute(id, ''),\r\n cloneNode: (node) => node.cloneNode(true),\r\n patchProp\r\n};\r\n\r\nconst renderer = createRenderer(nodeOps);\r\n\r\n/**\r\n * Render a SignalX element to a DOM container.\r\n * Supports both Element references and CSS selectors.\r\n * \r\n * @example\r\n * ```tsx\r\n * import { render } from 'sigx';\r\n * \r\n * // Using CSS selector\r\n * render(<App />, \"#app\");\r\n * \r\n * // Using element reference\r\n * render(<App />, document.getElementById('app')!);\r\n * ```\r\n */\r\nexport const render = (element: any, container: Element | string, appContext?: any): void => {\r\n const target = typeof container === 'string'\r\n ? document.querySelector(container)\r\n : container;\r\n\r\n if (!target) {\r\n throw new Error(`Render target \"${container}\" not found.`);\r\n }\r\n\r\n return renderer.render(element, target as Element, appContext);\r\n};\r\n\r\n// Export primitives for SSR plugins and hydration\r\nexport const { patch, mount, unmount, mountComponent } = renderer;\r\nexport { patchProp, nodeOps };\r\n\r\n/**\r\n * Mount function for DOM environments.\r\n * Use this with defineApp().mount() to render to the DOM.\r\n * \r\n * @example\r\n * ```tsx\r\n * import { defineApp } from '@sigx/runtime-core';\r\n * import { domMount } from '@sigx/runtime-dom';\r\n * \r\n * const app = defineApp(<App />);\r\n * app.use(routerPlugin)\r\n * .mount(document.getElementById('app')!, domMount);\r\n * ```\r\n */\r\nexport const domMount = (component: any, container: HTMLElement | Element | ShadowRoot | string, appContext?: any): (() => void) => {\r\n // Resolve string selector to element\r\n const target = typeof container === 'string'\r\n ? document.querySelector(container)\r\n : container;\r\n\r\n if (!target) {\r\n throw new Error(`Mount target \"${container}\" not found.`);\r\n }\r\n\r\n render(component, target as Element, appContext);\r\n\r\n // Return an unmount function\r\n return () => {\r\n // Render null to unmount\r\n render(null as any, target as Element);\r\n };\r\n};\r\n\r\n// Set domMount as the default mount function for this platform\r\nsetDefaultMount(domMount);\r\n\r\n// Export Portal component and moveBefore utilities\r\nexport { Portal, supportsMoveBefore, moveNode } from './Portal.js';\r\n"],"mappings":"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"}
package/dist/jsx.d.ts CHANGED
@@ -1,15 +1,111 @@
1
1
  import '@sigx/runtime-core';
2
- import type { RegisteredElements } from '@sigx/runtime-core';
2
+ type CSSNumericProperty = string | number;
3
+ interface CSSProperties {
4
+ position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
5
+ top?: CSSNumericProperty;
6
+ right?: CSSNumericProperty;
7
+ bottom?: CSSNumericProperty;
8
+ left?: CSSNumericProperty;
9
+ zIndex?: CSSNumericProperty;
10
+ width?: CSSNumericProperty;
11
+ height?: CSSNumericProperty;
12
+ minWidth?: CSSNumericProperty;
13
+ maxWidth?: CSSNumericProperty;
14
+ minHeight?: CSSNumericProperty;
15
+ maxHeight?: CSSNumericProperty;
16
+ margin?: CSSNumericProperty;
17
+ marginTop?: CSSNumericProperty;
18
+ marginRight?: CSSNumericProperty;
19
+ marginBottom?: CSSNumericProperty;
20
+ marginLeft?: CSSNumericProperty;
21
+ padding?: CSSNumericProperty;
22
+ paddingTop?: CSSNumericProperty;
23
+ paddingRight?: CSSNumericProperty;
24
+ paddingBottom?: CSSNumericProperty;
25
+ paddingLeft?: CSSNumericProperty;
26
+ display?: string;
27
+ flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
28
+ flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
29
+ justifyContent?: string;
30
+ alignItems?: string;
31
+ alignContent?: string;
32
+ alignSelf?: string;
33
+ flex?: CSSNumericProperty;
34
+ flexGrow?: CSSNumericProperty;
35
+ flexShrink?: CSSNumericProperty;
36
+ flexBasis?: CSSNumericProperty;
37
+ order?: CSSNumericProperty;
38
+ gap?: CSSNumericProperty;
39
+ rowGap?: CSSNumericProperty;
40
+ columnGap?: CSSNumericProperty;
41
+ gridTemplateColumns?: string;
42
+ gridTemplateRows?: string;
43
+ gridColumn?: string;
44
+ gridRow?: string;
45
+ gridArea?: string;
46
+ gridGap?: CSSNumericProperty;
47
+ fontSize?: CSSNumericProperty;
48
+ fontFamily?: string;
49
+ fontWeight?: CSSNumericProperty;
50
+ fontStyle?: string;
51
+ lineHeight?: CSSNumericProperty;
52
+ letterSpacing?: CSSNumericProperty;
53
+ textAlign?: 'left' | 'center' | 'right' | 'justify';
54
+ textDecoration?: string;
55
+ textTransform?: string;
56
+ whiteSpace?: string;
57
+ wordBreak?: string;
58
+ wordWrap?: string;
59
+ overflowWrap?: string;
60
+ color?: string;
61
+ backgroundColor?: string;
62
+ background?: string;
63
+ backgroundImage?: string;
64
+ backgroundSize?: string;
65
+ backgroundPosition?: string;
66
+ backgroundRepeat?: string;
67
+ border?: string;
68
+ borderWidth?: CSSNumericProperty;
69
+ borderStyle?: string;
70
+ borderColor?: string;
71
+ borderRadius?: CSSNumericProperty;
72
+ borderTop?: string;
73
+ borderRight?: string;
74
+ borderBottom?: string;
75
+ borderLeft?: string;
76
+ opacity?: CSSNumericProperty;
77
+ visibility?: 'visible' | 'hidden' | 'collapse';
78
+ overflow?: 'visible' | 'hidden' | 'scroll' | 'auto';
79
+ overflowX?: 'visible' | 'hidden' | 'scroll' | 'auto';
80
+ overflowY?: 'visible' | 'hidden' | 'scroll' | 'auto';
81
+ boxShadow?: string;
82
+ textShadow?: string;
83
+ transform?: string;
84
+ transformOrigin?: string;
85
+ transition?: string;
86
+ transitionProperty?: string;
87
+ transitionDuration?: string;
88
+ transitionTimingFunction?: string;
89
+ transitionDelay?: string;
90
+ animation?: string;
91
+ cursor?: string;
92
+ pointerEvents?: 'auto' | 'none';
93
+ userSelect?: 'auto' | 'none' | 'text' | 'all';
94
+ objectFit?: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down';
95
+ objectPosition?: string;
96
+ [key: string]: CSSNumericProperty | undefined;
97
+ }
3
98
  declare global {
4
99
  namespace JSX {
5
100
  interface IntrinsicAttributes {
101
+ key?: string | number;
6
102
  id?: string;
7
103
  class?: string;
8
- style?: string | Partial<CSSStyleDeclaration>;
104
+ style?: string | CSSProperties;
9
105
  [key: `data-${string}`]: any;
10
106
  [key: `aria-${string}`]: any;
11
107
  }
12
- interface IntrinsicElements extends RegisteredElements {
108
+ interface IntrinsicElements {
13
109
  a: HTMLAttributes<HTMLAnchorElement>;
14
110
  abbr: HTMLAttributes<HTMLElement>;
15
111
  address: HTMLAttributes<HTMLElement>;
@@ -248,7 +344,7 @@ declare global {
248
344
  srcSet?: string;
249
345
  start?: number;
250
346
  step?: number | string;
251
- style?: string | Partial<CSSStyleDeclaration>;
347
+ style?: string | CSSProperties;
252
348
  summary?: string;
253
349
  tabIndex?: number;
254
350
  target?: string;
@@ -285,7 +381,7 @@ declare global {
285
381
  onEnded?: (event: Event) => void;
286
382
  onError?: (event: Event | string) => void;
287
383
  onFocus?: (event: FocusEvent) => void;
288
- onInput?: (event: Event) => void;
384
+ onInput?: (event: InputEvent) => void;
289
385
  onInvalid?: (event: Event) => void;
290
386
  onKeyDown?: (event: KeyboardEvent) => void;
291
387
  onKeyPress?: (event: KeyboardEvent) => void;
@@ -361,7 +457,7 @@ declare global {
361
457
  onended?: (event: Event) => void;
362
458
  onerror?: (event: Event | string) => void;
363
459
  onfocus?: (event: FocusEvent) => void;
364
- oninput?: (event: Event) => void;
460
+ oninput?: (event: InputEvent) => void;
365
461
  oninvalid?: (event: Event) => void;
366
462
  onkeydown?: (event: KeyboardEvent) => void;
367
463
  onkeypress?: (event: KeyboardEvent) => void;
@@ -416,26 +512,33 @@ declare global {
416
512
  [key: `data-${string}`]: any;
417
513
  }
418
514
  interface FormElementAttributes<T = HTMLElement, V = any> extends HTMLAttributes<T> {
419
- sync?: [object, string] | (() => V);
420
- [key: `sync:${string}`]: [object, string] | (() => any);
421
- "onUpdate:value"?: (value: V) => void;
515
+ model?: [object, string] | (() => V);
516
+ [key: `model:${string}`]: [object, string] | (() => any);
517
+ "onUpdate:modelValue"?: (value: V) => void;
422
518
  }
423
519
  interface NumberInputAttributes<T = HTMLInputElement> extends FormElementAttributes<T, number> {
424
520
  type: "number";
425
- value?: number;
521
+ value?: number | string;
522
+ }
523
+ interface RangeInputAttributes<T = HTMLInputElement> extends FormElementAttributes<T, number> {
524
+ type: "range";
525
+ value?: number | string;
526
+ min?: number | string;
527
+ max?: number | string;
528
+ step?: number | string;
426
529
  }
427
530
  interface CheckboxInputAttributes<T = HTMLInputElement> extends HTMLAttributes<T> {
428
531
  type: "checkbox" | "radio";
429
532
  checked?: boolean;
430
- sync?: [object, string] | (() => boolean | any[] | string | number);
431
- "onUpdate:value"?: (checked: boolean) => void;
432
- [key: `sync:${string}`]: [object, string] | (() => any);
533
+ model?: [object, string] | (() => boolean | any[] | string | number);
534
+ "onUpdate:modelValue"?: (checked: boolean) => void;
535
+ [key: `model:${string}`]: [object, string] | (() => any);
433
536
  }
434
537
  interface TextInputAttributes<T = HTMLInputElement> extends FormElementAttributes<T, string> {
435
- type?: "text" | "password" | "email" | "search" | "tel" | "url" | "date" | "datetime-local" | "month" | "time" | "week" | "color" | "file" | "hidden" | "image" | "range" | "reset" | "submit" | "button";
538
+ type?: "text" | "password" | "email" | "search" | "tel" | "url" | "date" | "datetime-local" | "month" | "time" | "week" | "color" | "file" | "hidden" | "image" | "reset" | "submit" | "button";
436
539
  value?: string;
437
540
  }
438
- type InputHTMLAttributes<T = HTMLInputElement> = NumberInputAttributes<T> | CheckboxInputAttributes<T> | TextInputAttributes<T>;
541
+ type InputHTMLAttributes<T = HTMLInputElement> = NumberInputAttributes<T> | RangeInputAttributes<T> | CheckboxInputAttributes<T> | TextInputAttributes<T>;
439
542
  interface TextareaHTMLAttributes<T = HTMLTextAreaElement> extends FormElementAttributes<T, string> {
440
543
  value?: string;
441
544
  }
package/dist/jsx.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../src/jsx.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../src/jsx.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sigx/runtime-dom",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "DOM runtime for SignalX",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -29,15 +29,16 @@
29
29
  "url": "https://github.com/signalxjs/core/issues"
30
30
  },
31
31
  "dependencies": {
32
- "@sigx/reactivity": "^0.1.4",
33
- "@sigx/runtime-core": "^0.1.4"
32
+ "@sigx/runtime-core": "^0.1.6",
33
+ "@sigx/reactivity": "^0.1.6"
34
34
  },
35
35
  "devDependencies": {
36
- "rolldown": "^1.0.0-beta.52",
37
- "typescript": "^5.9.3"
36
+ "typescript": "^5.9.3",
37
+ "vite": "^8.0.0-beta.9",
38
+ "@sigx/vite": "^0.1.6"
38
39
  },
39
40
  "scripts": {
40
- "build": "rolldown -c && tsc --emitDeclarationOnly",
41
- "dev": "rolldown -c -w"
41
+ "build": "vite build && tsc --emitDeclarationOnly",
42
+ "dev": "vite build --watch"
42
43
  }
43
44
  }
@@ -1,104 +0,0 @@
1
- /**
2
- * Auto-loader for sigx components.
3
- * Automatically loads and bootstraps components when they appear in the DOM.
4
- *
5
- * When using <ui.card /> or <my.custom.thing />, this module:
6
- * 1. Detects unregistered custom elements
7
- * 2. Looks up the component's source file from the manifest
8
- * 3. Dynamically imports and registers the component
9
- * 4. Upgrades the existing DOM elements
10
- */
11
- export interface ComponentManifestEntry {
12
- /** The tag name, e.g., "ui-card" */
13
- tagName: string;
14
- /** The source file path (for bundler) or chunk URL */
15
- source: string;
16
- /** Optional: Named export if not default */
17
- exportName?: string;
18
- }
19
- export interface ComponentManifest {
20
- [tagName: string]: ComponentManifestEntry;
21
- }
22
- export interface AutoLoaderOptions {
23
- /**
24
- * The manifest mapping tag names to their source files.
25
- * Can be provided statically or loaded from a URL.
26
- */
27
- manifest?: ComponentManifest | string;
28
- /**
29
- * Custom loader function for resolving component modules.
30
- * If not provided, uses dynamic import().
31
- */
32
- loader?: (source: string) => Promise<any>;
33
- /**
34
- * Root element to observe for new custom elements.
35
- * @default document.body
36
- */
37
- root?: Element;
38
- /**
39
- * Whether to show a loading placeholder while components load.
40
- * @default true
41
- */
42
- showPlaceholder?: boolean;
43
- /**
44
- * Custom placeholder element or HTML string.
45
- * @default A subtle loading skeleton
46
- */
47
- placeholder?: string | (() => HTMLElement);
48
- /**
49
- * Callback when a component starts loading.
50
- */
51
- onLoadStart?: (tagName: string) => void;
52
- /**
53
- * Callback when a component finishes loading.
54
- */
55
- onLoadEnd?: (tagName: string, success: boolean) => void;
56
- /**
57
- * Callback when a component fails to load.
58
- */
59
- onError?: (tagName: string, error: Error) => void;
60
- }
61
- /**
62
- * Register a component manifest for auto-loading.
63
- * Can be called multiple times to merge manifests.
64
- */
65
- export declare function registerManifest(newManifest: ComponentManifest): void;
66
- /**
67
- * Register a single component entry for auto-loading.
68
- */
69
- export declare function registerComponentSource(tagName: string, source: string, exportName?: string): void;
70
- /**
71
- * Get the current manifest.
72
- */
73
- export declare function getManifest(): ComponentManifest;
74
- /**
75
- * Clear the manifest.
76
- */
77
- export declare function clearManifest(): void;
78
- /**
79
- * Manually trigger loading of a component.
80
- * Useful for preloading components before they appear in the DOM.
81
- */
82
- export declare function preloadComponent(tagName: string): Promise<void>;
83
- /**
84
- * Preload multiple components in parallel.
85
- */
86
- export declare function preloadComponents(tagNames: string[]): Promise<void>;
87
- /**
88
- * Retry loading a failed component.
89
- */
90
- export declare function retryComponent(tagName: string): Promise<void>;
91
- /**
92
- * Initialize the auto-loader.
93
- * Call this once at app startup.
94
- */
95
- export declare function initAutoLoader(opts?: AutoLoaderOptions): Promise<void>;
96
- /**
97
- * Destroy the auto-loader.
98
- */
99
- export declare function destroyAutoLoader(): void;
100
- /**
101
- * Check if the auto-loader is initialized.
102
- */
103
- export declare function isAutoLoaderInitialized(): boolean;
104
- //# sourceMappingURL=auto-loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-loader.d.ts","sourceRoot":"","sources":["../src/auto-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,MAAM,WAAW,sBAAsB;IACnC,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAC9B,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAiB;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAEtC;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAE1C;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,WAAW,CAAC,CAAC;IAE3C;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAExD;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACrD;AAwBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAErE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAElG;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,iBAAiB,CAE/C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AA6FD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnE;AA0JD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuChF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAOxC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD"}
@@ -1,15 +0,0 @@
1
- /**
2
- * DOM-specific component options
3
- */
4
- export interface DOMComponentOptions {
5
- /** Whether to use Shadow DOM. Defaults to true. */
6
- shadow?: boolean;
7
- }
8
- export interface SignalXComponent extends HTMLElement {
9
- __isSigx: true;
10
- __provides?: Map<any, any>;
11
- __parentComponent?: SignalXComponent | null;
12
- __isMoving?: boolean;
13
- }
14
- export declare function registerWebComponent(tagName: string, options?: DOMComponentOptions): void;
15
- //# sourceMappingURL=custom-element.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-element.d.ts","sourceRoot":"","sources":["../src/custom-element.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACjD,QAAQ,EAAE,IAAI,CAAC;IACf,UAAU,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3B,iBAAiB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AASD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,QAsMlF"}
package/dist/sheet.d.ts DELETED
@@ -1,51 +0,0 @@
1
- export type CSSObject = Partial<CSSStyleDeclaration> & {
2
- [key: string]: string | number | CSSObject | undefined | any;
3
- };
4
- export type StylesMap<T> = {
5
- [K in keyof T]: string;
6
- };
7
- export type DeepPartial<T> = {
8
- [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
9
- };
10
- export type VarsHelper<T> = T & {
11
- (overrides?: DeepPartial<T>): Record<string, string>;
12
- };
13
- /**
14
- * Define a set of styles using a typed object.
15
- * Returns a map of class names that automatically adopts the stylesheet when used.
16
- *
17
- * @example
18
- * ```typescript
19
- * const styles = defineStyles({
20
- * container: {
21
- * display: "flex",
22
- * backgroundColor: "var(--bg)",
23
- * "&:hover": { opacity: 0.8 }
24
- * }
25
- * });
26
- *
27
- * // In component:
28
- * <div class={styles.container} />
29
- * ```
30
- */
31
- export declare function defineStyles<T extends Record<string, CSSObject>>(styles: T): StylesMap<T>;
32
- /**
33
- * Define a set of CSS variables with defaults.
34
- * Returns a helper that provides both the var() strings and a function to generate style objects.
35
- *
36
- * @example
37
- * ```typescript
38
- * const vars = defineVars('card', {
39
- * bg: 'white',
40
- * padding: '1rem'
41
- * });
42
- *
43
- * // Use in styles:
44
- * // background: vars.bg -> var(--card-bg, white)
45
- *
46
- * // Use in component:
47
- * // style={vars({ bg: 'red' })} -> { '--card-bg': 'red' }
48
- * ```
49
- */
50
- export declare function defineVars<T extends Record<string, any>>(namespace: string, defaults: T): VarsHelper<T>;
51
- //# sourceMappingURL=sheet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../src/sheet.ts"],"names":[],"mappings":"AAoBA,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG;IACnD,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;KACtB,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;CACzB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAClE,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG;IAC5B,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxD,CAAC;AAkCF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAwBzF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CA4CvG"}
package/dist/styled.d.ts DELETED
@@ -1,15 +0,0 @@
1
- import { JSXElement } from "@sigx/runtime-core";
2
- type StyledComponent<P> = (props: P & {
3
- class?: string;
4
- className?: string;
5
- children?: any;
6
- }) => JSXElement;
7
- type StyledFunction<P> = (strings: TemplateStringsArray, ...values: any[]) => StyledComponent<P>;
8
- type StyledInterface = {
9
- [Tag in keyof JSX.IntrinsicElements]: StyledFunction<JSX.IntrinsicElements[Tag]>;
10
- } & {
11
- <P>(tag: string | ((props: P) => JSXElement)): StyledFunction<P>;
12
- };
13
- export declare const styled: StyledInterface;
14
- export {};
15
- //# sourceMappingURL=styled.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../src/styled.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAcrD,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,KAAK,UAAU,CAAC;AAE5G,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC;AAEjG,KAAK,eAAe,GAAG;KAClB,GAAG,IAAI,MAAM,GAAG,CAAC,iBAAiB,GAAG,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;CACnF,GAAG;IACA,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,UAAU,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;CACpE,CAAC;AA2DF,eAAO,MAAM,MAAM,iBAAc,CAAC"}
package/dist/styles.d.ts DELETED
@@ -1,61 +0,0 @@
1
- /**
2
- * Style Registry for DOM runtime
3
- * Manages CSS stylesheets with deduplication using adoptedStyleSheets API
4
- */
5
- export type CSSObject = Partial<CSSStyleDeclaration> & {
6
- [key: string]: string | number | CSSObject | undefined | any;
7
- };
8
- export type StylesMap<T> = {
9
- [K in keyof T]: string;
10
- };
11
- export type DeepPartial<T> = {
12
- [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
13
- };
14
- export type VarsHelper<T> = T & {
15
- (overrides?: DeepPartial<T>): Record<string, string>;
16
- };
17
- /**
18
- * Register and adopt a stylesheet to the document
19
- * @param id Unique identifier for deduplication
20
- * @param cssText The CSS text content
21
- */
22
- export declare function adoptStyles(id: string, cssText: string): void;
23
- /**
24
- * Define a set of styles using a typed object.
25
- * Returns a map of class names that automatically adopts the stylesheet when used.
26
- *
27
- * @example
28
- * ```typescript
29
- * const styles = defineStyles({
30
- * container: {
31
- * display: "flex",
32
- * backgroundColor: "var(--bg)",
33
- * "&:hover": { opacity: 0.8 }
34
- * }
35
- * });
36
- *
37
- * // In component:
38
- * <div class={styles.container} />
39
- * ```
40
- */
41
- export declare function defineStyles<T extends Record<string, CSSObject>>(styles: T): StylesMap<T>;
42
- /**
43
- * Define a set of CSS variables with defaults.
44
- * Returns a helper that provides both the var() strings and a function to generate style objects.
45
- *
46
- * @example
47
- * ```typescript
48
- * const vars = defineVars('card', {
49
- * bg: 'white',
50
- * padding: '1rem'
51
- * });
52
- *
53
- * // Use in styles:
54
- * // background: vars.bg -> var(--card-bg, white)
55
- *
56
- * // Use in component:
57
- * // style={vars({ bg: 'red' })} -> { '--card-bg': 'red' }
58
- * ```
59
- */
60
- export declare function defineVars<T extends Record<string, any>>(namespace: string, defaults: T): VarsHelper<T>;
61
- //# sourceMappingURL=styles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG;IACnD,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;KACtB,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;CACzB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAClE,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG;IAC5B,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxD,CAAC;AAcF;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAqB7D;AA+BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAwBzF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CA4CvG"}