diff --git a/lint/plugin.js b/lint/plugin.js index a7af77d7d..834d38b26 100644 --- a/lint/plugin.js +++ b/lint/plugin.js @@ -95,10 +95,7 @@ const noInlineNamedTypes = { ) if (!props || props.length < 2) return - const required = props.filter((m) => !m.optional) - if (required.length < 2) return - - const shape = required + const shape = props .map((m) => { const typeNode = m.typeAnnotation?.typeAnnotation let typeName = 'unknown' diff --git a/packages/core/src/io/formats/fig/export.ts b/packages/core/src/io/formats/fig/export.ts index f3110ff95..08c96b8a0 100644 --- a/packages/core/src/io/formats/fig/export.ts +++ b/packages/core/src/io/formats/fig/export.ts @@ -44,7 +44,7 @@ function variableValueToKiwi( } if (type === 'COLOR' && typeof value === 'object' && 'r' in value) { return { - value: { colorValue: safeColor(value as { r: number; g: number; b: number; a?: number }) }, + value: { colorValue: safeColor(value) }, dataType: 'COLOR', resolvedDataType: 'COLOR' } diff --git a/packages/core/src/kiwi/instance-overrides/symbol/props.ts b/packages/core/src/kiwi/instance-overrides/symbol/props.ts index 1150cf408..7c3df8546 100644 --- a/packages/core/src/kiwi/instance-overrides/symbol/props.ts +++ b/packages/core/src/kiwi/instance-overrides/symbol/props.ts @@ -15,6 +15,7 @@ import { } from '#core/kiwi/node-change/convert' import type { SceneNode, ArcData, TextAutoResize } from '#core/scene-graph' import { styleToWeight } from '#core/text/fonts' +import type { Vector } from '#core/types' function applyOverridePaints(ov: Record, updates: Partial): void { if (ov.textData != null) { @@ -39,7 +40,7 @@ function applyOverridePaints(ov: Record, updates: Partial, updates: Partial): void { if (ov.size != null) { - const sz = ov.size as { x?: number; y?: number } + const sz = ov.size as Partial if (sz.x != null) updates.width = sz.x if (sz.y != null) updates.height = sz.y } diff --git a/packages/core/src/kiwi/node-change/export-node.ts b/packages/core/src/kiwi/node-change/export-node.ts index 76f0be4b6..c3c340961 100644 --- a/packages/core/src/kiwi/node-change/export-node.ts +++ b/packages/core/src/kiwi/node-change/export-node.ts @@ -16,7 +16,7 @@ interface SceneNodeToKiwiContext { fractionalPosition: (index: number) => string mapToFigmaType: (type: SceneNode['type']) => string fillToKiwiPaint: (fill: SceneNode['fills'][number]) => Paint - safeColor: (color: { r: number; g: number; b: number; a?: number }) => Color + safeColor: (color: Color) => Color computeExportTransform: (node: SceneNode, graph: SceneGraph) => Matrix serializeCornerRadii: (node: SceneNode, nc: KiwiNodeChange) => void serializeTextProps: ( diff --git a/packages/core/src/kiwi/node-change/serialize.ts b/packages/core/src/kiwi/node-change/serialize.ts index 61471a981..92dac7333 100644 --- a/packages/core/src/kiwi/node-change/serialize.ts +++ b/packages/core/src/kiwi/node-change/serialize.ts @@ -190,8 +190,8 @@ function exportTextData(node: SceneNode): NodeChange['textData'] { } } -export function safeColor(c: { r: number; g: number; b: number; a?: number }): Color { - return { r: c.r, g: c.g, b: c.b, a: c.a ?? 1 } +export function safeColor(c: Color): Color { + return { r: c.r, g: c.g, b: c.b, a: c.a } } function fillToKiwiPaint(f: SceneNode['fills'][number]): Paint { diff --git a/packages/core/src/scene-graph/types.ts b/packages/core/src/scene-graph/types.ts index efae1b9e4..84530ded5 100644 --- a/packages/core/src/scene-graph/types.ts +++ b/packages/core/src/scene-graph/types.ts @@ -1,4 +1,4 @@ -import type { Color, Matrix, Vector } from '#core/types' +import type { Color, Matrix, Rect, Vector } from '#core/types' export interface SceneGraphEvents { 'node:created': (node: SceneNode) => void @@ -233,7 +233,7 @@ export interface SceneNode { width: number height: number rotation: number - figmaDerivedLayout: { x?: number; y?: number; width?: number; height?: number } | null + figmaDerivedLayout: Partial | null fills: Fill[] strokes: Stroke[]