@measured/puck 0.20.0-canary.f768aab9 → 0.20.1-canary.67b9195f
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 +9 -9
- package/dist/chunk-DCZ7BU3G.mjs +9069 -0
- package/dist/{chunk-H6KSTNLT.mjs → chunk-NFK5JVZW.mjs} +367 -408
- package/dist/index.css +163 -78
- package/dist/index.d.mts +21 -12
- package/dist/index.d.ts +21 -12
- package/dist/index.js +3228 -2630
- package/dist/index.mjs +29 -8455
- package/dist/no-external.css +1978 -0
- package/dist/no-external.d.mts +4 -0
- package/dist/no-external.d.ts +4 -0
- package/dist/no-external.js +9953 -0
- package/dist/no-external.mjs +56 -0
- package/dist/rsc.d.mts +2 -2
- package/dist/rsc.d.ts +2 -2
- package/dist/rsc.js +139 -72
- package/dist/rsc.mjs +109 -2
- package/dist/{walk-tree-BOSl1o0G.d.mts → walk-tree-CiAkCQEp.d.mts} +181 -99
- package/dist/{walk-tree-BOSl1o0G.d.ts → walk-tree-CiAkCQEp.d.ts} +181 -99
- package/package.json +22 -2
|
@@ -1,23 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ReactElement, CSSProperties, ReactNode, JSX } from 'react';
|
|
2
2
|
|
|
3
3
|
type ItemSelector = {
|
|
4
4
|
index: number;
|
|
5
5
|
zone?: string;
|
|
6
6
|
};
|
|
7
7
|
|
|
8
|
-
type DropZoneProps = {
|
|
9
|
-
zone: string;
|
|
10
|
-
allow?: string[];
|
|
11
|
-
disallow?: string[];
|
|
12
|
-
style?: CSSProperties;
|
|
13
|
-
minEmptyHeight?: number;
|
|
14
|
-
className?: string;
|
|
15
|
-
collisionAxis?: DragAxis;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
8
|
type FieldOption = {
|
|
19
9
|
label: string;
|
|
20
|
-
value: string | number | boolean;
|
|
10
|
+
value: string | number | boolean | undefined | null | object;
|
|
21
11
|
};
|
|
22
12
|
type FieldOptions = Array<FieldOption> | ReadonlyArray<FieldOption>;
|
|
23
13
|
type BaseField = {
|
|
@@ -29,6 +19,7 @@ type BaseField = {
|
|
|
29
19
|
type TextField = BaseField & {
|
|
30
20
|
type: "text";
|
|
31
21
|
placeholder?: string;
|
|
22
|
+
contentEditable?: boolean;
|
|
32
23
|
};
|
|
33
24
|
type NumberField = BaseField & {
|
|
34
25
|
type: "number";
|
|
@@ -40,6 +31,7 @@ type NumberField = BaseField & {
|
|
|
40
31
|
type TextareaField = BaseField & {
|
|
41
32
|
type: "textarea";
|
|
42
33
|
placeholder?: string;
|
|
34
|
+
contentEditable?: boolean;
|
|
43
35
|
};
|
|
44
36
|
type SelectField = BaseField & {
|
|
45
37
|
type: "select";
|
|
@@ -49,26 +41,30 @@ type RadioField = BaseField & {
|
|
|
49
41
|
type: "radio";
|
|
50
42
|
options: FieldOptions;
|
|
51
43
|
};
|
|
52
|
-
type ArrayField<Props extends
|
|
44
|
+
type ArrayField<Props extends {
|
|
53
45
|
[key: string]: any;
|
|
54
|
-
}
|
|
46
|
+
}[] = {
|
|
55
47
|
[key: string]: any;
|
|
56
|
-
}
|
|
48
|
+
}[], UserField extends {} = {}> = BaseField & {
|
|
57
49
|
type: "array";
|
|
58
50
|
arrayFields: {
|
|
59
|
-
[SubPropName in keyof Props[0]]:
|
|
51
|
+
[SubPropName in keyof Props[0]]: UserField extends {
|
|
52
|
+
type: PropertyKey;
|
|
53
|
+
} ? Field<Props[0][SubPropName], UserField> | UserField : Field<Props[0][SubPropName], UserField>;
|
|
60
54
|
};
|
|
61
55
|
defaultItemProps?: Props[0];
|
|
62
56
|
getItemSummary?: (item: Props[0], index?: number) => string;
|
|
63
57
|
max?: number;
|
|
64
58
|
min?: number;
|
|
65
|
-
}
|
|
59
|
+
};
|
|
66
60
|
type ObjectField<Props extends any = {
|
|
67
61
|
[key: string]: any;
|
|
68
|
-
}> = BaseField & {
|
|
62
|
+
}, UserField extends {} = {}> = BaseField & {
|
|
69
63
|
type: "object";
|
|
70
64
|
objectFields: {
|
|
71
|
-
[SubPropName in keyof Props]:
|
|
65
|
+
[SubPropName in keyof Props]: UserField extends {
|
|
66
|
+
type: PropertyKey;
|
|
67
|
+
} ? Field<Props[SubPropName]> | UserField : Field<Props[SubPropName]>;
|
|
72
68
|
};
|
|
73
69
|
};
|
|
74
70
|
type Adaptor<AdaptorParams = {}, TableShape extends Record<string, any> = {}, PropShape = TableShape> = {
|
|
@@ -117,15 +113,20 @@ type CustomFieldRender<Value extends any> = (props: {
|
|
|
117
113
|
type CustomField<Value extends any> = BaseField & {
|
|
118
114
|
type: "custom";
|
|
119
115
|
render: CustomFieldRender<Value>;
|
|
116
|
+
contentEditable?: boolean;
|
|
120
117
|
};
|
|
121
118
|
type SlotField = BaseField & {
|
|
122
119
|
type: "slot";
|
|
123
120
|
allow?: string[];
|
|
124
121
|
disallow?: string[];
|
|
125
122
|
};
|
|
126
|
-
type Field<ValueType = any> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType
|
|
127
|
-
|
|
128
|
-
|
|
123
|
+
type Field<ValueType = any, UserField extends {} = {}> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType extends {
|
|
124
|
+
[key: string]: any;
|
|
125
|
+
}[] ? ValueType : {}[], UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
|
|
126
|
+
type Fields<ComponentProps extends DefaultComponentProps = DefaultComponentProps, UserField extends {} = {}> = {
|
|
127
|
+
[PropName in keyof Omit<ComponentProps, "editMode">]: UserField extends {
|
|
128
|
+
type: PropertyKey;
|
|
129
|
+
} ? Field<ComponentProps[PropName], UserField> | UserField : Field<ComponentProps[PropName]>;
|
|
129
130
|
};
|
|
130
131
|
type FieldProps<F = Field<any>, ValueType = any> = {
|
|
131
132
|
field: F;
|
|
@@ -135,6 +136,59 @@ type FieldProps<F = Field<any>, ValueType = any> = {
|
|
|
135
136
|
readOnly?: boolean;
|
|
136
137
|
};
|
|
137
138
|
|
|
139
|
+
type DropZoneProps = {
|
|
140
|
+
zone: string;
|
|
141
|
+
allow?: string[];
|
|
142
|
+
disallow?: string[];
|
|
143
|
+
style?: CSSProperties;
|
|
144
|
+
minEmptyHeight?: number;
|
|
145
|
+
className?: string;
|
|
146
|
+
collisionAxis?: DragAxis;
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
type PuckContext = {
|
|
150
|
+
renderDropZone: React.FC<DropZoneProps>;
|
|
151
|
+
metadata: Metadata;
|
|
152
|
+
isEditing: boolean;
|
|
153
|
+
dragRef: ((element: Element | null) => void) | null;
|
|
154
|
+
};
|
|
155
|
+
type DefaultRootFieldProps = {
|
|
156
|
+
title?: string;
|
|
157
|
+
};
|
|
158
|
+
type DefaultRootRenderProps<Props extends DefaultComponentProps = DefaultRootFieldProps> = WithPuckProps<WithChildren<Props>>;
|
|
159
|
+
type DefaultRootProps = DefaultRootRenderProps;
|
|
160
|
+
type DefaultComponentProps = {
|
|
161
|
+
[key: string]: any;
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
type WithId<Props> = Props & {
|
|
165
|
+
id: string;
|
|
166
|
+
};
|
|
167
|
+
type WithPuckProps<Props> = Props & {
|
|
168
|
+
puck: PuckContext;
|
|
169
|
+
editMode?: boolean;
|
|
170
|
+
};
|
|
171
|
+
type AsFieldProps<Props> = Omit<Props, "children" | "puck" | "editMode">;
|
|
172
|
+
type WithChildren<Props> = Props & {
|
|
173
|
+
children: ReactNode;
|
|
174
|
+
};
|
|
175
|
+
type UserGenerics<UserConfig extends Config = Config, UserParams extends ExtractConfigParams<UserConfig> = ExtractConfigParams<UserConfig>, UserData extends Data<UserParams["props"], UserParams["rootProps"]> | Data = Data<UserParams["props"], UserParams["rootProps"]>, UserAppState extends PrivateAppState<UserData> = PrivateAppState<UserData>, UserPublicAppState extends AppState<UserData> = AppState<UserData>, UserComponentData extends ComponentData = UserData["content"][0]> = {
|
|
176
|
+
UserConfig: UserConfig;
|
|
177
|
+
UserParams: UserParams;
|
|
178
|
+
UserProps: UserParams["props"];
|
|
179
|
+
UserRootProps: UserParams["rootProps"] & DefaultRootFieldProps;
|
|
180
|
+
UserData: UserData;
|
|
181
|
+
UserAppState: UserAppState;
|
|
182
|
+
UserPublicAppState: UserPublicAppState;
|
|
183
|
+
UserComponentData: UserComponentData;
|
|
184
|
+
UserField: UserParams["field"];
|
|
185
|
+
};
|
|
186
|
+
type ExtractField<UserField extends {
|
|
187
|
+
type: PropertyKey;
|
|
188
|
+
}, T extends UserField["type"]> = Extract<UserField, {
|
|
189
|
+
type: T;
|
|
190
|
+
}>;
|
|
191
|
+
|
|
138
192
|
type SlotComponent = (props?: Omit<DropZoneProps, "zone">) => ReactNode;
|
|
139
193
|
type PuckComponent<Props> = (props: WithId<WithPuckProps<{
|
|
140
194
|
[K in keyof Props]: WithDeepSlots<Props[K], SlotComponent>;
|
|
@@ -143,11 +197,12 @@ type ResolveDataTrigger = "insert" | "replace" | "load" | "force";
|
|
|
143
197
|
type WithPartialProps<T, Props extends DefaultComponentProps> = Omit<T, "props"> & {
|
|
144
198
|
props?: Partial<Props>;
|
|
145
199
|
};
|
|
146
|
-
type
|
|
200
|
+
type ComponentConfigInternal<RenderProps extends DefaultComponentProps, FieldProps extends DefaultComponentProps, DataShape = Omit<ComponentData<FieldProps>, "type">, // NB this doesn't include AllProps, so types will not contain deep slot types. To fix, we require a breaking change.
|
|
201
|
+
UserField extends BaseField = {}> = {
|
|
147
202
|
render: PuckComponent<RenderProps>;
|
|
148
203
|
label?: string;
|
|
149
204
|
defaultProps?: FieldProps;
|
|
150
|
-
fields?: Fields<FieldProps>;
|
|
205
|
+
fields?: Fields<FieldProps, UserField>;
|
|
151
206
|
permissions?: Partial<Permissions>;
|
|
152
207
|
inline?: boolean;
|
|
153
208
|
resolveFields?: (data: DataShape, params: {
|
|
@@ -179,60 +234,36 @@ type ComponentConfig<RenderProps extends DefaultComponentProps = DefaultComponen
|
|
|
179
234
|
}) => Promise<Partial<Permissions>> | Partial<Permissions>;
|
|
180
235
|
metadata?: Metadata;
|
|
181
236
|
};
|
|
182
|
-
type
|
|
237
|
+
type ComponentConfig<RenderPropsOrParams extends LeftOrExactRight<RenderPropsOrParams, DefaultComponentProps, ComponentConfigParams> = DefaultComponentProps, FieldProps extends DefaultComponentProps = RenderPropsOrParams extends {
|
|
238
|
+
props: any;
|
|
239
|
+
} ? RenderPropsOrParams["props"] : RenderPropsOrParams, DataShape = Omit<ComponentData<FieldProps>, "type">> = RenderPropsOrParams extends ComponentConfigParams<infer ParamsRenderProps, never> ? ComponentConfigInternal<ParamsRenderProps, FieldProps, DataShape, {}> : RenderPropsOrParams extends ComponentConfigParams<infer ParamsRenderProps, infer ParamsFields> ? ComponentConfigInternal<ParamsRenderProps, FieldProps, DataShape, ParamsFields[keyof ParamsFields] & BaseField> : ComponentConfigInternal<RenderPropsOrParams, FieldProps, DataShape>;
|
|
240
|
+
type RootConfigInternal<RootProps extends DefaultComponentProps = DefaultComponentProps, UserField extends BaseField = {}> = Partial<ComponentConfigInternal<WithChildren<RootProps>, AsFieldProps<RootProps>, RootData<AsFieldProps<RootProps>>, UserField>>;
|
|
241
|
+
type RootConfig<RootPropsOrParams extends LeftOrExactRight<RootPropsOrParams, DefaultComponentProps, ComponentConfigParams> = DefaultComponentProps> = RootPropsOrParams extends ComponentConfigParams<infer Props, never> ? Partial<RootConfigInternal<WithChildren<Props>, {}>> : RootPropsOrParams extends ComponentConfigParams<infer Props, infer UserFields> ? Partial<RootConfigInternal<WithChildren<Props>, UserFields[keyof UserFields] & BaseField>> : Partial<RootConfigInternal<WithChildren<RootPropsOrParams>>>;
|
|
183
242
|
type Category<ComponentName> = {
|
|
184
243
|
components?: ComponentName[];
|
|
185
244
|
title?: string;
|
|
186
245
|
visible?: boolean;
|
|
187
246
|
defaultExpanded?: boolean;
|
|
188
247
|
};
|
|
189
|
-
type
|
|
248
|
+
type ConfigInternal<Props extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = DefaultComponentProps, CategoryName extends string = string, UserField extends {} = {}> = {
|
|
190
249
|
categories?: Record<CategoryName, Category<keyof Props>> & {
|
|
191
250
|
other?: Category<keyof Props>;
|
|
192
251
|
};
|
|
193
252
|
components: {
|
|
194
|
-
[ComponentName in keyof Props]: Omit<
|
|
253
|
+
[ComponentName in keyof Props]: Omit<ComponentConfigInternal<Props[ComponentName], Props[ComponentName], Omit<ComponentData<Props[ComponentName]>, "type">, UserField>, "type">;
|
|
195
254
|
};
|
|
196
|
-
root?:
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
type
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
children: ReactNode;
|
|
209
|
-
};
|
|
210
|
-
type ExtractPropsFromConfig<UserConfig> = UserConfig extends Config<infer P, any, any> ? P : never;
|
|
211
|
-
type ExtractRootPropsFromConfig<UserConfig> = UserConfig extends Config<any, infer P, any> ? P : never;
|
|
212
|
-
type UserGenerics<UserConfig extends Config = Config, UserProps extends ExtractPropsFromConfig<UserConfig> = ExtractPropsFromConfig<UserConfig>, UserRootProps extends ExtractRootPropsFromConfig<UserConfig> = ExtractRootPropsFromConfig<UserConfig>, UserData extends Data<UserProps, UserRootProps> | Data = Data<UserProps, UserRootProps>, UserAppState extends PrivateAppState<UserData> = PrivateAppState<UserData>, UserComponentData extends ComponentData = UserData["content"][0]> = {
|
|
213
|
-
UserConfig: UserConfig;
|
|
214
|
-
UserProps: UserProps;
|
|
215
|
-
UserRootProps: UserRootProps;
|
|
216
|
-
UserData: UserData;
|
|
217
|
-
UserAppState: UserAppState;
|
|
218
|
-
UserComponentData: UserComponentData;
|
|
219
|
-
};
|
|
220
|
-
|
|
221
|
-
type PuckContext = {
|
|
222
|
-
renderDropZone: React.FC<DropZoneProps>;
|
|
223
|
-
metadata: Metadata;
|
|
224
|
-
isEditing: boolean;
|
|
225
|
-
dragRef: ((element: Element | null) => void) | null;
|
|
226
|
-
};
|
|
227
|
-
type DefaultRootFieldProps = {
|
|
228
|
-
[key: string]: any;
|
|
229
|
-
title?: string;
|
|
230
|
-
};
|
|
231
|
-
type DefaultRootRenderProps<Props extends DefaultComponentProps = DefaultRootFieldProps> = WithPuckProps<WithChildren<Props>>;
|
|
232
|
-
type DefaultRootProps = DefaultRootRenderProps;
|
|
233
|
-
type DefaultComponentProps = {
|
|
234
|
-
[key: string]: any;
|
|
235
|
-
};
|
|
255
|
+
root?: RootConfigInternal<RootProps, UserField>;
|
|
256
|
+
};
|
|
257
|
+
type DefaultComponents = Record<string, any>;
|
|
258
|
+
type Config<PropsOrParams extends LeftOrExactRight<PropsOrParams, DefaultComponents, ConfigParams> = DefaultComponents | ConfigParams, RootProps extends DefaultComponentProps = DefaultComponentProps, CategoryName extends string = string> = PropsOrParams extends ConfigParams<infer ParamComponents, infer ParamRoot, infer ParamCategoryName, never> ? ConfigInternal<ParamComponents, ParamRoot, ParamCategoryName[number]> : PropsOrParams extends ConfigParams<infer ParamComponents, infer ParamRoot, infer ParamCategoryName, infer ParamFields> ? ConfigInternal<ParamComponents, ParamRoot, ParamCategoryName[number], ParamFields[keyof ParamFields] & BaseField> : PropsOrParams extends ConfigParams<infer ParamComponents, infer ParamRoot, infer ParamCategoryName, any> ? ConfigInternal<ParamComponents, ParamRoot, ParamCategoryName[number], {}> : ConfigInternal<PropsOrParams, RootProps, CategoryName>;
|
|
259
|
+
type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends ConfigInternal<infer PropsOrParams, infer RootProps, infer CategoryName, infer UserField> ? {
|
|
260
|
+
props: PropsOrParams;
|
|
261
|
+
rootProps: RootProps & DefaultRootFieldProps;
|
|
262
|
+
categoryNames: CategoryName;
|
|
263
|
+
field: UserField extends {
|
|
264
|
+
type: string;
|
|
265
|
+
} ? UserField : Field;
|
|
266
|
+
} : never;
|
|
236
267
|
|
|
237
268
|
type BaseData<Props extends {
|
|
238
269
|
[key: string]: any;
|
|
@@ -246,9 +277,9 @@ type RootDataWithProps<Props extends DefaultComponentProps = DefaultRootFieldPro
|
|
|
246
277
|
};
|
|
247
278
|
type RootDataWithoutProps<Props extends DefaultComponentProps = DefaultRootFieldProps> = Props;
|
|
248
279
|
type RootData<Props extends DefaultComponentProps = DefaultRootFieldProps> = Partial<RootDataWithProps<AsFieldProps<Props>>> & Partial<RootDataWithoutProps<Props>>;
|
|
249
|
-
type ComponentData<Props extends DefaultComponentProps = DefaultComponentProps, Name = string,
|
|
280
|
+
type ComponentData<Props extends DefaultComponentProps = DefaultComponentProps, Name = string, Components extends Record<string, DefaultComponentProps> = Record<string, DefaultComponentProps>> = {
|
|
250
281
|
type: Name;
|
|
251
|
-
props: WithDeepSlots<WithId<Props>, Content<
|
|
282
|
+
props: WithDeepSlots<WithId<Props>, Content<Components>>;
|
|
252
283
|
} & BaseData<Props>;
|
|
253
284
|
type ComponentDataOptionalId<Props extends DefaultComponentProps = DefaultComponentProps, Name = string> = {
|
|
254
285
|
type: Name;
|
|
@@ -257,18 +288,18 @@ type ComponentDataOptionalId<Props extends DefaultComponentProps = DefaultCompon
|
|
|
257
288
|
};
|
|
258
289
|
} & BaseData<Props>;
|
|
259
290
|
type MappedItem = ComponentData;
|
|
260
|
-
type ComponentDataMap<
|
|
261
|
-
[K in keyof
|
|
262
|
-
}[keyof
|
|
291
|
+
type ComponentDataMap<Components extends DefaultComponents = DefaultComponents> = {
|
|
292
|
+
[K in keyof Components]: ComponentData<Components[K], K extends string ? K : never, Components>;
|
|
293
|
+
}[keyof Components];
|
|
263
294
|
type Content<PropsMap extends {
|
|
264
295
|
[key: string]: DefaultComponentProps;
|
|
265
296
|
} = {
|
|
266
297
|
[key: string]: DefaultComponentProps;
|
|
267
298
|
}> = ComponentDataMap<PropsMap>[];
|
|
268
|
-
type Data<
|
|
269
|
-
root: WithDeepSlots<RootData<RootProps>, Content<
|
|
270
|
-
content: Content<
|
|
271
|
-
zones?: Record<string, Content<
|
|
299
|
+
type Data<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = DefaultRootFieldProps> = {
|
|
300
|
+
root: WithDeepSlots<RootData<RootProps>, Content<Components>>;
|
|
301
|
+
content: Content<Components>;
|
|
302
|
+
zones?: Record<string, Content<Components>>;
|
|
272
303
|
};
|
|
273
304
|
type Metadata = {
|
|
274
305
|
[key: string]: any;
|
|
@@ -285,6 +316,8 @@ type ArrayState = {
|
|
|
285
316
|
type UiState = {
|
|
286
317
|
leftSideBarVisible: boolean;
|
|
287
318
|
rightSideBarVisible: boolean;
|
|
319
|
+
leftSideBarWidth?: number | null;
|
|
320
|
+
rightSideBarWidth?: number | null;
|
|
288
321
|
itemSelector: ItemSelector | null;
|
|
289
322
|
arrayState: Record<string, ArrayState | undefined>;
|
|
290
323
|
previewMode: "interactive" | "edit";
|
|
@@ -332,7 +365,6 @@ type PrivateAppState<UserData extends Data = Data> = AppState<UserData> & {
|
|
|
332
365
|
zones: ZoneIndex;
|
|
333
366
|
};
|
|
334
367
|
};
|
|
335
|
-
type DefaultAllProps = Record<string, DefaultComponentProps>;
|
|
336
368
|
type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined;
|
|
337
369
|
/**
|
|
338
370
|
* Recursively walk T and replace Slots with SlotComponents
|
|
@@ -340,19 +372,61 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
|
|
|
340
372
|
type WithDeepSlots<T, SlotType = T> = T extends Slot ? SlotType : T extends (infer U)[] ? Array<WithDeepSlots<U, SlotType>> : T extends (infer U)[] ? WithDeepSlots<U, SlotType>[] : T extends BuiltinTypes ? T : T extends object ? {
|
|
341
373
|
[K in keyof T]: WithDeepSlots<T[K], SlotType>;
|
|
342
374
|
} : T;
|
|
375
|
+
type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = DefaultComponentProps, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
|
|
376
|
+
components?: Components;
|
|
377
|
+
root?: RootProps;
|
|
378
|
+
categories?: CategoryNames;
|
|
379
|
+
fields?: AssertHasValue<UserFields>;
|
|
380
|
+
};
|
|
381
|
+
type FieldsExtension = {
|
|
382
|
+
[Type in string]: {
|
|
383
|
+
type: Type;
|
|
384
|
+
};
|
|
385
|
+
};
|
|
386
|
+
type ComponentConfigParams<Props extends DefaultComponentProps = DefaultComponentProps, UserFields extends FieldsExtension = never> = {
|
|
387
|
+
props: Props;
|
|
388
|
+
fields?: AssertHasValue<UserFields>;
|
|
389
|
+
};
|
|
390
|
+
type Exact<T, Target> = Record<Exclude<keyof T, keyof Target>, never>;
|
|
391
|
+
type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<Union, Right> : Left) | (Right & Exact<Union, Right>);
|
|
392
|
+
type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
|
|
393
|
+
never
|
|
394
|
+
] ? False : True;
|
|
395
|
+
|
|
396
|
+
type MapFnParams<ThisField = Field> = {
|
|
397
|
+
value: any;
|
|
398
|
+
parentId: string;
|
|
399
|
+
propName: string;
|
|
400
|
+
field: ThisField;
|
|
401
|
+
propPath: string;
|
|
402
|
+
};
|
|
403
|
+
|
|
404
|
+
type FieldTransformFnParams<T> = Omit<MapFnParams<T>, "parentId"> & {
|
|
405
|
+
isReadOnly: boolean;
|
|
406
|
+
componentId: string;
|
|
407
|
+
};
|
|
408
|
+
type FieldTransformFn<T> = (params: FieldTransformFnParams<T>) => any;
|
|
409
|
+
type FieldTransforms<UserConfig extends Config = Config<{
|
|
410
|
+
fields: {};
|
|
411
|
+
}>, // Setting fields: {} helps TS choose default field types
|
|
412
|
+
G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends {
|
|
413
|
+
type: string;
|
|
414
|
+
} = Field | G["UserField"]> = Partial<{
|
|
415
|
+
[Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
|
|
416
|
+
}>;
|
|
343
417
|
|
|
344
418
|
type RenderFunc<Props extends {
|
|
345
419
|
[key: string]: any;
|
|
346
420
|
} = {
|
|
347
421
|
children: ReactNode;
|
|
348
422
|
}> = (props: Props) => ReactElement;
|
|
349
|
-
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "
|
|
423
|
+
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
|
|
350
424
|
type OverrideKey = (typeof overrideKeys)[number];
|
|
351
425
|
type OverridesGeneric<Shape extends {
|
|
352
426
|
[key in OverrideKey]: any;
|
|
353
427
|
}> = Shape;
|
|
354
|
-
type Overrides = OverridesGeneric<{
|
|
355
|
-
fieldTypes: Partial<FieldRenderFunctions
|
|
428
|
+
type Overrides<UserConfig extends Config = Config> = OverridesGeneric<{
|
|
429
|
+
fieldTypes: Partial<FieldRenderFunctions<UserConfig>>;
|
|
356
430
|
header: RenderFunc<{
|
|
357
431
|
actions: ReactNode;
|
|
358
432
|
children: ReactNode;
|
|
@@ -384,26 +458,33 @@ type Overrides = OverridesGeneric<{
|
|
|
384
458
|
children: ReactNode;
|
|
385
459
|
name: string;
|
|
386
460
|
}>;
|
|
461
|
+
drawer: RenderFunc;
|
|
462
|
+
drawerItem: RenderFunc<{
|
|
463
|
+
children: ReactNode;
|
|
464
|
+
name: string;
|
|
465
|
+
}>;
|
|
387
466
|
iframe: RenderFunc<{
|
|
388
467
|
children: ReactNode;
|
|
389
468
|
document?: Document;
|
|
390
469
|
}>;
|
|
391
470
|
outline: RenderFunc;
|
|
392
|
-
|
|
393
|
-
}>;
|
|
394
|
-
type FieldRenderFunctions = Omit<{
|
|
395
|
-
[Type in Field["type"]]: React.FunctionComponent<FieldProps<Extract<Field, {
|
|
396
|
-
type: Type;
|
|
397
|
-
}>, any> & {
|
|
471
|
+
componentOverlay: RenderFunc<{
|
|
398
472
|
children: ReactNode;
|
|
399
|
-
|
|
473
|
+
hover: boolean;
|
|
474
|
+
isSelected: boolean;
|
|
475
|
+
componentId: string;
|
|
476
|
+
componentType: string;
|
|
400
477
|
}>;
|
|
401
|
-
|
|
402
|
-
|
|
478
|
+
puck: RenderFunc;
|
|
479
|
+
}>;
|
|
480
|
+
type FieldRenderFunctions<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends {
|
|
481
|
+
type: string;
|
|
482
|
+
} = Field | G["UserField"]> = Omit<{
|
|
483
|
+
[Type in UserField["type"]]: React.FunctionComponent<FieldProps<ExtractField<UserField, Type>, any> & {
|
|
403
484
|
children: ReactNode;
|
|
404
485
|
name: string;
|
|
405
486
|
}>;
|
|
406
|
-
}
|
|
487
|
+
}, "custom">;
|
|
407
488
|
|
|
408
489
|
type Direction = "left" | "right" | "up" | "down" | null;
|
|
409
490
|
type DragAxis = "dynamic" | "y" | "x";
|
|
@@ -429,8 +510,9 @@ type IframeConfig = {
|
|
|
429
510
|
waitForStyles?: boolean;
|
|
430
511
|
};
|
|
431
512
|
type OnAction<UserData extends Data = Data> = (action: PuckAction, appState: AppState<UserData>, prevAppState: AppState<UserData>) => void;
|
|
432
|
-
type Plugin = {
|
|
433
|
-
overrides
|
|
513
|
+
type Plugin<UserConfig extends Config = Config> = {
|
|
514
|
+
overrides?: Partial<Overrides<UserConfig>>;
|
|
515
|
+
fieldTransforms?: FieldTransforms<UserConfig>;
|
|
434
516
|
};
|
|
435
517
|
type History<D = any> = {
|
|
436
518
|
state: D;
|
|
@@ -454,7 +536,7 @@ type Slot<Props extends {
|
|
|
454
536
|
}> = {
|
|
455
537
|
[K in keyof Props]: ComponentDataOptionalId<Props[K], K extends string ? K : never>;
|
|
456
538
|
}[keyof Props][];
|
|
457
|
-
type WithSlotProps<Target extends Record<string, any>,
|
|
539
|
+
type WithSlotProps<Target extends Record<string, any>, Components extends DefaultComponents = DefaultComponents, SlotType extends Content<Components> = Content<Components>> = WithDeepSlots<Target, SlotType>;
|
|
458
540
|
|
|
459
541
|
type InsertAction = {
|
|
460
542
|
type: "insert";
|
|
@@ -529,18 +611,18 @@ type MigrationOptions<UserConfig extends Config> = {
|
|
|
529
611
|
};
|
|
530
612
|
declare function migrate<UserConfig extends Config = Config>(data: Data, config?: UserConfig, migrationOptions?: MigrationOptions<UserConfig>): Data;
|
|
531
613
|
|
|
532
|
-
type PropTransform<
|
|
533
|
-
[ComponentName in keyof
|
|
614
|
+
type PropTransform<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = DefaultRootFieldProps> = Partial<{
|
|
615
|
+
[ComponentName in keyof Components]: (props: Components[ComponentName] & {
|
|
534
616
|
[key: string]: any;
|
|
535
|
-
}) =>
|
|
617
|
+
}) => Components[ComponentName];
|
|
536
618
|
} & {
|
|
537
619
|
root: (props: RootProps & {
|
|
538
620
|
[key: string]: any;
|
|
539
621
|
}) => RootProps;
|
|
540
622
|
}>;
|
|
541
|
-
declare function transformProps<
|
|
623
|
+
declare function transformProps<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = DefaultRootFieldProps>(data: Partial<Data>, propTransforms: PropTransform<Components, RootProps>, config?: Config): Data;
|
|
542
624
|
|
|
543
|
-
declare function resolveAllData<
|
|
625
|
+
declare function resolveAllData<Components extends DefaultComponents = DefaultComponents, RootProps extends Record<string, any> = DefaultRootFieldProps>(data: Partial<Data>, config: Config, metadata?: Metadata, onResolveStart?: (item: ComponentData) => void, onResolveEnd?: (item: ComponentData) => void): Promise<Data<Components, RootProps>>;
|
|
544
626
|
|
|
545
627
|
type WalkTreeOptions = {
|
|
546
628
|
parentId: string;
|
|
@@ -548,4 +630,4 @@ type WalkTreeOptions = {
|
|
|
548
630
|
};
|
|
549
631
|
declare function walkTree<T extends ComponentData | RootData | G["UserData"], UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>>(data: T, config: UserConfig, callbackFn: (data: Content, options: WalkTreeOptions) => Content | null | void): T;
|
|
550
632
|
|
|
551
|
-
export { type
|
|
633
|
+
export { type BaseField as $, type AppState as A, type ArrayState as B, type Config as C, type DropZoneProps as D, type SlotComponent as E, type Fields as F, type PuckComponent as G, type History as H, type IframeConfig as I, type RootConfig as J, type DefaultComponents as K, type ExtractConfigParams as L, type Metadata as M, type BaseData as N, type Overrides as O, type Permissions as P, type RootDataWithoutProps as Q, type RootDataWithProps as R, type Slot as S, type RootData as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type ComponentDataOptionalId as X, type MappedItem as Y, type ComponentDataMap as Z, type Content as _, type ComponentData as a, type TextField as a0, type NumberField as a1, type TextareaField as a2, type SelectField as a3, type RadioField as a4, type ArrayField as a5, type ObjectField as a6, type Adaptor as a7, type ExternalFieldWithAdaptor as a8, type ExternalField as a9, type CustomFieldRender as aa, type CustomField as ab, type SlotField as ac, type PuckContext as ad, type DefaultRootFieldProps as ae, type DefaultRootRenderProps as af, type DefaultRootProps as ag, type DefaultComponentProps as ah, type WithId as ai, type WithPuckProps as aj, type AsFieldProps as ak, type WithChildren as al, type ExtractField as am, type PuckAction as b, type ResolveDataTrigger as c, type Plugin as d, type UiState as e, type ComponentConfig as f, type FieldTransforms as g, type Field as h, type FieldProps as i, type Data as j, type OnAction as k, type InitialHistory as l, migrate as m, type ItemSelector as n, type Direction as o, type DragAxis as p, type Viewport as q, resolveAllData as r, type FieldTransformFnParams as s, transformProps as t, type FieldTransformFn as u, overrideKeys as v, walkTree as w, type OverrideKey as x, type FieldRenderFunctions as y, type ItemWithId as z };
|