fika-editor 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +45 -27
- package/dist/embed/350.css +1 -0
- package/dist/embed/350.js +164 -0
- package/dist/embed/agentic-manifest.json +2232 -0
- package/dist/embed/apple-touch-icon.png +0 -0
- package/dist/embed/chunks/1.js +1 -0
- package/dist/embed/chunks/104.js +1 -0
- package/dist/embed/chunks/1074.js +1 -0
- package/dist/embed/chunks/1085.js +1 -0
- package/dist/embed/chunks/1131.css +1 -0
- package/dist/embed/chunks/1131.js +1 -0
- package/dist/embed/chunks/1169.js +1 -0
- package/dist/embed/chunks/1172.js +1 -0
- package/dist/embed/chunks/1212.js +1 -0
- package/dist/embed/chunks/1255.js +1 -0
- package/dist/embed/chunks/1432.js +1 -0
- package/dist/embed/chunks/1436.js +1 -0
- package/dist/embed/chunks/1605.js +1 -0
- package/dist/embed/chunks/1668.js +1 -0
- package/dist/embed/chunks/1804.js +8 -0
- package/dist/embed/chunks/1904.js +104 -0
- package/dist/embed/chunks/1915.js +1 -0
- package/dist/embed/chunks/1916.js +1 -0
- package/dist/embed/chunks/1932.js +1 -0
- package/dist/embed/chunks/2011.js +1 -0
- package/dist/embed/chunks/2020.js +3467 -0
- package/dist/embed/chunks/2131.js +1 -0
- package/dist/embed/chunks/2143.js +62 -0
- package/dist/embed/chunks/2190.js +1 -0
- package/dist/embed/chunks/2246.js +1 -0
- package/dist/embed/chunks/2289.js +80 -0
- package/dist/embed/chunks/2402.js +1 -0
- package/dist/embed/chunks/2407.js +1 -0
- package/dist/embed/chunks/2489.js +1 -0
- package/dist/embed/chunks/2528.js +1 -0
- package/dist/embed/chunks/2632.js +1 -0
- package/dist/embed/chunks/2694.js +1 -0
- package/dist/embed/chunks/2714.js +1 -0
- package/dist/embed/chunks/273.js +24 -0
- package/dist/embed/chunks/2796.js +34 -0
- package/dist/embed/chunks/2807.css +1 -0
- package/dist/embed/chunks/2807.js +1 -0
- package/dist/embed/chunks/3030.js +1 -0
- package/dist/embed/chunks/3031.js +1 -0
- package/dist/embed/chunks/3088.js +1 -0
- package/dist/embed/chunks/3103.js +1 -0
- package/dist/embed/chunks/3143.js +1 -0
- package/dist/embed/chunks/3359.js +1 -0
- package/dist/embed/chunks/3443.js +1 -0
- package/dist/embed/chunks/3479.js +1 -0
- package/dist/embed/chunks/3555.js +1 -0
- package/dist/embed/chunks/3581.js +77 -0
- package/dist/embed/chunks/360.css +1 -0
- package/dist/embed/chunks/360.js +1 -0
- package/dist/embed/chunks/362.js +1 -0
- package/dist/embed/chunks/3729.js +160 -0
- package/dist/embed/chunks/3888.js +1 -0
- package/dist/embed/chunks/3907.js +1 -0
- package/dist/embed/chunks/397.js +1 -0
- package/dist/embed/chunks/401.js +1 -0
- package/dist/embed/chunks/4110.js +1 -0
- package/dist/embed/chunks/4145.js +1 -0
- package/dist/embed/chunks/4335.js +1 -0
- package/dist/embed/chunks/435.js +1 -0
- package/dist/embed/chunks/4354.js +27 -0
- package/dist/embed/chunks/4359.js +1 -0
- package/dist/embed/chunks/4467.js +1 -0
- package/dist/embed/chunks/4515.js +1 -0
- package/dist/embed/chunks/4552.js +287 -0
- package/dist/embed/chunks/4606.js +1 -0
- package/dist/embed/chunks/4607.js +1 -0
- package/dist/embed/chunks/4619.js +86 -0
- package/dist/embed/chunks/4625.js +153 -0
- package/dist/embed/chunks/4632.css +1 -0
- package/dist/embed/chunks/4632.js +1 -0
- package/dist/embed/chunks/4637.js +1 -0
- package/dist/embed/chunks/4794.js +1 -0
- package/dist/embed/chunks/4891.js +226 -0
- package/dist/embed/chunks/4936.js +82 -0
- package/dist/embed/chunks/4950.js +1 -0
- package/dist/embed/chunks/4975.js +255 -0
- package/dist/embed/chunks/5026.js +1 -0
- package/dist/embed/chunks/5075.js +1 -0
- package/dist/embed/chunks/5216.css +1 -0
- package/dist/embed/chunks/5216.js +1 -0
- package/dist/embed/chunks/5239.js +1 -0
- package/dist/embed/chunks/5250.js +1 -0
- package/dist/embed/chunks/5316.js +1 -0
- package/dist/embed/chunks/5437.js +1 -0
- package/dist/embed/chunks/5480.js +1 -0
- package/dist/embed/chunks/5532.js +1 -0
- package/dist/embed/chunks/5659.js +64 -0
- package/dist/embed/chunks/574.js +1 -0
- package/dist/embed/chunks/5768.js +1 -0
- package/dist/embed/chunks/5773.js +1 -0
- package/dist/embed/chunks/5792.js +141 -0
- package/dist/embed/chunks/5809.js +1 -0
- package/dist/embed/chunks/5835.js +1 -0
- package/dist/embed/chunks/5889.js +1 -0
- package/dist/embed/chunks/5901.js +1 -0
- package/dist/embed/chunks/5907.js +1 -0
- package/dist/embed/chunks/5989.js +1 -0
- package/dist/embed/chunks/5992.js +1 -0
- package/dist/embed/chunks/6014.js +1 -0
- package/dist/embed/chunks/6063.js +1 -0
- package/dist/embed/chunks/6136.js +1 -0
- package/dist/embed/chunks/6144.css +1 -0
- package/dist/embed/chunks/6144.js +1 -0
- package/dist/embed/chunks/627.js +115 -0
- package/dist/embed/chunks/6339.js +1 -0
- package/dist/embed/chunks/635.js +1 -0
- package/dist/embed/chunks/6361.js +1 -0
- package/dist/embed/chunks/647.js +1 -0
- package/dist/embed/chunks/6522.js +1 -0
- package/dist/embed/chunks/6567.js +1 -0
- package/dist/embed/chunks/6580.js +1 -0
- package/dist/embed/chunks/6609.css +1 -0
- package/dist/embed/chunks/6609.js +1 -0
- package/dist/embed/chunks/6690.js +1 -0
- package/dist/embed/chunks/6704.js +1 -0
- package/dist/embed/chunks/6778.js +1 -0
- package/dist/embed/chunks/6935.js +1 -0
- package/dist/embed/chunks/6999.js +93 -0
- package/dist/embed/chunks/7048.js +1 -0
- package/dist/embed/chunks/7101.js +1 -0
- package/dist/embed/chunks/7132.js +1 -0
- package/dist/embed/chunks/717.js +148 -0
- package/dist/embed/chunks/7175.js +90 -0
- package/dist/embed/chunks/7193.css +1 -0
- package/dist/embed/chunks/7193.js +1 -0
- package/dist/embed/chunks/7245.js +1 -0
- package/dist/embed/chunks/7255.js +1 -0
- package/dist/embed/chunks/7272.js +1 -0
- package/dist/embed/chunks/7309.js +1 -0
- package/dist/embed/chunks/7311.js +23 -0
- package/dist/embed/chunks/736.js +1 -0
- package/dist/embed/chunks/7376.js +1 -0
- package/dist/embed/chunks/7453.js +1 -0
- package/dist/embed/chunks/7463.js +1 -0
- package/dist/embed/chunks/7468.js +1 -0
- package/dist/embed/chunks/7588.js +41 -0
- package/dist/embed/chunks/7594.js +1 -0
- package/dist/embed/chunks/7854.js +38 -0
- package/dist/embed/chunks/788.js +24 -0
- package/dist/embed/chunks/7916.js +79 -0
- package/dist/embed/chunks/7924.js +1 -0
- package/dist/embed/chunks/7980.js +1 -0
- package/dist/embed/chunks/809.js +1 -0
- package/dist/embed/chunks/810.js +1 -0
- package/dist/embed/chunks/818.js +1 -0
- package/dist/embed/chunks/8212.js +36 -0
- package/dist/embed/chunks/8239.js +1 -0
- package/dist/embed/chunks/8252.js +1 -0
- package/dist/embed/chunks/8378.css +1 -0
- package/dist/embed/chunks/8378.js +1 -0
- package/dist/embed/chunks/8449.js +1 -0
- package/dist/embed/chunks/8516.js +1 -0
- package/dist/embed/chunks/8606.js +1 -0
- package/dist/embed/chunks/862.css +1 -0
- package/dist/embed/chunks/862.js +1 -0
- package/dist/embed/chunks/8620.js +1 -0
- package/dist/embed/chunks/8623.js +138 -0
- package/dist/embed/chunks/8645.js +1 -0
- package/dist/embed/chunks/8716.js +215 -0
- package/dist/embed/chunks/8724.js +1 -0
- package/dist/embed/chunks/8735.js +1 -0
- package/dist/embed/chunks/8941.js +1 -0
- package/dist/embed/chunks/9121.js +1 -0
- package/dist/embed/chunks/919.js +1 -0
- package/dist/embed/chunks/9203.js +1 -0
- package/dist/embed/chunks/9245.js +1 -0
- package/dist/embed/chunks/9252.js +1 -0
- package/dist/embed/chunks/9465.js +5 -0
- package/dist/embed/chunks/9475.js +1 -0
- package/dist/embed/chunks/9657.css +1 -0
- package/dist/embed/chunks/9657.js +1 -0
- package/dist/embed/chunks/968.js +1 -0
- package/dist/embed/chunks/9739.js +1 -0
- package/dist/embed/chunks/9761.js +1 -0
- package/dist/embed/chunks/9800.css +1 -0
- package/dist/embed/chunks/9800.js +1 -0
- package/dist/embed/chunks/9976.js +1 -0
- package/dist/embed/favicon-32.png +0 -0
- package/dist/embed/favicon.ico +0 -0
- package/dist/embed/favicon.svg +7 -0
- package/dist/embed/fika-embed.css +1 -0
- package/dist/embed/fika-embed.js +5 -0
- package/dist/embed/logo.png +0 -0
- package/dist/embed/static/font/fonts/Inter.woff2 +0 -0
- package/dist/embed/static/font/fonts/JetBrainsMono.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Main-Bold.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Main-Italic.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Main-Regular.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Math-Italic.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Script-Regular.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- package/dist/embed/static/font/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/dist/embed/static/font/fonts/Lato.woff2 +0 -0
- package/dist/embed/static/font/fonts/Literata.woff2 +0 -0
- package/dist/embed/static/font/fonts/Merriweather.woff2 +0 -0
- package/dist/embed/static/font/fonts/Montserrat.woff2 +0 -0
- package/dist/embed/static/font/fonts/OpenSans.woff2 +0 -0
- package/dist/embed/static/font/fonts/Roboto.woff2 +0 -0
- package/dist/embed/static/font/fonts/SourceSansPro.woff2 +0 -0
- package/dist/embed/static/font/fonts/SourceSerif4.woff2 +0 -0
- package/dist/types/components/Button.d.ts +17 -0
- package/dist/types/components/ButtonGroup.d.ts +8 -0
- package/dist/types/components/ChartDataEditor.d.ts +13 -0
- package/dist/types/components/Checkbox.d.ts +12 -0
- package/dist/types/components/CodeEditor/CodeEditorSkeleton.d.ts +8 -0
- package/dist/types/components/CodeEditor/codeMirror.d.ts +23 -0
- package/dist/types/components/CodeEditor/index.d.ts +14 -0
- package/dist/types/components/CodeEditor/lazy.d.ts +3 -0
- package/dist/types/components/ColorButton.d.ts +8 -0
- package/dist/types/components/ColorListButton.d.ts +8 -0
- package/dist/types/components/ColorPicker/Alpha.d.ts +12 -0
- package/dist/types/components/ColorPicker/Checkboard.d.ts +11 -0
- package/dist/types/components/ColorPicker/EditableInput.d.ts +12 -0
- package/dist/types/components/ColorPicker/Hue.d.ts +13 -0
- package/dist/types/components/ColorPicker/Saturation.d.ts +13 -0
- package/dist/types/components/ColorPicker/index.d.ts +11 -0
- package/dist/types/components/ColorSwatches.d.ts +21 -0
- package/dist/types/components/ConfirmDialog.d.ts +16 -0
- package/dist/types/components/Contextmenu/MenuContent.d.ts +8 -0
- package/dist/types/components/Contextmenu/index.d.ts +14 -0
- package/dist/types/components/Contextmenu/types.d.ts +13 -0
- package/dist/types/components/Divider.d.ts +9 -0
- package/dist/types/components/Draggable.d.ts +28 -0
- package/dist/types/components/Drawer.d.ts +13 -0
- package/dist/types/components/FileInput.d.ts +11 -0
- package/dist/types/components/FitText.d.ts +17 -0
- package/dist/types/components/FontSizeControl.d.ts +12 -0
- package/dist/types/components/FormatChip.d.ts +14 -0
- package/dist/types/components/FullscreenSpin.d.ts +9 -0
- package/dist/types/components/GradientBar.d.ts +12 -0
- package/dist/types/components/Icon.d.ts +144 -0
- package/dist/types/components/InkDialog.d.ts +37 -0
- package/dist/types/components/InkLoader.d.ts +2 -0
- package/dist/types/components/InkPaintSwatches.d.ts +14 -0
- package/dist/types/components/InkProgress.d.ts +6 -0
- package/dist/types/components/Input.d.ts +25 -0
- package/dist/types/components/JobProgressOverlay.d.ts +18 -0
- package/dist/types/components/LaTeXEditor/LatexEditorSkeleton.d.ts +1 -0
- package/dist/types/components/LaTeXEditor/MathFieldSkeleton.d.ts +4 -0
- package/dist/types/components/LaTeXEditor/hfmath.d.ts +5 -0
- package/dist/types/components/LaTeXEditor/index.d.ts +12 -0
- package/dist/types/components/LaTeXEditor/lazy.d.ts +3 -0
- package/dist/types/components/MermaidEditor/MermaidEditorSkeleton.d.ts +1 -0
- package/dist/types/components/MermaidEditor/index.d.ts +8 -0
- package/dist/types/components/MermaidEditor/lazy.d.ts +3 -0
- package/dist/types/components/Message.d.ts +15 -0
- package/dist/types/components/Modal.d.ts +16 -0
- package/dist/types/components/MoveablePanel.d.ts +20 -0
- package/dist/types/components/NumberInput.d.ts +24 -0
- package/dist/types/components/OverlayTrigger.d.ts +14 -0
- package/dist/types/components/Popover.d.ts +24 -0
- package/dist/types/components/PopoverMenuItem.d.ts +11 -0
- package/dist/types/components/RadioButton.d.ts +11 -0
- package/dist/types/components/RadioGroup.d.ts +12 -0
- package/dist/types/components/Select.d.ts +23 -0
- package/dist/types/components/SelectCustom.d.ts +12 -0
- package/dist/types/components/Slider.d.ts +26 -0
- package/dist/types/components/Switch.d.ts +11 -0
- package/dist/types/components/Tabs.d.ts +23 -0
- package/dist/types/components/TextArea.d.ts +22 -0
- package/dist/types/components/WritingBoard.d.ts +28 -0
- package/dist/types/components/draggableLayout.d.ts +35 -0
- package/dist/types/components/writingBoardCommands.d.ts +7 -0
- package/dist/types/configs/animation.d.ts +274 -0
- package/dist/types/configs/chart.d.ts +11 -0
- package/dist/types/configs/code.d.ts +193 -0
- package/dist/types/configs/element.d.ts +3 -0
- package/dist/types/configs/exportMediaResolver.d.ts +11 -0
- package/dist/types/configs/exportTabs.d.ts +11 -0
- package/dist/types/configs/featureFlags.d.ts +15 -0
- package/dist/types/configs/font.d.ts +27 -0
- package/dist/types/configs/headerMenu.d.ts +4 -0
- package/dist/types/configs/hotkey.d.ts +42 -0
- package/dist/types/configs/imageClip.d.ts +30 -0
- package/dist/types/configs/inkPaint.d.ts +37 -0
- package/dist/types/configs/laser.d.ts +10 -0
- package/dist/types/configs/lines.d.ts +21 -0
- package/dist/types/configs/localeSwitcher.d.ts +2 -0
- package/dist/types/configs/mediaUpload.d.ts +71 -0
- package/dist/types/configs/mime.d.ts +4 -0
- package/dist/types/configs/shapes.d.ts +26 -0
- package/dist/types/configs/starterPresentation.d.ts +32 -0
- package/dist/types/configs/storage.d.ts +1 -0
- package/dist/types/configs/symbol/arrow.d.ts +2 -0
- package/dist/types/configs/symbol/emoji/action.d.ts +2 -0
- package/dist/types/configs/symbol/emoji/activity.d.ts +2 -0
- package/dist/types/configs/symbol/emoji/expression.d.ts +2 -0
- package/dist/types/configs/symbol/emoji/faunaFlora.d.ts +2 -0
- package/dist/types/configs/symbol/emoji/food.d.ts +2 -0
- package/dist/types/configs/symbol/emoji/objects.d.ts +2 -0
- package/dist/types/configs/symbol/emoji/symbols.d.ts +2 -0
- package/dist/types/configs/symbol/emoji/travel.d.ts +2 -0
- package/dist/types/configs/symbol/graph.d.ts +2 -0
- package/dist/types/configs/symbol/index.d.ts +8 -0
- package/dist/types/configs/symbol/letter.d.ts +2 -0
- package/dist/types/configs/symbol/math.d.ts +2 -0
- package/dist/types/configs/symbol/number.d.ts +2 -0
- package/dist/types/configs/table.d.ts +15 -0
- package/dist/types/configs/templates.d.ts +19 -0
- package/dist/types/configs/textPresets.d.ts +85 -0
- package/dist/types/configs/theme.d.ts +44 -0
- package/dist/types/directive/tooltip.d.ts +5 -0
- package/dist/types/embed/EmbedRoot.d.ts +5 -0
- package/dist/types/embed/agentic/composition.d.ts +84 -0
- package/dist/types/embed/agentic/createAgenticApi.d.ts +11 -0
- package/dist/types/embed/agentic/fixtures.d.ts +30 -0
- package/dist/types/embed/agentic/helpers.d.ts +115 -0
- package/dist/types/embed/agentic/layouts.d.ts +114 -0
- package/dist/types/embed/agentic/manifestDocs.d.ts +73 -0
- package/dist/types/embed/agentic/qa.d.ts +47 -0
- package/dist/types/embed/agentic/styles.d.ts +131 -0
- package/dist/types/embed/agentic/templates.d.ts +31 -0
- package/dist/types/embed/agentic/types.d.ts +2006 -0
- package/dist/types/embed/agentic/validators.d.ts +32 -0
- package/dist/types/embed/createController.d.ts +7 -0
- package/dist/types/embed/index.d.ts +9 -0
- package/dist/types/embed/inferViewport.d.ts +11 -0
- package/dist/types/embed/localeBridge.d.ts +4 -0
- package/dist/types/embed/mount.d.ts +12 -0
- package/dist/types/embed/types.d.ts +183 -0
- package/dist/types/hooks/useAddSlidesOrElements.d.ts +6 -0
- package/dist/types/hooks/useAlignActiveElement.d.ts +5 -0
- package/dist/types/hooks/useAlignElementToCanvas.d.ts +5 -0
- package/dist/types/hooks/useClickOutside.d.ts +7 -0
- package/dist/types/hooks/useCombineElement.d.ts +7 -0
- package/dist/types/hooks/useCopyAndPasteElement.d.ts +7 -0
- package/dist/types/hooks/useCreateElement.d.ts +50 -0
- package/dist/types/hooks/useDeleteElement.d.ts +5 -0
- package/dist/types/hooks/useElementContextmenu.d.ts +6 -0
- package/dist/types/hooks/useExport.d.ts +13 -0
- package/dist/types/hooks/useGlobalHotkey.d.ts +2 -0
- package/dist/types/hooks/useHeldSlideElement.d.ts +9 -0
- package/dist/types/hooks/useHideElement.d.ts +6 -0
- package/dist/types/hooks/useHistorySnapshot.d.ts +6 -0
- package/dist/types/hooks/useHoldAfterOpen.d.ts +2 -0
- package/dist/types/hooks/useImageHandler.d.ts +4 -0
- package/dist/types/hooks/useImport.d.ts +21 -0
- package/dist/types/hooks/useLink.d.ts +6 -0
- package/dist/types/hooks/useLockElement.d.ts +6 -0
- package/dist/types/hooks/useMediaPlayerTeleport.d.ts +5 -0
- package/dist/types/hooks/useMediaPoster.d.ts +8 -0
- package/dist/types/hooks/useMediaQueue.d.ts +24 -0
- package/dist/types/hooks/useMoveElement.d.ts +4 -0
- package/dist/types/hooks/useOrderElement.d.ts +6 -0
- package/dist/types/hooks/useOverlayPhase.d.ts +14 -0
- package/dist/types/hooks/usePasteDataTransfer.d.ts +7 -0
- package/dist/types/hooks/usePasteEvent.d.ts +2 -0
- package/dist/types/hooks/usePasteTextClipboardData.d.ts +8 -0
- package/dist/types/hooks/useScaleCanvas.d.ts +25 -0
- package/dist/types/hooks/useScreening.d.ts +8 -0
- package/dist/types/hooks/useSearch.d.ts +28 -0
- package/dist/types/hooks/useSectionHandler.d.ts +8 -0
- package/dist/types/hooks/useSelectElement.d.ts +5 -0
- package/dist/types/hooks/useShapeFormatPainter.d.ts +4 -0
- package/dist/types/hooks/useSlideBackgroundStyle.d.ts +19 -0
- package/dist/types/hooks/useSlideHandler.d.ts +16 -0
- package/dist/types/hooks/useSlideTheme.d.ts +16 -0
- package/dist/types/hooks/useUniformDisplayElement.d.ts +6 -0
- package/dist/types/i18n/cs/canvas/index.d.ts +3 -0
- package/dist/types/i18n/cs/common/index.d.ts +3 -0
- package/dist/types/i18n/cs/components/index.d.ts +3 -0
- package/dist/types/i18n/cs/configs/index.d.ts +3 -0
- package/dist/types/i18n/cs/editor/index.d.ts +3 -0
- package/dist/types/i18n/cs/export/index.d.ts +3 -0
- package/dist/types/i18n/cs/index.d.ts +3 -0
- package/dist/types/i18n/cs/mobile/index.d.ts +3 -0
- package/dist/types/i18n/cs/screen/index.d.ts +3 -0
- package/dist/types/i18n/en/canvas/index.d.ts +3 -0
- package/dist/types/i18n/en/common/index.d.ts +3 -0
- package/dist/types/i18n/en/components/index.d.ts +3 -0
- package/dist/types/i18n/en/configs/index.d.ts +3 -0
- package/dist/types/i18n/en/editor/index.d.ts +3 -0
- package/dist/types/i18n/en/export/index.d.ts +3 -0
- package/dist/types/i18n/en/index.d.ts +3 -0
- package/dist/types/i18n/en/mobile/index.d.ts +3 -0
- package/dist/types/i18n/en/screen/index.d.ts +3 -0
- package/dist/types/i18n/formatters.d.ts +6 -0
- package/dist/types/i18n/getLL.d.ts +8 -0
- package/dist/types/i18n/i18n-react.d.ts +23 -0
- package/dist/types/i18n/i18n-types.d.ts +10276 -0
- package/dist/types/i18n/i18n-util.async.d.ts +16 -0
- package/dist/types/i18n/i18n-util.d.ts +24 -0
- package/dist/types/i18n/i18n-util.sync.d.ts +4 -0
- package/dist/types/i18n/locale.d.ts +12 -0
- package/dist/types/i18n/pl/canvas/index.d.ts +3 -0
- package/dist/types/i18n/pl/common/index.d.ts +3 -0
- package/dist/types/i18n/pl/components/index.d.ts +3 -0
- package/dist/types/i18n/pl/configs/index.d.ts +3 -0
- package/dist/types/i18n/pl/editor/index.d.ts +3 -0
- package/dist/types/i18n/pl/export/index.d.ts +3 -0
- package/dist/types/i18n/pl/index.d.ts +3 -0
- package/dist/types/i18n/pl/mobile/index.d.ts +3 -0
- package/dist/types/i18n/pl/screen/index.d.ts +3 -0
- package/dist/types/i18n/sk/canvas/index.d.ts +3 -0
- package/dist/types/i18n/sk/common/index.d.ts +3 -0
- package/dist/types/i18n/sk/components/index.d.ts +3 -0
- package/dist/types/i18n/sk/configs/index.d.ts +3 -0
- package/dist/types/i18n/sk/editor/index.d.ts +3 -0
- package/dist/types/i18n/sk/export/index.d.ts +3 -0
- package/dist/types/i18n/sk/index.d.ts +3 -0
- package/dist/types/i18n/sk/mobile/index.d.ts +3 -0
- package/dist/types/i18n/sk/screen/index.d.ts +3 -0
- package/dist/types/i18n/useI18nContext.d.ts +1 -0
- package/dist/types/previewRaster/diffPaintedSlide.d.ts +11 -0
- package/dist/types/previewRaster/index.d.ts +9 -0
- package/dist/types/previewRaster/painters/background.d.ts +2 -0
- package/dist/types/previewRaster/painters/booth.d.ts +13 -0
- package/dist/types/previewRaster/painters/chart.d.ts +2 -0
- package/dist/types/previewRaster/painters/code.d.ts +2 -0
- package/dist/types/previewRaster/painters/image.d.ts +2 -0
- package/dist/types/previewRaster/painters/index.d.ts +3 -0
- package/dist/types/previewRaster/painters/line.d.ts +2 -0
- package/dist/types/previewRaster/painters/media.d.ts +2 -0
- package/dist/types/previewRaster/painters/shape.d.ts +2 -0
- package/dist/types/previewRaster/painters/table.d.ts +2 -0
- package/dist/types/previewRaster/painters/text.d.ts +2 -0
- package/dist/types/previewRaster/planSlideRaster.d.ts +19 -0
- package/dist/types/previewRaster/rasterCache.d.ts +19 -0
- package/dist/types/previewRaster/scheduler.d.ts +4 -0
- package/dist/types/previewRaster/stagePool.d.ts +36 -0
- package/dist/types/previewRaster/stats.d.ts +10 -0
- package/dist/types/previewRaster/subscribeSlides.d.ts +10 -0
- package/dist/types/previewRaster/types.d.ts +12 -0
- package/dist/types/services/fetch.d.ts +2 -0
- package/dist/types/services/index.d.ts +10 -0
- package/dist/types/store/accessors.d.ts +21 -0
- package/dist/types/store/importConfirm.d.ts +13 -0
- package/dist/types/store/index.d.ts +10 -0
- package/dist/types/store/keyboard.d.ts +21 -0
- package/dist/types/store/main.d.ts +83 -0
- package/dist/types/store/screen.d.ts +8 -0
- package/dist/types/store/slides.d.ts +3289 -0
- package/dist/types/store/snapshot.d.ts +16 -0
- package/dist/types/types/css.d.ts +7 -0
- package/dist/types/types/edit.d.ts +118 -0
- package/dist/types/types/export.d.ts +1 -0
- package/dist/types/types/injectKey.d.ts +12 -0
- package/dist/types/types/mobile.d.ts +1 -0
- package/dist/types/types/slides.d.ts +599 -0
- package/dist/types/types/toolbar.d.ts +9 -0
- package/dist/types/utils/agentText.d.ts +28 -0
- package/dist/types/utils/assetBase.d.ts +4 -0
- package/dist/types/utils/canvasHitTest.d.ts +188 -0
- package/dist/types/utils/canvasPointer.d.ts +53 -0
- package/dist/types/utils/canvasZoom.d.ts +36 -0
- package/dist/types/utils/clipboard.d.ts +9 -0
- package/dist/types/utils/clonePlain.d.ts +1 -0
- package/dist/types/utils/codeHighlight.d.ts +84 -0
- package/dist/types/utils/codePptxExport.d.ts +44 -0
- package/dist/types/utils/commandHistory.d.ts +17 -0
- package/dist/types/utils/commitSlideElements.d.ts +6 -0
- package/dist/types/utils/common.d.ts +30 -0
- package/dist/types/utils/crypto.d.ts +10 -0
- package/dist/types/utils/cssm.d.ts +4 -0
- package/dist/types/utils/database.d.ts +20 -0
- package/dist/types/utils/debounce.d.ts +19 -0
- package/dist/types/utils/element.d.ts +369 -0
- package/dist/types/utils/elementOrder.d.ts +8 -0
- package/dist/types/utils/elementOutline.d.ts +41 -0
- package/dist/types/utils/elementPaint.d.ts +129 -0
- package/dist/types/utils/emitter.d.ts +54 -0
- package/dist/types/utils/exportFonts.d.ts +22 -0
- package/dist/types/utils/fitLabel.d.ts +17 -0
- package/dist/types/utils/font.d.ts +14 -0
- package/dist/types/utils/freehand.d.ts +57 -0
- package/dist/types/utils/fullscreen.d.ts +3 -0
- package/dist/types/utils/gestureBind.d.ts +18 -0
- package/dist/types/utils/hotkeyTarget.d.ts +2 -0
- package/dist/types/utils/htmlParser/format.d.ts +3 -0
- package/dist/types/utils/htmlParser/index.d.ts +4 -0
- package/dist/types/utils/htmlParser/lexer.d.ts +2 -0
- package/dist/types/utils/htmlParser/parser.d.ts +15 -0
- package/dist/types/utils/htmlParser/stringify.d.ts +3 -0
- package/dist/types/utils/htmlParser/tags.d.ts +4 -0
- package/dist/types/utils/htmlParser/types.d.ts +55 -0
- package/dist/types/utils/hyperlinkFollow.d.ts +12 -0
- package/dist/types/utils/image.d.ts +25 -0
- package/dist/types/utils/imageBitmapCache.d.ts +6 -0
- package/dist/types/utils/imagePaintSample.d.ts +34 -0
- package/dist/types/utils/importApply.d.ts +31 -0
- package/dist/types/utils/inkCommands.d.ts +68 -0
- package/dist/types/utils/jobProgress.d.ts +36 -0
- package/dist/types/utils/latex.d.ts +27 -0
- package/dist/types/utils/latexToOmml.d.ts +28 -0
- package/dist/types/utils/liveElementOffset.d.ts +56 -0
- package/dist/types/utils/liveElementPaint.d.ts +13 -0
- package/dist/types/utils/liveElementSize.d.ts +33 -0
- package/dist/types/utils/liveLayoutCommit.d.ts +2 -0
- package/dist/types/utils/markdown.d.ts +48 -0
- package/dist/types/utils/math.d.ts +90 -0
- package/dist/types/utils/mediaFile.d.ts +14 -0
- package/dist/types/utils/mediaLayout.d.ts +24 -0
- package/dist/types/utils/mediaPoster.d.ts +12 -0
- package/dist/types/utils/mermaid.d.ts +18 -0
- package/dist/types/utils/message.d.ts +27 -0
- package/dist/types/utils/object.d.ts +10 -0
- package/dist/types/utils/openContextmenu.d.ts +29 -0
- package/dist/types/utils/placeholderLayout.d.ts +64 -0
- package/dist/types/utils/placeholderPaint.d.ts +57 -0
- package/dist/types/utils/portal.d.ts +37 -0
- package/dist/types/utils/pptxImportDiagnostics.d.ts +36 -0
- package/dist/types/utils/pptxImportFidelity.d.ts +138 -0
- package/dist/types/utils/pptxImportFonts.d.ts +34 -0
- package/dist/types/utils/pptxImportMetrics.d.ts +29 -0
- package/dist/types/utils/pptxImportPicture.d.ts +30 -0
- package/dist/types/utils/pptxImportText.d.ts +26 -0
- package/dist/types/utils/pptxSourcePackage.d.ts +19 -0
- package/dist/types/utils/pptxStructuredText.d.ts +6 -0
- package/dist/types/utils/pptxUnit.d.ts +19 -0
- package/dist/types/utils/prosemirror/caret.d.ts +22 -0
- package/dist/types/utils/prosemirror/commands/applyPlaceholderStyles.d.ts +29 -0
- package/dist/types/utils/prosemirror/commands/replaceText.d.ts +2 -0
- package/dist/types/utils/prosemirror/commands/setListStyle.d.ts +4 -0
- package/dist/types/utils/prosemirror/commands/setTextAlign.d.ts +5 -0
- package/dist/types/utils/prosemirror/commands/setTextIndent.d.ts +3 -0
- package/dist/types/utils/prosemirror/commands/toggleList.d.ts +8 -0
- package/dist/types/utils/prosemirror/commands/wrapEmptyBulletList.d.ts +5 -0
- package/dist/types/utils/prosemirror/commitEditor.d.ts +7 -0
- package/dist/types/utils/prosemirror/commitPolicy.d.ts +11 -0
- package/dist/types/utils/prosemirror/index.d.ts +6 -0
- package/dist/types/utils/prosemirror/plugins/index.d.ts +7 -0
- package/dist/types/utils/prosemirror/plugins/inputrules.d.ts +7 -0
- package/dist/types/utils/prosemirror/plugins/keymap.d.ts +3 -0
- package/dist/types/utils/prosemirror/plugins/placeholder.d.ts +2 -0
- package/dist/types/utils/prosemirror/plugins/placeholderFill.d.ts +3 -0
- package/dist/types/utils/prosemirror/richTextAttrsFromElement.d.ts +3 -0
- package/dist/types/utils/prosemirror/schema/index.d.ts +26 -0
- package/dist/types/utils/prosemirror/schema/marks.d.ts +18 -0
- package/dist/types/utils/prosemirror/schema/nodes.d.ts +12 -0
- package/dist/types/utils/prosemirror/selection.d.ts +15 -0
- package/dist/types/utils/prosemirror/utils.d.ts +69 -0
- package/dist/types/utils/scribbleJoin.d.ts +27 -0
- package/dist/types/utils/selection.d.ts +1 -0
- package/dist/types/utils/slideOrder.d.ts +3 -0
- package/dist/types/utils/snap.d.ts +69 -0
- package/dist/types/utils/spatial/hitIndex.d.ts +18 -0
- package/dist/types/utils/spatial/index.d.ts +3 -0
- package/dist/types/utils/spatial/segment.d.ts +8 -0
- package/dist/types/utils/spatial/snapIndex.d.ts +24 -0
- package/dist/types/utils/svg2Base64.d.ts +1 -0
- package/dist/types/utils/svgPathParser.d.ts +12 -0
- package/dist/types/utils/textBoxLock.d.ts +17 -0
- package/dist/types/utils/textContrast.d.ts +204 -0
- package/dist/types/utils/textFit.d.ts +195 -0
- package/dist/types/utils/textParser.d.ts +5 -0
- package/dist/types/utils/tooltipBind.d.ts +10 -0
- package/dist/types/views/Editor/Canvas/AlignmentLine.d.ts +13 -0
- package/dist/types/views/Editor/Canvas/CanvasScrollbars.d.ts +16 -0
- package/dist/types/views/Editor/Canvas/EditableElement.d.ts +13 -0
- package/dist/types/views/Editor/Canvas/EditableElement.equal.d.ts +17 -0
- package/dist/types/views/Editor/Canvas/ElementCreateSelection.d.ts +6 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/AnimationIndex.d.ts +9 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/FloatingToolbar/BorderPanel.d.ts +2 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/FloatingToolbar/ChartToolbar.d.ts +6 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/FloatingToolbar/CodeToolbar.d.ts +6 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/FloatingToolbar/ImageToolbar.d.ts +6 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/FloatingToolbar/LatexToolbar.d.ts +6 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/FloatingToolbar/LineToolbar.d.ts +6 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/FloatingToolbar/ShapeToolbar.d.ts +7 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/FloatingToolbar/TableToolbar.d.ts +6 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/FloatingToolbar/TextStyleControls.d.ts +2 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/FloatingToolbar/TextToolbar.d.ts +6 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/FloatingToolbar/index.d.ts +8 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/LinkHandler.d.ts +8 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/floatCompare.d.ts +15 -0
- package/dist/types/views/Editor/Canvas/ElementFloatLayer/index.d.ts +12 -0
- package/dist/types/views/Editor/Canvas/GridLines.d.ts +6 -0
- package/dist/types/views/Editor/Canvas/HitLayer.d.ts +19 -0
- package/dist/types/views/Editor/Canvas/LinkDialog.d.ts +5 -0
- package/dist/types/views/Editor/Canvas/MouseSelection.d.ts +8 -0
- package/dist/types/views/Editor/Canvas/Operate/BorderLine.d.ts +11 -0
- package/dist/types/views/Editor/Canvas/Operate/CommonElementOperate.d.ts +11 -0
- package/dist/types/views/Editor/Canvas/Operate/ContextMenuBridge.d.ts +9 -0
- package/dist/types/views/Editor/Canvas/Operate/ImageElementOperate.d.ts +10 -0
- package/dist/types/views/Editor/Canvas/Operate/LineElementOperate.d.ts +9 -0
- package/dist/types/views/Editor/Canvas/Operate/MediaElementOperate.d.ts +11 -0
- package/dist/types/views/Editor/Canvas/Operate/MultiSelectOperate.d.ts +11 -0
- package/dist/types/views/Editor/Canvas/Operate/ResizeHandler.d.ts +11 -0
- package/dist/types/views/Editor/Canvas/Operate/RotateHandler.d.ts +8 -0
- package/dist/types/views/Editor/Canvas/Operate/ShapeElementOperate.d.ts +11 -0
- package/dist/types/views/Editor/Canvas/Operate/TableElementOperate.d.ts +10 -0
- package/dist/types/views/Editor/Canvas/Operate/TextElementOperate.d.ts +10 -0
- package/dist/types/views/Editor/Canvas/Operate/index.d.ts +25 -0
- package/dist/types/views/Editor/Canvas/Operate/operateCompare.d.ts +33 -0
- package/dist/types/views/Editor/Canvas/Operate/operateMemo.d.ts +12 -0
- package/dist/types/views/Editor/Canvas/Operate/stopHandleEvent.d.ts +3 -0
- package/dist/types/views/Editor/Canvas/Operate/useLatest.d.ts +2 -0
- package/dist/types/views/Editor/Canvas/Ruler.d.ts +14 -0
- package/dist/types/views/Editor/Canvas/ShapeCreateCanvas.d.ts +7 -0
- package/dist/types/views/Editor/Canvas/ViewportBackground.d.ts +2 -0
- package/dist/types/views/Editor/Canvas/elementListSync.d.ts +12 -0
- package/dist/types/views/Editor/Canvas/hooks/useCommonOperate.d.ts +44 -0
- package/dist/types/views/Editor/Canvas/hooks/useDragElement.d.ts +6 -0
- package/dist/types/views/Editor/Canvas/hooks/useDragLineElement.d.ts +6 -0
- package/dist/types/views/Editor/Canvas/hooks/useDrop.d.ts +4 -0
- package/dist/types/views/Editor/Canvas/hooks/useInsertFromCreateSelection.d.ts +13 -0
- package/dist/types/views/Editor/Canvas/hooks/useMouseSelection.d.ts +14 -0
- package/dist/types/views/Editor/Canvas/hooks/useMoveShapeKeypoint.d.ts +5 -0
- package/dist/types/views/Editor/Canvas/hooks/useOperateChrome.d.ts +11 -0
- package/dist/types/views/Editor/Canvas/hooks/useRotateElement.d.ts +7 -0
- package/dist/types/views/Editor/Canvas/hooks/useRotateGroupElement.d.ts +7 -0
- package/dist/types/views/Editor/Canvas/hooks/useScaleElement.d.ts +12 -0
- package/dist/types/views/Editor/Canvas/hooks/useSelectElement.d.ts +5 -0
- package/dist/types/views/Editor/Canvas/hooks/useViewportSize.d.ts +13 -0
- package/dist/types/views/Editor/Canvas/index.d.ts +6 -0
- package/dist/types/views/Editor/CanvasTool/ChartPool.d.ts +8 -0
- package/dist/types/views/Editor/CanvasTool/LinePool.d.ts +10 -0
- package/dist/types/views/Editor/CanvasTool/MediaPicker.d.ts +7 -0
- package/dist/types/views/Editor/CanvasTool/SVGPathEditor.d.ts +8 -0
- package/dist/types/views/Editor/CanvasTool/ShapeItemThumbnail.d.ts +12 -0
- package/dist/types/views/Editor/CanvasTool/ShapePool.d.ts +15 -0
- package/dist/types/views/Editor/CanvasTool/SymbolPool.d.ts +7 -0
- package/dist/types/views/Editor/CanvasTool/TableGenerator.d.ts +12 -0
- package/dist/types/views/Editor/CanvasTool/VirtualSymbolGrid.d.ts +10 -0
- package/dist/types/views/Editor/CanvasTool/index.d.ts +7 -0
- package/dist/types/views/Editor/ChartDataEditorDialog.d.ts +2 -0
- package/dist/types/views/Editor/CodeEditorDialog.d.ts +2 -0
- package/dist/types/views/Editor/EditorHeader/HotkeyDoc.d.ts +6 -0
- package/dist/types/views/Editor/EditorHeader/index.d.ts +6 -0
- package/dist/types/views/Editor/ExportDialog/index.d.ts +4 -0
- package/dist/types/views/Editor/ImportReplaceDialog.d.ts +2 -0
- package/dist/types/views/Editor/InlineMathEditorDialog.d.ts +2 -0
- package/dist/types/views/Editor/LatexEditorDialog.d.ts +2 -0
- package/dist/types/views/Editor/MarkupPanel.d.ts +2 -0
- package/dist/types/views/Editor/MermaidEditorDialog.d.ts +2 -0
- package/dist/types/views/Editor/NotesPanel.d.ts +2 -0
- package/dist/types/views/Editor/Remark/Editor.d.ts +6 -0
- package/dist/types/views/Editor/Remark/index.d.ts +11 -0
- package/dist/types/views/Editor/SearchPanel.d.ts +2 -0
- package/dist/types/views/Editor/SelectPanel.d.ts +2 -0
- package/dist/types/views/Editor/SlideCodePanel.d.ts +11 -0
- package/dist/types/views/Editor/Thumbnails/ExportThemeDialog.d.ts +10 -0
- package/dist/types/views/Editor/Thumbnails/LayoutPicker.d.ts +9 -0
- package/dist/types/views/Editor/Thumbnails/index.d.ts +6 -0
- package/dist/types/views/Editor/Thumbnails/paneSize.d.ts +20 -0
- package/dist/types/views/Editor/Thumbnails/useThumbnailVirtualizer.d.ts +13 -0
- package/dist/types/views/Editor/Toolbar/ElementAnimationPanel.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/ElementPositionPanel.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/ElementStylePanel/AudioStylePanel.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/ElementStylePanel/ChartStylePanel/ThemeColorsSetting.d.ts +4 -0
- package/dist/types/views/Editor/Toolbar/ElementStylePanel/ChartStylePanel/index.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/ElementStylePanel/CodeStylePanel.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/ElementStylePanel/ImageStylePanel.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/ElementStylePanel/LatexStylePanel.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/ElementStylePanel/LineStylePanel.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/ElementStylePanel/ShapeStylePanel.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/ElementStylePanel/TableStylePanel.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/ElementStylePanel/TextStylePanel.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/ElementStylePanel/VideoStylePanel.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/ElementStylePanel/index.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/MultiPositionPanel.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/MultiStylePanel.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/SlideAnimationPanel.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/SlideDesignPanel/ViewportSizeSetting.d.ts +7 -0
- package/dist/types/views/Editor/Toolbar/SlideDesignPanel/index.d.ts +7 -0
- package/dist/types/views/Editor/Toolbar/common/AnimationPool.d.ts +17 -0
- package/dist/types/views/Editor/Toolbar/common/BoxInsetControl.d.ts +14 -0
- package/dist/types/views/Editor/Toolbar/common/ElementColorMask.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/common/ElementFilter.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/common/ElementFlip.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/common/ElementOpacity.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/common/ElementOutline.d.ts +5 -0
- package/dist/types/views/Editor/Toolbar/common/ElementShadow.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/common/PanelSection.d.ts +10 -0
- package/dist/types/views/Editor/Toolbar/common/RichTextBase.d.ts +10 -0
- package/dist/types/views/Editor/Toolbar/common/SVGLine.d.ts +10 -0
- package/dist/types/views/Editor/Toolbar/common/TextStyleContent.d.ts +2 -0
- package/dist/types/views/Editor/Toolbar/common/handleElement.d.ts +19 -0
- package/dist/types/views/Editor/Toolbar/common/panelSwitch.d.ts +4 -0
- package/dist/types/views/Editor/Toolbar/common/textBoxStyle.d.ts +25 -0
- package/dist/types/views/Editor/Toolbar/index.d.ts +6 -0
- package/dist/types/views/Editor/Toolbar/paneSize.d.ts +15 -0
- package/dist/types/views/Editor/index.d.ts +2 -0
- package/dist/types/views/Editor/slideCodeMirror.d.ts +17 -0
- package/dist/types/views/Editor/slideCodeUtils.d.ts +14 -0
- package/dist/types/views/Editor/slideValidator.d.ts +12 -0
- package/dist/types/views/Mobile/MobileEditor/ElementToolbar.d.ts +1 -0
- package/dist/types/views/Mobile/MobileEditor/Header.d.ts +5 -0
- package/dist/types/views/Mobile/MobileEditor/MobileEditableElement.d.ts +7 -0
- package/dist/types/views/Mobile/MobileEditor/MobileOperate.d.ts +12 -0
- package/dist/types/views/Mobile/MobileEditor/SlideToolbar.d.ts +1 -0
- package/dist/types/views/Mobile/MobileEditor/index.d.ts +5 -0
- package/dist/types/views/Mobile/MobilePlayer.d.ts +5 -0
- package/dist/types/views/Mobile/MobilePreview.d.ts +5 -0
- package/dist/types/views/Mobile/MobileThumbnails.d.ts +3 -0
- package/dist/types/views/Mobile/index.d.ts +1 -0
- package/dist/types/views/Screen/AudienceView.d.ts +1 -0
- package/dist/types/views/Screen/BaseView.d.ts +3 -0
- package/dist/types/views/Screen/BottomThumbnails.d.ts +1 -0
- package/dist/types/views/Screen/CountdownTimer.d.ts +6 -0
- package/dist/types/views/Screen/LaserColorSwatches.d.ts +8 -0
- package/dist/types/views/Screen/LaserTrailOverlay.d.ts +11 -0
- package/dist/types/views/Screen/PresenterToolbar.d.ts +30 -0
- package/dist/types/views/Screen/PresenterView.d.ts +3 -0
- package/dist/types/views/Screen/ScreenElement.d.ts +12 -0
- package/dist/types/views/Screen/ScreenShell.d.ts +2 -0
- package/dist/types/views/Screen/ScreenSlide.d.ts +11 -0
- package/dist/types/views/Screen/ScreenSlideList.d.ts +15 -0
- package/dist/types/views/Screen/SlideThumbnails.d.ts +7 -0
- package/dist/types/views/Screen/WritingBoardTool.d.ts +9 -0
- package/dist/types/views/Screen/hooks/useExecPlay.d.ts +33 -0
- package/dist/types/views/Screen/hooks/useFullscreen.d.ts +5 -0
- package/dist/types/views/Screen/hooks/useScreenTools.d.ts +20 -0
- package/dist/types/views/Screen/hooks/useSlideSize.d.ts +11 -0
- package/dist/types/views/Screen/index.d.ts +2 -0
- package/dist/types/views/Screen/lazy.d.ts +2 -0
- package/dist/types/views/Screen/screenWindow.d.ts +11 -0
- package/dist/types/views/components/ThumbnailSlide/index.d.ts +13 -0
- package/dist/types/views/components/ThumbnailSlide/paintedSlide.d.ts +29 -0
- package/dist/types/views/components/element/AudioElement/ScreenAudioElement.d.ts +6 -0
- package/dist/types/views/components/element/AudioElement/index.d.ts +9 -0
- package/dist/types/views/components/element/ChartElement/BaseChartElement.d.ts +9 -0
- package/dist/types/views/components/element/ChartElement/Chart.d.ts +13 -0
- package/dist/types/views/components/element/ChartElement/chartBooth.d.ts +2 -0
- package/dist/types/views/components/element/ChartElement/chartOption.d.ts +17 -0
- package/dist/types/views/components/element/ChartElement/index.d.ts +9 -0
- package/dist/types/views/components/element/CodeElement/BaseCodeElement.d.ts +6 -0
- package/dist/types/views/components/element/CodeElement/CodeBlockSkeleton.d.ts +13 -0
- package/dist/types/views/components/element/CodeElement/CodeContent.d.ts +6 -0
- package/dist/types/views/components/element/CodeElement/index.d.ts +9 -0
- package/dist/types/views/components/element/ElementOutline.d.ts +8 -0
- package/dist/types/views/components/element/ImageElement/BaseImageElement.d.ts +6 -0
- package/dist/types/views/components/element/ImageElement/ImageBitmapSurface.d.ts +10 -0
- package/dist/types/views/components/element/ImageElement/ImageClipHandler.d.ts +15 -0
- package/dist/types/views/components/element/ImageElement/ImageOutline/ImageEllipseOutline.d.ts +8 -0
- package/dist/types/views/components/element/ImageElement/ImageOutline/ImagePolygonOutline.d.ts +9 -0
- package/dist/types/views/components/element/ImageElement/ImageOutline/ImageRectOutline.d.ts +9 -0
- package/dist/types/views/components/element/ImageElement/ImageOutline/index.d.ts +6 -0
- package/dist/types/views/components/element/ImageElement/index.d.ts +9 -0
- package/dist/types/views/components/element/ImageElement/useClipImage.d.ts +10 -0
- package/dist/types/views/components/element/ImageElement/useFilter.d.ts +4 -0
- package/dist/types/views/components/element/ImageElement/useImageBitmap.d.ts +2 -0
- package/dist/types/views/components/element/LatexElement/BaseLatexElement.d.ts +6 -0
- package/dist/types/views/components/element/LatexElement/LatexContent.d.ts +6 -0
- package/dist/types/views/components/element/LatexElement/index.d.ts +9 -0
- package/dist/types/views/components/element/LineElement/BaseLineElement.d.ts +6 -0
- package/dist/types/views/components/element/LineElement/LinePointMarker.d.ts +12 -0
- package/dist/types/views/components/element/LineElement/index.d.ts +9 -0
- package/dist/types/views/components/element/MediaPlayer/index.d.ts +20 -0
- package/dist/types/views/components/element/MediaPlayer/useMSE.d.ts +4 -0
- package/dist/types/views/components/element/MediaPlayer/useMediaPlayback.d.ts +67 -0
- package/dist/types/views/components/element/MermaidElement/BaseMermaidElement.d.ts +6 -0
- package/dist/types/views/components/element/MermaidElement/MermaidContent.d.ts +6 -0
- package/dist/types/views/components/element/MermaidElement/index.d.ts +9 -0
- package/dist/types/views/components/element/ProsemirrorEditor.d.ts +60 -0
- package/dist/types/views/components/element/ShapeElement/BaseShapeElement.d.ts +6 -0
- package/dist/types/views/components/element/ShapeElement/GradientDefs.d.ts +9 -0
- package/dist/types/views/components/element/ShapeElement/PatternDefs.d.ts +6 -0
- package/dist/types/views/components/element/ShapeElement/index.d.ts +10 -0
- package/dist/types/views/components/element/ShapeElement/shapePaintEqual.d.ts +15 -0
- package/dist/types/views/components/element/TableElement/BaseTableElement.d.ts +6 -0
- package/dist/types/views/components/element/TableElement/CustomTextarea.d.ts +12 -0
- package/dist/types/views/components/element/TableElement/EditableTable.d.ts +19 -0
- package/dist/types/views/components/element/TableElement/StaticTable.d.ts +12 -0
- package/dist/types/views/components/element/TableElement/cellEdit.d.ts +15 -0
- package/dist/types/views/components/element/TableElement/gridCompare.d.ts +28 -0
- package/dist/types/views/components/element/TableElement/index.d.ts +10 -0
- package/dist/types/views/components/element/TableElement/useHideCells.d.ts +4 -0
- package/dist/types/views/components/element/TableElement/useMathReady.d.ts +4 -0
- package/dist/types/views/components/element/TableElement/useSubThemeColor.d.ts +9 -0
- package/dist/types/views/components/element/TableElement/utils.d.ts +17 -0
- package/dist/types/views/components/element/TextElement/BaseTextElement.d.ts +15 -0
- package/dist/types/views/components/element/TextElement/index.d.ts +13 -0
- package/dist/types/views/components/element/VideoElement/ScreenVideoElement.d.ts +6 -0
- package/dist/types/views/components/element/VideoElement/index.d.ts +9 -0
- package/dist/types/views/components/element/hooks/useAutoShapeTextHeight.d.ts +2 -0
- package/dist/types/views/components/element/hooks/useElementFill.d.ts +5 -0
- package/dist/types/views/components/element/hooks/useElementFlip.d.ts +4 -0
- package/dist/types/views/components/element/hooks/useElementOutline.d.ts +10 -0
- package/dist/types/views/components/element/hooks/useElementShadow.d.ts +5 -0
- package/dist/types/views/components/element/hooks/useLiveBoxFit.d.ts +12 -0
- package/dist/types/views/components/element/hooks/useTextFit.d.ts +26 -0
- package/docs/RELEASE.md +14 -0
- package/package.json +26 -17
|
@@ -0,0 +1,2232 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"package": "fika-editor",
|
|
4
|
+
"packageVersion": "3.0.1",
|
|
5
|
+
"generatedAt": "2026-08-15T05:57:45.719Z",
|
|
6
|
+
"summary": "Authoring guidance for the Fika agentic bridge. SLIDE NUMBERS START AT 1 everywhere: payload.index, result.data.slideIndex, screenshot.slideIndex, getState().slideIndex, selectedSlideIndexes, plan.slides[].index, and plan.loudIndex are the SAME 1-based number — never subtract or add 1. First slide = 1; last existing = slideCount; omit index to append; index === slideCount+1 also appends; 1 ≤ index ≤ slideCount on createFromLayout REPLACES that slide. The recommended way to build a deck from scratch: (1) ONE bootstrap call deck.setup({ styleId, slideCount, title? }) — applies the visual identity, returns the composition plan (anchors + loud slide), and optionally builds the title slide together; prefer this over separate styles.catalog / deck.applyStyle / deck.planComposition, then (2) for each slide pick a recipe + visual variant from layouts.catalog and add it with slides.createFromLayout({ layoutId, variantId, slots }), preferring a variant whose anchor matches the plan (when variantId is omitted the engine picks a filled/full-width match; an explicit variantId is kept). The engine themes, positions, sanitizes slot markers the layout already draws, AND auto-fits every text box (via responsive measurement) so content does not overflow, and it runs a deterministic QA pass on each slide (overlap / contrast / density / monotony) so you can fix issues in the same turn. Author slot content as Markdown/plain text or structured values (arrays for bullets, { labels, series } for charts) — never hand-written HTML. Host-registered templates (deck.applyTemplate + slides.insertFromTemplate) are optional when the embed host supplies them. Avoid blank slides.create / hand-placed elements unless no layout fits. Pair this with the machine schema (command payload/return types) in the same manifest.",
|
|
7
|
+
"commandCount": 179,
|
|
8
|
+
"designSystem": {
|
|
9
|
+
"summary": "Fika lays elements out in a fixed pixel coordinate space, not inches. Prefer the styles + layouts flow (deck.applyStyle + slides.createFromLayout) so colors, contrast, fonts and layout are chosen for you instead of hand-picked. Host-registered templates (deck.applyTemplate + slides.insertFromTemplate) are optional when the embed host supplies them. These tokens describe the *fallback* defaults for manual placement only.",
|
|
10
|
+
"coordinateSystem": {
|
|
11
|
+
"summary": "The default 16:9 canvas is 1000 x 562.5 px (viewport.size = 1000, viewport.ratio = 0.5625). Origin (0,0) is the top-left corner. Every element has left, top, width, height in px and rotate in degrees.",
|
|
12
|
+
"notes": [
|
|
13
|
+
"Canvas width = viewport.size; canvas height = viewport.size * viewport.ratio. For the default 16:9 deck that is 1000 x 562.5 px.",
|
|
14
|
+
"Keep a 40px safe margin from every edge (left/top >= 40, and left+width <= 960, top+height <= 522 on the default canvas).",
|
|
15
|
+
"Coordinates are absolute px, NOT inches/points. To port an inches-based layout, multiply inches by 100 (10in wide deck -> 1000px).",
|
|
16
|
+
"rotate is clockwise degrees about the element center. Lines use start/end points instead of width/height/rotate.",
|
|
17
|
+
"When you use slides.insertFromTemplate you do NOT compute coordinates or sizes — the template slide already has designed elements. The notes above only matter for manual element placement.",
|
|
18
|
+
"For manual text, write Markdown or plain text (text.create({ markdown }) / { content } as plain text). The engine stores text as HTML internally; you should not author raw HTML tags yourself (they are escaped and show as literal text). Per-run font sizing is an advanced manual concern — reach for a layout instead."
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
"counting": {
|
|
22
|
+
"summary": "Every slide number the agent sends or receives is 1-based. First slide = 1. There is no slide 0.",
|
|
23
|
+
"notes": [
|
|
24
|
+
"payload.index, result.data.slideIndex, screenshot.slideIndex, getState().slideIndex, selectedSlideIndexes, plan.slides[].index, and plan.loudIndex all use the SAME 1-based number. If a screenshot says slide 6, rebuild with index: 6.",
|
|
25
|
+
"plan.slides is a JavaScript array (first entry at [0]), but each entry.index is the 1-based slide number. plan.slides[0].index === 1. Always pass entry.index or plan.loudIndex — never the array offset.",
|
|
26
|
+
"Omit index to append (or replace the blank starter / a duplicate title after setup). index === slideCount + 1 also appends. 1 ≤ index ≤ slideCount on slides.createFromLayout REPLACES that slide in place.",
|
|
27
|
+
"QA warnings say “Slide 6” meaning slide number 6 (the same number you send as index).",
|
|
28
|
+
"Element z-order, table row/col, and chart series indexes are NOT slide numbers — those stay 0-based."
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
"tokens": {
|
|
32
|
+
"summary": "The neutral fallback palette/type scale (px) used when no style or host template theme is applied. PREFER deck.setup / deck.applyStyle. Override individual tokens with deck.setTheme only when a style is not enough.",
|
|
33
|
+
"colors": {
|
|
34
|
+
"background": "#FFFFFF",
|
|
35
|
+
"primary": "#1F4E79",
|
|
36
|
+
"accent": "#2E75B6",
|
|
37
|
+
"body": "#2D2D2D",
|
|
38
|
+
"muted": "#777777",
|
|
39
|
+
"rule": "#CCCCCC",
|
|
40
|
+
"highlight": "#FFF2CC"
|
|
41
|
+
},
|
|
42
|
+
"fontFamily": "Arial",
|
|
43
|
+
"fontSizePx": {
|
|
44
|
+
"display": 64,
|
|
45
|
+
"title": 40,
|
|
46
|
+
"sectionHeader": 30,
|
|
47
|
+
"body": 24,
|
|
48
|
+
"label": 18,
|
|
49
|
+
"caption": 14
|
|
50
|
+
},
|
|
51
|
+
"spacingPx": {
|
|
52
|
+
"margin": 40,
|
|
53
|
+
"gutter": 24,
|
|
54
|
+
"ruleThickness": 3
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"domains": [
|
|
59
|
+
{
|
|
60
|
+
"id": "deck",
|
|
61
|
+
"commandCount": 11,
|
|
62
|
+
"title": "Deck",
|
|
63
|
+
"summary": "Whole-document state: title, theme, viewport, templates, plus full get/set/patch.",
|
|
64
|
+
"whenToUse": "Apply a style with deck.setup / deck.applyStyle up front; set the viewport once; use whole-document import/export at persistence boundaries."
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": "import",
|
|
68
|
+
"commandCount": 3,
|
|
69
|
+
"title": "Import",
|
|
70
|
+
"summary": "Replace the deck from a JSON-safe document (json / fika / pptxSafe).",
|
|
71
|
+
"whenToUse": "Load a whole deck the host already reduced to a serializable payload."
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"id": "export",
|
|
75
|
+
"commandCount": 1,
|
|
76
|
+
"title": "Export",
|
|
77
|
+
"summary": "Serializable JSON snapshot of the deck.",
|
|
78
|
+
"whenToUse": "Persist/autosave from documentChanged events."
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"id": "templates",
|
|
82
|
+
"commandCount": 2,
|
|
83
|
+
"title": "Templates",
|
|
84
|
+
"summary": "Host-registered presentation templates supplied by the embed host (templates + templateLoaders). templates.catalog lists them; templates.slidesCatalog lists insertable slide slugs by type; deck.applyTemplate sets the deck theme. The catalog is empty unless the host registered templates.",
|
|
85
|
+
"whenToUse": "Only when templates.catalog is non-empty. Otherwise use styles + layouts."
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "styles",
|
|
89
|
+
"commandCount": 1,
|
|
90
|
+
"title": "Styles",
|
|
91
|
+
"summary": "Curated visual-identity presets (academic, minimal, bold, playful) — each a contrast-safe color palette with named roles + a heading/body font pairing + a type scale + a signature MOTIF (one distinctive repeated mark: a double rule, hairline, offset block, or rounded chip). styles.catalog lists them; deck.applyStyle picks ONE and records theme.styleId.",
|
|
92
|
+
"whenToUse": "FIRST, when building a deck from scratch. Pick one style for the whole deck so every layout inherits a coherent, legible look and a consistent motif."
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "layouts",
|
|
96
|
+
"commandCount": 1,
|
|
97
|
+
"title": "Layouts",
|
|
98
|
+
"summary": "Compositional slide recipes (title, section, closing, bullets, twoColumn, imageText, imageFull, bigStat, quote, chart, comparison, cards, numbered), each with 1–4 visual VARIANTS that share slots but compose them differently (different anchor, background treatment, motif placement). layouts.catalog lists each layout's variants and content slots; slides.createFromLayout builds a themed, positioned slide from a layout id + variantId + slots.",
|
|
99
|
+
"whenToUse": "After deck.setup (or applyStyle + planComposition), once per slide. Pick the layout whose composition matches the slide's job, then pick the VARIANT whose anchor matches the planned anchor for that slide position (this is what keeps consecutive slides from looking identical). Fill its slots with content. The engine themes, positions and auto-fits text to each box, so focus on clear, concise content rather than exact character counts."
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "slides",
|
|
103
|
+
"commandCount": 19,
|
|
104
|
+
"title": "Slides",
|
|
105
|
+
"summary": "Create slides from layouts (slides.createFromLayout); optionally insert host-registered template slides (slides.insertFromTemplate); read, update, delete, duplicate, move, select; set background, transition and speaker remark.",
|
|
106
|
+
"whenToUse": "Prefer slides.createFromLayout (one call per slide). After insert, use text.setMarkdown on the returned placeholderElementIds/textElementIds. Avoid slides.create for deck building."
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"id": "elements",
|
|
110
|
+
"commandCount": 33,
|
|
111
|
+
"title": "Elements",
|
|
112
|
+
"summary": "Generic element CRUD plus transform, ordering, grouping, lock/hide, and shared styling (outline, shadow, fill, link).",
|
|
113
|
+
"whenToUse": "Use the generic create/update when you want one call across element types, or the typed sub-domains (text/shapes/charts/...) for richer helpers."
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"id": "latex",
|
|
117
|
+
"commandCount": 3,
|
|
118
|
+
"title": "LaTeX",
|
|
119
|
+
"summary": "Standalone formula ELEMENTS rendered from LaTeX (a display equation that occupies its own block).",
|
|
120
|
+
"whenToUse": "Only for a big display equation that stands on its own line. For inline math inside a sentence, bullet, heading or any layout slot, write $…$ in the Markdown/slot text instead (it typesets via KaTeX) — do NOT add a separate latex element for math embedded in prose."
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"id": "text",
|
|
124
|
+
"commandCount": 11,
|
|
125
|
+
"title": "Text",
|
|
126
|
+
"summary": "Text element create/update plus content helpers. Author content as Markdown (text.create({ markdown }) / text.setMarkdown) or plain text.",
|
|
127
|
+
"whenToUse": "For manual slides only — layouts already place titles, body and captions. Pass Markdown or plain text; do NOT write raw HTML tags (they are escaped and show as literal text). The literal-HTML path (text.setContent / { content }) is reserved for intentionally rendering code-like markup."
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"id": "lines",
|
|
131
|
+
"commandCount": 6,
|
|
132
|
+
"title": "Lines",
|
|
133
|
+
"summary": "Straight/curved connectors with arrowheads and direction.",
|
|
134
|
+
"whenToUse": "Draw rules, arrows, and connectors. Lines use start/end points, not width/height."
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"id": "richText",
|
|
138
|
+
"commandCount": 3,
|
|
139
|
+
"title": "Rich text",
|
|
140
|
+
"summary": "Document-model edits to a text element's prose: set content, run styles and paragraph attributes.",
|
|
141
|
+
"whenToUse": "Use when you need paragraph alignment / inline run styling on an existing text element."
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"id": "animations",
|
|
145
|
+
"commandCount": 9,
|
|
146
|
+
"title": "Animations",
|
|
147
|
+
"summary": "Per-slide entrance/emphasis/exit animations; list, catalog, create, reorder, trigger and duration.",
|
|
148
|
+
"whenToUse": "Reveal content progressively. Read animations.catalog for valid effect keys first."
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"id": "tables",
|
|
152
|
+
"commandCount": 10,
|
|
153
|
+
"title": "Tables",
|
|
154
|
+
"summary": "Table create and cell/row/column edits, styling, merge/split.",
|
|
155
|
+
"whenToUse": "Comparison grids and small data tables. Keep them small enough to read at body size."
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"id": "charts",
|
|
159
|
+
"commandCount": 10,
|
|
160
|
+
"title": "Charts",
|
|
161
|
+
"summary": "Chart element create plus type/data/labels/legends/series/options.",
|
|
162
|
+
"whenToUse": "Show one quantitative finding per slide. Set data with labels + series, then annotate the takeaway in text."
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"id": "images",
|
|
166
|
+
"commandCount": 14,
|
|
167
|
+
"title": "Images",
|
|
168
|
+
"summary": "Image element styling: source, clip/crop, radius, filters, flip, shadow, color mask, set-as-background.",
|
|
169
|
+
"whenToUse": "Place and style raster art. Resolve media to a URL/data URL before calling the bridge."
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"id": "media",
|
|
173
|
+
"commandCount": 4,
|
|
174
|
+
"title": "Media",
|
|
175
|
+
"summary": "JSON-safe image/video/audio source assignment with mime/ext inference.",
|
|
176
|
+
"whenToUse": "Attach already-resolved media URLs to elements."
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"id": "videos",
|
|
180
|
+
"commandCount": 8,
|
|
181
|
+
"title": "Videos",
|
|
182
|
+
"summary": "Video element source, poster, playback, autoplay, size, position.",
|
|
183
|
+
"whenToUse": "Embed a video clip with a poster frame."
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"id": "audio",
|
|
187
|
+
"commandCount": 7,
|
|
188
|
+
"title": "Audio",
|
|
189
|
+
"summary": "Audio element create plus source, playback, icon, transform.",
|
|
190
|
+
"whenToUse": "Add narration or sound; style the speaker icon."
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"id": "notes",
|
|
194
|
+
"commandCount": 4,
|
|
195
|
+
"title": "Notes",
|
|
196
|
+
"summary": "Slide comment threads: notes and replies.",
|
|
197
|
+
"whenToUse": "Author review comments; not the same as the speaker remark (slides.setRemark)."
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"id": "sections",
|
|
201
|
+
"commandCount": 7,
|
|
202
|
+
"title": "Sections",
|
|
203
|
+
"summary": "Group slides into named sections for long decks.",
|
|
204
|
+
"whenToUse": "Add a section per major part of a long talk."
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"id": "search",
|
|
208
|
+
"commandCount": 2,
|
|
209
|
+
"title": "Search",
|
|
210
|
+
"summary": "Find/replace across text, shape text and table cells.",
|
|
211
|
+
"whenToUse": "Bulk rename or correct terminology across the deck."
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"id": "history",
|
|
215
|
+
"commandCount": 3,
|
|
216
|
+
"title": "History",
|
|
217
|
+
"summary": "Commit, undo, redo against the shared history stack.",
|
|
218
|
+
"whenToUse": "Group a multi-step edit into one undo via executeBatch, or commit/undo manually."
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"id": "view",
|
|
222
|
+
"commandCount": 7,
|
|
223
|
+
"title": "View",
|
|
224
|
+
"summary": "Zoom, locale, slide navigation, enter/exit presentation.",
|
|
225
|
+
"whenToUse": "Drive presentation playback and the active slide."
|
|
226
|
+
}
|
|
227
|
+
],
|
|
228
|
+
"commands": [
|
|
229
|
+
{
|
|
230
|
+
"name": "deck.get",
|
|
231
|
+
"domain": "deck",
|
|
232
|
+
"payload": "undefined",
|
|
233
|
+
"returns": "FikaDeckDocument"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"name": "deck.set",
|
|
237
|
+
"domain": "deck",
|
|
238
|
+
"payload": "FikaDeckInput",
|
|
239
|
+
"returns": "FikaDeckDocument"
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"name": "import.json",
|
|
243
|
+
"domain": "import",
|
|
244
|
+
"payload": "FikaDocumentImportPayload",
|
|
245
|
+
"returns": "FikaDeckDocument"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"name": "import.fika",
|
|
249
|
+
"domain": "import",
|
|
250
|
+
"payload": "FikaDocumentImportPayload",
|
|
251
|
+
"returns": "FikaDeckDocument"
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"name": "import.pptxSafe",
|
|
255
|
+
"domain": "import",
|
|
256
|
+
"payload": "FikaDocumentImportPayload",
|
|
257
|
+
"returns": "FikaDeckDocument"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"name": "export.json",
|
|
261
|
+
"domain": "export",
|
|
262
|
+
"payload": "undefined",
|
|
263
|
+
"returns": "FikaDocument"
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"name": "deck.patch",
|
|
267
|
+
"domain": "deck",
|
|
268
|
+
"payload": "FikaDeckPatch",
|
|
269
|
+
"returns": "FikaDeckDocument"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"name": "deck.setTitle",
|
|
273
|
+
"domain": "deck",
|
|
274
|
+
"payload": "{ title: string }",
|
|
275
|
+
"returns": "{ title: string }"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"name": "deck.setTheme",
|
|
279
|
+
"domain": "deck",
|
|
280
|
+
"payload": "{ theme: FikaSlideThemePatch }",
|
|
281
|
+
"returns": "SlideTheme",
|
|
282
|
+
"doc": {
|
|
283
|
+
"summary": "Replace named theme properties (colors, fonts, background, outline, shadow) for the whole deck.",
|
|
284
|
+
"details": "Set the design tokens once before building slides so element defaults inherit them. Accepts a partial patch; only provided keys change.",
|
|
285
|
+
"params": [
|
|
286
|
+
{
|
|
287
|
+
"name": "theme.themeColors",
|
|
288
|
+
"type": "string[]",
|
|
289
|
+
"description": "Accent palette used by charts and pickers."
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"name": "theme.fontColor",
|
|
293
|
+
"type": "string",
|
|
294
|
+
"description": "Default body text color."
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"name": "theme.fontName",
|
|
298
|
+
"type": "string",
|
|
299
|
+
"description": "Default font family."
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"name": "theme.backgroundColor",
|
|
303
|
+
"type": "string",
|
|
304
|
+
"description": "Default slide background."
|
|
305
|
+
}
|
|
306
|
+
],
|
|
307
|
+
"examples": [
|
|
308
|
+
"controller.deck.setTheme({ themeColors: ['#2E75B6','#ED7D31','#70AD47'], fontColor: '#2D2D2D', fontName: 'Arial', backgroundColor: '#FFFFFF' })"
|
|
309
|
+
],
|
|
310
|
+
"tips": [
|
|
311
|
+
"Set the theme before creating elements so defaultColor/defaultFontName inherit it."
|
|
312
|
+
],
|
|
313
|
+
"related": [
|
|
314
|
+
"deck.setViewport",
|
|
315
|
+
"slides.setBackground",
|
|
316
|
+
"slides.applyBackground"
|
|
317
|
+
]
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"name": "deck.applyTemplate",
|
|
322
|
+
"domain": "deck",
|
|
323
|
+
"payload": "{ templateId: string }",
|
|
324
|
+
"returns": "FikaApplyTemplateResult",
|
|
325
|
+
"doc": {
|
|
326
|
+
"summary": "Apply ONE host-registered template theme to the whole deck (fonts, colors, background).",
|
|
327
|
+
"details": "Only when templates.catalog is non-empty. Do this once, up front, before inserting slides. slides.insertFromTemplate also applies the theme automatically when the deck is still empty (default).",
|
|
328
|
+
"params": [
|
|
329
|
+
{
|
|
330
|
+
"name": "templateId",
|
|
331
|
+
"type": "string",
|
|
332
|
+
"required": true,
|
|
333
|
+
"description": "A host-registered id from templates.catalog."
|
|
334
|
+
}
|
|
335
|
+
],
|
|
336
|
+
"examples": [
|
|
337
|
+
"await controller.deck.applyTemplate(templates.catalog()[0].id)"
|
|
338
|
+
],
|
|
339
|
+
"tips": [
|
|
340
|
+
"Keep one template style for the whole deck. Do not hand-pick colors or fonts on top of a template."
|
|
341
|
+
],
|
|
342
|
+
"related": [
|
|
343
|
+
"templates.catalog",
|
|
344
|
+
"templates.slidesCatalog",
|
|
345
|
+
"slides.insertFromTemplate"
|
|
346
|
+
]
|
|
347
|
+
}
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
"name": "templates.catalog",
|
|
351
|
+
"domain": "templates",
|
|
352
|
+
"payload": "undefined",
|
|
353
|
+
"returns": "FikaTemplateSummary[]",
|
|
354
|
+
"doc": {
|
|
355
|
+
"summary": "List host-registered presentation templates. Empty unless the embed host passed templates / templateLoaders.",
|
|
356
|
+
"details": "If the catalog is empty, skip the templates flow and use styles + layouts. If the host registered templates, pick one id, then apply it with deck.applyTemplate before inserting slides.",
|
|
357
|
+
"examples": [
|
|
358
|
+
"const templates = controller.templates.catalog() // -> [] unless the host registered templates"
|
|
359
|
+
],
|
|
360
|
+
"related": [
|
|
361
|
+
"deck.applyTemplate",
|
|
362
|
+
"templates.slidesCatalog"
|
|
363
|
+
]
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"name": "templates.slidesCatalog",
|
|
368
|
+
"domain": "templates",
|
|
369
|
+
"payload": "{ templateId: string }",
|
|
370
|
+
"returns": "FikaTemplateSlidesCatalogResult",
|
|
371
|
+
"doc": {
|
|
372
|
+
"summary": "List insertable slides for a template, grouped by type (cover, contents, transition, content, end) with slug + description.",
|
|
373
|
+
"details": "Call after choosing a templateId. Each slug (e.g. cover_1, content_2) maps to one designed slide in that template. Pick the slug whose description best matches the slide you need, then call slides.insertFromTemplate.",
|
|
374
|
+
"params": [
|
|
375
|
+
{
|
|
376
|
+
"name": "templateId",
|
|
377
|
+
"type": "string",
|
|
378
|
+
"required": true,
|
|
379
|
+
"description": "Host-registered template id from templates.catalog."
|
|
380
|
+
}
|
|
381
|
+
],
|
|
382
|
+
"examples": [
|
|
383
|
+
"const catalog = await controller.templates.slidesCatalog(templateId)",
|
|
384
|
+
"// catalog.byType.cover -> [{ slug:'cover_1', description:'...', ... }, ...]"
|
|
385
|
+
],
|
|
386
|
+
"related": [
|
|
387
|
+
"slides.insertFromTemplate",
|
|
388
|
+
"templates.catalog"
|
|
389
|
+
]
|
|
390
|
+
}
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"name": "styles.catalog",
|
|
394
|
+
"domain": "styles",
|
|
395
|
+
"payload": "undefined",
|
|
396
|
+
"returns": "FikaStyleSummary[]",
|
|
397
|
+
"doc": {
|
|
398
|
+
"summary": "List the visual-identity style presets (academic, minimal, bold, playful) with their fonts, a color preview, and their signature motif.",
|
|
399
|
+
"details": "Read this first when building a deck from scratch. Each preset is a contrast-safe palette + heading/body font pairing + type scale + a signature motif (the one distinctive repeated mark that ties the deck together). Pick exactly one whose tone fits the audience, then apply it with deck.applyStyle before adding any slides.",
|
|
400
|
+
"examples": [
|
|
401
|
+
"const styles = controller.styles.catalog() // -> [{ id:'academic', label:'Academic', fonts:{...}, preview:{ background, title, body, accent, featureBackground }, motif:{ shape:'doubleRule', colorRole:'accent', size:84, description:'…' } }, ...]"
|
|
402
|
+
],
|
|
403
|
+
"related": [
|
|
404
|
+
"deck.applyStyle",
|
|
405
|
+
"deck.planComposition",
|
|
406
|
+
"layouts.catalog",
|
|
407
|
+
"slides.createFromLayout"
|
|
408
|
+
]
|
|
409
|
+
}
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
"name": "layouts.catalog",
|
|
413
|
+
"domain": "layouts",
|
|
414
|
+
"payload": "undefined",
|
|
415
|
+
"returns": "FikaLayout[]",
|
|
416
|
+
"doc": {
|
|
417
|
+
"summary": "List the compositional slide layouts. For each: its visual variants (id, anchor, and what it looks like) and the content slots you fill (slot name, type, and whether it is required).",
|
|
418
|
+
"details": "Call before each slide. Pick the layout id whose composition matches the slide's purpose (e.g. 'title' for the cover, 'bullets' for a list, 'twoColumn' for compare/contrast, 'bigStat' for a headline metric, 'chart' for data, 'comparison' for a table, 'closing' for the sign-off). Then pick the VARIANT whose 'anchor' matches the planned anchor for that slide position (from deck.planComposition) and pass its id as variantId. Each variant entry tells you its anchor and a one-line visual description.",
|
|
419
|
+
"examples": [
|
|
420
|
+
"const layouts = controller.layouts.catalog() // -> [{ id:'bullets', label:'Bulleted list', variants:[{ id:'standard', label:'Full width', anchor:'leftHeavy', summary:'…' },{ id:'rightRail', label:'Right rail', anchor:'rightHeavy', summary:'…' }], slots:[{ name:'title', type:'text', required:true }, { name:'bullets', type:'bullets', required:true }] }, ...]"
|
|
421
|
+
],
|
|
422
|
+
"related": [
|
|
423
|
+
"slides.createFromLayout",
|
|
424
|
+
"deck.planComposition",
|
|
425
|
+
"styles.catalog"
|
|
426
|
+
]
|
|
427
|
+
}
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
"name": "deck.applyStyle",
|
|
431
|
+
"domain": "deck",
|
|
432
|
+
"payload": "{ styleId: string }",
|
|
433
|
+
"returns": "FikaApplyStyleResult",
|
|
434
|
+
"optional": true,
|
|
435
|
+
"doc": {
|
|
436
|
+
"summary": "Apply ONE style preset as the deck's visual identity (palette, fonts, type scale). Records theme.styleId so every layout inherits it.",
|
|
437
|
+
"details": "Prefer deck.setup({ styleId, slideCount }) which applies the style AND plans composition in one call. Use this alone only when you already have a plan or are restyling an existing deck. An unknown id falls back to the default style and returns a recoverable warning — read valid ids from styles.catalog.",
|
|
438
|
+
"params": [
|
|
439
|
+
{
|
|
440
|
+
"name": "styleId",
|
|
441
|
+
"type": "string",
|
|
442
|
+
"required": true,
|
|
443
|
+
"description": "A preset id from styles.catalog ('academic' | 'minimal' | 'bold' | 'playful')."
|
|
444
|
+
}
|
|
445
|
+
],
|
|
446
|
+
"examples": [
|
|
447
|
+
"await controller.deck.applyStyle('academic')"
|
|
448
|
+
],
|
|
449
|
+
"tips": [
|
|
450
|
+
"Keep one style for the whole deck. Do not hand-pick colors or fonts on top of it — layouts read the preset's role tokens for you.",
|
|
451
|
+
"For a from-scratch build, call deck.setup instead of applyStyle + planComposition."
|
|
452
|
+
],
|
|
453
|
+
"related": [
|
|
454
|
+
"deck.setup",
|
|
455
|
+
"styles.catalog",
|
|
456
|
+
"layouts.catalog",
|
|
457
|
+
"slides.createFromLayout"
|
|
458
|
+
]
|
|
459
|
+
}
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"name": "deck.planComposition",
|
|
463
|
+
"domain": "deck",
|
|
464
|
+
"payload": "{ slideCount: number; hints?: import('./composition').CompositionSlideHint[] }",
|
|
465
|
+
"returns": "FikaPlanCompositionResult",
|
|
466
|
+
"optional": true,
|
|
467
|
+
"doc": {
|
|
468
|
+
"summary": "Plan a non-repeating composition rhythm for the whole deck: an anchor per slide plus exactly one loud (full-bleed) slide. Call once after deck.applyStyle.",
|
|
469
|
+
"details": "Returns { plan, styleId, motif }. plan.slides is an ordered array of { index, anchor, density, loud, note } — one entry per slide. index and plan.loudIndex are 1-based slide numbers (first slide = 1). The array itself is still a JS array (plan.slides[0] is the first slide, and plan.slides[0].index === 1). Always pass entry.index / plan.loudIndex as createFromLayout index — never the array offset. Follow it: for each slide, choose a layout variant whose anchor matches plan.slides[i].anchor. The sequencer guarantees no two consecutive slides share an anchor and designates exactly one loud slide (index = plan.loudIndex) — use a fullBleed layout (imageFull) there. plan.rhythm is a human-readable summary. motif is the active style's signature mark — keep it in mind so the deck reads as one designed whole.",
|
|
470
|
+
"params": [
|
|
471
|
+
{
|
|
472
|
+
"name": "slideCount",
|
|
473
|
+
"type": "number",
|
|
474
|
+
"required": true,
|
|
475
|
+
"description": "Total slides in the deck, including title + closing."
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
"name": "hints",
|
|
479
|
+
"type": "CompositionSlideHint[]",
|
|
480
|
+
"required": false,
|
|
481
|
+
"description": "Optional per-slide bias: { index -> { anchor?, loud?, density? } } to force a specific position (e.g. mark a known hero slide loud)."
|
|
482
|
+
}
|
|
483
|
+
],
|
|
484
|
+
"examples": [
|
|
485
|
+
"const { plan, motif } = await controller.deck.planComposition({ slideCount: 8 })",
|
|
486
|
+
"// plan.slides[2] -> { index:3, … } // JS array slot [2] is slide number 3; pass index:3 (or entry.index), never 2"
|
|
487
|
+
],
|
|
488
|
+
"tips": [
|
|
489
|
+
"Call this ONCE after deck.applyStyle and before the first createFromLayout, then follow the returned anchors slide-by-slide.",
|
|
490
|
+
"Match each slide's anchor to a variant whose 'anchor' field equals it (see layouts.catalog). When several variants fit, alternate the family too."
|
|
491
|
+
],
|
|
492
|
+
"related": [
|
|
493
|
+
"deck.applyStyle",
|
|
494
|
+
"layouts.catalog",
|
|
495
|
+
"slides.createFromLayout"
|
|
496
|
+
]
|
|
497
|
+
}
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
"name": "deck.setup",
|
|
501
|
+
"domain": "deck",
|
|
502
|
+
"payload": "FikaSetupDeckInput",
|
|
503
|
+
"returns": "FikaSetupDeckResult",
|
|
504
|
+
"doc": {
|
|
505
|
+
"summary": "PREFERRED bootstrap: apply ONE style preset AND plan the whole-deck composition rhythm in a single call. Optionally build the title slide too.",
|
|
506
|
+
"details": "Replaces the styles.catalog → deck.applyStyle → deck.planComposition opening sequence. Returns { styleId, theme, plan, motif, styles, titleSlideId? }. plan.slides is the ordered anchor-per-slide contract — follow it when picking each createFromLayout variant. Pass title: { slots } to also replace the blank starter with the cover in this same call (1 slide ≈ 1 call for the rest).",
|
|
507
|
+
"params": [
|
|
508
|
+
{
|
|
509
|
+
"name": "styleId",
|
|
510
|
+
"type": "string",
|
|
511
|
+
"required": true,
|
|
512
|
+
"description": "A preset id ('academic' | 'minimal' | 'bold' | 'playful')."
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
"name": "slideCount",
|
|
516
|
+
"type": "number",
|
|
517
|
+
"required": true,
|
|
518
|
+
"description": "Total slides in the deck, including title + closing."
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
"name": "hints",
|
|
522
|
+
"type": "CompositionSlideHint[]",
|
|
523
|
+
"required": false,
|
|
524
|
+
"description": "Optional per-slide bias: { index -> { anchor?, loud?, density? } }."
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
"name": "title",
|
|
528
|
+
"type": "{ slots, variantId? }",
|
|
529
|
+
"required": false,
|
|
530
|
+
"description": "When set, builds the title layout in this call (replaces the blank starter). Prefer this over a separate createFromLayout(title)."
|
|
531
|
+
}
|
|
532
|
+
],
|
|
533
|
+
"examples": [
|
|
534
|
+
"const { plan, titleSlideId } = await controller.deck.setup({ styleId: 'academic', slideCount: 7, title: { slots: { title: 'Fotosyntéza', subtitle: 'Zelený zázrak', eyebrow: 'Přírodopis' } } })",
|
|
535
|
+
"// then createFromLayout once per remaining slide"
|
|
536
|
+
],
|
|
537
|
+
"tips": [
|
|
538
|
+
"Call this ONCE at the start of a from-scratch build; prefer title.slots so the cover is free.",
|
|
539
|
+
"Do not also call applyStyle or planComposition in the same build — setup already did both."
|
|
540
|
+
],
|
|
541
|
+
"related": [
|
|
542
|
+
"styles.catalog",
|
|
543
|
+
"layouts.catalog",
|
|
544
|
+
"slides.createFromLayout",
|
|
545
|
+
"deck.applyStyle",
|
|
546
|
+
"deck.planComposition"
|
|
547
|
+
]
|
|
548
|
+
}
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"name": "deck.setViewport",
|
|
552
|
+
"domain": "deck",
|
|
553
|
+
"payload": "{ size?: number; ratio?: number }",
|
|
554
|
+
"returns": "FikaBridgeState",
|
|
555
|
+
"doc": {
|
|
556
|
+
"summary": "Set the canvas size/aspect ratio. size is the canvas width in px; ratio is height/width.",
|
|
557
|
+
"details": "Default is { size: 1000, ratio: 0.5625 } (16:9, 1000 x 562.5 px). Use ratio 0.75 for 4:3.",
|
|
558
|
+
"examples": [
|
|
559
|
+
"controller.deck.setViewport({ size: 1000, ratio: 0.5625 })"
|
|
560
|
+
],
|
|
561
|
+
"related": [
|
|
562
|
+
"deck.setTheme"
|
|
563
|
+
]
|
|
564
|
+
}
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
"name": "deck.setTemplates",
|
|
568
|
+
"domain": "deck",
|
|
569
|
+
"payload": "{ templates: Parameters<typeof stores.slides.setTemplates>[0] }",
|
|
570
|
+
"returns": "SlideTemplate[]"
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
"name": "slides.list",
|
|
574
|
+
"domain": "slides",
|
|
575
|
+
"payload": "undefined",
|
|
576
|
+
"returns": "Slide[]"
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"name": "slides.get",
|
|
580
|
+
"domain": "slides",
|
|
581
|
+
"payload": "SlideSelectorPayload",
|
|
582
|
+
"returns": "Slide | null",
|
|
583
|
+
"optional": true
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
"name": "slides.current",
|
|
587
|
+
"domain": "slides",
|
|
588
|
+
"payload": "undefined",
|
|
589
|
+
"returns": "Slide | null"
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
"name": "slides.read",
|
|
593
|
+
"domain": "slides",
|
|
594
|
+
"payload": "SlideSelectorPayload",
|
|
595
|
+
"returns": "Slide | null",
|
|
596
|
+
"optional": true
|
|
597
|
+
},
|
|
598
|
+
{
|
|
599
|
+
"name": "slides.create",
|
|
600
|
+
"domain": "slides",
|
|
601
|
+
"payload": "{ slide?: Partial<Slide>; index?: number; select?: boolean }",
|
|
602
|
+
"returns": "Slide",
|
|
603
|
+
"optional": true,
|
|
604
|
+
"doc": {
|
|
605
|
+
"summary": "Create and append a new slide; returns the created slide (use its id for element placement).",
|
|
606
|
+
"details": "Pass a partial slide. Omit id to get a generated one. background defaults to the theme. Set select:true to make it the active slide. Use slides.insert to control the position.",
|
|
607
|
+
"params": [
|
|
608
|
+
{
|
|
609
|
+
"name": "slide",
|
|
610
|
+
"type": "Partial<Slide>",
|
|
611
|
+
"required": false,
|
|
612
|
+
"description": "Slide fields. elements may be provided inline, or added later with elements/text/shapes.create."
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
"name": "index",
|
|
616
|
+
"type": "number",
|
|
617
|
+
"required": false,
|
|
618
|
+
"description": "1-based insert position; omit or pass slideCount+1 to append. First slide is 1."
|
|
619
|
+
},
|
|
620
|
+
{
|
|
621
|
+
"name": "select",
|
|
622
|
+
"type": "boolean",
|
|
623
|
+
"required": false,
|
|
624
|
+
"description": "Select the new slide (default true)."
|
|
625
|
+
}
|
|
626
|
+
],
|
|
627
|
+
"examples": [
|
|
628
|
+
"const res = await controller.slides.create({ slide: { background: { type: 'solid', color: '#1F4E79' } }, select: true })",
|
|
629
|
+
"const slideId = res.data.id // reuse for every element on this slide"
|
|
630
|
+
],
|
|
631
|
+
"tips": [
|
|
632
|
+
"Always read result.data.id and pass it as meta.slideId / payload.slideId for subsequent element commands.",
|
|
633
|
+
"Group the slide + its elements in one executeBatch so the whole slide is a single undo step."
|
|
634
|
+
],
|
|
635
|
+
"related": [
|
|
636
|
+
"slides.insert",
|
|
637
|
+
"elements.create",
|
|
638
|
+
"text.create",
|
|
639
|
+
"shapes.create"
|
|
640
|
+
]
|
|
641
|
+
}
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
"name": "slides.createFromLayout",
|
|
645
|
+
"domain": "slides",
|
|
646
|
+
"payload": "FikaCreateFromLayoutInput",
|
|
647
|
+
"returns": "FikaCreateFromLayoutResult",
|
|
648
|
+
"doc": {
|
|
649
|
+
"summary": "Build + insert a themed slide from a layout id + visual variant + content slots. The PREFERRED way to add a slide when building from scratch.",
|
|
650
|
+
"details": "The engine positions every element on the canvas, colors it from the active style preset (theme.styleId), draws the style's signature motif, and AUTO-FITS each text box's font size (responsive measurement) so text never overflows — you never pick coordinates, sizes, or colors. It then runs a deterministic QA pass and returns warnings for overlap, sub-AA contrast, over-long/over-many bullets, text shrunk below the legibility floor, empty placeholders, or a repeated composition vs the previous slide — read those warnings and fix the slide in the SAME turn (rebuild with a different variant or tighter copy). Author slot content as Markdown/plain text (titles, bullets, body) or structured values (arrays of strings for bullets; { labels, series, legends } for charts; rows for comparison). Slot text supports inline math: wrap formulas in $…$ (inline) or $$…$$ (display) and they typeset via MathML. Returns the new slideId, the built variantId + anchor, and the created element ids.",
|
|
651
|
+
"params": [
|
|
652
|
+
{
|
|
653
|
+
"name": "layoutId",
|
|
654
|
+
"type": "string",
|
|
655
|
+
"required": true,
|
|
656
|
+
"description": "Layout id from layouts.catalog (e.g. 'title', 'bullets', 'twoColumn', 'chart')."
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
"name": "variantId",
|
|
660
|
+
"type": "string",
|
|
661
|
+
"required": false,
|
|
662
|
+
"description": "Visual VARIANT id from the layout's 'variants' in layouts.catalog (e.g. 'grid', 'rightRail', 'even') — NOT a composition anchor. Pick the variant whose anchor matches the planned anchor for this slide. Omit for the default variant. An anchor name passed here is auto-mapped to the matching variant with a warning; an unknown id falls back with a warning."
|
|
663
|
+
},
|
|
664
|
+
{
|
|
665
|
+
"name": "slots",
|
|
666
|
+
"type": "Record<string, unknown>",
|
|
667
|
+
"required": false,
|
|
668
|
+
"description": "Content slots for the layout (keys + shapes per layouts.catalog). Use the EXACT slot names — but near-misses are forgiven: natural aliases (leftColumn→leftBody, columns→rows, items→bullets, content→body, …) are auto-mapped, and any remaining unknown key returns a loud 'unknown slot / did you mean X?' warning instead of being silently dropped."
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
"name": "index",
|
|
672
|
+
"type": "number",
|
|
673
|
+
"required": false,
|
|
674
|
+
"description": "1-based slide number. Omit to append (or replace the blank starter / a duplicate title after setup). 1…slideCount REPLACES that slide in place. slideCount+1 appends. First slide is 1, never 0. Same number as result.data.slideIndex and screenshot.slideIndex."
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
"name": "select",
|
|
678
|
+
"type": "boolean",
|
|
679
|
+
"required": false,
|
|
680
|
+
"description": "Select the new slide after insert (default true)."
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
"name": "backgroundMode",
|
|
684
|
+
"type": "'auto' | 'feature' | 'plain'",
|
|
685
|
+
"required": false,
|
|
686
|
+
"description": "Force a feature (dark) or plain background; defaults to the layout's own preference."
|
|
687
|
+
}
|
|
688
|
+
],
|
|
689
|
+
"examples": [
|
|
690
|
+
"await controller.slides.createFromLayout({ layoutId:'title', slots:{ title:'Quarterly Review', subtitle:'Results and outlook', eyebrow:'2026 Q1' } })",
|
|
691
|
+
"await controller.slides.createFromLayout({ layoutId:'bullets', variantId:'leftRail', slots:{ title:'Key points', bullets:['First point','Second point','Third point'] } })",
|
|
692
|
+
"await controller.slides.createFromLayout({ layoutId:'cards', variantId:'accentPanel', slots:{ title:'Three pillars', cards:[{ heading:'Speed', body:'Sub-second responses' },{ heading:'Scale', body:'Millions of users' },{ heading:'Safety', body:'Private by default' }] } })",
|
|
693
|
+
"await controller.slides.createFromLayout({ layoutId:'numbered', variantId:'rightRail', slots:{ title:'How it works', steps:[{ heading:'Collect', body:'Gather the inputs' },{ heading:'Process', body:'Run the model' },{ heading:'Deliver', body:'Return the result' }] } })",
|
|
694
|
+
"await controller.slides.createFromLayout({ layoutId:'imageFull', slots:{ image:'https://…/photo.jpg', title:'The coastline at dawn', subtitle:'Field site, 2026' } })",
|
|
695
|
+
"await controller.slides.createFromLayout({ layoutId:'chart', variantId:'inset', slots:{ title:'Revenue by region', chartType:'column', labels:['North','South','East'], series:[[12,28,41]] } })"
|
|
696
|
+
],
|
|
697
|
+
"tips": [
|
|
698
|
+
"SLIDE NUMBERS START AT 1. payload.index, result.data.slideIndex, and screenshot.slideIndex are the same number. Human “slide 6” = index: 6. There is no slide 0.",
|
|
699
|
+
"Prefer deck.setup({ styleId, slideCount }) once, then createFromLayout per slide. Separate applyStyle + planComposition is legacy.",
|
|
700
|
+
"Pick a variant whose anchor matches plan.slides[i].anchor when you can. If you omit variantId, the engine picks a filled/full-width match (never an empty-rail by default). If you pass a variantId, it is KEPT even when the anchor drifts — CompositionDrift is soft; do not rebuild for drift alone.",
|
|
701
|
+
"VARY the layout family to match the content: 'cards' for parallel items, 'numbered' for ordered steps, 'bigStat'/'chart' for data, 'quote'/'imageFull' for impact. A deck where every slide is 'bullets' is the look to avoid.",
|
|
702
|
+
"Rail/offset variants (leftRail/rightRail/leftOffset/rightOffset) are ONLY for short/sparse content (≤3 short items). Dense copy auto-collapses to full width. Prefer standard/grid/accentPanel/even for real teaching content.",
|
|
703
|
+
"Slot sanitization is automatic: bullet/step markers the layout already draws are stripped. For numbered, pass heading WITHOUT '1.'/'2.' — chips are drawn for you. Prefer leftBullets/rightBullets arrays over markdown lists in *Body (body lists are coerced).",
|
|
704
|
+
"The style MOTIF (e.g. academic doubleRule) is drawn only on feature/hero slides (title/section/closing). Content layouts (cards/bullets/twoColumn/numbered/…) intentionally omit it — their own chrome (card tops, chips, columns) is the accent.",
|
|
705
|
+
"Keep slot copy concise so the auto-fit keeps text at a comfortable size; if QA warns about density or a too-small box, trim the copy and re-issue createFromLayout (prefer replace/overwrite path over slides.delete).",
|
|
706
|
+
"Use 'title' for the first slide and 'closing' for the last; 'section' to divide a long deck; 'imageFull' for the single loud slide (plan.loudIndex).",
|
|
707
|
+
"SOFT warnings (CompositionNearestAnchor, CompositionDrift, CompositionLoudMiss, BootstrapIdempotent, LayoutContent, density/contrast/squeeze, slot aliases, image sourceUrl nest, rail/offset collapse) mean continue — do NOT slides.delete or rebuild solely for these.",
|
|
708
|
+
"HARD errors (SlideQualityError / contentEmpty): the engine ROLLS BACK the insert — re-issue createFromLayout with corrected slots. Do NOT slides.delete. Pass the 1-based index (same as result.data.slideIndex / screenshot.slideIndex) to rebuild that slide in place. Never delete the blank starter.",
|
|
709
|
+
"For image layouts, pass image: { src, sourceUrl } (or nest is auto-healed from top-level sourceUrl/href)."
|
|
710
|
+
],
|
|
711
|
+
"related": [
|
|
712
|
+
"layouts.catalog",
|
|
713
|
+
"deck.applyStyle",
|
|
714
|
+
"deck.planComposition",
|
|
715
|
+
"text.setMarkdown"
|
|
716
|
+
]
|
|
717
|
+
}
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
"name": "slides.insertFromTemplate",
|
|
721
|
+
"domain": "slides",
|
|
722
|
+
"payload": "FikaInsertFromTemplateInput",
|
|
723
|
+
"returns": "FikaInsertFromTemplateResult",
|
|
724
|
+
"doc": {
|
|
725
|
+
"summary": "Insert a designed slide from a host-registered template by slug. Only when templates.catalog is non-empty.",
|
|
726
|
+
"details": "Clones the template slide (layout, decor, placeholder text boxes) into the deck. You do NOT pick coordinates or sizes. After insert, fill placeholders with text.setMarkdown on the returned placeholderElementIds (or textElementIds). Do not create new text boxes on top of an unfilled placeholder; Office-style placeholders show their prompt until that same placeholder is filled.",
|
|
727
|
+
"params": [
|
|
728
|
+
{
|
|
729
|
+
"name": "templateId",
|
|
730
|
+
"type": "string",
|
|
731
|
+
"required": true,
|
|
732
|
+
"description": "Host-registered template id (same as deck.applyTemplate)."
|
|
733
|
+
},
|
|
734
|
+
{
|
|
735
|
+
"name": "slug",
|
|
736
|
+
"type": "string",
|
|
737
|
+
"required": true,
|
|
738
|
+
"description": "Slide slug from templates.slidesCatalog (e.g. 'cover_1', 'contents_1', 'content_3')."
|
|
739
|
+
},
|
|
740
|
+
{
|
|
741
|
+
"name": "index",
|
|
742
|
+
"type": "number",
|
|
743
|
+
"required": false,
|
|
744
|
+
"description": "1-based insert position; omit or pass slideCount+1 to append. First slide is 1."
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
"name": "select",
|
|
748
|
+
"type": "boolean",
|
|
749
|
+
"required": false,
|
|
750
|
+
"description": "Select the new slide after insert (default true)."
|
|
751
|
+
},
|
|
752
|
+
{
|
|
753
|
+
"name": "applyTemplateTheme",
|
|
754
|
+
"type": "boolean",
|
|
755
|
+
"required": false,
|
|
756
|
+
"description": "Apply template theme when deck is empty (default true)."
|
|
757
|
+
}
|
|
758
|
+
],
|
|
759
|
+
"examples": [
|
|
760
|
+
"await controller.slides.insertFromTemplate({ templateId, slug:'cover_1' })",
|
|
761
|
+
"await controller.slides.insertFromTemplate({ templateId, slug:'content_2', index:2 }) // insert as slide 2"
|
|
762
|
+
],
|
|
763
|
+
"tips": [
|
|
764
|
+
"Plan slide flow: cover → contents → content slides → end. Match slug descriptions from slidesCatalog.",
|
|
765
|
+
"After insert, batch text.setMarkdown calls for each placeholderElementIds entry that should contain slide copy. Empty placeholders intentionally keep their Office-style prompt."
|
|
766
|
+
],
|
|
767
|
+
"related": [
|
|
768
|
+
"templates.slidesCatalog",
|
|
769
|
+
"deck.applyTemplate",
|
|
770
|
+
"text.setMarkdown"
|
|
771
|
+
]
|
|
772
|
+
}
|
|
773
|
+
},
|
|
774
|
+
{
|
|
775
|
+
"name": "slides.insert",
|
|
776
|
+
"domain": "slides",
|
|
777
|
+
"payload": "FikaInsertSlidesInput",
|
|
778
|
+
"returns": "FikaInsertSlidesResult",
|
|
779
|
+
"doc": {
|
|
780
|
+
"summary": "Insert a slide at a specific index (same payload as slides.create plus index).",
|
|
781
|
+
"related": [
|
|
782
|
+
"slides.create",
|
|
783
|
+
"slides.move"
|
|
784
|
+
]
|
|
785
|
+
}
|
|
786
|
+
},
|
|
787
|
+
{
|
|
788
|
+
"name": "slides.update",
|
|
789
|
+
"domain": "slides",
|
|
790
|
+
"payload": "{ slideId: string; patch: Partial<Slide> }",
|
|
791
|
+
"returns": "Slide"
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
"name": "slides.delete",
|
|
795
|
+
"domain": "slides",
|
|
796
|
+
"payload": "{ slideId: string | string[] }",
|
|
797
|
+
"returns": "FikaDeleteSlidesResult"
|
|
798
|
+
},
|
|
799
|
+
{
|
|
800
|
+
"name": "slides.duplicate",
|
|
801
|
+
"domain": "slides",
|
|
802
|
+
"payload": "SlideSelectorPayload & { select?: boolean }",
|
|
803
|
+
"returns": "Slide",
|
|
804
|
+
"optional": true
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
"name": "slides.move",
|
|
808
|
+
"domain": "slides",
|
|
809
|
+
"payload": "SlideSelectorPayload & { toIndex: number }",
|
|
810
|
+
"returns": "Slide[]"
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
"name": "slides.select",
|
|
814
|
+
"domain": "slides",
|
|
815
|
+
"payload": "SlideSelectorPayload",
|
|
816
|
+
"returns": "FikaBridgeState"
|
|
817
|
+
},
|
|
818
|
+
{
|
|
819
|
+
"name": "slides.setBackground",
|
|
820
|
+
"domain": "slides",
|
|
821
|
+
"payload": "{ slideId: string; background?: Slide['background'] }",
|
|
822
|
+
"returns": "Slide",
|
|
823
|
+
"doc": {
|
|
824
|
+
"summary": "Set one slide's background (solid color, gradient, or image).",
|
|
825
|
+
"examples": [
|
|
826
|
+
"controller.slides.setBackground(slideId, { type: 'solid', color: '#1F4E79' })"
|
|
827
|
+
],
|
|
828
|
+
"related": [
|
|
829
|
+
"slides.applyBackground",
|
|
830
|
+
"deck.setTheme"
|
|
831
|
+
]
|
|
832
|
+
}
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
"name": "slides.applyBackground",
|
|
836
|
+
"domain": "slides",
|
|
837
|
+
"payload": "{ background: Slide['background']; slideIds?: string[] }",
|
|
838
|
+
"returns": "Slide[]"
|
|
839
|
+
},
|
|
840
|
+
{
|
|
841
|
+
"name": "slides.getTransition",
|
|
842
|
+
"domain": "slides",
|
|
843
|
+
"payload": "{ slideId?: string }",
|
|
844
|
+
"returns": "FikaSlideTransition",
|
|
845
|
+
"optional": true
|
|
846
|
+
},
|
|
847
|
+
{
|
|
848
|
+
"name": "slides.setTransition",
|
|
849
|
+
"domain": "slides",
|
|
850
|
+
"payload": "{ slideId: string; turningMode?: Slide['turningMode'] }",
|
|
851
|
+
"returns": "Slide"
|
|
852
|
+
},
|
|
853
|
+
{
|
|
854
|
+
"name": "slides.getRemark",
|
|
855
|
+
"domain": "slides",
|
|
856
|
+
"payload": "{ slideId?: string }",
|
|
857
|
+
"returns": "string",
|
|
858
|
+
"optional": true
|
|
859
|
+
},
|
|
860
|
+
{
|
|
861
|
+
"name": "slides.setRemark",
|
|
862
|
+
"domain": "slides",
|
|
863
|
+
"payload": "{ slideId: string; remark: string }",
|
|
864
|
+
"returns": "Slide",
|
|
865
|
+
"doc": {
|
|
866
|
+
"summary": "Set the speaker notes (remark) for a slide. Content is HTML.",
|
|
867
|
+
"examples": [
|
|
868
|
+
"controller.slides.setRemark(slideId, '<p>Pause here and ask the audience.</p>')"
|
|
869
|
+
],
|
|
870
|
+
"related": [
|
|
871
|
+
"notes.create"
|
|
872
|
+
]
|
|
873
|
+
}
|
|
874
|
+
},
|
|
875
|
+
{
|
|
876
|
+
"name": "elements.list",
|
|
877
|
+
"domain": "elements",
|
|
878
|
+
"payload": "{ slideId?: string }",
|
|
879
|
+
"returns": "PPTElement[]",
|
|
880
|
+
"optional": true
|
|
881
|
+
},
|
|
882
|
+
{
|
|
883
|
+
"name": "elements.get",
|
|
884
|
+
"domain": "elements",
|
|
885
|
+
"payload": "{ elementId: string; slideId?: string }",
|
|
886
|
+
"returns": "PPTElement | null"
|
|
887
|
+
},
|
|
888
|
+
{
|
|
889
|
+
"name": "elements.create",
|
|
890
|
+
"domain": "elements",
|
|
891
|
+
"payload": "{ slideId?: string; index?: number; element: Partial<PPTElement> & { type: PPTElement['type'] }; select?: boolean }",
|
|
892
|
+
"returns": "PPTElement",
|
|
893
|
+
"doc": {
|
|
894
|
+
"summary": "Create any element type on a slide (manual placement). payload.element.type is required.",
|
|
895
|
+
"details": "Generic creator across all element types, for bespoke slides a template can't express. Prefer slides.insertFromTemplate for whole slides, or the typed creators (text.create, shapes.create, charts.create, tables.create) for single elements. Provide left/top/width/height in canvas px and rotate in degrees. For text, pass Markdown via text.create instead of hand-writing HTML here.",
|
|
896
|
+
"params": [
|
|
897
|
+
{
|
|
898
|
+
"name": "slideId",
|
|
899
|
+
"type": "string",
|
|
900
|
+
"required": false,
|
|
901
|
+
"description": "Target slide; defaults to the current slide."
|
|
902
|
+
},
|
|
903
|
+
{
|
|
904
|
+
"name": "element",
|
|
905
|
+
"type": "Partial<PPTElement> & { type }",
|
|
906
|
+
"required": true,
|
|
907
|
+
"description": "Element fields; type is mandatory."
|
|
908
|
+
},
|
|
909
|
+
{
|
|
910
|
+
"name": "index",
|
|
911
|
+
"type": "number",
|
|
912
|
+
"required": false,
|
|
913
|
+
"description": "Z-order insert index."
|
|
914
|
+
}
|
|
915
|
+
],
|
|
916
|
+
"examples": [
|
|
917
|
+
"controller.elements.create({ slideId, element: { type:'text', left:40, top:40, width:920, height:90, rotate:0, content:'<p><span style=\"font-size:40px;color:#1F4E79\"><strong>Action title</strong></span></p>', defaultFontName:'Arial', defaultColor:'#1F4E79' } })"
|
|
918
|
+
],
|
|
919
|
+
"tips": [
|
|
920
|
+
"Text font size lives in inline HTML styles inside content, not in a fontSize field."
|
|
921
|
+
],
|
|
922
|
+
"related": [
|
|
923
|
+
"text.create",
|
|
924
|
+
"shapes.create",
|
|
925
|
+
"charts.create",
|
|
926
|
+
"tables.create"
|
|
927
|
+
]
|
|
928
|
+
}
|
|
929
|
+
},
|
|
930
|
+
{
|
|
931
|
+
"name": "elements.insert",
|
|
932
|
+
"domain": "elements",
|
|
933
|
+
"payload": "FikaInsertElementsInput",
|
|
934
|
+
"returns": "FikaInsertElementsResult"
|
|
935
|
+
},
|
|
936
|
+
{
|
|
937
|
+
"name": "elements.update",
|
|
938
|
+
"domain": "elements",
|
|
939
|
+
"payload": "{ elementId: string | string[]; slideId?: string; patch: Partial<PPTElement> }",
|
|
940
|
+
"returns": "PPTElement[]"
|
|
941
|
+
},
|
|
942
|
+
{
|
|
943
|
+
"name": "elements.setTransform",
|
|
944
|
+
"domain": "elements",
|
|
945
|
+
"payload": "{ elementId: string | string[]; slideId?: string; transform: FikaElementTransformPatch }",
|
|
946
|
+
"returns": "PPTElement[]"
|
|
947
|
+
},
|
|
948
|
+
{
|
|
949
|
+
"name": "elements.move",
|
|
950
|
+
"domain": "elements",
|
|
951
|
+
"payload": "{ elementId: string | string[]; slideId?: string; position: FikaElementMoveInput }",
|
|
952
|
+
"returns": "PPTElement[]"
|
|
953
|
+
},
|
|
954
|
+
{
|
|
955
|
+
"name": "elements.resize",
|
|
956
|
+
"domain": "elements",
|
|
957
|
+
"payload": "{ elementId: string | string[]; slideId?: string; size: FikaElementResizeInput }",
|
|
958
|
+
"returns": "PPTElement[]"
|
|
959
|
+
},
|
|
960
|
+
{
|
|
961
|
+
"name": "elements.rotate",
|
|
962
|
+
"domain": "elements",
|
|
963
|
+
"payload": "{ elementId: string | string[]; slideId?: string; rotate: number }",
|
|
964
|
+
"returns": "PPTElement[]"
|
|
965
|
+
},
|
|
966
|
+
{
|
|
967
|
+
"name": "elements.setOpacity",
|
|
968
|
+
"domain": "elements",
|
|
969
|
+
"payload": "{ elementId: string | string[]; slideId?: string; opacity: number }",
|
|
970
|
+
"returns": "PPTElement[]"
|
|
971
|
+
},
|
|
972
|
+
{
|
|
973
|
+
"name": "elements.setFlip",
|
|
974
|
+
"domain": "elements",
|
|
975
|
+
"payload": "{ elementId: string | string[]; slideId?: string; flip: FikaElementFlipInput }",
|
|
976
|
+
"returns": "PPTElement[]"
|
|
977
|
+
},
|
|
978
|
+
{
|
|
979
|
+
"name": "elements.delete",
|
|
980
|
+
"domain": "elements",
|
|
981
|
+
"payload": "{ elementId: string | string[]; slideId?: string }",
|
|
982
|
+
"returns": "{ deleted: string[] }"
|
|
983
|
+
},
|
|
984
|
+
{
|
|
985
|
+
"name": "elements.reorder",
|
|
986
|
+
"domain": "elements",
|
|
987
|
+
"payload": "{ elementId: string; slideId?: string; toIndex: number }",
|
|
988
|
+
"returns": "PPTElement[]"
|
|
989
|
+
},
|
|
990
|
+
{
|
|
991
|
+
"name": "elements.bringForward",
|
|
992
|
+
"domain": "elements",
|
|
993
|
+
"payload": "{ elementId: string; slideId?: string }",
|
|
994
|
+
"returns": "PPTElement[]"
|
|
995
|
+
},
|
|
996
|
+
{
|
|
997
|
+
"name": "elements.sendBackward",
|
|
998
|
+
"domain": "elements",
|
|
999
|
+
"payload": "{ elementId: string; slideId?: string }",
|
|
1000
|
+
"returns": "PPTElement[]"
|
|
1001
|
+
},
|
|
1002
|
+
{
|
|
1003
|
+
"name": "elements.bringToFront",
|
|
1004
|
+
"domain": "elements",
|
|
1005
|
+
"payload": "{ elementId: string; slideId?: string }",
|
|
1006
|
+
"returns": "PPTElement[]"
|
|
1007
|
+
},
|
|
1008
|
+
{
|
|
1009
|
+
"name": "elements.sendToBack",
|
|
1010
|
+
"domain": "elements",
|
|
1011
|
+
"payload": "{ elementId: string; slideId?: string }",
|
|
1012
|
+
"returns": "PPTElement[]"
|
|
1013
|
+
},
|
|
1014
|
+
{
|
|
1015
|
+
"name": "elements.select",
|
|
1016
|
+
"domain": "elements",
|
|
1017
|
+
"payload": "{ elementId: string | string[]; slideId?: string }",
|
|
1018
|
+
"returns": "FikaBridgeState"
|
|
1019
|
+
},
|
|
1020
|
+
{
|
|
1021
|
+
"name": "elements.selectGroup",
|
|
1022
|
+
"domain": "elements",
|
|
1023
|
+
"payload": "{ groupIdOrElementId: string; slideId?: string }",
|
|
1024
|
+
"returns": "FikaBridgeState"
|
|
1025
|
+
},
|
|
1026
|
+
{
|
|
1027
|
+
"name": "elements.clearSelection",
|
|
1028
|
+
"domain": "elements",
|
|
1029
|
+
"payload": "undefined",
|
|
1030
|
+
"returns": "FikaBridgeState"
|
|
1031
|
+
},
|
|
1032
|
+
{
|
|
1033
|
+
"name": "elements.setHandle",
|
|
1034
|
+
"domain": "elements",
|
|
1035
|
+
"payload": "{ elementId: string; slideId?: string }",
|
|
1036
|
+
"returns": "FikaBridgeState"
|
|
1037
|
+
},
|
|
1038
|
+
{
|
|
1039
|
+
"name": "elements.group",
|
|
1040
|
+
"domain": "elements",
|
|
1041
|
+
"payload": "{ elementIds: string[]; groupId?: string; slideId?: string }",
|
|
1042
|
+
"returns": "PPTElement[]"
|
|
1043
|
+
},
|
|
1044
|
+
{
|
|
1045
|
+
"name": "elements.ungroup",
|
|
1046
|
+
"domain": "elements",
|
|
1047
|
+
"payload": "{ groupIdOrElementId: string; slideId?: string }",
|
|
1048
|
+
"returns": "PPTElement[]"
|
|
1049
|
+
},
|
|
1050
|
+
{
|
|
1051
|
+
"name": "elements.lock",
|
|
1052
|
+
"domain": "elements",
|
|
1053
|
+
"payload": "{ elementId: string | string[]; locked?: boolean }",
|
|
1054
|
+
"returns": "PPTElement[]"
|
|
1055
|
+
},
|
|
1056
|
+
{
|
|
1057
|
+
"name": "elements.unlock",
|
|
1058
|
+
"domain": "elements",
|
|
1059
|
+
"payload": "{ elementId: string | string[] }",
|
|
1060
|
+
"returns": "PPTElement[]"
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
"name": "elements.hide",
|
|
1064
|
+
"domain": "elements",
|
|
1065
|
+
"payload": "{ elementId: string | string[]; slideId?: string; hidden?: boolean }",
|
|
1066
|
+
"returns": "FikaBridgeState"
|
|
1067
|
+
},
|
|
1068
|
+
{
|
|
1069
|
+
"name": "elements.show",
|
|
1070
|
+
"domain": "elements",
|
|
1071
|
+
"payload": "{ elementId: string | string[]; slideId?: string }",
|
|
1072
|
+
"returns": "FikaBridgeState"
|
|
1073
|
+
},
|
|
1074
|
+
{
|
|
1075
|
+
"name": "elements.setLink",
|
|
1076
|
+
"domain": "elements",
|
|
1077
|
+
"payload": "{ elementId: string; slideId?: string; link?: PPTElement['link'] }",
|
|
1078
|
+
"returns": "PPTElement[]"
|
|
1079
|
+
},
|
|
1080
|
+
{
|
|
1081
|
+
"name": "latex.get",
|
|
1082
|
+
"domain": "latex",
|
|
1083
|
+
"payload": "{ elementId: string; slideId?: string }",
|
|
1084
|
+
"returns": "PPTLatexElement | null"
|
|
1085
|
+
},
|
|
1086
|
+
{
|
|
1087
|
+
"name": "latex.create",
|
|
1088
|
+
"domain": "latex",
|
|
1089
|
+
"payload": "FikaCreateLatexElementInput",
|
|
1090
|
+
"returns": "PPTLatexElement"
|
|
1091
|
+
},
|
|
1092
|
+
{
|
|
1093
|
+
"name": "latex.update",
|
|
1094
|
+
"domain": "latex",
|
|
1095
|
+
"payload": "{ elementId: string; slideId?: string; patch: FikaLatexElementPatch }",
|
|
1096
|
+
"returns": "PPTLatexElement"
|
|
1097
|
+
},
|
|
1098
|
+
{
|
|
1099
|
+
"name": "elements.setOutline",
|
|
1100
|
+
"domain": "elements",
|
|
1101
|
+
"payload": "{ elementId: string | string[]; slideId?: string; outline: PPTElementOutline }",
|
|
1102
|
+
"returns": "FikaOutlineElement[]"
|
|
1103
|
+
},
|
|
1104
|
+
{
|
|
1105
|
+
"name": "elements.setShadow",
|
|
1106
|
+
"domain": "elements",
|
|
1107
|
+
"payload": "{ elementId: string | string[]; slideId?: string; shadow: PPTElementShadow }",
|
|
1108
|
+
"returns": "FikaShadowElement[]"
|
|
1109
|
+
},
|
|
1110
|
+
{
|
|
1111
|
+
"name": "elements.setFill",
|
|
1112
|
+
"domain": "elements",
|
|
1113
|
+
"payload": "{ elementId: string | string[]; slideId?: string; fill: string }",
|
|
1114
|
+
"returns": "FikaFillElement[]"
|
|
1115
|
+
},
|
|
1116
|
+
{
|
|
1117
|
+
"name": "elements.setGradient",
|
|
1118
|
+
"domain": "elements",
|
|
1119
|
+
"payload": "{ elementId: string | string[]; slideId?: string; gradient: Gradient }",
|
|
1120
|
+
"returns": "PPTShapeElement[]"
|
|
1121
|
+
},
|
|
1122
|
+
{
|
|
1123
|
+
"name": "elements.setColorMask",
|
|
1124
|
+
"domain": "elements",
|
|
1125
|
+
"payload": "{ elementId: string | string[]; slideId?: string; colorMask: string }",
|
|
1126
|
+
"returns": "PPTImageElement[]"
|
|
1127
|
+
},
|
|
1128
|
+
{
|
|
1129
|
+
"name": "text.list",
|
|
1130
|
+
"domain": "text",
|
|
1131
|
+
"payload": "{ slideId?: string }",
|
|
1132
|
+
"returns": "PPTTextElement[]",
|
|
1133
|
+
"optional": true
|
|
1134
|
+
},
|
|
1135
|
+
{
|
|
1136
|
+
"name": "text.get",
|
|
1137
|
+
"domain": "text",
|
|
1138
|
+
"payload": "{ elementId: string; slideId?: string }",
|
|
1139
|
+
"returns": "PPTTextElement | null"
|
|
1140
|
+
},
|
|
1141
|
+
{
|
|
1142
|
+
"name": "text.create",
|
|
1143
|
+
"domain": "text",
|
|
1144
|
+
"payload": "FikaCreateTextInput | undefined",
|
|
1145
|
+
"returns": "PPTTextElement",
|
|
1146
|
+
"doc": {
|
|
1147
|
+
"summary": "Create a text element (manual placement). Author content as Markdown via `markdown` (recommended) or plain text via `content`.",
|
|
1148
|
+
"details": "Pass `markdown` for formatted copy (the bridge converts it to the HTML Fika stores). Markdown supports inline math: $…$ (inline) and $$…$$ (display) typeset via MathML, so mix prose and formulas freely (e.g. 'Plocha je $\\pi r^2$'). `content` is treated as literal markup — pass plain text there, or intentional HTML only when you specifically want to render markup (e.g. a code snippet). Do NOT type raw HTML tags into `markdown`: they are escaped and appear as literal text (the bridge warns when it detects this). The fallback color/font come from defaultColor/defaultFontName.",
|
|
1149
|
+
"params": [
|
|
1150
|
+
{
|
|
1151
|
+
"name": "slideId",
|
|
1152
|
+
"type": "string",
|
|
1153
|
+
"required": false,
|
|
1154
|
+
"description": "Target slide."
|
|
1155
|
+
},
|
|
1156
|
+
{
|
|
1157
|
+
"name": "markdown",
|
|
1158
|
+
"type": "string",
|
|
1159
|
+
"required": false,
|
|
1160
|
+
"description": "Markdown content (recommended). Converted to HTML."
|
|
1161
|
+
},
|
|
1162
|
+
{
|
|
1163
|
+
"name": "content",
|
|
1164
|
+
"type": "string",
|
|
1165
|
+
"required": false,
|
|
1166
|
+
"description": "Literal content (plain text, or intentional HTML for code-like markup). Wins over markdown."
|
|
1167
|
+
},
|
|
1168
|
+
{
|
|
1169
|
+
"name": "element",
|
|
1170
|
+
"type": "Partial<PPTTextElement>",
|
|
1171
|
+
"required": false,
|
|
1172
|
+
"description": "Geometry/styling: left, top, width, height, rotate, defaultColor, defaultFontName, lineHeight, wordSpace, fill. Set fixedHeight:true (optionally vAlign:'top'|'middle'|'bottom') to lock the box to its height: the font then auto-fits (shrinks) so the text never overflows the region — the same guarantee layouts give."
|
|
1173
|
+
}
|
|
1174
|
+
],
|
|
1175
|
+
"examples": [
|
|
1176
|
+
"controller.text.create({ slideId, markdown: '**Key finding:** treated group improved 18%', element: { left:520, top:130, width:440, height:300, rotate:0, defaultColor:'#2D2D2D' } })",
|
|
1177
|
+
"controller.text.create({ slideId, markdown: '- First point\\n- Second point\\n- Third point', element:{ left:40, top:140, width:920, height:300, rotate:0 } })",
|
|
1178
|
+
"controller.text.create({ slideId, markdown: 'Vertically centered, never overflows', element:{ left:80, top:120, width:360, height:200, rotate:0, fixedHeight:true, vAlign:'middle' } })"
|
|
1179
|
+
],
|
|
1180
|
+
"tips": [
|
|
1181
|
+
"Prefer slides.insertFromTemplate for whole slides. Markdown flavor: markdown-it + markdown-it-texmath (KaTeX). Write Markdown, not HTML.",
|
|
1182
|
+
"For a box that must stay a fixed size, set fixedHeight:true so the text auto-shrinks to fit instead of overflowing."
|
|
1183
|
+
],
|
|
1184
|
+
"related": [
|
|
1185
|
+
"text.setMarkdown",
|
|
1186
|
+
"text.setContent",
|
|
1187
|
+
"richText.setContent",
|
|
1188
|
+
"slides.insertFromTemplate"
|
|
1189
|
+
]
|
|
1190
|
+
}
|
|
1191
|
+
},
|
|
1192
|
+
{
|
|
1193
|
+
"name": "text.update",
|
|
1194
|
+
"domain": "text",
|
|
1195
|
+
"payload": "{ elementId: string; slideId?: string; patch: Partial<PPTTextElement> }",
|
|
1196
|
+
"returns": "PPTTextElement"
|
|
1197
|
+
},
|
|
1198
|
+
{
|
|
1199
|
+
"name": "text.delete",
|
|
1200
|
+
"domain": "text",
|
|
1201
|
+
"payload": "{ elementId: string | string[]; slideId?: string }",
|
|
1202
|
+
"returns": "{ deleted: string[] }"
|
|
1203
|
+
},
|
|
1204
|
+
{
|
|
1205
|
+
"name": "text.getContent",
|
|
1206
|
+
"domain": "text",
|
|
1207
|
+
"payload": "{ elementId: string; slideId?: string }",
|
|
1208
|
+
"returns": "string | null"
|
|
1209
|
+
},
|
|
1210
|
+
{
|
|
1211
|
+
"name": "text.setContent",
|
|
1212
|
+
"domain": "text",
|
|
1213
|
+
"payload": "{ elementId: string; slideId?: string; content: string }",
|
|
1214
|
+
"returns": "PPTTextElement",
|
|
1215
|
+
"doc": {
|
|
1216
|
+
"summary": "Replace a text element's content with a literal string (the literal-markup path).",
|
|
1217
|
+
"details": "Use for plain text, or for intentionally rendering HTML markup (e.g. a code snippet). For normal formatted copy use text.setMarkdown instead.",
|
|
1218
|
+
"related": [
|
|
1219
|
+
"text.setMarkdown",
|
|
1220
|
+
"richText.setContent"
|
|
1221
|
+
]
|
|
1222
|
+
}
|
|
1223
|
+
},
|
|
1224
|
+
{
|
|
1225
|
+
"name": "text.setMarkdown",
|
|
1226
|
+
"domain": "text",
|
|
1227
|
+
"payload": "{ elementId: string; slideId?: string; markdown: string }",
|
|
1228
|
+
"returns": "PPTTextElement",
|
|
1229
|
+
"doc": {
|
|
1230
|
+
"summary": "Replace a text element's content from a Markdown string (converted to HTML).",
|
|
1231
|
+
"details": "Author in Markdown. Raw HTML tags are escaped (they would render as literal text) and trigger a warning — use Markdown syntax instead.",
|
|
1232
|
+
"examples": [
|
|
1233
|
+
"controller.text.setMarkdown(elementId, '- First point\\n- Second point\\n- Third point')"
|
|
1234
|
+
],
|
|
1235
|
+
"related": [
|
|
1236
|
+
"text.setContent",
|
|
1237
|
+
"text.create"
|
|
1238
|
+
]
|
|
1239
|
+
}
|
|
1240
|
+
},
|
|
1241
|
+
{
|
|
1242
|
+
"name": "text.updateContent",
|
|
1243
|
+
"domain": "text",
|
|
1244
|
+
"payload": "{ elementId: string; slideId?: string; content?: string; prepend?: string; append?: string }",
|
|
1245
|
+
"returns": "PPTTextElement"
|
|
1246
|
+
},
|
|
1247
|
+
{
|
|
1248
|
+
"name": "text.clearContent",
|
|
1249
|
+
"domain": "text",
|
|
1250
|
+
"payload": "{ elementId: string; slideId?: string }",
|
|
1251
|
+
"returns": "PPTTextElement"
|
|
1252
|
+
},
|
|
1253
|
+
{
|
|
1254
|
+
"name": "text.setStyle",
|
|
1255
|
+
"domain": "text",
|
|
1256
|
+
"payload": "{ elementId: string; slideId?: string; style: Partial<PPTTextElement> }",
|
|
1257
|
+
"returns": "PPTTextElement"
|
|
1258
|
+
},
|
|
1259
|
+
{
|
|
1260
|
+
"name": "lines.get",
|
|
1261
|
+
"domain": "lines",
|
|
1262
|
+
"payload": "{ elementId: string; slideId?: string }",
|
|
1263
|
+
"returns": "PPTLineElement | null"
|
|
1264
|
+
},
|
|
1265
|
+
{
|
|
1266
|
+
"name": "lines.create",
|
|
1267
|
+
"domain": "lines",
|
|
1268
|
+
"payload": "FikaCreateLineElementInput",
|
|
1269
|
+
"returns": "PPTLineElement"
|
|
1270
|
+
},
|
|
1271
|
+
{
|
|
1272
|
+
"name": "lines.update",
|
|
1273
|
+
"domain": "lines",
|
|
1274
|
+
"payload": "{ elementId: string; slideId?: string; patch: FikaLineElementPatch }",
|
|
1275
|
+
"returns": "PPTLineElement"
|
|
1276
|
+
},
|
|
1277
|
+
{
|
|
1278
|
+
"name": "lines.setStyle",
|
|
1279
|
+
"domain": "lines",
|
|
1280
|
+
"payload": "{ elementId: string; slideId?: string; style: FikaLineStyleInput }",
|
|
1281
|
+
"returns": "PPTLineElement"
|
|
1282
|
+
},
|
|
1283
|
+
{
|
|
1284
|
+
"name": "lines.setArrowheads",
|
|
1285
|
+
"domain": "lines",
|
|
1286
|
+
"payload": "{ elementId: string; slideId?: string; points: PPTLineElement['points'] }",
|
|
1287
|
+
"returns": "PPTLineElement"
|
|
1288
|
+
},
|
|
1289
|
+
{
|
|
1290
|
+
"name": "lines.setDirection",
|
|
1291
|
+
"domain": "lines",
|
|
1292
|
+
"payload": "{ elementId: string; slideId?: string; direction?: FikaLineDirectionInput }",
|
|
1293
|
+
"returns": "PPTLineElement"
|
|
1294
|
+
},
|
|
1295
|
+
{
|
|
1296
|
+
"name": "richText.setContent",
|
|
1297
|
+
"domain": "richText",
|
|
1298
|
+
"payload": "{ elementId: string; slideId?: string; content: string }",
|
|
1299
|
+
"returns": "unknown"
|
|
1300
|
+
},
|
|
1301
|
+
{
|
|
1302
|
+
"name": "richText.setStyle",
|
|
1303
|
+
"domain": "richText",
|
|
1304
|
+
"payload": "{ elementId: string; slideId?: string; style: FikaRichTextStylePatch }",
|
|
1305
|
+
"returns": "unknown"
|
|
1306
|
+
},
|
|
1307
|
+
{
|
|
1308
|
+
"name": "richText.setParagraphAttrs",
|
|
1309
|
+
"domain": "richText",
|
|
1310
|
+
"payload": "{ elementId: string; slideId?: string; attrs: FikaRichTextParagraphAttrs }",
|
|
1311
|
+
"returns": "unknown"
|
|
1312
|
+
},
|
|
1313
|
+
{
|
|
1314
|
+
"name": "animations.list",
|
|
1315
|
+
"domain": "animations",
|
|
1316
|
+
"payload": "{ slideId?: string; elementId?: string }",
|
|
1317
|
+
"returns": "PPTAnimation[]",
|
|
1318
|
+
"optional": true
|
|
1319
|
+
},
|
|
1320
|
+
{
|
|
1321
|
+
"name": "animations.catalog",
|
|
1322
|
+
"domain": "animations",
|
|
1323
|
+
"payload": "undefined",
|
|
1324
|
+
"returns": "FikaAnimationCatalog"
|
|
1325
|
+
},
|
|
1326
|
+
{
|
|
1327
|
+
"name": "animations.sequence",
|
|
1328
|
+
"domain": "animations",
|
|
1329
|
+
"payload": "{ slideId?: string }",
|
|
1330
|
+
"returns": "FikaAnimationSequenceStep[]",
|
|
1331
|
+
"optional": true
|
|
1332
|
+
},
|
|
1333
|
+
{
|
|
1334
|
+
"name": "animations.create",
|
|
1335
|
+
"domain": "animations",
|
|
1336
|
+
"payload": "{ slideId: string; animation: Partial<PPTAnimation> & { elId: string; effect: string; type: PPTAnimation['type'] } }",
|
|
1337
|
+
"returns": "PPTAnimation",
|
|
1338
|
+
"doc": {
|
|
1339
|
+
"summary": "Add an animation to an element on a slide. Read animations.catalog for valid effect keys.",
|
|
1340
|
+
"details": "type is 'in' (entrance), 'out' (exit) or 'attention' (emphasis). effect must be a key from animations.catalog. trigger is 'click', 'meantime' or 'auto'.",
|
|
1341
|
+
"examples": [
|
|
1342
|
+
"const cat = controller.animations.catalog()",
|
|
1343
|
+
"controller.animations.create(slideId, { elId: elementId, type:'in', effect:'fadeIn', trigger:'click', duration:600 })"
|
|
1344
|
+
],
|
|
1345
|
+
"related": [
|
|
1346
|
+
"animations.catalog",
|
|
1347
|
+
"animations.reorder",
|
|
1348
|
+
"animations.setTrigger"
|
|
1349
|
+
]
|
|
1350
|
+
}
|
|
1351
|
+
},
|
|
1352
|
+
{
|
|
1353
|
+
"name": "animations.update",
|
|
1354
|
+
"domain": "animations",
|
|
1355
|
+
"payload": "{ slideId: string; animationId: string; patch: Partial<PPTAnimation> }",
|
|
1356
|
+
"returns": "PPTAnimation"
|
|
1357
|
+
},
|
|
1358
|
+
{
|
|
1359
|
+
"name": "animations.setTrigger",
|
|
1360
|
+
"domain": "animations",
|
|
1361
|
+
"payload": "{ slideId: string; animationId: string; trigger: PPTAnimation['trigger'] }",
|
|
1362
|
+
"returns": "PPTAnimation"
|
|
1363
|
+
},
|
|
1364
|
+
{
|
|
1365
|
+
"name": "animations.setDuration",
|
|
1366
|
+
"domain": "animations",
|
|
1367
|
+
"payload": "{ slideId: string; animationId: string; duration: number }",
|
|
1368
|
+
"returns": "PPTAnimation"
|
|
1369
|
+
},
|
|
1370
|
+
{
|
|
1371
|
+
"name": "animations.delete",
|
|
1372
|
+
"domain": "animations",
|
|
1373
|
+
"payload": "{ slideId: string; animationId: string | string[] }",
|
|
1374
|
+
"returns": "{ deleted: string[] }"
|
|
1375
|
+
},
|
|
1376
|
+
{
|
|
1377
|
+
"name": "animations.reorder",
|
|
1378
|
+
"domain": "animations",
|
|
1379
|
+
"payload": "{ slideId: string; animationId: string; toIndex: number }",
|
|
1380
|
+
"returns": "PPTAnimation[]"
|
|
1381
|
+
},
|
|
1382
|
+
{
|
|
1383
|
+
"name": "tables.create",
|
|
1384
|
+
"domain": "tables",
|
|
1385
|
+
"payload": "FikaCreateTableInput",
|
|
1386
|
+
"returns": "PPTTableElement",
|
|
1387
|
+
"optional": true,
|
|
1388
|
+
"doc": {
|
|
1389
|
+
"summary": "Create a table with rows x columns of cells.",
|
|
1390
|
+
"details": "Supply data as a 2D array of cells. Edit cells with tables.setCell, style with tables.setCellStyle, and grow/shrink with insert/delete row/column.",
|
|
1391
|
+
"examples": [
|
|
1392
|
+
"controller.tables.create({ slideId, element:{ left:40, top:140, width:920, height:300, rotate:0, colWidths:[0.5,0.5], data:[[{ text:'Metric' },{ text:'Value' }],[{ text:'N' },{ text:'2,400' }]] } })"
|
|
1393
|
+
],
|
|
1394
|
+
"related": [
|
|
1395
|
+
"tables.setCell",
|
|
1396
|
+
"tables.setCellStyle",
|
|
1397
|
+
"tables.insertRow"
|
|
1398
|
+
]
|
|
1399
|
+
}
|
|
1400
|
+
},
|
|
1401
|
+
{
|
|
1402
|
+
"name": "tables.update",
|
|
1403
|
+
"domain": "tables",
|
|
1404
|
+
"payload": "{ elementId: string; slideId?: string; patch: FikaTableElementPatch }",
|
|
1405
|
+
"returns": "PPTTableElement"
|
|
1406
|
+
},
|
|
1407
|
+
{
|
|
1408
|
+
"name": "tables.setCell",
|
|
1409
|
+
"domain": "tables",
|
|
1410
|
+
"payload": "{ elementId: string; slideId?: string; row: number; col: number; patch: Partial<TableCell> }",
|
|
1411
|
+
"returns": "PPTTableElement"
|
|
1412
|
+
},
|
|
1413
|
+
{
|
|
1414
|
+
"name": "tables.setCellStyle",
|
|
1415
|
+
"domain": "tables",
|
|
1416
|
+
"payload": "{ elementId: string; slideId?: string; row: number; col: number; style: Partial<TableCellStyle> }",
|
|
1417
|
+
"returns": "PPTTableElement"
|
|
1418
|
+
},
|
|
1419
|
+
{
|
|
1420
|
+
"name": "tables.insertRow",
|
|
1421
|
+
"domain": "tables",
|
|
1422
|
+
"payload": "{ elementId: string; slideId?: string; rowIndex: number }",
|
|
1423
|
+
"returns": "PPTTableElement"
|
|
1424
|
+
},
|
|
1425
|
+
{
|
|
1426
|
+
"name": "tables.deleteRow",
|
|
1427
|
+
"domain": "tables",
|
|
1428
|
+
"payload": "{ elementId: string; slideId?: string; rowIndex: number }",
|
|
1429
|
+
"returns": "PPTTableElement"
|
|
1430
|
+
},
|
|
1431
|
+
{
|
|
1432
|
+
"name": "tables.insertColumn",
|
|
1433
|
+
"domain": "tables",
|
|
1434
|
+
"payload": "{ elementId: string; slideId?: string; colIndex: number }",
|
|
1435
|
+
"returns": "PPTTableElement"
|
|
1436
|
+
},
|
|
1437
|
+
{
|
|
1438
|
+
"name": "tables.deleteColumn",
|
|
1439
|
+
"domain": "tables",
|
|
1440
|
+
"payload": "{ elementId: string; slideId?: string; colIndex: number }",
|
|
1441
|
+
"returns": "PPTTableElement"
|
|
1442
|
+
},
|
|
1443
|
+
{
|
|
1444
|
+
"name": "tables.mergeCells",
|
|
1445
|
+
"domain": "tables",
|
|
1446
|
+
"payload": "{ elementId: string; slideId?: string; row: number; col: number; rowspan: number; colspan: number }",
|
|
1447
|
+
"returns": "PPTTableElement"
|
|
1448
|
+
},
|
|
1449
|
+
{
|
|
1450
|
+
"name": "tables.splitCell",
|
|
1451
|
+
"domain": "tables",
|
|
1452
|
+
"payload": "{ elementId: string; slideId?: string; row: number; col: number }",
|
|
1453
|
+
"returns": "PPTTableElement"
|
|
1454
|
+
},
|
|
1455
|
+
{
|
|
1456
|
+
"name": "charts.create",
|
|
1457
|
+
"domain": "charts",
|
|
1458
|
+
"payload": "FikaCreateChartInput",
|
|
1459
|
+
"returns": "PPTChartElement",
|
|
1460
|
+
"optional": true,
|
|
1461
|
+
"doc": {
|
|
1462
|
+
"summary": "Create a chart element with type + data (labels, legends, series).",
|
|
1463
|
+
"details": "One chart per slide. Provide labels (category axis), legends (series names) and series (arrays of numbers). State the takeaway in an adjacent text element rather than relying on the chart alone.",
|
|
1464
|
+
"params": [
|
|
1465
|
+
{
|
|
1466
|
+
"name": "slideId",
|
|
1467
|
+
"type": "string",
|
|
1468
|
+
"required": false,
|
|
1469
|
+
"description": "Target slide."
|
|
1470
|
+
},
|
|
1471
|
+
{
|
|
1472
|
+
"name": "chartType",
|
|
1473
|
+
"type": "ChartType",
|
|
1474
|
+
"required": false,
|
|
1475
|
+
"description": "bar, column, line, pie, ring, area, radar, scatter."
|
|
1476
|
+
},
|
|
1477
|
+
{
|
|
1478
|
+
"name": "data",
|
|
1479
|
+
"type": "ChartData",
|
|
1480
|
+
"required": false,
|
|
1481
|
+
"description": "{ labels: string[], legends: string[], series: number[][] }."
|
|
1482
|
+
}
|
|
1483
|
+
],
|
|
1484
|
+
"examples": [
|
|
1485
|
+
"controller.charts.create({ slideId, chartType:'bar', data:{ labels:['Q1','Q2','Q3','Q4'], legends:['Effect %'], series:[[28,22,15,8]] }, element:{ left:40, top:130, width:540, height:360, rotate:0 } })"
|
|
1486
|
+
],
|
|
1487
|
+
"tips": [
|
|
1488
|
+
"Put the interpretive text on the right (~520px) and the chart on the left (~40px)."
|
|
1489
|
+
],
|
|
1490
|
+
"related": [
|
|
1491
|
+
"charts.setData",
|
|
1492
|
+
"charts.setType",
|
|
1493
|
+
"charts.setOptions"
|
|
1494
|
+
]
|
|
1495
|
+
}
|
|
1496
|
+
},
|
|
1497
|
+
{
|
|
1498
|
+
"name": "charts.update",
|
|
1499
|
+
"domain": "charts",
|
|
1500
|
+
"payload": "{ elementId: string; slideId?: string; patch: FikaChartElementPatch }",
|
|
1501
|
+
"returns": "PPTChartElement"
|
|
1502
|
+
},
|
|
1503
|
+
{
|
|
1504
|
+
"name": "charts.setType",
|
|
1505
|
+
"domain": "charts",
|
|
1506
|
+
"payload": "{ elementId: string; slideId?: string; chartType: ChartType }",
|
|
1507
|
+
"returns": "PPTChartElement"
|
|
1508
|
+
},
|
|
1509
|
+
{
|
|
1510
|
+
"name": "charts.setData",
|
|
1511
|
+
"domain": "charts",
|
|
1512
|
+
"payload": "{ elementId: string; slideId?: string; data: ChartData }",
|
|
1513
|
+
"returns": "PPTChartElement"
|
|
1514
|
+
},
|
|
1515
|
+
{
|
|
1516
|
+
"name": "charts.setLabels",
|
|
1517
|
+
"domain": "charts",
|
|
1518
|
+
"payload": "{ elementId: string; slideId?: string; labels: string[] }",
|
|
1519
|
+
"returns": "PPTChartElement"
|
|
1520
|
+
},
|
|
1521
|
+
{
|
|
1522
|
+
"name": "charts.setLegends",
|
|
1523
|
+
"domain": "charts",
|
|
1524
|
+
"payload": "{ elementId: string; slideId?: string; legends: string[] }",
|
|
1525
|
+
"returns": "PPTChartElement"
|
|
1526
|
+
},
|
|
1527
|
+
{
|
|
1528
|
+
"name": "charts.setSeries",
|
|
1529
|
+
"domain": "charts",
|
|
1530
|
+
"payload": "{ elementId: string; slideId?: string; index: number; series: number[] }",
|
|
1531
|
+
"returns": "PPTChartElement"
|
|
1532
|
+
},
|
|
1533
|
+
{
|
|
1534
|
+
"name": "charts.addSeries",
|
|
1535
|
+
"domain": "charts",
|
|
1536
|
+
"payload": "{ elementId: string; slideId?: string; series: number[] }",
|
|
1537
|
+
"returns": "PPTChartElement"
|
|
1538
|
+
},
|
|
1539
|
+
{
|
|
1540
|
+
"name": "charts.deleteSeries",
|
|
1541
|
+
"domain": "charts",
|
|
1542
|
+
"payload": "{ elementId: string; slideId?: string; index: number }",
|
|
1543
|
+
"returns": "PPTChartElement"
|
|
1544
|
+
},
|
|
1545
|
+
{
|
|
1546
|
+
"name": "charts.setOptions",
|
|
1547
|
+
"domain": "charts",
|
|
1548
|
+
"payload": "{ elementId: string; slideId?: string; options: ChartOptions }",
|
|
1549
|
+
"returns": "PPTChartElement"
|
|
1550
|
+
},
|
|
1551
|
+
{
|
|
1552
|
+
"name": "images.update",
|
|
1553
|
+
"domain": "images",
|
|
1554
|
+
"payload": "{ elementId: string; slideId?: string; patch: Partial<PPTImageElement> }",
|
|
1555
|
+
"returns": "PPTImageElement"
|
|
1556
|
+
},
|
|
1557
|
+
{
|
|
1558
|
+
"name": "images.setSource",
|
|
1559
|
+
"domain": "images",
|
|
1560
|
+
"payload": "{ elementId: string; slideId?: string; asset: FikaMediaAssetInput; patch?: Partial<PPTImageElement> }",
|
|
1561
|
+
"returns": "PPTImageElement"
|
|
1562
|
+
},
|
|
1563
|
+
{
|
|
1564
|
+
"name": "media.resolveAsset",
|
|
1565
|
+
"domain": "media",
|
|
1566
|
+
"payload": "{ asset: FikaMediaAssetInput; kind?: FikaMediaAssetKind }",
|
|
1567
|
+
"returns": "FikaMediaAsset"
|
|
1568
|
+
},
|
|
1569
|
+
{
|
|
1570
|
+
"name": "media.setImageSource",
|
|
1571
|
+
"domain": "media",
|
|
1572
|
+
"payload": "{ elementId: string; slideId?: string; asset: FikaMediaAssetInput; patch?: Partial<PPTImageElement> }",
|
|
1573
|
+
"returns": "PPTImageElement"
|
|
1574
|
+
},
|
|
1575
|
+
{
|
|
1576
|
+
"name": "media.setVideoSource",
|
|
1577
|
+
"domain": "media",
|
|
1578
|
+
"payload": "{ elementId: string; slideId?: string; asset: FikaMediaAssetInput; patch?: Partial<PPTVideoElement> }",
|
|
1579
|
+
"returns": "PPTVideoElement"
|
|
1580
|
+
},
|
|
1581
|
+
{
|
|
1582
|
+
"name": "media.setAudioSource",
|
|
1583
|
+
"domain": "media",
|
|
1584
|
+
"payload": "{ elementId: string; slideId?: string; asset: FikaMediaAssetInput; patch?: Partial<PPTAudioElement> }",
|
|
1585
|
+
"returns": "PPTAudioElement"
|
|
1586
|
+
},
|
|
1587
|
+
{
|
|
1588
|
+
"name": "images.setClip",
|
|
1589
|
+
"domain": "images",
|
|
1590
|
+
"payload": "{ elementId: string; slideId?: string; clip?: PPTImageElement['clip'] }",
|
|
1591
|
+
"returns": "PPTImageElement"
|
|
1592
|
+
},
|
|
1593
|
+
{
|
|
1594
|
+
"name": "images.setCrop",
|
|
1595
|
+
"domain": "images",
|
|
1596
|
+
"payload": "{ elementId: string; slideId?: string; range: NonNullable<PPTImageElement['clip']>['range']; shape?: NonNullable<PPTImageElement['clip']>['shape'] }",
|
|
1597
|
+
"returns": "PPTImageElement"
|
|
1598
|
+
},
|
|
1599
|
+
{
|
|
1600
|
+
"name": "images.setMask",
|
|
1601
|
+
"domain": "images",
|
|
1602
|
+
"payload": "{ elementId: string; slideId?: string; mask: { shape?: string; radius?: number; colorMask?: string } }",
|
|
1603
|
+
"returns": "PPTImageElement"
|
|
1604
|
+
},
|
|
1605
|
+
{
|
|
1606
|
+
"name": "images.setRadius",
|
|
1607
|
+
"domain": "images",
|
|
1608
|
+
"payload": "{ elementId: string; slideId?: string; radius?: PPTImageElement['radius'] }",
|
|
1609
|
+
"returns": "PPTImageElement"
|
|
1610
|
+
},
|
|
1611
|
+
{
|
|
1612
|
+
"name": "images.setFilters",
|
|
1613
|
+
"domain": "images",
|
|
1614
|
+
"payload": "{ elementId: string; slideId?: string; filters?: PPTImageElement['filters'] }",
|
|
1615
|
+
"returns": "PPTImageElement"
|
|
1616
|
+
},
|
|
1617
|
+
{
|
|
1618
|
+
"name": "images.setFilter",
|
|
1619
|
+
"domain": "images",
|
|
1620
|
+
"payload": "{ elementId: string; slideId?: string; key: ImageFilterKey; value?: string | number }",
|
|
1621
|
+
"returns": "PPTImageElement"
|
|
1622
|
+
},
|
|
1623
|
+
{
|
|
1624
|
+
"name": "images.setOpacity",
|
|
1625
|
+
"domain": "images",
|
|
1626
|
+
"payload": "{ elementId: string; slideId?: string; opacity: string | number }",
|
|
1627
|
+
"returns": "PPTImageElement"
|
|
1628
|
+
},
|
|
1629
|
+
{
|
|
1630
|
+
"name": "images.setFlip",
|
|
1631
|
+
"domain": "images",
|
|
1632
|
+
"payload": "{ elementId: string; slideId?: string; flip: Pick<PPTImageElement, 'flipH' | 'flipV'> }",
|
|
1633
|
+
"returns": "PPTImageElement"
|
|
1634
|
+
},
|
|
1635
|
+
{
|
|
1636
|
+
"name": "images.setShadow",
|
|
1637
|
+
"domain": "images",
|
|
1638
|
+
"payload": "{ elementId: string; slideId?: string; shadow?: Partial<NonNullable<PPTImageElement['shadow']>> }",
|
|
1639
|
+
"returns": "PPTImageElement"
|
|
1640
|
+
},
|
|
1641
|
+
{
|
|
1642
|
+
"name": "images.setColorMask",
|
|
1643
|
+
"domain": "images",
|
|
1644
|
+
"payload": "{ elementId: string; slideId?: string; colorMask?: string }",
|
|
1645
|
+
"returns": "PPTImageElement"
|
|
1646
|
+
},
|
|
1647
|
+
{
|
|
1648
|
+
"name": "images.setImageType",
|
|
1649
|
+
"domain": "images",
|
|
1650
|
+
"payload": "{ elementId: string; slideId?: string; imageType?: PPTImageElement['imageType'] }",
|
|
1651
|
+
"returns": "PPTImageElement"
|
|
1652
|
+
},
|
|
1653
|
+
{
|
|
1654
|
+
"name": "images.setAsBackground",
|
|
1655
|
+
"domain": "images",
|
|
1656
|
+
"payload": "{ elementId: string; slideId?: string; options?: { slideId?: string; size?: NonNullable<SlideBackground['image']>['size']; deleteElement?: boolean } }",
|
|
1657
|
+
"returns": "Slide"
|
|
1658
|
+
},
|
|
1659
|
+
{
|
|
1660
|
+
"name": "videos.get",
|
|
1661
|
+
"domain": "videos",
|
|
1662
|
+
"payload": "{ elementId: string; slideId?: string }",
|
|
1663
|
+
"returns": "PPTVideoElement"
|
|
1664
|
+
},
|
|
1665
|
+
{
|
|
1666
|
+
"name": "videos.update",
|
|
1667
|
+
"domain": "videos",
|
|
1668
|
+
"payload": "{ elementId: string; slideId?: string; patch: FikaVideoPatch }",
|
|
1669
|
+
"returns": "PPTVideoElement"
|
|
1670
|
+
},
|
|
1671
|
+
{
|
|
1672
|
+
"name": "videos.setSource",
|
|
1673
|
+
"domain": "videos",
|
|
1674
|
+
"payload": "{ elementId: string; slideId?: string; source: FikaVideoSourcePatch }",
|
|
1675
|
+
"returns": "PPTVideoElement"
|
|
1676
|
+
},
|
|
1677
|
+
{
|
|
1678
|
+
"name": "videos.setPlayback",
|
|
1679
|
+
"domain": "videos",
|
|
1680
|
+
"payload": "{ elementId: string; slideId?: string; playback: FikaVideoPlaybackPatch }",
|
|
1681
|
+
"returns": "PPTVideoElement"
|
|
1682
|
+
},
|
|
1683
|
+
{
|
|
1684
|
+
"name": "videos.setAutoplay",
|
|
1685
|
+
"domain": "videos",
|
|
1686
|
+
"payload": "{ elementId: string; slideId?: string; autoplay: boolean }",
|
|
1687
|
+
"returns": "PPTVideoElement"
|
|
1688
|
+
},
|
|
1689
|
+
{
|
|
1690
|
+
"name": "videos.setPoster",
|
|
1691
|
+
"domain": "videos",
|
|
1692
|
+
"payload": "{ elementId: string; slideId?: string; poster: string }",
|
|
1693
|
+
"returns": "PPTVideoElement"
|
|
1694
|
+
},
|
|
1695
|
+
{
|
|
1696
|
+
"name": "videos.setSize",
|
|
1697
|
+
"domain": "videos",
|
|
1698
|
+
"payload": "{ elementId: string; slideId?: string; size: FikaVideoSizePatch }",
|
|
1699
|
+
"returns": "PPTVideoElement"
|
|
1700
|
+
},
|
|
1701
|
+
{
|
|
1702
|
+
"name": "videos.setPosition",
|
|
1703
|
+
"domain": "videos",
|
|
1704
|
+
"payload": "{ elementId: string; slideId?: string; position: FikaVideoPositionPatch }",
|
|
1705
|
+
"returns": "PPTVideoElement"
|
|
1706
|
+
},
|
|
1707
|
+
{
|
|
1708
|
+
"name": "audio.get",
|
|
1709
|
+
"domain": "audio",
|
|
1710
|
+
"payload": "{ elementId: string; slideId?: string }",
|
|
1711
|
+
"returns": "PPTAudioElement | null"
|
|
1712
|
+
},
|
|
1713
|
+
{
|
|
1714
|
+
"name": "audio.create",
|
|
1715
|
+
"domain": "audio",
|
|
1716
|
+
"payload": "FikaCreateAudioInput",
|
|
1717
|
+
"returns": "PPTAudioElement"
|
|
1718
|
+
},
|
|
1719
|
+
{
|
|
1720
|
+
"name": "audio.update",
|
|
1721
|
+
"domain": "audio",
|
|
1722
|
+
"payload": "{ elementId: string; slideId?: string; patch: FikaAudioElementPatch }",
|
|
1723
|
+
"returns": "PPTAudioElement"
|
|
1724
|
+
},
|
|
1725
|
+
{
|
|
1726
|
+
"name": "audio.setSource",
|
|
1727
|
+
"domain": "audio",
|
|
1728
|
+
"payload": "{ elementId: string; slideId?: string; source: FikaAudioSourceInput }",
|
|
1729
|
+
"returns": "PPTAudioElement"
|
|
1730
|
+
},
|
|
1731
|
+
{
|
|
1732
|
+
"name": "audio.setPlayback",
|
|
1733
|
+
"domain": "audio",
|
|
1734
|
+
"payload": "{ elementId: string; slideId?: string; playback: Pick<FikaAudioElementPatch, 'autoplay' | 'loop'> }",
|
|
1735
|
+
"returns": "PPTAudioElement"
|
|
1736
|
+
},
|
|
1737
|
+
{
|
|
1738
|
+
"name": "audio.setIcon",
|
|
1739
|
+
"domain": "audio",
|
|
1740
|
+
"payload": "{ elementId: string; slideId?: string; icon: Pick<FikaAudioElementPatch, 'color' | 'fixedRatio'> }",
|
|
1741
|
+
"returns": "PPTAudioElement"
|
|
1742
|
+
},
|
|
1743
|
+
{
|
|
1744
|
+
"name": "audio.transform",
|
|
1745
|
+
"domain": "audio",
|
|
1746
|
+
"payload": "{ elementId: string; slideId?: string; transform: FikaAudioTransformPatch }",
|
|
1747
|
+
"returns": "PPTAudioElement"
|
|
1748
|
+
},
|
|
1749
|
+
{
|
|
1750
|
+
"name": "notes.create",
|
|
1751
|
+
"domain": "notes",
|
|
1752
|
+
"payload": "{ slideId: string; note: FikaNoteInput }",
|
|
1753
|
+
"returns": "Note"
|
|
1754
|
+
},
|
|
1755
|
+
{
|
|
1756
|
+
"name": "notes.update",
|
|
1757
|
+
"domain": "notes",
|
|
1758
|
+
"payload": "{ slideId: string; noteId: string; patch: FikaNotePatch }",
|
|
1759
|
+
"returns": "Note"
|
|
1760
|
+
},
|
|
1761
|
+
{
|
|
1762
|
+
"name": "notes.delete",
|
|
1763
|
+
"domain": "notes",
|
|
1764
|
+
"payload": "{ slideId: string; noteId: string | string[] }",
|
|
1765
|
+
"returns": "{ deleted: string[] }"
|
|
1766
|
+
},
|
|
1767
|
+
{
|
|
1768
|
+
"name": "notes.reply",
|
|
1769
|
+
"domain": "notes",
|
|
1770
|
+
"payload": "{ slideId: string; noteId: string; reply: FikaNoteReplyInput }",
|
|
1771
|
+
"returns": "NoteReply"
|
|
1772
|
+
},
|
|
1773
|
+
{
|
|
1774
|
+
"name": "sections.list",
|
|
1775
|
+
"domain": "sections",
|
|
1776
|
+
"payload": "undefined",
|
|
1777
|
+
"returns": "FikaSectionRange[]"
|
|
1778
|
+
},
|
|
1779
|
+
{
|
|
1780
|
+
"name": "sections.set",
|
|
1781
|
+
"domain": "sections",
|
|
1782
|
+
"payload": "{ slideId: string; section: NonNullable<Slide['sectionTag']> }",
|
|
1783
|
+
"returns": "Slide"
|
|
1784
|
+
},
|
|
1785
|
+
{
|
|
1786
|
+
"name": "sections.clear",
|
|
1787
|
+
"domain": "sections",
|
|
1788
|
+
"payload": "{ sectionIdOrSlideId?: string; slideId?: string; sectionId?: string }",
|
|
1789
|
+
"returns": "Slide"
|
|
1790
|
+
},
|
|
1791
|
+
{
|
|
1792
|
+
"name": "sections.rename",
|
|
1793
|
+
"domain": "sections",
|
|
1794
|
+
"payload": "{ sectionId: string; title: string }",
|
|
1795
|
+
"returns": "Slide[]"
|
|
1796
|
+
},
|
|
1797
|
+
{
|
|
1798
|
+
"name": "sections.delete",
|
|
1799
|
+
"domain": "sections",
|
|
1800
|
+
"payload": "{ sectionId: string }",
|
|
1801
|
+
"returns": "{ deleted: string[] }"
|
|
1802
|
+
},
|
|
1803
|
+
{
|
|
1804
|
+
"name": "sections.assignRange",
|
|
1805
|
+
"domain": "sections",
|
|
1806
|
+
"payload": "{ startIndex: number; endIndex: number; section: NonNullable<Slide['sectionTag']> }",
|
|
1807
|
+
"returns": "Slide[]"
|
|
1808
|
+
},
|
|
1809
|
+
{
|
|
1810
|
+
"name": "sections.move",
|
|
1811
|
+
"domain": "sections",
|
|
1812
|
+
"payload": "{ sectionId: string; toIndex: number }",
|
|
1813
|
+
"returns": "Slide[]"
|
|
1814
|
+
},
|
|
1815
|
+
{
|
|
1816
|
+
"name": "search.find",
|
|
1817
|
+
"domain": "search",
|
|
1818
|
+
"payload": "{ query: string; options?: FikaSearchOptions }",
|
|
1819
|
+
"returns": "FikaSearchResult[]"
|
|
1820
|
+
},
|
|
1821
|
+
{
|
|
1822
|
+
"name": "search.replace",
|
|
1823
|
+
"domain": "search",
|
|
1824
|
+
"payload": "{ query: string; replacement: string; options?: FikaReplaceOptions }",
|
|
1825
|
+
"returns": "FikaSearchReplaceResult"
|
|
1826
|
+
},
|
|
1827
|
+
{
|
|
1828
|
+
"name": "history.commit",
|
|
1829
|
+
"domain": "history",
|
|
1830
|
+
"payload": "{ label?: string } | undefined",
|
|
1831
|
+
"returns": "FikaBridgeState"
|
|
1832
|
+
},
|
|
1833
|
+
{
|
|
1834
|
+
"name": "history.undo",
|
|
1835
|
+
"domain": "history",
|
|
1836
|
+
"payload": "undefined",
|
|
1837
|
+
"returns": "FikaBridgeState"
|
|
1838
|
+
},
|
|
1839
|
+
{
|
|
1840
|
+
"name": "history.redo",
|
|
1841
|
+
"domain": "history",
|
|
1842
|
+
"payload": "undefined",
|
|
1843
|
+
"returns": "FikaBridgeState"
|
|
1844
|
+
},
|
|
1845
|
+
{
|
|
1846
|
+
"name": "view.goToSlide",
|
|
1847
|
+
"domain": "view",
|
|
1848
|
+
"payload": "{ slideIdOrIndex: FikaSlideReference }",
|
|
1849
|
+
"returns": "FikaBridgeState"
|
|
1850
|
+
},
|
|
1851
|
+
{
|
|
1852
|
+
"name": "view.nextSlide",
|
|
1853
|
+
"domain": "view",
|
|
1854
|
+
"payload": "undefined",
|
|
1855
|
+
"returns": "FikaBridgeState"
|
|
1856
|
+
},
|
|
1857
|
+
{
|
|
1858
|
+
"name": "view.previousSlide",
|
|
1859
|
+
"domain": "view",
|
|
1860
|
+
"payload": "undefined",
|
|
1861
|
+
"returns": "FikaBridgeState"
|
|
1862
|
+
},
|
|
1863
|
+
{
|
|
1864
|
+
"name": "view.setZoom",
|
|
1865
|
+
"domain": "view",
|
|
1866
|
+
"payload": "{ scale: number }",
|
|
1867
|
+
"returns": "FikaBridgeState"
|
|
1868
|
+
},
|
|
1869
|
+
{
|
|
1870
|
+
"name": "view.enterPresentation",
|
|
1871
|
+
"domain": "view",
|
|
1872
|
+
"payload": "undefined",
|
|
1873
|
+
"returns": "FikaBridgeState"
|
|
1874
|
+
},
|
|
1875
|
+
{
|
|
1876
|
+
"name": "view.exitPresentation",
|
|
1877
|
+
"domain": "view",
|
|
1878
|
+
"payload": "undefined",
|
|
1879
|
+
"returns": "FikaBridgeState"
|
|
1880
|
+
},
|
|
1881
|
+
{
|
|
1882
|
+
"name": "view.setLocale",
|
|
1883
|
+
"domain": "view",
|
|
1884
|
+
"payload": "{ locale: Locales }",
|
|
1885
|
+
"returns": "{ locale: Locales }"
|
|
1886
|
+
}
|
|
1887
|
+
],
|
|
1888
|
+
"guides": [
|
|
1889
|
+
{
|
|
1890
|
+
"id": "slide-numbers",
|
|
1891
|
+
"title": "Slide numbers start at 1",
|
|
1892
|
+
"summary": "Every slide number you send or receive is 1-based. First slide = 1. Never add or subtract 1.",
|
|
1893
|
+
"body": [
|
|
1894
|
+
"payload.index, result.data.slideIndex, screenshot.slideIndex, getState().slideIndex, selectedSlideIndexes, plan.slides[].index, and plan.loudIndex are the SAME 1-based number. If a screenshot or QA warning says slide 6, that slide’s index is 6.",
|
|
1895
|
+
"First slide = 1. Last existing slide = slideCount. There is no slide 0.",
|
|
1896
|
+
"Omit index to append (or replace the blank starter / a duplicate title after setup). index === slideCount + 1 also appends. 1 ≤ index ≤ slideCount on slides.createFromLayout REPLACES that slide in place.",
|
|
1897
|
+
"plan.slides is a JS array (first entry at [0]), but each entry.index is the 1-based slide number: plan.slides[0].index === 1. Always pass entry.index or plan.loudIndex — never the array offset.",
|
|
1898
|
+
"To rebuild the loud slide: slides.createFromLayout({ index: plan.loudIndex, layoutId: 'imageFull', … }).",
|
|
1899
|
+
"Element z-order, table row/col, and chart series indexes are not slide numbers — those stay 0-based."
|
|
1900
|
+
]
|
|
1901
|
+
},
|
|
1902
|
+
{
|
|
1903
|
+
"id": "styles-layouts-flow",
|
|
1904
|
+
"title": "How to build a deck (styles + composition plan + layouts)",
|
|
1905
|
+
"summary": "The recommended flow for a fresh deck: one deck.setup call (style + composition plan), then build each slide from a layout variant that matches the planned anchor.",
|
|
1906
|
+
"body": [
|
|
1907
|
+
"1. Bootstrap once: deck.setup({ styleId:'academic', slideCount }). This applies the visual identity, records theme.styleId + motif, AND returns plan.slides (ordered anchors with no consecutive repeats + exactly one loud slide). Prefer this over separate styles.catalog / applyStyle / planComposition.",
|
|
1908
|
+
"2. For each slide, pick the layout FAMILY whose composition matches the slide's job, then a VARIANT whose anchor matches plan.slides[i].anchor when possible. Prefer filled variants (standard/grid/accentPanel/even) for real teaching content; rail/offset variants are only for short/sparse lists (≤3 items) and auto-collapse when dense. Keep one todo per slide.",
|
|
1909
|
+
"3. Add the slide with slides.createFromLayout({ layoutId, variantId, slots }). Fill slots with Markdown/plain text (titles, bullets, body) or structured values (arrays for bullets; { labels, series } for charts; rows for comparison). Do NOT prefix numbered step headings with '1.'/'2.' — chips are drawn automatically. Prefer leftBullets/rightBullets over markdown lists in *Body. The engine themes, positions, draws the motif, sanitizes doubled markers, and auto-fits text to every box — you never set coordinates, colors, or font sizes.",
|
|
1910
|
+
"4. After each slide, READ THE QA WARNINGS in the result and look at the auto-screenshot. QA flags overlap, low contrast, too-many/too-long bullets, shrunk text, empty placeholders, or a repeated composition vs the previous slide — fix any flag in the same turn (rebuild with a different variant or tighter copy). CompositionDrift is soft: keep the slide. Use the loud slide (plan.loudIndex) for a fullBleed layout (imageFull); use 'title' first and 'closing' last.",
|
|
1911
|
+
"5. Vary the layout FAMILY across the deck as well as the variant: 'cards' for parallel items, 'numbered' for ordered steps, 'bigStat'/'chart' for data, 'quote'/'imageFull' for impact. A deck where every slide is 'bullets' is the look to avoid.",
|
|
1912
|
+
"6. Only drop to host-registered templates (deck.applyTemplate + slides.insertFromTemplate) when templates.catalog is non-empty, or manual slides.create when no layout fits."
|
|
1913
|
+
]
|
|
1914
|
+
},
|
|
1915
|
+
{
|
|
1916
|
+
"id": "templates-flow",
|
|
1917
|
+
"title": "How to build a deck (alternative: host-registered templates)",
|
|
1918
|
+
"summary": "Only when the embed host registered templates. Pick one catalog id, apply its theme, insert slides by slug, then edit text.",
|
|
1919
|
+
"body": [
|
|
1920
|
+
"1. Read templates.catalog. If it is empty, stop and use the styles + layouts flow instead.",
|
|
1921
|
+
"2. Pick exactly ONE host-registered template and apply it once: deck.applyTemplate({ templateId }). This sets the deck theme. Do not hand-pick colors or fonts after this.",
|
|
1922
|
+
"3. Read templates.slidesCatalog({ templateId }) — slides are grouped by type: cover, contents, transition, content, end. Each entry has a slug and description.",
|
|
1923
|
+
"4. For each slide in your outline, call slides.insertFromTemplate({ templateId, slug }) with the slug that best matches (e.g. cover_1 for title, contents_1 for agenda, content_2 for a text+image slide).",
|
|
1924
|
+
"5. Use the returned placeholderElementIds/textElementIds: batch text.setMarkdown (or text.update) to replace placeholder copy. Do not add separate text boxes over placeholders. Author Markdown/plain text only — never HTML.",
|
|
1925
|
+
"6. After creating or editing a slide, look at the auto-screenshot. Fix overflow and literal markup before moving on.",
|
|
1926
|
+
"7. Only use slides.create + manual elements when no template slide in the catalog fits."
|
|
1927
|
+
]
|
|
1928
|
+
},
|
|
1929
|
+
{
|
|
1930
|
+
"id": "content-authoring",
|
|
1931
|
+
"title": "Authoring content (Markdown / plain text / structured data — not HTML)",
|
|
1932
|
+
"summary": "What to put in text and layout slots, and why raw HTML does not belong there.",
|
|
1933
|
+
"body": [
|
|
1934
|
+
"Layout slots and the markdown text path accept Markdown, plain text, or structured values (arrays for bullets; { labels, series } for charts; rows for comparison). The engine renders them into clean, themed HTML for you.",
|
|
1935
|
+
"Do NOT write raw HTML tags (<div>, <span style>, <br>, <b>, ...) into Markdown/plain-text inputs. They are ESCAPED and appear as literal angle-bracket text on the slide. The bridge attaches a warning when it detects this — treat that warning as a must-fix.",
|
|
1936
|
+
"Use Markdown syntax for emphasis: **bold**, _italic_, `code`, and - / 1. for lists. Math uses $...$ / $$...$$ (KaTeX).",
|
|
1937
|
+
"The only place literal HTML is appropriate is the explicit literal path (text.setContent / element.content) when you intentionally want to render markup — for example, displaying an HTML code snippet as content. Even then, prefer a fenced code block in Markdown when you just want code to look like code.",
|
|
1938
|
+
"If a screenshot shows literal tags or markup characters on a slide, you used the wrong path: re-author the text as Markdown via text.setMarkdown."
|
|
1939
|
+
]
|
|
1940
|
+
},
|
|
1941
|
+
{
|
|
1942
|
+
"id": "getting-started",
|
|
1943
|
+
"title": "Manual placement (fallback)",
|
|
1944
|
+
"summary": "For bespoke slides a layout can't express: the read -> style -> per-slide batch -> review loop.",
|
|
1945
|
+
"body": [
|
|
1946
|
+
"Prefer styles + layouts. Use manual placement only when no layout fits.",
|
|
1947
|
+
"1. Read the current deck (controller.export.json() or deck.get) and apply a style (deck.setup / deck.applyStyle) so element defaults inherit a coherent palette and font.",
|
|
1948
|
+
"2. For each slide: create the slide, capture result.data.id, then add its elements in a single executeBatch so the slide is one undo step.",
|
|
1949
|
+
"3. Place elements in canvas px (default 1000 x 562.5). Keep a 40px margin and a clear visual hierarchy: title row, content area, footer/citation.",
|
|
1950
|
+
"4. Author body text in Markdown (text.create({ markdown }) / text.setMarkdown), never raw HTML.",
|
|
1951
|
+
"5. Screenshot the slide and fix overflow/contrast/alignment before moving on. Use meta.dryRun to validate a risky payload before applying it."
|
|
1952
|
+
]
|
|
1953
|
+
},
|
|
1954
|
+
{
|
|
1955
|
+
"id": "coordinate-system",
|
|
1956
|
+
"title": "Coordinate system & sizing",
|
|
1957
|
+
"summary": "Everything is absolute pixels on a 1000 x 562.5 canvas.",
|
|
1958
|
+
"body": [
|
|
1959
|
+
"Canvas = viewport.size wide by viewport.size * viewport.ratio tall. Default 16:9 -> 1000 x 562.5 px. Origin is top-left.",
|
|
1960
|
+
"Element box: left, top, width, height (px) and rotate (clockwise degrees about the center). Lines use start/end points instead.",
|
|
1961
|
+
"Safe area: keep left/top >= 40 and right/bottom edges <= 960 / 522 on the default canvas.",
|
|
1962
|
+
"Porting an inches layout (e.g. pptxgenjs 10in x 5.625in): multiply inches by 100. 0.5in margin -> 50px; a 5.4in-wide chart -> 540px.",
|
|
1963
|
+
"Text size is set by inline HTML styles inside content, e.g. <span style=\"font-size:40px\">. defaultColor/defaultFontName are only fallbacks for unsized runs."
|
|
1964
|
+
]
|
|
1965
|
+
},
|
|
1966
|
+
{
|
|
1967
|
+
"id": "title-slide",
|
|
1968
|
+
"title": "Title slide",
|
|
1969
|
+
"summary": "Dark background, large statement title, subtitle, author/affiliation, accent rule.",
|
|
1970
|
+
"body": [
|
|
1971
|
+
"Slide: background solid primary (#1F4E79).",
|
|
1972
|
+
"Title text: left 70, top 150, width 860, height 180. content uses ~64px bold white, framed as a statement or question.",
|
|
1973
|
+
"Subtitle text: left 70, top 330, width 860, height 40. ~18px in a light tint (#A0BBDD).",
|
|
1974
|
+
"Author/affiliation text: left 70, top 380, width 860, height 60. ~16px (#CADCFC).",
|
|
1975
|
+
"Accent rule: a shape at left 70, top 360, width 200, height 4, fill accent (#2E75B6).",
|
|
1976
|
+
"Avoid: clip art, logos (unless requested), decorative images."
|
|
1977
|
+
]
|
|
1978
|
+
},
|
|
1979
|
+
{
|
|
1980
|
+
"id": "section-divider",
|
|
1981
|
+
"title": "Section divider",
|
|
1982
|
+
"summary": "Orient the audience at the start of each major part of a long deck.",
|
|
1983
|
+
"body": [
|
|
1984
|
+
"Slide: dark background (a slightly lighter navy, e.g. #1A3A5C, for variety).",
|
|
1985
|
+
"Eyebrow text: 'Part 2' at left 40, top 180, ~18px (#7BAFD4).",
|
|
1986
|
+
"Section title text: left 40, top 220, width 920, ~40px bold white.",
|
|
1987
|
+
"Accent rule: shape left 40, top 330, width 250, height 6, fill accent."
|
|
1988
|
+
]
|
|
1989
|
+
},
|
|
1990
|
+
{
|
|
1991
|
+
"id": "content-bullets",
|
|
1992
|
+
"title": "Content slide (action title + bullets)",
|
|
1993
|
+
"summary": "An action title that states the takeaway, a thin divider, and concise body bullets.",
|
|
1994
|
+
"body": [
|
|
1995
|
+
"Action title text: left 40, top 30, width 920, height 90. ~40px bold primary. Write a full sentence that states the point, not just a topic.",
|
|
1996
|
+
"Divider: shape left 40, top 120, width 920, height 3, fill rule (#CCCCCC).",
|
|
1997
|
+
"Body text: left 40, top 140, width 920, height 360. Author with Markdown bullets (text.create({ markdown })). Keep <= ~40 words; body >= 24px.",
|
|
1998
|
+
"Optional citation: text left 40, top 520, ~14px muted."
|
|
1999
|
+
]
|
|
2000
|
+
},
|
|
2001
|
+
{
|
|
2002
|
+
"id": "two-column",
|
|
2003
|
+
"title": "Two-column layout",
|
|
2004
|
+
"summary": "A header per column with aligned body blocks; good for design vs. outcomes.",
|
|
2005
|
+
"body": [
|
|
2006
|
+
"Left column header: text left 40, top 130, width 440, ~30px accent bold.",
|
|
2007
|
+
"Left body: text left 40, top 175, width 440, height 300, Markdown bullets.",
|
|
2008
|
+
"Right column header: text left 520, top 130, width 440, ~30px accent bold.",
|
|
2009
|
+
"Right body: text left 520, top 175, width 440, height 300, Markdown bullets.",
|
|
2010
|
+
"Keep the same top for both columns so headers align."
|
|
2011
|
+
]
|
|
2012
|
+
},
|
|
2013
|
+
{
|
|
2014
|
+
"id": "results-with-chart",
|
|
2015
|
+
"title": "Results slide (chart + interpretation)",
|
|
2016
|
+
"summary": "One exhibit, one finding. Chart left, interpretive text right, takeaway in the title.",
|
|
2017
|
+
"body": [
|
|
2018
|
+
"Action title text: left 40, top 30, width 920, height 90. State the result (e.g. 'Treated group earns 18% more').",
|
|
2019
|
+
"Divider: shape left 40, top 120, width 920, height 3, fill rule.",
|
|
2020
|
+
"Chart: charts.create at left 40, top 135, width 540, height 360 with labels + one series.",
|
|
2021
|
+
"Interpretation header: text left 620, top 135, width 330, ~30px accent bold.",
|
|
2022
|
+
"Interpretation bullets: text left 620, top 180, width 330, height 250, Markdown.",
|
|
2023
|
+
"Source citation: text left 40, top 520, ~14px muted.",
|
|
2024
|
+
"Annotate the single key number directly with a small highlight shape (#FFF2CC) + label over the chart."
|
|
2025
|
+
]
|
|
2026
|
+
},
|
|
2027
|
+
{
|
|
2028
|
+
"id": "conclusions",
|
|
2029
|
+
"title": "Conclusions slide",
|
|
2030
|
+
"summary": "Mirror the title slide; numbered takeaways that stay on screen during Q&A.",
|
|
2031
|
+
"body": [
|
|
2032
|
+
"Slide: dark background primary (matches the title slide for a 'sandwich' structure).",
|
|
2033
|
+
"Eyebrow text: 'Conclusions' at left 40, top 25, ~20px light tint.",
|
|
2034
|
+
"Accent rule: shape left 40, top 70, width 920, height 4, fill accent.",
|
|
2035
|
+
"Takeaways text: left 40, top 90, width 920, height 350. Numbered Markdown list, ~26px white, with the lead clause of each point bold.",
|
|
2036
|
+
"Contact/link text: left 40, top 480, ~14px light tint."
|
|
2037
|
+
]
|
|
2038
|
+
},
|
|
2039
|
+
{
|
|
2040
|
+
"id": "shapes-howto",
|
|
2041
|
+
"title": "Working with shapes",
|
|
2042
|
+
"summary": "How to build dividers, rules, callout boxes and color blocks from presets or raw paths.",
|
|
2043
|
+
"body": [
|
|
2044
|
+
"Start from a preset: const presets = controller.shapes.presets('rect'); then spread one into shapes.create and override geometry/fill.",
|
|
2045
|
+
"Raw path: provide viewBox (e.g. [200,200]) and an SVG path in that box; Fika scales it to width/height. A filled rectangle path is 'M 0 0 L 200 0 L 200 200 L 0 200 Z'.",
|
|
2046
|
+
"Accent rule / divider: a wide, low-height filled rectangle (height 3-6px) in the rule or accent color.",
|
|
2047
|
+
"Callout box: a rounded-rect preset with a light fill (#EBF3FA or #FFF2CC) and a 1.5-2px outline in accent; add centered inner text via element.text or shapes.setText.",
|
|
2048
|
+
"Background band: a full-width shape with a low z-order (send it to back with elements.sendToBack) sitting behind text.",
|
|
2049
|
+
"Use opacity and gradient (shapes.setGradient) sparingly for depth; keep contrast high enough to read body text."
|
|
2050
|
+
]
|
|
2051
|
+
},
|
|
2052
|
+
{
|
|
2053
|
+
"id": "markdown",
|
|
2054
|
+
"title": "Authoring text in Markdown",
|
|
2055
|
+
"summary": "The bridge converts Markdown to the HTML Fika stores. Use it for fast, readable copy.",
|
|
2056
|
+
"body": [
|
|
2057
|
+
"Flavor: markdown-it + markdown-it-texmath (KaTeX).",
|
|
2058
|
+
"Use text.create({ markdown }) / text.setMarkdown(elementId, markdown), or await controller.markdownToHtml(md)."
|
|
2059
|
+
]
|
|
2060
|
+
},
|
|
2061
|
+
{
|
|
2062
|
+
"id": "quality-checklist",
|
|
2063
|
+
"title": "Pre-delivery checklist",
|
|
2064
|
+
"summary": "Quick checks before declaring a deck done.",
|
|
2065
|
+
"body": [
|
|
2066
|
+
"Every content slide has an action title that states the takeaway (a full sentence, not a topic).",
|
|
2067
|
+
"Reading the titles alone tells the complete argument.",
|
|
2068
|
+
"Results slides show one exhibit each, with the key number annotated.",
|
|
2069
|
+
"Body text >= 24px; no slide has more than ~40 words of body text.",
|
|
2070
|
+
"Borrowed figures/data carry an in-slide citation.",
|
|
2071
|
+
"A 40px margin is respected on every edge; nothing is clipped off-canvas.",
|
|
2072
|
+
"Title and conclusions slides share the dark treatment (sandwich structure)."
|
|
2073
|
+
]
|
|
2074
|
+
}
|
|
2075
|
+
],
|
|
2076
|
+
"layoutCheatsheet": [],
|
|
2077
|
+
"helperTypes": {
|
|
2078
|
+
"FikaAnimationCatalog": "export interface FikaAnimationCatalog { enter: FikaAnimationPresetGroup[]; exit: FikaAnimationPresetGroup[]; attention: FikaAnimationPresetGroup[]; slide: FikaSlideAnimationPreset[] }",
|
|
2079
|
+
"FikaAnimationPreset": "export interface FikaAnimationPreset { name: string; value: string }",
|
|
2080
|
+
"FikaAnimationPresetGroup": "export interface FikaAnimationPresetGroup { type: string; name: string; children: FikaAnimationPreset[] }",
|
|
2081
|
+
"FikaAnimationSequenceStep": "export interface FikaAnimationSequenceStep { index: number; animations: PPTAnimation[]; autoNext: boolean }",
|
|
2082
|
+
"FikaApplyStyleResult": "export interface FikaApplyStyleResult { styleId: string; theme: SlideTheme }",
|
|
2083
|
+
"FikaApplyTemplateResult": "export interface FikaApplyTemplateResult { templateId: string; theme: SlideTheme }",
|
|
2084
|
+
"FikaAudioElementPatch": "export type FikaAudioElementPatch = Partial<Pick<PPTAudioElement, 'src' | 'ext' | 'autoplay' | 'loop' | 'color' | 'poster' | 'fixedRatio' | 'link' | 'name' | 'lock' | 'groupId'>> & { transform?: FikaAudioTransformPatch }",
|
|
2085
|
+
"FikaAudioSourceInput": "export type FikaAudioSourceInput = FikaMediaAssetInput",
|
|
2086
|
+
"FikaAudioTransformPatch": "export type FikaAudioTransformPatch = Pick<FikaElementTransformPatch, 'left' | 'top' | 'width' | 'height' | 'rotate'>",
|
|
2087
|
+
"FikaBridgeState": "export interface FikaBridgeState { title: string; slideIndex: number; slideCount: number; currentSlideId?: string; selectedSlideIndexes: number[]; selectedElementIds: string[]; handleElementId: string; activeGroupElementId: string; hiddenElementIds: string[]; viewportSize: number; viewportRatio: number; canvasScale: number; canvasPercentage: number; screening: boolean; canUndo: boolean; canRedo: boolean; documentVersion: number; locale?: Locales }",
|
|
2088
|
+
"FikaChartElementPatch": "export interface FikaChartElementPatch { chartType?: ChartType; data?: ChartData; options?: ChartOptions; fill?: PPTChartElement['fill']; outline?: Partial<NonNullable<PPTChartElement['outline']>>; themeColors?: string[]; textColor?: string; lineColor?: string }",
|
|
2089
|
+
"FikaCreateAudioInput": "export interface FikaCreateAudioInput extends FikaAudioElementPatch { id?: string; source?: FikaAudioSourceInput; slideId?: string; index?: number; select?: boolean }",
|
|
2090
|
+
"FikaCreateChartInput": "export type FikaCreateChartInput = FikaChartElementPatch & Partial<Pick<PPTChartElement, 'id' | 'left' | 'top' | 'width' | 'height' | 'rotate'>> & { slideId?: string; index?: number; select?: boolean }",
|
|
2091
|
+
"FikaCreateFromLayoutInput": "export interface FikaCreateFromLayoutInput { layoutId: string; variantId?: string; slots?: Record<string, unknown>; index?: number; select?: boolean; backgroundMode?: FikaLayoutBackgroundMode }",
|
|
2092
|
+
"FikaCreateFromLayoutResult": "export interface FikaCreateFromLayoutResult { slideId: string; slideIndex: number; layoutId: string; variantId: string; anchor: CompositionAnchor; replacedStarter?: boolean; replaced?: boolean; elementIds: string[]; textElementIds: string[] }",
|
|
2093
|
+
"FikaCreateLatexElementInput": "export interface FikaCreateLatexElementInput { slideId?: string; index?: number; element: FikaLatexElementInput; select?: boolean }",
|
|
2094
|
+
"FikaCreateLineElementInput": "export interface FikaCreateLineElementInput { slideId?: string; index?: number; element: FikaLineElementInput; select?: boolean }",
|
|
2095
|
+
"FikaCreateTableInput": "export type FikaCreateTableInput = FikaTableElementPatch & { id?: string; slideId?: string; index?: number; select?: boolean; element?: Partial<PPTTableElement> }",
|
|
2096
|
+
"FikaCreateTextInput": "export interface FikaCreateTextInput { slideId?: string; index?: number; content?: string; markdown?: string; element?: Partial<PPTTextElement>; select?: boolean }",
|
|
2097
|
+
"FikaDeckDocument": "export type FikaDeckDocument = Omit<FikaDocument, 'theme'> & { theme: SlideTheme; viewport: FikaDeckViewport; templates: SlideTemplate[] }",
|
|
2098
|
+
"FikaDeckInput": "export type FikaDeckInput = Omit<FikaDocument, 'theme'> & { theme?: FikaSlideThemePatch; viewport?: Partial<FikaDeckViewport>; templates?: SlideTemplate[] }",
|
|
2099
|
+
"FikaDeckPatch": "export interface FikaDeckPatch { title?: string; slides?: Slide[]; theme?: FikaSlideThemePatch; viewport?: Partial<FikaDeckViewport>; templates?: SlideTemplate[] }",
|
|
2100
|
+
"FikaDeckViewport": "export interface FikaDeckViewport { size: number; ratio: number }",
|
|
2101
|
+
"FikaDeleteSlidesResult": "export interface FikaDeleteSlidesResult { deleted: string[]; slideIndex: number; currentSlideId?: string }",
|
|
2102
|
+
"FikaDocumentImportPayload": "export type FikaDocumentImportPayload = FikaDeckInput | ({ document: FikaDeckInput } & FikaImportDocumentOptions)",
|
|
2103
|
+
"FikaElementFlipInput": "export interface FikaElementFlipInput { flipH?: boolean; flipV?: boolean }",
|
|
2104
|
+
"FikaElementMoveInput": "export interface FikaElementMoveInput { left?: number; top?: number; dx?: number; dy?: number }",
|
|
2105
|
+
"FikaElementResizeInput": "export interface FikaElementResizeInput { width?: number; height?: number; dw?: number; dh?: number }",
|
|
2106
|
+
"FikaElementTransformPatch": "export interface FikaElementTransformPatch { left?: number; top?: number; width?: number; height?: number; rotate?: number; opacity?: number; flipH?: boolean; flipV?: boolean }",
|
|
2107
|
+
"FikaFillElement": "export type FikaFillElement = PPTTextElement | PPTShapeElement | PPTChartElement",
|
|
2108
|
+
"FikaIdMap": "export type FikaIdMap = Record<string, string>",
|
|
2109
|
+
"FikaIdRemap": "export interface FikaIdRemap { slideIds: FikaIdMap; elementIds: FikaIdMap; groupIds: FikaIdMap; animationIds: FikaIdMap }",
|
|
2110
|
+
"FikaImportDocumentOptions": "export interface FikaImportDocumentOptions { mode?: import('../../utils/importApply').ImportApplyMode; cover?: boolean; confirm?: boolean }",
|
|
2111
|
+
"FikaInsertElementsInput": "export interface FikaInsertElementsInput { slideId?: string; index?: number; elements: PPTElement | PPTElement[]; animations?: PPTAnimation[]; offset?: number | { left?: number; top?: number }; select?: boolean; preserveExternalSlideLinks?: boolean; slideIdMap?: FikaIdMap }",
|
|
2112
|
+
"FikaInsertElementsResult": "export interface FikaInsertElementsResult { slideId: string; elements: PPTElement[]; animations: PPTAnimation[]; remap: Omit<FikaIdRemap, 'slideIds'> & { slideIds?: FikaIdMap } }",
|
|
2113
|
+
"FikaInsertFromTemplateInput": "export interface FikaInsertFromTemplateInput { templateId: string; slug: string; index?: number; select?: boolean; applyTemplateTheme?: boolean }",
|
|
2114
|
+
"FikaInsertFromTemplateResult": "export interface FikaInsertFromTemplateResult { slideId: string; slideIndex: number; templateId: string; slug: string; elementIds: string[]; textElementIds: string[]; placeholderElementIds: string[] }",
|
|
2115
|
+
"FikaInsertSlidesInput": "export interface FikaInsertSlidesInput { slides: Slide | Slide[]; index?: number; select?: boolean; preserveExternalSlideLinks?: boolean }",
|
|
2116
|
+
"FikaInsertSlidesResult": "export interface FikaInsertSlidesResult { slides: Slide[]; remap: FikaIdRemap }",
|
|
2117
|
+
"FikaJsonPrimitive": "export type FikaJsonPrimitive = string | number | boolean | null",
|
|
2118
|
+
"FikaJsonValue": "export type FikaJsonValue = FikaJsonPrimitive | FikaJsonValue[] | { [key: string]: FikaJsonValue }",
|
|
2119
|
+
"FikaLatexElementInput": "export type FikaLatexElementInput = FikaLatexElementSizing & Pick<PPTLatexElement, 'latex'> & Partial<Pick<PPTLatexElement, 'path' | 'id' | 'color' | 'strokeWidth' | 'viewBox' | 'fixedRatio' | 'link' | 'name' | 'lock' | 'groupId'>>",
|
|
2120
|
+
"FikaLatexElementPatch": "export type FikaLatexElementPatch = Partial<FikaLatexElementSizing & Pick<PPTLatexElement, 'latex' | 'path' | 'color' | 'strokeWidth' | 'viewBox' | 'fixedRatio' | 'link' | 'name' | 'lock' | 'groupId'>>",
|
|
2121
|
+
"FikaLatexElementSizing": "export interface FikaLatexElementSizing { left?: number; top?: number; width?: number; height?: number; rotate?: number }",
|
|
2122
|
+
"FikaLayout": "export interface FikaLayout { id: string; label: string; summary: string; bestFor: string; feature: boolean; slots: FikaLayoutSlotDef[]; variants: FikaLayoutVariant[] }",
|
|
2123
|
+
"FikaLayoutBackgroundMode": "export type FikaLayoutBackgroundMode = 'auto' | 'feature' | 'plain'",
|
|
2124
|
+
"FikaLayoutSlotDef": "export interface FikaLayoutSlotDef { name: string; type: 'text' | 'bullets' | 'image' | 'chart' | 'stats' | 'rows' | 'cards' | 'steps'; required: boolean; description: string }",
|
|
2125
|
+
"FikaLayoutVariant": "export interface FikaLayoutVariant { id: string; label: string; anchor: CompositionAnchor; summary: string }",
|
|
2126
|
+
"FikaLineDirectionInput": "export type FikaLineDirectionInput = Broken2LineDirection | 'auto'",
|
|
2127
|
+
"FikaLineElementInput": "export type FikaLineElementInput = Partial<Pick<PPTLineElement, 'id' | 'left' | 'top' | 'width' | 'style' | 'color' | 'points' | 'shadow' | 'broken' | 'broken2' | 'broken2Direction' | 'curve' | 'cubic' | 'link' | 'name' | 'lock' | 'groupId'>> & Pick<PPTLineElement, 'start' | 'end'>",
|
|
2128
|
+
"FikaLineElementPatch": "export type FikaLineElementPatch = Partial<Pick<PPTLineElement, 'left' | 'top' | 'width' | 'start' | 'end' | 'style' | 'color' | 'points' | 'shadow' | 'broken' | 'broken2' | 'broken2Direction' | 'curve' | 'cubic' | 'link' | 'name' | 'lock' | 'groupId'>>",
|
|
2129
|
+
"FikaLineStyleInput": "export interface FikaLineStyleInput { style?: LineStyleType; color?: string; width?: number }",
|
|
2130
|
+
"FikaMediaAsset": "export interface FikaMediaAsset { id?: string; kind?: FikaMediaAssetKind; src: string; sourceUrl?: string; ext?: string; mimeType?: string; filename?: string; title?: string; width?: number; height?: number; size?: number; poster?: string; metadata?: { [key: string]: FikaJsonValue } }",
|
|
2131
|
+
"FikaMediaAssetInput": "export type FikaMediaAssetInput = string | FikaMediaAsset",
|
|
2132
|
+
"FikaMediaAssetKind": "export type FikaMediaAssetKind = 'image' | 'video' | 'audio'",
|
|
2133
|
+
"FikaNoteInput": "export type FikaNoteInput = Partial<Omit<Note, 'replies'>> & { content: string; user: string; replies?: FikaNoteReplyInput[] }",
|
|
2134
|
+
"FikaNotePatch": "export type FikaNotePatch = Partial<Omit<Note, 'replies'>> & { replies?: FikaNoteReplyInput[] }",
|
|
2135
|
+
"FikaNoteReplyInput": "export type FikaNoteReplyInput = Partial<NoteReply> & { content: string; user: string }",
|
|
2136
|
+
"FikaOutlineElement": "export type FikaOutlineElement = PPTTextElement | PPTImageElement | PPTShapeElement | PPTChartElement | PPTTableElement",
|
|
2137
|
+
"FikaPlanCompositionResult": "export interface FikaPlanCompositionResult { plan: CompositionPlan; styleId: string; motif: FikaStyleMotif }",
|
|
2138
|
+
"FikaReplaceOptions": "export interface FikaReplaceOptions extends FikaSearchOptions { replaceAll?: boolean }",
|
|
2139
|
+
"FikaRichTextParagraphAttrs": "export interface FikaRichTextParagraphAttrs { align?: TextAlign | ''; indent?: number; textIndent?: number }",
|
|
2140
|
+
"FikaRichTextStylePatch": "export type FikaRichTextStylePatch = Partial<Pick<PPTTextElement, 'defaultFontName' | 'defaultColor' | 'lineHeight' | 'paragraphSpace' | 'wordSpace' | 'inset' | 'vertical'>> & Partial<Pick<ShapeText, 'align'>>",
|
|
2141
|
+
"FikaSearchOptions": "export interface FikaSearchOptions { caseSensitive?: boolean; regex?: boolean }",
|
|
2142
|
+
"FikaSearchReplaceResult": "export interface FikaSearchReplaceResult { count: number }",
|
|
2143
|
+
"FikaSearchResult": "export interface FikaSearchResult { slideId: string; elementId: string; elementType: PPTElement['type']; path: string; match: string; start?: number; end?: number; row?: number; col?: number }",
|
|
2144
|
+
"FikaSectionRange": "export interface FikaSectionRange { slideId: string; index: number; section: NonNullable<Slide['sectionTag']>; startIndex: number; endIndex: number; slideIds: string[] }",
|
|
2145
|
+
"FikaSetupDeckInput": "export interface FikaSetupDeckInput { styleId: string; slideCount: number; hints?: CompositionSlideHint[]; title?: FikaSetupTitleInput }",
|
|
2146
|
+
"FikaSetupDeckResult": "export interface FikaSetupDeckResult { styleId: string; theme: SlideTheme; plan: CompositionPlan; motif: FikaStyleMotif; styles: FikaStyleSummary[]; titleSlideId?: string; titleBuilt?: boolean }",
|
|
2147
|
+
"FikaSetupTitleInput": "export interface FikaSetupTitleInput { slots: Record<string, unknown>; variantId?: string }",
|
|
2148
|
+
"FikaShadowElement": "export type FikaShadowElement = PPTTextElement | PPTImageElement | PPTShapeElement | PPTLineElement",
|
|
2149
|
+
"FikaSlideAnimationPreset": "export interface FikaSlideAnimationPreset { label: string; value: TurningMode }",
|
|
2150
|
+
"FikaSlideReference": "export type FikaSlideReference = string | number",
|
|
2151
|
+
"FikaSlideThemePatch": "export type FikaSlideThemePatch = Omit<Partial<SlideTheme>, 'outline' | 'shadow'> & { outline?: Partial<SlideTheme['outline']>; shadow?: Partial<SlideTheme['shadow']> }",
|
|
2152
|
+
"FikaSlideTransition": "export interface FikaSlideTransition { slideId: string; turningMode?: TurningMode }",
|
|
2153
|
+
"FikaStyleFonts": "export interface FikaStyleFonts { heading: string; body: string }",
|
|
2154
|
+
"FikaStyleMotif": "export interface FikaStyleMotif { colorRole: 'accent' | 'accent2'; shape: 'doubleRule' | 'offsetBlock' | 'roundedChip' | 'hairline'; size: number; description: string }",
|
|
2155
|
+
"FikaStyleSummary": "export interface FikaStyleSummary { id: string; label: string; description: string; fonts: FikaStyleFonts; preview: { background: string; title: string; body: string; accent: string; featureBackground: string }; motif: FikaStyleMotif }",
|
|
2156
|
+
"FikaTableElementPatch": "export type FikaTableElementPatch = Partial<Omit<PPTTableElement, 'type' | 'id' | 'outline' | 'theme'>> & { outline?: Partial<PPTTableElement['outline']>; theme?: Partial<NonNullable<PPTTableElement['theme']>> }",
|
|
2157
|
+
"FikaTemplateSlideEntry": "export interface FikaTemplateSlideEntry { slug: string; type: SlideType; description: string; elementCount: number }",
|
|
2158
|
+
"FikaTemplateSlidesCatalog": "export type FikaTemplateSlidesCatalog = Record<SlideType, FikaTemplateSlideEntry[]>",
|
|
2159
|
+
"FikaTemplateSlidesCatalogResult": "export interface FikaTemplateSlidesCatalogResult { templateId: string; templateName: string; slideCount: number; byType: FikaTemplateSlidesCatalog }",
|
|
2160
|
+
"FikaTemplateSummary": "export interface FikaTemplateSummary { id: string; name: string; cover: string; origin?: string }",
|
|
2161
|
+
"FikaVideoPatch": "export type FikaVideoPatch = FikaVideoPlaybackPatch & FikaVideoSizePatch & FikaVideoPositionPatch & FikaVideoStylePatch",
|
|
2162
|
+
"FikaVideoPlaybackPatch": "export interface FikaVideoPlaybackPatch { src?: string; ext?: string; autoplay?: boolean; poster?: string }",
|
|
2163
|
+
"FikaVideoPositionPatch": "export interface FikaVideoPositionPatch { left?: number; top?: number; rotate?: number }",
|
|
2164
|
+
"FikaVideoSizePatch": "export interface FikaVideoSizePatch { width?: number; height?: number }",
|
|
2165
|
+
"FikaVideoSourcePatch": "export interface FikaVideoSourcePatch { src: string; ext?: string }",
|
|
2166
|
+
"FikaVideoStylePatch": "export interface FikaVideoStylePatch { lock?: boolean; groupId?: string; name?: string; link?: PPTElementLink }",
|
|
2167
|
+
"ImageFilterKey": "type ImageFilterKey = keyof NonNullable<PPTImageElement['filters']>",
|
|
2168
|
+
"SlideReference": "type SlideReference = string | number",
|
|
2169
|
+
"SlideSelectorPayload": "type SlideSelectorPayload = { slideId?: string; index?: number; slideIdOrIndex?: SlideReference }"
|
|
2170
|
+
},
|
|
2171
|
+
"modelTypes": {
|
|
2172
|
+
"AnimationTrigger": "export type AnimationTrigger = 'click' | 'meantime' | 'auto'",
|
|
2173
|
+
"AnimationType": "export type AnimationType = 'in' | 'out' | 'attention'",
|
|
2174
|
+
"Broken2LineDirection": "export type Broken2LineDirection = 'horizontal' | 'vertical'",
|
|
2175
|
+
"ChartData": "export interface ChartData { labels: string[]; legends: string[]; series: number[][] }",
|
|
2176
|
+
"ChartOptions": "export interface ChartOptions { lineSmooth?: boolean; stack?: boolean }",
|
|
2177
|
+
"ChartType": "export type ChartType = 'bar' | 'column' | 'line' | 'pie' | 'ring' | 'area' | 'radar' | 'scatter'",
|
|
2178
|
+
"ElementLinkType": "export type ElementLinkType = 'web' | 'slide'",
|
|
2179
|
+
"ElementSource": "export interface ElementSource { packageId: string; partPath: string; objectId: string; order?: number; name?: string }",
|
|
2180
|
+
"Gradient": "export interface Gradient { type: GradientType; colors: GradientColor[]; rotate: number }",
|
|
2181
|
+
"GradientColor": "export type GradientColor = { pos: number; color: string }",
|
|
2182
|
+
"GradientType": "export type GradientType = 'linear' | 'radial'",
|
|
2183
|
+
"ImageClipDataRange": "export type ImageClipDataRange = [[number, number], [number, number]]",
|
|
2184
|
+
"ImageElementClip": "export interface ImageElementClip { range: ImageClipDataRange; shape: string }",
|
|
2185
|
+
"ImageElementFilters": "export interface ImageElementFilters { 'blur'?: string; 'brightness'?: string; 'contrast'?: string; 'grayscale'?: string; 'saturate'?: string; 'hue-rotate'?: string; 'sepia'?: string; 'invert'?: string; 'opacity'?: string }",
|
|
2186
|
+
"ImageType": "export type ImageType = 'pageFigure' | 'itemFigure' | 'background'",
|
|
2187
|
+
"LinePoint": "export type LinePoint = '' | 'arrow' | 'dot'",
|
|
2188
|
+
"LineStyleType": "export type LineStyleType = 'solid' | 'dashed' | 'dotted'",
|
|
2189
|
+
"Note": "export interface Note { id: string; content: string; time: number; user: string; elId?: string; replies?: NoteReply[] }",
|
|
2190
|
+
"NoteReply": "export interface NoteReply { id: string; content: string; time: number; user: string }",
|
|
2191
|
+
"PPTAnimation": "export interface PPTAnimation { id: string; elId: string; effect: string; type: AnimationType; duration: number; trigger: AnimationTrigger }",
|
|
2192
|
+
"PPTAudioElement": "export interface PPTAudioElement extends PPTBaseElement { type: 'audio'; fixedRatio: boolean; color: string; loop: boolean; autoplay: boolean; src: string; poster?: string; ext?: string }",
|
|
2193
|
+
"PPTBaseElement": "interface PPTBaseElement { id: string; left: number; top: number; lock?: boolean; groupId?: string; width: number; height: number; rotate: number; link?: PPTElementLink; name?: string; source?: ElementSource; effects?: PPTElementEffects }",
|
|
2194
|
+
"PPTChartElement": "export interface PPTChartElement extends PPTBaseElement { type: 'chart'; fill?: string; chartType: ChartType; data: ChartData; options?: ChartOptions; outline?: PPTElementOutline; themeColors: string[]; textColor?: string; lineColor?: string }",
|
|
2195
|
+
"PPTCodeElement": "export interface PPTCodeElement extends PPTBaseElement { type: 'code'; code: string; language: string; theme: string; fontSize: number; showLineNumbers: boolean }",
|
|
2196
|
+
"PPTElement": "export type PPTElement = PPTTextElement | PPTImageElement | PPTShapeElement | PPTLineElement | PPTChartElement | PPTTableElement | PPTLatexElement | PPTMermaidElement | PPTCodeElement | PPTVideoElement | PPTAudioElement",
|
|
2197
|
+
"PPTElementEffects": "export interface PPTElementEffects { glow?: { color: string; opacity: number; radius: number }; innerShadow?: PPTElementShadow & { opacity?: number }; reflection?: { blur: number; direction: number; distance: number; opacity: number; scaleY: number }; softEdge?: { radius: number } }",
|
|
2198
|
+
"PPTElementLink": "export interface PPTElementLink { type: ElementLinkType; target: string }",
|
|
2199
|
+
"PPTElementOutline": "export interface PPTElementOutline { style?: LineStyleType; width?: number; color?: string; radius?: number }",
|
|
2200
|
+
"PPTElementShadow": "export interface PPTElementShadow { h: number; v: number; blur: number; color: string }",
|
|
2201
|
+
"PPTImageElement": "export interface PPTImageElement extends PPTBaseElement { type: 'image'; fixedRatio: boolean; src: string; outline?: PPTElementOutline; filters?: ImageElementFilters; clip?: ImageElementClip; flipH?: boolean; flipV?: boolean; shadow?: PPTElementShadow; radius?: number; colorMask?: string; imageType?: ImageType }",
|
|
2202
|
+
"PPTLatexElement": "export interface PPTLatexElement extends PPTBaseElement { type: 'latex'; latex: string; path: string; color: string; strokeWidth: number; viewBox: [number, number]; fixedRatio: boolean }",
|
|
2203
|
+
"PPTLineElement": "export interface PPTLineElement extends Omit<PPTBaseElement, 'height' | 'rotate'> { type: 'line'; start: [number, number]; end: [number, number]; style: LineStyleType; color: string; points: [LinePoint, LinePoint]; shadow?: PPTElementShadow; broken?: [number, number]; broken2?: [number, number]; broken2Direction?: Broken2LineDirection; curve?: [number, number]; cubic?: [[number, number], [number, number]] }",
|
|
2204
|
+
"PPTMermaidElement": "export interface PPTMermaidElement extends PPTBaseElement { type: 'mermaid'; code: string }",
|
|
2205
|
+
"PPTShapeElement": "export interface PPTShapeElement extends PPTBaseElement { type: 'shape'; viewBox: [number, number]; path: string; fixedRatio: boolean; fill: string; gradient?: Gradient; pattern?: string; outline?: PPTElementOutline; opacity?: number; flipH?: boolean; flipV?: boolean; shadow?: PPTElementShadow; special?: boolean; text?: ShapeText; pathFormula?: ShapePathFormulasKeys; keypoints?: number[] }",
|
|
2206
|
+
"PPTTableElement": "export interface PPTTableElement extends PPTBaseElement { type: 'table'; outline: PPTElementOutline; theme?: TableTheme; colWidths: number[]; cellMinHeight: number; data: TableCell[][] }",
|
|
2207
|
+
"PPTTextElement": "export interface PPTTextElement extends PPTBaseElement { type: 'text'; content: string; defaultFontName: string; defaultColor: string; placeholder?: string; placeholderFontSize?: number; placeholderColor?: string; placeholderAlign?: TextAlign; placeholderBold?: boolean; placeholderItalic?: boolean; placeholderLayoutHeight?: number; outline?: PPTElementOutline; fill?: string; lineHeight?: number; wordSpace?: number; opacity?: number; shadow?: PPTElementShadow; paragraphSpace?: number; vertical?: boolean; textType?: TextType; inset?: TextInset; fixedHeight?: boolean; vAlign?: TextAlignVertical; structuredText?: StructuredTextBody }",
|
|
2208
|
+
"PPTVideoElement": "export interface PPTVideoElement extends PPTBaseElement { type: 'video'; src: string; autoplay: boolean; poster?: string; ext?: string }",
|
|
2209
|
+
"SectionTag": "export interface SectionTag { id: string; title?: string }",
|
|
2210
|
+
"ShapePathFormulasKeys": "export declare const enum ShapePathFormulasKeys { ROUND_RECT = \"roundRect\", ROUND_RECT_DIAGONAL = \"roundRectDiagonal\", ROUND_RECT_SINGLE = \"roundRectSingle\", ROUND_RECT_SAMESIDE = \"roundRectSameSide\", CUT_RECT_DIAGONAL = \"cutRectDiagonal\", CUT_RECT_SINGLE = \"cutRectSingle\", CUT_RECT_SAMESIDE = \"cutRectSameSide\", CUT_ROUND_RECT = \"cutRoundRect\", MESSAGE = \"message\", ROUND_MESSAGE = \"roundMessage\", L = \"L\", RING_RECT = \"ringRect\", PLUS = \"plus\", TRIANGLE = \"triangle\", PARALLELOGRAM_LEFT = \"parallelogramLeft\", PARALLELOGRAM_RIGHT = \"parallelogramRight\", TRAPEZOID = \"trapezoid\", BULLET = \"bullet\", INDICATOR = \"indicator\", DONUT = \"donut\", DIAGSTRIPE = \"diagStripe\" }",
|
|
2211
|
+
"ShapeText": "export interface ShapeText { content: string; defaultFontName: string; defaultColor: string; align: TextAlignVertical; lineHeight?: number; wordSpace?: number; paragraphSpace?: number; inset?: TextInset; type?: TextType; fixedHeight?: boolean }",
|
|
2212
|
+
"Slide": "export interface Slide { id: string; elements: PPTElement[]; notes?: Note[]; remark?: string; background?: SlideBackground; animations?: PPTAnimation[]; turningMode?: TurningMode; sectionTag?: SectionTag; type?: SlideType; sourcePackageId?: string }",
|
|
2213
|
+
"SlideBackground": "export interface SlideBackground { type: SlideBackgroundType; color?: string; image?: SlideBackgroundImage; gradient?: Gradient }",
|
|
2214
|
+
"SlideBackgroundImage": "export interface SlideBackgroundImage { src: string; size: SlideBackgroundImageSize }",
|
|
2215
|
+
"SlideBackgroundImageSize": "export type SlideBackgroundImageSize = 'cover' | 'contain' | 'repeat'",
|
|
2216
|
+
"SlideBackgroundType": "export type SlideBackgroundType = 'solid' | 'image' | 'gradient'",
|
|
2217
|
+
"SlideTemplate": "export interface SlideTemplate { name: string; id: string; cover: string; origin?: string }",
|
|
2218
|
+
"SlideTheme": "export interface SlideTheme { backgroundColor: string; themeColors: string[]; fontColor: string; fontName: string; outline: PPTElementOutline; shadow: PPTElementShadow; styleId?: string }",
|
|
2219
|
+
"SlideType": "export type SlideType = 'cover' | 'contents' | 'transition' | 'content' | 'end'",
|
|
2220
|
+
"StructuredTextBody": "export interface StructuredTextBody { schemaVersion: 1; paragraphs: StructuredTextParagraph[] }",
|
|
2221
|
+
"StructuredTextParagraph": "export interface StructuredTextParagraph { align?: TextAlign; runs: StructuredTextRun[] }",
|
|
2222
|
+
"StructuredTextRun": "export interface StructuredTextRun { text: string; bold?: boolean; italic?: boolean; underline?: boolean; strikethrough?: boolean; fontSize?: number; fontColor?: string; fontName?: string }",
|
|
2223
|
+
"TableCell": "export interface TableCell { id: string; colspan: number; rowspan: number; text: string; style?: TableCellStyle }",
|
|
2224
|
+
"TableCellStyle": "export interface TableCellStyle { bold?: boolean; em?: boolean; underline?: boolean; strikethrough?: boolean; color?: string; backcolor?: string; fontsize?: string; fontname?: string; align?: TextAlign; vAlign?: TextAlignVertical }",
|
|
2225
|
+
"TableTheme": "export interface TableTheme { color: string; rowHeader: boolean; rowFooter: boolean; colHeader: boolean; colFooter: boolean }",
|
|
2226
|
+
"TextAlign": "export type TextAlign = 'left' | 'center' | 'right' | 'justify'",
|
|
2227
|
+
"TextAlignVertical": "export type TextAlignVertical = 'top' | 'middle' | 'bottom'",
|
|
2228
|
+
"TextInset": "export type TextInset = [number, number, number, number]",
|
|
2229
|
+
"TextType": "export type TextType = 'title' | 'subtitle' | 'content' | 'item' | 'itemTitle' | 'notes' | 'header' | 'footer' | 'partNumber' | 'itemNumber'",
|
|
2230
|
+
"TurningMode": "export type TurningMode = 'no' | 'fade' | 'slideX' | 'slideY' | 'random' | 'slideX3D' | 'slideY3D' | 'rotate' | 'scaleY' | 'scaleX' | 'scale' | 'scaleReverse'"
|
|
2231
|
+
}
|
|
2232
|
+
}
|