@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.
- package/README.md +40 -0
- package/dist/cli.d.ts +12 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +372 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/src/Component.d.ts +131 -0
- package/dist/core/src/Component.d.ts.map +1 -0
- package/dist/core/src/Component.js +272 -0
- package/dist/core/src/Component.js.map +1 -0
- package/dist/core/src/Signals.d.ts +34 -0
- package/dist/core/src/Signals.d.ts.map +1 -0
- package/dist/core/src/Signals.js +222 -0
- package/dist/core/src/Signals.js.map +1 -0
- package/dist/core/src/Templating.d.ts +11 -0
- package/dist/core/src/Templating.d.ts.map +1 -0
- package/dist/core/src/Templating.js +81 -0
- package/dist/core/src/Templating.js.map +1 -0
- package/dist/core/src/factory/index.d.ts +20 -0
- package/dist/core/src/factory/index.d.ts.map +1 -0
- package/dist/core/src/factory/index.js +50 -0
- package/dist/core/src/factory/index.js.map +1 -0
- package/dist/core/src/index.d.ts +8 -0
- package/dist/core/src/index.d.ts.map +1 -0
- package/dist/core/src/index.js +9 -0
- package/dist/core/src/index.js.map +1 -0
- package/dist/core/src/jsx-runtime.d.ts +43 -0
- package/dist/core/src/jsx-runtime.d.ts.map +1 -0
- package/dist/core/src/jsx-runtime.js +469 -0
- package/dist/core/src/jsx-runtime.js.map +1 -0
- package/dist/core/src/messaging/index.d.ts +9 -0
- package/dist/core/src/messaging/index.d.ts.map +1 -0
- package/dist/core/src/messaging/index.js +37 -0
- package/dist/core/src/messaging/index.js.map +1 -0
- package/dist/core/src/models/index.d.ts +18 -0
- package/dist/core/src/models/index.d.ts.map +1 -0
- package/dist/core/src/models/index.js +12 -0
- package/dist/core/src/models/index.js.map +1 -0
- package/dist/core/src/sheet.d.ts +51 -0
- package/dist/core/src/sheet.d.ts.map +1 -0
- package/dist/core/src/sheet.js +151 -0
- package/dist/core/src/sheet.js.map +1 -0
- package/dist/core/src/stores/DefineInjectable.d.ts +5 -0
- package/dist/core/src/stores/DefineInjectable.d.ts.map +1 -0
- package/dist/core/src/stores/DefineInjectable.js +56 -0
- package/dist/core/src/stores/DefineInjectable.js.map +1 -0
- package/dist/core/src/stores/Store.d.ts +70 -0
- package/dist/core/src/stores/Store.d.ts.map +1 -0
- package/dist/core/src/stores/Store.js +180 -0
- package/dist/core/src/stores/Store.js.map +1 -0
- package/dist/core/src/styled.d.ts +15 -0
- package/dist/core/src/styled.d.ts.map +1 -0
- package/dist/core/src/styled.js +62 -0
- package/dist/core/src/styled.js.map +1 -0
- package/dist/core/src/utils/index.d.ts +5 -0
- package/dist/core/src/utils/index.d.ts.map +1 -0
- package/dist/core/src/utils/index.js +12 -0
- package/dist/core/src/utils/index.js.map +1 -0
- package/dist/hmr-plugin/src/index.d.ts +2 -0
- package/dist/hmr-plugin/src/index.d.ts.map +1 -0
- package/dist/hmr-plugin/src/index.js +59 -0
- package/dist/hmr-plugin/src/index.js.map +1 -0
- package/dist/hmr.d.ts +10 -0
- package/dist/hmr.d.ts.map +1 -0
- package/dist/hmr.js +99 -0
- package/dist/hmr.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/vite/src/index.d.ts +2 -0
- package/dist/vite/src/index.d.ts.map +1 -0
- package/dist/vite/src/index.js +59 -0
- package/dist/vite/src/index.js.map +1 -0
- 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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"}
|