@measured/puck 0.20.0-canary.3da831b0 → 0.20.0-canary.5780043

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/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { H as History, P as Permissions, C as ComponentData, a as Config, U as UserGenerics, F as Fields, b as PuckAction, R as RootDataWithProps, c as ResolveDataTrigger, d as Plugin, O as Overrides, V as Viewports, I as IframeConfig, e as UiState, f as ComponentConfig, A as AppState, M as Metadata, g as Field, h as FieldProps, D as DropZoneProps, i as Data, j as OnAction, k as InitialHistory, l as ItemSelector } from './walk-tree-DhtH8sAC.mjs';
2
- export { _ as Adaptor, Y as ArrayField, t as ArrayState, ab as AsFieldProps, B as BaseData, K as BaseField, G as ComponentDataMap, z as ComponentDataOptionalId, J as Content, a2 as CustomField, a1 as CustomFieldRender, a8 as DefaultComponentProps, a5 as DefaultRootFieldProps, a7 as DefaultRootProps, a6 as DefaultRootRenderProps, m as Direction, n as DragAxis, a0 as ExternalField, $ as ExternalFieldWithAdaptor, ad as ExtractPropsFromConfig, ae as ExtractRootPropsFromConfig, r as FieldRenderFunctions, s as ItemWithId, E as MappedItem, N as NumberField, Z as ObjectField, q as OverrideKey, u as PuckComponent, a4 as PuckContext, X as RadioField, v as RootConfig, y as RootData, x as RootDataWithoutProps, Q as SelectField, S as Slot, a3 as SlotField, T as TextField, L as TextareaField, o as Viewport, ac as WithChildren, a9 as WithId, aa as WithPuckProps, W as WithSlotProps, af as migrate, p as overrideKeys, ah as resolveAllData, ag as transformProps, w as walkTree } from './walk-tree-DhtH8sAC.mjs';
1
+ import { H as History, P as Permissions, C as ComponentData, a as Config, U as UserGenerics, F as Fields, b as PuckAction, R as RootDataWithProps, c as ResolveDataTrigger, d as Plugin, O as Overrides, V as Viewports, I as IframeConfig, e as UiState, f as ComponentConfig, A as AppState, M as Metadata, g as Field, h as FieldProps, D as DropZoneProps, i as Data, j as OnAction, k as InitialHistory, l as ItemSelector } from './walk-tree-BDO40vbf.mjs';
2
+ export { $ as Adaptor, Z as ArrayField, t as ArrayState, ac as AsFieldProps, B as BaseData, L as BaseField, J as ComponentDataMap, E as ComponentDataOptionalId, K as Content, a3 as CustomField, a2 as CustomFieldRender, a9 as DefaultComponentProps, a6 as DefaultRootFieldProps, a8 as DefaultRootProps, a7 as DefaultRootRenderProps, m as Direction, n as DragAxis, a1 as ExternalField, a0 as ExternalFieldWithAdaptor, ae as ExtractPropsFromConfig, af as ExtractRootPropsFromConfig, r as FieldRenderFunctions, s as ItemWithId, G as MappedItem, N as NumberField, _ as ObjectField, q as OverrideKey, v as PuckComponent, a5 as PuckContext, Y as RadioField, x as RootConfig, z as RootData, y as RootDataWithoutProps, X as SelectField, S as Slot, u as SlotComponent, a4 as SlotField, T as TextField, Q as TextareaField, o as Viewport, ad as WithChildren, aa as WithId, ab as WithPuckProps, W as WithSlotProps, ag as migrate, p as overrideKeys, ai as resolveAllData, ah as transformProps, w as walkTree } from './walk-tree-BDO40vbf.mjs';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import * as react from 'react';
5
5
  import react__default, { ReactNode, SyntheticEvent, ReactElement } from 'react';
@@ -249,9 +249,6 @@ declare function Render<UserConfig extends Config = Config, G extends UserGeneri
249
249
  metadata?: Metadata;
250
250
  }): react_jsx_runtime.JSX.Element;
251
251
 
252
- type WithGet<T> = T & {
253
- get: () => T;
254
- };
255
252
  type UsePuckData<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
256
253
  appState: AppState;
257
254
  config: UserConfig;
@@ -274,7 +271,7 @@ type UsePuckData<UserConfig extends Config = Config, G extends UserGenerics<User
274
271
  };
275
272
  };
276
273
  type PuckApi<UserConfig extends Config = Config> = UsePuckData<UserConfig>;
277
- type UsePuckStore<UserConfig extends Config = Config> = WithGet<PuckApi<UserConfig>>;
274
+ type UsePuckStore<UserConfig extends Config = Config> = PuckApi<UserConfig>;
278
275
  /**
279
276
  * createUsePuck
280
277
  *
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { H as History, P as Permissions, C as ComponentData, a as Config, U as UserGenerics, F as Fields, b as PuckAction, R as RootDataWithProps, c as ResolveDataTrigger, d as Plugin, O as Overrides, V as Viewports, I as IframeConfig, e as UiState, f as ComponentConfig, A as AppState, M as Metadata, g as Field, h as FieldProps, D as DropZoneProps, i as Data, j as OnAction, k as InitialHistory, l as ItemSelector } from './walk-tree-DhtH8sAC.js';
2
- export { _ as Adaptor, Y as ArrayField, t as ArrayState, ab as AsFieldProps, B as BaseData, K as BaseField, G as ComponentDataMap, z as ComponentDataOptionalId, J as Content, a2 as CustomField, a1 as CustomFieldRender, a8 as DefaultComponentProps, a5 as DefaultRootFieldProps, a7 as DefaultRootProps, a6 as DefaultRootRenderProps, m as Direction, n as DragAxis, a0 as ExternalField, $ as ExternalFieldWithAdaptor, ad as ExtractPropsFromConfig, ae as ExtractRootPropsFromConfig, r as FieldRenderFunctions, s as ItemWithId, E as MappedItem, N as NumberField, Z as ObjectField, q as OverrideKey, u as PuckComponent, a4 as PuckContext, X as RadioField, v as RootConfig, y as RootData, x as RootDataWithoutProps, Q as SelectField, S as Slot, a3 as SlotField, T as TextField, L as TextareaField, o as Viewport, ac as WithChildren, a9 as WithId, aa as WithPuckProps, W as WithSlotProps, af as migrate, p as overrideKeys, ah as resolveAllData, ag as transformProps, w as walkTree } from './walk-tree-DhtH8sAC.js';
1
+ import { H as History, P as Permissions, C as ComponentData, a as Config, U as UserGenerics, F as Fields, b as PuckAction, R as RootDataWithProps, c as ResolveDataTrigger, d as Plugin, O as Overrides, V as Viewports, I as IframeConfig, e as UiState, f as ComponentConfig, A as AppState, M as Metadata, g as Field, h as FieldProps, D as DropZoneProps, i as Data, j as OnAction, k as InitialHistory, l as ItemSelector } from './walk-tree-BDO40vbf.js';
2
+ export { $ as Adaptor, Z as ArrayField, t as ArrayState, ac as AsFieldProps, B as BaseData, L as BaseField, J as ComponentDataMap, E as ComponentDataOptionalId, K as Content, a3 as CustomField, a2 as CustomFieldRender, a9 as DefaultComponentProps, a6 as DefaultRootFieldProps, a8 as DefaultRootProps, a7 as DefaultRootRenderProps, m as Direction, n as DragAxis, a1 as ExternalField, a0 as ExternalFieldWithAdaptor, ae as ExtractPropsFromConfig, af as ExtractRootPropsFromConfig, r as FieldRenderFunctions, s as ItemWithId, G as MappedItem, N as NumberField, _ as ObjectField, q as OverrideKey, v as PuckComponent, a5 as PuckContext, Y as RadioField, x as RootConfig, z as RootData, y as RootDataWithoutProps, X as SelectField, S as Slot, u as SlotComponent, a4 as SlotField, T as TextField, Q as TextareaField, o as Viewport, ad as WithChildren, aa as WithId, ab as WithPuckProps, W as WithSlotProps, ag as migrate, p as overrideKeys, ai as resolveAllData, ah as transformProps, w as walkTree } from './walk-tree-BDO40vbf.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import * as react from 'react';
5
5
  import react__default, { ReactNode, SyntheticEvent, ReactElement } from 'react';
@@ -249,9 +249,6 @@ declare function Render<UserConfig extends Config = Config, G extends UserGeneri
249
249
  metadata?: Metadata;
250
250
  }): react_jsx_runtime.JSX.Element;
251
251
 
252
- type WithGet<T> = T & {
253
- get: () => T;
254
- };
255
252
  type UsePuckData<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
256
253
  appState: AppState;
257
254
  config: UserConfig;
@@ -274,7 +271,7 @@ type UsePuckData<UserConfig extends Config = Config, G extends UserGenerics<User
274
271
  };
275
272
  };
276
273
  type PuckApi<UserConfig extends Config = Config> = UsePuckData<UserConfig>;
277
- type UsePuckStore<UserConfig extends Config = Config> = WithGet<PuckApi<UserConfig>>;
274
+ type UsePuckStore<UserConfig extends Config = Config> = PuckApi<UserConfig>;
278
275
  /**
279
276
  * createUsePuck
280
277
  *
package/dist/index.js CHANGED
@@ -4699,19 +4699,9 @@ var DropZoneProvider = ({
4699
4699
  },
4700
4700
  [dispatch]
4701
4701
  );
4702
- const unregisterZone = (0, import_react25.useCallback)(
4703
- (zoneCompound) => {
4704
- dispatch({
4705
- type: "unregisterZone",
4706
- zone: zoneCompound
4707
- });
4708
- },
4709
- [dispatch]
4710
- );
4711
4702
  const memoValue = (0, import_react25.useMemo)(
4712
4703
  () => __spreadValues({
4713
- registerZone,
4714
- unregisterZone
4704
+ registerZone
4715
4705
  }, value),
4716
4706
  [value]
4717
4707
  );
@@ -5585,7 +5575,8 @@ var DropZoneChild = ({
5585
5575
  return {
5586
5576
  type: preview.componentType,
5587
5577
  props: preview.props,
5588
- previewType: preview.type
5578
+ previewType: preview.type,
5579
+ element: preview.element
5589
5580
  };
5590
5581
  }
5591
5582
  return null;
@@ -5618,6 +5609,12 @@ var DropZoneChild = ({
5618
5609
  let label = (_b = (_a = componentConfig == null ? void 0 : componentConfig.label) != null ? _a : item == null ? void 0 : item.type.toString()) != null ? _b : "Component";
5619
5610
  const renderPreview = (0, import_react35.useMemo)(
5620
5611
  () => function Preview3() {
5612
+ if (item && "element" in item && item.element) {
5613
+ return (
5614
+ // Safe to use this since the HTML is set by the user
5615
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { dangerouslySetInnerHTML: { __html: item.element.outerHTML } })
5616
+ );
5617
+ }
5621
5618
  return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(DrawerItemInner, { name: label, children: overrides.componentItem });
5622
5619
  },
5623
5620
  [componentId, label, overrides]
@@ -5693,6 +5690,7 @@ var DropZoneEdit = (0, import_react35.forwardRef)(
5693
5690
  collisionAxis
5694
5691
  }, userRef) {
5695
5692
  const ctx = (0, import_react35.useContext)(dropZoneContext);
5693
+ const appStoreApi = useAppStoreApi();
5696
5694
  const {
5697
5695
  // These all need setting via context
5698
5696
  areaId,
@@ -5734,13 +5732,8 @@ var DropZoneEdit = (0, import_react35.forwardRef)(
5734
5732
  if (ctx == null ? void 0 : ctx.registerZone) {
5735
5733
  ctx == null ? void 0 : ctx.registerZone(zoneCompound);
5736
5734
  }
5737
- return () => {
5738
- if (ctx == null ? void 0 : ctx.unregisterZone) {
5739
- ctx == null ? void 0 : ctx.unregisterZone(zoneCompound);
5740
- }
5741
- };
5742
5735
  }
5743
- }, [zoneType]);
5736
+ }, [zoneType, appStoreApi]);
5744
5737
  (0, import_react35.useEffect)(() => {
5745
5738
  if (zoneType === "dropzone") {
5746
5739
  if (zoneCompound !== rootDroppableId) {
@@ -5912,11 +5905,6 @@ var DropZoneRender2 = (0, import_react35.forwardRef)(
5912
5905
  if (ctx == null ? void 0 : ctx.registerZone) {
5913
5906
  ctx == null ? void 0 : ctx.registerZone(zoneCompound);
5914
5907
  }
5915
- return () => {
5916
- if (ctx == null ? void 0 : ctx.unregisterZone) {
5917
- ctx == null ? void 0 : ctx.unregisterZone(zoneCompound);
5918
- }
5919
- };
5920
5908
  }
5921
5909
  }, [content]);
5922
5910
  if (!data || !config) {
@@ -6177,6 +6165,7 @@ var findDeepestCandidate = (position, manager) => {
6177
6165
  });
6178
6166
  filteredCandidates.reverse();
6179
6167
  const primaryCandidate = filteredCandidates[0];
6168
+ if (!primaryCandidate) return { zone: null, area: null };
6180
6169
  const primaryCandidateData = primaryCandidate.data;
6181
6170
  const primaryCandidateIsComponent = "containsActiveZone" in primaryCandidateData;
6182
6171
  const zone = getZoneId2(primaryCandidate);
@@ -6581,6 +6570,7 @@ var DragDropContextClient = ({
6581
6570
  type: "insert",
6582
6571
  index: targetIndex,
6583
6572
  zone: targetZone,
6573
+ element: source.element,
6584
6574
  props: {
6585
6575
  id: source.id.toString()
6586
6576
  }
@@ -6606,7 +6596,8 @@ var DragDropContextClient = ({
6606
6596
  type: "move",
6607
6597
  index: targetIndex,
6608
6598
  zone: targetZone,
6609
- props: item.props
6599
+ props: item.props,
6600
+ element: source.element
6610
6601
  }
6611
6602
  }
6612
6603
  });
@@ -6636,7 +6627,8 @@ var DragDropContextClient = ({
6636
6627
  type: "move",
6637
6628
  index: sourceData.index,
6638
6629
  zone: sourceData.zone,
6639
- props: item.props
6630
+ props: item.props,
6631
+ element: source.element
6640
6632
  }
6641
6633
  }
6642
6634
  });
@@ -7591,7 +7583,7 @@ var Preview2 = ({ id = "puck-preview" }) => {
7591
7583
  editMode: true,
7592
7584
  children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(DropZonePure, { zone: rootDroppableId })
7593
7585
  })
7594
- ) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Render2, { data: renderData, config });
7586
+ ) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Render2, { data: renderData, config, metadata });
7595
7587
  (0, import_react46.useEffect)(() => {
7596
7588
  if (!iframe.enabled) {
7597
7589
  setStatus("READY");
@@ -8476,8 +8468,7 @@ var generateUsePuck = (store) => {
8476
8468
  return { zone: zoneCompound, index };
8477
8469
  }
8478
8470
  };
8479
- const get = () => storeData;
8480
- return __spreadProps(__spreadValues({}, storeData), { get });
8471
+ return storeData;
8481
8472
  };
8482
8473
  var UsePuckStoreContext = (0, import_react54.createContext)(
8483
8474
  null
package/dist/index.mjs CHANGED
@@ -3808,19 +3808,9 @@ var DropZoneProvider = ({
3808
3808
  },
3809
3809
  [dispatch]
3810
3810
  );
3811
- const unregisterZone = useCallback5(
3812
- (zoneCompound) => {
3813
- dispatch({
3814
- type: "unregisterZone",
3815
- zone: zoneCompound
3816
- });
3817
- },
3818
- [dispatch]
3819
- );
3820
3811
  const memoValue = useMemo6(
3821
3812
  () => __spreadValues({
3822
- registerZone,
3823
- unregisterZone
3813
+ registerZone
3824
3814
  }, value),
3825
3815
  [value]
3826
3816
  );
@@ -4694,7 +4684,8 @@ var DropZoneChild = ({
4694
4684
  return {
4695
4685
  type: preview.componentType,
4696
4686
  props: preview.props,
4697
- previewType: preview.type
4687
+ previewType: preview.type,
4688
+ element: preview.element
4698
4689
  };
4699
4690
  }
4700
4691
  return null;
@@ -4727,6 +4718,12 @@ var DropZoneChild = ({
4727
4718
  let label = (_b = (_a = componentConfig == null ? void 0 : componentConfig.label) != null ? _a : item == null ? void 0 : item.type.toString()) != null ? _b : "Component";
4728
4719
  const renderPreview = useMemo9(
4729
4720
  () => function Preview3() {
4721
+ if (item && "element" in item && item.element) {
4722
+ return (
4723
+ // Safe to use this since the HTML is set by the user
4724
+ /* @__PURE__ */ jsx23("div", { dangerouslySetInnerHTML: { __html: item.element.outerHTML } })
4725
+ );
4726
+ }
4730
4727
  return /* @__PURE__ */ jsx23(DrawerItemInner, { name: label, children: overrides.componentItem });
4731
4728
  },
4732
4729
  [componentId, label, overrides]
@@ -4802,6 +4799,7 @@ var DropZoneEdit = forwardRef3(
4802
4799
  collisionAxis
4803
4800
  }, userRef) {
4804
4801
  const ctx = useContext7(dropZoneContext);
4802
+ const appStoreApi = useAppStoreApi();
4805
4803
  const {
4806
4804
  // These all need setting via context
4807
4805
  areaId,
@@ -4843,13 +4841,8 @@ var DropZoneEdit = forwardRef3(
4843
4841
  if (ctx == null ? void 0 : ctx.registerZone) {
4844
4842
  ctx == null ? void 0 : ctx.registerZone(zoneCompound);
4845
4843
  }
4846
- return () => {
4847
- if (ctx == null ? void 0 : ctx.unregisterZone) {
4848
- ctx == null ? void 0 : ctx.unregisterZone(zoneCompound);
4849
- }
4850
- };
4851
4844
  }
4852
- }, [zoneType]);
4845
+ }, [zoneType, appStoreApi]);
4853
4846
  useEffect16(() => {
4854
4847
  if (zoneType === "dropzone") {
4855
4848
  if (zoneCompound !== rootDroppableId) {
@@ -5021,11 +5014,6 @@ var DropZoneRender = forwardRef3(
5021
5014
  if (ctx == null ? void 0 : ctx.registerZone) {
5022
5015
  ctx == null ? void 0 : ctx.registerZone(zoneCompound);
5023
5016
  }
5024
- return () => {
5025
- if (ctx == null ? void 0 : ctx.unregisterZone) {
5026
- ctx == null ? void 0 : ctx.unregisterZone(zoneCompound);
5027
- }
5028
- };
5029
5017
  }
5030
5018
  }, [content]);
5031
5019
  if (!data || !config) {
@@ -5286,6 +5274,7 @@ var findDeepestCandidate = (position, manager) => {
5286
5274
  });
5287
5275
  filteredCandidates.reverse();
5288
5276
  const primaryCandidate = filteredCandidates[0];
5277
+ if (!primaryCandidate) return { zone: null, area: null };
5289
5278
  const primaryCandidateData = primaryCandidate.data;
5290
5279
  const primaryCandidateIsComponent = "containsActiveZone" in primaryCandidateData;
5291
5280
  const zone = getZoneId(primaryCandidate);
@@ -5690,6 +5679,7 @@ var DragDropContextClient = ({
5690
5679
  type: "insert",
5691
5680
  index: targetIndex,
5692
5681
  zone: targetZone,
5682
+ element: source.element,
5693
5683
  props: {
5694
5684
  id: source.id.toString()
5695
5685
  }
@@ -5715,7 +5705,8 @@ var DragDropContextClient = ({
5715
5705
  type: "move",
5716
5706
  index: targetIndex,
5717
5707
  zone: targetZone,
5718
- props: item.props
5708
+ props: item.props,
5709
+ element: source.element
5719
5710
  }
5720
5711
  }
5721
5712
  });
@@ -5745,7 +5736,8 @@ var DragDropContextClient = ({
5745
5736
  type: "move",
5746
5737
  index: sourceData.index,
5747
5738
  zone: sourceData.zone,
5748
- props: item.props
5739
+ props: item.props,
5740
+ element: source.element
5749
5741
  }
5750
5742
  }
5751
5743
  });
@@ -6713,7 +6705,7 @@ var Preview2 = ({ id = "puck-preview" }) => {
6713
6705
  editMode: true,
6714
6706
  children: /* @__PURE__ */ jsx32(DropZonePure, { zone: rootDroppableId })
6715
6707
  })
6716
- ) : /* @__PURE__ */ jsx32(Render, { data: renderData, config });
6708
+ ) : /* @__PURE__ */ jsx32(Render, { data: renderData, config, metadata });
6717
6709
  useEffect20(() => {
6718
6710
  if (!iframe.enabled) {
6719
6711
  setStatus("READY");
@@ -7604,8 +7596,7 @@ var generateUsePuck = (store) => {
7604
7596
  return { zone: zoneCompound, index };
7605
7597
  }
7606
7598
  };
7607
- const get = () => storeData;
7608
- return __spreadProps(__spreadValues({}, storeData), { get });
7599
+ return storeData;
7609
7600
  };
7610
7601
  var UsePuckStoreContext = createContext6(
7611
7602
  null
package/dist/rsc.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { a as Config, U as UserGenerics, M as Metadata } from './walk-tree-DhtH8sAC.mjs';
3
- export { af as migrate, ah as resolveAllData, ag as transformProps, w as walkTree } from './walk-tree-DhtH8sAC.mjs';
2
+ import { a as Config, U as UserGenerics, M as Metadata } from './walk-tree-BDO40vbf.mjs';
3
+ export { ag as migrate, ai as resolveAllData, ah as transformProps, w as walkTree } from './walk-tree-BDO40vbf.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 { a as Config, U as UserGenerics, M as Metadata } from './walk-tree-DhtH8sAC.js';
3
- export { af as migrate, ah as resolveAllData, ag as transformProps, w as walkTree } from './walk-tree-DhtH8sAC.js';
2
+ import { a as Config, U as UserGenerics, M as Metadata } from './walk-tree-BDO40vbf.js';
3
+ export { ag as migrate, ai as resolveAllData, ah as transformProps, w as walkTree } from './walk-tree-BDO40vbf.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, }: {
@@ -49,11 +49,11 @@ type RadioField = BaseField & {
49
49
  type: "radio";
50
50
  options: FieldOptions;
51
51
  };
52
- type ArrayField<Props extends {
52
+ type ArrayField<Props extends any = {
53
53
  [key: string]: any;
54
- } = {
54
+ }> = Props extends {
55
55
  [key: string]: any;
56
- }> = BaseField & {
56
+ } ? BaseField & {
57
57
  type: "array";
58
58
  arrayFields: {
59
59
  [SubPropName in keyof Props[0]]: Field<Props[0][SubPropName]>;
@@ -62,14 +62,12 @@ type ArrayField<Props extends {
62
62
  getItemSummary?: (item: Props[0], index?: number) => string;
63
63
  max?: number;
64
64
  min?: number;
65
- };
66
- type ObjectField<Props extends {
67
- [key: string]: any;
68
- } = {
65
+ } : never;
66
+ type ObjectField<Props extends any = {
69
67
  [key: string]: any;
70
68
  }> = BaseField & {
71
69
  type: "object";
72
- objectFields: Props extends any[] ? never : {
70
+ objectFields: {
73
71
  [SubPropName in keyof Props]: Field<Props[SubPropName]>;
74
72
  };
75
73
  };
@@ -78,20 +76,17 @@ type Adaptor<AdaptorParams = {}, TableShape extends Record<string, any> = {}, Pr
78
76
  fetchList: (adaptorParams?: AdaptorParams) => Promise<TableShape[] | null>;
79
77
  mapProp?: (value: TableShape) => PropShape;
80
78
  };
81
- type ExternalFieldWithAdaptor<Props extends {
82
- [key: string]: any;
83
- } = {
79
+ type NotUndefined<T> = T extends undefined ? Record<string, any> : T;
80
+ type ExternalFieldWithAdaptor<Props extends any = {
84
81
  [key: string]: any;
85
82
  }> = BaseField & {
86
83
  type: "external";
87
84
  placeholder?: string;
88
85
  adaptor: Adaptor<any, any, Props>;
89
86
  adaptorParams?: object;
90
- getItemSummary: (item: Props, index?: number) => string;
87
+ getItemSummary: (item: NotUndefined<Props>, index?: number) => string;
91
88
  };
92
- type ExternalField<Props extends {
93
- [key: string]: any;
94
- } = {
89
+ type ExternalField<Props extends any = {
95
90
  [key: string]: any;
96
91
  }> = BaseField & {
97
92
  type: "external";
@@ -102,7 +97,7 @@ type ExternalField<Props extends {
102
97
  }) => Promise<any[] | null>;
103
98
  mapProp?: (value: any) => Props;
104
99
  mapRow?: (value: any) => Record<string, string | number | ReactElement>;
105
- getItemSummary?: (item: Props, index?: number) => string;
100
+ getItemSummary?: (item: NotUndefined<Props>, index?: number) => string;
106
101
  showSearch?: boolean;
107
102
  renderFooter?: (props: {
108
103
  items: any[];
@@ -128,15 +123,7 @@ type SlotField = BaseField & {
128
123
  allow?: string[];
129
124
  disallow?: string[];
130
125
  };
131
- type Field<Props extends any = any> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<Props extends {
132
- [key: string]: any;
133
- } ? Props : any> | ObjectField<Props extends {
134
- [key: string]: any;
135
- } ? Props : any> | ExternalField<Props extends {
136
- [key: string]: any;
137
- } ? Props : any> | ExternalFieldWithAdaptor<Props extends {
138
- [key: string]: any;
139
- } ? Props : any> | CustomField<Props> | SlotField;
126
+ type Field<ValueType = any> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType> | ObjectField<ValueType> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
140
127
  type Fields<ComponentProps extends DefaultComponentProps = DefaultComponentProps> = {
141
128
  [PropName in keyof Omit<ComponentProps, "editMode">]: Field<ComponentProps[PropName]>;
142
129
  };
@@ -561,4 +548,4 @@ type WalkTreeOptions = {
561
548
  };
562
549
  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;
563
550
 
564
- export { type ExternalFieldWithAdaptor as $, type AppState as A, type BaseData as B, type ComponentData as C, type DropZoneProps as D, type MappedItem as E, type Fields as F, type ComponentDataMap as G, type History as H, type IframeConfig as I, type Content as J, type BaseField as K, type TextareaField as L, type Metadata as M, type NumberField as N, type Overrides as O, type Permissions as P, type SelectField as Q, type RootDataWithProps as R, type Slot as S, type TextField as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type RadioField as X, type ArrayField as Y, type ObjectField as Z, type Adaptor as _, type Config as a, type ExternalField as a0, type CustomFieldRender as a1, type CustomField as a2, type SlotField as a3, type PuckContext as a4, type DefaultRootFieldProps as a5, type DefaultRootRenderProps as a6, type DefaultRootProps as a7, type DefaultComponentProps as a8, type WithId as a9, type WithPuckProps as aa, type AsFieldProps as ab, type WithChildren as ac, type ExtractPropsFromConfig as ad, type ExtractRootPropsFromConfig as ae, migrate as af, transformProps as ag, resolveAllData as ah, type PuckAction as b, type ResolveDataTrigger as c, type Plugin as d, type UiState as e, type ComponentConfig as f, type Field as g, type FieldProps as h, type Data as i, type OnAction as j, type InitialHistory as k, type ItemSelector as l, type Direction as m, type DragAxis as n, type Viewport as o, overrideKeys as p, type OverrideKey as q, type FieldRenderFunctions as r, type ItemWithId as s, type ArrayState as t, type PuckComponent as u, type RootConfig as v, walkTree as w, type RootDataWithoutProps as x, type RootData as y, type ComponentDataOptionalId as z };
551
+ export { type Adaptor as $, type AppState as A, type BaseData as B, type ComponentData as C, type DropZoneProps as D, type ComponentDataOptionalId as E, type Fields as F, type MappedItem as G, type History as H, type IframeConfig as I, type ComponentDataMap as J, type Content as K, type BaseField as L, type Metadata as M, type NumberField as N, type Overrides as O, type Permissions as P, type TextareaField as Q, type RootDataWithProps as R, type Slot as S, type TextField as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type SelectField as X, type RadioField as Y, type ArrayField as Z, type ObjectField as _, type Config as a, type ExternalFieldWithAdaptor as a0, type ExternalField as a1, type CustomFieldRender as a2, type CustomField as a3, type SlotField as a4, type PuckContext as a5, type DefaultRootFieldProps as a6, type DefaultRootRenderProps as a7, type DefaultRootProps as a8, type DefaultComponentProps as a9, type WithId as aa, type WithPuckProps as ab, type AsFieldProps as ac, type WithChildren as ad, type ExtractPropsFromConfig as ae, type ExtractRootPropsFromConfig as af, migrate as ag, transformProps as ah, resolveAllData as ai, type PuckAction as b, type ResolveDataTrigger as c, type Plugin as d, type UiState as e, type ComponentConfig as f, type Field as g, type FieldProps as h, type Data as i, type OnAction as j, type InitialHistory as k, type ItemSelector as l, type Direction as m, type DragAxis as n, type Viewport as o, overrideKeys as p, type OverrideKey as q, type FieldRenderFunctions as r, type ItemWithId as s, type ArrayState as t, type SlotComponent as u, type PuckComponent as v, walkTree as w, type RootConfig as x, type RootDataWithoutProps as y, type RootData as z };
@@ -49,11 +49,11 @@ type RadioField = BaseField & {
49
49
  type: "radio";
50
50
  options: FieldOptions;
51
51
  };
52
- type ArrayField<Props extends {
52
+ type ArrayField<Props extends any = {
53
53
  [key: string]: any;
54
- } = {
54
+ }> = Props extends {
55
55
  [key: string]: any;
56
- }> = BaseField & {
56
+ } ? BaseField & {
57
57
  type: "array";
58
58
  arrayFields: {
59
59
  [SubPropName in keyof Props[0]]: Field<Props[0][SubPropName]>;
@@ -62,14 +62,12 @@ type ArrayField<Props extends {
62
62
  getItemSummary?: (item: Props[0], index?: number) => string;
63
63
  max?: number;
64
64
  min?: number;
65
- };
66
- type ObjectField<Props extends {
67
- [key: string]: any;
68
- } = {
65
+ } : never;
66
+ type ObjectField<Props extends any = {
69
67
  [key: string]: any;
70
68
  }> = BaseField & {
71
69
  type: "object";
72
- objectFields: Props extends any[] ? never : {
70
+ objectFields: {
73
71
  [SubPropName in keyof Props]: Field<Props[SubPropName]>;
74
72
  };
75
73
  };
@@ -78,20 +76,17 @@ type Adaptor<AdaptorParams = {}, TableShape extends Record<string, any> = {}, Pr
78
76
  fetchList: (adaptorParams?: AdaptorParams) => Promise<TableShape[] | null>;
79
77
  mapProp?: (value: TableShape) => PropShape;
80
78
  };
81
- type ExternalFieldWithAdaptor<Props extends {
82
- [key: string]: any;
83
- } = {
79
+ type NotUndefined<T> = T extends undefined ? Record<string, any> : T;
80
+ type ExternalFieldWithAdaptor<Props extends any = {
84
81
  [key: string]: any;
85
82
  }> = BaseField & {
86
83
  type: "external";
87
84
  placeholder?: string;
88
85
  adaptor: Adaptor<any, any, Props>;
89
86
  adaptorParams?: object;
90
- getItemSummary: (item: Props, index?: number) => string;
87
+ getItemSummary: (item: NotUndefined<Props>, index?: number) => string;
91
88
  };
92
- type ExternalField<Props extends {
93
- [key: string]: any;
94
- } = {
89
+ type ExternalField<Props extends any = {
95
90
  [key: string]: any;
96
91
  }> = BaseField & {
97
92
  type: "external";
@@ -102,7 +97,7 @@ type ExternalField<Props extends {
102
97
  }) => Promise<any[] | null>;
103
98
  mapProp?: (value: any) => Props;
104
99
  mapRow?: (value: any) => Record<string, string | number | ReactElement>;
105
- getItemSummary?: (item: Props, index?: number) => string;
100
+ getItemSummary?: (item: NotUndefined<Props>, index?: number) => string;
106
101
  showSearch?: boolean;
107
102
  renderFooter?: (props: {
108
103
  items: any[];
@@ -128,15 +123,7 @@ type SlotField = BaseField & {
128
123
  allow?: string[];
129
124
  disallow?: string[];
130
125
  };
131
- type Field<Props extends any = any> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<Props extends {
132
- [key: string]: any;
133
- } ? Props : any> | ObjectField<Props extends {
134
- [key: string]: any;
135
- } ? Props : any> | ExternalField<Props extends {
136
- [key: string]: any;
137
- } ? Props : any> | ExternalFieldWithAdaptor<Props extends {
138
- [key: string]: any;
139
- } ? Props : any> | CustomField<Props> | SlotField;
126
+ type Field<ValueType = any> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType> | ObjectField<ValueType> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
140
127
  type Fields<ComponentProps extends DefaultComponentProps = DefaultComponentProps> = {
141
128
  [PropName in keyof Omit<ComponentProps, "editMode">]: Field<ComponentProps[PropName]>;
142
129
  };
@@ -561,4 +548,4 @@ type WalkTreeOptions = {
561
548
  };
562
549
  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;
563
550
 
564
- export { type ExternalFieldWithAdaptor as $, type AppState as A, type BaseData as B, type ComponentData as C, type DropZoneProps as D, type MappedItem as E, type Fields as F, type ComponentDataMap as G, type History as H, type IframeConfig as I, type Content as J, type BaseField as K, type TextareaField as L, type Metadata as M, type NumberField as N, type Overrides as O, type Permissions as P, type SelectField as Q, type RootDataWithProps as R, type Slot as S, type TextField as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type RadioField as X, type ArrayField as Y, type ObjectField as Z, type Adaptor as _, type Config as a, type ExternalField as a0, type CustomFieldRender as a1, type CustomField as a2, type SlotField as a3, type PuckContext as a4, type DefaultRootFieldProps as a5, type DefaultRootRenderProps as a6, type DefaultRootProps as a7, type DefaultComponentProps as a8, type WithId as a9, type WithPuckProps as aa, type AsFieldProps as ab, type WithChildren as ac, type ExtractPropsFromConfig as ad, type ExtractRootPropsFromConfig as ae, migrate as af, transformProps as ag, resolveAllData as ah, type PuckAction as b, type ResolveDataTrigger as c, type Plugin as d, type UiState as e, type ComponentConfig as f, type Field as g, type FieldProps as h, type Data as i, type OnAction as j, type InitialHistory as k, type ItemSelector as l, type Direction as m, type DragAxis as n, type Viewport as o, overrideKeys as p, type OverrideKey as q, type FieldRenderFunctions as r, type ItemWithId as s, type ArrayState as t, type PuckComponent as u, type RootConfig as v, walkTree as w, type RootDataWithoutProps as x, type RootData as y, type ComponentDataOptionalId as z };
551
+ export { type Adaptor as $, type AppState as A, type BaseData as B, type ComponentData as C, type DropZoneProps as D, type ComponentDataOptionalId as E, type Fields as F, type MappedItem as G, type History as H, type IframeConfig as I, type ComponentDataMap as J, type Content as K, type BaseField as L, type Metadata as M, type NumberField as N, type Overrides as O, type Permissions as P, type TextareaField as Q, type RootDataWithProps as R, type Slot as S, type TextField as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type SelectField as X, type RadioField as Y, type ArrayField as Z, type ObjectField as _, type Config as a, type ExternalFieldWithAdaptor as a0, type ExternalField as a1, type CustomFieldRender as a2, type CustomField as a3, type SlotField as a4, type PuckContext as a5, type DefaultRootFieldProps as a6, type DefaultRootRenderProps as a7, type DefaultRootProps as a8, type DefaultComponentProps as a9, type WithId as aa, type WithPuckProps as ab, type AsFieldProps as ac, type WithChildren as ad, type ExtractPropsFromConfig as ae, type ExtractRootPropsFromConfig as af, migrate as ag, transformProps as ah, resolveAllData as ai, type PuckAction as b, type ResolveDataTrigger as c, type Plugin as d, type UiState as e, type ComponentConfig as f, type Field as g, type FieldProps as h, type Data as i, type OnAction as j, type InitialHistory as k, type ItemSelector as l, type Direction as m, type DragAxis as n, type Viewport as o, overrideKeys as p, type OverrideKey as q, type FieldRenderFunctions as r, type ItemWithId as s, type ArrayState as t, type SlotComponent as u, type PuckComponent as v, walkTree as w, type RootConfig as x, type RootDataWithoutProps as y, type RootData as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@measured/puck",
3
- "version": "0.20.0-canary.3da831b0",
3
+ "version": "0.20.0-canary.5780043",
4
4
  "author": "Chris Villa <chris@puckeditor.com>",
5
5
  "repository": "measuredco/puck",
6
6
  "bugs": "https://github.com/measuredco/puck/issues",