@excalidraw/element 0.18.0-1b287a8ba → 0.18.0-6d75c4b34

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/dev/index.js CHANGED
@@ -3825,6 +3825,9 @@ var getTextWidth = (text, font) => {
3825
3825
  return width;
3826
3826
  };
3827
3827
  var getTextHeight = (text, fontSize, lineHeight) => {
3828
+ if (text.trim() === "") {
3829
+ return 0;
3830
+ }
3828
3831
  const lineCount = splitIntoLines(text).length;
3829
3832
  return getLineHeightInPx(fontSize, lineHeight) * lineCount;
3830
3833
  };
@@ -9826,55 +9829,6 @@ var getNewGroupIdsForDuplication = (groupIds, editingGroupId, mapper) => {
9826
9829
  }
9827
9830
  return copy;
9828
9831
  };
9829
- var getSelectedElementsByGroup = (selectedElements, elementsMap, appState) => {
9830
- const selectedGroupIds = getSelectedGroupIds(appState);
9831
- const unboundElements = selectedElements.filter(
9832
- (element) => !isBoundToContainer(element)
9833
- );
9834
- const groups = /* @__PURE__ */ new Map();
9835
- const elements = /* @__PURE__ */ new Map();
9836
- const addToElementsMap = (element) => {
9837
- const currentElementMembers = elements.get(element.id) || [];
9838
- const boundTextElement = getBoundTextElement(element, elementsMap);
9839
- if (boundTextElement) {
9840
- currentElementMembers.push(boundTextElement);
9841
- }
9842
- elements.set(element.id, [...currentElementMembers, element]);
9843
- };
9844
- const addToGroupsMap = (element, groupId) => {
9845
- const currentGroupMembers = groups.get(groupId) || [];
9846
- const boundTextElement = getBoundTextElement(element, elementsMap);
9847
- if (boundTextElement) {
9848
- currentGroupMembers.push(boundTextElement);
9849
- }
9850
- groups.set(groupId, [...currentGroupMembers, element]);
9851
- };
9852
- const handleSingleSelectedGroupCase = (element, selectedGroupId) => {
9853
- const indexOfSelectedGroupId = element.groupIds.indexOf(selectedGroupId, 0);
9854
- const nestedGroupCount = element.groupIds.slice(
9855
- 0,
9856
- indexOfSelectedGroupId
9857
- ).length;
9858
- return nestedGroupCount > 0 ? addToGroupsMap(element, element.groupIds[indexOfSelectedGroupId - 1]) : addToElementsMap(element);
9859
- };
9860
- const isAllInSameGroup = selectedElements.every(
9861
- (element) => isSelectedViaGroup(appState, element)
9862
- );
9863
- unboundElements.forEach((element) => {
9864
- const selectedGroupId = getSelectedGroupIdForElement(
9865
- element,
9866
- appState.selectedGroupIds
9867
- );
9868
- if (!selectedGroupId) {
9869
- addToElementsMap(element);
9870
- } else if (selectedGroupIds.length === 1 && isAllInSameGroup) {
9871
- handleSingleSelectedGroupCase(element, selectedGroupId);
9872
- } else {
9873
- addToGroupsMap(element, selectedGroupId);
9874
- }
9875
- });
9876
- return Array.from(groups.values()).concat(Array.from(elements.values()));
9877
- };
9878
9832
 
9879
9833
  // src/selection.ts
9880
9834
  var excludeElementsInFramesFromSelection = (selectedElements) => {
@@ -12791,11 +12745,11 @@ var getNormalizedDimensions = (element) => {
12791
12745
 
12792
12746
  // src/align.ts
12793
12747
  init_define_import_meta_env();
12794
- var alignElements = (selectedElements, alignment, scene, appState) => {
12795
- const groups = getSelectedElementsByGroup(
12748
+ var alignElements = (selectedElements, alignment, scene) => {
12749
+ const elementsMap = scene.getNonDeletedElementsMap();
12750
+ const groups = getMaximumGroups(
12796
12751
  selectedElements,
12797
- scene.getNonDeletedElementsMap(),
12798
- appState
12752
+ elementsMap
12799
12753
  );
12800
12754
  const selectionBoundingBox = getCommonBoundingBox(selectedElements);
12801
12755
  return groups.flatMap((group) => {
@@ -15734,14 +15688,10 @@ var ElementsDelta = class _ElementsDelta {
15734
15688
 
15735
15689
  // src/distribute.ts
15736
15690
  init_define_import_meta_env();
15737
- var distributeElements = (selectedElements, elementsMap, distribution, appState) => {
15691
+ var distributeElements = (selectedElements, elementsMap, distribution) => {
15738
15692
  const [start, mid, end, extent] = distribution.axis === "x" ? ["minX", "midX", "maxX", "width"] : ["minY", "midY", "maxY", "height"];
15739
15693
  const bounds = getCommonBoundingBox(selectedElements);
15740
- const groups = getSelectedElementsByGroup(
15741
- selectedElements,
15742
- elementsMap,
15743
- appState
15744
- ).map((group) => [group, getCommonBoundingBox(group)]).sort((a2, b2) => a2[1][mid] - b2[1][mid]);
15694
+ const groups = getMaximumGroups(selectedElements, elementsMap).map((group) => [group, getCommonBoundingBox(group)]).sort((a2, b2) => a2[1][mid] - b2[1][mid]);
15745
15695
  let span = 0;
15746
15696
  for (const group of groups) {
15747
15697
  span += group[1][extent];
@@ -19201,7 +19151,6 @@ export {
19201
19151
  getRootElements,
19202
19152
  getSceneVersion,
19203
19153
  getSelectedElements,
19204
- getSelectedElementsByGroup,
19205
19154
  getSelectedGroupForElement,
19206
19155
  getSelectedGroupIdForElement,
19207
19156
  getSelectedGroupIds,