@madenowhere/phaze-compile 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Rohan Rehman
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -5,6 +5,7 @@ interface Babel {
5
5
  }
6
6
  interface DslState extends PluginPass {
7
7
  dslLocals?: Map<string, 'c' | 'watch' | 'phaze' | 's'>;
8
+ needsRuntimeImport?: Set<'effect' | 'listen'>;
8
9
  }
9
10
  declare const phazeCompile: (babel: Babel) => PluginObj<DslState>;
10
11
  export default phazeCompile;
@@ -1 +1 @@
1
- {"version":3,"file":"babel-plugin.d.ts","sourceRoot":"","sources":["../src/babel-plugin.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAItC,UAAU,KAAK;IACb,KAAK,EAAE,OAAO,CAAC,CAAA;CAChB;AAQD,UAAU,QAAS,SAAQ,UAAU;IACnC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,GAAG,OAAO,GAAG,GAAG,CAAC,CAAA;CACvD;AAID,QAAA,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,SAAS,CAAC,QAAQ,CA6FtD,CAAA;AA0RD,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"babel-plugin.d.ts","sourceRoot":"","sources":["../src/babel-plugin.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAY,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAItC,UAAU,KAAK;IACb,KAAK,EAAE,OAAO,CAAC,CAAA;CAChB;AAUD,UAAU,QAAS,SAAQ,UAAU;IACnC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,GAAG,OAAO,GAAG,GAAG,CAAC,CAAA;IACtD,kBAAkB,CAAC,EAAE,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAA;CAC9C;AAID,QAAA,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,SAAS,CAAC,QAAQ,CAgKtD,CAAA;AAofD,eAAe,YAAY,CAAA"}
@@ -40,11 +40,59 @@ const phazeCompile = (babel) => {
40
40
  name: '@madenowhere/phaze-compile',
41
41
  inherits: jsxSyntax.default ?? jsxSyntax,
42
42
  visitor: {
43
- Program(_path, state) {
44
- // Reset per-file. Babel reuses the plugin object across files
45
- // when invoked in batch; without this reset, DSL bindings from
46
- // one file would bleed into the next.
47
- state.dslLocals = new Map();
43
+ Program: {
44
+ enter(_path, state) {
45
+ // Reset per-file. Babel reuses the plugin object across files
46
+ // when invoked in batch; without this reset, DSL bindings from
47
+ // one file would bleed into the next.
48
+ state.dslLocals = new Map();
49
+ state.needsRuntimeImport = new Set();
50
+ },
51
+ exit(path, state) {
52
+ // Auto-inject `effect` / `listen` imports from the main phaze
53
+ // entry when class: / bind: namespaces in this file referenced
54
+ // them. The compiler treats these like compile-emitted builtins
55
+ // (same as React's JSX automatic transform auto-imports jsx() /
56
+ // Fragment) — users shouldn't have to remember to import a
57
+ // runtime helper they didn't name in their source.
58
+ //
59
+ // Merge with an existing `from '@madenowhere/phaze'` import if
60
+ // one exists; otherwise prepend a fresh one. Skip names already
61
+ // imported.
62
+ const need = state.needsRuntimeImport;
63
+ if (!need || need.size === 0)
64
+ return;
65
+ const PHAZE = '@madenowhere/phaze';
66
+ let existing = null;
67
+ for (const stmt of path.node.body) {
68
+ if (stmt.type === 'ImportDeclaration' && stmt.source.value === PHAZE) {
69
+ existing = stmt;
70
+ break;
71
+ }
72
+ }
73
+ const already = new Set();
74
+ if (existing) {
75
+ for (const spec of existing.specifiers) {
76
+ if (spec.type === 'ImportSpecifier' && spec.imported.type === 'Identifier') {
77
+ already.add(spec.imported.name);
78
+ }
79
+ }
80
+ }
81
+ const toAdd = [];
82
+ for (const name of need) {
83
+ if (!already.has(name))
84
+ toAdd.push(name);
85
+ }
86
+ if (toAdd.length === 0)
87
+ return;
88
+ const newSpecs = toAdd.map((name) => types.importSpecifier(types.identifier(name), types.identifier(name)));
89
+ if (existing) {
90
+ existing.specifiers.push(...newSpecs);
91
+ }
92
+ else {
93
+ path.node.body.unshift(types.importDeclaration(newSpecs, types.stringLiteral(PHAZE)));
94
+ }
95
+ },
48
96
  },
49
97
  ImportDeclaration(path, state) {
50
98
  if (path.node.source.value !== DSL_SOURCE)
@@ -97,10 +145,10 @@ const phazeCompile = (babel) => {
97
145
  path.node.arguments[0] = arrow;
98
146
  }
99
147
  },
100
- JSXElement(path) {
148
+ JSXElement(path, state) {
101
149
  const opening = path.node.openingElement;
102
150
  rewriteJSXNamespaces(opening, types);
103
- const directives = extractUseDirectives(opening, types);
151
+ const ops = extractPostCreationOps(path, types, state);
104
152
  if (isComponentJSX(opening.name)) {
105
153
  // Component children — wrap unconditionally so the parent
106
154
  // controls construction timing (error scopes, etc.).
@@ -114,12 +162,32 @@ const phazeCompile = (babel) => {
114
162
  // without the user writing an explicit thunk.
115
163
  wrapHostExpressionChildren(path.node, types);
116
164
  }
117
- if (directives.length > 0) {
118
- // Wrap the JSX in an IIFE that runs each `use:` directive
119
- // post-creation. Replacing the JSXElement here is safe —
120
- // Babel re-enters the new tree, and the inner JSX no longer
121
- // carries `use:` attrs so this branch won't fire twice.
122
- path.replaceWith(buildDirectiveIIFE(path.node, directives, types));
165
+ if (ops.length > 0) {
166
+ // Wrap the JSX in an IIFE that runs each use: / class: / bind:
167
+ // post-creation operation. Replacing the JSXElement here is
168
+ // safe — Babel re-enters the new tree, and the inner JSX no
169
+ // longer carries the stripped attrs so this branch won't fire
170
+ // twice.
171
+ //
172
+ // Position-aware substitution: a bare CallExpression is valid
173
+ // wherever an Expression is, EXCEPT as a JSX child. JSX child
174
+ // positions only accept JSXElement / JSXFragment / JSXText /
175
+ // JSXSpreadChild / JSXExpressionContainer. Emitting
176
+ // `<outer>(__el => …)(<inner/>)</outer>` directly produces
177
+ // invalid JSX that downstream esbuild rejects with "The
178
+ // character '>' is not valid inside a JSX element". When the
179
+ // parent node is a JSXElement or JSXFragment, wrap the IIFE
180
+ // in `{ … }`. Top-level / attribute / non-JSX positions take
181
+ // the bare expression — `path.replaceWith(callExpr)` works as
182
+ // before.
183
+ const iife = buildPostCreationIIFE(path.node, ops, types);
184
+ const parentType = path.parent.type;
185
+ if (parentType === 'JSXElement' || parentType === 'JSXFragment') {
186
+ path.replaceWith(types.jsxExpressionContainer(iife));
187
+ }
188
+ else {
189
+ path.replaceWith(iife);
190
+ }
123
191
  }
124
192
  },
125
193
  JSXFragment(path) {
@@ -129,14 +197,13 @@ const phazeCompile = (babel) => {
129
197
  },
130
198
  };
131
199
  };
132
- // Rewrite the three Phaze JSX namespaces in place on a single opening
133
- // element. `phaze:` and `on:` are pure attribute renames + value rewrap;
134
- // `use:` requires a post-creation function call for now we rewrite it
135
- // to a marker prop `__use$name={value}` and let the runtime / JSX-to-call
136
- // pipeline pick it up. (A separate pass to fully emit a wrapping IIFE
137
- // can layer on top later; the marker form is the smallest first cut
138
- // that's still correct because the runtime is the natural spot to
139
- // invoke directives once an element exists.)
200
+ // Rewrite the in-place Phaze JSX namespaces (`phaze:`, `on:`) on a
201
+ // single opening element. Pure attribute renames + value rewraps —
202
+ // these don't need post-creation code, so they don't participate in
203
+ // the IIFE wrapping pass.
204
+ //
205
+ // `use:`, `class:`, `bind:` are handled by `extractPostCreationOps`
206
+ // because they each need code that runs *after* the element exists.
140
207
  const rewriteJSXNamespaces = (opening, types) => {
141
208
  for (const attr of opening.attributes) {
142
209
  if (attr.type !== 'JSXAttribute')
@@ -171,77 +238,227 @@ const rewriteJSXNamespaces = (opening, types) => {
171
238
  const camel = 'on' + local.charAt(0).toUpperCase() + local.slice(1);
172
239
  attr.name = types.jsxIdentifier(camel);
173
240
  }
174
- // `use:` is handled separately by extractUseDirectives — that pass
175
- // pulls each directive into a post-creation IIFE rather than
176
- // surviving as a regular attribute.
177
241
  }
178
242
  };
179
- // Pull every `use:directive={value}` attribute off the opening element
180
- // and return a list of `{ name, valueThunk }` records. Returned thunks
181
- // are arrow expressions wrapping the original value (or `() => true`
182
- // for bare `use:flag`). The attributes themselves are removed from the
183
- // JSX so they don't survive into the JSX-to-call output.
184
- const extractUseDirectives = (opening, types) => {
185
- const out = [];
243
+ // Walk a JSX opening element's attributes once, in source order, and:
244
+ // - `use:NAME={value}` → push a `use` op; strip the attribute.
245
+ // - `class:NAME={expr}` → push a `class` op; strip the attribute.
246
+ // - `bind:value={sig}` push a `bind` op + emit a signal
247
+ // pass-through `value={sig}` attribute.
248
+ // - `bind:checked={sig}` → same, with `checked={sig}`.
249
+ // - everything else → keep verbatim.
250
+ //
251
+ // Source-order in `ops` matches the user's attribute order so the IIFE
252
+ // emits the post-creation calls in the order the source declares them.
253
+ const extractPostCreationOps = (path, types, state) => {
254
+ const opening = path.node.openingElement;
255
+ const ops = [];
186
256
  const kept = [];
257
+ // Pre-scan for the element's tag and static `type` attribute. Used
258
+ // for `bind:`-target validation. A non-string-literal `type` value
259
+ // marks the type as dynamic — in that case we emit the basic
260
+ // transform and skip validation (the user knows what they're doing).
261
+ const tagName = opening.name.type === 'JSXIdentifier' ? opening.name.name : null;
262
+ let staticType = null;
263
+ let typeIsDynamic = false;
264
+ for (const attr of opening.attributes) {
265
+ if (attr.type !== 'JSXAttribute')
266
+ continue;
267
+ if (attr.name.type !== 'JSXIdentifier' || attr.name.name !== 'type')
268
+ continue;
269
+ const v = attr.value;
270
+ if (v && v.type === 'StringLiteral')
271
+ staticType = v.value;
272
+ else if (v && v.type === 'JSXExpressionContainer' && v.expression.type === 'StringLiteral') {
273
+ staticType = v.expression.value;
274
+ }
275
+ else {
276
+ typeIsDynamic = true;
277
+ }
278
+ }
187
279
  for (const attr of opening.attributes) {
188
280
  if (attr.type !== 'JSXAttribute') {
189
281
  kept.push(attr);
190
282
  continue;
191
283
  }
192
284
  const name = attr.name;
193
- if (name.type !== 'JSXNamespacedName' || name.namespace.name !== 'use') {
285
+ if (name.type !== 'JSXNamespacedName') {
194
286
  kept.push(attr);
195
287
  continue;
196
288
  }
289
+ const ns = name.namespace.name;
197
290
  const local = name.name.name;
198
- let valueThunk;
199
- const val = attr.value;
200
- if (val && val.type === 'JSXExpressionContainer') {
201
- const expr = val.expression;
202
- if (expr.type === 'JSXEmptyExpression') {
291
+ if (ns === 'use') {
292
+ const val = attr.value;
293
+ let valueThunk;
294
+ if (val && val.type === 'JSXExpressionContainer') {
295
+ const expr = val.expression;
296
+ if (expr.type === 'JSXEmptyExpression') {
297
+ valueThunk = types.arrowFunctionExpression([], types.booleanLiteral(true));
298
+ }
299
+ else if (expr.type === 'ArrowFunctionExpression' ||
300
+ expr.type === 'FunctionExpression') {
301
+ valueThunk = expr;
302
+ }
303
+ else {
304
+ valueThunk = types.arrowFunctionExpression([], expr);
305
+ }
306
+ }
307
+ else {
203
308
  valueThunk = types.arrowFunctionExpression([], types.booleanLiteral(true));
204
309
  }
205
- else if (expr.type === 'ArrowFunctionExpression' ||
206
- expr.type === 'FunctionExpression') {
207
- // Caller already wrote the explicit thunk form — pass through.
208
- valueThunk = expr;
310
+ ops.push({ kind: 'use', name: local, valueThunk });
311
+ continue;
312
+ }
313
+ if (ns === 'class') {
314
+ // class:NAME={expr} → toggle class NAME based on truthiness of expr.
315
+ // Bare `class:NAME` and `class:NAME="…"` (string-literal value)
316
+ // both mean "always on" — JSX semantics for valueless attrs +
317
+ // the spec's explicit treatment of string-literal values.
318
+ const val = attr.value;
319
+ let valueExpr;
320
+ if (!val) {
321
+ valueExpr = types.booleanLiteral(true);
322
+ }
323
+ else if (val.type === 'StringLiteral') {
324
+ valueExpr = types.booleanLiteral(true);
325
+ }
326
+ else if (val.type === 'JSXExpressionContainer') {
327
+ const expr = val.expression;
328
+ valueExpr = expr.type === 'JSXEmptyExpression'
329
+ ? types.booleanLiteral(true)
330
+ : expr;
209
331
  }
210
332
  else {
211
- valueThunk = types.arrowFunctionExpression([], expr);
333
+ valueExpr = types.booleanLiteral(true);
212
334
  }
335
+ ops.push({ kind: 'class', className: local, valueExpr });
336
+ state.needsRuntimeImport.add('effect');
337
+ continue;
213
338
  }
214
- else {
215
- // Bare attribute (`use:autofocus` with no `={…}`) → treat as true.
216
- valueThunk = types.arrowFunctionExpression([], types.booleanLiteral(true));
339
+ if (ns === 'bind') {
340
+ // Minimal-scope two-way binding: bind:value (text-like inputs,
341
+ // textarea) and bind:checked (checkboxes). Anything else is a
342
+ // compile error pointing at the manual form.
343
+ if (local !== 'value' && local !== 'checked') {
344
+ throw path.buildCodeFrameError(`bind:${local} is not supported. Phaze's bind: namespace handles ` +
345
+ `bind:value (text inputs, textarea) and bind:checked (checkboxes) ` +
346
+ `only. Use the manual form for other cases: ` +
347
+ `value={signal} on:input={(e) => signal.set(e.currentTarget.value)} ` +
348
+ `or similar.`);
349
+ }
350
+ const val = attr.value;
351
+ if (!val ||
352
+ val.type !== 'JSXExpressionContainer' ||
353
+ val.expression.type === 'JSXEmptyExpression') {
354
+ throw path.buildCodeFrameError(`bind:${local} requires a signal as its value (e.g. bind:${local}={mySignal}).`);
355
+ }
356
+ const signalExpr = val.expression;
357
+ if (local === 'value') {
358
+ // Element must be <input> with a text-like / unspecified /
359
+ // dynamic type, or <textarea>.
360
+ if (tagName === 'select') {
361
+ throw path.buildCodeFrameError(`bind:value on <select> is not supported. Use the manual form:\n` +
362
+ ` <select value={signal} on:change={(e) => signal.set(e.currentTarget.value)}>`);
363
+ }
364
+ if (tagName !== 'input' && tagName !== 'textarea') {
365
+ throw path.buildCodeFrameError(`bind:value is only supported on <input> (text-like types) and ` +
366
+ `<textarea>. For <${tagName ?? 'unknown'}>, use the manual form: ` +
367
+ `value={signal} on:input={(e) => signal.set(e.currentTarget.value)}.`);
368
+ }
369
+ if (tagName === 'input' && !typeIsDynamic) {
370
+ const TEXT_LIKE = new Set([
371
+ null, '', 'text', 'email', 'password', 'search', 'url', 'tel',
372
+ ]);
373
+ if (!TEXT_LIKE.has(staticType)) {
374
+ const hint = staticType === 'number'
375
+ ? '+e.currentTarget.value'
376
+ : staticType === 'date'
377
+ ? 'new Date(e.currentTarget.value)'
378
+ : 'e.currentTarget.value';
379
+ throw path.buildCodeFrameError(`bind:value on <input type="${staticType}"> is not supported. ` +
380
+ `Use the manual form with explicit coercion:\n` +
381
+ ` <input type="${staticType}" value={signal} ` +
382
+ `on:input={(e) => signal.set(${hint})} />`);
383
+ }
384
+ }
385
+ }
386
+ else {
387
+ // bind:checked: <input type="checkbox"> only (static type).
388
+ // Dynamic type → emit the basic transform; trust the user.
389
+ if (tagName !== 'input') {
390
+ throw path.buildCodeFrameError(`bind:checked is only supported on <input type="checkbox">. ` +
391
+ `For <${tagName ?? 'unknown'}>, use the manual form: ` +
392
+ `checked={signal} on:change={(e) => signal.set(e.currentTarget.checked)}.`);
393
+ }
394
+ if (!typeIsDynamic && staticType !== 'checkbox') {
395
+ throw path.buildCodeFrameError(`bind:checked is only supported on <input type="checkbox"> ` +
396
+ `(got type="${staticType ?? '(none)'}"). Use the manual form: ` +
397
+ `checked={signal} on:change={(e) => signal.set(e.currentTarget.checked)}.`);
398
+ }
399
+ }
400
+ // Emit signal pass-through as a regular attribute. Phaze's JSX
401
+ // runtime detects callable attr values (signals are callable) and
402
+ // sets up a reactive binding — same fast path as `value={signal}`
403
+ // written by hand. Placed back in kept[] in source-order position.
404
+ kept.push(types.jsxAttribute(types.jsxIdentifier(local), types.jsxExpressionContainer(signalExpr)));
405
+ const event = local === 'checked' ? 'change' : 'input';
406
+ ops.push({ kind: 'bind', event, dotProp: local, signalExpr });
407
+ state.needsRuntimeImport.add('listen');
408
+ continue;
217
409
  }
218
- out.push({ name: local, valueThunk });
410
+ // Unrecognized namespace (e.g. SVG xlink:href) leave alone.
411
+ kept.push(attr);
219
412
  }
220
413
  opening.attributes = kept;
221
- return out;
414
+ return ops;
222
415
  };
223
- // Build the IIFE that wraps a JSX element + applies its `use:` directives
224
- // after the element exists. The directive identifier is referenced by
225
- // name from the surrounding scope same as if the user wrote a regular
226
- // function call. Phaze's runtime returns DOM nodes from JSX expressions,
227
- // so the element value flowing into the IIFE is always a real Element.
416
+ // Build the IIFE that wraps a JSX element + applies its post-creation
417
+ // operations after the element exists. Each op emits one expression in
418
+ // a comma-sequence; the final expression is `__el` so the IIFE returns
419
+ // the element unchanged.
228
420
  //
229
- // Output shape (single directive):
421
+ // Output shape (single use: directive):
230
422
  // ((__el) => (autofocus(__el, () => true), __el))(<input />)
231
423
  //
232
- // We use comma-sequence + return-by-expression so the arrow stays
233
- // concise (a body-less arrow). Multiple directives chain via further
234
- // commas. For nested IIFE results (one directive's IIFE feeding into
235
- // another's wrapper) the runtime composes naturally because each IIFE
236
- // returns the element unchanged.
237
- const buildDirectiveIIFE = (jsx, directives, types) => {
424
+ // Output shape (mixed use: + class: + bind:):
425
+ // ((__el) => (
426
+ // autofocus(__el, () => true),
427
+ // effect(() => __el.classList.toggle('invalid', !valid())),
428
+ // listen(__el, 'input', (e) => text.set(e.currentTarget.value)),
429
+ // __el
430
+ // ))(<input value={text} />)
431
+ const buildPostCreationIIFE = (jsx, ops, types) => {
238
432
  const elId = types.identifier('__el');
239
- // (autofocus(__el, () => true), tooltip(__el, () => 'hi'), __el)
240
- const exprs = directives.map((d) => types.callExpression(types.identifier(d.name), [elId, d.valueThunk]));
433
+ const exprs = ops.map((op) => {
434
+ if (op.kind === 'use') {
435
+ return types.callExpression(types.identifier(op.name), [elId, op.valueThunk]);
436
+ }
437
+ if (op.kind === 'class') {
438
+ // effect(() => __el.classList.toggle('NAME', !!valueExpr))
439
+ // Skip the `!!` coercion when valueExpr is already a BooleanLiteral
440
+ // — `!!true` and `!!false` are pointless in emitted code.
441
+ const coerced = op.valueExpr.type === 'BooleanLiteral'
442
+ ? op.valueExpr
443
+ : types.unaryExpression('!', types.unaryExpression('!', op.valueExpr));
444
+ const toggle = types.callExpression(types.memberExpression(types.memberExpression(elId, types.identifier('classList')), types.identifier('toggle')), [types.stringLiteral(op.className), coerced]);
445
+ const arrow = types.arrowFunctionExpression([], toggle);
446
+ return types.callExpression(types.identifier('effect'), [arrow]);
447
+ }
448
+ // op.kind === 'bind'
449
+ // listen(__el, 'EVENT', (e) => signal.set(e.currentTarget.PROP))
450
+ const eParam = types.identifier('e');
451
+ const access = types.memberExpression(types.memberExpression(eParam, types.identifier('currentTarget')), types.identifier(op.dotProp));
452
+ const setCall = types.callExpression(types.memberExpression(op.signalExpr, types.identifier('set')), [access]);
453
+ const handler = types.arrowFunctionExpression([eParam], setCall);
454
+ return types.callExpression(types.identifier('listen'), [
455
+ elId,
456
+ types.stringLiteral(op.event),
457
+ handler,
458
+ ]);
459
+ });
241
460
  exprs.push(elId);
242
- const body = exprs.length === 1
243
- ? exprs[0] // unreachable — exprs always has >=2 entries (calls + __el) but TS narrowing
244
- : types.sequenceExpression(exprs);
461
+ const body = exprs.length === 1 ? exprs[0] : types.sequenceExpression(exprs);
245
462
  const arrow = types.arrowFunctionExpression([elId], body);
246
463
  return types.callExpression(arrow, [jsx]);
247
464
  };
@@ -357,8 +574,36 @@ const shouldWrapExpression = (expr) => {
357
574
  return true;
358
575
  if (expr.type === 'JSXElement' || expr.type === 'JSXFragment')
359
576
  return true;
577
+ // Our own use:/class:/bind: post-creation IIFE — `(__el => (…))(jsx)`
578
+ // — is a CallExpression containing JSX as its call argument. The IIFE
579
+ // returns a Node eagerly when invoked, so the value flowing into the
580
+ // outer JSX child position is already a constructed Node. Wrapping it
581
+ // in `() =>` would route it through appendDynamicChild's untrack-
582
+ // then-effect path, which calls the thunk twice. Both calls would
583
+ // re-evaluate the inner JSX AND re-run the directives (parallax,
584
+ // warp, etc.), orphaning one mount with active bindings and leaving
585
+ // the visible element competing with the orphan's scroll/spring
586
+ // subscriptions — observable as inverted parallax direction, double
587
+ // listeners, and elements appearing where they shouldn't.
588
+ //
589
+ // The check is signature-specific: callee is an ArrowFunctionExpression
590
+ // taking exactly `__el` as its parameter. That matches every IIFE
591
+ // emitted by buildPostCreationIIFE and nothing user-written.
592
+ if (isUseDirectiveIIFE(expr))
593
+ return false;
360
594
  return containsJSX(expr);
361
595
  };
596
+ const isUseDirectiveIIFE = (expr) => {
597
+ if (expr.type !== 'CallExpression')
598
+ return false;
599
+ const callee = expr.callee;
600
+ if (callee.type !== 'ArrowFunctionExpression')
601
+ return false;
602
+ if (callee.params.length !== 1)
603
+ return false;
604
+ const p = callee.params[0];
605
+ return p?.type === 'Identifier' && p.name === '__el';
606
+ };
362
607
  const containsJSX = (node) => {
363
608
  if (!node || typeof node !== 'object')
364
609
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"babel-plugin.js","sourceRoot":"","sources":["../src/babel-plugin.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,uEAAuE;AACvE,kEAAkE;AAClE,qEAAqE;AACrE,wEAAwE;AACxE,mEAAmE;AACnE,4BAA4B;AAC5B,EAAE;AACF,2DAA2D;AAC3D,EAAE;AACF,kCAAkC;AAClC,EAAE;AACF,qEAAqE;AACrE,kDAAkD;AAClD,EAAE;AACF,0BAA0B;AAC1B,MAAM;AACN,kCAAkC;AAClC,EAAE;AACF,sEAAsE;AACtE,EAAE;AACF,6CAA6C;AAC7C,uDAAuD;AACvD,uEAAuE;AACvE,2BAA2B;AAC3B,EAAE;AACF,wEAAwE;AACxE,mEAAmE;AACnE,EAAE;AACF,qEAAqE;AACrE,yEAAyE;AACzE,8BAA8B;AAI9B,8DAA8D;AAC9D,OAAO,SAAS,MAAM,0BAA0B,CAAA;AAgBhD,MAAM,UAAU,GAAG,wBAAwB,CAAA;AAE3C,MAAM,YAAY,GAAG,CAAC,KAAY,EAAuB,EAAE;IACzD,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAEvB,OAAO;QACL,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,SAAS,CAAC,OAAO,IAAI,SAAS;QACxC,OAAO,EAAE;YACP,OAAO,CAAC,KAAK,EAAE,KAAK;gBAClB,8DAA8D;gBAC9D,+DAA+D;gBAC/D,sCAAsC;gBACtC,KAAK,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAA;YAC7B,CAAC;YACD,iBAAiB,CAAC,IAAI,EAAE,KAAK;gBAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,UAAU;oBAAE,OAAM;gBACjD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxC,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB;wBAAE,SAAQ;oBAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY;wBAClD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;wBACpB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAA;oBACvB,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;wBACzF,KAAK,CAAC,SAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;oBACjD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,cAAc,CAAC,IAAI,EAAE,KAAK;gBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;gBAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;oBAAE,OAAM;gBACxC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBACjD,IAAI,CAAC,OAAO;oBAAE,OAAM;gBAEpB,yDAAyD;gBACzD,IAAI,OAAO,KAAK,GAAG;oBAAE,OAAM;gBAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAClC,IAAI,CAAC,GAAG;oBAAE,OAAM;gBAEhB,+DAA+D;gBAC/D,iEAAiE;gBACjE,gEAAgE;gBAChE,IACE,GAAG,CAAC,IAAI,KAAK,yBAAyB;oBACtC,GAAG,CAAC,IAAI,KAAK,oBAAoB;oBACjC,GAAG,CAAC,IAAI,KAAK,eAAe,EAC5B,CAAC;oBACD,IAAI,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;wBAClE,0DAA0D;wBAC1D,yDAAyD;wBACzD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;oBACvB,CAAC;oBACD,OAAM;gBACR,CAAC;gBAED,oCAAoC;gBACpC,MAAM,KAAK,GAAG,KAAK,CAAC,uBAAuB,CAAC,EAAE,EAAE,GAAmB,CAAC,CAAA;gBACpE,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;oBACxB,yDAAyD;oBACzD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;gBACzB,CAAC;qBAAM,CAAC;oBACN,iDAAiD;oBACjD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;gBAChC,CAAC;YACH,CAAC;YACD,UAAU,CAAC,IAAI;gBACb,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAA;gBACxC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBACpC,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBACvD,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,0DAA0D;oBAC1D,qDAAqD;oBACrD,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;oBACjC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBACpC,CAAC;qBAAM,CAAC;oBACN,sDAAsD;oBACtD,0DAA0D;oBAC1D,2DAA2D;oBAC3D,8CAA8C;oBAC9C,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAC9C,CAAC;gBACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,0DAA0D;oBAC1D,yDAAyD;oBACzD,4DAA4D;oBAC5D,wDAAwD;oBACxD,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAA;gBACpE,CAAC;YACH,CAAC;YACD,WAAW,CAAC,IAAI;gBACd,+CAA+C;gBAC/C,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAC9C,CAAC;SACF;KACF,CAAA;AACH,CAAC,CAAA;AAED,sEAAsE;AACtE,yEAAyE;AACzE,wEAAwE;AACxE,0EAA0E;AAC1E,sEAAsE;AACtE,oEAAoE;AACpE,kEAAkE;AAClE,6CAA6C;AAC7C,MAAM,oBAAoB,GAAG,CAC3B,OAA4B,EAC5B,KAAe,EACT,EAAE;IACR,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc;YAAE,SAAQ;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB;YAAE,SAAQ;QAE/C,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAA;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;QAE5B,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;YACnB,yCAAyC;YACzC,gEAAgE;YAChE,gEAAgE;YAChE,6CAA6C;YAC7C,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA;YACtB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;gBACjD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAA;gBAC3B,IACE,IAAI,CAAC,IAAI,KAAK,oBAAoB;oBAClC,IAAI,CAAC,IAAI,KAAK,yBAAyB;oBACvC,IAAI,CAAC,IAAI,KAAK,oBAAoB,EAClC,CAAC;oBACD,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAoB,CAAC,CAAA;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACvB,gEAAgE;YAChE,iEAAiE;YACjE,uDAAuD;YACvD,8DAA8D;YAC9D,2DAA2D;YAC3D,MAAM,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACnE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACxC,CAAC;QACD,mEAAmE;QACnE,6DAA6D;QAC7D,oCAAoC;IACtC,CAAC;AACH,CAAC,CAAA;AAED,uEAAuE;AACvE,uEAAuE;AACvE,qEAAqE;AACrE,uEAAuE;AACvE,yDAAyD;AACzD,MAAM,oBAAoB,GAAG,CAC3B,OAA4B,EAC5B,KAAe,EACoC,EAAE;IACrD,MAAM,GAAG,GAAsD,EAAE,CAAA;IACjE,MAAM,IAAI,GAAsC,EAAE,CAAA;IAClD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACf,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACvE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACf,SAAQ;QACV,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;QAE5B,IAAI,UAAwB,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA;QACtB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAA;YAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBACvC,UAAU,GAAG,KAAK,CAAC,uBAAuB,CAAC,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;YAC5E,CAAC;iBAAM,IACL,IAAI,CAAC,IAAI,KAAK,yBAAyB;gBACvC,IAAI,CAAC,IAAI,KAAK,oBAAoB,EAClC,CAAC;gBACD,+DAA+D;gBAC/D,UAAU,GAAG,IAAoB,CAAA;YACnC,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,KAAK,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAoB,CAAC,CAAA;YACtE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,mEAAmE;YACnE,UAAU,GAAG,KAAK,CAAC,uBAAuB,CAAC,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5E,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;IACvC,CAAC;IACD,OAAO,CAAC,UAAU,GAAG,IAAI,CAAA;IACzB,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,0EAA0E;AAC1E,sEAAsE;AACtE,wEAAwE;AACxE,yEAAyE;AACzE,uEAAuE;AACvE,EAAE;AACF,mCAAmC;AACnC,+DAA+D;AAC/D,EAAE;AACF,kEAAkE;AAClE,qEAAqE;AACrE,qEAAqE;AACrE,sEAAsE;AACtE,iCAAiC;AACjC,MAAM,kBAAkB,GAAG,CACzB,GAAiB,EACjB,UAA6D,EAC7D,KAAe,EACG,EAAE;IACpB,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACrC,iEAAiE;IACjE,MAAM,KAAK,GAAmB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjD,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CACrE,CAAA;IACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC;QAC7B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAE,6EAA6E;QAC1F,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;IACzD,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;AAC3C,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CACrB,IAAmE,EAC1D,EAAE;IACX,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAClC,uEAAuE;QACvE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IACD,gEAAgE;IAChE,OAAO,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CACtB,EAAgB,EAChB,KAAe,EACT,EAAE;IACR,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAA;IAC5B,+DAA+D;IAC/D,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE;QAC/C,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,KAAK,CAAA;QAC/D,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAEnC,iEAAiE;IACjE,uDAAuD;IACvD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAE,CAAA;QAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAA;YAC5B,IACE,IAAI,CAAC,IAAI,KAAK,yBAAyB;gBACvC,IAAI,CAAC,IAAI,KAAK,oBAAoB,EAClC,CAAC;gBACD,OAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,4DAA4D;IAC5D,mDAAmD;IACnD,IAAI,IAAkB,CAAA;IACtB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAE,CAAA;QAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC9D,IAAI,GAAG,IAAI,CAAA;QACb,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;YAClD,oDAAoD;YACpD,IAAI,GAAG,IAAI,CAAC,UAA0B,CAAA;QACxC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxC,CAAC;aAAM,CAAC;YACN,4CAA4C;YAC5C,IAAI,GAAG,KAAK,CAAC,WAAW,CACtB,KAAK,CAAC,kBAAkB,EAAE,EAC1B,KAAK,CAAC,kBAAkB,EAAE,EAC1B,QAAQ,CACT,CAAA;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,KAAK,CAAC,WAAW,CACtB,KAAK,CAAC,kBAAkB,EAAE,EAC1B,KAAK,CAAC,kBAAkB,EAAE,EAC1B,QAAQ,CACT,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IACrD,EAAE,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;AACrD,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CACzB,OAA4B,EAC5B,KAAe,EACT,EAAE;IACR,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc;YAAE,SAAQ;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA;QACtB,IAAI,CAAC,GAAG;YAAE,SAAQ;QAElB,IAAI,GAAG,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAA;YAC3B,mEAAmE;YACnE,oBAAoB;YACpB,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB;gBAAE,SAAQ;YAChD,qCAAqC;YACrC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC9D,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;QACD,oEAAoE;IACtE,CAAC;AACH,CAAC,CAAA;AAED,sEAAsE;AACtE,oCAAoC;AACpC,mDAAmD;AACnD,8CAA8C;AAC9C,yCAAyC;AACzC,iDAAiD;AACjD,EAAE;AACF,+DAA+D;AAC/D,gEAAgE;AAChE,uEAAuE;AACvE,MAAM,0BAA0B,GAAG,CACjC,EAAgC,EAChC,KAAe,EACT,EAAE;IACR,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,IAAI,KAAK,wBAAwB;YAAE,SAAQ;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAA;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB;YAAE,SAAQ;QAChD,oDAAoD;QACpD,IACE,IAAI,CAAC,IAAI,KAAK,yBAAyB;YACvC,IAAI,CAAC,IAAI,KAAK,oBAAoB,EAClC,CAAC;YACD,SAAQ;QACV,CAAC;QACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,IAAkB,EAAW,EAAE;IAC3D,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB;QAAE,OAAO,IAAI,CAAA;IACtD,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB;QAAE,OAAO,IAAI,CAAA;IAClD,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,IAAI,CAAA;IAC1E,OAAO,WAAW,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,IAAa,EAAW,EAAE;IAC7C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,IAAI,WAAW,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAA;QACrD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,CAAC,GAAG,IAA+C,CAAA;IACzD,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,IAAI,CAAA;IACpE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAQ;QACtF,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;IACtC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"babel-plugin.js","sourceRoot":"","sources":["../src/babel-plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@madenowhere/phaze-compile",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "Compiler for Phaze JSX — hoists component children to thunks so user code matches React/Preact JSX shape",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -35,10 +35,6 @@
35
35
  "dist",
36
36
  "README.md"
37
37
  ],
38
- "scripts": {
39
- "build": "tsc -p tsconfig.json",
40
- "dev": "tsc -p tsconfig.json --watch"
41
- },
42
38
  "engines": {
43
39
  "node": ">=25"
44
40
  },
@@ -50,5 +46,9 @@
50
46
  "@babel/preset-typescript": "^7.26.0",
51
47
  "@babel/types": "^7.26.0",
52
48
  "@types/babel__core": "^7.20.5"
49
+ },
50
+ "scripts": {
51
+ "build": "tsc -p tsconfig.json",
52
+ "dev": "tsc -p tsconfig.json --watch"
53
53
  }
54
- }
54
+ }