diff --git a/docs/docusaurus/src/components/ModalWidgetPersistent.js b/docs/docusaurus/src/components/ModalWidgetPersistent.js new file mode 100644 index 00000000000..17004e59273 --- /dev/null +++ b/docs/docusaurus/src/components/ModalWidgetPersistent.js @@ -0,0 +1,66 @@ +import React, { useState, useEffect } from "react"; +import { HelpCircle } from "lucide-react"; // icon library + +export default function ModalWidgetPersistent({ url, buttonLabel = "Open Widget" }) { + const [open, setOpen] = useState(false); + const [expanded, setExpanded] = useState(false); // user-controlled expansion + + // Close modal on Escape key + useEffect(() => { + if (!open) return; + const handleKeyDown = (e) => { + if (e.key === "Escape") { + setOpen(false); + } + }; + window.addEventListener("keydown", handleKeyDown); + return () => window.removeEventListener("keydown", handleKeyDown); + }, [open]); + + return ( + <> + {/* Floating Button: Icon + optional label */} +
+ {expanded && ( + + )} + +
+ + {/* Full-Screen Modal */} +
+ {/* Close Button */} +
+ +
+ + {/* Persistent iframe */} +