@shoplix-ai/block-kit 5.30.0 → 5.32.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 +30 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/product-section.d.ts +64 -0
- package/dist/product-section.d.ts.map +1 -0
- package/dist/product-section.js +87 -0
- package/dist/product-section.js.map +1 -0
- package/dist/product-specs.d.ts +1 -2
- package/dist/product-specs.d.ts.map +1 -1
- package/dist/product-specs.js +1 -1
- package/dist/product-specs.js.map +1 -1
- package/dist/product-summary.d.ts +38 -1
- package/dist/product-summary.d.ts.map +1 -1
- package/dist/product-summary.js +34 -1
- package/dist/product-summary.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -113,6 +113,36 @@ written against this package and nothing else from the runtime. It holds:
|
|
|
113
113
|
merchant's or the catalog's.
|
|
114
114
|
`countdownLeft` splits the whole seconds left into days, hours, minutes and
|
|
115
115
|
seconds, none below zero, and all zero for a time that is no number.
|
|
116
|
+
`productSummaryLook` is the plain product summary's type as both renderers
|
|
117
|
+
draw it: the size and weight of the title, the price and the compare-at,
|
|
118
|
+
the space above the price row, whether a price with no words still draws
|
|
119
|
+
its empty words, and the pair the price and the compare-at stand in,
|
|
120
|
+
centred on each other at the space the merchant set between them (absent
|
|
121
|
+
where none was named). A title whose size the merchant left out stands on
|
|
122
|
+
the summary's 33 point line, and one at a size they set stands on the face's
|
|
123
|
+
own line, as Figma's automatic line does; a summary that names none of them
|
|
124
|
+
answers the summary it always drew.
|
|
125
|
+
`productSectionLook` is the plain look of the three product sections as both
|
|
126
|
+
renderers draw it, in the space the host gives the block and the inset its
|
|
127
|
+
title takes under a line: whether a section folds and how it stands as the
|
|
128
|
+
screen opens (null where no fold was named or the title is hidden), the
|
|
129
|
+
space between the screen's side and the section and between the section's
|
|
130
|
+
side and its words (the merchant's side space holds the section whole, its
|
|
131
|
+
line included; left out, the theme's gutter holds its words), the line's
|
|
132
|
+
thickness (1 where none was named, null where no line stands), the space
|
|
133
|
+
above the line, under it (the merchant's, else the section's own inset) and
|
|
134
|
+
below the section, the space between the title and the body (12), the
|
|
135
|
+
title's size, weight and ink (17 and 700 on a 24 line, the line only where
|
|
136
|
+
no size was named), the body's faces, the description's paragraphs and list
|
|
137
|
+
items, its lead paragraph, the specifications' labels and values and the
|
|
138
|
+
shipping notes, each at the size and line height the merchant set or its own
|
|
139
|
+
(a line height in percent of the size, each part's own line in proportion
|
|
140
|
+
where only a size was named) in the role they chose or its own ink, the
|
|
141
|
+
faces the description's own tables keep, and the fold's Melora chevron, 11
|
|
142
|
+
points across, with its box and its glyph's size on its own grid, in the
|
|
143
|
+
muted role; a boxed section reads none of the plain look's settings.
|
|
144
|
+
`PRODUCT_SPECS_ROLES` names the theme role each part of the specs
|
|
145
|
+
draws, the editor's words for the body's own inks among them.
|
|
116
146
|
`announcementBarLook` is the announcement bar as both renderers draw it: the
|
|
117
147
|
least height the merchant set (absent where none was named), the band's
|
|
118
148
|
padding (7 points at the sides, and 7 above and below only where no height
|
package/dist/index.d.ts
CHANGED
|
@@ -17,15 +17,17 @@ export { productCardColors } from './product-card.js';
|
|
|
17
17
|
export type { ProductCardColors, ProductCardPart } from './product-card.js';
|
|
18
18
|
export { productGalleryColors } from './product-gallery.js';
|
|
19
19
|
export type { ProductGalleryColors, ProductGalleryPart } from './product-gallery.js';
|
|
20
|
-
export { PRODUCT_SECTION_TITLES, productSectionTitle, productSpecRows, productSpecsColors, shippingRowsOf, } from './product-specs.js';
|
|
20
|
+
export { PRODUCT_SECTION_TITLES, PRODUCT_SPECS_ROLES, productSectionTitle, productSpecRows, productSpecsColors, shippingRowsOf, } from './product-specs.js';
|
|
21
21
|
export type { ProductSpecRow, ProductSpecsColors, ProductSpecsPart, ShippingRow, } from './product-specs.js';
|
|
22
|
+
export { productSectionLook } from './product-section.js';
|
|
23
|
+
export type { ProductSectionLook } from './product-section.js';
|
|
22
24
|
export { contentDirection } from './content-direction.js';
|
|
23
25
|
export { descriptionFacts, descriptionParts, descriptionPartsOf, descriptionText, shownDescriptionParts, } from './description.js';
|
|
24
26
|
export type { DescriptionFact, DescriptionPart, DescriptionRun } from './description.js';
|
|
25
27
|
export { chosenPrice, variantLabel, variantRows } from './variant-rows.js';
|
|
26
28
|
export type { ChosenPrice, VariantRow } from './variant-rows.js';
|
|
27
|
-
export { productSummaryColors, savingText } from './product-summary.js';
|
|
28
|
-
export type { ProductSummaryColors, ProductSummaryPart } from './product-summary.js';
|
|
29
|
+
export { productSummaryColors, productSummaryLook, savingText } from './product-summary.js';
|
|
30
|
+
export type { ProductSummaryColors, ProductSummaryFace, ProductSummaryLook, ProductSummaryPair, ProductSummaryPart, } from './product-summary.js';
|
|
29
31
|
export { reviewsSlotColors } from './reviews-slot.js';
|
|
30
32
|
export type { ReviewsSlotColors, ReviewsSlotPart } from './reviews-slot.js';
|
|
31
33
|
export { blockSpace } from './block-space.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EACV,cAAc,EACd,WAAW,EACX,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,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3E,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,11 +8,12 @@ export { resolveToken } from './tokens.js';
|
|
|
8
8
|
export { addToCartColors } from './add-to-cart.js';
|
|
9
9
|
export { productCardColors } from './product-card.js';
|
|
10
10
|
export { productGalleryColors } from './product-gallery.js';
|
|
11
|
-
export { PRODUCT_SECTION_TITLES, productSectionTitle, productSpecRows, productSpecsColors, shippingRowsOf, } from './product-specs.js';
|
|
11
|
+
export { PRODUCT_SECTION_TITLES, PRODUCT_SPECS_ROLES, productSectionTitle, productSpecRows, productSpecsColors, shippingRowsOf, } from './product-specs.js';
|
|
12
|
+
export { productSectionLook } from './product-section.js';
|
|
12
13
|
export { contentDirection } from './content-direction.js';
|
|
13
14
|
export { descriptionFacts, descriptionParts, descriptionPartsOf, descriptionText, shownDescriptionParts, } from './description.js';
|
|
14
15
|
export { chosenPrice, variantLabel, variantRows } from './variant-rows.js';
|
|
15
|
-
export { productSummaryColors, savingText } from './product-summary.js';
|
|
16
|
+
export { productSummaryColors, productSummaryLook, savingText } from './product-summary.js';
|
|
16
17
|
export { reviewsSlotColors } from './reviews-slot.js';
|
|
17
18
|
export { blockSpace } from './block-space.js';
|
|
18
19
|
export { COLLECTION_CIRCLE_LOOK, collectionCardLook, collectionTileColors, } from './collection-tile.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;AAgB7F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAkB5C,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,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type ProductSectionLookSettings, type ThemeStyle } from '@shoplix-ai/sdui-schema';
|
|
2
|
+
import type { BlockSpace } from './block-space.js';
|
|
3
|
+
import type { SectionHeaderTypeface } from './section-header.js';
|
|
4
|
+
type BodyFace = Required<Pick<SectionHeaderTypeface, 'size' | 'lineHeight' | 'ink'>>;
|
|
5
|
+
/**
|
|
6
|
+
* The plain section as it draws. `fold` is null where the section never
|
|
7
|
+
* folds, its title hidden or no fold set. `sides.section` is the space between
|
|
8
|
+
* the screen's side and the section, its line and surface included, and
|
|
9
|
+
* `sides.content` the space between the section's side and its words. `line`
|
|
10
|
+
* is the thickness of the line above it, null where it draws none; `above`
|
|
11
|
+
* stands over that line, `top` under it (over the title where no line
|
|
12
|
+
* stands), and `below` under the section. The body's faces are the
|
|
13
|
+
* description's paragraphs and list items, its lead paragraph, the
|
|
14
|
+
* specifications' labels and values and the shipping notes; `table` is what
|
|
15
|
+
* the description's own tables keep.
|
|
16
|
+
*/
|
|
17
|
+
export interface ProductSectionLook {
|
|
18
|
+
readonly fold: {
|
|
19
|
+
readonly open: boolean;
|
|
20
|
+
} | null;
|
|
21
|
+
readonly sides: {
|
|
22
|
+
readonly section: number;
|
|
23
|
+
readonly content: number;
|
|
24
|
+
};
|
|
25
|
+
readonly line: number | null;
|
|
26
|
+
readonly above: number;
|
|
27
|
+
readonly top: number;
|
|
28
|
+
readonly below: number;
|
|
29
|
+
readonly bodyGap: number;
|
|
30
|
+
readonly title: Omit<SectionHeaderTypeface, 'letterSpacing'>;
|
|
31
|
+
readonly body: {
|
|
32
|
+
readonly paragraph: BodyFace;
|
|
33
|
+
readonly lead: BodyFace;
|
|
34
|
+
readonly label: BodyFace;
|
|
35
|
+
readonly value: BodyFace;
|
|
36
|
+
readonly note: BodyFace;
|
|
37
|
+
};
|
|
38
|
+
readonly table: {
|
|
39
|
+
readonly label: BodyFace;
|
|
40
|
+
readonly value: BodyFace;
|
|
41
|
+
};
|
|
42
|
+
readonly chevron: {
|
|
43
|
+
readonly width: number;
|
|
44
|
+
readonly height: number;
|
|
45
|
+
readonly glyph: number;
|
|
46
|
+
readonly ink: string;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The plain section as the merchant set it, in the space the host gives its
|
|
51
|
+
* block and the inset its title takes under a line, and the section it always
|
|
52
|
+
* drew for every part they left out. A title whose size the merchant set
|
|
53
|
+
* stands on the face's own line, as Figma's automatic line does. The body's
|
|
54
|
+
* line height is written in percent of its size and drawn in points; where the
|
|
55
|
+
* merchant set none, each part keeps its own line in proportion to the size it
|
|
56
|
+
* draws at. A role the merchant chose for the body paints every part of it.
|
|
57
|
+
* A boxed section reads none of the plain look's settings.
|
|
58
|
+
*/
|
|
59
|
+
export declare function productSectionLook(theme: ThemeStyle, settings: ProductSectionLookSettings, frame: {
|
|
60
|
+
readonly space: BlockSpace;
|
|
61
|
+
readonly inset: number;
|
|
62
|
+
}): ProductSectionLook;
|
|
63
|
+
export {};
|
|
64
|
+
//# sourceMappingURL=product-section.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-section.d.ts","sourceRoot":"","sources":["../src/product-section.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,0BAA0B,EAC/B,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,KAAK,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC;AAErF;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;IAC7D,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;QACzB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;QACzB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;KAAE,CAAC;IACvE,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AA+CD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,0BAA0B,EACpC,KAAK,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC5D,kBAAkB,CA2CpB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { ICON_GLYPHS, PRODUCT_SECTION_DEFAULTS, sideGutter, } from '@shoplix-ai/sdui-schema';
|
|
2
|
+
import { chosenRole } from './part-colors.js';
|
|
3
|
+
import { productSpecsColors } from './product-specs.js';
|
|
4
|
+
const PLAIN_BODY = {
|
|
5
|
+
paragraph: { size: PRODUCT_SECTION_DEFAULTS.bodySize, line: PRODUCT_SECTION_DEFAULTS.bodyLine },
|
|
6
|
+
lead: { size: 16, line: 29 },
|
|
7
|
+
label: { size: 13, line: 22 },
|
|
8
|
+
value: { size: 14, line: 22 },
|
|
9
|
+
note: { size: 13, line: 20 },
|
|
10
|
+
};
|
|
11
|
+
const CHEVRON_WIDTH = 11;
|
|
12
|
+
/**
|
|
13
|
+
* The Melora chevron 11 points across, turned up or down. Its viewBox pads the
|
|
14
|
+
* glyph by the same space on each side, so the glyph's own box is the grid
|
|
15
|
+
* less twice that space: 8 wide and 15 tall on a 26 grid. Turned a quarter, it
|
|
16
|
+
* runs its height across.
|
|
17
|
+
*/
|
|
18
|
+
function chevronOf(ink) {
|
|
19
|
+
const [padLeft, padTop, grid] = ICON_GLYPHS['chevron-back'].viewBox.split(' ').map(Number);
|
|
20
|
+
const glyphWidth = grid + 2 * padLeft;
|
|
21
|
+
const glyphHeight = grid + 2 * padTop;
|
|
22
|
+
return {
|
|
23
|
+
width: CHEVRON_WIDTH,
|
|
24
|
+
height: (CHEVRON_WIDTH * glyphWidth) / glyphHeight,
|
|
25
|
+
glyph: (CHEVRON_WIDTH * grid) / glyphHeight,
|
|
26
|
+
ink,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function faceOf(part, ink, settings) {
|
|
30
|
+
const size = settings.bodySize ?? part.size;
|
|
31
|
+
const lineHeight = settings.bodyLineHeight === undefined
|
|
32
|
+
? (part.line * size) / part.size
|
|
33
|
+
: (size * settings.bodyLineHeight) / 100;
|
|
34
|
+
return { size, lineHeight, ink };
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The plain section as the merchant set it, in the space the host gives its
|
|
38
|
+
* block and the inset its title takes under a line, and the section it always
|
|
39
|
+
* drew for every part they left out. A title whose size the merchant set
|
|
40
|
+
* stands on the face's own line, as Figma's automatic line does. The body's
|
|
41
|
+
* line height is written in percent of its size and drawn in points; where the
|
|
42
|
+
* merchant set none, each part keeps its own line in proportion to the size it
|
|
43
|
+
* draws at. A role the merchant chose for the body paints every part of it.
|
|
44
|
+
* A boxed section reads none of the plain look's settings.
|
|
45
|
+
*/
|
|
46
|
+
export function productSectionLook(theme, settings, frame) {
|
|
47
|
+
const colors = productSpecsColors(theme);
|
|
48
|
+
const applied = settings.appearance === 'plain'
|
|
49
|
+
? settings
|
|
50
|
+
: { showTitle: settings.showTitle, lineAbove: settings.lineAbove };
|
|
51
|
+
const ink = (own) => chosenRole(theme, applied.bodyInk, own);
|
|
52
|
+
const lined = applied.lineAbove === true;
|
|
53
|
+
return {
|
|
54
|
+
fold: applied.fold === undefined || applied.showTitle === false
|
|
55
|
+
? null
|
|
56
|
+
: { open: applied.fold === 'open' },
|
|
57
|
+
sides: applied.gutter === undefined
|
|
58
|
+
? { section: 0, content: sideGutter(theme) }
|
|
59
|
+
: { section: applied.gutter, content: 0 },
|
|
60
|
+
line: lined ? (applied.lineThickness ?? PRODUCT_SECTION_DEFAULTS.lineThickness) : null,
|
|
61
|
+
above: lined ? frame.space.above : 0,
|
|
62
|
+
top: lined ? (applied.titleGap ?? frame.inset) : frame.space.above,
|
|
63
|
+
below: frame.space.below,
|
|
64
|
+
bodyGap: applied.bodyGap ?? PRODUCT_SECTION_DEFAULTS.bodyGap,
|
|
65
|
+
title: {
|
|
66
|
+
size: applied.titleSize ?? PRODUCT_SECTION_DEFAULTS.titleSize,
|
|
67
|
+
weight: applied.titleWeight ?? PRODUCT_SECTION_DEFAULTS.titleWeight,
|
|
68
|
+
ink: colors.title,
|
|
69
|
+
...(applied.titleSize === undefined
|
|
70
|
+
? { lineHeight: PRODUCT_SECTION_DEFAULTS.titleLine }
|
|
71
|
+
: {}),
|
|
72
|
+
},
|
|
73
|
+
body: {
|
|
74
|
+
paragraph: faceOf(PLAIN_BODY.paragraph, ink(colors.body), applied),
|
|
75
|
+
lead: faceOf(PLAIN_BODY.lead, ink(colors.body), applied),
|
|
76
|
+
label: faceOf(PLAIN_BODY.label, ink(colors.ledger_label), applied),
|
|
77
|
+
value: faceOf(PLAIN_BODY.value, ink(colors.value_ink), applied),
|
|
78
|
+
note: faceOf(PLAIN_BODY.note, ink(colors.note), applied),
|
|
79
|
+
},
|
|
80
|
+
table: {
|
|
81
|
+
label: faceOf(PLAIN_BODY.label, colors.ledger_label, {}),
|
|
82
|
+
value: faceOf(PLAIN_BODY.value, colors.value_ink, {}),
|
|
83
|
+
},
|
|
84
|
+
chevron: chevronOf(theme.colors.muted),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=product-section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-section.js","sourceRoot":"","sources":["../src/product-section.ts"],"names":[],"mappings":"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"}
|
package/dist/product-specs.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ColorChoice, LocaleCode, ProductDisplay, ProductSectionProps, ProductSectionType, ProductSpecificationsBlock, ShippingReturnsBlock, ThemeStyle } from '@shoplix-ai/sdui-schema';
|
|
2
2
|
/** The parts of the product specs, each with the theme role it draws unless a component token names another. */
|
|
3
|
-
declare const PRODUCT_SPECS_ROLES: {
|
|
3
|
+
export declare const PRODUCT_SPECS_ROLES: {
|
|
4
4
|
readonly surface: "elevated";
|
|
5
5
|
readonly title: "text";
|
|
6
6
|
readonly body: "text";
|
|
@@ -52,5 +52,4 @@ export declare function productSpecRows(specs: ProductSpecificationsBlock['props
|
|
|
52
52
|
export type ShippingRow = NonNullable<ShippingReturnsBlock['props']['shipping']>[number];
|
|
53
53
|
/** The shipping rows a card draws: every row whose title the buyer can read, in the merchant's order. */
|
|
54
54
|
export declare function shippingRowsOf(shipping: readonly ShippingRow[] | undefined, language: LocaleCode, defaultLanguage: LocaleCode): ShippingRow[];
|
|
55
|
-
export {};
|
|
56
55
|
//# sourceMappingURL=product-specs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-specs.d.ts","sourceRoot":"","sources":["../src/product-specs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,EACpB,UAAU,EACX,MAAM,yBAAyB,CAAC;AAOjC,gHAAgH;AAChH,
|
|
1
|
+
{"version":3,"file":"product-specs.d.ts","sourceRoot":"","sources":["../src/product-specs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,EACpB,UAAU,EACX,MAAM,yBAAyB,CAAC;AAOjC,gHAAgH;AAChH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;CAa+B,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAEhE,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,QAAQ,GAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAA;CAAO,GAChD,kBAAkB,CAGpB;AAED,+FAA+F;AAC/F,eAAO,MAAM,sBAAsB;;;;CAIqB,CAAC;AAEzD,2GAA2G;AAC3G,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,EACnC,QAAQ,EAAE,UAAU,EACpB,eAAe,EAAE,UAAU,GAC1B,MAAM,CAER;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EACnD,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,UAAU,EACpB,eAAe,EAAE,UAAU,EAC3B,OAAO,GAAE;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GACpD,cAAc,EAAE,CAmBlB;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzF,yGAAyG;AACzG,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,EAC5C,QAAQ,EAAE,UAAU,EACpB,eAAe,EAAE,UAAU,GAC1B,WAAW,EAAE,CAEf"}
|
package/dist/product-specs.js
CHANGED
|
@@ -4,7 +4,7 @@ import { partColors } from './part-colors.js';
|
|
|
4
4
|
import { platformWords } from './words.js';
|
|
5
5
|
import { descriptionFacts } from './description.js';
|
|
6
6
|
/** The parts of the product specs, each with the theme role it draws unless a component token names another. */
|
|
7
|
-
const PRODUCT_SPECS_ROLES = {
|
|
7
|
+
export const PRODUCT_SPECS_ROLES = {
|
|
8
8
|
surface: 'elevated',
|
|
9
9
|
title: 'text',
|
|
10
10
|
body: 'text',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-specs.js","sourceRoot":"","sources":["../src/product-specs.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAgB,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,gHAAgH;AAChH,MAAM,mBAAmB,GAAG;
|
|
1
|
+
{"version":3,"file":"product-specs.js","sourceRoot":"","sources":["../src/product-specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type LocaleCode, type MoneyStyle, type ProductSummaryBlock, type ThemeStyle } from '@shoplix-ai/sdui-schema';
|
|
1
|
+
import { type LocaleCode, type MoneyStyle, type ProductSummaryBlock, type ProductSummaryLookSettings, type ThemeStyle } from '@shoplix-ai/sdui-schema';
|
|
2
2
|
import type { ChosenPrice } from './variant-rows.js';
|
|
3
3
|
/** The parts of the product summary, each with the theme role it draws unless a component token names another. */
|
|
4
4
|
declare const PRODUCT_SUMMARY_ROLES: {
|
|
@@ -34,6 +34,43 @@ export type ProductSummaryColors = Readonly<Record<ProductSummaryPart, string>>;
|
|
|
34
34
|
* either.
|
|
35
35
|
*/
|
|
36
36
|
export declare function productSummaryColors(theme: ThemeStyle, settings?: Pick<ProductSummaryBlock['props'], 'buttonSurface' | 'buttonInk'>): ProductSummaryColors;
|
|
37
|
+
/** One run of the plain summary's words: its size and weight, and the line it stands on where the merchant set no size for it. */
|
|
38
|
+
export interface ProductSummaryFace {
|
|
39
|
+
readonly size: number;
|
|
40
|
+
readonly weight: number;
|
|
41
|
+
readonly lineHeight?: number;
|
|
42
|
+
}
|
|
43
|
+
/** The price and the compare-at as one pair, centred on each other at the space the merchant set between them. */
|
|
44
|
+
export interface ProductSummaryPair {
|
|
45
|
+
readonly gap: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The plain summary's type and the gaps between its rows: the title, the
|
|
49
|
+
* price and the compare-at, the space above the price row, whether a price
|
|
50
|
+
* with no words of its own still draws its empty words 4 after its digits,
|
|
51
|
+
* and the pair the price and the compare-at stand in where the merchant set
|
|
52
|
+
* the space between them.
|
|
53
|
+
*/
|
|
54
|
+
export interface ProductSummaryLook {
|
|
55
|
+
readonly title: ProductSummaryFace;
|
|
56
|
+
readonly price: ProductSummaryFace;
|
|
57
|
+
readonly compareAt: ProductSummaryFace;
|
|
58
|
+
readonly priceGap: number;
|
|
59
|
+
readonly emptyPriceWords: boolean;
|
|
60
|
+
readonly pair?: ProductSummaryPair;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The plain summary as the merchant set it, and the summary it always drew
|
|
64
|
+
* for every part they left out. A title whose size the merchant left out
|
|
65
|
+
* stands on the summary's 33 point line; one at a size they set stands on the
|
|
66
|
+
* face's own line, as Figma's automatic line does. A weight names the face the
|
|
67
|
+
* host draws nearest it. Where the merchant set the space between the price
|
|
68
|
+
* and the compare-at, the two stand in one pair, centred on each other as
|
|
69
|
+
* Figma's row centres them, and a price with no words draws none before the
|
|
70
|
+
* space; left out, the compare-at stands on the price's baseline after the
|
|
71
|
+
* price's words, empty ones included, as before.
|
|
72
|
+
*/
|
|
73
|
+
export declare function productSummaryLook(settings: ProductSummaryLookSettings): ProductSummaryLook;
|
|
37
74
|
/**
|
|
38
75
|
* What the summary says the compare-at price saves, in the way the merchant
|
|
39
76
|
* chose: the amount ("Save 36.190 KWD"), the percent ("−17%"), or nothing.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-summary.d.ts","sourceRoot":"","sources":["../src/product-summary.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"product-summary.d.ts","sourceRoot":"","sources":["../src/product-summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,kHAAkH;AAClH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;CAqBoC,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;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,UAAU,EACjB,QAAQ,GAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW,CAAM,GAC/E,oBAAoB,CAOtB;AAED,kIAAkI;AAClI,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,kHAAkH;AAClH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,0BAA0B,GAAG,kBAAkB,CAqB3F;AAID;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAC9C,QAAQ,EAAE,UAAU,EACpB,eAAe,EAAE,UAAU,EAC3B,KAAK,EAAE,UAAU,GAAG,SAAS,GAC5B,MAAM,GAAG,IAAI,CAaf"}
|
package/dist/product-summary.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PAGE_HEADER_DEFAULT_INKS, } from '@shoplix-ai/sdui-schema';
|
|
1
|
+
import { PAGE_HEADER_DEFAULT_INKS, PRODUCT_SUMMARY_DEFAULTS, } from '@shoplix-ai/sdui-schema';
|
|
2
2
|
import { derivedMoney, discountPercent, moneyAmount } from './money.js';
|
|
3
3
|
import { chosenRole, partColors } from './part-colors.js';
|
|
4
4
|
import { platformWords } from './words.js';
|
|
@@ -41,6 +41,39 @@ export function productSummaryColors(theme, settings = {}) {
|
|
|
41
41
|
button_ink: chosenRole(theme, settings.buttonInk, table.button_ink),
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* The plain summary as the merchant set it, and the summary it always drew
|
|
46
|
+
* for every part they left out. A title whose size the merchant left out
|
|
47
|
+
* stands on the summary's 33 point line; one at a size they set stands on the
|
|
48
|
+
* face's own line, as Figma's automatic line does. A weight names the face the
|
|
49
|
+
* host draws nearest it. Where the merchant set the space between the price
|
|
50
|
+
* and the compare-at, the two stand in one pair, centred on each other as
|
|
51
|
+
* Figma's row centres them, and a price with no words draws none before the
|
|
52
|
+
* space; left out, the compare-at stands on the price's baseline after the
|
|
53
|
+
* price's words, empty ones included, as before.
|
|
54
|
+
*/
|
|
55
|
+
export function productSummaryLook(settings) {
|
|
56
|
+
return {
|
|
57
|
+
title: {
|
|
58
|
+
size: settings.titleSize ?? PRODUCT_SUMMARY_DEFAULTS.titleSize,
|
|
59
|
+
weight: settings.titleWeight ?? PRODUCT_SUMMARY_DEFAULTS.titleWeight,
|
|
60
|
+
...(settings.titleSize === undefined
|
|
61
|
+
? { lineHeight: PRODUCT_SUMMARY_DEFAULTS.titleLine }
|
|
62
|
+
: {}),
|
|
63
|
+
},
|
|
64
|
+
price: {
|
|
65
|
+
size: settings.priceSize ?? PRODUCT_SUMMARY_DEFAULTS.priceSize,
|
|
66
|
+
weight: settings.priceWeight ?? PRODUCT_SUMMARY_DEFAULTS.priceWeight,
|
|
67
|
+
},
|
|
68
|
+
compareAt: {
|
|
69
|
+
size: settings.compareAtSize ?? PRODUCT_SUMMARY_DEFAULTS.compareAtSize,
|
|
70
|
+
weight: settings.compareAtWeight ?? PRODUCT_SUMMARY_DEFAULTS.compareAtWeight,
|
|
71
|
+
},
|
|
72
|
+
priceGap: settings.priceGap ?? PRODUCT_SUMMARY_DEFAULTS.priceGap,
|
|
73
|
+
emptyPriceWords: settings.compareAtGap === undefined,
|
|
74
|
+
...(settings.compareAtGap === undefined ? {} : { pair: { gap: settings.compareAtGap } }),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
44
77
|
const MINUS = '\u2212';
|
|
45
78
|
/**
|
|
46
79
|
* What the summary says the compare-at price saves, in the way the merchant
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-summary.js","sourceRoot":"","sources":["../src/product-summary.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,
|
|
1
|
+
{"version":3,"file":"product-summary.js","sourceRoot":"","sources":["../src/product-summary.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GAMzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,kHAAkH;AAClH,MAAM,qBAAqB,GAAG;IAC5B,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,GAAG,EAAE,QAAQ;IACb,cAAc,EAAE,QAAQ;IACxB,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,QAAQ;IACtB,IAAI,EAAE,SAAS;IACf,aAAa,EAAE,QAAQ;IACvB,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,MAAM;IACjB,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,OAAO;IACf,GAAG,EAAE,QAAQ;IACb,cAAc,EAAE,wBAAwB,CAAC,MAAM;IAC/C,UAAU,EAAE,wBAAwB,CAAC,GAAG;CACqB,CAAC;AAMhE;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAiB,EACjB,WAA8E,EAAE;IAEhF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;IAC1E,OAAO;QACL,GAAG,KAAK;QACR,cAAc,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,CAAC;QAC/E,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC;KACpE,CAAC;AACJ,CAAC;AA8BD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAoC;IACrE,OAAO;QACL,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ,CAAC,SAAS,IAAI,wBAAwB,CAAC,SAAS;YAC9D,MAAM,EAAE,QAAQ,CAAC,WAAW,IAAI,wBAAwB,CAAC,WAAW;YACpE,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS;gBAClC,CAAC,CAAC,EAAE,UAAU,EAAE,wBAAwB,CAAC,SAAS,EAAE;gBACpD,CAAC,CAAC,EAAE,CAAC;SACR;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ,CAAC,SAAS,IAAI,wBAAwB,CAAC,SAAS;YAC9D,MAAM,EAAE,QAAQ,CAAC,WAAW,IAAI,wBAAwB,CAAC,WAAW;SACrE;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ,CAAC,aAAa,IAAI,wBAAwB,CAAC,aAAa;YACtE,MAAM,EAAE,QAAQ,CAAC,eAAe,IAAI,wBAAwB,CAAC,eAAe;SAC7E;QACD,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,wBAAwB,CAAC,QAAQ;QAChE,eAAe,EAAE,QAAQ,CAAC,YAAY,KAAK,SAAS;QACpD,GAAG,CAAC,QAAQ,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;KACzF,CAAC;AACJ,CAAC;AAED,MAAM,KAAK,GAAG,QAAQ,CAAC;AAEvB;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,MAAmB,EACnB,MAA8C,EAC9C,QAAoB,EACpB,eAA2B,EAC3B,KAA6B;IAE7B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACpC,IAAI,SAAS,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9D,IAAI,SAAS,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAClD,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,OAAO,GAAG,CAAC;IACzD,CAAC;IACD,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IAC9D,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,GAAG,GAAG,EAAE,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5E,OAAO,GAAG,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;AACjH,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.
|
|
7
|
+
export declare const CONTRACT_VERSION = "5.32.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.
|
|
7
|
+
export const CONTRACT_VERSION = '5.32.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.
|
|
3
|
+
"version": "5.32.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.
|
|
29
|
+
"@shoplix-ai/sdui-schema": "1.83.0"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"react": ">=19.0.0"
|