UNPKG

@ichigo_san/graphing

Version:

A lightweight UML-style diagram editor built with React Flow and Tailwind CSS

66 lines (65 loc) 2.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _reactflow = require("reactflow"); var _ArchitectureDiagramEditorContent = _interopRequireDefault(require("./ArchitectureDiagramEditorContent")); require("reactflow/dist/style.css"); var _themeStore = _interopRequireDefault(require("../store/themeStore")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } const ArchitectureDiagramEditor = ({ diagram, style = {}, className, mode = 'light', showThemeToggle = false, onToggleMini, showMiniToggle = false }) => { const { theme, setTheme, toggleTheme } = (0, _themeStore.default)(); const [isFullscreen, setIsFullscreen] = (0, _react.useState)(false); (0, _react.useEffect)(() => { setTheme(mode); }, [mode, setTheme]); const combinedStyle = { width: '100%', height: '100%', ...style }; const fullscreenStyle = isFullscreen ? { position: 'fixed', inset: 0, width: '100vw', height: '100vh', zIndex: 1000 } : {}; const modeClass = theme === 'dark' ? 'dark' : ''; const handleToggleTheme = () => toggleTheme(); const toggleFullscreen = () => setIsFullscreen(prev => !prev); const containerStyle = { ...combinedStyle, ...fullscreenStyle }; return /*#__PURE__*/_react.default.createElement("div", { style: containerStyle, className: `graphing ${className || ''}` }, /*#__PURE__*/_react.default.createElement("div", { className: `${modeClass} w-full h-full bg-white dark:bg-gray-900 text-gray-800 dark:text-gray-100 relative transition-colors` }, /*#__PURE__*/_react.default.createElement(_reactflow.ReactFlowProvider, null, /*#__PURE__*/_react.default.createElement(_ArchitectureDiagramEditorContent.default, { initialDiagram: diagram, onToggleTheme: handleToggleTheme, onToggleFullscreen: toggleFullscreen, isFullscreen: isFullscreen, showThemeToggle: showThemeToggle, onToggleMini: onToggleMini, showMiniToggle: showMiniToggle })))); }; var _default = exports.default = ArchitectureDiagramEditor;