@ketvietlab/ketsuite 0.1.30 → 0.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/cli.js +1 -1
  2. package/dist/modules/backend/design/client/backend-shell.d.mts.map +1 -1
  3. package/dist/modules/backend/design/client/backend-shell.mjs +1 -1
  4. package/dist/modules/backend/design/client/backend-shell.mjs.map +2 -2
  5. package/dist/modules/backend/design/client/ket-table.d.mts.map +1 -1
  6. package/dist/modules/backend/design/client/ket-table.mjs +1 -1
  7. package/dist/modules/backend/design/client/ket-table.mjs.map +2 -2
  8. package/dist/modules/backend/design/client/search-filter.d.mts.map +1 -1
  9. package/dist/modules/backend/design/client/search-filter.mjs +1 -1
  10. package/dist/modules/backend/design/client/search-filter.mjs.map +2 -2
  11. package/dist/modules/backend/design/content.css +5 -5
  12. package/dist/modules/backend/design/controls.css +10 -36
  13. package/dist/modules/backend/design/forms.css +2 -188
  14. package/dist/modules/backend/design/lists.css +1 -50
  15. package/dist/modules/crm_backend/client/crm-case-modal.d.mts +8 -8
  16. package/dist/modules/crm_backend/client/crm-case-modal.d.mts.map +1 -1
  17. package/dist/modules/crm_backend/client/crm-case-modal.mjs +1 -1
  18. package/dist/modules/crm_backend/client/crm-case-modal.mjs.map +3 -3
  19. package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts +35 -35
  20. package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts.map +1 -1
  21. package/dist/modules/crm_backend/client/crm-configuration-modal.mjs +1 -1
  22. package/dist/modules/crm_backend/client/crm-configuration-modal.mjs.map +3 -3
  23. package/dist/modules/product_backend/client/attribute-modal.d.mts +5 -5
  24. package/dist/modules/product_backend/client/attribute-modal.d.mts.map +1 -1
  25. package/dist/modules/product_backend/client/attribute-modal.mjs +1 -1
  26. package/dist/modules/product_backend/client/attribute-modal.mjs.map +3 -3
  27. package/dist/modules/product_backend/client/product-modal.d.mts +8 -8
  28. package/dist/modules/product_backend/client/product-modal.d.mts.map +1 -1
  29. package/dist/modules/product_backend/client/product-modal.mjs +1 -1
  30. package/dist/modules/product_backend/client/product-modal.mjs.map +3 -3
  31. package/dist/modules/product_backend/client/variant-editor.d.mts +2 -2
  32. package/dist/modules/product_backend/client/variant-editor.d.mts.map +1 -1
  33. package/dist/modules/product_backend/client/variant-editor.mjs +1 -1
  34. package/dist/modules/product_backend/client/variant-editor.mjs.map +2 -2
  35. package/dist/modules/purchase_backend/client/purchase-order-modal.d.mts +5 -5
  36. package/dist/modules/purchase_backend/client/purchase-order-modal.d.mts.map +1 -1
  37. package/dist/modules/purchase_backend/client/purchase-order-modal.mjs +1 -1
  38. package/dist/modules/purchase_backend/client/purchase-order-modal.mjs.map +3 -3
  39. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.d.mts +4 -4
  40. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.d.mts.map +1 -1
  41. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.mjs +1 -1
  42. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.mjs.map +3 -3
  43. package/dist/modules/sale_backend/client/invoicing-policy-modal.d.mts +4 -4
  44. package/dist/modules/sale_backend/client/invoicing-policy-modal.d.mts.map +1 -1
  45. package/dist/modules/sale_backend/client/invoicing-policy-modal.mjs +1 -1
  46. package/dist/modules/sale_backend/client/invoicing-policy-modal.mjs.map +3 -3
  47. package/dist/modules/sale_backend/client/sale-order-modal.d.mts +5 -5
  48. package/dist/modules/sale_backend/client/sale-order-modal.d.mts.map +1 -1
  49. package/dist/modules/sale_backend/client/sale-order-modal.mjs +1 -1
  50. package/dist/modules/sale_backend/client/sale-order-modal.mjs.map +3 -3
  51. package/dist/modules/stock_backend/client/inventory-count-modal.d.mts +4 -4
  52. package/dist/modules/stock_backend/client/inventory-count-modal.d.mts.map +1 -1
  53. package/dist/modules/stock_backend/client/inventory-count-modal.mjs +1 -1
  54. package/dist/modules/stock_backend/client/inventory-count-modal.mjs.map +3 -3
  55. package/dist/modules/stock_backend/client/stock-configuration-modal.d.mts +14 -14
  56. package/dist/modules/stock_backend/client/stock-configuration-modal.d.mts.map +1 -1
  57. package/dist/modules/stock_backend/client/stock-configuration-modal.mjs +1 -1
  58. package/dist/modules/stock_backend/client/stock-configuration-modal.mjs.map +3 -3
  59. package/dist/modules/stock_backend/client/stock-transfer-modal.d.mts +4 -4
  60. package/dist/modules/stock_backend/client/stock-transfer-modal.d.mts.map +1 -1
  61. package/dist/modules/stock_backend/client/stock-transfer-modal.mjs +1 -1
  62. package/dist/modules/stock_backend/client/stock-transfer-modal.mjs.map +3 -3
  63. package/dist/modules/user_backend/client/access-policy-modal.d.mts +4 -4
  64. package/dist/modules/user_backend/client/access-policy-modal.d.mts.map +1 -1
  65. package/dist/modules/user_backend/client/access-policy-modal.mjs +1 -1
  66. package/dist/modules/user_backend/client/access-policy-modal.mjs.map +3 -3
  67. package/dist/modules/user_backend/client/role-modal.d.mts +6 -6
  68. package/dist/modules/user_backend/client/role-modal.d.mts.map +1 -1
  69. package/dist/modules/user_backend/client/role-modal.mjs +1 -1
  70. package/dist/modules/user_backend/client/role-modal.mjs.map +3 -3
  71. package/dist/modules/user_backend/client/user-modal.d.mts +9 -9
  72. package/dist/modules/user_backend/client/user-modal.d.mts.map +1 -1
  73. package/dist/modules/user_backend/client/user-modal.mjs +1 -1
  74. package/dist/modules/user_backend/client/user-modal.mjs.map +3 -3
  75. package/dist/scaffold/index.js +1 -1
  76. package/dist/ui/client/record-modal-form.d.ts +10 -0
  77. package/dist/ui/client/record-modal-form.d.ts.map +1 -1
  78. package/dist/ui/client/record-modal-form.js +3 -1
  79. package/dist/ui/client/record-modal-form.js.map +1 -1
  80. package/dist/ui/client/record-modal.d.ts +9 -1
  81. package/dist/ui/client/record-modal.d.ts.map +1 -1
  82. package/dist/ui/client/record-modal.js +78 -17
  83. package/dist/ui/client/record-modal.js.map +1 -1
  84. package/dist/ui/index.d.ts +2 -2
  85. package/dist/ui/index.d.ts.map +1 -1
  86. package/dist/ui/index.js +2 -2
  87. package/dist/ui/index.js.map +1 -1
  88. package/dist/ui/record-modal.d.ts +3 -0
  89. package/dist/ui/record-modal.d.ts.map +1 -1
  90. package/dist/ui/record-modal.js +15 -1
  91. package/dist/ui/record-modal.js.map +1 -1
  92. package/package.json +4 -4
@@ -5,12 +5,12 @@ declare function Qn(e: any): {
5
5
  root: any;
6
6
  }) => void;
7
7
  };
8
- declare var ei: (e: any) => string, Wf: (e: any) => {
8
+ declare var ei: (e: any) => string, jf: (e: any) => {
9
9
  view: () => any;
10
10
  mount: ({ root: t, lifetime: a }: {
11
11
  lifetime: any;
12
12
  root: any;
13
13
  }) => void;
14
14
  };
15
- export { Qn as createVariantEditorView, Wf as variantEditor, ei as variantEditorSaveForm };
15
+ export { Qn as createVariantEditorView, jf as variantEditor, ei as variantEditorSaveForm };
16
16
  //# sourceMappingURL=variant-editor.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"variant-editor.d.mts","sourceRoot":"","sources":["../../../../../../../packages/ketsuite/src/modules/product_backend/client/variant-editor.mjs"],"names":[],"mappings":"AACk/tD,iBAAS,EAAE,CAAC,CAAC,KAAA;;;;;;EAAuskB;AAAA,QAAA,IAAI,EAAE,oBAAe,EAAC,EAAE;;;;;;CAAS,CAAC;AAAA,OAAM,EAAC,EAAE,IAAI,uBAAuB,EAAC,EAAE,IAAI,aAAa,EAAC,EAAE,IAAI,qBAAqB,EAAC,CAAC"}
1
+ {"version":3,"file":"variant-editor.d.mts","sourceRoot":"","sources":["../../../../../../../packages/ketsuite/src/modules/product_backend/client/variant-editor.mjs"],"names":[],"mappings":"AACykuD,iBAAS,EAAE,CAAC,CAAC,KAAA;;;;;;EAAuskB;AAAA,QAAA,IAAI,EAAE,oBAAe,EAAC,EAAE;;;;;;CAAS,CAAC;AAAA,OAAM,EAAC,EAAE,IAAI,uBAAuB,EAAC,EAAE,IAAI,aAAa,EAAC,EAAE,IAAI,qBAAqB,EAAC,CAAC"}
@@ -1,2 +1,2 @@
1
1
  // @ts-nocheck Generated by tools/build-backend-client.mjs — do not edit.
2
- import{each as tt,effect as Ka,signal as j}from"/_ket/view/index.js";import{each as un}from"/_ket/view/index.js";import{Fragment as Pt,jsx as se,jsxs as mn}from"/_ket/view/jsx-runtime.js";var Lt=["action","action-leading","action-label","action-spinner","action-group"],Et=e=>mn(Pt,{children:[e.loading===!0&&se("span",{"data-ui":"action-spinner","aria-hidden":"true"}),e.loading!==!0&&e.leading!==void 0&&se("span",{"data-ui":"action-leading","aria-hidden":"true",children:e.leading}),!e.iconOnly&&se("span",{"data-ui":"action-label",children:e.label})]}),A=e=>se("button",{"data-ui":"action","data-variant":e.variant??"secondary","data-size":e.size??"default",type:e.type??"button",name:e.name??null,value:e.value??null,form:e.form??null,disabled:e.disabled===!0||e.loading===!0,"aria-busy":e.loading===!0?"true":null,"aria-describedby":e.describedBy??null,"aria-expanded":e.expanded===void 0?null:String(e.expanded),"aria-controls":e.controls??null,children:se(Et,{...e})}),Je=e=>se("button",{"data-ui":"action","data-icon-only":"true","data-variant":e.variant??"tertiary","data-size":e.size??"default",type:e.type??"button",name:e.name??null,value:e.value??null,form:e.form??null,disabled:e.disabled===!0||e.loading===!0,"aria-label":e.label,"aria-pressed":e.pressed===void 0?null:String(e.pressed),"aria-busy":e.loading===!0?"true":null,"aria-describedby":e.describedBy??null,"aria-expanded":e.expanded===void 0?null:String(e.expanded),"aria-controls":e.controls??null,title:e.label,children:se(Et,{...e,leading:e.icon,iconOnly:!0})});var be=e=>se("div",{"data-ui":"action-group",role:"group","aria-label":e.label??null,children:un(e.actions,(d,n)=>n,d=>se(Pt,{children:d}))});import{jsx as gn,jsxs as ri}from"/_ket/view/jsx-runtime.js";var Ht=["badge","tag","tag-remove","count-badge","avatar","code","text","media-label","media-label-image","media-label-copy"];var ne=e=>gn("span",{"data-ui":"badge","data-pattern":"badge","data-tone":e.tone??"neutral","data-value":e.value??"",children:e.label});import{each as si}from"/_ket/view/index.js";import{Fragment as Xe,jsx as N,jsxs as pe}from"/_ket/view/jsx-runtime.js";var Ft=["notice","notice-mark","notice-copy","notice-title","notice-message","notice-actions","empty","empty-mark","empty-title","empty-message","empty-actions","loading","loading-label"],fn={info:()=>pe(Xe,{children:[N("circle",{cx:"12",cy:"12",r:"10"}),N("path",{d:"M12 16v-4"}),N("path",{d:"M12 8h.01"})]}),positive:()=>pe(Xe,{children:[N("circle",{cx:"12",cy:"12",r:"10"}),N("path",{d:"m9 12 2 2 4-4"})]}),warning:()=>pe(Xe,{children:[N("path",{d:"m21.73 18-8-14a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"}),N("path",{d:"M12 9v4"}),N("path",{d:"M12 17h.01"})]}),danger:()=>pe(Xe,{children:[N("circle",{cx:"12",cy:"12",r:"10"}),N("path",{d:"M12 8v4"}),N("path",{d:"M12 16h.01"})]})},te=e=>pe("aside",{"data-ui":"notice","data-pattern":"notice","data-tone":e.tone??"info",role:e.tone==="danger"?"alert":"status",children:[N("span",{"data-ui":"notice-mark","aria-hidden":"true",children:N("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false",children:fn[e.tone??"info"]()})}),pe("div",{"data-ui":"notice-copy",children:[N("p",{"data-ui":"notice-title",children:e.title}),N("p",{"data-ui":"notice-message",children:e.message})]}),e.actions!==void 0&&N("div",{"data-ui":"notice-actions",children:e.actions})]}),de=e=>pe("div",{"data-ui":"empty",role:"status",children:[N("span",{"data-ui":"empty-mark","aria-hidden":"true",children:"\u25C7"}),N("p",{"data-ui":"empty-title",children:e.title}),N("p",{"data-ui":"empty-message",children:e.message}),e.actions!==void 0&&N("div",{"data-ui":"empty-actions",children:e.actions})]});import{each as dt}from"/_ket/view/index.js";import{each as Pi}from"/_ket/view/index.js";import{jsx as mi,jsxs as gi}from"/_ket/view/jsx-runtime.js";var It=["modal-layer","modal-backdrop","modal-sheet","modal-head","modal-heading","modal-title-row","modal-title","modal-description","modal-close","modal-body","modal-actions"];import{Fragment as vi,jsx as pi,jsxs as hi}from"/_ket/view/jsx-runtime.js";import{Fragment as Ri,jsx as Ti,jsxs as wi}from"/_ket/view/jsx-runtime.js";var Dt=["app-shell","app-shell-topbar","app-topbar","app-location-bar","app-location-context","app-brand","app-topbar-brand","app-topbar-context","global-search-trigger","global-search-trigger-label","global-search-shortcut","global-search-dialog","global-search","global-search-input","global-search-submit","app-sidebar","app-main","app-right-rail","page","page-context","page-header","page-heading","page-eyebrow","page-title-row","page-title","page-subline","page-status","page-actions","page-meta","page-body","record-canvas","record-content","record-section","record-section-title"];import{Fragment as Ii,jsx as he,jsxs as Ge}from"/_ket/view/jsx-runtime.js";var At=["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"];var Fe=e=>Ge("details",{"data-ui":"disclosure",open:e.open===!0?!0:void 0,children:[he("summary",{"data-ui":"disclosure-summary",children:e.summary}),he("div",{"data-ui":"disclosure-body",children:e.body})]}),ve=e=>Ge("section",{"data-ui":"section",children:[Ge("header",{"data-ui":"section-head",children:[Ge("div",{children:[!!e.eyebrow&&he("p",{"data-ui":"section-eyebrow",children:e.eyebrow}),he("h2",{"data-ui":"section-title",children:e.title}),!!e.description&&he("p",{"data-ui":"section-description",children:e.description})]}),e.actions!==void 0&&he("div",{"data-ui":"section-actions",children:e.actions})]}),he("div",{"data-ui":"section-body",children:e.body})]});import{each as xn}from"/_ket/view/index.js";import{Fragment as Sn,jsx as Ie}from"/_ket/view/jsx-runtime.js";var Ue=(e,d)=>e.control!==void 0?Ie(Sn,{children:e.control}):e.type==="textarea"?Ie("textarea",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,name:e.name,placeholder:e.placeholder??null,required:e.required===!0,disabled:e.disabled===!0,readonly:e.readOnly===!0,"aria-invalid":e.error?"true":null,"aria-describedby":d,children:String(e.value??"")}):e.type==="select"?Ie("select",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,name:e.name,required:e.required===!0,disabled:e.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":d,children:xn(e.options??[],n=>n.value,n=>Ie("option",{value:n.value,selected:String(e.value??"")===n.value,disabled:n.disabled===!0,children:n.label}))}):Ie("input",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,type:e.type==="decimal"?"number":e.type??"text",name:e.name,value:e.type==="checkbox"?"1":String(e.value??""),checked:e.type==="checkbox"&&(e.value===!0||e.value==="1"),placeholder:e.placeholder??null,required:e.required===!0,disabled:e.disabled===!0,readonly:e.readOnly===!0,min:e.min,max:e.max,"aria-invalid":e.error?"true":null,"aria-describedby":d,autocomplete:e.autocomplete??"off",step:e.type==="decimal"?e.step??"any":e.step??null});import{jsx as q,jsxs as ce}from"/_ket/view/jsx-runtime.js";var $t=["field","field-label","field-required","field-control","field-options","field-option","field-option-input","field-help","field-error"],Bt=e=>!!e.error||(e.fields?.some(Bt)??!1),W=e=>{let d=e.help?`${e.id}-help`:null,n=e.error?`${e.id}-error`:null,m=[d,n].filter(Boolean).join(" ")||null,l=ce("span",{"data-ui":"field-label",children:[e.label,e.required&&q("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]});return e.fields?ce("div",{"data-ui":"field","data-kind":"group","data-span":"full","data-invalid":String(!!e.error),children:[q(Fe,{summary:e.label,open:e.open||Bt(e),body:q("div",{"data-ui":"form-grid",children:dt(e.fields.map(c=>({...c,disabled:e.disabled||c.disabled,readOnly:e.readOnly||c.readOnly})),c=>c.id,c=>q(W,{...c}))})}),!!e.help&&q("small",{"data-ui":"field-help",id:d??void 0,children:e.help}),!!e.error&&q("small",{"data-ui":"field-error",id:n??void 0,children:e.error})]}):e.type==="checkbox-group"?ce("div",{"data-ui":"field","data-kind":"checkbox-group","data-span":e.span??"half","data-invalid":String(!!e.error),children:[ce("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&q("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),q("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"group","aria-labelledby":`${e.id}-label`,children:dt(e.options??[],c=>c.name??c.value,c=>ce("label",{"data-ui":"field-option",children:[q("input",{"data-ui":"field-option-input",type:"checkbox",name:c.name??`${e.name}[]`,value:c.value,checked:c.checked===!0,disabled:e.disabled===!0||c.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":m,autocomplete:"off"}),q("span",{children:c.label})]}))}),!!e.help&&q("small",{"data-ui":"field-help",id:d??void 0,children:e.help}),!!e.error&&q("small",{"data-ui":"field-error",id:n??void 0,children:e.error})]}):e.type==="radio"?ce("div",{"data-ui":"field","data-kind":"radio","data-span":e.span??"half","data-invalid":String(!!e.error),children:[ce("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&q("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),q("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"radiogroup","aria-labelledby":`${e.id}-label`,children:dt(e.options??[],c=>c.value,c=>ce("label",{"data-ui":"field-option",children:[q("input",{"data-ui":"field-option-input",type:"radio",name:e.name,value:c.value,checked:String(e.value??"")===c.value,required:e.required===!0,disabled:e.disabled===!0||c.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":m,autocomplete:"off"}),q("span",{children:c.label})]}))}),!!e.help&&q("small",{"data-ui":"field-help",id:d??void 0,children:e.help}),!!e.error&&q("small",{"data-ui":"field-error",id:n??void 0,children:e.error})]}):ce("label",{"data-ui":"field","data-kind":e.type??"text","data-label-hidden":e.labelHidden?"true":null,"data-selection-hidden":e.selectionHidden?"true":null,"data-span":e.span??"half","data-invalid":String(!!e.error),for:e.id,children:[e.type==="checkbox"&&Ue(e,m),l,e.type!=="checkbox"&&Ue(e,m),!!e.help&&q("small",{"data-ui":"field-help",id:d??void 0,children:e.help}),!!e.error&&q("small",{"data-ui":"field-error",id:n??void 0,children:e.error})]})};import{each as Gi}from"/_ket/view/index.js";import{jsx as _i,jsxs as Wi}from"/_ket/view/jsx-runtime.js";var Kt=["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","tabbed-view","tabbed-view-context","tab-panel"];import{jsx as Yi,jsxs as Qi}from"/_ket/view/jsx-runtime.js";var Nt=["progress","progress-label","progress-value","progress-track","progress-bar"];import{each as ar}from"/_ket/view/index.js";import{Fragment as or,jsx as ir,jsxs as rr}from"/_ket/view/jsx-runtime.js";var qt=["menu","menu-trigger","menu-trigger-count","menu-panel","menu-search","menu-search-input","menu-label","menu-separator","menu-item","menu-item-leading","menu-item-copy","menu-item-check","menu-item-shortcut"];import{jsx as dr,jsxs as cr}from"/_ket/view/jsx-runtime.js";var Vt=["popover","popover-trigger","popover-panel","popover-close"];import{jsx as gr,jsxs as fr}from"/_ket/view/jsx-runtime.js";var Jt=["tooltip","tooltip-trigger","tooltip-content"];import{jsx as yr}from"/_ket/view/jsx-runtime.js";var Xt=["dialog","confirm-dialog-message"];import{each as kr}from"/_ket/view/index.js";import{jsx as wr,jsxs as Rr}from"/_ket/view/jsx-runtime.js";var zt=["toast-region","toast","toast-copy","toast-title","toast-message","toast-actions"];import{jsx as Lr}from"/_ket/view/jsx-runtime.js";var Gt=["spinner","visually-hidden"];import{each as Hr}from"/_ket/view/index.js";import{jsx as Ir}from"/_ket/view/jsx-runtime.js";var Ut=["skeleton","skeleton-line"];import{each as Re,effect as kn,signal as ie}from"/_ket/view/index.js";import{jsx as x,jsxs as D}from"/_ket/view/jsx-runtime.js";var _t=["relation-select","relation-native","relation-trigger","relation-value","relation-caret","relation-chips","relation-chip","relation-chip-clear","relation-menu","relation-search","relation-options","relation-option","relation-footer","relation-empty","relation-editor","relation-dialog-toolbar","relation-search-field","relation-search-icon","relation-dialog-list","relation-dialog-row","relation-dialog-main","relation-dialog-meta","relation-dialog-actions"],ye=e=>Array.isArray(e)?e:[],L=e=>e==null?"":String(e),ct=async(e,d,n)=>{let m=await fetch(`/_ket/fn/${encodeURIComponent(e)}`,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json"},body:JSON.stringify(d),signal:n}),l=await m.json();if(!m.ok||l.ok===!1){let c=ye(l.errors)[0];throw new Error(L(c?.message??c?.code??l.message??`HTTP ${m.status}`))}return l.value};function ut(e,d={}){let{id:n,config:m}=e,l=m.labels,c=m.manager,R=m.multiple===!0,v=ie(R?ye(m.values).map(L).filter(Boolean):[L(m.value)].filter(Boolean)),g=()=>v()[0]??"",h=o=>v().includes(L(o)),f=ie(ye(m.options)),$=()=>d.options?.()??f(),K=()=>d.disabled?.()??m.disabled===!0,I=ie(!1),C=ie(!1),S=ie(""),B=ie([]),P=ie(!1),T=ie(""),H=ie(null),y=ie(""),p=null,M,ae=!1,z=o=>L(o[c?.idField??"id"]),w=o=>L(o[c?.labelField??"name"])||l.noRecords,oe=o=>L(o[c?.descriptionField??"ref"]),Q=()=>f().find(o=>L(o.value)===g())?.label??l.choose,G=()=>{let o=S().trim().toLocaleLowerCase(),b=o?$().filter(E=>`${L(E.label)} ${L(E.description)}`.toLocaleLowerCase().includes(o)):$();return d.options?b:b.slice(0,7)},me=(o,b,E="")=>{if(K())return;let O=L(o);if(f().some(F=>L(F.value)===O)||f.set([...f(),{value:O,label:L(b),description:L(E)}]),R){v.set(h(O)?v().filter(F=>F!==O):[...v(),O]),d.onSelect?.({value:O,label:L(b),description:L(E)});return}v.set(O?[O]:[]),I.set(!1),C.set(!1),S.set(""),H.set(null),y.set(""),d.resetAfterSelect&&v.set([]),d.onSelect?.({value:O,label:L(b),description:L(E)})},ke=o=>{v.set(v().filter(b=>b!==L(o)))},Te=o=>f().find(b=>L(b.value)===L(o))?.label??L(o),le=async()=>{if(!c?.listFunction)return;p?.abort();let o=new AbortController;p=o,P.set(!0),T.set("");try{let b={...c.listInput??{}};b[c.searchParam??"search"]=S().trim(),b[c.limitParam??"limit"]=c.limit??80;let E=await ct(c.listFunction,b,o.signal),O=new Set(ye(c.excludeIds).map(L));B.set(ye(E).filter(F=>!O.has(z(F))))}catch(b){if(ae||b instanceof Error&&b.name==="AbortError")return;T.set(b instanceof Error?b.message:l.loadError)}finally{p===o&&P.set(!1)}},Be=async()=>{I.set(!1),C.set(!0),H.set(null),y.set(""),await le()},we=()=>{C.set(!1),H.set(null),y.set(""),T.set("")},Ke=o=>{o.currentTarget instanceof HTMLInputElement&&(S.set(o.currentTarget.value),clearTimeout(M),M=setTimeout(le,180))},it=async o=>{if(o.preventDefault(),!c?.saveFunction||!(o.currentTarget instanceof HTMLFormElement))return;let b=H(),E=b?.id||crypto.randomUUID(),O={...c.saveDefaults??{},id:E};for(let[F,ee]of new FormData(o.currentTarget).entries())O[F]=L(ee);P.set(!0),T.set("");try{await ct(c.saveFunction,O);let F=L(O[c.labelField??"name"]);if(!b?.id){me(E,F),R&&(H.set(null),await le());return}f.set(f().map(ee=>L(ee.value)===E?{...ee,label:F||ee.label}:ee)),H.set(null),await le()}catch(F){T.set(F instanceof Error?F.message:l.loadError)}finally{P.set(!1)}},Ne=async o=>{let b=z(o);if(y()!==b){y.set(b);return}if(c?.removeFunction){P.set(!0),T.set("");try{await ct(c.removeFunction,{...c.removeDefaults??{},id:b}),ke(b),f.set(f().filter(E=>L(E.value)!==b)),y.set(""),await le()}catch(E){T.set(E instanceof Error?E.message:l.loadError)}finally{P.set(!1)}}},Le=o=>{let b=H()?.row??c?.saveDefaults??{},E=L(b[o.name]),O=`${n}-relation-editor-${o.name}`;return D("label",{"data-ui":"form-field","data-span":"full",htmlFor:O,children:[D("span",{"data-ui":"form-label",children:[o.label,o.required?D("span",{"data-ui":"form-required","aria-hidden":"true",children:[" ","*"]}):null]}),o.type==="select"?x("select",{"data-ui":"form-control",id:O,name:o.name,required:o.required===!0,children:Re(ye(o.options),F=>F.value,F=>x("option",{value:F.value,selected:L(F.value)===E,children:F.label}))}):x("input",{"data-ui":"form-control",id:O,type:o.type??"text",name:o.name,value:E,autocomplete:"off",required:o.required===!0})]})},qe=()=>D("form",{"data-ui":"relation-editor",onSubmit:it,children:[x("div",{"data-ui":"form-grid",children:Re(ye(c?.fields),o=>o.name,Le)}),x("div",{"data-ui":"form-actions",children:D("div",{"data-ui":"action-group",children:[x("button",{"data-ui":"action","data-variant":"primary",type:"submit",disabled:P(),children:l.save}),x("button",{"data-ui":"action","data-variant":"tertiary",type:"button",onClick:()=>H.set(null),children:l.cancel})]})})]}),Ee=o=>{let b=z(o),E=oe(o);return D("li",{"data-ui":"relation-dialog-row","data-selected":String(h(b)),children:[D("button",{"data-ui":"relation-dialog-main",type:"button","aria-pressed":R?String(h(b)):null,onClick:()=>me(b,w(o),E),children:[x("strong",{children:w(o)}),E?x("small",{"data-ui":"relation-dialog-meta",children:E}):null]}),D("div",{"data-ui":"relation-dialog-actions",children:[x("button",{"data-ui":"action","data-size":"compact","data-variant":h(b)?"primary":"secondary",type:"button",onClick:()=>me(b,w(o),E),children:h(b)?l.chosen:l.select}),c?.saveFunction?x("button",{"data-ui":"action","data-size":"compact","data-variant":"tertiary",type:"button",onClick:()=>H.set({id:b,row:o}),children:l.edit}):null,c?.removeFunction?x("button",{"data-ui":"action","data-size":"compact","data-variant":"destructive",type:"button",onClick:()=>Ne(o),children:y()===b?l.confirmRemove:l.remove}):null]})]})},Pe=()=>D("div",{"data-ui":"modal-layer","data-presentation":"dialog",children:[x("button",{"data-ui":"modal-backdrop",type:"button","aria-label":l.close,onClick:we,children:x("span",{children:l.close})}),D("section",{"data-ui":"modal-sheet",role:"dialog","aria-modal":"true","aria-labelledby":`${n}-relation-title`,children:[D("header",{"data-ui":"modal-head",children:[x("h2",{"data-ui":"modal-title",id:`${n}-relation-title`,children:l.dialogTitle}),x("button",{"data-ui":"modal-close",type:"button","aria-label":l.close,title:l.close,onClick:we,children:"\xD7"})]}),D("div",{"data-ui":"modal-body",children:[D("div",{"data-ui":"relation-dialog-toolbar",children:[D("div",{"data-ui":"relation-search-field",children:[x("span",{"data-ui":"relation-search-icon","aria-hidden":"true",children:D("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false",children:[x("circle",{cx:"11",cy:"11",r:"8"}),x("path",{d:"m21 21-4.3-4.3"})]})}),x("input",{"data-ui":"field-control",type:"search",value:S(),autocomplete:"off",placeholder:l.search,"aria-label":l.search,onInput:Ke})]}),c?.saveFunction?x("button",{"data-ui":"action","data-variant":"primary",type:"button",onClick:()=>H.set({id:"",row:c.saveDefaults??{}}),children:l.create}):null]}),T()?D("aside",{"data-ui":"notice","data-tone":"danger",role:"alert",children:[D("div",{"data-ui":"notice-copy",children:[x("p",{"data-ui":"notice-title",children:l.loadError}),x("p",{"data-ui":"notice-message",children:T()})]}),x("button",{"data-ui":"action","data-variant":"secondary",type:"button",onClick:le,children:l.retry})]}):null,H()?qe():null,P()?x("p",{"data-ui":"relation-empty",role:"status",children:l.loading}):null,!P()&&!H()?B().length?x("ul",{"data-ui":"relation-dialog-list",children:Re(B(),z,Ee)}):x("p",{"data-ui":"relation-empty",children:l.noRecords}):null]})]})]}),He=o=>{if(!(o instanceof KeyboardEvent)||o.key!=="Escape"||!I()&&!C())return;o.preventDefault(),o.stopPropagation();let b=o.currentTarget?.querySelector('[data-ui="relation-trigger"]');I.set(!1),we(),b?.focus()},fe=o=>{o.preventDefault(),I.set(!0),o.currentTarget instanceof HTMLSelectElement&&o.currentTarget.nextElementSibling?.focus()};return{view:()=>D("div",{"data-ui":"relation-select",role:"group","aria-label":m.ariaLabel,onKeydown:He,children:[D("select",{"data-ui":"relation-native",name:m.name,required:m.required===!0,disabled:K(),tabindex:"-1","aria-hidden":"true",onInvalid:fe,children:[x("option",{value:"",selected:!v().length}),R?v().length?x("option",{value:v().join(","),selected:!0,children:v().map(Te).join(", ")}):null:Re(f().filter(o=>L(o.value)),o=>o.value,o=>x("option",{value:o.value,selected:L(o.value)===g(),children:o.label}))]}),D("button",{"data-ui":"relation-trigger","data-empty":String(!v().length),type:"button","aria-haspopup":"listbox","aria-label":m.ariaLabel,"aria-expanded":String(I()),"aria-controls":`${n}-relation-menu`,disabled:K(),onClick:()=>I.set(!I()),children:[x("span",{"data-ui":"relation-value",children:R?l.choose:Q()}),x("span",{"data-ui":"relation-caret","aria-hidden":"true",children:"\u25BE"})]}),R&&v().length?x("ul",{"data-ui":"relation-chips","aria-label":l.chosen,children:Re(v(),o=>o,o=>D("li",{"data-ui":"relation-chip",children:[x("span",{children:Te(o)}),x("button",{"data-ui":"relation-chip-clear",type:"button","aria-label":`${l.clear}: ${Te(o)}`,title:l.clear,disabled:K(),onClick:()=>ke(o),children:"\xD7"})]}))}):null,I()?D("div",{"data-ui":"relation-menu",id:`${n}-relation-menu`,children:[x("input",{"data-ui":"relation-search",type:"search",value:S(),autocomplete:"off",placeholder:l.search,"aria-label":l.search,onInput:o=>{o.currentTarget instanceof HTMLInputElement&&S.set(o.currentTarget.value)}}),x("div",{"data-ui":"relation-options",role:"listbox",children:G().length?Re(G(),o=>o.value,o=>D("button",{"data-ui":"relation-option",type:"button",role:"option","data-selected":String(h(o.value)),"aria-selected":String(h(o.value)),onClick:()=>me(o.value,o.label,o.description),children:[x("span",{children:o.label}),o.description?x("small",{children:o.description}):null]})):x("p",{"data-ui":"relation-empty",children:l.noRecords})}),c||!d.options||d.onCreate?D("footer",{"data-ui":"relation-footer",children:[c||!d.options?x("button",{"data-ui":"action","data-variant":"tertiary",type:"button",onClick:Be,children:l.more}):null,d.onCreate?x("button",{"data-ui":"action","data-variant":"tertiary",type:"button",disabled:K(),onClick:()=>{if(K())return;let o=S().trim();I.set(!1),S.set(""),d.onCreate?.(o)},children:l.create}):null]}):null]}):null,C()?Pe():null]}),mount:({root:o,lifetime:b})=>{let E=!0,O=kn(()=>{if(v(),E){E=!1;return}queueMicrotask(()=>{if(ae)return;let F=[...o.querySelectorAll('[data-ui="relation-native"]')][0];F instanceof HTMLSelectElement&&F.dispatchEvent(new Event("change",{bubbles:!0}))})});b.addEventListener("abort",O),document.addEventListener("click",F=>{if(!I())return;let ee=F.target;ee instanceof Node&&o.contains(ee)||I.set(!1)},{signal:b})},dispose:()=>{ae=!0,clearTimeout(M),p?.abort()}}}import{each as Kr,signal as Oe}from"/_ket/view/index.js";import{jsx as Z,jsxs as jt}from"/_ket/view/jsx-runtime.js";var Yt=["lightbox","lightbox-thumbs","lightbox-thumb","lightbox-empty","lightbox-layer","lightbox-backdrop","lightbox-toolbar","lightbox-counter","lightbox-tool","lightbox-stage","lightbox-image","lightbox-nav","lightbox-caption"],re=1,Wt=4,We=.5,Qt=(e,d)=>e.replace(/\{(\w+)\}/g,(n,m)=>String(d[m]??`{${m}}`)),Zt=(e,d,n)=>Math.min(n,Math.max(d,e));function mt(e,d="lightbox"){let n=Oe([]),m=Oe(!1),l=Oe(0),c=Oe(re),R=Oe({x:0,y:0}),v=null,g=new Map,h=null,f=()=>{c.set(re),R.set({x:0,y:0})},$=(y,p,M)=>{y.length&&(v=M instanceof HTMLElement?M:null,n.set(y),l.set(Zt(p,0,y.length-1)),f(),m.set(!0),queueMicrotask(()=>{typeof document>"u"||document.getElementById(`${d}-lightbox-close`)?.focus()}))},K=()=>{m()&&(m.set(!1),f(),g.clear(),h=null,v?.focus(),v=null)},I=y=>{let p=n().length;p<2||(l.set((l()+y+p)%p),f())},C=y=>{let p=Zt(y,re,Wt);c.set(p),p===re&&R.set({x:0,y:0})},S=()=>{let y=[...g.values()];return y.length?{x:y.reduce((p,M)=>p+M.x,0)/y.length,y:y.reduce((p,M)=>p+M.y,0)/y.length}:{x:0,y:0}},B=()=>{let[y,p]=[...g.values()];return y&&p?Math.hypot(y.x-p.x,y.y-p.y):0},P=(y,p)=>{if(p&&h&&g.size===1&&c()===re&&h.distance===null){let M=y.clientX-h.start.x;Math.abs(M)>60&&Math.abs(M)>Math.abs(y.clientY-h.start.y)&&I(M<0?1:-1)}if(g.delete(y.pointerId),y.currentTarget?.releasePointerCapture?.(y.pointerId),!g.size){let M=h;M&&p?setTimeout(()=>h===M?h=null:null,0):h=null;return}h&&(h={...h,start:S(),origin:R(),zoom:c(),distance:null})};return{open:$,close:K,isOpen:()=>m(),layer:()=>{let y=n(),p=y[l()];if(!m()||!p)return null;let M=c(),ae=R(),z=y.length>1;return jt("div",{"data-ui":"lightbox-layer",role:"dialog","aria-modal":"true","aria-label":p.alt,id:`${d}-lightbox`,children:[Z("div",{"data-ui":"lightbox-backdrop","aria-hidden":"true",onClick:K}),jt("div",{"data-ui":"lightbox-toolbar",children:[Z("span",{"data-ui":"lightbox-counter","aria-live":"polite",children:z?Qt(e.counter,{index:l()+1,total:y.length}):""}),Z("button",{type:"button","data-ui":"lightbox-tool","data-tool":"zoom-out","aria-label":e.zoomOut,title:e.zoomOut,disabled:M<=re,onClick:()=>C(M-We),children:"\u2212"}),Z("button",{type:"button","data-ui":"lightbox-tool","data-tool":"zoom-in","aria-label":e.zoomIn,title:e.zoomIn,disabled:M>=Wt,onClick:()=>C(M+We),children:"+"}),Z("button",{type:"button","data-ui":"lightbox-tool","data-tool":"close",id:`${d}-lightbox-close`,"aria-label":e.close,title:e.close,onClick:K,children:"\xD7"})]}),Z("div",{role:"presentation","data-ui":"lightbox-stage","data-zoomed":String(M>re),onClick:w=>{w.target===w.currentTarget&&!h?.moved&&K()},onWheel:w=>{w.preventDefault(),C(c()*(w.deltaY<0?1.15:1/1.15))},onPointerDown:w=>{g.set(w.pointerId,{x:w.clientX,y:w.clientY}),w.currentTarget.setPointerCapture?.(w.pointerId),h={start:S(),origin:R(),zoom:c(),distance:g.size>1?B():null,moved:h?.moved===!0&&g.size>1}},onPointerMove:w=>{if(!h||!g.has(w.pointerId))return;g.set(w.pointerId,{x:w.clientX,y:w.clientY});let oe=S(),Q=oe.x-h.start.x,G=oe.y-h.start.y;Math.abs(Q)+Math.abs(G)>4&&(h.moved=!0),g.size>1&&h.distance&&(C(h.zoom*(B()/h.distance)),h.moved=!0),c()>re&&R.set({x:h.origin.x+Q,y:h.origin.y+G})},onPointerUp:w=>P(w,!0),onPointerCancel:w=>P(w,!1),children:Z("img",{"data-ui":"lightbox-image",src:p.src,alt:p.alt,draggable:"false",style:`transform: translate(${ae.x}px, ${ae.y}px) scale(${M})`,onClick:()=>{h?.moved||C(c()>re?re:2)}})}),z?Z("button",{type:"button","data-ui":"lightbox-nav","data-direction":"previous","aria-label":e.previous,title:e.previous,onClick:()=>I(-1),children:"\u2039"}):null,z?Z("button",{type:"button","data-ui":"lightbox-nav","data-direction":"next","aria-label":e.next,title:e.next,onClick:()=>I(1),children:"\u203A"}):null,p.caption?Z("p",{"data-ui":"lightbox-caption",children:p.caption}):null]})},attach:y=>{document.addEventListener("keydown",p=>{if(m()){if(p.key==="Escape")K();else if(p.key==="ArrowLeft")I(-1);else if(p.key==="ArrowRight")I(1);else if(p.key==="+"||p.key==="=")C(c()+We);else if(p.key==="-")C(c()-We);else return;p.preventDefault(),p.stopImmediatePropagation()}},{signal:y,capture:!0}),y.addEventListener("abort",()=>{m.set(!1),g.clear(),h=null})}}}var gt=e=>Z("button",{type:"button","data-ui":"lightbox-thumb","data-size":e.size??"medium","aria-label":Qt(e.labels.open,{alt:e.item.alt}),"aria-haspopup":"dialog",onClick:d=>e.onOpen(d.currentTarget),children:Z("img",{src:e.item.thumbnail??e.item.src,alt:"",loading:"lazy",decoding:"async"})});import{each as Xr,signal as zr}from"/_ket/view/index.js";import{Fragment as Wr,jsx as _r,jsxs as Ur}from"/_ket/view/jsx-runtime.js";var ea=["search-filter","search-filter-bar","search-filter-section-toggle","search-filter-sheet","search-filter-clear","search-filter-icon","search-filter-field","search-filter-input","search-filter-facets","search-filter-facet","search-filter-facet-remove","search-filter-suggestions","search-filter-suggestion","search-filter-toggle","search-filter-columns","search-filter-column","search-filter-column-title","search-filter-empty","search-filter-grouping","search-filter-grouping-head","search-filter-grouping-list","search-filter-grouping-item","search-filter-grouping-order","search-filter-grouping-label","search-filter-grouping-actions","search-filter-grouping-action","search-filter-grouping-clear","search-filter-grouping-add-label","custom-filter","custom-filter-row","custom-filter-add","custom-group-by","favorite-list","favorite-item","favorite-item-default","favorite-item-remove","favorite-save","favorite-save-toggle","favorite-save-row"];import{each as to,effect as ao,signal as no}from"/_ket/view/index.js";import{jsx as Yr}from"/_ket/view/jsx-runtime.js";var ta=["formatted-date","formatted-number","formatted-money"];import{Fragment as so,jsx as co,jsxs as uo}from"/_ket/view/jsx-runtime.js";var na=["ket-table","kt-scroll","kt-selection-target","kt-grid","kt-select-col","kt-select-all","kt-col","kt-sort-button","kt-sort-icon","kt-row","kt-cell","kt-person","kt-select-cell","kt-row-select","kt-row-link","kt-group-row","kt-group-cell","kt-group-toggle","kt-group-indent","kt-group-count","kt-group-pager","kt-pager","kt-pager-label","kt-pager-button","kt-select-persisted","kt-caption","kt-tools"];var Co=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","summary",'[tabindex]:not([tabindex="-1"])'].join(",");var Ln=['[data-ui="timeframe-menu"]','[data-ui="view-settings"]'],Mo=Ln.map(e=>`${e}[open]`).join(", ");import{jsx as ft,jsxs as ia}from"/_ket/view/jsx-runtime.js";var Ce=(e,d)=>e?.find(n=>n.path===d)?.message??null,De=e=>{let d=e.help?`${e.id}-help`:null,n=e.error?`${e.id}-error`:null;return ia("div",{"data-ui":"field","data-kind":e.kind,"data-span":e.span??"half","data-invalid":String(!!e.error),children:[ia("label",{"data-ui":"field-label",for:e.id,children:[e.label,e.required&&ft("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),e.control,!!e.help&&ft("small",{"data-ui":"field-help",id:d??void 0,children:e.help}),!!e.error&&ft("small",{"data-ui":"field-error",id:n??void 0,children:e.error})]})},Ae=(e,d,n)=>[d?`${e}-help`:null,n?`${e}-error`:null].filter(Boolean).join(" ")||null;import{jsx as je,jsxs as Oo}from"/_ket/view/jsx-runtime.js";var ra=["switch-control","switch-track"],Ze=e=>({...e,error:e.error??Ce(e.issues,e.name)}),bt=e=>je(W,{...Ze(e),type:"text"});var pt=e=>je(W,{...Ze({...e,step:e.step??"0.01"}),type:"decimal"});var ht=e=>je(W,{...Ze(e),type:"checkbox-group"});var vt=e=>je(W,{...Ze(e),type:"select"});import{each as $o}from"/_ket/view/index.js";import{Fragment as Vo,jsx as No,jsxs as qo}from"/_ket/view/jsx-runtime.js";var oa=["combobox","combobox-input-row","combobox-toggle","combobox-listbox","combobox-option","combobox-empty","tag-picker"];import{Fragment as Yo,jsx as Zo,jsxs as jo}from"/_ket/view/jsx-runtime.js";var la=["date-picker","date-range","date-inputs","date-control-row","date-tools","date-range-error","date-calendar","date-calendar-head","date-calendar-title","date-calendar-body","date-field-control","date-range-preset","date-boundary","date-calendar-months","date-month","date-month-title","date-grid","date-weekday","date-cell","date-day","date-calendar-footer","date-calendar-status"];import{jsx as yt,jsxs as Hn}from"/_ket/view/jsx-runtime.js";var sa=["file-upload","drop-zone","upload-status"],En=(e,d,n)=>Hn("div",{"data-ui":n?"drop-zone":"file-upload",children:[yt("input",{"data-ui":"field-control",id:e.id,type:"file",name:e.name,accept:e.accept,multiple:e.multiple===!0,required:e.required===!0,disabled:e.disabled===!0,"aria-invalid":d?"true":null,"aria-describedby":Ae(e.id,e.help,d)}),e.status!==void 0&&yt("div",{"data-ui":"upload-status",children:e.status})]}),Pn=(e,d)=>{let n=e.error??Ce(e.issues,e.name);return yt(De,{...e,kind:d?"drop-zone":"file-upload",error:n,control:En(e,n,d)})};var xt=e=>Pn(e,!0);import{jsx as rl}from"/_ket/view/jsx-runtime.js";var da=["relation-picker"];import{each as sl}from"/_ket/view/index.js";import{jsx as ml,jsxs as gl}from"/_ket/view/jsx-runtime.js";var ca=["search-bar","filter-bar","applied-filters","applied-filter","saved-views","saved-view","view-settings","view-settings-options"];import{jsx as hl,jsxs as vl}from"/_ket/view/jsx-runtime.js";var ua=["inline-edit","inline-edit-value","inline-edit-form","inline-edit-actions"];import{each as Hl}from"/_ket/view/index.js";import{each as Tl}from"/_ket/view/index.js";import{Fragment as Ll,jsx as Cl,jsxs as Ml}from"/_ket/view/jsx-runtime.js";var ma=["list-chrome","list-chrome-row","list-search","list-search-label","list-search-input","list-search-submit","list-filter-menus","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 Dl,jsxs as Al}from"/_ket/view/jsx-runtime.js";var ga=["resource-list","resource-list-item","resource-list-select","resource-list-link"];import{each as Kl}from"/_ket/view/index.js";import{jsx as ql,jsxs as Vl}from"/_ket/view/jsx-runtime.js";var fa=["data-grid-scroll","data-grid","data-grid-cap","data-grid-cell"];import{each as zl}from"/_ket/view/index.js";import{jsx as Ul,jsxs as _l}from"/_ket/view/jsx-runtime.js";var ba=["tree","tree-item","tree-link","tree-grid","tree-grid-row"];import{each as jl}from"/_ket/view/index.js";import{jsx as Ql,jsxs as es}from"/_ket/view/jsx-runtime.js";var pa=["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 ns}from"/_ket/view/index.js";import{jsx as rs,jsxs as os}from"/_ket/view/jsx-runtime.js";var ha=["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 ds}from"/_ket/view/index.js";import{jsx as us,jsxs as ms}from"/_ket/view/jsx-runtime.js";var va=["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 bs}from"/_ket/view/index.js";import{jsx as vs,jsxs as ys}from"/_ket/view/jsx-runtime.js";var ya=["description-list","key-value","key-value-label","key-value-value","person","person-body","avatar-group","status"];import{each as ks}from"/_ket/view/index.js";import{jsx as Ms,jsxs as Ls}from"/_ket/view/jsx-runtime.js";var Sa=["record-summary","record-summary-main","record-actions","record-rail"];import{each as Hs}from"/_ket/view/index.js";import{jsx as Ds,jsxs as As}from"/_ket/view/jsx-runtime.js";var ka=["activity-timeline","activity-item","activity-marker","audit-log","audit-item"];import{each as Ks}from"/_ket/view/index.js";import{jsx as Vs,jsxs as Js}from"/_ket/view/jsx-runtime.js";var Ta=["attachments","attachment","media-gallery","media-item"];import{each as Gs}from"/_ket/view/index.js";import{Fragment as Zs,jsx as _s,jsxs as Ws}from"/_ket/view/jsx-runtime.js";var wa=["app-navigation","navigation-trigger","navigation-toggle","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 td}from"/_ket/view/index.js";import{Fragment as ld,jsx as rd,jsxs as od}from"/_ket/view/jsx-runtime.js";var Ra=["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{Fragment as pd,jsx as bd,jsxs as hd}from"/_ket/view/jsx-runtime.js";var Ca=["list-page","list-page-context","list-page-header","list-page-heading","list-page-title-row","list-page-eyebrow","list-page-title","list-page-actions","list-page-tools","list-page-toolbar","list-page-controls","list-page-status","list-page-body","list-page-footer"];import{jsx as Sd,jsxs as kd}from"/_ket/view/jsx-runtime.js";var Ma=["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-actions","record-page-meta","record-page-controller","record-page-navigation","record-page-layout","record-page-body","record-page-aside"];var La=["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-actions","form-page-meta","form-page-controller","form-page-navigation","form-page-layout","form-page-body","form-page-aside"];import{jsx as Hd,jsxs as Fd}from"/_ket/view/jsx-runtime.js";var Ea=["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-actions","dashboard-page-meta","dashboard-page-body"];var Pa=["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-actions","board-page-meta","board-page-toolbar","board-page-controls","board-page-body"];import{each as qd}from"/_ket/view/index.js";import{jsx as Jd,jsxs as Xd}from"/_ket/view/jsx-runtime.js";var Ha=["pipeline","pipeline-step","pipeline-arrow","pipeline-step-label","pipeline-step-value","pipeline-step-node"];import{each as Wd}from"/_ket/view/index.js";import{jsx as Qd,jsxs as ec}from"/_ket/view/jsx-runtime.js";var Fa=["record-form","form-errors","form-grid","form-actions"];import{each as sc}from"/_ket/view/index.js";import{jsx as mc,jsxs as gc}from"/_ket/view/jsx-runtime.js";var Ia=["reorder-list","reorder-list-value","reorder-list-rows","reorder-list-row","reorder-list-content","reorder-list-controls"];var Oa={actions:Lt,feedback:Ft,fields:$t,status:Ht,navigation:Kt,progress:Nt,menu:qt,reorderList:Ia,popover:Vt,tooltip:Jt,dialog:Xt,toast:zt,spinner:Gt,skeleton:Ut,lightbox:Yt,relationSelect:_t,searchFilter:ea,ketTable:na,scalarFields:ra,combobox:oa,dateTime:la,upload:sa,relationPicker:da,listControls:ca,inlineEdit:ua,resourceList:ga,dataGrid:fa,tree:ba,matrix:pa,barChart:ha,timeframe:va,recordDisplay:ya,formattedValues:ta,recordComposition:Sa,activity:ka,media:Ta,layouts:At,shell:Dt,appNavigation:wa,table:Ra,listChrome:ma,listPage:Ca,formPage:La,recordPage:Ma,dashboardPage:Ea,boardPage:Pa,modal:It,pipeline:Ha,form:Fa},Kn=[...new Set(Object.values(Oa).flat())].sort(),Nn=Object.freeze(Object.fromEntries(Object.entries(Oa).map(([e,d])=>[e,[...d]])));import{trustedMarkup as Vn}from"/_ket/view/index.js";var Da={package:'<path d="M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z" /> <path d="M12 22V12" /> <polyline points="3.29 7 12 12 20.71 7" /> <path d="m7.5 4.27 9 5.15" />',warehouse:'<path d="M18 21V10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v11" /> <path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 1.132-1.803l7.95-3.974a2 2 0 0 1 1.837 0l7.948 3.974A2 2 0 0 1 22 8z" /> <path d="M6 13h12" /> <path d="M6 17h12" />',"shopping-cart":'<circle cx="8" cy="21" r="1" /> <circle cx="19" cy="21" r="1" /> <path d="M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12" />',globe:'<circle cx="12" cy="12" r="10" /> <path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" /> <path d="M2 12h20" />',users:'<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" /> <path d="M16 3.128a4 4 0 0 1 0 7.744" /> <path d="M22 21v-2a4 4 0 0 0-3-3.87" /> <circle cx="9" cy="7" r="4" />',"layout-grid":'<rect width="7" height="7" x="3" y="3" rx="1" /> <rect width="7" height="7" x="14" y="3" rx="1" /> <rect width="7" height="7" x="14" y="14" rx="1" /> <rect width="7" height="7" x="3" y="14" rx="1" />',settings:'<path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915" /> <circle cx="12" cy="12" r="3" />',"file-text":'<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" /> <path d="M14 2v4a2 2 0 0 0 2 2h4" /> <path d="M10 9H8" /> <path d="M16 13H8" /> <path d="M16 17H8" />',"message-circle":'<path d="M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719" />',"check-circle":'<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14" /> <path d="m22 4-10 10.01-3-3" />',send:'<path d="m22 2-7 20-4-9-9-4Z" /> <path d="M22 2 11 13" />',download:'<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" /> <path d="m7 10 5 5 5-5" /> <path d="M12 15V3" />',headphones:'<path d="M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3" />',calendar:'<path d="M8 2v4" /> <path d="M16 2v4" /> <rect width="18" height="18" x="3" y="4" rx="2" /> <path d="M3 10h18" />',"contact-round":'<path d="M16 2v2" /> <path d="M17.915 22a6 6 0 0 0-12 0" /> <path d="M8 2v2" /> <circle cx="12" cy="12" r="4" /> <rect x="3" y="4" width="18" height="18" rx="2" />',handshake:'<path d="m11 17 2 2a1 1 0 1 0 3-3" /> <path d="m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4" /> <path d="m21 3 1 11h-2" /> <path d="M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3" /> <path d="M3 4h8" />',"layout-dashboard":'<rect width="7" height="9" x="3" y="3" rx="1" /> <rect width="7" height="5" x="14" y="3" rx="1" /> <rect width="7" height="9" x="14" y="12" rx="1" /> <rect width="7" height="5" x="3" y="16" rx="1" />',store:'<path d="M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5" /> <path d="M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244" /> <path d="M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05" />',"receipt-text":'<path d="M13 16H8" /> <path d="M14 8H8" /> <path d="M16 12H8" /> <path d="M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z" />',truck:'<path d="M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2" /> <path d="M15 18H9" /> <path d="M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14" /> <circle cx="17" cy="18" r="2" /> <circle cx="7" cy="18" r="2" />',"shopping-bag":'<path d="M16 10a4 4 0 0 1-8 0" /> <path d="M3.103 6.034h17.794" /> <path d="M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z" />',factory:'<path d="M12 16h.01" /> <path d="M16 16h.01" /> <path d="M3 19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-.769-.422l-4.462 2.844A.5.5 0 0 1 15 10.5v-2a.5.5 0 0 0-.769-.422L9.77 10.922A.5.5 0 0 1 9 10.5V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z" /> <path d="M8 16h.01" />',fingerprint:'<path d="M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4" /> <path d="M14 13.12c0 2.38 0 6.38-1 8.88" /> <path d="M17.29 21.02c.12-.6.43-2.3.5-3.02" /> <path d="M2 12a10 10 0 0 1 18-6" /> <path d="M2 16h.01" /> <path d="M21.8 16c.2-2 .131-5.354 0-6" /> <path d="M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2" /> <path d="M8.65 22c.21-.66.45-1.32.57-2" /> <path d="M9 6.8a6 6 0 0 1 9 5.2v2" />',wallet:'<path d="M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1" /> <path d="M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4" />',banknote:'<rect width="20" height="12" x="2" y="6" rx="2" /> <circle cx="12" cy="12" r="2" /> <path d="M6 12h.01" /> <path d="M18 12h.01" />',hotel:'<path d="M10 22v-6.57" /> <path d="M12 11h.01" /> <path d="M12 7h.01" /> <path d="M14 15.43V22" /> <path d="M15 16a5 5 0 0 0-6 0" /> <path d="M16 11h.01" /> <path d="M16 7h.01" /> <path d="M8 11h.01" /> <path d="M8 7h.01" /> <rect x="4" y="2" width="16" height="20" rx="2" />',tag:'<path d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z" /> <circle cx="7.5" cy="7.5" r=".5" fill="currentColor" />',search:'<path d="m21 21-4.34-4.34" /> <circle cx="11" cy="11" r="8" />',"chevron-down":'<path d="m6 9 6 6 6-6" />',"chevron-right":'<path d="m9 18 6-6-6-6" />',"chevron-left":'<path d="m15 18-6-6 6-6" />',plus:'<path d="M5 12h14" /> <path d="M12 5v14" />',"more-horizontal":'<circle cx="5" cy="12" r="1" fill="currentColor" /> <circle cx="12" cy="12" r="1" fill="currentColor" /> <circle cx="19" cy="12" r="1" fill="currentColor" />',x:'<path d="M18 6 6 18" /> <path d="m6 6 12 12" />',list:'<path d="M3 5h.01" /> <path d="M3 12h.01" /> <path d="M3 19h.01" /> <path d="M8 5h13" /> <path d="M8 12h13" /> <path d="M8 19h13" />',"sliders-horizontal":'<path d="M10 5H3" /> <path d="M12 19H3" /> <path d="M14 3v4" /> <path d="M16 17v4" /> <path d="M21 12h-9" /> <path d="M21 19h-5" /> <path d="M21 5h-7" /> <path d="M8 10v4" /> <path d="M8 12H3" />',"grip-vertical":'<circle cx="9" cy="5" r="1" fill="currentColor" /> <circle cx="9" cy="12" r="1" fill="currentColor" /> <circle cx="9" cy="19" r="1" fill="currentColor" /> <circle cx="15" cy="5" r="1" fill="currentColor" /> <circle cx="15" cy="12" r="1" fill="currentColor" /> <circle cx="15" cy="19" r="1" fill="currentColor" />',pencil:'<path d="M12 20h9" /> <path d="M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z" />',"trash-2":'<path d="M3 6h18" /> <path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" /> <path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" /> <path d="M10 11v6" /> <path d="M14 11v6" />',"refresh-cw":'<path d="M21 12a9 9 0 0 0-15.38-6.36L3 8" /> <path d="M3 3v5h5" /> <path d="M3 12a9 9 0 0 0 15.38 6.36L21 16" /> <path d="M16 16h5v5" />',"arrow-up":'<path d="m18 15-6-6-6 6" />',"arrow-down":'<path d="m6 9 6 6 6-6" />',check:'<path d="M20 6 9 17l-5-5" />',"alert-triangle":'<path d="m21.73 18-8-14a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" /> <path d="M12 9v4" /> <path d="M12 17h.01" />',info:'<circle cx="12" cy="12" r="10" /> <path d="M12 16v-4" /> <path d="M12 8h.01" />',bell:'<path d="M10.268 21a2 2 0 0 0 3.464 0" /> <path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" />',mail:'<path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" /> <rect x="2" y="4" width="20" height="16" rx="2" />',moon:'<path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z" />',sun:'<circle cx="12" cy="12" r="4" /> <path d="M12 2v2" /> <path d="M12 20v2" /> <path d="m4.93 4.93 1.42 1.42" /> <path d="m17.66 17.66 1.41 1.41" /> <path d="M2 12h2" /> <path d="M20 12h2" /> <path d="m6.34 17.66-1.41 1.41" /> <path d="m19.07 4.93-1.41 1.41" />',"log-out":'<path d="m16 17 5-5-5-5" /> <path d="M21 12H9" /> <path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" />',"building-2":'<path d="M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18" /> <path d="M6 12H4a2 2 0 0 0-2 2v8h20v-8a2 2 0 0 0-2-2h-2" /> <path d="M10 6h4" /> <path d="M10 10h4" /> <path d="M10 14h4" /> <path d="M10 18h4" />'},Jn='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-ui="icon" aria-hidden="true">';var Qe=e=>Vn(e&&Da[e]?Jn+Da[e]+"</svg>":"");import{signal as Mf}from"/_ket/view/index.js";import{jsx as lf}from"/_ket/view/jsx-runtime.js";import{jsx as et,jsxs as Xn}from"/_ket/view/jsx-runtime.js";var St=e=>Xn("form",{"data-ui":"record-form",method:"post",action:"","data-record-kind":e.kind,id:e.id,"data-record-dirty":e.dirty===!0?"true":null,children:[e.command?et("input",{type:"hidden",name:Aa,value:e.command,autocomplete:"off"}):"",Object.entries(e.hidden??{}).map(([d,n])=>et("input",{type:"hidden",name:d,value:n,autocomplete:"off"})),et("div",{"data-ui":"form-grid",children:e.fields.map(d=>W(d))}),e.body,e.actions?.length?et("div",{"data-ui":"form-actions",children:be({actions:e.actions})}):""]});import{Fragment as If,jsx as Df,jsxs as Of}from"/_ket/view/jsx-runtime.js";var $a=e=>{let d=e??{};return(Array.isArray(d.errors)?d.errors:Array.isArray(d.issues)?d.issues:[]).map(m=>{let l=m??{},c=Array.isArray(l.path)?l.path.join("."):null;return{field:typeof l.field=="string"?l.field:c,code:String(l.code??"invalid"),message:typeof l.message=="string"?l.message:null,params:l.params&&typeof l.params=="object"?l.params:{}}})},zn=async(e,d,n={})=>{let m=new URL(e,"https://record.invalid");if(m.origin!=="https://record.invalid"||!e.startsWith("/")||e.startsWith("//"))throw new Error("Record commands require a same-origin route");let l=await fetch(m.pathname+m.search,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json",...n.idempotencyKey?{"idempotency-key":n.idempotencyKey}:{}},body:JSON.stringify(d),signal:n.signal}),c=await l.json().catch(()=>({}));if(!l.ok||c.ok===!1)return{ok:!1,issues:$a(c.error??c),message:l.status>=500?null:c.error?.message??c.message??null,status:l.status};let R=c.value;return R&&typeof R=="object"&&R.ok===!1?{ok:!1,issues:$a(R),message:null,status:l.status}:{ok:!0,value:c.value}},xe=(e,d,n={})=>zn(`/_ket/fn/${encodeURIComponent(e)}`,d,n);var Pf=Object.freeze({"recordModal.close":"Close","recordModal.loading":"Loading\u2026","recordModal.loadFailed":"The record could not be read.","recordModal.notFound":"The record is gone or you cannot see it.","recordModal.retry":"Retry","recordModal.errorTitle":"Not saved","recordModal.saveFailed":"That did not work. Try again.","recordModal.savedTitle":"Saved","recordModal.saved":"The change is in.","recordModal.unsaved":"Discard what you typed?","recordModal.uploadFailed":"The file could not be uploaded. Try again."});var Aa="__command";var Hf=["a[href]","button:not(:disabled)",'input:not(:disabled):not([type="hidden"])',"select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", ");import{signal as Me}from"/_ket/view/index.js";import{Fragment as Gn,jsx as ue,jsxs as Un}from"/_ket/view/jsx-runtime.js";var Ba=e=>{let d=Me(!1),n=Me(!1),m=Me(""),l=Me(""),c=Me({}),R=Me(!1),v="",g=!1,h=new Map,f=`${e.id}-create-attribute`,$=C=>queueMicrotask(()=>{if(g)return;let S=document.getElementById(C);(S?.querySelector("button")??S)?.focus()}),K=()=>{d.set(!1),m.set(""),l.set(""),c.set({}),R.set(!1),h.clear(),e.returnFocus?queueMicrotask(e.returnFocus):$(`${f}-toggle`)},I=async C=>{if(C.preventDefault(),C.stopPropagation(),!e.enabled||e.disabled()||n())return;let S=l().split(/\r?\n/u).map(T=>T.trim()).filter(Boolean),B={};if(m().trim()||(B.name=e.t("attributeNameRequired")),S.length||(B.values=e.t("attributeValuesRequired")),new Set(S.map(T=>T.normalize("NFC").toLowerCase())).size!==S.length&&(B.values=e.t("attributeValuesDuplicate")),c.set(B),R.set(!1),Object.keys(B).length){$(`${f}-${B.name?"name":"values"}`);return}let P={id:v,name:m().trim(),displayType:"select",createVariant:"always",values:S.map(T=>(h.has(T)||h.set(T,crypto.randomUUID()),{id:h.get(T),name:T}))};n.set(!0);try{let T=await xe("product.saveAttributeDraft",P);if(g)return;if(!T.ok){let H={};for(let y of T.issues)y.field==="name"?H.name=e.t(y.code==="product.error.attribute.duplicateName"?"attributeNameDuplicate":"attributeNameRequired"):y.field?.startsWith("values")&&(H.values=e.t("attributeValuesInvalid"));c.set(H),R.set(!Object.keys(H).length),$(`${f}-${H.name?"name":H.values?"values":"submit"}`);return}e.added({attributeId:P.id,name:P.name,createVariant:P.createVariant,values:P.values.map(H=>({valueId:H.id,name:H.name}))}),document.dispatchEvent(new CustomEvent("ket:records-changed",{detail:{kind:"product.attribute",ids:[P.id]}})),K()}catch{if(g)return;R.set(!0),$(`${f}-submit`)}finally{n.set(!1)}};return{open:d,busy:n,start:(C="")=>{!e.enabled||e.disabled()||n()||(v=crypto.randomUUID(),m.set(C),d.set(!0),$(`${f}-name`))},attach:(C,S)=>{S.addEventListener("abort",()=>{g=!0}),C.addEventListener("click",B=>{let P=B.target instanceof Element?B.target.closest("button"):null;!e.enabled||!P||P.disabled||n()||e.disabled()||(P.name==="createAttribute"?(v=crypto.randomUUID(),d.set(!0),$(`${f}-name`)):P.name==="cancelAttribute"&&K())},{signal:S})},view:()=>!e.enabled||e.launcher===!1&&!d()?null:ue("div",{onInput:C=>{let S=C.target;(S instanceof HTMLInputElement||S instanceof HTMLTextAreaElement)&&(S.name==="attributeName"&&m.set(S.value),S.name==="attributeValues"&&l.set(S.value))},onSubmit:I,children:d()?ue(ve,{title:e.t("createAttribute"),description:e.t("createAttributeHint"),body:Un(Gn,{children:[R()?ue(te,{tone:"danger",title:e.t("attributeCreateFailed"),message:e.t("attributeRetryHint")}):null,ue(St,{id:f,kind:e.kind,dirty:!!m()||!!l(),fields:[{id:`${f}-name`,name:"attributeName",label:e.t("attributeName"),value:m(),required:!0,disabled:n(),error:c().name,placeholder:e.t("attributeNameExample"),span:"full"},{id:`${f}-values`,name:"attributeValues",label:e.t("attributeValues"),type:"textarea",value:l(),required:!0,disabled:n(),error:c().values,help:e.t("attributeValuesHint"),placeholder:e.t("attributeValuesExample"),span:"full"}],actions:[ue("span",{id:`${f}-submit`,tabIndex:-1,children:ue(A,{type:"submit",label:e.t("createAndAddAttribute"),variant:"primary",loading:n()})}),ue(A,{name:"cancelAttribute",label:e.t("cancelAttribute"),variant:"tertiary",disabled:n()})]})]})}):ue("span",{id:`${f}-toggle`,tabIndex:-1,children:ue(A,{name:"createAttribute",label:e.t("createAttribute"),disabled:e.disabled()})})})}};import{jsx as _,jsxs as J}from"/_ket/view/jsx-runtime.js";var Y="variantAction",at=e=>JSON.parse(JSON.stringify(e)),_n=(e,d,n={})=>(e[d]??d).replace(/\{(\w+)\}/g,(m,l)=>String(n[l]??`{${l}}`)),nt=(e,d)=>`/files/${encodeURIComponent(e)}?size=${d}`,Wn="image/avif,image/gif,image/jpeg,image/png,image/webp",$e=e=>Number.isFinite(e)?e.toLocaleString("vi-VN"):"\u2014",Se=e=>{let d=Number(e);return Number.isFinite(d)?d:0},ge=e=>/^-?\d+(\.\d+)?$/.test(e.trim()),Zn=e=>{if(!ge(e))return e.trim()||"?";let d=Se(e);return`${d>0?"+":""}${$e(d)}`},jn=3,Yn=0,Na=e=>e.map(d=>({...d,valueIds:{...d.valueIds},key:d.id,open:!1}));function Qn(e){let d=e.labels,n=(t,a)=>_n(d,t,a),m=e.editable,l=at(e.setup),c=j(l.listPrice),R=j(l.catalogue),v=j(at(l.lines)),g=j(Na(l.variants)),h=j([]),f=j(!1),$=j(null),K=j({}),I=j(null),C=j(!1),S=j(null),B=j(null),P=mt(e.lightboxLabels,e.id),T=null,H=!1,y=()=>{C.set(!0),I.set(null)},p=t=>{v.set(t),y()},M=t=>{g.set(t),y()},ae=(t,a)=>M(g().map(i=>i.key===t?{...i,...a}:i)),z=t=>g().find(a=>a.key===t),w=(t,a)=>{setTimeout(()=>{if(H||!T)return;(T.querySelector(t)??(a?T.querySelector(a):null))?.focus()},0)},oe=`[id="${e.id}-attribute-picker"] button`,Q=t=>`button[name="${Y}"][value="${t}"]`,G=()=>v().filter(t=>t.createVariant!=="no_variant"&&t.values.length>0),me=t=>{let a=[];for(let i of G()){let r=t.valueIds[i.attributeId];if(!r||!i.values.some(s=>s.valueId===r))return null;a.push(r)}return a.join(",")},ke=()=>{let t=new Map,a=new Map;return g().forEach((i,r)=>{if(!i.active)return;let s=me(i);if(s==null)return;let u=t.get(s);u===void 0?t.set(s,r):(a.set(i.key,u+1),a.set(g()[u].key,r+1))}),a},Te=()=>new Set(g().filter(t=>t.active&&me(t)==null).map(t=>t.key)),le=t=>G().flatMap(a=>{let i=a.values.find(r=>r.valueId===t.valueIds[a.attributeId]);return i?[{line:a,value:i}]:[]}),Be=t=>le(t).reduce((a,{value:i})=>a+Se(i.priceExtra),Se(c())),we=()=>{let t=G();if(!t.length)return[];let a=t.reduce((r,s)=>r.flatMap(u=>s.values.map(V=>({...u,[s.attributeId]:V.valueId}))),[{}]),i=new Set(g().filter(r=>r.active).map(me).filter(r=>r!=null));return a.filter(r=>!i.has(t.map(s=>r[s.attributeId]).join(",")))},Ke=t=>G().length?G().map(a=>a.values.find(i=>i.valueId===t[a.attributeId])?.name??n("choose",{name:a.name})).join(" / "):n("defaultVariant"),it=(t,a)=>g().filter(i=>i.active&&i.valueIds[t]===a).length,Ne=()=>v().some(t=>t.values.some(a=>!ge(a.priceExtra))),Le=t=>!ge(t.weight)||!ge(t.volume),qe=()=>g().some(Le),Ee=()=>!m||f()||fe.open()||!C()||ke().size>0||Te().size>0||Ne()||qe(),Pe=t=>{let a=R().find(i=>i.attributeId===t.attributeId)?.values??[];return[...a,...t.values.filter(i=>!a.some(r=>r.valueId===i.valueId))]},He=t=>`input[name="values|${t}[]"]`,fe=Ba({id:e.id,kind:e.kind,enabled:m&&e.createAttribute===!0,launcher:!1,returnFocus:()=>T?.querySelector(oe)?.focus(),disabled:f,t:n,added:t=>{R.set([...R(),t]),l.catalogue=[...l.catalogue,t],p([...v(),{attributeId:t.attributeId,name:t.name,createVariant:t.createVariant,displayType:"select",values:t.values.map(a=>({...a,priceExtra:"0"}))}]),w(He(t.attributeId))}}),o=t=>{let a=R().find(i=>i.attributeId===t);a&&(p([...v(),{attributeId:t,name:a.name,createVariant:a.createVariant,displayType:"select",values:[]}]),w(He(t),oe))},b=ut({id:`${e.id}-attribute-picker`,config:{name:"addAttributeId",ariaLabel:n("addAttribute"),options:[],labels:{...e.relationLabels,choose:n("addAttribute"),create:n("createAttribute")}}},{options:()=>R().filter(t=>!v().some(a=>a.attributeId===t.attributeId)).map(t=>({value:t.attributeId,label:t.name,description:t.values.map(a=>a.name).join(" \xB7 ")})),disabled:()=>!m||f()||fe.open(),resetAfterSelect:!0,onSelect:t=>o(t.value),...m&&e.createAttribute?{onCreate:t=>fe.start(t)}:{}}),E=t=>{p(v().filter(a=>a.attributeId!==t)),M(g().map(a=>{let i={...a.valueIds};return delete i[t],{...a,valueIds:i}})),h.set(h().filter(a=>a!==t)),w(oe)},O=(t,a)=>{let i=v().find(k=>k.attributeId===t);if(!i)return;let r=Pe(i),s=a.filter(k=>!i.values.some(X=>X.valueId===k));if(!s.length)return;let u=l.lines.find(k=>k.attributeId===t),V=s.flatMap(k=>{let X=r.find(lt=>lt.valueId===k);if(!X)return[];let ot=u?.values.find(lt=>lt.valueId===k)?.priceExtra??"0";return[{valueId:k,name:X.name,priceExtra:ot}]}),U=k=>r.findIndex(X=>X.valueId===k);p(v().map(k=>k.attributeId===t?{...k,values:[...k.values,...V].sort((X,ot)=>U(X.valueId)-U(ot.valueId))}:k))},F=(t,a)=>p(v().map(i=>i.attributeId===t?{...i,values:i.values.filter(r=>r.valueId!==a)}:i)),ee=(t,a,i)=>p(v().map(r=>r.attributeId===t?{...r,values:r.values.map(s=>s.valueId===a?{...s,priceExtra:i}:s)}:r)),kt=(t,a)=>({id:"",key:`new-${++Yn}`,valueIds:t,defaultCode:null,barcode:null,weight:"0",volume:"0",active:!0,images:[],open:a}),qa=()=>{let t=kt({},!0);M([...g(),t]),w(`[name^="combo|${t.key}|"], [name="field|${t.key}|defaultCode"]`)},Va=()=>{let t=we().map(a=>kt(a,!1));t.length&&(M([...g(),...t]),w(Q(`toggleRow|${t[0].key}`)))},Ja=t=>{g.set(g().map(a=>a.key===t?{...a,open:!a.open}:a))},Xa=t=>{let a=z(t);if(!a)return;if(a.id){ae(t,{active:!a.active});return}let i=g().indexOf(a),r=g()[i+1]??g()[i-1];M(g().filter(s=>s.key!==t)),w(Q(r?`toggleRow|${r.key}`:"addRow"),Q("generate"))},Tt=t=>{M(g().filter(a=>a.id||t).map(a=>({...a,active:t}))),w(Q(t?"archiveAll":"activateAll"),Q("addRow"))},wt=(t,a)=>{g.set(g().map(i=>i.key===t.key?{...i,images:a}:i)),l={...l,variants:l.variants.map(i=>i.id===t.id?{...i,images:a}:i)}},Rt=async(t,a)=>{let i=t.images.length>0;if(!(!t.id||!e.media.upload||i&&!e.media.remove)&&!(S()||!a.type.startsWith("image/"))){S.set(t.key),$.set(null);try{let r=new FormData;r.append("resModel","product.Product"),r.append("resId",t.id),r.append("resField","media"),r.append("public","false"),r.append("file",a,a.name);let s=await fetch("/files",{method:"POST",credentials:"same-origin",body:r}),u=await s.json().catch(()=>null);if(!s.ok||typeof u?.id!="string")throw new Error(n("imageFailed"));let V=await xe("product_media.attachMedia",{id:u.id,attachmentId:u.id,productId:t.id,alt:a.name,primary:!0});if(!V.ok)throw new Error(V.message??V.issues[0]?.message??n("imageFailed"));let U=t.images.find(k=>k.primary);U&&await xe("product_media.removeMedia",{id:U.mediaId}),wt(t,[{mediaId:u.id,attachmentId:u.id,alt:a.name,primary:!0},...t.images.filter(k=>k!==U)]),document.dispatchEvent(new CustomEvent("ket:records-changed",{detail:{kind:e.kind,ids:[l.templateId]}}))}catch(r){$.set(r instanceof Error?r.message:n("imageFailed"))}finally{S.set(null)}}},za=async t=>{let a=t.images[0];if(!a||!e.media.remove||S()||!globalThis.confirm(n("imageRemoveConfirm")))return;S.set(t.key),$.set(null);let i=await xe("product_media.removeMedia",{id:a.mediaId}).catch(()=>null);if(S.set(null),!i?.ok){$.set(i&&!i.ok?i.message??n("saveFailed"):n("saveFailed"));return}let r=t.images.slice(1);wt(t,r.map((s,u)=>({...s,primary:u===0})))},Ga=(t,a)=>P.open(t.images.map(i=>({src:nt(i.attachmentId,"large"),thumbnail:nt(i.attachmentId,"thumb"),alt:i.alt||n("image"),caption:i.alt})),0,a),Ct=()=>{c.set(l.listPrice),R.set(l.catalogue),v.set(at(l.lines)),g.set(Na(l.variants)),K.set({}),$.set(null),C.set(!1)},Ua=async()=>{if(Ee())return;f.set(!0),$.set(null),K.set({});let t=g(),a=await xe(e.saveFunction,{templateId:l.templateId,lines:v().map(r=>({attributeId:r.attributeId,values:r.values.map(s=>({valueId:s.valueId,priceExtra:s.priceExtra.trim()}))})),variants:t.map(r=>({id:r.id||null,valueIds:r.valueIds,defaultCode:r.defaultCode,barcode:r.barcode,weight:r.weight,volume:r.volume,active:r.active}))}).catch(()=>null);if(f.set(!1),!a){$.set(n("saveFailed"));return}if(!a.ok){let r={};for(let s of a.issues){let u=/^variants\.(\d+)(?:\.(\w+))?/.exec(s.field??""),V=u?t[Number(u[1])]:void 0;V&&(r[V.key]=s.message??s.code)}K.set(r),$.set(a.message??a.issues[0]?.message??n("saveFailed")),Object.keys(r).length&&g.set(g().map(s=>r[s.key]?{...s,open:!0}:s));return}let i=a.value.setup;i&&(l=at(i)),Ct(),I.set(n("saved",{created:a.value.created??0,archived:a.value.archived??0})),document.dispatchEvent(new CustomEvent("ket:records-changed",{detail:{kind:e.kind,ids:[l.templateId]}}))},_a=t=>{let a=t.target instanceof Element?t.target.closest("button"):null;if(!a||a.name!==Y||a.disabled||!Wa(a.value))return;let[i,r=""]=a.value.split("|");if(i==="toggleRow")Ja(r);else if(i==="selectAll"){let s=v().find(u=>u.attributeId===r);s&&O(r,Pe(s).map(u=>u.valueId)),w(He(r))}else if(i==="removeLine")E(r);else if(i==="removeRow")Xa(r);else if(i==="generate")Va();else if(i==="addRow")qa();else if(i==="activateAll")Tt(!0);else if(i==="archiveAll")Tt(!1);else if(i==="removeImage"){let s=z(r);s&&za(s)}else i==="reset"&&(Ct(),w(oe))},Wa=t=>t.startsWith("toggleRow|")||m&&!f(),Za=t=>{let a=t.target;if(!(!m||f())){if(a instanceof HTMLInputElement&&a.type==="checkbox"){let i=/^values\|(.+)\[\]$/.exec(a.name);if(!i)return;a.checked?O(i[1],[a.value]):F(i[1],a.value)}else if(a instanceof HTMLSelectElement){let[i,r,s]=a.name.split("|"),u=i==="combo"&&r?z(r):void 0;u&&s&&ae(u.key,{valueIds:{...u.valueIds,[s]:a.value}})}else if(a instanceof HTMLInputElement&&a.type==="file"){let[i,r]=a.name.split("|"),s=i==="image"&&r?z(r):void 0,u=a.files?.[0];a.value="",s&&u&&Rt(s,u)}}},ja=t=>{let a=t.target;if(!m||f()||!(a instanceof HTMLInputElement))return;let[i,r,s]=a.name.split("|");if(!(!r||!s)){if(i==="extra")ee(r,s,a.value);else if(i==="field"&&["defaultCode","barcode","weight","volume"].includes(s)){let u=s==="weight"||s==="volume";ae(r,{[s]:u?a.value:a.value||null})}}},Ya=t=>{let[a,i,r]=t.split("|");if(!i||!r)return;if(a==="extra")return v().find(u=>u.attributeId===i)?.values.find(u=>u.valueId===r)?.priceExtra;let s=z(i);if(s){if(a==="combo")return s.valueIds[r]??"";if(a==="field")return String(s[r]??"")}},Qa=()=>{if(T){for(let t of T.querySelectorAll('input[type="checkbox"][name^="values|"]')){let a=t.name.slice(7,-2),i=v().find(r=>r.attributeId===a)?.values.some(r=>r.valueId===t.value)??!1;t.checked!==i&&(t.checked=i)}for(let t of T.querySelectorAll('input[name^="extra|"], input[name^="field|"], select[name^="combo|"]')){if(t===document.activeElement&&t instanceof HTMLInputElement)continue;let a=Ya(t.name);a!==void 0&&t.value!==a&&(t.value=a)}}},en=t=>{let a=t.values.filter(r=>!ge(r.priceExtra)||Se(r.priceExtra)!==0),i=t.values.some(r=>!ge(r.priceExtra));return _("div",{"data-ui":"variant-editor-extras","data-attribute":t.attributeId,children:Fe({summary:a.length?n("priceExtrasSet",{list:a.map(r=>`${r.name} ${Zn(r.priceExtra)}`).join(", ")}):n("priceExtrasNone"),open:i||h().includes(t.attributeId),body:_("div",{"data-ui":"variant-editor-extra-fields",children:tt(t.values,r=>r.valueId,r=>pt({id:`${e.id}-extra-${t.attributeId}-${r.valueId}`,name:`extra|${t.attributeId}|${r.valueId}`,label:r.name,value:r.priceExtra,step:"any",disabled:!m||f(),help:n("appliesTo",{count:it(t.attributeId,r.valueId)}),error:ge(r.priceExtra)?null:n("invalidNumber")}))})})})},tn=t=>{let a=Pe(t),i=m?a:t.values,r=new Set(t.values.map(u=>u.valueId)),s=t.createVariant==="no_variant";return J("li",{"data-ui":"variant-editor-line","data-empty":String(!t.values.length),children:[J("div",{"data-ui":"variant-editor-line-main",children:[ht({id:`${e.id}-values-${t.attributeId}`,name:`values|${t.attributeId}`,label:t.name,span:"full",disabled:!m||f(),options:i.map(u=>({value:u.valueId,label:u.name,checked:r.has(u.valueId)})),help:s?n("noVariantHint"):t.values.length?n("valuesSelected",{count:t.values.length,total:a.length}):n("valuesNone")}),J("div",{"data-ui":"variant-editor-line-actions",children:[s?ne({label:n("noVariant"),tone:"neutral"}):null,m&&r.size<a.length?A({name:Y,value:`selectAll|${t.attributeId}`,label:n("selectAll"),variant:"tertiary",size:"compact",disabled:f()}):null,m?Je({name:Y,value:`removeLine|${t.attributeId}`,label:n("removeAttributeNamed",{name:t.name}),icon:Qe("x"),size:"compact",disabled:f()}):null]})]}),t.values.length?en(t):null]})},an=()=>ve({eyebrow:n("stepAttributes"),title:n("attributesTitle"),description:n("attributesHint"),actions:m?_("div",{"data-ui":"variant-editor-picker",id:`${e.id}-attribute-picker`,children:b.view()}):void 0,body:J("div",{"data-ui":"variant-editor-body",children:[v().length?_("ul",{"data-ui":"variant-editor-lines",children:tt(v(),t=>t.attributeId,t=>tn(t))}):de({title:n("attributesEmpty"),message:m?n("attributesEmptyHint"):""}),fe.view()]})}),Mt=(t,a)=>{let i=t.images[0];return i?gt({item:{src:nt(i.attachmentId,"large"),thumbnail:nt(i.attachmentId,"thumb"),alt:i.alt||n("image")},labels:e.lightboxLabels,size:a,onOpen:r=>Ga(t,r)}):_("span",{"data-ui":"lightbox-empty","data-size":a,children:a==="small"?"":n("image")})},nn=(t,a)=>{let i=m&&e.media.upload&&(!t.images.length||e.media.remove),r=S()===t.key;return J("div",{role:"group","aria-label":n("image"),"data-ui":"variant-editor-image","data-drag":String(B()===t.key),"data-busy":String(r),onDragOver:s=>{!i||!t.id||(s.preventDefault(),B.set(t.key))},onDragLeave:s=>{let u=s.relatedTarget;u instanceof Node&&s.currentTarget.contains(u)||B.set(null)},onDrop:s=>{if(!i||!t.id)return;s.preventDefault(),B.set(null);let u=s.dataTransfer?.files?.[0];u&&Rt(t,u)},children:[Mt(t,"large"),J("div",{"data-ui":"variant-editor-image-actions",children:[i&&t.id?xt({id:`${a}-image`,name:`image|${t.key}`,label:t.images.length?n("replaceImage"):n("uploadImage"),accept:Wn,disabled:r||f(),status:n("dropImage"),span:"full"}):null,i&&!t.id?_("small",{"data-ui":"variant-editor-hint",children:n("imageSaveFirst")}):null,m&&e.media.remove&&t.images.length?A({name:Y,value:`removeImage|${t.key}`,label:n("removeImage"),variant:"tertiary",size:"compact",disabled:r||f()}):null]})]})},Ve=(t,a,i)=>{let r=String(t[i]??""),s={id:`${a}-${i}`,name:`field|${t.key}|${i}`,label:n(i),value:r,disabled:!m||f()};return i==="weight"||i==="volume"?W({...s,type:"decimal",step:"any",error:ge(r)?null:n("invalidNumber")}):bt(s)},rn=(t,a,i)=>t.active?a.has(t.key)?ne({label:n("duplicate",{row:a.get(t.key)}),tone:"danger"}):Le(t)?ne({label:n("rowInvalid"),tone:"danger"}):i.has(t.key)?ne({label:n("incomplete"),tone:"warning"}):t.id?null:ne({label:n("new"),tone:"info"}):ne({label:n("archived"),tone:"neutral"}),on=(t,a,i,r)=>{let s=`${e.id}-row-${t.key}`,u=`${s}-title`,V=le(t).filter(({value:k})=>Se(k.priceExtra)!==0),U=K()[t.key];return J("article",{"data-ui":"variant-editor-row",role:"listitem","data-active":String(t.active),"data-open":String(t.open),"data-invalid":String(i.has(t.key)||!!U||Le(t)),children:[J("div",{"data-ui":"variant-editor-row-head",children:[_("span",{"data-ui":"variant-editor-row-number",children:`#${a+1}`}),Mt(t,"small"),J("div",{"data-ui":"variant-editor-row-title",children:[_("strong",{id:u,"data-incomplete":String(r.has(t.key)),children:Ke(t.valueIds)}),t.defaultCode?_("small",{children:t.defaultCode}):null]}),J("div",{"data-ui":"variant-editor-row-meta",children:[rn(t,i,r),_("span",{"data-ui":"variant-editor-row-price",children:$e(Be(t))})]}),J("div",{"data-ui":"variant-editor-row-actions",children:[A({name:Y,value:`toggleRow|${t.key}`,label:t.open?n("collapse"):n(m?"edit":"details"),variant:"tertiary",size:"compact",expanded:t.open,controls:t.open?s:null,describedBy:u}),m?A({name:Y,value:`removeRow|${t.key}`,label:t.id?t.active?n("archive"):n("restore"):n("remove"),variant:"tertiary",size:"compact",disabled:f(),describedBy:u}):null]})]}),U?_("p",{"data-ui":"variant-editor-row-issue",children:U}):null,t.open?J("div",{"data-ui":"variant-editor-row-body",id:s,children:[nn(t,s),J("div",{"data-ui":"variant-editor-fields",children:[tt(G(),k=>k.attributeId,k=>vt({id:`${s}-${k.attributeId}`,name:`combo|${t.key}|${k.attributeId}`,label:k.name,value:t.valueIds[k.attributeId]??"",disabled:!m||!t.active||f(),options:[{value:"",label:n("choose",{name:k.name})},...k.values.map(X=>({value:X.valueId,label:X.name}))]})),Ve(t,s,"defaultCode"),Ve(t,s,"barcode"),Ve(t,s,"weight"),Ve(t,s,"volume")]}),J("p",{"data-ui":"variant-editor-breakdown",children:[[`${n("listPrice")} ${$e(Se(c()))}`,...V.map(({line:k,value:X})=>`${k.name} ${X.name} +${$e(Se(X.priceExtra))}`)].join(" \xB7 "),` = ${$e(Be(t))}`]})]}):null]})},ln=t=>{let a=t.slice(0,jn).map(Ke),i=t.length-a.length;return te({tone:"info",title:n("missing",{count:t.length}),message:i>0?`${a.join(", ")} ${n("missingMore",{count:i})}`:a.join(", "),actions:A({name:Y,value:"generate",label:n("generate",{count:t.length}),variant:"primary",size:"compact",leading:Qe("plus"),disabled:f()})})},sn=()=>{let t=ke(),a=Te(),i=m?we():[],r=g().filter(u=>u.active).length,s=m&&(G().length>0||g().length>0);return ve({eyebrow:n("stepVariants"),title:n("variantsTitle"),description:g().length?n("variantsCount",{active:r,total:g().length}):null,actions:s?J("div",{"data-ui":"variant-editor-toolbar",children:[A({name:Y,value:"addRow",label:n("addVariant"),variant:"secondary",size:"compact",leading:Qe("plus"),disabled:f()}),g().some(u=>u.id&&!u.active)?A({name:Y,value:"activateAll",label:n("activateAll"),variant:"tertiary",size:"compact",disabled:f()}):null,r?A({name:Y,value:"archiveAll",label:n("archiveAll"),variant:"tertiary",size:"compact",disabled:f()}):null]}):void 0,body:J("div",{"data-ui":"variant-editor-body",children:[i.length?ln(i):null,g().length?_("div",{"data-ui":"variant-editor-rows",role:"list",children:tt(g(),u=>u.key,u=>on(u,g().indexOf(u),t,a))}):i.length?null:de({title:n("variantsEmpty"),message:G().length?n("variantsEmptyHint"):n("variantsNeedAttributes")})]})})},dn=()=>{let t=ke().size,a=g().filter(u=>u.id&&!u.active&&l.variants.find(V=>V.id===u.id)?.active).length,i=g().filter(u=>!u.id&&u.active).length,r=[i?n("summaryCreate",{count:i}):"",a?n("summaryArchive",{count:a}):""].filter(Boolean),s=Ne()||qe();return J("footer",{"data-ui":"variant-editor-footer",children:[_("p",{"data-ui":"variant-editor-summary","data-tone":t||s?"danger":"neutral","aria-live":"polite",children:f()?n("saving"):t?n("summaryDuplicate"):s?n("summaryInvalid"):I()??(C()?r.join(" \xB7 ")||n("summaryChanged"):"")}),m?A({name:Y,value:"reset",label:n("reset"),variant:"secondary",size:"compact",disabled:!C()||f()}):null]})},rt=ei(e.id),cn=()=>document.querySelector(`button[form="${rt}"]`);return{view:()=>J("div",{"data-ui":"variant-editor",id:e.id,"aria-busy":f()?"true":null,onClick:_a,onChange:Za,onInput:ja,children:[m?null:te({title:n("readOnly"),message:""}),$()?te({title:n("saveFailed"),message:$()??"",tone:"danger"}):null,an(),sn(),dn(),_("form",{id:rt,"data-record-dirty":C()?"true":null,hidden:!0}),P.layer()]}),mount:({root:t,lifetime:a})=>{T=t,a.addEventListener("abort",()=>{H=!0,T=null}),fe.attach(T,a);let i=T.querySelector(`[id="${e.id}-attribute-picker"]`);i&&b.mount?.({root:i,lifetime:a}),a.addEventListener("abort",()=>b.dispose?.()),P.attach(a),T.addEventListener("toggle",u=>{let V=u.target;if(!(V instanceof HTMLDetailsElement))return;let U=V.closest('[data-ui="variant-editor-extras"]')?.dataset.attribute;if(!U)return;let k=h().filter(X=>X!==U);h.set(V.open?[...k,U]:k)},{signal:a,capture:!0}),document.addEventListener("submit",u=>{!(u.target instanceof HTMLFormElement)||u.target.id!==rt||(u.preventDefault(),u.stopImmediatePropagation(),Ee()||Ua())},{signal:a,capture:!0});let r=Ka(()=>{let u=cn();u&&(u.disabled=Ee(),f()?u.setAttribute("aria-busy","true"):u.removeAttribute("aria-busy"))}),s=Ka(()=>{v(),g(),queueMicrotask(Qa)});a.addEventListener("abort",()=>{r(),s()})}}}var ei=e=>`${e}-save`,Wf=e=>Qn(e);export{Qn as createVariantEditorView,Wf as variantEditor,ei as variantEditorSaveForm};
2
+ import{each as tt,effect as Ka,signal as Z}from"/_ket/view/index.js";import{each as un}from"/_ket/view/index.js";import{Fragment as Pt,jsx as se,jsxs as mn}from"/_ket/view/jsx-runtime.js";var Lt=["action","action-leading","action-label","action-spinner","action-group"],Et=e=>mn(Pt,{children:[e.loading===!0&&se("span",{"data-ui":"action-spinner","aria-hidden":"true"}),e.loading!==!0&&e.leading!==void 0&&se("span",{"data-ui":"action-leading","aria-hidden":"true",children:e.leading}),!e.iconOnly&&se("span",{"data-ui":"action-label",children:e.label})]}),A=e=>se("button",{"data-ui":"action","data-variant":e.variant??"secondary","data-size":e.size??"default",type:e.type??"button",name:e.name??null,value:e.value??null,form:e.form??null,disabled:e.disabled===!0||e.loading===!0,"aria-busy":e.loading===!0?"true":null,"aria-describedby":e.describedBy??null,"aria-expanded":e.expanded===void 0?null:String(e.expanded),"aria-controls":e.controls??null,children:se(Et,{...e})}),Je=e=>se("button",{"data-ui":"action","data-icon-only":"true","data-variant":e.variant??"tertiary","data-size":e.size??"default",type:e.type??"button",name:e.name??null,value:e.value??null,form:e.form??null,disabled:e.disabled===!0||e.loading===!0,"aria-label":e.label,"aria-pressed":e.pressed===void 0?null:String(e.pressed),"aria-busy":e.loading===!0?"true":null,"aria-describedby":e.describedBy??null,"aria-expanded":e.expanded===void 0?null:String(e.expanded),"aria-controls":e.controls??null,title:e.label,children:se(Et,{...e,leading:e.icon,iconOnly:!0})});var be=e=>se("div",{"data-ui":"action-group",role:"group","aria-label":e.label??null,children:un(e.actions,(d,n)=>n,d=>se(Pt,{children:d}))});import{jsx as gn,jsxs as ri}from"/_ket/view/jsx-runtime.js";var Ht=["badge","tag","tag-remove","count-badge","avatar","code","text","media-label","media-label-image","media-label-copy"];var ne=e=>gn("span",{"data-ui":"badge","data-pattern":"badge","data-tone":e.tone??"neutral","data-value":e.value??"",children:e.label});import{each as si}from"/_ket/view/index.js";import{Fragment as Xe,jsx as N,jsxs as pe}from"/_ket/view/jsx-runtime.js";var Ft=["notice","notice-mark","notice-copy","notice-title","notice-message","notice-actions","empty","empty-mark","empty-title","empty-message","empty-actions","loading","loading-label"],fn={info:()=>pe(Xe,{children:[N("circle",{cx:"12",cy:"12",r:"10"}),N("path",{d:"M12 16v-4"}),N("path",{d:"M12 8h.01"})]}),positive:()=>pe(Xe,{children:[N("circle",{cx:"12",cy:"12",r:"10"}),N("path",{d:"m9 12 2 2 4-4"})]}),warning:()=>pe(Xe,{children:[N("path",{d:"m21.73 18-8-14a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"}),N("path",{d:"M12 9v4"}),N("path",{d:"M12 17h.01"})]}),danger:()=>pe(Xe,{children:[N("circle",{cx:"12",cy:"12",r:"10"}),N("path",{d:"M12 8v4"}),N("path",{d:"M12 16h.01"})]})},te=e=>pe("aside",{"data-ui":"notice","data-pattern":"notice","data-tone":e.tone??"info",role:e.tone==="danger"?"alert":"status",children:[N("span",{"data-ui":"notice-mark","aria-hidden":"true",children:N("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false",children:fn[e.tone??"info"]()})}),pe("div",{"data-ui":"notice-copy",children:[N("p",{"data-ui":"notice-title",children:e.title}),N("p",{"data-ui":"notice-message",children:e.message})]}),e.actions!==void 0&&N("div",{"data-ui":"notice-actions",children:e.actions})]}),de=e=>pe("div",{"data-ui":"empty",role:"status",children:[N("span",{"data-ui":"empty-mark","aria-hidden":"true",children:"\u25C7"}),N("p",{"data-ui":"empty-title",children:e.title}),N("p",{"data-ui":"empty-message",children:e.message}),e.actions!==void 0&&N("div",{"data-ui":"empty-actions",children:e.actions})]});import{each as dt}from"/_ket/view/index.js";import{each as Pi}from"/_ket/view/index.js";import{jsx as mi,jsxs as gi}from"/_ket/view/jsx-runtime.js";var It=["modal-layer","modal-backdrop","modal-sheet","modal-head","modal-heading","modal-title-row","modal-title","modal-description","modal-close","modal-body","modal-actions"];import{Fragment as vi,jsx as pi,jsxs as hi}from"/_ket/view/jsx-runtime.js";import{Fragment as Ri,jsx as Ti,jsxs as wi}from"/_ket/view/jsx-runtime.js";var Dt=["app-shell","app-shell-topbar","app-topbar","app-location-bar","app-location-context","app-brand","app-topbar-brand","app-topbar-context","global-search-trigger","global-search-trigger-label","global-search-shortcut","global-search-dialog","global-search","global-search-input","global-search-submit","app-sidebar","app-main","app-right-rail","page","page-context","page-header","page-heading","page-eyebrow","page-title-row","page-title","page-subline","page-status","page-actions","page-meta","page-body","record-canvas","record-content","record-section","record-section-title"];import{Fragment as Ii,jsx as he,jsxs as Ge}from"/_ket/view/jsx-runtime.js";var At=["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"];var Fe=e=>Ge("details",{"data-ui":"disclosure",open:e.open===!0?!0:void 0,children:[he("summary",{"data-ui":"disclosure-summary",children:e.summary}),he("div",{"data-ui":"disclosure-body",children:e.body})]}),ve=e=>Ge("section",{"data-ui":"section",children:[Ge("header",{"data-ui":"section-head",children:[Ge("div",{children:[!!e.eyebrow&&he("p",{"data-ui":"section-eyebrow",children:e.eyebrow}),he("h2",{"data-ui":"section-title",children:e.title}),!!e.description&&he("p",{"data-ui":"section-description",children:e.description})]}),e.actions!==void 0&&he("div",{"data-ui":"section-actions",children:e.actions})]}),he("div",{"data-ui":"section-body",children:e.body})]});import{each as xn}from"/_ket/view/index.js";import{Fragment as Sn,jsx as Ie}from"/_ket/view/jsx-runtime.js";var Ue=(e,d)=>e.control!==void 0?Ie(Sn,{children:e.control}):e.type==="textarea"?Ie("textarea",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,name:e.name,placeholder:e.placeholder??null,required:e.required===!0,disabled:e.disabled===!0,readonly:e.readOnly===!0,"aria-invalid":e.error?"true":null,"aria-describedby":d,children:String(e.value??"")}):e.type==="select"?Ie("select",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,name:e.name,required:e.required===!0,disabled:e.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":d,children:xn(e.options??[],n=>n.value,n=>Ie("option",{value:n.value,selected:String(e.value??"")===n.value,disabled:n.disabled===!0,children:n.label}))}):Ie("input",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,type:e.type==="decimal"?"number":e.type??"text",name:e.name,value:e.type==="checkbox"?"1":String(e.value??""),checked:e.type==="checkbox"&&(e.value===!0||e.value==="1"),placeholder:e.placeholder??null,required:e.required===!0,disabled:e.disabled===!0,readonly:e.readOnly===!0,min:e.min,max:e.max,"aria-invalid":e.error?"true":null,"aria-describedby":d,autocomplete:e.autocomplete??"off",step:e.type==="decimal"?e.step??"any":e.step??null});import{jsx as q,jsxs as ce}from"/_ket/view/jsx-runtime.js";var $t=["field","field-label","field-required","field-control","field-options","field-option","field-option-input","field-help","field-error"],Bt=e=>!!e.error||(e.fields?.some(Bt)??!1),W=e=>{let d=e.help?`${e.id}-help`:null,n=e.error?`${e.id}-error`:null,m=[d,n].filter(Boolean).join(" ")||null,l=ce("span",{"data-ui":"field-label",children:[e.label,e.required&&q("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]});return e.fields?ce("div",{"data-ui":"field","data-kind":"group","data-span":"full","data-invalid":String(!!e.error),children:[q(Fe,{summary:e.label,open:e.open||Bt(e),body:q("div",{"data-ui":"form-grid",children:dt(e.fields.map(c=>({...c,disabled:e.disabled||c.disabled,readOnly:e.readOnly||c.readOnly})),c=>c.id,c=>q(W,{...c}))})}),!!e.help&&q("small",{"data-ui":"field-help",id:d??void 0,children:e.help}),!!e.error&&q("small",{"data-ui":"field-error",id:n??void 0,children:e.error})]}):e.type==="checkbox-group"?ce("div",{"data-ui":"field","data-kind":"checkbox-group","data-span":e.span??"half","data-invalid":String(!!e.error),children:[ce("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&q("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),q("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"group","aria-labelledby":`${e.id}-label`,children:dt(e.options??[],c=>c.name??c.value,c=>ce("label",{"data-ui":"field-option",children:[q("input",{"data-ui":"field-option-input",type:"checkbox",name:c.name??`${e.name}[]`,value:c.value,checked:c.checked===!0,disabled:e.disabled===!0||c.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":m,autocomplete:"off"}),q("span",{children:c.label})]}))}),!!e.help&&q("small",{"data-ui":"field-help",id:d??void 0,children:e.help}),!!e.error&&q("small",{"data-ui":"field-error",id:n??void 0,children:e.error})]}):e.type==="radio"?ce("div",{"data-ui":"field","data-kind":"radio","data-span":e.span??"half","data-invalid":String(!!e.error),children:[ce("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&q("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),q("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"radiogroup","aria-labelledby":`${e.id}-label`,children:dt(e.options??[],c=>c.value,c=>ce("label",{"data-ui":"field-option",children:[q("input",{"data-ui":"field-option-input",type:"radio",name:e.name,value:c.value,checked:String(e.value??"")===c.value,required:e.required===!0,disabled:e.disabled===!0||c.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":m,autocomplete:"off"}),q("span",{children:c.label})]}))}),!!e.help&&q("small",{"data-ui":"field-help",id:d??void 0,children:e.help}),!!e.error&&q("small",{"data-ui":"field-error",id:n??void 0,children:e.error})]}):ce("label",{"data-ui":"field","data-kind":e.type??"text","data-label-hidden":e.labelHidden?"true":null,"data-selection-hidden":e.selectionHidden?"true":null,"data-span":e.span??"half","data-invalid":String(!!e.error),for:e.id,children:[e.type==="checkbox"&&Ue(e,m),l,e.type!=="checkbox"&&Ue(e,m),!!e.help&&q("small",{"data-ui":"field-help",id:d??void 0,children:e.help}),!!e.error&&q("small",{"data-ui":"field-error",id:n??void 0,children:e.error})]})};import{each as Gi}from"/_ket/view/index.js";import{jsx as _i,jsxs as Wi}from"/_ket/view/jsx-runtime.js";var Kt=["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","tabbed-view","tabbed-view-context","tab-panel"];import{jsx as Yi,jsxs as Qi}from"/_ket/view/jsx-runtime.js";var Nt=["progress","progress-label","progress-value","progress-track","progress-bar"];import{each as ar}from"/_ket/view/index.js";import{Fragment as or,jsx as ir,jsxs as rr}from"/_ket/view/jsx-runtime.js";var qt=["menu","menu-trigger","menu-trigger-count","menu-panel","menu-search","menu-search-input","menu-label","menu-separator","menu-item","menu-item-leading","menu-item-copy","menu-item-check","menu-item-shortcut"];import{jsx as dr,jsxs as cr}from"/_ket/view/jsx-runtime.js";var Vt=["popover","popover-trigger","popover-panel","popover-close"];import{jsx as gr,jsxs as fr}from"/_ket/view/jsx-runtime.js";var Jt=["tooltip","tooltip-trigger","tooltip-content"];import{jsx as yr}from"/_ket/view/jsx-runtime.js";var Xt=["dialog","confirm-dialog-message"];import{each as kr}from"/_ket/view/index.js";import{jsx as wr,jsxs as Rr}from"/_ket/view/jsx-runtime.js";var zt=["toast-region","toast","toast-copy","toast-title","toast-message","toast-actions"];import{jsx as Lr}from"/_ket/view/jsx-runtime.js";var Gt=["spinner","visually-hidden"];import{each as Hr}from"/_ket/view/index.js";import{jsx as Ir}from"/_ket/view/jsx-runtime.js";var Ut=["skeleton","skeleton-line"];import{each as Re,effect as kn,signal as ie}from"/_ket/view/index.js";import{jsx as x,jsxs as D}from"/_ket/view/jsx-runtime.js";var _t=["relation-select","relation-native","relation-trigger","relation-value","relation-caret","relation-chips","relation-chip","relation-chip-clear","relation-menu","relation-search","relation-options","relation-option","relation-footer","relation-empty","relation-editor","relation-dialog-toolbar","relation-search-field","relation-search-icon","relation-dialog-list","relation-dialog-row","relation-dialog-main","relation-dialog-meta","relation-dialog-actions"],ye=e=>Array.isArray(e)?e:[],L=e=>e==null?"":String(e),ct=async(e,d,n)=>{let m=await fetch(`/_ket/fn/${encodeURIComponent(e)}`,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json"},body:JSON.stringify(d),signal:n}),l=await m.json();if(!m.ok||l.ok===!1){let c=ye(l.errors)[0];throw new Error(L(c?.message??c?.code??l.message??`HTTP ${m.status}`))}return l.value};function ut(e,d={}){let{id:n,config:m}=e,l=m.labels,c=m.manager,R=m.multiple===!0,v=ie(R?ye(m.values).map(L).filter(Boolean):[L(m.value)].filter(Boolean)),g=()=>v()[0]??"",h=o=>v().includes(L(o)),f=ie(ye(m.options)),$=()=>d.options?.()??f(),K=()=>d.disabled?.()??m.disabled===!0,I=ie(!1),C=ie(!1),S=ie(""),B=ie([]),P=ie(!1),T=ie(""),H=ie(null),y=ie(""),p=null,M,ae=!1,z=o=>L(o[c?.idField??"id"]),w=o=>L(o[c?.labelField??"name"])||l.noRecords,oe=o=>L(o[c?.descriptionField??"ref"]),Q=()=>f().find(o=>L(o.value)===g())?.label??l.choose,G=()=>{let o=S().trim().toLocaleLowerCase(),b=o?$().filter(E=>`${L(E.label)} ${L(E.description)}`.toLocaleLowerCase().includes(o)):$();return d.options?b:b.slice(0,7)},me=(o,b,E="")=>{if(K())return;let O=L(o);if(f().some(F=>L(F.value)===O)||f.set([...f(),{value:O,label:L(b),description:L(E)}]),R){v.set(h(O)?v().filter(F=>F!==O):[...v(),O]),d.onSelect?.({value:O,label:L(b),description:L(E)});return}v.set(O?[O]:[]),I.set(!1),C.set(!1),S.set(""),H.set(null),y.set(""),d.resetAfterSelect&&v.set([]),d.onSelect?.({value:O,label:L(b),description:L(E)})},ke=o=>{v.set(v().filter(b=>b!==L(o)))},Te=o=>f().find(b=>L(b.value)===L(o))?.label??L(o),le=async()=>{if(!c?.listFunction)return;p?.abort();let o=new AbortController;p=o,P.set(!0),T.set("");try{let b={...c.listInput??{}};b[c.searchParam??"search"]=S().trim(),b[c.limitParam??"limit"]=c.limit??80;let E=await ct(c.listFunction,b,o.signal),O=new Set(ye(c.excludeIds).map(L));B.set(ye(E).filter(F=>!O.has(z(F))))}catch(b){if(ae||b instanceof Error&&b.name==="AbortError")return;T.set(b instanceof Error?b.message:l.loadError)}finally{p===o&&P.set(!1)}},Be=async()=>{I.set(!1),C.set(!0),H.set(null),y.set(""),await le()},we=()=>{C.set(!1),H.set(null),y.set(""),T.set("")},Ke=o=>{o.currentTarget instanceof HTMLInputElement&&(S.set(o.currentTarget.value),clearTimeout(M),M=setTimeout(le,180))},it=async o=>{if(o.preventDefault(),!c?.saveFunction||!(o.currentTarget instanceof HTMLFormElement))return;let b=H(),E=b?.id||crypto.randomUUID(),O={...c.saveDefaults??{},id:E};for(let[F,ee]of new FormData(o.currentTarget).entries())O[F]=L(ee);P.set(!0),T.set("");try{await ct(c.saveFunction,O);let F=L(O[c.labelField??"name"]);if(!b?.id){me(E,F),R&&(H.set(null),await le());return}f.set(f().map(ee=>L(ee.value)===E?{...ee,label:F||ee.label}:ee)),H.set(null),await le()}catch(F){T.set(F instanceof Error?F.message:l.loadError)}finally{P.set(!1)}},Ne=async o=>{let b=z(o);if(y()!==b){y.set(b);return}if(c?.removeFunction){P.set(!0),T.set("");try{await ct(c.removeFunction,{...c.removeDefaults??{},id:b}),ke(b),f.set(f().filter(E=>L(E.value)!==b)),y.set(""),await le()}catch(E){T.set(E instanceof Error?E.message:l.loadError)}finally{P.set(!1)}}},Le=o=>{let b=H()?.row??c?.saveDefaults??{},E=L(b[o.name]),O=`${n}-relation-editor-${o.name}`;return D("label",{"data-ui":"form-field","data-span":"full",htmlFor:O,children:[D("span",{"data-ui":"form-label",children:[o.label,o.required?D("span",{"data-ui":"form-required","aria-hidden":"true",children:[" ","*"]}):null]}),o.type==="select"?x("select",{"data-ui":"form-control",id:O,name:o.name,required:o.required===!0,children:Re(ye(o.options),F=>F.value,F=>x("option",{value:F.value,selected:L(F.value)===E,children:F.label}))}):x("input",{"data-ui":"form-control",id:O,type:o.type??"text",name:o.name,value:E,autocomplete:"off",required:o.required===!0})]})},qe=()=>D("form",{"data-ui":"relation-editor",onSubmit:it,children:[x("div",{"data-ui":"form-grid",children:Re(ye(c?.fields),o=>o.name,Le)}),x("div",{"data-ui":"form-actions",children:D("div",{"data-ui":"action-group",children:[x("button",{"data-ui":"action","data-variant":"primary",type:"submit",disabled:P(),children:l.save}),x("button",{"data-ui":"action","data-variant":"tertiary",type:"button",onClick:()=>H.set(null),children:l.cancel})]})})]}),Ee=o=>{let b=z(o),E=oe(o);return D("li",{"data-ui":"relation-dialog-row","data-selected":String(h(b)),children:[D("button",{"data-ui":"relation-dialog-main",type:"button","aria-pressed":R?String(h(b)):null,onClick:()=>me(b,w(o),E),children:[x("strong",{children:w(o)}),E?x("small",{"data-ui":"relation-dialog-meta",children:E}):null]}),D("div",{"data-ui":"relation-dialog-actions",children:[x("button",{"data-ui":"action","data-size":"compact","data-variant":h(b)?"primary":"secondary",type:"button",onClick:()=>me(b,w(o),E),children:h(b)?l.chosen:l.select}),c?.saveFunction?x("button",{"data-ui":"action","data-size":"compact","data-variant":"tertiary",type:"button",onClick:()=>H.set({id:b,row:o}),children:l.edit}):null,c?.removeFunction?x("button",{"data-ui":"action","data-size":"compact","data-variant":"destructive",type:"button",onClick:()=>Ne(o),children:y()===b?l.confirmRemove:l.remove}):null]})]})},Pe=()=>D("div",{"data-ui":"modal-layer","data-presentation":"dialog",children:[x("button",{"data-ui":"modal-backdrop",type:"button","aria-label":l.close,onClick:we,children:x("span",{children:l.close})}),D("section",{"data-ui":"modal-sheet",role:"dialog","aria-modal":"true","aria-labelledby":`${n}-relation-title`,children:[D("header",{"data-ui":"modal-head",children:[x("h2",{"data-ui":"modal-title",id:`${n}-relation-title`,children:l.dialogTitle}),x("button",{"data-ui":"modal-close",type:"button","aria-label":l.close,title:l.close,onClick:we,children:"\xD7"})]}),D("div",{"data-ui":"modal-body",children:[D("div",{"data-ui":"relation-dialog-toolbar",children:[D("div",{"data-ui":"relation-search-field",children:[x("span",{"data-ui":"relation-search-icon","aria-hidden":"true",children:D("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false",children:[x("circle",{cx:"11",cy:"11",r:"8"}),x("path",{d:"m21 21-4.3-4.3"})]})}),x("input",{"data-ui":"field-control",type:"search",value:S(),autocomplete:"off",placeholder:l.search,"aria-label":l.search,onInput:Ke})]}),c?.saveFunction?x("button",{"data-ui":"action","data-variant":"primary",type:"button",onClick:()=>H.set({id:"",row:c.saveDefaults??{}}),children:l.create}):null]}),T()?D("aside",{"data-ui":"notice","data-tone":"danger",role:"alert",children:[D("div",{"data-ui":"notice-copy",children:[x("p",{"data-ui":"notice-title",children:l.loadError}),x("p",{"data-ui":"notice-message",children:T()})]}),x("button",{"data-ui":"action","data-variant":"secondary",type:"button",onClick:le,children:l.retry})]}):null,H()?qe():null,P()?x("p",{"data-ui":"relation-empty",role:"status",children:l.loading}):null,!P()&&!H()?B().length?x("ul",{"data-ui":"relation-dialog-list",children:Re(B(),z,Ee)}):x("p",{"data-ui":"relation-empty",children:l.noRecords}):null]})]})]}),He=o=>{if(!(o instanceof KeyboardEvent)||o.key!=="Escape"||!I()&&!C())return;o.preventDefault(),o.stopPropagation();let b=o.currentTarget?.querySelector('[data-ui="relation-trigger"]');I.set(!1),we(),b?.focus()},fe=o=>{o.preventDefault(),I.set(!0),o.currentTarget instanceof HTMLSelectElement&&o.currentTarget.nextElementSibling?.focus()};return{view:()=>D("div",{"data-ui":"relation-select",role:"group","aria-label":m.ariaLabel,onKeydown:He,children:[D("select",{"data-ui":"relation-native",name:m.name,required:m.required===!0,disabled:K(),tabindex:"-1","aria-hidden":"true",onInvalid:fe,children:[x("option",{value:"",selected:!v().length}),R?v().length?x("option",{value:v().join(","),selected:!0,children:v().map(Te).join(", ")}):null:Re(f().filter(o=>L(o.value)),o=>o.value,o=>x("option",{value:o.value,selected:L(o.value)===g(),children:o.label}))]}),D("button",{"data-ui":"relation-trigger","data-empty":String(!v().length),type:"button","aria-haspopup":"listbox","aria-label":m.ariaLabel,"aria-expanded":String(I()),"aria-controls":`${n}-relation-menu`,disabled:K(),onClick:()=>I.set(!I()),children:[x("span",{"data-ui":"relation-value",children:R?l.choose:Q()}),x("span",{"data-ui":"relation-caret","aria-hidden":"true",children:"\u25BE"})]}),R&&v().length?x("ul",{"data-ui":"relation-chips","aria-label":l.chosen,children:Re(v(),o=>o,o=>D("li",{"data-ui":"relation-chip",children:[x("span",{children:Te(o)}),x("button",{"data-ui":"relation-chip-clear",type:"button","aria-label":`${l.clear}: ${Te(o)}`,title:l.clear,disabled:K(),onClick:()=>ke(o),children:"\xD7"})]}))}):null,I()?D("div",{"data-ui":"relation-menu",id:`${n}-relation-menu`,children:[x("input",{"data-ui":"relation-search",type:"search",value:S(),autocomplete:"off",placeholder:l.search,"aria-label":l.search,onInput:o=>{o.currentTarget instanceof HTMLInputElement&&S.set(o.currentTarget.value)}}),x("div",{"data-ui":"relation-options",role:"listbox",children:G().length?Re(G(),o=>o.value,o=>D("button",{"data-ui":"relation-option",type:"button",role:"option","data-selected":String(h(o.value)),"aria-selected":String(h(o.value)),onClick:()=>me(o.value,o.label,o.description),children:[x("span",{children:o.label}),o.description?x("small",{children:o.description}):null]})):x("p",{"data-ui":"relation-empty",children:l.noRecords})}),c||!d.options||d.onCreate?D("footer",{"data-ui":"relation-footer",children:[c||!d.options?x("button",{"data-ui":"action","data-variant":"tertiary",type:"button",onClick:Be,children:l.more}):null,d.onCreate?x("button",{"data-ui":"action","data-variant":"tertiary",type:"button",disabled:K(),onClick:()=>{if(K())return;let o=S().trim();I.set(!1),S.set(""),d.onCreate?.(o)},children:l.create}):null]}):null]}):null,C()?Pe():null]}),mount:({root:o,lifetime:b})=>{let E=!0,O=kn(()=>{if(v(),E){E=!1;return}queueMicrotask(()=>{if(ae)return;let F=[...o.querySelectorAll('[data-ui="relation-native"]')][0];F instanceof HTMLSelectElement&&F.dispatchEvent(new Event("change",{bubbles:!0}))})});b.addEventListener("abort",O),document.addEventListener("click",F=>{if(!I())return;let ee=F.target;ee instanceof Node&&o.contains(ee)||I.set(!1)},{signal:b})},dispose:()=>{ae=!0,clearTimeout(M),p?.abort()}}}import{each as Kr,signal as Oe}from"/_ket/view/index.js";import{jsx as j,jsxs as Zt}from"/_ket/view/jsx-runtime.js";var Yt=["lightbox","lightbox-thumbs","lightbox-thumb","lightbox-empty","lightbox-layer","lightbox-backdrop","lightbox-toolbar","lightbox-counter","lightbox-tool","lightbox-stage","lightbox-image","lightbox-nav","lightbox-caption"],re=1,Wt=4,We=.5,Qt=(e,d)=>e.replace(/\{(\w+)\}/g,(n,m)=>String(d[m]??`{${m}}`)),jt=(e,d,n)=>Math.min(n,Math.max(d,e));function mt(e,d="lightbox"){let n=Oe([]),m=Oe(!1),l=Oe(0),c=Oe(re),R=Oe({x:0,y:0}),v=null,g=new Map,h=null,f=()=>{c.set(re),R.set({x:0,y:0})},$=(y,p,M)=>{y.length&&(v=M instanceof HTMLElement?M:null,n.set(y),l.set(jt(p,0,y.length-1)),f(),m.set(!0),queueMicrotask(()=>{typeof document>"u"||document.getElementById(`${d}-lightbox-close`)?.focus()}))},K=()=>{m()&&(m.set(!1),f(),g.clear(),h=null,v?.focus(),v=null)},I=y=>{let p=n().length;p<2||(l.set((l()+y+p)%p),f())},C=y=>{let p=jt(y,re,Wt);c.set(p),p===re&&R.set({x:0,y:0})},S=()=>{let y=[...g.values()];return y.length?{x:y.reduce((p,M)=>p+M.x,0)/y.length,y:y.reduce((p,M)=>p+M.y,0)/y.length}:{x:0,y:0}},B=()=>{let[y,p]=[...g.values()];return y&&p?Math.hypot(y.x-p.x,y.y-p.y):0},P=(y,p)=>{if(p&&h&&g.size===1&&c()===re&&h.distance===null){let M=y.clientX-h.start.x;Math.abs(M)>60&&Math.abs(M)>Math.abs(y.clientY-h.start.y)&&I(M<0?1:-1)}if(g.delete(y.pointerId),y.currentTarget?.releasePointerCapture?.(y.pointerId),!g.size){let M=h;M&&p?setTimeout(()=>h===M?h=null:null,0):h=null;return}h&&(h={...h,start:S(),origin:R(),zoom:c(),distance:null})};return{open:$,close:K,isOpen:()=>m(),layer:()=>{let y=n(),p=y[l()];if(!m()||!p)return null;let M=c(),ae=R(),z=y.length>1;return Zt("div",{"data-ui":"lightbox-layer",role:"dialog","aria-modal":"true","aria-label":p.alt,id:`${d}-lightbox`,children:[j("div",{"data-ui":"lightbox-backdrop","aria-hidden":"true",onClick:K}),Zt("div",{"data-ui":"lightbox-toolbar",children:[j("span",{"data-ui":"lightbox-counter","aria-live":"polite",children:z?Qt(e.counter,{index:l()+1,total:y.length}):""}),j("button",{type:"button","data-ui":"lightbox-tool","data-tool":"zoom-out","aria-label":e.zoomOut,title:e.zoomOut,disabled:M<=re,onClick:()=>C(M-We),children:"\u2212"}),j("button",{type:"button","data-ui":"lightbox-tool","data-tool":"zoom-in","aria-label":e.zoomIn,title:e.zoomIn,disabled:M>=Wt,onClick:()=>C(M+We),children:"+"}),j("button",{type:"button","data-ui":"lightbox-tool","data-tool":"close",id:`${d}-lightbox-close`,"aria-label":e.close,title:e.close,onClick:K,children:"\xD7"})]}),j("div",{role:"presentation","data-ui":"lightbox-stage","data-zoomed":String(M>re),onClick:w=>{w.target===w.currentTarget&&!h?.moved&&K()},onWheel:w=>{w.preventDefault(),C(c()*(w.deltaY<0?1.15:1/1.15))},onPointerDown:w=>{g.set(w.pointerId,{x:w.clientX,y:w.clientY}),w.currentTarget.setPointerCapture?.(w.pointerId),h={start:S(),origin:R(),zoom:c(),distance:g.size>1?B():null,moved:h?.moved===!0&&g.size>1}},onPointerMove:w=>{if(!h||!g.has(w.pointerId))return;g.set(w.pointerId,{x:w.clientX,y:w.clientY});let oe=S(),Q=oe.x-h.start.x,G=oe.y-h.start.y;Math.abs(Q)+Math.abs(G)>4&&(h.moved=!0),g.size>1&&h.distance&&(C(h.zoom*(B()/h.distance)),h.moved=!0),c()>re&&R.set({x:h.origin.x+Q,y:h.origin.y+G})},onPointerUp:w=>P(w,!0),onPointerCancel:w=>P(w,!1),children:j("img",{"data-ui":"lightbox-image",src:p.src,alt:p.alt,draggable:"false",style:`transform: translate(${ae.x}px, ${ae.y}px) scale(${M})`,onClick:()=>{h?.moved||C(c()>re?re:2)}})}),z?j("button",{type:"button","data-ui":"lightbox-nav","data-direction":"previous","aria-label":e.previous,title:e.previous,onClick:()=>I(-1),children:"\u2039"}):null,z?j("button",{type:"button","data-ui":"lightbox-nav","data-direction":"next","aria-label":e.next,title:e.next,onClick:()=>I(1),children:"\u203A"}):null,p.caption?j("p",{"data-ui":"lightbox-caption",children:p.caption}):null]})},attach:y=>{document.addEventListener("keydown",p=>{if(m()){if(p.key==="Escape")K();else if(p.key==="ArrowLeft")I(-1);else if(p.key==="ArrowRight")I(1);else if(p.key==="+"||p.key==="=")C(c()+We);else if(p.key==="-")C(c()-We);else return;p.preventDefault(),p.stopImmediatePropagation()}},{signal:y,capture:!0}),y.addEventListener("abort",()=>{m.set(!1),g.clear(),h=null})}}}var gt=e=>j("button",{type:"button","data-ui":"lightbox-thumb","data-size":e.size??"medium","aria-label":Qt(e.labels.open,{alt:e.item.alt}),"aria-haspopup":"dialog",onClick:d=>e.onOpen(d.currentTarget),children:j("img",{src:e.item.thumbnail??e.item.src,alt:"",loading:"lazy",decoding:"async"})});import{each as Xr,signal as zr}from"/_ket/view/index.js";import{Fragment as Wr,jsx as _r,jsxs as Ur}from"/_ket/view/jsx-runtime.js";var ea=["search-filter","search-filter-bar","search-filter-section-toggle","search-filter-sheet","search-filter-clear","search-filter-icon","search-filter-field","search-filter-input","search-filter-facets","search-filter-facet","search-filter-facet-remove","search-filter-suggestions","search-filter-suggestion","search-filter-toggle","search-filter-columns","search-filter-column","search-filter-column-title","search-filter-empty","search-filter-grouping","search-filter-grouping-head","search-filter-grouping-list","search-filter-grouping-item","search-filter-grouping-order","search-filter-grouping-label","search-filter-grouping-actions","search-filter-grouping-action","search-filter-grouping-clear","search-filter-grouping-add-label","custom-filter","custom-filter-row","custom-filter-add","custom-group-by","favorite-list","favorite-item","favorite-item-default","favorite-item-remove","favorite-save","favorite-save-toggle","favorite-save-row"];import{each as to,effect as ao,signal as no}from"/_ket/view/index.js";import{jsx as Yr}from"/_ket/view/jsx-runtime.js";var ta=["formatted-date","formatted-number","formatted-money"];import{Fragment as so,jsx as co,jsxs as uo}from"/_ket/view/jsx-runtime.js";var na=["ket-table","kt-scroll","kt-selection-target","kt-grid","kt-select-col","kt-select-all","kt-col","kt-sort-button","kt-sort-icon","kt-row","kt-cell","kt-person","kt-select-cell","kt-row-select","kt-row-link","kt-group-row","kt-group-cell","kt-group-toggle","kt-group-indent","kt-group-count","kt-group-pager","kt-pager","kt-pager-label","kt-pager-button","kt-select-persisted","kt-caption","kt-tools"];var Co=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","summary",'[tabindex]:not([tabindex="-1"])'].join(",");var Ln=['[data-ui="timeframe-menu"]','[data-ui="view-settings"]'],Mo=Ln.map(e=>`${e}[open]`).join(", ");import{jsx as ft,jsxs as ia}from"/_ket/view/jsx-runtime.js";var Ce=(e,d)=>e?.find(n=>n.path===d)?.message??null,De=e=>{let d=e.help?`${e.id}-help`:null,n=e.error?`${e.id}-error`:null;return ia("div",{"data-ui":"field","data-kind":e.kind,"data-span":e.span??"half","data-invalid":String(!!e.error),children:[ia("label",{"data-ui":"field-label",for:e.id,children:[e.label,e.required&&ft("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),e.control,!!e.help&&ft("small",{"data-ui":"field-help",id:d??void 0,children:e.help}),!!e.error&&ft("small",{"data-ui":"field-error",id:n??void 0,children:e.error})]})},Ae=(e,d,n)=>[d?`${e}-help`:null,n?`${e}-error`:null].filter(Boolean).join(" ")||null;import{jsx as Ze,jsxs as Oo}from"/_ket/view/jsx-runtime.js";var ra=["switch-control","switch-track"],je=e=>({...e,error:e.error??Ce(e.issues,e.name)}),bt=e=>Ze(W,{...je(e),type:"text"});var pt=e=>Ze(W,{...je({...e,step:e.step??"0.01"}),type:"decimal"});var ht=e=>Ze(W,{...je(e),type:"checkbox-group"});var vt=e=>Ze(W,{...je(e),type:"select"});import{each as $o}from"/_ket/view/index.js";import{Fragment as Vo,jsx as No,jsxs as qo}from"/_ket/view/jsx-runtime.js";var oa=["combobox","combobox-input-row","combobox-toggle","combobox-listbox","combobox-option","combobox-empty","tag-picker"];import{Fragment as Yo,jsx as jo,jsxs as Zo}from"/_ket/view/jsx-runtime.js";var la=["date-picker","date-range","date-inputs","date-control-row","date-tools","date-range-error","date-calendar","date-calendar-head","date-calendar-title","date-calendar-body","date-field-control","date-range-preset","date-boundary","date-calendar-months","date-month","date-month-title","date-grid","date-weekday","date-cell","date-day","date-calendar-footer","date-calendar-status"];import{jsx as yt,jsxs as Hn}from"/_ket/view/jsx-runtime.js";var sa=["file-upload","drop-zone","upload-status"],En=(e,d,n)=>Hn("div",{"data-ui":n?"drop-zone":"file-upload",children:[yt("input",{"data-ui":"field-control",id:e.id,type:"file",name:e.name,accept:e.accept,multiple:e.multiple===!0,required:e.required===!0,disabled:e.disabled===!0,"aria-invalid":d?"true":null,"aria-describedby":Ae(e.id,e.help,d)}),e.status!==void 0&&yt("div",{"data-ui":"upload-status",children:e.status})]}),Pn=(e,d)=>{let n=e.error??Ce(e.issues,e.name);return yt(De,{...e,kind:d?"drop-zone":"file-upload",error:n,control:En(e,n,d)})};var xt=e=>Pn(e,!0);import{jsx as rl}from"/_ket/view/jsx-runtime.js";var da=["relation-picker"];import{each as sl}from"/_ket/view/index.js";import{jsx as ml,jsxs as gl}from"/_ket/view/jsx-runtime.js";var ca=["search-bar","filter-bar","applied-filters","applied-filter","saved-views","saved-view","view-settings","view-settings-options"];import{jsx as hl,jsxs as vl}from"/_ket/view/jsx-runtime.js";var ua=["inline-edit","inline-edit-value","inline-edit-form","inline-edit-actions"];import{each as Hl}from"/_ket/view/index.js";import{each as Tl}from"/_ket/view/index.js";import{Fragment as Ll,jsx as Cl,jsxs as Ml}from"/_ket/view/jsx-runtime.js";var ma=["list-chrome","list-chrome-row","list-search","list-search-label","list-search-input","list-search-submit","list-filter-menus","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 Dl,jsxs as Al}from"/_ket/view/jsx-runtime.js";var ga=["resource-list","resource-list-item","resource-list-select","resource-list-link"];import{each as Kl}from"/_ket/view/index.js";import{jsx as ql,jsxs as Vl}from"/_ket/view/jsx-runtime.js";var fa=["data-grid-scroll","data-grid","data-grid-cap","data-grid-cell"];import{each as zl}from"/_ket/view/index.js";import{jsx as Ul,jsxs as _l}from"/_ket/view/jsx-runtime.js";var ba=["tree","tree-item","tree-link","tree-grid","tree-grid-row"];import{each as Zl}from"/_ket/view/index.js";import{jsx as Ql,jsxs as es}from"/_ket/view/jsx-runtime.js";var pa=["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 ns}from"/_ket/view/index.js";import{jsx as rs,jsxs as os}from"/_ket/view/jsx-runtime.js";var ha=["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 ds}from"/_ket/view/index.js";import{jsx as us,jsxs as ms}from"/_ket/view/jsx-runtime.js";var va=["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 bs}from"/_ket/view/index.js";import{jsx as vs,jsxs as ys}from"/_ket/view/jsx-runtime.js";var ya=["description-list","key-value","key-value-label","key-value-value","person","person-body","avatar-group","status"];import{each as ks}from"/_ket/view/index.js";import{jsx as Ms,jsxs as Ls}from"/_ket/view/jsx-runtime.js";var Sa=["record-summary","record-summary-main","record-actions","record-rail"];import{each as Hs}from"/_ket/view/index.js";import{jsx as Ds,jsxs as As}from"/_ket/view/jsx-runtime.js";var ka=["activity-timeline","activity-item","activity-marker","audit-log","audit-item"];import{each as Ks}from"/_ket/view/index.js";import{jsx as Vs,jsxs as Js}from"/_ket/view/jsx-runtime.js";var Ta=["attachments","attachment","media-gallery","media-item"];import{each as Gs}from"/_ket/view/index.js";import{Fragment as js,jsx as _s,jsxs as Ws}from"/_ket/view/jsx-runtime.js";var wa=["app-navigation","navigation-trigger","navigation-toggle","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 td}from"/_ket/view/index.js";import{Fragment as ld,jsx as rd,jsxs as od}from"/_ket/view/jsx-runtime.js";var Ra=["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{Fragment as pd,jsx as bd,jsxs as hd}from"/_ket/view/jsx-runtime.js";var Ca=["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-tools","list-page-toolbar","list-page-controls","list-page-status","list-page-body","list-page-footer"];import{jsx as Sd,jsxs as kd}from"/_ket/view/jsx-runtime.js";var Ma=["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-actions","record-page-meta","record-page-controller","record-page-navigation","record-page-layout","record-page-body","record-page-aside"];var La=["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-actions","form-page-meta","form-page-controller","form-page-navigation","form-page-layout","form-page-body","form-page-aside"];import{jsx as Hd,jsxs as Fd}from"/_ket/view/jsx-runtime.js";var Ea=["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-actions","dashboard-page-meta","dashboard-page-body"];var Pa=["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-actions","board-page-meta","board-page-toolbar","board-page-controls","board-page-body"];import{each as qd}from"/_ket/view/index.js";import{jsx as Jd,jsxs as Xd}from"/_ket/view/jsx-runtime.js";var Ha=["pipeline","pipeline-step","pipeline-arrow","pipeline-step-label","pipeline-step-value","pipeline-step-node"];import{each as Wd}from"/_ket/view/index.js";import{jsx as Qd,jsxs as ec}from"/_ket/view/jsx-runtime.js";var Fa=["record-form","form-errors","form-grid","form-actions"];import{each as sc}from"/_ket/view/index.js";import{jsx as mc,jsxs as gc}from"/_ket/view/jsx-runtime.js";var Ia=["reorder-list","reorder-list-value","reorder-list-rows","reorder-list-row","reorder-list-content","reorder-list-controls"];var Oa={actions:Lt,feedback:Ft,fields:$t,status:Ht,navigation:Kt,progress:Nt,menu:qt,reorderList:Ia,popover:Vt,tooltip:Jt,dialog:Xt,toast:zt,spinner:Gt,skeleton:Ut,lightbox:Yt,relationSelect:_t,searchFilter:ea,ketTable:na,scalarFields:ra,combobox:oa,dateTime:la,upload:sa,relationPicker:da,listControls:ca,inlineEdit:ua,resourceList:ga,dataGrid:fa,tree:ba,matrix:pa,barChart:ha,timeframe:va,recordDisplay:ya,formattedValues:ta,recordComposition:Sa,activity:ka,media:Ta,layouts:At,shell:Dt,appNavigation:wa,table:Ra,listChrome:ma,listPage:Ca,formPage:La,recordPage:Ma,dashboardPage:Ea,boardPage:Pa,modal:It,pipeline:Ha,form:Fa},Kn=[...new Set(Object.values(Oa).flat())].sort(),Nn=Object.freeze(Object.fromEntries(Object.entries(Oa).map(([e,d])=>[e,[...d]])));import{trustedMarkup as Vn}from"/_ket/view/index.js";var Da={package:'<path d="M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z" /> <path d="M12 22V12" /> <polyline points="3.29 7 12 12 20.71 7" /> <path d="m7.5 4.27 9 5.15" />',warehouse:'<path d="M18 21V10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v11" /> <path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 1.132-1.803l7.95-3.974a2 2 0 0 1 1.837 0l7.948 3.974A2 2 0 0 1 22 8z" /> <path d="M6 13h12" /> <path d="M6 17h12" />',"shopping-cart":'<circle cx="8" cy="21" r="1" /> <circle cx="19" cy="21" r="1" /> <path d="M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12" />',globe:'<circle cx="12" cy="12" r="10" /> <path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" /> <path d="M2 12h20" />',users:'<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" /> <path d="M16 3.128a4 4 0 0 1 0 7.744" /> <path d="M22 21v-2a4 4 0 0 0-3-3.87" /> <circle cx="9" cy="7" r="4" />',"layout-grid":'<rect width="7" height="7" x="3" y="3" rx="1" /> <rect width="7" height="7" x="14" y="3" rx="1" /> <rect width="7" height="7" x="14" y="14" rx="1" /> <rect width="7" height="7" x="3" y="14" rx="1" />',settings:'<path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915" /> <circle cx="12" cy="12" r="3" />',"file-text":'<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" /> <path d="M14 2v4a2 2 0 0 0 2 2h4" /> <path d="M10 9H8" /> <path d="M16 13H8" /> <path d="M16 17H8" />',"message-circle":'<path d="M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719" />',"check-circle":'<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14" /> <path d="m22 4-10 10.01-3-3" />',send:'<path d="m22 2-7 20-4-9-9-4Z" /> <path d="M22 2 11 13" />',download:'<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" /> <path d="m7 10 5 5 5-5" /> <path d="M12 15V3" />',headphones:'<path d="M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3" />',calendar:'<path d="M8 2v4" /> <path d="M16 2v4" /> <rect width="18" height="18" x="3" y="4" rx="2" /> <path d="M3 10h18" />',"contact-round":'<path d="M16 2v2" /> <path d="M17.915 22a6 6 0 0 0-12 0" /> <path d="M8 2v2" /> <circle cx="12" cy="12" r="4" /> <rect x="3" y="4" width="18" height="18" rx="2" />',handshake:'<path d="m11 17 2 2a1 1 0 1 0 3-3" /> <path d="m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4" /> <path d="m21 3 1 11h-2" /> <path d="M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3" /> <path d="M3 4h8" />',"layout-dashboard":'<rect width="7" height="9" x="3" y="3" rx="1" /> <rect width="7" height="5" x="14" y="3" rx="1" /> <rect width="7" height="9" x="14" y="12" rx="1" /> <rect width="7" height="5" x="3" y="16" rx="1" />',store:'<path d="M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5" /> <path d="M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244" /> <path d="M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05" />',"receipt-text":'<path d="M13 16H8" /> <path d="M14 8H8" /> <path d="M16 12H8" /> <path d="M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z" />',truck:'<path d="M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2" /> <path d="M15 18H9" /> <path d="M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14" /> <circle cx="17" cy="18" r="2" /> <circle cx="7" cy="18" r="2" />',"shopping-bag":'<path d="M16 10a4 4 0 0 1-8 0" /> <path d="M3.103 6.034h17.794" /> <path d="M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z" />',factory:'<path d="M12 16h.01" /> <path d="M16 16h.01" /> <path d="M3 19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-.769-.422l-4.462 2.844A.5.5 0 0 1 15 10.5v-2a.5.5 0 0 0-.769-.422L9.77 10.922A.5.5 0 0 1 9 10.5V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z" /> <path d="M8 16h.01" />',fingerprint:'<path d="M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4" /> <path d="M14 13.12c0 2.38 0 6.38-1 8.88" /> <path d="M17.29 21.02c.12-.6.43-2.3.5-3.02" /> <path d="M2 12a10 10 0 0 1 18-6" /> <path d="M2 16h.01" /> <path d="M21.8 16c.2-2 .131-5.354 0-6" /> <path d="M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2" /> <path d="M8.65 22c.21-.66.45-1.32.57-2" /> <path d="M9 6.8a6 6 0 0 1 9 5.2v2" />',wallet:'<path d="M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1" /> <path d="M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4" />',banknote:'<rect width="20" height="12" x="2" y="6" rx="2" /> <circle cx="12" cy="12" r="2" /> <path d="M6 12h.01" /> <path d="M18 12h.01" />',hotel:'<path d="M10 22v-6.57" /> <path d="M12 11h.01" /> <path d="M12 7h.01" /> <path d="M14 15.43V22" /> <path d="M15 16a5 5 0 0 0-6 0" /> <path d="M16 11h.01" /> <path d="M16 7h.01" /> <path d="M8 11h.01" /> <path d="M8 7h.01" /> <rect x="4" y="2" width="16" height="20" rx="2" />',tag:'<path d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z" /> <circle cx="7.5" cy="7.5" r=".5" fill="currentColor" />',search:'<path d="m21 21-4.34-4.34" /> <circle cx="11" cy="11" r="8" />',"chevron-down":'<path d="m6 9 6 6 6-6" />',"chevron-right":'<path d="m9 18 6-6-6-6" />',"chevron-left":'<path d="m15 18-6-6 6-6" />',plus:'<path d="M5 12h14" /> <path d="M12 5v14" />',"more-horizontal":'<circle cx="5" cy="12" r="1" fill="currentColor" /> <circle cx="12" cy="12" r="1" fill="currentColor" /> <circle cx="19" cy="12" r="1" fill="currentColor" />',x:'<path d="M18 6 6 18" /> <path d="m6 6 12 12" />',list:'<path d="M3 5h.01" /> <path d="M3 12h.01" /> <path d="M3 19h.01" /> <path d="M8 5h13" /> <path d="M8 12h13" /> <path d="M8 19h13" />',"sliders-horizontal":'<path d="M10 5H3" /> <path d="M12 19H3" /> <path d="M14 3v4" /> <path d="M16 17v4" /> <path d="M21 12h-9" /> <path d="M21 19h-5" /> <path d="M21 5h-7" /> <path d="M8 10v4" /> <path d="M8 12H3" />',"grip-vertical":'<circle cx="9" cy="5" r="1" fill="currentColor" /> <circle cx="9" cy="12" r="1" fill="currentColor" /> <circle cx="9" cy="19" r="1" fill="currentColor" /> <circle cx="15" cy="5" r="1" fill="currentColor" /> <circle cx="15" cy="12" r="1" fill="currentColor" /> <circle cx="15" cy="19" r="1" fill="currentColor" />',pencil:'<path d="M12 20h9" /> <path d="M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z" />',"trash-2":'<path d="M3 6h18" /> <path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" /> <path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" /> <path d="M10 11v6" /> <path d="M14 11v6" />',"refresh-cw":'<path d="M21 12a9 9 0 0 0-15.38-6.36L3 8" /> <path d="M3 3v5h5" /> <path d="M3 12a9 9 0 0 0 15.38 6.36L21 16" /> <path d="M16 16h5v5" />',"arrow-up":'<path d="m18 15-6-6-6 6" />',"arrow-down":'<path d="m6 9 6 6 6-6" />',check:'<path d="M20 6 9 17l-5-5" />',"alert-triangle":'<path d="m21.73 18-8-14a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" /> <path d="M12 9v4" /> <path d="M12 17h.01" />',info:'<circle cx="12" cy="12" r="10" /> <path d="M12 16v-4" /> <path d="M12 8h.01" />',bell:'<path d="M10.268 21a2 2 0 0 0 3.464 0" /> <path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" />',mail:'<path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" /> <rect x="2" y="4" width="20" height="16" rx="2" />',moon:'<path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z" />',sun:'<circle cx="12" cy="12" r="4" /> <path d="M12 2v2" /> <path d="M12 20v2" /> <path d="m4.93 4.93 1.42 1.42" /> <path d="m17.66 17.66 1.41 1.41" /> <path d="M2 12h2" /> <path d="M20 12h2" /> <path d="m6.34 17.66-1.41 1.41" /> <path d="m19.07 4.93-1.41 1.41" />',"log-out":'<path d="m16 17 5-5-5-5" /> <path d="M21 12H9" /> <path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" />',"building-2":'<path d="M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18" /> <path d="M6 12H4a2 2 0 0 0-2 2v8h20v-8a2 2 0 0 0-2-2h-2" /> <path d="M10 6h4" /> <path d="M10 10h4" /> <path d="M10 14h4" /> <path d="M10 18h4" />'},Jn='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-ui="icon" aria-hidden="true">';var Qe=e=>Vn(e&&Da[e]?Jn+Da[e]+"</svg>":"");import{signal as Lf}from"/_ket/view/index.js";import{jsx as lf}from"/_ket/view/jsx-runtime.js";import{jsx as et,jsxs as Xn}from"/_ket/view/jsx-runtime.js";var St=e=>Xn("form",{"data-ui":"record-form",method:"post",action:"","data-record-kind":e.kind,"data-record-dropzone":e.dropzone?"":null,id:e.id,"data-record-dirty":e.dirty===!0?"true":null,children:[e.command?et("input",{type:"hidden",name:Aa,value:e.command,autocomplete:"off"}):"",Object.entries(e.hidden??{}).map(([d,n])=>et("input",{type:"hidden",name:d,value:n,autocomplete:"off"})),e.fields.length?et("div",{"data-ui":"form-grid",children:e.fields.map(d=>W(d))}):null,e.body,e.actions?.length?et("div",{"data-ui":"form-actions",children:be({actions:e.actions})}):""]});import{Fragment as Of,jsx as Af,jsxs as Df}from"/_ket/view/jsx-runtime.js";var $a=e=>{let d=e??{};return(Array.isArray(d.errors)?d.errors:Array.isArray(d.issues)?d.issues:[]).map(m=>{let l=m??{},c=Array.isArray(l.path)?l.path.join("."):null;return{field:typeof l.field=="string"?l.field:c,code:String(l.code??"invalid"),message:typeof l.message=="string"?l.message:null,params:l.params&&typeof l.params=="object"?l.params:{}}})},zn=async(e,d,n={})=>{let m=new URL(e,"https://record.invalid");if(m.origin!=="https://record.invalid"||!e.startsWith("/")||e.startsWith("//"))throw new Error("Record commands require a same-origin route");let l=await fetch(m.pathname+m.search,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json",...n.idempotencyKey?{"idempotency-key":n.idempotencyKey}:{}},body:JSON.stringify(d),signal:n.signal}),c=await l.json().catch(()=>({}));if(!l.ok||c.ok===!1)return{ok:!1,issues:$a(c.error??c),message:l.status>=500?null:c.error?.message??c.message??null,status:l.status};let R=c.value;return R&&typeof R=="object"&&R.ok===!1?{ok:!1,issues:$a(R),message:null,status:l.status}:{ok:!0,value:c.value}},xe=(e,d,n={})=>zn(`/_ket/fn/${encodeURIComponent(e)}`,d,n);var Hf=Object.freeze({"recordModal.close":"Close","recordModal.loading":"Loading\u2026","recordModal.loadFailed":"The record could not be read.","recordModal.notFound":"The record is gone or you cannot see it.","recordModal.retry":"Retry","recordModal.errorTitle":"Not saved","recordModal.saveFailed":"That did not work. Try again.","recordModal.savedTitle":"Saved","recordModal.saved":"The change is in.","recordModal.unsaved":"Discard what you typed?","recordModal.uploadFailed":"The file could not be uploaded. Try again."});var Aa="__command";var Ff=["a[href]","button:not(:disabled)",'input:not(:disabled):not([type="hidden"])',"select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", ");import{signal as Me}from"/_ket/view/index.js";import{Fragment as Gn,jsx as ue,jsxs as Un}from"/_ket/view/jsx-runtime.js";var Ba=e=>{let d=Me(!1),n=Me(!1),m=Me(""),l=Me(""),c=Me({}),R=Me(!1),v="",g=!1,h=new Map,f=`${e.id}-create-attribute`,$=C=>queueMicrotask(()=>{if(g)return;let S=document.getElementById(C);(S?.querySelector("button")??S)?.focus()}),K=()=>{d.set(!1),m.set(""),l.set(""),c.set({}),R.set(!1),h.clear(),e.returnFocus?queueMicrotask(e.returnFocus):$(`${f}-toggle`)},I=async C=>{if(C.preventDefault(),C.stopPropagation(),!e.enabled||e.disabled()||n())return;let S=l().split(/\r?\n/u).map(T=>T.trim()).filter(Boolean),B={};if(m().trim()||(B.name=e.t("attributeNameRequired")),S.length||(B.values=e.t("attributeValuesRequired")),new Set(S.map(T=>T.normalize("NFC").toLowerCase())).size!==S.length&&(B.values=e.t("attributeValuesDuplicate")),c.set(B),R.set(!1),Object.keys(B).length){$(`${f}-${B.name?"name":"values"}`);return}let P={id:v,name:m().trim(),displayType:"select",createVariant:"always",values:S.map(T=>(h.has(T)||h.set(T,crypto.randomUUID()),{id:h.get(T),name:T}))};n.set(!0);try{let T=await xe("product.saveAttributeDraft",P);if(g)return;if(!T.ok){let H={};for(let y of T.issues)y.field==="name"?H.name=e.t(y.code==="product.error.attribute.duplicateName"?"attributeNameDuplicate":"attributeNameRequired"):y.field?.startsWith("values")&&(H.values=e.t("attributeValuesInvalid"));c.set(H),R.set(!Object.keys(H).length),$(`${f}-${H.name?"name":H.values?"values":"submit"}`);return}e.added({attributeId:P.id,name:P.name,createVariant:P.createVariant,values:P.values.map(H=>({valueId:H.id,name:H.name}))}),document.dispatchEvent(new CustomEvent("ket:records-changed",{detail:{kind:"product.attribute",ids:[P.id]}})),K()}catch{if(g)return;R.set(!0),$(`${f}-submit`)}finally{n.set(!1)}};return{open:d,busy:n,start:(C="")=>{!e.enabled||e.disabled()||n()||(v=crypto.randomUUID(),m.set(C),d.set(!0),$(`${f}-name`))},attach:(C,S)=>{S.addEventListener("abort",()=>{g=!0}),C.addEventListener("click",B=>{let P=B.target instanceof Element?B.target.closest("button"):null;!e.enabled||!P||P.disabled||n()||e.disabled()||(P.name==="createAttribute"?(v=crypto.randomUUID(),d.set(!0),$(`${f}-name`)):P.name==="cancelAttribute"&&K())},{signal:S})},view:()=>!e.enabled||e.launcher===!1&&!d()?null:ue("div",{onInput:C=>{let S=C.target;(S instanceof HTMLInputElement||S instanceof HTMLTextAreaElement)&&(S.name==="attributeName"&&m.set(S.value),S.name==="attributeValues"&&l.set(S.value))},onSubmit:I,children:d()?ue(ve,{title:e.t("createAttribute"),description:e.t("createAttributeHint"),body:Un(Gn,{children:[R()?ue(te,{tone:"danger",title:e.t("attributeCreateFailed"),message:e.t("attributeRetryHint")}):null,ue(St,{id:f,kind:e.kind,dirty:!!m()||!!l(),fields:[{id:`${f}-name`,name:"attributeName",label:e.t("attributeName"),value:m(),required:!0,disabled:n(),error:c().name,placeholder:e.t("attributeNameExample"),span:"full"},{id:`${f}-values`,name:"attributeValues",label:e.t("attributeValues"),type:"textarea",value:l(),required:!0,disabled:n(),error:c().values,help:e.t("attributeValuesHint"),placeholder:e.t("attributeValuesExample"),span:"full"}],actions:[ue("span",{id:`${f}-submit`,tabIndex:-1,children:ue(A,{type:"submit",label:e.t("createAndAddAttribute"),variant:"primary",loading:n()})}),ue(A,{name:"cancelAttribute",label:e.t("cancelAttribute"),variant:"tertiary",disabled:n()})]})]})}):ue("span",{id:`${f}-toggle`,tabIndex:-1,children:ue(A,{name:"createAttribute",label:e.t("createAttribute"),disabled:e.disabled()})})})}};import{jsx as _,jsxs as J}from"/_ket/view/jsx-runtime.js";var Y="variantAction",at=e=>JSON.parse(JSON.stringify(e)),_n=(e,d,n={})=>(e[d]??d).replace(/\{(\w+)\}/g,(m,l)=>String(n[l]??`{${l}}`)),nt=(e,d)=>`/files/${encodeURIComponent(e)}?size=${d}`,Wn="image/avif,image/gif,image/jpeg,image/png,image/webp",$e=e=>Number.isFinite(e)?e.toLocaleString("vi-VN"):"\u2014",Se=e=>{let d=Number(e);return Number.isFinite(d)?d:0},ge=e=>/^-?\d+(\.\d+)?$/.test(e.trim()),jn=e=>{if(!ge(e))return e.trim()||"?";let d=Se(e);return`${d>0?"+":""}${$e(d)}`},Zn=3,Yn=0,Na=e=>e.map(d=>({...d,valueIds:{...d.valueIds},key:d.id,open:!1}));function Qn(e){let d=e.labels,n=(t,a)=>_n(d,t,a),m=e.editable,l=at(e.setup),c=Z(l.listPrice),R=Z(l.catalogue),v=Z(at(l.lines)),g=Z(Na(l.variants)),h=Z([]),f=Z(!1),$=Z(null),K=Z({}),I=Z(null),C=Z(!1),S=Z(null),B=Z(null),P=mt(e.lightboxLabels,e.id),T=null,H=!1,y=()=>{C.set(!0),I.set(null)},p=t=>{v.set(t),y()},M=t=>{g.set(t),y()},ae=(t,a)=>M(g().map(i=>i.key===t?{...i,...a}:i)),z=t=>g().find(a=>a.key===t),w=(t,a)=>{setTimeout(()=>{if(H||!T)return;(T.querySelector(t)??(a?T.querySelector(a):null))?.focus()},0)},oe=`[id="${e.id}-attribute-picker"] button`,Q=t=>`button[name="${Y}"][value="${t}"]`,G=()=>v().filter(t=>t.createVariant!=="no_variant"&&t.values.length>0),me=t=>{let a=[];for(let i of G()){let r=t.valueIds[i.attributeId];if(!r||!i.values.some(s=>s.valueId===r))return null;a.push(r)}return a.join(",")},ke=()=>{let t=new Map,a=new Map;return g().forEach((i,r)=>{if(!i.active)return;let s=me(i);if(s==null)return;let u=t.get(s);u===void 0?t.set(s,r):(a.set(i.key,u+1),a.set(g()[u].key,r+1))}),a},Te=()=>new Set(g().filter(t=>t.active&&me(t)==null).map(t=>t.key)),le=t=>G().flatMap(a=>{let i=a.values.find(r=>r.valueId===t.valueIds[a.attributeId]);return i?[{line:a,value:i}]:[]}),Be=t=>le(t).reduce((a,{value:i})=>a+Se(i.priceExtra),Se(c())),we=()=>{let t=G();if(!t.length)return[];let a=t.reduce((r,s)=>r.flatMap(u=>s.values.map(V=>({...u,[s.attributeId]:V.valueId}))),[{}]),i=new Set(g().filter(r=>r.active).map(me).filter(r=>r!=null));return a.filter(r=>!i.has(t.map(s=>r[s.attributeId]).join(",")))},Ke=t=>G().length?G().map(a=>a.values.find(i=>i.valueId===t[a.attributeId])?.name??n("choose",{name:a.name})).join(" / "):n("defaultVariant"),it=(t,a)=>g().filter(i=>i.active&&i.valueIds[t]===a).length,Ne=()=>v().some(t=>t.values.some(a=>!ge(a.priceExtra))),Le=t=>!ge(t.weight)||!ge(t.volume),qe=()=>g().some(Le),Ee=()=>!m||f()||fe.open()||!C()||ke().size>0||Te().size>0||Ne()||qe(),Pe=t=>{let a=R().find(i=>i.attributeId===t.attributeId)?.values??[];return[...a,...t.values.filter(i=>!a.some(r=>r.valueId===i.valueId))]},He=t=>`input[name="values|${t}[]"]`,fe=Ba({id:e.id,kind:e.kind,enabled:m&&e.createAttribute===!0,launcher:!1,returnFocus:()=>T?.querySelector(oe)?.focus(),disabled:f,t:n,added:t=>{R.set([...R(),t]),l.catalogue=[...l.catalogue,t],p([...v(),{attributeId:t.attributeId,name:t.name,createVariant:t.createVariant,displayType:"select",values:t.values.map(a=>({...a,priceExtra:"0"}))}]),w(He(t.attributeId))}}),o=t=>{let a=R().find(i=>i.attributeId===t);a&&(p([...v(),{attributeId:t,name:a.name,createVariant:a.createVariant,displayType:"select",values:[]}]),w(He(t),oe))},b=ut({id:`${e.id}-attribute-picker`,config:{name:"addAttributeId",ariaLabel:n("addAttribute"),options:[],labels:{...e.relationLabels,choose:n("addAttribute"),create:n("createAttribute")}}},{options:()=>R().filter(t=>!v().some(a=>a.attributeId===t.attributeId)).map(t=>({value:t.attributeId,label:t.name,description:t.values.map(a=>a.name).join(" \xB7 ")})),disabled:()=>!m||f()||fe.open(),resetAfterSelect:!0,onSelect:t=>o(t.value),...m&&e.createAttribute?{onCreate:t=>fe.start(t)}:{}}),E=t=>{p(v().filter(a=>a.attributeId!==t)),M(g().map(a=>{let i={...a.valueIds};return delete i[t],{...a,valueIds:i}})),h.set(h().filter(a=>a!==t)),w(oe)},O=(t,a)=>{let i=v().find(k=>k.attributeId===t);if(!i)return;let r=Pe(i),s=a.filter(k=>!i.values.some(X=>X.valueId===k));if(!s.length)return;let u=l.lines.find(k=>k.attributeId===t),V=s.flatMap(k=>{let X=r.find(lt=>lt.valueId===k);if(!X)return[];let ot=u?.values.find(lt=>lt.valueId===k)?.priceExtra??"0";return[{valueId:k,name:X.name,priceExtra:ot}]}),U=k=>r.findIndex(X=>X.valueId===k);p(v().map(k=>k.attributeId===t?{...k,values:[...k.values,...V].sort((X,ot)=>U(X.valueId)-U(ot.valueId))}:k))},F=(t,a)=>p(v().map(i=>i.attributeId===t?{...i,values:i.values.filter(r=>r.valueId!==a)}:i)),ee=(t,a,i)=>p(v().map(r=>r.attributeId===t?{...r,values:r.values.map(s=>s.valueId===a?{...s,priceExtra:i}:s)}:r)),kt=(t,a)=>({id:"",key:`new-${++Yn}`,valueIds:t,defaultCode:null,barcode:null,weight:"0",volume:"0",active:!0,images:[],open:a}),qa=()=>{let t=kt({},!0);M([...g(),t]),w(`[name^="combo|${t.key}|"], [name="field|${t.key}|defaultCode"]`)},Va=()=>{let t=we().map(a=>kt(a,!1));t.length&&(M([...g(),...t]),w(Q(`toggleRow|${t[0].key}`)))},Ja=t=>{g.set(g().map(a=>a.key===t?{...a,open:!a.open}:a))},Xa=t=>{let a=z(t);if(!a)return;if(a.id){ae(t,{active:!a.active});return}let i=g().indexOf(a),r=g()[i+1]??g()[i-1];M(g().filter(s=>s.key!==t)),w(Q(r?`toggleRow|${r.key}`:"addRow"),Q("generate"))},Tt=t=>{M(g().filter(a=>a.id||t).map(a=>({...a,active:t}))),w(Q(t?"archiveAll":"activateAll"),Q("addRow"))},wt=(t,a)=>{g.set(g().map(i=>i.key===t.key?{...i,images:a}:i)),l={...l,variants:l.variants.map(i=>i.id===t.id?{...i,images:a}:i)}},Rt=async(t,a)=>{let i=t.images.length>0;if(!(!t.id||!e.media.upload||i&&!e.media.remove)&&!(S()||!a.type.startsWith("image/"))){S.set(t.key),$.set(null);try{let r=new FormData;r.append("resModel","product.Product"),r.append("resId",t.id),r.append("resField","media"),r.append("public","false"),r.append("file",a,a.name);let s=await fetch("/files",{method:"POST",credentials:"same-origin",body:r}),u=await s.json().catch(()=>null);if(!s.ok||typeof u?.id!="string")throw new Error(n("imageFailed"));let V=await xe("product_media.attachMedia",{id:u.id,attachmentId:u.id,productId:t.id,alt:a.name,primary:!0});if(!V.ok)throw new Error(V.message??V.issues[0]?.message??n("imageFailed"));let U=t.images.find(k=>k.primary);U&&await xe("product_media.removeMedia",{id:U.mediaId}),wt(t,[{mediaId:u.id,attachmentId:u.id,alt:a.name,primary:!0},...t.images.filter(k=>k!==U)]),document.dispatchEvent(new CustomEvent("ket:records-changed",{detail:{kind:e.kind,ids:[l.templateId]}}))}catch(r){$.set(r instanceof Error?r.message:n("imageFailed"))}finally{S.set(null)}}},za=async t=>{let a=t.images[0];if(!a||!e.media.remove||S()||!globalThis.confirm(n("imageRemoveConfirm")))return;S.set(t.key),$.set(null);let i=await xe("product_media.removeMedia",{id:a.mediaId}).catch(()=>null);if(S.set(null),!i?.ok){$.set(i&&!i.ok?i.message??n("saveFailed"):n("saveFailed"));return}let r=t.images.slice(1);wt(t,r.map((s,u)=>({...s,primary:u===0})))},Ga=(t,a)=>P.open(t.images.map(i=>({src:nt(i.attachmentId,"large"),thumbnail:nt(i.attachmentId,"thumb"),alt:i.alt||n("image"),caption:i.alt})),0,a),Ct=()=>{c.set(l.listPrice),R.set(l.catalogue),v.set(at(l.lines)),g.set(Na(l.variants)),K.set({}),$.set(null),C.set(!1)},Ua=async()=>{if(Ee())return;f.set(!0),$.set(null),K.set({});let t=g(),a=await xe(e.saveFunction,{templateId:l.templateId,lines:v().map(r=>({attributeId:r.attributeId,values:r.values.map(s=>({valueId:s.valueId,priceExtra:s.priceExtra.trim()}))})),variants:t.map(r=>({id:r.id||null,valueIds:r.valueIds,defaultCode:r.defaultCode,barcode:r.barcode,weight:r.weight,volume:r.volume,active:r.active}))}).catch(()=>null);if(f.set(!1),!a){$.set(n("saveFailed"));return}if(!a.ok){let r={};for(let s of a.issues){let u=/^variants\.(\d+)(?:\.(\w+))?/.exec(s.field??""),V=u?t[Number(u[1])]:void 0;V&&(r[V.key]=s.message??s.code)}K.set(r),$.set(a.message??a.issues[0]?.message??n("saveFailed")),Object.keys(r).length&&g.set(g().map(s=>r[s.key]?{...s,open:!0}:s));return}let i=a.value.setup;i&&(l=at(i)),Ct(),I.set(n("saved",{created:a.value.created??0,archived:a.value.archived??0})),document.dispatchEvent(new CustomEvent("ket:records-changed",{detail:{kind:e.kind,ids:[l.templateId]}}))},_a=t=>{let a=t.target instanceof Element?t.target.closest("button"):null;if(!a||a.name!==Y||a.disabled||!Wa(a.value))return;let[i,r=""]=a.value.split("|");if(i==="toggleRow")Ja(r);else if(i==="selectAll"){let s=v().find(u=>u.attributeId===r);s&&O(r,Pe(s).map(u=>u.valueId)),w(He(r))}else if(i==="removeLine")E(r);else if(i==="removeRow")Xa(r);else if(i==="generate")Va();else if(i==="addRow")qa();else if(i==="activateAll")Tt(!0);else if(i==="archiveAll")Tt(!1);else if(i==="removeImage"){let s=z(r);s&&za(s)}else i==="reset"&&(Ct(),w(oe))},Wa=t=>t.startsWith("toggleRow|")||m&&!f(),ja=t=>{let a=t.target;if(!(!m||f())){if(a instanceof HTMLInputElement&&a.type==="checkbox"){let i=/^values\|(.+)\[\]$/.exec(a.name);if(!i)return;a.checked?O(i[1],[a.value]):F(i[1],a.value)}else if(a instanceof HTMLSelectElement){let[i,r,s]=a.name.split("|"),u=i==="combo"&&r?z(r):void 0;u&&s&&ae(u.key,{valueIds:{...u.valueIds,[s]:a.value}})}else if(a instanceof HTMLInputElement&&a.type==="file"){let[i,r]=a.name.split("|"),s=i==="image"&&r?z(r):void 0,u=a.files?.[0];a.value="",s&&u&&Rt(s,u)}}},Za=t=>{let a=t.target;if(!m||f()||!(a instanceof HTMLInputElement))return;let[i,r,s]=a.name.split("|");if(!(!r||!s)){if(i==="extra")ee(r,s,a.value);else if(i==="field"&&["defaultCode","barcode","weight","volume"].includes(s)){let u=s==="weight"||s==="volume";ae(r,{[s]:u?a.value:a.value||null})}}},Ya=t=>{let[a,i,r]=t.split("|");if(!i||!r)return;if(a==="extra")return v().find(u=>u.attributeId===i)?.values.find(u=>u.valueId===r)?.priceExtra;let s=z(i);if(s){if(a==="combo")return s.valueIds[r]??"";if(a==="field")return String(s[r]??"")}},Qa=()=>{if(T){for(let t of T.querySelectorAll('input[type="checkbox"][name^="values|"]')){let a=t.name.slice(7,-2),i=v().find(r=>r.attributeId===a)?.values.some(r=>r.valueId===t.value)??!1;t.checked!==i&&(t.checked=i)}for(let t of T.querySelectorAll('input[name^="extra|"], input[name^="field|"], select[name^="combo|"]')){if(t===document.activeElement&&t instanceof HTMLInputElement)continue;let a=Ya(t.name);a!==void 0&&t.value!==a&&(t.value=a)}}},en=t=>{let a=t.values.filter(r=>!ge(r.priceExtra)||Se(r.priceExtra)!==0),i=t.values.some(r=>!ge(r.priceExtra));return _("div",{"data-ui":"variant-editor-extras","data-attribute":t.attributeId,children:Fe({summary:a.length?n("priceExtrasSet",{list:a.map(r=>`${r.name} ${jn(r.priceExtra)}`).join(", ")}):n("priceExtrasNone"),open:i||h().includes(t.attributeId),body:_("div",{"data-ui":"variant-editor-extra-fields",children:tt(t.values,r=>r.valueId,r=>pt({id:`${e.id}-extra-${t.attributeId}-${r.valueId}`,name:`extra|${t.attributeId}|${r.valueId}`,label:r.name,value:r.priceExtra,step:"any",disabled:!m||f(),help:n("appliesTo",{count:it(t.attributeId,r.valueId)}),error:ge(r.priceExtra)?null:n("invalidNumber")}))})})})},tn=t=>{let a=Pe(t),i=m?a:t.values,r=new Set(t.values.map(u=>u.valueId)),s=t.createVariant==="no_variant";return J("li",{"data-ui":"variant-editor-line","data-empty":String(!t.values.length),children:[J("div",{"data-ui":"variant-editor-line-main",children:[ht({id:`${e.id}-values-${t.attributeId}`,name:`values|${t.attributeId}`,label:t.name,span:"full",disabled:!m||f(),options:i.map(u=>({value:u.valueId,label:u.name,checked:r.has(u.valueId)})),help:s?n("noVariantHint"):t.values.length?n("valuesSelected",{count:t.values.length,total:a.length}):n("valuesNone")}),J("div",{"data-ui":"variant-editor-line-actions",children:[s?ne({label:n("noVariant"),tone:"neutral"}):null,m&&r.size<a.length?A({name:Y,value:`selectAll|${t.attributeId}`,label:n("selectAll"),variant:"tertiary",size:"compact",disabled:f()}):null,m?Je({name:Y,value:`removeLine|${t.attributeId}`,label:n("removeAttributeNamed",{name:t.name}),icon:Qe("x"),size:"compact",disabled:f()}):null]})]}),t.values.length?en(t):null]})},an=()=>ve({eyebrow:n("stepAttributes"),title:n("attributesTitle"),description:n("attributesHint"),actions:m?_("div",{"data-ui":"variant-editor-picker",id:`${e.id}-attribute-picker`,children:b.view()}):void 0,body:J("div",{"data-ui":"variant-editor-body",children:[v().length?_("ul",{"data-ui":"variant-editor-lines",children:tt(v(),t=>t.attributeId,t=>tn(t))}):de({title:n("attributesEmpty"),message:m?n("attributesEmptyHint"):""}),fe.view()]})}),Mt=(t,a)=>{let i=t.images[0];return i?gt({item:{src:nt(i.attachmentId,"large"),thumbnail:nt(i.attachmentId,"thumb"),alt:i.alt||n("image")},labels:e.lightboxLabels,size:a,onOpen:r=>Ga(t,r)}):_("span",{"data-ui":"lightbox-empty","data-size":a,children:a==="small"?"":n("image")})},nn=(t,a)=>{let i=m&&e.media.upload&&(!t.images.length||e.media.remove),r=S()===t.key;return J("div",{role:"group","aria-label":n("image"),"data-ui":"variant-editor-image","data-drag":String(B()===t.key),"data-busy":String(r),onDragOver:s=>{!i||!t.id||(s.preventDefault(),B.set(t.key))},onDragLeave:s=>{let u=s.relatedTarget;u instanceof Node&&s.currentTarget.contains(u)||B.set(null)},onDrop:s=>{if(!i||!t.id)return;s.preventDefault(),B.set(null);let u=s.dataTransfer?.files?.[0];u&&Rt(t,u)},children:[Mt(t,"large"),J("div",{"data-ui":"variant-editor-image-actions",children:[i&&t.id?xt({id:`${a}-image`,name:`image|${t.key}`,label:t.images.length?n("replaceImage"):n("uploadImage"),accept:Wn,disabled:r||f(),status:n("dropImage"),span:"full"}):null,i&&!t.id?_("small",{"data-ui":"variant-editor-hint",children:n("imageSaveFirst")}):null,m&&e.media.remove&&t.images.length?A({name:Y,value:`removeImage|${t.key}`,label:n("removeImage"),variant:"tertiary",size:"compact",disabled:r||f()}):null]})]})},Ve=(t,a,i)=>{let r=String(t[i]??""),s={id:`${a}-${i}`,name:`field|${t.key}|${i}`,label:n(i),value:r,disabled:!m||f()};return i==="weight"||i==="volume"?W({...s,type:"decimal",step:"any",error:ge(r)?null:n("invalidNumber")}):bt(s)},rn=(t,a,i)=>t.active?a.has(t.key)?ne({label:n("duplicate",{row:a.get(t.key)}),tone:"danger"}):Le(t)?ne({label:n("rowInvalid"),tone:"danger"}):i.has(t.key)?ne({label:n("incomplete"),tone:"warning"}):t.id?null:ne({label:n("new"),tone:"info"}):ne({label:n("archived"),tone:"neutral"}),on=(t,a,i,r)=>{let s=`${e.id}-row-${t.key}`,u=`${s}-title`,V=le(t).filter(({value:k})=>Se(k.priceExtra)!==0),U=K()[t.key];return J("article",{"data-ui":"variant-editor-row",role:"listitem","data-active":String(t.active),"data-open":String(t.open),"data-invalid":String(i.has(t.key)||!!U||Le(t)),children:[J("div",{"data-ui":"variant-editor-row-head",children:[_("span",{"data-ui":"variant-editor-row-number",children:`#${a+1}`}),Mt(t,"small"),J("div",{"data-ui":"variant-editor-row-title",children:[_("strong",{id:u,"data-incomplete":String(r.has(t.key)),children:Ke(t.valueIds)}),t.defaultCode?_("small",{children:t.defaultCode}):null]}),J("div",{"data-ui":"variant-editor-row-meta",children:[rn(t,i,r),_("span",{"data-ui":"variant-editor-row-price",children:$e(Be(t))})]}),J("div",{"data-ui":"variant-editor-row-actions",children:[A({name:Y,value:`toggleRow|${t.key}`,label:t.open?n("collapse"):n(m?"edit":"details"),variant:"tertiary",size:"compact",expanded:t.open,controls:t.open?s:null,describedBy:u}),m?A({name:Y,value:`removeRow|${t.key}`,label:t.id?t.active?n("archive"):n("restore"):n("remove"),variant:"tertiary",size:"compact",disabled:f(),describedBy:u}):null]})]}),U?_("p",{"data-ui":"variant-editor-row-issue",children:U}):null,t.open?J("div",{"data-ui":"variant-editor-row-body",id:s,children:[nn(t,s),J("div",{"data-ui":"variant-editor-fields",children:[tt(G(),k=>k.attributeId,k=>vt({id:`${s}-${k.attributeId}`,name:`combo|${t.key}|${k.attributeId}`,label:k.name,value:t.valueIds[k.attributeId]??"",disabled:!m||!t.active||f(),options:[{value:"",label:n("choose",{name:k.name})},...k.values.map(X=>({value:X.valueId,label:X.name}))]})),Ve(t,s,"defaultCode"),Ve(t,s,"barcode"),Ve(t,s,"weight"),Ve(t,s,"volume")]}),J("p",{"data-ui":"variant-editor-breakdown",children:[[`${n("listPrice")} ${$e(Se(c()))}`,...V.map(({line:k,value:X})=>`${k.name} ${X.name} +${$e(Se(X.priceExtra))}`)].join(" \xB7 "),` = ${$e(Be(t))}`]})]}):null]})},ln=t=>{let a=t.slice(0,Zn).map(Ke),i=t.length-a.length;return te({tone:"info",title:n("missing",{count:t.length}),message:i>0?`${a.join(", ")} ${n("missingMore",{count:i})}`:a.join(", "),actions:A({name:Y,value:"generate",label:n("generate",{count:t.length}),variant:"primary",size:"compact",leading:Qe("plus"),disabled:f()})})},sn=()=>{let t=ke(),a=Te(),i=m?we():[],r=g().filter(u=>u.active).length,s=m&&(G().length>0||g().length>0);return ve({eyebrow:n("stepVariants"),title:n("variantsTitle"),description:g().length?n("variantsCount",{active:r,total:g().length}):null,actions:s?J("div",{"data-ui":"variant-editor-toolbar",children:[A({name:Y,value:"addRow",label:n("addVariant"),variant:"secondary",size:"compact",leading:Qe("plus"),disabled:f()}),g().some(u=>u.id&&!u.active)?A({name:Y,value:"activateAll",label:n("activateAll"),variant:"tertiary",size:"compact",disabled:f()}):null,r?A({name:Y,value:"archiveAll",label:n("archiveAll"),variant:"tertiary",size:"compact",disabled:f()}):null]}):void 0,body:J("div",{"data-ui":"variant-editor-body",children:[i.length?ln(i):null,g().length?_("div",{"data-ui":"variant-editor-rows",role:"list",children:tt(g(),u=>u.key,u=>on(u,g().indexOf(u),t,a))}):i.length?null:de({title:n("variantsEmpty"),message:G().length?n("variantsEmptyHint"):n("variantsNeedAttributes")})]})})},dn=()=>{let t=ke().size,a=g().filter(u=>u.id&&!u.active&&l.variants.find(V=>V.id===u.id)?.active).length,i=g().filter(u=>!u.id&&u.active).length,r=[i?n("summaryCreate",{count:i}):"",a?n("summaryArchive",{count:a}):""].filter(Boolean),s=Ne()||qe();return J("footer",{"data-ui":"variant-editor-footer",children:[_("p",{"data-ui":"variant-editor-summary","data-tone":t||s?"danger":"neutral","aria-live":"polite",children:f()?n("saving"):t?n("summaryDuplicate"):s?n("summaryInvalid"):I()??(C()?r.join(" \xB7 ")||n("summaryChanged"):"")}),m?A({name:Y,value:"reset",label:n("reset"),variant:"secondary",size:"compact",disabled:!C()||f()}):null]})},rt=ei(e.id),cn=()=>document.querySelector(`button[form="${rt}"]`);return{view:()=>J("div",{"data-ui":"variant-editor",id:e.id,"aria-busy":f()?"true":null,onClick:_a,onChange:ja,onInput:Za,children:[m?null:te({title:n("readOnly"),message:""}),$()?te({title:n("saveFailed"),message:$()??"",tone:"danger"}):null,an(),sn(),dn(),_("form",{id:rt,"data-record-dirty":C()?"true":null,hidden:!0}),P.layer()]}),mount:({root:t,lifetime:a})=>{T=t,a.addEventListener("abort",()=>{H=!0,T=null}),fe.attach(T,a);let i=T.querySelector(`[id="${e.id}-attribute-picker"]`);i&&b.mount?.({root:i,lifetime:a}),a.addEventListener("abort",()=>b.dispose?.()),P.attach(a),T.addEventListener("toggle",u=>{let V=u.target;if(!(V instanceof HTMLDetailsElement))return;let U=V.closest('[data-ui="variant-editor-extras"]')?.dataset.attribute;if(!U)return;let k=h().filter(X=>X!==U);h.set(V.open?[...k,U]:k)},{signal:a,capture:!0}),document.addEventListener("submit",u=>{!(u.target instanceof HTMLFormElement)||u.target.id!==rt||(u.preventDefault(),u.stopImmediatePropagation(),Ee()||Ua())},{signal:a,capture:!0});let r=Ka(()=>{let u=cn();u&&(u.disabled=Ee(),f()?u.setAttribute("aria-busy","true"):u.removeAttribute("aria-busy"))}),s=Ka(()=>{v(),g(),queueMicrotask(Qa)});a.addEventListener("abort",()=>{r(),s()})}}}var ei=e=>`${e}-save`,jf=e=>Qn(e);export{Qn as createVariantEditorView,jf as variantEditor,ei as variantEditorSaveForm};