@elementor/editor-components 3.35.0-454 → 3.35.0-456

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.js CHANGED
@@ -3703,6 +3703,13 @@ var ControlLabel = ({ children, ...props }) => {
3703
3703
  return /* @__PURE__ */ React25.createElement(import_ui19.Stack, { direction: "row", alignItems: "center", justifyItems: "start", gap: 0.25 }, /* @__PURE__ */ React25.createElement(import_editor_controls2.ControlFormLabel, { ...props }, children), /* @__PURE__ */ React25.createElement(import_editor_controls2.ControlAdornments, null));
3704
3704
  };
3705
3705
 
3706
+ // src/components/errors.ts
3707
+ var import_utils7 = require("@elementor/utils");
3708
+ var OverrideControlInnerElementNotFoundError = (0, import_utils7.createError)({
3709
+ code: "override_control_inner_element_not_found",
3710
+ message: `Component inner element not found for override control. The element may have been deleted without updating the overridable props, or the component has not finished rendering yet.`
3711
+ });
3712
+
3706
3713
  // src/components/instance-editing-panel/override-prop-control.tsx
3707
3714
  function OverridePropControl({ overridableProp, overrides }) {
3708
3715
  return /* @__PURE__ */ React26.createElement(import_editor_editing_panel3.SettingsField, { bind: "component_instance", propDisplayName: overridableProp.label }, /* @__PURE__ */ React26.createElement(OverrideControl, { overridableProp, overrides }));
@@ -3765,6 +3772,12 @@ function OverrideControl({ overridableProp, overrides }) {
3765
3772
  overridableProp.label
3766
3773
  );
3767
3774
  const { elementId, widgetType, elType, propKey } = overridableProp.originPropFields ?? overridableProp;
3775
+ const elementContainer = (0, import_editor_elements14.getContainer)(elementId);
3776
+ if (!elementContainer) {
3777
+ throw new OverrideControlInnerElementNotFoundError({
3778
+ context: { componentId: componentInstanceId, elementId }
3779
+ });
3780
+ }
3768
3781
  const type = elType === "widget" ? widgetType : elType;
3769
3782
  const elementType = (0, import_editor_elements14.getElementType)(type);
3770
3783
  if (!elementType) {
@@ -4008,7 +4021,7 @@ var import_i18n28 = require("@wordpress/i18n");
4008
4021
 
4009
4022
  // src/store/actions/set-overridable-prop.ts
4010
4023
  var import_store58 = require("@elementor/store");
4011
- var import_utils7 = require("@elementor/utils");
4024
+ var import_utils8 = require("@elementor/utils");
4012
4025
  function setOverridableProp({
4013
4026
  componentId,
4014
4027
  overrideKey,
@@ -4034,7 +4047,7 @@ function setOverridableProp({
4034
4047
  groupId || existingOverridableProp?.groupId || void 0
4035
4048
  );
4036
4049
  const overridableProp = {
4037
- overrideKey: existingOverridableProp?.overrideKey || (0, import_utils7.generateUniqueId)("prop"),
4050
+ overrideKey: existingOverridableProp?.overrideKey || (0, import_utils8.generateUniqueId)("prop"),
4038
4051
  label,
4039
4052
  elementId,
4040
4053
  propKey,
@@ -4154,12 +4167,11 @@ function getOverridableProp({
4154
4167
  }
4155
4168
 
4156
4169
  // src/components/overridable-props/overridable-prop-indicator.tsx
4157
- var FORBIDDEN_KEYS = ["_cssid", "attributes"];
4158
4170
  function OverridablePropIndicator() {
4159
- const { bind } = (0, import_editor_controls6.useBoundProp)();
4171
+ const { propType } = (0, import_editor_controls6.useBoundProp)();
4160
4172
  const componentId = useCurrentComponentId();
4161
4173
  const overridableProps = useOverridableProps(componentId);
4162
- if (!isPropAllowed(bind) || !componentId || !overridableProps) {
4174
+ if (!isPropAllowed(propType) || !componentId || !overridableProps) {
4163
4175
  return null;
4164
4176
  }
4165
4177
  return /* @__PURE__ */ React31.createElement(Content2, { componentId, overridableProps });
@@ -4238,8 +4250,8 @@ function Content2({ componentId, overridableProps }) {
4238
4250
  )
4239
4251
  ));
4240
4252
  }
4241
- function isPropAllowed(bind) {
4242
- return !FORBIDDEN_KEYS.includes(bind);
4253
+ function isPropAllowed(propType) {
4254
+ return propType.meta.overridable !== false;
4243
4255
  }
4244
4256
 
4245
4257
  // src/hooks/cleanup-overridable-props-on-delete.ts
@@ -4300,7 +4312,7 @@ function collectDeletedElementIds(containers) {
4300
4312
  // src/hooks/regenerate-override-keys.ts
4301
4313
  var import_editor_elements18 = require("@elementor/editor-elements");
4302
4314
  var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
4303
- var import_utils8 = require("@elementor/utils");
4315
+ var import_utils9 = require("@elementor/utils");
4304
4316
  function initRegenerateOverrideKeys() {
4305
4317
  (0, import_editor_v1_adapters9.registerDataHook)("after", "document/elements/duplicate", (_args, result) => {
4306
4318
  regenerateOverrideKeysForContainers(result);
@@ -4343,7 +4355,7 @@ function regenerateOverrideKeys(element) {
4343
4355
  ...override,
4344
4356
  value: {
4345
4357
  ...override.value,
4346
- override_key: (0, import_utils8.generateUniqueId)("prop")
4358
+ override_key: (0, import_utils9.generateUniqueId)("prop")
4347
4359
  }
4348
4360
  };
4349
4361
  });
@@ -4385,7 +4397,7 @@ var import_editor_elements19 = require("@elementor/editor-elements");
4385
4397
  var import_editor_mcp2 = require("@elementor/editor-mcp");
4386
4398
  var import_http_client2 = require("@elementor/http-client");
4387
4399
  var import_schema6 = require("@elementor/schema");
4388
- var import_utils9 = require("@elementor/utils");
4400
+ var import_utils10 = require("@elementor/utils");
4389
4401
  var InputSchema = {
4390
4402
  element_id: import_schema6.z.string().describe(
4391
4403
  'The unique identifier of the element to save as a component. Use the "list-elements" tool to find available element IDs in the current document.'
@@ -4435,7 +4447,7 @@ var handleSaveAsComponent = async (params) => {
4435
4447
  if (overridableProps) {
4436
4448
  updateElementDataWithOverridableProps(element, overridableProps);
4437
4449
  }
4438
- const uid = (0, import_utils9.generateUniqueId)("component");
4450
+ const uid = (0, import_utils10.generateUniqueId)("component");
4439
4451
  try {
4440
4452
  await apiClient.validate({
4441
4453
  items: [
@@ -4457,7 +4469,7 @@ var handleSaveAsComponent = async (params) => {
4457
4469
  };
4458
4470
  function enrichOverridableProps(input, rootElement) {
4459
4471
  const enrichedProps = {};
4460
- const defaultGroupId = (0, import_utils9.generateUniqueId)("group");
4472
+ const defaultGroupId = (0, import_utils10.generateUniqueId)("group");
4461
4473
  Object.entries(input.props).forEach(([, prop]) => {
4462
4474
  const { elementId, propKey, label } = prop;
4463
4475
  const element = findElementById(rootElement, elementId);
@@ -4478,7 +4490,7 @@ function enrichOverridableProps(input, rootElement) {
4478
4490
  `Property "${propKey}" does not exist in element "${elementId}" (type: ${widgetType}). Available properties: ${availableProps}`
4479
4491
  );
4480
4492
  }
4481
- const overrideKey = (0, import_utils9.generateUniqueId)("prop");
4493
+ const overrideKey = (0, import_utils10.generateUniqueId)("prop");
4482
4494
  const originValue = element.settings?.[propKey] ? element.settings[propKey] : elementType.propsSchema[propKey].default ?? null;
4483
4495
  enrichedProps[overrideKey] = {
4484
4496
  overrideKey,