@ixo/editor 2.16.2 → 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,67 +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
- const unsubscribe = editor.onChange?.(updateViewerData);
16946
- const pollInterval = setInterval(updateViewerData, 1e3);
16947
- return () => {
16948
- unsubscribe?.();
16949
- clearInterval(pollInterval);
16950
- };
16951
- }, [editor]);
16952
- const { domainCardData, isApproved: isViewerApproved } = viewerData;
16953
- const isDataReady = isDomainCardDataReady(domainCardData) && isViewerApproved;
16954
- useEffect47(() => {
16955
- if (status === "pending" && isDataReady) {
16956
- editor.updateBlock(block, {
16957
- props: {
16958
- ...block.props,
16959
- status: "ready"
16960
- }
16961
- });
16962
- } else if (status === "ready" && !isDataReady) {
16963
- editor.updateBlock(block, {
16964
- props: {
16965
- ...block.props,
16966
- status: "pending"
16967
- }
16968
- });
16969
- }
16970
- }, [isDataReady, status, editor, block]);
16971
16903
  const handleComplete = useCallback47(
16972
16904
  (result) => {
16973
16905
  editor.updateBlock(block, {
@@ -16997,7 +16929,7 @@ var DomainCreatorSignFlowView = ({ editor, block }) => {
16997
16929
  const panelContent = useMemo56(() => /* @__PURE__ */ React185.createElement(SignPanel, { editor, block, onComplete: handleComplete, onError: handleError }), [editor, block, handleComplete, handleError]);
16998
16930
  const { open } = usePanel(panelId, panelContent);
16999
16931
  const handleOpen = () => {
17000
- if (isDataReady || status === "completed" || status === "error") {
16932
+ if (status === "ready" || status === "completed" || status === "error") {
17001
16933
  open();
17002
16934
  }
17003
16935
  };
@@ -17018,7 +16950,7 @@ var DomainCreatorSignFlowView = ({ editor, block }) => {
17018
16950
  }
17019
16951
  };
17020
16952
  const badgeProps = getBadgeProps();
17021
- const isClickable = isDataReady || status === "completed" || status === "error";
16953
+ const isClickable = status === "ready" || status === "completed" || status === "error";
17022
16954
  const getDescriptionText = () => {
17023
16955
  switch (status) {
17024
16956
  case "completed":
@@ -17051,10 +16983,11 @@ var DomainCreatorSignBlockSpec = createReactBlockSpec16(
17051
16983
  title: { default: "" },
17052
16984
  description: { default: "" },
17053
16985
  icon: { default: "feather" },
16986
+ // JSON string of credential subject data (pushed from domainCardViewer)
16987
+ domainCardData: { default: "{}" },
17054
16988
  // Entity type from protocol selector or oracle
17055
16989
  entityType: { default: "" },
17056
16990
  // Status: pending | ready | signing | uploading | creating | completed | error
17057
- // NOTE: This block reads domainCardData from the domainCardViewer block
17058
16991
  status: { default: "pending" },
17059
16992
  // Created entity DID (after success)
17060
16993
  entityDid: { default: "" },
@@ -17089,14 +17022,14 @@ import React189, { useCallback as useCallback48 } from "react";
17089
17022
  import { Paper as Paper19, CloseButton as CloseButton14, Title as Title17 } from "@mantine/core";
17090
17023
 
17091
17024
  // src/mantine/blocks/domainCardViewer/template/GeneralTab.tsx
17092
- import React188, { useEffect as useEffect48, useState as useState66 } from "react";
17025
+ import React188, { useEffect as useEffect47, useState as useState65 } from "react";
17093
17026
  var GeneralTab13 = ({ title, description, icon, onTitleChange, onDescriptionChange, onIconChange }) => {
17094
- const [localTitle, setLocalTitle] = useState66(title || "");
17095
- const [localDescription, setLocalDescription] = useState66(description || "");
17096
- const [localIcon, setLocalIcon] = useState66(icon || "dots-circle");
17097
- useEffect48(() => setLocalTitle(title || ""), [title]);
17098
- useEffect48(() => setLocalDescription(description || ""), [description]);
17099
- 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]);
17100
17033
  return /* @__PURE__ */ React188.createElement(BaseSection, null, /* @__PURE__ */ React188.createElement(
17101
17034
  BaseTextInput,
17102
17035
  {
@@ -17212,7 +17145,7 @@ var DomainCardViewerTemplateView = ({ editor, block }) => {
17212
17145
  };
17213
17146
 
17214
17147
  // src/mantine/blocks/domainCardViewer/flow/FlowView.tsx
17215
- 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";
17216
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";
17217
17150
  import { IconChevronRight as IconChevronRight9, IconLoader, IconTestPipe, IconTrash as IconTrash5 } from "@tabler/icons-react";
17218
17151
 
@@ -17523,12 +17456,45 @@ function isPreviewDataReady(domainPreviewData) {
17523
17456
  return false;
17524
17457
  }
17525
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
+ }
17526
17489
  var DomainCardViewerFlowView = ({ editor, block }) => {
17527
17490
  const status = block.props.status || "pending";
17528
17491
  const domainPreviewData = block.props.domainPreviewData || "{}";
17492
+ const domainCardData = block.props.domainCardData || "{}";
17529
17493
  const isDataReady = isPreviewDataReady(domainPreviewData);
17530
- console.log("block.props", block.props);
17531
- useEffect49(() => {
17494
+ const isApproved = status === "approved";
17495
+ const prevDomainCardDataRef = useRef11(domainCardData);
17496
+ const prevStatusRef = useRef11(status);
17497
+ useEffect48(() => {
17532
17498
  if (status === "pending" && isDataReady) {
17533
17499
  editor.updateBlock(block, {
17534
17500
  props: {
@@ -17538,6 +17504,15 @@ var DomainCardViewerFlowView = ({ editor, block }) => {
17538
17504
  });
17539
17505
  }
17540
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]);
17541
17516
  const handleApprove = useCallback49(() => {
17542
17517
  editor.updateBlock(block, {
17543
17518
  props: {
@@ -17839,7 +17814,7 @@ blockRegistry.register({
17839
17814
  });
17840
17815
 
17841
17816
  // src/mantine/blocks/hooks/useBlockDependencies.ts
17842
- 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";
17843
17818
 
17844
17819
  // src/mantine/blocks/hooks/useDependsOn.ts
17845
17820
  import { useMemo as useMemo61 } from "react";
@@ -18195,6 +18170,7 @@ var getExtraSlashMenuItems = (editor) => {
18195
18170
  title: "",
18196
18171
  description: "",
18197
18172
  icon: "feather",
18173
+ domainCardData: "{}",
18198
18174
  entityType: "",
18199
18175
  status: "pending",
18200
18176
  entityDid: "",
@@ -18317,14 +18293,14 @@ import { useCreateBlockNote as useCreateBlockNote2 } from "@blocknote/react";
18317
18293
  import { BlockNoteSchema as BlockNoteSchema2, defaultBlockSpecs as defaultBlockSpecs2, defaultInlineContentSpecs as defaultInlineContentSpecs2, defaultStyleSpecs as defaultStyleSpecs2 } from "@blocknote/core";
18318
18294
 
18319
18295
  // src/core/hooks/useMatrixProvider.ts
18320
- 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";
18321
18297
  import { MatrixProvider } from "@ixo/matrix-crdt";
18322
18298
  function useMatrixProvider({ matrixClient, roomId, yDoc }) {
18323
- const [matrixProvider, setProvider] = useState68(null);
18324
- const [status, setStatus] = useState68("disconnected");
18325
- const isMountedRef = useRef11(true);
18326
- const providerRef = useRef11(null);
18327
- 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);
18328
18304
  const providerOptions = useMemo62(
18329
18305
  () => ({
18330
18306
  translator: {
@@ -18386,7 +18362,7 @@ function useMatrixProvider({ matrixClient, roomId, yDoc }) {
18386
18362
  }
18387
18363
  }
18388
18364
  }, [matrixClient, providerOptions, handleDocumentAvailable, handleDocumentUnavailable, handleCanWriteChanged]);
18389
- useEffect51(() => {
18365
+ useEffect50(() => {
18390
18366
  isMountedRef.current = true;
18391
18367
  initProvider();
18392
18368
  return () => {
@@ -18403,7 +18379,7 @@ function useMatrixProvider({ matrixClient, roomId, yDoc }) {
18403
18379
  setStatus("disconnected");
18404
18380
  };
18405
18381
  }, [initProvider]);
18406
- useEffect51(() => {
18382
+ useEffect50(() => {
18407
18383
  return () => {
18408
18384
  isMountedRef.current = false;
18409
18385
  };
@@ -18422,7 +18398,7 @@ function useCollaborativeYDoc(_options) {
18422
18398
  }
18423
18399
 
18424
18400
  // src/mantine/hooks/useCollaborativeIxoEditor.ts
18425
- import { useMemo as useMemo64, useEffect as useEffect52 } from "react";
18401
+ import { useMemo as useMemo64, useEffect as useEffect51 } from "react";
18426
18402
 
18427
18403
  // src/core/lib/matrixMetadata.ts
18428
18404
  var COVER_IMAGE_EVENT_TYPE = "ixo.page.cover_image";
@@ -18607,7 +18583,7 @@ function useCreateCollaborativeIxoEditor(options) {
18607
18583
  roomId: options.roomId
18608
18584
  });
18609
18585
  const metadataManager = useMemo64(() => new MatrixMetadataManager(matrixClient, options.roomId), [matrixClient, options.roomId]);
18610
- useEffect52(() => {
18586
+ useEffect51(() => {
18611
18587
  return () => {
18612
18588
  metadataManager.dispose();
18613
18589
  };
@@ -18828,12 +18804,12 @@ function useCreateCollaborativeIxoEditor(options) {
18828
18804
  return void 0;
18829
18805
  };
18830
18806
  }
18831
- useEffect52(() => {
18807
+ useEffect51(() => {
18832
18808
  if (ixoEditor) {
18833
18809
  ixoEditor.isEditable = editable;
18834
18810
  }
18835
18811
  }, [ixoEditor, editable]);
18836
- useEffect52(() => {
18812
+ useEffect51(() => {
18837
18813
  if (connectionStatus !== "connected") {
18838
18814
  return;
18839
18815
  }
@@ -18866,7 +18842,7 @@ function useCreateCollaborativeIxoEditor(options) {
18866
18842
  }
18867
18843
 
18868
18844
  // src/mantine/components/CoverImage.tsx
18869
- 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";
18870
18846
  import { Box as Box35, Group as Group62 } from "@mantine/core";
18871
18847
 
18872
18848
  // src/core/lib/imageTransform.ts
@@ -19026,13 +19002,13 @@ function CoverImageButton({ isActive = false, children, onClick, style }) {
19026
19002
  // src/mantine/components/CoverImage.tsx
19027
19003
  function CoverImage({ coverImageUrl, logoUrl }) {
19028
19004
  const { editor, handlers, editable } = useBlocknoteContext();
19029
- const [isHovering, setIsHovering] = useState69(false);
19030
- const [isRepositioning, setIsRepositioning] = useState69(false);
19031
- const [coverPosition, setCoverPosition] = useState69(50);
19032
- const coverFileInputRef = useRef12(null);
19033
- const logoFileInputRef = useRef12(null);
19034
- const [metadata, setMetadata] = useState69(() => editor?.getPageMetadata?.() || null);
19035
- 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(() => {
19036
19012
  if (!editor?._metadataManager) {
19037
19013
  return;
19038
19014
  }
@@ -19319,7 +19295,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
19319
19295
  }
19320
19296
 
19321
19297
  // src/mantine/components/PageHeader.tsx
19322
- 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";
19323
19299
  function PageHeader({
19324
19300
  title = "New page",
19325
19301
  icon,
@@ -19330,9 +19306,9 @@ function PageHeader({
19330
19306
  isFavorited = false,
19331
19307
  menuItems = []
19332
19308
  }) {
19333
- const [isMenuOpen, setIsMenuOpen] = useState70(false);
19334
- const menuRef = useRef13(null);
19335
- useEffect54(() => {
19309
+ const [isMenuOpen, setIsMenuOpen] = useState69(false);
19310
+ const menuRef = useRef14(null);
19311
+ useEffect53(() => {
19336
19312
  function handleClickOutside(event) {
19337
19313
  if (menuRef.current && !menuRef.current.contains(event.target)) {
19338
19314
  setIsMenuOpen(false);
@@ -19512,7 +19488,7 @@ var styles = {
19512
19488
  };
19513
19489
 
19514
19490
  // src/mantine/components/ExternalDropZone.tsx
19515
- 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";
19516
19492
  import { Box as Box36 } from "@mantine/core";
19517
19493
  var SCROLL_ZONE_SIZE = 80;
19518
19494
  var SCROLL_SPEED = 12;
@@ -19525,14 +19501,14 @@ var ExternalDropZone = ({
19525
19501
  onPlacementCancel,
19526
19502
  children
19527
19503
  }) => {
19528
- const containerRef = useRef14(null);
19529
- const [isValidDrag, setIsValidDrag] = useState71(false);
19530
- const [isHoveringInPlacementMode, setIsHoveringInPlacementMode] = useState71(false);
19531
- const [indicatorStyle, setIndicatorStyle] = useState71({});
19532
- const dropPositionRef = useRef14(null);
19533
- const scrollAnimationRef = useRef14(null);
19534
- const scrollDirectionRef = useRef14(null);
19535
- 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);
19536
19512
  const getBlockElements = useCallback52(() => {
19537
19513
  if (!containerRef.current) return [];
19538
19514
  const blocks = containerRef.current.querySelectorAll('[data-node-type="blockContainer"]');
@@ -19688,7 +19664,7 @@ var ExternalDropZone = ({
19688
19664
  },
19689
19665
  [onDrop, stopAutoScroll]
19690
19666
  );
19691
- useEffect55(() => {
19667
+ useEffect54(() => {
19692
19668
  const handleGlobalDragEnd = () => {
19693
19669
  setIsValidDrag(false);
19694
19670
  dropPositionRef.current = null;
@@ -19746,7 +19722,7 @@ var ExternalDropZone = ({
19746
19722
  },
19747
19723
  [getScrollContainer]
19748
19724
  );
19749
- useEffect55(() => {
19725
+ useEffect54(() => {
19750
19726
  if (!isPlacementMode) return;
19751
19727
  const handleKeyDown = (e) => {
19752
19728
  if (e.key === "Escape") {
@@ -19769,13 +19745,13 @@ var ExternalDropZone = ({
19769
19745
  document.removeEventListener("click", handleGlobalClick, true);
19770
19746
  };
19771
19747
  }, [isPlacementMode, onPlacementCancel]);
19772
- useEffect55(() => {
19748
+ useEffect54(() => {
19773
19749
  if (!isPlacementMode) {
19774
19750
  setIsHoveringInPlacementMode(false);
19775
19751
  dropPositionRef.current = null;
19776
19752
  }
19777
19753
  }, [isPlacementMode]);
19778
- useEffect55(() => {
19754
+ useEffect54(() => {
19779
19755
  const isActive = isValidDrag || isPlacementMode && isHoveringInPlacementMode;
19780
19756
  if (isActive) {
19781
19757
  document.body.classList.add("external-artifact-drag-active");
@@ -19786,7 +19762,7 @@ var ExternalDropZone = ({
19786
19762
  document.body.classList.remove("external-artifact-drag-active");
19787
19763
  };
19788
19764
  }, [isValidDrag, isPlacementMode, isHoveringInPlacementMode]);
19789
- useEffect55(() => {
19765
+ useEffect54(() => {
19790
19766
  return () => {
19791
19767
  if (scrollAnimationRef.current) {
19792
19768
  cancelAnimationFrame(scrollAnimationRef.current);
@@ -20050,7 +20026,7 @@ function IxoEditor({
20050
20026
  }
20051
20027
 
20052
20028
  // src/mantine/components/EntitySigningSetup.tsx
20053
- import React201, { useState as useState72 } from "react";
20029
+ import React201, { useState as useState71 } from "react";
20054
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";
20055
20031
  import { IconAlertCircle as IconAlertCircle13, IconCheck as IconCheck7, IconKey as IconKey2 } from "@tabler/icons-react";
20056
20032
  var EntitySigningSetup = ({
@@ -20060,11 +20036,11 @@ var EntitySigningSetup = ({
20060
20036
  entityName,
20061
20037
  onSetup
20062
20038
  }) => {
20063
- const [pin, setPin] = useState72("");
20064
- const [confirmPin, setConfirmPin] = useState72("");
20065
- const [loading, setLoading] = useState72(false);
20066
- const [error, setError] = useState72(null);
20067
- 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);
20068
20044
  const handleSetup = async () => {
20069
20045
  if (pin.length < 4) {
20070
20046
  setError("PIN must be at least 4 characters");
@@ -20146,7 +20122,7 @@ var EntitySigningSetup = ({
20146
20122
  };
20147
20123
 
20148
20124
  // src/mantine/components/FlowPermissionsPanel.tsx
20149
- 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";
20150
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";
20151
20127
  import { IconPlus as IconPlus5, IconTrash as IconTrash6, IconShieldCheck as IconShieldCheck2, IconUser as IconUser4, IconRobot as IconRobot3, IconBuilding } from "@tabler/icons-react";
20152
20128
  var FlowPermissionsPanel = ({
@@ -20157,11 +20133,11 @@ var FlowPermissionsPanel = ({
20157
20133
  onRevokePermission,
20158
20134
  getUserDisplayName
20159
20135
  }) => {
20160
- const [delegations, setDelegations] = useState73([]);
20161
- const [loading, setLoading] = useState73(true);
20162
- const [revoking, setRevoking] = useState73(null);
20136
+ const [delegations, setDelegations] = useState72([]);
20137
+ const [loading, setLoading] = useState72(true);
20138
+ const [revoking, setRevoking] = useState72(null);
20163
20139
  const rootCapability = useMemo65(() => editor.getRootCapability?.(), [editor]);
20164
- useEffect56(() => {
20140
+ useEffect55(() => {
20165
20141
  const loadDelegations = async () => {
20166
20142
  setLoading(true);
20167
20143
  const allDelegations = editor.getAllDelegations?.() || [];
@@ -20245,7 +20221,7 @@ var FlowPermissionsPanel = ({
20245
20221
  };
20246
20222
 
20247
20223
  // src/mantine/components/GrantPermissionModal.tsx
20248
- import React203, { useState as useState74, useCallback as useCallback53 } from "react";
20224
+ import React203, { useState as useState73, useCallback as useCallback53 } from "react";
20249
20225
  import {
20250
20226
  Modal as Modal4,
20251
20227
  Stack as Stack128,
@@ -20277,20 +20253,20 @@ var GrantPermissionModal = ({
20277
20253
  const singleBlockMode = !!targetBlockId || blocks.length === 1;
20278
20254
  const fixedBlockId = targetBlockId || (blocks.length === 1 ? blocks[0].id : null);
20279
20255
  const fixedBlock = fixedBlockId ? blocks.find((b) => b.id === fixedBlockId) || blocks[0] : null;
20280
- const [recipientType, setRecipientType] = useState74("user");
20281
- const [searchQuery, setSearchQuery] = useState74("");
20282
- const [searchResults, setSearchResults] = useState74([]);
20283
- const [searching, setSearching] = useState74(false);
20284
- const [selectedRecipient, setSelectedRecipient] = useState74(null);
20285
- const [manualDid, setManualDid] = useState74("");
20286
- const [scopeType, setScopeType] = useState74("full");
20287
- const [selectedBlocks, setSelectedBlocks] = useState74([]);
20288
- const [expirationEnabled, setExpirationEnabled] = useState74(false);
20289
- const [expirationDays, setExpirationDays] = useState74(30);
20290
- const [canDelegate, setCanDelegate] = useState74(false);
20291
- const [pin, setPin] = useState74("");
20292
- const [loading, setLoading] = useState74(false);
20293
- 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);
20294
20270
  const handleSearch = useCallback53(async () => {
20295
20271
  if (searchQuery.length < 2) return;
20296
20272
  setSearching(true);
@@ -20578,4 +20554,4 @@ export {
20578
20554
  ixoGraphQLClient,
20579
20555
  getEntity
20580
20556
  };
20581
- //# sourceMappingURL=chunk-3ER6BXWB.mjs.map
20557
+ //# sourceMappingURL=chunk-3A47Y7LN.mjs.map