sinwan 0.0.0 → 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/LICENSE +21 -0
- package/README.md +67 -1
- package/dist/cjs/index.development.js +1625 -0
- package/dist/cjs/index.development.js.map +32 -0
- package/dist/cjs/index.production.min.js +3 -0
- package/dist/cjs/index.production.min.js.map +32 -0
- package/dist/cjs/jsx/jsx-dev-runtime.development.js +134 -0
- package/dist/cjs/jsx/jsx-dev-runtime.development.js.map +10 -0
- package/dist/cjs/jsx/jsx-dev-runtime.production.min.js +3 -0
- package/dist/cjs/jsx/jsx-dev-runtime.production.min.js.map +10 -0
- package/dist/cjs/jsx/jsx-runtime.development.js +126 -0
- package/dist/cjs/jsx/jsx-runtime.development.js.map +10 -0
- package/dist/cjs/jsx/jsx-runtime.production.min.js +3 -0
- package/dist/cjs/jsx/jsx-runtime.production.min.js.map +10 -0
- package/dist/cjs/package.json +4 -0
- package/dist/cjs/server/index.development.js +929 -0
- package/dist/cjs/server/index.development.js.map +22 -0
- package/dist/cjs/server/index.production.min.js +3 -0
- package/dist/cjs/server/index.production.min.js.map +22 -0
- package/dist/component/create.d.ts +75 -0
- package/dist/component/create.d.ts.map +1 -0
- package/dist/component/index.d.ts +10 -0
- package/dist/component/index.d.ts.map +1 -0
- package/dist/component/instance.d.ts +78 -0
- package/dist/component/instance.d.ts.map +1 -0
- package/dist/component/lifecycle.d.ts +40 -0
- package/dist/component/lifecycle.d.ts.map +1 -0
- package/dist/component/provide-inject.d.ts +39 -0
- package/dist/component/provide-inject.d.ts.map +1 -0
- package/dist/escaper.d.ts +26 -0
- package/dist/escaper.d.ts.map +1 -0
- package/dist/esm/index.development.js +1560 -0
- package/dist/esm/index.development.js.map +32 -0
- package/dist/esm/index.production.min.js +4 -0
- package/dist/esm/index.production.min.js.map +32 -0
- package/dist/esm/jsx/jsx-dev-runtime.development.js +83 -0
- package/dist/esm/jsx/jsx-dev-runtime.development.js.map +10 -0
- package/dist/esm/jsx/jsx-dev-runtime.production.min.js +4 -0
- package/dist/esm/jsx/jsx-dev-runtime.production.min.js.map +10 -0
- package/dist/esm/jsx/jsx-runtime.development.js +87 -0
- package/dist/esm/jsx/jsx-runtime.development.js.map +10 -0
- package/dist/esm/jsx/jsx-runtime.production.min.js +4 -0
- package/dist/esm/jsx/jsx-runtime.production.min.js.map +10 -0
- package/dist/esm/package.json +4 -0
- package/dist/esm/server/index.development.js +878 -0
- package/dist/esm/server/index.development.js.map +22 -0
- package/dist/esm/server/index.production.min.js +4 -0
- package/dist/esm/server/index.production.min.js.map +22 -0
- package/dist/hydration/hydrate.d.ts +29 -0
- package/dist/hydration/hydrate.d.ts.map +1 -0
- package/dist/hydration/index.d.ts +7 -0
- package/dist/hydration/index.d.ts.map +1 -0
- package/dist/hydration/markers.d.ts +48 -0
- package/dist/hydration/markers.d.ts.map +1 -0
- package/dist/hydration/walk.d.ts +32 -0
- package/dist/hydration/walk.d.ts.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.mjs +4 -0
- package/dist/jsx/jsx-dev-runtime.d.ts +10 -0
- package/dist/jsx/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/jsx/jsx-runtime.d.ts +54 -0
- package/dist/jsx/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx/jsx-types.d.ts +637 -0
- package/dist/jsx/jsx-types.d.ts.map +1 -0
- package/dist/jsx-dev-runtime.d.ts +1 -0
- package/dist/jsx-dev-runtime.js +7 -0
- package/dist/jsx-dev-runtime.mjs +4 -0
- package/dist/jsx-runtime.d.ts +1 -0
- package/dist/jsx-runtime.js +7 -0
- package/dist/jsx-runtime.mjs +4 -0
- package/dist/reactivity/batch.d.ts +27 -0
- package/dist/reactivity/batch.d.ts.map +1 -0
- package/dist/reactivity/computed.d.ts +41 -0
- package/dist/reactivity/computed.d.ts.map +1 -0
- package/dist/reactivity/effect.d.ts +79 -0
- package/dist/reactivity/effect.d.ts.map +1 -0
- package/dist/reactivity/index.d.ts +15 -0
- package/dist/reactivity/index.d.ts.map +1 -0
- package/dist/reactivity/scheduler.d.ts +35 -0
- package/dist/reactivity/scheduler.d.ts.map +1 -0
- package/dist/reactivity/signal.d.ts +36 -0
- package/dist/reactivity/signal.d.ts.map +1 -0
- package/dist/renderer/attributes.d.ts +8 -0
- package/dist/renderer/attributes.d.ts.map +1 -0
- package/dist/renderer/dom-ops.d.ts +27 -0
- package/dist/renderer/dom-ops.d.ts.map +1 -0
- package/dist/renderer/events.d.ts +21 -0
- package/dist/renderer/events.d.ts.map +1 -0
- package/dist/renderer/index.d.ts +12 -0
- package/dist/renderer/index.d.ts.map +1 -0
- package/dist/renderer/mount.d.ts +30 -0
- package/dist/renderer/mount.d.ts.map +1 -0
- package/dist/renderer/render-children.d.ts +19 -0
- package/dist/renderer/render-children.d.ts.map +1 -0
- package/dist/renderer/render-element.d.ts +13 -0
- package/dist/renderer/render-element.d.ts.map +1 -0
- package/dist/renderer/types.d.ts +63 -0
- package/dist/renderer/types.d.ts.map +1 -0
- package/dist/server/hydration-markers.d.ts +23 -0
- package/dist/server/hydration-markers.d.ts.map +1 -0
- package/dist/server/index.d.ts +9 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/renderer.d.ts +33 -0
- package/dist/server/renderer.d.ts.map +1 -0
- package/dist/server/stream.d.ts +12 -0
- package/dist/server/stream.d.ts.map +1 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.js +7 -0
- package/dist/server.mjs +4 -0
- package/dist/types.d.ts +42 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +102 -4
- package/bun.lock +0 -26
- package/src/index.ts +0 -1
- package/tsconfig.json +0 -29
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
function __accessProp(key) {
|
|
6
|
+
return this[key];
|
|
7
|
+
}
|
|
8
|
+
var __toCommonJS = (from) => {
|
|
9
|
+
var entry = (__moduleCache ??= new WeakMap).get(from), desc;
|
|
10
|
+
if (entry)
|
|
11
|
+
return entry;
|
|
12
|
+
entry = __defProp({}, "__esModule", { value: true });
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (var key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(entry, key))
|
|
16
|
+
__defProp(entry, key, {
|
|
17
|
+
get: __accessProp.bind(from, key),
|
|
18
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
__moduleCache.set(from, entry);
|
|
22
|
+
return entry;
|
|
23
|
+
};
|
|
24
|
+
var __moduleCache;
|
|
25
|
+
var __returnValue = (v) => v;
|
|
26
|
+
function __exportSetter(name, newValue) {
|
|
27
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
28
|
+
}
|
|
29
|
+
var __export = (target, all) => {
|
|
30
|
+
for (var name in all)
|
|
31
|
+
__defProp(target, name, {
|
|
32
|
+
get: all[name],
|
|
33
|
+
enumerable: true,
|
|
34
|
+
configurable: true,
|
|
35
|
+
set: __exportSetter.bind(all, name)
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// src/jsx/jsx-runtime.ts
|
|
40
|
+
var exports_jsx_runtime = {};
|
|
41
|
+
__export(exports_jsx_runtime, {
|
|
42
|
+
raw: () => raw,
|
|
43
|
+
jsxs: () => jsxs,
|
|
44
|
+
jsxDEV: () => jsxDEV,
|
|
45
|
+
jsx: () => jsx,
|
|
46
|
+
HtmlEscapedString: () => HtmlEscapedString,
|
|
47
|
+
Fragment: () => Fragment
|
|
48
|
+
});
|
|
49
|
+
module.exports = __toCommonJS(exports_jsx_runtime);
|
|
50
|
+
var Fragment = Symbol("Fragment");
|
|
51
|
+
|
|
52
|
+
class HtmlEscapedString extends String {
|
|
53
|
+
value;
|
|
54
|
+
constructor(value) {
|
|
55
|
+
super(value);
|
|
56
|
+
this.value = value;
|
|
57
|
+
}
|
|
58
|
+
toString() {
|
|
59
|
+
return this.value;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
var raw = (str) => new HtmlEscapedString(str);
|
|
63
|
+
var VOID_ELEMENTS = new Set([
|
|
64
|
+
"area",
|
|
65
|
+
"base",
|
|
66
|
+
"br",
|
|
67
|
+
"col",
|
|
68
|
+
"embed",
|
|
69
|
+
"hr",
|
|
70
|
+
"img",
|
|
71
|
+
"input",
|
|
72
|
+
"link",
|
|
73
|
+
"meta",
|
|
74
|
+
"param",
|
|
75
|
+
"source",
|
|
76
|
+
"track",
|
|
77
|
+
"wbr"
|
|
78
|
+
]);
|
|
79
|
+
function normalizeChildren(children) {
|
|
80
|
+
if (children == null || typeof children === "boolean")
|
|
81
|
+
return [];
|
|
82
|
+
if (Array.isArray(children))
|
|
83
|
+
return children.flat(Infinity);
|
|
84
|
+
return [children];
|
|
85
|
+
}
|
|
86
|
+
function buildElement(type, props, children) {
|
|
87
|
+
if (type === Fragment) {
|
|
88
|
+
return { tag: "", props: {}, children };
|
|
89
|
+
}
|
|
90
|
+
if (typeof type === "function") {
|
|
91
|
+
if (type._SinwanComponent || type._SinwanPage) {
|
|
92
|
+
const result2 = type(props);
|
|
93
|
+
if (result2 && typeof result2 === "object" && "tag" in result2) {
|
|
94
|
+
return result2;
|
|
95
|
+
}
|
|
96
|
+
return { tag: "", props: {}, children: normalizeChildren(result2) };
|
|
97
|
+
}
|
|
98
|
+
const result = type(props);
|
|
99
|
+
if (result && typeof result === "object" && "tag" in result) {
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
return { tag: "", props: {}, children: normalizeChildren(result) };
|
|
103
|
+
}
|
|
104
|
+
if (typeof type === "string") {
|
|
105
|
+
return { tag: type, props: props || {}, children };
|
|
106
|
+
}
|
|
107
|
+
return { tag: "", props: {}, children };
|
|
108
|
+
}
|
|
109
|
+
function jsx(type, props, key) {
|
|
110
|
+
return buildElement(type, props, normalizeChildren(props?.children));
|
|
111
|
+
}
|
|
112
|
+
function jsxs(type, props, key) {
|
|
113
|
+
const children = props?.children;
|
|
114
|
+
return buildElement(type, props, Array.isArray(children) ? children.flat(Infinity) : normalizeChildren(children));
|
|
115
|
+
}
|
|
116
|
+
function jsxDEV(type, props, key, isStaticChildren, source, self) {
|
|
117
|
+
const children = isStaticChildren ? Array.isArray(props?.children) ? props.children.flat(Infinity) : normalizeChildren(props?.children) : normalizeChildren(props?.children);
|
|
118
|
+
const element = buildElement(type, props, children);
|
|
119
|
+
if (source) {
|
|
120
|
+
element.__source = source;
|
|
121
|
+
}
|
|
122
|
+
return element;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
//# debugId=5F73220643E18EA564756E2164756E21
|
|
126
|
+
//# sourceMappingURL=jsx-runtime.development.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsx/jsx-runtime.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * SinwanJS View Module — JSX Runtime\n *\n * JSX factory that returns SinwanElement structures for the view renderer.\n * Imported automatically when using JSX syntax.\n */\n\nimport type { SinwanElement, SinwanNode } from \"../types.ts\";\nimport type { SinwanIntrinsicElements } from \"./jsx-types\";\n\nexport const Fragment = Symbol(\"Fragment\");\n\n/**\n * A string that has been marked as safe HTML (already escaped).\n * Used for raw HTML injection with explicit trust marking.\n */\nexport class HtmlEscapedString extends String {\n constructor(public readonly value: string) {\n super(value);\n }\n override toString() {\n return this.value;\n }\n}\n\nexport const raw = (str: string) => new HtmlEscapedString(str);\n\n// Fast path for intrinsic elements\nconst VOID_ELEMENTS = new Set([\n \"area\",\n \"base\",\n \"br\",\n \"col\",\n \"embed\",\n \"hr\",\n \"img\",\n \"input\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n\n/**\n * Normalize children into an array of SinwanNode.\n */\nfunction normalizeChildren(children: any): SinwanNode[] {\n if (children == null || typeof children === \"boolean\") return [];\n if (Array.isArray(children)) return children.flat(Infinity);\n return [children];\n}\n\n/**\n * Build an SinwanElement from a component/tag invocation.\n * Shared logic for jsx, jsxs, and jsxDEV.\n */\nfunction buildElement(\n type: any,\n props: any,\n children: SinwanNode[],\n): SinwanElement {\n // Handle Fragment\n if (type === Fragment) {\n return { tag: \"\", props: {}, children };\n }\n\n // Handle functional components\n if (typeof type === \"function\") {\n // Sinwan-tagged component — call it directly\n if (type._SinwanComponent || type._SinwanPage) {\n const result = type(props);\n if (result && typeof result === \"object\" && \"tag\" in result) {\n return result as SinwanElement;\n }\n return { tag: \"\", props: {}, children: normalizeChildren(result) };\n }\n\n // Regular function component\n const result = type(props);\n if (result && typeof result === \"object\" && \"tag\" in result) {\n return result as SinwanElement;\n }\n return { tag: \"\", props: {}, children: normalizeChildren(result) };\n }\n\n // Handle intrinsic HTML elements\n if (typeof type === \"string\") {\n return { tag: type, props: props || {}, children };\n }\n\n // Fallback\n return { tag: \"\", props: {}, children };\n}\n\n/**\n * JSX factory — called for elements with 0 or 1 child.\n * TypeScript auto-imports this in production mode (`react-jsx`).\n */\nexport function jsx(type: any, props: any, key?: any): SinwanElement {\n return buildElement(type, props, normalizeChildren(props?.children));\n}\n\n/**\n * JSX static factory — called for elements with 2+ children.\n * `props.children` is **already an array**, so we skip normalizeChildren.\n */\nexport function jsxs(type: any, props: any, key?: any): SinwanElement {\n const children = props?.children;\n // Children is guaranteed to be an array by the compiler\n return buildElement(\n type,\n props,\n Array.isArray(children)\n ? children.flat(Infinity)\n : normalizeChildren(children),\n );\n}\n\n/**\n * Source location metadata attached by the compiler in dev mode.\n */\nexport interface JSXSource {\n fileName: string;\n lineNumber: number;\n columnNumber: number;\n}\n\n/**\n * JSX dev factory — called in dev mode (`react-jsxdev`).\n * Receives extra source/debug info for better error messages.\n */\nexport function jsxDEV(\n type: any,\n props: any,\n key: any,\n isStaticChildren: boolean,\n source?: JSXSource,\n self?: unknown,\n): SinwanElement {\n const children = isStaticChildren\n ? Array.isArray(props?.children)\n ? props.children.flat(Infinity)\n : normalizeChildren(props?.children)\n : normalizeChildren(props?.children);\n\n const element = buildElement(type, props, children);\n\n // Attach debug metadata (useful for dev-tools / error traces)\n if (source) {\n (element as any).__source = source;\n }\n\n return element;\n}\n\nexport namespace JSX {\n export type Element = SinwanElement | Promise<SinwanElement>;\n export interface IntrinsicAttributes {\n key?: string | number;\n }\n export interface ElementChildrenAttribute {\n children: {};\n }\n export interface IntrinsicElements extends SinwanIntrinsicElements {}\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUO,IAAM,WAAW,OAAO,UAAU;AAAA;AAMlC,MAAM,0BAA0B,OAAO;AAAA,EAChB;AAAA,EAA5B,WAAW,CAAiB,OAAe;AAAA,IACzC,MAAM,KAAK;AAAA,IADe;AAAA;AAAA,EAGnB,QAAQ,GAAG;AAAA,IAClB,OAAO,KAAK;AAAA;AAEhB;AAEO,IAAM,MAAM,CAAC,QAAgB,IAAI,kBAAkB,GAAG;AAG7D,IAAM,gBAAgB,IAAI,IAAI;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAKD,SAAS,iBAAiB,CAAC,UAA6B;AAAA,EACtD,IAAI,YAAY,QAAQ,OAAO,aAAa;AAAA,IAAW,OAAO,CAAC;AAAA,EAC/D,IAAI,MAAM,QAAQ,QAAQ;AAAA,IAAG,OAAO,SAAS,KAAK,QAAQ;AAAA,EAC1D,OAAO,CAAC,QAAQ;AAAA;AAOlB,SAAS,YAAY,CACnB,MACA,OACA,UACe;AAAA,EAEf,IAAI,SAAS,UAAU;AAAA,IACrB,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,SAAS;AAAA,EACxC;AAAA,EAGA,IAAI,OAAO,SAAS,YAAY;AAAA,IAE9B,IAAI,KAAK,oBAAoB,KAAK,aAAa;AAAA,MAC7C,MAAM,UAAS,KAAK,KAAK;AAAA,MACzB,IAAI,WAAU,OAAO,YAAW,YAAY,SAAS,SAAQ;AAAA,QAC3D,OAAO;AAAA,MACT;AAAA,MACA,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,UAAU,kBAAkB,OAAM,EAAE;AAAA,IACnE;AAAA,IAGA,MAAM,SAAS,KAAK,KAAK;AAAA,IACzB,IAAI,UAAU,OAAO,WAAW,YAAY,SAAS,QAAQ;AAAA,MAC3D,OAAO;AAAA,IACT;AAAA,IACA,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,UAAU,kBAAkB,MAAM,EAAE;AAAA,EACnE;AAAA,EAGA,IAAI,OAAO,SAAS,UAAU;AAAA,IAC5B,OAAO,EAAE,KAAK,MAAM,OAAO,SAAS,CAAC,GAAG,SAAS;AAAA,EACnD;AAAA,EAGA,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,SAAS;AAAA;AAOjC,SAAS,GAAG,CAAC,MAAW,OAAY,KAA0B;AAAA,EACnE,OAAO,aAAa,MAAM,OAAO,kBAAkB,OAAO,QAAQ,CAAC;AAAA;AAO9D,SAAS,IAAI,CAAC,MAAW,OAAY,KAA0B;AAAA,EACpE,MAAM,WAAW,OAAO;AAAA,EAExB,OAAO,aACL,MACA,OACA,MAAM,QAAQ,QAAQ,IAClB,SAAS,KAAK,QAAQ,IACtB,kBAAkB,QAAQ,CAChC;AAAA;AAgBK,SAAS,MAAM,CACpB,MACA,OACA,KACA,kBACA,QACA,MACe;AAAA,EACf,MAAM,WAAW,mBACb,MAAM,QAAQ,OAAO,QAAQ,IAC3B,MAAM,SAAS,KAAK,QAAQ,IAC5B,kBAAkB,OAAO,QAAQ,IACnC,kBAAkB,OAAO,QAAQ;AAAA,EAErC,MAAM,UAAU,aAAa,MAAM,OAAO,QAAQ;AAAA,EAGlD,IAAI,QAAQ;AAAA,IACT,QAAgB,WAAW;AAAA,EAC9B;AAAA,EAEA,OAAO;AAAA;",
|
|
8
|
+
"debugId": "5F73220643E18EA564756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var{defineProperty:D,getOwnPropertyNames:N,getOwnPropertyDescriptor:O}=Object,P=Object.prototype.hasOwnProperty;function Q(j){return this[j]}var R=(j)=>{var k=(K??=new WeakMap).get(j),w;if(k)return k;if(k=D({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function"){for(var q of N(j))if(!P.call(k,q))D(k,q,{get:Q.bind(j,q),enumerable:!(w=O(j,q))||w.enumerable})}return K.set(j,k),k},K;var T=(j)=>j;function U(j,k){this[j]=T.bind(null,k)}var V=(j,k)=>{for(var w in k)D(j,w,{get:k[w],enumerable:!0,configurable:!0,set:U.bind(k,w)})};var _={};V(_,{raw:()=>W,jsxs:()=>Y,jsxDEV:()=>Z,jsx:()=>X,HtmlEscapedString:()=>G,Fragment:()=>L});module.exports=R(_);var L=Symbol("Fragment");class G extends String{value;constructor(j){super(j);this.value=j}toString(){return this.value}}var W=(j)=>new G(j);function B(j){if(j==null||typeof j==="boolean")return[];if(Array.isArray(j))return j.flat(1/0);return[j]}function I(j,k,w){if(j===L)return{tag:"",props:{},children:w};if(typeof j==="function"){if(j._SinwanComponent||j._SinwanPage){let x=j(k);if(x&&typeof x==="object"&&"tag"in x)return x;return{tag:"",props:{},children:B(x)}}let q=j(k);if(q&&typeof q==="object"&&"tag"in q)return q;return{tag:"",props:{},children:B(q)}}if(typeof j==="string")return{tag:j,props:k||{},children:w};return{tag:"",props:{},children:w}}function X(j,k,w){return I(j,k,B(k?.children))}function Y(j,k,w){let q=k?.children;return I(j,k,Array.isArray(q)?q.flat(1/0):B(q))}function Z(j,k,w,q,x,$){let M=q?Array.isArray(k?.children)?k.children.flat(1/0):B(k?.children):B(k?.children),J=I(j,k,M);if(x)J.__source=x;return J}
|
|
2
|
+
|
|
3
|
+
//# debugId=B92D8764C731DA5E64756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsx/jsx-runtime.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * SinwanJS View Module — JSX Runtime\n *\n * JSX factory that returns SinwanElement structures for the view renderer.\n * Imported automatically when using JSX syntax.\n */\n\nimport type { SinwanElement, SinwanNode } from \"../types.ts\";\nimport type { SinwanIntrinsicElements } from \"./jsx-types\";\n\nexport const Fragment = Symbol(\"Fragment\");\n\n/**\n * A string that has been marked as safe HTML (already escaped).\n * Used for raw HTML injection with explicit trust marking.\n */\nexport class HtmlEscapedString extends String {\n constructor(public readonly value: string) {\n super(value);\n }\n override toString() {\n return this.value;\n }\n}\n\nexport const raw = (str: string) => new HtmlEscapedString(str);\n\n// Fast path for intrinsic elements\nconst VOID_ELEMENTS = new Set([\n \"area\",\n \"base\",\n \"br\",\n \"col\",\n \"embed\",\n \"hr\",\n \"img\",\n \"input\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n\n/**\n * Normalize children into an array of SinwanNode.\n */\nfunction normalizeChildren(children: any): SinwanNode[] {\n if (children == null || typeof children === \"boolean\") return [];\n if (Array.isArray(children)) return children.flat(Infinity);\n return [children];\n}\n\n/**\n * Build an SinwanElement from a component/tag invocation.\n * Shared logic for jsx, jsxs, and jsxDEV.\n */\nfunction buildElement(\n type: any,\n props: any,\n children: SinwanNode[],\n): SinwanElement {\n // Handle Fragment\n if (type === Fragment) {\n return { tag: \"\", props: {}, children };\n }\n\n // Handle functional components\n if (typeof type === \"function\") {\n // Sinwan-tagged component — call it directly\n if (type._SinwanComponent || type._SinwanPage) {\n const result = type(props);\n if (result && typeof result === \"object\" && \"tag\" in result) {\n return result as SinwanElement;\n }\n return { tag: \"\", props: {}, children: normalizeChildren(result) };\n }\n\n // Regular function component\n const result = type(props);\n if (result && typeof result === \"object\" && \"tag\" in result) {\n return result as SinwanElement;\n }\n return { tag: \"\", props: {}, children: normalizeChildren(result) };\n }\n\n // Handle intrinsic HTML elements\n if (typeof type === \"string\") {\n return { tag: type, props: props || {}, children };\n }\n\n // Fallback\n return { tag: \"\", props: {}, children };\n}\n\n/**\n * JSX factory — called for elements with 0 or 1 child.\n * TypeScript auto-imports this in production mode (`react-jsx`).\n */\nexport function jsx(type: any, props: any, key?: any): SinwanElement {\n return buildElement(type, props, normalizeChildren(props?.children));\n}\n\n/**\n * JSX static factory — called for elements with 2+ children.\n * `props.children` is **already an array**, so we skip normalizeChildren.\n */\nexport function jsxs(type: any, props: any, key?: any): SinwanElement {\n const children = props?.children;\n // Children is guaranteed to be an array by the compiler\n return buildElement(\n type,\n props,\n Array.isArray(children)\n ? children.flat(Infinity)\n : normalizeChildren(children),\n );\n}\n\n/**\n * Source location metadata attached by the compiler in dev mode.\n */\nexport interface JSXSource {\n fileName: string;\n lineNumber: number;\n columnNumber: number;\n}\n\n/**\n * JSX dev factory — called in dev mode (`react-jsxdev`).\n * Receives extra source/debug info for better error messages.\n */\nexport function jsxDEV(\n type: any,\n props: any,\n key: any,\n isStaticChildren: boolean,\n source?: JSXSource,\n self?: unknown,\n): SinwanElement {\n const children = isStaticChildren\n ? Array.isArray(props?.children)\n ? props.children.flat(Infinity)\n : normalizeChildren(props?.children)\n : normalizeChildren(props?.children);\n\n const element = buildElement(type, props, children);\n\n // Attach debug metadata (useful for dev-tools / error traces)\n if (source) {\n (element as any).__source = source;\n }\n\n return element;\n}\n\nexport namespace JSX {\n export type Element = SinwanElement | Promise<SinwanElement>;\n export interface IntrinsicAttributes {\n key?: string | number;\n }\n export interface ElementChildrenAttribute {\n children: {};\n }\n export interface IntrinsicElements extends SinwanIntrinsicElements {}\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "0pBAUO,IAAM,EAAW,OAAO,UAAU,EAMlC,MAAM,UAA0B,MAAO,CAChB,MAA5B,WAAW,CAAiB,EAAe,CACzC,MAAM,CAAK,EADe,aAGnB,QAAQ,EAAG,CAClB,OAAO,KAAK,MAEhB,CAEO,IAAM,EAAM,CAAC,IAAgB,IAAI,EAAkB,CAAG,EAuB7D,SAAS,CAAiB,CAAC,EAA6B,CACtD,GAAI,GAAY,MAAQ,OAAO,IAAa,UAAW,MAAO,CAAC,EAC/D,GAAI,MAAM,QAAQ,CAAQ,EAAG,OAAO,EAAS,KAAK,GAAQ,EAC1D,MAAO,CAAC,CAAQ,EAOlB,SAAS,CAAY,CACnB,EACA,EACA,EACe,CAEf,GAAI,IAAS,EACX,MAAO,CAAE,IAAK,GAAI,MAAO,CAAC,EAAG,UAAS,EAIxC,GAAI,OAAO,IAAS,WAAY,CAE9B,GAAI,EAAK,kBAAoB,EAAK,YAAa,CAC7C,IAAM,EAAS,EAAK,CAAK,EACzB,GAAI,GAAU,OAAO,IAAW,UAAY,QAAS,EACnD,OAAO,EAET,MAAO,CAAE,IAAK,GAAI,MAAO,CAAC,EAAG,SAAU,EAAkB,CAAM,CAAE,EAInE,IAAM,EAAS,EAAK,CAAK,EACzB,GAAI,GAAU,OAAO,IAAW,UAAY,QAAS,EACnD,OAAO,EAET,MAAO,CAAE,IAAK,GAAI,MAAO,CAAC,EAAG,SAAU,EAAkB,CAAM,CAAE,EAInE,GAAI,OAAO,IAAS,SAClB,MAAO,CAAE,IAAK,EAAM,MAAO,GAAS,CAAC,EAAG,UAAS,EAInD,MAAO,CAAE,IAAK,GAAI,MAAO,CAAC,EAAG,UAAS,EAOjC,SAAS,CAAG,CAAC,EAAW,EAAY,EAA0B,CACnE,OAAO,EAAa,EAAM,EAAO,EAAkB,GAAO,QAAQ,CAAC,EAO9D,SAAS,CAAI,CAAC,EAAW,EAAY,EAA0B,CACpE,IAAM,EAAW,GAAO,SAExB,OAAO,EACL,EACA,EACA,MAAM,QAAQ,CAAQ,EAClB,EAAS,KAAK,GAAQ,EACtB,EAAkB,CAAQ,CAChC,EAgBK,SAAS,CAAM,CACpB,EACA,EACA,EACA,EACA,EACA,EACe,CACf,IAAM,EAAW,EACb,MAAM,QAAQ,GAAO,QAAQ,EAC3B,EAAM,SAAS,KAAK,GAAQ,EAC5B,EAAkB,GAAO,QAAQ,EACnC,EAAkB,GAAO,QAAQ,EAE/B,EAAU,EAAa,EAAM,EAAO,CAAQ,EAGlD,GAAI,EACD,EAAgB,SAAW,EAG9B,OAAO",
|
|
8
|
+
"debugId": "B92D8764C731DA5E64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|