@measured/puck 0.20.0-canary.f73c8fa0 → 0.20.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/{chunk-UBWXLOVR.mjs → chunk-DCZ7BU3G.mjs} +5808 -6165
- package/dist/{chunk-BNXRZWNI.mjs → chunk-NFK5JVZW.mjs} +126 -227
- package/dist/index.css +259 -383
- package/dist/index.d.mts +6 -9
- package/dist/index.d.ts +6 -9
- package/dist/index.js +1660 -2061
- package/dist/index.mjs +6 -6
- package/dist/no-external.css +471 -599
- package/dist/no-external.d.mts +2 -2
- package/dist/no-external.d.ts +2 -2
- package/dist/no-external.js +1660 -2064
- package/dist/no-external.mjs +2 -6
- package/dist/rsc.d.mts +2 -2
- package/dist/rsc.d.ts +2 -2
- package/dist/rsc.js +1 -3
- package/dist/rsc.mjs +105 -2
- package/dist/{walk-tree-Dn5XpDNA.d.mts → walk-tree-CiAkCQEp.d.mts} +153 -118
- package/dist/{walk-tree-Dn5XpDNA.d.ts → walk-tree-CiAkCQEp.d.ts} +153 -118
- package/package.json +1 -1
package/dist/no-external.mjs
CHANGED
|
@@ -11,23 +11,21 @@ import {
|
|
|
11
11
|
Label,
|
|
12
12
|
Puck,
|
|
13
13
|
Render,
|
|
14
|
-
blocksPlugin,
|
|
15
14
|
createUsePuck,
|
|
16
|
-
outlinePlugin,
|
|
17
15
|
overrideKeys,
|
|
18
16
|
registerOverlayPortal,
|
|
19
17
|
renderContext,
|
|
20
18
|
setDeep,
|
|
21
19
|
useGetPuck,
|
|
22
20
|
usePuck
|
|
23
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-DCZ7BU3G.mjs";
|
|
24
22
|
import {
|
|
25
23
|
init_react_import,
|
|
26
24
|
migrate,
|
|
27
25
|
resolveAllData,
|
|
28
26
|
transformProps,
|
|
29
27
|
walkTree
|
|
30
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-NFK5JVZW.mjs";
|
|
31
29
|
|
|
32
30
|
// bundle/no-external.ts
|
|
33
31
|
init_react_import();
|
|
@@ -44,10 +42,8 @@ export {
|
|
|
44
42
|
Label,
|
|
45
43
|
Puck,
|
|
46
44
|
Render,
|
|
47
|
-
blocksPlugin,
|
|
48
45
|
createUsePuck,
|
|
49
46
|
migrate,
|
|
50
|
-
outlinePlugin,
|
|
51
47
|
overrideKeys,
|
|
52
48
|
registerOverlayPortal,
|
|
53
49
|
renderContext,
|
package/dist/rsc.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { C as Config, U as UserGenerics, M as Metadata } from './walk-tree-
|
|
3
|
-
export { m as migrate, r as resolveAllData, t as transformProps, w as walkTree } from './walk-tree-
|
|
2
|
+
import { C as Config, U as UserGenerics, M as Metadata } from './walk-tree-CiAkCQEp.mjs';
|
|
3
|
+
export { m as migrate, r as resolveAllData, t as transformProps, w as walkTree } from './walk-tree-CiAkCQEp.mjs';
|
|
4
4
|
import 'react';
|
|
5
5
|
|
|
6
6
|
declare function Render<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>>({ config, data, metadata, }: {
|
package/dist/rsc.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { C as Config, U as UserGenerics, M as Metadata } from './walk-tree-
|
|
3
|
-
export { m as migrate, r as resolveAllData, t as transformProps, w as walkTree } from './walk-tree-
|
|
2
|
+
import { C as Config, U as UserGenerics, M as Metadata } from './walk-tree-CiAkCQEp.js';
|
|
3
|
+
export { m as migrate, r as resolveAllData, t as transformProps, w as walkTree } from './walk-tree-CiAkCQEp.js';
|
|
4
4
|
import 'react';
|
|
5
5
|
|
|
6
6
|
declare function Render<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>>({ config, data, metadata, }: {
|
package/dist/rsc.js
CHANGED
|
@@ -340,7 +340,6 @@ var Item = ({
|
|
|
340
340
|
Component.render,
|
|
341
341
|
__spreadProps(__spreadValues({}, props), {
|
|
342
342
|
puck: __spreadProps(__spreadValues({}, props.puck), {
|
|
343
|
-
renderDropZone: DropZoneRender,
|
|
344
343
|
metadata: metadata || {}
|
|
345
344
|
})
|
|
346
345
|
})
|
|
@@ -694,8 +693,7 @@ var defaultAppState = {
|
|
|
694
693
|
options: [],
|
|
695
694
|
controlsVisible: true
|
|
696
695
|
},
|
|
697
|
-
field: { focus: null }
|
|
698
|
-
plugin: { current: null }
|
|
696
|
+
field: { focus: null }
|
|
699
697
|
},
|
|
700
698
|
indexes: {
|
|
701
699
|
nodes: {},
|
package/dist/rsc.mjs
CHANGED
|
@@ -1,14 +1,117 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
SlotRenderPure,
|
|
3
|
+
__spreadProps,
|
|
4
|
+
__spreadValues,
|
|
3
5
|
init_react_import,
|
|
4
6
|
migrate,
|
|
5
7
|
resolveAllData,
|
|
8
|
+
rootAreaId,
|
|
9
|
+
rootDroppableId,
|
|
10
|
+
rootZone,
|
|
11
|
+
setupZone,
|
|
6
12
|
transformProps,
|
|
13
|
+
useSlots,
|
|
7
14
|
walkTree
|
|
8
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-NFK5JVZW.mjs";
|
|
9
16
|
|
|
10
17
|
// bundle/rsc.tsx
|
|
11
18
|
init_react_import();
|
|
19
|
+
|
|
20
|
+
// components/ServerRender/index.tsx
|
|
21
|
+
init_react_import();
|
|
22
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
23
|
+
function DropZoneRender({
|
|
24
|
+
zone,
|
|
25
|
+
data,
|
|
26
|
+
areaId = "root",
|
|
27
|
+
config,
|
|
28
|
+
metadata = {}
|
|
29
|
+
}) {
|
|
30
|
+
let zoneCompound = rootDroppableId;
|
|
31
|
+
let content = (data == null ? void 0 : data.content) || [];
|
|
32
|
+
if (!data || !config) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
if (areaId !== rootAreaId && zone !== rootZone) {
|
|
36
|
+
zoneCompound = `${areaId}:${zone}`;
|
|
37
|
+
content = setupZone(data, zoneCompound).zones[zoneCompound];
|
|
38
|
+
}
|
|
39
|
+
return /* @__PURE__ */ jsx(Fragment, { children: content.map((item) => {
|
|
40
|
+
const Component = config.components[item.type];
|
|
41
|
+
const props = __spreadProps(__spreadValues({}, item.props), {
|
|
42
|
+
puck: {
|
|
43
|
+
renderDropZone: ({ zone: zone2 }) => /* @__PURE__ */ jsx(
|
|
44
|
+
DropZoneRender,
|
|
45
|
+
{
|
|
46
|
+
zone: zone2,
|
|
47
|
+
data,
|
|
48
|
+
areaId: item.props.id,
|
|
49
|
+
config,
|
|
50
|
+
metadata
|
|
51
|
+
}
|
|
52
|
+
),
|
|
53
|
+
metadata,
|
|
54
|
+
dragRef: null,
|
|
55
|
+
isEditing: false
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
const renderItem = __spreadProps(__spreadValues({}, item), { props });
|
|
59
|
+
const propsWithSlots = useSlots(config, renderItem, (props2) => /* @__PURE__ */ jsx(SlotRenderPure, __spreadProps(__spreadValues({}, props2), { config, metadata })));
|
|
60
|
+
if (Component) {
|
|
61
|
+
return /* @__PURE__ */ jsx(Component.render, __spreadValues({}, propsWithSlots), renderItem.props.id);
|
|
62
|
+
}
|
|
63
|
+
return null;
|
|
64
|
+
}) });
|
|
65
|
+
}
|
|
66
|
+
function Render({
|
|
67
|
+
config,
|
|
68
|
+
data,
|
|
69
|
+
metadata = {}
|
|
70
|
+
}) {
|
|
71
|
+
var _a;
|
|
72
|
+
const rootProps = "props" in data.root ? data.root.props : data.root;
|
|
73
|
+
const title = rootProps.title || "";
|
|
74
|
+
const props = __spreadProps(__spreadValues({}, rootProps), {
|
|
75
|
+
puck: {
|
|
76
|
+
renderDropZone: ({ zone }) => /* @__PURE__ */ jsx(
|
|
77
|
+
DropZoneRender,
|
|
78
|
+
{
|
|
79
|
+
zone,
|
|
80
|
+
data,
|
|
81
|
+
config,
|
|
82
|
+
metadata
|
|
83
|
+
}
|
|
84
|
+
),
|
|
85
|
+
isEditing: false,
|
|
86
|
+
dragRef: null,
|
|
87
|
+
metadata
|
|
88
|
+
},
|
|
89
|
+
title,
|
|
90
|
+
editMode: false,
|
|
91
|
+
id: "puck-root"
|
|
92
|
+
});
|
|
93
|
+
const propsWithSlots = useSlots(config, { type: "root", props }, (props2) => /* @__PURE__ */ jsx(SlotRenderPure, __spreadProps(__spreadValues({}, props2), { config, metadata })));
|
|
94
|
+
if ((_a = config.root) == null ? void 0 : _a.render) {
|
|
95
|
+
return /* @__PURE__ */ jsx(config.root.render, __spreadProps(__spreadValues({}, propsWithSlots), { children: /* @__PURE__ */ jsx(
|
|
96
|
+
DropZoneRender,
|
|
97
|
+
{
|
|
98
|
+
config,
|
|
99
|
+
data,
|
|
100
|
+
zone: rootZone,
|
|
101
|
+
metadata
|
|
102
|
+
}
|
|
103
|
+
) }));
|
|
104
|
+
}
|
|
105
|
+
return /* @__PURE__ */ jsx(
|
|
106
|
+
DropZoneRender,
|
|
107
|
+
{
|
|
108
|
+
config,
|
|
109
|
+
data,
|
|
110
|
+
zone: rootZone,
|
|
111
|
+
metadata
|
|
112
|
+
}
|
|
113
|
+
);
|
|
114
|
+
}
|
|
12
115
|
export {
|
|
13
116
|
Render,
|
|
14
117
|
migrate,
|
|
@@ -1,20 +1,10 @@
|
|
|
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
10
|
value: string | number | boolean | undefined | null | object;
|
|
@@ -51,26 +41,30 @@ type RadioField = BaseField & {
|
|
|
51
41
|
type: "radio";
|
|
52
42
|
options: FieldOptions;
|
|
53
43
|
};
|
|
54
|
-
type ArrayField<Props extends
|
|
44
|
+
type ArrayField<Props extends {
|
|
55
45
|
[key: string]: any;
|
|
56
|
-
}
|
|
46
|
+
}[] = {
|
|
57
47
|
[key: string]: any;
|
|
58
|
-
}
|
|
48
|
+
}[], UserField extends {} = {}> = BaseField & {
|
|
59
49
|
type: "array";
|
|
60
50
|
arrayFields: {
|
|
61
|
-
[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>;
|
|
62
54
|
};
|
|
63
55
|
defaultItemProps?: Props[0];
|
|
64
56
|
getItemSummary?: (item: Props[0], index?: number) => string;
|
|
65
57
|
max?: number;
|
|
66
58
|
min?: number;
|
|
67
|
-
}
|
|
59
|
+
};
|
|
68
60
|
type ObjectField<Props extends any = {
|
|
69
61
|
[key: string]: any;
|
|
70
|
-
}> = BaseField & {
|
|
62
|
+
}, UserField extends {} = {}> = BaseField & {
|
|
71
63
|
type: "object";
|
|
72
64
|
objectFields: {
|
|
73
|
-
[SubPropName in keyof Props]:
|
|
65
|
+
[SubPropName in keyof Props]: UserField extends {
|
|
66
|
+
type: PropertyKey;
|
|
67
|
+
} ? Field<Props[SubPropName]> | UserField : Field<Props[SubPropName]>;
|
|
74
68
|
};
|
|
75
69
|
};
|
|
76
70
|
type Adaptor<AdaptorParams = {}, TableShape extends Record<string, any> = {}, PropShape = TableShape> = {
|
|
@@ -126,9 +120,13 @@ type SlotField = BaseField & {
|
|
|
126
120
|
allow?: string[];
|
|
127
121
|
disallow?: string[];
|
|
128
122
|
};
|
|
129
|
-
type Field<ValueType = any> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType
|
|
130
|
-
|
|
131
|
-
|
|
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]>;
|
|
132
130
|
};
|
|
133
131
|
type FieldProps<F = Field<any>, ValueType = any> = {
|
|
134
132
|
field: F;
|
|
@@ -138,6 +136,59 @@ type FieldProps<F = Field<any>, ValueType = any> = {
|
|
|
138
136
|
readOnly?: boolean;
|
|
139
137
|
};
|
|
140
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
|
+
|
|
141
192
|
type SlotComponent = (props?: Omit<DropZoneProps, "zone">) => ReactNode;
|
|
142
193
|
type PuckComponent<Props> = (props: WithId<WithPuckProps<{
|
|
143
194
|
[K in keyof Props]: WithDeepSlots<Props[K], SlotComponent>;
|
|
@@ -146,11 +197,12 @@ type ResolveDataTrigger = "insert" | "replace" | "load" | "force";
|
|
|
146
197
|
type WithPartialProps<T, Props extends DefaultComponentProps> = Omit<T, "props"> & {
|
|
147
198
|
props?: Partial<Props>;
|
|
148
199
|
};
|
|
149
|
-
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 = {}> = {
|
|
150
202
|
render: PuckComponent<RenderProps>;
|
|
151
203
|
label?: string;
|
|
152
204
|
defaultProps?: FieldProps;
|
|
153
|
-
fields?: Fields<FieldProps>;
|
|
205
|
+
fields?: Fields<FieldProps, UserField>;
|
|
154
206
|
permissions?: Partial<Permissions>;
|
|
155
207
|
inline?: boolean;
|
|
156
208
|
resolveFields?: (data: DataShape, params: {
|
|
@@ -182,64 +234,36 @@ type ComponentConfig<RenderProps extends DefaultComponentProps = DefaultComponen
|
|
|
182
234
|
}) => Promise<Partial<Permissions>> | Partial<Permissions>;
|
|
183
235
|
metadata?: Metadata;
|
|
184
236
|
};
|
|
185
|
-
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>>>;
|
|
186
242
|
type Category<ComponentName> = {
|
|
187
243
|
components?: ComponentName[];
|
|
188
244
|
title?: string;
|
|
189
245
|
visible?: boolean;
|
|
190
246
|
defaultExpanded?: boolean;
|
|
191
247
|
};
|
|
192
|
-
type
|
|
248
|
+
type ConfigInternal<Props extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = DefaultComponentProps, CategoryName extends string = string, UserField extends {} = {}> = {
|
|
193
249
|
categories?: Record<CategoryName, Category<keyof Props>> & {
|
|
194
250
|
other?: Category<keyof Props>;
|
|
195
251
|
};
|
|
196
252
|
components: {
|
|
197
|
-
[ComponentName in keyof Props]: Omit<
|
|
253
|
+
[ComponentName in keyof Props]: Omit<ComponentConfigInternal<Props[ComponentName], Props[ComponentName], Omit<ComponentData<Props[ComponentName]>, "type">, UserField>, "type">;
|
|
198
254
|
};
|
|
199
|
-
root?:
|
|
200
|
-
};
|
|
201
|
-
|
|
202
|
-
type
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
children: ReactNode;
|
|
212
|
-
};
|
|
213
|
-
type ExtractPropsFromConfig<UserConfig> = UserConfig extends Config<infer P, any, any> ? P : never;
|
|
214
|
-
type ExtractRootPropsFromConfig<UserConfig> = UserConfig extends Config<any, infer P, any> ? P : never;
|
|
215
|
-
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>, UserPublicAppState extends AppState<UserData> = AppState<UserData>, UserComponentData extends ComponentData = UserData["content"][0]> = {
|
|
216
|
-
UserConfig: UserConfig;
|
|
217
|
-
UserProps: UserProps;
|
|
218
|
-
UserRootProps: UserRootProps;
|
|
219
|
-
UserData: UserData;
|
|
220
|
-
UserAppState: UserAppState;
|
|
221
|
-
UserPublicAppState: UserPublicAppState;
|
|
222
|
-
UserComponentData: UserComponentData;
|
|
223
|
-
};
|
|
224
|
-
type ExtractField<T extends Field["type"]> = Extract<Field, {
|
|
225
|
-
type: T;
|
|
226
|
-
}>;
|
|
227
|
-
|
|
228
|
-
type PuckContext = {
|
|
229
|
-
renderDropZone: React.FC<DropZoneProps>;
|
|
230
|
-
metadata: Metadata;
|
|
231
|
-
isEditing: boolean;
|
|
232
|
-
dragRef: ((element: Element | null) => void) | null;
|
|
233
|
-
};
|
|
234
|
-
type DefaultRootFieldProps = {
|
|
235
|
-
[key: string]: any;
|
|
236
|
-
title?: string;
|
|
237
|
-
};
|
|
238
|
-
type DefaultRootRenderProps<Props extends DefaultComponentProps = DefaultRootFieldProps> = WithPuckProps<WithChildren<Props>>;
|
|
239
|
-
type DefaultRootProps = DefaultRootRenderProps;
|
|
240
|
-
type DefaultComponentProps = {
|
|
241
|
-
[key: string]: any;
|
|
242
|
-
};
|
|
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;
|
|
243
267
|
|
|
244
268
|
type BaseData<Props extends {
|
|
245
269
|
[key: string]: any;
|
|
@@ -253,9 +277,9 @@ type RootDataWithProps<Props extends DefaultComponentProps = DefaultRootFieldPro
|
|
|
253
277
|
};
|
|
254
278
|
type RootDataWithoutProps<Props extends DefaultComponentProps = DefaultRootFieldProps> = Props;
|
|
255
279
|
type RootData<Props extends DefaultComponentProps = DefaultRootFieldProps> = Partial<RootDataWithProps<AsFieldProps<Props>>> & Partial<RootDataWithoutProps<Props>>;
|
|
256
|
-
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>> = {
|
|
257
281
|
type: Name;
|
|
258
|
-
props: WithDeepSlots<WithId<Props>, Content<
|
|
282
|
+
props: WithDeepSlots<WithId<Props>, Content<Components>>;
|
|
259
283
|
} & BaseData<Props>;
|
|
260
284
|
type ComponentDataOptionalId<Props extends DefaultComponentProps = DefaultComponentProps, Name = string> = {
|
|
261
285
|
type: Name;
|
|
@@ -264,18 +288,18 @@ type ComponentDataOptionalId<Props extends DefaultComponentProps = DefaultCompon
|
|
|
264
288
|
};
|
|
265
289
|
} & BaseData<Props>;
|
|
266
290
|
type MappedItem = ComponentData;
|
|
267
|
-
type ComponentDataMap<
|
|
268
|
-
[K in keyof
|
|
269
|
-
}[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];
|
|
270
294
|
type Content<PropsMap extends {
|
|
271
295
|
[key: string]: DefaultComponentProps;
|
|
272
296
|
} = {
|
|
273
297
|
[key: string]: DefaultComponentProps;
|
|
274
298
|
}> = ComponentDataMap<PropsMap>[];
|
|
275
|
-
type Data<
|
|
276
|
-
root: WithDeepSlots<RootData<RootProps>, Content<
|
|
277
|
-
content: Content<
|
|
278
|
-
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>>;
|
|
279
303
|
};
|
|
280
304
|
type Metadata = {
|
|
281
305
|
[key: string]: any;
|
|
@@ -284,7 +308,6 @@ type Metadata = {
|
|
|
284
308
|
type ItemWithId = {
|
|
285
309
|
_arrayId: string;
|
|
286
310
|
_originalIndex: number;
|
|
287
|
-
_currentIndex: number;
|
|
288
311
|
};
|
|
289
312
|
type ArrayState = {
|
|
290
313
|
items: ItemWithId[];
|
|
@@ -316,9 +339,6 @@ type UiState = {
|
|
|
316
339
|
field: {
|
|
317
340
|
focus?: string | null;
|
|
318
341
|
};
|
|
319
|
-
plugin: {
|
|
320
|
-
current: string | null;
|
|
321
|
-
};
|
|
322
342
|
};
|
|
323
343
|
type AppState<UserData extends Data = Data> = {
|
|
324
344
|
data: UserData;
|
|
@@ -345,7 +365,6 @@ type PrivateAppState<UserData extends Data = Data> = AppState<UserData> & {
|
|
|
345
365
|
zones: ZoneIndex;
|
|
346
366
|
};
|
|
347
367
|
};
|
|
348
|
-
type DefaultAllProps = Record<string, DefaultComponentProps>;
|
|
349
368
|
type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined;
|
|
350
369
|
/**
|
|
351
370
|
* Recursively walk T and replace Slots with SlotComponents
|
|
@@ -353,11 +372,26 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
|
|
|
353
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 ? {
|
|
354
373
|
[K in keyof T]: WithDeepSlots<T[K], SlotType>;
|
|
355
374
|
} : T;
|
|
356
|
-
type
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
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;
|
|
361
395
|
|
|
362
396
|
type MapFnParams<ThisField = Field> = {
|
|
363
397
|
value: any;
|
|
@@ -371,18 +405,28 @@ type FieldTransformFnParams<T> = Omit<MapFnParams<T>, "parentId"> & {
|
|
|
371
405
|
isReadOnly: boolean;
|
|
372
406
|
componentId: string;
|
|
373
407
|
};
|
|
374
|
-
type FieldTransformFn<T
|
|
375
|
-
type FieldTransforms =
|
|
376
|
-
|
|
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>>;
|
|
377
416
|
}>;
|
|
378
417
|
|
|
418
|
+
type RenderFunc<Props extends {
|
|
419
|
+
[key: string]: any;
|
|
420
|
+
} = {
|
|
421
|
+
children: ReactNode;
|
|
422
|
+
}> = (props: Props) => ReactElement;
|
|
379
423
|
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
|
|
380
424
|
type OverrideKey = (typeof overrideKeys)[number];
|
|
381
425
|
type OverridesGeneric<Shape extends {
|
|
382
426
|
[key in OverrideKey]: any;
|
|
383
427
|
}> = Shape;
|
|
384
|
-
type Overrides = OverridesGeneric<{
|
|
385
|
-
fieldTypes: Partial<FieldRenderFunctions
|
|
428
|
+
type Overrides<UserConfig extends Config = Config> = OverridesGeneric<{
|
|
429
|
+
fieldTypes: Partial<FieldRenderFunctions<UserConfig>>;
|
|
386
430
|
header: RenderFunc<{
|
|
387
431
|
actions: ReactNode;
|
|
388
432
|
children: ReactNode;
|
|
@@ -433,19 +477,14 @@ type Overrides = OverridesGeneric<{
|
|
|
433
477
|
}>;
|
|
434
478
|
puck: RenderFunc;
|
|
435
479
|
}>;
|
|
436
|
-
type FieldRenderFunctions =
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
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> & {
|
|
440
484
|
children: ReactNode;
|
|
441
485
|
name: string;
|
|
442
486
|
}>;
|
|
443
|
-
}, "custom"
|
|
444
|
-
[key: string]: React.FunctionComponent<FieldProps<any> & {
|
|
445
|
-
children: ReactNode;
|
|
446
|
-
name: string;
|
|
447
|
-
}>;
|
|
448
|
-
};
|
|
487
|
+
}, "custom">;
|
|
449
488
|
|
|
450
489
|
type Direction = "left" | "right" | "up" | "down" | null;
|
|
451
490
|
type DragAxis = "dynamic" | "y" | "x";
|
|
@@ -471,13 +510,9 @@ type IframeConfig = {
|
|
|
471
510
|
waitForStyles?: boolean;
|
|
472
511
|
};
|
|
473
512
|
type OnAction<UserData extends Data = Data> = (action: PuckAction, appState: AppState<UserData>, prevAppState: AppState<UserData>) => void;
|
|
474
|
-
type Plugin = {
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
icon?: ReactNode;
|
|
478
|
-
render?: () => ReactElement;
|
|
479
|
-
overrides?: Partial<Overrides>;
|
|
480
|
-
fieldTransforms?: FieldTransforms;
|
|
513
|
+
type Plugin<UserConfig extends Config = Config> = {
|
|
514
|
+
overrides?: Partial<Overrides<UserConfig>>;
|
|
515
|
+
fieldTransforms?: FieldTransforms<UserConfig>;
|
|
481
516
|
};
|
|
482
517
|
type History<D = any> = {
|
|
483
518
|
state: D;
|
|
@@ -501,7 +536,7 @@ type Slot<Props extends {
|
|
|
501
536
|
}> = {
|
|
502
537
|
[K in keyof Props]: ComponentDataOptionalId<Props[K], K extends string ? K : never>;
|
|
503
538
|
}[keyof Props][];
|
|
504
|
-
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>;
|
|
505
540
|
|
|
506
541
|
type InsertAction = {
|
|
507
542
|
type: "insert";
|
|
@@ -576,18 +611,18 @@ type MigrationOptions<UserConfig extends Config> = {
|
|
|
576
611
|
};
|
|
577
612
|
declare function migrate<UserConfig extends Config = Config>(data: Data, config?: UserConfig, migrationOptions?: MigrationOptions<UserConfig>): Data;
|
|
578
613
|
|
|
579
|
-
type PropTransform<
|
|
580
|
-
[ComponentName in keyof
|
|
614
|
+
type PropTransform<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = DefaultRootFieldProps> = Partial<{
|
|
615
|
+
[ComponentName in keyof Components]: (props: Components[ComponentName] & {
|
|
581
616
|
[key: string]: any;
|
|
582
|
-
}) =>
|
|
617
|
+
}) => Components[ComponentName];
|
|
583
618
|
} & {
|
|
584
619
|
root: (props: RootProps & {
|
|
585
620
|
[key: string]: any;
|
|
586
621
|
}) => RootProps;
|
|
587
622
|
}>;
|
|
588
|
-
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;
|
|
589
624
|
|
|
590
|
-
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>>;
|
|
591
626
|
|
|
592
627
|
type WalkTreeOptions = {
|
|
593
628
|
parentId: string;
|
|
@@ -595,4 +630,4 @@ type WalkTreeOptions = {
|
|
|
595
630
|
};
|
|
596
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;
|
|
597
632
|
|
|
598
|
-
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 };
|