@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
@@ -1,4 +1,4 @@
1
- declare var Un: (e: any) => any, _n: {
1
+ declare var Yn: (e: any) => any, jn: {
2
2
  kind: string;
3
3
  labels: () => {
4
4
  "recordModal.close": string;
@@ -34,7 +34,7 @@ declare var Un: (e: any) => any, _n: {
34
34
  };
35
35
  };
36
36
  title: (e: any) => any;
37
- body: typeof Un;
37
+ body: typeof Yn;
38
38
  actions: (e: any) => any;
39
39
  commands: {
40
40
  save: {
@@ -51,12 +51,12 @@ declare var Un: (e: any) => any, _n: {
51
51
  after: string;
52
52
  };
53
53
  };
54
- }, Sf: () => {
54
+ }, Cf: () => {
55
55
  view: () => any;
56
- mount: ({ root: r, lifetime: c }: {
56
+ mount: ({ root: o, lifetime: c }: {
57
57
  lifetime: any;
58
58
  root: any;
59
59
  }) => void;
60
60
  };
61
- export { Sf as attributeModal, _n as attributeModalDefinition };
61
+ export { Cf as attributeModal, jn as attributeModalDefinition };
62
62
  //# sourceMappingURL=attribute-modal.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attribute-modal.d.mts","sourceRoot":"","sources":["../../../../../../../packages/ketsuite/src/modules/product_backend/client/attribute-modal.mjs"],"names":[],"mappings":"AAC4moD,QAAA,IAA2tC,EAAE,iBAAq3C,EAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAA0zB,EAAE;gBAAqC,IAAI;gBAAkE,WAAW;gBAAyD,aAAa;gBAA6D,QAAQ;gBAAwB,MAAM;;;;;CAA2L,EAAC,EAAE;;;;;;CAAO,CAAC;AAAA,OAAM,EAAC,EAAE,IAAI,cAAc,EAAC,EAAE,IAAI,wBAAwB,EAAC,CAAC"}
1
+ {"version":3,"file":"attribute-modal.d.mts","sourceRoot":"","sources":["../../../../../../../packages/ketsuite/src/modules/product_backend/client/attribute-modal.mjs"],"names":[],"mappings":"AAC+lrD,QAAA,IAA2tC,EAAE,iBAAq3C,EAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAA0zB,EAAE;gBAAqC,IAAI;gBAAkE,WAAW;gBAAyD,aAAa;gBAA6D,QAAQ;gBAAwB,MAAM;;;;;CAA2L,EAAC,EAAE;;;;;;CAAO,CAAC;AAAA,OAAM,EAAC,EAAE,IAAI,cAAc,EAAC,EAAE,IAAI,wBAAwB,EAAC,CAAC"}
@@ -1,2 +1,2 @@
1
1
  // @ts-nocheck Generated by tools/build-backend-client.mjs — do not edit.
2
- var xt={vi:{"recordModal.close":"\u0110\xF3ng","recordModal.loading":"\u0110ang t\u1EA3i\u2026","recordModal.loadFailed":"Kh\xF4ng \u0111\u1ECDc \u0111\u01B0\u1EE3c thu\u1ED9c t\xEDnh s\u1EA3n ph\u1EA9m.","recordModal.notFound":"Thu\u1ED9c t\xEDnh kh\xF4ng c\xF2n t\u1ED3n t\u1EA1i ho\u1EB7c b\u1EA1n kh\xF4ng c\xF3 quy\u1EC1n xem.","recordModal.retry":"Th\u1EED l\u1EA1i","recordModal.errorTitle":"Ch\u01B0a l\u01B0u \u0111\u01B0\u1EE3c","recordModal.saveFailed":"Thao t\xE1c kh\xF4ng th\xE0nh c\xF4ng. H\xE3y th\u1EED l\u1EA1i.","recordModal.savedTitle":"\u0110\xE3 l\u01B0u","recordModal.saved":"Thay \u0111\u1ED5i \u0111\xE3 \u0111\u01B0\u1EE3c ghi nh\u1EADn.","recordModal.unsaved":"B\u1ECF c\xE1c thay \u0111\u1ED5i ch\u01B0a l\u01B0u?","recordModal.uploadFailed":"Kh\xF4ng t\u1EA3i \u0111\u01B0\u1EE3c t\u1EC7p l\xEAn. H\xE3y th\u1EED l\u1EA1i."},en:{"recordModal.close":"Close","recordModal.loading":"Loading\u2026","recordModal.loadFailed":"The product attribute could not be read.","recordModal.notFound":"The attribute 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 changes have been saved.","recordModal.unsaved":"Discard unsaved changes?","recordModal.uploadFailed":"The file could not be uploaded. Try again."}};import{each as ja}from"/_ket/view/index.js";import{Fragment as Tt,jsx as ee,jsxs as tn}from"/_ket/view/jsx-runtime.js";var St=["action","action-leading","action-label","action-spinner","action-group"],en=e=>tn(Tt,{children:[e.loading===!0&&ee("span",{"data-ui":"action-spinner","aria-hidden":"true"}),e.loading!==!0&&e.leading!==void 0&&ee("span",{"data-ui":"action-leading","aria-hidden":"true",children:e.leading}),!e.iconOnly&&ee("span",{"data-ui":"action-label",children:e.label})]}),w=e=>ee("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:ee(en,{...e})});var _=e=>ee("div",{"data-ui":"action-group",role:"group","aria-label":e.label??null,children:ja(e.actions,(t,a)=>a,t=>ee(Tt,{children:t}))});import{jsx as ei,jsxs as ti}from"/_ket/view/jsx-runtime.js";var kt=["badge","tag","tag-remove","count-badge","avatar","code","text","media-label","media-label-image","media-label-copy"];import{each as an}from"/_ket/view/index.js";import{Fragment as Fe,jsx as k,jsxs as te}from"/_ket/view/jsx-runtime.js";var wt=["notice","notice-mark","notice-copy","notice-title","notice-message","notice-actions","empty","empty-mark","empty-title","empty-message","empty-actions","loading","loading-label"],nn={info:()=>te(Fe,{children:[k("circle",{cx:"12",cy:"12",r:"10"}),k("path",{d:"M12 16v-4"}),k("path",{d:"M12 8h.01"})]}),positive:()=>te(Fe,{children:[k("circle",{cx:"12",cy:"12",r:"10"}),k("path",{d:"m9 12 2 2 4-4"})]}),warning:()=>te(Fe,{children:[k("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"}),k("path",{d:"M12 9v4"}),k("path",{d:"M12 17h.01"})]}),danger:()=>te(Fe,{children:[k("circle",{cx:"12",cy:"12",r:"10"}),k("path",{d:"M12 8v4"}),k("path",{d:"M12 16h.01"})]})},W=e=>te("aside",{"data-ui":"notice","data-pattern":"notice","data-tone":e.tone??"info",role:e.tone==="danger"?"alert":"status",children:[k("span",{"data-ui":"notice-mark","aria-hidden":"true",children:k("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:nn[e.tone??"info"]()})}),te("div",{"data-ui":"notice-copy",children:[k("p",{"data-ui":"notice-title",children:e.title}),k("p",{"data-ui":"notice-message",children:e.message})]}),e.actions!==void 0&&k("div",{"data-ui":"notice-actions",children:e.actions})]});var ce=e=>te("div",{"data-ui":"loading",role:"status","aria-live":"polite",children:[k("span",{"data-ui":"loading-label",children:e.label}),k("div",{"data-ui":"skeleton","aria-hidden":"true",children:an(Array.from({length:Math.max(1,e.lines??3)}),(t,a)=>a,(t,a)=>k("span",{"data-ui":"skeleton-line","data-line":String(a+1)}))})]});import{each as _e}from"/_ket/view/index.js";import{each as cn}from"/_ket/view/index.js";import{jsx as B,jsxs as ve}from"/_ket/view/jsx-runtime.js";var Rt=["modal-layer","modal-backdrop","modal-sheet","modal-head","modal-heading","modal-title-row","modal-title","modal-description","modal-close","modal-body","modal-actions"],ae=e=>{let t=e.mode==="client",a=e.mode==="embedded";return ve("div",{"data-ui":"modal-layer","data-mode":e.mode??"overlay","data-route-modal":a||t?null:"true","data-client-modal":t?"true":null,"data-presentation":e.presentation??"sheet","data-unsaved-prompt":e.unsavedPrompt??null,children:[t?B("button",{"data-ui":"modal-backdrop",type:"button","aria-hidden":"true",tabIndex:-1,children:B("span",{children:e.closeLabel})}):B("a",{"data-ui":"modal-backdrop",href:e.closeHref??"#","aria-label":e.closeLabel,children:B("span",{children:e.closeLabel})}),ve("section",{id:e.id,"data-ui":"modal-sheet","data-size":e.size??"default","data-height":e.height==="fixed"?"fixed":null,style:e.height==="fixed"&&e.fixedHeight?`height: ${e.fixedHeight} !important`:"",...e.dialogSemantics==="parent"?{}:{role:"dialog","aria-modal":a?"false":"true"},"aria-labelledby":e.dialogSemantics==="parent"?null:`${e.id}-title`,"aria-describedby":e.dialogSemantics!=="parent"&&e.description?`${e.id}-description`:null,tabindex:a?null:"-1",children:[ve("header",{"data-ui":"modal-head",children:[ve("div",{"data-ui":"modal-heading",children:[ve("div",{"data-ui":"modal-title-row",children:[B("h2",{"data-ui":"modal-title",id:`${e.id}-title`,children:e.title}),e.status!==void 0&&e.status]}),!!e.description&&B("p",{"data-ui":"modal-description",id:`${e.id}-description`,children:e.description})]}),t?B("button",{"data-ui":"modal-close",type:"button","aria-label":e.closeLabel,title:e.closeLabel,children:"\xD7"}):B("a",{"data-ui":"modal-close",href:e.closeHref??"#","aria-label":e.closeLabel,title:e.closeLabel,children:"\xD7"})]}),B("div",{"data-ui":"modal-body",children:e.body}),e.actions!==void 0&&B("footer",{"data-ui":"modal-actions",children:e.actions})]})]})};import{Fragment as ui,jsx as di,jsxs as ci}from"/_ket/view/jsx-runtime.js";import{Fragment as yi,jsx as pi,jsxs as hi}from"/_ket/view/jsx-runtime.js";var Lt=["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 Pt,jsx as D,jsxs as He}from"/_ket/view/jsx-runtime.js";var Mt=["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"],un=e=>D(Pt,{children:cn(e.items,(t,a)=>a,t=>typeof t=="string"||typeof t=="number"?D("span",{children:t}):D(Pt,{children:t}))});var Ge=e=>D("div",{"data-ui":"grid","data-columns":String(e.columns??3),"data-align":e.align==="stretch"?"stretch":null,children:D(un,{items:e.items})});var Ue=e=>He("details",{"data-ui":"disclosure",open:e.open===!0?!0:void 0,children:[D("summary",{"data-ui":"disclosure-summary",children:e.summary}),D("div",{"data-ui":"disclosure-body",children:e.body})]}),Oe=e=>He("section",{"data-ui":"section",children:[He("header",{"data-ui":"section-head",children:[He("div",{children:[!!e.eyebrow&&D("p",{"data-ui":"section-eyebrow",children:e.eyebrow}),D("h2",{"data-ui":"section-title",children:e.title}),!!e.description&&D("p",{"data-ui":"section-description",children:e.description})]}),e.actions!==void 0&&D("div",{"data-ui":"section-actions",children:e.actions})]}),D("div",{"data-ui":"section-body",children:e.body})]});import{each as mn}from"/_ket/view/index.js";import{Fragment as gn,jsx as xe}from"/_ket/view/jsx-runtime.js";var De=(e,t)=>e.control!==void 0?xe(gn,{children:e.control}):e.type==="textarea"?xe("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":t,children:String(e.value??"")}):e.type==="select"?xe("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":t,children:mn(e.options??[],a=>a.value,a=>xe("option",{value:a.value,selected:String(e.value??"")===a.value,disabled:a.disabled===!0,children:a.label}))}):xe("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":t,autocomplete:e.autocomplete??"off",step:e.type==="decimal"?e.step??"any":e.step??null});import{jsx as T,jsxs as z}from"/_ket/view/jsx-runtime.js";var Et=["field","field-label","field-required","field-control","field-options","field-option","field-option-input","field-help","field-error"],Ft=e=>!!e.error||(e.fields?.some(Ft)??!1),K=e=>{let t=e.help?`${e.id}-help`:null,a=e.error?`${e.id}-error`:null,n=[t,a].filter(Boolean).join(" ")||null,s=z("span",{"data-ui":"field-label",children:[e.label,e.required&&T("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]});return e.fields?z("div",{"data-ui":"field","data-kind":"group","data-span":"full","data-invalid":String(!!e.error),children:[T(Ue,{summary:e.label,open:e.open||Ft(e),body:T("div",{"data-ui":"form-grid",children:_e(e.fields.map(u=>({...u,disabled:e.disabled||u.disabled,readOnly:e.readOnly||u.readOnly})),u=>u.id,u=>T(K,{...u}))})}),!!e.help&&T("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&T("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):e.type==="checkbox-group"?z("div",{"data-ui":"field","data-kind":"checkbox-group","data-span":e.span??"half","data-invalid":String(!!e.error),children:[z("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&T("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),T("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"group","aria-labelledby":`${e.id}-label`,children:_e(e.options??[],u=>u.name??u.value,u=>z("label",{"data-ui":"field-option",children:[T("input",{"data-ui":"field-option-input",type:"checkbox",name:u.name??`${e.name}[]`,value:u.value,checked:u.checked===!0,disabled:e.disabled===!0||u.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":n,autocomplete:"off"}),T("span",{children:u.label})]}))}),!!e.help&&T("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&T("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):e.type==="radio"?z("div",{"data-ui":"field","data-kind":"radio","data-span":e.span??"half","data-invalid":String(!!e.error),children:[z("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&T("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),T("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"radiogroup","aria-labelledby":`${e.id}-label`,children:_e(e.options??[],u=>u.value,u=>z("label",{"data-ui":"field-option",children:[T("input",{"data-ui":"field-option-input",type:"radio",name:e.name,value:u.value,checked:String(e.value??"")===u.value,required:e.required===!0,disabled:e.disabled===!0||u.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":n,autocomplete:"off"}),T("span",{children:u.label})]}))}),!!e.help&&T("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&T("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):z("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"&&De(e,n),s,e.type!=="checkbox"&&De(e,n),!!e.help&&T("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&T("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]})};import{each as fn}from"/_ket/view/index.js";import{jsx as ue,jsxs as Ze}from"/_ket/view/jsx-runtime.js";var Ht=["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"];var Ot=e=>Ze("a",{"data-ui":"tab","data-active":e.active===!0?"true":null,id:e.elementId,href:e.href,"aria-current":e.active===!0?"page":null,"aria-controls":e.controls,children:[e.label,e.count!==void 0&&ue("span",{"data-ui":"tab-count",children:String(e.count)})]}),Dt=(e,t)=>`${e}-${t.replace(/[^a-zA-Z0-9_-]+/gu,"-")}-tab`,At=e=>Ze("nav",{"data-ui":"tabs","data-pattern":"tabs","aria-label":e.label,children:[fn(e.items,t=>t.id,t=>ue(Ot,{...t,elementId:e.id?Dt(e.id,t.id):void 0,controls:e.panelId})),e.extension]}),It=e=>ue("section",{"data-ui":"tab-panel",id:e.id,"aria-labelledby":e.labelledBy,tabindex:"-1",children:e.body}),We=e=>{let t=`${e.id}-tabs`,a=`${e.id}-panel`,n=e.items.find(s=>s.active===!0);return Ze("div",{"data-ui":"tabbed-view",children:[e.context!==void 0&&e.context!==""?ue("div",{"data-ui":"tabbed-view-context",children:e.context}):"",ue(At,{id:t,label:e.label,items:e.items,extension:e.extension,panelId:a}),ue(It,{id:a,labelledBy:n?Dt(t,n.id):void 0,body:e.body})]})};import{jsx as qi,jsxs as Ni}from"/_ket/view/jsx-runtime.js";var $t=["progress","progress-label","progress-value","progress-track","progress-bar"];import{each as Vi}from"/_ket/view/index.js";import{Fragment as _i,jsx as Gi,jsxs as Ui}from"/_ket/view/jsx-runtime.js";var Bt=["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 Yi,jsxs as Qi}from"/_ket/view/jsx-runtime.js";var Kt=["popover","popover-trigger","popover-panel","popover-close"];import{jsx as tr,jsxs as ar}from"/_ket/view/jsx-runtime.js";var qt=["tooltip","tooltip-trigger","tooltip-content"];import{jsx as lr}from"/_ket/view/jsx-runtime.js";var Nt=["dialog","confirm-dialog-message"];import{each as cr}from"/_ket/view/index.js";import{jsx as mr,jsxs as gr}from"/_ket/view/jsx-runtime.js";var Jt=["toast-region","toast","toast-copy","toast-title","toast-message","toast-actions"];import{jsx as pr}from"/_ket/view/jsx-runtime.js";var Xt=["spinner","visually-hidden"];import{each as vr}from"/_ket/view/index.js";import{jsx as Sr}from"/_ket/view/jsx-runtime.js";var Vt=["skeleton","skeleton-line"];import{each as wr,effect as Rr,signal as Cr}from"/_ket/view/index.js";import{jsx as Mr,jsxs as Pr}from"/_ket/view/jsx-runtime.js";var zt=["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"];import{each as Hr,signal as Or}from"/_ket/view/index.js";import{jsx as Ar,jsxs as Ir}from"/_ket/view/jsx-runtime.js";var Gt=["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"];import{each as qr,signal as Nr}from"/_ket/view/index.js";import{Fragment as zr,jsx as Vr,jsxs as Xr}from"/_ket/view/jsx-runtime.js";var Ut=["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 Yr,effect as Qr,signal as jr}from"/_ket/view/index.js";import{jsx as _r}from"/_ket/view/jsx-runtime.js";var _t=["formatted-date","formatted-number","formatted-money"];import{Fragment as io,jsx as ro,jsxs as oo}from"/_ket/view/jsx-runtime.js";var Yt=["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 To=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","summary",'[tabindex]:not([tabindex="-1"])'].join(",");var xn=['[data-ui="timeframe-menu"]','[data-ui="view-settings"]'],ko=xn.map(e=>`${e}[open]`).join(", ");import{jsx as Co,jsxs as Lo}from"/_ket/view/jsx-runtime.js";import{jsx as Ho,jsxs as Oo}from"/_ket/view/jsx-runtime.js";var Qt=["switch-control","switch-track"];import{each as Io}from"/_ket/view/index.js";import{Fragment as No,jsx as Ko,jsxs as qo}from"/_ket/view/jsx-runtime.js";var jt=["combobox","combobox-input-row","combobox-toggle","combobox-listbox","combobox-option","combobox-empty","tag-picker"];import{Fragment as Yo,jsx as Wo,jsxs as Zo}from"/_ket/view/jsx-runtime.js";var ea=["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 tl,jsxs as al}from"/_ket/view/jsx-runtime.js";var ta=["file-upload","drop-zone","upload-status"];import{jsx as ol}from"/_ket/view/jsx-runtime.js";var aa=["relation-picker"];import{each as dl}from"/_ket/view/index.js";import{jsx as gl,jsxs as fl}from"/_ket/view/jsx-runtime.js";var na=["search-bar","filter-bar","applied-filters","applied-filter","saved-views","saved-view","view-settings","view-settings-options"];import{jsx as yl,jsxs as vl}from"/_ket/view/jsx-runtime.js";var ia=["inline-edit","inline-edit-value","inline-edit-form","inline-edit-actions"];import{each as Hl}from"/_ket/view/index.js";import{each as wl}from"/_ket/view/index.js";import{Fragment as Ml,jsx as Ll,jsxs as Pl}from"/_ket/view/jsx-runtime.js";var ra=["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 Il,jsxs as $l}from"/_ket/view/jsx-runtime.js";var oa=["resource-list","resource-list-item","resource-list-select","resource-list-link"];import{each as ql}from"/_ket/view/index.js";import{jsx as Jl,jsxs as Xl}from"/_ket/view/jsx-runtime.js";var la=["data-grid-scroll","data-grid","data-grid-cap","data-grid-cell"];import{each as Gl}from"/_ket/view/index.js";import{jsx as _l,jsxs as Wl}from"/_ket/view/jsx-runtime.js";var sa=["tree","tree-item","tree-link","tree-grid","tree-grid-row"];import{each as Ql}from"/_ket/view/index.js";import{jsx as es,jsxs as ts}from"/_ket/view/jsx-runtime.js";var da=["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 is}from"/_ket/view/index.js";import{jsx as os,jsxs as ls}from"/_ket/view/jsx-runtime.js";var ca=["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 cs}from"/_ket/view/index.js";import{jsx as ms,jsxs as gs}from"/_ket/view/jsx-runtime.js";var ua=["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 ps}from"/_ket/view/index.js";import{jsx as vs,jsxs as xs}from"/_ket/view/jsx-runtime.js";var ma=["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 ga,jsxs as Ps}from"/_ket/view/jsx-runtime.js";var ba=["record-summary","record-summary-main","record-actions","record-rail"];var et=e=>ga("nav",{"data-ui":"record-actions","aria-label":e.label??"Record actions",children:ga(_,{actions:e.actions})});import{each as Fs}from"/_ket/view/index.js";import{jsx as As,jsxs as Is}from"/_ket/view/jsx-runtime.js";var pa=["activity-timeline","activity-item","activity-marker","audit-log","audit-item"];import{each as Ks}from"/_ket/view/index.js";import{jsx as Js,jsxs as Xs}from"/_ket/view/jsx-runtime.js";var ha=["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 ya=["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 va=["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 xa=["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 Td}from"/_ket/view/jsx-runtime.js";var Sa=["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 Ta=["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 Fd,jsxs as Hd}from"/_ket/view/jsx-runtime.js";var ka=["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 wa=["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 Nd}from"/_ket/view/index.js";import{jsx as Xd,jsxs as Vd}from"/_ket/view/jsx-runtime.js";var Ra=["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 jd,jsxs as ec}from"/_ket/view/jsx-runtime.js";var Ca=["record-form","form-errors","form-grid","form-actions"];import{each as Mn}from"/_ket/view/index.js";var tt=e=>e.currentTarget instanceof HTMLElement?e.currentTarget:null,Ie=(e,t,a)=>{let n=e.querySelector('[data-ui="reorder-list-value"]');!n||n.disabled||(n.value=JSON.stringify(t),n.dispatchEvent(new Event("change",{bubbles:!0})),requestAnimationFrame(()=>{let s=document.getElementById(e.id);([...s?.querySelectorAll('[data-ui="reorder-list-row"]')??[]].find(x=>x.dataset.reorderId===a)?.querySelector('input:not([type="hidden"]), button')??s?.querySelector('[data-reorder-action="add"] button'))?.focus()}))},La=e=>{let t=tt(e),a=e.target instanceof Element?e.target.closest("[data-reorder-action]"):null;if(!t||!a||a.querySelector("button:disabled"))return;let n=t.querySelector('[data-ui="reorder-list-value"]');if(!n||n.disabled)return;let s=JSON.parse(n.value),u=a.closest("[data-reorder-id]")?.dataset.reorderId,f=u?s.indexOf(u):-1,x=a.dataset.reorderAction;if(x==="add"){let L=crypto.randomUUID();Ie(t,[...s,L],L)}else if(f>=0&&x==="remove")s.splice(f,1),Ie(t,s,s[Math.min(f,s.length-1)]);else if(f>=0&&(x==="up"||x==="down")){let L=f+(x==="up"?-1:1);if(L<0||L>=s.length)return;[s[f],s[L]]=[s[L],s[f]],Ie(t,s,u)}},Pa=e=>{let t=e.target instanceof Element?e.target.closest("[data-reorder-handle]"):null;if(!t||t.querySelector("button:disabled")){e.preventDefault();return}let a=t.closest("[data-reorder-id]"),n=tt(e);!a||!n||!e.dataTransfer||(e.dataTransfer.setData("application/x-ket-reorder",JSON.stringify({root:n.id,id:a.dataset.reorderId})),e.dataTransfer.effectAllowed="move")},Ma=e=>{e.dataTransfer?.types.includes("application/x-ket-reorder")&&e.preventDefault()},Ea=e=>{let t=tt(e),a=e.target instanceof Element?e.target.closest("[data-reorder-id]"):null,n=e.dataTransfer?.getData("application/x-ket-reorder");if(!(!t||!a||!n)){e.preventDefault();try{let s=JSON.parse(n);if(s.root!==t.id)return;let u=t.querySelector('[data-ui="reorder-list-value"]'),f=JSON.parse(u?.value??"[]"),x=f.indexOf(s.id),L=f.indexOf(a.dataset.reorderId??"");if(x<0||L<0||x===L)return;f.splice(x,1),f.splice(L,0,s.id),Ie(t,f,s.id)}catch{}}};import{jsx as P,jsxs as at}from"/_ket/view/jsx-runtime.js";var Fa=["reorder-list","reorder-list-value","reorder-list-rows","reorder-list-row","reorder-list-content","reorder-list-controls"],nt=e=>at("div",{id:e.id,role:"group","aria-label":e.label,"data-ui":"reorder-list",onClick:La,onDragStart:Pa,onDragOver:Ma,onDrop:Ea,children:[P("input",{"data-ui":"reorder-list-value",type:"hidden",name:e.name,value:JSON.stringify(e.items.map(t=>t.id)),disabled:e.disabled,autocomplete:"off"}),P("ol",{"data-ui":"reorder-list-rows","aria-label":e.label,children:Mn(e.items,t=>t.id,(t,a)=>at("li",{"data-ui":"reorder-list-row","data-reorder-id":t.id,children:[P("div",{"data-ui":"reorder-list-content",children:t.content}),at("div",{"data-ui":"reorder-list-controls",children:[P("span",{"data-reorder-handle":!0,draggable:!e.disabled,children:P(w,{label:e.labels.drag,size:"compact",variant:"tertiary",disabled:e.disabled})}),P("span",{"data-reorder-action":"up",children:P(w,{label:e.labels.up,size:"compact",variant:"tertiary",disabled:e.disabled||a===0})}),P("span",{"data-reorder-action":"down",children:P(w,{label:e.labels.down,size:"compact",variant:"tertiary",disabled:e.disabled||a===e.items.length-1})}),P("span",{"data-reorder-action":"remove",children:P(w,{label:e.labels.remove,size:"compact",variant:"tertiary",disabled:e.disabled})})]})]}))}),!e.items.length&&P("p",{children:e.labels.empty}),P("span",{"data-reorder-action":"add",children:P(w,{label:e.labels.add,size:"compact",disabled:e.disabled})})]});var Ha={actions:St,feedback:wt,fields:Et,status:kt,navigation:Ht,progress:$t,menu:Bt,reorderList:Fa,popover:Kt,tooltip:qt,dialog:Nt,toast:Jt,spinner:Xt,skeleton:Vt,lightbox:Gt,relationSelect:zt,searchFilter:Ut,ketTable:Yt,scalarFields:Qt,combobox:jt,dateTime:ea,upload:ta,relationPicker:aa,listControls:na,inlineEdit:ia,resourceList:oa,dataGrid:la,tree:sa,matrix:da,barChart:ca,timeframe:ua,recordDisplay:ma,formattedValues:_t,recordComposition:ba,activity:pa,media:ha,layouts:Mt,shell:Lt,appNavigation:ya,table:va,listChrome:ra,listPage:xa,formPage:Ta,recordPage:Sa,dashboardPage:ka,boardPage:wa,modal:Rt,pipeline:Ra,form:Ca},En=[...new Set(Object.values(Ha).flat())].sort(),Fn=Object.freeze(Object.fromEntries(Object.entries(Ha).map(([e,t])=>[e,[...t]])));import{signal as M}from"/_ket/view/index.js";import{jsx as On}from"/_ket/view/jsx-runtime.js";var $e="record";var Hn=/^[a-z][a-z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)+$/u,Oa=e=>Hn.test(e),it=(e,t)=>{if(!Oa(t.kind))throw new TypeError(`invalid record kind "${t.kind}"`);let a=new URL(String(e),"http://ket.local");return a.searchParams.set($e,`${t.kind}:${t.id}`),t.tab?a.searchParams.set("tab",t.tab):a.searchParams.delete("tab"),`${a.pathname}${a.search}`};var Da=e=>{let t=new URL(String(e),"http://ket.local");return t.searchParams.delete($e),t.searchParams.delete("tab"),`${t.pathname}${t.search}`},me=e=>{let t=new URL(String(e),"http://ket.local"),a=t.searchParams.get($e)??"",n=a.indexOf(":");if(n<=0||n===a.length-1)return null;let s=a.slice(0,n);return Oa(s)?{kind:s,id:a.slice(n+1),tab:t.searchParams.get("tab")}:null},rt=e=>On("span",{"data-ui":"record-modal-host","data-record-kind":e,hidden:!0});import{jsx as ne,jsxs as Dn}from"/_ket/view/jsx-runtime.js";var ot=e=>Dn("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?ne("input",{type:"hidden",name:Te,value:e.command,autocomplete:"off"}):"",Object.entries(e.hidden??{}).map(([t,a])=>ne("input",{type:"hidden",name:t,value:a,autocomplete:"off"})),ne("div",{"data-ui":"form-grid",children:e.fields.map(t=>K(t))}),e.body,e.actions?.length?ne("div",{"data-ui":"form-actions",children:_({actions:e.actions})}):""]}),lt=e=>ne("select",{"data-ui":"field-control","data-record-state":e.state,id:e.id,name:e.name,required:e.required===!0,disabled:e.disabled===!0,"aria-invalid":e.invalid?"true":null,children:e.options.map(t=>ne("option",{value:t.value,selected:t.value===e.value,children:t.label}))});var st=e=>ne("span",{"data-record-close":"true",children:e.children});import{Fragment as ke,jsx as ff,jsxs as we}from"/_ket/view/jsx-runtime.js";var Ia=e=>{let t=e??{};return(Array.isArray(t.errors)?t.errors:Array.isArray(t.issues)?t.issues:[]).map(n=>{let s=n??{},u=Array.isArray(s.path)?s.path.join("."):null;return{field:typeof s.field=="string"?s.field:u,code:String(s.code??"invalid"),message:typeof s.message=="string"?s.message:null,params:s.params&&typeof s.params=="object"?s.params:{}}})},Xa=async(e,t,a={})=>{let n=new URL(e,"https://record.invalid");if(n.origin!=="https://record.invalid"||!e.startsWith("/")||e.startsWith("//"))throw new Error("Record commands require a same-origin route");let s=await fetch(n.pathname+n.search,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json",...a.idempotencyKey?{"idempotency-key":a.idempotencyKey}:{}},body:JSON.stringify(t),signal:a.signal}),u=await s.json().catch(()=>({}));if(!s.ok||u.ok===!1)return{ok:!1,issues:Ia(u.error??u),message:s.status>=500?null:u.error?.message??u.message??null,status:s.status};let f=u.value;return f&&typeof f=="object"&&f.ok===!1?{ok:!1,issues:Ia(f),message:null,status:s.status}:{ok:!0,value:u.value}},$a=(e,t,a={})=>Xa(`/_ket/fn/${encodeURIComponent(e)}`,t,a),An=async(e,t)=>{let a=new URL(e,location.href);if(a.origin!==location.origin)throw new Error("Record context must stay same-origin");let n=await fetch(a.href,{credentials:"same-origin",signal:t,headers:{accept:"application/json"}});return n.ok?{ok:!0,value:await n.json()}:{ok:!1,issues:[],message:null,status:n.status}},In=30,$n=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."}),Ke=(e,t)=>t.messages?.[e]??t.previous?.[e]??t.labels?.[e]??$n[e]??(/^E_[A-Z_]+$/u.test(e)?Ke("recordModal.saveFailed",t):e),Bn=(e,t)=>{let a=Ke(e,t);return a===e?Ke("recordModal.saveFailed",t):a},Te="__command",Ba="data-record-dialog",Ka=(e,t={})=>e.replace(/\{([a-zA-Z0-9_]+)\}/gu,(a,n)=>n in t?String(t[n]??""):a),Va=["a[href]","button:not(:disabled)",'input:not(:disabled):not([type="hidden"])',"select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", "),qa=e=>[...e.querySelectorAll(Va)].filter(t=>!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&!t.matches('[data-ui="modal-backdrop"]'));var Kn=e=>{let t=[],a=e;for(;a&&a!==document.body;){let n=a.parentElement;if(!n)break;for(let s of n.children)s instanceof HTMLElement&&s!==a&&!s.matches("script, style, template")&&(t.push({element:s,inert:s.inert}),s.inert=!0);a=n}return()=>{for(let{element:n,inert:s}of t)n.inert=s}},Na=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,qn=e=>Object.entries(e.values).some(([t,a])=>a!==e.initialValues[t])||Object.entries(e.checks).some(([t,a])=>a!==e.initialChecks[t]),E=()=>({values:{},checks:{},initialValues:{},initialChecks:{}}),Ja=(e,t)=>`${e}\0${t}`,Be="__all:",dt=e=>e.after??"close",Nn=400,Jn=(e,t=Nn)=>{let a,n=()=>{clearTimeout(a),a=void 0};return{set:s=>{if(n(),!s){e(!1);return}a=setTimeout(()=>e(!0),t)},stop:n}},Xn='a, button, input, select, textarea, label, summary, details, [data-ui="select-cell"]',Vn=e=>{let t=e?.closest("a[href]");return t?t.target&&t.target!=="_self"?null:t.href:e?.closest(Xn)?null:e?.closest("[data-row-href]")?.getAttribute("data-row-href")??null},za=e=>()=>{let t=M(null),a=M("idle"),n=M(null),s=M(null),u=M([]),f=M(E()),x=M(E()),L=M(!1),ut=M(!1),mt=Jn(r=>ut.set(r)),ge=M(!1),gt=r=>{L.set(r),mt.set(r),r&&ge.set(!1)},F=M(null),fe=M(0),Z=M({}),N=M(null),I=new Map,Ua=(r,c)=>{for(I.delete(r),I.set(r,c);I.size>In;)I.delete(I.keys().next().value)},C=null,Le=null,Pe=!1,Ne=null,$=null,re=null,be=null,_a=()=>typeof e.labels=="function"?e.labels():e.labels??{},ft=()=>({messages:n()?.messages,previous:be,labels:_a()}),J=(r,c)=>Ka(Ke(r,ft()),c),bt=r=>r.message??Ka(Bn(r.code,ft()),r.params),pt=r=>[...e.tabs??[],...e.extensionTabs?.(r)??[]].filter(c=>c.visible?.(r)??!0),Me=(r,c,m="record")=>{let d=()=>m==="dialog"?x():f(),l={kind:e.kind,id:r.id,creating:r.id==="new",tab:r.tab,data:c,t:J,fieldError:p=>{let i=u().find(o=>o.field===p);return i?bt(i):null},draft:(p,i="")=>{let o=d();return o.initialValues[p]??=i,o.values[p]??i},draftChecked:(p,i="1",o=!1)=>{let g=d(),v=Ja(p,i);return g.initialChecks[v]??=o,g.checks[v]??o},outcome:p=>{let i=N();return i?.command===p?i.value:null},busy:ut(),dialog:F(),href:p=>it(location.href,{kind:e.kind,id:r.id,tab:p}),state:(p,i="")=>Z()[p]??i},h=pt(l);return h.length&&!h.some(p=>p.id===r.tab)&&(l.tab=h[0].id),l},Y=async(r,c=!1)=>{Le?.abort();let m=new AbortController;Le=m;let d=e.cache===!1?void 0:I.get(r);d&&(be=d.messages??be,n.set(d),a.set("ready"),c=!0),c||a.set("loading"),s.set(null);try{let l=r==="new",h="route"in e.context?await An(e.context.route(r,l),m.signal):await $a(e.context.fn,e.context.input?e.context.input(r,l):l?{}:{id:r},{signal:m.signal});if(m.signal.aborted)return;if(!h.ok||!h.value){s.set(h.ok?"recordModal.notFound":h.message??"recordModal.loadFailed"),a.set("error");return}be=h.value.messages??be,e.cache!==!1&&Ua(r,h.value),n.set(h.value),a.set("ready")}catch(l){if(m.signal.aborted||l?.name==="AbortError")return;s.set("recordModal.loadFailed"),a.set("error")}},Ee=()=>C?[...C.querySelectorAll('[data-ui="modal-layer"][data-client-modal="true"]')]:[],oe=()=>Ee()[0]??null,Je=()=>Ee().at(-1)??null,le=0,se=()=>{if(e.fixedHeight||a()!=="ready")return;let r=oe()?.querySelector('[data-ui="modal-sheet"][data-height="fixed"]');if(!r)return;if(window.matchMedia("(max-width: 47.9375rem)").matches){r.style.setProperty("height","100dvh","important"),r.style.removeProperty("min-height");return}let c=r.querySelector('[data-ui="tabbed-view"]');if(!c)return;let m=c.querySelector('[data-ui="tab-panel"]'),d=m?.scrollTop??0;r.style.setProperty("height","auto","important"),r.style.setProperty("min-height","0"),c.style.setProperty("height","auto"),le=Math.max(le,Math.ceil(r.getBoundingClientRect().height)),c.style.removeProperty("height");let l=getComputedStyle(r).maxHeight;r.style.setProperty("min-height",l==="none"?`${le}px`:`min(${le}px, ${l})`),m&&(m.scrollTop=d)},Q=(r,c)=>{if(!r)return;let m=c==="dialog"?x():f(),d={values:{...m.values},checks:{...m.checks},initialValues:{...m.initialValues},initialChecks:{...m.initialChecks}};for(let l of r.querySelectorAll("input[name], select[name], textarea[name]"))if(!(l.disabled||l.name===Te)){if(l instanceof HTMLInputElement){if(l.type==="file"||l.type==="hidden")continue;if(l.type==="checkbox"||l.type==="radio"){let h=Ja(l.name,l.value);d.initialChecks[h]??=l.defaultChecked,d.checks[h]=l.checked,l.type==="checkbox"?d.values[l.name]=l.checked?l.value:"":l.checked&&(d.values[l.name]=l.value),d.initialValues[l.name]=d.values[l.name]??"";continue}}d.initialValues[l.name]??=l instanceof HTMLSelectElement?[...l.options].find(h=>h.defaultSelected)?.value??l.options[0]?.value??"":l.defaultValue,d.values[l.name]=l.value}c==="dialog"?x.set(d):f.set(d)},Xe=()=>{let r=Ee();Q(r[0]??null,"record"),r.length>1&&Q(r.at(-1)??null,"dialog")},ht=r=>{if(!r)return!0;let c=F()&&r===Je()?"dialog":"record";Q(r,c);let m=c==="dialog"?x():f(),d=[...r.querySelectorAll('input[type="file"]')].some(l=>!l.disabled&&!!l.files?.length);return!qn(m)&&!d?!0:globalThis.confirm(J("recordModal.unsaved"))},pe=r=>{requestAnimationFrame(()=>{let c=Ee(),m=c[0],d=c.at(-1);if(!d)return;m&&(m.inert=c.length>1);let l=r?.();if(l?.isConnected&&d.contains(l)){l.focus();return}if(d.contains(document.activeElement))return;let h=d.querySelector('[data-ui="modal-sheet"]');(qa(d).find(i=>!i.matches('[data-ui="modal-close"]'))??h)?.focus()})},G=(r,c,m,d)=>{let l=t(),h=l?.id===r,p=c??(h?l.tab:"");h||(le=0,Ne=document.activeElement instanceof HTMLElement?document.activeElement:null,u.set([]),ge.set(!1),f.set(E()),x.set(E()),Z.set({}),N.set(null),F.set(null),$=null,n.set(null),Y(r)),t.set({id:r,tab:p});let i=it(location.href,{kind:e.kind,id:r,tab:p||null});m==="push"?(history.replaceState({...history.state??{},__ketScroll:[window.scrollX,window.scrollY]},"",location.href),history.pushState({...history.state??{},__ketRecordModal:e.kind},"",i),Pe=!0):m==="replace"&&history.replaceState(history.state??{},"",i),C&&!re&&(re=Kn(C)),pe(d)},he=r=>{Le?.abort(),t.set(null),le=0,F.set(null),u.set([]),ge.set(!1),f.set(E()),x.set(E()),Z.set({}),N.set(null),a.set("idle"),n.set(null),re?.(),re=null,r==="history"&&Pe?(Pe=!1,history.back()):r!=="none"&&(Pe=!1,history.replaceState(history.state??{},"",Da(location.href)));let c=Ne;Ne=null,$=null,c?.isConnected&&requestAnimationFrame(()=>c.focus())},yt=()=>{if(F()){if(!ht(Je()))return;let r=$;$=null,F.set(null),x.set(E()),u.set([]),N.set(null),pe(()=>r?.isConnected?r:null);return}ht(oe())&&he("history")},Wa=async(r,c,m)=>{let d=e.commands?.[r],l=t(),h=n()?.data;if(!d||!l||h===void 0||L())return;let p=new FormData(c,m instanceof HTMLButtonElement?m:null),i=c.closest('[data-ui="modal-layer"][data-client-modal="true"]'),o=F()&&i===Je()?"dialog":"record";Q(i,o);let g=Me(l,h,o);if(d.confirm){let v=d.confirm(g);if(v&&!globalThis.confirm(v))return}gt(!0),u.set([]);try{let v={};for(let[b,O]of Object.entries(d.upload??{})){let A=p.get(b);if(!(A instanceof File)||A.size===0)continue;let de=new FormData;for(let[Ve,Qa]of Object.entries(O(p,g)))de.append(Ve,Qa);de.append("file",A,A.name);let ye=await fetch("/files",{method:"POST",credentials:"same-origin",body:de}),V=await ye.json().catch(()=>null);if(!ye.ok||!V?.id){u.set([{field:null,code:"recordModal.uploadFailed",message:typeof V?.message=="string"?V.message:null,params:{}}]);return}v[b]={id:String(V.id),name:typeof V.name=="string"?V.name:null}}let S=(b,O)=>$a(b,O,{idempotencyKey:Na()}),y=d.route?await Xa(d.route,d.input(p,g,v),{idempotencyKey:Na()}):await S(d.fn,d.input(p,g,v));for(let b of y.ok?d.also??[]:[])if(!(b.when&&!b.when(g))&&(y=await S(b.fn,b.input(p,g,v)),!y.ok))break;if(!y.ok){N.set(null),u.set(y.issues.length?y.issues.map(b=>({...b,field:b.field&&d.issueField?d.issueField(b.field,p,g):b.field})):[{field:null,code:y.message??"recordModal.saveFailed",message:y.message,params:{}}]);return}if(d.preview){N.set({command:r,value:y.value}),fe.set(fe()+1);return}o==="dialog"?x.set(E()):f.set(E()),N.set(dt(d)==="stay"?{command:r,value:y.value}:null),c.reset();let X=y.value,U=dt(d)==="open"?d.created?.(y.value)??(X&&typeof X=="object"&&X.id!=null?String(X.id):null):null;I.delete(l.id),U&&I.delete(U);let j=()=>{document.dispatchEvent(new CustomEvent("ket:records-changed",{detail:{kind:e.kind,ids:[U??l.id]}}))};if(d.navigate){let b=new URL(d.navigate(y.value,g),location.href);if(b.origin!==location.origin)throw new Error("Record navigation must stay same-origin");he("none"),location.assign(b.href);return}let H=dt(d);if(H!=="close"&&ge.set(!0),H==="open"){F.set(null),x.set(E()),U?G(U,d.openTab??null,"replace"):he("history"),j();return}if(j(),H==="close")he("history");else if(H==="reload"){let b=$;$=null,F.set(null),x.set(E()),await Y(l.id),pe(()=>b?.isConnected?b:null)}else if(H==="refresh")await Y(l.id,!0);else if(H==="stay")fe.set(fe()+1);else if("tab"in H)$=null,F.set(null),x.set(E()),G(l.id,H.tab,"replace"),await Y(l.id);else{let b=H.dialog?null:$;$=H.dialog&&m instanceof HTMLElement?m:null,F.set(H.dialog?{name:H.dialog,params:{}}:null),x.set(E()),await Y(l.id,!0),pe(()=>b?.isConnected?b:null)}}catch{u.set([{field:null,code:"recordModal.saveFailed",message:null,params:{}}])}finally{gt(!1)}},vt=r=>{let c=u().filter(l=>!l.field),m=u().filter(l=>l.field&&!C?.querySelector(`[name="${CSS.escape(l.field)}"]`)),d=[...c,...m];return d.length?W({title:r.t("recordModal.errorTitle"),message:d.map(bt).join(" \xB7 "),tone:"danger"}):ge()?W({title:r.t("recordModal.savedTitle"),message:r.t("recordModal.saved"),tone:"positive"}):""},Za=()=>{let r=t();if(!r)return"";if(a()==="error")return we(ke,{children:[W({title:J("recordModal.errorTitle"),message:J(s()??"recordModal.loadFailed"),tone:"danger"}),w({label:J("recordModal.retry"),variant:"secondary",name:"intent",value:"retry"})]});let c=n()?.data;if(a()!=="ready"||c===void 0)return ce({label:J("recordModal.loading")});let m=Me(r,c),d=pt(m),l=d.find(o=>o.id===m.tab),h=e.header?.(m)??"",p=vt(m),i=l?l.view(m):e.body?.(m)??"";return d.length?We({id:`record-view-${e.kind.replaceAll(".","-")}`,label:e.title(m),items:d.map(o=>({id:o.id,label:o.label(m),href:m.href(o.id),active:o.id===m.tab})),context:h!==""||p!==""?we(ke,{children:[h,p]}):void 0,body:i}):we(ke,{children:[h,p,i]})},Ya=()=>{let r=t(),c=F(),m=n()?.data;if(!r||!c||m===void 0)return"";let d=e.dialogs?.[c.name];if(!d)return"";let l=Me(r,m,"dialog");return ae({id:`record-dialog-${e.kind.replaceAll(".","-")}-${c.name}`,mode:"client",presentation:"dialog",size:d.size??"default",title:d.title(l),actions:d.actions?.(l),closeLabel:J("recordModal.close"),body:we(ke,{children:[vt(l),d.view(l)]})})};return{view:()=>{fe();let r=t();if(!r)return rt(e.kind);let c=n()?.data,m=c===void 0?null:Me(r,c);return we(ke,{children:[rt(e.kind),ae({id:`record-modal-${e.kind.replaceAll(".","-")}`,mode:"client",presentation:"dialog",size:e.size??"default",height:(e.tabs?.length??0)+(e.extensionTabs?1:0)>1?"fixed":"content",fixedHeight:e.fixedHeight??"auto",title:m?e.title(m):J("recordModal.loading"),description:m?e.description?.(m)??null:null,status:m?e.status?.(m):void 0,actions:m?e.actions?.(m):void 0,closeLabel:J("recordModal.close"),body:Za()}),Ya()]})},mount:({root:r,lifetime:c})=>{C=r,document.addEventListener("click",i=>{if(i.defaultPrevented||i.button!==0||i.metaKey||i.ctrlKey||i.shiftKey||i.altKey)return;let o=i.target instanceof Element?i.target:null,g=o?.closest('[data-ui="modal-layer"][data-client-modal="true"]');if(g&&C?.contains(g)){if(o?.closest('[data-ui="modal-close"], [data-ui="modal-backdrop"], [data-record-close]')){i.preventDefault(),yt();return}let b=o?.closest("button[data-record-state], a[data-record-state]");if(b){i.preventDefault(),Xe(),Z.set({...Z(),[b.getAttribute("data-record-state")??""]:b.getAttribute("data-record-value")??""});return}let O=o?.closest(`[${Ba}]`);if(O){i.preventDefault(),Q(oe(),"record");let A=document.activeElement;$=A instanceof HTMLElement&&O.contains(A)?A:O.querySelector(Va),x.set(E());let de={};for(let[ye,V]of Object.entries(O.dataset))ye.startsWith("recordParam")&&V!==void 0&&(de[ye.slice(11).replace(/^./u,Ve=>Ve.toLowerCase())]=V);u.set([]),N.set(null),F.set({name:O.getAttribute(Ba)??"",params:de}),pe();return}if(o?.closest('button[name="intent"][value="retry"]')){i.preventDefault();let A=t();A&&Y(A.id);return}}let v=Vn(o);if(!v)return;let S=new URL(v,location.href);if(S.origin!==location.origin||S.pathname!==location.pathname)return;let y=me(S);if(!y||y.kind!==e.kind)return;i.preventDefault();let X=t(),U="route"in e.context?e.context.query??[]:[],j=new URL(location.href);if(U.some(b=>j.searchParams.get(b)!==S.searchParams.get(b))){Q(oe(),"record");for(let b of U){let O=S.searchParams.get(b);O===null?j.searchParams.delete(b):j.searchParams.set(b,O)}history.replaceState(history.state??{},"",j.href),X?.id===y.id&&Y(X.id)}if(X?.id===y.id){if((y.tab??"")===X.tab)return;Q(oe(),"record"),u.set([]),N.set(null),G(y.id,y.tab??null,"replace",()=>oe()?.querySelector('[data-ui="tab"][data-active="true"]')??null);return}G(y.id,y.tab??null,"push")},{signal:c,capture:!0}),document.addEventListener("keydown",i=>{if(i.defaultPrevented||i.key!=="Enter"&&i.key!==" ")return;let o=i.target instanceof Element?i.target:null;if(!o?.matches('[data-row-href][tabindex="0"]'))return;let g=o.getAttribute("data-row-href"),v=g?new URL(g,location.href):null;if(!v||v.origin!==location.origin||v.pathname!==location.pathname)return;let S=me(v);!S||S.kind!==e.kind||(i.preventDefault(),G(S.id,S.tab??null,"push"))},{signal:c,capture:!0}),document.addEventListener("submit",i=>{let o=i.target instanceof HTMLFormElement?i.target:null;if(!o||!C?.contains(o))return;i.preventDefault();let g=i.submitter??null,v=(g instanceof HTMLButtonElement&&g.name===Te?g.value:null)??String(new FormData(o).get(Te)??"");Wa(v,o,g)},{signal:c}),document.addEventListener("keydown",i=>{if(!t())return;let o=C?.querySelectorAll('[data-ui="modal-layer"][data-client-modal="true"]'),g=o?.[o.length-1];if(!g)return;if(i.key==="Escape"){i.preventDefault(),yt();return}if(i.key!=="Tab")return;let v=qa(g);if(!v.length){i.preventDefault(),g.querySelector('[data-ui="modal-sheet"]')?.focus();return}let S=v[0],y=v.at(-1);i.shiftKey&&(document.activeElement===S||!g.contains(document.activeElement))?(i.preventDefault(),y.focus()):!i.shiftKey&&(document.activeElement===y||!g.contains(document.activeElement))&&(i.preventDefault(),S.focus())},{signal:c}),document.addEventListener("change",i=>{let o=i.target instanceof Element?i.target:null;if(!o||!C?.contains(o))return;if(o instanceof HTMLInputElement&&o.type==="checkbox"&&o.form){let v=o.form;if(v.querySelector(`input[type="checkbox"][name^="${Be}"]`)){if(o.name.startsWith(Be)){let S=o.name.slice(Be.length);for(let y of v.querySelectorAll('input[type="checkbox"]'))!y.disabled&&!y.name.startsWith(Be)&&y.name.startsWith(S)&&(y.checked=o.checked)}Xe();return}}let g=o.getAttribute("data-record-state")??(["relation-native","reorder-list-value"].includes(o.getAttribute("data-ui")??"")?o.getAttribute("name"):null);if((o instanceof HTMLSelectElement||o instanceof HTMLInputElement)&&g){Xe(),Z.set({...Z(),[g]:o.value});return}o instanceof HTMLInputElement&&o.type==="file"&&o.hasAttribute("data-record-submit")&&o.files?.length&&o.form?.requestSubmit()},{signal:c});let m=i=>{let g=(i.target instanceof Element?i.target:null)?.closest("form[data-record-dropzone]")??null;return g&&C?.contains(g)?g:null};document.addEventListener("dragover",i=>{let o=m(i);o&&(i.preventDefault(),o.dataset.drag="1")},{signal:c}),document.addEventListener("dragleave",i=>{let o=m(i);if(!o)return;let g=i.relatedTarget;g instanceof Node&&o.contains(g)||delete o.dataset.drag},{signal:c}),document.addEventListener("drop",i=>{let o=m(i);if(!o)return;i.preventDefault(),delete o.dataset.drag;let g=i.dataTransfer?.files,v=o.querySelector('input[type="file"]');if(!v||!g?.length)return;let S=new DataTransfer;S.items.add(g[0]),v.files=S.files,o.requestSubmit()},{signal:c});let d="ket-island, div[data-ket-island]",l=i=>i instanceof Element&&(i.matches(d)||i.querySelector(d)!==null),h=new MutationObserver(i=>{se();for(let o of i){for(let g of o.removedNodes)l(g)&&document.dispatchEvent(new CustomEvent("ket:islands-detach",{detail:{root:g}}));for(let g of o.addedNodes)l(g)&&g.isConnected&&document.dispatchEvent(new CustomEvent("ket:islands-attach",{detail:{root:g}}))}});h.observe(C,{childList:!0,subtree:!0,characterData:!0}),c.addEventListener("abort",()=>h.disconnect()),window.addEventListener("resize",se,{signal:c}),C.addEventListener("load",se,{capture:!0,signal:c}),C.addEventListener("toggle",se,{capture:!0,signal:c}),document.fonts?.ready.then(()=>{c.aborted||se()}),se(),document.addEventListener("ket:records-changed",i=>{let o=i.detail;if(o?.kind===e.kind)if(!Array.isArray(o.ids)||!o.ids.length)I.clear();else for(let g of o.ids)I.delete(String(g))},{signal:c}),document.addEventListener("ket:popstate",i=>{let o=me(location.href),g=o?.kind===e.kind;!g&&!t()||(i.preventDefault(),g&&o?G(o.id,o.tab??null,"none"):he("none"))},{signal:c}),document.addEventListener("ket:navigation-complete",()=>{let i=me(location.href);i?.kind===e.kind&&!t()&&G(i.id,i.tab??null,"none")},{signal:c});let p=me(location.href);p?.kind===e.kind&&G(p.id,p.tab??null,"none"),c.addEventListener("abort",()=>{Le?.abort(),mt.stop(),re?.(),re=null,C=null})}}};import{jsx as q}from"/_ket/view/jsx-runtime.js";var Ga=()=>typeof document<"u"&&document.documentElement.lang==="en"?"en":"vi",qe="product-attribute-draft",Ce="attributeValuesOrder",R=(e,t)=>e.t(`product_backend.${t}`),ie=(e,t)=>`attributeValue.${e}.${t}`,ct=e=>{let t=e.data.record.values.map(n=>n.id),a=t;try{let n=JSON.parse(e.state(Ce,JSON.stringify(t)));Array.isArray(n)&&n.every(s=>typeof s=="string")&&(a=[...new Set(n)])}catch{}return a.map((n,s)=>{let u=e.data.record.values.find(f=>f.id===n);return{id:n,name:e.draft(ie(n,"name"),u?.name??""),htmlColor:e.draft(ie(n,"htmlColor"),u?.htmlColor??(e.draft("displayType",e.data.record.displayType)==="color"?"#000000":""))||null,sequence:s}})},zn=e=>({...e.data.record,name:e.draft("name",e.data.record.name),displayType:e.draft("displayType",e.data.record.displayType),createVariant:e.draft("createVariant",e.data.record.createVariant),values:ct(e)}),Gn=(e,t)=>{let a={...e.data.record,values:e.data.record.values.map((n,s)=>({id:n.id,name:n.name,htmlColor:n.htmlColor||(e.data.record.displayType==="color"?"#000000":null),sequence:s}))};return JSON.stringify(t)!==JSON.stringify(a)},Re=(e,t)=>({...t,id:`${qe}-${t.name}`,disabled:!e.data.permissions.save||e.busy,error:e.fieldError(t.name),value:e.draft(t.name,String(t.value??""))}),Un=e=>{let t=zn(e),a=(n,s)=>s.map(u=>({value:u,label:R(e,`${n}.${u}`)}));return q(ot,{kind:e.kind,id:qe,command:"save",dirty:Gn(e,t),fields:[Re(e,{name:"name",label:R(e,"field.name"),value:t.name,required:!0,span:"full"}),{...Re(e,{name:"displayType",label:R(e,"attributes.displayType"),value:t.displayType}),control:lt({id:`${qe}-displayType`,name:"displayType",state:"displayType",value:t.displayType,disabled:!e.data.permissions.save||e.busy,options:a("displayType",["radio","pills","select","color","multi"])})},Re(e,{name:"createVariant",label:R(e,"attributes.createVariant"),type:"select",value:t.createVariant,options:a("createVariant",["always","no_variant"])})],body:q(Oe,{title:R(e,"attributes.values"),description:e.fieldError(Ce),body:q(nt,{id:"product-attribute-values",name:Ce,label:R(e,"attributes.values"),disabled:!e.data.permissions.save||e.busy,labels:{add:R(e,"attributes.addValue"),remove:R(e,"attributes.removeValue"),up:R(e,"attributes.moveUp"),down:R(e,"attributes.moveDown"),drag:R(e,"attributes.dragValue"),empty:R(e,"attributes.emptyValues")},items:t.values.map(n=>{let s=q(K,{...Re(e,{name:ie(n.id,"name"),label:R(e,"attributes.valueName"),required:!0,value:n.name})});return{id:n.id,content:t.displayType==="color"?q(Ge,{columns:2,items:[s,q(K,{...Re(e,{name:ie(n.id,"htmlColor"),label:R(e,"attributes.color"),type:"color",value:n.htmlColor||"#000000"})})]}):s}})})})})},_n={kind:"product.attribute",labels:()=>xt[Ga()],size:"large",context:{fn:"product.attributeModalContext",input:(e,t)=>({...t?{}:{id:e},locale:Ga()})},title:e=>e.creating?R(e,"attributes.createTitle"):e.data.record.name,body:Un,actions:e=>q(et,{actions:[...e.data.permissions.save?[q(w,{type:"submit",form:qe,label:R(e,"action.save"),variant:"primary",loading:e.busy})]:[],q(st,{children:q(w,{label:e.t("recordModal.close"),variant:"tertiary"})})]}),commands:{save:{fn:"product.saveAttributeDraft",issueField:(e,t,a)=>{if(e==="values")return Ce;let n=/^values\.(\d+)\.(name|htmlColor|id)$/.exec(e);if(!n)return e;let s=ct(a).map(f=>f.id);try{let f=JSON.parse(String(t.get(Ce)??"null"));Array.isArray(f)&&f.every(x=>typeof x=="string")&&(s=f)}catch{}let u=s[Number(n[1])];return u?ie(u,n[2]==="id"?"name":n[2]):e},input:(e,t)=>({id:t.creating?crypto.randomUUID():t.id,name:String(e.get("name")??t.draft("name",t.data.record.name)).trim(),displayType:String(e.get("displayType")??t.data.record.displayType),createVariant:String(e.get("createVariant")??t.data.record.createVariant),sequence:t.data.record.sequence,values:ct(t).map((a,n)=>({id:a.id,name:String(e.get(ie(a.id,"name"))??a.name).trim(),htmlColor:String(e.get(ie(a.id,"htmlColor"))??a.htmlColor??"").trim()||null,sequence:n}))}),after:"close"}}},Sf=za(_n);export{Sf as attributeModal,_n as attributeModalDefinition};
2
+ var kt={vi:{"recordModal.close":"\u0110\xF3ng","recordModal.loading":"\u0110ang t\u1EA3i\u2026","recordModal.loadFailed":"Kh\xF4ng \u0111\u1ECDc \u0111\u01B0\u1EE3c thu\u1ED9c t\xEDnh s\u1EA3n ph\u1EA9m.","recordModal.notFound":"Thu\u1ED9c t\xEDnh kh\xF4ng c\xF2n t\u1ED3n t\u1EA1i ho\u1EB7c b\u1EA1n kh\xF4ng c\xF3 quy\u1EC1n xem.","recordModal.retry":"Th\u1EED l\u1EA1i","recordModal.errorTitle":"Ch\u01B0a l\u01B0u \u0111\u01B0\u1EE3c","recordModal.saveFailed":"Thao t\xE1c kh\xF4ng th\xE0nh c\xF4ng. H\xE3y th\u1EED l\u1EA1i.","recordModal.savedTitle":"\u0110\xE3 l\u01B0u","recordModal.saved":"Thay \u0111\u1ED5i \u0111\xE3 \u0111\u01B0\u1EE3c ghi nh\u1EADn.","recordModal.unsaved":"B\u1ECF c\xE1c thay \u0111\u1ED5i ch\u01B0a l\u01B0u?","recordModal.uploadFailed":"Kh\xF4ng t\u1EA3i \u0111\u01B0\u1EE3c t\u1EC7p l\xEAn. H\xE3y th\u1EED l\u1EA1i."},en:{"recordModal.close":"Close","recordModal.loading":"Loading\u2026","recordModal.loadFailed":"The product attribute could not be read.","recordModal.notFound":"The attribute 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 changes have been saved.","recordModal.unsaved":"Discard unsaved changes?","recordModal.uploadFailed":"The file could not be uploaded. Try again."}};import{each as nn}from"/_ket/view/index.js";import{Fragment as Rt,jsx as ae,jsxs as on}from"/_ket/view/jsx-runtime.js";var wt=["action","action-leading","action-label","action-spinner","action-group"],rn=e=>on(Rt,{children:[e.loading===!0&&ae("span",{"data-ui":"action-spinner","aria-hidden":"true"}),e.loading!==!0&&e.leading!==void 0&&ae("span",{"data-ui":"action-leading","aria-hidden":"true",children:e.leading}),!e.iconOnly&&ae("span",{"data-ui":"action-label",children:e.label})]}),R=e=>ae("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:ae(rn,{...e})});var Y=e=>ae("div",{"data-ui":"action-group",role:"group","aria-label":e.label??null,children:nn(e.actions,(t,a)=>a,t=>ae(Rt,{children:t}))});import{jsx as ii,jsxs as ri}from"/_ket/view/jsx-runtime.js";var Ct=["badge","tag","tag-remove","count-badge","avatar","code","text","media-label","media-label-image","media-label-copy"];import{each as ln}from"/_ket/view/index.js";import{Fragment as Ie,jsx as k,jsxs as ne}from"/_ket/view/jsx-runtime.js";var Lt=["notice","notice-mark","notice-copy","notice-title","notice-message","notice-actions","empty","empty-mark","empty-title","empty-message","empty-actions","loading","loading-label"],sn={info:()=>ne(Ie,{children:[k("circle",{cx:"12",cy:"12",r:"10"}),k("path",{d:"M12 16v-4"}),k("path",{d:"M12 8h.01"})]}),positive:()=>ne(Ie,{children:[k("circle",{cx:"12",cy:"12",r:"10"}),k("path",{d:"m9 12 2 2 4-4"})]}),warning:()=>ne(Ie,{children:[k("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"}),k("path",{d:"M12 9v4"}),k("path",{d:"M12 17h.01"})]}),danger:()=>ne(Ie,{children:[k("circle",{cx:"12",cy:"12",r:"10"}),k("path",{d:"M12 8v4"}),k("path",{d:"M12 16h.01"})]})},j=e=>ne("aside",{"data-ui":"notice","data-pattern":"notice","data-tone":e.tone??"info",role:e.tone==="danger"?"alert":"status",children:[k("span",{"data-ui":"notice-mark","aria-hidden":"true",children:k("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:sn[e.tone??"info"]()})}),ne("div",{"data-ui":"notice-copy",children:[k("p",{"data-ui":"notice-title",children:e.title}),k("p",{"data-ui":"notice-message",children:e.message})]}),e.actions!==void 0&&k("div",{"data-ui":"notice-actions",children:e.actions})]});var ge=e=>ne("div",{"data-ui":"loading",role:"status","aria-live":"polite",children:[k("span",{"data-ui":"loading-label",children:e.label}),k("div",{"data-ui":"skeleton","aria-hidden":"true",children:ln(Array.from({length:Math.max(1,e.lines??3)}),(t,a)=>a,(t,a)=>k("span",{"data-ui":"skeleton-line","data-line":String(a+1)}))})]});import{each as je}from"/_ket/view/index.js";import{each as fn}from"/_ket/view/index.js";import{jsx as q,jsxs as Se}from"/_ket/view/jsx-runtime.js";var Pt=["modal-layer","modal-backdrop","modal-sheet","modal-head","modal-heading","modal-title-row","modal-title","modal-description","modal-close","modal-body","modal-actions"],ie=e=>{let t=e.mode==="client",a=e.mode==="embedded";return Se("div",{"data-ui":"modal-layer","data-mode":e.mode??"overlay","data-route-modal":a||t?null:"true","data-client-modal":t?"true":null,"data-presentation":e.presentation??"sheet","data-unsaved-prompt":e.unsavedPrompt??null,children:[t?q("button",{"data-ui":"modal-backdrop",type:"button","aria-hidden":"true",tabIndex:-1,children:q("span",{children:e.closeLabel})}):q("a",{"data-ui":"modal-backdrop",href:e.closeHref??"#","aria-label":e.closeLabel,children:q("span",{children:e.closeLabel})}),Se("section",{id:e.id,"data-ui":"modal-sheet","data-size":e.size??"default","data-height":e.height==="fixed"?"fixed":null,style:e.height==="fixed"&&e.fixedHeight?`--kv-modal-fixed-height: ${e.fixedHeight}`:"",...e.dialogSemantics==="parent"?{}:{role:"dialog","aria-modal":a?"false":"true"},"aria-labelledby":e.dialogSemantics==="parent"?null:`${e.id}-title`,"aria-describedby":e.dialogSemantics!=="parent"&&e.description?`${e.id}-description`:null,tabindex:a?null:"-1",children:[Se("header",{"data-ui":"modal-head",children:[Se("div",{"data-ui":"modal-heading",children:[Se("div",{"data-ui":"modal-title-row",children:[q("h2",{"data-ui":"modal-title",id:`${e.id}-title`,children:e.title}),e.status!==void 0&&e.status]}),!!e.description&&q("p",{"data-ui":"modal-description",id:`${e.id}-description`,children:e.description})]}),t?q("button",{"data-ui":"modal-close",type:"button","aria-label":e.closeLabel,title:e.closeLabel,children:"\xD7"}):q("a",{"data-ui":"modal-close",href:e.closeHref??"#","aria-label":e.closeLabel,title:e.closeLabel,children:"\xD7"})]}),q("div",{"data-ui":"modal-body",children:e.body}),e.actions!==void 0&&q("footer",{"data-ui":"modal-actions",children:e.actions})]})]})};import{Fragment as bi,jsx as gi,jsxs as fi}from"/_ket/view/jsx-runtime.js";import{Fragment as Ti,jsx as xi,jsxs as Si}from"/_ket/view/jsx-runtime.js";var Et=["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 Ft,jsx as $,jsxs as $e}from"/_ket/view/jsx-runtime.js";var Ht=["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"],bn=e=>$(Ft,{children:fn(e.items,(t,a)=>a,t=>typeof t=="string"||typeof t=="number"?$("span",{children:t}):$(Ft,{children:t}))});var Ze=e=>$("div",{"data-ui":"grid","data-columns":String(e.columns??3),"data-align":e.align==="stretch"?"stretch":null,children:$(bn,{items:e.items})});var Ye=e=>$e("details",{"data-ui":"disclosure",open:e.open===!0?!0:void 0,children:[$("summary",{"data-ui":"disclosure-summary",children:e.summary}),$("div",{"data-ui":"disclosure-body",children:e.body})]}),Be=e=>$e("section",{"data-ui":"section",children:[$e("header",{"data-ui":"section-head",children:[$e("div",{children:[!!e.eyebrow&&$("p",{"data-ui":"section-eyebrow",children:e.eyebrow}),$("h2",{"data-ui":"section-title",children:e.title}),!!e.description&&$("p",{"data-ui":"section-description",children:e.description})]}),e.actions!==void 0&&$("div",{"data-ui":"section-actions",children:e.actions})]}),$("div",{"data-ui":"section-body",children:e.body})]});import{each as pn}from"/_ket/view/index.js";import{Fragment as hn,jsx as Te}from"/_ket/view/jsx-runtime.js";var Ke=(e,t)=>e.control!==void 0?Te(hn,{children:e.control}):e.type==="textarea"?Te("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":t,children:String(e.value??"")}):e.type==="select"?Te("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":t,children:pn(e.options??[],a=>a.value,a=>Te("option",{value:a.value,selected:String(e.value??"")===a.value,disabled:a.disabled===!0,children:a.label}))}):Te("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":t,autocomplete:e.autocomplete??"off",step:e.type==="decimal"?e.step??"any":e.step??null});import{jsx as T,jsxs as _}from"/_ket/view/jsx-runtime.js";var Ot=["field","field-label","field-required","field-control","field-options","field-option","field-option-input","field-help","field-error"],Dt=e=>!!e.error||(e.fields?.some(Dt)??!1),N=e=>{let t=e.help?`${e.id}-help`:null,a=e.error?`${e.id}-error`:null,n=[t,a].filter(Boolean).join(" ")||null,s=_("span",{"data-ui":"field-label",children:[e.label,e.required&&T("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]});return e.fields?_("div",{"data-ui":"field","data-kind":"group","data-span":"full","data-invalid":String(!!e.error),children:[T(Ye,{summary:e.label,open:e.open||Dt(e),body:T("div",{"data-ui":"form-grid",children:je(e.fields.map(u=>({...u,disabled:e.disabled||u.disabled,readOnly:e.readOnly||u.readOnly})),u=>u.id,u=>T(N,{...u}))})}),!!e.help&&T("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&T("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):e.type==="checkbox-group"?_("div",{"data-ui":"field","data-kind":"checkbox-group","data-span":e.span??"half","data-invalid":String(!!e.error),children:[_("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&T("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),T("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"group","aria-labelledby":`${e.id}-label`,children:je(e.options??[],u=>u.name??u.value,u=>_("label",{"data-ui":"field-option",children:[T("input",{"data-ui":"field-option-input",type:"checkbox",name:u.name??`${e.name}[]`,value:u.value,checked:u.checked===!0,disabled:e.disabled===!0||u.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":n,autocomplete:"off"}),T("span",{children:u.label})]}))}),!!e.help&&T("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&T("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):e.type==="radio"?_("div",{"data-ui":"field","data-kind":"radio","data-span":e.span??"half","data-invalid":String(!!e.error),children:[_("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&T("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),T("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"radiogroup","aria-labelledby":`${e.id}-label`,children:je(e.options??[],u=>u.value,u=>_("label",{"data-ui":"field-option",children:[T("input",{"data-ui":"field-option-input",type:"radio",name:e.name,value:u.value,checked:String(e.value??"")===u.value,required:e.required===!0,disabled:e.disabled===!0||u.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":n,autocomplete:"off"}),T("span",{children:u.label})]}))}),!!e.help&&T("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&T("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):_("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"&&Ke(e,n),s,e.type!=="checkbox"&&Ke(e,n),!!e.help&&T("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&T("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]})};import{each as yn}from"/_ket/view/index.js";import{jsx as fe,jsxs as et}from"/_ket/view/jsx-runtime.js";var At=["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"];var It=e=>et("a",{"data-ui":"tab","data-active":e.active===!0?"true":null,id:e.elementId,href:e.href,"aria-current":e.active===!0?"page":null,"aria-controls":e.controls,children:[e.label,e.count!==void 0&&fe("span",{"data-ui":"tab-count",children:String(e.count)})]}),$t=(e,t)=>`${e}-${t.replace(/[^a-zA-Z0-9_-]+/gu,"-")}-tab`,Bt=e=>et("nav",{"data-ui":"tabs","data-pattern":"tabs","aria-label":e.label,children:[yn(e.items,t=>t.id,t=>fe(It,{...t,elementId:e.id?$t(e.id,t.id):void 0,controls:e.panelId})),e.extension]}),Kt=e=>fe("section",{"data-ui":"tab-panel",id:e.id,"aria-labelledby":e.labelledBy,tabindex:"-1",children:e.body}),Qe=e=>{let t=`${e.id}-tabs`,a=`${e.id}-panel`,n=e.items.find(s=>s.active===!0);return et("div",{"data-ui":"tabbed-view",children:[e.context!==void 0&&e.context!==""?fe("div",{"data-ui":"tabbed-view-context",children:e.context}):"",fe(Bt,{id:t,label:e.label,items:e.items,extension:e.extension,panelId:a}),fe(Kt,{id:a,labelledBy:n?$t(t,n.id):void 0,body:e.body})]})};import{jsx as Vi,jsxs as zi}from"/_ket/view/jsx-runtime.js";var qt=["progress","progress-label","progress-value","progress-track","progress-bar"];import{each as _i}from"/_ket/view/index.js";import{Fragment as ji,jsx as Zi,jsxs as Yi}from"/_ket/view/jsx-runtime.js";var Nt=["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 tr,jsxs as ar}from"/_ket/view/jsx-runtime.js";var Jt=["popover","popover-trigger","popover-panel","popover-close"];import{jsx as rr,jsxs as or}from"/_ket/view/jsx-runtime.js";var Xt=["tooltip","tooltip-trigger","tooltip-content"];import{jsx as ur}from"/_ket/view/jsx-runtime.js";var Vt=["dialog","confirm-dialog-message"];import{each as fr}from"/_ket/view/index.js";import{jsx as pr,jsxs as hr}from"/_ket/view/jsx-runtime.js";var zt=["toast-region","toast","toast-copy","toast-title","toast-message","toast-actions"];import{jsx as xr}from"/_ket/view/jsx-runtime.js";var Gt=["spinner","visually-hidden"];import{each as kr}from"/_ket/view/index.js";import{jsx as Rr}from"/_ket/view/jsx-runtime.js";var Ut=["skeleton","skeleton-line"];import{each as Pr,effect as Mr,signal as Er}from"/_ket/view/index.js";import{jsx as Or,jsxs as Hr}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"];import{each as Ir,signal as $r}from"/_ket/view/index.js";import{jsx as Kr,jsxs as qr}from"/_ket/view/jsx-runtime.js";var Wt=["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"];import{each as Vr,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 Zt=["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 jr}from"/_ket/view/jsx-runtime.js";var Yt=["formatted-date","formatted-number","formatted-money"];import{Fragment as so,jsx as co,jsxs as uo}from"/_ket/view/jsx-runtime.js";var ea=["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 wn=['[data-ui="timeframe-menu"]','[data-ui="view-settings"]'],Lo=wn.map(e=>`${e}[open]`).join(", ");import{jsx as Eo,jsxs as Fo}from"/_ket/view/jsx-runtime.js";import{jsx as Io,jsxs as $o}from"/_ket/view/jsx-runtime.js";var ta=["switch-control","switch-track"];import{each as qo}from"/_ket/view/index.js";import{Fragment as zo,jsx as Xo,jsxs as Vo}from"/_ket/view/jsx-runtime.js";var aa=["combobox","combobox-input-row","combobox-toggle","combobox-listbox","combobox-option","combobox-empty","tag-picker"];import{Fragment as tl,jsx as Qo,jsxs as el}from"/_ket/view/jsx-runtime.js";var na=["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 rl,jsxs as ol}from"/_ket/view/jsx-runtime.js";var ia=["file-upload","drop-zone","upload-status"];import{jsx as cl}from"/_ket/view/jsx-runtime.js";var ra=["relation-picker"];import{each as gl}from"/_ket/view/index.js";import{jsx as hl,jsxs as yl}from"/_ket/view/jsx-runtime.js";var oa=["search-bar","filter-bar","applied-filters","applied-filter","saved-views","saved-view","view-settings","view-settings-options"];import{jsx as Tl,jsxs as kl}from"/_ket/view/jsx-runtime.js";var la=["inline-edit","inline-edit-value","inline-edit-form","inline-edit-actions"];import{each as Il}from"/_ket/view/index.js";import{each as Pl}from"/_ket/view/index.js";import{Fragment as Ol,jsx as Fl,jsxs as Hl}from"/_ket/view/jsx-runtime.js";var sa=["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 ql,jsxs as Nl}from"/_ket/view/jsx-runtime.js";var da=["resource-list","resource-list-item","resource-list-select","resource-list-link"];import{each as Vl}from"/_ket/view/index.js";import{jsx as Gl,jsxs as Ul}from"/_ket/view/jsx-runtime.js";var ca=["data-grid-scroll","data-grid","data-grid-cap","data-grid-cell"];import{each as Zl}from"/_ket/view/index.js";import{jsx as jl,jsxs as Ql}from"/_ket/view/jsx-runtime.js";var ua=["tree","tree-item","tree-link","tree-grid","tree-grid-row"];import{each as as}from"/_ket/view/index.js";import{jsx as is,jsxs as rs}from"/_ket/view/jsx-runtime.js";var ma=["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 ss}from"/_ket/view/index.js";import{jsx as cs,jsxs as us}from"/_ket/view/jsx-runtime.js";var ga=["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 fs}from"/_ket/view/index.js";import{jsx as ps,jsxs as hs}from"/_ket/view/jsx-runtime.js";var fa=["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 xs}from"/_ket/view/index.js";import{jsx as ks,jsxs as ws}from"/_ket/view/jsx-runtime.js";var ba=["description-list","key-value","key-value-label","key-value-value","person","person-body","avatar-group","status"];import{each as Ls}from"/_ket/view/index.js";import{jsx as pa,jsxs as Hs}from"/_ket/view/jsx-runtime.js";var ya=["record-summary","record-summary-main","record-actions","record-rail"];var it=e=>pa("nav",{"data-ui":"record-actions","aria-label":e.label??"Record actions",children:pa(Y,{actions:e.actions})});import{each as As}from"/_ket/view/index.js";import{jsx as Ks,jsxs as qs}from"/_ket/view/jsx-runtime.js";var va=["activity-timeline","activity-item","activity-marker","audit-log","audit-item"];import{each as Xs}from"/_ket/view/index.js";import{jsx as Gs,jsxs as Us}from"/_ket/view/jsx-runtime.js";var xa=["attachments","attachment","media-gallery","media-item"];import{each as Zs}from"/_ket/view/index.js";import{Fragment as ed,jsx as js,jsxs as Qs}from"/_ket/view/jsx-runtime.js";var Sa=["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 rd}from"/_ket/view/index.js";import{Fragment as ud,jsx as dd,jsxs as cd}from"/_ket/view/jsx-runtime.js";var Ta=["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 xd,jsx as vd,jsxs as Sd}from"/_ket/view/jsx-runtime.js";var ka=["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 Rd,jsxs as Cd}from"/_ket/view/jsx-runtime.js";var wa=["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 Ra=["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 Ad,jsxs as Id}from"/_ket/view/jsx-runtime.js";var Ca=["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 La=["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 zd}from"/_ket/view/index.js";import{jsx as Ud,jsxs as _d}from"/_ket/view/jsx-runtime.js";var Pa=["pipeline","pipeline-step","pipeline-arrow","pipeline-step-label","pipeline-step-value","pipeline-step-node"];import{each as Qd}from"/_ket/view/index.js";import{jsx as nc,jsxs as ic}from"/_ket/view/jsx-runtime.js";var Ma=["record-form","form-errors","form-grid","form-actions"];import{each as On}from"/_ket/view/index.js";var rt=e=>e.currentTarget instanceof HTMLElement?e.currentTarget:null,Ne=(e,t,a)=>{let n=e.querySelector('[data-ui="reorder-list-value"]');!n||n.disabled||(n.value=JSON.stringify(t),n.dispatchEvent(new Event("change",{bubbles:!0})),requestAnimationFrame(()=>{let s=document.getElementById(e.id);([...s?.querySelectorAll('[data-ui="reorder-list-row"]')??[]].find(x=>x.dataset.reorderId===a)?.querySelector('input:not([type="hidden"]), button')??s?.querySelector('[data-reorder-action="add"] button'))?.focus()}))},Ea=e=>{let t=rt(e),a=e.target instanceof Element?e.target.closest("[data-reorder-action]"):null;if(!t||!a||a.querySelector("button:disabled"))return;let n=t.querySelector('[data-ui="reorder-list-value"]');if(!n||n.disabled)return;let s=JSON.parse(n.value),u=a.closest("[data-reorder-id]")?.dataset.reorderId,f=u?s.indexOf(u):-1,x=a.dataset.reorderAction;if(x==="add"){let E=crypto.randomUUID();Ne(t,[...s,E],E)}else if(f>=0&&x==="remove")s.splice(f,1),Ne(t,s,s[Math.min(f,s.length-1)]);else if(f>=0&&(x==="up"||x==="down")){let E=f+(x==="up"?-1:1);if(E<0||E>=s.length)return;[s[f],s[E]]=[s[E],s[f]],Ne(t,s,u)}},Fa=e=>{let t=e.target instanceof Element?e.target.closest("[data-reorder-handle]"):null;if(!t||t.querySelector("button:disabled")){e.preventDefault();return}let a=t.closest("[data-reorder-id]"),n=rt(e);!a||!n||!e.dataTransfer||(e.dataTransfer.setData("application/x-ket-reorder",JSON.stringify({root:n.id,id:a.dataset.reorderId})),e.dataTransfer.effectAllowed="move")},Ha=e=>{e.dataTransfer?.types.includes("application/x-ket-reorder")&&e.preventDefault()},Oa=e=>{let t=rt(e),a=e.target instanceof Element?e.target.closest("[data-reorder-id]"):null,n=e.dataTransfer?.getData("application/x-ket-reorder");if(!(!t||!a||!n)){e.preventDefault();try{let s=JSON.parse(n);if(s.root!==t.id)return;let u=t.querySelector('[data-ui="reorder-list-value"]'),f=JSON.parse(u?.value??"[]"),x=f.indexOf(s.id),E=f.indexOf(a.dataset.reorderId??"");if(x<0||E<0||x===E)return;f.splice(x,1),f.splice(E,0,s.id),Ne(t,f,s.id)}catch{}}};import{jsx as O,jsxs as ot}from"/_ket/view/jsx-runtime.js";var Da=["reorder-list","reorder-list-value","reorder-list-rows","reorder-list-row","reorder-list-content","reorder-list-controls"],lt=e=>ot("div",{id:e.id,role:"group","aria-label":e.label,"data-ui":"reorder-list",onClick:Ea,onDragStart:Fa,onDragOver:Ha,onDrop:Oa,children:[O("input",{"data-ui":"reorder-list-value",type:"hidden",name:e.name,value:JSON.stringify(e.items.map(t=>t.id)),disabled:e.disabled,autocomplete:"off"}),O("ol",{"data-ui":"reorder-list-rows","aria-label":e.label,children:On(e.items,t=>t.id,(t,a)=>ot("li",{"data-ui":"reorder-list-row","data-reorder-id":t.id,children:[O("div",{"data-ui":"reorder-list-content",children:t.content}),ot("div",{"data-ui":"reorder-list-controls",children:[O("span",{"data-reorder-handle":!0,draggable:!e.disabled,children:O(R,{label:e.labels.drag,size:"compact",variant:"tertiary",disabled:e.disabled})}),O("span",{"data-reorder-action":"up",children:O(R,{label:e.labels.up,size:"compact",variant:"tertiary",disabled:e.disabled||a===0})}),O("span",{"data-reorder-action":"down",children:O(R,{label:e.labels.down,size:"compact",variant:"tertiary",disabled:e.disabled||a===e.items.length-1})}),O("span",{"data-reorder-action":"remove",children:O(R,{label:e.labels.remove,size:"compact",variant:"tertiary",disabled:e.disabled})})]})]}))}),!e.items.length&&O("p",{children:e.labels.empty}),O("span",{"data-reorder-action":"add",children:O(R,{label:e.labels.add,size:"compact",disabled:e.disabled})})]});var Aa={actions:wt,feedback:Lt,fields:Ot,status:Ct,navigation:At,progress:qt,menu:Nt,reorderList:Da,popover:Jt,tooltip:Xt,dialog:Vt,toast:zt,spinner:Gt,skeleton:Ut,lightbox:Wt,relationSelect:_t,searchFilter:Zt,ketTable:ea,scalarFields:ta,combobox:aa,dateTime:na,upload:ia,relationPicker:ra,listControls:oa,inlineEdit:la,resourceList:da,dataGrid:ca,tree:ua,matrix:ma,barChart:ga,timeframe:fa,recordDisplay:ba,formattedValues:Yt,recordComposition:ya,activity:va,media:xa,layouts:Ht,shell:Et,appNavigation:Sa,table:Ta,listChrome:sa,listPage:ka,formPage:Ra,recordPage:wa,dashboardPage:Ca,boardPage:La,modal:Pt,pipeline:Pa,form:Ma},Dn=[...new Set(Object.values(Aa).flat())].sort(),An=Object.freeze(Object.fromEntries(Object.entries(Aa).map(([e,t])=>[e,[...t]])));import{signal as P}from"/_ket/view/index.js";import{jsx as $n}from"/_ket/view/jsx-runtime.js";var Je="record";var we="recordDialog";var In=/^[a-z][a-z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)+$/u,Ia=e=>In.test(e),Re=(e,t)=>{if(!Ia(t.kind))throw new TypeError(`invalid record kind "${t.kind}"`);let a=new URL(String(e),"http://ket.local");return a.searchParams.set(Je,`${t.kind}:${t.id}`),t.tab?a.searchParams.set("tab",t.tab):a.searchParams.delete("tab"),t.dialog?a.searchParams.set(we,t.dialog):a.searchParams.delete(we),`${a.pathname}${a.search}`};var $a=e=>{let t=new URL(String(e),"http://ket.local");return t.searchParams.delete(Je),t.searchParams.delete("tab"),t.searchParams.delete(we),`${t.pathname}${t.search}`},be=e=>{let t=new URL(String(e),"http://ket.local"),a=t.searchParams.get(Je)??"",n=a.indexOf(":");if(n<=0||n===a.length-1)return null;let s=a.slice(0,n);return Ia(s)?{kind:s,id:a.slice(n+1),tab:t.searchParams.get("tab"),...t.searchParams.get(we)?{dialog:t.searchParams.get(we)}:{}}:null},st=e=>$n("span",{"data-ui":"record-modal-host","data-record-kind":e,hidden:!0});import{jsx as re,jsxs as Bn}from"/_ket/view/jsx-runtime.js";var dt=e=>Bn("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?re("input",{type:"hidden",name:Ce,value:e.command,autocomplete:"off"}):"",Object.entries(e.hidden??{}).map(([t,a])=>re("input",{type:"hidden",name:t,value:a,autocomplete:"off"})),e.fields.length?re("div",{"data-ui":"form-grid",children:e.fields.map(t=>N(t))}):null,e.body,e.actions?.length?re("div",{"data-ui":"form-actions",children:Y({actions:e.actions})}):""]}),ct=e=>re("select",{"data-ui":"field-control","data-record-state":e.state,id:e.id,name:e.name,required:e.required===!0,disabled:e.disabled===!0,"aria-invalid":e.invalid?"true":null,children:e.options.map(t=>re("option",{value:t.value,selected:t.value===e.value,children:t.label}))});var ut=e=>re("span",{"data-record-close":"true",children:e.children});import{Fragment as Le,jsx as vf,jsxs as Pe}from"/_ket/view/jsx-runtime.js";var Ka=e=>{let t=e??{};return(Array.isArray(t.errors)?t.errors:Array.isArray(t.issues)?t.issues:[]).map(n=>{let s=n??{},u=Array.isArray(s.path)?s.path.join("."):null;return{field:typeof s.field=="string"?s.field:u,code:String(s.code??"invalid"),message:typeof s.message=="string"?s.message:null,params:s.params&&typeof s.params=="object"?s.params:{}}})},Ua=async(e,t,a={})=>{let n=new URL(e,"https://record.invalid");if(n.origin!=="https://record.invalid"||!e.startsWith("/")||e.startsWith("//"))throw new Error("Record commands require a same-origin route");let s=await fetch(n.pathname+n.search,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json",...a.idempotencyKey?{"idempotency-key":a.idempotencyKey}:{}},body:JSON.stringify(t),signal:a.signal}),u=await s.json().catch(()=>({}));if(!s.ok||u.ok===!1)return{ok:!1,issues:Ka(u.error??u),message:s.status>=500?null:u.error?.message??u.message??null,status:s.status};let f=u.value;return f&&typeof f=="object"&&f.ok===!1?{ok:!1,issues:Ka(f),message:null,status:s.status}:{ok:!0,value:u.value}},qa=(e,t,a={})=>Ua(`/_ket/fn/${encodeURIComponent(e)}`,t,a),Kn=async(e,t)=>{let a=new URL(e,location.href);if(a.origin!==location.origin)throw new Error("Record context must stay same-origin");let n=await fetch(a.href,{credentials:"same-origin",signal:t,headers:{accept:"application/json"}});return n.ok?{ok:!0,value:await n.json()}:{ok:!1,issues:[],message:null,status:n.status}},qn=30,Nn=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."}),Ve=(e,t)=>t.messages?.[e]??t.previous?.[e]??t.labels?.[e]??Nn[e]??(/^E_[A-Z_]+$/u.test(e)?Ve("recordModal.saveFailed",t):e),Jn=(e,t)=>{let a=Ve(e,t);return a===e?Ve("recordModal.saveFailed",t):a},Ce="__command",Na="data-record-dialog",Ja=(e,t={})=>e.replace(/\{([a-zA-Z0-9_]+)\}/gu,(a,n)=>n in t?String(t[n]??""):a),_a=["a[href]","button:not(:disabled)",'input:not(:disabled):not([type="hidden"])',"select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", "),Xa=e=>[...e.querySelectorAll(_a)].filter(t=>!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&!t.matches('[data-ui="modal-backdrop"]'));var Xn=e=>{let t=[],a=e;for(;a&&a!==document.body;){let n=a.parentElement;if(!n)break;for(let s of n.children)s instanceof HTMLElement&&s!==a&&!s.matches("script, style, template")&&(t.push({element:s,inert:s.inert}),s.inert=!0);a=n}return()=>{for(let{element:n,inert:s}of t)n.inert=s}},Va=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,Vn=e=>Object.entries(e.values).some(([t,a])=>a!==e.initialValues[t])||Object.entries(e.checks).some(([t,a])=>a!==e.initialChecks[t]),za=(e,t)=>{let a=n=>Object.fromEntries(Object.entries(n).filter(([s])=>!t.includes(s)));return{values:a(e.values),checks:a(e.checks),initialValues:a(e.initialValues),initialChecks:a(e.initialChecks)}},M=()=>({values:{},checks:{},initialValues:{},initialChecks:{}}),Ga=(e,t)=>`${e}\0${t}`,Xe="__all:",mt=e=>e.after??"close",zn=400,Gn=(e,t=zn)=>{let a,n=()=>{clearTimeout(a),a=void 0};return{set:s=>{if(n(),!s){e(!1);return}a=setTimeout(()=>e(!0),t)},stop:n}},Un='a, button, input, select, textarea, label, summary, details, [data-ui="select-cell"]',_n=e=>{let t=e?.closest("a[href]");return t?t.target&&t.target!=="_self"?null:t.href:e?.closest(Un)?null:e?.closest("[data-row-href]")?.getAttribute("data-row-href")??null},Wa=e=>()=>{let t=P(null),a=P("idle"),n=P(null),s=P(null),u=P([]),f=P(M()),x=P(M()),E=P(!1),ft=P(!1),bt=Gn(o=>ft.set(o)),le=P(!1),pt=o=>{E.set(o),bt.set(o),o&&le.set(!1)},w=P(null),pe=P(0),he=P({}),D=P({}),X=P(null),B=new Map,Ya=(o,c)=>{for(B.delete(o),B.set(o,c);B.size>qn;)B.delete(B.keys().next().value)},L=null,Fe=null,He=!1,Ge=null,K=null,se=null,ye=null,ja=()=>typeof e.labels=="function"?e.labels():e.labels??{},ht=()=>({messages:n()?.messages,previous:ye,labels:ja()}),V=(o,c)=>Ja(Ve(o,ht()),c),yt=o=>o.message??Ja(Jn(o.code,ht()),o.params),vt=o=>[...e.tabs??[],...e.extensionTabs?.(o)??[]].filter(c=>c.visible?.(o)??!0),Oe=(o,c,m="record")=>{let d=()=>m==="dialog"?x():f(),l={kind:e.kind,id:o.id,creating:o.id==="new",tab:o.tab,data:c,t:V,fieldError:b=>{let i=u().find(r=>r.field===b);return i?yt(i):null},draft:(b,i="")=>{let r=d();return r.initialValues[b]??=i,r.values[b]??i},recordDraft:(b,i="")=>f().values[b]??i,draftChecked:(b,i="1",r=!1)=>{let g=d(),h=Ga(b,i);return g.initialChecks[h]??=r,g.checks[h]??r},outcome:b=>{let i=X();return i?.command===b?i.value:null},busy:ft(),dialog:w(),href:b=>Re(location.href,{kind:e.kind,id:o.id,tab:b}),state:(b,i="")=>(m==="dialog"?D()[b]:void 0)??he()[b]??i},v=vt(l);return v.length&&!v.some(b=>b.id===o.tab)&&(l.tab=v[0].id),l},ve=null,Q=async(o,c=!1)=>{Fe?.abort();let m=new AbortController;Fe=m;let d=e.cache===!1?void 0:B.get(o);d&&(ye=d.messages??ye,n.set(d),a.set("ready"),c=!0),c||a.set("loading"),s.set(null);try{let l=o==="new",v="route"in e.context?await Kn(e.context.route(o,l),m.signal):await qa(e.context.fn,e.context.input?e.context.input(o,l):l?{}:{id:o},{signal:m.signal});if(m.signal.aborted)return;if(!v.ok||!v.value){s.set(v.ok?"recordModal.notFound":v.message??"recordModal.loadFailed"),a.set("error");return}ye=v.value.messages??ye,e.cache!==!1&&Ya(o,v.value),n.set(v.value),a.set("ready"),ve&&e.dialogs?.[ve]&&(w.set({name:ve,params:{}}),me()),ve=null}catch(l){if(m.signal.aborted||l?.name==="AbortError")return;s.set("recordModal.loadFailed"),a.set("error")}},De=()=>L?[...L.querySelectorAll('[data-ui="modal-layer"][data-client-modal="true"]')]:[],de=()=>De()[0]??null,Ue=()=>De().at(-1)??null,ce=0,ue=()=>{if(e.fixedHeight||a()!=="ready")return;let o=de()?.querySelector('[data-ui="modal-sheet"][data-height="fixed"]');if(!o)return;if(window.matchMedia("(max-width: 47.9375rem)").matches){o.style.setProperty("height","100dvh","important"),o.style.removeProperty("min-height");return}let c=o.querySelector('[data-ui="tabbed-view"]');if(!c)return;let m=c.querySelector('[data-ui="tab-panel"]'),d=m?.scrollTop??0;o.style.setProperty("height","auto","important"),o.style.setProperty("min-height","0"),c.style.setProperty("height","auto"),ce=Math.max(ce,Math.ceil(o.getBoundingClientRect().height)),c.style.removeProperty("height");let l=getComputedStyle(o).maxHeight;o.style.setProperty("min-height",l==="none"?`${ce}px`:`min(${ce}px, ${l})`),m&&(m.scrollTop=d)},ee=(o,c)=>{if(!o)return;let m=c==="dialog"?x():f(),d={values:{...m.values},checks:{...m.checks},initialValues:{...m.initialValues},initialChecks:{...m.initialChecks}};for(let l of o.querySelectorAll("input[name], select[name], textarea[name]"))if(!(l.disabled||l.name===Ce)){if(l instanceof HTMLInputElement){if(l.type==="file"||l.type==="hidden")continue;if(l.type==="checkbox"||l.type==="radio"){let v=Ga(l.name,l.value);d.initialChecks[v]??=l.defaultChecked,d.checks[v]=l.checked,l.type==="checkbox"?d.values[l.name]=l.checked?l.value:"":l.checked&&(d.values[l.name]=l.value),d.initialValues[l.name]=d.values[l.name]??"";continue}}d.initialValues[l.name]??=l instanceof HTMLSelectElement?[...l.options].find(v=>v.defaultSelected)?.value??l.options[0]?.value??"":l.defaultValue,d.values[l.name]=l.value}c==="dialog"?x.set(d):f.set(d)},Ae=()=>{let o=De();ee(o[0]??null,"record"),o.length>1&&ee(o.at(-1)??null,"dialog")},xt=o=>{if(!o)return!0;let c=w()&&o===Ue()?"dialog":"record";ee(o,c);let m=c==="dialog"?x():f(),d=[...o.querySelectorAll('input[type="file"]')].some(l=>!l.disabled&&!!l.files?.length);return!Vn(m)&&!d?!0:globalThis.confirm(V("recordModal.unsaved"))},me=o=>{requestAnimationFrame(()=>{let c=De(),m=c[0],d=c.at(-1);if(!d)return;m&&(m.inert=c.length>1);let l=o?.();if(l?.isConnected&&d.contains(l)){l.focus();return}if(d.contains(document.activeElement))return;let v=d.querySelector('[data-ui="modal-sheet"]');(Xa(d).find(i=>!i.matches('[data-ui="modal-close"]'))??v)?.focus()})},W=(o,c,m,d,l)=>{let v=t(),b=v?.id===o,i=c??(b?v.tab:"");b||(ce=0,ve=l??null,Ge=document.activeElement instanceof HTMLElement?document.activeElement:null,u.set([]),le.set(!1),f.set(M()),x.set(M()),D.set({}),he.set({}),X.set(null),w.set(null),K=null,n.set(null),Q(o)),b&&l&&e.dialogs?.[l]&&(Ae(),x.set(M()),D.set({}),w.set({name:l,params:{}})),t.set({id:o,tab:i});let r=Re(location.href,{kind:e.kind,id:o,tab:i||null,dialog:l});m==="push"?(history.replaceState({...history.state??{},__ketScroll:[window.scrollX,window.scrollY]},"",location.href),history.pushState({...history.state??{},__ketRecordModal:e.kind},"",r),He=!0):m==="replace"&&history.replaceState(history.state??{},"",r),L&&!se&&(se=Xn(L)),me(d)},xe=o=>{Fe?.abort(),t.set(null),ce=0,w.set(null),u.set([]),le.set(!1),f.set(M()),x.set(M()),D.set({}),he.set({}),X.set(null),a.set("idle"),n.set(null),se?.(),se=null,o==="history"&&He?(He=!1,history.back()):o!=="none"&&(He=!1,history.replaceState(history.state??{},"",$a(location.href)));let c=Ge;Ge=null,K=null,c?.isConnected&&requestAnimationFrame(()=>c.focus())},St=()=>{if(w()){if(!xt(Ue()))return;let o=K;K=null,w.set(null);let c=t();c&&history.replaceState(history.state??{},"",Re(location.href,{kind:e.kind,id:c.id,tab:c.tab})),x.set(M()),D.set({}),u.set([]),X.set(null),me(()=>o?.isConnected?o:null);return}xt(de())&&xe("history")},Qa=async(o,c,m)=>{let d=e.commands?.[o],l=t(),v=n()?.data;if(!d||!l||v===void 0||E())return;let b=new FormData(c,m instanceof HTMLButtonElement?m:null),i=c.closest('[data-ui="modal-layer"][data-client-modal="true"]'),r=w()&&i===Ue()?"dialog":"record";ee(i,r);let g=Oe(l,v,r);if(d.confirm){let h=d.confirm(g);if(h&&!globalThis.confirm(h))return}pt(!0),u.set([]);try{let h={};for(let[p,I]of Object.entries(d.upload??{})){let F=b.get(p);if(!(F instanceof File)||F.size===0)continue;let G=new FormData;for(let[_e,an]of Object.entries(I(b,g)))G.append(_e,an);G.append("file",F,F.name);let U=await fetch("/files",{method:"POST",credentials:"same-origin",body:G}),H=await U.json().catch(()=>null);if(!U.ok||!H?.id){u.set([{field:null,code:"recordModal.uploadFailed",message:typeof H?.message=="string"?H.message:null,params:{}}]);return}h[p]={id:String(H.id),name:typeof H.name=="string"?H.name:null}}let S=(p,I)=>qa(p,I,{idempotencyKey:Va()}),y=d.route?await Ua(d.route,d.input(b,g,h),{idempotencyKey:Va()}):await S(d.fn,d.input(b,g,h));for(let p of y.ok?d.also??[]:[])if(!(p.when&&!p.when(g))&&(y=await S(p.fn,p.input(b,g,h)),!y.ok))break;if(!y.ok){X.set(null),u.set(y.issues.length?y.issues.map(p=>({...p,field:p.field&&d.issueField?d.issueField(p.field,b,g):p.field})):[{field:null,code:y.message??"recordModal.saveFailed",message:y.message,params:{}}]);return}if(d.preview){X.set({command:o,value:y.value}),pe.set(pe()+1);return}r==="dialog"?(x.set(M()),D.set({})):f.set(M()),d.clearRecordDrafts?.length&&f.set(za(f(),d.clearRecordDrafts)),X.set(mt(d)==="stay"?{command:o,value:y.value}:null),c.reset();let z=y.value,Z=mt(d)==="open"?d.created?.(y.value)??(z&&typeof z=="object"&&z.id!=null?String(z.id):null):null;B.delete(l.id),Z&&B.delete(Z);let te=()=>{document.dispatchEvent(new CustomEvent("ket:records-changed",{detail:{kind:e.kind,ids:[Z??l.id]}}))};if(d.navigate){let p=new URL(d.navigate(y.value,g),location.href);if(p.origin!==location.origin)throw new Error("Record navigation must stay same-origin");xe("none"),location.assign(p.href);return}let A=mt(d);if(A!=="close"&&le.set(!0),A==="open"){w.set(null),x.set(M()),D.set({}),Z?W(Z,d.openTab??null,"replace"):xe("history"),te();return}if(te(),A==="close")xe("history");else if(A==="reload"){let p=K;K=null,w.set(null),x.set(M()),D.set({}),history.replaceState(history.state??{},"",Re(location.href,{kind:e.kind,id:l.id,tab:l.tab})),await Q(l.id),me(()=>p?.isConnected?p:null)}else if(A==="refresh")await Q(l.id,!0);else if(A==="stay")pe.set(pe()+1);else if("tab"in A)K=null,w.set(null),x.set(M()),D.set({}),W(l.id,A.tab,"replace"),await Q(l.id);else{let p=A.dialog?null:K;K=A.dialog&&m instanceof HTMLElement?m:null,w.set(A.dialog?{name:A.dialog,params:{}}:null),x.set(M()),D.set({}),await Q(l.id,!0),me(()=>p?.isConnected?p:null)}}catch{u.set([{field:null,code:"recordModal.saveFailed",message:null,params:{}}])}finally{pt(!1)}},Tt=o=>{let c=u().filter(l=>!l.field),m=u().filter(l=>l.field&&!L?.querySelector(`[name="${CSS.escape(l.field)}"]`)),d=[...c,...m];return d.length?j({title:o.t("recordModal.errorTitle"),message:d.map(yt).join(" \xB7 "),tone:"danger"}):le()?j({title:o.t("recordModal.savedTitle"),message:o.t("recordModal.saved"),tone:"positive"}):""},en=()=>{let o=t();if(!o)return"";if(a()==="error")return Pe(Le,{children:[j({title:V("recordModal.errorTitle"),message:V(s()??"recordModal.loadFailed"),tone:"danger"}),R({label:V("recordModal.retry"),variant:"secondary",name:"intent",value:"retry"})]});let c=n()?.data;if(a()!=="ready"||c===void 0)return ge({label:V("recordModal.loading")});let m=Oe(o,c),d=vt(m),l=d.find(r=>r.id===m.tab),v=e.header?.(m)??"",b=Tt(m),i=l?l.view(m):e.body?.(m)??"";return d.length?Qe({id:`record-view-${e.kind.replaceAll(".","-")}`,label:e.title(m),items:d.map(r=>({id:r.id,label:r.label(m),href:m.href(r.id),active:r.id===m.tab})),context:v!==""||b!==""?Pe(Le,{children:[v,b]}):void 0,body:i}):Pe(Le,{children:[v,b,i]})},tn=()=>{let o=t(),c=w(),m=n()?.data;if(!o||!c||m===void 0)return"";let d=e.dialogs?.[c.name];if(!d)return"";let l=Oe(o,m,"dialog");return ie({id:`record-dialog-${e.kind.replaceAll(".","-")}-${c.name}`,mode:"client",presentation:"dialog",size:d.size??"default",title:d.title(l),description:d.description?.(l),actions:d.actions?.(l),closeLabel:V("recordModal.close"),body:Pe(Le,{children:[Tt(l),d.view(l)]})})};return{view:()=>{pe();let o=t();if(!o)return st(e.kind);let c=n()?.data,m=c===void 0?null:Oe(o,c);return Pe(Le,{children:[st(e.kind),ie({id:`record-modal-${e.kind.replaceAll(".","-")}`,mode:"client",presentation:"dialog",size:e.size??"default",height:(e.tabs?.length??0)+(e.extensionTabs?1:0)>1?"fixed":"content",fixedHeight:e.fixedHeight??"auto",title:m?e.title(m):V("recordModal.loading"),description:m?e.description?.(m)??null:null,status:m?e.status?.(m):void 0,actions:m?e.actions?.(m):void 0,closeLabel:V("recordModal.close"),body:en()}),tn()]})},mount:({root:o,lifetime:c})=>{L=o,document.addEventListener("click",i=>{if(i.defaultPrevented||i.button!==0||i.metaKey||i.ctrlKey||i.shiftKey||i.altKey)return;let r=i.target instanceof Element?i.target:null,g=r?.closest('[data-ui="modal-layer"][data-client-modal="true"]');if(g&&L?.contains(g)){if(r?.closest('[data-ui="modal-close"], [data-ui="modal-backdrop"], [data-record-close]')){i.preventDefault(),St();return}let p=r?.closest("button[data-record-state], a[data-record-state], [data-record-state-trigger]");if(p){i.preventDefault(),Ae();let F=p.getAttribute("data-record-reset-fields");if(F){let U=JSON.parse(F);if(Array.isArray(U)&&U.every(H=>typeof H=="string")){let H=w()?x:f;H.set(za(H(),U))}}let G=w()?D:he;G.set({...G(),[p.getAttribute("data-record-state-trigger")??p.getAttribute("data-record-state")??""]:p.getAttribute("data-record-value")??""});return}let I=r?.closest(`[${Na}]`);if(I){i.preventDefault(),ee(de(),"record");let F=document.activeElement;K=F instanceof HTMLElement&&I.contains(F)?F:I.querySelector(_a),x.set(M()),D.set({});let G={};for(let[U,H]of Object.entries(I.dataset))U.startsWith("recordParam")&&H!==void 0&&(G[U.slice(11).replace(/^./u,_e=>_e.toLowerCase())]=H);u.set([]),X.set(null),le.set(!1),w.set({name:I.getAttribute(Na)??"",params:G}),me();return}if(r?.closest('button[name="intent"][value="retry"]')){i.preventDefault();let F=t();F&&Q(F.id);return}}let h=_n(r);if(!h)return;let S=new URL(h,location.href);if(S.origin!==location.origin||S.pathname!==location.pathname)return;let y=be(S);if(!y||y.kind!==e.kind)return;i.preventDefault();let z=t(),Z="route"in e.context?e.context.query??[]:[],te=new URL(location.href);if(Z.some(p=>te.searchParams.get(p)!==S.searchParams.get(p))){ee(de(),"record");for(let p of Z){let I=S.searchParams.get(p);I===null?te.searchParams.delete(p):te.searchParams.set(p,I)}history.replaceState(history.state??{},"",te.href),z?.id===y.id&&Q(z.id)}if(z?.id===y.id){if((y.tab??"")===z.tab&&!y.dialog)return;ee(de(),"record"),u.set([]),X.set(null),W(y.id,y.tab??null,"replace",()=>de()?.querySelector('[data-ui="tab"][data-active="true"]')??null);return}W(y.id,y.tab??null,"push",void 0,y.dialog)},{signal:c,capture:!0}),document.addEventListener("keydown",i=>{if(i.defaultPrevented||i.key!=="Enter"&&i.key!==" ")return;let r=i.target instanceof Element?i.target:null;if(!r?.matches('[data-row-href][tabindex="0"]'))return;let g=r.getAttribute("data-row-href"),h=g?new URL(g,location.href):null;if(!h||h.origin!==location.origin||h.pathname!==location.pathname)return;let S=be(h);!S||S.kind!==e.kind||(i.preventDefault(),W(S.id,S.tab??null,"push",void 0,S.dialog))},{signal:c,capture:!0}),document.addEventListener("submit",i=>{let r=i.target instanceof HTMLFormElement?i.target:null;if(!r||!L?.contains(r))return;i.preventDefault();let g=i.submitter??null,h=(g instanceof HTMLButtonElement&&g.name===Ce?g.value:null)??String(new FormData(r).get(Ce)??"");Qa(h,r,g)},{signal:c}),document.addEventListener("keydown",i=>{if(!t())return;let r=L?.querySelectorAll('[data-ui="modal-layer"][data-client-modal="true"]'),g=r?.[r.length-1];if(!g)return;if(i.key==="Escape"){i.preventDefault(),St();return}if(i.key!=="Tab")return;let h=Xa(g);if(!h.length){i.preventDefault(),g.querySelector('[data-ui="modal-sheet"]')?.focus();return}let S=h[0],y=h.at(-1);i.shiftKey&&(document.activeElement===S||!g.contains(document.activeElement))?(i.preventDefault(),y.focus()):!i.shiftKey&&(document.activeElement===y||!g.contains(document.activeElement))&&(i.preventDefault(),S.focus())},{signal:c}),document.addEventListener("change",i=>{let r=i.target instanceof Element?i.target:null;if(!r||!L?.contains(r))return;if(r instanceof HTMLInputElement&&r.type==="checkbox"&&r.form){let h=r.form;if(h.querySelector(`input[type="checkbox"][name^="${Xe}"]`)){if(r.name.startsWith(Xe)){let S=r.name.slice(Xe.length);for(let y of h.querySelectorAll('input[type="checkbox"]'))!y.disabled&&!y.name.startsWith(Xe)&&y.name.startsWith(S)&&(y.checked=r.checked)}Ae();return}}let g=r.getAttribute("data-record-state")??(["relation-native","reorder-list-value"].includes(r.getAttribute("data-ui")??"")?r.getAttribute("name"):null);if((r instanceof HTMLSelectElement||r instanceof HTMLInputElement)&&g){Ae();let h=w()?D:he;h.set({...h(),[g]:r.value});return}r instanceof HTMLInputElement&&r.type==="file"&&(r.hasAttribute("data-record-submit")||r.form?.hasAttribute("data-record-dropzone"))&&r.files?.length&&r.form?.requestSubmit()},{signal:c});let m=i=>{let g=(i.target instanceof Element?i.target:null)?.closest("form[data-record-dropzone]")??null;return g&&L?.contains(g)?g:null};document.addEventListener("dragover",i=>{let r=m(i);r&&(i.preventDefault(),r.dataset.drag="1")},{signal:c}),document.addEventListener("dragleave",i=>{let r=m(i);if(!r)return;let g=i.relatedTarget;g instanceof Node&&r.contains(g)||delete r.dataset.drag},{signal:c}),document.addEventListener("drop",i=>{let r=m(i);if(!r)return;i.preventDefault(),delete r.dataset.drag;let g=i.dataTransfer?.files,h=r.querySelector('input[type="file"]');if(!h||!g?.length)return;let S=new DataTransfer;S.items.add(g[0]),h.files=S.files,r.requestSubmit()},{signal:c});let d="ket-island, div[data-ket-island]",l=i=>i instanceof Element&&(i.matches(d)||i.querySelector(d)!==null),v=new MutationObserver(i=>{ue();for(let r of i){for(let g of r.removedNodes)l(g)&&document.dispatchEvent(new CustomEvent("ket:islands-detach",{detail:{root:g}}));for(let g of r.addedNodes)l(g)&&g.isConnected&&document.dispatchEvent(new CustomEvent("ket:islands-attach",{detail:{root:g}}))}});v.observe(L,{childList:!0,subtree:!0,characterData:!0}),c.addEventListener("abort",()=>v.disconnect()),window.addEventListener("resize",ue,{signal:c}),L.addEventListener("load",ue,{capture:!0,signal:c}),L.addEventListener("toggle",ue,{capture:!0,signal:c}),document.fonts?.ready.then(()=>{c.aborted||ue()}),ue(),document.addEventListener("ket:records-changed",i=>{let r=i.detail;if(r?.kind===e.kind)if(!Array.isArray(r.ids)||!r.ids.length)B.clear();else for(let g of r.ids)B.delete(String(g))},{signal:c}),document.addEventListener("ket:popstate",i=>{let r=be(location.href),g=r?.kind===e.kind;!g&&!t()||(i.preventDefault(),g&&r?W(r.id,r.tab??null,"none",void 0,r.dialog):xe("none"))},{signal:c}),document.addEventListener("ket:navigation-complete",()=>{let i=be(location.href);i?.kind===e.kind&&!t()&&W(i.id,i.tab??null,"none",void 0,i.dialog)},{signal:c});let b=be(location.href);b?.kind===e.kind&&W(b.id,b.tab??null,"none",void 0,b.dialog),c.addEventListener("abort",()=>{Fe?.abort(),bt.stop(),se?.(),se=null,L=null})}}};import{jsx as J}from"/_ket/view/jsx-runtime.js";var Za=()=>typeof document<"u"&&document.documentElement.lang==="en"?"en":"vi",ze="product-attribute-draft",Ee="attributeValuesOrder",C=(e,t)=>e.t(`product_backend.${t}`),oe=(e,t)=>`attributeValue.${e}.${t}`,gt=e=>{let t=e.data.record.values.map(n=>n.id),a=t;try{let n=JSON.parse(e.state(Ee,JSON.stringify(t)));Array.isArray(n)&&n.every(s=>typeof s=="string")&&(a=[...new Set(n)])}catch{}return a.map((n,s)=>{let u=e.data.record.values.find(f=>f.id===n);return{id:n,name:e.draft(oe(n,"name"),u?.name??""),htmlColor:e.draft(oe(n,"htmlColor"),u?.htmlColor??(e.draft("displayType",e.data.record.displayType)==="color"?"#000000":""))||null,sequence:s}})},Wn=e=>({...e.data.record,name:e.draft("name",e.data.record.name),displayType:e.draft("displayType",e.data.record.displayType),createVariant:e.draft("createVariant",e.data.record.createVariant),values:gt(e)}),Zn=(e,t)=>{let a={...e.data.record,values:e.data.record.values.map((n,s)=>({id:n.id,name:n.name,htmlColor:n.htmlColor||(e.data.record.displayType==="color"?"#000000":null),sequence:s}))};return JSON.stringify(t)!==JSON.stringify(a)},Me=(e,t)=>({...t,id:`${ze}-${t.name}`,disabled:!e.data.permissions.save||e.busy,error:e.fieldError(t.name),value:e.draft(t.name,String(t.value??""))}),Yn=e=>{let t=Wn(e),a=(n,s)=>s.map(u=>({value:u,label:C(e,`${n}.${u}`)}));return J(dt,{kind:e.kind,id:ze,command:"save",dirty:Zn(e,t),fields:[Me(e,{name:"name",label:C(e,"field.name"),value:t.name,required:!0,span:"full"}),{...Me(e,{name:"displayType",label:C(e,"attributes.displayType"),value:t.displayType}),control:ct({id:`${ze}-displayType`,name:"displayType",state:"displayType",value:t.displayType,disabled:!e.data.permissions.save||e.busy,options:a("displayType",["radio","pills","select","color","multi"])})},Me(e,{name:"createVariant",label:C(e,"attributes.createVariant"),type:"select",value:t.createVariant,options:a("createVariant",["always","no_variant"])})],body:J(Be,{title:C(e,"attributes.values"),description:e.fieldError(Ee),body:J(lt,{id:"product-attribute-values",name:Ee,label:C(e,"attributes.values"),disabled:!e.data.permissions.save||e.busy,labels:{add:C(e,"attributes.addValue"),remove:C(e,"attributes.removeValue"),up:C(e,"attributes.moveUp"),down:C(e,"attributes.moveDown"),drag:C(e,"attributes.dragValue"),empty:C(e,"attributes.emptyValues")},items:t.values.map(n=>{let s=J(N,{...Me(e,{name:oe(n.id,"name"),label:C(e,"attributes.valueName"),required:!0,value:n.name})});return{id:n.id,content:t.displayType==="color"?J(Ze,{columns:2,items:[s,J(N,{...Me(e,{name:oe(n.id,"htmlColor"),label:C(e,"attributes.color"),type:"color",value:n.htmlColor||"#000000"})})]}):s}})})})})},jn={kind:"product.attribute",labels:()=>kt[Za()],size:"large",context:{fn:"product.attributeModalContext",input:(e,t)=>({...t?{}:{id:e},locale:Za()})},title:e=>e.creating?C(e,"attributes.createTitle"):e.data.record.name,body:Yn,actions:e=>J(it,{actions:[...e.data.permissions.save?[J(R,{type:"submit",form:ze,label:C(e,"action.save"),variant:"primary",loading:e.busy})]:[],J(ut,{children:J(R,{label:e.t("recordModal.close"),variant:"tertiary"})})]}),commands:{save:{fn:"product.saveAttributeDraft",issueField:(e,t,a)=>{if(e==="values")return Ee;let n=/^values\.(\d+)\.(name|htmlColor|id)$/.exec(e);if(!n)return e;let s=gt(a).map(f=>f.id);try{let f=JSON.parse(String(t.get(Ee)??"null"));Array.isArray(f)&&f.every(x=>typeof x=="string")&&(s=f)}catch{}let u=s[Number(n[1])];return u?oe(u,n[2]==="id"?"name":n[2]):e},input:(e,t)=>({id:t.creating?crypto.randomUUID():t.id,name:String(e.get("name")??t.draft("name",t.data.record.name)).trim(),displayType:String(e.get("displayType")??t.data.record.displayType),createVariant:String(e.get("createVariant")??t.data.record.createVariant),sequence:t.data.record.sequence,values:gt(t).map((a,n)=>({id:a.id,name:String(e.get(oe(a.id,"name"))??a.name).trim(),htmlColor:String(e.get(oe(a.id,"htmlColor"))??a.htmlColor??"").trim()||null,sequence:n}))}),after:"close"}}},Cf=Wa(jn);export{Cf as attributeModal,jn as attributeModalDefinition};