murasaki 0.2.0 → 0.3.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/bin/murasaki.js +8 -3
- package/dist/cli/colors.d.ts +13 -0
- package/dist/cli/colors.d.ts.map +1 -0
- package/dist/cli/colors.js +14 -0
- package/dist/cli/colors.js.map +1 -0
- package/dist/cli/log.d.ts +14 -0
- package/dist/cli/log.d.ts.map +1 -0
- package/dist/cli/log.js +25 -0
- package/dist/cli/log.js.map +1 -0
- package/dist/components/Link.d.ts +9 -0
- package/dist/components/Link.d.ts.map +1 -0
- package/dist/components/Link.js +15 -0
- package/dist/components/Link.js.map +1 -0
- package/dist/dev.d.ts +2 -0
- package/dist/dev.d.ts.map +1 -0
- package/dist/dev.js +41 -0
- package/dist/dev.js.map +1 -0
- package/dist/env.d.ts +15 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +43 -0
- package/dist/env.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/jsx/dom/index.d.ts +2 -0
- package/dist/jsx/dom/index.d.ts.map +1 -0
- package/dist/jsx/dom/index.js +3 -0
- package/dist/jsx/dom/index.js.map +1 -0
- package/dist/jsx/dom/runtime.d.ts +34 -0
- package/dist/jsx/dom/runtime.d.ts.map +1 -0
- package/dist/jsx/dom/runtime.js +303 -0
- package/dist/jsx/dom/runtime.js.map +1 -0
- package/dist/jsx/index.d.ts +3 -0
- package/dist/jsx/index.d.ts.map +1 -0
- package/dist/jsx/index.js +3 -0
- package/dist/jsx/index.js.map +1 -0
- package/dist/jsx/jsx-dev-runtime.d.ts +2 -0
- package/dist/jsx/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/jsx/jsx-dev-runtime.js +7 -0
- package/dist/jsx/jsx-dev-runtime.js.map +1 -0
- package/dist/jsx/jsx-runtime.d.ts +2 -0
- package/dist/jsx/jsx-runtime.d.ts.map +1 -0
- package/{src/jsx/jsx-runtime.ts → dist/jsx/jsx-runtime.js} +4 -3
- package/dist/jsx/jsx-runtime.js.map +1 -0
- package/dist/jsx/runtime.d.ts +24 -0
- package/dist/jsx/runtime.d.ts.map +1 -0
- package/dist/jsx/runtime.js +273 -0
- package/dist/jsx/runtime.js.map +1 -0
- package/dist/jsx/types.d.ts +30 -0
- package/dist/jsx/types.d.ts.map +1 -0
- package/dist/jsx/types.js +3 -0
- package/dist/jsx/types.js.map +1 -0
- package/dist/runtime/bundle.d.ts +8 -0
- package/dist/runtime/bundle.d.ts.map +1 -0
- package/dist/runtime/bundle.js +98 -0
- package/dist/runtime/bundle.js.map +1 -0
- package/dist/runtime/hmr.d.ts +2 -0
- package/dist/runtime/hmr.d.ts.map +1 -0
- package/dist/runtime/hmr.js +28 -0
- package/dist/runtime/hmr.js.map +1 -0
- package/dist/runtime/render.d.ts +3 -0
- package/dist/runtime/render.d.ts.map +1 -0
- package/dist/runtime/render.js +226 -0
- package/dist/runtime/render.js.map +1 -0
- package/dist/runtime/routes.d.ts +10 -0
- package/dist/runtime/routes.d.ts.map +1 -0
- package/dist/runtime/routes.js +65 -0
- package/dist/runtime/routes.js.map +1 -0
- package/dist/runtime/shortcuts.d.ts +8 -0
- package/dist/runtime/shortcuts.d.ts.map +1 -0
- package/dist/runtime/shortcuts.js +29 -0
- package/dist/runtime/shortcuts.js.map +1 -0
- package/dist/runtime/window.d.ts +10 -0
- package/dist/runtime/window.d.ts.map +1 -0
- package/dist/runtime/window.js +93 -0
- package/dist/runtime/window.js.map +1 -0
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +17 -10
- package/src/cli/colors.ts +0 -16
- package/src/cli/log.ts +0 -42
- package/src/components/Link.tsx +0 -25
- package/src/dev.tsx +0 -60
- package/src/env.ts +0 -48
- package/src/index.ts +0 -24
- package/src/jsx/index.ts +0 -21
- package/src/jsx/jsx-dev-runtime.ts +0 -6
- package/src/jsx/runtime.ts +0 -298
- package/src/jsx/types.ts +0 -36
- package/src/runtime/hmr.ts +0 -26
- package/src/runtime/render.tsx +0 -225
- package/src/runtime/routes.ts +0 -73
- package/src/runtime/shortcuts.ts +0 -31
- package/src/runtime/window.ts +0 -94
- package/src/types.ts +0 -22
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
// murasaki/jsx/dom — client-side runtime.
|
|
2
|
+
//
|
|
3
|
+
// Design notes (MVP):
|
|
4
|
+
// - Naive: every state change triggers a full re-render of the root.
|
|
5
|
+
// No virtual-DOM diff, no fiber. Good enough for desktop apps where
|
|
6
|
+
// trees are tiny and re-render is sub-millisecond.
|
|
7
|
+
// - Hooks: useState / useEffect / useRef. Indexed by "component slot"
|
|
8
|
+
// in render order — same as React's call-order rule, so the usual
|
|
9
|
+
// "no hooks in conditionals" applies.
|
|
10
|
+
// - Events: any prop starting with "on" + a function becomes a DOM
|
|
11
|
+
// event listener. Names normalize: onClick → "click", onChange → "change".
|
|
12
|
+
// - HMR friendly: createRoot re-uses the same container, just clears + remounts.
|
|
13
|
+
//
|
|
14
|
+
// This file is browser-only. It uses `document`, `window`, etc., so it must
|
|
15
|
+
// only be loaded via the client bundle — never imported on the Node side.
|
|
16
|
+
class JSXNode {
|
|
17
|
+
tag;
|
|
18
|
+
props;
|
|
19
|
+
children;
|
|
20
|
+
__isJSXNode = true;
|
|
21
|
+
constructor(tag, props, children) {
|
|
22
|
+
this.tag = tag;
|
|
23
|
+
this.props = props;
|
|
24
|
+
this.children = children;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function isJSXNode(v) {
|
|
28
|
+
return typeof v === 'object' && v !== null && v.__isJSXNode === true;
|
|
29
|
+
}
|
|
30
|
+
// ── jsx() factory ────────────────────────────────────────────────────
|
|
31
|
+
export function jsx(tag, props) {
|
|
32
|
+
const p = (props ?? {});
|
|
33
|
+
const rawChildren = p.children;
|
|
34
|
+
const children = Array.isArray(rawChildren)
|
|
35
|
+
? rawChildren
|
|
36
|
+
: rawChildren != null
|
|
37
|
+
? [rawChildren]
|
|
38
|
+
: [];
|
|
39
|
+
const { children: _drop, ...rest } = p;
|
|
40
|
+
return new JSXNode(tag, rest, children);
|
|
41
|
+
}
|
|
42
|
+
export const jsxs = jsx;
|
|
43
|
+
export const jsxDEV = jsx;
|
|
44
|
+
export const createElement = jsx;
|
|
45
|
+
export function Fragment(props) {
|
|
46
|
+
return props.children ?? null;
|
|
47
|
+
}
|
|
48
|
+
let currentRoot = null;
|
|
49
|
+
function getOrInitSlot(key) {
|
|
50
|
+
const slots = currentRoot.slots;
|
|
51
|
+
let slot = slots.get(key);
|
|
52
|
+
if (!slot) {
|
|
53
|
+
slot = { states: [], effects: [], refs: [] };
|
|
54
|
+
slots.set(key, slot);
|
|
55
|
+
}
|
|
56
|
+
return slot;
|
|
57
|
+
}
|
|
58
|
+
// ── useState ─────────────────────────────────────────────────────────
|
|
59
|
+
// Behavior on the server (no active root): returns the initial value with
|
|
60
|
+
// a no-op setter, so user code can be imported and SSR-rendered safely.
|
|
61
|
+
export function useState(initial) {
|
|
62
|
+
const root = currentRoot;
|
|
63
|
+
if (!root || !root.currentSlot) {
|
|
64
|
+
const v = typeof initial === 'function' ? initial() : initial;
|
|
65
|
+
return [v, () => { }];
|
|
66
|
+
}
|
|
67
|
+
const slot = root.currentSlot;
|
|
68
|
+
const idx = root.stateIdx++;
|
|
69
|
+
if (idx >= slot.states.length) {
|
|
70
|
+
slot.states[idx] = typeof initial === 'function' ? initial() : initial;
|
|
71
|
+
}
|
|
72
|
+
const set = (next) => {
|
|
73
|
+
const prev = slot.states[idx];
|
|
74
|
+
const value = typeof next === 'function' ? next(prev) : next;
|
|
75
|
+
if (Object.is(prev, value))
|
|
76
|
+
return;
|
|
77
|
+
slot.states[idx] = value;
|
|
78
|
+
scheduleRender(root);
|
|
79
|
+
};
|
|
80
|
+
return [slot.states[idx], set];
|
|
81
|
+
}
|
|
82
|
+
// ── useEffect (basic: deps-based; no-op on server) ──────────────────
|
|
83
|
+
export function useEffect(fn, deps) {
|
|
84
|
+
const root = currentRoot;
|
|
85
|
+
if (!root || !root.currentSlot)
|
|
86
|
+
return;
|
|
87
|
+
const slot = root.currentSlot;
|
|
88
|
+
const idx = root.effectIdx++;
|
|
89
|
+
const prev = slot.effects[idx];
|
|
90
|
+
const changed = !prev ||
|
|
91
|
+
!deps ||
|
|
92
|
+
!prev.deps ||
|
|
93
|
+
deps.length !== prev.deps.length ||
|
|
94
|
+
deps.some((d, i) => !Object.is(d, prev.deps?.[i]));
|
|
95
|
+
if (changed) {
|
|
96
|
+
slot.effects[idx] = {
|
|
97
|
+
deps,
|
|
98
|
+
cleanup: prev?.cleanup,
|
|
99
|
+
pending: () => {
|
|
100
|
+
prev?.cleanup?.();
|
|
101
|
+
const ret = fn();
|
|
102
|
+
if (typeof ret === 'function') {
|
|
103
|
+
slot.effects[idx].cleanup = ret;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
slot.effects[idx].cleanup = undefined;
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// ── useRef (no-op-ish on server: returns a fresh ref every render) ──
|
|
113
|
+
export function useRef(initial) {
|
|
114
|
+
const root = currentRoot;
|
|
115
|
+
if (!root || !root.currentSlot)
|
|
116
|
+
return { current: initial };
|
|
117
|
+
const slot = root.currentSlot;
|
|
118
|
+
const idx = root.refIdx++;
|
|
119
|
+
if (idx >= slot.refs.length) {
|
|
120
|
+
slot.refs[idx] = { current: initial };
|
|
121
|
+
}
|
|
122
|
+
return slot.refs[idx];
|
|
123
|
+
}
|
|
124
|
+
// ── Schedule a re-render (microtask coalesce) ────────────────────────
|
|
125
|
+
function scheduleRender(root) {
|
|
126
|
+
if (root.rendering) {
|
|
127
|
+
root.pendingRender = true;
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
root.pendingRender = true;
|
|
131
|
+
queueMicrotask(() => {
|
|
132
|
+
if (root.pendingRender) {
|
|
133
|
+
root.pendingRender = false;
|
|
134
|
+
mount(root);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
// ── Attribute helpers ────────────────────────────────────────────────
|
|
139
|
+
const ATTR_ALIAS = {
|
|
140
|
+
className: 'class',
|
|
141
|
+
htmlFor: 'for',
|
|
142
|
+
charSet: 'charset',
|
|
143
|
+
};
|
|
144
|
+
function camelToKebab(k) {
|
|
145
|
+
if (k[0] === '-' || !/[A-Z]/.test(k))
|
|
146
|
+
return k;
|
|
147
|
+
return k.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);
|
|
148
|
+
}
|
|
149
|
+
function styleObjToCss(obj) {
|
|
150
|
+
let out = '';
|
|
151
|
+
for (const [k, v] of Object.entries(obj)) {
|
|
152
|
+
if (v == null || v === false)
|
|
153
|
+
continue;
|
|
154
|
+
let val;
|
|
155
|
+
if (typeof v === 'number')
|
|
156
|
+
val = `${v}px`;
|
|
157
|
+
else if (typeof v === 'string')
|
|
158
|
+
val = v;
|
|
159
|
+
else
|
|
160
|
+
continue;
|
|
161
|
+
out += `${out ? ';' : ''}${camelToKebab(k)}:${val}`;
|
|
162
|
+
}
|
|
163
|
+
return out;
|
|
164
|
+
}
|
|
165
|
+
// ── DOM materializer ────────────────────────────────────────────────
|
|
166
|
+
function appendChild(parent, child, slotKey) {
|
|
167
|
+
if (child == null || child === false || child === true)
|
|
168
|
+
return;
|
|
169
|
+
if (typeof child === 'string' || typeof child === 'number' || typeof child === 'bigint') {
|
|
170
|
+
parent.appendChild(document.createTextNode(String(child)));
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
if (Array.isArray(child)) {
|
|
174
|
+
child.forEach((c, i) => appendChild(parent, c, `${slotKey}.${i}`));
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
if (isJSXNode(child)) {
|
|
178
|
+
parent.appendChild(toDOM(child, slotKey));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
function toDOM(node, slotKey) {
|
|
182
|
+
const { tag, props, children } = node;
|
|
183
|
+
// Component / Fragment
|
|
184
|
+
if (typeof tag === 'function') {
|
|
185
|
+
const root = currentRoot;
|
|
186
|
+
const prevSlot = root.currentSlot;
|
|
187
|
+
const prevKey = root.currentSlotKey;
|
|
188
|
+
const prevStateIdx = root.stateIdx;
|
|
189
|
+
const prevEffectIdx = root.effectIdx;
|
|
190
|
+
const prevRefIdx = root.refIdx;
|
|
191
|
+
const key = `${slotKey}|${tag.name || 'Anon'}`;
|
|
192
|
+
root.currentSlotKey = key;
|
|
193
|
+
root.currentSlot = getOrInitSlot(key);
|
|
194
|
+
root.stateIdx = 0;
|
|
195
|
+
root.effectIdx = 0;
|
|
196
|
+
root.refIdx = 0;
|
|
197
|
+
const result = tag({ ...props, children: children.length === 1 ? children[0] : children });
|
|
198
|
+
root.currentSlot = prevSlot;
|
|
199
|
+
root.currentSlotKey = prevKey;
|
|
200
|
+
root.stateIdx = prevStateIdx;
|
|
201
|
+
root.effectIdx = prevEffectIdx;
|
|
202
|
+
root.refIdx = prevRefIdx;
|
|
203
|
+
const frag = document.createDocumentFragment();
|
|
204
|
+
appendChild(frag, result, key);
|
|
205
|
+
return frag;
|
|
206
|
+
}
|
|
207
|
+
// Intrinsic element
|
|
208
|
+
const el = document.createElement(tag);
|
|
209
|
+
for (const k in props) {
|
|
210
|
+
const v = props[k];
|
|
211
|
+
if (k === 'children' || k === 'key' || k === 'ref')
|
|
212
|
+
continue;
|
|
213
|
+
if (v == null || v === false)
|
|
214
|
+
continue;
|
|
215
|
+
// Event handler: onClick, onChange, onInput, ...
|
|
216
|
+
if (k.length > 2 && k[0] === 'o' && k[1] === 'n' && typeof v === 'function') {
|
|
217
|
+
const eventName = k.slice(2).toLowerCase();
|
|
218
|
+
el.addEventListener(eventName, v);
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
// dangerouslySetInnerHTML
|
|
222
|
+
if (k === 'dangerouslySetInnerHTML') {
|
|
223
|
+
const html = v.__html;
|
|
224
|
+
if (typeof html === 'string')
|
|
225
|
+
el.innerHTML = html;
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
// Style object
|
|
229
|
+
if (k === 'style' && typeof v === 'object') {
|
|
230
|
+
el.setAttribute('style', styleObjToCss(v));
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
const name = ATTR_ALIAS[k] || k;
|
|
234
|
+
if (v === true) {
|
|
235
|
+
el.setAttribute(name, '');
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
el.setAttribute(name, String(v));
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
children.forEach((c, i) => appendChild(el, c, `${slotKey}>${tag}.${i}`));
|
|
242
|
+
return el;
|
|
243
|
+
}
|
|
244
|
+
// ── Mount (initial + re-render) ──────────────────────────────────────
|
|
245
|
+
function mount(root) {
|
|
246
|
+
root.rendering = true;
|
|
247
|
+
currentRoot = root;
|
|
248
|
+
root.currentSlotKey = '';
|
|
249
|
+
root.currentSlot = null;
|
|
250
|
+
root.stateIdx = 0;
|
|
251
|
+
root.effectIdx = 0;
|
|
252
|
+
root.refIdx = 0;
|
|
253
|
+
// Render tree
|
|
254
|
+
const tree = root.render();
|
|
255
|
+
// Wipe container + re-fill
|
|
256
|
+
root.container.textContent = '';
|
|
257
|
+
appendChild(root.container, tree, 'root');
|
|
258
|
+
// Flush pending effects (post-render)
|
|
259
|
+
for (const slot of root.slots.values()) {
|
|
260
|
+
for (const effect of slot.effects) {
|
|
261
|
+
if (effect.pending) {
|
|
262
|
+
try {
|
|
263
|
+
effect.pending();
|
|
264
|
+
}
|
|
265
|
+
catch (e) {
|
|
266
|
+
console.error(e);
|
|
267
|
+
}
|
|
268
|
+
effect.pending = undefined;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
currentRoot = null;
|
|
273
|
+
root.rendering = false;
|
|
274
|
+
if (root.pendingRender) {
|
|
275
|
+
root.pendingRender = false;
|
|
276
|
+
queueMicrotask(() => mount(root));
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
// ── Public createRoot ────────────────────────────────────────────────
|
|
280
|
+
export function createRoot(container) {
|
|
281
|
+
return {
|
|
282
|
+
render(tree) {
|
|
283
|
+
const root = {
|
|
284
|
+
container,
|
|
285
|
+
render: () => tree,
|
|
286
|
+
slots: new Map(),
|
|
287
|
+
currentSlotKey: '',
|
|
288
|
+
currentSlot: null,
|
|
289
|
+
stateIdx: 0,
|
|
290
|
+
effectIdx: 0,
|
|
291
|
+
refIdx: 0,
|
|
292
|
+
rendering: false,
|
|
293
|
+
pendingRender: false,
|
|
294
|
+
};
|
|
295
|
+
mount(root);
|
|
296
|
+
},
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
// ── Helper for bundle entry points ──────────────────────────────────
|
|
300
|
+
// The dev runner generates an entry that imports the user's page module,
|
|
301
|
+
// calls jsx() on its default export, and hands it to createRoot.
|
|
302
|
+
export { JSXNode };
|
|
303
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/jsx/dom/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jsx/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,QAAQ,EACR,SAAS,EACT,cAAc,EACd,OAAO,EACP,GAAG,EACH,GAAG,EACH,cAAc,GACf,MAAM,cAAc,CAAA;AAErB,YAAY,EACV,KAAK,EACL,SAAS,EACT,OAAO,EACP,EAAE,EACF,WAAW,EACX,KAAK,GACN,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jsx/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAE3D,OAAO,EACL,aAAa,EACb,QAAQ,EACR,SAAS,EACT,cAAc,EACd,OAAO,EACP,GAAG,EACH,GAAG,EACH,cAAc,GACf,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-dev-runtime.d.ts","sourceRoot":"","sources":["../../src/jsx/jsx-dev-runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,MAAM,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// JSX dev runtime entry — used when tsconfig has `jsx: "react-jsxdev"`.
|
|
2
|
+
// We don't (yet) track source locations or component stacks, so jsxDEV
|
|
3
|
+
// behaves identically to jsx.
|
|
4
|
+
export { Fragment, jsx as jsxDEV } from "./runtime.js";
|
|
5
|
+
// JSX namespace is declared globally in ./types.ts — picked up automatically
|
|
6
|
+
// by the JSX compiler without needing an explicit re-export here.
|
|
7
|
+
//# sourceMappingURL=jsx-dev-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-dev-runtime.js","sourceRoot":"","sources":["../../src/jsx/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,uEAAuE;AACvE,8BAA8B;AAE9B,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,MAAM,EAAE,MAAM,cAAc,CAAA;AAEtD,6EAA6E;AAC7E,kEAAkE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../../src/jsx/jsx-runtime.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// jsx(Component, props, key?)
|
|
6
6
|
// jsxs(Component, propsWithChildrenArray, key?)
|
|
7
7
|
// <></> → jsx(Fragment, { children: [...] })
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
export { Fragment, jsx, jsx as jsxs } from "./runtime.js";
|
|
9
|
+
// JSX namespace is declared globally in ./types.ts — picked up automatically
|
|
10
|
+
// by the JSX compiler without needing an explicit re-export here.
|
|
11
|
+
//# sourceMappingURL=jsx-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../../src/jsx/jsx-runtime.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,qDAAqD;AACrD,EAAE;AACF,kCAAkC;AAClC,gCAAgC;AAChC,kDAAkD;AAClD,+CAA+C;AAE/C,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA;AAEzD,6EAA6E;AAC7E,kEAAkE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Child, Component, JSXNodeLike, Props } from './types.ts';
|
|
2
|
+
/** Wrap pre-rendered HTML so it's emitted verbatim as a JSX child. */
|
|
3
|
+
export declare function raw(html: string): JSXNodeLike;
|
|
4
|
+
export declare class JSXNode implements JSXNodeLike {
|
|
5
|
+
readonly __isJSXNode: true;
|
|
6
|
+
tag: string | Component;
|
|
7
|
+
props: Props;
|
|
8
|
+
children: Child[];
|
|
9
|
+
constructor(tag: string | Component, props: Props, children: Child[]);
|
|
10
|
+
toString(): string;
|
|
11
|
+
}
|
|
12
|
+
export declare function isJSXNode(v: unknown): v is JSXNode;
|
|
13
|
+
export declare function jsx(tag: string | Component, props: Props | null, ..._restChildren: unknown[]): JSXNode;
|
|
14
|
+
/** React-compatible alias. */
|
|
15
|
+
export declare const createElement: typeof jsx;
|
|
16
|
+
/** Fragment — renders children without a wrapper tag. */
|
|
17
|
+
export declare function Fragment(props: {
|
|
18
|
+
children?: Child;
|
|
19
|
+
}): Child;
|
|
20
|
+
/** Check if something is a JSX element (React.isValidElement compat). */
|
|
21
|
+
export declare function isValidElement(v: unknown): v is JSXNode;
|
|
22
|
+
/** Convert any value (JSXNode, string, array, etc.) to an HTML string. */
|
|
23
|
+
export declare function renderToString(value: Child): string;
|
|
24
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/jsx/runtime.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAoLtE,sEAAsE;AACtE,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAE7C;AAiBD,qBAAa,OAAQ,YAAW,WAAW;IACzC,QAAQ,CAAC,WAAW,EAAG,IAAI,CAAS;IACpC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,KAAK,EAAE,CAAA;gBAEL,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;IAMpE,QAAQ,IAAI,MAAM;CA8BnB;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,OAAO,CAElD;AAGD,wBAAgB,GAAG,CACjB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,GAAG,aAAa,EAAE,OAAO,EAAE,GAC1B,OAAO,CAWT;AAED,8BAA8B;AAC9B,eAAO,MAAM,aAAa,YAAM,CAAA;AAEhC,yDAAyD;AACzD,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG,KAAK,CAE3D;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,OAAO,CAEvD;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEnD"}
|