@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
package/dist/plugin.js CHANGED
@@ -7475,10 +7475,10 @@ else {
7475
7475
  var root = scriptEl ? scriptEl.nextElementSibling : null;
7476
7476
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
7477
7477
 
7478
- // SPA fallback: during router navigation, script is appended to <body>
7478
+ // SPA fallback: during router navigation, script is appended to body>
7479
7479
  // (not inside the content container), so nextElementSibling won't find the page content.
7480
7480
  // Only use fallback when we genuinely couldn't find a suitable root element.
7481
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
7481
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
7482
7482
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
7483
7483
  var needsFallback = !root || root === document.body
7484
7484
  || (root && root.tagName === 'SCRIPT');
@@ -7797,7 +7797,7 @@ else {
7797
7797
  mountCallbacks.forEach(fn => fn());
7798
7798
  });
7799
7799
 
7800
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
7800
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
7801
7801
  // top-level element with data-stx (signal-processing.ts marks one element),
7802
7802
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
7803
7803
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -7894,7 +7894,7 @@ else {
7894
7894
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
7895
7895
  });
7896
7896
 
7897
- // Process <head> elements (title, meta) that may contain {{ }} expressions
7897
+ // Process head> elements (title, meta) that may contain {{ }} expressions
7898
7898
  // Use componentScope which now contains variables from processed components
7899
7899
  const headElements = document.querySelectorAll('head title, head meta[content]');
7900
7900
  headElements.forEach(el => {
@@ -8090,7 +8090,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
8090
8090
 
8091
8091
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
8092
8092
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
8093
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
8093
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
8094
8094
  var usedLatestSetup = false;
8095
8095
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
8096
8096
  try {
@@ -8174,7 +8174,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
8174
8174
 
8175
8175
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
8176
8176
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
8177
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
8177
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
8178
8178
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
8179
8179
  if (!container.__stx_scope) {
8180
8180
  // Dispose previous effects on the container (from prior navigation)
package/dist/process.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)
@@ -4443,10 +4443,10 @@ else {
4443
4443
  var root = scriptEl ? scriptEl.nextElementSibling : null;
4444
4444
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
4445
4445
 
4446
- // SPA fallback: during router navigation, script is appended to <body>
4446
+ // SPA fallback: during router navigation, script is appended to body>
4447
4447
  // (not inside the content container), so nextElementSibling won't find the page content.
4448
4448
  // Only use fallback when we genuinely couldn't find a suitable root element.
4449
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
4449
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
4450
4450
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
4451
4451
  var needsFallback = !root || root === document.body
4452
4452
  || (root && root.tagName === 'SCRIPT');
@@ -4765,7 +4765,7 @@ else {
4765
4765
  mountCallbacks.forEach(fn => fn());
4766
4766
  });
4767
4767
 
4768
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
4768
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
4769
4769
  // top-level element with data-stx (signal-processing.ts marks one element),
4770
4770
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
4771
4771
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -4862,7 +4862,7 @@ else {
4862
4862
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
4863
4863
  });
4864
4864
 
4865
- // Process <head> elements (title, meta) that may contain {{ }} expressions
4865
+ // Process head> elements (title, meta) that may contain {{ }} expressions
4866
4866
  // Use componentScope which now contains variables from processed components
4867
4867
  const headElements = document.querySelectorAll('head title, head meta[content]');
4868
4868
  headElements.forEach(el => {
@@ -5058,7 +5058,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
5058
5058
 
5059
5059
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
5060
5060
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
5061
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
5061
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
5062
5062
  var usedLatestSetup = false;
5063
5063
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
5064
5064
  try {
@@ -5142,7 +5142,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
5142
5142
 
5143
5143
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
5144
5144
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
5145
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
5145
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
5146
5146
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
5147
5147
  if (!container.__stx_scope) {
5148
5148
  // 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/pwa/index.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)
package/dist/pwa.js CHANGED
@@ -8474,10 +8474,10 @@ else {
8474
8474
  var root = scriptEl ? scriptEl.nextElementSibling : null;
8475
8475
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
8476
8476
 
8477
- // SPA fallback: during router navigation, script is appended to <body>
8477
+ // SPA fallback: during router navigation, script is appended to body>
8478
8478
  // (not inside the content container), so nextElementSibling won't find the page content.
8479
8479
  // Only use fallback when we genuinely couldn't find a suitable root element.
8480
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
8480
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
8481
8481
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
8482
8482
  var needsFallback = !root || root === document.body
8483
8483
  || (root && root.tagName === 'SCRIPT');
@@ -8796,7 +8796,7 @@ else {
8796
8796
  mountCallbacks.forEach(fn => fn());
8797
8797
  });
8798
8798
 
8799
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
8799
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
8800
8800
  // top-level element with data-stx (signal-processing.ts marks one element),
8801
8801
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
8802
8802
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -8893,7 +8893,7 @@ else {
8893
8893
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
8894
8894
  });
8895
8895
 
8896
- // Process <head> elements (title, meta) that may contain {{ }} expressions
8896
+ // Process head> elements (title, meta) that may contain {{ }} expressions
8897
8897
  // Use componentScope which now contains variables from processed components
8898
8898
  const headElements = document.querySelectorAll('head title, head meta[content]');
8899
8899
  headElements.forEach(el => {
@@ -9089,7 +9089,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9089
9089
 
9090
9090
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
9091
9091
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
9092
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
9092
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
9093
9093
  var usedLatestSetup = false;
9094
9094
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
9095
9095
  try {
@@ -9173,7 +9173,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
9173
9173
 
9174
9174
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
9175
9175
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
9176
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
9176
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
9177
9177
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
9178
9178
  if (!container.__stx_scope) {
9179
9179
  // Dispose previous effects on the container (from prior navigation)
package/dist/render.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)
@@ -5703,10 +5703,10 @@ else {
5703
5703
  var root = scriptEl ? scriptEl.nextElementSibling : null;
5704
5704
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
5705
5705
 
5706
- // SPA fallback: during router navigation, script is appended to <body>
5706
+ // SPA fallback: during router navigation, script is appended to body>
5707
5707
  // (not inside the content container), so nextElementSibling won't find the page content.
5708
5708
  // Only use fallback when we genuinely couldn't find a suitable root element.
5709
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
5709
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
5710
5710
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
5711
5711
  var needsFallback = !root || root === document.body
5712
5712
  || (root && root.tagName === 'SCRIPT');
@@ -6025,7 +6025,7 @@ else {
6025
6025
  mountCallbacks.forEach(fn => fn());
6026
6026
  });
6027
6027
 
6028
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
6028
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
6029
6029
  // top-level element with data-stx (signal-processing.ts marks one element),
6030
6030
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
6031
6031
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -6122,7 +6122,7 @@ else {
6122
6122
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
6123
6123
  });
6124
6124
 
6125
- // Process <head> elements (title, meta) that may contain {{ }} expressions
6125
+ // Process head> elements (title, meta) that may contain {{ }} expressions
6126
6126
  // Use componentScope which now contains variables from processed components
6127
6127
  const headElements = document.querySelectorAll('head title, head meta[content]');
6128
6128
  headElements.forEach(el => {
@@ -6318,7 +6318,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
6318
6318
 
6319
6319
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
6320
6320
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
6321
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
6321
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
6322
6322
  var usedLatestSetup = false;
6323
6323
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
6324
6324
  try {
@@ -6402,7 +6402,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
6402
6402
 
6403
6403
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
6404
6404
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
6405
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
6405
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
6406
6406
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
6407
6407
  if (!container.__stx_scope) {
6408
6408
  // Dispose previous effects on the container (from prior navigation)
package/dist/serve.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)
@@ -5705,10 +5705,10 @@ else {
5705
5705
  var root = scriptEl ? scriptEl.nextElementSibling : null;
5706
5706
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
5707
5707
 
5708
- // SPA fallback: during router navigation, script is appended to <body>
5708
+ // SPA fallback: during router navigation, script is appended to body>
5709
5709
  // (not inside the content container), so nextElementSibling won't find the page content.
5710
5710
  // Only use fallback when we genuinely couldn't find a suitable root element.
5711
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
5711
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
5712
5712
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
5713
5713
  var needsFallback = !root || root === document.body
5714
5714
  || (root && root.tagName === 'SCRIPT');
@@ -6027,7 +6027,7 @@ else {
6027
6027
  mountCallbacks.forEach(fn => fn());
6028
6028
  });
6029
6029
 
6030
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
6030
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
6031
6031
  // top-level element with data-stx (signal-processing.ts marks one element),
6032
6032
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
6033
6033
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -6124,7 +6124,7 @@ else {
6124
6124
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
6125
6125
  });
6126
6126
 
6127
- // Process <head> elements (title, meta) that may contain {{ }} expressions
6127
+ // Process head> elements (title, meta) that may contain {{ }} expressions
6128
6128
  // Use componentScope which now contains variables from processed components
6129
6129
  const headElements = document.querySelectorAll('head title, head meta[content]');
6130
6130
  headElements.forEach(el => {
@@ -6320,7 +6320,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
6320
6320
 
6321
6321
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
6322
6322
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
6323
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
6323
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
6324
6324
  var usedLatestSetup = false;
6325
6325
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
6326
6326
  try {
@@ -6404,7 +6404,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
6404
6404
 
6405
6405
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
6406
6406
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
6407
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
6407
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
6408
6408
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
6409
6409
  if (!container.__stx_scope) {
6410
6410
  // Dispose previous effects on the container (from prior navigation)
package/dist/signals.js CHANGED
@@ -4443,10 +4443,10 @@ else {
4443
4443
  var root = scriptEl ? scriptEl.nextElementSibling : null;
4444
4444
  if (!root && scriptEl) root = scriptEl.previousElementSibling || scriptEl.parentElement;
4445
4445
 
4446
- // SPA fallback: during router navigation, script is appended to <body>
4446
+ // SPA fallback: during router navigation, script is appended to body>
4447
4447
  // (not inside the content container), so nextElementSibling won't find the page content.
4448
4448
  // Only use fallback when we genuinely couldn't find a suitable root element.
4449
- // Do NOT fallback just because the script is in <body> \u2014 layout scripts in <body>
4449
+ // Do NOT fallback just because the script is in body> \u2014 layout scripts in body>
4450
4450
  // with valid siblings (e.g. sidebar <aside>) should use those siblings as root.
4451
4451
  var needsFallback = !root || root === document.body
4452
4452
  || (root && root.tagName === 'SCRIPT');
@@ -4765,7 +4765,7 @@ else {
4765
4765
  mountCallbacks.forEach(fn => fn());
4766
4766
  });
4767
4767
 
4768
- // Multi-root fragment fix: a no-<body> setup page tags only the FIRST
4768
+ // Multi-root fragment fix: a no-body> setup page tags only the FIRST
4769
4769
  // top-level element with data-stx (signal-processing.ts marks one element),
4770
4770
  // so sibling root elements were orphaned \u2014 their :if / :for / {{ }} / x-text
4771
4771
  // never hydrated, which read as "{{ }} doesn't work under :if/:for". The
@@ -4862,7 +4862,7 @@ else {
4862
4862
  el.querySelectorAll('[x-cloak]').forEach(function(c) { c.removeAttribute('x-cloak'); });
4863
4863
  });
4864
4864
 
4865
- // Process <head> elements (title, meta) that may contain {{ }} expressions
4865
+ // Process head> elements (title, meta) that may contain {{ }} expressions
4866
4866
  // Use componentScope which now contains variables from processed components
4867
4867
  const headElements = document.querySelectorAll('head title, head meta[content]');
4868
4868
  headElements.forEach(el => {
@@ -5058,7 +5058,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
5058
5058
 
5059
5059
  // Apply new page's SFC setup function. During SPA navigation, re-executed page
5060
5060
  // scripts set window.stx._latestSetup to the new setup function. This takes priority
5061
- // over the stale data-stx attribute on <body> (which has the PREVIOUS page's function name).
5061
+ // over the stale data-stx attribute on body> (which has the PREVIOUS page's function name).
5062
5062
  var usedLatestSetup = false;
5063
5063
  if (window.stx._latestSetup && typeof window.stx._latestSetup === 'function') {
5064
5064
  try {
@@ -5142,7 +5142,7 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
5142
5142
 
5143
5143
  // Process the container content \u2014 bind {{ }}, :attr, @event directives.
5144
5144
  // Run synchronously (not in setTimeout) so componentScope is captured correctly.
5145
- // The DOMContentLoaded path processes <body> synchronously \u2014 the SPA path must match.
5145
+ // The DOMContentLoaded path processes body> synchronously \u2014 the SPA path must match.
5146
5146
  console.log('[stx:load] container:', container.tagName, '__stx_scope:', !!container.__stx_scope, 'scope keys:', Object.keys(componentScope).slice(0, 10));
5147
5147
  if (!container.__stx_scope) {
5148
5148
  // Dispose previous effects on the container (from prior navigation)