2026-02-28 05:29:39 +00:00
|
|
|
/* eslint-disable */
|
|
|
|
|
// @ts-nocheck
|
|
|
|
|
// biome-ignore lint: disable
|
|
|
|
|
// oxlint-disable
|
|
|
|
|
// ------
|
|
|
|
|
// Generated by unplugin-vue-components
|
|
|
|
|
// Read more: https://github.com/vuejs/core/pull/3399
|
|
|
|
|
|
|
|
|
|
export {}
|
|
|
|
|
|
|
|
|
|
/* prettier-ignore */
|
|
|
|
|
declare module 'vue' {
|
|
|
|
|
export interface GlobalComponents {
|
2026-03-01 08:12:37 +00:00
|
|
|
APIKeySetup: typeof import('./src/components/chat/APIKeySetup.vue')['default']
|
Split PropertiesPanel into sections, add Typography panel
- PropertiesPanel.vue: 513 → 67 lines (composition only)
- Extracted: PositionSection, LayoutSection, AppearanceSection,
FillSection, StrokeSection, TypographySection
- Shared useNodeProps() composable for update/commit logic
- Typography panel: font family picker with search (queryLocalFonts),
weight select, font size, line height, letter spacing, text alignment
- Font picker shows each family in its own typeface
- Loads selected font into both CanvasKit and browser on pick
2026-02-28 06:00:25 +00:00
|
|
|
AppearanceSection: typeof import('./src/components/properties/AppearanceSection.vue')['default']
|
Add app menu bar for browser mode (File, Edit, View, Object, Text, Arrange)
Reka-ui Menubar in the left panel header, hidden when running in Tauri
(native menu handles it). Includes Open, Save, Save As, Export, Undo/Redo,
Zoom, Group/Ungroup, Component creation, Bring to front/Send to back,
Auto layout, Text formatting, Alignment.
2026-03-01 12:09:08 +00:00
|
|
|
AppMenu: typeof import('./src/components/AppMenu.vue')['default']
|
2026-03-01 15:25:04 +00:00
|
|
|
AppToast: typeof import('./src/components/AppToast.vue')['default']
|
2026-02-28 15:10:26 +00:00
|
|
|
CanvasContextMenu: typeof import('./src/components/CanvasContextMenu.vue')['default']
|
2026-03-01 08:11:46 +00:00
|
|
|
ChatInput: typeof import('./src/components/chat/ChatInput.vue')['default']
|
|
|
|
|
ChatMessage: typeof import('./src/components/chat/ChatMessage.vue')['default']
|
2026-03-01 07:54:51 +00:00
|
|
|
ChatPanel: typeof import('./src/components/ChatPanel.vue')['default']
|
2026-03-01 09:12:45 +00:00
|
|
|
CodePanel: typeof import('./src/components/CodePanel.vue')['default']
|
2026-03-01 13:44:37 +00:00
|
|
|
CollabPanel: typeof import('./src/components/CollabPanel.vue')['default']
|
2026-02-28 23:18:23 +00:00
|
|
|
ColorInput: typeof import('./src/components/ColorInput.vue')['default']
|
2026-02-28 05:29:39 +00:00
|
|
|
ColorPicker: typeof import('./src/components/ColorPicker.vue')['default']
|
2026-03-01 07:55:52 +00:00
|
|
|
DesignPanel: typeof import('./src/components/DesignPanel.vue')['default']
|
2026-02-28 05:29:39 +00:00
|
|
|
EditorCanvas: typeof import('./src/components/EditorCanvas.vue')['default']
|
Add Effects section to properties panel
Support adding, removing, and editing drop shadows, inner shadows,
layer blurs, background blurs, and foreground blurs. Each effect row
has visibility toggle, type dropdown, and remove button. Expanded
view shows offset, blur, spread, and color controls for shadows,
or just blur radius for blur effects.
2026-02-28 17:12:37 +00:00
|
|
|
EffectsSection: typeof import('./src/components/properties/EffectsSection.vue')['default']
|
2026-02-28 21:05:19 +00:00
|
|
|
ExportSection: typeof import('./src/components/properties/ExportSection.vue')['default']
|
2026-02-28 14:26:50 +00:00
|
|
|
FillPicker: typeof import('./src/components/FillPicker.vue')['default']
|
Split PropertiesPanel into sections, add Typography panel
- PropertiesPanel.vue: 513 → 67 lines (composition only)
- Extracted: PositionSection, LayoutSection, AppearanceSection,
FillSection, StrokeSection, TypographySection
- Shared useNodeProps() composable for update/commit logic
- Typography panel: font family picker with search (queryLocalFonts),
weight select, font size, line height, letter spacing, text alignment
- Font picker shows each family in its own typeface
- Loads selected font into both CanvasKit and browser on pick
2026-02-28 06:00:25 +00:00
|
|
|
FillSection: typeof import('./src/components/properties/FillSection.vue')['default']
|
2026-03-01 00:25:50 +00:00
|
|
|
FontPicker: typeof import('./src/components/FontPicker.vue')['default']
|
2026-03-01 14:15:08 +00:00
|
|
|
HsvColorArea: typeof import('./src/components/HsvColorArea.vue')['default']
|
Split PropertiesPanel into sections, add Typography panel
- PropertiesPanel.vue: 513 → 67 lines (composition only)
- Extracted: PositionSection, LayoutSection, AppearanceSection,
FillSection, StrokeSection, TypographySection
- Shared useNodeProps() composable for update/commit logic
- Typography panel: font family picker with search (queryLocalFonts),
weight select, font size, line height, letter spacing, text alignment
- Font picker shows each family in its own typeface
- Loads selected font into both CanvasKit and browser on pick
2026-02-28 06:00:25 +00:00
|
|
|
IconLucideALargeSmall: typeof import('~icons/lucide/a-large-small')['default']
|
2026-03-01 15:25:04 +00:00
|
|
|
IconLucideAlertTriangle: typeof import('~icons/lucide/alert-triangle')['default']
|
2026-02-28 06:01:54 +00:00
|
|
|
IconLucideAlignCenter: typeof import('~icons/lucide/align-center')['default']
|
2026-02-28 06:55:02 +00:00
|
|
|
IconLucideAlignHorizontalJustifyCenter: typeof import('~icons/lucide/align-horizontal-justify-center')['default']
|
|
|
|
|
IconLucideAlignHorizontalJustifyEnd: typeof import('~icons/lucide/align-horizontal-justify-end')['default']
|
|
|
|
|
IconLucideAlignHorizontalJustifyStart: typeof import('~icons/lucide/align-horizontal-justify-start')['default']
|
2026-02-28 06:01:54 +00:00
|
|
|
IconLucideAlignLeft: typeof import('~icons/lucide/align-left')['default']
|
|
|
|
|
IconLucideAlignRight: typeof import('~icons/lucide/align-right')['default']
|
2026-02-28 06:55:02 +00:00
|
|
|
IconLucideAlignVerticalJustifyCenter: typeof import('~icons/lucide/align-vertical-justify-center')['default']
|
|
|
|
|
IconLucideAlignVerticalJustifyEnd: typeof import('~icons/lucide/align-vertical-justify-end')['default']
|
|
|
|
|
IconLucideAlignVerticalJustifyStart: typeof import('~icons/lucide/align-vertical-justify-start')['default']
|
Split PropertiesPanel into sections, add Typography panel
- PropertiesPanel.vue: 513 → 67 lines (composition only)
- Extracted: PositionSection, LayoutSection, AppearanceSection,
FillSection, StrokeSection, TypographySection
- Shared useNodeProps() composable for update/commit logic
- Typography panel: font family picker with search (queryLocalFonts),
weight select, font size, line height, letter spacing, text alignment
- Font picker shows each family in its own typeface
- Loads selected font into both CanvasKit and browser on pick
2026-02-28 06:00:25 +00:00
|
|
|
IconLucideBaseline: typeof import('~icons/lucide/baseline')['default']
|
2026-02-28 06:20:31 +00:00
|
|
|
IconLucideBlend: typeof import('~icons/lucide/blend')['default']
|
2026-03-01 06:03:38 +00:00
|
|
|
IconLucideBold: typeof import('~icons/lucide/bold')['default']
|
2026-03-01 08:08:47 +00:00
|
|
|
IconLucideBot: typeof import('~icons/lucide/bot')['default']
|
Split PropertiesPanel into sections, add Typography panel
- PropertiesPanel.vue: 513 → 67 lines (composition only)
- Extracted: PositionSection, LayoutSection, AppearanceSection,
FillSection, StrokeSection, TypographySection
- Shared useNodeProps() composable for update/commit logic
- Typography panel: font family picker with search (queryLocalFonts),
weight select, font size, line height, letter spacing, text alignment
- Font picker shows each family in its own typeface
- Loads selected font into both CanvasKit and browser on pick
2026-02-28 06:00:25 +00:00
|
|
|
IconLucideCheck: typeof import('~icons/lucide/check')['default']
|
|
|
|
|
IconLucideChevronDown: typeof import('~icons/lucide/chevron-down')['default']
|
2026-02-28 05:29:39 +00:00
|
|
|
IconLucideChevronRight: typeof import('~icons/lucide/chevron-right')['default']
|
2026-03-01 09:12:45 +00:00
|
|
|
IconLucideCode: typeof import('~icons/lucide/code')['default']
|
|
|
|
|
IconLucideCopy: typeof import('~icons/lucide/copy')['default']
|
2026-02-28 06:06:04 +00:00
|
|
|
IconLucideEye: typeof import('~icons/lucide/eye')['default']
|
|
|
|
|
IconLucideEyeOff: typeof import('~icons/lucide/eye-off')['default']
|
Pages support: multi-page documents like Figma
Document structure: Document (root) → Pages (CANVAS) → Nodes.
Each page has its own viewport (pan/zoom) and background color.
- CANVAS node type for pages
- SceneGraph: addPage(), getPages(), getAbsolutePosition stops at CANVAS
- Store: currentPageId, switchPage(), addPage(), deletePage(), renamePage()
- All operations (create, select, paste, hit test, render) scoped to current page
- Per-page viewport state saved/restored on page switch
- Pages list in LayersPanel with add/switch/double-click rename
- .fig import creates proper pages from DOCUMENT→CANVAS hierarchy
- Renderer takes pageId to render correct page's children
- Unit test for pages, updated E2E tests for page-scoped graph
2026-02-28 10:12:27 +00:00
|
|
|
IconLucideFile: typeof import('~icons/lucide/file')['default']
|
2026-02-28 06:55:02 +00:00
|
|
|
IconLucideFlipHorizontal: typeof import('~icons/lucide/flip-horizontal')['default']
|
|
|
|
|
IconLucideFlipVertical: typeof import('~icons/lucide/flip-vertical')['default']
|
2026-02-28 22:59:01 +00:00
|
|
|
IconLucideFolderPlus: typeof import('~icons/lucide/folder-plus')['default']
|
Tier 1 rendering parity: gradients, images, effects, strokes, arcs
Data model:
- Gradient fills (LINEAR, RADIAL, ANGULAR, DIAMOND) with stops + transform
- Image fills with hash reference, scale mode, transform
- Blend modes on fills, nodes, effects
- Stroke cap, join, dash pattern, independent border weights
- Arc data for partial ellipses/donuts
- Text: vertical align, auto-resize, case, decoration, max lines
- Constraints: horizontal/vertical
- New node types: ROUNDED_RECTANGLE, COMPONENT, COMPONENT_SET,
INSTANCE, CONNECTOR, SHAPE_WITH_TEXT
Import:
- All paint types imported (not just SOLID)
- Image hashes extracted from .fig ZIP images/ directory
- Font weight mapping (Thin→100 through Black→900)
- Arc data, stroke options, constraints, text properties
Renderer:
- Gradient shaders via CanvasKit (linear, radial, sweep)
- Image fills with FILL/FIT scale modes and shader matrix
- Drop shadow and inner shadow effects
- Arc/donut rendering for ellipses with arcData
- Stroke cap/join/dash pattern support
- Image cache with cleanup on destroy
Export:
- Gradient/image fills round-trip through Kiwi
- New node types mapped to Figma equivalents
UI:
- Fill section shows gradient/image type labels for non-SOLID fills
2026-02-28 13:40:34 +00:00
|
|
|
IconLucideImage: typeof import('~icons/lucide/image')['default']
|
2026-03-01 06:03:38 +00:00
|
|
|
IconLucideItalic: typeof import('~icons/lucide/italic')['default']
|
2026-03-01 07:54:51 +00:00
|
|
|
IconLucideKeyRound: typeof import('~icons/lucide/key-round')['default']
|
2026-02-28 22:59:01 +00:00
|
|
|
IconLucideLink: typeof import('~icons/lucide/link')['default']
|
2026-03-01 07:54:51 +00:00
|
|
|
IconLucideLoaderCircle: typeof import('~icons/lucide/loader-circle')['default']
|
|
|
|
|
IconLucideMessageCircle: typeof import('~icons/lucide/message-circle')['default']
|
2026-02-28 14:26:50 +00:00
|
|
|
IconLucidePlus: typeof import('~icons/lucide/plus')['default']
|
2026-02-28 06:20:31 +00:00
|
|
|
IconLucideRadius: typeof import('~icons/lucide/radius')['default']
|
2026-02-28 06:57:45 +00:00
|
|
|
IconLucideRotateCcw: typeof import('~icons/lucide/rotate-ccw')['default']
|
2026-02-28 06:55:02 +00:00
|
|
|
IconLucideRotateCw: typeof import('~icons/lucide/rotate-cw')['default']
|
Split PropertiesPanel into sections, add Typography panel
- PropertiesPanel.vue: 513 → 67 lines (composition only)
- Extracted: PositionSection, LayoutSection, AppearanceSection,
FillSection, StrokeSection, TypographySection
- Shared useNodeProps() composable for update/commit logic
- Typography panel: font family picker with search (queryLocalFonts),
weight select, font size, line height, letter spacing, text alignment
- Font picker shows each family in its own typeface
- Loads selected font into both CanvasKit and browser on pick
2026-02-28 06:00:25 +00:00
|
|
|
IconLucideSearch: typeof import('~icons/lucide/search')['default']
|
2026-03-01 07:54:51 +00:00
|
|
|
IconLucideSend: typeof import('~icons/lucide/send')['default']
|
2026-02-28 22:59:01 +00:00
|
|
|
IconLucideSettings2: typeof import('~icons/lucide/settings2')['default']
|
2026-03-01 13:44:37 +00:00
|
|
|
IconLucideShare2: typeof import('~icons/lucide/share2')['default']
|
2026-03-01 17:14:39 +00:00
|
|
|
IconLucideSidebar: typeof import('~icons/lucide/sidebar')['default']
|
2026-03-01 07:54:51 +00:00
|
|
|
IconLucideSparkles: typeof import('~icons/lucide/sparkles')['default']
|
|
|
|
|
IconLucideSquare: typeof import('~icons/lucide/square')['default']
|
2026-03-01 06:03:38 +00:00
|
|
|
IconLucideStrikethrough: typeof import('~icons/lucide/strikethrough')['default']
|
2026-03-01 07:54:51 +00:00
|
|
|
IconLucideTriangleAlert: typeof import('~icons/lucide/triangle-alert')['default']
|
2026-03-01 06:03:38 +00:00
|
|
|
IconLucideUnderline: typeof import('~icons/lucide/underline')['default']
|
2026-02-28 22:59:01 +00:00
|
|
|
IconLucideUnlink: typeof import('~icons/lucide/unlink')['default']
|
2026-03-01 14:15:08 +00:00
|
|
|
IconLucideUsers: typeof import('~icons/lucide/users')['default']
|
2026-02-28 22:59:01 +00:00
|
|
|
IconLucideX: typeof import('~icons/lucide/x')['default']
|
2026-02-28 05:29:39 +00:00
|
|
|
LayersPanel: typeof import('./src/components/LayersPanel.vue')['default']
|
Split PropertiesPanel into sections, add Typography panel
- PropertiesPanel.vue: 513 → 67 lines (composition only)
- Extracted: PositionSection, LayoutSection, AppearanceSection,
FillSection, StrokeSection, TypographySection
- Shared useNodeProps() composable for update/commit logic
- Typography panel: font family picker with search (queryLocalFonts),
weight select, font size, line height, letter spacing, text alignment
- Font picker shows each family in its own typeface
- Loads selected font into both CanvasKit and browser on pick
2026-02-28 06:00:25 +00:00
|
|
|
LayoutSection: typeof import('./src/components/properties/LayoutSection.vue')['default']
|
2026-02-28 08:42:13 +00:00
|
|
|
PageSection: typeof import('./src/components/properties/PageSection.vue')['default']
|
2026-02-28 10:14:03 +00:00
|
|
|
PagesPanel: typeof import('./src/components/PagesPanel.vue')['default']
|
Split PropertiesPanel into sections, add Typography panel
- PropertiesPanel.vue: 513 → 67 lines (composition only)
- Extracted: PositionSection, LayoutSection, AppearanceSection,
FillSection, StrokeSection, TypographySection
- Shared useNodeProps() composable for update/commit logic
- Typography panel: font family picker with search (queryLocalFonts),
weight select, font size, line height, letter spacing, text alignment
- Font picker shows each family in its own typeface
- Loads selected font into both CanvasKit and browser on pick
2026-02-28 06:00:25 +00:00
|
|
|
PositionSection: typeof import('./src/components/properties/PositionSection.vue')['default']
|
2026-02-28 05:29:39 +00:00
|
|
|
PropertiesPanel: typeof import('./src/components/PropertiesPanel.vue')['default']
|
2026-03-01 14:15:08 +00:00
|
|
|
RouterLink: typeof import('vue-router')['RouterLink']
|
|
|
|
|
RouterView: typeof import('vue-router')['RouterView']
|
2026-03-01 12:41:27 +00:00
|
|
|
SafariBanner: typeof import('./src/components/SafariBanner.vue')['default']
|
2026-02-28 05:29:39 +00:00
|
|
|
ScrubInput: typeof import('./src/components/ScrubInput.vue')['default']
|
Split PropertiesPanel into sections, add Typography panel
- PropertiesPanel.vue: 513 → 67 lines (composition only)
- Extracted: PositionSection, LayoutSection, AppearanceSection,
FillSection, StrokeSection, TypographySection
- Shared useNodeProps() composable for update/commit logic
- Typography panel: font family picker with search (queryLocalFonts),
weight select, font size, line height, letter spacing, text alignment
- Font picker shows each family in its own typeface
- Loads selected font into both CanvasKit and browser on pick
2026-02-28 06:00:25 +00:00
|
|
|
StrokeSection: typeof import('./src/components/properties/StrokeSection.vue')['default']
|
2026-02-28 05:29:39 +00:00
|
|
|
Toolbar: typeof import('./src/components/Toolbar.vue')['default']
|
Split PropertiesPanel into sections, add Typography panel
- PropertiesPanel.vue: 513 → 67 lines (composition only)
- Extracted: PositionSection, LayoutSection, AppearanceSection,
FillSection, StrokeSection, TypographySection
- Shared useNodeProps() composable for update/commit logic
- Typography panel: font family picker with search (queryLocalFonts),
weight select, font size, line height, letter spacing, text alignment
- Font picker shows each family in its own typeface
- Loads selected font into both CanvasKit and browser on pick
2026-02-28 06:00:25 +00:00
|
|
|
TypographySection: typeof import('./src/components/properties/TypographySection.vue')['default']
|
2026-02-28 22:59:01 +00:00
|
|
|
VariablesDialog: typeof import('./src/components/VariablesDialog.vue')['default']
|
|
|
|
|
VariablesSection: typeof import('./src/components/properties/VariablesSection.vue')['default']
|
2026-02-28 05:29:39 +00:00
|
|
|
}
|
|
|
|
|
}
|