@tscircuit/runframe 0.0.36 → 0.0.37
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/README.md +1 -0
- package/dist/{chunk-E6OI3PY2.js → chunk-CASPTXGV.js} +33 -0
- package/dist/preview.d.ts +1 -1
- package/dist/preview.js +1 -1
- package/dist/runner.js +1 -1
- package/dist/standalone.min.js +3 -3
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -188,6 +188,7 @@ var ErrorTabContent = ({
|
|
|
188
188
|
|
|
189
189
|
// lib/components/CircuitJsonPreview.tsx
|
|
190
190
|
import { SchematicViewer } from "@tscircuit/schematic-viewer";
|
|
191
|
+
import { AssemblyViewer } from "@tscircuit/assembly-viewer";
|
|
191
192
|
|
|
192
193
|
// lib/components/PreviewEmptyState.tsx
|
|
193
194
|
import { PlayIcon } from "lucide-react";
|
|
@@ -819,6 +820,18 @@ var CircuitJsonPreview = ({
|
|
|
819
820
|
errorMessage && /* @__PURE__ */ jsx13("span", { className: "inline-flex absolute top-[6px] right-[4px] items-center justify-center w-1 h-1 ml-2 text-[8px] font-bold text-white bg-red-500 rounded-full" })
|
|
820
821
|
] }) }),
|
|
821
822
|
/* @__PURE__ */ jsxs9(DropdownMenuContent, { className: "*:text-xs", children: [
|
|
823
|
+
/* @__PURE__ */ jsxs9(DropdownMenuItem, { onSelect: () => setActiveTab("assembly"), children: [
|
|
824
|
+
/* @__PURE__ */ jsx13(
|
|
825
|
+
CheckIcon2,
|
|
826
|
+
{
|
|
827
|
+
className: cn(
|
|
828
|
+
"w-3 h-3 mr-2",
|
|
829
|
+
activeTab !== "assembly" && "invisible"
|
|
830
|
+
)
|
|
831
|
+
}
|
|
832
|
+
),
|
|
833
|
+
"Assembly"
|
|
834
|
+
] }),
|
|
822
835
|
/* @__PURE__ */ jsxs9(
|
|
823
836
|
DropdownMenuItem,
|
|
824
837
|
{
|
|
@@ -895,6 +908,26 @@ var CircuitJsonPreview = ({
|
|
|
895
908
|
) : /* @__PURE__ */ jsx13(PreviewEmptyState_default, { onRunClicked }) })
|
|
896
909
|
}
|
|
897
910
|
) }),
|
|
911
|
+
/* @__PURE__ */ jsx13(TabsContent, { value: "assembly", children: /* @__PURE__ */ jsx13(
|
|
912
|
+
"div",
|
|
913
|
+
{
|
|
914
|
+
className: cn(
|
|
915
|
+
"overflow-auto",
|
|
916
|
+
isFullScreen ? "h-[calc(100vh-96px)]" : "h-[620px]"
|
|
917
|
+
),
|
|
918
|
+
children: /* @__PURE__ */ jsx13(ErrorBoundary, { fallback: /* @__PURE__ */ jsx13("div", { children: "Error loading Assembly" }), children: circuitJson ? /* @__PURE__ */ jsx13(
|
|
919
|
+
AssemblyViewer,
|
|
920
|
+
{
|
|
921
|
+
circuitJson,
|
|
922
|
+
containerStyle: {
|
|
923
|
+
height: "100%"
|
|
924
|
+
},
|
|
925
|
+
editingEnabled: true,
|
|
926
|
+
debugGrid: true
|
|
927
|
+
}
|
|
928
|
+
) : /* @__PURE__ */ jsx13(PreviewEmptyState_default, { onRunClicked }) })
|
|
929
|
+
}
|
|
930
|
+
) }),
|
|
898
931
|
/* @__PURE__ */ jsx13(TabsContent, { value: "schematic", children: /* @__PURE__ */ jsx13(
|
|
899
932
|
"div",
|
|
900
933
|
{
|
package/dist/preview.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ interface PreviewContentProps {
|
|
|
25
25
|
onToggleFullScreen?: () => void;
|
|
26
26
|
isFullScreen?: boolean;
|
|
27
27
|
hasCodeChangedSinceLastRun?: boolean;
|
|
28
|
-
defaultActiveTab?: "code" | "pcb" | "schematic" | "cad" | "bom" | "circuitjson" | "error";
|
|
28
|
+
defaultActiveTab?: "code" | "pcb" | "schematic" | "assembly" | "cad" | "bom" | "circuitjson" | "error";
|
|
29
29
|
onEditEvent?: (editEvent: ManualEditEvent) => void;
|
|
30
30
|
editEvents?: ManualEditEvent[];
|
|
31
31
|
}
|
package/dist/preview.js
CHANGED
package/dist/runner.js
CHANGED
package/dist/standalone.min.js
CHANGED
|
@@ -22224,7 +22224,7 @@ void main() {
|
|
|
22224
22224
|
.pin-number { fill: ${colorMap.schematic.pin_number}; }
|
|
22225
22225
|
.port-label { fill: ${colorMap.schematic.reference}; }
|
|
22226
22226
|
.component-name { fill: ${colorMap.schematic.reference}; }
|
|
22227
|
-
`,name:"",attributes:{},children:[]}],value:"",attributes:{}},...NV],value:""};return stringify(cV)}var circuitJsonToSchematicSvg=convertCircuitJsonToSchematicSvg;const index$1=Object.freeze(Object.defineProperty({__proto__:null,circuitJsonToPcbSvg,circuitJsonToSchematicSvg,convertCircuitJsonToAssemblySvg,convertCircuitJsonToPcbSvg,convertCircuitJsonToSchematicSvg},Symbol.toStringTag,{value:"Module"}));var EditIcon=({onClick:lV,active:J})=>jsxRuntimeExports.jsx("div",{onClick:lV,style:{position:"absolute",top:"16px",right:"16px",backgroundColor:J?"#4CAF50":"#fff",color:J?"#fff":"#000",padding:"8px",borderRadius:"4px",cursor:"pointer",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",display:"flex",alignItems:"center",gap:"4px",zIndex:1e3},children:jsxRuntimeExports.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsxRuntimeExports.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),jsxRuntimeExports.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]})}),useResizeHandling=lV=>{const[J,VV]=reactExports.useState(0),[RV,UV]=reactExports.useState(0);return reactExports.useEffect(()=>{if(!lV.current)return;const ZV=()=>{var dV;const IV=(dV=lV.current)==null?void 0:dV.getBoundingClientRect();VV((IV==null?void 0:IV.width)||0),UV((IV==null?void 0:IV.height)||0)};ZV();const WV=new ResizeObserver(ZV);return WV.observe(lV.current),window.addEventListener("resize",ZV),()=>{WV.disconnect(),window.removeEventListener("resize",ZV)}},[]),{containerWidth:J,containerHeight:RV}},getComponentOffsetDueToEvents=({editEvents:lV,schematic_component_id:J})=>{const VV=lV.filter(ZV=>"schematic_component_id"in ZV&&ZV.schematic_component_id===J).filter(ZV=>"edit_event_type"in ZV&&ZV.edit_event_type==="edit_schematic_component_location"),RV=VV.reduce((ZV,WV)=>ZV+WV.new_center.x-WV.original_center.x,0),UV=VV.reduce((ZV,WV)=>ZV+WV.new_center.y-WV.original_center.y,0);return{x:RV,y:UV}},debug$5=Debug$1("schematic-viewer"),enableDebug=()=>{Debug$1.enable("schematic-viewer*")},debug_default=debug$5,debug2=debug_default.extend("useComponentDragging"),useComponentDragging=({onEditEvent:lV,editEvents:J=[],circuitJson:VV,cancelDrag:RV,svgToScreenProjection:UV,realToSvgProjection:ZV,enabled:WV=!1})=>{const[IV,dV]=reactExports.useState(null),CV=compose(ZV,UV),FV=reactExports.useRef(null),NV=reactExports.useRef(null),gV=reactExports.useCallback(nV=>{if(!WV)return;const GV=nV.target.closest('[data-circuit-json-type="schematic_component"]');if(!GV)return;const cV=GV.getAttribute("data-schematic-component-id");if(!cV)return;RV&&RV();const TV=distExports$4.su(VV).schematic_component.get(cV);if(!TV)return;const iV=getComponentOffsetDueToEvents({editEvents:J,schematic_component_id:cV});FV.current={x:nV.clientX,y:nV.clientY};const tV={x:TV.center.x+iV.x,y:TV.center.y+iV.y},MV={edit_event_id:Math.random().toString(36).substr(2,9),edit_event_type:"edit_schematic_component_location",schematic_component_id:cV,original_center:tV,new_center:{...tV},in_progress:!0,created_at:Date.now(),_element:GV};NV.current=MV},[RV,WV,VV]),eV=reactExports.useCallback(nV=>{if(!NV.current||!FV.current)return;const aV={x:nV.clientX-FV.current.x,y:nV.clientY-FV.current.y},GV={x:aV.x/CV.a,y:aV.y/CV.d},cV={...NV.current,new_center:{x:NV.current.original_center.x+GV.x,y:NV.current.original_center.y+GV.y}};NV.current=cV,dV(cV)},[CV]),JV=reactExports.useCallback(()=>{if(!NV.current)return;const nV={...NV.current,in_progress:!1};debug2("handleMouseUp calling onEditEvent with new edit event",{newEditEvent:nV}),lV&&lV(nV),NV.current=null,FV.current=null,dV(null)},[lV]);return reactExports.useEffect(()=>(window.addEventListener("mousemove",eV),window.addEventListener("mouseup",JV),()=>{window.removeEventListener("mousemove",eV),window.removeEventListener("mouseup",JV)}),[eV,JV]),{handleMouseDown:gV,isDragging:!!NV.current,activeEditEvent:IV}},useChangeSchematicComponentLocationsInSvg=({svgDivRef:lV,realToSvgProjection:J,svgToScreenProjection:VV,activeEditEvent:RV,editEvents:UV})=>{const ZV=reactExports.useRef(null);reactExports.useEffect(()=>{const WV=lV.current;if(!WV)return;const IV=new MutationObserver(CV=>{const FV=WV.innerHTML;FV!==ZV.current&&(ZV.current=FV,dV())}),dV=()=>{const CV=new Set;for(const NV of UV)"edit_event_type"in NV&&NV.edit_event_type==="edit_schematic_component_location"&&CV.add(NV.schematic_component_id);RV&&CV.add(RV.schematic_component_id);const FV=WV.querySelectorAll('[data-circuit-json-type="schematic_component"]');for(const NV of Array.from(FV)){const gV=NV.getAttribute("data-schematic-component-id"),eV=getComponentOffsetDueToEvents({editEvents:[...UV,...RV?[RV]:[]],schematic_component_id:gV}),JV={x:eV.x*J.a,y:eV.y*J.d},nV=NV.style;nV.transform=`translate(${JV.x}px, ${JV.y}px)`,(RV==null?void 0:RV.schematic_component_id)===gV?(nV.outline="solid 2px rgba(255,0,0,0.5)",nV.outlineOffset="5px"):nV.outline&&(nV.outline="")}};return IV.observe(WV,{childList:!0,subtree:!1,characterData:!1}),dV(),()=>{IV.disconnect()}},[lV,UV,RV])},useChangeSchematicTracesForMovedComponents=({svgDivRef:lV,circuitJson:J,activeEditEvent:VV,editEvents:RV})=>{reactExports.useRef(null),reactExports.useEffect(()=>{const UV=lV.current;if(!UV)return;const ZV=()=>{const IV=UV.querySelectorAll('[data-circuit-json-type="schematic_trace"] path');for(const dV of Array.from(IV))dV.setAttribute("stroke-dasharray","0"),dV.style.animation="";for(const dV of[...RV,...VV?[VV]:[]])if("schematic_component_id"in dV&&dV.edit_event_type==="edit_schematic_component_location"){const CV=distExports$4.su(J).schematic_component.get(dV.schematic_component_id);if(!CV)return;const FV=distExports$4.su(J).source_port.list({source_component_id:CV.source_component_id}),NV=new Set(FV.map(nV=>nV.source_port_id)),gV=distExports$4.su(J).source_trace.list().filter(nV=>{var aV;return(aV=nV.connected_source_port_ids)==null?void 0:aV.some(GV=>NV.has(GV))}),eV=new Set(gV.map(nV=>nV.source_trace_id));distExports$4.su(J).schematic_trace.list().filter(nV=>eV.has(nV.source_trace_id)).forEach(nV=>{var GV;const aV=UV.querySelectorAll(`[data-schematic-trace-id="${nV.schematic_trace_id}"] path`);for(const cV of Array.from(aV))if(!((GV=cV.getAttribute("class"))!=null&&GV.includes("invisible"))&&(cV.setAttribute("stroke-dasharray","20,20"),cV.style.animation="dash-animation 350ms linear infinite, pulse-animation 900ms linear infinite",!UV.querySelector("style#dash-animation"))){const TV=document.createElement("style");TV.id="dash-animation",TV.textContent=`
|
|
22227
|
+
`,name:"",attributes:{},children:[]}],value:"",attributes:{}},...NV],value:""};return stringify(cV)}var circuitJsonToSchematicSvg=convertCircuitJsonToSchematicSvg;const index$1=Object.freeze(Object.defineProperty({__proto__:null,circuitJsonToPcbSvg,circuitJsonToSchematicSvg,convertCircuitJsonToAssemblySvg,convertCircuitJsonToPcbSvg,convertCircuitJsonToSchematicSvg},Symbol.toStringTag,{value:"Module"}));var EditIcon=({onClick:lV,active:J})=>jsxRuntimeExports.jsx("div",{onClick:lV,style:{position:"absolute",top:"16px",right:"16px",backgroundColor:J?"#4CAF50":"#fff",color:J?"#fff":"#000",padding:"8px",borderRadius:"4px",cursor:"pointer",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",display:"flex",alignItems:"center",gap:"4px",zIndex:1e3},children:jsxRuntimeExports.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsxRuntimeExports.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),jsxRuntimeExports.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]})}),useResizeHandling$1=lV=>{const[J,VV]=reactExports.useState(0),[RV,UV]=reactExports.useState(0);return reactExports.useEffect(()=>{if(!lV.current)return;const ZV=()=>{var dV;const IV=(dV=lV.current)==null?void 0:dV.getBoundingClientRect();VV((IV==null?void 0:IV.width)||0),UV((IV==null?void 0:IV.height)||0)};ZV();const WV=new ResizeObserver(ZV);return WV.observe(lV.current),window.addEventListener("resize",ZV),()=>{WV.disconnect(),window.removeEventListener("resize",ZV)}},[]),{containerWidth:J,containerHeight:RV}},getComponentOffsetDueToEvents=({editEvents:lV,schematic_component_id:J})=>{const VV=lV.filter(ZV=>"schematic_component_id"in ZV&&ZV.schematic_component_id===J).filter(ZV=>"edit_event_type"in ZV&&ZV.edit_event_type==="edit_schematic_component_location"),RV=VV.reduce((ZV,WV)=>ZV+WV.new_center.x-WV.original_center.x,0),UV=VV.reduce((ZV,WV)=>ZV+WV.new_center.y-WV.original_center.y,0);return{x:RV,y:UV}},debug$5=Debug$1("schematic-viewer"),enableDebug$1=()=>{Debug$1.enable("schematic-viewer*")},debug_default=debug$5,debug2=debug_default.extend("useComponentDragging"),useComponentDragging=({onEditEvent:lV,editEvents:J=[],circuitJson:VV,cancelDrag:RV,svgToScreenProjection:UV,realToSvgProjection:ZV,enabled:WV=!1})=>{const[IV,dV]=reactExports.useState(null),CV=compose(ZV,UV),FV=reactExports.useRef(null),NV=reactExports.useRef(null),gV=reactExports.useCallback(nV=>{if(!WV)return;const GV=nV.target.closest('[data-circuit-json-type="schematic_component"]');if(!GV)return;const cV=GV.getAttribute("data-schematic-component-id");if(!cV)return;RV&&RV();const TV=distExports$4.su(VV).schematic_component.get(cV);if(!TV)return;const iV=getComponentOffsetDueToEvents({editEvents:J,schematic_component_id:cV});FV.current={x:nV.clientX,y:nV.clientY};const tV={x:TV.center.x+iV.x,y:TV.center.y+iV.y},MV={edit_event_id:Math.random().toString(36).substr(2,9),edit_event_type:"edit_schematic_component_location",schematic_component_id:cV,original_center:tV,new_center:{...tV},in_progress:!0,created_at:Date.now(),_element:GV};NV.current=MV},[RV,WV,VV]),eV=reactExports.useCallback(nV=>{if(!NV.current||!FV.current)return;const aV={x:nV.clientX-FV.current.x,y:nV.clientY-FV.current.y},GV={x:aV.x/CV.a,y:aV.y/CV.d},cV={...NV.current,new_center:{x:NV.current.original_center.x+GV.x,y:NV.current.original_center.y+GV.y}};NV.current=cV,dV(cV)},[CV]),JV=reactExports.useCallback(()=>{if(!NV.current)return;const nV={...NV.current,in_progress:!1};debug2("handleMouseUp calling onEditEvent with new edit event",{newEditEvent:nV}),lV&&lV(nV),NV.current=null,FV.current=null,dV(null)},[lV]);return reactExports.useEffect(()=>(window.addEventListener("mousemove",eV),window.addEventListener("mouseup",JV),()=>{window.removeEventListener("mousemove",eV),window.removeEventListener("mouseup",JV)}),[eV,JV]),{handleMouseDown:gV,isDragging:!!NV.current,activeEditEvent:IV}},useChangeSchematicComponentLocationsInSvg=({svgDivRef:lV,realToSvgProjection:J,svgToScreenProjection:VV,activeEditEvent:RV,editEvents:UV})=>{const ZV=reactExports.useRef(null);reactExports.useEffect(()=>{const WV=lV.current;if(!WV)return;const IV=new MutationObserver(CV=>{const FV=WV.innerHTML;FV!==ZV.current&&(ZV.current=FV,dV())}),dV=()=>{const CV=new Set;for(const NV of UV)"edit_event_type"in NV&&NV.edit_event_type==="edit_schematic_component_location"&&CV.add(NV.schematic_component_id);RV&&CV.add(RV.schematic_component_id);const FV=WV.querySelectorAll('[data-circuit-json-type="schematic_component"]');for(const NV of Array.from(FV)){const gV=NV.getAttribute("data-schematic-component-id"),eV=getComponentOffsetDueToEvents({editEvents:[...UV,...RV?[RV]:[]],schematic_component_id:gV}),JV={x:eV.x*J.a,y:eV.y*J.d},nV=NV.style;nV.transform=`translate(${JV.x}px, ${JV.y}px)`,(RV==null?void 0:RV.schematic_component_id)===gV?(nV.outline="solid 2px rgba(255,0,0,0.5)",nV.outlineOffset="5px"):nV.outline&&(nV.outline="")}};return IV.observe(WV,{childList:!0,subtree:!1,characterData:!1}),dV(),()=>{IV.disconnect()}},[lV,UV,RV])},useChangeSchematicTracesForMovedComponents=({svgDivRef:lV,circuitJson:J,activeEditEvent:VV,editEvents:RV})=>{reactExports.useRef(null),reactExports.useEffect(()=>{const UV=lV.current;if(!UV)return;const ZV=()=>{const IV=UV.querySelectorAll('[data-circuit-json-type="schematic_trace"] path');for(const dV of Array.from(IV))dV.setAttribute("stroke-dasharray","0"),dV.style.animation="";for(const dV of[...RV,...VV?[VV]:[]])if("schematic_component_id"in dV&&dV.edit_event_type==="edit_schematic_component_location"){const CV=distExports$4.su(J).schematic_component.get(dV.schematic_component_id);if(!CV)return;const FV=distExports$4.su(J).source_port.list({source_component_id:CV.source_component_id}),NV=new Set(FV.map(nV=>nV.source_port_id)),gV=distExports$4.su(J).source_trace.list().filter(nV=>{var aV;return(aV=nV.connected_source_port_ids)==null?void 0:aV.some(GV=>NV.has(GV))}),eV=new Set(gV.map(nV=>nV.source_trace_id));distExports$4.su(J).schematic_trace.list().filter(nV=>eV.has(nV.source_trace_id)).forEach(nV=>{var GV;const aV=UV.querySelectorAll(`[data-schematic-trace-id="${nV.schematic_trace_id}"] path`);for(const cV of Array.from(aV))if(!((GV=cV.getAttribute("class"))!=null&&GV.includes("invisible"))&&(cV.setAttribute("stroke-dasharray","20,20"),cV.style.animation="dash-animation 350ms linear infinite, pulse-animation 900ms linear infinite",!UV.querySelector("style#dash-animation"))){const TV=document.createElement("style");TV.id="dash-animation",TV.textContent=`
|
|
22228
22228
|
@keyframes dash-animation {
|
|
22229
22229
|
to {
|
|
22230
22230
|
stroke-dashoffset: -40;
|
|
@@ -22235,7 +22235,7 @@ void main() {
|
|
|
22235
22235
|
50% { opacity: 0.2; }
|
|
22236
22236
|
100% { opacity: 0.6; }
|
|
22237
22237
|
}
|
|
22238
|
-
`,UV.appendChild(TV)}})}};ZV();const WV=new MutationObserver(ZV);return WV.observe(UV,{childList:!0,subtree:!1,characterData:!1}),()=>{WV.disconnect()}},[lV,VV,J,RV])},SchematicViewer=({circuitJson:lV,containerStyle:J,editEvents:VV=[],onEditEvent:RV,defaultEditMode:UV=!1,debugGrid:ZV=!1,editingEnabled:WV=!1,debug:IV=!1})=>{IV&&enableDebug();const[dV,CV]=reactExports.useState(UV),FV=reactExports.useRef(null),{ref:NV,cancelDrag:gV,transform:eV}=distExports.useMouseMatrixTransform({onSetTransform(MV){FV.current&&(FV.current.style.transform=toString(MV))}}),{containerWidth:JV,containerHeight:nV}=useResizeHandling(NV),aV=reactExports.useMemo(()=>!JV||!nV?"":convertCircuitJsonToSchematicSvg(lV,{width:JV,height:nV||720,grid:ZV?{cellSize:1,labelCells:!0}:void 0}),[lV,JV,nV]),GV=reactExports.useMemo(()=>{var AV;if(!aV)return identity$4();const MV=(AV=aV.match(/data-real-to-screen-transform="([^"]+)"/))==null?void 0:AV[1];try{return fromString(MV)}catch(pV){return console.error(pV),identity$4()}},[aV]),{handleMouseDown:cV,isDragging:TV,activeEditEvent:iV}=useComponentDragging({onEditEvent:RV,cancelDrag:gV,realToSvgProjection:GV,svgToScreenProjection:eV,circuitJson:lV,editEvents:VV,enabled:dV});useChangeSchematicComponentLocationsInSvg({svgDivRef:FV,editEvents:VV,realToSvgProjection:GV,svgToScreenProjection:eV,activeEditEvent:iV}),useChangeSchematicTracesForMovedComponents({svgDivRef:FV,circuitJson:lV,activeEditEvent:iV,editEvents:VV});const tV=reactExports.useMemo(()=>jsxRuntimeExports.jsx("div",{ref:FV,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:aV}}),[aV]);return jsxRuntimeExports.jsxs("div",{ref:NV,style:{position:"relative",backgroundColor:"#F5F1ED",overflow:"hidden",cursor:TV?"grabbing":"grab",minHeight:"300px",...J},onMouseDown:cV,children:[WV&&jsxRuntimeExports.jsx(EditIcon,{active:dV,onClick:()=>CV(!dV)}),tV]})};const PreviewEmptyState=({onRunClicked:lV})=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 bg-gray-100 text-center justify-center py-10",children:["No circuit json loaded",lV&&jsxRuntimeExports.jsxs(Button,{className:"bg-blue-600 hover:bg-blue-500",onClick:lV,children:["Run Code",jsxRuntimeExports.jsx(Play,{className:"w-3 h-3 ml-2"})]})]}),ClickableText=({text:lV,onClick:J})=>jsxRuntimeExports.jsx("span",{className:"cursor-pointer underline text-blue-300 mx-2",onClick:J,children:lV}),HeaderCell=lV=>{var J;return jsxRuntimeExports.jsxs("div",{className:"leading-5",children:[jsxRuntimeExports.jsx("div",{className:"py-2 font-bold",children:lV.column.name}),jsxRuntimeExports.jsx("div",{children:((J=lV.field)==null?void 0:J.call(lV))??jsxRuntimeExports.jsx("input",{type:"text",className:"border rounded p-1 w-full",onChange:VV=>{var RV;(RV=lV.onTextChange)==null||RV.call(lV,VV.target.value)}})})]})},Modal=({open:lV,children:J,title:VV,onClose:RV})=>lV?jsxRuntimeExports.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex justify-center items-center z-50",onClick:RV,children:jsxRuntimeExports.jsxs("div",{className:"bg-white p-5 rounded-lg relative w-11/12 max-w-2xl",onClick:UV=>{UV.preventDefault(),UV.stopPropagation()},children:[jsxRuntimeExports.jsx("h2",{className:"mt-0 text-xl",children:VV}),jsxRuntimeExports.jsx("button",{className:"absolute top-4 right-4 text-2xl font-bold",onClick:RV,children:"×"}),J]})}):null,CircuitJsonTableViewer=({elements:lV})=>{const[J,VV]=reactExports.useState({open:!1}),[RV,UV]=reactExports.useReducer((FV,NV)=>({...FV,...NV}),{}),ZV=[...new Set(lV.map(FV=>FV.type))],WV=lV.map(FV=>{const NV=FV[`${FV.type}_id`],gV=Object.fromEntries(Object.entries(FV).filter(([JV])=>!(JV===`${FV.type}_id`||!JV.endsWith("_id")))),eV=Object.fromEntries(Object.entries(FV).filter(([JV])=>!JV.endsWith("_id")));return{primary_id:NV,other_ids:gV,...eV,_og_elm:FV}}),IV=WV.map(FV=>{let NV="";const gV=eV=>{const JV=Object.keys(eV.other_ids).find(GV=>GV.startsWith("source_"));if(!JV)return`.${eV.name}`;const nV=JV.slice(0,-3),aV=WV.find(GV=>GV.type===nV&&GV.primary_id===eV.other_ids[JV]);return aV?"name"in aV?`${gV(aV)} > .${eV.name}`:`#${aV.primary_id} > .${eV.name}`:`??? > .${eV.name}`};return"name"in FV&&(NV=gV(FV)),{...FV,selector_path:NV}}),dV=[{key:"primary_id",name:"primary_id",renderCell:FV=>jsxRuntimeExports.jsxs("div",{className:"flex items-center",children:[jsxRuntimeExports.jsx(ClickableText,{text:FV.primary_id,onClick:()=>UV({focused_id:FV.primary_id,id_search:void 0,selector_search:void 0})}),jsxRuntimeExports.jsx("span",{className:"flex-grow"}),jsxRuntimeExports.jsx(ClickableText,{text:"(JSON)",onClick:()=>VV({open:!0,element:FV._og_elm,title:FV.primary_id})})]}),renderHeaderCell:FV=>jsxRuntimeExports.jsx(HeaderCell,{column:FV,onTextChange:NV=>UV({id_search:NV}),field:RV.focused_id?()=>jsxRuntimeExports.jsxs("div",{children:["Focus:"," ",jsxRuntimeExports.jsx("span",{className:"underline",children:RV.focused_id}),jsxRuntimeExports.jsx(ClickableText,{text:"(unfocus)",onClick:()=>UV({focused_id:void 0})})]}):void 0})},{key:"type",name:"type",renderHeaderCell:FV=>jsxRuntimeExports.jsx(HeaderCell,{column:FV,field:()=>jsxRuntimeExports.jsxs("select",{onChange:NV=>UV({component_type_filter:NV.target.value}),className:"border rounded p-1 w-full",children:[jsxRuntimeExports.jsx("option",{value:"any",children:"any"},"any"),jsxRuntimeExports.jsx("option",{value:"source",children:"source"},"source"),jsxRuntimeExports.jsx("option",{value:"source/pcb",children:"source/pcb"},"source/pcb"),jsxRuntimeExports.jsx("option",{value:"source/schematic",children:"source/schematic"},"source/schematic"),ZV.map(NV=>jsxRuntimeExports.jsx("option",{value:NV,children:NV},NV))]})})},{key:"name",name:"name",renderHeaderCell:FV=>jsxRuntimeExports.jsx(HeaderCell,{column:FV,onTextChange:NV=>UV({name_search:NV})})},{key:"selector_path",name:"selector_path",renderHeaderCell:FV=>jsxRuntimeExports.jsx(HeaderCell,{column:FV,onTextChange:NV=>UV({selector_search:NV})})},{key:"other_ids",name:"other_ids",renderCell:FV=>jsxRuntimeExports.jsx("div",{className:"space-x-2",children:Object.entries(FV.other_ids).map(([NV,gV])=>jsxRuntimeExports.jsx(ClickableText,{text:gV,onClick:()=>UV({focused_id:gV})},gV))})}],CV=IV.filter(FV=>{var NV,gV;return RV.name_search?(gV=(NV=FV.name)==null?void 0:NV.toLowerCase())==null?void 0:gV.includes(RV.name_search.toLowerCase()):!0}).filter(FV=>{var NV;return!RV.component_type_filter||RV.component_type_filter==="any"?!0:RV.component_type_filter==="source"?FV.type.startsWith("source_"):RV.component_type_filter==="source/pcb"?FV.type.startsWith("source_")||FV.type.startsWith("pcb_"):RV.component_type_filter==="source/schematic"?FV.type.startsWith("source_")||FV.type.startsWith("schematic_"):(NV=FV.type)==null?void 0:NV.includes(RV.component_type_filter)}).filter(FV=>RV.selector_search?RV.selector_search.split(" ").filter(gV=>gV.length>0).every(gV=>{var eV;return(eV=FV.selector_path)==null?void 0:eV.includes(gV)}):!0).filter(FV=>{var NV;return RV.id_search?(NV=FV.primary_id)==null?void 0:NV.includes(RV.id_search):!0}).filter(FV=>!!(!RV.focused_id||FV.primary_id===RV.focused_id||Object.values(FV.other_ids).includes(RV.focused_id)));return jsxRuntimeExports.jsxs("div",{className:"font-mono text-xs",children:[jsxRuntimeExports.jsx("div",{className:"overflow-x-auto",children:jsxRuntimeExports.jsxs("table",{className:"table-auto w-full text-left",children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsx("tr",{children:dV.map(FV=>jsxRuntimeExports.jsx("th",{className:"px-4 py-2 border-b",children:FV.renderHeaderCell?FV.renderHeaderCell(FV):FV.name},FV.key))})}),jsxRuntimeExports.jsx("tbody",{children:CV.map((FV,NV)=>jsxRuntimeExports.jsx("tr",{className:"hover:bg-gray-100",children:dV.map(gV=>jsxRuntimeExports.jsx("td",{className:"px-4 py-2 border-b",children:gV.renderCell?gV.renderCell(FV):FV[gV.key]},gV.key))},NV))})]})}),jsxRuntimeExports.jsx(Modal,{open:J.open,onClose:()=>VV({open:!1}),title:J.open?J.title:"",children:jsxRuntimeExports.jsx("div",{className:"bg-gray-800 p-3 text-white rounded",children:jsxRuntimeExports.jsx("pre",{className:"whitespace-pre-wrap",children:J.open?JSON.stringify(J.element,null,2):""})})})]})},linkify=(lV,J)=>lV==="jlcpcb"?jsxRuntimeExports.jsx("a",{className:"underline text-blue-500",target:"_blank",rel:"noreferrer",href:`https://jlcpcb.com/partdetail/${J}`,children:J}):J,BomTable=({circuitJson:lV})=>{const J=lV.filter(RV=>RV.type==="source_component"),VV=new Set;for(const RV of J)if(RV.supplier_part_numbers)for(const UV of Object.keys(RV.supplier_part_numbers))VV.add(UV);return jsxRuntimeExports.jsx("div",{className:"overflow-x-auto",children:jsxRuntimeExports.jsxs("table",{className:"w-full text-left text-sm",children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsxs("tr",{className:"border-b",children:[jsxRuntimeExports.jsx("th",{className:"p-2",children:"Name"}),Array.from(VV).map(RV=>jsxRuntimeExports.jsx("th",{className:"p-2 capitalize",children:RV},RV))]})}),jsxRuntimeExports.jsx("tbody",{children:J.map(RV=>jsxRuntimeExports.jsxs("tr",{className:"border-b",children:[jsxRuntimeExports.jsx("td",{className:"p-2",children:RV.name}),Array.from(VV).map(UV=>{var ZV,WV;return jsxRuntimeExports.jsx("td",{className:"p-2",children:linkify(UV,((WV=(ZV=RV.supplier_part_numbers)==null?void 0:ZV[UV])==null?void 0:WV[0])||"")},UV)})]},RV.source_component_id))})]})})};function useEscapeKeydown(lV,J=globalThis==null?void 0:globalThis.document){const VV=useCallbackRef$1(lV);reactExports.useEffect(()=>{const RV=UV=>{UV.key==="Escape"&&VV(UV)};return J.addEventListener("keydown",RV,{capture:!0}),()=>J.removeEventListener("keydown",RV,{capture:!0})},[VV,J])}var DISMISSABLE_LAYER_NAME="DismissableLayer",CONTEXT_UPDATE="dismissableLayer.update",POINTER_DOWN_OUTSIDE="dismissableLayer.pointerDownOutside",FOCUS_OUTSIDE="dismissableLayer.focusOutside",originalBodyPointerEvents,DismissableLayerContext=reactExports.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),DismissableLayer=reactExports.forwardRef((lV,J)=>{const{disableOutsidePointerEvents:VV=!1,onEscapeKeyDown:RV,onPointerDownOutside:UV,onFocusOutside:ZV,onInteractOutside:WV,onDismiss:IV,...dV}=lV,CV=reactExports.useContext(DismissableLayerContext),[FV,NV]=reactExports.useState(null),gV=(FV==null?void 0:FV.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,eV]=reactExports.useState({}),JV=useComposedRefs(J,AV=>NV(AV)),nV=Array.from(CV.layers),[aV]=[...CV.layersWithOutsidePointerEventsDisabled].slice(-1),GV=nV.indexOf(aV),cV=FV?nV.indexOf(FV):-1,TV=CV.layersWithOutsidePointerEventsDisabled.size>0,iV=cV>=GV,tV=usePointerDownOutside(AV=>{const pV=AV.target,HV=[...CV.branches].some(oV=>oV.contains(pV));!iV||HV||(UV==null||UV(AV),WV==null||WV(AV),AV.defaultPrevented||IV==null||IV())},gV),MV=useFocusOutside(AV=>{const pV=AV.target;[...CV.branches].some(oV=>oV.contains(pV))||(ZV==null||ZV(AV),WV==null||WV(AV),AV.defaultPrevented||IV==null||IV())},gV);return useEscapeKeydown(AV=>{cV===CV.layers.size-1&&(RV==null||RV(AV),!AV.defaultPrevented&&IV&&(AV.preventDefault(),IV()))},gV),reactExports.useEffect(()=>{if(FV)return VV&&(CV.layersWithOutsidePointerEventsDisabled.size===0&&(originalBodyPointerEvents=gV.body.style.pointerEvents,gV.body.style.pointerEvents="none"),CV.layersWithOutsidePointerEventsDisabled.add(FV)),CV.layers.add(FV),dispatchUpdate(),()=>{VV&&CV.layersWithOutsidePointerEventsDisabled.size===1&&(gV.body.style.pointerEvents=originalBodyPointerEvents)}},[FV,gV,VV,CV]),reactExports.useEffect(()=>()=>{FV&&(CV.layers.delete(FV),CV.layersWithOutsidePointerEventsDisabled.delete(FV),dispatchUpdate())},[FV,CV]),reactExports.useEffect(()=>{const AV=()=>eV({});return document.addEventListener(CONTEXT_UPDATE,AV),()=>document.removeEventListener(CONTEXT_UPDATE,AV)},[]),jsxRuntimeExports.jsx(Primitive.div,{...dV,ref:JV,style:{pointerEvents:TV?iV?"auto":"none":void 0,...lV.style},onFocusCapture:composeEventHandlers(lV.onFocusCapture,MV.onFocusCapture),onBlurCapture:composeEventHandlers(lV.onBlurCapture,MV.onBlurCapture),onPointerDownCapture:composeEventHandlers(lV.onPointerDownCapture,tV.onPointerDownCapture)})});DismissableLayer.displayName=DISMISSABLE_LAYER_NAME;var BRANCH_NAME="DismissableLayerBranch",DismissableLayerBranch=reactExports.forwardRef((lV,J)=>{const VV=reactExports.useContext(DismissableLayerContext),RV=reactExports.useRef(null),UV=useComposedRefs(J,RV);return reactExports.useEffect(()=>{const ZV=RV.current;if(ZV)return VV.branches.add(ZV),()=>{VV.branches.delete(ZV)}},[VV.branches]),jsxRuntimeExports.jsx(Primitive.div,{...lV,ref:UV})});DismissableLayerBranch.displayName=BRANCH_NAME;function usePointerDownOutside(lV,J=globalThis==null?void 0:globalThis.document){const VV=useCallbackRef$1(lV),RV=reactExports.useRef(!1),UV=reactExports.useRef(()=>{});return reactExports.useEffect(()=>{const ZV=IV=>{if(IV.target&&!RV.current){let dV=function(){handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE,VV,CV,{discrete:!0})};const CV={originalEvent:IV};IV.pointerType==="touch"?(J.removeEventListener("click",UV.current),UV.current=dV,J.addEventListener("click",UV.current,{once:!0})):dV()}else J.removeEventListener("click",UV.current);RV.current=!1},WV=window.setTimeout(()=>{J.addEventListener("pointerdown",ZV)},0);return()=>{window.clearTimeout(WV),J.removeEventListener("pointerdown",ZV),J.removeEventListener("click",UV.current)}},[J,VV]),{onPointerDownCapture:()=>RV.current=!0}}function useFocusOutside(lV,J=globalThis==null?void 0:globalThis.document){const VV=useCallbackRef$1(lV),RV=reactExports.useRef(!1);return reactExports.useEffect(()=>{const UV=ZV=>{ZV.target&&!RV.current&&handleAndDispatchCustomEvent(FOCUS_OUTSIDE,VV,{originalEvent:ZV},{discrete:!1})};return J.addEventListener("focusin",UV),()=>J.removeEventListener("focusin",UV)},[J,VV]),{onFocusCapture:()=>RV.current=!0,onBlurCapture:()=>RV.current=!1}}function dispatchUpdate(){const lV=new CustomEvent(CONTEXT_UPDATE);document.dispatchEvent(lV)}function handleAndDispatchCustomEvent(lV,J,VV,{discrete:RV}){const UV=VV.originalEvent.target,ZV=new CustomEvent(lV,{bubbles:!1,cancelable:!0,detail:VV});J&&UV.addEventListener(lV,J,{once:!0}),RV?dispatchDiscreteCustomEvent(UV,ZV):UV.dispatchEvent(ZV)}var count=0;function useFocusGuards(){reactExports.useEffect(()=>{const lV=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",lV[0]??createFocusGuard()),document.body.insertAdjacentElement("beforeend",lV[1]??createFocusGuard()),count++,()=>{count===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(J=>J.remove()),count--}},[])}function createFocusGuard(){const lV=document.createElement("span");return lV.setAttribute("data-radix-focus-guard",""),lV.tabIndex=0,lV.style.outline="none",lV.style.opacity="0",lV.style.position="fixed",lV.style.pointerEvents="none",lV}var AUTOFOCUS_ON_MOUNT="focusScope.autoFocusOnMount",AUTOFOCUS_ON_UNMOUNT="focusScope.autoFocusOnUnmount",EVENT_OPTIONS={bubbles:!1,cancelable:!0},FOCUS_SCOPE_NAME="FocusScope",FocusScope=reactExports.forwardRef((lV,J)=>{const{loop:VV=!1,trapped:RV=!1,onMountAutoFocus:UV,onUnmountAutoFocus:ZV,...WV}=lV,[IV,dV]=reactExports.useState(null),CV=useCallbackRef$1(UV),FV=useCallbackRef$1(ZV),NV=reactExports.useRef(null),gV=useComposedRefs(J,nV=>dV(nV)),eV=reactExports.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;reactExports.useEffect(()=>{if(RV){let nV=function(TV){if(eV.paused||!IV)return;const iV=TV.target;IV.contains(iV)?NV.current=iV:focus(NV.current,{select:!0})},aV=function(TV){if(eV.paused||!IV)return;const iV=TV.relatedTarget;iV!==null&&(IV.contains(iV)||focus(NV.current,{select:!0}))},GV=function(TV){if(document.activeElement===document.body)for(const tV of TV)tV.removedNodes.length>0&&focus(IV)};document.addEventListener("focusin",nV),document.addEventListener("focusout",aV);const cV=new MutationObserver(GV);return IV&&cV.observe(IV,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",nV),document.removeEventListener("focusout",aV),cV.disconnect()}}},[RV,IV,eV.paused]),reactExports.useEffect(()=>{if(IV){focusScopesStack.add(eV);const nV=document.activeElement;if(!IV.contains(nV)){const GV=new CustomEvent(AUTOFOCUS_ON_MOUNT,EVENT_OPTIONS);IV.addEventListener(AUTOFOCUS_ON_MOUNT,CV),IV.dispatchEvent(GV),GV.defaultPrevented||(focusFirst$1(removeLinks(getTabbableCandidates(IV)),{select:!0}),document.activeElement===nV&&focus(IV))}return()=>{IV.removeEventListener(AUTOFOCUS_ON_MOUNT,CV),setTimeout(()=>{const GV=new CustomEvent(AUTOFOCUS_ON_UNMOUNT,EVENT_OPTIONS);IV.addEventListener(AUTOFOCUS_ON_UNMOUNT,FV),IV.dispatchEvent(GV),GV.defaultPrevented||focus(nV??document.body,{select:!0}),IV.removeEventListener(AUTOFOCUS_ON_UNMOUNT,FV),focusScopesStack.remove(eV)},0)}}},[IV,CV,FV,eV]);const JV=reactExports.useCallback(nV=>{if(!VV&&!RV||eV.paused)return;const aV=nV.key==="Tab"&&!nV.altKey&&!nV.ctrlKey&&!nV.metaKey,GV=document.activeElement;if(aV&&GV){const cV=nV.currentTarget,[TV,iV]=getTabbableEdges(cV);TV&&iV?!nV.shiftKey&&GV===iV?(nV.preventDefault(),VV&&focus(TV,{select:!0})):nV.shiftKey&&GV===TV&&(nV.preventDefault(),VV&&focus(iV,{select:!0})):GV===cV&&nV.preventDefault()}},[VV,RV,eV.paused]);return jsxRuntimeExports.jsx(Primitive.div,{tabIndex:-1,...WV,ref:gV,onKeyDown:JV})});FocusScope.displayName=FOCUS_SCOPE_NAME;function focusFirst$1(lV,{select:J=!1}={}){const VV=document.activeElement;for(const RV of lV)if(focus(RV,{select:J}),document.activeElement!==VV)return}function getTabbableEdges(lV){const J=getTabbableCandidates(lV),VV=findVisible(J,lV),RV=findVisible(J.reverse(),lV);return[VV,RV]}function getTabbableCandidates(lV){const J=[],VV=document.createTreeWalker(lV,NodeFilter.SHOW_ELEMENT,{acceptNode:RV=>{const UV=RV.tagName==="INPUT"&&RV.type==="hidden";return RV.disabled||RV.hidden||UV?NodeFilter.FILTER_SKIP:RV.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;VV.nextNode();)J.push(VV.currentNode);return J}function findVisible(lV,J){for(const VV of lV)if(!isHidden(VV,{upTo:J}))return VV}function isHidden(lV,{upTo:J}){if(getComputedStyle(lV).visibility==="hidden")return!0;for(;lV;){if(J!==void 0&&lV===J)return!1;if(getComputedStyle(lV).display==="none")return!0;lV=lV.parentElement}return!1}function isSelectableInput(lV){return lV instanceof HTMLInputElement&&"select"in lV}function focus(lV,{select:J=!1}={}){if(lV&&lV.focus){const VV=document.activeElement;lV.focus({preventScroll:!0}),lV!==VV&&isSelectableInput(lV)&&J&&lV.select()}}var focusScopesStack=createFocusScopesStack();function createFocusScopesStack(){let lV=[];return{add(J){const VV=lV[0];J!==VV&&(VV==null||VV.pause()),lV=arrayRemove(lV,J),lV.unshift(J)},remove(J){var VV;lV=arrayRemove(lV,J),(VV=lV[0])==null||VV.resume()}}}function arrayRemove(lV,J){const VV=[...lV],RV=VV.indexOf(J);return RV!==-1&&VV.splice(RV,1),VV}function removeLinks(lV){return lV.filter(J=>J.tagName!=="A")}const sides=["top","right","bottom","left"],min=Math.min,max=Math.max,round=Math.round,floor=Math.floor,createCoords=lV=>({x:lV,y:lV}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"},oppositeAlignmentMap={start:"end",end:"start"};function clamp(lV,J,VV){return max(lV,min(J,VV))}function evaluate(lV,J){return typeof lV=="function"?lV(J):lV}function getSide(lV){return lV.split("-")[0]}function getAlignment(lV){return lV.split("-")[1]}function getOppositeAxis(lV){return lV==="x"?"y":"x"}function getAxisLength(lV){return lV==="y"?"height":"width"}function getSideAxis(lV){return["top","bottom"].includes(getSide(lV))?"y":"x"}function getAlignmentAxis(lV){return getOppositeAxis(getSideAxis(lV))}function getAlignmentSides(lV,J,VV){VV===void 0&&(VV=!1);const RV=getAlignment(lV),UV=getAlignmentAxis(lV),ZV=getAxisLength(UV);let WV=UV==="x"?RV===(VV?"end":"start")?"right":"left":RV==="start"?"bottom":"top";return J.reference[ZV]>J.floating[ZV]&&(WV=getOppositePlacement(WV)),[WV,getOppositePlacement(WV)]}function getExpandedPlacements(lV){const J=getOppositePlacement(lV);return[getOppositeAlignmentPlacement(lV),J,getOppositeAlignmentPlacement(J)]}function getOppositeAlignmentPlacement(lV){return lV.replace(/start|end/g,J=>oppositeAlignmentMap[J])}function getSideList(lV,J,VV){const RV=["left","right"],UV=["right","left"],ZV=["top","bottom"],WV=["bottom","top"];switch(lV){case"top":case"bottom":return VV?J?UV:RV:J?RV:UV;case"left":case"right":return J?ZV:WV;default:return[]}}function getOppositeAxisPlacements(lV,J,VV,RV){const UV=getAlignment(lV);let ZV=getSideList(getSide(lV),VV==="start",RV);return UV&&(ZV=ZV.map(WV=>WV+"-"+UV),J&&(ZV=ZV.concat(ZV.map(getOppositeAlignmentPlacement)))),ZV}function getOppositePlacement(lV){return lV.replace(/left|right|bottom|top/g,J=>oppositeSideMap[J])}function expandPaddingObject(lV){return{top:0,right:0,bottom:0,left:0,...lV}}function getPaddingObject(lV){return typeof lV!="number"?expandPaddingObject(lV):{top:lV,right:lV,bottom:lV,left:lV}}function rectToClientRect(lV){const{x:J,y:VV,width:RV,height:UV}=lV;return{width:RV,height:UV,top:VV,left:J,right:J+RV,bottom:VV+UV,x:J,y:VV}}function computeCoordsFromPlacement(lV,J,VV){let{reference:RV,floating:UV}=lV;const ZV=getSideAxis(J),WV=getAlignmentAxis(J),IV=getAxisLength(WV),dV=getSide(J),CV=ZV==="y",FV=RV.x+RV.width/2-UV.width/2,NV=RV.y+RV.height/2-UV.height/2,gV=RV[IV]/2-UV[IV]/2;let eV;switch(dV){case"top":eV={x:FV,y:RV.y-UV.height};break;case"bottom":eV={x:FV,y:RV.y+RV.height};break;case"right":eV={x:RV.x+RV.width,y:NV};break;case"left":eV={x:RV.x-UV.width,y:NV};break;default:eV={x:RV.x,y:RV.y}}switch(getAlignment(J)){case"start":eV[WV]-=gV*(VV&&CV?-1:1);break;case"end":eV[WV]+=gV*(VV&&CV?-1:1);break}return eV}const computePosition$1=async(lV,J,VV)=>{const{placement:RV="bottom",strategy:UV="absolute",middleware:ZV=[],platform:WV}=VV,IV=ZV.filter(Boolean),dV=await(WV.isRTL==null?void 0:WV.isRTL(J));let CV=await WV.getElementRects({reference:lV,floating:J,strategy:UV}),{x:FV,y:NV}=computeCoordsFromPlacement(CV,RV,dV),gV=RV,eV={},JV=0;for(let nV=0;nV<IV.length;nV++){const{name:aV,fn:GV}=IV[nV],{x:cV,y:TV,data:iV,reset:tV}=await GV({x:FV,y:NV,initialPlacement:RV,placement:gV,strategy:UV,middlewareData:eV,rects:CV,platform:WV,elements:{reference:lV,floating:J}});FV=cV??FV,NV=TV??NV,eV={...eV,[aV]:{...eV[aV],...iV}},tV&&JV<=50&&(JV++,typeof tV=="object"&&(tV.placement&&(gV=tV.placement),tV.rects&&(CV=tV.rects===!0?await WV.getElementRects({reference:lV,floating:J,strategy:UV}):tV.rects),{x:FV,y:NV}=computeCoordsFromPlacement(CV,gV,dV)),nV=-1)}return{x:FV,y:NV,placement:gV,strategy:UV,middlewareData:eV}};async function detectOverflow(lV,J){var VV;J===void 0&&(J={});const{x:RV,y:UV,platform:ZV,rects:WV,elements:IV,strategy:dV}=lV,{boundary:CV="clippingAncestors",rootBoundary:FV="viewport",elementContext:NV="floating",altBoundary:gV=!1,padding:eV=0}=evaluate(J,lV),JV=getPaddingObject(eV),aV=IV[gV?NV==="floating"?"reference":"floating":NV],GV=rectToClientRect(await ZV.getClippingRect({element:(VV=await(ZV.isElement==null?void 0:ZV.isElement(aV)))==null||VV?aV:aV.contextElement||await(ZV.getDocumentElement==null?void 0:ZV.getDocumentElement(IV.floating)),boundary:CV,rootBoundary:FV,strategy:dV})),cV=NV==="floating"?{x:RV,y:UV,width:WV.floating.width,height:WV.floating.height}:WV.reference,TV=await(ZV.getOffsetParent==null?void 0:ZV.getOffsetParent(IV.floating)),iV=await(ZV.isElement==null?void 0:ZV.isElement(TV))?await(ZV.getScale==null?void 0:ZV.getScale(TV))||{x:1,y:1}:{x:1,y:1},tV=rectToClientRect(ZV.convertOffsetParentRelativeRectToViewportRelativeRect?await ZV.convertOffsetParentRelativeRectToViewportRelativeRect({elements:IV,rect:cV,offsetParent:TV,strategy:dV}):cV);return{top:(GV.top-tV.top+JV.top)/iV.y,bottom:(tV.bottom-GV.bottom+JV.bottom)/iV.y,left:(GV.left-tV.left+JV.left)/iV.x,right:(tV.right-GV.right+JV.right)/iV.x}}const arrow$3=lV=>({name:"arrow",options:lV,async fn(J){const{x:VV,y:RV,placement:UV,rects:ZV,platform:WV,elements:IV,middlewareData:dV}=J,{element:CV,padding:FV=0}=evaluate(lV,J)||{};if(CV==null)return{};const NV=getPaddingObject(FV),gV={x:VV,y:RV},eV=getAlignmentAxis(UV),JV=getAxisLength(eV),nV=await WV.getDimensions(CV),aV=eV==="y",GV=aV?"top":"left",cV=aV?"bottom":"right",TV=aV?"clientHeight":"clientWidth",iV=ZV.reference[JV]+ZV.reference[eV]-gV[eV]-ZV.floating[JV],tV=gV[eV]-ZV.reference[eV],MV=await(WV.getOffsetParent==null?void 0:WV.getOffsetParent(CV));let AV=MV?MV[TV]:0;(!AV||!await(WV.isElement==null?void 0:WV.isElement(MV)))&&(AV=IV.floating[TV]||ZV.floating[JV]);const pV=iV/2-tV/2,HV=AV/2-nV[JV]/2-1,oV=min(NV[GV],HV),DV=min(NV[cV],HV),wV=oV,qV=AV-nV[JV]-DV,Cl=AV/2-nV[JV]/2+pV,nl=clamp(wV,Cl,qV),Il=!dV.arrow&&getAlignment(UV)!=null&&Cl!==nl&&ZV.reference[JV]/2-(Cl<wV?oV:DV)-nV[JV]/2<0,LV=Il?Cl<wV?Cl-wV:Cl-qV:0;return{[eV]:gV[eV]+LV,data:{[eV]:nl,centerOffset:Cl-nl-LV,...Il&&{alignmentOffset:LV}},reset:Il}}}),flip$2=function(lV){return lV===void 0&&(lV={}),{name:"flip",options:lV,async fn(J){var VV,RV;const{placement:UV,middlewareData:ZV,rects:WV,initialPlacement:IV,platform:dV,elements:CV}=J,{mainAxis:FV=!0,crossAxis:NV=!0,fallbackPlacements:gV,fallbackStrategy:eV="bestFit",fallbackAxisSideDirection:JV="none",flipAlignment:nV=!0,...aV}=evaluate(lV,J);if((VV=ZV.arrow)!=null&&VV.alignmentOffset)return{};const GV=getSide(UV),cV=getSideAxis(IV),TV=getSide(IV)===IV,iV=await(dV.isRTL==null?void 0:dV.isRTL(CV.floating)),tV=gV||(TV||!nV?[getOppositePlacement(IV)]:getExpandedPlacements(IV)),MV=JV!=="none";!gV&&MV&&tV.push(...getOppositeAxisPlacements(IV,nV,JV,iV));const AV=[IV,...tV],pV=await detectOverflow(J,aV),HV=[];let oV=((RV=ZV.flip)==null?void 0:RV.overflows)||[];if(FV&&HV.push(pV[GV]),NV){const Cl=getAlignmentSides(UV,WV,iV);HV.push(pV[Cl[0]],pV[Cl[1]])}if(oV=[...oV,{placement:UV,overflows:HV}],!HV.every(Cl=>Cl<=0)){var DV,wV;const Cl=(((DV=ZV.flip)==null?void 0:DV.index)||0)+1,nl=AV[Cl];if(nl)return{data:{index:Cl,overflows:oV},reset:{placement:nl}};let Il=(wV=oV.filter(LV=>LV.overflows[0]<=0).sort((LV,OV)=>LV.overflows[1]-OV.overflows[1])[0])==null?void 0:wV.placement;if(!Il)switch(eV){case"bestFit":{var qV;const LV=(qV=oV.filter(OV=>{if(MV){const $V=getSideAxis(OV.placement);return $V===cV||$V==="y"}return!0}).map(OV=>[OV.placement,OV.overflows.filter($V=>$V>0).reduce(($V,dl)=>$V+dl,0)]).sort((OV,$V)=>OV[1]-$V[1])[0])==null?void 0:qV[0];LV&&(Il=LV);break}case"initialPlacement":Il=IV;break}if(UV!==Il)return{reset:{placement:Il}}}return{}}}};function getSideOffsets(lV,J){return{top:lV.top-J.height,right:lV.right-J.width,bottom:lV.bottom-J.height,left:lV.left-J.width}}function isAnySideFullyClipped(lV){return sides.some(J=>lV[J]>=0)}const hide$2=function(lV){return lV===void 0&&(lV={}),{name:"hide",options:lV,async fn(J){const{rects:VV}=J,{strategy:RV="referenceHidden",...UV}=evaluate(lV,J);switch(RV){case"referenceHidden":{const ZV=await detectOverflow(J,{...UV,elementContext:"reference"}),WV=getSideOffsets(ZV,VV.reference);return{data:{referenceHiddenOffsets:WV,referenceHidden:isAnySideFullyClipped(WV)}}}case"escaped":{const ZV=await detectOverflow(J,{...UV,altBoundary:!0}),WV=getSideOffsets(ZV,VV.floating);return{data:{escapedOffsets:WV,escaped:isAnySideFullyClipped(WV)}}}default:return{}}}}};async function convertValueToCoords(lV,J){const{placement:VV,platform:RV,elements:UV}=lV,ZV=await(RV.isRTL==null?void 0:RV.isRTL(UV.floating)),WV=getSide(VV),IV=getAlignment(VV),dV=getSideAxis(VV)==="y",CV=["left","top"].includes(WV)?-1:1,FV=ZV&&dV?-1:1,NV=evaluate(J,lV);let{mainAxis:gV,crossAxis:eV,alignmentAxis:JV}=typeof NV=="number"?{mainAxis:NV,crossAxis:0,alignmentAxis:null}:{mainAxis:NV.mainAxis||0,crossAxis:NV.crossAxis||0,alignmentAxis:NV.alignmentAxis};return IV&&typeof JV=="number"&&(eV=IV==="end"?JV*-1:JV),dV?{x:eV*FV,y:gV*CV}:{x:gV*CV,y:eV*FV}}const offset$2=function(lV){return lV===void 0&&(lV=0),{name:"offset",options:lV,async fn(J){var VV,RV;const{x:UV,y:ZV,placement:WV,middlewareData:IV}=J,dV=await convertValueToCoords(J,lV);return WV===((VV=IV.offset)==null?void 0:VV.placement)&&(RV=IV.arrow)!=null&&RV.alignmentOffset?{}:{x:UV+dV.x,y:ZV+dV.y,data:{...dV,placement:WV}}}}},shift$2=function(lV){return lV===void 0&&(lV={}),{name:"shift",options:lV,async fn(J){const{x:VV,y:RV,placement:UV}=J,{mainAxis:ZV=!0,crossAxis:WV=!1,limiter:IV={fn:aV=>{let{x:GV,y:cV}=aV;return{x:GV,y:cV}}},...dV}=evaluate(lV,J),CV={x:VV,y:RV},FV=await detectOverflow(J,dV),NV=getSideAxis(getSide(UV)),gV=getOppositeAxis(NV);let eV=CV[gV],JV=CV[NV];if(ZV){const aV=gV==="y"?"top":"left",GV=gV==="y"?"bottom":"right",cV=eV+FV[aV],TV=eV-FV[GV];eV=clamp(cV,eV,TV)}if(WV){const aV=NV==="y"?"top":"left",GV=NV==="y"?"bottom":"right",cV=JV+FV[aV],TV=JV-FV[GV];JV=clamp(cV,JV,TV)}const nV=IV.fn({...J,[gV]:eV,[NV]:JV});return{...nV,data:{x:nV.x-VV,y:nV.y-RV,enabled:{[gV]:ZV,[NV]:WV}}}}}},limitShift$2=function(lV){return lV===void 0&&(lV={}),{options:lV,fn(J){const{x:VV,y:RV,placement:UV,rects:ZV,middlewareData:WV}=J,{offset:IV=0,mainAxis:dV=!0,crossAxis:CV=!0}=evaluate(lV,J),FV={x:VV,y:RV},NV=getSideAxis(UV),gV=getOppositeAxis(NV);let eV=FV[gV],JV=FV[NV];const nV=evaluate(IV,J),aV=typeof nV=="number"?{mainAxis:nV,crossAxis:0}:{mainAxis:0,crossAxis:0,...nV};if(dV){const TV=gV==="y"?"height":"width",iV=ZV.reference[gV]-ZV.floating[TV]+aV.mainAxis,tV=ZV.reference[gV]+ZV.reference[TV]-aV.mainAxis;eV<iV?eV=iV:eV>tV&&(eV=tV)}if(CV){var GV,cV;const TV=gV==="y"?"width":"height",iV=["top","left"].includes(getSide(UV)),tV=ZV.reference[NV]-ZV.floating[TV]+(iV&&((GV=WV.offset)==null?void 0:GV[NV])||0)+(iV?0:aV.crossAxis),MV=ZV.reference[NV]+ZV.reference[TV]+(iV?0:((cV=WV.offset)==null?void 0:cV[NV])||0)-(iV?aV.crossAxis:0);JV<tV?JV=tV:JV>MV&&(JV=MV)}return{[gV]:eV,[NV]:JV}}}},size$2=function(lV){return lV===void 0&&(lV={}),{name:"size",options:lV,async fn(J){var VV,RV;const{placement:UV,rects:ZV,platform:WV,elements:IV}=J,{apply:dV=()=>{},...CV}=evaluate(lV,J),FV=await detectOverflow(J,CV),NV=getSide(UV),gV=getAlignment(UV),eV=getSideAxis(UV)==="y",{width:JV,height:nV}=ZV.floating;let aV,GV;NV==="top"||NV==="bottom"?(aV=NV,GV=gV===(await(WV.isRTL==null?void 0:WV.isRTL(IV.floating))?"start":"end")?"left":"right"):(GV=NV,aV=gV==="end"?"top":"bottom");const cV=nV-FV.top-FV.bottom,TV=JV-FV.left-FV.right,iV=min(nV-FV[aV],cV),tV=min(JV-FV[GV],TV),MV=!J.middlewareData.shift;let AV=iV,pV=tV;if((VV=J.middlewareData.shift)!=null&&VV.enabled.x&&(pV=TV),(RV=J.middlewareData.shift)!=null&&RV.enabled.y&&(AV=cV),MV&&!gV){const oV=max(FV.left,0),DV=max(FV.right,0),wV=max(FV.top,0),qV=max(FV.bottom,0);eV?pV=JV-2*(oV!==0||DV!==0?oV+DV:max(FV.left,FV.right)):AV=nV-2*(wV!==0||qV!==0?wV+qV:max(FV.top,FV.bottom))}await dV({...J,availableWidth:pV,availableHeight:AV});const HV=await WV.getDimensions(IV.floating);return JV!==HV.width||nV!==HV.height?{reset:{rects:!0}}:{}}}};function hasWindow(){return typeof window<"u"}function getNodeName(lV){return isNode(lV)?(lV.nodeName||"").toLowerCase():"#document"}function getWindow(lV){var J;return(lV==null||(J=lV.ownerDocument)==null?void 0:J.defaultView)||window}function getDocumentElement(lV){var J;return(J=(isNode(lV)?lV.ownerDocument:lV.document)||window.document)==null?void 0:J.documentElement}function isNode(lV){return hasWindow()?lV instanceof Node||lV instanceof getWindow(lV).Node:!1}function isElement(lV){return hasWindow()?lV instanceof Element||lV instanceof getWindow(lV).Element:!1}function isHTMLElement(lV){return hasWindow()?lV instanceof HTMLElement||lV instanceof getWindow(lV).HTMLElement:!1}function isShadowRoot(lV){return!hasWindow()||typeof ShadowRoot>"u"?!1:lV instanceof ShadowRoot||lV instanceof getWindow(lV).ShadowRoot}function isOverflowElement(lV){const{overflow:J,overflowX:VV,overflowY:RV,display:UV}=getComputedStyle$1(lV);return/auto|scroll|overlay|hidden|clip/.test(J+RV+VV)&&!["inline","contents"].includes(UV)}function isTableElement(lV){return["table","td","th"].includes(getNodeName(lV))}function isTopLayer(lV){return[":popover-open",":modal"].some(J=>{try{return lV.matches(J)}catch{return!1}})}function isContainingBlock(lV){const J=isWebKit(),VV=isElement(lV)?getComputedStyle$1(lV):lV;return VV.transform!=="none"||VV.perspective!=="none"||(VV.containerType?VV.containerType!=="normal":!1)||!J&&(VV.backdropFilter?VV.backdropFilter!=="none":!1)||!J&&(VV.filter?VV.filter!=="none":!1)||["transform","perspective","filter"].some(RV=>(VV.willChange||"").includes(RV))||["paint","layout","strict","content"].some(RV=>(VV.contain||"").includes(RV))}function getContainingBlock(lV){let J=getParentNode(lV);for(;isHTMLElement(J)&&!isLastTraversableNode(J);){if(isContainingBlock(J))return J;if(isTopLayer(J))return null;J=getParentNode(J)}return null}function isWebKit(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function isLastTraversableNode(lV){return["html","body","#document"].includes(getNodeName(lV))}function getComputedStyle$1(lV){return getWindow(lV).getComputedStyle(lV)}function getNodeScroll(lV){return isElement(lV)?{scrollLeft:lV.scrollLeft,scrollTop:lV.scrollTop}:{scrollLeft:lV.scrollX,scrollTop:lV.scrollY}}function getParentNode(lV){if(getNodeName(lV)==="html")return lV;const J=lV.assignedSlot||lV.parentNode||isShadowRoot(lV)&&lV.host||getDocumentElement(lV);return isShadowRoot(J)?J.host:J}function getNearestOverflowAncestor(lV){const J=getParentNode(lV);return isLastTraversableNode(J)?lV.ownerDocument?lV.ownerDocument.body:lV.body:isHTMLElement(J)&&isOverflowElement(J)?J:getNearestOverflowAncestor(J)}function getOverflowAncestors(lV,J,VV){var RV;J===void 0&&(J=[]),VV===void 0&&(VV=!0);const UV=getNearestOverflowAncestor(lV),ZV=UV===((RV=lV.ownerDocument)==null?void 0:RV.body),WV=getWindow(UV);if(ZV){const IV=getFrameElement(WV);return J.concat(WV,WV.visualViewport||[],isOverflowElement(UV)?UV:[],IV&&VV?getOverflowAncestors(IV):[])}return J.concat(UV,getOverflowAncestors(UV,[],VV))}function getFrameElement(lV){return lV.parent&&Object.getPrototypeOf(lV.parent)?lV.frameElement:null}function getCssDimensions(lV){const J=getComputedStyle$1(lV);let VV=parseFloat(J.width)||0,RV=parseFloat(J.height)||0;const UV=isHTMLElement(lV),ZV=UV?lV.offsetWidth:VV,WV=UV?lV.offsetHeight:RV,IV=round(VV)!==ZV||round(RV)!==WV;return IV&&(VV=ZV,RV=WV),{width:VV,height:RV,$:IV}}function unwrapElement(lV){return isElement(lV)?lV:lV.contextElement}function getScale(lV){const J=unwrapElement(lV);if(!isHTMLElement(J))return createCoords(1);const VV=J.getBoundingClientRect(),{width:RV,height:UV,$:ZV}=getCssDimensions(J);let WV=(ZV?round(VV.width):VV.width)/RV,IV=(ZV?round(VV.height):VV.height)/UV;return(!WV||!Number.isFinite(WV))&&(WV=1),(!IV||!Number.isFinite(IV))&&(IV=1),{x:WV,y:IV}}const noOffsets=createCoords(0);function getVisualOffsets(lV){const J=getWindow(lV);return!isWebKit()||!J.visualViewport?noOffsets:{x:J.visualViewport.offsetLeft,y:J.visualViewport.offsetTop}}function shouldAddVisualOffsets(lV,J,VV){return J===void 0&&(J=!1),!VV||J&&VV!==getWindow(lV)?!1:J}function getBoundingClientRect(lV,J,VV,RV){J===void 0&&(J=!1),VV===void 0&&(VV=!1);const UV=lV.getBoundingClientRect(),ZV=unwrapElement(lV);let WV=createCoords(1);J&&(RV?isElement(RV)&&(WV=getScale(RV)):WV=getScale(lV));const IV=shouldAddVisualOffsets(ZV,VV,RV)?getVisualOffsets(ZV):createCoords(0);let dV=(UV.left+IV.x)/WV.x,CV=(UV.top+IV.y)/WV.y,FV=UV.width/WV.x,NV=UV.height/WV.y;if(ZV){const gV=getWindow(ZV),eV=RV&&isElement(RV)?getWindow(RV):RV;let JV=gV,nV=getFrameElement(JV);for(;nV&&RV&&eV!==JV;){const aV=getScale(nV),GV=nV.getBoundingClientRect(),cV=getComputedStyle$1(nV),TV=GV.left+(nV.clientLeft+parseFloat(cV.paddingLeft))*aV.x,iV=GV.top+(nV.clientTop+parseFloat(cV.paddingTop))*aV.y;dV*=aV.x,CV*=aV.y,FV*=aV.x,NV*=aV.y,dV+=TV,CV+=iV,JV=getWindow(nV),nV=getFrameElement(JV)}}return rectToClientRect({width:FV,height:NV,x:dV,y:CV})}function getWindowScrollBarX(lV,J){const VV=getNodeScroll(lV).scrollLeft;return J?J.left+VV:getBoundingClientRect(getDocumentElement(lV)).left+VV}function getHTMLOffset(lV,J,VV){VV===void 0&&(VV=!1);const RV=lV.getBoundingClientRect(),UV=RV.left+J.scrollLeft-(VV?0:getWindowScrollBarX(lV,RV)),ZV=RV.top+J.scrollTop;return{x:UV,y:ZV}}function convertOffsetParentRelativeRectToViewportRelativeRect(lV){let{elements:J,rect:VV,offsetParent:RV,strategy:UV}=lV;const ZV=UV==="fixed",WV=getDocumentElement(RV),IV=J?isTopLayer(J.floating):!1;if(RV===WV||IV&&ZV)return VV;let dV={scrollLeft:0,scrollTop:0},CV=createCoords(1);const FV=createCoords(0),NV=isHTMLElement(RV);if((NV||!NV&&!ZV)&&((getNodeName(RV)!=="body"||isOverflowElement(WV))&&(dV=getNodeScroll(RV)),isHTMLElement(RV))){const eV=getBoundingClientRect(RV);CV=getScale(RV),FV.x=eV.x+RV.clientLeft,FV.y=eV.y+RV.clientTop}const gV=WV&&!NV&&!ZV?getHTMLOffset(WV,dV,!0):createCoords(0);return{width:VV.width*CV.x,height:VV.height*CV.y,x:VV.x*CV.x-dV.scrollLeft*CV.x+FV.x+gV.x,y:VV.y*CV.y-dV.scrollTop*CV.y+FV.y+gV.y}}function getClientRects(lV){return Array.from(lV.getClientRects())}function getDocumentRect(lV){const J=getDocumentElement(lV),VV=getNodeScroll(lV),RV=lV.ownerDocument.body,UV=max(J.scrollWidth,J.clientWidth,RV.scrollWidth,RV.clientWidth),ZV=max(J.scrollHeight,J.clientHeight,RV.scrollHeight,RV.clientHeight);let WV=-VV.scrollLeft+getWindowScrollBarX(lV);const IV=-VV.scrollTop;return getComputedStyle$1(RV).direction==="rtl"&&(WV+=max(J.clientWidth,RV.clientWidth)-UV),{width:UV,height:ZV,x:WV,y:IV}}function getViewportRect(lV,J){const VV=getWindow(lV),RV=getDocumentElement(lV),UV=VV.visualViewport;let ZV=RV.clientWidth,WV=RV.clientHeight,IV=0,dV=0;if(UV){ZV=UV.width,WV=UV.height;const CV=isWebKit();(!CV||CV&&J==="fixed")&&(IV=UV.offsetLeft,dV=UV.offsetTop)}return{width:ZV,height:WV,x:IV,y:dV}}function getInnerBoundingClientRect(lV,J){const VV=getBoundingClientRect(lV,!0,J==="fixed"),RV=VV.top+lV.clientTop,UV=VV.left+lV.clientLeft,ZV=isHTMLElement(lV)?getScale(lV):createCoords(1),WV=lV.clientWidth*ZV.x,IV=lV.clientHeight*ZV.y,dV=UV*ZV.x,CV=RV*ZV.y;return{width:WV,height:IV,x:dV,y:CV}}function getClientRectFromClippingAncestor(lV,J,VV){let RV;if(J==="viewport")RV=getViewportRect(lV,VV);else if(J==="document")RV=getDocumentRect(getDocumentElement(lV));else if(isElement(J))RV=getInnerBoundingClientRect(J,VV);else{const UV=getVisualOffsets(lV);RV={x:J.x-UV.x,y:J.y-UV.y,width:J.width,height:J.height}}return rectToClientRect(RV)}function hasFixedPositionAncestor(lV,J){const VV=getParentNode(lV);return VV===J||!isElement(VV)||isLastTraversableNode(VV)?!1:getComputedStyle$1(VV).position==="fixed"||hasFixedPositionAncestor(VV,J)}function getClippingElementAncestors(lV,J){const VV=J.get(lV);if(VV)return VV;let RV=getOverflowAncestors(lV,[],!1).filter(IV=>isElement(IV)&&getNodeName(IV)!=="body"),UV=null;const ZV=getComputedStyle$1(lV).position==="fixed";let WV=ZV?getParentNode(lV):lV;for(;isElement(WV)&&!isLastTraversableNode(WV);){const IV=getComputedStyle$1(WV),dV=isContainingBlock(WV);!dV&&IV.position==="fixed"&&(UV=null),(ZV?!dV&&!UV:!dV&&IV.position==="static"&&!!UV&&["absolute","fixed"].includes(UV.position)||isOverflowElement(WV)&&!dV&&hasFixedPositionAncestor(lV,WV))?RV=RV.filter(FV=>FV!==WV):UV=IV,WV=getParentNode(WV)}return J.set(lV,RV),RV}function getClippingRect(lV){let{element:J,boundary:VV,rootBoundary:RV,strategy:UV}=lV;const WV=[...VV==="clippingAncestors"?isTopLayer(J)?[]:getClippingElementAncestors(J,this._c):[].concat(VV),RV],IV=WV[0],dV=WV.reduce((CV,FV)=>{const NV=getClientRectFromClippingAncestor(J,FV,UV);return CV.top=max(NV.top,CV.top),CV.right=min(NV.right,CV.right),CV.bottom=min(NV.bottom,CV.bottom),CV.left=max(NV.left,CV.left),CV},getClientRectFromClippingAncestor(J,IV,UV));return{width:dV.right-dV.left,height:dV.bottom-dV.top,x:dV.left,y:dV.top}}function getDimensions(lV){const{width:J,height:VV}=getCssDimensions(lV);return{width:J,height:VV}}function getRectRelativeToOffsetParent(lV,J,VV){const RV=isHTMLElement(J),UV=getDocumentElement(J),ZV=VV==="fixed",WV=getBoundingClientRect(lV,!0,ZV,J);let IV={scrollLeft:0,scrollTop:0};const dV=createCoords(0);if(RV||!RV&&!ZV)if((getNodeName(J)!=="body"||isOverflowElement(UV))&&(IV=getNodeScroll(J)),RV){const gV=getBoundingClientRect(J,!0,ZV,J);dV.x=gV.x+J.clientLeft,dV.y=gV.y+J.clientTop}else UV&&(dV.x=getWindowScrollBarX(UV));const CV=UV&&!RV&&!ZV?getHTMLOffset(UV,IV):createCoords(0),FV=WV.left+IV.scrollLeft-dV.x-CV.x,NV=WV.top+IV.scrollTop-dV.y-CV.y;return{x:FV,y:NV,width:WV.width,height:WV.height}}function isStaticPositioned(lV){return getComputedStyle$1(lV).position==="static"}function getTrueOffsetParent(lV,J){if(!isHTMLElement(lV)||getComputedStyle$1(lV).position==="fixed")return null;if(J)return J(lV);let VV=lV.offsetParent;return getDocumentElement(lV)===VV&&(VV=VV.ownerDocument.body),VV}function getOffsetParent(lV,J){const VV=getWindow(lV);if(isTopLayer(lV))return VV;if(!isHTMLElement(lV)){let UV=getParentNode(lV);for(;UV&&!isLastTraversableNode(UV);){if(isElement(UV)&&!isStaticPositioned(UV))return UV;UV=getParentNode(UV)}return VV}let RV=getTrueOffsetParent(lV,J);for(;RV&&isTableElement(RV)&&isStaticPositioned(RV);)RV=getTrueOffsetParent(RV,J);return RV&&isLastTraversableNode(RV)&&isStaticPositioned(RV)&&!isContainingBlock(RV)?VV:RV||getContainingBlock(lV)||VV}const getElementRects=async function(lV){const J=this.getOffsetParent||getOffsetParent,VV=this.getDimensions,RV=await VV(lV.floating);return{reference:getRectRelativeToOffsetParent(lV.reference,await J(lV.floating),lV.strategy),floating:{x:0,y:0,width:RV.width,height:RV.height}}};function isRTL(lV){return getComputedStyle$1(lV).direction==="rtl"}const platform={convertOffsetParentRelativeRectToViewportRelativeRect,getDocumentElement,getClippingRect,getOffsetParent,getElementRects,getClientRects,getDimensions,getScale,isElement,isRTL};function observeMove(lV,J){let VV=null,RV;const UV=getDocumentElement(lV);function ZV(){var IV;clearTimeout(RV),(IV=VV)==null||IV.disconnect(),VV=null}function WV(IV,dV){IV===void 0&&(IV=!1),dV===void 0&&(dV=1),ZV();const{left:CV,top:FV,width:NV,height:gV}=lV.getBoundingClientRect();if(IV||J(),!NV||!gV)return;const eV=floor(FV),JV=floor(UV.clientWidth-(CV+NV)),nV=floor(UV.clientHeight-(FV+gV)),aV=floor(CV),cV={rootMargin:-eV+"px "+-JV+"px "+-nV+"px "+-aV+"px",threshold:max(0,min(1,dV))||1};let TV=!0;function iV(tV){const MV=tV[0].intersectionRatio;if(MV!==dV){if(!TV)return WV();MV?WV(!1,MV):RV=setTimeout(()=>{WV(!1,1e-7)},1e3)}TV=!1}try{VV=new IntersectionObserver(iV,{...cV,root:UV.ownerDocument})}catch{VV=new IntersectionObserver(iV,cV)}VV.observe(lV)}return WV(!0),ZV}function autoUpdate(lV,J,VV,RV){RV===void 0&&(RV={});const{ancestorScroll:UV=!0,ancestorResize:ZV=!0,elementResize:WV=typeof ResizeObserver=="function",layoutShift:IV=typeof IntersectionObserver=="function",animationFrame:dV=!1}=RV,CV=unwrapElement(lV),FV=UV||ZV?[...CV?getOverflowAncestors(CV):[],...getOverflowAncestors(J)]:[];FV.forEach(GV=>{UV&&GV.addEventListener("scroll",VV,{passive:!0}),ZV&&GV.addEventListener("resize",VV)});const NV=CV&&IV?observeMove(CV,VV):null;let gV=-1,eV=null;WV&&(eV=new ResizeObserver(GV=>{let[cV]=GV;cV&&cV.target===CV&&eV&&(eV.unobserve(J),cancelAnimationFrame(gV),gV=requestAnimationFrame(()=>{var TV;(TV=eV)==null||TV.observe(J)})),VV()}),CV&&!dV&&eV.observe(CV),eV.observe(J));let JV,nV=dV?getBoundingClientRect(lV):null;dV&&aV();function aV(){const GV=getBoundingClientRect(lV);nV&&(GV.x!==nV.x||GV.y!==nV.y||GV.width!==nV.width||GV.height!==nV.height)&&VV(),nV=GV,JV=requestAnimationFrame(aV)}return VV(),()=>{var GV;FV.forEach(cV=>{UV&&cV.removeEventListener("scroll",VV),ZV&&cV.removeEventListener("resize",VV)}),NV==null||NV(),(GV=eV)==null||GV.disconnect(),eV=null,dV&&cancelAnimationFrame(JV)}}const offset$1=offset$2,shift$1=shift$2,flip$1=flip$2,size$1=size$2,hide$1=hide$2,arrow$2=arrow$3,limitShift$1=limitShift$2,computePosition=(lV,J,VV)=>{const RV=new Map,UV={platform,...VV},ZV={...UV.platform,_c:RV};return computePosition$1(lV,J,{...UV,platform:ZV})};var index=typeof document<"u"?reactExports.useLayoutEffect:reactExports.useEffect;function deepEqual(lV,J){if(lV===J)return!0;if(typeof lV!=typeof J)return!1;if(typeof lV=="function"&&lV.toString()===J.toString())return!0;let VV,RV,UV;if(lV&&J&&typeof lV=="object"){if(Array.isArray(lV)){if(VV=lV.length,VV!==J.length)return!1;for(RV=VV;RV--!==0;)if(!deepEqual(lV[RV],J[RV]))return!1;return!0}if(UV=Object.keys(lV),VV=UV.length,VV!==Object.keys(J).length)return!1;for(RV=VV;RV--!==0;)if(!{}.hasOwnProperty.call(J,UV[RV]))return!1;for(RV=VV;RV--!==0;){const ZV=UV[RV];if(!(ZV==="_owner"&&lV.$$typeof)&&!deepEqual(lV[ZV],J[ZV]))return!1}return!0}return lV!==lV&&J!==J}function getDPR(lV){return typeof window>"u"?1:(lV.ownerDocument.defaultView||window).devicePixelRatio||1}function roundByDPR(lV,J){const VV=getDPR(lV);return Math.round(J*VV)/VV}function useLatestRef(lV){const J=reactExports.useRef(lV);return index(()=>{J.current=lV}),J}function useFloating(lV){lV===void 0&&(lV={});const{placement:J="bottom",strategy:VV="absolute",middleware:RV=[],platform:UV,elements:{reference:ZV,floating:WV}={},transform:IV=!0,whileElementsMounted:dV,open:CV}=lV,[FV,NV]=reactExports.useState({x:0,y:0,strategy:VV,placement:J,middlewareData:{},isPositioned:!1}),[gV,eV]=reactExports.useState(RV);deepEqual(gV,RV)||eV(RV);const[JV,nV]=reactExports.useState(null),[aV,GV]=reactExports.useState(null),cV=reactExports.useCallback(OV=>{OV!==MV.current&&(MV.current=OV,nV(OV))},[]),TV=reactExports.useCallback(OV=>{OV!==AV.current&&(AV.current=OV,GV(OV))},[]),iV=ZV||JV,tV=WV||aV,MV=reactExports.useRef(null),AV=reactExports.useRef(null),pV=reactExports.useRef(FV),HV=dV!=null,oV=useLatestRef(dV),DV=useLatestRef(UV),wV=useLatestRef(CV),qV=reactExports.useCallback(()=>{if(!MV.current||!AV.current)return;const OV={placement:J,strategy:VV,middleware:gV};DV.current&&(OV.platform=DV.current),computePosition(MV.current,AV.current,OV).then($V=>{const dl={...$V,isPositioned:wV.current!==!1};Cl.current&&!deepEqual(pV.current,dl)&&(pV.current=dl,reactDomExports.flushSync(()=>{NV(dl)}))})},[gV,J,VV,DV,wV]);index(()=>{CV===!1&&pV.current.isPositioned&&(pV.current.isPositioned=!1,NV(OV=>({...OV,isPositioned:!1})))},[CV]);const Cl=reactExports.useRef(!1);index(()=>(Cl.current=!0,()=>{Cl.current=!1}),[]),index(()=>{if(iV&&(MV.current=iV),tV&&(AV.current=tV),iV&&tV){if(oV.current)return oV.current(iV,tV,qV);qV()}},[iV,tV,qV,oV,HV]);const nl=reactExports.useMemo(()=>({reference:MV,floating:AV,setReference:cV,setFloating:TV}),[cV,TV]),Il=reactExports.useMemo(()=>({reference:iV,floating:tV}),[iV,tV]),LV=reactExports.useMemo(()=>{const OV={position:VV,left:0,top:0};if(!Il.floating)return OV;const $V=roundByDPR(Il.floating,FV.x),dl=roundByDPR(Il.floating,FV.y);return IV?{...OV,transform:"translate("+$V+"px, "+dl+"px)",...getDPR(Il.floating)>=1.5&&{willChange:"transform"}}:{position:VV,left:$V,top:dl}},[VV,IV,Il.floating,FV.x,FV.y]);return reactExports.useMemo(()=>({...FV,update:qV,refs:nl,elements:Il,floatingStyles:LV}),[FV,qV,nl,Il,LV])}const arrow$1=lV=>{function J(VV){return{}.hasOwnProperty.call(VV,"current")}return{name:"arrow",options:lV,fn(VV){const{element:RV,padding:UV}=typeof lV=="function"?lV(VV):lV;return RV&&J(RV)?RV.current!=null?arrow$2({element:RV.current,padding:UV}).fn(VV):{}:RV?arrow$2({element:RV,padding:UV}).fn(VV):{}}}},offset=(lV,J)=>({...offset$1(lV),options:[lV,J]}),shift=(lV,J)=>({...shift$1(lV),options:[lV,J]}),limitShift=(lV,J)=>({...limitShift$1(lV),options:[lV,J]}),flip=(lV,J)=>({...flip$1(lV),options:[lV,J]}),size=(lV,J)=>({...size$1(lV),options:[lV,J]}),hide=(lV,J)=>({...hide$1(lV),options:[lV,J]}),arrow=(lV,J)=>({...arrow$1(lV),options:[lV,J]});var NAME="Arrow",Arrow$1=reactExports.forwardRef((lV,J)=>{const{children:VV,width:RV=10,height:UV=5,...ZV}=lV;return jsxRuntimeExports.jsx(Primitive.svg,{...ZV,ref:J,width:RV,height:UV,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:lV.asChild?VV:jsxRuntimeExports.jsx("polygon",{points:"0,0 30,0 15,10"})})});Arrow$1.displayName=NAME;var Root=Arrow$1;function createContextScope(lV,J=[]){let VV=[];function RV(ZV,WV){const IV=reactExports.createContext(WV),dV=VV.length;VV=[...VV,WV];function CV(NV){const{scope:gV,children:eV,...JV}=NV,nV=(gV==null?void 0:gV[lV][dV])||IV,aV=reactExports.useMemo(()=>JV,Object.values(JV));return jsxRuntimeExports.jsx(nV.Provider,{value:aV,children:eV})}function FV(NV,gV){const eV=(gV==null?void 0:gV[lV][dV])||IV,JV=reactExports.useContext(eV);if(JV)return JV;if(WV!==void 0)return WV;throw new Error(`\`${NV}\` must be used within \`${ZV}\``)}return CV.displayName=ZV+"Provider",[CV,FV]}const UV=()=>{const ZV=VV.map(WV=>reactExports.createContext(WV));return function(IV){const dV=(IV==null?void 0:IV[lV])||ZV;return reactExports.useMemo(()=>({[`__scope${lV}`]:{...IV,[lV]:dV}}),[IV,dV])}};return UV.scopeName=lV,[RV,composeContextScopes(UV,...J)]}function composeContextScopes(...lV){const J=lV[0];if(lV.length===1)return J;const VV=()=>{const RV=lV.map(UV=>({useScope:UV(),scopeName:UV.scopeName}));return function(ZV){const WV=RV.reduce((IV,{useScope:dV,scopeName:CV})=>{const NV=dV(ZV)[`__scope${CV}`];return{...IV,...NV}},{});return reactExports.useMemo(()=>({[`__scope${J.scopeName}`]:WV}),[WV])}};return VV.scopeName=J.scopeName,VV}function useSize(lV){const[J,VV]=reactExports.useState(void 0);return useLayoutEffect2(()=>{if(lV){VV({width:lV.offsetWidth,height:lV.offsetHeight});const RV=new ResizeObserver(UV=>{if(!Array.isArray(UV)||!UV.length)return;const ZV=UV[0];let WV,IV;if("borderBoxSize"in ZV){const dV=ZV.borderBoxSize,CV=Array.isArray(dV)?dV[0]:dV;WV=CV.inlineSize,IV=CV.blockSize}else WV=lV.offsetWidth,IV=lV.offsetHeight;VV({width:WV,height:IV})});return RV.observe(lV,{box:"border-box"}),()=>RV.unobserve(lV)}else VV(void 0)},[lV]),J}var POPPER_NAME="Popper",[createPopperContext,createPopperScope]=createContextScope(POPPER_NAME),[PopperProvider,usePopperContext]=createPopperContext(POPPER_NAME),Popper=lV=>{const{__scopePopper:J,children:VV}=lV,[RV,UV]=reactExports.useState(null);return jsxRuntimeExports.jsx(PopperProvider,{scope:J,anchor:RV,onAnchorChange:UV,children:VV})};Popper.displayName=POPPER_NAME;var ANCHOR_NAME$1="PopperAnchor",PopperAnchor=reactExports.forwardRef((lV,J)=>{const{__scopePopper:VV,virtualRef:RV,...UV}=lV,ZV=usePopperContext(ANCHOR_NAME$1,VV),WV=reactExports.useRef(null),IV=useComposedRefs(J,WV);return reactExports.useEffect(()=>{ZV.onAnchorChange((RV==null?void 0:RV.current)||WV.current)}),RV?null:jsxRuntimeExports.jsx(Primitive.div,{...UV,ref:IV})});PopperAnchor.displayName=ANCHOR_NAME$1;var CONTENT_NAME$2="PopperContent",[PopperContentProvider,useContentContext]=createPopperContext(CONTENT_NAME$2),PopperContent=reactExports.forwardRef((lV,J)=>{var jl,Ll,ol,Tl,kl,ul;const{__scopePopper:VV,side:RV="bottom",sideOffset:UV=0,align:ZV="center",alignOffset:WV=0,arrowPadding:IV=0,avoidCollisions:dV=!0,collisionBoundary:CV=[],collisionPadding:FV=0,sticky:NV="partial",hideWhenDetached:gV=!1,updatePositionStrategy:eV="optimized",onPlaced:JV,...nV}=lV,aV=usePopperContext(CONTENT_NAME$2,VV),[GV,cV]=reactExports.useState(null),TV=useComposedRefs(J,UR=>cV(UR)),[iV,tV]=reactExports.useState(null),MV=useSize(iV),AV=(MV==null?void 0:MV.width)??0,pV=(MV==null?void 0:MV.height)??0,HV=RV+(ZV!=="center"?"-"+ZV:""),oV=typeof FV=="number"?FV:{top:0,right:0,bottom:0,left:0,...FV},DV=Array.isArray(CV)?CV:[CV],wV=DV.length>0,qV={padding:oV,boundary:DV.filter(isNotNull),altBoundary:wV},{refs:Cl,floatingStyles:nl,placement:Il,isPositioned:LV,middlewareData:OV}=useFloating({strategy:"fixed",placement:HV,whileElementsMounted:(...UR)=>autoUpdate(...UR,{animationFrame:eV==="always"}),elements:{reference:aV.anchor},middleware:[offset({mainAxis:UV+pV,alignmentAxis:WV}),dV&&shift({mainAxis:!0,crossAxis:!1,limiter:NV==="partial"?limitShift():void 0,...qV}),dV&&flip({...qV}),size({...qV,apply:({elements:UR,rects:JR,availableWidth:FR,availableHeight:QR})=>{const{width:hR,height:MR}=JR.reference,mR=UR.floating.style;mR.setProperty("--radix-popper-available-width",`${FR}px`),mR.setProperty("--radix-popper-available-height",`${QR}px`),mR.setProperty("--radix-popper-anchor-width",`${hR}px`),mR.setProperty("--radix-popper-anchor-height",`${MR}px`)}}),iV&&arrow({element:iV,padding:IV}),transformOrigin({arrowWidth:AV,arrowHeight:pV}),gV&&hide({strategy:"referenceHidden",...qV})]}),[$V,dl]=getSideAndAlignFromPlacement(Il),Wl=useCallbackRef$1(JV);useLayoutEffect2(()=>{LV&&(Wl==null||Wl())},[LV,Wl]);const el=(jl=OV.arrow)==null?void 0:jl.x,pl=(Ll=OV.arrow)==null?void 0:Ll.y,ml=((ol=OV.arrow)==null?void 0:ol.centerOffset)!==0,[Bl,xl]=reactExports.useState();return useLayoutEffect2(()=>{GV&&xl(window.getComputedStyle(GV).zIndex)},[GV]),jsxRuntimeExports.jsx("div",{ref:Cl.setFloating,"data-radix-popper-content-wrapper":"",style:{...nl,transform:LV?nl.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Bl,"--radix-popper-transform-origin":[(Tl=OV.transformOrigin)==null?void 0:Tl.x,(kl=OV.transformOrigin)==null?void 0:kl.y].join(" "),...((ul=OV.hide)==null?void 0:ul.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:lV.dir,children:jsxRuntimeExports.jsx(PopperContentProvider,{scope:VV,placedSide:$V,onArrowChange:tV,arrowX:el,arrowY:pl,shouldHideArrow:ml,children:jsxRuntimeExports.jsx(Primitive.div,{"data-side":$V,"data-align":dl,...nV,ref:TV,style:{...nV.style,animation:LV?void 0:"none"}})})})});PopperContent.displayName=CONTENT_NAME$2;var ARROW_NAME$2="PopperArrow",OPPOSITE_SIDE={top:"bottom",right:"left",bottom:"top",left:"right"},PopperArrow=reactExports.forwardRef(function lV(J,VV){const{__scopePopper:RV,...UV}=J,ZV=useContentContext(ARROW_NAME$2,RV),WV=OPPOSITE_SIDE[ZV.placedSide];return jsxRuntimeExports.jsx("span",{ref:ZV.onArrowChange,style:{position:"absolute",left:ZV.arrowX,top:ZV.arrowY,[WV]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[ZV.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[ZV.placedSide],visibility:ZV.shouldHideArrow?"hidden":void 0},children:jsxRuntimeExports.jsx(Root,{...UV,ref:VV,style:{...UV.style,display:"block"}})})});PopperArrow.displayName=ARROW_NAME$2;function isNotNull(lV){return lV!==null}var transformOrigin=lV=>({name:"transformOrigin",options:lV,fn(J){var aV,GV,cV;const{placement:VV,rects:RV,middlewareData:UV}=J,WV=((aV=UV.arrow)==null?void 0:aV.centerOffset)!==0,IV=WV?0:lV.arrowWidth,dV=WV?0:lV.arrowHeight,[CV,FV]=getSideAndAlignFromPlacement(VV),NV={start:"0%",center:"50%",end:"100%"}[FV],gV=(((GV=UV.arrow)==null?void 0:GV.x)??0)+IV/2,eV=(((cV=UV.arrow)==null?void 0:cV.y)??0)+dV/2;let JV="",nV="";return CV==="bottom"?(JV=WV?NV:`${gV}px`,nV=`${-dV}px`):CV==="top"?(JV=WV?NV:`${gV}px`,nV=`${RV.floating.height+dV}px`):CV==="right"?(JV=`${-dV}px`,nV=WV?NV:`${eV}px`):CV==="left"&&(JV=`${RV.floating.width+dV}px`,nV=WV?NV:`${eV}px`),{data:{x:JV,y:nV}}}});function getSideAndAlignFromPlacement(lV){const[J,VV="center"]=lV.split("-");return[J,VV]}var Root2$1=Popper,Anchor=PopperAnchor,Content=PopperContent,Arrow=PopperArrow,PORTAL_NAME$2="Portal",Portal$1=reactExports.forwardRef((lV,J)=>{var IV;const{container:VV,...RV}=lV,[UV,ZV]=reactExports.useState(!1);useLayoutEffect2(()=>ZV(!0),[]);const WV=VV||UV&&((IV=globalThis==null?void 0:globalThis.document)==null?void 0:IV.body);return WV?ReactDOM.createPortal(jsxRuntimeExports.jsx(Primitive.div,{...RV,ref:J}),WV):null});Portal$1.displayName=PORTAL_NAME$2;var getDefaultParent=function(lV){if(typeof document>"u")return null;var J=Array.isArray(lV)?lV[0]:lV;return J.ownerDocument.body},counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={},lockCount=0,unwrapHost=function(lV){return lV&&(lV.host||unwrapHost(lV.parentNode))},correctTargets=function(lV,J){return J.map(function(VV){if(lV.contains(VV))return VV;var RV=unwrapHost(VV);return RV&&lV.contains(RV)?RV:(console.error("aria-hidden",VV,"in not contained inside",lV,". Doing nothing"),null)}).filter(function(VV){return!!VV})},applyAttributeToOthers=function(lV,J,VV,RV){var UV=correctTargets(J,Array.isArray(lV)?lV:[lV]);markerMap[VV]||(markerMap[VV]=new WeakMap);var ZV=markerMap[VV],WV=[],IV=new Set,dV=new Set(UV),CV=function(NV){!NV||IV.has(NV)||(IV.add(NV),CV(NV.parentNode))};UV.forEach(CV);var FV=function(NV){!NV||dV.has(NV)||Array.prototype.forEach.call(NV.children,function(gV){if(IV.has(gV))FV(gV);else try{var eV=gV.getAttribute(RV),JV=eV!==null&&eV!=="false",nV=(counterMap.get(gV)||0)+1,aV=(ZV.get(gV)||0)+1;counterMap.set(gV,nV),ZV.set(gV,aV),WV.push(gV),nV===1&&JV&&uncontrolledNodes.set(gV,!0),aV===1&&gV.setAttribute(VV,"true"),JV||gV.setAttribute(RV,"true")}catch(GV){console.error("aria-hidden: cannot operate on ",gV,GV)}})};return FV(J),IV.clear(),lockCount++,function(){WV.forEach(function(NV){var gV=counterMap.get(NV)-1,eV=ZV.get(NV)-1;counterMap.set(NV,gV),ZV.set(NV,eV),gV||(uncontrolledNodes.has(NV)||NV.removeAttribute(RV),uncontrolledNodes.delete(NV)),eV||NV.removeAttribute(VV)}),lockCount--,lockCount||(counterMap=new WeakMap,counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={})}},hideOthers=function(lV,J,VV){VV===void 0&&(VV="data-aria-hidden");var RV=Array.from(Array.isArray(lV)?lV:[lV]),UV=getDefaultParent(lV);return UV?(RV.push.apply(RV,Array.from(UV.querySelectorAll("[aria-live]"))),applyAttributeToOthers(RV,UV,VV,"aria-hidden")):function(){return null}},__assign=function(){return __assign=Object.assign||function(J){for(var VV,RV=1,UV=arguments.length;RV<UV;RV++){VV=arguments[RV];for(var ZV in VV)Object.prototype.hasOwnProperty.call(VV,ZV)&&(J[ZV]=VV[ZV])}return J},__assign.apply(this,arguments)};function __rest(lV,J){var VV={};for(var RV in lV)Object.prototype.hasOwnProperty.call(lV,RV)&&J.indexOf(RV)<0&&(VV[RV]=lV[RV]);if(lV!=null&&typeof Object.getOwnPropertySymbols=="function")for(var UV=0,RV=Object.getOwnPropertySymbols(lV);UV<RV.length;UV++)J.indexOf(RV[UV])<0&&Object.prototype.propertyIsEnumerable.call(lV,RV[UV])&&(VV[RV[UV]]=lV[RV[UV]]);return VV}function __spreadArray(lV,J,VV){if(VV||arguments.length===2)for(var RV=0,UV=J.length,ZV;RV<UV;RV++)(ZV||!(RV in J))&&(ZV||(ZV=Array.prototype.slice.call(J,0,RV)),ZV[RV]=J[RV]);return lV.concat(ZV||Array.prototype.slice.call(J))}typeof SuppressedError=="function"&&SuppressedError;var zeroRightClassName="right-scroll-bar-position",fullWidthClassName="width-before-scroll-bar",noScrollbarsClassName="with-scroll-bars-hidden",removedBarSizeVariable="--removed-body-scroll-bar-size";function assignRef(lV,J){return typeof lV=="function"?lV(J):lV&&(lV.current=J),lV}function useCallbackRef(lV,J){var VV=reactExports.useState(function(){return{value:lV,callback:J,facade:{get current(){return VV.value},set current(RV){var UV=VV.value;UV!==RV&&(VV.value=RV,VV.callback(RV,UV))}}}})[0];return VV.callback=J,VV.facade}var useIsomorphicLayoutEffect=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,currentValues=new WeakMap;function useMergeRefs(lV,J){var VV=useCallbackRef(null,function(RV){return lV.forEach(function(UV){return assignRef(UV,RV)})});return useIsomorphicLayoutEffect(function(){var RV=currentValues.get(VV);if(RV){var UV=new Set(RV),ZV=new Set(lV),WV=VV.current;UV.forEach(function(IV){ZV.has(IV)||assignRef(IV,null)}),ZV.forEach(function(IV){UV.has(IV)||assignRef(IV,WV)})}currentValues.set(VV,lV)},[lV]),VV}function ItoI(lV){return lV}function innerCreateMedium(lV,J){J===void 0&&(J=ItoI);var VV=[],RV=!1,UV={read:function(){if(RV)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return VV.length?VV[VV.length-1]:lV},useMedium:function(ZV){var WV=J(ZV,RV);return VV.push(WV),function(){VV=VV.filter(function(IV){return IV!==WV})}},assignSyncMedium:function(ZV){for(RV=!0;VV.length;){var WV=VV;VV=[],WV.forEach(ZV)}VV={push:function(IV){return ZV(IV)},filter:function(){return VV}}},assignMedium:function(ZV){RV=!0;var WV=[];if(VV.length){var IV=VV;VV=[],IV.forEach(ZV),WV=VV}var dV=function(){var FV=WV;WV=[],FV.forEach(ZV)},CV=function(){return Promise.resolve().then(dV)};CV(),VV={push:function(FV){WV.push(FV),CV()},filter:function(FV){return WV=WV.filter(FV),VV}}}};return UV}function createSidecarMedium(lV){lV===void 0&&(lV={});var J=innerCreateMedium(null);return J.options=__assign({async:!0,ssr:!1},lV),J}var SideCar$1=function(lV){var J=lV.sideCar,VV=__rest(lV,["sideCar"]);if(!J)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var RV=J.read();if(!RV)throw new Error("Sidecar medium not found");return reactExports.createElement(RV,__assign({},VV))};SideCar$1.isSideCarExport=!0;function exportSidecar(lV,J){return lV.useMedium(J),SideCar$1}var effectCar=createSidecarMedium(),nothing=function(){},RemoveScroll=reactExports.forwardRef(function(lV,J){var VV=reactExports.useRef(null),RV=reactExports.useState({onScrollCapture:nothing,onWheelCapture:nothing,onTouchMoveCapture:nothing}),UV=RV[0],ZV=RV[1],WV=lV.forwardProps,IV=lV.children,dV=lV.className,CV=lV.removeScrollBar,FV=lV.enabled,NV=lV.shards,gV=lV.sideCar,eV=lV.noIsolation,JV=lV.inert,nV=lV.allowPinchZoom,aV=lV.as,GV=aV===void 0?"div":aV,cV=lV.gapMode,TV=__rest(lV,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as","gapMode"]),iV=gV,tV=useMergeRefs([VV,J]),MV=__assign(__assign({},TV),UV);return reactExports.createElement(reactExports.Fragment,null,FV&&reactExports.createElement(iV,{sideCar:effectCar,removeScrollBar:CV,shards:NV,noIsolation:eV,inert:JV,setCallbacks:ZV,allowPinchZoom:!!nV,lockRef:VV,gapMode:cV}),WV?reactExports.cloneElement(reactExports.Children.only(IV),__assign(__assign({},MV),{ref:tV})):reactExports.createElement(GV,__assign({},MV,{className:dV,ref:tV}),IV))});RemoveScroll.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},RemoveScroll.classNames={fullWidth:fullWidthClassName,zeroRight:zeroRightClassName};var getNonce=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function makeStyleTag(){if(!document)return null;var lV=document.createElement("style");lV.type="text/css";var J=getNonce();return J&&lV.setAttribute("nonce",J),lV}function injectStyles(lV,J){lV.styleSheet?lV.styleSheet.cssText=J:lV.appendChild(document.createTextNode(J))}function insertStyleTag(lV){var J=document.head||document.getElementsByTagName("head")[0];J.appendChild(lV)}var stylesheetSingleton=function(){var lV=0,J=null;return{add:function(VV){lV==0&&(J=makeStyleTag())&&(injectStyles(J,VV),insertStyleTag(J)),lV++},remove:function(){lV--,!lV&&J&&(J.parentNode&&J.parentNode.removeChild(J),J=null)}}},styleHookSingleton=function(){var lV=stylesheetSingleton();return function(J,VV){reactExports.useEffect(function(){return lV.add(J),function(){lV.remove()}},[J&&VV])}},styleSingleton=function(){var lV=styleHookSingleton(),J=function(VV){var RV=VV.styles,UV=VV.dynamic;return lV(RV,UV),null};return J},zeroGap={left:0,top:0,right:0,gap:0},parse=function(lV){return parseInt(lV||"",10)||0},getOffset=function(lV){var J=window.getComputedStyle(document.body),VV=J[lV==="padding"?"paddingLeft":"marginLeft"],RV=J[lV==="padding"?"paddingTop":"marginTop"],UV=J[lV==="padding"?"paddingRight":"marginRight"];return[parse(VV),parse(RV),parse(UV)]},getGapWidth=function(lV){if(lV===void 0&&(lV="margin"),typeof window>"u")return zeroGap;var J=getOffset(lV),VV=document.documentElement.clientWidth,RV=window.innerWidth;return{left:J[0],top:J[1],right:J[2],gap:Math.max(0,RV-VV+J[2]-J[0])}},Style=styleSingleton(),lockAttribute="data-scroll-locked",getStyles=function(lV,J,VV,RV){var UV=lV.left,ZV=lV.top,WV=lV.right,IV=lV.gap;return VV===void 0&&(VV="margin"),`
|
|
22238
|
+
`,UV.appendChild(TV)}})}};ZV();const WV=new MutationObserver(ZV);return WV.observe(UV,{childList:!0,subtree:!1,characterData:!1}),()=>{WV.disconnect()}},[lV,VV,J,RV])},SchematicViewer=({circuitJson:lV,containerStyle:J,editEvents:VV=[],onEditEvent:RV,defaultEditMode:UV=!1,debugGrid:ZV=!1,editingEnabled:WV=!1,debug:IV=!1})=>{IV&&enableDebug$1();const[dV,CV]=reactExports.useState(UV),FV=reactExports.useRef(null),{ref:NV,cancelDrag:gV,transform:eV}=distExports.useMouseMatrixTransform({onSetTransform(MV){FV.current&&(FV.current.style.transform=toString(MV))}}),{containerWidth:JV,containerHeight:nV}=useResizeHandling$1(NV),aV=reactExports.useMemo(()=>!JV||!nV?"":convertCircuitJsonToSchematicSvg(lV,{width:JV,height:nV||720,grid:ZV?{cellSize:1,labelCells:!0}:void 0}),[lV,JV,nV]),GV=reactExports.useMemo(()=>{var AV;if(!aV)return identity$4();const MV=(AV=aV.match(/data-real-to-screen-transform="([^"]+)"/))==null?void 0:AV[1];try{return fromString(MV)}catch(pV){return console.error(pV),identity$4()}},[aV]),{handleMouseDown:cV,isDragging:TV,activeEditEvent:iV}=useComponentDragging({onEditEvent:RV,cancelDrag:gV,realToSvgProjection:GV,svgToScreenProjection:eV,circuitJson:lV,editEvents:VV,enabled:dV});useChangeSchematicComponentLocationsInSvg({svgDivRef:FV,editEvents:VV,realToSvgProjection:GV,svgToScreenProjection:eV,activeEditEvent:iV}),useChangeSchematicTracesForMovedComponents({svgDivRef:FV,circuitJson:lV,activeEditEvent:iV,editEvents:VV});const tV=reactExports.useMemo(()=>jsxRuntimeExports.jsx("div",{ref:FV,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:aV}}),[aV]);return jsxRuntimeExports.jsxs("div",{ref:NV,style:{position:"relative",backgroundColor:"#F5F1ED",overflow:"hidden",cursor:TV?"grabbing":"grab",minHeight:"300px",...J},onMouseDown:cV,children:[WV&&jsxRuntimeExports.jsx(EditIcon,{active:dV,onClick:()=>CV(!dV)}),tV]})},useResizeHandling=lV=>{const[J,VV]=reactExports.useState(0),[RV,UV]=reactExports.useState(0);return reactExports.useEffect(()=>{if(!lV.current)return;const ZV=()=>{var dV;const IV=(dV=lV.current)==null?void 0:dV.getBoundingClientRect();VV((IV==null?void 0:IV.width)||0),UV((IV==null?void 0:IV.height)||0)};ZV();const WV=new ResizeObserver(ZV);return WV.observe(lV.current),window.addEventListener("resize",ZV),()=>{WV.disconnect(),window.removeEventListener("resize",ZV)}},[]),{containerWidth:J,containerHeight:RV}};Debug$1("assembly-viewer");var enableDebug=()=>{Debug$1.enable("assembly-viewer*")},AssemblyViewer=({circuitJson:lV,containerStyle:J,debugGrid:VV=!1,debug:RV=!1})=>{RV&&enableDebug();const UV=reactExports.useRef(null),{ref:ZV,cancelDrag:WV,transform:IV}=distExports.useMouseMatrixTransform({onSetTransform(gV){UV.current&&(UV.current.style.transform=toString(gV))}}),{containerWidth:dV,containerHeight:CV}=useResizeHandling(ZV),FV=reactExports.useMemo(()=>!dV||!CV?"":convertCircuitJsonToAssemblySvg(lV,{width:dV,height:CV||720}),[lV,dV,CV]);reactExports.useMemo(()=>{var eV;if(!FV)return identity$4();const gV=(eV=FV.match(/data-real-to-screen-transform="([^"]+)"/))==null?void 0:eV[1];try{return fromString(gV)}catch(JV){return console.error(JV),identity$4()}},[FV]);const NV=reactExports.useMemo(()=>jsxRuntimeExports.jsx("div",{ref:UV,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:FV}}),[FV]);return jsxRuntimeExports.jsx("div",{ref:ZV,style:{position:"relative",backgroundColor:"#F5F1ED",overflow:"hidden",minHeight:"300px",...J},children:NV})};const PreviewEmptyState=({onRunClicked:lV})=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 bg-gray-100 text-center justify-center py-10",children:["No circuit json loaded",lV&&jsxRuntimeExports.jsxs(Button,{className:"bg-blue-600 hover:bg-blue-500",onClick:lV,children:["Run Code",jsxRuntimeExports.jsx(Play,{className:"w-3 h-3 ml-2"})]})]}),ClickableText=({text:lV,onClick:J})=>jsxRuntimeExports.jsx("span",{className:"cursor-pointer underline text-blue-300 mx-2",onClick:J,children:lV}),HeaderCell=lV=>{var J;return jsxRuntimeExports.jsxs("div",{className:"leading-5",children:[jsxRuntimeExports.jsx("div",{className:"py-2 font-bold",children:lV.column.name}),jsxRuntimeExports.jsx("div",{children:((J=lV.field)==null?void 0:J.call(lV))??jsxRuntimeExports.jsx("input",{type:"text",className:"border rounded p-1 w-full",onChange:VV=>{var RV;(RV=lV.onTextChange)==null||RV.call(lV,VV.target.value)}})})]})},Modal=({open:lV,children:J,title:VV,onClose:RV})=>lV?jsxRuntimeExports.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex justify-center items-center z-50",onClick:RV,children:jsxRuntimeExports.jsxs("div",{className:"bg-white p-5 rounded-lg relative w-11/12 max-w-2xl",onClick:UV=>{UV.preventDefault(),UV.stopPropagation()},children:[jsxRuntimeExports.jsx("h2",{className:"mt-0 text-xl",children:VV}),jsxRuntimeExports.jsx("button",{className:"absolute top-4 right-4 text-2xl font-bold",onClick:RV,children:"×"}),J]})}):null,CircuitJsonTableViewer=({elements:lV})=>{const[J,VV]=reactExports.useState({open:!1}),[RV,UV]=reactExports.useReducer((FV,NV)=>({...FV,...NV}),{}),ZV=[...new Set(lV.map(FV=>FV.type))],WV=lV.map(FV=>{const NV=FV[`${FV.type}_id`],gV=Object.fromEntries(Object.entries(FV).filter(([JV])=>!(JV===`${FV.type}_id`||!JV.endsWith("_id")))),eV=Object.fromEntries(Object.entries(FV).filter(([JV])=>!JV.endsWith("_id")));return{primary_id:NV,other_ids:gV,...eV,_og_elm:FV}}),IV=WV.map(FV=>{let NV="";const gV=eV=>{const JV=Object.keys(eV.other_ids).find(GV=>GV.startsWith("source_"));if(!JV)return`.${eV.name}`;const nV=JV.slice(0,-3),aV=WV.find(GV=>GV.type===nV&&GV.primary_id===eV.other_ids[JV]);return aV?"name"in aV?`${gV(aV)} > .${eV.name}`:`#${aV.primary_id} > .${eV.name}`:`??? > .${eV.name}`};return"name"in FV&&(NV=gV(FV)),{...FV,selector_path:NV}}),dV=[{key:"primary_id",name:"primary_id",renderCell:FV=>jsxRuntimeExports.jsxs("div",{className:"flex items-center",children:[jsxRuntimeExports.jsx(ClickableText,{text:FV.primary_id,onClick:()=>UV({focused_id:FV.primary_id,id_search:void 0,selector_search:void 0})}),jsxRuntimeExports.jsx("span",{className:"flex-grow"}),jsxRuntimeExports.jsx(ClickableText,{text:"(JSON)",onClick:()=>VV({open:!0,element:FV._og_elm,title:FV.primary_id})})]}),renderHeaderCell:FV=>jsxRuntimeExports.jsx(HeaderCell,{column:FV,onTextChange:NV=>UV({id_search:NV}),field:RV.focused_id?()=>jsxRuntimeExports.jsxs("div",{children:["Focus:"," ",jsxRuntimeExports.jsx("span",{className:"underline",children:RV.focused_id}),jsxRuntimeExports.jsx(ClickableText,{text:"(unfocus)",onClick:()=>UV({focused_id:void 0})})]}):void 0})},{key:"type",name:"type",renderHeaderCell:FV=>jsxRuntimeExports.jsx(HeaderCell,{column:FV,field:()=>jsxRuntimeExports.jsxs("select",{onChange:NV=>UV({component_type_filter:NV.target.value}),className:"border rounded p-1 w-full",children:[jsxRuntimeExports.jsx("option",{value:"any",children:"any"},"any"),jsxRuntimeExports.jsx("option",{value:"source",children:"source"},"source"),jsxRuntimeExports.jsx("option",{value:"source/pcb",children:"source/pcb"},"source/pcb"),jsxRuntimeExports.jsx("option",{value:"source/schematic",children:"source/schematic"},"source/schematic"),ZV.map(NV=>jsxRuntimeExports.jsx("option",{value:NV,children:NV},NV))]})})},{key:"name",name:"name",renderHeaderCell:FV=>jsxRuntimeExports.jsx(HeaderCell,{column:FV,onTextChange:NV=>UV({name_search:NV})})},{key:"selector_path",name:"selector_path",renderHeaderCell:FV=>jsxRuntimeExports.jsx(HeaderCell,{column:FV,onTextChange:NV=>UV({selector_search:NV})})},{key:"other_ids",name:"other_ids",renderCell:FV=>jsxRuntimeExports.jsx("div",{className:"space-x-2",children:Object.entries(FV.other_ids).map(([NV,gV])=>jsxRuntimeExports.jsx(ClickableText,{text:gV,onClick:()=>UV({focused_id:gV})},gV))})}],CV=IV.filter(FV=>{var NV,gV;return RV.name_search?(gV=(NV=FV.name)==null?void 0:NV.toLowerCase())==null?void 0:gV.includes(RV.name_search.toLowerCase()):!0}).filter(FV=>{var NV;return!RV.component_type_filter||RV.component_type_filter==="any"?!0:RV.component_type_filter==="source"?FV.type.startsWith("source_"):RV.component_type_filter==="source/pcb"?FV.type.startsWith("source_")||FV.type.startsWith("pcb_"):RV.component_type_filter==="source/schematic"?FV.type.startsWith("source_")||FV.type.startsWith("schematic_"):(NV=FV.type)==null?void 0:NV.includes(RV.component_type_filter)}).filter(FV=>RV.selector_search?RV.selector_search.split(" ").filter(gV=>gV.length>0).every(gV=>{var eV;return(eV=FV.selector_path)==null?void 0:eV.includes(gV)}):!0).filter(FV=>{var NV;return RV.id_search?(NV=FV.primary_id)==null?void 0:NV.includes(RV.id_search):!0}).filter(FV=>!!(!RV.focused_id||FV.primary_id===RV.focused_id||Object.values(FV.other_ids).includes(RV.focused_id)));return jsxRuntimeExports.jsxs("div",{className:"font-mono text-xs",children:[jsxRuntimeExports.jsx("div",{className:"overflow-x-auto",children:jsxRuntimeExports.jsxs("table",{className:"table-auto w-full text-left",children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsx("tr",{children:dV.map(FV=>jsxRuntimeExports.jsx("th",{className:"px-4 py-2 border-b",children:FV.renderHeaderCell?FV.renderHeaderCell(FV):FV.name},FV.key))})}),jsxRuntimeExports.jsx("tbody",{children:CV.map((FV,NV)=>jsxRuntimeExports.jsx("tr",{className:"hover:bg-gray-100",children:dV.map(gV=>jsxRuntimeExports.jsx("td",{className:"px-4 py-2 border-b",children:gV.renderCell?gV.renderCell(FV):FV[gV.key]},gV.key))},NV))})]})}),jsxRuntimeExports.jsx(Modal,{open:J.open,onClose:()=>VV({open:!1}),title:J.open?J.title:"",children:jsxRuntimeExports.jsx("div",{className:"bg-gray-800 p-3 text-white rounded",children:jsxRuntimeExports.jsx("pre",{className:"whitespace-pre-wrap",children:J.open?JSON.stringify(J.element,null,2):""})})})]})},linkify=(lV,J)=>lV==="jlcpcb"?jsxRuntimeExports.jsx("a",{className:"underline text-blue-500",target:"_blank",rel:"noreferrer",href:`https://jlcpcb.com/partdetail/${J}`,children:J}):J,BomTable=({circuitJson:lV})=>{const J=lV.filter(RV=>RV.type==="source_component"),VV=new Set;for(const RV of J)if(RV.supplier_part_numbers)for(const UV of Object.keys(RV.supplier_part_numbers))VV.add(UV);return jsxRuntimeExports.jsx("div",{className:"overflow-x-auto",children:jsxRuntimeExports.jsxs("table",{className:"w-full text-left text-sm",children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsxs("tr",{className:"border-b",children:[jsxRuntimeExports.jsx("th",{className:"p-2",children:"Name"}),Array.from(VV).map(RV=>jsxRuntimeExports.jsx("th",{className:"p-2 capitalize",children:RV},RV))]})}),jsxRuntimeExports.jsx("tbody",{children:J.map(RV=>jsxRuntimeExports.jsxs("tr",{className:"border-b",children:[jsxRuntimeExports.jsx("td",{className:"p-2",children:RV.name}),Array.from(VV).map(UV=>{var ZV,WV;return jsxRuntimeExports.jsx("td",{className:"p-2",children:linkify(UV,((WV=(ZV=RV.supplier_part_numbers)==null?void 0:ZV[UV])==null?void 0:WV[0])||"")},UV)})]},RV.source_component_id))})]})})};function useEscapeKeydown(lV,J=globalThis==null?void 0:globalThis.document){const VV=useCallbackRef$1(lV);reactExports.useEffect(()=>{const RV=UV=>{UV.key==="Escape"&&VV(UV)};return J.addEventListener("keydown",RV,{capture:!0}),()=>J.removeEventListener("keydown",RV,{capture:!0})},[VV,J])}var DISMISSABLE_LAYER_NAME="DismissableLayer",CONTEXT_UPDATE="dismissableLayer.update",POINTER_DOWN_OUTSIDE="dismissableLayer.pointerDownOutside",FOCUS_OUTSIDE="dismissableLayer.focusOutside",originalBodyPointerEvents,DismissableLayerContext=reactExports.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),DismissableLayer=reactExports.forwardRef((lV,J)=>{const{disableOutsidePointerEvents:VV=!1,onEscapeKeyDown:RV,onPointerDownOutside:UV,onFocusOutside:ZV,onInteractOutside:WV,onDismiss:IV,...dV}=lV,CV=reactExports.useContext(DismissableLayerContext),[FV,NV]=reactExports.useState(null),gV=(FV==null?void 0:FV.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,eV]=reactExports.useState({}),JV=useComposedRefs(J,AV=>NV(AV)),nV=Array.from(CV.layers),[aV]=[...CV.layersWithOutsidePointerEventsDisabled].slice(-1),GV=nV.indexOf(aV),cV=FV?nV.indexOf(FV):-1,TV=CV.layersWithOutsidePointerEventsDisabled.size>0,iV=cV>=GV,tV=usePointerDownOutside(AV=>{const pV=AV.target,HV=[...CV.branches].some(oV=>oV.contains(pV));!iV||HV||(UV==null||UV(AV),WV==null||WV(AV),AV.defaultPrevented||IV==null||IV())},gV),MV=useFocusOutside(AV=>{const pV=AV.target;[...CV.branches].some(oV=>oV.contains(pV))||(ZV==null||ZV(AV),WV==null||WV(AV),AV.defaultPrevented||IV==null||IV())},gV);return useEscapeKeydown(AV=>{cV===CV.layers.size-1&&(RV==null||RV(AV),!AV.defaultPrevented&&IV&&(AV.preventDefault(),IV()))},gV),reactExports.useEffect(()=>{if(FV)return VV&&(CV.layersWithOutsidePointerEventsDisabled.size===0&&(originalBodyPointerEvents=gV.body.style.pointerEvents,gV.body.style.pointerEvents="none"),CV.layersWithOutsidePointerEventsDisabled.add(FV)),CV.layers.add(FV),dispatchUpdate(),()=>{VV&&CV.layersWithOutsidePointerEventsDisabled.size===1&&(gV.body.style.pointerEvents=originalBodyPointerEvents)}},[FV,gV,VV,CV]),reactExports.useEffect(()=>()=>{FV&&(CV.layers.delete(FV),CV.layersWithOutsidePointerEventsDisabled.delete(FV),dispatchUpdate())},[FV,CV]),reactExports.useEffect(()=>{const AV=()=>eV({});return document.addEventListener(CONTEXT_UPDATE,AV),()=>document.removeEventListener(CONTEXT_UPDATE,AV)},[]),jsxRuntimeExports.jsx(Primitive.div,{...dV,ref:JV,style:{pointerEvents:TV?iV?"auto":"none":void 0,...lV.style},onFocusCapture:composeEventHandlers(lV.onFocusCapture,MV.onFocusCapture),onBlurCapture:composeEventHandlers(lV.onBlurCapture,MV.onBlurCapture),onPointerDownCapture:composeEventHandlers(lV.onPointerDownCapture,tV.onPointerDownCapture)})});DismissableLayer.displayName=DISMISSABLE_LAYER_NAME;var BRANCH_NAME="DismissableLayerBranch",DismissableLayerBranch=reactExports.forwardRef((lV,J)=>{const VV=reactExports.useContext(DismissableLayerContext),RV=reactExports.useRef(null),UV=useComposedRefs(J,RV);return reactExports.useEffect(()=>{const ZV=RV.current;if(ZV)return VV.branches.add(ZV),()=>{VV.branches.delete(ZV)}},[VV.branches]),jsxRuntimeExports.jsx(Primitive.div,{...lV,ref:UV})});DismissableLayerBranch.displayName=BRANCH_NAME;function usePointerDownOutside(lV,J=globalThis==null?void 0:globalThis.document){const VV=useCallbackRef$1(lV),RV=reactExports.useRef(!1),UV=reactExports.useRef(()=>{});return reactExports.useEffect(()=>{const ZV=IV=>{if(IV.target&&!RV.current){let dV=function(){handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE,VV,CV,{discrete:!0})};const CV={originalEvent:IV};IV.pointerType==="touch"?(J.removeEventListener("click",UV.current),UV.current=dV,J.addEventListener("click",UV.current,{once:!0})):dV()}else J.removeEventListener("click",UV.current);RV.current=!1},WV=window.setTimeout(()=>{J.addEventListener("pointerdown",ZV)},0);return()=>{window.clearTimeout(WV),J.removeEventListener("pointerdown",ZV),J.removeEventListener("click",UV.current)}},[J,VV]),{onPointerDownCapture:()=>RV.current=!0}}function useFocusOutside(lV,J=globalThis==null?void 0:globalThis.document){const VV=useCallbackRef$1(lV),RV=reactExports.useRef(!1);return reactExports.useEffect(()=>{const UV=ZV=>{ZV.target&&!RV.current&&handleAndDispatchCustomEvent(FOCUS_OUTSIDE,VV,{originalEvent:ZV},{discrete:!1})};return J.addEventListener("focusin",UV),()=>J.removeEventListener("focusin",UV)},[J,VV]),{onFocusCapture:()=>RV.current=!0,onBlurCapture:()=>RV.current=!1}}function dispatchUpdate(){const lV=new CustomEvent(CONTEXT_UPDATE);document.dispatchEvent(lV)}function handleAndDispatchCustomEvent(lV,J,VV,{discrete:RV}){const UV=VV.originalEvent.target,ZV=new CustomEvent(lV,{bubbles:!1,cancelable:!0,detail:VV});J&&UV.addEventListener(lV,J,{once:!0}),RV?dispatchDiscreteCustomEvent(UV,ZV):UV.dispatchEvent(ZV)}var count=0;function useFocusGuards(){reactExports.useEffect(()=>{const lV=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",lV[0]??createFocusGuard()),document.body.insertAdjacentElement("beforeend",lV[1]??createFocusGuard()),count++,()=>{count===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(J=>J.remove()),count--}},[])}function createFocusGuard(){const lV=document.createElement("span");return lV.setAttribute("data-radix-focus-guard",""),lV.tabIndex=0,lV.style.outline="none",lV.style.opacity="0",lV.style.position="fixed",lV.style.pointerEvents="none",lV}var AUTOFOCUS_ON_MOUNT="focusScope.autoFocusOnMount",AUTOFOCUS_ON_UNMOUNT="focusScope.autoFocusOnUnmount",EVENT_OPTIONS={bubbles:!1,cancelable:!0},FOCUS_SCOPE_NAME="FocusScope",FocusScope=reactExports.forwardRef((lV,J)=>{const{loop:VV=!1,trapped:RV=!1,onMountAutoFocus:UV,onUnmountAutoFocus:ZV,...WV}=lV,[IV,dV]=reactExports.useState(null),CV=useCallbackRef$1(UV),FV=useCallbackRef$1(ZV),NV=reactExports.useRef(null),gV=useComposedRefs(J,nV=>dV(nV)),eV=reactExports.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;reactExports.useEffect(()=>{if(RV){let nV=function(TV){if(eV.paused||!IV)return;const iV=TV.target;IV.contains(iV)?NV.current=iV:focus(NV.current,{select:!0})},aV=function(TV){if(eV.paused||!IV)return;const iV=TV.relatedTarget;iV!==null&&(IV.contains(iV)||focus(NV.current,{select:!0}))},GV=function(TV){if(document.activeElement===document.body)for(const tV of TV)tV.removedNodes.length>0&&focus(IV)};document.addEventListener("focusin",nV),document.addEventListener("focusout",aV);const cV=new MutationObserver(GV);return IV&&cV.observe(IV,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",nV),document.removeEventListener("focusout",aV),cV.disconnect()}}},[RV,IV,eV.paused]),reactExports.useEffect(()=>{if(IV){focusScopesStack.add(eV);const nV=document.activeElement;if(!IV.contains(nV)){const GV=new CustomEvent(AUTOFOCUS_ON_MOUNT,EVENT_OPTIONS);IV.addEventListener(AUTOFOCUS_ON_MOUNT,CV),IV.dispatchEvent(GV),GV.defaultPrevented||(focusFirst$1(removeLinks(getTabbableCandidates(IV)),{select:!0}),document.activeElement===nV&&focus(IV))}return()=>{IV.removeEventListener(AUTOFOCUS_ON_MOUNT,CV),setTimeout(()=>{const GV=new CustomEvent(AUTOFOCUS_ON_UNMOUNT,EVENT_OPTIONS);IV.addEventListener(AUTOFOCUS_ON_UNMOUNT,FV),IV.dispatchEvent(GV),GV.defaultPrevented||focus(nV??document.body,{select:!0}),IV.removeEventListener(AUTOFOCUS_ON_UNMOUNT,FV),focusScopesStack.remove(eV)},0)}}},[IV,CV,FV,eV]);const JV=reactExports.useCallback(nV=>{if(!VV&&!RV||eV.paused)return;const aV=nV.key==="Tab"&&!nV.altKey&&!nV.ctrlKey&&!nV.metaKey,GV=document.activeElement;if(aV&&GV){const cV=nV.currentTarget,[TV,iV]=getTabbableEdges(cV);TV&&iV?!nV.shiftKey&&GV===iV?(nV.preventDefault(),VV&&focus(TV,{select:!0})):nV.shiftKey&&GV===TV&&(nV.preventDefault(),VV&&focus(iV,{select:!0})):GV===cV&&nV.preventDefault()}},[VV,RV,eV.paused]);return jsxRuntimeExports.jsx(Primitive.div,{tabIndex:-1,...WV,ref:gV,onKeyDown:JV})});FocusScope.displayName=FOCUS_SCOPE_NAME;function focusFirst$1(lV,{select:J=!1}={}){const VV=document.activeElement;for(const RV of lV)if(focus(RV,{select:J}),document.activeElement!==VV)return}function getTabbableEdges(lV){const J=getTabbableCandidates(lV),VV=findVisible(J,lV),RV=findVisible(J.reverse(),lV);return[VV,RV]}function getTabbableCandidates(lV){const J=[],VV=document.createTreeWalker(lV,NodeFilter.SHOW_ELEMENT,{acceptNode:RV=>{const UV=RV.tagName==="INPUT"&&RV.type==="hidden";return RV.disabled||RV.hidden||UV?NodeFilter.FILTER_SKIP:RV.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;VV.nextNode();)J.push(VV.currentNode);return J}function findVisible(lV,J){for(const VV of lV)if(!isHidden(VV,{upTo:J}))return VV}function isHidden(lV,{upTo:J}){if(getComputedStyle(lV).visibility==="hidden")return!0;for(;lV;){if(J!==void 0&&lV===J)return!1;if(getComputedStyle(lV).display==="none")return!0;lV=lV.parentElement}return!1}function isSelectableInput(lV){return lV instanceof HTMLInputElement&&"select"in lV}function focus(lV,{select:J=!1}={}){if(lV&&lV.focus){const VV=document.activeElement;lV.focus({preventScroll:!0}),lV!==VV&&isSelectableInput(lV)&&J&&lV.select()}}var focusScopesStack=createFocusScopesStack();function createFocusScopesStack(){let lV=[];return{add(J){const VV=lV[0];J!==VV&&(VV==null||VV.pause()),lV=arrayRemove(lV,J),lV.unshift(J)},remove(J){var VV;lV=arrayRemove(lV,J),(VV=lV[0])==null||VV.resume()}}}function arrayRemove(lV,J){const VV=[...lV],RV=VV.indexOf(J);return RV!==-1&&VV.splice(RV,1),VV}function removeLinks(lV){return lV.filter(J=>J.tagName!=="A")}const sides=["top","right","bottom","left"],min=Math.min,max=Math.max,round=Math.round,floor=Math.floor,createCoords=lV=>({x:lV,y:lV}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"},oppositeAlignmentMap={start:"end",end:"start"};function clamp(lV,J,VV){return max(lV,min(J,VV))}function evaluate(lV,J){return typeof lV=="function"?lV(J):lV}function getSide(lV){return lV.split("-")[0]}function getAlignment(lV){return lV.split("-")[1]}function getOppositeAxis(lV){return lV==="x"?"y":"x"}function getAxisLength(lV){return lV==="y"?"height":"width"}function getSideAxis(lV){return["top","bottom"].includes(getSide(lV))?"y":"x"}function getAlignmentAxis(lV){return getOppositeAxis(getSideAxis(lV))}function getAlignmentSides(lV,J,VV){VV===void 0&&(VV=!1);const RV=getAlignment(lV),UV=getAlignmentAxis(lV),ZV=getAxisLength(UV);let WV=UV==="x"?RV===(VV?"end":"start")?"right":"left":RV==="start"?"bottom":"top";return J.reference[ZV]>J.floating[ZV]&&(WV=getOppositePlacement(WV)),[WV,getOppositePlacement(WV)]}function getExpandedPlacements(lV){const J=getOppositePlacement(lV);return[getOppositeAlignmentPlacement(lV),J,getOppositeAlignmentPlacement(J)]}function getOppositeAlignmentPlacement(lV){return lV.replace(/start|end/g,J=>oppositeAlignmentMap[J])}function getSideList(lV,J,VV){const RV=["left","right"],UV=["right","left"],ZV=["top","bottom"],WV=["bottom","top"];switch(lV){case"top":case"bottom":return VV?J?UV:RV:J?RV:UV;case"left":case"right":return J?ZV:WV;default:return[]}}function getOppositeAxisPlacements(lV,J,VV,RV){const UV=getAlignment(lV);let ZV=getSideList(getSide(lV),VV==="start",RV);return UV&&(ZV=ZV.map(WV=>WV+"-"+UV),J&&(ZV=ZV.concat(ZV.map(getOppositeAlignmentPlacement)))),ZV}function getOppositePlacement(lV){return lV.replace(/left|right|bottom|top/g,J=>oppositeSideMap[J])}function expandPaddingObject(lV){return{top:0,right:0,bottom:0,left:0,...lV}}function getPaddingObject(lV){return typeof lV!="number"?expandPaddingObject(lV):{top:lV,right:lV,bottom:lV,left:lV}}function rectToClientRect(lV){const{x:J,y:VV,width:RV,height:UV}=lV;return{width:RV,height:UV,top:VV,left:J,right:J+RV,bottom:VV+UV,x:J,y:VV}}function computeCoordsFromPlacement(lV,J,VV){let{reference:RV,floating:UV}=lV;const ZV=getSideAxis(J),WV=getAlignmentAxis(J),IV=getAxisLength(WV),dV=getSide(J),CV=ZV==="y",FV=RV.x+RV.width/2-UV.width/2,NV=RV.y+RV.height/2-UV.height/2,gV=RV[IV]/2-UV[IV]/2;let eV;switch(dV){case"top":eV={x:FV,y:RV.y-UV.height};break;case"bottom":eV={x:FV,y:RV.y+RV.height};break;case"right":eV={x:RV.x+RV.width,y:NV};break;case"left":eV={x:RV.x-UV.width,y:NV};break;default:eV={x:RV.x,y:RV.y}}switch(getAlignment(J)){case"start":eV[WV]-=gV*(VV&&CV?-1:1);break;case"end":eV[WV]+=gV*(VV&&CV?-1:1);break}return eV}const computePosition$1=async(lV,J,VV)=>{const{placement:RV="bottom",strategy:UV="absolute",middleware:ZV=[],platform:WV}=VV,IV=ZV.filter(Boolean),dV=await(WV.isRTL==null?void 0:WV.isRTL(J));let CV=await WV.getElementRects({reference:lV,floating:J,strategy:UV}),{x:FV,y:NV}=computeCoordsFromPlacement(CV,RV,dV),gV=RV,eV={},JV=0;for(let nV=0;nV<IV.length;nV++){const{name:aV,fn:GV}=IV[nV],{x:cV,y:TV,data:iV,reset:tV}=await GV({x:FV,y:NV,initialPlacement:RV,placement:gV,strategy:UV,middlewareData:eV,rects:CV,platform:WV,elements:{reference:lV,floating:J}});FV=cV??FV,NV=TV??NV,eV={...eV,[aV]:{...eV[aV],...iV}},tV&&JV<=50&&(JV++,typeof tV=="object"&&(tV.placement&&(gV=tV.placement),tV.rects&&(CV=tV.rects===!0?await WV.getElementRects({reference:lV,floating:J,strategy:UV}):tV.rects),{x:FV,y:NV}=computeCoordsFromPlacement(CV,gV,dV)),nV=-1)}return{x:FV,y:NV,placement:gV,strategy:UV,middlewareData:eV}};async function detectOverflow(lV,J){var VV;J===void 0&&(J={});const{x:RV,y:UV,platform:ZV,rects:WV,elements:IV,strategy:dV}=lV,{boundary:CV="clippingAncestors",rootBoundary:FV="viewport",elementContext:NV="floating",altBoundary:gV=!1,padding:eV=0}=evaluate(J,lV),JV=getPaddingObject(eV),aV=IV[gV?NV==="floating"?"reference":"floating":NV],GV=rectToClientRect(await ZV.getClippingRect({element:(VV=await(ZV.isElement==null?void 0:ZV.isElement(aV)))==null||VV?aV:aV.contextElement||await(ZV.getDocumentElement==null?void 0:ZV.getDocumentElement(IV.floating)),boundary:CV,rootBoundary:FV,strategy:dV})),cV=NV==="floating"?{x:RV,y:UV,width:WV.floating.width,height:WV.floating.height}:WV.reference,TV=await(ZV.getOffsetParent==null?void 0:ZV.getOffsetParent(IV.floating)),iV=await(ZV.isElement==null?void 0:ZV.isElement(TV))?await(ZV.getScale==null?void 0:ZV.getScale(TV))||{x:1,y:1}:{x:1,y:1},tV=rectToClientRect(ZV.convertOffsetParentRelativeRectToViewportRelativeRect?await ZV.convertOffsetParentRelativeRectToViewportRelativeRect({elements:IV,rect:cV,offsetParent:TV,strategy:dV}):cV);return{top:(GV.top-tV.top+JV.top)/iV.y,bottom:(tV.bottom-GV.bottom+JV.bottom)/iV.y,left:(GV.left-tV.left+JV.left)/iV.x,right:(tV.right-GV.right+JV.right)/iV.x}}const arrow$3=lV=>({name:"arrow",options:lV,async fn(J){const{x:VV,y:RV,placement:UV,rects:ZV,platform:WV,elements:IV,middlewareData:dV}=J,{element:CV,padding:FV=0}=evaluate(lV,J)||{};if(CV==null)return{};const NV=getPaddingObject(FV),gV={x:VV,y:RV},eV=getAlignmentAxis(UV),JV=getAxisLength(eV),nV=await WV.getDimensions(CV),aV=eV==="y",GV=aV?"top":"left",cV=aV?"bottom":"right",TV=aV?"clientHeight":"clientWidth",iV=ZV.reference[JV]+ZV.reference[eV]-gV[eV]-ZV.floating[JV],tV=gV[eV]-ZV.reference[eV],MV=await(WV.getOffsetParent==null?void 0:WV.getOffsetParent(CV));let AV=MV?MV[TV]:0;(!AV||!await(WV.isElement==null?void 0:WV.isElement(MV)))&&(AV=IV.floating[TV]||ZV.floating[JV]);const pV=iV/2-tV/2,HV=AV/2-nV[JV]/2-1,oV=min(NV[GV],HV),DV=min(NV[cV],HV),wV=oV,qV=AV-nV[JV]-DV,Cl=AV/2-nV[JV]/2+pV,nl=clamp(wV,Cl,qV),Il=!dV.arrow&&getAlignment(UV)!=null&&Cl!==nl&&ZV.reference[JV]/2-(Cl<wV?oV:DV)-nV[JV]/2<0,LV=Il?Cl<wV?Cl-wV:Cl-qV:0;return{[eV]:gV[eV]+LV,data:{[eV]:nl,centerOffset:Cl-nl-LV,...Il&&{alignmentOffset:LV}},reset:Il}}}),flip$2=function(lV){return lV===void 0&&(lV={}),{name:"flip",options:lV,async fn(J){var VV,RV;const{placement:UV,middlewareData:ZV,rects:WV,initialPlacement:IV,platform:dV,elements:CV}=J,{mainAxis:FV=!0,crossAxis:NV=!0,fallbackPlacements:gV,fallbackStrategy:eV="bestFit",fallbackAxisSideDirection:JV="none",flipAlignment:nV=!0,...aV}=evaluate(lV,J);if((VV=ZV.arrow)!=null&&VV.alignmentOffset)return{};const GV=getSide(UV),cV=getSideAxis(IV),TV=getSide(IV)===IV,iV=await(dV.isRTL==null?void 0:dV.isRTL(CV.floating)),tV=gV||(TV||!nV?[getOppositePlacement(IV)]:getExpandedPlacements(IV)),MV=JV!=="none";!gV&&MV&&tV.push(...getOppositeAxisPlacements(IV,nV,JV,iV));const AV=[IV,...tV],pV=await detectOverflow(J,aV),HV=[];let oV=((RV=ZV.flip)==null?void 0:RV.overflows)||[];if(FV&&HV.push(pV[GV]),NV){const Cl=getAlignmentSides(UV,WV,iV);HV.push(pV[Cl[0]],pV[Cl[1]])}if(oV=[...oV,{placement:UV,overflows:HV}],!HV.every(Cl=>Cl<=0)){var DV,wV;const Cl=(((DV=ZV.flip)==null?void 0:DV.index)||0)+1,nl=AV[Cl];if(nl)return{data:{index:Cl,overflows:oV},reset:{placement:nl}};let Il=(wV=oV.filter(LV=>LV.overflows[0]<=0).sort((LV,OV)=>LV.overflows[1]-OV.overflows[1])[0])==null?void 0:wV.placement;if(!Il)switch(eV){case"bestFit":{var qV;const LV=(qV=oV.filter(OV=>{if(MV){const $V=getSideAxis(OV.placement);return $V===cV||$V==="y"}return!0}).map(OV=>[OV.placement,OV.overflows.filter($V=>$V>0).reduce(($V,dl)=>$V+dl,0)]).sort((OV,$V)=>OV[1]-$V[1])[0])==null?void 0:qV[0];LV&&(Il=LV);break}case"initialPlacement":Il=IV;break}if(UV!==Il)return{reset:{placement:Il}}}return{}}}};function getSideOffsets(lV,J){return{top:lV.top-J.height,right:lV.right-J.width,bottom:lV.bottom-J.height,left:lV.left-J.width}}function isAnySideFullyClipped(lV){return sides.some(J=>lV[J]>=0)}const hide$2=function(lV){return lV===void 0&&(lV={}),{name:"hide",options:lV,async fn(J){const{rects:VV}=J,{strategy:RV="referenceHidden",...UV}=evaluate(lV,J);switch(RV){case"referenceHidden":{const ZV=await detectOverflow(J,{...UV,elementContext:"reference"}),WV=getSideOffsets(ZV,VV.reference);return{data:{referenceHiddenOffsets:WV,referenceHidden:isAnySideFullyClipped(WV)}}}case"escaped":{const ZV=await detectOverflow(J,{...UV,altBoundary:!0}),WV=getSideOffsets(ZV,VV.floating);return{data:{escapedOffsets:WV,escaped:isAnySideFullyClipped(WV)}}}default:return{}}}}};async function convertValueToCoords(lV,J){const{placement:VV,platform:RV,elements:UV}=lV,ZV=await(RV.isRTL==null?void 0:RV.isRTL(UV.floating)),WV=getSide(VV),IV=getAlignment(VV),dV=getSideAxis(VV)==="y",CV=["left","top"].includes(WV)?-1:1,FV=ZV&&dV?-1:1,NV=evaluate(J,lV);let{mainAxis:gV,crossAxis:eV,alignmentAxis:JV}=typeof NV=="number"?{mainAxis:NV,crossAxis:0,alignmentAxis:null}:{mainAxis:NV.mainAxis||0,crossAxis:NV.crossAxis||0,alignmentAxis:NV.alignmentAxis};return IV&&typeof JV=="number"&&(eV=IV==="end"?JV*-1:JV),dV?{x:eV*FV,y:gV*CV}:{x:gV*CV,y:eV*FV}}const offset$2=function(lV){return lV===void 0&&(lV=0),{name:"offset",options:lV,async fn(J){var VV,RV;const{x:UV,y:ZV,placement:WV,middlewareData:IV}=J,dV=await convertValueToCoords(J,lV);return WV===((VV=IV.offset)==null?void 0:VV.placement)&&(RV=IV.arrow)!=null&&RV.alignmentOffset?{}:{x:UV+dV.x,y:ZV+dV.y,data:{...dV,placement:WV}}}}},shift$2=function(lV){return lV===void 0&&(lV={}),{name:"shift",options:lV,async fn(J){const{x:VV,y:RV,placement:UV}=J,{mainAxis:ZV=!0,crossAxis:WV=!1,limiter:IV={fn:aV=>{let{x:GV,y:cV}=aV;return{x:GV,y:cV}}},...dV}=evaluate(lV,J),CV={x:VV,y:RV},FV=await detectOverflow(J,dV),NV=getSideAxis(getSide(UV)),gV=getOppositeAxis(NV);let eV=CV[gV],JV=CV[NV];if(ZV){const aV=gV==="y"?"top":"left",GV=gV==="y"?"bottom":"right",cV=eV+FV[aV],TV=eV-FV[GV];eV=clamp(cV,eV,TV)}if(WV){const aV=NV==="y"?"top":"left",GV=NV==="y"?"bottom":"right",cV=JV+FV[aV],TV=JV-FV[GV];JV=clamp(cV,JV,TV)}const nV=IV.fn({...J,[gV]:eV,[NV]:JV});return{...nV,data:{x:nV.x-VV,y:nV.y-RV,enabled:{[gV]:ZV,[NV]:WV}}}}}},limitShift$2=function(lV){return lV===void 0&&(lV={}),{options:lV,fn(J){const{x:VV,y:RV,placement:UV,rects:ZV,middlewareData:WV}=J,{offset:IV=0,mainAxis:dV=!0,crossAxis:CV=!0}=evaluate(lV,J),FV={x:VV,y:RV},NV=getSideAxis(UV),gV=getOppositeAxis(NV);let eV=FV[gV],JV=FV[NV];const nV=evaluate(IV,J),aV=typeof nV=="number"?{mainAxis:nV,crossAxis:0}:{mainAxis:0,crossAxis:0,...nV};if(dV){const TV=gV==="y"?"height":"width",iV=ZV.reference[gV]-ZV.floating[TV]+aV.mainAxis,tV=ZV.reference[gV]+ZV.reference[TV]-aV.mainAxis;eV<iV?eV=iV:eV>tV&&(eV=tV)}if(CV){var GV,cV;const TV=gV==="y"?"width":"height",iV=["top","left"].includes(getSide(UV)),tV=ZV.reference[NV]-ZV.floating[TV]+(iV&&((GV=WV.offset)==null?void 0:GV[NV])||0)+(iV?0:aV.crossAxis),MV=ZV.reference[NV]+ZV.reference[TV]+(iV?0:((cV=WV.offset)==null?void 0:cV[NV])||0)-(iV?aV.crossAxis:0);JV<tV?JV=tV:JV>MV&&(JV=MV)}return{[gV]:eV,[NV]:JV}}}},size$2=function(lV){return lV===void 0&&(lV={}),{name:"size",options:lV,async fn(J){var VV,RV;const{placement:UV,rects:ZV,platform:WV,elements:IV}=J,{apply:dV=()=>{},...CV}=evaluate(lV,J),FV=await detectOverflow(J,CV),NV=getSide(UV),gV=getAlignment(UV),eV=getSideAxis(UV)==="y",{width:JV,height:nV}=ZV.floating;let aV,GV;NV==="top"||NV==="bottom"?(aV=NV,GV=gV===(await(WV.isRTL==null?void 0:WV.isRTL(IV.floating))?"start":"end")?"left":"right"):(GV=NV,aV=gV==="end"?"top":"bottom");const cV=nV-FV.top-FV.bottom,TV=JV-FV.left-FV.right,iV=min(nV-FV[aV],cV),tV=min(JV-FV[GV],TV),MV=!J.middlewareData.shift;let AV=iV,pV=tV;if((VV=J.middlewareData.shift)!=null&&VV.enabled.x&&(pV=TV),(RV=J.middlewareData.shift)!=null&&RV.enabled.y&&(AV=cV),MV&&!gV){const oV=max(FV.left,0),DV=max(FV.right,0),wV=max(FV.top,0),qV=max(FV.bottom,0);eV?pV=JV-2*(oV!==0||DV!==0?oV+DV:max(FV.left,FV.right)):AV=nV-2*(wV!==0||qV!==0?wV+qV:max(FV.top,FV.bottom))}await dV({...J,availableWidth:pV,availableHeight:AV});const HV=await WV.getDimensions(IV.floating);return JV!==HV.width||nV!==HV.height?{reset:{rects:!0}}:{}}}};function hasWindow(){return typeof window<"u"}function getNodeName(lV){return isNode(lV)?(lV.nodeName||"").toLowerCase():"#document"}function getWindow(lV){var J;return(lV==null||(J=lV.ownerDocument)==null?void 0:J.defaultView)||window}function getDocumentElement(lV){var J;return(J=(isNode(lV)?lV.ownerDocument:lV.document)||window.document)==null?void 0:J.documentElement}function isNode(lV){return hasWindow()?lV instanceof Node||lV instanceof getWindow(lV).Node:!1}function isElement(lV){return hasWindow()?lV instanceof Element||lV instanceof getWindow(lV).Element:!1}function isHTMLElement(lV){return hasWindow()?lV instanceof HTMLElement||lV instanceof getWindow(lV).HTMLElement:!1}function isShadowRoot(lV){return!hasWindow()||typeof ShadowRoot>"u"?!1:lV instanceof ShadowRoot||lV instanceof getWindow(lV).ShadowRoot}function isOverflowElement(lV){const{overflow:J,overflowX:VV,overflowY:RV,display:UV}=getComputedStyle$1(lV);return/auto|scroll|overlay|hidden|clip/.test(J+RV+VV)&&!["inline","contents"].includes(UV)}function isTableElement(lV){return["table","td","th"].includes(getNodeName(lV))}function isTopLayer(lV){return[":popover-open",":modal"].some(J=>{try{return lV.matches(J)}catch{return!1}})}function isContainingBlock(lV){const J=isWebKit(),VV=isElement(lV)?getComputedStyle$1(lV):lV;return VV.transform!=="none"||VV.perspective!=="none"||(VV.containerType?VV.containerType!=="normal":!1)||!J&&(VV.backdropFilter?VV.backdropFilter!=="none":!1)||!J&&(VV.filter?VV.filter!=="none":!1)||["transform","perspective","filter"].some(RV=>(VV.willChange||"").includes(RV))||["paint","layout","strict","content"].some(RV=>(VV.contain||"").includes(RV))}function getContainingBlock(lV){let J=getParentNode(lV);for(;isHTMLElement(J)&&!isLastTraversableNode(J);){if(isContainingBlock(J))return J;if(isTopLayer(J))return null;J=getParentNode(J)}return null}function isWebKit(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function isLastTraversableNode(lV){return["html","body","#document"].includes(getNodeName(lV))}function getComputedStyle$1(lV){return getWindow(lV).getComputedStyle(lV)}function getNodeScroll(lV){return isElement(lV)?{scrollLeft:lV.scrollLeft,scrollTop:lV.scrollTop}:{scrollLeft:lV.scrollX,scrollTop:lV.scrollY}}function getParentNode(lV){if(getNodeName(lV)==="html")return lV;const J=lV.assignedSlot||lV.parentNode||isShadowRoot(lV)&&lV.host||getDocumentElement(lV);return isShadowRoot(J)?J.host:J}function getNearestOverflowAncestor(lV){const J=getParentNode(lV);return isLastTraversableNode(J)?lV.ownerDocument?lV.ownerDocument.body:lV.body:isHTMLElement(J)&&isOverflowElement(J)?J:getNearestOverflowAncestor(J)}function getOverflowAncestors(lV,J,VV){var RV;J===void 0&&(J=[]),VV===void 0&&(VV=!0);const UV=getNearestOverflowAncestor(lV),ZV=UV===((RV=lV.ownerDocument)==null?void 0:RV.body),WV=getWindow(UV);if(ZV){const IV=getFrameElement(WV);return J.concat(WV,WV.visualViewport||[],isOverflowElement(UV)?UV:[],IV&&VV?getOverflowAncestors(IV):[])}return J.concat(UV,getOverflowAncestors(UV,[],VV))}function getFrameElement(lV){return lV.parent&&Object.getPrototypeOf(lV.parent)?lV.frameElement:null}function getCssDimensions(lV){const J=getComputedStyle$1(lV);let VV=parseFloat(J.width)||0,RV=parseFloat(J.height)||0;const UV=isHTMLElement(lV),ZV=UV?lV.offsetWidth:VV,WV=UV?lV.offsetHeight:RV,IV=round(VV)!==ZV||round(RV)!==WV;return IV&&(VV=ZV,RV=WV),{width:VV,height:RV,$:IV}}function unwrapElement(lV){return isElement(lV)?lV:lV.contextElement}function getScale(lV){const J=unwrapElement(lV);if(!isHTMLElement(J))return createCoords(1);const VV=J.getBoundingClientRect(),{width:RV,height:UV,$:ZV}=getCssDimensions(J);let WV=(ZV?round(VV.width):VV.width)/RV,IV=(ZV?round(VV.height):VV.height)/UV;return(!WV||!Number.isFinite(WV))&&(WV=1),(!IV||!Number.isFinite(IV))&&(IV=1),{x:WV,y:IV}}const noOffsets=createCoords(0);function getVisualOffsets(lV){const J=getWindow(lV);return!isWebKit()||!J.visualViewport?noOffsets:{x:J.visualViewport.offsetLeft,y:J.visualViewport.offsetTop}}function shouldAddVisualOffsets(lV,J,VV){return J===void 0&&(J=!1),!VV||J&&VV!==getWindow(lV)?!1:J}function getBoundingClientRect(lV,J,VV,RV){J===void 0&&(J=!1),VV===void 0&&(VV=!1);const UV=lV.getBoundingClientRect(),ZV=unwrapElement(lV);let WV=createCoords(1);J&&(RV?isElement(RV)&&(WV=getScale(RV)):WV=getScale(lV));const IV=shouldAddVisualOffsets(ZV,VV,RV)?getVisualOffsets(ZV):createCoords(0);let dV=(UV.left+IV.x)/WV.x,CV=(UV.top+IV.y)/WV.y,FV=UV.width/WV.x,NV=UV.height/WV.y;if(ZV){const gV=getWindow(ZV),eV=RV&&isElement(RV)?getWindow(RV):RV;let JV=gV,nV=getFrameElement(JV);for(;nV&&RV&&eV!==JV;){const aV=getScale(nV),GV=nV.getBoundingClientRect(),cV=getComputedStyle$1(nV),TV=GV.left+(nV.clientLeft+parseFloat(cV.paddingLeft))*aV.x,iV=GV.top+(nV.clientTop+parseFloat(cV.paddingTop))*aV.y;dV*=aV.x,CV*=aV.y,FV*=aV.x,NV*=aV.y,dV+=TV,CV+=iV,JV=getWindow(nV),nV=getFrameElement(JV)}}return rectToClientRect({width:FV,height:NV,x:dV,y:CV})}function getWindowScrollBarX(lV,J){const VV=getNodeScroll(lV).scrollLeft;return J?J.left+VV:getBoundingClientRect(getDocumentElement(lV)).left+VV}function getHTMLOffset(lV,J,VV){VV===void 0&&(VV=!1);const RV=lV.getBoundingClientRect(),UV=RV.left+J.scrollLeft-(VV?0:getWindowScrollBarX(lV,RV)),ZV=RV.top+J.scrollTop;return{x:UV,y:ZV}}function convertOffsetParentRelativeRectToViewportRelativeRect(lV){let{elements:J,rect:VV,offsetParent:RV,strategy:UV}=lV;const ZV=UV==="fixed",WV=getDocumentElement(RV),IV=J?isTopLayer(J.floating):!1;if(RV===WV||IV&&ZV)return VV;let dV={scrollLeft:0,scrollTop:0},CV=createCoords(1);const FV=createCoords(0),NV=isHTMLElement(RV);if((NV||!NV&&!ZV)&&((getNodeName(RV)!=="body"||isOverflowElement(WV))&&(dV=getNodeScroll(RV)),isHTMLElement(RV))){const eV=getBoundingClientRect(RV);CV=getScale(RV),FV.x=eV.x+RV.clientLeft,FV.y=eV.y+RV.clientTop}const gV=WV&&!NV&&!ZV?getHTMLOffset(WV,dV,!0):createCoords(0);return{width:VV.width*CV.x,height:VV.height*CV.y,x:VV.x*CV.x-dV.scrollLeft*CV.x+FV.x+gV.x,y:VV.y*CV.y-dV.scrollTop*CV.y+FV.y+gV.y}}function getClientRects(lV){return Array.from(lV.getClientRects())}function getDocumentRect(lV){const J=getDocumentElement(lV),VV=getNodeScroll(lV),RV=lV.ownerDocument.body,UV=max(J.scrollWidth,J.clientWidth,RV.scrollWidth,RV.clientWidth),ZV=max(J.scrollHeight,J.clientHeight,RV.scrollHeight,RV.clientHeight);let WV=-VV.scrollLeft+getWindowScrollBarX(lV);const IV=-VV.scrollTop;return getComputedStyle$1(RV).direction==="rtl"&&(WV+=max(J.clientWidth,RV.clientWidth)-UV),{width:UV,height:ZV,x:WV,y:IV}}function getViewportRect(lV,J){const VV=getWindow(lV),RV=getDocumentElement(lV),UV=VV.visualViewport;let ZV=RV.clientWidth,WV=RV.clientHeight,IV=0,dV=0;if(UV){ZV=UV.width,WV=UV.height;const CV=isWebKit();(!CV||CV&&J==="fixed")&&(IV=UV.offsetLeft,dV=UV.offsetTop)}return{width:ZV,height:WV,x:IV,y:dV}}function getInnerBoundingClientRect(lV,J){const VV=getBoundingClientRect(lV,!0,J==="fixed"),RV=VV.top+lV.clientTop,UV=VV.left+lV.clientLeft,ZV=isHTMLElement(lV)?getScale(lV):createCoords(1),WV=lV.clientWidth*ZV.x,IV=lV.clientHeight*ZV.y,dV=UV*ZV.x,CV=RV*ZV.y;return{width:WV,height:IV,x:dV,y:CV}}function getClientRectFromClippingAncestor(lV,J,VV){let RV;if(J==="viewport")RV=getViewportRect(lV,VV);else if(J==="document")RV=getDocumentRect(getDocumentElement(lV));else if(isElement(J))RV=getInnerBoundingClientRect(J,VV);else{const UV=getVisualOffsets(lV);RV={x:J.x-UV.x,y:J.y-UV.y,width:J.width,height:J.height}}return rectToClientRect(RV)}function hasFixedPositionAncestor(lV,J){const VV=getParentNode(lV);return VV===J||!isElement(VV)||isLastTraversableNode(VV)?!1:getComputedStyle$1(VV).position==="fixed"||hasFixedPositionAncestor(VV,J)}function getClippingElementAncestors(lV,J){const VV=J.get(lV);if(VV)return VV;let RV=getOverflowAncestors(lV,[],!1).filter(IV=>isElement(IV)&&getNodeName(IV)!=="body"),UV=null;const ZV=getComputedStyle$1(lV).position==="fixed";let WV=ZV?getParentNode(lV):lV;for(;isElement(WV)&&!isLastTraversableNode(WV);){const IV=getComputedStyle$1(WV),dV=isContainingBlock(WV);!dV&&IV.position==="fixed"&&(UV=null),(ZV?!dV&&!UV:!dV&&IV.position==="static"&&!!UV&&["absolute","fixed"].includes(UV.position)||isOverflowElement(WV)&&!dV&&hasFixedPositionAncestor(lV,WV))?RV=RV.filter(FV=>FV!==WV):UV=IV,WV=getParentNode(WV)}return J.set(lV,RV),RV}function getClippingRect(lV){let{element:J,boundary:VV,rootBoundary:RV,strategy:UV}=lV;const WV=[...VV==="clippingAncestors"?isTopLayer(J)?[]:getClippingElementAncestors(J,this._c):[].concat(VV),RV],IV=WV[0],dV=WV.reduce((CV,FV)=>{const NV=getClientRectFromClippingAncestor(J,FV,UV);return CV.top=max(NV.top,CV.top),CV.right=min(NV.right,CV.right),CV.bottom=min(NV.bottom,CV.bottom),CV.left=max(NV.left,CV.left),CV},getClientRectFromClippingAncestor(J,IV,UV));return{width:dV.right-dV.left,height:dV.bottom-dV.top,x:dV.left,y:dV.top}}function getDimensions(lV){const{width:J,height:VV}=getCssDimensions(lV);return{width:J,height:VV}}function getRectRelativeToOffsetParent(lV,J,VV){const RV=isHTMLElement(J),UV=getDocumentElement(J),ZV=VV==="fixed",WV=getBoundingClientRect(lV,!0,ZV,J);let IV={scrollLeft:0,scrollTop:0};const dV=createCoords(0);if(RV||!RV&&!ZV)if((getNodeName(J)!=="body"||isOverflowElement(UV))&&(IV=getNodeScroll(J)),RV){const gV=getBoundingClientRect(J,!0,ZV,J);dV.x=gV.x+J.clientLeft,dV.y=gV.y+J.clientTop}else UV&&(dV.x=getWindowScrollBarX(UV));const CV=UV&&!RV&&!ZV?getHTMLOffset(UV,IV):createCoords(0),FV=WV.left+IV.scrollLeft-dV.x-CV.x,NV=WV.top+IV.scrollTop-dV.y-CV.y;return{x:FV,y:NV,width:WV.width,height:WV.height}}function isStaticPositioned(lV){return getComputedStyle$1(lV).position==="static"}function getTrueOffsetParent(lV,J){if(!isHTMLElement(lV)||getComputedStyle$1(lV).position==="fixed")return null;if(J)return J(lV);let VV=lV.offsetParent;return getDocumentElement(lV)===VV&&(VV=VV.ownerDocument.body),VV}function getOffsetParent(lV,J){const VV=getWindow(lV);if(isTopLayer(lV))return VV;if(!isHTMLElement(lV)){let UV=getParentNode(lV);for(;UV&&!isLastTraversableNode(UV);){if(isElement(UV)&&!isStaticPositioned(UV))return UV;UV=getParentNode(UV)}return VV}let RV=getTrueOffsetParent(lV,J);for(;RV&&isTableElement(RV)&&isStaticPositioned(RV);)RV=getTrueOffsetParent(RV,J);return RV&&isLastTraversableNode(RV)&&isStaticPositioned(RV)&&!isContainingBlock(RV)?VV:RV||getContainingBlock(lV)||VV}const getElementRects=async function(lV){const J=this.getOffsetParent||getOffsetParent,VV=this.getDimensions,RV=await VV(lV.floating);return{reference:getRectRelativeToOffsetParent(lV.reference,await J(lV.floating),lV.strategy),floating:{x:0,y:0,width:RV.width,height:RV.height}}};function isRTL(lV){return getComputedStyle$1(lV).direction==="rtl"}const platform={convertOffsetParentRelativeRectToViewportRelativeRect,getDocumentElement,getClippingRect,getOffsetParent,getElementRects,getClientRects,getDimensions,getScale,isElement,isRTL};function observeMove(lV,J){let VV=null,RV;const UV=getDocumentElement(lV);function ZV(){var IV;clearTimeout(RV),(IV=VV)==null||IV.disconnect(),VV=null}function WV(IV,dV){IV===void 0&&(IV=!1),dV===void 0&&(dV=1),ZV();const{left:CV,top:FV,width:NV,height:gV}=lV.getBoundingClientRect();if(IV||J(),!NV||!gV)return;const eV=floor(FV),JV=floor(UV.clientWidth-(CV+NV)),nV=floor(UV.clientHeight-(FV+gV)),aV=floor(CV),cV={rootMargin:-eV+"px "+-JV+"px "+-nV+"px "+-aV+"px",threshold:max(0,min(1,dV))||1};let TV=!0;function iV(tV){const MV=tV[0].intersectionRatio;if(MV!==dV){if(!TV)return WV();MV?WV(!1,MV):RV=setTimeout(()=>{WV(!1,1e-7)},1e3)}TV=!1}try{VV=new IntersectionObserver(iV,{...cV,root:UV.ownerDocument})}catch{VV=new IntersectionObserver(iV,cV)}VV.observe(lV)}return WV(!0),ZV}function autoUpdate(lV,J,VV,RV){RV===void 0&&(RV={});const{ancestorScroll:UV=!0,ancestorResize:ZV=!0,elementResize:WV=typeof ResizeObserver=="function",layoutShift:IV=typeof IntersectionObserver=="function",animationFrame:dV=!1}=RV,CV=unwrapElement(lV),FV=UV||ZV?[...CV?getOverflowAncestors(CV):[],...getOverflowAncestors(J)]:[];FV.forEach(GV=>{UV&&GV.addEventListener("scroll",VV,{passive:!0}),ZV&&GV.addEventListener("resize",VV)});const NV=CV&&IV?observeMove(CV,VV):null;let gV=-1,eV=null;WV&&(eV=new ResizeObserver(GV=>{let[cV]=GV;cV&&cV.target===CV&&eV&&(eV.unobserve(J),cancelAnimationFrame(gV),gV=requestAnimationFrame(()=>{var TV;(TV=eV)==null||TV.observe(J)})),VV()}),CV&&!dV&&eV.observe(CV),eV.observe(J));let JV,nV=dV?getBoundingClientRect(lV):null;dV&&aV();function aV(){const GV=getBoundingClientRect(lV);nV&&(GV.x!==nV.x||GV.y!==nV.y||GV.width!==nV.width||GV.height!==nV.height)&&VV(),nV=GV,JV=requestAnimationFrame(aV)}return VV(),()=>{var GV;FV.forEach(cV=>{UV&&cV.removeEventListener("scroll",VV),ZV&&cV.removeEventListener("resize",VV)}),NV==null||NV(),(GV=eV)==null||GV.disconnect(),eV=null,dV&&cancelAnimationFrame(JV)}}const offset$1=offset$2,shift$1=shift$2,flip$1=flip$2,size$1=size$2,hide$1=hide$2,arrow$2=arrow$3,limitShift$1=limitShift$2,computePosition=(lV,J,VV)=>{const RV=new Map,UV={platform,...VV},ZV={...UV.platform,_c:RV};return computePosition$1(lV,J,{...UV,platform:ZV})};var index=typeof document<"u"?reactExports.useLayoutEffect:reactExports.useEffect;function deepEqual(lV,J){if(lV===J)return!0;if(typeof lV!=typeof J)return!1;if(typeof lV=="function"&&lV.toString()===J.toString())return!0;let VV,RV,UV;if(lV&&J&&typeof lV=="object"){if(Array.isArray(lV)){if(VV=lV.length,VV!==J.length)return!1;for(RV=VV;RV--!==0;)if(!deepEqual(lV[RV],J[RV]))return!1;return!0}if(UV=Object.keys(lV),VV=UV.length,VV!==Object.keys(J).length)return!1;for(RV=VV;RV--!==0;)if(!{}.hasOwnProperty.call(J,UV[RV]))return!1;for(RV=VV;RV--!==0;){const ZV=UV[RV];if(!(ZV==="_owner"&&lV.$$typeof)&&!deepEqual(lV[ZV],J[ZV]))return!1}return!0}return lV!==lV&&J!==J}function getDPR(lV){return typeof window>"u"?1:(lV.ownerDocument.defaultView||window).devicePixelRatio||1}function roundByDPR(lV,J){const VV=getDPR(lV);return Math.round(J*VV)/VV}function useLatestRef(lV){const J=reactExports.useRef(lV);return index(()=>{J.current=lV}),J}function useFloating(lV){lV===void 0&&(lV={});const{placement:J="bottom",strategy:VV="absolute",middleware:RV=[],platform:UV,elements:{reference:ZV,floating:WV}={},transform:IV=!0,whileElementsMounted:dV,open:CV}=lV,[FV,NV]=reactExports.useState({x:0,y:0,strategy:VV,placement:J,middlewareData:{},isPositioned:!1}),[gV,eV]=reactExports.useState(RV);deepEqual(gV,RV)||eV(RV);const[JV,nV]=reactExports.useState(null),[aV,GV]=reactExports.useState(null),cV=reactExports.useCallback(OV=>{OV!==MV.current&&(MV.current=OV,nV(OV))},[]),TV=reactExports.useCallback(OV=>{OV!==AV.current&&(AV.current=OV,GV(OV))},[]),iV=ZV||JV,tV=WV||aV,MV=reactExports.useRef(null),AV=reactExports.useRef(null),pV=reactExports.useRef(FV),HV=dV!=null,oV=useLatestRef(dV),DV=useLatestRef(UV),wV=useLatestRef(CV),qV=reactExports.useCallback(()=>{if(!MV.current||!AV.current)return;const OV={placement:J,strategy:VV,middleware:gV};DV.current&&(OV.platform=DV.current),computePosition(MV.current,AV.current,OV).then($V=>{const dl={...$V,isPositioned:wV.current!==!1};Cl.current&&!deepEqual(pV.current,dl)&&(pV.current=dl,reactDomExports.flushSync(()=>{NV(dl)}))})},[gV,J,VV,DV,wV]);index(()=>{CV===!1&&pV.current.isPositioned&&(pV.current.isPositioned=!1,NV(OV=>({...OV,isPositioned:!1})))},[CV]);const Cl=reactExports.useRef(!1);index(()=>(Cl.current=!0,()=>{Cl.current=!1}),[]),index(()=>{if(iV&&(MV.current=iV),tV&&(AV.current=tV),iV&&tV){if(oV.current)return oV.current(iV,tV,qV);qV()}},[iV,tV,qV,oV,HV]);const nl=reactExports.useMemo(()=>({reference:MV,floating:AV,setReference:cV,setFloating:TV}),[cV,TV]),Il=reactExports.useMemo(()=>({reference:iV,floating:tV}),[iV,tV]),LV=reactExports.useMemo(()=>{const OV={position:VV,left:0,top:0};if(!Il.floating)return OV;const $V=roundByDPR(Il.floating,FV.x),dl=roundByDPR(Il.floating,FV.y);return IV?{...OV,transform:"translate("+$V+"px, "+dl+"px)",...getDPR(Il.floating)>=1.5&&{willChange:"transform"}}:{position:VV,left:$V,top:dl}},[VV,IV,Il.floating,FV.x,FV.y]);return reactExports.useMemo(()=>({...FV,update:qV,refs:nl,elements:Il,floatingStyles:LV}),[FV,qV,nl,Il,LV])}const arrow$1=lV=>{function J(VV){return{}.hasOwnProperty.call(VV,"current")}return{name:"arrow",options:lV,fn(VV){const{element:RV,padding:UV}=typeof lV=="function"?lV(VV):lV;return RV&&J(RV)?RV.current!=null?arrow$2({element:RV.current,padding:UV}).fn(VV):{}:RV?arrow$2({element:RV,padding:UV}).fn(VV):{}}}},offset=(lV,J)=>({...offset$1(lV),options:[lV,J]}),shift=(lV,J)=>({...shift$1(lV),options:[lV,J]}),limitShift=(lV,J)=>({...limitShift$1(lV),options:[lV,J]}),flip=(lV,J)=>({...flip$1(lV),options:[lV,J]}),size=(lV,J)=>({...size$1(lV),options:[lV,J]}),hide=(lV,J)=>({...hide$1(lV),options:[lV,J]}),arrow=(lV,J)=>({...arrow$1(lV),options:[lV,J]});var NAME="Arrow",Arrow$1=reactExports.forwardRef((lV,J)=>{const{children:VV,width:RV=10,height:UV=5,...ZV}=lV;return jsxRuntimeExports.jsx(Primitive.svg,{...ZV,ref:J,width:RV,height:UV,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:lV.asChild?VV:jsxRuntimeExports.jsx("polygon",{points:"0,0 30,0 15,10"})})});Arrow$1.displayName=NAME;var Root=Arrow$1;function createContextScope(lV,J=[]){let VV=[];function RV(ZV,WV){const IV=reactExports.createContext(WV),dV=VV.length;VV=[...VV,WV];function CV(NV){const{scope:gV,children:eV,...JV}=NV,nV=(gV==null?void 0:gV[lV][dV])||IV,aV=reactExports.useMemo(()=>JV,Object.values(JV));return jsxRuntimeExports.jsx(nV.Provider,{value:aV,children:eV})}function FV(NV,gV){const eV=(gV==null?void 0:gV[lV][dV])||IV,JV=reactExports.useContext(eV);if(JV)return JV;if(WV!==void 0)return WV;throw new Error(`\`${NV}\` must be used within \`${ZV}\``)}return CV.displayName=ZV+"Provider",[CV,FV]}const UV=()=>{const ZV=VV.map(WV=>reactExports.createContext(WV));return function(IV){const dV=(IV==null?void 0:IV[lV])||ZV;return reactExports.useMemo(()=>({[`__scope${lV}`]:{...IV,[lV]:dV}}),[IV,dV])}};return UV.scopeName=lV,[RV,composeContextScopes(UV,...J)]}function composeContextScopes(...lV){const J=lV[0];if(lV.length===1)return J;const VV=()=>{const RV=lV.map(UV=>({useScope:UV(),scopeName:UV.scopeName}));return function(ZV){const WV=RV.reduce((IV,{useScope:dV,scopeName:CV})=>{const NV=dV(ZV)[`__scope${CV}`];return{...IV,...NV}},{});return reactExports.useMemo(()=>({[`__scope${J.scopeName}`]:WV}),[WV])}};return VV.scopeName=J.scopeName,VV}function useSize(lV){const[J,VV]=reactExports.useState(void 0);return useLayoutEffect2(()=>{if(lV){VV({width:lV.offsetWidth,height:lV.offsetHeight});const RV=new ResizeObserver(UV=>{if(!Array.isArray(UV)||!UV.length)return;const ZV=UV[0];let WV,IV;if("borderBoxSize"in ZV){const dV=ZV.borderBoxSize,CV=Array.isArray(dV)?dV[0]:dV;WV=CV.inlineSize,IV=CV.blockSize}else WV=lV.offsetWidth,IV=lV.offsetHeight;VV({width:WV,height:IV})});return RV.observe(lV,{box:"border-box"}),()=>RV.unobserve(lV)}else VV(void 0)},[lV]),J}var POPPER_NAME="Popper",[createPopperContext,createPopperScope]=createContextScope(POPPER_NAME),[PopperProvider,usePopperContext]=createPopperContext(POPPER_NAME),Popper=lV=>{const{__scopePopper:J,children:VV}=lV,[RV,UV]=reactExports.useState(null);return jsxRuntimeExports.jsx(PopperProvider,{scope:J,anchor:RV,onAnchorChange:UV,children:VV})};Popper.displayName=POPPER_NAME;var ANCHOR_NAME$1="PopperAnchor",PopperAnchor=reactExports.forwardRef((lV,J)=>{const{__scopePopper:VV,virtualRef:RV,...UV}=lV,ZV=usePopperContext(ANCHOR_NAME$1,VV),WV=reactExports.useRef(null),IV=useComposedRefs(J,WV);return reactExports.useEffect(()=>{ZV.onAnchorChange((RV==null?void 0:RV.current)||WV.current)}),RV?null:jsxRuntimeExports.jsx(Primitive.div,{...UV,ref:IV})});PopperAnchor.displayName=ANCHOR_NAME$1;var CONTENT_NAME$2="PopperContent",[PopperContentProvider,useContentContext]=createPopperContext(CONTENT_NAME$2),PopperContent=reactExports.forwardRef((lV,J)=>{var jl,Ll,ol,Tl,kl,ul;const{__scopePopper:VV,side:RV="bottom",sideOffset:UV=0,align:ZV="center",alignOffset:WV=0,arrowPadding:IV=0,avoidCollisions:dV=!0,collisionBoundary:CV=[],collisionPadding:FV=0,sticky:NV="partial",hideWhenDetached:gV=!1,updatePositionStrategy:eV="optimized",onPlaced:JV,...nV}=lV,aV=usePopperContext(CONTENT_NAME$2,VV),[GV,cV]=reactExports.useState(null),TV=useComposedRefs(J,UR=>cV(UR)),[iV,tV]=reactExports.useState(null),MV=useSize(iV),AV=(MV==null?void 0:MV.width)??0,pV=(MV==null?void 0:MV.height)??0,HV=RV+(ZV!=="center"?"-"+ZV:""),oV=typeof FV=="number"?FV:{top:0,right:0,bottom:0,left:0,...FV},DV=Array.isArray(CV)?CV:[CV],wV=DV.length>0,qV={padding:oV,boundary:DV.filter(isNotNull),altBoundary:wV},{refs:Cl,floatingStyles:nl,placement:Il,isPositioned:LV,middlewareData:OV}=useFloating({strategy:"fixed",placement:HV,whileElementsMounted:(...UR)=>autoUpdate(...UR,{animationFrame:eV==="always"}),elements:{reference:aV.anchor},middleware:[offset({mainAxis:UV+pV,alignmentAxis:WV}),dV&&shift({mainAxis:!0,crossAxis:!1,limiter:NV==="partial"?limitShift():void 0,...qV}),dV&&flip({...qV}),size({...qV,apply:({elements:UR,rects:JR,availableWidth:FR,availableHeight:QR})=>{const{width:hR,height:MR}=JR.reference,mR=UR.floating.style;mR.setProperty("--radix-popper-available-width",`${FR}px`),mR.setProperty("--radix-popper-available-height",`${QR}px`),mR.setProperty("--radix-popper-anchor-width",`${hR}px`),mR.setProperty("--radix-popper-anchor-height",`${MR}px`)}}),iV&&arrow({element:iV,padding:IV}),transformOrigin({arrowWidth:AV,arrowHeight:pV}),gV&&hide({strategy:"referenceHidden",...qV})]}),[$V,dl]=getSideAndAlignFromPlacement(Il),Wl=useCallbackRef$1(JV);useLayoutEffect2(()=>{LV&&(Wl==null||Wl())},[LV,Wl]);const el=(jl=OV.arrow)==null?void 0:jl.x,pl=(Ll=OV.arrow)==null?void 0:Ll.y,ml=((ol=OV.arrow)==null?void 0:ol.centerOffset)!==0,[Bl,xl]=reactExports.useState();return useLayoutEffect2(()=>{GV&&xl(window.getComputedStyle(GV).zIndex)},[GV]),jsxRuntimeExports.jsx("div",{ref:Cl.setFloating,"data-radix-popper-content-wrapper":"",style:{...nl,transform:LV?nl.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Bl,"--radix-popper-transform-origin":[(Tl=OV.transformOrigin)==null?void 0:Tl.x,(kl=OV.transformOrigin)==null?void 0:kl.y].join(" "),...((ul=OV.hide)==null?void 0:ul.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:lV.dir,children:jsxRuntimeExports.jsx(PopperContentProvider,{scope:VV,placedSide:$V,onArrowChange:tV,arrowX:el,arrowY:pl,shouldHideArrow:ml,children:jsxRuntimeExports.jsx(Primitive.div,{"data-side":$V,"data-align":dl,...nV,ref:TV,style:{...nV.style,animation:LV?void 0:"none"}})})})});PopperContent.displayName=CONTENT_NAME$2;var ARROW_NAME$2="PopperArrow",OPPOSITE_SIDE={top:"bottom",right:"left",bottom:"top",left:"right"},PopperArrow=reactExports.forwardRef(function lV(J,VV){const{__scopePopper:RV,...UV}=J,ZV=useContentContext(ARROW_NAME$2,RV),WV=OPPOSITE_SIDE[ZV.placedSide];return jsxRuntimeExports.jsx("span",{ref:ZV.onArrowChange,style:{position:"absolute",left:ZV.arrowX,top:ZV.arrowY,[WV]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[ZV.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[ZV.placedSide],visibility:ZV.shouldHideArrow?"hidden":void 0},children:jsxRuntimeExports.jsx(Root,{...UV,ref:VV,style:{...UV.style,display:"block"}})})});PopperArrow.displayName=ARROW_NAME$2;function isNotNull(lV){return lV!==null}var transformOrigin=lV=>({name:"transformOrigin",options:lV,fn(J){var aV,GV,cV;const{placement:VV,rects:RV,middlewareData:UV}=J,WV=((aV=UV.arrow)==null?void 0:aV.centerOffset)!==0,IV=WV?0:lV.arrowWidth,dV=WV?0:lV.arrowHeight,[CV,FV]=getSideAndAlignFromPlacement(VV),NV={start:"0%",center:"50%",end:"100%"}[FV],gV=(((GV=UV.arrow)==null?void 0:GV.x)??0)+IV/2,eV=(((cV=UV.arrow)==null?void 0:cV.y)??0)+dV/2;let JV="",nV="";return CV==="bottom"?(JV=WV?NV:`${gV}px`,nV=`${-dV}px`):CV==="top"?(JV=WV?NV:`${gV}px`,nV=`${RV.floating.height+dV}px`):CV==="right"?(JV=`${-dV}px`,nV=WV?NV:`${eV}px`):CV==="left"&&(JV=`${RV.floating.width+dV}px`,nV=WV?NV:`${eV}px`),{data:{x:JV,y:nV}}}});function getSideAndAlignFromPlacement(lV){const[J,VV="center"]=lV.split("-");return[J,VV]}var Root2$1=Popper,Anchor=PopperAnchor,Content=PopperContent,Arrow=PopperArrow,PORTAL_NAME$2="Portal",Portal$1=reactExports.forwardRef((lV,J)=>{var IV;const{container:VV,...RV}=lV,[UV,ZV]=reactExports.useState(!1);useLayoutEffect2(()=>ZV(!0),[]);const WV=VV||UV&&((IV=globalThis==null?void 0:globalThis.document)==null?void 0:IV.body);return WV?ReactDOM.createPortal(jsxRuntimeExports.jsx(Primitive.div,{...RV,ref:J}),WV):null});Portal$1.displayName=PORTAL_NAME$2;var getDefaultParent=function(lV){if(typeof document>"u")return null;var J=Array.isArray(lV)?lV[0]:lV;return J.ownerDocument.body},counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={},lockCount=0,unwrapHost=function(lV){return lV&&(lV.host||unwrapHost(lV.parentNode))},correctTargets=function(lV,J){return J.map(function(VV){if(lV.contains(VV))return VV;var RV=unwrapHost(VV);return RV&&lV.contains(RV)?RV:(console.error("aria-hidden",VV,"in not contained inside",lV,". Doing nothing"),null)}).filter(function(VV){return!!VV})},applyAttributeToOthers=function(lV,J,VV,RV){var UV=correctTargets(J,Array.isArray(lV)?lV:[lV]);markerMap[VV]||(markerMap[VV]=new WeakMap);var ZV=markerMap[VV],WV=[],IV=new Set,dV=new Set(UV),CV=function(NV){!NV||IV.has(NV)||(IV.add(NV),CV(NV.parentNode))};UV.forEach(CV);var FV=function(NV){!NV||dV.has(NV)||Array.prototype.forEach.call(NV.children,function(gV){if(IV.has(gV))FV(gV);else try{var eV=gV.getAttribute(RV),JV=eV!==null&&eV!=="false",nV=(counterMap.get(gV)||0)+1,aV=(ZV.get(gV)||0)+1;counterMap.set(gV,nV),ZV.set(gV,aV),WV.push(gV),nV===1&&JV&&uncontrolledNodes.set(gV,!0),aV===1&&gV.setAttribute(VV,"true"),JV||gV.setAttribute(RV,"true")}catch(GV){console.error("aria-hidden: cannot operate on ",gV,GV)}})};return FV(J),IV.clear(),lockCount++,function(){WV.forEach(function(NV){var gV=counterMap.get(NV)-1,eV=ZV.get(NV)-1;counterMap.set(NV,gV),ZV.set(NV,eV),gV||(uncontrolledNodes.has(NV)||NV.removeAttribute(RV),uncontrolledNodes.delete(NV)),eV||NV.removeAttribute(VV)}),lockCount--,lockCount||(counterMap=new WeakMap,counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={})}},hideOthers=function(lV,J,VV){VV===void 0&&(VV="data-aria-hidden");var RV=Array.from(Array.isArray(lV)?lV:[lV]),UV=getDefaultParent(lV);return UV?(RV.push.apply(RV,Array.from(UV.querySelectorAll("[aria-live]"))),applyAttributeToOthers(RV,UV,VV,"aria-hidden")):function(){return null}},__assign=function(){return __assign=Object.assign||function(J){for(var VV,RV=1,UV=arguments.length;RV<UV;RV++){VV=arguments[RV];for(var ZV in VV)Object.prototype.hasOwnProperty.call(VV,ZV)&&(J[ZV]=VV[ZV])}return J},__assign.apply(this,arguments)};function __rest(lV,J){var VV={};for(var RV in lV)Object.prototype.hasOwnProperty.call(lV,RV)&&J.indexOf(RV)<0&&(VV[RV]=lV[RV]);if(lV!=null&&typeof Object.getOwnPropertySymbols=="function")for(var UV=0,RV=Object.getOwnPropertySymbols(lV);UV<RV.length;UV++)J.indexOf(RV[UV])<0&&Object.prototype.propertyIsEnumerable.call(lV,RV[UV])&&(VV[RV[UV]]=lV[RV[UV]]);return VV}function __spreadArray(lV,J,VV){if(VV||arguments.length===2)for(var RV=0,UV=J.length,ZV;RV<UV;RV++)(ZV||!(RV in J))&&(ZV||(ZV=Array.prototype.slice.call(J,0,RV)),ZV[RV]=J[RV]);return lV.concat(ZV||Array.prototype.slice.call(J))}typeof SuppressedError=="function"&&SuppressedError;var zeroRightClassName="right-scroll-bar-position",fullWidthClassName="width-before-scroll-bar",noScrollbarsClassName="with-scroll-bars-hidden",removedBarSizeVariable="--removed-body-scroll-bar-size";function assignRef(lV,J){return typeof lV=="function"?lV(J):lV&&(lV.current=J),lV}function useCallbackRef(lV,J){var VV=reactExports.useState(function(){return{value:lV,callback:J,facade:{get current(){return VV.value},set current(RV){var UV=VV.value;UV!==RV&&(VV.value=RV,VV.callback(RV,UV))}}}})[0];return VV.callback=J,VV.facade}var useIsomorphicLayoutEffect=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,currentValues=new WeakMap;function useMergeRefs(lV,J){var VV=useCallbackRef(null,function(RV){return lV.forEach(function(UV){return assignRef(UV,RV)})});return useIsomorphicLayoutEffect(function(){var RV=currentValues.get(VV);if(RV){var UV=new Set(RV),ZV=new Set(lV),WV=VV.current;UV.forEach(function(IV){ZV.has(IV)||assignRef(IV,null)}),ZV.forEach(function(IV){UV.has(IV)||assignRef(IV,WV)})}currentValues.set(VV,lV)},[lV]),VV}function ItoI(lV){return lV}function innerCreateMedium(lV,J){J===void 0&&(J=ItoI);var VV=[],RV=!1,UV={read:function(){if(RV)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return VV.length?VV[VV.length-1]:lV},useMedium:function(ZV){var WV=J(ZV,RV);return VV.push(WV),function(){VV=VV.filter(function(IV){return IV!==WV})}},assignSyncMedium:function(ZV){for(RV=!0;VV.length;){var WV=VV;VV=[],WV.forEach(ZV)}VV={push:function(IV){return ZV(IV)},filter:function(){return VV}}},assignMedium:function(ZV){RV=!0;var WV=[];if(VV.length){var IV=VV;VV=[],IV.forEach(ZV),WV=VV}var dV=function(){var FV=WV;WV=[],FV.forEach(ZV)},CV=function(){return Promise.resolve().then(dV)};CV(),VV={push:function(FV){WV.push(FV),CV()},filter:function(FV){return WV=WV.filter(FV),VV}}}};return UV}function createSidecarMedium(lV){lV===void 0&&(lV={});var J=innerCreateMedium(null);return J.options=__assign({async:!0,ssr:!1},lV),J}var SideCar$1=function(lV){var J=lV.sideCar,VV=__rest(lV,["sideCar"]);if(!J)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var RV=J.read();if(!RV)throw new Error("Sidecar medium not found");return reactExports.createElement(RV,__assign({},VV))};SideCar$1.isSideCarExport=!0;function exportSidecar(lV,J){return lV.useMedium(J),SideCar$1}var effectCar=createSidecarMedium(),nothing=function(){},RemoveScroll=reactExports.forwardRef(function(lV,J){var VV=reactExports.useRef(null),RV=reactExports.useState({onScrollCapture:nothing,onWheelCapture:nothing,onTouchMoveCapture:nothing}),UV=RV[0],ZV=RV[1],WV=lV.forwardProps,IV=lV.children,dV=lV.className,CV=lV.removeScrollBar,FV=lV.enabled,NV=lV.shards,gV=lV.sideCar,eV=lV.noIsolation,JV=lV.inert,nV=lV.allowPinchZoom,aV=lV.as,GV=aV===void 0?"div":aV,cV=lV.gapMode,TV=__rest(lV,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as","gapMode"]),iV=gV,tV=useMergeRefs([VV,J]),MV=__assign(__assign({},TV),UV);return reactExports.createElement(reactExports.Fragment,null,FV&&reactExports.createElement(iV,{sideCar:effectCar,removeScrollBar:CV,shards:NV,noIsolation:eV,inert:JV,setCallbacks:ZV,allowPinchZoom:!!nV,lockRef:VV,gapMode:cV}),WV?reactExports.cloneElement(reactExports.Children.only(IV),__assign(__assign({},MV),{ref:tV})):reactExports.createElement(GV,__assign({},MV,{className:dV,ref:tV}),IV))});RemoveScroll.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},RemoveScroll.classNames={fullWidth:fullWidthClassName,zeroRight:zeroRightClassName};var getNonce=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function makeStyleTag(){if(!document)return null;var lV=document.createElement("style");lV.type="text/css";var J=getNonce();return J&&lV.setAttribute("nonce",J),lV}function injectStyles(lV,J){lV.styleSheet?lV.styleSheet.cssText=J:lV.appendChild(document.createTextNode(J))}function insertStyleTag(lV){var J=document.head||document.getElementsByTagName("head")[0];J.appendChild(lV)}var stylesheetSingleton=function(){var lV=0,J=null;return{add:function(VV){lV==0&&(J=makeStyleTag())&&(injectStyles(J,VV),insertStyleTag(J)),lV++},remove:function(){lV--,!lV&&J&&(J.parentNode&&J.parentNode.removeChild(J),J=null)}}},styleHookSingleton=function(){var lV=stylesheetSingleton();return function(J,VV){reactExports.useEffect(function(){return lV.add(J),function(){lV.remove()}},[J&&VV])}},styleSingleton=function(){var lV=styleHookSingleton(),J=function(VV){var RV=VV.styles,UV=VV.dynamic;return lV(RV,UV),null};return J},zeroGap={left:0,top:0,right:0,gap:0},parse=function(lV){return parseInt(lV||"",10)||0},getOffset=function(lV){var J=window.getComputedStyle(document.body),VV=J[lV==="padding"?"paddingLeft":"marginLeft"],RV=J[lV==="padding"?"paddingTop":"marginTop"],UV=J[lV==="padding"?"paddingRight":"marginRight"];return[parse(VV),parse(RV),parse(UV)]},getGapWidth=function(lV){if(lV===void 0&&(lV="margin"),typeof window>"u")return zeroGap;var J=getOffset(lV),VV=document.documentElement.clientWidth,RV=window.innerWidth;return{left:J[0],top:J[1],right:J[2],gap:Math.max(0,RV-VV+J[2]-J[0])}},Style=styleSingleton(),lockAttribute="data-scroll-locked",getStyles=function(lV,J,VV,RV){var UV=lV.left,ZV=lV.top,WV=lV.right,IV=lV.gap;return VV===void 0&&(VV="margin"),`
|
|
22239
22239
|
.`.concat(noScrollbarsClassName,` {
|
|
22240
22240
|
overflow: hidden `).concat(RV,`;
|
|
22241
22241
|
padding-right: `).concat(IV,"px ").concat(RV,`;
|
|
@@ -22275,7 +22275,7 @@ void main() {
|
|
|
22275
22275
|
`)},getCurrentUseCounter=function(){var lV=parseInt(document.body.getAttribute(lockAttribute)||"0",10);return isFinite(lV)?lV:0},useLockAttribute=function(){reactExports.useEffect(function(){return document.body.setAttribute(lockAttribute,(getCurrentUseCounter()+1).toString()),function(){var lV=getCurrentUseCounter()-1;lV<=0?document.body.removeAttribute(lockAttribute):document.body.setAttribute(lockAttribute,lV.toString())}},[])},RemoveScrollBar=function(lV){var J=lV.noRelative,VV=lV.noImportant,RV=lV.gapMode,UV=RV===void 0?"margin":RV;useLockAttribute();var ZV=reactExports.useMemo(function(){return getGapWidth(UV)},[UV]);return reactExports.createElement(Style,{styles:getStyles(ZV,!J,UV,VV?"":"!important")})},passiveSupported=!1;if(typeof window<"u")try{var options=Object.defineProperty({},"passive",{get:function(){return passiveSupported=!0,!0}});window.addEventListener("test",options,options),window.removeEventListener("test",options,options)}catch{passiveSupported=!1}var nonPassive=passiveSupported?{passive:!1}:!1,alwaysContainsScroll=function(lV){return lV.tagName==="TEXTAREA"},elementCanBeScrolled=function(lV,J){if(!(lV instanceof Element))return!1;var VV=window.getComputedStyle(lV);return VV[J]!=="hidden"&&!(VV.overflowY===VV.overflowX&&!alwaysContainsScroll(lV)&&VV[J]==="visible")},elementCouldBeVScrolled=function(lV){return elementCanBeScrolled(lV,"overflowY")},elementCouldBeHScrolled=function(lV){return elementCanBeScrolled(lV,"overflowX")},locationCouldBeScrolled=function(lV,J){var VV=J.ownerDocument,RV=J;do{typeof ShadowRoot<"u"&&RV instanceof ShadowRoot&&(RV=RV.host);var UV=elementCouldBeScrolled(lV,RV);if(UV){var ZV=getScrollVariables(lV,RV),WV=ZV[1],IV=ZV[2];if(WV>IV)return!0}RV=RV.parentNode}while(RV&&RV!==VV.body);return!1},getVScrollVariables=function(lV){var J=lV.scrollTop,VV=lV.scrollHeight,RV=lV.clientHeight;return[J,VV,RV]},getHScrollVariables=function(lV){var J=lV.scrollLeft,VV=lV.scrollWidth,RV=lV.clientWidth;return[J,VV,RV]},elementCouldBeScrolled=function(lV,J){return lV==="v"?elementCouldBeVScrolled(J):elementCouldBeHScrolled(J)},getScrollVariables=function(lV,J){return lV==="v"?getVScrollVariables(J):getHScrollVariables(J)},getDirectionFactor=function(lV,J){return lV==="h"&&J==="rtl"?-1:1},handleScroll=function(lV,J,VV,RV,UV){var ZV=getDirectionFactor(lV,window.getComputedStyle(J).direction),WV=ZV*RV,IV=VV.target,dV=J.contains(IV),CV=!1,FV=WV>0,NV=0,gV=0;do{var eV=getScrollVariables(lV,IV),JV=eV[0],nV=eV[1],aV=eV[2],GV=nV-aV-ZV*JV;(JV||GV)&&elementCouldBeScrolled(lV,IV)&&(NV+=GV,gV+=JV),IV instanceof ShadowRoot?IV=IV.host:IV=IV.parentNode}while(!dV&&IV!==document.body||dV&&(J.contains(IV)||J===IV));return(FV&&(Math.abs(NV)<1||!UV)||!FV&&(Math.abs(gV)<1||!UV))&&(CV=!0),CV},getTouchXY=function(lV){return"changedTouches"in lV?[lV.changedTouches[0].clientX,lV.changedTouches[0].clientY]:[0,0]},getDeltaXY=function(lV){return[lV.deltaX,lV.deltaY]},extractRef=function(lV){return lV&&"current"in lV?lV.current:lV},deltaCompare=function(lV,J){return lV[0]===J[0]&&lV[1]===J[1]},generateStyle=function(lV){return`
|
|
22276
22276
|
.block-interactivity-`.concat(lV,` {pointer-events: none;}
|
|
22277
22277
|
.allow-interactivity-`).concat(lV,` {pointer-events: all;}
|
|
22278
|
-
`)},idCounter=0,lockStack=[];function RemoveScrollSideCar(lV){var J=reactExports.useRef([]),VV=reactExports.useRef([0,0]),RV=reactExports.useRef(),UV=reactExports.useState(idCounter++)[0],ZV=reactExports.useState(styleSingleton)[0],WV=reactExports.useRef(lV);reactExports.useEffect(function(){WV.current=lV},[lV]),reactExports.useEffect(function(){if(lV.inert){document.body.classList.add("block-interactivity-".concat(UV));var nV=__spreadArray([lV.lockRef.current],(lV.shards||[]).map(extractRef),!0).filter(Boolean);return nV.forEach(function(aV){return aV.classList.add("allow-interactivity-".concat(UV))}),function(){document.body.classList.remove("block-interactivity-".concat(UV)),nV.forEach(function(aV){return aV.classList.remove("allow-interactivity-".concat(UV))})}}},[lV.inert,lV.lockRef.current,lV.shards]);var IV=reactExports.useCallback(function(nV,aV){if("touches"in nV&&nV.touches.length===2||nV.type==="wheel"&&nV.ctrlKey)return!WV.current.allowPinchZoom;var GV=getTouchXY(nV),cV=VV.current,TV="deltaX"in nV?nV.deltaX:cV[0]-GV[0],iV="deltaY"in nV?nV.deltaY:cV[1]-GV[1],tV,MV=nV.target,AV=Math.abs(TV)>Math.abs(iV)?"h":"v";if("touches"in nV&&AV==="h"&&MV.type==="range")return!1;var pV=locationCouldBeScrolled(AV,MV);if(!pV)return!0;if(pV?tV=AV:(tV=AV==="v"?"h":"v",pV=locationCouldBeScrolled(AV,MV)),!pV)return!1;if(!RV.current&&"changedTouches"in nV&&(TV||iV)&&(RV.current=tV),!tV)return!0;var HV=RV.current||tV;return handleScroll(HV,aV,nV,HV==="h"?TV:iV,!0)},[]),dV=reactExports.useCallback(function(nV){var aV=nV;if(!(!lockStack.length||lockStack[lockStack.length-1]!==ZV)){var GV="deltaY"in aV?getDeltaXY(aV):getTouchXY(aV),cV=J.current.filter(function(tV){return tV.name===aV.type&&(tV.target===aV.target||aV.target===tV.shadowParent)&&deltaCompare(tV.delta,GV)})[0];if(cV&&cV.should){aV.cancelable&&aV.preventDefault();return}if(!cV){var TV=(WV.current.shards||[]).map(extractRef).filter(Boolean).filter(function(tV){return tV.contains(aV.target)}),iV=TV.length>0?IV(aV,TV[0]):!WV.current.noIsolation;iV&&aV.cancelable&&aV.preventDefault()}}},[]),CV=reactExports.useCallback(function(nV,aV,GV,cV){var TV={name:nV,delta:aV,target:GV,should:cV,shadowParent:getOutermostShadowParent(GV)};J.current.push(TV),setTimeout(function(){J.current=J.current.filter(function(iV){return iV!==TV})},1)},[]),FV=reactExports.useCallback(function(nV){VV.current=getTouchXY(nV),RV.current=void 0},[]),NV=reactExports.useCallback(function(nV){CV(nV.type,getDeltaXY(nV),nV.target,IV(nV,lV.lockRef.current))},[]),gV=reactExports.useCallback(function(nV){CV(nV.type,getTouchXY(nV),nV.target,IV(nV,lV.lockRef.current))},[]);reactExports.useEffect(function(){return lockStack.push(ZV),lV.setCallbacks({onScrollCapture:NV,onWheelCapture:NV,onTouchMoveCapture:gV}),document.addEventListener("wheel",dV,nonPassive),document.addEventListener("touchmove",dV,nonPassive),document.addEventListener("touchstart",FV,nonPassive),function(){lockStack=lockStack.filter(function(nV){return nV!==ZV}),document.removeEventListener("wheel",dV,nonPassive),document.removeEventListener("touchmove",dV,nonPassive),document.removeEventListener("touchstart",FV,nonPassive)}},[]);var eV=lV.removeScrollBar,JV=lV.inert;return reactExports.createElement(reactExports.Fragment,null,JV?reactExports.createElement(ZV,{styles:generateStyle(UV)}):null,eV?reactExports.createElement(RemoveScrollBar,{gapMode:lV.gapMode}):null)}function getOutermostShadowParent(lV){for(var J=null;lV!==null;)lV instanceof ShadowRoot&&(J=lV.host,lV=lV.host),lV=lV.parentNode;return J}const SideCar=exportSidecar(effectCar,RemoveScrollSideCar);var ReactRemoveScroll=reactExports.forwardRef(function(lV,J){return reactExports.createElement(RemoveScroll,__assign({},lV,{ref:J,sideCar:SideCar}))});ReactRemoveScroll.classNames=RemoveScroll.classNames;var SELECTION_KEYS=["Enter"," "],FIRST_KEYS=["ArrowDown","PageUp","Home"],LAST_KEYS=["ArrowUp","PageDown","End"],FIRST_LAST_KEYS=[...FIRST_KEYS,...LAST_KEYS],SUB_OPEN_KEYS={ltr:[...SELECTION_KEYS,"ArrowRight"],rtl:[...SELECTION_KEYS,"ArrowLeft"]},SUB_CLOSE_KEYS={ltr:["ArrowLeft"],rtl:["ArrowRight"]},MENU_NAME="Menu",[Collection,useCollection,createCollectionScope]=createCollection(MENU_NAME),[createMenuContext,createMenuScope]=createContextScope$3(MENU_NAME,[createCollectionScope,createPopperScope,createRovingFocusGroupScope]),usePopperScope=createPopperScope(),useRovingFocusGroupScope=createRovingFocusGroupScope(),[MenuProvider,useMenuContext]=createMenuContext(MENU_NAME),[MenuRootProvider,useMenuRootContext]=createMenuContext(MENU_NAME),Menu=lV=>{const{__scopeMenu:J,open:VV=!1,children:RV,dir:UV,onOpenChange:ZV,modal:WV=!0}=lV,IV=usePopperScope(J),[dV,CV]=reactExports.useState(null),FV=reactExports.useRef(!1),NV=useCallbackRef$1(ZV),gV=useDirection(UV);return reactExports.useEffect(()=>{const eV=()=>{FV.current=!0,document.addEventListener("pointerdown",JV,{capture:!0,once:!0}),document.addEventListener("pointermove",JV,{capture:!0,once:!0})},JV=()=>FV.current=!1;return document.addEventListener("keydown",eV,{capture:!0}),()=>{document.removeEventListener("keydown",eV,{capture:!0}),document.removeEventListener("pointerdown",JV,{capture:!0}),document.removeEventListener("pointermove",JV,{capture:!0})}},[]),jsxRuntimeExports.jsx(Root2$1,{...IV,children:jsxRuntimeExports.jsx(MenuProvider,{scope:J,open:VV,onOpenChange:NV,content:dV,onContentChange:CV,children:jsxRuntimeExports.jsx(MenuRootProvider,{scope:J,onClose:reactExports.useCallback(()=>NV(!1),[NV]),isUsingKeyboardRef:FV,dir:gV,modal:WV,children:RV})})})};Menu.displayName=MENU_NAME;var ANCHOR_NAME="MenuAnchor",MenuAnchor=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,...RV}=lV,UV=usePopperScope(VV);return jsxRuntimeExports.jsx(Anchor,{...UV,...RV,ref:J})});MenuAnchor.displayName=ANCHOR_NAME;var PORTAL_NAME$1="MenuPortal",[PortalProvider,usePortalContext]=createMenuContext(PORTAL_NAME$1,{forceMount:void 0}),MenuPortal=lV=>{const{__scopeMenu:J,forceMount:VV,children:RV,container:UV}=lV,ZV=useMenuContext(PORTAL_NAME$1,J);return jsxRuntimeExports.jsx(PortalProvider,{scope:J,forceMount:VV,children:jsxRuntimeExports.jsx(Presence,{present:VV||ZV.open,children:jsxRuntimeExports.jsx(Portal$1,{asChild:!0,container:UV,children:RV})})})};MenuPortal.displayName=PORTAL_NAME$1;var CONTENT_NAME$1="MenuContent",[MenuContentProvider,useMenuContentContext]=createMenuContext(CONTENT_NAME$1),MenuContent=reactExports.forwardRef((lV,J)=>{const VV=usePortalContext(CONTENT_NAME$1,lV.__scopeMenu),{forceMount:RV=VV.forceMount,...UV}=lV,ZV=useMenuContext(CONTENT_NAME$1,lV.__scopeMenu),WV=useMenuRootContext(CONTENT_NAME$1,lV.__scopeMenu);return jsxRuntimeExports.jsx(Collection.Provider,{scope:lV.__scopeMenu,children:jsxRuntimeExports.jsx(Presence,{present:RV||ZV.open,children:jsxRuntimeExports.jsx(Collection.Slot,{scope:lV.__scopeMenu,children:WV.modal?jsxRuntimeExports.jsx(MenuRootContentModal,{...UV,ref:J}):jsxRuntimeExports.jsx(MenuRootContentNonModal,{...UV,ref:J})})})})}),MenuRootContentModal=reactExports.forwardRef((lV,J)=>{const VV=useMenuContext(CONTENT_NAME$1,lV.__scopeMenu),RV=reactExports.useRef(null),UV=useComposedRefs(J,RV);return reactExports.useEffect(()=>{const ZV=RV.current;if(ZV)return hideOthers(ZV)},[]),jsxRuntimeExports.jsx(MenuContentImpl,{...lV,ref:UV,trapFocus:VV.open,disableOutsidePointerEvents:VV.open,disableOutsideScroll:!0,onFocusOutside:composeEventHandlers(lV.onFocusOutside,ZV=>ZV.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>VV.onOpenChange(!1)})}),MenuRootContentNonModal=reactExports.forwardRef((lV,J)=>{const VV=useMenuContext(CONTENT_NAME$1,lV.__scopeMenu);return jsxRuntimeExports.jsx(MenuContentImpl,{...lV,ref:J,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>VV.onOpenChange(!1)})}),MenuContentImpl=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,loop:RV=!1,trapFocus:UV,onOpenAutoFocus:ZV,onCloseAutoFocus:WV,disableOutsidePointerEvents:IV,onEntryFocus:dV,onEscapeKeyDown:CV,onPointerDownOutside:FV,onFocusOutside:NV,onInteractOutside:gV,onDismiss:eV,disableOutsideScroll:JV,...nV}=lV,aV=useMenuContext(CONTENT_NAME$1,VV),GV=useMenuRootContext(CONTENT_NAME$1,VV),cV=usePopperScope(VV),TV=useRovingFocusGroupScope(VV),iV=useCollection(VV),[tV,MV]=reactExports.useState(null),AV=reactExports.useRef(null),pV=useComposedRefs(J,AV,aV.onContentChange),HV=reactExports.useRef(0),oV=reactExports.useRef(""),DV=reactExports.useRef(0),wV=reactExports.useRef(null),qV=reactExports.useRef("right"),Cl=reactExports.useRef(0),nl=JV?ReactRemoveScroll:reactExports.Fragment,Il=JV?{as:Slot,allowPinchZoom:!0}:void 0,LV=$V=>{var jl,Ll;const dl=oV.current+$V,Wl=iV().filter(ol=>!ol.disabled),el=document.activeElement,pl=(jl=Wl.find(ol=>ol.ref.current===el))==null?void 0:jl.textValue,ml=Wl.map(ol=>ol.textValue),Bl=getNextMatch(ml,dl,pl),xl=(Ll=Wl.find(ol=>ol.textValue===Bl))==null?void 0:Ll.ref.current;(function ol(Tl){oV.current=Tl,window.clearTimeout(HV.current),Tl!==""&&(HV.current=window.setTimeout(()=>ol(""),1e3))})(dl),xl&&setTimeout(()=>xl.focus())};reactExports.useEffect(()=>()=>window.clearTimeout(HV.current),[]),useFocusGuards();const OV=reactExports.useCallback($V=>{var Wl,el;return qV.current===((Wl=wV.current)==null?void 0:Wl.side)&&isPointerInGraceArea($V,(el=wV.current)==null?void 0:el.area)},[]);return jsxRuntimeExports.jsx(MenuContentProvider,{scope:VV,searchRef:oV,onItemEnter:reactExports.useCallback($V=>{OV($V)&&$V.preventDefault()},[OV]),onItemLeave:reactExports.useCallback($V=>{var dl;OV($V)||((dl=AV.current)==null||dl.focus(),MV(null))},[OV]),onTriggerLeave:reactExports.useCallback($V=>{OV($V)&&$V.preventDefault()},[OV]),pointerGraceTimerRef:DV,onPointerGraceIntentChange:reactExports.useCallback($V=>{wV.current=$V},[]),children:jsxRuntimeExports.jsx(nl,{...Il,children:jsxRuntimeExports.jsx(FocusScope,{asChild:!0,trapped:UV,onMountAutoFocus:composeEventHandlers(ZV,$V=>{var dl;$V.preventDefault(),(dl=AV.current)==null||dl.focus({preventScroll:!0})}),onUnmountAutoFocus:WV,children:jsxRuntimeExports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:IV,onEscapeKeyDown:CV,onPointerDownOutside:FV,onFocusOutside:NV,onInteractOutside:gV,onDismiss:eV,children:jsxRuntimeExports.jsx(Root$1,{asChild:!0,...TV,dir:GV.dir,orientation:"vertical",loop:RV,currentTabStopId:tV,onCurrentTabStopIdChange:MV,onEntryFocus:composeEventHandlers(dV,$V=>{GV.isUsingKeyboardRef.current||$V.preventDefault()}),preventScrollOnEntryFocus:!0,children:jsxRuntimeExports.jsx(Content,{role:"menu","aria-orientation":"vertical","data-state":getOpenState(aV.open),"data-radix-menu-content":"",dir:GV.dir,...cV,...nV,ref:pV,style:{outline:"none",...nV.style},onKeyDown:composeEventHandlers(nV.onKeyDown,$V=>{const Wl=$V.target.closest("[data-radix-menu-content]")===$V.currentTarget,el=$V.ctrlKey||$V.altKey||$V.metaKey,pl=$V.key.length===1;Wl&&($V.key==="Tab"&&$V.preventDefault(),!el&&pl&&LV($V.key));const ml=AV.current;if($V.target!==ml||!FIRST_LAST_KEYS.includes($V.key))return;$V.preventDefault();const xl=iV().filter(jl=>!jl.disabled).map(jl=>jl.ref.current);LAST_KEYS.includes($V.key)&&xl.reverse(),focusFirst(xl)}),onBlur:composeEventHandlers(lV.onBlur,$V=>{$V.currentTarget.contains($V.target)||(window.clearTimeout(HV.current),oV.current="")}),onPointerMove:composeEventHandlers(lV.onPointerMove,whenMouse($V=>{const dl=$V.target,Wl=Cl.current!==$V.clientX;if($V.currentTarget.contains(dl)&&Wl){const el=$V.clientX>Cl.current?"right":"left";qV.current=el,Cl.current=$V.clientX}}))})})})})})})});MenuContent.displayName=CONTENT_NAME$1;var GROUP_NAME$1="MenuGroup",MenuGroup=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,...RV}=lV;return jsxRuntimeExports.jsx(Primitive.div,{role:"group",...RV,ref:J})});MenuGroup.displayName=GROUP_NAME$1;var LABEL_NAME$1="MenuLabel",MenuLabel=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,...RV}=lV;return jsxRuntimeExports.jsx(Primitive.div,{...RV,ref:J})});MenuLabel.displayName=LABEL_NAME$1;var ITEM_NAME$1="MenuItem",ITEM_SELECT="menu.itemSelect",MenuItem=reactExports.forwardRef((lV,J)=>{const{disabled:VV=!1,onSelect:RV,...UV}=lV,ZV=reactExports.useRef(null),WV=useMenuRootContext(ITEM_NAME$1,lV.__scopeMenu),IV=useMenuContentContext(ITEM_NAME$1,lV.__scopeMenu),dV=useComposedRefs(J,ZV),CV=reactExports.useRef(!1),FV=()=>{const NV=ZV.current;if(!VV&&NV){const gV=new CustomEvent(ITEM_SELECT,{bubbles:!0,cancelable:!0});NV.addEventListener(ITEM_SELECT,eV=>RV==null?void 0:RV(eV),{once:!0}),dispatchDiscreteCustomEvent(NV,gV),gV.defaultPrevented?CV.current=!1:WV.onClose()}};return jsxRuntimeExports.jsx(MenuItemImpl,{...UV,ref:dV,disabled:VV,onClick:composeEventHandlers(lV.onClick,FV),onPointerDown:NV=>{var gV;(gV=lV.onPointerDown)==null||gV.call(lV,NV),CV.current=!0},onPointerUp:composeEventHandlers(lV.onPointerUp,NV=>{var gV;CV.current||(gV=NV.currentTarget)==null||gV.click()}),onKeyDown:composeEventHandlers(lV.onKeyDown,NV=>{const gV=IV.searchRef.current!=="";VV||gV&&NV.key===" "||SELECTION_KEYS.includes(NV.key)&&(NV.currentTarget.click(),NV.preventDefault())})})});MenuItem.displayName=ITEM_NAME$1;var MenuItemImpl=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,disabled:RV=!1,textValue:UV,...ZV}=lV,WV=useMenuContentContext(ITEM_NAME$1,VV),IV=useRovingFocusGroupScope(VV),dV=reactExports.useRef(null),CV=useComposedRefs(J,dV),[FV,NV]=reactExports.useState(!1),[gV,eV]=reactExports.useState("");return reactExports.useEffect(()=>{const JV=dV.current;JV&&eV((JV.textContent??"").trim())},[ZV.children]),jsxRuntimeExports.jsx(Collection.ItemSlot,{scope:VV,disabled:RV,textValue:UV??gV,children:jsxRuntimeExports.jsx(Item,{asChild:!0,...IV,focusable:!RV,children:jsxRuntimeExports.jsx(Primitive.div,{role:"menuitem","data-highlighted":FV?"":void 0,"aria-disabled":RV||void 0,"data-disabled":RV?"":void 0,...ZV,ref:CV,onPointerMove:composeEventHandlers(lV.onPointerMove,whenMouse(JV=>{RV?WV.onItemLeave(JV):(WV.onItemEnter(JV),JV.defaultPrevented||JV.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:composeEventHandlers(lV.onPointerLeave,whenMouse(JV=>WV.onItemLeave(JV))),onFocus:composeEventHandlers(lV.onFocus,()=>NV(!0)),onBlur:composeEventHandlers(lV.onBlur,()=>NV(!1))})})})}),CHECKBOX_ITEM_NAME$1="MenuCheckboxItem",MenuCheckboxItem=reactExports.forwardRef((lV,J)=>{const{checked:VV=!1,onCheckedChange:RV,...UV}=lV;return jsxRuntimeExports.jsx(ItemIndicatorProvider,{scope:lV.__scopeMenu,checked:VV,children:jsxRuntimeExports.jsx(MenuItem,{role:"menuitemcheckbox","aria-checked":isIndeterminate(VV)?"mixed":VV,...UV,ref:J,"data-state":getCheckedState(VV),onSelect:composeEventHandlers(UV.onSelect,()=>RV==null?void 0:RV(isIndeterminate(VV)?!0:!VV),{checkForDefaultPrevented:!1})})})});MenuCheckboxItem.displayName=CHECKBOX_ITEM_NAME$1;var RADIO_GROUP_NAME$1="MenuRadioGroup",[RadioGroupProvider,useRadioGroupContext]=createMenuContext(RADIO_GROUP_NAME$1,{value:void 0,onValueChange:()=>{}}),MenuRadioGroup=reactExports.forwardRef((lV,J)=>{const{value:VV,onValueChange:RV,...UV}=lV,ZV=useCallbackRef$1(RV);return jsxRuntimeExports.jsx(RadioGroupProvider,{scope:lV.__scopeMenu,value:VV,onValueChange:ZV,children:jsxRuntimeExports.jsx(MenuGroup,{...UV,ref:J})})});MenuRadioGroup.displayName=RADIO_GROUP_NAME$1;var RADIO_ITEM_NAME$1="MenuRadioItem",MenuRadioItem=reactExports.forwardRef((lV,J)=>{const{value:VV,...RV}=lV,UV=useRadioGroupContext(RADIO_ITEM_NAME$1,lV.__scopeMenu),ZV=VV===UV.value;return jsxRuntimeExports.jsx(ItemIndicatorProvider,{scope:lV.__scopeMenu,checked:ZV,children:jsxRuntimeExports.jsx(MenuItem,{role:"menuitemradio","aria-checked":ZV,...RV,ref:J,"data-state":getCheckedState(ZV),onSelect:composeEventHandlers(RV.onSelect,()=>{var WV;return(WV=UV.onValueChange)==null?void 0:WV.call(UV,VV)},{checkForDefaultPrevented:!1})})})});MenuRadioItem.displayName=RADIO_ITEM_NAME$1;var ITEM_INDICATOR_NAME="MenuItemIndicator",[ItemIndicatorProvider,useItemIndicatorContext]=createMenuContext(ITEM_INDICATOR_NAME,{checked:!1}),MenuItemIndicator=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,forceMount:RV,...UV}=lV,ZV=useItemIndicatorContext(ITEM_INDICATOR_NAME,VV);return jsxRuntimeExports.jsx(Presence,{present:RV||isIndeterminate(ZV.checked)||ZV.checked===!0,children:jsxRuntimeExports.jsx(Primitive.span,{...UV,ref:J,"data-state":getCheckedState(ZV.checked)})})});MenuItemIndicator.displayName=ITEM_INDICATOR_NAME;var SEPARATOR_NAME$1="MenuSeparator",MenuSeparator=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,...RV}=lV;return jsxRuntimeExports.jsx(Primitive.div,{role:"separator","aria-orientation":"horizontal",...RV,ref:J})});MenuSeparator.displayName=SEPARATOR_NAME$1;var ARROW_NAME$1="MenuArrow",MenuArrow=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,...RV}=lV,UV=usePopperScope(VV);return jsxRuntimeExports.jsx(Arrow,{...UV,...RV,ref:J})});MenuArrow.displayName=ARROW_NAME$1;var SUB_NAME="MenuSub",[MenuSubProvider,useMenuSubContext]=createMenuContext(SUB_NAME),SUB_TRIGGER_NAME$1="MenuSubTrigger",MenuSubTrigger=reactExports.forwardRef((lV,J)=>{const VV=useMenuContext(SUB_TRIGGER_NAME$1,lV.__scopeMenu),RV=useMenuRootContext(SUB_TRIGGER_NAME$1,lV.__scopeMenu),UV=useMenuSubContext(SUB_TRIGGER_NAME$1,lV.__scopeMenu),ZV=useMenuContentContext(SUB_TRIGGER_NAME$1,lV.__scopeMenu),WV=reactExports.useRef(null),{pointerGraceTimerRef:IV,onPointerGraceIntentChange:dV}=ZV,CV={__scopeMenu:lV.__scopeMenu},FV=reactExports.useCallback(()=>{WV.current&&window.clearTimeout(WV.current),WV.current=null},[]);return reactExports.useEffect(()=>FV,[FV]),reactExports.useEffect(()=>{const NV=IV.current;return()=>{window.clearTimeout(NV),dV(null)}},[IV,dV]),jsxRuntimeExports.jsx(MenuAnchor,{asChild:!0,...CV,children:jsxRuntimeExports.jsx(MenuItemImpl,{id:UV.triggerId,"aria-haspopup":"menu","aria-expanded":VV.open,"aria-controls":UV.contentId,"data-state":getOpenState(VV.open),...lV,ref:composeRefs(J,UV.onTriggerChange),onClick:NV=>{var gV;(gV=lV.onClick)==null||gV.call(lV,NV),!(lV.disabled||NV.defaultPrevented)&&(NV.currentTarget.focus(),VV.open||VV.onOpenChange(!0))},onPointerMove:composeEventHandlers(lV.onPointerMove,whenMouse(NV=>{ZV.onItemEnter(NV),!NV.defaultPrevented&&!lV.disabled&&!VV.open&&!WV.current&&(ZV.onPointerGraceIntentChange(null),WV.current=window.setTimeout(()=>{VV.onOpenChange(!0),FV()},100))})),onPointerLeave:composeEventHandlers(lV.onPointerLeave,whenMouse(NV=>{var eV,JV;FV();const gV=(eV=VV.content)==null?void 0:eV.getBoundingClientRect();if(gV){const nV=(JV=VV.content)==null?void 0:JV.dataset.side,aV=nV==="right",GV=aV?-5:5,cV=gV[aV?"left":"right"],TV=gV[aV?"right":"left"];ZV.onPointerGraceIntentChange({area:[{x:NV.clientX+GV,y:NV.clientY},{x:cV,y:gV.top},{x:TV,y:gV.top},{x:TV,y:gV.bottom},{x:cV,y:gV.bottom}],side:nV}),window.clearTimeout(IV.current),IV.current=window.setTimeout(()=>ZV.onPointerGraceIntentChange(null),300)}else{if(ZV.onTriggerLeave(NV),NV.defaultPrevented)return;ZV.onPointerGraceIntentChange(null)}})),onKeyDown:composeEventHandlers(lV.onKeyDown,NV=>{var eV;const gV=ZV.searchRef.current!=="";lV.disabled||gV&&NV.key===" "||SUB_OPEN_KEYS[RV.dir].includes(NV.key)&&(VV.onOpenChange(!0),(eV=VV.content)==null||eV.focus(),NV.preventDefault())})})})});MenuSubTrigger.displayName=SUB_TRIGGER_NAME$1;var SUB_CONTENT_NAME$1="MenuSubContent",MenuSubContent=reactExports.forwardRef((lV,J)=>{const VV=usePortalContext(CONTENT_NAME$1,lV.__scopeMenu),{forceMount:RV=VV.forceMount,...UV}=lV,ZV=useMenuContext(CONTENT_NAME$1,lV.__scopeMenu),WV=useMenuRootContext(CONTENT_NAME$1,lV.__scopeMenu),IV=useMenuSubContext(SUB_CONTENT_NAME$1,lV.__scopeMenu),dV=reactExports.useRef(null),CV=useComposedRefs(J,dV);return jsxRuntimeExports.jsx(Collection.Provider,{scope:lV.__scopeMenu,children:jsxRuntimeExports.jsx(Presence,{present:RV||ZV.open,children:jsxRuntimeExports.jsx(Collection.Slot,{scope:lV.__scopeMenu,children:jsxRuntimeExports.jsx(MenuContentImpl,{id:IV.contentId,"aria-labelledby":IV.triggerId,...UV,ref:CV,align:"start",side:WV.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:FV=>{var NV;WV.isUsingKeyboardRef.current&&((NV=dV.current)==null||NV.focus()),FV.preventDefault()},onCloseAutoFocus:FV=>FV.preventDefault(),onFocusOutside:composeEventHandlers(lV.onFocusOutside,FV=>{FV.target!==IV.trigger&&ZV.onOpenChange(!1)}),onEscapeKeyDown:composeEventHandlers(lV.onEscapeKeyDown,FV=>{WV.onClose(),FV.preventDefault()}),onKeyDown:composeEventHandlers(lV.onKeyDown,FV=>{var eV;const NV=FV.currentTarget.contains(FV.target),gV=SUB_CLOSE_KEYS[WV.dir].includes(FV.key);NV&&gV&&(ZV.onOpenChange(!1),(eV=IV.trigger)==null||eV.focus(),FV.preventDefault())})})})})})});MenuSubContent.displayName=SUB_CONTENT_NAME$1;function getOpenState(lV){return lV?"open":"closed"}function isIndeterminate(lV){return lV==="indeterminate"}function getCheckedState(lV){return isIndeterminate(lV)?"indeterminate":lV?"checked":"unchecked"}function focusFirst(lV){const J=document.activeElement;for(const VV of lV)if(VV===J||(VV.focus(),document.activeElement!==J))return}function wrapArray(lV,J){return lV.map((VV,RV)=>lV[(J+RV)%lV.length])}function getNextMatch(lV,J,VV){const UV=J.length>1&&Array.from(J).every(CV=>CV===J[0])?J[0]:J,ZV=VV?lV.indexOf(VV):-1;let WV=wrapArray(lV,Math.max(ZV,0));UV.length===1&&(WV=WV.filter(CV=>CV!==VV));const dV=WV.find(CV=>CV.toLowerCase().startsWith(UV.toLowerCase()));return dV!==VV?dV:void 0}function isPointInPolygon(lV,J){const{x:VV,y:RV}=lV;let UV=!1;for(let ZV=0,WV=J.length-1;ZV<J.length;WV=ZV++){const IV=J[ZV].x,dV=J[ZV].y,CV=J[WV].x,FV=J[WV].y;dV>RV!=FV>RV&&VV<(CV-IV)*(RV-dV)/(FV-dV)+IV&&(UV=!UV)}return UV}function isPointerInGraceArea(lV,J){if(!J)return!1;const VV={x:lV.clientX,y:lV.clientY};return isPointInPolygon(VV,J)}function whenMouse(lV){return J=>J.pointerType==="mouse"?lV(J):void 0}var Root3=Menu,Anchor2=MenuAnchor,Portal=MenuPortal,Content2$1=MenuContent,Group=MenuGroup,Label=MenuLabel,Item2$1=MenuItem,CheckboxItem=MenuCheckboxItem,RadioGroup=MenuRadioGroup,RadioItem=MenuRadioItem,ItemIndicator=MenuItemIndicator,Separator=MenuSeparator,Arrow2=MenuArrow,SubTrigger=MenuSubTrigger,SubContent=MenuSubContent,DROPDOWN_MENU_NAME="DropdownMenu",[createDropdownMenuContext,createDropdownMenuScope]=createContextScope$3(DROPDOWN_MENU_NAME,[createMenuScope]),useMenuScope=createMenuScope(),[DropdownMenuProvider,useDropdownMenuContext]=createDropdownMenuContext(DROPDOWN_MENU_NAME),DropdownMenu$1=lV=>{const{__scopeDropdownMenu:J,children:VV,dir:RV,open:UV,defaultOpen:ZV,onOpenChange:WV,modal:IV=!0}=lV,dV=useMenuScope(J),CV=reactExports.useRef(null),[FV=!1,NV]=useControllableState({prop:UV,defaultProp:ZV,onChange:WV});return jsxRuntimeExports.jsx(DropdownMenuProvider,{scope:J,triggerId:useId(),triggerRef:CV,contentId:useId(),open:FV,onOpenChange:NV,onOpenToggle:reactExports.useCallback(()=>NV(gV=>!gV),[NV]),modal:IV,children:jsxRuntimeExports.jsx(Root3,{...dV,open:FV,onOpenChange:NV,dir:RV,modal:IV,children:VV})})};DropdownMenu$1.displayName=DROPDOWN_MENU_NAME;var TRIGGER_NAME="DropdownMenuTrigger",DropdownMenuTrigger$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,disabled:RV=!1,...UV}=lV,ZV=useDropdownMenuContext(TRIGGER_NAME,VV),WV=useMenuScope(VV);return jsxRuntimeExports.jsx(Anchor2,{asChild:!0,...WV,children:jsxRuntimeExports.jsx(Primitive.button,{type:"button",id:ZV.triggerId,"aria-haspopup":"menu","aria-expanded":ZV.open,"aria-controls":ZV.open?ZV.contentId:void 0,"data-state":ZV.open?"open":"closed","data-disabled":RV?"":void 0,disabled:RV,...UV,ref:composeRefs(J,ZV.triggerRef),onPointerDown:composeEventHandlers(lV.onPointerDown,IV=>{!RV&&IV.button===0&&IV.ctrlKey===!1&&(ZV.onOpenToggle(),ZV.open||IV.preventDefault())}),onKeyDown:composeEventHandlers(lV.onKeyDown,IV=>{RV||(["Enter"," "].includes(IV.key)&&ZV.onOpenToggle(),IV.key==="ArrowDown"&&ZV.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(IV.key)&&IV.preventDefault())})})})});DropdownMenuTrigger$1.displayName=TRIGGER_NAME;var PORTAL_NAME="DropdownMenuPortal",DropdownMenuPortal=lV=>{const{__scopeDropdownMenu:J,...VV}=lV,RV=useMenuScope(J);return jsxRuntimeExports.jsx(Portal,{...RV,...VV})};DropdownMenuPortal.displayName=PORTAL_NAME;var CONTENT_NAME="DropdownMenuContent",DropdownMenuContent$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useDropdownMenuContext(CONTENT_NAME,VV),ZV=useMenuScope(VV),WV=reactExports.useRef(!1);return jsxRuntimeExports.jsx(Content2$1,{id:UV.contentId,"aria-labelledby":UV.triggerId,...ZV,...RV,ref:J,onCloseAutoFocus:composeEventHandlers(lV.onCloseAutoFocus,IV=>{var dV;WV.current||(dV=UV.triggerRef.current)==null||dV.focus(),WV.current=!1,IV.preventDefault()}),onInteractOutside:composeEventHandlers(lV.onInteractOutside,IV=>{const dV=IV.detail.originalEvent,CV=dV.button===0&&dV.ctrlKey===!0,FV=dV.button===2||CV;(!UV.modal||FV)&&(WV.current=!0)}),style:{...lV.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});DropdownMenuContent$1.displayName=CONTENT_NAME;var GROUP_NAME="DropdownMenuGroup",DropdownMenuGroup=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(Group,{...UV,...RV,ref:J})});DropdownMenuGroup.displayName=GROUP_NAME;var LABEL_NAME="DropdownMenuLabel",DropdownMenuLabel$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(Label,{...UV,...RV,ref:J})});DropdownMenuLabel$1.displayName=LABEL_NAME;var ITEM_NAME="DropdownMenuItem",DropdownMenuItem$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(Item2$1,{...UV,...RV,ref:J})});DropdownMenuItem$1.displayName=ITEM_NAME;var CHECKBOX_ITEM_NAME="DropdownMenuCheckboxItem",DropdownMenuCheckboxItem$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(CheckboxItem,{...UV,...RV,ref:J})});DropdownMenuCheckboxItem$1.displayName=CHECKBOX_ITEM_NAME;var RADIO_GROUP_NAME="DropdownMenuRadioGroup",DropdownMenuRadioGroup=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(RadioGroup,{...UV,...RV,ref:J})});DropdownMenuRadioGroup.displayName=RADIO_GROUP_NAME;var RADIO_ITEM_NAME="DropdownMenuRadioItem",DropdownMenuRadioItem$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(RadioItem,{...UV,...RV,ref:J})});DropdownMenuRadioItem$1.displayName=RADIO_ITEM_NAME;var INDICATOR_NAME="DropdownMenuItemIndicator",DropdownMenuItemIndicator=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(ItemIndicator,{...UV,...RV,ref:J})});DropdownMenuItemIndicator.displayName=INDICATOR_NAME;var SEPARATOR_NAME="DropdownMenuSeparator",DropdownMenuSeparator$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(Separator,{...UV,...RV,ref:J})});DropdownMenuSeparator$1.displayName=SEPARATOR_NAME;var ARROW_NAME="DropdownMenuArrow",DropdownMenuArrow=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(Arrow2,{...UV,...RV,ref:J})});DropdownMenuArrow.displayName=ARROW_NAME;var SUB_TRIGGER_NAME="DropdownMenuSubTrigger",DropdownMenuSubTrigger$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(SubTrigger,{...UV,...RV,ref:J})});DropdownMenuSubTrigger$1.displayName=SUB_TRIGGER_NAME;var SUB_CONTENT_NAME="DropdownMenuSubContent",DropdownMenuSubContent$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(SubContent,{...UV,...RV,ref:J,style:{...lV.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});DropdownMenuSubContent$1.displayName=SUB_CONTENT_NAME;var Root2=DropdownMenu$1,Trigger=DropdownMenuTrigger$1,Portal2=DropdownMenuPortal,Content2=DropdownMenuContent$1,Label2=DropdownMenuLabel$1,Item2=DropdownMenuItem$1,CheckboxItem2=DropdownMenuCheckboxItem$1,RadioItem2=DropdownMenuRadioItem$1,ItemIndicator2=DropdownMenuItemIndicator,Separator2=DropdownMenuSeparator$1,SubTrigger2=DropdownMenuSubTrigger$1,SubContent2=DropdownMenuSubContent$1;const DropdownMenu=Root2,DropdownMenuTrigger=Trigger,DropdownMenuSubTrigger=reactExports.forwardRef(({className:lV,inset:J,children:VV,...RV},UV)=>jsxRuntimeExports.jsxs(SubTrigger2,{ref:UV,className:cn$1("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-slate-100 data-[state=open]:bg-slate-100 dark:focus:bg-slate-800 dark:data-[state=open]:bg-slate-800",J&&"pl-8",lV),...RV,children:[VV,jsxRuntimeExports.jsx(ChevronRightIcon,{className:"ml-auto h-4 w-4"})]}));DropdownMenuSubTrigger.displayName=SubTrigger2.displayName;const DropdownMenuSubContent=reactExports.forwardRef(({className:lV,...J},VV)=>jsxRuntimeExports.jsx(SubContent2,{ref:VV,className:cn$1("z-50 min-w-[8rem] overflow-hidden rounded-md border border-slate-200 bg-white p-1 text-slate-950 shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:border-slate-800 dark:bg-slate-950 dark:text-slate-50",lV),...J}));DropdownMenuSubContent.displayName=SubContent2.displayName;const DropdownMenuContent=reactExports.forwardRef(({className:lV,sideOffset:J=4,...VV},RV)=>jsxRuntimeExports.jsx(Portal2,{children:jsxRuntimeExports.jsx(Content2,{ref:RV,sideOffset:J,className:cn$1("z-50 min-w-[8rem] overflow-hidden rounded-md border border-slate-200 bg-white p-1 text-slate-950 shadow-md dark:border-slate-800 dark:bg-slate-950 dark:text-slate-50","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",lV),...VV})}));DropdownMenuContent.displayName=Content2.displayName;const DropdownMenuItem=reactExports.forwardRef(({className:lV,inset:J,...VV},RV)=>jsxRuntimeExports.jsx(Item2,{ref:RV,className:cn$1("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-slate-100 focus:text-slate-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-slate-800 dark:focus:text-slate-50",J&&"pl-8",lV),...VV}));DropdownMenuItem.displayName=Item2.displayName;const DropdownMenuCheckboxItem=reactExports.forwardRef(({className:lV,children:J,checked:VV,...RV},UV)=>jsxRuntimeExports.jsxs(CheckboxItem2,{ref:UV,className:cn$1("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-slate-100 focus:text-slate-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-slate-800 dark:focus:text-slate-50",lV),checked:VV,...RV,children:[jsxRuntimeExports.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:jsxRuntimeExports.jsx(ItemIndicator2,{children:jsxRuntimeExports.jsx(CheckIcon,{className:"h-4 w-4"})})}),J]}));DropdownMenuCheckboxItem.displayName=CheckboxItem2.displayName;const DropdownMenuRadioItem=reactExports.forwardRef(({className:lV,children:J,...VV},RV)=>jsxRuntimeExports.jsxs(RadioItem2,{ref:RV,className:cn$1("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-slate-100 focus:text-slate-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-slate-800 dark:focus:text-slate-50",lV),...VV,children:[jsxRuntimeExports.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:jsxRuntimeExports.jsx(ItemIndicator2,{children:jsxRuntimeExports.jsx(DotFilledIcon,{className:"h-4 w-4 fill-current"})})}),J]}));DropdownMenuRadioItem.displayName=RadioItem2.displayName;const DropdownMenuLabel=reactExports.forwardRef(({className:lV,inset:J,...VV},RV)=>jsxRuntimeExports.jsx(Label2,{ref:RV,className:cn$1("px-2 py-1.5 text-sm font-semibold",J&&"pl-8",lV),...VV}));DropdownMenuLabel.displayName=Label2.displayName;const DropdownMenuSeparator=reactExports.forwardRef(({className:lV,...J},VV)=>jsxRuntimeExports.jsx(Separator2,{ref:VV,className:cn$1("-mx-1 my-1 h-px bg-slate-100 dark:bg-slate-800",lV),...J}));DropdownMenuSeparator.displayName=Separator2.displayName;const PcbViewerWithContainerHeight=({containerClassName:lV,...J})=>{const VV=reactExports.useRef(null),[RV,UV]=reactExports.useState(620);return reactExports.useLayoutEffect(()=>{const ZV=()=>{if(VV.current){const IV=VV.current.clientHeight,dV=window.innerHeight;UV(Math.min(Math.max(IV,620),dV))}};ZV();const WV=new ResizeObserver(ZV);return VV.current&&WV.observe(VV.current),window.addEventListener("resize",ZV),()=>{WV.disconnect(),window.removeEventListener("resize",ZV)}},[]),jsxRuntimeExports.jsx("div",{ref:VV,className:lV||"w-full h-full",children:jsxRuntimeExports.jsx(distExports$1.PCBViewer,{...J,height:RV})})},styles=".invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-2{left:.5rem}.right-4{right:1rem}.right-\\[4px\\]{right:4px}.top-2{top:.5rem}.top-4{top:1rem}.top-\\[6px\\]{top:6px}.z-50{z-index:50}.z-\\[100\\]{z-index:100}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-1{margin-bottom:.25rem;margin-top:.25rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-1\\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.contents{display:contents}.hidden{display:none}.h-1{height:.25rem}.h-10{height:2.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\\.5{height:.875rem}.h-4{height:1rem}.h-60{height:15rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\\[620px\\]{height:620px}.h-\\[calc\\(100vh-96px\\)\\]{height:calc(100vh - 96px)}.h-full{height:100%}.h-px{height:1px}.max-h-\\[500px\\]{max-height:500px}.min-h-\\[620px\\]{min-height:620px}.min-h-\\[calc\\(100vh-240px\\)\\]{min-height:calc(100vh - 240px)}.w-1{width:.25rem}.w-11{width:2.75rem}.w-11\\/12{width:91.666667%}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\\.5{width:.875rem}.w-4{width:1rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-full{width:100%}.min-w-\\[8rem\\]{min-width:8rem}.max-w-2xl{max-width:42rem}.flex-grow{flex-grow:1}.table-auto{table-layout:auto}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.bg-black{background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black,.bg-blue-50{--tw-bg-opacity:1}.bg-blue-50{background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-orange-400{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-opacity-50{--tw-bg-opacity:0.5}.fill-current{fill:currentColor}.p-0{padding:0}.p-0\\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\\[8px\\]{font-size:8px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.leading-5{line-height:1.25rem}.tracking-widest{letter-spacing:.1em}.text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-slate-50{--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-slate-950{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-60{opacity:.6}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-offset-white{--tw-ring-offset-color:#fff}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.running{animation-play-state:running}.\\*\\:text-xs>*{font-size:.75rem;line-height:1rem}.hover\\:bg-blue-500:hover{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.hover\\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\\:bg-red-500\\/90:hover{background-color:rgba(239,68,68,.9)}.hover\\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.hover\\:bg-slate-100\\/80:hover{background-color:rgba(241,245,249,.8)}.hover\\:bg-slate-900\\/90:hover{background-color:rgba(15,23,42,.9)}.hover\\:text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.hover\\:text-slate-900:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.hover\\:underline:hover{text-decoration-line:underline}.focus\\:bg-slate-100:focus{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.focus\\:text-slate-900:focus{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:ring-slate-950:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(2 6 23/var(--tw-ring-opacity,1))}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:opacity-50:disabled{opacity:.5}.data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.data-\\[state\\=active\\]\\:bg-white[data-state=active]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.data-\\[state\\=open\\]\\:bg-slate-100[data-state=open]{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.data-\\[state\\=active\\]\\:text-slate-950[data-state=active]{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}.data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.data-\\[state\\=active\\]\\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\\[state\\=open\\]\\:animate-in[data-state=open]{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\\[state\\=closed\\]\\:animate-out[data-state=closed]{animation-duration:.15s;animation-name:exit;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\\[state\\=open\\]\\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\\[state\\=open\\]\\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.dark\\:border-slate-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 41 59/var(--tw-border-opacity,1))}.dark\\:bg-red-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\\:bg-slate-50:is(.dark *){--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.dark\\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\\:bg-slate-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.dark\\:text-slate-400:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\\:text-slate-50:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\\:text-slate-900:is(.dark *){--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.dark\\:ring-offset-slate-950:is(.dark *){--tw-ring-offset-color:#020617}.dark\\:hover\\:bg-red-900\\/90:hover:is(.dark *){background-color:rgba(127,29,29,.9)}.dark\\:hover\\:bg-slate-50\\/90:hover:is(.dark *){background-color:rgba(248,250,252,.9)}.dark\\:hover\\:bg-slate-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-slate-800\\/80:hover:is(.dark *){background-color:rgba(30,41,59,.8)}.dark\\:hover\\:text-slate-50:hover:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\\:focus\\:bg-slate-800:focus:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\\:focus\\:text-slate-50:focus:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\\:focus-visible\\:ring-slate-300:focus-visible:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(203 213 225/var(--tw-ring-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:bg-slate-950[data-state=active]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=open\\]\\:bg-slate-800[data-state=open]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:text-slate-50[data-state=active]:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}@media (min-width:768px){.md\\:sticky{position:sticky}.md\\:top-2{top:.5rem}}",useStyles=()=>{reactExports.useEffect(()=>{if(document.querySelector('style[data-styles="tscircuit-runframe"]'))return;const J=document.createElement("style");J.setAttribute("data-styles","tscircuit-runframe"),J.textContent=styles,document.head.appendChild(J)},[])},CircuitJsonPreview=({code:lV,onRunClicked:J=void 0,tsxRunTriggerCount:VV,errorMessage:RV,circuitJsonKey:UV="",circuitJson:ZV,showCodeTab:WV=!1,codeTabContent:IV,showJsonTab:dV=!0,showImportAndFormatButtons:CV=!0,className:FV,headerClassName:NV,leftHeaderContent:gV,readOnly:eV,isStreaming:JV,onToggleFullScreen:nV,isFullScreen:aV,isRunningCode:GV,hasCodeChangedSinceLastRun:cV,onEditEvent:TV,editEvents:iV,defaultActiveTab:tV})=>{useStyles();const[MV,AV]=reactExports.useState(tV??"pcb");return reactExports.useEffect(()=>{RV&&AV("error")},[RV]),reactExports.useEffect(()=>{MV==="code"&&ZV&&!RV&&AV("pcb")},[ZV]),jsxRuntimeExports.jsx("div",{className:cn$1("flex flex-col relative",FV),children:jsxRuntimeExports.jsx("div",{className:"md:sticky md:top-2",children:jsxRuntimeExports.jsxs(Tabs,{value:MV,onValueChange:AV,className:"flex-grow flex flex-col p-2",children:[jsxRuntimeExports.jsxs("div",{className:cn$1("flex items-center gap-2",NV),children:[gV,gV&&jsxRuntimeExports.jsx("div",{className:"flex-grow"}),!gV&&jsxRuntimeExports.jsx("div",{className:"flex-grow"}),jsxRuntimeExports.jsxs(TabsList,{children:[WV&&jsxRuntimeExports.jsx(TabsTrigger,{value:"code",children:"Code"}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"pcb",className:"whitespace-nowrap",children:[ZV&&jsxRuntimeExports.jsx("span",{className:cn$1("inline-flex items-center justify-center w-2 h-2 mr-1 text-xs font-bold text-white rounded-full",cV?"bg-gray-500":"bg-blue-500")}),"PCB"]}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"schematic",className:"whitespace-nowrap",children:[ZV&&jsxRuntimeExports.jsx("span",{className:cn$1("inline-flex items-center justify-center w-2 h-2 mr-1 text-xs font-bold text-white rounded-full",cV?"bg-gray-500":"bg-blue-500")}),"Schematic"]}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"cad",children:[ZV&&jsxRuntimeExports.jsx("span",{className:cn$1("inline-flex items-center justify-center w-2 h-2 mr-1 text-xs font-bold text-white rounded-full",cV?"bg-gray-500":"bg-blue-500")}),"3D"]}),jsxRuntimeExports.jsxs(DropdownMenu,{children:[jsxRuntimeExports.jsx(DropdownMenuTrigger,{asChild:!0,children:jsxRuntimeExports.jsxs("div",{className:"whitespace-nowrap p-2 mr-1 cursor-pointer relative",children:[jsxRuntimeExports.jsx(Ellipsis,{className:"w-4 h-4"}),RV&&jsxRuntimeExports.jsx("span",{className:"inline-flex absolute top-[6px] right-[4px] items-center justify-center w-1 h-1 ml-2 text-[8px] font-bold text-white bg-red-500 rounded-full"})]})}),jsxRuntimeExports.jsxs(DropdownMenuContent,{className:"*:text-xs",children:[jsxRuntimeExports.jsxs(DropdownMenuItem,{onSelect:()=>AV("error"),className:"flex",children:[jsxRuntimeExports.jsx(Check,{className:cn$1("w-3 h-3 mr-2",MV!=="error"&&"invisible")}),jsxRuntimeExports.jsx("div",{className:"flex-grow",children:"Errors"}),RV&&jsxRuntimeExports.jsx("span",{className:"inline-flex items-center justify-center w-3 h-3 ml-2 text-[8px] font-bold text-white bg-red-500 rounded-full",children:"1"})]}),jsxRuntimeExports.jsxs(DropdownMenuItem,{onSelect:()=>AV("bom"),children:[jsxRuntimeExports.jsx(Check,{className:cn$1("w-3 h-3 mr-2",MV!=="bom"&&"invisible")}),"Bill of Materials"]}),jsxRuntimeExports.jsxs(DropdownMenuItem,{onSelect:()=>AV("circuitjson"),children:[jsxRuntimeExports.jsx(Check,{className:cn$1("w-3 h-3 mr-2",MV!=="circuitjson"&&"invisible")}),"JSON"]})]})]})]}),nV&&jsxRuntimeExports.jsx(Button,{onClick:nV,variant:"ghost",children:aV?jsxRuntimeExports.jsx(Minimize,{size:16}):jsxRuntimeExports.jsx(Fullscreen,{size:16})})]}),WV&&jsxRuntimeExports.jsx(TabsContent,{value:"code",className:"flex-grow overflow-hidden",children:jsxRuntimeExports.jsx("div",{className:"h-full",children:IV})}),jsxRuntimeExports.jsx(TabsContent,{value:"pcb",children:jsxRuntimeExports.jsx("div",{className:cn$1("overflow-hidden",aV?"h-[calc(100vh-96px)]":"h-[620px]"),children:jsxRuntimeExports.jsx(ErrorBoundary,{fallback:jsxRuntimeExports.jsx("div",{children:"Error loading PCB viewer"}),children:ZV?jsxRuntimeExports.jsx(PcbViewerWithContainerHeight,{soup:ZV,containerClassName:cn$1("h-full w-full",aV?"min-h-[calc(100vh-240px)]":"min-h-[620px]")},UV):jsxRuntimeExports.jsx(PreviewEmptyState,{onRunClicked:J})})})}),jsxRuntimeExports.jsx(TabsContent,{value:"schematic",children:jsxRuntimeExports.jsx("div",{className:cn$1("overflow-auto",aV?"h-[calc(100vh-96px)]":"h-[620px]"),children:jsxRuntimeExports.jsx(ErrorBoundary,{fallback:jsxRuntimeExports.jsx("div",{children:"Error loading Schematic"}),children:ZV?jsxRuntimeExports.jsx(SchematicViewer,{circuitJson:ZV,containerStyle:{height:"100%"},editingEnabled:!0,onEditEvent:pV=>TV==null?void 0:TV(pV),editEvents:iV,debugGrid:!0}):jsxRuntimeExports.jsx(PreviewEmptyState,{onRunClicked:J})})})}),jsxRuntimeExports.jsx(TabsContent,{value:"cad",children:jsxRuntimeExports.jsx("div",{className:cn$1("overflow-auto",aV?"h-[calc(100vh-96px)]":"h-[620px]"),children:jsxRuntimeExports.jsx(ErrorBoundary,{FallbackComponent:ErrorFallback,children:ZV?jsxRuntimeExports.jsx(distExports$2.CadViewer,{soup:ZV}):jsxRuntimeExports.jsx(PreviewEmptyState,{onRunClicked:J})})})}),jsxRuntimeExports.jsx(TabsContent,{value:"bom",children:jsxRuntimeExports.jsx("div",{className:cn$1("overflow-auto",aV?"h-[calc(100vh-96px)]":"h-[620px]"),children:jsxRuntimeExports.jsx(ErrorBoundary,{fallback:jsxRuntimeExports.jsx("div",{children:"Error loading BOM"}),children:ZV?jsxRuntimeExports.jsx(BomTable,{circuitJson:ZV}):jsxRuntimeExports.jsx(PreviewEmptyState,{onRunClicked:J})})})}),jsxRuntimeExports.jsx(TabsContent,{value:"circuitjson",children:jsxRuntimeExports.jsx("div",{className:cn$1("overflow-auto",aV?"h-[calc(100vh-96px)]":"h-[620px]"),children:jsxRuntimeExports.jsx(ErrorBoundary,{fallback:jsxRuntimeExports.jsx("div",{children:"Error loading JSON viewer"}),children:ZV?jsxRuntimeExports.jsx(CircuitJsonTableViewer,{elements:ZV}):jsxRuntimeExports.jsx(PreviewEmptyState,{onRunClicked:J})})})}),jsxRuntimeExports.jsx(TabsContent,{value:"error",children:ZV||RV?jsxRuntimeExports.jsx(ErrorTabContent,{code:lV,errorMessage:RV}):jsxRuntimeExports.jsx(PreviewEmptyState,{onRunClicked:J})})]})})})};/**
|
|
22278
|
+
`)},idCounter=0,lockStack=[];function RemoveScrollSideCar(lV){var J=reactExports.useRef([]),VV=reactExports.useRef([0,0]),RV=reactExports.useRef(),UV=reactExports.useState(idCounter++)[0],ZV=reactExports.useState(styleSingleton)[0],WV=reactExports.useRef(lV);reactExports.useEffect(function(){WV.current=lV},[lV]),reactExports.useEffect(function(){if(lV.inert){document.body.classList.add("block-interactivity-".concat(UV));var nV=__spreadArray([lV.lockRef.current],(lV.shards||[]).map(extractRef),!0).filter(Boolean);return nV.forEach(function(aV){return aV.classList.add("allow-interactivity-".concat(UV))}),function(){document.body.classList.remove("block-interactivity-".concat(UV)),nV.forEach(function(aV){return aV.classList.remove("allow-interactivity-".concat(UV))})}}},[lV.inert,lV.lockRef.current,lV.shards]);var IV=reactExports.useCallback(function(nV,aV){if("touches"in nV&&nV.touches.length===2||nV.type==="wheel"&&nV.ctrlKey)return!WV.current.allowPinchZoom;var GV=getTouchXY(nV),cV=VV.current,TV="deltaX"in nV?nV.deltaX:cV[0]-GV[0],iV="deltaY"in nV?nV.deltaY:cV[1]-GV[1],tV,MV=nV.target,AV=Math.abs(TV)>Math.abs(iV)?"h":"v";if("touches"in nV&&AV==="h"&&MV.type==="range")return!1;var pV=locationCouldBeScrolled(AV,MV);if(!pV)return!0;if(pV?tV=AV:(tV=AV==="v"?"h":"v",pV=locationCouldBeScrolled(AV,MV)),!pV)return!1;if(!RV.current&&"changedTouches"in nV&&(TV||iV)&&(RV.current=tV),!tV)return!0;var HV=RV.current||tV;return handleScroll(HV,aV,nV,HV==="h"?TV:iV,!0)},[]),dV=reactExports.useCallback(function(nV){var aV=nV;if(!(!lockStack.length||lockStack[lockStack.length-1]!==ZV)){var GV="deltaY"in aV?getDeltaXY(aV):getTouchXY(aV),cV=J.current.filter(function(tV){return tV.name===aV.type&&(tV.target===aV.target||aV.target===tV.shadowParent)&&deltaCompare(tV.delta,GV)})[0];if(cV&&cV.should){aV.cancelable&&aV.preventDefault();return}if(!cV){var TV=(WV.current.shards||[]).map(extractRef).filter(Boolean).filter(function(tV){return tV.contains(aV.target)}),iV=TV.length>0?IV(aV,TV[0]):!WV.current.noIsolation;iV&&aV.cancelable&&aV.preventDefault()}}},[]),CV=reactExports.useCallback(function(nV,aV,GV,cV){var TV={name:nV,delta:aV,target:GV,should:cV,shadowParent:getOutermostShadowParent(GV)};J.current.push(TV),setTimeout(function(){J.current=J.current.filter(function(iV){return iV!==TV})},1)},[]),FV=reactExports.useCallback(function(nV){VV.current=getTouchXY(nV),RV.current=void 0},[]),NV=reactExports.useCallback(function(nV){CV(nV.type,getDeltaXY(nV),nV.target,IV(nV,lV.lockRef.current))},[]),gV=reactExports.useCallback(function(nV){CV(nV.type,getTouchXY(nV),nV.target,IV(nV,lV.lockRef.current))},[]);reactExports.useEffect(function(){return lockStack.push(ZV),lV.setCallbacks({onScrollCapture:NV,onWheelCapture:NV,onTouchMoveCapture:gV}),document.addEventListener("wheel",dV,nonPassive),document.addEventListener("touchmove",dV,nonPassive),document.addEventListener("touchstart",FV,nonPassive),function(){lockStack=lockStack.filter(function(nV){return nV!==ZV}),document.removeEventListener("wheel",dV,nonPassive),document.removeEventListener("touchmove",dV,nonPassive),document.removeEventListener("touchstart",FV,nonPassive)}},[]);var eV=lV.removeScrollBar,JV=lV.inert;return reactExports.createElement(reactExports.Fragment,null,JV?reactExports.createElement(ZV,{styles:generateStyle(UV)}):null,eV?reactExports.createElement(RemoveScrollBar,{gapMode:lV.gapMode}):null)}function getOutermostShadowParent(lV){for(var J=null;lV!==null;)lV instanceof ShadowRoot&&(J=lV.host,lV=lV.host),lV=lV.parentNode;return J}const SideCar=exportSidecar(effectCar,RemoveScrollSideCar);var ReactRemoveScroll=reactExports.forwardRef(function(lV,J){return reactExports.createElement(RemoveScroll,__assign({},lV,{ref:J,sideCar:SideCar}))});ReactRemoveScroll.classNames=RemoveScroll.classNames;var SELECTION_KEYS=["Enter"," "],FIRST_KEYS=["ArrowDown","PageUp","Home"],LAST_KEYS=["ArrowUp","PageDown","End"],FIRST_LAST_KEYS=[...FIRST_KEYS,...LAST_KEYS],SUB_OPEN_KEYS={ltr:[...SELECTION_KEYS,"ArrowRight"],rtl:[...SELECTION_KEYS,"ArrowLeft"]},SUB_CLOSE_KEYS={ltr:["ArrowLeft"],rtl:["ArrowRight"]},MENU_NAME="Menu",[Collection,useCollection,createCollectionScope]=createCollection(MENU_NAME),[createMenuContext,createMenuScope]=createContextScope$3(MENU_NAME,[createCollectionScope,createPopperScope,createRovingFocusGroupScope]),usePopperScope=createPopperScope(),useRovingFocusGroupScope=createRovingFocusGroupScope(),[MenuProvider,useMenuContext]=createMenuContext(MENU_NAME),[MenuRootProvider,useMenuRootContext]=createMenuContext(MENU_NAME),Menu=lV=>{const{__scopeMenu:J,open:VV=!1,children:RV,dir:UV,onOpenChange:ZV,modal:WV=!0}=lV,IV=usePopperScope(J),[dV,CV]=reactExports.useState(null),FV=reactExports.useRef(!1),NV=useCallbackRef$1(ZV),gV=useDirection(UV);return reactExports.useEffect(()=>{const eV=()=>{FV.current=!0,document.addEventListener("pointerdown",JV,{capture:!0,once:!0}),document.addEventListener("pointermove",JV,{capture:!0,once:!0})},JV=()=>FV.current=!1;return document.addEventListener("keydown",eV,{capture:!0}),()=>{document.removeEventListener("keydown",eV,{capture:!0}),document.removeEventListener("pointerdown",JV,{capture:!0}),document.removeEventListener("pointermove",JV,{capture:!0})}},[]),jsxRuntimeExports.jsx(Root2$1,{...IV,children:jsxRuntimeExports.jsx(MenuProvider,{scope:J,open:VV,onOpenChange:NV,content:dV,onContentChange:CV,children:jsxRuntimeExports.jsx(MenuRootProvider,{scope:J,onClose:reactExports.useCallback(()=>NV(!1),[NV]),isUsingKeyboardRef:FV,dir:gV,modal:WV,children:RV})})})};Menu.displayName=MENU_NAME;var ANCHOR_NAME="MenuAnchor",MenuAnchor=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,...RV}=lV,UV=usePopperScope(VV);return jsxRuntimeExports.jsx(Anchor,{...UV,...RV,ref:J})});MenuAnchor.displayName=ANCHOR_NAME;var PORTAL_NAME$1="MenuPortal",[PortalProvider,usePortalContext]=createMenuContext(PORTAL_NAME$1,{forceMount:void 0}),MenuPortal=lV=>{const{__scopeMenu:J,forceMount:VV,children:RV,container:UV}=lV,ZV=useMenuContext(PORTAL_NAME$1,J);return jsxRuntimeExports.jsx(PortalProvider,{scope:J,forceMount:VV,children:jsxRuntimeExports.jsx(Presence,{present:VV||ZV.open,children:jsxRuntimeExports.jsx(Portal$1,{asChild:!0,container:UV,children:RV})})})};MenuPortal.displayName=PORTAL_NAME$1;var CONTENT_NAME$1="MenuContent",[MenuContentProvider,useMenuContentContext]=createMenuContext(CONTENT_NAME$1),MenuContent=reactExports.forwardRef((lV,J)=>{const VV=usePortalContext(CONTENT_NAME$1,lV.__scopeMenu),{forceMount:RV=VV.forceMount,...UV}=lV,ZV=useMenuContext(CONTENT_NAME$1,lV.__scopeMenu),WV=useMenuRootContext(CONTENT_NAME$1,lV.__scopeMenu);return jsxRuntimeExports.jsx(Collection.Provider,{scope:lV.__scopeMenu,children:jsxRuntimeExports.jsx(Presence,{present:RV||ZV.open,children:jsxRuntimeExports.jsx(Collection.Slot,{scope:lV.__scopeMenu,children:WV.modal?jsxRuntimeExports.jsx(MenuRootContentModal,{...UV,ref:J}):jsxRuntimeExports.jsx(MenuRootContentNonModal,{...UV,ref:J})})})})}),MenuRootContentModal=reactExports.forwardRef((lV,J)=>{const VV=useMenuContext(CONTENT_NAME$1,lV.__scopeMenu),RV=reactExports.useRef(null),UV=useComposedRefs(J,RV);return reactExports.useEffect(()=>{const ZV=RV.current;if(ZV)return hideOthers(ZV)},[]),jsxRuntimeExports.jsx(MenuContentImpl,{...lV,ref:UV,trapFocus:VV.open,disableOutsidePointerEvents:VV.open,disableOutsideScroll:!0,onFocusOutside:composeEventHandlers(lV.onFocusOutside,ZV=>ZV.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>VV.onOpenChange(!1)})}),MenuRootContentNonModal=reactExports.forwardRef((lV,J)=>{const VV=useMenuContext(CONTENT_NAME$1,lV.__scopeMenu);return jsxRuntimeExports.jsx(MenuContentImpl,{...lV,ref:J,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>VV.onOpenChange(!1)})}),MenuContentImpl=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,loop:RV=!1,trapFocus:UV,onOpenAutoFocus:ZV,onCloseAutoFocus:WV,disableOutsidePointerEvents:IV,onEntryFocus:dV,onEscapeKeyDown:CV,onPointerDownOutside:FV,onFocusOutside:NV,onInteractOutside:gV,onDismiss:eV,disableOutsideScroll:JV,...nV}=lV,aV=useMenuContext(CONTENT_NAME$1,VV),GV=useMenuRootContext(CONTENT_NAME$1,VV),cV=usePopperScope(VV),TV=useRovingFocusGroupScope(VV),iV=useCollection(VV),[tV,MV]=reactExports.useState(null),AV=reactExports.useRef(null),pV=useComposedRefs(J,AV,aV.onContentChange),HV=reactExports.useRef(0),oV=reactExports.useRef(""),DV=reactExports.useRef(0),wV=reactExports.useRef(null),qV=reactExports.useRef("right"),Cl=reactExports.useRef(0),nl=JV?ReactRemoveScroll:reactExports.Fragment,Il=JV?{as:Slot,allowPinchZoom:!0}:void 0,LV=$V=>{var jl,Ll;const dl=oV.current+$V,Wl=iV().filter(ol=>!ol.disabled),el=document.activeElement,pl=(jl=Wl.find(ol=>ol.ref.current===el))==null?void 0:jl.textValue,ml=Wl.map(ol=>ol.textValue),Bl=getNextMatch(ml,dl,pl),xl=(Ll=Wl.find(ol=>ol.textValue===Bl))==null?void 0:Ll.ref.current;(function ol(Tl){oV.current=Tl,window.clearTimeout(HV.current),Tl!==""&&(HV.current=window.setTimeout(()=>ol(""),1e3))})(dl),xl&&setTimeout(()=>xl.focus())};reactExports.useEffect(()=>()=>window.clearTimeout(HV.current),[]),useFocusGuards();const OV=reactExports.useCallback($V=>{var Wl,el;return qV.current===((Wl=wV.current)==null?void 0:Wl.side)&&isPointerInGraceArea($V,(el=wV.current)==null?void 0:el.area)},[]);return jsxRuntimeExports.jsx(MenuContentProvider,{scope:VV,searchRef:oV,onItemEnter:reactExports.useCallback($V=>{OV($V)&&$V.preventDefault()},[OV]),onItemLeave:reactExports.useCallback($V=>{var dl;OV($V)||((dl=AV.current)==null||dl.focus(),MV(null))},[OV]),onTriggerLeave:reactExports.useCallback($V=>{OV($V)&&$V.preventDefault()},[OV]),pointerGraceTimerRef:DV,onPointerGraceIntentChange:reactExports.useCallback($V=>{wV.current=$V},[]),children:jsxRuntimeExports.jsx(nl,{...Il,children:jsxRuntimeExports.jsx(FocusScope,{asChild:!0,trapped:UV,onMountAutoFocus:composeEventHandlers(ZV,$V=>{var dl;$V.preventDefault(),(dl=AV.current)==null||dl.focus({preventScroll:!0})}),onUnmountAutoFocus:WV,children:jsxRuntimeExports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:IV,onEscapeKeyDown:CV,onPointerDownOutside:FV,onFocusOutside:NV,onInteractOutside:gV,onDismiss:eV,children:jsxRuntimeExports.jsx(Root$1,{asChild:!0,...TV,dir:GV.dir,orientation:"vertical",loop:RV,currentTabStopId:tV,onCurrentTabStopIdChange:MV,onEntryFocus:composeEventHandlers(dV,$V=>{GV.isUsingKeyboardRef.current||$V.preventDefault()}),preventScrollOnEntryFocus:!0,children:jsxRuntimeExports.jsx(Content,{role:"menu","aria-orientation":"vertical","data-state":getOpenState(aV.open),"data-radix-menu-content":"",dir:GV.dir,...cV,...nV,ref:pV,style:{outline:"none",...nV.style},onKeyDown:composeEventHandlers(nV.onKeyDown,$V=>{const Wl=$V.target.closest("[data-radix-menu-content]")===$V.currentTarget,el=$V.ctrlKey||$V.altKey||$V.metaKey,pl=$V.key.length===1;Wl&&($V.key==="Tab"&&$V.preventDefault(),!el&&pl&&LV($V.key));const ml=AV.current;if($V.target!==ml||!FIRST_LAST_KEYS.includes($V.key))return;$V.preventDefault();const xl=iV().filter(jl=>!jl.disabled).map(jl=>jl.ref.current);LAST_KEYS.includes($V.key)&&xl.reverse(),focusFirst(xl)}),onBlur:composeEventHandlers(lV.onBlur,$V=>{$V.currentTarget.contains($V.target)||(window.clearTimeout(HV.current),oV.current="")}),onPointerMove:composeEventHandlers(lV.onPointerMove,whenMouse($V=>{const dl=$V.target,Wl=Cl.current!==$V.clientX;if($V.currentTarget.contains(dl)&&Wl){const el=$V.clientX>Cl.current?"right":"left";qV.current=el,Cl.current=$V.clientX}}))})})})})})})});MenuContent.displayName=CONTENT_NAME$1;var GROUP_NAME$1="MenuGroup",MenuGroup=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,...RV}=lV;return jsxRuntimeExports.jsx(Primitive.div,{role:"group",...RV,ref:J})});MenuGroup.displayName=GROUP_NAME$1;var LABEL_NAME$1="MenuLabel",MenuLabel=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,...RV}=lV;return jsxRuntimeExports.jsx(Primitive.div,{...RV,ref:J})});MenuLabel.displayName=LABEL_NAME$1;var ITEM_NAME$1="MenuItem",ITEM_SELECT="menu.itemSelect",MenuItem=reactExports.forwardRef((lV,J)=>{const{disabled:VV=!1,onSelect:RV,...UV}=lV,ZV=reactExports.useRef(null),WV=useMenuRootContext(ITEM_NAME$1,lV.__scopeMenu),IV=useMenuContentContext(ITEM_NAME$1,lV.__scopeMenu),dV=useComposedRefs(J,ZV),CV=reactExports.useRef(!1),FV=()=>{const NV=ZV.current;if(!VV&&NV){const gV=new CustomEvent(ITEM_SELECT,{bubbles:!0,cancelable:!0});NV.addEventListener(ITEM_SELECT,eV=>RV==null?void 0:RV(eV),{once:!0}),dispatchDiscreteCustomEvent(NV,gV),gV.defaultPrevented?CV.current=!1:WV.onClose()}};return jsxRuntimeExports.jsx(MenuItemImpl,{...UV,ref:dV,disabled:VV,onClick:composeEventHandlers(lV.onClick,FV),onPointerDown:NV=>{var gV;(gV=lV.onPointerDown)==null||gV.call(lV,NV),CV.current=!0},onPointerUp:composeEventHandlers(lV.onPointerUp,NV=>{var gV;CV.current||(gV=NV.currentTarget)==null||gV.click()}),onKeyDown:composeEventHandlers(lV.onKeyDown,NV=>{const gV=IV.searchRef.current!=="";VV||gV&&NV.key===" "||SELECTION_KEYS.includes(NV.key)&&(NV.currentTarget.click(),NV.preventDefault())})})});MenuItem.displayName=ITEM_NAME$1;var MenuItemImpl=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,disabled:RV=!1,textValue:UV,...ZV}=lV,WV=useMenuContentContext(ITEM_NAME$1,VV),IV=useRovingFocusGroupScope(VV),dV=reactExports.useRef(null),CV=useComposedRefs(J,dV),[FV,NV]=reactExports.useState(!1),[gV,eV]=reactExports.useState("");return reactExports.useEffect(()=>{const JV=dV.current;JV&&eV((JV.textContent??"").trim())},[ZV.children]),jsxRuntimeExports.jsx(Collection.ItemSlot,{scope:VV,disabled:RV,textValue:UV??gV,children:jsxRuntimeExports.jsx(Item,{asChild:!0,...IV,focusable:!RV,children:jsxRuntimeExports.jsx(Primitive.div,{role:"menuitem","data-highlighted":FV?"":void 0,"aria-disabled":RV||void 0,"data-disabled":RV?"":void 0,...ZV,ref:CV,onPointerMove:composeEventHandlers(lV.onPointerMove,whenMouse(JV=>{RV?WV.onItemLeave(JV):(WV.onItemEnter(JV),JV.defaultPrevented||JV.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:composeEventHandlers(lV.onPointerLeave,whenMouse(JV=>WV.onItemLeave(JV))),onFocus:composeEventHandlers(lV.onFocus,()=>NV(!0)),onBlur:composeEventHandlers(lV.onBlur,()=>NV(!1))})})})}),CHECKBOX_ITEM_NAME$1="MenuCheckboxItem",MenuCheckboxItem=reactExports.forwardRef((lV,J)=>{const{checked:VV=!1,onCheckedChange:RV,...UV}=lV;return jsxRuntimeExports.jsx(ItemIndicatorProvider,{scope:lV.__scopeMenu,checked:VV,children:jsxRuntimeExports.jsx(MenuItem,{role:"menuitemcheckbox","aria-checked":isIndeterminate(VV)?"mixed":VV,...UV,ref:J,"data-state":getCheckedState(VV),onSelect:composeEventHandlers(UV.onSelect,()=>RV==null?void 0:RV(isIndeterminate(VV)?!0:!VV),{checkForDefaultPrevented:!1})})})});MenuCheckboxItem.displayName=CHECKBOX_ITEM_NAME$1;var RADIO_GROUP_NAME$1="MenuRadioGroup",[RadioGroupProvider,useRadioGroupContext]=createMenuContext(RADIO_GROUP_NAME$1,{value:void 0,onValueChange:()=>{}}),MenuRadioGroup=reactExports.forwardRef((lV,J)=>{const{value:VV,onValueChange:RV,...UV}=lV,ZV=useCallbackRef$1(RV);return jsxRuntimeExports.jsx(RadioGroupProvider,{scope:lV.__scopeMenu,value:VV,onValueChange:ZV,children:jsxRuntimeExports.jsx(MenuGroup,{...UV,ref:J})})});MenuRadioGroup.displayName=RADIO_GROUP_NAME$1;var RADIO_ITEM_NAME$1="MenuRadioItem",MenuRadioItem=reactExports.forwardRef((lV,J)=>{const{value:VV,...RV}=lV,UV=useRadioGroupContext(RADIO_ITEM_NAME$1,lV.__scopeMenu),ZV=VV===UV.value;return jsxRuntimeExports.jsx(ItemIndicatorProvider,{scope:lV.__scopeMenu,checked:ZV,children:jsxRuntimeExports.jsx(MenuItem,{role:"menuitemradio","aria-checked":ZV,...RV,ref:J,"data-state":getCheckedState(ZV),onSelect:composeEventHandlers(RV.onSelect,()=>{var WV;return(WV=UV.onValueChange)==null?void 0:WV.call(UV,VV)},{checkForDefaultPrevented:!1})})})});MenuRadioItem.displayName=RADIO_ITEM_NAME$1;var ITEM_INDICATOR_NAME="MenuItemIndicator",[ItemIndicatorProvider,useItemIndicatorContext]=createMenuContext(ITEM_INDICATOR_NAME,{checked:!1}),MenuItemIndicator=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,forceMount:RV,...UV}=lV,ZV=useItemIndicatorContext(ITEM_INDICATOR_NAME,VV);return jsxRuntimeExports.jsx(Presence,{present:RV||isIndeterminate(ZV.checked)||ZV.checked===!0,children:jsxRuntimeExports.jsx(Primitive.span,{...UV,ref:J,"data-state":getCheckedState(ZV.checked)})})});MenuItemIndicator.displayName=ITEM_INDICATOR_NAME;var SEPARATOR_NAME$1="MenuSeparator",MenuSeparator=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,...RV}=lV;return jsxRuntimeExports.jsx(Primitive.div,{role:"separator","aria-orientation":"horizontal",...RV,ref:J})});MenuSeparator.displayName=SEPARATOR_NAME$1;var ARROW_NAME$1="MenuArrow",MenuArrow=reactExports.forwardRef((lV,J)=>{const{__scopeMenu:VV,...RV}=lV,UV=usePopperScope(VV);return jsxRuntimeExports.jsx(Arrow,{...UV,...RV,ref:J})});MenuArrow.displayName=ARROW_NAME$1;var SUB_NAME="MenuSub",[MenuSubProvider,useMenuSubContext]=createMenuContext(SUB_NAME),SUB_TRIGGER_NAME$1="MenuSubTrigger",MenuSubTrigger=reactExports.forwardRef((lV,J)=>{const VV=useMenuContext(SUB_TRIGGER_NAME$1,lV.__scopeMenu),RV=useMenuRootContext(SUB_TRIGGER_NAME$1,lV.__scopeMenu),UV=useMenuSubContext(SUB_TRIGGER_NAME$1,lV.__scopeMenu),ZV=useMenuContentContext(SUB_TRIGGER_NAME$1,lV.__scopeMenu),WV=reactExports.useRef(null),{pointerGraceTimerRef:IV,onPointerGraceIntentChange:dV}=ZV,CV={__scopeMenu:lV.__scopeMenu},FV=reactExports.useCallback(()=>{WV.current&&window.clearTimeout(WV.current),WV.current=null},[]);return reactExports.useEffect(()=>FV,[FV]),reactExports.useEffect(()=>{const NV=IV.current;return()=>{window.clearTimeout(NV),dV(null)}},[IV,dV]),jsxRuntimeExports.jsx(MenuAnchor,{asChild:!0,...CV,children:jsxRuntimeExports.jsx(MenuItemImpl,{id:UV.triggerId,"aria-haspopup":"menu","aria-expanded":VV.open,"aria-controls":UV.contentId,"data-state":getOpenState(VV.open),...lV,ref:composeRefs(J,UV.onTriggerChange),onClick:NV=>{var gV;(gV=lV.onClick)==null||gV.call(lV,NV),!(lV.disabled||NV.defaultPrevented)&&(NV.currentTarget.focus(),VV.open||VV.onOpenChange(!0))},onPointerMove:composeEventHandlers(lV.onPointerMove,whenMouse(NV=>{ZV.onItemEnter(NV),!NV.defaultPrevented&&!lV.disabled&&!VV.open&&!WV.current&&(ZV.onPointerGraceIntentChange(null),WV.current=window.setTimeout(()=>{VV.onOpenChange(!0),FV()},100))})),onPointerLeave:composeEventHandlers(lV.onPointerLeave,whenMouse(NV=>{var eV,JV;FV();const gV=(eV=VV.content)==null?void 0:eV.getBoundingClientRect();if(gV){const nV=(JV=VV.content)==null?void 0:JV.dataset.side,aV=nV==="right",GV=aV?-5:5,cV=gV[aV?"left":"right"],TV=gV[aV?"right":"left"];ZV.onPointerGraceIntentChange({area:[{x:NV.clientX+GV,y:NV.clientY},{x:cV,y:gV.top},{x:TV,y:gV.top},{x:TV,y:gV.bottom},{x:cV,y:gV.bottom}],side:nV}),window.clearTimeout(IV.current),IV.current=window.setTimeout(()=>ZV.onPointerGraceIntentChange(null),300)}else{if(ZV.onTriggerLeave(NV),NV.defaultPrevented)return;ZV.onPointerGraceIntentChange(null)}})),onKeyDown:composeEventHandlers(lV.onKeyDown,NV=>{var eV;const gV=ZV.searchRef.current!=="";lV.disabled||gV&&NV.key===" "||SUB_OPEN_KEYS[RV.dir].includes(NV.key)&&(VV.onOpenChange(!0),(eV=VV.content)==null||eV.focus(),NV.preventDefault())})})})});MenuSubTrigger.displayName=SUB_TRIGGER_NAME$1;var SUB_CONTENT_NAME$1="MenuSubContent",MenuSubContent=reactExports.forwardRef((lV,J)=>{const VV=usePortalContext(CONTENT_NAME$1,lV.__scopeMenu),{forceMount:RV=VV.forceMount,...UV}=lV,ZV=useMenuContext(CONTENT_NAME$1,lV.__scopeMenu),WV=useMenuRootContext(CONTENT_NAME$1,lV.__scopeMenu),IV=useMenuSubContext(SUB_CONTENT_NAME$1,lV.__scopeMenu),dV=reactExports.useRef(null),CV=useComposedRefs(J,dV);return jsxRuntimeExports.jsx(Collection.Provider,{scope:lV.__scopeMenu,children:jsxRuntimeExports.jsx(Presence,{present:RV||ZV.open,children:jsxRuntimeExports.jsx(Collection.Slot,{scope:lV.__scopeMenu,children:jsxRuntimeExports.jsx(MenuContentImpl,{id:IV.contentId,"aria-labelledby":IV.triggerId,...UV,ref:CV,align:"start",side:WV.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:FV=>{var NV;WV.isUsingKeyboardRef.current&&((NV=dV.current)==null||NV.focus()),FV.preventDefault()},onCloseAutoFocus:FV=>FV.preventDefault(),onFocusOutside:composeEventHandlers(lV.onFocusOutside,FV=>{FV.target!==IV.trigger&&ZV.onOpenChange(!1)}),onEscapeKeyDown:composeEventHandlers(lV.onEscapeKeyDown,FV=>{WV.onClose(),FV.preventDefault()}),onKeyDown:composeEventHandlers(lV.onKeyDown,FV=>{var eV;const NV=FV.currentTarget.contains(FV.target),gV=SUB_CLOSE_KEYS[WV.dir].includes(FV.key);NV&&gV&&(ZV.onOpenChange(!1),(eV=IV.trigger)==null||eV.focus(),FV.preventDefault())})})})})})});MenuSubContent.displayName=SUB_CONTENT_NAME$1;function getOpenState(lV){return lV?"open":"closed"}function isIndeterminate(lV){return lV==="indeterminate"}function getCheckedState(lV){return isIndeterminate(lV)?"indeterminate":lV?"checked":"unchecked"}function focusFirst(lV){const J=document.activeElement;for(const VV of lV)if(VV===J||(VV.focus(),document.activeElement!==J))return}function wrapArray(lV,J){return lV.map((VV,RV)=>lV[(J+RV)%lV.length])}function getNextMatch(lV,J,VV){const UV=J.length>1&&Array.from(J).every(CV=>CV===J[0])?J[0]:J,ZV=VV?lV.indexOf(VV):-1;let WV=wrapArray(lV,Math.max(ZV,0));UV.length===1&&(WV=WV.filter(CV=>CV!==VV));const dV=WV.find(CV=>CV.toLowerCase().startsWith(UV.toLowerCase()));return dV!==VV?dV:void 0}function isPointInPolygon(lV,J){const{x:VV,y:RV}=lV;let UV=!1;for(let ZV=0,WV=J.length-1;ZV<J.length;WV=ZV++){const IV=J[ZV].x,dV=J[ZV].y,CV=J[WV].x,FV=J[WV].y;dV>RV!=FV>RV&&VV<(CV-IV)*(RV-dV)/(FV-dV)+IV&&(UV=!UV)}return UV}function isPointerInGraceArea(lV,J){if(!J)return!1;const VV={x:lV.clientX,y:lV.clientY};return isPointInPolygon(VV,J)}function whenMouse(lV){return J=>J.pointerType==="mouse"?lV(J):void 0}var Root3=Menu,Anchor2=MenuAnchor,Portal=MenuPortal,Content2$1=MenuContent,Group=MenuGroup,Label=MenuLabel,Item2$1=MenuItem,CheckboxItem=MenuCheckboxItem,RadioGroup=MenuRadioGroup,RadioItem=MenuRadioItem,ItemIndicator=MenuItemIndicator,Separator=MenuSeparator,Arrow2=MenuArrow,SubTrigger=MenuSubTrigger,SubContent=MenuSubContent,DROPDOWN_MENU_NAME="DropdownMenu",[createDropdownMenuContext,createDropdownMenuScope]=createContextScope$3(DROPDOWN_MENU_NAME,[createMenuScope]),useMenuScope=createMenuScope(),[DropdownMenuProvider,useDropdownMenuContext]=createDropdownMenuContext(DROPDOWN_MENU_NAME),DropdownMenu$1=lV=>{const{__scopeDropdownMenu:J,children:VV,dir:RV,open:UV,defaultOpen:ZV,onOpenChange:WV,modal:IV=!0}=lV,dV=useMenuScope(J),CV=reactExports.useRef(null),[FV=!1,NV]=useControllableState({prop:UV,defaultProp:ZV,onChange:WV});return jsxRuntimeExports.jsx(DropdownMenuProvider,{scope:J,triggerId:useId(),triggerRef:CV,contentId:useId(),open:FV,onOpenChange:NV,onOpenToggle:reactExports.useCallback(()=>NV(gV=>!gV),[NV]),modal:IV,children:jsxRuntimeExports.jsx(Root3,{...dV,open:FV,onOpenChange:NV,dir:RV,modal:IV,children:VV})})};DropdownMenu$1.displayName=DROPDOWN_MENU_NAME;var TRIGGER_NAME="DropdownMenuTrigger",DropdownMenuTrigger$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,disabled:RV=!1,...UV}=lV,ZV=useDropdownMenuContext(TRIGGER_NAME,VV),WV=useMenuScope(VV);return jsxRuntimeExports.jsx(Anchor2,{asChild:!0,...WV,children:jsxRuntimeExports.jsx(Primitive.button,{type:"button",id:ZV.triggerId,"aria-haspopup":"menu","aria-expanded":ZV.open,"aria-controls":ZV.open?ZV.contentId:void 0,"data-state":ZV.open?"open":"closed","data-disabled":RV?"":void 0,disabled:RV,...UV,ref:composeRefs(J,ZV.triggerRef),onPointerDown:composeEventHandlers(lV.onPointerDown,IV=>{!RV&&IV.button===0&&IV.ctrlKey===!1&&(ZV.onOpenToggle(),ZV.open||IV.preventDefault())}),onKeyDown:composeEventHandlers(lV.onKeyDown,IV=>{RV||(["Enter"," "].includes(IV.key)&&ZV.onOpenToggle(),IV.key==="ArrowDown"&&ZV.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(IV.key)&&IV.preventDefault())})})})});DropdownMenuTrigger$1.displayName=TRIGGER_NAME;var PORTAL_NAME="DropdownMenuPortal",DropdownMenuPortal=lV=>{const{__scopeDropdownMenu:J,...VV}=lV,RV=useMenuScope(J);return jsxRuntimeExports.jsx(Portal,{...RV,...VV})};DropdownMenuPortal.displayName=PORTAL_NAME;var CONTENT_NAME="DropdownMenuContent",DropdownMenuContent$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useDropdownMenuContext(CONTENT_NAME,VV),ZV=useMenuScope(VV),WV=reactExports.useRef(!1);return jsxRuntimeExports.jsx(Content2$1,{id:UV.contentId,"aria-labelledby":UV.triggerId,...ZV,...RV,ref:J,onCloseAutoFocus:composeEventHandlers(lV.onCloseAutoFocus,IV=>{var dV;WV.current||(dV=UV.triggerRef.current)==null||dV.focus(),WV.current=!1,IV.preventDefault()}),onInteractOutside:composeEventHandlers(lV.onInteractOutside,IV=>{const dV=IV.detail.originalEvent,CV=dV.button===0&&dV.ctrlKey===!0,FV=dV.button===2||CV;(!UV.modal||FV)&&(WV.current=!0)}),style:{...lV.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});DropdownMenuContent$1.displayName=CONTENT_NAME;var GROUP_NAME="DropdownMenuGroup",DropdownMenuGroup=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(Group,{...UV,...RV,ref:J})});DropdownMenuGroup.displayName=GROUP_NAME;var LABEL_NAME="DropdownMenuLabel",DropdownMenuLabel$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(Label,{...UV,...RV,ref:J})});DropdownMenuLabel$1.displayName=LABEL_NAME;var ITEM_NAME="DropdownMenuItem",DropdownMenuItem$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(Item2$1,{...UV,...RV,ref:J})});DropdownMenuItem$1.displayName=ITEM_NAME;var CHECKBOX_ITEM_NAME="DropdownMenuCheckboxItem",DropdownMenuCheckboxItem$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(CheckboxItem,{...UV,...RV,ref:J})});DropdownMenuCheckboxItem$1.displayName=CHECKBOX_ITEM_NAME;var RADIO_GROUP_NAME="DropdownMenuRadioGroup",DropdownMenuRadioGroup=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(RadioGroup,{...UV,...RV,ref:J})});DropdownMenuRadioGroup.displayName=RADIO_GROUP_NAME;var RADIO_ITEM_NAME="DropdownMenuRadioItem",DropdownMenuRadioItem$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(RadioItem,{...UV,...RV,ref:J})});DropdownMenuRadioItem$1.displayName=RADIO_ITEM_NAME;var INDICATOR_NAME="DropdownMenuItemIndicator",DropdownMenuItemIndicator=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(ItemIndicator,{...UV,...RV,ref:J})});DropdownMenuItemIndicator.displayName=INDICATOR_NAME;var SEPARATOR_NAME="DropdownMenuSeparator",DropdownMenuSeparator$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(Separator,{...UV,...RV,ref:J})});DropdownMenuSeparator$1.displayName=SEPARATOR_NAME;var ARROW_NAME="DropdownMenuArrow",DropdownMenuArrow=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(Arrow2,{...UV,...RV,ref:J})});DropdownMenuArrow.displayName=ARROW_NAME;var SUB_TRIGGER_NAME="DropdownMenuSubTrigger",DropdownMenuSubTrigger$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(SubTrigger,{...UV,...RV,ref:J})});DropdownMenuSubTrigger$1.displayName=SUB_TRIGGER_NAME;var SUB_CONTENT_NAME="DropdownMenuSubContent",DropdownMenuSubContent$1=reactExports.forwardRef((lV,J)=>{const{__scopeDropdownMenu:VV,...RV}=lV,UV=useMenuScope(VV);return jsxRuntimeExports.jsx(SubContent,{...UV,...RV,ref:J,style:{...lV.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});DropdownMenuSubContent$1.displayName=SUB_CONTENT_NAME;var Root2=DropdownMenu$1,Trigger=DropdownMenuTrigger$1,Portal2=DropdownMenuPortal,Content2=DropdownMenuContent$1,Label2=DropdownMenuLabel$1,Item2=DropdownMenuItem$1,CheckboxItem2=DropdownMenuCheckboxItem$1,RadioItem2=DropdownMenuRadioItem$1,ItemIndicator2=DropdownMenuItemIndicator,Separator2=DropdownMenuSeparator$1,SubTrigger2=DropdownMenuSubTrigger$1,SubContent2=DropdownMenuSubContent$1;const DropdownMenu=Root2,DropdownMenuTrigger=Trigger,DropdownMenuSubTrigger=reactExports.forwardRef(({className:lV,inset:J,children:VV,...RV},UV)=>jsxRuntimeExports.jsxs(SubTrigger2,{ref:UV,className:cn$1("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-slate-100 data-[state=open]:bg-slate-100 dark:focus:bg-slate-800 dark:data-[state=open]:bg-slate-800",J&&"pl-8",lV),...RV,children:[VV,jsxRuntimeExports.jsx(ChevronRightIcon,{className:"ml-auto h-4 w-4"})]}));DropdownMenuSubTrigger.displayName=SubTrigger2.displayName;const DropdownMenuSubContent=reactExports.forwardRef(({className:lV,...J},VV)=>jsxRuntimeExports.jsx(SubContent2,{ref:VV,className:cn$1("z-50 min-w-[8rem] overflow-hidden rounded-md border border-slate-200 bg-white p-1 text-slate-950 shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:border-slate-800 dark:bg-slate-950 dark:text-slate-50",lV),...J}));DropdownMenuSubContent.displayName=SubContent2.displayName;const DropdownMenuContent=reactExports.forwardRef(({className:lV,sideOffset:J=4,...VV},RV)=>jsxRuntimeExports.jsx(Portal2,{children:jsxRuntimeExports.jsx(Content2,{ref:RV,sideOffset:J,className:cn$1("z-50 min-w-[8rem] overflow-hidden rounded-md border border-slate-200 bg-white p-1 text-slate-950 shadow-md dark:border-slate-800 dark:bg-slate-950 dark:text-slate-50","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",lV),...VV})}));DropdownMenuContent.displayName=Content2.displayName;const DropdownMenuItem=reactExports.forwardRef(({className:lV,inset:J,...VV},RV)=>jsxRuntimeExports.jsx(Item2,{ref:RV,className:cn$1("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-slate-100 focus:text-slate-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-slate-800 dark:focus:text-slate-50",J&&"pl-8",lV),...VV}));DropdownMenuItem.displayName=Item2.displayName;const DropdownMenuCheckboxItem=reactExports.forwardRef(({className:lV,children:J,checked:VV,...RV},UV)=>jsxRuntimeExports.jsxs(CheckboxItem2,{ref:UV,className:cn$1("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-slate-100 focus:text-slate-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-slate-800 dark:focus:text-slate-50",lV),checked:VV,...RV,children:[jsxRuntimeExports.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:jsxRuntimeExports.jsx(ItemIndicator2,{children:jsxRuntimeExports.jsx(CheckIcon,{className:"h-4 w-4"})})}),J]}));DropdownMenuCheckboxItem.displayName=CheckboxItem2.displayName;const DropdownMenuRadioItem=reactExports.forwardRef(({className:lV,children:J,...VV},RV)=>jsxRuntimeExports.jsxs(RadioItem2,{ref:RV,className:cn$1("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-slate-100 focus:text-slate-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-slate-800 dark:focus:text-slate-50",lV),...VV,children:[jsxRuntimeExports.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:jsxRuntimeExports.jsx(ItemIndicator2,{children:jsxRuntimeExports.jsx(DotFilledIcon,{className:"h-4 w-4 fill-current"})})}),J]}));DropdownMenuRadioItem.displayName=RadioItem2.displayName;const DropdownMenuLabel=reactExports.forwardRef(({className:lV,inset:J,...VV},RV)=>jsxRuntimeExports.jsx(Label2,{ref:RV,className:cn$1("px-2 py-1.5 text-sm font-semibold",J&&"pl-8",lV),...VV}));DropdownMenuLabel.displayName=Label2.displayName;const DropdownMenuSeparator=reactExports.forwardRef(({className:lV,...J},VV)=>jsxRuntimeExports.jsx(Separator2,{ref:VV,className:cn$1("-mx-1 my-1 h-px bg-slate-100 dark:bg-slate-800",lV),...J}));DropdownMenuSeparator.displayName=Separator2.displayName;const PcbViewerWithContainerHeight=({containerClassName:lV,...J})=>{const VV=reactExports.useRef(null),[RV,UV]=reactExports.useState(620);return reactExports.useLayoutEffect(()=>{const ZV=()=>{if(VV.current){const IV=VV.current.clientHeight,dV=window.innerHeight;UV(Math.min(Math.max(IV,620),dV))}};ZV();const WV=new ResizeObserver(ZV);return VV.current&&WV.observe(VV.current),window.addEventListener("resize",ZV),()=>{WV.disconnect(),window.removeEventListener("resize",ZV)}},[]),jsxRuntimeExports.jsx("div",{ref:VV,className:lV||"w-full h-full",children:jsxRuntimeExports.jsx(distExports$1.PCBViewer,{...J,height:RV})})},styles=".invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-2{left:.5rem}.right-4{right:1rem}.right-\\[4px\\]{right:4px}.top-2{top:.5rem}.top-4{top:1rem}.top-\\[6px\\]{top:6px}.z-50{z-index:50}.z-\\[100\\]{z-index:100}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-1{margin-bottom:.25rem;margin-top:.25rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-1\\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.contents{display:contents}.hidden{display:none}.h-1{height:.25rem}.h-10{height:2.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\\.5{height:.875rem}.h-4{height:1rem}.h-60{height:15rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\\[620px\\]{height:620px}.h-\\[calc\\(100vh-96px\\)\\]{height:calc(100vh - 96px)}.h-full{height:100%}.h-px{height:1px}.max-h-\\[500px\\]{max-height:500px}.min-h-\\[620px\\]{min-height:620px}.min-h-\\[calc\\(100vh-240px\\)\\]{min-height:calc(100vh - 240px)}.w-1{width:.25rem}.w-11{width:2.75rem}.w-11\\/12{width:91.666667%}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\\.5{width:.875rem}.w-4{width:1rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-full{width:100%}.min-w-\\[8rem\\]{min-width:8rem}.max-w-2xl{max-width:42rem}.flex-grow{flex-grow:1}.table-auto{table-layout:auto}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.bg-black{background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black,.bg-blue-50{--tw-bg-opacity:1}.bg-blue-50{background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-orange-400{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-opacity-50{--tw-bg-opacity:0.5}.fill-current{fill:currentColor}.p-0{padding:0}.p-0\\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\\[8px\\]{font-size:8px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.leading-5{line-height:1.25rem}.tracking-widest{letter-spacing:.1em}.text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-slate-50{--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-slate-950{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-60{opacity:.6}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-offset-white{--tw-ring-offset-color:#fff}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.running{animation-play-state:running}.\\*\\:text-xs>*{font-size:.75rem;line-height:1rem}.hover\\:bg-blue-500:hover{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.hover\\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\\:bg-red-500\\/90:hover{background-color:rgba(239,68,68,.9)}.hover\\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.hover\\:bg-slate-100\\/80:hover{background-color:rgba(241,245,249,.8)}.hover\\:bg-slate-900\\/90:hover{background-color:rgba(15,23,42,.9)}.hover\\:text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.hover\\:text-slate-900:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.hover\\:underline:hover{text-decoration-line:underline}.focus\\:bg-slate-100:focus{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.focus\\:text-slate-900:focus{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:ring-slate-950:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(2 6 23/var(--tw-ring-opacity,1))}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:opacity-50:disabled{opacity:.5}.data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.data-\\[state\\=active\\]\\:bg-white[data-state=active]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.data-\\[state\\=open\\]\\:bg-slate-100[data-state=open]{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.data-\\[state\\=active\\]\\:text-slate-950[data-state=active]{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}.data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.data-\\[state\\=active\\]\\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\\[state\\=open\\]\\:animate-in[data-state=open]{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\\[state\\=closed\\]\\:animate-out[data-state=closed]{animation-duration:.15s;animation-name:exit;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\\[state\\=open\\]\\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\\[state\\=open\\]\\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.dark\\:border-slate-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 41 59/var(--tw-border-opacity,1))}.dark\\:bg-red-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\\:bg-slate-50:is(.dark *){--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.dark\\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\\:bg-slate-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.dark\\:text-slate-400:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\\:text-slate-50:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\\:text-slate-900:is(.dark *){--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.dark\\:ring-offset-slate-950:is(.dark *){--tw-ring-offset-color:#020617}.dark\\:hover\\:bg-red-900\\/90:hover:is(.dark *){background-color:rgba(127,29,29,.9)}.dark\\:hover\\:bg-slate-50\\/90:hover:is(.dark *){background-color:rgba(248,250,252,.9)}.dark\\:hover\\:bg-slate-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-slate-800\\/80:hover:is(.dark *){background-color:rgba(30,41,59,.8)}.dark\\:hover\\:text-slate-50:hover:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\\:focus\\:bg-slate-800:focus:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\\:focus\\:text-slate-50:focus:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\\:focus-visible\\:ring-slate-300:focus-visible:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(203 213 225/var(--tw-ring-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:bg-slate-950[data-state=active]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=open\\]\\:bg-slate-800[data-state=open]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:text-slate-50[data-state=active]:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}@media (min-width:768px){.md\\:sticky{position:sticky}.md\\:top-2{top:.5rem}}",useStyles=()=>{reactExports.useEffect(()=>{if(document.querySelector('style[data-styles="tscircuit-runframe"]'))return;const J=document.createElement("style");J.setAttribute("data-styles","tscircuit-runframe"),J.textContent=styles,document.head.appendChild(J)},[])},CircuitJsonPreview=({code:lV,onRunClicked:J=void 0,tsxRunTriggerCount:VV,errorMessage:RV,circuitJsonKey:UV="",circuitJson:ZV,showCodeTab:WV=!1,codeTabContent:IV,showJsonTab:dV=!0,showImportAndFormatButtons:CV=!0,className:FV,headerClassName:NV,leftHeaderContent:gV,readOnly:eV,isStreaming:JV,onToggleFullScreen:nV,isFullScreen:aV,isRunningCode:GV,hasCodeChangedSinceLastRun:cV,onEditEvent:TV,editEvents:iV,defaultActiveTab:tV})=>{useStyles();const[MV,AV]=reactExports.useState(tV??"pcb");return reactExports.useEffect(()=>{RV&&AV("error")},[RV]),reactExports.useEffect(()=>{MV==="code"&&ZV&&!RV&&AV("pcb")},[ZV]),jsxRuntimeExports.jsx("div",{className:cn$1("flex flex-col relative",FV),children:jsxRuntimeExports.jsx("div",{className:"md:sticky md:top-2",children:jsxRuntimeExports.jsxs(Tabs,{value:MV,onValueChange:AV,className:"flex-grow flex flex-col p-2",children:[jsxRuntimeExports.jsxs("div",{className:cn$1("flex items-center gap-2",NV),children:[gV,gV&&jsxRuntimeExports.jsx("div",{className:"flex-grow"}),!gV&&jsxRuntimeExports.jsx("div",{className:"flex-grow"}),jsxRuntimeExports.jsxs(TabsList,{children:[WV&&jsxRuntimeExports.jsx(TabsTrigger,{value:"code",children:"Code"}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"pcb",className:"whitespace-nowrap",children:[ZV&&jsxRuntimeExports.jsx("span",{className:cn$1("inline-flex items-center justify-center w-2 h-2 mr-1 text-xs font-bold text-white rounded-full",cV?"bg-gray-500":"bg-blue-500")}),"PCB"]}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"schematic",className:"whitespace-nowrap",children:[ZV&&jsxRuntimeExports.jsx("span",{className:cn$1("inline-flex items-center justify-center w-2 h-2 mr-1 text-xs font-bold text-white rounded-full",cV?"bg-gray-500":"bg-blue-500")}),"Schematic"]}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"cad",children:[ZV&&jsxRuntimeExports.jsx("span",{className:cn$1("inline-flex items-center justify-center w-2 h-2 mr-1 text-xs font-bold text-white rounded-full",cV?"bg-gray-500":"bg-blue-500")}),"3D"]}),jsxRuntimeExports.jsxs(DropdownMenu,{children:[jsxRuntimeExports.jsx(DropdownMenuTrigger,{asChild:!0,children:jsxRuntimeExports.jsxs("div",{className:"whitespace-nowrap p-2 mr-1 cursor-pointer relative",children:[jsxRuntimeExports.jsx(Ellipsis,{className:"w-4 h-4"}),RV&&jsxRuntimeExports.jsx("span",{className:"inline-flex absolute top-[6px] right-[4px] items-center justify-center w-1 h-1 ml-2 text-[8px] font-bold text-white bg-red-500 rounded-full"})]})}),jsxRuntimeExports.jsxs(DropdownMenuContent,{className:"*:text-xs",children:[jsxRuntimeExports.jsxs(DropdownMenuItem,{onSelect:()=>AV("assembly"),children:[jsxRuntimeExports.jsx(Check,{className:cn$1("w-3 h-3 mr-2",MV!=="assembly"&&"invisible")}),"Assembly"]}),jsxRuntimeExports.jsxs(DropdownMenuItem,{onSelect:()=>AV("error"),className:"flex",children:[jsxRuntimeExports.jsx(Check,{className:cn$1("w-3 h-3 mr-2",MV!=="error"&&"invisible")}),jsxRuntimeExports.jsx("div",{className:"flex-grow",children:"Errors"}),RV&&jsxRuntimeExports.jsx("span",{className:"inline-flex items-center justify-center w-3 h-3 ml-2 text-[8px] font-bold text-white bg-red-500 rounded-full",children:"1"})]}),jsxRuntimeExports.jsxs(DropdownMenuItem,{onSelect:()=>AV("bom"),children:[jsxRuntimeExports.jsx(Check,{className:cn$1("w-3 h-3 mr-2",MV!=="bom"&&"invisible")}),"Bill of Materials"]}),jsxRuntimeExports.jsxs(DropdownMenuItem,{onSelect:()=>AV("circuitjson"),children:[jsxRuntimeExports.jsx(Check,{className:cn$1("w-3 h-3 mr-2",MV!=="circuitjson"&&"invisible")}),"JSON"]})]})]})]}),nV&&jsxRuntimeExports.jsx(Button,{onClick:nV,variant:"ghost",children:aV?jsxRuntimeExports.jsx(Minimize,{size:16}):jsxRuntimeExports.jsx(Fullscreen,{size:16})})]}),WV&&jsxRuntimeExports.jsx(TabsContent,{value:"code",className:"flex-grow overflow-hidden",children:jsxRuntimeExports.jsx("div",{className:"h-full",children:IV})}),jsxRuntimeExports.jsx(TabsContent,{value:"pcb",children:jsxRuntimeExports.jsx("div",{className:cn$1("overflow-hidden",aV?"h-[calc(100vh-96px)]":"h-[620px]"),children:jsxRuntimeExports.jsx(ErrorBoundary,{fallback:jsxRuntimeExports.jsx("div",{children:"Error loading PCB viewer"}),children:ZV?jsxRuntimeExports.jsx(PcbViewerWithContainerHeight,{soup:ZV,containerClassName:cn$1("h-full w-full",aV?"min-h-[calc(100vh-240px)]":"min-h-[620px]")},UV):jsxRuntimeExports.jsx(PreviewEmptyState,{onRunClicked:J})})})}),jsxRuntimeExports.jsx(TabsContent,{value:"assembly",children:jsxRuntimeExports.jsx("div",{className:cn$1("overflow-auto",aV?"h-[calc(100vh-96px)]":"h-[620px]"),children:jsxRuntimeExports.jsx(ErrorBoundary,{fallback:jsxRuntimeExports.jsx("div",{children:"Error loading Assembly"}),children:ZV?jsxRuntimeExports.jsx(AssemblyViewer,{circuitJson:ZV,containerStyle:{height:"100%"},editingEnabled:!0,debugGrid:!0}):jsxRuntimeExports.jsx(PreviewEmptyState,{onRunClicked:J})})})}),jsxRuntimeExports.jsx(TabsContent,{value:"schematic",children:jsxRuntimeExports.jsx("div",{className:cn$1("overflow-auto",aV?"h-[calc(100vh-96px)]":"h-[620px]"),children:jsxRuntimeExports.jsx(ErrorBoundary,{fallback:jsxRuntimeExports.jsx("div",{children:"Error loading Schematic"}),children:ZV?jsxRuntimeExports.jsx(SchematicViewer,{circuitJson:ZV,containerStyle:{height:"100%"},editingEnabled:!0,onEditEvent:pV=>TV==null?void 0:TV(pV),editEvents:iV,debugGrid:!0}):jsxRuntimeExports.jsx(PreviewEmptyState,{onRunClicked:J})})})}),jsxRuntimeExports.jsx(TabsContent,{value:"cad",children:jsxRuntimeExports.jsx("div",{className:cn$1("overflow-auto",aV?"h-[calc(100vh-96px)]":"h-[620px]"),children:jsxRuntimeExports.jsx(ErrorBoundary,{FallbackComponent:ErrorFallback,children:ZV?jsxRuntimeExports.jsx(distExports$2.CadViewer,{soup:ZV}):jsxRuntimeExports.jsx(PreviewEmptyState,{onRunClicked:J})})})}),jsxRuntimeExports.jsx(TabsContent,{value:"bom",children:jsxRuntimeExports.jsx("div",{className:cn$1("overflow-auto",aV?"h-[calc(100vh-96px)]":"h-[620px]"),children:jsxRuntimeExports.jsx(ErrorBoundary,{fallback:jsxRuntimeExports.jsx("div",{children:"Error loading BOM"}),children:ZV?jsxRuntimeExports.jsx(BomTable,{circuitJson:ZV}):jsxRuntimeExports.jsx(PreviewEmptyState,{onRunClicked:J})})})}),jsxRuntimeExports.jsx(TabsContent,{value:"circuitjson",children:jsxRuntimeExports.jsx("div",{className:cn$1("overflow-auto",aV?"h-[calc(100vh-96px)]":"h-[620px]"),children:jsxRuntimeExports.jsx(ErrorBoundary,{fallback:jsxRuntimeExports.jsx("div",{children:"Error loading JSON viewer"}),children:ZV?jsxRuntimeExports.jsx(CircuitJsonTableViewer,{elements:ZV}):jsxRuntimeExports.jsx(PreviewEmptyState,{onRunClicked:J})})})}),jsxRuntimeExports.jsx(TabsContent,{value:"error",children:ZV||RV?jsxRuntimeExports.jsx(ErrorTabContent,{code:lV,errorMessage:RV}):jsxRuntimeExports.jsx(PreviewEmptyState,{onRunClicked:J})})]})})})};/**
|
|
22279
22279
|
* @license
|
|
22280
22280
|
* Copyright 2019 Google LLC
|
|
22281
22281
|
* SPDX-License-Identifier: Apache-2.0
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@tscircuit/runframe",
|
|
3
3
|
"main": "dist/preview.js",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "0.0.
|
|
5
|
+
"version": "0.0.37",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": "./dist/preview.js",
|
|
8
8
|
"./preview": "./dist/preview.js",
|
|
@@ -56,6 +56,7 @@
|
|
|
56
56
|
"@tscircuit/core": "^0.0.247",
|
|
57
57
|
"@tscircuit/eval-webworker": "^0.0.43",
|
|
58
58
|
"@tscircuit/file-server": "^0.0.10",
|
|
59
|
+
"@tscircuit/assembly-viewer": "^0.0.1",
|
|
59
60
|
"@tscircuit/pcb-viewer": "^1.10.22",
|
|
60
61
|
"@tscircuit/props": "^0.0.123",
|
|
61
62
|
"@tscircuit/schematic-viewer": "2.0.9",
|