@snowcone-app/canvas 0.1.0
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.txt +70 -0
- package/README.md +357 -0
- package/dist/CanvasStateV1-D5GzvmnY.cjs +65 -0
- package/dist/CanvasStateV1-D5GzvmnY.cjs.map +1 -0
- package/dist/CanvasStateV1-ejb4d_LM.js +3692 -0
- package/dist/CanvasStateV1-ejb4d_LM.js.map +1 -0
- package/dist/ElementFactory-B7UOaJSD.cjs +23865 -0
- package/dist/ElementFactory-B7UOaJSD.cjs.map +1 -0
- package/dist/ElementFactory-uJTXU-nP.js +29615 -0
- package/dist/ElementFactory-uJTXU-nP.js.map +1 -0
- package/dist/HybridHistoryManager-BV6XV0nD.js +8048 -0
- package/dist/HybridHistoryManager-BV6XV0nD.js.map +1 -0
- package/dist/HybridHistoryManager-BXD93pp8.cjs +8 -0
- package/dist/HybridHistoryManager-BXD93pp8.cjs.map +1 -0
- package/dist/ImportManager-BYwuK6n4.cjs +2 -0
- package/dist/ImportManager-BYwuK6n4.cjs.map +1 -0
- package/dist/ImportManager-CxiaRg1N.js +222 -0
- package/dist/ImportManager-CxiaRg1N.js.map +1 -0
- package/dist/ThemeContext-4mJ_y0Me.cjs +2 -0
- package/dist/ThemeContext-4mJ_y0Me.cjs.map +1 -0
- package/dist/ThemeContext-H0Z-MqqR.js +1077 -0
- package/dist/ThemeContext-H0Z-MqqR.js.map +1 -0
- package/dist/advanced.d.ts +2 -0
- package/dist/advanced.js +48 -0
- package/dist/advanced.js.map +1 -0
- package/dist/advanced.mjs +15679 -0
- package/dist/advanced.mjs.map +1 -0
- package/dist/api/advanced.d.ts +110 -0
- package/dist/api/internals.d.ts +39 -0
- package/dist/api/stable.d.ts +44 -0
- package/dist/api/testing.d.ts +25 -0
- package/dist/browser-module-D0gHY9rY.cjs +9 -0
- package/dist/browser-module-D0gHY9rY.cjs.map +1 -0
- package/dist/browser-module-DFvKXBUE.js +15474 -0
- package/dist/browser-module-DFvKXBUE.js.map +1 -0
- package/dist/components/ArtboardDistressPanel.d.ts +7 -0
- package/dist/components/ArtboardImageMaskPanel.d.ts +7 -0
- package/dist/components/ArtboardPropertiesToolbar.d.ts +19 -0
- package/dist/components/ArtboardToolbar.d.ts +10 -0
- package/dist/components/BackButton.d.ts +7 -0
- package/dist/components/BackgroundPickerDropdown.d.ts +11 -0
- package/dist/components/BackgroundSwitcher.d.ts +7 -0
- package/dist/components/CanvasA11yFallback.d.ts +62 -0
- package/dist/components/CanvasEditor/CanvasRendererComponent.d.ts +51 -0
- package/dist/components/CanvasEditor/handlers/cropModeHandlers.d.ts +114 -0
- package/dist/components/CanvasEditor/handlers/groupChildHandlers.d.ts +65 -0
- package/dist/components/CanvasEditor/handlers/index.d.ts +10 -0
- package/dist/components/CanvasEditor/handlers/multiSelectionHandlers.d.ts +86 -0
- package/dist/components/CanvasEditor/hooks/buildSpreadClipShape.d.ts +20 -0
- package/dist/components/CanvasEditor/hooks/index.d.ts +24 -0
- package/dist/components/CanvasEditor/hooks/useActiveChild.d.ts +23 -0
- package/dist/components/CanvasEditor/hooks/useAnimatedFocusRect.d.ts +17 -0
- package/dist/components/CanvasEditor/hooks/useCanvasInteraction.d.ts +284 -0
- package/dist/components/CanvasEditor/hooks/useCanvasLayout.d.ts +50 -0
- package/dist/components/CanvasEditor/hooks/useCanvasRenderLoop.d.ts +140 -0
- package/dist/components/CanvasEditor/hooks/useCropMode.d.ts +4 -0
- package/dist/components/CanvasEditor/hooks/useHoverState.d.ts +9 -0
- package/dist/components/CanvasEditor/hooks/useInteractionState.d.ts +23 -0
- package/dist/components/CanvasEditor/hooks/useKeyboardHandlers.d.ts +16 -0
- package/dist/components/CanvasEditor/hooks/useMarqueeSelection.d.ts +22 -0
- package/dist/components/CanvasEditor/hooks/useMultiSelection.d.ts +5 -0
- package/dist/components/CanvasEditor/hooks/usePenTool.d.ts +10 -0
- package/dist/components/CanvasEditor/hooks/useRenderState.d.ts +31 -0
- package/dist/components/CanvasEditor/hooks/useSnapAndSpacing.d.ts +42 -0
- package/dist/components/CanvasEditor/hooks/useTextEditing.d.ts +56 -0
- package/dist/components/CanvasEditor/hooks/useTextEditingHandlers.d.ts +75 -0
- package/dist/components/CanvasEditor/renderers/hoverRenderer.d.ts +12 -0
- package/dist/components/CanvasEditor/renderers/index.d.ts +10 -0
- package/dist/components/CanvasEditor/renderers/marqueeRenderer.d.ts +21 -0
- package/dist/components/CanvasEditor/renderers/multiSelectionRenderer.d.ts +52 -0
- package/dist/components/CanvasEditor/renderers/renderingConstants.d.ts +59 -0
- package/dist/components/CanvasEditor/types/index.d.ts +11 -0
- package/dist/components/CanvasEditor.d.ts +102 -0
- package/dist/components/ColorPickerDropdown.d.ts +29 -0
- package/dist/components/CompositingPanel.d.ts +8 -0
- package/dist/components/ContextualToolbars.d.ts +150 -0
- package/dist/components/CropPanel.d.ts +20 -0
- package/dist/components/DistressPanel.d.ts +7 -0
- package/dist/components/DocsPage.d.ts +6 -0
- package/dist/components/Drawer.d.ts +39 -0
- package/dist/components/EffectsPanel.d.ts +14 -0
- package/dist/components/ExportTestPanel.d.ts +16 -0
- package/dist/components/FontBrowserDrawer.d.ts +20 -0
- package/dist/components/FontSizeDropdown.d.ts +12 -0
- package/dist/components/GlyphBrowserDrawer.d.ts +13 -0
- package/dist/components/GlyphPicker.d.ts +14 -0
- package/dist/components/IconMatchTest.d.ts +3 -0
- package/dist/components/IconSizeTest.d.ts +3 -0
- package/dist/components/ImageBrowserDrawer.d.ts +27 -0
- package/dist/components/ImageToolbar.d.ts +47 -0
- package/dist/components/LayerEffects.d.ts +11 -0
- package/dist/components/LayerLeadingChip.d.ts +9 -0
- package/dist/components/LayersPanel.d.ts +30 -0
- package/dist/components/MaskItem.d.ts +12 -0
- package/dist/components/MasksPanel.d.ts +7 -0
- package/dist/components/MonotypeDemoPage.d.ts +2 -0
- package/dist/components/MoreMenu.d.ts +15 -0
- package/dist/components/OpenTypeFeaturesPanel.d.ts +12 -0
- package/dist/components/PathToolbar.d.ts +10 -0
- package/dist/components/PenToolDemo.d.ts +3 -0
- package/dist/components/ProgressiveBlur.d.ts +25 -0
- package/dist/components/RotationHandle.d.ts +47 -0
- package/dist/components/SaveLoadMenu.d.ts +15 -0
- package/dist/components/ShapeToolbar.d.ts +71 -0
- package/dist/components/ShapeTypeDrawer.d.ts +10 -0
- package/dist/components/StrokePanel.d.ts +7 -0
- package/dist/components/TailwindDemo.d.ts +3 -0
- package/dist/components/TextEffectsDropdown.d.ts +14 -0
- package/dist/components/TextToolbar.d.ts +47 -0
- package/dist/components/TextTypeDrawer.d.ts +8 -0
- package/dist/components/ThemeToggle.d.ts +2 -0
- package/dist/components/TransformControlPanel.d.ts +12 -0
- package/dist/components/VisualGuideOverlay.d.ts +156 -0
- package/dist/components/embed/ArtboardTabs.d.ts +74 -0
- package/dist/components/embed/Canvas.d.ts +72 -0
- package/dist/components/embed/EffectsPanel.d.ts +76 -0
- package/dist/components/embed/ErrorBoundary.d.ts +34 -0
- package/dist/components/embed/ExportPanel.d.ts +51 -0
- package/dist/components/embed/GlyphPanel.d.ts +70 -0
- package/dist/components/embed/ImagePanel.d.ts +58 -0
- package/dist/components/embed/LayersPanel.d.ts +13 -0
- package/dist/components/embed/LoadingStates.d.ts +32 -0
- package/dist/components/embed/MenuButton.d.ts +47 -0
- package/dist/components/embed/SnowconeCanvas.d.ts +844 -0
- package/dist/components/embed/ZoomControls.d.ts +16 -0
- package/dist/components/embed/index.d.ts +129 -0
- package/dist/components/embed/primitives/index.d.ts +42 -0
- package/dist/components/embed/ui/index.d.ts +52 -0
- package/dist/components/embed/utils/index.d.ts +31 -0
- package/dist/components/embedded/ArtboardEmbed.d.ts +70 -0
- package/dist/components/embedded/MerchifyThemeWrapper.d.ts +30 -0
- package/dist/components/embedded/ProductPreviewCard.d.ts +8 -0
- package/dist/components/embedded/index.d.ts +7 -0
- package/dist/components/primitives/ButtonGroup.d.ts +27 -0
- package/dist/components/primitives/ControlGroup.d.ts +15 -0
- package/dist/components/primitives/Dropdown.d.ts +27 -0
- package/dist/components/primitives/DropdownMenu.d.ts +9 -0
- package/dist/components/primitives/MenuItem.d.ts +13 -0
- package/dist/components/primitives/Panel.d.ts +25 -0
- package/dist/components/primitives/SecondaryToolbar.d.ts +9 -0
- package/dist/components/primitives/Switch.d.ts +10 -0
- package/dist/components/primitives/Toggle.d.ts +17 -0
- package/dist/components/primitives/index.d.ts +22 -0
- package/dist/components/stories/utils/MockEditorProvider.d.ts +32 -0
- package/dist/components/stories/utils/QACanvasCard.d.ts +41 -0
- package/dist/components/stories/utils/VisualQACard.d.ts +24 -0
- package/dist/components/stories/utils/element-factories.d.ts +188 -0
- package/dist/components/stories/utils/spec-to-elements.d.ts +74 -0
- package/dist/components/stories/utils/themeDecorator.d.ts +45 -0
- package/dist/components/stories/utils/unified-test-cases.d.ts +27 -0
- package/dist/components/text-toolbar/BoldButton.d.ts +5 -0
- package/dist/components/text-toolbar/FontColorButton.d.ts +6 -0
- package/dist/components/text-toolbar/FontSizeGroup.d.ts +5 -0
- package/dist/components/text-toolbar/ItalicButton.d.ts +5 -0
- package/dist/components/text-toolbar/TextAlignButton.d.ts +5 -0
- package/dist/components/text-toolbar/TextMoreMenu.d.ts +7 -0
- package/dist/components/text-toolbar/UnderlineButton.d.ts +5 -0
- package/dist/components/text-toolbar/UppercaseButton.d.ts +5 -0
- package/dist/components/text-toolbar/index.d.ts +25 -0
- package/dist/components/toolbars/EmbeddedToolbarLayout.d.ts +49 -0
- package/dist/components/toolbars/ExpandedPanelIcon.d.ts +13 -0
- package/dist/components/toolbars/FloatingPanels.d.ts +23 -0
- package/dist/components/toolbars/GroupElementToolbar.d.ts +35 -0
- package/dist/components/toolbars/SecondaryPanels.d.ts +125 -0
- package/dist/components/toolbars/index.d.ts +18 -0
- package/dist/components/toolbars/shared/ColorPanelWrapper.d.ts +9 -0
- package/dist/components/toolbars/shared/SecondaryPanelWrapper.d.ts +9 -0
- package/dist/components/ui/PresetCarousel.d.ts +21 -0
- package/dist/components/ui/SecondaryPanel.d.ts +28 -0
- package/dist/components/ui/SliderRow.d.ts +30 -0
- package/dist/components/ui/collapsed-toolbar-header.d.ts +14 -0
- package/dist/components/ui/custom-icons.d.ts +25 -0
- package/dist/components/ui/icons.d.ts +100 -0
- package/dist/components/ui/index.d.ts +48 -0
- package/dist/components/ui/normalized-icon.d.ts +63 -0
- package/dist/components/ui/toolbar-button.d.ts +24 -0
- package/dist/compose-Bo108juW.cjs +33 -0
- package/dist/compose-Bo108juW.cjs.map +1 -0
- package/dist/compose-DQ1FZS3O.js +7690 -0
- package/dist/compose-DQ1FZS3O.js.map +1 -0
- package/dist/constants.d.ts +121 -0
- package/dist/contexts/CommandContext.d.ts +87 -0
- package/dist/contexts/EditorContext.d.ts +190 -0
- package/dist/contexts/ElementsContext.d.ts +104 -0
- package/dist/contexts/HistoryContext.d.ts +60 -0
- package/dist/contexts/KitContext.d.ts +50 -0
- package/dist/contexts/SelectionContext.d.ts +51 -0
- package/dist/contexts/ThemeContext.d.ts +55 -0
- package/dist/contexts/ToolStateContext.d.ts +60 -0
- package/dist/contexts/ViewportContext.d.ts +87 -0
- package/dist/core/AlignmentSnapSystem.d.ts +270 -0
- package/dist/core/ArtboardElement.d.ts +106 -0
- package/dist/core/ArtboardManager.d.ts +130 -0
- package/dist/core/ArtboardRenderer.d.ts +97 -0
- package/dist/core/BaseElement.d.ts +94 -0
- package/dist/core/CanvasRenderer.d.ts +237 -0
- package/dist/core/CommandHistory.d.ts +173 -0
- package/dist/core/CoordinateTransform.d.ts +69 -0
- package/dist/core/CropModeController.d.ts +90 -0
- package/dist/core/EditModeRenderer.d.ts +51 -0
- package/dist/core/ElementFactory.d.ts +73 -0
- package/dist/core/ElementStore.d.ts +69 -0
- package/dist/core/EventBus.d.ts +163 -0
- package/dist/core/GeometryUtils.d.ts +247 -0
- package/dist/core/GroupElement.d.ts +134 -0
- package/dist/core/HoverRenderer.d.ts +103 -0
- package/dist/core/HybridHistoryManager.d.ts +137 -0
- package/dist/core/ImageCache.d.ts +63 -0
- package/dist/core/ImageElement.d.ts +226 -0
- package/dist/core/ImageLoadEvents.d.ts +23 -0
- package/dist/core/InteractionFeedbackRenderer.d.ts +15 -0
- package/dist/core/InteractionStateMachine.d.ts +199 -0
- package/dist/core/PathElement.d.ts +84 -0
- package/dist/core/PenToolManager.d.ts +112 -0
- package/dist/core/PinchHandler.d.ts +32 -0
- package/dist/core/ResizeHandler.d.ts +51 -0
- package/dist/core/ResizePipeline.d.ts +83 -0
- package/dist/core/ResizeUtils.d.ts +17 -0
- package/dist/core/RotationAnchorResolver.d.ts +60 -0
- package/dist/core/RotationUtils.d.ts +28 -0
- package/dist/core/SelectionRenderer.d.ts +24 -0
- package/dist/core/ShapeElement.d.ts +121 -0
- package/dist/core/SpacingSystem.d.ts +73 -0
- package/dist/core/SpatialGrid.d.ts +53 -0
- package/dist/core/TextElement.d.ts +80 -0
- package/dist/core/TextMetrics.d.ts +117 -0
- package/dist/core/Transform.d.ts +158 -0
- package/dist/core/TransformConverter.d.ts +16 -0
- package/dist/core/TransformHandles.d.ts +55 -0
- package/dist/core/artboardReducer.d.ts +46 -0
- package/dist/effects/DistressGenerator.d.ts +26 -0
- package/dist/effects/DistressTextureCache.d.ts +49 -0
- package/dist/effects/distress-presets.d.ts +86 -0
- package/dist/effects/distress-textures.d.ts +34 -0
- package/dist/effects/distress-utils.d.ts +39 -0
- package/dist/effects/mask-presets.d.ts +36 -0
- package/dist/fonts/google-fonts.d.ts +48 -0
- package/dist/google-fonts.json +1 -0
- package/dist/hooks/index.d.ts +42 -0
- package/dist/hooks/useArtboards.d.ts +71 -0
- package/dist/hooks/useAutoExport.d.ts +66 -0
- package/dist/hooks/useBreakpoint.d.ts +53 -0
- package/dist/hooks/useCanvasEvents.d.ts +8 -0
- package/dist/hooks/useCanvasReady.d.ts +22 -0
- package/dist/hooks/useClickOutside.d.ts +3 -0
- package/dist/hooks/useCommandHistory.d.ts +39 -0
- package/dist/hooks/useCommands.d.ts +47 -0
- package/dist/hooks/useContentReady.d.ts +18 -0
- package/dist/hooks/useElementById.d.ts +20 -0
- package/dist/hooks/useElementByName.d.ts +10 -0
- package/dist/hooks/useElementProperties.d.ts +29 -0
- package/dist/hooks/useExport.d.ts +89 -0
- package/dist/hooks/useImageBinding.d.ts +34 -0
- package/dist/hooks/useKeyboardShortcuts.d.ts +13 -0
- package/dist/hooks/useLayerDndKit.d.ts +24 -0
- package/dist/hooks/useLayerDragDrop.d.ts +58 -0
- package/dist/hooks/useLayerPreview.d.ts +31 -0
- package/dist/hooks/useLayerSelection.d.ts +76 -0
- package/dist/hooks/useLayers.d.ts +91 -0
- package/dist/hooks/usePerformance.d.ts +48 -0
- package/dist/hooks/useProjectLoader.d.ts +64 -0
- package/dist/hooks/useSelectedElement.d.ts +17 -0
- package/dist/hooks/useTextBinding.d.ts +26 -0
- package/dist/hooks/useTextToolbar.d.ts +61 -0
- package/dist/hooks/useViewport.d.ts +46 -0
- package/dist/icons/icon-data.d.ts +2 -0
- package/dist/icons/registry.d.ts +28 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1138 -0
- package/dist/index.mjs.map +1 -0
- package/dist/internals.d.ts +2 -0
- package/dist/internals.js +2 -0
- package/dist/internals.js.map +1 -0
- package/dist/internals.mjs +219 -0
- package/dist/internals.mjs.map +1 -0
- package/dist/kits/compose.d.ts +69 -0
- package/dist/kits/index.d.ts +21 -0
- package/dist/kits/presets.d.ts +40 -0
- package/dist/kits/registry.d.ts +33 -0
- package/dist/kits/sections.d.ts +119 -0
- package/dist/kits/serialization.d.ts +78 -0
- package/dist/kits/types.d.ts +129 -0
- package/dist/kits/validation.d.ts +36 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/plugins/ElementTypePlugin.d.ts +90 -0
- package/dist/presets/artboard-color-presets.d.ts +22 -0
- package/dist/presets/tshirt-presets.d.ts +60 -0
- package/dist/rendering/CompositingRenderer.d.ts +33 -0
- package/dist/rendering/DistressTextureRenderer.d.ts +39 -0
- package/dist/rendering/ElementRenderUtils.d.ts +17 -0
- package/dist/rendering/MaskRenderer.d.ts +41 -0
- package/dist/rendering/PieceGuideRenderer.d.ts +177 -0
- package/dist/rendering/StrokeRenderer.d.ts +24 -0
- package/dist/rendering/canvas-renderer.d.ts +18 -0
- package/dist/rendering/element-serializer.d.ts +143 -0
- package/dist/rendering/image-renderer.d.ts +6 -0
- package/dist/rendering/knockout-utils.d.ts +48 -0
- package/dist/rendering/mask-utils.d.ts +65 -0
- package/dist/rendering/renderer-types.d.ts +79 -0
- package/dist/rendering/rich-text-renderer.d.ts +43 -0
- package/dist/rendering/serialize-for-server.d.ts +45 -0
- package/dist/rendering/shape-renderer.d.ts +6 -0
- package/dist/rendering/stroke-utils.d.ts +18 -0
- package/dist/rendering/text-renderer.d.ts +71 -0
- package/dist/rendering/transform-renderer.d.ts +33 -0
- package/dist/services/AutoExportManager.d.ts +107 -0
- package/dist/services/falApi.d.ts +63 -0
- package/dist/services/nounProjectApi.d.ts +90 -0
- package/dist/services/recraftApi.d.ts +65 -0
- package/dist/services/runwareApi.d.ts +69 -0
- package/dist/state/CanvasStateV1.d.ts +373 -0
- package/dist/state/index.d.ts +10 -0
- package/dist/style.css +1 -0
- package/dist/taco-reference-cropped.jpg +0 -0
- package/dist/testing/MockEditorProvider.d.ts +49 -0
- package/dist/testing/index.d.ts +25 -0
- package/dist/testing/utils.d.ts +128 -0
- package/dist/testing.d.ts +2 -0
- package/dist/testing.js +2 -0
- package/dist/testing.js.map +1 -0
- package/dist/testing.mjs +140 -0
- package/dist/testing.mjs.map +1 -0
- package/dist/textures/glass-frame.svg +32 -0
- package/dist/theme.d.ts +99 -0
- package/dist/themes/index.d.ts +23 -0
- package/dist/transforms/ArchTransform.d.ts +14 -0
- package/dist/transforms/AscendTransform.d.ts +14 -0
- package/dist/transforms/CircleTransform.d.ts +51 -0
- package/dist/transforms/CustomTransform.d.ts +81 -0
- package/dist/transforms/FlagTransform.d.ts +14 -0
- package/dist/transforms/LeanTransform.d.ts +14 -0
- package/dist/transforms/WaveTransform.d.ts +16 -0
- package/dist/transforms/defaults.d.ts +33 -0
- package/dist/transforms/index.d.ts +10 -0
- package/dist/transforms/registry.d.ts +51 -0
- package/dist/types/capabilities.d.ts +50 -0
- package/dist/types/guards.d.ts +31 -0
- package/dist/types/index.d.ts +765 -0
- package/dist/types/public.d.ts +31 -0
- package/dist/types/react.d.ts +132 -0
- package/dist/utils/ArtworkPlacement.d.ts +97 -0
- package/dist/utils/ElementPreviewRenderer.d.ts +19 -0
- package/dist/utils/ExportManager.d.ts +208 -0
- package/dist/utils/FontAnalyzer.d.ts +137 -0
- package/dist/utils/GlyphRenderer.d.ts +55 -0
- package/dist/utils/GoogleFontsService.d.ts +37 -0
- package/dist/utils/ImageLoader.d.ts +124 -0
- package/dist/utils/ImportManager.d.ts +72 -0
- package/dist/utils/MonotypeCategoryMapping.d.ts +36 -0
- package/dist/utils/MonotypeService.d.ts +148 -0
- package/dist/utils/PerformanceMonitor.d.ts +54 -0
- package/dist/utils/TextureManager.d.ts +60 -0
- package/dist/utils/UnifiedFontService.d.ts +117 -0
- package/dist/utils/WorkerExportManager.d.ts +185 -0
- package/dist/utils/clickProtection.d.ts +39 -0
- package/dist/utils/cn.d.ts +4 -0
- package/dist/utils/colorConversion.d.ts +101 -0
- package/dist/utils/documentColors.d.ts +108 -0
- package/dist/utils/featureApplied.d.ts +14 -0
- package/dist/utils/google-fonts-loader.d.ts +67 -0
- package/dist/utils/logger.d.ts +66 -0
- package/dist/utils/selectionPreservation.d.ts +42 -0
- package/dist/utils/textCursorUtils.d.ts +39 -0
- package/dist/utils/textUtils.d.ts +11 -0
- package/dist/workers/export-protocol.d.ts +119 -0
- package/dist/workers/export-worker.bundle.string.d.ts +2 -0
- package/dist/workers/export-worker.d.ts +5 -0
- package/package.json +201 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface DrawerProps {
|
|
3
|
+
/** Whether the drawer is open */
|
|
4
|
+
isOpen: boolean;
|
|
5
|
+
/** Callback when drawer should close */
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
/** Drawer title (for accessibility and header) */
|
|
8
|
+
title: string;
|
|
9
|
+
/** Optional description (for accessibility) */
|
|
10
|
+
description?: string;
|
|
11
|
+
/** Drawer content */
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
/** Placement of drawer */
|
|
14
|
+
placement?: 'bottom' | 'right' | 'left';
|
|
15
|
+
/** Fixed height (for bottom drawer) */
|
|
16
|
+
height?: string;
|
|
17
|
+
/** Maximum height (for bottom drawer) */
|
|
18
|
+
maxHeight?: string;
|
|
19
|
+
/** Fixed width (for side drawers) */
|
|
20
|
+
width?: string;
|
|
21
|
+
/** Maximum width (for side drawers) */
|
|
22
|
+
maxWidth?: string;
|
|
23
|
+
/** Show close button in header */
|
|
24
|
+
showCloseButton?: boolean;
|
|
25
|
+
/** Additional header content (placed next to title) */
|
|
26
|
+
headerActions?: React.ReactNode;
|
|
27
|
+
/** Hide the visible title (keeps sr-only title for accessibility) */
|
|
28
|
+
hideVisibleTitle?: boolean;
|
|
29
|
+
/** Hide the drag handle (bottom drawer only) */
|
|
30
|
+
hideHandle?: boolean;
|
|
31
|
+
/** Disable built-in overflow-y-auto wrapper (for custom scroll containers) */
|
|
32
|
+
disableScrollWrapper?: boolean;
|
|
33
|
+
/** Disable overflow-hidden on drawer content (needed for backdrop-filter to work properly) */
|
|
34
|
+
disableOverflowHidden?: boolean;
|
|
35
|
+
/** Test ID for the drawer content element */
|
|
36
|
+
'data-testid'?: string;
|
|
37
|
+
}
|
|
38
|
+
export declare const Drawer: React.FC<DrawerProps>;
|
|
39
|
+
export default Drawer;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TextElement } from '../core/TextElement.js';
|
|
2
|
+
import { ImageElement } from '../core/ImageElement.js';
|
|
3
|
+
import { GroupElement } from '../core/GroupElement.js';
|
|
4
|
+
import { ShapeElement } from '../core/ShapeElement.js';
|
|
5
|
+
import { PathElement } from '../core/PathElement.js';
|
|
6
|
+
type EditorElement = TextElement | ImageElement | GroupElement | ShapeElement | PathElement;
|
|
7
|
+
interface EffectsPanelProps {
|
|
8
|
+
element: EditorElement | null;
|
|
9
|
+
onElementUpdate: (element: EditorElement) => void;
|
|
10
|
+
isOpen: boolean;
|
|
11
|
+
onClose: () => void;
|
|
12
|
+
}
|
|
13
|
+
declare const EffectsPanel: ({ element, onElementUpdate, isOpen, onClose }: EffectsPanelProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
14
|
+
export default EffectsPanel;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ArtboardElement } from '../core/ArtboardElement';
|
|
3
|
+
import { TextElement } from '../core/TextElement';
|
|
4
|
+
import { ImageElement } from '../core/ImageElement';
|
|
5
|
+
import { GroupElement } from '../core/GroupElement';
|
|
6
|
+
import { ShapeElement } from '../core/ShapeElement';
|
|
7
|
+
import { PathElement } from '../core/PathElement';
|
|
8
|
+
interface ExportTestPanelProps {
|
|
9
|
+
artboards: ArtboardElement[];
|
|
10
|
+
elements: (TextElement | ImageElement | GroupElement | ShapeElement | PathElement)[];
|
|
11
|
+
isInteracting?: boolean;
|
|
12
|
+
isOpen: boolean;
|
|
13
|
+
onClose: () => void;
|
|
14
|
+
}
|
|
15
|
+
declare const ExportTestPanel: React.FC<ExportTestPanelProps>;
|
|
16
|
+
export default ExportTestPanel;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FontBrowserDrawer - Drawer for selecting font family with search and category filters
|
|
3
|
+
* Refactored to use HeroUI design system
|
|
4
|
+
*/
|
|
5
|
+
export interface FontBrowserDrawerProps {
|
|
6
|
+
value: string;
|
|
7
|
+
onChange: (event: {
|
|
8
|
+
target: {
|
|
9
|
+
value: string;
|
|
10
|
+
};
|
|
11
|
+
}) => void;
|
|
12
|
+
fontFamilies?: string[];
|
|
13
|
+
isOpen: boolean;
|
|
14
|
+
onToggle: (open: boolean) => void;
|
|
15
|
+
showLabel?: boolean;
|
|
16
|
+
previewText?: string;
|
|
17
|
+
elements?: Array<Record<string, unknown>>;
|
|
18
|
+
}
|
|
19
|
+
declare const FontBrowserDrawer: ({ value, onChange, fontFamilies: _fontFamilies, isOpen, onToggle, showLabel: _, previewText, elements, }: FontBrowserDrawerProps) => import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export default FontBrowserDrawer;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FontSizeDropdown - Dropdown for selecting font size
|
|
3
|
+
*/
|
|
4
|
+
export interface FontSizeDropdownProps {
|
|
5
|
+
value: number;
|
|
6
|
+
onChange: (size: number) => void;
|
|
7
|
+
fontSizes: number[];
|
|
8
|
+
isOpen: boolean;
|
|
9
|
+
onToggle: (open: boolean) => void;
|
|
10
|
+
}
|
|
11
|
+
declare const FontSizeDropdown: import('react').MemoExoticComponent<({ value, onChange, fontSizes, isOpen, onToggle }: FontSizeDropdownProps) => import("react/jsx-runtime").JSX.Element>;
|
|
12
|
+
export default FontSizeDropdown;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GlyphBrowserDrawer - Browse and insert all glyphs from the current font
|
|
3
|
+
* Opens as a bottom drawer and inserts glyphs at cursor position or appends to text
|
|
4
|
+
*/
|
|
5
|
+
interface GlyphBrowserDrawerProps {
|
|
6
|
+
isOpen: boolean;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
fontFamily: string;
|
|
9
|
+
fontWeight?: number;
|
|
10
|
+
onInsertGlyph: (unicode: string) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const GlyphBrowserDrawer: ({ isOpen, onClose, fontFamily, fontWeight, onInsertGlyph, }: GlyphBrowserDrawerProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { GlyphOverride } from '../types';
|
|
2
|
+
interface GlyphPickerProps {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
character: string;
|
|
6
|
+
charIndex: number;
|
|
7
|
+
fontFamily: string;
|
|
8
|
+
fontWeight?: number;
|
|
9
|
+
currentGlyphOverride?: GlyphOverride;
|
|
10
|
+
onSelectGlyph: (override: GlyphOverride | null) => void;
|
|
11
|
+
browseAll?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare const GlyphPicker: ({ isOpen, onClose, character, charIndex, fontFamily, fontWeight, currentGlyphOverride, onSelectGlyph, browseAll, }: GlyphPickerProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ImageBrowserDrawer - Drawer for browsing and selecting images
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Dual-source image search: Fetches from both Unsplash and Pixabay APIs in parallel
|
|
6
|
+
* - Seamless integration: Results are interleaved so users don't realize we're using multiple sources
|
|
7
|
+
* - Graceful fallback: Works with 0, 1, or 2 API keys configured
|
|
8
|
+
* - Custom URL/upload: Supports uploading images from computer or pasting URLs
|
|
9
|
+
*
|
|
10
|
+
* API Keys (optional, set via environment variables):
|
|
11
|
+
* - VITE_UNSPLASH_ACCESS_KEY - Get from https://unsplash.com/developers
|
|
12
|
+
* - VITE_PIXABAY_API_KEY - Get from https://pixabay.com/api/docs/
|
|
13
|
+
*
|
|
14
|
+
* Image Quality:
|
|
15
|
+
* - Unsplash: 'regular' size (~1080px width)
|
|
16
|
+
* - Pixabay: 'largeImageURL' size (~1280px width)
|
|
17
|
+
*/
|
|
18
|
+
interface ImageBrowserPanelProps {
|
|
19
|
+
isOpen: boolean;
|
|
20
|
+
onToggle: (open: boolean) => void;
|
|
21
|
+
onImageSelect: (imageUrl: string) => void;
|
|
22
|
+
currentImageUrl?: string;
|
|
23
|
+
/** Placement of drawer - defaults to 'bottom' */
|
|
24
|
+
placement?: 'bottom' | 'left' | 'right';
|
|
25
|
+
}
|
|
26
|
+
declare const ImageBrowserPanel: ({ isOpen, onToggle, onImageSelect, currentImageUrl, placement, }: ImageBrowserPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export default ImageBrowserPanel;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ImageElement } from '../core/ImageElement';
|
|
3
|
+
interface ImageToolbarProps {
|
|
4
|
+
element: ImageElement;
|
|
5
|
+
onElementUpdate: (element: ImageElement) => void;
|
|
6
|
+
showUngroupButton?: boolean;
|
|
7
|
+
onUngroup?: () => void;
|
|
8
|
+
onMoveForward?: () => void;
|
|
9
|
+
onMoveBackward?: () => void;
|
|
10
|
+
onChangeImage?: () => void;
|
|
11
|
+
/** Callback when element should be deleted */
|
|
12
|
+
onDelete?: () => void;
|
|
13
|
+
/** Whether the corner radius panel is expanded */
|
|
14
|
+
cornerRadiusExpanded?: boolean;
|
|
15
|
+
/** Callback when corner radius panel should be toggled */
|
|
16
|
+
onCornerRadiusToggle?: () => void;
|
|
17
|
+
/** Whether the crop panel is expanded */
|
|
18
|
+
cropExpanded?: boolean;
|
|
19
|
+
/** Callback when crop panel should be toggled */
|
|
20
|
+
onCropToggle?: () => void;
|
|
21
|
+
/** Whether the rotation panel is expanded */
|
|
22
|
+
rotationExpanded?: boolean;
|
|
23
|
+
/** Callback when rotation panel should be toggled */
|
|
24
|
+
onRotationToggle?: () => void;
|
|
25
|
+
/** Whether the opacity panel is expanded */
|
|
26
|
+
opacityExpanded?: boolean;
|
|
27
|
+
/** Callback when opacity panel should be toggled */
|
|
28
|
+
onOpacityToggle?: () => void;
|
|
29
|
+
/** Whether the stroke panel is expanded */
|
|
30
|
+
strokeExpanded?: boolean;
|
|
31
|
+
/** Callback when stroke panel should be toggled */
|
|
32
|
+
onStrokeToggle?: () => void;
|
|
33
|
+
/** Whether the knockout panel is expanded */
|
|
34
|
+
knockoutExpanded?: boolean;
|
|
35
|
+
/** Callback when knockout panel should be toggled */
|
|
36
|
+
onKnockoutToggle?: () => void;
|
|
37
|
+
/** Whether the distress texture panel is expanded */
|
|
38
|
+
distressTextureExpanded?: boolean;
|
|
39
|
+
/** Callback when distress texture panel should be toggled */
|
|
40
|
+
onDistressTextureToggle?: () => void;
|
|
41
|
+
/** Whether the image mask panel is expanded */
|
|
42
|
+
imageMaskExpanded?: boolean;
|
|
43
|
+
/** Callback when image mask panel should be toggled */
|
|
44
|
+
onImageMaskToggle?: () => void;
|
|
45
|
+
}
|
|
46
|
+
declare const ImageToolbar: React.FC<ImageToolbarProps>;
|
|
47
|
+
export default ImageToolbar;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TextElement } from '../core/TextElement.js';
|
|
2
|
+
import { ImageElement } from '../core/ImageElement.js';
|
|
3
|
+
import { GroupElement } from '../core/GroupElement.js';
|
|
4
|
+
import { ShapeElement } from '../core/ShapeElement.js';
|
|
5
|
+
interface LayerEffectsProps {
|
|
6
|
+
element: TextElement | ImageElement | GroupElement | ShapeElement;
|
|
7
|
+
onToggleExpand?: () => void;
|
|
8
|
+
isExpanded?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare const LayerEffects: ({ element, onToggleExpand, isExpanded }: LayerEffectsProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
export default LayerEffects;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseElement } from '../core/BaseElement.js';
|
|
2
|
+
export declare function LayerLeadingChip({ element, onToggleLock, onThumbnailClick, }: {
|
|
3
|
+
element: BaseElement | null;
|
|
4
|
+
onToggleLock: () => void;
|
|
5
|
+
/** Optional click handler for the thumbnail. When provided, the
|
|
6
|
+
* thumbnail becomes a button — typical use is to open the
|
|
7
|
+
* "Manage Layers" drawer with the current layer focused. */
|
|
8
|
+
onThumbnailClick?: () => void;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { TextElement } from '../core/TextElement.js';
|
|
2
|
+
import { ImageElement } from '../core/ImageElement.js';
|
|
3
|
+
import { GroupElement } from '../core/GroupElement.js';
|
|
4
|
+
import { ShapeElement } from '../core/ShapeElement.js';
|
|
5
|
+
import { PathElement } from '../core/PathElement.js';
|
|
6
|
+
import { ArtboardElement } from '../core/ArtboardElement.js';
|
|
7
|
+
type LayerElement = TextElement | ImageElement | GroupElement | ShapeElement | PathElement;
|
|
8
|
+
interface LayersPanelProps {
|
|
9
|
+
elements: LayerElement[];
|
|
10
|
+
selectedId: string | null;
|
|
11
|
+
multiSelection: string[];
|
|
12
|
+
activeChildElement?: LayerElement | null;
|
|
13
|
+
hoveredElementId?: string | null;
|
|
14
|
+
activeArtboard?: ArtboardElement | null;
|
|
15
|
+
isVisible?: boolean;
|
|
16
|
+
onToggleVisibility?: () => void;
|
|
17
|
+
onSelectionChange: (id: string | null) => void;
|
|
18
|
+
onMultiSelectionChange: (ids: string[]) => void;
|
|
19
|
+
onElementUpdate: (element: LayerElement) => void;
|
|
20
|
+
onReorder: (draggedId: string, targetId: string, position: 'before' | 'after') => void;
|
|
21
|
+
onReorderInGroup?: (draggedId: string, targetId: string, position: 'before' | 'after', groupId: string) => void;
|
|
22
|
+
onDropIntoGroup?: (draggedId: string, groupId: string) => void;
|
|
23
|
+
onDropIntoGroupAtPosition?: (draggedId: string, groupId: string, targetChildId: string, position: 'before' | 'after') => void;
|
|
24
|
+
onDelete?: (id: string) => void;
|
|
25
|
+
onAddElement?: (type: string) => void;
|
|
26
|
+
onOpenEffectsPanel?: () => void;
|
|
27
|
+
onDuplicate?: (id: string) => void;
|
|
28
|
+
}
|
|
29
|
+
declare const LayersPanel: ({ elements, selectedId, multiSelection, activeChildElement, hoveredElementId: _hoveredElementId, activeArtboard, isVisible, onToggleVisibility: _onToggleVisibility, onSelectionChange, onMultiSelectionChange, onElementUpdate, onReorder, onReorderInGroup, onDropIntoGroup, onDropIntoGroupAtPosition, onDelete, onAddElement: _onAddElement, onOpenEffectsPanel, onDuplicate, }: LayersPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export default LayersPanel;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MaskDefinition } from '../types/index.js';
|
|
2
|
+
interface MaskItemProps {
|
|
3
|
+
mask: MaskDefinition;
|
|
4
|
+
index: number;
|
|
5
|
+
isFirst: boolean;
|
|
6
|
+
isLast: boolean;
|
|
7
|
+
onUpdate: (updates: Partial<MaskDefinition>) => void;
|
|
8
|
+
onRemove: () => void;
|
|
9
|
+
onReorder: (direction: 'up' | 'down') => void;
|
|
10
|
+
}
|
|
11
|
+
declare const MaskItem: ({ mask, index, isFirst, isLast, onUpdate, onRemove, onReorder }: MaskItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export default MaskItem;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MaskDefinition } from '../types/index.js';
|
|
2
|
+
interface MasksPanelProps {
|
|
3
|
+
masks?: MaskDefinition[];
|
|
4
|
+
onChange: (masks: MaskDefinition[]) => void;
|
|
5
|
+
}
|
|
6
|
+
declare const MasksPanel: ({ masks, onChange }: MasksPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default MasksPanel;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MoreMenu - Overflow menu for toolbar items
|
|
3
|
+
* Shows a "..." menu with items that don't fit or are always hidden
|
|
4
|
+
*/
|
|
5
|
+
interface MoreMenuItem {
|
|
6
|
+
label: string;
|
|
7
|
+
icon: React.ReactNode;
|
|
8
|
+
onClick: () => void;
|
|
9
|
+
active?: boolean;
|
|
10
|
+
}
|
|
11
|
+
interface MoreMenuProps {
|
|
12
|
+
items: MoreMenuItem[];
|
|
13
|
+
}
|
|
14
|
+
declare const MoreMenu: ({ items }: MoreMenuProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export default MoreMenu;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { OpenTypeFeatures, GlyphOverride } from '../types/index.js';
|
|
2
|
+
interface OpenTypeFeaturesPanelProps {
|
|
3
|
+
fontFamily?: string;
|
|
4
|
+
fontWeight?: number;
|
|
5
|
+
text?: string;
|
|
6
|
+
openTypeFeatures?: OpenTypeFeatures;
|
|
7
|
+
glyphOverrides?: GlyphOverride[];
|
|
8
|
+
onChange: (features: OpenTypeFeatures | undefined) => void;
|
|
9
|
+
onGlyphOverridesChange?: (overrides: GlyphOverride[] | undefined) => void;
|
|
10
|
+
}
|
|
11
|
+
declare const OpenTypeFeaturesPanel: ({ fontFamily, fontWeight, text, openTypeFeatures, glyphOverrides, onChange, onGlyphOverridesChange, }: OpenTypeFeaturesPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export default OpenTypeFeaturesPanel;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { PathElement } from '../core/PathElement';
|
|
3
|
+
interface PathToolbarProps {
|
|
4
|
+
element: PathElement;
|
|
5
|
+
onElementUpdate: (element: PathElement) => void;
|
|
6
|
+
onMoveForward?: () => void;
|
|
7
|
+
onMoveBackward?: () => void;
|
|
8
|
+
}
|
|
9
|
+
declare const PathToolbar: React.FC<PathToolbarProps>;
|
|
10
|
+
export default PathToolbar;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface ProgressiveBlurSimpleProps {
|
|
3
|
+
className?: string;
|
|
4
|
+
backgroundColor?: string;
|
|
5
|
+
position?: "top" | "bottom";
|
|
6
|
+
height?: string;
|
|
7
|
+
blurAmount?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* ProgressiveBlurSimple - CSS-only progressive blur with single element
|
|
11
|
+
*
|
|
12
|
+
* Uses mask-image to fade a single blur effect, creating the "progressive" feel
|
|
13
|
+
* with minimal DOM. Much simpler than the layered approach.
|
|
14
|
+
*
|
|
15
|
+
* Credit: Inspired by Skiper UI / @gurvinder-singh02
|
|
16
|
+
*/
|
|
17
|
+
export declare function ProgressiveBlurSimple({ className, backgroundColor, position, height, blurAmount, }: ProgressiveBlurSimpleProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export interface ProgressiveBlurProps {
|
|
19
|
+
className?: string;
|
|
20
|
+
height?: string;
|
|
21
|
+
position?: "top" | "bottom" | "both";
|
|
22
|
+
blurLevels?: number[];
|
|
23
|
+
children?: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
export declare function ProgressiveBlur({ className, height, position, blurLevels, }: ProgressiveBlurProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { TextElement } from '../core/TextElement.js';
|
|
3
|
+
import { ImageElement } from '../core/ImageElement.js';
|
|
4
|
+
export interface RotationHandleProps {
|
|
5
|
+
/**
|
|
6
|
+
* Selected element to show rotation handle for
|
|
7
|
+
*/
|
|
8
|
+
selectedElement: TextElement | null | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Canvas reference for coordinate transformation
|
|
11
|
+
*/
|
|
12
|
+
canvasRef: React.RefObject<HTMLCanvasElement | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Current zoom level
|
|
15
|
+
*/
|
|
16
|
+
zoom: number;
|
|
17
|
+
/**
|
|
18
|
+
* Whether rotation is currently active
|
|
19
|
+
*/
|
|
20
|
+
isRotating: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Whether resize is currently active
|
|
23
|
+
*/
|
|
24
|
+
isResizing: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Whether mouse is down (freezes position during drag)
|
|
27
|
+
*/
|
|
28
|
+
isMouseDown: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Callback when rotation starts
|
|
31
|
+
*/
|
|
32
|
+
onRotationStart: (worldX: number, worldY: number, angle: number) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Current rotation angle (for tooltip display)
|
|
35
|
+
*/
|
|
36
|
+
currentRotation?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Ref to the currently rotating element (updated during drag for live position)
|
|
39
|
+
*/
|
|
40
|
+
rotatingElementRef?: React.RefObject<TextElement | ImageElement | null>;
|
|
41
|
+
/**
|
|
42
|
+
* Version counter that increments when rotatingElementRef updates (triggers re-calc)
|
|
43
|
+
*/
|
|
44
|
+
rotatingElementVersion?: number;
|
|
45
|
+
}
|
|
46
|
+
export declare const RotationHandle: React.FC<RotationHandleProps>;
|
|
47
|
+
export default RotationHandle;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ArtboardElement } from '../core/ArtboardElement';
|
|
3
|
+
import { TextElement } from '../core/TextElement';
|
|
4
|
+
import { ImageElement } from '../core/ImageElement';
|
|
5
|
+
import { GroupElement } from '../core/GroupElement';
|
|
6
|
+
import { ArtboardManager } from '../core/ArtboardManager';
|
|
7
|
+
interface SaveLoadMenuProps {
|
|
8
|
+
artboards: ArtboardElement[];
|
|
9
|
+
elements: (TextElement | ImageElement | GroupElement)[];
|
|
10
|
+
artboardManager: ArtboardManager;
|
|
11
|
+
onLoad: (artboards: ArtboardElement[], elements: (TextElement | ImageElement | GroupElement)[], activeArtboardId: string | null) => void;
|
|
12
|
+
canvasRef?: React.RefObject<HTMLCanvasElement>;
|
|
13
|
+
}
|
|
14
|
+
declare const SaveLoadMenu: React.FC<SaveLoadMenuProps>;
|
|
15
|
+
export default SaveLoadMenu;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ShapeElement } from '../core/ShapeElement';
|
|
3
|
+
interface ShapeToolbarProps {
|
|
4
|
+
element: ShapeElement;
|
|
5
|
+
onElementUpdate: (element: ShapeElement) => void;
|
|
6
|
+
/**
|
|
7
|
+
* Colours actually in use elsewhere in the design (text colours,
|
|
8
|
+
* shape fills, strokes, paths, artboard background). Surfaced in
|
|
9
|
+
* the colour picker so users can match an existing colour. Pass
|
|
10
|
+
* `[]` (or omit) to fall back to the artboard-preset palette.
|
|
11
|
+
*/
|
|
12
|
+
documentColors?: string[];
|
|
13
|
+
/**
|
|
14
|
+
* Dominant colours sampled from image elements in the design.
|
|
15
|
+
* Surfaced as a separate "Image colors" row in the colour picker.
|
|
16
|
+
*/
|
|
17
|
+
imageColors?: string[];
|
|
18
|
+
showUngroupButton?: boolean;
|
|
19
|
+
onUngroup?: () => void;
|
|
20
|
+
onMoveForward?: () => void;
|
|
21
|
+
onMoveBackward?: () => void;
|
|
22
|
+
onOpenShapeTypeDrawer?: () => void;
|
|
23
|
+
/** Callback when element should be deleted */
|
|
24
|
+
onDelete?: () => void;
|
|
25
|
+
/** Whether the rotation panel is expanded */
|
|
26
|
+
rotationExpanded?: boolean;
|
|
27
|
+
/** Callback when rotation panel should be toggled */
|
|
28
|
+
onRotationToggle?: () => void;
|
|
29
|
+
/** Whether the corner radius panel is expanded */
|
|
30
|
+
cornerRadiusExpanded?: boolean;
|
|
31
|
+
/** Callback when corner radius panel should be toggled */
|
|
32
|
+
onCornerRadiusToggle?: () => void;
|
|
33
|
+
/** Whether the transparency/opacity panel is expanded */
|
|
34
|
+
transparencyExpanded?: boolean;
|
|
35
|
+
/** Callback when transparency panel should be toggled */
|
|
36
|
+
onTransparencyToggle?: () => void;
|
|
37
|
+
/** Whether the sides panel is expanded (polygon) */
|
|
38
|
+
sidesExpanded?: boolean;
|
|
39
|
+
/** Callback when sides panel should be toggled */
|
|
40
|
+
onSidesToggle?: () => void;
|
|
41
|
+
/** Whether the points panel is expanded (star) */
|
|
42
|
+
pointsExpanded?: boolean;
|
|
43
|
+
/** Callback when points panel should be toggled */
|
|
44
|
+
onPointsToggle?: () => void;
|
|
45
|
+
/** Whether the inner radius panel is expanded (star) */
|
|
46
|
+
innerRadiusExpanded?: boolean;
|
|
47
|
+
/** Callback when inner radius panel should be toggled */
|
|
48
|
+
onInnerRadiusToggle?: () => void;
|
|
49
|
+
/** Whether the fill color panel is expanded */
|
|
50
|
+
colorExpanded?: boolean;
|
|
51
|
+
/** Callback when fill color panel should be toggled */
|
|
52
|
+
onColorToggle?: () => void;
|
|
53
|
+
/** Whether the stroke panel is expanded */
|
|
54
|
+
strokeExpanded?: boolean;
|
|
55
|
+
/** Callback when stroke panel should be toggled */
|
|
56
|
+
onStrokeToggle?: () => void;
|
|
57
|
+
/** Whether the knockout panel is expanded */
|
|
58
|
+
knockoutExpanded?: boolean;
|
|
59
|
+
/** Callback when knockout panel should be toggled */
|
|
60
|
+
onKnockoutToggle?: () => void;
|
|
61
|
+
/** Whether the distress texture panel is expanded */
|
|
62
|
+
distressTextureExpanded?: boolean;
|
|
63
|
+
/** Callback when distress texture panel should be toggled */
|
|
64
|
+
onDistressTextureToggle?: () => void;
|
|
65
|
+
/** Whether the image mask panel is expanded */
|
|
66
|
+
imageMaskExpanded?: boolean;
|
|
67
|
+
/** Callback when image mask panel should be toggled */
|
|
68
|
+
onImageMaskToggle?: () => void;
|
|
69
|
+
}
|
|
70
|
+
declare const ShapeToolbar: React.FC<ShapeToolbarProps>;
|
|
71
|
+
export default ShapeToolbar;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface ShapeTypeDrawerProps {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
onSelectType: (type: string) => void;
|
|
6
|
+
/** The currently selected shape type (optional, for highlighting) */
|
|
7
|
+
currentType?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const ShapeTypeDrawer: React.FC<ShapeTypeDrawerProps>;
|
|
10
|
+
export default ShapeTypeDrawer;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { StrokeConfig } from '../types/index.js';
|
|
2
|
+
interface StrokePanelProps {
|
|
3
|
+
stroke?: StrokeConfig;
|
|
4
|
+
onChange: (stroke: StrokeConfig | undefined) => void;
|
|
5
|
+
}
|
|
6
|
+
declare const StrokePanel: ({ stroke, onChange }: StrokePanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default StrokePanel;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { TransformType } from '../types/index.js';
|
|
3
|
+
import { TextElement } from '../core/TextElement.js';
|
|
4
|
+
import { ImageElement } from '../core/ImageElement.js';
|
|
5
|
+
import { ShapeElement } from '../core/ShapeElement.js';
|
|
6
|
+
export interface TextEffectsDropdownProps {
|
|
7
|
+
element: TextElement;
|
|
8
|
+
onTransformTypeChange: (newType: TransformType) => void;
|
|
9
|
+
onElementUpdate: (updatedElement: TextElement | ImageElement | ShapeElement) => void;
|
|
10
|
+
isOpen?: boolean;
|
|
11
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const TextEffectsDropdown: React.FC<TextEffectsDropdownProps>;
|
|
14
|
+
export default TextEffectsDropdown;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { UseTextToolbarReturn } from '../hooks/useTextToolbar.js';
|
|
3
|
+
import { EditorElement } from '../contexts/EditorContext.js';
|
|
4
|
+
export interface TextToolbarProps {
|
|
5
|
+
toolbar: UseTextToolbarReturn;
|
|
6
|
+
stableElementId?: string;
|
|
7
|
+
viewportWidth?: number;
|
|
8
|
+
colorPickerValue: string;
|
|
9
|
+
isColorActive: boolean;
|
|
10
|
+
onColorToggle: () => void;
|
|
11
|
+
onOpenGlyphBrowser?: () => void;
|
|
12
|
+
hasGlyphs?: boolean;
|
|
13
|
+
expandedPanel: {
|
|
14
|
+
type: string;
|
|
15
|
+
} | null;
|
|
16
|
+
onRotationToggle: () => void;
|
|
17
|
+
onOpacityToggle: () => void;
|
|
18
|
+
onFontSizeToggle: () => void;
|
|
19
|
+
getMoreMenuItems?: () => Array<{
|
|
20
|
+
label: string;
|
|
21
|
+
onClick: () => void;
|
|
22
|
+
icon: React.ReactNode;
|
|
23
|
+
active?: boolean;
|
|
24
|
+
}>;
|
|
25
|
+
strokeExpanded?: boolean;
|
|
26
|
+
onStrokeToggle?: () => void;
|
|
27
|
+
knockoutExpanded?: boolean;
|
|
28
|
+
onKnockoutToggle?: () => void;
|
|
29
|
+
distressTextureExpanded?: boolean;
|
|
30
|
+
onDistressTextureToggle?: () => void;
|
|
31
|
+
imageMaskExpanded?: boolean;
|
|
32
|
+
onImageMaskToggle?: () => void;
|
|
33
|
+
onMoveForward: () => void;
|
|
34
|
+
onMoveBackward: () => void;
|
|
35
|
+
onDelete: () => void;
|
|
36
|
+
elementForProperties: EditorElement;
|
|
37
|
+
elements: EditorElement[];
|
|
38
|
+
isTransformMenuOpen: boolean;
|
|
39
|
+
onTransformMenuOpenChange: (open: boolean) => void;
|
|
40
|
+
elementUpdateHandler: (updatedElement: EditorElement) => void;
|
|
41
|
+
showUngroupButton?: boolean;
|
|
42
|
+
onUngroup?: () => void;
|
|
43
|
+
isFontBrowserOpen?: boolean;
|
|
44
|
+
onFontBrowserToggle: (isOpen: boolean) => void;
|
|
45
|
+
onTextMoreMenuOpenChange?: (open: boolean) => void;
|
|
46
|
+
}
|
|
47
|
+
export declare function TextToolbar({ toolbar, stableElementId, viewportWidth, colorPickerValue, isColorActive, onColorToggle, onOpenGlyphBrowser, hasGlyphs, expandedPanel, onRotationToggle, onOpacityToggle, onFontSizeToggle, strokeExpanded, onStrokeToggle, knockoutExpanded, onKnockoutToggle, distressTextureExpanded, onDistressTextureToggle, imageMaskExpanded, onImageMaskToggle, getMoreMenuItems, onMoveForward, onMoveBackward, onDelete, elementForProperties, elements, isTransformMenuOpen, onTransformMenuOpenChange, elementUpdateHandler, showUngroupButton, onUngroup, isFontBrowserOpen, onFontBrowserToggle, onTextMoreMenuOpenChange, }: TextToolbarProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { TextElement } from '../core/TextElement';
|
|
3
|
+
import { ImageElement } from '../core/ImageElement';
|
|
4
|
+
import { ShapeElement } from '../core/ShapeElement';
|
|
5
|
+
import { TransformControl } from '../types/index.js';
|
|
6
|
+
interface TransformControlPanelProps {
|
|
7
|
+
element: TextElement | ImageElement | ShapeElement;
|
|
8
|
+
controls: TransformControl[];
|
|
9
|
+
onUpdate: (element: TextElement | ImageElement | ShapeElement) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const TransformControlPanel: React.FC<TransformControlPanelProps>;
|
|
12
|
+
export default TransformControlPanel;
|