@shoplix-ai/block-kit 5.50.0 → 5.52.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
@@ -39,14 +39,26 @@ written against this package and nothing else from the runtime. It holds:
39
39
  phone has answered) and the tap that hides it until the next completed
40
40
  checkout, and for a block that draws the decision as a switch, the phone's
41
41
  answer (`permission`) and whether its settings page would not open
42
- (`settingsUnreachable`), both absent on a host written before them. Then the nine of the shopper's own
43
- account: `signIn` (with the email the shopper typed, where a block has one,
44
- as the hint Shopify's hosted step opens with), `signOut`, `updateProfile` (the names, the email marketing
42
+ (`settingsUnreachable`), both absent on a host written before them. Then
43
+ `pickOptions`, with which a Shop's own buy box tells the host the options the
44
+ shopper picked for the screen's product, by option name: the host writes them
45
+ to the screen's variant selection, so the platform's product summary price
46
+ and add bar follow the pick (an option left out stays as the screen holds
47
+ it, and a screen with no product takes nothing). It is the one capability
48
+ typed optional: a host that hands none leaves it absent, so a block checks
49
+ for it (`capabilities.pickOptions?.(options)`) and keeps its pick to itself
50
+ where it is not there, as every Code Block did. A phone build written before
51
+ it cannot read a Block Definition that declares it and draws no block for
52
+ that type, so a design that places such a block is for builds that carry it.
53
+ Then the nine of the shopper's own account: `signIn` (with the email the
54
+ shopper typed, where a block has one, as the hint Shopify's hosted step
55
+ opens with), `signOut`, `updateProfile` (the names, the email marketing
45
56
  choice and the Profile Fields), `addAddress`, `updateAddress`,
46
57
  `deleteAddress`, `setDefaultAddress` (each address by its id, the fields the
47
58
  Address Sheet sends), `buyAgain` (an order's own lines back into the cart)
48
59
  and `deleteAccount`. Closed, and the same list the schema package lets a
49
- Block Definition declare. A cart or account capability resolves once Shopify
60
+ Block Definition declare. A capability a block can check for and go without
61
+ joins in a minor; one every block must be handed is a new major. A cart or account capability resolves once Shopify
50
62
  accepted the change it asked for and rejects with a `CapabilityRefusal`: the
51
63
  outcome (`refused`, `not_found`, `failed`) and the messages that came with
52
64
  it, Shopify's own or the host's where Shopify sent none. A quantity over the
@@ -383,9 +395,10 @@ written against this package and nothing else from the runtime. It holds:
383
395
  ## The rendering libraries a Code Block may import
384
396
 
385
397
  Beside this package, the schema package, React and React Native, a Shop
386
- package's Code Blocks may import five rendering libraries the app already
398
+ package's Code Blocks may import six rendering libraries the app already
387
399
  ships: `react-native-svg`, `react-native-reanimated`,
388
- `react-native-gesture-handler`, `expo-image` and `expo-linear-gradient`. This
400
+ `react-native-gesture-handler`, `expo-image`, `expo-linear-gradient` and
401
+ `expo-video`, the app's own player. This
389
402
  package names them, with the app's own ranges, under
390
403
  `shoplix.renderingLibraries` in its `package.json`, the one place the ranges
391
404
  are written.
@@ -399,7 +412,7 @@ on.
399
412
 
400
413
  The ranges are part of the contract. A major of any library is a major of this
401
414
  package, and the api's `RUNTIME_CONTRACT_MAJOR` follows it; a test holds the
402
- majors of the five to the ones written down for the contract major, so a
415
+ majors of the six to the ones written down for the contract major, so a
403
416
  library major that moves alone fails. They are named here rather than as this
404
417
  package's own peer dependencies: every workspace that depends on the contract
405
418
  would otherwise install them, the api and the dashboard images among them.
@@ -532,11 +545,13 @@ export default defineCodeBlock({
532
545
 
533
546
  The name comes from `SKELETON_SHAPES`: `product_card`, `product_grid`,
534
547
  `product_rail`, `collection_row`, `collection_circles`, `category_grid`,
535
- `gallery`, `product_summary`, `option_chips`, `buy_box`, `action_bar`,
536
- `cart_lines`, `order_card`, `address_list`, `deliver_to` and `text_lines`. The
537
- phone draws that shape with the platform block's own defaults. A Code Block's
538
- settings never change a named shape. To follow a setting, pick the name with a
539
- function, as below.
548
+ `gallery`, `gallery_portrait`, `product_summary`, `option_chips`, `buy_box`,
549
+ `action_bar`, `cart_lines`, `order_card`, `address_list`, `deliver_to` and
550
+ `text_lines`. The phone draws that shape with the platform block's own
551
+ defaults, `gallery` square and `gallery_portrait` cut at 4:5 for a gallery of
552
+ portrait photos. A build before `gallery_portrait` draws nothing for it, as for
553
+ any name it does not know. A Code Block's settings never change a named shape.
554
+ To follow a setting, pick the name with a function, as below.
540
555
 
541
556
  A block whose look follows a setting picks the shape from its own settings
542
557
  instead. The function receives the settings the document holds, typed from the
@@ -1,14 +1,17 @@
1
1
  import { type AddressDisplay, type BlockCapabilityName, type CartAttribute, type CustomerDisplay } from '@shoplix-ai/sdui-schema';
2
+ import type { OptionSelections } from './variant-choice.js';
2
3
  /**
3
4
  * The closed capability set. A renderer reaches commerce only through the
4
- * first nine, the shopper's notification decision through the tenth, and
5
- * their own account through the last nine; the Storefront token, the Account
6
- * Session, the cart id and navigation never cross the contract. The set is
7
- * code, never document content, and it does not grow without a new contract
8
- * major. The schema package names the same list, so a Block Definition can
9
- * declare only what a renderer can be handed.
5
+ * first nine, the shopper's notification decision through the tenth, the
6
+ * screen's variant selection through the eleventh, and their own account
7
+ * through the last nine; the Storefront token, the Account Session, the cart
8
+ * id and navigation never cross the contract. The set is code, never document
9
+ * content. A capability a block may check for and go without joins in a
10
+ * minor, and one every block must be handed is a new contract major. The
11
+ * schema package names the same list, so a Block Definition can declare only
12
+ * what a renderer can be handed.
10
13
  */
11
- export declare const CAPABILITY_NAMES: readonly ["addToCart", "openCart", "beginCheckout", "setLineQuantity", "removeLines", "applyDiscountCode", "removeDiscountCode", "setCartNote", "setLineAttributes", "notificationInvitation", "signIn", "signOut", "updateProfile", "addAddress", "updateAddress", "deleteAddress", "setDefaultAddress", "buyAgain", "deleteAccount"];
14
+ export declare const CAPABILITY_NAMES: readonly ["addToCart", "openCart", "beginCheckout", "setLineQuantity", "removeLines", "applyDiscountCode", "removeDiscountCode", "setCartNote", "setLineAttributes", "notificationInvitation", "pickOptions", "signIn", "signOut", "updateProfile", "addAddress", "updateAddress", "deleteAddress", "setDefaultAddress", "buyAgain", "deleteAccount"];
12
15
  export type CapabilityName = BlockCapabilityName;
13
16
  export interface CartLineInput {
14
17
  readonly variantId: string;
@@ -95,6 +98,15 @@ export interface Capabilities {
95
98
  readonly setCartNote: (note: string) => Promise<void>;
96
99
  readonly setLineAttributes: (input: CartLineAttributesInput) => Promise<void>;
97
100
  readonly notificationInvitation: NotificationInvitation;
101
+ /**
102
+ * Tells the host the options the shopper picked for the screen's product, by
103
+ * option name, so the platform's summary and add bar follow a pick a block
104
+ * keeps in its own buy box. An option named here replaces the one the
105
+ * screen holds, and one left out stays as it is. Nothing happens on a screen
106
+ * with no product behind it. Absent on a host written before it: a block
107
+ * checks for it and keeps its pick to itself where it is not there.
108
+ */
109
+ readonly pickOptions?: (options: OptionSelections) => void;
98
110
  readonly signIn: (input?: SignInInput) => Promise<void>;
99
111
  readonly signOut: () => Promise<void>;
100
112
  readonly updateProfile: (input: ProfileUpdateInput) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,wUAAyB,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CAC/C;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,UAAU,GAAG,uBAAuB,GAAG,eAAe,CAAC,CAC5F,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;AAElF,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,gGAAgG;AAChG,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,sBAAsB,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACxC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,QAAQ,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,QAAQ,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,QAAQ,CAAC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,cAAc,GAAG,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AAEvF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAQnE;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAIxC,QAAQ,CAAC,OAAO,EAAE,iBAAiB;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE;IAJtC,SAAkB,IAAI,uBAAuB;gBAGlC,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,SAAS,MAAM,EAAE;CAIvC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAU9E"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,uVAAyB,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CAC/C;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,UAAU,GAAG,uBAAuB,GAAG,eAAe,CAAC,CAC5F,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;AAElF,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,gGAAgG;AAChG,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,sBAAsB,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACxC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,QAAQ,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IACxD;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,QAAQ,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,QAAQ,CAAC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,cAAc,GAAG,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AAEvF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAQnE;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAIxC,QAAQ,CAAC,OAAO,EAAE,iBAAiB;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE;IAJtC,SAAkB,IAAI,uBAAuB;gBAGlC,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,SAAS,MAAM,EAAE;CAIvC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAU9E"}
@@ -1,12 +1,14 @@
1
1
  import { BLOCK_CAPABILITY_NAMES, } from '@shoplix-ai/sdui-schema';
2
2
  /**
3
3
  * The closed capability set. A renderer reaches commerce only through the
4
- * first nine, the shopper's notification decision through the tenth, and
5
- * their own account through the last nine; the Storefront token, the Account
6
- * Session, the cart id and navigation never cross the contract. The set is
7
- * code, never document content, and it does not grow without a new contract
8
- * major. The schema package names the same list, so a Block Definition can
9
- * declare only what a renderer can be handed.
4
+ * first nine, the shopper's notification decision through the tenth, the
5
+ * screen's variant selection through the eleventh, and their own account
6
+ * through the last nine; the Storefront token, the Account Session, the cart
7
+ * id and navigation never cross the contract. The set is code, never document
8
+ * content. A capability a block may check for and go without joins in a
9
+ * minor, and one every block must be handed is a new contract major. The
10
+ * schema package names the same list, so a Block Definition can declare only
11
+ * what a renderer can be handed.
10
12
  */
11
13
  export const CAPABILITY_NAMES = BLOCK_CAPABILITY_NAMES;
12
14
  const OUTCOMES = new Set([
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAKvB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAyHvD,MAAM,QAAQ,GAAwB,IAAI,GAAG,CAAoB;IAC/D,SAAS;IACT,WAAW;IACX,QAAQ;CACT,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAI/B;IACA;IAJO,IAAI,GAAG,mBAAmB,CAAC;IAE7C,YACW,OAA0B,EAC1B,QAA2B;QAEpC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAHjD,YAAO,GAAP,OAAO,CAAmB;QAC1B,aAAQ,GAAR,QAAQ,CAAmB;IAGtC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,KAAkE,CAAC;IAC/E,OAAO,CACL,GAAG,CAAC,IAAI,KAAK,mBAAmB;QAChC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAC/B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3B,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAC7D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAKvB,MAAM,yBAAyB,CAAC;AAGjC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAkIvD,MAAM,QAAQ,GAAwB,IAAI,GAAG,CAAoB;IAC/D,SAAS;IACT,WAAW;IACX,QAAQ;CACT,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAI/B;IACA;IAJO,IAAI,GAAG,mBAAmB,CAAC;IAE7C,YACW,OAA0B,EAC1B,QAA2B;QAEpC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAHjD,YAAO,GAAP,OAAO,CAAmB;QAC1B,aAAQ,GAAR,QAAQ,CAAmB;IAGtC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,KAAkE,CAAC;IAC/E,OAAO,CACL,GAAG,CAAC,IAAI,KAAK,mBAAmB;QAChC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAC/B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3B,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAC7D,CAAC;AACJ,CAAC"}
@@ -5,7 +5,7 @@ import type { BlockSettings } from './contract.js';
5
5
  * block each one is named for. A Code Block names one, or picks one from its
6
6
  * own settings, and the host draws it as it draws the platform block's own.
7
7
  */
8
- export declare const SKELETON_SHAPES: readonly ["product_card", "product_grid", "product_rail", "collection_row", "collection_circles", "category_grid", "gallery", "product_summary", "option_chips", "buy_box", "action_bar", "cart_lines", "order_card", "address_list", "deliver_to", "text_lines"];
8
+ export declare const SKELETON_SHAPES: readonly ["product_card", "product_grid", "product_rail", "collection_row", "collection_circles", "category_grid", "gallery", "gallery_portrait", "product_summary", "option_chips", "buy_box", "action_bar", "cart_lines", "order_card", "address_list", "deliver_to", "text_lines"];
9
9
  export type SkeletonShapeName = (typeof SKELETON_SHAPES)[number];
10
10
  /** A shape, or a function of the block's own settings that picks one or none. */
11
11
  export type SkeletonChoice<TSettings extends BlockSettings = BlockSettings> = SkeletonShapeName | ((settings: TSettings) => SkeletonShapeName | undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../src/skeleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,mQAiBlB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,iFAAiF;AACjF,MAAM,MAAM,cAAc,CAAC,SAAS,SAAS,aAAa,GAAG,aAAa,IACxE,iBAAiB,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,KAAK,iBAAiB,GAAG,SAAS,CAAC,CAAC;AAQ/E;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,GAAG,SAAS,EAClC,QAAQ,EAAE,aAAa,GACtB,iBAAiB,GAAG,IAAI,CAO1B"}
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../src/skeleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,uRAkBlB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,iFAAiF;AACjF,MAAM,MAAM,cAAc,CAAC,SAAS,SAAS,aAAa,GAAG,aAAa,IACxE,iBAAiB,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,KAAK,iBAAiB,GAAG,SAAS,CAAC,CAAC;AAQ/E;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,GAAG,SAAS,EAClC,QAAQ,EAAE,aAAa,GACtB,iBAAiB,GAAG,IAAI,CAO1B"}
package/dist/skeleton.js CHANGED
@@ -12,6 +12,7 @@ export const SKELETON_SHAPES = [
12
12
  'collection_circles',
13
13
  'category_grid',
14
14
  'gallery',
15
+ 'gallery_portrait',
15
16
  'product_summary',
16
17
  'option_chips',
17
18
  'buy_box',
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../src/skeleton.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,cAAc;IACd,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,oBAAoB;IACpB,eAAe;IACf,SAAS;IACT,iBAAiB;IACjB,cAAc;IACd,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,YAAY;CACJ,CAAC;AAQX,MAAM,KAAK,GAAwB,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;AAE5D,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAA2B,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAkC,EAClC,QAAuB;IAEvB,IAAI,OAAO,MAAM,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../src/skeleton.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,cAAc;IACd,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,oBAAoB;IACpB,eAAe;IACf,SAAS;IACT,kBAAkB;IAClB,iBAAiB;IACjB,cAAc;IACd,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,YAAY;CACJ,CAAC;AAQX,MAAM,KAAK,GAAwB,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;AAE5D,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAA2B,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAkC,EAClC,QAAuB;IAEvB,IAAI,OAAO,MAAM,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
package/dist/version.d.ts CHANGED
@@ -4,6 +4,6 @@
4
4
  * The major is the compatibility line: a Shop package built against another
5
5
  * major never meets this runtime, and a major bump is an announced event.
6
6
  */
7
- export declare const CONTRACT_VERSION = "5.50.0";
7
+ export declare const CONTRACT_VERSION = "5.52.0";
8
8
  export declare const CONTRACT_MAJOR = 5;
9
9
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -4,6 +4,6 @@
4
4
  * The major is the compatibility line: a Shop package built against another
5
5
  * major never meets this runtime, and a major bump is an announced event.
6
6
  */
7
- export const CONTRACT_VERSION = '5.50.0';
7
+ export const CONTRACT_VERSION = '5.52.0';
8
8
  export const CONTRACT_MAJOR = 5;
9
9
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shoplix-ai/block-kit",
3
- "version": "5.50.0",
3
+ "version": "5.52.0",
4
4
  "description": "The renderer contract every Block Type renderer is written against: what a renderer receives, how a Block Type is registered with its owner, the closed capability set, and the small helpers renderers share. Contract only, no renderers.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -26,7 +26,7 @@
26
26
  "access": "public"
27
27
  },
28
28
  "dependencies": {
29
- "@shoplix-ai/sdui-schema": "1.109.0"
29
+ "@shoplix-ai/sdui-schema": "1.110.0"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "react": ">=19.0.0"
@@ -35,6 +35,7 @@
35
35
  "renderingLibraries": {
36
36
  "expo-image": "~56.0.8",
37
37
  "expo-linear-gradient": "~56.0.4",
38
+ "expo-video": "~56.1.4",
38
39
  "react-native-gesture-handler": "~2.31.1",
39
40
  "react-native-reanimated": "4.3.1",
40
41
  "react-native-svg": "15.15.4"