@sigx/vite 0.1.0

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 (74) hide show
  1. package/README.md +40 -0
  2. package/dist/cli.d.ts +12 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +372 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/core/src/Component.d.ts +131 -0
  7. package/dist/core/src/Component.d.ts.map +1 -0
  8. package/dist/core/src/Component.js +272 -0
  9. package/dist/core/src/Component.js.map +1 -0
  10. package/dist/core/src/Signals.d.ts +34 -0
  11. package/dist/core/src/Signals.d.ts.map +1 -0
  12. package/dist/core/src/Signals.js +222 -0
  13. package/dist/core/src/Signals.js.map +1 -0
  14. package/dist/core/src/Templating.d.ts +11 -0
  15. package/dist/core/src/Templating.d.ts.map +1 -0
  16. package/dist/core/src/Templating.js +81 -0
  17. package/dist/core/src/Templating.js.map +1 -0
  18. package/dist/core/src/factory/index.d.ts +20 -0
  19. package/dist/core/src/factory/index.d.ts.map +1 -0
  20. package/dist/core/src/factory/index.js +50 -0
  21. package/dist/core/src/factory/index.js.map +1 -0
  22. package/dist/core/src/index.d.ts +8 -0
  23. package/dist/core/src/index.d.ts.map +1 -0
  24. package/dist/core/src/index.js +9 -0
  25. package/dist/core/src/index.js.map +1 -0
  26. package/dist/core/src/jsx-runtime.d.ts +43 -0
  27. package/dist/core/src/jsx-runtime.d.ts.map +1 -0
  28. package/dist/core/src/jsx-runtime.js +469 -0
  29. package/dist/core/src/jsx-runtime.js.map +1 -0
  30. package/dist/core/src/messaging/index.d.ts +9 -0
  31. package/dist/core/src/messaging/index.d.ts.map +1 -0
  32. package/dist/core/src/messaging/index.js +37 -0
  33. package/dist/core/src/messaging/index.js.map +1 -0
  34. package/dist/core/src/models/index.d.ts +18 -0
  35. package/dist/core/src/models/index.d.ts.map +1 -0
  36. package/dist/core/src/models/index.js +12 -0
  37. package/dist/core/src/models/index.js.map +1 -0
  38. package/dist/core/src/sheet.d.ts +51 -0
  39. package/dist/core/src/sheet.d.ts.map +1 -0
  40. package/dist/core/src/sheet.js +151 -0
  41. package/dist/core/src/sheet.js.map +1 -0
  42. package/dist/core/src/stores/DefineInjectable.d.ts +5 -0
  43. package/dist/core/src/stores/DefineInjectable.d.ts.map +1 -0
  44. package/dist/core/src/stores/DefineInjectable.js +56 -0
  45. package/dist/core/src/stores/DefineInjectable.js.map +1 -0
  46. package/dist/core/src/stores/Store.d.ts +70 -0
  47. package/dist/core/src/stores/Store.d.ts.map +1 -0
  48. package/dist/core/src/stores/Store.js +180 -0
  49. package/dist/core/src/stores/Store.js.map +1 -0
  50. package/dist/core/src/styled.d.ts +15 -0
  51. package/dist/core/src/styled.d.ts.map +1 -0
  52. package/dist/core/src/styled.js +62 -0
  53. package/dist/core/src/styled.js.map +1 -0
  54. package/dist/core/src/utils/index.d.ts +5 -0
  55. package/dist/core/src/utils/index.d.ts.map +1 -0
  56. package/dist/core/src/utils/index.js +12 -0
  57. package/dist/core/src/utils/index.js.map +1 -0
  58. package/dist/hmr-plugin/src/index.d.ts +2 -0
  59. package/dist/hmr-plugin/src/index.d.ts.map +1 -0
  60. package/dist/hmr-plugin/src/index.js +59 -0
  61. package/dist/hmr-plugin/src/index.js.map +1 -0
  62. package/dist/hmr.d.ts +10 -0
  63. package/dist/hmr.d.ts.map +1 -0
  64. package/dist/hmr.js +99 -0
  65. package/dist/hmr.js.map +1 -0
  66. package/dist/index.d.ts +12 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +52 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/vite/src/index.d.ts +2 -0
  71. package/dist/vite/src/index.d.ts.map +1 -0
  72. package/dist/vite/src/index.js +59 -0
  73. package/dist/vite/src/index.js.map +1 -0
  74. package/package.json +53 -0
@@ -0,0 +1,20 @@
1
+ import { InstanceLifetimes, guid } from "../models";
2
+ export declare class SubscriptionHandler {
3
+ private unsubs;
4
+ add(unsub: () => void): void;
5
+ unsubscribe(): void;
6
+ }
7
+ export interface SetupFactoryContext {
8
+ onDeactivated(fn: () => void): void;
9
+ subscriptions: SubscriptionHandler;
10
+ overrideDispose(onDispose: (fn: () => void) => void): void;
11
+ }
12
+ export declare function defineFactory<InferReturnSetup>(setup: (ctx: SetupFactoryContext, ...args: any) => InferReturnSetup, lifetime: InstanceLifetimes, typeIdentifier?: guid): () => InferReturnSetup & {
13
+ dispose?: () => void;
14
+ };
15
+ export declare function defineFactory<InferReturnSetup, T1>(setup: (ctx: SetupFactoryContext, param1: T1) => InferReturnSetup, lifetime: InstanceLifetimes, typeIdentifier?: guid): (param1: T1) => InferReturnSetup;
16
+ export declare function defineFactory<InferReturnSetup, T1, T2>(setup: (ctx: SetupFactoryContext, param1: T1, param2: T2) => InferReturnSetup, lifetime: InstanceLifetimes, typeIdentifier?: string): (param1: T1, param2: T2) => InferReturnSetup;
17
+ export declare function defineFactory<InferReturnSetup, T1, T2, T3>(setup: (ctx: SetupFactoryContext, param1: T1, param2: T2, param3: T3) => InferReturnSetup, lifetime: InstanceLifetimes, typeIdentifier?: guid): (param1: T1, param2: T2, param3: T3) => InferReturnSetup;
18
+ export declare function defineFactory<InferReturnSetup, T1, T2, T3, T4>(setup: (ctx: SetupFactoryContext, param1: T1, param2: T2, param3: T3, param4: T4) => InferReturnSetup, lifetime: InstanceLifetimes, typeIdentifier?: guid): (param1: T1, param2: T2, param3: T3, param4: T4) => InferReturnSetup;
19
+ export declare function defineFactory<InferReturnSetup, T1, T2, T3, T4, T5>(setup: (ctx: SetupFactoryContext, param1: T1, param2: T2, param3: T3, param4: T4, param5: T5) => InferReturnSetup, lifetime: InstanceLifetimes, typeIdentifier?: guid): (param1: T1, param2: T2, param3: T3, param4: T4, param5: T5) => InferReturnSetup;
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../core/src/factory/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { defineInjectable } from "../stores/DefineInjectable";
2
+ import { onCleanup } from "../Component";
3
+ export class SubscriptionHandler {
4
+ constructor() {
5
+ this.unsubs = [];
6
+ }
7
+ add(unsub) {
8
+ this.unsubs.push(unsub);
9
+ }
10
+ unsubscribe() {
11
+ this.unsubs.forEach(u => u());
12
+ this.unsubs = [];
13
+ }
14
+ }
15
+ export function defineFactory(setup, lifetime, typeIdentifier) {
16
+ // The actual factory that creates the instance
17
+ const factoryCreator = (...args) => {
18
+ const subscriptions = new SubscriptionHandler();
19
+ const deactivations = new Set();
20
+ let customDispose = null;
21
+ const ctx = {
22
+ onDeactivated: (fn) => deactivations.add(fn),
23
+ subscriptions,
24
+ overrideDispose: (fn) => customDispose = fn
25
+ };
26
+ const result = setup(ctx, ...args);
27
+ const dispose = () => {
28
+ deactivations.forEach(d => d());
29
+ subscriptions.unsubscribe();
30
+ result.dispose?.();
31
+ };
32
+ if (customDispose) {
33
+ customDispose(dispose);
34
+ }
35
+ else {
36
+ // Auto-dispose if in component context
37
+ try {
38
+ onCleanup(() => dispose());
39
+ }
40
+ catch (e) { }
41
+ }
42
+ return { ...result, dispose };
43
+ };
44
+ // If it's a parameterless factory, we can make it injectable
45
+ if (setup.length <= 1) {
46
+ return defineInjectable(() => factoryCreator());
47
+ }
48
+ return factoryCreator;
49
+ }
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../core/src/factory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,OAAO,mBAAmB;IAAhC;QACY,WAAM,GAAmB,EAAE,CAAC;IAQxC,CAAC;IAPG,GAAG,CAAC,KAAiB;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,WAAW;QACP,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;CACJ;AAsCD,MAAM,UAAU,aAAa,CACzB,KAAmE,EACnE,QAA2B,EAC3B,cAAqB;IAErB,+CAA+C;IAC/C,MAAM,cAAc,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QACtC,MAAM,aAAa,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAc,CAAC;QAC5C,IAAI,aAAa,GAAsC,IAAI,CAAC;QAE5D,MAAM,GAAG,GAAwB;YAC7B,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,aAAa;YACb,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,GAAG,EAAE;SAC9C,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAEnC,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAChC,aAAa,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAc,CAAC,OAAO,EAAE,EAAE,CAAC;QAChC,CAAC,CAAC;QAEF,IAAI,aAAa,EAAE,CAAC;YACf,aAA0C,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACJ,uCAAuC;YACvC,IAAI,CAAC;gBACD,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC;QAED,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC;IAClC,CAAC,CAAC;IAEF,6DAA6D;IAC7D,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,gBAAgB,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,cAAc,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { defineComponent, registerComponentPlugin, adoptStyles, type ComponentPlugin, type ComponentSetupContext, type MountContext, type ViewFn, type Signal, type DefineProp, type DefineEvent, type EmitFn, onMount, onCleanup, getCurrentInstance } from './Component.js';
2
+ export { styled } from './styled.js';
3
+ export { defineStyles, defineVars, type CSSObject } from './sheet.js';
4
+ export { signal, reactive, effect, watch, effectScope, type EffectFn, type ReactiveEffect, type WatchSource, type WatchCallback, type WatchOptions, type WatchHandle, type EffectScope } from './Signals.js';
5
+ export { jsx, jsxs, jsxDEV, Fragment, render, registerComponentSchema, type JSXElement, type JSXChild, type JSXChildren } from './jsx-runtime.js';
6
+ export { defineInjectable, defineProvide, inject, provide } from './stores/DefineInjectable.js';
7
+ export { defineStore, type SetupStoreContext, type StoreEvents, type StoreReturnDefineAction } from './stores/Store.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../core/src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,eAAe,EACf,uBAAuB,EACvB,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,OAAO,EACP,SAAS,EACT,kBAAkB,EACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,EACH,MAAM,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,WAAW,EACX,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACH,GAAG,EACH,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,MAAM,EACN,uBAAuB,EACvB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,WAAW,EACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACH,gBAAgB,EAChB,aAAa,EACb,MAAM,EACN,OAAO,EACV,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACH,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC/B,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ // Main entry point for @sigx/core
2
+ export { defineComponent, registerComponentPlugin, adoptStyles, onMount, onCleanup, getCurrentInstance } from './Component.js';
3
+ export { styled } from './styled.js';
4
+ export { defineStyles, defineVars } from './sheet.js';
5
+ export { signal, reactive, effect, watch, effectScope } from './Signals.js';
6
+ export { jsx, jsxs, jsxDEV, Fragment, render, registerComponentSchema } from './jsx-runtime.js';
7
+ export { defineInjectable, defineProvide, inject, provide } from './stores/DefineInjectable.js';
8
+ export { defineStore } from './stores/Store.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../core/src/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAElC,OAAO,EACH,eAAe,EACf,uBAAuB,EACvB,WAAW,EASX,OAAO,EACP,SAAS,EACT,kBAAkB,EACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;AAEtE,OAAO,EACH,MAAM,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,WAAW,EAQd,MAAM,cAAc,CAAC;AAEtB,OAAO,EACH,GAAG,EACH,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,MAAM,EACN,uBAAuB,EAI1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACH,gBAAgB,EAChB,aAAa,EACb,MAAM,EACN,OAAO,EACV,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACH,WAAW,EAId,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,43 @@
1
+ export type VNode = {
2
+ type: string | typeof Fragment;
3
+ props: Record<string, any>;
4
+ key: string | number | null;
5
+ children: VNode[];
6
+ dom: Node | null;
7
+ text?: string | number | {
8
+ value: unknown;
9
+ };
10
+ parent?: VNode | null;
11
+ cleanup?: () => void;
12
+ };
13
+ export type JSXChild = VNode | string | number | boolean | null | undefined | JSXChild[] | {
14
+ value: unknown;
15
+ };
16
+ export type JSXChildren = JSXChild;
17
+ export type JSXElement = VNode | string | number | boolean | null | undefined | {
18
+ value: unknown;
19
+ };
20
+ interface JSXProps {
21
+ children?: JSXChildren;
22
+ [key: string]: any;
23
+ }
24
+ export declare const Fragment: unique symbol;
25
+ /**
26
+ * Register expected props for a component (used for dev-time warnings)
27
+ */
28
+ export declare function registerComponentSchema(tagName: string, propNames: string[]): void;
29
+ /**
30
+ * Create a JSX element - this is the core function called by TSX transpilation
31
+ */
32
+ export declare function jsx(type: string | Function | typeof Fragment, props: JSXProps | null, key?: string): JSXElement;
33
+ /**
34
+ * JSX Factory for fragments
35
+ */
36
+ export declare function jsxs(type: any, props: any, key?: any): JSXElement;
37
+ export declare const jsxDEV: typeof jsx;
38
+ /**
39
+ * Render JSX to a container with efficient updates
40
+ */
41
+ export declare function render(element: JSXElement, container: Element | ShadowRoot): void;
42
+ export {};
43
+ //# sourceMappingURL=jsx-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../../../../core/src/jsx-runtime.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,KAAK,GAAG;IAChB,IAAI,EAAE,MAAM,GAAG,OAAO,QAAQ,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5C,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAIF,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,EAAE,GAAG;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAC9G,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;AACnC,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnG,UAAU,QAAQ;IACd,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAQD,eAAO,MAAM,QAAQ,eAAqB,CAAC;AAE3C;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAElF;AAsDD;;GAEG;AACH,wBAAgB,GAAG,CACf,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,QAAQ,EACzC,KAAK,EAAE,QAAQ,GAAG,IAAI,EACtB,GAAG,CAAC,EAAE,MAAM,GACb,UAAU,CAeZ;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,cAEpD;AAED,eAAO,MAAM,MAAM,YAAM,CAAC;AAE1B;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAiCjF"}
@@ -0,0 +1,469 @@
1
+ // JSX runtime for @sigx/core
2
+ // This replaces the template literal system with proper JSX/TSX support
3
+ /// <reference path="./jsx-types.d.ts" />
4
+ import { effect } from './Signals.js';
5
+ // Dev mode - can be set to false in production builds
6
+ const DEV = true;
7
+ // Registry for component prop schemas (for runtime validation)
8
+ const componentSchemas = new Map();
9
+ export const Fragment = Symbol('Fragment');
10
+ /**
11
+ * Register expected props for a component (used for dev-time warnings)
12
+ */
13
+ export function registerComponentSchema(tagName, propNames) {
14
+ componentSchemas.set(tagName, new Set(propNames));
15
+ }
16
+ /**
17
+ * Check if a value is a signal (has value property)
18
+ */
19
+ function isSignal(v) {
20
+ return v !== null && typeof v === "object" && "value" in v;
21
+ }
22
+ /**
23
+ * Unwrap signals to their values
24
+ */
25
+ function unwrapValue(value) {
26
+ return isSignal(value) ? value.value : value;
27
+ }
28
+ function normalizeChildren(children) {
29
+ if (children == null || children === false || children === true) {
30
+ return [];
31
+ }
32
+ if (Array.isArray(children)) {
33
+ return children.flatMap(c => normalizeChildren(c));
34
+ }
35
+ if (typeof children === 'string' || typeof children === 'number') {
36
+ return [{
37
+ type: 'TEXT_ELEMENT',
38
+ props: {},
39
+ key: null,
40
+ children: [],
41
+ dom: null,
42
+ text: children
43
+ }];
44
+ }
45
+ if (isSignal(children)) {
46
+ return [{
47
+ type: 'TEXT_ELEMENT',
48
+ props: {},
49
+ key: null,
50
+ children: [],
51
+ dom: null,
52
+ text: children
53
+ }];
54
+ }
55
+ if (children.type) {
56
+ return [children];
57
+ }
58
+ return [];
59
+ }
60
+ /**
61
+ * Create a JSX element - this is the core function called by TSX transpilation
62
+ */
63
+ export function jsx(type, props, key) {
64
+ // Handle function components
65
+ if (typeof type === 'function' && type !== Fragment) {
66
+ return type(props || {});
67
+ }
68
+ const { children, ...rest } = props || {};
69
+ return {
70
+ type: type,
71
+ props: rest,
72
+ key: key || rest.key || null,
73
+ children: normalizeChildren(children),
74
+ dom: null
75
+ };
76
+ }
77
+ /**
78
+ * JSX Factory for fragments
79
+ */
80
+ export function jsxs(type, props, key) {
81
+ return jsx(type, props, key);
82
+ }
83
+ export const jsxDEV = jsx;
84
+ /**
85
+ * Render JSX to a container with efficient updates
86
+ */
87
+ export function render(element, container) {
88
+ const oldVNode = container._vnode;
89
+ // Normalize element to VNode if it's not
90
+ let vnode = null;
91
+ if (element != null && element !== false && element !== true) {
92
+ if (typeof element === 'string' || typeof element === 'number') {
93
+ vnode = {
94
+ type: 'TEXT_ELEMENT',
95
+ props: {},
96
+ key: null,
97
+ children: [],
98
+ dom: null,
99
+ text: element
100
+ };
101
+ }
102
+ else {
103
+ vnode = element;
104
+ }
105
+ }
106
+ if (vnode) {
107
+ if (oldVNode) {
108
+ patch(oldVNode, vnode, container);
109
+ }
110
+ else {
111
+ mount(vnode, container);
112
+ }
113
+ container._vnode = vnode;
114
+ }
115
+ else {
116
+ if (oldVNode) {
117
+ unmount(oldVNode, container);
118
+ container._vnode = null;
119
+ }
120
+ }
121
+ }
122
+ function mount(vnode, container, before = null) {
123
+ if (vnode.type === 'TEXT_ELEMENT') {
124
+ const node = document.createTextNode("");
125
+ vnode.dom = node;
126
+ node.__vnode = vnode;
127
+ if (isSignal(vnode.text)) {
128
+ const s = vnode.text;
129
+ const dispose = effect(() => {
130
+ node.nodeValue = String(s.value);
131
+ });
132
+ vnode.cleanup = dispose;
133
+ }
134
+ else {
135
+ node.nodeValue = String(vnode.text);
136
+ }
137
+ container.insertBefore(node, before);
138
+ return;
139
+ }
140
+ if (vnode.type === Fragment) {
141
+ vnode.children.forEach(child => mount(child, container, before));
142
+ // Fragment doesn't have a single DOM node, but we need to track it?
143
+ // For simplicity, we don't assign vnode.dom for Fragments or we assign the first child's dom?
144
+ // A better approach for Fragments in this simple VDOM is to treat them as arrays of children.
145
+ // But here we have a VNode for Fragment.
146
+ // We can use a placeholder comment or just track children.
147
+ // Let's use a placeholder for stable reference if needed, or just rely on children.
148
+ // For now, let's assume Fragment children are mounted directly.
149
+ return;
150
+ }
151
+ const element = document.createElement(vnode.type);
152
+ vnode.dom = element;
153
+ element.__vnode = vnode;
154
+ // Props
155
+ updateProps(element, {}, vnode.props, vnode.type);
156
+ // Handle ref
157
+ if (vnode.props.ref) {
158
+ if (typeof vnode.props.ref === 'function') {
159
+ vnode.props.ref(element);
160
+ }
161
+ else if (vnode.props.ref && typeof vnode.props.ref === 'object') {
162
+ vnode.props.ref.current = element;
163
+ }
164
+ }
165
+ // Children
166
+ vnode.children.forEach(child => {
167
+ child.parent = vnode;
168
+ mount(child, element);
169
+ });
170
+ container.insertBefore(element, before);
171
+ }
172
+ function unmount(vnode, container) {
173
+ if (vnode.cleanup) {
174
+ vnode.cleanup();
175
+ }
176
+ if (vnode.type === Fragment) {
177
+ vnode.children.forEach(child => unmount(child, container));
178
+ return;
179
+ }
180
+ // Handle ref cleanup
181
+ if (vnode.props.ref) {
182
+ if (typeof vnode.props.ref === 'function') {
183
+ vnode.props.ref(null);
184
+ }
185
+ else if (vnode.props.ref && typeof vnode.props.ref === 'object') {
186
+ vnode.props.ref.current = null;
187
+ }
188
+ }
189
+ if (vnode.dom) {
190
+ // If it's a child of the container, remove it.
191
+ // Note: vnode.dom.parentNode might be different if it was moved?
192
+ // But usually it should be correct.
193
+ if (vnode.dom.parentNode === container) {
194
+ container.removeChild(vnode.dom);
195
+ }
196
+ else if (vnode.dom.parentNode) {
197
+ vnode.dom.parentNode.removeChild(vnode.dom);
198
+ }
199
+ }
200
+ }
201
+ function patch(oldVNode, newVNode, container) {
202
+ if (oldVNode === newVNode)
203
+ return;
204
+ // If types are different, replace completely
205
+ if (!isSameVNode(oldVNode, newVNode)) {
206
+ const parent = oldVNode.dom?.parentNode || container;
207
+ const nextSibling = oldVNode.dom?.nextSibling || null;
208
+ // If old is Fragment, finding insertion point is harder.
209
+ // For simplicity, let's assume we can unmount old and mount new.
210
+ unmount(oldVNode, parent);
211
+ mount(newVNode, parent, nextSibling);
212
+ return;
213
+ }
214
+ // If text node
215
+ if (newVNode.type === 'TEXT_ELEMENT') {
216
+ newVNode.dom = oldVNode.dom;
217
+ if (oldVNode.text !== newVNode.text) {
218
+ if (oldVNode.cleanup)
219
+ oldVNode.cleanup();
220
+ if (isSignal(newVNode.text)) {
221
+ const s = newVNode.text;
222
+ const dispose = effect(() => {
223
+ newVNode.dom.nodeValue = String(s.value);
224
+ });
225
+ newVNode.cleanup = dispose;
226
+ }
227
+ else {
228
+ newVNode.dom.nodeValue = String(newVNode.text);
229
+ }
230
+ }
231
+ else {
232
+ // Transfer cleanup
233
+ newVNode.cleanup = oldVNode.cleanup;
234
+ oldVNode.cleanup = undefined;
235
+ }
236
+ return;
237
+ }
238
+ // If Fragment
239
+ if (newVNode.type === Fragment) {
240
+ // Patch children
241
+ patchChildren(oldVNode, newVNode, container);
242
+ return;
243
+ }
244
+ // Element
245
+ const element = (newVNode.dom = oldVNode.dom);
246
+ // Update props
247
+ updateProps(element, oldVNode.props, newVNode.props, newVNode.type);
248
+ // Update children
249
+ patchChildren(oldVNode, newVNode, element);
250
+ }
251
+ function patchChildren(oldVNode, newVNode, container) {
252
+ const oldChildren = oldVNode.children;
253
+ const newChildren = newVNode.children;
254
+ newChildren.forEach(c => c.parent = newVNode);
255
+ reconcileChildrenArray(container, oldChildren, newChildren);
256
+ }
257
+ function reconcileChildrenArray(parent, oldChildren, newChildren) {
258
+ let oldStartIdx = 0;
259
+ let oldEndIdx = oldChildren.length - 1;
260
+ let oldStartVNode = oldChildren[0];
261
+ let oldEndVNode = oldChildren[oldEndIdx];
262
+ let newStartIdx = 0;
263
+ let newEndIdx = newChildren.length - 1;
264
+ let newStartVNode = newChildren[0];
265
+ let newEndVNode = newChildren[newEndIdx];
266
+ let oldKeyToIdx;
267
+ while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
268
+ if (oldStartVNode == null) {
269
+ oldStartVNode = oldChildren[++oldStartIdx];
270
+ }
271
+ else if (oldEndVNode == null) {
272
+ oldEndVNode = oldChildren[--oldEndIdx];
273
+ }
274
+ else if (isSameVNode(oldStartVNode, newStartVNode)) {
275
+ patch(oldStartVNode, newStartVNode, parent);
276
+ oldStartVNode = oldChildren[++oldStartIdx];
277
+ newStartVNode = newChildren[++newStartIdx];
278
+ }
279
+ else if (isSameVNode(oldEndVNode, newEndVNode)) {
280
+ patch(oldEndVNode, newEndVNode, parent);
281
+ oldEndVNode = oldChildren[--oldEndIdx];
282
+ newEndVNode = newChildren[--newEndIdx];
283
+ }
284
+ else if (isSameVNode(oldStartVNode, newEndVNode)) {
285
+ patch(oldStartVNode, newEndVNode, parent);
286
+ // Move old start to end
287
+ const nodeToMove = oldStartVNode.dom;
288
+ const anchor = oldEndVNode.dom?.nextSibling;
289
+ if (nodeToMove && anchor !== undefined) {
290
+ nodeToMove.__isMoving = true;
291
+ parent.insertBefore(nodeToMove, anchor);
292
+ nodeToMove.__isMoving = false;
293
+ }
294
+ oldStartVNode = oldChildren[++oldStartIdx];
295
+ newEndVNode = newChildren[--newEndIdx];
296
+ }
297
+ else if (isSameVNode(oldEndVNode, newStartVNode)) {
298
+ patch(oldEndVNode, newStartVNode, parent);
299
+ // Move old end to start
300
+ const nodeToMove = oldEndVNode.dom;
301
+ const anchor = oldStartVNode.dom;
302
+ if (nodeToMove && anchor) {
303
+ nodeToMove.__isMoving = true;
304
+ parent.insertBefore(nodeToMove, anchor);
305
+ nodeToMove.__isMoving = false;
306
+ }
307
+ oldEndVNode = oldChildren[--oldEndIdx];
308
+ newStartVNode = newChildren[++newStartIdx];
309
+ }
310
+ else {
311
+ if (!oldKeyToIdx) {
312
+ oldKeyToIdx = createKeyToKeyIndexMap(oldChildren, oldStartIdx, oldEndIdx);
313
+ }
314
+ const idxInOld = newStartVNode.key != null
315
+ ? oldKeyToIdx.get(String(newStartVNode.key))
316
+ : findIndexInOld(oldChildren, newStartVNode, oldStartIdx, oldEndIdx);
317
+ if (idxInOld != null) {
318
+ const vnodeToMove = oldChildren[idxInOld];
319
+ patch(vnodeToMove, newStartVNode, parent);
320
+ oldChildren[idxInOld] = undefined; // Mark as moved
321
+ if (vnodeToMove.dom && oldStartVNode.dom) {
322
+ vnodeToMove.dom.__isMoving = true;
323
+ parent.insertBefore(vnodeToMove.dom, oldStartVNode.dom);
324
+ vnodeToMove.dom.__isMoving = false;
325
+ }
326
+ }
327
+ else {
328
+ // New element
329
+ mount(newStartVNode, parent, oldStartVNode.dom);
330
+ }
331
+ newStartVNode = newChildren[++newStartIdx];
332
+ }
333
+ }
334
+ if (oldStartIdx > oldEndIdx) {
335
+ if (newStartIdx <= newEndIdx) {
336
+ const anchor = newChildren[newEndIdx + 1] == null ? null : newChildren[newEndIdx + 1].dom;
337
+ for (let i = newStartIdx; i <= newEndIdx; i++) {
338
+ mount(newChildren[i], parent, anchor);
339
+ }
340
+ }
341
+ }
342
+ else if (newStartIdx > newEndIdx) {
343
+ for (let i = oldStartIdx; i <= oldEndIdx; i++) {
344
+ if (oldChildren[i]) {
345
+ unmount(oldChildren[i], parent);
346
+ }
347
+ }
348
+ }
349
+ }
350
+ function isSameVNode(n1, n2) {
351
+ const k1 = n1.key == null ? null : n1.key;
352
+ const k2 = n2.key == null ? null : n2.key;
353
+ if (n1.type !== n2.type)
354
+ return false;
355
+ if (k1 === k2)
356
+ return true;
357
+ return String(k1) === String(k2);
358
+ }
359
+ function createKeyToKeyIndexMap(children, beginIdx, endIdx) {
360
+ const map = new Map();
361
+ for (let i = beginIdx; i <= endIdx; i++) {
362
+ const key = children[i]?.key;
363
+ if (key != null)
364
+ map.set(String(key), i);
365
+ }
366
+ return map;
367
+ }
368
+ function findIndexInOld(children, newChild, beginIdx, endIdx) {
369
+ for (let i = beginIdx; i <= endIdx; i++) {
370
+ if (children[i] && isSameVNode(children[i], newChild))
371
+ return i;
372
+ }
373
+ return null;
374
+ }
375
+ function updateProps(dom, oldProps, newProps, tagName) {
376
+ // Remove old props
377
+ for (const key in oldProps) {
378
+ if (!(key in newProps)) {
379
+ if (key.startsWith('on')) {
380
+ const eventName = key.slice(2).toLowerCase();
381
+ dom.removeEventListener(eventName, oldProps[key]);
382
+ }
383
+ else if (key !== 'children' && key !== 'key' && key !== 'ref') {
384
+ if (key in dom) {
385
+ dom[key] = '';
386
+ }
387
+ else {
388
+ dom.removeAttribute(key);
389
+ }
390
+ }
391
+ }
392
+ }
393
+ // Set new props
394
+ for (const key in newProps) {
395
+ const oldValue = oldProps[key];
396
+ const newValue = unwrapValue(newProps[key]);
397
+ if (key === 'children' || key === 'key' || key === 'ref' || oldValue === newValue)
398
+ continue;
399
+ if (key === 'style') {
400
+ if (typeof newValue === 'object' && newValue !== null) {
401
+ const styleObj = newValue;
402
+ // Handle CSS variables and normal properties
403
+ for (const styleKey in styleObj) {
404
+ if (styleKey.startsWith('--')) {
405
+ dom.style.setProperty(styleKey, String(styleObj[styleKey]));
406
+ }
407
+ else {
408
+ dom.style[styleKey] = styleObj[styleKey];
409
+ }
410
+ }
411
+ }
412
+ else {
413
+ dom.style.cssText = String(newValue);
414
+ }
415
+ }
416
+ else if (key.startsWith('on')) {
417
+ const eventName = key.slice(2).toLowerCase();
418
+ if (oldValue) {
419
+ const wrapper = oldValue.__sigx_handler || oldValue;
420
+ dom.removeEventListener(eventName, wrapper);
421
+ }
422
+ if (newValue) {
423
+ const handler = (e) => {
424
+ if (e instanceof CustomEvent) {
425
+ newValue(e.detail);
426
+ }
427
+ else {
428
+ newValue(e);
429
+ }
430
+ };
431
+ newValue.__sigx_handler = handler;
432
+ dom.addEventListener(eventName, handler);
433
+ }
434
+ }
435
+ else if (key === 'className') {
436
+ dom.setAttribute('class', String(newValue));
437
+ }
438
+ else if (key.startsWith('.')) {
439
+ // Property binding
440
+ const propName = key.slice(1);
441
+ dom[propName] = newValue;
442
+ }
443
+ else {
444
+ // Attribute or Property?
445
+ // Heuristic: if it's in DOM prototype, set as property, else attribute
446
+ // But for custom elements, we might want properties.
447
+ // The original code had specific logic for inputs.
448
+ if ((tagName === 'input' || tagName === 'textarea' || tagName === 'select') &&
449
+ (key === 'value' || key === 'checked')) {
450
+ dom[key] = newValue;
451
+ }
452
+ else if (key in dom) {
453
+ dom[key] = newValue;
454
+ }
455
+ else if (tagName.includes('-') && !key.includes('-')) {
456
+ dom[key] = newValue;
457
+ }
458
+ else {
459
+ if (newValue === true)
460
+ dom.setAttribute(key, '');
461
+ else if (newValue === false || newValue == null)
462
+ dom.removeAttribute(key);
463
+ else
464
+ dom.setAttribute(key, String(newValue));
465
+ }
466
+ }
467
+ }
468
+ }
469
+ //# sourceMappingURL=jsx-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../../../../core/src/jsx-runtime.ts"],"names":[],"mappings":"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"}