{"_id":"@admont-ai/ui","_rev":"10-00dc1135d4bb6d6c2533d1899c00989b","name":"@admont-ai/ui","dist-tags":{"latest":"0.1.12"},"versions":{"0.1.1":{"name":"@admont-ai/ui","version":"0.1.1","keywords":["markdown","wiki","editor","ai","rag","git","react","mdxeditor","tailwindcss","document-management"],"author":{"name":"Christian Fischer"},"license":"MIT","_id":"@admont-ai/ui@0.1.1","maintainers":[{"name":"chfischerx","email":"christian@fischerx.com"}],"homepage":"https://github.com/admont-ai/admont-ai-ui","bugs":{"url":"https://github.com/admont-ai/admont-ai-ui/issues"},"dist":{"shasum":"ef20f4fe51f0002ce4cf8f8c2353ed040f5e9cc7","tarball":"https://registry.npmjs.org/@admont-ai/ui/-/ui-0.1.1.tgz","fileCount":237,"integrity":"sha512-gygTYbrtTI2JpJU0+vT9k4ztyOvr/Fr8X9lyflzPTatupAV4wAvHCRRkh8VQbRd7ssuIbEd5mlHEVrXNi1CayA==","signatures":[{"sig":"MEYCIQDKQca582ekgor2Gq81r9PGyldMlfjA5fJlbHX4q2PxjgIhAJGn9PgacK4BpBzQS4arm4BZ6a91O2XZEmL/Oh+vEKWR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9539555},"type":"module","gitHead":"ec851e02241403ca6b626de4e2ae04aa85fd4ad3","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc -b && vite build","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"chfischerx","email":"christian@fischerx.com"},"repository":{"url":"git+https://github.com/admont-ai/admont-ai-ui.git","type":"git"},"_npmVersion":"10.8.2","description":"Frontend for Admont-AI — a collaborative document platform with Git-backed storage, hybrid search, and AI-powered content tools","directories":{},"_nodeVersion":"20.19.6","dependencies":{"clsx":"^2.1.1","cmdk":"^1.1.1","katex":"^0.16.33","react":"^19.2.0","fabric":"^4.2.0","sonner":"^2.0.7","mermaid":"^11.12.3","prettier":"^3.8.1","radix-ui":"^1.4.3","react-dom":"^19.2.0","remark-gfm":"^4.0.1","next-themes":"^0.4.6","remark-math":"^6.0.0","tailwindcss":"^4.2.1","@types/katex":"^0.16.8","lucide-react":"^0.575.0","mathjax-full":"^3.2.1","rehype-katex":"^7.0.1","@xyflow/react":"^12.10.1","@dagrejs/dagre":"^2.0.4","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tui-color-picker":"^2.2.8","tui-image-editor":"^3.15.3","@mdxeditor/editor":"^3.52.4","@tailwindcss/vite":"^4.2.1","@monaco-editor/react":"^4.7.0","react-resizable-panels":"^4.6.5","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^29.1.1","eslint":"^9.39.1","shadcn":"^3.8.5","vitest":"^4.1.8","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.7","tw-animate-css":"^1.4.0","@types/react-dom":"^19.2.3","typescript-eslint":"^8.48.0","@vitest/coverage-v8":"^4.1.8","@vitejs/plugin-react":"^5.1.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.1_1780633523108_0.38160974869223585","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@admont-ai/ui","version":"0.1.2","keywords":["markdown","wiki","editor","ai","rag","git","react","mdxeditor","tailwindcss","document-management"],"author":{"name":"Christian Fischer"},"license":"MIT","_id":"@admont-ai/ui@0.1.2","maintainers":[{"name":"chfischerx","email":"christian@fischerx.com"}],"homepage":"https://github.com/admont-ai/admont-ai-ui","bugs":{"url":"https://github.com/admont-ai/admont-ai-ui/issues"},"dist":{"shasum":"e6722693a374b1149abed8d027dc416e4693316f","tarball":"https://registry.npmjs.org/@admont-ai/ui/-/ui-0.1.2.tgz","fileCount":237,"integrity":"sha512-OpaRyjLq/rIHqPbSMdzQjQackrXZQnkXYuFehKnhlDTxaMTinJc0dzHSBx5fjBMY91HUgN3MhEI5MAc+E+phyg==","signatures":[{"sig":"MEUCIDfbdiQ6IkJrQmSbBO2EkCt9Z5wWH93H3/LmXXSsuUwfAiEAlw26fvDqEFl2criD+tVlNxCAntaumrVmzpSR+FuRiOg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11100876},"type":"module","gitHead":"c67e675e77261d1bed21dac4f7e291e7750e961f","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc -b && vite build","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"chfischerx","email":"christian@fischerx.com"},"repository":{"url":"git+https://github.com/admont-ai/admont-ai-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Frontend for Admont-AI — a collaborative document platform with Git-backed storage, hybrid search, and AI-powered content tools","directories":{},"_nodeVersion":"22.22.3","dependencies":{"clsx":"^2.1.1","cmdk":"^1.1.1","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz","katex":"^0.16.33","react":"^19.2.0","fabric":"^4.2.0","sonner":"^2.0.7","mermaid":"^11.12.3","prettier":"^3.8.1","radix-ui":"^1.4.3","react-dom":"^19.2.0","remark-gfm":"^4.0.1","next-themes":"^0.4.6","remark-math":"^6.0.0","tailwindcss":"^4.2.1","@types/katex":"^0.16.8","lucide-react":"^0.575.0","mathjax-full":"^3.2.1","rehype-katex":"^7.0.1","@xyflow/react":"^12.10.1","ag-grid-react":"^35.3.1","@dagrejs/dagre":"^2.0.4","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tui-color-picker":"^2.2.8","tui-image-editor":"^3.15.3","@mdxeditor/editor":"^3.52.4","@tailwindcss/vite":"^4.2.1","ag-grid-community":"^35.3.1","@monaco-editor/react":"^4.7.0","react-zoom-pan-pinch":"^4.0.3","react-resizable-panels":"^4.6.5","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^29.1.1","eslint":"^9.39.1","shadcn":"^3.8.5","vitest":"^4.1.8","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.7","tw-animate-css":"^1.4.0","@types/react-dom":"^19.2.3","typescript-eslint":"^8.48.0","@vitest/coverage-v8":"^4.1.8","@vitejs/plugin-react":"^5.1.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.2_1781502138380_0.7426235530131875","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@admont-ai/ui","version":"0.1.3","keywords":["markdown","wiki","editor","ai","rag","git","react","mdxeditor","tailwindcss","document-management"],"author":{"name":"Christian Fischer"},"license":"MIT","_id":"@admont-ai/ui@0.1.3","maintainers":[{"name":"chfischerx","email":"christian@fischerx.com"}],"homepage":"https://github.com/admont-ai/admont-ai-ui","bugs":{"url":"https://github.com/admont-ai/admont-ai-ui/issues"},"dist":{"shasum":"6377d3a453fe74bbd3e828ac1853daa046cd8ead","tarball":"https://registry.npmjs.org/@admont-ai/ui/-/ui-0.1.3.tgz","fileCount":237,"integrity":"sha512-YG1S0c2CIvHBmwVua4TdygMvWB6ldFv94mfuuDzUk2wcpcU/Mlh8ELDXaLMTt7x5AayFt33qgYuXbMtoi/38Ug==","signatures":[{"sig":"MEUCIQDmwHJGFtT+pfCFzxV0sHDxuGKvlrN6PXHHjW9N9BnukwIgaJNE94VDrLGLkobeJ8wVDSehPs7njWQ69WSmwAZ+wRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11133153},"type":"module","gitHead":"0f4fb954f48a8a2d0cbfc2a8d8d1649633c7b0e8","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc -b && vite build","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"chfischerx","email":"christian@fischerx.com"},"repository":{"url":"git+https://github.com/admont-ai/admont-ai-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Frontend for Admont-AI — a collaborative document platform with Git-backed storage, hybrid search, and AI-powered content tools","directories":{},"_nodeVersion":"22.23.2","dependencies":{"clsx":"^2.1.1","cmdk":"^1.1.1","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz","katex":"^0.16.33","react":"^19.2.0","fabric":"^4.2.0","sonner":"^2.0.7","mermaid":"^11.12.3","prettier":"^3.8.1","radix-ui":"^1.4.3","react-dom":"^19.2.0","remark-gfm":"^4.0.1","next-themes":"^0.4.6","remark-math":"^6.0.0","tailwindcss":"^4.2.1","@types/katex":"^0.16.8","lucide-react":"^0.575.0","mathjax-full":"^3.2.1","rehype-katex":"^7.0.1","@xyflow/react":"^12.10.1","ag-grid-react":"^35.3.1","@dagrejs/dagre":"^2.0.4","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tui-color-picker":"^2.2.8","tui-image-editor":"^3.15.3","@mdxeditor/editor":"^3.52.4","@tailwindcss/vite":"^4.2.1","ag-grid-community":"^35.3.1","@monaco-editor/react":"^4.7.0","react-zoom-pan-pinch":"^4.0.3","react-resizable-panels":"^4.6.5","@simplewebauthn/browser":"^13.3.0","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^29.1.1","eslint":"^9.39.1","shadcn":"^3.8.5","vitest":"^4.1.8","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.7","tw-animate-css":"^1.4.0","@types/react-dom":"^19.2.3","typescript-eslint":"^8.48.0","@vitest/coverage-v8":"^4.1.8","@vitejs/plugin-react":"^5.1.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.3_1786608713296_0.6343584075835269","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@admont-ai/ui","version":"0.1.4","keywords":["markdown","wiki","editor","ai","rag","git","react","mdxeditor","tailwindcss","document-management"],"author":{"name":"Christian Fischer"},"license":"MIT","_id":"@admont-ai/ui@0.1.4","maintainers":[{"name":"chfischerx","email":"christian@fischerx.com"}],"homepage":"https://github.com/admont-ai/admont-ai-ui","bugs":{"url":"https://github.com/admont-ai/admont-ai-ui/issues"},"dist":{"shasum":"05e9ee0d652ec905380388ae465d49a57bda5e85","tarball":"https://registry.npmjs.org/@admont-ai/ui/-/ui-0.1.4.tgz","fileCount":238,"integrity":"sha512-6EJ3H6sB31vWW2fIZ8pVEAOzFTY18HAItdUNVD7jt+KZGJPEgcp08erjVmFj7dWqtfUPEmoZ51WMH5+NuABfFA==","signatures":[{"sig":"MEYCIQCguIUmB9Vz3Er2yZHgTL/q/YAd85fkwNTZnUUSthMBJQIhAM0w14o3/EjHmqdDmjGqxcq9bVTEDVyVFW/OWGyRLBN1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11133267},"type":"module","gitHead":"a6f68108894872c6331c9d8799a3afe2b95e9c63","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc -b && vite build","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"chfischerx","email":"christian@fischerx.com"},"repository":{"url":"git+https://github.com/admont-ai/admont-ai-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Frontend for Admont-AI — a collaborative document platform with Git-backed storage, hybrid search, and AI-powered content tools","directories":{},"_nodeVersion":"22.23.2","dependencies":{"clsx":"^2.1.1","cmdk":"^1.1.1","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz","katex":"^0.16.33","react":"^19.2.0","fabric":"^4.2.0","sonner":"^2.0.7","mermaid":"^11.12.3","prettier":"^3.8.1","radix-ui":"^1.4.3","react-dom":"^19.2.0","remark-gfm":"^4.0.1","next-themes":"^0.4.6","remark-math":"^6.0.0","tailwindcss":"^4.2.1","@types/katex":"^0.16.8","lucide-react":"^0.575.0","mathjax-full":"^3.2.1","rehype-katex":"^7.0.1","@xyflow/react":"^12.10.1","ag-grid-react":"^35.3.1","@dagrejs/dagre":"^2.0.4","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tui-color-picker":"^2.2.8","tui-image-editor":"^3.15.3","@mdxeditor/editor":"^3.52.4","@tailwindcss/vite":"^4.2.1","ag-grid-community":"^35.3.1","@monaco-editor/react":"^4.7.0","react-zoom-pan-pinch":"^4.0.3","react-resizable-panels":"^4.6.5","@simplewebauthn/browser":"^13.3.0","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^29.1.1","eslint":"^9.39.1","shadcn":"^3.8.5","vitest":"^4.1.8","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.7","tw-animate-css":"^1.4.0","@types/react-dom":"^19.2.3","typescript-eslint":"^8.48.0","@vitest/coverage-v8":"^4.1.8","@vitejs/plugin-react":"^5.1.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.4_1786929258129_0.03005240331955572","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@admont-ai/ui","version":"0.1.6","keywords":["markdown","wiki","editor","ai","rag","git","react","mdxeditor","tailwindcss","document-management"],"author":{"name":"Christian Fischer"},"license":"MIT","_id":"@admont-ai/ui@0.1.6","maintainers":[{"name":"chfischerx","email":"christian@fischerx.com"}],"homepage":"https://github.com/admont-ai/admont-ai-ui","bugs":{"url":"https://github.com/admont-ai/admont-ai-ui/issues"},"dist":{"shasum":"5d8067ba6ad4056e11c1e3632dc141fdcb65c5de","tarball":"https://registry.npmjs.org/@admont-ai/ui/-/ui-0.1.6.tgz","fileCount":238,"integrity":"sha512-7RK9Sth2gzkXNtJc4ct/71L5iR5xwZkdajVPKkg1uTa3h7MbkIN23UyB4Noh2s6f6OXvQOoQ/H8uT+GwKfm6nA==","signatures":[{"sig":"MEUCIETMNeo6YqEVNSrvxPcqzhQIwu3e/06ECpHt14ndCBjCAiEAg8tIObn2WwVljpBVTW/0pxLHfKbXi3KSNRFsBwkXfc0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11135356},"type":"module","gitHead":"e670a6fe559ef6ffb77079daccfe527c4fed1426","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc -b && vite build","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"chfischerx","email":"christian@fischerx.com"},"repository":{"url":"git+https://github.com/admont-ai/admont-ai-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Frontend for Admont-AI — a collaborative document platform with Git-backed storage, hybrid search, and AI-powered content tools","directories":{},"_nodeVersion":"22.23.2","dependencies":{"clsx":"^2.1.1","cmdk":"^1.1.1","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz","katex":"^0.16.33","react":"^19.2.0","fabric":"^4.2.0","sonner":"^2.0.7","mermaid":"^11.12.3","prettier":"^3.8.1","radix-ui":"^1.4.3","react-dom":"^19.2.0","remark-gfm":"^4.0.1","next-themes":"^0.4.6","remark-math":"^6.0.0","tailwindcss":"^4.2.1","@types/katex":"^0.16.8","lucide-react":"^0.575.0","mathjax-full":"^3.2.1","rehype-katex":"^7.0.1","@xyflow/react":"^12.10.1","ag-grid-react":"^35.3.1","@dagrejs/dagre":"^2.0.4","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tui-color-picker":"^2.2.8","tui-image-editor":"^3.15.3","@mdxeditor/editor":"^3.52.4","@tailwindcss/vite":"^4.2.1","ag-grid-community":"^35.3.1","@monaco-editor/react":"^4.7.0","react-zoom-pan-pinch":"^4.0.3","react-resizable-panels":"^4.6.5","@simplewebauthn/browser":"^13.3.0","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^29.1.1","eslint":"^9.39.1","shadcn":"^3.8.5","vitest":"^4.1.8","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.7","tw-animate-css":"^1.4.0","@types/react-dom":"^19.2.3","typescript-eslint":"^8.48.0","@vitest/coverage-v8":"^4.1.8","@vitejs/plugin-react":"^5.1.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.6_1787098684994_0.22688578710922136","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@admont-ai/ui","version":"0.1.8","keywords":["markdown","wiki","editor","ai","rag","git","react","mdxeditor","tailwindcss","document-management"],"author":{"name":"Christian Fischer"},"license":"MIT","_id":"@admont-ai/ui@0.1.8","maintainers":[{"name":"chfischerx","email":"christian@fischerx.com"}],"homepage":"https://github.com/admont-ai/admont-ai-ui","bugs":{"url":"https://github.com/admont-ai/admont-ai-ui/issues"},"dist":{"shasum":"c93926629e386a47a688efadda7fc3339fc53eb8","tarball":"https://registry.npmjs.org/@admont-ai/ui/-/ui-0.1.8.tgz","fileCount":238,"integrity":"sha512-Fu/TvB3O8ZAGOIceEsN+z4k25wlJiZ9hkKrgBQqJaKPkNORMX8csxjCoWhfSxL3gawr56YbSPKUHlADUnGHTwg==","signatures":[{"sig":"MEUCIQCDU21kEi9N3PhuUbP7bMwnRIMpp265czySh+9VoaozkwIgb11c54iJsABYBkdKemFApJ85MR8AyyHEfVZy+u3tDbY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11135727},"type":"module","gitHead":"a60b79003b4e5694ad987aaaa3ce346fb34ba78d","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc -b && vite build","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"chfischerx","email":"christian@fischerx.com"},"repository":{"url":"git+https://github.com/admont-ai/admont-ai-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Frontend for Admont-AI — a collaborative document platform with Git-backed storage, hybrid search, and AI-powered content tools","directories":{},"_nodeVersion":"22.23.2","dependencies":{"clsx":"^2.1.1","cmdk":"^1.1.1","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz","katex":"^0.16.33","react":"^19.2.0","fabric":"^4.2.0","sonner":"^2.0.7","mermaid":"^11.12.3","prettier":"^3.8.1","radix-ui":"^1.4.3","react-dom":"^19.2.0","remark-gfm":"^4.0.1","next-themes":"^0.4.6","remark-math":"^6.0.0","tailwindcss":"^4.2.1","@types/katex":"^0.16.8","lucide-react":"^0.575.0","mathjax-full":"^3.2.1","rehype-katex":"^7.0.1","@xyflow/react":"^12.10.1","ag-grid-react":"^35.3.1","@dagrejs/dagre":"^2.0.4","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tui-color-picker":"^2.2.8","tui-image-editor":"^3.15.3","@mdxeditor/editor":"^3.52.4","@tailwindcss/vite":"^4.2.1","ag-grid-community":"^35.3.1","@monaco-editor/react":"^4.7.0","react-zoom-pan-pinch":"^4.0.3","react-resizable-panels":"^4.6.5","@simplewebauthn/browser":"^13.3.0","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^29.1.1","eslint":"^9.39.1","shadcn":"^3.8.5","vitest":"^4.1.8","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.7","tw-animate-css":"^1.4.0","@types/react-dom":"^19.2.3","typescript-eslint":"^8.48.0","@vitest/coverage-v8":"^4.1.8","@vitejs/plugin-react":"^5.1.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.8_1787213105105_0.6804980471179527","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@admont-ai/ui","version":"0.1.9","keywords":["markdown","wiki","editor","ai","rag","git","react","mdxeditor","tailwindcss","document-management"],"author":{"name":"Christian Fischer"},"license":"MIT","_id":"@admont-ai/ui@0.1.9","maintainers":[{"name":"chfischerx","email":"christian@fischerx.com"}],"homepage":"https://github.com/admont-ai/admont-ai-ui","bugs":{"url":"https://github.com/admont-ai/admont-ai-ui/issues"},"dist":{"shasum":"c5716dd236288267b11061d329b373c0b673c7b4","tarball":"https://registry.npmjs.org/@admont-ai/ui/-/ui-0.1.9.tgz","fileCount":238,"integrity":"sha512-pAUy9ie8m+tPOXvBqKdht9yFTUX/tnxYJ6Ixef2L3evqFoP4tT04VBE8qW7oZvq3JN4LYp10wCoI/q9RO46KtQ==","signatures":[{"sig":"MEUCIQDQWPadkoGvEPw7Ju4ctuRBr2UHdLUTPTaYCe/RSfuiYQIgaP1KyMS9TE+DHqqTJQ93q6vvFMtuBqlN/3wmWUOp124=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11137974},"type":"module","gitHead":"18367eafbca42e391d65c4fe8b6df3a7fd565094","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc -b && vite build","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"chfischerx","email":"christian@fischerx.com"},"repository":{"url":"git+https://github.com/admont-ai/admont-ai-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Frontend for Admont-AI — a collaborative document platform with Git-backed storage, hybrid search, and AI-powered content tools","directories":{},"_nodeVersion":"22.23.2","dependencies":{"clsx":"^2.1.1","cmdk":"^1.1.1","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz","katex":"^0.16.33","react":"^19.2.0","fabric":"^4.2.0","sonner":"^2.0.7","mermaid":"^11.12.3","prettier":"^3.8.1","radix-ui":"^1.4.3","react-dom":"^19.2.0","remark-gfm":"^4.0.1","next-themes":"^0.4.6","remark-math":"^6.0.0","tailwindcss":"^4.2.1","@types/katex":"^0.16.8","lucide-react":"^0.575.0","mathjax-full":"^3.2.1","rehype-katex":"^7.0.1","@xyflow/react":"^12.10.1","ag-grid-react":"^35.3.1","@dagrejs/dagre":"^2.0.4","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tui-color-picker":"^2.2.8","tui-image-editor":"^3.15.3","@mdxeditor/editor":"^3.52.4","@tailwindcss/vite":"^4.2.1","ag-grid-community":"^35.3.1","@monaco-editor/react":"^4.7.0","react-zoom-pan-pinch":"^4.0.3","react-resizable-panels":"^4.6.5","@simplewebauthn/browser":"^13.3.0","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^29.1.1","eslint":"^9.39.1","shadcn":"^3.8.5","vitest":"^4.1.8","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.7","tw-animate-css":"^1.4.0","@types/react-dom":"^19.2.3","typescript-eslint":"^8.48.0","@vitest/coverage-v8":"^4.1.8","@vitejs/plugin-react":"^5.1.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.9_1787367534146_0.051239082263103475","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@admont-ai/ui","version":"0.1.10","keywords":["markdown","wiki","editor","ai","rag","git","react","mdxeditor","tailwindcss","document-management"],"author":{"name":"Christian Fischer"},"license":"MIT","_id":"@admont-ai/ui@0.1.10","maintainers":[{"name":"chfischerx","email":"christian@fischerx.com"}],"homepage":"https://github.com/admont-ai/admont-ai-ui","bugs":{"url":"https://github.com/admont-ai/admont-ai-ui/issues"},"dist":{"shasum":"191f46707af06f42cf90dff90a9b047903f3755a","tarball":"https://registry.npmjs.org/@admont-ai/ui/-/ui-0.1.10.tgz","fileCount":307,"integrity":"sha512-lrz/DjdNcHq+3uYtpJuDjPx/L8Z+cyNRv0hUNchVB6RxXOfvnLuqSsdq2Hxn2HHKv7q1Viu/+GdM8rUrmDJ6Bg==","signatures":[{"sig":"MEUCIAzIFKOyc13c6CqVoNYsvLqHdZgDwyfBNEyvkcxUBhpmAiEA2r5PY6V4NuoVRIR4St7A+LANBM4yh/RyhlUgbiNfTIw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15556034},"type":"module","gitHead":"3799d44587f3afdc22e95b738e38ae02431ef925","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc -b && vite build","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"chfischerx","email":"christian@fischerx.com"},"repository":{"url":"git+https://github.com/admont-ai/admont-ai-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Frontend for Admont-AI — a collaborative document platform with Git-backed storage, hybrid search, and AI-powered content tools","directories":{},"_nodeVersion":"22.23.2","dependencies":{"clsx":"^2.1.1","cmdk":"^1.1.1","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz","katex":"^0.16.33","react":"^19.2.0","fabric":"^4.2.0","sonner":"^2.0.7","mermaid":"^11.12.3","prettier":"^3.8.1","radix-ui":"^1.4.3","react-dom":"^19.2.0","remark-gfm":"^4.0.1","next-themes":"^0.4.6","remark-math":"^6.0.0","tailwindcss":"^4.2.1","@types/katex":"^0.16.8","lucide-react":"^0.575.0","mathjax-full":"^3.2.1","rehype-katex":"^7.0.1","@xyflow/react":"^12.10.1","ag-grid-react":"^35.3.1","@dagrejs/dagre":"^2.0.4","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tui-color-picker":"^2.2.8","tui-image-editor":"^3.15.3","@mdxeditor/editor":"^3.52.4","@tailwindcss/vite":"^4.2.1","ag-grid-community":"^35.3.1","@monaco-editor/react":"^4.7.0","react-zoom-pan-pinch":"^4.0.3","@excalidraw/excalidraw":"^0.18.1","react-resizable-panels":"^4.6.5","@simplewebauthn/browser":"^13.3.0","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^29.1.1","eslint":"^9.39.1","shadcn":"^3.8.5","vitest":"^4.1.8","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.7","tw-animate-css":"^1.4.0","@types/react-dom":"^19.2.3","typescript-eslint":"^8.48.0","@vitest/coverage-v8":"^4.1.8","@vitejs/plugin-react":"^5.1.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.10_1787806883479_0.29187975984938186","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@admont-ai/ui","version":"0.1.11","keywords":["markdown","wiki","editor","ai","rag","git","react","mdxeditor","tailwindcss","document-management"],"author":{"name":"Christian Fischer"},"license":"MIT","_id":"@admont-ai/ui@0.1.11","maintainers":[{"name":"chfischerx","email":"christian@fischerx.com"}],"homepage":"https://github.com/admont-ai/admont-ai-ui","bugs":{"url":"https://github.com/admont-ai/admont-ai-ui/issues"},"dist":{"shasum":"c68ad029dac0dfc84b1538843a5e1db5c6baa00e","tarball":"https://registry.npmjs.org/@admont-ai/ui/-/ui-0.1.11.tgz","fileCount":307,"integrity":"sha512-8GOJxL/bBJxu4nny62hPW5OB9YWMyFEHyOzJUR4tL0Zd3DEsKoVgIkU7XhFerxQ37wAcvmWgJ5am0a3hB3FlnQ==","signatures":[{"sig":"MEQCIGXXnedLIO2fbZxPBDKOOB/hR2o9ok7Cc7O5fM2CdxPfAiAEp2T0ddLpabKJrbinnZTXunYOv4O8F0q3YeEhJoR3lA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15556034},"type":"module","gitHead":"440a4779fb772d2814b919f9fa02fd1b3725ccf7","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc -b && vite build","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"chfischerx","email":"christian@fischerx.com"},"repository":{"url":"git+https://github.com/admont-ai/admont-ai-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Frontend for Admont-AI — a collaborative document platform with Git-backed storage, hybrid search, and AI-powered content tools","directories":{},"_nodeVersion":"22.23.2","dependencies":{"clsx":"^2.1.1","cmdk":"^1.1.1","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz","katex":"^0.16.33","react":"^19.2.0","fabric":"^4.2.0","sonner":"^2.0.7","mermaid":"^11.12.3","prettier":"^3.8.1","radix-ui":"^1.4.3","react-dom":"^19.2.0","remark-gfm":"^4.0.1","next-themes":"^0.4.6","remark-math":"^6.0.0","tailwindcss":"^4.2.1","@types/katex":"^0.16.8","lucide-react":"^0.575.0","mathjax-full":"^3.2.1","rehype-katex":"^7.0.1","@xyflow/react":"^12.10.1","ag-grid-react":"^35.3.1","@dagrejs/dagre":"^2.0.4","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tui-color-picker":"^2.2.8","tui-image-editor":"^3.15.3","@mdxeditor/editor":"^3.52.4","@tailwindcss/vite":"^4.2.1","ag-grid-community":"^35.3.1","@monaco-editor/react":"^4.7.0","react-zoom-pan-pinch":"^4.0.3","@excalidraw/excalidraw":"^0.18.1","react-resizable-panels":"^4.6.5","@simplewebauthn/browser":"^13.3.0","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^29.1.1","eslint":"^9.39.1","shadcn":"^3.8.5","vitest":"^4.1.8","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.7","tw-animate-css":"^1.4.0","@types/react-dom":"^19.2.3","typescript-eslint":"^8.48.0","@vitest/coverage-v8":"^4.1.8","@vitejs/plugin-react":"^5.1.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.11_1787807833759_0.1778477951114088","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@admont-ai/ui","version":"0.1.12","description":"Frontend for Admont-AI — a collaborative document platform with Git-backed storage, hybrid search, and AI-powered content tools","type":"module","license":"MIT","author":{"name":"Christian Fischer"},"repository":{"type":"git","url":"git+https://github.com/admont-ai/admont-ai-ui.git"},"homepage":"https://github.com/admont-ai/admont-ai-ui","bugs":{"url":"https://github.com/admont-ai/admont-ai-ui/issues"},"keywords":["markdown","wiki","editor","ai","rag","git","react","mdxeditor","tailwindcss","document-management"],"publishConfig":{"access":"public"},"scripts":{"dev":"vite","build":"tsc -b && vite build","lint":"eslint .","test":"vitest run","preview":"vite preview","prepublishOnly":"npm run build"},"dependencies":{"@dagrejs/dagre":"^2.0.4","@excalidraw/excalidraw":"^0.18.1","@mdxeditor/editor":"^3.52.4","@monaco-editor/react":"^4.7.0","@simplewebauthn/browser":"^13.3.0","@tailwindcss/typography":"^0.5.19","@tailwindcss/vite":"^4.2.1","@types/katex":"^0.16.8","@xyflow/react":"^12.10.1","ag-grid-community":"^35.3.1","ag-grid-react":"^35.3.1","class-variance-authority":"^0.7.1","clsx":"^2.1.1","cmdk":"^1.1.1","fabric":"^4.2.0","katex":"^0.16.33","lucide-react":"^0.575.0","mathjax-full":"^3.2.1","mermaid":"^11.12.3","next-themes":"^0.4.6","prettier":"^3.8.1","radix-ui":"^1.4.3","react":"^19.2.0","react-dom":"^19.2.0","react-markdown":"^10.1.0","react-resizable-panels":"^4.6.5","react-zoom-pan-pinch":"^4.0.3","rehype-katex":"^7.0.1","remark-gfm":"^4.0.1","remark-math":"^6.0.0","sonner":"^2.0.7","tailwind-merge":"^3.5.0","tailwindcss":"^4.2.1","tui-color-picker":"^2.2.8","tui-image-editor":"^3.15.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"},"devDependencies":{"@eslint/js":"^9.39.1","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/node":"^24.10.1","@types/react":"^19.2.7","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^5.1.1","@vitest/coverage-v8":"^4.1.8","eslint":"^9.39.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24","globals":"^16.5.0","jsdom":"^29.1.1","shadcn":"^3.8.5","tw-animate-css":"^1.4.0","typescript":"~5.9.3","typescript-eslint":"^8.48.0","vite":"^7.3.1","vitest":"^4.1.8"},"_id":"@admont-ai/ui@0.1.12","gitHead":"bfad5dd36ea48bcf67dade1c5e050cb74df8b0e0","_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-5iGmxA1dPZfaqKYsMbrD2P45LuaQjhUgGXpIVNqb0yiDI5xGGmMu+RBnWfiGhVYml/MU8eaHY4xInNJ8TVzAmw==","shasum":"4aaaea39b3960789137226e195f6458556c6df0f","tarball":"https://registry.npmjs.org/@admont-ai/ui/-/ui-0.1.12.tgz","fileCount":307,"unpackedSize":15556006,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDiBoPpTYLfIFgcur7DsSgWLX15w2oT1UUQU7oL5JT4MwIhAKdT8qepeievdc8QbH2SvABF9RUYZk53xvPxwjDqRyvA"}]},"_npmUser":{"name":"chfischerx","email":"christian@fischerx.com"},"directories":{},"maintainers":[{"name":"chfischerx","email":"christian@fischerx.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ui_0.1.12_1787881250210_0.33586284050267756"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-05T04:25:22.933Z","modified":"2026-08-28T01:40:50.693Z","0.1.1":"2026-06-05T04:25:23.393Z","0.1.2":"2026-06-15T05:42:18.607Z","0.1.3":"2026-08-13T08:11:53.515Z","0.1.4":"2026-08-17T01:14:18.385Z","0.1.6":"2026-08-19T00:18:05.261Z","0.1.8":"2026-08-20T08:05:05.368Z","0.1.9":"2026-08-22T02:58:54.414Z","0.1.10":"2026-08-27T05:01:23.752Z","0.1.11":"2026-08-27T05:17:14.037Z","0.1.12":"2026-08-28T01:40:50.487Z"},"bugs":{"url":"https://github.com/admont-ai/admont-ai-ui/issues"},"author":{"name":"Christian Fischer"},"license":"MIT","homepage":"https://github.com/admont-ai/admont-ai-ui","keywords":["markdown","wiki","editor","ai","rag","git","react","mdxeditor","tailwindcss","document-management"],"repository":{"type":"git","url":"git+https://github.com/admont-ai/admont-ai-ui.git"},"description":"Frontend for Admont-AI — a collaborative document platform with Git-backed storage, hybrid search, and AI-powered content tools","maintainers":[{"name":"chfischerx","email":"christian@fischerx.com"}],"readme":"# admont-ai-ui\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178c6.svg)](https://www.typescriptlang.org)\n[![React](https://img.shields.io/badge/React-19-61dafb.svg)](https://react.dev)\n[![Vite](https://img.shields.io/badge/Vite-7-646cff.svg)](https://vite.dev)\n[![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-v4-38bdf8.svg)](https://tailwindcss.com)\n\nThe frontend for [Admont-AI](https://github.com/christianfischer/admont-ai) — a collaborative document platform with Git-backed storage, hybrid search, and AI-powered content tools.\n\nBuilt with React 19, TypeScript, Vite, Tailwind CSS v4, and shadcn/ui.\n\n## Features\n\n- **WYSIWYG Markdown Editor** — Rich editing with MDXEditor (Lexical-based): tables, code blocks, math (KaTeX), embedded media, and live preview\n- **Multi-Format Support** — Markdown, Mermaid diagrams, Draw.io diagrams, LaTeX, images, video, and plain text\n- **File Tree Sidebar** — Drag-and-drop file and folder management with multi-select and custom ordering\n- **Draft Workflow** — Auto-saving drafts with three-way merge on publish\n- **Hybrid Search** — Full-text, semantic, and combined search across all repositories\n- **AI Assistant** — Ask questions (RAG), generate content, and polish text with multi-turn conversations and model selection\n- **Version History** — View commit history, compare diffs, and restore previous versions\n- **Permission Management** — Granular file and folder access control with group support\n- **Admin Panel** — Manage users, groups, repositories, auth providers, LLM providers, and search engines\n\n## Prerequisites\n\n- **Node.js 22+**\n- **admont-ai-api** running on `localhost:8080` (or configure the proxy target)\n\n## Getting Started\n\n```sh\nnpm install\nnpm run dev\n```\n\nThe dev server starts on `http://localhost:5174` and proxies API requests to the backend.\n\n## Development\n\n```sh\nnpm run dev       # Start dev server with HMR\nnpm run build     # Type-check and build for production\nnpm run lint      # Run ESLint\nnpm run preview   # Preview production build\n```\n\n### API Proxy\n\nThe Vite dev server proxies these paths to `http://localhost:8080`:\n\n| Path | Description |\n|------|-------------|\n| `/auth/*` | OAuth login flow |\n| `/login`, `/consent` | Internal auth |\n| `/me` | User info and permissions |\n| `/admin` | Admin endpoints |\n| `/llm` | LLM model listing and actions |\n| `/checker` | Grammar and spelling checker |\n| `/conversations` | AI conversation persistence |\n| `/repos` | Repository, file, search, and RAG endpoints |\n\n### Authentication\n\nThe app supports multiple OAuth providers (Google, GitHub, Okta, Azure AD, and more) configured on the backend. After authenticating, a JWT is stored in `localStorage` and attached as a `Bearer` token to all API requests. Sessions persist across page reloads until the token expires (24 hours), at which point the user is automatically logged out.\n\n## Production Build\n\n```sh\nnpm run build\n```\n\nOutput is written to `dist/`. The production web server must serve `index.html` for all paths that don't match a static file (SPA routing).\n\n**Nginx example:**\n\n```nginx\nlocation / {\n    try_files $uri $uri/ /index.html;\n}\n```\n\n## Docker\n\nA production image is published to Docker Hub as [`chfischerx/admont-ai-ui`](https://hub.docker.com/r/chfischerx/admont-ai-ui) — a multi-stage build that serves the static `dist/` output via nginx with SPA fallback routing.\n\n```sh\ndocker run -d -p 8080:80 chfischerx/admont-ai-ui:latest\n```\n\n### Environment Variables\n\nSince this is a static SPA, environment variables can't be read at runtime the normal way — Vite bakes `VITE_*` vars into the JS bundle at build time. To let one image be reused across environments, the container instead regenerates a small `/config.js` file from these variables **at startup** (via `docker-entrypoint.d/20-generate-config.sh`), which the app reads before anything else loads.\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `API_BASE_URL` | Origin of the API the SPA talks to (e.g. `https://api.example.com`). Leave unset for relative paths, e.g. when the SPA and API share an origin behind a reverse proxy. | *(empty)* |\n\n```sh\ndocker run -d -p 8080:80 -e API_BASE_URL=https://api.example.com chfischerx/admont-ai-ui:latest\n```\n\n### Building locally\n\n```sh\ndocker build -t admont-ai-ui .\ndocker run -d -p 8080:80 admont-ai-ui\n```\n\n## Releasing\n\nPublishing a new version to npm is automated by GitHub Actions ([`.github/workflows/publish.yml`](.github/workflows/publish.yml)) and triggered by pushing a `v*.*.*` tag whose version matches `package.json`.\n\n```sh\nnpm version patch   # bumps package.json + creates the matching git tag (use minor/major as needed)\ngit push --follow-tags\n```\n\nThe tag push runs lint + build and publishes `@admont-ai/ui` to npm.\n\n## Tech Stack\n\n| Technology | Purpose |\n|-----------|---------|\n| [React 19](https://react.dev) | UI framework |\n| [TypeScript 5.9](https://www.typescriptlang.org) | Type safety |\n| [Vite 7](https://vite.dev) | Build tool and dev server |\n| [Tailwind CSS v4](https://tailwindcss.com) | Styling |\n| [shadcn/ui](https://ui.shadcn.com) | Component library (Radix UI primitives) |\n| [MDXEditor](https://mdxeditor.dev) | WYSIWYG markdown editor (Lexical-based) |\n| [Monaco Editor](https://microsoft.github.io/monaco-editor) | Code and plain text editing |\n| [React Flow](https://reactflow.dev) | Mermaid diagram visual editor |\n\n## Project Structure\n\n```\nsrc/\n├── App.tsx           # Root component (auth + layout providers)\n├── main.tsx          # Entry point\n├── index.css         # Tailwind v4 theme tokens + global styles\n├── types.ts          # Shared TypeScript types\n├── components/\n│   ├── auth/             # Login, signup, passkeys, TOTP/OTP\n│   ├── layout/           # Page-level UI: editors, sidebar, header, dialogs, panels\n│   ├── mermaid-editor/   # Visual Mermaid diagram editor (nodes, edges, panels, adapters)\n│   └── ui/               # shadcn/ui base components\n├── contexts/         # React context providers (auth)\n├── hooks/            # Custom hooks (document state, autosave, AI, permissions)\n├── lib/              # Utilities (auth-fetch, Monaco config/theme, PDF export, password policy)\n└── plugins/          # MDXEditor plugins (math, video)\n```\n\n## License\n\nThis project is licensed under the MIT License — see the [LICENSE](LICENSE) file for details.\n","readmeFilename":"README.md"}