@livetemplate/client 0.8.6 → 0.8.8

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.
@@ -17,6 +17,7 @@ export declare class EventDelegator {
17
17
  private readonly context;
18
18
  private readonly logger;
19
19
  constructor(context: EventDelegationContext, logger: Logger);
20
+ private extractButtonData;
20
21
  setupEventDelegation(): void;
21
22
  setupWindowEventDelegation(): void;
22
23
  setupClickAwayDelegation(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"event-delegation.d.ts","sourceRoot":"","sources":["../../dom/event-delegation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,IAAI,OAAO,GAAG,IAAI,CAAC;IACpC,sBAAsB,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IACzB,mBAAmB,CACjB,IAAI,EAAE,eAAe,GAAG,IAAI,EAC5B,MAAM,EAAE,iBAAiB,GAAG,IAAI,EAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAChC,IAAI,CAAC;IACR,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,sBAAsB,IAAI,MAAM,GAAG,SAAS,CAAC;IAC7C,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,MAAM;IAGjC,oBAAoB,IAAI,IAAI;IAqY5B,0BAA0B,IAAI,IAAI;IAoGlC,wBAAwB,IAAI,IAAI;IAgDhC,oBAAoB,IAAI,IAAI;IAmH5B;;;;OAIG;IACH,wBAAwB,IAAI,IAAI;IAmGhC;;;;OAIG;IACH,wBAAwB,IAAI,IAAI;CA0GjC"}
1
+ {"version":3,"file":"event-delegation.d.ts","sourceRoot":"","sources":["../../dom/event-delegation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,IAAI,OAAO,GAAG,IAAI,CAAC;IACpC,sBAAsB,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IACzB,mBAAmB,CACjB,IAAI,EAAE,eAAe,GAAG,IAAI,EAC5B,MAAM,EAAE,iBAAiB,GAAG,IAAI,EAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAChC,IAAI,CAAC;IACR,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,sBAAsB,IAAI,MAAM,GAAG,SAAS,CAAC;IAC7C,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,MAAM;IAGjC,OAAO,CAAC,iBAAiB;IAYzB,oBAAoB,IAAI,IAAI;IAuZ5B,0BAA0B,IAAI,IAAI;IAoGlC,wBAAwB,IAAI,IAAI;IAgDhC,oBAAoB,IAAI,IAAI;IAmH5B;;;;OAIG;IACH,wBAAwB,IAAI,IAAI;IAmGhC;;;;OAIG;IACH,wBAAwB,IAAI,IAAI;CA0GjC"}
@@ -11,6 +11,17 @@ class EventDelegator {
11
11
  this.context = context;
12
12
  this.logger = logger;
13
13
  }
14
+ extractButtonData(button, data) {
15
+ if (button.value) {
16
+ data.value = this.context.parseValue(button.value);
17
+ }
18
+ Array.from(button.attributes).forEach((attr) => {
19
+ if (attr.name.startsWith("data-") && attr.name !== "data-key") {
20
+ const key = attr.name.slice(5);
21
+ data[key] = this.context.parseValue(attr.value);
22
+ }
23
+ });
24
+ }
14
25
  setupEventDelegation() {
15
26
  const wrapperElement = this.context.getWrapperElement();
16
27
  if (!wrapperElement)
@@ -69,6 +80,7 @@ class EventDelegator {
69
80
  while (element && element !== currentWrapper.parentElement) {
70
81
  let action = element.getAttribute(attrName);
71
82
  let actionElement = element;
83
+ let isOrphanButton = false;
72
84
  // Check for lvt-persist on form submit (auto-persist to database)
73
85
  if (!action && eventType === "submit" && element instanceof HTMLFormElement) {
74
86
  const persistTable = element.getAttribute("lvt-persist");
@@ -77,6 +89,24 @@ class EventDelegator {
77
89
  actionElement = element;
78
90
  }
79
91
  }
92
+ // Orphan button detection (Tier 1: formless standalone buttons).
93
+ // A <button name="action"> outside any form triggers the named action directly.
94
+ // Resolution order for click events:
95
+ // 1. lvt-click attribute (Tier 2 — already checked above)
96
+ // 2. Orphan button name (Tier 1 — checked here)
97
+ if (!action && eventType === "click") {
98
+ const btn = element instanceof HTMLButtonElement ? element : null;
99
+ if (btn &&
100
+ btn.name &&
101
+ !btn.disabled &&
102
+ btn.type !== "reset" &&
103
+ btn.form === null &&
104
+ !btn.hasAttribute("commandfor")) {
105
+ action = btn.name;
106
+ actionElement = btn;
107
+ isOrphanButton = true;
108
+ }
109
+ }
80
110
  // Auto-intercept forms without lvt-submit (progressive complexity).
81
111
  // Button name IS the action. Resolution order:
82
112
  // 1. submitter.name (button name = action)
@@ -186,15 +216,7 @@ class EventDelegator {
186
216
  // - data-* attributes → data keys
187
217
  const submitter2 = targetElement.__lvtSubmitter;
188
218
  if (submitter2) {
189
- if (submitter2.value) {
190
- message.data.value = this.context.parseValue(submitter2.value);
191
- }
192
- Array.from(submitter2.attributes).forEach((attr) => {
193
- if (attr.name.startsWith("data-") && attr.name !== "data-key") {
194
- const key = attr.name.slice(5);
195
- message.data[key] = this.context.parseValue(attr.value);
196
- }
197
- });
219
+ this.extractButtonData(submitter2, message.data);
198
220
  delete targetElement.__lvtSubmitter;
199
221
  }
200
222
  this.logger.debug("Form data collected:", message.data);
@@ -213,6 +235,9 @@ class EventDelegator {
213
235
  message.data[key] = this.context.parseValue(targetElement.value);
214
236
  }
215
237
  }
238
+ if (isOrphanButton) {
239
+ this.extractButtonData(actionElement, message.data);
240
+ }
216
241
  Array.from(targetElement.attributes).forEach((attr) => {
217
242
  if (attr.name.startsWith("lvt-data-")) {
218
243
  const key = attr.name.replace("lvt-data-", "");
@@ -1 +1 @@
1
- {"version":3,"file":"event-delegation.js","sourceRoot":"","sources":["../../dom/event-delegation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-delegation.js","sourceRoot":"","sources":["../../dom/event-delegation.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";var LiveTemplateClient=(()=>{var fe=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var $e=Object.getOwnPropertyNames;var Be=Object.prototype.hasOwnProperty;var Pe=(o,e)=>{for(var t in e)fe(o,t,{get:e[t],enumerable:!0})},Ke=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of $e(e))!Be.call(o,r)&&r!==t&&fe(o,r,{get:()=>e[r],enumerable:!(n=We(e,r))||n.enumerable});return o};var Ve=o=>Ke(fe({},"__esModule",{value:!0}),o);var ft={};Pe(ft,{LiveTemplateClient:()=>pe,checkLvtConfirm:()=>Q,compareHTML:()=>De,extractLvtData:()=>Re,loadAndApplyUpdate:()=>Oe,setupReactiveAttributeListeners:()=>ie});var Se=11;function je(o,e){var t=e.attributes,n,r,s,a,i;if(!(e.nodeType===Se||o.nodeType===Se)){for(var l=t.length-1;l>=0;l--)n=t[l],r=n.name,s=n.namespaceURI,a=n.value,s?(r=n.localName||r,i=o.getAttributeNS(s,r),i!==a&&(n.prefix==="xmlns"&&(r=n.name),o.setAttributeNS(s,r,a))):(i=o.getAttribute(r),i!==a&&o.setAttribute(r,a));for(var c=o.attributes,d=c.length-1;d>=0;d--)n=c[d],r=n.name,s=n.namespaceURI,s?(r=n.localName||r,e.hasAttributeNS(s,r)||o.removeAttributeNS(s,r)):e.hasAttribute(r)||o.removeAttribute(r)}}var X,qe="http://www.w3.org/1999/xhtml",I=typeof document=="undefined"?void 0:document,ze=!!I&&"content"in I.createElement("template"),Ge=!!I&&I.createRange&&"createContextualFragment"in I.createRange();function Xe(o){var e=I.createElement("template");return e.innerHTML=o,e.content.childNodes[0]}function Je(o){X||(X=I.createRange(),X.selectNode(I.body));var e=X.createContextualFragment(o);return e.childNodes[0]}function Ye(o){var e=I.createElement("body");return e.innerHTML=o,e.childNodes[0]}function Qe(o){return o=o.trim(),ze?Xe(o):Ge?Je(o):Ye(o)}function J(o,e){var t=o.nodeName,n=e.nodeName,r,s;return t===n?!0:(r=t.charCodeAt(0),s=n.charCodeAt(0),r<=90&&s>=97?t===n.toUpperCase():s<=90&&r>=97?n===t.toUpperCase():!1)}function Ze(o,e){return!e||e===qe?I.createElement(o):I.createElementNS(e,o)}function et(o,e){for(var t=o.firstChild;t;){var n=t.nextSibling;e.appendChild(t),t=n}return e}function he(o,e,t){o[t]!==e[t]&&(o[t]=e[t],o[t]?o.setAttribute(t,""):o.removeAttribute(t))}var Te={OPTION:function(o,e){var t=o.parentNode;if(t){var n=t.nodeName.toUpperCase();n==="OPTGROUP"&&(t=t.parentNode,n=t&&t.nodeName.toUpperCase()),n==="SELECT"&&!t.hasAttribute("multiple")&&(o.hasAttribute("selected")&&!e.selected&&(o.setAttribute("selected","selected"),o.removeAttribute("selected")),t.selectedIndex=-1)}he(o,e,"selected")},INPUT:function(o,e){he(o,e,"checked"),he(o,e,"disabled"),o.value!==e.value&&(o.value=e.value),e.hasAttribute("value")||o.removeAttribute("value")},TEXTAREA:function(o,e){var t=e.value;o.value!==t&&(o.value=t);var n=o.firstChild;if(n){var r=n.nodeValue;if(r==t||!t&&r==o.placeholder)return;n.nodeValue=t}},SELECT:function(o,e){if(!e.hasAttribute("multiple")){for(var t=-1,n=0,r=o.firstChild,s,a;r;)if(a=r.nodeName&&r.nodeName.toUpperCase(),a==="OPTGROUP")s=r,r=s.firstChild,r||(r=s.nextSibling,s=null);else{if(a==="OPTION"){if(r.hasAttribute("selected")){t=n;break}n++}r=r.nextSibling,!r&&s&&(r=s.nextSibling,s=null)}o.selectedIndex=t}}},V=1,Me=11,Le=3,ke=8;function $(){}function tt(o){if(o)return o.getAttribute&&o.getAttribute("id")||o.id}function nt(o){return function(t,n,r){if(r||(r={}),typeof n=="string")if(t.nodeName==="#document"||t.nodeName==="HTML"||t.nodeName==="BODY"){var s=n;n=I.createElement("html"),n.innerHTML=s}else n=Qe(n);else n.nodeType===Me&&(n=n.firstElementChild);var a=r.getNodeKey||tt,i=r.onBeforeNodeAdded||$,l=r.onNodeAdded||$,c=r.onBeforeElUpdated||$,d=r.onElUpdated||$,g=r.onBeforeNodeDiscarded||$,p=r.onNodeDiscarded||$,h=r.onBeforeElChildrenUpdated||$,S=r.skipFromChildren||$,C=r.addChild||function(f,v){return f.appendChild(v)},w=r.childrenOnly===!0,y=Object.create(null),m=[];function u(f){m.push(f)}function M(f,v){if(f.nodeType===V)for(var k=f.firstChild;k;){var b=void 0;v&&(b=a(k))?u(b):(p(k),k.firstChild&&M(k,v)),k=k.nextSibling}}function F(f,v,k){g(f)!==!1&&(v&&v.removeChild(f),p(f),M(f,k))}function N(f){if(f.nodeType===V||f.nodeType===Me)for(var v=f.firstChild;v;){var k=a(v);k&&(y[k]=v),N(v),v=v.nextSibling}}N(t);function q(f){l(f);for(var v=f.firstChild;v;){var k=v.nextSibling,b=a(v);if(b){var A=y[b];A&&J(v,A)?(v.parentNode.replaceChild(A,v),E(A,v)):q(v)}else q(v);v=k}}function L(f,v,k){for(;v;){var b=v.nextSibling;(k=a(v))?u(k):F(v,f,!0),v=b}}function E(f,v,k){var b=a(v);if(b&&delete y[b],!k){var A=c(f,v);if(A===!1||(A instanceof HTMLElement&&(f=A,N(f)),o(f,v),d(f),h(f,v)===!1))return}f.nodeName!=="TEXTAREA"?x(f,v):Te.TEXTAREA(f,v)}function x(f,v){var k=S(f,v),b=v.firstChild,A=f.firstChild,P,O,K,z,D;e:for(;b;){for(z=b.nextSibling,P=a(b);!k&&A;){if(K=A.nextSibling,b.isSameNode&&b.isSameNode(A)){b=z,A=K;continue e}O=a(A);var G=A.nodeType,W=void 0;if(G===b.nodeType&&(G===V?(P?P!==O&&((D=y[P])?K===D?W=!1:(f.insertBefore(D,A),O?u(O):F(A,f,!0),A=D,O=a(A)):W=!1):O&&(W=!1),W=W!==!1&&J(A,b),W&&E(A,b)):(G===Le||G==ke)&&(W=!0,A.nodeValue!==b.nodeValue&&(A.nodeValue=b.nodeValue))),W){b=z,A=K;continue e}O?u(O):F(A,f,!0),A=K}if(P&&(D=y[P])&&J(D,b))k||C(f,D),E(D,b);else{var ge=i(b);ge!==!1&&(ge&&(b=ge),b.actualize&&(b=b.actualize(f.ownerDocument||I)),C(f,b),q(b))}b=z,A=K}L(f,A,O);var Ae=Te[f.nodeName];Ae&&Ae(f,v)}var T=t,R=T.nodeType,U=n.nodeType;if(!w){if(R===V)U===V?J(t,n)||(p(t),T=et(t,Ze(n.nodeName,n.namespaceURI))):T=n;else if(R===Le||R===ke){if(U===R)return T.nodeValue!==n.nodeValue&&(T.nodeValue=n.nodeValue),T;T=n}}if(T===n)p(t);else{if(n.isSameNode&&n.isSameNode(T))return;if(E(T,n,w),m)for(var H=0,B=m.length;H<B;H++){var _=y[m[H]];_&&F(_,_.parentNode,!1)}}return!w&&T!==t&&t.parentNode&&(T.actualize&&(T=T.actualize(t.ownerDocument||I)),t.parentNode.replaceChild(T,t)),T}}var rt=nt(je),xe=rt;var me=["text","textarea","number","email","password","search","tel","url","date","time","datetime-local","color","range"];var Y=class{constructor(e){this.logger=e;this.wrapperElement=null;this.focusableElements=[];this.lastFocusedElement=null;this.lastFocusedSelectionStart=null;this.lastFocusedSelectionEnd=null}attach(e){this.wrapperElement=e,e&&(this.updateFocusableElements(),this.setupFocusTracking())}reset(){this.wrapperElement=null,this.focusableElements=[],this.lastFocusedElement=null,this.lastFocusedSelectionStart=null,this.lastFocusedSelectionEnd=null}updateFocusableElements(){if(!this.wrapperElement)return;let n=`${me.map(r=>r==="textarea"?"textarea:not([disabled])":`input[type="${r}"]:not([disabled])`).join(", ")}, select:not([disabled]), button:not([disabled]), [contenteditable="true"], [tabindex]:not([tabindex="-1"])`;this.focusableElements=Array.from(this.wrapperElement.querySelectorAll(n))}setupFocusTracking(){if(!this.wrapperElement)return;let e=this.wrapperElement.getAttribute("data-lvt-id"),t=`__lvt_focus_tracker_${e}`,n=`__lvt_blur_tracker_${e}`,r=a=>{var l;let i=a.target;!i||!((l=this.wrapperElement)!=null&&l.contains(i))||(this.isTextualInput(i)||i instanceof HTMLSelectElement)&&(this.lastFocusedElement=i,this.logger.debug("[Focus] Tracked focus on:",i.tagName,i.id||i.getAttribute("name")),this.isTextualInput(i)&&(this.lastFocusedSelectionStart=i.selectionStart,this.lastFocusedSelectionEnd=i.selectionEnd))},s=a=>{var l;let i=a.target;!i||!((l=this.wrapperElement)!=null&&l.contains(i))||this.isTextualInput(i)&&i===this.lastFocusedElement&&(this.lastFocusedSelectionStart=i.selectionStart,this.lastFocusedSelectionEnd=i.selectionEnd,this.logger.debug("[Focus] Saved cursor on blur:",this.lastFocusedSelectionStart,"-",this.lastFocusedSelectionEnd))};document[t]&&document.removeEventListener("focus",document[t],!0),document[n]&&document.removeEventListener("blur",document[n],!0),document[t]=r,document[n]=s,document.addEventListener("focus",r,!0),document.addEventListener("blur",s,!0),this.logger.debug("[Focus] Focus tracking set up")}restoreFocusedElement(){var r,s,a;if(this.logger.debug("[Focus] restoreFocusedElement - lastFocusedElement:",(r=this.lastFocusedElement)==null?void 0:r.tagName,((s=this.lastFocusedElement)==null?void 0:s.id)||((a=this.lastFocusedElement)==null?void 0:a.getAttribute("name"))),!this.lastFocusedElement||!this.wrapperElement){this.logger.debug("[Focus] No element to restore");return}let e=this.getElementSelector(this.lastFocusedElement);if(this.logger.debug("[Focus] Selector for last focused:",e),!e){this.logger.debug("[Focus] Could not generate selector");return}let t=null;if(e.startsWith("data-focus-index-")){this.updateFocusableElements();let i=parseInt(e.replace("data-focus-index-",""),10);t=this.focusableElements[i]||null,this.logger.debug("[Focus] Found by index:",i,t==null?void 0:t.tagName)}else t=this.wrapperElement.querySelector(e),this.logger.debug("[Focus] Found by selector:",e,t==null?void 0:t.tagName);if(!t){this.logger.debug("[Focus] Element not found in updated DOM");return}let n=t.matches(":focus");this.logger.debug("[Focus] Already focused:",n),n||(t.focus(),this.logger.debug("[Focus] Restored focus")),this.isTextualInput(t)&&this.lastFocusedSelectionStart!==null&&this.lastFocusedSelectionEnd!==null&&(t.setSelectionRange(this.lastFocusedSelectionStart,this.lastFocusedSelectionEnd),this.logger.debug("[Focus] Restored cursor:",this.lastFocusedSelectionStart,"-",this.lastFocusedSelectionEnd))}isTextualInput(e){return e instanceof HTMLTextAreaElement?!0:e instanceof HTMLInputElement?me.indexOf(e.type)>=0:!1}getLastFocusedElement(){return this.lastFocusedElement}getElementSelector(e){if(e.id)return`#${e.id}`;if(e.name)return`[name="${e.name}"]`;if(e.getAttribute("data-key"))return`[data-key="${e.getAttribute("data-key")}"]`;let t=this.focusableElements.indexOf(e);return t>=0?`data-focus-index-${t}`:null}};function Ce(o){o.querySelectorAll("[lvt-scroll]").forEach(t=>{let n=t,r=n.getAttribute("lvt-scroll"),s=n.getAttribute("lvt-scroll-behavior")||"auto",a=parseInt(n.getAttribute("lvt-scroll-threshold")||"100",10);if(r)switch(r){case"bottom":n.scrollTo({top:n.scrollHeight,behavior:s});break;case"bottom-sticky":{n.scrollHeight-n.scrollTop-n.clientHeight<=a&&n.scrollTo({top:n.scrollHeight,behavior:s});break}case"top":n.scrollTo({top:0,behavior:s});break;case"preserve":break;default:console.warn(`Unknown lvt-scroll mode: ${r}`)}})}function _e(o){o.querySelectorAll("[lvt-highlight]").forEach(t=>{let n=t.getAttribute("lvt-highlight"),r=parseInt(t.getAttribute("lvt-highlight-duration")||"500",10),s=t.getAttribute("lvt-highlight-color")||"#ffc107";if(!n)return;let a=t,i=a.style.backgroundColor,l=a.style.transition;a.style.transition=`background-color ${r}ms ease-out`,a.style.backgroundColor=s,setTimeout(()=>{a.style.backgroundColor=i,setTimeout(()=>{a.style.transition=l},r)},50)})}function Fe(o){if(o.querySelectorAll("[lvt-animate]").forEach(t=>{let n=t.getAttribute("lvt-animate"),r=parseInt(t.getAttribute("lvt-animate-duration")||"300",10);if(!n)return;let s=t;switch(s.style.setProperty("--lvt-animate-duration",`${r}ms`),n){case"fade":s.style.animation="lvt-fade-in var(--lvt-animate-duration) ease-out";break;case"slide":s.style.animation="lvt-slide-in var(--lvt-animate-duration) ease-out";break;case"scale":s.style.animation="lvt-scale-in var(--lvt-animate-duration) ease-out";break;default:console.warn(`Unknown lvt-animate mode: ${n}`)}s.addEventListener("animationend",()=>{s.style.animation=""},{once:!0})}),!document.getElementById("lvt-animate-styles")){let t=document.createElement("style");t.id="lvt-animate-styles",t.textContent=`
1
+ "use strict";var LiveTemplateClient=(()=>{var ge=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var $e=Object.getOwnPropertyNames;var Be=Object.prototype.hasOwnProperty;var Pe=(o,e)=>{for(var t in e)ge(o,t,{get:e[t],enumerable:!0})},Ke=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of $e(e))!Be.call(o,r)&&r!==t&&ge(o,r,{get:()=>e[r],enumerable:!(n=We(e,r))||n.enumerable});return o};var Ve=o=>Ke(ge({},"__esModule",{value:!0}),o);var ft={};Pe(ft,{LiveTemplateClient:()=>ue,checkLvtConfirm:()=>Y,compareHTML:()=>Oe,extractLvtData:()=>Re,loadAndApplyUpdate:()=>De,setupReactiveAttributeListeners:()=>se});var Se=11;function je(o,e){var t=e.attributes,n,r,s,a,i;if(!(e.nodeType===Se||o.nodeType===Se)){for(var l=t.length-1;l>=0;l--)n=t[l],r=n.name,s=n.namespaceURI,a=n.value,s?(r=n.localName||r,i=o.getAttributeNS(s,r),i!==a&&(n.prefix==="xmlns"&&(r=n.name),o.setAttributeNS(s,r,a))):(i=o.getAttribute(r),i!==a&&o.setAttribute(r,a));for(var c=o.attributes,d=c.length-1;d>=0;d--)n=c[d],r=n.name,s=n.namespaceURI,s?(r=n.localName||r,e.hasAttributeNS(s,r)||o.removeAttributeNS(s,r)):e.hasAttribute(r)||o.removeAttribute(r)}}var G,qe="http://www.w3.org/1999/xhtml",F=typeof document=="undefined"?void 0:document,ze=!!F&&"content"in F.createElement("template"),Ge=!!F&&F.createRange&&"createContextualFragment"in F.createRange();function Xe(o){var e=F.createElement("template");return e.innerHTML=o,e.content.childNodes[0]}function Je(o){G||(G=F.createRange(),G.selectNode(F.body));var e=G.createContextualFragment(o);return e.childNodes[0]}function Ye(o){var e=F.createElement("body");return e.innerHTML=o,e.childNodes[0]}function Qe(o){return o=o.trim(),ze?Xe(o):Ge?Je(o):Ye(o)}function X(o,e){var t=o.nodeName,n=e.nodeName,r,s;return t===n?!0:(r=t.charCodeAt(0),s=n.charCodeAt(0),r<=90&&s>=97?t===n.toUpperCase():s<=90&&r>=97?n===t.toUpperCase():!1)}function Ze(o,e){return!e||e===qe?F.createElement(o):F.createElementNS(e,o)}function et(o,e){for(var t=o.firstChild;t;){var n=t.nextSibling;e.appendChild(t),t=n}return e}function fe(o,e,t){o[t]!==e[t]&&(o[t]=e[t],o[t]?o.setAttribute(t,""):o.removeAttribute(t))}var Te={OPTION:function(o,e){var t=o.parentNode;if(t){var n=t.nodeName.toUpperCase();n==="OPTGROUP"&&(t=t.parentNode,n=t&&t.nodeName.toUpperCase()),n==="SELECT"&&!t.hasAttribute("multiple")&&(o.hasAttribute("selected")&&!e.selected&&(o.setAttribute("selected","selected"),o.removeAttribute("selected")),t.selectedIndex=-1)}fe(o,e,"selected")},INPUT:function(o,e){fe(o,e,"checked"),fe(o,e,"disabled"),o.value!==e.value&&(o.value=e.value),e.hasAttribute("value")||o.removeAttribute("value")},TEXTAREA:function(o,e){var t=e.value;o.value!==t&&(o.value=t);var n=o.firstChild;if(n){var r=n.nodeValue;if(r==t||!t&&r==o.placeholder)return;n.nodeValue=t}},SELECT:function(o,e){if(!e.hasAttribute("multiple")){for(var t=-1,n=0,r=o.firstChild,s,a;r;)if(a=r.nodeName&&r.nodeName.toUpperCase(),a==="OPTGROUP")s=r,r=s.firstChild,r||(r=s.nextSibling,s=null);else{if(a==="OPTION"){if(r.hasAttribute("selected")){t=n;break}n++}r=r.nextSibling,!r&&s&&(r=s.nextSibling,s=null)}o.selectedIndex=t}}},V=1,Me=11,Le=3,ke=8;function W(){}function tt(o){if(o)return o.getAttribute&&o.getAttribute("id")||o.id}function nt(o){return function(t,n,r){if(r||(r={}),typeof n=="string")if(t.nodeName==="#document"||t.nodeName==="HTML"||t.nodeName==="BODY"){var s=n;n=F.createElement("html"),n.innerHTML=s}else n=Qe(n);else n.nodeType===Me&&(n=n.firstElementChild);var a=r.getNodeKey||tt,i=r.onBeforeNodeAdded||W,l=r.onNodeAdded||W,c=r.onBeforeElUpdated||W,d=r.onElUpdated||W,g=r.onBeforeNodeDiscarded||W,u=r.onNodeDiscarded||W,m=r.onBeforeElChildrenUpdated||W,T=r.skipFromChildren||W,C=r.addChild||function(h,f){return h.appendChild(f)},A=r.childrenOnly===!0,y=Object.create(null),v=[];function w(h){v.push(h)}function p(h,f){if(h.nodeType===V)for(var k=h.firstChild;k;){var E=void 0;f&&(E=a(k))?w(E):(u(k),k.firstChild&&p(k,f)),k=k.nextSibling}}function x(h,f,k){g(h)!==!1&&(f&&f.removeChild(h),u(h),p(h,k))}function H(h){if(h.nodeType===V||h.nodeType===Me)for(var f=h.firstChild;f;){var k=a(f);k&&(y[k]=f),H(f),f=f.nextSibling}}H(t);function $(h){l(h);for(var f=h.firstChild;f;){var k=f.nextSibling,E=a(f);if(E){var S=y[E];S&&X(f,S)?(f.parentNode.replaceChild(S,f),M(S,f)):$(f)}else $(f);f=k}}function we(h,f,k){for(;f;){var E=f.nextSibling;(k=a(f))?w(k):x(f,h,!0),f=E}}function M(h,f,k){var E=a(f);if(E&&delete y[E],!k){var S=c(h,f);if(S===!1||(S instanceof HTMLElement&&(h=S,H(h)),o(h,f),d(h),m(h,f)===!1))return}h.nodeName!=="TEXTAREA"?L(h,f):Te.TEXTAREA(h,f)}function L(h,f){var k=T(h,f),E=f.firstChild,S=h.firstChild,P,U,K,q,D;e:for(;E;){for(q=E.nextSibling,P=a(E);!k&&S;){if(K=S.nextSibling,E.isSameNode&&E.isSameNode(S)){E=q,S=K;continue e}U=a(S);var z=S.nodeType,O=void 0;if(z===E.nodeType&&(z===V?(P?P!==U&&((D=y[P])?K===D?O=!1:(h.insertBefore(D,S),U?w(U):x(S,h,!0),S=D,U=a(S)):O=!1):U&&(O=!1),O=O!==!1&&X(S,E),O&&M(S,E)):(z===Le||z==ke)&&(O=!0,S.nodeValue!==E.nodeValue&&(S.nodeValue=E.nodeValue))),O){E=q,S=K;continue e}U?w(U):x(S,h,!0),S=K}if(P&&(D=y[P])&&X(D,E))k||C(h,D),M(D,E);else{var pe=i(E);pe!==!1&&(pe&&(E=pe),E.actualize&&(E=E.actualize(h.ownerDocument||F)),C(h,E),$(E))}E=q,S=K}we(h,S,U);var Ae=Te[h.nodeName];Ae&&Ae(h,f)}var b=t,_=b.nodeType,R=n.nodeType;if(!A){if(_===V)R===V?X(t,n)||(u(t),b=et(t,Ze(n.nodeName,n.namespaceURI))):b=n;else if(_===Le||_===ke){if(R===_)return b.nodeValue!==n.nodeValue&&(b.nodeValue=n.nodeValue),b;b=n}}if(b===n)u(t);else{if(n.isSameNode&&n.isSameNode(b))return;if(M(b,n,A),v)for(var I=0,N=v.length;I<N;I++){var B=y[v[I]];B&&x(B,B.parentNode,!1)}}return!A&&b!==t&&t.parentNode&&(b.actualize&&(b=b.actualize(t.ownerDocument||F)),t.parentNode.replaceChild(b,t)),b}}var rt=nt(je),xe=rt;var he=["text","textarea","number","email","password","search","tel","url","date","time","datetime-local","color","range"];var J=class{constructor(e){this.logger=e;this.wrapperElement=null;this.focusableElements=[];this.lastFocusedElement=null;this.lastFocusedSelectionStart=null;this.lastFocusedSelectionEnd=null}attach(e){this.wrapperElement=e,e&&(this.updateFocusableElements(),this.setupFocusTracking())}reset(){this.wrapperElement=null,this.focusableElements=[],this.lastFocusedElement=null,this.lastFocusedSelectionStart=null,this.lastFocusedSelectionEnd=null}updateFocusableElements(){if(!this.wrapperElement)return;let n=`${he.map(r=>r==="textarea"?"textarea:not([disabled])":`input[type="${r}"]:not([disabled])`).join(", ")}, select:not([disabled]), button:not([disabled]), [contenteditable="true"], [tabindex]:not([tabindex="-1"])`;this.focusableElements=Array.from(this.wrapperElement.querySelectorAll(n))}setupFocusTracking(){if(!this.wrapperElement)return;let e=this.wrapperElement.getAttribute("data-lvt-id"),t=`__lvt_focus_tracker_${e}`,n=`__lvt_blur_tracker_${e}`,r=a=>{var l;let i=a.target;!i||!((l=this.wrapperElement)!=null&&l.contains(i))||(this.isTextualInput(i)||i instanceof HTMLSelectElement)&&(this.lastFocusedElement=i,this.logger.debug("[Focus] Tracked focus on:",i.tagName,i.id||i.getAttribute("name")),this.isTextualInput(i)&&(this.lastFocusedSelectionStart=i.selectionStart,this.lastFocusedSelectionEnd=i.selectionEnd))},s=a=>{var l;let i=a.target;!i||!((l=this.wrapperElement)!=null&&l.contains(i))||this.isTextualInput(i)&&i===this.lastFocusedElement&&(this.lastFocusedSelectionStart=i.selectionStart,this.lastFocusedSelectionEnd=i.selectionEnd,this.logger.debug("[Focus] Saved cursor on blur:",this.lastFocusedSelectionStart,"-",this.lastFocusedSelectionEnd))};document[t]&&document.removeEventListener("focus",document[t],!0),document[n]&&document.removeEventListener("blur",document[n],!0),document[t]=r,document[n]=s,document.addEventListener("focus",r,!0),document.addEventListener("blur",s,!0),this.logger.debug("[Focus] Focus tracking set up")}restoreFocusedElement(){var r,s,a;if(this.logger.debug("[Focus] restoreFocusedElement - lastFocusedElement:",(r=this.lastFocusedElement)==null?void 0:r.tagName,((s=this.lastFocusedElement)==null?void 0:s.id)||((a=this.lastFocusedElement)==null?void 0:a.getAttribute("name"))),!this.lastFocusedElement||!this.wrapperElement){this.logger.debug("[Focus] No element to restore");return}let e=this.getElementSelector(this.lastFocusedElement);if(this.logger.debug("[Focus] Selector for last focused:",e),!e){this.logger.debug("[Focus] Could not generate selector");return}let t=null;if(e.startsWith("data-focus-index-")){this.updateFocusableElements();let i=parseInt(e.replace("data-focus-index-",""),10);t=this.focusableElements[i]||null,this.logger.debug("[Focus] Found by index:",i,t==null?void 0:t.tagName)}else t=this.wrapperElement.querySelector(e),this.logger.debug("[Focus] Found by selector:",e,t==null?void 0:t.tagName);if(!t){this.logger.debug("[Focus] Element not found in updated DOM");return}let n=t.matches(":focus");this.logger.debug("[Focus] Already focused:",n),n||(t.focus(),this.logger.debug("[Focus] Restored focus")),this.isTextualInput(t)&&this.lastFocusedSelectionStart!==null&&this.lastFocusedSelectionEnd!==null&&(t.setSelectionRange(this.lastFocusedSelectionStart,this.lastFocusedSelectionEnd),this.logger.debug("[Focus] Restored cursor:",this.lastFocusedSelectionStart,"-",this.lastFocusedSelectionEnd))}isTextualInput(e){return e instanceof HTMLTextAreaElement?!0:e instanceof HTMLInputElement?he.indexOf(e.type)>=0:!1}getLastFocusedElement(){return this.lastFocusedElement}getElementSelector(e){if(e.id)return`#${e.id}`;if(e.name)return`[name="${e.name}"]`;if(e.getAttribute("data-key"))return`[data-key="${e.getAttribute("data-key")}"]`;let t=this.focusableElements.indexOf(e);return t>=0?`data-focus-index-${t}`:null}};function Ce(o){o.querySelectorAll("[lvt-scroll]").forEach(t=>{let n=t,r=n.getAttribute("lvt-scroll"),s=n.getAttribute("lvt-scroll-behavior")||"auto",a=parseInt(n.getAttribute("lvt-scroll-threshold")||"100",10);if(r)switch(r){case"bottom":n.scrollTo({top:n.scrollHeight,behavior:s});break;case"bottom-sticky":{n.scrollHeight-n.scrollTop-n.clientHeight<=a&&n.scrollTo({top:n.scrollHeight,behavior:s});break}case"top":n.scrollTo({top:0,behavior:s});break;case"preserve":break;default:console.warn(`Unknown lvt-scroll mode: ${r}`)}})}function _e(o){o.querySelectorAll("[lvt-highlight]").forEach(t=>{let n=t.getAttribute("lvt-highlight"),r=parseInt(t.getAttribute("lvt-highlight-duration")||"500",10),s=t.getAttribute("lvt-highlight-color")||"#ffc107";if(!n)return;let a=t,i=a.style.backgroundColor,l=a.style.transition;a.style.transition=`background-color ${r}ms ease-out`,a.style.backgroundColor=s,setTimeout(()=>{a.style.backgroundColor=i,setTimeout(()=>{a.style.transition=l},r)},50)})}function Fe(o){if(o.querySelectorAll("[lvt-animate]").forEach(t=>{let n=t.getAttribute("lvt-animate"),r=parseInt(t.getAttribute("lvt-animate-duration")||"300",10);if(!n)return;let s=t;switch(s.style.setProperty("--lvt-animate-duration",`${r}ms`),n){case"fade":s.style.animation="lvt-fade-in var(--lvt-animate-duration) ease-out";break;case"slide":s.style.animation="lvt-slide-in var(--lvt-animate-duration) ease-out";break;case"scale":s.style.animation="lvt-scale-in var(--lvt-animate-duration) ease-out";break;default:console.warn(`Unknown lvt-animate mode: ${n}`)}s.addEventListener("animationend",()=>{s.style.animation=""},{once:!0})}),!document.getElementById("lvt-animate-styles")){let t=document.createElement("style");t.id="lvt-animate-styles",t.textContent=`
2
2
  @keyframes lvt-fade-in {
3
3
  from { opacity: 0; }
4
4
  to { opacity: 1; }
@@ -23,7 +23,7 @@
23
23
  transform: scale(1);
24
24
  }
25
25
  }
26
- `,document.head.appendChild(t)}}function j(o,e){let t=null;return function(...r){let s=this;t!==null&&clearTimeout(t),t=window.setTimeout(()=>{o.apply(s,r)},e)}}function ve(o,e){let t=!1;return function(...r){let s=this;t||(o.apply(s,r),t=!0,setTimeout(()=>{t=!1},e))}}function Q(o){if(o.hasAttribute("lvt-confirm")){let e=o.getAttribute("lvt-confirm");if(e&&!confirm(e))return!1}return!0}function Re(o){let e={},t=o.attributes;for(let n=0;n<t.length;n++){let r=t[n];if(r.name.startsWith("lvt-data-")){let s=r.name.substring(9);e[s]=r.value}}return e}var Z=class{constructor(e,t){this.context=e;this.logger=t}setupEventDelegation(){let e=this.context.getWrapperElement();if(!e)return;let t=["click","submit","change","input","search","keydown","keyup","focus","blur","mouseenter","mouseleave"],n=e.getAttribute("data-lvt-id"),r=this.context.getRateLimitedHandlers();t.forEach(s=>{let a=`__lvt_delegated_${s}_${n}`,i=document[a];i&&document.removeEventListener(s,i,!1);let l=c=>{var C,w;let d=this.context.getWrapperElement();if(!d)return;let g=c.target;if(s==="submit"&&(window.__lvtSubmitListenerTriggered=!0,window.__lvtSubmitEventTarget=(C=c.target)==null?void 0:C.tagName),this.logger.debug("Event listener triggered:",s,c.target),!g)return;let p=g,h=!1;for(;p;){if(p===d){h=!0;break}p=p.parentElement}if(s==="submit"&&(window.__lvtInWrapper=h,window.__lvtWrapperElement=d.getAttribute("data-lvt-id")),!h)return;let S=`lvt-${s}`;for(p=g;p&&p!==d.parentElement;){let y=p.getAttribute(S),m=p;if(!y&&s==="submit"&&p instanceof HTMLFormElement){let u=p.getAttribute("lvt-persist");u&&(y=`persist:${u}`,m=p)}if(!y&&s==="submit"&&p instanceof HTMLFormElement&&!p.hasAttribute("lvt-no-intercept")){let u=c.submitter;u instanceof HTMLButtonElement&&u.name?y=u.name:p.name?y=p.name:y="submit",m=p,u&&(p.__lvtSubmitter=u);let M=p.closest("dialog");M&&((w=p.getAttribute("method"))==null?void 0:w.toLowerCase())==="dialog"&&(p.__lvtCloseDialog=M)}if(!y&&(s==="change"||s==="input"||s==="search")&&((s==="input"||s==="search")&&p.hasAttribute("lvt-change")&&(y=p.getAttribute("lvt-change"),m=p),!y)){let u=p.closest("form");u&&u.hasAttribute("lvt-change")&&(y=u.getAttribute("lvt-change"),m=u)}if(y!=null&&m){if(s==="submit"&&(window.__lvtActionFound=y,window.__lvtActionElement=m.tagName),s==="submit"&&c.preventDefault(),(s==="keydown"||s==="keyup")&&m.hasAttribute("lvt-key")){let L=m.getAttribute("lvt-key");if(L&&c.key!==L){p=p.parentElement;continue}}let u=m,M=()=>{if(this.logger.debug("handleAction called",{action:y,eventType:s,targetElement:u}),!Q(u)){this.logger.debug("Action cancelled by user:",y);return}let L={action:y,data:{}};if(u instanceof HTMLFormElement){this.logger.debug("Processing form element");let E=new FormData(u),x=Array.from(u.querySelectorAll('input[type="checkbox"][name]')),T=new Set(x.map(_=>_.name));T.forEach(_=>{L.data[_]=!1});let R=new Set(Array.from(u.querySelectorAll('input[type="password"][name]')).map(_=>_.name)),U=u.__lvtSubmitter,H=(U==null?void 0:U.name)||"action";E.forEach((_,f)=>{f===H||f==="action"||f==="lvt-action"||(T.has(f)?(L.data[f]=!0,this.logger.debug("Converted checkbox",f,"to true")):R.has(f)?L.data[f]=_:L.data[f]=this.context.parseValue(_))});let B=u.__lvtSubmitter;B&&(B.value&&(L.data.value=this.context.parseValue(B.value)),Array.from(B.attributes).forEach(_=>{if(_.name.startsWith("data-")&&_.name!=="data-key"){let f=_.name.slice(5);L.data[f]=this.context.parseValue(_.value)}}),delete u.__lvtSubmitter),this.logger.debug("Form data collected:",L.data)}else if(s==="change"||s==="input"||s==="search"){if(u instanceof HTMLInputElement){let E=u.name||"value";L.data[E]=this.context.parseValue(u.value)}else if(u instanceof HTMLSelectElement){let E=u.name||"value";L.data[E]=this.context.parseValue(u.value)}else if(u instanceof HTMLTextAreaElement){let E=u.name||"value";L.data[E]=this.context.parseValue(u.value)}}if(Array.from(u.attributes).forEach(E=>{if(E.name.startsWith("lvt-data-")){let x=E.name.replace("lvt-data-","");L.data[x]=this.context.parseValue(E.value)}}),Array.from(u.attributes).forEach(E=>{if(E.name.startsWith("lvt-value-")){let x=E.name.replace("lvt-value-","");L.data[x]=this.context.parseValue(E.value)}}),s==="submit"&&u instanceof HTMLFormElement){let x=c.submitter,T=null;x&&x.hasAttribute("lvt-disable-with")&&(T=x.textContent,x.disabled=!0,x.textContent=x.getAttribute("lvt-disable-with"),this.logger.debug("Disabled submit button")),this.context.setActiveSubmission(u,x||null,T),u.querySelectorAll('input[type="file"][lvt-upload]').forEach(U=>{let H=U.getAttribute("lvt-upload");H&&(this.logger.debug("Triggering pending uploads for:",H),this.context.triggerPendingUploads(H))}),u.dispatchEvent(new CustomEvent("lvt:pending",{detail:L})),this.logger.debug("Emitted lvt:pending event")}if(this.logger.debug("About to send message:",L),this.logger.debug("WebSocket state:",this.context.getWebSocketReadyState()),this.context.send(L),this.logger.debug("send() called"),u instanceof HTMLFormElement){let E=u.__lvtCloseDialog;E&&(E.close(),delete u.__lvtCloseDialog)}},F=m.getAttribute("lvt-throttle"),N=m.getAttribute("lvt-debounce");if((F||N)&&s!=="search"){r.has(m)||r.set(m,new Map);let L=r.get(m),E=`${s}:${y}`,x=`__lvt_callback_${E}`,T=m;T[x]||(T[x]={current:M}),T[x].current=M;let R=L.get(E);if(!R){let U=()=>T[x].current();if(F){let H=parseInt(F,10);R=ve(U,H)}else if(N){let H=parseInt(N,10);R=j(U,H)}R&&L.set(E,R)}R&&R()}else s==="submit"&&(window.__lvtBeforeHandleAction=!0),M(),s==="submit"&&(window.__lvtAfterHandleAction=!0);return}p=p.parentElement}};document[a]=l,document.addEventListener(s,l,!1),this.logger.debug("Registered event listener:",s,"with key:",a)})}setupWindowEventDelegation(){let e=this.context.getWrapperElement();if(!e)return;let t=["keydown","keyup","scroll","resize","focus","blur"],n=e.getAttribute("data-lvt-id"),r=this.context.getRateLimitedHandlers();t.forEach(s=>{let a=`__lvt_window_${s}_${n}`,i=window[a];i&&window.removeEventListener(s,i);let l=c=>{let d=this.context.getWrapperElement();if(!d)return;let g=`lvt-window-${s}`;d.querySelectorAll(`[${g}]`).forEach(h=>{let S=h.getAttribute(g);if(!S)return;if((s==="keydown"||s==="keyup")&&h.hasAttribute("lvt-key")){let u=h.getAttribute("lvt-key");if(u&&c.key!==u)return}let C={action:S,data:{}};Array.from(h.attributes).forEach(u=>{if(u.name.startsWith("lvt-data-")){let M=u.name.replace("lvt-data-","");C.data[M]=this.context.parseValue(u.value)}}),Array.from(h.attributes).forEach(u=>{if(u.name.startsWith("lvt-value-")){let M=u.name.replace("lvt-value-","");C.data[M]=this.context.parseValue(u.value)}});let w=h.getAttribute("lvt-throttle"),y=h.getAttribute("lvt-debounce"),m=()=>this.context.send(C);if(w||y){r.has(h)||r.set(h,new Map);let u=r.get(h),M=`window-${s}:${S}`,F=u.get(M);if(!F){if(w){let N=parseInt(w,10);F=ve(m,N)}else if(y){let N=parseInt(y,10);F=j(m,N)}F&&u.set(M,F)}F&&F()}else m()})};window[a]=l,window.addEventListener(s,l)})}setupClickAwayDelegation(){let e=this.context.getWrapperElement();if(!e)return;let n=`__lvt_click_away_${e.getAttribute("data-lvt-id")}`,r=document[n];r&&document.removeEventListener("click",r);let s=a=>{let i=this.context.getWrapperElement();if(!i)return;let l=a.target;i.querySelectorAll("[lvt-click-away]").forEach(d=>{if(!d.contains(l)){let g=d.getAttribute("lvt-click-away");if(!g)return;let p={action:g,data:{}};Array.from(d.attributes).forEach(h=>{if(h.name.startsWith("lvt-data-")){let S=h.name.replace("lvt-data-","");p.data[S]=this.context.parseValue(h.value)}}),Array.from(d.attributes).forEach(h=>{if(h.name.startsWith("lvt-value-")){let S=h.name.replace("lvt-value-","");p.data[S]=this.context.parseValue(h.value)}}),this.context.send(p)}})};document[n]=s,document.addEventListener("click",s)}setupModalDelegation(){let e=this.context.getWrapperElement();if(!e)return;let t=e.getAttribute("data-lvt-id"),n=`__lvt_modal_open_${t}`,r=document[n];r&&document.removeEventListener("click",r);let s=w=>{var M;let y=this.context.getWrapperElement();if(!y)return;let m=(M=w.target)==null?void 0:M.closest("[lvt-modal-open]");if(!m||!y.contains(m))return;let u=m.getAttribute("lvt-modal-open");u&&(w.preventDefault(),this.context.openModal(u))};document[n]=s,document.addEventListener("click",s);let a=`__lvt_modal_close_${t}`,i=document[a];i&&document.removeEventListener("click",i);let l=w=>{var M;let y=(M=w.target)==null?void 0:M.closest("[lvt-modal-close]");if(!y)return;let m=y.getAttribute("lvt-modal-close");!m||!document.getElementById(m)||(w.preventDefault(),this.context.closeModal(m))};document[a]=l,document.addEventListener("click",l);let c=`__lvt_modal_backdrop_${t}`,d=document[c];d&&document.removeEventListener("click",d);let g=(w,y)=>{let m=w.getAttribute("data-modal-close-action");m?this.context.send({action:m,data:{}}):this.context.closeModal(y)},p=w=>{let y=w.target;if(!y.hasAttribute("data-modal-backdrop"))return;let m=y.getAttribute("data-modal-id");if(!m)return;let u=document.getElementById(m);u&&g(u,m)};document[c]=p,document.addEventListener("click",p);let h=`__lvt_modal_escape_${t}`,S=document[h];S&&document.removeEventListener("keydown",S);let C=w=>{if(w.key!=="Escape")return;let y=this.context.getWrapperElement();if(!y)return;let m=y.querySelectorAll('[role="dialog"]:not([hidden])');if(m.length>0){let u=m[m.length-1];u.id&&g(u,u.id)}};document[h]=C,document.addEventListener("keydown",C)}setupFocusTrapDelegation(){let e=this.context.getWrapperElement();if(!e)return;let n=`__lvt_focus_trap_${e.getAttribute("data-lvt-id")}`,r=document[n];r&&document.removeEventListener("keydown",r);let s=i=>{let l=["a[href]:not([disabled])","button:not([disabled])","textarea:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])",'[tabindex]:not([tabindex="-1"]):not([disabled])','[contenteditable="true"]'].join(", ");return Array.from(i.querySelectorAll(l)).filter(c=>{let d=c,g=window.getComputedStyle(d),p=g.display!=="none",h=g.visibility!=="hidden",S=d.offsetParent!==null||g.position==="fixed"||g.position==="absolute"||typeof process!="undefined"&&!1;return p&&h&&S})},a=i=>{if(i.key!=="Tab")return;let l=this.context.getWrapperElement();if(!l)return;let c=l.querySelectorAll("[lvt-focus-trap]"),d=null;if(c.forEach(S=>{S.contains(document.activeElement)&&(!d||S.contains(d))&&(d=S)}),d||c.forEach(S=>{let C=S,w=window.getComputedStyle(C);w.display!=="none"&&w.visibility!=="hidden"&&(d=S)}),!d)return;let g=s(d);if(g.length===0)return;let p=g[0],h=g[g.length-1];i.shiftKey?document.activeElement===p&&(i.preventDefault(),h.focus()):document.activeElement===h&&(i.preventDefault(),p.focus())};document[n]=a,document.addEventListener("keydown",a),this.logger.debug("Focus trap delegation set up")}setupAutofocusDelegation(){let e=this.context.getWrapperElement();if(!e)return;let n=`__lvt_autofocus_observer_${e.getAttribute("data-lvt-id")}`,r=e[n];r&&r.disconnect();let s=()=>{let i=this.context.getWrapperElement();if(!i)return;i.querySelectorAll("[lvt-autofocus]").forEach(c=>{let d=c,g=window.getComputedStyle(d),p=g.display!=="none",h=g.visibility!=="hidden",S=d.offsetParent!==null||g.position==="fixed"||g.position==="absolute"||d.tagName==="BODY"||typeof process!="undefined"&&!1,C=p&&h&&S,w=d.getAttribute("data-lvt-autofocused")==="true";C&&!w?(d.setAttribute("data-lvt-autofocused","true"),requestAnimationFrame(()=>{d.focus(),this.logger.debug("Autofocused element:",d.tagName,d.id||d.getAttribute("name"))})):!C&&w&&d.removeAttribute("data-lvt-autofocused")})};s();let a=new MutationObserver(i=>{let l=!1;i.forEach(c=>{c.type==="childList"&&c.addedNodes.length>0&&c.addedNodes.forEach(d=>{d instanceof Element&&(d.hasAttribute("lvt-autofocus")||d.querySelector("[lvt-autofocus]"))&&(l=!0)}),c.type==="attributes"&&(c.target.hasAttribute("lvt-autofocus")||c.attributeName==="hidden"||c.attributeName==="style"||c.attributeName==="class")&&(l=!0)}),l&&s()});a.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["hidden","style","class","lvt-autofocus"]}),e[n]=a,this.logger.debug("Autofocus delegation set up")}};var ee=class{constructor(e,t){this.context=e;this.logger=t;this.popstateListener=null}setup(e){let n=`__lvt_link_intercept_${e.getAttribute("data-lvt-id")}`,r=document[n];r&&document.removeEventListener("click",r);let s=a=>{var c;let i=(c=a.target)==null?void 0:c.closest("a[href]");if(!i)return;let l=this.context.getWrapperElement();!l||!l.contains(i)||this.shouldSkip(i)||(a.preventDefault(),this.navigate(i.href))};document.addEventListener("click",s),document[n]=s,this.popstateListener||(this.popstateListener=()=>{this.navigate(window.location.href,!1)},window.addEventListener("popstate",this.popstateListener))}shouldSkip(e){if(e.origin!==window.location.origin||e.target&&e.target!=="_self"||e.hasAttribute("download")||e.hasAttribute("lvt-no-intercept")||e.pathname===window.location.pathname&&e.hash)return!0;let t=e.protocol;return t!=="http:"&&t!=="https:"}async navigate(e,t=!0){try{let n=await fetch(e,{credentials:"include",headers:{Accept:"text/html"}});if(!n.ok){window.location.href=e;return}let r=await n.text();this.context.handleNavigationResponse(r),t&&window.history.pushState(null,"",e)}catch(n){window.location.href=e}}};var te=class{constructor(e,t){this.context=e;this.logger=t;this.infiniteScrollObserver=null;this.mutationObserver=null}setupInfiniteScrollObserver(){if(!this.context.getWrapperElement())return;let t=document.getElementById("scroll-sentinel");t&&(this.infiniteScrollObserver&&this.infiniteScrollObserver.disconnect(),this.infiniteScrollObserver=new IntersectionObserver(n=>{n[0].isIntersecting&&(this.logger.debug("Sentinel visible, sending load_more action"),this.context.send({action:"load_more"}))},{rootMargin:"200px"}),this.infiniteScrollObserver.observe(t),this.logger.debug("Observer set up successfully"))}setupInfiniteScrollMutationObserver(){let e=this.context.getWrapperElement();e&&(this.mutationObserver&&this.mutationObserver.disconnect(),this.mutationObserver=new MutationObserver(()=>{this.setupInfiniteScrollObserver()}),this.mutationObserver.observe(e,{childList:!0,subtree:!0}),this.logger.debug("MutationObserver set up successfully"))}teardown(){this.infiniteScrollObserver&&(this.infiniteScrollObserver.disconnect(),this.infiniteScrollObserver=null),this.mutationObserver&&(this.mutationObserver.disconnect(),this.mutationObserver=null)}};var ne=class{constructor(e){this.logger=e}open(e){let t=document.getElementById(e);if(!t){this.logger.warn(`Modal with id="${e}" not found`);return}t.removeAttribute("hidden"),t.style.display="flex",t.setAttribute("aria-hidden","false"),t.dispatchEvent(new CustomEvent("lvt:modal-opened",{bubbles:!0})),this.logger.info(`Opened modal: ${e}`);let n=t.querySelector("input, textarea, select");n&&setTimeout(()=>{let r=document.activeElement,s=i=>i?i===document.body||i.offsetParent!==null?!0:i.getClientRects().length>0:!1;(!r||!t.contains(r)||!s(r))&&n.focus()},100)}close(e){let t=document.getElementById(e);if(!t){this.logger.warn(`Modal with id="${e}" not found`);return}t.setAttribute("hidden",""),t.style.display="none",t.setAttribute("aria-hidden","true"),t.dispatchEvent(new CustomEvent("lvt:modal-closed",{bubbles:!0})),this.logger.info(`Closed modal: ${e}`)}};var re=class{constructor(){this.bar=null}show(){if(this.bar)return;let e=document.createElement("div");if(e.style.cssText=`
26
+ `,document.head.appendChild(t)}}function j(o,e){let t=null;return function(...r){let s=this;t!==null&&clearTimeout(t),t=window.setTimeout(()=>{o.apply(s,r)},e)}}function me(o,e){let t=!1;return function(...r){let s=this;t||(o.apply(s,r),t=!0,setTimeout(()=>{t=!1},e))}}function Y(o){if(o.hasAttribute("lvt-confirm")){let e=o.getAttribute("lvt-confirm");if(e&&!confirm(e))return!1}return!0}function Re(o){let e={},t=o.attributes;for(let n=0;n<t.length;n++){let r=t[n];if(r.name.startsWith("lvt-data-")){let s=r.name.substring(9);e[s]=r.value}}return e}var Q=class{constructor(e,t){this.context=e;this.logger=t}extractButtonData(e,t){e.value&&(t.value=this.context.parseValue(e.value)),Array.from(e.attributes).forEach(n=>{if(n.name.startsWith("data-")&&n.name!=="data-key"){let r=n.name.slice(5);t[r]=this.context.parseValue(n.value)}})}setupEventDelegation(){let e=this.context.getWrapperElement();if(!e)return;let t=["click","submit","change","input","search","keydown","keyup","focus","blur","mouseenter","mouseleave"],n=e.getAttribute("data-lvt-id"),r=this.context.getRateLimitedHandlers();t.forEach(s=>{let a=`__lvt_delegated_${s}_${n}`,i=document[a];i&&document.removeEventListener(s,i,!1);let l=c=>{var C,A;let d=this.context.getWrapperElement();if(!d)return;let g=c.target;if(s==="submit"&&(window.__lvtSubmitListenerTriggered=!0,window.__lvtSubmitEventTarget=(C=c.target)==null?void 0:C.tagName),this.logger.debug("Event listener triggered:",s,c.target),!g)return;let u=g,m=!1;for(;u;){if(u===d){m=!0;break}u=u.parentElement}if(s==="submit"&&(window.__lvtInWrapper=m,window.__lvtWrapperElement=d.getAttribute("data-lvt-id")),!m)return;let T=`lvt-${s}`;for(u=g;u&&u!==d.parentElement;){let y=u.getAttribute(T),v=u,w=!1;if(!y&&s==="submit"&&u instanceof HTMLFormElement){let p=u.getAttribute("lvt-persist");p&&(y=`persist:${p}`,v=u)}if(!y&&s==="click"){let p=u instanceof HTMLButtonElement?u:null;p&&p.name&&!p.disabled&&p.type!=="reset"&&p.form===null&&!p.hasAttribute("commandfor")&&(y=p.name,v=p,w=!0)}if(!y&&s==="submit"&&u instanceof HTMLFormElement&&!u.hasAttribute("lvt-no-intercept")){let p=c.submitter;p instanceof HTMLButtonElement&&p.name?y=p.name:u.name?y=u.name:y="submit",v=u,p&&(u.__lvtSubmitter=p);let x=u.closest("dialog");x&&((A=u.getAttribute("method"))==null?void 0:A.toLowerCase())==="dialog"&&(u.__lvtCloseDialog=x)}if(!y&&(s==="change"||s==="input"||s==="search")&&((s==="input"||s==="search")&&u.hasAttribute("lvt-change")&&(y=u.getAttribute("lvt-change"),v=u),!y)){let p=u.closest("form");p&&p.hasAttribute("lvt-change")&&(y=p.getAttribute("lvt-change"),v=p)}if(y!=null&&v){if(s==="submit"&&(window.__lvtActionFound=y,window.__lvtActionElement=v.tagName),s==="submit"&&c.preventDefault(),(s==="keydown"||s==="keyup")&&v.hasAttribute("lvt-key")){let M=v.getAttribute("lvt-key");if(M&&c.key!==M){u=u.parentElement;continue}}let p=v,x=()=>{if(this.logger.debug("handleAction called",{action:y,eventType:s,targetElement:p}),!Y(p)){this.logger.debug("Action cancelled by user:",y);return}let M={action:y,data:{}};if(p instanceof HTMLFormElement){this.logger.debug("Processing form element");let L=new FormData(p),b=Array.from(p.querySelectorAll('input[type="checkbox"][name]')),_=new Set(b.map(h=>h.name));_.forEach(h=>{M.data[h]=!1});let R=new Set(Array.from(p.querySelectorAll('input[type="password"][name]')).map(h=>h.name)),I=p.__lvtSubmitter,N=(I==null?void 0:I.name)||"action";L.forEach((h,f)=>{f===N||f==="action"||f==="lvt-action"||(_.has(f)?(M.data[f]=!0,this.logger.debug("Converted checkbox",f,"to true")):R.has(f)?M.data[f]=h:M.data[f]=this.context.parseValue(h))});let B=p.__lvtSubmitter;B&&(this.extractButtonData(B,M.data),delete p.__lvtSubmitter),this.logger.debug("Form data collected:",M.data)}else if(s==="change"||s==="input"||s==="search"){if(p instanceof HTMLInputElement){let L=p.name||"value";M.data[L]=this.context.parseValue(p.value)}else if(p instanceof HTMLSelectElement){let L=p.name||"value";M.data[L]=this.context.parseValue(p.value)}else if(p instanceof HTMLTextAreaElement){let L=p.name||"value";M.data[L]=this.context.parseValue(p.value)}}if(w&&this.extractButtonData(v,M.data),Array.from(p.attributes).forEach(L=>{if(L.name.startsWith("lvt-data-")){let b=L.name.replace("lvt-data-","");M.data[b]=this.context.parseValue(L.value)}}),Array.from(p.attributes).forEach(L=>{if(L.name.startsWith("lvt-value-")){let b=L.name.replace("lvt-value-","");M.data[b]=this.context.parseValue(L.value)}}),s==="submit"&&p instanceof HTMLFormElement){let b=c.submitter,_=null;b&&b.hasAttribute("lvt-disable-with")&&(_=b.textContent,b.disabled=!0,b.textContent=b.getAttribute("lvt-disable-with"),this.logger.debug("Disabled submit button")),this.context.setActiveSubmission(p,b||null,_),p.querySelectorAll('input[type="file"][lvt-upload]').forEach(I=>{let N=I.getAttribute("lvt-upload");N&&(this.logger.debug("Triggering pending uploads for:",N),this.context.triggerPendingUploads(N))}),p.dispatchEvent(new CustomEvent("lvt:pending",{detail:M})),this.logger.debug("Emitted lvt:pending event")}if(this.logger.debug("About to send message:",M),this.logger.debug("WebSocket state:",this.context.getWebSocketReadyState()),this.context.send(M),this.logger.debug("send() called"),p instanceof HTMLFormElement){let L=p.__lvtCloseDialog;L&&(L.close(),delete p.__lvtCloseDialog)}},H=v.getAttribute("lvt-throttle"),$=v.getAttribute("lvt-debounce");if((H||$)&&s!=="search"){r.has(v)||r.set(v,new Map);let M=r.get(v),L=`${s}:${y}`,b=`__lvt_callback_${L}`,_=v;_[b]||(_[b]={current:x}),_[b].current=x;let R=M.get(L);if(!R){let I=()=>_[b].current();if(H){let N=parseInt(H,10);R=me(I,N)}else if($){let N=parseInt($,10);R=j(I,N)}R&&M.set(L,R)}R&&R()}else s==="submit"&&(window.__lvtBeforeHandleAction=!0),x(),s==="submit"&&(window.__lvtAfterHandleAction=!0);return}u=u.parentElement}};document[a]=l,document.addEventListener(s,l,!1),this.logger.debug("Registered event listener:",s,"with key:",a)})}setupWindowEventDelegation(){let e=this.context.getWrapperElement();if(!e)return;let t=["keydown","keyup","scroll","resize","focus","blur"],n=e.getAttribute("data-lvt-id"),r=this.context.getRateLimitedHandlers();t.forEach(s=>{let a=`__lvt_window_${s}_${n}`,i=window[a];i&&window.removeEventListener(s,i);let l=c=>{let d=this.context.getWrapperElement();if(!d)return;let g=`lvt-window-${s}`;d.querySelectorAll(`[${g}]`).forEach(m=>{let T=m.getAttribute(g);if(!T)return;if((s==="keydown"||s==="keyup")&&m.hasAttribute("lvt-key")){let w=m.getAttribute("lvt-key");if(w&&c.key!==w)return}let C={action:T,data:{}};Array.from(m.attributes).forEach(w=>{if(w.name.startsWith("lvt-data-")){let p=w.name.replace("lvt-data-","");C.data[p]=this.context.parseValue(w.value)}}),Array.from(m.attributes).forEach(w=>{if(w.name.startsWith("lvt-value-")){let p=w.name.replace("lvt-value-","");C.data[p]=this.context.parseValue(w.value)}});let A=m.getAttribute("lvt-throttle"),y=m.getAttribute("lvt-debounce"),v=()=>this.context.send(C);if(A||y){r.has(m)||r.set(m,new Map);let w=r.get(m),p=`window-${s}:${T}`,x=w.get(p);if(!x){if(A){let H=parseInt(A,10);x=me(v,H)}else if(y){let H=parseInt(y,10);x=j(v,H)}x&&w.set(p,x)}x&&x()}else v()})};window[a]=l,window.addEventListener(s,l)})}setupClickAwayDelegation(){let e=this.context.getWrapperElement();if(!e)return;let n=`__lvt_click_away_${e.getAttribute("data-lvt-id")}`,r=document[n];r&&document.removeEventListener("click",r);let s=a=>{let i=this.context.getWrapperElement();if(!i)return;let l=a.target;i.querySelectorAll("[lvt-click-away]").forEach(d=>{if(!d.contains(l)){let g=d.getAttribute("lvt-click-away");if(!g)return;let u={action:g,data:{}};Array.from(d.attributes).forEach(m=>{if(m.name.startsWith("lvt-data-")){let T=m.name.replace("lvt-data-","");u.data[T]=this.context.parseValue(m.value)}}),Array.from(d.attributes).forEach(m=>{if(m.name.startsWith("lvt-value-")){let T=m.name.replace("lvt-value-","");u.data[T]=this.context.parseValue(m.value)}}),this.context.send(u)}})};document[n]=s,document.addEventListener("click",s)}setupModalDelegation(){let e=this.context.getWrapperElement();if(!e)return;let t=e.getAttribute("data-lvt-id"),n=`__lvt_modal_open_${t}`,r=document[n];r&&document.removeEventListener("click",r);let s=A=>{var p;let y=this.context.getWrapperElement();if(!y)return;let v=(p=A.target)==null?void 0:p.closest("[lvt-modal-open]");if(!v||!y.contains(v))return;let w=v.getAttribute("lvt-modal-open");w&&(A.preventDefault(),this.context.openModal(w))};document[n]=s,document.addEventListener("click",s);let a=`__lvt_modal_close_${t}`,i=document[a];i&&document.removeEventListener("click",i);let l=A=>{var p;let y=(p=A.target)==null?void 0:p.closest("[lvt-modal-close]");if(!y)return;let v=y.getAttribute("lvt-modal-close");!v||!document.getElementById(v)||(A.preventDefault(),this.context.closeModal(v))};document[a]=l,document.addEventListener("click",l);let c=`__lvt_modal_backdrop_${t}`,d=document[c];d&&document.removeEventListener("click",d);let g=(A,y)=>{let v=A.getAttribute("data-modal-close-action");v?this.context.send({action:v,data:{}}):this.context.closeModal(y)},u=A=>{let y=A.target;if(!y.hasAttribute("data-modal-backdrop"))return;let v=y.getAttribute("data-modal-id");if(!v)return;let w=document.getElementById(v);w&&g(w,v)};document[c]=u,document.addEventListener("click",u);let m=`__lvt_modal_escape_${t}`,T=document[m];T&&document.removeEventListener("keydown",T);let C=A=>{if(A.key!=="Escape")return;let y=this.context.getWrapperElement();if(!y)return;let v=y.querySelectorAll('[role="dialog"]:not([hidden])');if(v.length>0){let w=v[v.length-1];w.id&&g(w,w.id)}};document[m]=C,document.addEventListener("keydown",C)}setupFocusTrapDelegation(){let e=this.context.getWrapperElement();if(!e)return;let n=`__lvt_focus_trap_${e.getAttribute("data-lvt-id")}`,r=document[n];r&&document.removeEventListener("keydown",r);let s=i=>{let l=["a[href]:not([disabled])","button:not([disabled])","textarea:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])",'[tabindex]:not([tabindex="-1"]):not([disabled])','[contenteditable="true"]'].join(", ");return Array.from(i.querySelectorAll(l)).filter(c=>{let d=c,g=window.getComputedStyle(d),u=g.display!=="none",m=g.visibility!=="hidden",T=d.offsetParent!==null||g.position==="fixed"||g.position==="absolute"||typeof process!="undefined"&&!1;return u&&m&&T})},a=i=>{if(i.key!=="Tab")return;let l=this.context.getWrapperElement();if(!l)return;let c=l.querySelectorAll("[lvt-focus-trap]"),d=null;if(c.forEach(T=>{T.contains(document.activeElement)&&(!d||T.contains(d))&&(d=T)}),d||c.forEach(T=>{let C=T,A=window.getComputedStyle(C);A.display!=="none"&&A.visibility!=="hidden"&&(d=T)}),!d)return;let g=s(d);if(g.length===0)return;let u=g[0],m=g[g.length-1];i.shiftKey?document.activeElement===u&&(i.preventDefault(),m.focus()):document.activeElement===m&&(i.preventDefault(),u.focus())};document[n]=a,document.addEventListener("keydown",a),this.logger.debug("Focus trap delegation set up")}setupAutofocusDelegation(){let e=this.context.getWrapperElement();if(!e)return;let n=`__lvt_autofocus_observer_${e.getAttribute("data-lvt-id")}`,r=e[n];r&&r.disconnect();let s=()=>{let i=this.context.getWrapperElement();if(!i)return;i.querySelectorAll("[lvt-autofocus]").forEach(c=>{let d=c,g=window.getComputedStyle(d),u=g.display!=="none",m=g.visibility!=="hidden",T=d.offsetParent!==null||g.position==="fixed"||g.position==="absolute"||d.tagName==="BODY"||typeof process!="undefined"&&!1,C=u&&m&&T,A=d.getAttribute("data-lvt-autofocused")==="true";C&&!A?(d.setAttribute("data-lvt-autofocused","true"),requestAnimationFrame(()=>{d.focus(),this.logger.debug("Autofocused element:",d.tagName,d.id||d.getAttribute("name"))})):!C&&A&&d.removeAttribute("data-lvt-autofocused")})};s();let a=new MutationObserver(i=>{let l=!1;i.forEach(c=>{c.type==="childList"&&c.addedNodes.length>0&&c.addedNodes.forEach(d=>{d instanceof Element&&(d.hasAttribute("lvt-autofocus")||d.querySelector("[lvt-autofocus]"))&&(l=!0)}),c.type==="attributes"&&(c.target.hasAttribute("lvt-autofocus")||c.attributeName==="hidden"||c.attributeName==="style"||c.attributeName==="class")&&(l=!0)}),l&&s()});a.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["hidden","style","class","lvt-autofocus"]}),e[n]=a,this.logger.debug("Autofocus delegation set up")}};var Z=class{constructor(e,t){this.context=e;this.logger=t;this.popstateListener=null}setup(e){let n=`__lvt_link_intercept_${e.getAttribute("data-lvt-id")}`,r=document[n];r&&document.removeEventListener("click",r);let s=a=>{var c;let i=(c=a.target)==null?void 0:c.closest("a[href]");if(!i)return;let l=this.context.getWrapperElement();!l||!l.contains(i)||this.shouldSkip(i)||(a.preventDefault(),this.navigate(i.href))};document.addEventListener("click",s),document[n]=s,this.popstateListener||(this.popstateListener=()=>{this.navigate(window.location.href,!1)},window.addEventListener("popstate",this.popstateListener))}shouldSkip(e){if(e.origin!==window.location.origin||e.target&&e.target!=="_self"||e.hasAttribute("download")||e.hasAttribute("lvt-no-intercept")||e.pathname===window.location.pathname&&e.hash)return!0;let t=e.protocol;return t!=="http:"&&t!=="https:"}async navigate(e,t=!0){try{let n=await fetch(e,{credentials:"include",headers:{Accept:"text/html"}});if(!n.ok){window.location.href=e;return}let r=await n.text();this.context.handleNavigationResponse(r),t&&window.history.pushState(null,"",e)}catch(n){window.location.href=e}}};var ee=class{constructor(e,t){this.context=e;this.logger=t;this.infiniteScrollObserver=null;this.mutationObserver=null}setupInfiniteScrollObserver(){if(!this.context.getWrapperElement())return;let t=document.getElementById("scroll-sentinel");t&&(this.infiniteScrollObserver&&this.infiniteScrollObserver.disconnect(),this.infiniteScrollObserver=new IntersectionObserver(n=>{n[0].isIntersecting&&(this.logger.debug("Sentinel visible, sending load_more action"),this.context.send({action:"load_more"}))},{rootMargin:"200px"}),this.infiniteScrollObserver.observe(t),this.logger.debug("Observer set up successfully"))}setupInfiniteScrollMutationObserver(){let e=this.context.getWrapperElement();e&&(this.mutationObserver&&this.mutationObserver.disconnect(),this.mutationObserver=new MutationObserver(()=>{this.setupInfiniteScrollObserver()}),this.mutationObserver.observe(e,{childList:!0,subtree:!0}),this.logger.debug("MutationObserver set up successfully"))}teardown(){this.infiniteScrollObserver&&(this.infiniteScrollObserver.disconnect(),this.infiniteScrollObserver=null),this.mutationObserver&&(this.mutationObserver.disconnect(),this.mutationObserver=null)}};var te=class{constructor(e){this.logger=e}open(e){let t=document.getElementById(e);if(!t){this.logger.warn(`Modal with id="${e}" not found`);return}t.removeAttribute("hidden"),t.style.display="flex",t.setAttribute("aria-hidden","false"),t.dispatchEvent(new CustomEvent("lvt:modal-opened",{bubbles:!0})),this.logger.info(`Opened modal: ${e}`);let n=t.querySelector("input, textarea, select");n&&setTimeout(()=>{let r=document.activeElement,s=i=>i?i===document.body||i.offsetParent!==null?!0:i.getClientRects().length>0:!1;(!r||!t.contains(r)||!s(r))&&n.focus()},100)}close(e){let t=document.getElementById(e);if(!t){this.logger.warn(`Modal with id="${e}" not found`);return}t.setAttribute("hidden",""),t.style.display="none",t.setAttribute("aria-hidden","true"),t.dispatchEvent(new CustomEvent("lvt:modal-closed",{bubbles:!0})),this.logger.info(`Closed modal: ${e}`)}};var ne=class{constructor(){this.bar=null}show(){if(this.bar)return;let e=document.createElement("div");if(e.style.cssText=`
27
27
  position: fixed;
28
28
  top: 0;
29
29
  left: 0;
@@ -38,7 +38,7 @@
38
38
  0% { background-position: 200% 0; }
39
39
  100% { background-position: -200% 0; }
40
40
  }
41
- `,document.head.appendChild(t)}document.body.insertBefore(e,document.body.firstChild),this.bar=e}hide(){this.bar&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.bar=null)}};var se=class{disable(e){if(!e)return;e.querySelectorAll("form").forEach(n=>{n.querySelectorAll("input, textarea, select, button").forEach(s=>{s.disabled=!0})})}enable(e){if(!e)return;e.querySelectorAll("form").forEach(n=>{n.querySelectorAll("input, textarea, select, button").forEach(s=>{s.disabled=!1})})}};var Ie=["pending","success","error","done"];var st={reset:"reset",disable:"disable",enable:"enable",addclass:"addClass",removeclass:"removeClass",toggleclass:"toggleClass",setattr:"setAttr",toggleattr:"toggleAttr"};function it(o,e){let t=o.toLowerCase().match(/^lvt-(\w+)-on:(.+)$/);if(!t)return null;let n=t[1],r=st[n];if(!r)return null;let a=t[2].split(":"),i=a[a.length-1];if(!Ie.includes(i))return null;let l=i,c=a.length>1?a.slice(0,-1).join(":"):void 0;return{action:r,lifecycle:l,actionName:c||void 0,param:e||void 0}}function at(o,e,t){switch(e){case"reset":o instanceof HTMLFormElement&&o.reset();break;case"disable":"disabled"in o&&(o.disabled=!0);break;case"enable":"disabled"in o&&(o.disabled=!1);break;case"addClass":if(t){let n=t.split(/\s+/).filter(Boolean);o.classList.add(...n)}break;case"removeClass":if(t){let n=t.split(/\s+/).filter(Boolean);o.classList.remove(...n)}break;case"toggleClass":t&&t.split(/\s+/).filter(Boolean).forEach(r=>o.classList.toggle(r));break;case"setAttr":if(t){let n=t.indexOf(":");if(n>0){let r=t.substring(0,n),s=t.substring(n+1);o.setAttribute(r,s)}}break;case"toggleAttr":t&&o.toggleAttribute(t);break}}function ot(o,e,t){return o.lifecycle!==e?!1:o.actionName?o.actionName===t:!0}function lt(o,e){document.querySelectorAll("*").forEach(n=>{Array.from(n.attributes).forEach(r=>{if(!r.name.startsWith("lvt-")||!r.name.includes("-on:"))return;let s=it(r.name,r.value);s&&ot(s,o,e)&&at(n,s.action,s.param)})})}function ie(){Ie.forEach(o=>{document.addEventListener(`lvt:${o}`,e=>{var r;let n=(r=e.detail)==null?void 0:r.action;lt(o,n)},!0)})}function He(o){return typeof structuredClone=="function"?structuredClone(o):JSON.parse(JSON.stringify(o))}function ct(o){return o!=null&&typeof o=="object"&&Array.isArray(o.d)&&Array.isArray(o.s)}function ye(o,e=0){if(e>50||o==null||typeof o!="object"||Array.isArray(o))return!1;if(ct(o))return!0;for(let n of Object.keys(o))if(/^\d+$/.test(n)){let r=o[n];if(r!=null&&typeof r=="object"&&!Array.isArray(r)&&ye(r,e+1))return!0}return!1}function dt(o,e){if(!e.s||!Array.isArray(e.s))return!1;if(ye(o)&&!ye(e))return!0;for(let t of Object.keys(o))if(/^\d+$/.test(t)&&!(t in e))return!0;return!1}var ae=class{constructor(e){this.logger=e;this.treeState={};this.rangeState={};this.rangeIdKeys={}}applyUpdate(e){let t=!1;for(let[r,s]of Object.entries(e))if(Array.isArray(s)&&s.length>0&&Array.isArray(s[0])&&typeof s[0][0]=="string"){let i=this.treeState[r];i&&typeof i=="object"&&!Array.isArray(i)&&Array.isArray(i.d)&&Array.isArray(i.s)?(this.treeState[r]=He(i),this.applyDifferentialOpsToRange(this.treeState[r],s,r)):this.treeState[r]=s,t=!0}else{let i=this.treeState[r],l=typeof s=="object"&&s!==null&&!Array.isArray(s)?this.deepMergeTreeNodes(i,s,r):s;JSON.stringify(i)!==JSON.stringify(l)&&(this.treeState[r]=l,t=!0)}return{html:this.reconstructFromTree(this.treeState,""),changed:t}}reset(){this.treeState={},this.rangeState={},this.rangeIdKeys={}}getTreeState(){return{...this.treeState}}getStaticStructure(){return this.treeState.s||null}deepMergeTreeNodes(e,t,n=""){var s;if(typeof t!="object"||t===null||Array.isArray(t)||typeof e!="object"||e===null||Array.isArray(e))return t;if(dt(e,t))return this.logger.debug(`[deepMerge] Structure transition at path ${n}, replacing instead of merging`),t;let r={...e};for(let[a,i]of Object.entries(t)){let l=n?`${n}.${a}`:a,c=Array.isArray(i)&&i.length>0&&Array.isArray(i[0])&&typeof i[0][0]=="string",d=r[a]&&typeof r[a]=="object"&&!Array.isArray(r[a])&&Array.isArray(r[a].d)&&Array.isArray(r[a].s);c&&d?(r[a]=He(r[a]),this.logger.debug(`[deepMerge] Applying diff ops at path ${l}`,{ops:i,rangeItems:(s=r[a].d)==null?void 0:s.length}),this.applyDifferentialOpsToRange(r[a],i,l)):typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof r[a]=="object"&&r[a]!==null&&!Array.isArray(r[a])?r[a]=this.deepMergeTreeNodes(r[a],i,l):r[a]=i}return r}applyDifferentialOpsToRange(e,t,n){if(!e||typeof e!="object"||!Array.isArray(e.d)||!Array.isArray(e.s)){this.logger.error(`[applyDiffOpsToRange] Invalid rangeStructure at path ${n}`,{rangeStructure:e});return}let r=e.d;this.rangeState[n]||(this.rangeState[n]={items:r,statics:e.s,staticsMap:e.sm}),e.m&&typeof e.m=="object"&&typeof e.m.idKey=="string"&&(this.rangeIdKeys[n]=e.m.idKey),this.logger.debug(`[applyDiffOpsToRange] path=${n}, idKey=${this.rangeIdKeys[n]}, items=${r.length}, ops=${t.length}`);for(let s of t){if(!Array.isArray(s)||s.length<2)continue;switch(s[0]){case"r":{let i=s[1],l=this.findItemIndexByKey(r,i,e.s,n);this.logger.debug(`[applyDiffOpsToRange] Remove: key=${i}, index=${l}, total=${r.length}`),l>=0?(r.splice(l,1),this.logger.debug(`[applyDiffOpsToRange] After removal: ${r.length} items`)):this.logger.debug(`[applyDiffOpsToRange] Remove failed: key ${i} not found`);break}case"u":{let i=this.findItemIndexByKey(r,s[1],e.s,n),l=s[2];i>=0&&l&&(r[i]=this.mergeRangeItem(r[i],l,n));break}case"a":{let i=Array.isArray(s[1])?s[1]:[s[1]];s[2]&&(e.s=s[2]),r.push(...i),s[3]&&typeof s[3]=="object"&&s[3].idKey&&(this.rangeIdKeys[n]=s[3].idKey);break}case"p":{let i=Array.isArray(s[1])?s[1]:[s[1]];s[2]&&(e.s=s[2]),r.unshift(...i);break}case"i":{let i=this.findItemIndexByKey(r,s[1],e.s,n);if(i>=0){let l=Array.isArray(s[2])?s[2]:[s[2]];r.splice(i+1,0,...l)}break}case"o":{let i=s[1],l=[],c=new Map;for(let d of r){let g=this.getItemKey(d,e.s,n);g&&c.set(g,d)}for(let d of i){let g=c.get(d);g&&l.push(g)}r.length=0,r.push(...l);break}default:break}}this.rangeState[n]={items:r,statics:e.s,staticsMap:e.sm}}reconstructFromTree(e,t){if(e.s&&Array.isArray(e.s)){let n="";for(let r=0;r<e.s.length;r++){let s=e.s[r];if(n+=s,r<e.s.length-1){let a=r.toString();if(e[a]!==void 0){let i=t?`${t}.${a}`:a;n+=this.renderValue(e[a],a,i)}}}return n=n.replace(/<root>/g,"").replace(/<\/root>/g,""),n}return this.renderValue(e,"",t)}renderValue(e,t,n){if(e==null||typeof e=="string"&&e.startsWith("{{")&&e.endsWith("}}"))return"";if(typeof e=="object"&&!Array.isArray(e)){if(e.d&&Array.isArray(e.d)&&e.s&&Array.isArray(e.s)){let a=n||t||"";return a&&(this.rangeState[a]={items:e.d,statics:e.s,staticsMap:e.sm},e.m&&typeof e.m=="object"&&typeof e.m.idKey=="string"&&(this.rangeIdKeys[a]=e.m.idKey)),this.renderRangeStructure(e,t,n)}if("s"in e&&Array.isArray(e.s))return this.reconstructFromTree(e,n||"");let r=Object.keys(e),s=r.filter(a=>/^\d+$/.test(a)).sort((a,i)=>parseInt(a)-parseInt(i));if(s.length>0&&s.length===r.length)return s.map(a=>{let i=n?`${n}.${a}`:a;return this.renderValue(e[a],a,i)}).join("")}return Array.isArray(e)?e.length>0&&Array.isArray(e[0])&&typeof e[0][0]=="string"?this.applyDifferentialOperations(e,n):e.map((r,s)=>{let a=s.toString(),i=n?`${n}.${a}`:a;return typeof r=="object"&&r&&r.s?this.reconstructFromTree(r,i):this.renderValue(r,a,i)}).join(""):typeof e=="object"?(this.logger.debug("Skipping plain object value (not a tree node) - this is normal for state-only data"),""):String(e)}renderRangeStructure(e,t,n){let{d:r,s,sm:a}=e;if(!r||!Array.isArray(r))return"";if(r.length===0){if(e.else){let l="else",c=n?`${n}.else`:"else";return this.renderValue(e.else,l,c)}return""}let i=a&&typeof a=="object";return s&&Array.isArray(s)?r.map((l,c)=>{let d=s;i&&l._sk&&a[l._sk]&&(d=a[l._sk]);let g="";for(let p=0;p<d.length;p++)if(g+=d[p],p<d.length-1){let h=p.toString();if(l[h]!==void 0){let S=n?`${n}.${c}.${h}`:`${c}.${h}`;g+=this.renderValue(l[h],h,S)}}return g}).join(""):r.map((l,c)=>{let d=c.toString(),g=n?`${n}.${d}`:d;return this.renderValue(l,d,g)}).join("")}applyDifferentialOperations(e,t){if(!t||!this.rangeState[t])return"";let n=this.rangeState[t],r=[...n.items],s=n.statics;for(let i of e){if(!Array.isArray(i)||i.length<2)continue;switch(i[0]){case"r":{let c=this.findItemIndexByKey(r,i[1],s,t);c>=0&&r.splice(c,1);break}case"u":{let c=this.findItemIndexByKey(r,i[1],s,t),d=i[2];c>=0&&d&&(r[c]=this.mergeRangeItem(r[c],d,t||""));break}case"a":{this.addItemsToRange(r,i[1],i[2],n,!1),i[3]&&typeof i[3]=="object"&&i[3].idKey&&(this.rangeIdKeys[t||""]=i[3].idKey);break}case"p":{this.addItemsToRange(r,i[1],i[2],n,!0);break}case"i":{let c=this.findItemIndexByKey(r,i[1],s,t);if(c>=0){let d=Array.isArray(i[2])?i[2]:[i[2]];r.splice(c+1,0,...d)}break}case"o":{let c=i[1],d=[],g=new Map;for(let p of r){let h=this.getItemKey(p,s,t);h&&g.set(h,p)}for(let p of c){let h=g.get(p);h&&d.push(h)}r.length=0,r.push(...d);break}default:break}}this.rangeState[t]={items:r,statics:n.statics,staticsMap:n.staticsMap},this.treeState[t]={d:r,s:n.statics,sm:n.staticsMap};let a=this.getCurrentRangeStructure(t);return a&&a.s?this.renderItemsWithStatics(r,a.s,a.sm,t):r.map(i=>this.renderValue(i)).join("")}getCurrentRangeStructure(e){if(this.rangeState[e])return{d:this.rangeState[e].items,s:this.rangeState[e].statics,sm:this.rangeState[e].staticsMap};let t=this.treeState[e];return t&&typeof t=="object"&&t.s?t:null}renderItemsWithStatics(e,t,n,r){let s=e.map((a,i)=>{let l=t;n&&typeof n=="object"&&a._sk&&n[a._sk]&&(l=n[a._sk]);let c="";for(let d=0;d<l.length;d++)if(c+=l[d],d<l.length-1){let g=d.toString();if(a[g]!==void 0){let p=r?`${r}.${i}.${g}`:`${i}.${g}`;c+=this.renderValue(a[g],g,p)}}return c}).join("");return this.logger.isDebugEnabled()&&(this.logger.debug("[renderItemsWithStatics] statics:",t),this.logger.debug("[renderItemsWithStatics] items count:",e.length),this.logger.debug("[renderItemsWithStatics] result snippet:",s.substring(0,200))),s}addItemsToRange(e,t,n,r,s){if(n&&(r.statics=n),!t)return;let a=Array.isArray(t)?t:[t];s?e.unshift(...a):e.push(...a)}getItemKey(e,t,n){if(e._k&&typeof e._k=="string")return e._k;if(!n||!this.rangeIdKeys[n])return null;let r=this.rangeIdKeys[n];return e[r]||null}findItemIndexByKey(e,t,n,r){return e.findIndex(s=>this.getItemKey(s,n,r)===t)}mergeRangeItem(e,t,n){return this.deepMergeTreeNodes(e,t,`${n}.item`)}};var oe=class{constructor(e){this.modalManager=e;this.activeForm=null;this.activeButton=null;this.originalButtonText=null}setActiveSubmission(e,t,n){if(this.activeForm=e,this.activeButton=t,this.originalButtonText=n,e){e.setAttribute("aria-busy","true");let r=e.querySelector("fieldset");r&&(r.disabled=!0)}}handleResponse(e){this.activeForm&&this.activeForm.dispatchEvent(new CustomEvent("lvt:done",{detail:e})),e.success?this.handleSuccess(e):this.handleError(e),this.restoreFormState()}reset(){this.restoreFormState()}handleSuccess(e){if(!this.activeForm)return;this.activeForm.dispatchEvent(new CustomEvent("lvt:success",{detail:e}));let t=this.activeForm.closest('[role="dialog"]');t&&t.id&&this.modalManager.close(t.id),this.activeForm.hasAttribute("lvt-preserve")||this.activeForm.reset()}handleError(e){this.activeForm&&this.activeForm.dispatchEvent(new CustomEvent("lvt:error",{detail:e}))}restoreFormState(){if(this.activeForm){this.activeForm.removeAttribute("aria-busy");let e=this.activeForm.querySelector("fieldset");e&&(e.disabled=!1)}this.activeButton&&this.originalButtonText!==null&&(this.activeButton.disabled=!1,this.activeButton.textContent=this.originalButtonText),this.activeForm=null,this.activeButton=null,this.originalButtonText=null}};var le=class{constructor(e,t){this.context=e;this.logger=t;this.boundFields=new Map;this.enabled=!1;this.wiredElements=new Set;this.elementCleanups=new Map}setCapabilities(e){this.enabled=e.includes("change"),this.logger.debug("Capabilities received, change auto-wiring:",this.enabled?"enabled":"disabled")}analyzeStatics(e){let t=this.boundFields.size;this.walkTree(e),this.boundFields.size>t&&this.logger.debug(`Detected ${this.boundFields.size} bound field(s):`,Array.from(this.boundFields.keys()))}wireElements(){if(!this.enabled||this.boundFields.size===0)return;let e=this.context.getWrapperElement();if(e){for(let t of this.elementCleanups.keys())t.isConnected||(this.elementCleanups.get(t)(),this.elementCleanups.delete(t),this.wiredElements.delete(t));for(let[t,n]of this.boundFields){let r=this.escapeCSSSelector(t),s=e.querySelectorAll(`[name="${r}"]`);for(let a of s){if(this.wiredElements.has(a)||a.hasAttribute("lvt-input")||a.hasAttribute("lvt-change"))continue;let i=a.closest("form");i&&(i.hasAttribute("lvt-change")||i.hasAttribute("lvt-no-intercept"))||a instanceof HTMLInputElement&&(a.type==="hidden"||a.type==="submit"||a.type==="button")||a instanceof HTMLButtonElement||(this.attachListener(a,t,n),this.wiredElements.add(a))}}}}teardown(){for(let e of this.elementCleanups.values())e();this.elementCleanups.clear(),this.wiredElements.clear(),this.boundFields.clear(),this.enabled=!1}getBoundFields(){return this.boundFields}isEnabled(){return this.enabled}walkTree(e){if(!(!e||typeof e!="object"||Array.isArray(e))){e.s&&Array.isArray(e.s)&&this.analyzeStaticsArray(e.s);for(let t of Object.keys(e))if(/^\d+$/.test(t)){let n=e[t];n&&typeof n=="object"&&!Array.isArray(n)&&this.walkTree(n)}if(e.d&&Array.isArray(e.d))for(let t of e.d)t&&typeof t=="object"&&!Array.isArray(t)&&this.walkTree(t)}}analyzeStaticsArray(e){for(let t=0;t<e.length-1;t++){let n=e[t],r=e[t+1],s=this.detectBinding(n,r);s&&!this.boundFields.has(s.fieldName)&&this.boundFields.set(s.fieldName,s.bindingType)}}detectBinding(e,t){let n=this.detectValueBinding(e);return n?{fieldName:n,bindingType:"value"}:(n=this.detectTextareaBinding(e,t),n?{fieldName:n,bindingType:"content"}:(n=this.detectAttributeBinding(e,t),n?{fieldName:n,bindingType:"attribute"}:null))}escapeCSSSelector(e){return typeof CSS!="undefined"&&typeof CSS.escape=="function"?CSS.escape(e):e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}extractUnclosedTag(e){let t=e.lastIndexOf("<"),n=e.lastIndexOf(">");return t===-1||t<=n?null:e.substring(t)}extractNameFromTag(e){let t=e.match(/\sname="([^"]+)"/);return t?t[1]:null}detectValueBinding(e){if(!e.endsWith('value="'))return null;let t=this.extractUnclosedTag(e);return t?this.extractNameFromTag(t):null}detectTextareaBinding(e,t){if(!t.startsWith("</textarea"))return null;let n=e.match(/<textarea[^>]*\sname="([^"]+)"[^>]*>$/);return n?n[1]:null}detectAttributeBinding(e,t){if(!e.endsWith(" ")||!/^[a-zA-Z>/\s]/.test(t))return null;let n=this.extractUnclosedTag(e);if(!n||!/^<input\s/i.test(n))return null;let r=n.match(/\stype="([^"]+)"/i);if(!r)return null;let s=r[1].toLowerCase();return s!=="checkbox"&&s!=="radio"?null:this.extractNameFromTag(n)}attachListener(e,t,n){let r=e.getAttribute("lvt-debounce"),s=r?parseInt(r,10):NaN,a=Number.isNaN(s)||s<0?300:s,l=j(()=>{if(!this.enabled)return;let d=n==="attribute"&&e.type==="checkbox"?e.checked:e.value;this.context.send({action:"change",data:{[t]:d}})},a),c=n==="attribute"||e instanceof HTMLSelectElement?"change":"input";e.addEventListener(c,l),this.elementCleanups.set(e,()=>{e.removeEventListener(c,l)}),this.logger.debug(`Auto-wired ${c} listener on [name="${t}"] (debounce: ${a}ms)`)}};var be=class{constructor(e){this.options=e;this.socket=null;this.reconnectTimer=null;this.manuallyClosed=!1;this.reconnectAttempts=0}connect(){this.manuallyClosed=!1,this.clearReconnectTimer(),this.socket=new WebSocket(this.options.url);let e=this.socket;e.onopen=()=>{var t,n;this.reconnectAttempts=0,(n=(t=this.options).onOpen)==null||n.call(t,e)},e.onmessage=t=>{var n,r;(r=(n=this.options).onMessage)==null||r.call(n,t)},e.onclose=t=>{var n,r;(r=(n=this.options).onClose)==null||r.call(n,t),!this.manuallyClosed&&this.options.autoReconnect&&this.scheduleReconnect()},e.onerror=t=>{var n,r;(r=(n=this.options).onError)==null||r.call(n,t)}}send(e){this.socket&&this.socket.readyState===1&&this.socket.send(e)}disconnect(){this.manuallyClosed=!0,this.clearReconnectTimer(),this.socket&&(this.socket.close(),this.socket=null)}getSocket(){return this.socket}scheduleReconnect(){var i,l,c,d,g;this.clearReconnectTimer();let e=(i=this.options.maxReconnectAttempts)!=null?i:10;if(e>0&&this.reconnectAttempts>=e){(c=(l=this.options).onReconnectFailed)==null||c.call(l);return}this.reconnectAttempts++;let t=(d=this.options.reconnectDelay)!=null?d:1e3,n=(g=this.options.maxReconnectDelay)!=null?g:16e3,r=t*Math.pow(2,this.reconnectAttempts-1),s=Math.random()*1e3,a=Math.min(r+s,n);this.reconnectTimer=window.setTimeout(()=>{var p,h;(h=(p=this.options).onReconnectAttempt)==null||h.call(p,this.reconnectAttempts,a),this.connect()},a)}clearReconnectTimer(){this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}},ce=class{constructor(e){this.config=e;this.transport=null}async connect(){let e=this.getLiveUrl();return await pt(e,this.config.logger)?(this.transport=new be({url:this.getWebSocketUrl(),autoReconnect:this.config.options.autoReconnect,reconnectDelay:this.config.options.reconnectDelay,maxReconnectDelay:16e3,maxReconnectAttempts:10,onOpen:()=>{this.config.onConnected()},onMessage:n=>{try{let r=JSON.parse(n.data);this.config.onMessage(r,n)}catch(r){this.config.logger.error("Failed to parse WebSocket message:",r)}},onClose:()=>{this.config.onDisconnected()},onReconnectAttempt:(n,r)=>{var s,a;(a=(s=this.config).onReconnectAttempt)==null||a.call(s,n,r)},onReconnectFailed:()=>{var n,r;(r=(n=this.config).onReconnectFailed)==null||r.call(n)},onError:n=>{var r,s;(s=(r=this.config).onError)==null||s.call(r,n)}}),this.transport.connect(),{usingWebSocket:!0}):{usingWebSocket:!1,initialState:await gt(e,this.config.logger)}}disconnect(){var e;(e=this.transport)==null||e.disconnect(),this.transport=null}send(e){var t;(t=this.transport)==null||t.send(e)}getReadyState(){var e,t;return(t=(e=this.transport)==null?void 0:e.getSocket())==null?void 0:t.readyState}getSocket(){var e,t;return(t=(e=this.transport)==null?void 0:e.getSocket())!=null?t:null}getWebSocketUrl(){let e=this.config.options.liveUrl||"/live",t=this.config.options.wsUrl;return t||`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${e}`}getLiveUrl(){return this.config.options.liveUrl||window.location.pathname+window.location.search}};async function pt(o,e){try{let n=(await fetch(o,{method:"HEAD"})).headers.get("X-LiveTemplate-WebSocket");return n?n==="enabled":!0}catch(t){return e==null||e.warn("Failed to check WebSocket availability:",t),!0}}async function gt(o,e){try{let t=await fetch(o,{method:"GET",credentials:"include",headers:{Accept:"application/json"}});if(!t.ok)throw new Error(`Failed to fetch initial state: ${t.status}`);return await t.json()}catch(t){return e==null||e.warn("Failed to fetch initial state:",t),null}}var de=class{async upload(e,t,n){let{file:r}=e;e.abortController=new AbortController;try{let s=new XMLHttpRequest;s.upload.addEventListener("progress",i=>{i.lengthComputable&&(e.bytesUploaded=i.loaded,e.progress=Math.round(i.loaded/i.total*100),n&&n(e))}),e.abortController.signal.addEventListener("abort",()=>{s.abort()});let a=new Promise((i,l)=>{s.addEventListener("load",()=>{s.status>=200&&s.status<300?(e.done=!0,e.progress=100,i()):l(new Error(`S3 upload failed with status ${s.status}: ${s.statusText}`))}),s.addEventListener("error",()=>{l(new Error("S3 upload failed: Network error"))}),s.addEventListener("abort",()=>{l(new Error("S3 upload cancelled"))})});if(s.open("PUT",t.url),t.headers)for(let[i,l]of Object.entries(t.headers))s.setRequestHeader(i,l);s.send(r),await a}catch(s){throw e.error=s instanceof Error?s.message:String(s),s}}};var ue=class{constructor(e,t={}){this.sendMessage=e;this.entries=new Map;this.pendingFiles=new Map;this.autoUploadConfig=new Map;this.uploaders=new Map;this.inputHandlers=new WeakMap;this.chunkSize=t.chunkSize||256*1024,this.onProgress=t.onProgress,this.onComplete=t.onComplete,this.onError=t.onError,this.uploaders.set("s3",new de)}initializeFileInputs(e){e.querySelectorAll('input[type="file"][lvt-upload]').forEach(n=>{let r=n.getAttribute("lvt-upload");if(!r)return;let s=this.inputHandlers.get(n);s&&n.removeEventListener("change",s);let a=i=>{let l=i.target.files;!l||l.length===0||this.startUpload(r,Array.from(l))};n.addEventListener("change",a),this.inputHandlers.set(n,a)})}async startUpload(e,t){this.pendingFiles.set(e,t);let n=t.map(s=>({name:s.name,type:s.type||"application/octet-stream",size:s.size})),r={action:"upload_start",upload_name:e,files:n};this.sendMessage(r)}async handleUploadStartResponse(e){let{upload_name:t,entries:n}=e;n.length>0&&this.autoUploadConfig.set(t,n[0].auto_upload);let r=this.pendingFiles.get(t);if(!r){console.error(`No pending files found for upload: ${t}`);return}this.pendingFiles.delete(t);let s=new Map;for(let i of r)s.set(i.name,i);let a=[];for(let i of n){let l=s.get(i.client_name);if(!l){console.warn(`No file found for entry ${i.entry_id} (client_name: ${i.client_name})`);continue}let c={id:i.entry_id,file:l,uploadName:t,progress:0,bytesUploaded:0,valid:i.valid,done:!1,error:i.error,external:i.external};if(this.entries.set(c.id,c),a.push(c),!i.valid){this.onError&&i.error&&this.onError(c,i.error);continue}i.auto_upload&&(i.external?this.uploadExternal(c,i.external):this.uploadChunked(c))}}async uploadExternal(e,t){try{let n=this.uploaders.get(t.uploader);if(!n)throw new Error(`Unknown uploader: ${t.uploader}`);await n.upload(e,t,this.onProgress);let r={action:"upload_complete",upload_name:e.uploadName,entry_ids:[e.id]};this.sendMessage(r),this.onComplete&&this.onComplete(e.uploadName,[e]),this.clearFileInput(e.uploadName),this.cleanupEntries(e.uploadName)}catch(n){let r=n instanceof Error?n.message:String(n);e.error=r,this.onError&&this.onError(e,r),this.cleanupEntries(e.uploadName)}}async uploadChunked(e){let{file:t,id:n}=e,r=0;e.abortController=new AbortController;try{for(;r<t.size;){if(e.abortController.signal.aborted)throw new Error("Upload cancelled");let a=Math.min(r+this.chunkSize,t.size),i=t.slice(r,a),l=await this.fileToBase64(i),c={action:"upload_chunk",entry_id:n,chunk_base64:l,offset:r,total:t.size};this.sendMessage(c),r=a,e.bytesUploaded=r,e.progress=Math.round(r/t.size*100),this.onProgress&&this.onProgress(e)}e.done=!0;let s={action:"upload_complete",upload_name:e.uploadName,entry_ids:[n]};this.sendMessage(s),this.onComplete&&this.onComplete(e.uploadName,[e]),this.clearFileInput(e.uploadName),this.cleanupEntries(e.uploadName)}catch(s){let a=s instanceof Error?s.message:String(s);e.error=a,this.onError&&this.onError(e,a),this.cleanupEntries(e.uploadName)}}handleProgressMessage(e){let t=this.entries.get(e.entry_id);t&&(t.progress=e.progress,t.bytesUploaded=e.bytes_recv,this.onProgress&&this.onProgress(t))}cancelUpload(e){let t=this.entries.get(e);t&&(t.abortController&&t.abortController.abort(),this.sendMessage({action:"cancel_upload",entry_id:e}),this.entries.delete(e))}getEntries(e){let t=[];for(let n of this.entries.values())n.uploadName===e&&t.push(n);return t}triggerPendingUploads(e){let t=[];for(let n of this.entries.values())n.uploadName===e&&n.progress===0&&!n.done&&!n.error&&t.push(n);for(let n of t)n.external?this.uploadExternal(n,n.external):this.uploadChunked(n)}registerUploader(e,t){this.uploaders.set(e,t)}clearFileInput(e){document.querySelectorAll(`input[type="file"][lvt-upload="${e}"]`).forEach(n=>{n.value=""})}cleanupEntries(e,t=5e3){setTimeout(()=>{let n=[];for(let[r,s]of this.entries)e&&s.uploadName!==e||(s.done||s.error)&&n.push(r);for(let r of n)this.entries.delete(r)},t)}fileToBase64(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let a=r.result.split(",")[1];t(a)},r.onerror=n,r.readAsDataURL(e)})}};var Ne={silent:0,error:1,warn:2,info:3,debug:4},Ue="LiveTemplate",Ee=class o{constructor(e,t=[],n=console){this.state=e;this.scope=t;this.sink=n}setLevel(e){this.state.level=e}getLevel(){return this.state.level}child(e){return new o(this.state,[...this.scope,e],this.sink)}isDebugEnabled(){return this.shouldLog("debug")}error(...e){this.log("error","error",e)}warn(...e){this.log("warn","warn",e)}info(...e){this.log("info","info",e)}debug(...e){this.log("debug","debug",e)}log(e,t,n){if(!this.shouldLog(e))return;(this.sink[t]||console[t]||console.log).apply(this.sink,[this.formatPrefix(),...n])}shouldLog(e){return Ne[e]<=Ne[this.state.level]}formatPrefix(){return this.scope.length===0?`[${Ue}]`:`[${Ue}:${this.scope.join(":")}]`}};function we(o={}){var n,r;let e={level:(n=o.level)!=null?n:"info"},t=Array.isArray(o.scope)?o.scope:o.scope?[o.scope]:[];return new Ee(e,t,(r=o.sink)!=null?r:console)}async function Oe(o,e){try{let t=globalThis==null?void 0:globalThis.require;if(typeof t=="function"){let s=t("fs"),a=JSON.parse(s.readFileSync(e,"utf8"));return o.applyUpdate(a)}let r=await(await fetch(e)).json();return o.applyUpdate(r)}catch(t){throw new Error(`Failed to load update from ${e}: ${t}`)}}function De(o,e){let t=[],n=c=>c.replace(/\s+/g," ").replace(/>\s+</g,"><").trim(),r=n(o),s=n(e);if(r===s)return{match:!0,differences:[]};let a=r.split(`
41
+ `,document.head.appendChild(t)}document.body.insertBefore(e,document.body.firstChild),this.bar=e}hide(){this.bar&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.bar=null)}};var re=class{disable(e){if(!e)return;e.querySelectorAll("form").forEach(n=>{n.querySelectorAll("input, textarea, select, button").forEach(s=>{s.disabled=!0})})}enable(e){if(!e)return;e.querySelectorAll("form").forEach(n=>{n.querySelectorAll("input, textarea, select, button").forEach(s=>{s.disabled=!1})})}};var Ie=["pending","success","error","done"];var st={reset:"reset",disable:"disable",enable:"enable",addclass:"addClass",removeclass:"removeClass",toggleclass:"toggleClass",setattr:"setAttr",toggleattr:"toggleAttr"};function it(o,e){let t=o.toLowerCase().match(/^lvt-(\w+)-on:(.+)$/);if(!t)return null;let n=t[1],r=st[n];if(!r)return null;let a=t[2].split(":"),i=a[a.length-1];if(!Ie.includes(i))return null;let l=i,c=a.length>1?a.slice(0,-1).join(":"):void 0;return{action:r,lifecycle:l,actionName:c||void 0,param:e||void 0}}function at(o,e,t){switch(e){case"reset":o instanceof HTMLFormElement&&o.reset();break;case"disable":"disabled"in o&&(o.disabled=!0);break;case"enable":"disabled"in o&&(o.disabled=!1);break;case"addClass":if(t){let n=t.split(/\s+/).filter(Boolean);o.classList.add(...n)}break;case"removeClass":if(t){let n=t.split(/\s+/).filter(Boolean);o.classList.remove(...n)}break;case"toggleClass":t&&t.split(/\s+/).filter(Boolean).forEach(r=>o.classList.toggle(r));break;case"setAttr":if(t){let n=t.indexOf(":");if(n>0){let r=t.substring(0,n),s=t.substring(n+1);o.setAttribute(r,s)}}break;case"toggleAttr":t&&o.toggleAttribute(t);break}}function ot(o,e,t){return o.lifecycle!==e?!1:o.actionName?o.actionName===t:!0}function lt(o,e){document.querySelectorAll("*").forEach(n=>{Array.from(n.attributes).forEach(r=>{if(!r.name.startsWith("lvt-")||!r.name.includes("-on:"))return;let s=it(r.name,r.value);s&&ot(s,o,e)&&at(n,s.action,s.param)})})}function se(){Ie.forEach(o=>{document.addEventListener(`lvt:${o}`,e=>{var r;let n=(r=e.detail)==null?void 0:r.action;lt(o,n)},!0)})}function He(o){return typeof structuredClone=="function"?structuredClone(o):JSON.parse(JSON.stringify(o))}function ct(o){return o!=null&&typeof o=="object"&&Array.isArray(o.d)&&Array.isArray(o.s)}function ve(o,e=0){if(e>50||o==null||typeof o!="object"||Array.isArray(o))return!1;if(ct(o))return!0;for(let n of Object.keys(o))if(/^\d+$/.test(n)){let r=o[n];if(r!=null&&typeof r=="object"&&!Array.isArray(r)&&ve(r,e+1))return!0}return!1}function dt(o,e){if(!e.s||!Array.isArray(e.s))return!1;if(ve(o)&&!ve(e))return!0;for(let t of Object.keys(o))if(/^\d+$/.test(t)&&!(t in e))return!0;return!1}var ie=class{constructor(e){this.logger=e;this.treeState={};this.rangeState={};this.rangeIdKeys={}}applyUpdate(e){let t=!1;for(let[r,s]of Object.entries(e))if(Array.isArray(s)&&s.length>0&&Array.isArray(s[0])&&typeof s[0][0]=="string"){let i=this.treeState[r];i&&typeof i=="object"&&!Array.isArray(i)&&Array.isArray(i.d)&&Array.isArray(i.s)?(this.treeState[r]=He(i),this.applyDifferentialOpsToRange(this.treeState[r],s,r)):this.treeState[r]=s,t=!0}else{let i=this.treeState[r],l=typeof s=="object"&&s!==null&&!Array.isArray(s)?this.deepMergeTreeNodes(i,s,r):s;JSON.stringify(i)!==JSON.stringify(l)&&(this.treeState[r]=l,t=!0)}return{html:this.reconstructFromTree(this.treeState,""),changed:t}}reset(){this.treeState={},this.rangeState={},this.rangeIdKeys={}}getTreeState(){return{...this.treeState}}getStaticStructure(){return this.treeState.s||null}deepMergeTreeNodes(e,t,n=""){var s;if(typeof t!="object"||t===null||Array.isArray(t)||typeof e!="object"||e===null||Array.isArray(e))return t;if(dt(e,t))return this.logger.debug(`[deepMerge] Structure transition at path ${n}, replacing instead of merging`),t;let r={...e};for(let[a,i]of Object.entries(t)){let l=n?`${n}.${a}`:a,c=Array.isArray(i)&&i.length>0&&Array.isArray(i[0])&&typeof i[0][0]=="string",d=r[a]&&typeof r[a]=="object"&&!Array.isArray(r[a])&&Array.isArray(r[a].d)&&Array.isArray(r[a].s);c&&d?(r[a]=He(r[a]),this.logger.debug(`[deepMerge] Applying diff ops at path ${l}`,{ops:i,rangeItems:(s=r[a].d)==null?void 0:s.length}),this.applyDifferentialOpsToRange(r[a],i,l)):typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof r[a]=="object"&&r[a]!==null&&!Array.isArray(r[a])?r[a]=this.deepMergeTreeNodes(r[a],i,l):r[a]=i}return r}applyDifferentialOpsToRange(e,t,n){if(!e||typeof e!="object"||!Array.isArray(e.d)||!Array.isArray(e.s)){this.logger.error(`[applyDiffOpsToRange] Invalid rangeStructure at path ${n}`,{rangeStructure:e});return}let r=e.d;this.rangeState[n]||(this.rangeState[n]={items:r,statics:e.s,staticsMap:e.sm}),e.m&&typeof e.m=="object"&&typeof e.m.idKey=="string"&&(this.rangeIdKeys[n]=e.m.idKey),this.logger.debug(`[applyDiffOpsToRange] path=${n}, idKey=${this.rangeIdKeys[n]}, items=${r.length}, ops=${t.length}`);for(let s of t){if(!Array.isArray(s)||s.length<2)continue;switch(s[0]){case"r":{let i=s[1],l=this.findItemIndexByKey(r,i,e.s,n);this.logger.debug(`[applyDiffOpsToRange] Remove: key=${i}, index=${l}, total=${r.length}`),l>=0?(r.splice(l,1),this.logger.debug(`[applyDiffOpsToRange] After removal: ${r.length} items`)):this.logger.debug(`[applyDiffOpsToRange] Remove failed: key ${i} not found`);break}case"u":{let i=this.findItemIndexByKey(r,s[1],e.s,n),l=s[2];i>=0&&l&&(r[i]=this.mergeRangeItem(r[i],l,n));break}case"a":{let i=Array.isArray(s[1])?s[1]:[s[1]];s[2]&&(e.s=s[2]),r.push(...i),s[3]&&typeof s[3]=="object"&&s[3].idKey&&(this.rangeIdKeys[n]=s[3].idKey);break}case"p":{let i=Array.isArray(s[1])?s[1]:[s[1]];s[2]&&(e.s=s[2]),r.unshift(...i);break}case"i":{let i=this.findItemIndexByKey(r,s[1],e.s,n);if(i>=0){let l=Array.isArray(s[2])?s[2]:[s[2]];r.splice(i+1,0,...l)}break}case"o":{let i=s[1],l=[],c=new Map;for(let d of r){let g=this.getItemKey(d,e.s,n);g&&c.set(g,d)}for(let d of i){let g=c.get(d);g&&l.push(g)}r.length=0,r.push(...l);break}default:break}}this.rangeState[n]={items:r,statics:e.s,staticsMap:e.sm}}reconstructFromTree(e,t){if(e.s&&Array.isArray(e.s)){let n="";for(let r=0;r<e.s.length;r++){let s=e.s[r];if(n+=s,r<e.s.length-1){let a=r.toString();if(e[a]!==void 0){let i=t?`${t}.${a}`:a;n+=this.renderValue(e[a],a,i)}}}return n=n.replace(/<root>/g,"").replace(/<\/root>/g,""),n}return this.renderValue(e,"",t)}renderValue(e,t,n){if(e==null||typeof e=="string"&&e.startsWith("{{")&&e.endsWith("}}"))return"";if(typeof e=="object"&&!Array.isArray(e)){if(e.d&&Array.isArray(e.d)&&e.s&&Array.isArray(e.s)){let a=n||t||"";return a&&(this.rangeState[a]={items:e.d,statics:e.s,staticsMap:e.sm},e.m&&typeof e.m=="object"&&typeof e.m.idKey=="string"&&(this.rangeIdKeys[a]=e.m.idKey)),this.renderRangeStructure(e,t,n)}if("s"in e&&Array.isArray(e.s))return this.reconstructFromTree(e,n||"");let r=Object.keys(e),s=r.filter(a=>/^\d+$/.test(a)).sort((a,i)=>parseInt(a)-parseInt(i));if(s.length>0&&s.length===r.length)return s.map(a=>{let i=n?`${n}.${a}`:a;return this.renderValue(e[a],a,i)}).join("")}return Array.isArray(e)?e.length>0&&Array.isArray(e[0])&&typeof e[0][0]=="string"?this.applyDifferentialOperations(e,n):e.map((r,s)=>{let a=s.toString(),i=n?`${n}.${a}`:a;return typeof r=="object"&&r&&r.s?this.reconstructFromTree(r,i):this.renderValue(r,a,i)}).join(""):typeof e=="object"?(this.logger.debug("Skipping plain object value (not a tree node) - this is normal for state-only data"),""):String(e)}renderRangeStructure(e,t,n){let{d:r,s,sm:a}=e;if(!r||!Array.isArray(r))return"";if(r.length===0){if(e.else){let l="else",c=n?`${n}.else`:"else";return this.renderValue(e.else,l,c)}return""}let i=a&&typeof a=="object";return s&&Array.isArray(s)?r.map((l,c)=>{let d=s;i&&l._sk&&a[l._sk]&&(d=a[l._sk]);let g="";for(let u=0;u<d.length;u++)if(g+=d[u],u<d.length-1){let m=u.toString();if(l[m]!==void 0){let T=n?`${n}.${c}.${m}`:`${c}.${m}`;g+=this.renderValue(l[m],m,T)}}return g}).join(""):r.map((l,c)=>{let d=c.toString(),g=n?`${n}.${d}`:d;return this.renderValue(l,d,g)}).join("")}applyDifferentialOperations(e,t){if(!t||!this.rangeState[t])return"";let n=this.rangeState[t],r=[...n.items],s=n.statics;for(let i of e){if(!Array.isArray(i)||i.length<2)continue;switch(i[0]){case"r":{let c=this.findItemIndexByKey(r,i[1],s,t);c>=0&&r.splice(c,1);break}case"u":{let c=this.findItemIndexByKey(r,i[1],s,t),d=i[2];c>=0&&d&&(r[c]=this.mergeRangeItem(r[c],d,t||""));break}case"a":{this.addItemsToRange(r,i[1],i[2],n,!1),i[3]&&typeof i[3]=="object"&&i[3].idKey&&(this.rangeIdKeys[t||""]=i[3].idKey);break}case"p":{this.addItemsToRange(r,i[1],i[2],n,!0);break}case"i":{let c=this.findItemIndexByKey(r,i[1],s,t);if(c>=0){let d=Array.isArray(i[2])?i[2]:[i[2]];r.splice(c+1,0,...d)}break}case"o":{let c=i[1],d=[],g=new Map;for(let u of r){let m=this.getItemKey(u,s,t);m&&g.set(m,u)}for(let u of c){let m=g.get(u);m&&d.push(m)}r.length=0,r.push(...d);break}default:break}}this.rangeState[t]={items:r,statics:n.statics,staticsMap:n.staticsMap},this.treeState[t]={d:r,s:n.statics,sm:n.staticsMap};let a=this.getCurrentRangeStructure(t);return a&&a.s?this.renderItemsWithStatics(r,a.s,a.sm,t):r.map(i=>this.renderValue(i)).join("")}getCurrentRangeStructure(e){if(this.rangeState[e])return{d:this.rangeState[e].items,s:this.rangeState[e].statics,sm:this.rangeState[e].staticsMap};let t=this.treeState[e];return t&&typeof t=="object"&&t.s?t:null}renderItemsWithStatics(e,t,n,r){let s=e.map((a,i)=>{let l=t;n&&typeof n=="object"&&a._sk&&n[a._sk]&&(l=n[a._sk]);let c="";for(let d=0;d<l.length;d++)if(c+=l[d],d<l.length-1){let g=d.toString();if(a[g]!==void 0){let u=r?`${r}.${i}.${g}`:`${i}.${g}`;c+=this.renderValue(a[g],g,u)}}return c}).join("");return this.logger.isDebugEnabled()&&(this.logger.debug("[renderItemsWithStatics] statics:",t),this.logger.debug("[renderItemsWithStatics] items count:",e.length),this.logger.debug("[renderItemsWithStatics] result snippet:",s.substring(0,200))),s}addItemsToRange(e,t,n,r,s){if(n&&(r.statics=n),!t)return;let a=Array.isArray(t)?t:[t];s?e.unshift(...a):e.push(...a)}getItemKey(e,t,n){if(e._k&&typeof e._k=="string")return e._k;if(!n||!this.rangeIdKeys[n])return null;let r=this.rangeIdKeys[n];return e[r]||null}findItemIndexByKey(e,t,n,r){return e.findIndex(s=>this.getItemKey(s,n,r)===t)}mergeRangeItem(e,t,n){return this.deepMergeTreeNodes(e,t,`${n}.item`)}};var ae=class{constructor(e){this.modalManager=e;this.activeForm=null;this.activeButton=null;this.originalButtonText=null}setActiveSubmission(e,t,n){if(this.activeForm=e,this.activeButton=t,this.originalButtonText=n,e){e.setAttribute("aria-busy","true");let r=e.querySelector("fieldset");r&&(r.disabled=!0)}}handleResponse(e){this.activeForm&&this.activeForm.dispatchEvent(new CustomEvent("lvt:done",{detail:e})),e.success?this.handleSuccess(e):this.handleError(e),this.restoreFormState()}reset(){this.restoreFormState()}handleSuccess(e){if(!this.activeForm)return;this.activeForm.dispatchEvent(new CustomEvent("lvt:success",{detail:e}));let t=this.activeForm.closest('[role="dialog"]');t&&t.id&&this.modalManager.close(t.id),this.activeForm.hasAttribute("lvt-preserve")||this.activeForm.reset()}handleError(e){this.activeForm&&this.activeForm.dispatchEvent(new CustomEvent("lvt:error",{detail:e}))}restoreFormState(){if(this.activeForm){this.activeForm.removeAttribute("aria-busy");let e=this.activeForm.querySelector("fieldset");e&&(e.disabled=!1)}this.activeButton&&this.originalButtonText!==null&&(this.activeButton.disabled=!1,this.activeButton.textContent=this.originalButtonText),this.activeForm=null,this.activeButton=null,this.originalButtonText=null}};var oe=class{constructor(e,t){this.context=e;this.logger=t;this.boundFields=new Map;this.enabled=!1;this.wiredElements=new Set;this.elementCleanups=new Map}setCapabilities(e){this.enabled=e.includes("change"),this.logger.debug("Capabilities received, change auto-wiring:",this.enabled?"enabled":"disabled")}analyzeStatics(e){let t=this.boundFields.size;this.walkTree(e),this.boundFields.size>t&&this.logger.debug(`Detected ${this.boundFields.size} bound field(s):`,Array.from(this.boundFields.keys()))}wireElements(){if(!this.enabled||this.boundFields.size===0)return;let e=this.context.getWrapperElement();if(e){for(let t of this.elementCleanups.keys())t.isConnected||(this.elementCleanups.get(t)(),this.elementCleanups.delete(t),this.wiredElements.delete(t));for(let[t,n]of this.boundFields){let r=this.escapeCSSSelector(t),s=e.querySelectorAll(`[name="${r}"]`);for(let a of s){if(this.wiredElements.has(a)||a.hasAttribute("lvt-input")||a.hasAttribute("lvt-change"))continue;let i=a.closest("form");i&&(i.hasAttribute("lvt-change")||i.hasAttribute("lvt-no-intercept"))||a instanceof HTMLInputElement&&(a.type==="hidden"||a.type==="submit"||a.type==="button")||a instanceof HTMLButtonElement||(this.attachListener(a,t,n),this.wiredElements.add(a))}}}}teardown(){for(let e of this.elementCleanups.values())e();this.elementCleanups.clear(),this.wiredElements.clear(),this.boundFields.clear(),this.enabled=!1}getBoundFields(){return this.boundFields}isEnabled(){return this.enabled}walkTree(e){if(!(!e||typeof e!="object"||Array.isArray(e))){e.s&&Array.isArray(e.s)&&this.analyzeStaticsArray(e.s);for(let t of Object.keys(e))if(/^\d+$/.test(t)){let n=e[t];n&&typeof n=="object"&&!Array.isArray(n)&&this.walkTree(n)}if(e.d&&Array.isArray(e.d))for(let t of e.d)t&&typeof t=="object"&&!Array.isArray(t)&&this.walkTree(t)}}analyzeStaticsArray(e){for(let t=0;t<e.length-1;t++){let n=e[t],r=e[t+1],s=this.detectBinding(n,r);s&&!this.boundFields.has(s.fieldName)&&this.boundFields.set(s.fieldName,s.bindingType)}}detectBinding(e,t){let n=this.detectValueBinding(e);return n?{fieldName:n,bindingType:"value"}:(n=this.detectTextareaBinding(e,t),n?{fieldName:n,bindingType:"content"}:(n=this.detectAttributeBinding(e,t),n?{fieldName:n,bindingType:"attribute"}:null))}escapeCSSSelector(e){return typeof CSS!="undefined"&&typeof CSS.escape=="function"?CSS.escape(e):e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}extractUnclosedTag(e){let t=e.lastIndexOf("<"),n=e.lastIndexOf(">");return t===-1||t<=n?null:e.substring(t)}extractNameFromTag(e){let t=e.match(/\sname="([^"]+)"/);return t?t[1]:null}detectValueBinding(e){if(!e.endsWith('value="'))return null;let t=this.extractUnclosedTag(e);return t?this.extractNameFromTag(t):null}detectTextareaBinding(e,t){if(!t.startsWith("</textarea"))return null;let n=e.match(/<textarea[^>]*\sname="([^"]+)"[^>]*>$/);return n?n[1]:null}detectAttributeBinding(e,t){if(!e.endsWith(" ")||!/^[a-zA-Z>/\s]/.test(t))return null;let n=this.extractUnclosedTag(e);if(!n||!/^<input\s/i.test(n))return null;let r=n.match(/\stype="([^"]+)"/i);if(!r)return null;let s=r[1].toLowerCase();return s!=="checkbox"&&s!=="radio"?null:this.extractNameFromTag(n)}attachListener(e,t,n){let r=e.getAttribute("lvt-debounce"),s=r?parseInt(r,10):NaN,a=Number.isNaN(s)||s<0?300:s,l=j(()=>{if(!this.enabled)return;let d=n==="attribute"&&e.type==="checkbox"?e.checked:e.value;this.context.send({action:"change",data:{[t]:d}})},a),c=n==="attribute"||e instanceof HTMLSelectElement?"change":"input";e.addEventListener(c,l),this.elementCleanups.set(e,()=>{e.removeEventListener(c,l)}),this.logger.debug(`Auto-wired ${c} listener on [name="${t}"] (debounce: ${a}ms)`)}};var ye=class{constructor(e){this.options=e;this.socket=null;this.reconnectTimer=null;this.manuallyClosed=!1;this.reconnectAttempts=0}connect(){this.manuallyClosed=!1,this.clearReconnectTimer(),this.socket=new WebSocket(this.options.url);let e=this.socket;e.onopen=()=>{var t,n;this.reconnectAttempts=0,(n=(t=this.options).onOpen)==null||n.call(t,e)},e.onmessage=t=>{var n,r;(r=(n=this.options).onMessage)==null||r.call(n,t)},e.onclose=t=>{var n,r;(r=(n=this.options).onClose)==null||r.call(n,t),!this.manuallyClosed&&this.options.autoReconnect&&this.scheduleReconnect()},e.onerror=t=>{var n,r;(r=(n=this.options).onError)==null||r.call(n,t)}}send(e){this.socket&&this.socket.readyState===1&&this.socket.send(e)}disconnect(){this.manuallyClosed=!0,this.clearReconnectTimer(),this.socket&&(this.socket.close(),this.socket=null)}getSocket(){return this.socket}scheduleReconnect(){var i,l,c,d,g;this.clearReconnectTimer();let e=(i=this.options.maxReconnectAttempts)!=null?i:10;if(e>0&&this.reconnectAttempts>=e){(c=(l=this.options).onReconnectFailed)==null||c.call(l);return}this.reconnectAttempts++;let t=(d=this.options.reconnectDelay)!=null?d:1e3,n=(g=this.options.maxReconnectDelay)!=null?g:16e3,r=t*Math.pow(2,this.reconnectAttempts-1),s=Math.random()*1e3,a=Math.min(r+s,n);this.reconnectTimer=window.setTimeout(()=>{var u,m;(m=(u=this.options).onReconnectAttempt)==null||m.call(u,this.reconnectAttempts,a),this.connect()},a)}clearReconnectTimer(){this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}},le=class{constructor(e){this.config=e;this.transport=null}async connect(){let e=this.getLiveUrl();return await pt(e,this.config.logger)?(this.transport=new ye({url:this.getWebSocketUrl(),autoReconnect:this.config.options.autoReconnect,reconnectDelay:this.config.options.reconnectDelay,maxReconnectDelay:16e3,maxReconnectAttempts:10,onOpen:()=>{this.config.onConnected()},onMessage:n=>{try{let r=JSON.parse(n.data);this.config.onMessage(r,n)}catch(r){this.config.logger.error("Failed to parse WebSocket message:",r)}},onClose:()=>{this.config.onDisconnected()},onReconnectAttempt:(n,r)=>{var s,a;(a=(s=this.config).onReconnectAttempt)==null||a.call(s,n,r)},onReconnectFailed:()=>{var n,r;(r=(n=this.config).onReconnectFailed)==null||r.call(n)},onError:n=>{var r,s;(s=(r=this.config).onError)==null||s.call(r,n)}}),this.transport.connect(),{usingWebSocket:!0}):{usingWebSocket:!1,initialState:await gt(e,this.config.logger)}}disconnect(){var e;(e=this.transport)==null||e.disconnect(),this.transport=null}send(e){var t;(t=this.transport)==null||t.send(e)}getReadyState(){var e,t;return(t=(e=this.transport)==null?void 0:e.getSocket())==null?void 0:t.readyState}getSocket(){var e,t;return(t=(e=this.transport)==null?void 0:e.getSocket())!=null?t:null}getWebSocketUrl(){let e=this.config.options.liveUrl||"/live",t=this.config.options.wsUrl;return t||`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${e}`}getLiveUrl(){return this.config.options.liveUrl||window.location.pathname+window.location.search}};async function pt(o,e){try{let n=(await fetch(o,{method:"HEAD"})).headers.get("X-LiveTemplate-WebSocket");return n?n==="enabled":!0}catch(t){return e==null||e.warn("Failed to check WebSocket availability:",t),!0}}async function gt(o,e){try{let t=await fetch(o,{method:"GET",credentials:"include",headers:{Accept:"application/json"}});if(!t.ok)throw new Error(`Failed to fetch initial state: ${t.status}`);return await t.json()}catch(t){return e==null||e.warn("Failed to fetch initial state:",t),null}}var ce=class{async upload(e,t,n){let{file:r}=e;e.abortController=new AbortController;try{let s=new XMLHttpRequest;s.upload.addEventListener("progress",i=>{i.lengthComputable&&(e.bytesUploaded=i.loaded,e.progress=Math.round(i.loaded/i.total*100),n&&n(e))}),e.abortController.signal.addEventListener("abort",()=>{s.abort()});let a=new Promise((i,l)=>{s.addEventListener("load",()=>{s.status>=200&&s.status<300?(e.done=!0,e.progress=100,i()):l(new Error(`S3 upload failed with status ${s.status}: ${s.statusText}`))}),s.addEventListener("error",()=>{l(new Error("S3 upload failed: Network error"))}),s.addEventListener("abort",()=>{l(new Error("S3 upload cancelled"))})});if(s.open("PUT",t.url),t.headers)for(let[i,l]of Object.entries(t.headers))s.setRequestHeader(i,l);s.send(r),await a}catch(s){throw e.error=s instanceof Error?s.message:String(s),s}}};var de=class{constructor(e,t={}){this.sendMessage=e;this.entries=new Map;this.pendingFiles=new Map;this.autoUploadConfig=new Map;this.uploaders=new Map;this.inputHandlers=new WeakMap;this.chunkSize=t.chunkSize||256*1024,this.onProgress=t.onProgress,this.onComplete=t.onComplete,this.onError=t.onError,this.uploaders.set("s3",new ce)}initializeFileInputs(e){e.querySelectorAll('input[type="file"][lvt-upload]').forEach(n=>{let r=n.getAttribute("lvt-upload");if(!r)return;let s=this.inputHandlers.get(n);s&&n.removeEventListener("change",s);let a=i=>{let l=i.target.files;!l||l.length===0||this.startUpload(r,Array.from(l))};n.addEventListener("change",a),this.inputHandlers.set(n,a)})}async startUpload(e,t){this.pendingFiles.set(e,t);let n=t.map(s=>({name:s.name,type:s.type||"application/octet-stream",size:s.size})),r={action:"upload_start",upload_name:e,files:n};this.sendMessage(r)}async handleUploadStartResponse(e){let{upload_name:t,entries:n}=e;n.length>0&&this.autoUploadConfig.set(t,n[0].auto_upload);let r=this.pendingFiles.get(t);if(!r){console.error(`No pending files found for upload: ${t}`);return}this.pendingFiles.delete(t);let s=new Map;for(let i of r)s.set(i.name,i);let a=[];for(let i of n){let l=s.get(i.client_name);if(!l){console.warn(`No file found for entry ${i.entry_id} (client_name: ${i.client_name})`);continue}let c={id:i.entry_id,file:l,uploadName:t,progress:0,bytesUploaded:0,valid:i.valid,done:!1,error:i.error,external:i.external};if(this.entries.set(c.id,c),a.push(c),!i.valid){this.onError&&i.error&&this.onError(c,i.error);continue}i.auto_upload&&(i.external?this.uploadExternal(c,i.external):this.uploadChunked(c))}}async uploadExternal(e,t){try{let n=this.uploaders.get(t.uploader);if(!n)throw new Error(`Unknown uploader: ${t.uploader}`);await n.upload(e,t,this.onProgress);let r={action:"upload_complete",upload_name:e.uploadName,entry_ids:[e.id]};this.sendMessage(r),this.onComplete&&this.onComplete(e.uploadName,[e]),this.clearFileInput(e.uploadName),this.cleanupEntries(e.uploadName)}catch(n){let r=n instanceof Error?n.message:String(n);e.error=r,this.onError&&this.onError(e,r),this.cleanupEntries(e.uploadName)}}async uploadChunked(e){let{file:t,id:n}=e,r=0;e.abortController=new AbortController;try{for(;r<t.size;){if(e.abortController.signal.aborted)throw new Error("Upload cancelled");let a=Math.min(r+this.chunkSize,t.size),i=t.slice(r,a),l=await this.fileToBase64(i),c={action:"upload_chunk",entry_id:n,chunk_base64:l,offset:r,total:t.size};this.sendMessage(c),r=a,e.bytesUploaded=r,e.progress=Math.round(r/t.size*100),this.onProgress&&this.onProgress(e)}e.done=!0;let s={action:"upload_complete",upload_name:e.uploadName,entry_ids:[n]};this.sendMessage(s),this.onComplete&&this.onComplete(e.uploadName,[e]),this.clearFileInput(e.uploadName),this.cleanupEntries(e.uploadName)}catch(s){let a=s instanceof Error?s.message:String(s);e.error=a,this.onError&&this.onError(e,a),this.cleanupEntries(e.uploadName)}}handleProgressMessage(e){let t=this.entries.get(e.entry_id);t&&(t.progress=e.progress,t.bytesUploaded=e.bytes_recv,this.onProgress&&this.onProgress(t))}cancelUpload(e){let t=this.entries.get(e);t&&(t.abortController&&t.abortController.abort(),this.sendMessage({action:"cancel_upload",entry_id:e}),this.entries.delete(e))}getEntries(e){let t=[];for(let n of this.entries.values())n.uploadName===e&&t.push(n);return t}triggerPendingUploads(e){let t=[];for(let n of this.entries.values())n.uploadName===e&&n.progress===0&&!n.done&&!n.error&&t.push(n);for(let n of t)n.external?this.uploadExternal(n,n.external):this.uploadChunked(n)}registerUploader(e,t){this.uploaders.set(e,t)}clearFileInput(e){document.querySelectorAll(`input[type="file"][lvt-upload="${e}"]`).forEach(n=>{n.value=""})}cleanupEntries(e,t=5e3){setTimeout(()=>{let n=[];for(let[r,s]of this.entries)e&&s.uploadName!==e||(s.done||s.error)&&n.push(r);for(let r of n)this.entries.delete(r)},t)}fileToBase64(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let a=r.result.split(",")[1];t(a)},r.onerror=n,r.readAsDataURL(e)})}};var Ne={silent:0,error:1,warn:2,info:3,debug:4},Ue="LiveTemplate",be=class o{constructor(e,t=[],n=console){this.state=e;this.scope=t;this.sink=n}setLevel(e){this.state.level=e}getLevel(){return this.state.level}child(e){return new o(this.state,[...this.scope,e],this.sink)}isDebugEnabled(){return this.shouldLog("debug")}error(...e){this.log("error","error",e)}warn(...e){this.log("warn","warn",e)}info(...e){this.log("info","info",e)}debug(...e){this.log("debug","debug",e)}log(e,t,n){if(!this.shouldLog(e))return;(this.sink[t]||console[t]||console.log).apply(this.sink,[this.formatPrefix(),...n])}shouldLog(e){return Ne[e]<=Ne[this.state.level]}formatPrefix(){return this.scope.length===0?`[${Ue}]`:`[${Ue}:${this.scope.join(":")}]`}};function Ee(o={}){var n,r;let e={level:(n=o.level)!=null?n:"info"},t=Array.isArray(o.scope)?o.scope:o.scope?[o.scope]:[];return new be(e,t,(r=o.sink)!=null?r:console)}async function De(o,e){try{let t=globalThis==null?void 0:globalThis.require;if(typeof t=="function"){let s=t("fs"),a=JSON.parse(s.readFileSync(e,"utf8"));return o.applyUpdate(a)}let r=await(await fetch(e)).json();return o.applyUpdate(r)}catch(t){throw new Error(`Failed to load update from ${e}: ${t}`)}}function Oe(o,e){let t=[],n=c=>c.replace(/\s+/g," ").replace(/>\s+</g,"><").trim(),r=n(o),s=n(e);if(r===s)return{match:!0,differences:[]};let a=r.split(`
42
42
  `),i=s.split(`
43
- `),l=Math.max(a.length,i.length);for(let c=0;c<l;c++){let d=a[c]||"",g=i[c]||"";d!==g&&(t.push(`Line ${c+1}:`),t.push(` Expected: ${d}`),t.push(` Actual: ${g}`))}return{match:!1,differences:t}}var pe=class o{constructor(e={}){this.lvtId=null;this.ws=null;this.wrapperElement=null;this.useHTTP=!1;this.sessionCookie=null;this.rateLimitedHandlers=new WeakMap;this.isInitialized=!1;this.messageCount=0;let{logger:t,logLevel:n,debug:r,...s}=e,a=n!=null?n:r?"debug":"info",i=t!=null?t:we({level:a});t?n?t.setLevel(n):r&&t.setLevel("debug"):i.setLevel(a),this.logger=i.child("Client"),this.options={autoReconnect:!1,reconnectDelay:1e3,liveUrl:window.location.pathname+window.location.search,...s},this.treeRenderer=new ae(this.logger.child("TreeRenderer")),this.focusManager=new Y(this.logger.child("FocusManager")),this.modalManager=new ne(this.logger.child("ModalManager")),this.formLifecycleManager=new oe(this.modalManager),this.loadingIndicator=new re,this.formDisabler=new se,this.uploadHandler=new ue(l=>this.send(l),{chunkSize:256*1024,onProgress:l=>{this.wrapperElement&&this.wrapperElement.dispatchEvent(new CustomEvent("lvt:upload:progress",{detail:{entry:l}}))},onComplete:(l,c)=>{this.logger.info(`Upload complete: ${l}`,c),this.wrapperElement&&this.wrapperElement.dispatchEvent(new CustomEvent("lvt:upload:complete",{detail:{uploadName:l,entries:c}}))},onError:(l,c)=>{this.logger.error(`Upload error for ${l.id}:`,c),this.wrapperElement&&this.wrapperElement.dispatchEvent(new CustomEvent("lvt:upload:error",{detail:{entry:l,error:c}}))}}),this.eventDelegator=new Z({getWrapperElement:()=>this.wrapperElement,getRateLimitedHandlers:()=>this.rateLimitedHandlers,parseValue:l=>this.parseValue(l),send:l=>this.send(l),setActiveSubmission:(l,c,d)=>this.formLifecycleManager.setActiveSubmission(l,c,d),openModal:l=>this.modalManager.open(l),closeModal:l=>this.modalManager.close(l),getWebSocketReadyState:()=>this.webSocketManager.getReadyState(),triggerPendingUploads:l=>this.uploadHandler.triggerPendingUploads(l)},this.logger.child("EventDelegator")),this.linkInterceptor=new ee({getWrapperElement:()=>this.wrapperElement,handleNavigationResponse:l=>this.handleNavigationResponse(l)},this.logger.child("LinkInterceptor")),this.observerManager=new te({getWrapperElement:()=>this.wrapperElement,send:l=>this.send(l)},this.logger.child("ObserverManager")),this.changeAutoWirer=new le({getWrapperElement:()=>this.wrapperElement,send:l=>this.send(l)},this.logger.child("ChangeAutoWirer")),this.webSocketManager=new ce({options:this.options,logger:this.logger.child("Transport"),onConnected:()=>{var l,c,d;this.ws=this.webSocketManager.getSocket(),this.logger.info("WebSocket connected"),this.clearFlashQueryParams(),(c=(l=this.options).onConnect)==null||c.call(l),(d=this.wrapperElement)==null||d.dispatchEvent(new Event("lvt:connected"))},onDisconnected:()=>{var l,c,d;this.ws=null,this.logger.info("WebSocket disconnected"),(c=(l=this.options).onDisconnect)==null||c.call(l),(d=this.wrapperElement)==null||d.dispatchEvent(new Event("lvt:disconnected"))},onMessage:(l,c)=>{this.handleWebSocketPayload(l,c)},onReconnectAttempt:()=>{this.logger.info("Attempting to reconnect...")},onError:l=>{var c,d;this.logger.error("WebSocket error:",l),(d=(c=this.options).onError)==null||d.call(c,l)}})}static autoInit(){let e=we({scope:"Client:autoInit"}),t=()=>{let n=document.querySelector("[data-lvt-id]");if(n){let r=new o;r.wrapperElement=n,n.getAttribute("data-lvt-loading")==="true"&&(r.loadingIndicator.show(),r.formDisabler.disable(r.wrapperElement)),r.connect().catch(a=>{e.error("Auto-initialization connect failed:",a)}),window.liveTemplateClient=r}};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}handleWebSocketPayload(e,t){var r,s,a;t&&(window.__lastWSMessage=t.data,window.__wsMessages||(window.__wsMessages=[]),window.__wsMessages.push(e));let n=e;if(n.type==="upload_progress"){this.uploadHandler.handleProgressMessage(n);return}if(n.upload_name&&n.entries){let i=n;try{this.handleUploadStartResponse(i)}catch(l){this.logger.error("Error handling upload start response:",l)}return}if(n.upload_name&&n.hasOwnProperty("success")){n.success?this.logger.info(`Upload complete: ${n.upload_name}`):this.logger.error(`Upload failed: ${n.upload_name}`,n.error);return}this.isInitialized||(this.loadingIndicator.hide(),this.formDisabler.enable(this.wrapperElement),this.wrapperElement&&this.wrapperElement.hasAttribute("data-lvt-loading")&&this.wrapperElement.removeAttribute("data-lvt-loading"),this.isInitialized=!0),this.wrapperElement&&((r=e.meta)!=null&&r.capabilities&&this.changeAutoWirer.setCapabilities(e.meta.capabilities),this.changeAutoWirer.analyzeStatics(e.tree),this.updateDOM(this.wrapperElement,e.tree,e.meta),this.messageCount++,window.__wsMessageCount=this.messageCount,this.wrapperElement.dispatchEvent(new CustomEvent("lvt:updated",{detail:{messageCount:this.messageCount,action:(s=e.meta)==null?void 0:s.action,success:(a=e.meta)==null?void 0:a.success}})))}async connect(e="[data-lvt-id]"){var n,r;if(this.wrapperElement=document.querySelector(e),!this.wrapperElement)throw new Error(`LiveTemplate wrapper not found with selector: ${e}`);this.webSocketManager.disconnect();let t=await this.webSocketManager.connect();this.useHTTP=!t.usingWebSocket,this.useHTTP&&(this.ws=null,this.logger.info("WebSocket not available, using HTTP mode"),(r=(n=this.options).onConnect)==null||r.call(n),t.initialState&&this.wrapperElement&&this.handleWebSocketPayload(t.initialState)),this.eventDelegator.setupEventDelegation(),this.eventDelegator.setupWindowEventDelegation(),this.eventDelegator.setupClickAwayDelegation(),this.eventDelegator.setupModalDelegation(),this.eventDelegator.setupFocusTrapDelegation(),this.eventDelegator.setupAutofocusDelegation(),this.linkInterceptor.setup(this.wrapperElement),ie(),this.focusManager.attach(this.wrapperElement),this.observerManager.setupInfiniteScrollObserver(),this.observerManager.setupInfiniteScrollMutationObserver()}disconnect(){this.webSocketManager.disconnect(),this.ws=null,this.useHTTP=!1,this.observerManager.teardown(),this.changeAutoWirer.teardown(),this.formLifecycleManager.reset(),this.loadingIndicator.hide(),this.formDisabler.enable(this.wrapperElement)}clearFlashQueryParams(){let e=new URL(window.location.href),t=["error","success"],n=!1;for(let r of t)e.searchParams.has(r)&&(e.searchParams.delete(r),n=!0);n&&(this.logger.debug("Clearing flash query params from URL"),window.history.replaceState(null,"",e.toString()))}isReady(){let e=this.wrapperElement;return!e||e.hasAttribute("data-lvt-loading")?!1:this.useHTTP?!0:this.webSocketManager.getReadyState()===1}send(e){window.__lvtSendCalled=!0,window.__lvtMessageAction=e==null?void 0:e.action;let t=this.webSocketManager.getReadyState();this.logger.isDebugEnabled()&&this.logger.debug("send() invoked",{message:e,useHTTP:this.useHTTP,hasWebSocket:t!==void 0,readyState:t}),this.useHTTP?(this.logger.debug("Using HTTP mode for send"),window.__lvtSendPath="http",this.sendHTTP(e)):t===1?(this.logger.debug("Sending via WebSocket"),window.__lvtSendPath="websocket",window.__lvtWSMessage=JSON.stringify(e),this.webSocketManager.send(JSON.stringify(e)),this.logger.debug("WebSocket send complete"),window.__lvtWSSendComplete=!0):t!==void 0?(this.logger.warn(`WebSocket not ready (state: ${t}), using HTTP fallback`),window.__lvtSendPath="http-fallback",this.sendHTTP(e)):(this.logger.error("No transport available"),window.__lvtSendPath="no-transport")}async sendHTTP(e){try{let t=this.options.liveUrl||"/live",n=await fetch(t,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)});if(!n.ok)throw new Error(`HTTP request failed: ${n.status}`);let r=await n.json();this.wrapperElement&&this.updateDOM(this.wrapperElement,r.tree,r.meta)}catch(t){this.logger.error("Failed to send HTTP request:",t)}}handleNavigationResponse(e){if(!this.wrapperElement)return;let n=new DOMParser().parseFromString(e,"text/html"),r=this.wrapperElement.getAttribute("data-lvt-id"),s=r?n.querySelector(`[data-lvt-id="${r}"]`):null;if(s)this.wrapperElement.replaceChildren(...Array.from(s.childNodes).map(a=>a.cloneNode(!0)));else{let a=n.querySelector("body");a&&this.wrapperElement.replaceChildren(...Array.from(a.childNodes).map(i=>i.cloneNode(!0)))}this.eventDelegator.setupEventDelegation(),this.linkInterceptor.setup(this.wrapperElement)}parseValue(e){let t=e.trim(),n=parseFloat(t);if(!isNaN(n)){if(Number.isInteger(n)&&Math.abs(n)>Number.MAX_SAFE_INTEGER)return t;if(t===n.toString())return n}return e==="true"?!0:e==="false"?!1:e}applyUpdate(e){return this.treeRenderer.applyUpdate(e)}applyUpdateToHTML(e,t){let n=this.applyUpdate(t);if(!this.lvtId){let c=e.match(/data-lvt-id="([^"]+)"/);c&&(this.lvtId=c[1])}let r=n.html;if(!e.match(/<body>([\s\S]*?)<\/body>/))return e;let l=`<div data-lvt-id="${this.lvtId||"lvt-unknown"}">`+r+"</div>";return e.replace(/<body>[\s\S]*?<\/body>/,`<body>${l}</body>`)}updateDOM(e,t,n){let r=this.applyUpdate(t),s=i=>!i||typeof i!="object"?!1:i.s&&Array.isArray(i.s)?!0:Object.values(i).some(l=>s(l));if(!r.changed&&!s(t))return;let a=document.createElement(e.tagName);this.logger.isDebugEnabled()&&(this.logger.debug("[updateDOM] element.tagName:",e.tagName),this.logger.debug("[updateDOM] result.html (first 500 chars):",r.html.substring(0,500)),this.logger.debug("[updateDOM] Has <table> tag:",r.html.includes("<table>")),this.logger.debug("[updateDOM] Has <tbody> tag:",r.html.includes("<tbody>")),this.logger.debug("[updateDOM] Has <tr> tag:",r.html.includes("<tr"))),a.innerHTML=r.html,this.logger.isDebugEnabled()&&(this.logger.debug("[updateDOM] tempWrapper.innerHTML (first 500 chars):",a.innerHTML.substring(0,500)),this.logger.debug("[updateDOM] tempWrapper has <table>:",a.innerHTML.includes("<table>")),this.logger.debug("[updateDOM] tempWrapper has <tbody>:",a.innerHTML.includes("<tbody>")),this.logger.debug("[updateDOM] tempWrapper has <tr>:",a.innerHTML.includes("<tr"))),xe(e,a,{childrenOnly:!0,getNodeKey:i=>{if(i.nodeType===1)return i.getAttribute("data-key")||i.getAttribute("data-lvt-key")||void 0},onBeforeElUpdated:(i,l)=>{let c=this.focusManager.getLastFocusedElement();return c&&this.focusManager.isTextualInput(i)&&i===c&&(l.value=i.value),i.isEqualNode(l)?!1:(this.executeLifecycleHook(i,"lvt-updated"),!0)},onNodeAdded:i=>{i.nodeType===Node.ELEMENT_NODE&&this.executeLifecycleHook(i,"lvt-mounted")},onBeforeNodeDiscarded:i=>(i.nodeType===Node.ELEMENT_NODE&&this.executeLifecycleHook(i,"lvt-destroyed"),!0)}),this.focusManager.restoreFocusedElement(),Ce(e),_e(e),Fe(e),this.uploadHandler.initializeFileInputs(e),this.changeAutoWirer.wireElements(),n&&this.formLifecycleManager.handleResponse(n)}handleUploadStartResponse(e){this.uploadHandler.handleUploadStartResponse(e)}executeLifecycleHook(e,t){let n=e.getAttribute(t);if(n)try{new Function("element",n).call(e,e)}catch(r){this.logger.error(`Error executing ${t} hook:`,r)}}reset(){this.treeRenderer.reset(),this.focusManager.reset(),this.observerManager.teardown(),this.changeAutoWirer.teardown(),this.formLifecycleManager.reset(),this.loadingIndicator.hide(),this.formDisabler.enable(this.wrapperElement),this.lvtId=null}getTreeState(){return this.treeRenderer.getTreeState()}getStaticStructure(){return this.treeRenderer.getStaticStructure()}};typeof window!="undefined"&&pe.autoInit();return Ve(ft);})();
43
+ `),l=Math.max(a.length,i.length);for(let c=0;c<l;c++){let d=a[c]||"",g=i[c]||"";d!==g&&(t.push(`Line ${c+1}:`),t.push(` Expected: ${d}`),t.push(` Actual: ${g}`))}return{match:!1,differences:t}}var ue=class o{constructor(e={}){this.lvtId=null;this.ws=null;this.wrapperElement=null;this.useHTTP=!1;this.sessionCookie=null;this.rateLimitedHandlers=new WeakMap;this.isInitialized=!1;this.messageCount=0;let{logger:t,logLevel:n,debug:r,...s}=e,a=n!=null?n:r?"debug":"info",i=t!=null?t:Ee({level:a});t?n?t.setLevel(n):r&&t.setLevel("debug"):i.setLevel(a),this.logger=i.child("Client"),this.options={autoReconnect:!1,reconnectDelay:1e3,liveUrl:window.location.pathname+window.location.search,...s},this.treeRenderer=new ie(this.logger.child("TreeRenderer")),this.focusManager=new J(this.logger.child("FocusManager")),this.modalManager=new te(this.logger.child("ModalManager")),this.formLifecycleManager=new ae(this.modalManager),this.loadingIndicator=new ne,this.formDisabler=new re,this.uploadHandler=new de(l=>this.send(l),{chunkSize:256*1024,onProgress:l=>{this.wrapperElement&&this.wrapperElement.dispatchEvent(new CustomEvent("lvt:upload:progress",{detail:{entry:l}}))},onComplete:(l,c)=>{this.logger.info(`Upload complete: ${l}`,c),this.wrapperElement&&this.wrapperElement.dispatchEvent(new CustomEvent("lvt:upload:complete",{detail:{uploadName:l,entries:c}}))},onError:(l,c)=>{this.logger.error(`Upload error for ${l.id}:`,c),this.wrapperElement&&this.wrapperElement.dispatchEvent(new CustomEvent("lvt:upload:error",{detail:{entry:l,error:c}}))}}),this.eventDelegator=new Q({getWrapperElement:()=>this.wrapperElement,getRateLimitedHandlers:()=>this.rateLimitedHandlers,parseValue:l=>this.parseValue(l),send:l=>this.send(l),setActiveSubmission:(l,c,d)=>this.formLifecycleManager.setActiveSubmission(l,c,d),openModal:l=>this.modalManager.open(l),closeModal:l=>this.modalManager.close(l),getWebSocketReadyState:()=>this.webSocketManager.getReadyState(),triggerPendingUploads:l=>this.uploadHandler.triggerPendingUploads(l)},this.logger.child("EventDelegator")),this.linkInterceptor=new Z({getWrapperElement:()=>this.wrapperElement,handleNavigationResponse:l=>this.handleNavigationResponse(l)},this.logger.child("LinkInterceptor")),this.observerManager=new ee({getWrapperElement:()=>this.wrapperElement,send:l=>this.send(l)},this.logger.child("ObserverManager")),this.changeAutoWirer=new oe({getWrapperElement:()=>this.wrapperElement,send:l=>this.send(l)},this.logger.child("ChangeAutoWirer")),this.webSocketManager=new le({options:this.options,logger:this.logger.child("Transport"),onConnected:()=>{var l,c,d;this.ws=this.webSocketManager.getSocket(),this.logger.info("WebSocket connected"),this.clearFlashQueryParams(),(c=(l=this.options).onConnect)==null||c.call(l),(d=this.wrapperElement)==null||d.dispatchEvent(new Event("lvt:connected"))},onDisconnected:()=>{var l,c,d;this.ws=null,this.logger.info("WebSocket disconnected"),(c=(l=this.options).onDisconnect)==null||c.call(l),(d=this.wrapperElement)==null||d.dispatchEvent(new Event("lvt:disconnected"))},onMessage:(l,c)=>{this.handleWebSocketPayload(l,c)},onReconnectAttempt:()=>{this.logger.info("Attempting to reconnect...")},onError:l=>{var c,d;this.logger.error("WebSocket error:",l),(d=(c=this.options).onError)==null||d.call(c,l)}})}static autoInit(){let e=Ee({scope:"Client:autoInit"}),t=()=>{let n=document.querySelector("[data-lvt-id]");if(n){let r=new o;r.wrapperElement=n,n.getAttribute("data-lvt-loading")==="true"&&(r.loadingIndicator.show(),r.formDisabler.disable(r.wrapperElement)),r.connect().catch(a=>{e.error("Auto-initialization connect failed:",a)}),window.liveTemplateClient=r}};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}handleWebSocketPayload(e,t){var r,s,a;t&&(window.__lastWSMessage=t.data,window.__wsMessages||(window.__wsMessages=[]),window.__wsMessages.push(e));let n=e;if(n.type==="upload_progress"){this.uploadHandler.handleProgressMessage(n);return}if(n.upload_name&&n.entries){let i=n;try{this.handleUploadStartResponse(i)}catch(l){this.logger.error("Error handling upload start response:",l)}return}if(n.upload_name&&n.hasOwnProperty("success")){n.success?this.logger.info(`Upload complete: ${n.upload_name}`):this.logger.error(`Upload failed: ${n.upload_name}`,n.error);return}this.isInitialized||(this.loadingIndicator.hide(),this.formDisabler.enable(this.wrapperElement),this.wrapperElement&&this.wrapperElement.hasAttribute("data-lvt-loading")&&this.wrapperElement.removeAttribute("data-lvt-loading"),this.isInitialized=!0),this.wrapperElement&&((r=e.meta)!=null&&r.capabilities&&this.changeAutoWirer.setCapabilities(e.meta.capabilities),this.changeAutoWirer.analyzeStatics(e.tree),this.updateDOM(this.wrapperElement,e.tree,e.meta),this.messageCount++,window.__wsMessageCount=this.messageCount,this.wrapperElement.dispatchEvent(new CustomEvent("lvt:updated",{detail:{messageCount:this.messageCount,action:(s=e.meta)==null?void 0:s.action,success:(a=e.meta)==null?void 0:a.success}})))}async connect(e="[data-lvt-id]"){var n,r;if(this.wrapperElement=document.querySelector(e),!this.wrapperElement)throw new Error(`LiveTemplate wrapper not found with selector: ${e}`);this.webSocketManager.disconnect();let t=await this.webSocketManager.connect();this.useHTTP=!t.usingWebSocket,this.useHTTP&&(this.ws=null,this.logger.info("WebSocket not available, using HTTP mode"),(r=(n=this.options).onConnect)==null||r.call(n),t.initialState&&this.wrapperElement&&this.handleWebSocketPayload(t.initialState)),this.eventDelegator.setupEventDelegation(),this.eventDelegator.setupWindowEventDelegation(),this.eventDelegator.setupClickAwayDelegation(),this.eventDelegator.setupModalDelegation(),this.eventDelegator.setupFocusTrapDelegation(),this.eventDelegator.setupAutofocusDelegation(),this.linkInterceptor.setup(this.wrapperElement),se(),this.focusManager.attach(this.wrapperElement),this.observerManager.setupInfiniteScrollObserver(),this.observerManager.setupInfiniteScrollMutationObserver()}disconnect(){this.webSocketManager.disconnect(),this.ws=null,this.useHTTP=!1,this.observerManager.teardown(),this.changeAutoWirer.teardown(),this.formLifecycleManager.reset(),this.loadingIndicator.hide(),this.formDisabler.enable(this.wrapperElement)}clearFlashQueryParams(){let e=new URL(window.location.href),t=["error","success"],n=!1;for(let r of t)e.searchParams.has(r)&&(e.searchParams.delete(r),n=!0);n&&(this.logger.debug("Clearing flash query params from URL"),window.history.replaceState(null,"",e.toString()))}isReady(){let e=this.wrapperElement;return!e||e.hasAttribute("data-lvt-loading")?!1:this.useHTTP?!0:this.webSocketManager.getReadyState()===1}send(e){window.__lvtSendCalled=!0,window.__lvtMessageAction=e==null?void 0:e.action;let t=this.webSocketManager.getReadyState();this.logger.isDebugEnabled()&&this.logger.debug("send() invoked",{message:e,useHTTP:this.useHTTP,hasWebSocket:t!==void 0,readyState:t}),this.useHTTP?(this.logger.debug("Using HTTP mode for send"),window.__lvtSendPath="http",this.sendHTTP(e)):t===1?(this.logger.debug("Sending via WebSocket"),window.__lvtSendPath="websocket",window.__lvtWSMessage=JSON.stringify(e),this.webSocketManager.send(JSON.stringify(e)),this.logger.debug("WebSocket send complete"),window.__lvtWSSendComplete=!0):t!==void 0?(this.logger.warn(`WebSocket not ready (state: ${t}), using HTTP fallback`),window.__lvtSendPath="http-fallback",this.sendHTTP(e)):(this.logger.error("No transport available"),window.__lvtSendPath="no-transport")}async sendHTTP(e){try{let t=this.options.liveUrl||"/live",n=await fetch(t,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)});if(!n.ok)throw new Error(`HTTP request failed: ${n.status}`);let r=await n.json();this.wrapperElement&&this.updateDOM(this.wrapperElement,r.tree,r.meta)}catch(t){this.logger.error("Failed to send HTTP request:",t)}}handleNavigationResponse(e){if(!this.wrapperElement)return;let n=new DOMParser().parseFromString(e,"text/html"),r=this.wrapperElement.getAttribute("data-lvt-id"),s=r?n.querySelector(`[data-lvt-id="${r}"]`):null;if(s)this.wrapperElement.replaceChildren(...Array.from(s.childNodes).map(a=>a.cloneNode(!0)));else{let a=n.querySelector("body");a&&this.wrapperElement.replaceChildren(...Array.from(a.childNodes).map(i=>i.cloneNode(!0)))}this.eventDelegator.setupEventDelegation(),this.linkInterceptor.setup(this.wrapperElement)}parseValue(e){let t=e.trim(),n=parseFloat(t);if(!isNaN(n)){if(Number.isInteger(n)&&Math.abs(n)>Number.MAX_SAFE_INTEGER)return t;if(t===n.toString())return n}return e==="true"?!0:e==="false"?!1:e}applyUpdate(e){return this.treeRenderer.applyUpdate(e)}applyUpdateToHTML(e,t){let n=this.applyUpdate(t);if(!this.lvtId){let c=e.match(/data-lvt-id="([^"]+)"/);c&&(this.lvtId=c[1])}let r=n.html;if(!e.match(/<body>([\s\S]*?)<\/body>/))return e;let l=`<div data-lvt-id="${this.lvtId||"lvt-unknown"}">`+r+"</div>";return e.replace(/<body>[\s\S]*?<\/body>/,`<body>${l}</body>`)}updateDOM(e,t,n){let r=this.applyUpdate(t),s=i=>!i||typeof i!="object"?!1:i.s&&Array.isArray(i.s)?!0:Object.values(i).some(l=>s(l));if(!r.changed&&!s(t))return;let a=document.createElement(e.tagName);this.logger.isDebugEnabled()&&(this.logger.debug("[updateDOM] element.tagName:",e.tagName),this.logger.debug("[updateDOM] result.html (first 500 chars):",r.html.substring(0,500)),this.logger.debug("[updateDOM] Has <table> tag:",r.html.includes("<table>")),this.logger.debug("[updateDOM] Has <tbody> tag:",r.html.includes("<tbody>")),this.logger.debug("[updateDOM] Has <tr> tag:",r.html.includes("<tr"))),a.innerHTML=r.html,this.logger.isDebugEnabled()&&(this.logger.debug("[updateDOM] tempWrapper.innerHTML (first 500 chars):",a.innerHTML.substring(0,500)),this.logger.debug("[updateDOM] tempWrapper has <table>:",a.innerHTML.includes("<table>")),this.logger.debug("[updateDOM] tempWrapper has <tbody>:",a.innerHTML.includes("<tbody>")),this.logger.debug("[updateDOM] tempWrapper has <tr>:",a.innerHTML.includes("<tr"))),xe(e,a,{childrenOnly:!0,getNodeKey:i=>{if(i.nodeType===1)return i.getAttribute("data-key")||i.getAttribute("data-lvt-key")||void 0},onBeforeElUpdated:(i,l)=>{let c=this.focusManager.getLastFocusedElement();return c&&this.focusManager.isTextualInput(i)&&i===c&&(l.value=i.value),i.isEqualNode(l)?!1:(this.executeLifecycleHook(i,"lvt-updated"),!0)},onNodeAdded:i=>{i.nodeType===Node.ELEMENT_NODE&&this.executeLifecycleHook(i,"lvt-mounted")},onBeforeNodeDiscarded:i=>(i.nodeType===Node.ELEMENT_NODE&&this.executeLifecycleHook(i,"lvt-destroyed"),!0)}),this.focusManager.restoreFocusedElement(),Ce(e),_e(e),Fe(e),this.uploadHandler.initializeFileInputs(e),this.changeAutoWirer.wireElements(),n&&this.formLifecycleManager.handleResponse(n)}handleUploadStartResponse(e){this.uploadHandler.handleUploadStartResponse(e)}executeLifecycleHook(e,t){let n=e.getAttribute(t);if(n)try{new Function("element",n).call(e,e)}catch(r){this.logger.error(`Error executing ${t} hook:`,r)}}reset(){this.treeRenderer.reset(),this.focusManager.reset(),this.observerManager.teardown(),this.changeAutoWirer.teardown(),this.formLifecycleManager.reset(),this.loadingIndicator.hide(),this.formDisabler.enable(this.wrapperElement),this.lvtId=null}getTreeState(){return this.treeRenderer.getTreeState()}getStaticStructure(){return this.treeRenderer.getStaticStructure()}};typeof window!="undefined"&&ue.autoInit();return Ve(ft);})();
44
44
  //# sourceMappingURL=livetemplate-client.browser.js.map