@measured/puck 0.19.0-canary.91cb9cee → 0.19.0-canary.a60c81eb
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-GL73J54P.mjs → chunk-HGAPIQP5.mjs} +231 -161
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +352 -226
- package/dist/index.mjs +117 -53
- package/dist/rsc.d.mts +2 -2
- package/dist/rsc.d.ts +2 -2
- package/dist/rsc.js +232 -167
- package/dist/rsc.mjs +1 -1
- package/dist/{walk-tree-DOB5QZVq.d.mts → walk-tree-DBd3aQ_5.d.mts} +26 -21
- package/dist/{walk-tree-DOB5QZVq.d.ts → walk-tree-DBd3aQ_5.d.ts} +26 -21
- package/package.json +12 -7
@@ -24,6 +24,7 @@ type BaseField = {
|
|
24
24
|
label?: string;
|
25
25
|
labelIcon?: ReactElement;
|
26
26
|
metadata?: Metadata;
|
27
|
+
visible?: boolean;
|
27
28
|
};
|
28
29
|
type TextField = BaseField & {
|
29
30
|
type: "text";
|
@@ -147,10 +148,14 @@ type FieldProps<F = Field<any>, ValueType = any> = {
|
|
147
148
|
readOnly?: boolean;
|
148
149
|
};
|
149
150
|
|
151
|
+
type SlotComponent = (props?: Omit<DropZoneProps, "zone">) => ReactNode;
|
150
152
|
type PuckComponent<Props> = (props: WithId<WithPuckProps<{
|
151
|
-
[
|
153
|
+
[K in keyof Props]: WithDeepSlots<Props[K], SlotComponent>;
|
152
154
|
}>>) => JSX.Element;
|
153
155
|
type ResolveDataTrigger = "insert" | "replace" | "load" | "force";
|
156
|
+
type WithPartialProps<T, Props extends DefaultComponentProps> = Omit<T, "props"> & {
|
157
|
+
props?: Partial<Props>;
|
158
|
+
};
|
154
159
|
type ComponentConfig<RenderProps extends DefaultComponentProps = DefaultComponentProps, FieldProps extends DefaultComponentProps = RenderProps, DataShape = Omit<ComponentData<FieldProps>, "type">> = {
|
155
160
|
render: PuckComponent<RenderProps>;
|
156
161
|
label?: string;
|
@@ -175,13 +180,7 @@ type ComponentConfig<RenderProps extends DefaultComponentProps = DefaultComponen
|
|
175
180
|
lastData: DataShape | null;
|
176
181
|
metadata: Metadata;
|
177
182
|
trigger: ResolveDataTrigger;
|
178
|
-
}) => Promise<
|
179
|
-
props?: Partial<FieldProps>;
|
180
|
-
readOnly?: Partial<Record<keyof FieldProps, boolean>>;
|
181
|
-
}> | {
|
182
|
-
props?: Partial<FieldProps>;
|
183
|
-
readOnly?: Partial<Record<keyof FieldProps, boolean>>;
|
184
|
-
};
|
183
|
+
}) => Promise<WithPartialProps<DataShape, FieldProps>> | WithPartialProps<DataShape, FieldProps>;
|
185
184
|
resolvePermissions?: (data: DataShape, params: {
|
186
185
|
changed: Partial<Record<keyof FieldProps, boolean> & {
|
187
186
|
id: string;
|
@@ -239,6 +238,7 @@ type PuckContext = {
|
|
239
238
|
dragRef: ((element: Element | null) => void) | null;
|
240
239
|
};
|
241
240
|
type DefaultRootFieldProps = {
|
241
|
+
[key: string]: any;
|
242
242
|
title?: string;
|
243
243
|
};
|
244
244
|
type DefaultRootRenderProps<Props extends DefaultComponentProps = DefaultRootFieldProps> = WithPuckProps<WithChildren<Props>>;
|
@@ -255,13 +255,13 @@ type BaseData<Props extends {
|
|
255
255
|
readOnly?: Partial<Record<keyof Props, boolean>>;
|
256
256
|
};
|
257
257
|
type RootDataWithProps<Props extends DefaultComponentProps = DefaultRootFieldProps> = BaseData<Props> & {
|
258
|
-
props:
|
258
|
+
props: Props;
|
259
259
|
};
|
260
260
|
type RootDataWithoutProps<Props extends DefaultComponentProps = DefaultRootFieldProps> = Props;
|
261
261
|
type RootData<Props extends DefaultComponentProps = DefaultRootFieldProps> = Partial<RootDataWithProps<AsFieldProps<Props>>> & Partial<RootDataWithoutProps<Props>>;
|
262
|
-
type ComponentData<Props extends DefaultComponentProps = DefaultComponentProps, Name = string> = {
|
262
|
+
type ComponentData<Props extends DefaultComponentProps = DefaultComponentProps, Name = string, AllProps extends Record<string, DefaultComponentProps> = Record<string, DefaultComponentProps>> = {
|
263
263
|
type: Name;
|
264
|
-
props: WithId<
|
264
|
+
props: WithDeepSlots<WithId<Props>, Content<AllProps>>;
|
265
265
|
} & BaseData<Props>;
|
266
266
|
type ComponentDataOptionalId<Props extends DefaultComponentProps = DefaultComponentProps, Name = string> = {
|
267
267
|
type: Name;
|
@@ -270,18 +270,18 @@ type ComponentDataOptionalId<Props extends DefaultComponentProps = DefaultCompon
|
|
270
270
|
};
|
271
271
|
} & BaseData<Props>;
|
272
272
|
type MappedItem = ComponentData;
|
273
|
-
type ComponentDataMap<
|
274
|
-
[K in keyof
|
275
|
-
}[keyof
|
273
|
+
type ComponentDataMap<AllProps extends DefaultAllProps = DefaultAllProps> = {
|
274
|
+
[K in keyof AllProps]: ComponentData<AllProps[K], K extends string ? K : never, AllProps>;
|
275
|
+
}[keyof AllProps];
|
276
276
|
type Content<PropsMap extends {
|
277
277
|
[key: string]: DefaultComponentProps;
|
278
278
|
} = {
|
279
279
|
[key: string]: DefaultComponentProps;
|
280
280
|
}> = ComponentDataMap<PropsMap>[];
|
281
|
-
type Data<
|
282
|
-
root: RootData<RootProps
|
283
|
-
content: Content<
|
284
|
-
zones?: Record<string, Content<
|
281
|
+
type Data<AllProps extends DefaultAllProps = DefaultAllProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps> = {
|
282
|
+
root: WithDeepSlots<RootData<RootProps>, Content<AllProps>>;
|
283
|
+
content: Content<AllProps>;
|
284
|
+
zones?: Record<string, Content<AllProps>>;
|
285
285
|
};
|
286
286
|
type Metadata = {
|
287
287
|
[key: string]: any;
|
@@ -345,6 +345,13 @@ type PrivateAppState<UserData extends Data = Data> = AppState<UserData> & {
|
|
345
345
|
zones: ZoneIndex;
|
346
346
|
};
|
347
347
|
};
|
348
|
+
type DefaultAllProps = Record<string, DefaultComponentProps>;
|
349
|
+
/**
|
350
|
+
* Recursively walk T and replace Slots with SlotComponents
|
351
|
+
*/
|
352
|
+
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 object ? {
|
353
|
+
[K in keyof T]: WithDeepSlots<T[K], SlotType>;
|
354
|
+
} : T;
|
348
355
|
|
349
356
|
type RenderFunc<Props extends {
|
350
357
|
[key: string]: any;
|
@@ -459,9 +466,7 @@ type Slot<Props extends {
|
|
459
466
|
}> = {
|
460
467
|
[K in keyof Props]: ComponentDataOptionalId<Props[K], K extends string ? K : never>;
|
461
468
|
}[keyof Props][];
|
462
|
-
type WithSlotProps<
|
463
|
-
[PropName in keyof Props]: Props[PropName] extends Slot<SlotProps> ? Content<SlotProps> : Props[PropName];
|
464
|
-
};
|
469
|
+
type WithSlotProps<Target extends Record<string, any>, AllProps extends DefaultAllProps = DefaultAllProps, SlotType extends Content<AllProps> = Content<AllProps>> = WithDeepSlots<Target, SlotType>;
|
465
470
|
|
466
471
|
type InsertAction = {
|
467
472
|
type: "insert";
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@measured/puck",
|
3
|
-
"version": "0.19.0-canary.
|
3
|
+
"version": "0.19.0-canary.a60c81eb",
|
4
4
|
"author": "Chris Villa <chris@puckeditor.com>",
|
5
5
|
"repository": "measuredco/puck",
|
6
6
|
"bugs": "https://github.com/measuredco/puck/issues",
|
@@ -49,9 +49,12 @@
|
|
49
49
|
"dist"
|
50
50
|
],
|
51
51
|
"devDependencies": {
|
52
|
+
"@juggle/resize-observer": "^3.4.0",
|
53
|
+
"@testing-library/jest-dom": "^6.6.3",
|
52
54
|
"@testing-library/react": "^16.1.0",
|
53
55
|
"@types/deep-diff": "^1.0.3",
|
54
|
-
"@types/
|
56
|
+
"@types/flat": "^5.0.5",
|
57
|
+
"@types/jest": "^29.5.14",
|
55
58
|
"@types/object-hash": "^3.0.6",
|
56
59
|
"@types/react": "^19.0.1",
|
57
60
|
"@types/react-dom": "^19.0.2",
|
@@ -59,20 +62,22 @@
|
|
59
62
|
"css-box-model": "^1.2.1",
|
60
63
|
"eslint": "^7.32.0",
|
61
64
|
"eslint-config-custom": "*",
|
62
|
-
"
|
63
|
-
"jest
|
65
|
+
"identity-obj-proxy": "^3.0.0",
|
66
|
+
"jest": "^29.7.0",
|
67
|
+
"jest-environment-jsdom": "^30.0.0-beta.3",
|
64
68
|
"lucide-react": "^0.468.0",
|
65
|
-
"ts-jest": "^29.
|
69
|
+
"ts-jest": "^29.3.4",
|
66
70
|
"tsconfig": "*",
|
67
71
|
"tsup": "^8.2.4",
|
68
72
|
"tsup-config": "*",
|
69
73
|
"typescript": "^5.5.4"
|
70
74
|
},
|
71
75
|
"dependencies": {
|
72
|
-
"@dnd-kit/helpers": "0.1.18
|
73
|
-
"@dnd-kit/react": "0.1.18
|
76
|
+
"@dnd-kit/helpers": "0.1.18",
|
77
|
+
"@dnd-kit/react": "0.1.18",
|
74
78
|
"deep-diff": "^1.0.2",
|
75
79
|
"fast-deep-equal": "^3.1.3",
|
80
|
+
"flat": "^5.0.2",
|
76
81
|
"object-hash": "^3.0.0",
|
77
82
|
"react-hotkeys-hook": "^4.6.1",
|
78
83
|
"use-debounce": "^9.0.4",
|