@meonode/canvas 1.0.0-beta.3 → 1.0.0-beta.5

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.
Files changed (48) hide show
  1. package/Readme.md +1 -1
  2. package/dist/cjs/canvas/canvas.helper.d.ts +9 -11
  3. package/dist/cjs/canvas/canvas.helper.d.ts.map +1 -1
  4. package/dist/cjs/canvas/canvas.helper.js +47 -48
  5. package/dist/cjs/canvas/canvas.helper.js.map +1 -1
  6. package/dist/cjs/canvas/canvas.type.d.ts +31 -31
  7. package/dist/cjs/canvas/canvas.type.d.ts.map +1 -1
  8. package/dist/cjs/canvas/grid.canvas.util.d.ts +4 -4
  9. package/dist/cjs/canvas/grid.canvas.util.d.ts.map +1 -1
  10. package/dist/cjs/canvas/grid.canvas.util.js +21 -4
  11. package/dist/cjs/canvas/grid.canvas.util.js.map +1 -1
  12. package/dist/cjs/canvas/image.canvas.util.d.ts +0 -1
  13. package/dist/cjs/canvas/image.canvas.util.d.ts.map +1 -1
  14. package/dist/cjs/canvas/image.canvas.util.js +72 -72
  15. package/dist/cjs/canvas/image.canvas.util.js.map +1 -1
  16. package/dist/cjs/canvas/layout.canvas.util.d.ts +16 -17
  17. package/dist/cjs/canvas/layout.canvas.util.d.ts.map +1 -1
  18. package/dist/cjs/canvas/layout.canvas.util.js +17 -24
  19. package/dist/cjs/canvas/layout.canvas.util.js.map +1 -1
  20. package/dist/cjs/canvas/root.canvas.util.d.ts +4 -2
  21. package/dist/cjs/canvas/root.canvas.util.d.ts.map +1 -1
  22. package/dist/cjs/canvas/root.canvas.util.js +7 -3
  23. package/dist/cjs/canvas/root.canvas.util.js.map +1 -1
  24. package/dist/cjs/canvas/text.canvas.util.d.ts +20 -27
  25. package/dist/cjs/canvas/text.canvas.util.d.ts.map +1 -1
  26. package/dist/cjs/canvas/text.canvas.util.js +27 -45
  27. package/dist/cjs/canvas/text.canvas.util.js.map +1 -1
  28. package/dist/esm/canvas/canvas.helper.d.ts +9 -11
  29. package/dist/esm/canvas/canvas.helper.d.ts.map +1 -1
  30. package/dist/esm/canvas/canvas.helper.js +47 -48
  31. package/dist/esm/canvas/canvas.type.d.ts +31 -31
  32. package/dist/esm/canvas/canvas.type.d.ts.map +1 -1
  33. package/dist/esm/canvas/grid.canvas.util.d.ts +4 -4
  34. package/dist/esm/canvas/grid.canvas.util.d.ts.map +1 -1
  35. package/dist/esm/canvas/grid.canvas.util.js +21 -4
  36. package/dist/esm/canvas/image.canvas.util.d.ts +0 -1
  37. package/dist/esm/canvas/image.canvas.util.d.ts.map +1 -1
  38. package/dist/esm/canvas/image.canvas.util.js +72 -72
  39. package/dist/esm/canvas/layout.canvas.util.d.ts +16 -17
  40. package/dist/esm/canvas/layout.canvas.util.d.ts.map +1 -1
  41. package/dist/esm/canvas/layout.canvas.util.js +17 -24
  42. package/dist/esm/canvas/root.canvas.util.d.ts +4 -2
  43. package/dist/esm/canvas/root.canvas.util.d.ts.map +1 -1
  44. package/dist/esm/canvas/root.canvas.util.js +7 -3
  45. package/dist/esm/canvas/text.canvas.util.d.ts +20 -27
  46. package/dist/esm/canvas/text.canvas.util.d.ts.map +1 -1
  47. package/dist/esm/canvas/text.canvas.util.js +27 -45
  48. package/package.json +16 -9
@@ -14,25 +14,31 @@ const drawBorders = ({ ctx, node, x, y, width, height, radii, borderColor, borde
14
14
  ctx.lineCap = 'butt';
15
15
  ctx.lineJoin = 'miter'; // Use miter for sharp corners unless rounded
16
16
  const setDash = (width) => {
17
- if (borderStyle === Style.Border.Dashed && width > 0) {
17
+ if (borderStyle === Style.Border.Dotted && width > 0) {
18
+ // Dotted: tight spacing with round caps for circular dots
19
+ ctx.lineCap = 'round';
20
+ ctx.setLineDash([0, width * 2]); // 0-length dash with spacing creates dots with round caps
21
+ }
22
+ else if (borderStyle === Style.Border.Dashed && width > 0) {
23
+ ctx.lineCap = 'butt';
18
24
  const dashLength = Math.max(2, width * 1.5);
19
25
  const gapLength = Math.max(1, width);
20
26
  ctx.setLineDash([dashLength, gapLength]);
21
27
  }
22
28
  else {
29
+ ctx.lineCap = 'butt';
23
30
  ctx.setLineDash([]); // Solid line
24
31
  }
25
32
  };
26
33
  /**
27
34
  * Draws a rounded corner arc for the border.
28
- *
29
- * @param cx - The x-coordinate of the visual center of the corner curve.
30
- * @param cy - The y-coordinate of the visual center of the corner curve.
31
- * @param radius - The visual radius of the corner curve.
32
- * @param startAngle - The starting angle of the arc in radians.
33
- * @param endAngle - The ending angle of the arc in radians.
34
- * @param border1 - The border width leading into the corner.
35
- * @param border2 - The border width leading out of the corner.
35
+ * @param cx The x-coordinate of the visual center of the corner curve.
36
+ * @param cy The y-coordinate of the visual center of the corner curve.
37
+ * @param radius The visual radius of the corner curve.
38
+ * @param startAngle The starting angle of the arc in radians.
39
+ * @param endAngle The ending angle of the arc in radians.
40
+ * @param border1 The border width leading into the corner.
41
+ * @param border2 The border width leading out of the corner.
36
42
  */
37
43
  const drawCornerArc = (cx, cy, radius, startAngle, endAngle, border1, border2) => {
38
44
  if (radius <= 0)
@@ -68,12 +74,11 @@ const drawBorders = ({ ctx, node, x, y, width, height, radii, borderColor, borde
68
74
  };
69
75
  /**
70
76
  * Draws a straight line segment for the border.
71
- *
72
- * @param x1 - The x-coordinate of the starting point.
73
- * @param y1 - The y-coordinate of the starting point.
74
- * @param x2 - The x-coordinate of the ending point.
75
- * @param y2 - The y-coordinate of the ending point.
76
- * @param borderWidth - The width of the border.
77
+ * @param x1 The x-coordinate of the starting point.
78
+ * @param y1 The y-coordinate of the starting point.
79
+ * @param x2 The x-coordinate of the ending point.
80
+ * @param y2 The y-coordinate of the ending point.
81
+ * @param borderWidth The width of the border.
77
82
  */
78
83
  const drawLine = (x1, y1, x2, y2, borderWidth) => {
79
84
  if (borderWidth <= 0)
@@ -101,34 +106,34 @@ const drawBorders = ({ ctx, node, x, y, width, height, radii, borderColor, borde
101
106
  // For content-box, coordinates are offset *outwards* from x, y, width, height
102
107
  if (boxSizing === Style.BoxSizing.ContentBox) {
103
108
  // Top line segment
104
- drawLine(x + rTL, y - halfBt, x + width - rTR, y - halfBt, borderTop);
109
+ void drawLine(x + rTL, y - halfBt, x + width - rTR, y - halfBt, borderTop);
105
110
  // Right line segment
106
- drawLine(x + width + halfBr, y + rTR, x + width + halfBr, y + height - rBR, borderRight);
111
+ void drawLine(x + width + halfBr, y + rTR, x + width + halfBr, y + height - rBR, borderRight);
107
112
  // Bottom line segment
108
- drawLine(x + width - rBR, y + height + halfBb, x + rBL, y + height + halfBb, borderBottom);
113
+ void drawLine(x + width - rBR, y + height + halfBb, x + rBL, y + height + halfBb, borderBottom);
109
114
  // Left line segment
110
- drawLine(x - halfBl, y + height - rBL, x - halfBl, y + rTL, borderLeft);
111
- drawCornerArc(x + rTL, y + rTL, rTL, Math.PI, 1.5 * Math.PI, borderLeft, borderTop);
112
- drawCornerArc(x + width - rTR, y + rTR, rTR, 1.5 * Math.PI, 2 * Math.PI, borderTop, borderRight);
113
- drawCornerArc(x + width - rBR, y + height - rBR, rBR, 0, 0.5 * Math.PI, borderRight, borderBottom);
114
- drawCornerArc(x + rBL, y + height - rBL, rBL, 0.5 * Math.PI, Math.PI, borderBottom, borderLeft);
115
+ void drawLine(x - halfBl, y + height - rBL, x - halfBl, y + rTL, borderLeft);
116
+ void drawCornerArc(x + rTL, y + rTL, rTL, Math.PI, 1.5 * Math.PI, borderLeft, borderTop);
117
+ void drawCornerArc(x + width - rTR, y + rTR, rTR, 1.5 * Math.PI, 2 * Math.PI, borderTop, borderRight);
118
+ void drawCornerArc(x + width - rBR, y + height - rBR, rBR, 0, 0.5 * Math.PI, borderRight, borderBottom);
119
+ void drawCornerArc(x + rBL, y + height - rBL, rBL, 0.5 * Math.PI, Math.PI, borderBottom, borderLeft);
115
120
  }
116
121
  else {
117
122
  // For border-box, coordinates are offset *inwards* from x, y, width, height
118
123
  // Top line segment
119
- drawLine(x + rTL, y + halfBt, x + width - rTR, y + halfBt, borderTop);
124
+ void drawLine(x + rTL, y + halfBt, x + width - rTR, y + halfBt, borderTop);
120
125
  // Right line segment
121
- drawLine(x + width - halfBr, y + rTR, x + width - halfBr, y + height - rBR, borderRight);
126
+ void drawLine(x + width - halfBr, y + rTR, x + width - halfBr, y + height - rBR, borderRight);
122
127
  // Bottom line segment
123
- drawLine(x + width - rBR, y + height - halfBb, x + rBL, y + height - halfBb, borderBottom);
128
+ void drawLine(x + width - rBR, y + height - halfBb, x + rBL, y + height - halfBb, borderBottom);
124
129
  // Left line segment
125
- drawLine(x + halfBl, y + height - rBL, x + halfBl, y + rTL, borderLeft);
130
+ void drawLine(x + halfBl, y + height - rBL, x + halfBl, y + rTL, borderLeft);
126
131
  // Draw corner arcs (centers relative to layout box corners, adjusted for inward border)
127
132
  // Pass visual radius (rTL, rTR etc.) to drawCornerArc
128
- drawCornerArc(x + rTL, y + rTL, rTL, Math.PI, 1.5 * Math.PI, borderLeft, borderTop); // Top-Left
129
- drawCornerArc(x + width - rTR, y + rTR, rTR, 1.5 * Math.PI, 2 * Math.PI, borderTop, borderRight); // Top-Right
130
- drawCornerArc(x + width - rBR, y + height - rBR, rBR, 0, 0.5 * Math.PI, borderRight, borderBottom); // Bottom-Right
131
- drawCornerArc(x + rBL, y + height - rBL, rBL, 0.5 * Math.PI, Math.PI, borderBottom, borderLeft); // Bottom-Left
133
+ void drawCornerArc(x + rTL, y + rTL, rTL, Math.PI, 1.5 * Math.PI, borderLeft, borderTop); // Top-Left
134
+ void drawCornerArc(x + width - rTR, y + rTR, rTR, 1.5 * Math.PI, 2 * Math.PI, borderTop, borderRight); // Top-Right
135
+ void drawCornerArc(x + width - rBR, y + height - rBR, rBR, 0, 0.5 * Math.PI, borderRight, borderBottom); // Bottom-Right
136
+ void drawCornerArc(x + rBL, y + height - rBL, rBL, 0.5 * Math.PI, Math.PI, borderBottom, borderLeft); // Bottom-Left
132
137
  }
133
138
  }
134
139
  };
@@ -136,13 +141,12 @@ const drawBorders = ({ ctx, node, x, y, width, height, radii, borderColor, borde
136
141
  * Draws an optimized rounded rectangle path on the canvas context.
137
142
  * Automatically clamps radius values to prevent visual artifacts based on box dimensions.
138
143
  * Uses arc-based rendering for crisp corners and consistent border appearance.
139
- *
140
- * @param ctx - The canvas 2D rendering context to draw on
141
- * @param x - Left position of the rectangle
142
- * @param y - Top position of the rectangle
143
- * @param width - Width of the rectangle
144
- * @param height - Height of the rectangle
145
- * @param radii - Corner radius values for each corner. Values are clamped to box constraints.
144
+ * @param ctx The canvas 2D rendering context to draw on
145
+ * @param x Left position of the rectangle
146
+ * @param y Top position of the rectangle
147
+ * @param width Width of the rectangle
148
+ * @param height Height of the rectangle
149
+ * @param radii Corner radius values for each corner. Values are clamped to box constraints.
146
150
  */
147
151
  const drawRoundedRectPath = (ctx, x, y, width, height, radii) => {
148
152
  if (width <= 0 || height <= 0) {
@@ -163,14 +167,10 @@ const drawRoundedRectPath = (ctx, x, y, width, height, radii) => {
163
167
  clampedTR > 0 ? ctx.arc(x + width - clampedTR, y + clampedTR, clampedTR, 1.5 * Math.PI, 0) : ctx.lineTo(x + width, y);
164
168
  // Draw right edge and bottom-right corner
165
169
  ctx.lineTo(x + width, y + height - clampedBR);
166
- clampedBR > 0
167
- ? ctx.arc(x + width - clampedBR, y + height - clampedBR, clampedBR, 0, 0.5 * Math.PI)
168
- : ctx.lineTo(x + width, y + height);
170
+ clampedBR > 0 ? ctx.arc(x + width - clampedBR, y + height - clampedBR, clampedBR, 0, 0.5 * Math.PI) : ctx.lineTo(x + width, y + height);
169
171
  // Draw bottom edge and bottom-left corner
170
172
  ctx.lineTo(x + clampedBL, y + height);
171
- clampedBL > 0
172
- ? ctx.arc(x + clampedBL, y + height - clampedBL, clampedBL, 0.5 * Math.PI, Math.PI)
173
- : ctx.lineTo(x, y + height);
173
+ clampedBL > 0 ? ctx.arc(x + clampedBL, y + height - clampedBL, clampedBL, 0.5 * Math.PI, Math.PI) : ctx.lineTo(x, y + height);
174
174
  // Draw left edge and top-left corner
175
175
  ctx.lineTo(x, y + clampedTL);
176
176
  clampedTL > 0 ? ctx.arc(x + clampedTL, y + clampedTL, clampedTL, Math.PI, 1.5 * Math.PI) : ctx.lineTo(x, y);
@@ -178,7 +178,7 @@ const drawRoundedRectPath = (ctx, x, y, width, height, radii) => {
178
178
  };
179
179
  /**
180
180
  * Calculates border radius values from props
181
- * @param radiusProp - Border radius property value
181
+ * @param radiusProp Border radius property value
182
182
  * @returns Calculated border radii for all corners
183
183
  */
184
184
  const parseBorderRadius = (radiusProp) => {
@@ -196,9 +196,8 @@ const parseBorderRadius = (radiusProp) => {
196
196
  };
197
197
  /**
198
198
  * Parses a percentage value or a number, returning the calculated value based on the base.
199
- *
200
- * @param value - The value to parse, can be a number, a percentage string, or undefined.
201
- * @param base - The base value to calculate the percentage from.
199
+ * @param value The value to parse, can be a number, a percentage string, or undefined.
200
+ * @param base The base value to calculate the percentage from.
202
201
  * @returns The parsed number, or 0 if the value is not a number or a valid percentage.
203
202
  */
204
203
  function parsePercentage(value, base) {
@@ -1,10 +1,9 @@
1
- import * as StylePropTypes from 'yoga-layout';
2
1
  import { BoxNode } from '../canvas/layout.canvas.util.js';
3
2
  import type { TextNode } from '../canvas/text.canvas.util.js';
4
3
  import type { ImageNode } from '../canvas/image.canvas.util.js';
5
4
  import type { GridNode } from '../canvas/grid.canvas.util.js';
6
5
  import type { FontVariantSetting } from 'skia-canvas';
7
- import { Style } from '../constant/common.const.js';
6
+ import * as Style from '../constant/common.const.js';
8
7
  export interface BaseProps {
9
8
  /**
10
9
  * Optional display name for debugging purposes.
@@ -156,40 +155,40 @@ export interface BoxProps extends BaseProps {
156
155
  maxHeight?: number | `${number}%`;
157
156
  /**
158
157
  * Defines the direction of the main axis for flex items within this container.
159
- * @see StylePropTypes.FlexDirection (`COLUMN`, `ROW`, `COLUMN_REVERSE`, `ROW_REVERSE`)
158
+ * @see Style.FlexDirection (`COLUMN`, `ROW`, `COLUMN_REVERSE`, `ROW_REVERSE`)
160
159
  * @default Yoga default (`COLUMN`)
161
160
  * @see https://yogalayout.dev/docs/styling/flex-direction
162
161
  */
163
- flexDirection?: StylePropTypes.FlexDirection;
162
+ flexDirection?: Style.FlexDirection;
164
163
  /**
165
164
  * 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`)
165
+ * @see Style.Justify (`FLEX_START`, `CENTER`, `FLEX_END`, `SPACE_BETWEEN`, `SPACE_AROUND`, `SPACE_EVENLY`)
167
166
  * @default Yoga default (`FLEX_START`)
168
167
  * @see https://yogalayout.dev/docs/styling/justify-content
169
168
  */
170
- justifyContent?: StylePropTypes.Justify;
169
+ justifyContent?: Style.Justify;
171
170
  /**
172
171
  * 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`)
172
+ * @see Style.Align (`AUTO`, `FLEX_START`, `CENTER`, `FLEX_END`, `STRETCH`, `BASELINE`, `SPACE_BETWEEN`, `SPACE_AROUND`)
174
173
  * @default Yoga default (`STRETCH`)
175
174
  * @see https://yogalayout.dev/docs/styling/align-items-self
176
175
  */
177
- alignItems?: StylePropTypes.Align;
176
+ alignItems?: Style.Align;
178
177
  /**
179
178
  * 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`)
179
+ * @see Style.Align (`AUTO`, `FLEX_START`, `CENTER`, `FLEX_END`, `STRETCH`, `BASELINE`, `SPACE_BETWEEN`, `SPACE_AROUND`)
181
180
  * @default Yoga default (`AUTO`) - Inherits from `alignItems`.
182
181
  * @see https://yogalayout.dev/docs/styling/align-items-self
183
182
  */
184
- alignSelf?: StylePropTypes.Align;
183
+ alignSelf?: Style.Align;
185
184
  /**
186
185
  * Defines how lines are distributed along the cross axis when `flexWrap` is `WRAP` or `WRAP_REVERSE`.
187
186
  * 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`)
187
+ * @see Style.Align (`AUTO`, `FLEX_START`, `CENTER`, `FLEX_END`, `STRETCH`, `BASELINE`, `SPACE_BETWEEN`, `SPACE_AROUND`)
189
188
  * @default Yoga default (`FLEX_START`)
190
189
  * @see https://yogalayout.dev/docs/styling/align-content
191
190
  */
192
- alignContent?: StylePropTypes.Align;
191
+ alignContent?: Style.Align;
193
192
  /**
194
193
  * Defines the ability of a flex item to grow if necessary, relative to other items.
195
194
  * A non-negative number indicating the proportion of available space the item should take.
@@ -215,11 +214,11 @@ export interface BoxProps extends BaseProps {
215
214
  * Specifies the positioning method used for the node.
216
215
  * `RELATIVE`: Positioned according to the normal flow, then offset relative to that position.
217
216
  * `ABSOLUTE`: Positioned relative to its nearest positioned ancestor (or the root). Layout calculation ignores this node.
218
- * @see StylePropTypes.PositionType (`RELATIVE`, `ABSOLUTE`)
217
+ * @see Style.PositionType (`RELATIVE`, `ABSOLUTE`)
219
218
  * @default Yoga default (`RELATIVE`)
220
219
  * @see https://yogalayout.dev/docs/styling/position
221
220
  */
222
- positionType?: StylePropTypes.PositionType;
221
+ positionType?: Style.PositionType;
223
222
  /**
224
223
  * Specifies the offset distances for positioned elements (`positionType: 'ABSOLUTE'` or `RELATIVE`).
225
224
  * Can be a single number for all edges or an object specifying individual edges (`Top`, `Right`, `Bottom`, `Left`, `Start`, `End`).
@@ -228,7 +227,7 @@ export interface BoxProps extends BaseProps {
228
227
  * @default Yoga default (undefined for each edge)
229
228
  * @see https://yogalayout.dev/docs/styling/position
230
229
  */
231
- position?: Partial<Record<keyof typeof StylePropTypes.Edge, number | `${number}%`>> | number | `${number}%`;
230
+ position?: Partial<Record<keyof typeof Style.Edge, number | `${number}%`>> | number | `${number}%`;
232
231
  /**
233
232
  * Sets the margin space on the outside of the node's border.
234
233
  * Can be a single number for all edges or an object specifying individual edges.
@@ -236,7 +235,7 @@ export interface BoxProps extends BaseProps {
236
235
  * @default Yoga default (0 for each edge)
237
236
  * @see https://yogalayout.dev/docs/styling/margin-padding-border
238
237
  */
239
- margin?: Partial<Record<keyof typeof StylePropTypes.Edge, number | `${number}%` | 'auto'>> | number | `${number}%` | 'auto';
238
+ margin?: Partial<Record<keyof typeof Style.Edge, number | `${number}%` | 'auto'>> | number | `${number}%` | 'auto';
240
239
  /**
241
240
  * Sets the padding space on the inside of the node's border, around the content.
242
241
  * Can be a single number for all edges or an object specifying individual edges.
@@ -244,7 +243,7 @@ export interface BoxProps extends BaseProps {
244
243
  * @default Yoga default (0 for each edge)
245
244
  * @see https://yogalayout.dev/docs/styling/margin-padding-border
246
245
  */
247
- padding?: Partial<Record<keyof typeof StylePropTypes.Edge, number | `${number}%`>> | number | `${number}%`;
246
+ padding?: Partial<Record<keyof typeof Style.Edge, number | `${number}%`>> | number | `${number}%`;
248
247
  /**
249
248
  * Sets the width of the node's border.
250
249
  * Can be a single number for all edges or an object specifying individual edges.
@@ -252,7 +251,7 @@ export interface BoxProps extends BaseProps {
252
251
  * @default Yoga default (0 for each edge)
253
252
  * @see https://yogalayout.dev/docs/styling/margin-padding-border
254
253
  */
255
- border?: Partial<Record<keyof typeof StylePropTypes.Edge, number>> | number;
254
+ border?: Partial<Record<keyof typeof Style.Edge, number>> | number;
256
255
  /**
257
256
  * Sets the color of the node's border.
258
257
  * Accepts standard CSS color strings (e.g., 'red', '#FF0000', 'rgba(255,0,0,0.5)').
@@ -263,9 +262,10 @@ export interface BoxProps extends BaseProps {
263
262
  * Sets the style of the node's border.
264
263
  * @see Style.Border.Solid (0)
265
264
  * @see Style.Border.Dashed (1)
265
+ * @see Style.Border.Dotted (2)
266
266
  * @default Style.Border.Solid (set in BoxNode constructor)
267
267
  */
268
- borderStyle?: typeof Style.Border.Solid | typeof Style.Border.Dashed;
268
+ borderStyle?: typeof Style.Border.Solid | typeof Style.Border.Dashed | typeof Style.Border.Dotted;
269
269
  /**
270
270
  * Sets the radius of the node's corners, creating rounded effects.
271
271
  * Can be a single number for all corners or an object specifying individual corners (`TopLeft`, `TopRight`, `BottomLeft`, `BottomRight`).
@@ -291,51 +291,51 @@ export interface BoxProps extends BaseProps {
291
291
  * `VISIBLE`: Content is not clipped and may render outside the node's box.
292
292
  * `HIDDEN`: Content is clipped and the rest is invisible.
293
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`)
294
+ * @see Style.Overflow (`VISIBLE`, `HIDDEN`, `SCROLL`)
295
295
  * @default Yoga default (`VISIBLE`)
296
296
  * @see https://yogalayout.dev/docs/styling/overflow
297
297
  */
298
- overflow?: StylePropTypes.Overflow;
298
+ overflow?: Style.Overflow;
299
299
  /**
300
300
  * Controls whether the node and its children are included in the layout calculation and rendering.
301
301
  * `FLEX`: The node participates in a flex layout.
302
302
  * `NONE`: The node and its subtree are ignored by layout and rendering.
303
- * @see StylePropTypes.Display (`FLEX`, `NONE`)
303
+ * @see Style.Display (`FLEX`, `NONE`)
304
304
  * @default Yoga default (`FLEX`)
305
305
  * @see https://yogalayout.dev/docs/styling/display
306
306
  */
307
- display?: StylePropTypes.Display;
307
+ display?: Style.Display;
308
308
  /**
309
309
  * Sets the primary text and layout direction (Left-to-Right or Right-to-Left).
310
310
  * Affects the meaning of `Start` and `End` edges for properties like `position`, `margin`, `padding`, `border`.
311
311
  * `INHERIT`: Uses the direction of the parent node.
312
- * @see StylePropTypes.Direction (`INHERIT`, `LTR`, `RTL`)
312
+ * @see Style.Direction (`INHERIT`, `LTR`, `RTL`)
313
313
  * @default `Style.DIRECTION_LTR` (set in `setLayout`)
314
314
  * @see https://yogalayout.dev/docs/styling/layout-direction
315
315
  */
316
- direction?: StylePropTypes.Direction;
316
+ direction?: Style.Direction;
317
317
  /**
318
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`)
319
+ * @see Style.Wrap (`NO_WRAP`, `WRAP`, `WRAP_REVERSE`)
320
320
  * @default Yoga default (`NO_WRAP`)
321
321
  * @see https://yogalayout.dev/docs/styling/flex-wrap
322
322
  */
323
- flexWrap?: StylePropTypes.Wrap;
323
+ flexWrap?: Style.Wrap;
324
324
  /**
325
325
  * Defines the space between flex items along the main axis.
326
326
  * @unit Pixels.
327
327
  * @default Yoga default (0)
328
328
  * @see https://yogalayout.dev/docs/styling/gap
329
329
  */
330
- gap?: Partial<Record<keyof typeof StylePropTypes.Gutter, number | `${number}%`>> | number | `${number}%`;
330
+ gap?: Partial<Record<keyof typeof Style.Gutter, number | `${number}%`>> | number | `${number}%`;
331
331
  /**
332
332
  * Defines how the `width` and `height` properties are interpreted regarding padding and border.
333
333
  * `CONTENT_BOX`: Width/height apply only to the content area. Padding and border are added outside.
334
334
  * `BORDER_BOX`: Width/height include content, padding, and border.
335
- * @see StylePropTypes.BoxSizing (`CONTENT_BOX`, `BORDER_BOX`)
335
+ * @see Style.BoxSizing (`CONTENT_BOX`, `BORDER_BOX`)
336
336
  * @default `Style.BOX_SIZING_BORDER_BOX` (set in `setLayout`)
337
337
  */
338
- boxSizing?: StylePropTypes.BoxSizing;
338
+ boxSizing?: Style.BoxSizing;
339
339
  /**
340
340
  * Sets the background color of the node. Drawn beneath the content and padding, extending to the border edge.
341
341
  * Accepts standard CSS color strings.
@@ -650,7 +650,7 @@ export interface ImageProps extends Omit<BoxProps, 'children'> {
650
650
  onLoad?: () => void;
651
651
  /**
652
652
  * Callback function that executes when the image fails to load.
653
- * @param error - The error that occurred during loading.
653
+ * @param error The error that occurred during loading.
654
654
  */
655
655
  onError?: (error: Error) => void;
656
656
  }
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.type.d.ts","sourceRoot":"","sources":["../../../src/canvas/canvas.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas.type.d.ts","sourceRoot":"","sources":["../../../src/canvas/canvas.type.ts"],"names":[],"mappings":"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"}
@@ -12,14 +12,14 @@ export declare class GridNode extends RowNode {
12
12
  private readonly isVertical;
13
13
  /**
14
14
  * Creates a new grid layout node
15
- * @param props - Grid configuration properties
15
+ * @param props Grid configuration properties
16
16
  */
17
17
  constructor(props: GridProps);
18
18
  /**
19
19
  * Appends a child node to this grid.
20
20
  * Overridden primarily for documentation/clarity, functionality is inherited.
21
- * @param child - Child node to append
22
- * @param index - Index at which to insert the child
21
+ * @param child Child node to append
22
+ * @param index Index at which to insert the child
23
23
  */
24
24
  protected appendChild(child: BoxNode, index: number): void;
25
25
  /**
@@ -32,7 +32,7 @@ export declare class GridNode extends RowNode {
32
32
  }
33
33
  /**
34
34
  * Factory function to create a new GridNode instance.
35
- * @param props - Grid configuration properties.
35
+ * @param props Grid configuration properties.
36
36
  * @returns A new GridNode instance.
37
37
  */
38
38
  export declare const Grid: (props: GridProps) => GridNode;
@@ -1 +1 @@
1
- {"version":3,"file":"grid.canvas.util.d.ts","sourceRoot":"","sources":["../../../src/canvas/grid.canvas.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAGjE;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;;OAGG;gBACS,KAAK,EAAE,SAAS;IAsD5B;;;;;OAKG;cACgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IAI5D;;;;;OAKG;cACgB,+BAA+B;CAsMnD;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,aAAwB,CAAA"}
1
+ {"version":3,"file":"grid.canvas.util.d.ts","sourceRoot":"","sources":["../../../src/canvas/grid.canvas.util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAGjE;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;;OAGG;gBACS,KAAK,EAAE,SAAS;IAqE5B;;;;;OAKG;cACgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IAI5D;;;;;OAKG;cACgB,+BAA+B;CAwLnD;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,aAAwB,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { RowNode } from './layout.canvas.util.js';
2
2
  import { Style } from '../constant/common.const.js';
3
3
 
4
+ // TODO: Add comprehensive unit tests for this file.
4
5
  /**
5
6
  * Grid layout node that arranges children in a configurable number of columns or rows.
6
7
  * Uses Yoga's flexbox capabilities with wrapping and gap properties to simulate a grid.
@@ -13,7 +14,7 @@ class GridNode extends RowNode {
13
14
  isVertical; // True if the main axis is vertical (flexDirection: column or column-reverse)
14
15
  /**
15
16
  * Creates a new grid layout node
16
- * @param props - Grid configuration properties
17
+ * @param props Grid configuration properties
17
18
  */
18
19
  constructor(props) {
19
20
  const columns = Math.max(1, props.columns || 1);
@@ -58,17 +59,33 @@ class GridNode extends RowNode {
58
59
  ...props,
59
60
  // Explicitly remove the 'direction' prop passed to super, as it's handled by flexDirection
60
61
  direction: undefined,
62
+ // Pass undefined for gap to prevent BoxNode from trying to parse it
63
+ gap: undefined,
61
64
  });
62
65
  this.columns = columns;
63
66
  this.columnGapValue = columnGap;
64
67
  this.rowGapValue = rowGap;
65
68
  this.isVertical = isVertical;
69
+ // Explicitly set gaps on this.node after super() call
70
+ // These will be updated again in updateLayoutBasedOnComputedSize, but this ensures initial setup
71
+ if (typeof columnGap === 'number') {
72
+ this.node.setGap(Style.Gutter.Column, columnGap);
73
+ }
74
+ else if (typeof columnGap === 'string' && columnGap.endsWith('%')) {
75
+ this.node.setGapPercent(Style.Gutter.Column, parseFloat(columnGap));
76
+ }
77
+ if (typeof rowGap === 'number') {
78
+ this.node.setGap(Style.Gutter.Row, rowGap);
79
+ }
80
+ else if (typeof rowGap === 'string' && rowGap.endsWith('%')) {
81
+ this.node.setGapPercent(Style.Gutter.Row, parseFloat(rowGap));
82
+ }
66
83
  }
67
84
  /**
68
85
  * Appends a child node to this grid.
69
86
  * Overridden primarily for documentation/clarity, functionality is inherited.
70
- * @param child - Child node to append
71
- * @param index - Index at which to insert the child
87
+ * @param child Child node to append
88
+ * @param index Index at which to insert the child
72
89
  */
73
90
  appendChild(child, index) {
74
91
  super.appendChild(child, index);
@@ -251,7 +268,7 @@ class GridNode extends RowNode {
251
268
  }
252
269
  /**
253
270
  * Factory function to create a new GridNode instance.
254
- * @param props - Grid configuration properties.
271
+ * @param props Grid configuration properties.
255
272
  * @returns A new GridNode instance.
256
273
  */
257
274
  const Grid = (props) => new GridNode(props);
@@ -15,7 +15,6 @@ export declare class ImageNode extends BoxNode {
15
15
  /**
16
16
  * Loads and processes an image from various sources (URL, file path, or Buffer).
17
17
  * Handles SVG color modifications and sets natural dimensions with an aspect ratio.
18
- *
19
18
  * @returns Promise that resolves when image loading completes
20
19
  * @throws Error if image loading fails
21
20
  */
@@ -1 +1 @@
1
- {"version":3,"file":"image.canvas.util.d.ts","sourceRoot":"","sources":["../../../src/canvas/image.canvas.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,KAAK,wBAAwB,EAAmC,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAsBxD;;;GAGG;AACH,qBAAa,SAAU,SAAQ,OAAO;IAC5B,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;IACrC,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;gBAEhD,KAAK,EAAE,UAAU;IAc7B;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IAoHX,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzC;;;OAGG;cACgB,cAAc,CAC/B,GAAG,EAAE,wBAAwB,EAC7B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM;CAuJjB;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,UAAU,cAAyB,CAAA"}
1
+ {"version":3,"file":"image.canvas.util.d.ts","sourceRoot":"","sources":["../../../src/canvas/image.canvas.util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,KAAK,wBAAwB,EAAmC,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAsBxD;;;GAGG;AACH,qBAAa,SAAU,SAAQ,OAAO;IAC5B,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;IACrC,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;gBAEhD,KAAK,EAAE,UAAU;IAc7B;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IA8GX,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzC;;;OAGG;cACgB,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAoJrH;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,UAAU,cAAyB,CAAA"}