@elementor/editor-components 3.35.0-459 → 3.35.0-461

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
@@ -42,7 +42,7 @@ var import_editor_editing_panel8 = require("@elementor/editor-editing-panel");
42
42
  var import_editor_elements_panel = require("@elementor/editor-elements-panel");
43
43
  var import_editor_panels4 = require("@elementor/editor-panels");
44
44
  var import_editor_styles_repository2 = require("@elementor/editor-styles-repository");
45
- var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
45
+ var import_editor_v1_adapters12 = require("@elementor/editor-v1-adapters");
46
46
  var import_store80 = require("@elementor/store");
47
47
  var import_i18n30 = require("@wordpress/i18n");
48
48
 
@@ -3959,6 +3959,7 @@ function OverridablePropControl({
3959
3959
  ...props
3960
3960
  }) {
3961
3961
  const { elementType } = (0, import_editor_editing_panel6.useElement)();
3962
+ const Control = (0, import_editor_controls5.createControl)(OriginalControl2);
3962
3963
  const { value, bind, setValue, placeholder, ...propContext } = (0, import_editor_controls5.useBoundProp)(componentOverridablePropTypeUtil);
3963
3964
  const componentId = useCurrentComponentId();
3964
3965
  const overridableProps = useOverridableProps(componentId);
@@ -4007,7 +4008,7 @@ function OverridablePropControl({
4007
4008
  },
4008
4009
  placeholder: objectPlaceholder
4009
4010
  },
4010
- /* @__PURE__ */ React29.createElement(import_editor_controls5.PropKeyProvider, { bind }, /* @__PURE__ */ React29.createElement(import_editor_controls5.ControlReplacementsProvider, { replacements: filteredReplacements }, /* @__PURE__ */ React29.createElement(OriginalControl2, { ...props })))
4011
+ /* @__PURE__ */ React29.createElement(import_editor_controls5.PropKeyProvider, { bind }, /* @__PURE__ */ React29.createElement(import_editor_controls5.ControlReplacementsProvider, { replacements: filteredReplacements }, /* @__PURE__ */ React29.createElement(Control, { ...props })))
4011
4012
  ));
4012
4013
  }
4013
4014
 
@@ -4254,150 +4255,16 @@ function isPropAllowed(propType) {
4254
4255
  return propType.meta.overridable !== false;
4255
4256
  }
4256
4257
 
4257
- // src/hooks/cleanup-overridable-props-on-delete.ts
4258
- var import_editor_elements17 = require("@elementor/editor-elements");
4259
- var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
4260
- var import_store63 = require("@elementor/store");
4261
- function initCleanupOverridablePropsOnDelete() {
4262
- (0, import_editor_v1_adapters8.registerDataHook)("dependency", "document/elements/delete", (args) => {
4263
- const state = (0, import_store63.__getState)();
4264
- if (!state) {
4265
- return true;
4266
- }
4267
- const currentComponentId = selectCurrentComponentId(state);
4268
- if (!currentComponentId) {
4269
- return true;
4270
- }
4271
- const overridableProps = selectOverridableProps(state, currentComponentId);
4272
- if (!overridableProps || Object.keys(overridableProps.props).length === 0) {
4273
- return true;
4274
- }
4275
- const containers = args.containers ?? (args.container ? [args.container] : []);
4276
- if (containers.length === 0) {
4277
- return true;
4278
- }
4279
- const deletedElementIds = collectDeletedElementIds(containers);
4280
- if (deletedElementIds.length === 0) {
4281
- return true;
4282
- }
4283
- const propKeysToDelete = Object.entries(overridableProps.props).filter(([, prop]) => deletedElementIds.includes(prop.elementId)).map(([propKey]) => propKey);
4284
- if (propKeysToDelete.length === 0) {
4285
- return true;
4286
- }
4287
- const remainingProps = Object.fromEntries(
4288
- Object.entries(overridableProps.props).filter(([propKey]) => !propKeysToDelete.includes(propKey))
4289
- );
4290
- let updatedGroups = overridableProps.groups;
4291
- for (const propKey of propKeysToDelete) {
4292
- updatedGroups = removePropFromAllGroups(updatedGroups, propKey);
4293
- }
4294
- (0, import_store63.__dispatch)(
4295
- slice.actions.setOverridableProps({
4296
- componentId: currentComponentId,
4297
- overridableProps: {
4298
- ...overridableProps,
4299
- props: remainingProps,
4300
- groups: updatedGroups
4301
- }
4302
- })
4303
- );
4304
- return true;
4305
- });
4306
- }
4307
- function collectDeletedElementIds(containers) {
4308
- const elementIds = containers.filter(Boolean).flatMap((container) => [container, ...(0, import_editor_elements17.getAllDescendants)(container)]).map((element) => element.model?.get?.("id") ?? element.id).filter((id2) => Boolean(id2));
4309
- return elementIds;
4310
- }
4311
-
4312
- // src/hooks/regenerate-override-keys.ts
4313
- var import_editor_elements18 = require("@elementor/editor-elements");
4314
- var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
4315
- var import_utils9 = require("@elementor/utils");
4316
- function initRegenerateOverrideKeys() {
4317
- (0, import_editor_v1_adapters9.registerDataHook)("after", "document/elements/duplicate", (_args, result) => {
4318
- regenerateOverrideKeysForContainers(result);
4319
- });
4320
- (0, import_editor_v1_adapters9.registerDataHook)("after", "document/elements/paste", (_args, result) => {
4321
- regenerateOverrideKeysForContainers(result);
4322
- });
4323
- (0, import_editor_v1_adapters9.registerDataHook)("after", "document/elements/import", (_args, result) => {
4324
- regenerateOverrideKeysForContainers(result);
4325
- });
4326
- }
4327
- function regenerateOverrideKeysForContainers(result) {
4328
- const containers = Array.isArray(result) ? result : [result];
4329
- containers.forEach((container) => {
4330
- regenerateOverrideKeysRecursive(container.id);
4331
- });
4332
- }
4333
- function regenerateOverrideKeysRecursive(elementId) {
4334
- const container = (0, import_editor_elements18.getContainer)(elementId);
4335
- if (!container) {
4336
- return;
4337
- }
4338
- (0, import_editor_elements18.getAllDescendants)(container).forEach(regenerateOverrideKeys);
4339
- }
4340
- function regenerateOverrideKeys(element) {
4341
- if (!isComponentInstance(element.model.toJSON())) {
4342
- return;
4343
- }
4344
- const settings = element.settings?.toJSON() ?? {};
4345
- if (!hasOverrides(settings)) {
4346
- return;
4347
- }
4348
- const componentInstance = settings.component_instance;
4349
- const overrides = componentInstance.value.overrides;
4350
- const newOverrides = overrides.value.map((override) => {
4351
- if (!componentInstanceOverridePropTypeUtil.isValid(override)) {
4352
- return override;
4353
- }
4354
- return {
4355
- ...override,
4356
- value: {
4357
- ...override.value,
4358
- override_key: (0, import_utils9.generateUniqueId)("prop")
4359
- }
4360
- };
4361
- });
4362
- const newComponentInstance = {
4363
- ...componentInstance,
4364
- value: {
4365
- ...componentInstance.value,
4366
- overrides: {
4367
- ...overrides,
4368
- value: newOverrides
4369
- }
4370
- }
4371
- };
4372
- (0, import_editor_elements18.updateElementSettings)({
4373
- id: element.id,
4374
- props: { component_instance: newComponentInstance },
4375
- withHistory: false
4376
- });
4377
- }
4378
- function hasOverrides(settings) {
4379
- if (!componentInstancePropTypeUtil.isValid(settings?.component_instance)) {
4380
- return false;
4381
- }
4382
- const componentInstance = componentInstancePropTypeUtil.extract(settings?.component_instance);
4383
- const overrides = componentInstance?.overrides;
4384
- if (!componentInstanceOverridesPropTypeUtil.isValid(overrides)) {
4385
- return false;
4386
- }
4387
- const overridesValue = overrides?.value;
4388
- return !!overridesValue?.length;
4389
- }
4390
-
4391
4258
  // src/mcp/index.ts
4392
4259
  var import_editor_mcp3 = require("@elementor/editor-mcp");
4393
4260
 
4394
4261
  // src/mcp/save-as-component-tool.ts
4395
4262
  var import_editor_canvas7 = require("@elementor/editor-canvas");
4396
- var import_editor_elements19 = require("@elementor/editor-elements");
4263
+ var import_editor_elements17 = require("@elementor/editor-elements");
4397
4264
  var import_editor_mcp2 = require("@elementor/editor-mcp");
4398
4265
  var import_http_client2 = require("@elementor/http-client");
4399
4266
  var import_schema6 = require("@elementor/schema");
4400
- var import_utils10 = require("@elementor/utils");
4267
+ var import_utils9 = require("@elementor/utils");
4401
4268
  var InputSchema = {
4402
4269
  element_id: import_schema6.z.string().describe(
4403
4270
  '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.'
@@ -4431,7 +4298,7 @@ var ERROR_MESSAGES3 = {
4431
4298
  var handleSaveAsComponent = async (params) => {
4432
4299
  const { element_id: elementId, component_name: componentName, overridable_props: overridablePropsInput } = params;
4433
4300
  const validElementTypes = getValidElementTypes();
4434
- const container = (0, import_editor_elements19.getContainer)(elementId);
4301
+ const container = (0, import_editor_elements17.getContainer)(elementId);
4435
4302
  if (!container) {
4436
4303
  throw new Error(ERROR_MESSAGES3.ELEMENT_NOT_FOUND);
4437
4304
  }
@@ -4447,7 +4314,7 @@ var handleSaveAsComponent = async (params) => {
4447
4314
  if (overridableProps) {
4448
4315
  updateElementDataWithOverridableProps(element, overridableProps);
4449
4316
  }
4450
- const uid = (0, import_utils10.generateUniqueId)("component");
4317
+ const uid = (0, import_utils9.generateUniqueId)("component");
4451
4318
  try {
4452
4319
  await apiClient.validate({
4453
4320
  items: [
@@ -4469,7 +4336,7 @@ var handleSaveAsComponent = async (params) => {
4469
4336
  };
4470
4337
  function enrichOverridableProps(input, rootElement) {
4471
4338
  const enrichedProps = {};
4472
- const defaultGroupId = (0, import_utils10.generateUniqueId)("group");
4339
+ const defaultGroupId = (0, import_utils9.generateUniqueId)("group");
4473
4340
  Object.entries(input.props).forEach(([, prop]) => {
4474
4341
  const { elementId, propKey, label } = prop;
4475
4342
  const element = findElementById(rootElement, elementId);
@@ -4478,7 +4345,7 @@ function enrichOverridableProps(input, rootElement) {
4478
4345
  }
4479
4346
  const elType = element.elType;
4480
4347
  const widgetType = element.widgetType || element.elType;
4481
- const elementType = (0, import_editor_elements19.getElementType)(widgetType);
4348
+ const elementType = (0, import_editor_elements17.getElementType)(widgetType);
4482
4349
  if (!elementType) {
4483
4350
  throw new Error(
4484
4351
  `Element type "${widgetType}" is not atomic or does not have a settings schema. Cannot expose property "${propKey}" for element "${elementId}".`
@@ -4490,7 +4357,7 @@ function enrichOverridableProps(input, rootElement) {
4490
4357
  `Property "${propKey}" does not exist in element "${elementId}" (type: ${widgetType}). Available properties: ${availableProps}`
4491
4358
  );
4492
4359
  }
4493
- const overrideKey = (0, import_utils10.generateUniqueId)("prop");
4360
+ const overrideKey = (0, import_utils9.generateUniqueId)("prop");
4494
4361
  const originValue = element.settings?.[propKey] ? element.settings[propKey] : elementType.propsSchema[propKey].default ?? null;
4495
4362
  enrichedProps[overrideKey] = {
4496
4363
  overrideKey,
@@ -4547,7 +4414,7 @@ function findElementById(root, targetId) {
4547
4414
  return null;
4548
4415
  }
4549
4416
  function getValidElementTypes() {
4550
- const types = (0, import_editor_elements19.getWidgetsCache)();
4417
+ const types = (0, import_editor_elements17.getWidgetsCache)();
4551
4418
  if (!types) {
4552
4419
  return [];
4553
4420
  }
@@ -4725,19 +4592,19 @@ function initMcp() {
4725
4592
 
4726
4593
  // src/populate-store.ts
4727
4594
  var import_react18 = require("react");
4728
- var import_store65 = require("@elementor/store");
4595
+ var import_store63 = require("@elementor/store");
4729
4596
  function PopulateStore() {
4730
4597
  (0, import_react18.useEffect)(() => {
4731
- (0, import_store65.__dispatch)(loadComponents());
4598
+ (0, import_store63.__dispatch)(loadComponents());
4732
4599
  }, []);
4733
4600
  return null;
4734
4601
  }
4735
4602
 
4736
4603
  // src/prevent-circular-nesting.ts
4737
- var import_editor_elements20 = require("@elementor/editor-elements");
4604
+ var import_editor_elements18 = require("@elementor/editor-elements");
4738
4605
  var import_editor_notifications4 = require("@elementor/editor-notifications");
4739
- var import_editor_v1_adapters10 = require("@elementor/editor-v1-adapters");
4740
- var import_store66 = require("@elementor/store");
4606
+ var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
4607
+ var import_store64 = require("@elementor/store");
4741
4608
  var import_i18n29 = require("@wordpress/i18n");
4742
4609
  var COMPONENT_TYPE = "e-component";
4743
4610
  var COMPONENT_CIRCULAR_NESTING_ALERT = {
@@ -4746,15 +4613,15 @@ var COMPONENT_CIRCULAR_NESTING_ALERT = {
4746
4613
  id: "circular-component-nesting-blocked"
4747
4614
  };
4748
4615
  function initCircularNestingPrevention() {
4749
- (0, import_editor_v1_adapters10.blockCommand)({
4616
+ (0, import_editor_v1_adapters8.blockCommand)({
4750
4617
  command: "document/elements/create",
4751
4618
  condition: blockCircularCreate
4752
4619
  });
4753
- (0, import_editor_v1_adapters10.blockCommand)({
4620
+ (0, import_editor_v1_adapters8.blockCommand)({
4754
4621
  command: "document/elements/move",
4755
4622
  condition: blockCircularMove
4756
4623
  });
4757
- (0, import_editor_v1_adapters10.blockCommand)({
4624
+ (0, import_editor_v1_adapters8.blockCommand)({
4758
4625
  command: "document/elements/paste",
4759
4626
  condition: blockCircularPaste
4760
4627
  });
@@ -4763,7 +4630,7 @@ function wouldCreateCircularNesting(componentIdToAdd) {
4763
4630
  if (componentIdToAdd === void 0) {
4764
4631
  return false;
4765
4632
  }
4766
- const state = (0, import_store66.__getState)();
4633
+ const state = (0, import_store64.__getState)();
4767
4634
  const currentComponentId = selectCurrentComponentId(state);
4768
4635
  const path = selectPath(state);
4769
4636
  if (currentComponentId === null) {
@@ -4829,7 +4696,7 @@ function blockCircularMove(args) {
4829
4696
  if (!container) {
4830
4697
  return false;
4831
4698
  }
4832
- const allElements = (0, import_editor_elements20.getAllDescendants)(container);
4699
+ const allElements = (0, import_editor_elements18.getAllDescendants)(container);
4833
4700
  return allElements.some((element) => {
4834
4701
  const componentId = extractComponentIdFromContainer(element);
4835
4702
  if (componentId === null) {
@@ -4861,19 +4728,19 @@ function blockCircularPaste(args) {
4861
4728
  }
4862
4729
 
4863
4730
  // src/store/actions/remove-component-styles.ts
4864
- var import_store68 = require("@elementor/store");
4731
+ var import_store66 = require("@elementor/store");
4865
4732
  function removeComponentStyles(id2) {
4866
4733
  apiClient.invalidateComponentConfigCache(id2);
4867
- (0, import_store68.__dispatch)(slice.actions.removeStyles({ id: id2 }));
4734
+ (0, import_store66.__dispatch)(slice.actions.removeStyles({ id: id2 }));
4868
4735
  }
4869
4736
 
4870
4737
  // src/store/components-styles-provider.ts
4871
4738
  var import_editor_styles_repository = require("@elementor/editor-styles-repository");
4872
- var import_store70 = require("@elementor/store");
4739
+ var import_store68 = require("@elementor/store");
4873
4740
  var componentsStylesProvider = (0, import_editor_styles_repository.createStylesProvider)({
4874
4741
  key: "components-styles",
4875
4742
  priority: 100,
4876
- subscribe: (cb) => (0, import_store70.__subscribeWithSelector)(
4743
+ subscribe: (cb) => (0, import_store68.__subscribeWithSelector)(
4877
4744
  (state) => state[SLICE_NAME],
4878
4745
  () => {
4879
4746
  cb();
@@ -4881,29 +4748,29 @@ var componentsStylesProvider = (0, import_editor_styles_repository.createStylesP
4881
4748
  ),
4882
4749
  actions: {
4883
4750
  all: () => {
4884
- return selectFlatStyles((0, import_store70.__getState)());
4751
+ return selectFlatStyles((0, import_store68.__getState)());
4885
4752
  },
4886
4753
  get: (id2) => {
4887
- return selectFlatStyles((0, import_store70.__getState)()).find((style) => style.id === id2) ?? null;
4754
+ return selectFlatStyles((0, import_store68.__getState)()).find((style) => style.id === id2) ?? null;
4888
4755
  }
4889
4756
  }
4890
4757
  });
4891
4758
 
4892
4759
  // src/sync/create-components-before-save.ts
4893
- var import_editor_elements21 = require("@elementor/editor-elements");
4894
- var import_store72 = require("@elementor/store");
4760
+ var import_editor_elements19 = require("@elementor/editor-elements");
4761
+ var import_store70 = require("@elementor/store");
4895
4762
  async function createComponentsBeforeSave({
4896
4763
  elements,
4897
4764
  status
4898
4765
  }) {
4899
- const unpublishedComponents = selectUnpublishedComponents((0, import_store72.__getState)());
4766
+ const unpublishedComponents = selectUnpublishedComponents((0, import_store70.__getState)());
4900
4767
  if (!unpublishedComponents.length) {
4901
4768
  return;
4902
4769
  }
4903
4770
  try {
4904
4771
  const uidToComponentId = await createComponents(unpublishedComponents, status);
4905
4772
  updateComponentInstances(elements, uidToComponentId);
4906
- (0, import_store72.__dispatch)(
4773
+ (0, import_store70.__dispatch)(
4907
4774
  slice.actions.add(
4908
4775
  unpublishedComponents.map((component) => ({
4909
4776
  id: uidToComponentId.get(component.uid),
@@ -4913,7 +4780,7 @@ async function createComponentsBeforeSave({
4913
4780
  }))
4914
4781
  )
4915
4782
  );
4916
- (0, import_store72.__dispatch)(slice.actions.resetUnpublished());
4783
+ (0, import_store70.__dispatch)(slice.actions.resetUnpublished());
4917
4784
  } catch (error) {
4918
4785
  throw new Error(`Failed to publish components and update component instances: ${error}`);
4919
4786
  }
@@ -4958,7 +4825,7 @@ function shouldUpdateElement(element, uidToComponentId) {
4958
4825
  return { shouldUpdate: false, newComponentId: null };
4959
4826
  }
4960
4827
  function updateElementComponentId(elementId, componentId) {
4961
- (0, import_editor_elements21.updateElementSettings)({
4828
+ (0, import_editor_elements19.updateElementSettings)({
4962
4829
  id: elementId,
4963
4830
  props: {
4964
4831
  component_instance: {
@@ -4973,7 +4840,7 @@ function updateElementComponentId(elementId, componentId) {
4973
4840
  }
4974
4841
 
4975
4842
  // src/sync/set-component-overridable-props-settings-before-save.ts
4976
- var import_store74 = require("@elementor/store");
4843
+ var import_store72 = require("@elementor/store");
4977
4844
  var setComponentOverridablePropsSettingsBeforeSave = ({
4978
4845
  container
4979
4846
  }) => {
@@ -4981,7 +4848,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
4981
4848
  if (!currentDocument || currentDocument.config.type !== COMPONENT_DOCUMENT_TYPE) {
4982
4849
  return;
4983
4850
  }
4984
- const overridableProps = selectOverridableProps((0, import_store74.__getState)(), currentDocument.id);
4851
+ const overridableProps = selectOverridableProps((0, import_store72.__getState)(), currentDocument.id);
4985
4852
  if (overridableProps) {
4986
4853
  container.settings.set("overridable_props", overridableProps);
4987
4854
  }
@@ -4989,7 +4856,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
4989
4856
 
4990
4857
  // src/sync/update-archived-component-before-save.ts
4991
4858
  var import_editor_notifications5 = require("@elementor/editor-notifications");
4992
- var import_store76 = require("@elementor/store");
4859
+ var import_store74 = require("@elementor/store");
4993
4860
  var failedNotification = (message) => ({
4994
4861
  type: "error",
4995
4862
  message: `Failed to archive components: ${message}`,
@@ -4997,7 +4864,7 @@ var failedNotification = (message) => ({
4997
4864
  });
4998
4865
  var updateArchivedComponentBeforeSave = async () => {
4999
4866
  try {
5000
- const archivedComponents = selectArchivedThisSession((0, import_store76.__getState)());
4867
+ const archivedComponents = selectArchivedThisSession((0, import_store74.__getState)());
5001
4868
  if (!archivedComponents.length) {
5002
4869
  return;
5003
4870
  }
@@ -5012,15 +4879,15 @@ var updateArchivedComponentBeforeSave = async () => {
5012
4879
  };
5013
4880
 
5014
4881
  // src/sync/update-component-title-before-save.ts
5015
- var import_store78 = require("@elementor/store");
4882
+ var import_store76 = require("@elementor/store");
5016
4883
  var updateComponentTitleBeforeSave = async () => {
5017
- const updatedComponentNames = selectUpdatedComponentNames((0, import_store78.__getState)());
4884
+ const updatedComponentNames = selectUpdatedComponentNames((0, import_store76.__getState)());
5018
4885
  if (!updatedComponentNames.length) {
5019
4886
  return;
5020
4887
  }
5021
4888
  const result = await apiClient.updateComponentTitle(updatedComponentNames);
5022
4889
  if (result.failedIds.length === 0) {
5023
- (0, import_store78.__dispatch)(slice.actions.cleanUpdatedComponentNames());
4890
+ (0, import_store76.__dispatch)(slice.actions.cleanUpdatedComponentNames());
5024
4891
  }
5025
4892
  };
5026
4893
 
@@ -5052,6 +4919,155 @@ var beforeSave = ({ container, status }) => {
5052
4919
  ]);
5053
4920
  };
5054
4921
 
4922
+ // src/sync/cleanup-overridable-props-on-delete.ts
4923
+ var import_editor_elements20 = require("@elementor/editor-elements");
4924
+ var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
4925
+ var import_store78 = require("@elementor/store");
4926
+ function initCleanupOverridablePropsOnDelete() {
4927
+ (0, import_editor_v1_adapters9.registerDataHook)("dependency", "document/elements/delete", (args) => {
4928
+ const state = (0, import_store78.__getState)();
4929
+ if (!state) {
4930
+ return true;
4931
+ }
4932
+ const currentComponentId = selectCurrentComponentId(state);
4933
+ if (!currentComponentId) {
4934
+ return true;
4935
+ }
4936
+ const overridableProps = selectOverridableProps(state, currentComponentId);
4937
+ if (!overridableProps || Object.keys(overridableProps.props).length === 0) {
4938
+ return true;
4939
+ }
4940
+ const containers = args.containers ?? (args.container ? [args.container] : []);
4941
+ if (containers.length === 0) {
4942
+ return true;
4943
+ }
4944
+ const deletedElementIds = collectDeletedElementIds(containers);
4945
+ if (deletedElementIds.length === 0) {
4946
+ return true;
4947
+ }
4948
+ const propKeysToDelete = Object.entries(overridableProps.props).filter(([, prop]) => deletedElementIds.includes(prop.elementId)).map(([propKey]) => propKey);
4949
+ if (propKeysToDelete.length === 0) {
4950
+ return true;
4951
+ }
4952
+ const remainingProps = Object.fromEntries(
4953
+ Object.entries(overridableProps.props).filter(([propKey]) => !propKeysToDelete.includes(propKey))
4954
+ );
4955
+ let updatedGroups = overridableProps.groups;
4956
+ for (const propKey of propKeysToDelete) {
4957
+ updatedGroups = removePropFromAllGroups(updatedGroups, propKey);
4958
+ }
4959
+ (0, import_store78.__dispatch)(
4960
+ slice.actions.setOverridableProps({
4961
+ componentId: currentComponentId,
4962
+ overridableProps: {
4963
+ ...overridableProps,
4964
+ props: remainingProps,
4965
+ groups: updatedGroups
4966
+ }
4967
+ })
4968
+ );
4969
+ return true;
4970
+ });
4971
+ }
4972
+ function collectDeletedElementIds(containers) {
4973
+ const elementIds = containers.filter(Boolean).flatMap((container) => [container, ...(0, import_editor_elements20.getAllDescendants)(container)]).map((element) => element.model?.get?.("id") ?? element.id).filter((id2) => Boolean(id2));
4974
+ return elementIds;
4975
+ }
4976
+
4977
+ // src/sync/load-component-data-after-instance-added.ts
4978
+ var import_editor_v1_adapters10 = require("@elementor/editor-v1-adapters");
4979
+ function initLoadComponentDataAfterInstanceAdded() {
4980
+ (0, import_editor_v1_adapters10.registerDataHook)("after", "document/elements/paste", (_args, result) => {
4981
+ load(result);
4982
+ });
4983
+ (0, import_editor_v1_adapters10.registerDataHook)("after", "document/elements/import", (_args, result) => {
4984
+ load(result);
4985
+ });
4986
+ }
4987
+ function load(result) {
4988
+ const containers = Array.isArray(result) ? result : [result];
4989
+ loadComponentsAssets(containers.map((container) => container.model.toJSON()));
4990
+ }
4991
+
4992
+ // src/sync/regenerate-override-keys.ts
4993
+ var import_editor_elements21 = require("@elementor/editor-elements");
4994
+ var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
4995
+ var import_utils10 = require("@elementor/utils");
4996
+ function initRegenerateOverrideKeys() {
4997
+ (0, import_editor_v1_adapters11.registerDataHook)("after", "document/elements/duplicate", (_args, result) => {
4998
+ regenerateOverrideKeysForContainers(result);
4999
+ });
5000
+ (0, import_editor_v1_adapters11.registerDataHook)("after", "document/elements/paste", (_args, result) => {
5001
+ regenerateOverrideKeysForContainers(result);
5002
+ });
5003
+ (0, import_editor_v1_adapters11.registerDataHook)("after", "document/elements/import", (_args, result) => {
5004
+ regenerateOverrideKeysForContainers(result);
5005
+ });
5006
+ }
5007
+ function regenerateOverrideKeysForContainers(result) {
5008
+ const containers = Array.isArray(result) ? result : [result];
5009
+ containers.forEach((container) => {
5010
+ regenerateOverrideKeysRecursive(container.id);
5011
+ });
5012
+ }
5013
+ function regenerateOverrideKeysRecursive(elementId) {
5014
+ const container = (0, import_editor_elements21.getContainer)(elementId);
5015
+ if (!container) {
5016
+ return;
5017
+ }
5018
+ (0, import_editor_elements21.getAllDescendants)(container).forEach(regenerateOverrideKeys);
5019
+ }
5020
+ function regenerateOverrideKeys(element) {
5021
+ if (!isComponentInstance(element.model.toJSON())) {
5022
+ return;
5023
+ }
5024
+ const settings = element.settings?.toJSON() ?? {};
5025
+ if (!hasOverrides(settings)) {
5026
+ return;
5027
+ }
5028
+ const componentInstance = settings.component_instance;
5029
+ const overrides = componentInstance.value.overrides;
5030
+ const newOverrides = overrides.value.map((override) => {
5031
+ if (!componentInstanceOverridePropTypeUtil.isValid(override)) {
5032
+ return override;
5033
+ }
5034
+ return {
5035
+ ...override,
5036
+ value: {
5037
+ ...override.value,
5038
+ override_key: (0, import_utils10.generateUniqueId)("prop")
5039
+ }
5040
+ };
5041
+ });
5042
+ const newComponentInstance = {
5043
+ ...componentInstance,
5044
+ value: {
5045
+ ...componentInstance.value,
5046
+ overrides: {
5047
+ ...overrides,
5048
+ value: newOverrides
5049
+ }
5050
+ }
5051
+ };
5052
+ (0, import_editor_elements21.updateElementSettings)({
5053
+ id: element.id,
5054
+ props: { component_instance: newComponentInstance },
5055
+ withHistory: false
5056
+ });
5057
+ }
5058
+ function hasOverrides(settings) {
5059
+ if (!componentInstancePropTypeUtil.isValid(settings?.component_instance)) {
5060
+ return false;
5061
+ }
5062
+ const componentInstance = componentInstancePropTypeUtil.extract(settings?.component_instance);
5063
+ const overrides = componentInstance?.overrides;
5064
+ if (!componentInstanceOverridesPropTypeUtil.isValid(overrides)) {
5065
+ return false;
5066
+ }
5067
+ const overridesValue = overrides?.value;
5068
+ return !!overridesValue?.length;
5069
+ }
5070
+
5055
5071
  // src/init.ts
5056
5072
  function init() {
5057
5073
  import_editor_styles_repository2.stylesRepository.register(componentsStylesProvider);
@@ -5061,14 +5077,14 @@ function init() {
5061
5077
  COMPONENT_WIDGET_TYPE,
5062
5078
  (options) => createComponentType({ ...options, showLockedByModal: openEditModeDialog })
5063
5079
  );
5064
- (0, import_editor_v1_adapters11.registerDataHook)("dependency", "editor/documents/close", (args) => {
5080
+ (0, import_editor_v1_adapters12.registerDataHook)("dependency", "editor/documents/close", (args) => {
5065
5081
  const document = (0, import_editor_documents13.getV1CurrentDocument)();
5066
5082
  if (document.config.type === COMPONENT_DOCUMENT_TYPE) {
5067
5083
  args.mode = "autosave";
5068
5084
  }
5069
5085
  return true;
5070
5086
  });
5071
- (0, import_editor_v1_adapters11.registerDataHook)("after", "preview/drop", onElementDrop);
5087
+ (0, import_editor_v1_adapters12.registerDataHook)("after", "preview/drop", onElementDrop);
5072
5088
  window.elementorCommon.__beforeSave = beforeSave;
5073
5089
  (0, import_editor_elements_panel.injectTab)({
5074
5090
  id: "components",
@@ -5092,7 +5108,7 @@ function init() {
5092
5108
  id: "component-panel-header",
5093
5109
  component: ComponentPanelHeader
5094
5110
  });
5095
- (0, import_editor_v1_adapters11.registerDataHook)("after", "editor/documents/attach-preview", async () => {
5111
+ (0, import_editor_v1_adapters12.registerDataHook)("after", "editor/documents/attach-preview", async () => {
5096
5112
  const { id: id2, config } = (0, import_editor_documents13.getV1CurrentDocument)();
5097
5113
  if (id2) {
5098
5114
  removeComponentStyles(id2);
@@ -5123,6 +5139,7 @@ function init() {
5123
5139
  initMcp();
5124
5140
  initCircularNestingPrevention();
5125
5141
  initNonAtomicNestingPrevention();
5142
+ initLoadComponentDataAfterInstanceAdded();
5126
5143
  }
5127
5144
  // Annotate the CommonJS export names for ESM import in node:
5128
5145
  0 && (module.exports = {