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