@shoplix-ai/block-kit 4.1.0 → 4.2.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
@@ -68,14 +68,21 @@ written against this package and nothing else from the runtime. It holds:
68
68
  `heroBannerRadius`, `promoBannerColors` beside `promoBannerRadius`,
69
69
  `sectionHeaderColors`, `featureStripColors`,
70
70
  `announcementBarColors`, `shippingProgressColors`, `productGalleryColors`,
71
- `productSummaryColors`, `productSpecsColors` and `reviewsSlotColors`, the colour tables the
71
+ `productSummaryColors`, `productSpecsColors`, `reviewsSlotColors`,
72
+ `cartLinesColors`, `cartEmptyColors`, `cartDiscountCodeColors`,
73
+ `cartSummaryColors` and `checkoutButtonColors`, the colour tables the
72
74
  promoted blocks read on the phone and on the web alike: a theme role per part
73
75
  of the block, with a component token at `<block>.<part>` over it.
74
76
  `readableInk` is the one rule for words on a colour the merchant chose, so a
75
77
  bar cannot be white on the phone and dark on the canvas. `shippingProgress`
76
- reads how far a held cart is from a free shipping threshold, and
77
- `derivedMoney` writes a figure a block worked out for itself, in the style
78
- the theme chose and with no empty fraction, because nobody is charged it.
78
+ reads how far a held cart is from a free shipping threshold, `cartSavings`
79
+ what its lines save against their compare-at prices, `compareAtUnit` what one
80
+ unit of a line cost before its discount, `cartItemCount` how many
81
+ items it holds in the form the buyer's language counts that number in.
82
+ `derivedPrice` writes a figure a block worked out for itself, in the style the
83
+ theme chose and at the currency's own places so it lines up in a column with
84
+ the ones Shopify sent; `derivedMoney` is the same figure with an empty
85
+ fraction dropped, for a line nobody is charged.
79
86
 
80
87
  ## The theme a renderer receives
81
88
 
@@ -0,0 +1,37 @@
1
+ import type { ThemeStyle } from '@shoplix-ai/sdui-schema';
2
+ /** The parts of the discount code card, each with the theme role it draws unless a component token names another. */
3
+ declare const CART_DISCOUNT_CODE_ROLES: {
4
+ readonly card: "elevated";
5
+ readonly border: "border";
6
+ readonly title: "text";
7
+ readonly applied_surface: "sunken";
8
+ readonly applied_border: "success";
9
+ readonly applied_ink: "success";
10
+ readonly applied_mark: "success";
11
+ readonly applied_remove: "sunken";
12
+ readonly refused_surface: "sunken";
13
+ readonly refused_border: "action";
14
+ readonly refused_ink: "action";
15
+ readonly refused_remove: "sunken";
16
+ readonly field: "sunken";
17
+ readonly field_border: "border";
18
+ readonly field_ink: "text";
19
+ readonly field_hint: "subtle";
20
+ readonly apply: "text";
21
+ readonly apply_idle: "border";
22
+ readonly apply_idle_ink: "subtle";
23
+ readonly hint: "subtle";
24
+ readonly notice: "action";
25
+ };
26
+ export type CartDiscountCodePart = keyof typeof CART_DISCOUNT_CODE_ROLES;
27
+ export type CartDiscountCodeColors = Readonly<Record<CartDiscountCodePart, string>>;
28
+ /**
29
+ * Every colour the discount code card draws, one per part, with
30
+ * `cart_discount_code.<part>` as the escape hatch over each theme role. The
31
+ * parts prefixed `applied` are a code Shopify honoured and those prefixed
32
+ * `refused` a code it did not, so the two states are a merchant's to separate
33
+ * without a second block.
34
+ */
35
+ export declare function cartDiscountCodeColors(theme: ThemeStyle): CartDiscountCodeColors;
36
+ export {};
37
+ //# sourceMappingURL=cart-discount-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-discount-code.d.ts","sourceRoot":"","sources":["../src/cart-discount-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,qHAAqH;AACrH,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;CAsBiC,CAAC;AAEhE,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,wBAAwB,CAAC;AAEzE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;AAEpF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,sBAAsB,CAEhF"}
@@ -0,0 +1,36 @@
1
+ import { partColors } from './part-colors.js';
2
+ /** The parts of the discount code card, each with the theme role it draws unless a component token names another. */
3
+ const CART_DISCOUNT_CODE_ROLES = {
4
+ card: 'elevated',
5
+ border: 'border',
6
+ title: 'text',
7
+ applied_surface: 'sunken',
8
+ applied_border: 'success',
9
+ applied_ink: 'success',
10
+ applied_mark: 'success',
11
+ applied_remove: 'sunken',
12
+ refused_surface: 'sunken',
13
+ refused_border: 'action',
14
+ refused_ink: 'action',
15
+ refused_remove: 'sunken',
16
+ field: 'sunken',
17
+ field_border: 'border',
18
+ field_ink: 'text',
19
+ field_hint: 'subtle',
20
+ apply: 'text',
21
+ apply_idle: 'border',
22
+ apply_idle_ink: 'subtle',
23
+ hint: 'subtle',
24
+ notice: 'action',
25
+ };
26
+ /**
27
+ * Every colour the discount code card draws, one per part, with
28
+ * `cart_discount_code.<part>` as the escape hatch over each theme role. The
29
+ * parts prefixed `applied` are a code Shopify honoured and those prefixed
30
+ * `refused` a code it did not, so the two states are a merchant's to separate
31
+ * without a second block.
32
+ */
33
+ export function cartDiscountCodeColors(theme) {
34
+ return partColors(theme, 'cart_discount_code', CART_DISCOUNT_CODE_ROLES);
35
+ }
36
+ //# sourceMappingURL=cart-discount-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-discount-code.js","sourceRoot":"","sources":["../src/cart-discount-code.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,qHAAqH;AACrH,MAAM,wBAAwB,GAAG;IAC/B,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,MAAM;IACb,eAAe,EAAE,QAAQ;IACzB,cAAc,EAAE,SAAS;IACzB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE,QAAQ;IACxB,eAAe,EAAE,QAAQ;IACzB,cAAc,EAAE,QAAQ;IACxB,WAAW,EAAE,QAAQ;IACrB,cAAc,EAAE,QAAQ;IACxB,KAAK,EAAE,QAAQ;IACf,YAAY,EAAE,QAAQ;IACtB,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,MAAM;IACb,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IACxB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,QAAQ;CAC6C,CAAC;AAMhE;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAiB;IACtD,OAAO,UAAU,CAAC,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,CAAC,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { ThemeStyle } from '@shoplix-ai/sdui-schema';
2
+ /** The parts of the empty cart, each with the theme role it draws unless a component token names another. */
3
+ declare const CART_EMPTY_ROLES: {
4
+ readonly ring: "sunken";
5
+ readonly glyph: "action";
6
+ readonly badge: "text";
7
+ readonly title: "text";
8
+ readonly text: "muted";
9
+ readonly action: "action";
10
+ };
11
+ export type CartEmptyPart = keyof typeof CART_EMPTY_ROLES;
12
+ export type CartEmptyColors = Readonly<Record<CartEmptyPart, string>>;
13
+ /**
14
+ * Every colour the empty cart draws, one per part, with `cart_empty.<part>` as
15
+ * the escape hatch over each theme role. The words on the badge and on the
16
+ * button are whichever of ink and paper stands out on them.
17
+ */
18
+ export declare function cartEmptyColors(theme: ThemeStyle): CartEmptyColors;
19
+ export {};
20
+ //# sourceMappingURL=cart-empty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-empty.d.ts","sourceRoot":"","sources":["../src/cart-empty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,6GAA6G;AAC7G,QAAA,MAAM,gBAAgB;;;;;;;CAOyC,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAElE"}
@@ -0,0 +1,19 @@
1
+ import { partColors } from './part-colors.js';
2
+ /** The parts of the empty cart, each with the theme role it draws unless a component token names another. */
3
+ const CART_EMPTY_ROLES = {
4
+ ring: 'sunken',
5
+ glyph: 'action',
6
+ badge: 'text',
7
+ title: 'text',
8
+ text: 'muted',
9
+ action: 'action',
10
+ };
11
+ /**
12
+ * Every colour the empty cart draws, one per part, with `cart_empty.<part>` as
13
+ * the escape hatch over each theme role. The words on the badge and on the
14
+ * button are whichever of ink and paper stands out on them.
15
+ */
16
+ export function cartEmptyColors(theme) {
17
+ return partColors(theme, 'cart_empty', CART_EMPTY_ROLES);
18
+ }
19
+ //# sourceMappingURL=cart-empty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-empty.js","sourceRoot":"","sources":["../src/cart-empty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,6GAA6G;AAC7G,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,QAAQ;CAC6C,CAAC;AAMhE;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,OAAO,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { CartLineDisplay, ThemeStyle } from '@shoplix-ai/sdui-schema';
2
+ /** The parts of a cart line, each with the theme role it draws unless a component token names another. */
3
+ declare const CART_LINES_ROLES: {
4
+ readonly card: "elevated";
5
+ readonly border: "border";
6
+ readonly picture: "sunken";
7
+ readonly badge: "action";
8
+ readonly brand: "action";
9
+ readonly title: "text";
10
+ readonly remove_surface: "sunken";
11
+ readonly remove_ink: "text";
12
+ readonly chip_surface: "sunken";
13
+ readonly chip_ink: "subtle";
14
+ readonly price: "action";
15
+ readonly was: "subtle";
16
+ readonly step_border: "border";
17
+ readonly step_surface: "elevated";
18
+ readonly step_ink: "text";
19
+ readonly step_idle: "subtle";
20
+ readonly step_add: "action";
21
+ readonly saving: "success";
22
+ readonly notice: "action";
23
+ };
24
+ export type CartLinesPart = keyof typeof CART_LINES_ROLES;
25
+ export type CartLinesColors = Readonly<Record<CartLinesPart, string>>;
26
+ /**
27
+ * Every colour a cart line draws, one per part, with `cart_lines.<part>` as
28
+ * the escape hatch over each theme role. The ink on the percent badge is not a
29
+ * part: it is whichever of ink and paper stands out on the badge, so a
30
+ * merchant who paints the badge pale still has a legible figure on it.
31
+ */
32
+ export declare function cartLinesColors(theme: ThemeStyle): CartLinesColors;
33
+ /**
34
+ * What one unit of a line cost before the discount, from the compare-at total
35
+ * and the quantity, read off the decimal amounts alone. Null without a
36
+ * compare-at, across two currencies, or where it is no higher than what the
37
+ * buyer pays, so a line with nothing saved draws no badge and no struck price.
38
+ */
39
+ export declare function compareAtUnit(line: CartLineDisplay): number | null;
40
+ export {};
41
+ //# sourceMappingURL=cart-lines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-lines.d.ts","sourceRoot":"","sources":["../src/cart-lines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAI3E,0GAA0G;AAC1G,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;CAoByC,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAElE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAalE"}
@@ -0,0 +1,52 @@
1
+ import { moneyAmount } from './money.js';
2
+ import { partColors } from './part-colors.js';
3
+ /** The parts of a cart line, each with the theme role it draws unless a component token names another. */
4
+ const CART_LINES_ROLES = {
5
+ card: 'elevated',
6
+ border: 'border',
7
+ picture: 'sunken',
8
+ badge: 'action',
9
+ brand: 'action',
10
+ title: 'text',
11
+ remove_surface: 'sunken',
12
+ remove_ink: 'text',
13
+ chip_surface: 'sunken',
14
+ chip_ink: 'subtle',
15
+ price: 'action',
16
+ was: 'subtle',
17
+ step_border: 'border',
18
+ step_surface: 'elevated',
19
+ step_ink: 'text',
20
+ step_idle: 'subtle',
21
+ step_add: 'action',
22
+ saving: 'success',
23
+ notice: 'action',
24
+ };
25
+ /**
26
+ * Every colour a cart line draws, one per part, with `cart_lines.<part>` as
27
+ * the escape hatch over each theme role. The ink on the percent badge is not a
28
+ * part: it is whichever of ink and paper stands out on the badge, so a
29
+ * merchant who paints the badge pale still has a legible figure on it.
30
+ */
31
+ export function cartLinesColors(theme) {
32
+ return partColors(theme, 'cart_lines', CART_LINES_ROLES);
33
+ }
34
+ /**
35
+ * What one unit of a line cost before the discount, from the compare-at total
36
+ * and the quantity, read off the decimal amounts alone. Null without a
37
+ * compare-at, across two currencies, or where it is no higher than what the
38
+ * buyer pays, so a line with nothing saved draws no badge and no struck price.
39
+ */
40
+ export function compareAtUnit(line) {
41
+ const total = moneyAmount(line.compareAtTotal);
42
+ const unit = moneyAmount(line.unitPrice);
43
+ if (total === null ||
44
+ unit === null ||
45
+ line.compareAtTotal?.currencyCode !== line.unitPrice.currencyCode ||
46
+ line.quantity <= 0) {
47
+ return null;
48
+ }
49
+ const was = total / line.quantity;
50
+ return was <= unit ? null : was;
51
+ }
52
+ //# sourceMappingURL=cart-lines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-lines.js","sourceRoot":"","sources":["../src/cart-lines.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,0GAA0G;AAC1G,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,MAAM;IACb,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,MAAM;IAClB,YAAY,EAAE,QAAQ;IACtB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,QAAQ;IACf,GAAG,EAAE,QAAQ;IACb,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,UAAU;IACxB,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,QAAQ;CAC6C,CAAC;AAMhE;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,OAAO,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAqB;IACjD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,IACE,KAAK,KAAK,IAAI;QACd,IAAI,KAAK,IAAI;QACb,IAAI,CAAC,cAAc,EAAE,YAAY,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY;QACjE,IAAI,CAAC,QAAQ,IAAI,CAAC,EAClB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;IAClC,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AAClC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { CartDisplay, ThemeStyle } from '@shoplix-ai/sdui-schema';
2
+ /** The parts of the cart summary, each with the theme role it draws unless a component token names another. */
3
+ declare const CART_SUMMARY_ROLES: {
4
+ readonly card: "elevated";
5
+ readonly border: "border";
6
+ readonly title: "text";
7
+ readonly label: "muted";
8
+ readonly value: "text";
9
+ readonly saving: "success";
10
+ readonly rule: "border";
11
+ readonly note: "subtle";
12
+ readonly total_label: "text";
13
+ readonly total: "action";
14
+ };
15
+ export type CartSummaryPart = keyof typeof CART_SUMMARY_ROLES;
16
+ export type CartSummaryColors = Readonly<Record<CartSummaryPart, string>>;
17
+ /**
18
+ * Every colour the cart summary draws, one per part, with
19
+ * `cart_summary.<part>` as the escape hatch over each theme role. The total
20
+ * reads the action role, so a merchant who changes one button colour changes
21
+ * the figure the buyer is asked to pay with it.
22
+ */
23
+ export declare function cartSummaryColors(theme: ThemeStyle): CartSummaryColors;
24
+ /**
25
+ * What the lines of a cart save against their compare-at prices, in the cart's
26
+ * own currency. It is a figure the block derived from the decimal amounts
27
+ * Shopify sent, never a price and never a total: the subtotal, the discount
28
+ * and the total are Shopify's own. A line priced in another currency than the
29
+ * subtotal is skipped rather than added, because two currencies do not sum.
30
+ */
31
+ export declare function cartSavings(cart: CartDisplay): number;
32
+ export {};
33
+ //# sourceMappingURL=cart-summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-summary.d.ts","sourceRoot":"","sources":["../src/cart-summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIvE,+GAA+G;AAC/G,QAAA,MAAM,kBAAkB;;;;;;;;;;;CAWuC,CAAC;AAEhE,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAE9D,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;AAE1E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,iBAAiB,CAEtE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAUrD"}
@@ -0,0 +1,46 @@
1
+ import { moneyAmount } from './money.js';
2
+ import { partColors } from './part-colors.js';
3
+ /** The parts of the cart summary, each with the theme role it draws unless a component token names another. */
4
+ const CART_SUMMARY_ROLES = {
5
+ card: 'elevated',
6
+ border: 'border',
7
+ title: 'text',
8
+ label: 'muted',
9
+ value: 'text',
10
+ saving: 'success',
11
+ rule: 'border',
12
+ note: 'subtle',
13
+ total_label: 'text',
14
+ total: 'action',
15
+ };
16
+ /**
17
+ * Every colour the cart summary draws, one per part, with
18
+ * `cart_summary.<part>` as the escape hatch over each theme role. The total
19
+ * reads the action role, so a merchant who changes one button colour changes
20
+ * the figure the buyer is asked to pay with it.
21
+ */
22
+ export function cartSummaryColors(theme) {
23
+ return partColors(theme, 'cart_summary', CART_SUMMARY_ROLES);
24
+ }
25
+ /**
26
+ * What the lines of a cart save against their compare-at prices, in the cart's
27
+ * own currency. It is a figure the block derived from the decimal amounts
28
+ * Shopify sent, never a price and never a total: the subtotal, the discount
29
+ * and the total are Shopify's own. A line priced in another currency than the
30
+ * subtotal is skipped rather than added, because two currencies do not sum.
31
+ */
32
+ export function cartSavings(cart) {
33
+ return cart.lines.reduce((saved, line) => {
34
+ if (line.unitPrice.currencyCode !== cart.subtotal.currencyCode)
35
+ return saved;
36
+ if (line.compareAtTotal?.currencyCode !== line.unitPrice.currencyCode)
37
+ return saved;
38
+ const unit = moneyAmount(line.unitPrice);
39
+ const total = moneyAmount(line.compareAtTotal);
40
+ if (unit === null || total === null || line.quantity <= 0)
41
+ return saved;
42
+ const was = total / line.quantity;
43
+ return was <= unit ? saved : saved + (was - unit) * line.quantity;
44
+ }, 0);
45
+ }
46
+ //# sourceMappingURL=cart-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-summary.js","sourceRoot":"","sources":["../src/cart-summary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,+GAA+G;AAC/G,MAAM,kBAAkB,GAAG;IACzB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,QAAQ;CAC8C,CAAC;AAMhE;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAiB;IACjD,OAAO,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAiB;IAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACvC,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,YAAY;YAAE,OAAO,KAAK,CAAC;QAC7E,IAAI,IAAI,CAAC,cAAc,EAAE,YAAY,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY;YAAE,OAAO,KAAK,CAAC;QACpF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACxE,MAAM,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IACpE,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { ThemeStyle } from '@shoplix-ai/sdui-schema';
2
+ /** The parts of the checkout bar, each with the theme role it draws unless a component token names another. */
3
+ declare const CHECKOUT_BUTTON_ROLES: {
4
+ readonly bar: "surface";
5
+ readonly border: "border";
6
+ readonly label: "subtle";
7
+ readonly total: "text";
8
+ readonly button: "action";
9
+ readonly notice: "action";
10
+ };
11
+ export type CheckoutButtonPart = keyof typeof CHECKOUT_BUTTON_ROLES;
12
+ export type CheckoutButtonColors = Readonly<Record<CheckoutButtonPart, string>>;
13
+ /**
14
+ * Every colour the checkout bar draws, one per part, with
15
+ * `checkout_button.<part>` as the escape hatch over each theme role. The words
16
+ * on the button are whichever of ink and paper stands out on it, so a merchant
17
+ * who paints it pale still has a legible control.
18
+ */
19
+ export declare function checkoutButtonColors(theme: ThemeStyle): CheckoutButtonColors;
20
+ export {};
21
+ //# sourceMappingURL=checkout-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkout-button.d.ts","sourceRoot":"","sources":["../src/checkout-button.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,+GAA+G;AAC/G,QAAA,MAAM,qBAAqB;;;;;;;CAOoC,CAAC;AAEhE,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,qBAAqB,CAAC;AAEpE,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;AAEhF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,oBAAoB,CAE5E"}
@@ -0,0 +1,20 @@
1
+ import { partColors } from './part-colors.js';
2
+ /** The parts of the checkout bar, each with the theme role it draws unless a component token names another. */
3
+ const CHECKOUT_BUTTON_ROLES = {
4
+ bar: 'surface',
5
+ border: 'border',
6
+ label: 'subtle',
7
+ total: 'text',
8
+ button: 'action',
9
+ notice: 'action',
10
+ };
11
+ /**
12
+ * Every colour the checkout bar draws, one per part, with
13
+ * `checkout_button.<part>` as the escape hatch over each theme role. The words
14
+ * on the button are whichever of ink and paper stands out on it, so a merchant
15
+ * who paints it pale still has a legible control.
16
+ */
17
+ export function checkoutButtonColors(theme) {
18
+ return partColors(theme, 'checkout_button', CHECKOUT_BUTTON_ROLES);
19
+ }
20
+ //# sourceMappingURL=checkout-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkout-button.js","sourceRoot":"","sources":["../src/checkout-button.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,+GAA+G;AAC/G,MAAM,qBAAqB,GAAG;IAC5B,GAAG,EAAE,SAAS;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CAC6C,CAAC;AAMhE;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAiB;IACpD,OAAO,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;AACrE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -23,6 +23,16 @@ export { reviewsSlotColors } from './reviews-slot.js';
23
23
  export type { ReviewsSlotColors, ReviewsSlotPart } from './reviews-slot.js';
24
24
  export { collectionTileColors } from './collection-tile.js';
25
25
  export type { CollectionTileColors, CollectionTilePart } from './collection-tile.js';
26
+ export { cartLinesColors, compareAtUnit } from './cart-lines.js';
27
+ export type { CartLinesColors, CartLinesPart } from './cart-lines.js';
28
+ export { cartEmptyColors } from './cart-empty.js';
29
+ export type { CartEmptyColors, CartEmptyPart } from './cart-empty.js';
30
+ export { cartDiscountCodeColors } from './cart-discount-code.js';
31
+ export type { CartDiscountCodeColors, CartDiscountCodePart } from './cart-discount-code.js';
32
+ export { cartSavings, cartSummaryColors } from './cart-summary.js';
33
+ export type { CartSummaryColors, CartSummaryPart } from './cart-summary.js';
34
+ export { checkoutButtonColors } from './checkout-button.js';
35
+ export type { CheckoutButtonColors, CheckoutButtonPart } from './checkout-button.js';
26
36
  export { heroBannerColors, heroBannerRadius } from './hero-banner.js';
27
37
  export type { HeroBannerColors, HeroBannerPart } from './hero-banner.js';
28
38
  export { promoBannerColors, promoBannerRadius } from './promo-banner.js';
@@ -36,12 +46,12 @@ export type { SectionHeaderColors, SectionHeaderPart } from './section-header.js
36
46
  export type { FeatureStripColors, FeatureStripPart } from './feature-strip.js';
37
47
  export type { AnnouncementBarColors, AnnouncementBarPart } from './announcement-bar.js';
38
48
  export type { ShippingProgress, ShippingProgressColors, ShippingProgressPart, } from './shipping-progress.js';
39
- export { derivedMoney, discountPercent, formatMoney, moneyAmount, moneyParts, moneyText, } from './money.js';
49
+ export { derivedMoney, derivedPrice, discountPercent, formatMoney, moneyAmount, moneyParts, moneyText, } from './money.js';
40
50
  export type { MoneyParts } from './money.js';
41
51
  export { imageSourceFor } from './renditions.js';
42
52
  export type { ImageSource } from './renditions.js';
43
53
  export { localize, pickLocale, textDirection } from './locale.js';
44
54
  export type { ShopLanguages } from './locale.js';
45
- export { CATALOG_LANGUAGES, WORD_KEYS, platformWords } from './words.js';
55
+ export { CATALOG_LANGUAGES, WORD_KEYS, cartItemCount, platformWords } from './words.js';
46
56
  export type { PlatformWords, WordKey } from './words.js';
47
57
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -11,6 +11,11 @@ export { productSpecsColors } from './product-specs.js';
11
11
  export { productSummaryColors } from './product-summary.js';
12
12
  export { reviewsSlotColors } from './reviews-slot.js';
13
13
  export { collectionTileColors } from './collection-tile.js';
14
+ export { cartLinesColors, compareAtUnit } from './cart-lines.js';
15
+ export { cartEmptyColors } from './cart-empty.js';
16
+ export { cartDiscountCodeColors } from './cart-discount-code.js';
17
+ export { cartSavings, cartSummaryColors } from './cart-summary.js';
18
+ export { checkoutButtonColors } from './checkout-button.js';
14
19
  export { heroBannerColors, heroBannerRadius } from './hero-banner.js';
15
20
  export { promoBannerColors, promoBannerRadius } from './promo-banner.js';
16
21
  export { sectionHeaderColors } from './section-header.js';
@@ -18,8 +23,8 @@ export { featureStripColors } from './feature-strip.js';
18
23
  export { announcementBarColors } from './announcement-bar.js';
19
24
  export { aroundAmount, shippingProgress, shippingProgressColors } from './shipping-progress.js';
20
25
  export { readableInk } from './readable.js';
21
- export { derivedMoney, discountPercent, formatMoney, moneyAmount, moneyParts, moneyText, } from './money.js';
26
+ export { derivedMoney, derivedPrice, discountPercent, formatMoney, moneyAmount, moneyParts, moneyText, } from './money.js';
22
27
  export { imageSourceFor } from './renditions.js';
23
28
  export { localize, pickLocale, textDirection } from './locale.js';
24
- export { CATALOG_LANGUAGES, WORD_KEYS, platformWords } from './words.js';
29
+ export { CATALOG_LANGUAGES, WORD_KEYS, cartItemCount, platformWords } from './words.js';
25
30
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAe7F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAiB5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAG/D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG9D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACX,UAAU,EACV,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAe7F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAiB5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAG/D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG9D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACX,UAAU,EACV,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
package/dist/money.d.ts CHANGED
@@ -35,9 +35,14 @@ export declare function discountPercent(price: DisplayMoney, compareAt: DisplayM
35
35
  /**
36
36
  * A figure a block worked out for itself, written the way every other price on
37
37
  * the screen is written: through the same style, from a decimal amount, never
38
- * from a string parsed back out of a formatted price. A whole amount loses its
39
- * empty fraction, because a figure nobody is charged reads better as "add 80"
40
- * than as "add 80.00"; a price Shopify charged keeps its places.
38
+ * from a string parsed back out of a formatted price.
39
+ */
40
+ export declare function derivedPrice(amount: number, currencyCode: string, language: string, style?: MoneyStyle): MoneyParts;
41
+ /**
42
+ * The same figure with an empty fraction dropped, because a figure nobody is
43
+ * charged reads better as "add 80" than as "add 80.00". A figure standing in a
44
+ * column of prices takes `derivedPrice` instead, so it lines up with the ones
45
+ * Shopify sent.
41
46
  */
42
47
  export declare function derivedMoney(amount: number, currencyCode: string, language: string, style?: MoneyStyle): MoneyParts;
43
48
  //# sourceMappingURL=money.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AAajC;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAYf;AAoDD,qFAAqF;AACrF,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAI1E;AAyCD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,UAAgC,GACtC,UAAU,CAQZ;AAED,2DAA2D;AAC3D,wBAAgB,SAAS,CACvB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,UAAgC,GACtC,MAAM,CAGR;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,YAAY,GAAG,SAAS,GAClC,MAAM,GAAG,IAAI,CAOf;AAKD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,UAAgC,GACtC,UAAU,CAYZ"}
1
+ {"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AAajC;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAYf;AAoDD,qFAAqF;AACrF,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAI1E;AAyCD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,UAAgC,GACtC,UAAU,CAQZ;AAED,2DAA2D;AAC3D,wBAAgB,SAAS,CACvB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,UAAgC,GACtC,MAAM,CAGR;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,YAAY,GAAG,SAAS,GAClC,MAAM,GAAG,IAAI,CAOf;AAKD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,UAAgC,GACtC,UAAU,CAWZ;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,UAAgC,GACtC,UAAU,CAGZ"}
package/dist/money.js CHANGED
@@ -159,17 +159,24 @@ const DERIVED_PLACES = 6;
159
159
  /**
160
160
  * A figure a block worked out for itself, written the way every other price on
161
161
  * the screen is written: through the same style, from a decimal amount, never
162
- * from a string parsed back out of a formatted price. A whole amount loses its
163
- * empty fraction, because a figure nobody is charged reads better as "add 80"
164
- * than as "add 80.00"; a price Shopify charged keeps its places.
162
+ * from a string parsed back out of a formatted price.
165
163
  */
166
- export function derivedMoney(amount, currencyCode, language, style = DEFAULT_MONEY_STYLE) {
164
+ export function derivedPrice(amount, currencyCode, language, style = DEFAULT_MONEY_STYLE) {
167
165
  const formatted = formatMoney(amount, currencyCode, language);
168
- const parts = moneyParts({
166
+ return moneyParts({
169
167
  formatted: formatted ?? `${amount} ${currencyCode}`,
170
168
  currencyCode,
171
169
  amount: amount.toFixed(DERIVED_PLACES),
172
170
  }, language, style);
171
+ }
172
+ /**
173
+ * The same figure with an empty fraction dropped, because a figure nobody is
174
+ * charged reads better as "add 80" than as "add 80.00". A figure standing in a
175
+ * column of prices takes `derivedPrice` instead, so it lines up with the ones
176
+ * Shopify sent.
177
+ */
178
+ export function derivedMoney(amount, currencyCode, language, style = DEFAULT_MONEY_STYLE) {
179
+ const parts = derivedPrice(amount, currencyCode, language, style);
173
180
  return style.digits === 'latin' ? { ...parts, digits: parts.digits.replace(/\.0+$/, '') } : parts;
174
181
  }
175
182
  //# sourceMappingURL=money.js.map
package/dist/money.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"money.js","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"money.js","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"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"}
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 = "4.1.0";
7
+ export declare const CONTRACT_VERSION = "4.2.0";
8
8
  export declare const CONTRACT_MAJOR = 4;
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 = '4.1.0';
7
+ export const CONTRACT_VERSION = '4.2.0';
8
8
  export const CONTRACT_MAJOR = 4;
9
9
  //# sourceMappingURL=version.js.map
package/dist/words.d.ts CHANGED
@@ -19,8 +19,19 @@ declare const ENGLISH_WORDS: {
19
19
  readonly 'cart.items_in_cart': "items in the cart";
20
20
  readonly 'cart.subtotal': "Subtotal";
21
21
  readonly 'cart.discount': "Discount";
22
- readonly 'cart.line_discount': "Discount";
22
+ readonly 'cart.line_discount': "Code discount";
23
+ readonly 'cart.items_zero': "No items";
24
+ readonly 'cart.items_one': "1 item";
25
+ readonly 'cart.items_two': "{count} items";
26
+ readonly 'cart.items_few': "{count} items";
27
+ readonly 'cart.items_many': "{count} items";
28
+ readonly 'cart.items_other': "{count} items";
23
29
  readonly 'cart.total': "Total";
30
+ readonly 'cart.summary': "Order summary";
31
+ readonly 'cart.savings': "Product savings";
32
+ readonly 'cart.shipping': "Shipping";
33
+ readonly 'cart.free': "Free";
34
+ readonly 'cart.shipping_at_checkout': "calculated at checkout";
24
35
  readonly 'cart.estimated': "estimated";
25
36
  readonly 'cart.checkout': "Checkout";
26
37
  readonly 'cart.checkout_unavailable': "Checkout is unavailable right now. Please try again.";
@@ -103,6 +114,12 @@ export interface PlatformWords {
103
114
  */
104
115
  merchantOr(text: LocalizedText | undefined, key: WordKey): string;
105
116
  }
117
+ /**
118
+ * How many items a cart holds, written in the form the buyer's language counts
119
+ * that number in. English and Turkish read no item count for an empty cart as
120
+ * a plural of nothing, which is why the zero form is in the catalog too.
121
+ */
122
+ export declare function cartItemCount(count: number, language: LocaleCode, defaultLanguage: LocaleCode): string;
106
123
  /**
107
124
  * The catalog bound to one buyer: their language for the platform's own words,
108
125
  * their language and the Shop's default for a merchant's override of one.
@@ -1 +1 @@
1
- {"version":3,"file":"words.d.ts","sourceRoot":"","sources":["../src/words.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGzE;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ET,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,aAAa,CAAC;AAwKjD,sEAAsE;AACtE,eAAO,MAAM,SAAS,EAAE,SAAS,OAAO,EAA4C,CAAC;AAErF,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,EAAE,SAAS,UAAU,EAAyB,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC;CACnE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,GAAG,aAAa,CAO9F"}
1
+ {"version":3,"file":"words.d.ts","sourceRoot":"","sources":["../src/words.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGzE;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwFT,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,aAAa,CAAC;AA8LjD,sEAAsE;AACtE,eAAO,MAAM,SAAS,EAAE,SAAS,OAAO,EAA4C,CAAC;AAErF,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,EAAE,SAAS,UAAU,EAAyB,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC;CACnE;AA4BD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,UAAU,EACpB,eAAe,EAAE,UAAU,GAC1B,MAAM,CAKR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,GAAG,aAAa,CAO9F"}
package/dist/words.js CHANGED
@@ -19,8 +19,19 @@ const ENGLISH_WORDS = {
19
19
  'cart.items_in_cart': 'items in the cart',
20
20
  'cart.subtotal': 'Subtotal',
21
21
  'cart.discount': 'Discount',
22
- 'cart.line_discount': 'Discount',
22
+ 'cart.line_discount': 'Code discount',
23
+ 'cart.items_zero': 'No items',
24
+ 'cart.items_one': '1 item',
25
+ 'cart.items_two': '{count} items',
26
+ 'cart.items_few': '{count} items',
27
+ 'cart.items_many': '{count} items',
28
+ 'cart.items_other': '{count} items',
23
29
  'cart.total': 'Total',
30
+ 'cart.summary': 'Order summary',
31
+ 'cart.savings': 'Product savings',
32
+ 'cart.shipping': 'Shipping',
33
+ 'cart.free': 'Free',
34
+ 'cart.shipping_at_checkout': 'calculated at checkout',
24
35
  'cart.estimated': 'estimated',
25
36
  'cart.checkout': 'Checkout',
26
37
  'cart.checkout_unavailable': 'Checkout is unavailable right now. Please try again.',
@@ -97,8 +108,19 @@ const ARABIC_WORDS = {
97
108
  'cart.items_in_cart': 'عناصر في السلة',
98
109
  'cart.subtotal': 'المجموع الفرعي',
99
110
  'cart.discount': 'الخصم',
100
- 'cart.line_discount': 'خصم',
111
+ 'cart.line_discount': 'خصم الرمز',
112
+ 'cart.items_zero': 'لا منتجات',
113
+ 'cart.items_one': 'منتج واحد',
114
+ 'cart.items_two': 'منتجان',
115
+ 'cart.items_few': '{count} منتجات',
116
+ 'cart.items_many': '{count} منتجاً',
117
+ 'cart.items_other': '{count} منتج',
101
118
  'cart.total': 'الإجمالي',
119
+ 'cart.summary': 'ملخص الطلب',
120
+ 'cart.savings': 'خصم المنتجات',
121
+ 'cart.shipping': 'الشحن',
122
+ 'cart.free': 'مجاني',
123
+ 'cart.shipping_at_checkout': 'تُحتسب عند الدفع',
102
124
  'cart.estimated': 'تقديري',
103
125
  'cart.checkout': 'الدفع',
104
126
  'cart.checkout_unavailable': 'الدفع غير متاح حاليًا. حاول مرة أخرى.',
@@ -175,8 +197,19 @@ const TURKISH_WORDS = {
175
197
  'cart.items_in_cart': 'sepetteki ürün',
176
198
  'cart.subtotal': 'Ara toplam',
177
199
  'cart.discount': 'İndirim',
178
- 'cart.line_discount': 'İndirim',
200
+ 'cart.line_discount': 'Kod indirimi',
201
+ 'cart.items_zero': 'Ürün yok',
202
+ 'cart.items_one': '1 ürün',
203
+ 'cart.items_two': '{count} ürün',
204
+ 'cart.items_few': '{count} ürün',
205
+ 'cart.items_many': '{count} ürün',
206
+ 'cart.items_other': '{count} ürün',
179
207
  'cart.total': 'Toplam',
208
+ 'cart.summary': 'Sipariş özeti',
209
+ 'cart.savings': 'Ürün indirimi',
210
+ 'cart.shipping': 'Kargo',
211
+ 'cart.free': 'Ücretsiz',
212
+ 'cart.shipping_at_checkout': 'ödemede hesaplanır',
180
213
  'cart.estimated': 'tahmini',
181
214
  'cart.checkout': 'Ödeme',
182
215
  'cart.checkout_unavailable': 'Ödeme şu anda kullanılamıyor. Lütfen tekrar deneyin.',
@@ -254,12 +287,50 @@ const CATALOG = {
254
287
  export const WORD_KEYS = Object.keys(ENGLISH_WORDS);
255
288
  /** The languages the catalog answers in its own right. */
256
289
  export const CATALOG_LANGUAGES = Object.keys(CATALOG);
290
+ /** The language the catalog answers a buyer's in, which is English where it carries none. */
291
+ function tableLanguageOf(language) {
292
+ if (CATALOG[language] !== undefined)
293
+ return language;
294
+ const base = baseOf(language);
295
+ return CATALOG[base] === undefined ? ENGLISH : base;
296
+ }
297
+ const COUNT_SLOT = '{count}';
298
+ /**
299
+ * The plural category a language counts a number in, by the CLDR rules for the
300
+ * languages the catalog carries: six forms in Arabic, a pair in English and in
301
+ * Turkish. A count is never written into one form and hoped for.
302
+ */
303
+ function pluralCategoryOf(count, language) {
304
+ if (language !== 'ar')
305
+ return count === 1 ? 'one' : count === 0 ? 'zero' : 'other';
306
+ const hundreds = count % 100;
307
+ if (count === 0)
308
+ return 'zero';
309
+ if (count === 1)
310
+ return 'one';
311
+ if (count === 2)
312
+ return 'two';
313
+ if (hundreds >= 3 && hundreds <= 10)
314
+ return 'few';
315
+ return hundreds >= 11 && hundreds <= 99 ? 'many' : 'other';
316
+ }
317
+ /**
318
+ * How many items a cart holds, written in the form the buyer's language counts
319
+ * that number in. English and Turkish read no item count for an empty cart as
320
+ * a plural of nothing, which is why the zero form is in the catalog too.
321
+ */
322
+ export function cartItemCount(count, language, defaultLanguage) {
323
+ const spoken = tableLanguageOf(language);
324
+ const category = pluralCategoryOf(count, spoken);
325
+ const word = platformWords(language, defaultLanguage).own(`cart.items_${category}`);
326
+ return word.replaceAll(COUNT_SLOT, String(count));
327
+ }
257
328
  /**
258
329
  * The catalog bound to one buyer: their language for the platform's own words,
259
330
  * their language and the Shop's default for a merchant's override of one.
260
331
  */
261
332
  export function platformWords(language, defaultLanguage) {
262
- const table = CATALOG[language] ?? CATALOG[baseOf(language)] ?? CATALOG[ENGLISH];
333
+ const table = CATALOG[tableLanguageOf(language)];
263
334
  return {
264
335
  own: (key) => table[key],
265
336
  merchantOr: (text, key) => (text === undefined ? undefined : readable(text, language, defaultLanguage)) ?? table[key],
package/dist/words.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"words.js","sourceRoot":"","sources":["../src/words.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"words.js","sourceRoot":"","sources":["../src/words.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shoplix-ai/block-kit",
3
- "version": "4.1.0",
3
+ "version": "4.2.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": {