@cmssy/types 0.15.0 → 0.17.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/dist/block-fields.d.ts +106 -124
- package/dist/block-fields.d.ts.map +1 -1
- package/dist/block-fields.js +47 -37
- package/dist/block-fields.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/platform-context.d.ts +5 -210
- package/dist/platform-context.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/block-fields.d.ts
CHANGED
|
@@ -1,224 +1,206 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Block field type definitions.
|
|
3
|
-
* Single source of truth for all field types available in the block schema system.
|
|
4
|
-
*/
|
|
5
1
|
import type { MediaType } from "./shared-constants.js";
|
|
6
|
-
/**
|
|
7
|
-
* All available field types for block schemas.
|
|
8
|
-
*/
|
|
9
2
|
export declare const FieldType: {
|
|
10
|
-
readonly
|
|
11
|
-
readonly
|
|
3
|
+
readonly TEXT: "text";
|
|
4
|
+
readonly TEXTAREA: "textarea";
|
|
12
5
|
readonly RICH_TEXT: "richText";
|
|
13
|
-
readonly
|
|
6
|
+
readonly NUMBER: "number";
|
|
14
7
|
readonly DATE: "date";
|
|
8
|
+
readonly DATETIME: "datetime";
|
|
15
9
|
readonly BOOLEAN: "boolean";
|
|
16
10
|
readonly COLOR: "color";
|
|
17
11
|
readonly MEDIA: "media";
|
|
18
12
|
readonly LINK: "link";
|
|
13
|
+
readonly URL: "url";
|
|
14
|
+
readonly EMAIL: "email";
|
|
19
15
|
readonly SELECT: "select";
|
|
20
16
|
readonly MULTISELECT: "multiselect";
|
|
17
|
+
readonly RADIO: "radio";
|
|
18
|
+
readonly RELATION: "relation";
|
|
21
19
|
readonly REPEATER: "repeater";
|
|
20
|
+
readonly OBJECT: "object";
|
|
21
|
+
readonly LIST: "list";
|
|
22
22
|
readonly FORM: "form";
|
|
23
23
|
readonly PAGE_SELECTOR: "pageSelector";
|
|
24
|
+
readonly PASSWORD: "password";
|
|
25
|
+
readonly PHONE: "phone";
|
|
26
|
+
readonly FILE: "file";
|
|
27
|
+
readonly HIDDEN: "hidden";
|
|
24
28
|
};
|
|
25
29
|
export type FieldType = (typeof FieldType)[keyof typeof FieldType];
|
|
26
|
-
|
|
27
|
-
* Array of all field type values for Zod schemas.
|
|
28
|
-
*/
|
|
29
|
-
export declare const fieldTypeValues: readonly ["singleLine", "multiLine", "richText", "numeric", "date", "boolean", "color", "media", "link", "select", "multiselect", "repeater", "form", "pageSelector"];
|
|
30
|
-
/**
|
|
31
|
-
* Built-in validation patterns for common use cases.
|
|
32
|
-
*/
|
|
30
|
+
export declare const fieldTypeValues: readonly ["text", "textarea", "richText", "number", "date", "datetime", "boolean", "color", "media", "link", "url", "email", "select", "multiselect", "radio", "relation", "repeater", "object", "list", "form", "pageSelector", "password", "phone", "file", "hidden"];
|
|
33
31
|
export type ValidationPattern = "email" | "url" | "phone" | "slug";
|
|
34
|
-
/**
|
|
35
|
-
* Extended validation configuration for fields.
|
|
36
|
-
*/
|
|
37
32
|
export interface FieldValidation {
|
|
38
|
-
/** Minimum length for string fields */
|
|
39
33
|
minLength?: number;
|
|
40
|
-
/** Maximum length for string fields */
|
|
41
34
|
maxLength?: number;
|
|
42
|
-
/** Minimum value for numeric fields */
|
|
43
35
|
min?: number;
|
|
44
|
-
/** Maximum value for numeric fields */
|
|
45
36
|
max?: number;
|
|
46
|
-
/** Validation pattern - built-in name or custom regex string */
|
|
47
37
|
pattern?: ValidationPattern | string;
|
|
48
|
-
/** Custom error message shown when validation fails */
|
|
49
38
|
message?: string;
|
|
50
39
|
}
|
|
51
|
-
/**
|
|
52
|
-
* Condition for showing/hiding a field based on another field's value.
|
|
53
|
-
*/
|
|
54
40
|
export interface ShowWhenCondition {
|
|
55
|
-
/** Field key to check */
|
|
56
41
|
field: string;
|
|
57
|
-
/** Show when field equals this value */
|
|
58
42
|
equals?: unknown;
|
|
59
|
-
/** Show when field does not equal this value */
|
|
60
43
|
notEquals?: unknown;
|
|
61
|
-
/** Show when field value is not empty */
|
|
62
44
|
notEmpty?: boolean;
|
|
63
|
-
/** Show when field value is empty */
|
|
64
45
|
isEmpty?: boolean;
|
|
65
46
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
47
|
+
export type LocalizedText = string | Record<string, string>;
|
|
48
|
+
export type RelationCardinality = "hasOne" | "hasMany" | "manyToMany";
|
|
49
|
+
export type FieldOption = {
|
|
50
|
+
label: LocalizedText;
|
|
51
|
+
value: string;
|
|
52
|
+
};
|
|
69
53
|
export interface BaseFieldConfig {
|
|
70
54
|
type: FieldType;
|
|
71
|
-
label:
|
|
55
|
+
label: LocalizedText;
|
|
72
56
|
required?: boolean;
|
|
73
|
-
placeholder?:
|
|
57
|
+
placeholder?: LocalizedText;
|
|
74
58
|
defaultValue?: unknown;
|
|
75
|
-
|
|
76
|
-
helperText?: string;
|
|
77
|
-
/** @deprecated Use `helperText` instead */
|
|
78
|
-
helpText?: string;
|
|
59
|
+
helperText?: LocalizedText;
|
|
79
60
|
group?: string;
|
|
61
|
+
tab?: string;
|
|
80
62
|
showWhen?: ShowWhenCondition;
|
|
81
63
|
validation?: FieldValidation;
|
|
82
64
|
}
|
|
83
|
-
/**
|
|
84
|
-
* Select field with predefined options.
|
|
85
|
-
*/
|
|
86
65
|
export interface SelectFieldConfig extends BaseFieldConfig {
|
|
87
66
|
type: "select";
|
|
88
|
-
options:
|
|
89
|
-
|
|
90
|
-
value: string;
|
|
91
|
-
}>;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Multi-select field with predefined options.
|
|
95
|
-
*/
|
|
67
|
+
options: FieldOption[];
|
|
68
|
+
}
|
|
96
69
|
export interface MultiselectFieldConfig extends BaseFieldConfig {
|
|
97
70
|
type: "multiselect";
|
|
98
|
-
options:
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
* Repeater field for arrays of items.
|
|
105
|
-
*/
|
|
71
|
+
options: FieldOption[];
|
|
72
|
+
}
|
|
73
|
+
export interface RadioFieldConfig extends BaseFieldConfig {
|
|
74
|
+
type: "radio";
|
|
75
|
+
options: FieldOption[];
|
|
76
|
+
}
|
|
106
77
|
export interface RepeaterFieldConfig extends BaseFieldConfig {
|
|
107
78
|
type: "repeater";
|
|
108
79
|
minItems?: number;
|
|
109
80
|
maxItems?: number;
|
|
110
81
|
schema: Record<string, FieldConfig>;
|
|
111
82
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
83
|
+
export interface ObjectFieldConfig extends BaseFieldConfig {
|
|
84
|
+
type: "object";
|
|
85
|
+
schema: Record<string, FieldConfig>;
|
|
86
|
+
}
|
|
87
|
+
export interface ListFieldConfig extends BaseFieldConfig {
|
|
88
|
+
type: "list";
|
|
89
|
+
itemType: FieldType;
|
|
90
|
+
itemSchema?: Record<string, FieldConfig>;
|
|
91
|
+
}
|
|
115
92
|
export interface MediaFieldConfig extends Omit<BaseFieldConfig, "defaultValue"> {
|
|
116
93
|
type: "media";
|
|
117
|
-
defaultValue?: string;
|
|
118
|
-
/**
|
|
119
|
-
* Restrict which media categories the media picker accepts (image/video/audio/document).
|
|
120
|
-
* Empty/undefined = all allowed. Aligned with mediaTypeValues from ./shared-constants
|
|
121
|
-
* so the block media picker and asset types stay in sync.
|
|
122
|
-
*/
|
|
94
|
+
defaultValue?: string | string[];
|
|
123
95
|
acceptedTypes?: MediaType[];
|
|
124
96
|
accept?: string;
|
|
125
97
|
maxSize?: number;
|
|
98
|
+
multiple?: boolean;
|
|
99
|
+
}
|
|
100
|
+
export interface RelationFieldConfig extends BaseFieldConfig {
|
|
101
|
+
type: "relation";
|
|
102
|
+
relationTo: string;
|
|
103
|
+
relationType?: RelationCardinality;
|
|
126
104
|
}
|
|
127
|
-
/**
|
|
128
|
-
* A reference to a selected page, storing slug and localized display name.
|
|
129
|
-
*/
|
|
130
105
|
export interface PageRef {
|
|
131
106
|
slug: string;
|
|
132
107
|
displayName: Record<string, string>;
|
|
133
108
|
}
|
|
134
|
-
/**
|
|
135
|
-
* Page selector field for selecting pages.
|
|
136
|
-
*/
|
|
137
109
|
export interface PageSelectorFieldConfig extends BaseFieldConfig {
|
|
138
110
|
type: "pageSelector";
|
|
139
111
|
multiple?: boolean;
|
|
140
112
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
export type FieldValue = string | number | boolean |
|
|
150
|
-
/**
|
|
151
|
-
* Maps each field type string to its TypeScript value type.
|
|
152
|
-
* Single source of truth for field type -> value type mapping.
|
|
153
|
-
*/
|
|
113
|
+
export type SimpleFieldType = "text" | "textarea" | "richText" | "number" | "date" | "datetime" | "boolean" | "color" | "link" | "url" | "email" | "form" | "password" | "phone" | "file" | "hidden";
|
|
114
|
+
export interface SimpleFieldConfig extends BaseFieldConfig {
|
|
115
|
+
type: SimpleFieldType;
|
|
116
|
+
}
|
|
117
|
+
export type FieldConfig = SimpleFieldConfig | SelectFieldConfig | MultiselectFieldConfig | RadioFieldConfig | RepeaterFieldConfig | ObjectFieldConfig | ListFieldConfig | MediaFieldConfig | RelationFieldConfig | PageSelectorFieldConfig;
|
|
118
|
+
export interface FieldValueObject {
|
|
119
|
+
[key: string]: FieldValue;
|
|
120
|
+
}
|
|
121
|
+
export type FieldValue = string | number | boolean | PageRef[] | FieldValueObject | FieldValue[];
|
|
154
122
|
export interface FieldTypeValueMap {
|
|
155
|
-
|
|
156
|
-
|
|
123
|
+
text: string;
|
|
124
|
+
textarea: string;
|
|
157
125
|
richText: string;
|
|
158
|
-
|
|
126
|
+
number: number;
|
|
159
127
|
date: string;
|
|
160
|
-
|
|
128
|
+
datetime: string;
|
|
129
|
+
boolean: boolean;
|
|
130
|
+
color: string;
|
|
131
|
+
media: string | string[];
|
|
161
132
|
link: string;
|
|
133
|
+
url: string;
|
|
134
|
+
email: string;
|
|
162
135
|
select: string;
|
|
163
136
|
multiselect: string[];
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
repeater:
|
|
137
|
+
radio: string;
|
|
138
|
+
relation: string | string[];
|
|
139
|
+
repeater: FieldValueObject[];
|
|
140
|
+
object: FieldValueObject;
|
|
141
|
+
list: FieldValue[];
|
|
167
142
|
form: string;
|
|
168
143
|
pageSelector: PageRef[];
|
|
144
|
+
password: string;
|
|
145
|
+
phone: string;
|
|
146
|
+
file: string;
|
|
147
|
+
hidden: string;
|
|
169
148
|
}
|
|
170
|
-
/**
|
|
171
|
-
* Default values for each field type.
|
|
172
|
-
* Frozen to prevent accidental mutation of shared array instances.
|
|
173
|
-
*/
|
|
174
149
|
export declare const FIELD_TYPE_DEFAULTS: Readonly<{
|
|
175
|
-
[K in FieldType]: FieldTypeValueMap[K]
|
|
150
|
+
[K in FieldType]: Readonly<FieldTypeValueMap[K]>;
|
|
176
151
|
}>;
|
|
177
|
-
/**
|
|
178
|
-
* Base typed field config - narrows defaultValue by field type discriminant.
|
|
179
|
-
*/
|
|
180
152
|
type TypedBaseField<T extends FieldType> = {
|
|
181
153
|
type: T;
|
|
182
|
-
label:
|
|
154
|
+
label: LocalizedText;
|
|
183
155
|
required?: boolean;
|
|
184
|
-
placeholder?:
|
|
156
|
+
placeholder?: LocalizedText;
|
|
185
157
|
defaultValue?: FieldTypeValueMap[T];
|
|
186
|
-
helperText?:
|
|
187
|
-
/** @deprecated Use `helperText` instead */
|
|
188
|
-
helpText?: string;
|
|
158
|
+
helperText?: LocalizedText;
|
|
189
159
|
group?: string;
|
|
160
|
+
tab?: string;
|
|
190
161
|
showWhen?: ShowWhenCondition;
|
|
191
162
|
validation?: FieldValidation;
|
|
192
163
|
};
|
|
193
164
|
type TypedSelectField = TypedBaseField<"select"> & {
|
|
194
|
-
options:
|
|
195
|
-
label: string;
|
|
196
|
-
value: string;
|
|
197
|
-
}>;
|
|
165
|
+
options: FieldOption[];
|
|
198
166
|
};
|
|
199
167
|
type TypedMultiselectField = TypedBaseField<"multiselect"> & {
|
|
200
|
-
options:
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
168
|
+
options: FieldOption[];
|
|
169
|
+
};
|
|
170
|
+
type TypedRadioField = TypedBaseField<"radio"> & {
|
|
171
|
+
options: FieldOption[];
|
|
204
172
|
};
|
|
205
173
|
type TypedRepeaterField = TypedBaseField<"repeater"> & {
|
|
206
174
|
minItems?: number;
|
|
207
175
|
maxItems?: number;
|
|
208
176
|
schema: Record<string, TypedFieldConfig>;
|
|
209
177
|
};
|
|
210
|
-
type
|
|
178
|
+
type TypedObjectField = TypedBaseField<"object"> & {
|
|
179
|
+
schema: Record<string, TypedFieldConfig>;
|
|
180
|
+
};
|
|
181
|
+
type TypedListField = TypedBaseField<"list"> & {
|
|
182
|
+
itemType: FieldType;
|
|
183
|
+
itemSchema?: Record<string, TypedFieldConfig>;
|
|
184
|
+
};
|
|
185
|
+
type TypedMediaFieldBase = TypedBaseField<"media"> & {
|
|
211
186
|
acceptedTypes?: MediaType[];
|
|
212
187
|
accept?: string;
|
|
213
188
|
maxSize?: number;
|
|
214
189
|
};
|
|
190
|
+
type TypedMediaField = (TypedMediaFieldBase & {
|
|
191
|
+
multiple?: false;
|
|
192
|
+
defaultValue?: string;
|
|
193
|
+
}) | (TypedMediaFieldBase & {
|
|
194
|
+
multiple: true;
|
|
195
|
+
defaultValue?: string[];
|
|
196
|
+
});
|
|
197
|
+
type TypedRelationField = TypedBaseField<"relation"> & {
|
|
198
|
+
relationTo: string;
|
|
199
|
+
relationType?: RelationCardinality;
|
|
200
|
+
};
|
|
215
201
|
type TypedPageSelectorField = TypedBaseField<"pageSelector"> & {
|
|
216
202
|
multiple?: boolean;
|
|
217
203
|
};
|
|
218
|
-
|
|
219
|
-
* Union of all typed field configurations.
|
|
220
|
-
* Like FieldConfig but with compile-time defaultValue type checking.
|
|
221
|
-
*/
|
|
222
|
-
export type TypedFieldConfig = TypedSelectField | TypedMultiselectField | TypedRepeaterField | TypedMediaField | TypedPageSelectorField | TypedBaseField<"singleLine"> | TypedBaseField<"multiLine"> | TypedBaseField<"richText"> | TypedBaseField<"numeric"> | TypedBaseField<"date"> | TypedBaseField<"boolean"> | TypedBaseField<"color"> | TypedBaseField<"link"> | TypedBaseField<"form">;
|
|
204
|
+
export type TypedFieldConfig = TypedSelectField | TypedMultiselectField | TypedRadioField | TypedRepeaterField | TypedObjectField | TypedListField | TypedMediaField | TypedRelationField | TypedPageSelectorField | TypedBaseField<"text"> | TypedBaseField<"textarea"> | TypedBaseField<"richText"> | TypedBaseField<"number"> | TypedBaseField<"date"> | TypedBaseField<"datetime"> | TypedBaseField<"boolean"> | TypedBaseField<"color"> | TypedBaseField<"link"> | TypedBaseField<"url"> | TypedBaseField<"email"> | TypedBaseField<"form"> | TypedBaseField<"password"> | TypedBaseField<"phone"> | TypedBaseField<"file"> | TypedBaseField<"hidden">;
|
|
223
205
|
export {};
|
|
224
206
|
//# sourceMappingURL=block-fields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-fields.d.ts","sourceRoot":"","sources":["../src/block-fields.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"block-fields.d.ts","sourceRoot":"","sources":["../src/block-fields.ts"],"names":[],"mappings":"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"}
|
package/dist/block-fields.js
CHANGED
|
@@ -1,72 +1,82 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Block field type definitions.
|
|
3
|
-
* Single source of truth for all field types available in the block schema system.
|
|
4
|
-
*/
|
|
5
|
-
// =============================================================================
|
|
6
|
-
// FIELD TYPES
|
|
7
|
-
// =============================================================================
|
|
8
|
-
/**
|
|
9
|
-
* All available field types for block schemas.
|
|
10
|
-
*/
|
|
11
1
|
export const FieldType = {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
MULTI_LINE: "multiLine",
|
|
2
|
+
TEXT: "text",
|
|
3
|
+
TEXTAREA: "textarea",
|
|
15
4
|
RICH_TEXT: "richText",
|
|
16
|
-
|
|
17
|
-
NUMERIC: "numeric",
|
|
5
|
+
NUMBER: "number",
|
|
18
6
|
DATE: "date",
|
|
7
|
+
DATETIME: "datetime",
|
|
19
8
|
BOOLEAN: "boolean",
|
|
20
9
|
COLOR: "color",
|
|
21
|
-
// Media & links
|
|
22
10
|
MEDIA: "media",
|
|
23
11
|
LINK: "link",
|
|
24
|
-
|
|
12
|
+
URL: "url",
|
|
13
|
+
EMAIL: "email",
|
|
25
14
|
SELECT: "select",
|
|
26
15
|
MULTISELECT: "multiselect",
|
|
27
|
-
|
|
16
|
+
RADIO: "radio",
|
|
17
|
+
RELATION: "relation",
|
|
28
18
|
REPEATER: "repeater",
|
|
29
|
-
|
|
19
|
+
OBJECT: "object",
|
|
20
|
+
LIST: "list",
|
|
30
21
|
FORM: "form",
|
|
31
22
|
PAGE_SELECTOR: "pageSelector",
|
|
23
|
+
PASSWORD: "password",
|
|
24
|
+
PHONE: "phone",
|
|
25
|
+
FILE: "file",
|
|
26
|
+
HIDDEN: "hidden",
|
|
32
27
|
};
|
|
33
|
-
/**
|
|
34
|
-
* Array of all field type values for Zod schemas.
|
|
35
|
-
*/
|
|
36
28
|
export const fieldTypeValues = [
|
|
37
|
-
"
|
|
38
|
-
"
|
|
29
|
+
"text",
|
|
30
|
+
"textarea",
|
|
39
31
|
"richText",
|
|
40
|
-
"
|
|
32
|
+
"number",
|
|
41
33
|
"date",
|
|
34
|
+
"datetime",
|
|
42
35
|
"boolean",
|
|
43
36
|
"color",
|
|
44
37
|
"media",
|
|
45
38
|
"link",
|
|
39
|
+
"url",
|
|
40
|
+
"email",
|
|
46
41
|
"select",
|
|
47
42
|
"multiselect",
|
|
43
|
+
"radio",
|
|
44
|
+
"relation",
|
|
48
45
|
"repeater",
|
|
46
|
+
"object",
|
|
47
|
+
"list",
|
|
49
48
|
"form",
|
|
50
49
|
"pageSelector",
|
|
50
|
+
"password",
|
|
51
|
+
"phone",
|
|
52
|
+
"file",
|
|
53
|
+
"hidden",
|
|
51
54
|
];
|
|
52
|
-
/**
|
|
53
|
-
* Default values for each field type.
|
|
54
|
-
* Frozen to prevent accidental mutation of shared array instances.
|
|
55
|
-
*/
|
|
56
55
|
export const FIELD_TYPE_DEFAULTS = Object.freeze({
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
text: "",
|
|
57
|
+
textarea: "",
|
|
59
58
|
richText: "",
|
|
60
|
-
|
|
59
|
+
number: 0,
|
|
61
60
|
date: "",
|
|
61
|
+
datetime: "",
|
|
62
|
+
boolean: false,
|
|
63
|
+
color: "#000000",
|
|
62
64
|
media: "",
|
|
63
65
|
link: "",
|
|
66
|
+
url: "",
|
|
67
|
+
email: "",
|
|
64
68
|
select: "",
|
|
65
|
-
multiselect: [],
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
repeater: [],
|
|
69
|
+
multiselect: Object.freeze([]),
|
|
70
|
+
radio: "",
|
|
71
|
+
relation: "",
|
|
72
|
+
repeater: Object.freeze([]),
|
|
73
|
+
object: Object.freeze({}),
|
|
74
|
+
list: Object.freeze([]),
|
|
69
75
|
form: "",
|
|
70
|
-
pageSelector: [],
|
|
76
|
+
pageSelector: Object.freeze([]),
|
|
77
|
+
password: "",
|
|
78
|
+
phone: "",
|
|
79
|
+
file: "",
|
|
80
|
+
hidden: "",
|
|
71
81
|
});
|
|
72
82
|
//# sourceMappingURL=block-fields.js.map
|
package/dist/block-fields.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-fields.js","sourceRoot":"","sources":["../src/block-fields.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"block-fields.js","sourceRoot":"","sources":["../src/block-fields.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,UAAU;IAErB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IAEd,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;IAEd,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE,OAAO;IAEd,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IAEZ,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,cAAc;IAE7B,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;CACR,CAAC;AAIX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM;IACN,UAAU;IACV,UAAU;IACV,QAAQ;IACR,MAAM;IACN,UAAU;IACV,SAAS;IACT,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,QAAQ;IACR,aAAa;IACb,OAAO;IACP,UAAU;IACV,UAAU;IACV,QAAQ;IACR,MAAM;IACN,MAAM;IACN,cAAc;IACd,UAAU;IACV,OAAO;IACP,MAAM;IACN,QAAQ;CACA,CAAC;AA0KX,MAAM,CAAC,MAAM,mBAAmB,GAE3B,MAAM,CAAC,MAAM,CAAC;IACjB,IAAI,EAAE,EAAE;IACR,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,EAAE;IACR,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAc,CAAC;IAC1C,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAwB,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAsB,CAAC;IAC7C,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAkB,CAAC;IACvC,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAe,CAAC;IAC5C,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,EAAE;CACX,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* Single source of truth for types used by server, frontend, and CLI.
|
|
6
6
|
*/
|
|
7
7
|
export { BLOCK_FIELD_PROPERTIES, blockFieldPropertyNames, blockFieldGraphQLSelection, type FieldPropertyDef, type BlockFieldPropertyName, type BlockFieldSchema, } from "./block-field-registry.js";
|
|
8
|
-
export { FieldType, fieldTypeValues, type FieldValidation, type ValidationPattern, type ShowWhenCondition, type BaseFieldConfig, type SelectFieldConfig, type MultiselectFieldConfig, type RepeaterFieldConfig, type MediaFieldConfig, type PageRef, type PageSelectorFieldConfig, type FieldConfig, type FieldValue, type FieldTypeValueMap, FIELD_TYPE_DEFAULTS, type TypedFieldConfig, } from "./block-fields.js";
|
|
8
|
+
export { FieldType, fieldTypeValues, type FieldValidation, type ValidationPattern, type ShowWhenCondition, type LocalizedText, type RelationCardinality, type FieldOption, type BaseFieldConfig, type SimpleFieldType, type SimpleFieldConfig, type SelectFieldConfig, type MultiselectFieldConfig, type RadioFieldConfig, type RepeaterFieldConfig, type ObjectFieldConfig, type ListFieldConfig, type MediaFieldConfig, type RelationFieldConfig, type PageRef, type PageSelectorFieldConfig, type FieldConfig, type FieldValue, type FieldValueObject, type FieldTypeValueMap, FIELD_TYPE_DEFAULTS, type TypedFieldConfig, } from "./block-fields.js";
|
|
9
9
|
export { LayoutPosition, layoutPositionValues, LayoutOverrideAction, type LayoutOverride, } from "./layout.js";
|
|
10
10
|
export { WorkspaceModule, workspaceModuleValues, FeatureFlag, featureFlagValues, type BlockRequires, } from "./modules.js";
|
|
11
11
|
export { type BlockConfig, type TypedBlockConfig, BlockSource, PackageType, } from "./block.js";
|
|
12
|
-
export type { CollectionData, PageItem,
|
|
12
|
+
export type { CollectionData, PageItem, FormItem, FormFieldOption, BlockMemberProfile, BlockMember, BlockAuthContext, BlockLocaleContext, PlatformContext, BlockProps, } from "./platform-context.js";
|
|
13
13
|
export { ALLOWED_CDN_DOMAINS, type AllowedCdnDomain, TranslationStatus, translationStatusValues, MediaType, mediaTypeValues, CART_SESSION_COOKIE_NAME, CART_SESSION_HEADER_NAME, } from "./shared-constants.js";
|
|
14
14
|
export { type TemplateBlockContent, type TemplateBlockInstance, type TemplatePageBlueprint, type TemplateLayoutPosition, type TemplatePageTypeField, type TemplatePageType, type TemplateConfig, type ResourceConfig, isTemplateConfig, } from "./template.js";
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,GACtB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,SAAS,EACT,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,cAAc,EACd,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,GACtB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,SAAS,EACT,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,UAAU,GACX,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,SAAS,EACT,eAAe,EACf,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gDAAgD;AAChD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,GAI3B,MAAM,2BAA2B,CAAC;AAEnC,eAAe;AACf,OAAO,EACL,SAAS,EACT,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gDAAgD;AAChD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,GAI3B,MAAM,2BAA2B,CAAC;AAEnC,eAAe;AACf,OAAO,EACL,SAAS,EACT,eAAe,EAwBf,mBAAmB,GAEpB,MAAM,mBAAmB,CAAC;AAE3B,SAAS;AACT,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,oBAAoB,GAErB,MAAM,aAAa,CAAC;AAErB,qBAAqB;AACrB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,iBAAiB,GAElB,MAAM,cAAc,CAAC;AAEtB,eAAe;AACf,OAAO,EAGL,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AAgBpB,uEAAuE;AACvE,OAAO,EACL,mBAAmB,EAEnB,iBAAiB,EACjB,uBAAuB,EACvB,SAAS,EACT,eAAe,EACf,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,kBAAkB;AAClB,OAAO,EASL,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
|
|
@@ -27,40 +27,6 @@ export interface PageItem {
|
|
|
27
27
|
}>;
|
|
28
28
|
pageType: string;
|
|
29
29
|
}
|
|
30
|
-
/**
|
|
31
|
-
* A media asset item for gallery/image blocks.
|
|
32
|
-
*/
|
|
33
|
-
export interface MediaItem {
|
|
34
|
-
id: string;
|
|
35
|
-
url: string;
|
|
36
|
-
filename: string;
|
|
37
|
-
type: "image" | "video" | "document" | "audio";
|
|
38
|
-
mimeType: string;
|
|
39
|
-
width: number | null;
|
|
40
|
-
height: number | null;
|
|
41
|
-
size: number;
|
|
42
|
-
/** Multilingual alt text */
|
|
43
|
-
alt: Record<string, string>;
|
|
44
|
-
/** Multilingual caption */
|
|
45
|
-
caption: Record<string, string> | null;
|
|
46
|
-
tags: string[];
|
|
47
|
-
blurDataUrl: string | null;
|
|
48
|
-
createdAt: string;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* A site member item for team/directory blocks.
|
|
52
|
-
* No sensitive data (email, password) - only public profile.
|
|
53
|
-
*/
|
|
54
|
-
export interface MemberItem {
|
|
55
|
-
id: string;
|
|
56
|
-
displayName: string | null;
|
|
57
|
-
firstName: string | null;
|
|
58
|
-
lastName: string | null;
|
|
59
|
-
avatarUrl: string | null;
|
|
60
|
-
role: string;
|
|
61
|
-
status: "pending" | "active" | "suspended" | "deleted";
|
|
62
|
-
createdAt: string;
|
|
63
|
-
}
|
|
64
30
|
/**
|
|
65
31
|
* A form submission item for testimonial/results blocks.
|
|
66
32
|
*/
|
|
@@ -71,25 +37,6 @@ export interface FormItem {
|
|
|
71
37
|
status: "pending" | "processed" | "spam" | "archived";
|
|
72
38
|
createdAt: string;
|
|
73
39
|
}
|
|
74
|
-
/**
|
|
75
|
-
* A custom model record item for user-defined data models (CMS-316).
|
|
76
|
-
*/
|
|
77
|
-
export interface ModelRecordItem {
|
|
78
|
-
id: string;
|
|
79
|
-
/** Field values as defined by the model schema */
|
|
80
|
-
data: Record<string, unknown>;
|
|
81
|
-
/** Optional status (if model has statusField enabled) */
|
|
82
|
-
status: string | null;
|
|
83
|
-
createdAt: string;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Validation rules attached to a form field.
|
|
87
|
-
*/
|
|
88
|
-
export interface FormFieldValidation {
|
|
89
|
-
required?: boolean;
|
|
90
|
-
minLength?: number | null;
|
|
91
|
-
maxLength?: number | null;
|
|
92
|
-
}
|
|
93
40
|
/**
|
|
94
41
|
* One option for select / radio fields.
|
|
95
42
|
*/
|
|
@@ -99,116 +46,6 @@ export interface FormFieldOption {
|
|
|
99
46
|
* e.g. { en: "Yes", pl: "Tak" } or "Yes". */
|
|
100
47
|
label: Record<string, string> | string | null;
|
|
101
48
|
}
|
|
102
|
-
/**
|
|
103
|
-
* One field declaration on a form definition.
|
|
104
|
-
*
|
|
105
|
-
* Mirrors the public-API shape returned by `publicForm.fields[]`.
|
|
106
|
-
* Multilingual fields (`label`, `placeholder`, `helpText`) may arrive
|
|
107
|
-
* either as locale maps (e.g. `{ en: "Name", pl: "Imię" }`) or as
|
|
108
|
-
* plain strings / null when the upstream payload is already resolved
|
|
109
|
-
* or not localized. Consumers must handle both shapes.
|
|
110
|
-
*/
|
|
111
|
-
export interface FormDefinitionField {
|
|
112
|
-
id: string;
|
|
113
|
-
/** Stable field name used as form control name + submission key */
|
|
114
|
-
name: string;
|
|
115
|
-
/** Field type discriminator (text, email, phone, url, number,
|
|
116
|
-
* date, password, textarea, multiLine, select, radio, etc.) */
|
|
117
|
-
fieldType: string;
|
|
118
|
-
label: Record<string, string> | string | null;
|
|
119
|
-
placeholder: Record<string, string> | string | null;
|
|
120
|
-
helpText: Record<string, string> | string | null;
|
|
121
|
-
validation: FormFieldValidation | null;
|
|
122
|
-
/** Choices for select / radio fields. Undefined for free-text fields. */
|
|
123
|
-
options?: FormFieldOption[];
|
|
124
|
-
width: string;
|
|
125
|
-
order: number;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Form definition for blocks that render builder-driven forms.
|
|
129
|
-
*
|
|
130
|
-
* Pre-fetched server-side via `publicForm` and injected into
|
|
131
|
-
* `context.formDefinitions[name]` per block.config.ts declaration.
|
|
132
|
-
* Blocks consume this synchronously - no CSR fetch needed.
|
|
133
|
-
*/
|
|
134
|
-
export interface FormDefinitionData {
|
|
135
|
-
id: string;
|
|
136
|
-
name: string;
|
|
137
|
-
fields: FormDefinitionField[];
|
|
138
|
-
settings: {
|
|
139
|
-
submitButtonLabel: Record<string, string> | string | null;
|
|
140
|
-
successMessage: Record<string, string> | string | null;
|
|
141
|
-
errorMessage: Record<string, string> | string | null;
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Workspace branding for header / footer / SEO blocks.
|
|
146
|
-
*
|
|
147
|
-
* Pre-fetched server-side via `publicWorkspaceBranding`. URLs are
|
|
148
|
-
* absolute and ready for direct use in `<img>` / `<link>` tags.
|
|
149
|
-
*/
|
|
150
|
-
export interface BrandingData {
|
|
151
|
-
brandName: string | null;
|
|
152
|
-
logoUrl: string | null;
|
|
153
|
-
faviconUrl: string | null;
|
|
154
|
-
ogImageUrl: string | null;
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Workspace site configuration.
|
|
158
|
-
*/
|
|
159
|
-
export interface SiteConfigData {
|
|
160
|
-
siteName: Record<string, string>;
|
|
161
|
-
defaultLanguage: string;
|
|
162
|
-
enabledLanguages: string[];
|
|
163
|
-
enabledFeatures: string[];
|
|
164
|
-
memberAuth: {
|
|
165
|
-
enabled: boolean;
|
|
166
|
-
allowRegistration: boolean;
|
|
167
|
-
loginUrl: string;
|
|
168
|
-
registerUrl: string;
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Field-name mapping for product records that back the cart.
|
|
173
|
-
*
|
|
174
|
-
* Lets a workspace use e.g. `title` instead of `name` without forking
|
|
175
|
-
* CartService - the cart resolver does a `record.data[fieldName]`
|
|
176
|
-
* lookup, no nested paths. Mirrors `cartFieldMappingSchema` on the
|
|
177
|
-
* backend.
|
|
178
|
-
*/
|
|
179
|
-
export interface CartFieldMapping {
|
|
180
|
-
name: string;
|
|
181
|
-
price: string;
|
|
182
|
-
currency: string;
|
|
183
|
-
imageUrl: string;
|
|
184
|
-
sku: string;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Public, workspace-scoped cart configuration for blocks (CMS-521).
|
|
188
|
-
*
|
|
189
|
-
* Mirrors `siteConfig.cart` from the backend, minus internal-only
|
|
190
|
-
* fields (sessionTTLDays / loggedInTTLDays) which are runtime TTLs
|
|
191
|
-
* the public site never needs.
|
|
192
|
-
*
|
|
193
|
-
* Pre-fetched server-side and injected into `context.cart` so cart
|
|
194
|
-
* blocks render synchronously - no CSR fetch for static config.
|
|
195
|
-
*/
|
|
196
|
-
export interface CartConfigData {
|
|
197
|
-
/** UI hint: which model holds the products. Used for product pickers. */
|
|
198
|
-
productModelSlug: string | null;
|
|
199
|
-
/** Field mapping used to resolve `record.data[name|price|currency|...]`. */
|
|
200
|
-
fieldMapping: CartFieldMapping;
|
|
201
|
-
/** Fallback currency when a record has no explicit currency field. */
|
|
202
|
-
defaultCurrency: string;
|
|
203
|
-
/** Cap on distinct line items in a single cart. */
|
|
204
|
-
maxItemsPerCart: number;
|
|
205
|
-
/** Cap on quantity for a single line item. */
|
|
206
|
-
maxQuantityPerItem: number;
|
|
207
|
-
/** B2B: workspace allows shoppers to save named carts. */
|
|
208
|
-
enableSavedCarts: boolean;
|
|
209
|
-
/** B2B: workspace accepts quote requests on a cart. */
|
|
210
|
-
enableQuoteRequests: boolean;
|
|
211
|
-
}
|
|
212
49
|
/**
|
|
213
50
|
* Member profile data available to blocks
|
|
214
51
|
*/
|
|
@@ -277,46 +114,16 @@ export interface BlockLocaleContext {
|
|
|
277
114
|
/**
|
|
278
115
|
* Platform context passed to blocks.
|
|
279
116
|
*
|
|
280
|
-
*
|
|
281
|
-
*
|
|
282
|
-
*
|
|
283
|
-
*
|
|
117
|
+
* Headless: blocks fetch their own data via server `loader`s and the delivery
|
|
118
|
+
* client (`queryScoped` / `graphqlRequest`). The platform injects only the
|
|
119
|
+
* fields below; everything else (media/members/models/cart/site config) is a
|
|
120
|
+
* loader concern.
|
|
284
121
|
*/
|
|
285
122
|
export interface PlatformContext {
|
|
286
|
-
/** Named page collections. Key = declaration name
|
|
123
|
+
/** Named page collections. Key = declaration name. */
|
|
287
124
|
pages?: Record<string, CollectionData<PageItem>>;
|
|
288
|
-
/** Named media collections */
|
|
289
|
-
media?: Record<string, CollectionData<MediaItem>>;
|
|
290
|
-
/** Named member collections */
|
|
291
|
-
members?: Record<string, CollectionData<MemberItem>>;
|
|
292
125
|
/** Named form submission collections */
|
|
293
126
|
forms?: Record<string, CollectionData<FormItem>>;
|
|
294
|
-
/** Named custom model record collections (CMS-316) */
|
|
295
|
-
models?: Record<string, CollectionData<ModelRecordItem>>;
|
|
296
|
-
/** Named form definitions for builder-driven form blocks (CMS-509).
|
|
297
|
-
* Plural to match the other indexed data sources (pages, media, ...). */
|
|
298
|
-
formDefinitions?: Record<string, FormDefinitionData>;
|
|
299
|
-
/** Workspace site configuration (singleton, not a collection) */
|
|
300
|
-
site?: SiteConfigData;
|
|
301
|
-
/** Workspace branding singleton (CMS-509) - logo, favicon, OG image. */
|
|
302
|
-
branding?: BrandingData;
|
|
303
|
-
/** Workspace primary domain (CMS-509) - canonical URL host without scheme.
|
|
304
|
-
* `undefined` = the data source was not requested / resolved on this
|
|
305
|
-
* context; `null` = the data source ran but no primary domain is set
|
|
306
|
-
* on the workspace. */
|
|
307
|
-
primaryDomain?: string | null;
|
|
308
|
-
/** Workspace cart configuration singleton (CMS-521).
|
|
309
|
-
* `undefined` = data source not resolved on this context (cart not
|
|
310
|
-
* in scope for this render); `null` = workspace has no cart config.
|
|
311
|
-
* Live cart state (items / totals) is intentionally NOT here -
|
|
312
|
-
* that stays client-side via the cart hook to keep CDN/ISR caches
|
|
313
|
-
* intact. */
|
|
314
|
-
cart?: CartConfigData | null;
|
|
315
|
-
/** Whether the workspace's plan permits cart functionality (CMS-521).
|
|
316
|
-
* Mirrors `PLAN_LIMITS[plan].canUseCart`. Cart blocks should gate
|
|
317
|
-
* their UI on this rather than probing with a mutation that hits
|
|
318
|
-
* PLAN_LIMIT_EXCEEDED. `undefined` = legacy / not resolved. */
|
|
319
|
-
canUseCart?: boolean;
|
|
320
127
|
/** Language and localization context */
|
|
321
128
|
locale: BlockLocaleContext;
|
|
322
129
|
/** Auth context - available when memberAuth is enabled in workspace */
|
|
@@ -331,18 +138,6 @@ export interface PlatformContext {
|
|
|
331
138
|
isPreview?: boolean;
|
|
332
139
|
/** Whether the page is viewed in draft mode (site preview with unpublished content) */
|
|
333
140
|
isDraftMode?: boolean;
|
|
334
|
-
/**
|
|
335
|
-
* Query the workspace's public GraphQL API.
|
|
336
|
-
* Use for dynamic CSR queries (filters, search, infinite scroll).
|
|
337
|
-
* For static data needs, use declarative data sources instead.
|
|
338
|
-
*
|
|
339
|
-
* @example
|
|
340
|
-
* useEffect(() => {
|
|
341
|
-
* context?.graphql?.(`{ pages(filter: { search: "${query}" }) { items { name } } }`)
|
|
342
|
-
* .then(data => setResults(data.pages.items));
|
|
343
|
-
* }, [query]);
|
|
344
|
-
*/
|
|
345
|
-
graphql?: <T = unknown>(query: string, variables?: Record<string, unknown>) => Promise<T> | T;
|
|
346
141
|
}
|
|
347
142
|
/**
|
|
348
143
|
* Standard props interface for all blocks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-context.d.ts","sourceRoot":"","sources":["../src/platform-context.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAMD;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACxC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAC9C,2EAA2E;IAC3E,YAAY,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"platform-context.d.ts","sourceRoot":"","sources":["../src/platform-context.ts"],"names":[],"mappings":"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"}
|