@colixsystems/widget-sdk 0.43.0 → 0.44.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.
package/README.md CHANGED
@@ -49,7 +49,11 @@ See the design reference for the full architecture: [`docs/architecture/widget-m
49
49
 
50
50
  ## Status
51
51
 
52
- `v0.43.0` — pre-publish. The package surface (types, function names, export paths) is the v1 contract; runtime behaviour for some hooks is stubbed (each hook documents what's wired and what isn't). It is **not yet published to npm**.
52
+ `v0.44.0` — pre-publish. The package surface (types, function names, export paths) is the v1 contract; runtime behaviour for some hooks is stubbed (each hook documents what's wired and what isn't). It is **not yet published to npm**.
53
+
54
+ ### What's new in 0.44.0
55
+
56
+ **Vetted `@shopify/react-native-skia` for canvas-style graphics & games (sc-1270).** Widgets that need true 2D/GPU canvas drawing (games, custom visualisations) can now `import` Skia. It is **native-only** (`platforms: ["native"]`, like `react-native-maps` / `lottie-react-native`): author it in `widget.native.jsx` and pair it with a web variant in `widget.web.jsx` — a browser `<canvas>` or `react-native-svg`. This closes the gap where a raw `<canvas>` rendered in the web Player but crashed the Expo export ("View config getter callback for component `canvas` … received undefined") because React Native has no `<canvas>`. The compiler pins `@shopify/react-native-skia` in the exported app's `package.json`; no host shim is added (native-only packages are never shimmed, and there is no Skia web build wired into the Player). Unified Skia-on-web (CanvasKit/WASM) is a documented follow-up. Additive — `CONTRACT.version` bumped to 1.31.0.
53
57
 
54
58
  ### What's new in 0.43.0
55
59
 
package/dist/contract.cjs CHANGED
@@ -1162,6 +1162,13 @@ const VETTED_IMPORTS = [
1162
1162
  description:
1163
1163
  "Cross-platform SVG drawing primitives. Used by the built-in Chart widget; works on both platforms.",
1164
1164
  },
1165
+ {
1166
+ specifier: "@shopify/react-native-skia",
1167
+ platforms: ["native"],
1168
+ category: "drawing",
1169
+ description:
1170
+ "Canvas-style 2D/GPU drawing & animation (games, custom graphics) on native. Native-only — author it in widget.native.jsx and pair it with a web variant in widget.web.jsx (a <canvas> or react-native-svg). There is no Skia web build wired into the Player.",
1171
+ },
1165
1172
  {
1166
1173
  specifier: "lucide-react-native",
1167
1174
  platforms: ["web", "native"],
@@ -1658,7 +1665,14 @@ const CONTRACT = deepFreeze({
1658
1665
  // hosts) and unwraps `{ data, meta }`. New required field on the
1659
1666
  // `assets` context slice: `list: "function"`. No existing hook,
1660
1667
  // primitive, manifest field, or token changed shape — minor bump.
1661
- version: "1.30.0",
1668
+ //
1669
+ // 1.31.0: additive (sc-1270) — vetted `@shopify/react-native-skia` for
1670
+ // canvas-style 2D/GPU drawing & games. Native-only (platforms:
1671
+ // ["native"]); authors pair it with a <canvas>/react-native-svg web
1672
+ // variant in widget.web.jsx. Pinned in the compiler's export
1673
+ // package.json; no host shim (native-only is never shimmed). No hook,
1674
+ // primitive, manifest field, or token changed shape — minor bump.
1675
+ version: "1.31.0",
1662
1676
  sharedTranslationKeys: SHARED_TRANSLATION_KEYS,
1663
1677
  hooks: HOOKS,
1664
1678
  primitives: PRIMITIVES,
package/dist/contract.js CHANGED
@@ -1162,6 +1162,13 @@ const VETTED_IMPORTS = [
1162
1162
  description:
1163
1163
  "Cross-platform SVG drawing primitives. Used by the built-in Chart widget; works on both platforms.",
1164
1164
  },
1165
+ {
1166
+ specifier: "@shopify/react-native-skia",
1167
+ platforms: ["native"],
1168
+ category: "drawing",
1169
+ description:
1170
+ "Canvas-style 2D/GPU drawing & animation (games, custom graphics) on native. Native-only — author it in widget.native.jsx and pair it with a web variant in widget.web.jsx (a <canvas> or react-native-svg). There is no Skia web build wired into the Player.",
1171
+ },
1165
1172
  {
1166
1173
  specifier: "lucide-react-native",
1167
1174
  platforms: ["web", "native"],
@@ -1658,7 +1665,14 @@ const CONTRACT = deepFreeze({
1658
1665
  // hosts) and unwraps `{ data, meta }`. New required field on the
1659
1666
  // `assets` context slice: `list: "function"`. No existing hook,
1660
1667
  // primitive, manifest field, or token changed shape — minor bump.
1661
- version: "1.30.0",
1668
+ //
1669
+ // 1.31.0: additive (sc-1270) — vetted `@shopify/react-native-skia` for
1670
+ // canvas-style 2D/GPU drawing & games. Native-only (platforms:
1671
+ // ["native"]); authors pair it with a <canvas>/react-native-svg web
1672
+ // variant in widget.web.jsx. Pinned in the compiler's export
1673
+ // package.json; no host shim (native-only is never shimmed). No hook,
1674
+ // primitive, manifest field, or token changed shape — minor bump.
1675
+ version: "1.31.0",
1662
1676
  sharedTranslationKeys: SHARED_TRANSLATION_KEYS,
1663
1677
  hooks: HOOKS,
1664
1678
  primitives: PRIMITIVES,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@colixsystems/widget-sdk",
3
- "version": "0.43.0",
3
+ "version": "0.44.0",
4
4
  "description": "Common widget interface for AppStudio. Implements WidgetManifest, WidgetContext, property schema, and helper hooks.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",