@plaudit/gutenberg-api-extensions 2.63.0 → 2.64.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.
Files changed (68) hide show
  1. package/build/blocks/SNPGroupComponent.js +13 -2
  2. package/build/blocks/SNPGroupComponent.js.map +1 -1
  3. package/build/blocks/basic-custom-block-bindings-support.d.ts +1 -10
  4. package/build/blocks/basic-custom-block-bindings-support.js +8 -12
  5. package/build/blocks/basic-custom-block-bindings-support.js.map +1 -1
  6. package/build/blocks/common-native-property-constructors.d.ts +17 -6
  7. package/build/blocks/common-native-property-constructors.js +128 -29
  8. package/build/blocks/common-native-property-constructors.js.map +1 -1
  9. package/build/blocks/data-controller.d.ts +1 -1
  10. package/build/blocks/data-controller.js +4 -1
  11. package/build/blocks/data-controller.js.map +1 -1
  12. package/build/blocks/layered-styles-impl.js +6 -5
  13. package/build/blocks/layered-styles-impl.js.map +1 -1
  14. package/build/blocks/layout/LaidOutProperty.d.ts +1 -0
  15. package/build/blocks/layout/LaidOutProperty.js +16 -5
  16. package/build/blocks/layout/LaidOutProperty.js.map +1 -1
  17. package/build/blocks/layout/LaidOutPropertyRow.d.ts +2 -1
  18. package/build/blocks/layout/LaidOutPropertyRow.js +3 -3
  19. package/build/blocks/layout/LaidOutPropertyRow.js.map +1 -1
  20. package/build/blocks/layout/ToolsPanelContext.d.ts +9 -0
  21. package/build/blocks/layout/ToolsPanelContext.js +18 -0
  22. package/build/blocks/layout/ToolsPanelContext.js.map +1 -0
  23. package/build/blocks/simple-native-property-api.js +4 -40
  24. package/build/blocks/simple-native-property-api.js.map +1 -1
  25. package/build/blocks/simple-native-property-impl.js +35 -138
  26. package/build/blocks/simple-native-property-impl.js.map +1 -1
  27. package/build/blocks/simple-native-property-internal-shared.d.ts +12 -17
  28. package/build/blocks/simple-native-property-internal-shared.js +0 -18
  29. package/build/blocks/simple-native-property-internal-shared.js.map +1 -1
  30. package/build/controls/PromisableComponent.d.ts +3 -2
  31. package/build/controls/PromisableComponent.js +13 -5
  32. package/build/controls/PromisableComponent.js.map +1 -1
  33. package/build/controls/hooks/useSortableItemsModel.js +59 -56
  34. package/build/controls/hooks/useSortableItemsModel.js.map +1 -1
  35. package/build/editor/post-featured-image.js +3 -2
  36. package/build/editor/post-featured-image.js.map +1 -1
  37. package/build/editor/simple-gutenberg-endpoints-api.d.ts +6 -0
  38. package/build/editor/simple-gutenberg-endpoints-api.js +15 -0
  39. package/build/editor/simple-gutenberg-endpoints-api.js.map +1 -0
  40. package/build/editor/simple-gutenberg-endpoints-impl.d.ts +23 -0
  41. package/build/editor/simple-gutenberg-endpoints-impl.js +47 -0
  42. package/build/editor/simple-gutenberg-endpoints-impl.js.map +1 -0
  43. package/build/index.d.ts +3 -11
  44. package/build/index.js +10 -4
  45. package/build/index.js.map +1 -1
  46. package/build/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.d.ts +26 -0
  47. package/build/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.js +14 -0
  48. package/build/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.js.map +1 -0
  49. package/build/lib/gutenberg-api-extensions-state/layered-block-styles-logic.d.ts +22 -0
  50. package/build/lib/gutenberg-api-extensions-state/layered-block-styles-logic.js +14 -0
  51. package/build/lib/gutenberg-api-extensions-state/layered-block-styles-logic.js.map +1 -0
  52. package/build/lib/gutenberg-api-extensions-state/snp-logic.d.ts +44 -0
  53. package/build/lib/gutenberg-api-extensions-state/snp-logic.js +177 -0
  54. package/build/lib/gutenberg-api-extensions-state/snp-logic.js.map +1 -0
  55. package/build/lib/gutenberg-api-extensions-state.d.ts +106 -0
  56. package/build/lib/gutenberg-api-extensions-state.js +107 -0
  57. package/build/lib/gutenberg-api-extensions-state.js.map +1 -0
  58. package/build/lib/helpers.d.ts +1 -0
  59. package/build/lib/helpers.js +10 -0
  60. package/build/lib/helpers.js.map +1 -0
  61. package/build/lib/suspense.d.ts +6 -0
  62. package/build/lib/suspense.js +12 -0
  63. package/build/lib/suspense.js.map +1 -1
  64. package/build/lib/useful-types.d.ts +9 -0
  65. package/build/lib/useful-types.js +2 -0
  66. package/build/lib/useful-types.js.map +1 -0
  67. package/package.json +1 -4
  68. package/styles/editor.pcss +4 -0
@@ -1,6 +1,17 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { __experimentalToolsPanel as ToolsPanel } from "@wordpress/components";
3
+ import { useCallback } from "@wordpress/element";
2
4
  import { LaidOutPropertyRow } from "./layout/LaidOutPropertyRow";
5
+ import { useNodeContext } from "./layout/NodeContext";
3
6
  export function SNPGroupComponent({ config, hydratedProperties, Label, Messages }) {
4
- return _jsxs("fieldset", { ...config.component, className: config.component?.className ? `plaudit-snp-group-component ${config.component.className}` : "plaudit-snp-group-component", children: [_jsx("legend", { children: _jsx(Label, {}) }), _jsxs("div", { className: "plaudit-snp-laid-out-properties-wrapper", children: [...hydratedProperties.map(property => _jsx(LaidOutPropertyRow, { property: property }))] }), _jsx(Messages, {})] });
7
+ if (config.interface === 'toolsPanel') {
8
+ const { value, setValue } = useNodeContext("render a toolsPanel");
9
+ return _jsxs(_Fragment, { children: [_jsxs(ToolsPanel, { ...config.component, className: config.component?.className ? `plaudit-snp-group-component ${config.component.className}` : "plaudit-snp-group-component", label: config.label, resetAll: useCallback(resetAllFilters => {
10
+ setValue((resetAllFilters ?? []).reduce((q, filter) => filter(q), value));
11
+ }, [value, setValue]), children: [...hydratedProperties.map(property => _jsx(LaidOutPropertyRow, { property: property, inToolsPanel: true }))] }), _jsx(Messages, {})] });
12
+ }
13
+ else {
14
+ return _jsxs("fieldset", { ...config.component, className: config.component?.className ? `plaudit-snp-group-component ${config.component.className}` : "plaudit-snp-group-component", children: [_jsx("legend", { children: _jsx(Label, {}) }), _jsxs("div", { className: "plaudit-snp-laid-out-properties-wrapper", children: [...hydratedProperties.map(property => _jsx(LaidOutPropertyRow, { property: property }))] }), _jsx(Messages, {})] });
15
+ }
5
16
  }
6
17
  //# sourceMappingURL=SNPGroupComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SNPGroupComponent.js","sourceRoot":"","sources":["../../src/blocks/SNPGroupComponent.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AAU/D,MAAM,UAAU,iBAAiB,CAAC,EAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAyB;IACtG,OAAO,uBAAc,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,+BAA+B,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,6BAA6B,aAC1K,2BAAQ,KAAC,KAAK,KAAG,GAAS,EAC1B,eAAK,SAAS,EAAC,yCAAyC,gBACnD,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAC,kBAAkB,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAAC,IAC7E,EACN,KAAC,QAAQ,KAAG,IACF,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"SNPGroupComponent.js","sourceRoot":"","sources":["../../src/blocks/SNPGroupComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,wBAAwB,IAAI,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAI/C,OAAO,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAQpD,MAAM,UAAU,iBAAiB,CAAC,EAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAyB;IACtG,IAAI,MAAM,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;QACvC,MAAM,EAAC,KAAK,EAAE,QAAQ,EAAC,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAChE,OAAO,8BACN,MAAC,UAAU,OACN,MAAM,CAAC,SAAS,EACpB,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,+BAA+B,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,6BAA6B,EACpI,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,WAAW,CAAC,eAAe,CAAC,EAAE;wBACvC,QAAQ,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,MAAuB,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;oBAChG,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,gBAEjB,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAC,kBAAkB,IAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,GAAI,CAAC,IAC1F,EACb,KAAC,QAAQ,KAAE,IACT,CAAC;IACL,CAAC;SAAM,CAAC;QACP,OAAO,uBAAc,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,+BAA+B,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,6BAA6B,aAC1K,2BAAQ,KAAC,KAAK,KAAE,GAAS,EACzB,eAAK,SAAS,EAAC,yCAAyC,gBACnD,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAC,kBAAkB,IAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,IAC5E,EACN,KAAC,QAAQ,KAAE,IACD,CAAC;IACb,CAAC;AACF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { registerBlockBindingsSource } from "@wordpress/blocks";
1
+ import { type registerBlockBindingsSource } from "@wordpress/blocks";
2
2
  export type DbSource = {
3
3
  label: string;
4
4
  value: string;
@@ -7,13 +7,4 @@ export type DbSource = {
7
7
  export declare function registerCustomBlockBindingsSource(args: Parameters<typeof registerBlockBindingsSource>[0] & {
8
8
  dbSources?: DbSource[];
9
9
  }): void;
10
- declare global {
11
- interface Window {
12
- plauditCustomBlockBindingsInformation?: {
13
- [name in string]: {
14
- dbSources?: DbSource[];
15
- };
16
- };
17
- }
18
- }
19
10
  export declare function installCustomBlockBindingsSupport(): void;
@@ -1,13 +1,14 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import apiFetch from "@wordpress/api-fetch";
3
- import { getBlockBindingsSources, registerBlockBindingsSource } from "@wordpress/blocks";
3
+ import { getBlockBindingsSources } from "@wordpress/blocks";
4
4
  import { InspectorAdvancedControls } from "@wordpress/block-editor";
5
5
  import { __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, SelectControl, Spinner, TextControl } from '@wordpress/components';
6
6
  import { createHigherOrderComponent } from "@wordpress/compose";
7
- import { select } from "@wordpress/data";
7
+ import { dispatch, select } from "@wordpress/data";
8
8
  import { store as editorStore } from "@wordpress/editor";
9
9
  import { memo, useCallback, useEffect, useMemo, useRef, useState } from "@wordpress/element";
10
10
  import { addFilter } from "@wordpress/hooks";
11
+ import { store as apiStore } from "../lib/gutenberg-api-extensions-state";
11
12
  const BLOCK_BINDINGS_ALLOWED_BLOCKS = {
12
13
  'core/paragraph': ['content'],
13
14
  'core/heading': ['content'],
@@ -15,18 +16,13 @@ const BLOCK_BINDINGS_ALLOWED_BLOCKS = {
15
16
  'core/button': ['url', 'text', 'linkTarget', 'rel']
16
17
  };
17
18
  export function registerCustomBlockBindingsSource(args) {
18
- const { dbSources, ...actualArgs } = args;
19
- registerBlockBindingsSource('getValue' in actualArgs ? actualArgs : { ...actualArgs, getValue: () => ({}) });
20
- getCustomBlockBindingsInformation()[actualArgs.name] = { dbSources };
21
- }
22
- function getCustomBlockBindingsInformation() {
23
- return window.plauditCustomBlockBindingsInformation ?? (window.plauditCustomBlockBindingsInformation = {});
19
+ dispatch(apiStore).registerCustomBlockBindingsSource(args);
24
20
  }
25
21
  export function installCustomBlockBindingsSupport() {
26
- if (window.plauditCustomBlockBindingsSupportInstalled) {
22
+ if (select(apiStore).featureProp("custom-block-bindings-support", "installed")) {
27
23
  return;
28
24
  }
29
- window.plauditCustomBlockBindingsSupportInstalled = true;
25
+ dispatch(apiStore).setFeatureProp("custom-block-bindings-support", "installed", true);
30
26
  const selectableOptionsCache = {
31
27
  cache: new Map(),
32
28
  capacity: 20,
@@ -98,7 +94,7 @@ export function installCustomBlockBindingsSupport() {
98
94
  }
99
95
  ];
100
96
  }), [availableBindingsList, blockEditProps.attributes, currentPost]);
101
- return _jsxs(_Fragment, { children: [_jsx(BlockEdit, { ...blockEditProps }), _jsx(InspectorAdvancedControls, { children: _jsx(ToolsPanel, { label: "Custom Block Bindings", resetAll: resetAll, children: bindingConfigs.map(([bindingConfig, bbtConfig]) => _jsx(ToolsPanelItem, { ...bindingConfig, children: _jsx(BlockBindingTool, { ...bbtConfig }) })) }) })] });
97
+ return _jsxs(_Fragment, { children: [_jsx(BlockEdit, { ...blockEditProps }), _jsx(InspectorAdvancedControls, { children: _jsx(ToolsPanel, { label: "Custom Block Bindings", resetAll: resetAll, children: bindingConfigs.map(([bindingConfig, bbtConfig]) => _jsx(ToolsPanelItem, { ...bindingConfig, children: _jsx(BlockBindingTool, { ...bbtConfig }) }, bindingConfig.label)) }) })] });
102
98
  }, 'plauditGutenbergApiExtensionsBasicBlockBindingsSupport'));
103
99
  const BlockBindingTool = memo(({ label, value, updateBinding, currentPost }) => {
104
100
  const bindingSources = Object.entries(getBlockBindingsSources())
@@ -132,7 +128,7 @@ export function installCustomBlockBindingsSupport() {
132
128
  return { ...option, label: `${option.label} (${option.disabled})`, disabled: true };
133
129
  }
134
130
  return option;
135
- }), getCustomBlockBindingsInformation()[src]?.dbSources]);
131
+ }), select(apiStore).customBlockBindingsSource(src)?.dbSources]);
136
132
  }
137
133
  })
138
134
  .catch(err => {
@@ -1 +1 @@
1
- {"version":3,"file":"basic-custom-block-bindings-support.js","sourceRoot":"","sources":["../../src/blocks/basic-custom-block-bindings-support.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"basic-custom-block-bindings-support.js","sourceRoot":"","sources":["../../src/blocks/basic-custom-block-bindings-support.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { ColorPaletteProps } from "@wordpress/components/build-types/color-palette/types";
2
+ import type { WordPressComponentProps } from "@wordpress/components/build-types/context";
2
3
  import type { DatePickerProps, DateTimePickerProps } from "@wordpress/components/build-types/date-time/types";
3
4
  import type { RadioControlProps } from "@wordpress/components/build-types/radio-control/types";
4
5
  import type { RangeControlProps } from "@wordpress/components/build-types/range-control/types";
@@ -6,11 +7,11 @@ import type { TextControlProps } from "@wordpress/components/build-types/text-co
6
7
  import type { TextareaControlProps } from "@wordpress/components/build-types/textarea-control/types";
7
8
  import type { ToggleControlProps } from "@wordpress/components/build-types/toggle-control/types";
8
9
  import type { ToggleGroupControlProps } from "@wordpress/components/build-types/toggle-group-control/types";
10
+ import type { ToolsPanelProps } from "@wordpress/components/build-types/tools-panel/types";
9
11
  import { type ExtendedPostPickerProps, type ImageData, type TextareaControlPropsExtension, type ProperLinkControlProps, type SortableItemsControlProps, type PickableOptions, type FlexibleItem } from "../controls";
10
12
  import type { NormalSwitch, SmallSwitch } from "./shared-internal-types";
11
13
  import type { IconName } from "./shared-exportable-types";
12
- import type { GenericSimpleNativeProperty, HydratedSimpleNativeProperty, PDSimpleNativeProperty, SimpleNativeProperty, SimpleNativePropertyType } from "./simple-native-property-api";
13
- import type { ExtraPropTransformsConfig } from "./simple-native-property-internal-shared";
14
+ import type { BlockName, GenericSimpleNativeProperty, HydratedSimpleNativeProperty, PDSimpleNativeProperty, SimpleNativeProperty, SimpleNativePropertyType } from "./simple-native-property-api";
14
15
  import React, { type CSSProperties, type ReactElement } from "react";
15
16
  export type CommonPropertyConfig<T, C, V extends SimpleNativePropertyType> = Omit<GenericSimpleNativeProperty<T, V>, 'control' | 'enum' | 'type' | 'label'> & {
16
17
  label: string;
@@ -30,7 +31,9 @@ export type CommonSimpleNativeProperty<N extends string, T, C, V extends SimpleN
30
31
  export type CommonSimpleNativePropertyWithEnum<N extends string, T, C, V extends SimpleNativePropertyType, A = {}> = CommonPropertyConfigWithEnum<T, C, V> & A & {
31
32
  control: N;
32
33
  };
33
- type PromisablePickableOptions<V extends string | number, T extends object = {}> = PickableOptions<V, T> | Promise<PickableOptions<V, T>>;
34
+ type UnsuspendablePromisablePickableOptions<V extends string | number, T extends object = {}> = PickableOptions<V, T> | Promise<PickableOptions<V, T>>;
35
+ type SuspendablePromisablePickableOptions = `select:${string}:${string}`;
36
+ type PromisablePickableOptions<V extends string | number, T extends object = {}> = SuspendablePromisablePickableOptions | UnsuspendablePromisablePickableOptions<V, T>;
34
37
  type BaseConstantPropertyCSNPConfig = Omit<CommonSimpleNativeProperty<'constant', string | number | boolean | any[] | Record<string | number, unknown> | undefined, TextControlProps, SimpleNativePropertyType, {
35
38
  type: SimpleNativePropertyType;
36
39
  }>, 'alwaysStore'>;
@@ -102,9 +105,13 @@ export type TogglePropertyCSNPConfig = TogglePropertyConfig & {
102
105
  export type ImagePropertyConfig = Omit<CommonPropertyConfig<ImageData, {}, 'object'>, 'default'> & Partial<Pick<CommonPropertyConfig<ImageData, {}, 'object'>, 'default'>> & {
103
106
  includeFocalPointPicker?: boolean;
104
107
  };
105
- export type GroupPropertyConfig = CommonPropertyConfig<Record<string, unknown>, React.HTMLAttributes<HTMLFieldSetElement>, 'object'> & {
108
+ export type GroupPropertyConfig = (CommonPropertyConfig<Record<string, unknown>, React.HTMLAttributes<HTMLFieldSetElement>, 'object'> & {
106
109
  fields?: PDSimpleNativeProperty[];
107
- };
110
+ interface?: 'default';
111
+ }) | (CommonPropertyConfig<Record<string, unknown>, WordPressComponentProps<ToolsPanelProps, 'div'>, 'object'> & {
112
+ fields?: PDSimpleNativeProperty[];
113
+ interface: 'toolsPanel';
114
+ });
108
115
  type ListPropertyConfigBase<T extends string | number | object, V extends 'string' | 'number' | 'object'> = CommonPropertyConfig<T[], SortableItemsControlProps<T>, V> & {
109
116
  emptyValue?: T;
110
117
  min?: number;
@@ -149,7 +156,11 @@ export type TogglePropertyConfig = (CommonPropertyConfig<boolean, ToggleControlP
149
156
  switch?: NormalSwitch;
150
157
  });
151
158
  export type CSNPConfig = ColorPaletteCSNPConfig | ConstantPropertyCSNPConfig | DatePropertyCSNPConfig | GroupPropertyCSNPConfig | ImagePropertyCSNPConfig | LinkPropertyCSNPConfig | ListPropertyCSNPConfig | NumberPropertyCSNPConfig | PostPropertyCSNPConfig | RadioPropertyCSNPConfig | RangePropertyCSNPConfig | SelectPropertyCSNPConfig | TextareaPropertyCSNPConfig | TextPropertyCSNPConfig | ToggleGroupPropertyCSNPConfig | TogglePropertyCSNPConfig;
152
- export declare function hydrateSimpleNativeProperty(config: PDSimpleNativeProperty, parentPath: string, extraPropTransforms: ExtraPropTransformsConfig, parentTypes: string[], forLayeredStyles: boolean): HydratedSimpleNativeProperty;
159
+ export type OutsideHydrationInfo = {
160
+ forLayeredStyles: boolean;
161
+ blockName: BlockName;
162
+ };
163
+ export declare function hydrateSimpleNativeProperty(config: PDSimpleNativeProperty, parentPath: string, outsideHydrationInfo: OutsideHydrationInfo, parentTypes: string[]): HydratedSimpleNativeProperty;
153
164
  type PostPropertyTypeSingle = CommonPropertyConfig<number, ExtendedPostPickerProps, 'number'> & {
154
165
  postTypes?: string[];
155
166
  multiple?: false;
@@ -1,33 +1,97 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { BaseControl, ColorPalette, DatePicker, DateTimePicker, Disabled, RadioControl, RangeControl, SelectControl, TextControl, ToggleControl, useBaseControlProps, __experimentalToggleGroupControl as ToggleGroupControl } from "@wordpress/components";
3
+ import { dispatch, select, useSuspenseSelect } from "@wordpress/data";
3
4
  import { useCallback, useMemo, useRef } from "@wordpress/element";
5
+ import { store as apiStore } from "../lib/gutenberg-api-extensions-state";
4
6
  import { ExtendedPostPicker, ExtendedRadioControl, ImageControl, ExtendedTextareaControl, MultiSelectControl, ProperLinkControl, SortableItemsControl, PromisableComponent, FullSizeToggleControl, ToggleGroupControlOptionWithOptionalIcon } from "../controls";
5
7
  import { normalizePickableOptionsToObjects, normalizePickableOptionsToPairs } from "../controls/shared";
8
+ import { makeToolsPanelContextValue, ToolsPanelContext } from "./layout/ToolsPanelContext";
9
+ import { clone } from "../lib/helpers";
6
10
  import { arrayIsNotEmpty } from "./snp-api";
7
11
  import { SNPFlexibleItemsListComponent } from "./SNPFlexibleItemsListComponent";
8
12
  import { SNPGroupComponent } from "./SNPGroupComponent";
9
13
  import { SNPListComponent } from "./SNPListComponent";
10
- export function hydrateSimpleNativeProperty(config, parentPath, extraPropTransforms, parentTypes, forLayeredStyles) {
14
+ import { applyFilters } from "@wordpress/hooks";
15
+ function isSuspendableOptions(thing) {
16
+ return typeof thing === 'string';
17
+ }
18
+ export function hydrateSimpleNativeProperty(config, parentPath, outsideHydrationInfo, parentTypes) {
11
19
  const propPath = parentPath.length !== 0 ? parentPath + "." + config.name : config.name;
20
+ if (parentPath.length === 0) {
21
+ config = injectBlockSourcedDefault(config, outsideHydrationInfo.blockName);
22
+ }
23
+ config = applyFilters('plaudit.gutenbergApiExtensions.simpleNativeProperties.field', config, outsideHydrationInfo.blockName, propPath);
12
24
  const res = typeof config.control === 'string'
13
- ? hydrateDesiccatedSimpleNativeProperty(config, propPath, extraPropTransforms, parentTypes, forLayeredStyles) : config;
14
- validateAndRecordPotentialStyleProperty(res, propPath, extraPropTransforms, parentTypes, forLayeredStyles);
25
+ ? hydrateDesiccatedSimpleNativeProperty(config, propPath, outsideHydrationInfo, parentTypes) : config;
26
+ validateAndRecordPotentialStyleProperty(res, propPath, outsideHydrationInfo, parentTypes);
15
27
  return res;
16
28
  }
17
- function validateAndRecordPotentialStyleProperty(config, propPath, extraPropTransforms, parentTypes, forLayeredStyles) {
29
+ function validateAndRecordPotentialStyleProperty(config, propPath, { forLayeredStyles, blockName }, parentTypes) {
18
30
  if ("styleProperty" in config && config.styleProperty !== undefined) {
19
31
  if (parentTypes.includes('array')) {
20
32
  console.error(`A SNP was configured with a styleProperty, but it is within an array-type SNP. This is unsupported`, "SNP in error:", config);
21
33
  }
22
- else if (extraPropTransforms[propPath]) {
23
- extraPropTransforms[propPath].styleProperty = config.styleProperty;
24
- }
25
34
  else {
26
- extraPropTransforms[propPath] = { propName: config.name, forLayeredStyles, styleProperty: config.styleProperty };
35
+ dispatch(apiStore).addOrUpdateExtraPropTransform(blockName, propPath, { propName: config.name, forLayeredStyles, styleProperty: config.styleProperty });
36
+ }
37
+ }
38
+ }
39
+ function injectBlockSourcedDefault(config, blockName) {
40
+ if (config.default === undefined) {
41
+ const existingAttr = select(apiStore).baselineBlockAttrs(blockName)?.attributes?.[config.name];
42
+ if (existingAttr && typeof existingAttr === 'object' && 'default' in existingAttr) {
43
+ if (existingAttr.default !== undefined) {
44
+ const expectedPropType = getPropType(config);
45
+ if (expectedPropType === 'array' ? Array.isArray(existingAttr.default) : (typeof existingAttr.default) === expectedPropType) {
46
+ return { ...config, default: clone(existingAttr.default) };
47
+ }
48
+ else {
49
+ console.error('Encountered a preexisting default value on a block that does not overlap with the datatype for an SNP');
50
+ }
51
+ }
52
+ }
53
+ }
54
+ return config;
55
+ }
56
+ function getPropType(config) {
57
+ if (typeof config.control === 'string') {
58
+ switch (config.control) {
59
+ case "colorPalette":
60
+ return 'string';
61
+ case "constant":
62
+ return config.type;
63
+ case "date":
64
+ return 'number';
65
+ case "group":
66
+ case "image":
67
+ case "link":
68
+ return 'object';
69
+ case "list":
70
+ return 'array';
71
+ case "number":
72
+ return 'number';
73
+ case "post":
74
+ return config.multiple ? 'array' : 'number';
75
+ case "radio":
76
+ return 'string';
77
+ case "range":
78
+ return 'number';
79
+ case "select":
80
+ return config.multiple ? 'array' : 'string';
81
+ case "textarea":
82
+ case "text":
83
+ return 'string';
84
+ case "toggle":
85
+ return 'boolean';
86
+ case "toggleGroup":
87
+ return isStringValuedToggleGroupCSNPConfig(config) ? 'string' : 'number';
27
88
  }
28
89
  }
90
+ else {
91
+ return config.type;
92
+ }
29
93
  }
30
- function hydrateDesiccatedSimpleNativeProperty(config, propPath, extraPropTransforms, parentTypes, forLayeredStyles) {
94
+ function hydrateDesiccatedSimpleNativeProperty(config, propPath, outsideHydrationInfo, parentTypes) {
31
95
  const passthroughProps = {
32
96
  condition: config.condition, label: config.label, name: config.name, required: config.required, controlType: config.control,
33
97
  styleProperty: config.styleProperty
@@ -43,9 +107,10 @@ function hydrateDesiccatedSimpleNativeProperty(config, propPath, extraPropTransf
43
107
  transformer: config.transformer,
44
108
  control({ value, onChange, slots: { Label, Messages } }) {
45
109
  const configAndValue = useMemo(() => ({ ...config, value }), [config, value]);
46
- return _jsx(PromisableComponent, { promisedProps: configAndValue, renderer: useCallback(({ value, ...cfg }) => {
110
+ return _jsx(PromisableComponent, { promisedProps: configAndValue, forceSuspend: isSuspendableOptions(config.options), renderer: useCallback(({ value, ...cfg }) => {
111
+ const resolvedOptions = useSuspendableOptions(cfg);
47
112
  const { colors, valueToColor, colorToValue } = useMemo(() => {
48
- const normalizedOptions = normalizePickableOptionsToObjects(cfg.options);
113
+ const normalizedOptions = normalizePickableOptionsToObjects(resolvedOptions);
49
114
  const options = normalizedOptions.map(opt => {
50
115
  if (hasDefinedKey(opt, 'color') && CSS.supports('color', opt.color)) {
51
116
  return opt;
@@ -66,7 +131,7 @@ function hydrateDesiccatedSimpleNativeProperty(config, propPath, extraPropTransf
66
131
  valueToColor: Object.fromEntries(options.map(opt => [opt.value, opt.color])),
67
132
  colorToValue: Object.fromEntries(options.map(opt => [opt.color, opt.value]))
68
133
  };
69
- }, [cfg.options]);
134
+ }, [resolvedOptions]);
70
135
  const safeOnChange = useCallback((v) => onChange(v ? colorToValue[v] : undefined), [colorToValue, onChange]);
71
136
  const { baseControlProps, controlProps } = useBaseControlProps({ label: _jsx(Label, {}), help: cfg.help });
72
137
  return _jsxs(BaseControl, { ...baseControlProps, children: [_jsx(ColorPalette, { ...cfg.component, ...controlProps, value: value ? valueToColor[value] : undefined, onChange: safeOnChange, colors: colors, clearable: cfg.clearable ?? false, disableCustomColors: cfg.allowCustom !== true, __experimentalIsRenderedInSidebar: true }), _jsx(Messages, {})] });
@@ -102,11 +167,27 @@ function hydrateDesiccatedSimpleNativeProperty(config, propPath, extraPropTransf
102
167
  }
103
168
  };
104
169
  case "group":
170
+ registerPlainTextLabelRequiredMarker("post", " > .components-tools-panel > .components-tools-panel-header > *");
105
171
  const currentTypes = parentTypes.toSpliced(parentTypes.length - 1, 0, 'object');
106
172
  const hydratedProperties = (config.fields ?? [])
107
- .map(property => hydrateSimpleNativeProperty(property, propPath, extraPropTransforms, currentTypes, forLayeredStyles));
173
+ .map(property => hydrateSimpleNativeProperty(property, propPath, outsideHydrationInfo, currentTypes));
108
174
  if (config.default !== undefined) {
109
- console.error("Groups should not have default values set.", "The resulting behavior is undefined and almost guaranteed to break.");
175
+ if (parentTypes.length !== 0) {
176
+ console.error("Non-root groups should not have default values set.", "The resulting behavior is undefined and almost guaranteed to break.");
177
+ }
178
+ else if (hydratedProperties.some(prop => prop.name in config.default)) {
179
+ console.error("Groups should not have default values that conflict with their contained fields set.", "The resulting behavior is undefined and almost guaranteed to break.");
180
+ }
181
+ }
182
+ const actualDefaultValues = {};
183
+ if (config.interface === 'toolsPanel') {
184
+ if (hydratedProperties.some(property => property.controlType !== 'group' && property.default === undefined)) {
185
+ console.error("The immediate children of Groups using the toolsPanel interface must have default values set.", "The resulting behavior is otherwise undefined and almost guaranteed to break.");
186
+ }
187
+ for (const hydratedProperty of hydratedProperties) {
188
+ actualDefaultValues[hydratedProperty.name] = hydratedProperty.default;
189
+ hydratedProperty.default = undefined;
190
+ }
110
191
  }
111
192
  return {
112
193
  type: 'object',
@@ -117,7 +198,7 @@ function hydrateDesiccatedSimpleNativeProperty(config, propPath, extraPropTransf
117
198
  validator: config.validator,
118
199
  transformer: config.transformer,
119
200
  control({ value, onChange, slots }) {
120
- return _jsx(SNPGroupComponent, { config: config, hydratedProperties: hydratedProperties, onChange: onChange, value: value, ...slots });
201
+ return _jsx(ToolsPanelContext.Provider, { value: makeToolsPanelContextValue(actualDefaultValues), children: _jsx(SNPGroupComponent, { config: config, hydratedProperties: hydratedProperties, onChange: onChange, value: value, ...slots }) });
121
202
  }
122
203
  };
123
204
  case "image":
@@ -182,7 +263,7 @@ function hydrateDesiccatedSimpleNativeProperty(config, propPath, extraPropTransf
182
263
  const currentTypes = parentTypes.toSpliced(parentTypes.length - 1, 0, 'array');
183
264
  if (isObjectListPropertyConfig(config)) {
184
265
  const hydratedProperties = config.itemType
185
- .map(property => hydrateSimpleNativeProperty(property, propPath, extraPropTransforms, currentTypes, forLayeredStyles));
266
+ .map(property => hydrateSimpleNativeProperty(property, propPath, outsideHydrationInfo, currentTypes));
186
267
  const def = config.default ?? [];
187
268
  return {
188
269
  ...sharedProps,
@@ -214,7 +295,7 @@ function hydrateDesiccatedSimpleNativeProperty(config, propPath, extraPropTransf
214
295
  const hydratedProperties = Object.fromEntries(Object.entries(completedItemTypes)
215
296
  .map(([itemType, { properties }]) => {
216
297
  return [itemType, properties
217
- .map(property => hydrateSimpleNativeProperty(property, propPath, extraPropTransforms, currentTypes, forLayeredStyles))];
298
+ .map(property => hydrateSimpleNativeProperty(property, propPath, outsideHydrationInfo, currentTypes))];
218
299
  }));
219
300
  const emptyValues = Object.fromEntries(Object.entries(completedItemTypes).map(([itemType, { emptyValue }]) => {
220
301
  return [itemType, { ...emptyValue, type: itemType }];
@@ -263,7 +344,9 @@ function hydrateDesiccatedSimpleNativeProperty(config, propPath, extraPropTransf
263
344
  transformer: config.transformer,
264
345
  control({ value, onChange, slots }) {
265
346
  const configAndValue = useMemo(() => ({ ...config, value }), [config, value]);
266
- return _jsx(PromisableComponent, { promisedProps: configAndValue, renderer: useCallback(({ value, ...cfg }) => (_jsx(PotentiallyExtendedRadioControl, { config: cfg, onChange: onChange, value: value, ...slots })), [onChange]) });
347
+ return _jsx(PromisableComponent, { promisedProps: configAndValue, forceSuspend: isSuspendableOptions(config.options), renderer: useCallback(({ value, ...cfg }) => {
348
+ return _jsx(PotentiallyExtendedRadioControl, { config: cfg, onChange: onChange, value: value, ...slots });
349
+ }, [onChange]) });
267
350
  }
268
351
  };
269
352
  case "range":
@@ -338,8 +421,11 @@ function hydrateDesiccatedSimpleNativeProperty(config, propPath, extraPropTransf
338
421
  transformer: config.transformer,
339
422
  control({ value, onChange, slots: { Messages } }) {
340
423
  const configAndValue = useMemo(() => ({ ...config, value }), [config, value]);
341
- return _jsx(PromisableComponent, { promisedProps: configAndValue, renderer: useCallback(({ value, ...cfg }) => {
342
- const options = useMemo(() => normalizePickableOptionsToPairs(cfg.options), [cfg.options]);
424
+ return _jsx(PromisableComponent, { promisedProps: configAndValue, forceSuspend: isSuspendableOptions(config.options), renderer: useCallback(({ value, ...cfg }) => {
425
+ const unsuspendedOptions = useSuspendableOptions(cfg);
426
+ const options = useMemo(() => {
427
+ return normalizePickableOptionsToPairs(unsuspendedOptions);
428
+ }, [unsuspendedOptions]);
343
429
  const safeOnChange = useCallback((v) => onChange(v?.toString()), [onChange]);
344
430
  return _jsxs(_Fragment, { children: [_jsx(ToggleGroupControl, { ...cfg.component, value: value, onChange: safeOnChange, label: cfg.label, help: cfg.help, isBlock: true, isDeselectable: cfg.clearable ?? false, children: options.map(([value, label]) => {
345
431
  return _jsx(ToggleGroupControlOptionWithOptionalIcon, { value: value, label: label }, value);
@@ -358,8 +444,11 @@ function hydrateDesiccatedSimpleNativeProperty(config, propPath, extraPropTransf
358
444
  transformer: config.transformer,
359
445
  control({ value, onChange, slots: { Messages } }) {
360
446
  const configAndValue = useMemo(() => ({ ...config, value }), [config, value]);
361
- return _jsx(PromisableComponent, { promisedProps: configAndValue, renderer: useCallback(({ value, ...cfg }) => {
362
- const options = useMemo(() => normalizePickableOptionsToPairs(cfg.options), [cfg.options]);
447
+ return _jsx(PromisableComponent, { promisedProps: configAndValue, forceSuspend: isSuspendableOptions(config.options), renderer: useCallback(({ value, ...cfg }) => {
448
+ const unsuspendedOptions = useSuspendableOptions(cfg);
449
+ const options = useMemo(() => {
450
+ return normalizePickableOptionsToPairs(unsuspendedOptions);
451
+ }, [unsuspendedOptions]);
363
452
  const safeOnChange = useCallback((v) => onChange(v === undefined || typeof v === 'number' ? v : (v.includes('.') ? parseFloat(v) : parseInt(v))), [onChange]);
364
453
  return _jsxs(_Fragment, { children: [_jsxs(ToggleGroupControl, { ...cfg.component, value: value, label: cfg.label, help: cfg.help, isBlock: true, isDeselectable: cfg.clearable ?? false, onChange: safeOnChange, children: [...options.map(([value, label]) => (_jsx(ToggleGroupControlOptionWithOptionalIcon, { value: value, label: label }, value)))] }), _jsx(Messages, {})] });
365
454
  }, [onChange]) });
@@ -372,7 +461,7 @@ function hydrateDesiccatedSimpleNativeProperty(config, propPath, extraPropTransf
372
461
  control: "text",
373
462
  name: config.name,
374
463
  label: config.label
375
- }, propPath, extraPropTransforms, parentTypes, forLayeredStyles);
464
+ }, propPath, outsideHydrationInfo, parentTypes);
376
465
  }
377
466
  }
378
467
  const ToggleGroupControlLabelSelector = " > .components-base-control > .components-base-control__field:has(> [data-wp-component='ToggleGroupControl']) .components-base-control__label";
@@ -381,7 +470,8 @@ function NumberLikeListTextControl({ listComponent, datum, itemType, onDatumChan
381
470
  return _jsx(TextControl, { ...listComponent, type: "number", value: datum, onChange: onChange });
382
471
  }
383
472
  function PotentiallyExtendedRadioControl({ config, value, onChange, Label, Messages }) {
384
- const options = useMemo(() => asOptions(config.options), [config.options]);
473
+ const unsuspendedOptions = useSuspendableOptions(config);
474
+ const options = useMemo(() => asOptions(unsuspendedOptions), [unsuspendedOptions]);
385
475
  if (config.allowCustom) {
386
476
  return _jsx(ExtendedRadioControl, { ...config.component, selected: value, onChange: onChange, options: options, label: config.label, help: config.help, allowCustom: true, Label: Label, Messages: Messages });
387
477
  }
@@ -455,8 +545,8 @@ function hydrateSelectProperty(config) {
455
545
  controlType: 'select',
456
546
  control({ value, onChange, slots: { Messages } }) {
457
547
  const configAndValue = useMemo(() => ({ ...config, value }), [config, value]);
458
- return _jsx(PromisableComponent, { promisedProps: configAndValue, renderer: useCallback(({ value, ...cfg }) => {
459
- return _jsx(MultiSelectControl, { value: value ?? cfg.default ?? EMPTY_ARRAY, onChange: onChange, options: cfg.options, label: cfg.label, help: cfg.help, expandOnFocus: cfg.expandOnFocus, Messages: Messages });
548
+ return _jsx(PromisableComponent, { promisedProps: configAndValue, forceSuspend: isSuspendableOptions(config.options), renderer: useCallback(({ value, ...cfg }) => {
549
+ return _jsx(MultiSelectControl, { value: value ?? cfg.default ?? EMPTY_ARRAY, onChange: onChange, options: useSuspendableOptions(cfg), label: cfg.label, help: cfg.help, expandOnFocus: cfg.expandOnFocus, Messages: Messages });
460
550
  }, [onChange]) });
461
551
  }
462
552
  };
@@ -477,9 +567,10 @@ function hydrateSelectProperty(config) {
477
567
  control({ value, onChange, slots: { Label, Messages } }) {
478
568
  const configAndValue = useMemo(() => ({ ...config, value }), [config, value]);
479
569
  const label = _jsx(Label, {});
480
- return _jsx(PromisableComponent, { promisedProps: configAndValue, renderer: useCallback(({ value, ...cfg }) => {
481
- const options = useMemo(() => asOptions(cfg.options, cfg.clearable ? '' : undefined), [cfg.options, cfg.clearable]);
482
- return _jsxs(_Fragment, { children: [_jsx(SelectControl, { value: value ?? cfg.default ?? '', onChange: onChange, options: options, label: label, help: cfg.help }), _jsx(Messages, {})] });
570
+ return _jsx(PromisableComponent, { promisedProps: configAndValue, forceSuspend: isSuspendableOptions(config.options), renderer: useCallback(({ value, clearable, ...cfg }) => {
571
+ const unsuspendedOptions = useSuspendableOptions(cfg);
572
+ const normalizedOptions = useMemo(() => asOptions(unsuspendedOptions, clearable ? '' : undefined), [unsuspendedOptions, clearable]);
573
+ return _jsxs(_Fragment, { children: [_jsx(SelectControl, { value: value ?? cfg.default ?? '', onChange: onChange, options: normalizedOptions, label: label, help: cfg.help }), _jsx(Messages, {})] });
483
574
  }, [onChange]) });
484
575
  }
485
576
  };
@@ -509,7 +600,15 @@ function invalidConfigMessageControl(config, passthroughProps, message) {
509
600
  }
510
601
  };
511
602
  }
603
+ function useSuspendableOptions(config) {
604
+ const rawOptions = config.options;
605
+ return isSuspendableOptions(rawOptions) ? useSuspenseSelect(select => {
606
+ const selectorInfo = rawOptions.split(":");
607
+ return select(selectorInfo[1]).get(selectorInfo[2]);
608
+ }, [rawOptions]) : rawOptions;
609
+ }
512
610
  export function registerPlainTextLabelRequiredMarker(componentType, labelSelectorFragment) {
611
+ //TODO: Replace with a library-wide Redux store
513
612
  let loadedStyles = window.plauditGutenbergExtensionsPlainTextLabelCSSLoaded;
514
613
  if (loadedStyles === undefined) {
515
614
  window.plauditGutenbergExtensionsPlainTextLabelCSSLoaded = loadedStyles = { componentTypes: new Set(), sheet: new CSSStyleSheet() };