@measured/puck 0.21.0-canary.d32e582b → 0.21.0-canary.e310a175

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.
@@ -11,24 +11,21 @@ import {
11
11
  Label,
12
12
  Puck,
13
13
  Render,
14
- blocksPlugin,
15
14
  createUsePuck,
16
- fieldsPlugin,
17
- outlinePlugin,
18
15
  overrideKeys,
19
16
  registerOverlayPortal,
20
17
  renderContext,
21
18
  setDeep,
22
19
  useGetPuck,
23
20
  usePuck
24
- } from "./chunk-VVS2EUKT.mjs";
21
+ } from "./chunk-EXX4ZSCK.mjs";
25
22
  import {
26
23
  init_react_import,
27
24
  migrate,
28
25
  resolveAllData,
29
26
  transformProps,
30
27
  walkTree
31
- } from "./chunk-XYKLHT4R.mjs";
28
+ } from "./chunk-VBJEDLUM.mjs";
32
29
 
33
30
  // bundle/no-external.ts
34
31
  init_react_import();
@@ -45,11 +42,8 @@ export {
45
42
  Label,
46
43
  Puck,
47
44
  Render,
48
- blocksPlugin,
49
45
  createUsePuck,
50
- fieldsPlugin,
51
46
  migrate,
52
- outlinePlugin,
53
47
  overrideKeys,
54
48
  registerOverlayPortal,
55
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-DiatHoF-.mjs';
3
- export { m as migrate, r as resolveAllData, t as transformProps, w as walkTree } from './walk-tree-DiatHoF-.mjs';
2
+ import { C as Config, U as UserGenerics, M as Metadata } from './walk-tree-DkTSFbz_.mjs';
3
+ export { m as migrate, r as resolveAllData, t as transformProps, w as walkTree } from './walk-tree-DkTSFbz_.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-DiatHoF-.js';
3
- export { m as migrate, r as resolveAllData, t as transformProps, w as walkTree } from './walk-tree-DiatHoF-.js';
2
+ import { C as Config, U as UserGenerics, M as Metadata } from './walk-tree-DkTSFbz_.js';
3
+ export { m as migrate, r as resolveAllData, t as transformProps, w as walkTree } from './walk-tree-DkTSFbz_.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
@@ -157,7 +157,7 @@ var walkField = ({
157
157
  return map({
158
158
  value: mappedContent,
159
159
  parentId: id,
160
- propName: propKey,
160
+ propName: propPath,
161
161
  field: fields[propKey],
162
162
  propPath
163
163
  });
@@ -460,19 +460,19 @@ function Render({
460
460
  }
461
461
 
462
462
  // lib/get-changed.ts
463
- var import_fast_deep_equal = __toESM(require("fast-deep-equal"));
463
+ var import_fast_equals = require("fast-equals");
464
464
  var getChanged = (newItem, oldItem) => {
465
465
  return newItem ? Object.keys(newItem.props || {}).reduce((acc, item) => {
466
466
  const newItemProps = (newItem == null ? void 0 : newItem.props) || {};
467
467
  const oldItemProps = (oldItem == null ? void 0 : oldItem.props) || {};
468
468
  return __spreadProps(__spreadValues({}, acc), {
469
- [item]: !(0, import_fast_deep_equal.default)(oldItemProps[item], newItemProps[item])
469
+ [item]: !(0, import_fast_equals.deepEqual)(oldItemProps[item], newItemProps[item])
470
470
  });
471
471
  }, {}) : {};
472
472
  };
473
473
 
474
474
  // lib/resolve-component-data.ts
475
- var import_fast_deep_equal2 = __toESM(require("fast-deep-equal"));
475
+ var import_fast_equals2 = require("fast-equals");
476
476
  var cache = { lastChange: {} };
477
477
  var resolveComponentData = (_0, _1, ..._2) => __async(void 0, [_0, _1, ..._2], function* (item, config, metadata = {}, onResolveStart, onResolveEnd, trigger = "replace") {
478
478
  const configForItem = "type" in item && item.type !== "root" ? config.components[item.type] : config.root;
@@ -481,7 +481,7 @@ var resolveComponentData = (_0, _1, ..._2) => __async(void 0, [_0, _1, ..._2], f
481
481
  const id = "id" in item.props ? item.props.id : "root";
482
482
  if (shouldRunResolver) {
483
483
  const { item: oldItem = null, resolved = {} } = cache.lastChange[id] || {};
484
- if (item && (0, import_fast_deep_equal2.default)(item, oldItem)) {
484
+ if (trigger !== "force" && item && (0, import_fast_equals2.deepEqual)(item, oldItem)) {
485
485
  return { node: resolved, didChange: false };
486
486
  }
487
487
  const changed = getChanged(item, oldItem);
@@ -531,7 +531,7 @@ var resolveComponentData = (_0, _1, ..._2) => __async(void 0, [_0, _1, ..._2], f
531
531
  };
532
532
  return {
533
533
  node: itemWithResolvedChildren,
534
- didChange: !(0, import_fast_deep_equal2.default)(item, itemWithResolvedChildren)
534
+ didChange: !(0, import_fast_equals2.deepEqual)(item, itemWithResolvedChildren)
535
535
  };
536
536
  });
537
537
 
@@ -671,8 +671,7 @@ function transformProps(data, propTransforms, config = { components: {} }) {
671
671
  var defaultViewports = [
672
672
  { width: 360, height: "auto", icon: "Smartphone", label: "Small" },
673
673
  { width: 768, height: "auto", icon: "Tablet", label: "Medium" },
674
- { width: 1280, height: "auto", icon: "Monitor", label: "Large" },
675
- { width: "100%", height: "auto", icon: "FullWidth", label: "Full-width" }
674
+ { width: 1280, height: "auto", icon: "Monitor", label: "Large" }
676
675
  ];
677
676
 
678
677
  // store/default-app-state.ts
@@ -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
@@ -12,7 +12,7 @@ import {
12
12
  transformProps,
13
13
  useSlots,
14
14
  walkTree
15
- } from "./chunk-XYKLHT4R.mjs";
15
+ } from "./chunk-VBJEDLUM.mjs";
16
16
 
17
17
  // bundle/rsc.tsx
18
18
  init_react_import();
@@ -72,7 +72,7 @@ type Adaptor<AdaptorParams = {}, TableShape extends Record<string, any> = {}, Pr
72
72
  fetchList: (adaptorParams?: AdaptorParams) => Promise<TableShape[] | null>;
73
73
  mapProp?: (value: TableShape) => PropShape;
74
74
  };
75
- type NotUndefined<T> = T extends undefined ? Record<string, any> : T;
75
+ type NotUndefined<T> = T extends undefined ? never : T;
76
76
  type ExternalFieldWithAdaptor<Props extends any = {
77
77
  [key: string]: any;
78
78
  }> = BaseField & {
@@ -82,10 +82,14 @@ type ExternalFieldWithAdaptor<Props extends any = {
82
82
  adaptorParams?: object;
83
83
  getItemSummary: (item: NotUndefined<Props>, index?: number) => string;
84
84
  };
85
+ type CacheOpts = {
86
+ enabled?: boolean;
87
+ };
85
88
  type ExternalField<Props extends any = {
86
89
  [key: string]: any;
87
90
  }> = BaseField & {
88
91
  type: "external";
92
+ cache?: CacheOpts;
89
93
  placeholder?: string;
90
94
  fetchList: (params: {
91
95
  query: string;
@@ -122,7 +126,7 @@ type SlotField = BaseField & {
122
126
  };
123
127
  type Field<ValueType = any, UserField extends {} = {}> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType extends {
124
128
  [key: string]: any;
125
- }[] ? ValueType : {}[], UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
129
+ }[] ? ValueType : never, UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
126
130
  type Fields<ComponentProps extends DefaultComponentProps = DefaultComponentProps, UserField extends {} = {}> = {
127
131
  [PropName in keyof Omit<ComponentProps, "editMode">]: UserField extends {
128
132
  type: PropertyKey;
@@ -212,6 +216,7 @@ UserField extends BaseField = {}> = {
212
216
  fields: Fields<FieldProps>;
213
217
  lastFields: Fields<FieldProps>;
214
218
  lastData: DataShape | null;
219
+ metadata: Metadata;
215
220
  appState: AppState;
216
221
  parent: ComponentData | null;
217
222
  }) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
@@ -255,7 +260,7 @@ type ConfigInternal<Props extends DefaultComponents = DefaultComponents, RootPro
255
260
  root?: RootConfigInternal<RootProps, UserField>;
256
261
  };
257
262
  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>;
263
+ type Config<PropsOrParams extends LeftOrExactRight<PropsOrParams, DefaultComponents, ConfigParams> = DefaultComponents | ConfigParams, RootProps extends DefaultComponentProps = any, 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
264
  type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends ConfigInternal<infer PropsOrParams, infer RootProps, infer CategoryName, infer UserField> ? {
260
265
  props: PropsOrParams;
261
266
  rootProps: RootProps & DefaultRootFieldProps;
@@ -308,7 +313,6 @@ type Metadata = {
308
313
  type ItemWithId = {
309
314
  _arrayId: string;
310
315
  _originalIndex: number;
311
- _currentIndex: number;
312
316
  };
313
317
  type ArrayState = {
314
318
  items: ItemWithId[];
@@ -319,7 +323,6 @@ type UiState = {
319
323
  rightSideBarVisible: boolean;
320
324
  leftSideBarWidth?: number | null;
321
325
  rightSideBarWidth?: number | null;
322
- mobilePanelExpanded?: boolean;
323
326
  itemSelector: ItemSelector | null;
324
327
  arrayState: Record<string, ArrayState | undefined>;
325
328
  previewMode: "interactive" | "edit";
@@ -332,7 +335,7 @@ type UiState = {
332
335
  isDragging: boolean;
333
336
  viewports: {
334
337
  current: {
335
- width: number | "100%";
338
+ width: number;
336
339
  height: number | "auto";
337
340
  };
338
341
  controlsVisible: boolean;
@@ -341,9 +344,6 @@ type UiState = {
341
344
  field: {
342
345
  focus?: string | null;
343
346
  };
344
- plugin: {
345
- current: string | null;
346
- };
347
347
  };
348
348
  type AppState<UserData extends Data = Data> = {
349
349
  data: UserData;
@@ -377,7 +377,7 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
377
377
  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 ? {
378
378
  [K in keyof T]: WithDeepSlots<T[K], SlotType>;
379
379
  } : T;
380
- type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = DefaultComponentProps, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
380
+ type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
381
381
  components?: Components;
382
382
  root?: RootProps;
383
383
  categories?: CategoryNames;
@@ -397,14 +397,6 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
397
397
  type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
398
398
  never
399
399
  ] ? False : True;
400
- type RenderFunc<Props extends {
401
- [key: string]: any;
402
- } = {
403
- children: ReactNode;
404
- }> = (props: Props) => ReactElement;
405
- type PluginInternal = Plugin & {
406
- mobileOnly?: boolean;
407
- };
408
400
 
409
401
  type MapFnParams<ThisField = Field> = {
410
402
  value: any;
@@ -428,6 +420,11 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
428
420
  [Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
429
421
  }>;
430
422
 
423
+ type RenderFunc<Props extends {
424
+ [key: string]: any;
425
+ } = {
426
+ children: ReactNode;
427
+ }> = (props: Props) => ReactElement;
431
428
  declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
432
429
  type OverrideKey = (typeof overrideKeys)[number];
433
430
  type OverridesGeneric<Shape extends {
@@ -499,7 +496,7 @@ type DragAxis = "dynamic" | "y" | "x";
499
496
 
500
497
  type iconTypes = "Smartphone" | "Monitor" | "Tablet";
501
498
  type Viewport = {
502
- width: number | "100%";
499
+ width: number;
503
500
  height?: number | "auto";
504
501
  label?: string;
505
502
  icon?: iconTypes | ReactNode;
@@ -519,13 +516,8 @@ type IframeConfig = {
519
516
  };
520
517
  type OnAction<UserData extends Data = Data> = (action: PuckAction, appState: AppState<UserData>, prevAppState: AppState<UserData>) => void;
521
518
  type Plugin<UserConfig extends Config = Config> = {
522
- name?: string;
523
- label?: string;
524
- icon?: ReactNode;
525
- render?: () => ReactElement;
526
519
  overrides?: Partial<Overrides<UserConfig>>;
527
520
  fieldTransforms?: FieldTransforms<UserConfig>;
528
- mobilePanelHeight?: "toggle" | "min-content";
529
521
  };
530
522
  type History<D = any> = {
531
523
  state: D;
@@ -643,4 +635,4 @@ type WalkTreeOptions = {
643
635
  };
644
636
  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;
645
637
 
646
- export { type Content as $, type AppState as A, type ItemWithId as B, type Config as C, type DropZoneProps as D, type ArrayState as E, type Fields as F, type SlotComponent as G, type History as H, type IframeConfig as I, type PuckComponent as J, type RootConfig as K, type DefaultComponents as L, type Metadata as M, type ExtractConfigParams as N, type Overrides as O, type Permissions as P, type BaseData as Q, type RootDataWithProps as R, type Slot as S, type RootDataWithoutProps as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type RootData as X, type ComponentDataOptionalId as Y, type MappedItem as Z, type ComponentDataMap as _, type ComponentData as a, type BaseField as a0, type TextField as a1, type NumberField as a2, type TextareaField as a3, type SelectField as a4, type RadioField as a5, type ArrayField as a6, type ObjectField as a7, type Adaptor as a8, type ExternalFieldWithAdaptor as a9, type ExternalField as aa, type CustomFieldRender as ab, type CustomField as ac, type SlotField as ad, type PuckContext as ae, type DefaultRootFieldProps as af, type DefaultRootRenderProps as ag, type DefaultRootProps as ah, type DefaultComponentProps as ai, type WithId as aj, type WithPuckProps as ak, type AsFieldProps as al, type WithChildren as am, type ExtractField as an, 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 PluginInternal as o, type Direction as p, type DragAxis as q, resolveAllData as r, type Viewport as s, transformProps as t, type FieldTransformFnParams as u, type FieldTransformFn as v, walkTree as w, overrideKeys as x, type OverrideKey as y, type FieldRenderFunctions as z };
638
+ 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 CacheOpts as a9, type ExternalField as aa, type CustomFieldRender as ab, type CustomField as ac, type SlotField as ad, type PuckContext as ae, type DefaultRootFieldProps as af, type DefaultRootRenderProps as ag, type DefaultRootProps as ah, type DefaultComponentProps as ai, type WithId as aj, type WithPuckProps as ak, type AsFieldProps as al, type WithChildren as am, type ExtractField as an, 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 };
@@ -72,7 +72,7 @@ type Adaptor<AdaptorParams = {}, TableShape extends Record<string, any> = {}, Pr
72
72
  fetchList: (adaptorParams?: AdaptorParams) => Promise<TableShape[] | null>;
73
73
  mapProp?: (value: TableShape) => PropShape;
74
74
  };
75
- type NotUndefined<T> = T extends undefined ? Record<string, any> : T;
75
+ type NotUndefined<T> = T extends undefined ? never : T;
76
76
  type ExternalFieldWithAdaptor<Props extends any = {
77
77
  [key: string]: any;
78
78
  }> = BaseField & {
@@ -82,10 +82,14 @@ type ExternalFieldWithAdaptor<Props extends any = {
82
82
  adaptorParams?: object;
83
83
  getItemSummary: (item: NotUndefined<Props>, index?: number) => string;
84
84
  };
85
+ type CacheOpts = {
86
+ enabled?: boolean;
87
+ };
85
88
  type ExternalField<Props extends any = {
86
89
  [key: string]: any;
87
90
  }> = BaseField & {
88
91
  type: "external";
92
+ cache?: CacheOpts;
89
93
  placeholder?: string;
90
94
  fetchList: (params: {
91
95
  query: string;
@@ -122,7 +126,7 @@ type SlotField = BaseField & {
122
126
  };
123
127
  type Field<ValueType = any, UserField extends {} = {}> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType extends {
124
128
  [key: string]: any;
125
- }[] ? ValueType : {}[], UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
129
+ }[] ? ValueType : never, UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
126
130
  type Fields<ComponentProps extends DefaultComponentProps = DefaultComponentProps, UserField extends {} = {}> = {
127
131
  [PropName in keyof Omit<ComponentProps, "editMode">]: UserField extends {
128
132
  type: PropertyKey;
@@ -212,6 +216,7 @@ UserField extends BaseField = {}> = {
212
216
  fields: Fields<FieldProps>;
213
217
  lastFields: Fields<FieldProps>;
214
218
  lastData: DataShape | null;
219
+ metadata: Metadata;
215
220
  appState: AppState;
216
221
  parent: ComponentData | null;
217
222
  }) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
@@ -255,7 +260,7 @@ type ConfigInternal<Props extends DefaultComponents = DefaultComponents, RootPro
255
260
  root?: RootConfigInternal<RootProps, UserField>;
256
261
  };
257
262
  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>;
263
+ type Config<PropsOrParams extends LeftOrExactRight<PropsOrParams, DefaultComponents, ConfigParams> = DefaultComponents | ConfigParams, RootProps extends DefaultComponentProps = any, 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
264
  type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends ConfigInternal<infer PropsOrParams, infer RootProps, infer CategoryName, infer UserField> ? {
260
265
  props: PropsOrParams;
261
266
  rootProps: RootProps & DefaultRootFieldProps;
@@ -308,7 +313,6 @@ type Metadata = {
308
313
  type ItemWithId = {
309
314
  _arrayId: string;
310
315
  _originalIndex: number;
311
- _currentIndex: number;
312
316
  };
313
317
  type ArrayState = {
314
318
  items: ItemWithId[];
@@ -319,7 +323,6 @@ type UiState = {
319
323
  rightSideBarVisible: boolean;
320
324
  leftSideBarWidth?: number | null;
321
325
  rightSideBarWidth?: number | null;
322
- mobilePanelExpanded?: boolean;
323
326
  itemSelector: ItemSelector | null;
324
327
  arrayState: Record<string, ArrayState | undefined>;
325
328
  previewMode: "interactive" | "edit";
@@ -332,7 +335,7 @@ type UiState = {
332
335
  isDragging: boolean;
333
336
  viewports: {
334
337
  current: {
335
- width: number | "100%";
338
+ width: number;
336
339
  height: number | "auto";
337
340
  };
338
341
  controlsVisible: boolean;
@@ -341,9 +344,6 @@ type UiState = {
341
344
  field: {
342
345
  focus?: string | null;
343
346
  };
344
- plugin: {
345
- current: string | null;
346
- };
347
347
  };
348
348
  type AppState<UserData extends Data = Data> = {
349
349
  data: UserData;
@@ -377,7 +377,7 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
377
377
  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 ? {
378
378
  [K in keyof T]: WithDeepSlots<T[K], SlotType>;
379
379
  } : T;
380
- type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = DefaultComponentProps, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
380
+ type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
381
381
  components?: Components;
382
382
  root?: RootProps;
383
383
  categories?: CategoryNames;
@@ -397,14 +397,6 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
397
397
  type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
398
398
  never
399
399
  ] ? False : True;
400
- type RenderFunc<Props extends {
401
- [key: string]: any;
402
- } = {
403
- children: ReactNode;
404
- }> = (props: Props) => ReactElement;
405
- type PluginInternal = Plugin & {
406
- mobileOnly?: boolean;
407
- };
408
400
 
409
401
  type MapFnParams<ThisField = Field> = {
410
402
  value: any;
@@ -428,6 +420,11 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
428
420
  [Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
429
421
  }>;
430
422
 
423
+ type RenderFunc<Props extends {
424
+ [key: string]: any;
425
+ } = {
426
+ children: ReactNode;
427
+ }> = (props: Props) => ReactElement;
431
428
  declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
432
429
  type OverrideKey = (typeof overrideKeys)[number];
433
430
  type OverridesGeneric<Shape extends {
@@ -499,7 +496,7 @@ type DragAxis = "dynamic" | "y" | "x";
499
496
 
500
497
  type iconTypes = "Smartphone" | "Monitor" | "Tablet";
501
498
  type Viewport = {
502
- width: number | "100%";
499
+ width: number;
503
500
  height?: number | "auto";
504
501
  label?: string;
505
502
  icon?: iconTypes | ReactNode;
@@ -519,13 +516,8 @@ type IframeConfig = {
519
516
  };
520
517
  type OnAction<UserData extends Data = Data> = (action: PuckAction, appState: AppState<UserData>, prevAppState: AppState<UserData>) => void;
521
518
  type Plugin<UserConfig extends Config = Config> = {
522
- name?: string;
523
- label?: string;
524
- icon?: ReactNode;
525
- render?: () => ReactElement;
526
519
  overrides?: Partial<Overrides<UserConfig>>;
527
520
  fieldTransforms?: FieldTransforms<UserConfig>;
528
- mobilePanelHeight?: "toggle" | "min-content";
529
521
  };
530
522
  type History<D = any> = {
531
523
  state: D;
@@ -643,4 +635,4 @@ type WalkTreeOptions = {
643
635
  };
644
636
  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;
645
637
 
646
- export { type Content as $, type AppState as A, type ItemWithId as B, type Config as C, type DropZoneProps as D, type ArrayState as E, type Fields as F, type SlotComponent as G, type History as H, type IframeConfig as I, type PuckComponent as J, type RootConfig as K, type DefaultComponents as L, type Metadata as M, type ExtractConfigParams as N, type Overrides as O, type Permissions as P, type BaseData as Q, type RootDataWithProps as R, type Slot as S, type RootDataWithoutProps as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type RootData as X, type ComponentDataOptionalId as Y, type MappedItem as Z, type ComponentDataMap as _, type ComponentData as a, type BaseField as a0, type TextField as a1, type NumberField as a2, type TextareaField as a3, type SelectField as a4, type RadioField as a5, type ArrayField as a6, type ObjectField as a7, type Adaptor as a8, type ExternalFieldWithAdaptor as a9, type ExternalField as aa, type CustomFieldRender as ab, type CustomField as ac, type SlotField as ad, type PuckContext as ae, type DefaultRootFieldProps as af, type DefaultRootRenderProps as ag, type DefaultRootProps as ah, type DefaultComponentProps as ai, type WithId as aj, type WithPuckProps as ak, type AsFieldProps as al, type WithChildren as am, type ExtractField as an, 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 PluginInternal as o, type Direction as p, type DragAxis as q, resolveAllData as r, type Viewport as s, transformProps as t, type FieldTransformFnParams as u, type FieldTransformFn as v, walkTree as w, overrideKeys as x, type OverrideKey as y, type FieldRenderFunctions as z };
638
+ 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 CacheOpts as a9, type ExternalField as aa, type CustomFieldRender as ab, type CustomField as ac, type SlotField as ad, type PuckContext as ae, type DefaultRootFieldProps as af, type DefaultRootRenderProps as ag, type DefaultRootProps as ah, type DefaultComponentProps as ai, type WithId as aj, type WithPuckProps as ak, type AsFieldProps as al, type WithChildren as am, type ExtractField as an, 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 };
package/package.json CHANGED
@@ -1,10 +1,29 @@
1
1
  {
2
2
  "name": "@measured/puck",
3
- "version": "0.21.0-canary.d32e582b",
3
+ "version": "0.21.0-canary.e310a175",
4
+ "description": "The open-source visual editor for React",
4
5
  "author": "Chris Villa <chris@puckeditor.com>",
5
6
  "repository": "measuredco/puck",
6
7
  "bugs": "https://github.com/measuredco/puck/issues",
7
8
  "homepage": "https://puckeditor.com",
9
+ "keywords": [
10
+ "puck",
11
+ "visual",
12
+ "editor",
13
+ "react",
14
+ "drag and drop",
15
+ "dnd",
16
+ "page",
17
+ "website",
18
+ "builder",
19
+ "headless",
20
+ "cms",
21
+ "low-code",
22
+ "no-code",
23
+ "javascript",
24
+ "typescript",
25
+ "WYSIWYG"
26
+ ],
8
27
  "private": false,
9
28
  "main": "./dist/index.js",
10
29
  "types": "./dist/index.d.ts",
@@ -77,7 +96,7 @@
77
96
  "@dnd-kit/helpers": "0.1.18",
78
97
  "@dnd-kit/react": "0.1.18",
79
98
  "deep-diff": "^1.0.2",
80
- "fast-deep-equal": "^3.1.3",
99
+ "fast-equals": "5.2.2",
81
100
  "flat": "^5.0.2",
82
101
  "object-hash": "^3.0.0",
83
102
  "react-hotkeys-hook": "^4.6.1",