@senitix/ui 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{command-BPtg-XK3.cjs → command-BEpaOk-5.cjs} +2 -2
- package/dist/{command-BPtg-XK3.cjs.map → command-BEpaOk-5.cjs.map} +1 -1
- package/dist/{command-VraXPLVI.js → command-CYhMM7gX.js} +2 -2
- package/dist/{command-VraXPLVI.js.map → command-CYhMM7gX.js.map} +1 -1
- package/dist/components/builders/index.cjs.js +1 -1
- package/dist/components/builders/index.es.js +1 -1
- package/dist/components/data-display/index.cjs.js +1 -1
- package/dist/components/data-display/index.es.js +1 -1
- package/dist/components/forms/index.cjs.js +1 -1
- package/dist/components/forms/index.es.js +2 -2
- package/dist/components/layouts/index.cjs.js +1 -1
- package/dist/components/layouts/index.es.js +1 -1
- package/dist/components/navigation/index.cjs.js +1 -1
- package/dist/components/navigation/index.es.js +1 -1
- package/dist/components/ui/index.cjs.js +1 -1
- package/dist/components/ui/index.es.js +4 -4
- package/dist/{dialog-DO5i1PED.cjs → dialog-Cr9SYCaD.cjs} +2 -2
- package/dist/{dialog-DO5i1PED.cjs.map → dialog-Cr9SYCaD.cjs.map} +1 -1
- package/dist/{dialog-BFBDL8_i.js → dialog-MYAx3Qrc.js} +25 -20
- package/dist/{dialog-BFBDL8_i.js.map → dialog-MYAx3Qrc.js.map} +1 -1
- package/dist/{form-preview-C6WfeXyD.js → form-preview-Bm5xHtkw.js} +3 -3
- package/dist/{form-preview-C6WfeXyD.js.map → form-preview-Bm5xHtkw.js.map} +1 -1
- package/dist/{form-preview-BGdea5K7.cjs → form-preview-IPEZdspX.cjs} +2 -2
- package/dist/{form-preview-BGdea5K7.cjs.map → form-preview-IPEZdspX.cjs.map} +1 -1
- package/dist/full-calendar-4Ut52QNO.cjs +18 -0
- package/dist/full-calendar-4Ut52QNO.cjs.map +1 -0
- package/dist/{full-calendar-CjaDgutS.js → full-calendar-DD_tBy69.js} +288 -288
- package/dist/full-calendar-DD_tBy69.js.map +1 -0
- package/dist/{global-search-msFICB8l.cjs → global-search-DcBKVaM4.cjs} +2 -2
- package/dist/{global-search-msFICB8l.cjs.map → global-search-DcBKVaM4.cjs.map} +1 -1
- package/dist/{global-search-Dhv8goH8.js → global-search-Dul9CD6-.js} +3 -3
- package/dist/{global-search-Dhv8goH8.js.map → global-search-Dul9CD6-.js.map} +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +10 -10
- package/dist/{locale-selector-D0jV4-90.cjs → locale-selector-CRC0VBKl.cjs} +2 -2
- package/dist/{locale-selector-D0jV4-90.cjs.map → locale-selector-CRC0VBKl.cjs.map} +1 -1
- package/dist/{locale-selector-n75sM9qA.js → locale-selector-HuzfE0zZ.js} +4 -4
- package/dist/{locale-selector-n75sM9qA.js.map → locale-selector-HuzfE0zZ.js.map} +1 -1
- package/dist/{multi-select-DxN_LuXC.cjs → multi-select-Bj_kIDHE.cjs} +2 -2
- package/dist/{multi-select-DxN_LuXC.cjs.map → multi-select-Bj_kIDHE.cjs.map} +1 -1
- package/dist/{multi-select-D9akBt7B.js → multi-select-CPF7w871.js} +2 -2
- package/dist/{multi-select-D9akBt7B.js.map → multi-select-CPF7w871.js.map} +1 -1
- package/dist/{permission-matrix-CTQ1OiTO.js → permission-matrix-BRqw2RPb.js} +3 -3
- package/dist/{permission-matrix-CTQ1OiTO.js.map → permission-matrix-BRqw2RPb.js.map} +1 -1
- package/dist/{permission-matrix-DRu-cV44.cjs → permission-matrix-CqE8q8Hi.cjs} +2 -2
- package/dist/{permission-matrix-DRu-cV44.cjs.map → permission-matrix-CqE8q8Hi.cjs.map} +1 -1
- package/dist/{record-dialog-footer-CQPnqhfv.js → record-dialog-footer-DbH9A6eA.js} +3 -3
- package/dist/{record-dialog-footer-CQPnqhfv.js.map → record-dialog-footer-DbH9A6eA.js.map} +1 -1
- package/dist/{record-dialog-footer-DLH96eAV.cjs → record-dialog-footer-DpDxH5wX.cjs} +2 -2
- package/dist/{record-dialog-footer-DLH96eAV.cjs.map → record-dialog-footer-DpDxH5wX.cjs.map} +1 -1
- package/dist/{sheet-C0-aBGln.cjs → sheet-DTimb4SJ.cjs} +2 -2
- package/dist/{sheet-C0-aBGln.cjs.map → sheet-DTimb4SJ.cjs.map} +1 -1
- package/dist/{sheet-Cyq_eDFW.js → sheet-DgpAPCAp.js} +2 -2
- package/dist/{sheet-Cyq_eDFW.js.map → sheet-DgpAPCAp.js.map} +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/dist/full-calendar-CZMK_rPy.cjs +0 -18
- package/dist/full-calendar-CZMK_rPy.cjs.map +0 -1
- package/dist/full-calendar-CjaDgutS.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const l=require("react/jsx-runtime"),re=require("./index-Dy_9oyP3.cjs"),At=require("./x-D-El5XAY.cjs"),_e=require("./scroll-area-HsTSI_58.cjs"),Ci=require("./clock-CnxBAA_O.cjs"),ye=require("./locale-provider-BScpm-eC.cjs"),Ve=require("./button-CPuCii0R.cjs"),Le=require("./tooltip-Dd7le9EO.cjs"),Nn=require("./plus-Bcuujcqd.cjs"),ji=require("./minus-BUFkTM0k.cjs"),we=require("./input-UBp7V7li.cjs"),Ce=require("./label-F0zGAiI2.cjs"),Q=require("./select-CEsYpjPi.cjs"),wt=require("./textarea-Bq_zyt0L.cjs"),_=require("react"),rn=require("./dialog-
|
|
1
|
+
"use strict";const l=require("react/jsx-runtime"),re=require("./index-Dy_9oyP3.cjs"),At=require("./x-D-El5XAY.cjs"),_e=require("./scroll-area-HsTSI_58.cjs"),Ci=require("./clock-CnxBAA_O.cjs"),ye=require("./locale-provider-BScpm-eC.cjs"),Ve=require("./button-CPuCii0R.cjs"),Le=require("./tooltip-Dd7le9EO.cjs"),Nn=require("./plus-Bcuujcqd.cjs"),ji=require("./minus-BUFkTM0k.cjs"),we=require("./input-UBp7V7li.cjs"),Ce=require("./label-F0zGAiI2.cjs"),Q=require("./select-CEsYpjPi.cjs"),wt=require("./textarea-Bq_zyt0L.cjs"),_=require("react"),rn=require("./dialog-Cr9SYCaD.cjs"),eu=require("./eye-Cved4eAo.cjs"),Vn=require("./table-2-Bn-YjZ9s.cjs"),_i=require("./trash-2-DWEeKlWT.cjs"),Te=require("./index-hnbbvGmb.cjs"),ko=require("react-dom"),tu=require("./switch-AEZvZSRV.cjs"),dt=require("./sheet-DTimb4SJ.cjs"),Wn=require("./badge-BZcdBG5J.cjs"),Se=require("./sortable.esm-5DsiICDg.cjs"),mr=require("./phone-DPA6vucM.cjs"),Ei=require("./calendar-BH-AuyiB.cjs"),ki=require("./upload-2tm-XihE.cjs"),Mi=require("./checkbox-BmugT50K.cjs"),fs=require("./radio-group-_n8TTqNQ.cjs");function nu(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const le=nu(_);/**
|
|
2
2
|
* @license lucide-react v0.441.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -108,4 +108,4 @@
|
|
|
108
108
|
M${E.x},${E.y}h${E.width}v${E.height}h${-E.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}Sl.displayName="MiniMap";const Cl=_.memo(Sl),Om=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,$m={[bn.Line]:"right",[bn.Handle]:"bottom-right"};function Bm({nodeId:e,position:t,variant:n=bn.Handle,className:r,style:o=void 0,children:s,color:i,minWidth:a=10,minHeight:c=10,maxWidth:u=Number.MAX_VALUE,maxHeight:h=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:g=!0,shouldResize:p,onResizeStart:y,onResize:b,onResizeEnd:m}){const v=Ua(),x=typeof e=="string"?e:v,w=Me(),C=_.useRef(null),S=n===bn.Handle,j=ce(_.useCallback(Om(S&&g),[S,g]),ke),E=_.useRef(null),M=t??$m[n];_.useEffect(()=>{if(!(!C.current||!x))return E.current||(E.current=bp({domNode:C.current,nodeId:x,getStoreItems:()=>{const{nodeLookup:D,transform:k,snapGrid:R,snapToGrid:N,nodeOrigin:T,domNode:P}=w.getState();return{nodeLookup:D,transform:k,snapGrid:R,snapToGrid:N,nodeOrigin:T,paneDomNode:P}},onChange:(D,k)=>{const{triggerNodeChanges:R,nodeLookup:N,parentLookup:T,nodeOrigin:P}=w.getState(),L=[],z={x:D.x,y:D.y},I=N.get(x);if(I&&I.expandParent&&I.parentId){const O=I.origin??P,B=D.width??I.measured.width??0,$=D.height??I.measured.height??0,V={id:I.id,parentId:I.parentId,rect:{width:B,height:$,...wa({x:D.x??I.position.x,y:D.y??I.position.y},{width:B,height:$},I.parentId,N,O)}},W=Fo([V],N,T,P);L.push(...W),z.x=D.x?Math.max(O[0]*B,D.x):void 0,z.y=D.y?Math.max(O[1]*$,D.y):void 0}if(z.x!==void 0&&z.y!==void 0){const O={id:x,type:"position",position:{...z}};L.push(O)}if(D.width!==void 0&&D.height!==void 0){const B={id:x,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:D.width,height:D.height}};L.push(B)}for(const O of k){const B={...O,type:"position"};L.push(B)}R(L)},onEnd:({width:D,height:k})=>{const R={id:x,type:"dimensions",resizing:!1,dimensions:{width:D,height:k}};w.getState().triggerNodeChanges([R])}})),E.current.update({controlPosition:M,boundaries:{minWidth:a,minHeight:c,maxWidth:u,maxHeight:h},keepAspectRatio:d,resizeDirection:f,onResizeStart:y,onResize:b,onResizeEnd:m,shouldResize:p}),()=>{var D;(D=E.current)==null||D.destroy()}},[M,a,c,u,h,d,y,b,m,p]);const A=M.split("-");return l.jsx("div",{className:Ae(["react-flow__resize-control","nodrag",...A,n,r]),ref:C,style:{...o,scale:j,...i&&{[S?"backgroundColor":"borderColor"]:i}},children:s})}_.memo(Bm);function Un({label:e,description:t,icon:n,color:r,borderColor:o,bgColor:s,selected:i,onSelect:a,onDelete:c,readOnly:u,showSource:h=!0,showTarget:d=!0,sourceHandles:f,children:g}){return l.jsxs("div",{className:re.cn("relative min-w-[200px] max-w-[280px] rounded-lg border-2 shadow-sm transition-all duration-200",o,s,i&&"ring-2 ring-ring shadow-md",!u&&"cursor-pointer hover:shadow-md"),onClick:a,children:[d&&l.jsx(rt,{type:"target",position:G.Top,className:"!w-3 !h-3 !bg-muted-foreground/50 !border-2 !border-background"}),l.jsxs("div",{className:"flex items-center gap-2 px-3 py-2.5",children:[n&&l.jsx("div",{className:re.cn("flex h-7 w-7 shrink-0 items-center justify-center rounded-md",r,"text-white"),children:n}),l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsx("p",{className:"text-sm font-medium leading-tight truncate",children:e}),t&&l.jsx("p",{className:"text-[11px] text-muted-foreground leading-tight truncate",children:t})]}),!u&&c&&l.jsx("button",{onClick:p=>{p.stopPropagation(),c()},className:"flex h-5 w-5 shrink-0 items-center justify-center rounded text-muted-foreground/60 hover:text-destructive hover:bg-destructive/10 transition-colors",children:l.jsx(At.X,{className:"h-3 w-3"})})]}),g&&l.jsx("div",{className:"px-3 pb-2.5",children:g}),h&&!f&&l.jsx(rt,{type:"source",position:G.Bottom,className:"!w-3 !h-3 !bg-muted-foreground/50 !border-2 !border-background"}),f==null?void 0:f.map((p,y)=>{const b=f.length,m=(y+1)/(b+1)*100;return l.jsxs("div",{children:[l.jsx(rt,{type:"source",position:G.Bottom,id:p.id,className:"!w-3 !h-3 !bg-muted-foreground/50 !border-2 !border-background",style:{left:`${m}%`}}),l.jsx("span",{className:"absolute text-[9px] text-muted-foreground font-medium",style:{bottom:-16,left:`${m}%`,transform:"translateX(-50%)"},children:p.label})]},p.id)})]})}function jl({id:e,data:t,selected:n}){return l.jsx(Un,{id:e,label:t.label,description:t.description,icon:t.icon??l.jsx(Li,{className:"h-4 w-4"}),color:"bg-amber-500",borderColor:"border-amber-200",bgColor:"bg-amber-50/80",selected:n,showTarget:!1,showSource:!0})}function _l({id:e,data:t,selected:n}){const r=(t.branches??[]).map(o=>({id:o.id,label:o.label}));return l.jsx(Un,{id:e,label:t.label,description:t.description,icon:t.icon??l.jsx(Mr,{className:"h-4 w-4"}),color:"bg-blue-500",borderColor:"border-blue-200",bgColor:"bg-blue-50/80",selected:n,showTarget:!0,showSource:!1,sourceHandles:r,children:!!t.config.expression&&l.jsx("div",{className:"rounded bg-blue-100/60 px-2 py-1 text-[11px] font-mono text-blue-700 truncate",children:String(t.config.expression)})})}function El({id:e,data:t,selected:n}){return l.jsx(Un,{id:e,label:t.label,description:t.description,icon:t.icon??l.jsx(Ri,{className:"h-4 w-4"}),color:"bg-green-500",borderColor:"border-green-200",bgColor:"bg-green-50/80",selected:n,showTarget:!0,showSource:!0})}function kl({id:e,data:t,selected:n}){const r=t.config.duration,o=t.config.unit??"minutes";return l.jsx(Un,{id:e,label:t.label,description:t.description,icon:t.icon??l.jsx(Ci.Clock,{className:"h-4 w-4"}),color:"bg-purple-500",borderColor:"border-purple-200",bgColor:"bg-purple-50/80",selected:n,showTarget:!0,showSource:!0,children:!!r&&l.jsxs("div",{className:"rounded bg-purple-100/60 px-2 py-1 text-[11px] text-purple-700",children:["Wait ",String(r)," ",String(o)]})})}function Hm({sourceX:e,sourceY:t,targetX:n,targetY:r,sourcePosition:o,targetPosition:s,style:i={},markerEnd:a,data:c}){const[u,h,d]=Ar({sourceX:e,sourceY:t,sourcePosition:o,targetX:n,targetY:r,targetPosition:s}),f=c;return l.jsxs(l.Fragment,{children:[l.jsx(Sn,{path:u,markerEnd:a,style:{strokeWidth:2,stroke:"hsl(var(--muted-foreground) / 0.3)",...i}}),(f==null?void 0:f.label)&&l.jsx(xl,{children:l.jsx("div",{className:re.cn("nodrag nopan absolute rounded-full border bg-background px-2 py-0.5 text-[10px] font-medium text-muted-foreground shadow-sm"),style:{transform:`translate(-50%, -50%) translate(${h}px,${d}px)`,pointerEvents:"all"},children:f.label})})]})}function Ml({className:e}){const{zoomIn:t,zoomOut:n,fitView:r}=Kn(),{t:o}=ye.useLocale();return l.jsx(Le.TooltipProvider,{children:l.jsxs("div",{className:re.cn("flex items-center gap-1 rounded-lg border bg-background/95 px-1.5 py-1 shadow-sm backdrop-blur-sm",e),children:[l.jsxs(Le.Tooltip,{children:[l.jsx(Le.TooltipTrigger,{asChild:!0,children:l.jsx(Ve.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>t(),children:l.jsx(Nn.Plus,{className:"h-3.5 w-3.5"})})}),l.jsx(Le.TooltipContent,{side:"bottom",children:o("workflow.zoomIn")})]}),l.jsxs(Le.Tooltip,{children:[l.jsx(Le.TooltipTrigger,{asChild:!0,children:l.jsx(Ve.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>n(),children:l.jsx(ji.Minus,{className:"h-3.5 w-3.5"})})}),l.jsx(Le.TooltipContent,{side:"bottom",children:o("workflow.zoomOut")})]}),l.jsxs(Le.Tooltip,{children:[l.jsx(Le.TooltipTrigger,{asChild:!0,children:l.jsx(Ve.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>r({padding:.2}),children:l.jsx(Ii,{className:"h-3.5 w-3.5"})})}),l.jsx(Le.TooltipContent,{side:"bottom",children:o("workflow.fitView")})]})]})})}function Dl({className:e}){return l.jsx(Cl,{className:re.cn("!bg-muted/50 !border !rounded-lg !shadow-sm",e),nodeStrokeWidth:3,pannable:!0,zoomable:!0,style:{width:140,height:100}})}const Vm={triggerNode:jl,conditionNode:_l,actionNode:El,delayNode:kl},Wm={workflowEdge:Hm};function Pl({nodes:e,edges:t,onNodesChange:n,onEdgesChange:r,onConnect:o,onNodeClick:s,readOnly:i=!1,showMinimap:a=!0,showToolbar:c=!0,className:u}){return l.jsxs("div",{className:re.cn("relative h-full w-full",u),children:[l.jsxs(ml,{nodes:e,edges:t,onNodesChange:i?void 0:n,onEdgesChange:i?void 0:r,onConnect:i?void 0:o,onNodeClick:(h,d)=>s==null?void 0:s(d.id),nodeTypes:Vm,edgeTypes:Wm,defaultEdgeOptions:{type:"workflowEdge",animated:!0},fitView:!0,fitViewOptions:{padding:.2},nodesDraggable:!i,nodesConnectable:!i,elementsSelectable:!i,proOptions:{hideAttribution:!0},className:"bg-muted/20",children:[l.jsx(vl,{variant:vt.Dots,gap:20,size:1,className:"!text-muted-foreground/10"}),a&&l.jsx(Dl,{})]}),c&&l.jsx("div",{className:"absolute left-3 top-3 z-10",children:l.jsx(Ml,{})})]})}function Il({node:e,triggers:t,onUpdateConfig:n,onUpdateData:r}){var i;const{t:o}=ye.useLocale(),s=t.find(a=>a.id===e.data.definitionId);return l.jsxs("div",{className:"space-y-4",children:[l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:o("workflow.triggerType")}),l.jsxs(Q.Select,{value:e.data.definitionId??"",onValueChange:a=>{const c=t.find(u=>u.id===a);c&&r({definitionId:a,label:c.label,description:c.description})},children:[l.jsx(Q.SelectTrigger,{children:l.jsx(Q.SelectValue,{placeholder:o("workflow.selectTrigger")})}),l.jsx(Q.SelectContent,{children:t.map(a=>l.jsx(Q.SelectItem,{value:a.id,children:a.label},a.id))})]})]}),l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:o("workflow.label")}),l.jsx(we.Input,{value:e.data.label,onChange:a=>r({label:a.target.value}),placeholder:o("workflow.nodeLabel")})]}),(i=s==null?void 0:s.configFields)==null?void 0:i.map(a=>l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:a.label}),a.type==="text"&&l.jsx(we.Input,{value:String(e.data.config[a.id]??a.defaultValue??""),onChange:c=>n({[a.id]:c.target.value}),placeholder:a.placeholder}),a.type==="select"&&a.options&&l.jsxs(Q.Select,{value:String(e.data.config[a.id]??a.defaultValue??""),onValueChange:c=>n({[a.id]:c}),children:[l.jsx(Q.SelectTrigger,{children:l.jsx(Q.SelectValue,{placeholder:a.placeholder??o("filter.select")})}),l.jsx(Q.SelectContent,{children:a.options.map(c=>l.jsx(Q.SelectItem,{value:c.value,children:c.label},c.value))})]})]},a.id))]})}function Rl({node:e,onUpdateConfig:t,onUpdateData:n}){const{t:r}=ye.useLocale();return l.jsxs("div",{className:"space-y-4",children:[l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:r("workflow.label")}),l.jsx(we.Input,{value:e.data.label,onChange:o=>n({label:o.target.value}),placeholder:r("workflow.conditionName")})]}),l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:r("workflow.conditionExpression")}),l.jsx(wt.Textarea,{value:String(e.data.config.expression??""),onChange:o=>t({expression:o.target.value}),placeholder:r("workflow.conditionPlaceholder"),rows:3,className:"font-mono text-xs"}),l.jsx("p",{className:"text-[10px] text-muted-foreground",children:r("workflow.conditionHelp")})]}),l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:r("workflow.description")}),l.jsx(we.Input,{value:e.data.description??"",onChange:o=>n({description:o.target.value}),placeholder:r("workflow.optionalDescription")})]})]})}function zl({node:e,actions:t,onUpdateConfig:n,onUpdateData:r}){var i;const{t:o}=ye.useLocale(),s=t.find(a=>a.id===e.data.definitionId);return l.jsxs("div",{className:"space-y-4",children:[l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:o("workflow.actionType")}),l.jsxs(Q.Select,{value:e.data.definitionId??"",onValueChange:a=>{const c=t.find(u=>u.id===a);c&&r({definitionId:a,label:c.label,description:c.description})},children:[l.jsx(Q.SelectTrigger,{children:l.jsx(Q.SelectValue,{placeholder:o("workflow.selectAction")})}),l.jsx(Q.SelectContent,{children:t.map(a=>l.jsx(Q.SelectItem,{value:a.id,children:a.label},a.id))})]})]}),l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:o("workflow.label")}),l.jsx(we.Input,{value:e.data.label,onChange:a=>r({label:a.target.value}),placeholder:o("workflow.nodeLabel")})]}),(i=s==null?void 0:s.configFields)==null?void 0:i.map(a=>l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:a.label}),a.type==="text"&&l.jsx(we.Input,{value:String(e.data.config[a.id]??a.defaultValue??""),onChange:c=>n({[a.id]:c.target.value}),placeholder:a.placeholder}),a.type==="textarea"&&l.jsx(we.Input,{value:String(e.data.config[a.id]??a.defaultValue??""),onChange:c=>n({[a.id]:c.target.value}),placeholder:a.placeholder}),a.type==="select"&&a.options&&l.jsxs(Q.Select,{value:String(e.data.config[a.id]??a.defaultValue??""),onValueChange:c=>n({[a.id]:c}),children:[l.jsx(Q.SelectTrigger,{children:l.jsx(Q.SelectValue,{placeholder:a.placeholder??o("filter.select")})}),l.jsx(Q.SelectContent,{children:a.options.map(c=>l.jsx(Q.SelectItem,{value:c.value,children:c.label},c.value))})]})]},a.id))]})}function Tl({node:e,onUpdateConfig:t,onUpdateData:n}){const{t:r}=ye.useLocale();return l.jsxs("div",{className:"space-y-4",children:[l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:r("workflow.label")}),l.jsx(we.Input,{value:e.data.label,onChange:o=>n({label:o.target.value}),placeholder:r("workflow.delayName")})]}),l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:r("workflow.duration")}),l.jsxs("div",{className:"flex gap-2",children:[l.jsx(we.Input,{type:"number",min:1,value:String(e.data.config.duration??""),onChange:o=>t({duration:o.target.value?Number(o.target.value):void 0}),placeholder:r("workflow.amount"),className:"flex-1"}),l.jsxs(Q.Select,{value:String(e.data.config.unit??"minutes"),onValueChange:o=>t({unit:o}),children:[l.jsx(Q.SelectTrigger,{className:"w-[120px]",children:l.jsx(Q.SelectValue,{})}),l.jsxs(Q.SelectContent,{children:[l.jsx(Q.SelectItem,{value:"minutes",children:r("workflow.unit.minutes")}),l.jsx(Q.SelectItem,{value:"hours",children:r("workflow.unit.hours")}),l.jsx(Q.SelectItem,{value:"days",children:r("workflow.unit.days")}),l.jsx(Q.SelectItem,{value:"weeks",children:r("workflow.unit.weeks")})]})]})]})]}),l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:r("workflow.description")}),l.jsx(we.Input,{value:e.data.description??"",onChange:o=>n({description:o.target.value}),placeholder:r("workflow.optionalDescription")})]})]})}function Ll({triggers:e,actions:t,selectedNode:n,readOnly:r,onAddNode:o,onUpdateConfig:s,onUpdateData:i,onDeselectNode:a,className:c}){const{t:u}=ye.useLocale();if(n){const b=n.data;return l.jsxs("div",{className:re.cn("flex h-full w-[280px] flex-col border-l bg-background",c),children:[l.jsxs("div",{className:"flex items-center justify-between px-3 py-2.5 border-b",children:[l.jsx("h3",{className:"text-sm font-semibold",children:u("workflow.configureNode")}),l.jsx(Ve.Button,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:a,children:l.jsx(At.X,{className:"h-3.5 w-3.5"})})]}),l.jsxs(_e.ScrollArea,{className:"flex-1 px-3 py-3",children:[b.type==="trigger"&&l.jsx(Il,{node:n,triggers:e,onUpdateConfig:m=>s(n.id,m),onUpdateData:m=>i(n.id,m)}),b.type==="condition"&&l.jsx(Rl,{node:n,onUpdateConfig:m=>s(n.id,m),onUpdateData:m=>i(n.id,m)}),b.type==="action"&&l.jsx(zl,{node:n,actions:t,onUpdateConfig:m=>s(n.id,m),onUpdateData:m=>i(n.id,m)}),b.type==="delay"&&l.jsx(Tl,{node:n,onUpdateConfig:m=>s(n.id,m),onUpdateData:m=>i(n.id,m)})]})]})}const h=[...e.map(b=>({type:"trigger",label:b.label,icon:b.icon??l.jsx(Li,{className:"h-3.5 w-3.5"}),color:"bg-amber-500",definitionId:b.id})),{type:"condition",label:u("workflow.condition"),icon:l.jsx(Mr,{className:"h-3.5 w-3.5"}),color:"bg-blue-500"},...t.map(b=>({type:"action",label:b.label,icon:b.icon??l.jsx(Ri,{className:"h-3.5 w-3.5"}),color:"bg-green-500",definitionId:b.id})),{type:"delay",label:u("workflow.delayWait"),icon:l.jsx(Ci.Clock,{className:"h-3.5 w-3.5"}),color:"bg-purple-500"}],d=h.filter(b=>b.type==="trigger"),f=h.filter(b=>b.type==="condition"),g=h.filter(b=>b.type==="action"),p=h.filter(b=>b.type==="delay"),y=(b,m)=>l.jsxs("div",{className:"space-y-1.5",children:[l.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:b}),m.map((v,x)=>l.jsxs("button",{disabled:r,className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm transition-colors hover:bg-muted disabled:opacity-50 disabled:cursor-not-allowed",onClick:()=>o(v.type,void 0,v.definitionId),children:[l.jsx("div",{className:re.cn("flex h-6 w-6 items-center justify-center rounded text-white",v.color),children:v.icon}),l.jsx("span",{className:"truncate",children:v.label})]},`${v.type}-${v.definitionId??x}`))]});return l.jsxs("div",{className:re.cn("flex h-full w-[280px] flex-col border-l bg-background",c),children:[l.jsxs("div",{className:"px-3 py-2.5 border-b",children:[l.jsx("h3",{className:"text-sm font-semibold",children:u("workflow.nodePalette")}),l.jsx("p",{className:"text-[10px] text-muted-foreground",children:u("workflow.clickToAdd")})]}),l.jsx(_e.ScrollArea,{className:"flex-1 px-3 py-3",children:l.jsxs("div",{className:"space-y-4",children:[d.length>0&&y(u("workflow.triggers"),d),f.length>0&&y(u("workflow.logic"),f),g.length>0&&y(u("workflow.actions"),g),p.length>0&&y(u("workflow.timing"),p)]})})]})}let Fm=0;function Xm(){return`wf_node_${Date.now()}_${++Fm}`}const Ym={trigger:"New Trigger",condition:"Condition",action:"New Action",delay:"Wait"};function Al({value:e,defaultValue:t,onChange:n,triggers:r=[],actions:o=[]}){const s=e??t??{nodes:[],edges:[]},[i,a,c]=yl(s.nodes),[u,h,d]=bl(s.edges),[f,g]=le.useState(null);le.useEffect(()=>{e&&(a(e.nodes),h(e.edges))},[e,a,h]);const p=le.useCallback((C,S)=>{n==null||n({nodes:C,edges:S})},[n]),y=le.useCallback(C=>{h(S=>{const j=$o({...C,type:"workflowEdge",animated:!0},S);return p(i,j),j})},[h,i,p]),b=le.useCallback((C,S,j)=>{let E=Ym[C],M,A;if(C==="trigger"&&j){const R=r.find(N=>N.id===j);R&&(E=R.label,M=R.icon,A=R.description)}else if(C==="action"&&j){const R=o.find(N=>N.id===j);R&&(E=R.label,M=R.icon,A=R.description)}const D={type:C,label:E,description:A,icon:M,config:{},definitionId:j,branches:C==="condition"?[{id:"true",label:"Yes"},{id:"false",label:"No"}]:void 0},k={id:Xm(),type:`${C}Node`,position:S??{x:250,y:(i.length+1)*120},data:D};a(R=>{const N=[...R,k];return p(N,u),N})},[i,u,r,o,a,p]),m=le.useCallback((C,S)=>{a(j=>{const E=j.map(M=>{if(M.id!==C)return M;const A=M.data;return{...M,data:{...A,config:{...A.config,...S}}}});return p(E,u),E})},[u,a,p]),v=le.useCallback((C,S)=>{a(j=>{const E=j.map(M=>{if(M.id!==C)return M;const A=M.data;return{...M,data:{...A,...S}}});return p(E,u),E})},[u,a,p]),x=le.useCallback(C=>{a(S=>{const j=S.filter(E=>E.id!==C);return h(E=>{const M=E.filter(A=>A.source!==C&&A.target!==C);return p(j,M),M}),j}),f===C&&g(null)},[a,h,f,p]),w=le.useMemo(()=>f?i.find(C=>C.id===f):void 0,[i,f]);return{nodes:i,edges:u,onNodesChange:c,onEdgesChange:d,onConnect:y,addNode:b,updateNodeConfig:m,updateNodeData:v,deleteNode:x,selectedNodeId:f,setSelectedNodeId:g,selectedNode:w}}function qm({value:e,defaultValue:t,onChange:n,triggers:r=[],actions:o=[],readOnly:s=!1,height:i=600,className:a}){const c=Al({value:e,defaultValue:t,onChange:n,triggers:r,actions:o}),{onNodesChange:u,onEdgesChange:h,onConnect:d,addNode:f,updateNodeConfig:g,updateNodeData:p,setSelectedNodeId:y,selectedNode:b}=c,m=c.nodes,v=c.edges;return l.jsxs("div",{className:re.cn("flex overflow-hidden rounded-lg border bg-background",a),style:{height:i},children:[l.jsx("div",{className:"flex-1",children:l.jsx(Pl,{nodes:m,edges:v,onNodesChange:u,onEdgesChange:h,onConnect:d,onNodeClick:y,readOnly:s})}),l.jsx(Ll,{triggers:r,actions:o,selectedNode:b,readOnly:s,onAddNode:f,onUpdateConfig:g,onUpdateData:(x,w)=>p(x,w),onDeselectNode:()=>y(null)})]})}function Ol(e){return l.jsx(Yo,{children:l.jsx(qm,{...e})})}Ol.displayName="WorkflowBuilder";function $l({widgetRegistry:e,onAddWidget:t,className:n}){const{t:r}=ye.useLocale(),[o,s]=le.useState(!1),i=le.useMemo(()=>{const c={};for(const u of e){const h=u.category??"General";c[h]||(c[h]=[]),c[h].push(u)}return c},[e]),a=c=>{t(c),s(!1)};return l.jsxs(rn.Dialog,{open:o,onOpenChange:s,children:[l.jsx(rn.DialogTrigger,{asChild:!0,children:l.jsxs(Ve.Button,{variant:"outline",size:"sm",className:re.cn("gap-1.5",n),children:[l.jsx(Nn.Plus,{className:"h-3.5 w-3.5"}),r("dashboard.addWidget")]})}),l.jsxs(rn.DialogContent,{className:"max-w-lg",children:[l.jsxs(rn.DialogHeader,{children:[l.jsx(rn.DialogTitle,{children:r("dashboard.addWidget")}),l.jsx(rn.DialogDescription,{children:r("dashboard.chooseWidget")})]}),l.jsx(_e.ScrollArea,{className:"max-h-[400px]",children:l.jsx("div",{className:"space-y-4 py-2",children:Object.entries(i).map(([c,u])=>l.jsxs("div",{className:"space-y-2",children:[l.jsx("h4",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:c}),l.jsx("div",{className:"grid grid-cols-2 gap-2",children:u.map(h=>l.jsxs("button",{className:"flex items-start gap-3 rounded-lg border p-3 text-left transition-colors hover:bg-muted/50 hover:border-primary/30",onClick:()=>a(h.id),children:[h.icon&&l.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",children:h.icon}),l.jsxs("div",{className:"min-w-0",children:[l.jsx("p",{className:"text-sm font-medium leading-tight",children:h.label}),h.description&&l.jsx("p",{className:"text-[11px] text-muted-foreground leading-tight mt-0.5",children:h.description})]})]},h.id))})]},c))})})]})]})}function Bl({isEditing:e,onToggleEditing:t,widgetRegistry:n,onAddWidget:r,className:o}){const{t:s}=ye.useLocale();return l.jsxs("div",{className:re.cn("flex items-center justify-between rounded-lg border bg-background px-3 py-2",o),children:[l.jsx("div",{className:"flex items-center gap-2",children:e&&l.jsx($l,{widgetRegistry:n,onAddWidget:r})}),l.jsx(Ve.Button,{variant:e?"default":"outline",size:"sm",className:"gap-1.5",onClick:t,children:e?l.jsxs(l.Fragment,{children:[l.jsx(eu.Eye,{className:"h-3.5 w-3.5"}),s("dashboard.done")]}):l.jsxs(l.Fragment,{children:[l.jsx(Vn.PenLine,{className:"h-3.5 w-3.5"}),s("dashboard.edit")]})})]})}function Cn(e){const{margin:t,containerPadding:n,containerWidth:r,cols:o}=e;return(r-t[0]*(o-1)-n[0]*2)/o}function wn(e,t,n){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*n):e}function Dn(e,t,n,r,o,s,i){const{margin:a,containerPadding:c,rowHeight:u}=e,h=Cn(e);let d,f,g,p;if(i?(d=Math.round(i.width),f=Math.round(i.height)):(d=wn(r,h,a[0]),f=wn(o,u,a[1])),s?(g=Math.round(s.top),p=Math.round(s.left)):i?(g=Math.round(i.top),p=Math.round(i.left)):(g=Math.round((u+a[1])*n+c[1]),p=Math.round((h+a[0])*t+c[0])),!s&&!i){if(Number.isFinite(r)){const b=Math.round((h+a[0])*(t+r)+c[0])-p-d;b!==a[0]&&(d+=b-a[0])}if(Number.isFinite(o)){const b=Math.round((u+a[1])*(n+o)+c[1])-g-f;b!==a[1]&&(f+=b-a[1])}}return{top:g,left:p,width:d,height:f}}function Gm(e,t,n,r,o){const{margin:s,containerPadding:i,cols:a,rowHeight:c,maxRows:u}=e,h=Cn(e);let d=Math.round((n-i[0])/(h+s[0])),f=Math.round((t-i[1])/(c+s[1]));return d=jr(d,0,a-r),f=jr(f,0,u-o),{x:d,y:f}}function lr(e,t,n){const{margin:r,containerPadding:o,rowHeight:s}=e,i=Cn(e),a=Math.round((n-o[0])/(i+r[0])),c=Math.round((t-o[1])/(s+r[1]));return{x:a,y:c}}function Km(e,t,n){const{margin:r,rowHeight:o}=e,s=Cn(e),i=Math.max(1,Math.round((t+r[0])/(s+r[0]))),a=Math.max(1,Math.round((n+r[1])/(o+r[1])));return{w:i,h:a}}function jr(e,t,n){return Math.max(Math.min(e,n),t)}function qo(e,t){return!(e.i===t.i||e.x+e.w<=t.x||e.x>=t.x+t.w||e.y+e.h<=t.y||e.y>=t.y+t.h)}function _r(e,t){for(let n=0;n<e.length;n++){const r=e[n];if(r!==void 0&&qo(r,t))return r}}function Hl(e,t){return e.filter(n=>qo(n,t))}function Um(e,t){return t==="horizontal"?Zm(e):t==="vertical"||t==="wrap"?jo(e):[...e]}function jo(e){return[...e].sort((t,n)=>t.y!==n.y?t.y-n.y:t.x-n.x)}function Zm(e){return[...e].sort((t,n)=>t.x!==n.x?t.x-n.x:t.y-n.y)}function Go(e){let t=0;for(let n=0;n<e.length;n++){const r=e[n];if(r!==void 0){const o=r.y+r.h;o>t&&(t=o)}}return t}function Wt(e,t){for(let n=0;n<e.length;n++){const r=e[n];if(r!==void 0&&r.i===t)return r}}function Ko(e){return e.filter(t=>t.static===!0)}function vn(e){return{i:e.i,x:e.x,y:e.y,w:e.w,h:e.h,minW:e.minW,maxW:e.maxW,minH:e.minH,maxH:e.maxH,moved:!!e.moved,static:!!e.static,isDraggable:e.isDraggable,isResizable:e.isResizable,resizeHandles:e.resizeHandles,constraints:e.constraints,isBounded:e.isBounded}}function Vl(e){const t=new Array(e.length);for(let n=0;n<e.length;n++){const r=e[n];r!==void 0&&(t[n]=vn(r))}return t}function Jm(e,t){const n=new Array(e.length);for(let r=0;r<e.length;r++){const o=e[r];o!==void 0&&(t.i===o.i?n[r]=t:n[r]=o)}return n}function Qm(e,t,n){let r=Wt(e,t);return r?(r=n(vn(r)),[Jm(e,r),r]):[[...e],null]}function ex(e,t){const n=Ko(e);for(let r=0;r<e.length;r++){const o=e[r];if(o!==void 0)if(o.x+o.w>t.cols&&(o.x=t.cols-o.w),o.x<0&&(o.x=0,o.w=t.cols),!o.static)n.push(o);else for(;_r(n,o);)o.y++}return e}function Ft(e,t,n,r,o,s,i,a,c){if(t.static&&t.isDraggable!==!0)return[...e];if(t.y===r&&t.x===n)return[...e];const u=t.x,h=t.y;typeof n=="number"&&(t.x=n),typeof r=="number"&&(t.y=r),t.moved=!0;let d=Um(e,i);(i==="vertical"&&typeof r=="number"?h>=r:i==="horizontal"&&typeof n=="number"?u>=n:!1)&&(d=d.reverse());const g=Hl(d,t),p=g.length>0;if(p&&c)return Vl(e);if(p&&s)return t.x=u,t.y=h,t.moved=!1,e;let y=[...e];for(let b=0;b<g.length;b++){const m=g[b];m!==void 0&&(m.moved||(m.static?y=ci(y,m,t,o,i):y=ci(y,t,m,o,i)))}return y}function ci(e,t,n,r,o,s){const i=o==="horizontal",a=o==="vertical",c=t.static;if(r){r=!1;const d={x:i?Math.max(t.x-n.w,0):n.x,y:a?Math.max(t.y-n.h,0):n.y,w:n.w,h:n.h,i:"-1"},f=_r(e,d),g=f!==void 0&&f.y+f.h>t.y,p=f!==void 0&&t.x+t.w>f.x;if(!f)return Ft(e,n,i?d.x:void 0,a?d.y:void 0,r,c,o);if(g&&a)return Ft(e,n,void 0,n.y+1,r,c,o);if(g&&o===null)return t.y=n.y,n.y=n.y+n.h,[...e];if(p&&i)return Ft(e,t,n.x,void 0,r,c,o)}const u=i?n.x+1:void 0,h=a?n.y+1:void 0;return u===void 0&&h===void 0?[...e]:Ft(e,n,u,h,r,c,o)}function un(e,t,n){return Math.max(t,Math.min(n,e))}var tx={name:"gridBounds",constrainPosition(e,t,n,{cols:r,maxRows:o}){return{x:un(t,0,Math.max(0,r-e.w)),y:un(n,0,Math.max(0,o-e.h))}},constrainSize(e,t,n,r,{cols:o,maxRows:s}){const i=r==="w"||r==="nw"||r==="sw"?e.x+e.w:o-e.x,a=r==="n"||r==="nw"||r==="ne"?e.y+e.h:s-e.y;return{w:un(t,1,Math.max(1,i)),h:un(n,1,Math.max(1,a))}}},nx={name:"minMaxSize",constrainSize(e,t,n){return{w:un(t,e.minW??1,e.maxW??1/0),h:un(n,e.minH??1,e.maxH??1/0)}}},Wl=[tx,nx];function cr(e,t,n,r,o){let s={x:n,y:r};for(const i of e)i.constrainPosition&&(s=i.constrainPosition(t,s.x,s.y,o));if(t.constraints)for(const i of t.constraints)i.constrainPosition&&(s=i.constrainPosition(t,s.x,s.y,o));return s}function rx(e,t,n,r,o,s){let i={w:n,h:r};for(const a of e)a.constrainSize&&(i=a.constrainSize(t,i.w,i.h,o,s));if(t.constraints)for(const a of t.constraints)a.constrainSize&&(i=a.constrainSize(t,i.w,i.h,o,s));return i}function Fl({top:e,left:t,width:n,height:r}){const o=`translate(${t}px,${e}px)`;return{transform:o,WebkitTransform:o,MozTransform:o,msTransform:o,OTransform:o,width:`${n}px`,height:`${r}px`,position:"absolute"}}function ox({top:e,left:t,width:n,height:r}){return{top:`${e}px`,left:`${t}px`,width:`${n}px`,height:`${r}px`,position:"absolute"}}function ui(e){return e*100+"%"}function sx(e,t,n,r){return e+n>r?t:n}function Xl(e,t,n){return e<0?t:n}function ix(e){return Math.max(0,e)}function Er(e){return Math.max(0,e)}var Uo=(e,t,n)=>{const{left:r,height:o,width:s}=t,i=e.top-(o-e.height);return{left:r,width:s,height:Xl(i,e.height,o),top:Er(i)}},Zo=(e,t,n)=>{const{top:r,left:o,height:s,width:i}=t;return{top:r,height:s,width:sx(e.left,e.width,i,n),left:ix(o)}},Jo=(e,t,n)=>{const{top:r,height:o,width:s}=t,i=e.left+e.width-s;return i<0?{height:o,width:e.left+e.width,top:Er(r),left:0}:{height:o,width:s,top:Er(r),left:i}},Qo=(e,t,n)=>{const{top:r,left:o,height:s,width:i}=t;return{width:i,left:o,height:Xl(r,e.height,s),top:Er(r)}},ax=(e,t,n)=>Uo(e,Zo(e,t,n)),lx=(e,t,n)=>Uo(e,Jo(e,t)),cx=(e,t,n)=>Qo(e,Zo(e,t,n)),ux=(e,t,n)=>Qo(e,Jo(e,t)),dx={n:Uo,ne:ax,e:Zo,se:cx,s:Qo,sw:ux,w:Jo,nw:lx};function fx(e,t,n,r){const o=dx[e];return o?o(t,{...t,...n},r):n}var hx={type:"transform",scale:1,calcStyle(e){return Fl(e)}},px=hx,gx={cols:12,rowHeight:150,margin:[10,10],containerPadding:null,maxRows:1/0},mx={enabled:!0,bounded:!1,threshold:3},xx={enabled:!0,handles:["se"]},yx={enabled:!1,defaultItem:{w:1,h:1}};function Yl(e,t,n,r,o){const s="h";t[r]+=1;const i=e.findIndex(c=>c.i===t.i),a=o??Ko(e).length>0;for(let c=i+1;c<e.length;c++){const u=e[c];if(u!==void 0&&!u.static){if(!a&&u.y>t.y+t.h)break;qo(t,u)&&Yl(e,u,n+t[s],r,a)}}t[r]=n}function bx(e,t,n,r){for(t.x=Math.max(t.x,0),t.y=Math.max(t.y,0),t.y=Math.min(r,t.y);t.y>0&&!_r(e,t);)t.y--;let o;for(;(o=_r(e,t))!==void 0;)Yl(n,t,o.y+o.h,"y");return t.y=Math.max(t.y,0),t}var es={type:"vertical",allowOverlap:!1,compact(e,t){const n=Ko(e);let r=Go(n);const o=jo(e),s=new Array(e.length);for(let i=0;i<o.length;i++){const a=o[i];if(a===void 0)continue;let c=vn(a);c.static||(c=bx(n,c,o,r),r=Math.max(r,c.y+c.h),n.push(c));const u=e.indexOf(a);s[u]=c,c.moved=!1}return s}},wx={...es,allowOverlap:!0,compact(e,t){return Vl(e)}};function vx(e,t=!1,n=!1){let r;return t?r=wx:r=es,n?{...r,preventCollision:n}:r}function ql(e){return function(n,r,o,s,i,a,c){return e(n,r,c)}}function Vr(e){return function(n,r,o,s){if(!n||!r||typeof n!="object"||typeof r!="object")return e(n,r,o,s);var i=s.get(n),a=s.get(r);if(i&&a)return i===r&&a===n;s.set(n,r),s.set(r,n);var c=e(n,r,o,s);return s.delete(n),s.delete(r),c}}function Gl(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}function di(e){return e.constructor===Object||e.constructor==null}function fi(e){return typeof e.then=="function"}function Wr(e,t){return e===t||e!==e&&t!==t}var Nx="[object Arguments]",Sx="[object Boolean]",Cx="[object Date]",jx="[object RegExp]",_x="[object Map]",Ex="[object Number]",kx="[object Object]",Mx="[object Set]",Dx="[object String]",hi=Object.prototype.toString;function Fr(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areMapsEqual,o=e.areObjectsEqual,s=e.areRegExpsEqual,i=e.areSetsEqual,a=e.createIsNestedEqual,c=a(u);function u(h,d,f){if(h===d)return!0;if(!h||!d||typeof h!="object"||typeof d!="object")return h!==h&&d!==d;if(di(h)&&di(d))return o(h,d,c,f);var g=Array.isArray(h),p=Array.isArray(d);if(g||p)return g===p&&t(h,d,c,f);var y=hi.call(h);return y!==hi.call(d)?!1:y===Cx?n(h,d,c,f):y===jx?s(h,d,c,f):y===_x?r(h,d,c,f):y===Mx?i(h,d,c,f):y===kx||y===Nx?fi(h)||fi(d)?!1:o(h,d,c,f):y===Sx||y===Ex||y===Dx?Wr(h.valueOf(),d.valueOf()):!1}return u}function Kl(e,t,n,r){var o=e.length;if(t.length!==o)return!1;for(;o-- >0;)if(!n(e[o],t[o],o,o,e,t,r))return!1;return!0}var Px=Vr(Kl);function Ul(e,t){return Wr(e.valueOf(),t.valueOf())}function Zl(e,t,n,r){var o=e.size===t.size;if(!o)return!1;if(!e.size)return!0;var s={},i=0;return e.forEach(function(a,c){if(o){var u=!1,h=0;t.forEach(function(d,f){!u&&!s[h]&&(u=n(c,f,i,h,e,t,r)&&n(a,d,c,f,e,t,r))&&(s[h]=!0),h++}),i++,o=u}}),o}var Ix=Vr(Zl),Rx="_owner",zx=Object.prototype.hasOwnProperty;function Jl(e,t,n,r){var o=Object.keys(e),s=o.length;if(Object.keys(t).length!==s)return!1;for(var i;s-- >0;){if(i=o[s],i===Rx){var a=!!e.$$typeof,c=!!t.$$typeof;if((a||c)&&a!==c)return!1}if(!zx.call(t,i)||!n(e[i],t[i],i,i,e,t,r))return!1}return!0}var Tx=Vr(Jl);function Ql(e,t){return e.source===t.source&&e.flags===t.flags}function ec(e,t,n,r){var o=e.size===t.size;if(!o)return!1;if(!e.size)return!0;var s={};return e.forEach(function(i,a){if(o){var c=!1,u=0;t.forEach(function(h,d){!c&&!s[u]&&(c=n(i,h,a,d,e,t,r))&&(s[u]=!0),u++}),o=c}}),o}var Lx=Vr(ec),tc=Object.freeze({areArraysEqual:Kl,areDatesEqual:Ul,areMapsEqual:Zl,areObjectsEqual:Jl,areRegExpsEqual:Ql,areSetsEqual:ec,createIsNestedEqual:ql}),nc=Object.freeze({areArraysEqual:Px,areDatesEqual:Ul,areMapsEqual:Ix,areObjectsEqual:Tx,areRegExpsEqual:Ql,areSetsEqual:Lx,createIsNestedEqual:ql}),Ax=Fr(tc);function sn(e,t){return Ax(e,t,void 0)}Fr(Gl(tc,{createIsNestedEqual:function(){return Wr}}));Fr(nc);Fr(Gl(nc,{createIsNestedEqual:function(){return Wr}}));var Xr={exports:{}},rc={};const Ox=Te.getAugmentedNamespace(re.clsx$1);var Pe={},St={};Object.defineProperty(St,"__esModule",{value:!0});St.dontSetMe=Wx;St.findInArray=$x;St.int=Vx;St.isFunction=Bx;St.isNum=Hx;function $x(e,t){for(let n=0,r=e.length;n<r;n++)if(t.apply(t,[e[n],n,e]))return e[n]}function Bx(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Function]"}function Hx(e){return typeof e=="number"&&!isNaN(e)}function Vx(e){return parseInt(e,10)}function Wx(e,t,n){if(e[t])return new Error(`Invalid prop ${t} passed to ${n} - do not set this, set it on the child.`)}var Kt={};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.browserPrefixToKey=sc;Kt.browserPrefixToStyle=Fx;Kt.default=void 0;Kt.getPrefix=oc;const io=["Moz","Webkit","O","ms"];function oc(){var n,r;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const t=(r=(n=window.document)==null?void 0:n.documentElement)==null?void 0:r.style;if(!t||e in t)return"";for(let o=0;o<io.length;o++)if(sc(e,io[o])in t)return io[o];return""}function sc(e,t){return t?`${t}${Xx(e)}`:e}function Fx(e,t){return t?`-${t.toLowerCase()}-${e}`:e}function Xx(e){let t="",n=!0;for(let r=0;r<e.length;r++)n?(t+=e[r].toUpperCase(),n=!1):e[r]==="-"?n=!0:t+=e[r];return t}Kt.default=oc();Object.defineProperty(Pe,"__esModule",{value:!0});Pe.addClassName=lc;Pe.addEvent=qx;Pe.addUserSelectStyles=oy;Pe.createCSSTransform=ey;Pe.createSVGTransform=ty;Pe.getTouch=ny;Pe.getTouchIdentifier=ry;Pe.getTranslation=ts;Pe.innerHeight=Zx;Pe.innerWidth=Jx;Pe.matchesSelector=ac;Pe.matchesSelectorAndParentsTo=Yx;Pe.offsetXYFromParent=Qx;Pe.outerHeight=Kx;Pe.outerWidth=Ux;Pe.removeClassName=cc;Pe.removeEvent=Gx;Pe.scheduleRemoveUserSelectStyles=sy;var ot=St,pi=ic(Kt);function ic(e,t){if(typeof WeakMap=="function")var n=new WeakMap,r=new WeakMap;return(ic=function(o,s){if(!s&&o&&o.__esModule)return o;var i,a,c={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return c;if(i=s?r:n){if(i.has(o))return i.get(o);i.set(o,c)}for(const u in o)u!=="default"&&{}.hasOwnProperty.call(o,u)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,u))&&(a.get||a.set)?i(c,u,a):c[u]=o[u]);return c})(e,t)}let ur="";function ac(e,t){return ur||(ur=(0,ot.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(n){return(0,ot.isFunction)(e[n])})),(0,ot.isFunction)(e[ur])?e[ur](t):!1}function Yx(e,t,n){let r=e;do{if(ac(r,t))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1}function qx(e,t,n,r){if(!e)return;const o={capture:!0,...r};e.addEventListener?e.addEventListener(t,n,o):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n}function Gx(e,t,n,r){if(!e)return;const o={capture:!0,...r};e.removeEventListener?e.removeEventListener(t,n,o):e.detachEvent?e.detachEvent("on"+t,n):e["on"+t]=null}function Kx(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,ot.int)(n.borderTopWidth),t+=(0,ot.int)(n.borderBottomWidth),t}function Ux(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,ot.int)(n.borderLeftWidth),t+=(0,ot.int)(n.borderRightWidth),t}function Zx(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,ot.int)(n.paddingTop),t-=(0,ot.int)(n.paddingBottom),t}function Jx(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,ot.int)(n.paddingLeft),t-=(0,ot.int)(n.paddingRight),t}function Qx(e,t,n){const o=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect(),s=(e.clientX+t.scrollLeft-o.left)/n,i=(e.clientY+t.scrollTop-o.top)/n;return{x:s,y:i}}function ey(e,t){const n=ts(e,t,"px");return{[(0,pi.browserPrefixToKey)("transform",pi.default)]:n}}function ty(e,t){return ts(e,t,"")}function ts(e,t,n){let{x:r,y:o}=e,s=`translate(${r}${n},${o}${n})`;if(t){const i=`${typeof t.x=="string"?t.x:t.x+n}`,a=`${typeof t.y=="string"?t.y:t.y+n}`;s=`translate(${i}, ${a})`+s}return s}function ny(e,t){return e.targetTouches&&(0,ot.findInArray)(e.targetTouches,n=>t===n.identifier)||e.changedTouches&&(0,ot.findInArray)(e.changedTouches,n=>t===n.identifier)}function ry(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier}function oy(e){if(!e)return;let t=e.getElementById("react-draggable-style-el");t||(t=e.createElement("style"),t.type="text/css",t.id="react-draggable-style-el",t.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
|
|
109
109
|
`,t.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
|
|
110
110
|
`,e.getElementsByTagName("head")[0].appendChild(t)),e.body&&lc(e.body,"react-draggable-transparent-selection")}function sy(e){window.requestAnimationFrame?window.requestAnimationFrame(()=>{gi(e)}):gi(e)}function gi(e){if(e)try{if(e.body&&cc(e.body,"react-draggable-transparent-selection"),e.selection)e.selection.empty();else{const t=(e.defaultView||window).getSelection();t&&t.type!=="Caret"&&t.removeAllRanges()}}catch{}}function lc(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp(`(?:^|\\s)${t}(?!\\S)`))||(e.className+=` ${t}`)}function cc(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp(`(?:^|\\s)${t}(?!\\S)`,"g"),"")}var Ct={};Object.defineProperty(Ct,"__esModule",{value:!0});Ct.canDragX=ly;Ct.canDragY=cy;Ct.createCoreData=dy;Ct.createDraggableData=fy;Ct.getBoundPosition=iy;Ct.getControlPosition=uy;Ct.snapToGrid=ay;var tt=St,dn=Pe;function iy(e,t,n){if(!e.props.bounds)return[t,n];let{bounds:r}=e.props;r=typeof r=="string"?r:hy(r);const o=ns(e);if(typeof r=="string"){const{ownerDocument:s}=o,i=s.defaultView;let a;if(r==="parent"?a=o.parentNode:a=o.getRootNode().querySelector(r),!(a instanceof i.HTMLElement))throw new Error('Bounds selector "'+r+'" could not find an element.');const c=a,u=i.getComputedStyle(o),h=i.getComputedStyle(c);r={left:-o.offsetLeft+(0,tt.int)(h.paddingLeft)+(0,tt.int)(u.marginLeft),top:-o.offsetTop+(0,tt.int)(h.paddingTop)+(0,tt.int)(u.marginTop),right:(0,dn.innerWidth)(c)-(0,dn.outerWidth)(o)-o.offsetLeft+(0,tt.int)(h.paddingRight)-(0,tt.int)(u.marginRight),bottom:(0,dn.innerHeight)(c)-(0,dn.outerHeight)(o)-o.offsetTop+(0,tt.int)(h.paddingBottom)-(0,tt.int)(u.marginBottom)}}return(0,tt.isNum)(r.right)&&(t=Math.min(t,r.right)),(0,tt.isNum)(r.bottom)&&(n=Math.min(n,r.bottom)),(0,tt.isNum)(r.left)&&(t=Math.max(t,r.left)),(0,tt.isNum)(r.top)&&(n=Math.max(n,r.top)),[t,n]}function ay(e,t,n){const r=Math.round(t/e[0])*e[0],o=Math.round(n/e[1])*e[1];return[r,o]}function ly(e){return e.props.axis==="both"||e.props.axis==="x"}function cy(e){return e.props.axis==="both"||e.props.axis==="y"}function uy(e,t,n){const r=typeof t=="number"?(0,dn.getTouch)(e,t):null;if(typeof t=="number"&&!r)return null;const o=ns(n),s=n.props.offsetParent||o.offsetParent||o.ownerDocument.body;return(0,dn.offsetXYFromParent)(r||e,s,n.props.scale)}function dy(e,t,n){const r=!(0,tt.isNum)(e.lastX),o=ns(e);return r?{node:o,deltaX:0,deltaY:0,lastX:t,lastY:n,x:t,y:n}:{node:o,deltaX:t-e.lastX,deltaY:n-e.lastY,lastX:e.lastX,lastY:e.lastY,x:t,y:n}}function fy(e,t){const n=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/n,y:e.state.y+t.deltaY/n,deltaX:t.deltaX/n,deltaY:t.deltaY/n,lastX:e.state.x,lastY:e.state.y}}function hy(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}function ns(e){const t=e.findDOMNode();if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}var Yr={},qr={};Object.defineProperty(qr,"__esModule",{value:!0});qr.default=py;function py(){}Object.defineProperty(Yr,"__esModule",{value:!0});Yr.default=void 0;var ao=uc(_),Ge=rs(Te.propTypesExports),gy=rs(ko),Fe=Pe,zt=Ct,lo=St,Pn=rs(qr);function rs(e){return e&&e.__esModule?e:{default:e}}function uc(e,t){if(typeof WeakMap=="function")var n=new WeakMap,r=new WeakMap;return(uc=function(o,s){if(!s&&o&&o.__esModule)return o;var i,a,c={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return c;if(i=s?r:n){if(i.has(o))return i.get(o);i.set(o,c)}for(const u in o)u!=="default"&&{}.hasOwnProperty.call(o,u)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,u))&&(a.get||a.set)?i(c,u,a):c[u]=o[u]);return c})(e,t)}function Ke(e,t,n){return(t=my(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function my(e){var t=xy(e,"string");return typeof t=="symbol"?t:t+""}function xy(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}const ct={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let Tt=ct.mouse,Gr=class extends ao.Component{constructor(){super(...arguments),Ke(this,"dragging",!1),Ke(this,"lastX",NaN),Ke(this,"lastY",NaN),Ke(this,"touchIdentifier",null),Ke(this,"mounted",!1),Ke(this,"handleDragStart",t=>{if(this.props.onMouseDown(t),!this.props.allowAnyClick&&typeof t.button=="number"&&t.button!==0)return!1;const n=this.findDOMNode();if(!n||!n.ownerDocument||!n.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:r}=n;if(this.props.disabled||!(t.target instanceof r.defaultView.Node)||this.props.handle&&!(0,Fe.matchesSelectorAndParentsTo)(t.target,this.props.handle,n)||this.props.cancel&&(0,Fe.matchesSelectorAndParentsTo)(t.target,this.props.cancel,n))return;t.type==="touchstart"&&!this.props.allowMobileScroll&&t.preventDefault();const o=(0,Fe.getTouchIdentifier)(t);this.touchIdentifier=o;const s=(0,zt.getControlPosition)(t,o,this);if(s==null)return;const{x:i,y:a}=s,c=(0,zt.createCoreData)(this,i,a);(0,Pn.default)("DraggableCore: handleDragStart: %j",c),(0,Pn.default)("calling",this.props.onStart),!(this.props.onStart(t,c)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,Fe.addUserSelectStyles)(r),this.dragging=!0,this.lastX=i,this.lastY=a,(0,Fe.addEvent)(r,Tt.move,this.handleDrag),(0,Fe.addEvent)(r,Tt.stop,this.handleDragStop))}),Ke(this,"handleDrag",t=>{const n=(0,zt.getControlPosition)(t,this.touchIdentifier,this);if(n==null)return;let{x:r,y:o}=n;if(Array.isArray(this.props.grid)){let a=r-this.lastX,c=o-this.lastY;if([a,c]=(0,zt.snapToGrid)(this.props.grid,a,c),!a&&!c)return;r=this.lastX+a,o=this.lastY+c}const s=(0,zt.createCoreData)(this,r,o);if((0,Pn.default)("DraggableCore: handleDrag: %j",s),this.props.onDrag(t,s)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const c=document.createEvent("MouseEvents");c.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(c)}return}this.lastX=r,this.lastY=o}),Ke(this,"handleDragStop",t=>{if(!this.dragging)return;const n=(0,zt.getControlPosition)(t,this.touchIdentifier,this);if(n==null)return;let{x:r,y:o}=n;if(Array.isArray(this.props.grid)){let c=r-this.lastX||0,u=o-this.lastY||0;[c,u]=(0,zt.snapToGrid)(this.props.grid,c,u),r=this.lastX+c,o=this.lastY+u}const s=(0,zt.createCoreData)(this,r,o);if(this.props.onStop(t,s)===!1||this.mounted===!1)return!1;const a=this.findDOMNode();a&&this.props.enableUserSelectHack&&(0,Fe.scheduleRemoveUserSelectStyles)(a.ownerDocument),(0,Pn.default)("DraggableCore: handleDragStop: %j",s),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,a&&((0,Pn.default)("DraggableCore: Removing handlers"),(0,Fe.removeEvent)(a.ownerDocument,Tt.move,this.handleDrag),(0,Fe.removeEvent)(a.ownerDocument,Tt.stop,this.handleDragStop))}),Ke(this,"onMouseDown",t=>(Tt=ct.mouse,this.handleDragStart(t))),Ke(this,"onMouseUp",t=>(Tt=ct.mouse,this.handleDragStop(t))),Ke(this,"onTouchStart",t=>(Tt=ct.touch,this.handleDragStart(t))),Ke(this,"onTouchEnd",t=>(Tt=ct.touch,this.handleDragStop(t)))}componentDidMount(){this.mounted=!0;const t=this.findDOMNode();t&&(0,Fe.addEvent)(t,ct.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const t=this.findDOMNode();if(t){const{ownerDocument:n}=t;(0,Fe.removeEvent)(n,ct.mouse.move,this.handleDrag),(0,Fe.removeEvent)(n,ct.touch.move,this.handleDrag),(0,Fe.removeEvent)(n,ct.mouse.stop,this.handleDragStop),(0,Fe.removeEvent)(n,ct.touch.stop,this.handleDragStop),(0,Fe.removeEvent)(t,ct.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,Fe.scheduleRemoveUserSelectStyles)(n)}}findDOMNode(){var t,n,r;return(t=this.props)!=null&&t.nodeRef?(r=(n=this.props)==null?void 0:n.nodeRef)==null?void 0:r.current:gy.default.findDOMNode(this)}render(){return ao.cloneElement(ao.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};Yr.default=Gr;Ke(Gr,"displayName","DraggableCore");Ke(Gr,"propTypes",{allowAnyClick:Ge.default.bool,allowMobileScroll:Ge.default.bool,children:Ge.default.node.isRequired,disabled:Ge.default.bool,enableUserSelectHack:Ge.default.bool,offsetParent:function(e,t){if(e[t]&&e[t].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:Ge.default.arrayOf(Ge.default.number),handle:Ge.default.string,cancel:Ge.default.string,nodeRef:Ge.default.object,onStart:Ge.default.func,onDrag:Ge.default.func,onStop:Ge.default.func,onMouseDown:Ge.default.func,scale:Ge.default.number,className:lo.dontSetMe,style:lo.dontSetMe,transform:lo.dontSetMe});Ke(Gr,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1});(function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DraggableCore",{enumerable:!0,get:function(){return c.default}}),e.default=void 0;var t=d(_),n=h(Te.propTypesExports),r=h(ko),o=Ox,s=Pe,i=Ct,a=St,c=h(Yr),u=h(qr);function h(m){return m&&m.__esModule?m:{default:m}}function d(m,v){if(typeof WeakMap=="function")var x=new WeakMap,w=new WeakMap;return(d=function(C,S){if(!S&&C&&C.__esModule)return C;var j,E,M={__proto__:null,default:C};if(C===null||typeof C!="object"&&typeof C!="function")return M;if(j=S?w:x){if(j.has(C))return j.get(C);j.set(C,M)}for(const A in C)A!=="default"&&{}.hasOwnProperty.call(C,A)&&((E=(j=Object.defineProperty)&&Object.getOwnPropertyDescriptor(C,A))&&(E.get||E.set)?j(M,A,E):M[A]=C[A]);return M})(m,v)}function f(){return f=Object.assign?Object.assign.bind():function(m){for(var v=1;v<arguments.length;v++){var x=arguments[v];for(var w in x)({}).hasOwnProperty.call(x,w)&&(m[w]=x[w])}return m},f.apply(null,arguments)}function g(m,v,x){return(v=p(v))in m?Object.defineProperty(m,v,{value:x,enumerable:!0,configurable:!0,writable:!0}):m[v]=x,m}function p(m){var v=y(m,"string");return typeof v=="symbol"?v:v+""}function y(m,v){if(typeof m!="object"||!m)return m;var x=m[Symbol.toPrimitive];if(x!==void 0){var w=x.call(m,v);if(typeof w!="object")return w;throw new TypeError("@@toPrimitive must return a primitive value.")}return(v==="string"?String:Number)(m)}class b extends t.Component{static getDerivedStateFromProps(v,x){let{position:w}=v,{prevPropsPosition:C}=x;return w&&(!C||w.x!==C.x||w.y!==C.y)?((0,u.default)("Draggable: getDerivedStateFromProps %j",{position:w,prevPropsPosition:C}),{x:w.x,y:w.y,prevPropsPosition:{...w}}):null}constructor(v){super(v),g(this,"onDragStart",(x,w)=>{if((0,u.default)("Draggable: onDragStart: %j",w),this.props.onStart(x,(0,i.createDraggableData)(this,w))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),g(this,"onDrag",(x,w)=>{if(!this.state.dragging)return!1;(0,u.default)("Draggable: onDrag: %j",w);const C=(0,i.createDraggableData)(this,w),S={x:C.x,y:C.y,slackX:0,slackY:0};if(this.props.bounds){const{x:E,y:M}=S;S.x+=this.state.slackX,S.y+=this.state.slackY;const[A,D]=(0,i.getBoundPosition)(this,S.x,S.y);S.x=A,S.y=D,S.slackX=this.state.slackX+(E-S.x),S.slackY=this.state.slackY+(M-S.y),C.x=S.x,C.y=S.y,C.deltaX=S.x-this.state.x,C.deltaY=S.y-this.state.y}if(this.props.onDrag(x,C)===!1)return!1;this.setState(S)}),g(this,"onDragStop",(x,w)=>{if(!this.state.dragging||this.props.onStop(x,(0,i.createDraggableData)(this,w))===!1)return!1;(0,u.default)("Draggable: onDragStop: %j",w);const S={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:E,y:M}=this.props.position;S.x=E,S.y=M}this.setState(S)}),this.state={dragging:!1,dragged:!1,x:v.position?v.position.x:v.defaultPosition.x,y:v.position?v.position.y:v.defaultPosition.y,prevPropsPosition:{...v.position},slackX:0,slackY:0,isElementSVG:!1},v.position&&!(v.onDrag||v.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){var v,x;return((x=(v=this.props)==null?void 0:v.nodeRef)==null?void 0:x.current)??r.default.findDOMNode(this)}render(){const{axis:v,bounds:x,children:w,defaultPosition:C,defaultClassName:S,defaultClassNameDragging:j,defaultClassNameDragged:E,position:M,positionOffset:A,scale:D,...k}=this.props;let R={},N=null;const P=!!!M||this.state.dragging,L=M||C,z={x:(0,i.canDragX)(this)&&P?this.state.x:L.x,y:(0,i.canDragY)(this)&&P?this.state.y:L.y};this.state.isElementSVG?N=(0,s.createSVGTransform)(z,A):R=(0,s.createCSSTransform)(z,A);const I=(0,o.clsx)(w.props.className||"",S,{[j]:this.state.dragging,[E]:this.state.dragged});return t.createElement(c.default,f({},k,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(w),{className:I,style:{...w.props.style,...R},transform:N}))}}e.default=b,g(b,"displayName","Draggable"),g(b,"propTypes",{...c.default.propTypes,axis:n.default.oneOf(["both","x","y","none"]),bounds:n.default.oneOfType([n.default.shape({left:n.default.number,right:n.default.number,top:n.default.number,bottom:n.default.number}),n.default.string,n.default.oneOf([!1])]),defaultClassName:n.default.string,defaultClassNameDragging:n.default.string,defaultClassNameDragged:n.default.string,defaultPosition:n.default.shape({x:n.default.number,y:n.default.number}),positionOffset:n.default.shape({x:n.default.oneOfType([n.default.number,n.default.string]),y:n.default.oneOfType([n.default.number,n.default.string])}),position:n.default.shape({x:n.default.number,y:n.default.number}),className:a.dontSetMe,style:a.dontSetMe,transform:a.dontSetMe}),g(b,"defaultProps",{...c.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})})(rc);const{default:dc,DraggableCore:yy}=rc;Xr.exports=dc;Xr.exports.default=dc;var by=Xr.exports.DraggableCore=yy,wy=Xr.exports,os={exports:{}},Zn={},ss={};ss.__esModule=!0;ss.cloneElement=_y;var vy=Ny(_);function Ny(e){return e&&e.__esModule?e:{default:e}}function mi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function xi(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?mi(Object(n),!0).forEach(function(r){Sy(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mi(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Sy(e,t,n){return(t=Cy(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Cy(e){var t=jy(e,"string");return typeof t=="symbol"?t:t+""}function jy(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function _y(e,t){return t.style&&e.props.style&&(t.style=xi(xi({},e.props.style),t.style)),t.className&&e.props.className&&(t.className=`${e.props.className} ${t.className}`),vy.default.cloneElement(e,t)}var Jn={};Jn.__esModule=!0;Jn.resizableProps=void 0;var se=Ey(Te.propTypesExports);function Ey(e){return e&&e.__esModule?e:{default:e}}Jn.resizableProps={axis:se.default.oneOf(["both","x","y","none"]),className:se.default.string,children:se.default.element.isRequired,draggableOpts:se.default.shape({allowAnyClick:se.default.bool,cancel:se.default.string,children:se.default.node,disabled:se.default.bool,enableUserSelectHack:se.default.bool,offsetParent:typeof Element<"u"?se.default.instanceOf(Element):se.default.any,grid:se.default.arrayOf(se.default.number),handle:se.default.string,nodeRef:se.default.object,onStart:se.default.func,onDrag:se.default.func,onStop:se.default.func,onMouseDown:se.default.func,scale:se.default.number}),height:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];const[r]=t;return r.axis==="both"||r.axis==="y"?se.default.number.isRequired(...t):se.default.number(...t)},handle:se.default.oneOfType([se.default.node,se.default.func]),handleSize:se.default.arrayOf(se.default.number),lockAspectRatio:se.default.bool,maxConstraints:se.default.arrayOf(se.default.number),minConstraints:se.default.arrayOf(se.default.number),onResizeStop:se.default.func,onResizeStart:se.default.func,onResize:se.default.func,resizeHandles:se.default.arrayOf(se.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),transformScale:se.default.number,width:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];const[r]=t;return r.axis==="both"||r.axis==="x"?se.default.number.isRequired(...t):se.default.number(...t)}};Zn.__esModule=!0;Zn.default=void 0;var an=fc(_),ky=wy,My=ss,Dy=Jn;const Py=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function fc(e,t){if(typeof WeakMap=="function")var n=new WeakMap,r=new WeakMap;return(fc=function(o,s){if(!s&&o&&o.__esModule)return o;var i,a,c={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return c;if(i=s?r:n){if(i.has(o))return i.get(o);i.set(o,c)}for(const u in o)u!=="default"&&{}.hasOwnProperty.call(o,u)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,u))&&(a.get||a.set)?i(c,u,a):c[u]=o[u]);return c})(e,t)}function _o(){return _o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_o.apply(null,arguments)}function Iy(e,t){if(e==null)return{};var n,r,o=Ry(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ry(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function yi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function co(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?yi(Object(n),!0).forEach(function(r){zy(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yi(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function zy(e,t,n){return(t=Ty(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ty(e){var t=Ly(e,"string");return typeof t=="symbol"?t:t+""}function Ly(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}let is=class extends an.Component{constructor(){super(...arguments),this.handleRefs={},this.lastHandleRect=null,this.slack=null,this.lastSize=null}componentWillUnmount(){this.resetData()}resetData(){this.lastHandleRect=this.slack=this.lastSize=null}runConstraints(t,n){const{minConstraints:r,maxConstraints:o,lockAspectRatio:s}=this.props;if(!r&&!o&&!s)return[t,n];if(s){const h=this.props.width/this.props.height,d=t-this.props.width,f=n-this.props.height;Math.abs(d)>Math.abs(f*h)?n=t/h:t=n*h}const[i,a]=[t,n];let[c,u]=this.slack||[0,0];return t+=c,n+=u,r&&(t=Math.max(r[0],t),n=Math.max(r[1],n)),o&&(t=Math.min(o[0],t),n=Math.min(o[1],n)),this.slack=[c+(i-t),u+(a-n)],[t,n]}resizeHandler(t,n){return(r,o)=>{var v;let{node:s,deltaX:i,deltaY:a}=o;t==="onResizeStart"&&this.resetData();const c=(this.props.axis==="both"||this.props.axis==="x")&&n!=="n"&&n!=="s",u=(this.props.axis==="both"||this.props.axis==="y")&&n!=="e"&&n!=="w";if(!c&&!u)return;const h=n[0],d=n[n.length-1],f=s.getBoundingClientRect();if(this.lastHandleRect!=null){if(d==="w"){const x=f.left-this.lastHandleRect.left;i+=x}if(h==="n"){const x=f.top-this.lastHandleRect.top;a+=x}}this.lastHandleRect=f,d==="w"&&(i=-i),h==="n"&&(a=-a);let g=this.props.width+(c?i/this.props.transformScale:0),p=this.props.height+(u?a/this.props.transformScale:0);[g,p]=this.runConstraints(g,p),t==="onResizeStop"&&this.lastSize&&({width:g,height:p}=this.lastSize);const y=g!==this.props.width||p!==this.props.height;t!=="onResizeStop"&&(this.lastSize={width:g,height:p});const b=typeof this.props[t]=="function"?this.props[t]:null;b&&!(t==="onResize"&&!y)&&((v=r.persist)==null||v.call(r),b(r,{node:s,size:{width:g,height:p},handle:n})),t==="onResizeStop"&&this.resetData()}}renderResizeHandle(t,n){const{handle:r}=this.props;if(!r)return an.createElement("span",{className:`react-resizable-handle react-resizable-handle-${t}`,ref:n});if(typeof r=="function")return r(t,n);const o=typeof r.type=="string",s=co({ref:n},o?{}:{handleAxis:t});return an.cloneElement(r,s)}render(){const t=this.props,{children:n,className:r,draggableOpts:o,width:s,height:i,handle:a,handleSize:c,lockAspectRatio:u,axis:h,minConstraints:d,maxConstraints:f,onResize:g,onResizeStop:p,onResizeStart:y,resizeHandles:b,transformScale:m}=t,v=Iy(t,Py);return(0,My.cloneElement)(n,co(co({},v),{},{className:`${r?`${r} `:""}react-resizable`,children:[...an.Children.toArray(n.props.children),...b.map(x=>{const w=this.handleRefs[x]??(this.handleRefs[x]=an.createRef());return an.createElement(ky.DraggableCore,_o({},o,{nodeRef:w,key:`resizableHandle-${x}`,onStop:this.resizeHandler("onResizeStop",x),onStart:this.resizeHandler("onResizeStart",x),onDrag:this.resizeHandler("onResize",x)}),this.renderResizeHandle(x,w))})]}))}};Zn.default=is;is.propTypes=Dy.resizableProps;is.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1};var Kr={};Kr.__esModule=!0;Kr.default=void 0;var uo=pc(_),Ay=hc(Te.propTypesExports),Oy=hc(Zn),$y=Jn;const By=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function hc(e){return e&&e.__esModule?e:{default:e}}function pc(e,t){if(typeof WeakMap=="function")var n=new WeakMap,r=new WeakMap;return(pc=function(o,s){if(!s&&o&&o.__esModule)return o;var i,a,c={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return c;if(i=s?r:n){if(i.has(o))return i.get(o);i.set(o,c)}for(const u in o)u!=="default"&&{}.hasOwnProperty.call(o,u)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,u))&&(a.get||a.set)?i(c,u,a):c[u]=o[u]);return c})(e,t)}function Eo(){return Eo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Eo.apply(null,arguments)}function bi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function kr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?bi(Object(n),!0).forEach(function(r){Hy(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bi(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Hy(e,t,n){return(t=Vy(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Vy(e){var t=Wy(e,"string");return typeof t=="symbol"?t:t+""}function Wy(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Fy(e,t){if(e==null)return{};var n,r,o=Xy(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Xy(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}class gc extends uo.Component{constructor(){super(...arguments),this.state={width:this.props.width,height:this.props.height,propsWidth:this.props.width,propsHeight:this.props.height},this.onResize=(t,n)=>{var o;const{size:r}=n;this.props.onResize?((o=t.persist)==null||o.call(t),this.setState(r,()=>this.props.onResize&&this.props.onResize(t,n))):this.setState(r)}}static getDerivedStateFromProps(t,n){return n.propsWidth!==t.width||n.propsHeight!==t.height?{width:t.width,height:t.height,propsWidth:t.width,propsHeight:t.height}:null}render(){const t=this.props,{handle:n,handleSize:r,onResize:o,onResizeStart:s,onResizeStop:i,draggableOpts:a,minConstraints:c,maxConstraints:u,lockAspectRatio:h,axis:d,width:f,height:g,resizeHandles:p,style:y,transformScale:b}=t,m=Fy(t,By);return uo.createElement(Oy.default,{axis:d,draggableOpts:a,handle:n,handleSize:r,height:this.state.height,lockAspectRatio:h,maxConstraints:u,minConstraints:c,onResizeStart:s,onResize:this.onResize,onResizeStop:i,resizeHandles:p,transformScale:b,width:this.state.width},uo.createElement("div",Eo({},m,{style:kr(kr({},y),{},{width:this.state.width+"px",height:this.state.height+"px"})})))}}Kr.default=gc;gc.propTypes=kr(kr({},$y.resizableProps),{},{children:Ay.default.element});os.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")};var Yy=os.exports.Resizable=Zn.default;os.exports.ResizableBox=Kr.default;function wi(e){const{children:t,cols:n,containerWidth:r,margin:o,containerPadding:s,rowHeight:i,maxRows:a,isDraggable:c,isResizable:u,isBounded:h,static:d,useCSSTransforms:f=!0,usePercentages:g=!1,transformScale:p=1,positionStrategy:y,dragThreshold:b=0,droppingPosition:m,className:v="",style:x,handle:w="",cancel:C="",x:S,y:j,w:E,h:M,minW:A=1,maxW:D=1/0,minH:k=1,maxH:R=1/0,i:N,resizeHandles:T,resizeHandle:P,constraints:L=Wl,layoutItem:z,layout:I=[],onDragStart:O,onDrag:B,onDragStop:$,onResizeStart:V,onResize:W,onResizeStop:Z}=e,[Y,J]=_.useState(!1),[H,F]=_.useState(!1),ee=_.useRef(null),X=_.useRef({left:0,top:0}),U=_.useRef({top:0,left:0,width:0,height:0}),q=_.useRef(void 0),ie=_.useRef(I);ie.current=I;const ae=_.useRef(null),ne=_.useRef(null),ve=_.useRef(!1),Xe=_.useRef({x:0,y:0}),fe=_.useRef(!1),ue=_.useMemo(()=>({cols:n,containerPadding:s,containerWidth:r,margin:o,maxRows:a,rowHeight:i}),[n,s,r,o,a,i]),Ie=_.useMemo(()=>({cols:n,maxRows:a,containerWidth:r,containerHeight:0,rowHeight:i,margin:o,layout:[]}),[n,a,r,i,o]),De=_.useCallback(()=>({...Ie,layout:ie.current}),[Ie]),We=_.useMemo(()=>z??{i:N,x:S,y:j,w:E,h:M,minW:A,maxW:D,minH:k,maxH:R},[z,N,S,j,E,M,A,D,k,R]),Dt=_.useCallback(he=>{if(y!=null&&y.calcStyle)return y.calcStyle(he);if(f)return Fl(he);const pe=ox(he);return g?{...pe,left:ui(he.left/r),width:ui(he.width/r)}:pe},[y,f,g,r]),Ye=_.useCallback((he,{node:pe})=>{if(!O)return;const{offsetParent:Ee}=pe;if(!Ee)return;const xe=Ee.getBoundingClientRect(),Re=pe.getBoundingClientRect(),Oe=Re.left/p,He=xe.left/p,$e=Re.top/p,Je=xe.top/p;let Qe;if(y!=null&&y.calcDragPosition){const oe=he;Qe=y.calcDragPosition(oe.clientX,oe.clientY,oe.clientX-Re.left,oe.clientY-Re.top)}else Qe={left:Oe-He+Ee.scrollLeft,top:$e-Je+Ee.scrollTop};if(X.current=Qe,b>0){const oe=he;Xe.current={x:oe.clientX,y:oe.clientY},ve.current=!0,fe.current=!1,J(!0);return}J(!0);const yt=lr(ue,Qe.top,Qe.left),{x:bt,y:K}=cr(L,We,yt.x,yt.y,De());O(N,bt,K,{e:he,node:pe,newPosition:Qe})},[O,p,ue,y,b,L,We,De,N]),et=_.useCallback((he,{node:pe,deltaX:Ee,deltaY:xe})=>{if(!B||!Y)return;const Re=he;if(ve.current&&!fe.current){const bt=Re.clientX-Xe.current.x,K=Re.clientY-Xe.current.y;if(Math.hypot(bt,K)<b)return;if(fe.current=!0,ve.current=!1,O){const te=lr(ue,X.current.top,X.current.left),{x:de,y:me}=cr(L,We,te.x,te.y,De());O(N,de,me,{e:he,node:pe,newPosition:X.current})}}let Oe=X.current.top+xe,He=X.current.left+Ee;if(h){const{offsetParent:bt}=pe;if(bt){const K=bt.clientHeight-wn(M,i,o[1]);Oe=jr(Oe,0,K);const oe=Cn(ue),te=r-wn(E,oe,o[0]);He=jr(He,0,te)}}const $e={top:Oe,left:He};X.current=$e;const Je=lr(ue,Oe,He),{x:Qe,y:yt}=cr(L,We,Je.x,Je.y,De());B(N,Qe,yt,{e:he,node:pe,newPosition:$e})},[B,O,Y,b,h,M,i,o,ue,r,E,N,L,We,De]),Ue=_.useCallback((he,{node:pe})=>{if(!$||!Y)return;const Ee=ve.current;if(ve.current=!1,fe.current=!1,Xe.current={x:0,y:0},Ee){J(!1),X.current={left:0,top:0};return}const{left:xe,top:Re}=X.current,Oe={top:Re,left:xe};J(!1),X.current={left:0,top:0};const He=lr(ue,Re,xe),{x:$e,y:Je}=cr(L,We,He.x,He.y,De());$(N,$e,Je,{e:he,node:pe,newPosition:Oe})},[$,Y,ue,L,We,De,N]);ae.current=Ye,ne.current=et;const Ze=_.useCallback((he,{node:pe,size:Ee,handle:xe},Re,Oe)=>{const He=Oe==="onResizeStart"?V:Oe==="onResize"?W:Z;if(!He)return;let $e;pe?$e=fx(xe,Re,Ee,r):$e={...Ee,top:Re.top,left:Re.left},U.current=$e;const Je=Km(ue,$e.width,$e.height),{w:Qe,h:yt}=rx(L,We,Je.w,Je.h,xe,De());He(N,Qe,yt,{e:he.nativeEvent,node:pe,size:$e,handle:xe})},[V,W,Z,r,ue,N,L,We,De]),Pt=_.useCallback((he,pe)=>{F(!0);const Ee=Dn(ue,S,j,E,M),xe={...pe,handle:pe.handle};Ze(he,xe,Ee,"onResizeStart")},[Ze,ue,S,j,E,M]),gt=_.useCallback((he,pe)=>{const Ee=Dn(ue,S,j,E,M),xe={...pe,handle:pe.handle};Ze(he,xe,Ee,"onResize")},[Ze,ue,S,j,E,M]),mt=_.useCallback((he,pe)=>{F(!1),U.current={top:0,left:0,width:0,height:0};const Ee=Dn(ue,S,j,E,M),xe={...pe,handle:pe.handle};Ze(he,xe,Ee,"onResizeStop")},[Ze,ue,S,j,E,M]);_.useEffect(()=>{var xe,Re;if(!m)return;const he=ee.current;if(!he)return;const pe=q.current||{left:0,top:0},Ee=Y&&(m.left!==pe.left||m.top!==pe.top);if(Y){if(Ee){const Oe=m.left-X.current.left,He=m.top-X.current.top,$e={node:he,deltaX:Oe,deltaY:He,lastX:X.current.left,lastY:X.current.top,x:m.left,y:m.top};(Re=ne.current)==null||Re.call(ne,m.e,$e)}}else{const Oe={node:he,deltaX:m.left,deltaY:m.top,lastX:0,lastY:0,x:m.left,y:m.top};(xe=ae.current)==null||xe.call(ae,m.e,Oe)}q.current=m},[m,Y,N]);const at=Dn(ue,S,j,E,M,Y?X.current:null,H?U.current:null),Ot=_.Children.only(t),$t=Dn(ue,0,0,1,1),Ut=[$t.width,$t.height],Zt=[1/0,1/0],qe=Ot.props,jn=qe.className,Jt=qe.style;let xt=_.cloneElement(Ot,{ref:ee,className:re.clsx("react-grid-item",jn,v,{static:d,resizing:H,"react-draggable":c,"react-draggable-dragging":Y,dropping:!!m,cssTransforms:f}),style:{...x,...Jt,...Dt(at)}});const Qt=P;return xt=l.jsx(Yy,{draggableOpts:{disabled:!u},className:u?void 0:"react-resizable-hide",width:at.width,height:at.height,minConstraints:Ut,maxConstraints:Zt,onResizeStart:Pt,onResize:gt,onResizeStop:mt,transformScale:p,resizeHandles:T,handle:Qt,children:xt}),xt=l.jsx(by,{disabled:!c,onStart:Ye,onDrag:et,onStop:Ue,handle:w,cancel:".react-resizable-handle"+(C?","+C:""),scale:p,nodeRef:ee,children:xt}),xt}var _t=()=>{},vi="react-grid-layout",mc=!1;try{mc=/firefox/i.test(navigator.userAgent)}catch{}function qy(e,t){const n=_.Children.toArray(e),r=_.Children.toArray(t);if(n.length!==r.length)return!1;for(let o=0;o<n.length;o++){const s=n[o],i=r[o];if((s==null?void 0:s.key)!==(i==null?void 0:i.key))return!1}return!0}function Ni(e,t,n,r){const o=[],s=new Set;_.Children.forEach(t,a=>{if(!_.isValidElement(a)||a.key===null)return;const c=String(a.key);s.add(c);const u=e.find(h=>h.i===c);if(u)o.push(vn(u));else{const d=a.props["data-grid"];d?o.push({i:c,x:d.x??0,y:d.y??0,w:d.w??1,h:d.h??1,minW:d.minW,maxW:d.maxW,minH:d.minH,maxH:d.maxH,static:d.static,isDraggable:d.isDraggable,isResizable:d.isResizable,resizeHandles:d.resizeHandles,isBounded:d.isBounded}):o.push({i:c,x:0,y:Go(o),w:1,h:1})}});const i=ex(o,{cols:n});return r.compact(i,n)}function Gy(e){const{children:t,width:n,gridConfig:r,dragConfig:o,resizeConfig:s,dropConfig:i,positionStrategy:a=px,compactor:c,constraints:u=Wl,layout:h=[],droppingItem:d,autoSize:f=!0,className:g="",style:p={},innerRef:y,onLayoutChange:b=_t,onDragStart:m=_t,onDrag:v=_t,onDragStop:x=_t,onResizeStart:w=_t,onResize:C=_t,onResizeStop:S=_t,onDrop:j=_t,onDropDragOver:E=_t}=e,M=_.useMemo(()=>({...gx,...r}),[r]),A=_.useMemo(()=>({...mx,...o}),[o]),D=_.useMemo(()=>({...xx,...s}),[s]),k=_.useMemo(()=>({...yx,...i}),[i]),{cols:R,rowHeight:N,maxRows:T,margin:P,containerPadding:L}=M,{enabled:z,bounded:I,handle:O,cancel:B,threshold:$}=A,{enabled:V,handles:W,handleComponent:Z}=D,{enabled:Y,defaultItem:J,onDragOver:H}=k,F=c??vx(),ee=F.type,X=F.allowOverlap,U=F.preventCollision??!1,q=_.useMemo(()=>d??{i:"__dropping-elem__",...J},[d,J]),ie=a.type==="transform",ae=a.scale,ne=L??P,[ve,Xe]=_.useState(!1),[fe,ue]=_.useState(()=>Ni(h,t,R,F)),[Ie,De]=_.useState(null),[We,Dt]=_.useState(!1),[Ye,et]=_.useState(null),[Ue,Ze]=_.useState(),Pt=_.useRef(null),gt=_.useRef(null),mt=_.useRef(null),at=_.useRef(0),Ot=_.useRef(fe),$t=_.useRef(h),Ut=_.useRef(t),Zt=_.useRef(ee),qe=_.useRef(fe);qe.current=fe,_.useEffect(()=>{Xe(!0),sn(fe,h)||b(fe)},[]),_.useEffect(()=>{if(Ie||Ye)return;const K=!sn(h,$t.current),oe=!qy(t,Ut.current),te=ee!==Zt.current;if(K||oe||te){const me=Ni(K?h:fe,t,R,F);sn(me,fe)||ue(me)}$t.current=h,Ut.current=t,Zt.current=ee},[h,t,R,ee,F,Ie,Ye,fe]),_.useEffect(()=>{if(!Ie&&!sn(fe,Ot.current)){Ot.current=fe;const K=fe.filter(oe=>oe.i!==q.i);b(K)}},[fe,Ie,b,q.i]);const jn=_.useMemo(()=>{if(!f)return;const K=Go(fe),oe=ne[1];return K*N+(K-1)*P[1]+oe*2+"px"},[f,fe,N,P,ne]),Jt=_.useCallback((K,oe,te,de)=>{const me=qe.current,ge=Wt(me,K);if(!ge)return;const Ne={w:ge.w,h:ge.h,x:ge.x,y:ge.y,i:K};Pt.current=vn(ge),mt.current=me,De(Ne),m(me,ge,ge,null,de.e,de.node)},[m]),xt=_.useCallback((K,oe,te,de)=>{const me=qe.current,ge=Pt.current,Ne=Wt(me,K);if(!Ne)return;const ze={w:Ne.w,h:Ne.h,x:Ne.x,y:Ne.y,i:K},be=Ft(me,Ne,oe,te,!0,U,ee,R,X);v(be,ge,Ne,ze,de.e,de.node),ue(F.compact(be,R)),De(ze)},[U,ee,R,X,F,v]),Qt=_.useCallback((K,oe,te,de)=>{if(!Ie)return;const me=qe.current,ge=Pt.current,Ne=Wt(me,K);if(!Ne)return;const ze=Ft(me,Ne,oe,te,!0,U,ee,R,X),be=F.compact(ze,R);x(be,ge,Ne,null,de.e,de.node);const Be=mt.current;Pt.current=null,mt.current=null,De(null),ue(be),Be&&!sn(Be,be)&&b(be)},[Ie,U,ee,R,X,F,x,b]),he=_.useCallback((K,oe,te,de)=>{const me=qe.current,ge=Wt(me,K);ge&&(gt.current=vn(ge),mt.current=me,Dt(!0),w(me,ge,ge,null,de.e,de.node))},[w]),pe=_.useCallback((K,oe,te,de)=>{const me=qe.current,ge=gt.current,{handle:Ne}=de;let ze=!1,be,Be;const[en,lt]=Qm(me,K,je=>(be=je.x,Be=je.y,["sw","w","nw","n","ne"].includes(Ne)&&(["sw","nw","w"].includes(Ne)&&(be=je.x+(je.w-oe),oe=je.x!==be&&be<0?je.w:oe,be=be<0?0:be),["ne","n","nw"].includes(Ne)&&(Be=je.y+(je.h-te),te=je.y!==Be&&Be<0?je.h:te,Be=Be<0?0:Be),ze=!0),U&&!X&&Hl(me,{...je,w:oe,h:te,x:be??je.x,y:Be??je.y}).filter(Ht=>Ht.i!==je.i).length>0&&(Be=je.y,te=je.h,be=je.x,oe=je.w,ze=!1),je.w=oe,je.h=te,je));if(!lt)return;let Bt=en;ze&&be!==void 0&&Be!==void 0&&(Bt=Ft(en,lt,be,Be,!0,U,ee,R,X));const tn={w:lt.w,h:lt.h,x:lt.x,y:lt.y,i:K,static:!0};C(Bt,ge,lt,tn,de.e,de.node),ue(F.compact(Bt,R)),De(tn)},[U,ee,R,X,F,C]),Ee=_.useCallback((K,oe,te,de)=>{const me=qe.current,ge=gt.current,Ne=Wt(me,K),ze=F.compact(me,R);S(ze,ge,Ne??null,null,de.e,de.node);const be=mt.current;gt.current=null,mt.current=null,De(null),Dt(!1),ue(ze),be&&!sn(be,ze)&&b(ze)},[R,F,S,b]),xe=_.useCallback(()=>{const K=qe.current;if(!K.some(de=>de.i===q.i)){et(null),De(null),Ze(void 0);return}const te=F.compact(K.filter(de=>de.i!==q.i),R);ue(te),et(null),De(null),Ze(void 0)},[q.i,R,F]),Re=_.useCallback(K=>{var Qn;if(K.preventDefault(),K.stopPropagation(),mc&&!((Qn=K.nativeEvent.target)!=null&&Qn.classList.contains(vi)))return!1;const oe=H?H(K.nativeEvent):E(K);if(oe===!1)return Ye&&xe(),!1;const{dragOffsetX:te=0,dragOffsetY:de=0,...me}=oe??{},ge={...q,...me},Ne=K.currentTarget.getBoundingClientRect(),ze={cols:R,margin:P,maxRows:T,rowHeight:N,containerWidth:n,containerPadding:ne},be=Cn(ze),Be=wn(ge.w,be,P[0]),en=wn(ge.h,N,P[1]),lt=Be/2,Bt=en/2,tn=K.clientX-Ne.left+te-lt,je=K.clientY-Ne.top+de-Bt,_n=Math.max(0,tn),Ht=Math.max(0,je),nn={left:_n/ae,top:Ht/ae,e:K.nativeEvent};if(Ye)Ue&&(Ue.left!==nn.left||Ue.top!==nn.top)&&Ze(nn);else{const En=Gm(ze,Ht,_n,ge.w,ge.h);et(l.jsx("div",{},ge.i)),Ze(nn),ue([...qe.current,{...ge,x:En.x,y:En.y,static:!1,isDraggable:!0}])}},[Ye,Ue,q,H,E,xe,ae,R,P,T,N,n,ne]),Oe=_.useCallback(K=>{K.preventDefault(),K.stopPropagation(),at.current--,at.current<0&&(at.current=0),at.current===0&&xe()},[xe]),He=_.useCallback(K=>{K.preventDefault(),K.stopPropagation(),at.current++},[]),$e=_.useCallback(K=>{K.preventDefault(),K.stopPropagation();const oe=qe.current,te=oe.find(de=>de.i===q.i);at.current=0,xe(),j(oe,te,K.nativeEvent)},[q.i,xe,j]),Je=_.useCallback((K,oe)=>{if(!K||!K.key)return null;const te=Wt(fe,String(K.key));if(!te)return null;const de=typeof te.isDraggable=="boolean"?te.isDraggable:!te.static&&z,me=typeof te.isResizable=="boolean"?te.isResizable:!te.static&&V,ge=te.resizeHandles||[...W],Ne=de&&I&&te.isBounded!==!1,ze=Z;return l.jsx(wi,{containerWidth:n,cols:R,margin:P,containerPadding:ne,maxRows:T,rowHeight:N,cancel:B,handle:O,onDragStart:Jt,onDrag:xt,onDragStop:Qt,onResizeStart:he,onResize:pe,onResizeStop:Ee,isDraggable:de,isResizable:me,isBounded:Ne,useCSSTransforms:ie&&ve,usePercentages:!ve,transformScale:ae,positionStrategy:a,dragThreshold:$,w:te.w,h:te.h,x:te.x,y:te.y,i:te.i,minH:te.minH,minW:te.minW,maxH:te.maxH,maxW:te.maxW,static:te.static,droppingPosition:oe?Ue:void 0,resizeHandles:ge,resizeHandle:ze,constraints:u,layoutItem:te,layout:fe,children:K},te.i)},[fe,n,R,P,ne,T,N,B,O,Jt,xt,Qt,he,pe,Ee,z,V,I,ie,ve,ae,a,$,Ue,W,Z,u]),Qe=()=>Ie?l.jsx(wi,{w:Ie.w,h:Ie.h,x:Ie.x,y:Ie.y,i:Ie.i,className:`react-grid-placeholder ${We?"placeholder-resizing":""}`,containerWidth:n,cols:R,margin:P,containerPadding:ne,maxRows:T,rowHeight:N,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:ie,transformScale:ae,constraints:u,layout:fe,children:l.jsx("div",{})}):null,yt=re.clsx(vi,g),bt={height:jn,...p};return l.jsxs("div",{ref:y,className:yt,style:bt,onDrop:Y?$e:void 0,onDragLeave:Y?Oe:void 0,onDragEnter:Y?He:void 0,onDragOver:Y?Re:void 0,children:[_.Children.map(t,K=>_.isValidElement(K)?Je(K):null),Y&&Ye&&Je(Ye,!0),Qe()]})}function xc({title:e,isEditing:t,isSelected:n,onSelect:r,onRemove:o,onConfigure:s,children:i,className:a}){const{t:c}=ye.useLocale();return l.jsxs("div",{className:re.cn("flex h-full flex-col rounded-lg border bg-card text-card-foreground shadow-sm transition-all duration-200",t&&"hover:shadow-md",n&&t&&"ring-2 ring-primary",a),onClick:()=>t&&r(),children:[l.jsxs("div",{className:"flex items-center gap-1.5 border-b px-3 py-2",children:[t&&l.jsx("div",{className:"cursor-grab active:cursor-grabbing drag-handle",children:l.jsx(Vn.GripVertical,{className:"h-4 w-4 text-muted-foreground/50"})}),l.jsx("span",{className:"flex-1 truncate text-sm font-medium",children:e??c("dashboard.widget")}),t&&l.jsxs("div",{className:"flex items-center gap-0.5",children:[l.jsx(Ve.Button,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:u=>{u.stopPropagation(),s()},children:l.jsx(cu,{className:"h-3 w-3 text-muted-foreground"})}),l.jsx(Ve.Button,{variant:"ghost",size:"icon",className:"h-6 w-6 hover:text-destructive",onClick:u=>{u.stopPropagation(),o()},children:l.jsx(_i.Trash2,{className:"h-3 w-3 text-muted-foreground"})})]})]}),l.jsx("div",{className:"flex-1 overflow-auto p-3",children:i})]})}function yc({widgets:e,layout:t,widgetRegistry:n,onLayoutChange:r,onRemoveWidget:o,onSelectWidget:s,onConfigureWidget:i,selectedWidgetId:a,isEditing:c,cols:u=12,rowHeight:h=80,width:d,className:f}){return l.jsx(Gy,{className:re.cn("layout",f),layout:t,width:d,gridConfig:{cols:u,rowHeight:h,margin:[12,12],containerPadding:null,maxRows:1/0},dragConfig:{enabled:c,handle:".drag-handle",bounded:!1,threshold:3},resizeConfig:{enabled:c,handles:["se"]},compactor:es,onLayoutChange:g=>r([...g]),children:e.map(g=>{const p=n.find(b=>b.id===g.widgetId);if(!p)return null;const y=p.component;return l.jsx("div",{children:l.jsx(xc,{instanceId:g.id,title:g.title??p.label,isEditing:c,isSelected:a===g.id,onSelect:()=>s(g.id),onRemove:()=>o(g.id),onConfigure:()=>i(g.id),children:l.jsx(y,{widget:g,isEditing:c})})},g.id)})})}function bc({widget:e,definition:t,open:n,onOpenChange:r,onUpdateTitle:o,onUpdateConfig:s}){var a;const{t:i}=ye.useLocale();return!e||!t?null:l.jsx(dt.Sheet,{open:n,onOpenChange:r,children:l.jsxs(dt.SheetContent,{children:[l.jsxs(dt.SheetHeader,{children:[l.jsx(dt.SheetTitle,{children:i("dashboard.widgetSettings")}),l.jsx(dt.SheetDescription,{children:i("dashboard.configureWidget",{label:t.label})})]}),l.jsx(_e.ScrollArea,{className:"h-[calc(100vh-120px)] mt-4",children:l.jsxs("div",{className:"space-y-4 pr-4",children:[l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:i("common.title")}),l.jsx(we.Input,{value:e.title??"",onChange:c=>o(c.target.value),placeholder:i("dashboard.widgetTitle")})]}),(a=t.configFields)==null?void 0:a.map(c=>l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:c.label}),c.type==="text"&&l.jsx(we.Input,{value:String(e.config[c.id]??c.defaultValue??""),onChange:u=>s({[c.id]:u.target.value}),placeholder:c.placeholder}),c.type==="number"&&l.jsx(we.Input,{type:"number",value:String(e.config[c.id]??c.defaultValue??""),onChange:u=>s({[c.id]:u.target.value?Number(u.target.value):void 0}),placeholder:c.placeholder}),c.type==="select"&&c.options&&l.jsxs(Q.Select,{value:String(e.config[c.id]??c.defaultValue??""),onValueChange:u=>s({[c.id]:u}),children:[l.jsx(Q.SelectTrigger,{children:l.jsx(Q.SelectValue,{placeholder:c.placeholder??i("filter.select")})}),l.jsx(Q.SelectContent,{children:c.options.map(u=>l.jsx(Q.SelectItem,{value:u.value,children:u.label},u.value))})]}),c.type==="boolean"&&l.jsx(tu.Switch,{checked:!!(e.config[c.id]??c.defaultValue??!1),onCheckedChange:u=>s({[c.id]:u})}),c.type==="color"&&l.jsx(we.Input,{type:"color",value:String(e.config[c.id]??c.defaultValue??"#000000"),onChange:u=>s({[c.id]:u.target.value}),className:"h-10 w-20 p-1 cursor-pointer"})]},c.id))]})})]})})}let Ky=0;function Si(){return`widget_${Date.now()}_${++Ky}`}function wc({widgetRegistry:e,value:t,defaultValue:n,onChange:r,presets:o,onPresetsChange:s,defaultEditing:i=!1}){const[a,c]=le.useState(n??{widgets:[],layout:[]}),[u,h]=le.useState([]),[d,f]=le.useState(i),[g,p]=le.useState(null),y=t??a,b=o??u,m=le.useCallback(D=>{const k=typeof D=="function"?D(y):D;t||c(k),r==null||r(k)},[y,t,r]),v=le.useCallback(D=>{var L,z,I,O,B,$;const k=e.find(V=>V.id===D);if(!k)return;const R=Si(),N={id:R,widgetId:D,title:k.label,config:k.defaultConfig??{}},T=y.layout.reduce((V,W)=>Math.max(V,W.y+W.h),0),P={i:R,x:0,y:T,w:((L=k.defaultSize)==null?void 0:L.w)??4,h:((z=k.defaultSize)==null?void 0:z.h)??3,minW:(I=k.minSize)==null?void 0:I.w,minH:(O=k.minSize)==null?void 0:O.h,maxW:(B=k.maxSize)==null?void 0:B.w,maxH:($=k.maxSize)==null?void 0:$.h};m(V=>({widgets:[...V.widgets,N],layout:[...V.layout,P]}))},[e,y.layout,m]),x=le.useCallback(D=>{m(k=>({widgets:k.widgets.filter(R=>R.id!==D),layout:k.layout.filter(R=>R.i!==D)})),g===D&&p(null)},[m,g]),w=le.useCallback((D,k)=>{m(R=>({...R,widgets:R.widgets.map(N=>N.id===D?{...N,config:{...N.config,...k}}:N)}))},[m]),C=le.useCallback((D,k)=>{m(R=>({...R,widgets:R.widgets.map(N=>N.id===D?{...N,title:k}:N)}))},[m]),S=le.useCallback(D=>{m(k=>({...k,layout:D}))},[m]),j=le.useCallback(D=>{const k={id:Si(),name:D,data:JSON.parse(JSON.stringify(y))},R=[...b,k];return o||h(R),s==null||s(R),k},[y,b,o,s]),E=le.useCallback(D=>{const k=b.find(R=>R.id===D);k&&m(JSON.parse(JSON.stringify(k.data)))},[b,m]),M=le.useCallback(D=>{const k=b.filter(R=>R.id!==D);o||h(k),s==null||s(k)},[b,o,s]),A=le.useMemo(()=>g?y.widgets.find(D=>D.id===g):void 0,[y.widgets,g]);return{data:y,isEditing:d,setIsEditing:f,addWidget:v,removeWidget:x,updateWidgetConfig:w,updateWidgetTitle:C,onLayoutChange:S,selectedWidgetId:g,setSelectedWidgetId:p,selectedWidget:A,presets:b,savePreset:j,loadPreset:E,deletePreset:M}}function vc({widgetRegistry:e,value:t,defaultValue:n,onChange:r,cols:o=12,rowHeight:s=80,presets:i,onPresetsChange:a,defaultEditing:c=!1,className:u}){const{t:h}=ye.useLocale(),d=_.useRef(null),[f,g]=_.useState(1200),[p,y]=_.useState(!1),{data:b,isEditing:m,setIsEditing:v,addWidget:x,removeWidget:w,updateWidgetConfig:C,updateWidgetTitle:S,onLayoutChange:j,selectedWidgetId:E,setSelectedWidgetId:M,selectedWidget:A}=wc({widgetRegistry:e,value:t,defaultValue:n,onChange:r,presets:i,onPresetsChange:a,defaultEditing:c});_.useEffect(()=>{const k=d.current;if(!k)return;const R=new ResizeObserver(N=>{for(const T of N)g(T.contentRect.width)});return R.observe(k),()=>R.disconnect()},[]);const D=A?e.find(k=>k.id===A.widgetId):void 0;return l.jsxs("div",{ref:d,className:re.cn("space-y-3",u),children:[l.jsx(Bl,{isEditing:m,onToggleEditing:()=>v(!m),widgetRegistry:e,onAddWidget:x}),b.widgets.length===0?l.jsxs("div",{className:"flex min-h-[300px] flex-col items-center justify-center rounded-lg border border-dashed text-center",children:[l.jsx("p",{className:"text-sm font-medium text-muted-foreground",children:h("dashboard.noWidgets")}),l.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:h(m?"dashboard.addWidgetHint":"dashboard.switchToEdit")})]}):l.jsx(yc,{widgets:b.widgets,layout:b.layout,widgetRegistry:e,onLayoutChange:j,onRemoveWidget:w,onSelectWidget:M,onConfigureWidget:k=>{M(k),y(!0)},selectedWidgetId:E,isEditing:m,cols:o,rowHeight:s,width:f}),l.jsx(bc,{widget:A,definition:D,open:p,onOpenChange:y,onUpdateTitle:k=>{E&&S(E,k)},onUpdateConfig:k=>{E&&C(E,k)}})]})}vc.displayName="DashboardBuilder";function Nc({id:e,data:t,selected:n}){const{t:r}=ye.useLocale(),o=t.metrics;return l.jsxs("div",{className:re.cn("relative min-w-[180px] max-w-[220px] rounded-lg border-2 bg-background shadow-sm transition-all",n?"border-primary shadow-md":"border-border"),children:[l.jsx(rt,{type:"target",position:G.Top,className:"!h-2.5 !w-2.5 !border-2 !bg-background"}),l.jsx("div",{className:"h-1.5 rounded-t-[6px]",style:{backgroundColor:String(t.color)||"hsl(var(--primary))"}}),l.jsxs("div",{className:"px-3 py-2.5",children:[l.jsxs("div",{className:"flex items-start gap-2",children:[t.icon&&l.jsx("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-white",style:{backgroundColor:String(t.color)||"hsl(var(--primary))"},children:t.icon}),l.jsxs("div",{className:"min-w-0 flex-1",children:[l.jsx("p",{className:"truncate text-sm font-semibold",children:t.label}),t.description&&l.jsx("p",{className:"truncate text-[10px] text-muted-foreground",children:t.description})]})]}),o&&l.jsxs("div",{className:"mt-2 flex items-center gap-3 border-t pt-2",children:[o.active!=null&&l.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-muted-foreground",children:[l.jsx(uu,{className:"h-2.5 w-2.5"}),l.jsx("span",{children:o.active})]}),o.conversionRate!=null&&l.jsxs("span",{className:"text-[10px] font-medium text-emerald-600",children:[o.conversionRate,"%"]}),o.entered!=null&&l.jsx("span",{className:"text-[10px] text-muted-foreground",children:r("journey.in",{count:o.entered})})]})]}),l.jsx(Ve.Button,{variant:"ghost",size:"icon",className:"absolute -right-2 -top-2 h-5 w-5 rounded-full border bg-background opacity-0 shadow-sm transition-opacity hover:bg-destructive hover:text-destructive-foreground group-hover:opacity-100 [.selected_&]:opacity-100",onClick:s=>{s.stopPropagation();const i=new CustomEvent("journey:deleteStep",{detail:{stepId:e}});window.dispatchEvent(i)},children:l.jsx(_i.Trash2,{className:"h-2.5 w-2.5"})}),l.jsx(rt,{type:"source",position:G.Bottom,className:"!h-2.5 !w-2.5 !border-2 !bg-background"})]})}function Sc({data:e,selected:t}){var n;return l.jsxs("div",{className:re.cn("relative min-w-[160px] rounded-full border-2 bg-emerald-50 px-5 py-2.5 text-center shadow-sm transition-all",t?"border-emerald-500 shadow-md":"border-emerald-200"),children:[l.jsxs("div",{className:"flex items-center justify-center gap-2",children:[e.icon&&l.jsx("span",{className:"text-emerald-600",children:e.icon}),l.jsx("span",{className:"text-sm font-semibold text-emerald-700",children:e.label})]}),e.description&&l.jsx("p",{className:"mt-0.5 text-[10px] text-emerald-600/70",children:e.description}),((n=e.metrics)==null?void 0:n.entered)!=null&&l.jsxs("p",{className:"mt-1 text-[10px] font-medium text-emerald-600",children:[e.metrics.entered," entered"]}),l.jsx(rt,{type:"source",position:G.Bottom,className:"!h-2.5 !w-2.5 !border-2 !border-emerald-400 !bg-white"})]})}function Cc({data:e,selected:t}){var n;return l.jsxs("div",{className:re.cn("relative min-w-[140px] rounded-full border-2 bg-muted px-5 py-2.5 text-center shadow-sm transition-all",t?"border-muted-foreground shadow-md":"border-border"),children:[l.jsx(rt,{type:"target",position:G.Top,className:"!h-2.5 !w-2.5 !border-2 !border-muted-foreground !bg-white"}),l.jsxs("div",{className:"flex items-center justify-center gap-2",children:[e.icon&&l.jsx("span",{className:"text-muted-foreground",children:e.icon}),l.jsx("span",{className:"text-sm font-semibold text-muted-foreground",children:e.label})]}),((n=e.metrics)==null?void 0:n.exited)!=null&&l.jsxs("p",{className:"mt-1 text-[10px] font-medium text-muted-foreground",children:[e.metrics.exited," exited"]})]})}function jc({data:e,selected:t}){const{t:n}=ye.useLocale(),r=e.branches??[{id:"yes",label:n("journey.yes")},{id:"no",label:n("journey.no")}];return l.jsxs("div",{className:re.cn("relative min-w-[180px] max-w-[220px] rounded-lg border-2 bg-background shadow-sm transition-all",t?"border-amber-500 shadow-md":"border-amber-200"),children:[l.jsx(rt,{type:"target",position:G.Top,className:"!h-2.5 !w-2.5 !border-2 !bg-background"}),l.jsx("div",{className:"h-1.5 rounded-t-[6px] bg-amber-500"}),l.jsxs("div",{className:"px-3 py-2.5",children:[l.jsxs("div",{className:"flex items-start gap-2",children:[l.jsx("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-amber-500 text-white",children:e.icon??l.jsx(Mr,{className:"h-4 w-4"})}),l.jsxs("div",{className:"min-w-0 flex-1",children:[l.jsx("p",{className:"truncate text-sm font-semibold",children:e.label}),e.description&&l.jsx("p",{className:"truncate text-[10px] text-muted-foreground",children:e.description})]})]}),l.jsx("div",{className:"mt-2 flex items-center gap-2 border-t pt-2",children:r.map(o=>l.jsx("span",{className:"rounded-full bg-amber-100 px-2 py-0.5 text-[10px] font-medium text-amber-700",children:o.label},o.id))})]}),r.map((o,s)=>{const i=r.length,a=(s+1)/(i+1)*100;return l.jsx(rt,{type:"source",position:G.Bottom,id:o.id,className:"!h-2.5 !w-2.5 !border-2 !border-amber-400 !bg-white",style:{left:`${a}%`}},o.id)})]})}function Uy({sourceX:e,sourceY:t,targetX:n,targetY:r,sourcePosition:o,targetPosition:s,style:i={},markerEnd:a,data:c}){const[u,h,d]=Ar({sourceX:e,sourceY:t,sourcePosition:o,targetX:n,targetY:r,targetPosition:s}),f=c;return l.jsxs(l.Fragment,{children:[l.jsx(Sn,{path:u,markerEnd:a,style:{strokeWidth:2,stroke:"hsl(var(--muted-foreground) / 0.3)",...i}}),(f==null?void 0:f.label)&&l.jsx(xl,{children:l.jsx("div",{className:re.cn("nodrag nopan absolute rounded-full border bg-background px-2 py-0.5 text-[10px] font-medium text-muted-foreground shadow-sm"),style:{transform:`translate(-50%, -50%) translate(${h}px,${d}px)`,pointerEvents:"all"},children:f.label})})]})}function _c({className:e}){const{zoomIn:t,zoomOut:n,fitView:r}=Kn(),{t:o}=ye.useLocale();return l.jsx(Le.TooltipProvider,{children:l.jsxs("div",{className:re.cn("flex items-center gap-1 rounded-lg border bg-background/95 px-1.5 py-1 shadow-sm backdrop-blur-sm",e),children:[l.jsxs(Le.Tooltip,{children:[l.jsx(Le.TooltipTrigger,{asChild:!0,children:l.jsx(Ve.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>t(),children:l.jsx(Nn.Plus,{className:"h-3.5 w-3.5"})})}),l.jsx(Le.TooltipContent,{side:"bottom",children:o("workflow.zoomIn")})]}),l.jsxs(Le.Tooltip,{children:[l.jsx(Le.TooltipTrigger,{asChild:!0,children:l.jsx(Ve.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>n(),children:l.jsx(ji.Minus,{className:"h-3.5 w-3.5"})})}),l.jsx(Le.TooltipContent,{side:"bottom",children:o("workflow.zoomOut")})]}),l.jsxs(Le.Tooltip,{children:[l.jsx(Le.TooltipTrigger,{asChild:!0,children:l.jsx(Ve.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>r({padding:.2}),children:l.jsx(Ii,{className:"h-3.5 w-3.5"})})}),l.jsx(Le.TooltipContent,{side:"bottom",children:o("workflow.fitView")})]})]})})}function Ec({stepDefinitions:e,selectedStep:t,readOnly:n,onAddStep:r,onUpdateConfig:o,onUpdateData:s,onDeselectStep:i,className:a}){var d;const{t:c}=ye.useLocale();if(t){const f=t.data,g=f.definitionId?e.find(p=>p.id===f.definitionId):void 0;return l.jsxs("div",{className:re.cn("flex h-full w-[260px] flex-col border-l bg-background",a),children:[l.jsxs("div",{className:"flex items-center justify-between border-b px-3 py-2.5",children:[l.jsx("h3",{className:"text-sm font-semibold",children:c("journey.configureStep")}),l.jsx(Ve.Button,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:i,children:l.jsx(At.X,{className:"h-3.5 w-3.5"})})]}),l.jsx(_e.ScrollArea,{className:"flex-1 px-3 py-3",children:l.jsxs("div",{className:"space-y-3",children:[l.jsxs("div",{className:"space-y-1.5",children:[l.jsx(Ce.Label,{className:"text-xs",children:c("journey.label")}),l.jsx(we.Input,{value:f.label,onChange:p=>s(t.id,{label:p.target.value}),disabled:n,className:"h-8 text-xs"})]}),l.jsxs("div",{className:"space-y-1.5",children:[l.jsx(Ce.Label,{className:"text-xs",children:c("journey.description")}),l.jsx(wt.Textarea,{value:String(f.description??""),onChange:p=>s(t.id,{description:p.target.value}),disabled:n,rows:2,className:"text-xs"})]}),(d=g==null?void 0:g.configFields)==null?void 0:d.map(p=>l.jsxs("div",{className:"space-y-1.5",children:[l.jsx(Ce.Label,{className:"text-xs",children:p.label}),(p.type==="text"||p.type==="number")&&l.jsx(we.Input,{type:p.type,value:String(f.config[p.id]??p.defaultValue??""),onChange:y=>o(t.id,{[p.id]:p.type==="number"?Number(y.target.value):y.target.value}),disabled:n,placeholder:p.placeholder,className:"h-8 text-xs"}),p.type==="textarea"&&l.jsx(wt.Textarea,{value:String(f.config[p.id]??p.defaultValue??""),onChange:y=>o(t.id,{[p.id]:y.target.value}),disabled:n,placeholder:p.placeholder,rows:2,className:"text-xs"})]},p.id)),f.metrics&&l.jsxs("div",{className:"space-y-1.5 border-t pt-3",children:[l.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:c("journey.metrics")}),l.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[f.metrics.entered!=null&&l.jsxs("div",{className:"rounded bg-muted/50 px-2 py-1",children:[l.jsx("p",{className:"text-[10px] text-muted-foreground",children:c("journey.entered")}),l.jsx("p",{className:"text-sm font-semibold",children:f.metrics.entered})]}),f.metrics.active!=null&&l.jsxs("div",{className:"rounded bg-muted/50 px-2 py-1",children:[l.jsx("p",{className:"text-[10px] text-muted-foreground",children:c("journey.active")}),l.jsx("p",{className:"text-sm font-semibold",children:f.metrics.active})]}),f.metrics.exited!=null&&l.jsxs("div",{className:"rounded bg-muted/50 px-2 py-1",children:[l.jsx("p",{className:"text-[10px] text-muted-foreground",children:c("journey.exited")}),l.jsx("p",{className:"text-sm font-semibold",children:f.metrics.exited})]}),f.metrics.conversionRate!=null&&l.jsxs("div",{className:"rounded bg-muted/50 px-2 py-1",children:[l.jsx("p",{className:"text-[10px] text-muted-foreground",children:c("journey.conversion")}),l.jsxs("p",{className:"text-sm font-semibold",children:[f.metrics.conversionRate,"%"]})]})]})]})]})})]})}const u=[{type:"entry",label:c("journey.entryPoint"),icon:l.jsx(iu,{className:"h-3.5 w-3.5"}),color:"bg-emerald-500"},{type:"gate",label:c("journey.decisionGate"),icon:l.jsx(Mr,{className:"h-3.5 w-3.5"}),color:"bg-amber-500"},{type:"end",label:c("journey.end"),icon:l.jsx(au,{className:"h-3.5 w-3.5"}),color:"bg-muted-foreground"}],h=e.map(f=>({type:"step",label:f.label,icon:f.icon??l.jsx(lu,{className:"h-3.5 w-3.5"}),color:f.color?"":"bg-blue-500",definitionId:f.id}));return l.jsxs("div",{className:re.cn("flex h-full w-[260px] flex-col border-l bg-background",a),children:[l.jsxs("div",{className:"border-b px-3 py-2.5",children:[l.jsx("h3",{className:"text-sm font-semibold",children:c("journey.journeySteps")}),l.jsx("p",{className:"text-[10px] text-muted-foreground",children:c("journey.clickToAdd")})]}),l.jsx(_e.ScrollArea,{className:"flex-1 px-3 py-3",children:l.jsxs("div",{className:"space-y-4",children:[l.jsxs("div",{className:"space-y-1.5",children:[l.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:c("journey.flowControl")}),u.map(f=>l.jsxs("button",{disabled:n,className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm transition-colors hover:bg-muted disabled:opacity-50 disabled:cursor-not-allowed",onClick:()=>r(f.type),children:[l.jsx("div",{className:re.cn("flex h-6 w-6 items-center justify-center rounded text-white",f.color),children:f.icon}),l.jsx("span",{className:"truncate",children:f.label})]},f.type))]}),h.length>0&&l.jsxs("div",{className:"space-y-1.5",children:[l.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:c("journey.steps")}),h.map((f,g)=>l.jsxs("button",{disabled:n,className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm transition-colors hover:bg-muted disabled:opacity-50 disabled:cursor-not-allowed",onClick:()=>r(f.type,void 0,f.definitionId),children:[l.jsx("div",{className:re.cn("flex h-6 w-6 items-center justify-center rounded text-white",f.color),style:f.color?void 0:{backgroundColor:"hsl(var(--primary))"},children:f.icon}),l.jsx("span",{className:"truncate",children:f.label})]},`${f.definitionId}-${g}`))]})]})})]})}let Zy=0;function Jy(){return`jc_step_${Date.now()}_${++Zy}`}const Qy={entry:"Entry Point",step:"Step",gate:"Decision Gate",end:"End"},e0={entry:"hsl(var(--success))",step:"hsl(var(--primary))",gate:"hsl(var(--warning))",end:"hsl(var(--muted-foreground))"};function kc({value:e,defaultValue:t,onChange:n,stepDefinitions:r=[]}){const o=e??t??{steps:[],edges:[]},[s,i,a]=yl(o.steps),[c,u,h]=bl(o.edges),[d,f]=le.useState(null);le.useEffect(()=>{e&&(i(e.steps),u(e.edges))},[e,i,u]);const g=le.useCallback((w,C)=>{n==null||n({steps:w,edges:C})},[n]),p=le.useCallback(w=>{u(C=>{const S=$o({...w,type:"journeyEdge",animated:!0},C);return g(s,S),S})},[u,s,g]),y=le.useCallback((w,C,S)=>{let j=Qy[w],E,M,A=e0[w];if(S){const R=r.find(N=>N.id===S);R&&(j=R.label,E=R.icon,M=R.description,A=R.color??A)}const D={type:w,label:j,description:M,icon:E,color:A,config:{},definitionId:S,branches:w==="gate"?[{id:"yes",label:"Yes"},{id:"no",label:"No"}]:void 0},k={id:Jy(),type:`${w}Node`,position:C??{x:250,y:(s.length+1)*150},data:D};i(R=>{const N=[...R,k];return g(N,c),N})},[s,c,r,i,g]),b=le.useCallback((w,C)=>{i(S=>{const j=S.map(E=>{if(E.id!==w)return E;const M=E.data;return{...E,data:{...M,config:{...M.config,...C}}}});return g(j,c),j})},[c,i,g]),m=le.useCallback((w,C)=>{i(S=>{const j=S.map(E=>{if(E.id!==w)return E;const M=E.data;return{...E,data:{...M,...C}}});return g(j,c),j})},[c,i,g]),v=le.useCallback(w=>{i(C=>{const S=C.filter(j=>j.id!==w);return u(j=>{const E=j.filter(M=>M.source!==w&&M.target!==w);return g(S,E),E}),S}),d===w&&f(null)},[i,u,d,g]),x=le.useMemo(()=>d?s.find(w=>w.id===d):void 0,[s,d]);return{steps:s,edges:c,onNodesChange:a,onEdgesChange:h,onConnect:p,addStep:y,updateStepConfig:b,updateStepData:m,deleteStep:v,selectedStepId:d,setSelectedStepId:f,selectedStep:x}}const t0={entryNode:Sc,stepNode:Nc,gateNode:jc,endNode:Cc},n0={journeyEdge:Uy};function r0({steps:e,edges:t,onNodesChange:n,onEdgesChange:r,onConnect:o,onNodeClick:s,readOnly:i,className:a}){return l.jsxs("div",{className:re.cn("relative h-full w-full",a),children:[l.jsxs(ml,{nodes:e,edges:t,onNodesChange:i?void 0:n,onEdgesChange:i?void 0:r,onConnect:i?void 0:o,onNodeClick:(c,u)=>s==null?void 0:s(u.id),nodeTypes:t0,edgeTypes:n0,defaultEdgeOptions:{type:"journeyEdge",animated:!0},fitView:!0,fitViewOptions:{padding:.2},nodesDraggable:!i,nodesConnectable:!i,elementsSelectable:!i,proOptions:{hideAttribution:!0},className:"bg-muted/20",children:[l.jsx(vl,{variant:vt.Dots,gap:20,size:1,className:"!text-muted-foreground/10"}),l.jsx(Cl,{className:"!bottom-3 !right-3 !rounded-lg !border !bg-background/80 !shadow-sm",maskColor:"hsl(var(--background) / 0.7)",nodeStrokeWidth:3,pannable:!0,zoomable:!0})]}),l.jsx("div",{className:"absolute left-3 top-3 z-10",children:l.jsx(_c,{})})]})}function Mc({value:e,defaultValue:t,onChange:n,stepDefinitions:r=[],readOnly:o=!1,height:s=600,className:i}){const{steps:a,edges:c,onNodesChange:u,onEdgesChange:h,onConnect:d,addStep:f,updateStepConfig:g,updateStepData:p,setSelectedStepId:y,selectedStep:b}=kc({value:e,defaultValue:t,onChange:n,stepDefinitions:r});return l.jsx(Yo,{children:l.jsxs("div",{className:re.cn("flex overflow-hidden rounded-lg border bg-background",i),style:{height:s},children:[l.jsx("div",{className:"flex-1",children:l.jsx(r0,{steps:a,edges:c,onNodesChange:u,onEdgesChange:h,onConnect:d,onNodeClick:y,readOnly:o})}),l.jsx(Ec,{stepDefinitions:r,selectedStep:b,readOnly:o,onAddStep:f,onUpdateConfig:g,onUpdateData:(m,v)=>p(m,v),onDeselectStep:()=>y(null)})]})})}Mc.displayName="JourneyCanvas";const o0=[{type:"bar",icon:Mo},{type:"line",icon:ou},{type:"pie",icon:su},{type:"area",icon:ru},{type:"table",icon:Vn.Table2}];function as({value:e,onChange:t}){const{t:n}=ye.useLocale(),r={bar:n("reportBuilder.chart.bar"),line:n("reportBuilder.chart.line"),pie:n("reportBuilder.chart.pie"),area:n("reportBuilder.chart.area"),table:n("reportBuilder.chart.table")};return l.jsx("div",{className:"flex gap-1",children:o0.map(({type:o,icon:s})=>l.jsxs("button",{type:"button",title:r[o],onClick:()=>t(o),className:re.cn("flex flex-col items-center gap-1 rounded-md border px-3 py-2 text-xs transition-colors",e===o?"border-primary bg-primary/10 text-primary":"border-transparent text-muted-foreground hover:bg-accent hover:text-accent-foreground"),children:[l.jsx(s,{className:"h-4 w-4"}),r[o]]},o))})}as.displayName="ReportChartSelector";const s0=["sum","count","avg","min","max"];function i0({metric:e,onRemove:t,onAggregationChange:n,readOnly:r}){const{t:o}=ye.useLocale(),{attributes:s,listeners:i,setNodeRef:a,transform:c,transition:u,isDragging:h}=Se.useSortable({id:e.id,disabled:r}),d={sum:o("reportBuilder.agg.sum"),count:o("reportBuilder.agg.count"),avg:o("reportBuilder.agg.avg"),min:o("reportBuilder.agg.min"),max:o("reportBuilder.agg.max")},f={transform:Se.CSS.Transform.toString(c),transition:u};return l.jsxs("div",{ref:a,style:f,className:re.cn("flex items-center gap-2 rounded-md border bg-background px-2 py-1.5",h&&"opacity-50"),children:[!r&&l.jsx("button",{type:"button",className:"cursor-grab text-muted-foreground",...s,...i,children:l.jsx(Vn.GripVertical,{className:"h-3.5 w-3.5"})}),l.jsx("span",{className:"flex-1 truncate text-sm",children:e.label}),l.jsxs(Q.Select,{value:e.aggregation,onValueChange:g=>n(e.id,g),disabled:r,children:[l.jsx(Q.SelectTrigger,{className:"h-7 w-20 text-xs",children:l.jsx(Q.SelectValue,{})}),l.jsx(Q.SelectContent,{children:s0.map(g=>l.jsx(Q.SelectItem,{value:g,children:d[g]},g))})]}),!r&&l.jsx("button",{type:"button",onClick:()=>t(e.id),className:"text-muted-foreground hover:text-destructive",children:l.jsx(At.X,{className:"h-3.5 w-3.5"})})]})}function ls({metrics:e,availableMetrics:t=[],onChange:n,readOnly:r}){const{t:o}=ye.useLocale(),s=Se.useSensors(Se.useSensor(Se.PointerSensor,{activationConstraint:{distance:4}}),Se.useSensor(Se.KeyboardSensor,{coordinateGetter:Se.sortableKeyboardCoordinates})),i=new Set(e.map(f=>f.field)),a=t.filter(f=>!i.has(f.field));function c(f){const g=t.find(y=>y.field===f);if(!g)return;const p={id:crypto.randomUUID(),label:g.label,field:g.field,aggregation:"sum"};n([...e,p])}function u(f){n(e.filter(g=>g.id!==f))}function h(f,g){n(e.map(p=>p.id===f?{...p,aggregation:g}:p))}function d(f){const{active:g,over:p}=f;if(!p||g.id===p.id)return;const y=e.findIndex(m=>m.id===g.id),b=e.findIndex(m=>m.id===p.id);n(Se.arrayMove(e,y,b))}return l.jsxs("div",{className:"space-y-2",children:[l.jsx(Se.DndContext,{sensors:s,collisionDetection:Se.closestCenter,onDragEnd:d,children:l.jsx(Se.SortableContext,{items:e.map(f=>f.id),strategy:Se.verticalListSortingStrategy,children:e.map(f=>l.jsx(i0,{metric:f,onRemove:u,onAggregationChange:h,readOnly:r},f.id))})}),!r&&a.length>0&&l.jsx("div",{className:"flex flex-wrap gap-1 pt-1",children:a.map(f=>l.jsxs(Wn.Badge,{variant:"outline",className:"cursor-pointer gap-1 text-xs",onClick:()=>c(f.field),children:[l.jsx(Nn.Plus,{className:"h-3 w-3"}),f.label]},f.field))}),e.length===0&&l.jsx("p",{className:"text-xs text-muted-foreground",children:o("reportBuilder.noMetrics")})]})}ls.displayName="ReportMetricPicker";function a0({dimensions:e,availableDimensions:t=[],onChange:n,readOnly:r}){const{t:o}=ye.useLocale(),s=new Set(e.map(u=>u.field)),i=t.filter(u=>!s.has(u.field));function a(u){const h=t.find(d=>d.field===u);h&&n([...e,{id:crypto.randomUUID(),label:h.label,field:h.field}])}function c(u){n(e.filter(h=>h.id!==u))}return l.jsxs("div",{className:"space-y-2",children:[e.map(u=>l.jsxs("div",{className:"flex items-center gap-2 rounded-md border bg-background px-2 py-1.5",children:[l.jsx("span",{className:"flex-1 truncate text-sm",children:u.label}),!r&&l.jsx("button",{type:"button",onClick:()=>c(u.id),className:"text-muted-foreground hover:text-destructive",children:l.jsx(At.X,{className:"h-3.5 w-3.5"})})]},u.id)),!r&&i.length>0&&l.jsx("div",{className:"flex flex-wrap gap-1 pt-1",children:i.map(u=>l.jsxs(Wn.Badge,{variant:"outline",className:"cursor-pointer gap-1 text-xs",onClick:()=>a(u.field),children:[l.jsx(Nn.Plus,{className:"h-3 w-3"}),u.label]},u.field))}),e.length===0&&l.jsx("p",{className:"text-xs text-muted-foreground",children:o("reportBuilder.noDimensions")})]})}function Dc(){const{t:e}=ye.useLocale();return l.jsxs("div",{className:"flex h-full min-h-[300px] flex-col items-center justify-center gap-2 rounded-lg border border-dashed text-center",children:[l.jsx(Mo,{className:"h-10 w-10 text-muted-foreground/50"}),l.jsx("p",{className:"text-sm font-medium text-muted-foreground",children:e("reportBuilder.configureReport")}),l.jsx("p",{className:"text-xs text-muted-foreground",children:e("reportBuilder.configureHint")})]})}function l0({metrics:e,dimensions:t}){const n=[...t,...e];return n.length===0?l.jsx(Dc,{}):l.jsx("div",{className:"overflow-auto rounded-lg border",children:l.jsxs("table",{className:"w-full text-sm",children:[l.jsx("thead",{children:l.jsx("tr",{className:"border-b bg-muted/50",children:n.map(r=>l.jsx("th",{className:"px-3 py-2 text-left font-medium text-muted-foreground",children:r.label},r.field))})}),l.jsx("tbody",{children:[0,1,2].map(r=>l.jsx("tr",{className:"border-b last:border-0",children:n.map(o=>l.jsx("td",{className:"px-3 py-2 text-muted-foreground/40",children:"--"},o.field))},r))})]})})}const Pc=le.forwardRef(({config:e,onChange:t,availableMetrics:n,availableDimensions:r,readOnly:o,className:s},i)=>{const{t:a}=ye.useLocale(),c=e.metrics.length>0||e.dimensions.length>0,u=l.jsxs("div",{className:"space-y-4",children:[l.jsxs("section",{children:[l.jsx("h4",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:a("reportBuilder.chartType")}),l.jsx(as,{value:e.chartType,onChange:d=>t({...e,chartType:d})})]}),l.jsx(dt.Separator,{}),l.jsxs("section",{children:[l.jsx("h4",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:a("reportBuilder.metrics")}),l.jsx(ls,{metrics:e.metrics,availableMetrics:n,onChange:d=>t({...e,metrics:d}),readOnly:o})]}),l.jsx(dt.Separator,{}),l.jsxs("section",{children:[l.jsx("h4",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:a("reportBuilder.dimensions")}),l.jsx(a0,{dimensions:e.dimensions,availableDimensions:r,onChange:d=>t({...e,dimensions:d}),readOnly:o})]}),l.jsx(dt.Separator,{}),l.jsxs("section",{children:[l.jsx("h4",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:a("reportBuilder.filters")}),e.filters.length===0?l.jsx("p",{className:"text-xs text-muted-foreground",children:a("reportBuilder.noFilters")}):l.jsx("div",{className:"space-y-1",children:e.filters.map(d=>l.jsxs("div",{className:"flex items-center gap-2 rounded-md border bg-background px-2 py-1.5",children:[l.jsxs("span",{className:"flex-1 truncate text-sm",children:[d.field," ",d.operator," ",String(d.value)]}),!o&&l.jsx("button",{type:"button",onClick:()=>t({...e,filters:e.filters.filter(f=>f.id!==d.id)}),className:"text-muted-foreground hover:text-destructive",children:l.jsx(At.X,{className:"h-3.5 w-3.5"})})]},d.id))})]})]}),h=e.chartType==="table"&&c?l.jsx(l0,{metrics:e.metrics,dimensions:e.dimensions}):c?l.jsxs("div",{className:"flex h-full min-h-[300px] flex-col items-center justify-center gap-2 rounded-lg border text-center",children:[l.jsx(Mo,{className:"h-10 w-10 text-muted-foreground/50"}),l.jsx("p",{className:"text-sm font-medium text-muted-foreground",children:a("reportBuilder.chartPreview",{type:e.chartType.charAt(0).toUpperCase()+e.chartType.slice(1)})}),l.jsxs("p",{className:"text-xs text-muted-foreground",children:[a("reportBuilder.metricCount",{count:e.metrics.length}),", ",a("reportBuilder.dimensionCount",{count:e.dimensions.length})]})]}):l.jsx(Dc,{});return l.jsx("div",{ref:i,className:re.cn("flex flex-col",s),children:l.jsxs(wt.Tabs,{defaultValue:"configure",className:"w-full",children:[l.jsxs(wt.TabsList,{children:[l.jsx(wt.TabsTrigger,{value:"configure",children:a("reportBuilder.configure")}),l.jsx(wt.TabsTrigger,{value:"preview",children:a("reportBuilder.preview")})]}),l.jsx(wt.TabsContent,{value:"configure",children:l.jsxs("div",{className:"flex gap-6 pt-2",children:[l.jsx("aside",{className:"w-72 shrink-0",children:u}),l.jsx("div",{className:"flex-1",children:h})]})}),l.jsx(wt.TabsContent,{value:"preview",children:l.jsx("div",{className:"pt-2",children:h})})]})})});Pc.displayName="ReportBuilder";const c0=[{type:"text",icon:l.jsx(Ti,{className:"h-4 w-4"})},{type:"email",icon:l.jsx(mr.Mail,{className:"h-4 w-4"})},{type:"phone",icon:l.jsx(mr.Phone,{className:"h-4 w-4"})},{type:"number",icon:l.jsx(Pi,{className:"h-4 w-4"})},{type:"select",icon:l.jsx(we.ChevronDown,{className:"h-4 w-4"})},{type:"checkbox",icon:l.jsx(zi,{className:"h-4 w-4"})},{type:"radio",icon:l.jsx(we.Circle,{className:"h-4 w-4"})},{type:"textarea",icon:l.jsx(Di,{className:"h-4 w-4"})},{type:"date",icon:l.jsx(Ei.Calendar,{className:"h-4 w-4"})},{type:"file",icon:l.jsx(ki.Upload,{className:"h-4 w-4"})}];function Ic({onAddField:e,className:t}){const{t:n}=ye.useLocale(),r={text:n("formBuilder.type.text"),email:n("formBuilder.type.email"),phone:n("formBuilder.type.phone"),number:n("formBuilder.type.number"),select:n("formBuilder.type.select"),checkbox:n("formBuilder.type.checkbox"),radio:n("formBuilder.type.radio"),textarea:n("formBuilder.type.textarea"),date:n("formBuilder.type.date"),file:n("formBuilder.type.file")};return l.jsxs("div",{className:re.cn("space-y-2",t),children:[l.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground px-1",children:n("formBuilder.fieldTypes")}),l.jsx(dt.Separator,{}),l.jsx("div",{className:"grid gap-1",children:c0.map(({type:o,icon:s})=>l.jsxs(Ve.Button,{variant:"ghost",size:"sm",className:"justify-start gap-2 h-8 text-xs",onClick:()=>e(o),children:[s,r[o]]},o))})]})}const u0={text:l.jsx(Ti,{className:"h-3.5 w-3.5"}),email:l.jsx(mr.Mail,{className:"h-3.5 w-3.5"}),phone:l.jsx(mr.Phone,{className:"h-3.5 w-3.5"}),number:l.jsx(Pi,{className:"h-3.5 w-3.5"}),select:l.jsx(we.ChevronDown,{className:"h-3.5 w-3.5"}),checkbox:l.jsx(zi,{className:"h-3.5 w-3.5"}),radio:l.jsx(we.Circle,{className:"h-3.5 w-3.5"}),textarea:l.jsx(Di,{className:"h-3.5 w-3.5"}),date:l.jsx(Ei.Calendar,{className:"h-3.5 w-3.5"}),file:l.jsx(ki.Upload,{className:"h-3.5 w-3.5"})};function d0({field:e,isSelected:t,readOnly:n,onSelect:r,onDelete:o}){const{t:s}=ye.useLocale(),{attributes:i,listeners:a,setNodeRef:c,transform:u,transition:h,isDragging:d}=Se.useSortable({id:e.id,disabled:n}),f={transform:Se.CSS.Transform.toString(u),transition:h};return l.jsxs("div",{ref:c,style:f,className:re.cn("flex items-center gap-2 rounded-lg border bg-background p-2.5 cursor-pointer transition-colors",t&&"border-primary ring-1 ring-primary/20",d&&"opacity-50",!n&&"hover:border-muted-foreground/40"),onClick:r,children:[!n&&l.jsx("button",{className:"cursor-grab touch-none text-muted-foreground hover:text-foreground",...i,...a,children:l.jsx(Vn.GripVertical,{className:"h-4 w-4"})}),l.jsx("span",{className:"text-muted-foreground",children:u0[e.type]}),l.jsx("span",{className:"text-sm font-medium truncate flex-1",children:e.label}),e.required&&l.jsx(Wn.Badge,{variant:"secondary",className:"text-[10px] px-1.5 py-0",children:s("formBuilder.required")}),!n&&l.jsx(Ve.Button,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 shrink-0",onClick:g=>{g.stopPropagation(),o()},children:l.jsx(At.X,{className:"h-3.5 w-3.5"})})]})}function Rc({fields:e,selectedFieldId:t,readOnly:n,onReorder:r,onSelectField:o,onDeleteField:s,className:i}){const{t:a}=ye.useLocale(),c=Se.useSensors(Se.useSensor(Se.PointerSensor,{activationConstraint:{distance:5}}),Se.useSensor(Se.KeyboardSensor,{coordinateGetter:Se.sortableKeyboardCoordinates})),u=h=>{const{active:d,over:f}=h;if(!f||d.id===f.id)return;const g=e.findIndex(y=>y.id===d.id),p=e.findIndex(y=>y.id===f.id);r(Se.arrayMove(e,g,p))};return e.length===0?l.jsx("div",{className:re.cn("flex min-h-[200px] items-center justify-center rounded-lg border border-dashed text-center",i),children:l.jsx("p",{className:"text-sm text-muted-foreground",children:a("formBuilder.addFieldsHint")})}):l.jsx(Se.DndContext,{sensors:c,collisionDetection:Se.closestCenter,onDragEnd:u,children:l.jsx(Se.SortableContext,{items:e.map(h=>h.id),strategy:Se.verticalListSortingStrategy,children:l.jsx("div",{className:re.cn("space-y-1.5",i),children:e.map(h=>l.jsx(d0,{field:h,isSelected:t===h.id,readOnly:n,onSelect:()=>o(h.id),onDelete:()=>s(h.id)},h.id))})})})}function zc({field:e,allFields:t,onChange:n,className:r}){var c;const{t:o}=ye.useLocale(),s=u=>n({...e,...u}),i=e.type==="select"||e.type==="radio",a=t.filter(u=>u.id!==e.id);return l.jsxs("div",{className:re.cn("space-y-4 text-sm",r),children:[l.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:o("formBuilder.fieldSettings")}),l.jsx(dt.Separator,{}),l.jsxs("div",{className:"space-y-1",children:[l.jsx(Ce.Label,{className:"text-xs",children:o("formBuilder.label")}),l.jsx(we.Input,{value:e.label,onChange:u=>s({label:u.target.value}),className:"h-8 text-xs"})]}),l.jsxs("div",{className:"space-y-1",children:[l.jsx(Ce.Label,{className:"text-xs",children:o("formBuilder.placeholder")}),l.jsx(we.Input,{value:e.placeholder??"",onChange:u=>s({placeholder:u.target.value}),className:"h-8 text-xs"})]}),l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx(Mi.Checkbox,{id:`req-${e.id}`,size:"sm",checked:e.required??!1,onCheckedChange:u=>s({required:u===!0})}),l.jsx(Ce.Label,{htmlFor:`req-${e.id}`,className:"text-xs cursor-pointer",children:o("formBuilder.required")})]}),l.jsxs("div",{className:"space-y-1",children:[l.jsx(Ce.Label,{className:"text-xs",children:o("formBuilder.width")}),l.jsx("div",{className:"flex gap-1",children:["full","half"].map(u=>l.jsx(Ve.Button,{variant:e.width===u?"default":"outline",size:"sm",className:"flex-1 h-7 text-xs",onClick:()=>s({width:u}),children:o(u==="full"?"formBuilder.full":"formBuilder.half")},u))})]}),i&&l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:o("formBuilder.options")}),(e.options??[]).map((u,h)=>l.jsxs("div",{className:"flex gap-1",children:[l.jsx(we.Input,{value:u.label,onChange:d=>{const f=[...e.options??[]];f[h]={...u,label:d.target.value,value:d.target.value.toLowerCase()},s({options:f})},placeholder:o("formBuilder.optionLabel"),className:"h-7 text-xs flex-1"}),l.jsx(Ve.Button,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0 shrink-0",onClick:()=>{const d=(e.options??[]).filter((f,g)=>g!==h);s({options:d})},children:l.jsx(At.X,{className:"h-3 w-3"})})]},h)),l.jsxs(Ve.Button,{variant:"outline",size:"sm",className:"w-full h-7 text-xs gap-1",onClick:()=>{const u=[...e.options??[],{value:"",label:""}];s({options:u})},children:[l.jsx(Nn.Plus,{className:"h-3 w-3"}),o("formBuilder.addOption")]})]}),l.jsx(dt.Separator,{}),l.jsxs("div",{className:"space-y-2",children:[l.jsx(Ce.Label,{className:"text-xs",children:o("formBuilder.visibleWhen")}),l.jsxs(Q.Select,{value:((c=e.visibleWhen)==null?void 0:c.fieldId)??"_none",onValueChange:u=>{var h,d;s(u==="_none"?{visibleWhen:void 0}:{visibleWhen:{fieldId:u,operator:((h=e.visibleWhen)==null?void 0:h.operator)??"equals",value:(d=e.visibleWhen)==null?void 0:d.value}})},children:[l.jsx(Q.SelectTrigger,{className:"h-8 text-xs",children:l.jsx(Q.SelectValue,{placeholder:o("formBuilder.alwaysVisible")})}),l.jsxs(Q.SelectContent,{children:[l.jsx(Q.SelectItem,{value:"_none",children:o("formBuilder.alwaysVisible")}),a.map(u=>l.jsx(Q.SelectItem,{value:u.id,children:u.label},u.id))]})]}),e.visibleWhen&&l.jsxs(l.Fragment,{children:[l.jsxs(Q.Select,{value:e.visibleWhen.operator,onValueChange:u=>s({visibleWhen:{...e.visibleWhen,operator:u}}),children:[l.jsx(Q.SelectTrigger,{className:"h-8 text-xs",children:l.jsx(Q.SelectValue,{})}),l.jsx(Q.SelectContent,{children:["equals","notEquals","contains","isEmpty","isNotEmpty"].map(u=>l.jsx(Q.SelectItem,{value:u,children:o(`formBuilder.operator.${u}`)},u))})]}),!["isEmpty","isNotEmpty"].includes(e.visibleWhen.operator)&&l.jsx(we.Input,{value:String(e.visibleWhen.value??""),onChange:u=>s({visibleWhen:{...e.visibleWhen,value:u.target.value}}),placeholder:o("formBuilder.value"),className:"h-8 text-xs"})]})]})]})}let f0=0;function h0(){return`field_${Date.now()}_${++f0}`}function p0(e,t){return{id:h0(),type:e,label:t,width:"full",...e==="select"||e==="radio"?{options:[{value:"option1",label:"Option 1"}]}:{}}}function Tc({fields:e,onChange:t,readOnly:n,className:r}){const{t:o}=ye.useLocale(),[s,i]=le.useState(null),a=e.find(d=>d.id===s)??null,c=d=>{const f=p0(d,o("formBuilder.newField",{type:d}));t([...e,f]),i(f.id)},u=d=>{t(e.filter(f=>f.id!==d)),s===d&&i(null)},h=d=>{t(e.map(f=>f.id===d.id?d:f))};return l.jsxs("div",{className:re.cn("flex rounded-lg border bg-muted/30 overflow-hidden",r),children:[!n&&l.jsx("div",{className:"w-[200px] shrink-0 border-r bg-background p-3",children:l.jsx(_e.ScrollArea,{className:"h-full",children:l.jsx(Ic,{onAddField:c})})}),l.jsx("div",{className:"flex-1 p-4 overflow-auto",children:l.jsx(Rc,{fields:e,selectedFieldId:s,readOnly:n,onReorder:t,onSelectField:i,onDeleteField:u})}),!n&&a&&l.jsx("div",{className:"w-[260px] shrink-0 border-l bg-background p-3 overflow-auto",children:l.jsx(_e.ScrollArea,{className:"h-full",children:l.jsx(zc,{field:a,allFields:e,onChange:h})})})]})}Tc.displayName="FormBuilder";function g0({field:e}){const{t}=ye.useLocale(),n=`preview-${e.id}`,r=l.jsxs(Ce.Label,{htmlFor:n,className:"text-sm",children:[e.label,e.required&&l.jsx("span",{className:"text-destructive ml-0.5",children:"*"})]});switch(e.type){case"text":case"email":case"phone":case"number":return l.jsxs("div",{className:"space-y-1.5",children:[r,l.jsx(we.Input,{id:n,type:e.type==="phone"?"tel":e.type,placeholder:e.placeholder})]});case"textarea":return l.jsxs("div",{className:"space-y-1.5",children:[r,l.jsx(wt.Textarea,{id:n,placeholder:e.placeholder})]});case"select":return l.jsxs("div",{className:"space-y-1.5",children:[r,l.jsxs(Q.Select,{children:[l.jsx(Q.SelectTrigger,{id:n,children:l.jsx(Q.SelectValue,{placeholder:e.placeholder??t("formBuilder.selectPlaceholder")})}),l.jsx(Q.SelectContent,{children:(e.options??[]).map(o=>l.jsx(Q.SelectItem,{value:o.value||"_empty",children:o.label},o.value))})]})]});case"checkbox":return l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx(Mi.Checkbox,{id:n,size:"sm"}),l.jsxs(Ce.Label,{htmlFor:n,className:"text-sm cursor-pointer",children:[e.label,e.required&&l.jsx("span",{className:"text-destructive ml-0.5",children:"*"})]})]});case"radio":return l.jsxs("div",{className:"space-y-1.5",children:[r,l.jsx(fs.RadioGroup,{children:(e.options??[]).map(o=>l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx(fs.RadioGroupItem,{value:o.value||"_empty",id:`${n}-${o.value}`}),l.jsx(Ce.Label,{htmlFor:`${n}-${o.value}`,className:"text-sm cursor-pointer",children:o.label})]},o.value))})]});case"date":return l.jsxs("div",{className:"space-y-1.5",children:[r,l.jsx(we.Input,{id:n,type:"date"})]});case"file":return l.jsxs("div",{className:"space-y-1.5",children:[r,l.jsx(we.Input,{id:n,type:"file"})]});default:return null}}function Lc({fields:e,className:t}){const{t:n}=ye.useLocale();return e.length===0?l.jsxs("div",{className:re.cn("flex min-h-[120px] flex-col items-center justify-center rounded-lg border border-dashed",t),children:[l.jsx("p",{className:"text-sm text-muted-foreground",children:n("formBuilder.noFieldsPreview")}),l.jsx("p",{className:"text-xs text-muted-foreground",children:n("formBuilder.addFieldsHint")})]}):l.jsx("div",{className:re.cn("grid grid-cols-2 gap-4",t),children:e.map(r=>l.jsx("div",{className:re.cn(r.width==="half"?"col-span-1":"col-span-2"),children:l.jsx(g0,{field:r})},r.id))})}Lc.displayName="FormPreview";exports.ActionConfigPanel=zl;exports.ActionNode=El;exports.BaseNode=Un;exports.ConditionConfigPanel=Rl;exports.ConditionNode=_l;exports.DashboardBuilder=vc;exports.DashboardGrid=yc;exports.DashboardToolbar=Bl;exports.DelayConfigPanel=Tl;exports.DelayNode=kl;exports.FormBuilder=Tc;exports.FormBuilderCanvas=Rc;exports.FormFieldEditor=zc;exports.FormFieldPalette=Ic;exports.FormPreview=Lc;exports.JourneyCanvas=Mc;exports.JourneyEndNode=Cc;exports.JourneyEntryNode=Sc;exports.JourneyGateNode=jc;exports.JourneySidebar=Ec;exports.JourneyStepNode=Nc;exports.JourneyToolbar=_c;exports.ReportBuilder=Pc;exports.ReportChartSelector=as;exports.ReportMetricPicker=ls;exports.TriggerConfigPanel=Il;exports.TriggerNode=jl;exports.WidgetConfigPanel=bc;exports.WidgetGallery=$l;exports.WidgetWrapper=xc;exports.WorkflowBuilder=Ol;exports.WorkflowCanvas=Pl;exports.WorkflowMinimap=Dl;exports.WorkflowSidebar=Ll;exports.WorkflowToolbar=Ml;exports.useDashboardBuilder=wc;exports.useJourneyCanvas=kc;exports.useWorkflowBuilder=Al;
|
|
111
|
-
//# sourceMappingURL=form-preview-
|
|
111
|
+
//# sourceMappingURL=form-preview-IPEZdspX.cjs.map
|