@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.
- package/dist/{chunk-UHF7YDII.mjs → chunk-MB36TYBB.mjs} +3 -2
- package/dist/chunk-MB36TYBB.mjs.map +1 -0
- package/dist/{chunk-5GSAEIOW.mjs → chunk-WALYBJIM.mjs} +363 -305
- package/dist/chunk-WALYBJIM.mjs.map +1 -0
- package/dist/core/index.mjs +1 -1
- package/dist/{graphql-client-DOIlhV_L.d.ts → graphql-client-Cvgm6N3K.d.ts} +7 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +2 -2
- package/dist/mantine/index.d.ts +2 -2
- package/dist/mantine/index.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-5GSAEIOW.mjs.map +0 -1
- package/dist/chunk-UHF7YDII.mjs.map +0 -1
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
isActorAuthorized,
|
|
17
17
|
parseLinkedEntities,
|
|
18
18
|
transformSurveyToCredentialSubject
|
|
19
|
-
} from "./chunk-
|
|
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
|
|
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
|
|
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
|
|
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 {
|
|
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__ */
|
|
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__ */
|
|
24406
|
+
), /* @__PURE__ */ React241.createElement(
|
|
24400
24407
|
BasePrimaryButton,
|
|
24401
24408
|
{
|
|
24402
|
-
leftSection: loadingSurvey ? /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
24876
|
-
/* @__PURE__ */
|
|
24877
|
-
), /* @__PURE__ */
|
|
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__ */
|
|
24887
|
-
/* @__PURE__ */
|
|
24888
|
-
), bidIsEvaluator && /* @__PURE__ */
|
|
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__ */
|
|
24898
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
24938
|
-
), /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
24955
|
-
))), /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
24982
|
-
}))), error && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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 {
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
25441
|
-
}))), surveyModel && !loadingSurvey && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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 {
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
26016
|
-
/* @__PURE__ */
|
|
26017
|
-
), /* @__PURE__ */
|
|
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__ */
|
|
26027
|
-
/* @__PURE__ */
|
|
26028
|
-
), /* @__PURE__ */
|
|
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__ */
|
|
26038
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
26069
|
-
), isClaimAlreadyEvaluated && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
26135
|
+
), /* @__PURE__ */ React247.createElement(
|
|
26078
26136
|
BasePrimaryButton,
|
|
26079
26137
|
{
|
|
26080
|
-
leftSection: /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
26107
|
-
))), /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
26134
|
-
}))), error && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
26307
|
+
rightSection: loadingGroups ? /* @__PURE__ */ React248.createElement(Loader43, { size: "xs" }) : void 0,
|
|
26250
26308
|
searchable: true
|
|
26251
26309
|
}
|
|
26252
|
-
) : /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
26533
|
-
), isProposalCreated && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
26545
|
-
}, isProposalCreated }), !isProposalCreated && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
26720
|
+
rightSection: loadingGroups ? /* @__PURE__ */ React250.createElement(Loader45, { size: "xs" }) : void 0,
|
|
26663
26721
|
searchable: true
|
|
26664
26722
|
}
|
|
26665
|
-
) : /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
26920
|
-
/* @__PURE__ */
|
|
26921
|
-
), /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
26944
|
-
/* @__PURE__ */
|
|
26945
|
-
), hasSubmittedProposal && !hasVoted && /* @__PURE__ */
|
|
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__ */
|
|
26965
|
-
)))), /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
26993
|
-
)))), hasSubmittedProposal && !hasVoted && selectedVote && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
27032
|
-
), error && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
27455
|
-
})), isCompleted && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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 {
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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 {
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
28581
|
+
import React275 from "react";
|
|
28524
28582
|
|
|
28525
28583
|
// src/mantine/blocks/location/template/TemplateView.tsx
|
|
28526
|
-
import
|
|
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
|
|
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
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
28968
|
+
/* @__PURE__ */ React271.createElement(Loader52, null)
|
|
28911
28969
|
);
|
|
28912
28970
|
}
|
|
28913
28971
|
if (status === "error" || mapError) {
|
|
28914
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
28984
|
+
/* @__PURE__ */ React271.createElement(Text157, { size: "sm", c: "red" }, mapError || "Failed to load map")
|
|
28927
28985
|
);
|
|
28928
28986
|
}
|
|
28929
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
28947
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
29046
|
+
return /* @__PURE__ */ React275.createElement(LocationTemplateView, { editor, block });
|
|
28989
29047
|
}
|
|
28990
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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
|
|
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__ */
|
|
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
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
30683
|
+
return /* @__PURE__ */ React279.createElement(Center13, { py: "xl" }, /* @__PURE__ */ React279.createElement(Text160, { c: "dimmed", size: "sm" }, "No icons found"));
|
|
30626
30684
|
}
|
|
30627
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
30723
|
+
/* @__PURE__ */ React279.createElement(IconComponent, { color: "white", size: 24, stroke: 1.5 })
|
|
30666
30724
|
);
|
|
30667
30725
|
})
|
|
30668
30726
|
);
|
|
30669
30727
|
};
|
|
30670
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
30743
|
+
leftSection: /* @__PURE__ */ React279.createElement(IconSearch6, { size: 18 }),
|
|
30686
30744
|
value: searchQuery,
|
|
30687
30745
|
onChange: (e) => setSearchQuery(e.currentTarget.value),
|
|
30688
|
-
rightSection: searchQuery && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
30762
|
+
leftSection: /* @__PURE__ */ React279.createElement(IconChevronRight14, { size: 14 })
|
|
30705
30763
|
},
|
|
30706
30764
|
"Next"
|
|
30707
|
-
))), /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
30798
|
+
/* @__PURE__ */ React280.createElement(IconComponent, { size: iconSize, color: "white", stroke: 1.5 })
|
|
30741
30799
|
);
|
|
30742
30800
|
}
|
|
30743
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
30832
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
31026
|
+
/* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: open }, "Add icon")
|
|
30969
31027
|
),
|
|
30970
|
-
/* @__PURE__ */
|
|
30971
|
-
/* @__PURE__ */
|
|
30972
|
-
), logoSrc && /* @__PURE__ */
|
|
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__ */
|
|
30987
|
-
editable && isHovering && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
31069
|
+
/* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: open }, "Change")
|
|
31012
31070
|
),
|
|
31013
|
-
/* @__PURE__ */
|
|
31014
|
-
/* @__PURE__ */
|
|
31015
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
31078
|
-
/* @__PURE__ */
|
|
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__ */
|
|
31092
|
-
/* @__PURE__ */
|
|
31149
|
+
/* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: handleRemoveCover }, "Remove"),
|
|
31150
|
+
/* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: openSettings }, "Settings")
|
|
31093
31151
|
),
|
|
31094
|
-
/* @__PURE__ */
|
|
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__ */
|
|
31107
|
-
editable && isHovering && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
31185
|
+
/* @__PURE__ */ React282.createElement(CoverImageButton, { onClick: open }, "Change")
|
|
31128
31186
|
),
|
|
31129
|
-
/* @__PURE__ */
|
|
31130
|
-
) : /* @__PURE__ */
|
|
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__ */
|
|
31146
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
31202
|
-
/* @__PURE__ */
|
|
31203
|
-
), /* @__PURE__ */
|
|
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__ */
|
|
31216
|
-
/* @__PURE__ */
|
|
31217
|
-
)))), /* @__PURE__ */
|
|
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__ */
|
|
31228
|
-
/* @__PURE__ */
|
|
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
|
|
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 &&
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
31793
|
-
/* @__PURE__ */
|
|
31794
|
-
(onExternalDrop || isPlacementMode) && isEditable ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
32054
|
+
return /* @__PURE__ */ React287.createElement(
|
|
31997
32055
|
Modal3,
|
|
31998
32056
|
{
|
|
31999
32057
|
opened,
|
|
32000
32058
|
onClose: handleClose,
|
|
32001
|
-
title: /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
32125
|
+
return /* @__PURE__ */ React288.createElement(IconRobot4, { size: 16 });
|
|
32068
32126
|
case "entity":
|
|
32069
|
-
return /* @__PURE__ */
|
|
32127
|
+
return /* @__PURE__ */ React288.createElement(IconBuilding2, { size: 16 });
|
|
32070
32128
|
default:
|
|
32071
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
32260
|
+
return /* @__PURE__ */ React289.createElement(
|
|
32203
32261
|
Modal4,
|
|
32204
32262
|
{
|
|
32205
32263
|
opened,
|
|
32206
32264
|
onClose: handleClose,
|
|
32207
|
-
title: /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
32221
|
-
)), recipientType !== "manual" ? /* @__PURE__ */
|
|
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__ */
|
|
32226
|
-
rightSection: searching ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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-
|
|
32427
|
+
//# sourceMappingURL=chunk-WALYBJIM.mjs.map
|