@cardanvil/frame-kit 0.4.0 → 0.5.0

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.
@@ -23,6 +23,17 @@ export const TextBoxSchema = BoundsSchema.extend({
23
23
  * true when omitted (matches the original behavior). Set to false to
24
24
  * disable the shadow (e.g. flipside mana-cost badges on light backgrounds). */
25
25
  shadow: z.boolean().optional(),
26
+ /** Shaped-text mask: a full-canvas-sized PNG whose opaque pixels define the
27
+ * region text in this box may occupy. Alpha is what matters (any pixel with
28
+ * alpha > ~12% counts as inside), so color is irrelevant. Each wrapped line
29
+ * is measured against the mask's horizontal extent at the line's vertical
30
+ * band instead of the box's plain rectangle; lines are aligned/centered
31
+ * within that extent. The box still bounds everything: a mask region wider
32
+ * than the box is clamped to it, and a mask region narrower than the box
33
+ * shrinks the usable width. When the box has no width at a line's vertical
34
+ * position (the shape is absent there), the line falls back to the full box
35
+ * width. */
36
+ mask: AssetUrlSchema.optional(),
26
37
  });
27
38
  export const CardBoxesSchema = z.object({
28
39
  art: BoundsSchema,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cardanvil/frame-kit",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "The contract Card Anvil frames are authored against: schemas, types, authoring helpers, and the distributable manifest format.",
5
5
  "license": "MIT",
6
6
  "type": "module",