@ixo/editor 3.0.0-beta.17 → 3.0.0-beta.18

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.
@@ -22787,11 +22787,11 @@ var FlowLinkBlockSpec = createReactBlockSpec19(
22787
22787
  );
22788
22788
 
22789
22789
  // src/mantine/blocks/action/ActionBlockSpec.tsx
22790
- import React266 from "react";
22790
+ import React267 from "react";
22791
22791
  import { createReactBlockSpec as createReactBlockSpec20 } from "@blocknote/react";
22792
22792
 
22793
22793
  // src/mantine/blocks/action/ActionBlock.tsx
22794
- import React265 from "react";
22794
+ import React266 from "react";
22795
22795
 
22796
22796
  // src/mantine/blocks/action/template/TemplateView.tsx
22797
22797
  import React234, { useMemo as useMemo85 } from "react";
@@ -24158,10 +24158,17 @@ var BidConfig = ({ inputs, onInputsChange, editor, blockId }) => {
24158
24158
  };
24159
24159
 
24160
24160
  // src/mantine/blocks/action/actionTypes/bid/BidFlowDetail.tsx
24161
- import React240, { useCallback as useCallback73, useEffect as useEffect76, useMemo as useMemo90, useState as useState93 } from "react";
24161
+ import React241, { useCallback as useCallback73, useEffect as useEffect76, useMemo as useMemo90, useState as useState93 } from "react";
24162
24162
  import { Alert as Alert37, Loader as Loader36, Stack as Stack161, Text as Text137 } from "@mantine/core";
24163
24163
  import { IconPlayerPlay as IconPlayerPlay3 } from "@tabler/icons-react";
24164
- import { Survey as Survey9, SurveyModel as SurveyModel9 } from "@ixo/surveys";
24164
+ import { SurveyModel as SurveyModel9 } from "@ixo/surveys";
24165
+
24166
+ // src/mantine/components/StableSurvey.tsx
24167
+ import React240 from "react";
24168
+ import { Survey as Survey9 } from "@ixo/surveys";
24169
+ var StableSurvey = React240.memo(Survey9, (prev, next) => prev.model === next.model);
24170
+
24171
+ // src/mantine/blocks/action/actionTypes/bid/BidFlowDetail.tsx
24165
24172
  var BidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isDisabled }) => {
24166
24173
  const handlers = useBlocknoteHandlers();
24167
24174
  const services = useMemo90(() => buildServicesFromHandlers(handlers), [handlers]);
@@ -24384,7 +24391,7 @@ var BidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isDisabled
24384
24391
  surveyModel.onComplete.remove(handleSurveyComplete);
24385
24392
  };
24386
24393
  }, [surveyModel, handleSurveyComplete]);
24387
- return /* @__PURE__ */ React240.createElement(Stack161, { gap: "md" }, !deedDid || !collectionId ? /* @__PURE__ */ React240.createElement(Alert37, { color: "yellow", styles: actionAlertStyles }, "Configure DID and claim collection in template mode before running this action.") : /* @__PURE__ */ React240.createElement(React240.Fragment, null, /* @__PURE__ */ React240.createElement(Text137, { size: "xs", c: "dimmed" }, "Collection: ", collectionId), statusLoading && /* @__PURE__ */ React240.createElement(Text137, { size: "xs", c: "dimmed" }, "Checking application state..."), isPending && /* @__PURE__ */ React240.createElement(Alert37, { color: "yellow", title: "Application Status", styles: actionAlertStyles }, "Your application is pending review. Resubmission is disabled."), isApproved && /* @__PURE__ */ React240.createElement(Alert37, { color: "green", title: "Application Status", styles: actionAlertStyles }, "Your application was approved. You already have the required role."), /* @__PURE__ */ React240.createElement(
24394
+ return /* @__PURE__ */ React241.createElement(Stack161, { gap: "md" }, !deedDid || !collectionId ? /* @__PURE__ */ React241.createElement(Alert37, { color: "yellow", styles: actionAlertStyles }, "Configure DID and claim collection in template mode before running this action.") : /* @__PURE__ */ React241.createElement(React241.Fragment, null, /* @__PURE__ */ React241.createElement(Text137, { size: "xs", c: "dimmed" }, "Collection: ", collectionId), statusLoading && /* @__PURE__ */ React241.createElement(Text137, { size: "xs", c: "dimmed" }, "Checking application state..."), isPending && /* @__PURE__ */ React241.createElement(Alert37, { color: "yellow", title: "Application Status", styles: actionAlertStyles }, "Your application is pending review. Resubmission is disabled."), isApproved && /* @__PURE__ */ React241.createElement(Alert37, { color: "green", title: "Application Status", styles: actionAlertStyles }, "Your application was approved. You already have the required role."), /* @__PURE__ */ React241.createElement(
24388
24395
  BaseSelect,
24389
24396
  {
24390
24397
  label: "Apply As",
@@ -24396,15 +24403,15 @@ var BidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isDisabled
24396
24403
  ],
24397
24404
  disabled: isDisabled || submitting || statusLoading || !canSubmit
24398
24405
  }
24399
- ), /* @__PURE__ */ React240.createElement(
24406
+ ), /* @__PURE__ */ React241.createElement(
24400
24407
  BasePrimaryButton,
24401
24408
  {
24402
- leftSection: loadingSurvey ? /* @__PURE__ */ React240.createElement(Loader36, { size: 14 }) : /* @__PURE__ */ React240.createElement(IconPlayerPlay3, { size: 14 }),
24409
+ leftSection: loadingSurvey ? /* @__PURE__ */ React241.createElement(Loader36, { size: 14 }) : /* @__PURE__ */ React241.createElement(IconPlayerPlay3, { size: 14 }),
24403
24410
  onClick: loadSurveyTemplate,
24404
24411
  disabled: isDisabled || loadingSurvey || submitting || statusLoading || !canSubmit
24405
24412
  },
24406
24413
  loadingSurvey ? "Loading Survey..." : "Start Bid Survey"
24407
- )), error && /* @__PURE__ */ React240.createElement(Alert37, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React240.createElement(Alert37, { color: "red", styles: actionAlertStyles }, runtime.error.message), submitting && /* @__PURE__ */ React240.createElement(Text137, { size: "xs", c: "dimmed" }, "Submitting bid..."), surveyModel && !loadingSurvey && canSubmit && /* @__PURE__ */ React240.createElement(Survey9, { model: surveyModel }));
24414
+ )), error && /* @__PURE__ */ React241.createElement(Alert37, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React241.createElement(Alert37, { color: "red", styles: actionAlertStyles }, runtime.error.message), submitting && /* @__PURE__ */ React241.createElement(Text137, { size: "xs", c: "dimmed" }, "Submitting bid..."), surveyModel && !loadingSurvey && canSubmit && /* @__PURE__ */ React241.createElement(StableSurvey, { model: surveyModel }));
24408
24415
  };
24409
24416
 
24410
24417
  // src/mantine/blocks/action/actionTypes/bid/index.ts
@@ -24414,7 +24421,7 @@ registerActionTypeUI("bid", {
24414
24421
  });
24415
24422
 
24416
24423
  // src/mantine/blocks/action/actionTypes/evaluateBid/EvaluateBidConfig.tsx
24417
- import React241, { useCallback as useCallback74, useEffect as useEffect77, useMemo as useMemo91, useState as useState94 } from "react";
24424
+ import React242, { useCallback as useCallback74, useEffect as useEffect77, useMemo as useMemo91, useState as useState94 } from "react";
24418
24425
  import { Alert as Alert38, Loader as Loader37, Stack as Stack162 } from "@mantine/core";
24419
24426
 
24420
24427
  // src/mantine/blocks/action/actionTypes/evaluateBid/types.ts
@@ -24489,7 +24496,7 @@ var EvaluateBidConfig = ({ inputs, onInputsChange, editor, blockId }) => {
24489
24496
  })),
24490
24497
  [collections]
24491
24498
  );
24492
- return /* @__PURE__ */ React241.createElement(Stack162, { gap: "md" }, /* @__PURE__ */ React241.createElement(
24499
+ return /* @__PURE__ */ React242.createElement(Stack162, { gap: "md" }, /* @__PURE__ */ React242.createElement(
24493
24500
  DataInput,
24494
24501
  {
24495
24502
  label: "DID",
@@ -24501,7 +24508,7 @@ var EvaluateBidConfig = ({ inputs, onInputsChange, editor, blockId }) => {
24501
24508
  currentBlockId: blockId,
24502
24509
  required: true
24503
24510
  }
24504
- ), /* @__PURE__ */ React241.createElement(BasePrimaryButton, { onClick: fetchCollections, disabled: !local.deedDid.trim() || loadingCollections }, loadingCollections ? /* @__PURE__ */ React241.createElement(Loader37, { size: "xs", color: "dark" }) : "Get Collections"), error && /* @__PURE__ */ React241.createElement(Alert38, { color: "red", styles: actionAlertStyles }, error), collectionOptions.length > 0 && /* @__PURE__ */ React241.createElement(
24511
+ ), /* @__PURE__ */ React242.createElement(BasePrimaryButton, { onClick: fetchCollections, disabled: !local.deedDid.trim() || loadingCollections }, loadingCollections ? /* @__PURE__ */ React242.createElement(Loader37, { size: "xs", color: "dark" }) : "Get Collections"), error && /* @__PURE__ */ React242.createElement(Alert38, { color: "red", styles: actionAlertStyles }, error), collectionOptions.length > 0 && /* @__PURE__ */ React242.createElement(
24505
24512
  BaseSelect,
24506
24513
  {
24507
24514
  label: "Claim Collection",
@@ -24516,7 +24523,7 @@ var EvaluateBidConfig = ({ inputs, onInputsChange, editor, blockId }) => {
24516
24523
  };
24517
24524
 
24518
24525
  // src/mantine/blocks/action/actionTypes/evaluateBid/EvaluateBidFlowDetail.tsx
24519
- import React242, { useCallback as useCallback75, useEffect as useEffect78, useMemo as useMemo92, useState as useState95 } from "react";
24526
+ import React243, { useCallback as useCallback75, useEffect as useEffect78, useMemo as useMemo92, useState as useState95 } from "react";
24520
24527
  import { ActionIcon as ActionIcon34, Alert as Alert39, Badge as Badge41, Box as Box46, Button as Button42, Collapse as Collapse9, Divider as Divider22, Group as Group91, Loader as Loader38, Stack as Stack163, Text as Text138, UnstyledButton as UnstyledButton3 } from "@mantine/core";
24521
24528
  import { IconArrowLeft as IconArrowLeft6, IconCheck as IconCheck17, IconChevronDown as IconChevronDown9, IconChevronRight as IconChevronRight12, IconFilter, IconThumbDown, IconThumbUp as IconThumbUp3 } from "@tabler/icons-react";
24522
24529
  function getRoleColor2(role) {
@@ -24842,7 +24849,7 @@ var EvaluateBidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, is
24842
24849
  bidData = typeof selectedBid.data === "string" ? JSON.parse(selectedBid.data) : selectedBid.data;
24843
24850
  } catch {
24844
24851
  }
24845
- return /* @__PURE__ */ React242.createElement(Stack163, { gap: "md" }, /* @__PURE__ */ React242.createElement(Group91, { gap: "xs", align: "center" }, /* @__PURE__ */ React242.createElement(ActionIcon34, { variant: "subtle", color: "gray", size: "sm", onClick: () => setSelectedBidId("") }, /* @__PURE__ */ React242.createElement(IconArrowLeft6, { size: 16 })), /* @__PURE__ */ React242.createElement(Text138, { fw: 500, size: "sm" }, "Bid #", selectedBid.id)), /* @__PURE__ */ React242.createElement(Group91, { gap: 16, align: "center", style: { width: "100%" } }, /* @__PURE__ */ React242.createElement(
24852
+ return /* @__PURE__ */ React243.createElement(Stack163, { gap: "md" }, /* @__PURE__ */ React243.createElement(Group91, { gap: "xs", align: "center" }, /* @__PURE__ */ React243.createElement(ActionIcon34, { variant: "subtle", color: "gray", size: "sm", onClick: () => setSelectedBidId("") }, /* @__PURE__ */ React243.createElement(IconArrowLeft6, { size: 16 })), /* @__PURE__ */ React243.createElement(Text138, { fw: 500, size: "sm" }, "Bid #", selectedBid.id)), /* @__PURE__ */ React243.createElement(Group91, { gap: 16, align: "center", style: { width: "100%" } }, /* @__PURE__ */ React243.createElement(
24846
24853
  Box46,
24847
24854
  {
24848
24855
  style: {
@@ -24863,7 +24870,7 @@ var EvaluateBidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, is
24863
24870
  }
24864
24871
  },
24865
24872
  selectedBidProfile?.avatarUrl ? null : selectedAvatarLabel
24866
- ), /* @__PURE__ */ React242.createElement(Stack163, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React242.createElement(Text138, { fw: 500, size: "md", truncate: true }, selectedDisplayName), /* @__PURE__ */ React242.createElement(Text138, { size: "xs", c: "dimmed", truncate: true }, truncateAddress(selectedBid.address))), /* @__PURE__ */ React242.createElement(Stack163, { gap: 0, align: "flex-end", style: { flexShrink: 0 } }, /* @__PURE__ */ React242.createElement(Text138, { fw: 500, size: "md", c: bidStatus.color === "green" ? "green" : bidStatus.color === "red" ? "red" : void 0 }, bidStatus.color === "green" && /* @__PURE__ */ React242.createElement(IconCheck17, { size: 14, style: { verticalAlign: "middle", marginRight: 4 } }), bidStatus.label), /* @__PURE__ */ React242.createElement(Text138, { size: "xs", c: "dimmed" }, getTimeAgo(selectedBid.created || "")))), /* @__PURE__ */ React242.createElement(
24873
+ ), /* @__PURE__ */ React243.createElement(Stack163, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React243.createElement(Text138, { fw: 500, size: "md", truncate: true }, selectedDisplayName), /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed", truncate: true }, truncateAddress(selectedBid.address))), /* @__PURE__ */ React243.createElement(Stack163, { gap: 0, align: "flex-end", style: { flexShrink: 0 } }, /* @__PURE__ */ React243.createElement(Text138, { fw: 500, size: "md", c: bidStatus.color === "green" ? "green" : bidStatus.color === "red" ? "red" : void 0 }, bidStatus.color === "green" && /* @__PURE__ */ React243.createElement(IconCheck17, { size: 14, style: { verticalAlign: "middle", marginRight: 4 } }), bidStatus.label), /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, getTimeAgo(selectedBid.created || "")))), /* @__PURE__ */ React243.createElement(
24867
24874
  Box46,
24868
24875
  {
24869
24876
  p: "sm",
@@ -24872,9 +24879,9 @@ var EvaluateBidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, is
24872
24879
  background: "var(--mantine-color-neutralColor-5)"
24873
24880
  }
24874
24881
  },
24875
- /* @__PURE__ */ React242.createElement(UnstyledButton3, { onClick: () => setDetailsOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React242.createElement(Group91, { gap: "xs", align: "center" }, detailsOpen ? /* @__PURE__ */ React242.createElement(IconChevronDown9, { size: 16 }) : /* @__PURE__ */ React242.createElement(IconChevronRight12, { size: 16 }), /* @__PURE__ */ React242.createElement(Text138, { fw: 500, size: "sm" }, "Details"))),
24876
- /* @__PURE__ */ React242.createElement(Collapse9, { in: detailsOpen }, /* @__PURE__ */ React242.createElement(Stack163, { gap: "xs", mt: "sm" }, /* @__PURE__ */ React242.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React242.createElement(Text138, { size: "xs", c: "dimmed" }, "Bid ID"), /* @__PURE__ */ React242.createElement(Text138, { size: "xs" }, selectedBid.id)), /* @__PURE__ */ React242.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React242.createElement(Text138, { size: "xs", c: "dimmed" }, "Collection"), /* @__PURE__ */ React242.createElement(Text138, { size: "xs" }, selectedBid.collection || collectionId)), /* @__PURE__ */ React242.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React242.createElement(Text138, { size: "xs", c: "dimmed" }, "Role"), /* @__PURE__ */ React242.createElement(Badge41, { size: "xs", variant: "light", color: getRoleColor2(selectedBid.role) }, getRoleLabel2(selectedBid.role))), /* @__PURE__ */ React242.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React242.createElement(Text138, { size: "xs", c: "dimmed" }, "Address"), /* @__PURE__ */ React242.createElement(Text138, { size: "xs" }, selectedBid.address))))
24877
- ), /* @__PURE__ */ React242.createElement(
24882
+ /* @__PURE__ */ React243.createElement(UnstyledButton3, { onClick: () => setDetailsOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React243.createElement(Group91, { gap: "xs", align: "center" }, detailsOpen ? /* @__PURE__ */ React243.createElement(IconChevronDown9, { size: 16 }) : /* @__PURE__ */ React243.createElement(IconChevronRight12, { size: 16 }), /* @__PURE__ */ React243.createElement(Text138, { fw: 500, size: "sm" }, "Details"))),
24883
+ /* @__PURE__ */ React243.createElement(Collapse9, { in: detailsOpen }, /* @__PURE__ */ React243.createElement(Stack163, { gap: "xs", mt: "sm" }, /* @__PURE__ */ React243.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Bid ID"), /* @__PURE__ */ React243.createElement(Text138, { size: "xs" }, selectedBid.id)), /* @__PURE__ */ React243.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Collection"), /* @__PURE__ */ React243.createElement(Text138, { size: "xs" }, selectedBid.collection || collectionId)), /* @__PURE__ */ React243.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Role"), /* @__PURE__ */ React243.createElement(Badge41, { size: "xs", variant: "light", color: getRoleColor2(selectedBid.role) }, getRoleLabel2(selectedBid.role))), /* @__PURE__ */ React243.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Address"), /* @__PURE__ */ React243.createElement(Text138, { size: "xs" }, selectedBid.address))))
24884
+ ), /* @__PURE__ */ React243.createElement(
24878
24885
  Box46,
24879
24886
  {
24880
24887
  p: "sm",
@@ -24883,9 +24890,9 @@ var EvaluateBidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, is
24883
24890
  background: "var(--mantine-color-neutralColor-5)"
24884
24891
  }
24885
24892
  },
24886
- /* @__PURE__ */ React242.createElement(UnstyledButton3, { onClick: () => setInputsOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React242.createElement(Group91, { gap: "xs", align: "center" }, inputsOpen ? /* @__PURE__ */ React242.createElement(IconChevronDown9, { size: 16 }) : /* @__PURE__ */ React242.createElement(IconChevronRight12, { size: 16 }), /* @__PURE__ */ React242.createElement(Text138, { fw: 500, size: "sm" }, "Inputs"))),
24887
- /* @__PURE__ */ React242.createElement(Collapse9, { in: inputsOpen }, /* @__PURE__ */ React242.createElement(Stack163, { gap: "xs", mt: "sm" }, bidData && typeof bidData === "object" ? Object.entries(bidData).map(([key, value]) => /* @__PURE__ */ React242.createElement(Group91, { key, justify: "space-between" }, /* @__PURE__ */ React242.createElement(Text138, { size: "xs", c: "dimmed" }, key), /* @__PURE__ */ React242.createElement(Text138, { size: "xs", style: { maxWidth: "60%", wordBreak: "break-all", textAlign: "right" } }, typeof value === "string" ? value : JSON.stringify(value)))) : /* @__PURE__ */ React242.createElement(Text138, { size: "xs", c: "dimmed" }, "No input data available.")))
24888
- ), bidIsEvaluator && /* @__PURE__ */ React242.createElement(
24893
+ /* @__PURE__ */ React243.createElement(UnstyledButton3, { onClick: () => setInputsOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React243.createElement(Group91, { gap: "xs", align: "center" }, inputsOpen ? /* @__PURE__ */ React243.createElement(IconChevronDown9, { size: 16 }) : /* @__PURE__ */ React243.createElement(IconChevronRight12, { size: 16 }), /* @__PURE__ */ React243.createElement(Text138, { fw: 500, size: "sm" }, "Inputs"))),
24894
+ /* @__PURE__ */ React243.createElement(Collapse9, { in: inputsOpen }, /* @__PURE__ */ React243.createElement(Stack163, { gap: "xs", mt: "sm" }, bidData && typeof bidData === "object" ? Object.entries(bidData).map(([key, value]) => /* @__PURE__ */ React243.createElement(Group91, { key, justify: "space-between" }, /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, key), /* @__PURE__ */ React243.createElement(Text138, { size: "xs", style: { maxWidth: "60%", wordBreak: "break-all", textAlign: "right" } }, typeof value === "string" ? value : JSON.stringify(value)))) : /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "No input data available.")))
24895
+ ), bidIsEvaluator && /* @__PURE__ */ React243.createElement(
24889
24896
  Box46,
24890
24897
  {
24891
24898
  p: "sm",
@@ -24894,8 +24901,8 @@ var EvaluateBidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, is
24894
24901
  background: "var(--mantine-color-neutralColor-5)"
24895
24902
  }
24896
24903
  },
24897
- /* @__PURE__ */ React242.createElement(UnstyledButton3, { onClick: () => setEvaluationOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React242.createElement(Group91, { gap: "xs", align: "center" }, evaluationOpen ? /* @__PURE__ */ React242.createElement(IconChevronDown9, { size: 16 }) : /* @__PURE__ */ React242.createElement(IconChevronRight12, { size: 16 }), /* @__PURE__ */ React242.createElement(Text138, { fw: 500, size: "sm" }, "Evaluation"))),
24898
- /* @__PURE__ */ React242.createElement(Collapse9, { in: evaluationOpen }, /* @__PURE__ */ React242.createElement(Stack163, { gap: "md", mt: "sm" }, /* @__PURE__ */ React242.createElement(Stack163, { gap: 4 }, /* @__PURE__ */ React242.createElement(Text138, { size: "xs", c: "dimmed" }, "Reason"), /* @__PURE__ */ React242.createElement(
24904
+ /* @__PURE__ */ React243.createElement(UnstyledButton3, { onClick: () => setEvaluationOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React243.createElement(Group91, { gap: "xs", align: "center" }, evaluationOpen ? /* @__PURE__ */ React243.createElement(IconChevronDown9, { size: 16 }) : /* @__PURE__ */ React243.createElement(IconChevronRight12, { size: 16 }), /* @__PURE__ */ React243.createElement(Text138, { fw: 500, size: "sm" }, "Evaluation"))),
24905
+ /* @__PURE__ */ React243.createElement(Collapse9, { in: evaluationOpen }, /* @__PURE__ */ React243.createElement(Stack163, { gap: "md", mt: "sm" }, /* @__PURE__ */ React243.createElement(Stack163, { gap: 4 }, /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Reason"), /* @__PURE__ */ React243.createElement(
24899
24906
  BaseTextArea,
24900
24907
  {
24901
24908
  placeholder: "Start Typing",
@@ -24904,7 +24911,7 @@ var EvaluateBidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, is
24904
24911
  minRows: 2,
24905
24912
  disabled: isDisabled || submitting
24906
24913
  }
24907
- )), /* @__PURE__ */ React242.createElement(Divider22, { color: "rgba(255,255,255,0.06)" }), /* @__PURE__ */ React242.createElement(Text138, { size: "xs", c: "dimmed" }, "Payment (used as evaluator max amount)"), paymentRows.map((row, index) => /* @__PURE__ */ React242.createElement(Stack163, { key: row.id, gap: 8 }, /* @__PURE__ */ React242.createElement(Group91, { justify: "space-between", align: "center" }, /* @__PURE__ */ React242.createElement(Text138, { size: "sm" }, "Token ", index + 1), /* @__PURE__ */ React242.createElement(Group91, { gap: "xs" }, paymentRows.length > 1 && /* @__PURE__ */ React242.createElement(Button42, { variant: "subtle", size: "compact-xs", color: "red", onClick: () => removePaymentRow(row.id), disabled: isDisabled || submitting }, "Remove"))), /* @__PURE__ */ React242.createElement(
24914
+ )), /* @__PURE__ */ React243.createElement(Divider22, { color: "rgba(255,255,255,0.06)" }), /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Payment (used as evaluator max amount)"), paymentRows.map((row, index) => /* @__PURE__ */ React243.createElement(Stack163, { key: row.id, gap: 8 }, /* @__PURE__ */ React243.createElement(Group91, { justify: "space-between", align: "center" }, /* @__PURE__ */ React243.createElement(Text138, { size: "sm" }, "Token ", index + 1), /* @__PURE__ */ React243.createElement(Group91, { gap: "xs" }, paymentRows.length > 1 && /* @__PURE__ */ React243.createElement(Button42, { variant: "subtle", size: "compact-xs", color: "red", onClick: () => removePaymentRow(row.id), disabled: isDisabled || submitting }, "Remove"))), /* @__PURE__ */ React243.createElement(
24908
24915
  BaseSelect,
24909
24916
  {
24910
24917
  value: row.denom,
@@ -24917,7 +24924,7 @@ var EvaluateBidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, is
24917
24924
  clearable: false,
24918
24925
  disabled: isDisabled || submitting
24919
24926
  }
24920
- ), row.denom === CUSTOM_DENOM && /* @__PURE__ */ React242.createElement(
24927
+ ), row.denom === CUSTOM_DENOM && /* @__PURE__ */ React243.createElement(
24921
24928
  BaseTextInput,
24922
24929
  {
24923
24930
  placeholder: "Custom denom (e.g. ibc/... or uixo)",
@@ -24925,7 +24932,7 @@ var EvaluateBidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, is
24925
24932
  onChange: (event) => updatePaymentRow(row.id, { customDenom: event.currentTarget.value }),
24926
24933
  disabled: isDisabled || submitting
24927
24934
  }
24928
- ), /* @__PURE__ */ React242.createElement(
24935
+ ), /* @__PURE__ */ React243.createElement(
24929
24936
  BaseNumberInput,
24930
24937
  {
24931
24938
  min: 0,
@@ -24934,11 +24941,11 @@ var EvaluateBidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, is
24934
24941
  placeholder: "Amount",
24935
24942
  disabled: isDisabled || submitting
24936
24943
  }
24937
- ))), /* @__PURE__ */ React242.createElement(Button42, { variant: "light", size: "xs", onClick: addPaymentRow, disabled: isDisabled || submitting }, "Add Payment")))
24938
- ), /* @__PURE__ */ React242.createElement(Group91, { gap: "xs" }, /* @__PURE__ */ React242.createElement(BasePrimaryButton, { leftSection: /* @__PURE__ */ React242.createElement(IconThumbUp3, { size: 16 }), onClick: () => executeEvaluation("approve"), disabled: isDisabled || submitting || !adminAddress }, "Approve"), /* @__PURE__ */ React242.createElement(BasePrimaryButton, { leftSection: /* @__PURE__ */ React242.createElement(IconThumbDown, { size: 16 }), onClick: () => executeEvaluation("reject"), disabled: isDisabled || submitting }, "Reject")), error && /* @__PURE__ */ React242.createElement(Alert39, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React242.createElement(Alert39, { color: "red", styles: actionAlertStyles }, runtime.error.message));
24944
+ ))), /* @__PURE__ */ React243.createElement(Button42, { variant: "light", size: "xs", onClick: addPaymentRow, disabled: isDisabled || submitting }, "Add Payment")))
24945
+ ), /* @__PURE__ */ React243.createElement(Group91, { gap: "xs" }, /* @__PURE__ */ React243.createElement(BasePrimaryButton, { leftSection: /* @__PURE__ */ React243.createElement(IconThumbUp3, { size: 16 }), onClick: () => executeEvaluation("approve"), disabled: isDisabled || submitting || !adminAddress }, "Approve"), /* @__PURE__ */ React243.createElement(BasePrimaryButton, { leftSection: /* @__PURE__ */ React243.createElement(IconThumbDown, { size: 16 }), onClick: () => executeEvaluation("reject"), disabled: isDisabled || submitting }, "Reject")), error && /* @__PURE__ */ React243.createElement(Alert39, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React243.createElement(Alert39, { color: "red", styles: actionAlertStyles }, runtime.error.message));
24939
24946
  }
24940
24947
  const filterTabs = [{ value: "pending", label: "Pending" }];
24941
- return /* @__PURE__ */ React242.createElement(Stack163, { gap: "md" }, !deedDid || !collectionId ? /* @__PURE__ */ React242.createElement(Alert39, { color: "yellow", styles: actionAlertStyles }, "Configure DID and claim collection in template mode before running this action.") : /* @__PURE__ */ React242.createElement(React242.Fragment, null, /* @__PURE__ */ React242.createElement(Group91, { justify: "space-between", align: "center" }, /* @__PURE__ */ React242.createElement(Group91, { gap: 0 }, filterTabs.map((tab) => /* @__PURE__ */ React242.createElement(
24948
+ return /* @__PURE__ */ React243.createElement(Stack163, { gap: "md" }, !deedDid || !collectionId ? /* @__PURE__ */ React243.createElement(Alert39, { color: "yellow", styles: actionAlertStyles }, "Configure DID and claim collection in template mode before running this action.") : /* @__PURE__ */ React243.createElement(React243.Fragment, null, /* @__PURE__ */ React243.createElement(Group91, { justify: "space-between", align: "center" }, /* @__PURE__ */ React243.createElement(Group91, { gap: 0 }, filterTabs.map((tab) => /* @__PURE__ */ React243.createElement(
24942
24949
  UnstyledButton3,
24943
24950
  {
24944
24951
  key: tab.value,
@@ -24951,13 +24958,13 @@ var EvaluateBidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, is
24951
24958
  transition: "background 150ms ease"
24952
24959
  }
24953
24960
  },
24954
- /* @__PURE__ */ React242.createElement(Text138, { size: "sm", fw: 500, c: activeFilter === tab.value ? "white" : "dimmed" }, tab.label)
24955
- ))), /* @__PURE__ */ React242.createElement(ActionIcon34, { variant: "subtle", color: "gray", size: "sm" }, /* @__PURE__ */ React242.createElement(IconFilter, { size: 16 }))), loadingBids && /* @__PURE__ */ React242.createElement(Group91, { gap: "xs", justify: "center", py: "md" }, /* @__PURE__ */ React242.createElement(Loader38, { size: "xs" }), /* @__PURE__ */ React242.createElement(Text138, { size: "xs", c: "dimmed" }, "Loading bids...")), !loadingBids && filteredBids.length === 0 && /* @__PURE__ */ React242.createElement(Text138, { size: "sm", c: "dimmed", ta: "center", py: "md" }, bids.length === 0 ? "No bids available for this collection." : `No ${activeFilter} bids found.`), filteredBids.length > 0 && /* @__PURE__ */ React242.createElement(Stack163, { gap: 12 }, filteredBids.map((bid) => {
24961
+ /* @__PURE__ */ React243.createElement(Text138, { size: "sm", fw: 500, c: activeFilter === tab.value ? "white" : "dimmed" }, tab.label)
24962
+ ))), /* @__PURE__ */ React243.createElement(ActionIcon34, { variant: "subtle", color: "gray", size: "sm" }, /* @__PURE__ */ React243.createElement(IconFilter, { size: 16 }))), loadingBids && /* @__PURE__ */ React243.createElement(Group91, { gap: "xs", justify: "center", py: "md" }, /* @__PURE__ */ React243.createElement(Loader38, { size: "xs" }), /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Loading bids...")), !loadingBids && filteredBids.length === 0 && /* @__PURE__ */ React243.createElement(Text138, { size: "sm", c: "dimmed", ta: "center", py: "md" }, bids.length === 0 ? "No bids available for this collection." : `No ${activeFilter} bids found.`), filteredBids.length > 0 && /* @__PURE__ */ React243.createElement(Stack163, { gap: 12 }, filteredBids.map((bid) => {
24956
24963
  const status = getBidStatus(bid);
24957
24964
  const profile = profilesByDid[bid.did];
24958
24965
  const displayName = profile?.displayname || bid.did || bid.address;
24959
24966
  const avatarLabel = (profile?.displayname || bid.did || bid.address || "?")[0]?.toUpperCase();
24960
- return /* @__PURE__ */ React242.createElement(ListItemContainer, { key: bid.id, isChecked: false, onClick: () => setSelectedBidId(bid.id) }, /* @__PURE__ */ React242.createElement(Group91, { gap: 16, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React242.createElement(
24967
+ return /* @__PURE__ */ React243.createElement(ListItemContainer, { key: bid.id, isChecked: false, onClick: () => setSelectedBidId(bid.id) }, /* @__PURE__ */ React243.createElement(Group91, { gap: 16, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React243.createElement(
24961
24968
  Box46,
24962
24969
  {
24963
24970
  style: {
@@ -24978,8 +24985,8 @@ var EvaluateBidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, is
24978
24985
  }
24979
24986
  },
24980
24987
  profile?.avatarUrl ? null : avatarLabel
24981
- ), /* @__PURE__ */ React242.createElement(Stack163, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React242.createElement(Text138, { fw: 500, size: "md", truncate: true, style: { lineHeight: 1.5 } }, displayName), /* @__PURE__ */ React242.createElement(Text138, { size: "xs", c: "dimmed", truncate: true }, truncateAddress(bid.address)))), /* @__PURE__ */ React242.createElement(Stack163, { gap: 0, align: "flex-end", style: { flexShrink: 0, minWidth: 80 } }, /* @__PURE__ */ React242.createElement(Text138, { fw: 500, size: "md", c: status.color === "green" ? "green" : status.color === "red" ? "red" : void 0, style: { lineHeight: 1.5 } }, status.color === "green" && /* @__PURE__ */ React242.createElement(IconCheck17, { size: 14, style: { verticalAlign: "middle", marginRight: 2 } }), status.label), /* @__PURE__ */ React242.createElement(Text138, { size: "xs", c: "dimmed" }, getTimeAgo(bid.created || ""))));
24982
- }))), error && /* @__PURE__ */ React242.createElement(Alert39, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React242.createElement(Alert39, { color: "red", styles: actionAlertStyles }, runtime.error.message));
24988
+ ), /* @__PURE__ */ React243.createElement(Stack163, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React243.createElement(Text138, { fw: 500, size: "md", truncate: true, style: { lineHeight: 1.5 } }, displayName), /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed", truncate: true }, truncateAddress(bid.address)))), /* @__PURE__ */ React243.createElement(Stack163, { gap: 0, align: "flex-end", style: { flexShrink: 0, minWidth: 80 } }, /* @__PURE__ */ React243.createElement(Text138, { fw: 500, size: "md", c: status.color === "green" ? "green" : status.color === "red" ? "red" : void 0, style: { lineHeight: 1.5 } }, status.color === "green" && /* @__PURE__ */ React243.createElement(IconCheck17, { size: 14, style: { verticalAlign: "middle", marginRight: 2 } }), status.label), /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, getTimeAgo(bid.created || ""))));
24989
+ }))), error && /* @__PURE__ */ React243.createElement(Alert39, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React243.createElement(Alert39, { color: "red", styles: actionAlertStyles }, runtime.error.message));
24983
24990
  };
24984
24991
 
24985
24992
  // src/mantine/blocks/action/actionTypes/evaluateBid/index.ts
@@ -24989,7 +24996,7 @@ registerActionTypeUI("evaluateBid", {
24989
24996
  });
24990
24997
 
24991
24998
  // src/mantine/blocks/action/actionTypes/claim/ClaimConfig.tsx
24992
- import React243, { useCallback as useCallback76, useEffect as useEffect79, useMemo as useMemo93, useState as useState96 } from "react";
24999
+ import React244, { useCallback as useCallback76, useEffect as useEffect79, useMemo as useMemo93, useState as useState96 } from "react";
24993
25000
  import { Alert as Alert40, Loader as Loader39, Stack as Stack164 } from "@mantine/core";
24994
25001
 
24995
25002
  // src/mantine/blocks/action/actionTypes/claim/types.ts
@@ -25064,7 +25071,7 @@ var ClaimConfig = ({ inputs, onInputsChange, editor, blockId }) => {
25064
25071
  })),
25065
25072
  [collections]
25066
25073
  );
25067
- return /* @__PURE__ */ React243.createElement(Stack164, { gap: "md" }, /* @__PURE__ */ React243.createElement(
25074
+ return /* @__PURE__ */ React244.createElement(Stack164, { gap: "md" }, /* @__PURE__ */ React244.createElement(
25068
25075
  DataInput,
25069
25076
  {
25070
25077
  label: "DID",
@@ -25076,7 +25083,7 @@ var ClaimConfig = ({ inputs, onInputsChange, editor, blockId }) => {
25076
25083
  currentBlockId: blockId,
25077
25084
  required: true
25078
25085
  }
25079
- ), /* @__PURE__ */ React243.createElement(BasePrimaryButton, { onClick: fetchCollections, disabled: !local.deedDid.trim() || loadingCollections }, loadingCollections ? /* @__PURE__ */ React243.createElement(Loader39, { size: "xs", color: "dark" }) : "Get Collections"), error && /* @__PURE__ */ React243.createElement(Alert40, { color: "red", styles: actionAlertStyles }, error), collectionOptions.length > 0 && /* @__PURE__ */ React243.createElement(
25086
+ ), /* @__PURE__ */ React244.createElement(BasePrimaryButton, { onClick: fetchCollections, disabled: !local.deedDid.trim() || loadingCollections }, loadingCollections ? /* @__PURE__ */ React244.createElement(Loader39, { size: "xs", color: "dark" }) : "Get Collections"), error && /* @__PURE__ */ React244.createElement(Alert40, { color: "red", styles: actionAlertStyles }, error), collectionOptions.length > 0 && /* @__PURE__ */ React244.createElement(
25080
25087
  BaseSelect,
25081
25088
  {
25082
25089
  label: "Claim Collection",
@@ -25091,10 +25098,10 @@ var ClaimConfig = ({ inputs, onInputsChange, editor, blockId }) => {
25091
25098
  };
25092
25099
 
25093
25100
  // src/mantine/blocks/action/actionTypes/claim/ClaimFlowDetail.tsx
25094
- import React244, { useCallback as useCallback77, useEffect as useEffect80, useMemo as useMemo94, useState as useState97 } from "react";
25101
+ import React245, { useCallback as useCallback77, useEffect as useEffect80, useMemo as useMemo94, useState as useState97 } from "react";
25095
25102
  import { Alert as Alert41, Box as Box47, Group as Group92, Loader as Loader40, Stack as Stack165, Text as Text139 } from "@mantine/core";
25096
25103
  import { IconCheck as IconCheck18, IconPlayerPlay as IconPlayerPlay4 } from "@tabler/icons-react";
25097
- import { Survey as Survey10, SurveyModel as SurveyModel10 } from "@ixo/surveys";
25104
+ import { SurveyModel as SurveyModel10 } from "@ixo/surveys";
25098
25105
  function getTimeAgo2(dateString) {
25099
25106
  if (!dateString) return "";
25100
25107
  try {
@@ -25403,20 +25410,20 @@ var ClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isDisabl
25403
25410
  surveyModel.onComplete.remove(handleSurveyComplete);
25404
25411
  };
25405
25412
  }, [surveyModel, handleSurveyComplete]);
25406
- return /* @__PURE__ */ React244.createElement(Stack165, { gap: "md" }, !deedDid || !collectionId ? /* @__PURE__ */ React244.createElement(Alert41, { color: "yellow", styles: actionAlertStyles }, "Configure DID and claim collection in template mode before running this action.") : /* @__PURE__ */ React244.createElement(React244.Fragment, null, /* @__PURE__ */ React244.createElement(Text139, { size: "xs", c: "dimmed" }, "Collection: ", collectionId), /* @__PURE__ */ React244.createElement(
25413
+ return /* @__PURE__ */ React245.createElement(Stack165, { gap: "md" }, !deedDid || !collectionId ? /* @__PURE__ */ React245.createElement(Alert41, { color: "yellow", styles: actionAlertStyles }, "Configure DID and claim collection in template mode before running this action.") : /* @__PURE__ */ React245.createElement(React245.Fragment, null, /* @__PURE__ */ React245.createElement(Text139, { size: "xs", c: "dimmed" }, "Collection: ", collectionId), /* @__PURE__ */ React245.createElement(
25407
25414
  BasePrimaryButton,
25408
25415
  {
25409
- leftSection: loadingSurvey ? /* @__PURE__ */ React244.createElement(Loader40, { size: 14 }) : /* @__PURE__ */ React244.createElement(IconPlayerPlay4, { size: 14 }),
25416
+ leftSection: loadingSurvey ? /* @__PURE__ */ React245.createElement(Loader40, { size: 14 }) : /* @__PURE__ */ React245.createElement(IconPlayerPlay4, { size: 14 }),
25410
25417
  onClick: startSurvey,
25411
25418
  disabled: isDisabled || loadingSurvey || submitting || authChecking || !isServiceAgentAuthorized || !adminAddress
25412
25419
  },
25413
25420
  loadingSurvey ? "Loading Survey..." : "Start New Claim"
25414
- ), !authChecking && !isServiceAgentAuthorized && /* @__PURE__ */ React244.createElement(Alert41, { color: "yellow", styles: actionAlertStyles }, "You need service agent authorization for this collection to submit claims."), loadingClaims ? /* @__PURE__ */ React244.createElement(Text139, { size: "xs", c: "dimmed" }, "Loading your claims...") : claims.length === 0 ? /* @__PURE__ */ React244.createElement(Text139, { size: "sm", c: "dimmed" }, "No claims submitted for this collection yet.") : /* @__PURE__ */ React244.createElement(Stack165, { gap: "xs" }, /* @__PURE__ */ React244.createElement(Text139, { size: "sm", fw: 600 }, "Your Claims"), claims.map((claim) => {
25421
+ ), !authChecking && !isServiceAgentAuthorized && /* @__PURE__ */ React245.createElement(Alert41, { color: "yellow", styles: actionAlertStyles }, "You need service agent authorization for this collection to submit claims."), loadingClaims ? /* @__PURE__ */ React245.createElement(Text139, { size: "xs", c: "dimmed" }, "Loading your claims...") : claims.length === 0 ? /* @__PURE__ */ React245.createElement(Text139, { size: "sm", c: "dimmed" }, "No claims submitted for this collection yet.") : /* @__PURE__ */ React245.createElement(Stack165, { gap: "xs" }, /* @__PURE__ */ React245.createElement(Text139, { size: "sm", fw: 600 }, "Your Claims"), claims.map((claim) => {
25415
25422
  const status = getClaimStatusInfo(claim);
25416
25423
  const profile = profilesByDid[claim.agentDid];
25417
25424
  const displayName = profile?.displayname || claim.agentDid || claim.agentAddress;
25418
25425
  const avatarLabel = (profile?.displayname || claim.agentDid || claim.agentAddress || "?")[0]?.toUpperCase();
25419
- return /* @__PURE__ */ React244.createElement(ListItemContainer, { key: claim.claimId, isChecked: false }, /* @__PURE__ */ React244.createElement(Group92, { gap: 16, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React244.createElement(
25426
+ return /* @__PURE__ */ React245.createElement(ListItemContainer, { key: claim.claimId, isChecked: false }, /* @__PURE__ */ React245.createElement(Group92, { gap: 16, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React245.createElement(
25420
25427
  Box47,
25421
25428
  {
25422
25429
  style: {
@@ -25437,8 +25444,8 @@ var ClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isDisabl
25437
25444
  }
25438
25445
  },
25439
25446
  profile?.avatarUrl ? null : avatarLabel
25440
- ), /* @__PURE__ */ React244.createElement(Stack165, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React244.createElement(Text139, { fw: 500, size: "md", truncate: true, style: { lineHeight: 1.5 } }, displayName), /* @__PURE__ */ React244.createElement(Text139, { size: "xs", c: "dimmed", truncate: true }, truncateAddress2(claim.agentAddress)))), /* @__PURE__ */ React244.createElement(Stack165, { gap: 0, align: "flex-end", style: { flexShrink: 0, minWidth: 80 } }, /* @__PURE__ */ React244.createElement(Text139, { fw: 500, size: "md", c: status.color, style: { lineHeight: 1.5 } }, status.key === "approved" && /* @__PURE__ */ React244.createElement(IconCheck18, { size: 14, style: { verticalAlign: "middle", marginRight: 2 } }), status.label), /* @__PURE__ */ React244.createElement(Text139, { size: "xs", c: "dimmed" }, getTimeAgo2(claim.submissionDate || ""))));
25441
- }))), surveyModel && !loadingSurvey && /* @__PURE__ */ React244.createElement(Survey10, { model: surveyModel }), submitting && /* @__PURE__ */ React244.createElement(Group92, { gap: "xs" }, /* @__PURE__ */ React244.createElement(Loader40, { size: "xs" }), /* @__PURE__ */ React244.createElement(Text139, { size: "xs", c: "dimmed" }, "Submitting claim...")), error && /* @__PURE__ */ React244.createElement(Alert41, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React244.createElement(Alert41, { color: "red", styles: actionAlertStyles }, runtime.error.message));
25447
+ ), /* @__PURE__ */ React245.createElement(Stack165, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React245.createElement(Text139, { fw: 500, size: "md", truncate: true, style: { lineHeight: 1.5 } }, displayName), /* @__PURE__ */ React245.createElement(Text139, { size: "xs", c: "dimmed", truncate: true }, truncateAddress2(claim.agentAddress)))), /* @__PURE__ */ React245.createElement(Stack165, { gap: 0, align: "flex-end", style: { flexShrink: 0, minWidth: 80 } }, /* @__PURE__ */ React245.createElement(Text139, { fw: 500, size: "md", c: status.color, style: { lineHeight: 1.5 } }, status.key === "approved" && /* @__PURE__ */ React245.createElement(IconCheck18, { size: 14, style: { verticalAlign: "middle", marginRight: 2 } }), status.label), /* @__PURE__ */ React245.createElement(Text139, { size: "xs", c: "dimmed" }, getTimeAgo2(claim.submissionDate || ""))));
25448
+ }))), surveyModel && !loadingSurvey && /* @__PURE__ */ React245.createElement(StableSurvey, { model: surveyModel }), submitting && /* @__PURE__ */ React245.createElement(Group92, { gap: "xs" }, /* @__PURE__ */ React245.createElement(Loader40, { size: "xs" }), /* @__PURE__ */ React245.createElement(Text139, { size: "xs", c: "dimmed" }, "Submitting claim...")), error && /* @__PURE__ */ React245.createElement(Alert41, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React245.createElement(Alert41, { color: "red", styles: actionAlertStyles }, runtime.error.message));
25442
25449
  };
25443
25450
 
25444
25451
  // src/mantine/blocks/action/actionTypes/claim/index.ts
@@ -25448,7 +25455,7 @@ registerActionTypeUI("claim", {
25448
25455
  });
25449
25456
 
25450
25457
  // src/mantine/blocks/action/actionTypes/evaluateClaim/EvaluateClaimConfig.tsx
25451
- import React245, { useCallback as useCallback78, useEffect as useEffect81, useMemo as useMemo95, useState as useState98 } from "react";
25458
+ import React246, { useCallback as useCallback78, useEffect as useEffect81, useMemo as useMemo95, useState as useState98 } from "react";
25452
25459
  import { Alert as Alert42, Loader as Loader41, Stack as Stack166 } from "@mantine/core";
25453
25460
 
25454
25461
  // src/mantine/blocks/action/actionTypes/evaluateClaim/types.ts
@@ -25523,7 +25530,7 @@ var EvaluateClaimConfig = ({ inputs, onInputsChange, editor, blockId }) => {
25523
25530
  })),
25524
25531
  [collections]
25525
25532
  );
25526
- return /* @__PURE__ */ React245.createElement(Stack166, { gap: "md" }, /* @__PURE__ */ React245.createElement(
25533
+ return /* @__PURE__ */ React246.createElement(Stack166, { gap: "md" }, /* @__PURE__ */ React246.createElement(
25527
25534
  DataInput,
25528
25535
  {
25529
25536
  label: "DID",
@@ -25535,7 +25542,7 @@ var EvaluateClaimConfig = ({ inputs, onInputsChange, editor, blockId }) => {
25535
25542
  currentBlockId: blockId,
25536
25543
  required: true
25537
25544
  }
25538
- ), /* @__PURE__ */ React245.createElement(BasePrimaryButton, { onClick: fetchCollections, disabled: !local.deedDid.trim() || loadingCollections }, loadingCollections ? /* @__PURE__ */ React245.createElement(Loader41, { size: "xs", color: "dark" }) : "Get Collections"), error && /* @__PURE__ */ React245.createElement(Alert42, { color: "red", styles: actionAlertStyles }, error), collectionOptions.length > 0 && /* @__PURE__ */ React245.createElement(
25545
+ ), /* @__PURE__ */ React246.createElement(BasePrimaryButton, { onClick: fetchCollections, disabled: !local.deedDid.trim() || loadingCollections }, loadingCollections ? /* @__PURE__ */ React246.createElement(Loader41, { size: "xs", color: "dark" }) : "Get Collections"), error && /* @__PURE__ */ React246.createElement(Alert42, { color: "red", styles: actionAlertStyles }, error), collectionOptions.length > 0 && /* @__PURE__ */ React246.createElement(
25539
25546
  BaseSelect,
25540
25547
  {
25541
25548
  label: "Claim Collection",
@@ -25550,10 +25557,10 @@ var EvaluateClaimConfig = ({ inputs, onInputsChange, editor, blockId }) => {
25550
25557
  };
25551
25558
 
25552
25559
  // src/mantine/blocks/action/actionTypes/evaluateClaim/EvaluateClaimFlowDetail.tsx
25553
- import React246, { useCallback as useCallback79, useEffect as useEffect82, useMemo as useMemo96, useState as useState99 } from "react";
25560
+ import React247, { useCallback as useCallback79, useEffect as useEffect82, useMemo as useMemo96, useState as useState99 } from "react";
25554
25561
  import { ActionIcon as ActionIcon35, Alert as Alert43, Box as Box48, Button as Button43, Checkbox as Checkbox12, Collapse as Collapse10, Divider as Divider23, Group as Group93, Loader as Loader42, ScrollArea as ScrollArea8, Stack as Stack167, Text as Text140, UnstyledButton as UnstyledButton4 } from "@mantine/core";
25555
25562
  import { IconArrowLeft as IconArrowLeft7, IconCheck as IconCheck19, IconChevronDown as IconChevronDown10, IconChevronRight as IconChevronRight13, IconFilter as IconFilter2, IconThumbDown as IconThumbDown2, IconThumbUp as IconThumbUp4 } from "@tabler/icons-react";
25556
- import { Survey as Survey11, SurveyModel as SurveyModel11 } from "@ixo/surveys";
25563
+ import { SurveyModel as SurveyModel11 } from "@ixo/surveys";
25557
25564
  var USDC_DENOM5 = "ibc/6BBE9BD4246F8E04948D5A4EEE7164B2630263B9EBB5E7DC5F0A46C62A2FF97B";
25558
25565
  var IXO_DENOM5 = "uixo";
25559
25566
  var CUSTOM_DENOM2 = "__custom__";
@@ -26022,7 +26029,7 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26022
26029
  const selectedClaimProfile = profilesByDid[selectedClaim.agentDid];
26023
26030
  const selectedDisplayName = selectedClaimProfile?.displayname || selectedClaim.agentDid || selectedClaim.agentAddress;
26024
26031
  const selectedAvatarLabel = (selectedClaimProfile?.displayname || selectedClaim.agentDid || selectedClaim.agentAddress || "?")[0]?.toUpperCase();
26025
- return /* @__PURE__ */ React246.createElement(Stack167, { gap: "md" }, /* @__PURE__ */ React246.createElement(Group93, { gap: "xs", align: "center" }, /* @__PURE__ */ React246.createElement(ActionIcon35, { variant: "subtle", color: "gray", size: "sm", onClick: () => setSelectedClaimId("") }, /* @__PURE__ */ React246.createElement(IconArrowLeft7, { size: 16 })), /* @__PURE__ */ React246.createElement(Text140, { fw: 500, size: "sm", title: selectedClaim.claimId }, "Claim #", truncateId(selectedClaim.claimId))), /* @__PURE__ */ React246.createElement(Group93, { gap: 16, align: "center", style: { width: "100%" } }, /* @__PURE__ */ React246.createElement(
26032
+ return /* @__PURE__ */ React247.createElement(Stack167, { gap: "md" }, /* @__PURE__ */ React247.createElement(Group93, { gap: "xs", align: "center" }, /* @__PURE__ */ React247.createElement(ActionIcon35, { variant: "subtle", color: "gray", size: "sm", onClick: () => setSelectedClaimId("") }, /* @__PURE__ */ React247.createElement(IconArrowLeft7, { size: 16 })), /* @__PURE__ */ React247.createElement(Text140, { fw: 500, size: "sm", title: selectedClaim.claimId }, "Claim #", truncateId(selectedClaim.claimId))), /* @__PURE__ */ React247.createElement(Group93, { gap: 16, align: "center", style: { width: "100%" } }, /* @__PURE__ */ React247.createElement(
26026
26033
  Box48,
26027
26034
  {
26028
26035
  style: {
@@ -26043,7 +26050,7 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26043
26050
  }
26044
26051
  },
26045
26052
  selectedClaimProfile?.avatarUrl ? null : selectedAvatarLabel
26046
- ), /* @__PURE__ */ React246.createElement(Stack167, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React246.createElement(Text140, { fw: 500, size: "md", truncate: true }, selectedDisplayName), /* @__PURE__ */ React246.createElement(Text140, { size: "xs", c: "dimmed", truncate: true }, truncateAddress3(selectedClaim.agentAddress))), /* @__PURE__ */ React246.createElement(Stack167, { gap: 0, align: "flex-end", style: { flexShrink: 0 } }, /* @__PURE__ */ React246.createElement(Text140, { fw: 500, size: "md", c: claimStatus.color }, claimStatus.key === "approved" && /* @__PURE__ */ React246.createElement(IconCheck19, { size: 14, style: { verticalAlign: "middle", marginRight: 4 } }), claimStatus.label), /* @__PURE__ */ React246.createElement(Text140, { size: "xs", c: "dimmed" }, getTimeAgo3(selectedClaim.submissionDate || "")))), /* @__PURE__ */ React246.createElement(
26053
+ ), /* @__PURE__ */ React247.createElement(Stack167, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React247.createElement(Text140, { fw: 500, size: "md", truncate: true }, selectedDisplayName), /* @__PURE__ */ React247.createElement(Text140, { size: "xs", c: "dimmed", truncate: true }, truncateAddress3(selectedClaim.agentAddress))), /* @__PURE__ */ React247.createElement(Stack167, { gap: 0, align: "flex-end", style: { flexShrink: 0 } }, /* @__PURE__ */ React247.createElement(Text140, { fw: 500, size: "md", c: claimStatus.color }, claimStatus.key === "approved" && /* @__PURE__ */ React247.createElement(IconCheck19, { size: 14, style: { verticalAlign: "middle", marginRight: 4 } }), claimStatus.label), /* @__PURE__ */ React247.createElement(Text140, { size: "xs", c: "dimmed" }, getTimeAgo3(selectedClaim.submissionDate || "")))), /* @__PURE__ */ React247.createElement(
26047
26054
  Box48,
26048
26055
  {
26049
26056
  p: "sm",
@@ -26052,9 +26059,9 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26052
26059
  background: "var(--mantine-color-neutralColor-5)"
26053
26060
  }
26054
26061
  },
26055
- /* @__PURE__ */ React246.createElement(UnstyledButton4, { onClick: () => setSubmissionOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React246.createElement(Group93, { gap: "xs", align: "center" }, submissionOpen ? /* @__PURE__ */ React246.createElement(IconChevronDown10, { size: 16 }) : /* @__PURE__ */ React246.createElement(IconChevronRight13, { size: 16 }), /* @__PURE__ */ React246.createElement(Text140, { fw: 500, size: "sm" }, "Submission"))),
26056
- /* @__PURE__ */ React246.createElement(Collapse10, { in: submissionOpen }, /* @__PURE__ */ React246.createElement(Box48, { mt: "sm" }, surveyLoading ? /* @__PURE__ */ React246.createElement(Group93, { gap: "xs" }, /* @__PURE__ */ React246.createElement(Loader42, { size: "xs" }), /* @__PURE__ */ React246.createElement(Text140, { size: "xs", c: "dimmed" }, "Loading submission details...")) : surveyModel ? /* @__PURE__ */ React246.createElement(ScrollArea8, { h: 280 }, /* @__PURE__ */ React246.createElement(Survey11, { model: surveyModel })) : /* @__PURE__ */ React246.createElement(Text140, { size: "xs", c: "dimmed" }, "No submission template/data available.")))
26057
- ), /* @__PURE__ */ React246.createElement(
26062
+ /* @__PURE__ */ React247.createElement(UnstyledButton4, { onClick: () => setSubmissionOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React247.createElement(Group93, { gap: "xs", align: "center" }, submissionOpen ? /* @__PURE__ */ React247.createElement(IconChevronDown10, { size: 16 }) : /* @__PURE__ */ React247.createElement(IconChevronRight13, { size: 16 }), /* @__PURE__ */ React247.createElement(Text140, { fw: 500, size: "sm" }, "Submission"))),
26063
+ /* @__PURE__ */ React247.createElement(Collapse10, { in: submissionOpen }, /* @__PURE__ */ React247.createElement(Box48, { mt: "sm" }, surveyLoading ? /* @__PURE__ */ React247.createElement(Group93, { gap: "xs" }, /* @__PURE__ */ React247.createElement(Loader42, { size: "xs" }), /* @__PURE__ */ React247.createElement(Text140, { size: "xs", c: "dimmed" }, "Loading submission details...")) : surveyModel ? /* @__PURE__ */ React247.createElement(ScrollArea8, { h: 280 }, /* @__PURE__ */ React247.createElement(StableSurvey, { model: surveyModel })) : /* @__PURE__ */ React247.createElement(Text140, { size: "xs", c: "dimmed" }, "No submission template/data available.")))
26064
+ ), /* @__PURE__ */ React247.createElement(
26058
26065
  Box48,
26059
26066
  {
26060
26067
  p: "sm",
@@ -26063,9 +26070,9 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26063
26070
  background: "var(--mantine-color-neutralColor-5)"
26064
26071
  }
26065
26072
  },
26066
- /* @__PURE__ */ React246.createElement(UnstyledButton4, { onClick: () => setAiEvalOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React246.createElement(Group93, { gap: "xs", align: "center" }, aiEvalOpen ? /* @__PURE__ */ React246.createElement(IconChevronDown10, { size: 16 }) : /* @__PURE__ */ React246.createElement(IconChevronRight13, { size: 16 }), /* @__PURE__ */ React246.createElement(Text140, { fw: 500, size: "sm" }, "AI Evaluation"))),
26067
- /* @__PURE__ */ React246.createElement(Collapse10, { in: aiEvalOpen }, /* @__PURE__ */ React246.createElement(Box48, { mt: "sm" }, evaluationLoading ? /* @__PURE__ */ React246.createElement(Group93, { gap: "xs" }, /* @__PURE__ */ React246.createElement(Loader42, { size: "xs" }), /* @__PURE__ */ React246.createElement(Text140, { size: "xs", c: "dimmed" }, "Running rubric evaluation...")) : evaluationResult ? /* @__PURE__ */ React246.createElement(ScrollArea8, { h: 280 }, /* @__PURE__ */ React246.createElement(RubricEvaluationResults, { evaluation: evaluationResult })) : /* @__PURE__ */ React246.createElement(Text140, { size: "xs", c: "dimmed" }, "No rubric evaluation available for this claim.")))
26068
- ), (outcomeTemplateLoading || outcomeTemplateJson) && /* @__PURE__ */ React246.createElement(
26073
+ /* @__PURE__ */ React247.createElement(UnstyledButton4, { onClick: () => setAiEvalOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React247.createElement(Group93, { gap: "xs", align: "center" }, aiEvalOpen ? /* @__PURE__ */ React247.createElement(IconChevronDown10, { size: 16 }) : /* @__PURE__ */ React247.createElement(IconChevronRight13, { size: 16 }), /* @__PURE__ */ React247.createElement(Text140, { fw: 500, size: "sm" }, "AI Evaluation"))),
26074
+ /* @__PURE__ */ React247.createElement(Collapse10, { in: aiEvalOpen }, /* @__PURE__ */ React247.createElement(Box48, { mt: "sm" }, evaluationLoading ? /* @__PURE__ */ React247.createElement(Group93, { gap: "xs" }, /* @__PURE__ */ React247.createElement(Loader42, { size: "xs" }), /* @__PURE__ */ React247.createElement(Text140, { size: "xs", c: "dimmed" }, "Running rubric evaluation...")) : evaluationResult ? /* @__PURE__ */ React247.createElement(ScrollArea8, { h: 280 }, /* @__PURE__ */ React247.createElement(RubricEvaluationResults, { evaluation: evaluationResult })) : /* @__PURE__ */ React247.createElement(Text140, { size: "xs", c: "dimmed" }, "No rubric evaluation available for this claim.")))
26075
+ ), (outcomeTemplateLoading || outcomeTemplateJson) && /* @__PURE__ */ React247.createElement(
26069
26076
  Box48,
26070
26077
  {
26071
26078
  p: "sm",
@@ -26074,9 +26081,9 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26074
26081
  background: "var(--mantine-color-neutralColor-5)"
26075
26082
  }
26076
26083
  },
26077
- /* @__PURE__ */ React246.createElement(UnstyledButton4, { onClick: () => setOutcomeOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React246.createElement(Group93, { gap: "xs", align: "center" }, outcomeOpen ? /* @__PURE__ */ React246.createElement(IconChevronDown10, { size: 16 }) : /* @__PURE__ */ React246.createElement(IconChevronRight13, { size: 16 }), /* @__PURE__ */ React246.createElement(Text140, { fw: 500, size: "sm" }, "Outcome"), outcomeTemplateJson && !outcomeComplete && /* @__PURE__ */ React246.createElement(Text140, { size: "xs", c: "yellow" }, "(required)"), outcomeComplete && /* @__PURE__ */ React246.createElement(IconCheck19, { size: 14, color: "var(--mantine-color-green-6)" }))),
26078
- /* @__PURE__ */ React246.createElement(Collapse10, { in: outcomeOpen }, /* @__PURE__ */ React246.createElement(Box48, { mt: "sm" }, outcomeTemplateLoading ? /* @__PURE__ */ React246.createElement(Group93, { gap: "xs" }, /* @__PURE__ */ React246.createElement(Loader42, { size: "xs" }), /* @__PURE__ */ React246.createElement(Text140, { size: "xs", c: "dimmed" }, "Loading evaluation template...")) : outcomeSurveyModel ? /* @__PURE__ */ React246.createElement(ScrollArea8, { h: 320 }, /* @__PURE__ */ React246.createElement(Survey11, { model: outcomeSurveyModel })) : /* @__PURE__ */ React246.createElement(Text140, { size: "xs", c: "dimmed" }, "No evaluation template available.")))
26079
- ), /* @__PURE__ */ React246.createElement(
26084
+ /* @__PURE__ */ React247.createElement(UnstyledButton4, { onClick: () => setOutcomeOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React247.createElement(Group93, { gap: "xs", align: "center" }, outcomeOpen ? /* @__PURE__ */ React247.createElement(IconChevronDown10, { size: 16 }) : /* @__PURE__ */ React247.createElement(IconChevronRight13, { size: 16 }), /* @__PURE__ */ React247.createElement(Text140, { fw: 500, size: "sm" }, "Outcome"), outcomeTemplateJson && !outcomeComplete && /* @__PURE__ */ React247.createElement(Text140, { size: "xs", c: "yellow" }, "(required)"), outcomeComplete && /* @__PURE__ */ React247.createElement(IconCheck19, { size: 14, color: "var(--mantine-color-green-6)" }))),
26085
+ /* @__PURE__ */ React247.createElement(Collapse10, { in: outcomeOpen }, /* @__PURE__ */ React247.createElement(Box48, { mt: "sm" }, outcomeTemplateLoading ? /* @__PURE__ */ React247.createElement(Group93, { gap: "xs" }, /* @__PURE__ */ React247.createElement(Loader42, { size: "xs" }), /* @__PURE__ */ React247.createElement(Text140, { size: "xs", c: "dimmed" }, "Loading evaluation template...")) : outcomeSurveyModel ? /* @__PURE__ */ React247.createElement(ScrollArea8, { h: 320 }, /* @__PURE__ */ React247.createElement(StableSurvey, { model: outcomeSurveyModel })) : /* @__PURE__ */ React247.createElement(Text140, { size: "xs", c: "dimmed" }, "No evaluation template available.")))
26086
+ ), /* @__PURE__ */ React247.createElement(
26080
26087
  Box48,
26081
26088
  {
26082
26089
  p: "sm",
@@ -26085,8 +26092,8 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26085
26092
  background: "var(--mantine-color-neutralColor-5)"
26086
26093
  }
26087
26094
  },
26088
- /* @__PURE__ */ React246.createElement(UnstyledButton4, { onClick: () => setEvaluationOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React246.createElement(Group93, { gap: "xs", align: "center" }, evaluationOpen ? /* @__PURE__ */ React246.createElement(IconChevronDown10, { size: 16 }) : /* @__PURE__ */ React246.createElement(IconChevronRight13, { size: 16 }), /* @__PURE__ */ React246.createElement(Text140, { fw: 500, size: "sm" }, "Evaluation"))),
26089
- /* @__PURE__ */ React246.createElement(Collapse10, { in: evaluationOpen }, /* @__PURE__ */ React246.createElement(Stack167, { gap: "md", mt: "sm" }, /* @__PURE__ */ React246.createElement(Divider23, { color: "rgba(255,255,255,0.06)" }), /* @__PURE__ */ React246.createElement(Text140, { size: "xs", c: "dimmed" }, "Payment (optional custom payouts)"), paymentRows.map((row, index) => /* @__PURE__ */ React246.createElement(Stack167, { key: row.id, gap: 8 }, /* @__PURE__ */ React246.createElement(Group93, { justify: "space-between", align: "center" }, /* @__PURE__ */ React246.createElement(Text140, { size: "sm" }, "Token ", index + 1), paymentRows.length > 1 && /* @__PURE__ */ React246.createElement(Button43, { variant: "subtle", size: "compact-xs", color: "red", onClick: () => removePaymentRow(row.id), disabled: isDisabled || submitting }, "Remove")), /* @__PURE__ */ React246.createElement(
26095
+ /* @__PURE__ */ React247.createElement(UnstyledButton4, { onClick: () => setEvaluationOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React247.createElement(Group93, { gap: "xs", align: "center" }, evaluationOpen ? /* @__PURE__ */ React247.createElement(IconChevronDown10, { size: 16 }) : /* @__PURE__ */ React247.createElement(IconChevronRight13, { size: 16 }), /* @__PURE__ */ React247.createElement(Text140, { fw: 500, size: "sm" }, "Evaluation"))),
26096
+ /* @__PURE__ */ React247.createElement(Collapse10, { in: evaluationOpen }, /* @__PURE__ */ React247.createElement(Stack167, { gap: "md", mt: "sm" }, /* @__PURE__ */ React247.createElement(Divider23, { color: "rgba(255,255,255,0.06)" }), /* @__PURE__ */ React247.createElement(Text140, { size: "xs", c: "dimmed" }, "Payment (optional custom payouts)"), paymentRows.map((row, index) => /* @__PURE__ */ React247.createElement(Stack167, { key: row.id, gap: 8 }, /* @__PURE__ */ React247.createElement(Group93, { justify: "space-between", align: "center" }, /* @__PURE__ */ React247.createElement(Text140, { size: "sm" }, "Token ", index + 1), paymentRows.length > 1 && /* @__PURE__ */ React247.createElement(Button43, { variant: "subtle", size: "compact-xs", color: "red", onClick: () => removePaymentRow(row.id), disabled: isDisabled || submitting }, "Remove")), /* @__PURE__ */ React247.createElement(
26090
26097
  BaseSelect,
26091
26098
  {
26092
26099
  value: row.denom,
@@ -26099,7 +26106,7 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26099
26106
  clearable: false,
26100
26107
  disabled: isDisabled || submitting
26101
26108
  }
26102
- ), row.denom === CUSTOM_DENOM2 && /* @__PURE__ */ React246.createElement(
26109
+ ), row.denom === CUSTOM_DENOM2 && /* @__PURE__ */ React247.createElement(
26103
26110
  BaseTextInput,
26104
26111
  {
26105
26112
  placeholder: "Custom denom (e.g. ibc/... or uixo)",
@@ -26107,7 +26114,7 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26107
26114
  onChange: (event) => updatePaymentRow(row.id, { customDenom: event.currentTarget.value }),
26108
26115
  disabled: isDisabled || submitting
26109
26116
  }
26110
- ), /* @__PURE__ */ React246.createElement(
26117
+ ), /* @__PURE__ */ React247.createElement(
26111
26118
  BaseNumberInput,
26112
26119
  {
26113
26120
  min: 0,
@@ -26116,24 +26123,24 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26116
26123
  placeholder: "Amount",
26117
26124
  disabled: isDisabled || submitting
26118
26125
  }
26119
- ))), /* @__PURE__ */ React246.createElement(Button43, { variant: "light", size: "xs", onClick: addPaymentRow, disabled: isDisabled || submitting }, "Add Payment"), /* @__PURE__ */ React246.createElement(Checkbox12, { label: "Generate UDID proof before evaluation", checked: createUdid, onChange: (event) => setCreateUdid(event.currentTarget.checked) })))
26120
- ), outcomeNotReady && /* @__PURE__ */ React246.createElement(Alert43, { color: "yellow", styles: actionAlertStyles }, "Complete the Outcome evaluation template before approving or rejecting."), isClaimAlreadyEvaluated && /* @__PURE__ */ React246.createElement(Alert43, { color: "yellow", styles: actionAlertStyles }, "This claim is already evaluated. Re-evaluation is disabled."), !authChecking && !isEvaluatorAuthorized && /* @__PURE__ */ React246.createElement(Alert43, { color: "yellow", styles: actionAlertStyles }, "You need evaluator authorization for this collection to approve or reject claims."), /* @__PURE__ */ React246.createElement(Group93, { gap: "xs" }, /* @__PURE__ */ React246.createElement(
26126
+ ))), /* @__PURE__ */ React247.createElement(Button43, { variant: "light", size: "xs", onClick: addPaymentRow, disabled: isDisabled || submitting }, "Add Payment"), /* @__PURE__ */ React247.createElement(Checkbox12, { label: "Generate UDID proof before evaluation", checked: createUdid, onChange: (event) => setCreateUdid(event.currentTarget.checked) })))
26127
+ ), outcomeNotReady && /* @__PURE__ */ React247.createElement(Alert43, { color: "yellow", styles: actionAlertStyles }, "Complete the Outcome evaluation template before approving or rejecting."), isClaimAlreadyEvaluated && /* @__PURE__ */ React247.createElement(Alert43, { color: "yellow", styles: actionAlertStyles }, "This claim is already evaluated. Re-evaluation is disabled."), !authChecking && !isEvaluatorAuthorized && /* @__PURE__ */ React247.createElement(Alert43, { color: "yellow", styles: actionAlertStyles }, "You need evaluator authorization for this collection to approve or reject claims."), /* @__PURE__ */ React247.createElement(Group93, { gap: "xs" }, /* @__PURE__ */ React247.createElement(
26121
26128
  BasePrimaryButton,
26122
26129
  {
26123
- leftSection: /* @__PURE__ */ React246.createElement(IconThumbUp4, { size: 16 }),
26130
+ leftSection: /* @__PURE__ */ React247.createElement(IconThumbUp4, { size: 16 }),
26124
26131
  onClick: () => executeEvaluation("approve"),
26125
26132
  disabled: isDisabled || submitting || authChecking || !isEvaluatorAuthorized || !adminAddress || isClaimAlreadyEvaluated || outcomeNotReady
26126
26133
  },
26127
26134
  "Approve"
26128
- ), /* @__PURE__ */ React246.createElement(
26135
+ ), /* @__PURE__ */ React247.createElement(
26129
26136
  BasePrimaryButton,
26130
26137
  {
26131
- leftSection: /* @__PURE__ */ React246.createElement(IconThumbDown2, { size: 16 }),
26138
+ leftSection: /* @__PURE__ */ React247.createElement(IconThumbDown2, { size: 16 }),
26132
26139
  onClick: () => executeEvaluation("reject"),
26133
26140
  disabled: isDisabled || submitting || authChecking || !isEvaluatorAuthorized || !adminAddress || isClaimAlreadyEvaluated || outcomeNotReady
26134
26141
  },
26135
26142
  "Reject"
26136
- )), error && /* @__PURE__ */ React246.createElement(Alert43, { color: "red", styles: actionAlertStyles }, error));
26143
+ )), error && /* @__PURE__ */ React247.createElement(Alert43, { color: "red", styles: actionAlertStyles }, error));
26137
26144
  }
26138
26145
  const filterTabs = [
26139
26146
  { value: "all", label: "All" },
@@ -26141,7 +26148,7 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26141
26148
  { value: "approved", label: "Approved" },
26142
26149
  { value: "rejected", label: "Rejected" }
26143
26150
  ];
26144
- return /* @__PURE__ */ React246.createElement(Stack167, { gap: "md" }, !deedDid || !collectionId ? /* @__PURE__ */ React246.createElement(Alert43, { color: "yellow", styles: actionAlertStyles }, "Configure DID and claim collection in template mode before running this action.") : /* @__PURE__ */ React246.createElement(React246.Fragment, null, /* @__PURE__ */ React246.createElement(Group93, { justify: "space-between", align: "center" }, /* @__PURE__ */ React246.createElement(Group93, { gap: 0 }, filterTabs.map((tab) => /* @__PURE__ */ React246.createElement(
26151
+ return /* @__PURE__ */ React247.createElement(Stack167, { gap: "md" }, !deedDid || !collectionId ? /* @__PURE__ */ React247.createElement(Alert43, { color: "yellow", styles: actionAlertStyles }, "Configure DID and claim collection in template mode before running this action.") : /* @__PURE__ */ React247.createElement(React247.Fragment, null, /* @__PURE__ */ React247.createElement(Group93, { justify: "space-between", align: "center" }, /* @__PURE__ */ React247.createElement(Group93, { gap: 0 }, filterTabs.map((tab) => /* @__PURE__ */ React247.createElement(
26145
26152
  UnstyledButton4,
26146
26153
  {
26147
26154
  key: tab.value,
@@ -26154,13 +26161,13 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26154
26161
  transition: "background 150ms ease"
26155
26162
  }
26156
26163
  },
26157
- /* @__PURE__ */ React246.createElement(Text140, { size: "sm", fw: 500, c: activeFilter === tab.value ? "white" : "dimmed" }, tab.label)
26158
- ))), /* @__PURE__ */ React246.createElement(ActionIcon35, { variant: "subtle", color: "gray", size: "sm" }, /* @__PURE__ */ React246.createElement(IconFilter2, { size: 16 }))), loadingClaims && /* @__PURE__ */ React246.createElement(Group93, { gap: "xs", justify: "center", py: "md" }, /* @__PURE__ */ React246.createElement(Loader42, { size: "xs" }), /* @__PURE__ */ React246.createElement(Text140, { size: "xs", c: "dimmed" }, "Loading claims...")), !loadingClaims && filteredClaims.length === 0 && /* @__PURE__ */ React246.createElement(Text140, { size: "sm", c: "dimmed", ta: "center", py: "md" }, claims.length === 0 ? "No claims available for this collection." : `No ${activeFilter} claims found.`), filteredClaims.length > 0 && /* @__PURE__ */ React246.createElement(Stack167, { gap: 12 }, filteredClaims.map((claim) => {
26164
+ /* @__PURE__ */ React247.createElement(Text140, { size: "sm", fw: 500, c: activeFilter === tab.value ? "white" : "dimmed" }, tab.label)
26165
+ ))), /* @__PURE__ */ React247.createElement(ActionIcon35, { variant: "subtle", color: "gray", size: "sm" }, /* @__PURE__ */ React247.createElement(IconFilter2, { size: 16 }))), loadingClaims && /* @__PURE__ */ React247.createElement(Group93, { gap: "xs", justify: "center", py: "md" }, /* @__PURE__ */ React247.createElement(Loader42, { size: "xs" }), /* @__PURE__ */ React247.createElement(Text140, { size: "xs", c: "dimmed" }, "Loading claims...")), !loadingClaims && filteredClaims.length === 0 && /* @__PURE__ */ React247.createElement(Text140, { size: "sm", c: "dimmed", ta: "center", py: "md" }, claims.length === 0 ? "No claims available for this collection." : `No ${activeFilter} claims found.`), filteredClaims.length > 0 && /* @__PURE__ */ React247.createElement(Stack167, { gap: 12 }, filteredClaims.map((claim) => {
26159
26166
  const status = getClaimStatusInfo(claim);
26160
26167
  const profile = profilesByDid[claim.agentDid];
26161
26168
  const displayName = profile?.displayname || claim.agentDid || claim.agentAddress;
26162
26169
  const avatarLabel = (profile?.displayname || claim.agentDid || claim.agentAddress || "?")[0]?.toUpperCase();
26163
- return /* @__PURE__ */ React246.createElement(ListItemContainer, { key: claim.claimId, isChecked: false, onClick: () => setSelectedClaimId(claim.claimId) }, /* @__PURE__ */ React246.createElement(Group93, { gap: 16, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React246.createElement(
26170
+ return /* @__PURE__ */ React247.createElement(ListItemContainer, { key: claim.claimId, isChecked: false, onClick: () => setSelectedClaimId(claim.claimId) }, /* @__PURE__ */ React247.createElement(Group93, { gap: 16, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React247.createElement(
26164
26171
  Box48,
26165
26172
  {
26166
26173
  style: {
@@ -26181,8 +26188,8 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26181
26188
  }
26182
26189
  },
26183
26190
  profile?.avatarUrl ? null : avatarLabel
26184
- ), /* @__PURE__ */ React246.createElement(Stack167, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React246.createElement(Text140, { fw: 500, size: "md", truncate: true, style: { lineHeight: 1.5 } }, displayName), /* @__PURE__ */ React246.createElement(Text140, { size: "xs", c: "dimmed", truncate: true }, truncateAddress3(claim.agentAddress)))), /* @__PURE__ */ React246.createElement(Stack167, { gap: 0, align: "flex-end", style: { flexShrink: 0, minWidth: 80 } }, /* @__PURE__ */ React246.createElement(Text140, { fw: 500, size: "md", c: status.color, style: { lineHeight: 1.5 } }, status.key === "approved" && /* @__PURE__ */ React246.createElement(IconCheck19, { size: 14, style: { verticalAlign: "middle", marginRight: 2 } }), status.label), /* @__PURE__ */ React246.createElement(Text140, { size: "xs", c: "dimmed" }, getTimeAgo3(claim.submissionDate || ""))));
26185
- }))), error && /* @__PURE__ */ React246.createElement(Alert43, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React246.createElement(Alert43, { color: "red", styles: actionAlertStyles }, runtime.error.message));
26191
+ ), /* @__PURE__ */ React247.createElement(Stack167, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React247.createElement(Text140, { fw: 500, size: "md", truncate: true, style: { lineHeight: 1.5 } }, displayName), /* @__PURE__ */ React247.createElement(Text140, { size: "xs", c: "dimmed", truncate: true }, truncateAddress3(claim.agentAddress)))), /* @__PURE__ */ React247.createElement(Stack167, { gap: 0, align: "flex-end", style: { flexShrink: 0, minWidth: 80 } }, /* @__PURE__ */ React247.createElement(Text140, { fw: 500, size: "md", c: status.color, style: { lineHeight: 1.5 } }, status.key === "approved" && /* @__PURE__ */ React247.createElement(IconCheck19, { size: 14, style: { verticalAlign: "middle", marginRight: 2 } }), status.label), /* @__PURE__ */ React247.createElement(Text140, { size: "xs", c: "dimmed" }, getTimeAgo3(claim.submissionDate || ""))));
26192
+ }))), error && /* @__PURE__ */ React247.createElement(Alert43, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React247.createElement(Alert43, { color: "red", styles: actionAlertStyles }, runtime.error.message));
26186
26193
  };
26187
26194
 
26188
26195
  // src/mantine/blocks/action/actionTypes/evaluateClaim/index.ts
@@ -26192,7 +26199,7 @@ registerActionTypeUI("evaluateClaim", {
26192
26199
  });
26193
26200
 
26194
26201
  // src/mantine/blocks/action/actionTypes/proposalCreate/ProposalCreateConfig.tsx
26195
- import React247, { useCallback as useCallback80, useEffect as useEffect83, useState as useState100 } from "react";
26202
+ import React248, { useCallback as useCallback80, useEffect as useEffect83, useState as useState100 } from "react";
26196
26203
  import { Divider as Divider24, Loader as Loader43, SegmentedControl as SegmentedControl6, Stack as Stack168, Text as Text141 } from "@mantine/core";
26197
26204
 
26198
26205
  // src/mantine/blocks/action/actionTypes/proposalCreate/types.ts
@@ -26268,7 +26275,7 @@ var ProposalCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26268
26275
  },
26269
26276
  [update]
26270
26277
  );
26271
- return /* @__PURE__ */ React247.createElement(Stack168, { gap: "lg" }, /* @__PURE__ */ React247.createElement(Stack168, { gap: "xs" }, /* @__PURE__ */ React247.createElement(Text141, { size: "sm", fw: 600 }, "DAO Group"), /* @__PURE__ */ React247.createElement(
26278
+ return /* @__PURE__ */ React248.createElement(Stack168, { gap: "lg" }, /* @__PURE__ */ React248.createElement(Stack168, { gap: "xs" }, /* @__PURE__ */ React248.createElement(Text141, { size: "sm", fw: 600 }, "DAO Group"), /* @__PURE__ */ React248.createElement(
26272
26279
  SegmentedControl6,
26273
26280
  {
26274
26281
  value: inputMode,
@@ -26279,7 +26286,7 @@ var ProposalCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26279
26286
  ],
26280
26287
  fullWidth: true
26281
26288
  }
26282
- ), inputMode === "select" ? /* @__PURE__ */ React247.createElement(
26289
+ ), inputMode === "select" ? /* @__PURE__ */ React248.createElement(
26283
26290
  BaseSelect,
26284
26291
  {
26285
26292
  placeholder: loadingGroups ? "Loading groups..." : "Select a DAO group",
@@ -26297,10 +26304,10 @@ var ProposalCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26297
26304
  label: group.name
26298
26305
  })),
26299
26306
  disabled: loadingGroups,
26300
- rightSection: loadingGroups ? /* @__PURE__ */ React247.createElement(Loader43, { size: "xs" }) : void 0,
26307
+ rightSection: loadingGroups ? /* @__PURE__ */ React248.createElement(Loader43, { size: "xs" }) : void 0,
26301
26308
  searchable: true
26302
26309
  }
26303
- ) : /* @__PURE__ */ React247.createElement(
26310
+ ) : /* @__PURE__ */ React248.createElement(
26304
26311
  BaseTextInput,
26305
26312
  {
26306
26313
  placeholder: "Enter DAO core address",
@@ -26311,7 +26318,7 @@ var ProposalCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26311
26318
  update({ coreAddress: newAddress });
26312
26319
  }
26313
26320
  }
26314
- )), /* @__PURE__ */ React247.createElement(Divider24, { variant: "dashed" }), /* @__PURE__ */ React247.createElement(
26321
+ )), /* @__PURE__ */ React248.createElement(Divider24, { variant: "dashed" }), /* @__PURE__ */ React248.createElement(
26315
26322
  DataInput,
26316
26323
  {
26317
26324
  label: "Proposal Title",
@@ -26322,7 +26329,7 @@ var ProposalCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26322
26329
  currentBlockId: blockId,
26323
26330
  required: true
26324
26331
  }
26325
- ), /* @__PURE__ */ React247.createElement(
26332
+ ), /* @__PURE__ */ React248.createElement(
26326
26333
  DataInput,
26327
26334
  {
26328
26335
  label: "Proposal Description",
@@ -26333,11 +26340,11 @@ var ProposalCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26333
26340
  currentBlockId: blockId,
26334
26341
  required: true
26335
26342
  }
26336
- ), /* @__PURE__ */ React247.createElement(Divider24, { variant: "dashed" }), /* @__PURE__ */ React247.createElement(Text141, { size: "sm", fw: 600 }, "Governance Actions"), /* @__PURE__ */ React247.createElement(Text141, { size: "xs", c: "dimmed" }, "Actions to execute on-chain if the proposal passes."), /* @__PURE__ */ React247.createElement(ActionsTab2, { actions: local.governanceActions, onActionsChange: handleActionsChange, isProposalCreated: false }));
26343
+ ), /* @__PURE__ */ React248.createElement(Divider24, { variant: "dashed" }), /* @__PURE__ */ React248.createElement(Text141, { size: "sm", fw: 600 }, "Governance Actions"), /* @__PURE__ */ React248.createElement(Text141, { size: "xs", c: "dimmed" }, "Actions to execute on-chain if the proposal passes."), /* @__PURE__ */ React248.createElement(ActionsTab2, { actions: local.governanceActions, onActionsChange: handleActionsChange, isProposalCreated: false }));
26337
26344
  };
26338
26345
 
26339
26346
  // src/mantine/blocks/action/actionTypes/proposalCreate/ProposalCreateFlowDetail.tsx
26340
- import React248, { useCallback as useCallback81, useEffect as useEffect84, useMemo as useMemo97, useState as useState101 } from "react";
26347
+ import React249, { useCallback as useCallback81, useEffect as useEffect84, useMemo as useMemo97, useState as useState101 } from "react";
26341
26348
  import { Alert as Alert44, Badge as Badge42, Button as Button44, Card as Card23, Group as Group94, Loader as Loader44, Stack as Stack169, Text as Text142 } from "@mantine/core";
26342
26349
  import { IconPlus as IconPlus10, IconPlayerPlay as IconPlayerPlay5 } from "@tabler/icons-react";
26343
26350
  var CHAIN_STATUSES2 = ["open", "passed", "rejected", "executed", "closed", "execution_failed", "veto_timelock"];
@@ -26570,7 +26577,7 @@ var ProposalCreateFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26570
26577
  updateRuntime({ state: "completed" });
26571
26578
  }
26572
26579
  }, [currentStatus, runtime.state, updateRuntime]);
26573
- return /* @__PURE__ */ React248.createElement(Stack169, { gap: "md" }, /* @__PURE__ */ React248.createElement(Stack169, { gap: 2 }, /* @__PURE__ */ React248.createElement(Text142, { fw: 600 }, block?.props?.title || "Create Proposal"), /* @__PURE__ */ React248.createElement(Text142, { size: "sm", c: "dimmed" }, block?.props?.description || "Create and manage an on-chain governance proposal.")), !coreAddress ? /* @__PURE__ */ React248.createElement(Alert44, { color: "yellow", styles: actionAlertStyles }, "Configure DAO core address in template mode before running this action.") : /* @__PURE__ */ React248.createElement(React248.Fragment, null, isProposalCreated && currentStatus && /* @__PURE__ */ React248.createElement(
26580
+ return /* @__PURE__ */ React249.createElement(Stack169, { gap: "md" }, /* @__PURE__ */ React249.createElement(Stack169, { gap: 2 }, /* @__PURE__ */ React249.createElement(Text142, { fw: 600 }, block?.props?.title || "Create Proposal"), /* @__PURE__ */ React249.createElement(Text142, { size: "sm", c: "dimmed" }, block?.props?.description || "Create and manage an on-chain governance proposal.")), !coreAddress ? /* @__PURE__ */ React249.createElement(Alert44, { color: "yellow", styles: actionAlertStyles }, "Configure DAO core address in template mode before running this action.") : /* @__PURE__ */ React249.createElement(React249.Fragment, null, isProposalCreated && currentStatus && /* @__PURE__ */ React249.createElement(
26574
26581
  Card23,
26575
26582
  {
26576
26583
  padding: "md",
@@ -26580,30 +26587,30 @@ var ProposalCreateFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26580
26587
  border: `1px solid ${statusColor2[currentStatus] || "#333"}`
26581
26588
  }
26582
26589
  },
26583
- /* @__PURE__ */ React248.createElement(Stack169, { gap: "xs" }, /* @__PURE__ */ React248.createElement(Group94, { justify: "space-between" }, /* @__PURE__ */ React248.createElement(Text142, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, "Proposal #", proposalId), /* @__PURE__ */ React248.createElement(Badge42, { color: statusColor2[currentStatus], variant: "filled", size: "sm", radius: "sm" }, currentStatus.replace(/_/g, " ").toUpperCase())), proposalTitle && /* @__PURE__ */ React248.createElement(Text142, { size: "sm", style: { color: "#adb5bd" } }, proposalTitle))
26584
- ), isProposalCreated && /* @__PURE__ */ React248.createElement(Card23, { padding: "md", radius: "md", withBorder: true, style: { borderColor: "var(--mantine-color-green-6)" } }, /* @__PURE__ */ React248.createElement(Text142, { fw: 500, size: "sm", c: "green" }, "Proposal Created Successfully"), /* @__PURE__ */ React248.createElement(Text142, { size: "sm", c: "dimmed" }, "Your proposal has been created and is now open for voting.")), currentStatus === "passed" && /* @__PURE__ */ React248.createElement(
26590
+ /* @__PURE__ */ React249.createElement(Stack169, { gap: "xs" }, /* @__PURE__ */ React249.createElement(Group94, { justify: "space-between" }, /* @__PURE__ */ React249.createElement(Text142, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, "Proposal #", proposalId), /* @__PURE__ */ React249.createElement(Badge42, { color: statusColor2[currentStatus], variant: "filled", size: "sm", radius: "sm" }, currentStatus.replace(/_/g, " ").toUpperCase())), proposalTitle && /* @__PURE__ */ React249.createElement(Text142, { size: "sm", style: { color: "#adb5bd" } }, proposalTitle))
26591
+ ), isProposalCreated && /* @__PURE__ */ React249.createElement(Card23, { padding: "md", radius: "md", withBorder: true, style: { borderColor: "var(--mantine-color-green-6)" } }, /* @__PURE__ */ React249.createElement(Text142, { fw: 500, size: "sm", c: "green" }, "Proposal Created Successfully"), /* @__PURE__ */ React249.createElement(Text142, { size: "sm", c: "dimmed" }, "Your proposal has been created and is now open for voting.")), currentStatus === "passed" && /* @__PURE__ */ React249.createElement(
26585
26592
  Button44,
26586
26593
  {
26587
26594
  fullWidth: true,
26588
26595
  color: "green",
26589
- leftSection: isExecuting ? /* @__PURE__ */ React248.createElement(Loader44, { size: 14 }) : /* @__PURE__ */ React248.createElement(IconPlayerPlay5, { size: 14 }),
26596
+ leftSection: isExecuting ? /* @__PURE__ */ React249.createElement(Loader44, { size: 14 }) : /* @__PURE__ */ React249.createElement(IconPlayerPlay5, { size: 14 }),
26590
26597
  onClick: handleExecuteProposal,
26591
26598
  disabled: isExecuting,
26592
26599
  loading: isExecuting
26593
26600
  },
26594
26601
  "Execute Proposal"
26595
- ), /* @__PURE__ */ React248.createElement(ActionsTab2, { actions: parsed.governanceActions, onActionsChange: () => {
26596
- }, isProposalCreated }), !isProposalCreated && /* @__PURE__ */ React248.createElement(
26602
+ ), /* @__PURE__ */ React249.createElement(ActionsTab2, { actions: parsed.governanceActions, onActionsChange: () => {
26603
+ }, isProposalCreated }), !isProposalCreated && /* @__PURE__ */ React249.createElement(
26597
26604
  Button44,
26598
26605
  {
26599
26606
  fullWidth: true,
26600
- leftSection: isCreating ? /* @__PURE__ */ React248.createElement(Loader44, { size: 14 }) : /* @__PURE__ */ React248.createElement(IconPlus10, { size: 14 }),
26607
+ leftSection: isCreating ? /* @__PURE__ */ React249.createElement(Loader44, { size: 14 }) : /* @__PURE__ */ React249.createElement(IconPlus10, { size: 14 }),
26601
26608
  onClick: handleCreateProposal,
26602
26609
  disabled: isDisabled || isCreating || !proposalTitle || !proposalDescription,
26603
26610
  loading: isCreating
26604
26611
  },
26605
26612
  "Create Proposal"
26606
- )), isFetching && /* @__PURE__ */ React248.createElement(Group94, { gap: "xs" }, /* @__PURE__ */ React248.createElement(Loader44, { size: "xs" }), /* @__PURE__ */ React248.createElement(Text142, { size: "xs", c: "dimmed" }, "Fetching proposal status...")), error && /* @__PURE__ */ React248.createElement(Alert44, { color: "red", styles: actionAlertStyles }, error), fetchError && /* @__PURE__ */ React248.createElement(Alert44, { color: "red", styles: actionAlertStyles }, typeof fetchError === "string" ? fetchError : "Failed to fetch proposal data"), runtime.error?.message && /* @__PURE__ */ React248.createElement(Alert44, { color: "red", styles: actionAlertStyles }, runtime.error.message));
26613
+ )), isFetching && /* @__PURE__ */ React249.createElement(Group94, { gap: "xs" }, /* @__PURE__ */ React249.createElement(Loader44, { size: "xs" }), /* @__PURE__ */ React249.createElement(Text142, { size: "xs", c: "dimmed" }, "Fetching proposal status...")), error && /* @__PURE__ */ React249.createElement(Alert44, { color: "red", styles: actionAlertStyles }, error), fetchError && /* @__PURE__ */ React249.createElement(Alert44, { color: "red", styles: actionAlertStyles }, typeof fetchError === "string" ? fetchError : "Failed to fetch proposal data"), runtime.error?.message && /* @__PURE__ */ React249.createElement(Alert44, { color: "red", styles: actionAlertStyles }, runtime.error.message));
26607
26614
  };
26608
26615
 
26609
26616
  // src/mantine/blocks/action/actionTypes/proposalCreate/index.ts
@@ -26613,7 +26620,7 @@ registerActionTypeUI("proposal.create", {
26613
26620
  });
26614
26621
 
26615
26622
  // src/mantine/blocks/action/actionTypes/proposalVote/ProposalVoteConfig.tsx
26616
- import React249, { useCallback as useCallback82, useEffect as useEffect85, useState as useState102 } from "react";
26623
+ import React250, { useCallback as useCallback82, useEffect as useEffect85, useState as useState102 } from "react";
26617
26624
  import { Divider as Divider25, Loader as Loader45, SegmentedControl as SegmentedControl7, Stack as Stack170, Text as Text143 } from "@mantine/core";
26618
26625
 
26619
26626
  // src/mantine/blocks/action/actionTypes/proposalVote/types.ts
@@ -26681,7 +26688,7 @@ var ProposalVoteConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26681
26688
  };
26682
26689
  fetchGroups();
26683
26690
  }, [handlers]);
26684
- return /* @__PURE__ */ React249.createElement(Stack170, { gap: "lg" }, /* @__PURE__ */ React249.createElement(Stack170, { gap: "xs" }, /* @__PURE__ */ React249.createElement(Text143, { size: "sm", fw: 600 }, "DAO Group"), /* @__PURE__ */ React249.createElement(Text143, { size: "xs", c: "dimmed" }, "The DAO group whose proposal to vote on. Used to resolve the proposal contract address."), /* @__PURE__ */ React249.createElement(
26691
+ return /* @__PURE__ */ React250.createElement(Stack170, { gap: "lg" }, /* @__PURE__ */ React250.createElement(Stack170, { gap: "xs" }, /* @__PURE__ */ React250.createElement(Text143, { size: "sm", fw: 600 }, "DAO Group"), /* @__PURE__ */ React250.createElement(Text143, { size: "xs", c: "dimmed" }, "The DAO group whose proposal to vote on. Used to resolve the proposal contract address."), /* @__PURE__ */ React250.createElement(
26685
26692
  SegmentedControl7,
26686
26693
  {
26687
26694
  value: inputMode,
@@ -26692,7 +26699,7 @@ var ProposalVoteConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26692
26699
  ],
26693
26700
  fullWidth: true
26694
26701
  }
26695
- ), inputMode === "select" ? /* @__PURE__ */ React249.createElement(
26702
+ ), inputMode === "select" ? /* @__PURE__ */ React250.createElement(
26696
26703
  BaseSelect,
26697
26704
  {
26698
26705
  placeholder: loadingGroups ? "Loading groups..." : "Select a DAO group",
@@ -26710,10 +26717,10 @@ var ProposalVoteConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26710
26717
  label: group.name
26711
26718
  })),
26712
26719
  disabled: loadingGroups,
26713
- rightSection: loadingGroups ? /* @__PURE__ */ React249.createElement(Loader45, { size: "xs" }) : void 0,
26720
+ rightSection: loadingGroups ? /* @__PURE__ */ React250.createElement(Loader45, { size: "xs" }) : void 0,
26714
26721
  searchable: true
26715
26722
  }
26716
- ) : /* @__PURE__ */ React249.createElement(
26723
+ ) : /* @__PURE__ */ React250.createElement(
26717
26724
  BaseTextInput,
26718
26725
  {
26719
26726
  placeholder: "Enter DAO core address",
@@ -26724,7 +26731,7 @@ var ProposalVoteConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26724
26731
  update({ coreAddress: newAddress });
26725
26732
  }
26726
26733
  }
26727
- )), /* @__PURE__ */ React249.createElement(Divider25, { variant: "dashed" }), /* @__PURE__ */ React249.createElement(
26734
+ )), /* @__PURE__ */ React250.createElement(Divider25, { variant: "dashed" }), /* @__PURE__ */ React250.createElement(
26728
26735
  DataInput,
26729
26736
  {
26730
26737
  label: "Proposal ID",
@@ -26736,7 +26743,7 @@ var ProposalVoteConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26736
26743
  currentBlockId: blockId,
26737
26744
  required: true
26738
26745
  }
26739
- ), /* @__PURE__ */ React249.createElement(
26746
+ ), /* @__PURE__ */ React250.createElement(
26740
26747
  DataInput,
26741
26748
  {
26742
26749
  label: "Proposal Contract Address",
@@ -26751,7 +26758,7 @@ var ProposalVoteConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26751
26758
  };
26752
26759
 
26753
26760
  // src/mantine/blocks/action/actionTypes/proposalVote/ProposalVoteFlowDetail.tsx
26754
- import React250, { useCallback as useCallback83, useEffect as useEffect86, useMemo as useMemo98, useState as useState103 } from "react";
26761
+ import React251, { useCallback as useCallback83, useEffect as useEffect86, useMemo as useMemo98, useState as useState103 } from "react";
26755
26762
  import { Alert as Alert45, Box as Box49, Button as Button45, Card as Card24, Group as Group95, Progress as Progress4, Stack as Stack171, Text as Text144, Tooltip as Tooltip21 } from "@mantine/core";
26756
26763
  var getVoteIcon2 = (voteType) => {
26757
26764
  switch (voteType) {
@@ -26946,7 +26953,7 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
26946
26953
  updateRuntime,
26947
26954
  verifySignature
26948
26955
  ]);
26949
- return /* @__PURE__ */ React250.createElement(Stack171, { gap: "md" }, /* @__PURE__ */ React250.createElement(Stack171, { gap: 2 }, /* @__PURE__ */ React250.createElement(Text144, { fw: 600 }, block?.props?.title || "Vote on Proposal"), /* @__PURE__ */ React250.createElement(Text144, { size: "sm", c: "dimmed" }, block?.props?.description || "Cast your vote on a governance proposal.")), !hasSubmittedProposal && /* @__PURE__ */ React250.createElement(
26956
+ return /* @__PURE__ */ React251.createElement(Stack171, { gap: "md" }, /* @__PURE__ */ React251.createElement(Stack171, { gap: 2 }, /* @__PURE__ */ React251.createElement(Text144, { fw: 600 }, block?.props?.title || "Vote on Proposal"), /* @__PURE__ */ React251.createElement(Text144, { size: "sm", c: "dimmed" }, block?.props?.description || "Cast your vote on a governance proposal.")), !hasSubmittedProposal && /* @__PURE__ */ React251.createElement(
26950
26957
  Card24,
26951
26958
  {
26952
26959
  padding: "md",
@@ -26957,7 +26964,7 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
26957
26964
  color: "#f1f3f5"
26958
26965
  }
26959
26966
  },
26960
- /* @__PURE__ */ React250.createElement(Group95, { gap: "xs", align: "center" }, /* @__PURE__ */ React250.createElement(
26967
+ /* @__PURE__ */ React251.createElement(Group95, { gap: "xs", align: "center" }, /* @__PURE__ */ React251.createElement(
26961
26968
  Box49,
26962
26969
  {
26963
26970
  style: {
@@ -26967,9 +26974,9 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
26967
26974
  borderRadius: "50%"
26968
26975
  }
26969
26976
  }
26970
- ), /* @__PURE__ */ React250.createElement(Text144, { size: "sm", fw: 500, style: { color: "#ffd43b" } }, "Waiting for Proposal Submission")),
26971
- /* @__PURE__ */ React250.createElement(Text144, { size: "xs", style: { color: "#adb5bd", marginTop: 4 } }, "The connected proposal needs to be submitted before voting can begin.")
26972
- ), /* @__PURE__ */ React250.createElement(
26977
+ ), /* @__PURE__ */ React251.createElement(Text144, { size: "sm", fw: 500, style: { color: "#ffd43b" } }, "Waiting for Proposal Submission")),
26978
+ /* @__PURE__ */ React251.createElement(Text144, { size: "xs", style: { color: "#adb5bd", marginTop: 4 } }, "The connected proposal needs to be submitted before voting can begin.")
26979
+ ), /* @__PURE__ */ React251.createElement(
26973
26980
  Card24,
26974
26981
  {
26975
26982
  padding: "lg",
@@ -26981,7 +26988,7 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
26981
26988
  opacity: !hasSubmittedProposal ? 0.6 : 1
26982
26989
  }
26983
26990
  },
26984
- /* @__PURE__ */ React250.createElement(Stack171, { gap: "xs" }, /* @__PURE__ */ React250.createElement(Group95, { justify: "space-between" }, /* @__PURE__ */ React250.createElement(Group95, { gap: "xs" }, /* @__PURE__ */ React250.createElement(
26991
+ /* @__PURE__ */ React251.createElement(Stack171, { gap: "xs" }, /* @__PURE__ */ React251.createElement(Group95, { justify: "space-between" }, /* @__PURE__ */ React251.createElement(Group95, { gap: "xs" }, /* @__PURE__ */ React251.createElement(
26985
26992
  Box49,
26986
26993
  {
26987
26994
  w: 8,
@@ -26991,9 +26998,9 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
26991
26998
  borderRadius: "50%"
26992
26999
  }
26993
27000
  }
26994
- ), /* @__PURE__ */ React250.createElement(Text144, { size: "sm", style: { color: "#adb5bd" } }, "Proposal ID")), /* @__PURE__ */ React250.createElement(Text144, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, hasSubmittedProposal ? `#${proposalId}` : "TBD")), /* @__PURE__ */ React250.createElement(Group95, { justify: "space-between" }, /* @__PURE__ */ React250.createElement(Group95, { gap: "xs" }, /* @__PURE__ */ React250.createElement(Box49, { w: 8, h: 8, style: { backgroundColor: "#adb5bd", borderRadius: "50%" } }), /* @__PURE__ */ React250.createElement(Text144, { size: "sm", style: { color: "#adb5bd" } }, "My Vote")), /* @__PURE__ */ React250.createElement(Text144, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, hasSubmittedProposal ? userVote?.vote ? userVote.vote.vote : "Pending" : "N/A"))),
26995
- /* @__PURE__ */ React250.createElement(Stack171, { gap: "xs", mt: "md" }, /* @__PURE__ */ React250.createElement(Text144, { size: "sm", style: { color: "#adb5bd" } }, hasSubmittedProposal ? "Voting is open" : "Voting pending"), /* @__PURE__ */ React250.createElement(Progress4, { value: hasSubmittedProposal ? 75 : 0, size: "md" }))
26996
- ), hasSubmittedProposal && !hasVoted && /* @__PURE__ */ React250.createElement(Stack171, { gap: "lg" }, /* @__PURE__ */ React250.createElement(Stack171, { gap: "md" }, ["yes", "no", "no_with_veto", "abstain"].map((voteType) => /* @__PURE__ */ React250.createElement(Tooltip21, { key: voteType, label: isDisabled ? "Action is disabled" : void 0, disabled: !isDisabled, position: "top" }, /* @__PURE__ */ React250.createElement(
27001
+ ), /* @__PURE__ */ React251.createElement(Text144, { size: "sm", style: { color: "#adb5bd" } }, "Proposal ID")), /* @__PURE__ */ React251.createElement(Text144, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, hasSubmittedProposal ? `#${proposalId}` : "TBD")), /* @__PURE__ */ React251.createElement(Group95, { justify: "space-between" }, /* @__PURE__ */ React251.createElement(Group95, { gap: "xs" }, /* @__PURE__ */ React251.createElement(Box49, { w: 8, h: 8, style: { backgroundColor: "#adb5bd", borderRadius: "50%" } }), /* @__PURE__ */ React251.createElement(Text144, { size: "sm", style: { color: "#adb5bd" } }, "My Vote")), /* @__PURE__ */ React251.createElement(Text144, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, hasSubmittedProposal ? userVote?.vote ? userVote.vote.vote : "Pending" : "N/A"))),
27002
+ /* @__PURE__ */ React251.createElement(Stack171, { gap: "xs", mt: "md" }, /* @__PURE__ */ React251.createElement(Text144, { size: "sm", style: { color: "#adb5bd" } }, hasSubmittedProposal ? "Voting is open" : "Voting pending"), /* @__PURE__ */ React251.createElement(Progress4, { value: hasSubmittedProposal ? 75 : 0, size: "md" }))
27003
+ ), hasSubmittedProposal && !hasVoted && /* @__PURE__ */ React251.createElement(Stack171, { gap: "lg" }, /* @__PURE__ */ React251.createElement(Stack171, { gap: "md" }, ["yes", "no", "no_with_veto", "abstain"].map((voteType) => /* @__PURE__ */ React251.createElement(Tooltip21, { key: voteType, label: isDisabled ? "Action is disabled" : void 0, disabled: !isDisabled, position: "top" }, /* @__PURE__ */ React251.createElement(
26997
27004
  Button45,
26998
27005
  {
26999
27006
  variant: "outline",
@@ -27012,8 +27019,8 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
27012
27019
  opacity: isDisabled ? 0.5 : 1
27013
27020
  }
27014
27021
  },
27015
- /* @__PURE__ */ React250.createElement(Text144, { fw: 500, tt: "capitalize", style: { textAlign: "left" } }, voteType === "no_with_veto" ? "No with Veto" : voteType)
27016
- )))), /* @__PURE__ */ React250.createElement(
27022
+ /* @__PURE__ */ React251.createElement(Text144, { fw: 500, tt: "capitalize", style: { textAlign: "left" } }, voteType === "no_with_veto" ? "No with Veto" : voteType)
27023
+ )))), /* @__PURE__ */ React251.createElement(
27017
27024
  BaseTextArea,
27018
27025
  {
27019
27026
  label: "Rationale (optional)",
@@ -27023,7 +27030,7 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
27023
27030
  disabled: isDisabled,
27024
27031
  rows: 3
27025
27032
  }
27026
- )), !hasSubmittedProposal && /* @__PURE__ */ React250.createElement(Stack171, { gap: "md" }, ["yes", "no", "no_with_veto", "abstain"].map((voteType) => /* @__PURE__ */ React250.createElement(Tooltip21, { key: voteType, label: "Proposal must be submitted before voting", position: "top" }, /* @__PURE__ */ React250.createElement(
27033
+ )), !hasSubmittedProposal && /* @__PURE__ */ React251.createElement(Stack171, { gap: "md" }, ["yes", "no", "no_with_veto", "abstain"].map((voteType) => /* @__PURE__ */ React251.createElement(Tooltip21, { key: voteType, label: "Proposal must be submitted before voting", position: "top" }, /* @__PURE__ */ React251.createElement(
27027
27034
  Button45,
27028
27035
  {
27029
27036
  variant: "outline",
@@ -27040,8 +27047,8 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
27040
27047
  opacity: 0.5
27041
27048
  }
27042
27049
  },
27043
- /* @__PURE__ */ React250.createElement(Text144, { fw: 500, tt: "capitalize", style: { textAlign: "left" } }, voteType === "no_with_veto" ? "No with Veto" : voteType)
27044
- )))), hasSubmittedProposal && !hasVoted && selectedVote && /* @__PURE__ */ React250.createElement(
27050
+ /* @__PURE__ */ React251.createElement(Text144, { fw: 500, tt: "capitalize", style: { textAlign: "left" } }, voteType === "no_with_veto" ? "No with Veto" : voteType)
27051
+ )))), hasSubmittedProposal && !hasVoted && selectedVote && /* @__PURE__ */ React251.createElement(
27045
27052
  Button45,
27046
27053
  {
27047
27054
  size: "sm",
@@ -27058,7 +27065,7 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
27058
27065
  }
27059
27066
  },
27060
27067
  "Sign"
27061
- ), hasVoted && hasSubmittedProposal && /* @__PURE__ */ React250.createElement(
27068
+ ), hasVoted && hasSubmittedProposal && /* @__PURE__ */ React251.createElement(
27062
27069
  Card24,
27063
27070
  {
27064
27071
  padding: "md",
@@ -27069,7 +27076,7 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
27069
27076
  color: "#f1f3f5"
27070
27077
  }
27071
27078
  },
27072
- /* @__PURE__ */ React250.createElement(Stack171, { gap: "xs" }, /* @__PURE__ */ React250.createElement(Group95, { gap: "xs", align: "center" }, /* @__PURE__ */ React250.createElement(
27079
+ /* @__PURE__ */ React251.createElement(Stack171, { gap: "xs" }, /* @__PURE__ */ React251.createElement(Group95, { gap: "xs", align: "center" }, /* @__PURE__ */ React251.createElement(
27073
27080
  Box49,
27074
27081
  {
27075
27082
  style: {
@@ -27079,8 +27086,8 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
27079
27086
  borderRadius: "50%"
27080
27087
  }
27081
27088
  }
27082
- ), /* @__PURE__ */ React250.createElement(Text144, { size: "sm", fw: 500, style: { color: "#51cf66" } }, "Vote Submitted")), /* @__PURE__ */ React250.createElement(Text144, { size: "xs", style: { color: "#adb5bd" } }, "You have already voted on this proposal. Your vote:", " ", /* @__PURE__ */ React250.createElement(Text144, { span: true, fw: 500, tt: "capitalize" }, userVote?.vote?.vote)))
27083
- ), error && /* @__PURE__ */ React250.createElement(Alert45, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React250.createElement(Alert45, { color: "red", styles: actionAlertStyles }, runtime.error.message));
27089
+ ), /* @__PURE__ */ React251.createElement(Text144, { size: "sm", fw: 500, style: { color: "#51cf66" } }, "Vote Submitted")), /* @__PURE__ */ React251.createElement(Text144, { size: "xs", style: { color: "#adb5bd" } }, "You have already voted on this proposal. Your vote:", " ", /* @__PURE__ */ React251.createElement(Text144, { span: true, fw: 500, tt: "capitalize" }, userVote?.vote?.vote)))
27090
+ ), error && /* @__PURE__ */ React251.createElement(Alert45, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React251.createElement(Alert45, { color: "red", styles: actionAlertStyles }, runtime.error.message));
27084
27091
  };
27085
27092
 
27086
27093
  // src/mantine/blocks/action/actionTypes/proposalVote/index.ts
@@ -27090,7 +27097,7 @@ registerActionTypeUI("proposal.vote", {
27090
27097
  });
27091
27098
 
27092
27099
  // src/mantine/blocks/action/actionTypes/protocolSelect/ProtocolSelectConfig.tsx
27093
- import React251, { useMemo as useMemo99, useState as useState104 } from "react";
27100
+ import React252, { useMemo as useMemo99, useState as useState104 } from "react";
27094
27101
  import { Box as Box50, Pill as Pill3, PillsInput as PillsInput3, Stack as Stack172, Text as Text145 } from "@mantine/core";
27095
27102
  function parseInputs(json) {
27096
27103
  try {
@@ -27118,7 +27125,7 @@ var ProtocolSelectConfig = ({ inputs, onInputsChange }) => {
27118
27125
  const handleRemove = (did) => {
27119
27126
  update(local.protocolDids.filter((d) => d !== did));
27120
27127
  };
27121
- return /* @__PURE__ */ React251.createElement(Stack172, { gap: "xs" }, /* @__PURE__ */ React251.createElement(Text145, { size: "sm", fw: 600 }, "Protocol DIDs"), /* @__PURE__ */ React251.createElement(Text145, { size: "xs", c: "dimmed" }, "Add the protocol DIDs that users can select from. Enter a DID and press Enter to add it."), /* @__PURE__ */ React251.createElement(PillsInput3, null, /* @__PURE__ */ React251.createElement(Pill3.Group, null, local.protocolDids.map((did) => /* @__PURE__ */ React251.createElement(Pill3, { key: did, withRemoveButton: true, onRemove: () => handleRemove(did) }, did.length > 30 ? `${did.slice(0, 15)}...${did.slice(-12)}` : did)), /* @__PURE__ */ React251.createElement(
27128
+ return /* @__PURE__ */ React252.createElement(Stack172, { gap: "xs" }, /* @__PURE__ */ React252.createElement(Text145, { size: "sm", fw: 600 }, "Protocol DIDs"), /* @__PURE__ */ React252.createElement(Text145, { size: "xs", c: "dimmed" }, "Add the protocol DIDs that users can select from. Enter a DID and press Enter to add it."), /* @__PURE__ */ React252.createElement(PillsInput3, null, /* @__PURE__ */ React252.createElement(Pill3.Group, null, local.protocolDids.map((did) => /* @__PURE__ */ React252.createElement(Pill3, { key: did, withRemoveButton: true, onRemove: () => handleRemove(did) }, did.length > 30 ? `${did.slice(0, 15)}...${did.slice(-12)}` : did)), /* @__PURE__ */ React252.createElement(
27122
27129
  PillsInput3.Field,
27123
27130
  {
27124
27131
  placeholder: local.protocolDids.length === 0 ? "Enter protocol DID and press Enter" : "",
@@ -27131,11 +27138,11 @@ var ProtocolSelectConfig = ({ inputs, onInputsChange }) => {
27131
27138
  }
27132
27139
  }
27133
27140
  }
27134
- ))), local.protocolDids.length > 0 && /* @__PURE__ */ React251.createElement(Box50, null, /* @__PURE__ */ React251.createElement(Text145, { size: "xs", c: "dimmed" }, local.protocolDids.length, " protocol", local.protocolDids.length !== 1 ? "s" : "", " configured")));
27141
+ ))), local.protocolDids.length > 0 && /* @__PURE__ */ React252.createElement(Box50, null, /* @__PURE__ */ React252.createElement(Text145, { size: "xs", c: "dimmed" }, local.protocolDids.length, " protocol", local.protocolDids.length !== 1 ? "s" : "", " configured")));
27135
27142
  };
27136
27143
 
27137
27144
  // src/mantine/blocks/action/actionTypes/protocolSelect/ProtocolSelectFlowDetail.tsx
27138
- import React252, { useCallback as useCallback84, useEffect as useEffect87, useMemo as useMemo100, useState as useState105 } from "react";
27145
+ import React253, { useCallback as useCallback84, useEffect as useEffect87, useMemo as useMemo100, useState as useState105 } from "react";
27139
27146
  import { Box as Box51, Group as Group96, Loader as Loader46, Stack as Stack173, Text as Text146 } from "@mantine/core";
27140
27147
  function parseInputs2(json) {
27141
27148
  try {
@@ -27217,11 +27224,11 @@ var ProtocolSelectFlowDetail = ({ inputs, block, runtime, updateRuntime, isDisab
27217
27224
  [isDisabled, updateRuntime]
27218
27225
  );
27219
27226
  if (protocolDids.length === 0) {
27220
- return /* @__PURE__ */ React252.createElement(Box51, { py: "md" }, /* @__PURE__ */ React252.createElement(Text146, { c: "dimmed", ta: "center" }, "No protocols configured.", /* @__PURE__ */ React252.createElement("br", null), "Add protocol DIDs in template mode."));
27227
+ return /* @__PURE__ */ React253.createElement(Box51, { py: "md" }, /* @__PURE__ */ React253.createElement(Text146, { c: "dimmed", ta: "center" }, "No protocols configured.", /* @__PURE__ */ React253.createElement("br", null), "Add protocol DIDs in template mode."));
27221
27228
  }
27222
- return /* @__PURE__ */ React252.createElement(Stack173, { gap: "sm" }, /* @__PURE__ */ React252.createElement(Text146, { fw: 600 }, block?.props?.title || "Select Protocol"), protocols.map((protocol) => {
27229
+ return /* @__PURE__ */ React253.createElement(Stack173, { gap: "sm" }, /* @__PURE__ */ React253.createElement(Text146, { fw: 600 }, block?.props?.title || "Select Protocol"), protocols.map((protocol) => {
27223
27230
  const isSelected = protocol.did === selectedDid;
27224
- return /* @__PURE__ */ React252.createElement(
27231
+ return /* @__PURE__ */ React253.createElement(
27225
27232
  Box51,
27226
27233
  {
27227
27234
  key: protocol.did,
@@ -27235,7 +27242,7 @@ var ProtocolSelectFlowDetail = ({ inputs, block, runtime, updateRuntime, isDisab
27235
27242
  transition: "all 0.15s ease"
27236
27243
  }
27237
27244
  },
27238
- /* @__PURE__ */ React252.createElement(Group96, { wrap: "nowrap", gap: "md", align: "center" }, protocol.loading ? /* @__PURE__ */ React252.createElement(Loader46, { size: "xs", color: "white" }) : /* @__PURE__ */ React252.createElement(EntityAvatar_default, { size: 24 }), /* @__PURE__ */ React252.createElement(Stack173, { gap: 2, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React252.createElement(Text146, { fw: 500, size: "sm", lineClamp: 1 }, protocol.loading ? "Loading..." : protocol.type), /* @__PURE__ */ React252.createElement(Text146, { size: "xs", c: "dimmed", lineClamp: 2 }, protocol.loading ? "Fetching protocol info..." : protocol.description || protocol.did)))
27245
+ /* @__PURE__ */ React253.createElement(Group96, { wrap: "nowrap", gap: "md", align: "center" }, protocol.loading ? /* @__PURE__ */ React253.createElement(Loader46, { size: "xs", color: "white" }) : /* @__PURE__ */ React253.createElement(EntityAvatar_default, { size: 24 }), /* @__PURE__ */ React253.createElement(Stack173, { gap: 2, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React253.createElement(Text146, { fw: 500, size: "sm", lineClamp: 1 }, protocol.loading ? "Loading..." : protocol.type), /* @__PURE__ */ React253.createElement(Text146, { size: "xs", c: "dimmed", lineClamp: 2 }, protocol.loading ? "Fetching protocol info..." : protocol.description || protocol.did)))
27239
27246
  );
27240
27247
  }));
27241
27248
  };
@@ -27247,7 +27254,7 @@ registerActionTypeUI("protocol.select", {
27247
27254
  });
27248
27255
 
27249
27256
  // src/mantine/blocks/action/actionTypes/domainSign/DomainSignConfig.tsx
27250
- import React253, { useCallback as useCallback85, useEffect as useEffect88, useState as useState106 } from "react";
27257
+ import React254, { useCallback as useCallback85, useEffect as useEffect88, useState as useState106 } from "react";
27251
27258
  import { Divider as Divider26, Stack as Stack174, Text as Text147, Textarea as Textarea2 } from "@mantine/core";
27252
27259
 
27253
27260
  // src/mantine/blocks/action/actionTypes/domainSign/types.ts
@@ -27291,7 +27298,7 @@ var DomainSignConfig = ({ inputs, onInputsChange }) => {
27291
27298
  },
27292
27299
  [local, onInputsChange]
27293
27300
  );
27294
- return /* @__PURE__ */ React253.createElement(Stack174, { gap: "lg" }, /* @__PURE__ */ React253.createElement(Stack174, { gap: "xs" }, /* @__PURE__ */ React253.createElement(Text147, { size: "sm", fw: 600 }, "Domain Type"), /* @__PURE__ */ React253.createElement(Text147, { size: "xs", c: "dimmed" }, "The entity type to create on-chain. If left blank, the type is inferred from the domain card credential."), /* @__PURE__ */ React253.createElement(
27301
+ return /* @__PURE__ */ React254.createElement(Stack174, { gap: "lg" }, /* @__PURE__ */ React254.createElement(Stack174, { gap: "xs" }, /* @__PURE__ */ React254.createElement(Text147, { size: "sm", fw: 600 }, "Domain Type"), /* @__PURE__ */ React254.createElement(Text147, { size: "xs", c: "dimmed" }, "The entity type to create on-chain. If left blank, the type is inferred from the domain card credential."), /* @__PURE__ */ React254.createElement(
27295
27302
  BaseSelect,
27296
27303
  {
27297
27304
  placeholder: "Select domain type (optional)",
@@ -27300,7 +27307,7 @@ var DomainSignConfig = ({ inputs, onInputsChange }) => {
27300
27307
  data: ENTITY_TYPE_OPTIONS,
27301
27308
  clearable: true
27302
27309
  }
27303
- )), /* @__PURE__ */ React253.createElement(Divider26, { variant: "dashed" }), /* @__PURE__ */ React253.createElement(Stack174, { gap: "xs" }, /* @__PURE__ */ React253.createElement(Text147, { size: "sm", fw: 600 }, "Governance Groups"), /* @__PURE__ */ React253.createElement(Text147, { size: "xs", c: "dimmed" }, "Optional JSON array of linked entity data for governance groups. Passed from upstream via flow inputs."), /* @__PURE__ */ React253.createElement(
27310
+ )), /* @__PURE__ */ React254.createElement(Divider26, { variant: "dashed" }), /* @__PURE__ */ React254.createElement(Stack174, { gap: "xs" }, /* @__PURE__ */ React254.createElement(Text147, { size: "sm", fw: 600 }, "Governance Groups"), /* @__PURE__ */ React254.createElement(Text147, { size: "xs", c: "dimmed" }, "Optional JSON array of linked entity data for governance groups. Passed from upstream via flow inputs."), /* @__PURE__ */ React254.createElement(
27304
27311
  Textarea2,
27305
27312
  {
27306
27313
  placeholder: '[{"type":"governanceGroup","coreAddress":"cosmos1..."}]',
@@ -27319,7 +27326,7 @@ var DomainSignConfig = ({ inputs, onInputsChange }) => {
27319
27326
  };
27320
27327
 
27321
27328
  // src/mantine/blocks/action/actionTypes/domainSign/DomainSignFlowDetail.tsx
27322
- import React254, { useCallback as useCallback86, useMemo as useMemo101, useState as useState107 } from "react";
27329
+ import React255, { useCallback as useCallback86, useMemo as useMemo101, useState as useState107 } from "react";
27323
27330
  import { Alert as Alert46, Button as Button46, Group as Group97, Loader as Loader47, Stack as Stack175, Text as Text148 } from "@mantine/core";
27324
27331
  import { IconCheck as IconCheck20, IconAlertCircle as IconAlertCircle17, IconExternalLink as IconExternalLink2 } from "@tabler/icons-react";
27325
27332
  var STEP_LABELS = {
@@ -27499,11 +27506,11 @@ var DomainSignFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isD
27499
27506
  handlers.redirectToEntityOverview(entityDid, resolvedEntityType);
27500
27507
  }
27501
27508
  }, [entityDid, resolvedEntityType, handlers]);
27502
- return /* @__PURE__ */ React254.createElement(Stack175, { gap: "md" }, /* @__PURE__ */ React254.createElement(Stack175, { gap: 2 }, /* @__PURE__ */ React254.createElement(Text148, { fw: 600 }, block?.props?.title || "Sign Domain Card"), /* @__PURE__ */ React254.createElement(Text148, { size: "sm", c: "dimmed" }, block?.props?.description || "Sign the domain card credential and create a domain entity on-chain.")), !domainCardData ? /* @__PURE__ */ React254.createElement(Alert46, { color: "yellow", styles: actionAlertStyles }, "No domain card data available. The domain card viewer block must push data to this action before it can run.") : /* @__PURE__ */ React254.createElement(React254.Fragment, null, /* @__PURE__ */ React254.createElement(Stack175, { gap: "xs", p: "md", style: { backgroundColor: "var(--mantine-color-dark-6)", borderRadius: 8 } }, /* @__PURE__ */ React254.createElement(Text148, { fw: 600, size: "sm" }, "Domain Card Summary"), /* @__PURE__ */ React254.createElement(Group97, { gap: "xs" }, /* @__PURE__ */ React254.createElement(Text148, { size: "xs", c: "dimmed", style: { width: 80 } }, "Name:"), /* @__PURE__ */ React254.createElement(Text148, { size: "xs" }, domainName || "Not set")), /* @__PURE__ */ React254.createElement(Group97, { gap: "xs" }, /* @__PURE__ */ React254.createElement(Text148, { size: "xs", c: "dimmed", style: { width: 80 } }, "Type:"), /* @__PURE__ */ React254.createElement(Text148, { size: "xs" }, resolvedEntityType)), domainDescription && /* @__PURE__ */ React254.createElement(Group97, { gap: "xs", align: "flex-start" }, /* @__PURE__ */ React254.createElement(Text148, { size: "xs", c: "dimmed", style: { width: 80 } }, "Description:"), /* @__PURE__ */ React254.createElement(Text148, { size: "xs", lineClamp: 2, style: { flex: 1 } }, domainDescription))), flowStep === "running" && /* @__PURE__ */ React254.createElement(Stack175, { gap: "xs" }, ["signing", "uploading", "creating"].map((step) => {
27509
+ return /* @__PURE__ */ React255.createElement(Stack175, { gap: "md" }, /* @__PURE__ */ React255.createElement(Stack175, { gap: 2 }, /* @__PURE__ */ React255.createElement(Text148, { fw: 600 }, block?.props?.title || "Sign Domain Card"), /* @__PURE__ */ React255.createElement(Text148, { size: "sm", c: "dimmed" }, block?.props?.description || "Sign the domain card credential and create a domain entity on-chain.")), !domainCardData ? /* @__PURE__ */ React255.createElement(Alert46, { color: "yellow", styles: actionAlertStyles }, "No domain card data available. The domain card viewer block must push data to this action before it can run.") : /* @__PURE__ */ React255.createElement(React255.Fragment, null, /* @__PURE__ */ React255.createElement(Stack175, { gap: "xs", p: "md", style: { backgroundColor: "var(--mantine-color-dark-6)", borderRadius: 8 } }, /* @__PURE__ */ React255.createElement(Text148, { fw: 600, size: "sm" }, "Domain Card Summary"), /* @__PURE__ */ React255.createElement(Group97, { gap: "xs" }, /* @__PURE__ */ React255.createElement(Text148, { size: "xs", c: "dimmed", style: { width: 80 } }, "Name:"), /* @__PURE__ */ React255.createElement(Text148, { size: "xs" }, domainName || "Not set")), /* @__PURE__ */ React255.createElement(Group97, { gap: "xs" }, /* @__PURE__ */ React255.createElement(Text148, { size: "xs", c: "dimmed", style: { width: 80 } }, "Type:"), /* @__PURE__ */ React255.createElement(Text148, { size: "xs" }, resolvedEntityType)), domainDescription && /* @__PURE__ */ React255.createElement(Group97, { gap: "xs", align: "flex-start" }, /* @__PURE__ */ React255.createElement(Text148, { size: "xs", c: "dimmed", style: { width: 80 } }, "Description:"), /* @__PURE__ */ React255.createElement(Text148, { size: "xs", lineClamp: 2, style: { flex: 1 } }, domainDescription))), flowStep === "running" && /* @__PURE__ */ React255.createElement(Stack175, { gap: "xs" }, ["signing", "uploading", "creating"].map((step) => {
27503
27510
  const isActive = activeStep === step;
27504
27511
  const isDone = ["signing", "uploading", "creating"].indexOf(step) < ["signing", "uploading", "creating"].indexOf(activeStep);
27505
- return /* @__PURE__ */ React254.createElement(Group97, { key: step, gap: "xs" }, isDone ? /* @__PURE__ */ React254.createElement(IconCheck20, { size: 14, color: "var(--mantine-color-green-5)" }) : isActive ? /* @__PURE__ */ React254.createElement(Loader47, { size: 14 }) : /* @__PURE__ */ React254.createElement(Text148, { size: "xs", c: "dimmed", style: { width: 14 } }, "\u2013"), /* @__PURE__ */ React254.createElement(Text148, { size: "xs", c: isActive ? void 0 : "dimmed" }, STEP_LABELS[step]));
27506
- })), isCompleted && /* @__PURE__ */ React254.createElement(Alert46, { icon: /* @__PURE__ */ React254.createElement(IconCheck20, { size: 16 }), title: "Domain Created Successfully", color: "green" }, /* @__PURE__ */ React254.createElement(Stack175, { gap: "xs" }, /* @__PURE__ */ React254.createElement(Text148, { size: "sm" }, "The domain card has been signed and the entity has been created on-chain."), entityDid && /* @__PURE__ */ React254.createElement(Text148, { size: "xs", c: "dimmed", style: { wordBreak: "break-all" } }, "Entity DID: ", entityDid))), isCompleted && entityDid && handlers?.redirectToEntityOverview && /* @__PURE__ */ React254.createElement(Button46, { variant: "outline", leftSection: /* @__PURE__ */ React254.createElement(IconExternalLink2, { size: 14 }), onClick: handleVisitEntity }, "Visit Entity"), !isCompleted && /* @__PURE__ */ React254.createElement(Button46, { fullWidth: true, onClick: handleSign, disabled: isDisabled || flowStep === "running", loading: flowStep === "running" }, flowStep === "running" ? "Processing..." : "Sign & Create Domain"), flowStep === "error" && /* @__PURE__ */ React254.createElement(Group97, null, /* @__PURE__ */ React254.createElement(Button46, { variant: "outline", onClick: handleRetry }, "Try Again"))), error && /* @__PURE__ */ React254.createElement(Alert46, { icon: /* @__PURE__ */ React254.createElement(IconAlertCircle17, { size: 16 }), color: "red", styles: actionAlertStyles }, error), runtime.error?.message && flowStep !== "error" && /* @__PURE__ */ React254.createElement(Alert46, { color: "red", styles: actionAlertStyles }, runtime.error.message));
27512
+ return /* @__PURE__ */ React255.createElement(Group97, { key: step, gap: "xs" }, isDone ? /* @__PURE__ */ React255.createElement(IconCheck20, { size: 14, color: "var(--mantine-color-green-5)" }) : isActive ? /* @__PURE__ */ React255.createElement(Loader47, { size: 14 }) : /* @__PURE__ */ React255.createElement(Text148, { size: "xs", c: "dimmed", style: { width: 14 } }, "\u2013"), /* @__PURE__ */ React255.createElement(Text148, { size: "xs", c: isActive ? void 0 : "dimmed" }, STEP_LABELS[step]));
27513
+ })), isCompleted && /* @__PURE__ */ React255.createElement(Alert46, { icon: /* @__PURE__ */ React255.createElement(IconCheck20, { size: 16 }), title: "Domain Created Successfully", color: "green" }, /* @__PURE__ */ React255.createElement(Stack175, { gap: "xs" }, /* @__PURE__ */ React255.createElement(Text148, { size: "sm" }, "The domain card has been signed and the entity has been created on-chain."), entityDid && /* @__PURE__ */ React255.createElement(Text148, { size: "xs", c: "dimmed", style: { wordBreak: "break-all" } }, "Entity DID: ", entityDid))), isCompleted && entityDid && handlers?.redirectToEntityOverview && /* @__PURE__ */ React255.createElement(Button46, { variant: "outline", leftSection: /* @__PURE__ */ React255.createElement(IconExternalLink2, { size: 14 }), onClick: handleVisitEntity }, "Visit Entity"), !isCompleted && /* @__PURE__ */ React255.createElement(Button46, { fullWidth: true, onClick: handleSign, disabled: isDisabled || flowStep === "running", loading: flowStep === "running" }, flowStep === "running" ? "Processing..." : "Sign & Create Domain"), flowStep === "error" && /* @__PURE__ */ React255.createElement(Group97, null, /* @__PURE__ */ React255.createElement(Button46, { variant: "outline", onClick: handleRetry }, "Try Again"))), error && /* @__PURE__ */ React255.createElement(Alert46, { icon: /* @__PURE__ */ React255.createElement(IconAlertCircle17, { size: 16 }), color: "red", styles: actionAlertStyles }, error), runtime.error?.message && flowStep !== "error" && /* @__PURE__ */ React255.createElement(Alert46, { color: "red", styles: actionAlertStyles }, runtime.error.message));
27507
27514
  };
27508
27515
 
27509
27516
  // src/mantine/blocks/action/actionTypes/domainSign/index.ts
@@ -27513,7 +27520,7 @@ registerActionTypeUI("domain.sign", {
27513
27520
  });
27514
27521
 
27515
27522
  // src/mantine/blocks/action/actionTypes/domainCreate/DomainCreateConfig.tsx
27516
- import React255, { useCallback as useCallback87, useEffect as useEffect89, useState as useState108 } from "react";
27523
+ import React256, { useCallback as useCallback87, useEffect as useEffect89, useState as useState108 } from "react";
27517
27524
  import { Stack as Stack176, Text as Text149 } from "@mantine/core";
27518
27525
 
27519
27526
  // src/mantine/blocks/action/actionTypes/domainCreate/types.ts
@@ -27561,7 +27568,7 @@ var DomainCreateConfig = ({ inputs, onInputsChange }) => {
27561
27568
  update({ surveySchema: tempDomainCreatorSurvey });
27562
27569
  }
27563
27570
  }, []);
27564
- return /* @__PURE__ */ React255.createElement(Stack176, { gap: "lg" }, /* @__PURE__ */ React255.createElement(Stack176, { gap: "xs" }, /* @__PURE__ */ React255.createElement(Text149, { size: "sm", fw: 600 }, "Default Entity Type"), /* @__PURE__ */ React255.createElement(Text149, { size: "xs", c: "dimmed" }, "The domain type used if not specified in the survey. The survey itself can also set the entity type."), /* @__PURE__ */ React255.createElement(
27571
+ return /* @__PURE__ */ React256.createElement(Stack176, { gap: "lg" }, /* @__PURE__ */ React256.createElement(Stack176, { gap: "xs" }, /* @__PURE__ */ React256.createElement(Text149, { size: "sm", fw: 600 }, "Default Entity Type"), /* @__PURE__ */ React256.createElement(Text149, { size: "xs", c: "dimmed" }, "The domain type used if not specified in the survey. The survey itself can also set the entity type."), /* @__PURE__ */ React256.createElement(
27565
27572
  BaseSelect,
27566
27573
  {
27567
27574
  placeholder: "Select entity type",
@@ -27571,14 +27578,14 @@ var DomainCreateConfig = ({ inputs, onInputsChange }) => {
27571
27578
  },
27572
27579
  data: ENTITY_TYPE_OPTIONS2
27573
27580
  }
27574
- )), /* @__PURE__ */ React255.createElement(Stack176, { gap: "xs" }, /* @__PURE__ */ React255.createElement(Text149, { size: "sm", fw: 600 }, "Survey"), /* @__PURE__ */ React255.createElement(Text149, { size: "xs", c: "dimmed" }, "Uses the default Domain Card survey with fields for name, type, description, contact, composition, relationships, and more.")));
27581
+ )), /* @__PURE__ */ React256.createElement(Stack176, { gap: "xs" }, /* @__PURE__ */ React256.createElement(Text149, { size: "sm", fw: 600 }, "Survey"), /* @__PURE__ */ React256.createElement(Text149, { size: "xs", c: "dimmed" }, "Uses the default Domain Card survey with fields for name, type, description, contact, composition, relationships, and more.")));
27575
27582
  };
27576
27583
 
27577
27584
  // src/mantine/blocks/action/actionTypes/domainCreate/DomainCreateFlowDetail.tsx
27578
- import React256, { useCallback as useCallback88, useEffect as useEffect90, useMemo as useMemo102, useState as useState109 } from "react";
27585
+ import React257, { useCallback as useCallback88, useEffect as useEffect90, useMemo as useMemo102, useState as useState109 } from "react";
27579
27586
  import { Alert as Alert47, Button as Button47, Group as Group98, Loader as Loader48, Stack as Stack177, Text as Text150 } from "@mantine/core";
27580
27587
  import { IconCheck as IconCheck21, IconAlertCircle as IconAlertCircle18, IconPlayerPlay as IconPlayerPlay6 } from "@tabler/icons-react";
27581
- import { Survey as Survey12, SurveyModel as SurveyModel12 } from "@ixo/surveys";
27588
+ import { SurveyModel as SurveyModel12 } from "@ixo/surveys";
27582
27589
  var DomainCreateFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isDisabled }) => {
27583
27590
  const handlers = useBlocknoteHandlers();
27584
27591
  const services = useMemo102(() => buildServicesFromHandlers(handlers), [handlers]);
@@ -27714,7 +27721,7 @@ var DomainCreateFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
27714
27721
  }
27715
27722
  }, [runtime.output, entityType, handlers]);
27716
27723
  const entityDid = runtime.output?.entityDid || "";
27717
- return /* @__PURE__ */ React256.createElement(Stack177, { gap: "md" }, /* @__PURE__ */ React256.createElement(Stack177, { gap: 2 }, /* @__PURE__ */ React256.createElement(Text150, { fw: 600 }, block?.props?.title || "Create Domain"), /* @__PURE__ */ React256.createElement(Text150, { size: "sm", c: "dimmed" }, block?.props?.description || "Complete the survey to create a new domain with a signed Domain Card credential.")), flowStep === "success" && /* @__PURE__ */ React256.createElement(Stack177, { gap: "md" }, /* @__PURE__ */ React256.createElement(Alert47, { icon: /* @__PURE__ */ React256.createElement(IconCheck21, { size: 16 }), title: "Domain Created", color: "green", styles: actionAlertStyles }, /* @__PURE__ */ React256.createElement(Stack177, { gap: "xs" }, /* @__PURE__ */ React256.createElement(Text150, { size: "sm" }, "Your domain has been created and the Domain Card has been signed and stored."), entityDid && /* @__PURE__ */ React256.createElement(Text150, { size: "xs", c: "dimmed" }, "DID: ", entityDid))), entityDid && /* @__PURE__ */ React256.createElement(Button47, { variant: "outline", onClick: handleVisitEntity }, "Visit Entity")), flowStep === "error" && /* @__PURE__ */ React256.createElement(Stack177, { gap: "md" }, /* @__PURE__ */ React256.createElement(Alert47, { icon: /* @__PURE__ */ React256.createElement(IconAlertCircle18, { size: 16 }), title: "Domain Creation Failed", color: "red", styles: actionAlertStyles }, /* @__PURE__ */ React256.createElement(Text150, { size: "sm" }, error || "An unexpected error occurred")), /* @__PURE__ */ React256.createElement(Group98, null, /* @__PURE__ */ React256.createElement(Button47, { variant: "outline", onClick: handleRetry, disabled: isDisabled }, "Try Again"))), flowStep === "submitting" && /* @__PURE__ */ React256.createElement(Stack177, { gap: "sm", align: "center", py: "md" }, /* @__PURE__ */ React256.createElement(Loader48, { size: "md" }), /* @__PURE__ */ React256.createElement(Text150, { size: "sm", c: "dimmed" }, "Creating domain \u2014 signing, uploading, and registering on chain...")), flowStep === "idle" && /* @__PURE__ */ React256.createElement(Button47, { leftSection: /* @__PURE__ */ React256.createElement(IconPlayerPlay6, { size: 14 }), onClick: handleStartSurvey, disabled: isDisabled }, "Start Domain Creator"), flowStep === "survey" && !error && /* @__PURE__ */ React256.createElement(Survey12, { model: surveyModel }), runtime.error?.message && flowStep !== "error" && /* @__PURE__ */ React256.createElement(Alert47, { color: "red", styles: actionAlertStyles }, runtime.error.message));
27724
+ return /* @__PURE__ */ React257.createElement(Stack177, { gap: "md" }, /* @__PURE__ */ React257.createElement(Stack177, { gap: 2 }, /* @__PURE__ */ React257.createElement(Text150, { fw: 600 }, block?.props?.title || "Create Domain"), /* @__PURE__ */ React257.createElement(Text150, { size: "sm", c: "dimmed" }, block?.props?.description || "Complete the survey to create a new domain with a signed Domain Card credential.")), flowStep === "success" && /* @__PURE__ */ React257.createElement(Stack177, { gap: "md" }, /* @__PURE__ */ React257.createElement(Alert47, { icon: /* @__PURE__ */ React257.createElement(IconCheck21, { size: 16 }), title: "Domain Created", color: "green", styles: actionAlertStyles }, /* @__PURE__ */ React257.createElement(Stack177, { gap: "xs" }, /* @__PURE__ */ React257.createElement(Text150, { size: "sm" }, "Your domain has been created and the Domain Card has been signed and stored."), entityDid && /* @__PURE__ */ React257.createElement(Text150, { size: "xs", c: "dimmed" }, "DID: ", entityDid))), entityDid && /* @__PURE__ */ React257.createElement(Button47, { variant: "outline", onClick: handleVisitEntity }, "Visit Entity")), flowStep === "error" && /* @__PURE__ */ React257.createElement(Stack177, { gap: "md" }, /* @__PURE__ */ React257.createElement(Alert47, { icon: /* @__PURE__ */ React257.createElement(IconAlertCircle18, { size: 16 }), title: "Domain Creation Failed", color: "red", styles: actionAlertStyles }, /* @__PURE__ */ React257.createElement(Text150, { size: "sm" }, error || "An unexpected error occurred")), /* @__PURE__ */ React257.createElement(Group98, null, /* @__PURE__ */ React257.createElement(Button47, { variant: "outline", onClick: handleRetry, disabled: isDisabled }, "Try Again"))), flowStep === "submitting" && /* @__PURE__ */ React257.createElement(Stack177, { gap: "sm", align: "center", py: "md" }, /* @__PURE__ */ React257.createElement(Loader48, { size: "md" }), /* @__PURE__ */ React257.createElement(Text150, { size: "sm", c: "dimmed" }, "Creating domain \u2014 signing, uploading, and registering on chain...")), flowStep === "idle" && /* @__PURE__ */ React257.createElement(Button47, { leftSection: /* @__PURE__ */ React257.createElement(IconPlayerPlay6, { size: 14 }), onClick: handleStartSurvey, disabled: isDisabled }, "Start Domain Creator"), flowStep === "survey" && !error && /* @__PURE__ */ React257.createElement(StableSurvey, { model: surveyModel }), runtime.error?.message && flowStep !== "error" && /* @__PURE__ */ React257.createElement(Alert47, { color: "red", styles: actionAlertStyles }, runtime.error.message));
27718
27725
  };
27719
27726
 
27720
27727
  // src/mantine/blocks/action/actionTypes/domainCreate/index.ts
@@ -27724,7 +27731,7 @@ registerActionTypeUI("domain.create", {
27724
27731
  });
27725
27732
 
27726
27733
  // src/mantine/blocks/action/actionTypes/oracle/OracleConfig.tsx
27727
- import React257, { useCallback as useCallback89, useEffect as useEffect91, useState as useState110 } from "react";
27734
+ import React258, { useCallback as useCallback89, useEffect as useEffect91, useState as useState110 } from "react";
27728
27735
  import { Stack as Stack178 } from "@mantine/core";
27729
27736
 
27730
27737
  // src/mantine/blocks/action/actionTypes/oracle/types.ts
@@ -27758,7 +27765,7 @@ var OracleConfig = ({ inputs, onInputsChange, editor, blockId }) => {
27758
27765
  },
27759
27766
  [local, onInputsChange]
27760
27767
  );
27761
- return /* @__PURE__ */ React257.createElement(Stack178, { gap: "lg" }, /* @__PURE__ */ React257.createElement(
27768
+ return /* @__PURE__ */ React258.createElement(Stack178, { gap: "lg" }, /* @__PURE__ */ React258.createElement(
27762
27769
  DataInput,
27763
27770
  {
27764
27771
  label: "Prompt",
@@ -27774,7 +27781,7 @@ var OracleConfig = ({ inputs, onInputsChange, editor, blockId }) => {
27774
27781
  };
27775
27782
 
27776
27783
  // src/mantine/blocks/action/actionTypes/oracle/OracleFlowDetail.tsx
27777
- import React258, { useCallback as useCallback90, useMemo as useMemo103, useState as useState111 } from "react";
27784
+ import React259, { useCallback as useCallback90, useMemo as useMemo103, useState as useState111 } from "react";
27778
27785
  import { Alert as Alert48, Button as Button48, Stack as Stack179 } from "@mantine/core";
27779
27786
  import { IconCheck as IconCheck22, IconAlertCircle as IconAlertCircle19, IconSparkles as IconSparkles6 } from "@tabler/icons-react";
27780
27787
  var OracleFlowDetail = ({ inputs, editor, runtime, updateRuntime, isDisabled }) => {
@@ -27817,7 +27824,7 @@ var OracleFlowDetail = ({ inputs, editor, runtime, updateRuntime, isDisabled })
27817
27824
  setIsLoading(false);
27818
27825
  }
27819
27826
  }, [handlers, isCompleted, isDisabled, isLoading, resolvedPrompt, updateRuntime]);
27820
- return /* @__PURE__ */ React258.createElement(Stack179, { gap: "md" }, !resolvedPrompt && /* @__PURE__ */ React258.createElement(Alert48, { color: "yellow", styles: actionAlertStyles }, "Configure a prompt in template mode before running this action."), resolvedPrompt && !isCompleted && /* @__PURE__ */ React258.createElement(Button48, { fullWidth: true, onClick: handleExecute, disabled: isDisabled || isLoading, loading: isLoading, leftSection: !isLoading ? /* @__PURE__ */ React258.createElement(IconSparkles6, { size: 14 }) : void 0 }, isLoading ? "Sending..." : "Ask Companion"), isCompleted && /* @__PURE__ */ React258.createElement(Alert48, { icon: /* @__PURE__ */ React258.createElement(IconCheck22, { size: 16 }), color: "green", styles: actionAlertStyles }, "Prompt sent to companion."), error && /* @__PURE__ */ React258.createElement(Alert48, { icon: /* @__PURE__ */ React258.createElement(IconAlertCircle19, { size: 16 }), color: "red", styles: actionAlertStyles }, error), runtime.error?.message && !error && /* @__PURE__ */ React258.createElement(Alert48, { color: "red", styles: actionAlertStyles }, runtime.error.message));
27827
+ return /* @__PURE__ */ React259.createElement(Stack179, { gap: "md" }, !resolvedPrompt && /* @__PURE__ */ React259.createElement(Alert48, { color: "yellow", styles: actionAlertStyles }, "Configure a prompt in template mode before running this action."), resolvedPrompt && !isCompleted && /* @__PURE__ */ React259.createElement(Button48, { fullWidth: true, onClick: handleExecute, disabled: isDisabled || isLoading, loading: isLoading, leftSection: !isLoading ? /* @__PURE__ */ React259.createElement(IconSparkles6, { size: 14 }) : void 0 }, isLoading ? "Sending..." : "Ask Companion"), isCompleted && /* @__PURE__ */ React259.createElement(Alert48, { icon: /* @__PURE__ */ React259.createElement(IconCheck22, { size: 16 }), color: "green", styles: actionAlertStyles }, "Prompt sent to companion."), error && /* @__PURE__ */ React259.createElement(Alert48, { icon: /* @__PURE__ */ React259.createElement(IconAlertCircle19, { size: 16 }), color: "red", styles: actionAlertStyles }, error), runtime.error?.message && !error && /* @__PURE__ */ React259.createElement(Alert48, { color: "red", styles: actionAlertStyles }, runtime.error.message));
27821
27828
  };
27822
27829
 
27823
27830
  // src/mantine/blocks/action/actionTypes/oracle/index.ts
@@ -27827,7 +27834,7 @@ registerActionTypeUI("oracle", {
27827
27834
  });
27828
27835
 
27829
27836
  // src/mantine/blocks/action/actionTypes/oraclePrompt/OraclePromptConfig.tsx
27830
- import React259, { useCallback as useCallback91, useEffect as useEffect92, useState as useState112 } from "react";
27837
+ import React260, { useCallback as useCallback91, useEffect as useEffect92, useState as useState112 } from "react";
27831
27838
  import { Stack as Stack180 } from "@mantine/core";
27832
27839
 
27833
27840
  // src/mantine/blocks/action/actionTypes/oraclePrompt/types.ts
@@ -27858,7 +27865,7 @@ var OraclePromptConfig = ({ inputs, onInputsChange }) => {
27858
27865
  },
27859
27866
  [onInputsChange]
27860
27867
  );
27861
- return /* @__PURE__ */ React259.createElement(Stack180, { gap: "xs" }, /* @__PURE__ */ React259.createElement(
27868
+ return /* @__PURE__ */ React260.createElement(Stack180, { gap: "xs" }, /* @__PURE__ */ React260.createElement(
27862
27869
  BaseTextArea,
27863
27870
  {
27864
27871
  label: "Prompt",
@@ -27872,7 +27879,7 @@ var OraclePromptConfig = ({ inputs, onInputsChange }) => {
27872
27879
  };
27873
27880
 
27874
27881
  // src/mantine/blocks/action/actionTypes/oraclePrompt/OraclePromptFlowDetail.tsx
27875
- import React260, { useCallback as useCallback92, useMemo as useMemo104, useState as useState113 } from "react";
27882
+ import React261, { useCallback as useCallback92, useMemo as useMemo104, useState as useState113 } from "react";
27876
27883
  import { Alert as Alert49, Loader as Loader49, Stack as Stack181, Text as Text151 } from "@mantine/core";
27877
27884
  import { IconSend as IconSend6 } from "@tabler/icons-react";
27878
27885
  function parsePrimarySkill(rawSkill) {
@@ -27948,7 +27955,7 @@ var OraclePromptFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
27948
27955
  }
27949
27956
  }, [block?.props?.skill, handlers, isDisabled, resolvedPrompt, submitting, updateRuntime]);
27950
27957
  const isCompleted = runtime.state === "completed";
27951
- return /* @__PURE__ */ React260.createElement(Stack181, { gap: "md" }, !resolvedPrompt ? /* @__PURE__ */ React260.createElement(Alert49, { color: "yellow", styles: actionAlertStyles }, "Configure a prompt in template mode before running this action.") : /* @__PURE__ */ React260.createElement(React260.Fragment, null, /* @__PURE__ */ React260.createElement(Text151, { size: "sm", c: "dimmed", style: { whiteSpace: "pre-wrap" } }, resolvedPrompt), /* @__PURE__ */ React260.createElement(BasePrimaryButton, { leftSection: submitting ? /* @__PURE__ */ React260.createElement(Loader49, { size: 14 }) : /* @__PURE__ */ React260.createElement(IconSend6, { size: 14 }), onClick: handleExecute, disabled: isDisabled || submitting }, submitting ? "Sending..." : isCompleted ? "Send Again" : "Send Prompt")), isCompleted && /* @__PURE__ */ React260.createElement(Text151, { size: "xs", c: "dimmed" }, "Prompt sent successfully."), error && /* @__PURE__ */ React260.createElement(Alert49, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React260.createElement(Alert49, { color: "red", styles: actionAlertStyles }, runtime.error.message));
27958
+ return /* @__PURE__ */ React261.createElement(Stack181, { gap: "md" }, !resolvedPrompt ? /* @__PURE__ */ React261.createElement(Alert49, { color: "yellow", styles: actionAlertStyles }, "Configure a prompt in template mode before running this action.") : /* @__PURE__ */ React261.createElement(React261.Fragment, null, /* @__PURE__ */ React261.createElement(Text151, { size: "sm", c: "dimmed", style: { whiteSpace: "pre-wrap" } }, resolvedPrompt), /* @__PURE__ */ React261.createElement(BasePrimaryButton, { leftSection: submitting ? /* @__PURE__ */ React261.createElement(Loader49, { size: 14 }) : /* @__PURE__ */ React261.createElement(IconSend6, { size: 14 }), onClick: handleExecute, disabled: isDisabled || submitting }, submitting ? "Sending..." : isCompleted ? "Send Again" : "Send Prompt")), isCompleted && /* @__PURE__ */ React261.createElement(Text151, { size: "xs", c: "dimmed" }, "Prompt sent successfully."), error && /* @__PURE__ */ React261.createElement(Alert49, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React261.createElement(Alert49, { color: "red", styles: actionAlertStyles }, runtime.error.message));
27952
27959
  };
27953
27960
 
27954
27961
  // src/mantine/blocks/action/actionTypes/oraclePrompt/index.ts
@@ -27958,7 +27965,7 @@ registerActionTypeUI("oracle.prompt", {
27958
27965
  });
27959
27966
 
27960
27967
  // src/mantine/blocks/action/actionTypes/formSubmit/FormSubmitConfig.tsx
27961
- import React261, { useCallback as useCallback93, useEffect as useEffect93, useState as useState114 } from "react";
27968
+ import React262, { useCallback as useCallback93, useEffect as useEffect93, useState as useState114 } from "react";
27962
27969
  import { Stack as Stack182, Text as Text152 } from "@mantine/core";
27963
27970
 
27964
27971
  // src/mantine/blocks/action/actionTypes/formSubmit/types.ts
@@ -28015,7 +28022,7 @@ var FormSubmitConfig = ({ inputs, onInputsChange }) => {
28015
28022
  },
28016
28023
  [onInputsChange]
28017
28024
  );
28018
- return /* @__PURE__ */ React261.createElement(Stack182, { gap: "xs" }, /* @__PURE__ */ React261.createElement(
28025
+ return /* @__PURE__ */ React262.createElement(Stack182, { gap: "xs" }, /* @__PURE__ */ React262.createElement(
28019
28026
  BaseTextArea,
28020
28027
  {
28021
28028
  label: "Survey Schema (JSON)",
@@ -28026,13 +28033,13 @@ var FormSubmitConfig = ({ inputs, onInputsChange }) => {
28026
28033
  onChange: (event) => handleChange(event.currentTarget.value),
28027
28034
  error
28028
28035
  }
28029
- ), localSchema && !error && /* @__PURE__ */ React261.createElement(Text152, { size: "xs", c: "green" }, "\u2713 Valid JSON object"));
28036
+ ), localSchema && !error && /* @__PURE__ */ React262.createElement(Text152, { size: "xs", c: "green" }, "\u2713 Valid JSON object"));
28030
28037
  };
28031
28038
 
28032
28039
  // src/mantine/blocks/action/actionTypes/formSubmit/FormSubmitFlowDetail.tsx
28033
- import React262, { useCallback as useCallback94, useEffect as useEffect94, useMemo as useMemo105, useState as useState115 } from "react";
28040
+ import React263, { useCallback as useCallback94, useEffect as useEffect94, useMemo as useMemo105, useState as useState115 } from "react";
28034
28041
  import { Alert as Alert50, Loader as Loader50, Stack as Stack183, Text as Text153 } from "@mantine/core";
28035
- import { Survey as Survey13, SurveyModel as SurveyModel13 } from "@ixo/surveys";
28042
+ import { SurveyModel as SurveyModel13 } from "@ixo/surveys";
28036
28043
  function parsePrimarySkill2(rawSkill) {
28037
28044
  const coerce = (candidate) => {
28038
28045
  if (!candidate || typeof candidate !== "object") return null;
@@ -28245,7 +28252,7 @@ var FormSubmitFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isD
28245
28252
  };
28246
28253
  }, [surveyModel, handleSurveyComplete]);
28247
28254
  const statusMessage = runtime.state === "completed" ? "Last execution completed." : submitting ? "Executing..." : null;
28248
- return /* @__PURE__ */ React262.createElement(Stack183, { gap: "md" }, !resolvedSchemaString ? /* @__PURE__ */ React262.createElement(Alert50, { color: "yellow", styles: actionAlertStyles }, "Configure Survey Schema JSON in template mode before running this action.") : !parsedSchema ? /* @__PURE__ */ React262.createElement(Alert50, { color: "red", styles: actionAlertStyles }, "Survey schema is invalid JSON. Fix it in template mode.") : /* @__PURE__ */ React262.createElement(Survey13, { model: surveyModel }), statusMessage && /* @__PURE__ */ React262.createElement(Stack183, { gap: 4 }, submitting && /* @__PURE__ */ React262.createElement(Loader50, { size: "xs" }), /* @__PURE__ */ React262.createElement(Text153, { size: "xs", c: "dimmed" }, statusMessage)), error && /* @__PURE__ */ React262.createElement(Alert50, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React262.createElement(Alert50, { color: "red", styles: actionAlertStyles }, runtime.error.message));
28255
+ return /* @__PURE__ */ React263.createElement(Stack183, { gap: "md" }, !resolvedSchemaString ? /* @__PURE__ */ React263.createElement(Alert50, { color: "yellow", styles: actionAlertStyles }, "Configure Survey Schema JSON in template mode before running this action.") : !parsedSchema ? /* @__PURE__ */ React263.createElement(Alert50, { color: "red", styles: actionAlertStyles }, "Survey schema is invalid JSON. Fix it in template mode.") : /* @__PURE__ */ React263.createElement(StableSurvey, { model: surveyModel }), statusMessage && /* @__PURE__ */ React263.createElement(Stack183, { gap: 4 }, submitting && /* @__PURE__ */ React263.createElement(Loader50, { size: "xs" }), /* @__PURE__ */ React263.createElement(Text153, { size: "xs", c: "dimmed" }, statusMessage)), error && /* @__PURE__ */ React263.createElement(Alert50, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && /* @__PURE__ */ React263.createElement(Alert50, { color: "red", styles: actionAlertStyles }, runtime.error.message));
28249
28256
  };
28250
28257
 
28251
28258
  // src/mantine/blocks/action/actionTypes/formSubmit/index.ts
@@ -28259,7 +28266,7 @@ registerActionTypeUI("human.form.submit", {
28259
28266
  });
28260
28267
 
28261
28268
  // src/mantine/blocks/action/actionTypes/credentialStore/CredentialStoreConfig.tsx
28262
- import React263, { useCallback as useCallback95, useEffect as useEffect95, useState as useState116 } from "react";
28269
+ import React264, { useCallback as useCallback95, useEffect as useEffect95, useState as useState116 } from "react";
28263
28270
  import { Stack as Stack184, Text as Text154 } from "@mantine/core";
28264
28271
 
28265
28272
  // src/mantine/blocks/action/actionTypes/credentialStore/types.ts
@@ -28303,7 +28310,7 @@ var CredentialStoreConfig = ({ inputs, onInputsChange, editor, blockId }) => {
28303
28310
  },
28304
28311
  [local, onInputsChange]
28305
28312
  );
28306
- return /* @__PURE__ */ React263.createElement(Stack184, { gap: "lg" }, /* @__PURE__ */ React263.createElement(Stack184, { gap: "xs" }, /* @__PURE__ */ React263.createElement(Text154, { size: "sm", c: "neutralColor.7" }, "Credential Key"), /* @__PURE__ */ React263.createElement(
28313
+ return /* @__PURE__ */ React264.createElement(Stack184, { gap: "lg" }, /* @__PURE__ */ React264.createElement(Stack184, { gap: "xs" }, /* @__PURE__ */ React264.createElement(Text154, { size: "sm", c: "neutralColor.7" }, "Credential Key"), /* @__PURE__ */ React264.createElement(
28307
28314
  BaseTextInput,
28308
28315
  {
28309
28316
  placeholder: "e.g. kycamllevel1",
@@ -28311,7 +28318,7 @@ var CredentialStoreConfig = ({ inputs, onInputsChange, editor, blockId }) => {
28311
28318
  value: local.credentialKey,
28312
28319
  onChange: (e) => update({ credentialKey: e.currentTarget.value })
28313
28320
  }
28314
- )), /* @__PURE__ */ React263.createElement(Stack184, { gap: "xs" }, /* @__PURE__ */ React263.createElement(Text154, { size: "sm", c: "neutralColor.7" }, "Credential"), /* @__PURE__ */ React263.createElement(
28321
+ )), /* @__PURE__ */ React264.createElement(Stack184, { gap: "xs" }, /* @__PURE__ */ React264.createElement(Text154, { size: "sm", c: "neutralColor.7" }, "Credential"), /* @__PURE__ */ React264.createElement(
28315
28322
  DataInput,
28316
28323
  {
28317
28324
  placeholder: "Credential JSON or {{blockId.output.credential}}",
@@ -28321,7 +28328,7 @@ var CredentialStoreConfig = ({ inputs, onInputsChange, editor, blockId }) => {
28321
28328
  editorDocument: editor?.document || [],
28322
28329
  currentBlockId: blockId
28323
28330
  }
28324
- )), /* @__PURE__ */ React263.createElement(Stack184, { gap: "xs" }, /* @__PURE__ */ React263.createElement(Text154, { size: "sm", c: "neutralColor.7" }, "Room ID (optional)"), /* @__PURE__ */ React263.createElement(
28331
+ )), /* @__PURE__ */ React264.createElement(Stack184, { gap: "xs" }, /* @__PURE__ */ React264.createElement(Text154, { size: "sm", c: "neutralColor.7" }, "Room ID (optional)"), /* @__PURE__ */ React264.createElement(
28325
28332
  DataInput,
28326
28333
  {
28327
28334
  placeholder: "Defaults to the actor's room",
@@ -28335,7 +28342,7 @@ var CredentialStoreConfig = ({ inputs, onInputsChange, editor, blockId }) => {
28335
28342
  };
28336
28343
 
28337
28344
  // src/mantine/blocks/action/actionTypes/credentialStore/CredentialStoreFlowDetail.tsx
28338
- import React264, { useCallback as useCallback96, useMemo as useMemo106, useState as useState117 } from "react";
28345
+ import React265, { useCallback as useCallback96, useMemo as useMemo106, useState as useState117 } from "react";
28339
28346
  import { Alert as Alert51, Button as Button49, Loader as Loader51, Stack as Stack185, Text as Text155 } from "@mantine/core";
28340
28347
  import { IconShieldCheck as IconShieldCheck14 } from "@tabler/icons-react";
28341
28348
  var CredentialStoreFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isDisabled }) => {
@@ -28466,7 +28473,7 @@ var CredentialStoreFlowDetail = ({ inputs, editor, block, runtime, updateRuntime
28466
28473
  updateRuntime,
28467
28474
  verifySignature
28468
28475
  ]);
28469
- return /* @__PURE__ */ React264.createElement(Stack185, { gap: "md" }, !hasKey && /* @__PURE__ */ React264.createElement(Alert51, { color: "yellow", styles: actionAlertStyles }, "No credential key configured. Set one in template mode."), hasKey && !hasCredential && !isCompleted && /* @__PURE__ */ React264.createElement(Alert51, { color: "yellow", styles: actionAlertStyles }, "Waiting for credential data. It will be provided by a block reference or at execution time."), hasKey && hasCredential && !isCompleted && /* @__PURE__ */ React264.createElement(Stack185, { gap: "xs" }, /* @__PURE__ */ React264.createElement(Text155, { size: "xs", c: "dimmed" }, "Credential key: ", resolvedCredentialKey), /* @__PURE__ */ React264.createElement(Button49, { leftSection: submitting ? /* @__PURE__ */ React264.createElement(Loader51, { size: 14 }) : /* @__PURE__ */ React264.createElement(IconShieldCheck14, { size: 14 }), onClick: handleExecute, disabled: isDisabled || submitting, size: "sm" }, submitting ? "Storing..." : "Store Credential")), isCompleted && /* @__PURE__ */ React264.createElement(Alert51, { color: runtime.output?.duplicate ? "yellow" : "green", styles: actionAlertStyles }, runtime.output?.duplicate ? `Credential already stored under key "${runtime.output?.credentialKey || resolvedCredentialKey}" (duplicate).` : `Credential stored successfully under key "${runtime.output?.credentialKey || resolvedCredentialKey}".`), error && /* @__PURE__ */ React264.createElement(Alert51, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && !error && /* @__PURE__ */ React264.createElement(Alert51, { color: "red", styles: actionAlertStyles }, runtime.error.message));
28476
+ return /* @__PURE__ */ React265.createElement(Stack185, { gap: "md" }, !hasKey && /* @__PURE__ */ React265.createElement(Alert51, { color: "yellow", styles: actionAlertStyles }, "No credential key configured. Set one in template mode."), hasKey && !hasCredential && !isCompleted && /* @__PURE__ */ React265.createElement(Alert51, { color: "yellow", styles: actionAlertStyles }, "Waiting for credential data. It will be provided by a block reference or at execution time."), hasKey && hasCredential && !isCompleted && /* @__PURE__ */ React265.createElement(Stack185, { gap: "xs" }, /* @__PURE__ */ React265.createElement(Text155, { size: "xs", c: "dimmed" }, "Credential key: ", resolvedCredentialKey), /* @__PURE__ */ React265.createElement(Button49, { leftSection: submitting ? /* @__PURE__ */ React265.createElement(Loader51, { size: 14 }) : /* @__PURE__ */ React265.createElement(IconShieldCheck14, { size: 14 }), onClick: handleExecute, disabled: isDisabled || submitting, size: "sm" }, submitting ? "Storing..." : "Store Credential")), isCompleted && /* @__PURE__ */ React265.createElement(Alert51, { color: runtime.output?.duplicate ? "yellow" : "green", styles: actionAlertStyles }, runtime.output?.duplicate ? `Credential already stored under key "${runtime.output?.credentialKey || resolvedCredentialKey}" (duplicate).` : `Credential stored successfully under key "${runtime.output?.credentialKey || resolvedCredentialKey}".`), error && /* @__PURE__ */ React265.createElement(Alert51, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && !error && /* @__PURE__ */ React265.createElement(Alert51, { color: "red", styles: actionAlertStyles }, runtime.error.message));
28470
28477
  };
28471
28478
 
28472
28479
  // src/mantine/blocks/action/actionTypes/credentialStore/index.ts
@@ -28480,7 +28487,7 @@ function ActionBlock({ editor, block }) {
28480
28487
  const { docType } = useBlocknoteContext();
28481
28488
  const { actions } = useBlockConditions(block, editor);
28482
28489
  if (docType === "template") {
28483
- return /* @__PURE__ */ React265.createElement(ActionTemplateView, { editor, block });
28490
+ return /* @__PURE__ */ React266.createElement(ActionTemplateView, { editor, block });
28484
28491
  }
28485
28492
  const conditionConfig = parseConditionConfig(block.props.conditions);
28486
28493
  const hasVisibility = hasVisibilityConditions(conditionConfig);
@@ -28491,7 +28498,7 @@ function ActionBlock({ editor, block }) {
28491
28498
  const hasEnable = hasEnableConditions(conditionConfig);
28492
28499
  const enableActionExists = actions.some((a) => a.action === "enable");
28493
28500
  const shouldDisable = hasEnable && !enableActionExists;
28494
- return /* @__PURE__ */ React265.createElement(
28501
+ return /* @__PURE__ */ React266.createElement(
28495
28502
  ActionFlowView,
28496
28503
  {
28497
28504
  block,
@@ -28561,29 +28568,29 @@ var ActionBlockSpec = createReactBlockSpec20(
28561
28568
  {
28562
28569
  render: (props) => {
28563
28570
  const ixoProps = props;
28564
- return /* @__PURE__ */ React266.createElement(ActionBlock, { ...ixoProps });
28571
+ return /* @__PURE__ */ React267.createElement(ActionBlock, { ...ixoProps });
28565
28572
  }
28566
28573
  }
28567
28574
  );
28568
28575
 
28569
28576
  // src/mantine/blocks/location/LocationBlockSpec.tsx
28570
- import React275 from "react";
28577
+ import React276 from "react";
28571
28578
  import { createReactBlockSpec as createReactBlockSpec21 } from "@blocknote/react";
28572
28579
 
28573
28580
  // src/mantine/blocks/location/LocationBlock.tsx
28574
- import React274 from "react";
28581
+ import React275 from "react";
28575
28582
 
28576
28583
  // src/mantine/blocks/location/template/TemplateView.tsx
28577
- import React271, { useMemo as useMemo107 } from "react";
28584
+ import React272, { useMemo as useMemo107 } from "react";
28578
28585
  import { Group as Group100, Stack as Stack187, Text as Text158 } from "@mantine/core";
28579
28586
  import { IconMapPin } from "@tabler/icons-react";
28580
28587
 
28581
28588
  // src/mantine/blocks/location/template/TemplateConfig.tsx
28582
- import React269, { useCallback as useCallback98 } from "react";
28589
+ import React270, { useCallback as useCallback98 } from "react";
28583
28590
  import { IconSettings as IconSettings19 } from "@tabler/icons-react";
28584
28591
 
28585
28592
  // src/mantine/blocks/location/template/GeneralTab.tsx
28586
- import React268, { useEffect as useEffect97, useRef as useRef23, useState as useState120 } from "react";
28593
+ import React269, { useEffect as useEffect97, useRef as useRef23, useState as useState120 } from "react";
28587
28594
  import { Box as Box52, Divider as Divider27, Stack as Stack186, Text as Text156 } from "@mantine/core";
28588
28595
 
28589
28596
  // src/core/hooks/useUnlMap.ts
@@ -28645,7 +28652,7 @@ function useUnlMap() {
28645
28652
  }
28646
28653
 
28647
28654
  // src/mantine/blocks/location/components/TileSelector.tsx
28648
- import React267, { useState as useState119, useCallback as useCallback97 } from "react";
28655
+ import React268, { useState as useState119, useCallback as useCallback97 } from "react";
28649
28656
  import { ActionIcon as ActionIcon36, Group as Group99, Tooltip as Tooltip22 } from "@mantine/core";
28650
28657
  import { IconMap, IconMoon, IconSatellite, IconMountain } from "@tabler/icons-react";
28651
28658
  var TILE_LAYERS = {
@@ -28717,10 +28724,10 @@ var TileSelector = ({ mapRef }) => {
28717
28724
  [mapRef, active]
28718
28725
  );
28719
28726
  const items = [
28720
- { type: "map", label: "Map", icon: /* @__PURE__ */ React267.createElement(IconMap, { size: 14 }) },
28727
+ { type: "map", label: "Map", icon: /* @__PURE__ */ React268.createElement(IconMap, { size: 14 }) },
28721
28728
  ...OVERLAY_KEYS.map((key) => ({ type: key, label: TILE_LAYERS[key].label, icon: TILE_LAYERS[key].icon }))
28722
28729
  ];
28723
- return /* @__PURE__ */ React267.createElement(
28730
+ return /* @__PURE__ */ React268.createElement(
28724
28731
  Group99,
28725
28732
  {
28726
28733
  gap: 2,
@@ -28734,7 +28741,7 @@ var TileSelector = ({ mapRef }) => {
28734
28741
  padding: 2
28735
28742
  }
28736
28743
  },
28737
- items.map(({ type, label, icon: icon2 }) => /* @__PURE__ */ React267.createElement(Tooltip22, { key: type, label, withArrow: true }, /* @__PURE__ */ React267.createElement(
28744
+ items.map(({ type, label, icon: icon2 }) => /* @__PURE__ */ React268.createElement(Tooltip22, { key: type, label, withArrow: true }, /* @__PURE__ */ React268.createElement(
28738
28745
  ActionIcon36,
28739
28746
  {
28740
28747
  variant: active === type ? "filled" : "subtle",
@@ -28820,7 +28827,7 @@ var GeneralTab17 = ({ title, description, latitude, longitude, onTitleChange, on
28820
28827
  markerRef.current = null;
28821
28828
  };
28822
28829
  }, [status, UnlSdk]);
28823
- return /* @__PURE__ */ React268.createElement(Stack186, { gap: "lg" }, /* @__PURE__ */ React268.createElement(Stack186, { gap: "xs" }, /* @__PURE__ */ React268.createElement(Text156, { size: "sm", fw: 600 }, "Title"), /* @__PURE__ */ React268.createElement(
28830
+ return /* @__PURE__ */ React269.createElement(Stack186, { gap: "lg" }, /* @__PURE__ */ React269.createElement(Stack186, { gap: "xs" }, /* @__PURE__ */ React269.createElement(Text156, { size: "sm", fw: 600 }, "Title"), /* @__PURE__ */ React269.createElement(
28824
28831
  BaseTextInput,
28825
28832
  {
28826
28833
  placeholder: "e.g. Project Location",
@@ -28831,7 +28838,7 @@ var GeneralTab17 = ({ title, description, latitude, longitude, onTitleChange, on
28831
28838
  onTitleChange(v);
28832
28839
  }
28833
28840
  }
28834
- )), /* @__PURE__ */ React268.createElement(Stack186, { gap: "xs" }, /* @__PURE__ */ React268.createElement(Text156, { size: "sm", fw: 600 }, "Description"), /* @__PURE__ */ React268.createElement(
28841
+ )), /* @__PURE__ */ React269.createElement(Stack186, { gap: "xs" }, /* @__PURE__ */ React269.createElement(Text156, { size: "sm", fw: 600 }, "Description"), /* @__PURE__ */ React269.createElement(
28835
28842
  BaseTextInput,
28836
28843
  {
28837
28844
  placeholder: "e.g. Main project site coordinates",
@@ -28842,7 +28849,7 @@ var GeneralTab17 = ({ title, description, latitude, longitude, onTitleChange, on
28842
28849
  onDescriptionChange(v);
28843
28850
  }
28844
28851
  }
28845
- )), /* @__PURE__ */ React268.createElement(Divider27, { variant: "dashed" }), /* @__PURE__ */ React268.createElement(Stack186, { gap: "xs" }, /* @__PURE__ */ React268.createElement(Text156, { size: "sm", fw: 600 }, "Location"), /* @__PURE__ */ React268.createElement(Text156, { size: "xs", c: "dimmed" }, "Click on the map to set the location."), mapError ? /* @__PURE__ */ React268.createElement(Text156, { size: "sm", c: "red" }, mapError) : /* @__PURE__ */ React268.createElement(Box52, { ref: wrapperRef, mx: "auto", w: "100%", miw: 280, h: 300, style: { borderRadius: 12, position: "relative", overflow: "hidden" } }, /* @__PURE__ */ React268.createElement(
28852
+ )), /* @__PURE__ */ React269.createElement(Divider27, { variant: "dashed" }), /* @__PURE__ */ React269.createElement(Stack186, { gap: "xs" }, /* @__PURE__ */ React269.createElement(Text156, { size: "sm", fw: 600 }, "Location"), /* @__PURE__ */ React269.createElement(Text156, { size: "xs", c: "dimmed" }, "Click on the map to set the location."), mapError ? /* @__PURE__ */ React269.createElement(Text156, { size: "sm", c: "red" }, mapError) : /* @__PURE__ */ React269.createElement(Box52, { ref: wrapperRef, mx: "auto", w: "100%", miw: 280, h: 300, style: { borderRadius: 12, position: "relative", overflow: "hidden" } }, /* @__PURE__ */ React269.createElement(
28846
28853
  Box52,
28847
28854
  {
28848
28855
  ref: containerRef,
@@ -28855,7 +28862,7 @@ var GeneralTab17 = ({ title, description, latitude, longitude, onTitleChange, on
28855
28862
  height: "600px"
28856
28863
  }
28857
28864
  }
28858
- ), /* @__PURE__ */ React268.createElement(TileSelector, { mapRef }))), /* @__PURE__ */ React268.createElement(Stack186, { gap: "xs" }, /* @__PURE__ */ React268.createElement(BaseTextInput, { label: "Latitude", value: latitude, readOnly: true, placeholder: "Not set" }), /* @__PURE__ */ React268.createElement(BaseTextInput, { label: "Longitude", value: longitude, readOnly: true, placeholder: "Not set" })));
28865
+ ), /* @__PURE__ */ React269.createElement(TileSelector, { mapRef }))), /* @__PURE__ */ React269.createElement(Stack186, { gap: "xs" }, /* @__PURE__ */ React269.createElement(BaseTextInput, { label: "Latitude", value: latitude, readOnly: true, placeholder: "Not set" }), /* @__PURE__ */ React269.createElement(BaseTextInput, { label: "Longitude", value: longitude, readOnly: true, placeholder: "Not set" })));
28859
28866
  };
28860
28867
 
28861
28868
  // src/mantine/blocks/location/template/TemplateConfig.tsx
@@ -28878,7 +28885,7 @@ var TemplateConfig17 = ({ editor, block }) => {
28878
28885
  label: "General",
28879
28886
  value: "general",
28880
28887
  icon: icon(IconSettings19),
28881
- content: /* @__PURE__ */ React269.createElement(
28888
+ content: /* @__PURE__ */ React270.createElement(
28882
28889
  GeneralTab17,
28883
28890
  {
28884
28891
  title: block.props.title || "",
@@ -28892,11 +28899,11 @@ var TemplateConfig17 = ({ editor, block }) => {
28892
28899
  )
28893
28900
  }
28894
28901
  ];
28895
- return /* @__PURE__ */ React269.createElement(BaseRightPanelLayout, { title: "Location Settings", onClose: closePanel, tabs, context: { editor, block } });
28902
+ return /* @__PURE__ */ React270.createElement(BaseRightPanelLayout, { title: "Location Settings", onClose: closePanel, tabs, context: { editor, block } });
28896
28903
  };
28897
28904
 
28898
28905
  // src/mantine/blocks/location/components/LocationMap.tsx
28899
- import React270, { useEffect as useEffect98, useRef as useRef24, useState as useState121 } from "react";
28906
+ import React271, { useEffect as useEffect98, useRef as useRef24, useState as useState121 } from "react";
28900
28907
  import { Box as Box53, Flex as Flex32, Loader as Loader52, Text as Text157 } from "@mantine/core";
28901
28908
  var UnlMap = ({ w = "100%", h = 200, latitude, longitude, zoom = 5, showMarker = true, showTilesControl = false }) => {
28902
28909
  const [mapError, setMapError] = useState121(null);
@@ -28946,7 +28953,7 @@ var UnlMap = ({ w = "100%", h = 200, latitude, longitude, zoom = 5, showMarker =
28946
28953
  }
28947
28954
  }, [latitude, longitude, showMarker]);
28948
28955
  if (status === "loading") {
28949
- return /* @__PURE__ */ React270.createElement(
28956
+ return /* @__PURE__ */ React271.createElement(
28950
28957
  Box53,
28951
28958
  {
28952
28959
  style: {
@@ -28958,11 +28965,11 @@ var UnlMap = ({ w = "100%", h = 200, latitude, longitude, zoom = 5, showMarker =
28958
28965
  w,
28959
28966
  h
28960
28967
  },
28961
- /* @__PURE__ */ React270.createElement(Loader52, null)
28968
+ /* @__PURE__ */ React271.createElement(Loader52, null)
28962
28969
  );
28963
28970
  }
28964
28971
  if (status === "error" || mapError) {
28965
- return /* @__PURE__ */ React270.createElement(
28972
+ return /* @__PURE__ */ React271.createElement(
28966
28973
  Box53,
28967
28974
  {
28968
28975
  style: {
@@ -28974,10 +28981,10 @@ var UnlMap = ({ w = "100%", h = 200, latitude, longitude, zoom = 5, showMarker =
28974
28981
  w,
28975
28982
  h
28976
28983
  },
28977
- /* @__PURE__ */ React270.createElement(Text157, { size: "sm", c: "red" }, mapError || "Failed to load map")
28984
+ /* @__PURE__ */ React271.createElement(Text157, { size: "sm", c: "red" }, mapError || "Failed to load map")
28978
28985
  );
28979
28986
  }
28980
- return /* @__PURE__ */ React270.createElement(Box53, { ref: wrapperRef, style: { position: "relative", borderRadius: 16, overflow: "hidden" }, w, h }, /* @__PURE__ */ React270.createElement(
28987
+ return /* @__PURE__ */ React271.createElement(Box53, { ref: wrapperRef, style: { position: "relative", borderRadius: 16, overflow: "hidden" }, w, h }, /* @__PURE__ */ React271.createElement(
28981
28988
  Box53,
28982
28989
  {
28983
28990
  ref: containerRef,
@@ -28990,55 +28997,55 @@ var UnlMap = ({ w = "100%", h = 200, latitude, longitude, zoom = 5, showMarker =
28990
28997
  height: "600px"
28991
28998
  }
28992
28999
  }
28993
- ), showTilesControl && /* @__PURE__ */ React270.createElement(TileSelector, { mapRef }));
29000
+ ), showTilesControl && /* @__PURE__ */ React271.createElement(TileSelector, { mapRef }));
28994
29001
  };
28995
29002
  function LocationMap(props) {
28996
29003
  if (props.latitude === void 0 || props.longitude === void 0)
28997
- return /* @__PURE__ */ React270.createElement(Flex32, { w: "100%", h: 200, align: "center", justify: "center" }, /* @__PURE__ */ React270.createElement(Loader52, null));
28998
- return /* @__PURE__ */ React270.createElement(UnlMap, { ...props });
29004
+ return /* @__PURE__ */ React271.createElement(Flex32, { w: "100%", h: 200, align: "center", justify: "center" }, /* @__PURE__ */ React271.createElement(Loader52, null));
29005
+ return /* @__PURE__ */ React271.createElement(UnlMap, { ...props });
28999
29006
  }
29000
29007
 
29001
29008
  // src/mantine/blocks/location/template/TemplateView.tsx
29002
29009
  var LOCATION_TEMPLATE_PANEL_ID = "location-template-panel";
29003
29010
  var LocationTemplateView = ({ editor, block }) => {
29004
29011
  const panelId = `${LOCATION_TEMPLATE_PANEL_ID}-${block.id}`;
29005
- const panelContent = useMemo107(() => /* @__PURE__ */ React271.createElement(TemplateConfig17, { editor, block }), [editor, block]);
29012
+ const panelContent = useMemo107(() => /* @__PURE__ */ React272.createElement(TemplateConfig17, { editor, block }), [editor, block]);
29006
29013
  const { open } = usePanel(panelId, panelContent);
29007
29014
  console.log("block.props:", block.props);
29008
29015
  const hasLocation = block.props.latitude && block.props.longitude;
29009
- return /* @__PURE__ */ React271.createElement(BaseContainer, { blockId: block.id, onClick: open, style: { minHeight: 90, justifyContent: "center" } }, /* @__PURE__ */ React271.createElement(Stack187, { gap: "xs", justify: "center" }, /* @__PURE__ */ React271.createElement(Group100, { wrap: "nowrap", align: "center" }, /* @__PURE__ */ React271.createElement(IconMapPin, { color: "white", size: 26, stroke: 1.5 }), /* @__PURE__ */ React271.createElement(Stack187, { gap: 2 }, /* @__PURE__ */ React271.createElement(Text158, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Location"), block.props.description && /* @__PURE__ */ React271.createElement(Text158, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description))), hasLocation && /* @__PURE__ */ React271.createElement(LocationMap, { latitude: block.props.latitude, longitude: block.props.longitude, mapId: `location-template-map-${block.id}`, zoom: 14, showMarker: true, showTilesControl: true })));
29016
+ return /* @__PURE__ */ React272.createElement(BaseContainer, { blockId: block.id, onClick: open, style: { minHeight: 90, justifyContent: "center" } }, /* @__PURE__ */ React272.createElement(Stack187, { gap: "xs", justify: "center" }, /* @__PURE__ */ React272.createElement(Group100, { wrap: "nowrap", align: "center" }, /* @__PURE__ */ React272.createElement(IconMapPin, { color: "white", size: 26, stroke: 1.5 }), /* @__PURE__ */ React272.createElement(Stack187, { gap: 2 }, /* @__PURE__ */ React272.createElement(Text158, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Location"), block.props.description && /* @__PURE__ */ React272.createElement(Text158, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description))), hasLocation && /* @__PURE__ */ React272.createElement(LocationMap, { latitude: block.props.latitude, longitude: block.props.longitude, mapId: `location-template-map-${block.id}`, zoom: 14, showMarker: true, showTilesControl: true })));
29010
29017
  };
29011
29018
 
29012
29019
  // src/mantine/blocks/location/flow/FlowView.tsx
29013
- import React273, { useMemo as useMemo108 } from "react";
29020
+ import React274, { useMemo as useMemo108 } from "react";
29014
29021
  import { Center as Center12, Group as Group101, Stack as Stack188, Text as Text159 } from "@mantine/core";
29015
29022
  import { IconMapPin as IconMapPin2 } from "@tabler/icons-react";
29016
29023
 
29017
29024
  // src/mantine/blocks/location/flow/FlowConfig.tsx
29018
- import React272 from "react";
29025
+ import React273 from "react";
29019
29026
  var FlowConfig3 = ({ block }) => {
29020
29027
  const { closePanel } = usePanelStore();
29021
29028
  const hasLocation = block.props.latitude && block.props.longitude;
29022
- return /* @__PURE__ */ React272.createElement(BaseRightPanelLayout, { title: block.props.title || "Location", onClose: closePanel, isTemplate: false }, hasLocation ? /* @__PURE__ */ React272.createElement(LocationMap, { latitude: block.props.latitude, longitude: block.props.longitude, h: 600, zoom: 14, showMarker: true, showTilesControl: true }) : null);
29029
+ return /* @__PURE__ */ React273.createElement(BaseRightPanelLayout, { title: block.props.title || "Location", onClose: closePanel, isTemplate: false }, hasLocation ? /* @__PURE__ */ React273.createElement(LocationMap, { latitude: block.props.latitude, longitude: block.props.longitude, h: 600, zoom: 14, showMarker: true, showTilesControl: true }) : null);
29023
29030
  };
29024
29031
 
29025
29032
  // src/mantine/blocks/location/flow/FlowView.tsx
29026
29033
  var LOCATION_FLOW_PANEL_ID = "location-flow-panel";
29027
29034
  var LocationFlowView = ({ editor, block }) => {
29028
29035
  const panelId = `${LOCATION_FLOW_PANEL_ID}-${block.id}`;
29029
- const panelContent = useMemo108(() => /* @__PURE__ */ React273.createElement(FlowConfig3, { editor, block }), [editor, block]);
29036
+ const panelContent = useMemo108(() => /* @__PURE__ */ React274.createElement(FlowConfig3, { editor, block }), [editor, block]);
29030
29037
  const { open } = usePanel(panelId, panelContent);
29031
29038
  const hasLocation = block.props.latitude && block.props.longitude;
29032
- return /* @__PURE__ */ React273.createElement(BaseContainer, { blockId: block.id, onClick: open, style: { minHeight: 90, justifyContent: "center" } }, /* @__PURE__ */ React273.createElement(Stack188, { gap: "xs", justify: "center" }, /* @__PURE__ */ React273.createElement(Group101, { wrap: "nowrap", align: "center" }, /* @__PURE__ */ React273.createElement(IconMapPin2, { color: "white", size: 26, stroke: 1.5 }), /* @__PURE__ */ React273.createElement(Stack188, { gap: 2 }, /* @__PURE__ */ React273.createElement(Text159, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Location"), block.props.description && /* @__PURE__ */ React273.createElement(Text159, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description))), hasLocation ? /* @__PURE__ */ React273.createElement(LocationMap, { latitude: block.props.latitude, longitude: block.props.longitude, mapId: `location-flow-map-${block.id}`, zoom: 14, showMarker: true, showTilesControl: true }) : /* @__PURE__ */ React273.createElement(Center12, { py: "md" }, /* @__PURE__ */ React273.createElement(Text159, { size: "sm", c: "dimmed" }, "Location not configured"))));
29039
+ return /* @__PURE__ */ React274.createElement(BaseContainer, { blockId: block.id, onClick: open, style: { minHeight: 90, justifyContent: "center" } }, /* @__PURE__ */ React274.createElement(Stack188, { gap: "xs", justify: "center" }, /* @__PURE__ */ React274.createElement(Group101, { wrap: "nowrap", align: "center" }, /* @__PURE__ */ React274.createElement(IconMapPin2, { color: "white", size: 26, stroke: 1.5 }), /* @__PURE__ */ React274.createElement(Stack188, { gap: 2 }, /* @__PURE__ */ React274.createElement(Text159, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Location"), block.props.description && /* @__PURE__ */ React274.createElement(Text159, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description))), hasLocation ? /* @__PURE__ */ React274.createElement(LocationMap, { latitude: block.props.latitude, longitude: block.props.longitude, mapId: `location-flow-map-${block.id}`, zoom: 14, showMarker: true, showTilesControl: true }) : /* @__PURE__ */ React274.createElement(Center12, { py: "md" }, /* @__PURE__ */ React274.createElement(Text159, { size: "sm", c: "dimmed" }, "Location not configured"))));
29033
29040
  };
29034
29041
 
29035
29042
  // src/mantine/blocks/location/LocationBlock.tsx
29036
29043
  function LocationBlock({ editor, block }) {
29037
29044
  const { docType } = useBlocknoteContext();
29038
29045
  if (docType === "template" || docType === "page") {
29039
- return /* @__PURE__ */ React274.createElement(LocationTemplateView, { editor, block });
29046
+ return /* @__PURE__ */ React275.createElement(LocationTemplateView, { editor, block });
29040
29047
  }
29041
- return /* @__PURE__ */ React274.createElement(LocationFlowView, { editor, block });
29048
+ return /* @__PURE__ */ React275.createElement(LocationFlowView, { editor, block });
29042
29049
  }
29043
29050
 
29044
29051
  // src/mantine/blocks/location/LocationBlockSpec.tsx
@@ -29057,7 +29064,7 @@ var LocationBlockSpec = createReactBlockSpec21(
29057
29064
  {
29058
29065
  render: (props) => {
29059
29066
  const ixoProps = props;
29060
- return /* @__PURE__ */ React275.createElement(LocationBlock, { ...ixoProps });
29067
+ return /* @__PURE__ */ React276.createElement(LocationBlock, { ...ixoProps });
29061
29068
  }
29062
29069
  }
29063
29070
  );
@@ -30388,14 +30395,14 @@ function useCreateCollaborativeIxoEditor(options) {
30388
30395
  }
30389
30396
 
30390
30397
  // src/mantine/IxoEditor.tsx
30391
- import React284, { useState as useState130, useEffect as useEffect107, useCallback as useCallback103 } from "react";
30398
+ import React285, { useState as useState130, useEffect as useEffect107, useCallback as useCallback103 } from "react";
30392
30399
  import { SuggestionMenuController } from "@blocknote/react";
30393
30400
  import { BlockNoteView } from "@blocknote/mantine";
30394
30401
  import { filterSuggestionItems } from "@blocknote/core";
30395
30402
  import { MantineProvider } from "@mantine/core";
30396
30403
 
30397
30404
  // src/mantine/components/PanelContent.tsx
30398
- import React276 from "react";
30405
+ import React277 from "react";
30399
30406
  import { Box as Box54 } from "@mantine/core";
30400
30407
  var panelStyles = {
30401
30408
  light: {
@@ -30425,7 +30432,7 @@ function PanelContent({ theme }) {
30425
30432
  const { activePanel, registeredPanels } = usePanelStore();
30426
30433
  const isOpen = activePanel !== null;
30427
30434
  const content = activePanel ? registeredPanels.get(activePanel) : null;
30428
- return /* @__PURE__ */ React276.createElement(
30435
+ return /* @__PURE__ */ React277.createElement(
30429
30436
  Box54,
30430
30437
  {
30431
30438
  pos: "sticky",
@@ -30445,7 +30452,7 @@ function PanelContent({ theme }) {
30445
30452
  }
30446
30453
 
30447
30454
  // src/mantine/components/CoverImage.tsx
30448
- import React281, { useState as useState127, useRef as useRef27, useEffect as useEffect104, useMemo as useMemo116 } from "react";
30455
+ import React282, { useState as useState127, useRef as useRef27, useEffect as useEffect104, useMemo as useMemo116 } from "react";
30449
30456
  import { Box as Box58, Group as Group104 } from "@mantine/core";
30450
30457
 
30451
30458
  // src/core/lib/imageTransform.ts
@@ -30579,9 +30586,9 @@ function transformIconImage(sourceUrl, size = "default", customOptions) {
30579
30586
  }
30580
30587
 
30581
30588
  // src/mantine/components/Base/CoverImageButton.tsx
30582
- import React277, { forwardRef } from "react";
30589
+ import React278, { forwardRef } from "react";
30583
30590
  import { Button as Button50 } from "@mantine/core";
30584
- var CoverImageButton = forwardRef(({ isActive = false, onClick, children, style, ...props }, ref) => /* @__PURE__ */ React277.createElement(
30591
+ var CoverImageButton = forwardRef(({ isActive = false, onClick, children, style, ...props }, ref) => /* @__PURE__ */ React278.createElement(
30585
30592
  Button50,
30586
30593
  {
30587
30594
  ref,
@@ -30604,7 +30611,7 @@ var CoverImageButton = forwardRef(({ isActive = false, onClick, children, style,
30604
30611
  CoverImageButton.displayName = "CoverImageButton";
30605
30612
 
30606
30613
  // src/mantine/components/Base/BaseIconPicker.tsx
30607
- import React278, { useState as useState125, useMemo as useMemo114, useEffect as useEffect102 } from "react";
30614
+ import React279, { useState as useState125, useMemo as useMemo114, useEffect as useEffect102 } from "react";
30608
30615
  import { TextInput as TextInput8, Tabs as Tabs4, Box as Box55, Stack as Stack189, UnstyledButton as UnstyledButton5, Text as Text160, Center as Center13, ScrollArea as ScrollArea9, Group as Group102, Popover as Popover6 } from "@mantine/core";
30609
30616
  import * as TablerIcons from "@tabler/icons-react";
30610
30617
  import { IconSearch as IconSearch6, IconX as IconX14, IconChevronLeft, IconChevronRight as IconChevronRight14 } from "@tabler/icons-react";
@@ -30673,9 +30680,9 @@ function BaseIconPicker({ opened, onClose, onSelectIcon, onUploadClick, children
30673
30680
  };
30674
30681
  const renderIconGrid = (icons) => {
30675
30682
  if (icons.length === 0) {
30676
- return /* @__PURE__ */ React278.createElement(Center13, { py: "xl" }, /* @__PURE__ */ React278.createElement(Text160, { c: "dimmed", size: "sm" }, "No icons found"));
30683
+ return /* @__PURE__ */ React279.createElement(Center13, { py: "xl" }, /* @__PURE__ */ React279.createElement(Text160, { c: "dimmed", size: "sm" }, "No icons found"));
30677
30684
  }
30678
- return /* @__PURE__ */ React278.createElement(
30685
+ return /* @__PURE__ */ React279.createElement(
30679
30686
  Box55,
30680
30687
  {
30681
30688
  style: {
@@ -30687,7 +30694,7 @@ function BaseIconPicker({ opened, onClose, onSelectIcon, onUploadClick, children
30687
30694
  },
30688
30695
  icons.map(([name, IconComponent]) => {
30689
30696
  const isSelected = currentIcon === name.replace("Icon", "").replace(/([A-Z])/g, "-$1").toLowerCase().slice(1);
30690
- return /* @__PURE__ */ React278.createElement(
30697
+ return /* @__PURE__ */ React279.createElement(
30691
30698
  UnstyledButton5,
30692
30699
  {
30693
30700
  key: name,
@@ -30713,12 +30720,12 @@ function BaseIconPicker({ opened, onClose, onSelectIcon, onUploadClick, children
30713
30720
  }
30714
30721
  }
30715
30722
  },
30716
- /* @__PURE__ */ React278.createElement(IconComponent, { color: "white", size: 24, stroke: 1.5 })
30723
+ /* @__PURE__ */ React279.createElement(IconComponent, { color: "white", size: 24, stroke: 1.5 })
30717
30724
  );
30718
30725
  })
30719
30726
  );
30720
30727
  };
30721
- return /* @__PURE__ */ React278.createElement(Popover6, { opened, onClose, position: "right", width: 500, shadow: "xl" }, /* @__PURE__ */ React278.createElement(Popover6.Target, null, children), /* @__PURE__ */ React278.createElement(
30728
+ return /* @__PURE__ */ React279.createElement(Popover6, { opened, onClose, position: "right", width: 500, shadow: "xl" }, /* @__PURE__ */ React279.createElement(Popover6.Target, null, children), /* @__PURE__ */ React279.createElement(
30722
30729
  Popover6.Dropdown,
30723
30730
  {
30724
30731
  style: {
@@ -30728,15 +30735,15 @@ function BaseIconPicker({ opened, onClose, onSelectIcon, onUploadClick, children
30728
30735
  },
30729
30736
  p: 0
30730
30737
  },
30731
- /* @__PURE__ */ React278.createElement(Stack189, { gap: "md", p: "md" }, /* @__PURE__ */ React278.createElement(Tabs4, { value: activeTab, onChange: setActiveTab, variant: "pills" }, /* @__PURE__ */ React278.createElement(Tabs4.List, null, /* @__PURE__ */ React278.createElement(Tabs4.Tab, { value: "icons" }, "Icons"), /* @__PURE__ */ React278.createElement(Tabs4.Tab, { value: "upload" }, "Upload")), /* @__PURE__ */ React278.createElement(Tabs4.Panel, { value: "icons", pt: "md" }, /* @__PURE__ */ React278.createElement(
30738
+ /* @__PURE__ */ React279.createElement(Stack189, { gap: "md", p: "md" }, /* @__PURE__ */ React279.createElement(Tabs4, { value: activeTab, onChange: setActiveTab, variant: "pills" }, /* @__PURE__ */ React279.createElement(Tabs4.List, null, /* @__PURE__ */ React279.createElement(Tabs4.Tab, { value: "icons" }, "Icons"), /* @__PURE__ */ React279.createElement(Tabs4.Tab, { value: "upload" }, "Upload")), /* @__PURE__ */ React279.createElement(Tabs4.Panel, { value: "icons", pt: "md" }, /* @__PURE__ */ React279.createElement(
30732
30739
  TextInput8,
30733
30740
  {
30734
30741
  mb: "md",
30735
30742
  placeholder: "Filter",
30736
- leftSection: /* @__PURE__ */ React278.createElement(IconSearch6, { size: 18 }),
30743
+ leftSection: /* @__PURE__ */ React279.createElement(IconSearch6, { size: 18 }),
30737
30744
  value: searchQuery,
30738
30745
  onChange: (e) => setSearchQuery(e.currentTarget.value),
30739
- rightSection: searchQuery && /* @__PURE__ */ React278.createElement(UnstyledButton5, { onClick: () => setSearchQuery("") }, /* @__PURE__ */ React278.createElement(IconX14, { size: 18 })),
30746
+ rightSection: searchQuery && /* @__PURE__ */ React279.createElement(UnstyledButton5, { onClick: () => setSearchQuery("") }, /* @__PURE__ */ React279.createElement(IconX14, { size: 18 })),
30740
30747
  style: { flex: 1 },
30741
30748
  styles: {
30742
30749
  input: {
@@ -30746,21 +30753,21 @@ function BaseIconPicker({ opened, onClose, onSelectIcon, onUploadClick, children
30746
30753
  }
30747
30754
  }
30748
30755
  }
30749
- ), !searchQuery && /* @__PURE__ */ React278.createElement(Box55, { mb: "md" }, /* @__PURE__ */ React278.createElement(Text160, { size: "sm", fw: 500, mb: "xs", px: "xs" }, "Recent"), /* @__PURE__ */ React278.createElement(ScrollArea9.Autosize, { scrollbarSize: 0, mah: 60 }, renderIconGrid(recentIcons))), /* @__PURE__ */ React278.createElement(Box55, null, /* @__PURE__ */ React278.createElement(Group102, { justify: "space-between", mb: "xs", px: "xs" }, /* @__PURE__ */ React278.createElement(Text160, { size: "sm", fw: 500 }, searchQuery ? "Results" : "Icons"), totalPages > 1 && /* @__PURE__ */ React278.createElement(Group102, { gap: "xs" }, /* @__PURE__ */ React278.createElement(Text160, { size: "xs", c: "dimmed" }, "Page ", currentPage, " of ", totalPages, " (", filteredIcons.length, " total)"), /* @__PURE__ */ React278.createElement(BaseButton, { size: "xs", onClick: () => setCurrentPage((p) => Math.max(1, p - 1)), disabled: currentPage === 1, leftSection: /* @__PURE__ */ React278.createElement(IconChevronLeft, { size: 14 }) }, "Prev"), /* @__PURE__ */ React278.createElement(
30756
+ ), !searchQuery && /* @__PURE__ */ React279.createElement(Box55, { mb: "md" }, /* @__PURE__ */ React279.createElement(Text160, { size: "sm", fw: 500, mb: "xs", px: "xs" }, "Recent"), /* @__PURE__ */ React279.createElement(ScrollArea9.Autosize, { scrollbarSize: 0, mah: 60 }, renderIconGrid(recentIcons))), /* @__PURE__ */ React279.createElement(Box55, null, /* @__PURE__ */ React279.createElement(Group102, { justify: "space-between", mb: "xs", px: "xs" }, /* @__PURE__ */ React279.createElement(Text160, { size: "sm", fw: 500 }, searchQuery ? "Results" : "Icons"), totalPages > 1 && /* @__PURE__ */ React279.createElement(Group102, { gap: "xs" }, /* @__PURE__ */ React279.createElement(Text160, { size: "xs", c: "dimmed" }, "Page ", currentPage, " of ", totalPages, " (", filteredIcons.length, " total)"), /* @__PURE__ */ React279.createElement(BaseButton, { size: "xs", onClick: () => setCurrentPage((p) => Math.max(1, p - 1)), disabled: currentPage === 1, leftSection: /* @__PURE__ */ React279.createElement(IconChevronLeft, { size: 14 }) }, "Prev"), /* @__PURE__ */ React279.createElement(
30750
30757
  BaseButton,
30751
30758
  {
30752
30759
  size: "xs",
30753
30760
  onClick: () => setCurrentPage((p) => Math.min(totalPages, p + 1)),
30754
30761
  disabled: currentPage === totalPages,
30755
- leftSection: /* @__PURE__ */ React278.createElement(IconChevronRight14, { size: 14 })
30762
+ leftSection: /* @__PURE__ */ React279.createElement(IconChevronRight14, { size: 14 })
30756
30763
  },
30757
30764
  "Next"
30758
- ))), /* @__PURE__ */ React278.createElement(ScrollArea9.Autosize, { scrollbarSize: 0, mah: 200 }, renderIconGrid(paginatedIcons)))), /* @__PURE__ */ React278.createElement(Tabs4.Panel, { value: "upload", pt: "md" }, /* @__PURE__ */ React278.createElement(Center13, { py: "xl" }, /* @__PURE__ */ React278.createElement(Stack189, { align: "center", gap: "md" }, /* @__PURE__ */ React278.createElement(Text160, { size: "sm", c: "dimmed", ta: "center" }, "Upload a custom icon image", /* @__PURE__ */ React278.createElement("br", null), "(PNG, JPG, SVG)"), /* @__PURE__ */ React278.createElement(CoverImageButton, { onClick: onUploadClick }, "Choose File"))))))
30765
+ ))), /* @__PURE__ */ React279.createElement(ScrollArea9.Autosize, { scrollbarSize: 0, mah: 200 }, renderIconGrid(paginatedIcons)))), /* @__PURE__ */ React279.createElement(Tabs4.Panel, { value: "upload", pt: "md" }, /* @__PURE__ */ React279.createElement(Center13, { py: "xl" }, /* @__PURE__ */ React279.createElement(Stack189, { align: "center", gap: "md" }, /* @__PURE__ */ React279.createElement(Text160, { size: "sm", c: "dimmed", ta: "center" }, "Upload a custom icon image", /* @__PURE__ */ React279.createElement("br", null), "(PNG, JPG, SVG)"), /* @__PURE__ */ React279.createElement(CoverImageButton, { onClick: onUploadClick }, "Choose File"))))))
30759
30766
  ));
30760
30767
  }
30761
30768
 
30762
30769
  // src/mantine/components/Base/PageIcon.tsx
30763
- import React279, { useMemo as useMemo115 } from "react";
30770
+ import React280, { useMemo as useMemo115 } from "react";
30764
30771
  import { Center as Center14, Box as Box56 } from "@mantine/core";
30765
30772
  import * as TablerIcons2 from "@tabler/icons-react";
30766
30773
  function PageIcon({ src, iconSize = 64, useCenter = false, style }) {
@@ -30776,7 +30783,7 @@ function PageIcon({ src, iconSize = 64, useCenter = false, style }) {
30776
30783
  const Container = useCenter ? Center14 : Box56;
30777
30784
  if (!src) return null;
30778
30785
  if (IconComponent) {
30779
- return /* @__PURE__ */ React279.createElement(
30786
+ return /* @__PURE__ */ React280.createElement(
30780
30787
  Container,
30781
30788
  {
30782
30789
  style: {
@@ -30788,10 +30795,10 @@ function PageIcon({ src, iconSize = 64, useCenter = false, style }) {
30788
30795
  ...style
30789
30796
  }
30790
30797
  },
30791
- /* @__PURE__ */ React279.createElement(IconComponent, { size: iconSize, color: "white", stroke: 1.5 })
30798
+ /* @__PURE__ */ React280.createElement(IconComponent, { size: iconSize, color: "white", stroke: 1.5 })
30792
30799
  );
30793
30800
  }
30794
- return /* @__PURE__ */ React279.createElement(
30801
+ return /* @__PURE__ */ React280.createElement(
30795
30802
  "img",
30796
30803
  {
30797
30804
  src,
@@ -30812,7 +30819,7 @@ function PageIcon({ src, iconSize = 64, useCenter = false, style }) {
30812
30819
  import { useDisclosure as useDisclosure7 } from "@mantine/hooks";
30813
30820
 
30814
30821
  // src/mantine/components/FlowSettingsPanel.tsx
30815
- import React280, { useState as useState126, useEffect as useEffect103, useCallback as useCallback101 } from "react";
30822
+ import React281, { useState as useState126, useEffect as useEffect103, useCallback as useCallback101 } from "react";
30816
30823
  import { Stack as Stack190, Group as Group103, Button as Button51, ActionIcon as ActionIcon37, Text as Text161, Box as Box57 } from "@mantine/core";
30817
30824
  import { IconPlus as IconPlus11, IconTrash as IconTrash10 } from "@tabler/icons-react";
30818
30825
  var SYSTEM_KEYS = /* @__PURE__ */ new Set(["@context", "_type", "schema_version", "doc_id", "title", "createdAt", "createdBy", "flowOwnerDid"]);
@@ -30879,8 +30886,8 @@ var FlowSettingsPanel = ({ editor }) => {
30879
30886
  },
30880
30887
  [editor]
30881
30888
  );
30882
- const subtitle = /* @__PURE__ */ React280.createElement(Box57, { px: 40, mb: "md" }, /* @__PURE__ */ React280.createElement(Text161, { size: "sm", c: "dimmed" }, "Add key-value settings for this flow. These are available to oracles and action blocks at runtime."));
30883
- return /* @__PURE__ */ React280.createElement(BaseRightPanelLayout, { title: "Flow Settings", onClose: closePanel, isTemplate: true, captionContent: subtitle }, /* @__PURE__ */ React280.createElement(Stack190, { gap: "lg" }, rows.map((row, index) => /* @__PURE__ */ React280.createElement(Stack190, { key: index, gap: "xs" }, /* @__PURE__ */ React280.createElement(Group103, { gap: "xs", align: "center", wrap: "nowrap" }, /* @__PURE__ */ React280.createElement(BaseTextInput, { placeholder: "Key (e.g. protocolDid)", value: row.key, onChange: (e) => handleKeyChange(index, e.currentTarget.value), style: { flex: 1 } }), /* @__PURE__ */ React280.createElement(ActionIcon37, { variant: "subtle", color: "red", onClick: () => handleDelete(index), size: "lg" }, /* @__PURE__ */ React280.createElement(IconTrash10, { size: 16 }))), /* @__PURE__ */ React280.createElement(BaseTextArea, { placeholder: "Value", value: row.value, onChange: (e) => handleValueChange(index, e.currentTarget.value), minRows: 1, maxRows: 8 }))), /* @__PURE__ */ React280.createElement(Button51, { variant: "subtle", leftSection: /* @__PURE__ */ React280.createElement(IconPlus11, { size: 16 }), onClick: handleAdd, size: "sm" }, "Add setting")));
30889
+ const subtitle = /* @__PURE__ */ React281.createElement(Box57, { px: 40, mb: "md" }, /* @__PURE__ */ React281.createElement(Text161, { size: "sm", c: "dimmed" }, "Add key-value settings for this flow. These are available to oracles and action blocks at runtime."));
30890
+ return /* @__PURE__ */ React281.createElement(BaseRightPanelLayout, { title: "Flow Settings", onClose: closePanel, isTemplate: true, captionContent: subtitle }, /* @__PURE__ */ React281.createElement(Stack190, { gap: "lg" }, rows.map((row, index) => /* @__PURE__ */ React281.createElement(Stack190, { key: index, gap: "xs" }, /* @__PURE__ */ React281.createElement(Group103, { gap: "xs", align: "center", wrap: "nowrap" }, /* @__PURE__ */ React281.createElement(BaseTextInput, { placeholder: "Key (e.g. protocolDid)", value: row.key, onChange: (e) => handleKeyChange(index, e.currentTarget.value), style: { flex: 1 } }), /* @__PURE__ */ React281.createElement(ActionIcon37, { variant: "subtle", color: "red", onClick: () => handleDelete(index), size: "lg" }, /* @__PURE__ */ React281.createElement(IconTrash10, { size: 16 }))), /* @__PURE__ */ React281.createElement(BaseTextArea, { placeholder: "Value", value: row.value, onChange: (e) => handleValueChange(index, e.currentTarget.value), minRows: 1, maxRows: 8 }))), /* @__PURE__ */ React281.createElement(Button51, { variant: "subtle", leftSection: /* @__PURE__ */ React281.createElement(IconPlus11, { size: 16 }), onClick: handleAdd, size: "sm" }, "Add setting")));
30884
30891
  };
30885
30892
 
30886
30893
  // src/mantine/components/CoverImage.tsx
@@ -30893,7 +30900,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
30893
30900
  const logoFileInputRef = useRef27(null);
30894
30901
  const [opened, { open, close }] = useDisclosure7(false);
30895
30902
  const [metadata, setMetadata] = useState127(() => editor?.getPageMetadata?.() || null);
30896
- const settingsPanelContent = useMemo116(() => editor ? /* @__PURE__ */ React281.createElement(FlowSettingsPanel, { editor }) : null, [editor]);
30903
+ const settingsPanelContent = useMemo116(() => editor ? /* @__PURE__ */ React282.createElement(FlowSettingsPanel, { editor }) : null, [editor]);
30897
30904
  const { open: openSettings } = usePanel("flow-settings-panel", settingsPanelContent);
30898
30905
  useEffect104(() => {
30899
30906
  if (!editor?._metadataManager) {
@@ -30983,7 +30990,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
30983
30990
  return null;
30984
30991
  }
30985
30992
  if (!hasCover) {
30986
- return /* @__PURE__ */ React281.createElement(
30993
+ return /* @__PURE__ */ React282.createElement(
30987
30994
  Box58,
30988
30995
  {
30989
30996
  style: {
@@ -30996,7 +31003,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
30996
31003
  onMouseEnter: () => editable && setIsHovering(true),
30997
31004
  onMouseLeave: () => editable && setIsHovering(false)
30998
31005
  },
30999
- /* @__PURE__ */ React281.createElement("div", { style: { maxWidth: "900px", margin: "0 auto", position: "relative", height: "100%" } }, /* @__PURE__ */ React281.createElement("input", { ref: coverFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "cover") }), /* @__PURE__ */ React281.createElement("input", { ref: logoFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "logo") }), editable && isHovering && !logoSrc && /* @__PURE__ */ React281.createElement(
31006
+ /* @__PURE__ */ React282.createElement("div", { style: { maxWidth: "900px", margin: "0 auto", position: "relative", height: "100%" } }, /* @__PURE__ */ React282.createElement("input", { ref: coverFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "cover") }), /* @__PURE__ */ React282.createElement("input", { ref: logoFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "logo") }), editable && isHovering && !logoSrc && /* @__PURE__ */ React282.createElement(
31000
31007
  Group104,
31001
31008
  {
31002
31009
  gap: "xs",
@@ -31007,7 +31014,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31007
31014
  zIndex: 10
31008
31015
  }
31009
31016
  },
31010
- /* @__PURE__ */ React281.createElement(
31017
+ /* @__PURE__ */ React282.createElement(
31011
31018
  BaseIconPicker,
31012
31019
  {
31013
31020
  opened,
@@ -31016,11 +31023,11 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31016
31023
  onSelectIcon: (name) => handleSelectLogoIcon(name),
31017
31024
  onUploadClick: () => logoFileInputRef.current?.click()
31018
31025
  },
31019
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: open }, "Add icon")
31026
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: open }, "Add icon")
31020
31027
  ),
31021
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: () => coverFileInputRef.current?.click() }, "Add cover"),
31022
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: openSettings }, "Settings")
31023
- ), logoSrc && /* @__PURE__ */ React281.createElement(
31028
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: () => coverFileInputRef.current?.click() }, "Add cover"),
31029
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: openSettings }, "Settings")
31030
+ ), logoSrc && /* @__PURE__ */ React282.createElement(
31024
31031
  Box58,
31025
31032
  {
31026
31033
  style: {
@@ -31034,8 +31041,8 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31034
31041
  zIndex: 11
31035
31042
  }
31036
31043
  },
31037
- /* @__PURE__ */ React281.createElement(PageIcon, { src: logoSrc, useCenter: true, iconSize: 64 }),
31038
- editable && isHovering && /* @__PURE__ */ React281.createElement(
31044
+ /* @__PURE__ */ React282.createElement(PageIcon, { src: logoSrc, useCenter: true, iconSize: 64 }),
31045
+ editable && isHovering && /* @__PURE__ */ React282.createElement(
31039
31046
  "div",
31040
31047
  {
31041
31048
  style: {
@@ -31050,7 +31057,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31050
31057
  alignItems: "center"
31051
31058
  }
31052
31059
  },
31053
- /* @__PURE__ */ React281.createElement(
31060
+ /* @__PURE__ */ React282.createElement(
31054
31061
  BaseIconPicker,
31055
31062
  {
31056
31063
  opened,
@@ -31059,16 +31066,16 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31059
31066
  onSelectIcon: (name) => handleSelectLogoIcon(name),
31060
31067
  onUploadClick: () => logoFileInputRef.current?.click()
31061
31068
  },
31062
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: open }, "Change")
31069
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: open }, "Change")
31063
31070
  ),
31064
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: handleRemoveLogo }, "Remove"),
31065
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: () => coverFileInputRef.current?.click() }, "Add cover"),
31066
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: openSettings }, "Settings")
31071
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: handleRemoveLogo }, "Remove"),
31072
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: () => coverFileInputRef.current?.click() }, "Add cover"),
31073
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: openSettings }, "Settings")
31067
31074
  )
31068
31075
  ))
31069
31076
  );
31070
31077
  }
31071
- return /* @__PURE__ */ React281.createElement(
31078
+ return /* @__PURE__ */ React282.createElement(
31072
31079
  Box58,
31073
31080
  {
31074
31081
  style: {
@@ -31096,7 +31103,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31096
31103
  }
31097
31104
  }
31098
31105
  },
31099
- /* @__PURE__ */ React281.createElement(
31106
+ /* @__PURE__ */ React282.createElement(
31100
31107
  "img",
31101
31108
  {
31102
31109
  src: coverUrl,
@@ -31114,7 +31121,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31114
31121
  }
31115
31122
  }
31116
31123
  ),
31117
- editable && isHovering && /* @__PURE__ */ React281.createElement(
31124
+ editable && isHovering && /* @__PURE__ */ React282.createElement(
31118
31125
  Group104,
31119
31126
  {
31120
31127
  gap: "xs",
@@ -31125,8 +31132,8 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31125
31132
  zIndex: 10
31126
31133
  }
31127
31134
  },
31128
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: () => coverFileInputRef.current?.click() }, "Change cover"),
31129
- /* @__PURE__ */ React281.createElement(
31135
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: () => coverFileInputRef.current?.click() }, "Change cover"),
31136
+ /* @__PURE__ */ React282.createElement(
31130
31137
  CoverImageButton,
31131
31138
  {
31132
31139
  onClick: () => {
@@ -31139,10 +31146,10 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31139
31146
  },
31140
31147
  isRepositioning ? "Done" : "Reposition"
31141
31148
  ),
31142
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: handleRemoveCover }, "Remove"),
31143
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: openSettings }, "Settings")
31149
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: handleRemoveCover }, "Remove"),
31150
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: openSettings }, "Settings")
31144
31151
  ),
31145
- /* @__PURE__ */ React281.createElement("div", { style: { maxWidth: "900px", margin: "0 auto", position: "absolute", bottom: 0, left: 0, right: 0, height: "70px" } }, /* @__PURE__ */ React281.createElement(
31152
+ /* @__PURE__ */ React282.createElement("div", { style: { maxWidth: "900px", margin: "0 auto", position: "absolute", bottom: 0, left: 0, right: 0, height: "70px" } }, /* @__PURE__ */ React282.createElement(
31146
31153
  Box58,
31147
31154
  {
31148
31155
  style: {
@@ -31154,8 +31161,8 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31154
31161
  zIndex: 11
31155
31162
  }
31156
31163
  },
31157
- logoSrc && /* @__PURE__ */ React281.createElement(PageIcon, { src: logoSrc, useCenter: true, iconSize: 64 }),
31158
- editable && isHovering && /* @__PURE__ */ React281.createElement(React281.Fragment, null, logoSrc ? /* @__PURE__ */ React281.createElement(
31164
+ logoSrc && /* @__PURE__ */ React282.createElement(PageIcon, { src: logoSrc, useCenter: true, iconSize: 64 }),
31165
+ editable && isHovering && /* @__PURE__ */ React282.createElement(React282.Fragment, null, logoSrc ? /* @__PURE__ */ React282.createElement(
31159
31166
  Group104,
31160
31167
  {
31161
31168
  gap: "xs",
@@ -31166,7 +31173,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31166
31173
  zIndex: 12
31167
31174
  }
31168
31175
  },
31169
- /* @__PURE__ */ React281.createElement(
31176
+ /* @__PURE__ */ React282.createElement(
31170
31177
  BaseIconPicker,
31171
31178
  {
31172
31179
  opened,
@@ -31175,10 +31182,10 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31175
31182
  onSelectIcon: (name) => handleSelectLogoIcon(name),
31176
31183
  onUploadClick: () => logoFileInputRef.current?.click()
31177
31184
  },
31178
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: open }, "Change")
31185
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: open }, "Change")
31179
31186
  ),
31180
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: handleRemoveLogo }, "Remove")
31181
- ) : /* @__PURE__ */ React281.createElement(
31187
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: handleRemoveLogo }, "Remove")
31188
+ ) : /* @__PURE__ */ React282.createElement(
31182
31189
  CoverImageButton,
31183
31190
  {
31184
31191
  onClick: open,
@@ -31193,13 +31200,13 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31193
31200
  "Add icon"
31194
31201
  ))
31195
31202
  )),
31196
- /* @__PURE__ */ React281.createElement("input", { ref: coverFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "cover") }),
31197
- /* @__PURE__ */ React281.createElement("input", { ref: logoFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "logo") })
31203
+ /* @__PURE__ */ React282.createElement("input", { ref: coverFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "cover") }),
31204
+ /* @__PURE__ */ React282.createElement("input", { ref: logoFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "logo") })
31198
31205
  );
31199
31206
  }
31200
31207
 
31201
31208
  // src/mantine/components/PageHeader.tsx
31202
- import React282, { useState as useState128, useRef as useRef28, useEffect as useEffect105 } from "react";
31209
+ import React283, { useState as useState128, useRef as useRef28, useEffect as useEffect105 } from "react";
31203
31210
  function PageHeader({
31204
31211
  title = "New page",
31205
31212
  icon: icon2,
@@ -31237,7 +31244,7 @@ function PageHeader({
31237
31244
  setIsMenuOpen(false);
31238
31245
  }
31239
31246
  };
31240
- return /* @__PURE__ */ React282.createElement("div", { style: styles.container }, /* @__PURE__ */ React282.createElement("div", { style: styles.leftSection }, /* @__PURE__ */ React282.createElement("span", { style: styles.icon }, icon2 || "\u{1F4C4}"), /* @__PURE__ */ React282.createElement("span", { style: styles.title }, title), /* @__PURE__ */ React282.createElement("div", { style: styles.privacyContainer, ref: privacyRef }, /* @__PURE__ */ React282.createElement("button", { style: styles.privacyBadge, onClick: () => onPrivacyChange && setIsPrivacyOpen(!isPrivacyOpen) }, /* @__PURE__ */ React282.createElement("span", { style: styles.lockIcon }, isPrivate ? "\u{1F512}" : "\u{1F310}"), /* @__PURE__ */ React282.createElement("span", null, isPrivate ? "Private" : "Public"), onPrivacyChange && /* @__PURE__ */ React282.createElement("span", { style: styles.chevron }, "\u25BE")), isPrivacyOpen && onPrivacyChange && /* @__PURE__ */ React282.createElement("div", { style: styles.dropdown }, /* @__PURE__ */ React282.createElement(
31247
+ return /* @__PURE__ */ React283.createElement("div", { style: styles.container }, /* @__PURE__ */ React283.createElement("div", { style: styles.leftSection }, /* @__PURE__ */ React283.createElement("span", { style: styles.icon }, icon2 || "\u{1F4C4}"), /* @__PURE__ */ React283.createElement("span", { style: styles.title }, title), /* @__PURE__ */ React283.createElement("div", { style: styles.privacyContainer, ref: privacyRef }, /* @__PURE__ */ React283.createElement("button", { style: styles.privacyBadge, onClick: () => onPrivacyChange && setIsPrivacyOpen(!isPrivacyOpen) }, /* @__PURE__ */ React283.createElement("span", { style: styles.lockIcon }, isPrivate ? "\u{1F512}" : "\u{1F310}"), /* @__PURE__ */ React283.createElement("span", null, isPrivate ? "Private" : "Public"), onPrivacyChange && /* @__PURE__ */ React283.createElement("span", { style: styles.chevron }, "\u25BE")), isPrivacyOpen && onPrivacyChange && /* @__PURE__ */ React283.createElement("div", { style: styles.dropdown }, /* @__PURE__ */ React283.createElement(
31241
31248
  "button",
31242
31249
  {
31243
31250
  style: {
@@ -31249,9 +31256,9 @@ function PageHeader({
31249
31256
  setIsPrivacyOpen(false);
31250
31257
  }
31251
31258
  },
31252
- /* @__PURE__ */ React282.createElement("span", { style: styles.menuItemIcon }, "\u{1F512}"),
31253
- /* @__PURE__ */ React282.createElement("span", null, "Private")
31254
- ), /* @__PURE__ */ React282.createElement(
31259
+ /* @__PURE__ */ React283.createElement("span", { style: styles.menuItemIcon }, "\u{1F512}"),
31260
+ /* @__PURE__ */ React283.createElement("span", null, "Private")
31261
+ ), /* @__PURE__ */ React283.createElement(
31255
31262
  "button",
31256
31263
  {
31257
31264
  style: {
@@ -31263,9 +31270,9 @@ function PageHeader({
31263
31270
  setIsPrivacyOpen(false);
31264
31271
  }
31265
31272
  },
31266
- /* @__PURE__ */ React282.createElement("span", { style: styles.menuItemIcon }, "\u{1F310}"),
31267
- /* @__PURE__ */ React282.createElement("span", null, "Public")
31268
- )))), /* @__PURE__ */ React282.createElement("div", { style: styles.rightSection }, lastEdited && /* @__PURE__ */ React282.createElement("span", { style: styles.editedText }, lastEdited), onShare && /* @__PURE__ */ React282.createElement("button", { style: styles.shareButton, onClick: onShare }, "Share"), onFavorite && /* @__PURE__ */ React282.createElement("button", { style: styles.iconButton, onClick: onFavorite }, isFavorited ? "\u2605" : "\u2606"), menuItems.length > 0 && /* @__PURE__ */ React282.createElement("div", { style: styles.menuContainer, ref: menuRef }, /* @__PURE__ */ React282.createElement("button", { style: styles.menuButton, onClick: () => setIsMenuOpen(!isMenuOpen), "aria-label": "Menu" }, /* @__PURE__ */ React282.createElement("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "currentColor" }, /* @__PURE__ */ React282.createElement("circle", { cx: "3", cy: "8", r: "1.5" }), /* @__PURE__ */ React282.createElement("circle", { cx: "8", cy: "8", r: "1.5" }), /* @__PURE__ */ React282.createElement("circle", { cx: "13", cy: "8", r: "1.5" }))), isMenuOpen && /* @__PURE__ */ React282.createElement("div", { style: styles.dropdown }, menuItems.map((item, index) => /* @__PURE__ */ React282.createElement(React282.Fragment, { key: index }, item.divider && index > 0 && /* @__PURE__ */ React282.createElement("div", { style: styles.divider }), /* @__PURE__ */ React282.createElement(
31273
+ /* @__PURE__ */ React283.createElement("span", { style: styles.menuItemIcon }, "\u{1F310}"),
31274
+ /* @__PURE__ */ React283.createElement("span", null, "Public")
31275
+ )))), /* @__PURE__ */ React283.createElement("div", { style: styles.rightSection }, lastEdited && /* @__PURE__ */ React283.createElement("span", { style: styles.editedText }, lastEdited), onShare && /* @__PURE__ */ React283.createElement("button", { style: styles.shareButton, onClick: onShare }, "Share"), onFavorite && /* @__PURE__ */ React283.createElement("button", { style: styles.iconButton, onClick: onFavorite }, isFavorited ? "\u2605" : "\u2606"), menuItems.length > 0 && /* @__PURE__ */ React283.createElement("div", { style: styles.menuContainer, ref: menuRef }, /* @__PURE__ */ React283.createElement("button", { style: styles.menuButton, onClick: () => setIsMenuOpen(!isMenuOpen), "aria-label": "Menu" }, /* @__PURE__ */ React283.createElement("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "currentColor" }, /* @__PURE__ */ React283.createElement("circle", { cx: "3", cy: "8", r: "1.5" }), /* @__PURE__ */ React283.createElement("circle", { cx: "8", cy: "8", r: "1.5" }), /* @__PURE__ */ React283.createElement("circle", { cx: "13", cy: "8", r: "1.5" }))), isMenuOpen && /* @__PURE__ */ React283.createElement("div", { style: styles.dropdown }, menuItems.map((item, index) => /* @__PURE__ */ React283.createElement(React283.Fragment, { key: index }, item.divider && index > 0 && /* @__PURE__ */ React283.createElement("div", { style: styles.divider }), /* @__PURE__ */ React283.createElement(
31269
31276
  "button",
31270
31277
  {
31271
31278
  style: {
@@ -31275,8 +31282,8 @@ function PageHeader({
31275
31282
  onClick: () => handleMenuItemClick(item),
31276
31283
  disabled: item.disabled
31277
31284
  },
31278
- item.icon && /* @__PURE__ */ React282.createElement("span", { style: styles.menuItemIcon }, item.icon),
31279
- /* @__PURE__ */ React282.createElement("span", null, item.label)
31285
+ item.icon && /* @__PURE__ */ React283.createElement("span", { style: styles.menuItemIcon }, item.icon),
31286
+ /* @__PURE__ */ React283.createElement("span", null, item.label)
31280
31287
  )))))));
31281
31288
  }
31282
31289
  var styles = {
@@ -31413,7 +31420,7 @@ var styles = {
31413
31420
  };
31414
31421
 
31415
31422
  // src/mantine/components/ExternalDropZone.tsx
31416
- import React283, { useCallback as useCallback102, useEffect as useEffect106, useRef as useRef29, useState as useState129 } from "react";
31423
+ import React284, { useCallback as useCallback102, useEffect as useEffect106, useRef as useRef29, useState as useState129 } from "react";
31417
31424
  import { Box as Box59 } from "@mantine/core";
31418
31425
  var SCROLL_ZONE_SIZE = 80;
31419
31426
  var SCROLL_SPEED = 12;
@@ -31694,11 +31701,11 @@ var ExternalDropZone = ({
31694
31701
  }
31695
31702
  };
31696
31703
  }, []);
31697
- const indicatorWithPosition = dropIndicator && React283.isValidElement(dropIndicator) ? React283.cloneElement(dropIndicator, {
31704
+ const indicatorWithPosition = dropIndicator && React284.isValidElement(dropIndicator) ? React284.cloneElement(dropIndicator, {
31698
31705
  indicatorTop: typeof indicatorStyle.top === "number" ? indicatorStyle.top : void 0
31699
31706
  }) : dropIndicator;
31700
31707
  const shouldShowIndicator = isValidDrag || isPlacementMode && isHoveringInPlacementMode;
31701
- return /* @__PURE__ */ React283.createElement(
31708
+ return /* @__PURE__ */ React284.createElement(
31702
31709
  Box59,
31703
31710
  {
31704
31711
  ref: containerRef,
@@ -31714,7 +31721,7 @@ var ExternalDropZone = ({
31714
31721
  "data-placement-mode": isPlacementMode ? "true" : void 0
31715
31722
  },
31716
31723
  children,
31717
- isPlacementMode && /* @__PURE__ */ React283.createElement(
31724
+ isPlacementMode && /* @__PURE__ */ React284.createElement(
31718
31725
  Box59,
31719
31726
  {
31720
31727
  style: {
@@ -31734,7 +31741,7 @@ var ExternalDropZone = ({
31734
31741
  onWheel: handleOverlayWheel
31735
31742
  }
31736
31743
  ),
31737
- shouldShowIndicator && indicatorWithPosition && /* @__PURE__ */ React283.createElement(Box59, { style: { ...indicatorStyle, background: "none", border: "none", boxShadow: "none" } }, indicatorWithPosition)
31744
+ shouldShowIndicator && indicatorWithPosition && /* @__PURE__ */ React284.createElement(Box59, { style: { ...indicatorStyle, background: "none", border: "none", boxShadow: "none" } }, indicatorWithPosition)
31738
31745
  );
31739
31746
  };
31740
31747
 
@@ -31798,7 +31805,7 @@ function IxoEditorContent({
31798
31805
  },
31799
31806
  [editor]
31800
31807
  );
31801
- const editorContent = /* @__PURE__ */ React284.createElement(
31808
+ const editorContent = /* @__PURE__ */ React285.createElement(
31802
31809
  BlockNoteView,
31803
31810
  {
31804
31811
  editor,
@@ -31813,7 +31820,7 @@ function IxoEditorContent({
31813
31820
  onChange,
31814
31821
  onSelectionChange
31815
31822
  },
31816
- config.slashMenu && /* @__PURE__ */ React284.createElement(
31823
+ config.slashMenu && /* @__PURE__ */ React285.createElement(
31817
31824
  SuggestionMenuController,
31818
31825
  {
31819
31826
  triggerCharacter: "/",
@@ -31831,7 +31838,7 @@ function IxoEditorContent({
31831
31838
  ),
31832
31839
  children
31833
31840
  );
31834
- return /* @__PURE__ */ React284.createElement("div", { style: { display: "flex", height: "100%", width: "100%", gap: 0 } }, /* @__PURE__ */ React284.createElement(
31841
+ return /* @__PURE__ */ React285.createElement("div", { style: { display: "flex", height: "100%", width: "100%", gap: 0 } }, /* @__PURE__ */ React285.createElement(
31835
31842
  "div",
31836
31843
  {
31837
31844
  className: `ixo-editor ixo-editor--theme-${config.theme} ${className}`,
@@ -31840,9 +31847,9 @@ function IxoEditorContent({
31840
31847
  transition: "width 0.2s ease"
31841
31848
  }
31842
31849
  },
31843
- selfNav && /* @__PURE__ */ React284.createElement(PageHeader, { ...pageHeaderProps, isPrivate: isRoomPrivate, onPrivacyChange: handlePrivacyChange }),
31844
- /* @__PURE__ */ React284.createElement(CoverImage, { coverImageUrl, logoUrl }),
31845
- (onExternalDrop || isPlacementMode) && isEditable ? /* @__PURE__ */ React284.createElement(
31850
+ selfNav && /* @__PURE__ */ React285.createElement(PageHeader, { ...pageHeaderProps, isPrivate: isRoomPrivate, onPrivacyChange: handlePrivacyChange }),
31851
+ /* @__PURE__ */ React285.createElement(CoverImage, { coverImageUrl, logoUrl }),
31852
+ (onExternalDrop || isPlacementMode) && isEditable ? /* @__PURE__ */ React285.createElement(
31846
31853
  ExternalDropZone,
31847
31854
  {
31848
31855
  editor,
@@ -31855,7 +31862,7 @@ function IxoEditorContent({
31855
31862
  },
31856
31863
  editorContent
31857
31864
  ) : editorContent
31858
- ), isPanelVisible && /* @__PURE__ */ React284.createElement(PanelContent, { theme: config.theme }));
31865
+ ), isPanelVisible && /* @__PURE__ */ React285.createElement(PanelContent, { theme: config.theme }));
31859
31866
  }
31860
31867
  function IxoEditor({
31861
31868
  editor,
@@ -31898,7 +31905,7 @@ function IxoEditor({
31898
31905
  tableHandles: true
31899
31906
  };
31900
31907
  const isEditable = editable;
31901
- const editorContent = /* @__PURE__ */ React284.createElement(
31908
+ const editorContent = /* @__PURE__ */ React285.createElement(
31902
31909
  BlocknoteProvider,
31903
31910
  {
31904
31911
  editor,
@@ -31913,7 +31920,7 @@ function IxoEditor({
31913
31920
  connectedUsers,
31914
31921
  awarenessInstance
31915
31922
  },
31916
- /* @__PURE__ */ React284.createElement(
31923
+ /* @__PURE__ */ React285.createElement(
31917
31924
  IxoEditorContent,
31918
31925
  {
31919
31926
  isPanelVisible,
@@ -31937,13 +31944,13 @@ function IxoEditor({
31937
31944
  )
31938
31945
  );
31939
31946
  if (mantineTheme) {
31940
- return /* @__PURE__ */ React284.createElement(MantineProvider, { theme: mantineTheme }, editorContent);
31947
+ return /* @__PURE__ */ React285.createElement(MantineProvider, { theme: mantineTheme }, editorContent);
31941
31948
  }
31942
31949
  return editorContent;
31943
31950
  }
31944
31951
 
31945
31952
  // src/mantine/components/DebugButton.tsx
31946
- import React285 from "react";
31953
+ import React286 from "react";
31947
31954
  function DebugButton({ editor }) {
31948
31955
  const yMapToObject = (map) => {
31949
31956
  if (!map) return null;
@@ -31970,7 +31977,7 @@ function DebugButton({ editor }) {
31970
31977
  const json = JSON.stringify(dump, null, 2);
31971
31978
  console.log("Editor Debug Dump:\n" + json);
31972
31979
  };
31973
- return /* @__PURE__ */ React285.createElement(
31980
+ return /* @__PURE__ */ React286.createElement(
31974
31981
  "button",
31975
31982
  {
31976
31983
  onClick: handleClick,
@@ -31996,7 +32003,7 @@ function DebugButton({ editor }) {
31996
32003
  }
31997
32004
 
31998
32005
  // src/mantine/components/EntitySigningSetup.tsx
31999
- import React286, { useState as useState131 } from "react";
32006
+ import React287, { useState as useState131 } from "react";
32000
32007
  import { Modal as Modal3, Stack as Stack191, Text as Text162, TextInput as TextInput9, Button as Button52, Alert as Alert52, Group as Group105 } from "@mantine/core";
32001
32008
  import { IconAlertCircle as IconAlertCircle20, IconCheck as IconCheck23, IconKey as IconKey2 } from "@tabler/icons-react";
32002
32009
  var EntitySigningSetup = ({ opened, onClose, entityDid, entityName, onSetup }) => {
@@ -32044,15 +32051,15 @@ var EntitySigningSetup = ({ opened, onClose, entityDid, entityName, onSetup }) =
32044
32051
  setSuccess(false);
32045
32052
  }
32046
32053
  };
32047
- return /* @__PURE__ */ React286.createElement(
32054
+ return /* @__PURE__ */ React287.createElement(
32048
32055
  Modal3,
32049
32056
  {
32050
32057
  opened,
32051
32058
  onClose: handleClose,
32052
- title: /* @__PURE__ */ React286.createElement(Group105, { gap: "xs" }, /* @__PURE__ */ React286.createElement(IconKey2, { size: 20 }), /* @__PURE__ */ React286.createElement(Text162, { fw: 600 }, "Entity Signing Setup")),
32059
+ title: /* @__PURE__ */ React287.createElement(Group105, { gap: "xs" }, /* @__PURE__ */ React287.createElement(IconKey2, { size: 20 }), /* @__PURE__ */ React287.createElement(Text162, { fw: 600 }, "Entity Signing Setup")),
32053
32060
  size: "md"
32054
32061
  },
32055
- /* @__PURE__ */ React286.createElement(Stack191, { gap: "md" }, success ? /* @__PURE__ */ React286.createElement(Alert52, { color: "green", icon: /* @__PURE__ */ React286.createElement(IconCheck23, { size: 16 }) }, "Entity signing key set up successfully!") : /* @__PURE__ */ React286.createElement(React286.Fragment, null, /* @__PURE__ */ React286.createElement(Text162, { size: "sm", c: "dimmed" }, "Flow authorization requires a signing key for", " ", /* @__PURE__ */ React286.createElement(Text162, { span: true, fw: 500 }, entityName || entityDid), "."), /* @__PURE__ */ React286.createElement(Alert52, { color: "blue", variant: "light" }, /* @__PURE__ */ React286.createElement(Text162, { size: "sm" }, "This is a ", /* @__PURE__ */ React286.createElement("strong", null, "one-time setup"), " that allows flows to grant permissions without requiring wallet signatures for each delegation.")), /* @__PURE__ */ React286.createElement(Stack191, { gap: "xs" }, /* @__PURE__ */ React286.createElement(Text162, { size: "sm", fw: 500 }, "What happens:"), /* @__PURE__ */ React286.createElement(Text162, { size: "sm", c: "dimmed" }, "1. A new signing key is generated"), /* @__PURE__ */ React286.createElement(Text162, { size: "sm", c: "dimmed" }, "2. Key is registered on the entity's DID document (requires wallet)"), /* @__PURE__ */ React286.createElement(Text162, { size: "sm", c: "dimmed" }, "3. Key is stored encrypted in the entity's Matrix room")), /* @__PURE__ */ React286.createElement(
32062
+ /* @__PURE__ */ React287.createElement(Stack191, { gap: "md" }, success ? /* @__PURE__ */ React287.createElement(Alert52, { color: "green", icon: /* @__PURE__ */ React287.createElement(IconCheck23, { size: 16 }) }, "Entity signing key set up successfully!") : /* @__PURE__ */ React287.createElement(React287.Fragment, null, /* @__PURE__ */ React287.createElement(Text162, { size: "sm", c: "dimmed" }, "Flow authorization requires a signing key for", " ", /* @__PURE__ */ React287.createElement(Text162, { span: true, fw: 500 }, entityName || entityDid), "."), /* @__PURE__ */ React287.createElement(Alert52, { color: "blue", variant: "light" }, /* @__PURE__ */ React287.createElement(Text162, { size: "sm" }, "This is a ", /* @__PURE__ */ React287.createElement("strong", null, "one-time setup"), " that allows flows to grant permissions without requiring wallet signatures for each delegation.")), /* @__PURE__ */ React287.createElement(Stack191, { gap: "xs" }, /* @__PURE__ */ React287.createElement(Text162, { size: "sm", fw: 500 }, "What happens:"), /* @__PURE__ */ React287.createElement(Text162, { size: "sm", c: "dimmed" }, "1. A new signing key is generated"), /* @__PURE__ */ React287.createElement(Text162, { size: "sm", c: "dimmed" }, "2. Key is registered on the entity's DID document (requires wallet)"), /* @__PURE__ */ React287.createElement(Text162, { size: "sm", c: "dimmed" }, "3. Key is stored encrypted in the entity's Matrix room")), /* @__PURE__ */ React287.createElement(
32056
32063
  TextInput9,
32057
32064
  {
32058
32065
  label: "Enter PIN to encrypt signing key",
@@ -32063,12 +32070,12 @@ var EntitySigningSetup = ({ opened, onClose, entityDid, entityName, onSetup }) =
32063
32070
  onChange: (e) => setPin(e.currentTarget.value),
32064
32071
  disabled: loading
32065
32072
  }
32066
- ), /* @__PURE__ */ React286.createElement(TextInput9, { label: "Confirm PIN", type: "password", placeholder: "Confirm PIN", value: confirmPin, onChange: (e) => setConfirmPin(e.currentTarget.value), disabled: loading }), error && /* @__PURE__ */ React286.createElement(Alert52, { color: "red", icon: /* @__PURE__ */ React286.createElement(IconAlertCircle20, { size: 16 }) }, error), /* @__PURE__ */ React286.createElement(Group105, { justify: "flex-end", mt: "md" }, /* @__PURE__ */ React286.createElement(Button52, { variant: "subtle", onClick: handleClose, disabled: loading }, "Cancel"), /* @__PURE__ */ React286.createElement(Button52, { onClick: handleSetup, loading, leftSection: /* @__PURE__ */ React286.createElement(IconKey2, { size: 16 }) }, "Setup Entity Signing"))))
32073
+ ), /* @__PURE__ */ React287.createElement(TextInput9, { label: "Confirm PIN", type: "password", placeholder: "Confirm PIN", value: confirmPin, onChange: (e) => setConfirmPin(e.currentTarget.value), disabled: loading }), error && /* @__PURE__ */ React287.createElement(Alert52, { color: "red", icon: /* @__PURE__ */ React287.createElement(IconAlertCircle20, { size: 16 }) }, error), /* @__PURE__ */ React287.createElement(Group105, { justify: "flex-end", mt: "md" }, /* @__PURE__ */ React287.createElement(Button52, { variant: "subtle", onClick: handleClose, disabled: loading }, "Cancel"), /* @__PURE__ */ React287.createElement(Button52, { onClick: handleSetup, loading, leftSection: /* @__PURE__ */ React287.createElement(IconKey2, { size: 16 }) }, "Setup Entity Signing"))))
32067
32074
  );
32068
32075
  };
32069
32076
 
32070
32077
  // src/mantine/components/FlowPermissionsPanel.tsx
32071
- import React287, { useState as useState132, useEffect as useEffect108, useMemo as useMemo117 } from "react";
32078
+ import React288, { useState as useState132, useEffect as useEffect108, useMemo as useMemo117 } from "react";
32072
32079
  import { Stack as Stack192, Text as Text163, Paper as Paper18, Group as Group106, Badge as Badge43, Button as Button53, ActionIcon as ActionIcon38, Loader as Loader53, Alert as Alert53, Divider as Divider28 } from "@mantine/core";
32073
32080
  import { IconPlus as IconPlus12, IconTrash as IconTrash11, IconShieldCheck as IconShieldCheck15, IconUser as IconUser14, IconRobot as IconRobot4, IconBuilding as IconBuilding2 } from "@tabler/icons-react";
32074
32081
  var FlowPermissionsPanel = ({ editor, entityDid, entityName, onGrantPermission, onRevokePermission, getUserDisplayName }) => {
@@ -32115,11 +32122,11 @@ var FlowPermissionsPanel = ({ editor, entityDid, entityName, onGrantPermission,
32115
32122
  const getIcon2 = (type) => {
32116
32123
  switch (type) {
32117
32124
  case "oracle":
32118
- return /* @__PURE__ */ React287.createElement(IconRobot4, { size: 16 });
32125
+ return /* @__PURE__ */ React288.createElement(IconRobot4, { size: 16 });
32119
32126
  case "entity":
32120
- return /* @__PURE__ */ React287.createElement(IconBuilding2, { size: 16 });
32127
+ return /* @__PURE__ */ React288.createElement(IconBuilding2, { size: 16 });
32121
32128
  default:
32122
- return /* @__PURE__ */ React287.createElement(IconUser14, { size: 16 });
32129
+ return /* @__PURE__ */ React288.createElement(IconUser14, { size: 16 });
32123
32130
  }
32124
32131
  };
32125
32132
  const formatCapabilities = (caps) => {
@@ -32138,11 +32145,11 @@ var FlowPermissionsPanel = ({ editor, entityDid, entityName, onGrantPermission,
32138
32145
  if (date < /* @__PURE__ */ new Date()) return "Expired";
32139
32146
  return date.toLocaleDateString();
32140
32147
  };
32141
- return /* @__PURE__ */ React287.createElement(Stack192, { gap: "md" }, /* @__PURE__ */ React287.createElement(Stack192, { gap: "xs" }, /* @__PURE__ */ React287.createElement(Text163, { fw: 600, size: "sm" }, "Root Authority"), /* @__PURE__ */ React287.createElement(Paper18, { p: "sm", withBorder: true }, /* @__PURE__ */ React287.createElement(Group106, { gap: "xs" }, /* @__PURE__ */ React287.createElement(IconShieldCheck15, { size: 20, color: "var(--mantine-color-green-6)" }), /* @__PURE__ */ React287.createElement(Stack192, { gap: 2, style: { flex: 1 } }, /* @__PURE__ */ React287.createElement(Text163, { size: "sm", fw: 500 }, entityName || entityDid), /* @__PURE__ */ React287.createElement(Text163, { size: "xs", c: "dimmed" }, rootCapability ? `Granted: ${new Date(rootCapability.issuedAt).toLocaleDateString()}` : "Root capability not set up")), /* @__PURE__ */ React287.createElement(Badge43, { color: "green", variant: "light" }, "Entity")))), /* @__PURE__ */ React287.createElement(Divider28, { label: "Delegated Permissions", labelPosition: "center" }), loading ? /* @__PURE__ */ React287.createElement(Group106, { justify: "center", py: "xl" }, /* @__PURE__ */ React287.createElement(Loader53, { size: "sm" })) : delegations.length === 0 ? /* @__PURE__ */ React287.createElement(Alert53, { color: "gray", variant: "light" }, /* @__PURE__ */ React287.createElement(Text163, { size: "sm" }, "No permissions have been granted yet.")) : /* @__PURE__ */ React287.createElement(Stack192, { gap: "xs" }, delegations.map(({ capability, displayName, type }) => /* @__PURE__ */ React287.createElement(Paper18, { key: capability.id, p: "sm", withBorder: true }, /* @__PURE__ */ React287.createElement(Group106, { justify: "space-between" }, /* @__PURE__ */ React287.createElement(Group106, { gap: "xs" }, getIcon2(type), /* @__PURE__ */ React287.createElement(Stack192, { gap: 2 }, /* @__PURE__ */ React287.createElement(Text163, { size: "sm", fw: 500 }, displayName), /* @__PURE__ */ React287.createElement(Text163, { size: "xs", c: "dimmed" }, formatCapabilities(capability.capabilities)), /* @__PURE__ */ React287.createElement(Group106, { gap: "xs" }, /* @__PURE__ */ React287.createElement(Text163, { size: "xs", c: "dimmed" }, "Expires: ", formatExpiration(capability.expiration)), /* @__PURE__ */ React287.createElement(Text163, { size: "xs", c: "dimmed" }, "\u2022"), /* @__PURE__ */ React287.createElement(Text163, { size: "xs", c: "dimmed" }, "Granted by: ", capability.issuer === entityDid ? "Entity" : capability.issuer.slice(-8))))), /* @__PURE__ */ React287.createElement(ActionIcon38, { color: "red", variant: "subtle", onClick: () => handleRevoke(capability.id), loading: revoking === capability.id, disabled: !!revoking }, /* @__PURE__ */ React287.createElement(IconTrash11, { size: 16 })))))), /* @__PURE__ */ React287.createElement(Button53, { leftSection: /* @__PURE__ */ React287.createElement(IconPlus12, { size: 16 }), variant: "light", onClick: onGrantPermission }, "Grant Permission"));
32148
+ return /* @__PURE__ */ React288.createElement(Stack192, { gap: "md" }, /* @__PURE__ */ React288.createElement(Stack192, { gap: "xs" }, /* @__PURE__ */ React288.createElement(Text163, { fw: 600, size: "sm" }, "Root Authority"), /* @__PURE__ */ React288.createElement(Paper18, { p: "sm", withBorder: true }, /* @__PURE__ */ React288.createElement(Group106, { gap: "xs" }, /* @__PURE__ */ React288.createElement(IconShieldCheck15, { size: 20, color: "var(--mantine-color-green-6)" }), /* @__PURE__ */ React288.createElement(Stack192, { gap: 2, style: { flex: 1 } }, /* @__PURE__ */ React288.createElement(Text163, { size: "sm", fw: 500 }, entityName || entityDid), /* @__PURE__ */ React288.createElement(Text163, { size: "xs", c: "dimmed" }, rootCapability ? `Granted: ${new Date(rootCapability.issuedAt).toLocaleDateString()}` : "Root capability not set up")), /* @__PURE__ */ React288.createElement(Badge43, { color: "green", variant: "light" }, "Entity")))), /* @__PURE__ */ React288.createElement(Divider28, { label: "Delegated Permissions", labelPosition: "center" }), loading ? /* @__PURE__ */ React288.createElement(Group106, { justify: "center", py: "xl" }, /* @__PURE__ */ React288.createElement(Loader53, { size: "sm" })) : delegations.length === 0 ? /* @__PURE__ */ React288.createElement(Alert53, { color: "gray", variant: "light" }, /* @__PURE__ */ React288.createElement(Text163, { size: "sm" }, "No permissions have been granted yet.")) : /* @__PURE__ */ React288.createElement(Stack192, { gap: "xs" }, delegations.map(({ capability, displayName, type }) => /* @__PURE__ */ React288.createElement(Paper18, { key: capability.id, p: "sm", withBorder: true }, /* @__PURE__ */ React288.createElement(Group106, { justify: "space-between" }, /* @__PURE__ */ React288.createElement(Group106, { gap: "xs" }, getIcon2(type), /* @__PURE__ */ React288.createElement(Stack192, { gap: 2 }, /* @__PURE__ */ React288.createElement(Text163, { size: "sm", fw: 500 }, displayName), /* @__PURE__ */ React288.createElement(Text163, { size: "xs", c: "dimmed" }, formatCapabilities(capability.capabilities)), /* @__PURE__ */ React288.createElement(Group106, { gap: "xs" }, /* @__PURE__ */ React288.createElement(Text163, { size: "xs", c: "dimmed" }, "Expires: ", formatExpiration(capability.expiration)), /* @__PURE__ */ React288.createElement(Text163, { size: "xs", c: "dimmed" }, "\u2022"), /* @__PURE__ */ React288.createElement(Text163, { size: "xs", c: "dimmed" }, "Granted by: ", capability.issuer === entityDid ? "Entity" : capability.issuer.slice(-8))))), /* @__PURE__ */ React288.createElement(ActionIcon38, { color: "red", variant: "subtle", onClick: () => handleRevoke(capability.id), loading: revoking === capability.id, disabled: !!revoking }, /* @__PURE__ */ React288.createElement(IconTrash11, { size: 16 })))))), /* @__PURE__ */ React288.createElement(Button53, { leftSection: /* @__PURE__ */ React288.createElement(IconPlus12, { size: 16 }), variant: "light", onClick: onGrantPermission }, "Grant Permission"));
32142
32149
  };
32143
32150
 
32144
32151
  // src/mantine/components/GrantPermissionModal.tsx
32145
- import React288, { useState as useState133, useCallback as useCallback104 } from "react";
32152
+ import React289, { useState as useState133, useCallback as useCallback104 } from "react";
32146
32153
  import { Modal as Modal4, Stack as Stack193, Text as Text164, TextInput as TextInput10, Button as Button54, Group as Group107, Radio as Radio6, Checkbox as Checkbox13, Alert as Alert54, Paper as Paper19, Loader as Loader54, Badge as Badge44, ActionIcon as ActionIcon39, Divider as Divider29, NumberInput as NumberInput3 } from "@mantine/core";
32147
32154
  import { IconSearch as IconSearch7, IconUser as IconUser15, IconRobot as IconRobot5, IconX as IconX15, IconShieldPlus as IconShieldPlus4 } from "@tabler/icons-react";
32148
32155
  var GrantPermissionModal = ({ opened, onClose, flowUri, blocks, targetBlockId, searchUsers, getOracles, onGrant }) => {
@@ -32250,15 +32257,15 @@ var GrantPermissionModal = ({ opened, onClose, flowUri, blocks, targetBlockId, s
32250
32257
  resetForm();
32251
32258
  }
32252
32259
  };
32253
- return /* @__PURE__ */ React288.createElement(
32260
+ return /* @__PURE__ */ React289.createElement(
32254
32261
  Modal4,
32255
32262
  {
32256
32263
  opened,
32257
32264
  onClose: handleClose,
32258
- title: /* @__PURE__ */ React288.createElement(Group107, { gap: "xs" }, /* @__PURE__ */ React288.createElement(IconShieldPlus4, { size: 20 }), /* @__PURE__ */ React288.createElement(Text164, { fw: 600 }, "Grant Permission")),
32265
+ title: /* @__PURE__ */ React289.createElement(Group107, { gap: "xs" }, /* @__PURE__ */ React289.createElement(IconShieldPlus4, { size: 20 }), /* @__PURE__ */ React289.createElement(Text164, { fw: 600 }, "Grant Permission")),
32259
32266
  size: "lg"
32260
32267
  },
32261
- /* @__PURE__ */ React288.createElement(Stack193, { gap: "md" }, /* @__PURE__ */ React288.createElement(Stack193, { gap: "xs" }, /* @__PURE__ */ React288.createElement(Text164, { size: "sm", fw: 500 }, "Recipient Type"), /* @__PURE__ */ React288.createElement(
32268
+ /* @__PURE__ */ React289.createElement(Stack193, { gap: "md" }, /* @__PURE__ */ React289.createElement(Stack193, { gap: "xs" }, /* @__PURE__ */ React289.createElement(Text164, { size: "sm", fw: 500 }, "Recipient Type"), /* @__PURE__ */ React289.createElement(
32262
32269
  Radio6.Group,
32263
32270
  {
32264
32271
  value: recipientType,
@@ -32268,23 +32275,23 @@ var GrantPermissionModal = ({ opened, onClose, flowUri, blocks, targetBlockId, s
32268
32275
  setSearchResults([]);
32269
32276
  }
32270
32277
  },
32271
- /* @__PURE__ */ React288.createElement(Group107, null, /* @__PURE__ */ React288.createElement(Radio6, { value: "user", label: "User" }), /* @__PURE__ */ React288.createElement(Radio6, { value: "oracle", label: "Oracle" }), /* @__PURE__ */ React288.createElement(Radio6, { value: "manual", label: "Enter DID" }))
32272
- )), recipientType !== "manual" ? /* @__PURE__ */ React288.createElement(Stack193, { gap: "xs" }, /* @__PURE__ */ React288.createElement(
32278
+ /* @__PURE__ */ React289.createElement(Group107, null, /* @__PURE__ */ React289.createElement(Radio6, { value: "user", label: "User" }), /* @__PURE__ */ React289.createElement(Radio6, { value: "oracle", label: "Oracle" }), /* @__PURE__ */ React289.createElement(Radio6, { value: "manual", label: "Enter DID" }))
32279
+ )), recipientType !== "manual" ? /* @__PURE__ */ React289.createElement(Stack193, { gap: "xs" }, /* @__PURE__ */ React289.createElement(
32273
32280
  TextInput10,
32274
32281
  {
32275
32282
  placeholder: recipientType === "oracle" ? "Search oracles..." : "Search users...",
32276
- leftSection: /* @__PURE__ */ React288.createElement(IconSearch7, { size: 16 }),
32277
- rightSection: searching ? /* @__PURE__ */ React288.createElement(Loader54, { size: 14 }) : null,
32283
+ leftSection: /* @__PURE__ */ React289.createElement(IconSearch7, { size: 16 }),
32284
+ rightSection: searching ? /* @__PURE__ */ React289.createElement(Loader54, { size: 14 }) : null,
32278
32285
  value: searchQuery,
32279
32286
  onChange: (e) => setSearchQuery(e.currentTarget.value),
32280
32287
  onKeyDown: (e) => e.key === "Enter" && handleSearch()
32281
32288
  }
32282
- ), selectedRecipient ? /* @__PURE__ */ React288.createElement(Paper19, { p: "sm", withBorder: true }, /* @__PURE__ */ React288.createElement(Group107, { justify: "space-between" }, /* @__PURE__ */ React288.createElement(Group107, { gap: "xs" }, recipientType === "oracle" ? /* @__PURE__ */ React288.createElement(IconRobot5, { size: 16 }) : /* @__PURE__ */ React288.createElement(IconUser15, { size: 16 }), /* @__PURE__ */ React288.createElement(Text164, { size: "sm" }, selectedRecipient.displayName), /* @__PURE__ */ React288.createElement(Badge44, { size: "xs", variant: "light" }, selectedRecipient.did.slice(-12))), /* @__PURE__ */ React288.createElement(ActionIcon39, { size: "sm", variant: "subtle", onClick: () => setSelectedRecipient(null) }, /* @__PURE__ */ React288.createElement(IconX15, { size: 14 })))) : searchResults.length > 0 ? /* @__PURE__ */ React288.createElement(Paper19, { p: "xs", withBorder: true, style: { maxHeight: 150, overflow: "auto" } }, /* @__PURE__ */ React288.createElement(Stack193, { gap: 4 }, searchResults.map((result) => /* @__PURE__ */ React288.createElement(Button54, { key: result.did, variant: "subtle", size: "sm", justify: "flex-start", onClick: () => setSelectedRecipient(result) }, result.displayName)))) : null) : /* @__PURE__ */ React288.createElement(TextInput10, { label: "Recipient DID", placeholder: "did:ixo:...", value: manualDid, onChange: (e) => setManualDid(e.currentTarget.value) }), /* @__PURE__ */ React288.createElement(Divider29, null), /* @__PURE__ */ React288.createElement(Stack193, { gap: "xs" }, /* @__PURE__ */ React288.createElement(Text164, { size: "sm", fw: 500 }, "Permission Scope"), singleBlockMode && fixedBlock ? (
32289
+ ), selectedRecipient ? /* @__PURE__ */ React289.createElement(Paper19, { p: "sm", withBorder: true }, /* @__PURE__ */ React289.createElement(Group107, { justify: "space-between" }, /* @__PURE__ */ React289.createElement(Group107, { gap: "xs" }, recipientType === "oracle" ? /* @__PURE__ */ React289.createElement(IconRobot5, { size: 16 }) : /* @__PURE__ */ React289.createElement(IconUser15, { size: 16 }), /* @__PURE__ */ React289.createElement(Text164, { size: "sm" }, selectedRecipient.displayName), /* @__PURE__ */ React289.createElement(Badge44, { size: "xs", variant: "light" }, selectedRecipient.did.slice(-12))), /* @__PURE__ */ React289.createElement(ActionIcon39, { size: "sm", variant: "subtle", onClick: () => setSelectedRecipient(null) }, /* @__PURE__ */ React289.createElement(IconX15, { size: 14 })))) : searchResults.length > 0 ? /* @__PURE__ */ React289.createElement(Paper19, { p: "xs", withBorder: true, style: { maxHeight: 150, overflow: "auto" } }, /* @__PURE__ */ React289.createElement(Stack193, { gap: 4 }, searchResults.map((result) => /* @__PURE__ */ React289.createElement(Button54, { key: result.did, variant: "subtle", size: "sm", justify: "flex-start", onClick: () => setSelectedRecipient(result) }, result.displayName)))) : null) : /* @__PURE__ */ React289.createElement(TextInput10, { label: "Recipient DID", placeholder: "did:ixo:...", value: manualDid, onChange: (e) => setManualDid(e.currentTarget.value) }), /* @__PURE__ */ React289.createElement(Divider29, null), /* @__PURE__ */ React289.createElement(Stack193, { gap: "xs" }, /* @__PURE__ */ React289.createElement(Text164, { size: "sm", fw: 500 }, "Permission Scope"), singleBlockMode && fixedBlock ? (
32283
32290
  // Single block mode: show fixed block info
32284
- /* @__PURE__ */ React288.createElement(Paper19, { p: "sm", withBorder: true }, /* @__PURE__ */ React288.createElement(Group107, { gap: "xs" }, /* @__PURE__ */ React288.createElement(Badge44, { variant: "light", color: "blue" }, fixedBlock.type), /* @__PURE__ */ React288.createElement(Text164, { size: "sm" }, fixedBlock.name || `Block ${fixedBlock.id.slice(-8)}`)), /* @__PURE__ */ React288.createElement(Text164, { size: "xs", c: "dimmed", mt: "xs" }, "Permission will be granted to execute this specific block."))
32291
+ /* @__PURE__ */ React289.createElement(Paper19, { p: "sm", withBorder: true }, /* @__PURE__ */ React289.createElement(Group107, { gap: "xs" }, /* @__PURE__ */ React289.createElement(Badge44, { variant: "light", color: "blue" }, fixedBlock.type), /* @__PURE__ */ React289.createElement(Text164, { size: "sm" }, fixedBlock.name || `Block ${fixedBlock.id.slice(-8)}`)), /* @__PURE__ */ React289.createElement(Text164, { size: "xs", c: "dimmed", mt: "xs" }, "Permission will be granted to execute this specific block."))
32285
32292
  ) : (
32286
32293
  // Multi-block mode: show scope selection
32287
- /* @__PURE__ */ React288.createElement(React288.Fragment, null, /* @__PURE__ */ React288.createElement(Radio6.Group, { value: scopeType, onChange: (v) => setScopeType(v) }, /* @__PURE__ */ React288.createElement(Stack193, { gap: "xs" }, /* @__PURE__ */ React288.createElement(Radio6, { value: "full", label: "Full flow access (can execute any block)" }), /* @__PURE__ */ React288.createElement(Radio6, { value: "blocks", label: "Specific blocks only" }))), scopeType === "blocks" && /* @__PURE__ */ React288.createElement(Paper19, { p: "sm", withBorder: true, style: { maxHeight: 150, overflow: "auto" } }, /* @__PURE__ */ React288.createElement(Stack193, { gap: "xs" }, blocks.map((block) => /* @__PURE__ */ React288.createElement(
32294
+ /* @__PURE__ */ React289.createElement(React289.Fragment, null, /* @__PURE__ */ React289.createElement(Radio6.Group, { value: scopeType, onChange: (v) => setScopeType(v) }, /* @__PURE__ */ React289.createElement(Stack193, { gap: "xs" }, /* @__PURE__ */ React289.createElement(Radio6, { value: "full", label: "Full flow access (can execute any block)" }), /* @__PURE__ */ React289.createElement(Radio6, { value: "blocks", label: "Specific blocks only" }))), scopeType === "blocks" && /* @__PURE__ */ React289.createElement(Paper19, { p: "sm", withBorder: true, style: { maxHeight: 150, overflow: "auto" } }, /* @__PURE__ */ React289.createElement(Stack193, { gap: "xs" }, blocks.map((block) => /* @__PURE__ */ React289.createElement(
32288
32295
  Checkbox13,
32289
32296
  {
32290
32297
  key: block.id,
@@ -32299,7 +32306,7 @@ var GrantPermissionModal = ({ opened, onClose, flowUri, blocks, targetBlockId, s
32299
32306
  }
32300
32307
  }
32301
32308
  )))))
32302
- )), /* @__PURE__ */ React288.createElement(Divider29, null), /* @__PURE__ */ React288.createElement(Stack193, { gap: "xs" }, /* @__PURE__ */ React288.createElement(Checkbox13, { label: "Set expiration", checked: expirationEnabled, onChange: (e) => setExpirationEnabled(e.currentTarget.checked) }), expirationEnabled && /* @__PURE__ */ React288.createElement(NumberInput3, { label: "Expires in (days)", placeholder: "30", value: expirationDays, onChange: setExpirationDays, min: 1, max: 365 })), /* @__PURE__ */ React288.createElement(
32309
+ )), /* @__PURE__ */ React289.createElement(Divider29, null), /* @__PURE__ */ React289.createElement(Stack193, { gap: "xs" }, /* @__PURE__ */ React289.createElement(Checkbox13, { label: "Set expiration", checked: expirationEnabled, onChange: (e) => setExpirationEnabled(e.currentTarget.checked) }), expirationEnabled && /* @__PURE__ */ React289.createElement(NumberInput3, { label: "Expires in (days)", placeholder: "30", value: expirationDays, onChange: setExpirationDays, min: 1, max: 365 })), /* @__PURE__ */ React289.createElement(
32303
32310
  Checkbox13,
32304
32311
  {
32305
32312
  label: "Recipient can grant permissions to others",
@@ -32307,7 +32314,7 @@ var GrantPermissionModal = ({ opened, onClose, flowUri, blocks, targetBlockId, s
32307
32314
  checked: canDelegate,
32308
32315
  onChange: (e) => setCanDelegate(e.currentTarget.checked)
32309
32316
  }
32310
- ), /* @__PURE__ */ React288.createElement(Divider29, null), /* @__PURE__ */ React288.createElement(TextInput10, { label: "Enter your PIN to sign this delegation", type: "password", placeholder: "PIN", value: pin, onChange: (e) => setPin(e.currentTarget.value) }), error && /* @__PURE__ */ React288.createElement(Alert54, { color: "red" }, error), /* @__PURE__ */ React288.createElement(Group107, { justify: "flex-end" }, /* @__PURE__ */ React288.createElement(Button54, { variant: "subtle", onClick: handleClose, disabled: loading }, "Cancel"), /* @__PURE__ */ React288.createElement(Button54, { onClick: handleGrant, loading }, "Grant Permission")))
32317
+ ), /* @__PURE__ */ React289.createElement(Divider29, null), /* @__PURE__ */ React289.createElement(TextInput10, { label: "Enter your PIN to sign this delegation", type: "password", placeholder: "PIN", value: pin, onChange: (e) => setPin(e.currentTarget.value) }), error && /* @__PURE__ */ React289.createElement(Alert54, { color: "red" }, error), /* @__PURE__ */ React289.createElement(Group107, { justify: "flex-end" }, /* @__PURE__ */ React289.createElement(Button54, { variant: "subtle", onClick: handleClose, disabled: loading }, "Cancel"), /* @__PURE__ */ React289.createElement(Button54, { onClick: handleGrant, loading }, "Grant Permission")))
32311
32318
  );
32312
32319
  };
32313
32320
 
@@ -32417,4 +32424,4 @@ export {
32417
32424
  getExtraSlashMenuItems,
32418
32425
  useCreateIxoEditor
32419
32426
  };
32420
- //# sourceMappingURL=chunk-5KCGR3WU.mjs.map
32427
+ //# sourceMappingURL=chunk-WALYBJIM.mjs.map