@opengovsg/confetti 0.7.4 → 0.7.5

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.
@@ -42,6 +42,8 @@ interface ConfettiState {
42
42
  * or auto-submitting — unlike `update`, a plain draft-save. Lets a flow
43
43
  * template preserve what the respondent typed when they leave via Back
44
44
  * rather than Next/Submit, so revisiting the question later still shows it.
45
+ * Empty optional answers are stored as `null`; empty required answers remove
46
+ * the key, matching `update`'s Skip/clear semantics.
45
47
  */
46
48
  saveAnswer: (question: Question$1['id'], answer: Answer) => void;
47
49
  /**
@@ -0,0 +1 @@
1
+ import{a as e,i as t,o as n,r}from"./DefaultConfettiTrigger-CqpZGyoA.js";import{D as i,E as a,G as o,I as s,N as c,O as l,R as u,T as d,V as f,_ as p,a as m,b as h,d as g,g as _,h as v,i as y,k as b,m as x,n as S,o as C,p as w,r as T,s as E,u as D,x as O,y as k,z as A}from"./Button-LiaNjkvk.js";import{a as j,c as M,d as ee,f as te,i as ne,l as re,o as ie,s as ae,u as oe}from"./src-DKk1GrYu.js";import{a as se,n as ce,o as le,r as ue,t as de}from"./internals-BzehCtEV.js";import{d as fe,f as pe,g as me,h as he,i as ge,l as _e,m as ve,p as ye,r as be,s as xe,u as Se}from"./ModalContainer-BmgfXemR.js";import N,{Suspense as Ce,cloneElement as we,createContext as P,forwardRef as F,isValidElement as Te,lazy as Ee,useCallback as I,useContext as L,useEffect as R,useMemo as z,useRef as B,useState as V}from"react";import{useTimeout as De}from"usehooks-ts";import{Fragment as H,jsx as U,jsxs as W}from"react/jsx-runtime";import G from"clsx";import"react-dom";function Oe(e,t,n){let r=d(e=>{n&&!e.defaultPrevented&&n(t)});R(()=>{let t=e?.current?.form;return t?.addEventListener(`reset`,r),()=>{t?.removeEventListener(`reset`,r)}},[e])}function ke(e){let{id:t,label:n,"aria-labelledby":r,"aria-label":i,labelElementType:a=`label`}=e;t=A(t);let o=A(),s={};n&&(r=r?`${o} ${r}`:o,s={id:o,htmlFor:a===`label`?t:void 0});let c=ve({id:t,"aria-label":i,"aria-labelledby":r});return{labelProps:s,fieldProps:c}}function Ae(e){let{description:t,errorMessage:n,isInvalid:r,validationState:i}=e,{labelProps:a,fieldProps:o}=ke(e),s=u([!!t,!!n,r,i]),c=u([!!t,!!n,r,i]);return o=l(o,{"aria-describedby":[s,c,e[`aria-describedby`]].filter(Boolean).join(` `)||void 0}),{labelProps:a,fieldProps:o,descriptionProps:{id:s},errorMessageProps:{id:c}}}function je(e,t,n){let{validationBehavior:r,focus:i}=e;f(()=>{if(r===`native`&&n?.current&&!n.current.disabled){let e=t.realtimeValidation.isInvalid?t.realtimeValidation.validationErrors.join(` `)||`Invalid value.`:``;n.current.setCustomValidity(e),n.current.hasAttribute(`title`)||(n.current.title=``),t.realtimeValidation.isInvalid||t.updateValidation(Ne(n.current))}});let a=B(!1),o=d(()=>{a.current||t.resetValidation()}),s=d(e=>{t.displayValidation.isInvalid||t.commitValidation();let r=n?.current?.form;!e.defaultPrevented&&n&&r&&Pe(r)===n.current&&(i?i():n.current?.focus(),D(`keyboard`)),e.preventDefault()}),l=d(()=>{t.commitValidation()});R(()=>{let e=n?.current;if(!e)return;let t=e.form,r=t?.reset;return t&&(t.reset=()=>{a.current=!window.event||window.event.type===`message`&&c(window.event)instanceof MessagePort,r?.call(t),a.current=!1}),e.addEventListener(`invalid`,s),e.addEventListener(`change`,l),t?.addEventListener(`reset`,o),()=>{e.removeEventListener(`invalid`,s),e.removeEventListener(`change`,l),t?.removeEventListener(`reset`,o),t&&(t.reset=r)}},[n,r])}function Me(e){let t=e.validity;return{badInput:t.badInput,customError:t.customError,patternMismatch:t.patternMismatch,rangeOverflow:t.rangeOverflow,rangeUnderflow:t.rangeUnderflow,stepMismatch:t.stepMismatch,tooLong:t.tooLong,tooShort:t.tooShort,typeMismatch:t.typeMismatch,valueMissing:t.valueMissing,valid:t.valid}}function Ne(e){return{isInvalid:!e.validity.valid,validationDetails:Me(e),validationErrors:e.validationMessage?[e.validationMessage]:[]}}function Pe(e){for(let t=0;t<e.elements.length;t++){let n=e.elements[t];if(n.validity?.valid===!1)return n}return null}const Fe={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valueMissing:!1,valid:!0},Ie={...Fe,customError:!0,valid:!1},K={isInvalid:!1,validationDetails:Fe,validationErrors:[]},Le=P({}),Re=`__reactAriaFormValidationState`;function q(e){if(e.__reactAriaFormValidationState){let{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:a}=e[Re];return{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:a}}return ze(e)}function ze(e){let{isInvalid:t,validationState:n,name:r,value:i,builtinValidation:a,validate:o,validationBehavior:s=`aria`}=e;n&&(t||=n===`invalid`);let c=t===void 0?null:{isInvalid:t,validationErrors:[],validationDetails:Ie},l=z(()=>!o||i==null?null:He(Ve(o,i)),[o,i]);a?.validationDetails.valid&&(a=void 0);let u=L(Le),d=z(()=>r?Array.isArray(r)?r.flatMap(e=>Be(u[e])):Be(u[r]):[],[u,r]),[f,p]=V(u),[m,h]=V(!1);u!==f&&(p(u),h(!1));let g=z(()=>He(m?[]:d),[m,d]),_=B(K),[v,y]=V(K),b=B(K),x=()=>{if(!S)return;C(!1);let e=l||a||_.current;Ue(e,b.current)||(b.current=e,y(e))},[S,C]=V(!1);return R(x),{realtimeValidation:c||g||l||a||K,displayValidation:s===`native`?c||g||v:c||g||l||a||v,updateValidation(e){s===`aria`&&!Ue(v,e)?y(e):_.current=e},resetValidation(){let e=K;Ue(e,b.current)||(b.current=e,y(e)),s===`native`&&C(!1),h(!0)},commitValidation(){s===`native`&&C(!0),h(!0)}}}function Be(e){return e?Array.isArray(e)?e:[e]:[]}function Ve(e,t){if(typeof e==`function`){let n=e(t);if(n&&typeof n!=`boolean`)return Be(n)}return[]}function He(e){return e.length?{isInvalid:!0,validationErrors:e,validationDetails:Ie}:null}function Ue(e,t){return e===t||!!e&&!!t&&e.isInvalid===t.isInvalid&&e.validationErrors.length===t.validationErrors.length&&e.validationErrors.every((e,n)=>e===t.validationErrors[n])&&Object.entries(e.validationDetails).every(([e,n])=>t.validationDetails[e]===n)}function We(...e){let t=new Set,n=!1,r={...Fe};for(let i of e){for(let e of i.validationErrors)t.add(e);n||=i.isInvalid;for(let e in r)r[e]||=i.validationDetails[e]}return r.valid=!n,{isInvalid:n,validationErrors:[...t],validationDetails:r}}function Ge(e,t){let{inputElementType:n=`input`,isDisabled:r=!1,isRequired:a=!1,isReadOnly:o=!1,type:s=`text`,validationBehavior:u=`aria`}=e,[d,f]=fe(e.value,e.defaultValue||``,e.onChange),{focusableProps:p}=E(e,t),m=q({...e,value:d}),{isInvalid:h,validationErrors:g,validationDetails:_}=m.displayValidation,{labelProps:v,fieldProps:y,descriptionProps:b,errorMessageProps:x}=Ae({...e,isInvalid:h,errorMessage:e.errorMessage||g}),S=i(e,{labelable:!0}),C={type:s,pattern:e.pattern},[w]=V(d);return Oe(t,e.defaultValue??w,f),je(e,m,t),{labelProps:v,inputProps:l(S,n===`input`?C:void 0,{disabled:r,readOnly:o,required:a&&u===`native`,"aria-required":a&&u===`aria`||void 0,"aria-invalid":h||void 0,"aria-errormessage":e[`aria-errormessage`],"aria-activedescendant":e[`aria-activedescendant`],"aria-autocomplete":e[`aria-autocomplete`],"aria-haspopup":e[`aria-haspopup`],"aria-controls":e[`aria-controls`],value:d,onChange:e=>f(c(e).value),autoComplete:e.autoComplete,autoCapitalize:e.autoCapitalize,maxLength:e.maxLength,minLength:e.minLength,name:e.name,form:e.form,placeholder:e.placeholder,inputMode:e.inputMode,autoCorrect:e.autoCorrect,spellCheck:e.spellCheck,[parseInt(N.version,10)>=17?`enterKeyHint`:`enterkeyhint`]:e.enterKeyHint,onCopy:e.onCopy,onCut:e.onCut,onPaste:e.onPaste,onCompositionEnd:e.onCompositionEnd,onCompositionStart:e.onCompositionStart,onCompositionUpdate:e.onCompositionUpdate,onSelect:e.onSelect,onBeforeInput:e.onBeforeInput,onInput:e.onInput,...p,...y}),descriptionProps:b,errorMessageProps:x,isInvalid:h,validationErrors:g,validationDetails:_}}function Ke(e,t,n){let{isDisabled:r=!1,isReadOnly:a=!1,value:o,name:s,form:u,children:d,"aria-label":f,"aria-labelledby":p,validationState:m=`valid`,isInvalid:h,onPressStart:_,onPressEnd:v,onPressChange:y,onPress:b,onPressUp:x,onClick:S}=e,C=e=>{e.stopPropagation(),t.setSelected(c(e).checked)},{pressProps:w,isPressed:T}=g({onPressStart:_,onPressEnd:v,onPressChange:y,onPress:b,onPressUp:x,onClick:S,isDisabled:r}),{pressProps:D,isPressed:O}=g({onPressStart:_,onPressEnd:v,onPressChange:y,onPressUp:x,onClick:S,onPress(e){b?.(e),t.toggle(),n.current?.focus()},isDisabled:r||a}),{focusableProps:k}=E(e,n),A=l(w,k),j=i(e,{labelable:!0});return Oe(n,t.defaultSelected,t.setSelected),{labelProps:l(D,{onClick:e=>e.preventDefault()}),inputProps:l(j,{"aria-invalid":h||m===`invalid`||void 0,"aria-errormessage":e[`aria-errormessage`],"aria-controls":e[`aria-controls`],"aria-readonly":a||void 0,onChange:C,disabled:r,...o==null?{}:{value:o},name:s,form:u,type:`checkbox`,...A}),isSelected:t.isSelected,isPressed:T||O,isDisabled:r,isReadOnly:a,isInvalid:h||m===`invalid`}}function qe(e,t,n){let r=q({...e,value:t.isSelected}),{isInvalid:i,validationErrors:a,validationDetails:o}=r.displayValidation,{labelProps:s,inputProps:c,isSelected:u,isPressed:d,isDisabled:f,isReadOnly:p}=Ke({...e,isInvalid:i},t,n);je(e,r,n);let{isIndeterminate:m,isRequired:h,validationBehavior:_=`aria`}=e;R(()=>{n.current&&(n.current.indeterminate=!!m)});let{pressProps:v}=g({isDisabled:f||p,onPress(){let{[Re]:t}=e,{commitValidation:n}=t||r;n()}});return{labelProps:l(s,v,z(()=>({onMouseDown:e=>e.preventDefault()}),[])),inputProps:{...c,checked:u,"aria-required":h&&_===`aria`||void 0,required:h&&_===`native`},isSelected:u,isPressed:d,isDisabled:f,isReadOnly:p,isInvalid:i,validationErrors:a,validationDetails:o}}const Je=new WeakMap;function Ye(e,t){let{isDisabled:n,name:r,form:a,validationBehavior:o=`aria`}=e,{isInvalid:s,validationErrors:c,validationDetails:u}=t.displayValidation,{labelProps:d,fieldProps:f,descriptionProps:p,errorMessageProps:m}=Ae({...e,labelElementType:`span`,isInvalid:s,errorMessage:e.errorMessage||c});Je.set(t,{name:r,form:a,descriptionId:p.id,errorMessageId:m.id,validationBehavior:o});let h=i(e,{labelable:!0}),{focusWithinProps:g}=C({onBlurWithin:e.onBlur,onFocusWithin:e.onFocus,onFocusWithinChange:e.onFocusChange});return{groupProps:l(h,{role:`group`,"aria-disabled":n||void 0,...f,...g}),labelProps:d,descriptionProps:p,errorMessageProps:m,isInvalid:s,validationErrors:c,validationDetails:u}}function Xe(e={}){let{isReadOnly:t}=e,[n,r]=fe(e.isSelected,e.defaultSelected||!1,e.onChange),[i]=V(n);function a(e){t||r(e)}function o(){t||r(!n)}return{isSelected:n,defaultSelected:e.defaultSelected??i,setSelected:a,toggle:o}}function Ze(e,t,n){let r=Xe({isReadOnly:e.isReadOnly||t.isReadOnly,isSelected:t.isSelected(e.value),defaultSelected:t.defaultValue.includes(e.value),onChange(n){n?t.addValue(e.value):t.removeValue(e.value),e.onChange&&e.onChange(n)}}),{name:i,form:a,descriptionId:o,errorMessageId:s,validationBehavior:c}=Je.get(t);c=e.validationBehavior??c;let{realtimeValidation:l}=q({...e,value:r.isSelected,name:void 0,validationBehavior:`aria`}),u=B(K),d=()=>{t.setInvalid(e.value,l.isInvalid?l:u.current)};R(d);let f=t.realtimeValidation.isInvalid?t.realtimeValidation:l,p=c===`native`?t.displayValidation:f,m=qe({...e,isReadOnly:e.isReadOnly||t.isReadOnly,isDisabled:e.isDisabled||t.isDisabled,name:e.name||i,form:e.form||a,isRequired:e.isRequired??t.isRequired,validationBehavior:c,[Re]:{realtimeValidation:f,displayValidation:p,resetValidation:t.resetValidation,commitValidation:t.commitValidation,updateValidation(e){u.current=e,d()}}},r,n);return{...m,inputProps:{...m.inputProps,"aria-describedby":[e[`aria-describedby`],t.isInvalid?s:null,o].filter(Boolean).join(` `)||void 0}}}const Qe=new WeakMap;function $e(e,t,n){let{value:r,children:a,"aria-label":o,"aria-labelledby":s,onPressStart:c,onPressEnd:u,onPressChange:d,onPress:f,onPressUp:p,onClick:m}=e,h=e.isDisabled||t.isDisabled,_=t.selectedValue===r,v=e=>{e.stopPropagation(),t.setSelectedValue(r)},{pressProps:y,isPressed:b}=g({onPressStart:c,onPressEnd:u,onPressChange:d,onPress:f,onPressUp:p,onClick:m,isDisabled:h}),{pressProps:x,isPressed:S}=g({onPressStart:c,onPressEnd:u,onPressChange:d,onPressUp:p,onClick:m,isDisabled:h,onPress(e){f?.(e),t.setSelectedValue(r),n.current?.focus()}}),{focusableProps:C}=E(l(e,{onFocus:()=>t.setLastFocusedValue(r)}),n),w=l(y,C),T=i(e,{labelable:!0}),D=-1;t.selectedValue==null?(t.lastFocusedValue===r||t.lastFocusedValue==null)&&(D=0):t.selectedValue===r&&(D=0),h&&(D=void 0);let{name:O,form:k,descriptionId:A,errorMessageId:j,validationBehavior:M}=Qe.get(t);return Oe(n,t.defaultSelectedValue,t.setSelectedValue),je({validationBehavior:M},t,n),{labelProps:l(x,z(()=>({onClick:e=>e.preventDefault(),onMouseDown:e=>e.preventDefault()}),[])),inputProps:l(T,{...w,type:`radio`,name:O,form:k,tabIndex:D,disabled:h,required:t.isRequired&&M===`native`,checked:_,value:r,onChange:v,"aria-describedby":[e[`aria-describedby`],t.isInvalid?j:null,A].filter(Boolean).join(` `)||void 0}),isDisabled:h,isSelected:_,isPressed:b||S}}function et(e,t){let{name:n,form:r,isReadOnly:a,isRequired:o,isDisabled:u,orientation:d=`vertical`,validationBehavior:f=`aria`}=e,{direction:p}=ye(),{isInvalid:m,validationErrors:h,validationDetails:g}=t.displayValidation,{labelProps:_,fieldProps:v,descriptionProps:y,errorMessageProps:b}=Ae({...e,labelElementType:`span`,isInvalid:t.isInvalid,errorMessage:e.errorMessage||h}),x=i(e,{labelable:!0}),{focusWithinProps:S}=C({onBlurWithin(n){e.onBlur?.(n),t.selectedValue||t.setLastFocusedValue(null)},onFocusWithin:e.onFocus,onFocusWithinChange:e.onFocusChange}),w=e=>{let n;switch(e.key){case`ArrowRight`:n=p===`rtl`&&d!==`vertical`?`prev`:`next`;break;case`ArrowLeft`:n=p===`rtl`&&d!==`vertical`?`next`:`prev`;break;case`ArrowDown`:n=`next`;break;case`ArrowUp`:n=`prev`;break;default:return}e.preventDefault();let r=pe(e.currentTarget,{from:c(e),accept:e=>e instanceof s(e).HTMLInputElement&&e.type===`radio`}),i;n===`next`?(i=r.nextNode(),i||=(r.currentNode=e.currentTarget,r.firstChild())):(i=r.previousNode(),i||=(r.currentNode=e.currentTarget,r.lastChild())),i&&(i.focus(),t.setSelectedValue(i.value))},T=A(n);return Qe.set(t,{name:T,form:r,descriptionId:y.id,errorMessageId:b.id,validationBehavior:f}),{radioGroupProps:l(x,{role:`radiogroup`,onKeyDown:w,"aria-invalid":t.isInvalid||void 0,"aria-errormessage":e[`aria-errormessage`],"aria-readonly":a||void 0,"aria-required":o||void 0,"aria-disabled":u||void 0,"aria-orientation":d,...v,...S}),labelProps:_,descriptionProps:y,errorMessageProps:b,isInvalid:m,validationErrors:h,validationDetails:g}}const tt=P({}),J=T(function(e,t){[e,t]=x(e,t,tt);let{elementType:n=`label`,...r}=e,i=k[n];return N.createElement(i,{className:`react-aria-Label`,...r,ref:t})}),nt=P({}),Y=F(function(e,t){[e,t]=x(e,t,nt);let{elementType:n=`span`,...r}=e,i=k[n];return N.createElement(i,{className:`react-aria-Text`,...r,ref:t})});function rt(e={}){let[t,n]=fe(e.value,e.defaultValue||[],e.onChange),[r]=V(t),i=!!e.isRequired&&t.length===0,a=B(new Map),o=q({...e,value:t}),s=o.displayValidation.isInvalid;return{...o,value:t,defaultValue:e.defaultValue??r,setValue(t){e.isReadOnly||e.isDisabled||n(t)},isDisabled:e.isDisabled||!1,isReadOnly:e.isReadOnly||!1,isSelected(e){return t.includes(e)},addValue(t){e.isReadOnly||e.isDisabled||n(e=>e.includes(t)?e:e.concat(t))},removeValue(r){e.isReadOnly||e.isDisabled||t.includes(r)&&n(t.filter(e=>e!==r))},toggleValue(r){e.isReadOnly||e.isDisabled||(t.includes(r)?n(t.filter(e=>e!==r)):n(t.concat(r)))},setInvalid(e,t){let n=new Map(a.current);t.isInvalid?n.set(e,t):n.delete(e),a.current=n,o.updateValidation(We(...n.values()))},validationState:e.validationState??(s?`invalid`:null),isInvalid:s,isRequired:i}}let it=Math.round(Math.random()*1e10),at=0;function ot(e){let t=z(()=>e.name||`radio-group-${it}-${++at}`,[e.name]),[n,r]=fe(e.value,e.defaultValue??null,e.onChange),[i]=V(n),[a,o]=V(null),s=q({...e,value:n}),c=t=>{!e.isReadOnly&&!e.isDisabled&&(r(t),s.commitValidation())},l=s.displayValidation.isInvalid;return{...s,name:t,selectedValue:n,defaultSelectedValue:e.value===void 0?e.defaultValue??null:i,setSelectedValue:c,lastFocusedValue:a,setLastFocusedValue:o,isDisabled:e.isDisabled||!1,isReadOnly:e.isReadOnly||!1,isRequired:e.isRequired||!1,validationState:e.validationState||(l?`invalid`:null),isInvalid:l}}const X=P(null),Z=F(function(e,t){return L(X)?.isInvalid?N.createElement(st,{...e,ref:t}):null}),st=F((e,t)=>{let n=L(X),r=i(e,{global:!0}),a=v({...e,defaultClassName:`react-aria-FieldError`,defaultChildren:n.validationErrors.length===0?void 0:n.validationErrors.join(` `),values:n});return a.children==null?null:N.createElement(Y,{slot:`errorMessage`,...r,...a,ref:t})}),ct=P(null),lt=P(null),ut=P(null),dt=F(function(e,t){[e,t]=x(e,t,lt);let{validationBehavior:n}=O(ct)||{},r=e.validationBehavior??n??`native`,a=rt({...e,validationBehavior:r}),[o,s]=_(!e[`aria-label`]&&!e[`aria-labelledby`]),{groupProps:c,labelProps:u,descriptionProps:d,errorMessageProps:f,...p}=Ye({...e,label:s,validationBehavior:r},a),m=v({...e,values:{isDisabled:a.isDisabled,isReadOnly:a.isReadOnly,isRequired:e.isRequired||!1,isInvalid:a.isInvalid,state:a},defaultClassName:`react-aria-CheckboxGroup`}),h=i(e,{global:!0});return N.createElement(k.div,{...l(h,m,c),ref:t,slot:e.slot||void 0,"data-readonly":a.isReadOnly||void 0,"data-required":e.isRequired||void 0,"data-invalid":a.isInvalid||void 0,"data-disabled":e.isDisabled||void 0},N.createElement(w,{values:[[ut,a],[tt,{...u,ref:o,elementType:`span`}],[nt,{slots:{description:d,errorMessage:f}}],[X,p]]},m.children))}),ft=F(function(e,t){let{inputRef:n=null,...r}=e;[e,t]=x(r,t,me);let{validationBehavior:o}=O(ct)||{},s=e.validationBehavior??o??`native`,c=L(ut),u=a(z(()=>b(n,e.inputRef===void 0?null:e.inputRef),[n,e.inputRef])),{labelProps:d,inputProps:f,isSelected:p,isDisabled:g,isReadOnly:_,isPressed:S,isInvalid:C}=c?Ze({...h(e),value:e.value,children:typeof e.children==`function`||e.children},c,u):qe({...h(e),children:typeof e.children==`function`||e.children,validationBehavior:s},Xe(e),u),{isFocused:w,isFocusVisible:T,focusProps:E}=m(),D=g||_,{hoverProps:A,isHovered:j}=y({...e,isDisabled:D}),M=v({...e,defaultClassName:`react-aria-Checkbox`,values:{isSelected:p,isIndeterminate:e.isIndeterminate||!1,isPressed:S,isHovered:j,isFocused:w,isFocusVisible:T,isDisabled:g,isReadOnly:_,isInvalid:C,isRequired:e.isRequired||!1}}),ee=i(e,{global:!0});return delete ee.id,delete ee.onClick,N.createElement(k.label,{...l(ee,d,A,M),ref:t,slot:e.slot||void 0,"data-selected":p||void 0,"data-indeterminate":e.isIndeterminate||void 0,"data-pressed":S||void 0,"data-hovered":j||void 0,"data-focused":w||void 0,"data-focus-visible":T||void 0,"data-disabled":g||void 0,"data-readonly":_||void 0,"data-invalid":C||void 0,"data-required":e.isRequired||void 0},N.createElement(Se,{elementType:`span`},N.createElement(`input`,{...l(f,E),ref:u})),M.children)}),pt=P({}),mt=P({});let ht=e=>{let{onHoverStart:t,onHoverChange:n,onHoverEnd:r,...i}=e;return i};const gt=T(function(e,t){[e,t]=x(e,t,mt);let{hoverProps:n,isHovered:r}=y({...e,isDisabled:e.disabled}),{isFocused:i,isFocusVisible:a,focusProps:o}=m({isTextInput:!0,autoFocus:e.autoFocus}),s=!!e[`aria-invalid`]&&e[`aria-invalid`]!==`false`,c=v({...e,values:{isHovered:r,isFocused:i,isFocusVisible:a,isDisabled:e.disabled||!1,isInvalid:s},defaultClassName:`react-aria-Input`});return N.createElement(k.input,{...l(ht(e),o,n),...c,ref:t,"data-focused":i||void 0,"data-disabled":e.disabled||void 0,"data-hovered":r||void 0,"data-focus-visible":a||void 0,"data-invalid":s||void 0})}),_t=P(null);function vt(e){let t=B({});return N.createElement(_t.Provider,{value:t},e.children)}const yt=P({isSelected:!1}),bt=P(null),xt=P(null),St=P(null),Ct=F(function(e,t){[e,t]=x(e,t,bt);let{validationBehavior:n}=O(ct)||{},r=e.validationBehavior??n??`native`,a=ot({...e,validationBehavior:r}),[o,s]=_(!e[`aria-label`]&&!e[`aria-labelledby`]),{radioGroupProps:c,labelProps:u,descriptionProps:d,errorMessageProps:f,...p}=et({...e,label:s,validationBehavior:r},a),m=v({...e,values:{orientation:e.orientation||`vertical`,isDisabled:a.isDisabled,isReadOnly:a.isReadOnly,isRequired:a.isRequired,isInvalid:a.isInvalid,state:a},defaultClassName:`react-aria-RadioGroup`}),h=i(e,{global:!0});return N.createElement(k.div,{...l(h,m,c),ref:t,slot:e.slot||void 0,"data-orientation":e.orientation||`vertical`,"data-invalid":a.isInvalid||void 0,"data-disabled":a.isDisabled||void 0,"data-readonly":a.isReadOnly||void 0,"data-required":a.isRequired||void 0},N.createElement(w,{values:[[St,a],[tt,{...u,ref:o,elementType:`span`}],[nt,{slots:{description:d,errorMessage:f}}],[X,p]]},N.createElement(vt,null,m.children)))}),wt=F(function(e,t){let{inputRef:n=null,...r}=e;[e,t]=x(r,t,xt);let o=N.useContext(St),s=a(z(()=>b(n,e.inputRef===void 0?null:e.inputRef),[n,e.inputRef])),{labelProps:c,inputProps:u,isSelected:d,isDisabled:f,isPressed:p}=$e({...h(e),children:typeof e.children==`function`||e.children},o,s),{isFocused:g,isFocusVisible:_,focusProps:S}=m(),C=f||o.isReadOnly,{hoverProps:w,isHovered:T}=y({...e,isDisabled:C}),E=v({...e,defaultClassName:`react-aria-Radio`,values:{isSelected:d,isPressed:p,isHovered:T,isFocused:g,isFocusVisible:_,isDisabled:f,isReadOnly:o.isReadOnly,isInvalid:o.isInvalid,isRequired:o.isRequired}}),D=i(e,{global:!0});return delete D.id,delete D.onClick,N.createElement(k.label,{...l(D,c,w,E),ref:t,"data-selected":d||void 0,"data-pressed":p||void 0,"data-hovered":T||void 0,"data-focused":g||void 0,"data-focus-visible":_||void 0,"data-disabled":f||void 0,"data-readonly":o.isReadOnly||void 0,"data-invalid":o.isInvalid||void 0,"data-required":o.isRequired||void 0},N.createElement(Se,{elementType:`span`},N.createElement(`input`,{...l(u,S),ref:s})),N.createElement(yt.Provider,{value:{isSelected:d}},E.children))}),Tt=P({});let Et=e=>{let{onHoverStart:t,onHoverChange:n,onHoverEnd:r,...i}=e;return i};const Dt=F(function(e,t){[e,t]=x(e,t,Tt);let{hoverProps:n,isHovered:r}=y(e),{isFocused:i,isFocusVisible:a,focusProps:o}=m({isTextInput:!0,autoFocus:e.autoFocus}),s=!!e[`aria-invalid`]&&e[`aria-invalid`]!==`false`,c=v({...e,values:{isHovered:r,isFocused:i,isFocusVisible:a,isDisabled:e.disabled||!1,isInvalid:s},defaultClassName:`react-aria-TextArea`});return N.createElement(k.textarea,{...l(Et(e),o,n),...c,ref:t,"data-focused":i||void 0,"data-disabled":e.disabled||void 0,"data-hovered":r||void 0,"data-focus-visible":a||void 0,"data-invalid":s||void 0})}),Ot=P(null),kt=T(function(e,t){[e,t]=x(e,t,Ot);let{validationBehavior:n}=O(ct)||{},r=e.validationBehavior??n??`native`,a=B(null);[e,a]=x(e,a,he);let[o,s]=_(!e[`aria-label`]&&!e[`aria-labelledby`]),[c,l]=V(`input`),{labelProps:u,inputProps:d,descriptionProps:f,errorMessageProps:p,...m}=Ge({...h(e),inputElementType:c,label:s,validationBehavior:r},a),g=I(e=>{a.current=e,e&&l(e instanceof HTMLTextAreaElement?`textarea`:`input`)},[a]),y=v({...e,values:{isDisabled:e.isDisabled||!1,isInvalid:m.isInvalid,isReadOnly:e.isReadOnly||!1,isRequired:e.isRequired||!1},defaultClassName:`react-aria-TextField`}),b=i(e,{global:!0});return delete b.id,N.createElement(k.div,{...b,...y,ref:t,slot:e.slot||void 0,"data-disabled":e.isDisabled||void 0,"data-invalid":m.isInvalid||void 0,"data-readonly":e.isReadOnly||void 0,"data-required":e.isRequired||void 0},N.createElement(w,{values:[[tt,{...u,ref:o}],[mt,{...d,ref:g}],[Tt,{...d,ref:g}],[pt,{role:`presentation`,isInvalid:m.isInvalid,isDisabled:e.isDisabled||!1}],[nt,{slots:{description:f,errorMessage:p}}],[X,m]]},y.children))}),Q=e=>e===void 0||e===``||Array.isArray(e)&&e.length===0,At=({answer:e,defaultAnswer:t})=>{if(!Q(e)||!Q(t))return e},jt=(e,t)=>e.type===`end`?!1:e.type!==`next`||!t,Mt=({routingLogic:e,answer:t,required:n,isLastQuestion:r})=>{if(e.type!==`always`&&Q(t)&&n)return!0;let i=e.type===`always`?e.target:Q(t)?e.default:e.cases.find(e=>se({answer:t,condition:e}))?.target??e.default;return jt(i,r)},Nt=({originalQuestions:e,answers:t,errors:n,pointer:r=-1})=>{if(!e)return{questions:[],currentIndex:-1};let i=[...e].sort((e,t)=>e.position-t.position),a=r>=0?i[r]:void 0,o=le(i,t,{forceReachableIds:a?[a.id]:void 0}),s=i.map((e,t)=>{let i={...e},a=n[e.id];return a&&(i.error=a),{...i,visible:r===t||o.has(e.id)}}),c=s.findIndex((e,n)=>n>r&&e.visible&&t[e.id]===void 0);return c===-1&&(c=s.findLastIndex(e=>!!e.visible)),{questions:s,currentIndex:c}},$={rating:({scale:e},t)=>ae({scale:e},t),"open-ended":({max:e},t)=>ie({maxLength:e},t),"single-select":({editable:e},t)=>M({maxLength:e?.max},t),"multi-select":({editable:e,max:t},n)=>j({maxLength:e?.max,maxSelected:t},n),statement:(e,t)=>re(),"bug-report":(e,t)=>ne({},t)},Pt=(e,t)=>{let n=e.type;switch(n){case`rating`:{let r=$[n];return r(e,t)}case`open-ended`:{let r=$[n];return r(e,t)}case`single-select`:{let r=$[n];return r(e,t)}case`multi-select`:{let r=$[n];return r(e,t)}case`statement`:{let r=$[n];return r(e,t)}case`bug-report`:{let r=$[n];return r(e,t)}default:throw Error(`Unsupported question type`)}},Ft=({questions:e,answers:t})=>{let n=It({questions:e,answers:t});return Object.fromEntries(Object.entries(n).filter(([,e])=>e!==null))},It=({questions:e,answers:t})=>Object.fromEntries(Object.entries(t).filter(([t])=>!!e.find(e=>e.id===t)?.visible)),Lt=({questions:e,errors:t})=>Object.fromEntries(Object.entries(t).filter(([t])=>!!e.find(e=>e.id===t)?.visible)),Rt={},zt=({questions:e,answers:t,errors:n})=>{let r={};for(let i of e){if(!i.visible||!i.required||t[i.id]!==void 0||n[i.id])continue;let e=Pt(i.properties,{required:i.required}).safeParse(void 0);e.success||(r[i.id]=_e(e.error))}return r},Bt=e=>{let t=e.querySelector(`[data-invalid]`);if(!t)return;let n=t.getAttribute(`role`);if(n===`radiogroup`||n===`group`){t.tabIndex=-1,t.focus();return}t.querySelector(`textarea, input`)?.focus()},Vt=({current:e,shouldAutoSubmit:t,onSubmitted:n,onFinished:r,children:i})=>{let{survey:a,submit:o}=xe(),[s,c]=V({}),[l,u]=V({}),[d,f]=V(null),p=z(()=>Nt({originalQuestions:a?.questions,answers:s,errors:l,pointer:e}),[a?.questions,s,l,e]),m=e??d??p.currentIndex,h=z(()=>!!a?.isBackNavigationAllowed&&m>0&&p.questions.slice(0,m).some(e=>!!e.visible),[a?.isBackNavigationAllowed,p.questions,m]),g=I((e,t)=>{let n=p.questions.find(t=>t.id===e)?.required??!1,r=Q(t);c(i=>{if(!n&&r)return i[e]===null?i:{...i,[e]:null};if(n&&r){if(!(e in i))return i;let t={...i};return delete t[e],t}return i[e]===t?i:{...i,[e]:t}})},[p.questions]),_=I(()=>{a?.isBackNavigationAllowed&&f(t=>{let n=t??e??p.currentIndex;for(let e=n-1;e>=0;e--)if(p.questions[e]?.visible)return e;return t})},[a?.isBackNavigationAllowed,p.questions,p.currentIndex,e]),[v,y]=V(0),b=v>0,x=B(null),[S,C]=V(!1);R(()=>{v===0||!x.current||Bt(x.current)},[v]);let w=I(({answers:e})=>{o({answers:e}).finally(()=>{r?.()})},[r,o]),T=I(()=>{let e=Lt({questions:p.questions,errors:l}),t=zt({questions:p.questions,answers:s,errors:e}),r=Object.keys(t).length>0;if(Object.keys(e).length>0||r)return r&&u(e=>({...e,...t})),y(e=>e+1),!1;let i=Ft({questions:p.questions,answers:s});return w({answers:i}),C(!0),n?.(),!0},[s,l,p.questions,w,n]),E=I(({question:r,answer:i})=>{let o=p.questions.at(r);if(!o)return{error:`Question index is invalid`};let m=Pt(o.properties,{required:o.required}).safeParse(i);if(!m.success){let e=_e(m.error);return u(t=>{if(t[o.id]===e)return t;let n={...t};return n[o.id]=e,n}),c(e=>{if(!(o.id in e))return e;let t={...e};return delete t[o.id],t}),{error:e}}u(e=>{if(!e[o.id])return e;let t={...e};return delete t[o.id],t});let h=!i||Array.isArray(i)&&i.length===0,g=!o.required&&h?null:i,_={...s},v=_[o.id]!==g;_[o.id]=g;let y=Nt({originalQuestions:a?.questions,answers:_,errors:l,pointer:e});v&&c(_);let b=y.questions.findIndex((e,t)=>t>r&&!!e.visible);if(d!==null&&b!==-1)return f(b),{next:b};if(f(null),y.questions.filter(({visible:e})=>!!e).every(({id:e})=>_[e]!==void 0)&&t){let e=Ft({questions:y.questions,answers:_});w({answers:e}),C(!0),n?.()}return{next:y.currentIndex}},[p.questions,s,a?.questions,l,t,e,d,w,n]);return p.questions.length===0?U(H,{}):U(`div`,{ref:x,className:`confetti ${de}`,"data-show-errors":b||void 0,children:i({questions:p.questions,current:m,answers:s,update:E,back:_,canGoBack:h,backButtonLabel:a?.backButtonLabel??void 0,saveAnswer:g,submit:T,isSubmitted:S,errors:b?l:Rt})})},Ht=P(null);function Ut({children:i,surveyId:a,publishableKey:s,apiBaseUrl:c,respondent:l,isSurveyVisible:u}){let d=e({surveyId:a,override:l}),f=o({publishableKey:s,apiBaseUrl:c}),{isAvailable:p,isSettled:m}=r({client:f,surveyId:a}),{state:h,isSettled:g}=t({client:f,surveyId:a,respondent:d}),_=z(()=>({respondent:d}),[d]);return!d||!m||!g||!p||!n(h,u)?null:U(Ht.Provider,{value:_,children:i})}function Wt(e){return L(Ht)?U(H,{children:e.children}):U(Ut,{...e})}function Gt(){let e=L(Ht);if(!e)throw Error(`useRespondentVisibility must be used within a RespondentVisibilityProvider`);return e}const Kt=({children:e,classNames:t,containerProps:n,onDismiss:r,onClose:i,closeOnFinishMs:a=3e3})=>{let{surveyId:o,survey:s,dismiss:c}=xe(),[l,u]=V(!1),[d,f]=V(!1),[p,m]=V(!1),[h,g]=V(!1);return De(()=>{s&&i?.()},d&&!(p||h)?a:null),W(`div`,{className:G(`confetti-dialog ${de}`,t?.dialog),id:`${o}-popover`,...n,onMouseEnter:e=>{n?.onMouseEnter?.(e),m(!0)},onMouseLeave:e=>{n?.onMouseLeave?.(e),m(!1)},onFocusCapture:e=>{n?.onFocusCapture?.(e),g(!0)},onBlurCapture:e=>{n?.onBlurCapture?.(e),e.currentTarget.contains(e.relatedTarget)||g(!1)},children:[U(be,{className:G(`confetti-dialog-close`,t?.closeButton),iconClassName:t?.icon,onClose:async()=>{l||(await c(),r?.()),i?.()}}),typeof e==`function`?e({setIsSubmitted:()=>u(!0),setIsFinished:()=>f(!0)}):e]})},qt=3e4,Jt=({maskAllInputs:e,initialEventsJson:t}={})=>{let[n,r]=V(()=>t??null),[i,a]=V(!1),[o,s]=V(null),[c,l]=V(30),u=B(null),d=B(null),f=B(null),p=B([]);R(()=>{let e=new CustomEvent(ue,{detail:{isRecording:i}});document.dispatchEvent(e)},[i]);let m=I(()=>{d.current&&=(clearInterval(d.current),null),f.current&&=(clearTimeout(f.current),null),u.current=null,l(qt/1e3)},[]),h=I(()=>{u.current?.(),m(),a(!1),r(JSON.stringify(p.current))},[m]);return{recordingEventsJson:n,isRecording:i,recordingError:o,remainingSeconds:c,startRecording:I(async()=>{a(!0),s(null),r(null),p.current=[];try{let{record:t}=await import(`./record--U99gpCM.js`);u.current=t({slimDOMOptions:{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaDescKeywords:!0,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaAuthorship:!0},sampling:{mousemove:50,scroll:100,input:`last`},emit:e=>{p.current.push(e)},blockClass:`cfti-block`,maskTextClass:`cfti-mask`,maskAllInputs:e})??null;let n=qt/1e3;l(n),d.current=setInterval(()=>{--n,l(n)},1e3),f.current=setTimeout(()=>{h()},qt)}catch{s(`Failed to start recording. Please try again.`),a(!1),m()}},[e,h,m]),stopRecording:h,clear:I(()=>{m(),a(!1),r(null),s(null),p.current=[]},[m])}},Yt=e=>e.replace(/\S/g,`*`),Xt=e=>`*`.repeat(e.length),Zt=(e,t)=>{for(let n of Array.from(e.childNodes))n.nodeType===Node.TEXT_NODE?t(n):Zt(n,t)},Qt=e=>{if(e instanceof HTMLInputElement)e.setAttribute(`value`,Xt(e.getAttribute(`value`)??``));else if(e instanceof HTMLTextAreaElement)e.textContent=Xt(e.textContent);else if(e instanceof HTMLSelectElement)for(let t of e.querySelectorAll(`option`))t.textContent=Xt(t.textContent)},$t=({maskInputs:e})=>({name:`cfti-redact`,afterClone:t=>{let{clone:n}=t;if(n instanceof HTMLElement){for(let e of n.querySelectorAll(`.${ce}`)){Zt(e,e=>{e.data=Yt(e.data)}),Qt(e);for(let t of e.querySelectorAll(`input, textarea, select`))Qt(t)}if(e)for(let e of n.querySelectorAll(`input, textarea, select`))Qt(e)}}}),en=({maskAllInputs:e,initialDataUrl:t}={})=>{let[n,r]=V(()=>t??null),[i,a]=V(!1),[o,s]=V(null);return{screenshotDataUrl:n,isCapturing:i,captureError:o,capture:I(async()=>{a(!0),s(null);try{let{snapdom:t}=await import(`./snapdom-BbRa4ZYv.js`),n=await(await t(document.documentElement,{embedFonts:!0,exclude:[`.${de}`],excludeMode:`hide`,plugins:[$t({maskInputs:!!e})],fast:!1})).toCanvas(),i=window.devicePixelRatio||1,a=Math.min(Math.round(window.innerWidth*i),n.width),o=Math.min(Math.round(window.innerHeight*i),n.height),s=document.createElement(`canvas`);s.width=a,s.height=o;let c=s.getContext(`2d`);if(!c)throw Error(`Failed to get 2D context for cropping`);c.drawImage(n,0,0,a,o,0,0,a,o),r(s.toDataURL(`image/png`))}catch{s(`Failed to capture screenshot. Please try again.`)}finally{a(!1)}},[e]),clear:I(()=>{r(null),s(null)},[])}},tn=e=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,...e,children:[U(`circle`,{cx:`12`,cy:`12`,r:`10`}),U(`rect`,{x:`9`,y:`9`,width:`6`,height:`6`,rx:`1`})]}),nn=e=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,...e,children:[U(`path`,{d:`M10 11v6`}),U(`path`,{d:`M14 11v6`}),U(`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`}),U(`path`,{d:`M3 6h18`}),U(`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`})]});function rn(){if(window.DD_RUM&&typeof window.DD_RUM?.getInternalContext==`function`&&typeof window.DD_RUM?.getSessionReplayLink==`function`)try{let e=window.DD_RUM?.getInternalContext?.(),t=window.DD_RUM?.getSessionReplayLink?.();return{sessionId:e?.session_id,sessionReplayLink:t}}catch{return null}return null}function an(){if(typeof window>`u`||typeof navigator>`u`)return;let e=navigator,t=window.screen,n=rn();return{userAgent:e.userAgent,screenResolution:`${t.width}x${t.height}`,viewportSize:`${window.innerWidth}x${window.innerHeight}`,pageUrl:window.location.href,pageTitle:document.title,referrer:document.referrer,language:e.language,timestamp:new Date().toISOString(),datadogTraceId:n?.traceId,datadogSessionId:n?.sessionId,datadogSessionReplayLink:n?.sessionReplayLink}}const on=Ee(()=>import(`./RecordingReplayer-DNYXhses.js`)),sn=({id:e,title:t,description:n,properties:r,onChange:i,required:a,error:o,classNames:s,maskAllInputs:c,defaultAnswer:l})=>{let u=z(()=>an(),[]),d=l&&typeof l==`object`&&`title`in l?l:void 0,[f,p]=V(()=>d?.title??``),[m,h]=V(()=>d?.description??``),{screenshotDataUrl:g,isCapturing:_,captureError:v,capture:y,clear:b}=en({maskAllInputs:c,initialDataUrl:d?.screenshotDataUrl}),{recordingEventsJson:x,isRecording:C,recordingError:w,remainingSeconds:T,startRecording:E,stopRecording:D,clear:O}=Jt({maskAllInputs:c,initialEventsJson:d?.recordingEventsJson}),k=z(()=>({title:f,...m?{description:m}:{},...g?{screenshotDataUrl:g}:{},...x?{recordingEventsJson:x}:{},metadata:u}),[m,u,x,g,f]);R(()=>{i(k)},[k,i]),R(()=>()=>{D()},[D]);let A=z(()=>x?JSON.parse(x):[],[x]);return U(H,{children:C?W(S,{className:G(`cf-bug-report-button`,`cf-bug-report-record-button`,s?.button,s?.recordButton),onPress:D,children:[U(tn,{}),W(`span`,{children:[30-T,`s /`,` `,30,`s`]})]}):W(`div`,{className:G(`cf-bug-report`,s?.base),children:[W(kt,{isRequired:a,isInvalid:!!o,name:`${e}-title`,value:f,onChange:p,className:G(`cf-question`,s?.question),children:[W(`div`,{className:G(`cf-header`,s?.header),children:[W(J,{className:G(`cf-title`,s?.title),children:[t,!a&&W(`span`,{className:G(`cf-label-optional`,s?.optionalLabel),children:[` `,`(optional)`]})]}),n&&U(Y,{slot:`description`,className:G(`cf-description`,s?.description),children:n})]}),U(gt,{placeholder:r.placeholder||`Brief description of the issue`,className:G(`cf-input`,s?.input)}),U(Z,{className:G(`cf-error`,s?.error),children:o})]}),W(kt,{name:`${e}-description`,value:m,onChange:h,className:G(`cf-question`,s?.question),children:[U(J,{className:G(`cf-title`,s?.title),children:r.detailsLabel}),U(Dt,{placeholder:r.detailsPlaceholder||`Steps to reproduce, expected vs actual behavior, etc.`,className:G(`cf-textarea`,s?.textArea),rows:4})]}),r.enableScreenshot||r.enableRecording?W(`section`,{className:G(`cf-question`,s?.question),children:[U(J,{className:G(`cf-title`,s?.title),children:`Attachments`}),W(`div`,{className:G(`cf-bug-report-actions`,s?.actions),children:[r.enableScreenshot&&W(`div`,{className:G(`cf-bug-report-screenshot-section`,s?.screenshotSection),children:[g?W(`div`,{className:G(`cf-bug-report-media-preview`,s?.mediaPreview),children:[U(`img`,{src:g,alt:`Screenshot preview`,className:G(`cf-bug-report-screenshot-img`,s?.screenshotImg)}),U(`div`,{className:G(`cf-bug-report-media-actions`,s?.mediaActions),children:U(S,{className:G(`cf-bug-report-button`,`cf-bug-report-button-action`,s?.button,s?.buttonAction),onPress:b,"aria-label":`Remove screenshot`,children:U(nn,{})})})]}):U(S,{className:G(`cf-bug-report-button`,s?.button),onPress:y,isDisabled:_,children:_?`Capturing...`:`Screenshot`}),v&&U(`div`,{className:G(`cf-error`,s?.error),children:v})]}),r.enableRecording&&W(`div`,{className:G(`cf-bug-report-recording-section`,s?.recordingSection),children:[A.length>0?W(`div`,{className:G(`cf-bug-report-media-preview`,s?.mediaPreview),children:[U(Ce,{fallback:U(`span`,{className:G(`cf-bug-report-player-loading`,s?.playerLoading),"aria-label":`Loading recording preview...`}),children:U(on,{events:A})}),U(`div`,{className:G(`cf-bug-report-media-actions`,s?.mediaActions),children:U(S,{className:G(`cf-bug-report-button`,`cf-bug-report-button-action`,s?.button,s?.buttonAction),onPress:O,"aria-label":`Remove recording`,children:U(nn,{})})})]}):U(S,{className:G(`cf-bug-report-button`,s?.button),onPress:E,children:`Record`}),w&&U(`div`,{className:G(`cf-error`,s?.error),children:w})]})]})]}):null]})})},cn=({id:e,title:t,description:n,properties:r,onChange:i,classNames:a,required:o,error:s,defaultAnswer:c})=>{let[l,u]=V(()=>typeof c==`string`?c:``);return R(()=>{i(l)},[i,l]),W(kt,{isRequired:o,isInvalid:!!s,name:e,className:G(`cf-question`,a?.question),value:l,onChange:e=>{u(e),i(e)},children:[W(`div`,{className:G(`cf-header`,a?.header),children:[W(J,{className:G(`cf-title`,a?.title),children:[t,!o&&W(`span`,{className:G(`cf-label-optional`,a?.optionalLabel),children:[` `,`(optional)`]})]}),n&&U(Y,{slot:`description`,className:G(`cf-description`,a?.description),children:n})]}),U(Dt,{className:G(`cf-textarea`,a?.textarea),maxLength:r.max,rows:4,placeholder:r.placeholder||`Start typing...`}),U(Z,{className:G(`cf-error`,a?.error),children:s})]})},ln=({children:e,classNames:t,description:n,...r})=>U(ft,{...r,children:({isIndeterminate:r})=>W(H,{children:[W(`div`,{className:G(`cf-choice-label`,t?.label),children:[U(`div`,{className:G(`cf-checkbox-indicator`,t?.indicator),children:U(`svg`,{viewBox:`0 0 18 18`,"aria-hidden":`true`,className:G(`cf-checkbox-indicator-svg`,t?.svg),children:r?U(`rect`,{x:1,y:7.5,width:16,height:3}):U(`polyline`,{points:`2 9 7 14 16 4`})},r?`indeterminate`:`check`)}),e]}),n&&U(`span`,{className:G(`cf-choice-description`,t?.choiceDescription),children:n})]})}),un=({children:e,classNames:t,...n})=>U(ft,{...n,children:U(`div`,{className:G(`cf-tag-label`,t?.tagLabel),children:e})}),dn=({title:e,description:t,properties:n,classNames:r,onChange:i,id:a,required:o,error:s,defaultAnswer:c})=>{let l=!!n.editable,u=n.display??`checkbox`,d=Array.isArray(c)?c:[],f=new Set(n.options.map(e=>e.value)),p=d.find(e=>!f.has(e)),[m,h]=V(()=>{let e=d.filter(e=>f.has(e));return p!==void 0&&l&&e.push(oe),e}),[g,_]=V(()=>p!==void 0&&l?p:``),v=B(null),y=B(null),b=z(()=>{let e=m.indexOf(oe);if(e===-1)return m;let t=[...m];return t[e]=g||`__CONFETTI_CHECKBOX_Others`,t},[g,m]),x=u===`tag`;return R(()=>{i(b)},[i,b]),U(dt,{isRequired:o,isInvalid:!!s,name:a,value:m,onChange:h,className:G(`cf-question`,r?.question),children:({state:i})=>W(H,{children:[W(`div`,{className:G(`cf-header`,r?.header),children:[W(J,{className:G(`cf-title`,r?.title),children:[e,!o&&W(`span`,{className:G(`cf-label-optional`,r?.optionalLabel),children:[` `,`(optional)`]})]}),t&&U(Y,{slot:`description`,className:G(`cf-description`,r?.description),children:t})]}),W(`div`,{className:G(`cf-response-choices`,u===`tag`&&`cf-response-choices-tag`,r?.group),children:[n.options.map((e,t)=>U(x?un:ln,{className:G(`cf-choice`,x&&[`cf-tag`,r?.tag],!x&&[`cf-checkbox`,r?.checkbox]),description:e.description,value:e.value,classNames:{tag:r?.tag,tagLabel:r?.tagLabel,choiceDescription:r?.choiceDescription,label:r?.label,indicator:r?.indicator,svg:r?.svg},children:e.value},t)),l&&(x?W(H,{children:[U(un,{inputRef:v,onChange:e=>{y.current&&e&&requestAnimationFrame(()=>{y.current&&y.current.focus()})},className:G(`cf-choice cf-tag`,r?.tag),value:`__CONFETTI_CHECKBOX_Others`,children:n.editable?.label}),U(gt,{"data-visible":i.value.includes(`__CONFETTI_CHECKBOX_Others`)||void 0,value:g,onChange:e=>{_(e.target.value)},ref:y,className:G(`cf-input cf-tag-input`,r?.othersInput)})]}):W(`div`,{className:G(`cf-choice cf-others-choice`,r?.othersChoice),children:[U(ln,{inputRef:v,onChange:e=>{y.current&&e&&requestAnimationFrame(()=>{y.current&&y.current.focus()})},className:G(`cf-checkbox`,r?.checkbox),value:`__CONFETTI_CHECKBOX_Others`,classNames:{indicator:r?.indicator,svg:r?.svg},description:n.editable?.description,children:n.editable?.label}),U(gt,{value:g,onChange:e=>{_(e.target.value)},tabIndex:i.value.includes(`__CONFETTI_CHECKBOX_Others`)?0:-1,ref:y,onFocus:()=>{v.current?.checked===!1&&v.current.click()},className:G(`cf-input`,r?.othersInput)})]}))]}),U(Z,{className:G(`cf-error`,r?.error),children:s})]})})},fn=e=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:40,height:40,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,...e,children:[U(`circle`,{cx:12,cy:12,r:10}),U(`path`,{d:`M16 16s-1.5-2-4-2-4 2-4 2M7.5 8 10 9M14 9l2.5-1M9 10h.01M15 10h.01`})]}),pn=e=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:40,height:40,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,...e,children:[U(`circle`,{cx:12,cy:12,r:10}),U(`path`,{d:`M18 13a6 6 0 0 1-6 5 6 6 0 0 1-6-5h12ZM9 9h.01M15 9h.01`})]}),mn=e=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:40,height:40,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,...e,children:[U(`circle`,{cx:12,cy:12,r:10}),U(`path`,{d:`M16 16s-1.5-2-4-2-4 2-4 2M9 9h.01M15 9h.01`})]}),hn=e=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:40,height:40,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,...e,children:[U(`circle`,{cx:12,cy:12,r:10}),U(`path`,{d:`M8 15h8M9 9h.01M15 9h.01`})]}),gn=e=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:40,height:40,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,...e,children:[U(`circle`,{cx:12,cy:12,r:10}),U(`path`,{d:`M8 14s1.5 2 4 2 4-2 4-2M9 9h.01M15 9h.01`})]}),_n=e=>U(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:40,height:40,fill:`none`,...e,children:U(`path`,{fill:`currentColor`,d:`m6.516 14.323-1.49 6.452a.998.998 0 0 0 1.529 1.057L12 18.202l5.445 3.63a1.001 1.001 0 0 0 1.517-1.106l-1.829-6.4 4.536-4.082a1 1 0 0 0-.59-1.74l-5.701-.454-2.467-5.461a.998.998 0 0 0-1.822 0L8.622 8.05l-5.701.453a1 1 0 0 0-.619 1.713l4.214 4.107zm2.853-4.326a.998.998 0 0 0 .832-.586L12 5.43l1.799 3.981a.998.998 0 0 0 .832.586l3.972.315-3.271 2.944c-.284.256-.397.65-.293 1.018l1.253 4.385-3.736-2.491a.995.995 0 0 0-1.109 0l-3.904 2.603 1.05-4.546a1 1 0 0 0-.276-.94l-3.038-2.962 4.09-.326z`})}),vn=e=>U(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:40,height:40,viewBox:`0 0 24 24`,...e,children:U(`path`,{fill:`currentColor`,d:`M21.947 9.179a1.001 1.001 0 0 0-.868-.676l-5.701-.453-2.467-5.461a.998.998 0 0 0-1.822-.001L8.622 8.05l-5.701.453a1 1 0 0 0-.619 1.713l4.213 4.107-1.49 6.452a1 1 0 0 0 1.53 1.057L12 18.202l5.445 3.63a1.001 1.001 0 0 0 1.517-1.106l-1.829-6.4 4.536-4.082c.297-.268.406-.686.278-1.065z`})}),yn=({state:e,properties:t,classNames:n})=>{let r=e.selectedValue?Number(e.selectedValue):null;return U(`div`,{className:G(`cf-rating-display-star`,n?.ratingDisplayStar),children:Array.from({length:t.scale},(e,t)=>{let i=t+1,a=String(i),o=r&&i<=r;return U(wt,{className:G(`cf-rating-star`,n?.ratingStar),value:a,"data-filled":o?`true`:void 0,children:U(o?vn:_n,{})},t)})})},bn=({properties:e,classNames:t})=>U(`div`,{className:G(`cf-rating-display-number`,t?.ratingDisplayNumber),children:Array.from({length:e.scale},(e,n)=>{let r=n+1,i=String(r);return U(wt,{className:G(`cf-rating-number`,t?.ratingNumber),value:i,children:r},n)})}),xn=({properties:e,classNames:t,state:n})=>{let r=z(()=>[fn,mn,hn,gn,pn],[]),i=z(()=>[mn,hn,gn],[]);return z(()=>e.scale===3||e.scale===5,[e.scale])?U(`div`,{className:G(`cf-rating-display-emoji`,t?.ratingDisplayEmoji),children:Array.from({length:e.scale},(n,a)=>{let o=a+1,s=String(o),c=e.scale===5?r[a]:i[a];return U(wt,{className:G(`cf-rating-emoji`,t?.ratingEmoji),value:s,children:c&&U(c,{})},a)})}):U(bn,{properties:e,classNames:t,state:n})},Sn=e=>{switch(e.properties.display??`star`){case`emoji`:return U(xn,{...e});case`number`:return U(bn,{...e});case`star`:return U(yn,{...e})}},Cn=({properties:e,title:t,description:n,classNames:r,onChange:i,id:a,error:o,required:s,defaultAnswer:c})=>{let[l,u]=V(()=>typeof c==`number`?String(c):null),d=z(()=>l?Number(l):void 0,[l]);return R(()=>{i(d)},[i,d]),U(Ct,{isRequired:s,isInvalid:!!o,name:a,className:G(`cf-question`,r?.question),value:l,onChange:u,children:({state:i})=>W(H,{children:[W(`div`,{className:G(`cf-header`,r?.header),children:[W(J,{className:G(`cf-title`,r?.title),children:[t,!s&&W(`span`,{className:G(`cf-label-optional`,r?.optionalLabel),children:[` `,`(optional)`]})]}),n&&U(Y,{slot:`description`,className:G(`cf-description`,r?.description),children:n})]}),W(`div`,{className:G(`cf-rating-section`,r?.ratingSection),children:[U(Sn,{state:i,properties:e,classNames:r}),W(`div`,{className:G(`cf-rating-text`,r?.ratingText),children:[U(`span`,{className:G(`cf-rating-text-lower`,r?.ratingTextLower),children:e.labels?.lower}),U(`span`,{className:G(`cf-rating-text-upper`,r?.ratingTextUpper),children:e.labels?.upper})]})]}),U(Z,{className:G(`cf-error`,r?.error),children:o})]})})},wn=({classNames:e,className:t,description:n,...r})=>U(wt,{...r,className:G(t,e?.radio),children:p(r.children,t=>W(H,{children:[W(`div`,{className:G(`cf-choice-label`,e?.label),children:[U(`div`,{className:G(`cf-radio-indicator`,e?.indicator)}),t]}),n&&U(`span`,{className:G(`cf-choice-description`,e?.choiceDescription),children:n})]}))}),Tn=({title:e,description:t,properties:n,classNames:r,onChange:i,id:a,required:o,error:s,defaultAnswer:c})=>{let l=!!n.editable,u=typeof c==`string`?c:null,d=u!==null&&n.options.some(e=>e.value===u),[f,p]=V(()=>u===null?null:d?u:l?ee:null),[m,h]=V(()=>u!==null&&!d&&l?u:``),g=B(null),_=B(null),v=z(()=>f===`__CONFETTI_RADIO_Others`?m||`__CONFETTI_RADIO_Others`:f??void 0,[m,f]);return R(()=>{i(v)},[i,v]),U(Ct,{isRequired:o,isInvalid:!!s,name:a,onChange:e=>{p(e),e===`__CONFETTI_RADIO_Others`&&requestAnimationFrame(()=>{_.current&&_.current.focus()})},value:f,className:G(`cf-question`,r?.question),children:({state:i})=>W(H,{children:[W(`div`,{className:G(`cf-header`,r?.header),children:[W(J,{className:G(`cf-title`,r?.title),children:[e,!o&&W(`span`,{className:G(`cf-label-optional`,r?.optionalLabel),children:[` `,`(optional)`]})]}),t&&U(Y,{slot:`description`,className:G(`cf-description`,r?.description),children:t})]}),W(`div`,{className:G(`cf-response-choices`,r?.group),children:[n.options.map((e,t)=>U(wn,{classNames:{indicator:r?.indicator,radio:G(`cf-choice cf-radio`,r?.radio)},value:e.value,description:e.description,children:e.value},t)),l&&W(`div`,{className:G(`cf-choice cf-others-choice`,r?.othersChoice),children:[U(wn,{inputRef:g,value:`__CONFETTI_RADIO_Others`,classNames:{indicator:r?.indicator,radio:G(`cf-radio`,r?.radio)},description:n.editable?.description,children:n.editable?.label}),U(gt,{tabIndex:i.selectedValue===`__CONFETTI_RADIO_Others`?0:-1,ref:_,value:m,onChange:e=>h(e.target.value),onFocus:()=>{g.current?.checked===!1&&g.current.click()},className:G(`cf-input`,r?.othersInput)})]})]}),U(Z,{className:G(`cf-error`,r?.error),children:s})]})})},En=({properties:e,title:t,description:n,classNames:r})=>U(`div`,{className:G(`cf-question`,r?.question),children:W(`div`,{className:G(`cf-header`,r?.header),children:[t&&U(`div`,{className:G(`cf-title`,r?.title),children:t}),n&&U(`div`,{className:G(`cf-description`,r?.description),children:n})]})}),Dn=({question:e,onChange:t,error:n,maskAllInputs:r,defaultAnswer:i})=>{switch(e.properties.type){case`rating`:return U(Cn,{...e,properties:e.properties,onChange:t,error:n,defaultAnswer:i},e.id);case`open-ended`:return U(cn,{...e,properties:e.properties,onChange:t,error:n,defaultAnswer:i},e.id);case`single-select`:return U(Tn,{...e,properties:e.properties,onChange:t,error:n,defaultAnswer:i},e.id);case`multi-select`:return U(dn,{...e,properties:e.properties,onChange:t,error:n,defaultAnswer:i},e.id);case`statement`:return U(En,{...e,properties:e.properties,onChange:t,error:n},e.id);case`bug-report`:return U(sn,{...e,properties:e.properties,onChange:t,error:n,maskAllInputs:r,defaultAnswer:i},e.id)}return U(`div`,{children:`Unsupported question type`},e.id)},On=({title:e,description:t,classNames:n,onClose:r})=>{let{survey:i}=xe();if(!i)return null;let a=t||i.confirmation.description;return W(H,{children:[U(`div`,{className:G(`cf-question`,n?.question),children:W(`div`,{className:G(`cf-header`,n?.header),children:[U(J,{className:G(`cf-title`,n?.title),children:e||i.confirmation.title||`Feedback submitted!`}),a&&U(Y,{slot:`description`,className:G(`cf-description`,n?.description),children:a})]})}),U(S,{className:`cf-submit-button`,onPress:()=>{r?.()},children:i.confirmation.buttonText||`Close`})]})},kn=({onPress:e,children:t=`Back`})=>ge()?null:U(S,{className:`cf-back-button`,onPress:e,children:t}),An=({onPress:e,isDisabled:t,children:n=`Submit`})=>ge()?null:U(S,{isDisabled:t,className:`cf-submit-button`,onPress:e,children:n}),jn=e=>{switch(e){case`multi-select`:return[];case`bug-report`:return{title:``};case`statement`:return;default:return``}},Mn=e=>!Q(e),Nn=({onSubmit:e,children:t,question:n,isLastQuestion:r,defaultAnswer:i,backButton:a,saveAnswer:o})=>{let s=ge(),[c,l]=V(i??jn(n.properties.type)),u=z(()=>Pt(n.properties,{required:n.required}),[n.properties,n.required]),d=z(()=>{let e=u.safeParse(c);if(!e.success)return _e(e.error)},[c,u]),f=z(()=>Mt({routingLogic:n.routingLogic,answer:c,required:n.required,isLastQuestion:r}),[c,r,n.required,n.routingLogic]),p=z(()=>n.properties.buttonLabel?n.properties.buttonLabel:f?!n.required&&!Mn(c)?`Skip`:`Next`:`Submit`,[c,f,n.properties.buttonLabel,n.required]),m=I(()=>{switch(n.properties.type){case`statement`:if(n.properties.buttonUrl&&typeof window<`u`){let e=te.safeParse(n.properties.buttonUrl).data;e&&window.open(e,`_blank`)}return e(void 0);default:return e(c)}},[c,e,n.properties]),h=Mn(i),g=z(()=>{switch(n.properties.type){case`rating`:case`single-select`:return!!n.properties.shouldAutoProgress;default:return!1}},[n.properties])&&!h,_=I(t=>{l(t),g&&Mn(t)&&u.safeParse(t).success&&e(t)},[g,u,e]),v=z(()=>{if(!a||!Te(a))return a;let e=a;return we(e,{onPress:()=>{let t=At({answer:c,defaultAnswer:i});t!==void 0&&o?.(t),e.props.onPress?.()}})},[a,c,i,o]);return W(H,{children:[t({onChange:_,question:n,error:d,defaultAnswer:i}),!s&&W(`div`,{className:`cf-button-row`,children:[v,(!g||!n.required)&&U(An,{isDisabled:!!d,onPress:m,children:p})]})]})},Pn=({onSubmit:e,children:t})=>W(H,{children:[t,U(An,{onPress:e})]});export{Dn as a,Cn as c,Kt as d,Ht as f,Vt as h,On as i,dn as l,Gt as m,Nn as n,En as o,Wt as p,kn as r,Tn as s,Pn as t,cn as u};
@@ -2,4 +2,4 @@ import{A as e,B as t,C as n,D as r,E as i,F as a,G as o,H as s,I as c,L as l,M a
2
2
  * {
3
3
  overscroll-behavior: contain;
4
4
  }
5
- }`,document.head.prepend(i);let o=e=>{if(!(e.touches.length===2||n)){if(!t||t===document.documentElement||t===document.body){e.preventDefault();return}t.scrollHeight===t.clientHeight&&t.scrollWidth===t.clientWidth&&e.preventDefault()}},s=e=>{let t=d(e),n=e.relatedTarget;n&&M(n)?(n.focus({preventScroll:!0}),Mn(n,M(t))):n||(t.parentElement?.closest(`[tabindex]`))?.focus({preventScroll:!0})},c=HTMLElement.prototype.focus;HTMLElement.prototype.focus=function(e){let t=u(),n=t!=null&&M(t);c.call(this,{...e,preventScroll:!0}),(!e||!e.preventScroll)&&Mn(this,n)};let f=l(jn(document,`touchstart`,r,{passive:!1,capture:!0}),jn(document,`touchmove`,o,{passive:!1,capture:!0}),jn(document,`blur`,s,!0));return()=>{e(),f(),i.remove(),HTMLElement.prototype.focus=c}}function X(e,t,n){let r=e.style[t];return e.style[t]=n,()=>{e.style[t]=r}}function jn(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function Mn(e,t){t||!J?Nn(e):J.addEventListener(`resize`,()=>Nn(e),{once:!0})}function Nn(e){let t=document.scrollingElement||document.documentElement,n=e;for(;n&&n!==t;){let e=Me(n);if(e!==document.documentElement&&e!==document.body&&e!==n){let t=e.getBoundingClientRect(),r=n.getBoundingClientRect();if(r.top<t.top||r.bottom>t.top+n.clientHeight){let n=t.bottom;J&&(n=Math.min(n,J.offsetTop+J.height));let i=r.top-t.top-((n-t.top)/2-r.height/2);e.scrollTo({top:Math.max(0,Math.min(e.scrollHeight-e.clientHeight,e.scrollTop+i)),behavior:`smooth`})}}n=e.parentElement}}function Pn(e,t,n){let{overlayProps:r,underlayProps:i}=En({...e,isOpen:t.isOpen,onClose:t.close},n);return On({isDisabled:!t.isOpen}),Bt(),w(()=>{if(t.isOpen&&n.current)return Ve([n.current],{shouldUseInert:!0})},[t.isOpen,n]),{modalProps:f(r),underlayProps:i}}function Fn(e){let[t,n]=kt(e.isOpen,e.defaultOpen||!1,e.onOpenChange);return{isOpen:t,setOpen:n,open:S(()=>{n(!0)},[n]),close:S(()=>{n(!1)},[n]),toggle:S(()=>{n(!t)},[n,t])}}const In=x(null),Z=x(null),Ln=ye(function(e,t){let n=e[`aria-labelledby`];[e,t]=oe(e,t,In);let{dialogProps:i,titleProps:a}=Vt({...e,"aria-labelledby":n},t),o=C(Z);!i[`aria-label`]&&!i[`aria-labelledby`]&&e[`aria-labelledby`]&&(i[`aria-labelledby`]=e[`aria-labelledby`]);let s=ne({defaultClassName:`react-aria-Dialog`,className:e.className,style:e.style,children:e.children,values:{close:o?.close||(()=>{})}}),c=r(e,{global:!0});return b.createElement(fe.section,{...f(c,s,i),render:e.render,ref:t,slot:e.slot||void 0},b.createElement(ce,{values:[[De,{slots:{[ue]:{},title:{...a,level:2}}}],[le,{slots:{[ue]:{},close:{onPress:()=>o?.close()}}}]]},s.children))}),Rn=x(null),zn=x(null),Bn=ye(function(e,t){if(C(zn))return b.createElement(Wn,{...e,modalRef:t},e.children);let{isDismissable:n,isKeyboardDismissDisabled:r,isOpen:i,defaultOpen:a,onOpenChange:o,children:s,isEntering:c,isExiting:l,UNSTABLE_portalContainer:u,shouldCloseOnInteractOutside:d,...f}=e;return b.createElement(Hn,{isDismissable:n,isKeyboardDismissDisabled:r,isOpen:i,defaultOpen:a,onOpenChange:o,isEntering:c,isExiting:l,UNSTABLE_portalContainer:u,shouldCloseOnInteractOutside:d},b.createElement(Wn,{...f,modalRef:t},s))});function Vn(e,n){[e,n]=oe(e,n,Rn);let r=C(Z),a=Fn(e),o=e.isOpen!=null||e.defaultOpen!=null||!r?a:r,s=i(n),c=E(null),l=Le(s,o.isOpen),u=Le(c,o.isOpen),d=l||u||e.isExiting||!1,f=t();return!o.isOpen&&!d||f?null:b.createElement(Un,{...e,state:o,isExiting:d,overlayRef:s,modalRef:c})}const Hn=ye(Vn);function Un({UNSTABLE_portalContainer:e,...t}){let n=t.modalRef,{state:i}=t,{modalProps:a,underlayProps:o}=Pn(t,i,n),s=Ie(t.overlayRef)||t.isEntering||!1,c=ne({...t,defaultClassName:`react-aria-ModalOverlay`,values:{isEntering:s,isExiting:t.isExiting,state:i}}),l=Pe(),u;if(typeof document<`u`){let e=j(document.body)?document.body:document.scrollingElement||document.documentElement,t=e.getBoundingClientRect().height%1;u=e.scrollHeight-t}let d={...c.style,"--visual-viewport-height":l.height+`px`,"--page-height":u===void 0?void 0:u+`px`};return b.createElement(zt,{isExiting:t.isExiting,portalContainer:e},b.createElement(fe.div,{...f(r(t,{global:!0}),o),...c,style:d,ref:t.overlayRef,"data-entering":s||void 0,"data-exiting":t.isExiting||void 0},b.createElement(ce,{values:[[zn,{modalProps:a,modalRef:n,isExiting:t.isExiting,isDismissable:t.isDismissable}],[Z,i]]},c.children)))}function Wn(e){let{modalProps:t,modalRef:n,isExiting:a,isDismissable:o}=C(zn),s=C(Z),c=i(T(()=>ie(e.modalRef,n),[e.modalRef,n])),l=Ie(c),u=ne({...e,defaultClassName:`react-aria-Modal`,values:{isEntering:l,isExiting:a,state:s}});return b.createElement(fe.div,{...f(r(e,{global:!0}),t),...u,ref:c,"data-entering":l||void 0,"data-exiting":a||void 0},o&&b.createElement(Tn,{onDismiss:s.close}),u.children)}function Gn(e){return e.issues[0]?.message??`Invalid input`}function Kn(e){return e!=null&&(typeof e!=`string`||e.trim()!==``)}function qn(e){if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e)}const Jn=[`id`,`email`,`name`],Q=e=>O.custom(t=>typeof t==`object`&&!!t&&typeof Reflect.get(t,e)==`function`),Yn=Q(`get_distinct_id`),Xn=Q(`get_session_id`),Zn=Q(`getUser`),Qn=Q(`getInternalContext`),$n=O.string(),er=O.record(O.string(),O.unknown()),tr=O.object({session_id:O.string().optional()}),$=(e,t)=>{if(typeof window>`u`)return;let n=t.safeParse(Reflect.get(window,e));return n.success?n.data:void 0},nr=()=>{try{let e=$(`posthog`,Yn);if(!e)return;let t=$n.safeParse(e.get_distinct_id());return t.success?t.data:void 0}catch{return}},rr=()=>{try{let e=$(`posthog`,Xn);if(!e)return;let t=$n.safeParse(e.get_session_id());return t.success?t.data:void 0}catch{return}},ir=()=>{try{let e=$(`DD_RUM`,Zn);if(!e)return;let t=er.safeParse(e.getUser());return!t.success||Object.keys(t.data).length===0?void 0:t.data}catch{return}},ar=()=>{try{let e=$(`DD_RUM`,Qn);if(!e)return;let t=tr.safeParse(e.getInternalContext());return t.success?t.data.session_id:void 0}catch{return}},or=e=>{let t={...e};if(Object.keys(t).length>=20)return t;let n=ir(),r;if(n)try{r=JSON.stringify(n)}catch{r=void 0}let i=[[`posthog_distinct_id`,nr()],[`posthog_session_id`,rr()],[`datadog_rum_user`,r],[`datadog_rum_session_id`,ar()],...Jn.map(e=>[`datadog_rum_user_${e}`,qn(n?.[e])])];for(let[e,n]of i){if(Object.keys(t).length>=20)break;if(Object.prototype.hasOwnProperty.call(t,e)||!Kn(n))continue;let r=me.safeParse(e),i=me.safeParse(n);!r.success||!i.success||(t[r.data]=i.data)}return t},sr=(e,t=!1)=>t?or(e):e,cr=x({}),lr=()=>C(cr),ur=x({}),dr=({type:e,children:t})=>{let n=T(()=>({type:e}),[e]);return k(ur.Provider,{value:n,children:t})},fr=()=>C(ur),pr=x(null),mr=({children:e,surveyId:t,publishableKey:n,respondent:r,metadata:i={},autoInjectAnalyticsMetadata:a=!1,apiBaseUrl:s})=>{let{type:c}=fr(),l=lr(),u=l.version??`0.7.4`,d=l.build,f=E(!1),[p,m]=D(),h=o({publishableKey:n,apiBaseUrl:s});w(()=>{(async()=>{f.current=!1,m(void 0);try{let e=await h.get(`api/v1/cfti/${t}`).json(),n=he.safeParse(e);if(!n.success)return;m(n.data)}catch{}})()},[h,t]);let g=S(async({answers:e})=>{let n=crypto.randomUUID(),o=sr(i,a);await h.put(`api/v1/cfti/${t}/response/${n}`,{json:{respondent:r,data:e,metadata:o,telemetry:{...c!==void 0&&{type:c},version:u,...d&&{build:d}}}})},[a,d,h,i,r,t,u,c]),_=S(()=>{h.post(`api/v1/cfti/${t}/respondent/${r}/event`,{json:{type:`dismiss`}}).catch(()=>{})},[h,r,t]);return w(()=>{f.current||p&&r&&(f.current=!0,h.post(`api/v1/cfti/${t}/respondent/${r}/event`,{json:{type:`view`}}).catch(()=>{}))},[h,r,p,t]),p?k(pr.Provider,{value:{submit:g,dismiss:_,surveyId:t,survey:p,metadata:i},children:e}):null},hr=e=>C(pr)?k(Se,{children:e.children}):k(mr,{...e}),gr=()=>{let e=C(pr);if(!e)throw Error(`useSurvey must be used within a SurveyProvider`);return e},_r=()=>{let[e,t]=D(!1);return w(()=>{let e=e=>{let n=ge.safeParse(e);n.error||t(n.data.detail.isRecording)};return document.addEventListener(_e,e),()=>{document.removeEventListener(_e,e)}},[]),e},vr=({className:e,iconClassName:t,onClose:n})=>_r()?null:k(`button`,{type:`button`,className:e,"aria-label":`Dismiss`,onClick:n,children:k(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 16 16`,fill:`none`,className:t,children:k(`path`,{fill:`currentColor`,fillRule:`evenodd`,d:`M3.53 3.529c.26-.26.682-.26.942 0l3.529 3.528 3.528-3.528a.667.667 0 0 1 .943.942L8.943 8l3.53 3.528a.667.667 0 0 1-.944.943L8.001 8.943 4.472 12.47a.667.667 0 1 1-.943-.943L7.058 8 3.529 4.47a.667.667 0 0 1 0-.942Z`,clipRule:`evenodd`})})}),yr=({children:e,classNames:t,isDismissable:n,onDismiss:r,onClose:i,closeOnFinishMs:a,isSubmitted:o,onSubmitted:s})=>{let{survey:c,surveyId:l,dismiss:u}=gr(),[d,f]=D(!1);return xe(()=>{c&&i?.()},d?a:null),Ce(Ln,{"aria-label":`Survey`,id:`${l}-popover`,className:A(`confetti-modal-dialog ${ve}`,t?.dialog),children:[n&&k(vr,{className:A(`confetti-modal-dialog-close`,t?.closeButton),iconClassName:t?.icon,onClose:async()=>{!o&&!d&&(await u(),r?.()),i?.()}}),typeof e==`function`?e({setIsSubmitted:()=>s?.(),setIsFinished:()=>f(!0)}):e]})},br=({children:e,classNames:t,onDismiss:n,onClose:r,isDismissable:i=!0,closeOnFinishMs:a=3e3})=>{let{dismiss:o}=gr(),[s,c]=D(!1);return k(Hn,{isOpen:!0,isDismissable:i,isKeyboardDismissDisabled:!i,onOpenChange:async e=>{e||(s||(await o(),n?.()),r?.())},className:A(`confetti-modal-overlay ${ve}`,t?.overlay),children:k(Bn,{className:A(`confetti-modal ${ve}`,t?.modal),children:k(yr,{classNames:t,isDismissable:i,onDismiss:n,onClose:r,closeOnFinishMs:a,isSubmitted:s,onSubmitted:()=>c(!0),children:e})})})};export{pr as a,dr as c,kt as d,G as f,Ee as g,Oe as h,_r as i,Gn as l,je as m,yr as n,hr as o,Ze as p,vr as r,gr as s,br as t,Ft as u};
5
+ }`,document.head.prepend(i);let o=e=>{if(!(e.touches.length===2||n)){if(!t||t===document.documentElement||t===document.body){e.preventDefault();return}t.scrollHeight===t.clientHeight&&t.scrollWidth===t.clientWidth&&e.preventDefault()}},s=e=>{let t=d(e),n=e.relatedTarget;n&&M(n)?(n.focus({preventScroll:!0}),Mn(n,M(t))):n||(t.parentElement?.closest(`[tabindex]`))?.focus({preventScroll:!0})},c=HTMLElement.prototype.focus;HTMLElement.prototype.focus=function(e){let t=u(),n=t!=null&&M(t);c.call(this,{...e,preventScroll:!0}),(!e||!e.preventScroll)&&Mn(this,n)};let f=l(jn(document,`touchstart`,r,{passive:!1,capture:!0}),jn(document,`touchmove`,o,{passive:!1,capture:!0}),jn(document,`blur`,s,!0));return()=>{e(),f(),i.remove(),HTMLElement.prototype.focus=c}}function X(e,t,n){let r=e.style[t];return e.style[t]=n,()=>{e.style[t]=r}}function jn(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function Mn(e,t){t||!J?Nn(e):J.addEventListener(`resize`,()=>Nn(e),{once:!0})}function Nn(e){let t=document.scrollingElement||document.documentElement,n=e;for(;n&&n!==t;){let e=Me(n);if(e!==document.documentElement&&e!==document.body&&e!==n){let t=e.getBoundingClientRect(),r=n.getBoundingClientRect();if(r.top<t.top||r.bottom>t.top+n.clientHeight){let n=t.bottom;J&&(n=Math.min(n,J.offsetTop+J.height));let i=r.top-t.top-((n-t.top)/2-r.height/2);e.scrollTo({top:Math.max(0,Math.min(e.scrollHeight-e.clientHeight,e.scrollTop+i)),behavior:`smooth`})}}n=e.parentElement}}function Pn(e,t,n){let{overlayProps:r,underlayProps:i}=En({...e,isOpen:t.isOpen,onClose:t.close},n);return On({isDisabled:!t.isOpen}),Bt(),w(()=>{if(t.isOpen&&n.current)return Ve([n.current],{shouldUseInert:!0})},[t.isOpen,n]),{modalProps:f(r),underlayProps:i}}function Fn(e){let[t,n]=kt(e.isOpen,e.defaultOpen||!1,e.onOpenChange);return{isOpen:t,setOpen:n,open:S(()=>{n(!0)},[n]),close:S(()=>{n(!1)},[n]),toggle:S(()=>{n(!t)},[n,t])}}const In=x(null),Z=x(null),Ln=ye(function(e,t){let n=e[`aria-labelledby`];[e,t]=oe(e,t,In);let{dialogProps:i,titleProps:a}=Vt({...e,"aria-labelledby":n},t),o=C(Z);!i[`aria-label`]&&!i[`aria-labelledby`]&&e[`aria-labelledby`]&&(i[`aria-labelledby`]=e[`aria-labelledby`]);let s=ne({defaultClassName:`react-aria-Dialog`,className:e.className,style:e.style,children:e.children,values:{close:o?.close||(()=>{})}}),c=r(e,{global:!0});return b.createElement(fe.section,{...f(c,s,i),render:e.render,ref:t,slot:e.slot||void 0},b.createElement(ce,{values:[[De,{slots:{[ue]:{},title:{...a,level:2}}}],[le,{slots:{[ue]:{},close:{onPress:()=>o?.close()}}}]]},s.children))}),Rn=x(null),zn=x(null),Bn=ye(function(e,t){if(C(zn))return b.createElement(Wn,{...e,modalRef:t},e.children);let{isDismissable:n,isKeyboardDismissDisabled:r,isOpen:i,defaultOpen:a,onOpenChange:o,children:s,isEntering:c,isExiting:l,UNSTABLE_portalContainer:u,shouldCloseOnInteractOutside:d,...f}=e;return b.createElement(Hn,{isDismissable:n,isKeyboardDismissDisabled:r,isOpen:i,defaultOpen:a,onOpenChange:o,isEntering:c,isExiting:l,UNSTABLE_portalContainer:u,shouldCloseOnInteractOutside:d},b.createElement(Wn,{...f,modalRef:t},s))});function Vn(e,n){[e,n]=oe(e,n,Rn);let r=C(Z),a=Fn(e),o=e.isOpen!=null||e.defaultOpen!=null||!r?a:r,s=i(n),c=E(null),l=Le(s,o.isOpen),u=Le(c,o.isOpen),d=l||u||e.isExiting||!1,f=t();return!o.isOpen&&!d||f?null:b.createElement(Un,{...e,state:o,isExiting:d,overlayRef:s,modalRef:c})}const Hn=ye(Vn);function Un({UNSTABLE_portalContainer:e,...t}){let n=t.modalRef,{state:i}=t,{modalProps:a,underlayProps:o}=Pn(t,i,n),s=Ie(t.overlayRef)||t.isEntering||!1,c=ne({...t,defaultClassName:`react-aria-ModalOverlay`,values:{isEntering:s,isExiting:t.isExiting,state:i}}),l=Pe(),u;if(typeof document<`u`){let e=j(document.body)?document.body:document.scrollingElement||document.documentElement,t=e.getBoundingClientRect().height%1;u=e.scrollHeight-t}let d={...c.style,"--visual-viewport-height":l.height+`px`,"--page-height":u===void 0?void 0:u+`px`};return b.createElement(zt,{isExiting:t.isExiting,portalContainer:e},b.createElement(fe.div,{...f(r(t,{global:!0}),o),...c,style:d,ref:t.overlayRef,"data-entering":s||void 0,"data-exiting":t.isExiting||void 0},b.createElement(ce,{values:[[zn,{modalProps:a,modalRef:n,isExiting:t.isExiting,isDismissable:t.isDismissable}],[Z,i]]},c.children)))}function Wn(e){let{modalProps:t,modalRef:n,isExiting:a,isDismissable:o}=C(zn),s=C(Z),c=i(T(()=>ie(e.modalRef,n),[e.modalRef,n])),l=Ie(c),u=ne({...e,defaultClassName:`react-aria-Modal`,values:{isEntering:l,isExiting:a,state:s}});return b.createElement(fe.div,{...f(r(e,{global:!0}),t),...u,ref:c,"data-entering":l||void 0,"data-exiting":a||void 0},o&&b.createElement(Tn,{onDismiss:s.close}),u.children)}function Gn(e){return e.issues[0]?.message??`Invalid input`}function Kn(e){return e!=null&&(typeof e!=`string`||e.trim()!==``)}function qn(e){if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e)}const Jn=[`id`,`email`,`name`],Q=e=>O.custom(t=>typeof t==`object`&&!!t&&typeof Reflect.get(t,e)==`function`),Yn=Q(`get_distinct_id`),Xn=Q(`get_session_id`),Zn=Q(`getUser`),Qn=Q(`getInternalContext`),$n=O.string(),er=O.record(O.string(),O.unknown()),tr=O.object({session_id:O.string().optional()}),$=(e,t)=>{if(typeof window>`u`)return;let n=t.safeParse(Reflect.get(window,e));return n.success?n.data:void 0},nr=()=>{try{let e=$(`posthog`,Yn);if(!e)return;let t=$n.safeParse(e.get_distinct_id());return t.success?t.data:void 0}catch{return}},rr=()=>{try{let e=$(`posthog`,Xn);if(!e)return;let t=$n.safeParse(e.get_session_id());return t.success?t.data:void 0}catch{return}},ir=()=>{try{let e=$(`DD_RUM`,Zn);if(!e)return;let t=er.safeParse(e.getUser());return!t.success||Object.keys(t.data).length===0?void 0:t.data}catch{return}},ar=()=>{try{let e=$(`DD_RUM`,Qn);if(!e)return;let t=tr.safeParse(e.getInternalContext());return t.success?t.data.session_id:void 0}catch{return}},or=e=>{let t={...e};if(Object.keys(t).length>=20)return t;let n=ir(),r;if(n)try{r=JSON.stringify(n)}catch{r=void 0}let i=[[`posthog_distinct_id`,nr()],[`posthog_session_id`,rr()],[`datadog_rum_user`,r],[`datadog_rum_session_id`,ar()],...Jn.map(e=>[`datadog_rum_user_${e}`,qn(n?.[e])])];for(let[e,n]of i){if(Object.keys(t).length>=20)break;if(Object.prototype.hasOwnProperty.call(t,e)||!Kn(n))continue;let r=me.safeParse(e),i=me.safeParse(n);!r.success||!i.success||(t[r.data]=i.data)}return t},sr=(e,t=!1)=>t?or(e):e,cr=x({}),lr=()=>C(cr),ur=x({}),dr=({type:e,children:t})=>{let n=T(()=>({type:e}),[e]);return k(ur.Provider,{value:n,children:t})},fr=()=>C(ur),pr=x(null),mr=({children:e,surveyId:t,publishableKey:n,respondent:r,metadata:i={},autoInjectAnalyticsMetadata:a=!1,apiBaseUrl:s})=>{let{type:c}=fr(),l=lr(),u=l.version??`0.7.5`,d=l.build,f=E(!1),[p,m]=D(),h=o({publishableKey:n,apiBaseUrl:s});w(()=>{(async()=>{f.current=!1,m(void 0);try{let e=await h.get(`api/v1/cfti/${t}`).json(),n=he.safeParse(e);if(!n.success)return;m(n.data)}catch{}})()},[h,t]);let g=S(async({answers:e})=>{let n=crypto.randomUUID(),o=sr(i,a);await h.put(`api/v1/cfti/${t}/response/${n}`,{json:{respondent:r,data:e,metadata:o,telemetry:{...c!==void 0&&{type:c},version:u,...d&&{build:d}}}})},[a,d,h,i,r,t,u,c]),_=S(()=>{h.post(`api/v1/cfti/${t}/respondent/${r}/event`,{json:{type:`dismiss`}}).catch(()=>{})},[h,r,t]);return w(()=>{f.current||p&&r&&(f.current=!0,h.post(`api/v1/cfti/${t}/respondent/${r}/event`,{json:{type:`view`}}).catch(()=>{}))},[h,r,p,t]),p?k(pr.Provider,{value:{submit:g,dismiss:_,surveyId:t,survey:p,metadata:i},children:e}):null},hr=e=>C(pr)?k(Se,{children:e.children}):k(mr,{...e}),gr=()=>{let e=C(pr);if(!e)throw Error(`useSurvey must be used within a SurveyProvider`);return e},_r=()=>{let[e,t]=D(!1);return w(()=>{let e=e=>{let n=ge.safeParse(e);n.error||t(n.data.detail.isRecording)};return document.addEventListener(_e,e),()=>{document.removeEventListener(_e,e)}},[]),e},vr=({className:e,iconClassName:t,onClose:n})=>_r()?null:k(`button`,{type:`button`,className:e,"aria-label":`Dismiss`,onClick:n,children:k(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 16 16`,fill:`none`,className:t,children:k(`path`,{fill:`currentColor`,fillRule:`evenodd`,d:`M3.53 3.529c.26-.26.682-.26.942 0l3.529 3.528 3.528-3.528a.667.667 0 0 1 .943.942L8.943 8l3.53 3.528a.667.667 0 0 1-.944.943L8.001 8.943 4.472 12.47a.667.667 0 1 1-.943-.943L7.058 8 3.529 4.47a.667.667 0 0 1 0-.942Z`,clipRule:`evenodd`})})}),yr=({children:e,classNames:t,isDismissable:n,onDismiss:r,onClose:i,closeOnFinishMs:a,isSubmitted:o,onSubmitted:s})=>{let{survey:c,surveyId:l,dismiss:u}=gr(),[d,f]=D(!1);return xe(()=>{c&&i?.()},d?a:null),Ce(Ln,{"aria-label":`Survey`,id:`${l}-popover`,className:A(`confetti-modal-dialog ${ve}`,t?.dialog),children:[n&&k(vr,{className:A(`confetti-modal-dialog-close`,t?.closeButton),iconClassName:t?.icon,onClose:async()=>{!o&&!d&&(await u(),r?.()),i?.()}}),typeof e==`function`?e({setIsSubmitted:()=>s?.(),setIsFinished:()=>f(!0)}):e]})},br=({children:e,classNames:t,onDismiss:n,onClose:r,isDismissable:i=!0,closeOnFinishMs:a=3e3})=>{let{dismiss:o}=gr(),[s,c]=D(!1);return k(Hn,{isOpen:!0,isDismissable:i,isKeyboardDismissDisabled:!i,onOpenChange:async e=>{e||(s||(await o(),n?.()),r?.())},className:A(`confetti-modal-overlay ${ve}`,t?.overlay),children:k(Bn,{className:A(`confetti-modal ${ve}`,t?.modal),children:k(yr,{classNames:t,isDismissable:i,onDismiss:n,onClose:r,closeOnFinishMs:a,isSubmitted:s,onSubmitted:()=>c(!0),children:e})})})};export{pr as a,dr as c,kt as d,G as f,Ee as g,Oe as h,_r as i,Gn as l,je as m,yr as n,hr as o,Ze as p,vr as r,gr as s,br as t,Ft as u};
@@ -1 +1 @@
1
- import{n as e}from"./ModalContainer-Ig9sgCgG.js";export{e as UnstableModalContent};
1
+ import{n as e}from"./ModalContainer-BmgfXemR.js";export{e as UnstableModalContent};
@@ -1,6 +1,6 @@
1
1
  import { n as ModalContainerProps, t as ModalContainer } from "./ModalContainer-CbbuRuFl.js";
2
2
  import { c as RatingQuestionProperties, d as TextQuestionProperties, l as SingleSelectQuestionProperties, s as MultiSelectQuestionProperties, u as StatementQuestionProperties } from "./index-CER9nZlw.js";
3
- import { C as ConfettiState, _ as useSurvey, a as BaseFieldProps, b as Answer, c as ConfettiProviderProps, d as RespondentVisibilityProviderProps, g as SurveyProviderProps, h as SurveyProvider, i as BugReportOptions, k as Question, l as RespondentVisibilityContext, m as SurveyContext, n as Confetti, o as Question$1, p as useRespondentVisibility, r as ConfettiProps, s as ConfettiProvider, t as BaseConfettiProps, u as RespondentVisibilityProvider, v as ConfettiController, y as ConfettiControllerProps } from "./Confetti-CWASNLFp.js";
3
+ import { C as ConfettiState, _ as useSurvey, a as BaseFieldProps, b as Answer, c as ConfettiProviderProps, d as RespondentVisibilityProviderProps, g as SurveyProviderProps, h as SurveyProvider, i as BugReportOptions, k as Question, l as RespondentVisibilityContext, m as SurveyContext, n as Confetti, o as Question$1, p as useRespondentVisibility, r as ConfettiProps, s as ConfettiProvider, t as BaseConfettiProps, u as RespondentVisibilityProvider, v as ConfettiController, y as ConfettiControllerProps } from "./Confetti-CK34OURL.js";
4
4
  import { HTMLAttributes, JSX, PropsWithChildren, SVGProps } from "react";
5
5
 
6
6
  //#region src/components/container/PopoverContainer.d.ts
@@ -265,8 +265,9 @@ interface FlowProps {
265
265
  * (Next/Submit, or auto-progress) normally commits an answer; a respondent
266
266
  * who instead leaves via `backButton` would otherwise lose whatever they
267
267
  * typed, since it only lived in this component's local state. Wired to
268
- * `backButton`'s `onPress` below, and skipped for empty/untouched answers so
269
- * an unanswered required question is not wrongly marked as attempted.
268
+ * `backButton`'s `onPress` below. Untouched empties are skipped so an
269
+ * unanswered required question is not marked attempted, but clearing a
270
+ * previously committed answer still flushes so the stale value is not kept.
270
271
  */
271
272
  saveAnswer?: (answer: Answer) => void;
272
273
  }
@@ -1 +1 @@
1
- import{n as e,t}from"./DefaultConfettiTrigger-CqpZGyoA.js";import{a as n,o as r,r as i,s as a,t as o}from"./ModalContainer-Ig9sgCgG.js";import{a as s,c,d as l,f as u,h as d,i as f,l as p,m,n as h,o as g,p as _,r as v,s as y,t as b,u as x}from"./Embed-BETAkvMX.js";import{ErrorBoundary as S}from"react-error-boundary";import{Fragment as C,jsx as w}from"react/jsx-runtime";const T=({children:e,respondent:t,isSurveyVisible:n,...i})=>{let{respondent:a}=m();return w(r,{...i,respondent:a,children:e})},E=({children:e,...t})=>w(_,{...t,children:w(T,{...t,children:e})}),D=({children:e,onFinished:t,shouldAutoSubmit:n,...r})=>w(S,{fallback:w(C,{}),children:w(E,{...r,children:w(d,{shouldAutoSubmit:n,onFinished:t,children:e})})});export{v as BackButton,i as CloseButton,D as Confetti,d as ConfettiController,E as ConfettiProvider,e as ConfettiTriggerIcon,t as DefaultConfettiTrigger,b as Embed,h as Flow,x as FreeText,o as ModalContainer,p as MultiChoice,l as PopoverContainer,c as Rating,u as RespondentVisibilityContext,_ as RespondentVisibilityProvider,y as SingleChoice,g as Statement,n as SurveyContext,r as SurveyProvider,s as SurveyQuestionFactory,f as ThankYouMessage,m as useRespondentVisibility,a as useSurvey};
1
+ import{n as e,t}from"./DefaultConfettiTrigger-CqpZGyoA.js";import{a as n,o as r,r as i,s as a,t as o}from"./ModalContainer-BmgfXemR.js";import{a as s,c,d as l,f as u,h as d,i as f,l as p,m,n as h,o as g,p as _,r as v,s as y,t as b,u as x}from"./Embed-CQISAOtU.js";import{ErrorBoundary as S}from"react-error-boundary";import{Fragment as C,jsx as w}from"react/jsx-runtime";const T=({children:e,respondent:t,isSurveyVisible:n,...i})=>{let{respondent:a}=m();return w(r,{...i,respondent:a,children:e})},E=({children:e,...t})=>w(_,{...t,children:w(T,{...t,children:e})}),D=({children:e,onFinished:t,shouldAutoSubmit:n,...r})=>w(S,{fallback:w(C,{}),children:w(E,{...r,children:w(d,{shouldAutoSubmit:n,onFinished:t,children:e})})});export{v as BackButton,i as CloseButton,D as Confetti,d as ConfettiController,E as ConfettiProvider,e as ConfettiTriggerIcon,t as DefaultConfettiTrigger,b as Embed,h as Flow,x as FreeText,o as ModalContainer,p as MultiChoice,l as PopoverContainer,c as Rating,u as RespondentVisibilityContext,_ as RespondentVisibilityProvider,y as SingleChoice,g as Statement,n as SurveyContext,r as SurveyProvider,s as SurveyQuestionFactory,f as ThankYouMessage,m as useRespondentVisibility,a as useSurvey};
package/build/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { D as OptionallyDismissable, E as Finishable, O as Proxyable, S as ConfettiContainer, T as Dismissable, t as BaseConfettiProps, w as Containable, x as Closable } from "./Confetti-CWASNLFp.js";
1
+ import { D as OptionallyDismissable, E as Finishable, O as Proxyable, S as ConfettiContainer, T as Dismissable, t as BaseConfettiProps, w as Containable, x as Closable } from "./Confetti-CK34OURL.js";
2
2
 
3
3
  //#region src/contracts/api.d.ts
4
4
  type Template = 'TriggerPopover' | 'Popover' | 'Modal' | 'Embedded' | 'Stepper';
package/build/index.js CHANGED
@@ -1 +1 @@
1
- import{a as e,i as t,o as n,r,t as i}from"./DefaultConfettiTrigger-CqpZGyoA.js";import{G as a}from"./Button-LiaNjkvk.js";import{useCallback as o,useEffect as s,useMemo as c,useRef as l,useState as u}from"react";import{ErrorBoundary as d}from"react-error-boundary";import{useLocalStorage as f,useSessionStorage as p}from"usehooks-ts";import{Fragment as m,jsx as h,jsxs as g}from"react/jsx-runtime";const _=`confetti:ready`,v=`https://confetti.gov.sg`,y={promise:null,channel:null,url:null};function b(){y.promise=null,y.channel=null,y.url=null}function x(){y.promise=null}function S(e){return new URL(``,e).href}function C(e,t,n){let r=new URL(e);return r.pathname.endsWith(`/`)||(r.pathname+=`/`),new URL(`widget/v1/${t}.${n}`,r).href}function w(e=`stable`,t=v){if(typeof window>`u`)return Promise.reject(Error(`[confetti] No window found, SSR environments are not supported`));let n;try{n=S(t)}catch{return Promise.reject(Error(`[confetti] Invalid URL: ${t}`))}if(y.promise)return y.channel===e?y.url===n?y.promise:Promise.reject(Error(`[confetti] Cannot switch baseUrl from ${String(y.url)} to ${n} on the same page`)):Promise.reject(Error(`[confetti] Cannot switch channel from ${String(y.channel)} to ${e} on the same page`));let r=window.__confetti;if(r){let t=String(r.channel);return t===e?y.url!==null&&y.url!==n?Promise.reject(Error(`[confetti] Cannot switch URL from ${y.url} to ${n} on the same page`)):k(r):Promise.reject(Error(`[confetti] Cannot switch channel from ${t} to ${e} on the same page`))}let i=E(n,e);return y.channel=e,y.url=n,y.promise=i,i}function T(e=`stable`,t=v){if(typeof window>`u`)return Promise.resolve();let n;try{n=S(t)}catch{return Promise.reject(Error(`[confetti] Invalid URL: ${t}`))}return D(n,e)}async function E(e,t){let n=!!document.querySelector(`link[data-confetti-loader]`),r,i=new Promise((e,t)=>{r=setTimeout(()=>t(Error(`[confetti] Script load timeout`)),1e4)});try{let[,n]=await Promise.race([i,Promise.all([D(e,t),O(e,t)])]);return clearTimeout(r),x(),n}catch(e){throw clearTimeout(r),n||document.querySelector(`link[data-confetti-loader]`)?.remove(),document.querySelector(`script[data-confetti-loader]`)?.remove(),b(),e}}function D(e,t){return new Promise((n,r)=>{if(document.querySelector(`link[data-confetti-loader]`)){n();return}let i=document.createElement(`link`);i.rel=`stylesheet`,i.href=C(e,t,`css`),i.crossOrigin=`anonymous`,i.dataset.confettiLoader=``,i.onload=()=>n(),i.onerror=e=>{i.remove(),console.error(`[confetti] Stylesheet load failed. If your site uses a Content-Security-Policy, ensure style-src includes https://confetti.gov.sg (and script-src for the bundle).`),r(Error(`[confetti] Stylesheet load failed (check CSP allowlist for confetti.gov.sg)`,{cause:e}))},document.head.appendChild(i)})}function O(e,t){return new Promise((n,r)=>{let i=()=>{let e=window.__confetti;if(!e){r(Error(`[confetti] Ready event fired but global state is missing`));return}k(e).then(n,r)};if(window.addEventListener(_,i,{once:!0}),document.querySelector(`script[data-confetti-loader]`))return;let a=document.createElement(`script`);a.src=C(e,t,`js`),a.async=!0,a.crossOrigin=`anonymous`,a.dataset.confettiLoader=``,a.onerror=e=>{window.removeEventListener(_,i),console.error(`[confetti] Script load failed. If your site uses a Content-Security-Policy, ensure script-src includes https://confetti.gov.sg (and style-src for the CSS).`),r(Error(`[confetti] Script load failed (check CSP allowlist for confetti.gov.sg)`,{cause:e}))},document.head.appendChild(a)})}function k(e){let t=Number(e.protocolVersion);return Number.isFinite(t)?t===1?Promise.resolve(e):Promise.reject(Error(`[confetti] Wire protocol v${t} does not match expected v1`)):Promise.reject(Error(`[confetti] Wire protocol value is not a number (got ${typeof e.protocolVersion})`))}function A(e){let t=l(null),n=l(null),r=l(e.props),i=e.channel??`stable`,a=e.scriptBaseUrl??`https://confetti.gov.sg`;r.current=e.props,s(()=>{if(!e.element)return;let o=!1;return w(i,a).then(i=>{o||!e.element||(n.current=i,t.current=i.mount({template:e.template,element:e.element,props:r.current}))}).catch(t=>e.onError?.(t instanceof Error?t:Error(String(t)))),()=>{o=!0,t.current&&n.current&&n.current.unmount(t.current),t.current=null,n.current=null}},[i,a,e.element,e.template]),s(()=>{t.current&&n.current&&n.current.update(t.current,e.props)},[e.props])}function j(e){let[t,n]=u(null);return A({...e,element:t}),h(d,{fallback:h(m,{}),children:h(`div`,{ref:n,"data-confetti-mount":!0})})}function M(i){let o=e({surveyId:i.surveyId,override:i.respondent}),s=a({publishableKey:i.publishableKey,apiBaseUrl:i.proxyUrl}),{isAvailable:l,isSettled:f}=r({client:s,surveyId:i.surveyId}),{state:p,isSettled:g}=t({client:s,surveyId:i.surveyId,respondent:o}),_=n(p,i.isSurveyVisible),[v,y]=u(!1),b=f&&l&&g&&_&&!v,x=i.onFinished,S=i.onClose,C=c(()=>({surveyId:i.surveyId,publishableKey:i.publishableKey,respondent:o,metadata:i.metadata,autoInjectAnalyticsMetadata:i.autoInjectAnalyticsMetadata,apiBaseUrl:i.proxyUrl,telemetry:{version:`0.7.4`},onFinished:x,onClose:()=>{y(!0),S?.()},options:i.options}),[i.surveyId,i.publishableKey,o,i.metadata,i.autoInjectAnalyticsMetadata,i.proxyUrl,i.options,x,S]);if(!b)return null;let w=h(j,{template:`Embedded`,channel:i.channel,scriptBaseUrl:i.proxyUrl,onError:i.onError,props:C});return h(d,{fallback:h(m,{}),children:i.container?i.container({survey:w}):w})}function N(i){let o=e({surveyId:i.surveyId,override:i.respondent}),s=a({publishableKey:i.publishableKey,apiBaseUrl:i.proxyUrl}),{isAvailable:l,isSettled:f}=r({client:s,surveyId:i.surveyId}),{state:p,isSettled:g}=t({client:s,surveyId:i.surveyId,respondent:o}),_=n(p,i.isSurveyVisible),[v,y]=u(!1),b=f&&l&&g&&_&&!v,x=i.onFinished,S=i.onDismiss,C=i.onClose,w=c(()=>({surveyId:i.surveyId,publishableKey:i.publishableKey,respondent:o,metadata:i.metadata,autoInjectAnalyticsMetadata:i.autoInjectAnalyticsMetadata,apiBaseUrl:i.proxyUrl,telemetry:{version:`0.7.4`},closeOnFinishMs:i.closeOnFinishMs,isDismissable:i.isDismissable,onFinished:x,onClose:()=>{y(!0),C?.()},onDismiss:()=>{S?.()},options:i.options}),[i.surveyId,i.publishableKey,o,i.metadata,i.autoInjectAnalyticsMetadata,i.proxyUrl,i.closeOnFinishMs,i.isDismissable,i.options,x,S,C]);return b?h(d,{fallback:h(m,{}),children:h(j,{template:`Modal`,channel:i.channel,scriptBaseUrl:i.proxyUrl,onError:i.onError,props:w})}):null}function P(i){let o=e({surveyId:i.surveyId,override:i.respondent}),s=a({publishableKey:i.publishableKey,apiBaseUrl:i.proxyUrl}),{isAvailable:l,isSettled:f}=r({client:s,surveyId:i.surveyId}),{state:p,isSettled:g}=t({client:s,surveyId:i.surveyId,respondent:o}),_=n(p,i.isSurveyVisible),[v,y]=u(!1),b=f&&l&&g&&_&&!v,x=i.onFinished,S=i.onDismiss,C=i.onClose,w=c(()=>({surveyId:i.surveyId,publishableKey:i.publishableKey,respondent:o,metadata:i.metadata,autoInjectAnalyticsMetadata:i.autoInjectAnalyticsMetadata,apiBaseUrl:i.proxyUrl,telemetry:{version:`0.7.4`},closeOnFinishMs:i.closeOnFinishMs,onFinished:x,onClose:()=>{y(!0),C?.()},onDismiss:()=>{S?.()},options:i.options}),[i.surveyId,i.publishableKey,o,i.metadata,i.autoInjectAnalyticsMetadata,i.proxyUrl,i.closeOnFinishMs,i.options,x,S,C]);return b?h(d,{fallback:h(m,{}),children:h(j,{template:`Popover`,channel:i.channel,scriptBaseUrl:i.proxyUrl,onError:i.onError,props:w})}):null}function F(i){let o=e({surveyId:i.surveyId,override:i.respondent}),s=a({publishableKey:i.publishableKey,apiBaseUrl:i.proxyUrl}),{isAvailable:l,isSettled:f}=r({client:s,surveyId:i.surveyId}),{state:p,isSettled:g}=t({client:s,surveyId:i.surveyId,respondent:o}),_=n(p,i.isSurveyVisible),[v,y]=u(!1),b=f&&l&&g&&_&&!v,x=i.onFinished,S=i.onClose,C=c(()=>({surveyId:i.surveyId,publishableKey:i.publishableKey,respondent:o,metadata:i.metadata,autoInjectAnalyticsMetadata:i.autoInjectAnalyticsMetadata,apiBaseUrl:i.proxyUrl,telemetry:{version:`0.7.4`},onFinished:x,onClose:()=>{y(!0),S?.()},options:i.options}),[i.surveyId,i.publishableKey,o,i.metadata,i.autoInjectAnalyticsMetadata,i.proxyUrl,i.options,x,S]);if(!b)return null;let w=h(j,{template:`Stepper`,channel:i.channel,scriptBaseUrl:i.proxyUrl,onError:i.onError,props:C});return h(d,{fallback:h(m,{}),children:i.container?i.container({survey:w}):w})}function I(f){let p=e({surveyId:f.surveyId,override:f.respondent}),_=a({publishableKey:f.publishableKey,apiBaseUrl:f.proxyUrl}),{isAvailable:v,isSettled:y}=r({client:_,surveyId:f.surveyId}),{state:b,isSettled:x}=t({client:_,surveyId:f.surveyId,respondent:p}),[S,C]=u(!1),w=y&&v&&x&&S&&n(b,f.isSurveyVisible),[E,D]=u(!1),[O,k]=u(!1),{onError:A,channel:M,proxyUrl:N}=f,P=l(A);s(()=>{P.current=A},[A]),s(()=>{if(!(y&&v))return;let e=!1;return T(M,N).then(()=>{e||C(!0)}).catch(e=>P.current?.(e instanceof Error?e:Error(String(e)))),()=>{e=!0}},[y,v,M,N]);let F=w&&E,I=o(()=>D(!0),[]),L=f.onFinished,R=c(()=>({surveyId:f.surveyId,publishableKey:f.publishableKey,respondent:p,metadata:f.metadata,autoInjectAnalyticsMetadata:f.autoInjectAnalyticsMetadata,apiBaseUrl:f.proxyUrl,telemetry:{version:`0.7.4`},isOpen:E,onFinished:()=>{k(!0),L?.()},onClose:()=>{D(!1)},onDismiss:()=>{D(!1)},options:f.options}),[f.surveyId,f.publishableKey,p,f.metadata,f.autoInjectAnalyticsMetadata,f.proxyUrl,f.options,E,L]);return w?g(d,{fallback:h(m,{}),children:[f.trigger?f.trigger({onClick:I,isOpen:E,isSubmitted:O}):h(i,{onClick:I,isWidgetOpen:E}),F?h(j,{template:`TriggerPopover`,channel:f.channel,scriptBaseUrl:f.proxyUrl,onError:f.onError,props:R}):null]}):null}function L({surveyId:e,publishableKey:n,respondent:i,proxyUrl:o}){let s=a({publishableKey:n,apiBaseUrl:o}),{isAvailable:c,isSettled:l}=r({client:s,surveyId:e}),{state:u,isSettled:d}=t({client:s,surveyId:e,respondent:i});if(!i)return null;if(!(!l||!d))return c?{lastRespondedAt:u.lastRespondedAt?new Date(u.lastRespondedAt):null,lastDismissedAt:u.lastDismissedAt?new Date(u.lastDismissedAt):null}:null}const R=({delay:e})=>{let[t,n]=u(!1),r=c(()=>e,[]);return s(()=>{let e=setTimeout(()=>{n(!0)},r);return()=>clearTimeout(e)},[]),{isVisible:t}},z=({visits:e,respondent:t})=>{let[n,r]=f(`cfti:${c(()=>window.location.pathname,[])}:visits:${t??``}`,0);return s(()=>{r(e=>e+1)},[r]),{isVisible:n>=e,reset:o(()=>r(0),[r])}},B=({visits:e,respondent:t})=>{let[n,r]=p(`cfti:${c(()=>window.location.pathname,[])}:visits:${t??``}`,0);return s(()=>{r(e=>e+1)},[r]),{isVisible:n>=e,reset:o(()=>r(0),[r])}},V=({threshold:e})=>{let[t,n]=u(()=>typeof window>`u`?!1:window.scrollY>=e);return s(()=>{let t=()=>{window.scrollY>=e&&n(!0)};return window.addEventListener(`scroll`,t,{passive:!0}),()=>window.removeEventListener(`scroll`,t)},[e]),{isVisible:t}};export{M as EmbeddedConfetti,N as ModalConfetti,P as PopoverConfetti,F as StepperConfetti,I as TriggerPopoverConfetti,L as useRespondentState,R as useVisibleAfterDelay,z as useVisibleAfterPageVisits,V as useVisibleAfterScroll,B as useVisibleAfterSessionPageVisits};
1
+ import{a as e,i as t,o as n,r,t as i}from"./DefaultConfettiTrigger-CqpZGyoA.js";import{G as a}from"./Button-LiaNjkvk.js";import{useCallback as o,useEffect as s,useMemo as c,useRef as l,useState as u}from"react";import{ErrorBoundary as d}from"react-error-boundary";import{useLocalStorage as f,useSessionStorage as p}from"usehooks-ts";import{Fragment as m,jsx as h,jsxs as g}from"react/jsx-runtime";const _=`confetti:ready`,v=`https://confetti.gov.sg`,y={promise:null,channel:null,url:null};function b(){y.promise=null,y.channel=null,y.url=null}function x(){y.promise=null}function S(e){return new URL(``,e).href}function C(e,t,n){let r=new URL(e);return r.pathname.endsWith(`/`)||(r.pathname+=`/`),new URL(`widget/v1/${t}.${n}`,r).href}function w(e=`stable`,t=v){if(typeof window>`u`)return Promise.reject(Error(`[confetti] No window found, SSR environments are not supported`));let n;try{n=S(t)}catch{return Promise.reject(Error(`[confetti] Invalid URL: ${t}`))}if(y.promise)return y.channel===e?y.url===n?y.promise:Promise.reject(Error(`[confetti] Cannot switch baseUrl from ${String(y.url)} to ${n} on the same page`)):Promise.reject(Error(`[confetti] Cannot switch channel from ${String(y.channel)} to ${e} on the same page`));let r=window.__confetti;if(r){let t=String(r.channel);return t===e?y.url!==null&&y.url!==n?Promise.reject(Error(`[confetti] Cannot switch URL from ${y.url} to ${n} on the same page`)):k(r):Promise.reject(Error(`[confetti] Cannot switch channel from ${t} to ${e} on the same page`))}let i=E(n,e);return y.channel=e,y.url=n,y.promise=i,i}function T(e=`stable`,t=v){if(typeof window>`u`)return Promise.resolve();let n;try{n=S(t)}catch{return Promise.reject(Error(`[confetti] Invalid URL: ${t}`))}return D(n,e)}async function E(e,t){let n=!!document.querySelector(`link[data-confetti-loader]`),r,i=new Promise((e,t)=>{r=setTimeout(()=>t(Error(`[confetti] Script load timeout`)),1e4)});try{let[,n]=await Promise.race([i,Promise.all([D(e,t),O(e,t)])]);return clearTimeout(r),x(),n}catch(e){throw clearTimeout(r),n||document.querySelector(`link[data-confetti-loader]`)?.remove(),document.querySelector(`script[data-confetti-loader]`)?.remove(),b(),e}}function D(e,t){return new Promise((n,r)=>{if(document.querySelector(`link[data-confetti-loader]`)){n();return}let i=document.createElement(`link`);i.rel=`stylesheet`,i.href=C(e,t,`css`),i.crossOrigin=`anonymous`,i.dataset.confettiLoader=``,i.onload=()=>n(),i.onerror=e=>{i.remove(),console.error(`[confetti] Stylesheet load failed. If your site uses a Content-Security-Policy, ensure style-src includes https://confetti.gov.sg (and script-src for the bundle).`),r(Error(`[confetti] Stylesheet load failed (check CSP allowlist for confetti.gov.sg)`,{cause:e}))},document.head.appendChild(i)})}function O(e,t){return new Promise((n,r)=>{let i=()=>{let e=window.__confetti;if(!e){r(Error(`[confetti] Ready event fired but global state is missing`));return}k(e).then(n,r)};if(window.addEventListener(_,i,{once:!0}),document.querySelector(`script[data-confetti-loader]`))return;let a=document.createElement(`script`);a.src=C(e,t,`js`),a.async=!0,a.crossOrigin=`anonymous`,a.dataset.confettiLoader=``,a.onerror=e=>{window.removeEventListener(_,i),console.error(`[confetti] Script load failed. If your site uses a Content-Security-Policy, ensure script-src includes https://confetti.gov.sg (and style-src for the CSS).`),r(Error(`[confetti] Script load failed (check CSP allowlist for confetti.gov.sg)`,{cause:e}))},document.head.appendChild(a)})}function k(e){let t=Number(e.protocolVersion);return Number.isFinite(t)?t===1?Promise.resolve(e):Promise.reject(Error(`[confetti] Wire protocol v${t} does not match expected v1`)):Promise.reject(Error(`[confetti] Wire protocol value is not a number (got ${typeof e.protocolVersion})`))}function A(e){let t=l(null),n=l(null),r=l(e.props),i=e.channel??`stable`,a=e.scriptBaseUrl??`https://confetti.gov.sg`;r.current=e.props,s(()=>{if(!e.element)return;let o=!1;return w(i,a).then(i=>{o||!e.element||(n.current=i,t.current=i.mount({template:e.template,element:e.element,props:r.current}))}).catch(t=>e.onError?.(t instanceof Error?t:Error(String(t)))),()=>{o=!0,t.current&&n.current&&n.current.unmount(t.current),t.current=null,n.current=null}},[i,a,e.element,e.template]),s(()=>{t.current&&n.current&&n.current.update(t.current,e.props)},[e.props])}function j(e){let[t,n]=u(null);return A({...e,element:t}),h(d,{fallback:h(m,{}),children:h(`div`,{ref:n,"data-confetti-mount":!0})})}function M(i){let o=e({surveyId:i.surveyId,override:i.respondent}),s=a({publishableKey:i.publishableKey,apiBaseUrl:i.proxyUrl}),{isAvailable:l,isSettled:f}=r({client:s,surveyId:i.surveyId}),{state:p,isSettled:g}=t({client:s,surveyId:i.surveyId,respondent:o}),_=n(p,i.isSurveyVisible),[v,y]=u(!1),b=f&&l&&g&&_&&!v,x=i.onFinished,S=i.onClose,C=c(()=>({surveyId:i.surveyId,publishableKey:i.publishableKey,respondent:o,metadata:i.metadata,autoInjectAnalyticsMetadata:i.autoInjectAnalyticsMetadata,apiBaseUrl:i.proxyUrl,telemetry:{version:`0.7.5`},onFinished:x,onClose:()=>{y(!0),S?.()},options:i.options}),[i.surveyId,i.publishableKey,o,i.metadata,i.autoInjectAnalyticsMetadata,i.proxyUrl,i.options,x,S]);if(!b)return null;let w=h(j,{template:`Embedded`,channel:i.channel,scriptBaseUrl:i.proxyUrl,onError:i.onError,props:C});return h(d,{fallback:h(m,{}),children:i.container?i.container({survey:w}):w})}function N(i){let o=e({surveyId:i.surveyId,override:i.respondent}),s=a({publishableKey:i.publishableKey,apiBaseUrl:i.proxyUrl}),{isAvailable:l,isSettled:f}=r({client:s,surveyId:i.surveyId}),{state:p,isSettled:g}=t({client:s,surveyId:i.surveyId,respondent:o}),_=n(p,i.isSurveyVisible),[v,y]=u(!1),b=f&&l&&g&&_&&!v,x=i.onFinished,S=i.onDismiss,C=i.onClose,w=c(()=>({surveyId:i.surveyId,publishableKey:i.publishableKey,respondent:o,metadata:i.metadata,autoInjectAnalyticsMetadata:i.autoInjectAnalyticsMetadata,apiBaseUrl:i.proxyUrl,telemetry:{version:`0.7.5`},closeOnFinishMs:i.closeOnFinishMs,isDismissable:i.isDismissable,onFinished:x,onClose:()=>{y(!0),C?.()},onDismiss:()=>{S?.()},options:i.options}),[i.surveyId,i.publishableKey,o,i.metadata,i.autoInjectAnalyticsMetadata,i.proxyUrl,i.closeOnFinishMs,i.isDismissable,i.options,x,S,C]);return b?h(d,{fallback:h(m,{}),children:h(j,{template:`Modal`,channel:i.channel,scriptBaseUrl:i.proxyUrl,onError:i.onError,props:w})}):null}function P(i){let o=e({surveyId:i.surveyId,override:i.respondent}),s=a({publishableKey:i.publishableKey,apiBaseUrl:i.proxyUrl}),{isAvailable:l,isSettled:f}=r({client:s,surveyId:i.surveyId}),{state:p,isSettled:g}=t({client:s,surveyId:i.surveyId,respondent:o}),_=n(p,i.isSurveyVisible),[v,y]=u(!1),b=f&&l&&g&&_&&!v,x=i.onFinished,S=i.onDismiss,C=i.onClose,w=c(()=>({surveyId:i.surveyId,publishableKey:i.publishableKey,respondent:o,metadata:i.metadata,autoInjectAnalyticsMetadata:i.autoInjectAnalyticsMetadata,apiBaseUrl:i.proxyUrl,telemetry:{version:`0.7.5`},closeOnFinishMs:i.closeOnFinishMs,onFinished:x,onClose:()=>{y(!0),C?.()},onDismiss:()=>{S?.()},options:i.options}),[i.surveyId,i.publishableKey,o,i.metadata,i.autoInjectAnalyticsMetadata,i.proxyUrl,i.closeOnFinishMs,i.options,x,S,C]);return b?h(d,{fallback:h(m,{}),children:h(j,{template:`Popover`,channel:i.channel,scriptBaseUrl:i.proxyUrl,onError:i.onError,props:w})}):null}function F(i){let o=e({surveyId:i.surveyId,override:i.respondent}),s=a({publishableKey:i.publishableKey,apiBaseUrl:i.proxyUrl}),{isAvailable:l,isSettled:f}=r({client:s,surveyId:i.surveyId}),{state:p,isSettled:g}=t({client:s,surveyId:i.surveyId,respondent:o}),_=n(p,i.isSurveyVisible),[v,y]=u(!1),b=f&&l&&g&&_&&!v,x=i.onFinished,S=i.onClose,C=c(()=>({surveyId:i.surveyId,publishableKey:i.publishableKey,respondent:o,metadata:i.metadata,autoInjectAnalyticsMetadata:i.autoInjectAnalyticsMetadata,apiBaseUrl:i.proxyUrl,telemetry:{version:`0.7.5`},onFinished:x,onClose:()=>{y(!0),S?.()},options:i.options}),[i.surveyId,i.publishableKey,o,i.metadata,i.autoInjectAnalyticsMetadata,i.proxyUrl,i.options,x,S]);if(!b)return null;let w=h(j,{template:`Stepper`,channel:i.channel,scriptBaseUrl:i.proxyUrl,onError:i.onError,props:C});return h(d,{fallback:h(m,{}),children:i.container?i.container({survey:w}):w})}function I(f){let p=e({surveyId:f.surveyId,override:f.respondent}),_=a({publishableKey:f.publishableKey,apiBaseUrl:f.proxyUrl}),{isAvailable:v,isSettled:y}=r({client:_,surveyId:f.surveyId}),{state:b,isSettled:x}=t({client:_,surveyId:f.surveyId,respondent:p}),[S,C]=u(!1),w=y&&v&&x&&S&&n(b,f.isSurveyVisible),[E,D]=u(!1),[O,k]=u(!1),{onError:A,channel:M,proxyUrl:N}=f,P=l(A);s(()=>{P.current=A},[A]),s(()=>{if(!(y&&v))return;let e=!1;return T(M,N).then(()=>{e||C(!0)}).catch(e=>P.current?.(e instanceof Error?e:Error(String(e)))),()=>{e=!0}},[y,v,M,N]);let F=w&&E,I=o(()=>D(!0),[]),L=f.onFinished,R=c(()=>({surveyId:f.surveyId,publishableKey:f.publishableKey,respondent:p,metadata:f.metadata,autoInjectAnalyticsMetadata:f.autoInjectAnalyticsMetadata,apiBaseUrl:f.proxyUrl,telemetry:{version:`0.7.5`},isOpen:E,onFinished:()=>{k(!0),L?.()},onClose:()=>{D(!1)},onDismiss:()=>{D(!1)},options:f.options}),[f.surveyId,f.publishableKey,p,f.metadata,f.autoInjectAnalyticsMetadata,f.proxyUrl,f.options,E,L]);return w?g(d,{fallback:h(m,{}),children:[f.trigger?f.trigger({onClick:I,isOpen:E,isSubmitted:O}):h(i,{onClick:I,isWidgetOpen:E}),F?h(j,{template:`TriggerPopover`,channel:f.channel,scriptBaseUrl:f.proxyUrl,onError:f.onError,props:R}):null]}):null}function L({surveyId:e,publishableKey:n,respondent:i,proxyUrl:o}){let s=a({publishableKey:n,apiBaseUrl:o}),{isAvailable:c,isSettled:l}=r({client:s,surveyId:e}),{state:u,isSettled:d}=t({client:s,surveyId:e,respondent:i});if(!i)return null;if(!(!l||!d))return c?{lastRespondedAt:u.lastRespondedAt?new Date(u.lastRespondedAt):null,lastDismissedAt:u.lastDismissedAt?new Date(u.lastDismissedAt):null}:null}const R=({delay:e})=>{let[t,n]=u(!1),r=c(()=>e,[]);return s(()=>{let e=setTimeout(()=>{n(!0)},r);return()=>clearTimeout(e)},[]),{isVisible:t}},z=({visits:e,respondent:t})=>{let[n,r]=f(`cfti:${c(()=>window.location.pathname,[])}:visits:${t??``}`,0);return s(()=>{r(e=>e+1)},[r]),{isVisible:n>=e,reset:o(()=>r(0),[r])}},B=({visits:e,respondent:t})=>{let[n,r]=p(`cfti:${c(()=>window.location.pathname,[])}:visits:${t??``}`,0);return s(()=>{r(e=>e+1)},[r]),{isVisible:n>=e,reset:o(()=>r(0),[r])}},V=({threshold:e})=>{let[t,n]=u(()=>typeof window>`u`?!1:window.scrollY>=e);return s(()=>{let t=()=>{window.scrollY>=e&&n(!0)};return window.addEventListener(`scroll`,t,{passive:!0}),()=>window.removeEventListener(`scroll`,t)},[e]),{isVisible:t}};export{M as EmbeddedConfetti,N as ModalConfetti,P as PopoverConfetti,F as StepperConfetti,I as TriggerPopoverConfetti,L as useRespondentState,R as useVisibleAfterDelay,z as useVisibleAfterPageVisits,V as useVisibleAfterScroll,B as useVisibleAfterSessionPageVisits};
package/build/static.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as WithProxyable, D as OptionallyDismissable, S as ConfettiContainer, T as Dismissable, d as RespondentVisibilityProviderProps, f as WithVisibilityControl, t as BaseConfettiProps, w as Containable, x as Closable } from "./Confetti-CWASNLFp.js";
1
+ import { A as WithProxyable, D as OptionallyDismissable, S as ConfettiContainer, T as Dismissable, d as RespondentVisibilityProviderProps, f as WithVisibilityControl, t as BaseConfettiProps, w as Containable, x as Closable } from "./Confetti-CK34OURL.js";
2
2
 
3
3
  //#region src/templates/EmbeddedConfettiContent.d.ts
4
4
  interface EmbeddedConfettiContentProps extends Omit<BaseConfettiProps, 'isSurveyVisible'>, Closable {
package/build/static.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./DefaultConfettiTrigger-CqpZGyoA.js";import{c as t,o as n,t as r}from"./ModalContainer-Ig9sgCgG.js";import{a as i,d as a,h as o,i as s,m as c,n as l,p as u,r as d,t as f}from"./Embed-BETAkvMX.js";import{useState as p}from"react";import{ErrorBoundary as m}from"react-error-boundary";import{Fragment as h,jsx as g,jsxs as _}from"react/jsx-runtime";const v=({onClose:e,...r})=>g(m,{fallback:g(h,{}),children:g(t,{type:`embedded`,children:g(n,{...r,children:g(o,{...r,shouldAutoSubmit:!1,children:({questions:t,update:n,submit:a,isSubmitted:o,errors:c,answers:l})=>o?g(s,{onClose:e}):g(f,{onSubmit:a,children:t.filter(({visible:e})=>!!e).map(e=>g(i,{question:e,defaultAnswer:l[e.id]??void 0,error:c[e.id]||``,maskAllInputs:r.options?.bugReport?.maskAllInputs,onChange:t=>n({question:e.position,answer:t})},e.id))})})})})}),y=e=>{let{respondent:t}=c();return g(v,{...e,respondent:t})};function b(e){let[t,n]=p(!1),{respondent:r,isSurveyVisible:i,proxyUrl:a,container:o,...s}=e;if(t)return null;let c=g(y,{...s,apiBaseUrl:a,onClose:()=>{n(!0),s.onClose?.()}});return g(u,{surveyId:s.surveyId,publishableKey:s.publishableKey,apiBaseUrl:a,respondent:r,isSurveyVisible:i,children:o?o({survey:c}):c})}const x=({onDismiss:e,onClose:a,onFinished:c,closeOnFinishMs:l,isDismissable:u,...d})=>g(m,{fallback:g(h,{}),children:g(t,{type:`modal`,children:g(n,{...d,children:g(r,{onDismiss:e,onClose:a,closeOnFinishMs:l,isDismissable:u,children:({setIsSubmitted:e,setIsFinished:t})=>g(o,{...d,shouldAutoSubmit:!1,onSubmitted:()=>e(),onFinished:()=>{t(),c?.()},children:({questions:e,update:t,errors:n,submit:r,isSubmitted:o,answers:c})=>o?g(s,{onClose:a}):g(f,{onSubmit:r,children:e.filter(({visible:e})=>!!e).map(e=>g(i,{question:e,defaultAnswer:c[e.id]??void 0,error:n[e.id]||``,maskAllInputs:d.options?.bugReport?.maskAllInputs,onChange:n=>t({question:e.position,answer:n})},e.id))})})})})})}),S=e=>{let{respondent:t}=c();return g(x,{...e,respondent:t})};function C(e){let[t,n]=p(!1),{respondent:r,isSurveyVisible:i,proxyUrl:a,...o}=e;return t?null:g(u,{surveyId:o.surveyId,publishableKey:o.publishableKey,apiBaseUrl:a,respondent:r,isSurveyVisible:i,children:g(S,{...o,apiBaseUrl:a,onClose:()=>{n(!0),o.onClose?.()}})})}const w=({onDismiss:e,onClose:r,onFinished:c,closeOnFinishMs:u,...f})=>g(m,{fallback:g(h,{}),children:g(t,{type:`popover`,children:g(n,{...f,children:g(a,{onDismiss:e,onClose:r,closeOnFinishMs:u,children:({setIsSubmitted:e,setIsFinished:t})=>g(o,{...f,shouldAutoSubmit:!0,onSubmitted:()=>e(),onFinished:()=>{t(),c?.()},children:({current:e,questions:t,answers:n,update:a,back:o,canGoBack:c,backButtonLabel:u,saveAnswer:p,isSubmitted:m})=>{let _=e===t.length-1;if(m)return g(s,{onClose:r});let v=t[e];return v?g(l,{isLastQuestion:_,question:v,defaultAnswer:n[v.id]??void 0,backButton:c?g(d,{onPress:o,children:u}):void 0,saveAnswer:e=>p(v.id,e),onSubmit:t=>a({question:e,answer:t}),children:e=>g(i,{maskAllInputs:f.options?.bugReport?.maskAllInputs,...e})},v.id):g(h,{})}})})})})}),T=e=>{let{respondent:t}=c();return g(w,{...e,respondent:t})};function E(e){let[t,n]=p(!1),{respondent:r,isSurveyVisible:i,proxyUrl:a,...o}=e;return t?null:g(u,{surveyId:o.surveyId,publishableKey:o.publishableKey,apiBaseUrl:a,respondent:r,isSurveyVisible:i,children:g(T,{...o,apiBaseUrl:a,onClose:()=>{n(!0),o.onClose?.()}})})}const D=({onClose:e,...t})=>g(m,{fallback:g(h,{}),children:g(n,{...t,children:g(o,{...t,shouldAutoSubmit:!0,children:({current:n,questions:r,answers:a,update:o,back:c,canGoBack:u,backButtonLabel:f,saveAnswer:p,isSubmitted:m})=>{let _=n===r.length-1;if(m)return g(s,{onClose:e});let v=r[n];return v?g(l,{isLastQuestion:_,question:v,defaultAnswer:a[v.id]??void 0,backButton:u?g(d,{onPress:c,children:f}):void 0,saveAnswer:e=>p(v.id,e),onSubmit:e=>o({question:n,answer:e}),children:e=>g(i,{maskAllInputs:t.options?.bugReport?.maskAllInputs,...e})},v.id):g(h,{})}})})}),O=e=>{let{respondent:t}=c();return g(D,{...e,respondent:t})};function k(e){let[t,n]=p(!1),{respondent:r,isSurveyVisible:i,proxyUrl:a,container:o,...s}=e;if(t)return null;let c=g(O,{...s,apiBaseUrl:a,onClose:()=>{n(!0),s.onClose?.()}});return g(u,{surveyId:s.surveyId,publishableKey:s.publishableKey,apiBaseUrl:a,respondent:r,isSurveyVisible:i,children:o?o({survey:c}):c})}const A=({trigger:e,children:t,onFinished:n,...r})=>{let[i,a]=p(!1),[o,s]=p(!1);return _(h,{children:[e({onClick:()=>a(!0),isWidgetOpen:i,hasSubmitted:o}),i&&t({...r,onDismiss:()=>a(!1),onFinished:()=>{s(!0),n?.()},onClose:()=>a(!1)})]})},j=({trigger:t=t=>g(e,{...t}),children:n,metadata:r,autoInjectAnalyticsMetadata:i,options:a,onFinished:o,proxyUrl:s,...c})=>g(m,{fallback:g(h,{}),children:g(u,{...c,apiBaseUrl:s,children:g(A,{trigger:t,surveyId:c.surveyId,publishableKey:c.publishableKey,proxyUrl:s,metadata:r,autoInjectAnalyticsMetadata:i,options:a,onFinished:o,children:n})})});export{j as ConfettiTrigger,b as EmbeddedConfetti,C as ModalConfetti,E as PopoverConfetti,k as StepperConfetti};
1
+ import{t as e}from"./DefaultConfettiTrigger-CqpZGyoA.js";import{c as t,o as n,t as r}from"./ModalContainer-BmgfXemR.js";import{a as i,d as a,h as o,i as s,m as c,n as l,p as u,r as d,t as f}from"./Embed-CQISAOtU.js";import{useState as p}from"react";import{ErrorBoundary as m}from"react-error-boundary";import{Fragment as h,jsx as g,jsxs as _}from"react/jsx-runtime";const v=({onClose:e,...r})=>g(m,{fallback:g(h,{}),children:g(t,{type:`embedded`,children:g(n,{...r,children:g(o,{...r,shouldAutoSubmit:!1,children:({questions:t,update:n,submit:a,isSubmitted:o,errors:c,answers:l})=>o?g(s,{onClose:e}):g(f,{onSubmit:a,children:t.filter(({visible:e})=>!!e).map(e=>g(i,{question:e,defaultAnswer:l[e.id]??void 0,error:c[e.id]||``,maskAllInputs:r.options?.bugReport?.maskAllInputs,onChange:t=>n({question:e.position,answer:t})},e.id))})})})})}),y=e=>{let{respondent:t}=c();return g(v,{...e,respondent:t})};function b(e){let[t,n]=p(!1),{respondent:r,isSurveyVisible:i,proxyUrl:a,container:o,...s}=e;if(t)return null;let c=g(y,{...s,apiBaseUrl:a,onClose:()=>{n(!0),s.onClose?.()}});return g(u,{surveyId:s.surveyId,publishableKey:s.publishableKey,apiBaseUrl:a,respondent:r,isSurveyVisible:i,children:o?o({survey:c}):c})}const x=({onDismiss:e,onClose:a,onFinished:c,closeOnFinishMs:l,isDismissable:u,...d})=>g(m,{fallback:g(h,{}),children:g(t,{type:`modal`,children:g(n,{...d,children:g(r,{onDismiss:e,onClose:a,closeOnFinishMs:l,isDismissable:u,children:({setIsSubmitted:e,setIsFinished:t})=>g(o,{...d,shouldAutoSubmit:!1,onSubmitted:()=>e(),onFinished:()=>{t(),c?.()},children:({questions:e,update:t,errors:n,submit:r,isSubmitted:o,answers:c})=>o?g(s,{onClose:a}):g(f,{onSubmit:r,children:e.filter(({visible:e})=>!!e).map(e=>g(i,{question:e,defaultAnswer:c[e.id]??void 0,error:n[e.id]||``,maskAllInputs:d.options?.bugReport?.maskAllInputs,onChange:n=>t({question:e.position,answer:n})},e.id))})})})})})}),S=e=>{let{respondent:t}=c();return g(x,{...e,respondent:t})};function C(e){let[t,n]=p(!1),{respondent:r,isSurveyVisible:i,proxyUrl:a,...o}=e;return t?null:g(u,{surveyId:o.surveyId,publishableKey:o.publishableKey,apiBaseUrl:a,respondent:r,isSurveyVisible:i,children:g(S,{...o,apiBaseUrl:a,onClose:()=>{n(!0),o.onClose?.()}})})}const w=({onDismiss:e,onClose:r,onFinished:c,closeOnFinishMs:u,...f})=>g(m,{fallback:g(h,{}),children:g(t,{type:`popover`,children:g(n,{...f,children:g(a,{onDismiss:e,onClose:r,closeOnFinishMs:u,children:({setIsSubmitted:e,setIsFinished:t})=>g(o,{...f,shouldAutoSubmit:!0,onSubmitted:()=>e(),onFinished:()=>{t(),c?.()},children:({current:e,questions:t,answers:n,update:a,back:o,canGoBack:c,backButtonLabel:u,saveAnswer:p,isSubmitted:m})=>{let _=e===t.length-1;if(m)return g(s,{onClose:r});let v=t[e];return v?g(l,{isLastQuestion:_,question:v,defaultAnswer:n[v.id]??void 0,backButton:c?g(d,{onPress:o,children:u}):void 0,saveAnswer:e=>p(v.id,e),onSubmit:t=>a({question:e,answer:t}),children:e=>g(i,{maskAllInputs:f.options?.bugReport?.maskAllInputs,...e})},v.id):g(h,{})}})})})})}),T=e=>{let{respondent:t}=c();return g(w,{...e,respondent:t})};function E(e){let[t,n]=p(!1),{respondent:r,isSurveyVisible:i,proxyUrl:a,...o}=e;return t?null:g(u,{surveyId:o.surveyId,publishableKey:o.publishableKey,apiBaseUrl:a,respondent:r,isSurveyVisible:i,children:g(T,{...o,apiBaseUrl:a,onClose:()=>{n(!0),o.onClose?.()}})})}const D=({onClose:e,...t})=>g(m,{fallback:g(h,{}),children:g(n,{...t,children:g(o,{...t,shouldAutoSubmit:!0,children:({current:n,questions:r,answers:a,update:o,back:c,canGoBack:u,backButtonLabel:f,saveAnswer:p,isSubmitted:m})=>{let _=n===r.length-1;if(m)return g(s,{onClose:e});let v=r[n];return v?g(l,{isLastQuestion:_,question:v,defaultAnswer:a[v.id]??void 0,backButton:u?g(d,{onPress:c,children:f}):void 0,saveAnswer:e=>p(v.id,e),onSubmit:e=>o({question:n,answer:e}),children:e=>g(i,{maskAllInputs:t.options?.bugReport?.maskAllInputs,...e})},v.id):g(h,{})}})})}),O=e=>{let{respondent:t}=c();return g(D,{...e,respondent:t})};function k(e){let[t,n]=p(!1),{respondent:r,isSurveyVisible:i,proxyUrl:a,container:o,...s}=e;if(t)return null;let c=g(O,{...s,apiBaseUrl:a,onClose:()=>{n(!0),s.onClose?.()}});return g(u,{surveyId:s.surveyId,publishableKey:s.publishableKey,apiBaseUrl:a,respondent:r,isSurveyVisible:i,children:o?o({survey:c}):c})}const A=({trigger:e,children:t,onFinished:n,...r})=>{let[i,a]=p(!1),[o,s]=p(!1);return _(h,{children:[e({onClick:()=>a(!0),isWidgetOpen:i,hasSubmitted:o}),i&&t({...r,onDismiss:()=>a(!1),onFinished:()=>{s(!0),n?.()},onClose:()=>a(!1)})]})},j=({trigger:t=t=>g(e,{...t}),children:n,metadata:r,autoInjectAnalyticsMetadata:i,options:a,onFinished:o,proxyUrl:s,...c})=>g(m,{fallback:g(h,{}),children:g(u,{...c,apiBaseUrl:s,children:g(A,{trigger:t,surveyId:c.surveyId,publishableKey:c.publishableKey,proxyUrl:s,metadata:r,autoInjectAnalyticsMetadata:i,options:a,onFinished:o,children:n})})});export{j as ConfettiTrigger,b as EmbeddedConfetti,C as ModalConfetti,E as PopoverConfetti,k as StepperConfetti};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengovsg/confetti",
3
- "version": "0.7.4",
3
+ "version": "0.7.5",
4
4
  "sideEffects": false,
5
5
  "description": "Widgets for Confetti",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -1 +0,0 @@
1
- import{a as e,i as t,o as n,r}from"./DefaultConfettiTrigger-CqpZGyoA.js";import{D as i,E as a,G as o,I as s,N as c,O as l,R as u,T as d,V as f,_ as p,a as m,b as h,d as g,g as _,h as v,i as y,k as b,m as x,n as S,o as C,p as w,r as T,s as E,u as D,x as O,y as k,z as A}from"./Button-LiaNjkvk.js";import{a as j,c as M,d as ee,f as te,i as ne,l as re,o as ie,s as ae,u as oe}from"./src-DKk1GrYu.js";import{a as se,n as ce,o as le,r as ue,t as de}from"./internals-BzehCtEV.js";import{d as fe,f as pe,g as me,h as he,i as ge,l as _e,m as ve,p as ye,r as be,s as xe,u as Se}from"./ModalContainer-Ig9sgCgG.js";import N,{Suspense as Ce,cloneElement as we,createContext as P,forwardRef as F,isValidElement as Te,lazy as Ee,useCallback as I,useContext as L,useEffect as R,useMemo as z,useRef as B,useState as V}from"react";import{useTimeout as De}from"usehooks-ts";import{Fragment as H,jsx as U,jsxs as W}from"react/jsx-runtime";import G from"clsx";import"react-dom";function Oe(e,t,n){let r=d(e=>{n&&!e.defaultPrevented&&n(t)});R(()=>{let t=e?.current?.form;return t?.addEventListener(`reset`,r),()=>{t?.removeEventListener(`reset`,r)}},[e])}function ke(e){let{id:t,label:n,"aria-labelledby":r,"aria-label":i,labelElementType:a=`label`}=e;t=A(t);let o=A(),s={};n&&(r=r?`${o} ${r}`:o,s={id:o,htmlFor:a===`label`?t:void 0});let c=ve({id:t,"aria-label":i,"aria-labelledby":r});return{labelProps:s,fieldProps:c}}function Ae(e){let{description:t,errorMessage:n,isInvalid:r,validationState:i}=e,{labelProps:a,fieldProps:o}=ke(e),s=u([!!t,!!n,r,i]),c=u([!!t,!!n,r,i]);return o=l(o,{"aria-describedby":[s,c,e[`aria-describedby`]].filter(Boolean).join(` `)||void 0}),{labelProps:a,fieldProps:o,descriptionProps:{id:s},errorMessageProps:{id:c}}}function je(e,t,n){let{validationBehavior:r,focus:i}=e;f(()=>{if(r===`native`&&n?.current&&!n.current.disabled){let e=t.realtimeValidation.isInvalid?t.realtimeValidation.validationErrors.join(` `)||`Invalid value.`:``;n.current.setCustomValidity(e),n.current.hasAttribute(`title`)||(n.current.title=``),t.realtimeValidation.isInvalid||t.updateValidation(Ne(n.current))}});let a=B(!1),o=d(()=>{a.current||t.resetValidation()}),s=d(e=>{t.displayValidation.isInvalid||t.commitValidation();let r=n?.current?.form;!e.defaultPrevented&&n&&r&&Pe(r)===n.current&&(i?i():n.current?.focus(),D(`keyboard`)),e.preventDefault()}),l=d(()=>{t.commitValidation()});R(()=>{let e=n?.current;if(!e)return;let t=e.form,r=t?.reset;return t&&(t.reset=()=>{a.current=!window.event||window.event.type===`message`&&c(window.event)instanceof MessagePort,r?.call(t),a.current=!1}),e.addEventListener(`invalid`,s),e.addEventListener(`change`,l),t?.addEventListener(`reset`,o),()=>{e.removeEventListener(`invalid`,s),e.removeEventListener(`change`,l),t?.removeEventListener(`reset`,o),t&&(t.reset=r)}},[n,r])}function Me(e){let t=e.validity;return{badInput:t.badInput,customError:t.customError,patternMismatch:t.patternMismatch,rangeOverflow:t.rangeOverflow,rangeUnderflow:t.rangeUnderflow,stepMismatch:t.stepMismatch,tooLong:t.tooLong,tooShort:t.tooShort,typeMismatch:t.typeMismatch,valueMissing:t.valueMissing,valid:t.valid}}function Ne(e){return{isInvalid:!e.validity.valid,validationDetails:Me(e),validationErrors:e.validationMessage?[e.validationMessage]:[]}}function Pe(e){for(let t=0;t<e.elements.length;t++){let n=e.elements[t];if(n.validity?.valid===!1)return n}return null}const Fe={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valueMissing:!1,valid:!0},Ie={...Fe,customError:!0,valid:!1},K={isInvalid:!1,validationDetails:Fe,validationErrors:[]},Le=P({}),Re=`__reactAriaFormValidationState`;function q(e){if(e.__reactAriaFormValidationState){let{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:a}=e[Re];return{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:a}}return ze(e)}function ze(e){let{isInvalid:t,validationState:n,name:r,value:i,builtinValidation:a,validate:o,validationBehavior:s=`aria`}=e;n&&(t||=n===`invalid`);let c=t===void 0?null:{isInvalid:t,validationErrors:[],validationDetails:Ie},l=z(()=>!o||i==null?null:He(Ve(o,i)),[o,i]);a?.validationDetails.valid&&(a=void 0);let u=L(Le),d=z(()=>r?Array.isArray(r)?r.flatMap(e=>Be(u[e])):Be(u[r]):[],[u,r]),[f,p]=V(u),[m,h]=V(!1);u!==f&&(p(u),h(!1));let g=z(()=>He(m?[]:d),[m,d]),_=B(K),[v,y]=V(K),b=B(K),x=()=>{if(!S)return;C(!1);let e=l||a||_.current;Ue(e,b.current)||(b.current=e,y(e))},[S,C]=V(!1);return R(x),{realtimeValidation:c||g||l||a||K,displayValidation:s===`native`?c||g||v:c||g||l||a||v,updateValidation(e){s===`aria`&&!Ue(v,e)?y(e):_.current=e},resetValidation(){let e=K;Ue(e,b.current)||(b.current=e,y(e)),s===`native`&&C(!1),h(!0)},commitValidation(){s===`native`&&C(!0),h(!0)}}}function Be(e){return e?Array.isArray(e)?e:[e]:[]}function Ve(e,t){if(typeof e==`function`){let n=e(t);if(n&&typeof n!=`boolean`)return Be(n)}return[]}function He(e){return e.length?{isInvalid:!0,validationErrors:e,validationDetails:Ie}:null}function Ue(e,t){return e===t||!!e&&!!t&&e.isInvalid===t.isInvalid&&e.validationErrors.length===t.validationErrors.length&&e.validationErrors.every((e,n)=>e===t.validationErrors[n])&&Object.entries(e.validationDetails).every(([e,n])=>t.validationDetails[e]===n)}function We(...e){let t=new Set,n=!1,r={...Fe};for(let i of e){for(let e of i.validationErrors)t.add(e);n||=i.isInvalid;for(let e in r)r[e]||=i.validationDetails[e]}return r.valid=!n,{isInvalid:n,validationErrors:[...t],validationDetails:r}}function Ge(e,t){let{inputElementType:n=`input`,isDisabled:r=!1,isRequired:a=!1,isReadOnly:o=!1,type:s=`text`,validationBehavior:u=`aria`}=e,[d,f]=fe(e.value,e.defaultValue||``,e.onChange),{focusableProps:p}=E(e,t),m=q({...e,value:d}),{isInvalid:h,validationErrors:g,validationDetails:_}=m.displayValidation,{labelProps:v,fieldProps:y,descriptionProps:b,errorMessageProps:x}=Ae({...e,isInvalid:h,errorMessage:e.errorMessage||g}),S=i(e,{labelable:!0}),C={type:s,pattern:e.pattern},[w]=V(d);return Oe(t,e.defaultValue??w,f),je(e,m,t),{labelProps:v,inputProps:l(S,n===`input`?C:void 0,{disabled:r,readOnly:o,required:a&&u===`native`,"aria-required":a&&u===`aria`||void 0,"aria-invalid":h||void 0,"aria-errormessage":e[`aria-errormessage`],"aria-activedescendant":e[`aria-activedescendant`],"aria-autocomplete":e[`aria-autocomplete`],"aria-haspopup":e[`aria-haspopup`],"aria-controls":e[`aria-controls`],value:d,onChange:e=>f(c(e).value),autoComplete:e.autoComplete,autoCapitalize:e.autoCapitalize,maxLength:e.maxLength,minLength:e.minLength,name:e.name,form:e.form,placeholder:e.placeholder,inputMode:e.inputMode,autoCorrect:e.autoCorrect,spellCheck:e.spellCheck,[parseInt(N.version,10)>=17?`enterKeyHint`:`enterkeyhint`]:e.enterKeyHint,onCopy:e.onCopy,onCut:e.onCut,onPaste:e.onPaste,onCompositionEnd:e.onCompositionEnd,onCompositionStart:e.onCompositionStart,onCompositionUpdate:e.onCompositionUpdate,onSelect:e.onSelect,onBeforeInput:e.onBeforeInput,onInput:e.onInput,...p,...y}),descriptionProps:b,errorMessageProps:x,isInvalid:h,validationErrors:g,validationDetails:_}}function Ke(e,t,n){let{isDisabled:r=!1,isReadOnly:a=!1,value:o,name:s,form:u,children:d,"aria-label":f,"aria-labelledby":p,validationState:m=`valid`,isInvalid:h,onPressStart:_,onPressEnd:v,onPressChange:y,onPress:b,onPressUp:x,onClick:S}=e,C=e=>{e.stopPropagation(),t.setSelected(c(e).checked)},{pressProps:w,isPressed:T}=g({onPressStart:_,onPressEnd:v,onPressChange:y,onPress:b,onPressUp:x,onClick:S,isDisabled:r}),{pressProps:D,isPressed:O}=g({onPressStart:_,onPressEnd:v,onPressChange:y,onPressUp:x,onClick:S,onPress(e){b?.(e),t.toggle(),n.current?.focus()},isDisabled:r||a}),{focusableProps:k}=E(e,n),A=l(w,k),j=i(e,{labelable:!0});return Oe(n,t.defaultSelected,t.setSelected),{labelProps:l(D,{onClick:e=>e.preventDefault()}),inputProps:l(j,{"aria-invalid":h||m===`invalid`||void 0,"aria-errormessage":e[`aria-errormessage`],"aria-controls":e[`aria-controls`],"aria-readonly":a||void 0,onChange:C,disabled:r,...o==null?{}:{value:o},name:s,form:u,type:`checkbox`,...A}),isSelected:t.isSelected,isPressed:T||O,isDisabled:r,isReadOnly:a,isInvalid:h||m===`invalid`}}function qe(e,t,n){let r=q({...e,value:t.isSelected}),{isInvalid:i,validationErrors:a,validationDetails:o}=r.displayValidation,{labelProps:s,inputProps:c,isSelected:u,isPressed:d,isDisabled:f,isReadOnly:p}=Ke({...e,isInvalid:i},t,n);je(e,r,n);let{isIndeterminate:m,isRequired:h,validationBehavior:_=`aria`}=e;R(()=>{n.current&&(n.current.indeterminate=!!m)});let{pressProps:v}=g({isDisabled:f||p,onPress(){let{[Re]:t}=e,{commitValidation:n}=t||r;n()}});return{labelProps:l(s,v,z(()=>({onMouseDown:e=>e.preventDefault()}),[])),inputProps:{...c,checked:u,"aria-required":h&&_===`aria`||void 0,required:h&&_===`native`},isSelected:u,isPressed:d,isDisabled:f,isReadOnly:p,isInvalid:i,validationErrors:a,validationDetails:o}}const Je=new WeakMap;function Ye(e,t){let{isDisabled:n,name:r,form:a,validationBehavior:o=`aria`}=e,{isInvalid:s,validationErrors:c,validationDetails:u}=t.displayValidation,{labelProps:d,fieldProps:f,descriptionProps:p,errorMessageProps:m}=Ae({...e,labelElementType:`span`,isInvalid:s,errorMessage:e.errorMessage||c});Je.set(t,{name:r,form:a,descriptionId:p.id,errorMessageId:m.id,validationBehavior:o});let h=i(e,{labelable:!0}),{focusWithinProps:g}=C({onBlurWithin:e.onBlur,onFocusWithin:e.onFocus,onFocusWithinChange:e.onFocusChange});return{groupProps:l(h,{role:`group`,"aria-disabled":n||void 0,...f,...g}),labelProps:d,descriptionProps:p,errorMessageProps:m,isInvalid:s,validationErrors:c,validationDetails:u}}function Xe(e={}){let{isReadOnly:t}=e,[n,r]=fe(e.isSelected,e.defaultSelected||!1,e.onChange),[i]=V(n);function a(e){t||r(e)}function o(){t||r(!n)}return{isSelected:n,defaultSelected:e.defaultSelected??i,setSelected:a,toggle:o}}function Ze(e,t,n){let r=Xe({isReadOnly:e.isReadOnly||t.isReadOnly,isSelected:t.isSelected(e.value),defaultSelected:t.defaultValue.includes(e.value),onChange(n){n?t.addValue(e.value):t.removeValue(e.value),e.onChange&&e.onChange(n)}}),{name:i,form:a,descriptionId:o,errorMessageId:s,validationBehavior:c}=Je.get(t);c=e.validationBehavior??c;let{realtimeValidation:l}=q({...e,value:r.isSelected,name:void 0,validationBehavior:`aria`}),u=B(K),d=()=>{t.setInvalid(e.value,l.isInvalid?l:u.current)};R(d);let f=t.realtimeValidation.isInvalid?t.realtimeValidation:l,p=c===`native`?t.displayValidation:f,m=qe({...e,isReadOnly:e.isReadOnly||t.isReadOnly,isDisabled:e.isDisabled||t.isDisabled,name:e.name||i,form:e.form||a,isRequired:e.isRequired??t.isRequired,validationBehavior:c,[Re]:{realtimeValidation:f,displayValidation:p,resetValidation:t.resetValidation,commitValidation:t.commitValidation,updateValidation(e){u.current=e,d()}}},r,n);return{...m,inputProps:{...m.inputProps,"aria-describedby":[e[`aria-describedby`],t.isInvalid?s:null,o].filter(Boolean).join(` `)||void 0}}}const Qe=new WeakMap;function $e(e,t,n){let{value:r,children:a,"aria-label":o,"aria-labelledby":s,onPressStart:c,onPressEnd:u,onPressChange:d,onPress:f,onPressUp:p,onClick:m}=e,h=e.isDisabled||t.isDisabled,_=t.selectedValue===r,v=e=>{e.stopPropagation(),t.setSelectedValue(r)},{pressProps:y,isPressed:b}=g({onPressStart:c,onPressEnd:u,onPressChange:d,onPress:f,onPressUp:p,onClick:m,isDisabled:h}),{pressProps:x,isPressed:S}=g({onPressStart:c,onPressEnd:u,onPressChange:d,onPressUp:p,onClick:m,isDisabled:h,onPress(e){f?.(e),t.setSelectedValue(r),n.current?.focus()}}),{focusableProps:C}=E(l(e,{onFocus:()=>t.setLastFocusedValue(r)}),n),w=l(y,C),T=i(e,{labelable:!0}),D=-1;t.selectedValue==null?(t.lastFocusedValue===r||t.lastFocusedValue==null)&&(D=0):t.selectedValue===r&&(D=0),h&&(D=void 0);let{name:O,form:k,descriptionId:A,errorMessageId:j,validationBehavior:M}=Qe.get(t);return Oe(n,t.defaultSelectedValue,t.setSelectedValue),je({validationBehavior:M},t,n),{labelProps:l(x,z(()=>({onClick:e=>e.preventDefault(),onMouseDown:e=>e.preventDefault()}),[])),inputProps:l(T,{...w,type:`radio`,name:O,form:k,tabIndex:D,disabled:h,required:t.isRequired&&M===`native`,checked:_,value:r,onChange:v,"aria-describedby":[e[`aria-describedby`],t.isInvalid?j:null,A].filter(Boolean).join(` `)||void 0}),isDisabled:h,isSelected:_,isPressed:b||S}}function et(e,t){let{name:n,form:r,isReadOnly:a,isRequired:o,isDisabled:u,orientation:d=`vertical`,validationBehavior:f=`aria`}=e,{direction:p}=ye(),{isInvalid:m,validationErrors:h,validationDetails:g}=t.displayValidation,{labelProps:_,fieldProps:v,descriptionProps:y,errorMessageProps:b}=Ae({...e,labelElementType:`span`,isInvalid:t.isInvalid,errorMessage:e.errorMessage||h}),x=i(e,{labelable:!0}),{focusWithinProps:S}=C({onBlurWithin(n){e.onBlur?.(n),t.selectedValue||t.setLastFocusedValue(null)},onFocusWithin:e.onFocus,onFocusWithinChange:e.onFocusChange}),w=e=>{let n;switch(e.key){case`ArrowRight`:n=p===`rtl`&&d!==`vertical`?`prev`:`next`;break;case`ArrowLeft`:n=p===`rtl`&&d!==`vertical`?`next`:`prev`;break;case`ArrowDown`:n=`next`;break;case`ArrowUp`:n=`prev`;break;default:return}e.preventDefault();let r=pe(e.currentTarget,{from:c(e),accept:e=>e instanceof s(e).HTMLInputElement&&e.type===`radio`}),i;n===`next`?(i=r.nextNode(),i||=(r.currentNode=e.currentTarget,r.firstChild())):(i=r.previousNode(),i||=(r.currentNode=e.currentTarget,r.lastChild())),i&&(i.focus(),t.setSelectedValue(i.value))},T=A(n);return Qe.set(t,{name:T,form:r,descriptionId:y.id,errorMessageId:b.id,validationBehavior:f}),{radioGroupProps:l(x,{role:`radiogroup`,onKeyDown:w,"aria-invalid":t.isInvalid||void 0,"aria-errormessage":e[`aria-errormessage`],"aria-readonly":a||void 0,"aria-required":o||void 0,"aria-disabled":u||void 0,"aria-orientation":d,...v,...S}),labelProps:_,descriptionProps:y,errorMessageProps:b,isInvalid:m,validationErrors:h,validationDetails:g}}const tt=P({}),J=T(function(e,t){[e,t]=x(e,t,tt);let{elementType:n=`label`,...r}=e,i=k[n];return N.createElement(i,{className:`react-aria-Label`,...r,ref:t})}),nt=P({}),Y=F(function(e,t){[e,t]=x(e,t,nt);let{elementType:n=`span`,...r}=e,i=k[n];return N.createElement(i,{className:`react-aria-Text`,...r,ref:t})});function rt(e={}){let[t,n]=fe(e.value,e.defaultValue||[],e.onChange),[r]=V(t),i=!!e.isRequired&&t.length===0,a=B(new Map),o=q({...e,value:t}),s=o.displayValidation.isInvalid;return{...o,value:t,defaultValue:e.defaultValue??r,setValue(t){e.isReadOnly||e.isDisabled||n(t)},isDisabled:e.isDisabled||!1,isReadOnly:e.isReadOnly||!1,isSelected(e){return t.includes(e)},addValue(t){e.isReadOnly||e.isDisabled||n(e=>e.includes(t)?e:e.concat(t))},removeValue(r){e.isReadOnly||e.isDisabled||t.includes(r)&&n(t.filter(e=>e!==r))},toggleValue(r){e.isReadOnly||e.isDisabled||(t.includes(r)?n(t.filter(e=>e!==r)):n(t.concat(r)))},setInvalid(e,t){let n=new Map(a.current);t.isInvalid?n.set(e,t):n.delete(e),a.current=n,o.updateValidation(We(...n.values()))},validationState:e.validationState??(s?`invalid`:null),isInvalid:s,isRequired:i}}let it=Math.round(Math.random()*1e10),at=0;function ot(e){let t=z(()=>e.name||`radio-group-${it}-${++at}`,[e.name]),[n,r]=fe(e.value,e.defaultValue??null,e.onChange),[i]=V(n),[a,o]=V(null),s=q({...e,value:n}),c=t=>{!e.isReadOnly&&!e.isDisabled&&(r(t),s.commitValidation())},l=s.displayValidation.isInvalid;return{...s,name:t,selectedValue:n,defaultSelectedValue:e.value===void 0?e.defaultValue??null:i,setSelectedValue:c,lastFocusedValue:a,setLastFocusedValue:o,isDisabled:e.isDisabled||!1,isReadOnly:e.isReadOnly||!1,isRequired:e.isRequired||!1,validationState:e.validationState||(l?`invalid`:null),isInvalid:l}}const X=P(null),Z=F(function(e,t){return L(X)?.isInvalid?N.createElement(st,{...e,ref:t}):null}),st=F((e,t)=>{let n=L(X),r=i(e,{global:!0}),a=v({...e,defaultClassName:`react-aria-FieldError`,defaultChildren:n.validationErrors.length===0?void 0:n.validationErrors.join(` `),values:n});return a.children==null?null:N.createElement(Y,{slot:`errorMessage`,...r,...a,ref:t})}),ct=P(null),lt=P(null),ut=P(null),dt=F(function(e,t){[e,t]=x(e,t,lt);let{validationBehavior:n}=O(ct)||{},r=e.validationBehavior??n??`native`,a=rt({...e,validationBehavior:r}),[o,s]=_(!e[`aria-label`]&&!e[`aria-labelledby`]),{groupProps:c,labelProps:u,descriptionProps:d,errorMessageProps:f,...p}=Ye({...e,label:s,validationBehavior:r},a),m=v({...e,values:{isDisabled:a.isDisabled,isReadOnly:a.isReadOnly,isRequired:e.isRequired||!1,isInvalid:a.isInvalid,state:a},defaultClassName:`react-aria-CheckboxGroup`}),h=i(e,{global:!0});return N.createElement(k.div,{...l(h,m,c),ref:t,slot:e.slot||void 0,"data-readonly":a.isReadOnly||void 0,"data-required":e.isRequired||void 0,"data-invalid":a.isInvalid||void 0,"data-disabled":e.isDisabled||void 0},N.createElement(w,{values:[[ut,a],[tt,{...u,ref:o,elementType:`span`}],[nt,{slots:{description:d,errorMessage:f}}],[X,p]]},m.children))}),ft=F(function(e,t){let{inputRef:n=null,...r}=e;[e,t]=x(r,t,me);let{validationBehavior:o}=O(ct)||{},s=e.validationBehavior??o??`native`,c=L(ut),u=a(z(()=>b(n,e.inputRef===void 0?null:e.inputRef),[n,e.inputRef])),{labelProps:d,inputProps:f,isSelected:p,isDisabled:g,isReadOnly:_,isPressed:S,isInvalid:C}=c?Ze({...h(e),value:e.value,children:typeof e.children==`function`||e.children},c,u):qe({...h(e),children:typeof e.children==`function`||e.children,validationBehavior:s},Xe(e),u),{isFocused:w,isFocusVisible:T,focusProps:E}=m(),D=g||_,{hoverProps:A,isHovered:j}=y({...e,isDisabled:D}),M=v({...e,defaultClassName:`react-aria-Checkbox`,values:{isSelected:p,isIndeterminate:e.isIndeterminate||!1,isPressed:S,isHovered:j,isFocused:w,isFocusVisible:T,isDisabled:g,isReadOnly:_,isInvalid:C,isRequired:e.isRequired||!1}}),ee=i(e,{global:!0});return delete ee.id,delete ee.onClick,N.createElement(k.label,{...l(ee,d,A,M),ref:t,slot:e.slot||void 0,"data-selected":p||void 0,"data-indeterminate":e.isIndeterminate||void 0,"data-pressed":S||void 0,"data-hovered":j||void 0,"data-focused":w||void 0,"data-focus-visible":T||void 0,"data-disabled":g||void 0,"data-readonly":_||void 0,"data-invalid":C||void 0,"data-required":e.isRequired||void 0},N.createElement(Se,{elementType:`span`},N.createElement(`input`,{...l(f,E),ref:u})),M.children)}),pt=P({}),mt=P({});let ht=e=>{let{onHoverStart:t,onHoverChange:n,onHoverEnd:r,...i}=e;return i};const gt=T(function(e,t){[e,t]=x(e,t,mt);let{hoverProps:n,isHovered:r}=y({...e,isDisabled:e.disabled}),{isFocused:i,isFocusVisible:a,focusProps:o}=m({isTextInput:!0,autoFocus:e.autoFocus}),s=!!e[`aria-invalid`]&&e[`aria-invalid`]!==`false`,c=v({...e,values:{isHovered:r,isFocused:i,isFocusVisible:a,isDisabled:e.disabled||!1,isInvalid:s},defaultClassName:`react-aria-Input`});return N.createElement(k.input,{...l(ht(e),o,n),...c,ref:t,"data-focused":i||void 0,"data-disabled":e.disabled||void 0,"data-hovered":r||void 0,"data-focus-visible":a||void 0,"data-invalid":s||void 0})}),_t=P(null);function vt(e){let t=B({});return N.createElement(_t.Provider,{value:t},e.children)}const yt=P({isSelected:!1}),bt=P(null),xt=P(null),St=P(null),Ct=F(function(e,t){[e,t]=x(e,t,bt);let{validationBehavior:n}=O(ct)||{},r=e.validationBehavior??n??`native`,a=ot({...e,validationBehavior:r}),[o,s]=_(!e[`aria-label`]&&!e[`aria-labelledby`]),{radioGroupProps:c,labelProps:u,descriptionProps:d,errorMessageProps:f,...p}=et({...e,label:s,validationBehavior:r},a),m=v({...e,values:{orientation:e.orientation||`vertical`,isDisabled:a.isDisabled,isReadOnly:a.isReadOnly,isRequired:a.isRequired,isInvalid:a.isInvalid,state:a},defaultClassName:`react-aria-RadioGroup`}),h=i(e,{global:!0});return N.createElement(k.div,{...l(h,m,c),ref:t,slot:e.slot||void 0,"data-orientation":e.orientation||`vertical`,"data-invalid":a.isInvalid||void 0,"data-disabled":a.isDisabled||void 0,"data-readonly":a.isReadOnly||void 0,"data-required":a.isRequired||void 0},N.createElement(w,{values:[[St,a],[tt,{...u,ref:o,elementType:`span`}],[nt,{slots:{description:d,errorMessage:f}}],[X,p]]},N.createElement(vt,null,m.children)))}),Q=F(function(e,t){let{inputRef:n=null,...r}=e;[e,t]=x(r,t,xt);let o=N.useContext(St),s=a(z(()=>b(n,e.inputRef===void 0?null:e.inputRef),[n,e.inputRef])),{labelProps:c,inputProps:u,isSelected:d,isDisabled:f,isPressed:p}=$e({...h(e),children:typeof e.children==`function`||e.children},o,s),{isFocused:g,isFocusVisible:_,focusProps:S}=m(),C=f||o.isReadOnly,{hoverProps:w,isHovered:T}=y({...e,isDisabled:C}),E=v({...e,defaultClassName:`react-aria-Radio`,values:{isSelected:d,isPressed:p,isHovered:T,isFocused:g,isFocusVisible:_,isDisabled:f,isReadOnly:o.isReadOnly,isInvalid:o.isInvalid,isRequired:o.isRequired}}),D=i(e,{global:!0});return delete D.id,delete D.onClick,N.createElement(k.label,{...l(D,c,w,E),ref:t,"data-selected":d||void 0,"data-pressed":p||void 0,"data-hovered":T||void 0,"data-focused":g||void 0,"data-focus-visible":_||void 0,"data-disabled":f||void 0,"data-readonly":o.isReadOnly||void 0,"data-invalid":o.isInvalid||void 0,"data-required":o.isRequired||void 0},N.createElement(Se,{elementType:`span`},N.createElement(`input`,{...l(u,S),ref:s})),N.createElement(yt.Provider,{value:{isSelected:d}},E.children))}),wt=P({});let Tt=e=>{let{onHoverStart:t,onHoverChange:n,onHoverEnd:r,...i}=e;return i};const Et=F(function(e,t){[e,t]=x(e,t,wt);let{hoverProps:n,isHovered:r}=y(e),{isFocused:i,isFocusVisible:a,focusProps:o}=m({isTextInput:!0,autoFocus:e.autoFocus}),s=!!e[`aria-invalid`]&&e[`aria-invalid`]!==`false`,c=v({...e,values:{isHovered:r,isFocused:i,isFocusVisible:a,isDisabled:e.disabled||!1,isInvalid:s},defaultClassName:`react-aria-TextArea`});return N.createElement(k.textarea,{...l(Tt(e),o,n),...c,ref:t,"data-focused":i||void 0,"data-disabled":e.disabled||void 0,"data-hovered":r||void 0,"data-focus-visible":a||void 0,"data-invalid":s||void 0})}),Dt=P(null),Ot=T(function(e,t){[e,t]=x(e,t,Dt);let{validationBehavior:n}=O(ct)||{},r=e.validationBehavior??n??`native`,a=B(null);[e,a]=x(e,a,he);let[o,s]=_(!e[`aria-label`]&&!e[`aria-labelledby`]),[c,l]=V(`input`),{labelProps:u,inputProps:d,descriptionProps:f,errorMessageProps:p,...m}=Ge({...h(e),inputElementType:c,label:s,validationBehavior:r},a),g=I(e=>{a.current=e,e&&l(e instanceof HTMLTextAreaElement?`textarea`:`input`)},[a]),y=v({...e,values:{isDisabled:e.isDisabled||!1,isInvalid:m.isInvalid,isReadOnly:e.isReadOnly||!1,isRequired:e.isRequired||!1},defaultClassName:`react-aria-TextField`}),b=i(e,{global:!0});return delete b.id,N.createElement(k.div,{...b,...y,ref:t,slot:e.slot||void 0,"data-disabled":e.isDisabled||void 0,"data-invalid":m.isInvalid||void 0,"data-readonly":e.isReadOnly||void 0,"data-required":e.isRequired||void 0},N.createElement(w,{values:[[tt,{...u,ref:o}],[mt,{...d,ref:g}],[wt,{...d,ref:g}],[pt,{role:`presentation`,isInvalid:m.isInvalid,isDisabled:e.isDisabled||!1}],[nt,{slots:{description:f,errorMessage:p}}],[X,m]]},y.children))}),kt=({originalQuestions:e,answers:t,errors:n,pointer:r=-1})=>{if(!e)return{questions:[],currentIndex:-1};let i=[...e].sort((e,t)=>e.position-t.position),a=r>=0?i[r]:void 0,o=le(i,t,{forceReachableIds:a?[a.id]:void 0}),s=i.map((e,t)=>{let i={...e},a=n[e.id];return a&&(i.error=a),{...i,visible:r===t||o.has(e.id)}}),c=s.findIndex((e,n)=>n>r&&e.visible&&t[e.id]===void 0);return c===-1&&(c=s.findLastIndex(e=>!!e.visible)),{questions:s,currentIndex:c}},$={rating:({scale:e},t)=>ae({scale:e},t),"open-ended":({max:e},t)=>ie({maxLength:e},t),"single-select":({editable:e},t)=>M({maxLength:e?.max},t),"multi-select":({editable:e,max:t},n)=>j({maxLength:e?.max,maxSelected:t},n),statement:(e,t)=>re(),"bug-report":(e,t)=>ne({},t)},At=(e,t)=>{let n=e.type;switch(n){case`rating`:{let r=$[n];return r(e,t)}case`open-ended`:{let r=$[n];return r(e,t)}case`single-select`:{let r=$[n];return r(e,t)}case`multi-select`:{let r=$[n];return r(e,t)}case`statement`:{let r=$[n];return r(e,t)}case`bug-report`:{let r=$[n];return r(e,t)}default:throw Error(`Unsupported question type`)}},jt=({questions:e,answers:t})=>{let n=Mt({questions:e,answers:t});return Object.fromEntries(Object.entries(n).filter(([,e])=>e!==null))},Mt=({questions:e,answers:t})=>Object.fromEntries(Object.entries(t).filter(([t])=>!!e.find(e=>e.id===t)?.visible)),Nt=({questions:e,errors:t})=>Object.fromEntries(Object.entries(t).filter(([t])=>!!e.find(e=>e.id===t)?.visible)),Pt={},Ft=({questions:e,answers:t,errors:n})=>{let r={};for(let i of e){if(!i.visible||!i.required||t[i.id]!==void 0||n[i.id])continue;let e=At(i.properties,{required:i.required}).safeParse(void 0);e.success||(r[i.id]=_e(e.error))}return r},It=e=>{let t=e.querySelector(`[data-invalid]`);if(!t)return;let n=t.getAttribute(`role`);if(n===`radiogroup`||n===`group`){t.tabIndex=-1,t.focus();return}t.querySelector(`textarea, input`)?.focus()},Lt=({current:e,shouldAutoSubmit:t,onSubmitted:n,onFinished:r,children:i})=>{let{survey:a,submit:o}=xe(),[s,c]=V({}),[l,u]=V({}),[d,f]=V(null),p=z(()=>kt({originalQuestions:a?.questions,answers:s,errors:l,pointer:e}),[a?.questions,s,l,e]),m=e??d??p.currentIndex,h=z(()=>!!a?.isBackNavigationAllowed&&m>0&&p.questions.slice(0,m).some(e=>!!e.visible),[a?.isBackNavigationAllowed,p.questions,m]),g=I((e,t)=>{c(n=>n[e]===t?n:{...n,[e]:t})},[]),_=I(()=>{a?.isBackNavigationAllowed&&f(t=>{let n=t??e??p.currentIndex;for(let e=n-1;e>=0;e--)if(p.questions[e]?.visible)return e;return t})},[a?.isBackNavigationAllowed,p.questions,p.currentIndex,e]),[v,y]=V(0),b=v>0,x=B(null),[S,C]=V(!1);R(()=>{v===0||!x.current||It(x.current)},[v]);let w=I(({answers:e})=>{o({answers:e}).finally(()=>{r?.()})},[r,o]),T=I(()=>{let e=Nt({questions:p.questions,errors:l}),t=Ft({questions:p.questions,answers:s,errors:e}),r=Object.keys(t).length>0;if(Object.keys(e).length>0||r)return r&&u(e=>({...e,...t})),y(e=>e+1),!1;let i=jt({questions:p.questions,answers:s});return w({answers:i}),C(!0),n?.(),!0},[s,l,p.questions,w,n]),E=I(({question:r,answer:i})=>{let o=p.questions.at(r);if(!o)return{error:`Question index is invalid`};let m=At(o.properties,{required:o.required}).safeParse(i);if(!m.success){let e=_e(m.error);return u(t=>{if(t[o.id]===e)return t;let n={...t};return n[o.id]=e,n}),c(e=>{if(!(o.id in e))return e;let t={...e};return delete t[o.id],t}),{error:e}}u(e=>{if(!e[o.id])return e;let t={...e};return delete t[o.id],t});let h=!i||Array.isArray(i)&&i.length===0,g=!o.required&&h?null:i,_={...s},v=_[o.id]!==g;_[o.id]=g;let y=kt({originalQuestions:a?.questions,answers:_,errors:l,pointer:e});v&&c(_);let b=y.questions.findIndex((e,t)=>t>r&&!!e.visible);if(d!==null&&b!==-1)return f(b),{next:b};if(f(null),y.questions.filter(({visible:e})=>!!e).every(({id:e})=>_[e]!==void 0)&&t){let e=jt({questions:y.questions,answers:_});w({answers:e}),C(!0),n?.()}return{next:y.currentIndex}},[p.questions,s,a?.questions,l,t,e,d,w,n]);return p.questions.length===0?U(H,{}):U(`div`,{ref:x,className:`confetti ${de}`,"data-show-errors":b||void 0,children:i({questions:p.questions,current:m,answers:s,update:E,back:_,canGoBack:h,backButtonLabel:a?.backButtonLabel??void 0,saveAnswer:g,submit:T,isSubmitted:S,errors:b?l:Pt})})},Rt=P(null);function zt({children:i,surveyId:a,publishableKey:s,apiBaseUrl:c,respondent:l,isSurveyVisible:u}){let d=e({surveyId:a,override:l}),f=o({publishableKey:s,apiBaseUrl:c}),{isAvailable:p,isSettled:m}=r({client:f,surveyId:a}),{state:h,isSettled:g}=t({client:f,surveyId:a,respondent:d}),_=z(()=>({respondent:d}),[d]);return!d||!m||!g||!p||!n(h,u)?null:U(Rt.Provider,{value:_,children:i})}function Bt(e){return L(Rt)?U(H,{children:e.children}):U(zt,{...e})}function Vt(){let e=L(Rt);if(!e)throw Error(`useRespondentVisibility must be used within a RespondentVisibilityProvider`);return e}const Ht=({children:e,classNames:t,containerProps:n,onDismiss:r,onClose:i,closeOnFinishMs:a=3e3})=>{let{surveyId:o,survey:s,dismiss:c}=xe(),[l,u]=V(!1),[d,f]=V(!1),[p,m]=V(!1),[h,g]=V(!1);return De(()=>{s&&i?.()},d&&!(p||h)?a:null),W(`div`,{className:G(`confetti-dialog ${de}`,t?.dialog),id:`${o}-popover`,...n,onMouseEnter:e=>{n?.onMouseEnter?.(e),m(!0)},onMouseLeave:e=>{n?.onMouseLeave?.(e),m(!1)},onFocusCapture:e=>{n?.onFocusCapture?.(e),g(!0)},onBlurCapture:e=>{n?.onBlurCapture?.(e),e.currentTarget.contains(e.relatedTarget)||g(!1)},children:[U(be,{className:G(`confetti-dialog-close`,t?.closeButton),iconClassName:t?.icon,onClose:async()=>{l||(await c(),r?.()),i?.()}}),typeof e==`function`?e({setIsSubmitted:()=>u(!0),setIsFinished:()=>f(!0)}):e]})},Ut=3e4,Wt=({maskAllInputs:e,initialEventsJson:t}={})=>{let[n,r]=V(()=>t??null),[i,a]=V(!1),[o,s]=V(null),[c,l]=V(30),u=B(null),d=B(null),f=B(null),p=B([]);R(()=>{let e=new CustomEvent(ue,{detail:{isRecording:i}});document.dispatchEvent(e)},[i]);let m=I(()=>{d.current&&=(clearInterval(d.current),null),f.current&&=(clearTimeout(f.current),null),u.current=null,l(Ut/1e3)},[]),h=I(()=>{u.current?.(),m(),a(!1),r(JSON.stringify(p.current))},[m]);return{recordingEventsJson:n,isRecording:i,recordingError:o,remainingSeconds:c,startRecording:I(async()=>{a(!0),s(null),r(null),p.current=[];try{let{record:t}=await import(`./record--U99gpCM.js`);u.current=t({slimDOMOptions:{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaDescKeywords:!0,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaAuthorship:!0},sampling:{mousemove:50,scroll:100,input:`last`},emit:e=>{p.current.push(e)},blockClass:`cfti-block`,maskTextClass:`cfti-mask`,maskAllInputs:e})??null;let n=Ut/1e3;l(n),d.current=setInterval(()=>{--n,l(n)},1e3),f.current=setTimeout(()=>{h()},Ut)}catch{s(`Failed to start recording. Please try again.`),a(!1),m()}},[e,h,m]),stopRecording:h,clear:I(()=>{m(),a(!1),r(null),s(null),p.current=[]},[m])}},Gt=e=>e.replace(/\S/g,`*`),Kt=e=>`*`.repeat(e.length),qt=(e,t)=>{for(let n of Array.from(e.childNodes))n.nodeType===Node.TEXT_NODE?t(n):qt(n,t)},Jt=e=>{if(e instanceof HTMLInputElement)e.setAttribute(`value`,Kt(e.getAttribute(`value`)??``));else if(e instanceof HTMLTextAreaElement)e.textContent=Kt(e.textContent);else if(e instanceof HTMLSelectElement)for(let t of e.querySelectorAll(`option`))t.textContent=Kt(t.textContent)},Yt=({maskInputs:e})=>({name:`cfti-redact`,afterClone:t=>{let{clone:n}=t;if(n instanceof HTMLElement){for(let e of n.querySelectorAll(`.${ce}`)){qt(e,e=>{e.data=Gt(e.data)}),Jt(e);for(let t of e.querySelectorAll(`input, textarea, select`))Jt(t)}if(e)for(let e of n.querySelectorAll(`input, textarea, select`))Jt(e)}}}),Xt=({maskAllInputs:e,initialDataUrl:t}={})=>{let[n,r]=V(()=>t??null),[i,a]=V(!1),[o,s]=V(null);return{screenshotDataUrl:n,isCapturing:i,captureError:o,capture:I(async()=>{a(!0),s(null);try{let{snapdom:t}=await import(`./snapdom-BbRa4ZYv.js`),n=await(await t(document.documentElement,{embedFonts:!0,exclude:[`.${de}`],excludeMode:`hide`,plugins:[Yt({maskInputs:!!e})],fast:!1})).toCanvas(),i=window.devicePixelRatio||1,a=Math.min(Math.round(window.innerWidth*i),n.width),o=Math.min(Math.round(window.innerHeight*i),n.height),s=document.createElement(`canvas`);s.width=a,s.height=o;let c=s.getContext(`2d`);if(!c)throw Error(`Failed to get 2D context for cropping`);c.drawImage(n,0,0,a,o,0,0,a,o),r(s.toDataURL(`image/png`))}catch{s(`Failed to capture screenshot. Please try again.`)}finally{a(!1)}},[e]),clear:I(()=>{r(null),s(null)},[])}},Zt=e=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,...e,children:[U(`circle`,{cx:`12`,cy:`12`,r:`10`}),U(`rect`,{x:`9`,y:`9`,width:`6`,height:`6`,rx:`1`})]}),Qt=e=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,...e,children:[U(`path`,{d:`M10 11v6`}),U(`path`,{d:`M14 11v6`}),U(`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`}),U(`path`,{d:`M3 6h18`}),U(`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`})]});function $t(){if(window.DD_RUM&&typeof window.DD_RUM?.getInternalContext==`function`&&typeof window.DD_RUM?.getSessionReplayLink==`function`)try{let e=window.DD_RUM?.getInternalContext?.(),t=window.DD_RUM?.getSessionReplayLink?.();return{sessionId:e?.session_id,sessionReplayLink:t}}catch{return null}return null}function en(){if(typeof window>`u`||typeof navigator>`u`)return;let e=navigator,t=window.screen,n=$t();return{userAgent:e.userAgent,screenResolution:`${t.width}x${t.height}`,viewportSize:`${window.innerWidth}x${window.innerHeight}`,pageUrl:window.location.href,pageTitle:document.title,referrer:document.referrer,language:e.language,timestamp:new Date().toISOString(),datadogTraceId:n?.traceId,datadogSessionId:n?.sessionId,datadogSessionReplayLink:n?.sessionReplayLink}}const tn=Ee(()=>import(`./RecordingReplayer-DNYXhses.js`)),nn=({id:e,title:t,description:n,properties:r,onChange:i,required:a,error:o,classNames:s,maskAllInputs:c,defaultAnswer:l})=>{let u=z(()=>en(),[]),d=l&&typeof l==`object`&&`title`in l?l:void 0,[f,p]=V(()=>d?.title??``),[m,h]=V(()=>d?.description??``),{screenshotDataUrl:g,isCapturing:_,captureError:v,capture:y,clear:b}=Xt({maskAllInputs:c,initialDataUrl:d?.screenshotDataUrl}),{recordingEventsJson:x,isRecording:C,recordingError:w,remainingSeconds:T,startRecording:E,stopRecording:D,clear:O}=Wt({maskAllInputs:c,initialEventsJson:d?.recordingEventsJson}),k=z(()=>({title:f,...m?{description:m}:{},...g?{screenshotDataUrl:g}:{},...x?{recordingEventsJson:x}:{},metadata:u}),[m,u,x,g,f]);R(()=>{i(k)},[k,i]),R(()=>()=>{D()},[D]);let A=z(()=>x?JSON.parse(x):[],[x]);return U(H,{children:C?W(S,{className:G(`cf-bug-report-button`,`cf-bug-report-record-button`,s?.button,s?.recordButton),onPress:D,children:[U(Zt,{}),W(`span`,{children:[30-T,`s /`,` `,30,`s`]})]}):W(`div`,{className:G(`cf-bug-report`,s?.base),children:[W(Ot,{isRequired:a,isInvalid:!!o,name:`${e}-title`,value:f,onChange:p,className:G(`cf-question`,s?.question),children:[W(`div`,{className:G(`cf-header`,s?.header),children:[W(J,{className:G(`cf-title`,s?.title),children:[t,!a&&W(`span`,{className:G(`cf-label-optional`,s?.optionalLabel),children:[` `,`(optional)`]})]}),n&&U(Y,{slot:`description`,className:G(`cf-description`,s?.description),children:n})]}),U(gt,{placeholder:r.placeholder||`Brief description of the issue`,className:G(`cf-input`,s?.input)}),U(Z,{className:G(`cf-error`,s?.error),children:o})]}),W(Ot,{name:`${e}-description`,value:m,onChange:h,className:G(`cf-question`,s?.question),children:[U(J,{className:G(`cf-title`,s?.title),children:r.detailsLabel}),U(Et,{placeholder:r.detailsPlaceholder||`Steps to reproduce, expected vs actual behavior, etc.`,className:G(`cf-textarea`,s?.textArea),rows:4})]}),r.enableScreenshot||r.enableRecording?W(`section`,{className:G(`cf-question`,s?.question),children:[U(J,{className:G(`cf-title`,s?.title),children:`Attachments`}),W(`div`,{className:G(`cf-bug-report-actions`,s?.actions),children:[r.enableScreenshot&&W(`div`,{className:G(`cf-bug-report-screenshot-section`,s?.screenshotSection),children:[g?W(`div`,{className:G(`cf-bug-report-media-preview`,s?.mediaPreview),children:[U(`img`,{src:g,alt:`Screenshot preview`,className:G(`cf-bug-report-screenshot-img`,s?.screenshotImg)}),U(`div`,{className:G(`cf-bug-report-media-actions`,s?.mediaActions),children:U(S,{className:G(`cf-bug-report-button`,`cf-bug-report-button-action`,s?.button,s?.buttonAction),onPress:b,"aria-label":`Remove screenshot`,children:U(Qt,{})})})]}):U(S,{className:G(`cf-bug-report-button`,s?.button),onPress:y,isDisabled:_,children:_?`Capturing...`:`Screenshot`}),v&&U(`div`,{className:G(`cf-error`,s?.error),children:v})]}),r.enableRecording&&W(`div`,{className:G(`cf-bug-report-recording-section`,s?.recordingSection),children:[A.length>0?W(`div`,{className:G(`cf-bug-report-media-preview`,s?.mediaPreview),children:[U(Ce,{fallback:U(`span`,{className:G(`cf-bug-report-player-loading`,s?.playerLoading),"aria-label":`Loading recording preview...`}),children:U(tn,{events:A})}),U(`div`,{className:G(`cf-bug-report-media-actions`,s?.mediaActions),children:U(S,{className:G(`cf-bug-report-button`,`cf-bug-report-button-action`,s?.button,s?.buttonAction),onPress:O,"aria-label":`Remove recording`,children:U(Qt,{})})})]}):U(S,{className:G(`cf-bug-report-button`,s?.button),onPress:E,children:`Record`}),w&&U(`div`,{className:G(`cf-error`,s?.error),children:w})]})]})]}):null]})})},rn=({id:e,title:t,description:n,properties:r,onChange:i,classNames:a,required:o,error:s,defaultAnswer:c})=>{let[l,u]=V(()=>typeof c==`string`?c:``);return R(()=>{i(l)},[i,l]),W(Ot,{isRequired:o,isInvalid:!!s,name:e,className:G(`cf-question`,a?.question),value:l,onChange:e=>{u(e),i(e)},children:[W(`div`,{className:G(`cf-header`,a?.header),children:[W(J,{className:G(`cf-title`,a?.title),children:[t,!o&&W(`span`,{className:G(`cf-label-optional`,a?.optionalLabel),children:[` `,`(optional)`]})]}),n&&U(Y,{slot:`description`,className:G(`cf-description`,a?.description),children:n})]}),U(Et,{className:G(`cf-textarea`,a?.textarea),maxLength:r.max,rows:4,placeholder:r.placeholder||`Start typing...`}),U(Z,{className:G(`cf-error`,a?.error),children:s})]})},an=({children:e,classNames:t,description:n,...r})=>U(ft,{...r,children:({isIndeterminate:r})=>W(H,{children:[W(`div`,{className:G(`cf-choice-label`,t?.label),children:[U(`div`,{className:G(`cf-checkbox-indicator`,t?.indicator),children:U(`svg`,{viewBox:`0 0 18 18`,"aria-hidden":`true`,className:G(`cf-checkbox-indicator-svg`,t?.svg),children:r?U(`rect`,{x:1,y:7.5,width:16,height:3}):U(`polyline`,{points:`2 9 7 14 16 4`})},r?`indeterminate`:`check`)}),e]}),n&&U(`span`,{className:G(`cf-choice-description`,t?.choiceDescription),children:n})]})}),on=({children:e,classNames:t,...n})=>U(ft,{...n,children:U(`div`,{className:G(`cf-tag-label`,t?.tagLabel),children:e})}),sn=({title:e,description:t,properties:n,classNames:r,onChange:i,id:a,required:o,error:s,defaultAnswer:c})=>{let l=!!n.editable,u=n.display??`checkbox`,d=Array.isArray(c)?c:[],f=new Set(n.options.map(e=>e.value)),p=d.find(e=>!f.has(e)),[m,h]=V(()=>{let e=d.filter(e=>f.has(e));return p!==void 0&&l&&e.push(oe),e}),[g,_]=V(()=>p!==void 0&&l?p:``),v=B(null),y=B(null),b=z(()=>{let e=m.indexOf(oe);if(e===-1)return m;let t=[...m];return t[e]=g||`__CONFETTI_CHECKBOX_Others`,t},[g,m]),x=u===`tag`;return R(()=>{i(b)},[i,b]),U(dt,{isRequired:o,isInvalid:!!s,name:a,value:m,onChange:h,className:G(`cf-question`,r?.question),children:({state:i})=>W(H,{children:[W(`div`,{className:G(`cf-header`,r?.header),children:[W(J,{className:G(`cf-title`,r?.title),children:[e,!o&&W(`span`,{className:G(`cf-label-optional`,r?.optionalLabel),children:[` `,`(optional)`]})]}),t&&U(Y,{slot:`description`,className:G(`cf-description`,r?.description),children:t})]}),W(`div`,{className:G(`cf-response-choices`,u===`tag`&&`cf-response-choices-tag`,r?.group),children:[n.options.map((e,t)=>U(x?on:an,{className:G(`cf-choice`,x&&[`cf-tag`,r?.tag],!x&&[`cf-checkbox`,r?.checkbox]),description:e.description,value:e.value,classNames:{tag:r?.tag,tagLabel:r?.tagLabel,choiceDescription:r?.choiceDescription,label:r?.label,indicator:r?.indicator,svg:r?.svg},children:e.value},t)),l&&(x?W(H,{children:[U(on,{inputRef:v,onChange:e=>{y.current&&e&&requestAnimationFrame(()=>{y.current&&y.current.focus()})},className:G(`cf-choice cf-tag`,r?.tag),value:`__CONFETTI_CHECKBOX_Others`,children:n.editable?.label}),U(gt,{"data-visible":i.value.includes(`__CONFETTI_CHECKBOX_Others`)||void 0,value:g,onChange:e=>{_(e.target.value)},ref:y,className:G(`cf-input cf-tag-input`,r?.othersInput)})]}):W(`div`,{className:G(`cf-choice cf-others-choice`,r?.othersChoice),children:[U(an,{inputRef:v,onChange:e=>{y.current&&e&&requestAnimationFrame(()=>{y.current&&y.current.focus()})},className:G(`cf-checkbox`,r?.checkbox),value:`__CONFETTI_CHECKBOX_Others`,classNames:{indicator:r?.indicator,svg:r?.svg},description:n.editable?.description,children:n.editable?.label}),U(gt,{value:g,onChange:e=>{_(e.target.value)},tabIndex:i.value.includes(`__CONFETTI_CHECKBOX_Others`)?0:-1,ref:y,onFocus:()=>{v.current?.checked===!1&&v.current.click()},className:G(`cf-input`,r?.othersInput)})]}))]}),U(Z,{className:G(`cf-error`,r?.error),children:s})]})})},cn=e=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:40,height:40,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,...e,children:[U(`circle`,{cx:12,cy:12,r:10}),U(`path`,{d:`M16 16s-1.5-2-4-2-4 2-4 2M7.5 8 10 9M14 9l2.5-1M9 10h.01M15 10h.01`})]}),ln=e=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:40,height:40,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,...e,children:[U(`circle`,{cx:12,cy:12,r:10}),U(`path`,{d:`M18 13a6 6 0 0 1-6 5 6 6 0 0 1-6-5h12ZM9 9h.01M15 9h.01`})]}),un=e=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:40,height:40,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,...e,children:[U(`circle`,{cx:12,cy:12,r:10}),U(`path`,{d:`M16 16s-1.5-2-4-2-4 2-4 2M9 9h.01M15 9h.01`})]}),dn=e=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:40,height:40,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,...e,children:[U(`circle`,{cx:12,cy:12,r:10}),U(`path`,{d:`M8 15h8M9 9h.01M15 9h.01`})]}),fn=e=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:40,height:40,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,...e,children:[U(`circle`,{cx:12,cy:12,r:10}),U(`path`,{d:`M8 14s1.5 2 4 2 4-2 4-2M9 9h.01M15 9h.01`})]}),pn=e=>U(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:40,height:40,fill:`none`,...e,children:U(`path`,{fill:`currentColor`,d:`m6.516 14.323-1.49 6.452a.998.998 0 0 0 1.529 1.057L12 18.202l5.445 3.63a1.001 1.001 0 0 0 1.517-1.106l-1.829-6.4 4.536-4.082a1 1 0 0 0-.59-1.74l-5.701-.454-2.467-5.461a.998.998 0 0 0-1.822 0L8.622 8.05l-5.701.453a1 1 0 0 0-.619 1.713l4.214 4.107zm2.853-4.326a.998.998 0 0 0 .832-.586L12 5.43l1.799 3.981a.998.998 0 0 0 .832.586l3.972.315-3.271 2.944c-.284.256-.397.65-.293 1.018l1.253 4.385-3.736-2.491a.995.995 0 0 0-1.109 0l-3.904 2.603 1.05-4.546a1 1 0 0 0-.276-.94l-3.038-2.962 4.09-.326z`})}),mn=e=>U(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:40,height:40,viewBox:`0 0 24 24`,...e,children:U(`path`,{fill:`currentColor`,d:`M21.947 9.179a1.001 1.001 0 0 0-.868-.676l-5.701-.453-2.467-5.461a.998.998 0 0 0-1.822-.001L8.622 8.05l-5.701.453a1 1 0 0 0-.619 1.713l4.213 4.107-1.49 6.452a1 1 0 0 0 1.53 1.057L12 18.202l5.445 3.63a1.001 1.001 0 0 0 1.517-1.106l-1.829-6.4 4.536-4.082c.297-.268.406-.686.278-1.065z`})}),hn=({state:e,properties:t,classNames:n})=>{let r=e.selectedValue?Number(e.selectedValue):null;return U(`div`,{className:G(`cf-rating-display-star`,n?.ratingDisplayStar),children:Array.from({length:t.scale},(e,t)=>{let i=t+1,a=String(i),o=r&&i<=r;return U(Q,{className:G(`cf-rating-star`,n?.ratingStar),value:a,"data-filled":o?`true`:void 0,children:U(o?mn:pn,{})},t)})})},gn=({properties:e,classNames:t})=>U(`div`,{className:G(`cf-rating-display-number`,t?.ratingDisplayNumber),children:Array.from({length:e.scale},(e,n)=>{let r=n+1,i=String(r);return U(Q,{className:G(`cf-rating-number`,t?.ratingNumber),value:i,children:r},n)})}),_n=({properties:e,classNames:t,state:n})=>{let r=z(()=>[cn,un,dn,fn,ln],[]),i=z(()=>[un,dn,fn],[]);return z(()=>e.scale===3||e.scale===5,[e.scale])?U(`div`,{className:G(`cf-rating-display-emoji`,t?.ratingDisplayEmoji),children:Array.from({length:e.scale},(n,a)=>{let o=a+1,s=String(o),c=e.scale===5?r[a]:i[a];return U(Q,{className:G(`cf-rating-emoji`,t?.ratingEmoji),value:s,children:c&&U(c,{})},a)})}):U(gn,{properties:e,classNames:t,state:n})},vn=e=>{switch(e.properties.display??`star`){case`emoji`:return U(_n,{...e});case`number`:return U(gn,{...e});case`star`:return U(hn,{...e})}},yn=({properties:e,title:t,description:n,classNames:r,onChange:i,id:a,error:o,required:s,defaultAnswer:c})=>{let[l,u]=V(()=>typeof c==`number`?String(c):null),d=z(()=>l?Number(l):void 0,[l]);return R(()=>{i(d)},[i,d]),U(Ct,{isRequired:s,isInvalid:!!o,name:a,className:G(`cf-question`,r?.question),value:l,onChange:u,children:({state:i})=>W(H,{children:[W(`div`,{className:G(`cf-header`,r?.header),children:[W(J,{className:G(`cf-title`,r?.title),children:[t,!s&&W(`span`,{className:G(`cf-label-optional`,r?.optionalLabel),children:[` `,`(optional)`]})]}),n&&U(Y,{slot:`description`,className:G(`cf-description`,r?.description),children:n})]}),W(`div`,{className:G(`cf-rating-section`,r?.ratingSection),children:[U(vn,{state:i,properties:e,classNames:r}),W(`div`,{className:G(`cf-rating-text`,r?.ratingText),children:[U(`span`,{className:G(`cf-rating-text-lower`,r?.ratingTextLower),children:e.labels?.lower}),U(`span`,{className:G(`cf-rating-text-upper`,r?.ratingTextUpper),children:e.labels?.upper})]})]}),U(Z,{className:G(`cf-error`,r?.error),children:o})]})})},bn=({classNames:e,className:t,description:n,...r})=>U(Q,{...r,className:G(t,e?.radio),children:p(r.children,t=>W(H,{children:[W(`div`,{className:G(`cf-choice-label`,e?.label),children:[U(`div`,{className:G(`cf-radio-indicator`,e?.indicator)}),t]}),n&&U(`span`,{className:G(`cf-choice-description`,e?.choiceDescription),children:n})]}))}),xn=({title:e,description:t,properties:n,classNames:r,onChange:i,id:a,required:o,error:s,defaultAnswer:c})=>{let l=!!n.editable,u=typeof c==`string`?c:null,d=u!==null&&n.options.some(e=>e.value===u),[f,p]=V(()=>u===null?null:d?u:l?ee:null),[m,h]=V(()=>u!==null&&!d&&l?u:``),g=B(null),_=B(null),v=z(()=>f===`__CONFETTI_RADIO_Others`?m||`__CONFETTI_RADIO_Others`:f??void 0,[m,f]);return R(()=>{i(v)},[i,v]),U(Ct,{isRequired:o,isInvalid:!!s,name:a,onChange:e=>{p(e),e===`__CONFETTI_RADIO_Others`&&requestAnimationFrame(()=>{_.current&&_.current.focus()})},value:f,className:G(`cf-question`,r?.question),children:({state:i})=>W(H,{children:[W(`div`,{className:G(`cf-header`,r?.header),children:[W(J,{className:G(`cf-title`,r?.title),children:[e,!o&&W(`span`,{className:G(`cf-label-optional`,r?.optionalLabel),children:[` `,`(optional)`]})]}),t&&U(Y,{slot:`description`,className:G(`cf-description`,r?.description),children:t})]}),W(`div`,{className:G(`cf-response-choices`,r?.group),children:[n.options.map((e,t)=>U(bn,{classNames:{indicator:r?.indicator,radio:G(`cf-choice cf-radio`,r?.radio)},value:e.value,description:e.description,children:e.value},t)),l&&W(`div`,{className:G(`cf-choice cf-others-choice`,r?.othersChoice),children:[U(bn,{inputRef:g,value:`__CONFETTI_RADIO_Others`,classNames:{indicator:r?.indicator,radio:G(`cf-radio`,r?.radio)},description:n.editable?.description,children:n.editable?.label}),U(gt,{tabIndex:i.selectedValue===`__CONFETTI_RADIO_Others`?0:-1,ref:_,value:m,onChange:e=>h(e.target.value),onFocus:()=>{g.current?.checked===!1&&g.current.click()},className:G(`cf-input`,r?.othersInput)})]})]}),U(Z,{className:G(`cf-error`,r?.error),children:s})]})})},Sn=({properties:e,title:t,description:n,classNames:r})=>U(`div`,{className:G(`cf-question`,r?.question),children:W(`div`,{className:G(`cf-header`,r?.header),children:[t&&U(`div`,{className:G(`cf-title`,r?.title),children:t}),n&&U(`div`,{className:G(`cf-description`,r?.description),children:n})]})}),Cn=({question:e,onChange:t,error:n,maskAllInputs:r,defaultAnswer:i})=>{switch(e.properties.type){case`rating`:return U(yn,{...e,properties:e.properties,onChange:t,error:n,defaultAnswer:i},e.id);case`open-ended`:return U(rn,{...e,properties:e.properties,onChange:t,error:n,defaultAnswer:i},e.id);case`single-select`:return U(xn,{...e,properties:e.properties,onChange:t,error:n,defaultAnswer:i},e.id);case`multi-select`:return U(sn,{...e,properties:e.properties,onChange:t,error:n,defaultAnswer:i},e.id);case`statement`:return U(Sn,{...e,properties:e.properties,onChange:t,error:n},e.id);case`bug-report`:return U(nn,{...e,properties:e.properties,onChange:t,error:n,maskAllInputs:r,defaultAnswer:i},e.id)}return U(`div`,{children:`Unsupported question type`},e.id)},wn=({title:e,description:t,classNames:n,onClose:r})=>{let{survey:i}=xe();if(!i)return null;let a=t||i.confirmation.description;return W(H,{children:[U(`div`,{className:G(`cf-question`,n?.question),children:W(`div`,{className:G(`cf-header`,n?.header),children:[U(J,{className:G(`cf-title`,n?.title),children:e||i.confirmation.title||`Feedback submitted!`}),a&&U(Y,{slot:`description`,className:G(`cf-description`,n?.description),children:a})]})}),U(S,{className:`cf-submit-button`,onPress:()=>{r?.()},children:i.confirmation.buttonText||`Close`})]})},Tn=({onPress:e,children:t=`Back`})=>ge()?null:U(S,{className:`cf-back-button`,onPress:e,children:t}),En=e=>e===void 0||e===``||Array.isArray(e)&&e.length===0,Dn=(e,t)=>e.type===`end`?!1:e.type!==`next`||!t,On=({routingLogic:e,answer:t,required:n,isLastQuestion:r})=>{if(e.type!==`always`&&En(t)&&n)return!0;let i=e.type===`always`?e.target:En(t)?e.default:e.cases.find(e=>se({answer:t,condition:e}))?.target??e.default;return Dn(i,r)},kn=({onPress:e,isDisabled:t,children:n=`Submit`})=>ge()?null:U(S,{isDisabled:t,className:`cf-submit-button`,onPress:e,children:n}),An=e=>{switch(e){case`multi-select`:return[];case`bug-report`:return{title:``};case`statement`:return;default:return``}},jn=e=>!En(e),Mn=({onSubmit:e,children:t,question:n,isLastQuestion:r,defaultAnswer:i,backButton:a,saveAnswer:o})=>{let s=ge(),[c,l]=V(i??An(n.properties.type)),u=z(()=>At(n.properties,{required:n.required}),[n.properties,n.required]),d=z(()=>{let e=u.safeParse(c);if(!e.success)return _e(e.error)},[c,u]),f=z(()=>On({routingLogic:n.routingLogic,answer:c,required:n.required,isLastQuestion:r}),[c,r,n.required,n.routingLogic]),p=z(()=>n.properties.buttonLabel?n.properties.buttonLabel:f?!n.required&&!jn(c)?`Skip`:`Next`:`Submit`,[c,f,n.properties.buttonLabel,n.required]),m=I(()=>{switch(n.properties.type){case`statement`:if(n.properties.buttonUrl&&typeof window<`u`){let e=te.safeParse(n.properties.buttonUrl).data;e&&window.open(e,`_blank`)}return e(void 0);default:return e(c)}},[c,e,n.properties]),h=jn(i),g=z(()=>{switch(n.properties.type){case`rating`:case`single-select`:return!!n.properties.shouldAutoProgress;default:return!1}},[n.properties])&&!h,_=I(t=>{l(t),g&&jn(t)&&u.safeParse(t).success&&e(t)},[g,u,e]),v=z(()=>{if(!a||!Te(a))return a;let e=a;return we(e,{onPress:()=>{jn(c)&&o?.(c),e.props.onPress?.()}})},[a,c,o]);return W(H,{children:[t({onChange:_,question:n,error:d,defaultAnswer:i}),!s&&W(`div`,{className:`cf-button-row`,children:[v,(!g||!n.required)&&U(kn,{isDisabled:!!d,onPress:m,children:p})]})]})},Nn=({onSubmit:e,children:t})=>W(H,{children:[t,U(kn,{onPress:e})]});export{Cn as a,yn as c,Ht as d,Rt as f,Lt as h,wn as i,sn as l,Vt as m,Mn as n,Sn as o,Bt as p,Tn as r,xn as s,Nn as t,rn as u};