@ixo/editor 3.0.0-beta.16 → 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.
@@ -16,7 +16,7 @@ import {
16
16
  isActorAuthorized,
17
17
  parseLinkedEntities,
18
18
  transformSurveyToCredentialSubject
19
- } from "./chunk-UHF7YDII.mjs";
19
+ } from "./chunk-MB36TYBB.mjs";
20
20
 
21
21
  // src/mantine/hooks/useCreateIxoEditor.ts
22
22
  import { useCreateBlockNote } from "@blocknote/react";
@@ -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__";
@@ -25638,8 +25645,13 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
25638
25645
  const [evaluationLoading, setEvaluationLoading] = useState99(false);
25639
25646
  const [evaluationResult, setEvaluationResult] = useState99(null);
25640
25647
  const [activeFilter, setActiveFilter] = useState99("all");
25648
+ const [outcomeTemplateJson, setOutcomeTemplateJson] = useState99(null);
25649
+ const [outcomeTemplateLoading, setOutcomeTemplateLoading] = useState99(false);
25650
+ const [outcomeResponses, setOutcomeResponses] = useState99({});
25651
+ const [outcomeComplete, setOutcomeComplete] = useState99(false);
25641
25652
  const [submissionOpen, setSubmissionOpen] = useState99(false);
25642
25653
  const [aiEvalOpen, setAiEvalOpen] = useState99(false);
25654
+ const [outcomeOpen, setOutcomeOpen] = useState99(true);
25643
25655
  const [evaluationOpen, setEvaluationOpen] = useState99(true);
25644
25656
  const [isEvaluatorAuthorized, setIsEvaluatorAuthorized] = useState99(false);
25645
25657
  const [authChecking, setAuthChecking] = useState99(true);
@@ -25662,6 +25674,21 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
25662
25674
  model.data = claimData;
25663
25675
  return model;
25664
25676
  }, [surveyJson, claimData]);
25677
+ const outcomeSurveyModel = useMemo96(() => {
25678
+ if (!outcomeTemplateJson) return null;
25679
+ const model = new SurveyModel11(outcomeTemplateJson);
25680
+ model.applyTheme(surveyTheme2);
25681
+ model.showQuestionNumbers = "off";
25682
+ model.questionsOnPageMode = "singlePage";
25683
+ model.onValueChanged.add((sender) => {
25684
+ setOutcomeResponses({ ...sender.data });
25685
+ });
25686
+ model.onComplete.add((sender) => {
25687
+ setOutcomeResponses({ ...sender.data });
25688
+ setOutcomeComplete(true);
25689
+ });
25690
+ return model;
25691
+ }, [outcomeTemplateJson]);
25665
25692
  const refreshClaims = useCallback79(async () => {
25666
25693
  if (!deedDid || !collectionId) return;
25667
25694
  setLoadingClaims(true);
@@ -25694,6 +25721,17 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
25694
25721
  setClaimData(claimDataResult || null);
25695
25722
  const surveyResult = await handlers.getDeedSurveyTemplate(deedDid);
25696
25723
  setSurveyJson(surveyResult?.surveyTemplate || null);
25724
+ if (handlers.getEvaluationTemplate) {
25725
+ setOutcomeTemplateLoading(true);
25726
+ try {
25727
+ const evalTemplateResult = await handlers.getEvaluationTemplate(deedDid);
25728
+ setOutcomeTemplateJson(evalTemplateResult?.surveyTemplate || null);
25729
+ } catch {
25730
+ setOutcomeTemplateJson(null);
25731
+ } finally {
25732
+ setOutcomeTemplateLoading(false);
25733
+ }
25734
+ }
25697
25735
  if (handlers.getDeedRubric && handlers.evaluateWithRubric && claimDataResult) {
25698
25736
  setEvaluationLoading(true);
25699
25737
  try {
@@ -25734,6 +25772,9 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
25734
25772
  setClaimData(null);
25735
25773
  setSurveyJson(null);
25736
25774
  setEvaluationResult(null);
25775
+ setOutcomeTemplateJson(null);
25776
+ setOutcomeResponses({});
25777
+ setOutcomeComplete(false);
25737
25778
  }, [deedDid, collectionId]);
25738
25779
  useEffect82(() => {
25739
25780
  if (!deedDid || !collectionId) return;
@@ -25827,14 +25868,18 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
25827
25868
  }
25828
25869
  setSubmissionOpen(false);
25829
25870
  setAiEvalOpen(false);
25871
+ setOutcomeOpen(true);
25830
25872
  setEvaluationOpen(true);
25831
25873
  setPaymentRows([createPaymentRow2()]);
25874
+ setOutcomeResponses({});
25875
+ setOutcomeComplete(false);
25832
25876
  loadClaimDetail(selectedClaim);
25833
25877
  }, [selectedClaim, loadClaimDetail]);
25834
25878
  const isClaimAlreadyEvaluated = useMemo96(() => {
25835
25879
  if (!selectedClaim) return false;
25836
25880
  return isClaimEvaluated(selectedClaim);
25837
25881
  }, [selectedClaim]);
25882
+ const outcomeNotReady = Boolean(outcomeTemplateJson && !outcomeComplete);
25838
25883
  const addPaymentRow = useCallback79(() => {
25839
25884
  setPaymentRows((prev) => [...prev, createPaymentRow2()]);
25840
25885
  }, []);
@@ -25901,6 +25946,7 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
25901
25946
  capabilityCid: capabilityId,
25902
25947
  rubricAuthority: deedDid,
25903
25948
  rubricId: deedDid,
25949
+ patch: Object.keys(outcomeResponses).length > 0 ? outcomeResponses : void 0,
25904
25950
  traceCid: evaluationResult?.trace?.result?.executionId,
25905
25951
  items: evaluationResult?.trace?.result?.steps?.map((step) => ({
25906
25952
  id: step.stepId,
@@ -25974,7 +26020,8 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
25974
26020
  updateRuntime,
25975
26021
  refreshClaims,
25976
26022
  buildPaymentCoins,
25977
- evaluationResult
26023
+ evaluationResult,
26024
+ outcomeResponses
25978
26025
  ]
25979
26026
  );
25980
26027
  if (selectedClaim) {
@@ -25982,7 +26029,7 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
25982
26029
  const selectedClaimProfile = profilesByDid[selectedClaim.agentDid];
25983
26030
  const selectedDisplayName = selectedClaimProfile?.displayname || selectedClaim.agentDid || selectedClaim.agentAddress;
25984
26031
  const selectedAvatarLabel = (selectedClaimProfile?.displayname || selectedClaim.agentDid || selectedClaim.agentAddress || "?")[0]?.toUpperCase();
25985
- 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(
25986
26033
  Box48,
25987
26034
  {
25988
26035
  style: {
@@ -26003,7 +26050,18 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26003
26050
  }
26004
26051
  },
26005
26052
  selectedClaimProfile?.avatarUrl ? null : selectedAvatarLabel
26006
- ), /* @__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(
26054
+ Box48,
26055
+ {
26056
+ p: "sm",
26057
+ style: {
26058
+ borderRadius: 16,
26059
+ background: "var(--mantine-color-neutralColor-5)"
26060
+ }
26061
+ },
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(
26007
26065
  Box48,
26008
26066
  {
26009
26067
  p: "sm",
@@ -26012,9 +26070,9 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26012
26070
  background: "var(--mantine-color-neutralColor-5)"
26013
26071
  }
26014
26072
  },
26015
- /* @__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"))),
26016
- /* @__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.")))
26017
- ), /* @__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(
26018
26076
  Box48,
26019
26077
  {
26020
26078
  p: "sm",
@@ -26023,9 +26081,9 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26023
26081
  background: "var(--mantine-color-neutralColor-5)"
26024
26082
  }
26025
26083
  },
26026
- /* @__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"))),
26027
- /* @__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.")))
26028
- ), /* @__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(
26029
26087
  Box48,
26030
26088
  {
26031
26089
  p: "sm",
@@ -26034,8 +26092,8 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26034
26092
  background: "var(--mantine-color-neutralColor-5)"
26035
26093
  }
26036
26094
  },
26037
- /* @__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"))),
26038
- /* @__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(
26039
26097
  BaseSelect,
26040
26098
  {
26041
26099
  value: row.denom,
@@ -26048,7 +26106,7 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26048
26106
  clearable: false,
26049
26107
  disabled: isDisabled || submitting
26050
26108
  }
26051
- ), row.denom === CUSTOM_DENOM2 && /* @__PURE__ */ React246.createElement(
26109
+ ), row.denom === CUSTOM_DENOM2 && /* @__PURE__ */ React247.createElement(
26052
26110
  BaseTextInput,
26053
26111
  {
26054
26112
  placeholder: "Custom denom (e.g. ibc/... or uixo)",
@@ -26056,7 +26114,7 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26056
26114
  onChange: (event) => updatePaymentRow(row.id, { customDenom: event.currentTarget.value }),
26057
26115
  disabled: isDisabled || submitting
26058
26116
  }
26059
- ), /* @__PURE__ */ React246.createElement(
26117
+ ), /* @__PURE__ */ React247.createElement(
26060
26118
  BaseNumberInput,
26061
26119
  {
26062
26120
  min: 0,
@@ -26065,24 +26123,24 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26065
26123
  placeholder: "Amount",
26066
26124
  disabled: isDisabled || submitting
26067
26125
  }
26068
- ))), /* @__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) })))
26069
- ), 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(
26070
26128
  BasePrimaryButton,
26071
26129
  {
26072
- leftSection: /* @__PURE__ */ React246.createElement(IconThumbUp4, { size: 16 }),
26130
+ leftSection: /* @__PURE__ */ React247.createElement(IconThumbUp4, { size: 16 }),
26073
26131
  onClick: () => executeEvaluation("approve"),
26074
- disabled: isDisabled || submitting || authChecking || !isEvaluatorAuthorized || !adminAddress || isClaimAlreadyEvaluated
26132
+ disabled: isDisabled || submitting || authChecking || !isEvaluatorAuthorized || !adminAddress || isClaimAlreadyEvaluated || outcomeNotReady
26075
26133
  },
26076
26134
  "Approve"
26077
- ), /* @__PURE__ */ React246.createElement(
26135
+ ), /* @__PURE__ */ React247.createElement(
26078
26136
  BasePrimaryButton,
26079
26137
  {
26080
- leftSection: /* @__PURE__ */ React246.createElement(IconThumbDown2, { size: 16 }),
26138
+ leftSection: /* @__PURE__ */ React247.createElement(IconThumbDown2, { size: 16 }),
26081
26139
  onClick: () => executeEvaluation("reject"),
26082
- disabled: isDisabled || submitting || authChecking || !isEvaluatorAuthorized || !adminAddress || isClaimAlreadyEvaluated
26140
+ disabled: isDisabled || submitting || authChecking || !isEvaluatorAuthorized || !adminAddress || isClaimAlreadyEvaluated || outcomeNotReady
26083
26141
  },
26084
26142
  "Reject"
26085
- )), error && /* @__PURE__ */ React246.createElement(Alert43, { color: "red", styles: actionAlertStyles }, error));
26143
+ )), error && /* @__PURE__ */ React247.createElement(Alert43, { color: "red", styles: actionAlertStyles }, error));
26086
26144
  }
26087
26145
  const filterTabs = [
26088
26146
  { value: "all", label: "All" },
@@ -26090,7 +26148,7 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26090
26148
  { value: "approved", label: "Approved" },
26091
26149
  { value: "rejected", label: "Rejected" }
26092
26150
  ];
26093
- 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(
26094
26152
  UnstyledButton4,
26095
26153
  {
26096
26154
  key: tab.value,
@@ -26103,13 +26161,13 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26103
26161
  transition: "background 150ms ease"
26104
26162
  }
26105
26163
  },
26106
- /* @__PURE__ */ React246.createElement(Text140, { size: "sm", fw: 500, c: activeFilter === tab.value ? "white" : "dimmed" }, tab.label)
26107
- ))), /* @__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) => {
26108
26166
  const status = getClaimStatusInfo(claim);
26109
26167
  const profile = profilesByDid[claim.agentDid];
26110
26168
  const displayName = profile?.displayname || claim.agentDid || claim.agentAddress;
26111
26169
  const avatarLabel = (profile?.displayname || claim.agentDid || claim.agentAddress || "?")[0]?.toUpperCase();
26112
- 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(
26113
26171
  Box48,
26114
26172
  {
26115
26173
  style: {
@@ -26130,8 +26188,8 @@ var EvaluateClaimFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26130
26188
  }
26131
26189
  },
26132
26190
  profile?.avatarUrl ? null : avatarLabel
26133
- ), /* @__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 || ""))));
26134
- }))), 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));
26135
26193
  };
26136
26194
 
26137
26195
  // src/mantine/blocks/action/actionTypes/evaluateClaim/index.ts
@@ -26141,7 +26199,7 @@ registerActionTypeUI("evaluateClaim", {
26141
26199
  });
26142
26200
 
26143
26201
  // src/mantine/blocks/action/actionTypes/proposalCreate/ProposalCreateConfig.tsx
26144
- 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";
26145
26203
  import { Divider as Divider24, Loader as Loader43, SegmentedControl as SegmentedControl6, Stack as Stack168, Text as Text141 } from "@mantine/core";
26146
26204
 
26147
26205
  // src/mantine/blocks/action/actionTypes/proposalCreate/types.ts
@@ -26217,7 +26275,7 @@ var ProposalCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26217
26275
  },
26218
26276
  [update]
26219
26277
  );
26220
- 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(
26221
26279
  SegmentedControl6,
26222
26280
  {
26223
26281
  value: inputMode,
@@ -26228,7 +26286,7 @@ var ProposalCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26228
26286
  ],
26229
26287
  fullWidth: true
26230
26288
  }
26231
- ), inputMode === "select" ? /* @__PURE__ */ React247.createElement(
26289
+ ), inputMode === "select" ? /* @__PURE__ */ React248.createElement(
26232
26290
  BaseSelect,
26233
26291
  {
26234
26292
  placeholder: loadingGroups ? "Loading groups..." : "Select a DAO group",
@@ -26246,10 +26304,10 @@ var ProposalCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26246
26304
  label: group.name
26247
26305
  })),
26248
26306
  disabled: loadingGroups,
26249
- rightSection: loadingGroups ? /* @__PURE__ */ React247.createElement(Loader43, { size: "xs" }) : void 0,
26307
+ rightSection: loadingGroups ? /* @__PURE__ */ React248.createElement(Loader43, { size: "xs" }) : void 0,
26250
26308
  searchable: true
26251
26309
  }
26252
- ) : /* @__PURE__ */ React247.createElement(
26310
+ ) : /* @__PURE__ */ React248.createElement(
26253
26311
  BaseTextInput,
26254
26312
  {
26255
26313
  placeholder: "Enter DAO core address",
@@ -26260,7 +26318,7 @@ var ProposalCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26260
26318
  update({ coreAddress: newAddress });
26261
26319
  }
26262
26320
  }
26263
- )), /* @__PURE__ */ React247.createElement(Divider24, { variant: "dashed" }), /* @__PURE__ */ React247.createElement(
26321
+ )), /* @__PURE__ */ React248.createElement(Divider24, { variant: "dashed" }), /* @__PURE__ */ React248.createElement(
26264
26322
  DataInput,
26265
26323
  {
26266
26324
  label: "Proposal Title",
@@ -26271,7 +26329,7 @@ var ProposalCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26271
26329
  currentBlockId: blockId,
26272
26330
  required: true
26273
26331
  }
26274
- ), /* @__PURE__ */ React247.createElement(
26332
+ ), /* @__PURE__ */ React248.createElement(
26275
26333
  DataInput,
26276
26334
  {
26277
26335
  label: "Proposal Description",
@@ -26282,11 +26340,11 @@ var ProposalCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26282
26340
  currentBlockId: blockId,
26283
26341
  required: true
26284
26342
  }
26285
- ), /* @__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 }));
26286
26344
  };
26287
26345
 
26288
26346
  // src/mantine/blocks/action/actionTypes/proposalCreate/ProposalCreateFlowDetail.tsx
26289
- 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";
26290
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";
26291
26349
  import { IconPlus as IconPlus10, IconPlayerPlay as IconPlayerPlay5 } from "@tabler/icons-react";
26292
26350
  var CHAIN_STATUSES2 = ["open", "passed", "rejected", "executed", "closed", "execution_failed", "veto_timelock"];
@@ -26519,7 +26577,7 @@ var ProposalCreateFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26519
26577
  updateRuntime({ state: "completed" });
26520
26578
  }
26521
26579
  }, [currentStatus, runtime.state, updateRuntime]);
26522
- 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(
26523
26581
  Card23,
26524
26582
  {
26525
26583
  padding: "md",
@@ -26529,30 +26587,30 @@ var ProposalCreateFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26529
26587
  border: `1px solid ${statusColor2[currentStatus] || "#333"}`
26530
26588
  }
26531
26589
  },
26532
- /* @__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))
26533
- ), 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(
26534
26592
  Button44,
26535
26593
  {
26536
26594
  fullWidth: true,
26537
26595
  color: "green",
26538
- 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 }),
26539
26597
  onClick: handleExecuteProposal,
26540
26598
  disabled: isExecuting,
26541
26599
  loading: isExecuting
26542
26600
  },
26543
26601
  "Execute Proposal"
26544
- ), /* @__PURE__ */ React248.createElement(ActionsTab2, { actions: parsed.governanceActions, onActionsChange: () => {
26545
- }, isProposalCreated }), !isProposalCreated && /* @__PURE__ */ React248.createElement(
26602
+ ), /* @__PURE__ */ React249.createElement(ActionsTab2, { actions: parsed.governanceActions, onActionsChange: () => {
26603
+ }, isProposalCreated }), !isProposalCreated && /* @__PURE__ */ React249.createElement(
26546
26604
  Button44,
26547
26605
  {
26548
26606
  fullWidth: true,
26549
- 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 }),
26550
26608
  onClick: handleCreateProposal,
26551
26609
  disabled: isDisabled || isCreating || !proposalTitle || !proposalDescription,
26552
26610
  loading: isCreating
26553
26611
  },
26554
26612
  "Create Proposal"
26555
- )), 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));
26556
26614
  };
26557
26615
 
26558
26616
  // src/mantine/blocks/action/actionTypes/proposalCreate/index.ts
@@ -26562,7 +26620,7 @@ registerActionTypeUI("proposal.create", {
26562
26620
  });
26563
26621
 
26564
26622
  // src/mantine/blocks/action/actionTypes/proposalVote/ProposalVoteConfig.tsx
26565
- 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";
26566
26624
  import { Divider as Divider25, Loader as Loader45, SegmentedControl as SegmentedControl7, Stack as Stack170, Text as Text143 } from "@mantine/core";
26567
26625
 
26568
26626
  // src/mantine/blocks/action/actionTypes/proposalVote/types.ts
@@ -26630,7 +26688,7 @@ var ProposalVoteConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26630
26688
  };
26631
26689
  fetchGroups();
26632
26690
  }, [handlers]);
26633
- 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(
26634
26692
  SegmentedControl7,
26635
26693
  {
26636
26694
  value: inputMode,
@@ -26641,7 +26699,7 @@ var ProposalVoteConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26641
26699
  ],
26642
26700
  fullWidth: true
26643
26701
  }
26644
- ), inputMode === "select" ? /* @__PURE__ */ React249.createElement(
26702
+ ), inputMode === "select" ? /* @__PURE__ */ React250.createElement(
26645
26703
  BaseSelect,
26646
26704
  {
26647
26705
  placeholder: loadingGroups ? "Loading groups..." : "Select a DAO group",
@@ -26659,10 +26717,10 @@ var ProposalVoteConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26659
26717
  label: group.name
26660
26718
  })),
26661
26719
  disabled: loadingGroups,
26662
- rightSection: loadingGroups ? /* @__PURE__ */ React249.createElement(Loader45, { size: "xs" }) : void 0,
26720
+ rightSection: loadingGroups ? /* @__PURE__ */ React250.createElement(Loader45, { size: "xs" }) : void 0,
26663
26721
  searchable: true
26664
26722
  }
26665
- ) : /* @__PURE__ */ React249.createElement(
26723
+ ) : /* @__PURE__ */ React250.createElement(
26666
26724
  BaseTextInput,
26667
26725
  {
26668
26726
  placeholder: "Enter DAO core address",
@@ -26673,7 +26731,7 @@ var ProposalVoteConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26673
26731
  update({ coreAddress: newAddress });
26674
26732
  }
26675
26733
  }
26676
- )), /* @__PURE__ */ React249.createElement(Divider25, { variant: "dashed" }), /* @__PURE__ */ React249.createElement(
26734
+ )), /* @__PURE__ */ React250.createElement(Divider25, { variant: "dashed" }), /* @__PURE__ */ React250.createElement(
26677
26735
  DataInput,
26678
26736
  {
26679
26737
  label: "Proposal ID",
@@ -26685,7 +26743,7 @@ var ProposalVoteConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26685
26743
  currentBlockId: blockId,
26686
26744
  required: true
26687
26745
  }
26688
- ), /* @__PURE__ */ React249.createElement(
26746
+ ), /* @__PURE__ */ React250.createElement(
26689
26747
  DataInput,
26690
26748
  {
26691
26749
  label: "Proposal Contract Address",
@@ -26700,7 +26758,7 @@ var ProposalVoteConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26700
26758
  };
26701
26759
 
26702
26760
  // src/mantine/blocks/action/actionTypes/proposalVote/ProposalVoteFlowDetail.tsx
26703
- 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";
26704
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";
26705
26763
  var getVoteIcon2 = (voteType) => {
26706
26764
  switch (voteType) {
@@ -26895,7 +26953,7 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
26895
26953
  updateRuntime,
26896
26954
  verifySignature
26897
26955
  ]);
26898
- 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(
26899
26957
  Card24,
26900
26958
  {
26901
26959
  padding: "md",
@@ -26906,7 +26964,7 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
26906
26964
  color: "#f1f3f5"
26907
26965
  }
26908
26966
  },
26909
- /* @__PURE__ */ React250.createElement(Group95, { gap: "xs", align: "center" }, /* @__PURE__ */ React250.createElement(
26967
+ /* @__PURE__ */ React251.createElement(Group95, { gap: "xs", align: "center" }, /* @__PURE__ */ React251.createElement(
26910
26968
  Box49,
26911
26969
  {
26912
26970
  style: {
@@ -26916,9 +26974,9 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
26916
26974
  borderRadius: "50%"
26917
26975
  }
26918
26976
  }
26919
- ), /* @__PURE__ */ React250.createElement(Text144, { size: "sm", fw: 500, style: { color: "#ffd43b" } }, "Waiting for Proposal Submission")),
26920
- /* @__PURE__ */ React250.createElement(Text144, { size: "xs", style: { color: "#adb5bd", marginTop: 4 } }, "The connected proposal needs to be submitted before voting can begin.")
26921
- ), /* @__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(
26922
26980
  Card24,
26923
26981
  {
26924
26982
  padding: "lg",
@@ -26930,7 +26988,7 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
26930
26988
  opacity: !hasSubmittedProposal ? 0.6 : 1
26931
26989
  }
26932
26990
  },
26933
- /* @__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(
26934
26992
  Box49,
26935
26993
  {
26936
26994
  w: 8,
@@ -26940,9 +26998,9 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
26940
26998
  borderRadius: "50%"
26941
26999
  }
26942
27000
  }
26943
- ), /* @__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"))),
26944
- /* @__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" }))
26945
- ), 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(
26946
27004
  Button45,
26947
27005
  {
26948
27006
  variant: "outline",
@@ -26961,8 +27019,8 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
26961
27019
  opacity: isDisabled ? 0.5 : 1
26962
27020
  }
26963
27021
  },
26964
- /* @__PURE__ */ React250.createElement(Text144, { fw: 500, tt: "capitalize", style: { textAlign: "left" } }, voteType === "no_with_veto" ? "No with Veto" : voteType)
26965
- )))), /* @__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(
26966
27024
  BaseTextArea,
26967
27025
  {
26968
27026
  label: "Rationale (optional)",
@@ -26972,7 +27030,7 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
26972
27030
  disabled: isDisabled,
26973
27031
  rows: 3
26974
27032
  }
26975
- )), !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(
26976
27034
  Button45,
26977
27035
  {
26978
27036
  variant: "outline",
@@ -26989,8 +27047,8 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
26989
27047
  opacity: 0.5
26990
27048
  }
26991
27049
  },
26992
- /* @__PURE__ */ React250.createElement(Text144, { fw: 500, tt: "capitalize", style: { textAlign: "left" } }, voteType === "no_with_veto" ? "No with Veto" : voteType)
26993
- )))), 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(
26994
27052
  Button45,
26995
27053
  {
26996
27054
  size: "sm",
@@ -27007,7 +27065,7 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
27007
27065
  }
27008
27066
  },
27009
27067
  "Sign"
27010
- ), hasVoted && hasSubmittedProposal && /* @__PURE__ */ React250.createElement(
27068
+ ), hasVoted && hasSubmittedProposal && /* @__PURE__ */ React251.createElement(
27011
27069
  Card24,
27012
27070
  {
27013
27071
  padding: "md",
@@ -27018,7 +27076,7 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
27018
27076
  color: "#f1f3f5"
27019
27077
  }
27020
27078
  },
27021
- /* @__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(
27022
27080
  Box49,
27023
27081
  {
27024
27082
  style: {
@@ -27028,8 +27086,8 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
27028
27086
  borderRadius: "50%"
27029
27087
  }
27030
27088
  }
27031
- ), /* @__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)))
27032
- ), 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));
27033
27091
  };
27034
27092
 
27035
27093
  // src/mantine/blocks/action/actionTypes/proposalVote/index.ts
@@ -27039,7 +27097,7 @@ registerActionTypeUI("proposal.vote", {
27039
27097
  });
27040
27098
 
27041
27099
  // src/mantine/blocks/action/actionTypes/protocolSelect/ProtocolSelectConfig.tsx
27042
- import React251, { useMemo as useMemo99, useState as useState104 } from "react";
27100
+ import React252, { useMemo as useMemo99, useState as useState104 } from "react";
27043
27101
  import { Box as Box50, Pill as Pill3, PillsInput as PillsInput3, Stack as Stack172, Text as Text145 } from "@mantine/core";
27044
27102
  function parseInputs(json) {
27045
27103
  try {
@@ -27067,7 +27125,7 @@ var ProtocolSelectConfig = ({ inputs, onInputsChange }) => {
27067
27125
  const handleRemove = (did) => {
27068
27126
  update(local.protocolDids.filter((d) => d !== did));
27069
27127
  };
27070
- 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(
27071
27129
  PillsInput3.Field,
27072
27130
  {
27073
27131
  placeholder: local.protocolDids.length === 0 ? "Enter protocol DID and press Enter" : "",
@@ -27080,11 +27138,11 @@ var ProtocolSelectConfig = ({ inputs, onInputsChange }) => {
27080
27138
  }
27081
27139
  }
27082
27140
  }
27083
- ))), 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")));
27084
27142
  };
27085
27143
 
27086
27144
  // src/mantine/blocks/action/actionTypes/protocolSelect/ProtocolSelectFlowDetail.tsx
27087
- 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";
27088
27146
  import { Box as Box51, Group as Group96, Loader as Loader46, Stack as Stack173, Text as Text146 } from "@mantine/core";
27089
27147
  function parseInputs2(json) {
27090
27148
  try {
@@ -27166,11 +27224,11 @@ var ProtocolSelectFlowDetail = ({ inputs, block, runtime, updateRuntime, isDisab
27166
27224
  [isDisabled, updateRuntime]
27167
27225
  );
27168
27226
  if (protocolDids.length === 0) {
27169
- 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."));
27170
27228
  }
27171
- 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) => {
27172
27230
  const isSelected = protocol.did === selectedDid;
27173
- return /* @__PURE__ */ React252.createElement(
27231
+ return /* @__PURE__ */ React253.createElement(
27174
27232
  Box51,
27175
27233
  {
27176
27234
  key: protocol.did,
@@ -27184,7 +27242,7 @@ var ProtocolSelectFlowDetail = ({ inputs, block, runtime, updateRuntime, isDisab
27184
27242
  transition: "all 0.15s ease"
27185
27243
  }
27186
27244
  },
27187
- /* @__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)))
27188
27246
  );
27189
27247
  }));
27190
27248
  };
@@ -27196,7 +27254,7 @@ registerActionTypeUI("protocol.select", {
27196
27254
  });
27197
27255
 
27198
27256
  // src/mantine/blocks/action/actionTypes/domainSign/DomainSignConfig.tsx
27199
- 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";
27200
27258
  import { Divider as Divider26, Stack as Stack174, Text as Text147, Textarea as Textarea2 } from "@mantine/core";
27201
27259
 
27202
27260
  // src/mantine/blocks/action/actionTypes/domainSign/types.ts
@@ -27240,7 +27298,7 @@ var DomainSignConfig = ({ inputs, onInputsChange }) => {
27240
27298
  },
27241
27299
  [local, onInputsChange]
27242
27300
  );
27243
- 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(
27244
27302
  BaseSelect,
27245
27303
  {
27246
27304
  placeholder: "Select domain type (optional)",
@@ -27249,7 +27307,7 @@ var DomainSignConfig = ({ inputs, onInputsChange }) => {
27249
27307
  data: ENTITY_TYPE_OPTIONS,
27250
27308
  clearable: true
27251
27309
  }
27252
- )), /* @__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(
27253
27311
  Textarea2,
27254
27312
  {
27255
27313
  placeholder: '[{"type":"governanceGroup","coreAddress":"cosmos1..."}]',
@@ -27268,7 +27326,7 @@ var DomainSignConfig = ({ inputs, onInputsChange }) => {
27268
27326
  };
27269
27327
 
27270
27328
  // src/mantine/blocks/action/actionTypes/domainSign/DomainSignFlowDetail.tsx
27271
- 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";
27272
27330
  import { Alert as Alert46, Button as Button46, Group as Group97, Loader as Loader47, Stack as Stack175, Text as Text148 } from "@mantine/core";
27273
27331
  import { IconCheck as IconCheck20, IconAlertCircle as IconAlertCircle17, IconExternalLink as IconExternalLink2 } from "@tabler/icons-react";
27274
27332
  var STEP_LABELS = {
@@ -27448,11 +27506,11 @@ var DomainSignFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isD
27448
27506
  handlers.redirectToEntityOverview(entityDid, resolvedEntityType);
27449
27507
  }
27450
27508
  }, [entityDid, resolvedEntityType, handlers]);
27451
- 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) => {
27452
27510
  const isActive = activeStep === step;
27453
27511
  const isDone = ["signing", "uploading", "creating"].indexOf(step) < ["signing", "uploading", "creating"].indexOf(activeStep);
27454
- 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]));
27455
- })), 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));
27456
27514
  };
27457
27515
 
27458
27516
  // src/mantine/blocks/action/actionTypes/domainSign/index.ts
@@ -27462,7 +27520,7 @@ registerActionTypeUI("domain.sign", {
27462
27520
  });
27463
27521
 
27464
27522
  // src/mantine/blocks/action/actionTypes/domainCreate/DomainCreateConfig.tsx
27465
- 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";
27466
27524
  import { Stack as Stack176, Text as Text149 } from "@mantine/core";
27467
27525
 
27468
27526
  // src/mantine/blocks/action/actionTypes/domainCreate/types.ts
@@ -27510,7 +27568,7 @@ var DomainCreateConfig = ({ inputs, onInputsChange }) => {
27510
27568
  update({ surveySchema: tempDomainCreatorSurvey });
27511
27569
  }
27512
27570
  }, []);
27513
- 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(
27514
27572
  BaseSelect,
27515
27573
  {
27516
27574
  placeholder: "Select entity type",
@@ -27520,14 +27578,14 @@ var DomainCreateConfig = ({ inputs, onInputsChange }) => {
27520
27578
  },
27521
27579
  data: ENTITY_TYPE_OPTIONS2
27522
27580
  }
27523
- )), /* @__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.")));
27524
27582
  };
27525
27583
 
27526
27584
  // src/mantine/blocks/action/actionTypes/domainCreate/DomainCreateFlowDetail.tsx
27527
- 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";
27528
27586
  import { Alert as Alert47, Button as Button47, Group as Group98, Loader as Loader48, Stack as Stack177, Text as Text150 } from "@mantine/core";
27529
27587
  import { IconCheck as IconCheck21, IconAlertCircle as IconAlertCircle18, IconPlayerPlay as IconPlayerPlay6 } from "@tabler/icons-react";
27530
- import { Survey as Survey12, SurveyModel as SurveyModel12 } from "@ixo/surveys";
27588
+ import { SurveyModel as SurveyModel12 } from "@ixo/surveys";
27531
27589
  var DomainCreateFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isDisabled }) => {
27532
27590
  const handlers = useBlocknoteHandlers();
27533
27591
  const services = useMemo102(() => buildServicesFromHandlers(handlers), [handlers]);
@@ -27663,7 +27721,7 @@ var DomainCreateFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
27663
27721
  }
27664
27722
  }, [runtime.output, entityType, handlers]);
27665
27723
  const entityDid = runtime.output?.entityDid || "";
27666
- 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));
27667
27725
  };
27668
27726
 
27669
27727
  // src/mantine/blocks/action/actionTypes/domainCreate/index.ts
@@ -27673,7 +27731,7 @@ registerActionTypeUI("domain.create", {
27673
27731
  });
27674
27732
 
27675
27733
  // src/mantine/blocks/action/actionTypes/oracle/OracleConfig.tsx
27676
- 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";
27677
27735
  import { Stack as Stack178 } from "@mantine/core";
27678
27736
 
27679
27737
  // src/mantine/blocks/action/actionTypes/oracle/types.ts
@@ -27707,7 +27765,7 @@ var OracleConfig = ({ inputs, onInputsChange, editor, blockId }) => {
27707
27765
  },
27708
27766
  [local, onInputsChange]
27709
27767
  );
27710
- return /* @__PURE__ */ React257.createElement(Stack178, { gap: "lg" }, /* @__PURE__ */ React257.createElement(
27768
+ return /* @__PURE__ */ React258.createElement(Stack178, { gap: "lg" }, /* @__PURE__ */ React258.createElement(
27711
27769
  DataInput,
27712
27770
  {
27713
27771
  label: "Prompt",
@@ -27723,7 +27781,7 @@ var OracleConfig = ({ inputs, onInputsChange, editor, blockId }) => {
27723
27781
  };
27724
27782
 
27725
27783
  // src/mantine/blocks/action/actionTypes/oracle/OracleFlowDetail.tsx
27726
- 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";
27727
27785
  import { Alert as Alert48, Button as Button48, Stack as Stack179 } from "@mantine/core";
27728
27786
  import { IconCheck as IconCheck22, IconAlertCircle as IconAlertCircle19, IconSparkles as IconSparkles6 } from "@tabler/icons-react";
27729
27787
  var OracleFlowDetail = ({ inputs, editor, runtime, updateRuntime, isDisabled }) => {
@@ -27766,7 +27824,7 @@ var OracleFlowDetail = ({ inputs, editor, runtime, updateRuntime, isDisabled })
27766
27824
  setIsLoading(false);
27767
27825
  }
27768
27826
  }, [handlers, isCompleted, isDisabled, isLoading, resolvedPrompt, updateRuntime]);
27769
- 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));
27770
27828
  };
27771
27829
 
27772
27830
  // src/mantine/blocks/action/actionTypes/oracle/index.ts
@@ -27776,7 +27834,7 @@ registerActionTypeUI("oracle", {
27776
27834
  });
27777
27835
 
27778
27836
  // src/mantine/blocks/action/actionTypes/oraclePrompt/OraclePromptConfig.tsx
27779
- 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";
27780
27838
  import { Stack as Stack180 } from "@mantine/core";
27781
27839
 
27782
27840
  // src/mantine/blocks/action/actionTypes/oraclePrompt/types.ts
@@ -27807,7 +27865,7 @@ var OraclePromptConfig = ({ inputs, onInputsChange }) => {
27807
27865
  },
27808
27866
  [onInputsChange]
27809
27867
  );
27810
- return /* @__PURE__ */ React259.createElement(Stack180, { gap: "xs" }, /* @__PURE__ */ React259.createElement(
27868
+ return /* @__PURE__ */ React260.createElement(Stack180, { gap: "xs" }, /* @__PURE__ */ React260.createElement(
27811
27869
  BaseTextArea,
27812
27870
  {
27813
27871
  label: "Prompt",
@@ -27821,7 +27879,7 @@ var OraclePromptConfig = ({ inputs, onInputsChange }) => {
27821
27879
  };
27822
27880
 
27823
27881
  // src/mantine/blocks/action/actionTypes/oraclePrompt/OraclePromptFlowDetail.tsx
27824
- 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";
27825
27883
  import { Alert as Alert49, Loader as Loader49, Stack as Stack181, Text as Text151 } from "@mantine/core";
27826
27884
  import { IconSend as IconSend6 } from "@tabler/icons-react";
27827
27885
  function parsePrimarySkill(rawSkill) {
@@ -27897,7 +27955,7 @@ var OraclePromptFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, i
27897
27955
  }
27898
27956
  }, [block?.props?.skill, handlers, isDisabled, resolvedPrompt, submitting, updateRuntime]);
27899
27957
  const isCompleted = runtime.state === "completed";
27900
- 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));
27901
27959
  };
27902
27960
 
27903
27961
  // src/mantine/blocks/action/actionTypes/oraclePrompt/index.ts
@@ -27907,7 +27965,7 @@ registerActionTypeUI("oracle.prompt", {
27907
27965
  });
27908
27966
 
27909
27967
  // src/mantine/blocks/action/actionTypes/formSubmit/FormSubmitConfig.tsx
27910
- 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";
27911
27969
  import { Stack as Stack182, Text as Text152 } from "@mantine/core";
27912
27970
 
27913
27971
  // src/mantine/blocks/action/actionTypes/formSubmit/types.ts
@@ -27964,7 +28022,7 @@ var FormSubmitConfig = ({ inputs, onInputsChange }) => {
27964
28022
  },
27965
28023
  [onInputsChange]
27966
28024
  );
27967
- return /* @__PURE__ */ React261.createElement(Stack182, { gap: "xs" }, /* @__PURE__ */ React261.createElement(
28025
+ return /* @__PURE__ */ React262.createElement(Stack182, { gap: "xs" }, /* @__PURE__ */ React262.createElement(
27968
28026
  BaseTextArea,
27969
28027
  {
27970
28028
  label: "Survey Schema (JSON)",
@@ -27975,13 +28033,13 @@ var FormSubmitConfig = ({ inputs, onInputsChange }) => {
27975
28033
  onChange: (event) => handleChange(event.currentTarget.value),
27976
28034
  error
27977
28035
  }
27978
- ), 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"));
27979
28037
  };
27980
28038
 
27981
28039
  // src/mantine/blocks/action/actionTypes/formSubmit/FormSubmitFlowDetail.tsx
27982
- 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";
27983
28041
  import { Alert as Alert50, Loader as Loader50, Stack as Stack183, Text as Text153 } from "@mantine/core";
27984
- import { Survey as Survey13, SurveyModel as SurveyModel13 } from "@ixo/surveys";
28042
+ import { SurveyModel as SurveyModel13 } from "@ixo/surveys";
27985
28043
  function parsePrimarySkill2(rawSkill) {
27986
28044
  const coerce = (candidate) => {
27987
28045
  if (!candidate || typeof candidate !== "object") return null;
@@ -28194,7 +28252,7 @@ var FormSubmitFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isD
28194
28252
  };
28195
28253
  }, [surveyModel, handleSurveyComplete]);
28196
28254
  const statusMessage = runtime.state === "completed" ? "Last execution completed." : submitting ? "Executing..." : null;
28197
- 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));
28198
28256
  };
28199
28257
 
28200
28258
  // src/mantine/blocks/action/actionTypes/formSubmit/index.ts
@@ -28208,7 +28266,7 @@ registerActionTypeUI("human.form.submit", {
28208
28266
  });
28209
28267
 
28210
28268
  // src/mantine/blocks/action/actionTypes/credentialStore/CredentialStoreConfig.tsx
28211
- 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";
28212
28270
  import { Stack as Stack184, Text as Text154 } from "@mantine/core";
28213
28271
 
28214
28272
  // src/mantine/blocks/action/actionTypes/credentialStore/types.ts
@@ -28252,7 +28310,7 @@ var CredentialStoreConfig = ({ inputs, onInputsChange, editor, blockId }) => {
28252
28310
  },
28253
28311
  [local, onInputsChange]
28254
28312
  );
28255
- 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(
28256
28314
  BaseTextInput,
28257
28315
  {
28258
28316
  placeholder: "e.g. kycamllevel1",
@@ -28260,7 +28318,7 @@ var CredentialStoreConfig = ({ inputs, onInputsChange, editor, blockId }) => {
28260
28318
  value: local.credentialKey,
28261
28319
  onChange: (e) => update({ credentialKey: e.currentTarget.value })
28262
28320
  }
28263
- )), /* @__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(
28264
28322
  DataInput,
28265
28323
  {
28266
28324
  placeholder: "Credential JSON or {{blockId.output.credential}}",
@@ -28270,7 +28328,7 @@ var CredentialStoreConfig = ({ inputs, onInputsChange, editor, blockId }) => {
28270
28328
  editorDocument: editor?.document || [],
28271
28329
  currentBlockId: blockId
28272
28330
  }
28273
- )), /* @__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(
28274
28332
  DataInput,
28275
28333
  {
28276
28334
  placeholder: "Defaults to the actor's room",
@@ -28284,7 +28342,7 @@ var CredentialStoreConfig = ({ inputs, onInputsChange, editor, blockId }) => {
28284
28342
  };
28285
28343
 
28286
28344
  // src/mantine/blocks/action/actionTypes/credentialStore/CredentialStoreFlowDetail.tsx
28287
- 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";
28288
28346
  import { Alert as Alert51, Button as Button49, Loader as Loader51, Stack as Stack185, Text as Text155 } from "@mantine/core";
28289
28347
  import { IconShieldCheck as IconShieldCheck14 } from "@tabler/icons-react";
28290
28348
  var CredentialStoreFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isDisabled }) => {
@@ -28415,7 +28473,7 @@ var CredentialStoreFlowDetail = ({ inputs, editor, block, runtime, updateRuntime
28415
28473
  updateRuntime,
28416
28474
  verifySignature
28417
28475
  ]);
28418
- 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));
28419
28477
  };
28420
28478
 
28421
28479
  // src/mantine/blocks/action/actionTypes/credentialStore/index.ts
@@ -28429,7 +28487,7 @@ function ActionBlock({ editor, block }) {
28429
28487
  const { docType } = useBlocknoteContext();
28430
28488
  const { actions } = useBlockConditions(block, editor);
28431
28489
  if (docType === "template") {
28432
- return /* @__PURE__ */ React265.createElement(ActionTemplateView, { editor, block });
28490
+ return /* @__PURE__ */ React266.createElement(ActionTemplateView, { editor, block });
28433
28491
  }
28434
28492
  const conditionConfig = parseConditionConfig(block.props.conditions);
28435
28493
  const hasVisibility = hasVisibilityConditions(conditionConfig);
@@ -28440,7 +28498,7 @@ function ActionBlock({ editor, block }) {
28440
28498
  const hasEnable = hasEnableConditions(conditionConfig);
28441
28499
  const enableActionExists = actions.some((a) => a.action === "enable");
28442
28500
  const shouldDisable = hasEnable && !enableActionExists;
28443
- return /* @__PURE__ */ React265.createElement(
28501
+ return /* @__PURE__ */ React266.createElement(
28444
28502
  ActionFlowView,
28445
28503
  {
28446
28504
  block,
@@ -28510,29 +28568,29 @@ var ActionBlockSpec = createReactBlockSpec20(
28510
28568
  {
28511
28569
  render: (props) => {
28512
28570
  const ixoProps = props;
28513
- return /* @__PURE__ */ React266.createElement(ActionBlock, { ...ixoProps });
28571
+ return /* @__PURE__ */ React267.createElement(ActionBlock, { ...ixoProps });
28514
28572
  }
28515
28573
  }
28516
28574
  );
28517
28575
 
28518
28576
  // src/mantine/blocks/location/LocationBlockSpec.tsx
28519
- import React275 from "react";
28577
+ import React276 from "react";
28520
28578
  import { createReactBlockSpec as createReactBlockSpec21 } from "@blocknote/react";
28521
28579
 
28522
28580
  // src/mantine/blocks/location/LocationBlock.tsx
28523
- import React274 from "react";
28581
+ import React275 from "react";
28524
28582
 
28525
28583
  // src/mantine/blocks/location/template/TemplateView.tsx
28526
- import React271, { useMemo as useMemo107 } from "react";
28584
+ import React272, { useMemo as useMemo107 } from "react";
28527
28585
  import { Group as Group100, Stack as Stack187, Text as Text158 } from "@mantine/core";
28528
28586
  import { IconMapPin } from "@tabler/icons-react";
28529
28587
 
28530
28588
  // src/mantine/blocks/location/template/TemplateConfig.tsx
28531
- import React269, { useCallback as useCallback98 } from "react";
28589
+ import React270, { useCallback as useCallback98 } from "react";
28532
28590
  import { IconSettings as IconSettings19 } from "@tabler/icons-react";
28533
28591
 
28534
28592
  // src/mantine/blocks/location/template/GeneralTab.tsx
28535
- 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";
28536
28594
  import { Box as Box52, Divider as Divider27, Stack as Stack186, Text as Text156 } from "@mantine/core";
28537
28595
 
28538
28596
  // src/core/hooks/useUnlMap.ts
@@ -28594,7 +28652,7 @@ function useUnlMap() {
28594
28652
  }
28595
28653
 
28596
28654
  // src/mantine/blocks/location/components/TileSelector.tsx
28597
- import React267, { useState as useState119, useCallback as useCallback97 } from "react";
28655
+ import React268, { useState as useState119, useCallback as useCallback97 } from "react";
28598
28656
  import { ActionIcon as ActionIcon36, Group as Group99, Tooltip as Tooltip22 } from "@mantine/core";
28599
28657
  import { IconMap, IconMoon, IconSatellite, IconMountain } from "@tabler/icons-react";
28600
28658
  var TILE_LAYERS = {
@@ -28666,10 +28724,10 @@ var TileSelector = ({ mapRef }) => {
28666
28724
  [mapRef, active]
28667
28725
  );
28668
28726
  const items = [
28669
- { type: "map", label: "Map", icon: /* @__PURE__ */ React267.createElement(IconMap, { size: 14 }) },
28727
+ { type: "map", label: "Map", icon: /* @__PURE__ */ React268.createElement(IconMap, { size: 14 }) },
28670
28728
  ...OVERLAY_KEYS.map((key) => ({ type: key, label: TILE_LAYERS[key].label, icon: TILE_LAYERS[key].icon }))
28671
28729
  ];
28672
- return /* @__PURE__ */ React267.createElement(
28730
+ return /* @__PURE__ */ React268.createElement(
28673
28731
  Group99,
28674
28732
  {
28675
28733
  gap: 2,
@@ -28683,7 +28741,7 @@ var TileSelector = ({ mapRef }) => {
28683
28741
  padding: 2
28684
28742
  }
28685
28743
  },
28686
- 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(
28687
28745
  ActionIcon36,
28688
28746
  {
28689
28747
  variant: active === type ? "filled" : "subtle",
@@ -28769,7 +28827,7 @@ var GeneralTab17 = ({ title, description, latitude, longitude, onTitleChange, on
28769
28827
  markerRef.current = null;
28770
28828
  };
28771
28829
  }, [status, UnlSdk]);
28772
- 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(
28773
28831
  BaseTextInput,
28774
28832
  {
28775
28833
  placeholder: "e.g. Project Location",
@@ -28780,7 +28838,7 @@ var GeneralTab17 = ({ title, description, latitude, longitude, onTitleChange, on
28780
28838
  onTitleChange(v);
28781
28839
  }
28782
28840
  }
28783
- )), /* @__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(
28784
28842
  BaseTextInput,
28785
28843
  {
28786
28844
  placeholder: "e.g. Main project site coordinates",
@@ -28791,7 +28849,7 @@ var GeneralTab17 = ({ title, description, latitude, longitude, onTitleChange, on
28791
28849
  onDescriptionChange(v);
28792
28850
  }
28793
28851
  }
28794
- )), /* @__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(
28795
28853
  Box52,
28796
28854
  {
28797
28855
  ref: containerRef,
@@ -28804,7 +28862,7 @@ var GeneralTab17 = ({ title, description, latitude, longitude, onTitleChange, on
28804
28862
  height: "600px"
28805
28863
  }
28806
28864
  }
28807
- ), /* @__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" })));
28808
28866
  };
28809
28867
 
28810
28868
  // src/mantine/blocks/location/template/TemplateConfig.tsx
@@ -28827,7 +28885,7 @@ var TemplateConfig17 = ({ editor, block }) => {
28827
28885
  label: "General",
28828
28886
  value: "general",
28829
28887
  icon: icon(IconSettings19),
28830
- content: /* @__PURE__ */ React269.createElement(
28888
+ content: /* @__PURE__ */ React270.createElement(
28831
28889
  GeneralTab17,
28832
28890
  {
28833
28891
  title: block.props.title || "",
@@ -28841,11 +28899,11 @@ var TemplateConfig17 = ({ editor, block }) => {
28841
28899
  )
28842
28900
  }
28843
28901
  ];
28844
- 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 } });
28845
28903
  };
28846
28904
 
28847
28905
  // src/mantine/blocks/location/components/LocationMap.tsx
28848
- 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";
28849
28907
  import { Box as Box53, Flex as Flex32, Loader as Loader52, Text as Text157 } from "@mantine/core";
28850
28908
  var UnlMap = ({ w = "100%", h = 200, latitude, longitude, zoom = 5, showMarker = true, showTilesControl = false }) => {
28851
28909
  const [mapError, setMapError] = useState121(null);
@@ -28895,7 +28953,7 @@ var UnlMap = ({ w = "100%", h = 200, latitude, longitude, zoom = 5, showMarker =
28895
28953
  }
28896
28954
  }, [latitude, longitude, showMarker]);
28897
28955
  if (status === "loading") {
28898
- return /* @__PURE__ */ React270.createElement(
28956
+ return /* @__PURE__ */ React271.createElement(
28899
28957
  Box53,
28900
28958
  {
28901
28959
  style: {
@@ -28907,11 +28965,11 @@ var UnlMap = ({ w = "100%", h = 200, latitude, longitude, zoom = 5, showMarker =
28907
28965
  w,
28908
28966
  h
28909
28967
  },
28910
- /* @__PURE__ */ React270.createElement(Loader52, null)
28968
+ /* @__PURE__ */ React271.createElement(Loader52, null)
28911
28969
  );
28912
28970
  }
28913
28971
  if (status === "error" || mapError) {
28914
- return /* @__PURE__ */ React270.createElement(
28972
+ return /* @__PURE__ */ React271.createElement(
28915
28973
  Box53,
28916
28974
  {
28917
28975
  style: {
@@ -28923,10 +28981,10 @@ var UnlMap = ({ w = "100%", h = 200, latitude, longitude, zoom = 5, showMarker =
28923
28981
  w,
28924
28982
  h
28925
28983
  },
28926
- /* @__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")
28927
28985
  );
28928
28986
  }
28929
- 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(
28930
28988
  Box53,
28931
28989
  {
28932
28990
  ref: containerRef,
@@ -28939,55 +28997,55 @@ var UnlMap = ({ w = "100%", h = 200, latitude, longitude, zoom = 5, showMarker =
28939
28997
  height: "600px"
28940
28998
  }
28941
28999
  }
28942
- ), showTilesControl && /* @__PURE__ */ React270.createElement(TileSelector, { mapRef }));
29000
+ ), showTilesControl && /* @__PURE__ */ React271.createElement(TileSelector, { mapRef }));
28943
29001
  };
28944
29002
  function LocationMap(props) {
28945
29003
  if (props.latitude === void 0 || props.longitude === void 0)
28946
- return /* @__PURE__ */ React270.createElement(Flex32, { w: "100%", h: 200, align: "center", justify: "center" }, /* @__PURE__ */ React270.createElement(Loader52, null));
28947
- 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 });
28948
29006
  }
28949
29007
 
28950
29008
  // src/mantine/blocks/location/template/TemplateView.tsx
28951
29009
  var LOCATION_TEMPLATE_PANEL_ID = "location-template-panel";
28952
29010
  var LocationTemplateView = ({ editor, block }) => {
28953
29011
  const panelId = `${LOCATION_TEMPLATE_PANEL_ID}-${block.id}`;
28954
- const panelContent = useMemo107(() => /* @__PURE__ */ React271.createElement(TemplateConfig17, { editor, block }), [editor, block]);
29012
+ const panelContent = useMemo107(() => /* @__PURE__ */ React272.createElement(TemplateConfig17, { editor, block }), [editor, block]);
28955
29013
  const { open } = usePanel(panelId, panelContent);
28956
29014
  console.log("block.props:", block.props);
28957
29015
  const hasLocation = block.props.latitude && block.props.longitude;
28958
- 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 })));
28959
29017
  };
28960
29018
 
28961
29019
  // src/mantine/blocks/location/flow/FlowView.tsx
28962
- import React273, { useMemo as useMemo108 } from "react";
29020
+ import React274, { useMemo as useMemo108 } from "react";
28963
29021
  import { Center as Center12, Group as Group101, Stack as Stack188, Text as Text159 } from "@mantine/core";
28964
29022
  import { IconMapPin as IconMapPin2 } from "@tabler/icons-react";
28965
29023
 
28966
29024
  // src/mantine/blocks/location/flow/FlowConfig.tsx
28967
- import React272 from "react";
29025
+ import React273 from "react";
28968
29026
  var FlowConfig3 = ({ block }) => {
28969
29027
  const { closePanel } = usePanelStore();
28970
29028
  const hasLocation = block.props.latitude && block.props.longitude;
28971
- 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);
28972
29030
  };
28973
29031
 
28974
29032
  // src/mantine/blocks/location/flow/FlowView.tsx
28975
29033
  var LOCATION_FLOW_PANEL_ID = "location-flow-panel";
28976
29034
  var LocationFlowView = ({ editor, block }) => {
28977
29035
  const panelId = `${LOCATION_FLOW_PANEL_ID}-${block.id}`;
28978
- const panelContent = useMemo108(() => /* @__PURE__ */ React273.createElement(FlowConfig3, { editor, block }), [editor, block]);
29036
+ const panelContent = useMemo108(() => /* @__PURE__ */ React274.createElement(FlowConfig3, { editor, block }), [editor, block]);
28979
29037
  const { open } = usePanel(panelId, panelContent);
28980
29038
  const hasLocation = block.props.latitude && block.props.longitude;
28981
- 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"))));
28982
29040
  };
28983
29041
 
28984
29042
  // src/mantine/blocks/location/LocationBlock.tsx
28985
29043
  function LocationBlock({ editor, block }) {
28986
29044
  const { docType } = useBlocknoteContext();
28987
29045
  if (docType === "template" || docType === "page") {
28988
- return /* @__PURE__ */ React274.createElement(LocationTemplateView, { editor, block });
29046
+ return /* @__PURE__ */ React275.createElement(LocationTemplateView, { editor, block });
28989
29047
  }
28990
- return /* @__PURE__ */ React274.createElement(LocationFlowView, { editor, block });
29048
+ return /* @__PURE__ */ React275.createElement(LocationFlowView, { editor, block });
28991
29049
  }
28992
29050
 
28993
29051
  // src/mantine/blocks/location/LocationBlockSpec.tsx
@@ -29006,7 +29064,7 @@ var LocationBlockSpec = createReactBlockSpec21(
29006
29064
  {
29007
29065
  render: (props) => {
29008
29066
  const ixoProps = props;
29009
- return /* @__PURE__ */ React275.createElement(LocationBlock, { ...ixoProps });
29067
+ return /* @__PURE__ */ React276.createElement(LocationBlock, { ...ixoProps });
29010
29068
  }
29011
29069
  }
29012
29070
  );
@@ -30337,14 +30395,14 @@ function useCreateCollaborativeIxoEditor(options) {
30337
30395
  }
30338
30396
 
30339
30397
  // src/mantine/IxoEditor.tsx
30340
- 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";
30341
30399
  import { SuggestionMenuController } from "@blocknote/react";
30342
30400
  import { BlockNoteView } from "@blocknote/mantine";
30343
30401
  import { filterSuggestionItems } from "@blocknote/core";
30344
30402
  import { MantineProvider } from "@mantine/core";
30345
30403
 
30346
30404
  // src/mantine/components/PanelContent.tsx
30347
- import React276 from "react";
30405
+ import React277 from "react";
30348
30406
  import { Box as Box54 } from "@mantine/core";
30349
30407
  var panelStyles = {
30350
30408
  light: {
@@ -30374,7 +30432,7 @@ function PanelContent({ theme }) {
30374
30432
  const { activePanel, registeredPanels } = usePanelStore();
30375
30433
  const isOpen = activePanel !== null;
30376
30434
  const content = activePanel ? registeredPanels.get(activePanel) : null;
30377
- return /* @__PURE__ */ React276.createElement(
30435
+ return /* @__PURE__ */ React277.createElement(
30378
30436
  Box54,
30379
30437
  {
30380
30438
  pos: "sticky",
@@ -30394,7 +30452,7 @@ function PanelContent({ theme }) {
30394
30452
  }
30395
30453
 
30396
30454
  // src/mantine/components/CoverImage.tsx
30397
- 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";
30398
30456
  import { Box as Box58, Group as Group104 } from "@mantine/core";
30399
30457
 
30400
30458
  // src/core/lib/imageTransform.ts
@@ -30528,9 +30586,9 @@ function transformIconImage(sourceUrl, size = "default", customOptions) {
30528
30586
  }
30529
30587
 
30530
30588
  // src/mantine/components/Base/CoverImageButton.tsx
30531
- import React277, { forwardRef } from "react";
30589
+ import React278, { forwardRef } from "react";
30532
30590
  import { Button as Button50 } from "@mantine/core";
30533
- 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(
30534
30592
  Button50,
30535
30593
  {
30536
30594
  ref,
@@ -30553,7 +30611,7 @@ var CoverImageButton = forwardRef(({ isActive = false, onClick, children, style,
30553
30611
  CoverImageButton.displayName = "CoverImageButton";
30554
30612
 
30555
30613
  // src/mantine/components/Base/BaseIconPicker.tsx
30556
- 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";
30557
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";
30558
30616
  import * as TablerIcons from "@tabler/icons-react";
30559
30617
  import { IconSearch as IconSearch6, IconX as IconX14, IconChevronLeft, IconChevronRight as IconChevronRight14 } from "@tabler/icons-react";
@@ -30622,9 +30680,9 @@ function BaseIconPicker({ opened, onClose, onSelectIcon, onUploadClick, children
30622
30680
  };
30623
30681
  const renderIconGrid = (icons) => {
30624
30682
  if (icons.length === 0) {
30625
- 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"));
30626
30684
  }
30627
- return /* @__PURE__ */ React278.createElement(
30685
+ return /* @__PURE__ */ React279.createElement(
30628
30686
  Box55,
30629
30687
  {
30630
30688
  style: {
@@ -30636,7 +30694,7 @@ function BaseIconPicker({ opened, onClose, onSelectIcon, onUploadClick, children
30636
30694
  },
30637
30695
  icons.map(([name, IconComponent]) => {
30638
30696
  const isSelected = currentIcon === name.replace("Icon", "").replace(/([A-Z])/g, "-$1").toLowerCase().slice(1);
30639
- return /* @__PURE__ */ React278.createElement(
30697
+ return /* @__PURE__ */ React279.createElement(
30640
30698
  UnstyledButton5,
30641
30699
  {
30642
30700
  key: name,
@@ -30662,12 +30720,12 @@ function BaseIconPicker({ opened, onClose, onSelectIcon, onUploadClick, children
30662
30720
  }
30663
30721
  }
30664
30722
  },
30665
- /* @__PURE__ */ React278.createElement(IconComponent, { color: "white", size: 24, stroke: 1.5 })
30723
+ /* @__PURE__ */ React279.createElement(IconComponent, { color: "white", size: 24, stroke: 1.5 })
30666
30724
  );
30667
30725
  })
30668
30726
  );
30669
30727
  };
30670
- 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(
30671
30729
  Popover6.Dropdown,
30672
30730
  {
30673
30731
  style: {
@@ -30677,15 +30735,15 @@ function BaseIconPicker({ opened, onClose, onSelectIcon, onUploadClick, children
30677
30735
  },
30678
30736
  p: 0
30679
30737
  },
30680
- /* @__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(
30681
30739
  TextInput8,
30682
30740
  {
30683
30741
  mb: "md",
30684
30742
  placeholder: "Filter",
30685
- leftSection: /* @__PURE__ */ React278.createElement(IconSearch6, { size: 18 }),
30743
+ leftSection: /* @__PURE__ */ React279.createElement(IconSearch6, { size: 18 }),
30686
30744
  value: searchQuery,
30687
30745
  onChange: (e) => setSearchQuery(e.currentTarget.value),
30688
- 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 })),
30689
30747
  style: { flex: 1 },
30690
30748
  styles: {
30691
30749
  input: {
@@ -30695,21 +30753,21 @@ function BaseIconPicker({ opened, onClose, onSelectIcon, onUploadClick, children
30695
30753
  }
30696
30754
  }
30697
30755
  }
30698
- ), !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(
30699
30757
  BaseButton,
30700
30758
  {
30701
30759
  size: "xs",
30702
30760
  onClick: () => setCurrentPage((p) => Math.min(totalPages, p + 1)),
30703
30761
  disabled: currentPage === totalPages,
30704
- leftSection: /* @__PURE__ */ React278.createElement(IconChevronRight14, { size: 14 })
30762
+ leftSection: /* @__PURE__ */ React279.createElement(IconChevronRight14, { size: 14 })
30705
30763
  },
30706
30764
  "Next"
30707
- ))), /* @__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"))))))
30708
30766
  ));
30709
30767
  }
30710
30768
 
30711
30769
  // src/mantine/components/Base/PageIcon.tsx
30712
- import React279, { useMemo as useMemo115 } from "react";
30770
+ import React280, { useMemo as useMemo115 } from "react";
30713
30771
  import { Center as Center14, Box as Box56 } from "@mantine/core";
30714
30772
  import * as TablerIcons2 from "@tabler/icons-react";
30715
30773
  function PageIcon({ src, iconSize = 64, useCenter = false, style }) {
@@ -30725,7 +30783,7 @@ function PageIcon({ src, iconSize = 64, useCenter = false, style }) {
30725
30783
  const Container = useCenter ? Center14 : Box56;
30726
30784
  if (!src) return null;
30727
30785
  if (IconComponent) {
30728
- return /* @__PURE__ */ React279.createElement(
30786
+ return /* @__PURE__ */ React280.createElement(
30729
30787
  Container,
30730
30788
  {
30731
30789
  style: {
@@ -30737,10 +30795,10 @@ function PageIcon({ src, iconSize = 64, useCenter = false, style }) {
30737
30795
  ...style
30738
30796
  }
30739
30797
  },
30740
- /* @__PURE__ */ React279.createElement(IconComponent, { size: iconSize, color: "white", stroke: 1.5 })
30798
+ /* @__PURE__ */ React280.createElement(IconComponent, { size: iconSize, color: "white", stroke: 1.5 })
30741
30799
  );
30742
30800
  }
30743
- return /* @__PURE__ */ React279.createElement(
30801
+ return /* @__PURE__ */ React280.createElement(
30744
30802
  "img",
30745
30803
  {
30746
30804
  src,
@@ -30761,7 +30819,7 @@ function PageIcon({ src, iconSize = 64, useCenter = false, style }) {
30761
30819
  import { useDisclosure as useDisclosure7 } from "@mantine/hooks";
30762
30820
 
30763
30821
  // src/mantine/components/FlowSettingsPanel.tsx
30764
- 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";
30765
30823
  import { Stack as Stack190, Group as Group103, Button as Button51, ActionIcon as ActionIcon37, Text as Text161, Box as Box57 } from "@mantine/core";
30766
30824
  import { IconPlus as IconPlus11, IconTrash as IconTrash10 } from "@tabler/icons-react";
30767
30825
  var SYSTEM_KEYS = /* @__PURE__ */ new Set(["@context", "_type", "schema_version", "doc_id", "title", "createdAt", "createdBy", "flowOwnerDid"]);
@@ -30828,8 +30886,8 @@ var FlowSettingsPanel = ({ editor }) => {
30828
30886
  },
30829
30887
  [editor]
30830
30888
  );
30831
- 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."));
30832
- 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")));
30833
30891
  };
30834
30892
 
30835
30893
  // src/mantine/components/CoverImage.tsx
@@ -30842,7 +30900,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
30842
30900
  const logoFileInputRef = useRef27(null);
30843
30901
  const [opened, { open, close }] = useDisclosure7(false);
30844
30902
  const [metadata, setMetadata] = useState127(() => editor?.getPageMetadata?.() || null);
30845
- const settingsPanelContent = useMemo116(() => editor ? /* @__PURE__ */ React281.createElement(FlowSettingsPanel, { editor }) : null, [editor]);
30903
+ const settingsPanelContent = useMemo116(() => editor ? /* @__PURE__ */ React282.createElement(FlowSettingsPanel, { editor }) : null, [editor]);
30846
30904
  const { open: openSettings } = usePanel("flow-settings-panel", settingsPanelContent);
30847
30905
  useEffect104(() => {
30848
30906
  if (!editor?._metadataManager) {
@@ -30932,7 +30990,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
30932
30990
  return null;
30933
30991
  }
30934
30992
  if (!hasCover) {
30935
- return /* @__PURE__ */ React281.createElement(
30993
+ return /* @__PURE__ */ React282.createElement(
30936
30994
  Box58,
30937
30995
  {
30938
30996
  style: {
@@ -30945,7 +31003,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
30945
31003
  onMouseEnter: () => editable && setIsHovering(true),
30946
31004
  onMouseLeave: () => editable && setIsHovering(false)
30947
31005
  },
30948
- /* @__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(
30949
31007
  Group104,
30950
31008
  {
30951
31009
  gap: "xs",
@@ -30956,7 +31014,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
30956
31014
  zIndex: 10
30957
31015
  }
30958
31016
  },
30959
- /* @__PURE__ */ React281.createElement(
31017
+ /* @__PURE__ */ React282.createElement(
30960
31018
  BaseIconPicker,
30961
31019
  {
30962
31020
  opened,
@@ -30965,11 +31023,11 @@ function CoverImage({ coverImageUrl, logoUrl }) {
30965
31023
  onSelectIcon: (name) => handleSelectLogoIcon(name),
30966
31024
  onUploadClick: () => logoFileInputRef.current?.click()
30967
31025
  },
30968
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: open }, "Add icon")
31026
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: open }, "Add icon")
30969
31027
  ),
30970
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: () => coverFileInputRef.current?.click() }, "Add cover"),
30971
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: openSettings }, "Settings")
30972
- ), 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(
30973
31031
  Box58,
30974
31032
  {
30975
31033
  style: {
@@ -30983,8 +31041,8 @@ function CoverImage({ coverImageUrl, logoUrl }) {
30983
31041
  zIndex: 11
30984
31042
  }
30985
31043
  },
30986
- /* @__PURE__ */ React281.createElement(PageIcon, { src: logoSrc, useCenter: true, iconSize: 64 }),
30987
- editable && isHovering && /* @__PURE__ */ React281.createElement(
31044
+ /* @__PURE__ */ React282.createElement(PageIcon, { src: logoSrc, useCenter: true, iconSize: 64 }),
31045
+ editable && isHovering && /* @__PURE__ */ React282.createElement(
30988
31046
  "div",
30989
31047
  {
30990
31048
  style: {
@@ -30999,7 +31057,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
30999
31057
  alignItems: "center"
31000
31058
  }
31001
31059
  },
31002
- /* @__PURE__ */ React281.createElement(
31060
+ /* @__PURE__ */ React282.createElement(
31003
31061
  BaseIconPicker,
31004
31062
  {
31005
31063
  opened,
@@ -31008,16 +31066,16 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31008
31066
  onSelectIcon: (name) => handleSelectLogoIcon(name),
31009
31067
  onUploadClick: () => logoFileInputRef.current?.click()
31010
31068
  },
31011
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: open }, "Change")
31069
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: open }, "Change")
31012
31070
  ),
31013
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: handleRemoveLogo }, "Remove"),
31014
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: () => coverFileInputRef.current?.click() }, "Add cover"),
31015
- /* @__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")
31016
31074
  )
31017
31075
  ))
31018
31076
  );
31019
31077
  }
31020
- return /* @__PURE__ */ React281.createElement(
31078
+ return /* @__PURE__ */ React282.createElement(
31021
31079
  Box58,
31022
31080
  {
31023
31081
  style: {
@@ -31045,7 +31103,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31045
31103
  }
31046
31104
  }
31047
31105
  },
31048
- /* @__PURE__ */ React281.createElement(
31106
+ /* @__PURE__ */ React282.createElement(
31049
31107
  "img",
31050
31108
  {
31051
31109
  src: coverUrl,
@@ -31063,7 +31121,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31063
31121
  }
31064
31122
  }
31065
31123
  ),
31066
- editable && isHovering && /* @__PURE__ */ React281.createElement(
31124
+ editable && isHovering && /* @__PURE__ */ React282.createElement(
31067
31125
  Group104,
31068
31126
  {
31069
31127
  gap: "xs",
@@ -31074,8 +31132,8 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31074
31132
  zIndex: 10
31075
31133
  }
31076
31134
  },
31077
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: () => coverFileInputRef.current?.click() }, "Change cover"),
31078
- /* @__PURE__ */ React281.createElement(
31135
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: () => coverFileInputRef.current?.click() }, "Change cover"),
31136
+ /* @__PURE__ */ React282.createElement(
31079
31137
  CoverImageButton,
31080
31138
  {
31081
31139
  onClick: () => {
@@ -31088,10 +31146,10 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31088
31146
  },
31089
31147
  isRepositioning ? "Done" : "Reposition"
31090
31148
  ),
31091
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: handleRemoveCover }, "Remove"),
31092
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: openSettings }, "Settings")
31149
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: handleRemoveCover }, "Remove"),
31150
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: openSettings }, "Settings")
31093
31151
  ),
31094
- /* @__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(
31095
31153
  Box58,
31096
31154
  {
31097
31155
  style: {
@@ -31103,8 +31161,8 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31103
31161
  zIndex: 11
31104
31162
  }
31105
31163
  },
31106
- logoSrc && /* @__PURE__ */ React281.createElement(PageIcon, { src: logoSrc, useCenter: true, iconSize: 64 }),
31107
- 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(
31108
31166
  Group104,
31109
31167
  {
31110
31168
  gap: "xs",
@@ -31115,7 +31173,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31115
31173
  zIndex: 12
31116
31174
  }
31117
31175
  },
31118
- /* @__PURE__ */ React281.createElement(
31176
+ /* @__PURE__ */ React282.createElement(
31119
31177
  BaseIconPicker,
31120
31178
  {
31121
31179
  opened,
@@ -31124,10 +31182,10 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31124
31182
  onSelectIcon: (name) => handleSelectLogoIcon(name),
31125
31183
  onUploadClick: () => logoFileInputRef.current?.click()
31126
31184
  },
31127
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: open }, "Change")
31185
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: open }, "Change")
31128
31186
  ),
31129
- /* @__PURE__ */ React281.createElement(CoverImageButton, { onClick: handleRemoveLogo }, "Remove")
31130
- ) : /* @__PURE__ */ React281.createElement(
31187
+ /* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: handleRemoveLogo }, "Remove")
31188
+ ) : /* @__PURE__ */ React282.createElement(
31131
31189
  CoverImageButton,
31132
31190
  {
31133
31191
  onClick: open,
@@ -31142,13 +31200,13 @@ function CoverImage({ coverImageUrl, logoUrl }) {
31142
31200
  "Add icon"
31143
31201
  ))
31144
31202
  )),
31145
- /* @__PURE__ */ React281.createElement("input", { ref: coverFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "cover") }),
31146
- /* @__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") })
31147
31205
  );
31148
31206
  }
31149
31207
 
31150
31208
  // src/mantine/components/PageHeader.tsx
31151
- 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";
31152
31210
  function PageHeader({
31153
31211
  title = "New page",
31154
31212
  icon: icon2,
@@ -31186,7 +31244,7 @@ function PageHeader({
31186
31244
  setIsMenuOpen(false);
31187
31245
  }
31188
31246
  };
31189
- 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(
31190
31248
  "button",
31191
31249
  {
31192
31250
  style: {
@@ -31198,9 +31256,9 @@ function PageHeader({
31198
31256
  setIsPrivacyOpen(false);
31199
31257
  }
31200
31258
  },
31201
- /* @__PURE__ */ React282.createElement("span", { style: styles.menuItemIcon }, "\u{1F512}"),
31202
- /* @__PURE__ */ React282.createElement("span", null, "Private")
31203
- ), /* @__PURE__ */ React282.createElement(
31259
+ /* @__PURE__ */ React283.createElement("span", { style: styles.menuItemIcon }, "\u{1F512}"),
31260
+ /* @__PURE__ */ React283.createElement("span", null, "Private")
31261
+ ), /* @__PURE__ */ React283.createElement(
31204
31262
  "button",
31205
31263
  {
31206
31264
  style: {
@@ -31212,9 +31270,9 @@ function PageHeader({
31212
31270
  setIsPrivacyOpen(false);
31213
31271
  }
31214
31272
  },
31215
- /* @__PURE__ */ React282.createElement("span", { style: styles.menuItemIcon }, "\u{1F310}"),
31216
- /* @__PURE__ */ React282.createElement("span", null, "Public")
31217
- )))), /* @__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(
31218
31276
  "button",
31219
31277
  {
31220
31278
  style: {
@@ -31224,8 +31282,8 @@ function PageHeader({
31224
31282
  onClick: () => handleMenuItemClick(item),
31225
31283
  disabled: item.disabled
31226
31284
  },
31227
- item.icon && /* @__PURE__ */ React282.createElement("span", { style: styles.menuItemIcon }, item.icon),
31228
- /* @__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)
31229
31287
  )))))));
31230
31288
  }
31231
31289
  var styles = {
@@ -31362,7 +31420,7 @@ var styles = {
31362
31420
  };
31363
31421
 
31364
31422
  // src/mantine/components/ExternalDropZone.tsx
31365
- 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";
31366
31424
  import { Box as Box59 } from "@mantine/core";
31367
31425
  var SCROLL_ZONE_SIZE = 80;
31368
31426
  var SCROLL_SPEED = 12;
@@ -31643,11 +31701,11 @@ var ExternalDropZone = ({
31643
31701
  }
31644
31702
  };
31645
31703
  }, []);
31646
- const indicatorWithPosition = dropIndicator && React283.isValidElement(dropIndicator) ? React283.cloneElement(dropIndicator, {
31704
+ const indicatorWithPosition = dropIndicator && React284.isValidElement(dropIndicator) ? React284.cloneElement(dropIndicator, {
31647
31705
  indicatorTop: typeof indicatorStyle.top === "number" ? indicatorStyle.top : void 0
31648
31706
  }) : dropIndicator;
31649
31707
  const shouldShowIndicator = isValidDrag || isPlacementMode && isHoveringInPlacementMode;
31650
- return /* @__PURE__ */ React283.createElement(
31708
+ return /* @__PURE__ */ React284.createElement(
31651
31709
  Box59,
31652
31710
  {
31653
31711
  ref: containerRef,
@@ -31663,7 +31721,7 @@ var ExternalDropZone = ({
31663
31721
  "data-placement-mode": isPlacementMode ? "true" : void 0
31664
31722
  },
31665
31723
  children,
31666
- isPlacementMode && /* @__PURE__ */ React283.createElement(
31724
+ isPlacementMode && /* @__PURE__ */ React284.createElement(
31667
31725
  Box59,
31668
31726
  {
31669
31727
  style: {
@@ -31683,7 +31741,7 @@ var ExternalDropZone = ({
31683
31741
  onWheel: handleOverlayWheel
31684
31742
  }
31685
31743
  ),
31686
- 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)
31687
31745
  );
31688
31746
  };
31689
31747
 
@@ -31747,7 +31805,7 @@ function IxoEditorContent({
31747
31805
  },
31748
31806
  [editor]
31749
31807
  );
31750
- const editorContent = /* @__PURE__ */ React284.createElement(
31808
+ const editorContent = /* @__PURE__ */ React285.createElement(
31751
31809
  BlockNoteView,
31752
31810
  {
31753
31811
  editor,
@@ -31762,7 +31820,7 @@ function IxoEditorContent({
31762
31820
  onChange,
31763
31821
  onSelectionChange
31764
31822
  },
31765
- config.slashMenu && /* @__PURE__ */ React284.createElement(
31823
+ config.slashMenu && /* @__PURE__ */ React285.createElement(
31766
31824
  SuggestionMenuController,
31767
31825
  {
31768
31826
  triggerCharacter: "/",
@@ -31780,7 +31838,7 @@ function IxoEditorContent({
31780
31838
  ),
31781
31839
  children
31782
31840
  );
31783
- 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(
31784
31842
  "div",
31785
31843
  {
31786
31844
  className: `ixo-editor ixo-editor--theme-${config.theme} ${className}`,
@@ -31789,9 +31847,9 @@ function IxoEditorContent({
31789
31847
  transition: "width 0.2s ease"
31790
31848
  }
31791
31849
  },
31792
- selfNav && /* @__PURE__ */ React284.createElement(PageHeader, { ...pageHeaderProps, isPrivate: isRoomPrivate, onPrivacyChange: handlePrivacyChange }),
31793
- /* @__PURE__ */ React284.createElement(CoverImage, { coverImageUrl, logoUrl }),
31794
- (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(
31795
31853
  ExternalDropZone,
31796
31854
  {
31797
31855
  editor,
@@ -31804,7 +31862,7 @@ function IxoEditorContent({
31804
31862
  },
31805
31863
  editorContent
31806
31864
  ) : editorContent
31807
- ), isPanelVisible && /* @__PURE__ */ React284.createElement(PanelContent, { theme: config.theme }));
31865
+ ), isPanelVisible && /* @__PURE__ */ React285.createElement(PanelContent, { theme: config.theme }));
31808
31866
  }
31809
31867
  function IxoEditor({
31810
31868
  editor,
@@ -31847,7 +31905,7 @@ function IxoEditor({
31847
31905
  tableHandles: true
31848
31906
  };
31849
31907
  const isEditable = editable;
31850
- const editorContent = /* @__PURE__ */ React284.createElement(
31908
+ const editorContent = /* @__PURE__ */ React285.createElement(
31851
31909
  BlocknoteProvider,
31852
31910
  {
31853
31911
  editor,
@@ -31862,7 +31920,7 @@ function IxoEditor({
31862
31920
  connectedUsers,
31863
31921
  awarenessInstance
31864
31922
  },
31865
- /* @__PURE__ */ React284.createElement(
31923
+ /* @__PURE__ */ React285.createElement(
31866
31924
  IxoEditorContent,
31867
31925
  {
31868
31926
  isPanelVisible,
@@ -31886,13 +31944,13 @@ function IxoEditor({
31886
31944
  )
31887
31945
  );
31888
31946
  if (mantineTheme) {
31889
- return /* @__PURE__ */ React284.createElement(MantineProvider, { theme: mantineTheme }, editorContent);
31947
+ return /* @__PURE__ */ React285.createElement(MantineProvider, { theme: mantineTheme }, editorContent);
31890
31948
  }
31891
31949
  return editorContent;
31892
31950
  }
31893
31951
 
31894
31952
  // src/mantine/components/DebugButton.tsx
31895
- import React285 from "react";
31953
+ import React286 from "react";
31896
31954
  function DebugButton({ editor }) {
31897
31955
  const yMapToObject = (map) => {
31898
31956
  if (!map) return null;
@@ -31919,7 +31977,7 @@ function DebugButton({ editor }) {
31919
31977
  const json = JSON.stringify(dump, null, 2);
31920
31978
  console.log("Editor Debug Dump:\n" + json);
31921
31979
  };
31922
- return /* @__PURE__ */ React285.createElement(
31980
+ return /* @__PURE__ */ React286.createElement(
31923
31981
  "button",
31924
31982
  {
31925
31983
  onClick: handleClick,
@@ -31945,7 +32003,7 @@ function DebugButton({ editor }) {
31945
32003
  }
31946
32004
 
31947
32005
  // src/mantine/components/EntitySigningSetup.tsx
31948
- import React286, { useState as useState131 } from "react";
32006
+ import React287, { useState as useState131 } from "react";
31949
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";
31950
32008
  import { IconAlertCircle as IconAlertCircle20, IconCheck as IconCheck23, IconKey as IconKey2 } from "@tabler/icons-react";
31951
32009
  var EntitySigningSetup = ({ opened, onClose, entityDid, entityName, onSetup }) => {
@@ -31993,15 +32051,15 @@ var EntitySigningSetup = ({ opened, onClose, entityDid, entityName, onSetup }) =
31993
32051
  setSuccess(false);
31994
32052
  }
31995
32053
  };
31996
- return /* @__PURE__ */ React286.createElement(
32054
+ return /* @__PURE__ */ React287.createElement(
31997
32055
  Modal3,
31998
32056
  {
31999
32057
  opened,
32000
32058
  onClose: handleClose,
32001
- 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")),
32002
32060
  size: "md"
32003
32061
  },
32004
- /* @__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(
32005
32063
  TextInput9,
32006
32064
  {
32007
32065
  label: "Enter PIN to encrypt signing key",
@@ -32012,12 +32070,12 @@ var EntitySigningSetup = ({ opened, onClose, entityDid, entityName, onSetup }) =
32012
32070
  onChange: (e) => setPin(e.currentTarget.value),
32013
32071
  disabled: loading
32014
32072
  }
32015
- ), /* @__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"))))
32016
32074
  );
32017
32075
  };
32018
32076
 
32019
32077
  // src/mantine/components/FlowPermissionsPanel.tsx
32020
- 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";
32021
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";
32022
32080
  import { IconPlus as IconPlus12, IconTrash as IconTrash11, IconShieldCheck as IconShieldCheck15, IconUser as IconUser14, IconRobot as IconRobot4, IconBuilding as IconBuilding2 } from "@tabler/icons-react";
32023
32081
  var FlowPermissionsPanel = ({ editor, entityDid, entityName, onGrantPermission, onRevokePermission, getUserDisplayName }) => {
@@ -32064,11 +32122,11 @@ var FlowPermissionsPanel = ({ editor, entityDid, entityName, onGrantPermission,
32064
32122
  const getIcon2 = (type) => {
32065
32123
  switch (type) {
32066
32124
  case "oracle":
32067
- return /* @__PURE__ */ React287.createElement(IconRobot4, { size: 16 });
32125
+ return /* @__PURE__ */ React288.createElement(IconRobot4, { size: 16 });
32068
32126
  case "entity":
32069
- return /* @__PURE__ */ React287.createElement(IconBuilding2, { size: 16 });
32127
+ return /* @__PURE__ */ React288.createElement(IconBuilding2, { size: 16 });
32070
32128
  default:
32071
- return /* @__PURE__ */ React287.createElement(IconUser14, { size: 16 });
32129
+ return /* @__PURE__ */ React288.createElement(IconUser14, { size: 16 });
32072
32130
  }
32073
32131
  };
32074
32132
  const formatCapabilities = (caps) => {
@@ -32087,11 +32145,11 @@ var FlowPermissionsPanel = ({ editor, entityDid, entityName, onGrantPermission,
32087
32145
  if (date < /* @__PURE__ */ new Date()) return "Expired";
32088
32146
  return date.toLocaleDateString();
32089
32147
  };
32090
- 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"));
32091
32149
  };
32092
32150
 
32093
32151
  // src/mantine/components/GrantPermissionModal.tsx
32094
- import React288, { useState as useState133, useCallback as useCallback104 } from "react";
32152
+ import React289, { useState as useState133, useCallback as useCallback104 } from "react";
32095
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";
32096
32154
  import { IconSearch as IconSearch7, IconUser as IconUser15, IconRobot as IconRobot5, IconX as IconX15, IconShieldPlus as IconShieldPlus4 } from "@tabler/icons-react";
32097
32155
  var GrantPermissionModal = ({ opened, onClose, flowUri, blocks, targetBlockId, searchUsers, getOracles, onGrant }) => {
@@ -32199,15 +32257,15 @@ var GrantPermissionModal = ({ opened, onClose, flowUri, blocks, targetBlockId, s
32199
32257
  resetForm();
32200
32258
  }
32201
32259
  };
32202
- return /* @__PURE__ */ React288.createElement(
32260
+ return /* @__PURE__ */ React289.createElement(
32203
32261
  Modal4,
32204
32262
  {
32205
32263
  opened,
32206
32264
  onClose: handleClose,
32207
- 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")),
32208
32266
  size: "lg"
32209
32267
  },
32210
- /* @__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(
32211
32269
  Radio6.Group,
32212
32270
  {
32213
32271
  value: recipientType,
@@ -32217,23 +32275,23 @@ var GrantPermissionModal = ({ opened, onClose, flowUri, blocks, targetBlockId, s
32217
32275
  setSearchResults([]);
32218
32276
  }
32219
32277
  },
32220
- /* @__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" }))
32221
- )), 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(
32222
32280
  TextInput10,
32223
32281
  {
32224
32282
  placeholder: recipientType === "oracle" ? "Search oracles..." : "Search users...",
32225
- leftSection: /* @__PURE__ */ React288.createElement(IconSearch7, { size: 16 }),
32226
- 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,
32227
32285
  value: searchQuery,
32228
32286
  onChange: (e) => setSearchQuery(e.currentTarget.value),
32229
32287
  onKeyDown: (e) => e.key === "Enter" && handleSearch()
32230
32288
  }
32231
- ), 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 ? (
32232
32290
  // Single block mode: show fixed block info
32233
- /* @__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."))
32234
32292
  ) : (
32235
32293
  // Multi-block mode: show scope selection
32236
- /* @__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(
32237
32295
  Checkbox13,
32238
32296
  {
32239
32297
  key: block.id,
@@ -32248,7 +32306,7 @@ var GrantPermissionModal = ({ opened, onClose, flowUri, blocks, targetBlockId, s
32248
32306
  }
32249
32307
  }
32250
32308
  )))))
32251
- )), /* @__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(
32252
32310
  Checkbox13,
32253
32311
  {
32254
32312
  label: "Recipient can grant permissions to others",
@@ -32256,7 +32314,7 @@ var GrantPermissionModal = ({ opened, onClose, flowUri, blocks, targetBlockId, s
32256
32314
  checked: canDelegate,
32257
32315
  onChange: (e) => setCanDelegate(e.currentTarget.checked)
32258
32316
  }
32259
- ), /* @__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")))
32260
32318
  );
32261
32319
  };
32262
32320
 
@@ -32366,4 +32424,4 @@ export {
32366
32424
  getExtraSlashMenuItems,
32367
32425
  useCreateIxoEditor
32368
32426
  };
32369
- //# sourceMappingURL=chunk-5GSAEIOW.mjs.map
32427
+ //# sourceMappingURL=chunk-WALYBJIM.mjs.map