@qwik.dev/core 2.0.0-beta.17 → 2.0.0-beta.18

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.
@@ -253,7 +253,7 @@ if (!("__q_context__" in doc)) {
253
253
  if (Array.isArray(qwikevents)) {
254
254
  processEventOrNode(...qwikevents);
255
255
  } else {
256
- processEventOrNode("click", "input");
256
+ processEventOrNode(":click", ":input");
257
257
  }
258
258
  }
259
259
  win.qwikevents = {
@@ -1 +1 @@
1
- const t=document,e=window,n=new Set,o=new Set([t]),r={},s="-window",i="-document";let a;const c=(t,e)=>Array.from(t.querySelectorAll(e)),l=t=>{const e=[];return o.forEach(n=>e.push(...c(n,t))),e},f=t=>{A(t),c(t,"[q\\:shadowroot]").forEach(t=>{const e=t.shadowRoot;e&&f(e)})},p=t=>t&&"function"==typeof t.then,u=(t,e,n=e.type)=>{l("[on"+t+"\\:"+n+"]").forEach(o=>{h(o,t,e,n)})},b=e=>{if(void 0===e._qwikjson_){let n=(e===t.documentElement?t.body:e).lastElementChild;for(;n;){if("SCRIPT"===n.tagName&&"qwik/json"===n.getAttribute("type")){e._qwikjson_=JSON.parse(n.textContent.replace(/\\x3C(\/?script)/gi,"<$1"));break}n=n.previousElementSibling}}},q=(t,e)=>new CustomEvent(t,{detail:e}),h=async(e,n,o,s=o.type)=>{const i="on"+n+":"+s;e.hasAttribute("preventdefault:"+s)&&o.preventDefault(),e.hasAttribute("stoppropagation:"+s)&&o.stopPropagation();const a=e._qc_,c=a&&a.li.filter(t=>t[0]===i);if(c&&c.length>0){for(const t of c){const n=t[1].getFn([e,o],()=>e.isConnected)(o,e),r=o.cancelBubble;p(n)&&await n,r&&o.stopPropagation()}return}const l=e.qDispatchEvent;if(l)return l(o,n);const f=e.getAttribute(i);if(f){const n=e.closest("[q\\:container]:not([q\\:container=html]):not([q\\:container=text])"),s=n.getAttribute("q:base"),i=n.getAttribute("q:version")||"unknown",a=n.getAttribute("q:manifest-hash")||"dev",c=new URL(s,t.baseURI);for(const l of f.split("\n")){const f=new URL(l,c),u=f.href,q=f.hash.replace(/^#?([^?[|]*).*$/,"$1")||"default",h=performance.now();let d,m,g;const y=l.startsWith("#"),v={qBase:s,qManifest:a,qVersion:i,href:u,symbol:q,element:e,reqTime:h};if(y){const e=n.getAttribute("q:instance");d=(t["qFuncs_"+e]||[])[Number.parseInt(q)],d||(m="sync",g=Error("sym:"+q))}else if(q in r)d=r[q];else{_("qsymbol",v);const t=f.href.split("#")[0];try{const e=import(t);b(n),d=(await e)[q],d?r[q]=d:(m="no-symbol",g=Error(`${q} not in ${t}`))}catch(t){m||(m="async"),g=t}}if(!d){_("qerror",{importError:m,error:g,...v}),console.error(g);break}const w=t.__q_context__;if(e.isConnected)try{t.__q_context__=[e,o,f];const n=d(o,e);p(n)&&await n}catch(t){_("qerror",{error:t,...v})}finally{t.__q_context__=w}}}},_=(e,n)=>{t.dispatchEvent(q(e,n))},d=t=>t.replace(/([A-Z-])/g,t=>"-"+t.toLowerCase()),m=async(t,e)=>{let n=d(t.type),o=t.target;if(e!==i)for(;o&&o.getAttribute;){const e=h(o,"",t,n);let r=t.cancelBubble;p(e)&&await e,r||(r=r||t.cancelBubble||o.hasAttribute("stoppropagation:"+t.type)),o=t.bubbles&&!0!==r?o.parentElement:null}else u(i,t,n)},g=t=>{u(s,t,d(t.type))},y=()=>{const r=t.readyState;if(!a&&("interactive"==r||"complete"==r)&&(o.forEach(f),a=1,_("qinit"),(e.requestIdleCallback??e.setTimeout).bind(e)(()=>_("qidle")),n.has(":qvisible"))){const t=l("[on\\:qvisible]"),e=new IntersectionObserver(t=>{for(const n of t)n.isIntersecting&&(e.unobserve(n.target),h(n.target,"",q("qvisible",n)))});t.forEach(t=>e.observe(t))}},v=(t,e,n,o=!1)=>{t.addEventListener(e,n,{capture:o,passive:!1})},w=t=>t.replace(/-./g,t=>t[1].toUpperCase()),E=t=>{const e=t.indexOf(":");let n="",o=t;if(e>=0){const r=t.substring(0,e);""!==r&&r!==s&&r!==i||(n=r,o=t.substring(e+1))}return{scope:n,eventName:w(o)}},A=(...t)=>{for(const r of t)if("string"==typeof r){if(!n.has(r)){n.add(r);const{scope:t,eventName:i}=E(r);t===s?v(e,i,g,!0):o.forEach(e=>v(e,i,e=>m(e,t),!0))}}else o.has(r)||(n.forEach(t=>{const{scope:e,eventName:n}=E(t);v(r,n,t=>m(t,e),!0)}),o.add(r))};if(!("__q_context__"in t)){t.__q_context__=0;const r=e.qwikevents;r&&(Array.isArray(r)?A(...r):A("click","input")),e.qwikevents={events:n,roots:o,push:A},v(t,"readystatechange",y),y()}
1
+ const t=document,e=window,n=new Set,o=new Set([t]),r={},s="-window",i="-document";let a;const c=(t,e)=>Array.from(t.querySelectorAll(e)),l=t=>{const e=[];return o.forEach(n=>e.push(...c(n,t))),e},f=t=>{A(t),c(t,"[q\\:shadowroot]").forEach(t=>{const e=t.shadowRoot;e&&f(e)})},p=t=>t&&"function"==typeof t.then,u=(t,e,n=e.type)=>{l("[on"+t+"\\:"+n+"]").forEach(o=>{h(o,t,e,n)})},b=e=>{if(void 0===e._qwikjson_){let n=(e===t.documentElement?t.body:e).lastElementChild;for(;n;){if("SCRIPT"===n.tagName&&"qwik/json"===n.getAttribute("type")){e._qwikjson_=JSON.parse(n.textContent.replace(/\\x3C(\/?script)/gi,"<$1"));break}n=n.previousElementSibling}}},q=(t,e)=>new CustomEvent(t,{detail:e}),h=async(e,n,o,s=o.type)=>{const i="on"+n+":"+s;e.hasAttribute("preventdefault:"+s)&&o.preventDefault(),e.hasAttribute("stoppropagation:"+s)&&o.stopPropagation();const a=e._qc_,c=a&&a.li.filter(t=>t[0]===i);if(c&&c.length>0){for(const t of c){const n=t[1].getFn([e,o],()=>e.isConnected)(o,e),r=o.cancelBubble;p(n)&&await n,r&&o.stopPropagation()}return}const l=e.qDispatchEvent;if(l)return l(o,n);const f=e.getAttribute(i);if(f){const n=e.closest("[q\\:container]:not([q\\:container=html]):not([q\\:container=text])"),s=n.getAttribute("q:base"),i=n.getAttribute("q:version")||"unknown",a=n.getAttribute("q:manifest-hash")||"dev",c=new URL(s,t.baseURI);for(const l of f.split("\n")){const f=new URL(l,c),u=f.href,q=f.hash.replace(/^#?([^?[|]*).*$/,"$1")||"default",h=performance.now();let d,m,g;const y=l.startsWith("#"),v={qBase:s,qManifest:a,qVersion:i,href:u,symbol:q,element:e,reqTime:h};if(y){const e=n.getAttribute("q:instance");d=(t["qFuncs_"+e]||[])[Number.parseInt(q)],d||(m="sync",g=Error("sym:"+q))}else if(q in r)d=r[q];else{_("qsymbol",v);const t=f.href.split("#")[0];try{const e=import(t);b(n),d=(await e)[q],d?r[q]=d:(m="no-symbol",g=Error(`${q} not in ${t}`))}catch(t){m||(m="async"),g=t}}if(!d){_("qerror",{importError:m,error:g,...v}),console.error(g);break}const w=t.__q_context__;if(e.isConnected)try{t.__q_context__=[e,o,f];const n=d(o,e);p(n)&&await n}catch(t){_("qerror",{error:t,...v})}finally{t.__q_context__=w}}}},_=(e,n)=>{t.dispatchEvent(q(e,n))},d=t=>t.replace(/([A-Z-])/g,t=>"-"+t.toLowerCase()),m=async(t,e)=>{let n=d(t.type),o=t.target;if(e!==i)for(;o&&o.getAttribute;){const e=h(o,"",t,n);let r=t.cancelBubble;p(e)&&await e,r||(r=r||t.cancelBubble||o.hasAttribute("stoppropagation:"+t.type)),o=t.bubbles&&!0!==r?o.parentElement:null}else u(i,t,n)},g=t=>{u(s,t,d(t.type))},y=()=>{const r=t.readyState;if(!a&&("interactive"==r||"complete"==r)&&(o.forEach(f),a=1,_("qinit"),(e.requestIdleCallback??e.setTimeout).bind(e)(()=>_("qidle")),n.has(":qvisible"))){const t=l("[on\\:qvisible]"),e=new IntersectionObserver(t=>{for(const n of t)n.isIntersecting&&(e.unobserve(n.target),h(n.target,"",q("qvisible",n)))});t.forEach(t=>e.observe(t))}},v=(t,e,n,o=!1)=>{t.addEventListener(e,n,{capture:o,passive:!1})},w=t=>t.replace(/-./g,t=>t[1].toUpperCase()),E=t=>{const e=t.indexOf(":");let n="",o=t;if(e>=0){const r=t.substring(0,e);""!==r&&r!==s&&r!==i||(n=r,o=t.substring(e+1))}return{scope:n,eventName:w(o)}},A=(...t)=>{for(const r of t)if("string"==typeof r){if(!n.has(r)){n.add(r);const{scope:t,eventName:i}=E(r);t===s?v(e,i,g,!0):o.forEach(e=>v(e,i,e=>m(e,t),!0))}}else o.has(r)||(n.forEach(t=>{const{scope:e,eventName:n}=E(t);v(r,n,t=>m(t,e),!0)}),o.add(r))};if(!("__q_context__"in t)){t.__q_context__=0;const r=e.qwikevents;r&&(Array.isArray(r)?A(...r):A(":click",":input")),e.qwikevents={events:n,roots:o,push:A},v(t,"readystatechange",y),y()}
package/dist/server.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * @qwik.dev/core/server 2.0.0-beta.17-dev+c34c237
3
+ * @qwik.dev/core/server 2.0.0-beta.18-dev+a8081d4
4
4
  * Copyright QwikDev. All Rights Reserved.
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://github.com/QwikDev/qwik/blob/main/LICENSE
@@ -20,7 +20,10 @@ import { setPlatform as setPlatform2 } from "@qwik.dev/core";
20
20
 
21
21
  // packages/qwik/src/server/platform.ts
22
22
  import { setPlatform } from "@qwik.dev/core";
23
- import { isDev as isDev3 } from "@qwik.dev/core/build";
23
+ import { isDev as isDev4 } from "@qwik.dev/core/build";
24
+
25
+ // packages/qwik/src/core/client/util-mapArray.ts
26
+ import { isDev } from "@qwik.dev/core/build";
24
27
 
25
28
  // packages/qwik/src/core/shared/utils/qdev.ts
26
29
  var qDev = globalThis.qDev !== false;
@@ -64,7 +67,7 @@ function assertTrue(value1, text, ...parts) {
64
67
 
65
68
  // packages/qwik/src/core/client/util-mapArray.ts
66
69
  var mapApp_findIndx = (array, key, start) => {
67
- assertTrue(start % 2 === 0, "Expecting even number.");
70
+ isDev && assertTrue(start % 2 === 0, "Expecting even number.");
68
71
  let bottom = start >> 1;
69
72
  let top = array.length - 2 >> 1;
70
73
  while (bottom <= top) {
@@ -223,7 +226,7 @@ var qError = (code, errorMessageArgs = []) => {
223
226
  };
224
227
 
225
228
  // packages/qwik/src/core/shared/qrl/qrl-utils.ts
226
- import { isDev } from "@qwik.dev/core/build";
229
+ import { isDev as isDev2 } from "@qwik.dev/core/build";
227
230
  var SYNC_QRL = "<sync>";
228
231
 
229
232
  // packages/qwik/src/core/shared/types.ts
@@ -611,7 +614,7 @@ var Q_PROPS_SEPARATOR = ":";
611
614
  var dangerouslySetInnerHTML = "dangerouslySetInnerHTML";
612
615
 
613
616
  // packages/qwik/src/core/shared/utils/promises.ts
614
- import { isDev as isDev2, isServer } from "@qwik.dev/core/build";
617
+ import { isDev as isDev3, isServer } from "@qwik.dev/core/build";
615
618
  var MAX_RETRY_ON_PROMISE_COUNT = 100;
616
619
  var isPromise = (value) => {
617
620
  return !!value && typeof value == "object" && typeof value.then === "function";
@@ -633,7 +636,7 @@ function retryOnPromise(fn, retryCount = 0) {
633
636
  }
634
637
  return result;
635
638
  } catch (e) {
636
- if (isDev2 && isServer && e instanceof ReferenceError && e.message.includes("window")) {
639
+ if (isDev3 && isServer && e instanceof ReferenceError && e.message.includes("window")) {
637
640
  e.message = 'It seems like you forgot to add "if (isBrowser) {...}" here:' + e.message;
638
641
  throw e;
639
642
  }
@@ -1089,9 +1092,9 @@ var getDevSegmentPath = (mapper, hash2, symbolName, parent) => {
1089
1092
  function createPlatform(opts, resolvedManifest) {
1090
1093
  const mapper = resolvedManifest?.mapper;
1091
1094
  const mapperFn = opts.symbolMapper ? opts.symbolMapper : (symbolName, _chunk, parent) => {
1092
- if (mapper || isDev3 && import.meta.env.MODE !== "test") {
1095
+ if (mapper || isDev4 && import.meta.env.MODE !== "test") {
1093
1096
  const hash2 = getSymbolHash(symbolName);
1094
- const result = !isDev3 ? mapper[hash2] : getDevSegmentPath(mapper, hash2, symbolName, parent);
1097
+ const result = !isDev4 ? mapper[hash2] : getDevSegmentPath(mapper, hash2, symbolName, parent);
1095
1098
  if (!result) {
1096
1099
  if (hash2 === SYNC_QRL) {
1097
1100
  return [hash2, ""];
@@ -1171,16 +1174,15 @@ function getBuildBase(opts) {
1171
1174
  return `${import.meta.env.BASE_URL || "/"}build/`;
1172
1175
  }
1173
1176
  var versions = {
1174
- qwik: "2.0.0-beta.17-dev+c34c237",
1177
+ qwik: "2.0.0-beta.18-dev+a8081d4",
1175
1178
  qwikDom: "2.1.19"
1176
1179
  };
1177
1180
 
1178
1181
  // packages/qwik/src/server/ssr-container.ts
1179
- import { isDev as isDev5 } from "@qwik.dev/core/build";
1182
+ import { isDev as isDev6 } from "@qwik.dev/core/build";
1180
1183
  import {
1181
1184
  _SubscriptionData as SubscriptionData,
1182
1185
  _SharedContainer,
1183
- _executeSsrChores,
1184
1186
  _jsxSorted,
1185
1187
  _jsxSplit,
1186
1188
  _walkJSX,
@@ -1429,8 +1431,8 @@ var preLoaderOptionsDefault = {
1429
1431
  };
1430
1432
 
1431
1433
  // packages/qwik/src/server/scripts.ts
1432
- var QWIK_LOADER_DEFAULT_MINIFIED = 'const t=document,e=window,n=new Set,o=new Set([t]),r={},s="-window",i="-document";let a;const c=(t,e)=>Array.from(t.querySelectorAll(e)),l=t=>{const e=[];return o.forEach(n=>e.push(...c(n,t))),e},f=t=>{A(t),c(t,"[q\\\\:shadowroot]").forEach(t=>{const e=t.shadowRoot;e&&f(e)})},p=t=>t&&"function"==typeof t.then,u=(t,e,n=e.type)=>{l("[on"+t+"\\\\:"+n+"]").forEach(o=>{h(o,t,e,n)})},b=e=>{if(void 0===e._qwikjson_){let n=(e===t.documentElement?t.body:e).lastElementChild;for(;n;){if("SCRIPT"===n.tagName&&"qwik/json"===n.getAttribute("type")){e._qwikjson_=JSON.parse(n.textContent.replace(/\\\\x3C(\\/?script)/gi,"<$1"));break}n=n.previousElementSibling}}},q=(t,e)=>new CustomEvent(t,{detail:e}),h=async(e,n,o,s=o.type)=>{const i="on"+n+":"+s;e.hasAttribute("preventdefault:"+s)&&o.preventDefault(),e.hasAttribute("stoppropagation:"+s)&&o.stopPropagation();const a=e._qc_,c=a&&a.li.filter(t=>t[0]===i);if(c&&c.length>0){for(const t of c){const n=t[1].getFn([e,o],()=>e.isConnected)(o,e),r=o.cancelBubble;p(n)&&await n,r&&o.stopPropagation()}return}const l=e.qDispatchEvent;if(l)return l(o,n);const f=e.getAttribute(i);if(f){const n=e.closest("[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])"),s=n.getAttribute("q:base"),i=n.getAttribute("q:version")||"unknown",a=n.getAttribute("q:manifest-hash")||"dev",c=new URL(s,t.baseURI);for(const l of f.split("\\n")){const f=new URL(l,c),u=f.href,q=f.hash.replace(/^#?([^?[|]*).*$/,"$1")||"default",h=performance.now();let d,m,g;const y=l.startsWith("#"),v={qBase:s,qManifest:a,qVersion:i,href:u,symbol:q,element:e,reqTime:h};if(y){const e=n.getAttribute("q:instance");d=(t["qFuncs_"+e]||[])[Number.parseInt(q)],d||(m="sync",g=Error("sym:"+q))}else if(q in r)d=r[q];else{_("qsymbol",v);const t=f.href.split("#")[0];try{const e=import(t);b(n),d=(await e)[q],d?r[q]=d:(m="no-symbol",g=Error(`${q} not in ${t}`))}catch(t){m||(m="async"),g=t}}if(!d){_("qerror",{importError:m,error:g,...v}),console.error(g);break}const w=t.__q_context__;if(e.isConnected)try{t.__q_context__=[e,o,f];const n=d(o,e);p(n)&&await n}catch(t){_("qerror",{error:t,...v})}finally{t.__q_context__=w}}}},_=(e,n)=>{t.dispatchEvent(q(e,n))},d=t=>t.replace(/([A-Z-])/g,t=>"-"+t.toLowerCase()),m=async(t,e)=>{let n=d(t.type),o=t.target;if(e!==i)for(;o&&o.getAttribute;){const e=h(o,"",t,n);let r=t.cancelBubble;p(e)&&await e,r||(r=r||t.cancelBubble||o.hasAttribute("stoppropagation:"+t.type)),o=t.bubbles&&!0!==r?o.parentElement:null}else u(i,t,n)},g=t=>{u(s,t,d(t.type))},y=()=>{const r=t.readyState;if(!a&&("interactive"==r||"complete"==r)&&(o.forEach(f),a=1,_("qinit"),(e.requestIdleCallback??e.setTimeout).bind(e)(()=>_("qidle")),n.has(":qvisible"))){const t=l("[on\\\\:qvisible]"),e=new IntersectionObserver(t=>{for(const n of t)n.isIntersecting&&(e.unobserve(n.target),h(n.target,"",q("qvisible",n)))});t.forEach(t=>e.observe(t))}},v=(t,e,n,o=!1)=>{t.addEventListener(e,n,{capture:o,passive:!1})},w=t=>t.replace(/-./g,t=>t[1].toUpperCase()),E=t=>{const e=t.indexOf(":");let n="",o=t;if(e>=0){const r=t.substring(0,e);""!==r&&r!==s&&r!==i||(n=r,o=t.substring(e+1))}return{scope:n,eventName:w(o)}},A=(...t)=>{for(const r of t)if("string"==typeof r){if(!n.has(r)){n.add(r);const{scope:t,eventName:i}=E(r);t===s?v(e,i,g,!0):o.forEach(e=>v(e,i,e=>m(e,t),!0))}}else o.has(r)||(n.forEach(t=>{const{scope:e,eventName:n}=E(t);v(r,n,t=>m(t,e),!0)}),o.add(r))};if(!("__q_context__"in t)){t.__q_context__=0;const r=e.qwikevents;r&&(Array.isArray(r)?A(...r):A("click","input")),e.qwikevents={events:n,roots:o,push:A},v(t,"readystatechange",y),y()}';
1433
- var QWIK_LOADER_DEFAULT_DEBUG = 'const doc = document;\nconst win = window;\nconst events = /* @__PURE__ */ new Set();\nconst roots = /* @__PURE__ */ new Set([doc]);\nconst symbols = {};\nconst windowPrefix = "-window";\nconst documentPrefix = "-document";\nlet hasInitialized;\nconst nativeQuerySelectorAll = (root, selector) => Array.from(root.querySelectorAll(selector));\nconst querySelectorAll = (query) => {\n const elements = [];\n roots.forEach((root) => elements.push(...nativeQuerySelectorAll(root, query)));\n return elements;\n};\nconst findShadowRoots = (fragment) => {\n processEventOrNode(fragment);\n nativeQuerySelectorAll(fragment, "[q\\\\:shadowroot]").forEach((parent) => {\n const shadowRoot = parent.shadowRoot;\n shadowRoot && findShadowRoots(shadowRoot);\n });\n};\nconst isPromise = (promise) => promise && typeof promise.then === "function";\nconst broadcast = (infix, ev, type = ev.type) => {\n querySelectorAll("[on" + infix + "\\\\:" + type + "]").forEach((el) => {\n dispatch(el, infix, ev, type);\n });\n};\nconst resolveContainer = (containerEl) => {\n if (containerEl._qwikjson_ === void 0) {\n const parentJSON = containerEl === doc.documentElement ? doc.body : containerEl;\n let script = parentJSON.lastElementChild;\n while (script) {\n if (script.tagName === "SCRIPT" && script.getAttribute("type") === "qwik/json") {\n containerEl._qwikjson_ = JSON.parse(\n script.textContent.replace(/\\\\x3C(\\/?script)/gi, "<$1")\n );\n break;\n }\n script = script.previousElementSibling;\n }\n }\n};\nconst createEvent = (eventName, detail) => new CustomEvent(eventName, {\n detail\n});\nconst dispatch = async (element, scope, ev, eventName = ev.type) => {\n const attrName = "on" + scope + ":" + eventName;\n if (element.hasAttribute("preventdefault:" + eventName)) {\n ev.preventDefault();\n }\n if (element.hasAttribute("stoppropagation:" + eventName)) {\n ev.stopPropagation();\n }\n const ctx = element._qc_;\n const relevantListeners = ctx && ctx.li.filter((li) => li[0] === attrName);\n if (relevantListeners && relevantListeners.length > 0) {\n for (const listener of relevantListeners) {\n const results = listener[1].getFn([element, ev], () => element.isConnected)(ev, element);\n const cancelBubble = ev.cancelBubble;\n if (isPromise(results)) {\n await results;\n }\n if (cancelBubble) {\n ev.stopPropagation();\n }\n }\n return;\n }\n const qDispatchEvent = element.qDispatchEvent;\n if (qDispatchEvent) {\n return qDispatchEvent(ev, scope);\n }\n const attrValue = element.getAttribute(attrName);\n if (attrValue) {\n const container = element.closest(\n "[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])"\n );\n const qBase = container.getAttribute("q:base");\n const qVersion = container.getAttribute("q:version") || "unknown";\n const qManifest = container.getAttribute("q:manifest-hash") || "dev";\n const base = new URL(qBase, doc.baseURI);\n for (const qrl of attrValue.split("\\n")) {\n const url = new URL(qrl, base);\n const href = url.href;\n const symbol = url.hash.replace(/^#?([^?[|]*).*$/, "$1") || "default";\n const reqTime = performance.now();\n let handler;\n let importError;\n let error;\n const isSync = qrl.startsWith("#");\n const eventData = {\n qBase,\n qManifest,\n qVersion,\n href,\n symbol,\n element,\n reqTime\n };\n if (isSync) {\n const hash = container.getAttribute("q:instance");\n handler = (doc["qFuncs_" + hash] || [])[Number.parseInt(symbol)];\n if (!handler) {\n importError = "sync";\n error = new Error("sym:" + symbol);\n }\n } else if (symbol in symbols) {\n handler = symbols[symbol];\n } else {\n emitEvent("qsymbol", eventData);\n const uri = url.href.split("#")[0];\n try {\n const module = import(\n uri\n );\n resolveContainer(container);\n handler = (await module)[symbol];\n if (!handler) {\n importError = "no-symbol";\n error = new Error(`${symbol} not in ${uri}`);\n } else {\n symbols[symbol] = handler;\n }\n } catch (err) {\n importError || (importError = "async");\n error = err;\n }\n }\n if (!handler) {\n emitEvent("qerror", {\n importError,\n error,\n ...eventData\n });\n console.error(error);\n break;\n }\n const previousCtx = doc.__q_context__;\n if (element.isConnected) {\n try {\n doc.__q_context__ = [element, ev, url];\n const results = handler(ev, element);\n if (isPromise(results)) {\n await results;\n }\n } catch (error2) {\n emitEvent("qerror", { error: error2, ...eventData });\n } finally {\n doc.__q_context__ = previousCtx;\n }\n }\n }\n }\n};\nconst emitEvent = (eventName, detail) => {\n doc.dispatchEvent(createEvent(eventName, detail));\n};\nconst camelToKebab = (str) => str.replace(/([A-Z-])/g, (a) => "-" + a.toLowerCase());\nconst processDocumentEvent = async (ev, scope) => {\n let type = camelToKebab(ev.type);\n let element = ev.target;\n if (scope === documentPrefix) {\n broadcast(documentPrefix, ev, type);\n return;\n }\n while (element && element.getAttribute) {\n const results = dispatch(element, "", ev, type);\n let cancelBubble = ev.cancelBubble;\n if (isPromise(results)) {\n await results;\n }\n cancelBubble || (cancelBubble = cancelBubble || ev.cancelBubble || element.hasAttribute("stoppropagation:" + ev.type));\n element = ev.bubbles && cancelBubble !== true ? element.parentElement : null;\n }\n};\nconst processWindowEvent = (ev) => {\n broadcast(windowPrefix, ev, camelToKebab(ev.type));\n};\nconst processReadyStateChange = () => {\n const readyState = doc.readyState;\n if (!hasInitialized && (readyState == "interactive" || readyState == "complete")) {\n roots.forEach(findShadowRoots);\n hasInitialized = 1;\n emitEvent("qinit");\n const riC = win.requestIdleCallback ?? win.setTimeout;\n riC.bind(win)(() => emitEvent("qidle"));\n if (events.has(":qvisible")) {\n const results = querySelectorAll("[on\\\\:qvisible]");\n const observer = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n observer.unobserve(entry.target);\n dispatch(entry.target, "", createEvent("qvisible", entry));\n }\n }\n });\n results.forEach((el) => observer.observe(el));\n }\n }\n};\nconst addEventListener = (el, eventName, handler, capture = false) => {\n el.addEventListener(eventName, handler, { capture, passive: false });\n};\nconst kebabToCamel = (eventName) => eventName.replace(/-./g, (a) => a[1].toUpperCase());\nconst processEventName = (event) => {\n const i = event.indexOf(":");\n let scope = "";\n let eventName = event;\n if (i >= 0) {\n const s = event.substring(0, i);\n if (s === "" || s === windowPrefix || s === documentPrefix) {\n scope = s;\n eventName = event.substring(i + 1);\n }\n }\n return { scope, eventName: kebabToCamel(eventName) };\n};\nconst processEventOrNode = (...eventNames) => {\n for (const eventNameOrNode of eventNames) {\n if (typeof eventNameOrNode === "string") {\n if (!events.has(eventNameOrNode)) {\n events.add(eventNameOrNode);\n const { scope, eventName } = processEventName(eventNameOrNode);\n if (scope === windowPrefix) {\n addEventListener(win, eventName, processWindowEvent, true);\n } else {\n roots.forEach(\n (root) => addEventListener(root, eventName, (ev) => processDocumentEvent(ev, scope), true)\n );\n }\n }\n } else {\n if (!roots.has(eventNameOrNode)) {\n events.forEach((kebabEventName) => {\n const { scope, eventName } = processEventName(kebabEventName);\n addEventListener(\n eventNameOrNode,\n eventName,\n (ev) => processDocumentEvent(ev, scope),\n true\n );\n });\n roots.add(eventNameOrNode);\n }\n }\n }\n};\nif (!("__q_context__" in doc)) {\n doc.__q_context__ = 0;\n const qwikevents = win.qwikevents;\n if (qwikevents) {\n if (Array.isArray(qwikevents)) {\n processEventOrNode(...qwikevents);\n } else {\n processEventOrNode("click", "input");\n }\n }\n win.qwikevents = {\n events,\n roots,\n push: processEventOrNode\n };\n addEventListener(doc, "readystatechange", processReadyStateChange);\n processReadyStateChange();\n}';
1434
+ var QWIK_LOADER_DEFAULT_MINIFIED = 'const t=document,e=window,n=new Set,o=new Set([t]),r={},s="-window",i="-document";let a;const c=(t,e)=>Array.from(t.querySelectorAll(e)),l=t=>{const e=[];return o.forEach(n=>e.push(...c(n,t))),e},f=t=>{A(t),c(t,"[q\\\\:shadowroot]").forEach(t=>{const e=t.shadowRoot;e&&f(e)})},p=t=>t&&"function"==typeof t.then,u=(t,e,n=e.type)=>{l("[on"+t+"\\\\:"+n+"]").forEach(o=>{h(o,t,e,n)})},b=e=>{if(void 0===e._qwikjson_){let n=(e===t.documentElement?t.body:e).lastElementChild;for(;n;){if("SCRIPT"===n.tagName&&"qwik/json"===n.getAttribute("type")){e._qwikjson_=JSON.parse(n.textContent.replace(/\\\\x3C(\\/?script)/gi,"<$1"));break}n=n.previousElementSibling}}},q=(t,e)=>new CustomEvent(t,{detail:e}),h=async(e,n,o,s=o.type)=>{const i="on"+n+":"+s;e.hasAttribute("preventdefault:"+s)&&o.preventDefault(),e.hasAttribute("stoppropagation:"+s)&&o.stopPropagation();const a=e._qc_,c=a&&a.li.filter(t=>t[0]===i);if(c&&c.length>0){for(const t of c){const n=t[1].getFn([e,o],()=>e.isConnected)(o,e),r=o.cancelBubble;p(n)&&await n,r&&o.stopPropagation()}return}const l=e.qDispatchEvent;if(l)return l(o,n);const f=e.getAttribute(i);if(f){const n=e.closest("[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])"),s=n.getAttribute("q:base"),i=n.getAttribute("q:version")||"unknown",a=n.getAttribute("q:manifest-hash")||"dev",c=new URL(s,t.baseURI);for(const l of f.split("\\n")){const f=new URL(l,c),u=f.href,q=f.hash.replace(/^#?([^?[|]*).*$/,"$1")||"default",h=performance.now();let d,m,g;const y=l.startsWith("#"),v={qBase:s,qManifest:a,qVersion:i,href:u,symbol:q,element:e,reqTime:h};if(y){const e=n.getAttribute("q:instance");d=(t["qFuncs_"+e]||[])[Number.parseInt(q)],d||(m="sync",g=Error("sym:"+q))}else if(q in r)d=r[q];else{_("qsymbol",v);const t=f.href.split("#")[0];try{const e=import(t);b(n),d=(await e)[q],d?r[q]=d:(m="no-symbol",g=Error(`${q} not in ${t}`))}catch(t){m||(m="async"),g=t}}if(!d){_("qerror",{importError:m,error:g,...v}),console.error(g);break}const w=t.__q_context__;if(e.isConnected)try{t.__q_context__=[e,o,f];const n=d(o,e);p(n)&&await n}catch(t){_("qerror",{error:t,...v})}finally{t.__q_context__=w}}}},_=(e,n)=>{t.dispatchEvent(q(e,n))},d=t=>t.replace(/([A-Z-])/g,t=>"-"+t.toLowerCase()),m=async(t,e)=>{let n=d(t.type),o=t.target;if(e!==i)for(;o&&o.getAttribute;){const e=h(o,"",t,n);let r=t.cancelBubble;p(e)&&await e,r||(r=r||t.cancelBubble||o.hasAttribute("stoppropagation:"+t.type)),o=t.bubbles&&!0!==r?o.parentElement:null}else u(i,t,n)},g=t=>{u(s,t,d(t.type))},y=()=>{const r=t.readyState;if(!a&&("interactive"==r||"complete"==r)&&(o.forEach(f),a=1,_("qinit"),(e.requestIdleCallback??e.setTimeout).bind(e)(()=>_("qidle")),n.has(":qvisible"))){const t=l("[on\\\\:qvisible]"),e=new IntersectionObserver(t=>{for(const n of t)n.isIntersecting&&(e.unobserve(n.target),h(n.target,"",q("qvisible",n)))});t.forEach(t=>e.observe(t))}},v=(t,e,n,o=!1)=>{t.addEventListener(e,n,{capture:o,passive:!1})},w=t=>t.replace(/-./g,t=>t[1].toUpperCase()),E=t=>{const e=t.indexOf(":");let n="",o=t;if(e>=0){const r=t.substring(0,e);""!==r&&r!==s&&r!==i||(n=r,o=t.substring(e+1))}return{scope:n,eventName:w(o)}},A=(...t)=>{for(const r of t)if("string"==typeof r){if(!n.has(r)){n.add(r);const{scope:t,eventName:i}=E(r);t===s?v(e,i,g,!0):o.forEach(e=>v(e,i,e=>m(e,t),!0))}}else o.has(r)||(n.forEach(t=>{const{scope:e,eventName:n}=E(t);v(r,n,t=>m(t,e),!0)}),o.add(r))};if(!("__q_context__"in t)){t.__q_context__=0;const r=e.qwikevents;r&&(Array.isArray(r)?A(...r):A(":click",":input")),e.qwikevents={events:n,roots:o,push:A},v(t,"readystatechange",y),y()}';
1435
+ var QWIK_LOADER_DEFAULT_DEBUG = 'const doc = document;\nconst win = window;\nconst events = /* @__PURE__ */ new Set();\nconst roots = /* @__PURE__ */ new Set([doc]);\nconst symbols = {};\nconst windowPrefix = "-window";\nconst documentPrefix = "-document";\nlet hasInitialized;\nconst nativeQuerySelectorAll = (root, selector) => Array.from(root.querySelectorAll(selector));\nconst querySelectorAll = (query) => {\n const elements = [];\n roots.forEach((root) => elements.push(...nativeQuerySelectorAll(root, query)));\n return elements;\n};\nconst findShadowRoots = (fragment) => {\n processEventOrNode(fragment);\n nativeQuerySelectorAll(fragment, "[q\\\\:shadowroot]").forEach((parent) => {\n const shadowRoot = parent.shadowRoot;\n shadowRoot && findShadowRoots(shadowRoot);\n });\n};\nconst isPromise = (promise) => promise && typeof promise.then === "function";\nconst broadcast = (infix, ev, type = ev.type) => {\n querySelectorAll("[on" + infix + "\\\\:" + type + "]").forEach((el) => {\n dispatch(el, infix, ev, type);\n });\n};\nconst resolveContainer = (containerEl) => {\n if (containerEl._qwikjson_ === void 0) {\n const parentJSON = containerEl === doc.documentElement ? doc.body : containerEl;\n let script = parentJSON.lastElementChild;\n while (script) {\n if (script.tagName === "SCRIPT" && script.getAttribute("type") === "qwik/json") {\n containerEl._qwikjson_ = JSON.parse(\n script.textContent.replace(/\\\\x3C(\\/?script)/gi, "<$1")\n );\n break;\n }\n script = script.previousElementSibling;\n }\n }\n};\nconst createEvent = (eventName, detail) => new CustomEvent(eventName, {\n detail\n});\nconst dispatch = async (element, scope, ev, eventName = ev.type) => {\n const attrName = "on" + scope + ":" + eventName;\n if (element.hasAttribute("preventdefault:" + eventName)) {\n ev.preventDefault();\n }\n if (element.hasAttribute("stoppropagation:" + eventName)) {\n ev.stopPropagation();\n }\n const ctx = element._qc_;\n const relevantListeners = ctx && ctx.li.filter((li) => li[0] === attrName);\n if (relevantListeners && relevantListeners.length > 0) {\n for (const listener of relevantListeners) {\n const results = listener[1].getFn([element, ev], () => element.isConnected)(ev, element);\n const cancelBubble = ev.cancelBubble;\n if (isPromise(results)) {\n await results;\n }\n if (cancelBubble) {\n ev.stopPropagation();\n }\n }\n return;\n }\n const qDispatchEvent = element.qDispatchEvent;\n if (qDispatchEvent) {\n return qDispatchEvent(ev, scope);\n }\n const attrValue = element.getAttribute(attrName);\n if (attrValue) {\n const container = element.closest(\n "[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])"\n );\n const qBase = container.getAttribute("q:base");\n const qVersion = container.getAttribute("q:version") || "unknown";\n const qManifest = container.getAttribute("q:manifest-hash") || "dev";\n const base = new URL(qBase, doc.baseURI);\n for (const qrl of attrValue.split("\\n")) {\n const url = new URL(qrl, base);\n const href = url.href;\n const symbol = url.hash.replace(/^#?([^?[|]*).*$/, "$1") || "default";\n const reqTime = performance.now();\n let handler;\n let importError;\n let error;\n const isSync = qrl.startsWith("#");\n const eventData = {\n qBase,\n qManifest,\n qVersion,\n href,\n symbol,\n element,\n reqTime\n };\n if (isSync) {\n const hash = container.getAttribute("q:instance");\n handler = (doc["qFuncs_" + hash] || [])[Number.parseInt(symbol)];\n if (!handler) {\n importError = "sync";\n error = new Error("sym:" + symbol);\n }\n } else if (symbol in symbols) {\n handler = symbols[symbol];\n } else {\n emitEvent("qsymbol", eventData);\n const uri = url.href.split("#")[0];\n try {\n const module = import(\n uri\n );\n resolveContainer(container);\n handler = (await module)[symbol];\n if (!handler) {\n importError = "no-symbol";\n error = new Error(`${symbol} not in ${uri}`);\n } else {\n symbols[symbol] = handler;\n }\n } catch (err) {\n importError || (importError = "async");\n error = err;\n }\n }\n if (!handler) {\n emitEvent("qerror", {\n importError,\n error,\n ...eventData\n });\n console.error(error);\n break;\n }\n const previousCtx = doc.__q_context__;\n if (element.isConnected) {\n try {\n doc.__q_context__ = [element, ev, url];\n const results = handler(ev, element);\n if (isPromise(results)) {\n await results;\n }\n } catch (error2) {\n emitEvent("qerror", { error: error2, ...eventData });\n } finally {\n doc.__q_context__ = previousCtx;\n }\n }\n }\n }\n};\nconst emitEvent = (eventName, detail) => {\n doc.dispatchEvent(createEvent(eventName, detail));\n};\nconst camelToKebab = (str) => str.replace(/([A-Z-])/g, (a) => "-" + a.toLowerCase());\nconst processDocumentEvent = async (ev, scope) => {\n let type = camelToKebab(ev.type);\n let element = ev.target;\n if (scope === documentPrefix) {\n broadcast(documentPrefix, ev, type);\n return;\n }\n while (element && element.getAttribute) {\n const results = dispatch(element, "", ev, type);\n let cancelBubble = ev.cancelBubble;\n if (isPromise(results)) {\n await results;\n }\n cancelBubble || (cancelBubble = cancelBubble || ev.cancelBubble || element.hasAttribute("stoppropagation:" + ev.type));\n element = ev.bubbles && cancelBubble !== true ? element.parentElement : null;\n }\n};\nconst processWindowEvent = (ev) => {\n broadcast(windowPrefix, ev, camelToKebab(ev.type));\n};\nconst processReadyStateChange = () => {\n const readyState = doc.readyState;\n if (!hasInitialized && (readyState == "interactive" || readyState == "complete")) {\n roots.forEach(findShadowRoots);\n hasInitialized = 1;\n emitEvent("qinit");\n const riC = win.requestIdleCallback ?? win.setTimeout;\n riC.bind(win)(() => emitEvent("qidle"));\n if (events.has(":qvisible")) {\n const results = querySelectorAll("[on\\\\:qvisible]");\n const observer = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n observer.unobserve(entry.target);\n dispatch(entry.target, "", createEvent("qvisible", entry));\n }\n }\n });\n results.forEach((el) => observer.observe(el));\n }\n }\n};\nconst addEventListener = (el, eventName, handler, capture = false) => {\n el.addEventListener(eventName, handler, { capture, passive: false });\n};\nconst kebabToCamel = (eventName) => eventName.replace(/-./g, (a) => a[1].toUpperCase());\nconst processEventName = (event) => {\n const i = event.indexOf(":");\n let scope = "";\n let eventName = event;\n if (i >= 0) {\n const s = event.substring(0, i);\n if (s === "" || s === windowPrefix || s === documentPrefix) {\n scope = s;\n eventName = event.substring(i + 1);\n }\n }\n return { scope, eventName: kebabToCamel(eventName) };\n};\nconst processEventOrNode = (...eventNames) => {\n for (const eventNameOrNode of eventNames) {\n if (typeof eventNameOrNode === "string") {\n if (!events.has(eventNameOrNode)) {\n events.add(eventNameOrNode);\n const { scope, eventName } = processEventName(eventNameOrNode);\n if (scope === windowPrefix) {\n addEventListener(win, eventName, processWindowEvent, true);\n } else {\n roots.forEach(\n (root) => addEventListener(root, eventName, (ev) => processDocumentEvent(ev, scope), true)\n );\n }\n }\n } else {\n if (!roots.has(eventNameOrNode)) {\n events.forEach((kebabEventName) => {\n const { scope, eventName } = processEventName(kebabEventName);\n addEventListener(\n eventNameOrNode,\n eventName,\n (ev) => processDocumentEvent(ev, scope),\n true\n );\n });\n roots.add(eventNameOrNode);\n }\n }\n }\n};\nif (!("__q_context__" in doc)) {\n doc.__q_context__ = 0;\n const qwikevents = win.qwikevents;\n if (qwikevents) {\n if (Array.isArray(qwikevents)) {\n processEventOrNode(...qwikevents);\n } else {\n processEventOrNode(":click", ":input");\n }\n }\n win.qwikevents = {\n events,\n roots,\n push: processEventOrNode\n };\n addEventListener(doc, "readystatechange", processReadyStateChange);\n processReadyStateChange();\n}';
1434
1436
  var QWIK_BACKPATCH_EXECUTOR_MINIFIED = `const t='script[type="qwik/backpatch"]',e=document.currentScript;if(e){const o=e.closest("[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])");if(o){const e=o.querySelector(t);if(e){const t=JSON.parse(e.textContent||"[]"),n=document.createTreeWalker(o,NodeFilter.SHOW_ELEMENT);let r=n.currentNode,c=r.hasAttribute(":")?0:-1;for(let e=0;e<t.length;e+=3){const o=t[e],i=t[e+1];let s=t[e+2];for(;c<o&&(r=n.nextNode(),r);)r.hasAttribute(":")&&c++;const l=r;null==s||!1===s?l.removeAttribute(i):("boolean"==typeof s&&(s=""),l.setAttribute(i,s))}}}}`;
1435
1437
  var QWIK_BACKPATCH_EXECUTOR_DEBUG = `const BACKPATCH_DATA_SELECTOR = 'script[type="qwik/backpatch"]';
1436
1438
  const executorScript = document.currentScript;
@@ -1485,7 +1487,7 @@ function getQwikBackpatchExecutorScript(opts = {}) {
1485
1487
 
1486
1488
  // packages/qwik/src/server/ssr-node.ts
1487
1489
  import { _isJSXNode as isJSXNode, _EMPTY_ARRAY, _EFFECT_BACK_REF } from "@qwik.dev/core/internal";
1488
- import { isDev as isDev4 } from "@qwik.dev/core/build";
1490
+ import { isDev as isDev5 } from "@qwik.dev/core/build";
1489
1491
  var SsrNode = class {
1490
1492
  constructor(parentComponent, id, attributesIndex, cleanupQueue, vnodeData, currentFile) {
1491
1493
  this.parentComponent = parentComponent;
@@ -1510,7 +1512,7 @@ var SsrNode = class {
1510
1512
  this.flags = 1 /* Updatable */;
1511
1513
  this.attrs = this.attributesIndex >= 0 ? this.vnodeData[this.attributesIndex] : _EMPTY_ARRAY;
1512
1514
  this.parentComponent?.addChild(this);
1513
- if (isDev4 && id.indexOf("undefined") != -1) {
1515
+ if (isDev5 && id.indexOf("undefined") != -1) {
1514
1516
  throw new Error(`Invalid SSR node id: ${id}`);
1515
1517
  }
1516
1518
  }
@@ -1574,7 +1576,7 @@ var SsrNode = class {
1574
1576
  }
1575
1577
  }
1576
1578
  toString() {
1577
- if (isDev4) {
1579
+ if (isDev5) {
1578
1580
  let stringifiedAttrs = "";
1579
1581
  for (let i = 0; i < this.attrs.length; i += 2) {
1580
1582
  const key = this.attrs[i];
@@ -1658,13 +1660,6 @@ var SsrComponentFrame = class {
1658
1660
  projectionNode.setProp(QSlotParent, this.componentNode.id);
1659
1661
  return children;
1660
1662
  }
1661
- releaseUnclaimedProjections(unclaimedProjections) {
1662
- if (this.slots.length) {
1663
- unclaimedProjections.push(this);
1664
- unclaimedProjections.push(this.projectionScopedStyle);
1665
- unclaimedProjections.push.apply(unclaimedProjections, this.slots);
1666
- }
1667
- }
1668
1663
  };
1669
1664
 
1670
1665
  // packages/qwik/src/server/tag-nesting.ts
@@ -2154,8 +2149,6 @@ var SSRContainer = class extends _SharedContainer {
2154
2149
  __publicField(this, "depthFirstElementCount", -1);
2155
2150
  __publicField(this, "vNodeDatas", []);
2156
2151
  __publicField(this, "componentStack", []);
2157
- __publicField(this, "unclaimedProjections", []);
2158
- __publicField(this, "unclaimedProjectionComponentFrameQueue", []);
2159
2152
  __publicField(this, "cleanupQueue", []);
2160
2153
  __publicField(this, "$instanceHash$", hash());
2161
2154
  // Temporary flag to find missing roots after the state was serialized
@@ -2261,7 +2254,7 @@ var SSRContainer = class extends _SharedContainer {
2261
2254
  containerAttributes[QContainerAttr] = "paused" /* PAUSED */;
2262
2255
  containerAttributes[QRuntimeAttr] = "2";
2263
2256
  containerAttributes[QVersionAttr] = this.$version$ ?? "dev";
2264
- containerAttributes[QRenderAttr] = (qRender ? qRender + "-" : "") + (isDev5 ? "ssr-dev" : "ssr");
2257
+ containerAttributes[QRenderAttr] = (qRender ? qRender + "-" : "") + (isDev6 ? "ssr-dev" : "ssr");
2265
2258
  containerAttributes[QBaseAttr] = this.$buildBase$ || "";
2266
2259
  containerAttributes[QLocaleAttr] = this.$locale$;
2267
2260
  containerAttributes[QManifestHashAttr] = this.resolvedManifest.manifest.manifestHash;
@@ -2310,7 +2303,7 @@ var SSRContainer = class extends _SharedContainer {
2310
2303
  this.write(" " + Q_PROPS_SEPARATOR);
2311
2304
  if (key !== null) {
2312
2305
  this.write(`="${key}"`);
2313
- } else if (isDev5) {
2306
+ } else if (isDev6) {
2314
2307
  this.write('=""');
2315
2308
  }
2316
2309
  if (constAttrs && constAttrs.length) {
@@ -2429,13 +2422,38 @@ var SSRContainer = class extends _SharedContainer {
2429
2422
  const localProjectionDepth = this.getComponentFrame()?.projectionDepth || 0;
2430
2423
  return this.getComponentFrame(localProjectionDepth);
2431
2424
  }
2432
- /** Writes closing data to vNodeData for component boundaries and mark unclaimed projections */
2433
- closeComponent() {
2425
+ /** Writes closing data to vNodeData for component boundaries and emit unclaimed projections inline */
2426
+ async closeComponent() {
2434
2427
  const componentFrame = this.componentStack.pop();
2435
- componentFrame.releaseUnclaimedProjections(this.unclaimedProjections);
2428
+ await this.emitUnclaimedProjectionForComponent(componentFrame);
2436
2429
  this.closeFragment();
2437
2430
  this.currentComponentNode = this.currentComponentNode?.parentComponent || null;
2438
2431
  }
2432
+ async emitUnclaimedProjectionForComponent(componentFrame) {
2433
+ if (componentFrame.slots.length === 0) {
2434
+ return;
2435
+ }
2436
+ this.openElement(QTemplate, null, ["hidden", true, "aria-hidden", "true"], null);
2437
+ const scopedStyleId = componentFrame.projectionScopedStyle;
2438
+ for (let i = 0; i < componentFrame.slots.length; i += 2) {
2439
+ const slotName = componentFrame.slots[i];
2440
+ const children = componentFrame.slots[i + 1];
2441
+ this.openFragment(
2442
+ isDev6 ? [DEBUG_TYPE, "P" /* Projection */, QSlotParent, componentFrame.componentNode.id] : [QSlotParent, componentFrame.componentNode.id]
2443
+ );
2444
+ const lastNode = this.getOrCreateLastNode();
2445
+ if (lastNode.vnodeData) {
2446
+ lastNode.vnodeData[0] |= 16 /* SERIALIZE */;
2447
+ }
2448
+ componentFrame.componentNode.setProp(slotName, lastNode.id);
2449
+ await _walkJSX(this, children, {
2450
+ currentStyleScoped: scopedStyleId,
2451
+ parentComponentFrame: componentFrame.projectionComponentFrame
2452
+ });
2453
+ this.closeFragment();
2454
+ }
2455
+ this.closeElement();
2456
+ }
2439
2457
  /** Write a text node with correct escaping. Save the length of the text node in the vNodeData. */
2440
2458
  textNode(text) {
2441
2459
  this.write(escapeHTML(text));
@@ -2467,14 +2485,8 @@ var SSRContainer = class extends _SharedContainer {
2467
2485
  }
2468
2486
  return this.lastNode;
2469
2487
  }
2470
- executeChores() {
2471
- if (!this.lastNode) {
2472
- return;
2473
- }
2474
- return _executeSsrChores(this, this.lastNode);
2475
- }
2476
2488
  addUnclaimedProjection(frame, name, children) {
2477
- this.unclaimedProjections.push(frame, null, name, children);
2489
+ frame.slots.push(name, children);
2478
2490
  }
2479
2491
  $processInjectionsFromManifest$() {
2480
2492
  const injections = this.resolvedManifest.manifest.injections;
@@ -2525,18 +2537,15 @@ var SSRContainer = class extends _SharedContainer {
2525
2537
  emitContainerData() {
2526
2538
  return maybeThen(
2527
2539
  this.resolvePromiseAttributes(),
2528
- () => maybeThen(
2529
- this.emitUnclaimedProjection(),
2530
- () => maybeThen(this.emitStateData(), () => {
2531
- this.$noMoreRoots$ = true;
2532
- this.emitVNodeData();
2533
- preloaderPost(this, this.renderOptions, this.$serverData$?.nonce);
2534
- this.emitSyncFnsData();
2535
- this.emitPatchDataIfNeeded();
2536
- this.emitExecutorIfNeeded();
2537
- this.emitQwikLoaderAtBottomIfNeeded();
2538
- })
2539
- )
2540
+ () => maybeThen(this.emitStateData(), () => {
2541
+ this.$noMoreRoots$ = true;
2542
+ this.emitVNodeData();
2543
+ preloaderPost(this, this.renderOptions, this.$serverData$?.nonce);
2544
+ this.emitSyncFnsData();
2545
+ this.emitPatchDataIfNeeded();
2546
+ this.emitExecutorIfNeeded();
2547
+ this.emitQwikLoaderAtBottomIfNeeded();
2548
+ })
2540
2549
  );
2541
2550
  }
2542
2551
  /**
@@ -2736,7 +2745,7 @@ var SSRContainer = class extends _SharedContainer {
2736
2745
  scriptAttrs.push("nonce", this.renderOptions.serverData.nonce);
2737
2746
  }
2738
2747
  this.openElement("script", null, scriptAttrs);
2739
- const backpatchScript = getQwikBackpatchExecutorScript({ debug: isDev5 });
2748
+ const backpatchScript = getQwikBackpatchExecutorScript({ debug: isDev6 });
2740
2749
  this.write(backpatchScript);
2741
2750
  this.closeElement();
2742
2751
  }
@@ -2798,57 +2807,6 @@ var SSRContainer = class extends _SharedContainer {
2798
2807
  this.closeElement();
2799
2808
  }
2800
2809
  }
2801
- async emitUnclaimedProjection() {
2802
- const unclaimedProjections = this.unclaimedProjections;
2803
- if (unclaimedProjections.length) {
2804
- const previousCurrentComponentNode = this.currentComponentNode;
2805
- try {
2806
- this.openElement(QTemplate, null, ["hidden", true, "aria-hidden", "true"], null);
2807
- let idx = 0;
2808
- let ssrComponentNode = null;
2809
- let ssrComponentFrame = null;
2810
- let scopedStyleId = null;
2811
- for (let i = 0; i < unclaimedProjections.length; i += 4) {
2812
- this.unclaimedProjectionComponentFrameQueue.push(
2813
- unclaimedProjections[i]
2814
- );
2815
- }
2816
- while (idx < unclaimedProjections.length) {
2817
- const value = unclaimedProjections[idx++];
2818
- if (value instanceof SsrComponentFrame) {
2819
- ssrComponentNode = this.currentComponentNode = value.componentNode;
2820
- ssrComponentFrame = value;
2821
- scopedStyleId = unclaimedProjections[idx++];
2822
- } else if (typeof value === "string") {
2823
- const children = unclaimedProjections[idx++];
2824
- if (!ssrComponentFrame?.hasSlot(value)) {
2825
- ssrComponentFrame && ssrComponentFrame.componentNode.removeProp(value);
2826
- continue;
2827
- }
2828
- this.unclaimedProjectionComponentFrameQueue.shift();
2829
- this.openFragment(
2830
- isDev5 ? [DEBUG_TYPE, "P" /* Projection */, QSlotParent, ssrComponentNode.id] : [QSlotParent, ssrComponentNode.id]
2831
- );
2832
- const lastNode = this.getOrCreateLastNode();
2833
- if (lastNode.vnodeData) {
2834
- lastNode.vnodeData[0] |= 16 /* SERIALIZE */;
2835
- }
2836
- ssrComponentNode?.setProp(value, lastNode.id);
2837
- await _walkJSX(this, children, {
2838
- currentStyleScoped: scopedStyleId,
2839
- parentComponentFrame: null
2840
- });
2841
- this.closeFragment();
2842
- } else {
2843
- throw Error();
2844
- }
2845
- }
2846
- this.closeElement();
2847
- } finally {
2848
- this.currentComponentNode = previousCurrentComponentNode;
2849
- }
2850
- }
2851
- }
2852
2810
  // Keep in sync with process-vnode-data.unit.ts
2853
2811
  emitVNodeSeparators(lastSerializedIdx, elementIdx) {
2854
2812
  let skipCount = elementIdx - lastSerializedIdx;
@@ -2877,7 +2835,7 @@ var SSRContainer = class extends _SharedContainer {
2877
2835
  }
2878
2836
  createAndPushFrame(elementName, depthFirstElementIdx, currentFile) {
2879
2837
  let tagNesting = 10 /* ANYTHING */;
2880
- if (isDev5) {
2838
+ if (isDev6) {
2881
2839
  if (!this.currentElementFrame) {
2882
2840
  tagNesting = initialTag(elementName);
2883
2841
  } else {
@@ -2923,7 +2881,7 @@ var SSRContainer = class extends _SharedContainer {
2923
2881
  elementName,
2924
2882
  depthFirstElementIdx,
2925
2883
  vNodeData: [0 /* NONE */],
2926
- currentFile: isDev5 ? currentFile || null : null
2884
+ currentFile: isDev6 ? currentFile || null : null
2927
2885
  };
2928
2886
  this.currentElementFrame = frame;
2929
2887
  this.vNodeDatas.push(frame.vNodeData);
@@ -2955,7 +2913,7 @@ var SSRContainer = class extends _SharedContainer {
2955
2913
  let value = attrs[i];
2956
2914
  let styleScopedId = null;
2957
2915
  if (isSSRUnsafeAttr(key)) {
2958
- if (isDev5) {
2916
+ if (isDev6) {
2959
2917
  throw qError(32 /* unsafeAttr */, [key]);
2960
2918
  }
2961
2919
  continue;
@@ -3010,7 +2968,7 @@ var SSRContainer = class extends _SharedContainer {
3010
2968
  }
3011
2969
  if (tag === "textarea" && key === "value") {
3012
2970
  if (value && typeof value !== "string") {
3013
- if (isDev5) {
2971
+ if (isDev6) {
3014
2972
  throw qError(23 /* wrongTextareaValue */, [currentFile, value]);
3015
2973
  }
3016
2974
  continue;
@@ -20,7 +20,7 @@
20
20
  "@qwik.dev/core": "workspace:*"
21
21
  },
22
22
  "devDependencies": {
23
- "vite": "7.2.2"
23
+ "vite": "7.3.1"
24
24
  },
25
25
  "scripts": {
26
26
  "dev": "vite",
@@ -833,7 +833,6 @@
833
833
  for (
834
834
  T &= 15, N = R[G + 2] + (M & Pe[T]), M >>= T, O -= T;
835
835
  O < 15;
836
-
837
836
  )
838
837
  (U--, (M |= (S.read_byte(q++) & 255) << O), (O += 8));
839
838
  ((C = M & H), (R = y), (D = k), (G = (D + C) * 3), (T = R[G]));
@@ -991,7 +990,6 @@
991
990
  D = g.write,
992
991
  T = D < g.read ? g.read - D - 1 : g.end - D;
993
992
  ;
994
-
995
993
  )
996
994
  switch (t) {
997
995
  case so:
@@ -1346,7 +1344,6 @@
1346
1344
  w = n.write,
1347
1345
  S = w < n.read ? n.read - w - 1 : n.end - w;
1348
1346
  ;
1349
-
1350
1347
  ) {
1351
1348
  let R, D, T, M, O, q, U, B;
1352
1349
  switch (r) {
@@ -1579,7 +1576,6 @@
1579
1576
  for (
1580
1577
  C = I == 18 ? 7 : I - 14, Y = I == 18 ? 11 : 3;
1581
1578
  d < u + C;
1582
-
1583
1579
  ) {
1584
1580
  if (k !== 0) g = V;
1585
1581
  else
@@ -2327,7 +2323,6 @@
2327
2323
  for (
2328
2324
  t.push(Math.floor(e._length / 4294967296)), t.push(e._length | 0);
2329
2325
  t.length;
2330
-
2331
2326
  )
2332
2327
  e._block(t.splice(0, 16));
2333
2328
  return (e.reset(), n);
@@ -4526,7 +4521,6 @@
4526
4521
  for (
4527
4522
  d(H), m = n(c);
4528
4523
  m !== null && (!(m.expirationTime > H) || (I && !T()));
4529
-
4530
4524
  ) {
4531
4525
  var z = m.callback;
4532
4526
  if (typeof z == "function") {
@@ -5013,7 +5007,6 @@
5013
5007
  i = o.length - 1,
5014
5008
  l = s.length - 1;
5015
5009
  1 <= i && 0 <= l && o[i] !== s[l];
5016
-
5017
5010
  )
5018
5011
  l--;
5019
5012
  for (; 1 <= i && 0 <= l; i--, l--)
@@ -5418,7 +5411,6 @@
5418
5411
  po.innerHTML = "<svg>" + t.valueOf().toString() + "</svg>",
5419
5412
  t = po.firstChild;
5420
5413
  e.firstChild;
5421
-
5422
5414
  )
5423
5415
  e.removeChild(e.firstChild);
5424
5416
  for (; t.firstChild; ) e.appendChild(t.firstChild);
@@ -5932,7 +5924,6 @@
5932
5924
  o = e.expirationTimes,
5933
5925
  s = e.pendingLanes;
5934
5926
  0 < s;
5935
-
5936
5927
  ) {
5937
5928
  var i = 31 - rt(s),
5938
5929
  l = 1 << i,
@@ -8166,7 +8157,6 @@
8166
8157
  for (
8167
8158
  e = e.return;
8168
8159
  e !== null && e.tag !== 5 && e.tag !== 3 && e.tag !== 13;
8169
-
8170
8160
  )
8171
8161
  e = e.return;
8172
8162
  Be = e;
@@ -9853,7 +9843,6 @@ Error generating stack: ` +
9853
9843
  r = n,
9854
9844
  n = t.child;
9855
9845
  n !== null;
9856
-
9857
9846
  )
9858
9847
  ((s = n),
9859
9848
  (e = r),
@@ -10539,7 +10528,6 @@ Error generating stack: ` +
10539
10528
  for (
10540
10529
  e = t.child, n = Jt(e, e.pendingProps), t.child = n, n.return = t;
10541
10530
  e.sibling !== null;
10542
-
10543
10531
  )
10544
10532
  ((e = e.sibling),
10545
10533
  (n = n.sibling = Jt(e, e.pendingProps)),
@@ -10703,7 +10691,6 @@ Error generating stack: ` +
10703
10691
  m !== s || (r !== 0 && m.nodeType !== 3) || (c = i + r),
10704
10692
  m.nodeType === 3 && (i += m.nodeValue.length),
10705
10693
  (x = m.firstChild) !== null;
10706
-
10707
10694
  )
10708
10695
  ((h = m), (m = x));
10709
10696
  for (;;) {
@@ -10726,7 +10713,6 @@ Error generating stack: ` +
10726
10713
  for (
10727
10714
  ol = { focusedElem: e, selectionRange: n }, ts = !1, P = t;
10728
10715
  P !== null;
10729
-
10730
10716
  )
10731
10717
  if (
10732
10718
  ((t = P),
@@ -10862,7 +10848,6 @@ Error generating stack: ` +
10862
10848
  for (
10863
10849
  e.sibling.return = e.return, e = e.sibling;
10864
10850
  e.tag !== 5 && e.tag !== 6 && e.tag !== 18;
10865
-
10866
10851
  ) {
10867
10852
  if (e.flags & 2 || e.child === null || e.tag === 4) continue e;
10868
10853
  ((e.child.return = e), (e = e.child));
@@ -11782,7 +11767,6 @@ Error generating stack: ` +
11782
11767
  e.pingedLanes &= ~t,
11783
11768
  e = e.expirationTimes;
11784
11769
  0 < t;
11785
-
11786
11770
  ) {
11787
11771
  var n = 31 - rt(t),
11788
11772
  r = 1 << n;
@@ -12466,7 +12450,6 @@ Error generating stack: ` +
12466
12450
  n = Ep(t, null, r, n),
12467
12451
  t.child = n;
12468
12452
  n;
12469
-
12470
12453
  )
12471
12454
  ((n.flags = (n.flags & -3) | 4096), (n = n.sibling));
12472
12455
  else {
@@ -12536,7 +12519,6 @@ Error generating stack: ` +
12536
12519
  for (
12537
12520
  s = t.child, s !== null && (s.return = t);
12538
12521
  s !== null;
12539
-
12540
12522
  ) {
12541
12523
  var l = s.dependencies;
12542
12524
  if (l !== null) {
@@ -18985,7 +18967,6 @@ Error generating stack: ` +
18985
18967
  var l = i;
18986
18968
  l < t.length - 1 &&
18987
18969
  t[l].charCodeAt(1) + 1 === t[l + 1].charCodeAt(1);
18988
-
18989
18970
  )
18990
18971
  l += 1;
18991
18972
  var c = 1 + l - i;
@@ -67,6 +67,7 @@ declare interface Container {
67
67
  $renderPromise$: Promise<void> | null;
68
68
  $resolveRenderPromise$: (() => void) | null;
69
69
  $cursorCount$: number;
70
+ $pausedCursorCount$: number;
70
71
  handleError(err: any, $host$: HostElement | null): void;
71
72
  getParentHost(host: HostElement): HostElement | null;
72
73
  setContext<T>(host: HostElement, context: ContextId<T>, value: T): void;
@@ -238,15 +239,13 @@ declare const enum EffectProperty {
238
239
  * - `EffectProperty.COMPONENT` if component
239
240
  * - `EffectProperty.VNODE` if VNode
240
241
  */
241
- declare type EffectSubscription = [
242
- Consumer,
243
- // EffectSubscriptionProp.CONSUMER
244
- EffectProperty | string,
245
- // EffectSubscriptionProp.PROPERTY or string for attributes
246
- Set<SignalImpl | StoreTarget> | null,
247
- // EffectSubscriptionProp.BACK_REF
248
- SubscriptionData | null
249
- ];
242
+ declare class EffectSubscription {
243
+ consumer: Consumer;
244
+ property: EffectProperty | string;
245
+ backRef: Set<SignalImpl | StoreTarget> | null;
246
+ data: SubscriptionData | null;
247
+ constructor(consumer: Consumer, property: EffectProperty | string, backRef?: Set<SignalImpl | StoreTarget> | null, data?: SubscriptionData | null);
248
+ }
250
249
 
251
250
  /**
252
251
  * Creates a simple DOM structure for testing components.
@@ -754,12 +753,13 @@ export declare function trigger(root: Element, queryOrElement: string | Element
754
753
  declare type ValueOrPromise<T> = T | Promise<T>;
755
754
 
756
755
  /** @internal */
757
- declare abstract class VNode extends BackRef {
756
+ declare abstract class VNode implements BackRef {
758
757
  flags: VNodeFlags;
759
758
  parent: VNode | null;
760
759
  previousSibling: VNode | null | undefined;
761
760
  nextSibling: VNode | null | undefined;
762
761
  props: Props | null;
762
+ [_EFFECT_BACK_REF]: Map<any, any> | undefined;
763
763
  slotParent: VNode | null;
764
764
  dirty: ChoreBits;
765
765
  dirtyChildren: VNode[] | null;
@@ -770,7 +770,7 @@ declare abstract class VNode extends BackRef {
770
770
 
771
771
  /** @public */
772
772
  export declare function vnode_fromJSX(jsx: JSXOutput): {
773
- vParent: _ElementVNode | _VirtualVNode;
773
+ vParent: _VirtualVNode | _ElementVNode;
774
774
  vNode: _VNode | null;
775
775
  document: _QDocument;
776
776
  container: ClientContainer_2;