@shoplix-ai/block-kit 3.1.0 → 3.3.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
@@ -52,8 +52,12 @@ written against this package and nothing else from the runtime. It holds:
52
52
  currency, for display only: the total a buyer sees is always Shopify's),
53
53
  `pickLocale` (the buyer's language from the Shop's languages with default
54
54
  fallback), `localize` (one string out of a locale object), `textDirection`,
55
- `imageSourceFor` (the rendition to paint at a given display width), and
56
- `platformWords`, the word catalog below.
55
+ `imageSourceFor` (the rendition to paint at a given display width),
56
+ `platformWords`, the word catalog below, `moneyParts`, `moneyText`,
57
+ `moneyAmount` and `discountPercent`, the money presentation below, and
58
+ `productCardColors`, the one colour table the product card reads on the
59
+ phone and on the web: a theme role per part of the card, with a component
60
+ token at `product_card.<part>` over it.
57
61
 
58
62
  ## The theme a renderer receives
59
63
 
@@ -113,6 +117,33 @@ string sits first in an object. Every language answers every key of
113
117
  `WORD_KEYS`, which the type system and a test both hold; a word added in
114
118
  English and nowhere else does not compile.
115
119
 
120
+ ## How a price is written
121
+
122
+ Display money carries the string the Provider formatted in the buyer's language
123
+ and the decimal amount it was formatted from. **Every figure a block computes
124
+ comes from the amount**: reading a number back out of the formatted string
125
+ assumes the full stop is the decimal mark, which is wrong across most of Europe
126
+ and puts a confident nonsense percentage on a badge.
127
+
128
+ ```ts
129
+ const percent = discountPercent(product.price, product.compareAtPrice);
130
+ const { digits, label } = moneyParts(product.price, language, theme.money);
131
+ const line = moneyText(product.price, language, theme.money);
132
+ ```
133
+
134
+ `theme.money` is the digit style the design chose, and there are two.
135
+ `locale`, the default, draws the string the Provider wrote and no label beside
136
+ it. `latin` writes the digits from the amount in Latin numerals, grouped in
137
+ threes at the currency's own number of decimal places, with the currency's
138
+ short label beside them: how the Gulf commerce apps write a price in an Arabic
139
+ app. Money that carries no amount is drawn as the Provider wrote it, whatever
140
+ the style, so a block never loses a price it cannot restyle.
141
+
142
+ The short label comes from a maintained table of the currencies the platform
143
+ writes its own way, the Gulf currencies in Arabic among them. A currency the
144
+ table does not name takes the symbol the buyer's own language writes for it,
145
+ and the three letter code where the language writes none.
146
+
116
147
  ## Rows: what the host lays out
117
148
 
118
149
  A Block Type may declare `rows` next to `render`:
package/dist/index.d.ts CHANGED
@@ -11,7 +11,10 @@ export { defineCodeBlock, shopBlocks } from './code-block.js';
11
11
  export type { CodeBlock, CodeBlockModule } from './code-block.js';
12
12
  export { CONTRACT_MAJOR, CONTRACT_VERSION } from './version.js';
13
13
  export { resolveToken } from './tokens.js';
14
- export { formatMoney } from './money.js';
14
+ export { productCardColors } from './product-card.js';
15
+ export type { ProductCardColors, ProductCardPart } from './product-card.js';
16
+ export { discountPercent, formatMoney, moneyAmount, moneyParts, moneyText } from './money.js';
17
+ export type { MoneyParts } from './money.js';
15
18
  export { imageSourceFor } from './renditions.js';
16
19
  export type { ImageSource } from './renditions.js';
17
20
  export { localize, pickLocale, textDirection } from './locale.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7F,YAAY,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7F,YAAY,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElE,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;AACtD,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9F,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -5,7 +5,8 @@ export { defineBinding, defineSettings } from './authoring.js';
5
5
  export { defineCodeBlock, shopBlocks } from './code-block.js';
6
6
  export { CONTRACT_MAJOR, CONTRACT_VERSION } from './version.js';
7
7
  export { resolveToken } from './tokens.js';
8
- export { formatMoney } from './money.js';
8
+ export { productCardColors } from './product-card.js';
9
+ export { discountPercent, formatMoney, moneyAmount, moneyParts, moneyText } from './money.js';
9
10
  export { imageSourceFor } from './renditions.js';
10
11
  export { localize, pickLocale, textDirection } from './locale.js';
11
12
  export { CATALOG_LANGUAGES, WORD_KEYS, platformWords } from './words.js';
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;AAY7F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAgB5C,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,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,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;AAY7F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAgB5C,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,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9F,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"}
package/dist/money.d.ts CHANGED
@@ -1,6 +1,35 @@
1
+ import { type DisplayMoney, type MoneyStyle } from '@shoplix-ai/sdui-schema';
1
2
  /**
2
3
  * Display-only money, formatted on the device in the buyer's language. The
3
4
  * charged price always comes from Shopify checkout, never from this string.
4
5
  */
5
6
  export declare function formatMoney(amount: string | number, currencyCode: string, language: string): string | null;
7
+ /** The digits of a price and the short label of its currency, drawn side by side. */
8
+ export interface MoneyParts {
9
+ readonly digits: string;
10
+ readonly label: string;
11
+ }
12
+ /** The number behind display money; null where the Provider recorded none. */
13
+ export declare function moneyAmount(money: DisplayMoney | undefined): number | null;
14
+ /**
15
+ * A price in the two pieces a card lays out itself. Under the latin style the
16
+ * digits are written from the decimal amount and the label is the currency's
17
+ * short one; under every other style, and for money carrying no amount this
18
+ * can be written from, the price stays the one string the Provider wrote and
19
+ * there is no label beside it.
20
+ *
21
+ * The latin style groups in threes with a period decimal whatever grouping the
22
+ * buyer's own language writes, so an Indian English buyer reads 1,234,567.89
23
+ * rather than 12,34,567.89. A merchant wanting the buyer's own grouping takes
24
+ * the locale style.
25
+ */
26
+ export declare function moneyParts(money: DisplayMoney, language: string, style?: MoneyStyle): MoneyParts;
27
+ /** One price on one line, in the style the theme chose. */
28
+ export declare function moneyText(money: DisplayMoney, language: string, style?: MoneyStyle): string;
29
+ /**
30
+ * The percent off for a badge, from the two decimal amounts of one currency.
31
+ * Null where either side carries no amount, where the currencies differ, or
32
+ * where the saving does not round to a percent worth drawing.
33
+ */
34
+ export declare function discountPercent(price: DisplayMoney, compareAt: DisplayMoney | undefined): number | null;
6
35
  //# sourceMappingURL=money.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAUf"}
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"}
package/dist/money.js CHANGED
@@ -1,12 +1,21 @@
1
+ import { DEFAULT_MONEY_STYLE, } from '@shoplix-ai/sdui-schema';
2
+ import { readable } from './locale.js';
1
3
  const CURRENCY_CODE = /^[A-Z]{3}$/;
4
+ /** The decimal shape the display contract records an amount in. */
5
+ const DECIMAL = /^\d+(\.\d+)?$/;
6
+ /** A float that can no longer hold the amount's whole part exactly. */
7
+ function representable(value) {
8
+ return Number.isSafeInteger(Math.trunc(value));
9
+ }
2
10
  /**
3
11
  * Display-only money, formatted on the device in the buyer's language. The
4
12
  * charged price always comes from Shopify checkout, never from this string.
5
13
  */
6
14
  export function formatMoney(amount, currencyCode, language) {
7
15
  const value = typeof amount === 'number' ? amount : Number(amount);
8
- if (!Number.isFinite(value) || !CURRENCY_CODE.test(currencyCode))
16
+ if (!Number.isFinite(value) || !representable(value) || !CURRENCY_CODE.test(currencyCode)) {
9
17
  return null;
18
+ }
10
19
  try {
11
20
  return new Intl.NumberFormat(language, { style: 'currency', currency: currencyCode }).format(value);
12
21
  }
@@ -14,4 +23,135 @@ export function formatMoney(amount, currencyCode, language) {
14
23
  return `${amount} ${currencyCode}`;
15
24
  }
16
25
  }
26
+ /**
27
+ * The short label the platform draws beside a price where it wants one of its
28
+ * own: the Gulf currencies in Arabic, whose ICU symbol carries a trailing full
29
+ * stop and direction marks a card does not draw. A currency this table does
30
+ * not name takes the symbol the buyer's own language writes for it, and the
31
+ * three letter code where the language writes none.
32
+ */
33
+ const CURRENCY_LABELS = {
34
+ AED: { ar: 'د.إ' },
35
+ BHD: { ar: 'د.ب' },
36
+ EGP: { ar: 'ج.م' },
37
+ JOD: { ar: 'د.أ' },
38
+ KWD: { ar: 'د.ك' },
39
+ OMR: { ar: 'ر.ع' },
40
+ QAR: { ar: 'ر.ق' },
41
+ SAR: { ar: 'ر.س' },
42
+ USD: { ar: '$' },
43
+ };
44
+ /** The currencies written with other than two decimal places, by ISO 4217. */
45
+ const CURRENCY_PLACES = {
46
+ BHD: 3,
47
+ CLF: 4,
48
+ CLP: 0,
49
+ DJF: 0,
50
+ GNF: 0,
51
+ IQD: 3,
52
+ ISK: 0,
53
+ JOD: 3,
54
+ JPY: 0,
55
+ KMF: 0,
56
+ KRW: 0,
57
+ KWD: 3,
58
+ LYD: 3,
59
+ OMR: 3,
60
+ PYG: 0,
61
+ RWF: 0,
62
+ TND: 3,
63
+ UGX: 0,
64
+ UYI: 0,
65
+ UYW: 4,
66
+ VND: 0,
67
+ VUV: 0,
68
+ XAF: 0,
69
+ XOF: 0,
70
+ XPF: 0,
71
+ };
72
+ const DEFAULT_PLACES = 2;
73
+ /** The number behind display money; null where the Provider recorded none. */
74
+ export function moneyAmount(money) {
75
+ if (money?.amount === undefined)
76
+ return null;
77
+ const value = Number(money.amount);
78
+ return Number.isFinite(value) && representable(value) ? value : null;
79
+ }
80
+ function symbolOf(currencyCode, language) {
81
+ try {
82
+ const parts = new Intl.NumberFormat(language, {
83
+ style: 'currency',
84
+ currency: currencyCode,
85
+ currencyDisplay: 'narrowSymbol',
86
+ }).formatToParts(0);
87
+ return parts.find((part) => part.type === 'currency')?.value;
88
+ }
89
+ catch {
90
+ return undefined;
91
+ }
92
+ }
93
+ function currencyLabel(currencyCode, language) {
94
+ const named = CURRENCY_LABELS[currencyCode];
95
+ const own = named === undefined ? undefined : readable(named, language, language);
96
+ return own ?? symbolOf(currencyCode, language) ?? currencyCode;
97
+ }
98
+ /** A decimal amount at a currency's own number of places, rounded half up, never through a float. */
99
+ function atPlaces(amount, places) {
100
+ const [whole = '0', fraction = ''] = amount.split('.');
101
+ if (fraction.length <= places) {
102
+ return places === 0 ? whole : `${whole}.${fraction.padEnd(places, '0')}`;
103
+ }
104
+ const carry = Number(fraction[places]) >= 5 ? 1n : 0n;
105
+ const units = (BigInt(`${whole}${fraction.slice(0, places)}`) + carry)
106
+ .toString()
107
+ .padStart(places + 1, '0');
108
+ return places === 0 ? units : `${units.slice(0, -places)}.${units.slice(-places)}`;
109
+ }
110
+ function latinDigits(amount, currencyCode) {
111
+ const written = atPlaces(amount, CURRENCY_PLACES[currencyCode] ?? DEFAULT_PLACES);
112
+ const [whole = '0', fraction] = written.split('.');
113
+ const grouped = whole.replace(/\B(?=(\d{3})+$)/g, ',');
114
+ return fraction === undefined ? grouped : `${grouped}.${fraction}`;
115
+ }
116
+ /**
117
+ * A price in the two pieces a card lays out itself. Under the latin style the
118
+ * digits are written from the decimal amount and the label is the currency's
119
+ * short one; under every other style, and for money carrying no amount this
120
+ * can be written from, the price stays the one string the Provider wrote and
121
+ * there is no label beside it.
122
+ *
123
+ * The latin style groups in threes with a period decimal whatever grouping the
124
+ * buyer's own language writes, so an Indian English buyer reads 1,234,567.89
125
+ * rather than 12,34,567.89. A merchant wanting the buyer's own grouping takes
126
+ * the locale style.
127
+ */
128
+ export function moneyParts(money, language, style = DEFAULT_MONEY_STYLE) {
129
+ if (style.digits !== 'latin' || money.amount === undefined || !DECIMAL.test(money.amount)) {
130
+ return { digits: money.formatted, label: '' };
131
+ }
132
+ return {
133
+ digits: latinDigits(money.amount, money.currencyCode),
134
+ label: currencyLabel(money.currencyCode, language),
135
+ };
136
+ }
137
+ /** One price on one line, in the style the theme chose. */
138
+ export function moneyText(money, language, style = DEFAULT_MONEY_STYLE) {
139
+ const { digits, label } = moneyParts(money, language, style);
140
+ return label === '' ? digits : `${digits} ${label}`;
141
+ }
142
+ /**
143
+ * The percent off for a badge, from the two decimal amounts of one currency.
144
+ * Null where either side carries no amount, where the currencies differ, or
145
+ * where the saving does not round to a percent worth drawing.
146
+ */
147
+ export function discountPercent(price, compareAt) {
148
+ if (compareAt === undefined || compareAt.currencyCode !== price.currencyCode)
149
+ return null;
150
+ const now = moneyAmount(price);
151
+ const was = moneyAmount(compareAt);
152
+ if (now === null || was === null || was <= now)
153
+ return null;
154
+ const percent = Math.round((1 - now / was) * 100);
155
+ return percent === 0 ? null : percent;
156
+ }
17
157
  //# 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":"AAAA,MAAM,aAAa,GAAG,YAAY,CAAC;AAEnC;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,MAAuB,EACvB,YAAoB,EACpB,QAAgB;IAEhB,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,IAAI,CAAC;QACH,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,CAC1F,KAAK,CACN,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,MAAM,IAAI,YAAY,EAAE,CAAC;IACrC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"money.js","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { type ThemeStyle } from '@shoplix-ai/sdui-schema';
2
+ /** The parts of the product card, each with the theme role it draws unless a component token names another. */
3
+ declare const PRODUCT_CARD_ROLES: {
4
+ readonly border: "border";
5
+ readonly picture: "sunken";
6
+ readonly badge: "action";
7
+ readonly price: "action";
8
+ readonly was: "subtle";
9
+ readonly sold_out_scrim: "overlay";
10
+ readonly sold_out_chip: "border";
11
+ readonly sold_out_ink: "text";
12
+ readonly add: "action";
13
+ readonly notify: "text";
14
+ readonly notify_done: "success";
15
+ readonly notify_done_surface: "elevated";
16
+ };
17
+ export type ProductCardPart = keyof typeof PRODUCT_CARD_ROLES;
18
+ export type ProductCardColors = Readonly<Record<ProductCardPart, string>>;
19
+ /**
20
+ * Every colour the product card draws, one per part: the theme role behind
21
+ * it, with a per component token at `product_card.<part>` as the escape
22
+ * hatch over it. The phone's card and its web twin read this one table, so
23
+ * the two cannot disagree on what a merchant's theme means.
24
+ */
25
+ export declare function productCardColors(theme: ThemeStyle): ProductCardColors;
26
+ export {};
27
+ //# sourceMappingURL=product-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-card.d.ts","sourceRoot":"","sources":["../src/product-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE/E,+GAA+G;AAC/G,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;CAauC,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,CAOtE"}
@@ -0,0 +1,31 @@
1
+ import { componentTokenValue } from '@shoplix-ai/sdui-schema';
2
+ /** The parts of the product card, each with the theme role it draws unless a component token names another. */
3
+ const PRODUCT_CARD_ROLES = {
4
+ border: 'border',
5
+ picture: 'sunken',
6
+ badge: 'action',
7
+ price: 'action',
8
+ was: 'subtle',
9
+ sold_out_scrim: 'overlay',
10
+ sold_out_chip: 'border',
11
+ sold_out_ink: 'text',
12
+ add: 'action',
13
+ notify: 'text',
14
+ notify_done: 'success',
15
+ notify_done_surface: 'elevated',
16
+ };
17
+ /**
18
+ * Every colour the product card draws, one per part: the theme role behind
19
+ * it, with a per component token at `product_card.<part>` as the escape
20
+ * hatch over it. The phone's card and its web twin read this one table, so
21
+ * the two cannot disagree on what a merchant's theme means.
22
+ */
23
+ export function productCardColors(theme) {
24
+ const colors = {};
25
+ for (const part of Object.keys(PRODUCT_CARD_ROLES)) {
26
+ const role = theme.colors[PRODUCT_CARD_ROLES[part]];
27
+ colors[part] = componentTokenValue(theme, `product_card.${part}`, role);
28
+ }
29
+ return colors;
30
+ }
31
+ //# sourceMappingURL=product-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-card.js","sourceRoot":"","sources":["../src/product-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,yBAAyB,CAAC;AAE/E,+GAA+G;AAC/G,MAAM,kBAAkB,GAAG;IACzB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,GAAG,EAAE,QAAQ;IACb,cAAc,EAAE,SAAS;IACzB,aAAa,EAAE,QAAQ;IACvB,YAAY,EAAE,MAAM;IACpB,GAAG,EAAE,QAAQ;IACb,MAAM,EAAE,MAAM;IACd,WAAW,EAAE,SAAS;IACtB,mBAAmB,EAAE,UAAU;CAC8B,CAAC;AAMhE;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAiB;IACjD,MAAM,MAAM,GAAG,EAAqC,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAsB,EAAE,CAAC;QACxE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,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 = "3.1.0";
7
+ export declare const CONTRACT_VERSION = "3.3.0";
8
8
  export declare const CONTRACT_MAJOR = 3;
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 = '3.1.0';
7
+ export const CONTRACT_VERSION = '3.3.0';
8
8
  export const CONTRACT_MAJOR = 3;
9
9
  //# sourceMappingURL=version.js.map
package/dist/words.d.ts CHANGED
@@ -37,6 +37,10 @@ declare const ENGLISH_WORDS: {
37
37
  readonly 'product.add_to_cart': "Add to cart";
38
38
  readonly 'product.added': "Added to cart";
39
39
  readonly 'product.add_failed': "Could not add";
40
+ readonly 'product.add_to_cart_compact': "Add to cart";
41
+ readonly 'product.added_compact': "Added ✓";
42
+ readonly 'product.notify_me': "Notify me";
43
+ readonly 'product.notify_me_done': "We will tell you ✓";
40
44
  readonly 'product.sold_out': "Sold out";
41
45
  readonly 'product.in_stock': "In stock";
42
46
  readonly 'product.out_of_stock': "Out of stock";
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DT,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,aAAa,CAAC;AA0IjD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkET,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,aAAa,CAAC;AAkJjD,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"}
package/dist/words.js CHANGED
@@ -37,6 +37,10 @@ const ENGLISH_WORDS = {
37
37
  'product.add_to_cart': 'Add to cart',
38
38
  'product.added': 'Added to cart',
39
39
  'product.add_failed': 'Could not add',
40
+ 'product.add_to_cart_compact': 'Add to cart',
41
+ 'product.added_compact': 'Added ✓',
42
+ 'product.notify_me': 'Notify me',
43
+ 'product.notify_me_done': 'We will tell you ✓',
40
44
  'product.sold_out': 'Sold out',
41
45
  'product.in_stock': 'In stock',
42
46
  'product.out_of_stock': 'Out of stock',
@@ -100,6 +104,10 @@ const ARABIC_WORDS = {
100
104
  'product.add_to_cart': 'أضف إلى السلة',
101
105
  'product.added': 'أُضيف إلى السلة',
102
106
  'product.add_failed': 'تعذّرت الإضافة',
107
+ 'product.add_to_cart_compact': 'أضف للسلة',
108
+ 'product.added_compact': 'أُضيف ✓',
109
+ 'product.notify_me': 'أعلمني عند التوفّر',
110
+ 'product.notify_me_done': 'سنُعلمك عند التوفّر ✓',
103
111
  'product.sold_out': 'نفذت الكمية',
104
112
  'product.in_stock': 'متوفر',
105
113
  'product.out_of_stock': 'نفدت الكمية',
@@ -163,6 +171,10 @@ const TURKISH_WORDS = {
163
171
  'product.add_to_cart': 'Sepete ekle',
164
172
  'product.added': 'Sepete eklendi',
165
173
  'product.add_failed': 'Eklenemedi',
174
+ 'product.add_to_cart_compact': 'Sepete ekle',
175
+ 'product.added_compact': 'Eklendi ✓',
176
+ 'product.notify_me': 'Haber ver',
177
+ 'product.notify_me_done': 'Haber vereceğiz ✓',
166
178
  'product.sold_out': 'Tükendi',
167
179
  'product.in_stock': 'Stokta var',
168
180
  'product.out_of_stock': 'Stokta yok',
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": "3.1.0",
3
+ "version": "3.3.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.9.0"
29
+ "@shoplix-ai/sdui-schema": "1.11.0"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "react": ">=19.0.0"