@ixo/editor 2.16.1 → 2.16.3

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.
@@ -16744,7 +16744,7 @@ var DomainCreatorSignTemplateView = ({ editor, block }) => {
16744
16744
  };
16745
16745
 
16746
16746
  // src/mantine/blocks/domainCreatorSign/flow/FlowView.tsx
16747
- import React185, { useCallback as useCallback47, useMemo as useMemo56, useEffect as useEffect47, useState as useState65 } from "react";
16747
+ import React185, { useCallback as useCallback47, useMemo as useMemo56 } from "react";
16748
16748
  import { ActionIcon as ActionIcon27, Badge as Badge28, Group as Group59, Stack as Stack122, Text as Text96, Tooltip as Tooltip18 } from "@mantine/core";
16749
16749
  import { IconChevronRight as IconChevronRight8 } from "@tabler/icons-react";
16750
16750
 
@@ -16752,19 +16752,6 @@ import { IconChevronRight as IconChevronRight8 } from "@tabler/icons-react";
16752
16752
  import React184, { useCallback as useCallback46, useState as useState64 } from "react";
16753
16753
  import { Alert as Alert24, Button as Button32, CloseButton as CloseButton13, Group as Group58, Loader as Loader24, Stack as Stack121, Text as Text95, Title as Title16 } from "@mantine/core";
16754
16754
  import { IconAlertCircle as IconAlertCircle11, IconCheck as IconCheck5, IconSignature } from "@tabler/icons-react";
16755
- function getDomainCardDataFromViewer(editor) {
16756
- const allBlocks = editor.document;
16757
- for (const docBlock of allBlocks) {
16758
- if (docBlock.type === "domainCardViewer") {
16759
- try {
16760
- return JSON.parse(docBlock.props.domainCardData || "{}");
16761
- } catch {
16762
- return null;
16763
- }
16764
- }
16765
- }
16766
- return null;
16767
- }
16768
16755
  var SignPanel = ({ editor, block, onComplete, onError }) => {
16769
16756
  const { closePanel } = usePanelStore();
16770
16757
  const { handlers } = useBlocknoteContext();
@@ -16772,8 +16759,12 @@ var SignPanel = ({ editor, block, onComplete, onError }) => {
16772
16759
  const [error, setError] = useState64(block.props.errorMessage || null);
16773
16760
  const [createdEntityDid, setCreatedEntityDid] = useState64(block.props.entityDid || null);
16774
16761
  const getDomainCardData = useCallback46(() => {
16775
- return getDomainCardDataFromViewer(editor);
16776
- }, [editor]);
16762
+ try {
16763
+ return JSON.parse(block.props.domainCardData || "{}");
16764
+ } catch {
16765
+ return null;
16766
+ }
16767
+ }, [block.props.domainCardData]);
16777
16768
  const processSignAndCreate = useCallback46(async () => {
16778
16769
  if (!handlers) {
16779
16770
  throw new Error("Handlers not available");
@@ -16907,62 +16898,8 @@ var SignPanel = ({ editor, block, onComplete, onError }) => {
16907
16898
 
16908
16899
  // src/mantine/blocks/domainCreatorSign/flow/FlowView.tsx
16909
16900
  var DOMAIN_CREATOR_SIGN_FLOW_PANEL_ID = "domain-creator-sign-flow-panel";
16910
- function getDomainCardViewerData(editor) {
16911
- const allBlocks = editor.document;
16912
- for (const docBlock of allBlocks) {
16913
- if (docBlock.type === "domainCardViewer") {
16914
- return {
16915
- domainCardData: docBlock.props.domainCardData || "{}",
16916
- isApproved: docBlock.props.status === "approved"
16917
- };
16918
- }
16919
- }
16920
- return { domainCardData: "{}", isApproved: false };
16921
- }
16922
- function isDomainCardDataReady(domainCardData) {
16923
- if (!domainCardData || domainCardData === "{}") return false;
16924
- try {
16925
- const parsed = JSON.parse(domainCardData);
16926
- return Boolean(parsed && typeof parsed === "object" && parsed.name);
16927
- } catch {
16928
- return false;
16929
- }
16930
- }
16931
16901
  var DomainCreatorSignFlowView = ({ editor, block }) => {
16932
16902
  const status = block.props.status || "pending";
16933
- const [viewerData, setViewerData] = useState65(() => getDomainCardViewerData(editor));
16934
- useEffect47(() => {
16935
- const updateViewerData = () => {
16936
- const newData = getDomainCardViewerData(editor);
16937
- setViewerData((prev) => {
16938
- if (prev.domainCardData !== newData.domainCardData || prev.isApproved !== newData.isApproved) {
16939
- return newData;
16940
- }
16941
- return prev;
16942
- });
16943
- };
16944
- updateViewerData();
16945
- return editor.onChange(updateViewerData);
16946
- }, [editor]);
16947
- const { domainCardData, isApproved: isViewerApproved } = viewerData;
16948
- const isDataReady = isDomainCardDataReady(domainCardData) && isViewerApproved;
16949
- useEffect47(() => {
16950
- if (status === "pending" && isDataReady) {
16951
- editor.updateBlock(block, {
16952
- props: {
16953
- ...block.props,
16954
- status: "ready"
16955
- }
16956
- });
16957
- } else if (status === "ready" && !isDataReady) {
16958
- editor.updateBlock(block, {
16959
- props: {
16960
- ...block.props,
16961
- status: "pending"
16962
- }
16963
- });
16964
- }
16965
- }, [isDataReady, status, editor, block]);
16966
16903
  const handleComplete = useCallback47(
16967
16904
  (result) => {
16968
16905
  editor.updateBlock(block, {
@@ -16992,7 +16929,7 @@ var DomainCreatorSignFlowView = ({ editor, block }) => {
16992
16929
  const panelContent = useMemo56(() => /* @__PURE__ */ React185.createElement(SignPanel, { editor, block, onComplete: handleComplete, onError: handleError }), [editor, block, handleComplete, handleError]);
16993
16930
  const { open } = usePanel(panelId, panelContent);
16994
16931
  const handleOpen = () => {
16995
- if (isDataReady || status === "completed" || status === "error") {
16932
+ if (status === "ready" || status === "completed" || status === "error") {
16996
16933
  open();
16997
16934
  }
16998
16935
  };
@@ -17013,7 +16950,7 @@ var DomainCreatorSignFlowView = ({ editor, block }) => {
17013
16950
  }
17014
16951
  };
17015
16952
  const badgeProps = getBadgeProps();
17016
- const isClickable = isDataReady || status === "completed" || status === "error";
16953
+ const isClickable = status === "ready" || status === "completed" || status === "error";
17017
16954
  const getDescriptionText = () => {
17018
16955
  switch (status) {
17019
16956
  case "completed":
@@ -17046,10 +16983,11 @@ var DomainCreatorSignBlockSpec = createReactBlockSpec16(
17046
16983
  title: { default: "" },
17047
16984
  description: { default: "" },
17048
16985
  icon: { default: "feather" },
16986
+ // JSON string of credential subject data (pushed from domainCardViewer)
16987
+ domainCardData: { default: "{}" },
17049
16988
  // Entity type from protocol selector or oracle
17050
16989
  entityType: { default: "" },
17051
16990
  // Status: pending | ready | signing | uploading | creating | completed | error
17052
- // NOTE: This block reads domainCardData from the domainCardViewer block
17053
16991
  status: { default: "pending" },
17054
16992
  // Created entity DID (after success)
17055
16993
  entityDid: { default: "" },
@@ -17084,14 +17022,14 @@ import React189, { useCallback as useCallback48 } from "react";
17084
17022
  import { Paper as Paper19, CloseButton as CloseButton14, Title as Title17 } from "@mantine/core";
17085
17023
 
17086
17024
  // src/mantine/blocks/domainCardViewer/template/GeneralTab.tsx
17087
- import React188, { useEffect as useEffect48, useState as useState66 } from "react";
17025
+ import React188, { useEffect as useEffect47, useState as useState65 } from "react";
17088
17026
  var GeneralTab13 = ({ title, description, icon, onTitleChange, onDescriptionChange, onIconChange }) => {
17089
- const [localTitle, setLocalTitle] = useState66(title || "");
17090
- const [localDescription, setLocalDescription] = useState66(description || "");
17091
- const [localIcon, setLocalIcon] = useState66(icon || "dots-circle");
17092
- useEffect48(() => setLocalTitle(title || ""), [title]);
17093
- useEffect48(() => setLocalDescription(description || ""), [description]);
17094
- useEffect48(() => setLocalIcon(icon || "dots-circle"), [icon]);
17027
+ const [localTitle, setLocalTitle] = useState65(title || "");
17028
+ const [localDescription, setLocalDescription] = useState65(description || "");
17029
+ const [localIcon, setLocalIcon] = useState65(icon || "dots-circle");
17030
+ useEffect47(() => setLocalTitle(title || ""), [title]);
17031
+ useEffect47(() => setLocalDescription(description || ""), [description]);
17032
+ useEffect47(() => setLocalIcon(icon || "dots-circle"), [icon]);
17095
17033
  return /* @__PURE__ */ React188.createElement(BaseSection, null, /* @__PURE__ */ React188.createElement(
17096
17034
  BaseTextInput,
17097
17035
  {
@@ -17207,7 +17145,7 @@ var DomainCardViewerTemplateView = ({ editor, block }) => {
17207
17145
  };
17208
17146
 
17209
17147
  // src/mantine/blocks/domainCardViewer/flow/FlowView.tsx
17210
- import React192, { useMemo as useMemo59, useCallback as useCallback49, useEffect as useEffect49 } from "react";
17148
+ import React192, { useMemo as useMemo59, useCallback as useCallback49, useEffect as useEffect48, useRef as useRef11 } from "react";
17211
17149
  import { ActionIcon as ActionIcon28, Badge as Badge30, Button as Button34, Group as Group61, Stack as Stack125, Text as Text99, Tooltip as Tooltip19 } from "@mantine/core";
17212
17150
  import { IconChevronRight as IconChevronRight9, IconLoader, IconTestPipe, IconTrash as IconTrash5 } from "@tabler/icons-react";
17213
17151
 
@@ -17518,12 +17456,45 @@ function isPreviewDataReady(domainPreviewData) {
17518
17456
  return false;
17519
17457
  }
17520
17458
  }
17459
+ function isDomainCardDataReady(domainCardData) {
17460
+ if (!domainCardData || domainCardData === "{}") return false;
17461
+ try {
17462
+ const parsed = JSON.parse(domainCardData);
17463
+ return Boolean(parsed && typeof parsed === "object" && parsed.name);
17464
+ } catch {
17465
+ return false;
17466
+ }
17467
+ }
17468
+ function syncToDomainCreatorSignBlocks(editor, domainCardData, isApproved) {
17469
+ const allBlocks = editor.document;
17470
+ for (const docBlock of allBlocks) {
17471
+ if (docBlock.type === "domainCreatorSign") {
17472
+ const currentStatus = docBlock.props.status;
17473
+ if (currentStatus === "completed" || currentStatus === "signing" || currentStatus === "uploading" || currentStatus === "creating") {
17474
+ continue;
17475
+ }
17476
+ const newStatus = isApproved && isDomainCardDataReady(domainCardData) ? "ready" : "pending";
17477
+ if (docBlock.props.domainCardData !== domainCardData || docBlock.props.status !== newStatus) {
17478
+ editor.updateBlock(docBlock, {
17479
+ props: {
17480
+ ...docBlock.props,
17481
+ domainCardData,
17482
+ status: newStatus
17483
+ }
17484
+ });
17485
+ }
17486
+ }
17487
+ }
17488
+ }
17521
17489
  var DomainCardViewerFlowView = ({ editor, block }) => {
17522
17490
  const status = block.props.status || "pending";
17523
17491
  const domainPreviewData = block.props.domainPreviewData || "{}";
17492
+ const domainCardData = block.props.domainCardData || "{}";
17524
17493
  const isDataReady = isPreviewDataReady(domainPreviewData);
17525
- console.log("block.props", block.props);
17526
- useEffect49(() => {
17494
+ const isApproved = status === "approved";
17495
+ const prevDomainCardDataRef = useRef11(domainCardData);
17496
+ const prevStatusRef = useRef11(status);
17497
+ useEffect48(() => {
17527
17498
  if (status === "pending" && isDataReady) {
17528
17499
  editor.updateBlock(block, {
17529
17500
  props: {
@@ -17533,6 +17504,15 @@ var DomainCardViewerFlowView = ({ editor, block }) => {
17533
17504
  });
17534
17505
  }
17535
17506
  }, [isDataReady, status, editor, block]);
17507
+ useEffect48(() => {
17508
+ const dataChanged = prevDomainCardDataRef.current !== domainCardData;
17509
+ const statusChanged = prevStatusRef.current !== status;
17510
+ if (dataChanged || statusChanged) {
17511
+ syncToDomainCreatorSignBlocks(editor, domainCardData, isApproved);
17512
+ prevDomainCardDataRef.current = domainCardData;
17513
+ prevStatusRef.current = status;
17514
+ }
17515
+ }, [domainCardData, status, isApproved, editor]);
17536
17516
  const handleApprove = useCallback49(() => {
17537
17517
  editor.updateBlock(block, {
17538
17518
  props: {
@@ -17834,7 +17814,7 @@ blockRegistry.register({
17834
17814
  });
17835
17815
 
17836
17816
  // src/mantine/blocks/hooks/useBlockDependencies.ts
17837
- import { useMemo as useMemo60, useEffect as useEffect50, useState as useState67, useCallback as useCallback50 } from "react";
17817
+ import { useMemo as useMemo60, useEffect as useEffect49, useState as useState66, useCallback as useCallback50 } from "react";
17838
17818
 
17839
17819
  // src/mantine/blocks/hooks/useDependsOn.ts
17840
17820
  import { useMemo as useMemo61 } from "react";
@@ -18190,6 +18170,7 @@ var getExtraSlashMenuItems = (editor) => {
18190
18170
  title: "",
18191
18171
  description: "",
18192
18172
  icon: "feather",
18173
+ domainCardData: "{}",
18193
18174
  entityType: "",
18194
18175
  status: "pending",
18195
18176
  entityDid: "",
@@ -18312,14 +18293,14 @@ import { useCreateBlockNote as useCreateBlockNote2 } from "@blocknote/react";
18312
18293
  import { BlockNoteSchema as BlockNoteSchema2, defaultBlockSpecs as defaultBlockSpecs2, defaultInlineContentSpecs as defaultInlineContentSpecs2, defaultStyleSpecs as defaultStyleSpecs2 } from "@blocknote/core";
18313
18294
 
18314
18295
  // src/core/hooks/useMatrixProvider.ts
18315
- import { useEffect as useEffect51, useState as useState68, useRef as useRef11, useCallback as useCallback51, useMemo as useMemo62 } from "react";
18296
+ import { useEffect as useEffect50, useState as useState67, useRef as useRef12, useCallback as useCallback51, useMemo as useMemo62 } from "react";
18316
18297
  import { MatrixProvider } from "@ixo/matrix-crdt";
18317
18298
  function useMatrixProvider({ matrixClient, roomId, yDoc }) {
18318
- const [matrixProvider, setProvider] = useState68(null);
18319
- const [status, setStatus] = useState68("disconnected");
18320
- const isMountedRef = useRef11(true);
18321
- const providerRef = useRef11(null);
18322
- const retryTimeoutRef = useRef11(null);
18299
+ const [matrixProvider, setProvider] = useState67(null);
18300
+ const [status, setStatus] = useState67("disconnected");
18301
+ const isMountedRef = useRef12(true);
18302
+ const providerRef = useRef12(null);
18303
+ const retryTimeoutRef = useRef12(null);
18323
18304
  const providerOptions = useMemo62(
18324
18305
  () => ({
18325
18306
  translator: {
@@ -18381,7 +18362,7 @@ function useMatrixProvider({ matrixClient, roomId, yDoc }) {
18381
18362
  }
18382
18363
  }
18383
18364
  }, [matrixClient, providerOptions, handleDocumentAvailable, handleDocumentUnavailable, handleCanWriteChanged]);
18384
- useEffect51(() => {
18365
+ useEffect50(() => {
18385
18366
  isMountedRef.current = true;
18386
18367
  initProvider();
18387
18368
  return () => {
@@ -18398,7 +18379,7 @@ function useMatrixProvider({ matrixClient, roomId, yDoc }) {
18398
18379
  setStatus("disconnected");
18399
18380
  };
18400
18381
  }, [initProvider]);
18401
- useEffect51(() => {
18382
+ useEffect50(() => {
18402
18383
  return () => {
18403
18384
  isMountedRef.current = false;
18404
18385
  };
@@ -18417,7 +18398,7 @@ function useCollaborativeYDoc(_options) {
18417
18398
  }
18418
18399
 
18419
18400
  // src/mantine/hooks/useCollaborativeIxoEditor.ts
18420
- import { useMemo as useMemo64, useEffect as useEffect52 } from "react";
18401
+ import { useMemo as useMemo64, useEffect as useEffect51 } from "react";
18421
18402
 
18422
18403
  // src/core/lib/matrixMetadata.ts
18423
18404
  var COVER_IMAGE_EVENT_TYPE = "ixo.page.cover_image";
@@ -18602,7 +18583,7 @@ function useCreateCollaborativeIxoEditor(options) {
18602
18583
  roomId: options.roomId
18603
18584
  });
18604
18585
  const metadataManager = useMemo64(() => new MatrixMetadataManager(matrixClient, options.roomId), [matrixClient, options.roomId]);
18605
- useEffect52(() => {
18586
+ useEffect51(() => {
18606
18587
  return () => {
18607
18588
  metadataManager.dispose();
18608
18589
  };
@@ -18823,12 +18804,12 @@ function useCreateCollaborativeIxoEditor(options) {
18823
18804
  return void 0;
18824
18805
  };
18825
18806
  }
18826
- useEffect52(() => {
18807
+ useEffect51(() => {
18827
18808
  if (ixoEditor) {
18828
18809
  ixoEditor.isEditable = editable;
18829
18810
  }
18830
18811
  }, [ixoEditor, editable]);
18831
- useEffect52(() => {
18812
+ useEffect51(() => {
18832
18813
  if (connectionStatus !== "connected") {
18833
18814
  return;
18834
18815
  }
@@ -18861,7 +18842,7 @@ function useCreateCollaborativeIxoEditor(options) {
18861
18842
  }
18862
18843
 
18863
18844
  // src/mantine/components/CoverImage.tsx
18864
- import React196, { useState as useState69, useRef as useRef12, useEffect as useEffect53 } from "react";
18845
+ import React196, { useState as useState68, useRef as useRef13, useEffect as useEffect52 } from "react";
18865
18846
  import { Box as Box35, Group as Group62 } from "@mantine/core";
18866
18847
 
18867
18848
  // src/core/lib/imageTransform.ts
@@ -19021,13 +19002,13 @@ function CoverImageButton({ isActive = false, children, onClick, style }) {
19021
19002
  // src/mantine/components/CoverImage.tsx
19022
19003
  function CoverImage({ coverImageUrl, logoUrl }) {
19023
19004
  const { editor, handlers, editable } = useBlocknoteContext();
19024
- const [isHovering, setIsHovering] = useState69(false);
19025
- const [isRepositioning, setIsRepositioning] = useState69(false);
19026
- const [coverPosition, setCoverPosition] = useState69(50);
19027
- const coverFileInputRef = useRef12(null);
19028
- const logoFileInputRef = useRef12(null);
19029
- const [metadata, setMetadata] = useState69(() => editor?.getPageMetadata?.() || null);
19030
- useEffect53(() => {
19005
+ const [isHovering, setIsHovering] = useState68(false);
19006
+ const [isRepositioning, setIsRepositioning] = useState68(false);
19007
+ const [coverPosition, setCoverPosition] = useState68(50);
19008
+ const coverFileInputRef = useRef13(null);
19009
+ const logoFileInputRef = useRef13(null);
19010
+ const [metadata, setMetadata] = useState68(() => editor?.getPageMetadata?.() || null);
19011
+ useEffect52(() => {
19031
19012
  if (!editor?._metadataManager) {
19032
19013
  return;
19033
19014
  }
@@ -19314,7 +19295,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
19314
19295
  }
19315
19296
 
19316
19297
  // src/mantine/components/PageHeader.tsx
19317
- import React197, { useState as useState70, useRef as useRef13, useEffect as useEffect54 } from "react";
19298
+ import React197, { useState as useState69, useRef as useRef14, useEffect as useEffect53 } from "react";
19318
19299
  function PageHeader({
19319
19300
  title = "New page",
19320
19301
  icon,
@@ -19325,9 +19306,9 @@ function PageHeader({
19325
19306
  isFavorited = false,
19326
19307
  menuItems = []
19327
19308
  }) {
19328
- const [isMenuOpen, setIsMenuOpen] = useState70(false);
19329
- const menuRef = useRef13(null);
19330
- useEffect54(() => {
19309
+ const [isMenuOpen, setIsMenuOpen] = useState69(false);
19310
+ const menuRef = useRef14(null);
19311
+ useEffect53(() => {
19331
19312
  function handleClickOutside(event) {
19332
19313
  if (menuRef.current && !menuRef.current.contains(event.target)) {
19333
19314
  setIsMenuOpen(false);
@@ -19507,7 +19488,7 @@ var styles = {
19507
19488
  };
19508
19489
 
19509
19490
  // src/mantine/components/ExternalDropZone.tsx
19510
- import React198, { useCallback as useCallback52, useEffect as useEffect55, useRef as useRef14, useState as useState71 } from "react";
19491
+ import React198, { useCallback as useCallback52, useEffect as useEffect54, useRef as useRef15, useState as useState70 } from "react";
19511
19492
  import { Box as Box36 } from "@mantine/core";
19512
19493
  var SCROLL_ZONE_SIZE = 80;
19513
19494
  var SCROLL_SPEED = 12;
@@ -19520,14 +19501,14 @@ var ExternalDropZone = ({
19520
19501
  onPlacementCancel,
19521
19502
  children
19522
19503
  }) => {
19523
- const containerRef = useRef14(null);
19524
- const [isValidDrag, setIsValidDrag] = useState71(false);
19525
- const [isHoveringInPlacementMode, setIsHoveringInPlacementMode] = useState71(false);
19526
- const [indicatorStyle, setIndicatorStyle] = useState71({});
19527
- const dropPositionRef = useRef14(null);
19528
- const scrollAnimationRef = useRef14(null);
19529
- const scrollDirectionRef = useRef14(null);
19530
- const scrollContainerRef = useRef14(null);
19504
+ const containerRef = useRef15(null);
19505
+ const [isValidDrag, setIsValidDrag] = useState70(false);
19506
+ const [isHoveringInPlacementMode, setIsHoveringInPlacementMode] = useState70(false);
19507
+ const [indicatorStyle, setIndicatorStyle] = useState70({});
19508
+ const dropPositionRef = useRef15(null);
19509
+ const scrollAnimationRef = useRef15(null);
19510
+ const scrollDirectionRef = useRef15(null);
19511
+ const scrollContainerRef = useRef15(null);
19531
19512
  const getBlockElements = useCallback52(() => {
19532
19513
  if (!containerRef.current) return [];
19533
19514
  const blocks = containerRef.current.querySelectorAll('[data-node-type="blockContainer"]');
@@ -19683,7 +19664,7 @@ var ExternalDropZone = ({
19683
19664
  },
19684
19665
  [onDrop, stopAutoScroll]
19685
19666
  );
19686
- useEffect55(() => {
19667
+ useEffect54(() => {
19687
19668
  const handleGlobalDragEnd = () => {
19688
19669
  setIsValidDrag(false);
19689
19670
  dropPositionRef.current = null;
@@ -19741,7 +19722,7 @@ var ExternalDropZone = ({
19741
19722
  },
19742
19723
  [getScrollContainer]
19743
19724
  );
19744
- useEffect55(() => {
19725
+ useEffect54(() => {
19745
19726
  if (!isPlacementMode) return;
19746
19727
  const handleKeyDown = (e) => {
19747
19728
  if (e.key === "Escape") {
@@ -19764,13 +19745,13 @@ var ExternalDropZone = ({
19764
19745
  document.removeEventListener("click", handleGlobalClick, true);
19765
19746
  };
19766
19747
  }, [isPlacementMode, onPlacementCancel]);
19767
- useEffect55(() => {
19748
+ useEffect54(() => {
19768
19749
  if (!isPlacementMode) {
19769
19750
  setIsHoveringInPlacementMode(false);
19770
19751
  dropPositionRef.current = null;
19771
19752
  }
19772
19753
  }, [isPlacementMode]);
19773
- useEffect55(() => {
19754
+ useEffect54(() => {
19774
19755
  const isActive = isValidDrag || isPlacementMode && isHoveringInPlacementMode;
19775
19756
  if (isActive) {
19776
19757
  document.body.classList.add("external-artifact-drag-active");
@@ -19781,7 +19762,7 @@ var ExternalDropZone = ({
19781
19762
  document.body.classList.remove("external-artifact-drag-active");
19782
19763
  };
19783
19764
  }, [isValidDrag, isPlacementMode, isHoveringInPlacementMode]);
19784
- useEffect55(() => {
19765
+ useEffect54(() => {
19785
19766
  return () => {
19786
19767
  if (scrollAnimationRef.current) {
19787
19768
  cancelAnimationFrame(scrollAnimationRef.current);
@@ -20045,7 +20026,7 @@ function IxoEditor({
20045
20026
  }
20046
20027
 
20047
20028
  // src/mantine/components/EntitySigningSetup.tsx
20048
- import React201, { useState as useState72 } from "react";
20029
+ import React201, { useState as useState71 } from "react";
20049
20030
  import { Modal as Modal3, Stack as Stack126, Text as Text100, TextInput as TextInput6, Button as Button36, Alert as Alert26, Group as Group63 } from "@mantine/core";
20050
20031
  import { IconAlertCircle as IconAlertCircle13, IconCheck as IconCheck7, IconKey as IconKey2 } from "@tabler/icons-react";
20051
20032
  var EntitySigningSetup = ({
@@ -20055,11 +20036,11 @@ var EntitySigningSetup = ({
20055
20036
  entityName,
20056
20037
  onSetup
20057
20038
  }) => {
20058
- const [pin, setPin] = useState72("");
20059
- const [confirmPin, setConfirmPin] = useState72("");
20060
- const [loading, setLoading] = useState72(false);
20061
- const [error, setError] = useState72(null);
20062
- const [success, setSuccess] = useState72(false);
20039
+ const [pin, setPin] = useState71("");
20040
+ const [confirmPin, setConfirmPin] = useState71("");
20041
+ const [loading, setLoading] = useState71(false);
20042
+ const [error, setError] = useState71(null);
20043
+ const [success, setSuccess] = useState71(false);
20063
20044
  const handleSetup = async () => {
20064
20045
  if (pin.length < 4) {
20065
20046
  setError("PIN must be at least 4 characters");
@@ -20141,7 +20122,7 @@ var EntitySigningSetup = ({
20141
20122
  };
20142
20123
 
20143
20124
  // src/mantine/components/FlowPermissionsPanel.tsx
20144
- import React202, { useState as useState73, useEffect as useEffect56, useMemo as useMemo65 } from "react";
20125
+ import React202, { useState as useState72, useEffect as useEffect55, useMemo as useMemo65 } from "react";
20145
20126
  import { Stack as Stack127, Text as Text101, Paper as Paper21, Group as Group64, Badge as Badge31, Button as Button37, ActionIcon as ActionIcon29, Loader as Loader26, Alert as Alert27, Divider as Divider12 } from "@mantine/core";
20146
20127
  import { IconPlus as IconPlus5, IconTrash as IconTrash6, IconShieldCheck as IconShieldCheck2, IconUser as IconUser4, IconRobot as IconRobot3, IconBuilding } from "@tabler/icons-react";
20147
20128
  var FlowPermissionsPanel = ({
@@ -20152,11 +20133,11 @@ var FlowPermissionsPanel = ({
20152
20133
  onRevokePermission,
20153
20134
  getUserDisplayName
20154
20135
  }) => {
20155
- const [delegations, setDelegations] = useState73([]);
20156
- const [loading, setLoading] = useState73(true);
20157
- const [revoking, setRevoking] = useState73(null);
20136
+ const [delegations, setDelegations] = useState72([]);
20137
+ const [loading, setLoading] = useState72(true);
20138
+ const [revoking, setRevoking] = useState72(null);
20158
20139
  const rootCapability = useMemo65(() => editor.getRootCapability?.(), [editor]);
20159
- useEffect56(() => {
20140
+ useEffect55(() => {
20160
20141
  const loadDelegations = async () => {
20161
20142
  setLoading(true);
20162
20143
  const allDelegations = editor.getAllDelegations?.() || [];
@@ -20240,7 +20221,7 @@ var FlowPermissionsPanel = ({
20240
20221
  };
20241
20222
 
20242
20223
  // src/mantine/components/GrantPermissionModal.tsx
20243
- import React203, { useState as useState74, useCallback as useCallback53 } from "react";
20224
+ import React203, { useState as useState73, useCallback as useCallback53 } from "react";
20244
20225
  import {
20245
20226
  Modal as Modal4,
20246
20227
  Stack as Stack128,
@@ -20272,20 +20253,20 @@ var GrantPermissionModal = ({
20272
20253
  const singleBlockMode = !!targetBlockId || blocks.length === 1;
20273
20254
  const fixedBlockId = targetBlockId || (blocks.length === 1 ? blocks[0].id : null);
20274
20255
  const fixedBlock = fixedBlockId ? blocks.find((b) => b.id === fixedBlockId) || blocks[0] : null;
20275
- const [recipientType, setRecipientType] = useState74("user");
20276
- const [searchQuery, setSearchQuery] = useState74("");
20277
- const [searchResults, setSearchResults] = useState74([]);
20278
- const [searching, setSearching] = useState74(false);
20279
- const [selectedRecipient, setSelectedRecipient] = useState74(null);
20280
- const [manualDid, setManualDid] = useState74("");
20281
- const [scopeType, setScopeType] = useState74("full");
20282
- const [selectedBlocks, setSelectedBlocks] = useState74([]);
20283
- const [expirationEnabled, setExpirationEnabled] = useState74(false);
20284
- const [expirationDays, setExpirationDays] = useState74(30);
20285
- const [canDelegate, setCanDelegate] = useState74(false);
20286
- const [pin, setPin] = useState74("");
20287
- const [loading, setLoading] = useState74(false);
20288
- const [error, setError] = useState74(null);
20256
+ const [recipientType, setRecipientType] = useState73("user");
20257
+ const [searchQuery, setSearchQuery] = useState73("");
20258
+ const [searchResults, setSearchResults] = useState73([]);
20259
+ const [searching, setSearching] = useState73(false);
20260
+ const [selectedRecipient, setSelectedRecipient] = useState73(null);
20261
+ const [manualDid, setManualDid] = useState73("");
20262
+ const [scopeType, setScopeType] = useState73("full");
20263
+ const [selectedBlocks, setSelectedBlocks] = useState73([]);
20264
+ const [expirationEnabled, setExpirationEnabled] = useState73(false);
20265
+ const [expirationDays, setExpirationDays] = useState73(30);
20266
+ const [canDelegate, setCanDelegate] = useState73(false);
20267
+ const [pin, setPin] = useState73("");
20268
+ const [loading, setLoading] = useState73(false);
20269
+ const [error, setError] = useState73(null);
20289
20270
  const handleSearch = useCallback53(async () => {
20290
20271
  if (searchQuery.length < 2) return;
20291
20272
  setSearching(true);
@@ -20573,4 +20554,4 @@ export {
20573
20554
  ixoGraphQLClient,
20574
20555
  getEntity
20575
20556
  };
20576
- //# sourceMappingURL=chunk-52ED245Y.mjs.map
20557
+ //# sourceMappingURL=chunk-3A47Y7LN.mjs.map