slideforge-studio 0.1.0__py3-none-any.whl
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.
- slideforge/__init__.py +3 -0
- slideforge/__main__.py +3 -0
- slideforge/bridge/__init__.py +5 -0
- slideforge/bridge/core_logic.py +275 -0
- slideforge/bridge/llm_utils.py +178 -0
- slideforge/bridge/pdf_bridge.py +1367 -0
- slideforge/bridge/pdf_text_extractor.py +444 -0
- slideforge/bridge/pptx_animations.py +290 -0
- slideforge/bridge/pptx_exporter.py +1649 -0
- slideforge/bridge/processors.py +386 -0
- slideforge/bridge/standalone_pdf2ppt/__init__.py +23 -0
- slideforge/bridge/standalone_pdf2ppt/core.py +402 -0
- slideforge/bridge/text_utils.py +306 -0
- slideforge/bridge/utils.py +127 -0
- slideforge/bridge/vision.py +313 -0
- slideforge/desktop/__init__.py +1 -0
- slideforge/desktop/app.py +345 -0
- slideforge/desktop/logformat.py +14 -0
- slideforge/desktop/middleware.py +73 -0
- slideforge/desktop/paths.py +27 -0
- slideforge/desktop/qt_support.py +200 -0
- slideforge/desktop/settings.py +176 -0
- slideforge/desktop/share_tunnel.py +219 -0
- slideforge/desktop/urls.py +25 -0
- slideforge/desktop/views.py +41 -0
- slideforge/desktop/wsgi.py +7 -0
- slideforge/frontend/animation-demo.html +877 -0
- slideforge/frontend/assets/favicon.png +0 -0
- slideforge/frontend/assets/favicon.svg +23 -0
- slideforge/frontend/assets/favicon_icon.png +0 -0
- slideforge/frontend/assets/offline/entry-hero-office.jpg +0 -0
- slideforge/frontend/css/base.css +438 -0
- slideforge/frontend/css/components.css +4115 -0
- slideforge/frontend/css/dark-mode.css +1010 -0
- slideforge/frontend/css/layout.css +4573 -0
- slideforge/frontend/css/properties.css +2007 -0
- slideforge/frontend/css/start-screen.css +711 -0
- slideforge/frontend/css/styles.css +9 -0
- slideforge/frontend/index.html +1395 -0
- slideforge/frontend/js/animations/animation-auto-animate.js +456 -0
- slideforge/frontend/js/animations/animation-engine.js +2132 -0
- slideforge/frontend/js/animations/animation-export.js +764 -0
- slideforge/frontend/js/animations/animation-integration-examples.js +460 -0
- slideforge/frontend/js/animations/animation-interaction.js +335 -0
- slideforge/frontend/js/animations/animation-presets.js +913 -0
- slideforge/frontend/js/animations/animation-state.js +364 -0
- slideforge/frontend/js/animations/animation-utils.js +322 -0
- slideforge/frontend/js/annotation/ai/AnnotationAiActions.js +12 -0
- slideforge/frontend/js/annotation/engine/AnnotationEngine.js +12 -0
- slideforge/frontend/js/annotation/engine/AnnotationGeometry.js +15 -0
- slideforge/frontend/js/annotation/engine/AnnotationHistory.js +1 -0
- slideforge/frontend/js/annotation/engine/AnnotationHitTest.js +11 -0
- slideforge/frontend/js/annotation/engine/AnnotationSerializer.js +109 -0
- slideforge/frontend/js/annotation/engine/AnnotationState.js +8 -0
- slideforge/frontend/js/annotation/export/AnnotationPdfExporter.js +3 -0
- slideforge/frontend/js/annotation/export/AnnotationPngExporter.js +3 -0
- slideforge/frontend/js/annotation/export/AnnotationSvgExporter.js +1 -0
- slideforge/frontend/js/annotation/interactions/KeyboardController.js +9 -0
- slideforge/frontend/js/annotation/interactions/PointerController.js +1 -0
- slideforge/frontend/js/annotation/interactions/RadialMenuController.js +1 -0
- slideforge/frontend/js/annotation/interactions/SelectionController.js +5 -0
- slideforge/frontend/js/annotation/interactions/SnapController.js +11 -0
- slideforge/frontend/js/annotation/objects/objectFactory.js +51 -0
- slideforge/frontend/js/annotation/objects/objectMigrators.js +204 -0
- slideforge/frontend/js/annotation/objects/objectTypes.js +79 -0
- slideforge/frontend/js/annotation/presentation/LaserPointer.js +11 -0
- slideforge/frontend/js/annotation/presentation/PresenterAnnotationLayer.js +13 -0
- slideforge/frontend/js/annotation/presentation/SpotlightTool.js +5 -0
- slideforge/frontend/js/annotation/presentation/StrokePlayback.js +9 -0
- slideforge/frontend/js/annotation/renderers/CanvasLiveRenderer.js +12 -0
- slideforge/frontend/js/annotation/renderers/ExportRenderer.js +28 -0
- slideforge/frontend/js/annotation/renderers/HitTestRenderer.js +5 -0
- slideforge/frontend/js/annotation/renderers/SvgStaticRenderer.js +130 -0
- slideforge/frontend/js/annotation/tools/ArrowTool.js +1 -0
- slideforge/frontend/js/annotation/tools/CalloutTool.js +1 -0
- slideforge/frontend/js/annotation/tools/EquationMarkerTool.js +1 -0
- slideforge/frontend/js/annotation/tools/EraserTool.js +1 -0
- slideforge/frontend/js/annotation/tools/HighlighterTool.js +1 -0
- slideforge/frontend/js/annotation/tools/LassoTool.js +1 -0
- slideforge/frontend/js/annotation/tools/MoleculeHighlightTool.js +1 -0
- slideforge/frontend/js/annotation/tools/PathwayArrowTool.js +1 -0
- slideforge/frontend/js/annotation/tools/PenTool.js +1 -0
- slideforge/frontend/js/core/commands/ai-cleanup.js +298 -0
- slideforge/frontend/js/core/commands/align.js +132 -0
- slideforge/frontend/js/core/commands/bridge-elements.js +151 -0
- slideforge/frontend/js/core/commands/bridge-import.js +164 -0
- slideforge/frontend/js/core/commands/bridge-planning.js +156 -0
- slideforge/frontend/js/core/commands/bridge-slides.js +572 -0
- slideforge/frontend/js/core/commands/bridge-text.js +311 -0
- slideforge/frontend/js/core/commands/clipboard.js +508 -0
- slideforge/frontend/js/core/commands/command-palette.js +249 -0
- slideforge/frontend/js/core/commands/drawing.js +388 -0
- slideforge/frontend/js/core/commands/elements.js +455 -0
- slideforge/frontend/js/core/commands/export-import.js +153 -0
- slideforge/frontend/js/core/commands/file-insert.js +660 -0
- slideforge/frontend/js/core/commands/history.js +67 -0
- slideforge/frontend/js/core/commands/init.js +29 -0
- slideforge/frontend/js/core/commands/play-mode.js +281 -0
- slideforge/frontend/js/core/commands/presentation-animations.js +465 -0
- slideforge/frontend/js/core/commands/presentation-tools.js +605 -0
- slideforge/frontend/js/core/commands/presentation-viewport.js +128 -0
- slideforge/frontend/js/core/commands/presenter-view.js +282 -0
- slideforge/frontend/js/core/commands/slide-background.js +125 -0
- slideforge/frontend/js/core/commands/slides.js +148 -0
- slideforge/frontend/js/core/keyboard.js +302 -0
- slideforge/frontend/js/core/main.js +1056 -0
- slideforge/frontend/js/core/pageSetup.js +438 -0
- slideforge/frontend/js/core/state.js +2444 -0
- slideforge/frontend/js/core/workspace.js +288 -0
- slideforge/frontend/js/drawing/DrawingEngine.js +1162 -0
- slideforge/frontend/js/drawing/ExportManager.js +212 -0
- slideforge/frontend/js/drawing/HistoryManager.js +38 -0
- slideforge/frontend/js/drawing/PathSimplifier.js +36 -0
- slideforge/frontend/js/drawing/RoughRenderer.js +507 -0
- slideforge/frontend/js/drawing/StrokeRenderer.js +103 -0
- slideforge/frontend/js/drawing/loader.js +1059 -0
- slideforge/frontend/js/editor/background-3d-integration.js +467 -0
- slideforge/frontend/js/editor/background-3d.js +785 -0
- slideforge/frontend/js/editor/components.js +325 -0
- slideforge/frontend/js/editor/contextMenu.js +154 -0
- slideforge/frontend/js/editor/crop.js +334 -0
- slideforge/frontend/js/editor/interact.js +832 -0
- slideforge/frontend/js/editor/masterSlides.js +313 -0
- slideforge/frontend/js/editor/preset-optimizer.js +298 -0
- slideforge/frontend/js/editor/render/chart-config.js +157 -0
- slideforge/frontend/js/editor/render/connectors.js +621 -0
- slideforge/frontend/js/editor/render/element-media.js +456 -0
- slideforge/frontend/js/editor/render/element-text.js +650 -0
- slideforge/frontend/js/editor/render/elements.js +695 -0
- slideforge/frontend/js/editor/render/init.js +47 -0
- slideforge/frontend/js/editor/render/media-sync.js +318 -0
- slideforge/frontend/js/editor/render/pdf.js +307 -0
- slideforge/frontend/js/editor/render/shape-catalog.js +87 -0
- slideforge/frontend/js/editor/render/shapes.js +389 -0
- slideforge/frontend/js/editor/render/slide-previews.js +398 -0
- slideforge/frontend/js/editor/render/slides.js +302 -0
- slideforge/frontend/js/editor/render/structured-editor.js +932 -0
- slideforge/frontend/js/editor/render/tables.js +461 -0
- slideforge/frontend/js/editor/render/theme-motion.js +862 -0
- slideforge/frontend/js/editor/render/whiteboard-layer.js +200 -0
- slideforge/frontend/js/editor/slide-presets/apply.js +277 -0
- slideforge/frontend/js/editor/slide-presets/catalog.js +1036 -0
- slideforge/frontend/js/editor/slide-presets/export.js +468 -0
- slideforge/frontend/js/editor/slide-presets/helpers.js +287 -0
- slideforge/frontend/js/editor/slide-presets/init.js +19 -0
- slideforge/frontend/js/editor/slide-presets/metadata.js +406 -0
- slideforge/frontend/js/editor/slide-presets/modern-helpers.js +236 -0
- slideforge/frontend/js/editor/slide-presets/modern.js +763 -0
- slideforge/frontend/js/editor/slide-presets/palette-ui.js +156 -0
- slideforge/frontend/js/editor/slide-presets/professional.js +469 -0
- slideforge/frontend/js/editor/slide-presets/science-helpers.js +309 -0
- slideforge/frontend/js/editor/slide-presets/science.js +989 -0
- slideforge/frontend/js/editor/theme-optimizer.js +289 -0
- slideforge/frontend/js/editor/themes.js +1187 -0
- slideforge/frontend/js/editor/zoom.js +402 -0
- slideforge/frontend/js/embeds/htmlEmbed.js +419 -0
- slideforge/frontend/js/embeds/moleculeEmbed.js +1204 -0
- slideforge/frontend/js/export/equation-image.js +162 -0
- slideforge/frontend/js/export/export.js +3476 -0
- slideforge/frontend/js/export/importPptx.js +791 -0
- slideforge/frontend/js/graph/ai/GraphAiActions.js +40 -0
- slideforge/frontend/js/graph/ai/GraphNarrativeBuilder.js +11 -0
- slideforge/frontend/js/graph/ai/GraphSimplifier.js +5 -0
- slideforge/frontend/js/graph/ai/MethodsTextToWorkflow.js +7 -0
- slideforge/frontend/js/graph/ai/PromptToGraph.js +26 -0
- slideforge/frontend/js/graph/animation/GraphAnimationPresets.js +7 -0
- slideforge/frontend/js/graph/animation/GraphFocusEngine.js +11 -0
- slideforge/frontend/js/graph/animation/GraphPlaybackEngine.js +13 -0
- slideforge/frontend/js/graph/animation/GraphTimeline.js +11 -0
- slideforge/frontend/js/graph/core/GraphController.js +15 -0
- slideforge/frontend/js/graph/core/GraphDocument.js +2 -0
- slideforge/frontend/js/graph/core/GraphHistory.js +20 -0
- slideforge/frontend/js/graph/core/GraphScene.js +21 -0
- slideforge/frontend/js/graph/core/GraphSelection.js +5 -0
- slideforge/frontend/js/graph/core/GraphStore.js +16 -0
- slideforge/frontend/js/graph/exporters/GraphPdfExporter.js +3 -0
- slideforge/frontend/js/graph/exporters/GraphPptxExporter.js +3 -0
- slideforge/frontend/js/graph/exporters/GraphSvgExporter.js +19 -0
- slideforge/frontend/js/graph/exporters/GraphVideoExporter.js +3 -0
- slideforge/frontend/js/graph/interactions/ConnectorController.js +6 -0
- slideforge/frontend/js/graph/interactions/ContextMenu.js +10 -0
- slideforge/frontend/js/graph/interactions/GraphSearch.js +7 -0
- slideforge/frontend/js/graph/interactions/InlineEditor.js +1 -0
- slideforge/frontend/js/graph/interactions/KeyboardController.js +8 -0
- slideforge/frontend/js/graph/interactions/PointerController.js +1 -0
- slideforge/frontend/js/graph/interactions/SnapController.js +8 -0
- slideforge/frontend/js/graph/layouts/ConstraintLayoutAdapter.js +5 -0
- slideforge/frontend/js/graph/layouts/DagreLayoutAdapter.js +5 -0
- slideforge/frontend/js/graph/layouts/EdgeRouter.js +10 -0
- slideforge/frontend/js/graph/layouts/ElkLayoutAdapter.js +9 -0
- slideforge/frontend/js/graph/layouts/ForceLayoutAdapter.js +5 -0
- slideforge/frontend/js/graph/layouts/LayoutManager.js +44 -0
- slideforge/frontend/js/graph/layouts/LayoutWorker.js +16 -0
- slideforge/frontend/js/graph/parsers/MermaidExporter.js +12 -0
- slideforge/frontend/js/graph/parsers/MermaidImporter.js +38 -0
- slideforge/frontend/js/graph/presentation/GraphPresenter.js +7 -0
- slideforge/frontend/js/graph/presentation/GraphStepSequencer.js +11 -0
- slideforge/frontend/js/graph/presentation/GraphStoryMode.js +7 -0
- slideforge/frontend/js/graph/primitives/PrimitiveRegistry.js +22 -0
- slideforge/frontend/js/graph/primitives/scientific/molecularDynamics.js +52 -0
- slideforge/frontend/js/graph/renderers/CanvasGraphRenderer.js +18 -0
- slideforge/frontend/js/graph/renderers/ExportSvgRenderer.js +8 -0
- slideforge/frontend/js/graph/renderers/HitTestRenderer.js +22 -0
- slideforge/frontend/js/graph/renderers/HybridGraphRenderer.js +13 -0
- slideforge/frontend/js/graph/renderers/PresentationRenderer.js +8 -0
- slideforge/frontend/js/graph/renderers/SvgGraphRenderer.js +15 -0
- slideforge/frontend/js/graph/schema/edgeTypes.js +34 -0
- slideforge/frontend/js/graph/schema/graphSchema.js +178 -0
- slideforge/frontend/js/graph/schema/migrations.js +81 -0
- slideforge/frontend/js/graph/schema/nodeTypes.js +168 -0
- slideforge/frontend/js/graph/schema/semanticRoles.js +33 -0
- slideforge/frontend/js/graph/schema/validationRules.js +24 -0
- slideforge/frontend/js/mermaid/mermaid-dialog.js +1849 -0
- slideforge/frontend/js/mermaid/mermaid-document.js +253 -0
- slideforge/frontend/js/mermaid/mermaid-engine.js +199 -0
- slideforge/frontend/js/mermaid/mermaid-export.js +23 -0
- slideforge/frontend/js/mermaid/mermaid-graph.js +1001 -0
- slideforge/frontend/js/mermaid/mermaid-object.js +266 -0
- slideforge/frontend/js/mermaid/mermaid-templates.js +165 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/architecture-I3QFYML2-BNJ4OOAP.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/architectureDiagram-MJF3Q7TB.mjs +36 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/blockDiagram-56QMO3LT.mjs +121 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/c4Diagram-ET6I6IV7.mjs +10 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-3YFHLAX3.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-44WTIFVW.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-4KE642ED.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-54VS5GG6.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-5ZJXQJOJ.mjs +14 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-6BY5RJGC.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-6CAUGOKZ.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-7CIZ4OX7.mjs +164 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-7LIB5WBN.mjs +37 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-AFC6EC46.mjs +66 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-D4BOYBYT.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-E7A2AWYO.mjs +15 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-EBEPM36I.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-FASC7IG4.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-GTKDMUJJ.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-GUUIKZ7L.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-LDJ5YOBB.mjs +220 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-LM6QDVU5.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-OR2G2HG5.mjs +64 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-P7KHIEPL.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-PWCSEZZ4.mjs +24 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-QJHISCT3.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-QTE35VYX.mjs +3 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-S67DUUA5.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-SDI2JJQM.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-SLI2Z62V.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-TI4EEUUG.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-UENA7NWE.mjs +2 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-VSLJSFIP.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-XVEYI5JQ.mjs +125 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-YPUTD6PB.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZN7TASNU.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZUCAP7FR.mjs +4 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/classDiagram-QKCJ6K63.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/classDiagram-v2-2JHJIACG.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/dagre-RF25WEIW.mjs +4 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/diagram-D46ISNHH.mjs +24 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/erDiagram-YH7IYH2C.mjs +51 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/flowDiagram-7QVFXBRT.mjs +160 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/ganttDiagram-7KUJEIIK.mjs +257 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/gitGraph-YCYPL57B-MEVJTYR7.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/gitGraphDiagram-H7KF5RUN.mjs +65 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/info-46DW6VJ7-CQJS2HF5.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/infoDiagram-FIZOUH6F.mjs +2 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/journeyDiagram-CDK7QRCM.mjs +139 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/kanban-definition-NEOEHSGR.mjs +88 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/katex-SWYD7GD6.mjs +261 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/mindmap-definition-55KDPWGP.mjs +95 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/packet-W2GHVCYJ-EO6UC2GD.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/pie-BEWT4RHE-B6EMOCE6.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/pieDiagram-AYPHHONI.mjs +30 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/quadrantDiagram-QXTGSWY2.mjs +7 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/requirementDiagram-5YXTYXBB.mjs +52 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/sankeyDiagram-T6MWQN27.mjs +8 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/sequenceDiagram-EUUTCHHZ.mjs +122 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/stateDiagram-U67EPTRE.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/stateDiagram-v2-HMOQ2HEA.mjs +1 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/timeline-definition-2YBW2SKD.mjs +61 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/chunks/mermaid.esm.min/xychartDiagram-A2DIST7P.mjs +7 -0
- slideforge/frontend/js/mermaid/vendor/mermaid/mermaid.esm.min.mjs +14 -0
- slideforge/frontend/js/properties/animation-config.js +132 -0
- slideforge/frontend/js/properties/core.js +96 -0
- slideforge/frontend/js/properties/dom-sync.js +397 -0
- slideforge/frontend/js/properties/floating-toolbars.js +621 -0
- slideforge/frontend/js/properties/init.js +9 -0
- slideforge/frontend/js/properties/layers.js +205 -0
- slideforge/frontend/js/properties/outline-controls.js +119 -0
- slideforge/frontend/js/properties/panel.js +921 -0
- slideforge/frontend/js/properties/panels/animations.js +1331 -0
- slideforge/frontend/js/properties/panels/chart.js +351 -0
- slideforge/frontend/js/properties/panels/connector.js +257 -0
- slideforge/frontend/js/properties/panels/equation.js +72 -0
- slideforge/frontend/js/properties/panels/html.js +60 -0
- slideforge/frontend/js/properties/panels/image.js +210 -0
- slideforge/frontend/js/properties/panels/mermaid.js +128 -0
- slideforge/frontend/js/properties/panels/molecule.js +576 -0
- slideforge/frontend/js/properties/panels/pdf.js +147 -0
- slideforge/frontend/js/properties/panels/shape.js +253 -0
- slideforge/frontend/js/properties/panels/sketch.js +76 -0
- slideforge/frontend/js/properties/panels/table.js +456 -0
- slideforge/frontend/js/properties/panels/text.js +667 -0
- slideforge/frontend/js/properties/panels/video.js +495 -0
- slideforge/frontend/js/properties/selection.js +340 -0
- slideforge/frontend/js/properties/slide-panel.js +551 -0
- slideforge/frontend/js/properties/style.js +122 -0
- slideforge/frontend/js/properties/table-selection.js +95 -0
- slideforge/frontend/js/properties/text-formatting.js +517 -0
- slideforge/frontend/js/rendering/export/ExportController.js +91 -0
- slideforge/frontend/js/rendering/export/ExportProfiles.js +42 -0
- slideforge/frontend/js/rendering/renderers/SvgRenderer.js +462 -0
- slideforge/frontend/js/rendering/scene/RenderScene.js +20 -0
- slideforge/frontend/js/rendering/scene/SceneCompiler.js +245 -0
- slideforge/frontend/js/rendering/serializers/SvgSerializer.js +35 -0
- slideforge/frontend/js/rendering/typography/TextLayoutEngine.js +44 -0
- slideforge/frontend/js/rendering/validation/ExportValidator.js +44 -0
- slideforge/frontend/js/rendering/vector/ShapeCompiler.js +68 -0
- slideforge/frontend/js/sketch/sketchMode.js +371 -0
- slideforge/frontend/js/sketch/sketchRenderer.js +103 -0
- slideforge/frontend/js/text/document/TextDocument.js +492 -0
- slideforge/frontend/js/text/textContent.js +1053 -0
- slideforge/frontend/js/text/textLayout.js +134 -0
- slideforge/frontend/js/text/textSelection.js +242 -0
- slideforge/frontend/js/ui/app-theme.js +33 -0
- slideforge/frontend/js/ui/prompt-dialog.js +105 -0
- slideforge/frontend/js/ui/select-menu.js +197 -0
- slideforge/frontend/js/ui/share.js +313 -0
- slideforge/frontend/js/ui/start-screen.js +439 -0
- slideforge/frontend/js/ui/timeline-editor.js +1385 -0
- slideforge/frontend/static/.gitkeep +1 -0
- slideforge/frontend/vendor/chart.js/chart.umd.min.js +14 -0
- slideforge/frontend/vendor/dompurify/purify.min.js +3 -0
- slideforge/frontend/vendor/excalidraw/LICENSE +21 -0
- slideforge/frontend/vendor/excalidraw/excalidraw-assets/Assistant-Bold.woff2 +0 -0
- slideforge/frontend/vendor/excalidraw/excalidraw-assets/Assistant-Medium.woff2 +0 -0
- slideforge/frontend/vendor/excalidraw/excalidraw-assets/Assistant-Regular.woff2 +0 -0
- slideforge/frontend/vendor/excalidraw/excalidraw-assets/Assistant-SemiBold.woff2 +0 -0
- slideforge/frontend/vendor/excalidraw/excalidraw-assets/Cascadia.woff2 +0 -0
- slideforge/frontend/vendor/excalidraw/excalidraw-assets/Virgil.woff2 +0 -0
- slideforge/frontend/vendor/excalidraw/excalidraw-assets/vendor-677e88ca78c86bddf13d.js +2 -0
- slideforge/frontend/vendor/excalidraw/excalidraw-assets/vendor-677e88ca78c86bddf13d.js.LICENSE.txt +32 -0
- slideforge/frontend/vendor/excalidraw/excalidraw.production.min.js +2 -0
- slideforge/frontend/vendor/excalidraw/excalidraw.production.min.js.LICENSE.txt +31 -0
- slideforge/frontend/vendor/file-saver/FileSaver.min.js +3 -0
- slideforge/frontend/vendor/fontawesome/css/all.min.css +9 -0
- slideforge/frontend/vendor/fontawesome/js/all.min.js +6 -0
- slideforge/frontend/vendor/fontawesome/webfonts/fa-brands-400.ttf +0 -0
- slideforge/frontend/vendor/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
- slideforge/frontend/vendor/fontawesome/webfonts/fa-regular-400.ttf +0 -0
- slideforge/frontend/vendor/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
- slideforge/frontend/vendor/fontawesome/webfonts/fa-solid-900.ttf +0 -0
- slideforge/frontend/vendor/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
- slideforge/frontend/vendor/fontawesome/webfonts/fa-v4compatibility.ttf +0 -0
- slideforge/frontend/vendor/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
- slideforge/frontend/vendor/fonts/fonts.css +66 -0
- slideforge/frontend/vendor/fontsource/bangers/400.css +29 -0
- slideforge/frontend/vendor/fontsource/bangers/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/bangers/files/bangers-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/bangers/files/bangers-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/bangers/files/bangers-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/bangers/files/bangers-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/bangers/files/bangers-vietnamese-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/bangers/files/bangers-vietnamese-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/caveat/400.css +39 -0
- slideforge/frontend/vendor/fontsource/caveat/600.css +39 -0
- slideforge/frontend/vendor/fontsource/caveat/700.css +39 -0
- slideforge/frontend/vendor/fontsource/caveat/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-cyrillic-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-cyrillic-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-cyrillic-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-cyrillic-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-cyrillic-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-cyrillic-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-cyrillic-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-cyrillic-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-cyrillic-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-cyrillic-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-cyrillic-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-cyrillic-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-latin-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-latin-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-latin-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-latin-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/caveat/files/caveat-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/comic-neue/400.css +9 -0
- slideforge/frontend/vendor/fontsource/comic-neue/700.css +9 -0
- slideforge/frontend/vendor/fontsource/comic-neue/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/comic-neue/files/comic-neue-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/comic-neue/files/comic-neue-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/comic-neue/files/comic-neue-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/comic-neue/files/comic-neue-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/dm-sans/400.css +19 -0
- slideforge/frontend/vendor/fontsource/dm-sans/500.css +19 -0
- slideforge/frontend/vendor/fontsource/dm-sans/700.css +19 -0
- slideforge/frontend/vendor/fontsource/dm-sans/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/dm-sans/files/dm-sans-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/dm-sans/files/dm-sans-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/dm-sans/files/dm-sans-latin-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/dm-sans/files/dm-sans-latin-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/dm-sans/files/dm-sans-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/dm-sans/files/dm-sans-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/dm-sans/files/dm-sans-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/dm-sans/files/dm-sans-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/dm-sans/files/dm-sans-latin-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/dm-sans/files/dm-sans-latin-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/dm-sans/files/dm-sans-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/dm-sans/files/dm-sans-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fraunces/500.css +29 -0
- slideforge/frontend/vendor/fontsource/fraunces/700.css +29 -0
- slideforge/frontend/vendor/fontsource/fraunces/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/fraunces/files/fraunces-latin-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fraunces/files/fraunces-latin-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fraunces/files/fraunces-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fraunces/files/fraunces-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fraunces/files/fraunces-latin-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fraunces/files/fraunces-latin-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fraunces/files/fraunces-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fraunces/files/fraunces-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fraunces/files/fraunces-vietnamese-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fraunces/files/fraunces-vietnamese-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fraunces/files/fraunces-vietnamese-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fraunces/files/fraunces-vietnamese-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/400.css +29 -0
- slideforge/frontend/vendor/fontsource/fredoka/500.css +29 -0
- slideforge/frontend/vendor/fontsource/fredoka/600.css +29 -0
- slideforge/frontend/vendor/fontsource/fredoka/700.css +29 -0
- slideforge/frontend/vendor/fontsource/fredoka/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-hebrew-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-hebrew-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-hebrew-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-hebrew-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-hebrew-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-hebrew-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-hebrew-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-hebrew-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/fredoka/files/fredoka-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/300.css +69 -0
- slideforge/frontend/vendor/fontsource/inter/400.css +69 -0
- slideforge/frontend/vendor/fontsource/inter/500.css +69 -0
- slideforge/frontend/vendor/fontsource/inter/600.css +69 -0
- slideforge/frontend/vendor/fontsource/inter/700.css +69 -0
- slideforge/frontend/vendor/fontsource/inter/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-300-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-300-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-ext-300-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-ext-300-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-cyrillic-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-300-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-300-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-ext-300-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-ext-300-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-greek-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-300-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-300-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-ext-300-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-ext-300-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-vietnamese-300-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-vietnamese-300-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-vietnamese-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-vietnamese-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-vietnamese-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-vietnamese-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-vietnamese-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-vietnamese-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-vietnamese-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/inter/files/inter-vietnamese-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/400.css +69 -0
- slideforge/frontend/vendor/fontsource/lora/500.css +69 -0
- slideforge/frontend/vendor/fontsource/lora/600.css +69 -0
- slideforge/frontend/vendor/fontsource/lora/700.css +69 -0
- slideforge/frontend/vendor/fontsource/lora/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-cyrillic-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-math-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-math-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-math-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-math-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-math-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-math-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-math-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-math-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-symbols-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-symbols-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-symbols-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-symbols-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-symbols-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-symbols-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-symbols-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-symbols-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-vietnamese-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-vietnamese-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-vietnamese-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-vietnamese-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-vietnamese-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-vietnamese-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-vietnamese-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/lora/files/lora-vietnamese-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/400.css +59 -0
- slideforge/frontend/vendor/fontsource/manrope/500.css +59 -0
- slideforge/frontend/vendor/fontsource/manrope/600.css +59 -0
- slideforge/frontend/vendor/fontsource/manrope/700.css +59 -0
- slideforge/frontend/vendor/fontsource/manrope/800.css +59 -0
- slideforge/frontend/vendor/fontsource/manrope/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-ext-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-cyrillic-ext-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-greek-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-greek-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-greek-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-greek-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-greek-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-greek-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-greek-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-greek-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-greek-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-greek-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-ext-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-latin-ext-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-vietnamese-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-vietnamese-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-vietnamese-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-vietnamese-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-vietnamese-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-vietnamese-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-vietnamese-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-vietnamese-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-vietnamese-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/manrope/files/manrope-vietnamese-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/400.css +49 -0
- slideforge/frontend/vendor/fontsource/merriweather/700.css +49 -0
- slideforge/frontend/vendor/fontsource/merriweather/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-cyrillic-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-cyrillic-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-cyrillic-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-cyrillic-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-cyrillic-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-cyrillic-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-cyrillic-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-cyrillic-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-vietnamese-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-vietnamese-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-vietnamese-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/merriweather/files/merriweather-vietnamese-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/500.css +49 -0
- slideforge/frontend/vendor/fontsource/montserrat/600.css +49 -0
- slideforge/frontend/vendor/fontsource/montserrat/700.css +49 -0
- slideforge/frontend/vendor/fontsource/montserrat/800.css +49 -0
- slideforge/frontend/vendor/fontsource/montserrat/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-ext-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-cyrillic-ext-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-ext-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-latin-ext-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-vietnamese-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-vietnamese-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-vietnamese-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-vietnamese-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-vietnamese-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-vietnamese-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-vietnamese-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/montserrat/files/montserrat-vietnamese-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/newsreader/500.css +29 -0
- slideforge/frontend/vendor/fontsource/newsreader/700.css +29 -0
- slideforge/frontend/vendor/fontsource/newsreader/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/newsreader/files/newsreader-latin-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/newsreader/files/newsreader-latin-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/newsreader/files/newsreader-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/newsreader/files/newsreader-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/newsreader/files/newsreader-latin-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/newsreader/files/newsreader-latin-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/newsreader/files/newsreader-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/newsreader/files/newsreader-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/newsreader/files/newsreader-vietnamese-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/newsreader/files/newsreader-vietnamese-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/newsreader/files/newsreader-vietnamese-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/newsreader/files/newsreader-vietnamese-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/400.css +49 -0
- slideforge/frontend/vendor/fontsource/nunito/600.css +49 -0
- slideforge/frontend/vendor/fontsource/nunito/700.css +49 -0
- slideforge/frontend/vendor/fontsource/nunito/800.css +49 -0
- slideforge/frontend/vendor/fontsource/nunito/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-ext-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-cyrillic-ext-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-ext-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-latin-ext-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-vietnamese-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-vietnamese-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-vietnamese-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-vietnamese-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-vietnamese-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-vietnamese-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-vietnamese-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/nunito/files/nunito-vietnamese-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/outfit/400.css +19 -0
- slideforge/frontend/vendor/fontsource/outfit/500.css +19 -0
- slideforge/frontend/vendor/fontsource/outfit/600.css +19 -0
- slideforge/frontend/vendor/fontsource/outfit/700.css +19 -0
- slideforge/frontend/vendor/fontsource/outfit/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/outfit/files/outfit-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/permanent-marker/400.css +9 -0
- slideforge/frontend/vendor/fontsource/permanent-marker/LICENSE +201 -0
- slideforge/frontend/vendor/fontsource/permanent-marker/files/permanent-marker-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/permanent-marker/files/permanent-marker-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/500.css +39 -0
- slideforge/frontend/vendor/fontsource/playfair-display/600.css +39 -0
- slideforge/frontend/vendor/fontsource/playfair-display/700.css +39 -0
- slideforge/frontend/vendor/fontsource/playfair-display/800.css +39 -0
- slideforge/frontend/vendor/fontsource/playfair-display/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-cyrillic-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-cyrillic-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-cyrillic-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-cyrillic-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-cyrillic-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-cyrillic-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-cyrillic-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-cyrillic-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-ext-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-latin-ext-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-vietnamese-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-vietnamese-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-vietnamese-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-vietnamese-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-vietnamese-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-vietnamese-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-vietnamese-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/playfair-display/files/playfair-display-vietnamese-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/400.css +39 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/500.css +39 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/600.css +39 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/700.css +39 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/800.css +39 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-cyrillic-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-cyrillic-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-cyrillic-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-cyrillic-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-cyrillic-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-cyrillic-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-cyrillic-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-cyrillic-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-cyrillic-ext-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-cyrillic-ext-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-ext-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-ext-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-vietnamese-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-vietnamese-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-vietnamese-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-vietnamese-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-vietnamese-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-vietnamese-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-vietnamese-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-vietnamese-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-vietnamese-800-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/plus-jakarta-sans/files/plus-jakarta-sans-vietnamese-800-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/poppins/400.css +29 -0
- slideforge/frontend/vendor/fontsource/poppins/500.css +29 -0
- slideforge/frontend/vendor/fontsource/poppins/600.css +29 -0
- slideforge/frontend/vendor/fontsource/poppins/700.css +29 -0
- slideforge/frontend/vendor/fontsource/poppins/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-devanagari-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-devanagari-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-devanagari-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-devanagari-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-devanagari-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-devanagari-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-devanagari-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-devanagari-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-ext-600-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-ext-600-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/poppins/files/poppins-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/shrikhand/400.css +29 -0
- slideforge/frontend/vendor/fontsource/shrikhand/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/shrikhand/files/shrikhand-gujarati-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/shrikhand/files/shrikhand-gujarati-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/shrikhand/files/shrikhand-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/shrikhand/files/shrikhand-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/shrikhand/files/shrikhand-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/shrikhand/files/shrikhand-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/400.css +29 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/500.css +29 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/700.css +29 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-latin-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-latin-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-latin-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-latin-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-vietnamese-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-vietnamese-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-vietnamese-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-vietnamese-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-vietnamese-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/space-grotesk/files/space-grotesk-vietnamese-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/400.css +29 -0
- slideforge/frontend/vendor/fontsource/work-sans/500.css +29 -0
- slideforge/frontend/vendor/fontsource/work-sans/700.css +29 -0
- slideforge/frontend/vendor/fontsource/work-sans/LICENSE +93 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-latin-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-latin-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-latin-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-latin-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-latin-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-latin-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-latin-ext-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-latin-ext-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-latin-ext-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-latin-ext-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-latin-ext-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-latin-ext-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-vietnamese-400-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-vietnamese-400-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-vietnamese-500-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-vietnamese-500-normal.woff2 +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-vietnamese-700-normal.woff +0 -0
- slideforge/frontend/vendor/fontsource/work-sans/files/work-sans-vietnamese-700-normal.woff2 +0 -0
- slideforge/frontend/vendor/html2canvas/html2canvas.min.js +20 -0
- slideforge/frontend/vendor/interactjs/interact.min.js +4 -0
- slideforge/frontend/vendor/jspdf/jspdf.umd.min.js +398 -0
- slideforge/frontend/vendor/jszip/jszip.min.js +13 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_AMS-Regular.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_AMS-Regular.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Main-Bold.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Main-Bold.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Main-Italic.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Main-Italic.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Main-Regular.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Main-Regular.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Math-Italic.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Math-Italic.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Script-Regular.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Script-Regular.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Size1-Regular.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Size1-Regular.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Size2-Regular.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Size2-Regular.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Size3-Regular.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Size3-Regular.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Size4-Regular.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Size4-Regular.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- slideforge/frontend/vendor/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- slideforge/frontend/vendor/katex/katex.min.css +1 -0
- slideforge/frontend/vendor/katex/katex.min.js +1 -0
- slideforge/frontend/vendor/ngl/ngl.js +88 -0
- slideforge/frontend/vendor/pptxgenjs/pptxgen.bundle.js +3 -0
- slideforge/frontend/vendor/react/LICENSE +21 -0
- slideforge/frontend/vendor/react/LICENSE-react-dom +21 -0
- slideforge/frontend/vendor/react/react-dom.production.min.js +267 -0
- slideforge/frontend/vendor/react/react.production.min.js +31 -0
- slideforge/frontend/vendor/reveal.js/reveal.css +8 -0
- slideforge/frontend/vendor/reveal.js/reveal.js +9 -0
- slideforge/frontend/vendor/reveal.js/theme/beige.css +364 -0
- slideforge/frontend/vendor/reveal.js/theme/black.css +357 -0
- slideforge/frontend/vendor/reveal.js/theme/blood.css +390 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/league-gothic/LICENSE +2 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/league-gothic/league-gothic.css +10 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/league-gothic/league-gothic.eot +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/league-gothic/league-gothic.ttf +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/league-gothic/league-gothic.woff +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/source-sans-pro/LICENSE +45 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/source-sans-pro/source-sans-pro-italic.eot +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/source-sans-pro/source-sans-pro-italic.woff +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/source-sans-pro/source-sans-pro-regular.eot +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/source-sans-pro/source-sans-pro-regular.woff +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff +0 -0
- slideforge/frontend/vendor/reveal.js/theme/fonts/source-sans-pro/source-sans-pro.css +39 -0
- slideforge/frontend/vendor/reveal.js/theme/league.css +366 -0
- slideforge/frontend/vendor/reveal.js/theme/moon.css +365 -0
- slideforge/frontend/vendor/reveal.js/theme/night.css +358 -0
- slideforge/frontend/vendor/reveal.js/theme/serif.css +361 -0
- slideforge/frontend/vendor/reveal.js/theme/simple.css +360 -0
- slideforge/frontend/vendor/reveal.js/theme/sky.css +368 -0
- slideforge/frontend/vendor/reveal.js/theme/solarized.css +361 -0
- slideforge/frontend/vendor/reveal.js/theme/white.css +357 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/blackboard.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/boardmarker-black.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/boardmarker-blue.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/boardmarker-green.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/boardmarker-orange.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/boardmarker-purple.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/boardmarker-red.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/boardmarker-yellow.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/chalk-blue.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/chalk-green.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/chalk-orange.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/chalk-purple.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/chalk-red.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/chalk-white.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/chalk-yellow.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/sponge.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/img/whiteboard.png +0 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/plugin.js +1976 -0
- slideforge/frontend/vendor/reveal.js-plugins/chalkboard/style.css +44 -0
- slideforge/frontend/vendor/tailwind/tailwind.cdn.js +83 -0
- slideforge/frontend/vendor/three/three.min.js +6 -0
- slideforge/studio/__init__.py +1 -0
- slideforge/studio/admin.py +19 -0
- slideforge/studio/apps.py +7 -0
- slideforge/studio/asset_cleanup.py +79 -0
- slideforge/studio/auth_views.py +86 -0
- slideforge/studio/frontend_files.py +16 -0
- slideforge/studio/management/__init__.py +0 -0
- slideforge/studio/management/commands/__init__.py +0 -0
- slideforge/studio/management/commands/cleanup_assets.py +21 -0
- slideforge/studio/middleware.py +25 -0
- slideforge/studio/migrations/0001_initial.py +59 -0
- slideforge/studio/migrations/0002_asset_video_type.py +26 -0
- slideforge/studio/migrations/0003_asset_molecule_type.py +27 -0
- slideforge/studio/migrations/0004_share_link.py +24 -0
- slideforge/studio/migrations/__init__.py +0 -0
- slideforge/studio/models.py +85 -0
- slideforge/studio/sharing.py +187 -0
- slideforge/studio/state_validation.py +92 -0
- slideforge/studio/urls.py +33 -0
- slideforge/studio/views.py +977 -0
- slideforge_studio-0.1.0.dist-info/METADATA +198 -0
- slideforge_studio-0.1.0.dist-info/RECORD +1131 -0
- slideforge_studio-0.1.0.dist-info/WHEEL +4 -0
- slideforge_studio-0.1.0.dist-info/entry_points.txt +5 -0
- slideforge_studio-0.1.0.dist-info/licenses/LICENSE +21 -0
- slideforge_studio-0.1.0.dist-info/licenses/THIRD_PARTY_NOTICES.md +3805 -0
slideforge/__init__.py
ADDED
slideforge/__main__.py
ADDED
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import re
|
|
2
|
+
|
|
3
|
+
_MAX_FIGURES_PER_SLIDE = 3
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def _tokenize(text: str) -> set[str]:
|
|
7
|
+
return set(re.findall(r"\w+", (text or "").lower()))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
_LOW_VALUE_FIGURE_TERMS = {
|
|
11
|
+
"publisher",
|
|
12
|
+
"publishing",
|
|
13
|
+
"journal",
|
|
14
|
+
"copyright",
|
|
15
|
+
"license",
|
|
16
|
+
"logo",
|
|
17
|
+
"authors",
|
|
18
|
+
"author",
|
|
19
|
+
"affiliation",
|
|
20
|
+
"abstract",
|
|
21
|
+
"introduction",
|
|
22
|
+
"received",
|
|
23
|
+
"accepted",
|
|
24
|
+
"supplementary",
|
|
25
|
+
"supporting",
|
|
26
|
+
"table of contents",
|
|
27
|
+
"graphical abstract",
|
|
28
|
+
"cover",
|
|
29
|
+
"frontispiece",
|
|
30
|
+
"view article",
|
|
31
|
+
"downloaded",
|
|
32
|
+
"email",
|
|
33
|
+
"orcid",
|
|
34
|
+
}
|
|
35
|
+
_HIGH_VALUE_FIGURE_TYPES = {"graph", "chart", "diagram", "microscopy", "table", "equation"}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _figure_text_blob(figure: dict) -> str:
|
|
39
|
+
vision = figure.get("vision", {}) or {}
|
|
40
|
+
return " ".join(
|
|
41
|
+
part
|
|
42
|
+
for part in [
|
|
43
|
+
figure.get("caption", ""),
|
|
44
|
+
vision.get("caption_enhanced", ""),
|
|
45
|
+
vision.get("key_finding", ""),
|
|
46
|
+
" ".join(vision.get("axis_labels", []) or []),
|
|
47
|
+
]
|
|
48
|
+
if part
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def _figure_quality_score(figure: dict) -> float:
|
|
53
|
+
vision = figure.get("vision", {}) or {}
|
|
54
|
+
screen = figure.get("screen", {}) or {}
|
|
55
|
+
text_blob = _figure_text_blob(figure).lower()
|
|
56
|
+
score = 0.0
|
|
57
|
+
|
|
58
|
+
if figure.get("low_value_visual"):
|
|
59
|
+
score -= 1.5
|
|
60
|
+
if isinstance(screen, dict) and not screen.get("is_figure") and float(screen.get("confidence") or 0.0) >= 0.55:
|
|
61
|
+
score -= 1.2
|
|
62
|
+
if isinstance(screen, dict):
|
|
63
|
+
screen_reason = str(screen.get("brief_reason") or "").lower()
|
|
64
|
+
if any(term in screen_reason for term in _LOW_VALUE_FIGURE_TERMS):
|
|
65
|
+
score -= 0.9
|
|
66
|
+
|
|
67
|
+
if any(term in text_blob for term in _LOW_VALUE_FIGURE_TERMS):
|
|
68
|
+
score -= 0.75
|
|
69
|
+
if vision.get("figure_type") in _HIGH_VALUE_FIGURE_TYPES:
|
|
70
|
+
score += 0.45
|
|
71
|
+
if vision.get("axis_labels"):
|
|
72
|
+
score += 0.2
|
|
73
|
+
if vision.get("key_finding"):
|
|
74
|
+
score += 0.15
|
|
75
|
+
if re.search(r"\b(fig(?:ure)?|chart|plot|diagram|scheme|table)\b", text_blob):
|
|
76
|
+
score += 0.15
|
|
77
|
+
if re.search(r"\b(aip publishing|elsevier|springer|wiley|acs publications)\b", text_blob):
|
|
78
|
+
score -= 1.0
|
|
79
|
+
|
|
80
|
+
figure_id = str(figure.get("id", "")).lower()
|
|
81
|
+
if (
|
|
82
|
+
"picture" in figure_id
|
|
83
|
+
and not vision.get("axis_labels")
|
|
84
|
+
and vision.get("figure_type") not in _HIGH_VALUE_FIGURE_TYPES
|
|
85
|
+
):
|
|
86
|
+
score -= 0.2
|
|
87
|
+
|
|
88
|
+
return score
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def _figure_match_score(text: str, figure: dict) -> float:
|
|
92
|
+
text_tokens = _tokenize(text)
|
|
93
|
+
caption_tokens = _tokenize(figure.get("caption", ""))
|
|
94
|
+
finding_tokens = _tokenize(figure.get("vision", {}).get("key_finding", ""))
|
|
95
|
+
fig_tokens = caption_tokens | finding_tokens
|
|
96
|
+
if not text_tokens or not fig_tokens:
|
|
97
|
+
return 0.0
|
|
98
|
+
overlap = len(text_tokens & fig_tokens)
|
|
99
|
+
return overlap / max(1, min(len(text_tokens), len(fig_tokens)))
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def _serialize_figure(f: dict) -> dict:
|
|
103
|
+
return {
|
|
104
|
+
"id": f["id"],
|
|
105
|
+
"caption": f.get("caption", ""),
|
|
106
|
+
"finding": f.get("vision", {}).get("key_finding", ""),
|
|
107
|
+
"type": f.get("vision", {}).get("figure_type", ""),
|
|
108
|
+
"path": f.get("path"),
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def _slide_content_text(title: str, points: list[dict]) -> str:
|
|
113
|
+
content = [title]
|
|
114
|
+
for p in points:
|
|
115
|
+
content.append(p.get("heading", ""))
|
|
116
|
+
content.extend(p.get("content", []))
|
|
117
|
+
return " ".join(content)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def _rank_figures_for_text(text: str, figures: list[dict], limit: int = 3) -> list[dict]:
|
|
121
|
+
ranked = sorted(
|
|
122
|
+
figures,
|
|
123
|
+
key=lambda figure: (_figure_match_score(text, figure), _figure_quality_score(figure)),
|
|
124
|
+
reverse=True,
|
|
125
|
+
)
|
|
126
|
+
return ranked[: min(limit, len(ranked))]
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def _assign_figures_to_slides(slides: list[dict], candidate_figures: list[dict]) -> dict[int, list[str]]:
|
|
130
|
+
if not slides or not candidate_figures:
|
|
131
|
+
return {}
|
|
132
|
+
|
|
133
|
+
slide_texts = {
|
|
134
|
+
idx: _slide_content_text(slide.get("title", ""), slide.get("points", [])) for idx, slide in enumerate(slides)
|
|
135
|
+
}
|
|
136
|
+
valid_figures = [figure for figure in candidate_figures if _figure_quality_score(figure) >= -0.8]
|
|
137
|
+
if not valid_figures:
|
|
138
|
+
return {idx: [] for idx in range(len(slides))}
|
|
139
|
+
|
|
140
|
+
all_pairs = []
|
|
141
|
+
for idx, slide_text in slide_texts.items():
|
|
142
|
+
for figure in valid_figures:
|
|
143
|
+
match_score = _figure_match_score(slide_text, figure)
|
|
144
|
+
quality_score = _figure_quality_score(figure)
|
|
145
|
+
all_pairs.append((idx, figure["id"], match_score, quality_score, match_score + (quality_score * 0.35)))
|
|
146
|
+
all_pairs.sort(key=lambda item: item[4], reverse=True)
|
|
147
|
+
|
|
148
|
+
assignments = {idx: [] for idx in range(len(slides))}
|
|
149
|
+
figure_use_counts = {figure["id"]: 0 for figure in valid_figures}
|
|
150
|
+
|
|
151
|
+
for idx, slide in enumerate(slides):
|
|
152
|
+
fids = slide.get("fig_ids", [])
|
|
153
|
+
if not fids and slide.get("fig_id"):
|
|
154
|
+
fids = [slide.get("fig_id")]
|
|
155
|
+
for fid in fids:
|
|
156
|
+
if fid and fid in figure_use_counts and figure_use_counts[fid] == 0:
|
|
157
|
+
if fid not in assignments[idx]:
|
|
158
|
+
assignments[idx].append(fid)
|
|
159
|
+
figure_use_counts[fid] += 1
|
|
160
|
+
|
|
161
|
+
for idx, figure_id, score, _quality_score, combined_score in all_pairs:
|
|
162
|
+
if assignments[idx] or figure_use_counts[figure_id] > 0:
|
|
163
|
+
continue
|
|
164
|
+
if score < 0.1 or combined_score < 0.08:
|
|
165
|
+
continue
|
|
166
|
+
assignments[idx].append(figure_id)
|
|
167
|
+
figure_use_counts[figure_id] += 1
|
|
168
|
+
|
|
169
|
+
# Cover high-value figures at least once before allowing repeats.
|
|
170
|
+
high_value_figures = sorted(
|
|
171
|
+
valid_figures,
|
|
172
|
+
key=lambda figure: _figure_quality_score(figure),
|
|
173
|
+
reverse=True,
|
|
174
|
+
)
|
|
175
|
+
for figure in high_value_figures:
|
|
176
|
+
figure_id = figure["id"]
|
|
177
|
+
if figure_use_counts[figure_id] > 0:
|
|
178
|
+
continue
|
|
179
|
+
best = None
|
|
180
|
+
for idx, pair_figure_id, score, quality_score, combined_score in all_pairs:
|
|
181
|
+
if pair_figure_id != figure_id:
|
|
182
|
+
continue
|
|
183
|
+
if len(assignments[idx]) >= _MAX_FIGURES_PER_SLIDE:
|
|
184
|
+
continue
|
|
185
|
+
candidate = (combined_score, score, quality_score, idx)
|
|
186
|
+
if best is None or candidate > best:
|
|
187
|
+
best = candidate
|
|
188
|
+
if best and (best[1] >= 0.08 or best[2] >= 0.25):
|
|
189
|
+
idx = best[3]
|
|
190
|
+
assignments[idx].append(figure_id)
|
|
191
|
+
figure_use_counts[figure_id] += 1
|
|
192
|
+
|
|
193
|
+
for idx, figure_id, score, _quality_score, combined_score in all_pairs:
|
|
194
|
+
if len(assignments[idx]) >= _MAX_FIGURES_PER_SLIDE:
|
|
195
|
+
continue
|
|
196
|
+
if figure_id in assignments[idx]:
|
|
197
|
+
continue
|
|
198
|
+
if figure_use_counts[figure_id] >= 1:
|
|
199
|
+
continue
|
|
200
|
+
if score < 0.18 or combined_score < 0.18:
|
|
201
|
+
continue
|
|
202
|
+
assignments[idx].append(figure_id)
|
|
203
|
+
figure_use_counts[figure_id] += 1
|
|
204
|
+
|
|
205
|
+
# If there are more slides than figures, allow a small number of highly relevant repeats.
|
|
206
|
+
repeat_cap = 2 if len(slides) > len(valid_figures) else 1
|
|
207
|
+
for idx, figure_id, score, quality_score, combined_score in all_pairs:
|
|
208
|
+
if assignments[idx] or figure_use_counts[figure_id] >= repeat_cap:
|
|
209
|
+
continue
|
|
210
|
+
if score < 0.28 or combined_score < 0.24 or quality_score < 0.1:
|
|
211
|
+
continue
|
|
212
|
+
assignments[idx].append(figure_id)
|
|
213
|
+
figure_use_counts[figure_id] += 1
|
|
214
|
+
|
|
215
|
+
# Attach remaining important figures to the least-loaded relevant slide, but never logos/junk.
|
|
216
|
+
for figure in valid_figures:
|
|
217
|
+
figure_id = figure["id"]
|
|
218
|
+
if figure_use_counts[figure_id] > 0:
|
|
219
|
+
continue
|
|
220
|
+
if _figure_quality_score(figure) < 0.15:
|
|
221
|
+
continue
|
|
222
|
+
|
|
223
|
+
assigned = False
|
|
224
|
+
for idx, pair_figure_id, score, quality_score, _combined_score in all_pairs:
|
|
225
|
+
if pair_figure_id != figure_id:
|
|
226
|
+
continue
|
|
227
|
+
if figure_id in assignments[idx]:
|
|
228
|
+
assigned = True
|
|
229
|
+
break
|
|
230
|
+
if len(assignments[idx]) >= _MAX_FIGURES_PER_SLIDE:
|
|
231
|
+
continue
|
|
232
|
+
if score < 0.06 and quality_score < 0.25:
|
|
233
|
+
continue
|
|
234
|
+
assignments[idx].append(figure_id)
|
|
235
|
+
figure_use_counts[figure_id] += 1
|
|
236
|
+
assigned = True
|
|
237
|
+
break
|
|
238
|
+
|
|
239
|
+
if assigned:
|
|
240
|
+
continue
|
|
241
|
+
|
|
242
|
+
fallback_idx = min(assignments, key=lambda slide_idx: (len(assignments[slide_idx]), slide_idx))
|
|
243
|
+
if figure_id not in assignments[fallback_idx]:
|
|
244
|
+
assignments[fallback_idx].append(figure_id)
|
|
245
|
+
figure_use_counts[figure_id] += 1
|
|
246
|
+
|
|
247
|
+
return assignments
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
def _rank_equations_for_text(text: str, equations: list[dict], limit: int = 3) -> list[dict]:
|
|
251
|
+
def _equation_text(entry: dict) -> str:
|
|
252
|
+
return " ".join(
|
|
253
|
+
part for part in [entry.get("label", ""), entry.get("latex", ""), entry.get("text", "")] if part
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
def _equation_match_score(slide_text: str, equation: dict) -> float:
|
|
257
|
+
equation_tokens = _tokenize(_equation_text(equation))
|
|
258
|
+
slide_tokens = _tokenize(slide_text)
|
|
259
|
+
if not slide_tokens or not equation_tokens:
|
|
260
|
+
return 0.0
|
|
261
|
+
overlap = len(slide_tokens & equation_tokens)
|
|
262
|
+
return overlap / max(1, min(len(slide_tokens), len(equation_tokens)))
|
|
263
|
+
|
|
264
|
+
ranked = sorted(equations, key=lambda equation: _equation_match_score(text, equation), reverse=True)
|
|
265
|
+
return ranked[: min(limit, len(ranked))]
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
def _serialize_equation(entry: dict) -> dict:
|
|
269
|
+
return {
|
|
270
|
+
"page": entry.get("page"),
|
|
271
|
+
"label": entry.get("label", ""),
|
|
272
|
+
"latex": entry.get("latex", ""),
|
|
273
|
+
"text": entry.get("text", ""),
|
|
274
|
+
"path": entry.get("path"),
|
|
275
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# import json
|
|
2
|
+
import os
|
|
3
|
+
import re
|
|
4
|
+
|
|
5
|
+
import requests
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
from .standalone_pdf2ppt import (
|
|
9
|
+
GeminiProvider,
|
|
10
|
+
GroqProvider,
|
|
11
|
+
OllamaProvider,
|
|
12
|
+
SmartFallbackProvider,
|
|
13
|
+
)
|
|
14
|
+
from .utils import _parse_jsonish
|
|
15
|
+
from .vision import _available_vision_model
|
|
16
|
+
|
|
17
|
+
# Configuration comes from the environment; slideforge.settings loads config.env from the data directory.
|
|
18
|
+
|
|
19
|
+
_OLLAMA_BASE = os.getenv("OLLAMA_BASE_URL", "http://127.0.0.1:11434")
|
|
20
|
+
# _TEXT_MODEL_PRIORITY = ["llama3.1:8b", "qwen2.5:7b", "llama3:latest"]
|
|
21
|
+
_TEXT_MODEL_PRIORITY = [
|
|
22
|
+
"qwen2.5:7b",
|
|
23
|
+
"llama3.1:8b",
|
|
24
|
+
"llama3:latest",
|
|
25
|
+
"gemma4:latest",
|
|
26
|
+
"gemma4:31b",
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def _available_ollama_models() -> set[str]:
|
|
31
|
+
"""Return installed Ollama model names, including tagless aliases."""
|
|
32
|
+
try:
|
|
33
|
+
resp = requests.get(f"{_OLLAMA_BASE}/api/tags", timeout=5)
|
|
34
|
+
resp.raise_for_status()
|
|
35
|
+
models = set()
|
|
36
|
+
for item in resp.json().get("models", []):
|
|
37
|
+
name = item.get("name", "").strip()
|
|
38
|
+
if not name:
|
|
39
|
+
continue
|
|
40
|
+
models.add(name)
|
|
41
|
+
models.add(name.split(":", 1)[0])
|
|
42
|
+
return models
|
|
43
|
+
except Exception:
|
|
44
|
+
return set()
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _choose_text_model() -> str | None:
|
|
48
|
+
configured = os.getenv("PPTMAKER_TEXT_MODEL", "").strip()
|
|
49
|
+
if configured:
|
|
50
|
+
return configured
|
|
51
|
+
available = _available_ollama_models()
|
|
52
|
+
for model in _TEXT_MODEL_PRIORITY:
|
|
53
|
+
if model in available:
|
|
54
|
+
return model
|
|
55
|
+
base = model.split(":", 1)[0]
|
|
56
|
+
if base in available:
|
|
57
|
+
return model if ":" in model else base
|
|
58
|
+
return None
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def _ollama_text_options() -> dict:
|
|
62
|
+
try:
|
|
63
|
+
num_ctx = int(os.getenv("PPTMAKER_OLLAMA_NUM_CTX", "4096"))
|
|
64
|
+
except ValueError:
|
|
65
|
+
num_ctx = 4096
|
|
66
|
+
try:
|
|
67
|
+
num_predict = int(os.getenv("PPTMAKER_OLLAMA_NUM_PREDICT", "800"))
|
|
68
|
+
except ValueError:
|
|
69
|
+
num_predict = 800
|
|
70
|
+
return {
|
|
71
|
+
"num_ctx": max(2048, num_ctx),
|
|
72
|
+
"num_predict": max(128, num_predict),
|
|
73
|
+
"temperature": float(os.getenv("PPTMAKER_OLLAMA_TEMPERATURE", "0.15")),
|
|
74
|
+
"top_p": float(os.getenv("PPTMAKER_OLLAMA_TOP_P", "0.9")),
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def _validate_local_models() -> tuple[str, str]:
|
|
79
|
+
"""Require both a local vision model and a local text model."""
|
|
80
|
+
text_model = _choose_text_model()
|
|
81
|
+
if not text_model:
|
|
82
|
+
raise RuntimeError(
|
|
83
|
+
"No compatible Ollama text model installed. Install one of: qwen2.5:7b, llama3.1:8b, llama3, gemma4:latest, gemma4:31b."
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
vision_model = os.getenv("OLLAMA_VISION_MODEL") or _available_vision_model() # type: ignore
|
|
87
|
+
if not vision_model:
|
|
88
|
+
raise RuntimeError(
|
|
89
|
+
"No compatible Ollama vision model installed. "
|
|
90
|
+
"Install one of: qwen2.5-vl, llama3.2-vision, minicpm-v, llava."
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
return text_model, vision_model
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def _unload_ollama_models():
|
|
97
|
+
"""Tells Ollama to unload all models from GPU memory to free up VRAM for Marker."""
|
|
98
|
+
ollama_base = os.getenv("OLLAMA_BASE_URL", "http://127.0.0.1:11434")
|
|
99
|
+
try:
|
|
100
|
+
resp = requests.get(f"{ollama_base}/api/ps", timeout=5)
|
|
101
|
+
if resp.status_code == 200:
|
|
102
|
+
models = resp.json().get("models", [])
|
|
103
|
+
for m in models:
|
|
104
|
+
name = m.get("name")
|
|
105
|
+
if name:
|
|
106
|
+
requests.post(
|
|
107
|
+
f"{ollama_base}/api/generate", json={"model": name, "prompt": "", "keep_alive": 0}, timeout=5
|
|
108
|
+
)
|
|
109
|
+
except Exception:
|
|
110
|
+
pass
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
def _generate_structured_json(llm, prompt: str, system_prompt: str, context: str, schema_hint: str = ""):
|
|
114
|
+
raw = llm.generate(prompt, system_prompt, json_mode=True)
|
|
115
|
+
try:
|
|
116
|
+
return _parse_jsonish(raw)
|
|
117
|
+
except Exception as first_exc:
|
|
118
|
+
repair_prompt = (
|
|
119
|
+
"Repair the following malformed JSON-like output into valid JSON.\n"
|
|
120
|
+
"Do not add commentary. Do not wrap in markdown.\n"
|
|
121
|
+
f"Context: {context}\n"
|
|
122
|
+
f"{schema_hint}\n"
|
|
123
|
+
"Malformed payload:\n"
|
|
124
|
+
f"{raw}"
|
|
125
|
+
)
|
|
126
|
+
repaired = llm.generate(repair_prompt, "Return valid JSON only.", json_mode=True)
|
|
127
|
+
try:
|
|
128
|
+
return _parse_jsonish(repaired)
|
|
129
|
+
except Exception as second_exc:
|
|
130
|
+
preview = re.sub(r"\s+", " ", str(raw))[:400]
|
|
131
|
+
raise RuntimeError(
|
|
132
|
+
f"Failed to parse {context} JSON. "
|
|
133
|
+
f"Initial error: {first_exc}. Repair error: {second_exc}. "
|
|
134
|
+
f"Raw preview: {preview}"
|
|
135
|
+
) from second_exc
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
def build_provider(allow_remote: bool = False):
|
|
139
|
+
text_model = _choose_text_model()
|
|
140
|
+
providers = []
|
|
141
|
+
if allow_remote:
|
|
142
|
+
if os.getenv("GROQ_API_KEY"):
|
|
143
|
+
providers.append(GroqProvider()) # type: ignore
|
|
144
|
+
if os.getenv("GOOGLE_API_KEY"):
|
|
145
|
+
providers.append(GeminiProvider()) # type: ignore
|
|
146
|
+
providers.append(OllamaProvider(model=text_model or "qwen2.5:7b", options=_ollama_text_options(), keep_alive="2m")) # type: ignore
|
|
147
|
+
return SmartFallbackProvider(providers) # type: ignore
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
def build_task_provider(task: str = "general", allow_remote: bool = False):
|
|
151
|
+
providers = []
|
|
152
|
+
text_model = _choose_text_model()
|
|
153
|
+
local_models = [text_model, "qwen2.5:7b", "llama3.1:8b", "llama3:latest", "gemma4:latest", "gemma4:31b"]
|
|
154
|
+
local_models = [model for idx, model in enumerate(local_models) if model and model not in local_models[:idx]]
|
|
155
|
+
local_provider = OllamaProvider(models=local_models, options=_ollama_text_options(), keep_alive="2m") # type: ignore
|
|
156
|
+
|
|
157
|
+
api_providers = []
|
|
158
|
+
if allow_remote:
|
|
159
|
+
smart_tasks = {"planning", "paper_brief", "storyboard", "creative", "synthesis"}
|
|
160
|
+
if os.getenv("GOOGLE_API_KEY"):
|
|
161
|
+
api_providers.append(GeminiProvider()) # type: ignore
|
|
162
|
+
if os.getenv("GROQ_API_KEY"):
|
|
163
|
+
api_providers.append(GroqProvider()) # type: ignore
|
|
164
|
+
if task == "slide_writing":
|
|
165
|
+
if os.getenv("GROQ_API_KEY"):
|
|
166
|
+
providers.append(GroqProvider()) # type: ignore
|
|
167
|
+
if os.getenv("GOOGLE_API_KEY"):
|
|
168
|
+
providers.append(GeminiProvider()) # type: ignore
|
|
169
|
+
providers.append(local_provider)
|
|
170
|
+
elif task in smart_tasks:
|
|
171
|
+
providers.extend(api_providers)
|
|
172
|
+
providers.append(local_provider)
|
|
173
|
+
else:
|
|
174
|
+
providers.append(local_provider)
|
|
175
|
+
providers.extend(api_providers)
|
|
176
|
+
else:
|
|
177
|
+
providers.append(local_provider)
|
|
178
|
+
return SmartFallbackProvider(providers) # type: ignore
|