df-ae-forms-package 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import e,{useState as t,useEffect as n,useCallback as i,useMemo as o,useRef as r}from"react";import{useTranslation as a}from"react-i18next";import{CheckCircle2 as s,AlertTriangle as l,Loader2 as c,Navigation as d,MapPin as u,X as m,Bold as p,Italic as h,List as f,ListOrdered as b,Image as g,MessageSquare as x,Paperclip as v,Check as y,Mail as j,AlertCircle as N,ChevronUp as C,ChevronDown as w,ChevronRight as k,GripVertical as T,Edit as S,Trash2 as $,Grid as E,Table as A}from"lucide-react";import{useDroppable as I}from"@dnd-kit/core";import{SortableContext as L,verticalListSortingStrategy as R,useSortable as V,horizontalListSortingStrategy as D}from"@dnd-kit/sortable";import{CSS as F}from"@dnd-kit/utilities";import{v4 as O}from"uuid";var z,q={exports:{}},_={};var M,P={};
1
+ import e,{useState as t,useEffect as n,useCallback as i,useMemo as o,useRef as r}from"react";import{CheckCircle2 as s,AlertTriangle as a,Loader2 as l,Navigation as c,MapPin as d,X as u,Bold as m,Italic as p,List as h,ListOrdered as f,Image as b,MessageSquare as g,Paperclip as x,Check as v,Mail as y,AlertCircle as j,ChevronUp as N,ChevronDown as C,ChevronRight as w,GripVertical as k,Edit as S,Trash2 as T,Grid as $,Table as E}from"lucide-react";import{useDroppable as A}from"@dnd-kit/core";import{SortableContext as I,verticalListSortingStrategy as L,useSortable as R,horizontalListSortingStrategy as V}from"@dnd-kit/sortable";import{CSS as D}from"@dnd-kit/utilities";import{v4 as F}from"uuid";var O,z={exports:{}},q={};var _,M={};
2
2
  /**
3
3
  * @license React
4
4
  * react-jsx-runtime.development.js
@@ -7,5 +7,5 @@ import e,{useState as t,useEffect as n,useCallback as i,useMemo as o,useRef as r
7
7
  *
8
8
  * This source code is licensed under the MIT license found in the
9
9
  * LICENSE file in the root directory of this source tree.
10
- */"production"===process.env.NODE_ENV?q.exports=function(){if(z)return _;z=1;var t=e,n=Symbol.for("react.element"),i=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,r=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,i){var s,l={},c=null,d=null;for(s in void 0!==i&&(c=""+i),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(d=t.ref),t)o.call(t,s)&&!a.hasOwnProperty(s)&&(l[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps)void 0===l[s]&&(l[s]=t[s]);return{$$typeof:n,type:e,key:c,ref:d,props:l,_owner:r.current}}return _.Fragment=i,_.jsx=s,_.jsxs=s,_}():q.exports=(M||(M=1,"production"!==process.env.NODE_ENV&&function(){var t,n=e,i=Symbol.for("react.element"),o=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),c=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),m=Symbol.for("react.suspense_list"),p=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),f=Symbol.for("react.offscreen"),b=Symbol.iterator,g=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function x(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];!function(e,t,n){var i=g.ReactDebugCurrentFrame.getStackAddendum();""!==i&&(t+="%s",n=n.concat([i]));var o=n.map(function(e){return String(e)});o.unshift("Warning: "+t),Function.prototype.apply.call(console[e],console,o)}("error",e,n)}function v(e){return e.displayName||"Context"}function y(e){if(null==e)return null;if("number"==typeof e.tag&&x("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),"function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case r:return"Fragment";case o:return"Portal";case s:return"Profiler";case a:return"StrictMode";case u:return"Suspense";case m:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case c:return v(e)+".Consumer";case l:return v(e._context)+".Provider";case d:return function(e,t,n){var i=e.displayName;if(i)return i;var o=t.displayName||t.name||"";return""!==o?n+"("+o+")":n}(e,e.render,"ForwardRef");case p:var t=e.displayName||null;return null!==t?t:y(e.type)||"Memo";case h:var n=e,i=n._payload,f=n._init;try{return y(f(i))}catch(e){return null}}return null}t=Symbol.for("react.module.reference");var j,N,C,w,k,T,S,$=Object.assign,E=0;function A(){}A.__reactDisabledLog=!0;var I,L=g.ReactCurrentDispatcher;function R(e,t,n){if(void 0===I)try{throw Error()}catch(e){var i=e.stack.trim().match(/\n( *(at )?)/);I=i&&i[1]||""}return"\n"+I+e}var V,D=!1,F="function"==typeof WeakMap?WeakMap:Map;function O(e,t){if(!e||D)return"";var n,i=V.get(e);if(void 0!==i)return i;D=!0;var o,r=Error.prepareStackTrace;Error.prepareStackTrace=void 0,o=L.current,L.current=null,function(){if(0===E){j=console.log,N=console.info,C=console.warn,w=console.error,k=console.group,T=console.groupCollapsed,S=console.groupEnd;var e={configurable:!0,enumerable:!0,value:A,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}E++}();try{if(t){var a=function(){throw Error()};if(Object.defineProperty(a.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(a,[])}catch(e){n=e}Reflect.construct(e,[],a)}else{try{a.call()}catch(e){n=e}e.call(a.prototype)}}else{try{throw Error()}catch(e){n=e}e()}}catch(t){if(t&&n&&"string"==typeof t.stack){for(var s=t.stack.split("\n"),l=n.stack.split("\n"),c=s.length-1,d=l.length-1;c>=1&&d>=0&&s[c]!==l[d];)d--;for(;c>=1&&d>=0;c--,d--)if(s[c]!==l[d]){if(1!==c||1!==d)do{if(c--,--d<0||s[c]!==l[d]){var u="\n"+s[c].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),"function"==typeof e&&V.set(e,u),u}}while(c>=1&&d>=0);break}}}finally{D=!1,L.current=o,function(){if(0===--E){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:$({},e,{value:j}),info:$({},e,{value:N}),warn:$({},e,{value:C}),error:$({},e,{value:w}),group:$({},e,{value:k}),groupCollapsed:$({},e,{value:T}),groupEnd:$({},e,{value:S})})}E<0&&x("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}(),Error.prepareStackTrace=r}var m=e?e.displayName||e.name:"",p=m?R(m):"";return"function"==typeof e&&V.set(e,p),p}function z(e,t,n){if(null==e)return"";if("function"==typeof e)return O(e,!(!(i=e.prototype)||!i.isReactComponent));var i;if("string"==typeof e)return R(e);switch(e){case u:return R("Suspense");case m:return R("SuspenseList")}if("object"==typeof e)switch(e.$$typeof){case d:return O(e.render,!1);case p:return z(e.type,t,n);case h:var o=e,r=o._payload,a=o._init;try{return z(a(r),t,n)}catch(e){}}return""}V=new F;var q=Object.prototype.hasOwnProperty,_={},M=g.ReactDebugCurrentFrame;function W(e){if(e){var t=e._owner,n=z(e.type,e._source,t?t.type:null);M.setExtraStackFrame(n)}else M.setExtraStackFrame(null)}var B=Array.isArray;function U(e){return B(e)}function H(e){return""+e}function J(e){if(function(e){try{return H(e),!1}catch(e){return!0}}(e))return x("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",function(e){return"function"==typeof Symbol&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object"}(e)),H(e)}var Y,G,X,K=g.ReactCurrentOwner,Z={key:!0,ref:!0,__self:!0,__source:!0};function Q(e,t,n,o,r){var a,s={},l=null,c=null;for(a in void 0!==n&&(J(n),l=""+n),function(e){if(q.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return void 0!==e.key}(t)&&(J(t.key),l=""+t.key),function(e){if(q.call(e,"ref")){var t=Object.getOwnPropertyDescriptor(e,"ref").get;if(t&&t.isReactWarning)return!1}return void 0!==e.ref}(t)&&(c=t.ref,function(e,t){if("string"==typeof e.ref&&K.current&&t&&K.current.stateNode!==t){var n=y(K.current.type);X[n]||(x('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',y(K.current.type),e.ref),X[n]=!0)}}(t,r)),t)q.call(t,a)&&!Z.hasOwnProperty(a)&&(s[a]=t[a]);if(e&&e.defaultProps){var d=e.defaultProps;for(a in d)void 0===s[a]&&(s[a]=d[a])}if(l||c){var u="function"==typeof e?e.displayName||e.name||"Unknown":e;l&&function(e,t){var n=function(){Y||(Y=!0,x("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}(s,u),c&&function(e,t){var n=function(){G||(G=!0,x("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};n.isReactWarning=!0,Object.defineProperty(e,"ref",{get:n,configurable:!0})}(s,u)}return function(e,t,n,o,r,a,s){var l={$$typeof:i,type:e,key:t,ref:n,props:s,_owner:a,_store:{}};return Object.defineProperty(l._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(l,"_self",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(l,"_source",{configurable:!1,enumerable:!1,writable:!1,value:r}),Object.freeze&&(Object.freeze(l.props),Object.freeze(l)),l}(e,l,c,r,o,K.current,s)}X={};var ee,te=g.ReactCurrentOwner,ne=g.ReactDebugCurrentFrame;function ie(e){if(e){var t=e._owner,n=z(e.type,e._source,t?t.type:null);ne.setExtraStackFrame(n)}else ne.setExtraStackFrame(null)}function oe(e){return"object"==typeof e&&null!==e&&e.$$typeof===i}function re(){if(te.current){var e=y(te.current.type);if(e)return"\n\nCheck the render method of `"+e+"`."}return""}ee=!1;var ae={};function se(e,t){if(e._store&&!e._store.validated&&null==e.key){e._store.validated=!0;var n=function(e){var t=re();if(!t){var n="string"==typeof e?e:e.displayName||e.name;n&&(t="\n\nCheck the top-level render call using <"+n+">.")}return t}(t);if(!ae[n]){ae[n]=!0;var i="";e&&e._owner&&e._owner!==te.current&&(i=" It was passed a child from "+y(e._owner.type)+"."),ie(e),x('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',n,i),ie(null)}}}function le(e,t){if("object"==typeof e)if(U(e))for(var n=0;n<e.length;n++){var i=e[n];oe(i)&&se(i,t)}else if(oe(e))e._store&&(e._store.validated=!0);else if(e){var o=function(e){if(null===e||"object"!=typeof e)return null;var t=b&&e[b]||e["@@iterator"];return"function"==typeof t?t:null}(e);if("function"==typeof o&&o!==e.entries)for(var r,a=o.call(e);!(r=a.next()).done;)oe(r.value)&&se(r.value,t)}}function ce(e){var t,n=e.type;if(null!=n&&"string"!=typeof n){if("function"==typeof n)t=n.propTypes;else{if("object"!=typeof n||n.$$typeof!==d&&n.$$typeof!==p)return;t=n.propTypes}if(t){var i=y(n);!function(e,t,n,i,o){var r=Function.call.bind(q);for(var a in e)if(r(e,a)){var s=void 0;try{if("function"!=typeof e[a]){var l=Error((i||"React class")+": "+n+" type `"+a+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[a]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw l.name="Invariant Violation",l}s=e[a](t,a,i,n,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(e){s=e}!s||s instanceof Error||(W(o),x("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",i||"React class",n,a,typeof s),W(null)),s instanceof Error&&!(s.message in _)&&(_[s.message]=!0,W(o),x("Failed %s type: %s",n,s.message),W(null))}}(t,e.props,"prop",i,e)}else void 0===n.PropTypes||ee||(ee=!0,x("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",y(n)||"Unknown"));"function"!=typeof n.getDefaultProps||n.getDefaultProps.isReactClassApproved||x("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}var de={};function ue(e,n,o,b,g,v){var j=function(e){return"string"==typeof e||"function"==typeof e||e===r||e===s||e===a||e===u||e===m||e===f||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===p||e.$$typeof===l||e.$$typeof===c||e.$$typeof===d||e.$$typeof===t||void 0!==e.getModuleId)}(e);if(!j){var N="";(void 0===e||"object"==typeof e&&null!==e&&0===Object.keys(e).length)&&(N+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var C,w=function(e){return void 0!==e?"\n\nCheck your code at "+e.fileName.replace(/^.*[\\\/]/,"")+":"+e.lineNumber+".":""}(g);N+=w||re(),null===e?C="null":U(e)?C="array":void 0!==e&&e.$$typeof===i?(C="<"+(y(e.type)||"Unknown")+" />",N=" Did you accidentally export a JSX literal instead of a component?"):C=typeof e,x("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",C,N)}var k=Q(e,n,o,g,v);if(null==k)return k;if(j){var T=n.children;if(void 0!==T)if(b)if(U(T)){for(var S=0;S<T.length;S++)le(T[S],e);Object.freeze&&Object.freeze(T)}else x("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else le(T,e)}if(q.call(n,"key")){var $=y(e),E=Object.keys(n).filter(function(e){return"key"!==e}),A=E.length>0?"{key: someKey, "+E.join(": ..., ")+": ...}":"{key: someKey}";de[$+A]||(x('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',A,$,E.length>0?"{"+E.join(": ..., ")+": ...}":"{}",$),de[$+A]=!0)}return e===r?function(e){for(var t=Object.keys(e.props),n=0;n<t.length;n++){var i=t[n];if("children"!==i&&"key"!==i){ie(e),x("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",i),ie(null);break}}null!==e.ref&&(ie(e),x("Invalid attribute `ref` supplied to `React.Fragment`."),ie(null))}(k):ce(k),k}var me=function(e,t,n){return ue(e,t,n,!1)},pe=function(e,t,n){return ue(e,t,n,!0)};P.Fragment=r,P.jsx=me,P.jsxs=pe}()),P);var W=q.exports;class B{constructor(){}static getInstance(){return B.instance||(B.instance=new B),B.instance}getAvailableComponentsForConditional(e,t){if(!e||!Array.isArray(e))return[];return e.filter(e=>!t||e.id!==t).map(e=>({id:e.id,label:e.basic?.label||e.id,type:e.name,key:e.id})).sort((e,t)=>e.label.localeCompare(t.label))}getApplicableOperators(e){switch(e){case"text-input":case"email-input":case"textarea":return["equals","notEquals","contains","notContains","isEmpty","isNotEmpty"];case"number-input":case"date-picker":case"datetime-picker":return["equals","notEquals","greaterThan","lessThan","greaterThanOrEqual","lessThanOrEqual","isEmpty","isNotEmpty"];case"select":case"radio":case"segment":default:return["equals","notEquals","isEmpty","isNotEmpty"];case"checkbox":return["contains","notContains","isEmpty","isNotEmpty"]}}validateConditionalLogic(e,t){const n=[];return e?(["show","hide","always"].includes(e.action)||n.push("Invalid conditional action"),["all","any"].includes(e.when)||n.push("Invalid when condition"),e.conditions&&0!==e.conditions.length?e.conditions.forEach((e,i)=>{const o=t.find(t=>t.id===e.when);if(!o)return void n.push(`Condition ${i+1}: Component not found`);this.getApplicableOperators(o.name).includes(e.operator)||n.push(`Condition ${i+1}: Operator not applicable for component type`),this.isValidConditionValue(e.value,o.name,e.operator)||n.push(`Condition ${i+1}: Invalid condition value`)}):n.push("At least one condition is required"),{isValid:0===n.length,errors:n}):{isValid:!0,errors:[]}}evaluateConditionalLogic(e,t,n){if("always"===e.action)return{shouldShow:!0,evaluatedConditions:[]};if(!e||!e.conditions||0===e.conditions.length)return{shouldShow:!0,evaluatedConditions:[]};const i=e.conditions.map(e=>{const i=this.getComponentValue(e.when,t,n);return{condition:e,result:this.evaluateCondition(e,i),componentValue:i}});return{shouldShow:this.determineFinalResult(e,i),evaluatedConditions:i}}getComponentValue(e,t,n){if(n&&void 0!==n[e])return n[e];const i=t.find(t=>t.id===e);return i&&"defaultValue"in i.basic?i.basic.defaultValue:void 0}evaluateCondition(e,t){const{operator:n,value:i}=e;if("checked"===i||"notChecked"===i)return this.evaluateCheckboxCondition(t,i);switch(n){case"equals":return this.isEqual(t,i);case"notEquals":return!this.isEqual(t,i);case"isEmpty":return this.isEmpty(t);case"isNotEmpty":return!this.isEmpty(t);case"contains":return this.contains(t,i);case"notContains":return!this.contains(t,i);case"greaterThan":return this.isGreaterThan(t,i);case"lessThan":return this.isLessThan(t,i);case"greaterThanOrEqual":return this.isGreaterThanOrEqual(t,i);case"lessThanOrEqual":return this.isLessThanOrEqual(t,i);default:return!1}}evaluateCheckboxCondition(e,t){const n=this.isCheckboxChecked(e);return"checked"===t?n:"notChecked"===t&&!n}isCheckboxChecked(e){return null!=e&&("boolean"==typeof e?e:"string"==typeof e?"true"===e.toLowerCase()||"1"===e:Array.isArray(e)?e.length>0:"number"==typeof e&&e>0)}determineFinalResult(e,t){let n,i;return n="all"===e.when?t.every(e=>e.result):"any"===e.when&&t.some(e=>e.result),i="show"===e.action?n:"hide"===e.action?!n:(e.action,!0),i}isEqual(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((e,n)=>this.isEqual(e,t[n]));if("object"==typeof e&&"object"==typeof t){const n=Object.keys(e),i=Object.keys(t);return n.length===i.length&&n.every(n=>this.isEqual(e[n],t[n]))}return!1}isEmpty(e){return null==e||void 0===e||("string"==typeof e?""===e.trim():Array.isArray(e)?0===e.length:"object"==typeof e&&0===Object.keys(e).length)}contains(e,t){return null!=e&&null!=t&&("string"==typeof e?e.toLowerCase().includes(String(t).toLowerCase()):!!Array.isArray(e)&&e.some(e=>this.isEqual(e,t)))}isGreaterThan(e,t){const n=Number(e),i=Number(t);return!isNaN(n)&&!isNaN(i)&&n>i}isLessThan(e,t){const n=Number(e),i=Number(t);return!isNaN(n)&&!isNaN(i)&&n<i}isGreaterThanOrEqual(e,t){const n=Number(e),i=Number(t);return!isNaN(n)&&!isNaN(i)&&n>=i}isLessThanOrEqual(e,t){const n=Number(e),i=Number(t);return!isNaN(n)&&!isNaN(i)&&n<=i}isValidConditionValue(e,t,n){if(null==e)return["isEmpty","isNotEmpty"].includes(n);switch(t){case"number-input":return!isNaN(Number(e))||["isEmpty","isNotEmpty"].includes(n);case"date-picker":case"datetime-picker":return!isNaN(Date.parse(e))||["isEmpty","isNotEmpty"].includes(n);case"checkbox":return Array.isArray(e)||"string"==typeof e||"number"==typeof e;default:return!0}}createDefaultConditionalLogic(){return{action:"show",when:"all",conditions:[]}}getOperatorDisplayText(e){return{equals:"Is Equal To",notEquals:"Is Not Equal To",contains:"Contains",notContains:"Does Not Contain",isEmpty:"Is Empty",isNotEmpty:"Is Not Empty",greaterThan:"Is Greater Than",lessThan:"Is Less Than",greaterThanOrEqual:"Is Greater Than Or Equal To",lessThanOrEqual:"Is Less Than Or Equal To"}[e]||e}getActionDisplayText(e){return{show:"Show this field when",hide:"Hide this field when",always:"Always show this field"}[e]||e}getConditionalLogicSummary(e,t){if(!e||0===e.conditions.length)return"No conditions";if("always"===e.action)return"Always show";const n=this.getActionDisplayText(e.action),i=e.conditions.map(e=>{const n=t.find(t=>t.id===e.when);return`${n?.basic.label||"Unknown component"} ${this.getOperatorDisplayText(e.operator)} ${this.formatConditionValue(e.value)}`}),o="all"===e.when?" and ":" or ";return`${n} ${i.join(o)}`}formatConditionValue(e){return null==e?"empty":Array.isArray(e)?`[${e.join(", ")}]`:"string"==typeof e?`"${e}"`:String(e)}}const U=B.getInstance();const H=new class{constructor(){this.toasts=[],this.listeners=[],this.defaultDuration=3e3,this.timeouts={}}generateId(){return Date.now().toString(36)+Math.random().toString(36).substr(2)}notifyListeners(){this.listeners.forEach(e=>e([...this.toasts]))}addToast(e){try{this.toasts.push(e),this.notifyListeners(),this.timeouts[e.id]=setTimeout(()=>{this.removeToast(e.id)},e.duration||this.defaultDuration)}catch(e){console.error("Error displaying toast message:",e)}}removeToast(e){this.timeouts[e]&&(clearTimeout(this.timeouts[e]),delete this.timeouts[e]),this.toasts=this.toasts.filter(t=>t.id!==e),this.notifyListeners()}showSuccess(e,t=3e3){const n={id:this.generateId(),message:e,type:"success",duration:t};this.addToast(n)}showError(e,t=5e3){const n={id:this.generateId(),message:e,type:"danger",duration:t};this.addToast(n)}showWarning(e,t){const n={id:this.generateId(),message:e,type:"warning",duration:t};this.addToast(n)}showInfo(e,t){const n={id:this.generateId(),message:e,type:"info",duration:t};this.addToast(n)}show(e,t="success",n){const i={id:this.generateId(),message:e,type:t,duration:n};this.addToast(i)}clearAll(){Object.values(this.timeouts).forEach(e=>clearTimeout(e)),this.timeouts={},this.toasts=[],this.notifyListeners()}subscribe(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}getToasts(){return[...this.toasts]}},J=({validationErrors:e,fieldId:t,touchedFields:n,formSubmitted:i,properties:o,localValidation:r,isTouched:a,mode:s})=>{const l=e=>{const t=o.basic.label||"This field",n=o.validation.customValidationMessage;if(n)return n;const i=o.name||"",r="date-picker"===i||"datetime-picker"===i?o.basic?.dateTimeMode||("datetime-picker"===i?"datetime":"date"):null;switch(e){case"required":return`${t} is required`;case"invalidDate":return"time"===r?"Please select a valid time":"datetime"===r?"Please select a valid date and time":"date"===r?"Please select a valid date":`${t} is invalid`;case"minLength":return`${t} must be at least ${o.validation.minLength} characters long`;case"maxLength":return`${t} must be no more than ${o.validation.maxLength} characters long`;case"min":return`${t} must be at least ${o.validation.min}`;case"max":return`${t} must be no more than ${o.validation.max}`;case"lowerLimit":const e=o.validation,n=e?.lowerLimit;return`You are under the limit. ${t} must be at least ${n}`;case"upperLimit":const i=o.validation,a=i?.upperLimit;return`You crossed the limit. ${t} must be no more than ${a}`;case"pattern":return`${t} format is invalid`;case"email":return`${t} must be a valid email address`;default:return`${t} is invalid`}},c=(()=>{if("test"!==s)return"";if(!(a||n[t]||i))return"";if(r&&r.isValid)return"";if(r&&!r.isValid&&Object.keys(r.errors).length>0){const e=Object.keys(r.errors);if(e.length>0){const t=e[0];return l(t)}}const c=e[t];if(c&&"string"==typeof c&&""!==c.trim()){const e=o.name||"";if(("date-picker"===e||"datetime-picker"===e)&&c.includes("valid date")){const t=o.basic?.dateTimeMode||("datetime-picker"===e?"datetime":"date");if("time"===t)return"Please select a valid time";if("datetime"===t)return"Please select a valid date and time"}return c}return""})();return c?W.jsx("div",{className:"form-error-msg",children:c}):null},Y=({isOpen:e,onClose:t,onSuccess:n,component:i,formTemplateId:o,notes:r="",attachments:a=null,issue:s=null})=>{if(!e)return null;return W.jsx("div",{className:"raise-issue-modal-overlay",onClick:t,style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999,padding:"1rem"},children:W.jsxs("div",{className:"raise-issue-modal",onClick:e=>e.stopPropagation(),style:{background:"#ffffff",borderRadius:"0.5rem",width:"100%",maxWidth:"500px",padding:"2rem",boxShadow:"0 25px 50px -12px rgba(0, 0, 0, 0.25)"},children:[W.jsx("h2",{style:{marginTop:0},children:"Raise Issue"}),W.jsx("p",{children:s?"View/Edit Issue":"Create New Issue"}),W.jsxs("p",{style:{fontSize:"0.875rem",color:"#6b7280"},children:["Component: ",i?.basic?.label||"Unknown"]}),r&&W.jsxs("div",{style:{marginTop:"1rem",padding:"0.75rem",background:"#f9fafb",borderRadius:"0.375rem"},children:[W.jsx("strong",{children:"Notes:"})," ",r]}),a&&a.length>0&&W.jsxs("div",{style:{marginTop:"1rem",padding:"0.75rem",background:"#f9fafb",borderRadius:"0.375rem"},children:[W.jsx("strong",{children:"Attachments:"})," ",a.length," file(s)"]}),W.jsxs("div",{style:{marginTop:"1.5rem",display:"flex",gap:"0.75rem",justifyContent:"flex-end"},children:[W.jsx("button",{onClick:t,style:{padding:"0.625rem 1.25rem",borderRadius:"0.375rem",border:"1px solid #d1d5db",background:"#ffffff",cursor:"pointer"},children:"Cancel"}),W.jsx("button",{onClick:()=>{n&&n(),t()},style:{padding:"0.625rem 1.25rem",borderRadius:"0.375rem",border:"none",background:"var(--df-color-primary, #303992)",color:"#ffffff",cursor:"pointer"},children:s?"Update":"Raise Issue"})]}),W.jsx("p",{style:{marginTop:"1rem",fontSize:"0.75rem",color:"#9ca3af",fontStyle:"italic"},children:"Note: This is a stub implementation. Replace this component with your own issue management integration."})]})})},G=({component:e,condition:o,currentValue:r,thresholdValue:a,formTemplateId:c,onIssueRaised:d,isIssueRaised:u=!1})=>{const[m,p]=t(!1),[h,f]=t(null),[b,g]=t(!1),[x,v]=t(!1);n(()=>{u&&v(!0)},[u]),n(()=>{v(!1)},[o?.id]);const y=i(async()=>{if(u||x){if(h)return void p(!0);g(!0);try{f(null),p(!0)}catch(e){console.error("Error fetching issue:",e),H.showError("Failed to load issue details")}finally{g(!1)}}else f(null),p(!0)},[u,x,c,e,h]),j=i(()=>{p(!1),u||x||f(null)},[u,x]),N=i(e=>{p(!1),f(e||null),v(!0),d&&o?.id&&d(o.id)},[d,o]);return u||x?W.jsxs(W.Fragment,{children:[W.jsx("div",{className:"threshold-issue-indicator",children:W.jsxs("div",{className:"threshold-issue-indicator-content",children:[W.jsx(s,{className:"threshold-issue-indicator-icon",size:16}),W.jsx("span",{className:"threshold-issue-indicator-text",children:"Issue raised for this threshold condition"}),W.jsx("button",{type:"button",onClick:y,className:"threshold-issue-indicator-view-btn",disabled:b,children:b?"Loading...":"View Issue"})]})}),m&&W.jsx(Y,{isOpen:m,onClose:j,onSuccess:N,component:e,formTemplateId:c,notes:"",attachments:null,issue:h})]}):W.jsxs(W.Fragment,{children:[W.jsxs("div",{className:"threshold-alert threshold-alert-unresolved",children:[W.jsx("div",{className:"threshold-alert-border"}),W.jsxs("div",{className:"threshold-alert-content",children:[W.jsx("div",{className:"threshold-alert-header",children:W.jsxs("div",{className:"threshold-alert-title-group",children:[W.jsx(l,{className:"threshold-alert-icon",size:20}),W.jsx("span",{className:"threshold-alert-title",children:"Threshold Condition Met - Action Required"})]})}),W.jsxs("div",{className:"threshold-alert-message",children:[(()=>{const t={greaterThan:">",lessThan:"<",greaterThanOrEqual:"≥",lessThanOrEqual:"≤",equals:"=",notEquals:"≠"}[n=o.operator]||n;var n;return`${e.basic?.label||"Value"}: Value ${r} exceeds threshold ${t} ${a}`})(),W.jsx("span",{className:"threshold-alert-warning",children:" You must raise an issue before submitting the form."})]}),W.jsx("div",{className:"threshold-alert-buttons",children:W.jsx("button",{type:"button",onClick:y,className:"threshold-alert-raise-issue-btn",children:"Raise Issue Now"})})]})]}),m&&W.jsx(Y,{isOpen:m,onClose:j,onSuccess:N,component:e,formTemplateId:c,notes:"",attachments:null,issue:h})]})},X=({id:e,properties:r,validationErrors:a={},formValue:s="",inputType:l="text",readonly:c=!1,disabled:d=!1,touchedFields:u={},formSubmitted:m=!1,mode:p="test",onValueChange:h,onBlur:f,onFocus:b,className:g="",hideLabel:x=!1,formTemplateId:v,onThresholdIssueRaised:y,raisedThresholdIssues:j=new Set})=>{const[N,C]=t(s||r?.basic?.defaultValue||""),[w,k]=t(!1),[T,S]=t(!1),[$,E]=t(new Set),[A,I]=t(s||r?.basic?.defaultValue||""),L=()=>{if(l)return l;const e=r?.name;return"text-input"===e?"text":"number-input"===e?"number":"email-input"===e?"email":"text"},R=i(e=>{const t=(()=>{const e={};if(r?.validation?.required&&(e.required=!0),"email"===L()&&(e.email=!0),"text"===L()){const t=r.validation;t?.minLength&&(e.minLength=t.minLength),t?.maxLength&&(e.maxLength=t.maxLength)}if("number"===L()){const t=r.validation;t?.min&&(e.min=t.min),t?.max&&(e.max=t.max),void 0!==t?.lowerLimit&&(e.lowerLimit=t.lowerLimit),void 0!==t?.upperLimit&&(e.upperLimit=t.upperLimit)}return e})(),n={};let i=!0;if(!t.required||e&&""!==e.trim()||(n.required=!0,i=!1),t.email&&e&&!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(e)&&(n.email=!0,i=!1),t.minLength&&e&&e.length<t.minLength&&(n.minLength=!0,i=!1),t.maxLength&&e&&e.length>t.maxLength&&(n.maxLength=!0,i=!1),"number"===L()&&e){const o=parseFloat(e);isNaN(o)?(n.pattern=!0,i=!1):(void 0!==t.min&&o<t.min&&(n.min=!0,i=!1),void 0!==t.max&&o>t.max&&(n.max=!0,i=!1),void 0!==t.lowerLimit&&o<t.lowerLimit&&(n.lowerLimit=!0,i=!1),void 0!==t.upperLimit&&o>t.upperLimit&&(n.upperLimit=!0,i=!1))}return{isValid:i,errors:n}},[r,L]),V=i(t=>{if(C(t),h){const n=R(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};h(i)}},[e,h,R]);n(()=>{w&&(u[e]=!0)},[w,e,u]),n(()=>{if("edit"===p){k(!1);C(r?.basic?.defaultValue||"")}else"test"===p&&(k(!1),C(""))},[p,r?.basic?.defaultValue]),n(()=>{const e=s||r?.basic?.defaultValue||"";e===N||T||""===e&&""!==N.trim()?""===e&&N.trim():C(e)},[s,N,T,r?.basic?.defaultValue]),n(()=>{m&&k(!0)},[m]),n(()=>{"test"!==p&&C("")},[p]);const D=i((e,t)=>{if(!t||""===t)return!1;const n="string"==typeof t?parseFloat(t):t,i="string"==typeof e.value?parseFloat(e.value):e.value;if(isNaN(n)||isNaN(i))return!1;switch(e.operator){case"greaterThan":return n>i;case"lessThan":return n<i;case"greaterThanOrEqual":return n>=i;case"lessThanOrEqual":return n<=i;case"equals":return n===i;case"notEquals":return n!==i;default:return!1}},[]),F=o(()=>r?.condition?.conditions||[],[r?.condition]);n(()=>{N!==A&&(E(new Set),I(N))},[N,A]);const O=o(()=>{if("test"!==p||!N||""===N)return null;const e=F.filter(e=>D(e,N));if(0===e.length)return null;for(const t of e)if(!$.has(t.id))return t;return null},[N,F,$,p,D,j]),z=i(e=>{E(t=>new Set(t).add(e))},[]),q=L(),_=d||c||r?.validation?.readonly;return W.jsxs("div",{className:`form-group ${(()=>{const e=r?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!x&&r.basic.label&&W.jsxs("label",{htmlFor:e,className:"form-label",children:[r.basic.label,r.validation.required&&W.jsx("span",{className:"required-indicator",children:"*"})]}),W.jsxs("div",{className:"input-wrapper",children:[W.jsx("input",{type:q,id:e,value:N,onChange:e=>{const t=e.target.value;V(t)},onFocus:()=>{S(!0),b&&b()},onBlur:()=>{if(S(!1),k(!0),"test"===p&&h){const t=R(N),n={id:e,value:N,isValid:t.isValid,errors:t.errors};h(n)}f&&f()},placeholder:r.basic.placeholder,disabled:_,readOnly:c||r?.validation?.readonly,className:(()=>{const t="form-control";if("test"===p){const n=!R(N).isValid&&w,i=a[e]&&(w||m);return`${t} ${n||i?"is-invalid":""} ${g}`.trim()}return`${t} ${g}`.trim()})()}),W.jsx(J,{validationErrors:a,fieldId:e,touchedFields:u,formSubmitted:m,properties:r,localValidation:R(N),isTouched:w,mode:p}),O&&"test"===p&&(()=>{const e=j?.has(O.id)||!1;return W.jsx(G,{component:r,condition:O,currentValue:N,thresholdValue:O.value,formTemplateId:v,onDismiss:()=>z(O.id),onIssueRaised:y,isIssueRaised:e},`${O.id}-${e}`)})()]})]})},K=({id:e,properties:o,validationErrors:r={},formValue:a="",readonly:s=!1,disabled:l=!1,touchedFields:c={},formSubmitted:d=!1,mode:u="preview",onValueChange:m,onBlur:p,onFocus:h,className:f="",hideLabel:b=!1})=>{const[g,x]=t(a),[v,y]=t(!1),j=i(e=>{const t={};let n=!0;return!o?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),o?.validation?.minLength&&e&&e.length<o.validation.minLength&&(t.minLength=!0,n=!1),o?.validation?.maxLength&&e&&e.length>o.validation.maxLength&&(t.maxLength=!0,n=!1),{isValid:n,errors:t}},[o]),N=i(t=>{if(x(t),m){const n=j(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};m(i)}},[e,m,j]);n(()=>{v&&(c[e]=!0)},[v,e,c]),n(()=>{""===g&&""!==a&&x(a)},[a]),n(()=>{d&&y(!0)},[d]),n(()=>{"test"!==u&&x("")},[u]);const C=l||s||o?.validation?.readonly,w=o?.validation?.rows||4;return W.jsxs("div",{className:`form-group ${(()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!b&&o.basic.label&&W.jsxs("label",{htmlFor:e,className:"form-label",children:[o.basic.label,o.validation.required&&W.jsx("span",{className:"required-indicator",children:"*"})]}),W.jsxs("div",{className:"input-wrapper",children:[W.jsx("textarea",{id:e,value:g,onChange:e=>{const t=e.target.value;N(t)},onFocus:()=>{h&&h()},onBlur:()=>{y(!0),p&&p()},placeholder:o.basic.placeholder,disabled:C,readOnly:s||o?.validation?.readonly,rows:w,className:`form-textarea ${!j(g).isValid&&v?"is-invalid":""} ${f}`.trim()}),W.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:j(g),isTouched:v,mode:u})]})]})},Z=({id:e,properties:o,validationErrors:r={},formValue:a="",readonly:s=!1,disabled:l=!1,touchedFields:c={},formSubmitted:d=!1,mode:u="preview",onValueChange:m,onBlur:p,onFocus:h,className:f="",hideLabel:b=!1})=>{const[g,x]=t(a),[v,y]=t(!1),j=o?.validation?.multiple||!1,N=i(e=>{const t={};let n=!0;return o?.validation?.required&&(j?Array.isArray(e)&&0!==e.length||(t.required=!0,n=!1):(!e||"string"==typeof e&&""===e.trim())&&(t.required=!0,n=!1)),{isValid:n,errors:t}},[o,j]),C=i(t=>{if(x(t),m){const n=N(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};m(i)}},[e,m,N]);n(()=>{v&&(c[e]=!0)},[v,e,c]),n(()=>{JSON.stringify(a)!==JSON.stringify(g)&&x(a)},[a,g]),n(()=>{d&&y(!0)},[d]);const w=l||s||o?.validation?.readonly;return W.jsxs("div",{className:`form-group ${(()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!b&&o.basic.label&&W.jsxs("label",{htmlFor:e,className:"form-label",children:[o.basic.label,o.validation.required&&W.jsx("span",{className:"required-indicator",children:"*"})]}),W.jsxs("div",{className:"input-wrapper",children:[W.jsxs("select",{id:e,value:g,onChange:e=>{if(j){const t=Array.from(e.target.selectedOptions,e=>e.value);C(t)}else C(e.target.value)},onFocus:()=>{h&&h()},onBlur:()=>{y(!0),p&&p()},disabled:w,multiple:j,className:`form-select ${!N(g).isValid&&v?"is-invalid":""} ${f}`.trim(),children:[!j&&W.jsx("option",{value:"",children:o.basic.placeholder||"Select an option"}),(o.options||[]).map((e,t)=>W.jsx("option",{value:e.value,disabled:e.disabled,children:e.label},t))]}),W.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:N(g),isTouched:v,mode:u})]})]})},Q=({id:e,properties:o,validationErrors:r={},formValue:a=[],readonly:s=!1,disabled:l=!1,touchedFields:c={},formSubmitted:d=!1,mode:u="preview",onValueChange:m,onBlur:p,onFocus:h,className:f="",hideLabel:b=!1})=>{const[g,x]=t(!1),v=Array.isArray(a)?a:[],y=i(e=>{const t={};let n=!0;return o?.validation?.required&&0===e.length&&(t.required=!0,n=!1),{isValid:n,errors:t}},[o]),j=i(t=>{if(m){const n=y(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};m(i)}},[e,m,y,v]),N=(e,t)=>{let n;n=t?[...v,e]:v.filter(t=>t!==e),j(n)},C=()=>{h&&h()},w=()=>{x(!0),p&&p()};n(()=>{g&&(c[e]=!0)},[g,e,c]),n(()=>{},[a,e,v]),n(()=>{d&&x(!0)},[d]);const k=l||s||o?.validation?.readonly;return W.jsx(W.Fragment,{children:W.jsx("div",{className:`form-group checkbox-group ${(()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${o?.basic?.inlineLayout?"inline-layout":"vertical-layout"} ${f}`,children:!b&&o.basic.label?W.jsxs(W.Fragment,{children:[W.jsxs("label",{className:"form-label",children:[o.basic.label,o.validation.required&&W.jsx("span",{className:"required-indicator",children:"*"})]}),W.jsxs("div",{className:"input-wrapper",children:[W.jsx("div",{className:"mt-2 "+(o?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(o.options||[]).map((t,n)=>W.jsxs("div",{className:"form-check",children:[W.jsx("input",{type:"checkbox",id:`${e}-${n}`,name:e,value:t.value,checked:v.includes(t.value),onChange:e=>{N(t.value,e.target.checked)},onFocus:C,onBlur:w,disabled:k||t.disabled,className:"form-check-input"}),W.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),W.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:y(v),isTouched:g,mode:u})]})]}):W.jsxs("div",{className:"input-wrapper",children:[W.jsx("div",{className:"mt-2 "+(o?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(o.options||[]).map((t,n)=>W.jsxs("div",{className:"form-check",children:[W.jsx("input",{type:"checkbox",id:`${e}-${n}`,name:e,value:t.value,checked:v.includes(t.value),onChange:e=>{N(t.value,e.target.checked)},onFocus:C,onBlur:w,disabled:k||t.disabled,className:"form-check-input"}),W.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),W.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:y(v),isTouched:g,mode:u})]})})})},ee=({id:e,properties:o,validationErrors:r={},formValue:a="",readonly:s=!1,disabled:l=!1,touchedFields:c={},formSubmitted:d=!1,mode:u="preview",onValueChange:m,onBlur:p,onFocus:h,className:f="",hideLabel:b=!1})=>{const[g,x]=t(a),[v,y]=t(!1),j=i(e=>{const t={};let n=!0;return!o?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),{isValid:n,errors:t}},[o]),N=i(t=>{if(x(t),m){const n=j(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};m(i)}},[e,m,j]),C=e=>{N(e)},w=()=>{h&&h()},k=()=>{y(!0),p&&p()};n(()=>{v&&(c[e]=!0)},[v,e,c]),n(()=>{a!==g&&x(a)},[a,g]),n(()=>{d&&y(!0)},[d]);const T=l||s||o?.validation?.readonly;return W.jsx(W.Fragment,{children:W.jsx("div",{className:`form-group radio-group ${(()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${o?.basic?.inlineLayout?"inline-layout":"vertical-layout"} ${f}`,children:!b&&o.basic.label?W.jsxs(W.Fragment,{children:[W.jsxs("label",{className:"form-label",children:[o.basic.label,o.validation.required&&W.jsx("span",{className:"required-indicator",children:"*"})]}),W.jsxs("div",{className:"input-wrapper",children:[W.jsx("div",{className:"mt-2 "+(o?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(o.options||[]).map((t,n)=>W.jsxs("div",{className:"form-check",children:[W.jsx("input",{type:"radio",id:`${e}-${n}`,name:e,value:t.value,checked:g===t.value,onChange:()=>C(t.value),onFocus:w,onBlur:k,disabled:T||t.disabled,className:"form-check-input"}),W.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),W.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:j(g),isTouched:v,mode:u})]})]}):W.jsxs("div",{className:"input-wrapper",children:[W.jsx("div",{className:"mt-2 "+(o?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(o.options||[]).map((t,n)=>W.jsxs("div",{className:"form-check",children:[W.jsx("input",{type:"radio",id:`${e}-${n}`,name:e,value:t.value,checked:g===t.value,onChange:()=>C(t.value),onFocus:w,onBlur:k,disabled:T||t.disabled,className:"form-check-input"}),W.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),W.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:j(g),isTouched:v,mode:u})]})})})},te=({id:e,properties:o,validationErrors:r={},formValue:a="",readonly:s=!1,disabled:l=!1,touchedFields:c={},formSubmitted:d=!1,mode:u="preview",onValueChange:m,onBlur:p,onFocus:h,className:f="",hideLabel:b=!1})=>{const[g,x]=t(a),[v,y]=t(!1),j=i(e=>{const t={};let n=!0;return!o?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),{isValid:n,errors:t}},[o]),N=i(t=>{if(x(t),y(!0),m){const n=j(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};m(i)}},[e,m,j]),C=()=>{h&&h()},w=()=>{y(!0),p&&p()};n(()=>{v&&(c[e]=!0)},[v,e,c]),n(()=>{a!==g&&x(a)},[a,g]),n(()=>{d&&y(!0)},[d]);const k=()=>o?.basic?.inlineLayout?"inline-layout":"grid-layout",T=e=>{const t=e?.toLowerCase();return"pass"===t||"yes"===t?"pass":"fail"===t||"no"===t?"fail":"pass"},S=e=>{if(void 0!==e?.icon&&""!==e.icon)return e.icon;return"pass"===T(e?.value||e)?"✓":"×"},$=(e,t)=>e?.color||e?.backgroundColor?{color:t?"#ffffff":e.color||"#00814b",backgroundColor:t?e.color||"#00814b":e.backgroundColor||"#34bd4914",borderColor:e.color||"#00814b"}:{},E=e=>{if(e?.color||e?.backgroundColor)return"segment-button-label segment-button-custom";return"segment-button-label "+("pass"===T(e?.value||e)?"pass-button":"fail-button")},A=l||s||o?.validation?.readonly;return W.jsxs(W.Fragment,{children:[W.jsx("div",{className:`form-group segment-group ${(()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${f}`,children:!b&&o.basic.label?W.jsxs(W.Fragment,{children:[W.jsxs("label",{className:"form-label",children:[o.basic.label,o.validation.required&&W.jsx("span",{className:"required-indicator",children:"*"})]}),W.jsx("div",{className:"form-segment-wrapper",children:W.jsx("div",{className:`form-segment-container ${k()}`,children:(o.options||[]).map((t,n)=>{const i=g===t.value,o=$(t,i),r=E(t),a=S(t);return W.jsxs("div",{className:"form-segment-option "+(i?"selected":""),children:[W.jsx("input",{type:"radio",id:`${e}_option_${n}`,name:e,value:t.value,checked:i,onChange:()=>!A&&!t.disabled&&N(t.value),onFocus:C,onBlur:w,disabled:A||t.disabled,className:"form-segment-radio"}),W.jsxs("label",{htmlFor:`${e}_option_${n}`,className:r,style:Object.keys(o).length>0?o:void 0,children:[a&&W.jsx("span",{className:"segment-icon",children:a}),W.jsx("span",{className:"segment-text",children:t.value})]})]},n)})})})]}):W.jsx("div",{className:"form-segment-wrapper",children:W.jsx("div",{className:`form-segment-container ${k()}`,children:(o.options||[]).map((t,n)=>{const i=g===t.value,o=$(t,i),r=E(t),a=S(t);return W.jsxs("div",{className:"form-segment-option "+(i?"selected":""),children:[W.jsx("input",{type:"radio",id:`${e}_option_${n}`,name:e,value:t.value,checked:i,onChange:()=>!A&&!t.disabled&&N(t.value),onFocus:C,onBlur:w,disabled:A||t.disabled,className:"form-segment-radio"}),W.jsxs("label",{htmlFor:`${e}_option_${n}`,className:r,style:Object.keys(o).length>0?o:void 0,children:[a&&W.jsx("span",{className:"segment-icon",children:a}),W.jsx("span",{className:"segment-text",children:t.value})]})]},n)})})})}),W.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:j(g),isTouched:v,mode:u})]})},ne=({id:e,properties:o,validationErrors:r={},formValue:a="",readonly:s=!1,disabled:l=!1,touchedFields:c={},formSubmitted:d=!1,mode:u="preview",onValueChange:m,onBlur:p,onFocus:h,className:f="",hideLabel:b=!1})=>{const[g,x]=t(a),[v,y]=t(!1),[j,N]=t(!1),C=i(e=>{const t={};let n=!0;const i=o.name||"",r=o.basic?.dateTimeMode||("datetime-picker"===i?"datetime":"date"),a=e?String(e).trim():"";if(o?.validation?.required&&(!a||""===a))return t.required=!0,n=!1,{isValid:n,errors:t};if(a&&""!==a)if("time"===r){if(!/^([0-1][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$/.test(a))return t.invalidDate=!0,n=!1,{isValid:n,errors:t}}else if("datetime"===r){const e=new Date(a);if(isNaN(e.getTime()))return t.invalidDate=!0,n=!1,{isValid:n,errors:t};if(o?.validation?.minDate){const i=new Date(o.validation.minDate);e<i&&(t.minDate=!0,t.minDateMessage=`Date and time must be on or after ${i.toLocaleDateString()}`,n=!1)}if(o?.validation?.maxDate){const i=new Date(o.validation.maxDate);e>i&&(t.maxDate=!0,t.maxDateMessage=`Date and time must be on or before ${i.toLocaleDateString()}`,n=!1)}}else{const e=new Date(a);if(isNaN(e.getTime()))return t.invalidDate=!0,n=!1,{isValid:n,errors:t};if(o?.validation?.minDate){const i=new Date(o.validation.minDate);e<i&&(t.minDate=!0,t.minDateMessage=`Date must be on or after ${i.toLocaleDateString()}`,n=!1)}if(o?.validation?.maxDate){const i=new Date(o.validation.maxDate);e>i&&(t.maxDate=!0,t.maxDateMessage=`Date must be on or before ${i.toLocaleDateString()}`,n=!1)}}return{isValid:n,errors:t}},[o]),w=i(t=>{if(x(t),m){const n=C(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};m(i)}},[e,m,C]);n(()=>{v&&(c[e]=!0)},[v,e,c]),n(()=>{a===g||j||x(a)},[a,g,j]),n(()=>{d&&y(!0)},[d]);const k=l||s||o?.validation?.readonly,T=o.name||"",S=o.basic?.dateTimeMode||("datetime-picker"===T?"datetime":"date"),$=(()=>{switch(S){case"time":return"time";case"datetime":return"datetime-local";default:return"date"}})();return W.jsxs("div",{className:`form-group ${(()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!b&&o.basic.label&&W.jsxs("label",{htmlFor:e,className:"form-label",children:[o.basic.label,o.validation.required&&W.jsx("span",{className:"required-indicator",children:"*"})]}),W.jsxs("div",{className:"input-wrapper",children:[W.jsx("input",{type:$,id:e,value:g,onChange:e=>{const t=e.target.value;w(t)},onFocus:()=>{N(!0),h&&h()},onBlur:()=>{if(N(!1),y(!0),m){const t=C(g),n={id:e,value:g,isValid:t.isValid,errors:t.errors};m(n)}p&&p()},disabled:k,readOnly:s||o?.validation?.readonly,min:o?.validation?.minDate,max:o?.validation?.maxDate,className:`form-date ${!C(g).isValid&&v?"is-invalid":""} ${f}`.trim()}),W.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:C(g),isTouched:v,mode:u})]})]})},ie=({id:e,properties:o,validationErrors:a={},formValue:s="",readonly:l=!1,disabled:c=!1,touchedFields:d={},formSubmitted:u=!1,mode:m="preview",onValueChange:p,onBlur:h,onFocus:f,className:b="",hideLabel:g=!1})=>{const x=r(null),[v,y]=t(!1),[j,N]=t(!1),[C,w]=t(s),[k,T]=t(!1),S=i(e=>{const t={};let n=!0;return!o?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),{isValid:n,errors:t}},[o]),$=i(t=>{if(w(t),p){const n=S(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};p(i)}},[e,p,S]),E=i(()=>{const e=document.documentElement.classList.contains("dark")||"dark"===document.documentElement.getAttribute("data-theme");let t=getComputedStyle(document.documentElement).getPropertyValue("--df-color-fb-input-bg").trim();t||(t=e?"#2c2e34":"#ffffff");return{strokeColor:e?"#ffffff":"#000000",backgroundColor:t}},[]),A=i(t=>{if(!t)return;const n=x.current;if(!n)return;const i=n.getContext("2d");if(!i)return;const o=new Image;o.onload=()=>{i.clearRect(0,0,n.width,n.height);const e=E();i.fillStyle=e.backgroundColor,i.fillRect(0,0,n.width,n.height);const t=n.width/n.height,r=o.width/o.height;let a=n.width,s=n.height,l=0,c=0;r>t?(s=n.width/r,c=(n.height-s)/2):(a=n.height*r,l=(n.width-a)/2),i.drawImage(o,l,c,a,s)},o.onerror=n=>{console.error("DfFormSignature: error loading image",{id:e,error:n,dataURL:t.substring(0,50)+"..."})},o.src=t},[E,e]),I=i(()=>{const e=x.current;if(!e)return;const t=e.getContext("2d");if(!t)return;const n=e.getBoundingClientRect();e.width=n.width,e.height=n.height,e.style.width=n.width+"px",e.style.height=n.height+"px";const i=E();t.strokeStyle=i.strokeColor,t.lineWidth=2,t.lineCap="round",t.lineJoin="round",C?A(C):(t.fillStyle=i.backgroundColor,t.fillRect(0,0,e.width,e.height))},[C,E,A]),L=i(()=>{setTimeout(()=>{I()},100)},[I]);n(()=>{const e=()=>{L()},t=new MutationObserver(e=>{e.forEach(e=>{if("attributes"===e.type&&"class"===e.attributeName){const t=e.target;t.classList.contains("form-canvas-container")&&(t.classList.contains("mobile-view")||t.classList.contains("tablet-view")||t.classList.contains("desktop-view"))&&L()}})});return t.observe(document.body,{attributes:!0,attributeFilter:["class"],subtree:!0}),window.addEventListener("resize",e),()=>{t.disconnect(),window.removeEventListener("resize",e)}},[L]);const R=i(e=>{const t=x.current;if(!t)return{x:0,y:0};const n=t.getBoundingClientRect(),i=t.width/n.width,o=t.height/n.height,r=e.type.includes("mouse")?e.clientX:e.touches[0].clientX,a=e.type.includes("mouse")?e.clientY:e.touches[0].clientY;return{x:(r-n.left)*i,y:(a-n.top)*o}},[]),V=e=>{if(l||c||o?.validation?.readonly)return;if(e.target.closest(".clear-signature-btn"))return;e.preventDefault(),e.stopPropagation(),y(!0),N(!0);const t=x.current;if(!t)return;const n=t.getContext("2d");if(!n)return;const{x:i,y:r}=R(e),a=E();n.strokeStyle=a.strokeColor,n.lineWidth=2,n.lineCap="round",n.lineJoin="round",n.beginPath(),n.moveTo(i,r)},D=e=>{if(!v)return;e.preventDefault(),e.stopPropagation();const t=x.current;if(!t)return;const n=t.getContext("2d");if(!n)return;const{x:i,y:o}=R(e);n.lineTo(i,o),n.stroke()},F=()=>{if(!v)return;y(!1),T(!0);const e=x.current;if(e){(e=>{const t=e.getContext("2d");if(!t)return!1;const n=t.getImageData(0,0,e.width,e.height).data;for(let e=0;e<n.length;e+=4){const t=n[e],i=n[e+1],o=n[e+2];if(n[e+3]>0&&(t<255||i<255||o<255))return!0}})(e);const t=e.toDataURL("image/png");w(t),$(t),setTimeout(()=>{T(!1)},100)}else T(!1)},O=i(()=>{const e=x.current;if(!e)return;const t=e.getContext("2d");if(!t)return;const n=E();if(t.strokeStyle=n.strokeColor,C){const i=C,o=e.getBoundingClientRect();t.fillStyle=n.backgroundColor,t.fillRect(0,0,o.width,o.height),i&&A(i)}else{const i=e.getBoundingClientRect();t.fillStyle=n.backgroundColor,t.fillRect(0,0,i.width,i.height)}},[E,C,A]);n(()=>{const e=new MutationObserver(e=>{e.forEach(e=>{"attributes"!==e.type||"class"!==e.attributeName&&"data-theme"!==e.attributeName||O()})});return e.observe(document.documentElement,{attributes:!0,attributeFilter:["class","data-theme"]}),()=>{e.disconnect()}},[O]);n(()=>{j&&(d[e]=!0)},[j,e,d]),n(()=>{if(!(s===C||v||k||""!==C&&""===s)){if(s===C)return;w(s),s&&A(s)}},[s,C,v,k]),n(()=>{u&&N(!0)},[u]),n(()=>{if("test"!==m){w("");const e=x.current;if(e){const t=e.getContext("2d");if(t){const n=e.getBoundingClientRect();e.width=n.width,e.height=n.height;const i=E();t.fillStyle=i.backgroundColor,t.fillRect(0,0,n.width,n.height)}}}},[m]),n(()=>{I()},[m]);const z=c||l||o?.validation?.readonly;return W.jsxs("div",{className:`form-group ${(()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!g&&o.basic.label&&W.jsxs("label",{htmlFor:e,className:"form-label",children:[o.basic.label,o.validation.required&&W.jsx("span",{className:"required-indicator",children:"*"})]}),W.jsxs("div",{className:"input-wrapper",children:[W.jsxs("div",{className:"signature-container",style:{position:"relative",width:"100%",maxWidth:"100%",overflow:"hidden"},children:[W.jsx("canvas",{ref:x,id:e,className:`form-signature ${!S(C).isValid&&j?"is-invalid":""} ${b}`.trim(),onMouseDown:V,onMouseMove:D,onMouseUp:F,onMouseLeave:F,onTouchStart:V,onTouchMove:D,onTouchEnd:F,onFocus:()=>{f&&f()},onBlur:()=>{h&&h()},style:{width:"100%",height:"150px",border:"2px solid var(--df-color-primary-border)",borderRadius:"6px",cursor:z?"not-allowed":"crosshair",backgroundColor:"var(--df-color-fb-input-bg)",touchAction:"none",userSelect:"none"}}),!z&&W.jsx("button",{type:"button",onClick:e=>(e=>{e?.preventDefault(),e?.stopPropagation();const t=x.current;if(!t)return;const n=t.getBoundingClientRect();t.width=n.width,t.height=n.height;const i=t.getContext("2d");if(!i)return;const o=E();i.fillStyle=o.backgroundColor,i.fillRect(0,0,n.width,n.height),i.strokeStyle=o.strokeColor,i.lineWidth=2,i.lineCap="round",i.lineJoin="round",w(""),$("")})(e),className:"clear-signature-btn",style:{position:"absolute",bottom:"8px",right:"8px",padding:"4px 8px",backgroundColor:"var(--df-color-error-primary)",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"0.75rem",fontWeight:"500",zIndex:10,transition:"all 0.2s ease",minWidth:"60px",minHeight:"28px"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="var(--df-color-error-dark, #dc2626)",e.currentTarget.style.transform="scale(1.05)"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="var(--df-color-error-primary)",e.currentTarget.style.transform="scale(1)"},children:"Clear"})]}),W.jsx(J,{validationErrors:a,fieldId:e,touchedFields:d,formSubmitted:u,properties:o,localValidation:S(C),isTouched:j,mode:m})]})]})},oe=({id:e,properties:o,validationErrors:a={},formValue:s=null,readonly:l=!1,disabled:c=!1,touchedFields:d={},formSubmitted:u=!1,mode:m="test",onValueChange:p,onBlur:h,onFocus:f,className:b="",hideLabel:g=!1})=>{const[x,v]=t([]),[y,j]=t(!1),[N,C]=t(!1),w=r(null),k=i(t=>{if(!t)return[];const n=Array.isArray(t)?t:Array.from(t),i=[];return n.forEach((t,n)=>{let o,r,a=0,s="",l="";if(t instanceof File||t instanceof Blob){const e=t;if(a=e.size||0,s=e.type||"",l=e.name||`file-${n}`,r=e,s.startsWith("image/"))try{o=URL.createObjectURL(e)}catch(e){console.error("Error creating object URL:",e),o=void 0}}else if("string"==typeof t){const e=t;if(l=`file-${n}`,e.startsWith("data:")){const t=e.indexOf(";");s=t>5?e.substring(5,t):"application/octet-stream"}else{const t=e.match(/\.(jpg|jpeg|png|gif|webp|svg|pdf|doc|docx|xls|xlsx|zip|rar)$/i);if(t){s={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",pdf:"application/pdf",doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",zip:"application/zip",rar:"application/x-rar-compressed"}[t[1].toLowerCase()]||"application/octet-stream"}else s="application/octet-stream"}(e.startsWith("data:image")||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("blob:"))&&(o=e),r=new File([],l,{type:s})}else{if(!t||"object"!=typeof t)return;{const e=t;if(l=e.name||e.fileName||`file-${n}`,a=e.size||e.fileSize||0,s=e.type||e.fileType||e.mimeType||"",e.url||e.path)o=e.url||e.path;else if(s.startsWith("image/")&&e.data){const t=e.data;o="string"==typeof t?t.startsWith("data:")?t:`data:${s};base64,${t}`:void 0}r=new File([],l,{type:s})}}i.push({file:r,id:`${e}-file-${n}`,size:a,type:s,name:l,preview:o})}),i},[e]),T=i(()=>({isValid:!0,errors:{}}),[]),S=i(t=>{if(l||c)return;const n=k(t),i=x.length>0?[...x,...n]:n,r=o?.validation?.maxFiles||1/0,a=i.slice(0,r);if(v(a),C(!0),p){const t=T(),n={id:e,value:a.map(e=>e.file),isValid:t.isValid,errors:t.errors};p(n)}},[x,o,l,c,p,T,k,e]),$=e=>{if(0===e)return"0 Bytes";const t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(2))+" "+["Bytes","KB","MB","GB"][t]},E=e=>e.startsWith("image/")?"🖼️":e.startsWith("video/")?"🎥":e.startsWith("audio/")?"🎵":e.includes("pdf")?"📄":e.includes("word")||e.includes("document")?"📝":e.includes("excel")||e.includes("spreadsheet")?"📊":e.includes("zip")||e.includes("rar")?"📦":"📁";n(()=>{N&&(d[e]=!0)},[N,e,d]),n(()=>{("edit"===m||"test"===m)&&C(!1)},[m]),n(()=>{const e=k(s);v(e)},[s,k]),n(()=>{u&&C(!0)},[u]),n(()=>()=>{x.forEach(e=>{if(e.preview&&e.preview.startsWith("blob:"))try{URL.revokeObjectURL(e.preview)}catch(e){console.error("Error revoking object URL:",e)}})},[x]);const A=()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"},I=c||l||o?.validation?.readonly,L=o?.validation?.multiple||!1,R=o?.validation?.accept||"*/*",V=o?.validation?.maxFiles||1/0,D=x.length<V&&(L||V>1),F="edit"===m,O="preview"===m||"test"===m,z=x.filter(e=>e.type.startsWith("image/")),q=x.filter(e=>!e.type.startsWith("image/")),_=z.length>0;return O&&_?W.jsxs("div",{className:`form-group ${A()}`,children:[!g&&W.jsxs("label",{htmlFor:e,className:"form-label",children:[o.basic?.label||"Attachments",o.validation?.required&&W.jsx("span",{className:"required-indicator",children:"*"})]}),W.jsxs("div",{className:"file-upload-wrapper",children:[W.jsxs("div",{className:"file-image-display",children:[z.map(e=>W.jsxs("div",{className:"file-image-container",children:[e.preview&&W.jsx("img",{src:e.preview,alt:e.name,className:"file-image-preview"}),W.jsxs("div",{className:"file-image-info",children:[W.jsx("div",{className:"file-name",title:e.name,children:e.name}),W.jsx("div",{className:"file-size",children:$(e.size)})]})]},e.id)),q.length>0&&W.jsxs("div",{className:"file-other-files",children:[W.jsx("div",{className:"file-other-files-label",children:"Other Files:"}),q.map(e=>W.jsxs("div",{className:"file-item-minimal",children:[W.jsx("div",{className:"file-icon",children:E(e.type)}),W.jsxs("div",{className:"file-info",children:[W.jsx("div",{className:"file-name",title:e.name,children:e.name}),W.jsx("div",{className:"file-size",children:$(e.size)})]})]},e.id))]})]}),W.jsx(J,{validationErrors:a,fieldId:e,touchedFields:d,formSubmitted:u,properties:o,localValidation:T(),isTouched:N,mode:m})]})]}):W.jsxs("div",{className:`form-group ${A()}`,children:[!g&&W.jsxs("label",{htmlFor:e,className:"form-label",children:[o.basic?.label||"Attachments",o.validation?.required&&W.jsx("span",{className:"required-indicator",children:"*"})]}),W.jsxs("div",{className:"file-upload-wrapper",children:[W.jsxs("div",{className:`file-upload-area ${y?"drag-over":""} ${l?"readonly":""} ${c?"disabled":""} ${b}`.trim(),onDragOver:e=>{e.preventDefault(),l||c||j(!0)},onDragLeave:e=>{e.preventDefault(),j(!1)},onDrop:e=>{if(e.preventDefault(),j(!1),l||c)return;const t=e.dataTransfer.files;t.length>0&&S(t)},onClick:e=>{const t=e.target,n=null!==t.closest(".file-item"),i=null!==t.closest(".file-remove");!F||I||0!==x.length||n||i||w.current?.click()},onFocus:()=>{f&&f()},onBlur:()=>{if(C(!0),"test"===m&&p){const t=T(),n={id:e,value:x.map(e=>e.file),isValid:t.isValid,errors:t.errors};p(n)}h&&h()},tabIndex:I?-1:0,children:[W.jsx("input",{ref:w,type:"file",id:e,multiple:L,accept:R,onChange:e=>{const t=e.target.files;t&&t.length>0&&(S(t),e.target.value="")},disabled:I,style:{display:"none"}}),0===x.length?W.jsxs("div",{className:"upload-placeholder",onClick:e=>{e.stopPropagation(),F&&!I&&w.current?.click()},children:[W.jsx("div",{className:"upload-icon",children:"📁"}),W.jsx("div",{className:"upload-text",children:o.basic.placeholder&&W.jsx("p",{className:"upload-hint",children:o.basic.placeholder})})]}):W.jsx("div",{className:"file-list",children:x.map(t=>W.jsxs("div",{className:"file-item",children:[W.jsx("div",{className:"file-preview",children:t.preview?W.jsx("img",{src:t.preview,alt:t.name,className:"file-image"}):W.jsx("div",{className:"file-icon",children:E(t.type)})}),W.jsxs("div",{className:"file-info",children:[W.jsx("div",{className:"file-name",title:t.name,children:t.name}),W.jsx("div",{className:"file-size",children:$(t.size)})]}),F&&!I&&W.jsx("button",{type:"button",className:"file-remove",onClick:n=>{n.stopPropagation(),(t=>{if(l||c)return;const n=x.filter(e=>e.id!==t);if(v(n),C(!0),p){const t=T(),i={id:e,value:n.map(e=>e.file),isValid:t.isValid,errors:t.errors};p(i)}})(t.id)},"aria-label":`Remove ${t.name}`,children:"✕"})]},t.id))})]}),x.length>0&&D&&!I&&F&&W.jsxs("button",{type:"button",className:"file-add-more",onClick:e=>{e.stopPropagation(),!I&&w.current&&F&&(w.current.value="",w.current.click())},"aria-label":"Add more files",children:[W.jsx("svg",{className:"file-add-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:W.jsx("path",{d:"M12 5v14M5 12h14"})}),W.jsx("span",{className:"file-add-text",children:"Add More Files"})]}),W.jsx(J,{validationErrors:a,fieldId:e,touchedFields:d,formSubmitted:u,properties:o,localValidation:T(),isTouched:N,mode:m})]})]})},re=({id:e,properties:o,validationErrors:a={},formValue:s=null,readonly:l=!1,disabled:p=!1,touchedFields:h={},formSubmitted:f=!1,mode:b="test",onValueChange:g,onBlur:x,onFocus:v,className:y="",hideLabel:j=!1})=>{const[N,C]=t(s),[w,k]=t(!1),[T,S]=t(""),[$,E]=t(!1),[A,I]=t(!1),[L,R]=t({lat:40.7128,lng:-74.006}),[V,D]=t(null),[F,O]=t(10),[z,q]=t(""),[_,M]=t(!1),P=r(null),[B,U]=t(!1),[H,Y]=t(null),[G,X]=t(!1);n(()=>{s?(C(s),s.latitude&&s.longitude&&(D({lat:s.latitude,lng:s.longitude,isCurrentLocation:!1}),R({lat:s.latitude,lng:s.longitude}))):(C(null),D(null))},[s]),n(()=>{A&&40.7128===L.lat&&L.lng},[A,L]),n(()=>{(l||p)&&(A&&I(!1),z&&q(""),B&&(U(!1),Y(null)))},[l,p]);const K=i(async(e,t)=>{X(!0);try{const n=await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${e}&lon=${t}&addressdetails=1&zoom=18`),i=await n.json();if(i&&i.address){const e=i.address;return{placeName:i.display_name||"",city:e.city||e.town||e.village||e.municipality||"",country:e.country||""}}}catch(e){console.error("Reverse geocoding failed:",e)}finally{X(!1)}return{placeName:"",city:"",country:""}},[]),Z=i(async(t,n,i)=>{const o=await K(t,n),r={latitude:t,longitude:n,timestamp:Date.now(),placeName:o.placeName,city:o.city,country:o.country,address:o.placeName,...i};if(C(r),D({lat:t,lng:n,isCurrentLocation:!1}),E(!0),g){g({id:e,value:r,isValid:!0,errors:{}})}},[K,e,g]),Q=i(()=>{if(l||p)return;if(!navigator.geolocation)return void S("Geolocation is not supported by this browser.");k(!0),S("");const e={enableHighAccuracy:o.validation?.enableHighAccuracy??!0,timeout:o.validation?.timeout??1e4,maximumAge:o.validation?.maximumAge??3e5};navigator.geolocation.getCurrentPosition(async e=>{const t=e.coords.latitude,n=e.coords.longitude;D({lat:t,lng:n,isCurrentLocation:!0}),R({lat:t,lng:n}),E(!0),await Z(t,n,{accuracy:e.coords.accuracy,timestamp:e.timestamp}),k(!1)},e=>{k(!1);let t="Unable to retrieve your location.";switch(e.code){case e.PERMISSION_DENIED:t="Location access denied by user.";break;case e.POSITION_UNAVAILABLE:t="Location information is unavailable.";break;case e.TIMEOUT:t="Location request timed out."}S(t)},e)},[l,p,e,g,o]),ee=i(()=>{if(!l&&!p&&(C(null),D(null),S(""),E(!0),g)){g({id:e,value:null,isValid:!0,errors:{}})}},[l,p,e,g]),te=i(()=>{l||p||I(!A)},[l,p,A]),ne=i((e,t,n,i,o,r)=>{const a=e-o/2,s=t-r/2,l=156543.03392*Math.cos(n.lat*Math.PI/180)/Math.pow(2,i),c=a*l,d=s*l;return{lat:n.lat+d/111320,lng:n.lng+c/(111320*Math.cos(n.lat*Math.PI/180))}},[]),ie=i(e=>{l||p||!P.current||0===e.button&&(U(!0),Y({x:e.clientX,y:e.clientY}),e.preventDefault())},[l,p]),oe=i(e=>{if(!B||!H||!P.current)return;const t=e.clientX-H.x,n=e.clientY-H.y,i=156543.03392*Math.cos(L.lat*Math.PI/180)/Math.pow(2,F),o=-n*i/111320,r=t*i/(111320*Math.cos(L.lat*Math.PI/180));R({lat:L.lat+o,lng:L.lng+r}),Y({x:e.clientX,y:e.clientY})},[B,H,L,F]),re=i(async e=>{if(!P.current)return;if(B&&H){const t=Math.abs(e.clientX-H.x),n=Math.abs(e.clientY-H.y);if(t>5||n>5)return U(!1),void Y(null)}if(l||p)return U(!1),void Y(null);const t=P.current.getBoundingClientRect(),n=e.clientX-t.left,i=e.clientY-t.top,{lat:o,lng:r}=ne(n,i,L,F,t.width,t.height);await Z(o,r),U(!1),Y(null)},[l,p,P,L,F,ne,Z,B,H]),ae=i(async t=>{if(t.trim()&&!l&&!p){M(!0),S("");try{const n=await fetch(`https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(t)}&limit=5&addressdetails=1`),i=await n.json();if(i&&i.length>0){const t=i[0],n=parseFloat(t.lat),o=parseFloat(t.lon),r=t.address||{},a={latitude:n,longitude:o,address:t.display_name,placeName:t.display_name,city:r.city||r.town||r.village||r.municipality||"",country:r.country||"",timestamp:Date.now()};if(C(a),D({lat:n,lng:o,isCurrentLocation:!1}),R({lat:n,lng:o}),E(!0),g){g({id:e,value:a,isValid:!0,errors:{}})}}else S("No locations found for your search.")}catch(e){S("Failed to search for location. Please try again.")}finally{M(!1)}}},[l,p,e,g]),se=()=>{v&&v()},le=()=>{E(!0),x&&x()},ce=p||l||o?.validation?.readonly,de=o?.basic?.label||"Location",ue=o?.basic?.description||"";return W.jsxs("div",{className:`form-group ${j?"no-label":""} ${y}`,children:[!j&&W.jsxs("label",{htmlFor:e,className:"form-label",children:[de,o?.validation?.required&&W.jsx("span",{className:"required-indicator",children:"*"})]}),ue&&W.jsx("div",{className:"form-group-description",children:ue}),W.jsxs("div",{className:"location-wrapper",children:[!(l&&N)&&W.jsxs("div",{className:"location-controls",children:[W.jsx("button",{type:"button",className:"location-btn "+(w?"loading":""),onClick:Q,disabled:ce||w,onFocus:se,onBlur:le,tabIndex:ce?-1:0,children:w?W.jsxs(W.Fragment,{children:[W.jsx(c,{size:16,className:"loading-spinner"}),"Getting Location..."]}):W.jsxs(W.Fragment,{children:[W.jsx(d,{size:16}),"Get Current Location"]})}),W.jsxs("button",{type:"button",className:"location-btn secondary",onClick:te,disabled:ce,onFocus:se,onBlur:le,tabIndex:ce?-1:0,children:[W.jsx(u,{size:16}),A?"Hide Map":"Choose on Map"]})]}),N&&W.jsxs("div",{className:"location-display",children:[!l&&W.jsx("button",{type:"button",className:"location-clear-btn",onClick:ee,disabled:ce,title:"Clear location",children:W.jsx(m,{size:16})}),N.placeName&&W.jsxs("div",{className:"location-place-name",children:[W.jsx("strong",{children:"Place:"})," ",N.placeName]}),(N.city||N.country)&&W.jsxs("div",{className:"location-address",children:[W.jsx("strong",{children:"Address:"})," ",[N.city,N.country].filter(Boolean).join(", ")]}),W.jsxs("div",{className:"location-coordinates",children:[W.jsx("strong",{children:"Coordinates:"})," ",(pe=N.latitude,he=N.longitude,`${pe.toFixed(6)}, ${he.toFixed(6)}`)]}),N.accuracy&&W.jsxs("div",{className:"location-accuracy",children:[W.jsx("strong",{children:"Accuracy:"})," ",(me=N.accuracy,me?`±${Math.round(me)}m`:"")]}),N.timestamp&&W.jsxs("div",{className:"location-timestamp",children:[W.jsx("strong",{children:"Captured:"})," ",new Date(N.timestamp).toLocaleString()]})]}),A&&!l&&W.jsxs("div",{className:"location-map-container",children:[W.jsxs("div",{className:"location-map-header",children:[W.jsx("h4",{children:"Select Location on Map"}),W.jsx("p",{children:"Search for a place or click on the map to select a location"})]}),W.jsx("div",{className:"location-search",children:W.jsx("form",{onSubmit:e=>{e.preventDefault(),z.trim()&&ae(z)},className:"search-form",children:W.jsxs("div",{className:"search-input-group",children:[W.jsx("input",{type:"text",value:z,onChange:e=>{q(e.target.value)},placeholder:"Search for a place (e.g., New York, Paris, Tokyo)",className:"search-input",disabled:ce||_}),W.jsx("button",{type:"submit",className:"search-btn",disabled:ce||_||!z.trim(),children:_?W.jsx(c,{size:16,className:"loading-spinner"}):"Search"})]})})}),W.jsxs("div",{ref:P,className:"location-map "+(B?"dragging":""),onMouseDown:ie,onMouseMove:oe,onMouseUp:re,onMouseLeave:()=>{U(!1),Y(null)},style:{position:"relative",height:"400px",border:"2px solid var(--df-color-fb-border)",borderRadius:"8px",overflow:"hidden",cursor:B?"grabbing":"grab",background:`url(https://tile.openstreetmap.org/${F}/${Math.floor((L.lng+180)/360*Math.pow(2,F))}/${Math.floor((1-Math.log(Math.tan(L.lat*Math.PI/180)+1/Math.cos(L.lat*Math.PI/180))/Math.PI)/2*Math.pow(2,F))}.png) center/cover no-repeat`,userSelect:"none"},children:[V&&W.jsx("div",{className:"map-marker "+(V.isCurrentLocation?"current-location":"selected-location"),style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -100%)",zIndex:10},children:W.jsx(u,{size:24})}),W.jsx("div",{className:"map-center-indicator",style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",width:"4px",height:"4px",backgroundColor:"var(--df-color-primary)",borderRadius:"50%",zIndex:5}}),W.jsxs("div",{className:"map-controls",children:[W.jsx("button",{type:"button",className:"map-zoom-btn",onClick:()=>O(e=>Math.min(18,e+1)),disabled:F>=18,children:"+"}),W.jsx("button",{type:"button",className:"map-zoom-btn",onClick:()=>O(e=>Math.max(1,e-1)),disabled:F<=1,children:"−"})]})]}),W.jsxs("div",{className:"location-map-instructions",children:[W.jsx("p",{children:W.jsx("strong",{children:"Instructions:"})}),W.jsxs("ul",{children:[W.jsx("li",{children:"Search for a place using the search box above"}),W.jsx("li",{children:"Click anywhere on the map to select a location"}),W.jsx("li",{children:"Drag the map to pan around"}),W.jsx("li",{children:"Use the zoom buttons (+/−) to zoom in/out"}),W.jsx("li",{children:'Use "Get Current Location" to automatically detect your position'})]})]}),G&&W.jsxs("div",{className:"location-loading",children:[W.jsx(c,{size:16,className:"loading-spinner"}),W.jsx("span",{children:"Loading address details..."})]})]}),T&&W.jsx("div",{className:"location-error",children:T})]}),W.jsx(J,{validationErrors:a,fieldId:e,touchedFields:h,formSubmitted:f,properties:o,localValidation:{isValid:!0,errors:{}},isTouched:$,mode:b})]});var me,pe,he},ae=({id:e,properties:t,className:n="",hideLabel:i=!1})=>{const o=t.styles?.level??t.basic.level??1,r=t.basic.label,a=()=>{const e={};return t?.styles?.fontSize&&(e.fontSize=t.styles.fontSize),t?.styles?.color&&(e.color=t.styles.color),e};return i?null:(()=>{const i={id:e,className:`form-heading h${o} ${t?.styles?.textAlign?`text-${t.styles.textAlign}`:""} ${n}`.trim(),style:a()};switch(o){case 1:default:return W.jsx("h1",{...i,children:r});case 2:return W.jsx("h2",{...i,children:r});case 3:return W.jsx("h3",{...i,children:r});case 4:return W.jsx("h4",{...i,children:r});case 5:return W.jsx("h5",{...i,children:r});case 6:return W.jsx("h6",{...i,children:r})}})()},se=({id:e,properties:o,mode:a="preview",onValueChange:s,className:l="",hideLabel:c=!1})=>{const[d,u]=t(""),[m,x]=t(o.validation?.listStyle||"numbers"),[v,y]=t("#000000"),j=r(null),N=r(null),C=r(!1),w="edit"===a,k=r({instructions:[],listStyle:"numbers"}),T=r(a);n(()=>{const e=o.basic?.instructions||[],t=o.validation?.listStyle||"numbers",n=JSON.stringify(e)!==JSON.stringify(k.current.instructions)||t!==k.current.listStyle,i=a!==T.current;if(n||i){const o=e.some(e=>/<[^>]+>/.test(e));let r="";if(e.length>0)if(o)r=e.join("");else{const n="numbers"===t?"ol":"bullets"===t?"ul":"div",i=e.map(e=>`<li>${e.replace(/\n/g,"<br>")}</li>`).join("");r="div"===n?e.map(e=>`<div>${e.replace(/\n/g,"<br>")}</div>`).join(""):`<${n}>${i}</${n}>`}x(t),u(r),w&&j.current&&(i||n&&j.current.innerHTML.trim()!==r.trim())&&(j.current.innerHTML=r),k.current={instructions:e,listStyle:t},T.current=a}},[o.basic?.instructions,o.validation?.listStyle,a,w]),n(()=>{if(w&&j.current){const e=j.current.innerHTML.trim();d.trim()===e||C.current||(j.current.innerHTML=d)}if(C.current){const e=setTimeout(()=>{C.current=!1},200);return()=>clearTimeout(e)}},[d,w]);const S=i(()=>{if(!j.current)return;C.current=!0;const t=j.current.innerHTML.trim();if(s){s({id:e,value:{instructions:t?[t]:[],listStyle:m},isValid:!0,errors:{}})}t!==d&&u(t)},[e,m,s,d]),$=i(()=>{if(!j.current)return;const t=j.current.innerHTML.trim();if(s){s({id:e,value:{instructions:t?[t]:[],listStyle:m},isValid:!0,errors:{}})}u(t),C.current=!1},[e,m,s]),E=i((e,t)=>{document.execCommand(e,!1,t),j.current?.focus(),S()},[S]),A=i(()=>{E("bold")},[E]),I=i(()=>{E("italic")},[E]),L=i(e=>{const t=e.target.value;y(t),E("foreColor",t)},[E]),R=i(t=>{if(x(t),!j.current)return;const n=window.getSelection(),i=n&&n.rangeCount>0?n.getRangeAt(0):null;let o=j.current.innerHTML;if("numbers"===t){if(o=o.replace(/<ul>/gi,"<ol>").replace(/<\/ul>/gi,"</ol>"),!o.includes("<ol>")&&!o.includes("<ul>")){const e=o.split(/<br\s*\/?>/i).filter(e=>e.trim());e.length>0&&(o="<ol>"+e.map(e=>`<li>${e}</li>`).join("")+"</ol>")}}else if("bullets"===t){if(o=o.replace(/<ol>/gi,"<ul>").replace(/<\/ol>/gi,"</ul>"),!o.includes("<ol>")&&!o.includes("<ul>")){const e=o.split(/<br\s*\/?>/i).filter(e=>e.trim());e.length>0&&(o="<ul>"+e.map(e=>`<li>${e}</li>`).join("")+"</ul>")}}else o=o.replace(/<\/?[ou]l>/gi,"").replace(/<li>/gi,"<div>").replace(/<\/li>/gi,"</div>");if(j.current.innerHTML=o,u(o),i&&n)try{n.removeAllRanges(),n.addRange(i)}catch(e){}if(S(),s){s({id:e,value:{instructions:o?[o]:[],listStyle:t},isValid:!0,errors:{}})}},[e,S,s]),V=i(e=>{const t=e.target.files?.[0];if(!t||!t.type.startsWith("image/"))return;const n=new FileReader;n.onload=e=>{const t=e.target?.result;if(t&&j.current){const e=document.createElement("img");e.src=t,e.style.maxWidth="100%",e.style.height="auto";const n=window.getSelection();if(n&&n.rangeCount>0){const t=n.getRangeAt(0);t.deleteContents(),t.insertNode(e)}else j.current.appendChild(e);S()}},n.readAsDataURL(t),N.current&&(N.current.value="")},[S]),D=i(e=>{e.preventDefault();const t=e.clipboardData.getData("text/plain"),n=window.getSelection();if(n&&n.rangeCount>0){const e=n.getRangeAt(0);e.deleteContents();const i=document.createTextNode(t);e.insertNode(i),e.setStartAfter(i),e.collapse(!0),n.removeAllRanges(),n.addRange(e)}S()},[S]),F=i(e=>document.queryCommandState(e),[]);return W.jsxs("div",{className:`form-group instruction-group ${l}`,children:[!c&&W.jsx("label",{htmlFor:e,className:"instruction-label",children:"Instructions"}),w?W.jsxs("div",{className:"instruction-rich-editor",children:[W.jsxs("div",{className:"instruction-toolbar",children:[W.jsxs("div",{className:"toolbar-group",children:[W.jsx("button",{type:"button",className:"toolbar-btn "+(F("bold")?"active":""),onClick:A,title:"Bold","aria-label":"Bold",children:W.jsx(p,{size:16})}),W.jsx("button",{type:"button",className:"toolbar-btn "+(F("italic")?"active":""),onClick:I,title:"Italic","aria-label":"Italic",children:W.jsx(h,{size:16})})]}),W.jsx("div",{className:"toolbar-separator"}),W.jsx("div",{className:"toolbar-group",children:W.jsxs("div",{className:"color-picker-wrapper",children:[W.jsx("input",{type:"color",value:v,onChange:L,className:"color-picker-input",title:"Text Color"}),W.jsx("label",{className:"color-picker-label",title:"Text Color",children:W.jsx("span",{style:{color:v},children:"A"})})]})}),W.jsx("div",{className:"toolbar-separator"}),W.jsxs("div",{className:"toolbar-group",children:[W.jsx("button",{type:"button",className:"toolbar-btn "+("bullets"===m?"active":""),onClick:()=>R("bullets"),title:"Bullet List","aria-label":"Bullet List",children:W.jsx(f,{size:16})}),W.jsx("button",{type:"button",className:"toolbar-btn "+("numbers"===m?"active":""),onClick:()=>R("numbers"),title:"Numbered List","aria-label":"Numbered List",children:W.jsx(b,{size:16})})]}),W.jsx("div",{className:"toolbar-separator"}),W.jsxs("div",{className:"toolbar-group",children:[W.jsx("button",{type:"button",className:"toolbar-btn",onClick:()=>N.current?.click(),title:"Insert Image","aria-label":"Insert Image",children:W.jsx(g,{size:16})}),W.jsx("input",{ref:N,type:"file",accept:"image/*",onChange:V,style:{display:"none"}})]})]}),W.jsx("div",{ref:j,contentEditable:!0,className:"instruction-editor-content",onInput:S,onBlur:$,onPaste:D,"data-placeholder":"Enter instructions (press Enter for a new line)...",suppressContentEditableWarning:!0})]}):W.jsx("div",{className:"instruction-preview-wrapper "+("numbers"===m?"instruction-list-numbers":"bullets"===m?"instruction-list-bullets":""),children:d?W.jsx("div",{className:"instruction-preview-content",dangerouslySetInnerHTML:{__html:d}}):W.jsx("div",{className:"instruction-empty",children:W.jsx("p",{children:"No instructions provided"})})})]})},le=({attachments:e,onRemove:i})=>{const[o,r]=t(new Map);return n(()=>{if(!e)return void r(e=>(e.forEach(e=>URL.revokeObjectURL(e)),new Map));const t=new Map;return e.forEach((e,n)=>{if(e.type.startsWith("image/")){const i=URL.createObjectURL(e);t.set(n,i)}}),r(e=>(e.forEach((e,n)=>{t.has(n)||URL.revokeObjectURL(e)}),t)),()=>{t.forEach(e=>URL.revokeObjectURL(e))}},[e]),e&&0!==e.length?W.jsx("div",{className:"attachment-thumbnails-container",children:e.map((e,t)=>{const n=e.type.startsWith("image/"),r=o.get(t);return W.jsx("div",{className:"attachment-thumbnail",children:n&&r?W.jsxs(W.Fragment,{children:[W.jsx("img",{src:r,alt:e.name}),W.jsx("button",{type:"button",className:"thumbnail-remove-btn",onClick:()=>i(t),title:"Remove attachment",children:W.jsx(m,{size:14})})]}):W.jsxs(W.Fragment,{children:[W.jsx("div",{className:"file-icon-placeholder",children:W.jsx(v,{size:20})}),W.jsx("span",{className:"file-name",children:e.name}),W.jsx("button",{type:"button",className:"thumbnail-remove-btn",onClick:()=>i(t),title:"Remove attachment",children:W.jsx(m,{size:14})})]})},t)})}):null},ce=({component:e,mode:o,formTemplateId:a,formValue:s,onNotesChange:l,onAttachmentChange:c,notes:d="",attachments:u=null,onThresholdActionCompletion:m,onThresholdIssueRaised:p,onBasicPropertyActionCompletion:h})=>{const[f,b]=t(d||""),[g,k]=t(u||null),[T,S]=t(!1),[$,E]=t(!1),[A,I]=t(!1),[L,R]=t(!1),[V,D]=t(!1),F=r(null),O=r(s),z=r(!1),q=r(!1);n(()=>{z.current||null==d||(b(d),z.current=!0)},[d]),n(()=>{q.current||void 0===u||(k(u),q.current=!0)},[u]),n(()=>{z.current&&!T&&null!=d&&(f&&""!==f.trim()&&d===f||b(d))},[d,T,f]),n(()=>{q.current&&void 0!==u&&(!g||u&&u.length>0&&u!==g)&&k(u)},[u,g]),n(()=>{const t=["select","radio","checkbox","segment"].includes(e.name||"");if(t){const t=O.current,n=s;let i=!1;if("checkbox"===e.name){const e=Array.isArray(t)?t:t?[t]:[],o=Array.isArray(n)?n:n?[n]:[];i=JSON.stringify(e.sort())!==JSON.stringify(o.sort())}else i=t!==n&&void 0!==t;i&&(I(!1),R(!1),E(!1),S(!1),D(!1),d&&""!==d.trim()||b(""),u&&0!==u.length||k(null)),O.current=n}t||(O.current=s)},[s,e.name,d,u]);const _=i((e,t)=>{const{operator:n,value:i}=e,o=String(t).toLowerCase(),r=String(i).toLowerCase();switch(n){case"equals":return o===r||String(t)===String(i);case"notEquals":return o!==r&&String(t)!==String(i);case"greaterThan":return Number(t)>Number(i);case"lessThan":return Number(t)<Number(i);case"greaterThanOrEqual":return Number(t)>=Number(i);case"lessThanOrEqual":return Number(t)<=Number(i);default:return!1}},[]),M=i(()=>{if(!(null!=s&&""!==s&&!(Array.isArray(s)&&0===s.length)))return[];const t=e.condition;if(!t||!t.conditions||0===t.conditions.length)return[];const n=[];if("checkbox"===e.name&&Array.isArray(s))s.forEach(e=>{const i=t.conditions.find(t=>_(t,e));i&&!n.find(e=>e.id===i.id)&&n.push(i)});else{const e=t.conditions.find(e=>_(e,s));e&&n.push(e)}return n},[e,s,_]),P=i(t=>{const n=t.target.value;b(n),l&&l(n);const i=M(),o=n.trim().length>0;i.forEach(e=>{!0===e.enableNotes&&m&&m(e.id,"notes",o)});const r=e.condition;!(r&&r.conditions&&r.conditions.length>0)&&h&&h("notes",o)},[l,M,m,e,h]),B=i(()=>{f.trim().length>0&&S(!1)},[f]),U=i(()=>{S(!0)},[]),H=i(()=>{S(!0)},[]),J=i(()=>{F.current?.click()},[]),G=i(t=>{const n=t.target.files;if(n&&n.length>0){const t=Array.from(n);k(t),c&&c(t);M().forEach(e=>{!0===e.enableAttachment&&m&&m(e.id,"attachments",!0)});const i=e.condition;!(i&&i.conditions&&i.conditions.length>0)&&h&&h("attachments",!0)}F.current&&(F.current.value="")},[c,M,m,e,h]),X=i(t=>{if(g){const n=g.filter((e,n)=>n!==t);if(0===n.length){k(null),c&&c(null);M().forEach(e=>{!0===e.enableAttachment&&m&&m(e.id,"attachments",!1)});const t=e.condition;!(t&&t.conditions&&t.conditions.length>0)&&h&&h("attachments",!1)}else k(n),c&&c(n)}},[g,c,M,m,e,h]),K=i(()=>{I(!0);M().forEach(e=>{!0===e.enableSendEmail&&m&&m(e.id,"email",!0)});const t=e.condition;!(t&&t.conditions&&t.conditions.length>0)&&h&&h("email",!0),setTimeout(()=>{I(!1)},3e3)},[M,m,e,h]),Z=i(()=>{E(!0)},[]),Q=i(()=>{E(!1)},[]),ee=i(()=>{E(!1),R(!0);const t=e.condition;if(t&&t.conditions&&t.conditions.length>0){M().forEach(e=>{!0===e.enableRaiseIssue&&p&&p(e.id)})}else h&&h("issue",!0)},[e,h,M,p]);if("test"!==o)return null;const te=["select","radio","checkbox","segment"].includes(e.name||""),ne=e.basic?.options||e.options||[];let ie=!1,oe=!1,re=!1,ae=!1,se=null;const ce=null!=s&&""!==s&&!(Array.isArray(s)&&0===s.length),de=e.condition,ue=de&&de.conditions&&de.conditions.length>0;if(ue&&ce)if("checkbox"===e.name&&Array.isArray(s)){const e=s;for(const t of e){const e=de.conditions.find(e=>_(e,t));e&&(ie=ie||!0===e.enableNotes,oe=oe||!0===e.enableAttachment,re=re||!0===e.enableRaiseIssue,ae=ae||!0===e.enableSendEmail)}}else if(te){const e=de.conditions.find(e=>_(e,s));e&&(ie=!0===e.enableNotes,oe=!0===e.enableAttachment,re=!0===e.enableRaiseIssue,ae=!0===e.enableSendEmail)}else{const e=de.conditions.find(e=>_(e,s));e&&(ie=!0===e.enableNotes,oe=!0===e.enableAttachment,re=!0===e.enableRaiseIssue,ae=!0===e.enableSendEmail)}if(!ue){const t=!0===e.basic?.enableNotes,n=!0===e.basic?.enableAttachment,i=!0===e.basic?.enableRaiseIssue,o=!0===e.basic?.enableSendEmail;if(te&&ce)if("checkbox"===e.name){(Array.isArray(s)?s:[s]).forEach(e=>{const t=ne.find(t=>!(!t||!t.value)&&(t.value===e||(String(t.value)===String(e)||(t.label===e||String(t.label)===String(e)))));t&&(ie=ie||!0===t.enableNotes,oe=oe||!0===t.enableAttachment,re=re||!0===t.enableRaiseIssue,ae=ae||!0===t.enableSendEmail,se||(se=t))}),ie=ie||t,oe=oe||n,re=re||i,ae=ae||o}else if(se=ne.find(e=>!(!e||!e.value)&&(e.value===s||(String(e.value)===String(s)||(e.label===s||String(e.label)===String(s))))),se){const e=!0===se.enableNotes,r=!0===se.enableAttachment,a=!0===se.enableRaiseIssue,s=!0===se.enableSendEmail;ie=e||t,oe=r||n,re=a||i,ae=s||o}else ie=t,oe=n,re=i,ae=o;else ie=t,oe=n,re=i,ae=o}if(!(ie||oe||re||ae))return null;const me=M(),pe=e.condition,he=pe&&pe.conditions&&pe.conditions.length>0,fe=!!he&&me.some(e=>!0===e.enableNotes),be=!!he&&me.some(e=>!0===e.enableAttachment),ge=!!he&&me.some(e=>!0===e.enableSendEmail),xe=!!he&&me.some(e=>!0===e.enableRaiseIssue),ve=f.trim().length>0,ye=g&&g.length>0,je=g?g.length:0;return W.jsxs(W.Fragment,{children:[W.jsxs("div",{className:"component-action-features",children:[W.jsxs("div",{className:"action-icons-toolbar",children:[ie&&W.jsxs("button",{type:"button",className:`action-icon-button ${ve?"active":""} ${fe?"mandatory":""}`,onClick:U,title:"Add Notes",children:[W.jsx(x,{size:14,fill:ve?"currentColor":"none"}),fe&&W.jsx("span",{className:"mandatory-indicator",children:"*"})]}),oe&&W.jsxs("button",{type:"button",className:`action-icon-button ${ye?"active":""} ${be?"mandatory":""}`,onClick:J,title:"Add Attachment",children:[W.jsx(v,{size:14,fill:ye?"currentColor":"none"}),je>0&&W.jsx("span",{className:"attachment-count-badge",children:je}),be&&W.jsx("span",{className:"mandatory-indicator",children:"*"})]}),ae&&W.jsxs("button",{type:"button",className:`action-icon-button ${A?"active sent":""} ${ge?"mandatory":""}`,onClick:K,disabled:A,title:"Send Email",children:[A?W.jsx(W.Fragment,{children:W.jsx(y,{size:14})}):W.jsx(j,{size:14,fill:A?"currentColor":"none"}),ge&&W.jsx("span",{className:"mandatory-indicator",children:"*"})]}),re&&W.jsxs("button",{type:"button",className:`action-icon-button ${L?"active":""} ${xe?"mandatory":""}`,onClick:Z,title:"Raise an Issue",children:[W.jsx(N,{size:14,fill:L?"currentColor":"none"}),xe&&W.jsx("span",{className:"mandatory-indicator",children:"*"})]}),(ve&&ie||ye&&oe)&&W.jsx("button",{type:"button",className:"action-icon-button accordion-toggle",onClick:()=>D(!V),title:V?"Collapse":"Expand",children:V?W.jsx(C,{size:14}):W.jsx(w,{size:14})})]}),T&&ie&&W.jsx("div",{className:"notes-input-overlay",children:W.jsx("textarea",{className:"action-notes-textarea",value:f,onChange:P,onBlur:B,placeholder:"Explain which protocols were not followed",rows:4,autoFocus:!0})}),V&&W.jsxs("div",{className:"actions-content",children:[!T&&ve&&ie&&W.jsx("div",{className:"notes-summary-section",children:W.jsxs("div",{className:"notes-full-text",onClick:H,children:[W.jsx("span",{className:"notes-label",children:"Notes:"})," ",f]})}),ye&&oe&&W.jsx("div",{className:"attachments-section",children:W.jsx(le,{attachments:g,onRemove:X})})]}),oe&&W.jsx("input",{ref:F,type:"file",multiple:!0,accept:"image/*,.pdf",onChange:G,style:{display:"none"}})]}),$&&a&&W.jsx(Y,{isOpen:$,onClose:Q,onSuccess:ee,component:se?{...e,basic:{...e.basic,label:`${e.basic?.label||"Component"} - ${se.label||se.value}`,value:se.value||e.basic?.value||""}}:e,formTemplateId:a,notes:f,attachments:g})]})},de=({attachments:e})=>e&&0!==e.length?W.jsx("div",{className:"attachment-thumbnails-container",children:e.map((e,t)=>{const n=e.type?.startsWith("image/")||!1,i=n?(e=>e.data?e.data.startsWith("data:")?e.data:`data:${e.type||"image/png"};base64,${e.data}`:"")(e):"";return W.jsx("div",{className:"attachment-thumbnail",children:n&&i?W.jsx("img",{src:i,alt:e.name||`Attachment ${t+1}`}):W.jsxs("div",{className:"file-icon-placeholder",children:[W.jsx(v,{size:20}),W.jsx("span",{className:"file-name",children:e.name||`File ${t+1}`})]})},t)})}):null,ue=({component:e})=>{const t=e.basic?.notes||"",n=e.basic?.attachments||[],i=t&&t.trim().length>0,o=n&&n.length>0;return i||o?W.jsx("div",{className:"component-submission-actions",children:W.jsxs("div",{className:"actions-content",children:[i&&W.jsx("div",{className:"notes-summary-section",children:W.jsxs("div",{className:"notes-full-text",children:[W.jsx("span",{className:"notes-label",children:"Notes:"})," ",t]})}),o&&W.jsx("div",{className:"attachments-section",children:W.jsx(de,{attachments:n})})]})}):null},me=({child:e,selectedChild:t,mode:n,onChildSelect:i,onChildDelete:o,renderFormComponent:r,isOverlay:a=!1,isChildrenEditMode:s=!1,formData:l={},formTemplateId:c,onThresholdActionCompletion:d,onThresholdIssueRaised:u,onNotesChange:m,onAttachmentChange:p})=>{const h=l[e.id],f="preview"===n&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0),{attributes:b,listeners:g,setNodeRef:x,transform:v,transition:y,isDragging:j,isSorting:N}=V({id:e.id,disabled:a||"edit"!==n}),C={transform:F.Transform.toString(v),transition:y,opacity:j?.3:1,zIndex:j?1e3:"auto"};return W.jsxs("div",{ref:x,style:C,className:`form-component section-child ${t?.id===e.id?"selected":""} ${j?"dragging":""} ${N?"sorting":""} ${s?"children-edit-active":""}`,onClick:()=>!j&&i(e),role:"button",tabIndex:0,children:[("edit"===n||s)&&W.jsx("div",{className:"child-drag-handle",...g,...b,onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),children:W.jsx(T,{size:14})}),W.jsxs("div",{className:"form-component-content section-child-content",children:[("edit"===n||s)&&W.jsxs("div",{className:"component-actions child-actions",children:[W.jsx("button",{className:"btn edit-btn",onClick:t=>{t.stopPropagation(),i(e)},onMouseDown:e=>e.stopPropagation(),title:"Edit properties",children:W.jsx(S,{size:12})}),W.jsx("button",{className:"btn delete-btn",onClick:t=>o(e,t),onMouseDown:e=>e.stopPropagation(),title:"Delete component",children:W.jsx($,{size:12})})]}),W.jsxs("div",{className:"component-preview child-preview",children:[r(e),"test"===n&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&W.jsx(ce,{component:e,mode:"test",formTemplateId:c,formValue:h,onThresholdActionCompletion:d,onThresholdIssueRaised:u,onNotesChange:m?t=>m(e.id,t):void 0,onAttachmentChange:p?t=>p(e.id,t):void 0}),f&&W.jsx(ue,{component:e})]})]})]})},pe=({id:e,properties:o,mode:r="edit",formData:a={},onValueChange:s,onSelect:l,isSelected:c=!1,className:d="",onSectionSelect:u,onChildSelect:m,onChildDelete:p,selectedChild:h,renderFormComponent:f,formTemplateId:b,onThresholdActionCompletion:g,onThresholdIssueRaised:x,onNotesChange:v,onAttachmentChange:y})=>{const[j,N]=t(o.basic.collapsed),[C,T]=t(!1),[S,$]=t(!1),[E,A]=t(o.basic.label),[V,D]=t(o.basic.description),[F,O]=t(o.children||[]),[z,q]=t(!1);n(()=>{O(o.children||[])},[o.children]),n(()=>{A(o.basic.label),D(o.basic.description)},[o.basic.label,o.basic.description]);const{setNodeRef:_,isOver:M}=I({id:`section-${e}`,disabled:"edit"!==r}),P=!("preview"!==r&&"test"!==r||o.children&&o.children.length>0),B=i(t=>{A(t),s?.({id:e,value:{...o,basic:{...o.basic,label:t}}})},[e,o,s]),U=i(t=>{D(t),s?.({id:e,value:{...o,basic:{...o.basic,description:t}}})},[e,o,s]),H=i(e=>{m?.(e)},[m]),J=i((e,t)=>{t.stopPropagation();const n=F.filter(t=>t.id!==e.id);O(n),p?.(e.id)},[p,F,e]),Y=i(()=>{u?.(o),l?.()},[u,l,o]),G=i(e=>{e.stopPropagation(),"edit"===r&&F.length>0&&q(!z)},[r,F.length,z]),te=i(t=>{t.stopPropagation(),N(!j),s?.({id:e,value:{...o,basic:{...o.basic,collapsed:!j}}})},[j,e,o,s]),oe=f||i(e=>{const t={id:e.id,properties:e,validationErrors:{},formValue:"test"===r?a[e.id]||"defaultValue"in e.basic&&e.basic.defaultValue||"":"defaultValue"in e.basic&&e.basic.defaultValue||"",touchedFields:{},formSubmitted:!1,mode:r,onValueChange:s,onBlur:()=>{},onFocus:()=>{}};switch(e.name){case"text-input":case"email-input":case"number-input":return W.jsx(X,{...t,properties:e,inputType:"text-input"===e.name?"text":"number-input"===e.name?"number":"email",readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"textarea":return W.jsx(K,{...t,properties:e,readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"select":const n={...e,options:e.basic?.options||[]};return W.jsx(Z,{...t,properties:n,disabled:"edit"===r||"preview"===r});case"checkbox":const i={...e,options:e.basic?.options||[]};return W.jsx(Q,{...t,properties:i,formValue:[],disabled:"edit"===r||"preview"===r});case"radio":const o={...e,options:e.basic?.options||[]};return W.jsx(ee,{...t,properties:o,readonly:"edit"===r||"preview"===r,disabled:"edit"===r||"preview"===r});case"date":case"date-picker":case"datetime-picker":return W.jsx(ne,{...t,properties:e,readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"signature":return W.jsx(ie,{...t,properties:e});case"heading":return W.jsx(ae,{...t,properties:e});default:return W.jsx("div",{className:"form-group",children:W.jsxs("div",{className:"form-group-label",children:["Unsupported Component: ",e.name]})})}},[r,s,a]);if(P)return null;const re={backgroundColor:o.styles.backgroundColor,borderColor:o.styles.borderColor,borderWidth:o.styles.borderWidth,borderRadius:o.styles.borderRadius,padding:o.styles.padding,margin:o.styles.margin};return W.jsxs("div",{ref:_,className:`df-form-section ${c?"selected":""} ${M?"drag-over":""} ${d}`,style:re,children:[W.jsxs("div",{className:"section-header "+(z?"children-edit-mode":""),onClick:Y,onDoubleClick:G,children:[W.jsx("div",{className:"section-header-content",children:W.jsxs("div",{className:"section-title",children:[W.jsx("span",{className:"section-toggle",title:j?"Expand section":"Collapse section",role:"button",tabIndex:0,onClick:e=>{e.stopPropagation(),te(e)},onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),te(e))},style:{marginRight:"8px",display:"inline-flex",alignItems:"center"},children:j?W.jsx(k,{size:18}):W.jsx(w,{size:18})}),"edit"===r&&C?W.jsx("input",{type:"text",value:E,onChange:e=>A(e.target.value),onBlur:()=>{T(!1),B(E)},onKeyDown:e=>{"Enter"===e.key&&(T(!1),B(E))},className:"section-title-input",autoFocus:!0}):W.jsx("h3",{className:"section-title-text",onDoubleClick:()=>"edit"===r&&T(!0),style:{display:"inline",margin:0},children:E||"Untitled Section"})]})}),(V||"edit"===r)&&W.jsx("div",{className:"section-description",children:"edit"===r&&S?W.jsx("textarea",{value:V,onChange:e=>D(e.target.value),onBlur:()=>{$(!1),U(V)},onKeyDown:e=>{"Enter"===e.key&&e.ctrlKey&&($(!1),U(V))},className:"section-description-input",placeholder:"Section description (optional)",autoFocus:!0}):W.jsx("p",{className:"section-description-text",onDoubleClick:()=>"edit"===r&&$(!0),children:V||"Section description"})})]}),!j&&W.jsx("div",{className:`section-content ${M?"drag-over":""} ${0===F.length?"empty":"has-children"}`,onClick:e=>{e.target===e.currentTarget&&Y()},children:W.jsx(L,{items:F.map(e=>e.id),strategy:R,children:0===F.length?W.jsxs("div",{className:"section-empty-state",onClick:Y,style:{textAlign:"center",color:"#6b7280",fontSize:"14px",padding:"40px 20px",display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",cursor:"pointer",border:"2px dotted #d1d5db",borderRadius:"8px",backgroundColor:"var(--df-color-fb-container)",transition:"all 0.3s ease",margin:"16px 0"},children:[W.jsx("div",{style:{fontWeight:"500",color:M?"#3b82f6":"#374151"},children:M?"Drop components here":"Empty Section"}),W.jsx("div",{style:{fontSize:"12px",color:"#9ca3af"},children:"Drag and drop components here to create your section"})]}):F.map(e=>W.jsx(me,{child:e,selectedChild:h||null,mode:r,onChildSelect:H,onChildDelete:J,renderFormComponent:oe,isChildrenEditMode:z,formData:a,formTemplateId:b,onNotesChange:v,onAttachmentChange:y,onThresholdActionCompletion:g,onThresholdIssueRaised:x},e.id))})})]})},he=({component:e,selectedComponent:t,mode:n,onComponentSelect:i,onComponentDelete:o,onComponentEdit:r,renderFormComponent:a,isOverlay:s=!1,formData:l={},formTemplateId:c,onThresholdActionCompletion:d,onThresholdIssueRaised:u,onNotesChange:m,onAttachmentChange:p})=>{const h=l[e.id],f="preview"===n&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0),{attributes:b,listeners:g,setNodeRef:x,transform:v,transition:y,isDragging:j,isSorting:N}=V({id:e.id,disabled:s}),C={transform:F.Transform.toString(v),transition:y,opacity:j?.3:1,zIndex:j?1e3:"auto"};return W.jsxs("div",{ref:x,style:{...C,border:t?.id===e.id?"2px solid #3b82f6":"1px solid var(--df-color-fb-border)",borderRadius:"8px",backgroundColor:"var(--df-color-fb-container)",padding:"12px",position:"relative",minHeight:"80px",transition:"all 0.2s ease",boxShadow:t?.id===e.id?"0 4px 12px rgba(59, 130, 246, 0.15)":"0 1px 3px rgba(0, 0, 0, 0.1)",cursor:"pointer"},className:`form-component grid-component ${t?.id===e.id?"selected":""} ${j?"dragging":""} ${N?"sorting":""}`,onClick:()=>!j&&i(e),role:"button",tabIndex:0,children:["edit"===n&&W.jsx("div",{className:"component-drag-handle",...g,...b,onClick:e=>e.stopPropagation(),style:{position:"absolute",top:"50%",left:"4px",transform:"translateY(-50%)",padding:"4px",backgroundColor:"#f3f4f6",borderRadius:"4px",cursor:"grab",opacity:1,zIndex:10,display:"flex",alignItems:"center",justifyContent:"center"},children:W.jsx(T,{size:12,color:"var(--df-color-text-light)"})}),W.jsxs("div",{className:"component-content",style:{paddingTop:"edit"===n?"24px":"0",paddingLeft:"edit"===n?"28px":"0",minHeight:"60px"},children:[a(e),"test"===n&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&W.jsx(ce,{component:e,mode:"test",formTemplateId:c,formValue:h,onThresholdActionCompletion:d,onThresholdIssueRaised:u,onNotesChange:m?t=>m(e.id,t):void 0,onAttachmentChange:p?t=>p(e.id,t):void 0}),f&&W.jsx(ue,{component:e})]}),"edit"===n&&W.jsxs("div",{className:"component-actions",style:{position:"absolute",top:"4px",right:"4px",display:"flex",gap:"4px",opacity:1,zIndex:10},children:[r&&W.jsx("button",{className:"component-edit-btn",onClick:t=>{t.stopPropagation(),r(e)},type:"button",title:"Edit Component",style:{padding:"4px",backgroundColor:"#3b82f6",color:"#ffffff",border:"none",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#2563eb"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#3b82f6"},children:W.jsx(S,{size:12})}),W.jsx("button",{className:"component-delete-btn",onClick:t=>{t.stopPropagation(),o(e,t)},type:"button",title:"Delete Component",style:{padding:"4px",backgroundColor:"#ef4444",color:"#ffffff",border:"none",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#dc2626"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#ef4444"},children:W.jsx($,{size:12})})]})]})},fe=({gridComponents:e,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:o,onComponentUpdate:r,selectedComponent:a,renderFormComponent:s,gridId:l,formData:c={},formTemplateId:d,onThresholdActionCompletion:u,onThresholdIssueRaised:m,onNotesChange:p,onAttachmentChange:h})=>{const{setNodeRef:f,isOver:b}=I({id:`grid-drop-zone-${l}`,disabled:"edit"!==t});return W.jsx("div",{ref:f,className:"grid-drop-zone",style:{border:b?"2px dashed #3b82f6":"2px dashed #d1d5db",borderRadius:"8px",padding:"16px",backgroundColor:b?"var(--df-color-primary-light)":"var(--df-color-fb-container)",minHeight:"120px",transition:"all 0.2s ease",position:"relative"},children:e.length>0?W.jsxs(W.Fragment,{children:[W.jsx(L,{items:e.map(e=>e.id),strategy:D,children:W.jsx("div",{style:{display:"flex",flexDirection:"row",flexWrap:"nowrap",gap:"12px",alignItems:"start",marginBottom:e.length>0?"12px":"0",overflowX:"auto",width:"100%"},children:e.map(e=>W.jsx("div",{style:{flex:"1 1 0",minWidth:"200px",maxWidth:"100%"},children:W.jsx(he,{component:e,selectedComponent:a,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:o,onComponentUpdate:r,renderFormComponent:s,formData:c,formTemplateId:d,onThresholdActionCompletion:u,onThresholdIssueRaised:m,onNotesChange:p,onAttachmentChange:h})},e.id))})}),W.jsx("div",{style:{border:b?"2px dashed #3b82f6":"1px dashed var(--df-color-fb-border)",borderRadius:"6px",padding:"12px",backgroundColor:b?"var(--df-color-primary-light)":"var(--df-color-fb-container)",textAlign:"center",color:"var(--df-color-text-light)",fontSize:"12px",transition:"all 0.2s ease",minHeight:"40px",display:"flex",alignItems:"center",justifyContent:"center"},children:b?W.jsx("span",{style:{color:"#3b82f6",fontWeight:"500"},children:"Drop component here to add to grid"}):W.jsx("span",{children:"+ Drop more components here"})})]}):W.jsxs("div",{style:{textAlign:"center",color:"var(--df-color-text-light)",fontSize:"14px",padding:"40px 20px",display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",backgroundColor:"var(--df-color-fb-container)",border:"1px dashed var(--df-color-fb-border)",borderRadius:"8px"},children:[W.jsx("div",{style:{fontWeight:"500",color:b?"var(--df-color-primary)":"var(--df-color-text-dark)"},children:b?"Drop components here":"Empty DataGrid"}),W.jsx("div",{style:{fontSize:"12px",color:"#9ca3af"},children:"Drag and drop components here to create your grid"})]})})},be=({templateComponents:e,dataEntries:t,renderFormComponent:n,mode:i="preview",allowAddRemoveEntries:o=!0,addAnotherText:r="Add Another",removeText:a="Remove",maxEntries:s=10,minEntries:l=1,displayAsGrid:c=!0,onAddEntry:d,onRemoveEntry:u,formData:m={},formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})=>0===e.length?W.jsxs("div",{style:{textAlign:"center",padding:"40px",color:"var(--df-color-text-light)",border:"1px dashed #d1d5db",borderRadius:"8px",backgroundColor:"var(--df-color-fb-container)"},children:["No components defined. Add components to see the ",c?"table":"list"," view."]}):c?W.jsxs("div",{className:"datagrid-table-view",style:{border:"1px solid var(--df-color-fb-border)",borderRadius:"8px",overflow:"hidden",backgroundColor:"var(--df-color-fb-container)",maxWidth:"100%"},children:[W.jsx("div",{style:{position:"absolute",top:"8px",right:"8px",zIndex:10,fontSize:"12px",color:"var(--df-color-text-light)",backgroundColor:"var(--df-color-fb-container)",padding:"4px 8px",borderRadius:"4px",border:"1px solid var(--df-color-fb-border)",opacity:e.length>4?1:0,transition:"opacity 0.2s ease"},children:"← Scroll →"}),W.jsxs("div",{className:"table-scroll-container",style:{overflowX:"auto",overflowY:"hidden",maxWidth:"100%",scrollbarWidth:"thin",scrollbarColor:"var(--df-color-fb-border) var(--df-color-fb-icon-bg)",position:"relative"},children:[W.jsx("div",{className:"table-headers",style:{display:"grid",gridTemplateColumns:`repeat(${e.length}, minmax(150px, 1fr))`,backgroundColor:"var(--df-color-fb-container)",borderBottom:"2px solid var(--df-color-fb-border)",minWidth:150*e.length+"px"},children:e.map((t,n)=>W.jsx("div",{style:{padding:"12px 16px",fontWeight:"600",color:"var(--df-color-text-dark)",borderRight:n<e.length-1?"1px solid var(--df-color-fb-border)":"none",fontSize:"14px",minWidth:"150px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:t.basic?.label||`Column ${n+1}`},`header-${t.id}`))}),t.length>0?t.map((r,s)=>W.jsxs("div",{className:"table-row",style:{display:"grid",gridTemplateColumns:`repeat(${e.length}, minmax(150px, 1fr))`,borderBottom:s<t.length-1?"1px solid var(--df-color-fb-border)":"none",backgroundColor:s%2==0?"var(--df-color-fb-container)":"var(--df-color-fb-bg)",position:"relative",minWidth:150*e.length+"px"},children:[e.map((t,i)=>{let o=r.components?.[i];if(o)o={...o,id:o.id,basic:{...o.basic,showLabel:!1}};else{const e=`${t.id}-entry-${s}-${i}`;o={...t,id:e,basic:{...t.basic,showLabel:!1}}}return W.jsx("div",{style:{padding:"12px 16px",borderRight:i<e.length-1?"1px solid var(--df-color-fb-border)":"none",minHeight:"60px",minWidth:"150px",display:"flex",alignItems:"center",overflow:"hidden"},children:W.jsx("div",{style:{width:"100%",minWidth:"120px",overflow:"hidden"},children:n(o,!0)})},`${r.id}-${i}`)}),"test"===i&&o&&t.length>l&&W.jsx("button",{onClick:()=>u?.(s),disabled:t.length<=l,style:{position:"absolute",top:"8px",right:"8px",padding:"4px 8px",backgroundColor:t.length<=l?"#f3f4f6":"#ef4444",color:t.length<=l?"#9ca3af":"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px",fontWeight:"500",cursor:t.length<=l?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"4px",zIndex:10,minWidth:"24px",height:"24px",justifyContent:"center"},title:a,children:W.jsx("span",{style:{fontSize:"14px"},children:"×"})})]},r.id)):W.jsxs("div",{style:{padding:"40px",textAlign:"center",color:"var(--df-color-text-light)",backgroundColor:"var(--df-color-fb-container)",borderTop:"1px solid var(--df-color-fb-border)"},children:["No data entries. ","test"===i&&o?'Click "Add Another" to add entries.':"Use the properties panel to add entries."]})]}),"test"===i&&o&&W.jsx("div",{style:{padding:"16px",backgroundColor:"var(--df-color-fb-bg)",borderTop:"1px solid var(--df-color-fb-border)",display:"flex",justifyContent:"center",position:"sticky",bottom:0,zIndex:5},children:W.jsxs("button",{onClick:d,disabled:t.length>=s,style:{padding:"8px 16px",backgroundColor:t.length>=s?"#f3f4f6":"#10b981",color:t.length>=s?"#9ca3af":"#ffffff",border:"none",borderRadius:"6px",fontSize:"14px",fontWeight:"500",cursor:t.length>=s?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"6px"},children:[W.jsx("span",{style:{fontSize:"16px"},children:"+"}),r]})})]}):W.jsxs("div",{className:"datagrid-list-view",style:{display:"flex",flexDirection:"column",gap:"12px",backgroundColor:"var(--df-color-fb-container)"},children:[t.length>0?t.map((r,s)=>W.jsxs("div",{className:"list-entry",style:{border:"1px solid var(--df-color-fb-border)",borderRadius:"8px",padding:"16px",backgroundColor:"var(--df-color-fb-container)",position:"relative",transition:"all 0.2s ease"},children:[W.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px",paddingBottom:"8px",borderBottom:"1px solid var(--df-color-fb-border)"},children:[W.jsxs("span",{style:{fontWeight:"600",color:"var(--df-color-text-dark)",fontSize:"14px"},children:["Entry #",s+1]}),"test"===i&&o&&t.length>1&&W.jsx("button",{onClick:()=>u?.(s),disabled:t.length<=l,style:{padding:"4px 8px",backgroundColor:t.length<=l?"#f3f4f6":"#ef4444",color:t.length<=l?"#9ca3af":"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px",fontWeight:"500",cursor:t.length<=l?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"4px",minWidth:"24px",height:"24px",justifyContent:"center"},title:a,children:W.jsx("span",{style:{fontSize:"14px"},children:"×"})})]}),W.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px"},children:e.map((e,t)=>{let o=r.components?.[t];if(o||(o=r.components?.find(t=>t.name===e.name&&t.basic?.label===e.basic?.label)),o)o={...o,id:o.id,basic:{...o.basic,showLabel:!1}};else{const n=`${e.id}-entry-${s}-${t}`;o={...e,id:n,basic:{...e.basic,showLabel:!1}}}return W.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[W.jsx("label",{style:{fontSize:"12px",fontWeight:"500",color:"var(--df-color-text-light)",textTransform:"uppercase",letterSpacing:"0.05em"},children:e.basic?.label||`Field ${t+1}`}),W.jsxs("div",{style:{minHeight:"40px",display:"flex",alignItems:"center",flexDirection:"column",width:"100%"},children:[n(o),"test"===i&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(o.name)&&W.jsx(ce,{component:o,mode:"test",formTemplateId:p,formValue:m[o.id],onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b?e=>b(o.id,e):void 0,onAttachmentChange:g?e=>g(o.id,e):void 0}),"preview"===i&&(o.basic?.notes&&o.basic.notes.trim().length>0||o.basic?.attachments&&Array.isArray(o.basic.attachments)&&o.basic.attachments.length>0?W.jsx(ue,{component:o}):null)]})]},`${r.id}-${t}`)})})]},r.id)):W.jsxs("div",{style:{padding:"40px",textAlign:"center",color:"var(--df-color-text-light)",backgroundColor:"var(--df-color-fb-container)",border:"1px dashed #d1d5db",borderRadius:"8px"},children:["No data entries. ","test"===i&&o?'Click "Add Another" to add entries.':"Use the properties panel to add entries."]}),"test"===i&&o&&W.jsx("div",{style:{padding:"16px",backgroundColor:"#f8f9fa",border:"1px solid var(--df-color-fb-border)",borderRadius:"8px",display:"flex",justifyContent:"center"},children:W.jsxs("button",{onClick:d,disabled:t.length>=s,style:{padding:"8px 16px",backgroundColor:t.length>=s?"#f3f4f6":"#10b981",color:t.length>=s?"#9ca3af":"#ffffff",border:"none",borderRadius:"6px",fontSize:"14px",fontWeight:"500",cursor:t.length>=s?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"8px",transition:"all 0.2s ease"},onMouseEnter:e=>{t.length<s&&(e.currentTarget.style.backgroundColor="#059669")},onMouseLeave:e=>{t.length<s&&(e.currentTarget.style.backgroundColor="#10b981")},children:[W.jsx("span",{children:"+"}),r]})})]}),ge=({id:e,properties:o,mode:a="edit",formData:s={},onValueChange:l,onSelect:c,isSelected:d=!1,className:u="",onDataGridSelect:m,onComponentSelect:p,onComponentDelete:h,onComponentEdit:f,onComponentUpdate:b,selectedComponent:g,renderFormComponent:x,onEntryAdd:v,onEntryRemove:y,formTemplateId:j,onThresholdActionCompletion:N,onThresholdIssueRaised:C,onNotesChange:T,onAttachmentChange:S})=>{const[$,A]=t(!1),I=r(!1);let L=o.templateComponents||[];const R=o.entries||[];0===L.length&&R.length>0&&R[0].components&&(L=R[0].components.map(e=>({...e,id:e.id?.replace(/-entry-\d+$/,"")||e.id,basic:{...e.basic,showLabel:!0}}))),n(()=>{if("edit"===a&&!o.templateComponents&&l&&I.current){const t={...o,templateComponents:[]};JSON.stringify(t)!==JSON.stringify(o)&&l({id:e,value:t})}I.current=!0},[o.templateComponents,e,l,o,a]),n(()=>{if(L.length>0){if("edit"!==a||!I.current)return;if(R.some(e=>e.components?.some((t,n)=>{const i=`${L[n]?.id}-entry-${e.index}-${n}`;return t.id!==i}))&&l){const t=R.map(e=>({...e,components:e.components?.map((t,n)=>({...t,id:`${L[n]?.id}-entry-${e.index}-${n}`}))||[]})),n={...o,entries:t};return void(JSON.stringify(n)!==JSON.stringify(o)&&l({id:e,value:n}))}if(0===R.length){const t={id:`entry-${e}-0`,index:0,components:L.map((e,t)=>({...e,id:`${e.id}-entry-0-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}};if(l){const n={...o,entries:[t]};JSON.stringify(n)!==JSON.stringify(o)&&l({id:e,value:n})}}else{if(R.some(e=>L.some((t,n)=>{const i=e.components?.[n];if(!i)return!0;const o=`${t.id}-entry-${e.index}-${n}`,r=i.id===o,a=JSON.stringify(i.basic?.options)!==JSON.stringify(t.basic?.options)||i.basic?.placeholder!==t.basic?.placeholder||i.basic?.defaultValue!==t.basic?.defaultValue||i.basic?.label!==t.basic?.label||i.validation?.required!==t.validation?.required;return!r||a}))&&l){const t=R.map(e=>{const t=L.map((t,n)=>{let i=e.components?.[n];i||(i=e.components?.find(e=>e.name===t.name&&e.basic?.label===t.basic?.label));const o=`${t.id}-entry-${e.index}-${n}`;if(i){return{...t,id:o,basic:{...t.basic,showLabel:!1,value:i.basic?.value||t.basic?.defaultValue||""}}}return{...t,id:o,basic:{...t.basic,showLabel:!1}}});return{...e,components:t}}),n={...o,entries:t};JSON.stringify(n)!==JSON.stringify(o)&&l({id:e,value:n})}}}},[L,R,e,l,o,a,o.templateComponents]);const V=i(e=>{e.stopPropagation(),c?.(),m?.(o)},[c,m,o]),D=i((t,n)=>{n.stopPropagation(),h&&h(t,n);const i=L.filter(e=>e.id!==t.id),r=R.map(e=>({...e,components:e.components?.filter(e=>!(e.name===t.name&&e.basic?.label===t.basic?.label))||[]}));l&&l({id:e,value:{...o,templateComponents:i,entries:r}})},[h,o,l,e,L,R]),F=i((t,n)=>{b&&b(t,n);const i=L.map(e=>e.id===t?{...e,...n}:e);l&&l({id:e,value:{...o,templateComponents:i}})},[b,o,l,e,L]),O=i(e=>{"test"===a&&l&&l({id:e.id,value:e.value})},[a,l]),z=i(()=>{const t={id:`entry-${o.entries.length}`,index:o.entries.length,components:L.map((e,t)=>({...e,id:`${e.id}-entry-${o.entries.length}-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}},n=[...o.entries,t];l&&l({id:e,value:{...o,entries:n}}),v?.()},[o,l,e,v,L]),q=i(t=>{const n=o.entries.filter((e,n)=>n!==t).map((t,n)=>({...t,index:n,id:`entry-${e}-${n}`}));l&&l({id:e,value:{...o,entries:n}})},[o,l,e,y]),_=i((e,t=!1)=>{const n="test"===a?s[e.id]||"defaultValue"in e.basic&&e.basic.defaultValue||"":"defaultValue"in e.basic&&e.basic.defaultValue||"",i={id:e.id,properties:e,validationErrors:{},formValue:n,touchedFields:{},formSubmitted:!1,mode:a,hideLabel:t,onValueChange:O,onBlur:()=>{},onFocus:()=>{}};switch(e.name){case"text-input":case"email-input":case"number-input":return W.jsx(X,{...i,properties:e,inputType:"text-input"===e.name?"text":"number-input"===e.name?"number":"email",readonly:"edit"===a||"preview"===a,disabled:"preview"===a,hideLabel:t});case"textarea":return W.jsx(K,{...i,properties:e,readonly:"edit"===a||"preview"===a,disabled:"preview"===a,hideLabel:t});case"select":const n={...e,options:e.basic?.options||[]};return W.jsx(Z,{...i,properties:n,disabled:"edit"===a||"preview"===a,hideLabel:t});case"checkbox":const o={...e,options:e.basic?.options||[]};return W.jsx(Q,{...i,properties:o,formValue:[],disabled:"edit"===a||"preview"===a,hideLabel:t});case"radio":const r={...e,options:e.basic?.options||[]};return W.jsx(ee,{...i,properties:r,readonly:"edit"===a||"preview"===a,disabled:"edit"===a||"preview"===a,hideLabel:t});case"date":case"date-picker":case"datetime-picker":return W.jsx(ne,{...i,properties:e,readonly:"edit"===a||"preview"===a,disabled:"preview"===a,hideLabel:t});case"signature":return W.jsx(ie,{...i,properties:e,hideLabel:t});case"heading":return W.jsx(ae,{...i,properties:e,hideLabel:t});case"instructions":return W.jsx(se,{...i,properties:e,hideLabel:t});default:return W.jsxs("div",{className:"unknown-component",children:["Unknown component: ",e.name]})}},[a,O]),M={backgroundColor:o.styles.backgroundColor||"var(--df-color-fb-container)",borderColor:o.styles.borderColor||"var(--df-color-fb-border)",borderWidth:o.styles.borderWidth||"2px",borderRadius:o.styles.borderRadius||"8px",padding:o.styles.padding||"16px",margin:o.styles.margin||"16px 0"};return W.jsxs("div",{className:`form-group df-form-datagrid ${d?"selected":""} ${u}`,onClick:V,style:M,children:[W.jsx("div",{className:"grid-header",children:W.jsx("div",{className:"grid-title",onClick:t=>{t.stopPropagation(),A(!$),l?.({id:e,value:{...o,basic:{...o.basic,collapsed:!$}}})},children:W.jsxs("div",{className:"title-content",style:{display:"flex",alignItems:"center",gap:"8px"},children:[$?W.jsx(k,{size:16}):W.jsx(w,{size:16}),W.jsx(E,{size:16}),W.jsx("span",{className:"grid-label",style:{fontWeight:"600"},children:o.basic.label}),o.validation.required&&W.jsx("span",{className:"required-indicator",style:{color:"#ef4444"},children:"*"})]})})}),o.basic.description&&!$&&W.jsx("div",{className:"grid-description",style:{marginTop:"8px",color:"var(--df-color-text-light)",fontSize:"14px"},children:o.basic.description}),!$&&W.jsx("div",{className:"grid-content",style:{marginTop:"16px"},children:"edit"===a?W.jsx(fe,{gridComponents:L,mode:a,onComponentSelect:p||(()=>{}),onComponentDelete:D,onComponentEdit:f,onComponentUpdate:F,selectedComponent:g||null,renderFormComponent:x||_,gridId:e,formData:s,formTemplateId:j,onThresholdActionCompletion:N,onThresholdIssueRaised:C,onNotesChange:T,onAttachmentChange:S}):W.jsx(be,{templateComponents:L,dataEntries:R,renderFormComponent:x||_,mode:a,allowAddRemoveEntries:o.datagrid?.allowAddRemoveEntries??!0,addAnotherText:o.datagrid?.addAnotherText??"Add Entry",removeText:o.datagrid?.removeText??"Remove",maxEntries:o.datagrid?.maxEntries??10,minEntries:o.datagrid?.minEntries??1,displayAsGrid:o.datagrid?.displayAsGrid??!0,onAddEntry:v||z,onRemoveEntry:y||q,formData:s,formTemplateId:j,onThresholdActionCompletion:N,onThresholdIssueRaised:C,onNotesChange:T,onAttachmentChange:S})})]})},xe=e.lazy(()=>Promise.resolve().then(function(){return Se})),ve=({formComponents:o=[],currentDevice:r="desktop",isPreviewMode:s=!1,initialFormData:l=[],onSubmit:c,onFormDataChange:d,formTitle:u,formDescription:m,formTemplateId:p,onComponentSelect:h,onComponentDelete:f,onComponentEdit:b,onComponentUpdate:g,selectedComponent:x})=>{const{t:v}=a(),[y,j]=t({}),[N,C]=t({}),[w,k]=t(!1),[T,S]=t({}),[$,E]=t({}),[A,I]=t(new Set),[L,R]=t(new Map),[V,D]=t({isValid:!0});n(()=>{O()},[o,l]);const F=(e,t)=>{e.forEach(e=>{e.id&&("value"in e.basic&&void 0!==e.basic.value?t[e.id]=e.basic.value:"defaultValue"in e.basic&&void 0!==e.basic.defaultValue?t[e.id]=e.basic.defaultValue:"checkbox"===e.name||"select"===e.name?t[e.id]=[]:t[e.id]=""),e.cells&&Array.isArray(e.cells)&&e.cells.forEach((e,n)=>{e.forEach((e,n)=>{e.components&&Array.isArray(e.components)&&F(e.components,t)})}),e.entries&&Array.isArray(e.entries)&&e.entries.forEach((e,n)=>{e.components&&Array.isArray(e.components)&&F(e.components,t)}),e.children&&Array.isArray(e.children)&&F(e.children,t)})},O=i(()=>{const e={};l&&l.length>0&&F(l,e),o&&o.length>0&&F(o,e),j(e),q()},[l,o]),z=(e,t)=>{e.forEach(e=>{if(e.id)if("table"===e.name||"datagrid"===e.name)t[e.id]=!0;else if(e.conditional){const n=U.evaluateConditionalLogic(e.conditional,o,y);t[e.id]=n.shouldShow}else t[e.id]=!0;e.cells&&Array.isArray(e.cells)&&e.cells.forEach(e=>{e.forEach(e=>{e.components&&Array.isArray(e.components)&&z(e.components,t)})}),e.entries&&Array.isArray(e.entries)&&e.entries.forEach(e=>{e.components&&Array.isArray(e.components)&&z(e.components,t)}),e.children&&Array.isArray(e.children)&&z(e.children,t)})},q=i(()=>{const e={};o&&o.length>0&&z(o,e),E(e)},[o,y]),_=i(e=>{const t=o.find(t=>t.id===e);if(t&&("table"===t.name||"datagrid"===t.name))return!0;return!1!==$[e]},[$,o]),M=i(e=>{const t={...y,[e.id]:e.value};j(t);const n=o.find(t=>t.id===e.id);if(n){const e=n?.threshold;e&&e.conditions&&e.conditions.length>0&&I(t=>{const n=new Set(t);return e.conditions.forEach(e=>{n.delete(e.id)}),n})}const i=t=>t.map(t=>t.id===e.id&&"defaultValue"in t.basic?{...t,basic:{...t.basic,value:e.value??t.basic.defaultValue,defaultValue:e.value}}:"section"===t.name&&t.children?{...t,children:i(t.children)}:"table"===t.name&&t.cells?{...t,cells:t.cells.map(e=>e.map(e=>{const t={...e};return t.components&&(t.components=i(t.components)),t}))}:"datagrid"===t.name&&t.entries?{...t,entries:t.entries.map(e=>{const t={...e};return t.components&&(t.components=i(t.components)),t})}:t),r=i(o);d?.(r),N[e.id]&&C(t=>({...t,[e.id]:""})),setTimeout(()=>{const e={};o.forEach(n=>{if("table"===n.name||"datagrid"===n.name)e[n.id]=!0;else if(n.conditional){const i=U.evaluateConditionalLogic(n.conditional,o,t);e[n.id]=i.shouldShow}else e[n.id]=!0}),E(e)},0)},[o,y,N,d]),P=i(e=>{S(t=>({...t,[e]:!0})),J(e)},[]),B=i(e=>{N[e]&&C(t=>({...t,[e]:""}))},[N]),J=i(e=>{if(s)return;const t=o.find(t=>t.id===e);if(!t)return;const n=y[e]||"";let i=!1;i=Array.isArray(n)?n.length>0:"string"==typeof n?""!==n.trim():null!=n;let r="";if(t.validation.required&&!i){const e=t.validation.customValidationMessage,n=t.basic.label||"This field";r=e||`${n} is required`}else if("email-input"===t.name&&i&&!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(n)){const e=t.validation.customValidationMessage,n=t.basic.label||"This field";r=e||`${n} must be a valid email`}else if(t.validation.minLength&&i&&n.length<t.validation.minLength){const e=t.validation.customValidationMessage,n=t.basic.label||"This field";r=e||`${n} must be at least ${t.validation.minLength} characters`}else if(t.validation.maxLength&&i&&n.length>t.validation.maxLength){const e=t.validation.customValidationMessage,n=t.basic.label||"This field";r=e||`${n} must be no more than ${t.validation.maxLength} characters`}else if("number-input"===t.name&&i){const e=parseFloat(n);if(isNaN(e)){const e=t.validation.customValidationMessage,n=t.basic.label||"This field";r=e||`${n} must be a valid number`}else{const n=t.validation;if(void 0!==n.lowerLimit&&e<n.lowerLimit){const e=t.validation.customValidationMessage,i=t.basic.label||"This field";r=e||`You are under the limit. ${i} must be at least ${n.lowerLimit}`}else if(void 0!==n.upperLimit&&e>n.upperLimit){const e=t.validation.customValidationMessage,i=t.basic.label||"This field";r=e||`You crossed the limit. ${i} must be no more than ${n.upperLimit}`}}}C(t=>({...t,[e]:r}))},[o,s,y]),Y=i(()=>o.every(e=>{const t=y[e.id]||"";let n=!1;return n=Array.isArray(t)?t.length>0:"string"==typeof t?""!==t.trim():null!=t,!(e.validation.required&&!n)}),[o,y]),G=i((e,t)=>{if(Array.isArray(t))return t.some(t=>G(e,t));if(null==t||""===t)return!1;const n="string"==typeof t?parseFloat(t):t,i="string"==typeof e.value?parseFloat(e.value):e.value;if(!isNaN(n)&&!isNaN(i))switch(e.operator){case"greaterThan":return n>i;case"lessThan":return n<i;case"greaterThanOrEqual":return n>=i;case"lessThanOrEqual":return n<=i;case"equals":return n===i;case"notEquals":return n!==i;default:return!1}const o=String(t).toLowerCase(),r=String(e.value).toLowerCase();switch(e.operator){case"equals":return o===r||String(t)===String(e.value);case"notEquals":return o!==r&&String(t)!==String(e.value);default:return!1}},[]),le=i(()=>{if(s)return[];const e=[];return o.forEach(t=>{const n=t?.condition;if(!n||!n.conditions||0===n.conditions.length)return;const i=y[t.id];null!=i&&""!==i&&!(Array.isArray(i)&&0===i.length)&&n.conditions.forEach(n=>{G(n,i)&&e.push({componentId:t.id,condition:n,componentLabel:t.basic?.label||"Field"})})}),e},[o,y,s,G]),de=i(()=>{if(s)return{isValid:!0};const e=le();if(0===e.length)return{isValid:!0};for(const{condition:t,componentLabel:n}of e){const e=L.get(t.id)||{notesCompleted:!1,attachmentsCompleted:!1,emailSent:!1},i=[];if(!0!==t.enableRaiseIssue||A.has(t.id)||i.push("raise an issue"),!0!==t.enableNotes||e.notesCompleted||i.push("add notes"),!0!==t.enableAttachment||e.attachmentsCompleted||i.push("add attachments"),!0!==t.enableSendEmail||e.emailSent||i.push("send email"),i.length>0){return{isValid:!1,errorMessage:`Please ${1===i.length?i[0]:i.slice(0,-1).join(", ")+" and "+i[i.length-1]} for the threshold condition met in "${n}". You cannot submit the form until all required actions are completed.`}}}return{isValid:!0}},[s,le,A,L]),me=i(e=>{e&&I(t=>{const n=new Set(t);return n.add(e),n})},[]),he=i((e,t,n)=>{e&&R(i=>{const o=new Map(i),r=o.get(e)||{notesCompleted:!1,attachmentsCompleted:!1,emailSent:!1};return"notes"===t?o.set(e,{...r,notesCompleted:n}):"attachments"===t?o.set(e,{...r,attachmentsCompleted:n}):"email"===t&&o.set(e,{...r,emailSent:n}),o})},[]);n(()=>{if(!s){const e=de();D(e)}},[y,A,L,s,de]);const fe=i(()=>{if(s)return!0;let e=!0;k(!0);const t={};return o.forEach(n=>{const i=y[n.id]||"";let o=!1;if(o=Array.isArray(i)?i.length>0:"string"==typeof i?""!==i.trim():null!=i,n.validation.required&&!o){const i=n.validation.customValidationMessage,o=n.basic.label||"This field",r=i||`${o} is required`;t[n.id]=r,e=!1}else t[n.id]="";S(e=>({...e,[n.id]:!0}))}),C(t),e},[o,s,y]),be=i(()=>{if(k(!0),!fe()){const e=o.find(e=>{const t=y[e.id]||"";let n=!1;return n=Array.isArray(t)?t.length>0:"string"==typeof t?""!==t.trim():null!=t,e.validation.required&&!n});if(e){const t=document.getElementById(e.id);t&&t.focus()}return}const e=de();if(!e.isValid){e.errorMessage&&H.showError(e.errorMessage);const t=le().find(({condition:e})=>!A.has(e.id));if(t){const e=document.getElementById(t.componentId);e&&e.scrollIntoView({behavior:"smooth",block:"center"})}return}const t=e=>e.map(e=>{let n=y[e.id];"text-input"===e.name&&e.basic,void 0===n&&(n="value"in e.basic&&void 0!==e.basic.value?e.basic.value:"defaultValue"in e.basic&&void 0!==e.basic.defaultValue?e.basic.defaultValue:""),"text-input"===e.name&&e.basic;const i={...e,basic:{...e.basic,value:n,defaultValue:n}};return"section"===i.name&&i.children&&(i.children=t(i.children)),"table"===i.name&&i.cells&&(i.cells=i.cells.map(e=>e.map(e=>{const n={...e};return n.components&&(n.components=t(n.components)),n}))),"datagrid"===i.name&&i.entries&&(i.entries=i.entries.map(e=>{const n={...e};return n.components&&(n.components=t(n.components)),n})),i}),n=t(o);c?.(n)},[o,y,fe,c]),ve=i(()=>({[`device-${r}`]:!0,readonly:s}),[r,s]),ye=t=>{const n=y[t.id];"text-input"===t.name&&t.basic;const i={id:t.id,validationErrors:N,formValue:n,touchedFields:T,formSubmitted:w,mode:s?"preview":"test",readonly:s,onValueChange:M,onBlur:()=>P(t.id),onFocus:()=>B(t.id)};switch(t.name){case"text-input":case"number-input":case"email-input":return W.jsx(X,{...i,properties:t,inputType:"text-input"===t.name?"text":"number-input"===t.name?"number":"email",formTemplateId:p,onThresholdIssueRaised:me,raisedThresholdIssues:A});case"textarea":return W.jsx(K,{...i,properties:t});case"select":const n={...t,options:t.basic?.options||[],basic:{...t.basic,comments:t.basic?.comments||""}};return W.jsx(Z,{...i,properties:n});case"checkbox":const o={...t,options:t.basic?.options||[],basic:{...t.basic,comments:t.basic?.comments||""}};return W.jsx(Q,{...i,properties:o});case"radio":const r={...t,options:t.basic?.options||[],basic:{...t.basic,comments:t.basic?.comments||""}};return W.jsx(ee,{...i,properties:r});case"segment":const a={...t,options:t.basic?.options||[],basic:{...t.basic,comments:t.basic?.comments||""}};return W.jsx(te,{...i,properties:a});case"date":case"date-picker":case"datetime-picker":return W.jsx(ne,{...i,properties:t});case"signature":return W.jsx(ie,{...i,properties:t});case"heading":return W.jsx(ae,{...i,properties:t});case"instructions":return W.jsx(se,{...i,properties:t});case"location":return W.jsx(re,{...i,properties:t});case"section":return W.jsx(pe,{...i,properties:t,formData:y,formTemplateId:p,onThresholdActionCompletion:he,onThresholdIssueRaised:me,renderFormComponent:e=>ye(e)});case"table":return W.jsx(e.Suspense,{fallback:W.jsx("div",{children:"Loading table..."}),children:W.jsx(xe,{...i,properties:t,formData:y,formTemplateId:p,onThresholdActionCompletion:he,renderFormComponent:e=>ye(e)})});case"datagrid":return W.jsx(ge,{...i,properties:t,formData:y,formTemplateId:p,onThresholdActionCompletion:he,onThresholdIssueRaised:me,onComponentSelect:h,onComponentDelete:f,onComponentEdit:b,onComponentUpdate:g,selectedComponent:x,renderFormComponent:e=>ye(e)});case"file":return W.jsx(oe,{...i,properties:t});default:return W.jsx("div",{className:"form-group",children:W.jsxs("div",{className:"form-group-label",children:["Unsupported Component: ",t.name]})})}};return W.jsx("div",{className:"form-preview-container",children:W.jsx("div",{className:"form-preview-wrapper",children:W.jsxs("div",{className:`form-preview ${Object.entries(ve()).map(([e,t])=>t?e:"").join(" ")}`,children:[W.jsx("div",{className:"form-canvas-header"}),0===o.length?W.jsx("div",{className:"empty-state",children:W.jsx("div",{className:"empty-state-card",children:W.jsx("div",{className:"empty-state-preview-area",children:W.jsx("span",{className:"empty-state-placeholder",children:"Add components to see the form preview"})})})}):W.jsxs("form",{className:"form-preview-form",onSubmit:e=>{e.preventDefault(),be()},children:[(u||m)&&W.jsxs("div",{className:"form-header",children:[u&&W.jsx("h1",{className:"form-title",children:u}),m&&W.jsx("p",{className:"form-description",children:m})]}),o.map(e=>{const t=e.basic,n=y[e.id],i=["select","radio","checkbox","segment"].includes(e.name||""),o=e.options||t?.options||[],r=(()=>{const t=e?.styles?.column;return"section"===e.name||"table"===e.name||"datagrid"===e.name?"col-12":3===t?"col-3":6===t?"col-6":9===t?"col-9":"col-12"})();let a=!1;if(!s)if(i&&null!=n&&""!==n)if("checkbox"===e.name){a=(Array.isArray(n)?n:[n]).some(e=>{const t=o.find(t=>t.value===e);return t&&(t.enableNotes||t.enableAttachment||t.enableRaiseIssue||t.enableSendEmail)})}else{const e=o.find(e=>e.value===n);a=e&&(e.enableNotes||e.enableAttachment||e.enableRaiseIssue||e.enableSendEmail)}else a=t?.enableNotes||t?.enableAttachment||t?.enableRaiseIssue||t?.enableSendEmail;const l=s&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0);return W.jsxs("div",{className:`form-group ${r} ${a||l?"has-action-features":""}`,style:{display:_(e.id)?"block":"none"},children:[ye(e),!s&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&W.jsx(ce,{component:e,mode:s?"preview":"test",formTemplateId:p,formValue:n,onThresholdActionCompletion:he,onThresholdIssueRaised:me}),s&&l&&W.jsx(ue,{component:e})]},e.id)}),!s&&W.jsx("div",{className:"form-actions",children:W.jsx("button",{type:"submit",disabled:!Y()||!V.isValid,className:"form-submit-button",title:V.isValid?"":V.errorMessage,children:v("formBuilder.submit","Submit")})})]})]})})})},ye=({comment:e="",onSave:o,placeholder:r="Enter your reason...",className:a="",disabled:s=!1})=>{const[l,c]=t(!0),[d,u]=t(e),[m,p]=t(!1);n(()=>{u(e),p(!1)},[e]);const h=i(t=>{const n=t.target.value;u(n),p(n!==e)},[e]),f=i(()=>{m&&o&&!s&&(o(d),p(!1))},[m,o,d,s]),b=i(()=>{},[]),g=i(()=>{s||c(!l)},[l,s]);return W.jsxs("div",{className:`df-form-comments ${a}`,children:[W.jsxs("div",{className:"df-form-comments__header",children:[W.jsx("h3",{className:"df-form-comments__title",children:"Comments"}),W.jsx("button",{className:"df-form-comments__toggle",type:"button",onClick:g,"aria-expanded":l,"aria-label":"Toggle comments section",disabled:s,children:l?W.jsx("span",{className:"df-form-comments__toggle-icon",children:"▼"}):W.jsx("span",{className:"df-form-comments__toggle-icon",children:"▶"})})]}),W.jsx("div",{className:"df-form-comments__content "+(l?"df-form-comments__content--expanded":""),children:W.jsx("div",{className:"df-form-comments__input-container",children:W.jsx("div",{className:"df-form-comments__input-line",children:W.jsx("input",{type:"text",id:"comment-input",className:"df-form-comments__input",value:d,onChange:h,onBlur:f,onFocus:b,placeholder:r,disabled:s})})})})]})},je=e=>e.id?e:{...e,id:O()},Ne=({component:e,mode:t,renderFormComponent:n,formData:i={},formTemplateId:o,onThresholdActionCompletion:r,onNotesChange:a,onAttachmentChange:s})=>{const l=i[e.id],c="preview"===t&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0);return W.jsxs("div",{className:"simple-table-component",children:[n(e),"test"===t&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&W.jsx(ce,{component:e,mode:"test",formTemplateId:o,formValue:l,onThresholdActionCompletion:r,onNotesChange:a?t=>a(e.id,t):void 0,onAttachmentChange:s?t=>s(e.id,t):void 0}),c&&W.jsx(ue,{component:e})]})},Ce=({component:e,selectedComponent:t,mode:n,onComponentSelect:i,onComponentDelete:o,onComponentEdit:r,renderFormComponent:a,isOverlay:s=!1})=>{const{attributes:l,listeners:c,setNodeRef:d,transform:u,transition:m,isDragging:p,isSorting:h}=V({id:e.id,disabled:s}),f={transform:F.Transform.toString(u),transition:m,opacity:p?.3:1,zIndex:p?1e3:"auto"};return W.jsxs("div",{ref:d,style:f,className:`form-component table-component ${t?.id===e.id?"selected":""} ${p?"dragging":""} ${h?"sorting":""}`,onClick:()=>!p&&i(e),role:"button",tabIndex:0,children:["edit"===n&&W.jsx("div",{className:"component-drag-handle",...c,...l,onClick:e=>e.stopPropagation(),style:{opacity:1},children:W.jsx(T,{size:14})}),W.jsx("div",{className:"component-content",children:a(e)}),"edit"===n&&W.jsxs("div",{className:"component-actions",style:{opacity:1},children:[r&&W.jsx("button",{className:"component-edit-btn",onClick:t=>{t.stopPropagation(),r(e)},type:"button",title:"Edit Component",children:W.jsx(S,{size:12})}),W.jsx("button",{className:"component-delete-btn",onClick:t=>{t.stopPropagation(),o(e,t)},type:"button",title:"Delete Component",children:W.jsx($,{size:12})})]})]})},we=({cell:e,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:o,selectedComponent:r,renderFormComponent:a,formData:s={},formTemplateId:l,onThresholdActionCompletion:c,tableId:d,onNotesChange:u,onAttachmentChange:m})=>{const p=`table-cell-${d}-${e.row}-${e.column}`,{setNodeRef:h,isOver:f}=I({id:p,disabled:"edit"!==t,data:{type:"table-cell",tableId:d,cell:e,row:e.row,column:e.column}}),b={...e.styles,backgroundColor:f?"var(--df-color-primary-light)":e.styles?.backgroundColor||"transparent",minHeight:e.styles?.minHeight||"preview"===t||"test"===t?"40px":"60px",padding:(e.styles,"8px"),border:"preview"===t||"test"===t?"none":f?"2px dashed var(--df-color-primary)":e.styles?.borderColor?`1px solid ${e.styles.borderColor}`:"1px solid var(--df-color-fb-border)",borderRadius:"preview"===t||"test"===t?"0":"4px",position:"relative",verticalAlign:e.styles?.verticalAlign||"top"};return W.jsx("td",{ref:h,style:b,className:"table-cell "+(f?"drag-over":""),children:W.jsx("div",{className:"cell-content",children:e.components.length>0?"edit"===t?W.jsx(L,{items:e.components.map(e=>e.id||O()),strategy:R,children:e.components.map(e=>{const s=je(e);return W.jsx(Ce,{component:s,selectedComponent:r,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:o,renderFormComponent:a},s.id)})}):e.components.map(e=>{const n=je(e);return W.jsx(Ne,{component:n,mode:t,renderFormComponent:a,formData:s,formTemplateId:l,onThresholdActionCompletion:c,onNotesChange:u,onAttachmentChange:m},n.id)}):"edit"===t?W.jsx("div",{className:"empty-cell-placeholder",children:W.jsxs("div",{className:"cell-info",children:[W.jsx("span",{className:"drop-zone-text",children:"Drag and Drop a form component"}),W.jsxs("span",{className:"cell-coordinates",children:["Cell (",e.row+1,", ",e.column+1,")"]})]})}):W.jsx("div",{style:{minHeight:"20px",backgroundColor:"transparent",visibility:"hidden"},children:" "})})})},ke=({id:e,properties:o,mode:r="edit",formData:a={},onValueChange:s,onSelect:l,isSelected:c=!1,className:d="",onTableSelect:u,onComponentSelect:m,onComponentDelete:p,onComponentEdit:h,selectedComponent:f,renderFormComponent:b,formTemplateId:g,onThresholdActionCompletion:x,onNotesChange:v,onAttachmentChange:y})=>{const[j,N]=t(!1),C=o.cells?.some(e=>e.some(e=>e.components&&e.components.length>0))||!1;n(()=>{const t=o.table?.rows||o.basic?.rows||3,n=o.table?.columns||o.basic?.columns||3,i=o.cells||[];if(0===i.length||i.length!==t||i.length>0&&i[0].length!==n){const r=[];for(let e=0;e<t;e++){const t=[];for(let o=0;o<n;o++){const n=`cell-${e}-${o}`;let r=[];i[e]&&i[e][o]&&(r=(i[e][o].components||[]).map(je)),t.push({id:n,row:e,column:o,components:r,styles:{}})}r.push(t)}s&&s({id:e,value:{...o,cells:r}})}},[o.table?.rows,o.table?.columns,o.basic?.rows,o.basic?.columns,o.cells,e,s]);const T=i(e=>{e.stopPropagation(),l?.(),u?.(o)},[l,u,o]),S=i((t,n)=>{n.stopPropagation();const i=o.cells.map(e=>e.map(e=>{if(e.components&&e.components.some(e=>e.id===t.id)){const n=e.components.filter(e=>e.id!==t.id);return{...e,components:n}}return e}));s&&s({id:e,value:{...o,cells:i}})},[p,o,s,e]),$=o.cells?o.cells.map(e=>e.map(e=>({...e,components:e.components?.map(e=>e.id?e:{...e,id:`table-cell-${e.name}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`})||[]}))):[];n(()=>{$.length>0&&JSON.stringify($)!==JSON.stringify(o.cells)&&s?.({id:e,value:{...o,cells:$}})},[$,o.cells,e,s]);const E=b||i(e=>{const t=je(e),n={id:t.id,properties:t,validationErrors:{},formValue:a[t.id]||"defaultValue"in t.basic&&t.basic.defaultValue||"",touchedFields:{},formSubmitted:!1,mode:r,onValueChange:e=>{s?.(e)},onBlur:()=>{},onFocus:()=>{}};switch(t.name){case"text-input":case"email-input":case"number-input":return W.jsx(X,{...n,properties:t,inputType:"text-input"===t.name?"text":"number-input"===t.name?"number":"email",readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"textarea":return W.jsx(K,{...n,properties:t,readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"select":const e={...t,options:t.basic?.options||[]};return W.jsx(Z,{...n,properties:e,disabled:"edit"===r||"preview"===r});case"checkbox":const i={...t,options:t.basic?.options||[]};return W.jsx(Q,{...n,properties:i,formValue:[],disabled:"edit"===r||"preview"===r});case"radio":const o={...t,options:t.basic?.options||[]};return W.jsx(ee,{...n,properties:o,readonly:"edit"===r||"preview"===r,disabled:"edit"===r||"preview"===r});case"date":case"date-picker":case"datetime-picker":return W.jsx(ne,{...n,properties:t,readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"signature":return W.jsx(ie,{...n,properties:t});case"heading":return W.jsx(ae,{...n,properties:t});default:return W.jsxs("div",{className:"unknown-component",children:["Unknown component: ",t.name]})}},[r]),I={backgroundColor:o.styles?.backgroundColor||"var(--df-color-fb-container)",borderColor:o.styles?.borderColor||"var(--df-color-fb-border)",borderWidth:o.styles?.borderWidth||"2px",borderRadius:o.styles?.borderRadius||"8px",padding:o.styles?.padding||"16px",margin:o.styles?.margin||"16px 0"},L={width:"100%",minWidth:"600px",borderCollapse:"preview"===r||"test"===r?"separate":"collapse",tableLayout:"fixed",border:"preview"===r||"test"===r?"1px solid var(--df-color-fb-border)":"none"};return C||"preview"!==r?W.jsxs("div",{className:`form-group df-form-table ${c?"selected":""} ${"preview"===r?"preview-mode":"test"===r?"test-mode":""} ${d}`,onClick:T,style:I,children:[W.jsx("div",{className:"table-header",children:W.jsx("div",{className:"table-title",onClick:t=>{t.stopPropagation(),N(!j),s?.({id:e,value:{...o,basic:{...o.basic||{},collapsed:!j}}})},children:W.jsxs("div",{className:"title-content",children:[j?W.jsx(k,{size:16}):W.jsx(w,{size:16}),W.jsx(A,{size:16}),W.jsx("span",{className:"table-label",children:o.basic?.label||"Table"}),o.validation?.required&&W.jsx("span",{className:"required-indicator",children:"*"})]})})}),o.basic?.description&&!j&&W.jsx("div",{className:"table-description",children:o.basic.description}),!j&&W.jsxs("div",{className:"table-content",children:[null,W.jsxs("table",{style:L,children:[o.table?.displayAsTable&&("edit"===r||o.table?.showColumns)&&W.jsx("thead",{children:W.jsx("tr",{className:"table-header-row",children:Array.from({length:o.table?.columns||o.basic?.columns||3},(e,t)=>{const n=(o.table?.columnNames?.split(",").map(e=>e.trim())||[])[t]||`Column ${t+1}`;return W.jsx("th",{className:"table-header-cell",style:{backgroundColor:(o.styles.headerBackgroundColor,"var(--df-color-fb-container)"),color:o.styles.headerTextColor||"var(--df-color-text-dark)",padding:"12px",border:"1px solid var(--df-color-fb-border)",fontWeight:"600",fontSize:"14px",textAlign:"center"},children:n},`header-${t}`)})})}),W.jsx("tbody",{children:o.cells?.map((t,n)=>W.jsx("tr",{className:"table-row",children:t.map(t=>W.jsx(we,{cell:t,mode:r,onComponentSelect:m||(()=>{}),onComponentDelete:S,onComponentEdit:h,selectedComponent:f||null,renderFormComponent:E,formData:a,formTemplateId:g,onThresholdActionCompletion:x,tableId:e,onNotesChange:v,onAttachmentChange:y},t.id))},n))})]})]})]}):null};var Te,Se=Object.freeze({__proto__:null,DfFormTable:ke,default:ke});!function(e){e.Top="top",e.Left="left"}(Te||(Te={}));export{ce as ComponentActionFeatures,ue as ComponentSubmissionActions,Q as DfFormCheckbox,ye as DfFormComments,ge as DfFormDataGrid,ne as DfFormDateTime,J as DfFormErrorMsg,oe as DfFormFileUpload,ae as DfFormHeading,X as DfFormInput,se as DfFormInstruction,re as DfFormLocation,ve as DfFormPreview,ee as DfFormRadio,pe as DfFormSection,te as DfFormSegment,Z as DfFormSelect,ie as DfFormSignature,ke as DfFormTable,K as DfFormTextarea,Te as ELabelAlignment,Y as RaiseIssueModal,G as ThresholdAlert,U as conditionalLogicService,H as toastService};
10
+ */"production"===process.env.NODE_ENV?z.exports=function(){if(O)return q;O=1;var t=e,n=Symbol.for("react.element"),i=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,r=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function a(e,t,i){var a,l={},c=null,d=null;for(a in void 0!==i&&(c=""+i),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(d=t.ref),t)o.call(t,a)&&!s.hasOwnProperty(a)&&(l[a]=t[a]);if(e&&e.defaultProps)for(a in t=e.defaultProps)void 0===l[a]&&(l[a]=t[a]);return{$$typeof:n,type:e,key:c,ref:d,props:l,_owner:r.current}}return q.Fragment=i,q.jsx=a,q.jsxs=a,q}():z.exports=(_||(_=1,"production"!==process.env.NODE_ENV&&function(){var t,n=e,i=Symbol.for("react.element"),o=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),c=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),m=Symbol.for("react.suspense_list"),p=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),f=Symbol.for("react.offscreen"),b=Symbol.iterator,g=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function x(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];!function(e,t,n){var i=g.ReactDebugCurrentFrame.getStackAddendum();""!==i&&(t+="%s",n=n.concat([i]));var o=n.map(function(e){return String(e)});o.unshift("Warning: "+t),Function.prototype.apply.call(console[e],console,o)}("error",e,n)}function v(e){return e.displayName||"Context"}function y(e){if(null==e)return null;if("number"==typeof e.tag&&x("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),"function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case r:return"Fragment";case o:return"Portal";case a:return"Profiler";case s:return"StrictMode";case u:return"Suspense";case m:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case c:return v(e)+".Consumer";case l:return v(e._context)+".Provider";case d:return function(e,t,n){var i=e.displayName;if(i)return i;var o=t.displayName||t.name||"";return""!==o?n+"("+o+")":n}(e,e.render,"ForwardRef");case p:var t=e.displayName||null;return null!==t?t:y(e.type)||"Memo";case h:var n=e,i=n._payload,f=n._init;try{return y(f(i))}catch(e){return null}}return null}t=Symbol.for("react.module.reference");var j,N,C,w,k,S,T,$=Object.assign,E=0;function A(){}A.__reactDisabledLog=!0;var I,L=g.ReactCurrentDispatcher;function R(e,t,n){if(void 0===I)try{throw Error()}catch(e){var i=e.stack.trim().match(/\n( *(at )?)/);I=i&&i[1]||""}return"\n"+I+e}var V,D=!1,F="function"==typeof WeakMap?WeakMap:Map;function O(e,t){if(!e||D)return"";var n,i=V.get(e);if(void 0!==i)return i;D=!0;var o,r=Error.prepareStackTrace;Error.prepareStackTrace=void 0,o=L.current,L.current=null,function(){if(0===E){j=console.log,N=console.info,C=console.warn,w=console.error,k=console.group,S=console.groupCollapsed,T=console.groupEnd;var e={configurable:!0,enumerable:!0,value:A,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}E++}();try{if(t){var s=function(){throw Error()};if(Object.defineProperty(s.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(s,[])}catch(e){n=e}Reflect.construct(e,[],s)}else{try{s.call()}catch(e){n=e}e.call(s.prototype)}}else{try{throw Error()}catch(e){n=e}e()}}catch(t){if(t&&n&&"string"==typeof t.stack){for(var a=t.stack.split("\n"),l=n.stack.split("\n"),c=a.length-1,d=l.length-1;c>=1&&d>=0&&a[c]!==l[d];)d--;for(;c>=1&&d>=0;c--,d--)if(a[c]!==l[d]){if(1!==c||1!==d)do{if(c--,--d<0||a[c]!==l[d]){var u="\n"+a[c].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),"function"==typeof e&&V.set(e,u),u}}while(c>=1&&d>=0);break}}}finally{D=!1,L.current=o,function(){if(0===--E){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:$({},e,{value:j}),info:$({},e,{value:N}),warn:$({},e,{value:C}),error:$({},e,{value:w}),group:$({},e,{value:k}),groupCollapsed:$({},e,{value:S}),groupEnd:$({},e,{value:T})})}E<0&&x("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}(),Error.prepareStackTrace=r}var m=e?e.displayName||e.name:"",p=m?R(m):"";return"function"==typeof e&&V.set(e,p),p}function z(e,t,n){if(null==e)return"";if("function"==typeof e)return O(e,!(!(i=e.prototype)||!i.isReactComponent));var i;if("string"==typeof e)return R(e);switch(e){case u:return R("Suspense");case m:return R("SuspenseList")}if("object"==typeof e)switch(e.$$typeof){case d:return O(e.render,!1);case p:return z(e.type,t,n);case h:var o=e,r=o._payload,s=o._init;try{return z(s(r),t,n)}catch(e){}}return""}V=new F;var q=Object.prototype.hasOwnProperty,_={},P=g.ReactDebugCurrentFrame;function W(e){if(e){var t=e._owner,n=z(e.type,e._source,t?t.type:null);P.setExtraStackFrame(n)}else P.setExtraStackFrame(null)}var B=Array.isArray;function U(e){return B(e)}function J(e){return""+e}function H(e){if(function(e){try{return J(e),!1}catch(e){return!0}}(e))return x("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",function(e){return"function"==typeof Symbol&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object"}(e)),J(e)}var Y,G,X,K=g.ReactCurrentOwner,Z={key:!0,ref:!0,__self:!0,__source:!0};function Q(e,t,n,o,r){var s,a={},l=null,c=null;for(s in void 0!==n&&(H(n),l=""+n),function(e){if(q.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return void 0!==e.key}(t)&&(H(t.key),l=""+t.key),function(e){if(q.call(e,"ref")){var t=Object.getOwnPropertyDescriptor(e,"ref").get;if(t&&t.isReactWarning)return!1}return void 0!==e.ref}(t)&&(c=t.ref,function(e,t){if("string"==typeof e.ref&&K.current&&t&&K.current.stateNode!==t){var n=y(K.current.type);X[n]||(x('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',y(K.current.type),e.ref),X[n]=!0)}}(t,r)),t)q.call(t,s)&&!Z.hasOwnProperty(s)&&(a[s]=t[s]);if(e&&e.defaultProps){var d=e.defaultProps;for(s in d)void 0===a[s]&&(a[s]=d[s])}if(l||c){var u="function"==typeof e?e.displayName||e.name||"Unknown":e;l&&function(e,t){var n=function(){Y||(Y=!0,x("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}(a,u),c&&function(e,t){var n=function(){G||(G=!0,x("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};n.isReactWarning=!0,Object.defineProperty(e,"ref",{get:n,configurable:!0})}(a,u)}return function(e,t,n,o,r,s,a){var l={$$typeof:i,type:e,key:t,ref:n,props:a,_owner:s,_store:{}};return Object.defineProperty(l._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(l,"_self",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(l,"_source",{configurable:!1,enumerable:!1,writable:!1,value:r}),Object.freeze&&(Object.freeze(l.props),Object.freeze(l)),l}(e,l,c,r,o,K.current,a)}X={};var ee,te=g.ReactCurrentOwner,ne=g.ReactDebugCurrentFrame;function ie(e){if(e){var t=e._owner,n=z(e.type,e._source,t?t.type:null);ne.setExtraStackFrame(n)}else ne.setExtraStackFrame(null)}function oe(e){return"object"==typeof e&&null!==e&&e.$$typeof===i}function re(){if(te.current){var e=y(te.current.type);if(e)return"\n\nCheck the render method of `"+e+"`."}return""}ee=!1;var se={};function ae(e,t){if(e._store&&!e._store.validated&&null==e.key){e._store.validated=!0;var n=function(e){var t=re();if(!t){var n="string"==typeof e?e:e.displayName||e.name;n&&(t="\n\nCheck the top-level render call using <"+n+">.")}return t}(t);if(!se[n]){se[n]=!0;var i="";e&&e._owner&&e._owner!==te.current&&(i=" It was passed a child from "+y(e._owner.type)+"."),ie(e),x('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',n,i),ie(null)}}}function le(e,t){if("object"==typeof e)if(U(e))for(var n=0;n<e.length;n++){var i=e[n];oe(i)&&ae(i,t)}else if(oe(e))e._store&&(e._store.validated=!0);else if(e){var o=function(e){if(null===e||"object"!=typeof e)return null;var t=b&&e[b]||e["@@iterator"];return"function"==typeof t?t:null}(e);if("function"==typeof o&&o!==e.entries)for(var r,s=o.call(e);!(r=s.next()).done;)oe(r.value)&&ae(r.value,t)}}function ce(e){var t,n=e.type;if(null!=n&&"string"!=typeof n){if("function"==typeof n)t=n.propTypes;else{if("object"!=typeof n||n.$$typeof!==d&&n.$$typeof!==p)return;t=n.propTypes}if(t){var i=y(n);!function(e,t,n,i,o){var r=Function.call.bind(q);for(var s in e)if(r(e,s)){var a=void 0;try{if("function"!=typeof e[s]){var l=Error((i||"React class")+": "+n+" type `"+s+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[s]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw l.name="Invariant Violation",l}a=e[s](t,s,i,n,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(e){a=e}!a||a instanceof Error||(W(o),x("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",i||"React class",n,s,typeof a),W(null)),a instanceof Error&&!(a.message in _)&&(_[a.message]=!0,W(o),x("Failed %s type: %s",n,a.message),W(null))}}(t,e.props,"prop",i,e)}else void 0===n.PropTypes||ee||(ee=!0,x("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",y(n)||"Unknown"));"function"!=typeof n.getDefaultProps||n.getDefaultProps.isReactClassApproved||x("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}var de={};function ue(e,n,o,b,g,v){var j=function(e){return"string"==typeof e||"function"==typeof e||e===r||e===a||e===s||e===u||e===m||e===f||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===p||e.$$typeof===l||e.$$typeof===c||e.$$typeof===d||e.$$typeof===t||void 0!==e.getModuleId)}(e);if(!j){var N="";(void 0===e||"object"==typeof e&&null!==e&&0===Object.keys(e).length)&&(N+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var C,w=function(e){return void 0!==e?"\n\nCheck your code at "+e.fileName.replace(/^.*[\\\/]/,"")+":"+e.lineNumber+".":""}(g);N+=w||re(),null===e?C="null":U(e)?C="array":void 0!==e&&e.$$typeof===i?(C="<"+(y(e.type)||"Unknown")+" />",N=" Did you accidentally export a JSX literal instead of a component?"):C=typeof e,x("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",C,N)}var k=Q(e,n,o,g,v);if(null==k)return k;if(j){var S=n.children;if(void 0!==S)if(b)if(U(S)){for(var T=0;T<S.length;T++)le(S[T],e);Object.freeze&&Object.freeze(S)}else x("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else le(S,e)}if(q.call(n,"key")){var $=y(e),E=Object.keys(n).filter(function(e){return"key"!==e}),A=E.length>0?"{key: someKey, "+E.join(": ..., ")+": ...}":"{key: someKey}";de[$+A]||(x('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',A,$,E.length>0?"{"+E.join(": ..., ")+": ...}":"{}",$),de[$+A]=!0)}return e===r?function(e){for(var t=Object.keys(e.props),n=0;n<t.length;n++){var i=t[n];if("children"!==i&&"key"!==i){ie(e),x("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",i),ie(null);break}}null!==e.ref&&(ie(e),x("Invalid attribute `ref` supplied to `React.Fragment`."),ie(null))}(k):ce(k),k}var me=function(e,t,n){return ue(e,t,n,!1)},pe=function(e,t,n){return ue(e,t,n,!0)};M.Fragment=r,M.jsx=me,M.jsxs=pe}()),M);var P=z.exports;class W{constructor(){}static getInstance(){return W.instance||(W.instance=new W),W.instance}getAvailableComponentsForConditional(e,t){if(!e||!Array.isArray(e))return[];return e.filter(e=>!t||e.id!==t).map(e=>({id:e.id,label:e.basic?.label||e.id,type:e.name,key:e.id})).sort((e,t)=>e.label.localeCompare(t.label))}getApplicableOperators(e){switch(e){case"text-input":case"email-input":case"textarea":return["equals","notEquals","contains","notContains","isEmpty","isNotEmpty"];case"number-input":case"date-picker":case"datetime-picker":return["equals","notEquals","greaterThan","lessThan","greaterThanOrEqual","lessThanOrEqual","isEmpty","isNotEmpty"];case"select":case"radio":case"segment":default:return["equals","notEquals","isEmpty","isNotEmpty"];case"checkbox":return["contains","notContains","isEmpty","isNotEmpty"]}}validateConditionalLogic(e,t){const n=[];return e?(["show","hide","always"].includes(e.action)||n.push("Invalid conditional action"),["all","any"].includes(e.when)||n.push("Invalid when condition"),e.conditions&&0!==e.conditions.length?e.conditions.forEach((e,i)=>{const o=t.find(t=>t.id===e.when);if(!o)return void n.push(`Condition ${i+1}: Component not found`);this.getApplicableOperators(o.name).includes(e.operator)||n.push(`Condition ${i+1}: Operator not applicable for component type`),this.isValidConditionValue(e.value,o.name,e.operator)||n.push(`Condition ${i+1}: Invalid condition value`)}):n.push("At least one condition is required"),{isValid:0===n.length,errors:n}):{isValid:!0,errors:[]}}evaluateConditionalLogic(e,t,n){if("always"===e.action)return{shouldShow:!0,evaluatedConditions:[]};if(!e||!e.conditions||0===e.conditions.length)return{shouldShow:!0,evaluatedConditions:[]};const i=e.conditions.map(e=>{const i=this.getComponentValue(e.when,t,n);return{condition:e,result:this.evaluateCondition(e,i),componentValue:i}});return{shouldShow:this.determineFinalResult(e,i),evaluatedConditions:i}}getComponentValue(e,t,n){if(n&&void 0!==n[e])return n[e];const i=t.find(t=>t.id===e);return i&&"defaultValue"in i.basic?i.basic.defaultValue:void 0}evaluateCondition(e,t){const{operator:n,value:i}=e;if("checked"===i||"notChecked"===i)return this.evaluateCheckboxCondition(t,i);switch(n){case"equals":return this.isEqual(t,i);case"notEquals":return!this.isEqual(t,i);case"isEmpty":return this.isEmpty(t);case"isNotEmpty":return!this.isEmpty(t);case"contains":return this.contains(t,i);case"notContains":return!this.contains(t,i);case"greaterThan":return this.isGreaterThan(t,i);case"lessThan":return this.isLessThan(t,i);case"greaterThanOrEqual":return this.isGreaterThanOrEqual(t,i);case"lessThanOrEqual":return this.isLessThanOrEqual(t,i);default:return!1}}evaluateCheckboxCondition(e,t){const n=this.isCheckboxChecked(e);return"checked"===t?n:"notChecked"===t&&!n}isCheckboxChecked(e){return null!=e&&("boolean"==typeof e?e:"string"==typeof e?"true"===e.toLowerCase()||"1"===e:Array.isArray(e)?e.length>0:"number"==typeof e&&e>0)}determineFinalResult(e,t){let n,i;return n="all"===e.when?t.every(e=>e.result):"any"===e.when&&t.some(e=>e.result),i="show"===e.action?n:"hide"===e.action?!n:(e.action,!0),i}isEqual(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((e,n)=>this.isEqual(e,t[n]));if("object"==typeof e&&"object"==typeof t){const n=Object.keys(e),i=Object.keys(t);return n.length===i.length&&n.every(n=>this.isEqual(e[n],t[n]))}return!1}isEmpty(e){return null==e||void 0===e||("string"==typeof e?""===e.trim():Array.isArray(e)?0===e.length:"object"==typeof e&&0===Object.keys(e).length)}contains(e,t){return null!=e&&null!=t&&("string"==typeof e?e.toLowerCase().includes(String(t).toLowerCase()):!!Array.isArray(e)&&e.some(e=>this.isEqual(e,t)))}isGreaterThan(e,t){const n=Number(e),i=Number(t);return!isNaN(n)&&!isNaN(i)&&n>i}isLessThan(e,t){const n=Number(e),i=Number(t);return!isNaN(n)&&!isNaN(i)&&n<i}isGreaterThanOrEqual(e,t){const n=Number(e),i=Number(t);return!isNaN(n)&&!isNaN(i)&&n>=i}isLessThanOrEqual(e,t){const n=Number(e),i=Number(t);return!isNaN(n)&&!isNaN(i)&&n<=i}isValidConditionValue(e,t,n){if(null==e)return["isEmpty","isNotEmpty"].includes(n);switch(t){case"number-input":return!isNaN(Number(e))||["isEmpty","isNotEmpty"].includes(n);case"date-picker":case"datetime-picker":return!isNaN(Date.parse(e))||["isEmpty","isNotEmpty"].includes(n);case"checkbox":return Array.isArray(e)||"string"==typeof e||"number"==typeof e;default:return!0}}createDefaultConditionalLogic(){return{action:"show",when:"all",conditions:[]}}getOperatorDisplayText(e){return{equals:"Is Equal To",notEquals:"Is Not Equal To",contains:"Contains",notContains:"Does Not Contain",isEmpty:"Is Empty",isNotEmpty:"Is Not Empty",greaterThan:"Is Greater Than",lessThan:"Is Less Than",greaterThanOrEqual:"Is Greater Than Or Equal To",lessThanOrEqual:"Is Less Than Or Equal To"}[e]||e}getActionDisplayText(e){return{show:"Show this field when",hide:"Hide this field when",always:"Always show this field"}[e]||e}getConditionalLogicSummary(e,t){if(!e||0===e.conditions.length)return"No conditions";if("always"===e.action)return"Always show";const n=this.getActionDisplayText(e.action),i=e.conditions.map(e=>{const n=t.find(t=>t.id===e.when);return`${n?.basic.label||"Unknown component"} ${this.getOperatorDisplayText(e.operator)} ${this.formatConditionValue(e.value)}`}),o="all"===e.when?" and ":" or ";return`${n} ${i.join(o)}`}formatConditionValue(e){return null==e?"empty":Array.isArray(e)?`[${e.join(", ")}]`:"string"==typeof e?`"${e}"`:String(e)}}const B=W.getInstance();const U=new class{constructor(){this.toasts=[],this.listeners=[],this.defaultDuration=3e3,this.timeouts={}}generateId(){return Date.now().toString(36)+Math.random().toString(36).substr(2)}notifyListeners(){this.listeners.forEach(e=>e([...this.toasts]))}addToast(e){try{this.toasts.push(e),this.notifyListeners(),this.timeouts[e.id]=setTimeout(()=>{this.removeToast(e.id)},e.duration||this.defaultDuration)}catch(e){console.error("Error displaying toast message:",e)}}removeToast(e){this.timeouts[e]&&(clearTimeout(this.timeouts[e]),delete this.timeouts[e]),this.toasts=this.toasts.filter(t=>t.id!==e),this.notifyListeners()}showSuccess(e,t=3e3){const n={id:this.generateId(),message:e,type:"success",duration:t};this.addToast(n)}showError(e,t=5e3){const n={id:this.generateId(),message:e,type:"danger",duration:t};this.addToast(n)}showWarning(e,t){const n={id:this.generateId(),message:e,type:"warning",duration:t};this.addToast(n)}showInfo(e,t){const n={id:this.generateId(),message:e,type:"info",duration:t};this.addToast(n)}show(e,t="success",n){const i={id:this.generateId(),message:e,type:t,duration:n};this.addToast(i)}clearAll(){Object.values(this.timeouts).forEach(e=>clearTimeout(e)),this.timeouts={},this.toasts=[],this.notifyListeners()}subscribe(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}getToasts(){return[...this.toasts]}},J=({validationErrors:e,fieldId:t,touchedFields:n,formSubmitted:i,properties:o,localValidation:r,isTouched:s,mode:a})=>{const l=e=>{const t=o.basic.label||"This field",n=o.validation.customValidationMessage;if(n)return n;const i=o.name||"",r="date-picker"===i||"datetime-picker"===i?o.basic?.dateTimeMode||("datetime-picker"===i?"datetime":"date"):null;switch(e){case"required":return`${t} is required`;case"invalidDate":return"time"===r?"Please select a valid time":"datetime"===r?"Please select a valid date and time":"date"===r?"Please select a valid date":`${t} is invalid`;case"minLength":return`${t} must be at least ${o.validation.minLength} characters long`;case"maxLength":return`${t} must be no more than ${o.validation.maxLength} characters long`;case"min":return`${t} must be at least ${o.validation.min}`;case"max":return`${t} must be no more than ${o.validation.max}`;case"lowerLimit":const e=o.validation,n=e?.lowerLimit;return`You are under the limit. ${t} must be at least ${n}`;case"upperLimit":const i=o.validation,s=i?.upperLimit;return`You crossed the limit. ${t} must be no more than ${s}`;case"pattern":return`${t} format is invalid`;case"email":return`${t} must be a valid email address`;default:return`${t} is invalid`}},c=(()=>{if("test"!==a)return"";if(!(s||n[t]||i))return"";if(r&&r.isValid)return"";if(r&&!r.isValid&&Object.keys(r.errors).length>0){const e=Object.keys(r.errors);if(e.length>0){const t=e[0];return l(t)}}const c=e[t];if(c&&"string"==typeof c&&""!==c.trim()){const e=o.name||"";if(("date-picker"===e||"datetime-picker"===e)&&c.includes("valid date")){const t=o.basic?.dateTimeMode||("datetime-picker"===e?"datetime":"date");if("time"===t)return"Please select a valid time";if("datetime"===t)return"Please select a valid date and time"}return c}return""})();return c?P.jsx("div",{className:"form-error-msg",children:c}):null},H=({isOpen:e,onClose:t,onSuccess:n,component:i,formTemplateId:o,notes:r="",attachments:s=null,issue:a=null})=>{if(!e)return null;return P.jsx("div",{className:"raise-issue-modal-overlay",onClick:t,style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999,padding:"1rem"},children:P.jsxs("div",{className:"raise-issue-modal",onClick:e=>e.stopPropagation(),style:{background:"#ffffff",borderRadius:"0.5rem",width:"100%",maxWidth:"500px",padding:"2rem",boxShadow:"0 25px 50px -12px rgba(0, 0, 0, 0.25)"},children:[P.jsx("h2",{style:{marginTop:0},children:"Raise Issue"}),P.jsx("p",{children:a?"View/Edit Issue":"Create New Issue"}),P.jsxs("p",{style:{fontSize:"0.875rem",color:"#6b7280"},children:["Component: ",i?.basic?.label||"Unknown"]}),r&&P.jsxs("div",{style:{marginTop:"1rem",padding:"0.75rem",background:"#f9fafb",borderRadius:"0.375rem"},children:[P.jsx("strong",{children:"Notes:"})," ",r]}),s&&s.length>0&&P.jsxs("div",{style:{marginTop:"1rem",padding:"0.75rem",background:"#f9fafb",borderRadius:"0.375rem"},children:[P.jsx("strong",{children:"Attachments:"})," ",s.length," file(s)"]}),P.jsxs("div",{style:{marginTop:"1.5rem",display:"flex",gap:"0.75rem",justifyContent:"flex-end"},children:[P.jsx("button",{onClick:t,style:{padding:"0.625rem 1.25rem",borderRadius:"0.375rem",border:"1px solid #d1d5db",background:"#ffffff",cursor:"pointer"},children:"Cancel"}),P.jsx("button",{onClick:()=>{n&&n(),t()},style:{padding:"0.625rem 1.25rem",borderRadius:"0.375rem",border:"none",background:"var(--df-color-primary, #303992)",color:"#ffffff",cursor:"pointer"},children:a?"Update":"Raise Issue"})]}),P.jsx("p",{style:{marginTop:"1rem",fontSize:"0.75rem",color:"#9ca3af",fontStyle:"italic"},children:"Note: This is a stub implementation. Replace this component with your own issue management integration."})]})})},Y=({component:e,condition:o,currentValue:r,thresholdValue:l,formTemplateId:c,onIssueRaised:d,isIssueRaised:u=!1})=>{const[m,p]=t(!1),[h,f]=t(null),[b,g]=t(!1),[x,v]=t(!1);n(()=>{u&&v(!0)},[u]),n(()=>{v(!1)},[o?.id]);const y=i(async()=>{if(u||x){if(h)return void p(!0);g(!0);try{f(null),p(!0)}catch(e){console.error("Error fetching issue:",e),U.showError("Failed to load issue details")}finally{g(!1)}}else f(null),p(!0)},[u,x,c,e,h]),j=i(()=>{p(!1),u||x||f(null)},[u,x]),N=i(e=>{p(!1),f(e||null),v(!0),d&&o?.id&&d(o.id)},[d,o]);return u||x?P.jsxs(P.Fragment,{children:[P.jsx("div",{className:"threshold-issue-indicator",children:P.jsxs("div",{className:"threshold-issue-indicator-content",children:[P.jsx(s,{className:"threshold-issue-indicator-icon",size:16}),P.jsx("span",{className:"threshold-issue-indicator-text",children:"Issue raised for this threshold condition"}),P.jsx("button",{type:"button",onClick:y,className:"threshold-issue-indicator-view-btn",disabled:b,children:b?"Loading...":"View Issue"})]})}),m&&P.jsx(H,{isOpen:m,onClose:j,onSuccess:N,component:e,formTemplateId:c,notes:"",attachments:null,issue:h})]}):P.jsxs(P.Fragment,{children:[P.jsxs("div",{className:"threshold-alert threshold-alert-unresolved",children:[P.jsx("div",{className:"threshold-alert-border"}),P.jsxs("div",{className:"threshold-alert-content",children:[P.jsx("div",{className:"threshold-alert-header",children:P.jsxs("div",{className:"threshold-alert-title-group",children:[P.jsx(a,{className:"threshold-alert-icon",size:20}),P.jsx("span",{className:"threshold-alert-title",children:"Threshold Condition Met - Action Required"})]})}),P.jsxs("div",{className:"threshold-alert-message",children:[(()=>{const t={greaterThan:">",lessThan:"<",greaterThanOrEqual:"≥",lessThanOrEqual:"≤",equals:"=",notEquals:"≠"}[n=o.operator]||n;var n;return`${e.basic?.label||"Value"}: Value ${r} exceeds threshold ${t} ${l}`})(),P.jsx("span",{className:"threshold-alert-warning",children:" You must raise an issue before submitting the form."})]}),P.jsx("div",{className:"threshold-alert-buttons",children:P.jsx("button",{type:"button",onClick:y,className:"threshold-alert-raise-issue-btn",children:"Raise Issue Now"})})]})]}),m&&P.jsx(H,{isOpen:m,onClose:j,onSuccess:N,component:e,formTemplateId:c,notes:"",attachments:null,issue:h})]})},G=({id:e,properties:r,validationErrors:s={},formValue:a="",inputType:l="text",readonly:c=!1,disabled:d=!1,touchedFields:u={},formSubmitted:m=!1,mode:p="test",onValueChange:h,onBlur:f,onFocus:b,className:g="",hideLabel:x=!1,formTemplateId:v,onThresholdIssueRaised:y,raisedThresholdIssues:j=new Set})=>{const[N,C]=t(a||r?.basic?.defaultValue||""),[w,k]=t(!1),[S,T]=t(!1),[$,E]=t(new Set),[A,I]=t(a||r?.basic?.defaultValue||""),L=()=>{if(l)return l;const e=r?.name;return"text-input"===e?"text":"number-input"===e?"number":"email-input"===e?"email":"text"},R=i(e=>{const t=(()=>{const e={};if(r?.validation?.required&&(e.required=!0),"email"===L()&&(e.email=!0),"text"===L()){const t=r.validation;t?.minLength&&(e.minLength=t.minLength),t?.maxLength&&(e.maxLength=t.maxLength)}if("number"===L()){const t=r.validation;t?.min&&(e.min=t.min),t?.max&&(e.max=t.max),void 0!==t?.lowerLimit&&(e.lowerLimit=t.lowerLimit),void 0!==t?.upperLimit&&(e.upperLimit=t.upperLimit)}return e})(),n={};let i=!0;if(!t.required||e&&""!==e.trim()||(n.required=!0,i=!1),t.email&&e&&!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(e)&&(n.email=!0,i=!1),t.minLength&&e&&e.length<t.minLength&&(n.minLength=!0,i=!1),t.maxLength&&e&&e.length>t.maxLength&&(n.maxLength=!0,i=!1),"number"===L()&&e){const o=parseFloat(e);isNaN(o)?(n.pattern=!0,i=!1):(void 0!==t.min&&o<t.min&&(n.min=!0,i=!1),void 0!==t.max&&o>t.max&&(n.max=!0,i=!1),void 0!==t.lowerLimit&&o<t.lowerLimit&&(n.lowerLimit=!0,i=!1),void 0!==t.upperLimit&&o>t.upperLimit&&(n.upperLimit=!0,i=!1))}return{isValid:i,errors:n}},[r,L]),V=i(t=>{if(C(t),h){const n=R(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};h(i)}},[e,h,R]);n(()=>{w&&(u[e]=!0)},[w,e,u]),n(()=>{if("edit"===p){k(!1);C(r?.basic?.defaultValue||"")}else"test"===p&&(k(!1),C(""))},[p,r?.basic?.defaultValue]),n(()=>{const e=a||r?.basic?.defaultValue||"";e===N||S||""===e&&""!==N.trim()?""===e&&N.trim():C(e)},[a,N,S,r?.basic?.defaultValue]),n(()=>{m&&k(!0)},[m]),n(()=>{"test"!==p&&C("")},[p]);const D=i((e,t)=>{if(!t||""===t)return!1;const n="string"==typeof t?parseFloat(t):t,i="string"==typeof e.value?parseFloat(e.value):e.value;if(isNaN(n)||isNaN(i))return!1;switch(e.operator){case"greaterThan":return n>i;case"lessThan":return n<i;case"greaterThanOrEqual":return n>=i;case"lessThanOrEqual":return n<=i;case"equals":return n===i;case"notEquals":return n!==i;default:return!1}},[]),F=o(()=>r?.condition?.conditions||[],[r?.condition]);n(()=>{N!==A&&(E(new Set),I(N))},[N,A]);const O=o(()=>{if("test"!==p||!N||""===N)return null;const e=F.filter(e=>D(e,N));if(0===e.length)return null;for(const t of e)if(!$.has(t.id))return t;return null},[N,F,$,p,D,j]),z=i(e=>{E(t=>new Set(t).add(e))},[]),q=L(),_=d||c||r?.validation?.readonly;return P.jsxs("div",{className:`form-group ${(()=>{const e=r?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!x&&r.basic.label&&P.jsxs("label",{htmlFor:e,className:"form-label",children:[r.basic.label,r.validation.required&&P.jsx("span",{className:"required-indicator",children:"*"})]}),P.jsxs("div",{className:"input-wrapper",children:[P.jsx("input",{type:q,id:e,value:N,onChange:e=>{const t=e.target.value;V(t)},onFocus:()=>{T(!0),b&&b()},onBlur:()=>{if(T(!1),k(!0),"test"===p&&h){const t=R(N),n={id:e,value:N,isValid:t.isValid,errors:t.errors};h(n)}f&&f()},placeholder:r.basic.placeholder,disabled:_,readOnly:c||r?.validation?.readonly,className:(()=>{const t="form-control";if("test"===p){const n=!R(N).isValid&&w,i=s[e]&&(w||m);return`${t} ${n||i?"is-invalid":""} ${g}`.trim()}return`${t} ${g}`.trim()})()}),P.jsx(J,{validationErrors:s,fieldId:e,touchedFields:u,formSubmitted:m,properties:r,localValidation:R(N),isTouched:w,mode:p}),O&&"test"===p&&(()=>{const e=j?.has(O.id)||!1;return P.jsx(Y,{component:r,condition:O,currentValue:N,thresholdValue:O.value,formTemplateId:v,onDismiss:()=>z(O.id),onIssueRaised:y,isIssueRaised:e},`${O.id}-${e}`)})()]})]})},X=({id:e,properties:o,validationErrors:r={},formValue:s="",readonly:a=!1,disabled:l=!1,touchedFields:c={},formSubmitted:d=!1,mode:u="preview",onValueChange:m,onBlur:p,onFocus:h,className:f="",hideLabel:b=!1})=>{const[g,x]=t(s),[v,y]=t(!1),j=i(e=>{const t={};let n=!0;return!o?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),o?.validation?.minLength&&e&&e.length<o.validation.minLength&&(t.minLength=!0,n=!1),o?.validation?.maxLength&&e&&e.length>o.validation.maxLength&&(t.maxLength=!0,n=!1),{isValid:n,errors:t}},[o]),N=i(t=>{if(x(t),m){const n=j(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};m(i)}},[e,m,j]);n(()=>{v&&(c[e]=!0)},[v,e,c]),n(()=>{""===g&&""!==s&&x(s)},[s]),n(()=>{d&&y(!0)},[d]),n(()=>{"test"!==u&&x("")},[u]);const C=l||a||o?.validation?.readonly,w=o?.validation?.rows||4;return P.jsxs("div",{className:`form-group ${(()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!b&&o.basic.label&&P.jsxs("label",{htmlFor:e,className:"form-label",children:[o.basic.label,o.validation.required&&P.jsx("span",{className:"required-indicator",children:"*"})]}),P.jsxs("div",{className:"input-wrapper",children:[P.jsx("textarea",{id:e,value:g,onChange:e=>{const t=e.target.value;N(t)},onFocus:()=>{h&&h()},onBlur:()=>{y(!0),p&&p()},placeholder:o.basic.placeholder,disabled:C,readOnly:a||o?.validation?.readonly,rows:w,className:`form-textarea ${!j(g).isValid&&v?"is-invalid":""} ${f}`.trim()}),P.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:j(g),isTouched:v,mode:u})]})]})},K=({id:e,properties:o,validationErrors:r={},formValue:s="",readonly:a=!1,disabled:l=!1,touchedFields:c={},formSubmitted:d=!1,mode:u="preview",onValueChange:m,onBlur:p,onFocus:h,className:f="",hideLabel:b=!1})=>{const[g,x]=t(s),[v,y]=t(!1),j=o?.validation?.multiple||!1,N=i(e=>{const t={};let n=!0;return o?.validation?.required&&(j?Array.isArray(e)&&0!==e.length||(t.required=!0,n=!1):(!e||"string"==typeof e&&""===e.trim())&&(t.required=!0,n=!1)),{isValid:n,errors:t}},[o,j]),C=i(t=>{if(x(t),m){const n=N(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};m(i)}},[e,m,N]);n(()=>{v&&(c[e]=!0)},[v,e,c]),n(()=>{JSON.stringify(s)!==JSON.stringify(g)&&x(s)},[s,g]),n(()=>{d&&y(!0)},[d]);const w=l||a||o?.validation?.readonly;return P.jsxs("div",{className:`form-group ${(()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!b&&o.basic.label&&P.jsxs("label",{htmlFor:e,className:"form-label",children:[o.basic.label,o.validation.required&&P.jsx("span",{className:"required-indicator",children:"*"})]}),P.jsxs("div",{className:"input-wrapper",children:[P.jsxs("select",{id:e,value:g,onChange:e=>{if(j){const t=Array.from(e.target.selectedOptions,e=>e.value);C(t)}else C(e.target.value)},onFocus:()=>{h&&h()},onBlur:()=>{y(!0),p&&p()},disabled:w,multiple:j,className:`form-select ${!N(g).isValid&&v?"is-invalid":""} ${f}`.trim(),children:[!j&&P.jsx("option",{value:"",children:o.basic.placeholder||"Select an option"}),(o.options||[]).map((e,t)=>P.jsx("option",{value:e.value,disabled:e.disabled,children:e.label},t))]}),P.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:N(g),isTouched:v,mode:u})]})]})},Z=({id:e,properties:o,validationErrors:r={},formValue:s=[],readonly:a=!1,disabled:l=!1,touchedFields:c={},formSubmitted:d=!1,mode:u="preview",onValueChange:m,onBlur:p,onFocus:h,className:f="",hideLabel:b=!1})=>{const[g,x]=t(!1),v=Array.isArray(s)?s:[],y=i(e=>{const t={};let n=!0;return o?.validation?.required&&0===e.length&&(t.required=!0,n=!1),{isValid:n,errors:t}},[o]),j=i(t=>{if(m){const n=y(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};m(i)}},[e,m,y,v]),N=(e,t)=>{let n;n=t?[...v,e]:v.filter(t=>t!==e),j(n)},C=()=>{h&&h()},w=()=>{x(!0),p&&p()};n(()=>{g&&(c[e]=!0)},[g,e,c]),n(()=>{},[s,e,v]),n(()=>{d&&x(!0)},[d]);const k=l||a||o?.validation?.readonly;return P.jsx(P.Fragment,{children:P.jsx("div",{className:`form-group checkbox-group ${(()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${o?.basic?.inlineLayout?"inline-layout":"vertical-layout"} ${f}`,children:!b&&o.basic.label?P.jsxs(P.Fragment,{children:[P.jsxs("label",{className:"form-label",children:[o.basic.label,o.validation.required&&P.jsx("span",{className:"required-indicator",children:"*"})]}),P.jsxs("div",{className:"input-wrapper",children:[P.jsx("div",{className:"mt-2 "+(o?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(o.options||[]).map((t,n)=>P.jsxs("div",{className:"form-check",children:[P.jsx("input",{type:"checkbox",id:`${e}-${n}`,name:e,value:t.value,checked:v.includes(t.value),onChange:e=>{N(t.value,e.target.checked)},onFocus:C,onBlur:w,disabled:k||t.disabled,className:"form-check-input"}),P.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),P.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:y(v),isTouched:g,mode:u})]})]}):P.jsxs("div",{className:"input-wrapper",children:[P.jsx("div",{className:"mt-2 "+(o?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(o.options||[]).map((t,n)=>P.jsxs("div",{className:"form-check",children:[P.jsx("input",{type:"checkbox",id:`${e}-${n}`,name:e,value:t.value,checked:v.includes(t.value),onChange:e=>{N(t.value,e.target.checked)},onFocus:C,onBlur:w,disabled:k||t.disabled,className:"form-check-input"}),P.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),P.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:y(v),isTouched:g,mode:u})]})})})},Q=({id:e,properties:o,validationErrors:r={},formValue:s="",readonly:a=!1,disabled:l=!1,touchedFields:c={},formSubmitted:d=!1,mode:u="preview",onValueChange:m,onBlur:p,onFocus:h,className:f="",hideLabel:b=!1})=>{const[g,x]=t(s),[v,y]=t(!1),j=i(e=>{const t={};let n=!0;return!o?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),{isValid:n,errors:t}},[o]),N=i(t=>{if(x(t),m){const n=j(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};m(i)}},[e,m,j]),C=e=>{N(e)},w=()=>{h&&h()},k=()=>{y(!0),p&&p()};n(()=>{v&&(c[e]=!0)},[v,e,c]),n(()=>{s!==g&&x(s)},[s,g]),n(()=>{d&&y(!0)},[d]);const S=l||a||o?.validation?.readonly;return P.jsx(P.Fragment,{children:P.jsx("div",{className:`form-group radio-group ${(()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${o?.basic?.inlineLayout?"inline-layout":"vertical-layout"} ${f}`,children:!b&&o.basic.label?P.jsxs(P.Fragment,{children:[P.jsxs("label",{className:"form-label",children:[o.basic.label,o.validation.required&&P.jsx("span",{className:"required-indicator",children:"*"})]}),P.jsxs("div",{className:"input-wrapper",children:[P.jsx("div",{className:"mt-2 "+(o?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(o.options||[]).map((t,n)=>P.jsxs("div",{className:"form-check",children:[P.jsx("input",{type:"radio",id:`${e}-${n}`,name:e,value:t.value,checked:g===t.value,onChange:()=>C(t.value),onFocus:w,onBlur:k,disabled:S||t.disabled,className:"form-check-input"}),P.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),P.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:j(g),isTouched:v,mode:u})]})]}):P.jsxs("div",{className:"input-wrapper",children:[P.jsx("div",{className:"mt-2 "+(o?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(o.options||[]).map((t,n)=>P.jsxs("div",{className:"form-check",children:[P.jsx("input",{type:"radio",id:`${e}-${n}`,name:e,value:t.value,checked:g===t.value,onChange:()=>C(t.value),onFocus:w,onBlur:k,disabled:S||t.disabled,className:"form-check-input"}),P.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),P.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:j(g),isTouched:v,mode:u})]})})})},ee=({id:e,properties:o,validationErrors:r={},formValue:s="",readonly:a=!1,disabled:l=!1,touchedFields:c={},formSubmitted:d=!1,mode:u="preview",onValueChange:m,onBlur:p,onFocus:h,className:f="",hideLabel:b=!1})=>{const[g,x]=t(s),[v,y]=t(!1),j=i(e=>{const t={};let n=!0;return!o?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),{isValid:n,errors:t}},[o]),N=i(t=>{if(x(t),y(!0),m){const n=j(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};m(i)}},[e,m,j]),C=()=>{h&&h()},w=()=>{y(!0),p&&p()};n(()=>{v&&(c[e]=!0)},[v,e,c]),n(()=>{s!==g&&x(s)},[s,g]),n(()=>{d&&y(!0)},[d]);const k=()=>o?.basic?.inlineLayout?"inline-layout":"grid-layout",S=e=>{const t=e?.toLowerCase();return"pass"===t||"yes"===t?"pass":"fail"===t||"no"===t?"fail":"pass"},T=e=>{if(void 0!==e?.icon&&""!==e.icon)return e.icon;return"pass"===S(e?.value||e)?"✓":"×"},$=(e,t)=>e?.color||e?.backgroundColor?{color:t?"#ffffff":e.color||"#00814b",backgroundColor:t?e.color||"#00814b":e.backgroundColor||"#34bd4914",borderColor:e.color||"#00814b"}:{},E=e=>{if(e?.color||e?.backgroundColor)return"segment-button-label segment-button-custom";return"segment-button-label "+("pass"===S(e?.value||e)?"pass-button":"fail-button")},A=l||a||o?.validation?.readonly;return P.jsxs(P.Fragment,{children:[P.jsx("div",{className:`form-group segment-group ${(()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${f}`,children:!b&&o.basic.label?P.jsxs(P.Fragment,{children:[P.jsxs("label",{className:"form-label",children:[o.basic.label,o.validation.required&&P.jsx("span",{className:"required-indicator",children:"*"})]}),P.jsx("div",{className:"form-segment-wrapper",children:P.jsx("div",{className:`form-segment-container ${k()}`,children:(o.options||[]).map((t,n)=>{const i=g===t.value,o=$(t,i),r=E(t),s=T(t);return P.jsxs("div",{className:"form-segment-option "+(i?"selected":""),children:[P.jsx("input",{type:"radio",id:`${e}_option_${n}`,name:e,value:t.value,checked:i,onChange:()=>!A&&!t.disabled&&N(t.value),onFocus:C,onBlur:w,disabled:A||t.disabled,className:"form-segment-radio"}),P.jsxs("label",{htmlFor:`${e}_option_${n}`,className:r,style:Object.keys(o).length>0?o:void 0,children:[s&&P.jsx("span",{className:"segment-icon",children:s}),P.jsx("span",{className:"segment-text",children:t.value})]})]},n)})})})]}):P.jsx("div",{className:"form-segment-wrapper",children:P.jsx("div",{className:`form-segment-container ${k()}`,children:(o.options||[]).map((t,n)=>{const i=g===t.value,o=$(t,i),r=E(t),s=T(t);return P.jsxs("div",{className:"form-segment-option "+(i?"selected":""),children:[P.jsx("input",{type:"radio",id:`${e}_option_${n}`,name:e,value:t.value,checked:i,onChange:()=>!A&&!t.disabled&&N(t.value),onFocus:C,onBlur:w,disabled:A||t.disabled,className:"form-segment-radio"}),P.jsxs("label",{htmlFor:`${e}_option_${n}`,className:r,style:Object.keys(o).length>0?o:void 0,children:[s&&P.jsx("span",{className:"segment-icon",children:s}),P.jsx("span",{className:"segment-text",children:t.value})]})]},n)})})})}),P.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:j(g),isTouched:v,mode:u})]})},te=({id:e,properties:o,validationErrors:r={},formValue:s="",readonly:a=!1,disabled:l=!1,touchedFields:c={},formSubmitted:d=!1,mode:u="preview",onValueChange:m,onBlur:p,onFocus:h,className:f="",hideLabel:b=!1})=>{const[g,x]=t(s),[v,y]=t(!1),[j,N]=t(!1),C=i(e=>{const t={};let n=!0;const i=o.name||"",r=o.basic?.dateTimeMode||("datetime-picker"===i?"datetime":"date"),s=e?String(e).trim():"";if(o?.validation?.required&&(!s||""===s))return t.required=!0,n=!1,{isValid:n,errors:t};if(s&&""!==s)if("time"===r){if(!/^([0-1][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$/.test(s))return t.invalidDate=!0,n=!1,{isValid:n,errors:t}}else if("datetime"===r){const e=new Date(s);if(isNaN(e.getTime()))return t.invalidDate=!0,n=!1,{isValid:n,errors:t};if(o?.validation?.minDate){const i=new Date(o.validation.minDate);e<i&&(t.minDate=!0,t.minDateMessage=`Date and time must be on or after ${i.toLocaleDateString()}`,n=!1)}if(o?.validation?.maxDate){const i=new Date(o.validation.maxDate);e>i&&(t.maxDate=!0,t.maxDateMessage=`Date and time must be on or before ${i.toLocaleDateString()}`,n=!1)}}else{const e=new Date(s);if(isNaN(e.getTime()))return t.invalidDate=!0,n=!1,{isValid:n,errors:t};if(o?.validation?.minDate){const i=new Date(o.validation.minDate);e<i&&(t.minDate=!0,t.minDateMessage=`Date must be on or after ${i.toLocaleDateString()}`,n=!1)}if(o?.validation?.maxDate){const i=new Date(o.validation.maxDate);e>i&&(t.maxDate=!0,t.maxDateMessage=`Date must be on or before ${i.toLocaleDateString()}`,n=!1)}}return{isValid:n,errors:t}},[o]),w=i(t=>{if(x(t),m){const n=C(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};m(i)}},[e,m,C]);n(()=>{v&&(c[e]=!0)},[v,e,c]),n(()=>{s===g||j||x(s)},[s,g,j]),n(()=>{d&&y(!0)},[d]);const k=l||a||o?.validation?.readonly,S=o.name||"",T=o.basic?.dateTimeMode||("datetime-picker"===S?"datetime":"date"),$=(()=>{switch(T){case"time":return"time";case"datetime":return"datetime-local";default:return"date"}})();return P.jsxs("div",{className:`form-group ${(()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!b&&o.basic.label&&P.jsxs("label",{htmlFor:e,className:"form-label",children:[o.basic.label,o.validation.required&&P.jsx("span",{className:"required-indicator",children:"*"})]}),P.jsxs("div",{className:"input-wrapper",children:[P.jsx("input",{type:$,id:e,value:g,onChange:e=>{const t=e.target.value;w(t)},onFocus:()=>{N(!0),h&&h()},onBlur:()=>{if(N(!1),y(!0),m){const t=C(g),n={id:e,value:g,isValid:t.isValid,errors:t.errors};m(n)}p&&p()},disabled:k,readOnly:a||o?.validation?.readonly,min:o?.validation?.minDate,max:o?.validation?.maxDate,className:`form-date ${!C(g).isValid&&v?"is-invalid":""} ${f}`.trim()}),P.jsx(J,{validationErrors:r,fieldId:e,touchedFields:c,formSubmitted:d,properties:o,localValidation:C(g),isTouched:v,mode:u})]})]})},ne=({id:e,properties:o,validationErrors:s={},formValue:a="",readonly:l=!1,disabled:c=!1,touchedFields:d={},formSubmitted:u=!1,mode:m="preview",onValueChange:p,onBlur:h,onFocus:f,className:b="",hideLabel:g=!1})=>{const x=r(null),[v,y]=t(!1),[j,N]=t(!1),[C,w]=t(a),[k,S]=t(!1),T=i(e=>{const t={};let n=!0;return!o?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),{isValid:n,errors:t}},[o]),$=i(t=>{if(w(t),p){const n=T(t),i={id:e,value:t,isValid:n.isValid,errors:n.errors};p(i)}},[e,p,T]),E=i(()=>{const e=document.documentElement.classList.contains("dark")||"dark"===document.documentElement.getAttribute("data-theme");let t=getComputedStyle(document.documentElement).getPropertyValue("--df-color-fb-input-bg").trim();t||(t=e?"#2c2e34":"#ffffff");return{strokeColor:e?"#ffffff":"#000000",backgroundColor:t}},[]),A=i(t=>{if(!t)return;const n=x.current;if(!n)return;const i=n.getContext("2d");if(!i)return;const o=new Image;o.onload=()=>{i.clearRect(0,0,n.width,n.height);const e=E();i.fillStyle=e.backgroundColor,i.fillRect(0,0,n.width,n.height);const t=n.width/n.height,r=o.width/o.height;let s=n.width,a=n.height,l=0,c=0;r>t?(a=n.width/r,c=(n.height-a)/2):(s=n.height*r,l=(n.width-s)/2),i.drawImage(o,l,c,s,a)},o.onerror=n=>{console.error("DfFormSignature: error loading image",{id:e,error:n,dataURL:t.substring(0,50)+"..."})},o.src=t},[E,e]),I=i(()=>{const e=x.current;if(!e)return;const t=e.getContext("2d");if(!t)return;const n=e.getBoundingClientRect();e.width=n.width,e.height=n.height,e.style.width=n.width+"px",e.style.height=n.height+"px";const i=E();t.strokeStyle=i.strokeColor,t.lineWidth=2,t.lineCap="round",t.lineJoin="round",C?A(C):(t.fillStyle=i.backgroundColor,t.fillRect(0,0,e.width,e.height))},[C,E,A]),L=i(()=>{setTimeout(()=>{I()},100)},[I]);n(()=>{const e=()=>{L()},t=new MutationObserver(e=>{e.forEach(e=>{if("attributes"===e.type&&"class"===e.attributeName){const t=e.target;t.classList.contains("form-canvas-container")&&(t.classList.contains("mobile-view")||t.classList.contains("tablet-view")||t.classList.contains("desktop-view"))&&L()}})});return t.observe(document.body,{attributes:!0,attributeFilter:["class"],subtree:!0}),window.addEventListener("resize",e),()=>{t.disconnect(),window.removeEventListener("resize",e)}},[L]);const R=i(e=>{const t=x.current;if(!t)return{x:0,y:0};const n=t.getBoundingClientRect(),i=t.width/n.width,o=t.height/n.height,r=e.type.includes("mouse")?e.clientX:e.touches[0].clientX,s=e.type.includes("mouse")?e.clientY:e.touches[0].clientY;return{x:(r-n.left)*i,y:(s-n.top)*o}},[]),V=e=>{if(l||c||o?.validation?.readonly)return;if(e.target.closest(".clear-signature-btn"))return;e.preventDefault(),e.stopPropagation(),y(!0),N(!0);const t=x.current;if(!t)return;const n=t.getContext("2d");if(!n)return;const{x:i,y:r}=R(e),s=E();n.strokeStyle=s.strokeColor,n.lineWidth=2,n.lineCap="round",n.lineJoin="round",n.beginPath(),n.moveTo(i,r)},D=e=>{if(!v)return;e.preventDefault(),e.stopPropagation();const t=x.current;if(!t)return;const n=t.getContext("2d");if(!n)return;const{x:i,y:o}=R(e);n.lineTo(i,o),n.stroke()},F=()=>{if(!v)return;y(!1),S(!0);const e=x.current;if(e){(e=>{const t=e.getContext("2d");if(!t)return!1;const n=t.getImageData(0,0,e.width,e.height).data;for(let e=0;e<n.length;e+=4){const t=n[e],i=n[e+1],o=n[e+2];if(n[e+3]>0&&(t<255||i<255||o<255))return!0}})(e);const t=e.toDataURL("image/png");w(t),$(t),setTimeout(()=>{S(!1)},100)}else S(!1)},O=i(()=>{const e=x.current;if(!e)return;const t=e.getContext("2d");if(!t)return;const n=E();if(t.strokeStyle=n.strokeColor,C){const i=C,o=e.getBoundingClientRect();t.fillStyle=n.backgroundColor,t.fillRect(0,0,o.width,o.height),i&&A(i)}else{const i=e.getBoundingClientRect();t.fillStyle=n.backgroundColor,t.fillRect(0,0,i.width,i.height)}},[E,C,A]);n(()=>{const e=new MutationObserver(e=>{e.forEach(e=>{"attributes"!==e.type||"class"!==e.attributeName&&"data-theme"!==e.attributeName||O()})});return e.observe(document.documentElement,{attributes:!0,attributeFilter:["class","data-theme"]}),()=>{e.disconnect()}},[O]);n(()=>{j&&(d[e]=!0)},[j,e,d]),n(()=>{if(!(a===C||v||k||""!==C&&""===a)){if(a===C)return;w(a),a&&A(a)}},[a,C,v,k]),n(()=>{u&&N(!0)},[u]),n(()=>{if("test"!==m){w("");const e=x.current;if(e){const t=e.getContext("2d");if(t){const n=e.getBoundingClientRect();e.width=n.width,e.height=n.height;const i=E();t.fillStyle=i.backgroundColor,t.fillRect(0,0,n.width,n.height)}}}},[m]),n(()=>{I()},[m]);const z=c||l||o?.validation?.readonly;return P.jsxs("div",{className:`form-group ${(()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!g&&o.basic.label&&P.jsxs("label",{htmlFor:e,className:"form-label",children:[o.basic.label,o.validation.required&&P.jsx("span",{className:"required-indicator",children:"*"})]}),P.jsxs("div",{className:"input-wrapper",children:[P.jsxs("div",{className:"signature-container",style:{position:"relative",width:"100%",maxWidth:"100%",overflow:"hidden"},children:[P.jsx("canvas",{ref:x,id:e,className:`form-signature ${!T(C).isValid&&j?"is-invalid":""} ${b}`.trim(),onMouseDown:V,onMouseMove:D,onMouseUp:F,onMouseLeave:F,onTouchStart:V,onTouchMove:D,onTouchEnd:F,onFocus:()=>{f&&f()},onBlur:()=>{h&&h()},style:{width:"100%",height:"150px",border:"2px solid var(--df-color-primary-border)",borderRadius:"6px",cursor:z?"not-allowed":"crosshair",backgroundColor:"var(--df-color-fb-input-bg)",touchAction:"none",userSelect:"none"}}),!z&&P.jsx("button",{type:"button",onClick:e=>(e=>{e?.preventDefault(),e?.stopPropagation();const t=x.current;if(!t)return;const n=t.getBoundingClientRect();t.width=n.width,t.height=n.height;const i=t.getContext("2d");if(!i)return;const o=E();i.fillStyle=o.backgroundColor,i.fillRect(0,0,n.width,n.height),i.strokeStyle=o.strokeColor,i.lineWidth=2,i.lineCap="round",i.lineJoin="round",w(""),$("")})(e),className:"clear-signature-btn",style:{position:"absolute",bottom:"8px",right:"8px",padding:"4px 8px",backgroundColor:"var(--df-color-error-primary)",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"0.75rem",fontWeight:"500",zIndex:10,transition:"all 0.2s ease",minWidth:"60px",minHeight:"28px"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="var(--df-color-error-dark, #dc2626)",e.currentTarget.style.transform="scale(1.05)"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="var(--df-color-error-primary)",e.currentTarget.style.transform="scale(1)"},children:"Clear"})]}),P.jsx(J,{validationErrors:s,fieldId:e,touchedFields:d,formSubmitted:u,properties:o,localValidation:T(C),isTouched:j,mode:m})]})]})},ie=({id:e,properties:o,validationErrors:s={},formValue:a=null,readonly:l=!1,disabled:c=!1,touchedFields:d={},formSubmitted:u=!1,mode:m="test",onValueChange:p,onBlur:h,onFocus:f,className:b="",hideLabel:g=!1})=>{const[x,v]=t([]),[y,j]=t(!1),[N,C]=t(!1),w=r(null),k=i(t=>{if(!t)return[];const n=Array.isArray(t)?t:Array.from(t),i=[];return n.forEach((t,n)=>{let o,r,s=0,a="",l="";if(t instanceof File||t instanceof Blob){const e=t;if(s=e.size||0,a=e.type||"",l=e.name||`file-${n}`,r=e,a.startsWith("image/"))try{o=URL.createObjectURL(e)}catch(e){console.error("Error creating object URL:",e),o=void 0}}else if("string"==typeof t){const e=t;if(l=`file-${n}`,e.startsWith("data:")){const t=e.indexOf(";");a=t>5?e.substring(5,t):"application/octet-stream"}else{const t=e.match(/\.(jpg|jpeg|png|gif|webp|svg|pdf|doc|docx|xls|xlsx|zip|rar)$/i);if(t){a={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",pdf:"application/pdf",doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",zip:"application/zip",rar:"application/x-rar-compressed"}[t[1].toLowerCase()]||"application/octet-stream"}else a="application/octet-stream"}(e.startsWith("data:image")||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("blob:"))&&(o=e),r=new File([],l,{type:a})}else{if(!t||"object"!=typeof t)return;{const e=t;if(l=e.name||e.fileName||`file-${n}`,s=e.size||e.fileSize||0,a=e.type||e.fileType||e.mimeType||"",e.url||e.path)o=e.url||e.path;else if(a.startsWith("image/")&&e.data){const t=e.data;o="string"==typeof t?t.startsWith("data:")?t:`data:${a};base64,${t}`:void 0}r=new File([],l,{type:a})}}i.push({file:r,id:`${e}-file-${n}`,size:s,type:a,name:l,preview:o})}),i},[e]),S=i(()=>({isValid:!0,errors:{}}),[]),T=i(t=>{if(l||c)return;const n=k(t),i=x.length>0?[...x,...n]:n,r=o?.validation?.maxFiles||1/0,s=i.slice(0,r);if(v(s),C(!0),p){const t=S(),n={id:e,value:s.map(e=>e.file),isValid:t.isValid,errors:t.errors};p(n)}},[x,o,l,c,p,S,k,e]),$=e=>{if(0===e)return"0 Bytes";const t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(2))+" "+["Bytes","KB","MB","GB"][t]},E=e=>e.startsWith("image/")?"🖼️":e.startsWith("video/")?"🎥":e.startsWith("audio/")?"🎵":e.includes("pdf")?"📄":e.includes("word")||e.includes("document")?"📝":e.includes("excel")||e.includes("spreadsheet")?"📊":e.includes("zip")||e.includes("rar")?"📦":"📁";n(()=>{N&&(d[e]=!0)},[N,e,d]),n(()=>{("edit"===m||"test"===m)&&C(!1)},[m]),n(()=>{const e=k(a);v(e)},[a,k]),n(()=>{u&&C(!0)},[u]),n(()=>()=>{x.forEach(e=>{if(e.preview&&e.preview.startsWith("blob:"))try{URL.revokeObjectURL(e.preview)}catch(e){console.error("Error revoking object URL:",e)}})},[x]);const A=()=>{const e=o?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"},I=c||l||o?.validation?.readonly,L=o?.validation?.multiple||!1,R=o?.validation?.accept||"*/*",V=o?.validation?.maxFiles||1/0,D=x.length<V&&(L||V>1),F="edit"===m,O="preview"===m||"test"===m,z=x.filter(e=>e.type.startsWith("image/")),q=x.filter(e=>!e.type.startsWith("image/")),_=z.length>0;return O&&_?P.jsxs("div",{className:`form-group ${A()}`,children:[!g&&P.jsxs("label",{htmlFor:e,className:"form-label",children:[o.basic?.label||"Attachments",o.validation?.required&&P.jsx("span",{className:"required-indicator",children:"*"})]}),P.jsxs("div",{className:"file-upload-wrapper",children:[P.jsxs("div",{className:"file-image-display",children:[z.map(e=>P.jsxs("div",{className:"file-image-container",children:[e.preview&&P.jsx("img",{src:e.preview,alt:e.name,className:"file-image-preview"}),P.jsxs("div",{className:"file-image-info",children:[P.jsx("div",{className:"file-name",title:e.name,children:e.name}),P.jsx("div",{className:"file-size",children:$(e.size)})]})]},e.id)),q.length>0&&P.jsxs("div",{className:"file-other-files",children:[P.jsx("div",{className:"file-other-files-label",children:"Other Files:"}),q.map(e=>P.jsxs("div",{className:"file-item-minimal",children:[P.jsx("div",{className:"file-icon",children:E(e.type)}),P.jsxs("div",{className:"file-info",children:[P.jsx("div",{className:"file-name",title:e.name,children:e.name}),P.jsx("div",{className:"file-size",children:$(e.size)})]})]},e.id))]})]}),P.jsx(J,{validationErrors:s,fieldId:e,touchedFields:d,formSubmitted:u,properties:o,localValidation:S(),isTouched:N,mode:m})]})]}):P.jsxs("div",{className:`form-group ${A()}`,children:[!g&&P.jsxs("label",{htmlFor:e,className:"form-label",children:[o.basic?.label||"Attachments",o.validation?.required&&P.jsx("span",{className:"required-indicator",children:"*"})]}),P.jsxs("div",{className:"file-upload-wrapper",children:[P.jsxs("div",{className:`file-upload-area ${y?"drag-over":""} ${l?"readonly":""} ${c?"disabled":""} ${b}`.trim(),onDragOver:e=>{e.preventDefault(),l||c||j(!0)},onDragLeave:e=>{e.preventDefault(),j(!1)},onDrop:e=>{if(e.preventDefault(),j(!1),l||c)return;const t=e.dataTransfer.files;t.length>0&&T(t)},onClick:e=>{const t=e.target,n=null!==t.closest(".file-item"),i=null!==t.closest(".file-remove");!F||I||0!==x.length||n||i||w.current?.click()},onFocus:()=>{f&&f()},onBlur:()=>{if(C(!0),"test"===m&&p){const t=S(),n={id:e,value:x.map(e=>e.file),isValid:t.isValid,errors:t.errors};p(n)}h&&h()},tabIndex:I?-1:0,children:[P.jsx("input",{ref:w,type:"file",id:e,multiple:L,accept:R,onChange:e=>{const t=e.target.files;t&&t.length>0&&(T(t),e.target.value="")},disabled:I,style:{display:"none"}}),0===x.length?P.jsxs("div",{className:"upload-placeholder",onClick:e=>{e.stopPropagation(),F&&!I&&w.current?.click()},children:[P.jsx("div",{className:"upload-icon",children:"📁"}),P.jsx("div",{className:"upload-text",children:o.basic.placeholder&&P.jsx("p",{className:"upload-hint",children:o.basic.placeholder})})]}):P.jsx("div",{className:"file-list",children:x.map(t=>P.jsxs("div",{className:"file-item",children:[P.jsx("div",{className:"file-preview",children:t.preview?P.jsx("img",{src:t.preview,alt:t.name,className:"file-image"}):P.jsx("div",{className:"file-icon",children:E(t.type)})}),P.jsxs("div",{className:"file-info",children:[P.jsx("div",{className:"file-name",title:t.name,children:t.name}),P.jsx("div",{className:"file-size",children:$(t.size)})]}),F&&!I&&P.jsx("button",{type:"button",className:"file-remove",onClick:n=>{n.stopPropagation(),(t=>{if(l||c)return;const n=x.filter(e=>e.id!==t);if(v(n),C(!0),p){const t=S(),i={id:e,value:n.map(e=>e.file),isValid:t.isValid,errors:t.errors};p(i)}})(t.id)},"aria-label":`Remove ${t.name}`,children:"✕"})]},t.id))})]}),x.length>0&&D&&!I&&F&&P.jsxs("button",{type:"button",className:"file-add-more",onClick:e=>{e.stopPropagation(),!I&&w.current&&F&&(w.current.value="",w.current.click())},"aria-label":"Add more files",children:[P.jsx("svg",{className:"file-add-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:P.jsx("path",{d:"M12 5v14M5 12h14"})}),P.jsx("span",{className:"file-add-text",children:"Add More Files"})]}),P.jsx(J,{validationErrors:s,fieldId:e,touchedFields:d,formSubmitted:u,properties:o,localValidation:S(),isTouched:N,mode:m})]})]})},oe=({id:e,properties:o,validationErrors:s={},formValue:a=null,readonly:m=!1,disabled:p=!1,touchedFields:h={},formSubmitted:f=!1,mode:b="test",onValueChange:g,onBlur:x,onFocus:v,className:y="",hideLabel:j=!1})=>{const[N,C]=t(a),[w,k]=t(!1),[S,T]=t(""),[$,E]=t(!1),[A,I]=t(!1),[L,R]=t({lat:40.7128,lng:-74.006}),[V,D]=t(null),[F,O]=t(10),[z,q]=t(""),[_,M]=t(!1),W=r(null),[B,U]=t(!1),[H,Y]=t(null),[G,X]=t(!1);n(()=>{a?(C(a),a.latitude&&a.longitude&&(D({lat:a.latitude,lng:a.longitude,isCurrentLocation:!1}),R({lat:a.latitude,lng:a.longitude}))):(C(null),D(null))},[a]),n(()=>{A&&40.7128===L.lat&&L.lng},[A,L]),n(()=>{(m||p)&&(A&&I(!1),z&&q(""),B&&(U(!1),Y(null)))},[m,p]);const K=i(async(e,t)=>{X(!0);try{const n=await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${e}&lon=${t}&addressdetails=1&zoom=18`),i=await n.json();if(i&&i.address){const e=i.address;return{placeName:i.display_name||"",city:e.city||e.town||e.village||e.municipality||"",country:e.country||""}}}catch(e){console.error("Reverse geocoding failed:",e)}finally{X(!1)}return{placeName:"",city:"",country:""}},[]),Z=i(async(t,n,i)=>{const o=await K(t,n),r={latitude:t,longitude:n,timestamp:Date.now(),placeName:o.placeName,city:o.city,country:o.country,address:o.placeName,...i};if(C(r),D({lat:t,lng:n,isCurrentLocation:!1}),E(!0),g){g({id:e,value:r,isValid:!0,errors:{}})}},[K,e,g]),Q=i(()=>{if(m||p)return;if(!navigator.geolocation)return void T("Geolocation is not supported by this browser.");k(!0),T("");const e={enableHighAccuracy:o.validation?.enableHighAccuracy??!0,timeout:o.validation?.timeout??1e4,maximumAge:o.validation?.maximumAge??3e5};navigator.geolocation.getCurrentPosition(async e=>{const t=e.coords.latitude,n=e.coords.longitude;D({lat:t,lng:n,isCurrentLocation:!0}),R({lat:t,lng:n}),E(!0),await Z(t,n,{accuracy:e.coords.accuracy,timestamp:e.timestamp}),k(!1)},e=>{k(!1);let t="Unable to retrieve your location.";switch(e.code){case e.PERMISSION_DENIED:t="Location access denied by user.";break;case e.POSITION_UNAVAILABLE:t="Location information is unavailable.";break;case e.TIMEOUT:t="Location request timed out."}T(t)},e)},[m,p,e,g,o]),ee=i(()=>{if(!m&&!p&&(C(null),D(null),T(""),E(!0),g)){g({id:e,value:null,isValid:!0,errors:{}})}},[m,p,e,g]),te=i(()=>{m||p||I(!A)},[m,p,A]),ne=i((e,t,n,i,o,r)=>{const s=e-o/2,a=t-r/2,l=156543.03392*Math.cos(n.lat*Math.PI/180)/Math.pow(2,i),c=s*l,d=a*l;return{lat:n.lat+d/111320,lng:n.lng+c/(111320*Math.cos(n.lat*Math.PI/180))}},[]),ie=i(e=>{m||p||!W.current||0===e.button&&(U(!0),Y({x:e.clientX,y:e.clientY}),e.preventDefault())},[m,p]),oe=i(e=>{if(!B||!H||!W.current)return;const t=e.clientX-H.x,n=e.clientY-H.y,i=156543.03392*Math.cos(L.lat*Math.PI/180)/Math.pow(2,F),o=-n*i/111320,r=t*i/(111320*Math.cos(L.lat*Math.PI/180));R({lat:L.lat+o,lng:L.lng+r}),Y({x:e.clientX,y:e.clientY})},[B,H,L,F]),re=i(async e=>{if(!W.current)return;if(B&&H){const t=Math.abs(e.clientX-H.x),n=Math.abs(e.clientY-H.y);if(t>5||n>5)return U(!1),void Y(null)}if(m||p)return U(!1),void Y(null);const t=W.current.getBoundingClientRect(),n=e.clientX-t.left,i=e.clientY-t.top,{lat:o,lng:r}=ne(n,i,L,F,t.width,t.height);await Z(o,r),U(!1),Y(null)},[m,p,W,L,F,ne,Z,B,H]),se=i(async t=>{if(t.trim()&&!m&&!p){M(!0),T("");try{const n=await fetch(`https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(t)}&limit=5&addressdetails=1`),i=await n.json();if(i&&i.length>0){const t=i[0],n=parseFloat(t.lat),o=parseFloat(t.lon),r=t.address||{},s={latitude:n,longitude:o,address:t.display_name,placeName:t.display_name,city:r.city||r.town||r.village||r.municipality||"",country:r.country||"",timestamp:Date.now()};if(C(s),D({lat:n,lng:o,isCurrentLocation:!1}),R({lat:n,lng:o}),E(!0),g){g({id:e,value:s,isValid:!0,errors:{}})}}else T("No locations found for your search.")}catch(e){T("Failed to search for location. Please try again.")}finally{M(!1)}}},[m,p,e,g]),ae=()=>{v&&v()},le=()=>{E(!0),x&&x()},ce=p||m||o?.validation?.readonly,de=o?.basic?.label||"Location",ue=o?.basic?.description||"";return P.jsxs("div",{className:`form-group ${j?"no-label":""} ${y}`,children:[!j&&P.jsxs("label",{htmlFor:e,className:"form-label",children:[de,o?.validation?.required&&P.jsx("span",{className:"required-indicator",children:"*"})]}),ue&&P.jsx("div",{className:"form-group-description",children:ue}),P.jsxs("div",{className:"location-wrapper",children:[!(m&&N)&&P.jsxs("div",{className:"location-controls",children:[P.jsx("button",{type:"button",className:"location-btn "+(w?"loading":""),onClick:Q,disabled:ce||w,onFocus:ae,onBlur:le,tabIndex:ce?-1:0,children:w?P.jsxs(P.Fragment,{children:[P.jsx(l,{size:16,className:"loading-spinner"}),"Getting Location..."]}):P.jsxs(P.Fragment,{children:[P.jsx(c,{size:16}),"Get Current Location"]})}),P.jsxs("button",{type:"button",className:"location-btn secondary",onClick:te,disabled:ce,onFocus:ae,onBlur:le,tabIndex:ce?-1:0,children:[P.jsx(d,{size:16}),A?"Hide Map":"Choose on Map"]})]}),N&&P.jsxs("div",{className:"location-display",children:[!m&&P.jsx("button",{type:"button",className:"location-clear-btn",onClick:ee,disabled:ce,title:"Clear location",children:P.jsx(u,{size:16})}),N.placeName&&P.jsxs("div",{className:"location-place-name",children:[P.jsx("strong",{children:"Place:"})," ",N.placeName]}),(N.city||N.country)&&P.jsxs("div",{className:"location-address",children:[P.jsx("strong",{children:"Address:"})," ",[N.city,N.country].filter(Boolean).join(", ")]}),P.jsxs("div",{className:"location-coordinates",children:[P.jsx("strong",{children:"Coordinates:"})," ",(pe=N.latitude,he=N.longitude,`${pe.toFixed(6)}, ${he.toFixed(6)}`)]}),N.accuracy&&P.jsxs("div",{className:"location-accuracy",children:[P.jsx("strong",{children:"Accuracy:"})," ",(me=N.accuracy,me?`±${Math.round(me)}m`:"")]}),N.timestamp&&P.jsxs("div",{className:"location-timestamp",children:[P.jsx("strong",{children:"Captured:"})," ",new Date(N.timestamp).toLocaleString()]})]}),A&&!m&&P.jsxs("div",{className:"location-map-container",children:[P.jsxs("div",{className:"location-map-header",children:[P.jsx("h4",{children:"Select Location on Map"}),P.jsx("p",{children:"Search for a place or click on the map to select a location"})]}),P.jsx("div",{className:"location-search",children:P.jsx("form",{onSubmit:e=>{e.preventDefault(),z.trim()&&se(z)},className:"search-form",children:P.jsxs("div",{className:"search-input-group",children:[P.jsx("input",{type:"text",value:z,onChange:e=>{q(e.target.value)},placeholder:"Search for a place (e.g., New York, Paris, Tokyo)",className:"search-input",disabled:ce||_}),P.jsx("button",{type:"submit",className:"search-btn",disabled:ce||_||!z.trim(),children:_?P.jsx(l,{size:16,className:"loading-spinner"}):"Search"})]})})}),P.jsxs("div",{ref:W,className:"location-map "+(B?"dragging":""),onMouseDown:ie,onMouseMove:oe,onMouseUp:re,onMouseLeave:()=>{U(!1),Y(null)},style:{position:"relative",height:"400px",border:"2px solid var(--df-color-fb-border)",borderRadius:"8px",overflow:"hidden",cursor:B?"grabbing":"grab",background:`url(https://tile.openstreetmap.org/${F}/${Math.floor((L.lng+180)/360*Math.pow(2,F))}/${Math.floor((1-Math.log(Math.tan(L.lat*Math.PI/180)+1/Math.cos(L.lat*Math.PI/180))/Math.PI)/2*Math.pow(2,F))}.png) center/cover no-repeat`,userSelect:"none"},children:[V&&P.jsx("div",{className:"map-marker "+(V.isCurrentLocation?"current-location":"selected-location"),style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -100%)",zIndex:10},children:P.jsx(d,{size:24})}),P.jsx("div",{className:"map-center-indicator",style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",width:"4px",height:"4px",backgroundColor:"var(--df-color-primary)",borderRadius:"50%",zIndex:5}}),P.jsxs("div",{className:"map-controls",children:[P.jsx("button",{type:"button",className:"map-zoom-btn",onClick:()=>O(e=>Math.min(18,e+1)),disabled:F>=18,children:"+"}),P.jsx("button",{type:"button",className:"map-zoom-btn",onClick:()=>O(e=>Math.max(1,e-1)),disabled:F<=1,children:"−"})]})]}),P.jsxs("div",{className:"location-map-instructions",children:[P.jsx("p",{children:P.jsx("strong",{children:"Instructions:"})}),P.jsxs("ul",{children:[P.jsx("li",{children:"Search for a place using the search box above"}),P.jsx("li",{children:"Click anywhere on the map to select a location"}),P.jsx("li",{children:"Drag the map to pan around"}),P.jsx("li",{children:"Use the zoom buttons (+/−) to zoom in/out"}),P.jsx("li",{children:'Use "Get Current Location" to automatically detect your position'})]})]}),G&&P.jsxs("div",{className:"location-loading",children:[P.jsx(l,{size:16,className:"loading-spinner"}),P.jsx("span",{children:"Loading address details..."})]})]}),S&&P.jsx("div",{className:"location-error",children:S})]}),P.jsx(J,{validationErrors:s,fieldId:e,touchedFields:h,formSubmitted:f,properties:o,localValidation:{isValid:!0,errors:{}},isTouched:$,mode:b})]});var me,pe,he},re=({id:e,properties:t,className:n="",hideLabel:i=!1})=>{const o=t.styles?.level??t.basic.level??1,r=t.basic.label,s=()=>{const e={};return t?.styles?.fontSize&&(e.fontSize=t.styles.fontSize),t?.styles?.color&&(e.color=t.styles.color),e};return i?null:(()=>{const i={id:e,className:`form-heading h${o} ${t?.styles?.textAlign?`text-${t.styles.textAlign}`:""} ${n}`.trim(),style:s()};switch(o){case 1:default:return P.jsx("h1",{...i,children:r});case 2:return P.jsx("h2",{...i,children:r});case 3:return P.jsx("h3",{...i,children:r});case 4:return P.jsx("h4",{...i,children:r});case 5:return P.jsx("h5",{...i,children:r});case 6:return P.jsx("h6",{...i,children:r})}})()},se=({id:e,properties:o,mode:s="preview",onValueChange:a,className:l="",hideLabel:c=!1})=>{const[d,u]=t(""),[g,x]=t(o.validation?.listStyle||"numbers"),[v,y]=t("#000000"),j=r(null),N=r(null),C=r(!1),w="edit"===s,k=r({instructions:[],listStyle:"numbers"}),S=r(s);n(()=>{let e=[];o.basic?.instructions&&(Array.isArray(o.basic.instructions)?e=o.basic.instructions:"string"==typeof o.basic.instructions&&(e=[o.basic.instructions]));const t=o.validation?.listStyle||"numbers",n=JSON.stringify(e)!==JSON.stringify(k.current.instructions)||t!==k.current.listStyle,i=s!==S.current;if(n||i){const o=e.some(e=>"string"==typeof e&&/<[^>]+>/.test(e));let r="";if(e.length>0)if(o)r=e.join("");else{const n="numbers"===t?"ol":"bullets"===t?"ul":"div",i=e.filter(e=>e&&"string"==typeof e).map(e=>`<li>${e.replace(/\n/g,"<br>")}</li>`).join("");r="div"===n?e.filter(e=>e&&"string"==typeof e).map(e=>`<div>${e.replace(/\n/g,"<br>")}</div>`).join(""):`<${n}>${i}</${n}>`}x(t),u(r),w&&j.current&&(i||n&&j.current.innerHTML.trim()!==r.trim())&&(j.current.innerHTML=r),k.current={instructions:e,listStyle:t},S.current=s}},[o.basic?.instructions,o.validation?.listStyle,s,w]),n(()=>{if(w&&j.current){const e=j.current.innerHTML.trim();d.trim()===e||C.current||(j.current.innerHTML=d)}if(C.current){const e=setTimeout(()=>{C.current=!1},200);return()=>clearTimeout(e)}},[d,w]);const T=i(()=>{if(!j.current)return;C.current=!0;const t=j.current.innerHTML.trim();if(a){a({id:e,value:{instructions:t?[t]:[],listStyle:g},isValid:!0,errors:{}})}t!==d&&u(t)},[e,g,a,d]),$=i(()=>{if(!j.current)return;const t=j.current.innerHTML.trim();if(a){a({id:e,value:{instructions:t?[t]:[],listStyle:g},isValid:!0,errors:{}})}u(t),C.current=!1},[e,g,a]),E=i((e,t)=>{document.execCommand(e,!1,t),j.current?.focus(),T()},[T]),A=i(()=>{E("bold")},[E]),I=i(()=>{E("italic")},[E]),L=i(e=>{const t=e.target.value;y(t),E("foreColor",t)},[E]),R=i(t=>{if(x(t),!j.current)return;const n=window.getSelection(),i=n&&n.rangeCount>0?n.getRangeAt(0):null;let o=j.current.innerHTML;if("numbers"===t){if(o=o.replace(/<ul>/gi,"<ol>").replace(/<\/ul>/gi,"</ol>"),!o.includes("<ol>")&&!o.includes("<ul>")){const e=o.split(/<br\s*\/?>/i).filter(e=>e.trim());e.length>0&&(o="<ol>"+e.map(e=>`<li>${e}</li>`).join("")+"</ol>")}}else if("bullets"===t){if(o=o.replace(/<ol>/gi,"<ul>").replace(/<\/ol>/gi,"</ul>"),!o.includes("<ol>")&&!o.includes("<ul>")){const e=o.split(/<br\s*\/?>/i).filter(e=>e.trim());e.length>0&&(o="<ul>"+e.map(e=>`<li>${e}</li>`).join("")+"</ul>")}}else o=o.replace(/<\/?[ou]l>/gi,"").replace(/<li>/gi,"<div>").replace(/<\/li>/gi,"</div>");if(j.current.innerHTML=o,u(o),i&&n)try{n.removeAllRanges(),n.addRange(i)}catch(e){}if(T(),a){a({id:e,value:{instructions:o?[o]:[],listStyle:t},isValid:!0,errors:{}})}},[e,T,a]),V=i(e=>{const t=e.target.files?.[0];if(!t||!t.type.startsWith("image/"))return;const n=new FileReader;n.onload=e=>{const t=e.target?.result;if(t&&j.current){const e=document.createElement("img");e.src=t,e.style.maxWidth="100%",e.style.height="auto";const n=window.getSelection();if(n&&n.rangeCount>0){const t=n.getRangeAt(0);t.deleteContents(),t.insertNode(e)}else j.current.appendChild(e);T()}},n.readAsDataURL(t),N.current&&(N.current.value="")},[T]),D=i(e=>{e.preventDefault();const t=e.clipboardData.getData("text/plain"),n=window.getSelection();if(n&&n.rangeCount>0){const e=n.getRangeAt(0);e.deleteContents();const i=document.createTextNode(t);e.insertNode(i),e.setStartAfter(i),e.collapse(!0),n.removeAllRanges(),n.addRange(e)}T()},[T]),F=i(e=>document.queryCommandState(e),[]);return P.jsxs("div",{className:`form-group instruction-group ${l}`,children:[!c&&P.jsx("label",{htmlFor:e,className:"instruction-label",children:"Instructions"}),w?P.jsxs("div",{className:"instruction-rich-editor",children:[P.jsxs("div",{className:"instruction-toolbar",children:[P.jsxs("div",{className:"toolbar-group",children:[P.jsx("button",{type:"button",className:"toolbar-btn "+(F("bold")?"active":""),onClick:A,title:"Bold","aria-label":"Bold",children:P.jsx(m,{size:16})}),P.jsx("button",{type:"button",className:"toolbar-btn "+(F("italic")?"active":""),onClick:I,title:"Italic","aria-label":"Italic",children:P.jsx(p,{size:16})})]}),P.jsx("div",{className:"toolbar-separator"}),P.jsx("div",{className:"toolbar-group",children:P.jsxs("div",{className:"color-picker-wrapper",children:[P.jsx("input",{type:"color",value:v,onChange:L,className:"color-picker-input",title:"Text Color"}),P.jsx("label",{className:"color-picker-label",title:"Text Color",children:P.jsx("span",{style:{color:v},children:"A"})})]})}),P.jsx("div",{className:"toolbar-separator"}),P.jsxs("div",{className:"toolbar-group",children:[P.jsx("button",{type:"button",className:"toolbar-btn "+("bullets"===g?"active":""),onClick:()=>R("bullets"),title:"Bullet List","aria-label":"Bullet List",children:P.jsx(h,{size:16})}),P.jsx("button",{type:"button",className:"toolbar-btn "+("numbers"===g?"active":""),onClick:()=>R("numbers"),title:"Numbered List","aria-label":"Numbered List",children:P.jsx(f,{size:16})})]}),P.jsx("div",{className:"toolbar-separator"}),P.jsxs("div",{className:"toolbar-group",children:[P.jsx("button",{type:"button",className:"toolbar-btn",onClick:()=>N.current?.click(),title:"Insert Image","aria-label":"Insert Image",children:P.jsx(b,{size:16})}),P.jsx("input",{ref:N,type:"file",accept:"image/*",onChange:V,style:{display:"none"}})]})]}),P.jsx("div",{ref:j,contentEditable:!0,className:"instruction-editor-content",onInput:T,onBlur:$,onPaste:D,"data-placeholder":"Enter instructions (press Enter for a new line)...",suppressContentEditableWarning:!0})]}):P.jsx("div",{className:"instruction-preview-wrapper "+("numbers"===g?"instruction-list-numbers":"bullets"===g?"instruction-list-bullets":""),children:d?P.jsx("div",{className:"instruction-preview-content",dangerouslySetInnerHTML:{__html:d}}):P.jsx("div",{className:"instruction-empty",children:P.jsx("p",{children:"No instructions provided"})})})]})},ae=({attachments:e,onRemove:i})=>{const[o,r]=t(new Map);return n(()=>{if(!e)return void r(e=>(e.forEach(e=>URL.revokeObjectURL(e)),new Map));const t=new Map;return e.forEach((e,n)=>{if(e.type.startsWith("image/")){const i=URL.createObjectURL(e);t.set(n,i)}}),r(e=>(e.forEach((e,n)=>{t.has(n)||URL.revokeObjectURL(e)}),t)),()=>{t.forEach(e=>URL.revokeObjectURL(e))}},[e]),e&&0!==e.length?P.jsx("div",{className:"attachment-thumbnails-container",children:e.map((e,t)=>{const n=e.type.startsWith("image/"),r=o.get(t);return P.jsx("div",{className:"attachment-thumbnail",children:n&&r?P.jsxs(P.Fragment,{children:[P.jsx("img",{src:r,alt:e.name}),P.jsx("button",{type:"button",className:"thumbnail-remove-btn",onClick:()=>i(t),title:"Remove attachment",children:P.jsx(u,{size:14})})]}):P.jsxs(P.Fragment,{children:[P.jsx("div",{className:"file-icon-placeholder",children:P.jsx(x,{size:20})}),P.jsx("span",{className:"file-name",children:e.name}),P.jsx("button",{type:"button",className:"thumbnail-remove-btn",onClick:()=>i(t),title:"Remove attachment",children:P.jsx(u,{size:14})})]})},t)})}):null},le=({component:e,mode:o,formTemplateId:s,formValue:a,onNotesChange:l,onAttachmentChange:c,notes:d="",attachments:u=null,onThresholdActionCompletion:m,onThresholdIssueRaised:p,onBasicPropertyActionCompletion:h})=>{const[f,b]=t(d||""),[w,k]=t(u||null),[S,T]=t(!1),[$,E]=t(!1),[A,I]=t(!1),[L,R]=t(!1),[V,D]=t(!1),F=r(null),O=r(a),z=r(!1),q=r(!1);n(()=>{z.current||null==d||(b(d),z.current=!0)},[d]),n(()=>{q.current||void 0===u||(k(u),q.current=!0)},[u]),n(()=>{z.current&&!S&&null!=d&&(f&&""!==f.trim()&&d===f||b(d))},[d,S,f]),n(()=>{q.current&&void 0!==u&&(!w||u&&u.length>0&&u!==w)&&k(u)},[u,w]),n(()=>{const t=["select","radio","checkbox","segment"].includes(e.name||"");if(t){const t=O.current,n=a;let i=!1;if("checkbox"===e.name){const e=Array.isArray(t)?t:t?[t]:[],o=Array.isArray(n)?n:n?[n]:[];i=JSON.stringify(e.sort())!==JSON.stringify(o.sort())}else i=t!==n&&void 0!==t;i&&(I(!1),R(!1),E(!1),T(!1),D(!1),d&&""!==d.trim()||b(""),u&&0!==u.length||k(null)),O.current=n}t||(O.current=a)},[a,e.name,d,u]);const _=i((e,t)=>{const{operator:n,value:i}=e,o=String(t).toLowerCase(),r=String(i).toLowerCase();switch(n){case"equals":return o===r||String(t)===String(i);case"notEquals":return o!==r&&String(t)!==String(i);case"greaterThan":return Number(t)>Number(i);case"lessThan":return Number(t)<Number(i);case"greaterThanOrEqual":return Number(t)>=Number(i);case"lessThanOrEqual":return Number(t)<=Number(i);default:return!1}},[]),M=i(()=>{if(!(null!=a&&""!==a&&!(Array.isArray(a)&&0===a.length)))return[];const t=e.condition;if(!t||!t.conditions||0===t.conditions.length)return[];const n=[];if("checkbox"===e.name&&Array.isArray(a))a.forEach(e=>{const i=t.conditions.find(t=>_(t,e));i&&!n.find(e=>e.id===i.id)&&n.push(i)});else{const e=t.conditions.find(e=>_(e,a));e&&n.push(e)}return n},[e,a,_]),W=i(t=>{const n=t.target.value;b(n),l&&l(n);const i=M(),o=n.trim().length>0;i.forEach(e=>{!0===e.enableNotes&&m&&m(e.id,"notes",o)});const r=e.condition;!(r&&r.conditions&&r.conditions.length>0)&&h&&h("notes",o)},[l,M,m,e,h]),B=i(()=>{f.trim().length>0&&T(!1)},[f]),U=i(()=>{T(!0)},[]),J=i(()=>{T(!0)},[]),Y=i(()=>{F.current?.click()},[]),G=i(t=>{const n=t.target.files;if(n&&n.length>0){const t=Array.from(n);k(t),c&&c(t);M().forEach(e=>{!0===e.enableAttachment&&m&&m(e.id,"attachments",!0)});const i=e.condition;!(i&&i.conditions&&i.conditions.length>0)&&h&&h("attachments",!0)}F.current&&(F.current.value="")},[c,M,m,e,h]),X=i(t=>{if(w){const n=w.filter((e,n)=>n!==t);if(0===n.length){k(null),c&&c(null);M().forEach(e=>{!0===e.enableAttachment&&m&&m(e.id,"attachments",!1)});const t=e.condition;!(t&&t.conditions&&t.conditions.length>0)&&h&&h("attachments",!1)}else k(n),c&&c(n)}},[w,c,M,m,e,h]),K=i(()=>{I(!0);M().forEach(e=>{!0===e.enableSendEmail&&m&&m(e.id,"email",!0)});const t=e.condition;!(t&&t.conditions&&t.conditions.length>0)&&h&&h("email",!0),setTimeout(()=>{I(!1)},3e3)},[M,m,e,h]),Z=i(()=>{E(!0)},[]),Q=i(()=>{E(!1)},[]),ee=i(()=>{E(!1),R(!0);const t=e.condition;if(t&&t.conditions&&t.conditions.length>0){M().forEach(e=>{!0===e.enableRaiseIssue&&p&&p(e.id)})}else h&&h("issue",!0)},[e,h,M,p]);if("test"!==o)return null;const te=["select","radio","checkbox","segment"].includes(e.name||""),ne=e.basic?.options||e.options||[];let ie=!1,oe=!1,re=!1,se=!1,le=null;const ce=null!=a&&""!==a&&!(Array.isArray(a)&&0===a.length),de=e.condition,ue=de&&de.conditions&&de.conditions.length>0;if(ue&&ce)if("checkbox"===e.name&&Array.isArray(a)){const e=a;for(const t of e){const e=de.conditions.find(e=>_(e,t));e&&(ie=ie||!0===e.enableNotes,oe=oe||!0===e.enableAttachment,re=re||!0===e.enableRaiseIssue,se=se||!0===e.enableSendEmail)}}else if(te){const e=de.conditions.find(e=>_(e,a));e&&(ie=!0===e.enableNotes,oe=!0===e.enableAttachment,re=!0===e.enableRaiseIssue,se=!0===e.enableSendEmail)}else{const e=de.conditions.find(e=>_(e,a));e&&(ie=!0===e.enableNotes,oe=!0===e.enableAttachment,re=!0===e.enableRaiseIssue,se=!0===e.enableSendEmail)}if(!ue){const t=!0===e.basic?.enableNotes,n=!0===e.basic?.enableAttachment,i=!0===e.basic?.enableRaiseIssue,o=!0===e.basic?.enableSendEmail;if(te&&ce)if("checkbox"===e.name){(Array.isArray(a)?a:[a]).forEach(e=>{const t=ne.find(t=>!(!t||!t.value)&&(t.value===e||(String(t.value)===String(e)||(t.label===e||String(t.label)===String(e)))));t&&(ie=ie||!0===t.enableNotes,oe=oe||!0===t.enableAttachment,re=re||!0===t.enableRaiseIssue,se=se||!0===t.enableSendEmail,le||(le=t))}),ie=ie||t,oe=oe||n,re=re||i,se=se||o}else if(le=ne.find(e=>!(!e||!e.value)&&(e.value===a||(String(e.value)===String(a)||(e.label===a||String(e.label)===String(a))))),le){const e=!0===le.enableNotes,r=!0===le.enableAttachment,s=!0===le.enableRaiseIssue,a=!0===le.enableSendEmail;ie=e||t,oe=r||n,re=s||i,se=a||o}else ie=t,oe=n,re=i,se=o;else ie=t,oe=n,re=i,se=o}if(!(ie||oe||re||se))return null;const me=M(),pe=e.condition,he=pe&&pe.conditions&&pe.conditions.length>0,fe=!!he&&me.some(e=>!0===e.enableNotes),be=!!he&&me.some(e=>!0===e.enableAttachment),ge=!!he&&me.some(e=>!0===e.enableSendEmail),xe=!!he&&me.some(e=>!0===e.enableRaiseIssue),ve=f.trim().length>0,ye=w&&w.length>0,je=w?w.length:0;return P.jsxs(P.Fragment,{children:[P.jsxs("div",{className:"component-action-features",children:[P.jsxs("div",{className:"action-icons-toolbar",children:[ie&&P.jsxs("button",{type:"button",className:`action-icon-button ${ve?"active":""} ${fe?"mandatory":""}`,onClick:U,title:"Add Notes",children:[P.jsx(g,{size:14,fill:ve?"currentColor":"none"}),fe&&P.jsx("span",{className:"mandatory-indicator",children:"*"})]}),oe&&P.jsxs("button",{type:"button",className:`action-icon-button ${ye?"active":""} ${be?"mandatory":""}`,onClick:Y,title:"Add Attachment",children:[P.jsx(x,{size:14,fill:ye?"currentColor":"none"}),je>0&&P.jsx("span",{className:"attachment-count-badge",children:je}),be&&P.jsx("span",{className:"mandatory-indicator",children:"*"})]}),se&&P.jsxs("button",{type:"button",className:`action-icon-button ${A?"active sent":""} ${ge?"mandatory":""}`,onClick:K,disabled:A,title:"Send Email",children:[A?P.jsx(P.Fragment,{children:P.jsx(v,{size:14})}):P.jsx(y,{size:14,fill:A?"currentColor":"none"}),ge&&P.jsx("span",{className:"mandatory-indicator",children:"*"})]}),re&&P.jsxs("button",{type:"button",className:`action-icon-button ${L?"active":""} ${xe?"mandatory":""}`,onClick:Z,title:"Raise an Issue",children:[P.jsx(j,{size:14,fill:L?"currentColor":"none"}),xe&&P.jsx("span",{className:"mandatory-indicator",children:"*"})]}),(ve&&ie||ye&&oe)&&P.jsx("button",{type:"button",className:"action-icon-button accordion-toggle",onClick:()=>D(!V),title:V?"Collapse":"Expand",children:V?P.jsx(N,{size:14}):P.jsx(C,{size:14})})]}),S&&ie&&P.jsx("div",{className:"notes-input-overlay",children:P.jsx("textarea",{className:"action-notes-textarea",value:f,onChange:W,onBlur:B,placeholder:"Explain which protocols were not followed",rows:4,autoFocus:!0})}),V&&P.jsxs("div",{className:"actions-content",children:[!S&&ve&&ie&&P.jsx("div",{className:"notes-summary-section",children:P.jsxs("div",{className:"notes-full-text",onClick:J,children:[P.jsx("span",{className:"notes-label",children:"Notes:"})," ",f]})}),ye&&oe&&P.jsx("div",{className:"attachments-section",children:P.jsx(ae,{attachments:w,onRemove:X})})]}),oe&&P.jsx("input",{ref:F,type:"file",multiple:!0,accept:"image/*,.pdf",onChange:G,style:{display:"none"}})]}),$&&s&&P.jsx(H,{isOpen:$,onClose:Q,onSuccess:ee,component:le?{...e,basic:{...e.basic,label:`${e.basic?.label||"Component"} - ${le.label||le.value}`,value:le.value||e.basic?.value||""}}:e,formTemplateId:s,notes:f,attachments:w})]})},ce=({attachments:e})=>e&&0!==e.length?P.jsx("div",{className:"attachment-thumbnails-container",children:e.map((e,t)=>{const n=e.type?.startsWith("image/")||!1,i=n?(e=>e.data?e.data.startsWith("data:")?e.data:`data:${e.type||"image/png"};base64,${e.data}`:"")(e):"";return P.jsx("div",{className:"attachment-thumbnail",children:n&&i?P.jsx("img",{src:i,alt:e.name||`Attachment ${t+1}`}):P.jsxs("div",{className:"file-icon-placeholder",children:[P.jsx(x,{size:20}),P.jsx("span",{className:"file-name",children:e.name||`File ${t+1}`})]})},t)})}):null,de=({component:e})=>{const t=e.basic?.notes||"",n=e.basic?.attachments||[],i=t&&t.trim().length>0,o=n&&n.length>0;return i||o?P.jsx("div",{className:"component-submission-actions",children:P.jsxs("div",{className:"actions-content",children:[i&&P.jsx("div",{className:"notes-summary-section",children:P.jsxs("div",{className:"notes-full-text",children:[P.jsx("span",{className:"notes-label",children:"Notes:"})," ",t]})}),o&&P.jsx("div",{className:"attachments-section",children:P.jsx(ce,{attachments:n})})]})}):null},ue=({child:e,selectedChild:t,mode:n,onChildSelect:i,onChildDelete:o,renderFormComponent:r,isOverlay:s=!1,isChildrenEditMode:a=!1,formData:l={},formTemplateId:c,onThresholdActionCompletion:d,onThresholdIssueRaised:u,onNotesChange:m,onAttachmentChange:p})=>{const h=l[e.id],f="preview"===n&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0),{attributes:b,listeners:g,setNodeRef:x,transform:v,transition:y,isDragging:j,isSorting:N}=R({id:e.id,disabled:s||"edit"!==n}),C={transform:D.Transform.toString(v),transition:y,opacity:j?.3:1,zIndex:j?1e3:"auto"};return P.jsxs("div",{ref:x,style:C,className:`form-component section-child ${t?.id===e.id?"selected":""} ${j?"dragging":""} ${N?"sorting":""} ${a?"children-edit-active":""}`,onClick:()=>!j&&i(e),role:"button",tabIndex:0,children:[("edit"===n||a)&&P.jsx("div",{className:"child-drag-handle",...g,...b,onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),children:P.jsx(k,{size:14})}),P.jsxs("div",{className:"form-component-content section-child-content",children:[("edit"===n||a)&&P.jsxs("div",{className:"component-actions child-actions",children:[P.jsx("button",{className:"btn edit-btn",onClick:t=>{t.stopPropagation(),i(e)},onMouseDown:e=>e.stopPropagation(),title:"Edit properties",children:P.jsx(S,{size:12})}),P.jsx("button",{className:"btn delete-btn",onClick:t=>o(e,t),onMouseDown:e=>e.stopPropagation(),title:"Delete component",children:P.jsx(T,{size:12})})]}),P.jsxs("div",{className:"component-preview child-preview",children:[r(e),"test"===n&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&P.jsx(le,{component:e,mode:"test",formTemplateId:c,formValue:h,onThresholdActionCompletion:d,onThresholdIssueRaised:u,onNotesChange:m?t=>m(e.id,t):void 0,onAttachmentChange:p?t=>p(e.id,t):void 0}),f&&P.jsx(de,{component:e})]})]})]})},me=({id:e,properties:o,mode:r="edit",formData:s={},onValueChange:a,onSelect:l,isSelected:c=!1,className:d="",onSectionSelect:u,onChildSelect:m,onChildDelete:p,selectedChild:h,renderFormComponent:f,formTemplateId:b,onThresholdActionCompletion:g,onThresholdIssueRaised:x,onNotesChange:v,onAttachmentChange:y})=>{const[j,N]=t(o.basic.collapsed),[k,S]=t(!1),[T,$]=t(!1),[E,R]=t(o.basic.label),[V,D]=t(o.basic.description),[F,O]=t(o.children||[]),[z,q]=t(!1);n(()=>{O(o.children||[])},[o.children]),n(()=>{R(o.basic.label),D(o.basic.description)},[o.basic.label,o.basic.description]);const{setNodeRef:_,isOver:M}=A({id:`section-${e}`,disabled:"edit"!==r}),W=!("preview"!==r&&"test"!==r||o.children&&o.children.length>0),B=i(t=>{R(t),a?.({id:e,value:{...o,basic:{...o.basic,label:t}}})},[e,o,a]),U=i(t=>{D(t),a?.({id:e,value:{...o,basic:{...o.basic,description:t}}})},[e,o,a]),J=i(e=>{m?.(e)},[m]),H=i((e,t)=>{t.stopPropagation();const n=F.filter(t=>t.id!==e.id);O(n),p?.(e.id)},[p,F,e]),Y=i(()=>{u?.(o),l?.()},[u,l,o]),ee=i(e=>{e.stopPropagation(),"edit"===r&&F.length>0&&q(!z)},[r,F.length,z]),ie=i(t=>{t.stopPropagation(),N(!j),a?.({id:e,value:{...o,basic:{...o.basic,collapsed:!j}}})},[j,e,o,a]),oe=f||i(e=>{const t={id:e.id,properties:e,validationErrors:{},formValue:"test"===r?s[e.id]||"defaultValue"in e.basic&&e.basic.defaultValue||"":"defaultValue"in e.basic&&e.basic.defaultValue||"",touchedFields:{},formSubmitted:!1,mode:r,onValueChange:a,onBlur:()=>{},onFocus:()=>{}};switch(e.name){case"text-input":case"email-input":case"number-input":return P.jsx(G,{...t,properties:e,inputType:"text-input"===e.name?"text":"number-input"===e.name?"number":"email",readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"textarea":return P.jsx(X,{...t,properties:e,readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"select":const n={...e,options:e.basic?.options||[]};return P.jsx(K,{...t,properties:n,disabled:"edit"===r||"preview"===r});case"checkbox":const i={...e,options:e.basic?.options||[]};return P.jsx(Z,{...t,properties:i,formValue:[],disabled:"edit"===r||"preview"===r});case"radio":const o={...e,options:e.basic?.options||[]};return P.jsx(Q,{...t,properties:o,readonly:"edit"===r||"preview"===r,disabled:"edit"===r||"preview"===r});case"date":case"date-picker":case"datetime-picker":return P.jsx(te,{...t,properties:e,readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"signature":return P.jsx(ne,{...t,properties:e});case"heading":return P.jsx(re,{...t,properties:e});default:return P.jsx("div",{className:"form-group",children:P.jsxs("div",{className:"form-group-label",children:["Unsupported Component: ",e.name]})})}},[r,a,s]);if(W)return null;const se={backgroundColor:o.styles.backgroundColor,borderColor:o.styles.borderColor,borderWidth:o.styles.borderWidth,borderRadius:o.styles.borderRadius,padding:o.styles.padding,margin:o.styles.margin};return P.jsxs("div",{ref:_,className:`df-form-section ${c?"selected":""} ${M?"drag-over":""} ${d}`,style:se,children:[P.jsxs("div",{className:"section-header "+(z?"children-edit-mode":""),onClick:Y,onDoubleClick:ee,children:[P.jsx("div",{className:"section-header-content",children:P.jsxs("div",{className:"section-title",children:[P.jsx("span",{className:"section-toggle",title:j?"Expand section":"Collapse section",role:"button",tabIndex:0,onClick:e=>{e.stopPropagation(),ie(e)},onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),ie(e))},style:{marginRight:"8px",display:"inline-flex",alignItems:"center"},children:j?P.jsx(w,{size:18}):P.jsx(C,{size:18})}),"edit"===r&&k?P.jsx("input",{type:"text",value:E,onChange:e=>R(e.target.value),onBlur:()=>{S(!1),B(E)},onKeyDown:e=>{"Enter"===e.key&&(S(!1),B(E))},className:"section-title-input",autoFocus:!0}):P.jsx("h3",{className:"section-title-text",onDoubleClick:()=>"edit"===r&&S(!0),style:{display:"inline",margin:0},children:E||"Untitled Section"})]})}),(V||"edit"===r)&&P.jsx("div",{className:"section-description",children:"edit"===r&&T?P.jsx("textarea",{value:V,onChange:e=>D(e.target.value),onBlur:()=>{$(!1),U(V)},onKeyDown:e=>{"Enter"===e.key&&e.ctrlKey&&($(!1),U(V))},className:"section-description-input",placeholder:"Section description (optional)",autoFocus:!0}):P.jsx("p",{className:"section-description-text",onDoubleClick:()=>"edit"===r&&$(!0),children:V||"Section description"})})]}),!j&&P.jsx("div",{className:`section-content ${M?"drag-over":""} ${0===F.length?"empty":"has-children"}`,onClick:e=>{e.target===e.currentTarget&&Y()},children:P.jsx(I,{items:F.map(e=>e.id),strategy:L,children:0===F.length?P.jsxs("div",{className:"section-empty-state",onClick:Y,style:{textAlign:"center",color:"#6b7280",fontSize:"14px",padding:"40px 20px",display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",cursor:"pointer",border:"2px dotted #d1d5db",borderRadius:"8px",backgroundColor:"var(--df-color-fb-container)",transition:"all 0.3s ease",margin:"16px 0"},children:[P.jsx("div",{style:{fontWeight:"500",color:M?"#3b82f6":"#374151"},children:M?"Drop components here":"Empty Section"}),P.jsx("div",{style:{fontSize:"12px",color:"#9ca3af"},children:"Drag and drop components here to create your section"})]}):F.map(e=>P.jsx(ue,{child:e,selectedChild:h||null,mode:r,onChildSelect:J,onChildDelete:H,renderFormComponent:oe,isChildrenEditMode:z,formData:s,formTemplateId:b,onNotesChange:v,onAttachmentChange:y,onThresholdActionCompletion:g,onThresholdIssueRaised:x},e.id))})})]})},pe=({component:e,selectedComponent:t,mode:n,onComponentSelect:i,onComponentDelete:o,onComponentEdit:r,renderFormComponent:s,isOverlay:a=!1,formData:l={},formTemplateId:c,onThresholdActionCompletion:d,onThresholdIssueRaised:u,onNotesChange:m,onAttachmentChange:p})=>{const h=l[e.id],f="preview"===n&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0),{attributes:b,listeners:g,setNodeRef:x,transform:v,transition:y,isDragging:j,isSorting:N}=R({id:e.id,disabled:a}),C={transform:D.Transform.toString(v),transition:y,opacity:j?.3:1,zIndex:j?1e3:"auto"};return P.jsxs("div",{ref:x,style:{...C,border:t?.id===e.id?"2px solid #3b82f6":"1px solid var(--df-color-fb-border)",borderRadius:"8px",backgroundColor:"var(--df-color-fb-container)",padding:"12px",position:"relative",minHeight:"80px",transition:"all 0.2s ease",boxShadow:t?.id===e.id?"0 4px 12px rgba(59, 130, 246, 0.15)":"0 1px 3px rgba(0, 0, 0, 0.1)",cursor:"pointer"},className:`form-component grid-component ${t?.id===e.id?"selected":""} ${j?"dragging":""} ${N?"sorting":""}`,onClick:()=>!j&&i(e),role:"button",tabIndex:0,children:["edit"===n&&P.jsx("div",{className:"component-drag-handle",...g,...b,onClick:e=>e.stopPropagation(),style:{position:"absolute",top:"50%",left:"4px",transform:"translateY(-50%)",padding:"4px",backgroundColor:"#f3f4f6",borderRadius:"4px",cursor:"grab",opacity:1,zIndex:10,display:"flex",alignItems:"center",justifyContent:"center"},children:P.jsx(k,{size:12,color:"var(--df-color-text-light)"})}),P.jsxs("div",{className:"component-content",style:{paddingTop:"edit"===n?"24px":"0",paddingLeft:"edit"===n?"28px":"0",minHeight:"60px"},children:[s(e),"test"===n&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&P.jsx(le,{component:e,mode:"test",formTemplateId:c,formValue:h,onThresholdActionCompletion:d,onThresholdIssueRaised:u,onNotesChange:m?t=>m(e.id,t):void 0,onAttachmentChange:p?t=>p(e.id,t):void 0}),f&&P.jsx(de,{component:e})]}),"edit"===n&&P.jsxs("div",{className:"component-actions",style:{position:"absolute",top:"4px",right:"4px",display:"flex",gap:"4px",opacity:1,zIndex:10},children:[r&&P.jsx("button",{className:"component-edit-btn",onClick:t=>{t.stopPropagation(),r(e)},type:"button",title:"Edit Component",style:{padding:"4px",backgroundColor:"#3b82f6",color:"#ffffff",border:"none",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#2563eb"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#3b82f6"},children:P.jsx(S,{size:12})}),P.jsx("button",{className:"component-delete-btn",onClick:t=>{t.stopPropagation(),o(e,t)},type:"button",title:"Delete Component",style:{padding:"4px",backgroundColor:"#ef4444",color:"#ffffff",border:"none",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#dc2626"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#ef4444"},children:P.jsx(T,{size:12})})]})]})},he=({gridComponents:e,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:o,onComponentUpdate:r,selectedComponent:s,renderFormComponent:a,gridId:l,formData:c={},formTemplateId:d,onThresholdActionCompletion:u,onThresholdIssueRaised:m,onNotesChange:p,onAttachmentChange:h})=>{const{setNodeRef:f,isOver:b}=A({id:`grid-drop-zone-${l}`,disabled:"edit"!==t});return P.jsx("div",{ref:f,className:"grid-drop-zone",style:{border:b?"2px dashed #3b82f6":"2px dashed #d1d5db",borderRadius:"8px",padding:"16px",backgroundColor:b?"var(--df-color-primary-light)":"var(--df-color-fb-container)",minHeight:"120px",transition:"all 0.2s ease",position:"relative"},children:e.length>0?P.jsxs(P.Fragment,{children:[P.jsx(I,{items:e.map(e=>e.id),strategy:V,children:P.jsx("div",{style:{display:"flex",flexDirection:"row",flexWrap:"nowrap",gap:"12px",alignItems:"start",marginBottom:e.length>0?"12px":"0",overflowX:"auto",width:"100%"},children:e.map(e=>P.jsx("div",{style:{flex:"1 1 0",minWidth:"200px",maxWidth:"100%"},children:P.jsx(pe,{component:e,selectedComponent:s,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:o,onComponentUpdate:r,renderFormComponent:a,formData:c,formTemplateId:d,onThresholdActionCompletion:u,onThresholdIssueRaised:m,onNotesChange:p,onAttachmentChange:h})},e.id))})}),P.jsx("div",{style:{border:b?"2px dashed #3b82f6":"1px dashed var(--df-color-fb-border)",borderRadius:"6px",padding:"12px",backgroundColor:b?"var(--df-color-primary-light)":"var(--df-color-fb-container)",textAlign:"center",color:"var(--df-color-text-light)",fontSize:"12px",transition:"all 0.2s ease",minHeight:"40px",display:"flex",alignItems:"center",justifyContent:"center"},children:b?P.jsx("span",{style:{color:"#3b82f6",fontWeight:"500"},children:"Drop component here to add to grid"}):P.jsx("span",{children:"+ Drop more components here"})})]}):P.jsxs("div",{style:{textAlign:"center",color:"var(--df-color-text-light)",fontSize:"14px",padding:"40px 20px",display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",backgroundColor:"var(--df-color-fb-container)",border:"1px dashed var(--df-color-fb-border)",borderRadius:"8px"},children:[P.jsx("div",{style:{fontWeight:"500",color:b?"var(--df-color-primary)":"var(--df-color-text-dark)"},children:b?"Drop components here":"Empty DataGrid"}),P.jsx("div",{style:{fontSize:"12px",color:"#9ca3af"},children:"Drag and drop components here to create your grid"})]})})},fe=({templateComponents:e,dataEntries:t,renderFormComponent:n,mode:i="preview",allowAddRemoveEntries:o=!0,addAnotherText:r="Add Another",removeText:s="Remove",maxEntries:a=10,minEntries:l=1,displayAsGrid:c=!0,onAddEntry:d,onRemoveEntry:u,formData:m={},formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})=>0===e.length?P.jsxs("div",{style:{textAlign:"center",padding:"40px",color:"var(--df-color-text-light)",border:"1px dashed #d1d5db",borderRadius:"8px",backgroundColor:"var(--df-color-fb-container)"},children:["No components defined. Add components to see the ",c?"table":"list"," view."]}):c?P.jsxs("div",{className:"datagrid-table-view",style:{border:"1px solid var(--df-color-fb-border)",borderRadius:"8px",overflow:"hidden",backgroundColor:"var(--df-color-fb-container)",maxWidth:"100%"},children:[P.jsx("div",{style:{position:"absolute",top:"8px",right:"8px",zIndex:10,fontSize:"12px",color:"var(--df-color-text-light)",backgroundColor:"var(--df-color-fb-container)",padding:"4px 8px",borderRadius:"4px",border:"1px solid var(--df-color-fb-border)",opacity:e.length>4?1:0,transition:"opacity 0.2s ease"},children:"← Scroll →"}),P.jsxs("div",{className:"table-scroll-container",style:{overflowX:"auto",overflowY:"hidden",maxWidth:"100%",scrollbarWidth:"thin",scrollbarColor:"var(--df-color-fb-border) var(--df-color-fb-icon-bg)",position:"relative"},children:[P.jsx("div",{className:"table-headers",style:{display:"grid",gridTemplateColumns:`repeat(${e.length}, minmax(150px, 1fr))`,backgroundColor:"var(--df-color-fb-container)",borderBottom:"2px solid var(--df-color-fb-border)",minWidth:150*e.length+"px"},children:e.map((t,n)=>P.jsx("div",{style:{padding:"12px 16px",fontWeight:"600",color:"var(--df-color-text-dark)",borderRight:n<e.length-1?"1px solid var(--df-color-fb-border)":"none",fontSize:"14px",minWidth:"150px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:t.basic?.label||`Column ${n+1}`},`header-${t.id}`))}),t.length>0?t.map((r,a)=>P.jsxs("div",{className:"table-row",style:{display:"grid",gridTemplateColumns:`repeat(${e.length}, minmax(150px, 1fr))`,borderBottom:a<t.length-1?"1px solid var(--df-color-fb-border)":"none",backgroundColor:a%2==0?"var(--df-color-fb-container)":"var(--df-color-fb-bg)",position:"relative",minWidth:150*e.length+"px"},children:[e.map((t,i)=>{let o=r.components?.[i];if(o)o={...o,id:o.id,basic:{...o.basic,showLabel:!1}};else{const e=`${t.id}-entry-${a}-${i}`;o={...t,id:e,basic:{...t.basic,showLabel:!1}}}return P.jsx("div",{style:{padding:"12px 16px",borderRight:i<e.length-1?"1px solid var(--df-color-fb-border)":"none",minHeight:"60px",minWidth:"150px",display:"flex",alignItems:"center",overflow:"hidden"},children:P.jsx("div",{style:{width:"100%",minWidth:"120px",overflow:"hidden"},children:n(o,!0)})},`${r.id}-${i}`)}),"test"===i&&o&&t.length>l&&P.jsx("button",{onClick:()=>u?.(a),disabled:t.length<=l,style:{position:"absolute",top:"8px",right:"8px",padding:"4px 8px",backgroundColor:t.length<=l?"#f3f4f6":"#ef4444",color:t.length<=l?"#9ca3af":"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px",fontWeight:"500",cursor:t.length<=l?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"4px",zIndex:10,minWidth:"24px",height:"24px",justifyContent:"center"},title:s,children:P.jsx("span",{style:{fontSize:"14px"},children:"×"})})]},r.id)):P.jsxs("div",{style:{padding:"40px",textAlign:"center",color:"var(--df-color-text-light)",backgroundColor:"var(--df-color-fb-container)",borderTop:"1px solid var(--df-color-fb-border)"},children:["No data entries. ","test"===i&&o?'Click "Add Another" to add entries.':"Use the properties panel to add entries."]})]}),"test"===i&&o&&P.jsx("div",{style:{padding:"16px",backgroundColor:"var(--df-color-fb-bg)",borderTop:"1px solid var(--df-color-fb-border)",display:"flex",justifyContent:"center",position:"sticky",bottom:0,zIndex:5},children:P.jsxs("button",{onClick:d,disabled:t.length>=a,style:{padding:"8px 16px",backgroundColor:t.length>=a?"#f3f4f6":"#10b981",color:t.length>=a?"#9ca3af":"#ffffff",border:"none",borderRadius:"6px",fontSize:"14px",fontWeight:"500",cursor:t.length>=a?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"6px"},children:[P.jsx("span",{style:{fontSize:"16px"},children:"+"}),r]})})]}):P.jsxs("div",{className:"datagrid-list-view",style:{display:"flex",flexDirection:"column",gap:"12px",backgroundColor:"var(--df-color-fb-container)"},children:[t.length>0?t.map((r,a)=>P.jsxs("div",{className:"list-entry",style:{border:"1px solid var(--df-color-fb-border)",borderRadius:"8px",padding:"16px",backgroundColor:"var(--df-color-fb-container)",position:"relative",transition:"all 0.2s ease"},children:[P.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px",paddingBottom:"8px",borderBottom:"1px solid var(--df-color-fb-border)"},children:[P.jsxs("span",{style:{fontWeight:"600",color:"var(--df-color-text-dark)",fontSize:"14px"},children:["Entry #",a+1]}),"test"===i&&o&&t.length>1&&P.jsx("button",{onClick:()=>u?.(a),disabled:t.length<=l,style:{padding:"4px 8px",backgroundColor:t.length<=l?"#f3f4f6":"#ef4444",color:t.length<=l?"#9ca3af":"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px",fontWeight:"500",cursor:t.length<=l?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"4px",minWidth:"24px",height:"24px",justifyContent:"center"},title:s,children:P.jsx("span",{style:{fontSize:"14px"},children:"×"})})]}),P.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px"},children:e.map((e,t)=>{let o=r.components?.[t];if(o||(o=r.components?.find(t=>t.name===e.name&&t.basic?.label===e.basic?.label)),o)o={...o,id:o.id,basic:{...o.basic,showLabel:!1}};else{const n=`${e.id}-entry-${a}-${t}`;o={...e,id:n,basic:{...e.basic,showLabel:!1}}}return P.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[P.jsx("label",{style:{fontSize:"12px",fontWeight:"500",color:"var(--df-color-text-light)",textTransform:"uppercase",letterSpacing:"0.05em"},children:e.basic?.label||`Field ${t+1}`}),P.jsxs("div",{style:{minHeight:"40px",display:"flex",alignItems:"center",flexDirection:"column",width:"100%"},children:[n(o),"test"===i&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(o.name)&&P.jsx(le,{component:o,mode:"test",formTemplateId:p,formValue:m[o.id],onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b?e=>b(o.id,e):void 0,onAttachmentChange:g?e=>g(o.id,e):void 0}),"preview"===i&&(o.basic?.notes&&o.basic.notes.trim().length>0||o.basic?.attachments&&Array.isArray(o.basic.attachments)&&o.basic.attachments.length>0?P.jsx(de,{component:o}):null)]})]},`${r.id}-${t}`)})})]},r.id)):P.jsxs("div",{style:{padding:"40px",textAlign:"center",color:"var(--df-color-text-light)",backgroundColor:"var(--df-color-fb-container)",border:"1px dashed #d1d5db",borderRadius:"8px"},children:["No data entries. ","test"===i&&o?'Click "Add Another" to add entries.':"Use the properties panel to add entries."]}),"test"===i&&o&&P.jsx("div",{style:{padding:"16px",backgroundColor:"#f8f9fa",border:"1px solid var(--df-color-fb-border)",borderRadius:"8px",display:"flex",justifyContent:"center"},children:P.jsxs("button",{onClick:d,disabled:t.length>=a,style:{padding:"8px 16px",backgroundColor:t.length>=a?"#f3f4f6":"#10b981",color:t.length>=a?"#9ca3af":"#ffffff",border:"none",borderRadius:"6px",fontSize:"14px",fontWeight:"500",cursor:t.length>=a?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"8px",transition:"all 0.2s ease"},onMouseEnter:e=>{t.length<a&&(e.currentTarget.style.backgroundColor="#059669")},onMouseLeave:e=>{t.length<a&&(e.currentTarget.style.backgroundColor="#10b981")},children:[P.jsx("span",{children:"+"}),r]})})]}),be=({id:e,properties:o,mode:s="edit",formData:a={},onValueChange:l,onSelect:c,isSelected:d=!1,className:u="",onDataGridSelect:m,onComponentSelect:p,onComponentDelete:h,onComponentEdit:f,onComponentUpdate:b,selectedComponent:g,renderFormComponent:x,onEntryAdd:v,onEntryRemove:y,formTemplateId:j,onThresholdActionCompletion:N,onThresholdIssueRaised:k,onNotesChange:S,onAttachmentChange:T})=>{const[E,A]=t(!1),I=r(!1);let L=o.templateComponents||[];const R=o.entries||[];0===L.length&&R.length>0&&R[0].components&&(L=R[0].components.map(e=>({...e,id:e.id?.replace(/-entry-\d+$/,"")||e.id,basic:{...e.basic,showLabel:!0}}))),n(()=>{if("edit"===s&&!o.templateComponents&&l&&I.current){const t={...o,templateComponents:[]};JSON.stringify(t)!==JSON.stringify(o)&&l({id:e,value:t})}I.current=!0},[o.templateComponents,e,l,o,s]),n(()=>{if(L.length>0){if("test"===s&&0===R.length&&I.current){const t={id:`entry-${e}-0`,index:0,components:L.map((e,t)=>({...e,id:`${e.id}-entry-0-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}};if(l){const n={...o,entries:[t]};JSON.stringify(n)!==JSON.stringify(o)&&l({id:e,value:n})}return}if("edit"!==s||!I.current)return;if(R.some(e=>e.components?.some((t,n)=>{const i=`${L[n]?.id}-entry-${e.index}-${n}`;return t.id!==i}))&&l){const t=R.map(e=>({...e,components:e.components?.map((t,n)=>({...t,id:`${L[n]?.id}-entry-${e.index}-${n}`}))||[]})),n={...o,entries:t};return void(JSON.stringify(n)!==JSON.stringify(o)&&l({id:e,value:n}))}if(0===R.length&&"edit"===s){const t={id:`entry-${e}-0`,index:0,components:L.map((e,t)=>({...e,id:`${e.id}-entry-0-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}};if(l){const n={...o,entries:[t]};JSON.stringify(n)!==JSON.stringify(o)&&l({id:e,value:n})}}else if(R.length>0){if(R.some(e=>L.some((t,n)=>{const i=e.components?.[n];if(!i)return!0;const o=`${t.id}-entry-${e.index}-${n}`,r=i.id===o,s=JSON.stringify(i.basic?.options)!==JSON.stringify(t.basic?.options)||i.basic?.placeholder!==t.basic?.placeholder||i.basic?.defaultValue!==t.basic?.defaultValue||i.basic?.label!==t.basic?.label||i.validation?.required!==t.validation?.required;return!r||s}))&&l){const t=R.map(e=>{const t=L.map((t,n)=>{let i=e.components?.[n];i||(i=e.components?.find(e=>e.name===t.name&&e.basic?.label===t.basic?.label));const o=`${t.id}-entry-${e.index}-${n}`;if(i){return{...t,id:o,basic:{...t.basic,showLabel:!1,value:i.basic?.value||t.basic?.defaultValue||""}}}return{...t,id:o,basic:{...t.basic,showLabel:!1}}});return{...e,components:t}}),n={...o,entries:t};JSON.stringify(n)!==JSON.stringify(o)&&l({id:e,value:n})}}}},[L,R,e,l,o,s,o.templateComponents]);const V=i(e=>{e.stopPropagation(),c?.(),m?.(o)},[c,m,o]),D=i((t,n)=>{n.stopPropagation(),h&&h(t,n);const i=L.filter(e=>e.id!==t.id),r=R.map(e=>({...e,components:e.components?.filter(e=>!(e.name===t.name&&e.basic?.label===t.basic?.label))||[]}));l&&l({id:e,value:{...o,templateComponents:i,entries:r}})},[h,o,l,e,L,R]),F=i((t,n)=>{b&&b(t,n);const i=L.map(e=>e.id===t?{...e,...n}:e);l&&l({id:e,value:{...o,templateComponents:i}})},[b,o,l,e,L]),O=i(e=>{"test"===s&&l&&l({id:e.id,value:e.value})},[s,l]),z=i(()=>{if(0===L.length)return void console.warn("Cannot add entry: No template components defined");const t=o.entries||[],n=t.length,i={id:`entry-${e}-${n}`,index:n,components:L.map((e,t)=>({...e,id:`${e.id}-entry-${n}-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}},r=[...t,i];l&&l({id:e,value:{...o,entries:r}}),v?.()},[o,l,e,v,L]),q=i(t=>{const n=o.entries.filter((e,n)=>n!==t).map((t,n)=>({...t,index:n,id:`entry-${e}-${n}`}));l&&l({id:e,value:{...o,entries:n}})},[o,l,e,y]),_=i((e,t=!1)=>{const n="test"===s?a[e.id]||"defaultValue"in e.basic&&e.basic.defaultValue||"":"defaultValue"in e.basic&&e.basic.defaultValue||"",i={id:e.id,properties:e,validationErrors:{},formValue:n,touchedFields:{},formSubmitted:!1,mode:s,hideLabel:t,onValueChange:O,onBlur:()=>{},onFocus:()=>{}};switch(e.name){case"text-input":case"email-input":case"number-input":return P.jsx(G,{...i,properties:e,inputType:"text-input"===e.name?"text":"number-input"===e.name?"number":"email",readonly:"edit"===s||"preview"===s,disabled:"preview"===s,hideLabel:t});case"textarea":return P.jsx(X,{...i,properties:e,readonly:"edit"===s||"preview"===s,disabled:"preview"===s,hideLabel:t});case"select":const n={...e,options:e.basic?.options||[]};return P.jsx(K,{...i,properties:n,disabled:"edit"===s||"preview"===s,hideLabel:t});case"checkbox":const o={...e,options:e.basic?.options||[]};return P.jsx(Z,{...i,properties:o,formValue:[],disabled:"edit"===s||"preview"===s,hideLabel:t});case"radio":const r={...e,options:e.basic?.options||[]};return P.jsx(Q,{...i,properties:r,readonly:"edit"===s||"preview"===s,disabled:"edit"===s||"preview"===s,hideLabel:t});case"date":case"date-picker":case"datetime-picker":return P.jsx(te,{...i,properties:e,readonly:"edit"===s||"preview"===s,disabled:"preview"===s,hideLabel:t});case"signature":return P.jsx(ne,{...i,properties:e,hideLabel:t});case"heading":return P.jsx(re,{...i,properties:e,hideLabel:t});case"instructions":return P.jsx(se,{...i,properties:e,hideLabel:t});default:return P.jsxs("div",{className:"unknown-component",children:["Unknown component: ",e.name]})}},[s,O]),M={backgroundColor:o.styles.backgroundColor||"var(--df-color-fb-container)",borderColor:o.styles.borderColor||"var(--df-color-fb-border)",borderWidth:o.styles.borderWidth||"2px",borderRadius:o.styles.borderRadius||"8px",padding:o.styles.padding||"16px",margin:o.styles.margin||"16px 0"};return P.jsxs("div",{className:`form-group df-form-datagrid ${d?"selected":""} ${u}`,onClick:V,style:M,children:[P.jsx("div",{className:"grid-header",children:P.jsx("div",{className:"grid-title",onClick:t=>{t.stopPropagation(),A(!E),l?.({id:e,value:{...o,basic:{...o.basic,collapsed:!E}}})},children:P.jsxs("div",{className:"title-content",style:{display:"flex",alignItems:"center",gap:"8px"},children:[E?P.jsx(w,{size:16}):P.jsx(C,{size:16}),P.jsx($,{size:16}),P.jsx("span",{className:"grid-label",style:{fontWeight:"600"},children:o.basic.label}),o.validation.required&&P.jsx("span",{className:"required-indicator",style:{color:"#ef4444"},children:"*"})]})})}),o.basic.description&&!E&&P.jsx("div",{className:"grid-description",style:{marginTop:"8px",color:"var(--df-color-text-light)",fontSize:"14px"},children:o.basic.description}),!E&&P.jsx("div",{className:"grid-content",style:{marginTop:"16px"},children:"edit"===s?P.jsx(he,{gridComponents:L,mode:s,onComponentSelect:p||(()=>{}),onComponentDelete:D,onComponentEdit:f,onComponentUpdate:F,selectedComponent:g||null,renderFormComponent:x||_,gridId:e,formData:a,formTemplateId:j,onThresholdActionCompletion:N,onThresholdIssueRaised:k,onNotesChange:S,onAttachmentChange:T}):P.jsx(fe,{templateComponents:L,dataEntries:R,renderFormComponent:x||_,mode:s,allowAddRemoveEntries:o.datagrid?.allowAddRemoveEntries??!0,addAnotherText:o.datagrid?.addAnotherText??"Add Entry",removeText:o.datagrid?.removeText??"Remove",maxEntries:o.datagrid?.maxEntries??10,minEntries:o.datagrid?.minEntries??1,displayAsGrid:o.datagrid?.displayAsGrid??!0,onAddEntry:v||z,onRemoveEntry:y||q,formData:a,formTemplateId:j,onThresholdActionCompletion:N,onThresholdIssueRaised:k,onNotesChange:S,onAttachmentChange:T})})]})},ge=e.lazy(()=>Promise.resolve().then(function(){return Se})),xe=({formComponents:o=[],currentDevice:r="desktop",isPreviewMode:s=!1,initialFormData:a=[],onSubmit:l,onFormDataChange:c,formTitle:d,formDescription:u,formTemplateId:m,onComponentSelect:p,onComponentDelete:h,onComponentEdit:f,onComponentUpdate:b,selectedComponent:g})=>{const[x,v]=t({}),[y,j]=t({}),[N,C]=t(!1),[w,k]=t({}),[S,T]=t({}),[$,E]=t(new Set),[A,I]=t(new Map),[L,R]=t({isValid:!0});n(()=>{D()},[o,a]);const V=(e,t)=>{e.forEach(e=>{if(e.id&&("value"in e.basic&&void 0!==e.basic.value?t[e.id]=e.basic.value:"defaultValue"in e.basic&&void 0!==e.basic.defaultValue?t[e.id]=e.basic.defaultValue:"checkbox"===e.name||"select"===e.name?t[e.id]=[]:t[e.id]=""),e.cells&&Array.isArray(e.cells)&&e.cells.forEach((e,n)=>{Array.isArray(e)&&e.forEach((e,n)=>{e&&e.components&&Array.isArray(e.components)&&V(e.components,t)})}),e.entries&&Array.isArray(e.entries)&&e.entries.forEach((e,n)=>{e&&e.components&&Array.isArray(e.components)&&V(e.components,t)}),"file"===e.name&&e.basic){const n=e.basic.files||e.basic.attachments||e.basic.value;n&&(t[e.id]=n)}"instructions"===e.name&&e.basic&&(e.basic.instructions||(e.basic.instructions=[])),e.children&&Array.isArray(e.children)&&V(e.children,t)})},D=i(()=>{const e={};a&&a.length>0&&V(a,e),o&&o.length>0&&V(o,e),v(e),O()},[a,o]),F=(e,t)=>{e.forEach(e=>{if(e.id)if("table"===e.name||"datagrid"===e.name)t[e.id]=!0;else if(e.conditional){const n=B.evaluateConditionalLogic(e.conditional,o,x);t[e.id]=n.shouldShow}else t[e.id]=!0;e.cells&&Array.isArray(e.cells)&&e.cells.forEach(e=>{e.forEach(e=>{e.components&&Array.isArray(e.components)&&F(e.components,t)})}),e.entries&&Array.isArray(e.entries)&&e.entries.forEach(e=>{e.components&&Array.isArray(e.components)&&F(e.components,t)}),e.children&&Array.isArray(e.children)&&F(e.children,t)})},O=i(()=>{const e={};o&&o.length>0&&F(o,e),T(e)},[o,x]),z=i(e=>{const t=o.find(t=>t.id===e);if(t&&("table"===t.name||"datagrid"===t.name))return!0;return!1!==S[e]},[S,o]),q=i(e=>{const t={...x,[e.id]:e.value};v(t);const n=o.find(t=>t.id===e.id);if(n){const e=n?.threshold;e&&e.conditions&&e.conditions.length>0&&E(t=>{const n=new Set(t);return e.conditions.forEach(e=>{n.delete(e.id)}),n})}const i=t=>t.map(t=>t.id===e.id&&"defaultValue"in t.basic?{...t,basic:{...t.basic,value:e.value??t.basic.defaultValue,defaultValue:e.value}}:"section"===t.name&&t.children?{...t,children:i(t.children)}:"table"===t.name&&t.cells?{...t,cells:t.cells.map(e=>e.map(e=>{const t={...e};return t.components&&(t.components=i(t.components)),t}))}:"datagrid"===t.name&&t.entries?{...t,entries:t.entries.map(e=>{const t={...e};return t.components&&(t.components=i(t.components)),t})}:t),r=i(o);c?.(r),y[e.id]&&j(t=>({...t,[e.id]:""})),setTimeout(()=>{const e={};o.forEach(n=>{if("table"===n.name||"datagrid"===n.name)e[n.id]=!0;else if(n.conditional){const i=B.evaluateConditionalLogic(n.conditional,o,t);e[n.id]=i.shouldShow}else e[n.id]=!0}),T(e)},0)},[o,x,y,c]),_=i(e=>{k(t=>({...t,[e]:!0})),W(e)},[]),M=i(e=>{y[e]&&j(t=>({...t,[e]:""}))},[y]),W=i(e=>{if(s)return;const t=o.find(t=>t.id===e);if(!t)return;const n=x[e]||"";let i=!1;i=Array.isArray(n)?n.length>0:"string"==typeof n?""!==n.trim():null!=n;let r="";if(t.validation.required&&!i){const e=t.validation.customValidationMessage,n=t.basic.label||"This field";r=e||`${n} is required`}else if("email-input"===t.name&&i&&!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(n)){const e=t.validation.customValidationMessage,n=t.basic.label||"This field";r=e||`${n} must be a valid email`}else if(t.validation.minLength&&i&&n.length<t.validation.minLength){const e=t.validation.customValidationMessage,n=t.basic.label||"This field";r=e||`${n} must be at least ${t.validation.minLength} characters`}else if(t.validation.maxLength&&i&&n.length>t.validation.maxLength){const e=t.validation.customValidationMessage,n=t.basic.label||"This field";r=e||`${n} must be no more than ${t.validation.maxLength} characters`}else if("number-input"===t.name&&i){const e=parseFloat(n);if(isNaN(e)){const e=t.validation.customValidationMessage,n=t.basic.label||"This field";r=e||`${n} must be a valid number`}else{const n=t.validation;if(void 0!==n.lowerLimit&&e<n.lowerLimit){const e=t.validation.customValidationMessage,i=t.basic.label||"This field";r=e||`You are under the limit. ${i} must be at least ${n.lowerLimit}`}else if(void 0!==n.upperLimit&&e>n.upperLimit){const e=t.validation.customValidationMessage,i=t.basic.label||"This field";r=e||`You crossed the limit. ${i} must be no more than ${n.upperLimit}`}}}j(t=>({...t,[e]:r}))},[o,s,x]),J=i(()=>o.every(e=>{const t=x[e.id]||"";let n=!1;return n=Array.isArray(t)?t.length>0:"string"==typeof t?""!==t.trim():null!=t,!(e.validation.required&&!n)}),[o,x]),H=i((e,t)=>{if(Array.isArray(t))return t.some(t=>H(e,t));if(null==t||""===t)return!1;const n="string"==typeof t?parseFloat(t):t,i="string"==typeof e.value?parseFloat(e.value):e.value;if(!isNaN(n)&&!isNaN(i))switch(e.operator){case"greaterThan":return n>i;case"lessThan":return n<i;case"greaterThanOrEqual":return n>=i;case"lessThanOrEqual":return n<=i;case"equals":return n===i;case"notEquals":return n!==i;default:return!1}const o=String(t).toLowerCase(),r=String(e.value).toLowerCase();switch(e.operator){case"equals":return o===r||String(t)===String(e.value);case"notEquals":return o!==r&&String(t)!==String(e.value);default:return!1}},[]),Y=i(()=>{if(s)return[];const e=[];return o.forEach(t=>{const n=t?.condition;if(!n||!n.conditions||0===n.conditions.length)return;const i=x[t.id];null!=i&&""!==i&&!(Array.isArray(i)&&0===i.length)&&n.conditions.forEach(n=>{H(n,i)&&e.push({componentId:t.id,condition:n,componentLabel:t.basic?.label||"Field"})})}),e},[o,x,s,H]),ae=i(()=>{if(s)return{isValid:!0};const e=Y();if(0===e.length)return{isValid:!0};for(const{condition:t,componentLabel:n}of e){const e=A.get(t.id)||{notesCompleted:!1,attachmentsCompleted:!1,emailSent:!1},i=[];if(!0!==t.enableRaiseIssue||$.has(t.id)||i.push("raise an issue"),!0!==t.enableNotes||e.notesCompleted||i.push("add notes"),!0!==t.enableAttachment||e.attachmentsCompleted||i.push("add attachments"),!0!==t.enableSendEmail||e.emailSent||i.push("send email"),i.length>0){return{isValid:!1,errorMessage:`Please ${1===i.length?i[0]:i.slice(0,-1).join(", ")+" and "+i[i.length-1]} for the threshold condition met in "${n}". You cannot submit the form until all required actions are completed.`}}}return{isValid:!0}},[s,Y,$,A]),ce=i(e=>{e&&E(t=>{const n=new Set(t);return n.add(e),n})},[]),ue=i((e,t,n)=>{e&&I(i=>{const o=new Map(i),r=o.get(e)||{notesCompleted:!1,attachmentsCompleted:!1,emailSent:!1};return"notes"===t?o.set(e,{...r,notesCompleted:n}):"attachments"===t?o.set(e,{...r,attachmentsCompleted:n}):"email"===t&&o.set(e,{...r,emailSent:n}),o})},[]);n(()=>{if(!s){const e=ae();R(e)}},[x,$,A,s,ae]);const pe=i(()=>{if(s)return!0;let e=!0;C(!0);const t={};return o.forEach(n=>{const i=x[n.id]||"";let o=!1;if(o=Array.isArray(i)?i.length>0:"string"==typeof i?""!==i.trim():null!=i,n.validation.required&&!o){const i=n.validation.customValidationMessage,o=n.basic.label||"This field",r=i||`${o} is required`;t[n.id]=r,e=!1}else t[n.id]="";k(e=>({...e,[n.id]:!0}))}),j(t),e},[o,s,x]),he=i(()=>{if(C(!0),!pe()){const e=o.find(e=>{const t=x[e.id]||"";let n=!1;return n=Array.isArray(t)?t.length>0:"string"==typeof t?""!==t.trim():null!=t,e.validation.required&&!n});if(e){const t=document.getElementById(e.id);t&&t.focus()}return}const e=ae();if(!e.isValid){e.errorMessage&&U.showError(e.errorMessage);const t=Y().find(({condition:e})=>!$.has(e.id));if(t){const e=document.getElementById(t.componentId);e&&e.scrollIntoView({behavior:"smooth",block:"center"})}return}const t=e=>e.map(e=>{let n=x[e.id];"text-input"===e.name&&e.basic,void 0===n&&(n="value"in e.basic&&void 0!==e.basic.value?e.basic.value:"defaultValue"in e.basic&&void 0!==e.basic.defaultValue?e.basic.defaultValue:""),"text-input"===e.name&&e.basic;const i={...e,basic:{...e.basic,value:n,defaultValue:n}};return"section"===i.name&&i.children&&(i.children=t(i.children)),"table"===i.name&&i.cells&&(i.cells=i.cells.map(e=>e.map(e=>{const n={...e};return n.components&&(n.components=t(n.components)),n}))),"datagrid"===i.name&&i.entries&&(i.entries=i.entries.map(e=>{const n={...e};return n.components&&(n.components=t(n.components)),n})),i}),n=t(o);l?.(n)},[o,x,pe,l]),fe=i(()=>({[`device-${r}`]:!0,readonly:s}),[r,s]),xe=t=>{const n=x[t.id];"text-input"===t.name&&t.basic;const i={id:t.id,validationErrors:y,formValue:n,touchedFields:w,formSubmitted:N,mode:s?"preview":"test",readonly:s,onValueChange:q,onBlur:()=>_(t.id),onFocus:()=>M(t.id)};switch(t.name){case"text-input":case"number-input":case"email-input":return P.jsx(G,{...i,properties:t,inputType:"text-input"===t.name?"text":"number-input"===t.name?"number":"email",formTemplateId:m,onThresholdIssueRaised:ce,raisedThresholdIssues:$});case"textarea":return P.jsx(X,{...i,properties:t});case"select":const r={...t,options:t.basic?.options||[],basic:{...t.basic,comments:t.basic?.comments||""}};return P.jsx(K,{...i,properties:r});case"checkbox":const s={...t,options:t.basic?.options||[],basic:{...t.basic,comments:t.basic?.comments||""}};return P.jsx(Z,{...i,properties:s});case"radio":const a={...t,options:t.basic?.options||[],basic:{...t.basic,comments:t.basic?.comments||""}};return P.jsx(Q,{...i,properties:a});case"segment":const l={...t,options:t.basic?.options||[],basic:{...t.basic,comments:t.basic?.comments||""}};return P.jsx(ee,{...i,properties:l});case"date":case"date-picker":case"datetime-picker":return P.jsx(te,{...i,properties:t});case"signature":return P.jsx(ne,{...i,properties:t});case"heading":return P.jsx(re,{...i,properties:t});case"instructions":return P.jsx(se,{...i,properties:t});case"location":return P.jsx(oe,{...i,properties:t});case"section":return P.jsx(me,{...i,properties:t,formData:x,formTemplateId:m,onThresholdActionCompletion:ue,onThresholdIssueRaised:ce,renderFormComponent:e=>xe(e)});case"table":return P.jsx(e.Suspense,{fallback:P.jsx("div",{children:"Loading table..."}),children:P.jsx(ge,{...i,properties:t,formData:x,formTemplateId:m,mode:i.mode,onThresholdActionCompletion:ue,onNotesChange:(e,n)=>{const i=o.map(i=>{if(i.id===t.id&&i.cells){const t=i.cells.map(t=>t.map(t=>{if(t.components){const i=t.components.map(t=>t.id===e?{...t,basic:{...t.basic,notes:n}}:t);return{...t,components:i}}return t}));return{...i,cells:t}}return i});c?.(i)},onAttachmentChange:(e,n)=>{const i=o.map(i=>{if(i.id===t.id&&i.cells){const t=i.cells.map(t=>t.map(t=>{if(t.components){const i=t.components.map(t=>t.id===e?{...t,basic:{...t.basic,attachments:n||[]}}:t);return{...t,components:i}}return t}));return{...i,cells:t}}return i});c?.(i)},renderFormComponent:e=>xe(e)})});case"datagrid":return P.jsx(be,{...i,properties:t,formData:x,formTemplateId:m,mode:i.mode,onThresholdActionCompletion:ue,onThresholdIssueRaised:ce,onComponentSelect:p,onComponentDelete:h,onComponentEdit:f,onComponentUpdate:b,selectedComponent:g,onEntryAdd:()=>{const e=o.map(e=>{if(e.id===t.id&&e.entries){const t=e.templateComponents||[],n=e.entries||[],i={id:`entry-${e.id}-${n.length}`,index:n.length,components:t.map((e,t)=>({...e,id:`${e.id}-entry-${n.length}-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}};return{...e,entries:[...n,i]}}return e});c?.(e)},onEntryRemove:e=>{const n=o.map(n=>{if(n.id===t.id&&n.entries){const t=(n.entries||[]).filter((t,n)=>n!==e).map((e,t)=>({...e,index:t,id:`entry-${n.id}-${t}`,components:e.components?.map((e,n)=>{const i=(e.templateComponents||[])[n];return{...e,id:i?`${i.id}-entry-${t}-${n}`:e.id}})||[]}));return{...n,entries:t}}return n});c?.(n)},onNotesChange:(e,n)=>{const i=o.map(i=>{if(i.id===t.id&&i.entries){const t=i.entries.map(t=>{if(t.components){const i=t.components.map(t=>t.id===e?{...t,basic:{...t.basic,notes:n}}:t);return{...t,components:i}}return t});return{...i,entries:t}}return i});c?.(i)},onAttachmentChange:(e,n)=>{const i=o.map(i=>{if(i.id===t.id&&i.entries){const t=i.entries.map(t=>{if(t.components){const i=t.components.map(t=>t.id===e?{...t,basic:{...t.basic,attachments:n||[]}}:t);return{...t,components:i}}return t});return{...i,entries:t}}return i});c?.(i)},renderFormComponent:e=>xe(e)});case"file":const d=n||t.basic?.files||t.basic?.attachments||t.basic?.value||null;return P.jsx(ie,{...i,properties:t,formValue:d});default:return P.jsx("div",{className:"form-group",children:P.jsxs("div",{className:"form-group-label",children:["Unsupported Component: ",t.name]})})}};return P.jsx("div",{className:"form-preview-container",children:P.jsx("div",{className:"form-preview-wrapper",children:P.jsxs("div",{className:`form-preview ${Object.entries(fe()).map(([e,t])=>t?e:"").join(" ")}`,children:[P.jsx("div",{className:"form-canvas-header"}),0===o.length?P.jsx("div",{className:"empty-state",children:P.jsx("div",{className:"empty-state-card",children:P.jsx("div",{className:"empty-state-preview-area",children:P.jsx("span",{className:"empty-state-placeholder",children:"Add components to see the form preview"})})})}):P.jsxs("form",{className:"form-preview-form",onSubmit:e=>{e.preventDefault(),he()},children:[(d||u)&&P.jsxs("div",{className:"form-header",children:[d&&P.jsx("h1",{className:"form-title",children:d}),u&&P.jsx("p",{className:"form-description",children:u})]}),o.map(e=>{const t=e.basic,n=x[e.id],i=["select","radio","checkbox","segment"].includes(e.name||""),o=e.options||t?.options||[],r=(()=>{const t=e?.styles?.column;return"section"===e.name||"table"===e.name||"datagrid"===e.name?"col-12":3===t?"col-3":6===t?"col-6":9===t?"col-9":"col-12"})();let a=!1;if(!s)if(i&&null!=n&&""!==n)if("checkbox"===e.name){a=(Array.isArray(n)?n:[n]).some(e=>{const t=o.find(t=>t.value===e);return t&&(t.enableNotes||t.enableAttachment||t.enableRaiseIssue||t.enableSendEmail)})}else{const e=o.find(e=>e.value===n);a=e&&(e.enableNotes||e.enableAttachment||e.enableRaiseIssue||e.enableSendEmail)}else a=t?.enableNotes||t?.enableAttachment||t?.enableRaiseIssue||t?.enableSendEmail;const l=s&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0);return P.jsxs("div",{className:`form-group ${r} ${a||l?"has-action-features":""}`,style:{display:z(e.id)?"block":"none"},children:[xe(e),!s&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&P.jsx(le,{component:e,mode:s?"preview":"test",formTemplateId:m,formValue:n,onThresholdActionCompletion:ue,onThresholdIssueRaised:ce}),s&&l&&P.jsx(de,{component:e})]},e.id)}),!s&&P.jsx("div",{className:"form-actions",children:P.jsx("button",{type:"submit",disabled:!J()||!L.isValid,className:"form-submit-button",title:L.isValid?"":L.errorMessage,children:"Submit"})})]})]})})})},ve=({comment:e="",onSave:o,placeholder:r="Enter your reason...",className:s="",disabled:a=!1})=>{const[l,c]=t(!0),[d,u]=t(e),[m,p]=t(!1);n(()=>{u(e),p(!1)},[e]);const h=i(t=>{const n=t.target.value;u(n),p(n!==e)},[e]),f=i(()=>{m&&o&&!a&&(o(d),p(!1))},[m,o,d,a]),b=i(()=>{},[]),g=i(()=>{a||c(!l)},[l,a]);return P.jsxs("div",{className:`df-form-comments ${s}`,children:[P.jsxs("div",{className:"df-form-comments__header",children:[P.jsx("h3",{className:"df-form-comments__title",children:"Comments"}),P.jsx("button",{className:"df-form-comments__toggle",type:"button",onClick:g,"aria-expanded":l,"aria-label":"Toggle comments section",disabled:a,children:l?P.jsx("span",{className:"df-form-comments__toggle-icon",children:"▼"}):P.jsx("span",{className:"df-form-comments__toggle-icon",children:"▶"})})]}),P.jsx("div",{className:"df-form-comments__content "+(l?"df-form-comments__content--expanded":""),children:P.jsx("div",{className:"df-form-comments__input-container",children:P.jsx("div",{className:"df-form-comments__input-line",children:P.jsx("input",{type:"text",id:"comment-input",className:"df-form-comments__input",value:d,onChange:h,onBlur:f,onFocus:b,placeholder:r,disabled:a})})})})]})},ye=e=>e.id?e:{...e,id:F()},je=({component:e,mode:t,renderFormComponent:n,formData:i={},formTemplateId:o,onThresholdActionCompletion:r,onNotesChange:s,onAttachmentChange:a})=>{const l=i[e.id],c="preview"===t&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0);return P.jsxs("div",{className:"simple-table-component",children:[n(e),"test"===t&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&P.jsx(le,{component:e,mode:"test",formTemplateId:o,formValue:l,onThresholdActionCompletion:r,onNotesChange:s?t=>s(e.id,t):void 0,onAttachmentChange:a?t=>a(e.id,t):void 0}),c&&P.jsx(de,{component:e})]})},Ne=({component:e,selectedComponent:t,mode:n,onComponentSelect:i,onComponentDelete:o,onComponentEdit:r,renderFormComponent:s,isOverlay:a=!1})=>{const{attributes:l,listeners:c,setNodeRef:d,transform:u,transition:m,isDragging:p,isSorting:h}=R({id:e.id,disabled:a}),f={transform:D.Transform.toString(u),transition:m,opacity:p?.3:1,zIndex:p?1e3:"auto"};return P.jsxs("div",{ref:d,style:f,className:`form-component table-component ${t?.id===e.id?"selected":""} ${p?"dragging":""} ${h?"sorting":""}`,onClick:()=>!p&&i(e),role:"button",tabIndex:0,children:["edit"===n&&P.jsx("div",{className:"component-drag-handle",...c,...l,onClick:e=>e.stopPropagation(),style:{opacity:1},children:P.jsx(k,{size:14})}),P.jsx("div",{className:"component-content",children:s(e)}),"edit"===n&&P.jsxs("div",{className:"component-actions",style:{opacity:1},children:[r&&P.jsx("button",{className:"component-edit-btn",onClick:t=>{t.stopPropagation(),r(e)},type:"button",title:"Edit Component",children:P.jsx(S,{size:12})}),P.jsx("button",{className:"component-delete-btn",onClick:t=>{t.stopPropagation(),o(e,t)},type:"button",title:"Delete Component",children:P.jsx(T,{size:12})})]})]})},Ce=({cell:e,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:o,selectedComponent:r,renderFormComponent:s,formData:a={},formTemplateId:l,onThresholdActionCompletion:c,tableId:d,onNotesChange:u,onAttachmentChange:m})=>{const p=`table-cell-${d}-${e.row}-${e.column}`,{setNodeRef:h,isOver:f}=A({id:p,disabled:"edit"!==t,data:{type:"table-cell",tableId:d,cell:e,row:e.row,column:e.column}}),b={...e.styles,backgroundColor:f?"var(--df-color-primary-light)":e.styles?.backgroundColor||"transparent",minHeight:e.styles?.minHeight||"preview"===t||"test"===t?"40px":"60px",padding:(e.styles,"8px"),border:"preview"===t||"test"===t?"none":f?"2px dashed var(--df-color-primary)":e.styles?.borderColor?`1px solid ${e.styles.borderColor}`:"1px solid var(--df-color-fb-border)",borderRadius:"preview"===t||"test"===t?"0":"4px",position:"relative",verticalAlign:e.styles?.verticalAlign||"top"};return P.jsx("td",{ref:h,style:b,className:"table-cell "+(f?"drag-over":""),children:P.jsx("div",{className:"cell-content",children:e.components&&Array.isArray(e.components)&&e.components.length>0?"edit"===t?P.jsx(I,{items:e.components.map(e=>e.id||F()),strategy:L,children:e.components.map(e=>{const a=ye(e);return P.jsx(Ne,{component:a,selectedComponent:r,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:o,renderFormComponent:s},a.id)})}):e.components.map(e=>{const n=ye(e);return P.jsx(je,{component:n,mode:t,renderFormComponent:s,formData:a,formTemplateId:l,onThresholdActionCompletion:c,onNotesChange:u,onAttachmentChange:m},n.id)}):"edit"===t?P.jsx("div",{className:"empty-cell-placeholder",children:P.jsxs("div",{className:"cell-info",children:[P.jsx("span",{className:"drop-zone-text",children:"Drag and Drop a form component"}),P.jsxs("span",{className:"cell-coordinates",children:["Cell (",e.row+1,", ",e.column+1,")"]})]})}):P.jsx("div",{style:{minHeight:"20px",backgroundColor:"transparent",visibility:"hidden"},children:" "})})})},we=({id:e,properties:o,mode:r="edit",formData:s={},onValueChange:a,onSelect:l,isSelected:c=!1,className:d="",onTableSelect:u,onComponentSelect:m,onComponentDelete:p,onComponentEdit:h,selectedComponent:f,renderFormComponent:b,formTemplateId:g,onThresholdActionCompletion:x,onNotesChange:v,onAttachmentChange:y})=>{const[j,N]=t(!1),k=o.cells?.some(e=>e.some(e=>e.components&&e.components.length>0))||!1;n(()=>{const t=o.table?.rows||o.basic?.rows||3,n=o.table?.columns||o.basic?.columns||3,i=o.cells||[];if(0===i.length||i.length!==t||i.length>0&&i[0].length!==n){const r=[];for(let e=0;e<t;e++){const t=[];for(let o=0;o<n;o++){const n=`cell-${e}-${o}`;let r=[];i[e]&&i[e][o]&&(r=(i[e][o].components||[]).map(ye)),t.push({id:n,row:e,column:o,components:r,styles:{}})}r.push(t)}a&&a({id:e,value:{...o,cells:r}})}},[o.table?.rows,o.table?.columns,o.basic?.rows,o.basic?.columns,o.cells,e,a]);const S=i(e=>{e.stopPropagation(),l?.(),u?.(o)},[l,u,o]),T=i((t,n)=>{n.stopPropagation();const i=o.cells.map(e=>e.map(e=>{if(e.components&&e.components.some(e=>e.id===t.id)){const n=e.components.filter(e=>e.id!==t.id);return{...e,components:n}}return e}));a&&a({id:e,value:{...o,cells:i}})},[p,o,a,e]),$=o.cells?o.cells.map(e=>e.map(e=>({...e,components:e.components&&Array.isArray(e.components)?e.components.map(e=>e.id?e:{...e,id:`table-cell-${e.name}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}):[]}))):[];n(()=>{$.length>0&&JSON.stringify($)!==JSON.stringify(o.cells)&&a?.({id:e,value:{...o,cells:$}})},[$,o.cells,e,a]);const A=b||i(e=>{const t=ye(e);let n=s[t.id];null==n&&(n="value"in t.basic&&void 0!==t.basic.value?t.basic.value:"defaultValue"in t.basic&&void 0!==t.basic.defaultValue?t.basic.defaultValue:"checkbox"===t.name||"select"===t.name?[]:"");const i={id:t.id,properties:t,validationErrors:{},formValue:n,touchedFields:{},formSubmitted:!1,mode:r,onValueChange:e=>{a?.(e)},onBlur:()=>{},onFocus:()=>{}};switch(t.name){case"text-input":case"email-input":case"number-input":return P.jsx(G,{...i,properties:t,inputType:"text-input"===t.name?"text":"number-input"===t.name?"number":"email",readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"textarea":return P.jsx(X,{...i,properties:t,readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"select":const e={...t,options:t.basic?.options||[]};return P.jsx(K,{...i,properties:e,disabled:"edit"===r||"preview"===r});case"checkbox":const n={...t,options:t.basic?.options||[]};return P.jsx(Z,{...i,properties:n,formValue:[],disabled:"edit"===r||"preview"===r});case"radio":const o={...t,options:t.basic?.options||[]};return P.jsx(Q,{...i,properties:o,readonly:"edit"===r||"preview"===r,disabled:"edit"===r||"preview"===r});case"date":case"date-picker":case"datetime-picker":return P.jsx(te,{...i,properties:t,readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"signature":return P.jsx(ne,{...i,properties:t});case"heading":return P.jsx(re,{...i,properties:t});default:return P.jsxs("div",{className:"unknown-component",children:["Unknown component: ",t.name]})}},[r]),I={backgroundColor:o.styles?.backgroundColor||"var(--df-color-fb-container)",borderColor:o.styles?.borderColor||"var(--df-color-fb-border)",borderWidth:o.styles?.borderWidth||"2px",borderRadius:o.styles?.borderRadius||"8px",padding:o.styles?.padding||"16px",margin:o.styles?.margin||"16px 0"},L={width:"100%",minWidth:"600px",borderCollapse:"preview"===r||"test"===r?"separate":"collapse",tableLayout:"fixed",border:"preview"===r||"test"===r?"1px solid var(--df-color-fb-border)":"none"};return k||"preview"!==r?P.jsxs("div",{className:`form-group df-form-table ${c?"selected":""} ${"preview"===r?"preview-mode":"test"===r?"test-mode":""} ${d}`,onClick:S,style:I,children:[P.jsx("div",{className:"table-header",children:P.jsx("div",{className:"table-title",onClick:t=>{t.stopPropagation(),N(!j),a?.({id:e,value:{...o,basic:{...o.basic||{},collapsed:!j}}})},children:P.jsxs("div",{className:"title-content",children:[j?P.jsx(w,{size:16}):P.jsx(C,{size:16}),P.jsx(E,{size:16}),P.jsx("span",{className:"table-label",children:o.basic?.label||"Table"}),o.validation?.required&&P.jsx("span",{className:"required-indicator",children:"*"})]})})}),o.basic?.description&&!j&&P.jsx("div",{className:"table-description",children:o.basic.description}),!j&&P.jsxs("div",{className:"table-content",children:[null,P.jsxs("table",{style:L,children:[o.table?.displayAsTable&&("edit"===r||o.table?.showColumns)&&P.jsx("thead",{children:P.jsx("tr",{className:"table-header-row",children:Array.from({length:o.table?.columns||o.basic?.columns||3},(e,t)=>{const n=(o.table?.columnNames?.split(",").map(e=>e.trim())||[])[t]||`Column ${t+1}`;return P.jsx("th",{className:"table-header-cell",style:{backgroundColor:(o.styles.headerBackgroundColor,"var(--df-color-fb-container)"),color:o.styles.headerTextColor||"var(--df-color-text-dark)",padding:"12px",border:"1px solid var(--df-color-fb-border)",fontWeight:"600",fontSize:"14px",textAlign:"center"},children:n},`header-${t}`)})})}),P.jsx("tbody",{children:o.cells?.map((t,n)=>P.jsx("tr",{className:"table-row",children:t.map(t=>P.jsx(Ce,{cell:t,mode:r,onComponentSelect:m||(()=>{}),onComponentDelete:T,onComponentEdit:h,selectedComponent:f||null,renderFormComponent:A,formData:s,formTemplateId:g,onThresholdActionCompletion:x,tableId:e,onNotesChange:v,onAttachmentChange:y},t.id))},n))})]})]})]}):null};var ke,Se=Object.freeze({__proto__:null,DfFormTable:we,default:we});!function(e){e.Top="top",e.Left="left"}(ke||(ke={}));export{le as ComponentActionFeatures,de as ComponentSubmissionActions,Z as DfFormCheckbox,ve as DfFormComments,be as DfFormDataGrid,te as DfFormDateTime,J as DfFormErrorMsg,ie as DfFormFileUpload,re as DfFormHeading,G as DfFormInput,se as DfFormInstruction,oe as DfFormLocation,xe as DfFormPreview,Q as DfFormRadio,me as DfFormSection,ee as DfFormSegment,K as DfFormSelect,ne as DfFormSignature,we as DfFormTable,X as DfFormTextarea,ke as ELabelAlignment,H as RaiseIssueModal,Y as ThresholdAlert,B as conditionalLogicService,U as toastService};
11
11
  //# sourceMappingURL=index.esm.js.map