@ketvietlab/ketsuite 0.1.19 → 0.1.20

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.
package/dist/cli.js CHANGED
@@ -4,7 +4,7 @@ import { serveDeployment } from '@ketvietlab/ketjs';
4
4
  import { ketsuite } from './deployment.js';
5
5
  import { ensureDevelopmentAdmin } from './development.js';
6
6
  import { scaffoldKetsuite } from './scaffold/index.js';
7
- const VERSION = '0.1.19';
7
+ const VERSION = '0.1.20';
8
8
  const HELP = `KetSuite ${VERSION}
9
9
 
10
10
  Usage:
@@ -1 +1 @@
1
- {"version":3,"file":"backend-shell.d.mts","sourceRoot":"","sources":["../../../../../../../../packages/ketsuite/src/modules/backend/design/client/backend-shell.mjs"],"names":[],"mappings":"AACi9yB,QAAA,IAA40O,EAAE;;;gBAAiJ,CAAC;AAAA,OAAM,EAAC,EAAE,IAAI,YAAY,EAAC,CAAC"}
1
+ {"version":3,"file":"backend-shell.d.mts","sourceRoot":"","sources":["../../../../../../../../packages/ketsuite/src/modules/backend/design/client/backend-shell.mjs"],"names":[],"mappings":"AACi9yB,QAAA,IAAg1O,EAAE;;;gBAAiJ,CAAC;AAAA,OAAM,EAAC,EAAE,IAAI,YAAY,EAAC,CAAC"}
@@ -1,2 +1,2 @@
1
1
  // @ts-nocheck Generated by tools/build-backend-client.mjs — do not edit.
2
- function ae(a){let t,i,n=0;async function u(l){let s=l.querySelector("input[type=email]"),y=l.querySelector("[data-email-status]");if(!s||!y)return;t?.abort(),clearTimeout(i);let k=++n,w=s.value.trim(),C=l.querySelector("[data-email-next]"),H=l.querySelector("[data-email-retry]"),L=(S,O)=>{y.textContent=S,C&&(C.disabled=!O),s.setAttribute("aria-invalid",String(!O)),l.dataset.emailAvailable=O?"true":"false"};if(H&&(H.hidden=!0),!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(w)){L(w?"Email ch\u01B0a \u0111\xFAng \u0111\u1ECBnh d\u1EA1ng.":"Nh\u1EADp email \u0111\u1EC3 ki\u1EC3m tra.",!1);return}L("\u0110ang ki\u1EC3m tra email\u2026",!1),i=setTimeout(async()=>{t=new AbortController;try{let S=await fetch(l.dataset.emailCheck,{method:"POST",cache:"no-store",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({email:w}),signal:AbortSignal.any([t.signal,AbortSignal.timeout(1e4)])});if(!S.ok)throw new Error("email-check-failed");let O=await S.json();if(k!==n||!l.isConnected)return;if(!O.ok)throw new Error("email-check-failed");L(O.available?"Email c\xF3 th\u1EC3 s\u1EED d\u1EE5ng.":"Email \u0111\xE3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng. Nh\u1EADp email kh\xE1c.",O.available)}catch{if(k!==n||!l.isConnected)return;L("Ch\u01B0a ki\u1EC3m tra \u0111\u01B0\u1EE3c email. Vui l\xF2ng th\u1EED l\u1EA1i.",!1),H&&(H.hidden=!1)}},400)}function d(l,s=!1){let y=l.querySelector('select[name="companyId"]'),k=l.querySelector('select[name="branchId"]'),w=l.querySelector('select[name="scopeKind"]')?.value;if(k&&y){s&&(k.value="");for(let S of k.options)S.value&&(S.hidden=S.dataset.companyId!==y.value,S.disabled=S.hidden)}let C=w==="tenant"?"tenant":w==="branch"?`branch:${y?.value}:${k?.value}`:`company:${y?.value}`;for(let S of l.querySelectorAll("[data-assigned-scopes]")){let D=JSON.parse(S.dataset.assignedScopes??"[]").includes(C);S.disabled=S.dataset.roleDisabled==="true"||D;let I=S.closest("[data-role-option]"),J=I?.querySelector("[data-role-assigned]"),X=I?.querySelector("[data-role-description]");J&&(J.hidden=!D),X&&(X.hidden=D),S.disabled&&(S.checked=!1)}let H=y?.closest('[data-ui="form-field"]'),L=k?.closest('[data-ui="form-field"]');H&&(H.hidden=w==="tenant"),L&&(L.hidden=w==="tenant"||w==="company")}function b(){for(let l of document.querySelectorAll("form[data-user-workflow]"))l.dataset.initialized||(l.dataset.initialized="true",d(l),u(l))}document.addEventListener("input",l=>{let s=l.target,y=s.closest("form[data-user-workflow]");if(y&&(s.type==="email"&&u(y),s.matches("[data-role-search]"))){let k=0;for(let C of y.querySelectorAll("[data-role-option]"))C.hidden=!C.textContent?.toLocaleLowerCase("vi").includes(s.value.toLocaleLowerCase("vi")),C.hidden||k++;let w=y.querySelector("[data-role-empty]");w&&(w.hidden=k>0)}},{signal:a}),document.addEventListener("change",l=>{let s=l.target,y=s.closest("form[data-user-workflow]");y&&s.matches('select[name="companyId"],select[name="branchId"],select[name="scopeKind"]')&&d(y,s.matches('select[name="companyId"]'))},{signal:a}),document.addEventListener("click",l=>{let s=l.target;s.matches("[data-email-retry]")&&u(s.closest("form"))},{signal:a}),document.addEventListener("submit",l=>{let s=l.target;s.matches("form[data-user-workflow]")&&s.querySelector("input[type=email]")&&s.dataset.emailAvailable!=="true"&&l.preventDefault()},{signal:a});let v=new MutationObserver(b);return v.observe(document.documentElement,{childList:!0,subtree:!0}),b(),()=>{t?.abort(),clearTimeout(i),v.disconnect()}}import{each as Nt}from"/_ket/view/index.js";import{Fragment as qt,jsx as $t,jsxs as Gt}from"/_ket/view/jsx-runtime.js";var ie=["action","action-leading","action-label","action-spinner","action-group"];import{jsx as Ut,jsxs as Wt}from"/_ket/view/jsx-runtime.js";var ne=["badge","tag","tag-remove","count-badge","avatar","code"];import{each as Zt}from"/_ket/view/index.js";import{Fragment as ea,jsx as jt,jsxs as ta}from"/_ket/view/jsx-runtime.js";var re=["notice","notice-mark","notice-copy","notice-title","notice-message","notice-actions","empty","empty-mark","empty-title","empty-message","empty-actions","loading","loading-label"];import{each as Aa}from"/_ket/view/index.js";import{each as ha}from"/_ket/view/index.js";import{Fragment as la,jsx as na,jsxs as ra}from"/_ket/view/jsx-runtime.js";import{jsx as ca,jsxs as ua}from"/_ket/view/jsx-runtime.js";var oe=["app-shell","app-sidebar","app-main","app-right-rail","page","page-context","page-header","page-heading","page-eyebrow","page-title-row","page-title","page-description","page-subline","page-status","page-actions","page-meta","page-body","record-canvas","record-content","record-section","record-section-title"];import{Fragment as xa,jsx as va,jsxs as Sa}from"/_ket/view/jsx-runtime.js";var de=["stack","inline","grid","card-grid","surface","surface-head","surface-heading","surface-title","surface-description","surface-actions","disclosure","disclosure-summary","disclosure-body","section","section-head","section-eyebrow","section-title","section-description","section-actions","section-body","content-card","card-media","card-head","card-leading","card-heading","card-eyebrow","card-title","card-summary","card-status","card-body","card-meta","card-actions","kanban","kanban-card","kanban-media","kanban-title","kanban-meta","kanban-note","kanban-actions","metric","metric-icon","metric-label","metric-value","metric-detail"];import{each as Ra}from"/_ket/view/index.js";import{Fragment as La,jsx as Ha}from"/_ket/view/jsx-runtime.js";import{jsx as Ja,jsxs as Xa}from"/_ket/view/jsx-runtime.js";var se=["field","field-label","field-required","field-control","field-options","field-option","field-option-input","field-help","field-error"];import{each as Ba}from"/_ket/view/index.js";import{jsx as qa,jsxs as Ga}from"/_ket/view/jsx-runtime.js";var ce=["breadcrumbs","breadcrumb","breadcrumb-overflow","breadcrumb-overflow-trigger","breadcrumb-overflow-list","nav-list","nav-item","nav-item-leading","nav-item-label","nav-item-count","tabs","tab","tab-count"];import{jsx as Ua,jsxs as Wa}from"/_ket/view/jsx-runtime.js";var ue=["progress","progress-label","progress-value","progress-track","progress-bar"];import{each as Za}from"/_ket/view/index.js";import{Fragment as ti,jsx as ja,jsxs as ei}from"/_ket/view/jsx-runtime.js";var me=["menu","menu-trigger","menu-panel","menu-label","menu-separator","menu-item","menu-item-leading","menu-item-copy","menu-item-check","menu-item-shortcut"];import{jsx as ni,jsxs as ri}from"/_ket/view/jsx-runtime.js";var ge=["popover","popover-trigger","popover-panel","popover-close"];import{jsx as di,jsxs as si}from"/_ket/view/jsx-runtime.js";var be=["tooltip","tooltip-trigger","tooltip-content"];import{jsx as mi,jsxs as gi}from"/_ket/view/jsx-runtime.js";var fe=["modal-layer","modal-backdrop","modal-sheet","modal-head","modal-heading","modal-title","modal-description","modal-close","modal-body","modal-actions"];import{jsx as yi}from"/_ket/view/jsx-runtime.js";var he=["dialog","confirm-dialog-message"];import{each as Si}from"/_ket/view/index.js";import{jsx as wi,jsxs as ki}from"/_ket/view/jsx-runtime.js";var pe=["toast-region","toast","toast-copy","toast-title","toast-message","toast-actions"];import{jsx as Ci}from"/_ket/view/jsx-runtime.js";var ye=["spinner","visually-hidden"];import{each as Oi}from"/_ket/view/index.js";import{jsx as Mi}from"/_ket/view/jsx-runtime.js";var ve=["skeleton","skeleton-line"];var gt=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","summary",'[tabindex]:not([tabindex="-1"])'].join(","),B=a=>[...a.querySelectorAll(gt)].filter(t=>t instanceof HTMLElement&&!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&(typeof t.checkVisibility!="function"||t.checkVisibility())),W=(a=document)=>{let t=document.activeElement instanceof HTMLElement?document.activeElement:null,i=a.querySelector('[data-ui="modal-layer"][data-route-modal="true"] [role="dialog"]'),n=a.querySelector('[data-ui="app-shell"], [data-ui="shell"]'),u=n instanceof HTMLElement?n.inert:!1;if(i instanceof HTMLElement){n instanceof HTMLElement&&!n.contains(i)&&(n.inert=!0);let e=B(i)[0];(e instanceof HTMLElement?e:i).focus()}let d=[...a.querySelectorAll('[data-ui="menu"]')].filter(e=>e instanceof HTMLDetailsElement),b=e=>{let o=e.querySelector('[data-ui="menu-trigger"]');o instanceof HTMLElement&&o.setAttribute("aria-expanded",String(e.open))},v=d.map(e=>{let o=()=>b(e);return e.addEventListener("toggle",o),b(e),()=>e.removeEventListener("toggle",o)}),l=window.matchMedia("(max-width: 48rem)"),s=document.documentElement,y=s.dataset.kvNavigationOpen,k=[...a.querySelectorAll('[data-ui="app-navigation"]')].filter(e=>e instanceof HTMLDetailsElement),w=new Map,C=e=>{let o=w.get(e);if(o?.targets){for(let{element:r,inert:f}of o.targets)r.inert=f;o.targets=null}},H=()=>{l.matches&&k.some(o=>o.open)?s.dataset.kvNavigationOpen="true":y===void 0?delete s.dataset.kvNavigationOpen:s.dataset.kvNavigationOpen=y},L=e=>{let o=e.querySelector('[data-ui="navigation-trigger"]'),r=e.querySelector('[data-ui="navigation-drawer"]');if(!(o instanceof HTMLElement)||!(r instanceof HTMLElement))return;let f=l.matches;if(o.dataset.open=String(f&&e.open),!f){r.removeAttribute("role"),r.removeAttribute("aria-modal"),r.removeAttribute("aria-label"),C(e),H();return}if(r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true"),r.setAttribute("aria-label",r.dataset.navigationLabel??"Navigation"),!e.open){C(e),H();return}let h=w.get(e)??{};if(!h.targets){let p=e.closest('[data-ui="app-shell"], [data-ui="shell"]'),P=p?[...p.querySelectorAll(':scope > [data-ui="app-main"], :scope > [data-ui="main"], :scope > [data-ui="app-right-rail"]')].filter(R=>R instanceof HTMLElement).map(R=>({element:R,inert:R.inert})):[];for(let{element:R}of P)R.inert=!0;h.targets=P,h.returnFocus=document.activeElement instanceof HTMLElement?document.activeElement:o,w.set(e,h),queueMicrotask(()=>{if(!e.open||!l.matches)return;let R=r.querySelector('[data-ui="navigation-item"][aria-current="page"]'),A=B(r)[0],E=R instanceof HTMLElement?R:A;(E instanceof HTMLElement?E:r).focus()})}H()},S=(e,o=!0)=>{let r=w.get(e);e.open=!1,L(e),o&&r?.returnFocus instanceof HTMLElement&&r.returnFocus.isConnected&&r.returnFocus.focus(),w.delete(e)},O=k.map(e=>{let o=()=>L(e),r=f=>{let h=f.target;if(!(h instanceof Element))return;let P=h.closest('[data-ui="navigation-branch-trigger"]')?.closest('[data-ui="navigation-branch"]');if(P instanceof HTMLDetailsElement&&P.open){f.preventDefault();return}!l.matches||!e.open||(h.closest('[data-ui="navigation-close"]')||h.closest('[data-ui="navigation-backdrop"]')||h.closest('[data-ui="navigation-item"]'))&&S(e)};return e.addEventListener("toggle",o),e.addEventListener("click",r),L(e),()=>{e.removeEventListener("toggle",o),e.removeEventListener("click",r),C(e)}}),D=()=>{for(let e of k)e.open?S(e,!1):L(e)};l.addEventListener("change",D);for(let e of a.querySelectorAll('[data-ui="popover"][data-open="true"]')){let o=e.querySelector('[data-ui="popover-trigger"]'),r=e.querySelector('[data-ui="popover-panel"]');if(!(o instanceof HTMLElement)||!(r instanceof HTMLElement))continue;let f=o.getBoundingClientRect(),h=8,p=e.getAttribute("data-placement")??"bottom-start",P=p.startsWith("top"),R=p.endsWith("end"),A=f.top-r.offsetHeight-h,E=f.bottom+h,g=A>=8,c=E+r.offsetHeight<=window.innerHeight-8,T=P?g||!c:!c&&g,m=R?f.right-r.offsetWidth:f.left,x=Math.max(8,Math.min(m,window.innerWidth-r.offsetWidth-8)),F=Math.max(8,Math.min(T?A:E,window.innerHeight-r.offsetHeight-8));r.dataset.runtimePositioned="true",r.dataset.runtimePlacement=`${T?"top":"bottom"}-${R?"end":"start"}`,r.style.left=`${Math.round(x)}px`,r.style.top=`${Math.round(F)}px`,r.style.right="auto",r.style.bottom="auto"}let I=e=>{let o=k.find(g=>l.matches&&g.open);if(o instanceof HTMLDetailsElement){let g=o.querySelector('[data-ui="navigation-drawer"]');if(e.key==="Escape"){S(o),e.preventDefault();return}if(e.key==="Tab"&&g instanceof HTMLElement){let c=B(g),T=c[0],m=c.at(-1);if(!c.length){e.preventDefault(),g.focus();return}if(e.shiftKey&&(document.activeElement===T||document.activeElement===g)){e.preventDefault(),m instanceof HTMLElement&&m.focus();return}if(!e.shiftKey&&document.activeElement===m){e.preventDefault(),T instanceof HTMLElement&&T.focus();return}}}let r=document.activeElement?.closest('[data-ui="tree"] [role="treeitem"]');if(r instanceof HTMLElement){let g=r.closest('[data-ui="tree"]'),c=g?[...g.querySelectorAll('[role="treeitem"]')].filter(x=>x instanceof HTMLElement):[],T=c.indexOf(r),m=-1;if(e.key==="ArrowDown")m=Math.min(c.length-1,T+1);else if(e.key==="ArrowUp")m=Math.max(0,T-1);else if(e.key==="Home")m=0;else if(e.key==="End")m=c.length-1;else if(e.key==="ArrowRight"){let x=Number(r.getAttribute("aria-level"));r.getAttribute("aria-expanded")==="true"&&Number(c[T+1]?.getAttribute("aria-level"))>x&&(m=T+1)}else if(e.key==="ArrowLeft"){let x=Number(r.getAttribute("aria-level"));x>1&&(m=c.findLastIndex((F,rt)=>rt<T&&Number(F.getAttribute("aria-level"))<x))}if(m>=0&&c[m]){for(let x of c)x.tabIndex=-1;c[m].tabIndex=0,c[m].focus(),e.preventDefault();return}}let f=document.activeElement?.closest('[data-ui="tree-grid-row"]');if(f instanceof HTMLElement){let g=f.closest('[data-ui="tree-grid"]'),c=g?[...g.querySelectorAll('[data-ui="tree-grid-row"]')].filter(x=>x instanceof HTMLElement):[],T=c.indexOf(f),m=e.key==="ArrowDown"?Math.min(c.length-1,T+1):e.key==="ArrowUp"?Math.max(0,T-1):e.key==="Home"?0:e.key==="End"?c.length-1:-1;if(m>=0&&c[m]){for(let x of c)x.tabIndex=-1;c[m].tabIndex=0,c[m].focus(),e.preventDefault();return}}let h=document.activeElement?.closest('[data-ui="menu"]');if(h instanceof HTMLDetailsElement&&!h.open){let g=h.querySelector('[data-ui="menu-trigger"]');if(document.activeElement===g&&(e.key==="ArrowDown"||e.key==="ArrowUp")){h.open=!0;let c=[...h.querySelectorAll('[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"]')].filter(m=>m instanceof HTMLElement&&m.getAttribute("aria-disabled")!=="true"),T=e.key==="ArrowUp"?c.at(-1):c[0];T instanceof HTMLElement&&T.focus(),e.preventDefault();return}}let p=document.activeElement?.closest('[data-ui="menu"][open]');if(p instanceof HTMLDetailsElement){let g=p.querySelector('[data-ui="menu-trigger"]'),c=[...p.querySelectorAll('[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"]')].filter(F=>F instanceof HTMLElement&&F.getAttribute("aria-disabled")!=="true"),T=document.activeElement,m=T instanceof HTMLElement?c.indexOf(T):-1,x=-1;if(e.key==="ArrowDown"?x=m<0?0:(m+1)%c.length:e.key==="ArrowUp"?x=m<0?c.length-1:(m-1+c.length)%c.length:e.key==="Home"?x=0:e.key==="End"&&(x=c.length-1),x>=0&&c[x]instanceof HTMLElement){c[x].focus(),e.preventDefault();return}if((e.key==="Enter"||e.key===" ")&&document.activeElement===g){c[0]instanceof HTMLElement&&c[0].focus(),e.preventDefault();return}}if(e.key==="Escape"&&p instanceof HTMLDetailsElement){p.open=!1;let g=p.querySelector('[data-ui="menu-trigger"]');g instanceof HTMLElement&&g.focus(),e.preventDefault();return}let P=document.activeElement?.closest('[data-ui="popover"][data-open="true"]');if(e.key==="Escape"&&P instanceof HTMLElement){let g=P.querySelector('[data-ui="popover-close"]');g instanceof HTMLElement&&g.click(),e.preventDefault();return}if(!(i instanceof HTMLElement))return;if(e.key==="Escape"){let g=i.querySelector('[data-ui="modal-close"]');g instanceof HTMLElement&&g.click(),e.preventDefault();return}if(e.key!=="Tab")return;let R=B(i);if(!R.length){e.preventDefault(),i.focus();return}let A=R[0],E=R.at(-1);e.shiftKey&&(document.activeElement===A||document.activeElement===i)?(e.preventDefault(),E instanceof HTMLElement&&E.focus()):!e.shiftKey&&document.activeElement===E&&(e.preventDefault(),A instanceof HTMLElement&&A.focus())},J=e=>{let o=[...e.querySelectorAll('[data-ui="row-select"]')].filter(p=>p instanceof HTMLInputElement&&!p.disabled),r=o.filter(p=>p.checked),f=e.querySelector('[data-ui="select-all"]');f instanceof HTMLInputElement&&(f.checked=o.length>0&&r.length===o.length,f.indeterminate=r.length>0&&r.length<o.length);for(let p of o)p.closest('[data-ui="row"]')?.toggleAttribute("data-selected",p.checked);let h=o[0]?.getAttribute("form");if(h)for(let p of document.querySelectorAll(`[data-ui="bulk-actions"][data-form="${CSS.escape(h)}"]`)){r.length?p.setAttribute("data-has-selection","true"):p.removeAttribute("data-has-selection");for(let P of p.querySelectorAll('[data-ui="bulk-count"]'))P.textContent=String(r.length);for(let P of p.querySelectorAll('[data-ui="bulk-action-list"] button'))P instanceof HTMLButtonElement&&P.dataset.kvAlwaysDisabled!=="true"&&(P.disabled=r.length===0)}},X=e=>{let o=e.target;if(!(o instanceof HTMLInputElement))return;let r=o.getAttribute("data-ui");if(r!=="select-all"&&r!=="row-select")return;let f=o.closest('[data-ui="table"]');if(f){if(r==="select-all")for(let h of f.querySelectorAll('[data-ui="row-select"]'))h instanceof HTMLInputElement&&!h.disabled&&(h.checked=o.checked);J(f)}};for(let e of a.querySelectorAll('[data-ui="table"]'))e.querySelector('[data-ui="row-select"]')&&J(e);document.addEventListener("change",X);let te=e=>{let o=e.target;if(o instanceof Node)for(let r of a.querySelectorAll('[data-ui="menu"][open]')){if(!(r instanceof HTMLDetailsElement))continue;let f=o instanceof Element?o.closest('[data-ui="menu-item"]'):null;(!r.contains(o)||f&&f.getAttribute("aria-disabled")!=="true")&&(r.open=!1)}};return document.addEventListener("keydown",I),document.addEventListener("click",te),()=>{document.removeEventListener("keydown",I),document.removeEventListener("click",te),document.removeEventListener("change",X);for(let e of v)e();l.removeEventListener("change",D);for(let e of O)e();y===void 0?delete s.dataset.kvNavigationOpen:s.dataset.kvNavigationOpen=y,n instanceof HTMLElement&&(n.inert=u),t?.isConnected&&t.focus()}};import{jsx as Ii,jsxs as Ji}from"/_ket/view/jsx-runtime.js";import{jsx as $i,jsxs as qi}from"/_ket/view/jsx-runtime.js";var Te=["switch-control","switch-track"];import{each as zi}from"/_ket/view/index.js";import{Fragment as Zi,jsx as _i,jsxs as Qi}from"/_ket/view/jsx-runtime.js";var we=["combobox","combobox-input-row","combobox-toggle","combobox-listbox","combobox-option","combobox-empty","tag-picker"];import{jsx as an,jsxs as nn}from"/_ket/view/jsx-runtime.js";var ke=["date-range"];import{jsx as dn,jsxs as sn}from"/_ket/view/jsx-runtime.js";var Pe=["file-upload","drop-zone","upload-status"];import{jsx as gn}from"/_ket/view/jsx-runtime.js";var Re=["relation-picker"];import{each as hn}from"/_ket/view/index.js";import{jsx as xn,jsxs as Sn}from"/_ket/view/jsx-runtime.js";var Ce=["search-bar","filter-bar","applied-filters","applied-filter","saved-views","saved-view","view-settings","view-settings-options"];import{jsx as Pn,jsxs as Rn}from"/_ket/view/jsx-runtime.js";var Le=["inline-edit","inline-edit-value","inline-edit-form","inline-edit-actions"];import{each as Kn}from"/_ket/view/index.js";import{each as En}from"/_ket/view/index.js";import{Fragment as In,jsx as Dn,jsxs as Fn}from"/_ket/view/jsx-runtime.js";var He=["list-chrome","list-chrome-row","list-search","list-search-label","list-search-input","list-search-submit","list-facets","list-facet","list-facet-count","list-view-switch","list-view","list-sort","list-sort-label","list-sort-select","list-status","list-actions","bulk-actions","bulk-summary","bulk-count","bulk-action-list","pager-bar","pager-summary","pager-pages","pager-page","pager-actions","pager-link"];import{jsx as qn,jsxs as Gn}from"/_ket/view/jsx-runtime.js";var Oe=["resource-list","resource-list-item","resource-list-select","resource-list-link"];import{each as Un}from"/_ket/view/index.js";import{jsx as _n,jsxs as Qn}from"/_ket/view/jsx-runtime.js";var Ee=["data-grid-scroll","data-grid","data-grid-cap","data-grid-cell"];import{each as jn}from"/_ket/view/index.js";import{jsx as tr,jsxs as ar}from"/_ket/view/jsx-runtime.js";var Me=["tree","tree-item","tree-link","tree-grid","tree-grid-row"];import{each as rr}from"/_ket/view/index.js";import{jsx as or,jsxs as dr}from"/_ket/view/jsx-runtime.js";var Ae=["data-matrix","data-matrix-head","data-matrix-heading","data-matrix-eyebrow","data-matrix-title","data-matrix-description","data-matrix-summary","data-matrix-scroll","data-matrix-table","data-matrix-column","data-matrix-row-head","data-matrix-row-leading","data-matrix-row-title","data-matrix-row-description","data-matrix-row-status","data-matrix-row-actions","data-matrix-cell"];import{each as ur}from"/_ket/view/index.js";import{jsx as gr,jsxs as br}from"/_ket/view/jsx-runtime.js";var De=["bar-chart","bar-chart-rows","bar-chart-row","bar-chart-label","bar-chart-caption","bar-chart-track","bar-chart-fill","bar-chart-segment","bar-chart-value","bar-chart-scale","bar-chart-legend","bar-chart-legend-item","bar-chart-legend-swatch","bar-chart-empty"];import{each as pr}from"/_ket/view/index.js";import{jsx as vr,jsxs as xr}from"/_ket/view/jsx-runtime.js";var Fe=["timeframe","timeframe-menu","timeframe-trigger","timeframe-label","timeframe-value","timeframe-content","timeframe-option","timeframe-option-label","timeframe-option-detail","timeframe-range","timeframe-asof","timeframe-note"];import{each as wr}from"/_ket/view/index.js";import{jsx as Rr,jsxs as Cr}from"/_ket/view/jsx-runtime.js";var Ie=["description-list","key-value","key-value-label","key-value-value","person","person-body","avatar-group","status"];import{jsx as Or}from"/_ket/view/jsx-runtime.js";var Je=["formatted-date","formatted-number","formatted-money"];import{each as Ar}from"/_ket/view/index.js";import{jsx as Xr,jsxs as Kr}from"/_ket/view/jsx-runtime.js";var Ke=["record-summary","record-summary-main","record-actions","record-rail"];import{each as $r}from"/_ket/view/index.js";import{jsx as zr,jsxs as Ur}from"/_ket/view/jsx-runtime.js";var Be=["activity-timeline","activity-item","activity-marker","audit-log","audit-item"];import{each as Qr}from"/_ket/view/index.js";import{jsx as jr,jsxs as el}from"/_ket/view/jsx-runtime.js";var $e=["attachments","attachment","media-gallery","media-item"];import{each as il}from"/_ket/view/index.js";import{Fragment as ol,jsx as rl,jsxs as ll}from"/_ket/view/jsx-runtime.js";var qe=["app-navigation","navigation-trigger","navigation-trigger-icon","navigation-trigger-identity","navigation-trigger-label","navigation-layer","navigation-backdrop","navigation-drawer","navigation-header","navigation-identity","navigation-context","navigation-close","navigation-groups","navigation-group","navigation-group-label","navigation-items","navigation-supplementary","navigation-item","navigation-branch","navigation-branch-trigger","navigation-children","navigation-item-leading","navigation-item-copy","navigation-item-label","navigation-item-description","navigation-item-count","navigation-footer"];import{each as ml}from"/_ket/view/index.js";import{Fragment as yl,jsx as hl,jsxs as pl}from"/_ket/view/jsx-runtime.js";var Ge=["table-scroll","table","table-caption","select-col","select-all","col","sort-link","sort-icon","row","group-row","group-cell","group-link","group-indent","group-count","group-pager","group-pager-actions","cell","select-cell","row-select","row-link"];import{jsx as Rl,jsxs as Cl}from"/_ket/view/jsx-runtime.js";var Ve=["list-page","list-page-context","list-page-header","list-page-heading","list-page-title-row","list-page-eyebrow","list-page-title","list-page-description","list-page-actions","list-page-toolbar","list-page-controls","list-page-status","list-page-body","list-page-footer"];import{jsx as El,jsxs as Ml}from"/_ket/view/jsx-runtime.js";var ze=["record-page","record-page-context","record-page-header","record-page-title-row","record-page-heading","record-page-title","record-page-subline","record-page-status","record-page-description","record-page-actions","record-page-meta","record-page-controller","record-page-navigation","record-page-layout","record-page-body","record-page-aside"];var Ue=["form-page","form-page-context","form-page-header","form-page-title-row","form-page-heading","form-page-title","form-page-subline","form-page-status","form-page-description","form-page-actions","form-page-meta","form-page-controller","form-page-navigation","form-page-layout","form-page-body","form-page-aside"];import{jsx as Bl,jsxs as $l}from"/_ket/view/jsx-runtime.js";var We=["dashboard-page","dashboard-page-context","dashboard-page-header","dashboard-page-heading","dashboard-page-eyebrow","dashboard-page-title-row","dashboard-page-title","dashboard-page-subline","dashboard-page-status","dashboard-page-description","dashboard-page-actions","dashboard-page-meta","dashboard-page-body"];var _e=["board-page","board-page-context","board-page-header","board-page-heading","board-page-eyebrow","board-page-title-row","board-page-title","board-page-subline","board-page-status","board-page-description","board-page-actions","board-page-meta","board-page-toolbar","board-page-controls","board-page-body"];import{each as Zl}from"/_ket/view/index.js";import{jsx as jl,jsxs as eo}from"/_ket/view/jsx-runtime.js";var Qe=["pipeline","pipeline-step","pipeline-arrow","pipeline-step-label","pipeline-step-value","pipeline-step-node"];import{each as ro}from"/_ket/view/index.js";import{jsx as co,jsxs as uo}from"/_ket/view/jsx-runtime.js";var Ze=["record-form","form-errors","form-grid","form-actions"];var Ye={actions:ie,feedback:re,fields:se,status:ne,navigation:ce,progress:ue,menu:me,popover:ge,tooltip:be,dialog:he,toast:pe,spinner:ye,skeleton:ve,scalarFields:Te,combobox:we,dateTime:ke,upload:Pe,relationPicker:Re,listControls:Ce,inlineEdit:Le,resourceList:Oe,dataGrid:Ee,tree:Me,matrix:Ae,barChart:De,timeframe:Fe,recordDisplay:Ie,formattedValues:Je,recordComposition:Ke,activity:Be,media:$e,layouts:de,shell:oe,appNavigation:qe,table:Ge,listChrome:He,listPage:Ve,formPage:Ue,recordPage:ze,dashboardPage:We,boardPage:_e,modal:fe,pipeline:Qe,form:Ze},kt=[...new Set(Object.values(Ye).flat())].sort(),Pt=Object.freeze(Object.fromEntries(Object.entries(Ye).map(([a,t])=>[a,[...t]])));var j="ket.backend.theme",Y=['[data-ui="search-menu"]','[data-ui="col-config"]','[data-ui="bulk-actions"]','[data-ui="viewer"]','[data-ui="record-more"]'].join(", "),at=globalThis,M=a=>a.target instanceof Element?a.target:null,V=a=>a==="light"||a==="dark"?a:null,Rt=()=>{try{return V(localStorage.getItem(j))}catch{return null}},Ct=a=>{try{localStorage.setItem(j,a)}catch{}},it=()=>V(document.documentElement.dataset.theme)??(matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),q=()=>{let a=String(it()==="dark");for(let t of document.querySelectorAll('[data-ui="sidebar-tools"] [data-ui="action"][name="theme"]'))t.setAttribute("aria-pressed",a)},Lt=a=>{let t=Rt();t&&(document.documentElement.dataset.theme=t),q(),document.addEventListener("click",i=>{let n=M(i)?.closest('[data-ui="sidebar-tools"] [data-ui="action"][name="theme"]');if(!n||n.disabled)return;let u=it()==="dark"?"light":"dark";document.documentElement.dataset.theme=u,Ct(u),q()},{signal:a}),matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{V(document.documentElement.dataset.theme)||q()},{signal:a}),addEventListener("storage",i=>{if(i.key!==j)return;let n=V(i.newValue);n?document.documentElement.dataset.theme=n:delete document.documentElement.dataset.theme,q()},{signal:a})},Ht=a=>{let t=[...a.querySelectorAll('[data-ui="row-select"]:not(:disabled)')],i=t.filter(u=>u.checked).length,n=a.querySelector('[data-ui="select-all"]');if(n&&(n.checked=t.length>0&&i===t.length,n.indeterminate=i>0&&i<t.length),!i){let u=a.closest('[data-ui="shell"]');for(let d of u?.querySelectorAll('[data-ui="bulk-actions"][open]')??[])d.removeAttribute("open")}},Ot=(a,t)=>{document.addEventListener("change",i=>{let n=M(i);if(!(n instanceof HTMLInputElement)||!n.matches('[data-ui="select-all"], [data-ui="row-select"]'))return;let u=n.closest('[data-ui="table"]');if(u){if(n.matches('[data-ui="select-all"]'))for(let d of u.querySelectorAll('[data-ui="row-select"]:not(:disabled)'))d.checked=n.checked;Ht(u)}},{signal:a}),document.addEventListener("click",i=>{if(i.defaultPrevented||i.button!==0||i.metaKey||i.ctrlKey||i.shiftKey||i.altKey)return;let n=M(i);if(n?.closest('a, button, input, select, textarea, label, summary, details, [data-ui="select-cell"]'))return;let d=n?.closest('[data-ui="row"][data-row-href]')?.getAttribute("data-row-href");d&&(i.preventDefault(),t.navigate(d))},{signal:a}),document.addEventListener("keydown",i=>{if(i.defaultPrevented||i.key!=="Enter"&&i.key!==" ")return;let n=M(i),d=(n?.matches('[data-ui="row"][data-row-href][tabindex="0"]')?n:null)?.getAttribute("data-row-href");d&&(i.preventDefault(),ee(d,t))},{signal:a})},je=()=>[...document.querySelectorAll(`${Y}[open]`)],Et=a=>{document.addEventListener("click",t=>{let i=M(t)?.closest(Y);for(let n of je())n!==i&&!n.contains(i??null)&&n.removeAttribute("open")},{signal:a}),document.addEventListener("keydown",t=>{if(t.key!=="Escape")return;let i=je();if(!i.length)return;let n=document.activeElement?.closest(Y),u=n?.open?n:i.at(-1);u?.removeAttribute("open"),u?.querySelector("summary")?.focus(),t.preventDefault()},{signal:a})},Mt=a=>{document.addEventListener("click",t=>{let i=M(t)?.closest('[data-ui="chrome-search-toggle"]'),n=i?.getAttribute("aria-controls");if(!i||!n)return;let u=document.getElementById(n);!(u instanceof HTMLDialogElement)||u.open||(u.showModal(),i.setAttribute("aria-expanded","true"),requestAnimationFrame(()=>u.querySelector('[data-presentation="modal"] [data-ui="chrome-search-input"]')?.focus()))},{signal:a}),document.addEventListener("cancel",t=>{M(t)?.matches('[data-ui="chrome-search-modal"]')&&t.preventDefault()},{capture:!0,signal:a}),document.addEventListener("close",t=>{let i=M(t);if(!(i instanceof HTMLDialogElement)||!i.matches('[data-ui="chrome-search-modal"]'))return;let n=document.querySelector(`[data-ui="chrome-search-toggle"][aria-controls="${CSS.escape(i.id)}"]`);n?.setAttribute("aria-expanded","false"),n?.focus()},{capture:!0,signal:a})},At=["a[href]","button:not(:disabled)",'input:not(:disabled):not([type="hidden"])',"select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", "),G=()=>document.querySelector('[data-ui="modal-layer"][data-route-modal="true"]'),et=a=>[...a.querySelectorAll(At)].filter(t=>!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&!t.matches('[data-ui="modal-backdrop"]')),ee=(a,t)=>{t.navigate(a)},Dt=(a,t)=>a.composedPath().some(i=>i instanceof HTMLElement&&i!==t&&i.matches('[data-ui="modal-layer"][data-presentation="dialog"]')),nt=a=>{for(let t of a.querySelectorAll('input:not([type="hidden"])'))if(!t.disabled){if(t.type==="checkbox"||t.type==="radio"){if(t.checked!==t.defaultChecked)return!0}else if(t.value!==t.defaultValue)return!0}for(let t of a.querySelectorAll("textarea"))if(!t.disabled&&t.value!==t.defaultValue)return!0;for(let t of a.querySelectorAll("select"))if(!t.disabled){for(let i of t.options)if(i.selected!==i.defaultSelected)return!0}return!1},tt=a=>{if(!nt(a))return!0;let t=a.getAttribute("data-unsaved-prompt");return t?at.confirm(t):!0},Ft=(a,t)=>{if(typeof EventSource!="function")return;let i=null,n=null,u=()=>{n?.close(),n=null,i=null},d=()=>{let v=document.querySelector('[data-ui="live-region"][data-stream]');if(v===i)return;u();let l=v instanceof HTMLElement?v.dataset.stream??"":"";if(!l)return;i=v,n=new EventSource(`/_ket/stream/${encodeURIComponent(l)}`);let s=()=>ee(location.href,t);n.onmessage=s,n.addEventListener("done",()=>{u(),s()}),n.onerror=()=>{n?.readyState===EventSource.CLOSED&&u()}};d();let b=new MutationObserver(d);return b.observe(document.body,{childList:!0,subtree:!0}),addEventListener("pagehide",u,{signal:a}),()=>{b.disconnect(),u()}},It=(a,t)=>{let i=new WeakSet,n=()=>{let d=G();!d||i.has(d)||(i.add(d),requestAnimationFrame(()=>{let b=d.querySelector('[data-ui="modal-sheet"]');(et(d).find(l=>!l.matches('[data-ui="modal-close"]'))??b)?.focus()}))};n();let u=new MutationObserver(n);return u.observe(document.body,{childList:!0,subtree:!0}),document.addEventListener("click",d=>{let b=G();if(!b)return;let v=d.composedPath().find(l=>l instanceof HTMLElement&&(l.matches('[data-ui="modal-close"], [data-ui="modal-backdrop"], a[data-ui="tab"]')||l.matches('a[data-ui="action"][href]')));!v||!b.contains(v)||tt(b)||(d.preventDefault(),d.stopPropagation())},{capture:!0,signal:a}),document.addEventListener("click",d=>{let b=document.querySelector("[data-save-before-navigation]"),v=b instanceof HTMLFormElement?b:b?.querySelector("form"),l=M(d)?.closest("a[href]");if(!b||!v||!l||G()||!nt(b)||(d.preventDefault(),d.stopPropagation(),!at.confirm(b.dataset.saveBeforeNavigation)))return;let s=v.querySelector('input[name="returnTo"]');s||(s=document.createElement("input"),s.type="hidden",s.name="returnTo",v.append(s)),s.value=l.href,v.requestSubmit()},{capture:!0,signal:a}),document.addEventListener("keydown",d=>{let b=G();if(!b||Dt(d,b))return;if(d.key==="Escape"){let y=b.querySelector('[data-ui="modal-close"]');if(!y||(d.preventDefault(),!tt(b)))return;ee(y.getAttribute("href")??y.href,t);return}if(d.key!=="Tab")return;let v=et(b);if(!v.length)return;let l=v[0],s=v.at(-1);d.shiftKey&&document.activeElement===l?(d.preventDefault(),s.focus()):!d.shiftKey&&document.activeElement===s&&(d.preventDefault(),l.focus())},{signal:a}),()=>u.disconnect()},Jt=(a,t)=>{document.addEventListener("ket:records-changed",()=>{document.querySelector('[data-ket-slot="backend.content"]')&&t.navigate(location.href,{replace:!0})},{signal:a})},Ic=({navigation:a,lifetime:t})=>{Jt(t,a);let i=W(document),n=ae(t);Lt(t),Ot(t,a),Et(t),Mt(t);let u=It(t,a),d=Ft(t,a);return()=>{i(),d?.(),u(),n()}};export{Ic as backendShell};
2
+ function ae(a){let t,i,n=0;async function u(l){let s=l.querySelector("input[type=email]"),y=l.querySelector("[data-email-status]");if(!s||!y)return;t?.abort(),clearTimeout(i);let k=++n,w=s.value.trim(),C=l.querySelector("[data-email-next]"),H=l.querySelector("[data-email-retry]"),L=(S,O)=>{y.textContent=S,C&&(C.disabled=!O),s.setAttribute("aria-invalid",String(!O)),l.dataset.emailAvailable=O?"true":"false"};if(H&&(H.hidden=!0),!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(w)){L(w?"Email ch\u01B0a \u0111\xFAng \u0111\u1ECBnh d\u1EA1ng.":"Nh\u1EADp email \u0111\u1EC3 ki\u1EC3m tra.",!1);return}L("\u0110ang ki\u1EC3m tra email\u2026",!1),i=setTimeout(async()=>{t=new AbortController;try{let S=await fetch(l.dataset.emailCheck,{method:"POST",cache:"no-store",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({email:w}),signal:AbortSignal.any([t.signal,AbortSignal.timeout(1e4)])});if(!S.ok)throw new Error("email-check-failed");let O=await S.json();if(k!==n||!l.isConnected)return;if(!O.ok)throw new Error("email-check-failed");L(O.available?"Email c\xF3 th\u1EC3 s\u1EED d\u1EE5ng.":"Email \u0111\xE3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng. Nh\u1EADp email kh\xE1c.",O.available)}catch{if(k!==n||!l.isConnected)return;L("Ch\u01B0a ki\u1EC3m tra \u0111\u01B0\u1EE3c email. Vui l\xF2ng th\u1EED l\u1EA1i.",!1),H&&(H.hidden=!1)}},400)}function d(l,s=!1){let y=l.querySelector('select[name="companyId"]'),k=l.querySelector('select[name="branchId"]'),w=l.querySelector('select[name="scopeKind"]')?.value;if(k&&y){s&&(k.value="");for(let S of k.options)S.value&&(S.hidden=S.dataset.companyId!==y.value,S.disabled=S.hidden)}let C=w==="tenant"?"tenant":w==="branch"?`branch:${y?.value}:${k?.value}`:`company:${y?.value}`;for(let S of l.querySelectorAll("[data-assigned-scopes]")){let D=JSON.parse(S.dataset.assignedScopes??"[]").includes(C);S.disabled=S.dataset.roleDisabled==="true"||D;let I=S.closest("[data-role-option]"),J=I?.querySelector("[data-role-assigned]"),X=I?.querySelector("[data-role-description]");J&&(J.hidden=!D),X&&(X.hidden=D),S.disabled&&(S.checked=!1)}let H=y?.closest('[data-ui="form-field"]'),L=k?.closest('[data-ui="form-field"]');H&&(H.hidden=w==="tenant"),L&&(L.hidden=w==="tenant"||w==="company")}function b(){for(let l of document.querySelectorAll("form[data-user-workflow]"))l.dataset.initialized||(l.dataset.initialized="true",d(l),u(l))}document.addEventListener("input",l=>{let s=l.target,y=s.closest("form[data-user-workflow]");if(y&&(s.type==="email"&&u(y),s.matches("[data-role-search]"))){let k=0;for(let C of y.querySelectorAll("[data-role-option]"))C.hidden=!C.textContent?.toLocaleLowerCase("vi").includes(s.value.toLocaleLowerCase("vi")),C.hidden||k++;let w=y.querySelector("[data-role-empty]");w&&(w.hidden=k>0)}},{signal:a}),document.addEventListener("change",l=>{let s=l.target,y=s.closest("form[data-user-workflow]");y&&s.matches('select[name="companyId"],select[name="branchId"],select[name="scopeKind"]')&&d(y,s.matches('select[name="companyId"]'))},{signal:a}),document.addEventListener("click",l=>{let s=l.target;s.matches("[data-email-retry]")&&u(s.closest("form"))},{signal:a}),document.addEventListener("submit",l=>{let s=l.target;s.matches("form[data-user-workflow]")&&s.querySelector("input[type=email]")&&s.dataset.emailAvailable!=="true"&&l.preventDefault()},{signal:a});let v=new MutationObserver(b);return v.observe(document.documentElement,{childList:!0,subtree:!0}),b(),()=>{t?.abort(),clearTimeout(i),v.disconnect()}}import{each as Nt}from"/_ket/view/index.js";import{Fragment as qt,jsx as $t,jsxs as Gt}from"/_ket/view/jsx-runtime.js";var ie=["action","action-leading","action-label","action-spinner","action-group"];import{jsx as Ut,jsxs as Wt}from"/_ket/view/jsx-runtime.js";var ne=["badge","tag","tag-remove","count-badge","avatar","code"];import{each as Zt}from"/_ket/view/index.js";import{Fragment as ea,jsx as jt,jsxs as ta}from"/_ket/view/jsx-runtime.js";var re=["notice","notice-mark","notice-copy","notice-title","notice-message","notice-actions","empty","empty-mark","empty-title","empty-message","empty-actions","loading","loading-label"];import{each as Aa}from"/_ket/view/index.js";import{each as ha}from"/_ket/view/index.js";import{Fragment as la,jsx as na,jsxs as ra}from"/_ket/view/jsx-runtime.js";import{jsx as ca,jsxs as ua}from"/_ket/view/jsx-runtime.js";var oe=["app-shell","app-sidebar","app-main","app-right-rail","page","page-context","page-header","page-heading","page-eyebrow","page-title-row","page-title","page-description","page-subline","page-status","page-actions","page-meta","page-body","record-canvas","record-content","record-section","record-section-title"];import{Fragment as xa,jsx as va,jsxs as Sa}from"/_ket/view/jsx-runtime.js";var de=["stack","inline","grid","card-grid","surface","surface-head","surface-heading","surface-title","surface-description","surface-actions","disclosure","disclosure-summary","disclosure-body","section","section-head","section-eyebrow","section-title","section-description","section-actions","section-body","content-card","card-media","card-head","card-leading","card-heading","card-eyebrow","card-title","card-summary","card-status","card-body","card-meta","card-actions","kanban","kanban-card","kanban-media","kanban-title","kanban-meta","kanban-note","kanban-actions","metric","metric-icon","metric-label","metric-value","metric-detail"];import{each as Ra}from"/_ket/view/index.js";import{Fragment as La,jsx as Ha}from"/_ket/view/jsx-runtime.js";import{jsx as Ja,jsxs as Xa}from"/_ket/view/jsx-runtime.js";var se=["field","field-label","field-required","field-control","field-options","field-option","field-option-input","field-help","field-error"];import{each as Ba}from"/_ket/view/index.js";import{jsx as qa,jsxs as Ga}from"/_ket/view/jsx-runtime.js";var ce=["breadcrumbs","breadcrumb","breadcrumb-overflow","breadcrumb-overflow-trigger","breadcrumb-overflow-list","nav-list","nav-item","nav-item-leading","nav-item-label","nav-item-count","tabs","tab","tab-count"];import{jsx as Ua,jsxs as Wa}from"/_ket/view/jsx-runtime.js";var ue=["progress","progress-label","progress-value","progress-track","progress-bar"];import{each as Za}from"/_ket/view/index.js";import{Fragment as ti,jsx as ja,jsxs as ei}from"/_ket/view/jsx-runtime.js";var me=["menu","menu-trigger","menu-panel","menu-label","menu-separator","menu-item","menu-item-leading","menu-item-copy","menu-item-check","menu-item-shortcut"];import{jsx as ni,jsxs as ri}from"/_ket/view/jsx-runtime.js";var ge=["popover","popover-trigger","popover-panel","popover-close"];import{jsx as di,jsxs as si}from"/_ket/view/jsx-runtime.js";var be=["tooltip","tooltip-trigger","tooltip-content"];import{jsx as mi,jsxs as gi}from"/_ket/view/jsx-runtime.js";var fe=["modal-layer","modal-backdrop","modal-sheet","modal-head","modal-heading","modal-title","modal-description","modal-close","modal-body","modal-actions"];import{jsx as yi}from"/_ket/view/jsx-runtime.js";var he=["dialog","confirm-dialog-message"];import{each as Si}from"/_ket/view/index.js";import{jsx as wi,jsxs as ki}from"/_ket/view/jsx-runtime.js";var pe=["toast-region","toast","toast-copy","toast-title","toast-message","toast-actions"];import{jsx as Ci}from"/_ket/view/jsx-runtime.js";var ye=["spinner","visually-hidden"];import{each as Oi}from"/_ket/view/index.js";import{jsx as Mi}from"/_ket/view/jsx-runtime.js";var ve=["skeleton","skeleton-line"];var gt=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","summary",'[tabindex]:not([tabindex="-1"])'].join(","),B=a=>[...a.querySelectorAll(gt)].filter(t=>t instanceof HTMLElement&&!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&(typeof t.checkVisibility!="function"||t.checkVisibility())),W=(a=document)=>{let t=document.activeElement instanceof HTMLElement?document.activeElement:null,i=a.querySelector('[data-ui="modal-layer"][data-route-modal="true"] [role="dialog"]'),n=a.querySelector('[data-ui="app-shell"], [data-ui="shell"]'),u=n instanceof HTMLElement?n.inert:!1;if(i instanceof HTMLElement){n instanceof HTMLElement&&!n.contains(i)&&(n.inert=!0);let e=B(i)[0];(e instanceof HTMLElement?e:i).focus()}let d=[...a.querySelectorAll('[data-ui="menu"]')].filter(e=>e instanceof HTMLDetailsElement),b=e=>{let o=e.querySelector('[data-ui="menu-trigger"]');o instanceof HTMLElement&&o.setAttribute("aria-expanded",String(e.open))},v=d.map(e=>{let o=()=>b(e);return e.addEventListener("toggle",o),b(e),()=>e.removeEventListener("toggle",o)}),l=window.matchMedia("(max-width: 48rem)"),s=document.documentElement,y=s.dataset.kvNavigationOpen,k=[...a.querySelectorAll('[data-ui="app-navigation"]')].filter(e=>e instanceof HTMLDetailsElement),w=new Map,C=e=>{let o=w.get(e);if(o?.targets){for(let{element:r,inert:f}of o.targets)r.inert=f;o.targets=null}},H=()=>{l.matches&&k.some(o=>o.open)?s.dataset.kvNavigationOpen="true":y===void 0?delete s.dataset.kvNavigationOpen:s.dataset.kvNavigationOpen=y},L=e=>{let o=e.querySelector('[data-ui="navigation-trigger"]'),r=e.querySelector('[data-ui="navigation-drawer"]');if(!(o instanceof HTMLElement)||!(r instanceof HTMLElement))return;let f=l.matches;if(o.dataset.open=String(f&&e.open),!f){r.removeAttribute("role"),r.removeAttribute("aria-modal"),r.removeAttribute("aria-label"),C(e),H();return}if(r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true"),r.setAttribute("aria-label",r.dataset.navigationLabel??"Navigation"),!e.open){C(e),H();return}let h=w.get(e)??{};if(!h.targets){let p=e.closest('[data-ui="app-shell"], [data-ui="shell"]'),P=p?[...p.querySelectorAll(':scope > [data-ui="app-main"], :scope > [data-ui="main"], :scope > [data-ui="app-right-rail"]')].filter(R=>R instanceof HTMLElement).map(R=>({element:R,inert:R.inert})):[];for(let{element:R}of P)R.inert=!0;h.targets=P,h.returnFocus=document.activeElement instanceof HTMLElement?document.activeElement:o,w.set(e,h),queueMicrotask(()=>{if(!e.open||!l.matches)return;let R=r.querySelector('[data-ui="navigation-item"][aria-current="page"]'),A=B(r)[0],E=R instanceof HTMLElement?R:A;(E instanceof HTMLElement?E:r).focus()})}H()},S=(e,o=!0)=>{let r=w.get(e);e.open=!1,L(e),o&&r?.returnFocus instanceof HTMLElement&&r.returnFocus.isConnected&&r.returnFocus.focus(),w.delete(e)},O=k.map(e=>{let o=()=>L(e),r=f=>{let h=f.target;if(!(h instanceof Element))return;let P=h.closest('[data-ui="navigation-branch-trigger"]')?.closest('[data-ui="navigation-branch"]');if(P instanceof HTMLDetailsElement&&P.open){f.preventDefault();return}!l.matches||!e.open||(h.closest('[data-ui="navigation-close"]')||h.closest('[data-ui="navigation-backdrop"]')||h.closest('[data-ui="navigation-item"]'))&&S(e)};return e.addEventListener("toggle",o),e.addEventListener("click",r),L(e),()=>{e.removeEventListener("toggle",o),e.removeEventListener("click",r),C(e)}}),D=()=>{for(let e of k)e.open?S(e,!1):L(e)};l.addEventListener("change",D);for(let e of a.querySelectorAll('[data-ui="popover"][data-open="true"]')){let o=e.querySelector('[data-ui="popover-trigger"]'),r=e.querySelector('[data-ui="popover-panel"]');if(!(o instanceof HTMLElement)||!(r instanceof HTMLElement))continue;let f=o.getBoundingClientRect(),h=8,p=e.getAttribute("data-placement")??"bottom-start",P=p.startsWith("top"),R=p.endsWith("end"),A=f.top-r.offsetHeight-h,E=f.bottom+h,g=A>=8,c=E+r.offsetHeight<=window.innerHeight-8,T=P?g||!c:!c&&g,m=R?f.right-r.offsetWidth:f.left,x=Math.max(8,Math.min(m,window.innerWidth-r.offsetWidth-8)),F=Math.max(8,Math.min(T?A:E,window.innerHeight-r.offsetHeight-8));r.dataset.runtimePositioned="true",r.dataset.runtimePlacement=`${T?"top":"bottom"}-${R?"end":"start"}`,r.style.left=`${Math.round(x)}px`,r.style.top=`${Math.round(F)}px`,r.style.right="auto",r.style.bottom="auto"}let I=e=>{let o=k.find(g=>l.matches&&g.open);if(o instanceof HTMLDetailsElement){let g=o.querySelector('[data-ui="navigation-drawer"]');if(e.key==="Escape"){S(o),e.preventDefault();return}if(e.key==="Tab"&&g instanceof HTMLElement){let c=B(g),T=c[0],m=c.at(-1);if(!c.length){e.preventDefault(),g.focus();return}if(e.shiftKey&&(document.activeElement===T||document.activeElement===g)){e.preventDefault(),m instanceof HTMLElement&&m.focus();return}if(!e.shiftKey&&document.activeElement===m){e.preventDefault(),T instanceof HTMLElement&&T.focus();return}}}let r=document.activeElement?.closest('[data-ui="tree"] [role="treeitem"]');if(r instanceof HTMLElement){let g=r.closest('[data-ui="tree"]'),c=g?[...g.querySelectorAll('[role="treeitem"]')].filter(x=>x instanceof HTMLElement):[],T=c.indexOf(r),m=-1;if(e.key==="ArrowDown")m=Math.min(c.length-1,T+1);else if(e.key==="ArrowUp")m=Math.max(0,T-1);else if(e.key==="Home")m=0;else if(e.key==="End")m=c.length-1;else if(e.key==="ArrowRight"){let x=Number(r.getAttribute("aria-level"));r.getAttribute("aria-expanded")==="true"&&Number(c[T+1]?.getAttribute("aria-level"))>x&&(m=T+1)}else if(e.key==="ArrowLeft"){let x=Number(r.getAttribute("aria-level"));x>1&&(m=c.findLastIndex((F,rt)=>rt<T&&Number(F.getAttribute("aria-level"))<x))}if(m>=0&&c[m]){for(let x of c)x.tabIndex=-1;c[m].tabIndex=0,c[m].focus(),e.preventDefault();return}}let f=document.activeElement?.closest('[data-ui="tree-grid-row"]');if(f instanceof HTMLElement){let g=f.closest('[data-ui="tree-grid"]'),c=g?[...g.querySelectorAll('[data-ui="tree-grid-row"]')].filter(x=>x instanceof HTMLElement):[],T=c.indexOf(f),m=e.key==="ArrowDown"?Math.min(c.length-1,T+1):e.key==="ArrowUp"?Math.max(0,T-1):e.key==="Home"?0:e.key==="End"?c.length-1:-1;if(m>=0&&c[m]){for(let x of c)x.tabIndex=-1;c[m].tabIndex=0,c[m].focus(),e.preventDefault();return}}let h=document.activeElement?.closest('[data-ui="menu"]');if(h instanceof HTMLDetailsElement&&!h.open){let g=h.querySelector('[data-ui="menu-trigger"]');if(document.activeElement===g&&(e.key==="ArrowDown"||e.key==="ArrowUp")){h.open=!0;let c=[...h.querySelectorAll('[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"]')].filter(m=>m instanceof HTMLElement&&m.getAttribute("aria-disabled")!=="true"),T=e.key==="ArrowUp"?c.at(-1):c[0];T instanceof HTMLElement&&T.focus(),e.preventDefault();return}}let p=document.activeElement?.closest('[data-ui="menu"][open]');if(p instanceof HTMLDetailsElement){let g=p.querySelector('[data-ui="menu-trigger"]'),c=[...p.querySelectorAll('[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"]')].filter(F=>F instanceof HTMLElement&&F.getAttribute("aria-disabled")!=="true"),T=document.activeElement,m=T instanceof HTMLElement?c.indexOf(T):-1,x=-1;if(e.key==="ArrowDown"?x=m<0?0:(m+1)%c.length:e.key==="ArrowUp"?x=m<0?c.length-1:(m-1+c.length)%c.length:e.key==="Home"?x=0:e.key==="End"&&(x=c.length-1),x>=0&&c[x]instanceof HTMLElement){c[x].focus(),e.preventDefault();return}if((e.key==="Enter"||e.key===" ")&&document.activeElement===g){c[0]instanceof HTMLElement&&c[0].focus(),e.preventDefault();return}}if(e.key==="Escape"&&p instanceof HTMLDetailsElement){p.open=!1;let g=p.querySelector('[data-ui="menu-trigger"]');g instanceof HTMLElement&&g.focus(),e.preventDefault();return}let P=document.activeElement?.closest('[data-ui="popover"][data-open="true"]');if(e.key==="Escape"&&P instanceof HTMLElement){let g=P.querySelector('[data-ui="popover-close"]');g instanceof HTMLElement&&g.click(),e.preventDefault();return}if(!(i instanceof HTMLElement))return;if(e.key==="Escape"){let g=i.querySelector('[data-ui="modal-close"]');g instanceof HTMLElement&&g.click(),e.preventDefault();return}if(e.key!=="Tab")return;let R=B(i);if(!R.length){e.preventDefault(),i.focus();return}let A=R[0],E=R.at(-1);e.shiftKey&&(document.activeElement===A||document.activeElement===i)?(e.preventDefault(),E instanceof HTMLElement&&E.focus()):!e.shiftKey&&document.activeElement===E&&(e.preventDefault(),A instanceof HTMLElement&&A.focus())},J=e=>{let o=[...e.querySelectorAll('[data-ui="row-select"]')].filter(p=>p instanceof HTMLInputElement&&!p.disabled),r=o.filter(p=>p.checked),f=e.querySelector('[data-ui="select-all"]');f instanceof HTMLInputElement&&(f.checked=o.length>0&&r.length===o.length,f.indeterminate=r.length>0&&r.length<o.length);for(let p of o)p.closest('[data-ui="row"]')?.toggleAttribute("data-selected",p.checked);let h=o[0]?.getAttribute("form");if(h)for(let p of document.querySelectorAll(`[data-ui="bulk-actions"][data-form="${CSS.escape(h)}"]`)){r.length?p.setAttribute("data-has-selection","true"):p.removeAttribute("data-has-selection");for(let P of p.querySelectorAll('[data-ui="bulk-count"]'))P.textContent=String(r.length);for(let P of p.querySelectorAll('[data-ui="bulk-action-list"] button'))P instanceof HTMLButtonElement&&P.dataset.kvAlwaysDisabled!=="true"&&(P.disabled=r.length===0)}},X=e=>{let o=e.target;if(!(o instanceof HTMLInputElement))return;let r=o.getAttribute("data-ui");if(r!=="select-all"&&r!=="row-select")return;let f=o.closest('[data-ui="table"]');if(f){if(r==="select-all")for(let h of f.querySelectorAll('[data-ui="row-select"]'))h instanceof HTMLInputElement&&!h.disabled&&(h.checked=o.checked);J(f)}};for(let e of a.querySelectorAll('[data-ui="table"]'))e.querySelector('[data-ui="row-select"]')&&J(e);document.addEventListener("change",X);let te=e=>{let o=e.target;if(o instanceof Node)for(let r of a.querySelectorAll('[data-ui="menu"][open]')){if(!(r instanceof HTMLDetailsElement))continue;let f=o instanceof Element?o.closest('[data-ui="menu-item"]'):null;(!r.contains(o)||f&&f.getAttribute("aria-disabled")!=="true")&&(r.open=!1)}};return document.addEventListener("keydown",I),document.addEventListener("click",te),()=>{document.removeEventListener("keydown",I),document.removeEventListener("click",te),document.removeEventListener("change",X);for(let e of v)e();l.removeEventListener("change",D);for(let e of O)e();y===void 0?delete s.dataset.kvNavigationOpen:s.dataset.kvNavigationOpen=y,n instanceof HTMLElement&&(n.inert=u),t?.isConnected&&t.focus()}};import{jsx as Ii,jsxs as Ji}from"/_ket/view/jsx-runtime.js";import{jsx as $i,jsxs as qi}from"/_ket/view/jsx-runtime.js";var Te=["switch-control","switch-track"];import{each as zi}from"/_ket/view/index.js";import{Fragment as Zi,jsx as _i,jsxs as Qi}from"/_ket/view/jsx-runtime.js";var we=["combobox","combobox-input-row","combobox-toggle","combobox-listbox","combobox-option","combobox-empty","tag-picker"];import{jsx as an,jsxs as nn}from"/_ket/view/jsx-runtime.js";var ke=["date-range"];import{jsx as dn,jsxs as sn}from"/_ket/view/jsx-runtime.js";var Pe=["file-upload","drop-zone","upload-status"];import{jsx as gn}from"/_ket/view/jsx-runtime.js";var Re=["relation-picker"];import{each as hn}from"/_ket/view/index.js";import{jsx as xn,jsxs as Sn}from"/_ket/view/jsx-runtime.js";var Ce=["search-bar","filter-bar","applied-filters","applied-filter","saved-views","saved-view","view-settings","view-settings-options"];import{jsx as Pn,jsxs as Rn}from"/_ket/view/jsx-runtime.js";var Le=["inline-edit","inline-edit-value","inline-edit-form","inline-edit-actions"];import{each as Kn}from"/_ket/view/index.js";import{each as En}from"/_ket/view/index.js";import{Fragment as In,jsx as Dn,jsxs as Fn}from"/_ket/view/jsx-runtime.js";var He=["list-chrome","list-chrome-row","list-search","list-search-label","list-search-input","list-search-submit","list-facets","list-facet","list-facet-count","list-view-switch","list-view","list-sort","list-sort-label","list-sort-select","list-status","list-actions","bulk-actions","bulk-summary","bulk-count","bulk-action-list","pager-bar","pager-summary","pager-pages","pager-page","pager-actions","pager-link"];import{jsx as qn,jsxs as Gn}from"/_ket/view/jsx-runtime.js";var Oe=["resource-list","resource-list-item","resource-list-select","resource-list-link"];import{each as Un}from"/_ket/view/index.js";import{jsx as _n,jsxs as Qn}from"/_ket/view/jsx-runtime.js";var Ee=["data-grid-scroll","data-grid","data-grid-cap","data-grid-cell"];import{each as jn}from"/_ket/view/index.js";import{jsx as tr,jsxs as ar}from"/_ket/view/jsx-runtime.js";var Me=["tree","tree-item","tree-link","tree-grid","tree-grid-row"];import{each as rr}from"/_ket/view/index.js";import{jsx as or,jsxs as dr}from"/_ket/view/jsx-runtime.js";var Ae=["data-matrix","data-matrix-head","data-matrix-heading","data-matrix-eyebrow","data-matrix-title","data-matrix-description","data-matrix-summary","data-matrix-scroll","data-matrix-table","data-matrix-column","data-matrix-row-head","data-matrix-row-leading","data-matrix-row-title","data-matrix-row-description","data-matrix-row-status","data-matrix-row-actions","data-matrix-cell"];import{each as ur}from"/_ket/view/index.js";import{jsx as gr,jsxs as br}from"/_ket/view/jsx-runtime.js";var De=["bar-chart","bar-chart-rows","bar-chart-row","bar-chart-label","bar-chart-caption","bar-chart-track","bar-chart-fill","bar-chart-segment","bar-chart-value","bar-chart-scale","bar-chart-legend","bar-chart-legend-item","bar-chart-legend-swatch","bar-chart-empty"];import{each as pr}from"/_ket/view/index.js";import{jsx as vr,jsxs as xr}from"/_ket/view/jsx-runtime.js";var Fe=["timeframe","timeframe-menu","timeframe-trigger","timeframe-label","timeframe-value","timeframe-content","timeframe-option","timeframe-option-label","timeframe-option-detail","timeframe-range","timeframe-asof","timeframe-note"];import{each as wr}from"/_ket/view/index.js";import{jsx as Rr,jsxs as Cr}from"/_ket/view/jsx-runtime.js";var Ie=["description-list","key-value","key-value-label","key-value-value","person","person-body","avatar-group","status"];import{jsx as Or}from"/_ket/view/jsx-runtime.js";var Je=["formatted-date","formatted-number","formatted-money"];import{each as Ar}from"/_ket/view/index.js";import{jsx as Xr,jsxs as Kr}from"/_ket/view/jsx-runtime.js";var Ke=["record-summary","record-summary-main","record-actions","record-rail"];import{each as $r}from"/_ket/view/index.js";import{jsx as zr,jsxs as Ur}from"/_ket/view/jsx-runtime.js";var Be=["activity-timeline","activity-item","activity-marker","audit-log","audit-item"];import{each as Qr}from"/_ket/view/index.js";import{jsx as jr,jsxs as el}from"/_ket/view/jsx-runtime.js";var $e=["attachments","attachment","media-gallery","media-item"];import{each as il}from"/_ket/view/index.js";import{Fragment as ol,jsx as rl,jsxs as ll}from"/_ket/view/jsx-runtime.js";var qe=["app-navigation","navigation-trigger","navigation-trigger-icon","navigation-trigger-identity","navigation-trigger-label","navigation-layer","navigation-backdrop","navigation-drawer","navigation-header","navigation-identity","navigation-context","navigation-close","navigation-groups","navigation-group","navigation-group-label","navigation-items","navigation-supplementary","navigation-item","navigation-branch","navigation-branch-trigger","navigation-children","navigation-item-leading","navigation-item-copy","navigation-item-label","navigation-item-description","navigation-item-count","navigation-footer"];import{each as ml}from"/_ket/view/index.js";import{Fragment as yl,jsx as hl,jsxs as pl}from"/_ket/view/jsx-runtime.js";var Ge=["table-scroll","table","table-caption","select-col","select-all","col","sort-link","sort-icon","row","group-row","group-cell","group-link","group-indent","group-count","group-pager","group-pager-actions","cell","select-cell","row-select","row-link"];import{jsx as Rl,jsxs as Cl}from"/_ket/view/jsx-runtime.js";var Ve=["list-page","list-page-context","list-page-header","list-page-heading","list-page-title-row","list-page-eyebrow","list-page-title","list-page-description","list-page-actions","list-page-toolbar","list-page-controls","list-page-status","list-page-body","list-page-footer"];import{jsx as El,jsxs as Ml}from"/_ket/view/jsx-runtime.js";var ze=["record-page","record-page-context","record-page-header","record-page-title-row","record-page-heading","record-page-title","record-page-subline","record-page-status","record-page-description","record-page-actions","record-page-meta","record-page-controller","record-page-navigation","record-page-layout","record-page-body","record-page-aside"];var Ue=["form-page","form-page-context","form-page-header","form-page-title-row","form-page-heading","form-page-title","form-page-subline","form-page-status","form-page-description","form-page-actions","form-page-meta","form-page-controller","form-page-navigation","form-page-layout","form-page-body","form-page-aside"];import{jsx as Bl,jsxs as $l}from"/_ket/view/jsx-runtime.js";var We=["dashboard-page","dashboard-page-context","dashboard-page-header","dashboard-page-heading","dashboard-page-eyebrow","dashboard-page-title-row","dashboard-page-title","dashboard-page-subline","dashboard-page-status","dashboard-page-description","dashboard-page-actions","dashboard-page-meta","dashboard-page-body"];var _e=["board-page","board-page-context","board-page-header","board-page-heading","board-page-eyebrow","board-page-title-row","board-page-title","board-page-subline","board-page-status","board-page-description","board-page-actions","board-page-meta","board-page-toolbar","board-page-controls","board-page-body"];import{each as Zl}from"/_ket/view/index.js";import{jsx as jl,jsxs as eo}from"/_ket/view/jsx-runtime.js";var Qe=["pipeline","pipeline-step","pipeline-arrow","pipeline-step-label","pipeline-step-value","pipeline-step-node"];import{each as ro}from"/_ket/view/index.js";import{jsx as co,jsxs as uo}from"/_ket/view/jsx-runtime.js";var Ze=["record-form","form-errors","form-grid","form-actions"];var Ye={actions:ie,feedback:re,fields:se,status:ne,navigation:ce,progress:ue,menu:me,popover:ge,tooltip:be,dialog:he,toast:pe,spinner:ye,skeleton:ve,scalarFields:Te,combobox:we,dateTime:ke,upload:Pe,relationPicker:Re,listControls:Ce,inlineEdit:Le,resourceList:Oe,dataGrid:Ee,tree:Me,matrix:Ae,barChart:De,timeframe:Fe,recordDisplay:Ie,formattedValues:Je,recordComposition:Ke,activity:Be,media:$e,layouts:de,shell:oe,appNavigation:qe,table:Ge,listChrome:He,listPage:Ve,formPage:Ue,recordPage:ze,dashboardPage:We,boardPage:_e,modal:fe,pipeline:Qe,form:Ze},kt=[...new Set(Object.values(Ye).flat())].sort(),Pt=Object.freeze(Object.fromEntries(Object.entries(Ye).map(([a,t])=>[a,[...t]])));var j="ket.backend.theme",Y=['[data-ui="search-menu"]','[data-ui="col-config"]','[data-ui="bulk-actions"]','[data-ui="viewer"]','[data-ui="record-more"]'].join(", "),at=globalThis,M=a=>a.target instanceof Element?a.target:null,V=a=>a==="light"||a==="dark"?a:null,Rt=()=>{try{return V(localStorage.getItem(j))}catch{return null}},Ct=a=>{try{localStorage.setItem(j,a)}catch{}},it=()=>V(document.documentElement.dataset.theme)??(matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),q=()=>{let a=String(it()==="dark");for(let t of document.querySelectorAll('[data-ui="sidebar-tools"] [data-ui="action"][name="theme"]'))t.setAttribute("aria-pressed",a)},Lt=a=>{let t=Rt();t&&(document.documentElement.dataset.theme=t),q(),document.addEventListener("click",i=>{let n=M(i)?.closest('[data-ui="sidebar-tools"] [data-ui="action"][name="theme"]');if(!n||n.disabled)return;let u=it()==="dark"?"light":"dark";document.documentElement.dataset.theme=u,Ct(u),q()},{signal:a}),matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{V(document.documentElement.dataset.theme)||q()},{signal:a}),addEventListener("storage",i=>{if(i.key!==j)return;let n=V(i.newValue);n?document.documentElement.dataset.theme=n:delete document.documentElement.dataset.theme,q()},{signal:a})},Ht=a=>{let t=[...a.querySelectorAll('[data-ui="row-select"]:not(:disabled)')],i=t.filter(u=>u.checked).length,n=a.querySelector('[data-ui="select-all"]');if(n&&(n.checked=t.length>0&&i===t.length,n.indeterminate=i>0&&i<t.length),!i){let u=a.closest('[data-ui="app-shell"]');for(let d of u?.querySelectorAll('[data-ui="bulk-actions"][open]')??[])d.removeAttribute("open")}},Ot=(a,t)=>{document.addEventListener("change",i=>{let n=M(i);if(!(n instanceof HTMLInputElement)||!n.matches('[data-ui="select-all"], [data-ui="row-select"]'))return;let u=n.closest('[data-ui="table"]');if(u){if(n.matches('[data-ui="select-all"]'))for(let d of u.querySelectorAll('[data-ui="row-select"]:not(:disabled)'))d.checked=n.checked;Ht(u)}},{signal:a}),document.addEventListener("click",i=>{if(i.defaultPrevented||i.button!==0||i.metaKey||i.ctrlKey||i.shiftKey||i.altKey)return;let n=M(i);if(n?.closest('a, button, input, select, textarea, label, summary, details, [data-ui="select-cell"]'))return;let d=n?.closest('[data-ui="row"][data-row-href]')?.getAttribute("data-row-href");d&&(i.preventDefault(),t.navigate(d))},{signal:a}),document.addEventListener("keydown",i=>{if(i.defaultPrevented||i.key!=="Enter"&&i.key!==" ")return;let n=M(i),d=(n?.matches('[data-ui="row"][data-row-href][tabindex="0"]')?n:null)?.getAttribute("data-row-href");d&&(i.preventDefault(),ee(d,t))},{signal:a})},je=()=>[...document.querySelectorAll(`${Y}[open]`)],Et=a=>{document.addEventListener("click",t=>{let i=M(t)?.closest(Y);for(let n of je())n!==i&&!n.contains(i??null)&&n.removeAttribute("open")},{signal:a}),document.addEventListener("keydown",t=>{if(t.key!=="Escape")return;let i=je();if(!i.length)return;let n=document.activeElement?.closest(Y),u=n?.open?n:i.at(-1);u?.removeAttribute("open"),u?.querySelector("summary")?.focus(),t.preventDefault()},{signal:a})},Mt=a=>{document.addEventListener("click",t=>{let i=M(t)?.closest('[data-ui="chrome-search-toggle"]'),n=i?.getAttribute("aria-controls");if(!i||!n)return;let u=document.getElementById(n);!(u instanceof HTMLDialogElement)||u.open||(u.showModal(),i.setAttribute("aria-expanded","true"),requestAnimationFrame(()=>u.querySelector('[data-presentation="modal"] [data-ui="chrome-search-input"]')?.focus()))},{signal:a}),document.addEventListener("cancel",t=>{M(t)?.matches('[data-ui="chrome-search-modal"]')&&t.preventDefault()},{capture:!0,signal:a}),document.addEventListener("close",t=>{let i=M(t);if(!(i instanceof HTMLDialogElement)||!i.matches('[data-ui="chrome-search-modal"]'))return;let n=document.querySelector(`[data-ui="chrome-search-toggle"][aria-controls="${CSS.escape(i.id)}"]`);n?.setAttribute("aria-expanded","false"),n?.focus()},{capture:!0,signal:a})},At=["a[href]","button:not(:disabled)",'input:not(:disabled):not([type="hidden"])',"select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", "),G=()=>document.querySelector('[data-ui="modal-layer"][data-route-modal="true"]'),et=a=>[...a.querySelectorAll(At)].filter(t=>!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&!t.matches('[data-ui="modal-backdrop"]')),ee=(a,t)=>{t.navigate(a)},Dt=(a,t)=>a.composedPath().some(i=>i instanceof HTMLElement&&i!==t&&i.matches('[data-ui="modal-layer"][data-presentation="dialog"]')),nt=a=>{for(let t of a.querySelectorAll('input:not([type="hidden"])'))if(!t.disabled){if(t.type==="checkbox"||t.type==="radio"){if(t.checked!==t.defaultChecked)return!0}else if(t.value!==t.defaultValue)return!0}for(let t of a.querySelectorAll("textarea"))if(!t.disabled&&t.value!==t.defaultValue)return!0;for(let t of a.querySelectorAll("select"))if(!t.disabled){for(let i of t.options)if(i.selected!==i.defaultSelected)return!0}return!1},tt=a=>{if(!nt(a))return!0;let t=a.getAttribute("data-unsaved-prompt");return t?at.confirm(t):!0},Ft=(a,t)=>{if(typeof EventSource!="function")return;let i=null,n=null,u=()=>{n?.close(),n=null,i=null},d=()=>{let v=document.querySelector('[data-ui="live-region"][data-stream]');if(v===i)return;u();let l=v instanceof HTMLElement?v.dataset.stream??"":"";if(!l)return;i=v,n=new EventSource(`/_ket/stream/${encodeURIComponent(l)}`);let s=()=>ee(location.href,t);n.onmessage=s,n.addEventListener("done",()=>{u(),s()}),n.onerror=()=>{n?.readyState===EventSource.CLOSED&&u()}};d();let b=new MutationObserver(d);return b.observe(document.body,{childList:!0,subtree:!0}),addEventListener("pagehide",u,{signal:a}),()=>{b.disconnect(),u()}},It=(a,t)=>{let i=new WeakSet,n=()=>{let d=G();!d||i.has(d)||(i.add(d),requestAnimationFrame(()=>{let b=d.querySelector('[data-ui="modal-sheet"]');(et(d).find(l=>!l.matches('[data-ui="modal-close"]'))??b)?.focus()}))};n();let u=new MutationObserver(n);return u.observe(document.body,{childList:!0,subtree:!0}),document.addEventListener("click",d=>{let b=G();if(!b)return;let v=d.composedPath().find(l=>l instanceof HTMLElement&&(l.matches('[data-ui="modal-close"], [data-ui="modal-backdrop"], a[data-ui="tab"]')||l.matches('a[data-ui="action"][href]')));!v||!b.contains(v)||tt(b)||(d.preventDefault(),d.stopPropagation())},{capture:!0,signal:a}),document.addEventListener("click",d=>{let b=document.querySelector("[data-save-before-navigation]"),v=b instanceof HTMLFormElement?b:b?.querySelector("form"),l=M(d)?.closest("a[href]");if(!b||!v||!l||G()||!nt(b)||(d.preventDefault(),d.stopPropagation(),!at.confirm(b.dataset.saveBeforeNavigation)))return;let s=v.querySelector('input[name="returnTo"]');s||(s=document.createElement("input"),s.type="hidden",s.name="returnTo",v.append(s)),s.value=l.href,v.requestSubmit()},{capture:!0,signal:a}),document.addEventListener("keydown",d=>{let b=G();if(!b||Dt(d,b))return;if(d.key==="Escape"){let y=b.querySelector('[data-ui="modal-close"]');if(!y||(d.preventDefault(),!tt(b)))return;ee(y.getAttribute("href")??y.href,t);return}if(d.key!=="Tab")return;let v=et(b);if(!v.length)return;let l=v[0],s=v.at(-1);d.shiftKey&&document.activeElement===l?(d.preventDefault(),s.focus()):!d.shiftKey&&document.activeElement===s&&(d.preventDefault(),l.focus())},{signal:a}),()=>u.disconnect()},Jt=(a,t)=>{document.addEventListener("ket:records-changed",()=>{document.querySelector('[data-ket-slot="backend.content"]')&&t.navigate(location.href,{replace:!0})},{signal:a})},Ic=({navigation:a,lifetime:t})=>{Jt(t,a);let i=W(document),n=ae(t);Lt(t),Ot(t,a),Et(t),Mt(t);let u=It(t,a),d=Ft(t,a);return()=>{i(),d?.(),u(),n()}};export{Ic as backendShell};