@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)
@@ -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)
package/dist/ssg.js CHANGED
@@ -7283,10 +7283,10 @@ else {
7283
7283
  var root = scriptEl ? scriptEl.nextElementSibling : null;
7284
7284
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
7285
7285
 
7286
- // SPA fallback: during router navigation, script is appended to <body>
7286
+ // SPA fallback: during router navigation, script is appended to body>
7287
7287
  // (not inside the content container), so nextElementSibling won't find the page content.
7288
7288
  // Only use fallback when we genuinely couldn't find a suitable root element.
7289
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
7289
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
7290
7290
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
7291
7291
  var needsFallback = !root || root === document.body
7292
7292
  || (root && root.tagName === 'SCRIPT');
@@ -7605,7 +7605,7 @@ else {
7605
7605
  mountCallbacks.forEach(fn => fn());
7606
7606
  });
7607
7607
 
7608
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
7608
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
7609
7609
  // top-level element with data-stx (signal-processing.ts marks one element),
7610
7610
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
7611
7611
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -7702,7 +7702,7 @@ else {
7702
7702
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
7703
7703
  });
7704
7704
 
7705
- // Process <head> elements (title, meta) that may contain {{ }} expressions
7705
+ // Process head> elements (title, meta) that may contain {{ }} expressions
7706
7706
  // Use componentScope which now contains variables from processed components
7707
7707
  const headElements = document.querySelectorAll('head title, head meta[content]');
7708
7708
  headElements.forEach(el => {
@@ -7898,7 +7898,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
7898
7898
 
7899
7899
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
7900
7900
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
7901
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
7901
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
7902
7902
  var usedLatestSetup = false;
7903
7903
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
7904
7904
  try {
@@ -7982,7 +7982,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
7982
7982
 
7983
7983
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
7984
7984
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
7985
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
7985
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
7986
7986
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
7987
7987
  if (!container.__stx_scope) {
7988
7988
  // Dispose previous effects on the container (from prior navigation)
package/dist/ssr.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)
package/dist/story/cli.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)
@@ -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)
@@ -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)
@@ -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)
package/dist/streaming.js CHANGED
@@ -6295,10 +6295,10 @@ else {
6295
6295
  var root = scriptEl ? scriptEl.nextElementSibling : null;
6296
6296
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
6297
6297
 
6298
- // SPA fallback: during router navigation, script is appended to <body>
6298
+ // SPA fallback: during router navigation, script is appended to body>
6299
6299
  // (not inside the content container), so nextElementSibling won't find the page content.
6300
6300
  // Only use fallback when we genuinely couldn't find a suitable root element.
6301
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
6301
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
6302
6302
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
6303
6303
  var needsFallback = !root || root === document.body
6304
6304
  || (root && root.tagName === 'SCRIPT');
@@ -6617,7 +6617,7 @@ else {
6617
6617
  mountCallbacks.forEach(fn => fn());
6618
6618
  });
6619
6619
 
6620
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
6620
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
6621
6621
  // top-level element with data-stx (signal-processing.ts marks one element),
6622
6622
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
6623
6623
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -6714,7 +6714,7 @@ else {
6714
6714
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
6715
6715
  });
6716
6716
 
6717
- // Process <head> elements (title, meta) that may contain {{ }} expressions
6717
+ // Process head> elements (title, meta) that may contain {{ }} expressions
6718
6718
  // Use componentScope which now contains variables from processed components
6719
6719
  const headElements = document.querySelectorAll('head title, head meta[content]');
6720
6720
  headElements.forEach(el => {
@@ -6910,7 +6910,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
6910
6910
 
6911
6911
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
6912
6912
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
6913
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
6913
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
6914
6914
  var usedLatestSetup = false;
6915
6915
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
6916
6916
  try {
@@ -6994,7 +6994,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
6994
6994
 
6995
6995
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
6996
6996
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
6997
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
6997
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
6998
6998
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
6999
6999
  if (!container.__stx_scope) {
7000
7000
  // Dispose previous effects on the container (from prior navigation)