Skip to content

Commit 9394530

Browse files
Merge pull request #320 from figma/ahurtado/12-19-update
Text decorations update
2 parents 9ed43ef + d04670b commit 9394530

File tree

2 files changed

+113
-1
lines changed

2 files changed

+113
-1
lines changed

plugin-api-standalone.d.ts

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -745,6 +745,30 @@ declare type TextCase =
745745
| 'SMALL_CAPS'
746746
| 'SMALL_CAPS_FORCED'
747747
declare type TextDecoration = 'NONE' | 'UNDERLINE' | 'STRIKETHROUGH'
748+
declare type TextDecorationStyle = 'SOLID' | 'WAVY' | 'DOTTED'
749+
declare type TextDecorationOffset =
750+
| {
751+
readonly value: number
752+
readonly unit: 'PIXELS' | 'PERCENT'
753+
}
754+
| {
755+
readonly unit: 'AUTO'
756+
}
757+
declare type TextDecorationThickness =
758+
| {
759+
readonly value: number
760+
readonly unit: 'PIXELS' | 'PERCENT'
761+
}
762+
| {
763+
readonly unit: 'AUTO'
764+
}
765+
declare type TextDecorationColor =
766+
| {
767+
readonly value: SolidPaint
768+
}
769+
| {
770+
readonly value: 'AUTO'
771+
}
748772
declare type OpenTypeFeature =
749773
| 'PCAP'
750774
| 'C2PC'
@@ -1229,6 +1253,11 @@ interface StyledTextSegment {
12291253
fontName: FontName
12301254
fontWeight: number
12311255
textDecoration: TextDecoration
1256+
textDecorationStyle: TextDecorationStyle | null
1257+
textDecorationOffset: TextDecorationOffset | null
1258+
textDecorationThickness: TextDecorationThickness | null
1259+
textDecorationColor: TextDecorationColor | null
1260+
textDecorationSkipInk: boolean | null
12321261
textCase: TextCase
12331262
lineHeight: LineHeight
12341263
letterSpacing: LetterSpacing
@@ -1935,6 +1964,11 @@ interface NonResizableTextMixin {
19351964
}
19361965
| PluginAPI['mixed']
19371966
textDecoration: TextDecoration | PluginAPI['mixed']
1967+
textDecorationStyle: TextDecorationStyle | PluginAPI['mixed'] | null
1968+
textDecorationOffset: TextDecorationOffset | PluginAPI['mixed'] | null
1969+
textDecorationThickness: TextDecorationThickness | PluginAPI['mixed'] | null
1970+
textDecorationColor: TextDecorationColor | PluginAPI['mixed'] | null
1971+
textDecorationSkipInk: boolean | PluginAPI['mixed'] | null
19381972
letterSpacing: LetterSpacing | PluginAPI['mixed']
19391973
lineHeight: LineHeight | PluginAPI['mixed']
19401974
leadingTrim: LeadingTrim | PluginAPI['mixed']
@@ -1960,6 +1994,28 @@ interface NonResizableTextMixin {
19601994
| PluginAPI['mixed']
19611995
getRangeTextDecoration(start: number, end: number): TextDecoration | PluginAPI['mixed']
19621996
setRangeTextDecoration(start: number, end: number, value: TextDecoration): void
1997+
getRangeTextDecorationStyle(
1998+
start: number,
1999+
end: number,
2000+
): TextDecorationStyle | PluginAPI['mixed'] | null
2001+
setRangeTextDecorationStyle(start: number, end: number, value: TextDecorationStyle): void
2002+
getRangeTextDecorationOffset(
2003+
start: number,
2004+
end: number,
2005+
): TextDecorationOffset | PluginAPI['mixed'] | null
2006+
setRangeTextDecorationOffset(start: number, end: number, value: TextDecorationOffset): void
2007+
getRangeTextDecorationThickness(
2008+
start: number,
2009+
end: number,
2010+
): TextDecorationThickness | PluginAPI['mixed'] | null
2011+
setRangeTextDecorationThickness(start: number, end: number, value: TextDecorationThickness): void
2012+
getRangeTextDecorationColor(
2013+
start: number,
2014+
end: number,
2015+
): TextDecorationColor | PluginAPI['mixed'] | null
2016+
setRangeTextDecorationColor(start: number, end: number, value: TextDecorationColor): void
2017+
getRangeTextDecorationSkipInk(start: number, end: number): boolean | PluginAPI['mixed'] | null
2018+
setRangeTextDecorationSkipInk(start: number, end: number, value: boolean): void
19632019
getRangeLetterSpacing(start: number, end: number): LetterSpacing | PluginAPI['mixed']
19642020
setRangeLetterSpacing(start: number, end: number, value: LetterSpacing): void
19652021
getRangeLineHeight(start: number, end: number): LineHeight | PluginAPI['mixed']
@@ -2622,4 +2678,4 @@ interface FindAllCriteria<T extends NodeType[]> {
26222678
}
26232679

26242680
// prettier-ignore
2625-
export { ArgFreeEventType, PluginAPI, VersionHistoryResult, VariablesAPI, LibraryVariableCollection, LibraryVariable, TeamLibraryAPI, PaymentStatus, PaymentsAPI, ClientStorageAPI, NotificationOptions, NotifyDequeueReason, NotificationHandler, ShowUIOptions, UIPostMessageOptions, OnMessageProperties, MessageEventHandler, UIAPI, UtilAPI, ColorPalette, ColorPalettes, ConstantsAPI, CodegenEvent, CodegenPreferences, CodegenPreferencesEvent, CodegenResult, CodegenAPI, DevResource, DevResourceWithNodeId, LinkPreviewEvent, PlainTextElement, LinkPreviewResult, AuthEvent, DevResourceOpenEvent, AuthResult, VSCodeAPI, DevResourcesAPI, TimerAPI, ViewportAPI, TextReviewAPI, ParameterValues, SuggestionResults, ParameterInputEvent, ParametersAPI, RunParametersEvent, OpenDevResourcesEvent, RunEvent, DropEvent, DropItem, DropFile, DocumentChangeEvent, StyleChangeEvent, StyleChange, BaseDocumentChange, BaseNodeChange, RemovedNode, CreateChange, DeleteChange, PropertyChange, BaseStyleChange, StyleCreateChange, StyleDeleteChange, StylePropertyChange, DocumentChange, NodeChangeProperty, NodeChangeEvent, NodeChange, StyleChangeProperty, TextReviewEvent, TextReviewRange, Transform, Vector, Rect, RGB, RGBA, FontName, TextCase, TextDecoration, OpenTypeFeature, ArcData, DropShadowEffect, InnerShadowEffect, BlurEffect, Effect, ConstraintType, Constraints, ColorStop, ImageFilters, SolidPaint, GradientPaint, ImagePaint, VideoPaint, Paint, Guide, RowsColsLayoutGrid, GridLayoutGrid, LayoutGrid, ExportSettingsConstraints, ExportSettingsImage, ExportSettingsSVGBase, ExportSettingsSVG, ExportSettingsSVGString, ExportSettingsPDF, ExportSettingsREST, ExportSettings, WindingRule, VectorVertex, VectorSegment, VectorRegion, VectorNetwork, VectorPath, VectorPaths, LetterSpacing, LineHeight, LeadingTrim, HyperlinkTarget, TextListOptions, BlendMode, MaskType, Font, TextStyleOverrideType, StyledTextSegment, Reaction, VariableDataType, ExpressionFunction, Expression, VariableValueWithExpression, VariableData, ConditionalBlock, DevStatus, Action, SimpleTransition, DirectionalTransition, Transition, Trigger, Navigation, Easing, EasingFunctionBezier, EasingFunctionSpring, OverflowDirection, OverlayPositionType, OverlayBackground, OverlayBackgroundInteraction, PublishStatus, ConnectorEndpointPosition, ConnectorEndpointPositionAndEndpointNodeId, ConnectorEndpointEndpointNodeIdAndMagnet, ConnectorEndpoint, ConnectorStrokeCap, BaseNodeMixin, PluginDataMixin, DevResourcesMixin, DevStatusMixin, SceneNodeMixin, VariableBindableNodeField, VariableBindableTextField, VariableBindablePaintField, VariableBindablePaintStyleField, VariableBindableColorStopField, VariableBindableEffectField, VariableBindableEffectStyleField, VariableBindableLayoutGridField, VariableBindableGridStyleField, VariableBindableComponentPropertyField, VariableBindableComponentPropertyDefinitionField, StickableMixin, ChildrenMixin, ConstraintMixin, DimensionAndPositionMixin, LayoutMixin, BlendMixin, ContainerMixin, DeprecatedBackgroundMixin, StrokeCap, StrokeJoin, HandleMirroring, AutoLayoutMixin, AutoLayoutChildrenMixin, InferredAutoLayoutResult, DetachedInfo, MinimalStrokesMixin, IndividualStrokesMixin, MinimalFillsMixin, GeometryMixin, CornerMixin, RectangleCornerMixin, ExportMixin, FramePrototypingMixin, VectorLikeMixin, ReactionMixin, DocumentationLink, PublishableMixin, DefaultShapeMixin, BaseFrameMixin, DefaultFrameMixin, OpaqueNodeMixin, MinimalBlendMixin, Annotation, AnnotationProperty, AnnotationPropertyType, AnnotationsMixin, Measurement, MeasurementSide, MeasurementOffset, MeasurementsMixin, VariantMixin, ComponentPropertiesMixin, NonResizableTextMixin, TextSublayerNode, DocumentNode, ExplicitVariableModesMixin, PageNode, FrameNode, GroupNode, SliceNode, RectangleNode, LineNode, EllipseNode, PolygonNode, StarNode, VectorNode, TextNode, ComponentPropertyType, InstanceSwapPreferredValue, ComponentPropertyOptions, ComponentPropertyDefinitions, ComponentSetNode, ComponentNode, ComponentProperties, InstanceNode, BooleanOperationNode, StickyNode, StampNode, TableNode, TableCellNode, HighlightNode, WashiTapeNode, ShapeWithTextNode, CodeBlockNode, LabelSublayerNode, ConnectorNode, VariableResolvedDataType, VariableAlias, VariableValue, VariableScope, CodeSyntaxPlatform, Variable, VariableCollection, WidgetNode, EmbedData, EmbedNode, LinkUnfurlData, LinkUnfurlNode, MediaData, MediaNode, SectionNode, BaseNode, SceneNode, NodeType, StyleType, InheritedStyleField, StyleConsumers, BaseStyleMixin, PaintStyle, TextStyle, EffectStyle, GridStyle, BaseStyle, Image, Video, BaseUser, User, ActiveUser, FindAllCriteria }
2681+
export { ArgFreeEventType, PluginAPI, VersionHistoryResult, VariablesAPI, LibraryVariableCollection, LibraryVariable, TeamLibraryAPI, PaymentStatus, PaymentsAPI, ClientStorageAPI, NotificationOptions, NotifyDequeueReason, NotificationHandler, ShowUIOptions, UIPostMessageOptions, OnMessageProperties, MessageEventHandler, UIAPI, UtilAPI, ColorPalette, ColorPalettes, ConstantsAPI, CodegenEvent, CodegenPreferences, CodegenPreferencesEvent, CodegenResult, CodegenAPI, DevResource, DevResourceWithNodeId, LinkPreviewEvent, PlainTextElement, LinkPreviewResult, AuthEvent, DevResourceOpenEvent, AuthResult, VSCodeAPI, DevResourcesAPI, TimerAPI, ViewportAPI, TextReviewAPI, ParameterValues, SuggestionResults, ParameterInputEvent, ParametersAPI, RunParametersEvent, OpenDevResourcesEvent, RunEvent, DropEvent, DropItem, DropFile, DocumentChangeEvent, StyleChangeEvent, StyleChange, BaseDocumentChange, BaseNodeChange, RemovedNode, CreateChange, DeleteChange, PropertyChange, BaseStyleChange, StyleCreateChange, StyleDeleteChange, StylePropertyChange, DocumentChange, NodeChangeProperty, NodeChangeEvent, NodeChange, StyleChangeProperty, TextReviewEvent, TextReviewRange, Transform, Vector, Rect, RGB, RGBA, FontName, TextCase, TextDecoration, TextDecorationStyle, TextDecorationOffset, TextDecorationThickness, TextDecorationColor, OpenTypeFeature, ArcData, DropShadowEffect, InnerShadowEffect, BlurEffect, Effect, ConstraintType, Constraints, ColorStop, ImageFilters, SolidPaint, GradientPaint, ImagePaint, VideoPaint, Paint, Guide, RowsColsLayoutGrid, GridLayoutGrid, LayoutGrid, ExportSettingsConstraints, ExportSettingsImage, ExportSettingsSVGBase, ExportSettingsSVG, ExportSettingsSVGString, ExportSettingsPDF, ExportSettingsREST, ExportSettings, WindingRule, VectorVertex, VectorSegment, VectorRegion, VectorNetwork, VectorPath, VectorPaths, LetterSpacing, LineHeight, LeadingTrim, HyperlinkTarget, TextListOptions, BlendMode, MaskType, Font, TextStyleOverrideType, StyledTextSegment, Reaction, VariableDataType, ExpressionFunction, Expression, VariableValueWithExpression, VariableData, ConditionalBlock, DevStatus, Action, SimpleTransition, DirectionalTransition, Transition, Trigger, Navigation, Easing, EasingFunctionBezier, EasingFunctionSpring, OverflowDirection, OverlayPositionType, OverlayBackground, OverlayBackgroundInteraction, PublishStatus, ConnectorEndpointPosition, ConnectorEndpointPositionAndEndpointNodeId, ConnectorEndpointEndpointNodeIdAndMagnet, ConnectorEndpoint, ConnectorStrokeCap, BaseNodeMixin, PluginDataMixin, DevResourcesMixin, DevStatusMixin, SceneNodeMixin, VariableBindableNodeField, VariableBindableTextField, VariableBindablePaintField, VariableBindablePaintStyleField, VariableBindableColorStopField, VariableBindableEffectField, VariableBindableEffectStyleField, VariableBindableLayoutGridField, VariableBindableGridStyleField, VariableBindableComponentPropertyField, VariableBindableComponentPropertyDefinitionField, StickableMixin, ChildrenMixin, ConstraintMixin, DimensionAndPositionMixin, LayoutMixin, BlendMixin, ContainerMixin, DeprecatedBackgroundMixin, StrokeCap, StrokeJoin, HandleMirroring, AutoLayoutMixin, AutoLayoutChildrenMixin, InferredAutoLayoutResult, DetachedInfo, MinimalStrokesMixin, IndividualStrokesMixin, MinimalFillsMixin, GeometryMixin, CornerMixin, RectangleCornerMixin, ExportMixin, FramePrototypingMixin, VectorLikeMixin, ReactionMixin, DocumentationLink, PublishableMixin, DefaultShapeMixin, BaseFrameMixin, DefaultFrameMixin, OpaqueNodeMixin, MinimalBlendMixin, Annotation, AnnotationProperty, AnnotationPropertyType, AnnotationsMixin, Measurement, MeasurementSide, MeasurementOffset, MeasurementsMixin, VariantMixin, ComponentPropertiesMixin, NonResizableTextMixin, TextSublayerNode, DocumentNode, ExplicitVariableModesMixin, PageNode, FrameNode, GroupNode, SliceNode, RectangleNode, LineNode, EllipseNode, PolygonNode, StarNode, VectorNode, TextNode, ComponentPropertyType, InstanceSwapPreferredValue, ComponentPropertyOptions, ComponentPropertyDefinitions, ComponentSetNode, ComponentNode, ComponentProperties, InstanceNode, BooleanOperationNode, StickyNode, StampNode, TableNode, TableCellNode, HighlightNode, WashiTapeNode, ShapeWithTextNode, CodeBlockNode, LabelSublayerNode, ConnectorNode, VariableResolvedDataType, VariableAlias, VariableValue, VariableScope, CodeSyntaxPlatform, Variable, VariableCollection, WidgetNode, EmbedData, EmbedNode, LinkUnfurlData, LinkUnfurlNode, MediaData, MediaNode, SectionNode, BaseNode, SceneNode, NodeType, StyleType, InheritedStyleField, StyleConsumers, BaseStyleMixin, PaintStyle, TextStyle, EffectStyle, GridStyle, BaseStyle, Image, Video, BaseUser, User, ActiveUser, FindAllCriteria }

plugin-api.d.ts

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -741,6 +741,30 @@ declare type TextCase =
741741
| 'SMALL_CAPS'
742742
| 'SMALL_CAPS_FORCED'
743743
declare type TextDecoration = 'NONE' | 'UNDERLINE' | 'STRIKETHROUGH'
744+
declare type TextDecorationStyle = 'SOLID' | 'WAVY' | 'DOTTED'
745+
declare type TextDecorationOffset =
746+
| {
747+
readonly value: number
748+
readonly unit: 'PIXELS' | 'PERCENT'
749+
}
750+
| {
751+
readonly unit: 'AUTO'
752+
}
753+
declare type TextDecorationThickness =
754+
| {
755+
readonly value: number
756+
readonly unit: 'PIXELS' | 'PERCENT'
757+
}
758+
| {
759+
readonly unit: 'AUTO'
760+
}
761+
declare type TextDecorationColor =
762+
| {
763+
readonly value: SolidPaint
764+
}
765+
| {
766+
readonly value: 'AUTO'
767+
}
744768
declare type OpenTypeFeature =
745769
| 'PCAP'
746770
| 'C2PC'
@@ -1225,6 +1249,11 @@ interface StyledTextSegment {
12251249
fontName: FontName
12261250
fontWeight: number
12271251
textDecoration: TextDecoration
1252+
textDecorationStyle: TextDecorationStyle | null
1253+
textDecorationOffset: TextDecorationOffset | null
1254+
textDecorationThickness: TextDecorationThickness | null
1255+
textDecorationColor: TextDecorationColor | null
1256+
textDecorationSkipInk: boolean | null
12281257
textCase: TextCase
12291258
lineHeight: LineHeight
12301259
letterSpacing: LetterSpacing
@@ -1931,6 +1960,11 @@ interface NonResizableTextMixin {
19311960
}
19321961
| PluginAPI['mixed']
19331962
textDecoration: TextDecoration | PluginAPI['mixed']
1963+
textDecorationStyle: TextDecorationStyle | PluginAPI['mixed'] | null
1964+
textDecorationOffset: TextDecorationOffset | PluginAPI['mixed'] | null
1965+
textDecorationThickness: TextDecorationThickness | PluginAPI['mixed'] | null
1966+
textDecorationColor: TextDecorationColor | PluginAPI['mixed'] | null
1967+
textDecorationSkipInk: boolean | PluginAPI['mixed'] | null
19341968
letterSpacing: LetterSpacing | PluginAPI['mixed']
19351969
lineHeight: LineHeight | PluginAPI['mixed']
19361970
leadingTrim: LeadingTrim | PluginAPI['mixed']
@@ -1956,6 +1990,28 @@ interface NonResizableTextMixin {
19561990
| PluginAPI['mixed']
19571991
getRangeTextDecoration(start: number, end: number): TextDecoration | PluginAPI['mixed']
19581992
setRangeTextDecoration(start: number, end: number, value: TextDecoration): void
1993+
getRangeTextDecorationStyle(
1994+
start: number,
1995+
end: number,
1996+
): TextDecorationStyle | PluginAPI['mixed'] | null
1997+
setRangeTextDecorationStyle(start: number, end: number, value: TextDecorationStyle): void
1998+
getRangeTextDecorationOffset(
1999+
start: number,
2000+
end: number,
2001+
): TextDecorationOffset | PluginAPI['mixed'] | null
2002+
setRangeTextDecorationOffset(start: number, end: number, value: TextDecorationOffset): void
2003+
getRangeTextDecorationThickness(
2004+
start: number,
2005+
end: number,
2006+
): TextDecorationThickness | PluginAPI['mixed'] | null
2007+
setRangeTextDecorationThickness(start: number, end: number, value: TextDecorationThickness): void
2008+
getRangeTextDecorationColor(
2009+
start: number,
2010+
end: number,
2011+
): TextDecorationColor | PluginAPI['mixed'] | null
2012+
setRangeTextDecorationColor(start: number, end: number, value: TextDecorationColor): void
2013+
getRangeTextDecorationSkipInk(start: number, end: number): boolean | PluginAPI['mixed'] | null
2014+
setRangeTextDecorationSkipInk(start: number, end: number, value: boolean): void
19592015
getRangeLetterSpacing(start: number, end: number): LetterSpacing | PluginAPI['mixed']
19602016
setRangeLetterSpacing(start: number, end: number, value: LetterSpacing): void
19612017
getRangeLineHeight(start: number, end: number): LineHeight | PluginAPI['mixed']

0 commit comments

Comments
 (0)