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
55 lines
3.5 KiB
TypeScript
55 lines
3.5 KiB
TypeScript
/* 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 {
|
|
AppearanceSection: typeof import('./src/components/properties/AppearanceSection.vue')['default']
|
|
ColorPicker: typeof import('./src/components/ColorPicker.vue')['default']
|
|
EditorCanvas: typeof import('./src/components/EditorCanvas.vue')['default']
|
|
FillSection: typeof import('./src/components/properties/FillSection.vue')['default']
|
|
IconLucideALargeSmall: typeof import('~icons/lucide/a-large-small')['default']
|
|
IconLucideAlignCenter: typeof import('~icons/lucide/align-center')['default']
|
|
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']
|
|
IconLucideAlignLeft: typeof import('~icons/lucide/align-left')['default']
|
|
IconLucideAlignRight: typeof import('~icons/lucide/align-right')['default']
|
|
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']
|
|
IconLucideBaseline: typeof import('~icons/lucide/baseline')['default']
|
|
IconLucideBlend: typeof import('~icons/lucide/blend')['default']
|
|
IconLucideCheck: typeof import('~icons/lucide/check')['default']
|
|
IconLucideChevronDown: typeof import('~icons/lucide/chevron-down')['default']
|
|
IconLucideChevronRight: typeof import('~icons/lucide/chevron-right')['default']
|
|
IconLucideEye: typeof import('~icons/lucide/eye')['default']
|
|
IconLucideEyeOff: typeof import('~icons/lucide/eye-off')['default']
|
|
IconLucideFile: typeof import('~icons/lucide/file')['default']
|
|
IconLucideFlipHorizontal: typeof import('~icons/lucide/flip-horizontal')['default']
|
|
IconLucideFlipVertical: typeof import('~icons/lucide/flip-vertical')['default']
|
|
IconLucideImage: typeof import('~icons/lucide/image')['default']
|
|
IconLucideRadius: typeof import('~icons/lucide/radius')['default']
|
|
IconLucideRotateCcw: typeof import('~icons/lucide/rotate-ccw')['default']
|
|
IconLucideRotateCw: typeof import('~icons/lucide/rotate-cw')['default']
|
|
IconLucideSearch: typeof import('~icons/lucide/search')['default']
|
|
LayersPanel: typeof import('./src/components/LayersPanel.vue')['default']
|
|
LayoutSection: typeof import('./src/components/properties/LayoutSection.vue')['default']
|
|
PageSection: typeof import('./src/components/properties/PageSection.vue')['default']
|
|
PagesPanel: typeof import('./src/components/PagesPanel.vue')['default']
|
|
PositionSection: typeof import('./src/components/properties/PositionSection.vue')['default']
|
|
PropertiesPanel: typeof import('./src/components/PropertiesPanel.vue')['default']
|
|
ScrubInput: typeof import('./src/components/ScrubInput.vue')['default']
|
|
StrokeSection: typeof import('./src/components/properties/StrokeSection.vue')['default']
|
|
Toolbar: typeof import('./src/components/Toolbar.vue')['default']
|
|
TypographySection: typeof import('./src/components/properties/TypographySection.vue')['default']
|
|
}
|
|
}
|