@case-framework/survey-editor-ui 0.3.2 → 0.3.3

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.
@@ -23,7 +23,7 @@ export interface EditorStore {
23
23
  /** True while user-authored survey mutations are temporarily paused. */
24
24
  userMutationsLocked: boolean;
25
25
  /** Set the active editor (call when opening a session) */
26
- setEditor: (surveyId: string | null, editor: SurveyEditor | null) => void;
26
+ setEditor: (surveyId: string | null, editor: SurveyEditor | null, fallbackLocale?: string) => void;
27
27
  /** Clear the active editor (call when closing/unmounting to avoid stale state on next mount) */
28
28
  clearEditor: () => void;
29
29
  /** Create and set a new blank survey editor (starts a new session) */
@@ -157,5 +157,5 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
157
157
  button:not([disabled]),
158
158
  a[href],
159
159
  [contenteditable]:not([contenteditable="false"])
160
- `;function nre(e,t){let{target:n}=e;return!(n instanceof Element)||n.closest(ere)||n===t.element||n===t.handle||t.handle?.contains(n)?!1:!!n.closest(tre)}var rre=({onSelectChangeTitle:e,onSelectEditBranching:t,onSelectEditLayout:n,onSelectDeleteGroup:r,onSelectSortFields:i})=>{let a=K(`defaultEditors.formEditor`);return(0,m.jsxs)(ZD,{children:[(0,m.jsx)(QD,{asChild:!0,children:(0,m.jsx)(W,{type:`button`,variant:`outline`,size:`icon-sm`,className:`rounded-full text-muted-foreground shadow-sm`,"aria-label":a(`fieldGroupMenuButton`),children:(0,m.jsx)(Fy,{className:`size-3.5`})})}),(0,m.jsxs)($D,{align:`end`,className:`min-w-48`,children:[(0,m.jsxs)(tO,{onSelect:e,children:[(0,m.jsx)(`span`,{className:`size-4 shrink-0`,"aria-hidden":!0}),a(`fieldGroupMenu.changeTitle`)]}),(0,m.jsxs)(tO,{disabled:!0,onSelect:t,children:[(0,m.jsx)(Qv,{className:`size-4`}),a(`fieldGroupMenu.editBranching`)]}),(0,m.jsxs)(tO,{onSelect:n,children:[(0,m.jsx)(`span`,{className:`size-4 shrink-0`,"aria-hidden":!0}),a(`fieldGroupMenu.editLayout`)]}),(0,m.jsxs)(tO,{onSelect:i,children:[(0,m.jsx)(xv,{className:`size-4`}),a(`fieldGroupMenu.sortFields`)]}),(0,m.jsx)(oO,{}),(0,m.jsxs)(tO,{variant:`destructive`,onSelect:r,children:[(0,m.jsx)(qy,{className:`size-4`}),a(`fieldGroupMenu.deleteGroup`)]})]})]})};function ire({field:e,onEdit:t,onEditKey:n,onDelete:r}){return(0,m.jsx)(`li`,{children:(0,m.jsx)(K7,{codingKey:e.key,fieldType:e.type,label:e.label,required:e.required,hasValidations:e.hasValidations,isInvalid:e.isInvalid,onClick:t,onEditKey:n,onDelete:r})})}function are({ariaLabel:e,buttonClassName:t,buttonSize:n=`sm`,buttonVariant:r=`ghost`,children:i,onSelectType:a}){let o=K(`defaultEditors.formEditor`);return(0,m.jsxs)(ZD,{children:[(0,m.jsx)(QD,{asChild:!0,children:(0,m.jsx)(W,{type:`button`,variant:r,size:n,className:t,"aria-label":e,children:i})}),(0,m.jsx)($D,{align:`start`,className:`min-w-52`,children:Fne.map(e=>{let t=B7[e];return(0,m.jsxs)(tO,{onSelect:()=>a(e),children:[(0,m.jsx)(t,{className:`size-4`}),V7(o,e)]},e)})})]})}function ore({groupId:e,item:t,displayCondition:n,index:r,onAddField:i,onChangeGroupHeader:a,onEditLayout:o,onDeleteGroup:s,onDeleteField:c,onEditField:l,onEditFieldKey:u,onSortFields:d}){let f=K(`defaultEditors.formEditor`),p=K(`itemLabelEditor`),{ref:h,isDragging:g}=aB({id:t.id,index:r,group:e}),_=t.title?.trim(),v=t.description?.trim();return(0,m.jsx)(`li`,{ref:h,className:`list-none touch-none `,children:(0,m.jsxs)(`div`,{className:U(`form-field-group-layout-scope rounded-xl border border-border bg-card p-3 shadow-sm transition-colors`,`hover:border-border/90 hover:bg-muted/40`,g&&`bg-muted/70 backdrop-blur-sm`),style:JU(t.layout),children:[(0,m.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,m.jsxs)(`button`,{type:`button`,className:`min-w-0 flex-1 flex items-start gap-2 rounded-md text-left outline-none transition-colors hover:text-foreground hover:underline focus-visible:ring-2 focus-visible:ring-ring/60`,onClick:()=>a(t.id),"aria-label":f(`fieldGroupMenu.changeTitle`),"data-field-group-header-trigger":`true`,children:[(0,m.jsx)(zv,{className:`mt-1 size-4 shrink-0 text-muted-foreground`}),_?(0,m.jsx)(`span`,{className:`min-w-0 flex-1 wrap-break-word text-base font-semibold text-foreground`,children:_}):(0,m.jsx)(`span`,{className:`min-w-0 flex-1 wrap-break-word text-base font-semibold text-muted-foreground`,children:p(`emptyLabel`)})]}),n?(0,m.jsx)(zV,{expression:n,title:f(`fieldGroupBranching`)}):t.hasDisplayCondition?(0,m.jsxs)(nb,{children:[(0,m.jsx)(rb,{asChild:!0,children:(0,m.jsx)(`span`,{className:`inline-flex shrink-0 rounded p-1 text-muted-foreground hover:bg-muted/80`,"aria-label":f(`fieldGroupBranching`),children:(0,m.jsx)(Qv,{className:`size-4`,"aria-hidden":!0})})}),(0,m.jsx)(ib,{side:`top`,children:f(`fieldGroupBranching`)})]}):null,(0,m.jsx)(rre,{onSelectChangeTitle:()=>a(t.id),onSelectEditBranching:()=>void 0,onSelectEditLayout:()=>o(t.id),onSelectDeleteGroup:()=>s(t.id),onSelectSortFields:()=>d(t.id)})]}),(0,m.jsx)(`div`,{children:v?(0,m.jsx)(`button`,{type:`button`,className:`mt-1 block w-full rounded-md text-left text-sm leading-5 text-muted-foreground outline-none transition-colors hover:text-foreground hover:underline focus-visible:ring-2 focus-visible:ring-ring/60`,onClick:()=>a(t.id),"aria-label":f(`fieldGroupMenu.changeTitle`),"data-field-group-header-trigger":`true`,children:v}):null}),(0,m.jsxs)(`div`,{className:`mt-2`,children:[(0,m.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,m.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:f(`fieldsLabel`)}),(0,m.jsx)(W,{type:`button`,variant:`outline`,size:`icon-sm`,className:`rounded-full text-muted-foreground shadow-sm`,"aria-label":f(`fieldGroupMenu.sortFields`),onClick:()=>d(t.id),children:(0,m.jsx)(xv,{className:`size-4`})})]}),(0,m.jsxs)(`div`,{className:`mt-2 space-y-2`,children:[t.fields.length>0&&(0,m.jsx)(`ol`,{className:`space-y-1`,children:t.fields.map(e=>(0,m.jsx)(ire,{field:e,onEdit:()=>l(t.id,e.id),onEditKey:()=>u(t.id,e.id),onDelete:()=>c(t.id,e.id)},e.id))}),(0,m.jsxs)(are,{ariaLabel:f(`addField`),buttonClassName:`min-w-36 justify-start gap-2 rounded-full text-muted-foreground`,onSelectType:e=>i(t.id,e),children:[(0,m.jsx)(Dy,{className:`size-4`}),f(`addField`)]})]})]})]})})}var sre=({itemId:e,items:t,onAddField:n,onChangeGroupHeader:r,onEditLayout:i,onDeleteGroup:a,onDeleteField:o,onEditField:s,onEditFieldKey:c,onSortFields:l,onItemsReorder:u})=>{let d=HC()?.surveyItems.get(e)?.displayConditions?.components;return(0,m.jsx)(lR,{sensors:[DL.configure({activationConstraints:[new CL.Distance({value:5})],preventActivation:nre})],onDragEnd:(e=>{if(e.canceled||!mz(e.operation)||!e.operation.source)return;let{source:n}=e.operation,{initialIndex:r,index:i}=n;if(r===i)return;let a=[...t],[o]=a.splice(r,1);o&&(a.splice(i,0,o),u(a))}),modifiers:e=>[...e,R7],children:(0,m.jsx)(`div`,{className:`min-h-0 max-h-[min(40rem,70svh)] overflow-y-auto`,children:(0,m.jsx)(`ol`,{className:`space-y-3 p-px`,children:t.map((t,u)=>(0,m.jsx)(ore,{groupId:e,item:t,displayCondition:d?.[t.id],index:u,onAddField:n,onChangeGroupHeader:r,onEditLayout:i,onDeleteGroup:a,onDeleteField:o,onEditField:s,onEditFieldKey:c,onSortFields:l},t.id))})})})},q7=({itemId:e,config:t,editingConfig:n,selectedLocale:r,translationNamespace:i,onPersist:a})=>{let o=K(`defaultEditors.formEditor`),s=t.fieldGroups.length,[c,u]=(0,l.useState)(null),[d,f]=(0,l.useState)(null),[p,h]=(0,l.useState)(null),[g,_]=(0,l.useState)(null),[v,y]=(0,l.useState)(null),b=t.fieldGroups.find(e=>e.id===c)??null,x=n.fieldGroups.find(e=>e.id===d)??null,S=t.fieldGroups.find(e=>e.id===p)??null,C=(g?n.fieldGroups.find(e=>e.id===g.groupId)??null:null)?.fields.find(e=>e.id===g?.fieldId)??null,w=(v?n.fieldGroups.find(e=>e.id===v.groupId)??null:null)?.fields.find(e=>e.id===v?.fieldId)??null,T=(0,l.useMemo)(()=>t.fieldGroups.flatMap(e=>e.fields),[t.fieldGroups]),E=()=>{a(e=>{e.fieldGroups=[...e.fieldGroups,uW()]})},D=e=>{a(t=>{t.fieldGroups=e})},O=(e,t)=>{a(n=>{let r=n.fieldGroups.find(t=>t.id===e);if(!r)return;let i=dW(n.fieldGroups.flatMap(e=>e.fields));r.fields=[...r.fields,fW(t,i)]})},k=(e,t)=>{a((n,r)=>{let a=n.fieldGroups.find(t=>t.id===e);a&&(a.fields=a.fields.filter(e=>e.id!==t),r.removeContentKeysWithPrefix(EU(t,i)))}),_(n=>n?.groupId===e&&n.fieldId===t?null:n),y(n=>n?.groupId===e&&n.fieldId===t?null:n)},A=e=>{a((t,n)=>{let r=t.fieldGroups.findIndex(t=>t.id===e);if(!(r<0)){n.removeContentKeysWithPrefix(CU(e,i));for(let e of t.fieldGroups[r].fields)n.removeContentKeysWithPrefix(EU(e.id,i));t.fieldGroups.splice(r,1)}}),u(t=>t===e?null:t),f(t=>t===e?null:t),h(t=>t===e?null:t),_(t=>t?.groupId===e?null:t),y(t=>t?.groupId===e?null:t)},j=e=>{u(e)},M=e=>{f(e)},N=e=>{h(e)},P=(e,t)=>{_({groupId:e,fieldId:t})},F=(e,t)=>{y({groupId:e,fieldId:t})},I=e=>{e||h(null)},L=e=>{if(p){if(JSON.stringify(S?.layout)===JSON.stringify(e)){h(null);return}a(t=>{let n=t.fieldGroups.find(e=>e.id===p);n&&(n.layout=e)}),h(null)}},ee=e=>{e||u(null)},te=e=>{e||f(null)},R=e=>{e||_(null)},ne=e=>{e||y(null)},z=(e,t)=>{a(n=>{let r=n.fieldGroups.find(t=>t.id===e);r&&(r.fields=t)})};return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(`section`,{className:`min-h-24`,children:[(0,m.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,m.jsxs)(`p`,{className:`flex flex-wrap items-baseline gap-x-2 text-sm font-semibold uppercase tracking-wider text-gray-600`,children:[(0,m.jsx)(`span`,{children:o(`responseConfig`)}),(0,m.jsxs)(`span`,{className:`font-normal normal-case tracking-normal text-muted-foreground`,children:[`(`,(0,m.jsx)(`span`,{className:`tabular-nums`,children:s}),`)`]})]}),(0,m.jsx)(W,{type:`button`,variant:`outline`,size:`icon-sm`,className:`rounded-full text-muted-foreground shadow-sm`,"aria-label":o(`addFieldGroup`),onClick:E,children:(0,m.jsx)(Dy,{className:`size-4`})})]}),(0,m.jsxs)(`div`,{className:`mt-2`,children:[s>0&&(0,m.jsx)(sre,{itemId:e,items:t.fieldGroups,onAddField:O,onChangeGroupHeader:M,onEditLayout:N,onDeleteGroup:A,onDeleteField:k,onEditField:P,onEditFieldKey:F,onSortFields:j,onItemsReorder:D}),(0,m.jsxs)(W,{type:`button`,variant:`ghost`,size:`sm`,className:U(`mt-2 min-w-44 justify-start gap-2 rounded-full text-muted-foreground`),onClick:E,children:[(0,m.jsx)(Dy,{className:`size-4`}),o(`addFieldGroup`)]})]})]}),(0,m.jsx)($ne,{open:b!==null,groupId:b?.id??null,groupTitle:b?.title,fields:b?.fields??[],onOpenChange:ee,onFieldsReorder:e=>{b&&z(b.id,e)}}),(0,m.jsx)(Jne,{open:x!==null,initialTitle:x?.title,initialDescription:x?.description,onOpenChange:te,onSave:e=>{if(!(!d||!x)){if(x.title===e.title&&x.description===e.description){f(null);return}a((t,n)=>{let a=t.fieldGroups.find(e=>e.id===d);a&&(a.title=e.title,a.description=e.description,RU(n,r,a,i))}),f(null)}}},`header-${x?.id??`closed`}-${r}-${x===null?`closed`:`open`}`),(0,m.jsx)(Zne,{open:S!==null,initialLayout:S?.layout??{base:1,xs:1,sm:1,md:1,xl:1},onOpenChange:I,onSave:L},`layout-${S?.id??`closed`}`),(0,m.jsx)(Kne,{open:C!==null,field:C,allFields:T,onOpenChange:R,onSave:e=>{if(!(!g||!C)){if(JSON.stringify(C)===JSON.stringify(e)){_(null);return}a((t,n)=>{let a=t.fieldGroups.find(e=>e.id===g.groupId);if(!a)return;let o=a.fields.findIndex(e=>e.id===g.fieldId);if(o<0)return;let s=a.fields[o],c=new Set(IU(s,i)),l=new Set(IU(e,i));for(let e of c)l.has(e)||n.removeContentKey(e);zU(n,r,e,i),a.fields[o]=e}),_(null)}}},`field-${C?.id??`closed`}`),(0,m.jsx)(qne,{open:w!==null,field:w,allFields:T,onOpenChange:ne,onSave:e=>{if(!(!v||!w)){if(w.key.trim()===e){y(null);return}a(t=>{let n=t.fieldGroups.find(e=>e.id===v.groupId);if(!n)return;let r=n.fields.findIndex(e=>e.id===v.fieldId);r<0||(n.fields[r]={...n.fields[r],key:e})}),y(null)}}},`field-key-${w?.id??`closed`}`)]})},cre=({open:e,option:t,existingOptions:n,initialLabelContent:r,initialFocusField:i=`label`,initialAdvancedOpen:a=!1,itemId:o,embeddedFormConfig:s,embeddedFormEditingConfig:c,selectedLocale:u,translationNamespace:d,onSave:f,onPersistEmbeddedForm:p})=>{let h=K(`defaultEditors.choiceEditor`),g=K(`defaultEditors.choiceEditor.advancedSettings`),_=K(`defaultEditors.choiceEditor.embeddedFormDialog`),v=K(`common.actions`),[y,b]=(0,l.useState)(a),[x,S]=(0,l.useState)(!1),[C,w]=(0,l.useState)(t?.key??``),[T,E]=(0,l.useState)(r),[D,O]=(0,l.useState)(()=>s8(r)),[k]=(0,l.useState)(0),A=e&&t!==null,j=vW(C),M=n.some(e=>e.id!==t?.id&&vW(e.key??``)===j),N=j.length===0?h(`createOptionKeyRequired`):M?h(`createOptionKeyDuplicate`):null,P=N!==null||t===null,F=t?_W(t):!1,I=+!!F,L=SW(n).key??`opt_1`,ee=e=>{t&&f({...t,key:e},T)},te=()=>{P||ee(j)};return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(ew,{open:A,onOpenChange:e=>{if(!e){if(N){S(!0);return}te()}},children:(0,m.jsxs)(aw,{closeLabel:v(`close`),className:U(`survey-editor overflow-visible border-0 bg-transparent p-0 shadow-none ring-0 transition-[max-width] duration-200`,y?`sm:max-w-5xl`:`sm:max-w-xl`),children:[(0,m.jsx)(cw,{className:`sr-only`,children:h(`editOptionDialogTitle`)}),(0,m.jsx)(`div`,{className:`max-h-[min(88svh,56rem)] overflow-y-auto rounded-xl border border-border bg-card p-3 shadow-sm`,children:(0,m.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,m.jsx)(`div`,{className:`pr-9`,children:(0,m.jsx)(O7,{draftKey:C,draftLabelEditorValue:D,keyValidationMessage:N,labelEditorInstanceKey:k,labelAutoFocus:i===`label`,keyAutoFocus:i===`key`,onDraftKeyChange:w,onDraftLabelChange:e=>{O(e.value),E(e.isEmpty?void 0:o8(e.editorState))},onSubmitShortcut:te})}),(0,m.jsxs)(v7,{open:y,onOpenChange:b,children:[(0,m.jsx)(y7,{asChild:!0,children:(0,m.jsxs)(W,{type:`button`,variant:`ghost`,size:`sm`,className:`-ml-2 w-fit aria-expanded:bg-transparent aria-expanded:hover:bg-muted`,children:[(0,m.jsx)(`span`,{children:g(`title`)}),I>0?(0,m.jsx)(UH,{variant:`secondary`,children:g(`configuredCount`,{count:I})}):null,(0,m.jsx)(Tv,{"data-icon":`inline-end`,className:`transition-transform duration-200 group-data-[state=open]/button:rotate-180`,"aria-hidden":!0})]})}),(0,m.jsx)(b7,{children:(0,m.jsxs)(`div`,{className:`pt-2`,children:[(0,m.jsx)(kC,{}),(0,m.jsxs)(`section`,{className:`py-3`,children:[(0,m.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,m.jsx)(Zv,{className:`mt-0.5 size-4 shrink-0 text-muted-foreground`,"aria-hidden":!0}),(0,m.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,m.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,m.jsx)(`h3`,{className:`text-sm font-medium text-foreground`,children:_(`title`)}),(0,m.jsxs)(ox,{children:[(0,m.jsx)(sx,{asChild:!0,children:(0,m.jsx)(W,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":_(`helpLabel`),children:(0,m.jsx)(Nv,{})})}),(0,m.jsx)(cx,{align:`start`,children:(0,m.jsxs)(ux,{children:[(0,m.jsx)(dx,{children:_(`title`)}),(0,m.jsx)(fx,{children:_(`description`)})]})})]}),F?(0,m.jsx)(UH,{variant:`outline`,children:g(`configured`)}):null]})})]}),(0,m.jsx)(`div`,{className:`mt-3`,children:(0,m.jsx)(q7,{itemId:o,config:s,editingConfig:c,selectedLocale:u,translationNamespace:d,onPersist:p})})]})]})})]})]})})]})}),(0,m.jsx)(o_,{open:x,onOpenChange:S,children:(0,m.jsxs)(l_,{className:`survey-editor`,children:[(0,m.jsxs)(u_,{children:[(0,m.jsx)(f_,{children:h(`invalidKeyDialogTitle`)}),(0,m.jsx)(p_,{children:h(`invalidKeyDialogDescription`,{validationMessage:N??``})})]}),(0,m.jsxs)(d_,{children:[(0,m.jsx)(h_,{children:h(`invalidKeyDialogKeepEditing`)}),(0,m.jsx)(m_,{onClick:()=>{w(L),ee(L)},children:h(`invalidKeyDialogUseGenerated`,{key:L})})]})]})})]})},J7=`↵`;function lre({text:e}){let t=e.split(/\r?\n/);return t.length<=1?e:(0,m.jsx)(m.Fragment,{children:t.map((e,t)=>(0,m.jsxs)(l.Fragment,{children:[t>0?(0,m.jsx)(`span`,{className:`text-muted-foreground/90 shrink-0 px-0.5 font-mono text-[0.85em] select-none`,"aria-hidden":!0,children:J7}):null,e]},`opt-label-line-${t}`))})}function ure({item:e,displayConditionLabel:t,displayCondition:n,embeddedFormLabel:r,className:i,isOverlay:a,isSourceWhileDragging:o,surfaceOnParent:s}){let c=e.labelContent?(0,d.getContentPlainText)(e.labelContent).trim().length>0:!1,l=n?(0,m.jsx)(zV,{expression:n,title:t}):e.option.hasDisplayCondition?(0,m.jsxs)(nb,{children:[(0,m.jsx)(rb,{asChild:!0,children:(0,m.jsx)(`span`,{className:`inline-flex rounded p-1 hover:bg-muted/80`,"aria-label":t,children:(0,m.jsx)(Qv,{className:`size-4`,"aria-hidden":!0})})}),(0,m.jsx)(ib,{side:`left`,children:t})]}):null,u=_W(e.option)?(0,m.jsxs)(nb,{children:[(0,m.jsx)(rb,{asChild:!0,children:(0,m.jsx)(`span`,{className:`inline-flex rounded p-1 hover:bg-muted/80`,"aria-label":r,children:(0,m.jsx)(Zv,{className:`size-4`,"aria-hidden":!0})})}),(0,m.jsx)(ib,{side:`left`,children:r})]}):null;return(0,m.jsxs)(`div`,{className:U(`flex w-full min-w-0 items-center gap-2 rounded-lg ps-3 py-2 text-sm transition-colors`,!a&&!s&&`hover:bg-muted/70`,a&&`border border-border bg-background shadow-md`,o&&`opacity-90 bg-muted/70 backdrop-blur-sm`,i),children:[(0,m.jsx)(`span`,{className:`inline-flex shrink-0 rounded-md bg-muted px-2 py-0.5 font-mono text-xs text-muted-foreground`,children:e.option.key??`OPTION`}),c?(0,m.jsx)(E7,{content:e.labelContent,className:`min-w-0 flex-1 truncate text-foreground`,paragraphClassName:`text-foreground/90`,singleLine:!0,singleLineNewlineIndicator:J7}):(0,m.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-foreground/90`,children:(0,m.jsx)(lre,{text:e.label})}),(0,m.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1 text-muted-foreground`,children:[l,u]})]})}function dre({groupId:e,item:t,index:n,displayConditionLabel:r,displayCondition:i,embeddedFormLabel:a,onEditLabel:o,onEditKey:s,onEditEmbeddedForm:c,onDuplicate:u,onDelete:d,t:f}){let[p,h]=(0,l.useState)(!1),{ref:g,isDragging:_}=aB({id:t.option.id,index:n,group:e});return(0,m.jsx)(`li`,{ref:g,className:U(`group relative touch-none`),"aria-label":f(`dragHandle`),children:(0,m.jsxs)(wB,{onOpenChange:h,children:[(0,m.jsx)(TB,{asChild:!0,children:(0,m.jsx)(`div`,{tabIndex:0,onClick:e=>{e.target instanceof Element&&e.target.closest(`[data-expression-trigger="true"]`)||o(t.option.id)},className:U(`w-full rounded-lg text-start transition-colors`,`focus-visible:ring-2 focus-visible:ring-ring`,`hover:bg-muted/70`,p&&`bg-muted/70`),children:(0,m.jsx)(ure,{item:t,displayConditionLabel:r,displayCondition:i,embeddedFormLabel:a,isSourceWhileDragging:_,revealHandleOnHover:!0,surfaceOnParent:!0})})}),(0,m.jsxs)(OB,{className:`border-border`,children:[(0,m.jsxs)(kB,{onSelect:()=>o(t.option.id),children:[(0,m.jsx)(Cy,{className:`size-4`}),f(`optionContext.editLabel`)]}),(0,m.jsxs)(kB,{onSelect:()=>s(t.option.id),children:[(0,m.jsx)(`span`,{className:`size-4 shrink-0`,"aria-hidden":!0}),f(`optionContext.editKey`)]}),(0,m.jsxs)(kB,{disabled:!0,children:[(0,m.jsx)(Qv,{className:`size-4`}),f(`optionContext.editBranching`)]}),(0,m.jsxs)(kB,{onSelect:()=>c(t.option.id),children:[(0,m.jsx)(Zv,{className:`size-4`}),f(`optionContext.editEmbeddedForm`)]}),(0,m.jsx)(NB,{}),(0,m.jsxs)(kB,{onSelect:()=>{u(t.option.id)},children:[(0,m.jsx)(Bv,{className:`size-4`}),f(`optionContext.duplicate`)]}),(0,m.jsxs)(kB,{variant:`destructive`,onSelect:e=>{e.preventDefault(),d(t.option.id)},children:[(0,m.jsx)(qy,{className:`size-4`}),f(`optionContext.delete`)]})]})]})})}var fre=({itemId:e,items:t,onItemEditLabel:n,onItemEditKey:r,onItemEditEmbeddedForm:i,onItemDuplicate:a,onItemDelete:o,onItemsReorder:s})=>{let c=K(`defaultEditors.choiceEditor`),l=K(`defaultEditors.choiceEditor.optionIndicators`),u=l(`displayCondition`),d=l(`embeddedForm`),f=HC()?.surveyItems.get(e)?.displayConditions?.components;return(0,m.jsx)(lR,{sensors:[DL.configure({activationConstraints:[new CL.Distance({value:5})]})],onDragEnd:(e=>{if(e.canceled||!mz(e.operation)||!e.operation.source)return;let{source:n}=e.operation,{initialIndex:r,index:i}=n;if(r===i)return;let a=t.map(e=>e.option),[o]=a.splice(r,1);o&&(a.splice(i,0,o),s(a))}),modifiers:e=>[...e,R7],children:(0,m.jsx)(`div`,{className:`min-h-0 max-h-[min(22rem,50svh)] overflow-y-auto`,children:(0,m.jsx)(`ol`,{className:`space-y-0.5 p-px`,children:t.map((t,s)=>(0,m.jsx)(dre,{groupId:e,item:t,index:s,displayConditionLabel:u,displayCondition:f?.[t.option.id],embeddedFormLabel:d,onEditLabel:n,onEditKey:r,onEditEmbeddedForm:i,onDuplicate:a,onDelete:o,t:c},t.option.id))})})})},Y7=({itemId:e,locale:t,contentKey:n,label:r,placeholder:i,description:a,bare:o=!1,contentPolicy:s,wrapperClassName:c,surfaceClassName:u,contentClassName:f,endOfContentEditingArea:p=!1,placeholderClassName:h,styleControls:g,templateVariables:_,resolveImageAssetUrl:v,imageAssets:y})=>{let b=K(`history`),x=HC(),S=D(),C=E(e=>e.updateItemTranslations),w=E(e=>e.commitByUser),T=E(e=>e.removeAsset),O=E(e=>e.setAsset),k=(0,l.useCallback)(async e=>{let t=(0,d.generateId)(),n=await QC(e);return O(t,{kind:`image`,source:{type:`embedded`,mediaType:e.type||`application/octet-stream`,encoding:`base64`,data:n},metadata:{filename:e.name}}),t},[O]),A=(0,l.useMemo)(()=>{if(x)return{getUsageCount:e=>x.getAssetUsages(e).length,removeAsset:e=>{T(e),w({label:b(`removeSurveyAsset`)})}}},[x,T,w,b]),j=(0,l.useMemo)(()=>x?.getItemTranslations(e)?.getContent(t,n),[n,e,t,x]),M=(0,l.useMemo)(()=>(0,d.getContentPlainText)(j),[j]),N=(0,l.useMemo)(()=>s8(j,s),[s,j]),[P,F]=(0,l.useState)(M),[I,L]=(0,l.useState)(j),[ee,te]=(0,l.useState)(()=>s8(j,s)),[R,ne]=(0,l.useState)(!1),z=(0,l.useCallback)(r=>{let i=S.getState().editor?.survey??null,a=i?.surveyItems.get(e);if(!i||!a)return;let o=i.getItemTranslations(e),s=o?.getContent(t,n),c=r?.value??P,l=r?.content??I??(0,d.createRichTextContent)(c),u=(0,d.isContentEmpty)(l)?void 0:l;if(JSON.stringify(s)===JSON.stringify(u))return;let f=o?.clone()??new d.SurveyItemTranslations;f.setContent(t,n,u),C(e,f)&&w({label:b(`updateItemContent`)})},[w,n,I,P,S,b,e,t,C]),re=(0,l.useEffectEvent)(()=>{R&&z({content:I,value:P})});(0,l.useEffect)(()=>()=>{re()},[]);let ie=()=>{F(M),L(j),te(s8(j,s)),ne(!0)},ae=()=>{ne(!1),z()},oe=e=>{e.key===`Escape`&&(e.preventDefault(),e.currentTarget.blur())},se=`${e}-${t}-${n}`,ce=R?ee:N,le=(0,m.jsx)(s?.variant===`block`?_7:g7,{id:se,value:ce,placeholder:i,onChange:e=>{let t=o8(e.editorState,s);F(e.plainText),L(t),te(e.value),R||z({content:t,value:e.plainText})},onFocus:ie,onBlur:ae,onKeyDown:oe,wrapperClassName:c,surfaceClassName:u,contentClassName:f,endOfContentEditingArea:p,placeholderClassName:h,styleControls:g,templateVariables:_,contentPolicy:s,resolveImageAssetUrl:v,imageAssets:y,registerImageAsset:k,imageAssetDeletion:A,linksEnabled:!0});return o?le:(0,m.jsxs)(MC,{children:[(0,m.jsx)(PC,{htmlFor:se,children:r}),a&&(0,m.jsx)(IC,{children:a}),le]})},pre={...y6,variant:`compact`,allowedBlockTypes:{paragraph:!0},allowedStyleAttributes:{weight:!0,italic:!0,underline:!0,color:!0}},mre={...y6,variant:`compact`,allowedBlockTypes:{paragraph:!0},allowedStyleAttributes:{weight:!0,underline:!0,color:!0}},X7={...b6,variant:`block`,allowedBlockTypes:{paragraph:!0,bulletList:!0,image:!0,separator:!0}},Z7={...X7,allowedBlockTypes:{...X7.allowedBlockTypes,heading:!0,infoBox:!0}},hre=Z7,gre={...y6,variant:`compact`,allowedBlockTypes:{paragraph:!0},allowedStyleAttributes:{weight:!0,italic:!0,underline:!0,color:!0}};function Q7(){let e=HC(),t=YC();return{imageAssets:(0,l.useMemo)(()=>t.map(([e,t])=>({assetId:e,alt:t.metadata?.alt,label:$C(t,e),previewUrl:ZC(t)})),[t]),resolveImageAssetUrl:(0,l.useCallback)(t=>ZC(e?.getAsset(t)),[e])}}var _re=({itemId:e,locale:t})=>{let n=K(`defaultEditors.questionHeader`),{templateVariables:r,defaultStyleControls:i}=D7();return(0,m.jsx)(Y7,{itemId:e,locale:t,contentKey:`cardFooter`,label:``,placeholder:n(`cardFooterPlaceholder`),bare:!0,contentPolicy:gre,contentClassName:`w-full py-1 text-sm focus-visible:outline-none focus-visible:ring-0`,styleControls:i,templateVariables:r})},$7=({itemId:e,locale:t,contentKey:n,placeholder:r,allowAdvancedBlocks:i=!1})=>{let{imageAssets:a,resolveImageAssetUrl:o}=Q7(),{templateVariables:s,defaultStyleControls:c}=D7();return(0,m.jsx)(Y7,{itemId:e,locale:t,contentKey:n,label:``,placeholder:r,bare:!0,contentPolicy:i?Z7:X7,styleControls:c,templateVariables:s,resolveImageAssetUrl:o,imageAssets:a})},vre=({itemId:e,locale:t,placeholder:n})=>{let{imageAssets:r,resolveImageAssetUrl:i}=Q7(),{templateVariables:a,defaultStyleControls:o}=D7();return(0,m.jsx)(Y7,{itemId:e,locale:t,contentKey:`content`,label:``,placeholder:n,bare:!0,contentClassName:`min-h-56`,endOfContentEditingArea:!0,contentPolicy:hre,styleControls:o,templateVariables:a,resolveImageAssetUrl:i,imageAssets:r})},yre=({itemId:e,locale:t})=>{let n=K(`defaultEditors.questionHeader`),{templateVariables:r,defaultStyleControls:i,subtitleStyleControls:a}=D7();return(0,m.jsx)(`div`,{className:`space-y-4`,children:(0,m.jsxs)(`div`,{className:`space-y-1`,children:[(0,m.jsx)(Y7,{itemId:e,locale:t,contentKey:`title`,label:``,placeholder:n(`titlePlaceholder`),bare:!0,contentPolicy:pre,contentClassName:`w-full py-1 text-lg font-medium focus-visible:outline-none focus-visible:ring-0`,styleControls:i,templateVariables:r}),(0,m.jsx)(Y7,{itemId:e,locale:t,contentKey:`subtitle`,label:``,placeholder:n(`subtitlePlaceholder`),bare:!0,contentPolicy:mre,contentClassName:`w-full text-sm italic focus-visible:outline-none focus-visible:ring-0`,styleControls:a,templateVariables:r})]})})},e9=({itemId:e,locale:t,responseSection:n})=>{let r=K(`defaultEditors.questionBody`);return(0,m.jsxs)(`div`,{className:`mx-auto flex w-full flex-col gap-4 px-4 py-3 text-base`,children:[(0,m.jsx)(yre,{itemId:e,locale:t}),(0,m.jsx)($7,{itemId:e,locale:t,contentKey:`topContent`,placeholder:r(`topContentPlaceholder`),allowAdvancedBlocks:!0}),n,(0,m.jsx)(kC,{}),(0,m.jsx)($7,{itemId:e,locale:t,contentKey:`bottomContent`,placeholder:r(`bottomContentPlaceholder`),allowAdvancedBlocks:!0}),(0,m.jsx)(_re,{itemId:e,locale:t})]})},t9=[1,2,3,4,5,10],n9=`grow cursor-pointer font-normal hover:bg-muted/70 rounded-md px-1.5 -mx-1.5 py-1 transition-colors`;function r9(e){return e===null||t9.includes(e)}function bre(e,t){return e===null?t:String(e)}function i9(e){return e===null?`unlimited`:t9.includes(e)?String(e):`custom`}var xre=({maxSelection:e,shuffleOptions:t,onMaxSelectionChange:n,onShuffleOptionsChange:r})=>{let i=K(`defaultEditors.choiceEditor`),a=(0,l.useId)(),[o,s]=(0,l.useState)(!1),[c,u]=(0,l.useState)(()=>i9(e)),[d,f]=(0,l.useState)(``),p=(0,l.useEffectEvent)(e=>{u(i9(e)),typeof e==`number`&&!r9(e)?f(String(e)):f(``)});(0,l.useEffect)(()=>{o&&p(e)},[o]);let h=()=>{if(c!==`custom`)return;let e=Number.parseInt(d.trim(),10);!Number.isFinite(e)||e<1||(n(e),s(!1))};return(0,m.jsxs)(ox,{children:[(0,m.jsx)(sx,{asChild:!0,children:(0,m.jsx)(W,{type:`button`,variant:`outline`,size:`icon-sm`,className:`rounded-full text-muted-foreground shadow-sm`,"aria-label":i(`responseSettings`),children:(0,m.jsx)(Fy,{className:`size-3.5`})})}),(0,m.jsxs)(cx,{align:`end`,className:`p-0`,children:[(0,m.jsxs)(ux,{className:`sr-only`,children:[(0,m.jsx)(dx,{children:i(`responseSettings`)}),(0,m.jsx)(fx,{children:i(`responseSettingsDescription`)})]}),(0,m.jsxs)(MC,{className:`flex gap-1 p-2 pb-0`,children:[(0,m.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col gap-2`,children:[(0,m.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,m.jsx)(ty,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":!0}),(0,m.jsx)(FC,{className:`grow text-xs`,children:i(`maxSelectionLabel`)})]}),(0,m.jsxs)(ox,{modal:!1,open:o,onOpenChange:s,children:[(0,m.jsx)(sx,{asChild:!0,children:(0,m.jsxs)(W,{type:`button`,variant:`outline`,className:`h-8 w-full min-w-0 justify-between gap-2 px-2 font-normal active:scale-100`,"aria-label":i(`maxSelectionPlaceholder`),children:[(0,m.jsx)(`span`,{className:`truncate`,children:bre(e,i(`maxSelectionUnlimited`))}),(0,m.jsx)(Tv,{className:`size-4 shrink-0 opacity-60`,"aria-hidden":!0})]})}),(0,m.jsxs)(cx,{align:`start`,sideOffset:6,className:`z-60 w-56 gap-0 p-2`,children:[(0,m.jsx)(`p`,{className:`mb-2 text-xs font-medium text-muted-foreground`,children:i(`maxSelectionLabel`)}),(0,m.jsxs)(mU,{className:`gap-0`,value:c,onValueChange:t=>{if(u(t),t===`unlimited`){n(null),s(!1);return}if(t===`custom`){typeof e==`number`&&!r9(e)?f(String(e)):f(``);return}let r=Number.parseInt(t,10);Number.isFinite(r)&&r>=1&&(n(r),s(!1))},children:[(0,m.jsxs)(x_,{htmlFor:`${a}-unlimited`,className:n9,children:[(0,m.jsx)(hU,{value:`unlimited`,id:`${a}-unlimited`}),i(`maxSelectionUnlimited`)]}),t9.map(e=>(0,m.jsxs)(x_,{htmlFor:`${a}-n-${e}`,className:n9,children:[(0,m.jsx)(hU,{value:String(e),id:`${a}-n-${e}`}),String(e)]},e)),(0,m.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,m.jsxs)(x_,{htmlFor:`${a}-custom`,className:U(n9,`grow-0 shrink-0`),children:[(0,m.jsx)(hU,{value:`custom`,id:`${a}-custom`}),i(`maxSelectionCustomPlaceholder`)]}),(0,m.jsx)(b_,{inputMode:`numeric`,className:`h-7 min-w-0 flex-1 text-sm`,placeholder:i(`maxSelectionCustomPlaceholder`),disabled:c!==`custom`,value:d,onChange:e=>f(e.target.value),onClick:()=>u(`custom`),onFocus:()=>u(`custom`),onBlur:()=>{c===`custom`&&d.trim()&&h()},onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),h())}})]})]})]})]})]}),(0,m.jsx)(IC,{className:`text-xs`,children:i(`maxSelectionDescription`)})]}),(0,m.jsx)(kC,{}),(0,m.jsxs)(MC,{orientation:`horizontal`,className:`p-2 pt-0`,children:[(0,m.jsxs)(NC,{children:[(0,m.jsx)(FC,{className:`text-xs`,children:i(`shuffleOptionsLabel`)}),(0,m.jsx)(IC,{className:`text-xs`,children:i(`shuffleOptionsDescription`)})]}),(0,m.jsx)(cH,{checked:t,onCheckedChange:r,"aria-label":i(`shuffleOptionsLabel`)})]})]})]})},Sre=({itemId:e})=>{let t=K(`defaultEditors.choiceEditor`),n=K(`history`),r=HC(),i=E(e=>e.selectedLocale),a=E(e=>e.getItemDataCopy),o=E(e=>e.updateItem),s=E(e=>e.updateItemTranslations),c=E(e=>e.commitByUser),[u,f]=(0,l.useState)(!1),[p,h]=(0,l.useState)(null),g=(0,l.useRef)(null),_=r?.surveyItems.get(e),v=xW(_?.rawItem.config,e);(0,l.useEffect)(()=>{f(!1),h(null)},[e]);let y=(0,l.useMemo)(()=>{let n=r?.getItemTranslations(e);return v.options.map((e,r)=>{let a=n?.getContent(i,hW(e.id),`en`);return{option:e,labelContent:a,label:(a?(0,d.getContentPlainText)(a).trim():``)||e.key?.trim()||t(`optionLabelFallback`,{index:r+1})}})},[v.options,e,i,r,t]),b=(0,l.useMemo)(()=>p?v.options.find(e=>e.id===p.optionId)??null:null,[v.options,p]),x=(0,l.useMemo)(()=>b?r?.getItemTranslations(e)?.getContent(i,hW(b.id)):void 0,[b,e,i,r]),S=b?gW(b.id):void 0,C=(0,l.useMemo)(()=>b?HU(lW(b.embeddedForm,b.id),r?.getItemTranslations(e),i,{fallbackLocale:`en`,translationNamespace:S}):null,[b,S,e,i,r]),w=(0,l.useMemo)(()=>b?HU(lW(b.embeddedForm,b.id),r?.getItemTranslations(e),i,{translationNamespace:S}):null,[b,S,e,i,r]),T=v.options.length,D=(e,t,n)=>{for(let r of e.locales){let i=e.getAllForLocale(r);if(i)for(let[a,o]of Object.entries(i)){if(a!==t&&!a.startsWith(`${t}.`))continue;let i=`${n}${a.slice(t.length)}`;e.setContent(r,i,(0,d.structuredCloneMethod)(o))}}},O=t=>{let r=xW(a(e).config,e);t(r),o(e,{config:r}),c({label:n(`updateItemResponseConfig`)})},k=e=>{O(t=>{t.options=e})},A=e=>{e!==v.maxSelection&&O(t=>{t.maxSelection=e})},j=e=>{e!==v.shuffleOptions&&O(t=>{t.shuffleOptions=e})},M=(t,l)=>{let u=xW(a(e).config,e);u.options=[...u.options,t];let f=r?.getItemTranslations(e)?.clone()??new d.SurveyItemTranslations;f.setContent(i,hW(t.id),l),o(e,{config:u}),s(e,f),c({label:n(`updateItemResponseConfig`)})},N=t=>{let i=xW(a(e).config,e),l=i.options.filter(e=>e.id!==t);if(l.length===i.options.length)return;i.options=l;let u=r?.getItemTranslations(e)?.clone()??new d.SurveyItemTranslations;u.removeContentKey(hW(t)),u.removeContentKeysWithPrefix(gW(t)),o(e,{config:i}),s(e,u),c({label:n(`updateItemResponseConfig`)})},P=t=>{let i=xW(a(e).config,e),l=i.options.findIndex(e=>e.id===t);if(l===-1)return;let u=i.options[l],f=CW(u,i.options),p=[...i.options];p.splice(l+1,0,f),i.options=p;let m=r?.getItemTranslations(e),h=m?.clone()??new d.SurveyItemTranslations,g=hW(t),_=hW(f.id),v=gW(t),y=gW(f.id);m?.locales.forEach(e=>{let t=m.getContent(e,g);t&&h.setContent(e,_,(0,d.structuredCloneMethod)(t))}),D(h,v,y),o(e,{config:i}),s(e,h),c({label:n(`updateItemResponseConfig`)})},F=(t,l)=>{let u=xW(a(e).config,e),f=u.options.findIndex(e=>e.id===t.id);if(h(null),f===-1)return;let p=u.options[f],m={...p,key:vW(t.key??``)},g=hW(t.id),_=r?.getItemTranslations(e),v=_?.getContent(i,g),y=p.key===m.key,b=JSON.stringify(v)===JSON.stringify(l);if(y&&b)return;u.options[f]=m;let x=_?.clone()??new d.SurveyItemTranslations;x.setContent(i,g,l),o(e,{config:u}),s(e,x),c({label:n(`updateItemResponseConfig`)})},I=()=>{f(!0)},L=e=>{h({optionId:e,focusField:`label`})},ee=e=>{h({optionId:e,focusField:`key`})},te=e=>{h({optionId:e,focusField:`advanced`,advancedOpen:!0})},R=(t,i)=>{let l=xW(a(e).config,e),u=l.options.findIndex(e=>e.id===t);if(u<0)return!1;let f=l.options[u],p=lW(f.embeddedForm,t),m=(r?.getItemTranslations(e))?.clone()??new d.SurveyItemTranslations,h=gW(t);if(i(p,m)===!1)return!1;let g=GU(p),_=g.fieldGroups.length>0?g:void 0;return l.options[u]={...f,embeddedForm:_},_||m.removeContentKeysWithPrefix(h),o(e,{config:l}),s(e,m.clone().compact()),c({label:n(`updateItemResponseConfig`)}),!0},{isShortcutActive:ne}=qH(g,{key:`c`},{enabled:!u});return(0,m.jsxs)(`section`,{className:`min-h-24`,children:[(0,m.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,m.jsxs)(`p`,{className:`flex flex-wrap items-baseline gap-x-2 text-sm font-semibold uppercase tracking-wider text-gray-600`,children:[(0,m.jsx)(`span`,{children:t(`responseConfig`)}),(0,m.jsxs)(`span`,{className:`font-normal normal-case tracking-normal text-muted-foreground`,children:[`(`,(0,m.jsx)(`span`,{className:`tabular-nums`,children:T}),`)`]})]}),(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,m.jsx)(xre,{maxSelection:v.maxSelection,shuffleOptions:v.shuffleOptions,onMaxSelectionChange:A,onShuffleOptionsChange:j}),(0,m.jsx)(W,{ref:g,type:`button`,variant:`outline`,size:`icon-sm`,className:U(`rounded-full text-muted-foreground shadow-sm`,ne&&`bg-primary/5 text-foreground ring-2 ring-ring/40 scale-[0.98]`),"aria-label":t(`addResponseElement`),onClick:I,children:(0,m.jsx)(Dy,{className:`size-4`})})]})]}),(0,m.jsxs)(`div`,{className:`mt-2`,children:[(0,m.jsx)(fre,{itemId:e,items:y,onItemEditLabel:L,onItemEditKey:ee,onItemEditEmbeddedForm:te,onItemDuplicate:P,onItemDelete:N,onItemsReorder:k}),(0,m.jsx)(kne,{isOpen:u,open:I,existingOptions:v.options,onCancel:()=>f(!1),onSubmit:M},e),b&&p&&C&&w&&S?(0,m.jsx)(cre,{open:!0,itemId:e,option:b,existingOptions:v.options,initialLabelContent:x,initialFocusField:p.focusField,initialAdvancedOpen:p.advancedOpen,embeddedFormConfig:C,embeddedFormEditingConfig:w,selectedLocale:i,translationNamespace:S,onSave:F,onPersistEmbeddedForm:e=>R(b.id,e)},`${b.id}:${p.focusField}:${p.advancedOpen===!0?`advanced`:`basic`}:${i}`):null]})]})},Cre=e=>{let t=K(`defaultEditors.placeholder`),n=K(`itemEditorCard`),r=E(e=>e.selectedLocale),i=[{id:`conditions`,title:t(`conditions`),description:n(`conditionsDescription`),icon:Qv}];return(0,m.jsx)(uU,{surveyItem:e.item,menu:{items:[(0,m.jsx)(mH,{itemId:e.item.id},`copy-item`)]},layoutVariant:`stacked`,sidePanelCards:i,children:(0,m.jsx)(e9,{itemId:e.item.id,locale:r,responseSection:(0,m.jsx)(Sre,{itemId:e.item.id})})})},wre=({itemId:e})=>{let t=K(`history`),n=HC(),r=D(),i=E(e=>e.selectedLocale),a=E(e=>e.getItemDataCopy),o=E(e=>e.updateItem),s=E(e=>e.updateItemTranslations),c=E(e=>e.commitByUser),u=n?.surveyItems.get(e),f=n?.getItemTranslations(e),p=(0,l.useMemo)(()=>lW(u?.rawItem.config,e),[u?.rawItem.config,e]),h=(0,l.useMemo)(()=>HU(p,f,i,{fallbackLocale:`en`}),[p,f,i]),g=(0,l.useMemo)(()=>HU(p,f,i),[p,f,i]),_=e=>{let t=e?.clone().compact();if(t)return Object.fromEntries(t.locales.map(e=>[e,t.getAllForLocale(e)??{}]))};return(0,m.jsx)(q7,{itemId:e,config:h,editingConfig:g,selectedLocale:i,onPersist:n=>{let i=r.getState().editor;if(!i)return!1;let l=a(e),u=lW(l.config,e),f=i.survey.getItemTranslations(e),p=f?.clone()??new d.SurveyItemTranslations;if(n(u,p)===!1)return!1;let m=GU(u),h=p.clone().compact();return JSON.stringify(l.config)===JSON.stringify(m)&&JSON.stringify(_(f))===JSON.stringify(_(h))?!1:(o(e,{config:m}),s(e,h),c({label:t(`updateItemResponseConfig`)}),!0)}})},Tre=e=>{let t=K(`defaultEditors.placeholder`),n=K(`itemEditorCard`),r=E(e=>e.selectedLocale),i=[{id:`conditions`,title:t(`conditions`),description:n(`conditionsDescription`),icon:Qv}];return(0,m.jsx)(uU,{surveyItem:e.item,menu:{items:[(0,m.jsx)(mH,{itemId:e.item.id},`copy-item`)]},layoutVariant:`stacked`,sidePanelCards:i,children:(0,m.jsx)(e9,{itemId:e.item.id,locale:r,responseSection:(0,m.jsx)(wre,{itemId:e.item.id})})})},Ere=e=>{let t=K(`defaultEditors.infoEditor`),n=K(`itemEditorCard`),r=K(`defaultEditors.placeholder`),i=E(e=>e.selectedLocale),a=[{id:`conditions`,title:r(`conditions`),description:n(`conditionsDescription`),icon:Qv}];return(0,m.jsx)(uU,{surveyItem:e.item,menu:{items:[(0,m.jsx)(mH,{itemId:e.item.id},`copy-item`)]},layoutVariant:`stacked`,sidePanelCards:a,children:(0,m.jsx)(`div`,{className:`flex w-full max-w-3xl flex-col gap-4 px-4 py-3 text-base`,children:(0,m.jsx)(vre,{itemId:e.item.id,locale:i,placeholder:t(`contentPlaceholder`)})})})};function Dre(e){return e.config.id??e.id}function a9(e,t){return`${e.id}...${t}...${Dre(e)}`}function o9(e){return new d.ConstExpression({type:d.ValueType.boolean,value:e})}function s9(e){return new d.ConstExpression({type:d.ValueType.reference,value:e})}function c9(e){return new d.ResponseVariableExpression(a9(e,`get`))}function l9(e){return new d.ResponseVariableExpression(a9(e,`isDefined`))}function u9(e){return e.length===0?o9(!1):e.length===1&&e[0]?e[0]:new d.FunctionExpression(d.FunctionExpressionNames.or,e)}function d9(e){return e.length===0?o9(!0):e.length===1&&e[0]?e[0]:new d.FunctionExpression(d.FunctionExpressionNames.and,e)}function f9(e){return new d.FunctionExpression(d.FunctionExpressionNames.not,[e])}function Ore(e){return e===`all`||e===`none`||e===`either`?e:`either`}function p9(e){return Array.isArray(e)?[...new Set(e.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(Boolean))]:[]}function m9(e){return e.config.options.map(e=>({value:e.id,label:e.key??e.id,description:e.key&&e.key!==e.id?e.id:void 0}))}function h9(e,t,n){if(n.length===0)return o9(t!==`either`);if(pW(e.config.maxSelection)){let r=n.map(t=>new d.FunctionExpression(d.FunctionExpressionNames.eq,[c9(e),s9(t)]));return t===`all`?d9(r):t===`none`?f9(u9(r)):u9(r)}let r=n.map(t=>new d.FunctionExpression(d.FunctionExpressionNames.list_contains,[c9(e),s9(t)]));return t===`all`?d9(r):t===`none`?f9(u9(r)):u9(r)}function kre(e,t){if(t.length===0)return f9(l9(e));if(pW(e.config.maxSelection))return t.length===1?new d.FunctionExpression(d.FunctionExpressionNames.eq,[c9(e),s9(t[0])]):o9(!1);let n=new Set(t),r=e.config.options.map(e=>e.id).filter(e=>!n.has(e));return d9([h9(e,`all`,t),h9(e,`none`,r)])}var Are=[{id:`choice.selectionIncludesOptions`,label:`Selection includes options`,description:`Checks whether the selected options match all, none, or either of the chosen options.`,returnType:d.ValueType.boolean,parameters:[{key:`mode`,label:`Match mode`,input:`singleSelect`,required:!0,defaultValue:`either`,getOptions:()=>[{value:`all`,label:`All`},{value:`none`,label:`None`},{value:`either`,label:`Either`}]},{key:`optionIds`,label:`Options`,input:`multiSelect`,required:!0,getOptions:m9}],buildExpression:(e,t)=>h9(e,Ore(t?.mode),p9(t?.optionIds))},{id:`choice.selectionMatchesExactly`,label:`Selection matches exactly`,description:`Checks whether the answer contains exactly the chosen option set and no other options.`,returnType:d.ValueType.boolean,parameters:[{key:`optionIds`,label:`Options`,input:`multiSelect`,required:!0,getOptions:m9}],buildExpression:(e,t)=>kre(e,p9(t?.optionIds))},{id:`choice.hasSelection`,label:`Has selection`,description:`Checks whether the question has any selected option.`,returnType:d.ValueType.boolean,buildExpression:e=>l9(e)}];function g9({itemContent:e,locales:t,locale:n}){return[...new Set([...t,...e?.locales??[],n])]}function _9(e,t){return g9(e).some(n=>!(0,d.isContentEmpty)(e.itemContent?.getContent(n,t)))}function jre(e){return _9(e,`content`)?g9(e).every(t=>!(0,d.isContentEmpty)(e.itemContent?.getContent(t,`content`)))?Dw.ready:Dw.incomplete:Dw.blank}function Mre({item:e,...t}){let n=lW(e.config,e.id).fieldGroups.some(e=>e.fields.length>0),r=!(0,d.isContentEmpty)(t.itemContent?.getContent(t.locale,`title`));return n&&r?Dw.ready:n||_9(t,`title`)?Dw.incomplete:Dw.blank}function Nre({item:e,...t}){let n=xW(e.config,e.id),r=!(0,d.isContentEmpty)(t.itemContent?.getContent(t.locale,`title`));return n.options.length>=1&&r?Dw.ready:n.options.length>=1||_9(t,`title`)?Dw.incomplete:Dw.blank}function Pre(e,t){return e&&e.trim().length>0?e:typeof t==`string`&&t.trim().length>0?t:``}var v9=({item:e,itemConfig:t,locale:n})=>{let r=K(`defaultEditors.groupPreview`),i=K(`registryLabels.items.pageBreak`),a=e,o=t,s=VC(),c=E(e=>e.editorItemRegistry),l=o?.items??a.items??[];return l.length===0?(0,m.jsx)(`div`,{className:`flex grow justify-center items-center text-center text-muted-foreground px-12 py-24 rounded-3xl border-2 border-dashed border-border`,children:(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`p`,{className:`text-lg font-medium mb-2`,children:r(`emptyTitle`)}),(0,m.jsx)(`p`,{className:`text-sm`,children:r(`emptyDescription`)})]})}):s?(0,m.jsxs)(`div`,{className:`space-y-1 p-4 bg-muted/30 rounded-lg @container/group-preview`,children:[(0,m.jsxs)(`div`,{className:`text-sm block font-medium text-muted-foreground mb-2`,children:[(0,m.jsx)(`span`,{children:r(`items`)}),(0,m.jsxs)(`span`,{className:`text-muted-foreground ml-1`,children:[`(`,l.length,`)`]})]}),(0,m.jsx)(`div`,{className:`space-y-1 hidden @sm/group-preview:block`,children:l.map(e=>{let t=s.survey.surveyItems.get(e);if(!t)return(0,m.jsxs)(`div`,{className:`flex items-center gap-3 p-3 bg-red-50 rounded-lg border border-red-200`,children:[(0,m.jsx)(`div`,{className:`shrink-0 text-red-500`,children:(0,m.jsx)(Av,{className:`size-5`})}),(0,m.jsxs)(`div`,{className:`flex-1`,children:[(0,m.jsx)(`p`,{className:`font-mono text-sm font-medium text-red-700`,children:s.survey.getItemKey(e)?.itemKey}),(0,m.jsx)(`p`,{className:`text-xs text-red-600 mt-1`,children:r(`itemNotFound`)})]})]},e);let a=qD(t,c),o=WD(t),l=Pre(t.metadata?.itemLabel,(0,d.getContentPlainText)(s?.survey.getItemTranslations(t.id)?.getContent(n,`title`,`en`)));return(0,m.jsxs)(`div`,{className:`flex items-center gap-2 p-2 bg-white rounded-lg border border-border`,children:[(0,m.jsx)(`div`,{className:`shrink-0`,style:{color:o},children:(0,m.jsx)(a.icon,{className:`size-5`})}),(0,m.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,m.jsx)(`p`,{className:`font-mono text-sm font-medium truncate grow`,style:{color:o},children:t.type===d.ReservedSurveyItemTypes.PageBreak?i(`label`):s.survey.getItemKey(e)?.itemKey}),l&&(0,m.jsx)(`p`,{className:`text-sm text-muted-foreground truncate`,children:l})]})})]},e)})}),(0,m.jsx)(`div`,{className:`grid grid-cols-2 gap-2 @sm/group-preview:hidden`,children:l.map((e,t)=>{let n=s.survey.surveyItems.get(e),a=s.survey.getItemKey(e)?.itemKey??r(`unknownItemKey`),o=n?WD(n):`#dc2626`,l=n?qD(n,c):void 0;return(0,m.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 rounded-md border border-border bg-background px-2 py-1.5`,children:[(0,m.jsx)(`span`,{className:`shrink-0 rounded-sm border border-border/70 bg-muted px-1 py-0.5 text-[10px] font-semibold leading-none text-muted-foreground`,"aria-label":r(`itemPosition`,{index:t+1}),children:t+1}),(0,m.jsx)(`div`,{className:`shrink-0`,style:{color:o},children:n&&l?(0,m.jsx)(l.icon,{className:`size-4`}):(0,m.jsx)(Av,{className:`size-4`})}),(0,m.jsx)(`p`,{className:`truncate text-xs font-mono`,style:{color:o},children:n?.type===d.ReservedSurveyItemTypes.PageBreak?i(`label`):a})]},e)})})]}):(0,m.jsx)(`div`,{className:`flex min-h-[220px] items-center justify-center rounded-xl border border-border/60 bg-muted/20`,children:(0,m.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:r(`loading`)})})},Fre=({item:e,itemContent:t,locale:n})=>{let r=K(`defaultEditors.pageBreakPreview`),i=K(`registryLabels.items.pageBreak`),a=WD(e),o=qD(e,E(e=>e.editorItemRegistry)),s=t?.getContent(n,`title`,`en`),c=(0,d.getContentPlainText)(s).trim(),l=c.length>0?c:i(`label`);return(0,m.jsxs)(`div`,{className:`min-h-[220px] rounded-xl border-2 border-dashed border-border bg-muted/20 @container/page-break-preview`,children:[(0,m.jsxs)(`div`,{className:`hidden h-full min-h-[220px] items-center justify-center gap-3 px-6 @sm/page-break-preview:flex`,children:[(0,m.jsx)(`div`,{className:`flex items-center justify-center rounded-full border border-border bg-background p-5 shadow-sm`,style:{color:a},children:(0,m.jsx)(o.icon,{className:`size-8`})}),(0,m.jsxs)(`div`,{className:`text-left`,children:[(0,m.jsx)(`p`,{className:`text-sm font-semibold tracking-wide`,style:{color:a},children:l}),(0,m.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`nextPageDescription`)})]})]}),(0,m.jsx)(`div`,{className:`flex h-full min-h-[220px] items-center justify-center @sm/page-break-preview:hidden`,children:(0,m.jsx)(`div`,{className:`flex items-center justify-center rounded-full border border-border bg-background p-6 shadow-sm`,style:{color:a},children:(0,m.jsx)(o.icon,{className:`size-10`})})})]})};function y9(e,t,n){let r=e?.getContent(t,n);return(0,d.isContentEmpty)(r)?void 0:r}function b9({title:e,subtitle:t,resolveImageAssetUrl:n}){return!e&&!t?null:(0,m.jsxs)(`div`,{className:``,children:[e&&(0,m.jsx)(E7,{content:e,resolveImageAssetUrl:n,paragraphClassName:`text-base font-medium text-foreground`}),t&&(0,m.jsx)(E7,{content:t,resolveImageAssetUrl:n,paragraphClassName:`text-sm leading-relaxed text-muted-foreground italic`})]})}var Ire=({itemContent:e,locale:t})=>{let n=K(`defaultEditors.questionPreview`),r=HC(),i=y9(e,t,`title`),a=y9(e,t,`subtitle`),o=y9(e,t,`topContent`),s=y9(e,t,`bottomContent`),c=y9(e,t,`cardFooter`),l=e=>ZC(r?.getAsset(e));return(0,m.jsxs)(`div`,{className:`space-y-1`,children:[(0,m.jsxs)(`div`,{className:`rounded-xl border border-border p-4 bg-card space-y-2`,children:[(0,m.jsx)(b9,{title:i,subtitle:a,resolveImageAssetUrl:l}),o?(0,m.jsx)(E7,{content:o,resolveImageAssetUrl:l,paragraphClassName:`text-sm leading-6 text-foreground/90`}):null,(0,m.jsx)(`div`,{className:`rounded-lg border border-dashed border-border bg-background px-4 py-6 text-sm text-muted-foreground`,children:n(`formPlaceholder`)}),s?(0,m.jsx)(E7,{content:s,resolveImageAssetUrl:l,paragraphClassName:`text-sm leading-6 text-muted-foreground`}):null]}),(0,m.jsx)(`div`,{className:`px-3`,children:(0,m.jsx)(E7,{content:c,resolveImageAssetUrl:l,paragraphClassName:`text-xs text-muted-foreground`})})]})};function Lre(e,t,n){return!t||e.length<2?[...e]:(0,d.shuffleArray)(e,(0,d.createSeededRandom)(n))}var Rre=({item:e,itemConfig:t,itemContent:n,locale:r})=>{let i=K(`defaultEditors.questionPreview`),a=HC(),o=y9(n,r,`title`),s=y9(n,r,`subtitle`),c=y9(n,r,`topContent`),l=y9(n,r,`bottomContent`),u=y9(n,r,`cardFooter`),f=xW(t,e.id),p=e=>ZC(a?.getAsset(e)),h=Lre(f.options.map((e,t)=>({option:e,index:t})),f.shuffleOptions,`preview:${e.id}`).map(({option:e,index:t})=>{let a=y9(n,r,hW(e.id));return{option:e,labelContent:a,label:(a?(0,d.getContentPlainText)(a).trim():``)||e.key?.trim()||i(`optionLabel`,{index:t+1})}});return(0,m.jsxs)(`div`,{className:`space-y-1`,children:[(0,m.jsxs)(`div`,{className:`rounded-xl border border-border p-4 bg-card space-y-2`,children:[(0,m.jsx)(b9,{title:o,subtitle:s,resolveImageAssetUrl:p}),c?(0,m.jsx)(E7,{content:c,resolveImageAssetUrl:p,paragraphClassName:`text-sm leading-6 text-foreground/90`}):null,(0,m.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,m.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-[0.12em] text-muted-foreground`,children:f.maxSelection===1?i(`singleChoice`):f.maxSelection===null?i(`choicePreviewMaxUnlimited`):i(`choicePreviewMaxUpTo`,{max:f.maxSelection})})}),(0,m.jsx)(`div`,{className:`space-y-2`,children:h.length>0?h.map(({option:e,labelContent:t,label:n})=>(0,m.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md border border-border/70 px-3 py-2 text-sm text-foreground`,children:[(0,m.jsx)(`span`,{className:`flex size-4 shrink-0 items-center justify-center border border-border bg-muted/50 ${f.maxSelection===1?`rounded-full`:`rounded-[4px]`}`}),t?(0,m.jsx)(E7,{content:t,className:`min-w-0 flex-1`,paragraphClassName:`text-sm leading-5 text-foreground`}):(0,m.jsx)(`span`,{children:n})]},e.id)):(0,m.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`choicePlaceholder`)})}),l?(0,m.jsx)(E7,{content:l,resolveImageAssetUrl:p,paragraphClassName:`text-sm leading-6 text-muted-foreground`}):null]}),(0,m.jsx)(`div`,{className:`px-3`,children:(0,m.jsx)(E7,{content:u,resolveImageAssetUrl:p,paragraphClassName:`text-xs text-muted-foreground`})})]})},zre=({itemContent:e,locale:t})=>{let n=K(`defaultEditors.infoPreview`),r=HC(),i=y9(e,t,`content`);return(0,m.jsx)(_.InfoItemCardField,{content:i,resolveImageAssetUrl:e=>ZC(r?.getAsset(e)),emptyState:(0,m.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`emptyContent`)})})},Bre=[`title`,`subtitle`,`topContent`,`bottomContent`,`description`,`cardFooter`];function Vre(e,t){return e.find(e=>e.toLowerCase().includes(t))}var Hre=e=>{let t=e.survey.surveyItems.get(e.itemId);if(!t)return;let n=e.survey.getItemTranslations(e.itemId);if(!n)return;let r=xW(t.rawItem.config,e.itemId),i=n.locales,a=[];for(let e of Bre)for(let t of i){let r=(0,d.getContentPlainText)(n.getContent(t,e)).trim();r.length>0&&a.push(r)}for(let e of r.options){let t=hW(e.id);for(let e of i){let r=(0,d.getContentPlainText)(n.getContent(e,t)).trim();r.length>0&&a.push(r)}}let o=Vre(a,e.searchTerm);if(o)return[{matchType:jw.Content,matchText:o}]},Ure=[`title`,`subtitle`,`topContent`,`bottomContent`,`cardFooter`];function Wre(e,t){return e.find(e=>e.toLowerCase().includes(t))}var x9=[{itemType:`root`,infos:{icon:Jv,labelByLocale:{en:`Root`,nl:`Root`},descriptionByLocale:{en:`Survey root item.`,nl:`Survey-rootitem.`},defaultItemClassName:`text-sky-800`,categories:[`structure`]},editorComponent:pU,previewComponent:v9,constructor:d.GroupItemCore,assistantCapability:v.rootItemAssistantCapability,isRootOnly:!0},{itemType:d.ReservedSurveyItemTypes.Group,infos:{icon:Xv,labelByLocale:{en:`Group`,nl:`Groep`},descriptionByLocale:{en:`A container for organizing survey items.`,nl:`Een container om survey-items te organiseren.`},defaultItemClassName:`text-sky-600`,categories:[`structure`]},editorComponent:dU,previewComponent:v9,constructor:d.GroupItemCore,assistantCapability:v.groupItemAssistantCapability,defaultItemKeyPrefix:`group`,getInitialItem:()=>({rawItem:{id:(0,d.generateId)(),key:`group`,itemType:d.ReservedSurveyItemTypes.Group}})},{itemType:d.ReservedSurveyItemTypes.PageBreak,infos:{icon:Vv,labelByLocale:{en:`Page break`,nl:`Pagina-einde`},descriptionByLocale:{en:`Force items after this to appear on a new page.`,nl:`Dwing items hierna om op een nieuwe pagina te verschijnen.`},defaultItemClassName:`text-red-800`,categories:[`structure`]},editorComponent:fU,previewComponent:Fre,constructor:d.PageBreakItemCore,assistantCapability:v.pageBreakItemAssistantCapability,defaultItemKeyPrefix:`page`,getInitialItem:()=>({rawItem:{id:(0,d.generateId)(),key:`page`,itemType:d.ReservedSurveyItemTypes.PageBreak}})},{itemType:`infoItem`,constructor:_.InfoItemCore,assistantCapability:v.infoItemAssistantCapability,renderComponent:_.InfoItemRenderer,previewComponent:zre,getAuthoringState:jre,searchAdapters:[e=>{let t=e.survey.getItemTranslations(e.itemId);if(t)for(let n of t.locales){let r=(0,d.getContentPlainText)(t.getContent(n,`content`)).trim();if(r.toLowerCase().includes(e.searchTerm))return[{matchType:jw.Content,matchText:r}]}}],infos:{icon:oy,labelByLocale:{en:`Info`,nl:`Info`},descriptionByLocale:{en:`Display-only content: markdown, info, warnings, media (no responses).`,nl:`Alleen-weergave-inhoud: markdown, info, waarschuwingen, media (geen antwoorden).`},gettingStarted:{rank:3,descriptionByLocale:{en:`Add an introduction or helpful context.`,nl:`Voeg een introductie of handige context toe.`}},defaultItemClassName:`text-neutral-700`,categories:[`display`]},editorComponent:Ere,defaultItemKeyPrefix:`info`,getInitialItem:e=>{let t=(0,d.generateId)(),n=new d.SurveyItemTranslations;return n.setContent(e?.locale??`en`,`content`,(0,d.createRichTextContent)(``)),{rawItem:{id:t,key:`info`,itemType:`infoItem`,config:{}},translations:n}}},{itemType:`formItem`,constructor:_.FormItemCore,assistantCapability:v.formItemAssistantCapability,renderComponent:_.FormItemRenderer,playerLocalizations:{en:{defaultRenderers:{form:{clearSelection:`Clear {label}`,clearDateSelection:`Clear selected date`,requiredError:`This field is required.`,invalidError:`Invalid response.`,datePickerSelectDate:`Select a date`,datePickerSelectMonth:`Select a month`,datePickerSelectMonthAndYear:`Select month and year`,datePickerSelectYear:`Select a year`,datePickerMonthLabel:`Month`,datePickerYearLabel:`Year`}}},de:{defaultRenderers:{form:{clearSelection:`Auswahl fuer {label} loeschen`,clearDateSelection:`Ausgewaehltes Datum loeschen`,requiredError:`Dieses Feld ist erforderlich.`,invalidError:`Ungueltige Antwort.`,datePickerSelectDate:`Datum auswaehlen`,datePickerSelectMonth:`Monat auswaehlen`,datePickerSelectMonthAndYear:`Monat und Jahr auswaehlen`,datePickerSelectYear:`Jahr auswaehlen`,datePickerMonthLabel:`Monat`,datePickerYearLabel:`Jahr`}}},nl:{defaultRenderers:{form:{clearSelection:`Selectie voor {label} wissen`,clearDateSelection:`Geselecteerde datum wissen`,requiredError:`Dit veld is verplicht.`,invalidError:`Ongeldig antwoord.`,datePickerSelectDate:`Selecteer een datum`,datePickerSelectMonth:`Selecteer een maand`,datePickerSelectMonthAndYear:`Selecteer maand en jaar`,datePickerSelectYear:`Selecteer een jaar`,datePickerMonthLabel:`Maand`,datePickerYearLabel:`Jaar`}}}},previewComponent:Ire,getAuthoringState:Mre,searchAdapters:[e=>{let t=e.survey.surveyItems.get(e.itemId);if(!t)return;let n=e.survey.getItemTranslations(e.itemId);if(!n)return;let r=lW(t.rawItem.config,e.itemId),i=[...Ure,...r.fieldGroups.flatMap(e=>[...LU(e),...e.fields.flatMap(e=>IU(e))])],a=[];for(let e of i)for(let t of n.locales){let r=(0,d.getContentPlainText)(n.getContent(t,e)).trim();r.length>0&&a.push(r)}let o=Wre(a,e.searchTerm);if(o)return[{matchType:jw.Content,matchText:o}]}],infos:{icon:Iv,labelByLocale:{en:`Form`,nl:`Formulier`},descriptionByLocale:{en:`Composable forms with groups and fields.`,nl:`Samenstelbare formulieren met groepen en velden.`},gettingStarted:{rank:1,descriptionByLocale:{en:`Collect an answer with a flexible question.`,nl:`Verzamel een antwoord met een flexibele vraag.`}},defaultItemClassName:`text-emerald-800`,categories:[`question`]},editorComponent:Tre,defaultItemKeyPrefix:`form`,getInitialItem:()=>({rawItem:{id:(0,d.generateId)(),key:`form`,itemType:`formItem`,config:{}}})},{itemType:`choiceItem`,constructor:_.ChoiceItemCore,assistantCapability:v.choiceItemAssistantCapability,renderComponent:_.ChoiceItemRenderer,previewComponent:Rre,getAuthoringState:Nre,searchAdapters:[Hre],playerLocalizations:{en:{defaultRenderers:{choice:{embeddedFormResetTitle:`Reset embedded form?`,embeddedFormResetDescription:`Changing {optionLabel} will clear the answers entered in its embedded form.`,embeddedFormResetConfirm:`Reset form`,embeddedFormResetCancel:`Keep answers`}}},de:{defaultRenderers:{choice:{embeddedFormResetTitle:`Eingebettetes Formular zuruecksetzen?`,embeddedFormResetDescription:`Wenn {optionLabel} geaendert wird, werden die Antworten im eingebetteten Formular entfernt.`,embeddedFormResetConfirm:`Formular zuruecksetzen`,embeddedFormResetCancel:`Antworten behalten`}}},nl:{defaultRenderers:{choice:{embeddedFormResetTitle:`Ingebed formulier resetten?`,embeddedFormResetDescription:`Als {optionLabel} wordt gewijzigd, worden de antwoorden in het ingebedde formulier gewist.`,embeddedFormResetConfirm:`Formulier resetten`,embeddedFormResetCancel:`Antwoorden behouden`}}}},infos:{icon:dy,labelByLocale:{en:`Choice`,nl:`Keuze`},descriptionByLocale:{en:`Choice groups with a configurable maximum number of selections; options may nest forms later.`,nl:`Keuzegroepen met een configureerbaar maximaal aantal selecties; opties kunnen later formulieren bevatten.`},gettingStarted:{rank:2,descriptionByLocale:{en:`Let respondents choose from a set of options.`,nl:`Laat respondenten uit een reeks opties kiezen.`}},defaultItemClassName:`text-fuchsia-800`,categories:[`question`]},expressions:Are,editorComponent:Cre,defaultItemKeyPrefix:`choice`,getInitialItem:()=>{let e=(0,d.generateId)();return{rawItem:{id:e,key:`choice`,itemType:`choiceItem`,config:mW(e)}}}}],S9,C9;function w9(e){let t={};for(let[n,r]of Object.entries(e))t[n]=typeof r==`string`?r:w9(r);return t}function Gre(e){let t={};for(let[n,r]of Object.entries(e))t[n]=w9(r);return t}function T9(e){return{...e,infos:e.infos?{...e.infos,labelByLocale:{...e.infos.labelByLocale},descriptionByLocale:{...e.infos.descriptionByLocale},categories:[...e.infos.categories]}:void 0,playerLocalizations:e.playerLocalizations?Gre(e.playerLocalizations):void 0,expressions:e.expressions?[...e.expressions]:void 0,searchAdapters:e.searchAdapters?[...e.searchAdapters]:void 0}}function E9(e){return e.map(e=>T9(e))}function D9(e={}){let{includeDefaultEntries:t=!0,entries:n=[],conflictStrategy:r=`override`}=e,i=[],a=new Map,o=e=>{let t=a.get(e.itemType),n=T9(e);if(t===void 0){a.set(e.itemType,i.length),i.push(n);return}if(r===`error`)throw Error(`Duplicate item registry entry for type: ${e.itemType}`);i[t]=n};if(t)for(let e of x9)o(e);for(let e of n)o(e);return i}function O9(){return E9(x9)}function Kre(e={}){return Kw(D9(e),{requireBuiltInTypes:e.requireBuiltInTypes,categoryLabels:e.categoryLabels})}function qre(e={}){return Hw(D9(e),{requireRenderer:e.requireRenderer})}function k9(){return S9||=Kw(x9),S9}function Jre(){return C9||=Hw(x9),C9}var Yre=(e,t)=>{let n=new Set,r=[];for(let i of[...e].reverse())if(!(!gw(i)||!i.itemId)&&!(i.itemId===t||n.has(i.itemId))&&(n.add(i.itemId),r.push(i.itemId),r.length>=5))break;return r.length>0?r:void 0},A9=({itemRegistry:e})=>e.assistantCapabilities.manifest,j9=({sessionId:e,revision:t,editor:n,location:r,navigationHistory:i,selectedLocale:a,itemRegistry:o,historyIndex:s,options:c})=>{let l=n.toJson(),u=_w(r),d=u,f=r.view===`preview-mode`&&r.editingItemId?`inline-item-editor`:r.view,p=A9({itemRegistry:o}),m=(0,y.hashString)((0,y.stableStringify)(l.survey)),h=n.undoRedo.getHistory(),g=h.find(e=>e.isCurrent)?.index??s;return{protocolVersion:1,version:{sessionId:e,revision:t,historyIndex:s,contentHash:m,capabilityDigest:p.digest},survey:l.survey,ui:{view:r.view,selectedItemId:u,selectedLocale:a,focusItemId:d,recentItemIds:Yre(i,u),activeSurface:c?.uiContext?.activeSurface??f,openPanels:c?.uiContext?.openPanels,highlights:c?.uiContext?.highlights,history:{currentIndex:g,totalEntries:h.length,canUndo:n.canUndo(),canRedo:n.canRedo(),recent:h.slice(Math.max(0,g-7),g+5).map(e=>({index:e.index,kind:e.kind,label:e.meta.label,source:e.meta.source,timestamp:e.timestamp,isCurrent:e.isCurrent}))}},capabilities:p,createdAt:c?.createdAt??new Date().toISOString()}},M9=(e,t)=>f.SurveyEditor.fromJson((0,d.structuredCloneMethod)(e.toJson()),t.coreRegistry),N9=e=>{let t=new Map;for(let{assetId:n}of e.survey.getAssetUsages())e.getAsset(n)===void 0&&t.set(n,(t.get(n)??0)+1);return t},P9=(e,t)=>{let n=[...N9(e)].filter(([e,n])=>n>(t.get(e)??0)).map(([e])=>e);if(n.length===0)return;let r=n.map(e=>`"${e}"`).join(`, `);throw Error(`No assistant changes were applied because referenced image ${n.length===1?`asset`:`assets`} ${r} ${n.length===1?`was`:`were`} not found. Import the image and its references in the same authorized batch.`)},F9=({change:e,status:t,message:n,appliedOperations:r=0,editor:i})=>({status:t,changeId:e.id,summary:e.summary,message:n,appliedOperations:r,issues:t===`rejected`?e.validation.issues:void 0,editor:i}),I9=({currentPrecondition:e,expectedPrecondition:t})=>{if(e.sessionId!==t.sessionId)return`The survey session changed before this edit could be applied.`;if(e.contentHash!==t.contentHash)return`The survey changed before this edit could be applied.`;if(e.capabilityDigest!==t.capabilityDigest)return`The survey editor capabilities changed before this edit could be applied. Retry the request.`},Xre=(e,t)=>{let n=t?.clone()??new d.SurveyItemTranslations;for(let t of e??[])n.setContent(t.locale,t.contentKey,L9(t));return n.compact()},L9=({content:e,plainText:t})=>e?(0,d.structuredCloneMethod)(e):{type:d.ContentType.md,content:t??``},Zre=({config:e,itemId:t,usesInitialConfig:n})=>{if(!n||typeof e!=`object`||!e||Array.isArray(e))return e;let r=(0,d.structuredCloneMethod)(e);return`id`in r?{...r,id:t}:r},Qre=({itemRegistry:e,operation:t})=>{let n=e.definitions[t.item.itemType]?.getInitialItem?.(),r=n?.rawItem,i=t.item.id&&t.item.id.length>0?t.item.id:r?.id??(0,d.generateId)(),a=t.item.config===void 0,o=a?r?.config:t.item.config;return{rawItem:{...r,...t.item,id:i,key:t.item.key,itemType:t.item.itemType,config:Zre({config:o,itemId:i,usesInitialConfig:a})},translations:Xre(t.translations,n?.translations)}},$re=e=>`options.${e}.label`,R9=e=>{let t=(e.config&&typeof e.config==`object`&&!Array.isArray(e.config)?e.config:{}).options;return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&!Array.isArray(e)):[]},z9=(e,t,n)=>{let r=e.getItemDataCopy(t),i=r.config&&typeof r.config==`object`&&!Array.isArray(r.config)?r.config:{};e.updateItem(t,{config:{id:t,maxSelection:1,shuffleOptions:!1,...i,options:n}})},B9=(e,t,n,r,i)=>{let a=r??e.survey.locales[0]??`en`,o=e.survey.getItemTranslations(t)?.clone()??new d.SurveyItemTranslations;o.setContent(a,$re(n),{type:d.ContentType.md,content:i}),e.updateItemTranslations(t,o)},eie=({editor:e,itemRegistry:t,operation:n,deterministicCreateItemTypes:r})=>{if(!r.has(n.item.itemType))throw Error(`Item type "${n.item.itemType}" is not available for assistant create.`);let{rawItem:i,translations:a}=Qre({itemRegistry:t,operation:n}),o=e.survey.createItemFromRaw(i);e.addItem({parentId:n.target.parentItemId,index:n.target.index},o,a)},tie=(e,t)=>{let n={...e.getItemDataCopy(t.itemId).metadata??{}};t.itemLabel.length>0?n.itemLabel=t.itemLabel:delete n.itemLabel,e.updateItem(t.itemId,{metadata:Object.keys(n).length>0?n:void 0})},nie=(e,t)=>{let n=e.getItemDataCopy(t.itemId);e.updateItem(t.itemId,{metadata:{...n.metadata??{},editorItemColor:t.color}})},rie=(e,t)=>{let n=e.survey.getItemTranslations(t.itemId)?.clone()??new d.SurveyItemTranslations;n.setContent(t.locale,t.contentKey,L9(t)),e.updateItemTranslations(t.itemId,n)},V9=(e,t,n)=>{n!==void 0&&(n===null?delete e[t]:e[t]=n)},iie=(e,t)=>{let n=e.survey.getItemTranslations(t.itemId)?.clone()??new d.SurveyItemTranslations,r=n.getContent(t.locale,t.contentKey);if(r?.type!==d.ContentType.richText)throw Error(`Content "${t.locale}:${t.contentKey}" is not rich text and has no placed image to update.`);let i=-1,a=!1,o=r.doc.blocks.map(e=>{if(e.type!==`image`||(i+=1,i!==t.imageIndex))return e;let n=t.changes,r=(0,d.structuredCloneMethod)(e);n.source!==void 0&&(r.source=n.source),n.alt!==void 0&&(n.alt===null?delete r.alt:r.alt=n.alt),n.caption!==void 0&&(n.caption===null||n.caption.length===0?delete r.caption:r.caption=[{type:`paragraph`,children:[{type:`text`,text:n.caption}]}]);let o={...r.size??{}};return V9(o,`width`,n.width),V9(o,`height`,n.height),V9(o,`maxWidth`,n.maxWidth),V9(o,`maxHeight`,n.maxHeight),(n.width!==void 0||n.height!==void 0||n.maxWidth!==void 0||n.maxHeight!==void 0)&&(Object.keys(o).length===0?delete r.size:r.size=o),n.alignment!==void 0&&(n.alignment===null?delete r.alignment:r.alignment=n.alignment),a=!0,r});if(!a)throw Error(`No image exists at imageIndex ${t.imageIndex}.`);n.setContent(t.locale,t.contentKey,{...r,doc:{...r.doc,blocks:o}}),e.updateItemTranslations(t.itemId,n)},aie=(e,t)=>{let n=e.getItemDataCopy(t.itemId);e.updateItem(t.itemId,{config:(0,d.applyJsonPatch)(n.config??{},t.patches)})},oie=(e,t)=>{if(!t.option.id)throw Error(`The choice option change is missing a normalized option id.`);let n=R9(e.getItemDataCopy(t.itemId)),r=t.index===void 0?n.length:Math.min(n.length,Math.max(0,t.index)),i={id:t.option.id,...t.option.key?{key:t.option.key}:{}};n.splice(r,0,i),z9(e,t.itemId,n),B9(e,t.itemId,t.option.id,t.locale,t.option.label)},sie=(e,t)=>{B9(e,t.itemId,t.optionId,t.locale,t.label)},cie=(e,t)=>{let n=R9(e.getItemDataCopy(t.itemId)).filter(e=>e.id!==t.optionId),r=e.survey.getItemTranslations(t.itemId)?.clone()??new d.SurveyItemTranslations;z9(e,t.itemId,n),r.removeContentKeysWithPrefix(`options.${t.optionId}`),r.removeContentKeysWithPrefix(`embeddedForms.${t.optionId}`),e.updateItemTranslations(t.itemId,r)},lie=(e,t)=>{let n=e.getItemDataCopy(t.itemId),r=new Map(R9(n).filter(e=>typeof e.id==`string`).map(e=>[e.id,e])),i=t.optionIds.map(e=>r.get(e)).filter(e=>!!e);z9(e,t.itemId,i)},H9=e=>typeof e==`object`&&!!e&&!Array.isArray(e),U9=e=>H9(e)&&Array.isArray(e.fieldGroups)?e.fieldGroups.filter(H9).flatMap(e=>typeof e.id==`string`?[{...e,id:e.id,fields:Array.isArray(e.fields)?e.fields.filter(H9):[]}]:[]):[],uie=(e,t)=>{if(!t){if(e.itemType!==`formItem`)throw Error(`Form operation target is not a formItem.`);let t=H9(e.config)?e.config:{};return{groups:U9(t),update:n=>({...e,config:{id:e.id,...t,fieldGroups:n}})}}if(e.itemType!==`choiceItem`)throw Error(`Embedded-form operation target is not a choiceItem.`);let n=H9(e.config)?e.config:{},r=Array.isArray(n.options)?n.options.filter(H9):[],i=r.findIndex(e=>e.id===t);if(i<0)throw Error(`Choice option "${t}" was not found.`);let a=r[i],o=H9(a.embeddedForm)?a.embeddedForm:{};return{groups:U9(o),update:s=>{let c=[...r];return c[i]={...a,embeddedForm:{id:t,...o,fieldGroups:s}},{...e,config:{...n,options:c}}}}},W9=(e,t,n=[])=>{if(n.length===0)return;let r=e.survey.getItemTranslations(t)?.clone()??new d.SurveyItemTranslations;for(let e of n)r.setContent(e.locale,e.contentKey,L9(e));e.updateItemTranslations(t,r)},die=(e,t)=>{let n=uie(e.getItemDataCopy(t.target.itemId),t.target.optionId),r=n.groups.map(e=>({...e,fields:[...e.fields]}));switch(t.kind){case`upsert-form-field-group`:{let i=r.findIndex(e=>e.id===t.group.id),a=i>=0?r[i]:void 0,o={...a,...t.group,id:t.group.id,layout:t.group.layout??a?.layout??{base:1,xs:1,sm:1,md:1,xl:1},fields:Array.isArray(t.group.fields)?t.group.fields.filter(H9):a?.fields??[]};i>=0?r[i]=o:r.splice(Math.min(t.index??r.length,r.length),0,o),e.updateItem(t.target.itemId,n.update(r)),W9(e,t.target.itemId,t.translations);return}case`remove-form-field-group`:{let i=r.find(e=>e.id===t.groupId);e.updateItem(t.target.itemId,n.update(r.filter(e=>e.id!==t.groupId)));let a=`${t.target.optionId?`embeddedForms.${t.target.optionId}.`:``}fieldGroups.${t.groupId}`,o=e.survey.getItemTranslations(t.target.itemId)?.clone()??new d.SurveyItemTranslations;o.removeContentKeysWithPrefix(a);for(let e of i?.fields??[])if(typeof e.id==`string`){let n=`${t.target.optionId?`embeddedForms.${t.target.optionId}.`:``}fields.${e.id}`;o.removeContentKeysWithPrefix(n)}e.updateItemTranslations(t.target.itemId,o);return}case`reorder-form-field-groups`:{let i=new Map(r.map(e=>[e.id,e]));e.updateItem(t.target.itemId,n.update(t.groupIds.map(e=>i.get(e))));return}case`upsert-form-field`:{let i;for(let e of r){let n=e.fields.findIndex(e=>e.id===t.field.id);n>=0&&([i]=e.fields.splice(n,1))}let a=r.find(e=>e.id===t.groupId);if(!a)throw Error(`Form field group "${t.groupId}" was not found.`);a.fields.splice(Math.min(t.index??a.fields.length,a.fields.length),0,{...i,...t.field}),e.updateItem(t.target.itemId,n.update(r)),W9(e,t.target.itemId,t.translations);return}case`remove-form-field`:case`move-form-field`:{let i;for(let e of r){let n=e.fields.findIndex(e=>e.id===t.fieldId);n>=0&&([i]=e.fields.splice(n,1))}if(!i)throw Error(`Form field "${t.fieldId}" was not found.`);if(t.kind===`move-form-field`){let e=r.find(e=>e.id===t.targetGroupId);if(!e)throw Error(`Form field group "${t.targetGroupId}" was not found.`);e.fields.splice(Math.min(t.index??e.fields.length,e.fields.length),0,i)}if(e.updateItem(t.target.itemId,n.update(r)),t.kind===`remove-form-field`){let n=`${t.target.optionId?`embeddedForms.${t.target.optionId}.`:``}fields.${t.fieldId}`,r=e.survey.getItemTranslations(t.target.itemId)?.clone()??new d.SurveyItemTranslations;r.removeContentKeysWithPrefix(n),e.updateItemTranslations(t.target.itemId,r)}return}}},fie=(e,t)=>{let n=e.getItemDataCopy(t.itemId),r=H9(n.config)?n.config:{},i=Array.isArray(r.options)?r.options.filter(H9):[],a=i.findIndex(e=>e.id===t.optionId);if(a<0)throw Error(`Choice option "${t.optionId}" was not found.`);let o=[...i],s={...o[a]};if(t.kind===`set-embedded-form`?s.embeddedForm=t.form:(delete s.embeddedForm,delete s.embeddedFormItemId),o[a]=s,e.updateItem(t.itemId,{config:{...r,options:o}}),t.kind===`set-embedded-form`)W9(e,t.itemId,t.translations);else{let n=e.survey.getItemTranslations(t.itemId)?.clone()??new d.SurveyItemTranslations;n.removeContentKeysWithPrefix(`embeddedForms.${t.optionId}`),e.updateItemTranslations(t.itemId,n)}},G9=(e,t,n)=>{let r=e.toJson();return f.SurveyEditor.fromJson({...r,survey:n((0,d.structuredCloneMethod)(r.survey))},t.coreRegistry)},K9=e=>{let t=(0,d.parseJsonPointer)(e);if(t[0]!==`surveyItems`||t[1]===void 0)return;let n=Number.parseInt(t[1],10);return Number.isInteger(n)&&n>=0&&String(n)===t[1]?{index:n,replacesWholeItem:t.length===2}:void 0},pie=e=>{let t=new Set;for(let n of e.patches){let e=K9(n.path);if(e&&(n.op!==`remove`||!e.replacesWholeItem)&&t.add(e.index),`from`in n){let e=K9(n.from);e&&!e.replacesWholeItem&&t.add(e.index)}}return t},mie=(e,t)=>{if(t.size===0||!Array.isArray(e.surveyItems))return e;let n=new Date().toISOString();return{...e,surveyItems:e.surveyItems.map((e,r)=>{if(!t.has(r))return e;let i=e;return{...i,editorMetadata:{...i.editorMetadata,createdAt:i.editorMetadata?.createdAt??n,updatedAt:n}}})}},hie=({editor:e,itemRegistry:t,operation:n})=>{let r=e.toJson(),i=mie((0,d.applyJsonPatch)(r.survey,n.patches),pie(n));return f.SurveyEditor.fromJson({...r,survey:i},t.coreRegistry)},q9=({editor:e,itemRegistry:t,operation:n,deterministicCreateItemTypes:r})=>{switch(n.kind){case`create-item`:return eie({editor:e,itemRegistry:t,operation:n,deterministicCreateItemTypes:r}),e;case`update-item-key`:return e.updateItem(n.itemId,{key:n.key}),e;case`update-item-label`:return tie(e,n),e;case`update-item-color`:return nie(e,n),e;case`update-item-translation`:return rie(e,n),e;case`update-placed-image`:return iie(e,n),e;case`patch-item-config`:return aie(e,n),e;case`upsert-form-field-group`:case`remove-form-field-group`:case`reorder-form-field-groups`:case`upsert-form-field`:case`remove-form-field`:case`move-form-field`:return die(e,n),e;case`set-embedded-form`:case`remove-embedded-form`:return fie(e,n),e;case`add-choice-option`:return oie(e,n),e;case`update-choice-option-label`:return sie(e,n),e;case`remove-choice-option`:return cie(e,n),e;case`reorder-choice-options`:return lie(e,n),e;case`remove-item`:if(!e.removeItem(n.itemId))throw Error(`Item "${n.itemId}" could not be removed.`);return e;case`move-item`:if(!e.moveItem(n.itemId,{parentId:n.target.parentItemId,index:n.target.index}))throw Error(`Item "${n.itemId}" could not be moved.`);return e;case`reorder-items`:{let t=e.getItemDataCopy(n.parentItemId);return e.updateItem(n.parentItemId,{config:{...H9(t.config)?t.config:{},items:n.itemIds}}),e}case`update-survey-metadata`:{let t={...e.getMetadata()??{}};for(let[e,r]of Object.entries(n.values))r===null?delete t[e]:t[e]=r;return e.updateMetadata(Object.keys(t).length>0?t:void 0),e}case`update-survey-pagination`:return e.updateMaxItemsPerPage(n.value??void 0),e;case`update-survey-translation`:return G9(e,t,e=>{let t=e.translations?.[n.locale]??{itemTranslations:{},surveyCardContent:{},navigationContent:{},validationMessages:{}},r={...t[n.surface]??{}};return r[n.contentKey]=L9(n),{...e,translations:{...e.translations??{},[n.locale]:{...t,[n.surface]:r}}}});case`remove-survey-locale`:return G9(e,t,e=>{let t={...e.translations??{}};return delete t[n.locale],{...e,translations:Object.keys(t).length>0?t:void 0}});case`set-image-asset`:return e.setAsset(n.assetId,n.asset),e;case`update-image-asset-metadata`:{let t=e.getAsset(n.assetId);if(!t)throw Error(`Image asset "${n.assetId}" was not found.`);let r={...t.metadata??{}};for(let[e,t]of Object.entries(n.metadata))t===null?delete r[e]:t!==void 0&&Object.assign(r,{[e]:t});return e.setAsset(n.assetId,{...t,metadata:Object.keys(r).length>0?r:void 0}),e}case`remove-image-asset`:return e.removeAsset(n.assetId),e;case`survey-json-patch`:return hie({editor:e,itemRegistry:t,operation:n})}},J9=e=>{let t=e.trim();return t.length>0?`Assistant: ${t}`:`Assistant survey change`},gie=e=>e.length===1?J9(e[0]?.summary??``):`Assistant: ${e.length} survey changes`,Y9=(e,t)=>F9({change:e,status:`failed`,message:t}),_ie=({changes:e,currentPrecondition:t,editor:n,itemRegistry:r})=>{if(e.length===0)return{results:[]};for(let n of e){if(n.status!==`validated`||!n.validation.valid)return{results:e.map(e=>e.id===n.id?F9({change:e,status:`rejected`,message:`The assistant change did not pass validation.`}):Y9(e,`No assistant changes were applied because one change failed validation.`))};if(!n.precondition)return{results:e.map(e=>e.id===n.id?F9({change:e,status:`failed`,message:`The assistant change is missing editor state information.`}):Y9(e,`No assistant changes were applied because one change is missing editor state information.`))};if(n.operations.length===0)return{results:e.map(e=>e.id===n.id?F9({change:e,status:`rejected`,message:`The assistant change did not contain any operations to apply.`}):Y9(e,`No assistant changes were applied because one change was empty.`))};let r=I9({currentPrecondition:t,expectedPrecondition:n.precondition});if(r)return{results:e.map(e=>F9({change:e,status:`stale`,message:r}))}}try{let i=M9(n,r),a=N9(i),o=A9({itemRegistry:r});if(o.digest!==t.capabilityDigest)return{results:e.map(e=>F9({change:e,status:`stale`,message:`The live survey editor capabilities changed before these edits could be applied. Retry the request.`}))};let s=new Set((0,g.getDeterministicCreateItemTypes)(o));i.hasUncommittedChanges&&i.commit({label:`Pending manual changes`,source:f.CommitSource.USER});for(let t of e)for(let e of t.operations)i=q9({editor:i,itemRegistry:r,operation:e,deterministicCreateItemTypes:s});return P9(i,a),i.commit({label:gie(e),source:f.CommitSource.ASSISTANT}),{results:e.map(e=>F9({change:e,status:`applied`,message:e.summary,appliedOperations:e.operations.length})),editor:i}}catch(t){let n=t instanceof Error?t.message:`The assistant changes could not be applied.`;return{results:e.map(e=>F9({change:e,status:`failed`,message:n}))}}},X9=({change:e,currentPrecondition:t,editor:n,itemRegistry:r})=>{if(e.status!==`validated`||!e.validation.valid)return F9({change:e,status:`rejected`,message:`The assistant change did not pass validation.`});if(!e.precondition)return F9({change:e,status:`failed`,message:`The assistant change is missing editor state information.`});if(e.operations.length===0)return F9({change:e,status:`rejected`,message:`The assistant change did not contain any operations to apply.`});let i=I9({currentPrecondition:t,expectedPrecondition:e.precondition});if(i)return F9({change:e,status:`stale`,message:i});try{let i=M9(n,r),a=N9(i),o=A9({itemRegistry:r});if(o.digest!==t.capabilityDigest)return F9({change:e,status:`stale`,message:`The live survey editor capabilities changed before this edit could be applied. Retry the request.`});let s=new Set((0,g.getDeterministicCreateItemTypes)(o));i.hasUncommittedChanges&&i.commit({label:`Pending manual changes`,source:f.CommitSource.USER});for(let t of e.operations)i=q9({editor:i,itemRegistry:r,operation:t,deterministicCreateItemTypes:s});return P9(i,a),i.commit({label:J9(e.summary),source:f.CommitSource.ASSISTANT}),F9({change:e,status:`applied`,message:e.summary,appliedOperations:e.operations.length,editor:i})}catch(t){return F9({change:e,status:`failed`,message:t instanceof Error?t.message:`The assistant change could not be applied.`})}};function vie(){let e=0,t=()=>(e+=1,e);return S((e,n)=>({sessionId:null,editor:null,changeTick:0,editorItemRegistry:{coreRegistry:{},definitions:{},assistantCapabilities:(0,g.createSurveyAssistantCapabilities)([]),playerLocalizations:(0,_.mergeSurveyPlayerLocalizationSources)(),categoryLabels:{...Ow}},selectedLocale:`en`,userMutationsLocked:!1,setEditor:(n,r)=>{e({sessionId:n,editor:r,selectedLocale:r?.survey.locales[0]??`en`,changeTick:t()})},clearEditor:()=>{e({sessionId:null,editor:null,selectedLocale:`en`,changeTick:t()})},startNewSession:({surveyKey:r,itemRegistryEntries:i,categoryLabels:a})=>{if(n().userMutationsLocked)return;let o=i,s=n().editorItemRegistry,c=Object.keys(s.definitions).length>0,l=o?Kw(o,{categoryLabels:a}):c?s:k9(),u=l.coreRegistry,p=d.Survey.createBlankSurvey(u,r),m=new f.SurveyEditor(p,{pluginRegistry:u});e({sessionId:(0,d.generateId)(),editor:m,editorItemRegistry:l,selectedLocale:p.locales[0]??`en`,changeTick:t()})},setEditorItemRegistry:n=>{e({editorItemRegistry:n,changeTick:t()})},setSelectedLocale:t=>{e({selectedLocale:t})},setUserMutationsLocked:t=>{e({userMutationsLocked:t})},undo:()=>{if(n().userMutationsLocked)return!1;let{editor:r}=n();if(!r)return!1;let i=r.undo();return i&&e({changeTick:t()}),i},redo:()=>{if(n().userMutationsLocked)return!1;let{editor:r}=n();if(!r)return!1;let i=r.redo();return i&&e({changeTick:t()}),i},canUndo:()=>!n().userMutationsLocked&&(n().editor?.canUndo()??!1),canRedo:()=>!n().userMutationsLocked&&(n().editor?.canRedo()??!1),commit:r=>{n().userMutationsLocked||(n().editor?.commit(r),e({changeTick:t()}))},commitByUser:r=>{n().userMutationsLocked||(n().editor?.commit({...r,source:f.CommitSource.USER}),e({changeTick:t()}))},commitIfNeeded:()=>{if(n().userMutationsLocked)return;let{editor:r}=n();r&&(r.commitIfNeeded(),e({changeTick:t()}))},jumpToIndexInHistory:r=>{if(n().userMutationsLocked)return!1;let{editor:i}=n();if(!i)return!1;let a=i.jumpToIndex(r);return a&&e({changeTick:t()}),a},getUndoMeta:()=>n().editor?.getUndoMeta()??null,getRedoMeta:()=>n().editor?.getRedoMeta()??null,getUndoRedoHistory:()=>n().editor?.undoRedo.getHistory()??[],getCommitsSinceInitial:()=>n().editor?.getCommitsSinceInitial()??[],addItem:(r,i,a)=>{if(n().userMutationsLocked)return;let{editor:o}=n();if(!o)throw Error(`No editor loaded`);o.addItem(r,i,a),e({changeTick:t()})},removeItem:(r,i=!1)=>{if(n().userMutationsLocked)return!1;let{editor:a}=n();if(!a)return!1;let o=a.survey.getItemKey(r)?.fullKey??r,s=a.removeItem(r,i);return s&&!i&&a.commit({label:`Delete item: ${o}`,source:f.CommitSource.USER}),s&&e({changeTick:t()}),s},moveItem:(r,i)=>{if(n().userMutationsLocked)return!1;let{editor:a}=n();if(!a)return!1;let o=a.moveItem(r,i);return o&&e({changeTick:t()}),o},updateItemTranslations:(r,i)=>{if(n().userMutationsLocked)return!1;let{editor:a}=n();if(!a)return!1;let o=a.updateItemTranslations(r,i);return o&&e({changeTick:t()}),o},copyItem:e=>{let{editor:t}=n();if(!t)throw Error(`No editor loaded`);return t.copyItem(e)},pasteItem:(r,i)=>{if(n().userMutationsLocked)return null;let{editor:a}=n();if(!a)throw Error(`No editor loaded`);let o=a.pasteItem(r,i);return e({changeTick:t()}),o},getItemDataCopy:e=>{let{editor:t}=n();if(!t)throw Error(`No editor loaded`);return t.getItemDataCopy(e)},getRootItem:()=>n().editor?.survey.rootItem,updateItem:(r,i)=>{if(n().userMutationsLocked)return;let{editor:a}=n();if(!a)throw Error(`No editor loaded`);a.updateItem(r,i),e({changeTick:t()})},updateSurveyTranslations:r=>{if(n().userMutationsLocked)return;let{editor:i}=n();if(!i)throw Error(`No editor loaded`);i.updateSurveyTranslations(r),e({changeTick:t()})},addLocale:r=>{if(n().userMutationsLocked)return!1;let{editor:i}=n();if(!i)return!1;let a=i.addLocale(r);return a&&e({changeTick:t()}),a},removeLocale:r=>{if(n().userMutationsLocked)return!1;let{editor:i}=n();if(!i)return!1;let a=i.removeLocale(r);return a&&e({changeTick:t()}),a},getMaxItemsPerPage:()=>n().editor?.getMaxItemsPerPage(),updateMaxItemsPerPage:r=>{if(n().userMutationsLocked)return;let{editor:i}=n();if(!i)throw Error(`No editor loaded`);i.updateMaxItemsPerPage(r),e({changeTick:t()})},getMetadata:()=>n().editor?.getMetadata(),updateMetadata:r=>{if(n().userMutationsLocked)return;let{editor:i}=n();if(!i)throw Error(`No editor loaded`);i.updateMetadata(r),e({changeTick:t()})},applyAssistantChange:(r,i)=>{let{editor:a,editorItemRegistry:o}=n();if(!a)return{status:`failed`,changeId:r.id,summary:r.summary,message:`The survey editor is not ready.`,appliedOperations:0};let{editor:s,...c}=X9({change:r,currentPrecondition:i,editor:a,itemRegistry:o});return s&&e({editor:s,changeTick:t()}),c},applyAssistantChanges:(r,i)=>{let{editor:a,editorItemRegistry:o}=n();if(!a)return{results:r.map(e=>({status:`failed`,changeId:e.id,summary:e.summary,message:`The survey editor is not ready.`,appliedOperations:0}))};let{editor:s,...c}=_ie({changes:r,currentPrecondition:i,editor:a,itemRegistry:o});return s&&e({editor:s,changeTick:t()}),c},getTemplateValue:e=>n().editor?.getTemplateValue(e),getTemplateValues:()=>n().editor?.getTemplateValues()??new Map,setTemplateValue:(r,i)=>{if(n().userMutationsLocked)return;let{editor:a}=n();if(!a)throw Error(`No editor loaded`);a.setTemplateValue(r,i),e({changeTick:t()})},removeTemplateValue:r=>{if(n().userMutationsLocked)return;let{editor:i}=n();if(!i)throw Error(`No editor loaded`);i.removeTemplateValue(r),e({changeTick:t()})},getAsset:e=>n().editor?.getAsset(e),getAssets:()=>n().editor?.getAssets()??new Map,setAsset:(r,i)=>{if(n().userMutationsLocked)return;let{editor:a}=n();if(!a)throw Error(`No editor loaded`);a.setAsset(r,i),e({changeTick:t()})},removeAsset:r=>{if(n().userMutationsLocked)return;let{editor:i}=n();if(!i)throw Error(`No editor loaded`);i.removeAsset(r),e({changeTick:t()})},getMemoryUsage:()=>n().editor?.getMemoryUsage()??{totalMB:0,entries:0},getUndoRedoConfig:()=>n().editor?.getUndoRedoConfig()??{}}))}var yie=({children:e})=>{let[t]=(0,l.useState)(()=>vie());return(0,m.jsx)(T.Provider,{value:t,children:e})},bie=({children:e,navigationAdapter:t=null,workspace:n})=>(0,m.jsx)(yie,{children:(0,m.jsx)(GC,{adapter:t,initialLocation:n?.initialLocation,children:e})});function xie(e,t,n){if(e)return Kw(Uw(e,t),{categoryLabels:n});let r=Uw(O9(),t);return n&&Object.keys(n).length>0?Kw(r,{categoryLabels:n}):Kw(r)}var Sie=({initialEditorState:e,initialSessionId:t,fallbackLocale:n=`en`,language:r,localizations:i,dateLocales:a,itemRegistryEntries:o,categoryLabels:s,onEditorStateChange:c,readOnly:u=!1,assistantControllerRef:p,assistantPanel:h,persistDebounceMs:g=500,helpLink:_=`https://case-framework.github.io/case-docs/`,aiProvider:v=null,onBackRequested:y,onSimulatorRequested:b,onSaveRequested:x,workspace:S})=>{let C=(0,l.useMemo)(()=>lb(i),[i]),w=(0,l.useMemo)(()=>$b(a),[a]),T=(0,l.useMemo)(()=>Ww(C),[C]),k=(0,l.useMemo)(()=>Lw(T,s),[s,T]),A=E(e=>e.sessionId),j=E(e=>e.editor),M=E(e=>e.changeTick),N=E(e=>e.setEditor),P=E(e=>e.setEditorItemRegistry),F=E(e=>e.clearEditor),I=E(e=>e.setUserMutationsLocked),L=D(),ee=qC(),te=(0,l.useRef)(!1),R=(0,l.useMemo)(()=>xie(o,C,k),[o,k,C]),ne=R.coreRegistry,z=(0,l.useEffectEvent)((e,t)=>{N(e,f.SurveyEditor.fromJson(t,ne))});(0,l.useEffect)(()=>{if(!e)return;let n=t!==void 0&&A!==null&&A!==t;if(te.current&&!n&&j)return;n&&(te.current=!1);let r=f.SurveyEditor.fromJson(e,ne);z(t??(0,d.generateId)(),r.toJson()),te.current=!0},[ne,j,e,t,A]),(0,l.useEffect)(()=>()=>{F()},[F]),(0,l.useEffect)(()=>{P(R)},[R,P]),(0,l.useEffect)(()=>(I(u),()=>I(!1)),[u,I]),O({sessionId:A,editor:j,changeTick:M,persistDebounceMs:g,onEditorStateChange:c});let re=(0,l.useCallback)(e=>{let t=L.getState(),n=ee.getState(),r=t.editor;if(!r)throw Error(`Cannot build assistant snapshot before the editor is ready.`);let i=Object.values(n.assistantHighlights);return j9({sessionId:t.sessionId,revision:t.changeTick,editor:r,location:n.location,navigationHistory:n.history,selectedLocale:t.selectedLocale,itemRegistry:t.editorItemRegistry,historyIndex:t.getUndoRedoHistory().find(e=>e.isCurrent)?.index??-1,options:{...e,uiContext:{...e?.uiContext,highlights:e?.uiContext?.highlights??(i.length>0?i:void 0)}}})},[L,ee]);return(0,l.useImperativeHandle)(p,()=>j?{getSnapshot:e=>re(e),applyAssistantChange:e=>{let t=re().version;return L.getState().applyAssistantChange(e,t)},applyAssistantChanges:e=>{let t=re().version;return L.getState().applyAssistantChanges(e,t)}}:null,[j,L,re]),(0,m.jsx)(`div`,{className:`survey-editor absolute inset-0 overflow-hidden`,children:(0,m.jsx)(nx,{helpLink:_,aiProvider:v,fallbackLocale:n,language:r,localizations:C,dateLocales:w,workspace:S,children:(0,m.jsx)(zD,{panel:h,children:(0,m.jsx)(sH,{onBackRequested:y,onSaveRequested:x,onSimulatorRequested:b})})})})},Cie=e=>(0,m.jsx)(bie,{navigationAdapter:e.navigationAdapter,workspace:e.workspace,children:(0,m.jsx)(Sie,{...e})}),Z9=e=>{let t=e();if(!t)throw Error(`The Survey Editor is not ready for an AI task.`);return t},Q9=({getSnapshot:e,tasks:t,cache:n={}})=>{let r=n===!1?void 0:new g.SurveyAssistantTaskResultCache({ttlMs:n.ttlMs,maxEntries:n.maxEntries}),i=async({task:t,request:i,options:a,buildContext:o,execute:s})=>{let c=Z9(e),l=n===!1?void 0:n.getScope?.(),u=JSON.stringify([t,l??``,c.version.contentHash,c.version.capabilityDigest,c.ui.selectedLocale,i]);if(r&&a?.cache!==`refresh`){let e=r.get(u);if(e!==void 0)return e}let d=await s(o(c),{cacheScope:l});return r?.set(u,d),d};return{suggestItemKey:(e,n)=>i({task:`suggest-item-key`,request:e,options:n,buildContext:t=>(0,g.buildSurveyAssistantTaskContext)(t,{purpose:`suggest-item-key`,focusItemId:e.itemId}),execute:(r,i)=>t.suggestItemKey(e,r,n,i)}),suggestItemLabel:(e,n)=>i({task:`suggest-item-label`,request:e,options:n,buildContext:t=>(0,g.buildSurveyAssistantTaskContext)(t,{purpose:`suggest-item-label`,focusItemId:e.itemId}),execute:(r,i)=>t.suggestItemLabel(e,r,n,i)}),translateContent:(r,i)=>{let a=Z9(e),o=n===!1?void 0:n.getScope?.();return t.translateContent(r,(0,g.buildSurveyAssistantTaskContext)(a,{purpose:`translate-content`,sourceLocale:r.sourceLocale,targetLocales:r.targetLocales,sourceTexts:r.entries.map(e=>e.text)}),i,{cacheScope:o})}}},wie=class{#e;constructor(e){this.#e=e}getModelId=()=>this.#e;setModelId=e=>{this.#e=e}},Tie=({initialModelId:e,onModelChange:t,resourceId:n,surveyId:r,taskApi:i}={})=>{let a=(0,l.useMemo)(()=>(0,b.createSurveyAssistantControllerBridge)(),[]),[o]=(0,l.useState)(()=>new wie(e)),[s,c]=(0,l.useState)(e),u=(0,l.useMemo)(()=>Q9({getSnapshot:a.controller.getSnapshot,cache:{getScope:o.getModelId},tasks:(0,b.createSurveyAssistantTaskExecutor)({api:i,getModelId:o.getModelId,resourceId:n,surveyId:r})}),[a,o,n,r,i]),d=(0,l.useCallback)(e=>{o.setModelId(e),c(e),t?.(e)},[o,t]);return{aiProvider:u,controller:a.controller,controllerRef:a.setController,modelId:s,selectModel:d}};function Eie(e,t){return new f.SurveyEditor(d.Survey.createBlankSurvey(e,t),{pluginRegistry:e}).toJson()}function $9(e,t){return new f.SurveyEditor(d.Survey.fromJson(e,t),{pluginRegistry:t}).toJson()}function Die(e,t){let n=JSON.parse(e);if(Mie(n)){let e=f.SurveyEditor.fromJson(n,t);return{format:`serialized-editor`,sessionId:(0,d.generateId)(),state:e.toJson()}}return{format:`raw-survey`,sessionId:(0,d.generateId)(),state:$9(n,t)}}function Oie(e){return JSON.stringify(e.survey,null,2)}function kie(e,t=`survey`){let n=jie(e)?.trim();return n?Aie(n):t}function Aie(e){return e.replace(/[^a-zA-Z0-9._-]+/g,`-`).replace(/-{2,}/g,`-`).replace(/^-+|-+$/g,``)||`survey`}function jie(e){let t=e.survey.surveyItems.find(e=>!e||typeof e.key!=`string`||!e.config||typeof e.config!=`object`?!1:e.config.isRoot===!0);return t?.key?t.key:e.survey.surveyItems[0]?.key}function Mie(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.version==`string`&&typeof t.hasUncommittedChanges==`boolean`&&typeof t.undoRedo==`object`&&t.undoRedo!==null&&typeof t.survey==`object`&&t.survey!==null}exports.APPLY_RICH_TEXT_STYLE_COMMAND=c6,exports.CONVERT_RICH_TEXT_LINK_TO_TEXT_COMMAND=p6,exports.DEFAULT_BLOCK_CONTENT_POLICY=b6,exports.DEFAULT_CATEGORY_LABELS=Ow,exports.DEFAULT_COMPACT_CONTENT_POLICY=y6,exports.DEFAULT_DATE_FNS_LOCALES=Qb,exports.DEFAULT_EDITOR_LANGUAGE=ab,exports.Dialog=ew,exports.DialogClose=rw,exports.DialogContent=aw,exports.DialogDescription=lw,exports.DialogFooter=sw,exports.DialogHeader=ow,exports.DialogOverlay=iw,exports.DialogPortal=nw,exports.DialogTitle=cw,exports.DialogTrigger=tw,exports.FilepickerDropzone=BC,exports.INSERT_RICH_TEXT_LINK_COMMAND=u6,exports.INSERT_RICH_TEXT_TEMPLATE_VARIABLE_COMMAND=l6,exports.OPEN_RICH_TEXT_LINK_EDITOR_COMMAND=d6,exports.RichTextBlockEditor=_7,exports.RichTextContentView=E7,exports.RichTextEditor=g7,exports.SortableTree=CB,exports.SurveyEditor=Cie,exports.SurveyImageAssetManager=mw,exports.UPDATE_RICH_TEXT_LINK_COMMAND=f6,exports.buildSurveyAssistantItemRegistryManifest=A9,exports.buildSurveyAssistantSnapshot=j9,exports.buildSurveyFileName=kie,exports.cloneRegistryEntries=E9,exports.createBlankEditorState=Eie,exports.createComposedEditorRegistry=Kre,exports.createEditorStateFromRawSurvey=$9,exports.createRegistryEntries=D9,exports.createRichTextEditorValueFromContent=s8,exports.createRichTextEditorValueFromPlainText=q3,exports.createRichTextEditorValueFromText=c8,exports.createSnapshotSurveyEditorAIProvider=Q9,exports.createSurveyPlayerRegistry=qre,exports.defaultSurveyEditorLocalizations=cb,exports.entriesToComposedEditorRegistry=Kw,exports.entriesToItemTypeRegistry=Vw,exports.entriesToParticipantRegistry=Hw,exports.getDateFnsLocale=ex,exports.getDefaultComposedEditorRegistry=k9,exports.getDefaultRegistryEntries=O9,exports.getDefaultSurveyPlayerRegistry=Jre,exports.getRichTextContentFromEditorState=o8,exports.isBlockContentPolicyVariant=P6,exports.mergeDateFnsLocales=$b,exports.mergeEditorLocalizations=lb,exports.mergeRichTextContentPolicy=x6,exports.parseEditorStateFromJsonText=Die,exports.resolveCategoryLabel=Aw,exports.sanitizeContentForPolicy=N6,exports.serializeSurveyStateForFile=Oie,exports.surveyEditorEnMessages=ob,exports.surveyEditorNlMessages=sb,exports.t=c,exports.useSurveyAssets=JC,exports.useSurveyEditorAssistantIntegration=Tie,exports.useSurveyImageAssets=YC,exports.useUnusedSurveyAssetCount=XC,exports.validateRegistryEntries=Bw;
160
+ `;function nre(e,t){let{target:n}=e;return!(n instanceof Element)||n.closest(ere)||n===t.element||n===t.handle||t.handle?.contains(n)?!1:!!n.closest(tre)}var rre=({onSelectChangeTitle:e,onSelectEditBranching:t,onSelectEditLayout:n,onSelectDeleteGroup:r,onSelectSortFields:i})=>{let a=K(`defaultEditors.formEditor`);return(0,m.jsxs)(ZD,{children:[(0,m.jsx)(QD,{asChild:!0,children:(0,m.jsx)(W,{type:`button`,variant:`outline`,size:`icon-sm`,className:`rounded-full text-muted-foreground shadow-sm`,"aria-label":a(`fieldGroupMenuButton`),children:(0,m.jsx)(Fy,{className:`size-3.5`})})}),(0,m.jsxs)($D,{align:`end`,className:`min-w-48`,children:[(0,m.jsxs)(tO,{onSelect:e,children:[(0,m.jsx)(`span`,{className:`size-4 shrink-0`,"aria-hidden":!0}),a(`fieldGroupMenu.changeTitle`)]}),(0,m.jsxs)(tO,{disabled:!0,onSelect:t,children:[(0,m.jsx)(Qv,{className:`size-4`}),a(`fieldGroupMenu.editBranching`)]}),(0,m.jsxs)(tO,{onSelect:n,children:[(0,m.jsx)(`span`,{className:`size-4 shrink-0`,"aria-hidden":!0}),a(`fieldGroupMenu.editLayout`)]}),(0,m.jsxs)(tO,{onSelect:i,children:[(0,m.jsx)(xv,{className:`size-4`}),a(`fieldGroupMenu.sortFields`)]}),(0,m.jsx)(oO,{}),(0,m.jsxs)(tO,{variant:`destructive`,onSelect:r,children:[(0,m.jsx)(qy,{className:`size-4`}),a(`fieldGroupMenu.deleteGroup`)]})]})]})};function ire({field:e,onEdit:t,onEditKey:n,onDelete:r}){return(0,m.jsx)(`li`,{children:(0,m.jsx)(K7,{codingKey:e.key,fieldType:e.type,label:e.label,required:e.required,hasValidations:e.hasValidations,isInvalid:e.isInvalid,onClick:t,onEditKey:n,onDelete:r})})}function are({ariaLabel:e,buttonClassName:t,buttonSize:n=`sm`,buttonVariant:r=`ghost`,children:i,onSelectType:a}){let o=K(`defaultEditors.formEditor`);return(0,m.jsxs)(ZD,{children:[(0,m.jsx)(QD,{asChild:!0,children:(0,m.jsx)(W,{type:`button`,variant:r,size:n,className:t,"aria-label":e,children:i})}),(0,m.jsx)($D,{align:`start`,className:`min-w-52`,children:Fne.map(e=>{let t=B7[e];return(0,m.jsxs)(tO,{onSelect:()=>a(e),children:[(0,m.jsx)(t,{className:`size-4`}),V7(o,e)]},e)})})]})}function ore({groupId:e,item:t,displayCondition:n,index:r,onAddField:i,onChangeGroupHeader:a,onEditLayout:o,onDeleteGroup:s,onDeleteField:c,onEditField:l,onEditFieldKey:u,onSortFields:d}){let f=K(`defaultEditors.formEditor`),p=K(`itemLabelEditor`),{ref:h,isDragging:g}=aB({id:t.id,index:r,group:e}),_=t.title?.trim(),v=t.description?.trim();return(0,m.jsx)(`li`,{ref:h,className:`list-none touch-none `,children:(0,m.jsxs)(`div`,{className:U(`form-field-group-layout-scope rounded-xl border border-border bg-card p-3 shadow-sm transition-colors`,`hover:border-border/90 hover:bg-muted/40`,g&&`bg-muted/70 backdrop-blur-sm`),style:JU(t.layout),children:[(0,m.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,m.jsxs)(`button`,{type:`button`,className:`min-w-0 flex-1 flex items-start gap-2 rounded-md text-left outline-none transition-colors hover:text-foreground hover:underline focus-visible:ring-2 focus-visible:ring-ring/60`,onClick:()=>a(t.id),"aria-label":f(`fieldGroupMenu.changeTitle`),"data-field-group-header-trigger":`true`,children:[(0,m.jsx)(zv,{className:`mt-1 size-4 shrink-0 text-muted-foreground`}),_?(0,m.jsx)(`span`,{className:`min-w-0 flex-1 wrap-break-word text-base font-semibold text-foreground`,children:_}):(0,m.jsx)(`span`,{className:`min-w-0 flex-1 wrap-break-word text-base font-semibold text-muted-foreground`,children:p(`emptyLabel`)})]}),n?(0,m.jsx)(zV,{expression:n,title:f(`fieldGroupBranching`)}):t.hasDisplayCondition?(0,m.jsxs)(nb,{children:[(0,m.jsx)(rb,{asChild:!0,children:(0,m.jsx)(`span`,{className:`inline-flex shrink-0 rounded p-1 text-muted-foreground hover:bg-muted/80`,"aria-label":f(`fieldGroupBranching`),children:(0,m.jsx)(Qv,{className:`size-4`,"aria-hidden":!0})})}),(0,m.jsx)(ib,{side:`top`,children:f(`fieldGroupBranching`)})]}):null,(0,m.jsx)(rre,{onSelectChangeTitle:()=>a(t.id),onSelectEditBranching:()=>void 0,onSelectEditLayout:()=>o(t.id),onSelectDeleteGroup:()=>s(t.id),onSelectSortFields:()=>d(t.id)})]}),(0,m.jsx)(`div`,{children:v?(0,m.jsx)(`button`,{type:`button`,className:`mt-1 block w-full rounded-md text-left text-sm leading-5 text-muted-foreground outline-none transition-colors hover:text-foreground hover:underline focus-visible:ring-2 focus-visible:ring-ring/60`,onClick:()=>a(t.id),"aria-label":f(`fieldGroupMenu.changeTitle`),"data-field-group-header-trigger":`true`,children:v}):null}),(0,m.jsxs)(`div`,{className:`mt-2`,children:[(0,m.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,m.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:f(`fieldsLabel`)}),(0,m.jsx)(W,{type:`button`,variant:`outline`,size:`icon-sm`,className:`rounded-full text-muted-foreground shadow-sm`,"aria-label":f(`fieldGroupMenu.sortFields`),onClick:()=>d(t.id),children:(0,m.jsx)(xv,{className:`size-4`})})]}),(0,m.jsxs)(`div`,{className:`mt-2 space-y-2`,children:[t.fields.length>0&&(0,m.jsx)(`ol`,{className:`space-y-1`,children:t.fields.map(e=>(0,m.jsx)(ire,{field:e,onEdit:()=>l(t.id,e.id),onEditKey:()=>u(t.id,e.id),onDelete:()=>c(t.id,e.id)},e.id))}),(0,m.jsxs)(are,{ariaLabel:f(`addField`),buttonClassName:`min-w-36 justify-start gap-2 rounded-full text-muted-foreground`,onSelectType:e=>i(t.id,e),children:[(0,m.jsx)(Dy,{className:`size-4`}),f(`addField`)]})]})]})]})})}var sre=({itemId:e,items:t,onAddField:n,onChangeGroupHeader:r,onEditLayout:i,onDeleteGroup:a,onDeleteField:o,onEditField:s,onEditFieldKey:c,onSortFields:l,onItemsReorder:u})=>{let d=HC()?.surveyItems.get(e)?.displayConditions?.components;return(0,m.jsx)(lR,{sensors:[DL.configure({activationConstraints:[new CL.Distance({value:5})],preventActivation:nre})],onDragEnd:(e=>{if(e.canceled||!mz(e.operation)||!e.operation.source)return;let{source:n}=e.operation,{initialIndex:r,index:i}=n;if(r===i)return;let a=[...t],[o]=a.splice(r,1);o&&(a.splice(i,0,o),u(a))}),modifiers:e=>[...e,R7],children:(0,m.jsx)(`div`,{className:`min-h-0 max-h-[min(40rem,70svh)] overflow-y-auto`,children:(0,m.jsx)(`ol`,{className:`space-y-3 p-px`,children:t.map((t,u)=>(0,m.jsx)(ore,{groupId:e,item:t,displayCondition:d?.[t.id],index:u,onAddField:n,onChangeGroupHeader:r,onEditLayout:i,onDeleteGroup:a,onDeleteField:o,onEditField:s,onEditFieldKey:c,onSortFields:l},t.id))})})})},q7=({itemId:e,config:t,editingConfig:n,selectedLocale:r,translationNamespace:i,onPersist:a})=>{let o=K(`defaultEditors.formEditor`),s=t.fieldGroups.length,[c,u]=(0,l.useState)(null),[d,f]=(0,l.useState)(null),[p,h]=(0,l.useState)(null),[g,_]=(0,l.useState)(null),[v,y]=(0,l.useState)(null),b=t.fieldGroups.find(e=>e.id===c)??null,x=n.fieldGroups.find(e=>e.id===d)??null,S=t.fieldGroups.find(e=>e.id===p)??null,C=(g?n.fieldGroups.find(e=>e.id===g.groupId)??null:null)?.fields.find(e=>e.id===g?.fieldId)??null,w=(v?n.fieldGroups.find(e=>e.id===v.groupId)??null:null)?.fields.find(e=>e.id===v?.fieldId)??null,T=(0,l.useMemo)(()=>t.fieldGroups.flatMap(e=>e.fields),[t.fieldGroups]),E=()=>{a(e=>{e.fieldGroups=[...e.fieldGroups,uW()]})},D=e=>{a(t=>{t.fieldGroups=e})},O=(e,t)=>{a(n=>{let r=n.fieldGroups.find(t=>t.id===e);if(!r)return;let i=dW(n.fieldGroups.flatMap(e=>e.fields));r.fields=[...r.fields,fW(t,i)]})},k=(e,t)=>{a((n,r)=>{let a=n.fieldGroups.find(t=>t.id===e);a&&(a.fields=a.fields.filter(e=>e.id!==t),r.removeContentKeysWithPrefix(EU(t,i)))}),_(n=>n?.groupId===e&&n.fieldId===t?null:n),y(n=>n?.groupId===e&&n.fieldId===t?null:n)},A=e=>{a((t,n)=>{let r=t.fieldGroups.findIndex(t=>t.id===e);if(!(r<0)){n.removeContentKeysWithPrefix(CU(e,i));for(let e of t.fieldGroups[r].fields)n.removeContentKeysWithPrefix(EU(e.id,i));t.fieldGroups.splice(r,1)}}),u(t=>t===e?null:t),f(t=>t===e?null:t),h(t=>t===e?null:t),_(t=>t?.groupId===e?null:t),y(t=>t?.groupId===e?null:t)},j=e=>{u(e)},M=e=>{f(e)},N=e=>{h(e)},P=(e,t)=>{_({groupId:e,fieldId:t})},F=(e,t)=>{y({groupId:e,fieldId:t})},I=e=>{e||h(null)},L=e=>{if(p){if(JSON.stringify(S?.layout)===JSON.stringify(e)){h(null);return}a(t=>{let n=t.fieldGroups.find(e=>e.id===p);n&&(n.layout=e)}),h(null)}},ee=e=>{e||u(null)},te=e=>{e||f(null)},R=e=>{e||_(null)},ne=e=>{e||y(null)},z=(e,t)=>{a(n=>{let r=n.fieldGroups.find(t=>t.id===e);r&&(r.fields=t)})};return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(`section`,{className:`min-h-24`,children:[(0,m.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,m.jsxs)(`p`,{className:`flex flex-wrap items-baseline gap-x-2 text-sm font-semibold uppercase tracking-wider text-gray-600`,children:[(0,m.jsx)(`span`,{children:o(`responseConfig`)}),(0,m.jsxs)(`span`,{className:`font-normal normal-case tracking-normal text-muted-foreground`,children:[`(`,(0,m.jsx)(`span`,{className:`tabular-nums`,children:s}),`)`]})]}),(0,m.jsx)(W,{type:`button`,variant:`outline`,size:`icon-sm`,className:`rounded-full text-muted-foreground shadow-sm`,"aria-label":o(`addFieldGroup`),onClick:E,children:(0,m.jsx)(Dy,{className:`size-4`})})]}),(0,m.jsxs)(`div`,{className:`mt-2`,children:[s>0&&(0,m.jsx)(sre,{itemId:e,items:t.fieldGroups,onAddField:O,onChangeGroupHeader:M,onEditLayout:N,onDeleteGroup:A,onDeleteField:k,onEditField:P,onEditFieldKey:F,onSortFields:j,onItemsReorder:D}),(0,m.jsxs)(W,{type:`button`,variant:`ghost`,size:`sm`,className:U(`mt-2 min-w-44 justify-start gap-2 rounded-full text-muted-foreground`),onClick:E,children:[(0,m.jsx)(Dy,{className:`size-4`}),o(`addFieldGroup`)]})]})]}),(0,m.jsx)($ne,{open:b!==null,groupId:b?.id??null,groupTitle:b?.title,fields:b?.fields??[],onOpenChange:ee,onFieldsReorder:e=>{b&&z(b.id,e)}}),(0,m.jsx)(Jne,{open:x!==null,initialTitle:x?.title,initialDescription:x?.description,onOpenChange:te,onSave:e=>{if(!(!d||!x)){if(x.title===e.title&&x.description===e.description){f(null);return}a((t,n)=>{let a=t.fieldGroups.find(e=>e.id===d);a&&(a.title=e.title,a.description=e.description,RU(n,r,a,i))}),f(null)}}},`header-${x?.id??`closed`}-${r}-${x===null?`closed`:`open`}`),(0,m.jsx)(Zne,{open:S!==null,initialLayout:S?.layout??{base:1,xs:1,sm:1,md:1,xl:1},onOpenChange:I,onSave:L},`layout-${S?.id??`closed`}`),(0,m.jsx)(Kne,{open:C!==null,field:C,allFields:T,onOpenChange:R,onSave:e=>{if(!(!g||!C)){if(JSON.stringify(C)===JSON.stringify(e)){_(null);return}a((t,n)=>{let a=t.fieldGroups.find(e=>e.id===g.groupId);if(!a)return;let o=a.fields.findIndex(e=>e.id===g.fieldId);if(o<0)return;let s=a.fields[o],c=new Set(IU(s,i)),l=new Set(IU(e,i));for(let e of c)l.has(e)||n.removeContentKey(e);zU(n,r,e,i),a.fields[o]=e}),_(null)}}},`field-${C?.id??`closed`}`),(0,m.jsx)(qne,{open:w!==null,field:w,allFields:T,onOpenChange:ne,onSave:e=>{if(!(!v||!w)){if(w.key.trim()===e){y(null);return}a(t=>{let n=t.fieldGroups.find(e=>e.id===v.groupId);if(!n)return;let r=n.fields.findIndex(e=>e.id===v.fieldId);r<0||(n.fields[r]={...n.fields[r],key:e})}),y(null)}}},`field-key-${w?.id??`closed`}`)]})},cre=({open:e,option:t,existingOptions:n,initialLabelContent:r,initialFocusField:i=`label`,initialAdvancedOpen:a=!1,itemId:o,embeddedFormConfig:s,embeddedFormEditingConfig:c,selectedLocale:u,translationNamespace:d,onSave:f,onPersistEmbeddedForm:p})=>{let h=K(`defaultEditors.choiceEditor`),g=K(`defaultEditors.choiceEditor.advancedSettings`),_=K(`defaultEditors.choiceEditor.embeddedFormDialog`),v=K(`common.actions`),[y,b]=(0,l.useState)(a),[x,S]=(0,l.useState)(!1),[C,w]=(0,l.useState)(t?.key??``),[T,E]=(0,l.useState)(r),[D,O]=(0,l.useState)(()=>s8(r)),[k]=(0,l.useState)(0),A=e&&t!==null,j=vW(C),M=n.some(e=>e.id!==t?.id&&vW(e.key??``)===j),N=j.length===0?h(`createOptionKeyRequired`):M?h(`createOptionKeyDuplicate`):null,P=N!==null||t===null,F=t?_W(t):!1,I=+!!F,L=SW(n).key??`opt_1`,ee=e=>{t&&f({...t,key:e},T)},te=()=>{P||ee(j)};return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(ew,{open:A,onOpenChange:e=>{if(!e){if(N){S(!0);return}te()}},children:(0,m.jsxs)(aw,{closeLabel:v(`close`),className:U(`survey-editor overflow-visible border-0 bg-transparent p-0 shadow-none ring-0 transition-[max-width] duration-200`,y?`sm:max-w-5xl`:`sm:max-w-xl`),children:[(0,m.jsx)(cw,{className:`sr-only`,children:h(`editOptionDialogTitle`)}),(0,m.jsx)(`div`,{className:`max-h-[min(88svh,56rem)] overflow-y-auto rounded-xl border border-border bg-card p-3 shadow-sm`,children:(0,m.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,m.jsx)(`div`,{className:`pr-9`,children:(0,m.jsx)(O7,{draftKey:C,draftLabelEditorValue:D,keyValidationMessage:N,labelEditorInstanceKey:k,labelAutoFocus:i===`label`,keyAutoFocus:i===`key`,onDraftKeyChange:w,onDraftLabelChange:e=>{O(e.value),E(e.isEmpty?void 0:o8(e.editorState))},onSubmitShortcut:te})}),(0,m.jsxs)(v7,{open:y,onOpenChange:b,children:[(0,m.jsx)(y7,{asChild:!0,children:(0,m.jsxs)(W,{type:`button`,variant:`ghost`,size:`sm`,className:`-ml-2 w-fit aria-expanded:bg-transparent aria-expanded:hover:bg-muted`,children:[(0,m.jsx)(`span`,{children:g(`title`)}),I>0?(0,m.jsx)(UH,{variant:`secondary`,children:g(`configuredCount`,{count:I})}):null,(0,m.jsx)(Tv,{"data-icon":`inline-end`,className:`transition-transform duration-200 group-data-[state=open]/button:rotate-180`,"aria-hidden":!0})]})}),(0,m.jsx)(b7,{children:(0,m.jsxs)(`div`,{className:`pt-2`,children:[(0,m.jsx)(kC,{}),(0,m.jsxs)(`section`,{className:`py-3`,children:[(0,m.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,m.jsx)(Zv,{className:`mt-0.5 size-4 shrink-0 text-muted-foreground`,"aria-hidden":!0}),(0,m.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,m.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,m.jsx)(`h3`,{className:`text-sm font-medium text-foreground`,children:_(`title`)}),(0,m.jsxs)(ox,{children:[(0,m.jsx)(sx,{asChild:!0,children:(0,m.jsx)(W,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":_(`helpLabel`),children:(0,m.jsx)(Nv,{})})}),(0,m.jsx)(cx,{align:`start`,children:(0,m.jsxs)(ux,{children:[(0,m.jsx)(dx,{children:_(`title`)}),(0,m.jsx)(fx,{children:_(`description`)})]})})]}),F?(0,m.jsx)(UH,{variant:`outline`,children:g(`configured`)}):null]})})]}),(0,m.jsx)(`div`,{className:`mt-3`,children:(0,m.jsx)(q7,{itemId:o,config:s,editingConfig:c,selectedLocale:u,translationNamespace:d,onPersist:p})})]})]})})]})]})})]})}),(0,m.jsx)(o_,{open:x,onOpenChange:S,children:(0,m.jsxs)(l_,{className:`survey-editor`,children:[(0,m.jsxs)(u_,{children:[(0,m.jsx)(f_,{children:h(`invalidKeyDialogTitle`)}),(0,m.jsx)(p_,{children:h(`invalidKeyDialogDescription`,{validationMessage:N??``})})]}),(0,m.jsxs)(d_,{children:[(0,m.jsx)(h_,{children:h(`invalidKeyDialogKeepEditing`)}),(0,m.jsx)(m_,{onClick:()=>{w(L),ee(L)},children:h(`invalidKeyDialogUseGenerated`,{key:L})})]})]})})]})},J7=`↵`;function lre({text:e}){let t=e.split(/\r?\n/);return t.length<=1?e:(0,m.jsx)(m.Fragment,{children:t.map((e,t)=>(0,m.jsxs)(l.Fragment,{children:[t>0?(0,m.jsx)(`span`,{className:`text-muted-foreground/90 shrink-0 px-0.5 font-mono text-[0.85em] select-none`,"aria-hidden":!0,children:J7}):null,e]},`opt-label-line-${t}`))})}function ure({item:e,displayConditionLabel:t,displayCondition:n,embeddedFormLabel:r,className:i,isOverlay:a,isSourceWhileDragging:o,surfaceOnParent:s}){let c=e.labelContent?(0,d.getContentPlainText)(e.labelContent).trim().length>0:!1,l=n?(0,m.jsx)(zV,{expression:n,title:t}):e.option.hasDisplayCondition?(0,m.jsxs)(nb,{children:[(0,m.jsx)(rb,{asChild:!0,children:(0,m.jsx)(`span`,{className:`inline-flex rounded p-1 hover:bg-muted/80`,"aria-label":t,children:(0,m.jsx)(Qv,{className:`size-4`,"aria-hidden":!0})})}),(0,m.jsx)(ib,{side:`left`,children:t})]}):null,u=_W(e.option)?(0,m.jsxs)(nb,{children:[(0,m.jsx)(rb,{asChild:!0,children:(0,m.jsx)(`span`,{className:`inline-flex rounded p-1 hover:bg-muted/80`,"aria-label":r,children:(0,m.jsx)(Zv,{className:`size-4`,"aria-hidden":!0})})}),(0,m.jsx)(ib,{side:`left`,children:r})]}):null;return(0,m.jsxs)(`div`,{className:U(`flex w-full min-w-0 items-center gap-2 rounded-lg ps-3 py-2 text-sm transition-colors`,!a&&!s&&`hover:bg-muted/70`,a&&`border border-border bg-background shadow-md`,o&&`opacity-90 bg-muted/70 backdrop-blur-sm`,i),children:[(0,m.jsx)(`span`,{className:`inline-flex shrink-0 rounded-md bg-muted px-2 py-0.5 font-mono text-xs text-muted-foreground`,children:e.option.key??`OPTION`}),c?(0,m.jsx)(E7,{content:e.labelContent,className:`min-w-0 flex-1 truncate text-foreground`,paragraphClassName:`text-foreground/90`,singleLine:!0,singleLineNewlineIndicator:J7}):(0,m.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-foreground/90`,children:(0,m.jsx)(lre,{text:e.label})}),(0,m.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1 text-muted-foreground`,children:[l,u]})]})}function dre({groupId:e,item:t,index:n,displayConditionLabel:r,displayCondition:i,embeddedFormLabel:a,onEditLabel:o,onEditKey:s,onEditEmbeddedForm:c,onDuplicate:u,onDelete:d,t:f}){let[p,h]=(0,l.useState)(!1),{ref:g,isDragging:_}=aB({id:t.option.id,index:n,group:e});return(0,m.jsx)(`li`,{ref:g,className:U(`group relative touch-none`),"aria-label":f(`dragHandle`),children:(0,m.jsxs)(wB,{onOpenChange:h,children:[(0,m.jsx)(TB,{asChild:!0,children:(0,m.jsx)(`div`,{tabIndex:0,onClick:e=>{e.target instanceof Element&&e.target.closest(`[data-expression-trigger="true"]`)||o(t.option.id)},className:U(`w-full rounded-lg text-start transition-colors`,`focus-visible:ring-2 focus-visible:ring-ring`,`hover:bg-muted/70`,p&&`bg-muted/70`),children:(0,m.jsx)(ure,{item:t,displayConditionLabel:r,displayCondition:i,embeddedFormLabel:a,isSourceWhileDragging:_,revealHandleOnHover:!0,surfaceOnParent:!0})})}),(0,m.jsxs)(OB,{className:`border-border`,children:[(0,m.jsxs)(kB,{onSelect:()=>o(t.option.id),children:[(0,m.jsx)(Cy,{className:`size-4`}),f(`optionContext.editLabel`)]}),(0,m.jsxs)(kB,{onSelect:()=>s(t.option.id),children:[(0,m.jsx)(`span`,{className:`size-4 shrink-0`,"aria-hidden":!0}),f(`optionContext.editKey`)]}),(0,m.jsxs)(kB,{disabled:!0,children:[(0,m.jsx)(Qv,{className:`size-4`}),f(`optionContext.editBranching`)]}),(0,m.jsxs)(kB,{onSelect:()=>c(t.option.id),children:[(0,m.jsx)(Zv,{className:`size-4`}),f(`optionContext.editEmbeddedForm`)]}),(0,m.jsx)(NB,{}),(0,m.jsxs)(kB,{onSelect:()=>{u(t.option.id)},children:[(0,m.jsx)(Bv,{className:`size-4`}),f(`optionContext.duplicate`)]}),(0,m.jsxs)(kB,{variant:`destructive`,onSelect:e=>{e.preventDefault(),d(t.option.id)},children:[(0,m.jsx)(qy,{className:`size-4`}),f(`optionContext.delete`)]})]})]})})}var fre=({itemId:e,items:t,onItemEditLabel:n,onItemEditKey:r,onItemEditEmbeddedForm:i,onItemDuplicate:a,onItemDelete:o,onItemsReorder:s})=>{let c=K(`defaultEditors.choiceEditor`),l=K(`defaultEditors.choiceEditor.optionIndicators`),u=l(`displayCondition`),d=l(`embeddedForm`),f=HC()?.surveyItems.get(e)?.displayConditions?.components;return(0,m.jsx)(lR,{sensors:[DL.configure({activationConstraints:[new CL.Distance({value:5})]})],onDragEnd:(e=>{if(e.canceled||!mz(e.operation)||!e.operation.source)return;let{source:n}=e.operation,{initialIndex:r,index:i}=n;if(r===i)return;let a=t.map(e=>e.option),[o]=a.splice(r,1);o&&(a.splice(i,0,o),s(a))}),modifiers:e=>[...e,R7],children:(0,m.jsx)(`div`,{className:`min-h-0 max-h-[min(22rem,50svh)] overflow-y-auto`,children:(0,m.jsx)(`ol`,{className:`space-y-0.5 p-px`,children:t.map((t,s)=>(0,m.jsx)(dre,{groupId:e,item:t,index:s,displayConditionLabel:u,displayCondition:f?.[t.option.id],embeddedFormLabel:d,onEditLabel:n,onEditKey:r,onEditEmbeddedForm:i,onDuplicate:a,onDelete:o,t:c},t.option.id))})})})},Y7=({itemId:e,locale:t,contentKey:n,label:r,placeholder:i,description:a,bare:o=!1,contentPolicy:s,wrapperClassName:c,surfaceClassName:u,contentClassName:f,endOfContentEditingArea:p=!1,placeholderClassName:h,styleControls:g,templateVariables:_,resolveImageAssetUrl:v,imageAssets:y})=>{let b=K(`history`),x=HC(),S=D(),C=E(e=>e.updateItemTranslations),w=E(e=>e.commitByUser),T=E(e=>e.removeAsset),O=E(e=>e.setAsset),k=(0,l.useCallback)(async e=>{let t=(0,d.generateId)(),n=await QC(e);return O(t,{kind:`image`,source:{type:`embedded`,mediaType:e.type||`application/octet-stream`,encoding:`base64`,data:n},metadata:{filename:e.name}}),t},[O]),A=(0,l.useMemo)(()=>{if(x)return{getUsageCount:e=>x.getAssetUsages(e).length,removeAsset:e=>{T(e),w({label:b(`removeSurveyAsset`)})}}},[x,T,w,b]),j=(0,l.useMemo)(()=>x?.getItemTranslations(e)?.getContent(t,n),[n,e,t,x]),M=(0,l.useMemo)(()=>(0,d.getContentPlainText)(j),[j]),N=(0,l.useMemo)(()=>s8(j,s),[s,j]),[P,F]=(0,l.useState)(M),[I,L]=(0,l.useState)(j),[ee,te]=(0,l.useState)(()=>s8(j,s)),[R,ne]=(0,l.useState)(!1),z=(0,l.useCallback)(r=>{let i=S.getState().editor?.survey??null,a=i?.surveyItems.get(e);if(!i||!a)return;let o=i.getItemTranslations(e),s=o?.getContent(t,n),c=r?.value??P,l=r?.content??I??(0,d.createRichTextContent)(c),u=(0,d.isContentEmpty)(l)?void 0:l;if(JSON.stringify(s)===JSON.stringify(u))return;let f=o?.clone()??new d.SurveyItemTranslations;f.setContent(t,n,u),C(e,f)&&w({label:b(`updateItemContent`)})},[w,n,I,P,S,b,e,t,C]),re=(0,l.useEffectEvent)(()=>{R&&z({content:I,value:P})});(0,l.useEffect)(()=>()=>{re()},[]);let ie=()=>{F(M),L(j),te(s8(j,s)),ne(!0)},ae=()=>{ne(!1),z()},oe=e=>{e.key===`Escape`&&(e.preventDefault(),e.currentTarget.blur())},se=`${e}-${t}-${n}`,ce=R?ee:N,le=(0,m.jsx)(s?.variant===`block`?_7:g7,{id:se,value:ce,placeholder:i,onChange:e=>{let t=o8(e.editorState,s);F(e.plainText),L(t),te(e.value),R||z({content:t,value:e.plainText})},onFocus:ie,onBlur:ae,onKeyDown:oe,wrapperClassName:c,surfaceClassName:u,contentClassName:f,endOfContentEditingArea:p,placeholderClassName:h,styleControls:g,templateVariables:_,contentPolicy:s,resolveImageAssetUrl:v,imageAssets:y,registerImageAsset:k,imageAssetDeletion:A,linksEnabled:!0});return o?le:(0,m.jsxs)(MC,{children:[(0,m.jsx)(PC,{htmlFor:se,children:r}),a&&(0,m.jsx)(IC,{children:a}),le]})},pre={...y6,variant:`compact`,allowedBlockTypes:{paragraph:!0},allowedStyleAttributes:{weight:!0,italic:!0,underline:!0,color:!0}},mre={...y6,variant:`compact`,allowedBlockTypes:{paragraph:!0},allowedStyleAttributes:{weight:!0,underline:!0,color:!0}},X7={...b6,variant:`block`,allowedBlockTypes:{paragraph:!0,bulletList:!0,image:!0,separator:!0}},Z7={...X7,allowedBlockTypes:{...X7.allowedBlockTypes,heading:!0,infoBox:!0}},hre=Z7,gre={...y6,variant:`compact`,allowedBlockTypes:{paragraph:!0},allowedStyleAttributes:{weight:!0,italic:!0,underline:!0,color:!0}};function Q7(){let e=HC(),t=YC();return{imageAssets:(0,l.useMemo)(()=>t.map(([e,t])=>({assetId:e,alt:t.metadata?.alt,label:$C(t,e),previewUrl:ZC(t)})),[t]),resolveImageAssetUrl:(0,l.useCallback)(t=>ZC(e?.getAsset(t)),[e])}}var _re=({itemId:e,locale:t})=>{let n=K(`defaultEditors.questionHeader`),{templateVariables:r,defaultStyleControls:i}=D7();return(0,m.jsx)(Y7,{itemId:e,locale:t,contentKey:`cardFooter`,label:``,placeholder:n(`cardFooterPlaceholder`),bare:!0,contentPolicy:gre,contentClassName:`w-full py-1 text-sm focus-visible:outline-none focus-visible:ring-0`,styleControls:i,templateVariables:r})},$7=({itemId:e,locale:t,contentKey:n,placeholder:r,allowAdvancedBlocks:i=!1})=>{let{imageAssets:a,resolveImageAssetUrl:o}=Q7(),{templateVariables:s,defaultStyleControls:c}=D7();return(0,m.jsx)(Y7,{itemId:e,locale:t,contentKey:n,label:``,placeholder:r,bare:!0,contentPolicy:i?Z7:X7,styleControls:c,templateVariables:s,resolveImageAssetUrl:o,imageAssets:a})},vre=({itemId:e,locale:t,placeholder:n})=>{let{imageAssets:r,resolveImageAssetUrl:i}=Q7(),{templateVariables:a,defaultStyleControls:o}=D7();return(0,m.jsx)(Y7,{itemId:e,locale:t,contentKey:`content`,label:``,placeholder:n,bare:!0,contentClassName:`min-h-56`,endOfContentEditingArea:!0,contentPolicy:hre,styleControls:o,templateVariables:a,resolveImageAssetUrl:i,imageAssets:r})},yre=({itemId:e,locale:t})=>{let n=K(`defaultEditors.questionHeader`),{templateVariables:r,defaultStyleControls:i,subtitleStyleControls:a}=D7();return(0,m.jsx)(`div`,{className:`space-y-4`,children:(0,m.jsxs)(`div`,{className:`space-y-1`,children:[(0,m.jsx)(Y7,{itemId:e,locale:t,contentKey:`title`,label:``,placeholder:n(`titlePlaceholder`),bare:!0,contentPolicy:pre,contentClassName:`w-full py-1 text-lg font-medium focus-visible:outline-none focus-visible:ring-0`,styleControls:i,templateVariables:r}),(0,m.jsx)(Y7,{itemId:e,locale:t,contentKey:`subtitle`,label:``,placeholder:n(`subtitlePlaceholder`),bare:!0,contentPolicy:mre,contentClassName:`w-full text-sm italic focus-visible:outline-none focus-visible:ring-0`,styleControls:a,templateVariables:r})]})})},e9=({itemId:e,locale:t,responseSection:n})=>{let r=K(`defaultEditors.questionBody`);return(0,m.jsxs)(`div`,{className:`mx-auto flex w-full flex-col gap-4 px-4 py-3 text-base`,children:[(0,m.jsx)(yre,{itemId:e,locale:t}),(0,m.jsx)($7,{itemId:e,locale:t,contentKey:`topContent`,placeholder:r(`topContentPlaceholder`),allowAdvancedBlocks:!0}),n,(0,m.jsx)(kC,{}),(0,m.jsx)($7,{itemId:e,locale:t,contentKey:`bottomContent`,placeholder:r(`bottomContentPlaceholder`),allowAdvancedBlocks:!0}),(0,m.jsx)(_re,{itemId:e,locale:t})]})},t9=[1,2,3,4,5,10],n9=`grow cursor-pointer font-normal hover:bg-muted/70 rounded-md px-1.5 -mx-1.5 py-1 transition-colors`;function r9(e){return e===null||t9.includes(e)}function bre(e,t){return e===null?t:String(e)}function i9(e){return e===null?`unlimited`:t9.includes(e)?String(e):`custom`}var xre=({maxSelection:e,shuffleOptions:t,onMaxSelectionChange:n,onShuffleOptionsChange:r})=>{let i=K(`defaultEditors.choiceEditor`),a=(0,l.useId)(),[o,s]=(0,l.useState)(!1),[c,u]=(0,l.useState)(()=>i9(e)),[d,f]=(0,l.useState)(``),p=(0,l.useEffectEvent)(e=>{u(i9(e)),typeof e==`number`&&!r9(e)?f(String(e)):f(``)});(0,l.useEffect)(()=>{o&&p(e)},[o]);let h=()=>{if(c!==`custom`)return;let e=Number.parseInt(d.trim(),10);!Number.isFinite(e)||e<1||(n(e),s(!1))};return(0,m.jsxs)(ox,{children:[(0,m.jsx)(sx,{asChild:!0,children:(0,m.jsx)(W,{type:`button`,variant:`outline`,size:`icon-sm`,className:`rounded-full text-muted-foreground shadow-sm`,"aria-label":i(`responseSettings`),children:(0,m.jsx)(Fy,{className:`size-3.5`})})}),(0,m.jsxs)(cx,{align:`end`,className:`p-0`,children:[(0,m.jsxs)(ux,{className:`sr-only`,children:[(0,m.jsx)(dx,{children:i(`responseSettings`)}),(0,m.jsx)(fx,{children:i(`responseSettingsDescription`)})]}),(0,m.jsxs)(MC,{className:`flex gap-1 p-2 pb-0`,children:[(0,m.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col gap-2`,children:[(0,m.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,m.jsx)(ty,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":!0}),(0,m.jsx)(FC,{className:`grow text-xs`,children:i(`maxSelectionLabel`)})]}),(0,m.jsxs)(ox,{modal:!1,open:o,onOpenChange:s,children:[(0,m.jsx)(sx,{asChild:!0,children:(0,m.jsxs)(W,{type:`button`,variant:`outline`,className:`h-8 w-full min-w-0 justify-between gap-2 px-2 font-normal active:scale-100`,"aria-label":i(`maxSelectionPlaceholder`),children:[(0,m.jsx)(`span`,{className:`truncate`,children:bre(e,i(`maxSelectionUnlimited`))}),(0,m.jsx)(Tv,{className:`size-4 shrink-0 opacity-60`,"aria-hidden":!0})]})}),(0,m.jsxs)(cx,{align:`start`,sideOffset:6,className:`z-60 w-56 gap-0 p-2`,children:[(0,m.jsx)(`p`,{className:`mb-2 text-xs font-medium text-muted-foreground`,children:i(`maxSelectionLabel`)}),(0,m.jsxs)(mU,{className:`gap-0`,value:c,onValueChange:t=>{if(u(t),t===`unlimited`){n(null),s(!1);return}if(t===`custom`){typeof e==`number`&&!r9(e)?f(String(e)):f(``);return}let r=Number.parseInt(t,10);Number.isFinite(r)&&r>=1&&(n(r),s(!1))},children:[(0,m.jsxs)(x_,{htmlFor:`${a}-unlimited`,className:n9,children:[(0,m.jsx)(hU,{value:`unlimited`,id:`${a}-unlimited`}),i(`maxSelectionUnlimited`)]}),t9.map(e=>(0,m.jsxs)(x_,{htmlFor:`${a}-n-${e}`,className:n9,children:[(0,m.jsx)(hU,{value:String(e),id:`${a}-n-${e}`}),String(e)]},e)),(0,m.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,m.jsxs)(x_,{htmlFor:`${a}-custom`,className:U(n9,`grow-0 shrink-0`),children:[(0,m.jsx)(hU,{value:`custom`,id:`${a}-custom`}),i(`maxSelectionCustomPlaceholder`)]}),(0,m.jsx)(b_,{inputMode:`numeric`,className:`h-7 min-w-0 flex-1 text-sm`,placeholder:i(`maxSelectionCustomPlaceholder`),disabled:c!==`custom`,value:d,onChange:e=>f(e.target.value),onClick:()=>u(`custom`),onFocus:()=>u(`custom`),onBlur:()=>{c===`custom`&&d.trim()&&h()},onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),h())}})]})]})]})]})]}),(0,m.jsx)(IC,{className:`text-xs`,children:i(`maxSelectionDescription`)})]}),(0,m.jsx)(kC,{}),(0,m.jsxs)(MC,{orientation:`horizontal`,className:`p-2 pt-0`,children:[(0,m.jsxs)(NC,{children:[(0,m.jsx)(FC,{className:`text-xs`,children:i(`shuffleOptionsLabel`)}),(0,m.jsx)(IC,{className:`text-xs`,children:i(`shuffleOptionsDescription`)})]}),(0,m.jsx)(cH,{checked:t,onCheckedChange:r,"aria-label":i(`shuffleOptionsLabel`)})]})]})]})},Sre=({itemId:e})=>{let t=K(`defaultEditors.choiceEditor`),n=K(`history`),r=HC(),i=E(e=>e.selectedLocale),a=E(e=>e.getItemDataCopy),o=E(e=>e.updateItem),s=E(e=>e.updateItemTranslations),c=E(e=>e.commitByUser),[u,f]=(0,l.useState)(!1),[p,h]=(0,l.useState)(null),g=(0,l.useRef)(null),_=r?.surveyItems.get(e),v=xW(_?.rawItem.config,e);(0,l.useEffect)(()=>{f(!1),h(null)},[e]);let y=(0,l.useMemo)(()=>{let n=r?.getItemTranslations(e);return v.options.map((e,r)=>{let a=n?.getContent(i,hW(e.id),`en`);return{option:e,labelContent:a,label:(a?(0,d.getContentPlainText)(a).trim():``)||e.key?.trim()||t(`optionLabelFallback`,{index:r+1})}})},[v.options,e,i,r,t]),b=(0,l.useMemo)(()=>p?v.options.find(e=>e.id===p.optionId)??null:null,[v.options,p]),x=(0,l.useMemo)(()=>b?r?.getItemTranslations(e)?.getContent(i,hW(b.id)):void 0,[b,e,i,r]),S=b?gW(b.id):void 0,C=(0,l.useMemo)(()=>b?HU(lW(b.embeddedForm,b.id),r?.getItemTranslations(e),i,{fallbackLocale:`en`,translationNamespace:S}):null,[b,S,e,i,r]),w=(0,l.useMemo)(()=>b?HU(lW(b.embeddedForm,b.id),r?.getItemTranslations(e),i,{translationNamespace:S}):null,[b,S,e,i,r]),T=v.options.length,D=(e,t,n)=>{for(let r of e.locales){let i=e.getAllForLocale(r);if(i)for(let[a,o]of Object.entries(i)){if(a!==t&&!a.startsWith(`${t}.`))continue;let i=`${n}${a.slice(t.length)}`;e.setContent(r,i,(0,d.structuredCloneMethod)(o))}}},O=t=>{let r=xW(a(e).config,e);t(r),o(e,{config:r}),c({label:n(`updateItemResponseConfig`)})},k=e=>{O(t=>{t.options=e})},A=e=>{e!==v.maxSelection&&O(t=>{t.maxSelection=e})},j=e=>{e!==v.shuffleOptions&&O(t=>{t.shuffleOptions=e})},M=(t,l)=>{let u=xW(a(e).config,e);u.options=[...u.options,t];let f=r?.getItemTranslations(e)?.clone()??new d.SurveyItemTranslations;f.setContent(i,hW(t.id),l),o(e,{config:u}),s(e,f),c({label:n(`updateItemResponseConfig`)})},N=t=>{let i=xW(a(e).config,e),l=i.options.filter(e=>e.id!==t);if(l.length===i.options.length)return;i.options=l;let u=r?.getItemTranslations(e)?.clone()??new d.SurveyItemTranslations;u.removeContentKey(hW(t)),u.removeContentKeysWithPrefix(gW(t)),o(e,{config:i}),s(e,u),c({label:n(`updateItemResponseConfig`)})},P=t=>{let i=xW(a(e).config,e),l=i.options.findIndex(e=>e.id===t);if(l===-1)return;let u=i.options[l],f=CW(u,i.options),p=[...i.options];p.splice(l+1,0,f),i.options=p;let m=r?.getItemTranslations(e),h=m?.clone()??new d.SurveyItemTranslations,g=hW(t),_=hW(f.id),v=gW(t),y=gW(f.id);m?.locales.forEach(e=>{let t=m.getContent(e,g);t&&h.setContent(e,_,(0,d.structuredCloneMethod)(t))}),D(h,v,y),o(e,{config:i}),s(e,h),c({label:n(`updateItemResponseConfig`)})},F=(t,l)=>{let u=xW(a(e).config,e),f=u.options.findIndex(e=>e.id===t.id);if(h(null),f===-1)return;let p=u.options[f],m={...p,key:vW(t.key??``)},g=hW(t.id),_=r?.getItemTranslations(e),v=_?.getContent(i,g),y=p.key===m.key,b=JSON.stringify(v)===JSON.stringify(l);if(y&&b)return;u.options[f]=m;let x=_?.clone()??new d.SurveyItemTranslations;x.setContent(i,g,l),o(e,{config:u}),s(e,x),c({label:n(`updateItemResponseConfig`)})},I=()=>{f(!0)},L=e=>{h({optionId:e,focusField:`label`})},ee=e=>{h({optionId:e,focusField:`key`})},te=e=>{h({optionId:e,focusField:`advanced`,advancedOpen:!0})},R=(t,i)=>{let l=xW(a(e).config,e),u=l.options.findIndex(e=>e.id===t);if(u<0)return!1;let f=l.options[u],p=lW(f.embeddedForm,t),m=(r?.getItemTranslations(e))?.clone()??new d.SurveyItemTranslations,h=gW(t);if(i(p,m)===!1)return!1;let g=GU(p),_=g.fieldGroups.length>0?g:void 0;return l.options[u]={...f,embeddedForm:_},_||m.removeContentKeysWithPrefix(h),o(e,{config:l}),s(e,m.clone().compact()),c({label:n(`updateItemResponseConfig`)}),!0},{isShortcutActive:ne}=qH(g,{key:`c`},{enabled:!u});return(0,m.jsxs)(`section`,{className:`min-h-24`,children:[(0,m.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,m.jsxs)(`p`,{className:`flex flex-wrap items-baseline gap-x-2 text-sm font-semibold uppercase tracking-wider text-gray-600`,children:[(0,m.jsx)(`span`,{children:t(`responseConfig`)}),(0,m.jsxs)(`span`,{className:`font-normal normal-case tracking-normal text-muted-foreground`,children:[`(`,(0,m.jsx)(`span`,{className:`tabular-nums`,children:T}),`)`]})]}),(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,m.jsx)(xre,{maxSelection:v.maxSelection,shuffleOptions:v.shuffleOptions,onMaxSelectionChange:A,onShuffleOptionsChange:j}),(0,m.jsx)(W,{ref:g,type:`button`,variant:`outline`,size:`icon-sm`,className:U(`rounded-full text-muted-foreground shadow-sm`,ne&&`bg-primary/5 text-foreground ring-2 ring-ring/40 scale-[0.98]`),"aria-label":t(`addResponseElement`),onClick:I,children:(0,m.jsx)(Dy,{className:`size-4`})})]})]}),(0,m.jsxs)(`div`,{className:`mt-2`,children:[(0,m.jsx)(fre,{itemId:e,items:y,onItemEditLabel:L,onItemEditKey:ee,onItemEditEmbeddedForm:te,onItemDuplicate:P,onItemDelete:N,onItemsReorder:k}),(0,m.jsx)(kne,{isOpen:u,open:I,existingOptions:v.options,onCancel:()=>f(!1),onSubmit:M},e),b&&p&&C&&w&&S?(0,m.jsx)(cre,{open:!0,itemId:e,option:b,existingOptions:v.options,initialLabelContent:x,initialFocusField:p.focusField,initialAdvancedOpen:p.advancedOpen,embeddedFormConfig:C,embeddedFormEditingConfig:w,selectedLocale:i,translationNamespace:S,onSave:F,onPersistEmbeddedForm:e=>R(b.id,e)},`${b.id}:${p.focusField}:${p.advancedOpen===!0?`advanced`:`basic`}:${i}`):null]})]})},Cre=e=>{let t=K(`defaultEditors.placeholder`),n=K(`itemEditorCard`),r=E(e=>e.selectedLocale),i=[{id:`conditions`,title:t(`conditions`),description:n(`conditionsDescription`),icon:Qv}];return(0,m.jsx)(uU,{surveyItem:e.item,menu:{items:[(0,m.jsx)(mH,{itemId:e.item.id},`copy-item`)]},layoutVariant:`stacked`,sidePanelCards:i,children:(0,m.jsx)(e9,{itemId:e.item.id,locale:r,responseSection:(0,m.jsx)(Sre,{itemId:e.item.id})})})},wre=({itemId:e})=>{let t=K(`history`),n=HC(),r=D(),i=E(e=>e.selectedLocale),a=E(e=>e.getItemDataCopy),o=E(e=>e.updateItem),s=E(e=>e.updateItemTranslations),c=E(e=>e.commitByUser),u=n?.surveyItems.get(e),f=n?.getItemTranslations(e),p=(0,l.useMemo)(()=>lW(u?.rawItem.config,e),[u?.rawItem.config,e]),h=(0,l.useMemo)(()=>HU(p,f,i,{fallbackLocale:`en`}),[p,f,i]),g=(0,l.useMemo)(()=>HU(p,f,i),[p,f,i]),_=e=>{let t=e?.clone().compact();if(t)return Object.fromEntries(t.locales.map(e=>[e,t.getAllForLocale(e)??{}]))};return(0,m.jsx)(q7,{itemId:e,config:h,editingConfig:g,selectedLocale:i,onPersist:n=>{let i=r.getState().editor;if(!i)return!1;let l=a(e),u=lW(l.config,e),f=i.survey.getItemTranslations(e),p=f?.clone()??new d.SurveyItemTranslations;if(n(u,p)===!1)return!1;let m=GU(u),h=p.clone().compact();return JSON.stringify(l.config)===JSON.stringify(m)&&JSON.stringify(_(f))===JSON.stringify(_(h))?!1:(o(e,{config:m}),s(e,h),c({label:t(`updateItemResponseConfig`)}),!0)}})},Tre=e=>{let t=K(`defaultEditors.placeholder`),n=K(`itemEditorCard`),r=E(e=>e.selectedLocale),i=[{id:`conditions`,title:t(`conditions`),description:n(`conditionsDescription`),icon:Qv}];return(0,m.jsx)(uU,{surveyItem:e.item,menu:{items:[(0,m.jsx)(mH,{itemId:e.item.id},`copy-item`)]},layoutVariant:`stacked`,sidePanelCards:i,children:(0,m.jsx)(e9,{itemId:e.item.id,locale:r,responseSection:(0,m.jsx)(wre,{itemId:e.item.id})})})},Ere=e=>{let t=K(`defaultEditors.infoEditor`),n=K(`itemEditorCard`),r=K(`defaultEditors.placeholder`),i=E(e=>e.selectedLocale),a=[{id:`conditions`,title:r(`conditions`),description:n(`conditionsDescription`),icon:Qv}];return(0,m.jsx)(uU,{surveyItem:e.item,menu:{items:[(0,m.jsx)(mH,{itemId:e.item.id},`copy-item`)]},layoutVariant:`stacked`,sidePanelCards:a,children:(0,m.jsx)(`div`,{className:`flex w-full max-w-3xl flex-col gap-4 px-4 py-3 text-base`,children:(0,m.jsx)(vre,{itemId:e.item.id,locale:i,placeholder:t(`contentPlaceholder`)})})})};function Dre(e){return e.config.id??e.id}function a9(e,t){return`${e.id}...${t}...${Dre(e)}`}function o9(e){return new d.ConstExpression({type:d.ValueType.boolean,value:e})}function s9(e){return new d.ConstExpression({type:d.ValueType.reference,value:e})}function c9(e){return new d.ResponseVariableExpression(a9(e,`get`))}function l9(e){return new d.ResponseVariableExpression(a9(e,`isDefined`))}function u9(e){return e.length===0?o9(!1):e.length===1&&e[0]?e[0]:new d.FunctionExpression(d.FunctionExpressionNames.or,e)}function d9(e){return e.length===0?o9(!0):e.length===1&&e[0]?e[0]:new d.FunctionExpression(d.FunctionExpressionNames.and,e)}function f9(e){return new d.FunctionExpression(d.FunctionExpressionNames.not,[e])}function Ore(e){return e===`all`||e===`none`||e===`either`?e:`either`}function p9(e){return Array.isArray(e)?[...new Set(e.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(Boolean))]:[]}function m9(e){return e.config.options.map(e=>({value:e.id,label:e.key??e.id,description:e.key&&e.key!==e.id?e.id:void 0}))}function h9(e,t,n){if(n.length===0)return o9(t!==`either`);if(pW(e.config.maxSelection)){let r=n.map(t=>new d.FunctionExpression(d.FunctionExpressionNames.eq,[c9(e),s9(t)]));return t===`all`?d9(r):t===`none`?f9(u9(r)):u9(r)}let r=n.map(t=>new d.FunctionExpression(d.FunctionExpressionNames.list_contains,[c9(e),s9(t)]));return t===`all`?d9(r):t===`none`?f9(u9(r)):u9(r)}function kre(e,t){if(t.length===0)return f9(l9(e));if(pW(e.config.maxSelection))return t.length===1?new d.FunctionExpression(d.FunctionExpressionNames.eq,[c9(e),s9(t[0])]):o9(!1);let n=new Set(t),r=e.config.options.map(e=>e.id).filter(e=>!n.has(e));return d9([h9(e,`all`,t),h9(e,`none`,r)])}var Are=[{id:`choice.selectionIncludesOptions`,label:`Selection includes options`,description:`Checks whether the selected options match all, none, or either of the chosen options.`,returnType:d.ValueType.boolean,parameters:[{key:`mode`,label:`Match mode`,input:`singleSelect`,required:!0,defaultValue:`either`,getOptions:()=>[{value:`all`,label:`All`},{value:`none`,label:`None`},{value:`either`,label:`Either`}]},{key:`optionIds`,label:`Options`,input:`multiSelect`,required:!0,getOptions:m9}],buildExpression:(e,t)=>h9(e,Ore(t?.mode),p9(t?.optionIds))},{id:`choice.selectionMatchesExactly`,label:`Selection matches exactly`,description:`Checks whether the answer contains exactly the chosen option set and no other options.`,returnType:d.ValueType.boolean,parameters:[{key:`optionIds`,label:`Options`,input:`multiSelect`,required:!0,getOptions:m9}],buildExpression:(e,t)=>kre(e,p9(t?.optionIds))},{id:`choice.hasSelection`,label:`Has selection`,description:`Checks whether the question has any selected option.`,returnType:d.ValueType.boolean,buildExpression:e=>l9(e)}];function g9({itemContent:e,locales:t,locale:n}){return[...new Set([...t,...e?.locales??[],n])]}function _9(e,t){return g9(e).some(n=>!(0,d.isContentEmpty)(e.itemContent?.getContent(n,t)))}function jre(e){return _9(e,`content`)?g9(e).every(t=>!(0,d.isContentEmpty)(e.itemContent?.getContent(t,`content`)))?Dw.ready:Dw.incomplete:Dw.blank}function Mre({item:e,...t}){let n=lW(e.config,e.id).fieldGroups.some(e=>e.fields.length>0),r=!(0,d.isContentEmpty)(t.itemContent?.getContent(t.locale,`title`));return n&&r?Dw.ready:n||_9(t,`title`)?Dw.incomplete:Dw.blank}function Nre({item:e,...t}){let n=xW(e.config,e.id),r=!(0,d.isContentEmpty)(t.itemContent?.getContent(t.locale,`title`));return n.options.length>=1&&r?Dw.ready:n.options.length>=1||_9(t,`title`)?Dw.incomplete:Dw.blank}function Pre(e,t){return e&&e.trim().length>0?e:typeof t==`string`&&t.trim().length>0?t:``}var v9=({item:e,itemConfig:t,locale:n})=>{let r=K(`defaultEditors.groupPreview`),i=K(`registryLabels.items.pageBreak`),a=e,o=t,s=VC(),c=E(e=>e.editorItemRegistry),l=o?.items??a.items??[];return l.length===0?(0,m.jsx)(`div`,{className:`flex grow justify-center items-center text-center text-muted-foreground px-12 py-24 rounded-3xl border-2 border-dashed border-border`,children:(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`p`,{className:`text-lg font-medium mb-2`,children:r(`emptyTitle`)}),(0,m.jsx)(`p`,{className:`text-sm`,children:r(`emptyDescription`)})]})}):s?(0,m.jsxs)(`div`,{className:`space-y-1 p-4 bg-muted/30 rounded-lg @container/group-preview`,children:[(0,m.jsxs)(`div`,{className:`text-sm block font-medium text-muted-foreground mb-2`,children:[(0,m.jsx)(`span`,{children:r(`items`)}),(0,m.jsxs)(`span`,{className:`text-muted-foreground ml-1`,children:[`(`,l.length,`)`]})]}),(0,m.jsx)(`div`,{className:`space-y-1 hidden @sm/group-preview:block`,children:l.map(e=>{let t=s.survey.surveyItems.get(e);if(!t)return(0,m.jsxs)(`div`,{className:`flex items-center gap-3 p-3 bg-red-50 rounded-lg border border-red-200`,children:[(0,m.jsx)(`div`,{className:`shrink-0 text-red-500`,children:(0,m.jsx)(Av,{className:`size-5`})}),(0,m.jsxs)(`div`,{className:`flex-1`,children:[(0,m.jsx)(`p`,{className:`font-mono text-sm font-medium text-red-700`,children:s.survey.getItemKey(e)?.itemKey}),(0,m.jsx)(`p`,{className:`text-xs text-red-600 mt-1`,children:r(`itemNotFound`)})]})]},e);let a=qD(t,c),o=WD(t),l=Pre(t.metadata?.itemLabel,(0,d.getContentPlainText)(s?.survey.getItemTranslations(t.id)?.getContent(n,`title`,`en`)));return(0,m.jsxs)(`div`,{className:`flex items-center gap-2 p-2 bg-white rounded-lg border border-border`,children:[(0,m.jsx)(`div`,{className:`shrink-0`,style:{color:o},children:(0,m.jsx)(a.icon,{className:`size-5`})}),(0,m.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,m.jsx)(`p`,{className:`font-mono text-sm font-medium truncate grow`,style:{color:o},children:t.type===d.ReservedSurveyItemTypes.PageBreak?i(`label`):s.survey.getItemKey(e)?.itemKey}),l&&(0,m.jsx)(`p`,{className:`text-sm text-muted-foreground truncate`,children:l})]})})]},e)})}),(0,m.jsx)(`div`,{className:`grid grid-cols-2 gap-2 @sm/group-preview:hidden`,children:l.map((e,t)=>{let n=s.survey.surveyItems.get(e),a=s.survey.getItemKey(e)?.itemKey??r(`unknownItemKey`),o=n?WD(n):`#dc2626`,l=n?qD(n,c):void 0;return(0,m.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 rounded-md border border-border bg-background px-2 py-1.5`,children:[(0,m.jsx)(`span`,{className:`shrink-0 rounded-sm border border-border/70 bg-muted px-1 py-0.5 text-[10px] font-semibold leading-none text-muted-foreground`,"aria-label":r(`itemPosition`,{index:t+1}),children:t+1}),(0,m.jsx)(`div`,{className:`shrink-0`,style:{color:o},children:n&&l?(0,m.jsx)(l.icon,{className:`size-4`}):(0,m.jsx)(Av,{className:`size-4`})}),(0,m.jsx)(`p`,{className:`truncate text-xs font-mono`,style:{color:o},children:n?.type===d.ReservedSurveyItemTypes.PageBreak?i(`label`):a})]},e)})})]}):(0,m.jsx)(`div`,{className:`flex min-h-[220px] items-center justify-center rounded-xl border border-border/60 bg-muted/20`,children:(0,m.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:r(`loading`)})})},Fre=({item:e,itemContent:t,locale:n})=>{let r=K(`defaultEditors.pageBreakPreview`),i=K(`registryLabels.items.pageBreak`),a=WD(e),o=qD(e,E(e=>e.editorItemRegistry)),s=t?.getContent(n,`title`,`en`),c=(0,d.getContentPlainText)(s).trim(),l=c.length>0?c:i(`label`);return(0,m.jsxs)(`div`,{className:`min-h-[220px] rounded-xl border-2 border-dashed border-border bg-muted/20 @container/page-break-preview`,children:[(0,m.jsxs)(`div`,{className:`hidden h-full min-h-[220px] items-center justify-center gap-3 px-6 @sm/page-break-preview:flex`,children:[(0,m.jsx)(`div`,{className:`flex items-center justify-center rounded-full border border-border bg-background p-5 shadow-sm`,style:{color:a},children:(0,m.jsx)(o.icon,{className:`size-8`})}),(0,m.jsxs)(`div`,{className:`text-left`,children:[(0,m.jsx)(`p`,{className:`text-sm font-semibold tracking-wide`,style:{color:a},children:l}),(0,m.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`nextPageDescription`)})]})]}),(0,m.jsx)(`div`,{className:`flex h-full min-h-[220px] items-center justify-center @sm/page-break-preview:hidden`,children:(0,m.jsx)(`div`,{className:`flex items-center justify-center rounded-full border border-border bg-background p-6 shadow-sm`,style:{color:a},children:(0,m.jsx)(o.icon,{className:`size-10`})})})]})};function y9(e,t,n){let r=e?.getContent(t,n);return(0,d.isContentEmpty)(r)?void 0:r}function b9({title:e,subtitle:t,resolveImageAssetUrl:n}){return!e&&!t?null:(0,m.jsxs)(`div`,{className:``,children:[e&&(0,m.jsx)(E7,{content:e,resolveImageAssetUrl:n,paragraphClassName:`text-base font-medium text-foreground`}),t&&(0,m.jsx)(E7,{content:t,resolveImageAssetUrl:n,paragraphClassName:`text-sm leading-relaxed text-muted-foreground italic`})]})}var Ire=({itemContent:e,locale:t})=>{let n=K(`defaultEditors.questionPreview`),r=HC(),i=y9(e,t,`title`),a=y9(e,t,`subtitle`),o=y9(e,t,`topContent`),s=y9(e,t,`bottomContent`),c=y9(e,t,`cardFooter`),l=e=>ZC(r?.getAsset(e));return(0,m.jsxs)(`div`,{className:`space-y-1`,children:[(0,m.jsxs)(`div`,{className:`rounded-xl border border-border p-4 bg-card space-y-2`,children:[(0,m.jsx)(b9,{title:i,subtitle:a,resolveImageAssetUrl:l}),o?(0,m.jsx)(E7,{content:o,resolveImageAssetUrl:l,paragraphClassName:`text-sm leading-6 text-foreground/90`}):null,(0,m.jsx)(`div`,{className:`rounded-lg border border-dashed border-border bg-background px-4 py-6 text-sm text-muted-foreground`,children:n(`formPlaceholder`)}),s?(0,m.jsx)(E7,{content:s,resolveImageAssetUrl:l,paragraphClassName:`text-sm leading-6 text-muted-foreground`}):null]}),(0,m.jsx)(`div`,{className:`px-3`,children:(0,m.jsx)(E7,{content:c,resolveImageAssetUrl:l,paragraphClassName:`text-xs text-muted-foreground`})})]})};function Lre(e,t,n){return!t||e.length<2?[...e]:(0,d.shuffleArray)(e,(0,d.createSeededRandom)(n))}var Rre=({item:e,itemConfig:t,itemContent:n,locale:r})=>{let i=K(`defaultEditors.questionPreview`),a=HC(),o=y9(n,r,`title`),s=y9(n,r,`subtitle`),c=y9(n,r,`topContent`),l=y9(n,r,`bottomContent`),u=y9(n,r,`cardFooter`),f=xW(t,e.id),p=e=>ZC(a?.getAsset(e)),h=Lre(f.options.map((e,t)=>({option:e,index:t})),f.shuffleOptions,`preview:${e.id}`).map(({option:e,index:t})=>{let a=y9(n,r,hW(e.id));return{option:e,labelContent:a,label:(a?(0,d.getContentPlainText)(a).trim():``)||e.key?.trim()||i(`optionLabel`,{index:t+1})}});return(0,m.jsxs)(`div`,{className:`space-y-1`,children:[(0,m.jsxs)(`div`,{className:`rounded-xl border border-border p-4 bg-card space-y-2`,children:[(0,m.jsx)(b9,{title:o,subtitle:s,resolveImageAssetUrl:p}),c?(0,m.jsx)(E7,{content:c,resolveImageAssetUrl:p,paragraphClassName:`text-sm leading-6 text-foreground/90`}):null,(0,m.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,m.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-[0.12em] text-muted-foreground`,children:f.maxSelection===1?i(`singleChoice`):f.maxSelection===null?i(`choicePreviewMaxUnlimited`):i(`choicePreviewMaxUpTo`,{max:f.maxSelection})})}),(0,m.jsx)(`div`,{className:`space-y-2`,children:h.length>0?h.map(({option:e,labelContent:t,label:n})=>(0,m.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md border border-border/70 px-3 py-2 text-sm text-foreground`,children:[(0,m.jsx)(`span`,{className:`flex size-4 shrink-0 items-center justify-center border border-border bg-muted/50 ${f.maxSelection===1?`rounded-full`:`rounded-[4px]`}`}),t?(0,m.jsx)(E7,{content:t,className:`min-w-0 flex-1`,paragraphClassName:`text-sm leading-5 text-foreground`}):(0,m.jsx)(`span`,{children:n})]},e.id)):(0,m.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`choicePlaceholder`)})}),l?(0,m.jsx)(E7,{content:l,resolveImageAssetUrl:p,paragraphClassName:`text-sm leading-6 text-muted-foreground`}):null]}),(0,m.jsx)(`div`,{className:`px-3`,children:(0,m.jsx)(E7,{content:u,resolveImageAssetUrl:p,paragraphClassName:`text-xs text-muted-foreground`})})]})},zre=({itemContent:e,locale:t})=>{let n=K(`defaultEditors.infoPreview`),r=HC(),i=y9(e,t,`content`);return(0,m.jsx)(_.InfoItemCardField,{content:i,resolveImageAssetUrl:e=>ZC(r?.getAsset(e)),emptyState:(0,m.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`emptyContent`)})})},Bre=[`title`,`subtitle`,`topContent`,`bottomContent`,`description`,`cardFooter`];function Vre(e,t){return e.find(e=>e.toLowerCase().includes(t))}var Hre=e=>{let t=e.survey.surveyItems.get(e.itemId);if(!t)return;let n=e.survey.getItemTranslations(e.itemId);if(!n)return;let r=xW(t.rawItem.config,e.itemId),i=n.locales,a=[];for(let e of Bre)for(let t of i){let r=(0,d.getContentPlainText)(n.getContent(t,e)).trim();r.length>0&&a.push(r)}for(let e of r.options){let t=hW(e.id);for(let e of i){let r=(0,d.getContentPlainText)(n.getContent(e,t)).trim();r.length>0&&a.push(r)}}let o=Vre(a,e.searchTerm);if(o)return[{matchType:jw.Content,matchText:o}]},Ure=[`title`,`subtitle`,`topContent`,`bottomContent`,`cardFooter`];function Wre(e,t){return e.find(e=>e.toLowerCase().includes(t))}var x9=[{itemType:`root`,infos:{icon:Jv,labelByLocale:{en:`Root`,nl:`Root`},descriptionByLocale:{en:`Survey root item.`,nl:`Survey-rootitem.`},defaultItemClassName:`text-sky-800`,categories:[`structure`]},editorComponent:pU,previewComponent:v9,constructor:d.GroupItemCore,assistantCapability:v.rootItemAssistantCapability,isRootOnly:!0},{itemType:d.ReservedSurveyItemTypes.Group,infos:{icon:Xv,labelByLocale:{en:`Group`,nl:`Groep`},descriptionByLocale:{en:`A container for organizing survey items.`,nl:`Een container om survey-items te organiseren.`},defaultItemClassName:`text-sky-600`,categories:[`structure`]},editorComponent:dU,previewComponent:v9,constructor:d.GroupItemCore,assistantCapability:v.groupItemAssistantCapability,defaultItemKeyPrefix:`group`,getInitialItem:()=>({rawItem:{id:(0,d.generateId)(),key:`group`,itemType:d.ReservedSurveyItemTypes.Group}})},{itemType:d.ReservedSurveyItemTypes.PageBreak,infos:{icon:Vv,labelByLocale:{en:`Page break`,nl:`Pagina-einde`},descriptionByLocale:{en:`Force items after this to appear on a new page.`,nl:`Dwing items hierna om op een nieuwe pagina te verschijnen.`},defaultItemClassName:`text-red-800`,categories:[`structure`]},editorComponent:fU,previewComponent:Fre,constructor:d.PageBreakItemCore,assistantCapability:v.pageBreakItemAssistantCapability,defaultItemKeyPrefix:`page`,getInitialItem:()=>({rawItem:{id:(0,d.generateId)(),key:`page`,itemType:d.ReservedSurveyItemTypes.PageBreak}})},{itemType:`infoItem`,constructor:_.InfoItemCore,assistantCapability:v.infoItemAssistantCapability,renderComponent:_.InfoItemRenderer,previewComponent:zre,getAuthoringState:jre,searchAdapters:[e=>{let t=e.survey.getItemTranslations(e.itemId);if(t)for(let n of t.locales){let r=(0,d.getContentPlainText)(t.getContent(n,`content`)).trim();if(r.toLowerCase().includes(e.searchTerm))return[{matchType:jw.Content,matchText:r}]}}],infos:{icon:oy,labelByLocale:{en:`Info`,nl:`Info`},descriptionByLocale:{en:`Display-only content: markdown, info, warnings, media (no responses).`,nl:`Alleen-weergave-inhoud: markdown, info, waarschuwingen, media (geen antwoorden).`},gettingStarted:{rank:3,descriptionByLocale:{en:`Add an introduction or helpful context.`,nl:`Voeg een introductie of handige context toe.`}},defaultItemClassName:`text-neutral-700`,categories:[`display`]},editorComponent:Ere,defaultItemKeyPrefix:`info`,getInitialItem:e=>{let t=(0,d.generateId)(),n=new d.SurveyItemTranslations;return n.setContent(e?.locale??`en`,`content`,(0,d.createRichTextContent)(``)),{rawItem:{id:t,key:`info`,itemType:`infoItem`,config:{}},translations:n}}},{itemType:`formItem`,constructor:_.FormItemCore,assistantCapability:v.formItemAssistantCapability,renderComponent:_.FormItemRenderer,playerLocalizations:{en:{defaultRenderers:{form:{clearSelection:`Clear {label}`,clearDateSelection:`Clear selected date`,requiredError:`This field is required.`,invalidError:`Invalid response.`,datePickerSelectDate:`Select a date`,datePickerSelectMonth:`Select a month`,datePickerSelectMonthAndYear:`Select month and year`,datePickerSelectYear:`Select a year`,datePickerMonthLabel:`Month`,datePickerYearLabel:`Year`}}},de:{defaultRenderers:{form:{clearSelection:`Auswahl fuer {label} loeschen`,clearDateSelection:`Ausgewaehltes Datum loeschen`,requiredError:`Dieses Feld ist erforderlich.`,invalidError:`Ungueltige Antwort.`,datePickerSelectDate:`Datum auswaehlen`,datePickerSelectMonth:`Monat auswaehlen`,datePickerSelectMonthAndYear:`Monat und Jahr auswaehlen`,datePickerSelectYear:`Jahr auswaehlen`,datePickerMonthLabel:`Monat`,datePickerYearLabel:`Jahr`}}},nl:{defaultRenderers:{form:{clearSelection:`Selectie voor {label} wissen`,clearDateSelection:`Geselecteerde datum wissen`,requiredError:`Dit veld is verplicht.`,invalidError:`Ongeldig antwoord.`,datePickerSelectDate:`Selecteer een datum`,datePickerSelectMonth:`Selecteer een maand`,datePickerSelectMonthAndYear:`Selecteer maand en jaar`,datePickerSelectYear:`Selecteer een jaar`,datePickerMonthLabel:`Maand`,datePickerYearLabel:`Jaar`}}}},previewComponent:Ire,getAuthoringState:Mre,searchAdapters:[e=>{let t=e.survey.surveyItems.get(e.itemId);if(!t)return;let n=e.survey.getItemTranslations(e.itemId);if(!n)return;let r=lW(t.rawItem.config,e.itemId),i=[...Ure,...r.fieldGroups.flatMap(e=>[...LU(e),...e.fields.flatMap(e=>IU(e))])],a=[];for(let e of i)for(let t of n.locales){let r=(0,d.getContentPlainText)(n.getContent(t,e)).trim();r.length>0&&a.push(r)}let o=Wre(a,e.searchTerm);if(o)return[{matchType:jw.Content,matchText:o}]}],infos:{icon:Iv,labelByLocale:{en:`Form`,nl:`Formulier`},descriptionByLocale:{en:`Composable forms with groups and fields.`,nl:`Samenstelbare formulieren met groepen en velden.`},gettingStarted:{rank:1,descriptionByLocale:{en:`Collect an answer with a flexible question.`,nl:`Verzamel een antwoord met een flexibele vraag.`}},defaultItemClassName:`text-emerald-800`,categories:[`question`]},editorComponent:Tre,defaultItemKeyPrefix:`form`,getInitialItem:()=>({rawItem:{id:(0,d.generateId)(),key:`form`,itemType:`formItem`,config:{}}})},{itemType:`choiceItem`,constructor:_.ChoiceItemCore,assistantCapability:v.choiceItemAssistantCapability,renderComponent:_.ChoiceItemRenderer,previewComponent:Rre,getAuthoringState:Nre,searchAdapters:[Hre],playerLocalizations:{en:{defaultRenderers:{choice:{embeddedFormResetTitle:`Reset embedded form?`,embeddedFormResetDescription:`Changing {optionLabel} will clear the answers entered in its embedded form.`,embeddedFormResetConfirm:`Reset form`,embeddedFormResetCancel:`Keep answers`}}},de:{defaultRenderers:{choice:{embeddedFormResetTitle:`Eingebettetes Formular zuruecksetzen?`,embeddedFormResetDescription:`Wenn {optionLabel} geaendert wird, werden die Antworten im eingebetteten Formular entfernt.`,embeddedFormResetConfirm:`Formular zuruecksetzen`,embeddedFormResetCancel:`Antworten behalten`}}},nl:{defaultRenderers:{choice:{embeddedFormResetTitle:`Ingebed formulier resetten?`,embeddedFormResetDescription:`Als {optionLabel} wordt gewijzigd, worden de antwoorden in het ingebedde formulier gewist.`,embeddedFormResetConfirm:`Formulier resetten`,embeddedFormResetCancel:`Antwoorden behouden`}}}},infos:{icon:dy,labelByLocale:{en:`Choice`,nl:`Keuze`},descriptionByLocale:{en:`Choice groups with a configurable maximum number of selections; options may nest forms later.`,nl:`Keuzegroepen met een configureerbaar maximaal aantal selecties; opties kunnen later formulieren bevatten.`},gettingStarted:{rank:2,descriptionByLocale:{en:`Let respondents choose from a set of options.`,nl:`Laat respondenten uit een reeks opties kiezen.`}},defaultItemClassName:`text-fuchsia-800`,categories:[`question`]},expressions:Are,editorComponent:Cre,defaultItemKeyPrefix:`choice`,getInitialItem:()=>{let e=(0,d.generateId)();return{rawItem:{id:e,key:`choice`,itemType:`choiceItem`,config:mW(e)}}}}],S9,C9;function w9(e){let t={};for(let[n,r]of Object.entries(e))t[n]=typeof r==`string`?r:w9(r);return t}function Gre(e){let t={};for(let[n,r]of Object.entries(e))t[n]=w9(r);return t}function T9(e){return{...e,infos:e.infos?{...e.infos,labelByLocale:{...e.infos.labelByLocale},descriptionByLocale:{...e.infos.descriptionByLocale},categories:[...e.infos.categories]}:void 0,playerLocalizations:e.playerLocalizations?Gre(e.playerLocalizations):void 0,expressions:e.expressions?[...e.expressions]:void 0,searchAdapters:e.searchAdapters?[...e.searchAdapters]:void 0}}function E9(e){return e.map(e=>T9(e))}function D9(e={}){let{includeDefaultEntries:t=!0,entries:n=[],conflictStrategy:r=`override`}=e,i=[],a=new Map,o=e=>{let t=a.get(e.itemType),n=T9(e);if(t===void 0){a.set(e.itemType,i.length),i.push(n);return}if(r===`error`)throw Error(`Duplicate item registry entry for type: ${e.itemType}`);i[t]=n};if(t)for(let e of x9)o(e);for(let e of n)o(e);return i}function O9(){return E9(x9)}function Kre(e={}){return Kw(D9(e),{requireBuiltInTypes:e.requireBuiltInTypes,categoryLabels:e.categoryLabels})}function qre(e={}){return Hw(D9(e),{requireRenderer:e.requireRenderer})}function k9(){return S9||=Kw(x9),S9}function Jre(){return C9||=Hw(x9),C9}var Yre=(e,t)=>{let n=new Set,r=[];for(let i of[...e].reverse())if(!(!gw(i)||!i.itemId)&&!(i.itemId===t||n.has(i.itemId))&&(n.add(i.itemId),r.push(i.itemId),r.length>=5))break;return r.length>0?r:void 0},A9=({itemRegistry:e})=>e.assistantCapabilities.manifest,j9=({sessionId:e,revision:t,editor:n,location:r,navigationHistory:i,selectedLocale:a,itemRegistry:o,historyIndex:s,options:c})=>{let l=n.toJson(),u=_w(r),d=u,f=r.view===`preview-mode`&&r.editingItemId?`inline-item-editor`:r.view,p=A9({itemRegistry:o}),m=(0,y.hashString)((0,y.stableStringify)(l.survey)),h=n.undoRedo.getHistory(),g=h.find(e=>e.isCurrent)?.index??s;return{protocolVersion:1,version:{sessionId:e,revision:t,historyIndex:s,contentHash:m,capabilityDigest:p.digest},survey:l.survey,ui:{view:r.view,selectedItemId:u,selectedLocale:a,focusItemId:d,recentItemIds:Yre(i,u),activeSurface:c?.uiContext?.activeSurface??f,openPanels:c?.uiContext?.openPanels,highlights:c?.uiContext?.highlights,history:{currentIndex:g,totalEntries:h.length,canUndo:n.canUndo(),canRedo:n.canRedo(),recent:h.slice(Math.max(0,g-7),g+5).map(e=>({index:e.index,kind:e.kind,label:e.meta.label,source:e.meta.source,timestamp:e.timestamp,isCurrent:e.isCurrent}))}},capabilities:p,createdAt:c?.createdAt??new Date().toISOString()}},M9=(e,t)=>f.SurveyEditor.fromJson((0,d.structuredCloneMethod)(e.toJson()),t.coreRegistry),N9=e=>{let t=new Map;for(let{assetId:n}of e.survey.getAssetUsages())e.getAsset(n)===void 0&&t.set(n,(t.get(n)??0)+1);return t},P9=(e,t)=>{let n=[...N9(e)].filter(([e,n])=>n>(t.get(e)??0)).map(([e])=>e);if(n.length===0)return;let r=n.map(e=>`"${e}"`).join(`, `);throw Error(`No assistant changes were applied because referenced image ${n.length===1?`asset`:`assets`} ${r} ${n.length===1?`was`:`were`} not found. Import the image and its references in the same authorized batch.`)},F9=({change:e,status:t,message:n,appliedOperations:r=0,editor:i})=>({status:t,changeId:e.id,summary:e.summary,message:n,appliedOperations:r,issues:t===`rejected`?e.validation.issues:void 0,editor:i}),I9=({currentPrecondition:e,expectedPrecondition:t})=>{if(e.sessionId!==t.sessionId)return`The survey session changed before this edit could be applied.`;if(e.contentHash!==t.contentHash)return`The survey changed before this edit could be applied.`;if(e.capabilityDigest!==t.capabilityDigest)return`The survey editor capabilities changed before this edit could be applied. Retry the request.`},Xre=(e,t)=>{let n=t?.clone()??new d.SurveyItemTranslations;for(let t of e??[])n.setContent(t.locale,t.contentKey,L9(t));return n.compact()},L9=({content:e,plainText:t})=>e?(0,d.structuredCloneMethod)(e):{type:d.ContentType.md,content:t??``},Zre=({config:e,itemId:t,usesInitialConfig:n})=>{if(!n||typeof e!=`object`||!e||Array.isArray(e))return e;let r=(0,d.structuredCloneMethod)(e);return`id`in r?{...r,id:t}:r},Qre=({itemRegistry:e,operation:t})=>{let n=e.definitions[t.item.itemType]?.getInitialItem?.(),r=n?.rawItem,i=t.item.id&&t.item.id.length>0?t.item.id:r?.id??(0,d.generateId)(),a=t.item.config===void 0,o=a?r?.config:t.item.config;return{rawItem:{...r,...t.item,id:i,key:t.item.key,itemType:t.item.itemType,config:Zre({config:o,itemId:i,usesInitialConfig:a})},translations:Xre(t.translations,n?.translations)}},$re=e=>`options.${e}.label`,R9=e=>{let t=(e.config&&typeof e.config==`object`&&!Array.isArray(e.config)?e.config:{}).options;return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&!Array.isArray(e)):[]},z9=(e,t,n)=>{let r=e.getItemDataCopy(t),i=r.config&&typeof r.config==`object`&&!Array.isArray(r.config)?r.config:{};e.updateItem(t,{config:{id:t,maxSelection:1,shuffleOptions:!1,...i,options:n}})},B9=(e,t,n,r,i)=>{let a=r??e.survey.locales[0]??`en`,o=e.survey.getItemTranslations(t)?.clone()??new d.SurveyItemTranslations;o.setContent(a,$re(n),{type:d.ContentType.md,content:i}),e.updateItemTranslations(t,o)},eie=({editor:e,itemRegistry:t,operation:n,deterministicCreateItemTypes:r})=>{if(!r.has(n.item.itemType))throw Error(`Item type "${n.item.itemType}" is not available for assistant create.`);let{rawItem:i,translations:a}=Qre({itemRegistry:t,operation:n}),o=e.survey.createItemFromRaw(i);e.addItem({parentId:n.target.parentItemId,index:n.target.index},o,a)},tie=(e,t)=>{let n={...e.getItemDataCopy(t.itemId).metadata??{}};t.itemLabel.length>0?n.itemLabel=t.itemLabel:delete n.itemLabel,e.updateItem(t.itemId,{metadata:Object.keys(n).length>0?n:void 0})},nie=(e,t)=>{let n=e.getItemDataCopy(t.itemId);e.updateItem(t.itemId,{metadata:{...n.metadata??{},editorItemColor:t.color}})},rie=(e,t)=>{let n=e.survey.getItemTranslations(t.itemId)?.clone()??new d.SurveyItemTranslations;n.setContent(t.locale,t.contentKey,L9(t)),e.updateItemTranslations(t.itemId,n)},V9=(e,t,n)=>{n!==void 0&&(n===null?delete e[t]:e[t]=n)},iie=(e,t)=>{let n=e.survey.getItemTranslations(t.itemId)?.clone()??new d.SurveyItemTranslations,r=n.getContent(t.locale,t.contentKey);if(r?.type!==d.ContentType.richText)throw Error(`Content "${t.locale}:${t.contentKey}" is not rich text and has no placed image to update.`);let i=-1,a=!1,o=r.doc.blocks.map(e=>{if(e.type!==`image`||(i+=1,i!==t.imageIndex))return e;let n=t.changes,r=(0,d.structuredCloneMethod)(e);n.source!==void 0&&(r.source=n.source),n.alt!==void 0&&(n.alt===null?delete r.alt:r.alt=n.alt),n.caption!==void 0&&(n.caption===null||n.caption.length===0?delete r.caption:r.caption=[{type:`paragraph`,children:[{type:`text`,text:n.caption}]}]);let o={...r.size??{}};return V9(o,`width`,n.width),V9(o,`height`,n.height),V9(o,`maxWidth`,n.maxWidth),V9(o,`maxHeight`,n.maxHeight),(n.width!==void 0||n.height!==void 0||n.maxWidth!==void 0||n.maxHeight!==void 0)&&(Object.keys(o).length===0?delete r.size:r.size=o),n.alignment!==void 0&&(n.alignment===null?delete r.alignment:r.alignment=n.alignment),a=!0,r});if(!a)throw Error(`No image exists at imageIndex ${t.imageIndex}.`);n.setContent(t.locale,t.contentKey,{...r,doc:{...r.doc,blocks:o}}),e.updateItemTranslations(t.itemId,n)},aie=(e,t)=>{let n=e.getItemDataCopy(t.itemId);e.updateItem(t.itemId,{config:(0,d.applyJsonPatch)(n.config??{},t.patches)})},oie=(e,t)=>{if(!t.option.id)throw Error(`The choice option change is missing a normalized option id.`);let n=R9(e.getItemDataCopy(t.itemId)),r=t.index===void 0?n.length:Math.min(n.length,Math.max(0,t.index)),i={id:t.option.id,...t.option.key?{key:t.option.key}:{}};n.splice(r,0,i),z9(e,t.itemId,n),B9(e,t.itemId,t.option.id,t.locale,t.option.label)},sie=(e,t)=>{B9(e,t.itemId,t.optionId,t.locale,t.label)},cie=(e,t)=>{let n=R9(e.getItemDataCopy(t.itemId)).filter(e=>e.id!==t.optionId),r=e.survey.getItemTranslations(t.itemId)?.clone()??new d.SurveyItemTranslations;z9(e,t.itemId,n),r.removeContentKeysWithPrefix(`options.${t.optionId}`),r.removeContentKeysWithPrefix(`embeddedForms.${t.optionId}`),e.updateItemTranslations(t.itemId,r)},lie=(e,t)=>{let n=e.getItemDataCopy(t.itemId),r=new Map(R9(n).filter(e=>typeof e.id==`string`).map(e=>[e.id,e])),i=t.optionIds.map(e=>r.get(e)).filter(e=>!!e);z9(e,t.itemId,i)},H9=e=>typeof e==`object`&&!!e&&!Array.isArray(e),U9=e=>H9(e)&&Array.isArray(e.fieldGroups)?e.fieldGroups.filter(H9).flatMap(e=>typeof e.id==`string`?[{...e,id:e.id,fields:Array.isArray(e.fields)?e.fields.filter(H9):[]}]:[]):[],uie=(e,t)=>{if(!t){if(e.itemType!==`formItem`)throw Error(`Form operation target is not a formItem.`);let t=H9(e.config)?e.config:{};return{groups:U9(t),update:n=>({...e,config:{id:e.id,...t,fieldGroups:n}})}}if(e.itemType!==`choiceItem`)throw Error(`Embedded-form operation target is not a choiceItem.`);let n=H9(e.config)?e.config:{},r=Array.isArray(n.options)?n.options.filter(H9):[],i=r.findIndex(e=>e.id===t);if(i<0)throw Error(`Choice option "${t}" was not found.`);let a=r[i],o=H9(a.embeddedForm)?a.embeddedForm:{};return{groups:U9(o),update:s=>{let c=[...r];return c[i]={...a,embeddedForm:{id:t,...o,fieldGroups:s}},{...e,config:{...n,options:c}}}}},W9=(e,t,n=[])=>{if(n.length===0)return;let r=e.survey.getItemTranslations(t)?.clone()??new d.SurveyItemTranslations;for(let e of n)r.setContent(e.locale,e.contentKey,L9(e));e.updateItemTranslations(t,r)},die=(e,t)=>{let n=uie(e.getItemDataCopy(t.target.itemId),t.target.optionId),r=n.groups.map(e=>({...e,fields:[...e.fields]}));switch(t.kind){case`upsert-form-field-group`:{let i=r.findIndex(e=>e.id===t.group.id),a=i>=0?r[i]:void 0,o={...a,...t.group,id:t.group.id,layout:t.group.layout??a?.layout??{base:1,xs:1,sm:1,md:1,xl:1},fields:Array.isArray(t.group.fields)?t.group.fields.filter(H9):a?.fields??[]};i>=0?r[i]=o:r.splice(Math.min(t.index??r.length,r.length),0,o),e.updateItem(t.target.itemId,n.update(r)),W9(e,t.target.itemId,t.translations);return}case`remove-form-field-group`:{let i=r.find(e=>e.id===t.groupId);e.updateItem(t.target.itemId,n.update(r.filter(e=>e.id!==t.groupId)));let a=`${t.target.optionId?`embeddedForms.${t.target.optionId}.`:``}fieldGroups.${t.groupId}`,o=e.survey.getItemTranslations(t.target.itemId)?.clone()??new d.SurveyItemTranslations;o.removeContentKeysWithPrefix(a);for(let e of i?.fields??[])if(typeof e.id==`string`){let n=`${t.target.optionId?`embeddedForms.${t.target.optionId}.`:``}fields.${e.id}`;o.removeContentKeysWithPrefix(n)}e.updateItemTranslations(t.target.itemId,o);return}case`reorder-form-field-groups`:{let i=new Map(r.map(e=>[e.id,e]));e.updateItem(t.target.itemId,n.update(t.groupIds.map(e=>i.get(e))));return}case`upsert-form-field`:{let i;for(let e of r){let n=e.fields.findIndex(e=>e.id===t.field.id);n>=0&&([i]=e.fields.splice(n,1))}let a=r.find(e=>e.id===t.groupId);if(!a)throw Error(`Form field group "${t.groupId}" was not found.`);a.fields.splice(Math.min(t.index??a.fields.length,a.fields.length),0,{...i,...t.field}),e.updateItem(t.target.itemId,n.update(r)),W9(e,t.target.itemId,t.translations);return}case`remove-form-field`:case`move-form-field`:{let i;for(let e of r){let n=e.fields.findIndex(e=>e.id===t.fieldId);n>=0&&([i]=e.fields.splice(n,1))}if(!i)throw Error(`Form field "${t.fieldId}" was not found.`);if(t.kind===`move-form-field`){let e=r.find(e=>e.id===t.targetGroupId);if(!e)throw Error(`Form field group "${t.targetGroupId}" was not found.`);e.fields.splice(Math.min(t.index??e.fields.length,e.fields.length),0,i)}if(e.updateItem(t.target.itemId,n.update(r)),t.kind===`remove-form-field`){let n=`${t.target.optionId?`embeddedForms.${t.target.optionId}.`:``}fields.${t.fieldId}`,r=e.survey.getItemTranslations(t.target.itemId)?.clone()??new d.SurveyItemTranslations;r.removeContentKeysWithPrefix(n),e.updateItemTranslations(t.target.itemId,r)}return}}},fie=(e,t)=>{let n=e.getItemDataCopy(t.itemId),r=H9(n.config)?n.config:{},i=Array.isArray(r.options)?r.options.filter(H9):[],a=i.findIndex(e=>e.id===t.optionId);if(a<0)throw Error(`Choice option "${t.optionId}" was not found.`);let o=[...i],s={...o[a]};if(t.kind===`set-embedded-form`?s.embeddedForm=t.form:(delete s.embeddedForm,delete s.embeddedFormItemId),o[a]=s,e.updateItem(t.itemId,{config:{...r,options:o}}),t.kind===`set-embedded-form`)W9(e,t.itemId,t.translations);else{let n=e.survey.getItemTranslations(t.itemId)?.clone()??new d.SurveyItemTranslations;n.removeContentKeysWithPrefix(`embeddedForms.${t.optionId}`),e.updateItemTranslations(t.itemId,n)}},G9=(e,t,n)=>{let r=e.toJson();return f.SurveyEditor.fromJson({...r,survey:n((0,d.structuredCloneMethod)(r.survey))},t.coreRegistry)},K9=e=>{let t=(0,d.parseJsonPointer)(e);if(t[0]!==`surveyItems`||t[1]===void 0)return;let n=Number.parseInt(t[1],10);return Number.isInteger(n)&&n>=0&&String(n)===t[1]?{index:n,replacesWholeItem:t.length===2}:void 0},pie=e=>{let t=new Set;for(let n of e.patches){let e=K9(n.path);if(e&&(n.op!==`remove`||!e.replacesWholeItem)&&t.add(e.index),`from`in n){let e=K9(n.from);e&&!e.replacesWholeItem&&t.add(e.index)}}return t},mie=(e,t)=>{if(t.size===0||!Array.isArray(e.surveyItems))return e;let n=new Date().toISOString();return{...e,surveyItems:e.surveyItems.map((e,r)=>{if(!t.has(r))return e;let i=e;return{...i,editorMetadata:{...i.editorMetadata,createdAt:i.editorMetadata?.createdAt??n,updatedAt:n}}})}},hie=({editor:e,itemRegistry:t,operation:n})=>{let r=e.toJson(),i=mie((0,d.applyJsonPatch)(r.survey,n.patches),pie(n));return f.SurveyEditor.fromJson({...r,survey:i},t.coreRegistry)},q9=({editor:e,itemRegistry:t,operation:n,deterministicCreateItemTypes:r})=>{switch(n.kind){case`create-item`:return eie({editor:e,itemRegistry:t,operation:n,deterministicCreateItemTypes:r}),e;case`update-item-key`:return e.updateItem(n.itemId,{key:n.key}),e;case`update-item-label`:return tie(e,n),e;case`update-item-color`:return nie(e,n),e;case`update-item-translation`:return rie(e,n),e;case`update-placed-image`:return iie(e,n),e;case`patch-item-config`:return aie(e,n),e;case`upsert-form-field-group`:case`remove-form-field-group`:case`reorder-form-field-groups`:case`upsert-form-field`:case`remove-form-field`:case`move-form-field`:return die(e,n),e;case`set-embedded-form`:case`remove-embedded-form`:return fie(e,n),e;case`add-choice-option`:return oie(e,n),e;case`update-choice-option-label`:return sie(e,n),e;case`remove-choice-option`:return cie(e,n),e;case`reorder-choice-options`:return lie(e,n),e;case`remove-item`:if(!e.removeItem(n.itemId))throw Error(`Item "${n.itemId}" could not be removed.`);return e;case`move-item`:if(!e.moveItem(n.itemId,{parentId:n.target.parentItemId,index:n.target.index}))throw Error(`Item "${n.itemId}" could not be moved.`);return e;case`reorder-items`:{let t=e.getItemDataCopy(n.parentItemId);return e.updateItem(n.parentItemId,{config:{...H9(t.config)?t.config:{},items:n.itemIds}}),e}case`update-survey-metadata`:{let t={...e.getMetadata()??{}};for(let[e,r]of Object.entries(n.values))r===null?delete t[e]:t[e]=r;return e.updateMetadata(Object.keys(t).length>0?t:void 0),e}case`update-survey-pagination`:return e.updateMaxItemsPerPage(n.value??void 0),e;case`update-survey-translation`:return G9(e,t,e=>{let t=e.translations?.[n.locale]??{itemTranslations:{},surveyCardContent:{},navigationContent:{},validationMessages:{}},r={...t[n.surface]??{}};return r[n.contentKey]=L9(n),{...e,translations:{...e.translations??{},[n.locale]:{...t,[n.surface]:r}}}});case`remove-survey-locale`:return G9(e,t,e=>{let t={...e.translations??{}};return delete t[n.locale],{...e,translations:Object.keys(t).length>0?t:void 0}});case`set-image-asset`:return e.setAsset(n.assetId,n.asset),e;case`update-image-asset-metadata`:{let t=e.getAsset(n.assetId);if(!t)throw Error(`Image asset "${n.assetId}" was not found.`);let r={...t.metadata??{}};for(let[e,t]of Object.entries(n.metadata))t===null?delete r[e]:t!==void 0&&Object.assign(r,{[e]:t});return e.setAsset(n.assetId,{...t,metadata:Object.keys(r).length>0?r:void 0}),e}case`remove-image-asset`:return e.removeAsset(n.assetId),e;case`survey-json-patch`:return hie({editor:e,itemRegistry:t,operation:n})}},J9=e=>{let t=e.trim();return t.length>0?`Assistant: ${t}`:`Assistant survey change`},gie=e=>e.length===1?J9(e[0]?.summary??``):`Assistant: ${e.length} survey changes`,Y9=(e,t)=>F9({change:e,status:`failed`,message:t}),_ie=({changes:e,currentPrecondition:t,editor:n,itemRegistry:r})=>{if(e.length===0)return{results:[]};for(let n of e){if(n.status!==`validated`||!n.validation.valid)return{results:e.map(e=>e.id===n.id?F9({change:e,status:`rejected`,message:`The assistant change did not pass validation.`}):Y9(e,`No assistant changes were applied because one change failed validation.`))};if(!n.precondition)return{results:e.map(e=>e.id===n.id?F9({change:e,status:`failed`,message:`The assistant change is missing editor state information.`}):Y9(e,`No assistant changes were applied because one change is missing editor state information.`))};if(n.operations.length===0)return{results:e.map(e=>e.id===n.id?F9({change:e,status:`rejected`,message:`The assistant change did not contain any operations to apply.`}):Y9(e,`No assistant changes were applied because one change was empty.`))};let r=I9({currentPrecondition:t,expectedPrecondition:n.precondition});if(r)return{results:e.map(e=>F9({change:e,status:`stale`,message:r}))}}try{let i=M9(n,r),a=N9(i),o=A9({itemRegistry:r});if(o.digest!==t.capabilityDigest)return{results:e.map(e=>F9({change:e,status:`stale`,message:`The live survey editor capabilities changed before these edits could be applied. Retry the request.`}))};let s=new Set((0,g.getDeterministicCreateItemTypes)(o));i.hasUncommittedChanges&&i.commit({label:`Pending manual changes`,source:f.CommitSource.USER});for(let t of e)for(let e of t.operations)i=q9({editor:i,itemRegistry:r,operation:e,deterministicCreateItemTypes:s});return P9(i,a),i.commit({label:gie(e),source:f.CommitSource.ASSISTANT}),{results:e.map(e=>F9({change:e,status:`applied`,message:e.summary,appliedOperations:e.operations.length})),editor:i}}catch(t){let n=t instanceof Error?t.message:`The assistant changes could not be applied.`;return{results:e.map(e=>F9({change:e,status:`failed`,message:n}))}}},X9=({change:e,currentPrecondition:t,editor:n,itemRegistry:r})=>{if(e.status!==`validated`||!e.validation.valid)return F9({change:e,status:`rejected`,message:`The assistant change did not pass validation.`});if(!e.precondition)return F9({change:e,status:`failed`,message:`The assistant change is missing editor state information.`});if(e.operations.length===0)return F9({change:e,status:`rejected`,message:`The assistant change did not contain any operations to apply.`});let i=I9({currentPrecondition:t,expectedPrecondition:e.precondition});if(i)return F9({change:e,status:`stale`,message:i});try{let i=M9(n,r),a=N9(i),o=A9({itemRegistry:r});if(o.digest!==t.capabilityDigest)return F9({change:e,status:`stale`,message:`The live survey editor capabilities changed before this edit could be applied. Retry the request.`});let s=new Set((0,g.getDeterministicCreateItemTypes)(o));i.hasUncommittedChanges&&i.commit({label:`Pending manual changes`,source:f.CommitSource.USER});for(let t of e.operations)i=q9({editor:i,itemRegistry:r,operation:t,deterministicCreateItemTypes:s});return P9(i,a),i.commit({label:J9(e.summary),source:f.CommitSource.ASSISTANT}),F9({change:e,status:`applied`,message:e.summary,appliedOperations:e.operations.length,editor:i})}catch(t){return F9({change:e,status:`failed`,message:t instanceof Error?t.message:`The assistant change could not be applied.`})}};function vie(){let e=0,t=()=>(e+=1,e);return S((e,n)=>({sessionId:null,editor:null,changeTick:0,editorItemRegistry:{coreRegistry:{},definitions:{},assistantCapabilities:(0,g.createSurveyAssistantCapabilities)([]),playerLocalizations:(0,_.mergeSurveyPlayerLocalizationSources)(),categoryLabels:{...Ow}},selectedLocale:`en`,userMutationsLocked:!1,setEditor:(n,r,i=`en`)=>{e({sessionId:n,editor:r,selectedLocale:r?.survey.locales[0]??i,changeTick:t()})},clearEditor:()=>{e({sessionId:null,editor:null,selectedLocale:`en`,changeTick:t()})},startNewSession:({surveyKey:r,itemRegistryEntries:i,categoryLabels:a})=>{if(n().userMutationsLocked)return;let o=i,s=n().editorItemRegistry,c=Object.keys(s.definitions).length>0,l=o?Kw(o,{categoryLabels:a}):c?s:k9(),u=l.coreRegistry,p=d.Survey.createBlankSurvey(u,r),m=new f.SurveyEditor(p,{pluginRegistry:u});e({sessionId:(0,d.generateId)(),editor:m,editorItemRegistry:l,selectedLocale:p.locales[0]??`en`,changeTick:t()})},setEditorItemRegistry:n=>{e({editorItemRegistry:n,changeTick:t()})},setSelectedLocale:t=>{e({selectedLocale:t})},setUserMutationsLocked:t=>{e({userMutationsLocked:t})},undo:()=>{if(n().userMutationsLocked)return!1;let{editor:r}=n();if(!r)return!1;let i=r.undo();return i&&e({changeTick:t()}),i},redo:()=>{if(n().userMutationsLocked)return!1;let{editor:r}=n();if(!r)return!1;let i=r.redo();return i&&e({changeTick:t()}),i},canUndo:()=>!n().userMutationsLocked&&(n().editor?.canUndo()??!1),canRedo:()=>!n().userMutationsLocked&&(n().editor?.canRedo()??!1),commit:r=>{n().userMutationsLocked||(n().editor?.commit(r),e({changeTick:t()}))},commitByUser:r=>{n().userMutationsLocked||(n().editor?.commit({...r,source:f.CommitSource.USER}),e({changeTick:t()}))},commitIfNeeded:()=>{if(n().userMutationsLocked)return;let{editor:r}=n();r&&(r.commitIfNeeded(),e({changeTick:t()}))},jumpToIndexInHistory:r=>{if(n().userMutationsLocked)return!1;let{editor:i}=n();if(!i)return!1;let a=i.jumpToIndex(r);return a&&e({changeTick:t()}),a},getUndoMeta:()=>n().editor?.getUndoMeta()??null,getRedoMeta:()=>n().editor?.getRedoMeta()??null,getUndoRedoHistory:()=>n().editor?.undoRedo.getHistory()??[],getCommitsSinceInitial:()=>n().editor?.getCommitsSinceInitial()??[],addItem:(r,i,a)=>{if(n().userMutationsLocked)return;let{editor:o}=n();if(!o)throw Error(`No editor loaded`);o.addItem(r,i,a),e({changeTick:t()})},removeItem:(r,i=!1)=>{if(n().userMutationsLocked)return!1;let{editor:a}=n();if(!a)return!1;let o=a.survey.getItemKey(r)?.fullKey??r,s=a.removeItem(r,i);return s&&!i&&a.commit({label:`Delete item: ${o}`,source:f.CommitSource.USER}),s&&e({changeTick:t()}),s},moveItem:(r,i)=>{if(n().userMutationsLocked)return!1;let{editor:a}=n();if(!a)return!1;let o=a.moveItem(r,i);return o&&e({changeTick:t()}),o},updateItemTranslations:(r,i)=>{if(n().userMutationsLocked)return!1;let{editor:a}=n();if(!a)return!1;let o=a.updateItemTranslations(r,i);return o&&e({changeTick:t()}),o},copyItem:e=>{let{editor:t}=n();if(!t)throw Error(`No editor loaded`);return t.copyItem(e)},pasteItem:(r,i)=>{if(n().userMutationsLocked)return null;let{editor:a}=n();if(!a)throw Error(`No editor loaded`);let o=a.pasteItem(r,i);return e({changeTick:t()}),o},getItemDataCopy:e=>{let{editor:t}=n();if(!t)throw Error(`No editor loaded`);return t.getItemDataCopy(e)},getRootItem:()=>n().editor?.survey.rootItem,updateItem:(r,i)=>{if(n().userMutationsLocked)return;let{editor:a}=n();if(!a)throw Error(`No editor loaded`);a.updateItem(r,i),e({changeTick:t()})},updateSurveyTranslations:r=>{if(n().userMutationsLocked)return;let{editor:i}=n();if(!i)throw Error(`No editor loaded`);i.updateSurveyTranslations(r),e({changeTick:t()})},addLocale:r=>{if(n().userMutationsLocked)return!1;let{editor:i}=n();if(!i)return!1;let a=i.addLocale(r);return a&&e({changeTick:t()}),a},removeLocale:r=>{if(n().userMutationsLocked)return!1;let{editor:i}=n();if(!i)return!1;let a=i.removeLocale(r);return a&&e({changeTick:t()}),a},getMaxItemsPerPage:()=>n().editor?.getMaxItemsPerPage(),updateMaxItemsPerPage:r=>{if(n().userMutationsLocked)return;let{editor:i}=n();if(!i)throw Error(`No editor loaded`);i.updateMaxItemsPerPage(r),e({changeTick:t()})},getMetadata:()=>n().editor?.getMetadata(),updateMetadata:r=>{if(n().userMutationsLocked)return;let{editor:i}=n();if(!i)throw Error(`No editor loaded`);i.updateMetadata(r),e({changeTick:t()})},applyAssistantChange:(r,i)=>{let{editor:a,editorItemRegistry:o}=n();if(!a)return{status:`failed`,changeId:r.id,summary:r.summary,message:`The survey editor is not ready.`,appliedOperations:0};let{editor:s,...c}=X9({change:r,currentPrecondition:i,editor:a,itemRegistry:o});return s&&e({editor:s,changeTick:t()}),c},applyAssistantChanges:(r,i)=>{let{editor:a,editorItemRegistry:o}=n();if(!a)return{results:r.map(e=>({status:`failed`,changeId:e.id,summary:e.summary,message:`The survey editor is not ready.`,appliedOperations:0}))};let{editor:s,...c}=_ie({changes:r,currentPrecondition:i,editor:a,itemRegistry:o});return s&&e({editor:s,changeTick:t()}),c},getTemplateValue:e=>n().editor?.getTemplateValue(e),getTemplateValues:()=>n().editor?.getTemplateValues()??new Map,setTemplateValue:(r,i)=>{if(n().userMutationsLocked)return;let{editor:a}=n();if(!a)throw Error(`No editor loaded`);a.setTemplateValue(r,i),e({changeTick:t()})},removeTemplateValue:r=>{if(n().userMutationsLocked)return;let{editor:i}=n();if(!i)throw Error(`No editor loaded`);i.removeTemplateValue(r),e({changeTick:t()})},getAsset:e=>n().editor?.getAsset(e),getAssets:()=>n().editor?.getAssets()??new Map,setAsset:(r,i)=>{if(n().userMutationsLocked)return;let{editor:a}=n();if(!a)throw Error(`No editor loaded`);a.setAsset(r,i),e({changeTick:t()})},removeAsset:r=>{if(n().userMutationsLocked)return;let{editor:i}=n();if(!i)throw Error(`No editor loaded`);i.removeAsset(r),e({changeTick:t()})},getMemoryUsage:()=>n().editor?.getMemoryUsage()??{totalMB:0,entries:0},getUndoRedoConfig:()=>n().editor?.getUndoRedoConfig()??{}}))}var yie=({children:e})=>{let[t]=(0,l.useState)(()=>vie());return(0,m.jsx)(T.Provider,{value:t,children:e})},bie=({children:e,navigationAdapter:t=null,workspace:n})=>(0,m.jsx)(yie,{children:(0,m.jsx)(GC,{adapter:t,initialLocation:n?.initialLocation,children:e})});function xie(e,t,n){if(e)return Kw(Uw(e,t),{categoryLabels:n});let r=Uw(O9(),t);return n&&Object.keys(n).length>0?Kw(r,{categoryLabels:n}):Kw(r)}var Sie=({initialEditorState:e,initialSessionId:t,fallbackLocale:n=`en`,language:r,localizations:i,dateLocales:a,itemRegistryEntries:o,categoryLabels:s,onEditorStateChange:c,readOnly:u=!1,assistantControllerRef:p,assistantPanel:h,persistDebounceMs:g=500,helpLink:_=`https://case-framework.github.io/case-docs/`,aiProvider:v=null,onBackRequested:y,onSimulatorRequested:b,onSaveRequested:x,workspace:S})=>{let C=(0,l.useMemo)(()=>lb(i),[i]),w=(0,l.useMemo)(()=>$b(a),[a]),T=(0,l.useMemo)(()=>Ww(C),[C]),k=(0,l.useMemo)(()=>Lw(T,s),[s,T]),A=E(e=>e.sessionId),j=E(e=>e.editor),M=E(e=>e.changeTick),N=E(e=>e.setEditor),P=E(e=>e.setEditorItemRegistry),F=E(e=>e.clearEditor),I=E(e=>e.setUserMutationsLocked),L=D(),ee=qC(),te=(0,l.useRef)(!1),R=(0,l.useMemo)(()=>xie(o,C,k),[o,k,C]),ne=R.coreRegistry,z=(0,l.useEffectEvent)((e,t)=>{N(e,f.SurveyEditor.fromJson(t,ne),n.trim()||`en`)});(0,l.useEffect)(()=>{if(!e)return;let n=t!==void 0&&A!==null&&A!==t;if(te.current&&!n&&j)return;n&&(te.current=!1);let r=f.SurveyEditor.fromJson(e,ne);z(t??(0,d.generateId)(),r.toJson()),te.current=!0},[ne,j,e,t,A]),(0,l.useEffect)(()=>()=>{F()},[F]),(0,l.useEffect)(()=>{P(R)},[R,P]),(0,l.useEffect)(()=>(I(u),()=>I(!1)),[u,I]),O({sessionId:A,editor:j,changeTick:M,persistDebounceMs:g,onEditorStateChange:c});let re=(0,l.useCallback)(e=>{let t=L.getState(),n=ee.getState(),r=t.editor;if(!r)throw Error(`Cannot build assistant snapshot before the editor is ready.`);let i=Object.values(n.assistantHighlights);return j9({sessionId:t.sessionId,revision:t.changeTick,editor:r,location:n.location,navigationHistory:n.history,selectedLocale:t.selectedLocale,itemRegistry:t.editorItemRegistry,historyIndex:t.getUndoRedoHistory().find(e=>e.isCurrent)?.index??-1,options:{...e,uiContext:{...e?.uiContext,highlights:e?.uiContext?.highlights??(i.length>0?i:void 0)}}})},[L,ee]);return(0,l.useImperativeHandle)(p,()=>j?{getSnapshot:e=>re(e),applyAssistantChange:e=>{let t=re().version;return L.getState().applyAssistantChange(e,t)},applyAssistantChanges:e=>{let t=re().version;return L.getState().applyAssistantChanges(e,t)}}:null,[j,L,re]),(0,m.jsx)(`div`,{className:`survey-editor absolute inset-0 overflow-hidden`,children:(0,m.jsx)(nx,{helpLink:_,aiProvider:v,fallbackLocale:n,language:r,localizations:C,dateLocales:w,workspace:S,children:(0,m.jsx)(zD,{panel:h,children:(0,m.jsx)(sH,{onBackRequested:y,onSaveRequested:x,onSimulatorRequested:b})})})})},Cie=e=>(0,m.jsx)(bie,{navigationAdapter:e.navigationAdapter,workspace:e.workspace,children:(0,m.jsx)(Sie,{...e})}),Z9=e=>{let t=e();if(!t)throw Error(`The Survey Editor is not ready for an AI task.`);return t},Q9=({getSnapshot:e,tasks:t,cache:n={}})=>{let r=n===!1?void 0:new g.SurveyAssistantTaskResultCache({ttlMs:n.ttlMs,maxEntries:n.maxEntries}),i=async({task:t,request:i,options:a,buildContext:o,execute:s})=>{let c=Z9(e),l=n===!1?void 0:n.getScope?.(),u=JSON.stringify([t,l??``,c.version.contentHash,c.version.capabilityDigest,c.ui.selectedLocale,i]);if(r&&a?.cache!==`refresh`){let e=r.get(u);if(e!==void 0)return e}let d=await s(o(c),{cacheScope:l});return r?.set(u,d),d};return{suggestItemKey:(e,n)=>i({task:`suggest-item-key`,request:e,options:n,buildContext:t=>(0,g.buildSurveyAssistantTaskContext)(t,{purpose:`suggest-item-key`,focusItemId:e.itemId}),execute:(r,i)=>t.suggestItemKey(e,r,n,i)}),suggestItemLabel:(e,n)=>i({task:`suggest-item-label`,request:e,options:n,buildContext:t=>(0,g.buildSurveyAssistantTaskContext)(t,{purpose:`suggest-item-label`,focusItemId:e.itemId}),execute:(r,i)=>t.suggestItemLabel(e,r,n,i)}),translateContent:(r,i)=>{let a=Z9(e),o=n===!1?void 0:n.getScope?.();return t.translateContent(r,(0,g.buildSurveyAssistantTaskContext)(a,{purpose:`translate-content`,sourceLocale:r.sourceLocale,targetLocales:r.targetLocales,sourceTexts:r.entries.map(e=>e.text)}),i,{cacheScope:o})}}},wie=class{#e;constructor(e){this.#e=e}getModelId=()=>this.#e;setModelId=e=>{this.#e=e}},Tie=({initialModelId:e,onModelChange:t,resourceId:n,surveyId:r,taskApi:i}={})=>{let a=(0,l.useMemo)(()=>(0,b.createSurveyAssistantControllerBridge)(),[]),[o]=(0,l.useState)(()=>new wie(e)),[s,c]=(0,l.useState)(e),u=(0,l.useMemo)(()=>Q9({getSnapshot:a.controller.getSnapshot,cache:{getScope:o.getModelId},tasks:(0,b.createSurveyAssistantTaskExecutor)({api:i,getModelId:o.getModelId,resourceId:n,surveyId:r})}),[a,o,n,r,i]),d=(0,l.useCallback)(e=>{o.setModelId(e),c(e),t?.(e)},[o,t]);return{aiProvider:u,controller:a.controller,controllerRef:a.setController,modelId:s,selectModel:d}};function Eie(e,t){return new f.SurveyEditor(d.Survey.createBlankSurvey(e,t),{pluginRegistry:e}).toJson()}function $9(e,t){return new f.SurveyEditor(d.Survey.fromJson(e,t),{pluginRegistry:t}).toJson()}function Die(e,t){let n=JSON.parse(e);if(Mie(n)){let e=f.SurveyEditor.fromJson(n,t);return{format:`serialized-editor`,sessionId:(0,d.generateId)(),state:e.toJson()}}return{format:`raw-survey`,sessionId:(0,d.generateId)(),state:$9(n,t)}}function Oie(e){return JSON.stringify(e.survey,null,2)}function kie(e,t=`survey`){let n=jie(e)?.trim();return n?Aie(n):t}function Aie(e){return e.replace(/[^a-zA-Z0-9._-]+/g,`-`).replace(/-{2,}/g,`-`).replace(/^-+|-+$/g,``)||`survey`}function jie(e){let t=e.survey.surveyItems.find(e=>!e||typeof e.key!=`string`||!e.config||typeof e.config!=`object`?!1:e.config.isRoot===!0);return t?.key?t.key:e.survey.surveyItems[0]?.key}function Mie(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.version==`string`&&typeof t.hasUncommittedChanges==`boolean`&&typeof t.undoRedo==`object`&&t.undoRedo!==null&&typeof t.survey==`object`&&t.survey!==null}exports.APPLY_RICH_TEXT_STYLE_COMMAND=c6,exports.CONVERT_RICH_TEXT_LINK_TO_TEXT_COMMAND=p6,exports.DEFAULT_BLOCK_CONTENT_POLICY=b6,exports.DEFAULT_CATEGORY_LABELS=Ow,exports.DEFAULT_COMPACT_CONTENT_POLICY=y6,exports.DEFAULT_DATE_FNS_LOCALES=Qb,exports.DEFAULT_EDITOR_LANGUAGE=ab,exports.Dialog=ew,exports.DialogClose=rw,exports.DialogContent=aw,exports.DialogDescription=lw,exports.DialogFooter=sw,exports.DialogHeader=ow,exports.DialogOverlay=iw,exports.DialogPortal=nw,exports.DialogTitle=cw,exports.DialogTrigger=tw,exports.FilepickerDropzone=BC,exports.INSERT_RICH_TEXT_LINK_COMMAND=u6,exports.INSERT_RICH_TEXT_TEMPLATE_VARIABLE_COMMAND=l6,exports.OPEN_RICH_TEXT_LINK_EDITOR_COMMAND=d6,exports.RichTextBlockEditor=_7,exports.RichTextContentView=E7,exports.RichTextEditor=g7,exports.SortableTree=CB,exports.SurveyEditor=Cie,exports.SurveyImageAssetManager=mw,exports.UPDATE_RICH_TEXT_LINK_COMMAND=f6,exports.buildSurveyAssistantItemRegistryManifest=A9,exports.buildSurveyAssistantSnapshot=j9,exports.buildSurveyFileName=kie,exports.cloneRegistryEntries=E9,exports.createBlankEditorState=Eie,exports.createComposedEditorRegistry=Kre,exports.createEditorStateFromRawSurvey=$9,exports.createRegistryEntries=D9,exports.createRichTextEditorValueFromContent=s8,exports.createRichTextEditorValueFromPlainText=q3,exports.createRichTextEditorValueFromText=c8,exports.createSnapshotSurveyEditorAIProvider=Q9,exports.createSurveyPlayerRegistry=qre,exports.defaultSurveyEditorLocalizations=cb,exports.entriesToComposedEditorRegistry=Kw,exports.entriesToItemTypeRegistry=Vw,exports.entriesToParticipantRegistry=Hw,exports.getDateFnsLocale=ex,exports.getDefaultComposedEditorRegistry=k9,exports.getDefaultRegistryEntries=O9,exports.getDefaultSurveyPlayerRegistry=Jre,exports.getRichTextContentFromEditorState=o8,exports.isBlockContentPolicyVariant=P6,exports.mergeDateFnsLocales=$b,exports.mergeEditorLocalizations=lb,exports.mergeRichTextContentPolicy=x6,exports.parseEditorStateFromJsonText=Die,exports.resolveCategoryLabel=Aw,exports.sanitizeContentForPolicy=N6,exports.serializeSurveyStateForFile=Oie,exports.surveyEditorEnMessages=ob,exports.surveyEditorNlMessages=sb,exports.t=c,exports.useSurveyAssets=JC,exports.useSurveyEditorAssistantIntegration=Tie,exports.useSurveyImageAssets=YC,exports.useUnusedSurveyAssetCount=XC,exports.validateRegistryEntries=Bw;
161
161
  //# sourceMappingURL=survey-editor-ui.cjs.js.map