@elementor/editor-controls 0.26.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -193,46 +193,39 @@ var ControlFormLabel = ({ children }) => {
193
193
  import * as React5 from "react";
194
194
  import { ErrorBoundary } from "@elementor/ui";
195
195
 
196
- // src/create-control-replacement.tsx
196
+ // src/control-replacements.tsx
197
197
  import * as React4 from "react";
198
198
  import { createContext as createContext3, useContext as useContext3 } from "react";
199
- var ControlReplacementContext = createContext3(void 0);
200
- var ControlReplacementProvider = ({
201
- component,
202
- condition,
203
- children
204
- }) => {
205
- return /* @__PURE__ */ React4.createElement(ControlReplacementContext.Provider, { value: { component, condition } }, children);
199
+ var ControlReplacementContext = createContext3([]);
200
+ var ControlReplacementsProvider = ({ replacements, children }) => {
201
+ return /* @__PURE__ */ React4.createElement(ControlReplacementContext.Provider, { value: replacements }, children);
206
202
  };
207
- var useControlReplacement = () => {
203
+ var useControlReplacement = (OriginalComponent) => {
208
204
  const { value } = useBoundProp();
209
- const controlReplacement = useContext3(ControlReplacementContext);
210
- let shouldReplace = false;
205
+ const replacements = useContext3(ControlReplacementContext);
211
206
  try {
212
- shouldReplace = !!controlReplacement?.condition({ value }) && !!controlReplacement.component;
207
+ const replacement = replacements.find((r) => r.condition({ value }));
208
+ return replacement?.component ?? OriginalComponent;
213
209
  } catch {
210
+ return OriginalComponent;
214
211
  }
215
- return shouldReplace ? controlReplacement?.component : void 0;
216
212
  };
217
- var createControlReplacement = () => {
218
- let controlReplacement;
219
- function replaceControl({ component, condition }) {
220
- controlReplacement = { component, condition };
213
+ var createControlReplacementsRegistry = () => {
214
+ const controlReplacements = [];
215
+ function registerControlReplacement(replacement) {
216
+ controlReplacements.push(replacement);
221
217
  }
222
- function getControlReplacement() {
223
- return controlReplacement;
218
+ function getControlReplacements() {
219
+ return controlReplacements;
224
220
  }
225
- return { replaceControl, getControlReplacement };
221
+ return { registerControlReplacement, getControlReplacements };
226
222
  };
227
223
 
228
224
  // src/create-control.tsx
229
225
  var brandSymbol = Symbol("control");
230
- function createControl(Component, { supportsReplacements = true } = {}) {
226
+ function createControl(Control5) {
231
227
  return (props) => {
232
- const ControlReplacement = useControlReplacement();
233
- if (ControlReplacement && supportsReplacements) {
234
- return /* @__PURE__ */ React5.createElement(ErrorBoundary, { fallback: null }, /* @__PURE__ */ React5.createElement(ControlReplacement, { ...props }));
235
- }
228
+ const Component = useControlReplacement(Control5);
236
229
  return /* @__PURE__ */ React5.createElement(ErrorBoundary, { fallback: null }, /* @__PURE__ */ React5.createElement(Component, { ...props }));
237
230
  };
238
231
  }
@@ -1328,7 +1321,6 @@ function EqualUnequalSizesControl({
1328
1321
  },
1329
1322
  ...bindPopover2(popupState),
1330
1323
  slotProps: {
1331
- // eslint-disable-next-line react-compiler/react-compiler
1332
1324
  paper: { sx: { mt: 0.5, width: controlRef.current?.getBoundingClientRect().width } }
1333
1325
  }
1334
1326
  },
@@ -2785,7 +2777,7 @@ export {
2785
2777
  ControlAdornments,
2786
2778
  ControlAdornmentsProvider,
2787
2779
  ControlFormLabel,
2788
- ControlReplacementProvider,
2780
+ ControlReplacementsProvider,
2789
2781
  ControlToggleButtonGroup,
2790
2782
  EqualUnequalSizesControl,
2791
2783
  FontFamilyControl,
@@ -2804,7 +2796,7 @@ export {
2804
2796
  TextControl,
2805
2797
  ToggleControl,
2806
2798
  UrlControl,
2807
- createControlReplacement,
2799
+ createControlReplacementsRegistry,
2808
2800
  useBoundProp,
2809
2801
  useControlActions,
2810
2802
  useSyncExternalState