@stacksjs/stx 0.2.83 → 0.2.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/app-shell.js +6 -6
  2. package/dist/build-assets.js +6 -6
  3. package/dist/build-mode-detector.js +6 -6
  4. package/dist/build-views.js +6 -6
  5. package/dist/build.js +6 -6
  6. package/dist/caching.js +6 -6
  7. package/dist/cli.js +7 -7
  8. package/dist/component-processing.js +6 -6
  9. package/dist/component-renderer.js +6 -6
  10. package/dist/components.js +6 -6
  11. package/dist/dev-server/index.js +6 -6
  12. package/dist/dev-server/serve-app.js +6 -6
  13. package/dist/dev-server/serve-file.js +6 -6
  14. package/dist/dev-server/serve-markdown.js +6 -6
  15. package/dist/dev-server/serve-multi.js +6 -6
  16. package/dist/dev-server.js +6 -6
  17. package/dist/docs.js +6 -6
  18. package/dist/dynamic-components.js +6 -6
  19. package/dist/includes.js +6 -6
  20. package/dist/index.js +6 -6
  21. package/dist/interactive.js +6 -6
  22. package/dist/lazy-loader.js +6 -6
  23. package/dist/plugin.js +6 -6
  24. package/dist/process.js +6 -6
  25. package/dist/production-builder.js +6 -6
  26. package/dist/production-server.js +6 -6
  27. package/dist/pwa/index.js +6 -6
  28. package/dist/pwa/offline.js +6 -6
  29. package/dist/pwa.js +6 -6
  30. package/dist/render.js +6 -6
  31. package/dist/runtime-injection.js +6 -6
  32. package/dist/serve.js +6 -6
  33. package/dist/signal-processing.js +6 -6
  34. package/dist/signals.js +6 -6
  35. package/dist/site-builder/build.js +6 -6
  36. package/dist/site-builder/index.js +6 -6
  37. package/dist/ssg.js +6 -6
  38. package/dist/ssr.js +6 -6
  39. package/dist/story/cli.js +6 -6
  40. package/dist/story/commands/dev.js +6 -6
  41. package/dist/story/commands/index.js +6 -6
  42. package/dist/story/index.js +6 -6
  43. package/dist/story/renderer.js +6 -6
  44. package/dist/story/server.js +6 -6
  45. package/dist/story/visual-testing.js +6 -6
  46. package/dist/streaming.js +6 -6
  47. package/dist/template-compiler.js +6 -6
  48. package/dist/template-hydrator.js +6 -6
  49. package/dist/testing.js +6 -6
  50. package/dist/utils.js +6 -6
  51. package/dist/web-components.js +6 -6
  52. package/package.json +5 -5
@@ -8736,10 +8736,10 @@ else {
8736
8736
  var root = scriptEl ? scriptEl.nextElementSibling : null;
8737
8737
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
8738
8738
 
8739
- // SPA fallback: during router navigation, script is appended to <body>
8739
+ // SPA fallback: during router navigation, script is appended to body>
8740
8740
  // (not inside the content container), so nextElementSibling won't find the page content.
8741
8741
  // Only use fallback when we genuinely couldn't find a suitable root element.
8742
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
8742
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
8743
8743
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
8744
8744
  var needsFallback = !root || root === document.body
8745
8745
  || (root && root.tagName === 'SCRIPT');
@@ -9058,7 +9058,7 @@ else {
9058
9058
  mountCallbacks.forEach(fn => fn());
9059
9059
  });
9060
9060
 
9061
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
9061
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
9062
9062
  // top-level element with data-stx (signal-processing.ts marks one element),
9063
9063
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
9064
9064
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -9155,7 +9155,7 @@ else {
9155
9155
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
9156
9156
  });
9157
9157
 
9158
- // Process <head> elements (title, meta) that may contain {{ }} expressions
9158
+ // Process head> elements (title, meta) that may contain {{ }} expressions
9159
9159
  // Use componentScope which now contains variables from processed components
9160
9160
  const headElements = document.querySelectorAll('head title, head meta[content]');
9161
9161
  headElements.forEach(el => {
@@ -9351,7 +9351,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9351
9351
 
9352
9352
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
9353
9353
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
9354
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
9354
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
9355
9355
  var usedLatestSetup = false;
9356
9356
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
9357
9357
  try {
@@ -9435,7 +9435,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9435
9435
 
9436
9436
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
9437
9437
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
9438
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
9438
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
9439
9439
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
9440
9440
  if (!container.__stx_scope) {
9441
9441
  // Dispose previous effects on the container (from prior navigation)
@@ -8714,10 +8714,10 @@ else {
8714
8714
  var root = scriptEl ? scriptEl.nextElementSibling : null;
8715
8715
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
8716
8716
 
8717
- // SPA fallback: during router navigation, script is appended to <body>
8717
+ // SPA fallback: during router navigation, script is appended to body>
8718
8718
  // (not inside the content container), so nextElementSibling won't find the page content.
8719
8719
  // Only use fallback when we genuinely couldn't find a suitable root element.
8720
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
8720
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
8721
8721
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
8722
8722
  var needsFallback = !root || root === document.body
8723
8723
  || (root && root.tagName === 'SCRIPT');
@@ -9036,7 +9036,7 @@ else {
9036
9036
  mountCallbacks.forEach(fn => fn());
9037
9037
  });
9038
9038
 
9039
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
9039
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
9040
9040
  // top-level element with data-stx (signal-processing.ts marks one element),
9041
9041
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
9042
9042
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -9133,7 +9133,7 @@ else {
9133
9133
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
9134
9134
  });
9135
9135
 
9136
- // Process <head> elements (title, meta) that may contain {{ }} expressions
9136
+ // Process head> elements (title, meta) that may contain {{ }} expressions
9137
9137
  // Use componentScope which now contains variables from processed components
9138
9138
  const headElements = document.querySelectorAll('head title, head meta[content]');
9139
9139
  headElements.forEach(el => {
@@ -9329,7 +9329,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9329
9329
 
9330
9330
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
9331
9331
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
9332
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
9332
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
9333
9333
  var usedLatestSetup = false;
9334
9334
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
9335
9335
  try {
@@ -9413,7 +9413,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9413
9413
 
9414
9414
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
9415
9415
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
9416
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
9416
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
9417
9417
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
9418
9418
  if (!container.__stx_scope) {
9419
9419
  // Dispose previous effects on the container (from prior navigation)
@@ -8548,10 +8548,10 @@ else {
8548
8548
  var root = scriptEl ? scriptEl.nextElementSibling : null;
8549
8549
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
8550
8550
 
8551
- // SPA fallback: during router navigation, script is appended to <body>
8551
+ // SPA fallback: during router navigation, script is appended to body>
8552
8552
  // (not inside the content container), so nextElementSibling won't find the page content.
8553
8553
  // Only use fallback when we genuinely couldn't find a suitable root element.
8554
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
8554
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
8555
8555
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
8556
8556
  var needsFallback = !root || root === document.body
8557
8557
  || (root && root.tagName === 'SCRIPT');
@@ -8870,7 +8870,7 @@ else {
8870
8870
  mountCallbacks.forEach(fn => fn());
8871
8871
  });
8872
8872
 
8873
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
8873
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
8874
8874
  // top-level element with data-stx (signal-processing.ts marks one element),
8875
8875
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
8876
8876
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -8967,7 +8967,7 @@ else {
8967
8967
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
8968
8968
  });
8969
8969
 
8970
- // Process <head> elements (title, meta) that may contain {{ }} expressions
8970
+ // Process head> elements (title, meta) that may contain {{ }} expressions
8971
8971
  // Use componentScope which now contains variables from processed components
8972
8972
  const headElements = document.querySelectorAll('head title, head meta[content]');
8973
8973
  headElements.forEach(el => {
@@ -9163,7 +9163,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9163
9163
 
9164
9164
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
9165
9165
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
9166
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
9166
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
9167
9167
  var usedLatestSetup = false;
9168
9168
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
9169
9169
  try {
@@ -9247,7 +9247,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9247
9247
 
9248
9248
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
9249
9249
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
9250
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
9250
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
9251
9251
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
9252
9252
  if (!container.__stx_scope) {
9253
9253
  // Dispose previous effects on the container (from prior navigation)
@@ -8736,10 +8736,10 @@ else {
8736
8736
  var root = scriptEl ? scriptEl.nextElementSibling : null;
8737
8737
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
8738
8738
 
8739
- // SPA fallback: during router navigation, script is appended to <body>
8739
+ // SPA fallback: during router navigation, script is appended to body>
8740
8740
  // (not inside the content container), so nextElementSibling won't find the page content.
8741
8741
  // Only use fallback when we genuinely couldn't find a suitable root element.
8742
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
8742
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
8743
8743
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
8744
8744
  var needsFallback = !root || root === document.body
8745
8745
  || (root && root.tagName === 'SCRIPT');
@@ -9058,7 +9058,7 @@ else {
9058
9058
  mountCallbacks.forEach(fn => fn());
9059
9059
  });
9060
9060
 
9061
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
9061
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
9062
9062
  // top-level element with data-stx (signal-processing.ts marks one element),
9063
9063
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
9064
9064
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -9155,7 +9155,7 @@ else {
9155
9155
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
9156
9156
  });
9157
9157
 
9158
- // Process <head> elements (title, meta) that may contain {{ }} expressions
9158
+ // Process head> elements (title, meta) that may contain {{ }} expressions
9159
9159
  // Use componentScope which now contains variables from processed components
9160
9160
  const headElements = document.querySelectorAll('head title, head meta[content]');
9161
9161
  headElements.forEach(el => {
@@ -9351,7 +9351,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9351
9351
 
9352
9352
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
9353
9353
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
9354
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
9354
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
9355
9355
  var usedLatestSetup = false;
9356
9356
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
9357
9357
  try {
@@ -9435,7 +9435,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9435
9435
 
9436
9436
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
9437
9437
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
9438
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
9438
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
9439
9439
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
9440
9440
  if (!container.__stx_scope) {
9441
9441
  // Dispose previous effects on the container (from prior navigation)
@@ -6486,10 +6486,10 @@ else {
6486
6486
  var root = scriptEl ? scriptEl.nextElementSibling : null;
6487
6487
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
6488
6488
 
6489
- // SPA fallback: during router navigation, script is appended to <body>
6489
+ // SPA fallback: during router navigation, script is appended to body>
6490
6490
  // (not inside the content container), so nextElementSibling won't find the page content.
6491
6491
  // Only use fallback when we genuinely couldn't find a suitable root element.
6492
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
6492
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
6493
6493
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
6494
6494
  var needsFallback = !root || root === document.body
6495
6495
  || (root && root.tagName === 'SCRIPT');
@@ -6808,7 +6808,7 @@ else {
6808
6808
  mountCallbacks.forEach(fn => fn());
6809
6809
  });
6810
6810
 
6811
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
6811
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
6812
6812
  // top-level element with data-stx (signal-processing.ts marks one element),
6813
6813
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
6814
6814
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -6905,7 +6905,7 @@ else {
6905
6905
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
6906
6906
  });
6907
6907
 
6908
- // Process <head> elements (title, meta) that may contain {{ }} expressions
6908
+ // Process head> elements (title, meta) that may contain {{ }} expressions
6909
6909
  // Use componentScope which now contains variables from processed components
6910
6910
  const headElements = document.querySelectorAll('head title, head meta[content]');
6911
6911
  headElements.forEach(el => {
@@ -7101,7 +7101,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
7101
7101
 
7102
7102
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
7103
7103
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
7104
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
7104
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
7105
7105
  var usedLatestSetup = false;
7106
7106
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
7107
7107
  try {
@@ -7185,7 +7185,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
7185
7185
 
7186
7186
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
7187
7187
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
7188
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
7188
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
7189
7189
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
7190
7190
  if (!container.__stx_scope) {
7191
7191
  // Dispose previous effects on the container (from prior navigation)
@@ -6725,10 +6725,10 @@ else {
6725
6725
  var root = scriptEl ? scriptEl.nextElementSibling : null;
6726
6726
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
6727
6727
 
6728
- // SPA fallback: during router navigation, script is appended to <body>
6728
+ // SPA fallback: during router navigation, script is appended to body>
6729
6729
  // (not inside the content container), so nextElementSibling won't find the page content.
6730
6730
  // Only use fallback when we genuinely couldn't find a suitable root element.
6731
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
6731
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
6732
6732
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
6733
6733
  var needsFallback = !root || root === document.body
6734
6734
  || (root && root.tagName === 'SCRIPT');
@@ -7047,7 +7047,7 @@ else {
7047
7047
  mountCallbacks.forEach(fn => fn());
7048
7048
  });
7049
7049
 
7050
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
7050
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
7051
7051
  // top-level element with data-stx (signal-processing.ts marks one element),
7052
7052
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
7053
7053
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -7144,7 +7144,7 @@ else {
7144
7144
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
7145
7145
  });
7146
7146
 
7147
- // Process <head> elements (title, meta) that may contain {{ }} expressions
7147
+ // Process head> elements (title, meta) that may contain {{ }} expressions
7148
7148
  // Use componentScope which now contains variables from processed components
7149
7149
  const headElements = document.querySelectorAll('head title, head meta[content]');
7150
7150
  headElements.forEach(el => {
@@ -7340,7 +7340,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
7340
7340
 
7341
7341
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
7342
7342
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
7343
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
7343
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
7344
7344
  var usedLatestSetup = false;
7345
7345
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
7346
7346
  try {
@@ -7424,7 +7424,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
7424
7424
 
7425
7425
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
7426
7426
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
7427
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
7427
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
7428
7428
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
7429
7429
  if (!container.__stx_scope) {
7430
7430
  // Dispose previous effects on the container (from prior navigation)
package/dist/docs.js CHANGED
@@ -8736,10 +8736,10 @@ else {
8736
8736
  var root = scriptEl ? scriptEl.nextElementSibling : null;
8737
8737
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
8738
8738
 
8739
- // SPA fallback: during router navigation, script is appended to <body>
8739
+ // SPA fallback: during router navigation, script is appended to body>
8740
8740
  // (not inside the content container), so nextElementSibling won't find the page content.
8741
8741
  // Only use fallback when we genuinely couldn't find a suitable root element.
8742
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
8742
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
8743
8743
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
8744
8744
  var needsFallback = !root || root === document.body
8745
8745
  || (root && root.tagName === 'SCRIPT');
@@ -9058,7 +9058,7 @@ else {
9058
9058
  mountCallbacks.forEach(fn => fn());
9059
9059
  });
9060
9060
 
9061
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
9061
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
9062
9062
  // top-level element with data-stx (signal-processing.ts marks one element),
9063
9063
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
9064
9064
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -9155,7 +9155,7 @@ else {
9155
9155
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
9156
9156
  });
9157
9157
 
9158
- // Process <head> elements (title, meta) that may contain {{ }} expressions
9158
+ // Process head> elements (title, meta) that may contain {{ }} expressions
9159
9159
  // Use componentScope which now contains variables from processed components
9160
9160
  const headElements = document.querySelectorAll('head title, head meta[content]');
9161
9161
  headElements.forEach(el => {
@@ -9351,7 +9351,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9351
9351
 
9352
9352
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
9353
9353
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
9354
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
9354
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
9355
9355
  var usedLatestSetup = false;
9356
9356
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
9357
9357
  try {
@@ -9435,7 +9435,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9435
9435
 
9436
9436
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
9437
9437
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
9438
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
9438
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
9439
9439
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
9440
9440
  if (!container.__stx_scope) {
9441
9441
  // Dispose previous effects on the container (from prior navigation)
@@ -7235,10 +7235,10 @@ else {
7235
7235
  var root = scriptEl ? scriptEl.nextElementSibling : null;
7236
7236
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
7237
7237
 
7238
- // SPA fallback: during router navigation, script is appended to <body>
7238
+ // SPA fallback: during router navigation, script is appended to body>
7239
7239
  // (not inside the content container), so nextElementSibling won't find the page content.
7240
7240
  // Only use fallback when we genuinely couldn't find a suitable root element.
7241
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
7241
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
7242
7242
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
7243
7243
  var needsFallback = !root || root === document.body
7244
7244
  || (root && root.tagName === 'SCRIPT');
@@ -7557,7 +7557,7 @@ else {
7557
7557
  mountCallbacks.forEach(fn => fn());
7558
7558
  });
7559
7559
 
7560
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
7560
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
7561
7561
  // top-level element with data-stx (signal-processing.ts marks one element),
7562
7562
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
7563
7563
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -7654,7 +7654,7 @@ else {
7654
7654
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
7655
7655
  });
7656
7656
 
7657
- // Process <head> elements (title, meta) that may contain {{ }} expressions
7657
+ // Process head> elements (title, meta) that may contain {{ }} expressions
7658
7658
  // Use componentScope which now contains variables from processed components
7659
7659
  const headElements = document.querySelectorAll('head title, head meta[content]');
7660
7660
  headElements.forEach(el => {
@@ -7850,7 +7850,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
7850
7850
 
7851
7851
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
7852
7852
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
7853
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
7853
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
7854
7854
  var usedLatestSetup = false;
7855
7855
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
7856
7856
  try {
@@ -7934,7 +7934,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
7934
7934
 
7935
7935
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
7936
7936
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
7937
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
7937
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
7938
7938
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
7939
7939
  if (!container.__stx_scope) {
7940
7940
  // Dispose previous effects on the container (from prior navigation)
package/dist/includes.js CHANGED
@@ -6943,10 +6943,10 @@ else {
6943
6943
  var root = scriptEl ? scriptEl.nextElementSibling : null;
6944
6944
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
6945
6945
 
6946
- // SPA fallback: during router navigation, script is appended to <body>
6946
+ // SPA fallback: during router navigation, script is appended to body>
6947
6947
  // (not inside the content container), so nextElementSibling won't find the page content.
6948
6948
  // Only use fallback when we genuinely couldn't find a suitable root element.
6949
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
6949
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
6950
6950
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
6951
6951
  var needsFallback = !root || root === document.body
6952
6952
  || (root && root.tagName === 'SCRIPT');
@@ -7265,7 +7265,7 @@ else {
7265
7265
  mountCallbacks.forEach(fn => fn());
7266
7266
  });
7267
7267
 
7268
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
7268
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
7269
7269
  // top-level element with data-stx (signal-processing.ts marks one element),
7270
7270
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
7271
7271
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -7362,7 +7362,7 @@ else {
7362
7362
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
7363
7363
  });
7364
7364
 
7365
- // Process <head> elements (title, meta) that may contain {{ }} expressions
7365
+ // Process head> elements (title, meta) that may contain {{ }} expressions
7366
7366
  // Use componentScope which now contains variables from processed components
7367
7367
  const headElements = document.querySelectorAll('head title, head meta[content]');
7368
7368
  headElements.forEach(el => {
@@ -7558,7 +7558,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
7558
7558
 
7559
7559
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
7560
7560
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
7561
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
7561
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
7562
7562
  var usedLatestSetup = false;
7563
7563
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
7564
7564
  try {
@@ -7642,7 +7642,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
7642
7642
 
7643
7643
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
7644
7644
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
7645
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
7645
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
7646
7646
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
7647
7647
  if (!container.__stx_scope) {
7648
7648
  // Dispose previous effects on the container (from prior navigation)
package/dist/index.js CHANGED
@@ -8714,10 +8714,10 @@ else {
8714
8714
  var root = scriptEl ? scriptEl.nextElementSibling : null;
8715
8715
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
8716
8716
 
8717
- // SPA fallback: during router navigation, script is appended to <body>
8717
+ // SPA fallback: during router navigation, script is appended to body>
8718
8718
  // (not inside the content container), so nextElementSibling won't find the page content.
8719
8719
  // Only use fallback when we genuinely couldn't find a suitable root element.
8720
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
8720
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
8721
8721
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
8722
8722
  var needsFallback = !root || root === document.body
8723
8723
  || (root && root.tagName === 'SCRIPT');
@@ -9036,7 +9036,7 @@ else {
9036
9036
  mountCallbacks.forEach(fn => fn());
9037
9037
  });
9038
9038
 
9039
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
9039
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
9040
9040
  // top-level element with data-stx (signal-processing.ts marks one element),
9041
9041
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
9042
9042
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -9133,7 +9133,7 @@ else {
9133
9133
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
9134
9134
  });
9135
9135
 
9136
- // Process <head> elements (title, meta) that may contain {{ }} expressions
9136
+ // Process head> elements (title, meta) that may contain {{ }} expressions
9137
9137
  // Use componentScope which now contains variables from processed components
9138
9138
  const headElements = document.querySelectorAll('head title, head meta[content]');
9139
9139
  headElements.forEach(el => {
@@ -9329,7 +9329,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9329
9329
 
9330
9330
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
9331
9331
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
9332
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
9332
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
9333
9333
  var usedLatestSetup = false;
9334
9334
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
9335
9335
  try {
@@ -9413,7 +9413,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9413
9413
 
9414
9414
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
9415
9415
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
9416
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
9416
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
9417
9417
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
9418
9418
  if (!container.__stx_scope) {
9419
9419
  // Dispose previous effects on the container (from prior navigation)
@@ -8736,10 +8736,10 @@ else {
8736
8736
  var root = scriptEl ? scriptEl.nextElementSibling : null;
8737
8737
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
8738
8738
 
8739
- // SPA fallback: during router navigation, script is appended to <body>
8739
+ // SPA fallback: during router navigation, script is appended to body>
8740
8740
  // (not inside the content container), so nextElementSibling won't find the page content.
8741
8741
  // Only use fallback when we genuinely couldn't find a suitable root element.
8742
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
8742
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
8743
8743
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
8744
8744
  var needsFallback = !root || root === document.body
8745
8745
  || (root && root.tagName === 'SCRIPT');
@@ -9058,7 +9058,7 @@ else {
9058
9058
  mountCallbacks.forEach(fn => fn());
9059
9059
  });
9060
9060
 
9061
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
9061
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
9062
9062
  // top-level element with data-stx (signal-processing.ts marks one element),
9063
9063
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
9064
9064
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -9155,7 +9155,7 @@ else {
9155
9155
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
9156
9156
  });
9157
9157
 
9158
- // Process <head> elements (title, meta) that may contain {{ }} expressions
9158
+ // Process head> elements (title, meta) that may contain {{ }} expressions
9159
9159
  // Use componentScope which now contains variables from processed components
9160
9160
  const headElements = document.querySelectorAll('head title, head meta[content]');
9161
9161
  headElements.forEach(el => {
@@ -9351,7 +9351,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9351
9351
 
9352
9352
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
9353
9353
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
9354
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
9354
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
9355
9355
  var usedLatestSetup = false;
9356
9356
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
9357
9357
  try {
@@ -9435,7 +9435,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9435
9435
 
9436
9436
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
9437
9437
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
9438
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
9438
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
9439
9439
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
9440
9440
  if (!container.__stx_scope) {
9441
9441
  // Dispose previous effects on the container (from prior navigation)
@@ -8736,10 +8736,10 @@ else {
8736
8736
  var root = scriptEl ? scriptEl.nextElementSibling : null;
8737
8737
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
8738
8738
 
8739
- // SPA fallback: during router navigation, script is appended to <body>
8739
+ // SPA fallback: during router navigation, script is appended to body>
8740
8740
  // (not inside the content container), so nextElementSibling won't find the page content.
8741
8741
  // Only use fallback when we genuinely couldn't find a suitable root element.
8742
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
8742
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
8743
8743
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
8744
8744
  var needsFallback = !root || root === document.body
8745
8745
  || (root && root.tagName === 'SCRIPT');
@@ -9058,7 +9058,7 @@ else {
9058
9058
  mountCallbacks.forEach(fn => fn());
9059
9059
  });
9060
9060
 
9061
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
9061
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
9062
9062
  // top-level element with data-stx (signal-processing.ts marks one element),
9063
9063
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
9064
9064
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -9155,7 +9155,7 @@ else {
9155
9155
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
9156
9156
  });
9157
9157
 
9158
- // Process <head> elements (title, meta) that may contain {{ }} expressions
9158
+ // Process head> elements (title, meta) that may contain {{ }} expressions
9159
9159
  // Use componentScope which now contains variables from processed components
9160
9160
  const headElements = document.querySelectorAll('head title, head meta[content]');
9161
9161
  headElements.forEach(el => {
@@ -9351,7 +9351,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9351
9351
 
9352
9352
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
9353
9353
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
9354
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
9354
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
9355
9355
  var usedLatestSetup = false;
9356
9356
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
9357
9357
  try {
@@ -9435,7 +9435,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9435
9435
 
9436
9436
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
9437
9437
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
9438
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
9438
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
9439
9439
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
9440
9440
  if (!container.__stx_scope) {
9441
9441
  // Dispose previous effects on the container (from prior navigation)