@meonode/canvas 1.0.0-beta.1
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/CONTRIBUTING.md +75 -0
- package/LICENSE +21 -0
- package/Readme.md +382 -0
- package/dist/cjs/canvas/canvas.helper.d.ts +57 -0
- package/dist/cjs/canvas/canvas.helper.d.ts.map +1 -0
- package/dist/cjs/canvas/canvas.helper.js +239 -0
- package/dist/cjs/canvas/canvas.helper.js.map +1 -0
- package/dist/cjs/canvas/canvas.type.d.ts +657 -0
- package/dist/cjs/canvas/canvas.type.d.ts.map +1 -0
- package/dist/cjs/canvas/grid.canvas.util.d.ts +39 -0
- package/dist/cjs/canvas/grid.canvas.util.d.ts.map +1 -0
- package/dist/cjs/canvas/grid.canvas.util.js +263 -0
- package/dist/cjs/canvas/grid.canvas.util.js.map +1 -0
- package/dist/cjs/canvas/image.canvas.util.d.ts +34 -0
- package/dist/cjs/canvas/image.canvas.util.d.ts.map +1 -0
- package/dist/cjs/canvas/image.canvas.util.js +310 -0
- package/dist/cjs/canvas/image.canvas.util.js.map +1 -0
- package/dist/cjs/canvas/layout.canvas.util.d.ts +123 -0
- package/dist/cjs/canvas/layout.canvas.util.d.ts.map +1 -0
- package/dist/cjs/canvas/layout.canvas.util.js +785 -0
- package/dist/cjs/canvas/layout.canvas.util.js.map +1 -0
- package/dist/cjs/canvas/root.canvas.util.d.ts +42 -0
- package/dist/cjs/canvas/root.canvas.util.d.ts.map +1 -0
- package/dist/cjs/canvas/root.canvas.util.js +140 -0
- package/dist/cjs/canvas/root.canvas.util.js.map +1 -0
- package/dist/cjs/canvas/text.canvas.util.d.ts +148 -0
- package/dist/cjs/canvas/text.canvas.util.d.ts.map +1 -0
- package/dist/cjs/canvas/text.canvas.util.js +1112 -0
- package/dist/cjs/canvas/text.canvas.util.js.map +1 -0
- package/dist/cjs/constant/common.const.d.ts +37 -0
- package/dist/cjs/constant/common.const.d.ts.map +1 -0
- package/dist/cjs/constant/common.const.js +51 -0
- package/dist/cjs/constant/common.const.js.map +1 -0
- package/dist/cjs/index.d.ts +7 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +31 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/esm/canvas/canvas.helper.d.ts +57 -0
- package/dist/esm/canvas/canvas.helper.d.ts.map +1 -0
- package/dist/esm/canvas/canvas.helper.js +214 -0
- package/dist/esm/canvas/canvas.type.d.ts +657 -0
- package/dist/esm/canvas/canvas.type.d.ts.map +1 -0
- package/dist/esm/canvas/grid.canvas.util.d.ts +39 -0
- package/dist/esm/canvas/grid.canvas.util.d.ts.map +1 -0
- package/dist/esm/canvas/grid.canvas.util.js +259 -0
- package/dist/esm/canvas/image.canvas.util.d.ts +34 -0
- package/dist/esm/canvas/image.canvas.util.d.ts.map +1 -0
- package/dist/esm/canvas/image.canvas.util.js +306 -0
- package/dist/esm/canvas/layout.canvas.util.d.ts +123 -0
- package/dist/esm/canvas/layout.canvas.util.d.ts.map +1 -0
- package/dist/esm/canvas/layout.canvas.util.js +777 -0
- package/dist/esm/canvas/root.canvas.util.d.ts +42 -0
- package/dist/esm/canvas/root.canvas.util.d.ts.map +1 -0
- package/dist/esm/canvas/root.canvas.util.js +116 -0
- package/dist/esm/canvas/text.canvas.util.d.ts +148 -0
- package/dist/esm/canvas/text.canvas.util.d.ts.map +1 -0
- package/dist/esm/canvas/text.canvas.util.js +1108 -0
- package/dist/esm/constant/common.const.d.ts +37 -0
- package/dist/esm/constant/common.const.d.ts.map +1 -0
- package/dist/esm/constant/common.const.js +23 -0
- package/dist/esm/index.d.ts +7 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +7 -0
- package/dist/meonode-canvas-1.0.0-beta.1.tgz +0 -0
- package/package.json +79 -0
|
@@ -0,0 +1,657 @@
|
|
|
1
|
+
import * as StylePropTypes from 'yoga-layout';
|
|
2
|
+
import { BoxNode } from '../canvas/layout.canvas.util.js';
|
|
3
|
+
import type { TextNode } from '../canvas/text.canvas.util.js';
|
|
4
|
+
import type { ImageNode } from '../canvas/image.canvas.util.js';
|
|
5
|
+
import type { GridNode } from '../canvas/grid.canvas.util.js';
|
|
6
|
+
import type { FontVariantSetting } from 'skia-canvas';
|
|
7
|
+
import { Style } from '../constant/common.const.js';
|
|
8
|
+
export interface BaseProps {
|
|
9
|
+
/**
|
|
10
|
+
* Optional display name for debugging purposes.
|
|
11
|
+
*/
|
|
12
|
+
name?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Optional key identifier for component reconciliation.
|
|
15
|
+
*/
|
|
16
|
+
key?: string;
|
|
17
|
+
}
|
|
18
|
+
export type Children = BoxNode | TextNode | ImageNode | GridNode | false | undefined;
|
|
19
|
+
export interface FontRegistrationInfo {
|
|
20
|
+
family: string;
|
|
21
|
+
paths: string[];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Defines the 2D transformation properties for a BoxNode.
|
|
25
|
+
* Transformations are applied relative to the specified origin.
|
|
26
|
+
*/
|
|
27
|
+
export interface TransformProps {
|
|
28
|
+
/**
|
|
29
|
+
* Horizontal translation (movement along the X-axis).
|
|
30
|
+
* Applied after positioning via layout.
|
|
31
|
+
* @unit Pixels if it's number, percentage of the node's width if it's string (e.g., '10%').
|
|
32
|
+
* @default undefined (no translation)
|
|
33
|
+
*/
|
|
34
|
+
translateX?: number | `${number}%`;
|
|
35
|
+
/**
|
|
36
|
+
* Vertical translation (movement along the Y-axis).
|
|
37
|
+
* Applied after positioning via layout.
|
|
38
|
+
* @unit Pixels if it's number, percentage of the node's height if it's string (e.g., '10%').
|
|
39
|
+
* @default undefined (no translation)
|
|
40
|
+
*/
|
|
41
|
+
translateY?: number | `${number}%`;
|
|
42
|
+
/**
|
|
43
|
+
* Rotation around the transform origin.
|
|
44
|
+
* @unit Angle in degrees. Positive values rotate clockwise.
|
|
45
|
+
* @default undefined (no rotation)
|
|
46
|
+
*/
|
|
47
|
+
rotate?: number;
|
|
48
|
+
/**
|
|
49
|
+
* Uniform scaling factor (applied to both X and Y axes).
|
|
50
|
+
* A value of 1 means no scaling, 2 means double size, 0.5 means half-size.
|
|
51
|
+
* This value is overridden by `scaleX` and `scaleY` if they are also provided.
|
|
52
|
+
* @default undefined (no scaling, effectively 1)
|
|
53
|
+
*/
|
|
54
|
+
scale?: number;
|
|
55
|
+
/**
|
|
56
|
+
* Horizontal scaling factor. Overrides the X component of `scale` if provided.
|
|
57
|
+
* @default undefined (no scaling, effectively 1)
|
|
58
|
+
*/
|
|
59
|
+
scaleX?: number;
|
|
60
|
+
/**
|
|
61
|
+
* Vertical scaling factor. Overrides the Y component of `scale` if provided.
|
|
62
|
+
* @default undefined (no scaling, effectively 1)
|
|
63
|
+
*/
|
|
64
|
+
scaleY?: number;
|
|
65
|
+
/**
|
|
66
|
+
* The horizontal origin point for transformations (rotate, scale).
|
|
67
|
+
* @unit Pixels from the left edge if it's number, percentage of the node's width if it's string.
|
|
68
|
+
* @default '50%' (center)
|
|
69
|
+
*/
|
|
70
|
+
originX?: number | `${number}%`;
|
|
71
|
+
/**
|
|
72
|
+
* The vertical origin point for transformations (rotate, scale).
|
|
73
|
+
* @unit Pixels from the top edge if it's number, percentage of the node's height if it's string.
|
|
74
|
+
* @default '50%' (center)
|
|
75
|
+
*/
|
|
76
|
+
originY?: number | `${number}%`;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Defines the properties for a single box-shadow effect, similar to CSS box-shadow.
|
|
80
|
+
*/
|
|
81
|
+
export interface BoxShadowProps {
|
|
82
|
+
/**
|
|
83
|
+
* If true, the shadow is drawn inside the border (inset) instead of outside.
|
|
84
|
+
* @default false (outset)
|
|
85
|
+
*/
|
|
86
|
+
inset?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* The horizontal offset of the shadow. Positive values move it right, negative values left.
|
|
89
|
+
* @unit Pixels.
|
|
90
|
+
* @default 0
|
|
91
|
+
*/
|
|
92
|
+
offsetX?: number;
|
|
93
|
+
/**
|
|
94
|
+
* The vertical offset of the shadow. Positive values move it down, negative values up.
|
|
95
|
+
* @unit Pixels.
|
|
96
|
+
* @default 0
|
|
97
|
+
*/
|
|
98
|
+
offsetY?: number;
|
|
99
|
+
/**
|
|
100
|
+
* The blur radius. Larger values create bigger, lighter blurs. Negative values are invalid.
|
|
101
|
+
* @unit Pixels.
|
|
102
|
+
* @default 0 (hard shadow)
|
|
103
|
+
*/
|
|
104
|
+
blur?: number;
|
|
105
|
+
/**
|
|
106
|
+
* The color of the shadow.
|
|
107
|
+
* Accepts standard CSS color strings.
|
|
108
|
+
*/
|
|
109
|
+
color?: string;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Defines the layout and style properties for a BoxNode, analogous to CSS properties.
|
|
113
|
+
*/
|
|
114
|
+
export interface BoxProps extends BaseProps {
|
|
115
|
+
/**
|
|
116
|
+
* Sets the width of the node.
|
|
117
|
+
* @unit Pixels if it's number, percentage of the parent's width if it's string.
|
|
118
|
+
* @default Yoga default (typically 'auto')
|
|
119
|
+
* @see https://yogalayout.dev/docs/styling/width-height
|
|
120
|
+
*/
|
|
121
|
+
width?: number | `${number}%`;
|
|
122
|
+
/**
|
|
123
|
+
* Sets the height of the node.
|
|
124
|
+
* @unit Pixels if it's number, percentage of the parent's height if it's string.
|
|
125
|
+
* @default Yoga default (typically 'auto')
|
|
126
|
+
* @see https://yogalayout.dev/docs/styling/width-height
|
|
127
|
+
*/
|
|
128
|
+
height?: number | `${number}%`;
|
|
129
|
+
/**
|
|
130
|
+
* Sets the minimum width of the node.
|
|
131
|
+
* @unit Pixels if it's number, percentage of the parent's width if it's string.
|
|
132
|
+
* @default Yoga default (0)
|
|
133
|
+
* @see https://yogalayout.dev/docs/styling/min-max-width-height
|
|
134
|
+
*/
|
|
135
|
+
minWidth?: number | `${number}%`;
|
|
136
|
+
/**
|
|
137
|
+
* Sets the minimum height of the node.
|
|
138
|
+
* @unit Pixels if it's number, percentage of the parent's height if it's string.
|
|
139
|
+
* @default Yoga default (0)
|
|
140
|
+
* @see https://yogalayout.dev/docs/styling/min-max-width-height
|
|
141
|
+
*/
|
|
142
|
+
minHeight?: number | `${number}%`;
|
|
143
|
+
/**
|
|
144
|
+
* Sets the maximum width of the node.
|
|
145
|
+
* @unit Pixels if it's number, percentage of the parent's width if it's string.
|
|
146
|
+
* @default Yoga default (undefined / infinity)
|
|
147
|
+
* @see https://yogalayout.dev/docs/styling/min-max-width-height
|
|
148
|
+
*/
|
|
149
|
+
maxWidth?: number | `${number}%`;
|
|
150
|
+
/**
|
|
151
|
+
* Sets the maximum height of the node.
|
|
152
|
+
* @unit Pixels if it's number, percentage of the parent's height if it's string.
|
|
153
|
+
* @default Yoga default (undefined / infinity)
|
|
154
|
+
* @see https://yogalayout.dev/docs/styling/min-max-width-height
|
|
155
|
+
*/
|
|
156
|
+
maxHeight?: number | `${number}%`;
|
|
157
|
+
/**
|
|
158
|
+
* Defines the direction of the main axis for flex items within this container.
|
|
159
|
+
* @see StylePropTypes.FlexDirection (`COLUMN`, `ROW`, `COLUMN_REVERSE`, `ROW_REVERSE`)
|
|
160
|
+
* @default Yoga default (`COLUMN`)
|
|
161
|
+
* @see https://yogalayout.dev/docs/styling/flex-direction
|
|
162
|
+
*/
|
|
163
|
+
flexDirection?: StylePropTypes.FlexDirection;
|
|
164
|
+
/**
|
|
165
|
+
* Defines how flex items are distributed along the main axis of the container.
|
|
166
|
+
* @see StylePropTypes.Justify (`FLEX_START`, `CENTER`, `FLEX_END`, `SPACE_BETWEEN`, `SPACE_AROUND`, `SPACE_EVENLY`)
|
|
167
|
+
* @default Yoga default (`FLEX_START`)
|
|
168
|
+
* @see https://yogalayout.dev/docs/styling/justify-content
|
|
169
|
+
*/
|
|
170
|
+
justifyContent?: StylePropTypes.Justify;
|
|
171
|
+
/**
|
|
172
|
+
* Defines how flex items are aligned along the cross axis of the container.
|
|
173
|
+
* @see StylePropTypes.Align (`AUTO`, `FLEX_START`, `CENTER`, `FLEX_END`, `STRETCH`, `BASELINE`, `SPACE_BETWEEN`, `SPACE_AROUND`)
|
|
174
|
+
* @default Yoga default (`STRETCH`)
|
|
175
|
+
* @see https://yogalayout.dev/docs/styling/align-items-self
|
|
176
|
+
*/
|
|
177
|
+
alignItems?: StylePropTypes.Align;
|
|
178
|
+
/**
|
|
179
|
+
* Allows overriding the parent's `alignItems` value for a specific flex item.
|
|
180
|
+
* @see StylePropTypes.Align (`AUTO`, `FLEX_START`, `CENTER`, `FLEX_END`, `STRETCH`, `BASELINE`, `SPACE_BETWEEN`, `SPACE_AROUND`)
|
|
181
|
+
* @default Yoga default (`AUTO`) - Inherits from `alignItems`.
|
|
182
|
+
* @see https://yogalayout.dev/docs/styling/align-items-self
|
|
183
|
+
*/
|
|
184
|
+
alignSelf?: StylePropTypes.Align;
|
|
185
|
+
/**
|
|
186
|
+
* Defines how lines are distributed along the cross axis when `flexWrap` is `WRAP` or `WRAP_REVERSE`.
|
|
187
|
+
* Has no effect when there is only one line of flex items.
|
|
188
|
+
* @see StylePropTypes.Align (`AUTO`, `FLEX_START`, `CENTER`, `FLEX_END`, `STRETCH`, `BASELINE`, `SPACE_BETWEEN`, `SPACE_AROUND`)
|
|
189
|
+
* @default Yoga default (`FLEX_START`)
|
|
190
|
+
* @see https://yogalayout.dev/docs/styling/align-content
|
|
191
|
+
*/
|
|
192
|
+
alignContent?: StylePropTypes.Align;
|
|
193
|
+
/**
|
|
194
|
+
* Defines the ability of a flex item to grow if necessary, relative to other items.
|
|
195
|
+
* A non-negative number indicating the proportion of available space the item should take.
|
|
196
|
+
* @default Yoga default (0) - Item does not grow.
|
|
197
|
+
* @see https://yogalayout.dev/docs/styling/flex-basis-grow-shrink
|
|
198
|
+
*/
|
|
199
|
+
flexGrow?: number;
|
|
200
|
+
/**
|
|
201
|
+
* Defines the ability of a flex item to shrink if necessary, relative to other items.
|
|
202
|
+
* A non-negative number indicating the proportion of overflow space the item should lose.
|
|
203
|
+
* @default Yoga default (1 for non-root nodes, 0 for root) - Item can shrink.
|
|
204
|
+
* @see https://yogalayout.dev/docs/styling/flex-basis-grow-shrink
|
|
205
|
+
*/
|
|
206
|
+
flexShrink?: number;
|
|
207
|
+
/**
|
|
208
|
+
* Defines the default size of a flex item along the main axis before the remaining space is distributed.
|
|
209
|
+
* @unit Pixels.
|
|
210
|
+
* @default Yoga default (`AUTO`)
|
|
211
|
+
* @see https://yogalayout.dev/docs//styling/flex-basis-grow-shrink
|
|
212
|
+
*/
|
|
213
|
+
flexBasis?: number | 'auto' | `${number}%`;
|
|
214
|
+
/**
|
|
215
|
+
* Specifies the positioning method used for the node.
|
|
216
|
+
* `RELATIVE`: Positioned according to the normal flow, then offset relative to that position.
|
|
217
|
+
* `ABSOLUTE`: Positioned relative to its nearest positioned ancestor (or the root). Layout calculation ignores this node.
|
|
218
|
+
* @see StylePropTypes.PositionType (`RELATIVE`, `ABSOLUTE`)
|
|
219
|
+
* @default Yoga default (`RELATIVE`)
|
|
220
|
+
* @see https://yogalayout.dev/docs/styling/position
|
|
221
|
+
*/
|
|
222
|
+
positionType?: StylePropTypes.PositionType;
|
|
223
|
+
/**
|
|
224
|
+
* Specifies the offset distances for positioned elements (`positionType: 'ABSOLUTE'` or `RELATIVE`).
|
|
225
|
+
* Can be a single number for all edges or an object specifying individual edges (`Top`, `Right`, `Bottom`, `Left`, `Start`, `End`).
|
|
226
|
+
* `Start` and `End` are affected by `direction` (LTR/RTL).
|
|
227
|
+
* @unit Pixels.
|
|
228
|
+
* @default Yoga default (undefined for each edge)
|
|
229
|
+
* @see https://yogalayout.dev/docs/styling/position
|
|
230
|
+
*/
|
|
231
|
+
position?: Partial<Record<keyof typeof StylePropTypes.Edge, number | `${number}%`>> | number | `${number}%`;
|
|
232
|
+
/**
|
|
233
|
+
* Sets the margin space on the outside of the node's border.
|
|
234
|
+
* Can be a single number for all edges or an object specifying individual edges.
|
|
235
|
+
* @unit Pixels.
|
|
236
|
+
* @default Yoga default (0 for each edge)
|
|
237
|
+
* @see https://yogalayout.dev/docs/styling/margin-padding-border
|
|
238
|
+
*/
|
|
239
|
+
margin?: Partial<Record<keyof typeof StylePropTypes.Edge, number | `${number}%` | 'auto'>> | number | `${number}%` | 'auto';
|
|
240
|
+
/**
|
|
241
|
+
* Sets the padding space on the inside of the node's border, around the content.
|
|
242
|
+
* Can be a single number for all edges or an object specifying individual edges.
|
|
243
|
+
* @unit Pixels.
|
|
244
|
+
* @default Yoga default (0 for each edge)
|
|
245
|
+
* @see https://yogalayout.dev/docs/styling/margin-padding-border
|
|
246
|
+
*/
|
|
247
|
+
padding?: Partial<Record<keyof typeof StylePropTypes.Edge, number | `${number}%`>> | number | `${number}%`;
|
|
248
|
+
/**
|
|
249
|
+
* Sets the width of the node's border.
|
|
250
|
+
* Can be a single number for all edges or an object specifying individual edges.
|
|
251
|
+
* @unit Pixels.
|
|
252
|
+
* @default Yoga default (0 for each edge)
|
|
253
|
+
* @see https://yogalayout.dev/docs/styling/margin-padding-border
|
|
254
|
+
*/
|
|
255
|
+
border?: Partial<Record<keyof typeof StylePropTypes.Edge, number>> | number;
|
|
256
|
+
/**
|
|
257
|
+
* Sets the color of the node's border.
|
|
258
|
+
* Accepts standard CSS color strings (e.g., 'red', '#FF0000', 'rgba(255,0,0,0.5)').
|
|
259
|
+
* @default 'black' (set in BoxNode constructor)
|
|
260
|
+
*/
|
|
261
|
+
borderColor?: string | `#${string}`;
|
|
262
|
+
/**
|
|
263
|
+
* Sets the style of the node's border.
|
|
264
|
+
* @see Style.Border.Solid (0)
|
|
265
|
+
* @see Style.Border.Dashed (1)
|
|
266
|
+
* @default Style.Border.Solid (set in BoxNode constructor)
|
|
267
|
+
*/
|
|
268
|
+
borderStyle?: typeof Style.Border.Solid | typeof Style.Border.Dashed;
|
|
269
|
+
/**
|
|
270
|
+
* Sets the radius of the node's corners, creating rounded effects.
|
|
271
|
+
* Can be a single number for all corners or an object specifying individual corners (`TopLeft`, `TopRight`, `BottomLeft`, `BottomRight`).
|
|
272
|
+
* @unit Pixels.
|
|
273
|
+
* @default undefined (no rounding)
|
|
274
|
+
*/
|
|
275
|
+
borderRadius?: Partial<{
|
|
276
|
+
TopLeft: number;
|
|
277
|
+
TopRight: number;
|
|
278
|
+
BottomLeft: number;
|
|
279
|
+
BottomRight: number;
|
|
280
|
+
}> | number;
|
|
281
|
+
/**
|
|
282
|
+
* Locks the aspect ratio (width / height) of the node.
|
|
283
|
+
* If set, Yoga might adjust the height based on the calculated width or vice versa.
|
|
284
|
+
* @unit Ratio (e.g., 16 / 9).
|
|
285
|
+
* @default Yoga default (undefined)
|
|
286
|
+
* @see https://yogalayout.dev/docs/styling/aspect-ratio
|
|
287
|
+
*/
|
|
288
|
+
aspectRatio?: number;
|
|
289
|
+
/**
|
|
290
|
+
* Defines how content that overflows the node's bounds is handled.
|
|
291
|
+
* `VISIBLE`: Content is not clipped and may render outside the node's box.
|
|
292
|
+
* `HIDDEN`: Content is clipped and the rest is invisible.
|
|
293
|
+
* `SCROLL`: Content is clipped, but Yoga calculates layout as if it were visible (used for scrollable containers, though an actual scrolling mechanism is external).
|
|
294
|
+
* @see StylePropTypes.Overflow (`VISIBLE`, `HIDDEN`, `SCROLL`)
|
|
295
|
+
* @default Yoga default (`VISIBLE`)
|
|
296
|
+
* @see https://yogalayout.dev/docs/styling/overflow
|
|
297
|
+
*/
|
|
298
|
+
overflow?: StylePropTypes.Overflow;
|
|
299
|
+
/**
|
|
300
|
+
* Controls whether the node and its children are included in the layout calculation and rendering.
|
|
301
|
+
* `FLEX`: The node participates in a flex layout.
|
|
302
|
+
* `NONE`: The node and its subtree are ignored by layout and rendering.
|
|
303
|
+
* @see StylePropTypes.Display (`FLEX`, `NONE`)
|
|
304
|
+
* @default Yoga default (`FLEX`)
|
|
305
|
+
* @see https://yogalayout.dev/docs/styling/display
|
|
306
|
+
*/
|
|
307
|
+
display?: StylePropTypes.Display;
|
|
308
|
+
/**
|
|
309
|
+
* Sets the primary text and layout direction (Left-to-Right or Right-to-Left).
|
|
310
|
+
* Affects the meaning of `Start` and `End` edges for properties like `position`, `margin`, `padding`, `border`.
|
|
311
|
+
* `INHERIT`: Uses the direction of the parent node.
|
|
312
|
+
* @see StylePropTypes.Direction (`INHERIT`, `LTR`, `RTL`)
|
|
313
|
+
* @default `Style.DIRECTION_LTR` (set in `setLayout`)
|
|
314
|
+
* @see https://yogalayout.dev/docs/styling/layout-direction
|
|
315
|
+
*/
|
|
316
|
+
direction?: StylePropTypes.Direction;
|
|
317
|
+
/**
|
|
318
|
+
* Controls whether flex items are forced onto a single line or can wrap onto multiple lines.
|
|
319
|
+
* @see StylePropTypes.Wrap (`NO_WRAP`, `WRAP`, `WRAP_REVERSE`)
|
|
320
|
+
* @default Yoga default (`NO_WRAP`)
|
|
321
|
+
* @see https://yogalayout.dev/docs/styling/flex-wrap
|
|
322
|
+
*/
|
|
323
|
+
flexWrap?: StylePropTypes.Wrap;
|
|
324
|
+
/**
|
|
325
|
+
* Defines the space between flex items along the main axis.
|
|
326
|
+
* @unit Pixels.
|
|
327
|
+
* @default Yoga default (0)
|
|
328
|
+
* @see https://yogalayout.dev/docs/styling/gap
|
|
329
|
+
*/
|
|
330
|
+
gap?: Partial<Record<keyof typeof StylePropTypes.Gutter, number | `${number}%`>> | number | `${number}%`;
|
|
331
|
+
/**
|
|
332
|
+
* Defines how the `width` and `height` properties are interpreted regarding padding and border.
|
|
333
|
+
* `CONTENT_BOX`: Width/height apply only to the content area. Padding and border are added outside.
|
|
334
|
+
* `BORDER_BOX`: Width/height include content, padding, and border.
|
|
335
|
+
* @see StylePropTypes.BoxSizing (`CONTENT_BOX`, `BORDER_BOX`)
|
|
336
|
+
* @default `Style.BOX_SIZING_BORDER_BOX` (set in `setLayout`)
|
|
337
|
+
*/
|
|
338
|
+
boxSizing?: StylePropTypes.BoxSizing;
|
|
339
|
+
/**
|
|
340
|
+
* Sets the background color of the node. Drawn beneath the content and padding, extending to the border edge.
|
|
341
|
+
* Accepts standard CSS color strings.
|
|
342
|
+
* @default undefined (transparent)
|
|
343
|
+
*/
|
|
344
|
+
backgroundColor?: string;
|
|
345
|
+
/**
|
|
346
|
+
* Sets a linear gradient as the background. Overrides `backgroundColor` if provided.
|
|
347
|
+
* `colors`: Array of CSS color strings for the gradient stops.
|
|
348
|
+
* `direction`: Array of four numbers `[x0, y0, x1, y1]` defining the start and end points of the gradient line, relative to the node's top-left corner.
|
|
349
|
+
* @default undefined
|
|
350
|
+
*/
|
|
351
|
+
gradient?: {
|
|
352
|
+
type: 'linear';
|
|
353
|
+
colors: string[];
|
|
354
|
+
direction: [number, number, number, number] | 'to-top' | 'to-right' | 'to-bottom' | 'to-left' | 'to-top-right' | 'to-top-left' | 'to-bottom-right' | 'to-bottom-left';
|
|
355
|
+
} | {
|
|
356
|
+
type: 'radial';
|
|
357
|
+
colors: string[];
|
|
358
|
+
direction?: [number, number, number, number] | 'to-top' | 'to-right' | 'to-bottom' | 'to-left' | 'to-top-right' | 'to-top-left' | 'to-bottom-right' | 'to-bottom-left';
|
|
359
|
+
};
|
|
360
|
+
/**
|
|
361
|
+
* Sets the opacity of the node and its children when drawing.
|
|
362
|
+
* A value between 0 (fully transparent) and 1 (fully opaque).
|
|
363
|
+
* Opacity is applied to the entire rendered output of the node, including background, border, content, and children.
|
|
364
|
+
* Opacity values stack multiplicatively (e.g., a parent with 0.5 opacity containing a child with 0.5 opacity results in the child rendering at 0.25 opacity relative to the background).
|
|
365
|
+
* @default 1
|
|
366
|
+
*/
|
|
367
|
+
opacity?: number;
|
|
368
|
+
/**
|
|
369
|
+
* Defines the 2D transformations (translate, rotate, scale) applied to the node *after* layout.
|
|
370
|
+
* @see TransformProps
|
|
371
|
+
* @default undefined (no transformation)
|
|
372
|
+
*/
|
|
373
|
+
transform?: TransformProps;
|
|
374
|
+
/**
|
|
375
|
+
* Specifies the stack order of an element.
|
|
376
|
+
* Only applies to nodes with `positionType: 'absolute'`.
|
|
377
|
+
* Elements with a larger zIndex cover elements with a smaller one.
|
|
378
|
+
* If elements share the same zIndex, their stacking order is based on their
|
|
379
|
+
* original order in the children array.
|
|
380
|
+
* Elements without a defined zIndex or not absolutely positioned are treated
|
|
381
|
+
* as if they have zIndex: 0 for stacking relative to positioned siblings,
|
|
382
|
+
* but are rendered in their normal flow order relative to other non-positioned elements.
|
|
383
|
+
*/
|
|
384
|
+
zIndex?: number;
|
|
385
|
+
/**
|
|
386
|
+
* Applies one or more box-shadow effects to the node.
|
|
387
|
+
* Can be a single shadow object or an array of shadow objects.
|
|
388
|
+
* Shadows are drawn in the order specified.
|
|
389
|
+
* @see BoxShadowProps
|
|
390
|
+
* @default undefined (no shadow)
|
|
391
|
+
*/
|
|
392
|
+
boxShadow?: BoxShadowProps | BoxShadowProps[];
|
|
393
|
+
/**
|
|
394
|
+
* Font size.
|
|
395
|
+
* @unit Pixels.
|
|
396
|
+
* @default 16
|
|
397
|
+
*/
|
|
398
|
+
fontSize?: number;
|
|
399
|
+
/**
|
|
400
|
+
* Font family (e.g., 'Arial', 'Helvetica', 'sans-serif').
|
|
401
|
+
* Ensure the font is available in the rendering environment.
|
|
402
|
+
* @default 'sans-serif'
|
|
403
|
+
*/
|
|
404
|
+
fontFamily?: string;
|
|
405
|
+
/**
|
|
406
|
+
* Font weight (e.g., 'normal', 'bold', 400, 700).
|
|
407
|
+
* @default 'normal'
|
|
408
|
+
*/
|
|
409
|
+
fontWeight?: 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | number;
|
|
410
|
+
/**
|
|
411
|
+
* Font style.
|
|
412
|
+
* @default 'normal'
|
|
413
|
+
*/
|
|
414
|
+
fontStyle?: 'normal' | 'italic';
|
|
415
|
+
/**
|
|
416
|
+
* Text color. Accepts standard CSS color strings.
|
|
417
|
+
* @default 'black'
|
|
418
|
+
*/
|
|
419
|
+
color?: string;
|
|
420
|
+
/**
|
|
421
|
+
* Horizontal text alignment within the node's bounds.
|
|
422
|
+
* @default 'left'
|
|
423
|
+
*/
|
|
424
|
+
textAlign?: 'start' | 'end' | 'left' | 'center' | 'right' | 'justify';
|
|
425
|
+
/**
|
|
426
|
+
* Vertical text alignment within the node's bounds.
|
|
427
|
+
* Note: Simple implementation aligns based on the first line.
|
|
428
|
+
* @default 'top'
|
|
429
|
+
*/
|
|
430
|
+
verticalAlign?: 'top' | 'middle' | 'bottom';
|
|
431
|
+
/**
|
|
432
|
+
* Line height.
|
|
433
|
+
* @unit Pixels. If not set, estimated from font size.
|
|
434
|
+
* @default undefined
|
|
435
|
+
*/
|
|
436
|
+
lineHeight?: number;
|
|
437
|
+
/**
|
|
438
|
+
* Specifies font variation settings. Provides fine control over font variation axis.
|
|
439
|
+
* Accepts string in CSS font-variation-settings format.
|
|
440
|
+
* @example "normal" | "historical-forms" | "small-caps" | "all-small-caps" | "petite-caps" | "all-petite-caps" | "unicase" | "titling-caps" | "lining-nums" | "oldstyle-nums" | "proportional-nums" | ...
|
|
441
|
+
* @default undefined
|
|
442
|
+
*/
|
|
443
|
+
fontVariant?: FontVariantSetting;
|
|
444
|
+
/**
|
|
445
|
+
* Additional vertical spacing between lines of text.
|
|
446
|
+
* @unit Pixels.
|
|
447
|
+
* @default 0
|
|
448
|
+
*/
|
|
449
|
+
lineGap?: number;
|
|
450
|
+
/**
|
|
451
|
+
* Sets the spacing between letters (tracking).
|
|
452
|
+
* Accepts CSS units like 'normal', '2px', '0.1em'.
|
|
453
|
+
* @default 'normal' (relies on canvas default)
|
|
454
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/letterSpacing
|
|
455
|
+
*/
|
|
456
|
+
letterSpacing?: number | `${number}px` | `${number}em` | 'normal';
|
|
457
|
+
/**
|
|
458
|
+
* Sets the spacing between words.
|
|
459
|
+
* Accepts CSS units like 'normal', '10px', '0.5em'.
|
|
460
|
+
* This space is added to the intrinsic width of the space character.
|
|
461
|
+
* @default 'normal' (relies on canvas default)
|
|
462
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/wordSpacing
|
|
463
|
+
*/
|
|
464
|
+
wordSpacing?: number | `${number}px` | `${number}em` | 'normal';
|
|
465
|
+
/**
|
|
466
|
+
* Child nodes to be laid out within this node.
|
|
467
|
+
* Can be a single BoxNode or an array of BoxNodes.
|
|
468
|
+
* @default undefined
|
|
469
|
+
*/
|
|
470
|
+
children?: Children | Children[];
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Defines the properties for a RootNode.
|
|
474
|
+
*/
|
|
475
|
+
export interface RootProps extends BoxProps {
|
|
476
|
+
/** Width of the canvas in pixels */
|
|
477
|
+
width: number;
|
|
478
|
+
/** Optional height of the canvas in pixels */
|
|
479
|
+
height?: number;
|
|
480
|
+
/** Scale factor for rendering (e.g., 2 for 2x resolution) */
|
|
481
|
+
scale?: number;
|
|
482
|
+
/** Font files to register for use */
|
|
483
|
+
fonts?: FontRegistrationInfo[];
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Defines the properties for a GridNode.
|
|
487
|
+
*/
|
|
488
|
+
export interface GridProps extends Omit<BoxProps, 'direction'> {
|
|
489
|
+
/**
|
|
490
|
+
* Number of columns in the grid layout.
|
|
491
|
+
* @default 1
|
|
492
|
+
*/
|
|
493
|
+
columns?: number;
|
|
494
|
+
/**
|
|
495
|
+
* Direction of the grid layout.
|
|
496
|
+
* - 'row': Items are arranged horizontally (default)
|
|
497
|
+
* - 'column': Items are arranged vertically
|
|
498
|
+
* - 'row-reverse': Items are arranged horizontally in reverse order
|
|
499
|
+
* - 'column-reverse': Items are arranged vertically in reverse order
|
|
500
|
+
* @default 'row'
|
|
501
|
+
*/
|
|
502
|
+
direction?: 'row' | 'column' | 'row-reverse' | 'column-reverse';
|
|
503
|
+
}
|
|
504
|
+
/**
|
|
505
|
+
* Represents a text segment with styling information
|
|
506
|
+
*/
|
|
507
|
+
export interface TextSegment {
|
|
508
|
+
text: string;
|
|
509
|
+
color?: string;
|
|
510
|
+
weight?: BoxProps['fontWeight'];
|
|
511
|
+
b?: boolean;
|
|
512
|
+
i?: boolean;
|
|
513
|
+
size?: number;
|
|
514
|
+
width?: number;
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* Defines the content and styling properties for a TextNode.
|
|
518
|
+
*/
|
|
519
|
+
export interface TextProps extends Omit<BoxProps, 'children' | 'gap' | 'flexDirection' | 'justifyContent' | 'alignContent' | 'alignItems'> {
|
|
520
|
+
lineHeight?: number;
|
|
521
|
+
/** Maximum number of lines to display. Text exceeding this limit will be truncated. */
|
|
522
|
+
maxLines?: number;
|
|
523
|
+
/**
|
|
524
|
+
* If true, adds '...' to the end of the last visible line when text is truncated due to `maxLines`.
|
|
525
|
+
* If a string is provided, that string is used as the ellipsis character(s).
|
|
526
|
+
* Defaults to false.
|
|
527
|
+
*/
|
|
528
|
+
ellipsis?: boolean | string;
|
|
529
|
+
/**
|
|
530
|
+
* Applies one or more text-shadow effects to the text.
|
|
531
|
+
* Can be a single shadow object or an array of shadow objects.
|
|
532
|
+
* Shadows are drawn in the order specified.
|
|
533
|
+
* @see TextShadowProps
|
|
534
|
+
* @default undefined (no shadow)
|
|
535
|
+
*/
|
|
536
|
+
textShadow?: TextShadowProps | TextShadowProps[];
|
|
537
|
+
}
|
|
538
|
+
/**
|
|
539
|
+
* Defines the properties for a drop-shadow effect, similar to CSS filter: drop-shadow().
|
|
540
|
+
* This shadow respects the transparency of the content, unlike box-shadow.
|
|
541
|
+
*/
|
|
542
|
+
export interface DropShadowProps {
|
|
543
|
+
/**
|
|
544
|
+
* The horizontal offset of the shadow. Positive values move it right, negative values left.
|
|
545
|
+
* @unit Pixels.
|
|
546
|
+
* @default 0
|
|
547
|
+
*/
|
|
548
|
+
offsetX?: number;
|
|
549
|
+
/**
|
|
550
|
+
* The vertical offset of the shadow. Positive values move it down, negative values up.
|
|
551
|
+
* @unit Pixels.
|
|
552
|
+
* @default 0
|
|
553
|
+
*/
|
|
554
|
+
offsetY?: number;
|
|
555
|
+
/**
|
|
556
|
+
* The blur radius. Larger values create bigger, softer shadows. Must be non-negative.
|
|
557
|
+
* @unit Pixels.
|
|
558
|
+
* @default 0 (hard shadow)
|
|
559
|
+
*/
|
|
560
|
+
blur?: number;
|
|
561
|
+
/**
|
|
562
|
+
* The color of the shadow.
|
|
563
|
+
* Accepts standard CSS color strings.
|
|
564
|
+
* @default 'black'
|
|
565
|
+
*/
|
|
566
|
+
color?: string;
|
|
567
|
+
}
|
|
568
|
+
/**
|
|
569
|
+
* Defines the properties for a single text-shadow effect, similar to CSS text-shadow.
|
|
570
|
+
*/
|
|
571
|
+
export interface TextShadowProps {
|
|
572
|
+
/**
|
|
573
|
+
* The horizontal offset of the shadow. Positive values move it right, negative values left.
|
|
574
|
+
* @unit Pixels.
|
|
575
|
+
* @default 0
|
|
576
|
+
*/
|
|
577
|
+
offsetX?: number;
|
|
578
|
+
/**
|
|
579
|
+
* The vertical offset of the shadow. Positive values move it down, negative values up.
|
|
580
|
+
* @unit Pixels.
|
|
581
|
+
* @default 0
|
|
582
|
+
*/
|
|
583
|
+
offsetY?: number;
|
|
584
|
+
/**
|
|
585
|
+
* The blur radius. Larger values create bigger, lighter blurs. Negative values are invalid.
|
|
586
|
+
* @unit Pixels.
|
|
587
|
+
* @default 0 (hard shadow)
|
|
588
|
+
*/
|
|
589
|
+
blur?: number;
|
|
590
|
+
/**
|
|
591
|
+
* The color of the shadow.
|
|
592
|
+
* Accepts standard CSS color strings.
|
|
593
|
+
*/
|
|
594
|
+
color?: string;
|
|
595
|
+
}
|
|
596
|
+
/**
|
|
597
|
+
* Defines the source and rendering properties for an ImageNode.
|
|
598
|
+
* It extends BoxProps, so it can use all Box layout and style properties.
|
|
599
|
+
*/
|
|
600
|
+
export interface ImageProps extends Omit<BoxProps, 'children'> {
|
|
601
|
+
/**
|
|
602
|
+
* The source URL or file path of the image.
|
|
603
|
+
*/
|
|
604
|
+
src: string | Buffer<ArrayBufferLike>;
|
|
605
|
+
/**
|
|
606
|
+
* Specifies how the image should be resized to fit its container.
|
|
607
|
+
* - `fill`: Stretches the image to fill the container, ignoring an aspect ratio. (Default)
|
|
608
|
+
* - `contain`: Scales the image to fit within the container while preserving an aspect ratio.
|
|
609
|
+
* - `cover`: Scales the image to maintain an aspect ratio while filling the container. The image will be clipped if necessary.
|
|
610
|
+
* - `none`: The image is not resized. It will be centered unless dimensions exceed the container, then clipped.
|
|
611
|
+
* - `scale-down`: Compares `contain` and `none`, picking the smaller concrete object size.
|
|
612
|
+
* @default 'fill'
|
|
613
|
+
*/
|
|
614
|
+
objectFit?: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down';
|
|
615
|
+
/**
|
|
616
|
+
* Specifies the alignment of the image's content within its box using an object.
|
|
617
|
+
* Provide values for `Left` or `Right` (for horizontal) and `Top` or `Bottom` (for vertical).
|
|
618
|
+
* Values can be numbers (pixels) or percentage strings (`'50%'`).
|
|
619
|
+
* - Horizontal: `Left` takes precedence over `Right`. Defaults to `'50%'` if neither is provided.
|
|
620
|
+
* - Vertical: `Top` takes precedence over `Bottom`. Defaults to `'50%'` if neither is provided.
|
|
621
|
+
* Affects rendering when `objectFit` is `contain`, `cover`, `none`, or `scale-down`.
|
|
622
|
+
* @example { Left: '10%', Top: 20 } // 10% from left, 20px from top
|
|
623
|
+
* @example { Right: '0%', Bottom: '0%' } // Align to bottom-right
|
|
624
|
+
* @default { Left: '50%', Top: '50%' } // Center center
|
|
625
|
+
*/
|
|
626
|
+
objectPosition?: Partial<Record<'Top' | 'Left' | 'Bottom' | 'Right', number | `${number}%`>>;
|
|
627
|
+
/**
|
|
628
|
+
* Adjusts the saturation level of the image.
|
|
629
|
+
* A value of 1 means the image is unchanged.
|
|
630
|
+
* A value of 0 makes the image completely unsaturated (grayscale).
|
|
631
|
+
* Values greater than 1 increase saturation.
|
|
632
|
+
* @default 1
|
|
633
|
+
*/
|
|
634
|
+
saturate?: number;
|
|
635
|
+
/**
|
|
636
|
+
* Applies a drop-shadow effect based on the image's alpha channel,
|
|
637
|
+
* similar to the CSS `filter: drop-shadow(...)`.
|
|
638
|
+
* @see DropShadowProps
|
|
639
|
+
* @default undefined (no drop shadow)
|
|
640
|
+
*/
|
|
641
|
+
dropShadow?: DropShadowProps;
|
|
642
|
+
/**
|
|
643
|
+
* Alternative text description of the image (used for accessibility or if the image fails).
|
|
644
|
+
* Currently not rendered visually, but good practice to include.
|
|
645
|
+
*/
|
|
646
|
+
alt?: string;
|
|
647
|
+
/**
|
|
648
|
+
* Callback function that executes when the image loads successfully.
|
|
649
|
+
*/
|
|
650
|
+
onLoad?: () => void;
|
|
651
|
+
/**
|
|
652
|
+
* Callback function that executes when the image fails to load.
|
|
653
|
+
* @param error - The error that occurred during loading.
|
|
654
|
+
*/
|
|
655
|
+
onError?: (error: Error) => void;
|
|
656
|
+
}
|
|
657
|
+
//# sourceMappingURL=canvas.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas.type.d.ts","sourceRoot":"","sources":["../../../src/canvas/canvas.type.ts"],"names":[],"mappings":"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"}
|