@shoplix-ai/sdui-schema 1.0.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/LICENSE +21 -0
- package/dist/action.d.ts +26 -0
- package/dist/action.d.ts.map +1 -0
- package/dist/action.js +27 -0
- package/dist/action.js.map +1 -0
- package/dist/assets.d.ts +80 -0
- package/dist/assets.d.ts.map +1 -0
- package/dist/assets.js +101 -0
- package/dist/assets.js.map +1 -0
- package/dist/binding.d.ts +144 -0
- package/dist/binding.d.ts.map +1 -0
- package/dist/binding.js +80 -0
- package/dist/binding.js.map +1 -0
- package/dist/block-definition.d.ts +1639 -0
- package/dist/block-definition.d.ts.map +1 -0
- package/dist/block-definition.js +527 -0
- package/dist/block-definition.js.map +1 -0
- package/dist/block-type-id.d.ts +15 -0
- package/dist/block-type-id.d.ts.map +1 -0
- package/dist/block-type-id.js +43 -0
- package/dist/block-type-id.js.map +1 -0
- package/dist/block-type.d.ts +21 -0
- package/dist/block-type.d.ts.map +1 -0
- package/dist/block-type.js +24 -0
- package/dist/block-type.js.map +1 -0
- package/dist/blocks.d.ts +922 -0
- package/dist/blocks.d.ts.map +1 -0
- package/dist/blocks.js +353 -0
- package/dist/blocks.js.map +1 -0
- package/dist/definition-validator.d.ts +47 -0
- package/dist/definition-validator.d.ts.map +1 -0
- package/dist/definition-validator.js +340 -0
- package/dist/definition-validator.js.map +1 -0
- package/dist/display.d.ts +139 -0
- package/dist/display.d.ts.map +1 -0
- package/dist/display.js +118 -0
- package/dist/display.js.map +1 -0
- package/dist/envelope.d.ts +2721 -0
- package/dist/envelope.d.ts.map +1 -0
- package/dist/envelope.js +116 -0
- package/dist/envelope.js.map +1 -0
- package/dist/icons.d.ts +10 -0
- package/dist/icons.d.ts.map +1 -0
- package/dist/icons.js +49 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/locale.d.ts +11 -0
- package/dist/locale.d.ts.map +1 -0
- package/dist/locale.js +15 -0
- package/dist/locale.js.map +1 -0
- package/dist/manifest.d.ts +28 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +242 -0
- package/dist/manifest.js.map +1 -0
- package/dist/parse.d.ts +33 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +61 -0
- package/dist/parse.js.map +1 -0
- package/dist/path.d.ts +3 -0
- package/dist/path.d.ts.map +1 -0
- package/dist/path.js +14 -0
- package/dist/path.js.map +1 -0
- package/dist/primitives.d.ts +1206 -0
- package/dist/primitives.d.ts.map +1 -0
- package/dist/primitives.js +631 -0
- package/dist/primitives.js.map +1 -0
- package/dist/props.d.ts +9 -0
- package/dist/props.d.ts.map +1 -0
- package/dist/props.js +12 -0
- package/dist/props.js.map +1 -0
- package/dist/screen.d.ts +57 -0
- package/dist/screen.d.ts.map +1 -0
- package/dist/screen.js +76 -0
- package/dist/screen.js.map +1 -0
- package/dist/starters/electronics.d.ts +3 -0
- package/dist/starters/electronics.d.ts.map +1 -0
- package/dist/starters/electronics.js +235 -0
- package/dist/starters/electronics.js.map +1 -0
- package/dist/starters/fashion.d.ts +3 -0
- package/dist/starters/fashion.d.ts.map +1 -0
- package/dist/starters/fashion.js +232 -0
- package/dist/starters/fashion.js.map +1 -0
- package/dist/starters/index.d.ts +5 -0
- package/dist/starters/index.d.ts.map +1 -0
- package/dist/starters/index.js +10 -0
- package/dist/starters/index.js.map +1 -0
- package/dist/starters/minimal.d.ts +3 -0
- package/dist/starters/minimal.d.ts.map +1 -0
- package/dist/starters/minimal.js +232 -0
- package/dist/starters/minimal.js.map +1 -0
- package/dist/starters/starter-seed.d.ts +17 -0
- package/dist/starters/starter-seed.d.ts.map +1 -0
- package/dist/starters/starter-seed.js +2 -0
- package/dist/starters/starter-seed.js.map +1 -0
- package/dist/theme.d.ts +54 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +68 -0
- package/dist/theme.js.map +1 -0
- package/dist/tokens.d.ts +115 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +349 -0
- package/dist/tokens.js.map +1 -0
- package/dist/version.d.ts +11 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +10 -0
- package/dist/version.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"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"}
|
package/dist/envelope.js
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { SCHEMA_VERSION } from './version.js';
|
|
3
|
+
import { localeCodeSchema } from './locale.js';
|
|
4
|
+
import { themeTokensSchema } from './tokens.js';
|
|
5
|
+
import { navigationSchema } from './theme.js';
|
|
6
|
+
import { screenDocumentSchema, screenRefSchema } from './screen.js';
|
|
7
|
+
import { envelopeAssetsSchema } from './assets.js';
|
|
8
|
+
import { envelopeBlockDefinitionSchema } from './block-definition.js';
|
|
9
|
+
import { parseBlockTypeId } from './block-type.js';
|
|
10
|
+
const privateBlockTypeIdSchema = z
|
|
11
|
+
.string()
|
|
12
|
+
.refine((id) => parseBlockTypeId(id)?.kind === 'private', "expected a Shop's own block type id");
|
|
13
|
+
/** One Block Definition at the version a Release froze, keyed by the type it defines. */
|
|
14
|
+
export const frozenBlockDefinitionSchema = z.strictObject({
|
|
15
|
+
version: z.int().positive(),
|
|
16
|
+
definition: envelopeBlockDefinitionSchema,
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* The Composed Block definitions a screen's blocks name, frozen with the
|
|
20
|
+
* Release. A phone reads a definition from here and never fetches one on its
|
|
21
|
+
* own. Absent means the screen names no Composed Block, so a document written
|
|
22
|
+
* before the map existed still parses.
|
|
23
|
+
*/
|
|
24
|
+
export const envelopeBlockDefinitionsSchema = z.record(privateBlockTypeIdSchema, frozenBlockDefinitionSchema);
|
|
25
|
+
const storefrontDomainSchema = z
|
|
26
|
+
.string()
|
|
27
|
+
.regex(/^[a-z0-9][a-z0-9-]*(\.[a-z0-9][a-z0-9-]*)+$/i, 'expected a bare domain name');
|
|
28
|
+
/**
|
|
29
|
+
* Everything a Shell carries except the address it came from. The buyer's
|
|
30
|
+
* Shell names a release; the previewer's names a draft or a pinned release
|
|
31
|
+
* instead, and the runtime renders either from this one shape.
|
|
32
|
+
*/
|
|
33
|
+
const shellBodySchema = z.object({
|
|
34
|
+
schemaVersion: z.literal(SCHEMA_VERSION),
|
|
35
|
+
navigation: navigationSchema,
|
|
36
|
+
tokens: themeTokensSchema,
|
|
37
|
+
storefront: z.object({
|
|
38
|
+
domain: storefrontDomainSchema,
|
|
39
|
+
publicToken: z.string().min(1),
|
|
40
|
+
}),
|
|
41
|
+
languages: z
|
|
42
|
+
.object({
|
|
43
|
+
default: localeCodeSchema,
|
|
44
|
+
supported: z.array(localeCodeSchema).min(1),
|
|
45
|
+
})
|
|
46
|
+
.superRefine((languages, ctx) => {
|
|
47
|
+
if (!languages.supported.includes(languages.default)) {
|
|
48
|
+
ctx.addIssue({
|
|
49
|
+
code: 'custom',
|
|
50
|
+
message: 'the default language must be one of the supported languages',
|
|
51
|
+
path: ['default'],
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}),
|
|
55
|
+
home: screenDocumentSchema,
|
|
56
|
+
assets: envelopeAssetsSchema,
|
|
57
|
+
/**
|
|
58
|
+
* Every screen of the live release, by id and kind, without its blocks. A
|
|
59
|
+
* device opens a tab, a block action or a deep link through this index, and
|
|
60
|
+
* fetches the blocks by release address. Absent means home and the tabs only,
|
|
61
|
+
* so a document written before the index existed still parses.
|
|
62
|
+
*/
|
|
63
|
+
screens: z.array(screenRefSchema).optional(),
|
|
64
|
+
/**
|
|
65
|
+
* The kill switch for a live release: Block Types the platform turned off
|
|
66
|
+
* after it shipped. Absent means none, so a document written before the list
|
|
67
|
+
* existed still parses. A device treats a named type as an unknown one.
|
|
68
|
+
*/
|
|
69
|
+
disabledBlockTypes: z.array(z.string().min(1)).optional(),
|
|
70
|
+
/** The definitions the inlined home screen needs, frozen with the live release. */
|
|
71
|
+
blockDefinitions: envelopeBlockDefinitionsSchema.optional(),
|
|
72
|
+
});
|
|
73
|
+
/**
|
|
74
|
+
* The one mutable document a device fetches. Everything else is addressed
|
|
75
|
+
* by release and immutable. Envelopes are pure design: full locale objects,
|
|
76
|
+
* never catalog data — the device resolves Bindings live from Shopify.
|
|
77
|
+
*/
|
|
78
|
+
export const shellEnvelopeSchema = shellBodySchema.extend({ releaseId: z.uuid() });
|
|
79
|
+
/** One screen of one immutable release: same address, same bytes, forever. */
|
|
80
|
+
export const screenEnvelopeSchema = z.object({
|
|
81
|
+
schemaVersion: z.literal(SCHEMA_VERSION),
|
|
82
|
+
releaseId: z.uuid(),
|
|
83
|
+
screen: screenDocumentSchema,
|
|
84
|
+
assets: envelopeAssetsSchema,
|
|
85
|
+
blockDefinitions: envelopeBlockDefinitionsSchema.optional(),
|
|
86
|
+
});
|
|
87
|
+
/**
|
|
88
|
+
* What a preview session serves instead of a release address: the merchant's
|
|
89
|
+
* live draft, or one frozen release it was pinned to. A pinned target names
|
|
90
|
+
* its release by number, which is what a merchant calls it.
|
|
91
|
+
*/
|
|
92
|
+
export const previewTargetSchema = z.discriminatedUnion('kind', [
|
|
93
|
+
z.object({ kind: z.literal('draft'), releaseId: z.null() }),
|
|
94
|
+
z.object({
|
|
95
|
+
kind: z.literal('release'),
|
|
96
|
+
releaseId: z.uuid(),
|
|
97
|
+
releaseNumber: z.number().int().positive(),
|
|
98
|
+
label: z.string().nullable(),
|
|
99
|
+
}),
|
|
100
|
+
]);
|
|
101
|
+
export const previewShellEnvelopeSchema = shellBodySchema.extend({
|
|
102
|
+
target: previewTargetSchema,
|
|
103
|
+
/**
|
|
104
|
+
* One opaque token that changes only when the previewed design changed. A
|
|
105
|
+
* previewer polls it and re-fetches nothing while it holds steady.
|
|
106
|
+
*/
|
|
107
|
+
signal: z.string().min(1),
|
|
108
|
+
});
|
|
109
|
+
export const previewScreenEnvelopeSchema = z.object({
|
|
110
|
+
schemaVersion: z.literal(SCHEMA_VERSION),
|
|
111
|
+
target: previewTargetSchema,
|
|
112
|
+
screen: screenDocumentSchema,
|
|
113
|
+
assets: envelopeAssetsSchema,
|
|
114
|
+
blockDefinitions: envelopeBlockDefinitionsSchema.optional(),
|
|
115
|
+
});
|
|
116
|
+
//# sourceMappingURL=envelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"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"}
|
package/dist/icons.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The app's icon set, named once here so the tab bar, the feature strip, the
|
|
3
|
+
* icon Primitive, the canvas twin and the native renderer all draw from one
|
|
4
|
+
* list. A side that cannot draw a name in this list is a bug its own test
|
|
5
|
+
* catches, not a silent blank.
|
|
6
|
+
*/
|
|
7
|
+
export declare const ICON_NAMES: readonly ["bell", "book-open", "camera", "compass", "credit-card", "gem", "gift", "globe", "headphones", "heart", "home", "image", "info", "layout-grid", "leaf", "life-buoy", "lock", "map-pin", "menu", "message-circle", "newspaper", "package", "percent", "phone", "refresh-cw", "search", "shield", "shirt", "shopping-bag", "sparkles", "star", "store", "tag", "truck", "user", "zap"];
|
|
8
|
+
export type IconName = (typeof ICON_NAMES)[number];
|
|
9
|
+
export declare function isIconName(name: string): name is IconName;
|
|
10
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,UAAU,gYAqCb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAInD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,QAAQ,CAEzD"}
|
package/dist/icons.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The app's icon set, named once here so the tab bar, the feature strip, the
|
|
3
|
+
* icon Primitive, the canvas twin and the native renderer all draw from one
|
|
4
|
+
* list. A side that cannot draw a name in this list is a bug its own test
|
|
5
|
+
* catches, not a silent blank.
|
|
6
|
+
*/
|
|
7
|
+
export const ICON_NAMES = [
|
|
8
|
+
'bell',
|
|
9
|
+
'book-open',
|
|
10
|
+
'camera',
|
|
11
|
+
'compass',
|
|
12
|
+
'credit-card',
|
|
13
|
+
'gem',
|
|
14
|
+
'gift',
|
|
15
|
+
'globe',
|
|
16
|
+
'headphones',
|
|
17
|
+
'heart',
|
|
18
|
+
'home',
|
|
19
|
+
'image',
|
|
20
|
+
'info',
|
|
21
|
+
'layout-grid',
|
|
22
|
+
'leaf',
|
|
23
|
+
'life-buoy',
|
|
24
|
+
'lock',
|
|
25
|
+
'map-pin',
|
|
26
|
+
'menu',
|
|
27
|
+
'message-circle',
|
|
28
|
+
'newspaper',
|
|
29
|
+
'package',
|
|
30
|
+
'percent',
|
|
31
|
+
'phone',
|
|
32
|
+
'refresh-cw',
|
|
33
|
+
'search',
|
|
34
|
+
'shield',
|
|
35
|
+
'shirt',
|
|
36
|
+
'shopping-bag',
|
|
37
|
+
'sparkles',
|
|
38
|
+
'star',
|
|
39
|
+
'store',
|
|
40
|
+
'tag',
|
|
41
|
+
'truck',
|
|
42
|
+
'user',
|
|
43
|
+
'zap',
|
|
44
|
+
];
|
|
45
|
+
const KNOWN_ICONS = new Set(ICON_NAMES);
|
|
46
|
+
export function isIconName(name) {
|
|
47
|
+
return KNOWN_ICONS.has(name);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM;IACN,WAAW;IACX,QAAQ;IACR,SAAS;IACT,aAAa;IACb,KAAK;IACL,MAAM;IACN,OAAO;IACP,YAAY;IACZ,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,aAAa;IACb,MAAM;IACN,WAAW;IACX,MAAM;IACN,SAAS;IACT,MAAM;IACN,gBAAgB;IAChB,WAAW;IACX,SAAS;IACT,SAAS;IACT,OAAO;IACP,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,cAAc;IACd,UAAU;IACV,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;CACG,CAAC;AAIX,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;AAE7D,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export { SCHEMA_VERSION } from './version.js';
|
|
2
|
+
export type { SchemaVersion } from './version.js';
|
|
3
|
+
export type { LocaleCode, LocalizedText } from './locale.js';
|
|
4
|
+
export { actionOf } from './action.js';
|
|
5
|
+
export type { Action, ActionType } from './action.js';
|
|
6
|
+
export { BINDING_TARGET_FORMS, PRODUCT_SORT_KEYS, describeBinding } from './binding.js';
|
|
7
|
+
export type { Binding, BindingKind, BindingTargetForm, CollectionBinding, CollectionsBinding, EntityTarget, ProductBinding, ProductSortKey, ProductsBinding, } from './binding.js';
|
|
8
|
+
export { DEFAULT_THEME_STYLE, SEMANTIC_TOKENS, linkSemanticToken, resolveThemeStyle, semanticTokensLinked, terminalTokenPath, writeSemanticToken, } from './tokens.js';
|
|
9
|
+
export type { DimensionValue, SemanticTokenKey, SemanticTokenSpec, ThemeStyle, ThemeTokens, TokenGroup, TokenLeaf, TokenType, TokenValue, } from './tokens.js';
|
|
10
|
+
export { BLOCK_ID_PATTERN, BLOCK_TYPES } from './blocks.js';
|
|
11
|
+
export { BLOCK_TYPE_ID_MAX_LENGTH, BLOCK_TYPE_ID_PATTERN, BLOCK_TYPE_SEPARATOR, isWellFormedShopSlug, } from './block-type-id.js';
|
|
12
|
+
export { parseBlockTypeId, privateBlockTypeId } from './block-type.js';
|
|
13
|
+
export type { BlockTypeIdentity, PlatformBlockTypeIdentity, PrivateBlockTypeIdentity, UnlistedBlockTypeIdentity, } from './block-type.js';
|
|
14
|
+
export type { AddToCartBlock, AnnouncementBarBlock, Block, BlockType, ButtonBlock, CollectionCirclesBlock, CollectionGridBlock, CollectionRowBlock, CountdownBlock, DividerBlock, FeatureStripBlock, HeroBannerBlock, ImageBlock, KnownBlock, ProductCardBlock, ProductCarouselBlock, ProductGalleryBlock, ProductGridBlock, ProductListBlock, ProductSpecsBlock, ProductSummaryBlock, PromoBannerBlock, ReviewsSlotBlock, SearchBarBlock, SectionHeaderBlock, SpacerBlock, TextBlock, UnknownBlock, VariantPickerBlock, VideoBlock, } from './blocks.js';
|
|
15
|
+
export { ICON_NAMES, isIconName } from './icons.js';
|
|
16
|
+
export type { IconName } from './icons.js';
|
|
17
|
+
export { BUTTON_STYLES, GRID_COLUMNS, IMAGE_SHAPES, ITEM_IMAGE_FIELD, ITEM_TEXT_FIELDS, LAYOUT_ALIGNMENTS, PRIMITIVE_CHILD_SLOTS, PRIMITIVE_TYPES, SHOW_WHEN_CONDITIONS, TEXT_ALIGNMENTS, TEXT_SIZES, TEXT_WEIGHTS, composedBodyAssetIds, composedBodyAssetReferences, composedBodyConditions, composedBodyItemUses, composedBodyReferences, composedBodyRepeaters, composedBodyShape, enumSlotValues, isListedPrimitive, isTokenRole, nodeAtBodyPath, readsItem, tokenRoleValue, unknownPrimitivesOf, } from './primitives.js';
|
|
18
|
+
export type { AvailabilityPrimitive, BadgePrimitive, ButtonPrimitive, ComposedBodyCondition, ComposedBodyItemUse, ComposedBodyReference, ComposedBodyRepeater, DividerPrimitive, EnvelopeGridPrimitive, EnvelopePrimitiveNode, EnvelopeRepeaterPrimitive, EnvelopeRowPrimitive, EnvelopeStackPrimitive, GridPrimitive, IconPrimitive, ImagePrimitive, ItemTextField, PricePrimitive, PrimitiveChildSlot, PrimitiveNode, BodyAssetReference, PrimitiveType, RepeaterPrimitive, RowPrimitive, ShowWhen, ShowWhenConditionName, SpacerPrimitive, StackPrimitive, TextPrimitive, TokenReference, UnknownPrimitive, UnlistedPrimitiveNode, ValueSlot, } from './primitives.js';
|
|
19
|
+
export { BLOCK_BINDING_KINDS, BLOCK_CAPABILITY_NAMES, ROW_FIELD_TYPES, SETTING_TYPES, carriesValue, composedBlockPropsIssues, describeComposedBlockProps, composedPropAssetReferences, declaredBinding, defaultComposedBlockProps, defaultRowValue, } from './block-definition.js';
|
|
20
|
+
export type { ActionSetting, BlockBindingDeclaration, BlockBindingKind, BlockCapabilityName, BlockDefinition, BlockDefinitionKind, BlockPlacement, BlockSetting, CodeBlockDefinition, ColorChoice, ColorSetting, ComposedBlockDefinition, EnvelopeBlockDefinition, EnvelopeComposedBlockDefinition, ImageSetting, NumberSetting, RowFieldSetting, RowFieldType, RowsSetting, SectionSetting, SelectSetting, SettingType, SettingValueIssue, SettingValueIssueCode, TextSetting, ToggleSetting, } from './block-definition.js';
|
|
21
|
+
export { DEFINITION_ISSUE, DEFINITION_LIMITS, definitionIssues } from './definition-validator.js';
|
|
22
|
+
export { definitionPathOf } from './path.js';
|
|
23
|
+
export type { DefinitionIssue, DefinitionIssueCode, DefinitionValidation, } from './definition-validator.js';
|
|
24
|
+
export { SCREEN_KINDS, screenSubject } from './screen.js';
|
|
25
|
+
export type { ScreenDocument, ScreenKind, ScreenRef, SubjectKind } from './screen.js';
|
|
26
|
+
export { NAVIGATION_TAB_LIMITS } from './theme.js';
|
|
27
|
+
export type { Navigation, NavigationTab, ThemeDocument } from './theme.js';
|
|
28
|
+
export type { EnvelopeBlockDefinitions, FrozenBlockDefinition, PreviewScreenEnvelope, PreviewShellEnvelope, PreviewTarget, ScreenEnvelope, ShellBody, ShellEnvelope, } from './envelope.js';
|
|
29
|
+
export { assetReferencesOf, missingMediaOf, withoutUnchosenMedia } from './assets.js';
|
|
30
|
+
export type { AssetDisplay, AssetReference, AssetRendition, EnvelopeAssets, MissingMedia, } from './assets.js';
|
|
31
|
+
export { bindingItems, itemAvailable, itemImage, itemPrice, itemText } from './display.js';
|
|
32
|
+
export type { BindingData, BoundItem, CollectionDisplay, DisplayImage, DisplayMoney, ProductDisplay, ProductOption, ProductVariantDisplay, } from './display.js';
|
|
33
|
+
export { BLOCK_MANIFEST } from './manifest.js';
|
|
34
|
+
export type { BlockManifestEntry } from './manifest.js';
|
|
35
|
+
export { blockPropKeys } from './props.js';
|
|
36
|
+
export { parseBinding, parseBlockDefinition, parseCollectionDisplay, parseEnvelopeBlockDefinitions, parsePreviewScreenEnvelope, parsePreviewShellEnvelope, parseProductDisplay, parseSchemaVersion, parseScreenDocument, parseScreenEnvelope, parseShellEnvelope, parseThemeDocument, parseThemeTokens, } from './parse.js';
|
|
37
|
+
export type { ParseIssue, ParseResult } from './parse.js';
|
|
38
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export { SCHEMA_VERSION } from './version.js';
|
|
2
|
+
export { actionOf } from './action.js';
|
|
3
|
+
export { BINDING_TARGET_FORMS, PRODUCT_SORT_KEYS, describeBinding } from './binding.js';
|
|
4
|
+
export { DEFAULT_THEME_STYLE, SEMANTIC_TOKENS, linkSemanticToken, resolveThemeStyle, semanticTokensLinked, terminalTokenPath, writeSemanticToken, } from './tokens.js';
|
|
5
|
+
export { BLOCK_ID_PATTERN, BLOCK_TYPES } from './blocks.js';
|
|
6
|
+
export { BLOCK_TYPE_ID_MAX_LENGTH, BLOCK_TYPE_ID_PATTERN, BLOCK_TYPE_SEPARATOR, isWellFormedShopSlug, } from './block-type-id.js';
|
|
7
|
+
export { parseBlockTypeId, privateBlockTypeId } from './block-type.js';
|
|
8
|
+
export { ICON_NAMES, isIconName } from './icons.js';
|
|
9
|
+
export { BUTTON_STYLES, GRID_COLUMNS, IMAGE_SHAPES, ITEM_IMAGE_FIELD, ITEM_TEXT_FIELDS, LAYOUT_ALIGNMENTS, PRIMITIVE_CHILD_SLOTS, PRIMITIVE_TYPES, SHOW_WHEN_CONDITIONS, TEXT_ALIGNMENTS, TEXT_SIZES, TEXT_WEIGHTS, composedBodyAssetIds, composedBodyAssetReferences, composedBodyConditions, composedBodyItemUses, composedBodyReferences, composedBodyRepeaters, composedBodyShape, enumSlotValues, isListedPrimitive, isTokenRole, nodeAtBodyPath, readsItem, tokenRoleValue, unknownPrimitivesOf, } from './primitives.js';
|
|
10
|
+
export { BLOCK_BINDING_KINDS, BLOCK_CAPABILITY_NAMES, ROW_FIELD_TYPES, SETTING_TYPES, carriesValue, composedBlockPropsIssues, describeComposedBlockProps, composedPropAssetReferences, declaredBinding, defaultComposedBlockProps, defaultRowValue, } from './block-definition.js';
|
|
11
|
+
export { DEFINITION_ISSUE, DEFINITION_LIMITS, definitionIssues } from './definition-validator.js';
|
|
12
|
+
export { definitionPathOf } from './path.js';
|
|
13
|
+
export { SCREEN_KINDS, screenSubject } from './screen.js';
|
|
14
|
+
export { NAVIGATION_TAB_LIMITS } from './theme.js';
|
|
15
|
+
export { assetReferencesOf, missingMediaOf, withoutUnchosenMedia } from './assets.js';
|
|
16
|
+
export { bindingItems, itemAvailable, itemImage, itemPrice, itemText } from './display.js';
|
|
17
|
+
export { BLOCK_MANIFEST } from './manifest.js';
|
|
18
|
+
export { blockPropKeys } from './props.js';
|
|
19
|
+
export { parseBinding, parseBlockDefinition, parseCollectionDisplay, parseEnvelopeBlockDefinitions, parsePreviewScreenEnvelope, parsePreviewShellEnvelope, parseProductDisplay, parseSchemaVersion, parseScreenDocument, parseScreenEnvelope, parseShellEnvelope, parseThemeDocument, parseThemeTokens, } from './parse.js';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAaxF,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAarB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAwCvE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,SAAS,EACT,cAAc,EACd,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAoCzB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,eAAe,EACf,yBAAyB,EACzB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AA8B/B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAO7C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAanD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAStF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAY3F,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
|
package/dist/locale.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const localeCodeSchema: z.ZodString;
|
|
3
|
+
/**
|
|
4
|
+
* Every user-facing string is a full locale object. Envelopes ship all
|
|
5
|
+
* languages; the device resolves to the buyer's language with default-locale
|
|
6
|
+
* fallback. Values may be empty while a draft is incomplete.
|
|
7
|
+
*/
|
|
8
|
+
export declare const localizedTextSchema: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
9
|
+
export type LocaleCode = z.infer<typeof localeCodeSchema>;
|
|
10
|
+
export type LocalizedText = z.infer<typeof localizedTextSchema>;
|
|
11
|
+
//# sourceMappingURL=locale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../src/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB,aAEoD,CAAC;AAElF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,uCAI5B,CAAC;AAEL,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
package/dist/locale.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const localeCodeSchema = z
|
|
3
|
+
.string()
|
|
4
|
+
.regex(/^[a-z]{2}(-[A-Z]{2})?$/, 'expected a locale code like "en" or "ar-SA"');
|
|
5
|
+
/**
|
|
6
|
+
* Every user-facing string is a full locale object. Envelopes ship all
|
|
7
|
+
* languages; the device resolves to the buyer's language with default-locale
|
|
8
|
+
* fallback. Values may be empty while a draft is incomplete.
|
|
9
|
+
*/
|
|
10
|
+
export const localizedTextSchema = z
|
|
11
|
+
.record(localeCodeSchema, z.string().max(2000))
|
|
12
|
+
.refine((value) => Object.keys(value).length > 0, {
|
|
13
|
+
message: 'at least one locale is required',
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=locale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../src/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,EAAE;KACR,KAAK,CAAC,wBAAwB,EAAE,6CAA6C,CAAC,CAAC;AAElF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KAC9C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;IAChD,OAAO,EAAE,iCAAiC;CAC3C,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { BindingKind, BindingTargetForm } from './binding.js';
|
|
2
|
+
import type { BlockType } from './blocks.js';
|
|
3
|
+
import type { ScreenKind } from './screen.js';
|
|
4
|
+
export interface BlockManifestEntry {
|
|
5
|
+
readonly type: BlockType;
|
|
6
|
+
readonly label: string;
|
|
7
|
+
readonly group: 'content' | 'marketing' | 'commerce';
|
|
8
|
+
readonly placement: {
|
|
9
|
+
/** null = allowed on every editable screen kind. */
|
|
10
|
+
readonly allowedScreenKinds: readonly ScreenKind[] | null;
|
|
11
|
+
readonly maxPerScreen: number | null;
|
|
12
|
+
};
|
|
13
|
+
readonly binding: {
|
|
14
|
+
readonly kind: BindingKind;
|
|
15
|
+
readonly targetForms: readonly BindingTargetForm[];
|
|
16
|
+
} | null;
|
|
17
|
+
/** Entitlement key gating the block; null = every plan. */
|
|
18
|
+
readonly planGate: string | null;
|
|
19
|
+
readonly minSchemaVersion: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The declarative truth about the block catalog: what may be placed where,
|
|
23
|
+
* how often, which Binding forms each type accepts, and what gates it.
|
|
24
|
+
* JSON-serializable on purpose — the api mirrors it into block definitions
|
|
25
|
+
* at boot, and the editor palette is generated from it.
|
|
26
|
+
*/
|
|
27
|
+
export declare const BLOCK_MANIFEST: Readonly<Record<BlockType, BlockManifestEntry>>;
|
|
28
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE;QAClB,oDAAoD;QACpD,QAAQ,CAAC,kBAAkB,EAAE,SAAS,UAAU,EAAE,GAAG,IAAI,CAAC;QAC1D,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;QAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,iBAAiB,EAAE,CAAC;KACpD,GAAG,IAAI,CAAC;IACT,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AASD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAqO1E,CAAC"}
|
package/dist/manifest.js
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
const PREMIUM = 'sdui.premium_blocks';
|
|
2
|
+
const weldedProductSlot = {
|
|
3
|
+
placement: { allowedScreenKinds: ['product'], maxPerScreen: 1 },
|
|
4
|
+
binding: { kind: 'product', targetForms: ['subject'] },
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* The declarative truth about the block catalog: what may be placed where,
|
|
8
|
+
* how often, which Binding forms each type accepts, and what gates it.
|
|
9
|
+
* JSON-serializable on purpose — the api mirrors it into block definitions
|
|
10
|
+
* at boot, and the editor palette is generated from it.
|
|
11
|
+
*/
|
|
12
|
+
export const BLOCK_MANIFEST = {
|
|
13
|
+
text: {
|
|
14
|
+
type: 'text',
|
|
15
|
+
label: 'Text',
|
|
16
|
+
group: 'content',
|
|
17
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
18
|
+
binding: null,
|
|
19
|
+
planGate: null,
|
|
20
|
+
minSchemaVersion: 1,
|
|
21
|
+
},
|
|
22
|
+
image: {
|
|
23
|
+
type: 'image',
|
|
24
|
+
label: 'Image',
|
|
25
|
+
group: 'content',
|
|
26
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
27
|
+
binding: null,
|
|
28
|
+
planGate: null,
|
|
29
|
+
minSchemaVersion: 1,
|
|
30
|
+
},
|
|
31
|
+
button: {
|
|
32
|
+
type: 'button',
|
|
33
|
+
label: 'Button',
|
|
34
|
+
group: 'content',
|
|
35
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
36
|
+
binding: null,
|
|
37
|
+
planGate: null,
|
|
38
|
+
minSchemaVersion: 1,
|
|
39
|
+
},
|
|
40
|
+
spacer: {
|
|
41
|
+
type: 'spacer',
|
|
42
|
+
label: 'Spacer',
|
|
43
|
+
group: 'content',
|
|
44
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
45
|
+
binding: null,
|
|
46
|
+
planGate: null,
|
|
47
|
+
minSchemaVersion: 1,
|
|
48
|
+
},
|
|
49
|
+
divider: {
|
|
50
|
+
type: 'divider',
|
|
51
|
+
label: 'Divider',
|
|
52
|
+
group: 'content',
|
|
53
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
54
|
+
binding: null,
|
|
55
|
+
planGate: null,
|
|
56
|
+
minSchemaVersion: 1,
|
|
57
|
+
},
|
|
58
|
+
section_header: {
|
|
59
|
+
type: 'section_header',
|
|
60
|
+
label: 'Section header',
|
|
61
|
+
group: 'content',
|
|
62
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
63
|
+
binding: null,
|
|
64
|
+
planGate: null,
|
|
65
|
+
minSchemaVersion: 1,
|
|
66
|
+
},
|
|
67
|
+
search_bar: {
|
|
68
|
+
type: 'search_bar',
|
|
69
|
+
label: 'Search bar',
|
|
70
|
+
group: 'content',
|
|
71
|
+
placement: { allowedScreenKinds: null, maxPerScreen: 1 },
|
|
72
|
+
binding: null,
|
|
73
|
+
planGate: null,
|
|
74
|
+
minSchemaVersion: 1,
|
|
75
|
+
},
|
|
76
|
+
video: {
|
|
77
|
+
type: 'video',
|
|
78
|
+
label: 'Video',
|
|
79
|
+
group: 'content',
|
|
80
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
81
|
+
binding: null,
|
|
82
|
+
planGate: PREMIUM,
|
|
83
|
+
minSchemaVersion: 1,
|
|
84
|
+
},
|
|
85
|
+
hero_banner: {
|
|
86
|
+
type: 'hero_banner',
|
|
87
|
+
label: 'Hero banner',
|
|
88
|
+
group: 'marketing',
|
|
89
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
90
|
+
binding: null,
|
|
91
|
+
planGate: null,
|
|
92
|
+
minSchemaVersion: 1,
|
|
93
|
+
},
|
|
94
|
+
promo_banner: {
|
|
95
|
+
type: 'promo_banner',
|
|
96
|
+
label: 'Promo banner',
|
|
97
|
+
group: 'marketing',
|
|
98
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
99
|
+
binding: null,
|
|
100
|
+
planGate: null,
|
|
101
|
+
minSchemaVersion: 1,
|
|
102
|
+
},
|
|
103
|
+
announcement_bar: {
|
|
104
|
+
type: 'announcement_bar',
|
|
105
|
+
label: 'Announcement bar',
|
|
106
|
+
group: 'marketing',
|
|
107
|
+
placement: { allowedScreenKinds: null, maxPerScreen: 1 },
|
|
108
|
+
binding: null,
|
|
109
|
+
planGate: null,
|
|
110
|
+
minSchemaVersion: 1,
|
|
111
|
+
},
|
|
112
|
+
countdown: {
|
|
113
|
+
type: 'countdown',
|
|
114
|
+
label: 'Countdown',
|
|
115
|
+
group: 'marketing',
|
|
116
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
117
|
+
binding: null,
|
|
118
|
+
planGate: PREMIUM,
|
|
119
|
+
minSchemaVersion: 1,
|
|
120
|
+
},
|
|
121
|
+
feature_strip: {
|
|
122
|
+
type: 'feature_strip',
|
|
123
|
+
label: 'Feature strip',
|
|
124
|
+
group: 'marketing',
|
|
125
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
126
|
+
binding: null,
|
|
127
|
+
planGate: null,
|
|
128
|
+
minSchemaVersion: 1,
|
|
129
|
+
},
|
|
130
|
+
product_card: {
|
|
131
|
+
type: 'product_card',
|
|
132
|
+
label: 'Product card',
|
|
133
|
+
group: 'commerce',
|
|
134
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
135
|
+
binding: { kind: 'product', targetForms: ['literal'] },
|
|
136
|
+
planGate: null,
|
|
137
|
+
minSchemaVersion: 1,
|
|
138
|
+
},
|
|
139
|
+
product_carousel: {
|
|
140
|
+
type: 'product_carousel',
|
|
141
|
+
label: 'Product carousel',
|
|
142
|
+
group: 'commerce',
|
|
143
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
144
|
+
binding: { kind: 'products', targetForms: ['literal', 'subject'] },
|
|
145
|
+
planGate: null,
|
|
146
|
+
minSchemaVersion: 1,
|
|
147
|
+
},
|
|
148
|
+
product_grid: {
|
|
149
|
+
type: 'product_grid',
|
|
150
|
+
label: 'Product grid',
|
|
151
|
+
group: 'commerce',
|
|
152
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
153
|
+
binding: { kind: 'products', targetForms: ['literal', 'subject'] },
|
|
154
|
+
planGate: null,
|
|
155
|
+
minSchemaVersion: 1,
|
|
156
|
+
},
|
|
157
|
+
product_list: {
|
|
158
|
+
type: 'product_list',
|
|
159
|
+
label: 'Product list',
|
|
160
|
+
group: 'commerce',
|
|
161
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
162
|
+
binding: { kind: 'products', targetForms: ['literal', 'subject'] },
|
|
163
|
+
planGate: null,
|
|
164
|
+
minSchemaVersion: 1,
|
|
165
|
+
},
|
|
166
|
+
collection_circles: {
|
|
167
|
+
type: 'collection_circles',
|
|
168
|
+
label: 'Collection circles',
|
|
169
|
+
group: 'commerce',
|
|
170
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
171
|
+
binding: { kind: 'collections', targetForms: ['literal'] },
|
|
172
|
+
planGate: null,
|
|
173
|
+
minSchemaVersion: 1,
|
|
174
|
+
},
|
|
175
|
+
collection_grid: {
|
|
176
|
+
type: 'collection_grid',
|
|
177
|
+
label: 'Collection grid',
|
|
178
|
+
group: 'commerce',
|
|
179
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
180
|
+
binding: { kind: 'collections', targetForms: ['literal'] },
|
|
181
|
+
planGate: null,
|
|
182
|
+
minSchemaVersion: 1,
|
|
183
|
+
},
|
|
184
|
+
collection_row: {
|
|
185
|
+
type: 'collection_row',
|
|
186
|
+
label: 'Collection row',
|
|
187
|
+
group: 'commerce',
|
|
188
|
+
placement: { allowedScreenKinds: null, maxPerScreen: null },
|
|
189
|
+
binding: { kind: 'collections', targetForms: ['literal'] },
|
|
190
|
+
planGate: null,
|
|
191
|
+
minSchemaVersion: 1,
|
|
192
|
+
},
|
|
193
|
+
product_gallery: {
|
|
194
|
+
type: 'product_gallery',
|
|
195
|
+
label: 'Product gallery',
|
|
196
|
+
group: 'commerce',
|
|
197
|
+
...weldedProductSlot,
|
|
198
|
+
planGate: null,
|
|
199
|
+
minSchemaVersion: 1,
|
|
200
|
+
},
|
|
201
|
+
product_summary: {
|
|
202
|
+
type: 'product_summary',
|
|
203
|
+
label: 'Product summary',
|
|
204
|
+
group: 'commerce',
|
|
205
|
+
...weldedProductSlot,
|
|
206
|
+
planGate: null,
|
|
207
|
+
minSchemaVersion: 1,
|
|
208
|
+
},
|
|
209
|
+
variant_picker: {
|
|
210
|
+
type: 'variant_picker',
|
|
211
|
+
label: 'Variant picker',
|
|
212
|
+
group: 'commerce',
|
|
213
|
+
...weldedProductSlot,
|
|
214
|
+
planGate: null,
|
|
215
|
+
minSchemaVersion: 1,
|
|
216
|
+
},
|
|
217
|
+
add_to_cart: {
|
|
218
|
+
type: 'add_to_cart',
|
|
219
|
+
label: 'Add to cart',
|
|
220
|
+
group: 'commerce',
|
|
221
|
+
...weldedProductSlot,
|
|
222
|
+
planGate: null,
|
|
223
|
+
minSchemaVersion: 1,
|
|
224
|
+
},
|
|
225
|
+
product_specs: {
|
|
226
|
+
type: 'product_specs',
|
|
227
|
+
label: 'Product specs',
|
|
228
|
+
group: 'commerce',
|
|
229
|
+
...weldedProductSlot,
|
|
230
|
+
planGate: null,
|
|
231
|
+
minSchemaVersion: 1,
|
|
232
|
+
},
|
|
233
|
+
reviews_slot: {
|
|
234
|
+
type: 'reviews_slot',
|
|
235
|
+
label: 'Reviews',
|
|
236
|
+
group: 'commerce',
|
|
237
|
+
...weldedProductSlot,
|
|
238
|
+
planGate: null,
|
|
239
|
+
minSchemaVersion: 1,
|
|
240
|
+
},
|
|
241
|
+
};
|
|
242
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/parse.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type SchemaVersion } from './version.js';
|
|
2
|
+
import { type Binding } from './binding.js';
|
|
3
|
+
import { type BlockDefinition } from './block-definition.js';
|
|
4
|
+
import { type ThemeTokens } from './tokens.js';
|
|
5
|
+
import { type ScreenDocument } from './screen.js';
|
|
6
|
+
import { type ThemeDocument } from './theme.js';
|
|
7
|
+
import { type EnvelopeBlockDefinitions, type PreviewScreenEnvelope, type PreviewShellEnvelope, type ScreenEnvelope, type ShellEnvelope } from './envelope.js';
|
|
8
|
+
import { type CollectionDisplay, type ProductDisplay } from './display.js';
|
|
9
|
+
export interface ParseIssue {
|
|
10
|
+
readonly path: string;
|
|
11
|
+
readonly message: string;
|
|
12
|
+
}
|
|
13
|
+
export type ParseResult<T> = {
|
|
14
|
+
readonly ok: true;
|
|
15
|
+
readonly value: T;
|
|
16
|
+
} | {
|
|
17
|
+
readonly ok: false;
|
|
18
|
+
readonly issues: readonly ParseIssue[];
|
|
19
|
+
};
|
|
20
|
+
export declare function parseSchemaVersion(input: unknown): ParseResult<SchemaVersion>;
|
|
21
|
+
export declare function parseBinding(input: unknown): ParseResult<Binding>;
|
|
22
|
+
export declare function parseBlockDefinition(input: unknown): ParseResult<BlockDefinition>;
|
|
23
|
+
export declare function parseThemeTokens(input: unknown): ParseResult<ThemeTokens>;
|
|
24
|
+
export declare function parseScreenDocument(input: unknown): ParseResult<ScreenDocument>;
|
|
25
|
+
export declare function parseThemeDocument(input: unknown): ParseResult<ThemeDocument>;
|
|
26
|
+
export declare function parseShellEnvelope(input: unknown): ParseResult<ShellEnvelope>;
|
|
27
|
+
export declare function parseScreenEnvelope(input: unknown): ParseResult<ScreenEnvelope>;
|
|
28
|
+
export declare function parsePreviewShellEnvelope(input: unknown): ParseResult<PreviewShellEnvelope>;
|
|
29
|
+
export declare function parsePreviewScreenEnvelope(input: unknown): ParseResult<PreviewScreenEnvelope>;
|
|
30
|
+
export declare function parseEnvelopeBlockDefinitions(input: unknown): ParseResult<EnvelopeBlockDefinitions>;
|
|
31
|
+
export declare function parseProductDisplay(input: unknown): ParseResult<ProductDisplay>;
|
|
32
|
+
export declare function parseCollectionDisplay(input: unknown): ParseResult<CollectionDisplay>;
|
|
33
|
+
//# sourceMappingURL=parse.d.ts.map
|