@ixo/editor 6.29.0 → 6.30.0

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.
@@ -130,7 +130,7 @@ import {
130
130
  writeActionState,
131
131
  writeRunRecordAndReconcile,
132
132
  xeroOracleActivityForBlockForEditor
133
- } from "./chunk-LMZV7QFM.js";
133
+ } from "./chunk-LY32OATI.js";
134
134
 
135
135
  // src/mantine/hooks/usePanel.ts
136
136
  import { useCallback, useMemo, useEffect, useRef } from "react";
@@ -1981,7 +1981,7 @@ var GeneralTab = ({
1981
1981
  };
1982
1982
 
1983
1983
  // src/mantine/components/Layouts/BaseRightPanelLayout.tsx
1984
- import { ActionIcon as ActionIcon5, Box as Box3, Flex as Flex2, Stack as Stack11, Text as Text9 } from "@mantine/core";
1984
+ import { ActionIcon as ActionIcon6, Box as Box3, Flex as Flex2, Stack as Stack11, Text as Text9 } from "@mantine/core";
1985
1985
  import { IconAdjustmentsHorizontal, IconBolt, IconBrain, IconGitCompare, IconHistory, IconHourglass, IconSettings, IconShieldCheck as IconShieldCheck2, IconWand, IconX as IconX3 } from "@tabler/icons-react";
1986
1986
  import React24, { useContext as useContext3, useEffect as useEffect12, useMemo as useMemo9 } from "react";
1987
1987
 
@@ -2058,10 +2058,13 @@ function TabsSelection({ tabs, activeTab, onTabChange, defaultValue, stickyTabs
2058
2058
 
2059
2059
  // src/mantine/components/PanelTabBar.tsx
2060
2060
  import React11 from "react";
2061
- import { Box as Box2, Button as Button3, Group as Group3 } from "@mantine/core";
2061
+ import { ActionIcon as ActionIcon3, Box as Box2, Button as Button3, Group as Group3, Tooltip } from "@mantine/core";
2062
2062
  function PanelTabBar({ tabs, activeTab, onChange }) {
2063
2063
  return /* @__PURE__ */ React11.createElement(Box2, { className: "ixo-hide-scrollbar", style: { overflowX: "auto" } }, /* @__PURE__ */ React11.createElement(Group3, { gap: 2, p: 2, w: "max-content", bg: "neutralColor.3", style: { borderRadius: 10 }, wrap: "nowrap" }, tabs.map((tab) => {
2064
2064
  const active = tab.value === activeTab;
2065
+ if (tab.iconOnly) {
2066
+ return /* @__PURE__ */ React11.createElement(Tooltip, { key: tab.value, label: tab.label }, /* @__PURE__ */ React11.createElement(ActionIcon3, { h: 28, w: 28, variant: active ? "secondary" : "ghost", "data-active": active || void 0, "aria-label": tab.label, onClick: () => onChange(tab.value) }, tab.icon));
2067
+ }
2065
2068
  return /* @__PURE__ */ React11.createElement(
2066
2069
  Button3,
2067
2070
  {
@@ -3035,7 +3038,7 @@ function ConditionsTab({ block, editor }) {
3035
3038
 
3036
3039
  // src/mantine/components/SkillsTab.tsx
3037
3040
  import React21, { useCallback as useCallback13, useEffect as useEffect11, useState as useState10, useRef as useRef5 } from "react";
3038
- import { Stack as Stack9, Text as Text7, Group as Group5, Card as Card2, Badge as Badge3, Loader as Loader2, ActionIcon as ActionIcon3 } from "@mantine/core";
3041
+ import { Stack as Stack9, Text as Text7, Group as Group5, Card as Card2, Badge as Badge3, Loader as Loader2, ActionIcon as ActionIcon4 } from "@mantine/core";
3039
3042
  import { IconX as IconX2 } from "@tabler/icons-react";
3040
3043
 
3041
3044
  // src/mantine/components/Base/BaseMultiSelect.tsx
@@ -3145,7 +3148,7 @@ function SkillsTab({ block, editor }) {
3145
3148
  border: "1px solid var(--mantine-color-neutralColor-5)"
3146
3149
  }
3147
3150
  },
3148
- /* @__PURE__ */ React21.createElement(Stack9, { gap: "sm" }, /* @__PURE__ */ React21.createElement(Group5, { justify: "space-between", align: "center" }, /* @__PURE__ */ React21.createElement(Text7, { size: "sm", fw: 500 }, skill.name), /* @__PURE__ */ React21.createElement(ActionIcon3, { variant: "subtle", color: "red", size: "sm", onClick: () => removeSkill(skill.cid) }, /* @__PURE__ */ React21.createElement(IconX2, { size: 14 }))), skill.description && /* @__PURE__ */ React21.createElement(Text7, { size: "xs", c: "dimmed" }, skill.description), /* @__PURE__ */ React21.createElement(Group5, { gap: "xs" }, skill.license && /* @__PURE__ */ React21.createElement(Badge3, { size: "xs", variant: "outline", style: { borderColor: "var(--mantine-color-neutralColor-5)", color: "var(--mantine-color-dimmed)" } }, skill.license), skill.compatibility && /* @__PURE__ */ React21.createElement(Badge3, { size: "xs", variant: "outline", style: { borderColor: "var(--mantine-color-neutralColor-5)", color: "var(--mantine-color-dimmed)" } }, skill.compatibility)), /* @__PURE__ */ React21.createElement(Text7, { size: "xs", c: "dimmed", style: { fontFamily: "monospace" } }, "CID: ", skill.cid))
3151
+ /* @__PURE__ */ React21.createElement(Stack9, { gap: "sm" }, /* @__PURE__ */ React21.createElement(Group5, { justify: "space-between", align: "center" }, /* @__PURE__ */ React21.createElement(Text7, { size: "sm", fw: 500 }, skill.name), /* @__PURE__ */ React21.createElement(ActionIcon4, { variant: "subtle", color: "red", size: "sm", onClick: () => removeSkill(skill.cid) }, /* @__PURE__ */ React21.createElement(IconX2, { size: 14 }))), skill.description && /* @__PURE__ */ React21.createElement(Text7, { size: "xs", c: "dimmed" }, skill.description), /* @__PURE__ */ React21.createElement(Group5, { gap: "xs" }, skill.license && /* @__PURE__ */ React21.createElement(Badge3, { size: "xs", variant: "outline", style: { borderColor: "var(--mantine-color-neutralColor-5)", color: "var(--mantine-color-dimmed)" } }, skill.license), skill.compatibility && /* @__PURE__ */ React21.createElement(Badge3, { size: "xs", variant: "outline", style: { borderColor: "var(--mantine-color-neutralColor-5)", color: "var(--mantine-color-dimmed)" } }, skill.compatibility)), /* @__PURE__ */ React21.createElement(Text7, { size: "xs", c: "dimmed", style: { fontFamily: "monospace" } }, "CID: ", skill.cid))
3149
3152
  ))));
3150
3153
  }
3151
3154
 
@@ -3270,11 +3273,11 @@ var TtlTab = ({ editor, block }) => {
3270
3273
 
3271
3274
  // src/mantine/components/PanelMaximizeButton.tsx
3272
3275
  import React23 from "react";
3273
- import { ActionIcon as ActionIcon4 } from "@mantine/core";
3276
+ import { ActionIcon as ActionIcon5 } from "@mantine/core";
3274
3277
  import { IconArrowsMaximize, IconArrowsMinimize } from "@tabler/icons-react";
3275
3278
  function PanelMaximizeButton({ isMaximized, onToggleMaximize, isMobile }) {
3276
3279
  if (isMobile) return null;
3277
- return /* @__PURE__ */ React23.createElement(ActionIcon4, { onClick: onToggleMaximize, variant: "secondary", "aria-label": isMaximized ? "Minimize panel" : "Maximize panel" }, isMaximized ? icon(IconArrowsMinimize) : icon(IconArrowsMaximize));
3280
+ return /* @__PURE__ */ React23.createElement(ActionIcon5, { onClick: onToggleMaximize, variant: "secondary", "aria-label": isMaximized ? "Minimize panel" : "Maximize panel" }, isMaximized ? icon(IconArrowsMinimize) : icon(IconArrowsMaximize));
3278
3281
  }
3279
3282
 
3280
3283
  // src/mantine/components/Layouts/BaseRightPanelLayout.tsx
@@ -3288,7 +3291,7 @@ function GroupedTabContent({ items }) {
3288
3291
  if (items.length === 1) return /* @__PURE__ */ React24.createElement(React24.Fragment, null, items[0].content);
3289
3292
  return /* @__PURE__ */ React24.createElement(Stack11, { gap: "xl" }, items.map((item) => /* @__PURE__ */ React24.createElement(Stack11, { key: item.value, gap: "xs" }, /* @__PURE__ */ React24.createElement(Text9, { fz: 12, fw: 600, c: "dimmed", tt: "uppercase" }, item.label), item.content)));
3290
3293
  }
3291
- function buildStepTabs(tabs, t) {
3294
+ function buildStepTabs(tabs, t, showSettings) {
3292
3295
  const actionItems = tabs.filter((tab) => !SET_VALUES.has(tab.value) && !SETTINGS_VALUES.has(tab.value));
3293
3296
  const setItems = tabs.filter((tab) => SET_VALUES.has(tab.value));
3294
3297
  const settingsItems = tabs.filter((tab) => SETTINGS_VALUES.has(tab.value));
@@ -3335,17 +3338,28 @@ function buildStepTabs(tabs, t) {
3335
3338
  }
3336
3339
  )
3337
3340
  },
3338
- ...settingsItems.length ? [
3341
+ ...showSettings && settingsItems.length ? [
3339
3342
  {
3340
3343
  value: "settings",
3341
3344
  label: t("stepTabs.settings", { defaultValue: "Settings" }),
3342
3345
  icon: icon(IconSettings),
3343
- content: /* @__PURE__ */ React24.createElement(GroupedTabContent, { items: settingsItems })
3346
+ content: /* @__PURE__ */ React24.createElement(GroupedTabContent, { items: settingsItems }),
3347
+ iconOnly: true
3344
3348
  }
3345
3349
  ] : []
3346
3350
  ];
3347
3351
  }
3348
- function BaseRightPanelLayout({ title, isTemplate: _isTemplate = true, captionContent, onClose, children, tabs, context, stepTabs = false }) {
3352
+ function BaseRightPanelLayout({
3353
+ title,
3354
+ isTemplate: _isTemplate = true,
3355
+ captionContent,
3356
+ onClose,
3357
+ children,
3358
+ tabs,
3359
+ context,
3360
+ stepTabs = false,
3361
+ showSettings = _isTemplate
3362
+ }) {
3349
3363
  const { setMaximized, isMaximized } = useListBlocksUI();
3350
3364
  const { askCompanion } = useBlocknoteHandlers();
3351
3365
  const t = useTranslate();
@@ -3389,7 +3403,7 @@ function BaseRightPanelLayout({ title, isTemplate: _isTemplate = true, captionCo
3389
3403
  return {};
3390
3404
  }
3391
3405
  }, [context?.block.props.skill]);
3392
- const renderTabs = stepTabs && allTabs.length > 0 ? buildStepTabs(allTabs, t) : allTabs;
3406
+ const renderTabs = stepTabs && allTabs.length > 0 ? buildStepTabs(allTabs, t, showSettings) : allTabs;
3393
3407
  const tabState = useTabState(renderTabs);
3394
3408
  const embedded = useContext3(FlowPanelEmbeddedContext);
3395
3409
  return (
@@ -3409,7 +3423,7 @@ function BaseRightPanelLayout({ title, isTemplate: _isTemplate = true, captionCo
3409
3423
  }
3410
3424
  },
3411
3425
  !embedded && /* @__PURE__ */ React24.createElement(Flex2, { align: "center", px: "md", justify: "space-between", gap: "md" }, title ? /* @__PURE__ */ React24.createElement(Text9, { fz: 16, fw: 400, truncate: "end", style: { flex: 1, minWidth: 0 } }, title) : /* @__PURE__ */ React24.createElement(Box3, { style: { flex: 1 } }), /* @__PURE__ */ React24.createElement(Flex2, { align: "center", gap: "5px" }, /* @__PURE__ */ React24.createElement(PanelMaximizeButton, { isMaximized, onToggleMaximize: () => setMaximized(!isMaximized), isMobile }), /* @__PURE__ */ React24.createElement(
3412
- ActionIcon5,
3426
+ ActionIcon6,
3413
3427
  {
3414
3428
  onClick: () => {
3415
3429
  onClose();
@@ -3574,7 +3588,7 @@ var CheckboxTemplateView = ({ editor, block }) => {
3574
3588
 
3575
3589
  // src/mantine/blocks/checkbox/flow/FlowView.tsx
3576
3590
  import React29, { useMemo as useMemo11 } from "react";
3577
- import { Checkbox as Checkbox3, Group as Group8, Stack as Stack13, Text as Text11, Tooltip } from "@mantine/core";
3591
+ import { Checkbox as Checkbox3, Group as Group8, Stack as Stack13, Text as Text11, Tooltip as Tooltip2 } from "@mantine/core";
3578
3592
 
3579
3593
  // src/mantine/blocks/checkbox/flow/FlowConfig.tsx
3580
3594
  import React28 from "react";
@@ -3602,7 +3616,7 @@ var CheckboxFlowView = ({ editor, block, isDisabled }) => {
3602
3616
  });
3603
3617
  };
3604
3618
  const checkboxElement = /* @__PURE__ */ React29.createElement(Checkbox3, { contentEditable: false, disabled, checked, onChange: handleCheckboxChange, style: { flexShrink: 0 }, onClick: (e) => e.stopPropagation() });
3605
- return /* @__PURE__ */ React29.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React29.createElement(Group8, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React29.createElement(Group8, { wrap: "nowrap", align: "center" }, getIcon("square-check", block.props.icon), /* @__PURE__ */ React29.createElement(Stack13, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React29.createElement(Text11, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Checkbox Title"), /* @__PURE__ */ React29.createElement(Text11, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description || "Checkbox description"))), disabled && isDisabled?.message ? /* @__PURE__ */ React29.createElement(Tooltip, { label: isDisabled.message, position: "left", withArrow: true }, checkboxElement) : checkboxElement));
3619
+ return /* @__PURE__ */ React29.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React29.createElement(Group8, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React29.createElement(Group8, { wrap: "nowrap", align: "center" }, getIcon("square-check", block.props.icon), /* @__PURE__ */ React29.createElement(Stack13, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React29.createElement(Text11, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Checkbox Title"), /* @__PURE__ */ React29.createElement(Text11, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description || "Checkbox description"))), disabled && isDisabled?.message ? /* @__PURE__ */ React29.createElement(Tooltip2, { label: isDisabled.message, position: "left", withArrow: true }, checkboxElement) : checkboxElement));
3606
3620
  };
3607
3621
 
3608
3622
  // src/mantine/blocks/hooks/useBlockConditions.ts
@@ -5208,7 +5222,7 @@ var ListTemplateView = ({ editor, block }) => {
5208
5222
 
5209
5223
  // src/mantine/blocks/list/flow/ListFlowView.tsx
5210
5224
  import React93, { useState as useState38, useEffect as useEffect36, useMemo as useMemo42, useCallback as useCallback31, useRef as useRef11 } from "react";
5211
- import { Stack as Stack59, Text as Text60, ActionIcon as ActionIcon14, Loader as Loader16, Center as Center9, Flex as Flex28, Title as Title5, Collapse as Collapse2, Tooltip as Tooltip9 } from "@mantine/core";
5225
+ import { Stack as Stack59, Text as Text60, ActionIcon as ActionIcon15, Loader as Loader16, Center as Center9, Flex as Flex28, Title as Title5, Collapse as Collapse2, Tooltip as Tooltip10 } from "@mantine/core";
5212
5226
 
5213
5227
  // src/mantine/blocks/list/linked_resources/ResourcesList.tsx
5214
5228
  import React38 from "react";
@@ -5216,7 +5230,7 @@ import { Stack as Stack16, Text as Text14, Box as Box4, Flex as Flex4 } from "@m
5216
5230
  import { IconPdf, IconFileTypeHtml, IconJson, IconPhoto, IconFileText as IconFileText3, IconFile as IconFile2 } from "@tabler/icons-react";
5217
5231
 
5218
5232
  // src/mantine/blocks/list/ListItemContainer.tsx
5219
- import { Center, Flex as Flex3, Paper as Paper3, Tooltip as Tooltip2 } from "@mantine/core";
5233
+ import { Center, Flex as Flex3, Paper as Paper3, Tooltip as Tooltip3 } from "@mantine/core";
5220
5234
  import { IconPlayerPlay } from "@tabler/icons-react";
5221
5235
  import React36 from "react";
5222
5236
  function ListItemContainer({
@@ -5254,7 +5268,7 @@ function ListItemContainer({
5254
5268
  withIcon && /* @__PURE__ */ React36.createElement(Paper3, { ml: 12, w: 28, h: 28, radius: "xl", style: { backgroundColor: "color-mix(in srgb, var(--mantine-color-accent-5) 20%, transparent)" } }, /* @__PURE__ */ React36.createElement(Center, { w: 28, h: 28 }, /* @__PURE__ */ React36.createElement(IconPlayerPlay, { size: 20, color: "var(--mantine-color-accent-5)" })))
5255
5269
  );
5256
5270
  if (tooltip) {
5257
- return /* @__PURE__ */ React36.createElement(Tooltip2, { label: tooltip, disabled: !disabled, position: tooltipPosition, withArrow: true }, content);
5271
+ return /* @__PURE__ */ React36.createElement(Tooltip3, { label: tooltip, disabled: !disabled, position: tooltipPosition, withArrow: true }, content);
5258
5272
  }
5259
5273
  return content;
5260
5274
  }
@@ -5810,13 +5824,13 @@ var SelectionPanelEmpty = ({ message = "No item selected" }) => {
5810
5824
 
5811
5825
  // src/mantine/blocks/list/transactions/TransactionDetails.tsx
5812
5826
  import React57, { useEffect as useEffect15, useState as useState14 } from "react";
5813
- import { Text as Text31, Tooltip as Tooltip3, Stack as Stack32, Group as Group13, Paper as Paper5, Divider as Divider4, CopyButton, ActionIcon as ActionIcon6 } from "@mantine/core";
5827
+ import { Text as Text31, Tooltip as Tooltip4, Stack as Stack32, Group as Group13, Paper as Paper5, Divider as Divider4, CopyButton, ActionIcon as ActionIcon7 } from "@mantine/core";
5814
5828
  import { IconCopy, IconCheck } from "@tabler/icons-react";
5815
5829
  var CopyableField = ({ label, value, truncate: truncate2 = true }) => {
5816
5830
  if (!value) {
5817
5831
  return /* @__PURE__ */ React57.createElement(Stack32, { gap: 4 }, /* @__PURE__ */ React57.createElement(Text31, { size: "xs", c: "dimmed" }, label), /* @__PURE__ */ React57.createElement(Text31, { size: "sm" }, "-"));
5818
5832
  }
5819
- return /* @__PURE__ */ React57.createElement(Stack32, { gap: 4 }, /* @__PURE__ */ React57.createElement(Text31, { size: "xs", c: "dimmed" }, label), /* @__PURE__ */ React57.createElement(Group13, { gap: "xs" }, /* @__PURE__ */ React57.createElement(Tooltip3, { label: value, position: "top", disabled: !truncate2 }, /* @__PURE__ */ React57.createElement(Text31, { size: "sm", style: { fontFamily: "monospace" } }, truncate2 ? shortStr(value, 20, 6) : value)), /* @__PURE__ */ React57.createElement(CopyButton, { value, timeout: 2e3 }, ({ copied, copy }) => /* @__PURE__ */ React57.createElement(ActionIcon6, { size: "xs", variant: "subtle", color: copied ? "teal" : "gray", onClick: copy }, copied ? /* @__PURE__ */ React57.createElement(IconCheck, { size: 14 }) : /* @__PURE__ */ React57.createElement(IconCopy, { size: 14 })))));
5833
+ return /* @__PURE__ */ React57.createElement(Stack32, { gap: 4 }, /* @__PURE__ */ React57.createElement(Text31, { size: "xs", c: "dimmed" }, label), /* @__PURE__ */ React57.createElement(Group13, { gap: "xs" }, /* @__PURE__ */ React57.createElement(Tooltip4, { label: value, position: "top", disabled: !truncate2 }, /* @__PURE__ */ React57.createElement(Text31, { size: "sm", style: { fontFamily: "monospace" } }, truncate2 ? shortStr(value, 20, 6) : value)), /* @__PURE__ */ React57.createElement(CopyButton, { value, timeout: 2e3 }, ({ copied, copy }) => /* @__PURE__ */ React57.createElement(ActionIcon7, { size: "xs", variant: "subtle", color: copied ? "teal" : "gray", onClick: copy }, copied ? /* @__PURE__ */ React57.createElement(IconCheck, { size: 14 }) : /* @__PURE__ */ React57.createElement(IconCopy, { size: 14 })))));
5820
5834
  };
5821
5835
  var TransactionDetails = ({ transaction }) => {
5822
5836
  const handlers = useBlocknoteHandlers();
@@ -6622,7 +6636,7 @@ var AssignmentTab = ({ editor, block: initialBlock }) => {
6622
6636
 
6623
6637
  // src/mantine/components/AssignmentDisplay.tsx
6624
6638
  import React64, { useMemo as useMemo18 } from "react";
6625
- import { Stack as Stack37, Text as Text36, Flex as Flex21, Box as Box18, Popover as Popover2, ActionIcon as ActionIcon7, Tooltip as Tooltip4 } from "@mantine/core";
6639
+ import { Stack as Stack37, Text as Text36, Flex as Flex21, Box as Box18, Popover as Popover2, ActionIcon as ActionIcon8, Tooltip as Tooltip5 } from "@mantine/core";
6626
6640
  import { useDisclosure } from "@mantine/hooks";
6627
6641
  import { IconCirclePlus2 } from "@tabler/icons-react";
6628
6642
  var AVATAR_SIZE = 24;
@@ -6666,8 +6680,8 @@ var AssignmentDisplay = ({ block, onClick }) => {
6666
6680
  const timestampData = assignmentState.assignedTimestamp;
6667
6681
  const hasAssignment = !!assignedActorData?.did;
6668
6682
  if (!hasAssignment) {
6669
- return /* @__PURE__ */ React64.createElement(Tooltip4, { label: "Assign responsibility", withArrow: true }, /* @__PURE__ */ React64.createElement(
6670
- ActionIcon7,
6683
+ return /* @__PURE__ */ React64.createElement(Tooltip5, { label: "Assign responsibility", withArrow: true }, /* @__PURE__ */ React64.createElement(
6684
+ ActionIcon8,
6671
6685
  {
6672
6686
  size: AVATAR_SIZE,
6673
6687
  radius: "xl",
@@ -6704,7 +6718,7 @@ import { useMemo as useMemo21 } from "react";
6704
6718
 
6705
6719
  // src/mantine/components/CommitmentDisplay.tsx
6706
6720
  import React66, { useMemo as useMemo20 } from "react";
6707
- import { Stack as Stack38, Text as Text37, Flex as Flex22, Box as Box19, Popover as Popover3, ActionIcon as ActionIcon8, Tooltip as Tooltip5 } from "@mantine/core";
6721
+ import { Stack as Stack38, Text as Text37, Flex as Flex22, Box as Box19, Popover as Popover3, ActionIcon as ActionIcon9, Tooltip as Tooltip6 } from "@mantine/core";
6708
6722
  import { useDisclosure as useDisclosure2 } from "@mantine/hooks";
6709
6723
  import { IconCircleDotted } from "@tabler/icons-react";
6710
6724
  var AVATAR_SIZE2 = 24;
@@ -6749,8 +6763,8 @@ var CommitmentDisplay = ({ block, onClick }) => {
6749
6763
  const commitmentExpiresAt = commitmentState.commitmentExpiresAt;
6750
6764
  const hasCommitment = !!committedActorData?.did;
6751
6765
  if (!hasCommitment) {
6752
- return /* @__PURE__ */ React66.createElement(Tooltip5, { label: "Commit to action", withArrow: true }, /* @__PURE__ */ React66.createElement(
6753
- ActionIcon8,
6766
+ return /* @__PURE__ */ React66.createElement(Tooltip6, { label: "Commit to action", withArrow: true }, /* @__PURE__ */ React66.createElement(
6767
+ ActionIcon9,
6754
6768
  {
6755
6769
  size: AVATAR_SIZE2,
6756
6770
  radius: "xl",
@@ -6965,7 +6979,7 @@ import { Stack as Stack41, Text as Text40, Group as Group17 } from "@mantine/cor
6965
6979
 
6966
6980
  // src/mantine/blocks/claim/flow/ClaimsListSheet.tsx
6967
6981
  import React70, { useState as useState23, useEffect as useEffect24, useCallback as useCallback22, useMemo as useMemo25 } from "react";
6968
- import { Loader as Loader5, Stack as Stack40, Text as Text39, ActionIcon as ActionIcon10, Alert as Alert6, Box as Box20, Group as Group16 } from "@mantine/core";
6982
+ import { Loader as Loader5, Stack as Stack40, Text as Text39, ActionIcon as ActionIcon11, Alert as Alert6, Box as Box20, Group as Group16 } from "@mantine/core";
6969
6983
  import { IconArrowLeft as IconArrowLeft2, IconAlertCircle as IconAlertCircle2 } from "@tabler/icons-react";
6970
6984
  import { Survey as Survey2, SurveyModel as SurveyModel2 } from "@ixo/surveys";
6971
6985
 
@@ -7007,7 +7021,7 @@ function attachSurveyAnalytics({ model, handlers, flowType, sectionName, extraPr
7007
7021
 
7008
7022
  // src/mantine/components/SurveyAiFillButton.tsx
7009
7023
  import React69 from "react";
7010
- import { ActionIcon as ActionIcon9, Group as Group15, Tooltip as Tooltip6 } from "@mantine/core";
7024
+ import { ActionIcon as ActionIcon10, Group as Group15, Tooltip as Tooltip7 } from "@mantine/core";
7011
7025
  import { IconSparkles as IconSparkles2 } from "@tabler/icons-react";
7012
7026
  function SurveyAiFillButton({ surveyId, title }) {
7013
7027
  const handlers = useBlocknoteHandlers();
@@ -7015,7 +7029,7 @@ function SurveyAiFillButton({ surveyId, title }) {
7015
7029
  const requestAiFill = handlers.requestAiFill;
7016
7030
  if (!requestAiFill) return null;
7017
7031
  const label = t("survey.aiFill.tooltip", { defaultValue: "Let AI fill this form for you" });
7018
- return /* @__PURE__ */ React69.createElement(Group15, { justify: "flex-end" }, /* @__PURE__ */ React69.createElement(Tooltip6, { label }, /* @__PURE__ */ React69.createElement(ActionIcon9, { variant: "default", size: "lg", radius: "sm", "aria-label": label, onClick: () => requestAiFill({ surveyId, title }) }, /* @__PURE__ */ React69.createElement(IconSparkles2, { size: 18 }))));
7032
+ return /* @__PURE__ */ React69.createElement(Group15, { justify: "flex-end" }, /* @__PURE__ */ React69.createElement(Tooltip7, { label }, /* @__PURE__ */ React69.createElement(ActionIcon10, { variant: "default", size: "lg", radius: "sm", "aria-label": label, onClick: () => requestAiFill({ surveyId, title }) }, /* @__PURE__ */ React69.createElement(IconSparkles2, { size: 18 }))));
7019
7033
  }
7020
7034
 
7021
7035
  // src/mantine/blocks/claim/flow/ClaimsListSheet.tsx
@@ -7333,7 +7347,7 @@ var ClaimsListSheet = ({
7333
7347
  pointerEvents: viewMode === "survey" ? "auto" : "none"
7334
7348
  }
7335
7349
  },
7336
- /* @__PURE__ */ React70.createElement(Stack40, { gap: "md" }, /* @__PURE__ */ React70.createElement(Group16, { gap: "xs" }, /* @__PURE__ */ React70.createElement(ActionIcon10, { variant: "subtle", onClick: handleBackToList, size: "md" }, /* @__PURE__ */ React70.createElement(IconArrowLeft2, { size: 20 })), /* @__PURE__ */ React70.createElement(Text39, { size: "sm", c: "dimmed" }, "Back to claims list")), /* @__PURE__ */ React70.createElement(Box20, null, surveyLoading && /* @__PURE__ */ React70.createElement(Stack40, { align: "center", justify: "center", mih: 200 }, /* @__PURE__ */ React70.createElement(Loader5, { size: "lg" }), /* @__PURE__ */ React70.createElement(Text39, { size: "sm", c: "dimmed" }, "Loading survey template...")), surveyError && /* @__PURE__ */ React70.createElement(Alert6, { color: "red", icon: /* @__PURE__ */ React70.createElement(IconAlertCircle2, { size: 18 }) }, /* @__PURE__ */ React70.createElement(Text39, { size: "sm" }, surveyError)), !surveyLoading && !surveyError && surveyModel && /* @__PURE__ */ React70.createElement(React70.Fragment, null, /* @__PURE__ */ React70.createElement(SurveyAiFillButton, { surveyId: openSurveyId, title: openSurveyTitle }), /* @__PURE__ */ React70.createElement(Survey2, { model: surveyModel }))))
7350
+ /* @__PURE__ */ React70.createElement(Stack40, { gap: "md" }, /* @__PURE__ */ React70.createElement(Group16, { gap: "xs" }, /* @__PURE__ */ React70.createElement(ActionIcon11, { variant: "subtle", onClick: handleBackToList, size: "md" }, /* @__PURE__ */ React70.createElement(IconArrowLeft2, { size: 20 })), /* @__PURE__ */ React70.createElement(Text39, { size: "sm", c: "dimmed" }, "Back to claims list")), /* @__PURE__ */ React70.createElement(Box20, null, surveyLoading && /* @__PURE__ */ React70.createElement(Stack40, { align: "center", justify: "center", mih: 200 }, /* @__PURE__ */ React70.createElement(Loader5, { size: "lg" }), /* @__PURE__ */ React70.createElement(Text39, { size: "sm", c: "dimmed" }, "Loading survey template...")), surveyError && /* @__PURE__ */ React70.createElement(Alert6, { color: "red", icon: /* @__PURE__ */ React70.createElement(IconAlertCircle2, { size: 18 }) }, /* @__PURE__ */ React70.createElement(Text39, { size: "sm" }, surveyError)), !surveyLoading && !surveyError && surveyModel && /* @__PURE__ */ React70.createElement(React70.Fragment, null, /* @__PURE__ */ React70.createElement(SurveyAiFillButton, { surveyId: openSurveyId, title: openSurveyTitle }), /* @__PURE__ */ React70.createElement(Survey2, { model: surveyModel }))))
7337
7351
  )
7338
7352
  ));
7339
7353
  };
@@ -7460,7 +7474,7 @@ import { IconAlertCircle as IconAlertCircle4 } from "@tabler/icons-react";
7460
7474
 
7461
7475
  // src/mantine/blocks/components/bid/components/BidItem.tsx
7462
7476
  import React73, { useMemo as useMemo31 } from "react";
7463
- import { Stack as Stack43, Text as Text42, Badge as Badge6, Group as Group19, ActionIcon as ActionIcon11 } from "@mantine/core";
7477
+ import { Stack as Stack43, Text as Text42, Badge as Badge6, Group as Group19, ActionIcon as ActionIcon12 } from "@mantine/core";
7464
7478
  import { IconArrowRight } from "@tabler/icons-react";
7465
7479
 
7466
7480
  // src/mantine/blocks/components/bid/components/BidViewPanel.tsx
@@ -7815,7 +7829,7 @@ var BidItem = ({ editor, block, bid, deedId, adminAddress, onRefresh, execution,
7815
7829
  const displayDate = bid.created || "";
7816
7830
  const displayStatus = bid.status;
7817
7831
  const displayReason = bid.reason;
7818
- return /* @__PURE__ */ React73.createElement(ListItemContainer, { isChecked: false }, /* @__PURE__ */ React73.createElement(Stack43, { gap: 4, style: { flex: 1 } }, /* @__PURE__ */ React73.createElement(Group19, { gap: "xs" }, /* @__PURE__ */ React73.createElement(Text42, { size: "xs", fw: 500 }, loadingProfile ? "Loading..." : displayName), userProfile?.verified && /* @__PURE__ */ React73.createElement(Text42, { size: "xs", c: "blue", fw: 600, title: "Verified user" }, "\u2713"), /* @__PURE__ */ React73.createElement(Badge6, { size: "xs", variant: "light", color: getRoleColor(bid.role) }, getRoleLabel(bid.role))), /* @__PURE__ */ React73.createElement(Text42, { size: "xs", c: "dimmed" }, "Submitted: ", formatDate(displayDate)), displayStatus === "rejected" && displayReason && /* @__PURE__ */ React73.createElement(Text42, { size: "xs", c: "red" }, "Reason: ", displayReason)), /* @__PURE__ */ React73.createElement(Group19, { gap: "xs" }, displayStatus && /* @__PURE__ */ React73.createElement(Badge6, { size: "sm", color: getStatusColor(displayStatus) }, getStatusLabel(displayStatus)), /* @__PURE__ */ React73.createElement(ActionIcon11, { variant: "subtle", size: "lg", onClick: openBidPanel }, /* @__PURE__ */ React73.createElement(IconArrowRight, { size: 20 }))));
7832
+ return /* @__PURE__ */ React73.createElement(ListItemContainer, { isChecked: false }, /* @__PURE__ */ React73.createElement(Stack43, { gap: 4, style: { flex: 1 } }, /* @__PURE__ */ React73.createElement(Group19, { gap: "xs" }, /* @__PURE__ */ React73.createElement(Text42, { size: "xs", fw: 500 }, loadingProfile ? "Loading..." : displayName), userProfile?.verified && /* @__PURE__ */ React73.createElement(Text42, { size: "xs", c: "blue", fw: 600, title: "Verified user" }, "\u2713"), /* @__PURE__ */ React73.createElement(Badge6, { size: "xs", variant: "light", color: getRoleColor(bid.role) }, getRoleLabel(bid.role))), /* @__PURE__ */ React73.createElement(Text42, { size: "xs", c: "dimmed" }, "Submitted: ", formatDate(displayDate)), displayStatus === "rejected" && displayReason && /* @__PURE__ */ React73.createElement(Text42, { size: "xs", c: "red" }, "Reason: ", displayReason)), /* @__PURE__ */ React73.createElement(Group19, { gap: "xs" }, displayStatus && /* @__PURE__ */ React73.createElement(Badge6, { size: "sm", color: getStatusColor(displayStatus) }, getStatusLabel(displayStatus)), /* @__PURE__ */ React73.createElement(ActionIcon12, { variant: "subtle", size: "lg", onClick: openBidPanel }, /* @__PURE__ */ React73.createElement(IconArrowRight, { size: 20 }))));
7819
7833
  };
7820
7834
 
7821
7835
  // src/mantine/blocks/components/bid/hooks/useBids.ts
@@ -8291,7 +8305,7 @@ import {
8291
8305
  Loader as Loader11,
8292
8306
  Stack as Stack48,
8293
8307
  Text as Text48,
8294
- ActionIcon as ActionIcon12,
8308
+ ActionIcon as ActionIcon13,
8295
8309
  Alert as Alert10,
8296
8310
  Badge as Badge8,
8297
8311
  Group as Group22,
@@ -8397,7 +8411,7 @@ import { Survey as Survey5, SurveyModel as SurveyModel5 } from "@ixo/surveys";
8397
8411
 
8398
8412
  // src/mantine/blocks/evaluator/flow/RubricEvaluationResults.tsx
8399
8413
  import React78, { useMemo as useMemo35 } from "react";
8400
- import { Paper as Paper6, Stack as Stack47, Text as Text47, Badge as Badge7, Group as Group21, Progress as Progress2, Accordion as Accordion2, ThemeIcon as ThemeIcon2, Timeline, Box as Box22, Tooltip as Tooltip7, Divider as Divider5, Card as Card4, RingProgress, Center as Center5 } from "@mantine/core";
8414
+ import { Paper as Paper6, Stack as Stack47, Text as Text47, Badge as Badge7, Group as Group21, Progress as Progress2, Accordion as Accordion2, ThemeIcon as ThemeIcon2, Timeline, Box as Box22, Tooltip as Tooltip8, Divider as Divider5, Card as Card4, RingProgress, Center as Center5 } from "@mantine/core";
8401
8415
  import { IconCheck as IconCheck3, IconX as IconX6, IconAlertTriangle, IconClock as IconClock3, IconBrain as IconBrain2, IconUser as IconUser5, IconArrowUp, IconCalculator, IconCloud, IconChecklist as IconChecklist2, IconInfoCircle } from "@tabler/icons-react";
8402
8416
  var getOutcomeConfig = (outcome) => {
8403
8417
  switch (outcome) {
@@ -8540,7 +8554,7 @@ var RubricEvaluationResults = ({ evaluation }) => {
8540
8554
  leftSection: trace.actor.type === "ai" ? /* @__PURE__ */ React78.createElement(IconBrain2, { size: 12, style: { display: "block" } }) : /* @__PURE__ */ React78.createElement(IconUser5, { size: 12, style: { display: "block" } })
8541
8555
  },
8542
8556
  trace.actor.type === "ai" ? "AI Evaluated" : "Human Evaluated"
8543
- ), trace.rubricName && /* @__PURE__ */ React78.createElement(Badge7, { variant: "outline", color: "gray" }, trace.rubricName), /* @__PURE__ */ React78.createElement(Badge7, { variant: "outline", color: "gray" }, "v", trace.rubricVersion)), /* @__PURE__ */ React78.createElement(Group21, { gap: "xs" }, /* @__PURE__ */ React78.createElement(Tooltip7, { label: "Execution ID" }, /* @__PURE__ */ React78.createElement(Text47, { size: "xs", c: "dimmed", style: { fontFamily: "monospace" } }, trace.result.executionId.slice(0, 12), "..."))))), /* @__PURE__ */ React78.createElement(Divider5, { my: "xs" }), /* @__PURE__ */ React78.createElement(
8557
+ ), trace.rubricName && /* @__PURE__ */ React78.createElement(Badge7, { variant: "outline", color: "gray" }, trace.rubricName), /* @__PURE__ */ React78.createElement(Badge7, { variant: "outline", color: "gray" }, "v", trace.rubricVersion)), /* @__PURE__ */ React78.createElement(Group21, { gap: "xs" }, /* @__PURE__ */ React78.createElement(Tooltip8, { label: "Execution ID" }, /* @__PURE__ */ React78.createElement(Text47, { size: "xs", c: "dimmed", style: { fontFamily: "monospace" } }, trace.result.executionId.slice(0, 12), "..."))))), /* @__PURE__ */ React78.createElement(Divider5, { my: "xs" }), /* @__PURE__ */ React78.createElement(
8544
8558
  Accordion2,
8545
8559
  {
8546
8560
  variant: "separated",
@@ -9034,8 +9048,8 @@ var ClaimsList = ({ collectionId, collectionName, deedId, adminAddress, onEvalua
9034
9048
  marginBottom: "1rem"
9035
9049
  }
9036
9050
  },
9037
- /* @__PURE__ */ React79.createElement("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" } }, viewMode === "survey" && /* @__PURE__ */ React79.createElement(ActionIcon12, { variant: "subtle", onClick: handleBackToList }, /* @__PURE__ */ React79.createElement(IconArrowLeft3, { size: 20 })), /* @__PURE__ */ React79.createElement(Title4, { order: 3 }, viewMode === "list" ? `${collectionName} - Claims` : `Evaluate Claim #${selectedClaim?.claimId}`), viewMode === "list" && !loading && claims.length > 0 && /* @__PURE__ */ React79.createElement(Badge8, { size: "lg", variant: "light" }, claims.length)),
9038
- /* @__PURE__ */ React79.createElement(Group22, { gap: "xs" }, viewMode === "list" && /* @__PURE__ */ React79.createElement(ActionIcon12, { variant: "subtle", onClick: fetchClaims, loading, title: "Refresh claims" }, /* @__PURE__ */ React79.createElement(IconRefresh, { size: 18 })), /* @__PURE__ */ React79.createElement(CloseButton, { onClick: closePanel }))
9051
+ /* @__PURE__ */ React79.createElement("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" } }, viewMode === "survey" && /* @__PURE__ */ React79.createElement(ActionIcon13, { variant: "subtle", onClick: handleBackToList }, /* @__PURE__ */ React79.createElement(IconArrowLeft3, { size: 20 })), /* @__PURE__ */ React79.createElement(Title4, { order: 3 }, viewMode === "list" ? `${collectionName} - Claims` : `Evaluate Claim #${selectedClaim?.claimId}`), viewMode === "list" && !loading && claims.length > 0 && /* @__PURE__ */ React79.createElement(Badge8, { size: "lg", variant: "light" }, claims.length)),
9052
+ /* @__PURE__ */ React79.createElement(Group22, { gap: "xs" }, viewMode === "list" && /* @__PURE__ */ React79.createElement(ActionIcon13, { variant: "subtle", onClick: fetchClaims, loading, title: "Refresh claims" }, /* @__PURE__ */ React79.createElement(IconRefresh, { size: 18 })), /* @__PURE__ */ React79.createElement(CloseButton, { onClick: closePanel }))
9039
9053
  ),
9040
9054
  /* @__PURE__ */ React79.createElement(
9041
9055
  "div",
@@ -9147,7 +9161,7 @@ var ClaimListItem = ({ claim, onViewClaim }) => {
9147
9161
  tabIndex: 0,
9148
9162
  style: { cursor: "pointer" }
9149
9163
  },
9150
- /* @__PURE__ */ React79.createElement(ListItemContainer, { isChecked: false }, /* @__PURE__ */ React79.createElement(Stack48, { gap: 4, style: { flex: 1 } }, /* @__PURE__ */ React79.createElement(Text48, { size: "sm", fw: 500 }, "Claim #", claim.claimId), /* @__PURE__ */ React79.createElement(Text48, { size: "xs", c: "dimmed" }, "Submitted: ", formatDate(claim.submissionDate || claim.submittedAt)), claim.agentDid && /* @__PURE__ */ React79.createElement(Group22, { gap: 4 }, /* @__PURE__ */ React79.createElement(Text48, { size: "xs", c: "dimmed" }, "Agent: ", loadingProfile ? "Loading..." : displayName), userProfile?.verified && /* @__PURE__ */ React79.createElement(Text48, { size: "xs", c: "blue", fw: 600, title: "Verified user" }, "\u2713"))), /* @__PURE__ */ React79.createElement(Stack48, { gap: 4, align: "flex-end" }, /* @__PURE__ */ React79.createElement(Badge8, { color: claimStatus2.color, size: "sm" }, claimStatus2.label), /* @__PURE__ */ React79.createElement(ActionIcon12, { variant: "subtle", size: "sm" }, /* @__PURE__ */ React79.createElement(IconArrowRight2, { size: 16 }))))
9164
+ /* @__PURE__ */ React79.createElement(ListItemContainer, { isChecked: false }, /* @__PURE__ */ React79.createElement(Stack48, { gap: 4, style: { flex: 1 } }, /* @__PURE__ */ React79.createElement(Text48, { size: "sm", fw: 500 }, "Claim #", claim.claimId), /* @__PURE__ */ React79.createElement(Text48, { size: "xs", c: "dimmed" }, "Submitted: ", formatDate(claim.submissionDate || claim.submittedAt)), claim.agentDid && /* @__PURE__ */ React79.createElement(Group22, { gap: 4 }, /* @__PURE__ */ React79.createElement(Text48, { size: "xs", c: "dimmed" }, "Agent: ", loadingProfile ? "Loading..." : displayName), userProfile?.verified && /* @__PURE__ */ React79.createElement(Text48, { size: "xs", c: "blue", fw: 600, title: "Verified user" }, "\u2713"))), /* @__PURE__ */ React79.createElement(Stack48, { gap: 4, align: "flex-end" }, /* @__PURE__ */ React79.createElement(Badge8, { color: claimStatus2.color, size: "sm" }, claimStatus2.label), /* @__PURE__ */ React79.createElement(ActionIcon13, { variant: "subtle", size: "sm" }, /* @__PURE__ */ React79.createElement(IconArrowRight2, { size: 16 }))))
9151
9165
  );
9152
9166
  };
9153
9167
 
@@ -9644,7 +9658,7 @@ var ClaimsEvaluation = ({ collectionId, adminAddress, deedId, claim, onRefresh }
9644
9658
 
9645
9659
  // src/mantine/blocks/list/ListSelectionPanel.tsx
9646
9660
  var supportTabsLists = ["claims"];
9647
- var ListSelectionPanel = ({ selectedIds, listConfig, listData, listType, userRole, onClose, onRefresh, block, editor }) => {
9661
+ var ListSelectionPanel = ({ selectedIds, listConfig, listData: listData2, listType, userRole, onClose, onRefresh, block, editor }) => {
9648
9662
  const { closePanel } = usePanelStore();
9649
9663
  const handlers = useBlocknoteHandlers();
9650
9664
  const handleClose = () => {
@@ -9676,7 +9690,7 @@ var ListSelectionPanel = ({ selectedIds, listConfig, listData, listType, userRol
9676
9690
  try {
9677
9691
  const handlerKey = panelConfig.detailsHandlerKey;
9678
9692
  const handler = handlers[handlerKey];
9679
- const listItemData = listData?.items?.find((item) => item?.id === selectedItemId || item?.did === selectedItemId || item.claimId === selectedItemId);
9693
+ const listItemData = listData2?.items?.find((item) => item?.id === selectedItemId || item?.did === selectedItemId || item.claimId === selectedItemId);
9680
9694
  if (typeof handler === "function") {
9681
9695
  const details = await handler(selectedItemId, listItemData);
9682
9696
  setItemHandlerData(details);
@@ -9692,7 +9706,7 @@ var ListSelectionPanel = ({ selectedIds, listConfig, listData, listType, userRol
9692
9706
  }
9693
9707
  };
9694
9708
  fetchItemDetails();
9695
- }, [selectedItemId, listType, handlers, panelConfig, listData?.items]);
9709
+ }, [selectedItemId, listType, handlers, panelConfig, listData2?.items]);
9696
9710
  const tabs = useMemo40(() => {
9697
9711
  switch (listType) {
9698
9712
  case "claims":
@@ -9939,106 +9953,9 @@ function downloadArrayAsCsv(rows, options) {
9939
9953
  // src/mantine/blocks/list/flow/ListFlowView.tsx
9940
9954
  import { useDisclosure as useDisclosure3 } from "@mantine/hooks";
9941
9955
 
9942
- // src/core/utils/links.ts
9943
- function cleanUrlString(url) {
9944
- const regex = /(?<!https?:)\/\//g;
9945
- const cleanedUrl = url.replace(/\s+/g, "").replace(regex, "/");
9946
- return cleanedUrl;
9947
- }
9948
- var transformIpfsToCfIpfsData = (uri) => {
9949
- let uriIdentifier = "";
9950
- if (uri.startsWith("https://ipfs.gateway.ixo.world/ipfs/")) {
9951
- return uri;
9952
- }
9953
- if (!uri || !uri.includes("ipfs")) return uri;
9954
- if (uri.startsWith("web3:")) uriIdentifier = uri.replace("web3:", "");
9955
- if (uri.startsWith("https://cellnode")) return uri;
9956
- if (uri.startsWith("https://ipfs.io/")) uriIdentifier = uri.replace("https://ipfs.io/ipfs/", "");
9957
- if (uri.startsWith("https://cf-ipfs.com/ipfs/")) uriIdentifier = uri.replace("https://cf-ipfs.com/ipfs/", "");
9958
- if (uri.startsWith("https://blocksync") || uri.startsWith("https://testnet") || uri.startsWith("https://devnet") || uri.endsWith("ipfs.w3s.link") || uri.endsWith("ipfs.w3s.link/")) {
9959
- const uriIpfsIndex = uri.indexOf("/ipfs");
9960
- if (uriIpfsIndex === -1) {
9961
- const identifier = uri.split("https://")[1].split(".")[0];
9962
- return `https://ipfs.gateway.ixo.world/ipfs/${identifier}`;
9963
- }
9964
- const uriIpfsOffset = 6;
9965
- uriIdentifier = uri.substring(uriIpfsIndex + uriIpfsOffset);
9966
- return `https://ipfs.gateway.ixo.world/ipfs/${uriIdentifier}`;
9967
- }
9968
- return `https://ipfs.gateway.ixo.world/ipfs/${uriIdentifier}`;
9969
- };
9970
-
9971
- // src/core/lib/getFullServiceEndpoint.ts
9972
- var getFullServiceEndpoint = (serviceEndpoint, services) => {
9973
- if (!serviceEndpoint) throw new Error("Service endpoint is not provided");
9974
- if (serviceEndpoint.startsWith("http://") || serviceEndpoint.startsWith("https://")) return cleanUrlString(serviceEndpoint);
9975
- const pos = serviceEndpoint.indexOf(":");
9976
- if (pos === -1) return cleanUrlString(serviceEndpoint);
9977
- const serviceId = serviceEndpoint.substring(0, pos);
9978
- const endUrl = serviceEndpoint.substring(pos + 1);
9979
- const neededService = services.find((s) => {
9980
- const posHash = s.id.indexOf("#");
9981
- const id = s.id.substring(posHash + 1);
9982
- return id === serviceId;
9983
- });
9984
- let firstPartOfServiceEndpoint = "";
9985
- if (neededService?.serviceEndpoint?.endsWith("/\r\n")) {
9986
- firstPartOfServiceEndpoint = neededService?.serviceEndpoint.replace(/\r?\n$/, "").replace(/\/$/, "");
9987
- } else {
9988
- firstPartOfServiceEndpoint = neededService?.serviceEndpoint || "";
9989
- }
9990
- if (!firstPartOfServiceEndpoint) return serviceEndpoint;
9991
- let resultUrl = firstPartOfServiceEndpoint + endUrl;
9992
- if (resultUrl.includes("ipfs.gateway") && !resultUrl.includes("/ipfs/")) {
9993
- resultUrl = "https://ipfs.gateway.ixo.world/ipfs/" + endUrl;
9994
- }
9995
- return cleanUrlString(resultUrl);
9996
- };
9997
- var getFullServiceEndpoint_default = getFullServiceEndpoint;
9998
-
9999
- // src/core/lib/categorizeResources.ts
10000
- var mediaTypeDictionary = {
10001
- "application/pdf": "pdf",
10002
- "application/html": "html",
10003
- "application/json": "json",
10004
- "application/ld+json": "jsonld",
10005
- "ld+json": "jsonld",
10006
- "image/png": "imagePng",
10007
- "text/plain": "text"
10008
- };
10009
- function extendResourcesWithFormat(resources) {
10010
- if (!resources) return [];
10011
- return Object.values(resources).flat().map((resource) => ({
10012
- ...resource,
10013
- format: Object.keys(resources).find((key) => resources[key].some((item) => item.id === resource.id))
10014
- }));
10015
- }
10016
- function categorizeResources(linkedResources, services) {
10017
- const categorizedResources = {
10018
- pdf: [],
10019
- html: [],
10020
- json: [],
10021
- jsonld: [],
10022
- imagePng: [],
10023
- text: []
10024
- };
10025
- if (!linkedResources) return [];
10026
- for (const resource of linkedResources) {
10027
- const serviceEndpoint = resource.serviceEndpoint;
10028
- categorizedResources[mediaTypeDictionary[resource.mediaType]]?.push({
10029
- id: serviceEndpoint,
10030
- link: transformIpfsToCfIpfsData(getFullServiceEndpoint_default(serviceEndpoint, services)),
10031
- description: resource?.description || "No description",
10032
- type: resource.type,
10033
- access: resource.type.startsWith("display")
10034
- });
10035
- }
10036
- return extendResourcesWithFormat(categorizedResources);
10037
- }
10038
-
10039
9956
  // src/mantine/blocks/list/ListActionsMenu.tsx
10040
9957
  import React92, { useState as useState37 } from "react";
10041
- import { Menu, Text as Text59, ActionIcon as ActionIcon13, Flex as Flex27, Box as Box29, Collapse, Tooltip as Tooltip8 } from "@mantine/core";
9958
+ import { Menu, Text as Text59, ActionIcon as ActionIcon14, Flex as Flex27, Box as Box29, Collapse, Tooltip as Tooltip9 } from "@mantine/core";
10042
9959
  import {
10043
9960
  IconArrowDown,
10044
9961
  IconArrowUp as IconArrowUp2,
@@ -10066,7 +9983,7 @@ var SortRow = ({ opt, value, onChange }) => {
10066
9983
  }
10067
9984
  },
10068
9985
  /* @__PURE__ */ React92.createElement(Flex27, { align: "center", justify: "space-between", gap: "xs" }, /* @__PURE__ */ React92.createElement(
10069
- ActionIcon13,
9986
+ ActionIcon14,
10070
9987
  {
10071
9988
  variant: "subtle",
10072
9989
  size: "xs",
@@ -10094,7 +10011,7 @@ var SortRow = ({ opt, value, onChange }) => {
10094
10011
  },
10095
10012
  opt.label
10096
10013
  ), /* @__PURE__ */ React92.createElement(
10097
- ActionIcon13,
10014
+ ActionIcon14,
10098
10015
  {
10099
10016
  variant: "subtle",
10100
10017
  size: "xs",
@@ -10142,13 +10059,369 @@ var ListActionsMenu = React92.forwardRef(
10142
10059
  }
10143
10060
  }
10144
10061
  },
10145
- /* @__PURE__ */ React92.createElement(Menu.Target, null, /* @__PURE__ */ React92.createElement(Tooltip8, { label: "Actions", withArrow: true }, /* @__PURE__ */ React92.createElement(ActionIcon13, { variant: "subtle", size: "sm", "aria-label": "List actions", title: "List actions" }, /* @__PURE__ */ React92.createElement(IconAdjustmentsHorizontal2, { size: 18 })))),
10062
+ /* @__PURE__ */ React92.createElement(Menu.Target, null, /* @__PURE__ */ React92.createElement(Tooltip9, { label: "Actions", withArrow: true }, /* @__PURE__ */ React92.createElement(ActionIcon14, { variant: "subtle", size: "sm", "aria-label": "List actions", title: "List actions" }, /* @__PURE__ */ React92.createElement(IconAdjustmentsHorizontal2, { size: 18 })))),
10146
10063
  /* @__PURE__ */ React92.createElement(Menu.Dropdown, null, /* @__PURE__ */ React92.createElement(Menu.Label, { onClick: () => setOrderByCollapsed(!orderByCollapsed), style: { cursor: "pointer" } }, /* @__PURE__ */ React92.createElement(Flex27, { align: "center", gap: 10 }, orderByCollapsed ? /* @__PURE__ */ React92.createElement(IconChevronRight, { size: 14 }) : /* @__PURE__ */ React92.createElement(IconChevronDown, { size: 14 }), /* @__PURE__ */ React92.createElement(Text59, { fz: "14" }, "Order By"))), /* @__PURE__ */ React92.createElement(Collapse, { in: !orderByCollapsed }, options.map((opt) => /* @__PURE__ */ React92.createElement(SortRow, { key: opt.key, opt, value, onChange }))), onSearchToggle && /* @__PURE__ */ React92.createElement(React92.Fragment, null, /* @__PURE__ */ React92.createElement(Menu.Divider, null), /* @__PURE__ */ React92.createElement(Menu.Item, { onClick: onSearchToggle, leftSection: /* @__PURE__ */ React92.createElement(IconSearch3, { size: 16 }), "data-active": isSearchActive }, "Search")), /* @__PURE__ */ React92.createElement(Menu.Divider, null), /* @__PURE__ */ React92.createElement(Menu.Item, { leftSection: /* @__PURE__ */ React92.createElement(IconAdjustments, { size: 16 }) }, "Smart Filter"), /* @__PURE__ */ React92.createElement(Menu.Divider, null), /* @__PURE__ */ React92.createElement(Menu.Item, { onClick: () => setIsMultiSelect(!isMultiSelect), leftSection: /* @__PURE__ */ React92.createElement(IconCheckbox2, { size: 16 }) }, "Multi Select"), onDownloadCsv && /* @__PURE__ */ React92.createElement(React92.Fragment, null, /* @__PURE__ */ React92.createElement(Menu.Divider, null), /* @__PURE__ */ React92.createElement(Menu.Item, { onClick: onDownloadCsv, leftSection: /* @__PURE__ */ React92.createElement(IconDownload2, { size: 16 }) }, "Download CSV")))
10147
10064
  ));
10148
10065
  }
10149
10066
  );
10150
10067
  ListActionsMenu.displayName = "ListActionsMenu";
10151
10068
 
10069
+ // src/core/utils/links.ts
10070
+ function cleanUrlString(url) {
10071
+ const regex = /(?<!https?:)\/\//g;
10072
+ const cleanedUrl = url.replace(/\s+/g, "").replace(regex, "/");
10073
+ return cleanedUrl;
10074
+ }
10075
+ var transformIpfsToCfIpfsData = (uri) => {
10076
+ let uriIdentifier = "";
10077
+ if (uri.startsWith("https://ipfs.gateway.ixo.world/ipfs/")) {
10078
+ return uri;
10079
+ }
10080
+ if (!uri || !uri.includes("ipfs")) return uri;
10081
+ if (uri.startsWith("web3:")) uriIdentifier = uri.replace("web3:", "");
10082
+ if (uri.startsWith("https://cellnode")) return uri;
10083
+ if (uri.startsWith("https://ipfs.io/")) uriIdentifier = uri.replace("https://ipfs.io/ipfs/", "");
10084
+ if (uri.startsWith("https://cf-ipfs.com/ipfs/")) uriIdentifier = uri.replace("https://cf-ipfs.com/ipfs/", "");
10085
+ if (uri.startsWith("https://blocksync") || uri.startsWith("https://testnet") || uri.startsWith("https://devnet") || uri.endsWith("ipfs.w3s.link") || uri.endsWith("ipfs.w3s.link/")) {
10086
+ const uriIpfsIndex = uri.indexOf("/ipfs");
10087
+ if (uriIpfsIndex === -1) {
10088
+ const identifier = uri.split("https://")[1].split(".")[0];
10089
+ return `https://ipfs.gateway.ixo.world/ipfs/${identifier}`;
10090
+ }
10091
+ const uriIpfsOffset = 6;
10092
+ uriIdentifier = uri.substring(uriIpfsIndex + uriIpfsOffset);
10093
+ return `https://ipfs.gateway.ixo.world/ipfs/${uriIdentifier}`;
10094
+ }
10095
+ return `https://ipfs.gateway.ixo.world/ipfs/${uriIdentifier}`;
10096
+ };
10097
+
10098
+ // src/core/lib/getFullServiceEndpoint.ts
10099
+ var getFullServiceEndpoint = (serviceEndpoint, services) => {
10100
+ if (!serviceEndpoint) throw new Error("Service endpoint is not provided");
10101
+ if (serviceEndpoint.startsWith("http://") || serviceEndpoint.startsWith("https://")) return cleanUrlString(serviceEndpoint);
10102
+ const pos = serviceEndpoint.indexOf(":");
10103
+ if (pos === -1) return cleanUrlString(serviceEndpoint);
10104
+ const serviceId = serviceEndpoint.substring(0, pos);
10105
+ const endUrl = serviceEndpoint.substring(pos + 1);
10106
+ const neededService = services.find((s) => {
10107
+ const posHash = s.id.indexOf("#");
10108
+ const id = s.id.substring(posHash + 1);
10109
+ return id === serviceId;
10110
+ });
10111
+ let firstPartOfServiceEndpoint = "";
10112
+ if (neededService?.serviceEndpoint?.endsWith("/\r\n")) {
10113
+ firstPartOfServiceEndpoint = neededService?.serviceEndpoint.replace(/\r?\n$/, "").replace(/\/$/, "");
10114
+ } else {
10115
+ firstPartOfServiceEndpoint = neededService?.serviceEndpoint || "";
10116
+ }
10117
+ if (!firstPartOfServiceEndpoint) return serviceEndpoint;
10118
+ let resultUrl = firstPartOfServiceEndpoint + endUrl;
10119
+ if (resultUrl.includes("ipfs.gateway") && !resultUrl.includes("/ipfs/")) {
10120
+ resultUrl = "https://ipfs.gateway.ixo.world/ipfs/" + endUrl;
10121
+ }
10122
+ return cleanUrlString(resultUrl);
10123
+ };
10124
+ var getFullServiceEndpoint_default = getFullServiceEndpoint;
10125
+
10126
+ // src/core/lib/categorizeResources.ts
10127
+ var mediaTypeDictionary = {
10128
+ "application/pdf": "pdf",
10129
+ "application/html": "html",
10130
+ "application/json": "json",
10131
+ "application/ld+json": "jsonld",
10132
+ "ld+json": "jsonld",
10133
+ "image/png": "imagePng",
10134
+ "text/plain": "text"
10135
+ };
10136
+ function extendResourcesWithFormat(resources) {
10137
+ if (!resources) return [];
10138
+ return Object.values(resources).flat().map((resource) => ({
10139
+ ...resource,
10140
+ format: Object.keys(resources).find((key) => resources[key].some((item) => item.id === resource.id))
10141
+ }));
10142
+ }
10143
+ function categorizeResources(linkedResources, services) {
10144
+ const categorizedResources = {
10145
+ pdf: [],
10146
+ html: [],
10147
+ json: [],
10148
+ jsonld: [],
10149
+ imagePng: [],
10150
+ text: []
10151
+ };
10152
+ if (!linkedResources) return [];
10153
+ for (const resource of linkedResources) {
10154
+ const serviceEndpoint = resource.serviceEndpoint;
10155
+ categorizedResources[mediaTypeDictionary[resource.mediaType]]?.push({
10156
+ id: serviceEndpoint,
10157
+ link: transformIpfsToCfIpfsData(getFullServiceEndpoint_default(serviceEndpoint, services)),
10158
+ description: resource?.description || "No description",
10159
+ type: resource.type,
10160
+ access: resource.type.startsWith("display")
10161
+ });
10162
+ }
10163
+ return extendResourcesWithFormat(categorizedResources);
10164
+ }
10165
+
10166
+ // src/mantine/blocks/list/flow/fetchListData.ts
10167
+ var INTERNAL_LINKED_RESOURCE_TAGS = ["pge", "flw", "dmn", "pri", "lgo", "set", "page"];
10168
+ function listData(items) {
10169
+ return { items };
10170
+ }
10171
+ function getTotalPages(totalCount) {
10172
+ return typeof totalCount === "number" && totalCount > 0 ? Math.ceil(totalCount / DEFAULT_PAGE_SIZE) : 0;
10173
+ }
10174
+ function requireValue(value, message) {
10175
+ const str = typeof value === "string" ? value.trim() : typeof value === "number" && Number.isFinite(value) ? String(value) : "";
10176
+ if (!str) throw new Error(message);
10177
+ return str;
10178
+ }
10179
+ function getCurrentUserAddress(handlers) {
10180
+ const user = handlers.getCurrentUser?.();
10181
+ return typeof user?.address === "string" ? user.address : "";
10182
+ }
10183
+ function resolveRelayerDid(handlers, listConfig) {
10184
+ return requireValue(listConfig.relayedNodeDid || handlers.getRelayerDid?.(), "Relayer is required");
10185
+ }
10186
+ function coerceIdList(value) {
10187
+ if (Array.isArray(value)) {
10188
+ return value.map((item) => String(item).trim()).filter(Boolean);
10189
+ }
10190
+ if (typeof value !== "string") return [];
10191
+ const trimmed = value.trim();
10192
+ if (!trimmed) return [];
10193
+ if (trimmed.startsWith("[")) {
10194
+ try {
10195
+ return coerceIdList(JSON.parse(trimmed));
10196
+ } catch {
10197
+ return [trimmed];
10198
+ }
10199
+ }
10200
+ return trimmed.split(",").map((item) => item.trim()).filter(Boolean);
10201
+ }
10202
+ async function fetchListData(options) {
10203
+ const { handlers, listType, listConfig, page, runtimeSearchValue, daoRoleFilter, roomId, matrixClient } = options;
10204
+ switch (listType) {
10205
+ case "linked_resources": {
10206
+ const did = requireValue(listConfig.did || handlers.getEntityDid?.(), "DID is required");
10207
+ const entity = await handlers.getEntity(did);
10208
+ const linkedResources = Array.isArray(entity?.linkedResource) ? entity.linkedResource : Array.isArray(entity?.iidById?.linkedResource) ? entity.iidById.linkedResource : [];
10209
+ const services = Array.isArray(entity?.service) ? entity.service : [];
10210
+ const filteredResources = linkedResources.filter((resource) => !INTERNAL_LINKED_RESOURCE_TAGS.some((tag) => String(resource.id).includes(`#${tag}`)));
10211
+ return {
10212
+ data: listData(categorizeResources(filteredResources, services)),
10213
+ totalPages: 0,
10214
+ userRole: null
10215
+ };
10216
+ }
10217
+ case "assets": {
10218
+ const collectionDid = requireValue(listConfig.collectionDid || handlers.getEntityDid?.(), "Collection DID is required");
10219
+ const ownerAddress = listConfig.ownerBased ? requireValue(getCurrentUserAddress(handlers), "Address is required for owner-based assets") : void 0;
10220
+ const result = ownerAddress ? await handlers.getAssets(collectionDid, page, ownerAddress) : await handlers.getAssets(collectionDid, page);
10221
+ return {
10222
+ data: listData(result.data),
10223
+ totalPages: getTotalPages(result.totalCount),
10224
+ userRole: null
10225
+ };
10226
+ }
10227
+ case "transactions": {
10228
+ const address = requireValue(runtimeSearchValue || listConfig.address, "Address is required");
10229
+ const result = await handlers.getTransactions(address, page);
10230
+ return {
10231
+ data: listData(result.data),
10232
+ totalPages: getTotalPages(result.totalCount),
10233
+ userRole: null
10234
+ };
10235
+ }
10236
+ case "collections": {
10237
+ const relayerDid = resolveRelayerDid(handlers, listConfig);
10238
+ const result = await handlers.getCollections(relayerDid, page);
10239
+ return {
10240
+ data: listData(result.data),
10241
+ totalPages: getTotalPages(result.totalCount),
10242
+ userRole: null
10243
+ };
10244
+ }
10245
+ case "investments": {
10246
+ const relayerDid = resolveRelayerDid(handlers, listConfig);
10247
+ const result = await handlers.getInvestments(relayerDid, page);
10248
+ return {
10249
+ data: listData(result.data),
10250
+ totalPages: getTotalPages(result.totalCount),
10251
+ userRole: null
10252
+ };
10253
+ }
10254
+ case "oracles": {
10255
+ const relayerDid = resolveRelayerDid(handlers, listConfig);
10256
+ const result = await handlers.getOracles(relayerDid, page);
10257
+ return {
10258
+ data: listData(result.data),
10259
+ totalPages: getTotalPages(result.totalCount),
10260
+ userRole: null
10261
+ };
10262
+ }
10263
+ case "pods": {
10264
+ const relayerDid = resolveRelayerDid(handlers, listConfig);
10265
+ const result = await handlers.getPODs(relayerDid, page);
10266
+ return {
10267
+ data: listData(result.data),
10268
+ totalPages: getTotalPages(result.totalCount),
10269
+ userRole: null
10270
+ };
10271
+ }
10272
+ case "proposals": {
10273
+ const groupCoreAddress = requireValue(listConfig.groupCoreAddress, "GroupCoreAddress is required");
10274
+ const result = await handlers.getProposals(groupCoreAddress, page);
10275
+ return {
10276
+ data: listData(result.data),
10277
+ totalPages: getTotalPages(result.totalCount),
10278
+ userRole: null
10279
+ };
10280
+ }
10281
+ case "requests": {
10282
+ const relayerDid = resolveRelayerDid(handlers, listConfig);
10283
+ const result = await handlers.getRequests(relayerDid, page);
10284
+ return {
10285
+ data: listData(result.data),
10286
+ totalPages: getTotalPages(result.totalCount),
10287
+ userRole: null
10288
+ };
10289
+ }
10290
+ case "projects": {
10291
+ const relayerDid = resolveRelayerDid(handlers, listConfig);
10292
+ const result = await handlers.getProjects(relayerDid, page);
10293
+ return {
10294
+ data: listData(result.data),
10295
+ totalPages: getTotalPages(result.totalCount),
10296
+ userRole: null
10297
+ };
10298
+ }
10299
+ case "daos": {
10300
+ const relayerDid = resolveRelayerDid(handlers, listConfig);
10301
+ let result;
10302
+ switch (listConfig.daoType) {
10303
+ case "pod":
10304
+ result = await handlers.getPODs(relayerDid, page, daoRoleFilter);
10305
+ break;
10306
+ case "group":
10307
+ if (!handlers.getDaoGroups) throw new Error("getDaoGroups handler is not configured");
10308
+ result = await handlers.getDaoGroups(relayerDid, page, daoRoleFilter);
10309
+ break;
10310
+ default:
10311
+ result = await handlers.getDaos(relayerDid, page, daoRoleFilter);
10312
+ break;
10313
+ }
10314
+ return {
10315
+ data: listData(result.data),
10316
+ totalPages: getTotalPages(result.totalCount),
10317
+ userRole: null
10318
+ };
10319
+ }
10320
+ case "group_members": {
10321
+ const address = requireValue(listConfig.address, "Address is required");
10322
+ const groupCoreAddress = requireValue(listConfig.groupCoreAddress, "Group Core Address is required");
10323
+ const result = await handlers.getMembers(address, groupCoreAddress, !!listConfig.withBalance, page);
10324
+ return {
10325
+ data: listData(result.data),
10326
+ totalPages: getTotalPages(result.totalCount),
10327
+ userRole: null
10328
+ };
10329
+ }
10330
+ case "validators": {
10331
+ const relayerDid = resolveRelayerDid(handlers, listConfig);
10332
+ const result = await handlers.getValidators(relayerDid, page);
10333
+ return {
10334
+ data: listData(result.data),
10335
+ totalPages: getTotalPages(result.totalCount),
10336
+ userRole: null
10337
+ };
10338
+ }
10339
+ case "balances": {
10340
+ const address = requireValue(listConfig.address || getCurrentUserAddress(handlers), "Address is required");
10341
+ const result = await handlers.getBalances(address);
10342
+ return {
10343
+ data: listData(result.data),
10344
+ totalPages: 0,
10345
+ userRole: null
10346
+ };
10347
+ }
10348
+ case "dao_members": {
10349
+ const address = requireValue(listConfig.address || getCurrentUserAddress(handlers), "Address is required");
10350
+ const configuredGroupIds = coerceIdList(listConfig.groupIds);
10351
+ const fallbackGroupIds = configuredGroupIds.length > 0 ? [] : coerceIdList(await handlers.getDaoGroupsIds());
10352
+ const groupIds = configuredGroupIds.length > 0 ? configuredGroupIds : fallbackGroupIds;
10353
+ if (groupIds.length === 0) throw new Error("Group Ids are required");
10354
+ const result = await handlers.getDaoMembers(address, groupIds, !!listConfig.withBalance, page);
10355
+ return {
10356
+ data: listData(result.data),
10357
+ totalPages: getTotalPages(result.totalCount),
10358
+ userRole: null
10359
+ };
10360
+ }
10361
+ case "matrix_members": {
10362
+ if (!roomId || !matrixClient) throw new Error("Room ID and Matrix client are required");
10363
+ const members = await handlers.getRoomMembers(roomId, matrixClient);
10364
+ return {
10365
+ data: listData(members),
10366
+ totalPages: 0,
10367
+ userRole: null
10368
+ };
10369
+ }
10370
+ case "deed_subscriptions": {
10371
+ const relayerDid = resolveRelayerDid(handlers, listConfig);
10372
+ const result = await handlers.getDeedSubscriptions(relayerDid, page);
10373
+ return {
10374
+ data: listData(result.data),
10375
+ totalPages: getTotalPages(result.totalCount),
10376
+ userRole: null
10377
+ };
10378
+ }
10379
+ case "claims": {
10380
+ const deedDid = requireValue(listConfig.deedDid, "Configure issue: please configure deed DID, claim collection ID, and admin address.");
10381
+ const claimCollectionId = requireValue(
10382
+ listConfig.claimCollectionId || coerceIdList(listConfig.selectedCollections)[0],
10383
+ "Configure issue: please configure deed DID, claim collection ID, and admin address."
10384
+ );
10385
+ const adminAddress = requireValue(listConfig.adminAddress, "Configure issue: please configure deed DID, claim collection ID, and admin address.");
10386
+ const userAddress = requireValue(getCurrentUserAddress(handlers), "Unable to determine current user.");
10387
+ let userRole = null;
10388
+ try {
10389
+ const roles = await handlers.getUserRoles({
10390
+ userAddress,
10391
+ adminAddress,
10392
+ deedDid,
10393
+ collectionIds: [claimCollectionId]
10394
+ });
10395
+ const roleData = roles?.find((role) => role.collectionId === claimCollectionId);
10396
+ userRole = roleData?.role || null;
10397
+ } catch (error) {
10398
+ console.error("Failed to fetch user roles:", error);
10399
+ }
10400
+ const allClaims = await handlers.getClaimsPerCollectionId({ collectionId: claimCollectionId });
10401
+ const claimsWithStatuses = allClaims.map((claim) => {
10402
+ const { status } = getClaimStatus(claim);
10403
+ const statusLower = status.toLowerCase();
10404
+ return { ...claim, [statusLower]: true };
10405
+ });
10406
+ let filteredClaims;
10407
+ if (userRole === "EA" /* Evaluator */) {
10408
+ filteredClaims = claimsWithStatuses;
10409
+ } else if (userRole === "SA" /* ServiceProvider */) {
10410
+ filteredClaims = claimsWithStatuses.filter((claim) => claim.agentAddress === userAddress);
10411
+ } else {
10412
+ filteredClaims = [];
10413
+ }
10414
+ return {
10415
+ data: listData(filteredClaims),
10416
+ totalPages: 0,
10417
+ userRole
10418
+ };
10419
+ }
10420
+ default:
10421
+ throw new Error(`Unknown list type: ${listType}`);
10422
+ }
10423
+ }
10424
+
10152
10425
  // src/mantine/blocks/list/flow/ListFlowView.tsx
10153
10426
  var LIST_FLOW_PANEL_ID = "list-flow-panel";
10154
10427
  var LIST_SELECTION_FLOW_PANEL_ID = "list-selection-flow-panel";
@@ -10309,216 +10582,40 @@ var ListFlowView = ({ block, editor }) => {
10309
10582
  };
10310
10583
  const daoRoleFilter = listType === "daos" && (listFilterConfig?.key === "isOwner" || listFilterConfig?.key === "isController") ? listFilterConfig.key : void 0;
10311
10584
  const fetchData = useCallback31(async () => {
10312
- if (!handlers || !listType || !listConfig) return;
10585
+ if (!handlers || !listType) return;
10313
10586
  setLoading(true);
10314
10587
  setError(null);
10315
10588
  setUserRole(null);
10316
10589
  try {
10317
- let result;
10318
- let did;
10319
- let relayerDid;
10320
- let groupIds;
10321
- let user;
10322
- switch (listType) {
10323
- case "linked_resources":
10324
- did = handlers.getEntityDid();
10325
- if (!did && !listConfig.did) throw new Error("DID is required");
10326
- const { service, linkedResource } = await handlers.getEntity(listConfig.did || did);
10327
- if (!service) return;
10328
- const excludedResources = ["pge", "flw", "dmn", "pri", "lgo", "set", "page"];
10329
- const filteredResources = linkedResource.filter(({ id }) => {
10330
- return !excludedResources.some((tag) => id.includes(`#${tag}`));
10331
- });
10332
- const resources = categorizeResources(filteredResources, service);
10333
- setData({ items: resources });
10334
- break;
10335
- case "assets":
10336
- did = handlers.getEntityDid();
10337
- if (!did && !listConfig.collectionDid) throw new Error("Collection DID is required");
10338
- if (listConfig.ownerBased) {
10339
- user = handlers.getCurrentUser();
10340
- result = await handlers.getAssets(listConfig.collectionDid || did, page, user.address);
10341
- } else {
10342
- result = await handlers.getAssets(listConfig.collectionDid || did, page);
10343
- }
10344
- setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
10345
- setData({ items: result.data });
10346
- break;
10347
- case "transactions":
10348
- const effectiveAddress = runtimeSearchValue || listConfig.address;
10349
- if (!effectiveAddress) throw new Error("Address is required");
10350
- result = await handlers.getTransactions(effectiveAddress, page);
10351
- setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
10352
- setData({ items: result.data });
10353
- break;
10354
- case "collections":
10355
- relayerDid = handlers.getRelayerDid();
10356
- if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
10357
- result = await handlers.getCollections(listConfig.relayedNodeDid || relayerDid, page);
10358
- setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
10359
- setData({ items: result.data });
10360
- break;
10361
- case "investments":
10362
- relayerDid = handlers.getRelayerDid();
10363
- if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
10364
- result = await handlers.getInvestments(listConfig.relayedNodeDid || relayerDid, page);
10365
- setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
10366
- setData({ items: result.data });
10367
- break;
10368
- case "oracles":
10369
- relayerDid = handlers.getRelayerDid();
10370
- if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
10371
- result = await handlers.getOracles(listConfig.relayedNodeDid || relayerDid, page);
10372
- setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
10373
- setData({ items: result.data });
10374
- break;
10375
- case "pods":
10376
- relayerDid = handlers.getRelayerDid();
10377
- if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
10378
- result = await handlers.getPODs(listConfig.relayedNodeDid || relayerDid, page);
10379
- setData({ items: result.data });
10380
- break;
10381
- case "proposals":
10382
- if (!listConfig.groupCoreAddress) throw new Error("GroupCoreAddress is required");
10383
- result = await handlers.getProposals(listConfig.groupCoreAddress, page);
10384
- setData({ items: result.data });
10385
- break;
10386
- case "requests":
10387
- relayerDid = handlers.getRelayerDid();
10388
- if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
10389
- result = await handlers.getRequests(listConfig.relayedNodeDid || relayerDid, page);
10390
- setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
10391
- setData({ items: result.data });
10392
- break;
10393
- case "projects":
10394
- relayerDid = handlers.getRelayerDid();
10395
- if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
10396
- result = await handlers.getProjects(listConfig.relayedNodeDid || relayerDid, page);
10397
- setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
10398
- setData({ items: result.data });
10399
- break;
10400
- case "daos":
10401
- relayerDid = handlers.getRelayerDid();
10402
- if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
10403
- const daoRelayerDid = listConfig.relayedNodeDid || relayerDid;
10404
- switch (listConfig.daoType) {
10405
- case "pod":
10406
- result = await handlers.getPODs(daoRelayerDid, page, daoRoleFilter);
10407
- break;
10408
- case "group":
10409
- if (!handlers.getDaoGroups) throw new Error("getDaoGroups handler is not configured");
10410
- result = await handlers.getDaoGroups(daoRelayerDid, page, daoRoleFilter);
10411
- break;
10412
- default:
10413
- result = await handlers.getDaos(daoRelayerDid, page, daoRoleFilter);
10414
- break;
10415
- }
10416
- setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
10417
- setData({ items: result.data });
10418
- break;
10419
- case "group_members":
10420
- if (!listConfig.address) throw new Error("Address is required");
10421
- if (!listConfig.groupCoreAddress) throw new Error("Group Core Address is required");
10422
- result = await handlers.getMembers(listConfig.address, listConfig.groupCoreAddress, listConfig.withBalance, page);
10423
- setData({ items: result.data });
10424
- break;
10425
- case "validators":
10426
- relayerDid = handlers.getRelayerDid();
10427
- if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
10428
- result = await handlers.getValidators(listConfig.relayedNodeDid || relayerDid, page);
10429
- setData({ items: result.data });
10430
- break;
10431
- case "balances":
10432
- user = handlers.getCurrentUser();
10433
- if (!user.address && !listConfig.address) throw new Error("Address is required");
10434
- result = await handlers.getBalances(listConfig.address || user.address);
10435
- setData({ items: result.data });
10436
- break;
10437
- case "dao_members":
10438
- user = handlers.getCurrentUser();
10439
- groupIds = await handlers.getDaoGroupsIds();
10440
- if (!user.address && !listConfig.address) throw new Error("Address is required");
10441
- if (!groupIds && !listConfig.groupIds) throw new Error("Group Ids are required");
10442
- result = await handlers.getDaoMembers(listConfig.address || user.address, listConfig.groupIds || groupIds, listConfig.withBalance, page);
10443
- setData({ items: result.data });
10444
- break;
10445
- case "deed_subscriptions":
10446
- relayerDid = handlers.getRelayerDid();
10447
- if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
10448
- result = await handlers.getDeedSubscriptions(listConfig.relayedNodeDid || relayerDid, page);
10449
- setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
10450
- setData({ items: result.data });
10451
- break;
10452
- case "claims":
10453
- const deedDid = listConfig.deedDid || "";
10454
- const claimCollectionId = listConfig.claimCollectionId || "";
10455
- const adminAddress = listConfig.adminAddress || "";
10456
- if (!deedDid || !claimCollectionId || !adminAddress) {
10457
- setError("Configure issue: please configure deed DID, claim collection ID, and admin address.");
10458
- setData({ items: [] });
10459
- } else {
10460
- const user2 = handlers.getCurrentUser();
10461
- if (!user2 || !user2.address) {
10462
- setError("Unable to determine current user.");
10463
- setData({ items: [] });
10464
- break;
10465
- }
10466
- let fetchedUserRole = null;
10467
- try {
10468
- const roles = await handlers.getUserRoles({
10469
- userAddress: user2.address,
10470
- adminAddress,
10471
- deedDid,
10472
- collectionIds: [claimCollectionId]
10473
- });
10474
- const roleData = roles?.find((r) => r.collectionId === claimCollectionId);
10475
- fetchedUserRole = roleData?.role || null;
10476
- setUserRole(fetchedUserRole);
10477
- } catch (error2) {
10478
- console.error("Failed to fetch user roles:", error2);
10479
- setUserRole(null);
10480
- }
10481
- const allClaims = await handlers.getClaimsPerCollectionId({ collectionId: claimCollectionId });
10482
- const claimsWithStatuses = allClaims.map((claim) => {
10483
- const { status } = getClaimStatus(claim);
10484
- const statusLower = status.toLowerCase();
10485
- return { ...claim, [statusLower]: true };
10486
- });
10487
- let filteredClaims;
10488
- if (fetchedUserRole === "EA" /* Evaluator */) {
10489
- filteredClaims = claimsWithStatuses;
10490
- } else if (fetchedUserRole === "SA" /* ServiceProvider */) {
10491
- filteredClaims = claimsWithStatuses.filter((claim) => claim.agentAddress === user2.address);
10492
- } else {
10493
- filteredClaims = [];
10494
- }
10495
- setData({ items: filteredClaims });
10496
- }
10497
- break;
10498
- case "matrix_members":
10499
- const roomId = editor.getRoomId?.();
10500
- const mx = editor.getMatrixClient?.();
10501
- if (!roomId || !mx) throw new Error("Room ID and Matrix client are required");
10502
- const members = await handlers.getRoomMembers(roomId, mx);
10503
- setData({ items: members });
10504
- break;
10505
- default:
10506
- throw new Error(`Unknown list type: ${listType}`);
10507
- }
10590
+ const result = await fetchListData({
10591
+ handlers,
10592
+ listType,
10593
+ listConfig,
10594
+ page,
10595
+ runtimeSearchValue,
10596
+ daoRoleFilter,
10597
+ roomId: editor.getRoomId?.(),
10598
+ matrixClient: editor.getMatrixClient?.()
10599
+ });
10600
+ setData(result.data);
10601
+ setTotalPages(result.totalPages);
10602
+ setUserRole(result.userRole);
10508
10603
  } catch (err) {
10604
+ setData({ items: [] });
10605
+ setTotalPages(0);
10509
10606
  setError(err instanceof Error ? err.message : "Failed to fetch data");
10510
10607
  } finally {
10511
10608
  setLoading(false);
10512
10609
  }
10513
- }, [handlers, page, listType, listConfig, runtimeSearchValue, daoRoleFilter]);
10610
+ }, [handlers, page, listType, listConfig, runtimeSearchValue, daoRoleFilter, editor]);
10514
10611
  useEffect36(() => {
10515
10612
  fetchDataRef.current = fetchData;
10516
10613
  }, [fetchData]);
10517
10614
  useEffect36(() => {
10518
- if (listType && listConfig) {
10615
+ if (listType) {
10519
10616
  fetchData();
10520
10617
  }
10521
- }, [listType, page, listConfig, runtimeSearchValue, daoRoleFilter]);
10618
+ }, [fetchData, listType]);
10522
10619
  const handleFilterChange = (filterOption) => {
10523
10620
  if (filterOption?.key === listFilterConfig?.key && filterOption?.value === listFilterConfig?.value) {
10524
10621
  if (listType === "daos") setPage(1);
@@ -10589,7 +10686,7 @@ var ListFlowView = ({ block, editor }) => {
10589
10686
  if (!listType) {
10590
10687
  return /* @__PURE__ */ React93.createElement(Center9, { py: "xl" }, /* @__PURE__ */ React93.createElement(Text60, { size: "sm", c: "dimmed" }, "List not configured"));
10591
10688
  }
10592
- return /* @__PURE__ */ React93.createElement(Stack59, { w: "100%" }, /* @__PURE__ */ React93.createElement(Flex28, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React93.createElement(Title5, { order: 4 }, getListNameByType(listType)), /* @__PURE__ */ React93.createElement(Tooltip9, { label: opened ? "Collapse" : "Expand", withArrow: true }, /* @__PURE__ */ React93.createElement(ActionIcon14, { variant: "subtle", size: "sm", onClick: toggle, "aria-label": opened ? "Collapse" : "Expand" }, opened ? /* @__PURE__ */ React93.createElement(IconChevronUp, { size: 18 }) : /* @__PURE__ */ React93.createElement(IconChevronDown2, { size: 18 })))), /* @__PURE__ */ React93.createElement(Collapse2, { pb: 5, px: 5, in: opened }, /* @__PURE__ */ React93.createElement(Stack59, { mih: totalPages !== 1 ? 500 : void 0, w: "100%" }, /* @__PURE__ */ React93.createElement(Flex28, { align: "center", gap: "xs" }, listSortConfig?.key && /* @__PURE__ */ React93.createElement(Flex28, { align: "center" }, /* @__PURE__ */ React93.createElement(Text60, { size: "xs" }, listSortConfig.key?.replace(/([A-Z])/g, " $1").replace(
10689
+ return /* @__PURE__ */ React93.createElement(Stack59, { w: "100%" }, /* @__PURE__ */ React93.createElement(Flex28, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React93.createElement(Title5, { order: 4 }, getListNameByType(listType)), /* @__PURE__ */ React93.createElement(Tooltip10, { label: opened ? "Collapse" : "Expand", withArrow: true }, /* @__PURE__ */ React93.createElement(ActionIcon15, { variant: "subtle", size: "sm", onClick: toggle, "aria-label": opened ? "Collapse" : "Expand" }, opened ? /* @__PURE__ */ React93.createElement(IconChevronUp, { size: 18 }) : /* @__PURE__ */ React93.createElement(IconChevronDown2, { size: 18 })))), /* @__PURE__ */ React93.createElement(Collapse2, { pb: 5, px: 5, in: opened }, /* @__PURE__ */ React93.createElement(Stack59, { mih: totalPages > 1 ? 500 : void 0, w: "100%" }, /* @__PURE__ */ React93.createElement(Flex28, { align: "center", gap: "xs" }, listSortConfig?.key && /* @__PURE__ */ React93.createElement(Flex28, { align: "center" }, /* @__PURE__ */ React93.createElement(Text60, { size: "xs" }, listSortConfig.key?.replace(/([A-Z])/g, " $1").replace(
10593
10690
  /^./,
10594
10691
  (str) => str.toUpperCase()
10595
10692
  ), " "), /* @__PURE__ */ React93.createElement(Text60, { lh: 0.5 }, listSortConfig.direction === "asc" && /* @__PURE__ */ React93.createElement(IconArrowUp3, { size: 18 }), listSortConfig.direction === "desc" && /* @__PURE__ */ React93.createElement(IconArrowDown2, { size: 18 }))), isMultiSelect && /* @__PURE__ */ React93.createElement(Text60, { lh: 0.5 }, "Multi Selection")), /* @__PURE__ */ React93.createElement(Flex28, { justify: "space-between" }, /* @__PURE__ */ React93.createElement(Flex28, { gap: "xs", align: "center" }, /* @__PURE__ */ React93.createElement(FilterTab, { key: "All", label: "All", isActive: !listFilterConfig?.key, onClick: () => handleFilterChange(null) }), Array.isArray(listFilterConfigOptions) && listFilterConfigOptions.length > 0 && listFilterConfigOptions.map(({ key, label, type }) => /* @__PURE__ */ React93.createElement(
@@ -10600,7 +10697,7 @@ var ListFlowView = ({ block, editor }) => {
10600
10697
  isActive: listFilterConfig?.key === key && listFilterConfig?.value === type,
10601
10698
  onClick: () => handleFilterChange({ key, value: type })
10602
10699
  }
10603
- ))), /* @__PURE__ */ React93.createElement(Flex28, { gap: "xs" }, /* @__PURE__ */ React93.createElement(Tooltip9, { label: "Refresh", withArrow: true }, /* @__PURE__ */ React93.createElement(ActionIcon14, { variant: "subtle", size: "sm", onClick: fetchData, loading }, /* @__PURE__ */ React93.createElement(IconRefresh2, { size: 18 }))), editable && /* @__PURE__ */ React93.createElement(Tooltip9, { label: "Settings", withArrow: true }, /* @__PURE__ */ React93.createElement(ActionIcon14, { variant: "subtle", size: "sm", onClick: openPanel }, /* @__PURE__ */ React93.createElement(IconSettings5, { size: 18 }))), listConfig && listSortConfigOptions && listSortConfigOptions?.length > 0 && /* @__PURE__ */ React93.createElement(
10700
+ ))), /* @__PURE__ */ React93.createElement(Flex28, { gap: "xs" }, /* @__PURE__ */ React93.createElement(Tooltip10, { label: "Refresh", withArrow: true }, /* @__PURE__ */ React93.createElement(ActionIcon15, { variant: "subtle", size: "sm", onClick: fetchData, loading }, /* @__PURE__ */ React93.createElement(IconRefresh2, { size: 18 }))), editable && /* @__PURE__ */ React93.createElement(Tooltip10, { label: "Settings", withArrow: true }, /* @__PURE__ */ React93.createElement(ActionIcon15, { variant: "subtle", size: "sm", onClick: openPanel }, /* @__PURE__ */ React93.createElement(IconSettings5, { size: 18 }))), listConfig && listSortConfigOptions && listSortConfigOptions?.length > 0 && /* @__PURE__ */ React93.createElement(
10604
10701
  ListSearchPopover,
10605
10702
  {
10606
10703
  listType,
@@ -10622,7 +10719,7 @@ var ListFlowView = ({ block, editor }) => {
10622
10719
  isSearchActive: isSearchOpen || !!runtimeSearchValue
10623
10720
  }
10624
10721
  )
10625
- ))), /* @__PURE__ */ React93.createElement(Flex28, { flex: 1 }, loading ? /* @__PURE__ */ React93.createElement(Center9, { py: "xl", w: "100%" }, /* @__PURE__ */ React93.createElement(Loader16, { size: "md", mx: "auto" })) : error ? /* @__PURE__ */ React93.createElement(BaseAlert, { onRetry: fetchData, errMsg: error }) : /* @__PURE__ */ React93.createElement(Stack59, { flex: 1 }, /* @__PURE__ */ React93.createElement(Stack59, { gap: "md" }, renderListComponent(), /* @__PURE__ */ React93.createElement(
10722
+ ))), /* @__PURE__ */ React93.createElement(Flex28, { flex: 1 }, loading ? /* @__PURE__ */ React93.createElement(Center9, { py: "xl", w: "100%" }, /* @__PURE__ */ React93.createElement(Loader16, { size: "md", mx: "auto" })) : error ? /* @__PURE__ */ React93.createElement(BaseAlert, { onRetry: fetchData, errMsg: error }) : /* @__PURE__ */ React93.createElement(Stack59, { flex: 1 }, /* @__PURE__ */ React93.createElement(Stack59, { gap: "md" }, renderListComponent(), totalPages > 1 && /* @__PURE__ */ React93.createElement(
10626
10723
  ListPagination,
10627
10724
  {
10628
10725
  page,
@@ -10966,7 +11063,7 @@ import { Card as Card12, Stack as Stack94 } from "@mantine/core";
10966
11063
 
10967
11064
  // src/mantine/blocks/proposal/actions-components/ActionsCard.tsx
10968
11065
  import React98 from "react";
10969
- import { Card as Card5, Group as Group27, Text as Text63, Badge as Badge11, Stack as Stack62, ActionIcon as ActionIcon15, ScrollArea as ScrollArea2 } from "@mantine/core";
11066
+ import { Card as Card5, Group as Group27, Text as Text63, Badge as Badge11, Stack as Stack62, ActionIcon as ActionIcon16, ScrollArea as ScrollArea2 } from "@mantine/core";
10970
11067
  var getActionSummary = (action) => {
10971
11068
  switch (action.type) {
10972
11069
  case "Spend":
@@ -11036,7 +11133,7 @@ var ActionsCard = ({ actions, isSelected, onClick, onEditAction, onRemoveAction,
11036
11133
  },
11037
11134
  action.type
11038
11135
  ), /* @__PURE__ */ React98.createElement(Text63, { size: "sm", c: "dimmed" }, getActionSummary(action))), !disabled && /* @__PURE__ */ React98.createElement(Group27, { gap: 4 }, /* @__PURE__ */ React98.createElement(
11039
- ActionIcon15,
11136
+ ActionIcon16,
11040
11137
  {
11041
11138
  size: "sm",
11042
11139
  variant: "subtle",
@@ -11049,7 +11146,7 @@ var ActionsCard = ({ actions, isSelected, onClick, onEditAction, onRemoveAction,
11049
11146
  },
11050
11147
  "\u270F\uFE0F"
11051
11148
  ), /* @__PURE__ */ React98.createElement(
11052
- ActionIcon15,
11149
+ ActionIcon16,
11053
11150
  {
11054
11151
  size: "sm",
11055
11152
  variant: "subtle",
@@ -11126,7 +11223,7 @@ var SpendActionForm = ({ data, onChange }) => {
11126
11223
 
11127
11224
  // src/mantine/blocks/proposal/actions-components/UpdateMembersActionForm.tsx
11128
11225
  import React100, { useState as useState41 } from "react";
11129
- import { Stack as Stack64, Button as Button13, Group as Group28, Text as Text65, Card as Card6, Badge as Badge12, ActionIcon as ActionIcon16, Divider as Divider8, ScrollArea as ScrollArea3 } from "@mantine/core";
11226
+ import { Stack as Stack64, Button as Button13, Group as Group28, Text as Text65, Card as Card6, Badge as Badge12, ActionIcon as ActionIcon17, Divider as Divider8, ScrollArea as ScrollArea3 } from "@mantine/core";
11130
11227
  var UpdateMembersActionForm = ({ data, onChange }) => {
11131
11228
  const [newMember, setNewMember] = useState41({ addr: "", weight: 1 });
11132
11229
  const [newRemoveAddress, setNewRemoveAddress] = useState41("");
@@ -11180,7 +11277,7 @@ var UpdateMembersActionForm = ({ data, onChange }) => {
11180
11277
  },
11181
11278
  "Weight: ",
11182
11279
  member.weight
11183
- )), /* @__PURE__ */ React100.createElement(ActionIcon16, { size: "sm", variant: "subtle", onClick: () => handleRemoveMember(index), style: { color: "var(--mantine-color-red-5)" } }, "\u{1F5D1}\uFE0F"))
11280
+ )), /* @__PURE__ */ React100.createElement(ActionIcon17, { size: "sm", variant: "subtle", onClick: () => handleRemoveMember(index), style: { color: "var(--mantine-color-red-5)" } }, "\u{1F5D1}\uFE0F"))
11184
11281
  )))), /* @__PURE__ */ React100.createElement(Group28, { grow: true }, /* @__PURE__ */ React100.createElement(BaseTextInput, { placeholder: "Member address", value: newMember.addr, onChange: (e) => setNewMember({ ...newMember, addr: e.currentTarget.value }) }), /* @__PURE__ */ React100.createElement(BaseNumberInput, { placeholder: "Weight", value: newMember.weight, onChange: (value) => setNewMember({ ...newMember, weight: Number(value) || 1 }), min: 1 }), /* @__PURE__ */ React100.createElement(
11185
11282
  Button13,
11186
11283
  {
@@ -11205,7 +11302,7 @@ var UpdateMembersActionForm = ({ data, onChange }) => {
11205
11302
  borderColor: "var(--mantine-color-neutralColor-5)"
11206
11303
  }
11207
11304
  },
11208
- /* @__PURE__ */ React100.createElement(Group28, { justify: "space-between" }, /* @__PURE__ */ React100.createElement(Text65, { size: "sm", style: { color: "var(--mantine-color-dimmed)" } }, item.addr.slice(0, 30), "..."), /* @__PURE__ */ React100.createElement(ActionIcon16, { size: "sm", variant: "subtle", onClick: () => handleRemoveRemoveAddress(index), style: { color: "var(--mantine-color-red-5)" } }, "\u{1F5D1}\uFE0F"))
11305
+ /* @__PURE__ */ React100.createElement(Group28, { justify: "space-between" }, /* @__PURE__ */ React100.createElement(Text65, { size: "sm", style: { color: "var(--mantine-color-dimmed)" } }, item.addr.slice(0, 30), "..."), /* @__PURE__ */ React100.createElement(ActionIcon17, { size: "sm", variant: "subtle", onClick: () => handleRemoveRemoveAddress(index), style: { color: "var(--mantine-color-red-5)" } }, "\u{1F5D1}\uFE0F"))
11209
11306
  )))), /* @__PURE__ */ React100.createElement(Group28, { grow: true }, /* @__PURE__ */ React100.createElement(BaseTextInput, { placeholder: "Address to remove", value: newRemoveAddress, onChange: (e) => setNewRemoveAddress(e.currentTarget.value) }), /* @__PURE__ */ React100.createElement(
11210
11307
  Button13,
11211
11308
  {
@@ -13609,7 +13706,7 @@ var useVoteBusinessLogic = ({ block }) => {
13609
13706
 
13610
13707
  // src/mantine/blocks/proposal/flow/VoteGeneralTab.tsx
13611
13708
  import React136, { useState as useState52 } from "react";
13612
- import { Stack as Stack99, Text as Text76, Group as Group42, Card as Card15, Button as Button20, Progress as Progress4, Box as Box31, Tooltip as Tooltip10 } from "@mantine/core";
13709
+ import { Stack as Stack99, Text as Text76, Group as Group42, Card as Card15, Button as Button20, Progress as Progress4, Box as Box31, Tooltip as Tooltip11 } from "@mantine/core";
13613
13710
 
13614
13711
  // src/mantine/blocks/action/actionTypes/governance/_shared/ProposalOverviewCard.tsx
13615
13712
  import React135, { useEffect as useEffect44, useState as useState51 } from "react";
@@ -14152,7 +14249,7 @@ var FlowGeneralTab = ({
14152
14249
  }
14153
14250
  }
14154
14251
  ), /* @__PURE__ */ React136.createElement(Text76, { size: "sm", fw: 500, style: { color: "#ffd43b" } }, isDisabled.message))
14155
- ), /* @__PURE__ */ React136.createElement(Stack99, { gap: "md" }, ["yes", "no", "abstain"].map((voteType) => /* @__PURE__ */ React136.createElement(Tooltip10, { key: voteType, label: disabled ? isDisabled?.message : void 0, disabled: !disabled, position: "top" }, /* @__PURE__ */ React136.createElement(
14252
+ ), /* @__PURE__ */ React136.createElement(Stack99, { gap: "md" }, ["yes", "no", "abstain"].map((voteType) => /* @__PURE__ */ React136.createElement(Tooltip11, { key: voteType, label: disabled ? isDisabled?.message : void 0, disabled: !disabled, position: "top" }, /* @__PURE__ */ React136.createElement(
14156
14253
  Button20,
14157
14254
  {
14158
14255
  variant: "outline",
@@ -14193,7 +14290,7 @@ var FlowGeneralTab = ({
14193
14290
  }
14194
14291
  },
14195
14292
  /* @__PURE__ */ React136.createElement(Stack99, { gap: "xs" }, /* @__PURE__ */ React136.createElement(Text76, { fw: 500, size: "sm", style: { color: "var(--mantine-color-text)" } }, "Proposal Executed"), /* @__PURE__ */ React136.createElement(Text76, { size: "sm", style: { color: "var(--mantine-color-dimmed)" } }, "This proposal has been successfully executed."))
14196
- ), !hasSubmittedProposal && /* @__PURE__ */ React136.createElement(Stack99, { gap: "lg" }, /* @__PURE__ */ React136.createElement(Stack99, { gap: "md" }, ["yes", "no", "abstain"].map((voteType) => /* @__PURE__ */ React136.createElement(Tooltip10, { key: voteType, label: "The proposal must be submitted before you can vote", position: "top" }, /* @__PURE__ */ React136.createElement(
14293
+ ), !hasSubmittedProposal && /* @__PURE__ */ React136.createElement(Stack99, { gap: "lg" }, /* @__PURE__ */ React136.createElement(Stack99, { gap: "md" }, ["yes", "no", "abstain"].map((voteType) => /* @__PURE__ */ React136.createElement(Tooltip11, { key: voteType, label: "The proposal must be submitted before you can vote", position: "top" }, /* @__PURE__ */ React136.createElement(
14197
14294
  Button20,
14198
14295
  {
14199
14296
  variant: "outline",
@@ -14211,7 +14308,7 @@ var FlowGeneralTab = ({
14211
14308
  }
14212
14309
  },
14213
14310
  /* @__PURE__ */ React136.createElement(Text76, { fw: 500, tt: "capitalize", style: { textAlign: "left" } }, voteType)
14214
- ))))), hasSubmittedProposal && !hasVoted && selectedVote && (status === "open" || proposalStatus === "open") && /* @__PURE__ */ React136.createElement(Tooltip10, { label: disabled ? isDisabled?.message : "Sign to vote", position: "top" }, /* @__PURE__ */ React136.createElement("div", null, /* @__PURE__ */ React136.createElement(
14311
+ ))))), hasSubmittedProposal && !hasVoted && selectedVote && (status === "open" || proposalStatus === "open") && /* @__PURE__ */ React136.createElement(Tooltip11, { label: disabled ? isDisabled?.message : "Sign to vote", position: "top" }, /* @__PURE__ */ React136.createElement("div", null, /* @__PURE__ */ React136.createElement(
14215
14312
  Button20,
14216
14313
  {
14217
14314
  size: "sm",
@@ -14708,17 +14805,17 @@ import { IconSettings as IconSettings7, IconCode as IconCode2, IconShieldCheck a
14708
14805
 
14709
14806
  // src/mantine/blocks/apiRequest/template/GeneralTab.tsx
14710
14807
  import React145, { useEffect as useEffect48, useState as useState58 } from "react";
14711
- import { Divider as Divider10, Stack as Stack104, Text as Text81, Button as Button23, Group as Group45, ActionIcon as ActionIcon19, Paper as Paper9 } from "@mantine/core";
14808
+ import { Divider as Divider10, Stack as Stack104, Text as Text81, Button as Button23, Group as Group45, ActionIcon as ActionIcon20, Paper as Paper9 } from "@mantine/core";
14712
14809
  import { IconTrash as IconTrash2, IconPlus as IconPlus3 } from "@tabler/icons-react";
14713
14810
 
14714
14811
  // src/mantine/components/DataInput/DataInput.tsx
14715
14812
  import React144, { useState as useState57, useCallback as useCallback37, useMemo as useMemo48 } from "react";
14716
- import { Input, ActionIcon as ActionIcon18, Tooltip as Tooltip11, Group as Group44 } from "@mantine/core";
14813
+ import { Input, ActionIcon as ActionIcon19, Tooltip as Tooltip12, Group as Group44 } from "@mantine/core";
14717
14814
  import { IconVariable, IconX as IconX9 } from "@tabler/icons-react";
14718
14815
 
14719
14816
  // src/mantine/components/DataInput/BlockPropSelector.tsx
14720
14817
  import React143, { useState as useState56, useMemo as useMemo47 } from "react";
14721
- import { Popover as Popover4, Text as Text80, Stack as Stack103, Group as Group43, ActionIcon as ActionIcon17, TextInput as TextInput5, ScrollArea as ScrollArea5, Badge as Badge17, Box as Box32 } from "@mantine/core";
14818
+ import { Popover as Popover4, Text as Text80, Stack as Stack103, Group as Group43, ActionIcon as ActionIcon18, TextInput as TextInput5, ScrollArea as ScrollArea5, Badge as Badge17, Box as Box32 } from "@mantine/core";
14722
14819
  import { IconSearch as IconSearch4, IconX as IconX8, IconChevronRight as IconChevronRight3, IconArrowLeft as IconArrowLeft4, IconBolt as IconBolt5 } from "@tabler/icons-react";
14723
14820
  var TRIGGER_PAYLOAD_BLOCK_ID = "__trigger__";
14724
14821
  var ITEM_SCOPE_BLOCK_ID = "item";
@@ -14894,7 +14991,7 @@ function BlockPropSelector({ children, opened, onClose, onSelect, editorDocument
14894
14991
  backgroundColor: "#282828"
14895
14992
  }
14896
14993
  },
14897
- /* @__PURE__ */ React143.createElement(Group43, { justify: "space-between", align: "center" }, /* @__PURE__ */ React143.createElement(Group43, { gap: 6 }, (selectedBlock || navigationPath.length > 0) && /* @__PURE__ */ React143.createElement(ActionIcon17, { variant: "subtle", size: "sm", onClick: handleBack, color: "gray", styles: { root: { color: TEXT_DIMMED, "&:hover": { backgroundColor: ITEM_HOVER_BG } } } }, /* @__PURE__ */ React143.createElement(IconArrowLeft4, { size: 14 })), /* @__PURE__ */ React143.createElement(Stack103, { gap: 0 }, /* @__PURE__ */ React143.createElement(Text80, { size: "sm", fw: 500, c: TEXT_PRIMARY, style: { letterSpacing: "0.2px" } }, headerTitle), headerSubtitle && /* @__PURE__ */ React143.createElement(Text80, { size: "xs", c: TEXT_DIMMED }, headerSubtitle))), /* @__PURE__ */ React143.createElement(ActionIcon17, { variant: "subtle", size: "sm", onClick: handleClose, styles: { root: { color: TEXT_DIMMED, "&:hover": { backgroundColor: ITEM_HOVER_BG } } } }, /* @__PURE__ */ React143.createElement(IconX8, { size: 14 })))
14994
+ /* @__PURE__ */ React143.createElement(Group43, { justify: "space-between", align: "center" }, /* @__PURE__ */ React143.createElement(Group43, { gap: 6 }, (selectedBlock || navigationPath.length > 0) && /* @__PURE__ */ React143.createElement(ActionIcon18, { variant: "subtle", size: "sm", onClick: handleBack, color: "gray", styles: { root: { color: TEXT_DIMMED, "&:hover": { backgroundColor: ITEM_HOVER_BG } } } }, /* @__PURE__ */ React143.createElement(IconArrowLeft4, { size: 14 })), /* @__PURE__ */ React143.createElement(Stack103, { gap: 0 }, /* @__PURE__ */ React143.createElement(Text80, { size: "sm", fw: 500, c: TEXT_PRIMARY, style: { letterSpacing: "0.2px" } }, headerTitle), headerSubtitle && /* @__PURE__ */ React143.createElement(Text80, { size: "xs", c: TEXT_DIMMED }, headerSubtitle))), /* @__PURE__ */ React143.createElement(ActionIcon18, { variant: "subtle", size: "sm", onClick: handleClose, styles: { root: { color: TEXT_DIMMED, "&:hover": { backgroundColor: ITEM_HOVER_BG } } } }, /* @__PURE__ */ React143.createElement(IconX8, { size: 14 })))
14898
14995
  ),
14899
14996
  !selectedBlock && /* @__PURE__ */ React143.createElement(Box32, { px: "md", py: "xs", style: { borderBottom: `1px solid ${BORDER_COLOR}` } }, /* @__PURE__ */ React143.createElement(
14900
14997
  TextInput5,
@@ -14904,7 +15001,7 @@ function BlockPropSelector({ children, opened, onClose, onSelect, editorDocument
14904
15001
  value: searchQuery,
14905
15002
  onChange: (e) => setSearchQuery(e.currentTarget.value),
14906
15003
  size: "xs",
14907
- rightSection: searchQuery ? /* @__PURE__ */ React143.createElement(ActionIcon17, { variant: "subtle", size: "xs", onClick: () => setSearchQuery(""), styles: { root: { color: TEXT_DIMMED } } }, /* @__PURE__ */ React143.createElement(IconX8, { size: 12 })) : null,
15004
+ rightSection: searchQuery ? /* @__PURE__ */ React143.createElement(ActionIcon18, { variant: "subtle", size: "xs", onClick: () => setSearchQuery(""), styles: { root: { color: TEXT_DIMMED } } }, /* @__PURE__ */ React143.createElement(IconX8, { size: 12 })) : null,
14908
15005
  styles: {
14909
15006
  input: {
14910
15007
  backgroundColor: "var(--mantine-color-neutralColor-3)",
@@ -15031,7 +15128,7 @@ function DataInput({
15031
15128
  },
15032
15129
  rightSectionPointerEvents: "all",
15033
15130
  rightSectionWidth: containsReferences ? 52 : 28,
15034
- rightSection: /* @__PURE__ */ React144.createElement(Group44, { gap: 2, wrap: "nowrap" }, containsReferences && /* @__PURE__ */ React144.createElement(Tooltip11, { label: "Clear references", position: "top" }, /* @__PURE__ */ React144.createElement(ActionIcon18, { variant: "subtle", color: "gray", onClick: handleClearReferences, size: "xs" }, /* @__PURE__ */ React144.createElement(IconX9, { size: 12 }))), /* @__PURE__ */ React144.createElement(
15131
+ rightSection: /* @__PURE__ */ React144.createElement(Group44, { gap: 2, wrap: "nowrap" }, containsReferences && /* @__PURE__ */ React144.createElement(Tooltip12, { label: "Clear references", position: "top" }, /* @__PURE__ */ React144.createElement(ActionIcon19, { variant: "subtle", color: "gray", onClick: handleClearReferences, size: "xs" }, /* @__PURE__ */ React144.createElement(IconX9, { size: 12 }))), /* @__PURE__ */ React144.createElement(
15035
15132
  BlockPropSelector,
15036
15133
  {
15037
15134
  opened: selectorOpened,
@@ -15041,7 +15138,7 @@ function DataInput({
15041
15138
  currentBlockId,
15042
15139
  itemScope
15043
15140
  },
15044
- /* @__PURE__ */ React144.createElement(Tooltip11, { label: containsReferences ? "Add another reference" : "Insert block reference", position: "top" }, /* @__PURE__ */ React144.createElement(ActionIcon18, { variant: "subtle", color: containsReferences ? "teal" : "gray", onClick: handleOpenSelector, disabled, size: "xs" }, /* @__PURE__ */ React144.createElement(IconVariable, { size: 14 })))
15141
+ /* @__PURE__ */ React144.createElement(Tooltip12, { label: containsReferences ? "Add another reference" : "Insert block reference", position: "top" }, /* @__PURE__ */ React144.createElement(ActionIcon19, { variant: "subtle", color: containsReferences ? "teal" : "gray", onClick: handleOpenSelector, disabled, size: "xs" }, /* @__PURE__ */ React144.createElement(IconVariable, { size: 14 })))
15045
15142
  ))
15046
15143
  }
15047
15144
  )
@@ -15184,7 +15281,7 @@ var GeneralTab5 = ({
15184
15281
  currentBlockId: blockId,
15185
15282
  size: "sm"
15186
15283
  }
15187
- ), /* @__PURE__ */ React145.createElement(ActionIcon19, { color: "red", variant: "subtle", onClick: () => handleRemoveHeader(index) }, /* @__PURE__ */ React145.createElement(IconTrash2, { size: 16 }))))))), /* @__PURE__ */ React145.createElement(Divider10, { variant: "dashed" }), /* @__PURE__ */ React145.createElement(Stack104, { gap: "xs" }, /* @__PURE__ */ React145.createElement(Group45, { justify: "space-between" }, /* @__PURE__ */ React145.createElement(Text81, { size: "sm", fw: 600 }, "Request Body (JSON)"), /* @__PURE__ */ React145.createElement(Button23, { size: "xs", variant: "light", leftSection: /* @__PURE__ */ React145.createElement(IconPlus3, { size: 14 }), onClick: handleAddBodyField }, "Add Field")), /* @__PURE__ */ React145.createElement(Text81, { size: "xs" }, "Build your JSON request body as key-value pairs"), localBody.length > 0 && /* @__PURE__ */ React145.createElement(Stack104, { gap: "xs" }, localBody.map((field, index) => /* @__PURE__ */ React145.createElement(Paper9, { key: index, p: "xs" }, /* @__PURE__ */ React145.createElement(Group45, { gap: "xs", align: "flex-start" }, /* @__PURE__ */ React145.createElement(
15284
+ ), /* @__PURE__ */ React145.createElement(ActionIcon20, { color: "red", variant: "subtle", onClick: () => handleRemoveHeader(index) }, /* @__PURE__ */ React145.createElement(IconTrash2, { size: 16 }))))))), /* @__PURE__ */ React145.createElement(Divider10, { variant: "dashed" }), /* @__PURE__ */ React145.createElement(Stack104, { gap: "xs" }, /* @__PURE__ */ React145.createElement(Group45, { justify: "space-between" }, /* @__PURE__ */ React145.createElement(Text81, { size: "sm", fw: 600 }, "Request Body (JSON)"), /* @__PURE__ */ React145.createElement(Button23, { size: "xs", variant: "light", leftSection: /* @__PURE__ */ React145.createElement(IconPlus3, { size: 14 }), onClick: handleAddBodyField }, "Add Field")), /* @__PURE__ */ React145.createElement(Text81, { size: "xs" }, "Build your JSON request body as key-value pairs"), localBody.length > 0 && /* @__PURE__ */ React145.createElement(Stack104, { gap: "xs" }, localBody.map((field, index) => /* @__PURE__ */ React145.createElement(Paper9, { key: index, p: "xs" }, /* @__PURE__ */ React145.createElement(Group45, { gap: "xs", align: "flex-start" }, /* @__PURE__ */ React145.createElement(
15188
15285
  DataInput,
15189
15286
  {
15190
15287
  placeholder: "Field key (e.g., name)",
@@ -15204,12 +15301,12 @@ var GeneralTab5 = ({
15204
15301
  currentBlockId: blockId,
15205
15302
  size: "sm"
15206
15303
  }
15207
- ), /* @__PURE__ */ React145.createElement(ActionIcon19, { color: "red", variant: "subtle", onClick: () => handleRemoveBodyField(index) }, /* @__PURE__ */ React145.createElement(IconTrash2, { size: 16 }))))))));
15304
+ ), /* @__PURE__ */ React145.createElement(ActionIcon20, { color: "red", variant: "subtle", onClick: () => handleRemoveBodyField(index) }, /* @__PURE__ */ React145.createElement(IconTrash2, { size: 16 }))))))));
15208
15305
  };
15209
15306
 
15210
15307
  // src/mantine/blocks/apiRequest/template/ResponseSchemaTab.tsx
15211
15308
  import React146 from "react";
15212
- import { Stack as Stack105, Text as Text82, Button as Button24, Group as Group46, ActionIcon as ActionIcon20, Paper as Paper10, Alert as Alert19, Code as Code2 } from "@mantine/core";
15309
+ import { Stack as Stack105, Text as Text82, Button as Button24, Group as Group46, ActionIcon as ActionIcon21, Paper as Paper10, Alert as Alert19, Code as Code2 } from "@mantine/core";
15213
15310
  import { IconTrash as IconTrash3, IconPlus as IconPlus4, IconInfoCircle as IconInfoCircle2 } from "@tabler/icons-react";
15214
15311
  var ResponseSchemaTab = ({ schema, onSchemaChange, blockId }) => {
15215
15312
  const fields = schema?.fields || [];
@@ -15234,7 +15331,7 @@ var ResponseSchemaTab = ({ schema, onSchemaChange, blockId }) => {
15234
15331
  newFields[index] = { ...newFields[index], [key]: value };
15235
15332
  onSchemaChange({ fields: newFields });
15236
15333
  };
15237
- return /* @__PURE__ */ React146.createElement(Stack105, { gap: "lg" }, /* @__PURE__ */ React146.createElement(Alert19, { icon: /* @__PURE__ */ React146.createElement(IconInfoCircle2, { size: 16 }), title: "Response Schema", color: "blue" }, /* @__PURE__ */ React146.createElement(Text82, { size: "xs" }, "Define the expected structure of your API response. This allows other blocks to reference specific fields from the response data using the DataInput component.")), /* @__PURE__ */ React146.createElement(Stack105, { gap: "xs" }, /* @__PURE__ */ React146.createElement(Text82, { size: "sm", fw: 600 }, "How it works"), /* @__PURE__ */ React146.createElement(Text82, { size: "xs", c: "dimmed" }, "1. Define response fields using dot notation (e.g., ", /* @__PURE__ */ React146.createElement(Code2, null, "customer.email"), ")"), /* @__PURE__ */ React146.createElement(Text82, { size: "xs", c: "dimmed" }, "2. Fields become available in DataInput selectors across other blocks"), /* @__PURE__ */ React146.createElement(Text82, { size: "xs", c: "dimmed" }, "3. Reference them like: ", /* @__PURE__ */ React146.createElement(Code2, null, `{{${blockId}.response.customer.email}}`))), /* @__PURE__ */ React146.createElement(Stack105, { gap: "xs" }, /* @__PURE__ */ React146.createElement(Group46, { justify: "space-between" }, /* @__PURE__ */ React146.createElement(Text82, { size: "sm", fw: 600 }, "Response Fields"), /* @__PURE__ */ React146.createElement(Button24, { size: "xs", variant: "light", leftSection: /* @__PURE__ */ React146.createElement(IconPlus4, { size: 14 }), onClick: handleAddField }, "Add Field")), fields.length === 0 ? /* @__PURE__ */ React146.createElement(Code2, { p: "md" }, 'No response fields defined yet. Click "Add Field" to start defining your response structure.') : /* @__PURE__ */ React146.createElement(Stack105, { gap: "md" }, fields.map((field, index) => /* @__PURE__ */ React146.createElement(Paper10, { key: index, p: "md", withBorder: true }, /* @__PURE__ */ React146.createElement(Stack105, { gap: "sm" }, /* @__PURE__ */ React146.createElement(Group46, { justify: "space-between", align: "flex-start" }, /* @__PURE__ */ React146.createElement(Text82, { size: "sm", fw: 500 }, "Field ", index + 1), /* @__PURE__ */ React146.createElement(ActionIcon20, { color: "red", variant: "subtle", onClick: () => handleRemoveField(index) }, /* @__PURE__ */ React146.createElement(IconTrash3, { size: 16 }))), /* @__PURE__ */ React146.createElement(
15334
+ return /* @__PURE__ */ React146.createElement(Stack105, { gap: "lg" }, /* @__PURE__ */ React146.createElement(Alert19, { icon: /* @__PURE__ */ React146.createElement(IconInfoCircle2, { size: 16 }), title: "Response Schema", color: "blue" }, /* @__PURE__ */ React146.createElement(Text82, { size: "xs" }, "Define the expected structure of your API response. This allows other blocks to reference specific fields from the response data using the DataInput component.")), /* @__PURE__ */ React146.createElement(Stack105, { gap: "xs" }, /* @__PURE__ */ React146.createElement(Text82, { size: "sm", fw: 600 }, "How it works"), /* @__PURE__ */ React146.createElement(Text82, { size: "xs", c: "dimmed" }, "1. Define response fields using dot notation (e.g., ", /* @__PURE__ */ React146.createElement(Code2, null, "customer.email"), ")"), /* @__PURE__ */ React146.createElement(Text82, { size: "xs", c: "dimmed" }, "2. Fields become available in DataInput selectors across other blocks"), /* @__PURE__ */ React146.createElement(Text82, { size: "xs", c: "dimmed" }, "3. Reference them like: ", /* @__PURE__ */ React146.createElement(Code2, null, `{{${blockId}.response.customer.email}}`))), /* @__PURE__ */ React146.createElement(Stack105, { gap: "xs" }, /* @__PURE__ */ React146.createElement(Group46, { justify: "space-between" }, /* @__PURE__ */ React146.createElement(Text82, { size: "sm", fw: 600 }, "Response Fields"), /* @__PURE__ */ React146.createElement(Button24, { size: "xs", variant: "light", leftSection: /* @__PURE__ */ React146.createElement(IconPlus4, { size: 14 }), onClick: handleAddField }, "Add Field")), fields.length === 0 ? /* @__PURE__ */ React146.createElement(Code2, { p: "md" }, 'No response fields defined yet. Click "Add Field" to start defining your response structure.') : /* @__PURE__ */ React146.createElement(Stack105, { gap: "md" }, fields.map((field, index) => /* @__PURE__ */ React146.createElement(Paper10, { key: index, p: "md", withBorder: true }, /* @__PURE__ */ React146.createElement(Stack105, { gap: "sm" }, /* @__PURE__ */ React146.createElement(Group46, { justify: "space-between", align: "flex-start" }, /* @__PURE__ */ React146.createElement(Text82, { size: "sm", fw: 500 }, "Field ", index + 1), /* @__PURE__ */ React146.createElement(ActionIcon21, { color: "red", variant: "subtle", onClick: () => handleRemoveField(index) }, /* @__PURE__ */ React146.createElement(IconTrash3, { size: 16 }))), /* @__PURE__ */ React146.createElement(
15238
15335
  BaseTextInput,
15239
15336
  {
15240
15337
  label: "Field Path",
@@ -15544,7 +15641,7 @@ var ApiRequestFlowView = ({ editor, block, isDisabled }) => {
15544
15641
  [editor, block, disabled, isDisabled?.message]
15545
15642
  );
15546
15643
  const panelContent = useMemo51(
15547
- () => /* @__PURE__ */ React149.createElement(BaseRightPanelLayout, { stepTabs: true, onClose: closePanel, title: "API Request Settings", tabs, context: { editor, block } }),
15644
+ () => /* @__PURE__ */ React149.createElement(BaseRightPanelLayout, { stepTabs: true, showSettings: false, onClose: closePanel, title: "API Request Settings", tabs, context: { editor, block } }),
15548
15645
  [tabs, editor, block, closePanel]
15549
15646
  );
15550
15647
  const { open } = usePanel(panelId, panelContent);
@@ -15785,7 +15882,7 @@ import { createReactBlockSpec as createReactBlockSpec7 } from "@blocknote/react"
15785
15882
 
15786
15883
  // src/mantine/blocks/dynamicList/DynamicListBlock.tsx
15787
15884
  import React153, { useMemo as useMemo53, useState as useState61, useCallback as useCallback39, useEffect as useEffect49, useRef as useRef12 } from "react";
15788
- import { Box as Box34, Stack as Stack109, Text as Text86, Paper as Paper12, Group as Group50, Button as Button26, ActionIcon as ActionIcon21, Tooltip as Tooltip12, Code as Code5, Flex as Flex29, Collapse as Collapse5, Title as Title6, Badge as Badge20, TextInput as TextInput6, CloseButton as CloseButton3, Select as Select3, Menu as Menu2 } from "@mantine/core";
15885
+ import { Box as Box34, Stack as Stack109, Text as Text86, Paper as Paper12, Group as Group50, Button as Button26, ActionIcon as ActionIcon22, Tooltip as Tooltip13, Code as Code5, Flex as Flex29, Collapse as Collapse5, Title as Title6, Badge as Badge20, TextInput as TextInput6, CloseButton as CloseButton3, Select as Select3, Menu as Menu2 } from "@mantine/core";
15789
15886
  import { useDisclosure as useDisclosure5 } from "@mantine/hooks";
15790
15887
  import {
15791
15888
  IconCamera,
@@ -16237,7 +16334,7 @@ function DynamicListBlock({ block, editor }) {
16237
16334
  if (!listId) {
16238
16335
  return /* @__PURE__ */ React153.createElement(Paper12, { p: "xl", withBorder: true, w: "100%", radius: "lg" }, /* @__PURE__ */ React153.createElement(Stack109, { align: "center", gap: "sm" }, /* @__PURE__ */ React153.createElement(IconDatabase2, { size: 32, color: "var(--mantine-color-dimmed)" }), /* @__PURE__ */ React153.createElement(Text86, { fz: "18", ta: "center" }, "Dynamic List Block"), /* @__PURE__ */ React153.createElement(Text86, { fz: "sm", c: "dimmed", ta: "center" }, "This block will display dynamic data from AG-UI.", /* @__PURE__ */ React153.createElement("br", null), "Add a list from the AG-UI Canvas to populate it.")));
16239
16336
  }
16240
- return /* @__PURE__ */ React153.createElement(Stack109, { w: "100%" }, /* @__PURE__ */ React153.createElement(Flex29, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React153.createElement(Title6, { order: 4 }, title || "Dynamic List"), /* @__PURE__ */ React153.createElement(ActionIcon21, { variant: "subtle", size: "sm", onClick: toggle, "aria-label": opened ? "Collapse" : "Expand" }, opened ? /* @__PURE__ */ React153.createElement(IconChevronUp2, { size: 18 }) : /* @__PURE__ */ React153.createElement(IconChevronDown5, { size: 18 }))), /* @__PURE__ */ React153.createElement(Collapse5, { in: showInfo }, /* @__PURE__ */ React153.createElement(
16337
+ return /* @__PURE__ */ React153.createElement(Stack109, { w: "100%" }, /* @__PURE__ */ React153.createElement(Flex29, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React153.createElement(Title6, { order: 4 }, title || "Dynamic List"), /* @__PURE__ */ React153.createElement(ActionIcon22, { variant: "subtle", size: "sm", onClick: toggle, "aria-label": opened ? "Collapse" : "Expand" }, opened ? /* @__PURE__ */ React153.createElement(IconChevronUp2, { size: 18 }) : /* @__PURE__ */ React153.createElement(IconChevronDown5, { size: 18 }))), /* @__PURE__ */ React153.createElement(Collapse5, { in: showInfo }, /* @__PURE__ */ React153.createElement(
16241
16338
  Box34,
16242
16339
  {
16243
16340
  mx: 5,
@@ -16249,7 +16346,7 @@ function DynamicListBlock({ block, editor }) {
16249
16346
  border: "1px solid var(--mantine-color-dark-4)"
16250
16347
  }
16251
16348
  },
16252
- /* @__PURE__ */ React153.createElement(Flex29, { justify: "space-between", align: "flex-start", mb: "xs" }, /* @__PURE__ */ React153.createElement(Group50, { gap: "xs" }, /* @__PURE__ */ React153.createElement(IconInfoCircle3, { size: 14, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", fw: 500, c: "dimmed" }, "Data Source")), /* @__PURE__ */ React153.createElement(ActionIcon21, { variant: "subtle", size: "xs", onClick: () => setShowInfo(false), "aria-label": "Close info" }, /* @__PURE__ */ React153.createElement(IconX10, { size: 14 }))),
16349
+ /* @__PURE__ */ React153.createElement(Flex29, { justify: "space-between", align: "flex-start", mb: "xs" }, /* @__PURE__ */ React153.createElement(Group50, { gap: "xs" }, /* @__PURE__ */ React153.createElement(IconInfoCircle3, { size: 14, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", fw: 500, c: "dimmed" }, "Data Source")), /* @__PURE__ */ React153.createElement(ActionIcon22, { variant: "subtle", size: "xs", onClick: () => setShowInfo(false), "aria-label": "Close info" }, /* @__PURE__ */ React153.createElement(IconX10, { size: 14 }))),
16253
16350
  /* @__PURE__ */ React153.createElement(Stack109, { gap: 6 }, parsedDataSource?.oracleName && /* @__PURE__ */ React153.createElement(Group50, { gap: "xs" }, /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", c: "dimmed", w: 70 }, "Oracle:"), /* @__PURE__ */ React153.createElement(Text86, { fz: "xs" }, parsedDataSource.oracleName)), parsedDataSource?.oracleDid && /* @__PURE__ */ React153.createElement(Group50, { gap: "xs" }, /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", c: "dimmed", w: 70 }, "DID:"), /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", style: { wordBreak: "break-all" } }, parsedDataSource.oracleDid)), parsedDataSource?.toolName && /* @__PURE__ */ React153.createElement(Group50, { gap: "xs" }, /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", c: "dimmed", w: 70 }, "Tool:"), /* @__PURE__ */ React153.createElement(Text86, { fz: "xs" }, parsedDataSource.toolName)), parsedDataSource?.query && /* @__PURE__ */ React153.createElement(Box34, null, /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", c: "dimmed", mb: 4 }, "Query:"), /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", style: { whiteSpace: "pre-wrap" } }, parsedDataSource.query)), parsedDataSource?.description && /* @__PURE__ */ React153.createElement(Box34, null, /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", c: "dimmed", mb: 4 }, "Description:"), /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", fs: "italic" }, parsedDataSource.description)), parsedDataSource?.params && Object.keys(parsedDataSource.params).length > 0 && /* @__PURE__ */ React153.createElement(Box34, null, /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", c: "dimmed", mb: 4 }, "Params:"), /* @__PURE__ */ React153.createElement(Code5, { block: true, style: { fontSize: "11px", whiteSpace: "pre-wrap" } }, JSON.stringify(parsedDataSource.params, null, 2))))
16254
16351
  )), /* @__PURE__ */ React153.createElement(Collapse5, { pb: 5, px: 5, in: opened }, /* @__PURE__ */ React153.createElement(Stack109, { w: "100%" }, /* @__PURE__ */ React153.createElement(Collapse5, { in: showSearch }, /* @__PURE__ */ React153.createElement(Flex29, { gap: "xs", align: "center" }, /* @__PURE__ */ React153.createElement(
16255
16352
  TextInput6,
@@ -16272,7 +16369,7 @@ function DynamicListBlock({ block, editor }) {
16272
16369
  }
16273
16370
  }
16274
16371
  }
16275
- ), /* @__PURE__ */ React153.createElement(ActionIcon21, { variant: "subtle", size: "sm", onClick: handleSearchToggle, "aria-label": "Close search", title: "Close search" }, /* @__PURE__ */ React153.createElement(IconChevronUp2, { size: 16 })))), sortConfig && /* @__PURE__ */ React153.createElement(Flex29, { align: "center", gap: "xs" }, /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", c: "dimmed" }, "Sorted by ", parsedColumns.find((c) => c.key === sortConfig.key)?.label || sortConfig.key), sortConfig.direction === "asc" ? /* @__PURE__ */ React153.createElement(IconArrowUp4, { size: 14 }) : /* @__PURE__ */ React153.createElement(IconArrowDown3, { size: 14 })), hasData && /* @__PURE__ */ React153.createElement(Flex29, { justify: "space-between", align: "center" }, /* @__PURE__ */ React153.createElement(Group50, { gap: "xs" }, /* @__PURE__ */ React153.createElement(Text86, { fz: "sm", c: "dimmed" }, totalItems, " ", totalItems === 1 ? "item" : "items", searchQuery && rawData && ` of ${rawData.length}`, selectedIds.size > 0 && ` \u2022 ${selectedIds.size} selected`), useSnapshot && snapshotTimestamp && /* @__PURE__ */ React153.createElement(Tooltip12, { label: `Snapshot from ${new Date(snapshotTimestamp).toLocaleString()}` }, /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", c: "yellow", style: { cursor: "help" } }, "(snapshot)")), useSnapshot && !snapshotTimestamp && /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", c: "yellow" }, "(snapshot)"), !useSnapshot && /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", c: "green" }, "(live)")), /* @__PURE__ */ React153.createElement(Group50, { gap: "xs" }, editable && /* @__PURE__ */ React153.createElement(React153.Fragment, null, useSnapshot && liveData.items && liveData.items.length > 0 && /* @__PURE__ */ React153.createElement(Button26, { size: "compact-xs", variant: "subtle", onClick: handleUseLiveData, leftSection: /* @__PURE__ */ React153.createElement(IconRefresh3, { size: 12 }) }, "Use Live"), !useSnapshot && hasSnapshot && /* @__PURE__ */ React153.createElement(Button26, { size: "compact-xs", variant: "subtle", onClick: handleUseSnapshot, leftSection: /* @__PURE__ */ React153.createElement(IconCamera, { size: 12 }) }, "Use Snapshot"), !useSnapshot && liveData.items && liveData.items.length > 0 && /* @__PURE__ */ React153.createElement(Tooltip12, { label: "Save current data as snapshot" }, /* @__PURE__ */ React153.createElement(ActionIcon21, { variant: "subtle", size: "sm", onClick: handleSaveSnapshot }, /* @__PURE__ */ React153.createElement(IconCamera, { size: 16 })))), /* @__PURE__ */ React153.createElement(
16372
+ ), /* @__PURE__ */ React153.createElement(ActionIcon22, { variant: "subtle", size: "sm", onClick: handleSearchToggle, "aria-label": "Close search", title: "Close search" }, /* @__PURE__ */ React153.createElement(IconChevronUp2, { size: 16 })))), sortConfig && /* @__PURE__ */ React153.createElement(Flex29, { align: "center", gap: "xs" }, /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", c: "dimmed" }, "Sorted by ", parsedColumns.find((c) => c.key === sortConfig.key)?.label || sortConfig.key), sortConfig.direction === "asc" ? /* @__PURE__ */ React153.createElement(IconArrowUp4, { size: 14 }) : /* @__PURE__ */ React153.createElement(IconArrowDown3, { size: 14 })), hasData && /* @__PURE__ */ React153.createElement(Flex29, { justify: "space-between", align: "center" }, /* @__PURE__ */ React153.createElement(Group50, { gap: "xs" }, /* @__PURE__ */ React153.createElement(Text86, { fz: "sm", c: "dimmed" }, totalItems, " ", totalItems === 1 ? "item" : "items", searchQuery && rawData && ` of ${rawData.length}`, selectedIds.size > 0 && ` \u2022 ${selectedIds.size} selected`), useSnapshot && snapshotTimestamp && /* @__PURE__ */ React153.createElement(Tooltip13, { label: `Snapshot from ${new Date(snapshotTimestamp).toLocaleString()}` }, /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", c: "yellow", style: { cursor: "help" } }, "(snapshot)")), useSnapshot && !snapshotTimestamp && /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", c: "yellow" }, "(snapshot)"), !useSnapshot && /* @__PURE__ */ React153.createElement(Text86, { fz: "xs", c: "green" }, "(live)")), /* @__PURE__ */ React153.createElement(Group50, { gap: "xs" }, editable && /* @__PURE__ */ React153.createElement(React153.Fragment, null, useSnapshot && liveData.items && liveData.items.length > 0 && /* @__PURE__ */ React153.createElement(Button26, { size: "compact-xs", variant: "subtle", onClick: handleUseLiveData, leftSection: /* @__PURE__ */ React153.createElement(IconRefresh3, { size: 12 }) }, "Use Live"), !useSnapshot && hasSnapshot && /* @__PURE__ */ React153.createElement(Button26, { size: "compact-xs", variant: "subtle", onClick: handleUseSnapshot, leftSection: /* @__PURE__ */ React153.createElement(IconCamera, { size: 12 }) }, "Use Snapshot"), !useSnapshot && liveData.items && liveData.items.length > 0 && /* @__PURE__ */ React153.createElement(Tooltip13, { label: "Save current data as snapshot" }, /* @__PURE__ */ React153.createElement(ActionIcon22, { variant: "subtle", size: "sm", onClick: handleSaveSnapshot }, /* @__PURE__ */ React153.createElement(IconCamera, { size: 16 })))), /* @__PURE__ */ React153.createElement(
16276
16373
  Menu2,
16277
16374
  {
16278
16375
  shadow: "md",
@@ -16300,7 +16397,7 @@ function DynamicListBlock({ block, editor }) {
16300
16397
  }
16301
16398
  }
16302
16399
  },
16303
- /* @__PURE__ */ React153.createElement(Menu2.Target, null, /* @__PURE__ */ React153.createElement(ActionIcon21, { variant: "subtle", size: "sm", "aria-label": "List actions", title: "List actions" }, /* @__PURE__ */ React153.createElement(IconAdjustmentsHorizontal3, { size: 18 }))),
16400
+ /* @__PURE__ */ React153.createElement(Menu2.Target, null, /* @__PURE__ */ React153.createElement(ActionIcon22, { variant: "subtle", size: "sm", "aria-label": "List actions", title: "List actions" }, /* @__PURE__ */ React153.createElement(IconAdjustmentsHorizontal3, { size: 18 }))),
16304
16401
  /* @__PURE__ */ React153.createElement(Menu2.Dropdown, null, sortOptions.length > 0 && /* @__PURE__ */ React153.createElement(React153.Fragment, null, /* @__PURE__ */ React153.createElement(Menu2.Label, { onClick: () => setOrderByCollapsed(!orderByCollapsed), style: { cursor: "pointer" } }, /* @__PURE__ */ React153.createElement(Flex29, { align: "center", gap: 10 }, orderByCollapsed ? /* @__PURE__ */ React153.createElement(IconChevronRight5, { size: 14 }) : /* @__PURE__ */ React153.createElement(IconChevronDown5, { size: 14 }), /* @__PURE__ */ React153.createElement(Text86, { fz: "14" }, "Order By"))), /* @__PURE__ */ React153.createElement(Collapse5, { in: !orderByCollapsed }, sortOptions.map((opt) => {
16305
16402
  const isAscActive = sortConfig?.key === opt.key && sortConfig?.direction === "asc";
16306
16403
  const isDescActive = sortConfig?.key === opt.key && sortConfig?.direction === "desc";
@@ -16318,7 +16415,7 @@ function DynamicListBlock({ block, editor }) {
16318
16415
  }
16319
16416
  },
16320
16417
  /* @__PURE__ */ React153.createElement(Flex29, { align: "center", justify: "space-between", gap: "xs" }, /* @__PURE__ */ React153.createElement(
16321
- ActionIcon21,
16418
+ ActionIcon22,
16322
16419
  {
16323
16420
  variant: "subtle",
16324
16421
  size: "xs",
@@ -16336,7 +16433,7 @@ function DynamicListBlock({ block, editor }) {
16336
16433
  },
16337
16434
  /* @__PURE__ */ React153.createElement(IconArrowUp4, { size: 14 })
16338
16435
  ), /* @__PURE__ */ React153.createElement(Text86, { fz: "sm", style: { flex: 1, textAlign: "center" } }, opt.label), /* @__PURE__ */ React153.createElement(
16339
- ActionIcon21,
16436
+ ActionIcon22,
16340
16437
  {
16341
16438
  variant: "subtle",
16342
16439
  size: "xs",
@@ -16459,7 +16556,7 @@ import { IconPlus as IconPlus5, IconMail as IconMail4, IconLink as IconLink3 } f
16459
16556
 
16460
16557
  // src/mantine/components/HookedActionsTab/ActionInstanceCard.tsx
16461
16558
  import React155, { useCallback as useCallback40, useState as useState62, useEffect as useEffect50 } from "react";
16462
- import { Card as Card18, Stack as Stack110, Group as Group51, Text as Text87, ActionIcon as ActionIcon22, Switch as Switch4, Badge as Badge21, Divider as Divider13, Loader as Loader22 } from "@mantine/core";
16559
+ import { Card as Card18, Stack as Stack110, Group as Group51, Text as Text87, ActionIcon as ActionIcon23, Switch as Switch4, Badge as Badge21, Divider as Divider13, Loader as Loader22 } from "@mantine/core";
16463
16560
  import { IconTrash as IconTrash4, IconMail as IconMail3, IconLink as IconLink2 } from "@tabler/icons-react";
16464
16561
 
16465
16562
  // src/mantine/blocks/email/utils/extractHandlebars.ts
@@ -16664,7 +16761,7 @@ var ActionInstanceCard = ({ instance, actionType, payloadFields, availableBlocks
16664
16761
  }
16665
16762
  }
16666
16763
  }
16667
- ), /* @__PURE__ */ React155.createElement(ActionIcon22, { variant: "subtle", color: "red", size: "sm", onClick: onRemove, style: { color: "var(--mantine-color-red-5)" } }, /* @__PURE__ */ React155.createElement(IconTrash4, { size: 14 })))), /* @__PURE__ */ React155.createElement(Stack110, { gap: "sm" }, actionType.configSchema.map(renderConfigField)), instance.type === "sendEmail" && instance.config.templateName && /* @__PURE__ */ React155.createElement(React155.Fragment, null, /* @__PURE__ */ React155.createElement(Divider13, { color: "var(--mantine-color-neutralColor-4)" }), /* @__PURE__ */ React155.createElement(Stack110, { gap: "sm" }, /* @__PURE__ */ React155.createElement(Group51, { justify: "space-between", align: "center" }, /* @__PURE__ */ React155.createElement(Text87, { size: "sm", fw: 500, c: "var(--mantine-color-text)", style: { opacity: 0.7 } }, "Template Variables"), templateVariables.length > 0 && /* @__PURE__ */ React155.createElement(
16764
+ ), /* @__PURE__ */ React155.createElement(ActionIcon23, { variant: "subtle", color: "red", size: "sm", onClick: onRemove, style: { color: "var(--mantine-color-red-5)" } }, /* @__PURE__ */ React155.createElement(IconTrash4, { size: 14 })))), /* @__PURE__ */ React155.createElement(Stack110, { gap: "sm" }, actionType.configSchema.map(renderConfigField)), instance.type === "sendEmail" && instance.config.templateName && /* @__PURE__ */ React155.createElement(React155.Fragment, null, /* @__PURE__ */ React155.createElement(Divider13, { color: "var(--mantine-color-neutralColor-4)" }), /* @__PURE__ */ React155.createElement(Stack110, { gap: "sm" }, /* @__PURE__ */ React155.createElement(Group51, { justify: "space-between", align: "center" }, /* @__PURE__ */ React155.createElement(Text87, { size: "sm", fw: 500, c: "var(--mantine-color-text)", style: { opacity: 0.7 } }, "Template Variables"), templateVariables.length > 0 && /* @__PURE__ */ React155.createElement(
16668
16765
  Badge21,
16669
16766
  {
16670
16767
  size: "sm",
@@ -17048,7 +17145,7 @@ function useNodeContext(editor, nodeId) {
17048
17145
  // src/mantine/blocks/enumChecklist/EnumChecklistBlock.tsx
17049
17146
  import React163, { useState as useState66, useEffect as useEffect53, useMemo as useMemo55, useCallback as useCallback43 } from "react";
17050
17147
  import { createReactBlockSpec as createReactBlockSpec8 } from "@blocknote/react";
17051
- import { Stack as Stack117, Text as Text94, Button as Button32, ActionIcon as ActionIcon23, Center as Center10, Flex as Flex31 } from "@mantine/core";
17148
+ import { Stack as Stack117, Text as Text94, Button as Button32, ActionIcon as ActionIcon24, Center as Center10, Flex as Flex31 } from "@mantine/core";
17052
17149
 
17053
17150
  // src/mantine/blocks/enumChecklist/oracle_personalities/index.tsx
17054
17151
  import React157 from "react";
@@ -17509,7 +17606,7 @@ var EnumChecklistBlockContent = ({ block, editor }) => {
17509
17606
  return null;
17510
17607
  }
17511
17608
  };
17512
- return /* @__PURE__ */ React163.createElement(Stack117, { w: "100%" }, listType && /* @__PURE__ */ React163.createElement(Flex31, { align: "center", justify: "space-between", gap: "xs" }, /* @__PURE__ */ React163.createElement(Text94, null, getEnumListNameByType(listType)), listConfig.listSelectionMode && /* @__PURE__ */ React163.createElement(Text94, { lh: 0.5, c: "dimmed" }, listConfig?.selection_mode === "single" ? "Single Selection" : "Multi Selection"), editable && /* @__PURE__ */ React163.createElement(Flex31, { justify: listType ? "space-between" : "flex-end" }, /* @__PURE__ */ React163.createElement(Flex31, { gap: "xs" }, /* @__PURE__ */ React163.createElement(ActionIcon23, { variant: "subtle", size: "sm", onClick: () => setModalOpened(true) }, /* @__PURE__ */ React163.createElement(IconSettings8, null))))), /* @__PURE__ */ React163.createElement(Flex31, { flex: 1 }, !listType ? /* @__PURE__ */ React163.createElement(Center10, { py: "xl" }, /* @__PURE__ */ React163.createElement(Stack117, { align: "center", gap: "sm" }, /* @__PURE__ */ React163.createElement(Text94, { size: "sm", c: "dimmed", ta: "center" }, "No list type configured"), /* @__PURE__ */ React163.createElement(Button32, { size: "sm", variant: "light", onClick: () => setModalOpened(true) }, "Configure List"))) : /* @__PURE__ */ React163.createElement(Stack117, { gap: "md", flex: 1 }, renderListComponent())), /* @__PURE__ */ React163.createElement(
17609
+ return /* @__PURE__ */ React163.createElement(Stack117, { w: "100%" }, listType && /* @__PURE__ */ React163.createElement(Flex31, { align: "center", justify: "space-between", gap: "xs" }, /* @__PURE__ */ React163.createElement(Text94, null, getEnumListNameByType(listType)), listConfig.listSelectionMode && /* @__PURE__ */ React163.createElement(Text94, { lh: 0.5, c: "dimmed" }, listConfig?.selection_mode === "single" ? "Single Selection" : "Multi Selection"), editable && /* @__PURE__ */ React163.createElement(Flex31, { justify: listType ? "space-between" : "flex-end" }, /* @__PURE__ */ React163.createElement(Flex31, { gap: "xs" }, /* @__PURE__ */ React163.createElement(ActionIcon24, { variant: "subtle", size: "sm", onClick: () => setModalOpened(true) }, /* @__PURE__ */ React163.createElement(IconSettings8, null))))), /* @__PURE__ */ React163.createElement(Flex31, { flex: 1 }, !listType ? /* @__PURE__ */ React163.createElement(Center10, { py: "xl" }, /* @__PURE__ */ React163.createElement(Stack117, { align: "center", gap: "sm" }, /* @__PURE__ */ React163.createElement(Text94, { size: "sm", c: "dimmed", ta: "center" }, "No list type configured"), /* @__PURE__ */ React163.createElement(Button32, { size: "sm", variant: "light", onClick: () => setModalOpened(true) }, "Configure List"))) : /* @__PURE__ */ React163.createElement(Stack117, { gap: "md", flex: 1 }, renderListComponent())), /* @__PURE__ */ React163.createElement(
17513
17610
  EnumChecklistConfigModal,
17514
17611
  {
17515
17612
  opened: modalOpened,
@@ -17562,7 +17659,7 @@ import { IconSettings as IconSettings9 } from "@tabler/icons-react";
17562
17659
 
17563
17660
  // src/mantine/blocks/notify/template/GeneralTab.tsx
17564
17661
  import React164, { useEffect as useEffect54, useState as useState67 } from "react";
17565
- import { Divider as Divider14, Stack as Stack118, Text as Text95, Group as Group57, ActionIcon as ActionIcon24, Paper as Paper13 } from "@mantine/core";
17662
+ import { Divider as Divider14, Stack as Stack118, Text as Text95, Group as Group57, ActionIcon as ActionIcon25, Paper as Paper13 } from "@mantine/core";
17566
17663
  import { IconTrash as IconTrash5 } from "@tabler/icons-react";
17567
17664
  var GeneralTab6 = ({
17568
17665
  title,
@@ -17689,7 +17786,7 @@ var GeneralTab6 = ({
17689
17786
  currentBlockId: blockId,
17690
17787
  size: "sm"
17691
17788
  }
17692
- ), /* @__PURE__ */ React164.createElement(ActionIcon24, { color: "red", variant: "light", onClick: () => handleRemoveRecipient("to", index) }, /* @__PURE__ */ React164.createElement(IconTrash5, { size: 16 }))))))), /* @__PURE__ */ React164.createElement(Stack118, { gap: "xs" }, /* @__PURE__ */ React164.createElement(Group57, { justify: "space-between" }, /* @__PURE__ */ React164.createElement(Text95, { size: "sm", fw: 600 }, "CC (Optional)"), /* @__PURE__ */ React164.createElement(BaseButton, { leftSection: getIcon("plus", "plus", "black"), onClick: () => handleAddRecipient("cc") }, "Add")), localCc.length > 0 && /* @__PURE__ */ React164.createElement(Stack118, { gap: "xs" }, localCc.map((recipient, index) => /* @__PURE__ */ React164.createElement(Paper13, { key: index, p: "xs", withBorder: true }, /* @__PURE__ */ React164.createElement(Group57, { gap: "xs", wrap: "nowrap", align: "flex-start" }, /* @__PURE__ */ React164.createElement(
17789
+ ), /* @__PURE__ */ React164.createElement(ActionIcon25, { color: "red", variant: "light", onClick: () => handleRemoveRecipient("to", index) }, /* @__PURE__ */ React164.createElement(IconTrash5, { size: 16 }))))))), /* @__PURE__ */ React164.createElement(Stack118, { gap: "xs" }, /* @__PURE__ */ React164.createElement(Group57, { justify: "space-between" }, /* @__PURE__ */ React164.createElement(Text95, { size: "sm", fw: 600 }, "CC (Optional)"), /* @__PURE__ */ React164.createElement(BaseButton, { leftSection: getIcon("plus", "plus", "black"), onClick: () => handleAddRecipient("cc") }, "Add")), localCc.length > 0 && /* @__PURE__ */ React164.createElement(Stack118, { gap: "xs" }, localCc.map((recipient, index) => /* @__PURE__ */ React164.createElement(Paper13, { key: index, p: "xs", withBorder: true }, /* @__PURE__ */ React164.createElement(Group57, { gap: "xs", wrap: "nowrap", align: "flex-start" }, /* @__PURE__ */ React164.createElement(
17693
17790
  DataInput,
17694
17791
  {
17695
17792
  placeholder: "email@example.com or reference",
@@ -17699,7 +17796,7 @@ var GeneralTab6 = ({
17699
17796
  currentBlockId: blockId,
17700
17797
  size: "sm"
17701
17798
  }
17702
- ), /* @__PURE__ */ React164.createElement(ActionIcon24, { color: "red", variant: "light", onClick: () => handleRemoveRecipient("cc", index) }, /* @__PURE__ */ React164.createElement(IconTrash5, { size: 16 }))))))), /* @__PURE__ */ React164.createElement(Stack118, { gap: "xs" }, /* @__PURE__ */ React164.createElement(Group57, { justify: "space-between" }, /* @__PURE__ */ React164.createElement(Text95, { size: "sm", fw: 600 }, "BCC (Optional)"), /* @__PURE__ */ React164.createElement(BaseButton, { leftSection: getIcon("plus", "plus", "black"), onClick: () => handleAddRecipient("bcc") }, "Add")), localBcc.length > 0 && /* @__PURE__ */ React164.createElement(Stack118, { gap: "xs" }, localBcc.map((recipient, index) => /* @__PURE__ */ React164.createElement(Paper13, { key: index, p: "xs", withBorder: true }, /* @__PURE__ */ React164.createElement(Group57, { gap: "xs", wrap: "nowrap", align: "flex-start" }, /* @__PURE__ */ React164.createElement(
17799
+ ), /* @__PURE__ */ React164.createElement(ActionIcon25, { color: "red", variant: "light", onClick: () => handleRemoveRecipient("cc", index) }, /* @__PURE__ */ React164.createElement(IconTrash5, { size: 16 }))))))), /* @__PURE__ */ React164.createElement(Stack118, { gap: "xs" }, /* @__PURE__ */ React164.createElement(Group57, { justify: "space-between" }, /* @__PURE__ */ React164.createElement(Text95, { size: "sm", fw: 600 }, "BCC (Optional)"), /* @__PURE__ */ React164.createElement(BaseButton, { leftSection: getIcon("plus", "plus", "black"), onClick: () => handleAddRecipient("bcc") }, "Add")), localBcc.length > 0 && /* @__PURE__ */ React164.createElement(Stack118, { gap: "xs" }, localBcc.map((recipient, index) => /* @__PURE__ */ React164.createElement(Paper13, { key: index, p: "xs", withBorder: true }, /* @__PURE__ */ React164.createElement(Group57, { gap: "xs", wrap: "nowrap", align: "flex-start" }, /* @__PURE__ */ React164.createElement(
17703
17800
  DataInput,
17704
17801
  {
17705
17802
  placeholder: "email@example.com or reference",
@@ -17709,7 +17806,7 @@ var GeneralTab6 = ({
17709
17806
  currentBlockId: blockId,
17710
17807
  size: "sm"
17711
17808
  }
17712
- ), /* @__PURE__ */ React164.createElement(ActionIcon24, { color: "red", variant: "light", onClick: () => handleRemoveRecipient("bcc", index) }, /* @__PURE__ */ React164.createElement(IconTrash5, { size: 16 }))))))), /* @__PURE__ */ React164.createElement(Divider14, { variant: "dashed" }), /* @__PURE__ */ React164.createElement(Stack118, { gap: "xs" }, /* @__PURE__ */ React164.createElement(
17809
+ ), /* @__PURE__ */ React164.createElement(ActionIcon25, { color: "red", variant: "light", onClick: () => handleRemoveRecipient("bcc", index) }, /* @__PURE__ */ React164.createElement(IconTrash5, { size: 16 }))))))), /* @__PURE__ */ React164.createElement(Divider14, { variant: "dashed" }), /* @__PURE__ */ React164.createElement(Stack118, { gap: "xs" }, /* @__PURE__ */ React164.createElement(
17713
17810
  BaseTextInput,
17714
17811
  {
17715
17812
  label: "From (Optional)",
@@ -17890,7 +17987,7 @@ var NotifyTemplateView = ({ editor, block }) => {
17890
17987
 
17891
17988
  // src/mantine/blocks/notify/flow/FlowView.tsx
17892
17989
  import React167, { useState as useState68 } from "react";
17893
- import { Group as Group59, Stack as Stack120, Text as Text97, ActionIcon as ActionIcon25, Tooltip as Tooltip13, Button as Button33, Badge as Badge24, Collapse as Collapse6, Alert as Alert22, Loader as Loader23, Code as Code6 } from "@mantine/core";
17990
+ import { Group as Group59, Stack as Stack120, Text as Text97, ActionIcon as ActionIcon26, Tooltip as Tooltip14, Button as Button33, Badge as Badge24, Collapse as Collapse6, Alert as Alert22, Loader as Loader23, Code as Code6 } from "@mantine/core";
17894
17991
  import { IconSend as IconSend3, IconChevronDown as IconChevronDown6, IconChevronUp as IconChevronUp3, IconCheck as IconCheck6, IconX as IconX11 } from "@tabler/icons-react";
17895
17992
  var NotifyFlowView = ({ editor, block, isDisabled }) => {
17896
17993
  const disabled = isDisabled?.isDisabled === "disable";
@@ -18018,7 +18115,7 @@ var NotifyFlowView = ({ editor, block, isDisabled }) => {
18018
18115
  },
18019
18116
  isLoading ? "Sending..." : status === "sent" ? "Sent" : "Send"
18020
18117
  );
18021
- return /* @__PURE__ */ React167.createElement(BaseContainer, { blockId: block.id }, /* @__PURE__ */ React167.createElement(Stack120, { gap: "md" }, /* @__PURE__ */ React167.createElement(Group59, { wrap: "nowrap", justify: "space-between", align: "flex-start" }, /* @__PURE__ */ React167.createElement(Group59, { wrap: "nowrap", align: "flex-start", style: { flex: 1 } }, getIcon("bell", block.props.icon), /* @__PURE__ */ React167.createElement(Stack120, { gap: "xs", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React167.createElement(Group59, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React167.createElement(Badge24, { size: "sm", variant: "filled", color: getChannelColor(channel) }, channel.toUpperCase()), /* @__PURE__ */ React167.createElement(Text97, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Notification"), status !== "idle" && /* @__PURE__ */ React167.createElement(Badge24, { size: "xs", variant: "dot", color: getStatusColor5(status) }, status)), /* @__PURE__ */ React167.createElement(Text97, { size: "xs", c: "dimmed", contentEditable: false, lineClamp: 1 }, to.length > 0 ? `To: ${to.slice(0, 2).join(", ")}${to.length > 2 ? ` +${to.length - 2} more` : ""}` : "No recipients"), block.props.description && /* @__PURE__ */ React167.createElement(Text97, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description))), /* @__PURE__ */ React167.createElement(Group59, { gap: "xs", style: { flexShrink: 0 } }, disabled && isDisabled?.message ? /* @__PURE__ */ React167.createElement(Tooltip13, { label: isDisabled.message, position: "left", withArrow: true }, sendButton) : sendButton, /* @__PURE__ */ React167.createElement(ActionIcon25, { variant: "subtle", onClick: () => setShowDetails(!showDetails) }, showDetails ? /* @__PURE__ */ React167.createElement(IconChevronUp3, { size: 16 }) : /* @__PURE__ */ React167.createElement(IconChevronDown6, { size: 16 })))), status === "failed" && runtime.error?.message && /* @__PURE__ */ React167.createElement(Alert22, { color: "red", icon: /* @__PURE__ */ React167.createElement(IconX11, { size: 16 }), title: "Failed to send", styles: { message: { fontSize: "12px" } } }, runtime.error.message), status === "sent" && runtime.output?.notify?.messageId && /* @__PURE__ */ React167.createElement(Alert22, { color: "green", icon: /* @__PURE__ */ React167.createElement(IconCheck6, { size: 16 }), title: "Sent successfully", styles: { message: { fontSize: "12px" } } }, "Message ID: ", runtime.output.notify.messageId, runtime.output.notify.sentAt && /* @__PURE__ */ React167.createElement(React167.Fragment, null, /* @__PURE__ */ React167.createElement("br", null), "Sent at: ", new Date(runtime.output.notify.sentAt).toLocaleString())), /* @__PURE__ */ React167.createElement(Collapse6, { in: showDetails }, /* @__PURE__ */ React167.createElement(Stack120, { gap: "md" }, channel === "email" && /* @__PURE__ */ React167.createElement(React167.Fragment, null, /* @__PURE__ */ React167.createElement(Stack120, { gap: "xs" }, /* @__PURE__ */ React167.createElement(Text97, { size: "xs", fw: 600, c: "dimmed" }, "Recipients:"), /* @__PURE__ */ React167.createElement(Code6, { block: true, style: { fontSize: "11px" } }, JSON.stringify(
18118
+ return /* @__PURE__ */ React167.createElement(BaseContainer, { blockId: block.id }, /* @__PURE__ */ React167.createElement(Stack120, { gap: "md" }, /* @__PURE__ */ React167.createElement(Group59, { wrap: "nowrap", justify: "space-between", align: "flex-start" }, /* @__PURE__ */ React167.createElement(Group59, { wrap: "nowrap", align: "flex-start", style: { flex: 1 } }, getIcon("bell", block.props.icon), /* @__PURE__ */ React167.createElement(Stack120, { gap: "xs", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React167.createElement(Group59, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React167.createElement(Badge24, { size: "sm", variant: "filled", color: getChannelColor(channel) }, channel.toUpperCase()), /* @__PURE__ */ React167.createElement(Text97, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Notification"), status !== "idle" && /* @__PURE__ */ React167.createElement(Badge24, { size: "xs", variant: "dot", color: getStatusColor5(status) }, status)), /* @__PURE__ */ React167.createElement(Text97, { size: "xs", c: "dimmed", contentEditable: false, lineClamp: 1 }, to.length > 0 ? `To: ${to.slice(0, 2).join(", ")}${to.length > 2 ? ` +${to.length - 2} more` : ""}` : "No recipients"), block.props.description && /* @__PURE__ */ React167.createElement(Text97, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description))), /* @__PURE__ */ React167.createElement(Group59, { gap: "xs", style: { flexShrink: 0 } }, disabled && isDisabled?.message ? /* @__PURE__ */ React167.createElement(Tooltip14, { label: isDisabled.message, position: "left", withArrow: true }, sendButton) : sendButton, /* @__PURE__ */ React167.createElement(ActionIcon26, { variant: "subtle", onClick: () => setShowDetails(!showDetails) }, showDetails ? /* @__PURE__ */ React167.createElement(IconChevronUp3, { size: 16 }) : /* @__PURE__ */ React167.createElement(IconChevronDown6, { size: 16 })))), status === "failed" && runtime.error?.message && /* @__PURE__ */ React167.createElement(Alert22, { color: "red", icon: /* @__PURE__ */ React167.createElement(IconX11, { size: 16 }), title: "Failed to send", styles: { message: { fontSize: "12px" } } }, runtime.error.message), status === "sent" && runtime.output?.notify?.messageId && /* @__PURE__ */ React167.createElement(Alert22, { color: "green", icon: /* @__PURE__ */ React167.createElement(IconCheck6, { size: 16 }), title: "Sent successfully", styles: { message: { fontSize: "12px" } } }, "Message ID: ", runtime.output.notify.messageId, runtime.output.notify.sentAt && /* @__PURE__ */ React167.createElement(React167.Fragment, null, /* @__PURE__ */ React167.createElement("br", null), "Sent at: ", new Date(runtime.output.notify.sentAt).toLocaleString())), /* @__PURE__ */ React167.createElement(Collapse6, { in: showDetails }, /* @__PURE__ */ React167.createElement(Stack120, { gap: "md" }, channel === "email" && /* @__PURE__ */ React167.createElement(React167.Fragment, null, /* @__PURE__ */ React167.createElement(Stack120, { gap: "xs" }, /* @__PURE__ */ React167.createElement(Text97, { size: "xs", fw: 600, c: "dimmed" }, "Recipients:"), /* @__PURE__ */ React167.createElement(Code6, { block: true, style: { fontSize: "11px" } }, JSON.stringify(
18022
18119
  {
18023
18120
  to: to.filter((e) => e.trim() !== ""),
18024
18121
  ...cc.length > 0 && { cc: cc.filter((e) => e.trim() !== "") },
@@ -18646,7 +18743,7 @@ var DomainCreatorTemplateView = ({ editor, block }) => {
18646
18743
 
18647
18744
  // src/mantine/blocks/domainCreator/flow/FlowView.tsx
18648
18745
  import React182, { useCallback as useCallback51, useMemo as useMemo63, useState as useState73 } from "react";
18649
- import { ActionIcon as ActionIcon26, Badge as Badge26, Group as Group64, Stack as Stack126, Text as Text103, Tooltip as Tooltip14 } from "@mantine/core";
18746
+ import { ActionIcon as ActionIcon27, Badge as Badge26, Group as Group64, Stack as Stack126, Text as Text103, Tooltip as Tooltip15 } from "@mantine/core";
18650
18747
  import { IconChevronRight as IconChevronRight6, IconCheck as IconCheck8, IconAlertCircle as IconAlertCircle12 } from "@tabler/icons-react";
18651
18748
 
18652
18749
  // src/mantine/blocks/domainCreator/flow/DomainCreatorSurveyPanel.tsx
@@ -18957,7 +19054,7 @@ var DomainCreatorFlowView = ({ editor, block }) => {
18957
19054
  return { variant: "light", color: "gray", text: "Click to start", icon: null };
18958
19055
  };
18959
19056
  const badgeProps = getBadgeProps();
18960
- return /* @__PURE__ */ React182.createElement(BaseContainer, { blockId: block.id, onClick: handleOpen }, /* @__PURE__ */ React182.createElement(Group64, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React182.createElement(Group64, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("file-text", block.props.icon), /* @__PURE__ */ React182.createElement(Stack126, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React182.createElement(Group64, { gap: "xs", align: "center" }, /* @__PURE__ */ React182.createElement(Text103, { fw: 600, size: "sm", contentEditable: false }, block.props.title || "Domain Creator"), /* @__PURE__ */ React182.createElement(Badge26, { size: "xs", variant: badgeProps.variant, color: badgeProps.color, leftSection: badgeProps.icon }, badgeProps.text)), /* @__PURE__ */ React182.createElement(Text103, { size: "xs", c: "dimmed", contentEditable: false, lineClamp: 2 }, hasExistingSubmission ? `Domain created: ${lastSubmission.entityDid}` : block.props.description || "Open the survey panel to create a new domain."))), /* @__PURE__ */ React182.createElement(Tooltip14, { label: hasExistingSubmission ? "View/Edit domain" : "Create domain", withArrow: true }, /* @__PURE__ */ React182.createElement(ActionIcon26, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React182.createElement(IconChevronRight6, { size: 18 })))));
19057
+ return /* @__PURE__ */ React182.createElement(BaseContainer, { blockId: block.id, onClick: handleOpen }, /* @__PURE__ */ React182.createElement(Group64, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React182.createElement(Group64, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("file-text", block.props.icon), /* @__PURE__ */ React182.createElement(Stack126, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React182.createElement(Group64, { gap: "xs", align: "center" }, /* @__PURE__ */ React182.createElement(Text103, { fw: 600, size: "sm", contentEditable: false }, block.props.title || "Domain Creator"), /* @__PURE__ */ React182.createElement(Badge26, { size: "xs", variant: badgeProps.variant, color: badgeProps.color, leftSection: badgeProps.icon }, badgeProps.text)), /* @__PURE__ */ React182.createElement(Text103, { size: "xs", c: "dimmed", contentEditable: false, lineClamp: 2 }, hasExistingSubmission ? `Domain created: ${lastSubmission.entityDid}` : block.props.description || "Open the survey panel to create a new domain."))), /* @__PURE__ */ React182.createElement(Tooltip15, { label: hasExistingSubmission ? "View/Edit domain" : "Create domain", withArrow: true }, /* @__PURE__ */ React182.createElement(ActionIcon27, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React182.createElement(IconChevronRight6, { size: 18 })))));
18961
19058
  };
18962
19059
 
18963
19060
  // src/mantine/blocks/domainCreator/DomainCreatorBlock.tsx
@@ -19301,7 +19398,7 @@ var EmailTemplateView = ({ editor, block }) => {
19301
19398
 
19302
19399
  // src/mantine/blocks/email/flow/FlowView.tsx
19303
19400
  import React189, { useMemo as useMemo67 } from "react";
19304
- import { Group as Group67, Stack as Stack130, Text as Text107, ActionIcon as ActionIcon27, Tooltip as Tooltip15, Button as Button35, Badge as Badge29, Alert as Alert26, Loader as Loader27, Divider as Divider17 } from "@mantine/core";
19401
+ import { Group as Group67, Stack as Stack130, Text as Text107, ActionIcon as ActionIcon28, Tooltip as Tooltip16, Button as Button35, Badge as Badge29, Alert as Alert26, Loader as Loader27, Divider as Divider17 } from "@mantine/core";
19305
19402
  import { IconSend as IconSend4, IconCheck as IconCheck10, IconX as IconX12, IconMail as IconMail5, IconUser as IconUser11 } from "@tabler/icons-react";
19306
19403
 
19307
19404
  // src/mantine/blocks/email/flow/hooks/useEmailActions.ts
@@ -19444,7 +19541,7 @@ var EmailFlowView = ({ editor, block, isDisabled }) => {
19444
19541
  [editor, block, isDisabled, disabled]
19445
19542
  );
19446
19543
  const panelContent = useMemo67(
19447
- () => /* @__PURE__ */ React189.createElement(BaseRightPanelLayout, { stepTabs: true, onClose: closePanel, title: "Email Details", tabs, context: { editor, block } }),
19544
+ () => /* @__PURE__ */ React189.createElement(BaseRightPanelLayout, { stepTabs: true, showSettings: false, onClose: closePanel, title: "Email Details", tabs, context: { editor, block } }),
19448
19545
  [tabs, editor, block, closePanel]
19449
19546
  );
19450
19547
  const panelId = `email-details-panel-${block.id}`;
@@ -19486,7 +19583,7 @@ function EmailPanelContent({ editor, block, isDisabled }) {
19486
19583
  disabled: !canSend
19487
19584
  },
19488
19585
  loading ? "Sending..." : status === "sent" ? "Sent" : block.props.buttonLabel || "Send"
19489
- ), status === "sent" && /* @__PURE__ */ React189.createElement(Tooltip15, { label: "Send again", position: "top", withArrow: true }, /* @__PURE__ */ React189.createElement(ActionIcon27, { variant: "light", color: "blue", onClick: resetStatus }, /* @__PURE__ */ React189.createElement(IconSend4, { size: 14 })))), isDisabled?.isDisabled === "disable" && isDisabled?.message && /* @__PURE__ */ React189.createElement(Text107, { size: "xs", c: "dimmed" }, isDisabled.message), status === "error" && runtime.error?.message && /* @__PURE__ */ React189.createElement(Alert26, { color: "red", icon: /* @__PURE__ */ React189.createElement(IconX12, { size: 16 }), title: "Failed to send", styles: { message: { fontSize: "12px" } } }, runtime.error.message), /* @__PURE__ */ React189.createElement(Divider17, null), /* @__PURE__ */ React189.createElement(Stack130, { gap: "xs" }, /* @__PURE__ */ React189.createElement(Text107, { size: "sm", fw: 600 }, "Recipients"), /* @__PURE__ */ React189.createElement(DetailRow, { label: "To", value: toDisplay }), ccDisplay && /* @__PURE__ */ React189.createElement(DetailRow, { label: "CC", value: ccDisplay }), bccDisplay && /* @__PURE__ */ React189.createElement(DetailRow, { label: "BCC", value: bccDisplay }), replyToDisplay && /* @__PURE__ */ React189.createElement(DetailRow, { label: "Reply-To", value: replyToDisplay })), /* @__PURE__ */ React189.createElement(Divider17, null), /* @__PURE__ */ React189.createElement(Stack130, { gap: "xs" }, /* @__PURE__ */ React189.createElement(Text107, { size: "sm", fw: 600 }, "Subject"), /* @__PURE__ */ React189.createElement(Text107, { size: "sm", c: subjectDisplay ? void 0 : "dimmed" }, subjectDisplay || "No subject")), /* @__PURE__ */ React189.createElement(Divider17, null), /* @__PURE__ */ React189.createElement(Stack130, { gap: "xs" }, /* @__PURE__ */ React189.createElement(Text107, { size: "sm", fw: 600 }, "Template"), /* @__PURE__ */ React189.createElement(DetailRow, { label: "Name", value: block.props.templateName, placeholder: "Not selected" }), block.props.templateVersion && /* @__PURE__ */ React189.createElement(DetailRow, { label: "Version", value: block.props.templateVersion })), Object.keys(variables).length > 0 && /* @__PURE__ */ React189.createElement(React189.Fragment, null, /* @__PURE__ */ React189.createElement(Divider17, null), /* @__PURE__ */ React189.createElement(Stack130, { gap: "xs" }, /* @__PURE__ */ React189.createElement(Text107, { size: "sm", fw: 600 }, "Variables"), Object.entries(variables).map(([key, value]) => /* @__PURE__ */ React189.createElement(DetailRow, { key, label: key, value: resolveReferences(value, editorDocument) })))), runtime.state && runtime.state !== "idle" && /* @__PURE__ */ React189.createElement(React189.Fragment, null, /* @__PURE__ */ React189.createElement(Divider17, null), /* @__PURE__ */ React189.createElement(Stack130, { gap: "xs" }, /* @__PURE__ */ React189.createElement(Text107, { size: "sm", fw: 600 }, "Status"), /* @__PURE__ */ React189.createElement(DetailRow, { label: "Status", value: runtime.state }), emailOutput?.sentAt && /* @__PURE__ */ React189.createElement(DetailRow, { label: "Last sent", value: new Date(emailOutput.sentAt).toLocaleString() }), emailOutput?.messageId && /* @__PURE__ */ React189.createElement(DetailRow, { label: "Message ID", value: emailOutput.messageId }), runtime.error?.message && /* @__PURE__ */ React189.createElement(Text107, { size: "xs", c: "red" }, runtime.error.message))));
19586
+ ), status === "sent" && /* @__PURE__ */ React189.createElement(Tooltip16, { label: "Send again", position: "top", withArrow: true }, /* @__PURE__ */ React189.createElement(ActionIcon28, { variant: "light", color: "blue", onClick: resetStatus }, /* @__PURE__ */ React189.createElement(IconSend4, { size: 14 })))), isDisabled?.isDisabled === "disable" && isDisabled?.message && /* @__PURE__ */ React189.createElement(Text107, { size: "xs", c: "dimmed" }, isDisabled.message), status === "error" && runtime.error?.message && /* @__PURE__ */ React189.createElement(Alert26, { color: "red", icon: /* @__PURE__ */ React189.createElement(IconX12, { size: 16 }), title: "Failed to send", styles: { message: { fontSize: "12px" } } }, runtime.error.message), /* @__PURE__ */ React189.createElement(Divider17, null), /* @__PURE__ */ React189.createElement(Stack130, { gap: "xs" }, /* @__PURE__ */ React189.createElement(Text107, { size: "sm", fw: 600 }, "Recipients"), /* @__PURE__ */ React189.createElement(DetailRow, { label: "To", value: toDisplay }), ccDisplay && /* @__PURE__ */ React189.createElement(DetailRow, { label: "CC", value: ccDisplay }), bccDisplay && /* @__PURE__ */ React189.createElement(DetailRow, { label: "BCC", value: bccDisplay }), replyToDisplay && /* @__PURE__ */ React189.createElement(DetailRow, { label: "Reply-To", value: replyToDisplay })), /* @__PURE__ */ React189.createElement(Divider17, null), /* @__PURE__ */ React189.createElement(Stack130, { gap: "xs" }, /* @__PURE__ */ React189.createElement(Text107, { size: "sm", fw: 600 }, "Subject"), /* @__PURE__ */ React189.createElement(Text107, { size: "sm", c: subjectDisplay ? void 0 : "dimmed" }, subjectDisplay || "No subject")), /* @__PURE__ */ React189.createElement(Divider17, null), /* @__PURE__ */ React189.createElement(Stack130, { gap: "xs" }, /* @__PURE__ */ React189.createElement(Text107, { size: "sm", fw: 600 }, "Template"), /* @__PURE__ */ React189.createElement(DetailRow, { label: "Name", value: block.props.templateName, placeholder: "Not selected" }), block.props.templateVersion && /* @__PURE__ */ React189.createElement(DetailRow, { label: "Version", value: block.props.templateVersion })), Object.keys(variables).length > 0 && /* @__PURE__ */ React189.createElement(React189.Fragment, null, /* @__PURE__ */ React189.createElement(Divider17, null), /* @__PURE__ */ React189.createElement(Stack130, { gap: "xs" }, /* @__PURE__ */ React189.createElement(Text107, { size: "sm", fw: 600 }, "Variables"), Object.entries(variables).map(([key, value]) => /* @__PURE__ */ React189.createElement(DetailRow, { key, label: key, value: resolveReferences(value, editorDocument) })))), runtime.state && runtime.state !== "idle" && /* @__PURE__ */ React189.createElement(React189.Fragment, null, /* @__PURE__ */ React189.createElement(Divider17, null), /* @__PURE__ */ React189.createElement(Stack130, { gap: "xs" }, /* @__PURE__ */ React189.createElement(Text107, { size: "sm", fw: 600 }, "Status"), /* @__PURE__ */ React189.createElement(DetailRow, { label: "Status", value: runtime.state }), emailOutput?.sentAt && /* @__PURE__ */ React189.createElement(DetailRow, { label: "Last sent", value: new Date(emailOutput.sentAt).toLocaleString() }), emailOutput?.messageId && /* @__PURE__ */ React189.createElement(DetailRow, { label: "Message ID", value: emailOutput.messageId }), runtime.error?.message && /* @__PURE__ */ React189.createElement(Text107, { size: "xs", c: "red" }, runtime.error.message))));
19490
19587
  }
19491
19588
  function DetailRow({ label, value, placeholder }) {
19492
19589
  return /* @__PURE__ */ React189.createElement(Group67, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React189.createElement(Text107, { size: "xs", fw: 500, c: "dimmed", style: { minWidth: 70 } }, label, ":"), /* @__PURE__ */ React189.createElement(Text107, { size: "xs", c: value ? void 0 : "dimmed", lineClamp: 1, style: { flex: 1 } }, value || placeholder || "\u2014"));
@@ -19714,7 +19811,7 @@ var ProtocolSelectorTemplateView = ({ editor, block }) => {
19714
19811
 
19715
19812
  // src/mantine/blocks/protocolSelector/flow/FlowView.tsx
19716
19813
  import React197, { useMemo as useMemo71 } from "react";
19717
- import { Badge as Badge30, Box as Box42, Group as Group70, Stack as Stack134, Text as Text111, Tooltip as Tooltip16 } from "@mantine/core";
19814
+ import { Badge as Badge30, Box as Box42, Group as Group70, Stack as Stack134, Text as Text111, Tooltip as Tooltip17 } from "@mantine/core";
19718
19815
  import { IconCircleDashed as IconCircleDashed3, IconChecks as IconChecks3 } from "@tabler/icons-react";
19719
19816
 
19720
19817
  // src/mantine/blocks/protocolSelector/flow/ProtocolSelectionPanel.tsx
@@ -19890,7 +19987,7 @@ var ProtocolSelectorFlowView = ({ editor, block, isDisabled }) => {
19890
19987
  /* @__PURE__ */ React197.createElement(IconCircleDashed3, { size: 26, color: "currentColor" })
19891
19988
  ), /* @__PURE__ */ React197.createElement(Stack134, { gap: 2, style: { flex: 1 } }, /* @__PURE__ */ React197.createElement(Text111, { fw: 500, size: "sm", lineClamp: 1, style: { opacity: disabled ? 0.5 : 1 } }, block.props.title || "Select Protocol"), isCompleted && block.props.selectedProtocolType ? /* @__PURE__ */ React197.createElement(Badge30, { size: "sm", styles: { root: { backgroundColor: "var(--mantine-primary-color-light)", color: "var(--mantine-primary-color-filled)" } } }, block.props.selectedProtocolType) : /* @__PURE__ */ React197.createElement(Text111, { size: "xs", c: "dimmed", style: { opacity: disabled ? 0.5 : 1 } }, "Selection"))), /* @__PURE__ */ React197.createElement(Stack134, { gap: 2, align: "flex-end" }, isCompleted ? /* @__PURE__ */ React197.createElement(React197.Fragment, null, /* @__PURE__ */ React197.createElement(Group70, { gap: 4 }, /* @__PURE__ */ React197.createElement(IconChecks3, { size: 16, color: "var(--mantine-color-green-4)" }), /* @__PURE__ */ React197.createElement(Text111, { size: "sm", c: "green.4", fw: 500 }, "Completed")), /* @__PURE__ */ React197.createElement(Text111, { size: "xs", c: "dimmed", lineClamp: 1 }, block.props.selectedProtocolName || block.props.selectedProtocolDid)) : /* @__PURE__ */ React197.createElement(React197.Fragment, null, /* @__PURE__ */ React197.createElement(Text111, { size: "sm" }, "Pending"), /* @__PURE__ */ React197.createElement(Text111, { size: "xs", c: "dimmed" }, "Complete now")))));
19892
19989
  if (disabled && isDisabled?.message) {
19893
- return /* @__PURE__ */ React197.createElement(Tooltip16, { label: isDisabled.message, position: "top", withArrow: true }, /* @__PURE__ */ React197.createElement(Box42, { style: { cursor: "not-allowed" } }, containerContent));
19990
+ return /* @__PURE__ */ React197.createElement(Tooltip17, { label: isDisabled.message, position: "top", withArrow: true }, /* @__PURE__ */ React197.createElement(Box42, { style: { cursor: "not-allowed" } }, containerContent));
19894
19991
  }
19895
19992
  return containerContent;
19896
19993
  };
@@ -20112,7 +20209,7 @@ var FormTemplateView = ({ editor, block }) => {
20112
20209
 
20113
20210
  // src/mantine/blocks/form/flow/FlowView.tsx
20114
20211
  import React204, { useMemo as useMemo74, useState as useState80, useCallback as useCallback60 } from "react";
20115
- import { ActionIcon as ActionIcon28, Badge as Badge32, Group as Group72, Stack as Stack136, Text as Text115, Tooltip as Tooltip17 } from "@mantine/core";
20212
+ import { ActionIcon as ActionIcon29, Badge as Badge32, Group as Group72, Stack as Stack136, Text as Text115, Tooltip as Tooltip18 } from "@mantine/core";
20116
20213
  import { IconChevronRight as IconChevronRight7 } from "@tabler/icons-react";
20117
20214
 
20118
20215
  // src/mantine/blocks/form/flow/FormPanel.tsx
@@ -20284,7 +20381,7 @@ var FormFlowView = ({ editor, block }) => {
20284
20381
  const badgeProps = getBadgeProps();
20285
20382
  const hasSchema = Boolean(block.props.surveySchema);
20286
20383
  const completedAt = runtime.executedAt;
20287
- return /* @__PURE__ */ React204.createElement(BaseContainer, { blockId: block.id, onClick: handleOpen }, /* @__PURE__ */ React204.createElement(Group72, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React204.createElement(Group72, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("checklist", block.props.icon), /* @__PURE__ */ React204.createElement(Stack136, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React204.createElement(Group72, { gap: "xs", align: "center" }, /* @__PURE__ */ React204.createElement(Text115, { fw: 600, size: "sm" }, block.props.title || "Form"), /* @__PURE__ */ React204.createElement(Badge32, { size: "xs", variant: badgeProps.variant, color: badgeProps.color, styles: { root: { backgroundColor: `var(--mantine-color-${badgeProps.color}-6)` } } }, badgeProps.text)), /* @__PURE__ */ React204.createElement(Text115, { size: "xs", c: "dimmed", lineClamp: 2 }, isCompleted && completedAt ? `Completed on ${new Date(completedAt).toLocaleDateString()}` : hasSchema ? "Click to fill out the form" : "Form not configured"))), /* @__PURE__ */ React204.createElement(Tooltip17, { label: isCompleted ? "View form" : "Fill form", withArrow: true }, /* @__PURE__ */ React204.createElement(ActionIcon28, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React204.createElement(IconChevronRight7, { size: 18 })))));
20384
+ return /* @__PURE__ */ React204.createElement(BaseContainer, { blockId: block.id, onClick: handleOpen }, /* @__PURE__ */ React204.createElement(Group72, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React204.createElement(Group72, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("checklist", block.props.icon), /* @__PURE__ */ React204.createElement(Stack136, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React204.createElement(Group72, { gap: "xs", align: "center" }, /* @__PURE__ */ React204.createElement(Text115, { fw: 600, size: "sm" }, block.props.title || "Form"), /* @__PURE__ */ React204.createElement(Badge32, { size: "xs", variant: badgeProps.variant, color: badgeProps.color, styles: { root: { backgroundColor: `var(--mantine-color-${badgeProps.color}-6)` } } }, badgeProps.text)), /* @__PURE__ */ React204.createElement(Text115, { size: "xs", c: "dimmed", lineClamp: 2 }, isCompleted && completedAt ? `Completed on ${new Date(completedAt).toLocaleDateString()}` : hasSchema ? "Click to fill out the form" : "Form not configured"))), /* @__PURE__ */ React204.createElement(Tooltip18, { label: isCompleted ? "View form" : "Fill form", withArrow: true }, /* @__PURE__ */ React204.createElement(ActionIcon29, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React204.createElement(IconChevronRight7, { size: 18 })))));
20288
20385
  };
20289
20386
 
20290
20387
  // src/mantine/blocks/form/FormBlock.tsx
@@ -20429,7 +20526,7 @@ var DomainCreatorSignTemplateView = ({ editor, block }) => {
20429
20526
 
20430
20527
  // src/mantine/blocks/domainCreatorSign/flow/FlowView.tsx
20431
20528
  import React213, { useCallback as useCallback63, useMemo as useMemo76, useEffect as useEffect67 } from "react";
20432
- import { ActionIcon as ActionIcon29, Badge as Badge35, Group as Group75, Stack as Stack140, Text as Text120, Tooltip as Tooltip19 } from "@mantine/core";
20529
+ import { ActionIcon as ActionIcon30, Badge as Badge35, Group as Group75, Stack as Stack140, Text as Text120, Tooltip as Tooltip20 } from "@mantine/core";
20433
20530
  import { IconChevronRight as IconChevronRight8 } from "@tabler/icons-react";
20434
20531
 
20435
20532
  // src/mantine/blocks/domainCreatorSign/flow/SignPanel.tsx
@@ -20439,7 +20536,7 @@ import React212, { useCallback as useCallback62, useState as useState84 } from "
20439
20536
 
20440
20537
  // src/mantine/components/Base/BaseSigning.tsx
20441
20538
  import React211, { useState as useState83 } from "react";
20442
- import { Badge as Badge34, Box as Box43, Flex as Flex33, Stack as Stack138, Tabs as Tabs3, Text as Text118, Tooltip as Tooltip18 } from "@mantine/core";
20539
+ import { Badge as Badge34, Box as Box43, Flex as Flex33, Stack as Stack138, Tabs as Tabs3, Text as Text118, Tooltip as Tooltip19 } from "@mantine/core";
20443
20540
  import { IconClock as IconClock9, IconFeather as IconFeather3, IconUsers as IconUsers2, IconArrowsExchange as IconArrowsExchange2, IconCalendar as IconCalendar2, IconLeaf as IconLeaf2, IconBolt as IconBolt6 } from "@tabler/icons-react";
20444
20541
 
20445
20542
  // src/mantine/components/Base/SlideToSign.tsx
@@ -20550,7 +20647,7 @@ function BaseSigning({ handleSign }) {
20550
20647
  }
20551
20648
  }
20552
20649
  },
20553
- /* @__PURE__ */ React211.createElement(Tabs3.List, null, /* @__PURE__ */ React211.createElement(Tooltip18, { label: "Agents" }, /* @__PURE__ */ React211.createElement(Tabs3.Tab, { value: "agents", leftSection: /* @__PURE__ */ React211.createElement(IconUsers2, { size: 18 }) })), /* @__PURE__ */ React211.createElement(Tooltip18, { label: "Transactions" }, /* @__PURE__ */ React211.createElement(Tabs3.Tab, { value: "transactions", leftSection: /* @__PURE__ */ React211.createElement(IconArrowsExchange2, { size: 18 }) })), /* @__PURE__ */ React211.createElement(Tooltip18, { label: "Date" }, /* @__PURE__ */ React211.createElement(Tabs3.Tab, { value: "date", leftSection: /* @__PURE__ */ React211.createElement(IconCalendar2, { size: 18 }) })), /* @__PURE__ */ React211.createElement(Tooltip18, { label: "Charge" }, /* @__PURE__ */ React211.createElement(Tabs3.Tab, { value: "charge", leftSection: /* @__PURE__ */ React211.createElement(IconBolt6, { size: 18 }) })), /* @__PURE__ */ React211.createElement(Tooltip18, { label: "Impact" }, /* @__PURE__ */ React211.createElement(Tabs3.Tab, { value: "impact", leftSection: /* @__PURE__ */ React211.createElement(IconLeaf2, { size: 18 }) }))),
20650
+ /* @__PURE__ */ React211.createElement(Tabs3.List, null, /* @__PURE__ */ React211.createElement(Tooltip19, { label: "Agents" }, /* @__PURE__ */ React211.createElement(Tabs3.Tab, { value: "agents", leftSection: /* @__PURE__ */ React211.createElement(IconUsers2, { size: 18 }) })), /* @__PURE__ */ React211.createElement(Tooltip19, { label: "Transactions" }, /* @__PURE__ */ React211.createElement(Tabs3.Tab, { value: "transactions", leftSection: /* @__PURE__ */ React211.createElement(IconArrowsExchange2, { size: 18 }) })), /* @__PURE__ */ React211.createElement(Tooltip19, { label: "Date" }, /* @__PURE__ */ React211.createElement(Tabs3.Tab, { value: "date", leftSection: /* @__PURE__ */ React211.createElement(IconCalendar2, { size: 18 }) })), /* @__PURE__ */ React211.createElement(Tooltip19, { label: "Charge" }, /* @__PURE__ */ React211.createElement(Tabs3.Tab, { value: "charge", leftSection: /* @__PURE__ */ React211.createElement(IconBolt6, { size: 18 }) })), /* @__PURE__ */ React211.createElement(Tooltip19, { label: "Impact" }, /* @__PURE__ */ React211.createElement(Tabs3.Tab, { value: "impact", leftSection: /* @__PURE__ */ React211.createElement(IconLeaf2, { size: 18 }) }))),
20554
20651
  /* @__PURE__ */ React211.createElement(Tabs3.Panel, { value: "agents" }, /* @__PURE__ */ React211.createElement(Text118, { size: "sm" }, "Agents content")),
20555
20652
  /* @__PURE__ */ React211.createElement(Tabs3.Panel, { value: "transactions" }, /* @__PURE__ */ React211.createElement(Text118, { size: "sm" }, "Transactions content")),
20556
20653
  /* @__PURE__ */ React211.createElement(Tabs3.Panel, { value: "date" }, /* @__PURE__ */ React211.createElement(Text118, { size: "sm" }, "Date content")),
@@ -20856,7 +20953,7 @@ var DomainCreatorSignFlowView = ({ editor, block }) => {
20856
20953
  return "Waiting for domain card data";
20857
20954
  }
20858
20955
  };
20859
- return /* @__PURE__ */ React213.createElement(BaseContainer, { blockId: block.id, onClick: isClickable ? handleOpen : void 0, style: { opacity: isClickable ? 1 : 0.7, cursor: isClickable ? "pointer" : "not-allowed" } }, /* @__PURE__ */ React213.createElement(Group75, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React213.createElement(Group75, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("feather", block.props.icon), /* @__PURE__ */ React213.createElement(Stack140, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React213.createElement(Group75, { gap: "xs", align: "center" }, /* @__PURE__ */ React213.createElement(Text120, { fw: 600, size: "sm" }, block.props.title || "Sign to Create"), /* @__PURE__ */ React213.createElement(Badge35, { size: "xs", variant: "filled", color: badgeProps.color, styles: { root: { backgroundColor: `var(--mantine-color-${badgeProps.color}-6)`, color: "white" } } }, badgeProps.text)), /* @__PURE__ */ React213.createElement(Text120, { size: "xs", c: "dimmed", lineClamp: 2 }, getDescriptionText()))), /* @__PURE__ */ React213.createElement(Group75, null, /* @__PURE__ */ React213.createElement(CommitmentDisplay, { block, onClick: openCommitment }), /* @__PURE__ */ React213.createElement(AssignmentDisplay, { block, onClick: openAssignment }), isClickable && /* @__PURE__ */ React213.createElement(Tooltip19, { label: status === "completed" ? "View details" : "Sign & Create", withArrow: true }, /* @__PURE__ */ React213.createElement(ActionIcon29, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React213.createElement(IconChevronRight8, { size: 18 }))))));
20956
+ return /* @__PURE__ */ React213.createElement(BaseContainer, { blockId: block.id, onClick: isClickable ? handleOpen : void 0, style: { opacity: isClickable ? 1 : 0.7, cursor: isClickable ? "pointer" : "not-allowed" } }, /* @__PURE__ */ React213.createElement(Group75, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React213.createElement(Group75, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("feather", block.props.icon), /* @__PURE__ */ React213.createElement(Stack140, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React213.createElement(Group75, { gap: "xs", align: "center" }, /* @__PURE__ */ React213.createElement(Text120, { fw: 600, size: "sm" }, block.props.title || "Sign to Create"), /* @__PURE__ */ React213.createElement(Badge35, { size: "xs", variant: "filled", color: badgeProps.color, styles: { root: { backgroundColor: `var(--mantine-color-${badgeProps.color}-6)`, color: "white" } } }, badgeProps.text)), /* @__PURE__ */ React213.createElement(Text120, { size: "xs", c: "dimmed", lineClamp: 2 }, getDescriptionText()))), /* @__PURE__ */ React213.createElement(Group75, null, /* @__PURE__ */ React213.createElement(CommitmentDisplay, { block, onClick: openCommitment }), /* @__PURE__ */ React213.createElement(AssignmentDisplay, { block, onClick: openAssignment }), isClickable && /* @__PURE__ */ React213.createElement(Tooltip20, { label: status === "completed" ? "View details" : "Sign & Create", withArrow: true }, /* @__PURE__ */ React213.createElement(ActionIcon30, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React213.createElement(IconChevronRight8, { size: 18 }))))));
20860
20957
  };
20861
20958
 
20862
20959
  // src/mantine/blocks/domainCreatorSign/DomainCreatorSignBlock.tsx
@@ -21032,7 +21129,7 @@ var DomainCardViewerTemplateView = ({ editor, block }) => {
21032
21129
 
21033
21130
  // src/mantine/blocks/domainCardViewer/flow/FlowView.tsx
21034
21131
  import React220, { useMemo as useMemo79, useCallback as useCallback65, useEffect as useEffect69 } from "react";
21035
- import { ActionIcon as ActionIcon30, Badge as Badge37, Button as Button38, Group as Group77, Stack as Stack143, Text as Text123, Tooltip as Tooltip20 } from "@mantine/core";
21132
+ import { ActionIcon as ActionIcon31, Badge as Badge37, Button as Button38, Group as Group77, Stack as Stack143, Text as Text123, Tooltip as Tooltip21 } from "@mantine/core";
21036
21133
  import { IconChevronRight as IconChevronRight9, IconLoader, IconTestPipe, IconTrash as IconTrash6 } from "@tabler/icons-react";
21037
21134
 
21038
21135
  // src/mantine/blocks/domainCardViewer/flow/ViewerPanel.tsx
@@ -21442,7 +21539,7 @@ var DomainCardViewerFlowView = ({ editor, block }) => {
21442
21539
  }
21443
21540
  };
21444
21541
  const canOpenPanel = status !== "pending";
21445
- return /* @__PURE__ */ React220.createElement(BaseContainer, { blockId: block.id, onClick: canOpenPanel ? open : void 0, style: { opacity: canOpenPanel ? 1 : 0.7, cursor: canOpenPanel ? "pointer" : "not-allowed" } }, /* @__PURE__ */ React220.createElement(Group77, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React220.createElement(Group77, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("dots-circle", block.props.icon), /* @__PURE__ */ React220.createElement(Stack143, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React220.createElement(Group77, { gap: "xs", align: "center" }, /* @__PURE__ */ React220.createElement(Text123, { fw: 600, size: "sm" }, block.props.title || "Domain Card"), /* @__PURE__ */ React220.createElement(Badge37, { size: "xs", variant: "filled", color: badgeProps.color, styles: { root: { backgroundColor: `var(--mantine-color-${badgeProps.color}-6)`, color: "white" } } }, badgeProps.text)), /* @__PURE__ */ React220.createElement(Text123, { size: "xs", c: "dimmed", lineClamp: 2 }, getDescriptionText()))), IS_DEV && status === "pending" && /* @__PURE__ */ React220.createElement(React220.Fragment, null, /* @__PURE__ */ React220.createElement(Button38, { size: "compact-xs", variant: "light", color: "orange", leftSection: /* @__PURE__ */ React220.createElement(IconTestPipe, { size: 14 }), onClick: handleInjectDummyData }, "Test Data"), /* @__PURE__ */ React220.createElement(Button38, { size: "compact-xs", variant: "light", color: "blue", leftSection: /* @__PURE__ */ React220.createElement(IconLoader, { size: 14 }), onClick: handleSetLoading }, "Loading")), IS_DEV && (status === "ready" || status === "approved" || status === "loading") && /* @__PURE__ */ React220.createElement(Button38, { size: "compact-xs", variant: "light", color: "orange", leftSection: /* @__PURE__ */ React220.createElement(IconTrash6, { size: 14 }), onClick: handleClearData }, "Clear"), canOpenPanel && /* @__PURE__ */ React220.createElement(Tooltip20, { label: status === "approved" ? "View domain data" : "Review domain data", withArrow: true }, /* @__PURE__ */ React220.createElement(ActionIcon30, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React220.createElement(IconChevronRight9, { size: 18 })))));
21542
+ return /* @__PURE__ */ React220.createElement(BaseContainer, { blockId: block.id, onClick: canOpenPanel ? open : void 0, style: { opacity: canOpenPanel ? 1 : 0.7, cursor: canOpenPanel ? "pointer" : "not-allowed" } }, /* @__PURE__ */ React220.createElement(Group77, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React220.createElement(Group77, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("dots-circle", block.props.icon), /* @__PURE__ */ React220.createElement(Stack143, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React220.createElement(Group77, { gap: "xs", align: "center" }, /* @__PURE__ */ React220.createElement(Text123, { fw: 600, size: "sm" }, block.props.title || "Domain Card"), /* @__PURE__ */ React220.createElement(Badge37, { size: "xs", variant: "filled", color: badgeProps.color, styles: { root: { backgroundColor: `var(--mantine-color-${badgeProps.color}-6)`, color: "white" } } }, badgeProps.text)), /* @__PURE__ */ React220.createElement(Text123, { size: "xs", c: "dimmed", lineClamp: 2 }, getDescriptionText()))), IS_DEV && status === "pending" && /* @__PURE__ */ React220.createElement(React220.Fragment, null, /* @__PURE__ */ React220.createElement(Button38, { size: "compact-xs", variant: "light", color: "orange", leftSection: /* @__PURE__ */ React220.createElement(IconTestPipe, { size: 14 }), onClick: handleInjectDummyData }, "Test Data"), /* @__PURE__ */ React220.createElement(Button38, { size: "compact-xs", variant: "light", color: "blue", leftSection: /* @__PURE__ */ React220.createElement(IconLoader, { size: 14 }), onClick: handleSetLoading }, "Loading")), IS_DEV && (status === "ready" || status === "approved" || status === "loading") && /* @__PURE__ */ React220.createElement(Button38, { size: "compact-xs", variant: "light", color: "orange", leftSection: /* @__PURE__ */ React220.createElement(IconTrash6, { size: 14 }), onClick: handleClearData }, "Clear"), canOpenPanel && /* @__PURE__ */ React220.createElement(Tooltip21, { label: status === "approved" ? "View domain data" : "Review domain data", withArrow: true }, /* @__PURE__ */ React220.createElement(ActionIcon31, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React220.createElement(IconChevronRight9, { size: 18 })))));
21446
21543
  };
21447
21544
 
21448
21545
  // src/mantine/blocks/domainCardViewer/DomainCardViewerBlock.tsx
@@ -22389,7 +22486,7 @@ var GovernanceGroupTemplateView = ({ editor, block }) => {
22389
22486
 
22390
22487
  // src/mantine/blocks/governanceGroup/flow/FlowView.tsx
22391
22488
  import React227, { useCallback as useCallback68, useEffect as useEffect72, useMemo as useMemo82, useRef as useRef20, useState as useState88 } from "react";
22392
- import { ActionIcon as ActionIcon31, Badge as Badge39, Group as Group80, Stack as Stack147, Text as Text127, Tooltip as Tooltip21 } from "@mantine/core";
22489
+ import { ActionIcon as ActionIcon32, Badge as Badge39, Group as Group80, Stack as Stack147, Text as Text127, Tooltip as Tooltip22 } from "@mantine/core";
22393
22490
  import { IconChevronRight as IconChevronRight10 } from "@tabler/icons-react";
22394
22491
 
22395
22492
  // src/mantine/blocks/governanceGroup/flow/GovernanceGroupPanel.tsx
@@ -22728,7 +22825,7 @@ var GovernanceGroupFlowView = ({ editor, block }) => {
22728
22825
  const groupTypeName = lastSubmission.groupType ? lastSubmission.groupType.charAt(0).toUpperCase() + lastSubmission.groupType.slice(1).replace(/([A-Z])/g, " $1") : "Group";
22729
22826
  return `${groupTypeName} created: ${lastSubmission.coreAddress?.slice(0, 12)}...`;
22730
22827
  };
22731
- return /* @__PURE__ */ React227.createElement(BaseContainer, { blockId: block.id, onClick: handleOpen }, /* @__PURE__ */ React227.createElement(Group80, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React227.createElement(Group80, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("users", block.props.icon), /* @__PURE__ */ React227.createElement(Stack147, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React227.createElement(Group80, { gap: "xs", align: "center" }, /* @__PURE__ */ React227.createElement(Text127, { fw: 600, size: "sm", contentEditable: false }, block.props.title || "Governance Group"), /* @__PURE__ */ React227.createElement(Badge39, { size: "xs", variant: "filled", color: badgeProps.color, styles: { root: { backgroundColor: `var(--mantine-color-${badgeProps.color}-6)` } } }, badgeProps.text)), /* @__PURE__ */ React227.createElement(Text127, { size: "xs", c: "dimmed", contentEditable: false, lineClamp: 2 }, hasExistingSubmission ? getSubmissionDisplay() : block.props.description || "Open the panel to create a new governance group."))), /* @__PURE__ */ React227.createElement(Tooltip21, { label: hasExistingSubmission ? "View/Edit group" : "Create group", withArrow: true }, /* @__PURE__ */ React227.createElement(ActionIcon31, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React227.createElement(IconChevronRight10, { size: 18 })))));
22828
+ return /* @__PURE__ */ React227.createElement(BaseContainer, { blockId: block.id, onClick: handleOpen }, /* @__PURE__ */ React227.createElement(Group80, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React227.createElement(Group80, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("users", block.props.icon), /* @__PURE__ */ React227.createElement(Stack147, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React227.createElement(Group80, { gap: "xs", align: "center" }, /* @__PURE__ */ React227.createElement(Text127, { fw: 600, size: "sm", contentEditable: false }, block.props.title || "Governance Group"), /* @__PURE__ */ React227.createElement(Badge39, { size: "xs", variant: "filled", color: badgeProps.color, styles: { root: { backgroundColor: `var(--mantine-color-${badgeProps.color}-6)` } } }, badgeProps.text)), /* @__PURE__ */ React227.createElement(Text127, { size: "xs", c: "dimmed", contentEditable: false, lineClamp: 2 }, hasExistingSubmission ? getSubmissionDisplay() : block.props.description || "Open the panel to create a new governance group."))), /* @__PURE__ */ React227.createElement(Tooltip22, { label: hasExistingSubmission ? "View/Edit group" : "Create group", withArrow: true }, /* @__PURE__ */ React227.createElement(ActionIcon32, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React227.createElement(IconChevronRight10, { size: 18 })))));
22732
22829
  };
22733
22830
 
22734
22831
  // src/mantine/blocks/governanceGroup/GovernanceGroupBlock.tsx
@@ -22818,7 +22915,7 @@ var GeneralTab15 = ({ title, description, icon: icon2, onTitleChange, onDescript
22818
22915
 
22819
22916
  // src/mantine/blocks/flowLink/template/LinksTab.tsx
22820
22917
  import React231, { useEffect as useEffect73, useMemo as useMemo83, useState as useState89 } from "react";
22821
- import { Stack as Stack149, Card as Card22, Group as Group81, ActionIcon as ActionIcon32, Text as Text128, Divider as Divider19 } from "@mantine/core";
22918
+ import { Stack as Stack149, Card as Card22, Group as Group81, ActionIcon as ActionIcon33, Text as Text128, Divider as Divider19 } from "@mantine/core";
22822
22919
  import { IconPlus as IconPlus6, IconTrash as IconTrash7, IconGripVertical } from "@tabler/icons-react";
22823
22920
  import { DndContext, PointerSensor, useSensor, useSensors, closestCenter, useDraggable, useDroppable } from "@dnd-kit/core";
22824
22921
 
@@ -22851,7 +22948,7 @@ var DraggableLinkCard = ({ link, index, onRemove, onUpdate }) => {
22851
22948
  opacity: isDragging ? 0.5 : 1,
22852
22949
  border: isOver ? "2px dashed var(--mantine-color-accent-5)" : void 0
22853
22950
  };
22854
- return /* @__PURE__ */ React231.createElement("div", { ref: setDropRef }, /* @__PURE__ */ React231.createElement(Card22, { p: "sm", style }, /* @__PURE__ */ React231.createElement(Stack149, { gap: "xs" }, /* @__PURE__ */ React231.createElement(Group81, { justify: "space-between", align: "flex-start" }, /* @__PURE__ */ React231.createElement(Group81, { gap: "xs", align: "center" }, /* @__PURE__ */ React231.createElement("div", { ref: setDragRef, ...listeners, ...attributes, style: { cursor: "grab", display: "flex", alignItems: "center" } }, /* @__PURE__ */ React231.createElement(IconGripVertical, { size: 16, color: "gray" })), /* @__PURE__ */ React231.createElement(Text128, { size: "xs", c: "dimmed" }, link.title || `Link ${index + 1}`)), /* @__PURE__ */ React231.createElement(ActionIcon32, { variant: "subtle", color: "red", size: "sm", onClick: () => onRemove(link.id) }, /* @__PURE__ */ React231.createElement(IconTrash7, { size: 14 }))), /* @__PURE__ */ React231.createElement(Divider19, null), /* @__PURE__ */ React231.createElement(BaseTextInput, { label: "Title", placeholder: "Link title", value: link.title, onChange: (e) => onUpdate(link.id, { title: e.currentTarget.value }) }), /* @__PURE__ */ React231.createElement(
22951
+ return /* @__PURE__ */ React231.createElement("div", { ref: setDropRef }, /* @__PURE__ */ React231.createElement(Card22, { p: "sm", style }, /* @__PURE__ */ React231.createElement(Stack149, { gap: "xs" }, /* @__PURE__ */ React231.createElement(Group81, { justify: "space-between", align: "flex-start" }, /* @__PURE__ */ React231.createElement(Group81, { gap: "xs", align: "center" }, /* @__PURE__ */ React231.createElement("div", { ref: setDragRef, ...listeners, ...attributes, style: { cursor: "grab", display: "flex", alignItems: "center" } }, /* @__PURE__ */ React231.createElement(IconGripVertical, { size: 16, color: "gray" })), /* @__PURE__ */ React231.createElement(Text128, { size: "xs", c: "dimmed" }, link.title || `Link ${index + 1}`)), /* @__PURE__ */ React231.createElement(ActionIcon33, { variant: "subtle", color: "red", size: "sm", onClick: () => onRemove(link.id) }, /* @__PURE__ */ React231.createElement(IconTrash7, { size: 14 }))), /* @__PURE__ */ React231.createElement(Divider19, null), /* @__PURE__ */ React231.createElement(BaseTextInput, { label: "Title", placeholder: "Link title", value: link.title, onChange: (e) => onUpdate(link.id, { title: e.currentTarget.value }) }), /* @__PURE__ */ React231.createElement(
22855
22952
  BaseTextInput,
22856
22953
  {
22857
22954
  label: "Description",
@@ -22981,11 +23078,11 @@ var FlowLinkTemplateView = ({ editor, block }) => {
22981
23078
 
22982
23079
  // src/mantine/blocks/flowLink/flow/FlowView.tsx
22983
23080
  import React235, { useMemo as useMemo85 } from "react";
22984
- import { Badge as Badge41, Group as Group84, Stack as Stack152, Text as Text131, Tooltip as Tooltip23 } from "@mantine/core";
23081
+ import { Badge as Badge41, Group as Group84, Stack as Stack152, Text as Text131, Tooltip as Tooltip24 } from "@mantine/core";
22985
23082
 
22986
23083
  // src/mantine/blocks/flowLink/flow/FlowLinkPanel.tsx
22987
23084
  import React234, { useState as useState90, useEffect as useEffect74, useCallback as useCallback69 } from "react";
22988
- import { Stack as Stack151, Text as Text130, Card as Card23, Group as Group83, Badge as Badge40, ActionIcon as ActionIcon33, Loader as Loader32, Tooltip as Tooltip22 } from "@mantine/core";
23085
+ import { Stack as Stack151, Text as Text130, Card as Card23, Group as Group83, Badge as Badge40, ActionIcon as ActionIcon34, Loader as Loader32, Tooltip as Tooltip23 } from "@mantine/core";
22989
23086
  import { IconRefresh as IconRefresh4, IconCheck as IconCheck14, IconClock as IconClock10, IconCircleDashed as IconCircleDashed4 } from "@tabler/icons-react";
22990
23087
  var FlowLinkPanel = ({ editor, block }) => {
22991
23088
  const { closePanel } = usePanelStore();
@@ -23029,7 +23126,7 @@ var FlowLinkPanel = ({ editor, block }) => {
23029
23126
  return /* @__PURE__ */ React234.createElement(Badge40, { display: "inline-block", size: "sm", variant: "light", color: "gray", leftSection: /* @__PURE__ */ React234.createElement(Loader32, { size: 10 }) }, "Loading");
23030
23127
  }
23031
23128
  if (link.error) {
23032
- return /* @__PURE__ */ React234.createElement(Tooltip22, { label: link.error }, /* @__PURE__ */ React234.createElement(Badge40, { display: "inline-block", size: "sm", variant: "light", color: "red" }, "Error"));
23129
+ return /* @__PURE__ */ React234.createElement(Tooltip23, { label: link.error }, /* @__PURE__ */ React234.createElement(Badge40, { display: "inline-block", size: "sm", variant: "light", color: "red" }, "Error"));
23033
23130
  }
23034
23131
  if (!link.statusData) {
23035
23132
  return null;
@@ -23045,7 +23142,7 @@ var FlowLinkPanel = ({ editor, block }) => {
23045
23142
  return /* @__PURE__ */ React234.createElement(Badge40, { display: "inline-block", size: "sm", variant: "light", color: "gray", leftSection: /* @__PURE__ */ React234.createElement(IconCircleDashed4, { size: 12 }) }, "Not Started");
23046
23143
  }
23047
23144
  };
23048
- return /* @__PURE__ */ React234.createElement(BaseRightPanelLayout, { title: block.props.title || "Flow Links", onClose: closePanel, isTemplate: false, context: { editor, block } }, /* @__PURE__ */ React234.createElement(Stack151, { gap: "md" }, handlers.getFlowStatus && /* @__PURE__ */ React234.createElement(Tooltip22, { label: "Refresh status" }, /* @__PURE__ */ React234.createElement(ActionIcon33, { variant: "subtle", size: "sm", onClick: fetchStatuses }, /* @__PURE__ */ React234.createElement(IconRefresh4, { size: 16 }))), linksWithStatus.length === 0 ? /* @__PURE__ */ React234.createElement(Card23, { withBorder: true, p: "md", bg: "gray.0" }, /* @__PURE__ */ React234.createElement(Text130, { size: "sm", c: "dimmed", ta: "center" }, "No flow links configured.")) : /* @__PURE__ */ React234.createElement(Stack151, { gap: "sm" }, linksWithStatus.map((link) => /* @__PURE__ */ React234.createElement(Stack151, { key: link.id }, link.description && /* @__PURE__ */ React234.createElement(Text130, null, link.description), /* @__PURE__ */ React234.createElement(
23145
+ return /* @__PURE__ */ React234.createElement(BaseRightPanelLayout, { title: block.props.title || "Flow Links", onClose: closePanel, isTemplate: false, context: { editor, block } }, /* @__PURE__ */ React234.createElement(Stack151, { gap: "md" }, handlers.getFlowStatus && /* @__PURE__ */ React234.createElement(Tooltip23, { label: "Refresh status" }, /* @__PURE__ */ React234.createElement(ActionIcon34, { variant: "subtle", size: "sm", onClick: fetchStatuses }, /* @__PURE__ */ React234.createElement(IconRefresh4, { size: 16 }))), linksWithStatus.length === 0 ? /* @__PURE__ */ React234.createElement(Card23, { withBorder: true, p: "md", bg: "gray.0" }, /* @__PURE__ */ React234.createElement(Text130, { size: "sm", c: "dimmed", ta: "center" }, "No flow links configured.")) : /* @__PURE__ */ React234.createElement(Stack151, { gap: "sm" }, linksWithStatus.map((link) => /* @__PURE__ */ React234.createElement(Stack151, { key: link.id }, link.description && /* @__PURE__ */ React234.createElement(Text130, null, link.description), /* @__PURE__ */ React234.createElement(
23049
23146
  BaseContainer,
23050
23147
  {
23051
23148
  onClick: () => handleNavigate(link),
@@ -23082,7 +23179,7 @@ var FlowLinkFlowView = ({ editor, block, isDisabled }) => {
23082
23179
  const badgeProps = getBadgeProps();
23083
23180
  const cardContent = /* @__PURE__ */ React235.createElement(BaseContainer, { blockId: block.id, onClick: handleClick, style: { opacity: disabled ? 0.6 : 1, cursor: disabled ? "not-allowed" : "pointer" } }, /* @__PURE__ */ React235.createElement(Group84, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("external-link", block.props.icon), /* @__PURE__ */ React235.createElement(Stack152, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React235.createElement(Group84, { gap: "xs", align: "center" }, /* @__PURE__ */ React235.createElement(Text131, { fw: 600, size: "sm" }, block.props.title || "Flow Link"), /* @__PURE__ */ React235.createElement(Badge41, { size: "xs", variant: "light", bg: badgeProps.color }, badgeProps.text)), /* @__PURE__ */ React235.createElement(Text131, { size: "xs", c: "dimmed", lineClamp: 2 }, block.props.description || (linksCount > 0 ? "Click to view links" : "No links configured")))));
23084
23181
  if (disabled && isDisabled?.message) {
23085
- return /* @__PURE__ */ React235.createElement(Tooltip23, { label: isDisabled.message }, cardContent);
23182
+ return /* @__PURE__ */ React235.createElement(Tooltip24, { label: isDisabled.message }, cardContent);
23086
23183
  }
23087
23184
  return cardContent;
23088
23185
  };
@@ -23167,7 +23264,7 @@ import { IconCheck as IconCheck15, IconClock as IconClock11, IconContract as Ico
23167
23264
 
23168
23265
  // src/mantine/blocks/action/template/GeneralTab.tsx
23169
23266
  import React239, { useEffect as useEffect75, useMemo as useMemo86, useState as useState92 } from "react";
23170
- import { Group as Group86, Stack as Stack154, Text as Text133, Button as Button40, ActionIcon as ActionIcon34, Paper as Paper16, Select as Select5, Box as Box45, Checkbox as Checkbox12 } from "@mantine/core";
23267
+ import { Group as Group86, Stack as Stack154, Text as Text133, Button as Button40, ActionIcon as ActionIcon35, Paper as Paper16, Select as Select5, Box as Box45, Checkbox as Checkbox12 } from "@mantine/core";
23171
23268
  import { IconBolt as IconBolt8, IconTrash as IconTrash8, IconPlus as IconPlus7, IconSparkles as IconSparkles6, IconBell as IconBell2, IconCheckbox as IconCheckbox3 } from "@tabler/icons-react";
23172
23269
 
23173
23270
  // src/mantine/components/Base/BaseIconCombobox.tsx
@@ -23487,7 +23584,7 @@ function BarrierSourcesEditor({
23487
23584
  style: { flex: 1 },
23488
23585
  size: "xs"
23489
23586
  }
23490
- ), /* @__PURE__ */ React239.createElement(ActionIcon34, { color: "red", variant: "subtle", onClick: () => handleRemove(index), size: "sm" }, /* @__PURE__ */ React239.createElement(IconTrash8, { size: 14 }))), src.sourceBlockId && /* @__PURE__ */ React239.createElement(
23587
+ ), /* @__PURE__ */ React239.createElement(ActionIcon35, { color: "red", variant: "subtle", onClick: () => handleRemove(index), size: "sm" }, /* @__PURE__ */ React239.createElement(IconTrash8, { size: 14 }))), src.sourceBlockId && /* @__PURE__ */ React239.createElement(
23491
23588
  Select5,
23492
23589
  {
23493
23590
  label: "Event",
@@ -23560,7 +23657,7 @@ function GenericInputsEditor({ inputs, onInputsChange, editor, blockId }) {
23560
23657
  currentBlockId: blockId,
23561
23658
  size: "sm"
23562
23659
  }
23563
- ), /* @__PURE__ */ React239.createElement(ActionIcon34, { color: "red", variant: "subtle", onClick: () => handleRemoveInput(index) }, /* @__PURE__ */ React239.createElement(IconTrash8, { size: 16 })))))));
23660
+ ), /* @__PURE__ */ React239.createElement(ActionIcon35, { color: "red", variant: "subtle", onClick: () => handleRemoveInput(index) }, /* @__PURE__ */ React239.createElement(IconTrash8, { size: 16 })))))));
23564
23661
  }
23565
23662
 
23566
23663
  // src/mantine/blocks/action/template/TemplateConfig.tsx
@@ -24040,7 +24137,7 @@ function useActionDiff({ actionType, inputs, actorDid = "", entityDid }) {
24040
24137
 
24041
24138
  // src/mantine/blocks/action/PendingInvocationList.tsx
24042
24139
  import React244, { useEffect as useEffect79, useState as useState96, useMemo as useMemo91, useCallback as useCallback72, useRef as useRef22 } from "react";
24043
- import { Stack as Stack158, Group as Group89, Text as Text138, Box as Box48, Badge as Badge43, Button as Button41, Paper as Paper17, ActionIcon as ActionIcon35, Tooltip as Tooltip24 } from "@mantine/core";
24140
+ import { Stack as Stack158, Group as Group89, Text as Text138, Box as Box48, Badge as Badge43, Button as Button41, Paper as Paper17, ActionIcon as ActionIcon36, Tooltip as Tooltip25 } from "@mantine/core";
24044
24141
  import { IconBolt as IconBolt9, IconClock as IconClock12, IconRefresh as IconRefresh5, IconX as IconX13 } from "@tabler/icons-react";
24045
24142
  var PendingInvocationList = ({ editor, blockId, actionType: _actionType, onInvoke, autoResolve }) => {
24046
24143
  const yDoc = editor?._yDoc;
@@ -24111,7 +24208,7 @@ var PendingInvocationRow = ({ invocation, editor, onInvoke, onDismiss }) => {
24111
24208
  if (!invocation.expiresAt) return false;
24112
24209
  return new Date(invocation.expiresAt).getTime() < Date.now();
24113
24210
  }, [invocation.expiresAt]);
24114
- return /* @__PURE__ */ React244.createElement(Paper17, { p: "xs", withBorder: true }, /* @__PURE__ */ React244.createElement(Group89, { justify: "space-between", align: "center", wrap: "nowrap" }, /* @__PURE__ */ React244.createElement(Box48, { style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React244.createElement(Group89, { gap: 6, align: "center", wrap: "nowrap" }, /* @__PURE__ */ React244.createElement(Badge43, { size: "xs", variant: "light", color: isExpired ? "red" : "teal" }, invocation.eventName), /* @__PURE__ */ React244.createElement(Text138, { size: "xs", c: "dimmed", truncate: true }, "from ", invocation.triggeringBlockId)), /* @__PURE__ */ React244.createElement(Text138, { size: "sm", fw: 500, mt: 2, truncate: true }, previewLabel), /* @__PURE__ */ React244.createElement(Text138, { size: "xs", c: "dimmed", mt: 2 }, formatTimestamp2(invocation.emittedAt), isExpired && " \xB7 expired")), /* @__PURE__ */ React244.createElement(Group89, { gap: 4, wrap: "nowrap" }, /* @__PURE__ */ React244.createElement(Tooltip24, { label: "Invoke this listener", withArrow: true }, /* @__PURE__ */ React244.createElement(Button41, { size: "xs", variant: "filled", leftSection: /* @__PURE__ */ React244.createElement(IconRefresh5, { size: 12 }), onClick: () => onInvoke?.(invocation), disabled: isExpired || !onInvoke }, "Invoke")), /* @__PURE__ */ React244.createElement(Tooltip24, { label: "Dismiss without invoking", withArrow: true }, /* @__PURE__ */ React244.createElement(ActionIcon35, { variant: "subtle", color: "gray", onClick: onDismiss, "aria-label": "Dismiss" }, /* @__PURE__ */ React244.createElement(IconX13, { size: 14 }))))));
24211
+ return /* @__PURE__ */ React244.createElement(Paper17, { p: "xs", withBorder: true }, /* @__PURE__ */ React244.createElement(Group89, { justify: "space-between", align: "center", wrap: "nowrap" }, /* @__PURE__ */ React244.createElement(Box48, { style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React244.createElement(Group89, { gap: 6, align: "center", wrap: "nowrap" }, /* @__PURE__ */ React244.createElement(Badge43, { size: "xs", variant: "light", color: isExpired ? "red" : "teal" }, invocation.eventName), /* @__PURE__ */ React244.createElement(Text138, { size: "xs", c: "dimmed", truncate: true }, "from ", invocation.triggeringBlockId)), /* @__PURE__ */ React244.createElement(Text138, { size: "sm", fw: 500, mt: 2, truncate: true }, previewLabel), /* @__PURE__ */ React244.createElement(Text138, { size: "xs", c: "dimmed", mt: 2 }, formatTimestamp2(invocation.emittedAt), isExpired && " \xB7 expired")), /* @__PURE__ */ React244.createElement(Group89, { gap: 4, wrap: "nowrap" }, /* @__PURE__ */ React244.createElement(Tooltip25, { label: "Invoke this listener", withArrow: true }, /* @__PURE__ */ React244.createElement(Button41, { size: "xs", variant: "filled", leftSection: /* @__PURE__ */ React244.createElement(IconRefresh5, { size: 12 }), onClick: () => onInvoke?.(invocation), disabled: isExpired || !onInvoke }, "Invoke")), /* @__PURE__ */ React244.createElement(Tooltip25, { label: "Dismiss without invoking", withArrow: true }, /* @__PURE__ */ React244.createElement(ActionIcon36, { variant: "subtle", color: "gray", onClick: onDismiss, "aria-label": "Dismiss" }, /* @__PURE__ */ React244.createElement(IconX13, { size: 14 }))))));
24115
24212
  };
24116
24213
  function buildPreview(editor, invocation) {
24117
24214
  const sourceBlock = (editor?.document || []).find((b) => b?.id === invocation.triggeringBlockId);
@@ -24545,7 +24642,17 @@ function ActionFlowPanel({ editor, block, isDisabled }) {
24545
24642
  );
24546
24643
  return baseTabs;
24547
24644
  }, [editor, block, actionType, FlowDetailComponent, disabled, isDisabled?.message]);
24548
- return /* @__PURE__ */ React246.createElement(BaseRightPanelLayout, { stepTabs: true, onClose: closePanel, title: block.props.title || getActionMeta(actionType).label || "", tabs, context: { editor, block } });
24645
+ return /* @__PURE__ */ React246.createElement(
24646
+ BaseRightPanelLayout,
24647
+ {
24648
+ stepTabs: true,
24649
+ showSettings: false,
24650
+ onClose: closePanel,
24651
+ title: block.props.title || getActionMeta(actionType).label || "",
24652
+ tabs,
24653
+ context: { editor, block }
24654
+ }
24655
+ );
24549
24656
  }
24550
24657
  function ActionPanelContent({
24551
24658
  actionType,
@@ -25105,7 +25212,7 @@ var EntitySingleSelectionConfig = ({ inputs, onInputsChange }) => {
25105
25212
 
25106
25213
  // src/mantine/blocks/action/actionTypes/pod/entitySingleSelection/EntitySingleSelectionFlowDetail.tsx
25107
25214
  import React252, { useCallback as useCallback80, useEffect as useEffect85, useState as useState104 } from "react";
25108
- import { ActionIcon as ActionIcon36, Badge as Badge44, Box as Box52, Button as Button46, Group as Group94, Loader as Loader36, Stack as Stack166, Text as Text146, Tooltip as Tooltip25 } from "@mantine/core";
25215
+ import { ActionIcon as ActionIcon37, Badge as Badge44, Box as Box52, Button as Button46, Group as Group94, Loader as Loader36, Stack as Stack166, Text as Text146, Tooltip as Tooltip26 } from "@mantine/core";
25109
25216
  import { IconRefresh as IconRefresh6 } from "@tabler/icons-react";
25110
25217
  var ALLOWED_TYPES = ["dao", "dao/pod"];
25111
25218
  var TYPE_LABELS = {
@@ -25182,7 +25289,7 @@ var EntitySingleSelectionFlowDetail = ({ block, runtime, isDisabled, executeActi
25182
25289
  const output = { selectedEntityDid: null, selectedEntityName: "", selectedEntityType: "", skipped: true };
25183
25290
  await executeAction({ runtimeInputs: output });
25184
25291
  }, [executeAction]);
25185
- return /* @__PURE__ */ React252.createElement(Stack166, { gap: "md" }, /* @__PURE__ */ React252.createElement(Stack166, { gap: 2 }, /* @__PURE__ */ React252.createElement(Text146, { fw: 600 }, block?.props?.title || "Parent Organisation"), /* @__PURE__ */ React252.createElement(Text146, { size: "sm", c: "dimmed" }, block?.props?.description || "Optionally nest this POD inside a DAO or POD you control. You can skip this step.")), error && /* @__PURE__ */ React252.createElement(DismissibleAlert, { color: "red", styles: actionAlertStyles }, /* @__PURE__ */ React252.createElement(Text146, { size: "sm" }, error)), /* @__PURE__ */ React252.createElement(Group94, { justify: "space-between", align: "center", wrap: "nowrap" }, /* @__PURE__ */ React252.createElement(Text146, { size: "sm", fw: 600 }, "Available parent organisations"), /* @__PURE__ */ React252.createElement(Tooltip25, { label: "Refetch organisations", withArrow: true }, /* @__PURE__ */ React252.createElement(ActionIcon36, { variant: "subtle", size: "sm", onClick: loadEntities, loading, disabled: isDisabled, "aria-label": "Refetch organisations" }, /* @__PURE__ */ React252.createElement(IconRefresh6, { size: 16 })))), loading ? /* @__PURE__ */ React252.createElement(Group94, { justify: "center", py: "md" }, /* @__PURE__ */ React252.createElement(Loader36, { size: "sm" }), /* @__PURE__ */ React252.createElement(Text146, { size: "sm", c: "dimmed" }, "Loading your organisations...")) : /* @__PURE__ */ React252.createElement(Stack166, { gap: "xs" }, entities.length === 0 && !error && /* @__PURE__ */ React252.createElement(Text146, { size: "sm", c: "dimmed", ta: "center", py: "sm" }, "No DAOs or PODs found where you are a controller."), entities.map((entity) => {
25292
+ return /* @__PURE__ */ React252.createElement(Stack166, { gap: "md" }, /* @__PURE__ */ React252.createElement(Stack166, { gap: 2 }, /* @__PURE__ */ React252.createElement(Text146, { fw: 600 }, block?.props?.title || "Parent Organisation"), /* @__PURE__ */ React252.createElement(Text146, { size: "sm", c: "dimmed" }, block?.props?.description || "Optionally nest this POD inside a DAO or POD you control. You can skip this step.")), error && /* @__PURE__ */ React252.createElement(DismissibleAlert, { color: "red", styles: actionAlertStyles }, /* @__PURE__ */ React252.createElement(Text146, { size: "sm" }, error)), /* @__PURE__ */ React252.createElement(Group94, { justify: "space-between", align: "center", wrap: "nowrap" }, /* @__PURE__ */ React252.createElement(Text146, { size: "sm", fw: 600 }, "Available parent organisations"), /* @__PURE__ */ React252.createElement(Tooltip26, { label: "Refetch organisations", withArrow: true }, /* @__PURE__ */ React252.createElement(ActionIcon37, { variant: "subtle", size: "sm", onClick: loadEntities, loading, disabled: isDisabled, "aria-label": "Refetch organisations" }, /* @__PURE__ */ React252.createElement(IconRefresh6, { size: 16 })))), loading ? /* @__PURE__ */ React252.createElement(Group94, { justify: "center", py: "md" }, /* @__PURE__ */ React252.createElement(Loader36, { size: "sm" }), /* @__PURE__ */ React252.createElement(Text146, { size: "sm", c: "dimmed" }, "Loading your organisations...")) : /* @__PURE__ */ React252.createElement(Stack166, { gap: "xs" }, entities.length === 0 && !error && /* @__PURE__ */ React252.createElement(Text146, { size: "sm", c: "dimmed", ta: "center", py: "sm" }, "No DAOs or PODs found where you are a controller."), entities.map((entity) => {
25186
25293
  const isSelected = entity.did === selectedDid;
25187
25294
  return /* @__PURE__ */ React252.createElement(
25188
25295
  Box52,
@@ -25237,7 +25344,7 @@ var MemberMultiSelectConfig = ({ inputs, onInputsChange }) => {
25237
25344
 
25238
25345
  // src/mantine/blocks/action/actionTypes/pod/memberMultiSelect/MemberMultiSelectFlowDetail.tsx
25239
25346
  import React254, { useCallback as useCallback82, useMemo as useMemo95, useRef as useRef25, useState as useState106 } from "react";
25240
- import { ActionIcon as ActionIcon37, Badge as Badge45, Button as Button47, Flex as Flex35, Group as Group95, Loader as Loader37, NumberInput as NumberInput3, Paper as Paper18, Select as Select6, Stack as Stack168, Switch as Switch6, Text as Text148, TextInput as TextInput7 } from "@mantine/core";
25347
+ import { ActionIcon as ActionIcon38, Badge as Badge45, Button as Button47, Flex as Flex35, Group as Group95, Loader as Loader37, NumberInput as NumberInput3, Paper as Paper18, Select as Select6, Stack as Stack168, Switch as Switch6, Text as Text148, TextInput as TextInput7 } from "@mantine/core";
25241
25348
  import { IconSearch as IconSearch8, IconAlertCircle as IconAlertCircle20, IconCheck as IconCheck16, IconX as IconX15 } from "@tabler/icons-react";
25242
25349
  function normalizeMember(m) {
25243
25350
  return {
@@ -25495,7 +25602,7 @@ var MemberMultiSelectFlowDetail = ({ inputs, block, runtime, isDisabled, execute
25495
25602
  onClick: () => handleUpdateMember(i, { votingPower: m.votingPower - 1 })
25496
25603
  },
25497
25604
  "\u2212"
25498
- ), /* @__PURE__ */ React254.createElement(Text148, { size: "sm", w: 20, ta: "center" }, m.votingPower), /* @__PURE__ */ React254.createElement(Button47, { variant: "subtle", size: "compact-xs", px: 6, disabled: isDisabled, onClick: () => handleUpdateMember(i, { votingPower: m.votingPower + 1 }) }, "+")), /* @__PURE__ */ React254.createElement(ActionIcon37, { color: "red", variant: "subtle", size: "sm", onClick: () => handleRemoveMember(i), disabled: isDisabled || members.length === 1 }, /* @__PURE__ */ React254.createElement(IconX15, { size: 14 }))));
25605
+ ), /* @__PURE__ */ React254.createElement(Text148, { size: "sm", w: 20, ta: "center" }, m.votingPower), /* @__PURE__ */ React254.createElement(Button47, { variant: "subtle", size: "compact-xs", px: 6, disabled: isDisabled, onClick: () => handleUpdateMember(i, { votingPower: m.votingPower + 1 }) }, "+")), /* @__PURE__ */ React254.createElement(ActionIcon38, { color: "red", variant: "subtle", size: "sm", onClick: () => handleRemoveMember(i), disabled: isDisabled || members.length === 1 }, /* @__PURE__ */ React254.createElement(IconX15, { size: 14 }))));
25499
25606
  })));
25500
25607
  const renderMultisig = () => /* @__PURE__ */ React254.createElement(Stack168, { gap: "md" }, /* @__PURE__ */ React254.createElement(
25501
25608
  NumberInput3,
@@ -25509,7 +25616,7 @@ var MemberMultiSelectFlowDetail = ({ inputs, block, runtime, isDisabled, execute
25509
25616
  disabled: isDisabled,
25510
25617
  size: "sm"
25511
25618
  }
25512
- ), /* @__PURE__ */ React254.createElement(MemberSearch, { members, onAdd: handleAddMember, isDisabled }), members.length > 0 && /* @__PURE__ */ React254.createElement(Stack168, { gap: "xs" }, /* @__PURE__ */ React254.createElement(Group95, { gap: "xs" }, /* @__PURE__ */ React254.createElement(Text148, { size: "xs", fw: 600, c: "dimmed" }, "SIGNATORIES (", members.length, ")"), /* @__PURE__ */ React254.createElement(Badge45, { size: "xs", color: "orange", variant: "light" }, "threshold: ", multisigThreshold, " of ", members.length)), members.map((m, i) => /* @__PURE__ */ React254.createElement(Paper18, { key: `${m.did}-${i}`, withBorder: true, p: "sm", style: { borderRadius: 10 } }, /* @__PURE__ */ React254.createElement(Group95, { wrap: "nowrap", gap: "sm", align: "center" }, /* @__PURE__ */ React254.createElement(BaseAvatar, { src: m.avatarUrl, did: m.did, size: 32 }), /* @__PURE__ */ React254.createElement(Stack168, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React254.createElement(Text148, { size: "sm", fw: 500, lineClamp: 1 }, m.displayName), /* @__PURE__ */ React254.createElement(Text148, { size: "xs", c: "dimmed", lineClamp: 1 }, (m.did || "").length > 44 ? `${m.did.slice(0, 22)}\u2026${m.did.slice(-16)}` : m.did)), /* @__PURE__ */ React254.createElement(ActionIcon37, { color: "red", variant: "subtle", size: "sm", onClick: () => handleRemoveMember(i), disabled: isDisabled || members.length === 1 }, /* @__PURE__ */ React254.createElement(IconX15, { size: 14 })))))));
25619
+ ), /* @__PURE__ */ React254.createElement(MemberSearch, { members, onAdd: handleAddMember, isDisabled }), members.length > 0 && /* @__PURE__ */ React254.createElement(Stack168, { gap: "xs" }, /* @__PURE__ */ React254.createElement(Group95, { gap: "xs" }, /* @__PURE__ */ React254.createElement(Text148, { size: "xs", fw: 600, c: "dimmed" }, "SIGNATORIES (", members.length, ")"), /* @__PURE__ */ React254.createElement(Badge45, { size: "xs", color: "orange", variant: "light" }, "threshold: ", multisigThreshold, " of ", members.length)), members.map((m, i) => /* @__PURE__ */ React254.createElement(Paper18, { key: `${m.did}-${i}`, withBorder: true, p: "sm", style: { borderRadius: 10 } }, /* @__PURE__ */ React254.createElement(Group95, { wrap: "nowrap", gap: "sm", align: "center" }, /* @__PURE__ */ React254.createElement(BaseAvatar, { src: m.avatarUrl, did: m.did, size: 32 }), /* @__PURE__ */ React254.createElement(Stack168, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React254.createElement(Text148, { size: "sm", fw: 500, lineClamp: 1 }, m.displayName), /* @__PURE__ */ React254.createElement(Text148, { size: "xs", c: "dimmed", lineClamp: 1 }, (m.did || "").length > 44 ? `${m.did.slice(0, 22)}\u2026${m.did.slice(-16)}` : m.did)), /* @__PURE__ */ React254.createElement(ActionIcon38, { color: "red", variant: "subtle", size: "sm", onClick: () => handleRemoveMember(i), disabled: isDisabled || members.length === 1 }, /* @__PURE__ */ React254.createElement(IconX15, { size: 14 })))))));
25513
25620
  const renderNftStaking = () => /* @__PURE__ */ React254.createElement(Stack168, { gap: "md" }, /* @__PURE__ */ React254.createElement(DismissibleAlert, { color: "blue", styles: actionAlertStyles }, /* @__PURE__ */ React254.createElement(Text148, { size: "sm" }, "For NFT staking groups, voting power is derived from on-chain NFT holdings. Provide the NFT contract address \u2014 no explicit member list is needed.")), /* @__PURE__ */ React254.createElement(
25514
25621
  TextInput7,
25515
25622
  {
@@ -25930,7 +26037,7 @@ var ListDomainFlowsConfig = ({ inputs, onInputsChange }) => {
25930
26037
 
25931
26038
  // src/mantine/blocks/action/actionTypes/pod/listDomainFlows/ListDomainFlowsFlowDetail.tsx
25932
26039
  import React258, { useCallback as useCallback86, useEffect as useEffect89, useMemo as useMemo97, useRef as useRef26, useState as useState110 } from "react";
25933
- import { ActionIcon as ActionIcon38, Badge as Badge46, Box as Box54, Button as Button49, Checkbox as Checkbox13, Group as Group97, Loader as Loader38, Stack as Stack172, Text as Text152, Tooltip as Tooltip26 } from "@mantine/core";
26040
+ import { ActionIcon as ActionIcon39, Badge as Badge46, Box as Box54, Button as Button49, Checkbox as Checkbox13, Group as Group97, Loader as Loader38, Stack as Stack172, Text as Text152, Tooltip as Tooltip27 } from "@mantine/core";
25934
26041
  import { IconAlertCircle as IconAlertCircle22, IconArrowLeft as IconArrowLeft7, IconCheck as IconCheck18, IconFolders, IconRefresh as IconRefresh7, IconTemplate } from "@tabler/icons-react";
25935
26042
  function templateSelectionKey(protocolDid, template) {
25936
26043
  return `${protocolDid}::${template.sourceRoomId}`;
@@ -26124,7 +26231,7 @@ var ListDomainFlowsFlowDetail = ({ inputs, block, runtime, updateRuntime, isDisa
26124
26231
  /* @__PURE__ */ React258.createElement(Group97, { wrap: "nowrap", gap: "sm", align: "center" }, /* @__PURE__ */ React258.createElement(Checkbox13, { checked, disabled, onChange: (event) => toggleTemplate(protocol.protocolDid, template, event.currentTarget.checked) }), /* @__PURE__ */ React258.createElement(Stack172, { gap: 2, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React258.createElement(Group97, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React258.createElement(Text152, { fw: 500, size: "sm", lineClamp: 1 }, template.label), template.alreadyImported && /* @__PURE__ */ React258.createElement(Badge46, { size: "xs", color: "gray", variant: "light" }, "imported")), /* @__PURE__ */ React258.createElement(Text152, { size: "xs", c: "dimmed", lineClamp: 1, ff: "monospace" }, template.path || template.sourceRoomId)))
26125
26232
  );
26126
26233
  };
26127
- return /* @__PURE__ */ React258.createElement(Stack172, { gap: "md" }, /* @__PURE__ */ React258.createElement(Stack172, { gap: 2 }, /* @__PURE__ */ React258.createElement(Text152, { fw: 600 }, block?.props?.title || "Linked Flows"), /* @__PURE__ */ React258.createElement(Text152, { size: "sm", c: "dimmed" }, block?.props?.description || "Choose flow templates from protocol deeds. You can select templates across multiple deeds.")), loading && /* @__PURE__ */ React258.createElement(Group97, { justify: "center", py: "sm" }, /* @__PURE__ */ React258.createElement(Loader38, { size: "sm" }), /* @__PURE__ */ React258.createElement(Text152, { size: "sm", c: "dimmed" }, "Loading protocol templates...")), error && /* @__PURE__ */ React258.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React258.createElement(IconAlertCircle22, { size: 16 }), color: "red", styles: actionAlertStyles }, /* @__PURE__ */ React258.createElement(Text152, { size: "sm" }, error)), !loading && !error && protocols.length === 0 && /* @__PURE__ */ React258.createElement(Text152, { size: "sm", c: "dimmed", ta: "center", py: "sm" }, "No protocol deeds with templates were found."), !loading && !error && protocols.length > 0 && view === "deeds" && /* @__PURE__ */ React258.createElement(Stack172, { gap: "xs" }, /* @__PURE__ */ React258.createElement(Group97, { justify: "space-between", gap: "sm" }, /* @__PURE__ */ React258.createElement(Text152, { size: "xs", fw: 600, c: "dimmed" }, "PROTOCOL DEEDS"), /* @__PURE__ */ React258.createElement(Tooltip26, { label: "Refresh protocol deeds", withArrow: true }, /* @__PURE__ */ React258.createElement(ActionIcon38, { variant: "subtle", size: "sm", onClick: () => loadProtocols("refresh"), loading: refreshing, disabled: isDisabled }, /* @__PURE__ */ React258.createElement(IconRefresh7, { size: 16 })))), protocols.map((protocol) => {
26234
+ return /* @__PURE__ */ React258.createElement(Stack172, { gap: "md" }, /* @__PURE__ */ React258.createElement(Stack172, { gap: 2 }, /* @__PURE__ */ React258.createElement(Text152, { fw: 600 }, block?.props?.title || "Linked Flows"), /* @__PURE__ */ React258.createElement(Text152, { size: "sm", c: "dimmed" }, block?.props?.description || "Choose flow templates from protocol deeds. You can select templates across multiple deeds.")), loading && /* @__PURE__ */ React258.createElement(Group97, { justify: "center", py: "sm" }, /* @__PURE__ */ React258.createElement(Loader38, { size: "sm" }), /* @__PURE__ */ React258.createElement(Text152, { size: "sm", c: "dimmed" }, "Loading protocol templates...")), error && /* @__PURE__ */ React258.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React258.createElement(IconAlertCircle22, { size: 16 }), color: "red", styles: actionAlertStyles }, /* @__PURE__ */ React258.createElement(Text152, { size: "sm" }, error)), !loading && !error && protocols.length === 0 && /* @__PURE__ */ React258.createElement(Text152, { size: "sm", c: "dimmed", ta: "center", py: "sm" }, "No protocol deeds with templates were found."), !loading && !error && protocols.length > 0 && view === "deeds" && /* @__PURE__ */ React258.createElement(Stack172, { gap: "xs" }, /* @__PURE__ */ React258.createElement(Group97, { justify: "space-between", gap: "sm" }, /* @__PURE__ */ React258.createElement(Text152, { size: "xs", fw: 600, c: "dimmed" }, "PROTOCOL DEEDS"), /* @__PURE__ */ React258.createElement(Tooltip27, { label: "Refresh protocol deeds", withArrow: true }, /* @__PURE__ */ React258.createElement(ActionIcon39, { variant: "subtle", size: "sm", onClick: () => loadProtocols("refresh"), loading: refreshing, disabled: isDisabled }, /* @__PURE__ */ React258.createElement(IconRefresh7, { size: 16 })))), protocols.map((protocol) => {
26128
26235
  const selectedCount = protocol.templates.filter((template) => isTemplateSelected(selected, protocol.protocolDid, template)).length;
26129
26236
  return /* @__PURE__ */ React258.createElement(
26130
26237
  Box54,
@@ -26146,7 +26253,7 @@ var ListDomainFlowsFlowDetail = ({ inputs, block, runtime, updateRuntime, isDisa
26146
26253
  },
26147
26254
  /* @__PURE__ */ React258.createElement(Stack172, { gap: 6 }, /* @__PURE__ */ React258.createElement(Group97, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React258.createElement(IconFolders, { size: 16, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React258.createElement(Text152, { size: "sm", fw: 500, lineClamp: 1 }, protocol.name)), protocol.description && /* @__PURE__ */ React258.createElement(Text152, { size: "xs", c: "dimmed", lineClamp: 2 }, protocol.description), /* @__PURE__ */ React258.createElement(Group97, { gap: "xs" }, /* @__PURE__ */ React258.createElement(Badge46, { size: "xs", color: "gray", variant: "light" }, protocol.templates.length, " template", protocol.templates.length === 1 ? "" : "s"), selectedCount > 0 && /* @__PURE__ */ React258.createElement(Badge46, { size: "xs", color: "blue", variant: "light" }, selectedCount, " selected"), protocol.importedCount ? /* @__PURE__ */ React258.createElement(Badge46, { size: "xs", color: "gray", variant: "dot" }, protocol.importedCount, " imported") : null))
26148
26255
  );
26149
- })), !loading && !error && view === "templates" && activeProtocol && /* @__PURE__ */ React258.createElement(Stack172, { gap: "xs" }, /* @__PURE__ */ React258.createElement(Group97, { justify: "space-between", gap: "sm" }, /* @__PURE__ */ React258.createElement(Group97, { gap: "xs", style: { minWidth: 0 } }, /* @__PURE__ */ React258.createElement(Tooltip26, { label: "Back to protocol deeds", withArrow: true }, /* @__PURE__ */ React258.createElement(ActionIcon38, { variant: "subtle", size: "sm", onClick: goBackToDeeds }, /* @__PURE__ */ React258.createElement(IconArrowLeft7, { size: 16 }))), /* @__PURE__ */ React258.createElement(IconTemplate, { size: 16, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React258.createElement(Text152, { size: "xs", fw: 600, c: "dimmed", lineClamp: 1 }, activeProtocol.name)), /* @__PURE__ */ React258.createElement(Group97, { gap: "xs" }, /* @__PURE__ */ React258.createElement(Badge46, { size: "xs", color: "blue", variant: "light" }, activeProtocol.templates.filter((template) => isTemplateSelected(selected, activeProtocol.protocolDid, template)).length, " selected"), /* @__PURE__ */ React258.createElement(
26256
+ })), !loading && !error && view === "templates" && activeProtocol && /* @__PURE__ */ React258.createElement(Stack172, { gap: "xs" }, /* @__PURE__ */ React258.createElement(Group97, { justify: "space-between", gap: "sm" }, /* @__PURE__ */ React258.createElement(Group97, { gap: "xs", style: { minWidth: 0 } }, /* @__PURE__ */ React258.createElement(Tooltip27, { label: "Back to protocol deeds", withArrow: true }, /* @__PURE__ */ React258.createElement(ActionIcon39, { variant: "subtle", size: "sm", onClick: goBackToDeeds }, /* @__PURE__ */ React258.createElement(IconArrowLeft7, { size: 16 }))), /* @__PURE__ */ React258.createElement(IconTemplate, { size: 16, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React258.createElement(Text152, { size: "xs", fw: 600, c: "dimmed", lineClamp: 1 }, activeProtocol.name)), /* @__PURE__ */ React258.createElement(Group97, { gap: "xs" }, /* @__PURE__ */ React258.createElement(Badge46, { size: "xs", color: "blue", variant: "light" }, activeProtocol.templates.filter((template) => isTemplateSelected(selected, activeProtocol.protocolDid, template)).length, " selected"), /* @__PURE__ */ React258.createElement(
26150
26257
  Button49,
26151
26258
  {
26152
26259
  size: "compact-xs",
@@ -26294,7 +26401,7 @@ var GovernanceMemberProposalConfig = ({ inputs, onInputsChange }) => {
26294
26401
 
26295
26402
  // src/mantine/blocks/action/actionTypes/governance/memberProposal/GovernanceMemberProposalFlowDetail.tsx
26296
26403
  import React263, { useCallback as useCallback89, useEffect as useEffect94, useMemo as useMemo100, useRef as useRef29, useState as useState116 } from "react";
26297
- import { ActionIcon as ActionIcon39, Button as Button51, Card as Card24, Group as Group98, Loader as Loader41, Paper as Paper20, SegmentedControl as SegmentedControl7, Select as Select8, Stack as Stack177, Text as Text156 } from "@mantine/core";
26404
+ import { ActionIcon as ActionIcon40, Button as Button51, Card as Card24, Group as Group98, Loader as Loader41, Paper as Paper20, SegmentedControl as SegmentedControl7, Select as Select8, Stack as Stack177, Text as Text156 } from "@mantine/core";
26298
26405
  import { IconAlertCircle as IconAlertCircle23, IconCheck as IconCheck19, IconUsers as IconUsers7, IconX as IconX16 } from "@tabler/icons-react";
26299
26406
 
26300
26407
  // src/mantine/blocks/action/actionTypes/governance/_shared/UserSearch.tsx
@@ -26684,7 +26791,7 @@ var GovernanceMemberProposalFlowDetail = ({
26684
26791
  onClick: () => setAddList((prev) => prev.map((x, idx) => idx === i ? { ...x, weight: x.weight + 1 } : x))
26685
26792
  },
26686
26793
  "+"
26687
- )), /* @__PURE__ */ React263.createElement(ActionIcon39, { color: "red", variant: "subtle", size: "sm", disabled: isDisabled, onClick: () => setAddList((prev) => prev.filter((_, idx) => idx !== i)) }, /* @__PURE__ */ React263.createElement(IconX16, { size: 14 }))))))), operation === "remove" && /* @__PURE__ */ React263.createElement(
26794
+ )), /* @__PURE__ */ React263.createElement(ActionIcon40, { color: "red", variant: "subtle", size: "sm", disabled: isDisabled, onClick: () => setAddList((prev) => prev.filter((_, idx) => idx !== i)) }, /* @__PURE__ */ React263.createElement(IconX16, { size: 14 }))))))), operation === "remove" && /* @__PURE__ */ React263.createElement(
26688
26795
  Select8,
26689
26796
  {
26690
26797
  label: "Member to remove",
@@ -28384,7 +28491,7 @@ import { IconPlugConnected } from "@tabler/icons-react";
28384
28491
 
28385
28492
  // src/mantine/blocks/action/actionTypes/governance/_shared/EntityDidField.tsx
28386
28493
  import React282, { useCallback as useCallback97, useMemo as useMemo105 } from "react";
28387
- import { Button as Button56, Stack as Stack189, Text as Text170, Tooltip as Tooltip27 } from "@mantine/core";
28494
+ import { Button as Button56, Stack as Stack189, Text as Text170, Tooltip as Tooltip28 } from "@mantine/core";
28388
28495
  import { IconWorldPin } from "@tabler/icons-react";
28389
28496
  var EntityDidField = ({ label, description, value, onChange, isDisabled, placeholder }) => {
28390
28497
  const handlers = useBlocknoteHandlers();
@@ -28410,7 +28517,7 @@ var EntityDidField = ({ label, description, value, onChange, isDisabled, placeho
28410
28517
  disabled: isDisabled,
28411
28518
  size: "sm",
28412
28519
  rightSectionWidth: 130,
28413
- rightSection: currentDid ? /* @__PURE__ */ React282.createElement(Tooltip27, { label: currentDid, position: "top", withArrow: true }, /* @__PURE__ */ React282.createElement(Button56, { variant: "light", size: "compact-xs", leftSection: /* @__PURE__ */ React282.createElement(IconWorldPin, { size: 12 }), onClick: useCurrent, disabled: isDisabled || isCurrent }, isCurrent ? "This domain" : "Use this domain")) : void 0
28520
+ rightSection: currentDid ? /* @__PURE__ */ React282.createElement(Tooltip28, { label: currentDid, position: "top", withArrow: true }, /* @__PURE__ */ React282.createElement(Button56, { variant: "light", size: "compact-xs", leftSection: /* @__PURE__ */ React282.createElement(IconWorldPin, { size: 12 }), onClick: useCurrent, disabled: isDisabled || isCurrent }, isCurrent ? "This domain" : "Use this domain")) : void 0
28414
28521
  }
28415
28522
  ), isCurrent && /* @__PURE__ */ React282.createElement(Text170, { size: "xs", c: "dimmed" }, "Using the current domain's DID."));
28416
28523
  };
@@ -28568,7 +28675,7 @@ import { IconSitemap as IconSitemap2 } from "@tabler/icons-react";
28568
28675
 
28569
28676
  // src/mantine/blocks/action/actionTypes/governance/daoManageSubDaos/GovernanceDaoManageSubDaosFlowDetail.tsx
28570
28677
  import React286, { useState as useState138 } from "react";
28571
- import { ActionIcon as ActionIcon40, Button as Button57, Group as Group102, Paper as Paper22, Stack as Stack191, Text as Text172 } from "@mantine/core";
28678
+ import { ActionIcon as ActionIcon41, Button as Button57, Group as Group102, Paper as Paper22, Stack as Stack191, Text as Text172 } from "@mantine/core";
28572
28679
  import { IconSitemap, IconX as IconX17 } from "@tabler/icons-react";
28573
28680
 
28574
28681
  // src/mantine/blocks/action/actionTypes/governance/_shared/GroupAccountField.tsx
@@ -28665,7 +28772,7 @@ var AddressList = ({ label, entryLabel, entryDescription, addresses, onChange, i
28665
28772
  onChange([...addresses, addr]);
28666
28773
  setDraft("");
28667
28774
  };
28668
- return /* @__PURE__ */ React286.createElement(Stack191, { gap: "xs" }, /* @__PURE__ */ React286.createElement(Text172, { size: "xs", fw: 600, c: "dimmed" }, label), addresses.map((addr, i) => /* @__PURE__ */ React286.createElement(Paper22, { key: addr, withBorder: true, p: "sm", style: { borderRadius: 10 } }, /* @__PURE__ */ React286.createElement(Group102, { wrap: "nowrap", gap: "sm", align: "center" }, /* @__PURE__ */ React286.createElement(Text172, { size: "sm", style: { flex: 1, minWidth: 0, wordBreak: "break-all" } }, addr), /* @__PURE__ */ React286.createElement(ActionIcon40, { color: "red", variant: "subtle", size: "sm", disabled: isDisabled, onClick: () => onChange(addresses.filter((_, idx) => idx !== i)) }, /* @__PURE__ */ React286.createElement(IconX17, { size: 14 }))))), /* @__PURE__ */ React286.createElement(Group102, { gap: "xs", wrap: "nowrap", align: "flex-end" }, /* @__PURE__ */ React286.createElement("div", { style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React286.createElement(GroupAccountField, { label: entryLabel, description: entryDescription, value: draft, onChange: setDraft, isDisabled })), /* @__PURE__ */ React286.createElement(Button57, { size: "sm", variant: "light", onClick: handleAdd, disabled: isDisabled || !draft.trim() || addresses.includes(draft.trim()) }, "Add")));
28775
+ return /* @__PURE__ */ React286.createElement(Stack191, { gap: "xs" }, /* @__PURE__ */ React286.createElement(Text172, { size: "xs", fw: 600, c: "dimmed" }, label), addresses.map((addr, i) => /* @__PURE__ */ React286.createElement(Paper22, { key: addr, withBorder: true, p: "sm", style: { borderRadius: 10 } }, /* @__PURE__ */ React286.createElement(Group102, { wrap: "nowrap", gap: "sm", align: "center" }, /* @__PURE__ */ React286.createElement(Text172, { size: "sm", style: { flex: 1, minWidth: 0, wordBreak: "break-all" } }, addr), /* @__PURE__ */ React286.createElement(ActionIcon41, { color: "red", variant: "subtle", size: "sm", disabled: isDisabled, onClick: () => onChange(addresses.filter((_, idx) => idx !== i)) }, /* @__PURE__ */ React286.createElement(IconX17, { size: 14 }))))), /* @__PURE__ */ React286.createElement(Group102, { gap: "xs", wrap: "nowrap", align: "flex-end" }, /* @__PURE__ */ React286.createElement("div", { style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React286.createElement(GroupAccountField, { label: entryLabel, description: entryDescription, value: draft, onChange: setDraft, isDisabled })), /* @__PURE__ */ React286.createElement(Button57, { size: "sm", variant: "light", onClick: handleAdd, disabled: isDisabled || !draft.trim() || addresses.includes(draft.trim()) }, "Add")));
28669
28776
  };
28670
28777
  var GovernanceDaoManageSubDaosFlowDetail = (props) => {
28671
28778
  const { isDisabled } = props;
@@ -28891,7 +28998,7 @@ import { IconRosetteDiscountCheck as IconRosetteDiscountCheck2 } from "@tabler/i
28891
28998
 
28892
28999
  // src/mantine/blocks/action/actionTypes/governance/daoAcceptToMarketplace/GovernanceDaoAcceptToMarketplaceFlowDetail.tsx
28893
29000
  import React289, { useMemo as useMemo107, useState as useState141 } from "react";
28894
- import { Button as Button58, Tooltip as Tooltip28 } from "@mantine/core";
29001
+ import { Button as Button58, Tooltip as Tooltip29 } from "@mantine/core";
28895
29002
  import { IconRosetteDiscountCheck } from "@tabler/icons-react";
28896
29003
  var GovernanceDaoAcceptToMarketplaceFlowDetail = (props) => {
28897
29004
  const { isDisabled } = props;
@@ -28941,7 +29048,7 @@ var GovernanceDaoAcceptToMarketplaceFlowDetail = (props) => {
28941
29048
  disabled: isDisabled,
28942
29049
  size: "sm",
28943
29050
  rightSectionWidth: 130,
28944
- rightSection: currentRelayerDid ? /* @__PURE__ */ React289.createElement(Tooltip28, { label: currentRelayerDid, position: "top", withArrow: true }, /* @__PURE__ */ React289.createElement(Button58, { variant: "light", size: "compact-xs", onClick: () => setRelayerNodeDid(currentRelayerDid), disabled: isDisabled || isCurrentRelayer }, isCurrentRelayer ? "This relayer" : "Use this relayer")) : void 0
29051
+ rightSection: currentRelayerDid ? /* @__PURE__ */ React289.createElement(Tooltip29, { label: currentRelayerDid, position: "top", withArrow: true }, /* @__PURE__ */ React289.createElement(Button58, { variant: "light", size: "compact-xs", onClick: () => setRelayerNodeDid(currentRelayerDid), disabled: isDisabled || isCurrentRelayer }, isCurrentRelayer ? "This relayer" : "Use this relayer")) : void 0
28945
29052
  }
28946
29053
  ),
28947
29054
  /* @__PURE__ */ React289.createElement(
@@ -29908,7 +30015,7 @@ import { IconWorld as IconWorld2 } from "@tabler/icons-react";
29908
30015
 
29909
30016
  // src/mantine/blocks/action/actionTypes/httpRequest/HttpRequestConfig.tsx
29910
30017
  import React301, { useEffect as useEffect102, useState as useState153, useCallback as useCallback98 } from "react";
29911
- import { Stack as Stack195, Text as Text183, Button as Button59, Group as Group103, ActionIcon as ActionIcon41, Paper as Paper23, Alert as Alert40, Code as Code10 } from "@mantine/core";
30018
+ import { Stack as Stack195, Text as Text183, Button as Button59, Group as Group103, ActionIcon as ActionIcon42, Paper as Paper23, Alert as Alert40, Code as Code10 } from "@mantine/core";
29912
30019
  import { IconTrash as IconTrash9, IconPlus as IconPlus8, IconInfoCircle as IconInfoCircle5 } from "@tabler/icons-react";
29913
30020
  var HttpRequestConfig = ({ inputs, onInputsChange, editor, blockId }) => {
29914
30021
  const [local, setLocal] = useState153(() => parseHttpRequestInputs(inputs));
@@ -29993,7 +30100,7 @@ var HttpRequestConfig = ({ inputs, onInputsChange, editor, blockId }) => {
29993
30100
  currentBlockId: blockId,
29994
30101
  size: "sm"
29995
30102
  }
29996
- ), /* @__PURE__ */ React301.createElement(ActionIcon41, { color: "red", variant: "subtle", onClick: () => handleRemoveHeader(index) }, /* @__PURE__ */ React301.createElement(IconTrash9, { size: 16 }))))))), /* @__PURE__ */ React301.createElement(Stack195, { gap: "xs" }, /* @__PURE__ */ React301.createElement(Group103, { justify: "space-between" }, /* @__PURE__ */ React301.createElement(Text183, { size: "sm", c: "neutralColor.7" }, "Request Body (JSON)"), /* @__PURE__ */ React301.createElement(Button59, { size: "xs", variant: "light", leftSection: /* @__PURE__ */ React301.createElement(IconPlus8, { size: 14 }), onClick: handleAddBodyField }, "Add Field")), /* @__PURE__ */ React301.createElement(Text183, { size: "xs", c: "dimmed" }, "Build your JSON request body as key-value pairs"), local.body.length > 0 && /* @__PURE__ */ React301.createElement(Stack195, { gap: "xs" }, local.body.map((field, index) => /* @__PURE__ */ React301.createElement(Paper23, { key: index, p: "xs" }, /* @__PURE__ */ React301.createElement(Group103, { gap: "xs", align: "flex-start" }, /* @__PURE__ */ React301.createElement(
30103
+ ), /* @__PURE__ */ React301.createElement(ActionIcon42, { color: "red", variant: "subtle", onClick: () => handleRemoveHeader(index) }, /* @__PURE__ */ React301.createElement(IconTrash9, { size: 16 }))))))), /* @__PURE__ */ React301.createElement(Stack195, { gap: "xs" }, /* @__PURE__ */ React301.createElement(Group103, { justify: "space-between" }, /* @__PURE__ */ React301.createElement(Text183, { size: "sm", c: "neutralColor.7" }, "Request Body (JSON)"), /* @__PURE__ */ React301.createElement(Button59, { size: "xs", variant: "light", leftSection: /* @__PURE__ */ React301.createElement(IconPlus8, { size: 14 }), onClick: handleAddBodyField }, "Add Field")), /* @__PURE__ */ React301.createElement(Text183, { size: "xs", c: "dimmed" }, "Build your JSON request body as key-value pairs"), local.body.length > 0 && /* @__PURE__ */ React301.createElement(Stack195, { gap: "xs" }, local.body.map((field, index) => /* @__PURE__ */ React301.createElement(Paper23, { key: index, p: "xs" }, /* @__PURE__ */ React301.createElement(Group103, { gap: "xs", align: "flex-start" }, /* @__PURE__ */ React301.createElement(
29997
30104
  DataInput,
29998
30105
  {
29999
30106
  placeholder: "Field key (e.g., name)",
@@ -30013,7 +30120,7 @@ var HttpRequestConfig = ({ inputs, onInputsChange, editor, blockId }) => {
30013
30120
  currentBlockId: blockId,
30014
30121
  size: "sm"
30015
30122
  }
30016
- ), /* @__PURE__ */ React301.createElement(ActionIcon41, { color: "red", variant: "subtle", onClick: () => handleRemoveBodyField(index) }, /* @__PURE__ */ React301.createElement(IconTrash9, { size: 16 }))))))), /* @__PURE__ */ React301.createElement(Alert40, { icon: /* @__PURE__ */ React301.createElement(IconInfoCircle5, { size: 16 }), title: "Response Schema", styles: actionAlertStyles }, /* @__PURE__ */ React301.createElement(Text183, { size: "xs" }, "Define the expected structure of your API response. This allows other blocks to reference specific fields from the response data using the DataInput component.")), /* @__PURE__ */ React301.createElement(Stack195, { gap: "xs" }, /* @__PURE__ */ React301.createElement(Text183, { size: "sm", c: "neutralColor.7" }, "How it works"), /* @__PURE__ */ React301.createElement(Text183, { size: "xs", c: "dimmed" }, "1. Define response fields using dot notation (e.g., ", /* @__PURE__ */ React301.createElement(Code10, null, "customer.email"), ")"), /* @__PURE__ */ React301.createElement(Text183, { size: "xs", c: "dimmed" }, "2. Fields become available in DataInput selectors across other blocks"), /* @__PURE__ */ React301.createElement(Text183, { size: "xs", c: "dimmed" }, "3. Reference them like: ", /* @__PURE__ */ React301.createElement(Code10, null, `{{${blockId}.response.customer.email}}`))), /* @__PURE__ */ React301.createElement(Stack195, { gap: "xs" }, /* @__PURE__ */ React301.createElement(Group103, { justify: "space-between" }, /* @__PURE__ */ React301.createElement(Text183, { size: "sm", c: "neutralColor.7" }, "Response Fields"), /* @__PURE__ */ React301.createElement(Button59, { size: "xs", variant: "light", leftSection: /* @__PURE__ */ React301.createElement(IconPlus8, { size: 14 }), onClick: handleAddSchemaField }, "Add Field")), schemaFields.length === 0 ? /* @__PURE__ */ React301.createElement(Code10, { p: "md" }, 'No response fields defined yet. Click "Add Field" to start defining your response structure.') : /* @__PURE__ */ React301.createElement(Stack195, { gap: "md" }, schemaFields.map((field, index) => /* @__PURE__ */ React301.createElement(Paper23, { key: index, p: "md", withBorder: true }, /* @__PURE__ */ React301.createElement(Stack195, { gap: "sm" }, /* @__PURE__ */ React301.createElement(Group103, { justify: "space-between", align: "flex-start" }, /* @__PURE__ */ React301.createElement(Text183, { size: "sm", fw: 500 }, "Field ", index + 1), /* @__PURE__ */ React301.createElement(ActionIcon41, { color: "red", variant: "subtle", onClick: () => handleRemoveSchemaField(index) }, /* @__PURE__ */ React301.createElement(IconTrash9, { size: 16 }))), /* @__PURE__ */ React301.createElement(
30123
+ ), /* @__PURE__ */ React301.createElement(ActionIcon42, { color: "red", variant: "subtle", onClick: () => handleRemoveBodyField(index) }, /* @__PURE__ */ React301.createElement(IconTrash9, { size: 16 }))))))), /* @__PURE__ */ React301.createElement(Alert40, { icon: /* @__PURE__ */ React301.createElement(IconInfoCircle5, { size: 16 }), title: "Response Schema", styles: actionAlertStyles }, /* @__PURE__ */ React301.createElement(Text183, { size: "xs" }, "Define the expected structure of your API response. This allows other blocks to reference specific fields from the response data using the DataInput component.")), /* @__PURE__ */ React301.createElement(Stack195, { gap: "xs" }, /* @__PURE__ */ React301.createElement(Text183, { size: "sm", c: "neutralColor.7" }, "How it works"), /* @__PURE__ */ React301.createElement(Text183, { size: "xs", c: "dimmed" }, "1. Define response fields using dot notation (e.g., ", /* @__PURE__ */ React301.createElement(Code10, null, "customer.email"), ")"), /* @__PURE__ */ React301.createElement(Text183, { size: "xs", c: "dimmed" }, "2. Fields become available in DataInput selectors across other blocks"), /* @__PURE__ */ React301.createElement(Text183, { size: "xs", c: "dimmed" }, "3. Reference them like: ", /* @__PURE__ */ React301.createElement(Code10, null, `{{${blockId}.response.customer.email}}`))), /* @__PURE__ */ React301.createElement(Stack195, { gap: "xs" }, /* @__PURE__ */ React301.createElement(Group103, { justify: "space-between" }, /* @__PURE__ */ React301.createElement(Text183, { size: "sm", c: "neutralColor.7" }, "Response Fields"), /* @__PURE__ */ React301.createElement(Button59, { size: "xs", variant: "light", leftSection: /* @__PURE__ */ React301.createElement(IconPlus8, { size: 14 }), onClick: handleAddSchemaField }, "Add Field")), schemaFields.length === 0 ? /* @__PURE__ */ React301.createElement(Code10, { p: "md" }, 'No response fields defined yet. Click "Add Field" to start defining your response structure.') : /* @__PURE__ */ React301.createElement(Stack195, { gap: "md" }, schemaFields.map((field, index) => /* @__PURE__ */ React301.createElement(Paper23, { key: index, p: "md", withBorder: true }, /* @__PURE__ */ React301.createElement(Stack195, { gap: "sm" }, /* @__PURE__ */ React301.createElement(Group103, { justify: "space-between", align: "flex-start" }, /* @__PURE__ */ React301.createElement(Text183, { size: "sm", fw: 500 }, "Field ", index + 1), /* @__PURE__ */ React301.createElement(ActionIcon42, { color: "red", variant: "subtle", onClick: () => handleRemoveSchemaField(index) }, /* @__PURE__ */ React301.createElement(IconTrash9, { size: 16 }))), /* @__PURE__ */ React301.createElement(
30017
30124
  BaseTextInput,
30018
30125
  {
30019
30126
  label: "Field Path",
@@ -30066,7 +30173,7 @@ var HttpRequestConfig = ({ inputs, onInputsChange, editor, blockId }) => {
30066
30173
 
30067
30174
  // src/mantine/blocks/action/actionTypes/httpRequest/HttpRequestFlowDetail.tsx
30068
30175
  import React302, { useMemo as useMemo108, useState as useState154 } from "react";
30069
- import { Group as Group104, Stack as Stack196, Text as Text184, ActionIcon as ActionIcon42, Badge as Badge47, Collapse as Collapse8, Code as Code11, Loader as Loader48 } from "@mantine/core";
30176
+ import { Group as Group104, Stack as Stack196, Text as Text184, ActionIcon as ActionIcon43, Badge as Badge47, Collapse as Collapse8, Code as Code11, Loader as Loader48 } from "@mantine/core";
30070
30177
  import { IconSend as IconSend7, IconChevronDown as IconChevronDown8, IconChevronUp as IconChevronUp4, IconAlertTriangle as IconAlertTriangle11 } from "@tabler/icons-react";
30071
30178
  var HttpRequestFlowDetail = ({ inputs, runtime, isDisabled, executeAction }) => {
30072
30179
  const [isLoading, setIsLoading] = useState154(false);
@@ -30136,7 +30243,7 @@ var HttpRequestFlowDetail = ({ inputs, runtime, isDisabled, executeAction }) =>
30136
30243
  }
30137
30244
  };
30138
30245
  const hasDetails = headers.length > 0 || body.length > 0 || !!response;
30139
- return /* @__PURE__ */ React302.createElement(Stack196, { gap: "md" }, /* @__PURE__ */ React302.createElement(Group104, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React302.createElement(Badge47, { size: "sm", variant: "filled", color: getMethodColor(method) }, method), /* @__PURE__ */ React302.createElement(Text184, { size: "xs", c: "dimmed", contentEditable: false, style: { wordBreak: "break-all", overflow: "hidden", textOverflow: "ellipsis" } }, endpoint || "No endpoint configured"), status !== "idle" && /* @__PURE__ */ React302.createElement(Badge47, { size: "xs", variant: "dot", color: getStatusColor5(status) }, status)), /* @__PURE__ */ React302.createElement(Group104, { gap: "xs" }, /* @__PURE__ */ React302.createElement(BasePrimaryButton, { leftSection: isLoading ? /* @__PURE__ */ React302.createElement(Loader48, { size: 14 }) : /* @__PURE__ */ React302.createElement(IconSend7, { size: 14 }), onClick: handleExecuteRequest, disabled: isDisabled || isLoading || !endpoint }, isLoading ? "Sending..." : "Execute"), /* @__PURE__ */ React302.createElement(ActionIcon42, { variant: "subtle", onClick: () => setShowDetails(!showDetails), disabled: !hasDetails }, showDetails ? /* @__PURE__ */ React302.createElement(IconChevronUp4, { size: 16 }) : /* @__PURE__ */ React302.createElement(IconChevronDown8, { size: 16 }))), /* @__PURE__ */ React302.createElement(Collapse8, { in: showDetails }, /* @__PURE__ */ React302.createElement(Stack196, { gap: "md" }, validationWarnings.length > 0 && /* @__PURE__ */ React302.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React302.createElement(IconAlertTriangle11, { size: 16 }), title: "Schema Validation Warnings", color: "yellow", styles: actionAlertStyles }, /* @__PURE__ */ React302.createElement(Stack196, { gap: "xs" }, /* @__PURE__ */ React302.createElement(Text184, { size: "xs" }, "The API response does not match the defined schema:"), validationWarnings.map((warning, index) => /* @__PURE__ */ React302.createElement(Text184, { key: index, size: "xs", c: "dimmed" }, "\u2022 ", warning)))), headers.length > 0 && /* @__PURE__ */ React302.createElement(Stack196, { gap: "xs" }, /* @__PURE__ */ React302.createElement(Text184, { size: "xs", fw: 600, c: "dimmed" }, "Headers:"), /* @__PURE__ */ React302.createElement(Code11, { block: true, style: { fontSize: "11px" } }, JSON.stringify(
30246
+ return /* @__PURE__ */ React302.createElement(Stack196, { gap: "md" }, /* @__PURE__ */ React302.createElement(Group104, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React302.createElement(Badge47, { size: "sm", variant: "filled", color: getMethodColor(method) }, method), /* @__PURE__ */ React302.createElement(Text184, { size: "xs", c: "dimmed", contentEditable: false, style: { wordBreak: "break-all", overflow: "hidden", textOverflow: "ellipsis" } }, endpoint || "No endpoint configured"), status !== "idle" && /* @__PURE__ */ React302.createElement(Badge47, { size: "xs", variant: "dot", color: getStatusColor5(status) }, status)), /* @__PURE__ */ React302.createElement(Group104, { gap: "xs" }, /* @__PURE__ */ React302.createElement(BasePrimaryButton, { leftSection: isLoading ? /* @__PURE__ */ React302.createElement(Loader48, { size: 14 }) : /* @__PURE__ */ React302.createElement(IconSend7, { size: 14 }), onClick: handleExecuteRequest, disabled: isDisabled || isLoading || !endpoint }, isLoading ? "Sending..." : "Execute"), /* @__PURE__ */ React302.createElement(ActionIcon43, { variant: "subtle", onClick: () => setShowDetails(!showDetails), disabled: !hasDetails }, showDetails ? /* @__PURE__ */ React302.createElement(IconChevronUp4, { size: 16 }) : /* @__PURE__ */ React302.createElement(IconChevronDown8, { size: 16 }))), /* @__PURE__ */ React302.createElement(Collapse8, { in: showDetails }, /* @__PURE__ */ React302.createElement(Stack196, { gap: "md" }, validationWarnings.length > 0 && /* @__PURE__ */ React302.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React302.createElement(IconAlertTriangle11, { size: 16 }), title: "Schema Validation Warnings", color: "yellow", styles: actionAlertStyles }, /* @__PURE__ */ React302.createElement(Stack196, { gap: "xs" }, /* @__PURE__ */ React302.createElement(Text184, { size: "xs" }, "The API response does not match the defined schema:"), validationWarnings.map((warning, index) => /* @__PURE__ */ React302.createElement(Text184, { key: index, size: "xs", c: "dimmed" }, "\u2022 ", warning)))), headers.length > 0 && /* @__PURE__ */ React302.createElement(Stack196, { gap: "xs" }, /* @__PURE__ */ React302.createElement(Text184, { size: "xs", fw: 600, c: "dimmed" }, "Headers:"), /* @__PURE__ */ React302.createElement(Code11, { block: true, style: { fontSize: "11px" } }, JSON.stringify(
30140
30247
  headers.reduce(
30141
30248
  (acc, h) => {
30142
30249
  if (h.key && h.value) acc[h.key] = h.value;
@@ -30512,7 +30619,7 @@ var StableSurvey = React305.memo(Survey9, (prev, next) => prev.model === next.mo
30512
30619
 
30513
30620
  // src/mantine/blocks/action/actionTypes/_shared/groupExecution/ActAsGroupSection.tsx
30514
30621
  import React306, { useEffect as useEffect105, useMemo as useMemo111, useRef as useRef35, useState as useState157 } from "react";
30515
- import { Alert as Alert43, Group as Group106, Loader as Loader51, SegmentedControl as SegmentedControl13, Stack as Stack199, Text as Text187, Tooltip as Tooltip29 } from "@mantine/core";
30622
+ import { Alert as Alert43, Group as Group106, Loader as Loader51, SegmentedControl as SegmentedControl13, Stack as Stack199, Text as Text187, Tooltip as Tooltip30 } from "@mantine/core";
30516
30623
  import { IconInfoCircle as IconInfoCircle8, IconUsersGroup as IconUsersGroup4 } from "@tabler/icons-react";
30517
30624
  function emptyActAsGroupState() {
30518
30625
  return { actAsGroup: false, groupCoreAddress: "", proposalTitle: "", proposalDescription: "" };
@@ -30599,7 +30706,7 @@ var ActAsGroupSection = ({ value, onChange, isDisabled, actionLabel, authzFilter
30599
30706
  )), value.actAsGroup && /* @__PURE__ */ React306.createElement(React306.Fragment, null, /* @__PURE__ */ React306.createElement(
30600
30707
  BaseSelect,
30601
30708
  {
30602
- label: /* @__PURE__ */ React306.createElement(Group106, { gap: 4, display: "inline-flex" }, "POD", value.groupCoreAddress && /* @__PURE__ */ React306.createElement(Tooltip29, { label: value.groupCoreAddress, withArrow: true, multiline: true, maw: 440, events: { hover: true, focus: true, touch: true } }, /* @__PURE__ */ React306.createElement(IconInfoCircle8, { size: 13, style: { opacity: 0.6, cursor: "help", verticalAlign: "middle" } }))),
30709
+ label: /* @__PURE__ */ React306.createElement(Group106, { gap: 4, display: "inline-flex" }, "POD", value.groupCoreAddress && /* @__PURE__ */ React306.createElement(Tooltip30, { label: value.groupCoreAddress, withArrow: true, multiline: true, maw: 440, events: { hover: true, focus: true, touch: true } }, /* @__PURE__ */ React306.createElement(IconInfoCircle8, { size: 13, style: { opacity: 0.6, cursor: "help", verticalAlign: "middle" } }))),
30603
30710
  description: "One of your PODs \u2014 the action is performed on its behalf.",
30604
30711
  placeholder: loading ? "Loading your PODs\u2026" : "Search or select a POD",
30605
30712
  value: value.groupCoreAddress || null,
@@ -31229,7 +31336,7 @@ var EvaluateBidConfig = ({ inputs, onInputsChange, editor, blockId }) => {
31229
31336
 
31230
31337
  // src/mantine/blocks/action/actionTypes/evaluateBid/EvaluateBidFlowDetail.tsx
31231
31338
  import React314, { useCallback as useCallback105, useEffect as useEffect109, useMemo as useMemo114, useRef as useRef38, useState as useState164 } from "react";
31232
- import { ActionIcon as ActionIcon44, Badge as Badge49, Box as Box57, Button as Button62, Divider as Divider21, Group as Group111, Loader as Loader55, Stack as Stack205, Text as Text193, UnstyledButton as UnstyledButton4 } from "@mantine/core";
31339
+ import { ActionIcon as ActionIcon45, Badge as Badge49, Box as Box57, Button as Button62, Divider as Divider21, Group as Group111, Loader as Loader55, Stack as Stack205, Text as Text193, UnstyledButton as UnstyledButton4 } from "@mantine/core";
31233
31340
  import { IconArrowLeft as IconArrowLeft8, IconCheck as IconCheck21, IconFilter } from "@tabler/icons-react";
31234
31341
 
31235
31342
  // src/mantine/components/CollapsibleSection.tsx
@@ -31254,7 +31361,7 @@ function CollapsibleSection({ title, defaultOpen = false, badge, children }) {
31254
31361
 
31255
31362
  // src/mantine/blocks/action/actionTypes/_shared/dataExport/DownloadCsvButton.tsx
31256
31363
  import React311, { useCallback as useCallback104, useState as useState162 } from "react";
31257
- import { ActionIcon as ActionIcon43 } from "@mantine/core";
31364
+ import { ActionIcon as ActionIcon44 } from "@mantine/core";
31258
31365
  import { IconDownload as IconDownload4 } from "@tabler/icons-react";
31259
31366
  var DownloadCsvButton = ({ onDownload, disabled, label = "Download CSV" }) => {
31260
31367
  const [busy, setBusy] = useState162(false);
@@ -31266,7 +31373,7 @@ var DownloadCsvButton = ({ onDownload, disabled, label = "Download CSV" }) => {
31266
31373
  setBusy(false);
31267
31374
  }
31268
31375
  }, [onDownload]);
31269
- return /* @__PURE__ */ React311.createElement(ActionIcon43, { variant: "subtle", color: "gray", size: "sm", "aria-label": label, title: label, loading: busy, disabled, onClick: handleClick }, /* @__PURE__ */ React311.createElement(IconDownload4, { size: 16 }));
31376
+ return /* @__PURE__ */ React311.createElement(ActionIcon44, { variant: "subtle", color: "gray", size: "sm", "aria-label": label, title: label, loading: busy, disabled, onClick: handleClick }, /* @__PURE__ */ React311.createElement(IconDownload4, { size: 16 }));
31270
31377
  };
31271
31378
 
31272
31379
  // src/mantine/blocks/action/actionTypes/_shared/dataExport/buildBidRows.ts
@@ -31774,7 +31881,7 @@ var EvaluateBidFlowDetail = ({
31774
31881
  bidData = typeof selectedBid.data === "string" ? JSON.parse(selectedBid.data) : selectedBid.data;
31775
31882
  } catch {
31776
31883
  }
31777
- return /* @__PURE__ */ React314.createElement(Stack205, { gap: "md" }, /* @__PURE__ */ React314.createElement(Group111, { gap: "xs", align: "center" }, /* @__PURE__ */ React314.createElement(ActionIcon44, { variant: "subtle", color: "gray", size: "sm", onClick: () => setSelectedBidId("") }, /* @__PURE__ */ React314.createElement(IconArrowLeft8, { size: 16 })), /* @__PURE__ */ React314.createElement(Text193, { fw: 500, size: "sm", truncate: true, style: { flex: 1, minWidth: 0 } }, t("actionTypes.evaluateBid.flow.bidNumber", { id: selectedBid.id, defaultValue: `Bid #${selectedBid.id}` })), /* @__PURE__ */ React314.createElement(DownloadCsvButton, { onDownload: () => downloadBidsCsv([selectedBid], `bid-${selectedBid.id}.csv`), label: "Download bid CSV" })), /* @__PURE__ */ React314.createElement(Group111, { gap: 16, align: "center", style: { width: "100%" } }, /* @__PURE__ */ React314.createElement(
31884
+ return /* @__PURE__ */ React314.createElement(Stack205, { gap: "md" }, /* @__PURE__ */ React314.createElement(Group111, { gap: "xs", align: "center" }, /* @__PURE__ */ React314.createElement(ActionIcon45, { variant: "subtle", color: "gray", size: "sm", onClick: () => setSelectedBidId("") }, /* @__PURE__ */ React314.createElement(IconArrowLeft8, { size: 16 })), /* @__PURE__ */ React314.createElement(Text193, { fw: 500, size: "sm", truncate: true, style: { flex: 1, minWidth: 0 } }, t("actionTypes.evaluateBid.flow.bidNumber", { id: selectedBid.id, defaultValue: `Bid #${selectedBid.id}` })), /* @__PURE__ */ React314.createElement(DownloadCsvButton, { onDownload: () => downloadBidsCsv([selectedBid], `bid-${selectedBid.id}.csv`), label: "Download bid CSV" })), /* @__PURE__ */ React314.createElement(Group111, { gap: 16, align: "center", style: { width: "100%" } }, /* @__PURE__ */ React314.createElement(
31778
31885
  Box57,
31779
31886
  {
31780
31887
  style: {
@@ -31868,7 +31975,7 @@ var EvaluateBidFlowDetail = ({
31868
31975
  }
31869
31976
  },
31870
31977
  /* @__PURE__ */ React314.createElement(Text193, { size: "sm", fw: 500, c: activeFilter === tab.value ? "var(--mantine-color-text)" : "dimmed" }, tab.label)
31871
- ))), /* @__PURE__ */ React314.createElement(Group111, { gap: 4 }, /* @__PURE__ */ React314.createElement(DownloadCsvButton, { onDownload: handleDownloadBidsCsv, disabled: loadingBids || bids.length === 0, label: "Download bids CSV" }), /* @__PURE__ */ React314.createElement(ActionIcon44, { variant: "subtle", color: "gray", size: "sm" }, /* @__PURE__ */ React314.createElement(IconFilter, { size: 16 })))), loadingBids && /* @__PURE__ */ React314.createElement(Group111, { gap: "xs", justify: "center", py: "md" }, /* @__PURE__ */ React314.createElement(Loader55, { size: "xs" }), /* @__PURE__ */ React314.createElement(Text193, { size: "xs", c: "dimmed" }, t("actionTypes.evaluateBid.flow.loadingBids", { defaultValue: "Loading bids..." }))), !loadingBids && filteredBids.length === 0 && /* @__PURE__ */ React314.createElement(Text193, { size: "sm", c: "dimmed", ta: "center", py: "md" }, bids.length === 0 ? t("actionTypes.evaluateBid.flow.empty.allCollections", { defaultValue: "No bids available for this collection." }) : t("actionTypes.evaluateBid.flow.empty.filtered", { filter: activeFilter, defaultValue: `No ${activeFilter} bids found.` })), filteredBids.length > 0 && /* @__PURE__ */ React314.createElement(Stack205, { gap: 12 }, filteredBids.map((bid) => {
31978
+ ))), /* @__PURE__ */ React314.createElement(Group111, { gap: 4 }, /* @__PURE__ */ React314.createElement(DownloadCsvButton, { onDownload: handleDownloadBidsCsv, disabled: loadingBids || bids.length === 0, label: "Download bids CSV" }), /* @__PURE__ */ React314.createElement(ActionIcon45, { variant: "subtle", color: "gray", size: "sm" }, /* @__PURE__ */ React314.createElement(IconFilter, { size: 16 })))), loadingBids && /* @__PURE__ */ React314.createElement(Group111, { gap: "xs", justify: "center", py: "md" }, /* @__PURE__ */ React314.createElement(Loader55, { size: "xs" }), /* @__PURE__ */ React314.createElement(Text193, { size: "xs", c: "dimmed" }, t("actionTypes.evaluateBid.flow.loadingBids", { defaultValue: "Loading bids..." }))), !loadingBids && filteredBids.length === 0 && /* @__PURE__ */ React314.createElement(Text193, { size: "sm", c: "dimmed", ta: "center", py: "md" }, bids.length === 0 ? t("actionTypes.evaluateBid.flow.empty.allCollections", { defaultValue: "No bids available for this collection." }) : t("actionTypes.evaluateBid.flow.empty.filtered", { filter: activeFilter, defaultValue: `No ${activeFilter} bids found.` })), filteredBids.length > 0 && /* @__PURE__ */ React314.createElement(Stack205, { gap: 12 }, filteredBids.map((bid) => {
31872
31979
  const status = getBidStatus(bid, t);
31873
31980
  const profile = profilesByDid[bid.did];
31874
31981
  const displayName = profile?.displayname || bid.did || bid.address;
@@ -32089,7 +32196,7 @@ var ClaimConfig = ({ inputs, onInputsChange, editor, blockId }) => {
32089
32196
 
32090
32197
  // src/mantine/blocks/action/actionTypes/claim/ClaimFlowDetail.tsx
32091
32198
  import React316, { useCallback as useCallback107, useEffect as useEffect111, useMemo as useMemo116, useRef as useRef40, useState as useState166 } from "react";
32092
- import { ActionIcon as ActionIcon45, Box as Box58, Collapse as Collapse10, Group as Group112, Loader as Loader57, Stack as Stack207, Text as Text195, UnstyledButton as UnstyledButton5 } from "@mantine/core";
32199
+ import { ActionIcon as ActionIcon46, Box as Box58, Collapse as Collapse10, Group as Group112, Loader as Loader57, Stack as Stack207, Text as Text195, UnstyledButton as UnstyledButton5 } from "@mantine/core";
32093
32200
  import { IconArrowLeft as IconArrowLeft9, IconCheck as IconCheck22, IconChevronRight as IconChevronRight12, IconPlayerPlay as IconPlayerPlay6 } from "@tabler/icons-react";
32094
32201
  import { SurveyModel as SurveyModel10 } from "@ixo/surveys";
32095
32202
 
@@ -32685,7 +32792,7 @@ var ClaimFlowDetail = ({
32685
32792
  });
32686
32793
  }, [surveyModel, handlers, editor, deedDid, collectionId, block.id, block?.props?.title]);
32687
32794
  if (selectedClaim) {
32688
- return /* @__PURE__ */ React316.createElement(Stack207, { gap: "md" }, /* @__PURE__ */ React316.createElement(Group112, { gap: "xs", align: "center" }, /* @__PURE__ */ React316.createElement(ActionIcon45, { variant: "subtle", color: "gray", size: "sm", onClick: () => setSelectedClaimId("") }, /* @__PURE__ */ React316.createElement(IconArrowLeft9, { size: 16 })), /* @__PURE__ */ React316.createElement(Text195, { fw: 500, size: "sm", title: selectedClaim.claimId }, t("actionTypes.claim.flow.claimNumber", { id: truncateId(selectedClaim.claimId), defaultValue: `Claim #${truncateId(selectedClaim.claimId)}` }))), selectedClaimStatus && /* @__PURE__ */ React316.createElement(Group112, { gap: "xs", align: "center" }, /* @__PURE__ */ React316.createElement(Text195, { size: "sm", c: "dimmed" }, t("actionTypes.claim.flow.statusLabel", { defaultValue: "Status:" })), /* @__PURE__ */ React316.createElement(Text195, { fw: 500, size: "sm", c: selectedClaimStatus.color }, selectedClaimStatus.label), /* @__PURE__ */ React316.createElement(Text195, { size: "xs", c: "dimmed" }, "\xB7 ", getTimeAgo2(selectedClaim.submissionDate || ""))), isSelectedDisputed && /* @__PURE__ */ React316.createElement(DismissibleAlert, { color: "orange", title: t("actionTypes.claim.flow.disputed.title", { defaultValue: "Claim disputed" }), styles: actionAlertStyles }, loadingDispute ? /* @__PURE__ */ React316.createElement(Group112, { gap: "xs" }, /* @__PURE__ */ React316.createElement(Loader57, { size: "xs" }), /* @__PURE__ */ React316.createElement(Text195, { size: "xs" }, t("actionTypes.claim.flow.disputed.loadingDetails", { defaultValue: "Loading dispute details\u2026" }))) : disputeDetails ? /* @__PURE__ */ React316.createElement(Stack207, { gap: 6 }, disputeDetails.reason ? /* @__PURE__ */ React316.createElement(Text195, { size: "sm" }, disputeDetails.reason) : /* @__PURE__ */ React316.createElement(Text195, { size: "sm", c: "dimmed" }, t("actionTypes.claim.flow.disputed.noMessage", { defaultValue: "The evaluator disputed this claim but did not provide a message." })), (disputeDetails.evaluatorDid || disputeDetails.disputedAt) && /* @__PURE__ */ React316.createElement(Text195, { size: "xs", c: "dimmed" }, disputeDetails.evaluatorDid ? t("actionTypes.claim.flow.disputed.byEvaluator", {
32795
+ return /* @__PURE__ */ React316.createElement(Stack207, { gap: "md" }, /* @__PURE__ */ React316.createElement(Group112, { gap: "xs", align: "center" }, /* @__PURE__ */ React316.createElement(ActionIcon46, { variant: "subtle", color: "gray", size: "sm", onClick: () => setSelectedClaimId("") }, /* @__PURE__ */ React316.createElement(IconArrowLeft9, { size: 16 })), /* @__PURE__ */ React316.createElement(Text195, { fw: 500, size: "sm", title: selectedClaim.claimId }, t("actionTypes.claim.flow.claimNumber", { id: truncateId(selectedClaim.claimId), defaultValue: `Claim #${truncateId(selectedClaim.claimId)}` }))), selectedClaimStatus && /* @__PURE__ */ React316.createElement(Group112, { gap: "xs", align: "center" }, /* @__PURE__ */ React316.createElement(Text195, { size: "sm", c: "dimmed" }, t("actionTypes.claim.flow.statusLabel", { defaultValue: "Status:" })), /* @__PURE__ */ React316.createElement(Text195, { fw: 500, size: "sm", c: selectedClaimStatus.color }, selectedClaimStatus.label), /* @__PURE__ */ React316.createElement(Text195, { size: "xs", c: "dimmed" }, "\xB7 ", getTimeAgo2(selectedClaim.submissionDate || ""))), isSelectedDisputed && /* @__PURE__ */ React316.createElement(DismissibleAlert, { color: "orange", title: t("actionTypes.claim.flow.disputed.title", { defaultValue: "Claim disputed" }), styles: actionAlertStyles }, loadingDispute ? /* @__PURE__ */ React316.createElement(Group112, { gap: "xs" }, /* @__PURE__ */ React316.createElement(Loader57, { size: "xs" }), /* @__PURE__ */ React316.createElement(Text195, { size: "xs" }, t("actionTypes.claim.flow.disputed.loadingDetails", { defaultValue: "Loading dispute details\u2026" }))) : disputeDetails ? /* @__PURE__ */ React316.createElement(Stack207, { gap: 6 }, disputeDetails.reason ? /* @__PURE__ */ React316.createElement(Text195, { size: "sm" }, disputeDetails.reason) : /* @__PURE__ */ React316.createElement(Text195, { size: "sm", c: "dimmed" }, t("actionTypes.claim.flow.disputed.noMessage", { defaultValue: "The evaluator disputed this claim but did not provide a message." })), (disputeDetails.evaluatorDid || disputeDetails.disputedAt) && /* @__PURE__ */ React316.createElement(Text195, { size: "xs", c: "dimmed" }, disputeDetails.evaluatorDid ? t("actionTypes.claim.flow.disputed.byEvaluator", {
32689
32796
  address: truncateAddress3(disputeDetails.evaluatorDid),
32690
32797
  defaultValue: `By ${truncateAddress3(disputeDetails.evaluatorDid)}`
32691
32798
  }) : "", disputeDetails.evaluatorDid && disputeDetails.disputedAt ? " \xB7 " : "", disputeDetails.disputedAt ? new Date(disputeDetails.disputedAt).toLocaleString() : ""), /* @__PURE__ */ React316.createElement(BasePrimaryButton, { onClick: amendAndResubmit, disabled: isDisabled || submitting || !isServiceAgentAuthorized || !selectedClaimData }, t("actionTypes.claim.flow.disputed.amendAndResubmit", { defaultValue: "Amend & Resubmit" }))) : typeof handlers.getClaimDisputeDetails !== "function" ? /* @__PURE__ */ React316.createElement(Text195, { size: "xs", c: "dimmed" }, t("actionTypes.claim.flow.disputed.unavailable", { defaultValue: "Dispute details unavailable in this environment." })) : /* @__PURE__ */ React316.createElement(Text195, { size: "xs", c: "dimmed" }, t("actionTypes.claim.flow.disputed.noRecord", { defaultValue: "No dispute record found on-chain for this claim." }))), loadingClaimDetail ? /* @__PURE__ */ React316.createElement(Group112, { gap: "xs" }, /* @__PURE__ */ React316.createElement(Loader57, { size: "xs" }), /* @__PURE__ */ React316.createElement(Text195, { size: "xs", c: "dimmed" }, t("actionTypes.claim.flow.loadingSubmission", { defaultValue: "Loading submission\u2026" }))) : detailSurveyModel ? /* @__PURE__ */ React316.createElement(StableSurvey, { model: detailSurveyModel }) : /* @__PURE__ */ React316.createElement(Text195, { size: "xs", c: "dimmed" }, t("actionTypes.claim.flow.noSubmissionData", { defaultValue: "No submission data available." })), error && /* @__PURE__ */ React316.createElement(DismissibleAlert, { color: "red", styles: actionAlertStyles }, error));
@@ -33725,7 +33832,7 @@ var CollectionUsersConfig = ({ inputs, onInputsChange, editor, blockId }) => {
33725
33832
 
33726
33833
  // src/mantine/blocks/action/actionTypes/collectionUsers/CollectionUsersFlowDetail.tsx
33727
33834
  import React320, { useCallback as useCallback111, useEffect as useEffect115, useMemo as useMemo120, useRef as useRef42, useState as useState170 } from "react";
33728
- import { ActionIcon as ActionIcon46, Alert as MantineAlert, Badge as Badge52, Box as Box60, Button as Button67, Divider as Divider22, Group as Group116, Loader as Loader61, Radio as Radio5, SegmentedControl as SegmentedControl15, Stack as Stack211, Text as Text199 } from "@mantine/core";
33835
+ import { ActionIcon as ActionIcon47, Alert as MantineAlert, Badge as Badge52, Box as Box60, Button as Button67, Divider as Divider22, Group as Group116, Loader as Loader61, Radio as Radio5, SegmentedControl as SegmentedControl15, Stack as Stack211, Text as Text199 } from "@mantine/core";
33729
33836
  import { useDebouncedValue } from "@mantine/hooks";
33730
33837
  import { IconAlertCircle as IconAlertCircle28, IconArrowLeft as IconArrowLeft10, IconCheck as IconCheck24, IconRefresh as IconRefresh9, IconTrash as IconTrash10 } from "@tabler/icons-react";
33731
33838
  var LOG2 = "[collection.users]";
@@ -34220,7 +34327,7 @@ var CollectionUsersFlowDetail = ({
34220
34327
  { label: "Bids", value: "bids" }
34221
34328
  ]
34222
34329
  }
34223
- ), !configMissing && section === "list" && /* @__PURE__ */ React320.createElement(Stack211, { gap: "sm" }, /* @__PURE__ */ React320.createElement(Group116, { justify: "space-between", align: "center" }, /* @__PURE__ */ React320.createElement(Text199, { size: "sm", fw: 600 }, "Grantees"), /* @__PURE__ */ React320.createElement(Group116, { gap: 4 }, /* @__PURE__ */ React320.createElement(DownloadCsvButton, { onDownload: handleDownloadGranteesCsv, disabled: isRunning || listGrantees.length === 0, label: "Download members CSV" }), /* @__PURE__ */ React320.createElement(ActionIcon46, { variant: "subtle", color: "gray", size: "sm", onClick: handleManualRefreshList, disabled: isRunning || !adminAddress }, /* @__PURE__ */ React320.createElement(IconRefresh9, { size: 16 })))), isRunning && lastOp !== "add" && lastOp !== "revoke" && /* @__PURE__ */ React320.createElement(Group116, { gap: "xs", justify: "center", py: "sm" }, /* @__PURE__ */ React320.createElement(Loader61, { size: "xs" }), /* @__PURE__ */ React320.createElement(Text199, { size: "xs", c: "dimmed" }, "Loading grantees\u2026")), !isRunning && listGrantees.length === 0 && /* @__PURE__ */ React320.createElement(Text199, { size: "sm", c: "dimmed", ta: "center", py: "sm" }, "No grantees hold a constraint for this collection yet."), listGrantees.map((grantee) => {
34330
+ ), !configMissing && section === "list" && /* @__PURE__ */ React320.createElement(Stack211, { gap: "sm" }, /* @__PURE__ */ React320.createElement(Group116, { justify: "space-between", align: "center" }, /* @__PURE__ */ React320.createElement(Text199, { size: "sm", fw: 600 }, "Grantees"), /* @__PURE__ */ React320.createElement(Group116, { gap: 4 }, /* @__PURE__ */ React320.createElement(DownloadCsvButton, { onDownload: handleDownloadGranteesCsv, disabled: isRunning || listGrantees.length === 0, label: "Download members CSV" }), /* @__PURE__ */ React320.createElement(ActionIcon47, { variant: "subtle", color: "gray", size: "sm", onClick: handleManualRefreshList, disabled: isRunning || !adminAddress }, /* @__PURE__ */ React320.createElement(IconRefresh9, { size: 16 })))), isRunning && lastOp !== "add" && lastOp !== "revoke" && /* @__PURE__ */ React320.createElement(Group116, { gap: "xs", justify: "center", py: "sm" }, /* @__PURE__ */ React320.createElement(Loader61, { size: "xs" }), /* @__PURE__ */ React320.createElement(Text199, { size: "xs", c: "dimmed" }, "Loading grantees\u2026")), !isRunning && listGrantees.length === 0 && /* @__PURE__ */ React320.createElement(Text199, { size: "sm", c: "dimmed", ta: "center", py: "sm" }, "No grantees hold a constraint for this collection yet."), listGrantees.map((grantee) => {
34224
34331
  const isTarget = revokeTarget?.address === grantee.address && revokeTarget?.role === grantee.role;
34225
34332
  const granteeDid = getGranteeDid(grantee);
34226
34333
  const profile = granteeProfilesByDid[granteeDid];
@@ -34511,7 +34618,7 @@ var BidInboxSection = ({
34511
34618
  }
34512
34619
  ] : []
34513
34620
  ];
34514
- return /* @__PURE__ */ React320.createElement(Stack211, { gap: "md" }, /* @__PURE__ */ React320.createElement(Group116, { gap: "xs", align: "center" }, /* @__PURE__ */ React320.createElement(ActionIcon46, { variant: "subtle", color: "gray", size: "sm", onClick: () => setSelectedBidId("") }, /* @__PURE__ */ React320.createElement(IconArrowLeft10, { size: 16 })), /* @__PURE__ */ React320.createElement(Text199, { fw: 500, size: "sm", truncate: true, style: { flex: 1, minWidth: 0 } }, "Bid #", selectedBid.id), /* @__PURE__ */ React320.createElement(DownloadCsvButton, { onDownload: () => downloadBidsCsv([selectedBid], `bid-${selectedBid.id}.csv`), label: "Download bid CSV" })), /* @__PURE__ */ React320.createElement(Stack211, { gap: 4 }, /* @__PURE__ */ React320.createElement(Text199, { size: "sm", fw: 600, truncate: true }, displayName), /* @__PURE__ */ React320.createElement(Group116, { gap: "xs" }, /* @__PURE__ */ React320.createElement(Badge52, { size: "xs", variant: "light", color: getRoleColor3(selectedBid.role) }, getBidRoleLabel(selectedBid.role)), /* @__PURE__ */ React320.createElement(Text199, { size: "xs", c: "dimmed" }, truncateAddress4(selectedBid.address)))), /* @__PURE__ */ React320.createElement(CollapsibleSection, { title: "Inputs" }, bidData && typeof bidData === "object" && Object.keys(bidData).length > 0 ? /* @__PURE__ */ React320.createElement(ReadableKeyValues, { data: bidData }) : /* @__PURE__ */ React320.createElement(Text199, { size: "xs", c: "dimmed" }, "No input data available.")), evaluatedStatus ? /* @__PURE__ */ React320.createElement(
34621
+ return /* @__PURE__ */ React320.createElement(Stack211, { gap: "md" }, /* @__PURE__ */ React320.createElement(Group116, { gap: "xs", align: "center" }, /* @__PURE__ */ React320.createElement(ActionIcon47, { variant: "subtle", color: "gray", size: "sm", onClick: () => setSelectedBidId("") }, /* @__PURE__ */ React320.createElement(IconArrowLeft10, { size: 16 })), /* @__PURE__ */ React320.createElement(Text199, { fw: 500, size: "sm", truncate: true, style: { flex: 1, minWidth: 0 } }, "Bid #", selectedBid.id), /* @__PURE__ */ React320.createElement(DownloadCsvButton, { onDownload: () => downloadBidsCsv([selectedBid], `bid-${selectedBid.id}.csv`), label: "Download bid CSV" })), /* @__PURE__ */ React320.createElement(Stack211, { gap: 4 }, /* @__PURE__ */ React320.createElement(Text199, { size: "sm", fw: 600, truncate: true }, displayName), /* @__PURE__ */ React320.createElement(Group116, { gap: "xs" }, /* @__PURE__ */ React320.createElement(Badge52, { size: "xs", variant: "light", color: getRoleColor3(selectedBid.role) }, getBidRoleLabel(selectedBid.role)), /* @__PURE__ */ React320.createElement(Text199, { size: "xs", c: "dimmed" }, truncateAddress4(selectedBid.address)))), /* @__PURE__ */ React320.createElement(CollapsibleSection, { title: "Inputs" }, bidData && typeof bidData === "object" && Object.keys(bidData).length > 0 ? /* @__PURE__ */ React320.createElement(ReadableKeyValues, { data: bidData }) : /* @__PURE__ */ React320.createElement(Text199, { size: "xs", c: "dimmed" }, "No input data available.")), evaluatedStatus ? /* @__PURE__ */ React320.createElement(
34515
34622
  MantineAlert,
34516
34623
  {
34517
34624
  color: evaluatedStatus === "approved" ? "green" : "red",
@@ -34573,7 +34680,7 @@ var BidInboxSection = ({
34573
34680
  styles: actionAlertStyles
34574
34681
  },
34575
34682
  lastDecision.kind === "approved" ? `${lastDecision.roleLabel} access granted to ${lastDecision.name}. They can now ${lastDecision.roleLabel === "Evaluator" ? "evaluate" : "submit"} claims in this collection.` : `${lastDecision.name}'s application was declined.`
34576
- ), /* @__PURE__ */ React320.createElement(Group116, { justify: "space-between", align: "center" }, /* @__PURE__ */ React320.createElement(Text199, { size: "sm", fw: 600 }, "Incoming bids"), /* @__PURE__ */ React320.createElement(Group116, { gap: 4 }, /* @__PURE__ */ React320.createElement(DownloadCsvButton, { onDownload: handleDownloadBidsCsv, disabled: loading || bids.length === 0, label: "Download bids CSV" }), /* @__PURE__ */ React320.createElement(ActionIcon46, { variant: "subtle", color: "gray", size: "sm", onClick: refreshBids, disabled: loading }, /* @__PURE__ */ React320.createElement(IconRefresh9, { size: 16 })))), /* @__PURE__ */ React320.createElement(Divider22, { color: "color-mix(in srgb, var(--mantine-color-text) 6%, transparent)" }), loading && /* @__PURE__ */ React320.createElement(Group116, { gap: "xs", justify: "center", py: "sm" }, /* @__PURE__ */ React320.createElement(Loader61, { size: "xs" }), /* @__PURE__ */ React320.createElement(Text199, { size: "xs", c: "dimmed" }, "Loading bids\u2026")), !loading && bids.length === 0 && /* @__PURE__ */ React320.createElement(Text199, { size: "sm", c: "dimmed", ta: "center", py: "sm" }, "No bids available for this collection."), bids.map((bid) => {
34683
+ ), /* @__PURE__ */ React320.createElement(Group116, { justify: "space-between", align: "center" }, /* @__PURE__ */ React320.createElement(Text199, { size: "sm", fw: 600 }, "Incoming bids"), /* @__PURE__ */ React320.createElement(Group116, { gap: 4 }, /* @__PURE__ */ React320.createElement(DownloadCsvButton, { onDownload: handleDownloadBidsCsv, disabled: loading || bids.length === 0, label: "Download bids CSV" }), /* @__PURE__ */ React320.createElement(ActionIcon47, { variant: "subtle", color: "gray", size: "sm", onClick: refreshBids, disabled: loading }, /* @__PURE__ */ React320.createElement(IconRefresh9, { size: 16 })))), /* @__PURE__ */ React320.createElement(Divider22, { color: "color-mix(in srgb, var(--mantine-color-text) 6%, transparent)" }), loading && /* @__PURE__ */ React320.createElement(Group116, { gap: "xs", justify: "center", py: "sm" }, /* @__PURE__ */ React320.createElement(Loader61, { size: "xs" }), /* @__PURE__ */ React320.createElement(Text199, { size: "xs", c: "dimmed" }, "Loading bids\u2026")), !loading && bids.length === 0 && /* @__PURE__ */ React320.createElement(Text199, { size: "sm", c: "dimmed", ta: "center", py: "sm" }, "No bids available for this collection."), bids.map((bid) => {
34577
34684
  const profile = profilesByDid[bid.did];
34578
34685
  const displayName = profile?.displayname || bid.did || bid.address;
34579
34686
  const status = bidEvaluatedStatus(bid) || "pending";
@@ -35182,7 +35289,7 @@ var EvalEngineConfig = ({ inputs, onInputsChange, editor, blockId }) => {
35182
35289
 
35183
35290
  // src/mantine/blocks/action/actionTypes/evalEngine/EvalEngineFlowDetail.tsx
35184
35291
  import React335, { useCallback as useCallback114, useEffect as useEffect123, useMemo as useMemo128, useRef as useRef49, useState as useState181 } from "react";
35185
- import { ActionIcon as ActionIcon52, Alert as Alert55, Badge as Badge54, Box as Box64, Button as Button76, Group as Group130, Loader as Loader65, Paper as Paper35, Stack as Stack224, Text as Text212 } from "@mantine/core";
35292
+ import { ActionIcon as ActionIcon53, Alert as Alert55, Badge as Badge54, Box as Box64, Button as Button76, Group as Group130, Loader as Loader65, Paper as Paper35, Stack as Stack224, Text as Text212 } from "@mantine/core";
35186
35293
  import { IconAlertCircle as IconAlertCircle29, IconAlertTriangle as IconAlertTriangle17, IconArrowRight as IconArrowRight3, IconCheck as IconCheck26, IconInfoCircle as IconInfoCircle11, IconTrash as IconTrash14 } from "@tabler/icons-react";
35187
35294
 
35188
35295
  // src/mantine/blocks/action/actionTypes/evalRubric/AdvancedPanel.tsx
@@ -36396,7 +36503,7 @@ var ApprovalPolicy = ({ body, index, checkCount, onChange, disabled }) => {
36396
36503
 
36397
36504
  // src/mantine/blocks/action/actionTypes/evalRubric/LinkedRuleEditor.tsx
36398
36505
  import React326, { useMemo as useMemo123, useState as useState174 } from "react";
36399
- import { ActionIcon as ActionIcon47, Alert as Alert50, Button as Button71, Group as Group121, Modal as Modal4, Paper as Paper27, ScrollArea as ScrollArea9, Stack as Stack216, Text as Text203 } from "@mantine/core";
36506
+ import { ActionIcon as ActionIcon48, Alert as Alert50, Button as Button71, Group as Group121, Modal as Modal4, Paper as Paper27, ScrollArea as ScrollArea9, Stack as Stack216, Text as Text203 } from "@mantine/core";
36400
36507
  import { IconAlertTriangle as IconAlertTriangle13, IconPlus as IconPlus9, IconRobot as IconRobot4, IconTrash as IconTrash11 } from "@tabler/icons-react";
36401
36508
 
36402
36509
  // src/mantine/blocks/action/actionTypes/evalRubric/ValueInput.tsx
@@ -37292,7 +37399,7 @@ var LinkedRuleEditor = ({ opened, onClose, body, catalog, index, initialChecked,
37292
37399
  value: row.instructions ?? "",
37293
37400
  onChange: (event) => setCase(at, { instructions: event.currentTarget.value })
37294
37401
  }
37295
- )) : /* @__PURE__ */ React326.createElement(React326.Fragment, null, /* @__PURE__ */ React326.createElement(Text203, { mt: 6, style: leadWordStyle }, "it ", opLabel), /* @__PURE__ */ React326.createElement(ValueInput, { op: draft.op, field: checkedField, index, value: row.value, tolerance: row.tolerance, onChange: (patch) => setCase(at, patch) }), opSuffix && /* @__PURE__ */ React326.createElement(Text203, { mt: 6, size: "sm", c: "dimmed" }, opSuffix)), /* @__PURE__ */ React326.createElement(ActionIcon47, { mt: 4, variant: "subtle", color: "red", onClick: () => removeCase(at), disabled: draft.cases.length <= 1, "aria-label": "Remove this case" }, /* @__PURE__ */ React326.createElement(IconTrash11, { size: 16 })))), /* @__PURE__ */ React326.createElement(Group121, { gap: 8, align: "flex-start", wrap: "wrap" }, draft.aiMode ? /* @__PURE__ */ React326.createElement(React326.Fragment, null, /* @__PURE__ */ React326.createElement(Text203, { mt: 6, style: leadWordStyle }, LINKED_AI_ELSE_LEAD), /* @__PURE__ */ React326.createElement(
37402
+ )) : /* @__PURE__ */ React326.createElement(React326.Fragment, null, /* @__PURE__ */ React326.createElement(Text203, { mt: 6, style: leadWordStyle }, "it ", opLabel), /* @__PURE__ */ React326.createElement(ValueInput, { op: draft.op, field: checkedField, index, value: row.value, tolerance: row.tolerance, onChange: (patch) => setCase(at, patch) }), opSuffix && /* @__PURE__ */ React326.createElement(Text203, { mt: 6, size: "sm", c: "dimmed" }, opSuffix)), /* @__PURE__ */ React326.createElement(ActionIcon48, { mt: 4, variant: "subtle", color: "red", onClick: () => removeCase(at), disabled: draft.cases.length <= 1, "aria-label": "Remove this case" }, /* @__PURE__ */ React326.createElement(IconTrash11, { size: 16 })))), /* @__PURE__ */ React326.createElement(Group121, { gap: 8, align: "flex-start", wrap: "wrap" }, draft.aiMode ? /* @__PURE__ */ React326.createElement(React326.Fragment, null, /* @__PURE__ */ React326.createElement(Text203, { mt: 6, style: leadWordStyle }, LINKED_AI_ELSE_LEAD), /* @__PURE__ */ React326.createElement(
37296
37403
  BaseTextInput,
37297
37404
  {
37298
37405
  style: { flex: 1, minWidth: 260 },
@@ -37338,7 +37445,7 @@ var LinkedRuleEditor = ({ opened, onClose, body, catalog, index, initialChecked,
37338
37445
 
37339
37446
  // src/mantine/blocks/action/actionTypes/evalRubric/RuleCard.tsx
37340
37447
  import React327 from "react";
37341
- import { ActionIcon as ActionIcon48, Alert as Alert51, Box as Box62, Button as Button72, Group as Group122, Paper as Paper28, Stack as Stack217, Text as Text204 } from "@mantine/core";
37448
+ import { ActionIcon as ActionIcon49, Alert as Alert51, Box as Box62, Button as Button72, Group as Group122, Paper as Paper28, Stack as Stack217, Text as Text204 } from "@mantine/core";
37342
37449
  import { IconAlertTriangle as IconAlertTriangle14, IconLink as IconLink5, IconPencil as IconPencil3, IconPlus as IconPlus10, IconTrash as IconTrash12 } from "@tabler/icons-react";
37343
37450
  var RuleCard = ({
37344
37451
  field,
@@ -37364,9 +37471,9 @@ var RuleCard = ({
37364
37471
  // A compound the builder cannot represent — quiet, honest,
37365
37472
  // and deletable; never rewritten (§B.5 doctrine).
37366
37473
  /* @__PURE__ */ React327.createElement(Text204, { size: "xs", c: "dimmed" }, GROUP_OUTSIDE_BUILDER_TEXT)
37367
- ) : /* @__PURE__ */ React327.createElement(RuleSentence, { text: describeRule(rule, ctx) })), (!grownShape || grownShape.editable) && /* @__PURE__ */ React327.createElement(ActionIcon48, { variant: "subtle", onClick: () => onEdit(rule), disabled, "aria-label": `Change the rule on ${field.title}` }, /* @__PURE__ */ React327.createElement(IconPencil3, { size: 16 })), /* @__PURE__ */ React327.createElement(ActionIcon48, { variant: "subtle", color: "red", onClick: () => onDelete(rule), disabled, "aria-label": `Delete the rule on ${field.title}` }, /* @__PURE__ */ React327.createElement(IconTrash12, { size: 16 })));
37368
- }), (linked ?? []).map((entry) => /* @__PURE__ */ React327.createElement(Group122, { key: entry.elseCase.code, gap: "sm", align: "flex-start", wrap: "nowrap", pl: 20 }, /* @__PURE__ */ React327.createElement(Box62, { mt: 2, style: consequencePillStyle(entry.onFail === "review" ? "var(--mantine-color-grape-6)" : "var(--mantine-color-red-6)") }, consequenceIcon(entry.onFail === "review" ? "human" : "reject", 15)), /* @__PURE__ */ React327.createElement(Box62, { style: { flex: 1 } }, /* @__PURE__ */ React327.createElement(RuleSentence, { text: describeLinked(linkedSentenceOf(entry), ctx) })), /* @__PURE__ */ React327.createElement(ActionIcon48, { variant: "subtle", onClick: () => onEditLinked?.(entry), disabled: disabled || !onEditLinked, "aria-label": `Change the linked rule on ${field.title}` }, /* @__PURE__ */ React327.createElement(IconPencil3, { size: 16 })), /* @__PURE__ */ React327.createElement(
37369
- ActionIcon48,
37474
+ ) : /* @__PURE__ */ React327.createElement(RuleSentence, { text: describeRule(rule, ctx) })), (!grownShape || grownShape.editable) && /* @__PURE__ */ React327.createElement(ActionIcon49, { variant: "subtle", onClick: () => onEdit(rule), disabled, "aria-label": `Change the rule on ${field.title}` }, /* @__PURE__ */ React327.createElement(IconPencil3, { size: 16 })), /* @__PURE__ */ React327.createElement(ActionIcon49, { variant: "subtle", color: "red", onClick: () => onDelete(rule), disabled, "aria-label": `Delete the rule on ${field.title}` }, /* @__PURE__ */ React327.createElement(IconTrash12, { size: 16 })));
37475
+ }), (linked ?? []).map((entry) => /* @__PURE__ */ React327.createElement(Group122, { key: entry.elseCase.code, gap: "sm", align: "flex-start", wrap: "nowrap", pl: 20 }, /* @__PURE__ */ React327.createElement(Box62, { mt: 2, style: consequencePillStyle(entry.onFail === "review" ? "var(--mantine-color-grape-6)" : "var(--mantine-color-red-6)") }, consequenceIcon(entry.onFail === "review" ? "human" : "reject", 15)), /* @__PURE__ */ React327.createElement(Box62, { style: { flex: 1 } }, /* @__PURE__ */ React327.createElement(RuleSentence, { text: describeLinked(linkedSentenceOf(entry), ctx) })), /* @__PURE__ */ React327.createElement(ActionIcon49, { variant: "subtle", onClick: () => onEditLinked?.(entry), disabled: disabled || !onEditLinked, "aria-label": `Change the linked rule on ${field.title}` }, /* @__PURE__ */ React327.createElement(IconPencil3, { size: 16 })), /* @__PURE__ */ React327.createElement(
37476
+ ActionIcon49,
37370
37477
  {
37371
37478
  variant: "subtle",
37372
37479
  color: "red",
@@ -37383,12 +37490,12 @@ function unique(problems) {
37383
37490
 
37384
37491
  // src/mantine/blocks/action/actionTypes/evalRubric/RuleEditor.tsx
37385
37492
  import React332, { useMemo as useMemo125, useState as useState177 } from "react";
37386
- import { ActionIcon as ActionIcon51, Alert as Alert53, Box as Box63, Button as Button75, Divider as Divider24, Group as Group127, Modal as Modal5, Paper as Paper32, ScrollArea as ScrollArea10, Stack as Stack221, Text as Text209 } from "@mantine/core";
37493
+ import { ActionIcon as ActionIcon52, Alert as Alert53, Box as Box63, Button as Button75, Divider as Divider24, Group as Group127, Modal as Modal5, Paper as Paper32, ScrollArea as ScrollArea10, Stack as Stack221, Text as Text209 } from "@mantine/core";
37387
37494
  import { IconAlertTriangle as IconAlertTriangle16, IconPlus as IconPlus12, IconRobot as IconRobot6, IconTrash as IconTrash13, IconWand as IconWand2, IconWorld as IconWorld4, IconX as IconX20 } from "@tabler/icons-react";
37388
37495
 
37389
37496
  // src/mantine/blocks/action/actionTypes/evalRubric/AiCheckInline.tsx
37390
37497
  import React328 from "react";
37391
- import { ActionIcon as ActionIcon49, Button as Button73, Group as Group123, Paper as Paper29, Stack as Stack218, Text as Text205 } from "@mantine/core";
37498
+ import { ActionIcon as ActionIcon50, Button as Button73, Group as Group123, Paper as Paper29, Stack as Stack218, Text as Text205 } from "@mantine/core";
37392
37499
  import { IconPlus as IconPlus11, IconRobot as IconRobot5, IconX as IconX18 } from "@tabler/icons-react";
37393
37500
  var AiCheckInline = ({ ai, questionTitle, onChange, disabled, index }) => {
37394
37501
  const setRule = (at, text) => onChange({ ...ai, instructions: ai.instructions.map((rule, i) => i === at ? text : rule) });
@@ -37407,7 +37514,7 @@ var AiCheckInline = ({ ai, questionTitle, onChange, disabled, index }) => {
37407
37514
  onChange: (event) => setRule(at, event.currentTarget.value),
37408
37515
  disabled
37409
37516
  }
37410
- ), /* @__PURE__ */ React328.createElement(ActionIcon49, { variant: "subtle", color: "red", onClick: () => removeRule2(at), disabled: disabled || ai.instructions.length <= 1, "aria-label": "Remove this rule" }, /* @__PURE__ */ React328.createElement(IconX18, { size: 16 })))
37517
+ ), /* @__PURE__ */ React328.createElement(ActionIcon50, { variant: "subtle", color: "red", onClick: () => removeRule2(at), disabled: disabled || ai.instructions.length <= 1, "aria-label": "Remove this rule" }, /* @__PURE__ */ React328.createElement(IconX18, { size: 16 })))
37411
37518
  )), /* @__PURE__ */ React328.createElement(Button73, { size: "xs", variant: "subtle", styles: quietButton, leftSection: /* @__PURE__ */ React328.createElement(IconPlus11, { size: 14 }), onClick: addRule, disabled, style: { alignSelf: "flex-start" } }, "Add a rule")), index && /* @__PURE__ */ React328.createElement(
37412
37519
  BaseMultiSelect,
37413
37520
  {
@@ -37637,7 +37744,7 @@ function appErrorMessage(error) {
37637
37744
 
37638
37745
  // src/mantine/blocks/action/actionTypes/evalRubric/ReviewTaskEditor.tsx
37639
37746
  import React331, { useEffect as useEffect119, useState as useState176 } from "react";
37640
- import { ActionIcon as ActionIcon50, Group as Group126, Loader as Loader64, Paper as Paper31, SegmentedControl as SegmentedControl18, Stack as Stack220, TagsInput as TagsInput2, Text as Text208 } from "@mantine/core";
37747
+ import { ActionIcon as ActionIcon51, Group as Group126, Loader as Loader64, Paper as Paper31, SegmentedControl as SegmentedControl18, Stack as Stack220, TagsInput as TagsInput2, Text as Text208 } from "@mantine/core";
37641
37748
  import { IconBan as IconBan3, IconCircleCheck as IconCircleCheck2, IconMessages, IconPercentage, IconUser as IconUser14, IconX as IconX19 } from "@tabler/icons-react";
37642
37749
  var VERDICT_OPTIONS = [
37643
37750
  { value: "approve", label: "Approve the claim", Icon: IconCircleCheck2, color: "var(--mantine-color-green-6)" },
@@ -37774,7 +37881,7 @@ var EngineChannelAccess = ({ roomId }) => {
37774
37881
  }
37775
37882
  return /* @__PURE__ */ React331.createElement(Group126, { gap: 6, wrap: "nowrap" }, icon(IconCircleCheck2, 14, "var(--mantine-color-green-6)"), /* @__PURE__ */ React331.createElement(Text208, { size: "xs", c: "dimmed" }, "The eval engine can post review requests here."));
37776
37883
  };
37777
- var PickedValue = ({ title, value, onClear, clearLabel }) => /* @__PURE__ */ React331.createElement(Paper31, { p: "xs", style: panelStyle }, /* @__PURE__ */ React331.createElement(Group126, { gap: "xs", justify: "space-between", wrap: "nowrap" }, /* @__PURE__ */ React331.createElement(Stack220, { gap: 0 }, /* @__PURE__ */ React331.createElement(Text208, { size: "sm", fw: 500 }, title), /* @__PURE__ */ React331.createElement(Text208, { size: "xs", c: "dimmed", style: { wordBreak: "break-all" } }, value)), /* @__PURE__ */ React331.createElement(ActionIcon50, { variant: "subtle", color: "red", onClick: onClear, "aria-label": clearLabel }, /* @__PURE__ */ React331.createElement(IconX19, { size: 16 }))));
37884
+ var PickedValue = ({ title, value, onClear, clearLabel }) => /* @__PURE__ */ React331.createElement(Paper31, { p: "xs", style: panelStyle }, /* @__PURE__ */ React331.createElement(Group126, { gap: "xs", justify: "space-between", wrap: "nowrap" }, /* @__PURE__ */ React331.createElement(Stack220, { gap: 0 }, /* @__PURE__ */ React331.createElement(Text208, { size: "sm", fw: 500 }, title), /* @__PURE__ */ React331.createElement(Text208, { size: "xs", c: "dimmed", style: { wordBreak: "break-all" } }, value)), /* @__PURE__ */ React331.createElement(ActionIcon51, { variant: "subtle", color: "red", onClick: onClear, "aria-label": clearLabel }, /* @__PURE__ */ React331.createElement(IconX19, { size: 16 }))));
37778
37885
  var ChannelSearch = ({ onPick }) => {
37779
37886
  const handlers = useBlocknoteHandlers();
37780
37887
  const canList = typeof handlers.listDomainChannels === "function" || typeof handlers.sourceDomainSpaces === "function";
@@ -38136,7 +38243,7 @@ var RuleEditor = ({ opened, onClose, body, catalog, index, field, editing, onSav
38136
38243
  onChange: (next) => setMemberAi(at, next)
38137
38244
  }
38138
38245
  ))
38139
- )), /* @__PURE__ */ React332.createElement(ActionIcon51, { variant: "subtle", color: "red", onClick: () => removeCheck(at), "aria-label": "Remove this check" }, /* @__PURE__ */ React332.createElement(IconTrash13, { size: 16 })))), /* @__PURE__ */ React332.createElement(Button75, { variant: "subtle", size: "compact-sm", styles: quietButton, style: { alignSelf: "flex-start" }, leftSection: /* @__PURE__ */ React332.createElement(IconPlus12, { size: 14 }), onClick: addCheck }, GROW_RULE_LABEL)))
38246
+ )), /* @__PURE__ */ React332.createElement(ActionIcon52, { variant: "subtle", color: "red", onClick: () => removeCheck(at), "aria-label": "Remove this check" }, /* @__PURE__ */ React332.createElement(IconTrash13, { size: 16 })))), /* @__PURE__ */ React332.createElement(Button75, { variant: "subtle", size: "compact-sm", styles: quietButton, style: { alignSelf: "flex-start" }, leftSection: /* @__PURE__ */ React332.createElement(IconPlus12, { size: 14 }), onClick: addCheck }, GROW_RULE_LABEL)))
38140
38247
  ) : draft.consequence === "reject" && !ext && !ai ? /* @__PURE__ */ React332.createElement(
38141
38248
  ConditionRow2,
38142
38249
  {
@@ -38216,7 +38323,7 @@ var RuleEditor = ({ opened, onClose, body, catalog, index, field, editing, onSav
38216
38323
  onChange: (rule) => setDraft((current) => ({ ...current, appliesWhen: rule })),
38217
38324
  lead: "Only check this if"
38218
38325
  }
38219
- )), /* @__PURE__ */ React332.createElement(ActionIcon51, { variant: "subtle", color: "red", onClick: () => setDraft((current) => ({ ...current, appliesWhen: void 0 })), "aria-label": "Always check this rule" }, /* @__PURE__ */ React332.createElement(IconX20, { size: 16 })))) : /* @__PURE__ */ React332.createElement(
38326
+ )), /* @__PURE__ */ React332.createElement(ActionIcon52, { variant: "subtle", color: "red", onClick: () => setDraft((current) => ({ ...current, appliesWhen: void 0 })), "aria-label": "Always check this rule" }, /* @__PURE__ */ React332.createElement(IconX20, { size: 16 })))) : /* @__PURE__ */ React332.createElement(
38220
38327
  Button75,
38221
38328
  {
38222
38329
  variant: "subtle",
@@ -39137,7 +39244,7 @@ var EvalEngineFlowDetail = ({
39137
39244
  disabled: editingLocked
39138
39245
  }
39139
39246
  )
39140
- ))), (orphanRules.length > 0 || orphanLinked.length > 0) && /* @__PURE__ */ React335.createElement(Paper35, { p: 18, style: { ...cardStyle, borderColor: "var(--mantine-color-red-6)" } }, /* @__PURE__ */ React335.createElement(Stack224, { gap: "sm" }, /* @__PURE__ */ React335.createElement(Text212, { size: "sm", fw: 600 }, "Rules with no question"), /* @__PURE__ */ React335.createElement(Text212, { size: "xs", c: "dimmed" }, "These are about answers the form no longer asks for. Delete them, or put the questions back on the form."), orphanRules.map((rule) => /* @__PURE__ */ React335.createElement(Group130, { key: rule.code, gap: "sm", align: "flex-start", wrap: "nowrap" }, /* @__PURE__ */ React335.createElement(Box64, { mt: 2, style: consequencePillStyle(CONSEQUENCES.find((entry) => entry.value === rule.consequence)?.color ?? SLATE) }, consequenceIcon(rule.consequence, 15)), /* @__PURE__ */ React335.createElement(Box64, { style: { flex: 1 } }, /* @__PURE__ */ React335.createElement(RuleSentence, { text: describeRule(rule, { fields: draft.index, aiChecks: body.aiChecks }) })), /* @__PURE__ */ React335.createElement(ActionIcon52, { variant: "subtle", color: "red", onClick: () => deleteRule(rule), disabled: editingLocked, "aria-label": "Delete this rule" }, /* @__PURE__ */ React335.createElement(IconTrash14, { size: 16 })))), orphanLinked.map((entry) => /* @__PURE__ */ React335.createElement(Group130, { key: entry.elseCase.code, gap: "sm", align: "flex-start", wrap: "nowrap" }, /* @__PURE__ */ React335.createElement(Box64, { mt: 2, style: consequencePillStyle(entry.onFail === "review" ? "var(--mantine-color-grape-6)" : "var(--mantine-color-red-6)") }, consequenceIcon(entry.onFail === "review" ? "human" : "reject", 15)), /* @__PURE__ */ React335.createElement(Box64, { style: { flex: 1 } }, /* @__PURE__ */ React335.createElement(RuleSentence, { text: describeLinked(linkedSentenceOf(entry), { fields: draft.index }) })), /* @__PURE__ */ React335.createElement(ActionIcon52, { variant: "subtle", color: "red", onClick: () => deleteLinked(entry), disabled: editingLocked, "aria-label": "Delete this rule" }, /* @__PURE__ */ React335.createElement(IconTrash14, { size: 16 })))))), allErrors.filter((problem) => problem.code === "RUB_AI_CHECKS_DISABLED").map((problem) => /* @__PURE__ */ React335.createElement(Alert55, { key: problem.code, color: "red", icon: /* @__PURE__ */ React335.createElement(IconAlertTriangle17, { size: 16 }), title: "AI checks are turned off for this collection", styles: actionAlertStyles }, /* @__PURE__ */ React335.createElement(Text212, { size: "xs" }, problem.message))), /* @__PURE__ */ React335.createElement(ApprovalPolicy, { body, index: draft.index, checkCount, onChange: draft.setRubric, disabled: editingLocked }), /* @__PURE__ */ React335.createElement(UniqueRule, { body, catalog, onChange: draft.setRubric, disabled: editingLocked }), /* @__PURE__ */ React335.createElement(FrequencyRule, { body, onChange: draft.setRubric, disabled: editingLocked }), problemsByCard.loose.filter((problem) => problem.severity === "warning" && problem.code !== "RUB_WEIGHT_IGNORED").map((problem) => /* @__PURE__ */ React335.createElement(Alert55, { key: `${problem.code}${problem.path}`, color: "yellow", icon: /* @__PURE__ */ React335.createElement(IconInfoCircle11, { size: 16 }), styles: actionAlertStyles }, /* @__PURE__ */ React335.createElement(Text212, { size: "xs" }, problemText(problem)))), /* @__PURE__ */ React335.createElement(Paper35, { p: "md", style: cardStyle }, /* @__PURE__ */ React335.createElement(Stack224, { gap: "xs" }, /* @__PURE__ */ React335.createElement(Group130, { justify: "space-between" }, /* @__PURE__ */ React335.createElement(Group130, { gap: "xs" }, allErrors.length === 0 ? /* @__PURE__ */ React335.createElement(IconCheck26, { size: 16, color: "var(--mantine-color-green-6)" }) : /* @__PURE__ */ React335.createElement(IconAlertTriangle17, { size: 16, color: "var(--mantine-color-red-6)" }), /* @__PURE__ */ React335.createElement(Text212, { size: "sm" }, describeTally(draft.rules, { linked: draft.linked.length, policyMembers: policyMemberCount }))), /* @__PURE__ */ React335.createElement(Text212, { size: "sm", fw: 600, c: allErrors.length > 0 ? "red" : "dimmed" }, allErrors.length > 0 ? `${allErrors.length} problem${allErrors.length === 1 ? "" : "s"} left to fix` : "Ready to sign")), problemList.length > 0 && /* @__PURE__ */ React335.createElement(Stack224, { gap: 6 }, problemList.map((problem, at) => /* @__PURE__ */ React335.createElement(Group130, { key: `${problem.text}${at}`, gap: "xs", wrap: "nowrap", align: "flex-start" }, /* @__PURE__ */ React335.createElement(Box64, { mt: 3, style: { flexShrink: 0 } }, /* @__PURE__ */ React335.createElement(IconAlertTriangle17, { size: 14, color: "var(--mantine-color-red-6)" })), /* @__PURE__ */ React335.createElement(Text212, { size: "xs", style: { flex: 1 } }, problem.text), problem.card && /* @__PURE__ */ React335.createElement(Button76, { size: "compact-xs", variant: "subtle", styles: quietButton, rightSection: /* @__PURE__ */ React335.createElement(IconArrowRight3, { size: 12 }), onClick: () => scrollToCard(problem.card) }, "Take me there")))))), /* @__PURE__ */ React335.createElement(AdvancedPanel, { body }), editorState && /* @__PURE__ */ React335.createElement(
39247
+ ))), (orphanRules.length > 0 || orphanLinked.length > 0) && /* @__PURE__ */ React335.createElement(Paper35, { p: 18, style: { ...cardStyle, borderColor: "var(--mantine-color-red-6)" } }, /* @__PURE__ */ React335.createElement(Stack224, { gap: "sm" }, /* @__PURE__ */ React335.createElement(Text212, { size: "sm", fw: 600 }, "Rules with no question"), /* @__PURE__ */ React335.createElement(Text212, { size: "xs", c: "dimmed" }, "These are about answers the form no longer asks for. Delete them, or put the questions back on the form."), orphanRules.map((rule) => /* @__PURE__ */ React335.createElement(Group130, { key: rule.code, gap: "sm", align: "flex-start", wrap: "nowrap" }, /* @__PURE__ */ React335.createElement(Box64, { mt: 2, style: consequencePillStyle(CONSEQUENCES.find((entry) => entry.value === rule.consequence)?.color ?? SLATE) }, consequenceIcon(rule.consequence, 15)), /* @__PURE__ */ React335.createElement(Box64, { style: { flex: 1 } }, /* @__PURE__ */ React335.createElement(RuleSentence, { text: describeRule(rule, { fields: draft.index, aiChecks: body.aiChecks }) })), /* @__PURE__ */ React335.createElement(ActionIcon53, { variant: "subtle", color: "red", onClick: () => deleteRule(rule), disabled: editingLocked, "aria-label": "Delete this rule" }, /* @__PURE__ */ React335.createElement(IconTrash14, { size: 16 })))), orphanLinked.map((entry) => /* @__PURE__ */ React335.createElement(Group130, { key: entry.elseCase.code, gap: "sm", align: "flex-start", wrap: "nowrap" }, /* @__PURE__ */ React335.createElement(Box64, { mt: 2, style: consequencePillStyle(entry.onFail === "review" ? "var(--mantine-color-grape-6)" : "var(--mantine-color-red-6)") }, consequenceIcon(entry.onFail === "review" ? "human" : "reject", 15)), /* @__PURE__ */ React335.createElement(Box64, { style: { flex: 1 } }, /* @__PURE__ */ React335.createElement(RuleSentence, { text: describeLinked(linkedSentenceOf(entry), { fields: draft.index }) })), /* @__PURE__ */ React335.createElement(ActionIcon53, { variant: "subtle", color: "red", onClick: () => deleteLinked(entry), disabled: editingLocked, "aria-label": "Delete this rule" }, /* @__PURE__ */ React335.createElement(IconTrash14, { size: 16 })))))), allErrors.filter((problem) => problem.code === "RUB_AI_CHECKS_DISABLED").map((problem) => /* @__PURE__ */ React335.createElement(Alert55, { key: problem.code, color: "red", icon: /* @__PURE__ */ React335.createElement(IconAlertTriangle17, { size: 16 }), title: "AI checks are turned off for this collection", styles: actionAlertStyles }, /* @__PURE__ */ React335.createElement(Text212, { size: "xs" }, problem.message))), /* @__PURE__ */ React335.createElement(ApprovalPolicy, { body, index: draft.index, checkCount, onChange: draft.setRubric, disabled: editingLocked }), /* @__PURE__ */ React335.createElement(UniqueRule, { body, catalog, onChange: draft.setRubric, disabled: editingLocked }), /* @__PURE__ */ React335.createElement(FrequencyRule, { body, onChange: draft.setRubric, disabled: editingLocked }), problemsByCard.loose.filter((problem) => problem.severity === "warning" && problem.code !== "RUB_WEIGHT_IGNORED").map((problem) => /* @__PURE__ */ React335.createElement(Alert55, { key: `${problem.code}${problem.path}`, color: "yellow", icon: /* @__PURE__ */ React335.createElement(IconInfoCircle11, { size: 16 }), styles: actionAlertStyles }, /* @__PURE__ */ React335.createElement(Text212, { size: "xs" }, problemText(problem)))), /* @__PURE__ */ React335.createElement(Paper35, { p: "md", style: cardStyle }, /* @__PURE__ */ React335.createElement(Stack224, { gap: "xs" }, /* @__PURE__ */ React335.createElement(Group130, { justify: "space-between" }, /* @__PURE__ */ React335.createElement(Group130, { gap: "xs" }, allErrors.length === 0 ? /* @__PURE__ */ React335.createElement(IconCheck26, { size: 16, color: "var(--mantine-color-green-6)" }) : /* @__PURE__ */ React335.createElement(IconAlertTriangle17, { size: 16, color: "var(--mantine-color-red-6)" }), /* @__PURE__ */ React335.createElement(Text212, { size: "sm" }, describeTally(draft.rules, { linked: draft.linked.length, policyMembers: policyMemberCount }))), /* @__PURE__ */ React335.createElement(Text212, { size: "sm", fw: 600, c: allErrors.length > 0 ? "red" : "dimmed" }, allErrors.length > 0 ? `${allErrors.length} problem${allErrors.length === 1 ? "" : "s"} left to fix` : "Ready to sign")), problemList.length > 0 && /* @__PURE__ */ React335.createElement(Stack224, { gap: 6 }, problemList.map((problem, at) => /* @__PURE__ */ React335.createElement(Group130, { key: `${problem.text}${at}`, gap: "xs", wrap: "nowrap", align: "flex-start" }, /* @__PURE__ */ React335.createElement(Box64, { mt: 3, style: { flexShrink: 0 } }, /* @__PURE__ */ React335.createElement(IconAlertTriangle17, { size: 14, color: "var(--mantine-color-red-6)" })), /* @__PURE__ */ React335.createElement(Text212, { size: "xs", style: { flex: 1 } }, problem.text), problem.card && /* @__PURE__ */ React335.createElement(Button76, { size: "compact-xs", variant: "subtle", styles: quietButton, rightSection: /* @__PURE__ */ React335.createElement(IconArrowRight3, { size: 12 }), onClick: () => scrollToCard(problem.card) }, "Take me there")))))), /* @__PURE__ */ React335.createElement(AdvancedPanel, { body }), editorState && /* @__PURE__ */ React335.createElement(
39141
39248
  RuleEditor,
39142
39249
  {
39143
39250
  opened: true,
@@ -39479,13 +39586,13 @@ var EvaluateClaimConfig = ({ inputs, onInputsChange, editor, blockId }) => {
39479
39586
 
39480
39587
  // src/mantine/blocks/action/actionTypes/evaluateClaim/EvaluateClaimFlowDetail.tsx
39481
39588
  import { SurveyModel as SurveyModel11 } from "@ixo/surveys";
39482
- import { ActionIcon as ActionIcon56, Box as Box69, Button as Button80, Checkbox as Checkbox16, Divider as Divider25, Group as Group142, Loader as Loader69, ScrollArea as ScrollArea12, Stack as Stack236, Text as Text224, UnstyledButton as UnstyledButton10 } from "@mantine/core";
39589
+ import { ActionIcon as ActionIcon57, Box as Box69, Button as Button80, Checkbox as Checkbox16, Divider as Divider25, Group as Group142, Loader as Loader69, ScrollArea as ScrollArea12, Stack as Stack236, Text as Text224, UnstyledButton as UnstyledButton10 } from "@mantine/core";
39483
39590
  import { IconArrowLeft as IconArrowLeft11, IconCheck as IconCheck34, IconFilter as IconFilter2, IconRefresh as IconRefresh11 } from "@tabler/icons-react";
39484
39591
  import { default as React347, useCallback as useCallback118, useEffect as useEffect127, useMemo as useMemo132, useRef as useRef53, useState as useState189 } from "react";
39485
39592
 
39486
39593
  // src/mantine/blocks/action/actionTypes/evaluateClaim/AiChecksSection.tsx
39487
39594
  import React337 from "react";
39488
- import { Accordion as Accordion6, Group as Group132, Stack as Stack226, Text as Text214, Tooltip as Tooltip30 } from "@mantine/core";
39595
+ import { Accordion as Accordion6, Group as Group132, Stack as Stack226, Text as Text214, Tooltip as Tooltip31 } from "@mantine/core";
39489
39596
  import { IconAlertTriangle as IconAlertTriangle18, IconCheck as IconCheck27, IconPhoto as IconPhoto5, IconX as IconX21 } from "@tabler/icons-react";
39490
39597
 
39491
39598
  // src/mantine/blocks/action/actionTypes/evaluateClaim/engineModel.ts
@@ -39690,13 +39797,13 @@ var AiChecksSection = ({ ai, rubric }) => {
39690
39797
  return /* @__PURE__ */ React337.createElement(Accordion6, { variant: "separated", radius: "md", multiple: true, defaultValue: failedNames }, Object.entries(ai).map(([name, fact]) => {
39691
39798
  const check = rubric?.aiChecks?.find((entry) => entry.name === name);
39692
39799
  const provenance = provenanceOf(fact);
39693
- return /* @__PURE__ */ React337.createElement(Accordion6.Item, { key: name, value: name }, /* @__PURE__ */ React337.createElement(Accordion6.Control, null, /* @__PURE__ */ React337.createElement(Group132, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React337.createElement(Stack226, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React337.createElement(Text214, { size: "sm", fw: 500, truncate: true }, purposeOf(name, check)), /* @__PURE__ */ React337.createElement(Text214, { size: "xs", c: "dimmed", style: { fontFamily: "monospace" }, truncate: true }, name)), /* @__PURE__ */ React337.createElement(CheckStatus, { fact }), fact.status === "ok" && /* @__PURE__ */ React337.createElement(Tooltip30, { label: `${fact.score}/100` }, /* @__PURE__ */ React337.createElement(Text214, { size: "xs", c: "dimmed", style: { whiteSpace: "nowrap" } }, confidenceOf(fact.score))))), /* @__PURE__ */ React337.createElement(Accordion6.Panel, null, /* @__PURE__ */ React337.createElement(Stack226, { gap: 8 }, fact.status === "ok" && fact.reason && /* @__PURE__ */ React337.createElement(Text214, { size: "sm" }, fact.reason), fact.status === "ok" && fact.failedRules.length > 0 && /* @__PURE__ */ React337.createElement(Stack226, { gap: 2 }, fact.failedRules.map((rule, i) => /* @__PURE__ */ React337.createElement(Group132, { key: i, gap: 6, wrap: "nowrap", align: "flex-start" }, /* @__PURE__ */ React337.createElement(IconX21, { size: 12, color: "var(--mantine-color-red-6)" }), /* @__PURE__ */ React337.createElement(Text214, { size: "xs" }, rule)))), fact.status === "error" && /* @__PURE__ */ React337.createElement(Text214, { size: "sm", c: "dimmed" }, fact.onError === "reject" ? "This check couldn't run, so the claim was rejected to stay safe." : "This check couldn't run, so the claim is held for a person to look at."), provenance && /* @__PURE__ */ React337.createElement(Group132, { gap: 6, wrap: "nowrap", align: "flex-start" }, /* @__PURE__ */ React337.createElement(IconPhoto5, { size: 14, color: "var(--mantine-color-dimmed)" }), /* @__PURE__ */ React337.createElement(Text214, { size: "xs" }, provenance.aiGenerated && provenance.trusted ? `This photo carries a hidden label: made by AI (${VENDOR_NAME[provenance.vendor] ?? "another provider"}) \u2014 check failed automatically` : "No hidden label found \u2014 nothing proves this photo is AI-made.")), check && Object.keys(check.send).length > 0 && /* @__PURE__ */ React337.createElement(Text214, { size: "xs", c: "dimmed" }, "What the AI was shown: ", Object.keys(check.send).join(", ")))));
39800
+ return /* @__PURE__ */ React337.createElement(Accordion6.Item, { key: name, value: name }, /* @__PURE__ */ React337.createElement(Accordion6.Control, null, /* @__PURE__ */ React337.createElement(Group132, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React337.createElement(Stack226, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React337.createElement(Text214, { size: "sm", fw: 500, truncate: true }, purposeOf(name, check)), /* @__PURE__ */ React337.createElement(Text214, { size: "xs", c: "dimmed", style: { fontFamily: "monospace" }, truncate: true }, name)), /* @__PURE__ */ React337.createElement(CheckStatus, { fact }), fact.status === "ok" && /* @__PURE__ */ React337.createElement(Tooltip31, { label: `${fact.score}/100` }, /* @__PURE__ */ React337.createElement(Text214, { size: "xs", c: "dimmed", style: { whiteSpace: "nowrap" } }, confidenceOf(fact.score))))), /* @__PURE__ */ React337.createElement(Accordion6.Panel, null, /* @__PURE__ */ React337.createElement(Stack226, { gap: 8 }, fact.status === "ok" && fact.reason && /* @__PURE__ */ React337.createElement(Text214, { size: "sm" }, fact.reason), fact.status === "ok" && fact.failedRules.length > 0 && /* @__PURE__ */ React337.createElement(Stack226, { gap: 2 }, fact.failedRules.map((rule, i) => /* @__PURE__ */ React337.createElement(Group132, { key: i, gap: 6, wrap: "nowrap", align: "flex-start" }, /* @__PURE__ */ React337.createElement(IconX21, { size: 12, color: "var(--mantine-color-red-6)" }), /* @__PURE__ */ React337.createElement(Text214, { size: "xs" }, rule)))), fact.status === "error" && /* @__PURE__ */ React337.createElement(Text214, { size: "sm", c: "dimmed" }, fact.onError === "reject" ? "This check couldn't run, so the claim was rejected to stay safe." : "This check couldn't run, so the claim is held for a person to look at."), provenance && /* @__PURE__ */ React337.createElement(Group132, { gap: 6, wrap: "nowrap", align: "flex-start" }, /* @__PURE__ */ React337.createElement(IconPhoto5, { size: 14, color: "var(--mantine-color-dimmed)" }), /* @__PURE__ */ React337.createElement(Text214, { size: "xs" }, provenance.aiGenerated && provenance.trusted ? `This photo carries a hidden label: made by AI (${VENDOR_NAME[provenance.vendor] ?? "another provider"}) \u2014 check failed automatically` : "No hidden label found \u2014 nothing proves this photo is AI-made.")), check && Object.keys(check.send).length > 0 && /* @__PURE__ */ React337.createElement(Text214, { size: "xs", c: "dimmed" }, "What the AI was shown: ", Object.keys(check.send).join(", ")))));
39694
39801
  }));
39695
39802
  };
39696
39803
 
39697
39804
  // src/mantine/blocks/action/actionTypes/evaluateClaim/ClaimAttachments.tsx
39698
39805
  import React338, { useCallback as useCallback116, useEffect as useEffect125, useMemo as useMemo130, useRef as useRef51, useState as useState183 } from "react";
39699
- import { Box as Box65, Group as Group133, Loader as Loader67, SimpleGrid as SimpleGrid4, Stack as Stack227, Text as Text215, Tooltip as Tooltip31, UnstyledButton as UnstyledButton6 } from "@mantine/core";
39806
+ import { Box as Box65, Group as Group133, Loader as Loader67, SimpleGrid as SimpleGrid4, Stack as Stack227, Text as Text215, Tooltip as Tooltip32, UnstyledButton as UnstyledButton6 } from "@mantine/core";
39700
39807
  import { IconFile as IconFile5, IconFileText as IconFileText6, IconMusic, IconPhoto as IconPhoto6, IconVideo } from "@tabler/icons-react";
39701
39808
  function toMediaFile(raw) {
39702
39809
  if (!raw) return null;
@@ -39851,7 +39958,7 @@ var ClaimAttachments = ({ surveyModel, credentialSubject, entityDid }) => {
39851
39958
  const showImage = isImage(item);
39852
39959
  const displayUrl = resolved[item.content] || (!fetchClaimMedia ? item.content : "");
39853
39960
  const isFetching = !!pending[item.content] || openingKey === item.content;
39854
- return /* @__PURE__ */ React338.createElement(Tooltip31, { key: `${item.content}-${index}`, label: item.label, openDelay: 400, disabled: !item.label || item.label === item.name }, /* @__PURE__ */ React338.createElement(
39961
+ return /* @__PURE__ */ React338.createElement(Tooltip32, { key: `${item.content}-${index}`, label: item.label, openDelay: 400, disabled: !item.label || item.label === item.name }, /* @__PURE__ */ React338.createElement(
39855
39962
  UnstyledButton6,
39856
39963
  {
39857
39964
  onClick: () => handleOpen(item),
@@ -39964,7 +40071,7 @@ var EnginePromo = () => {
39964
40071
 
39965
40072
  // src/mantine/blocks/action/actionTypes/evaluateClaim/FlowManagerAdvisorySections.tsx
39966
40073
  import React341, { useState as useState185 } from "react";
39967
- import { ActionIcon as ActionIcon53, Badge as Badge55, Group as Group136, Stack as Stack230, Text as Text218, Tooltip as Tooltip32 } from "@mantine/core";
40074
+ import { ActionIcon as ActionIcon54, Badge as Badge55, Group as Group136, Stack as Stack230, Text as Text218, Tooltip as Tooltip33 } from "@mantine/core";
39968
40075
  import { IconCheck as IconCheck29, IconLink as IconLink7, IconPencil as IconPencil4, IconSparkles as IconSparkles7, IconUser as IconUser15, IconX as IconX23 } from "@tabler/icons-react";
39969
40076
 
39970
40077
  // src/mantine/blocks/action/actionTypes/evaluateClaim/evaluationReportModel.ts
@@ -40059,7 +40166,7 @@ function ProvenanceHint({ provenance }) {
40059
40166
  const t = useTranslate();
40060
40167
  if (provenance !== "derived" && provenance !== "inferred" && provenance !== "human") return null;
40061
40168
  const hint = provenance === "human" ? { Icon: IconUser15, label: t("actionTypes.evaluateClaim.flow.flowManager.provenance.human", { defaultValue: "Set by human" }) } : provenance === "derived" ? { Icon: IconLink7, label: t("actionTypes.evaluateClaim.flow.flowManager.provenance.derived", { defaultValue: "Derived from inputs" }) } : { Icon: IconSparkles7, label: t("actionTypes.evaluateClaim.flow.flowManager.provenance.inferred", { defaultValue: "Inferred by LLM" }) };
40062
- return /* @__PURE__ */ React341.createElement(Tooltip32, { label: hint.label, withArrow: true }, /* @__PURE__ */ React341.createElement("span", { style: { display: "inline-flex", alignItems: "center" }, "aria-label": hint.label }, icon(hint.Icon, 12, "var(--mantine-color-dimmed)")));
40169
+ return /* @__PURE__ */ React341.createElement(Tooltip33, { label: hint.label, withArrow: true }, /* @__PURE__ */ React341.createElement("span", { style: { display: "inline-flex", alignItems: "center" }, "aria-label": hint.label }, icon(hint.Icon, 12, "var(--mantine-color-dimmed)")));
40063
40170
  }
40064
40171
  var FlowManagerContextSection = ({ record, onOverride, disabled }) => {
40065
40172
  const t = useTranslate();
@@ -40100,7 +40207,7 @@ var FlowManagerContextSection = ({ record, onOverride, disabled }) => {
40100
40207
  "aria-label": t("actionTypes.evaluateClaim.flow.flowManager.themeEditLabel", { defaultValue: "Edit theme" })
40101
40208
  }
40102
40209
  )), /* @__PURE__ */ React341.createElement(
40103
- ActionIcon53,
40210
+ ActionIcon54,
40104
40211
  {
40105
40212
  variant: "subtle",
40106
40213
  color: "gray",
@@ -40110,7 +40217,7 @@ var FlowManagerContextSection = ({ record, onOverride, disabled }) => {
40110
40217
  },
40111
40218
  icon(IconCheck29, 14)
40112
40219
  ), /* @__PURE__ */ React341.createElement(
40113
- ActionIcon53,
40220
+ ActionIcon54,
40114
40221
  {
40115
40222
  variant: "subtle",
40116
40223
  color: "gray",
@@ -40120,7 +40227,7 @@ var FlowManagerContextSection = ({ record, onOverride, disabled }) => {
40120
40227
  },
40121
40228
  icon(IconX23, 14)
40122
40229
  )) : /* @__PURE__ */ React341.createElement(React341.Fragment, null, /* @__PURE__ */ React341.createElement(Text218, { size: "sm", style: { flex: 1, minWidth: 0 }, truncate: true }, theme), /* @__PURE__ */ React341.createElement(ProvenanceHint, { provenance: provenance.theme }), !disabled && /* @__PURE__ */ React341.createElement(
40123
- ActionIcon53,
40230
+ ActionIcon54,
40124
40231
  {
40125
40232
  variant: "subtle",
40126
40233
  color: "gray",
@@ -40173,9 +40280,9 @@ var OutsideServicesSection = ({ ext }) => /* @__PURE__ */ React342.createElement
40173
40280
 
40174
40281
  // src/mantine/blocks/action/actionTypes/evaluateClaim/TechnicalDetails.tsx
40175
40282
  import React343 from "react";
40176
- import { ActionIcon as ActionIcon54, Badge as Badge57, CopyButton as CopyButton3, Group as Group138, Paper as Paper37, ScrollArea as ScrollArea11, Stack as Stack232, Table, Text as Text220, Timeline as Timeline2, Tooltip as Tooltip33 } from "@mantine/core";
40283
+ import { ActionIcon as ActionIcon55, Badge as Badge57, CopyButton as CopyButton3, Group as Group138, Paper as Paper37, ScrollArea as ScrollArea11, Stack as Stack232, Table, Text as Text220, Timeline as Timeline2, Tooltip as Tooltip34 } from "@mantine/core";
40177
40284
  import { IconCheck as IconCheck31, IconCopy as IconCopy2 } from "@tabler/icons-react";
40178
- var CopyIcon = ({ value }) => /* @__PURE__ */ React343.createElement(CopyButton3, { value, timeout: 1500 }, ({ copied, copy }) => /* @__PURE__ */ React343.createElement(Tooltip33, { label: copied ? "Copied" : "Copy" }, /* @__PURE__ */ React343.createElement(ActionIcon54, { size: "xs", variant: "subtle", color: copied ? "teal" : "gray", onClick: copy }, copied ? /* @__PURE__ */ React343.createElement(IconCheck31, { size: 12 }) : /* @__PURE__ */ React343.createElement(IconCopy2, { size: 12 }))));
40285
+ var CopyIcon = ({ value }) => /* @__PURE__ */ React343.createElement(CopyButton3, { value, timeout: 1500 }, ({ copied, copy }) => /* @__PURE__ */ React343.createElement(Tooltip34, { label: copied ? "Copied" : "Copy" }, /* @__PURE__ */ React343.createElement(ActionIcon55, { size: "xs", variant: "subtle", color: copied ? "teal" : "gray", onClick: copy }, copied ? /* @__PURE__ */ React343.createElement(IconCheck31, { size: 12 }) : /* @__PURE__ */ React343.createElement(IconCopy2, { size: 12 }))));
40179
40286
  var IdRow = ({ label, value }) => value ? /* @__PURE__ */ React343.createElement(Group138, { gap: 6, wrap: "nowrap" }, /* @__PURE__ */ React343.createElement(Text220, { size: "xs", c: "dimmed", style: { width: 110, flexShrink: 0 } }, label), /* @__PURE__ */ React343.createElement(Text220, { size: "xs", style: { fontFamily: "monospace", wordBreak: "break-all", flex: 1 } }, value), /* @__PURE__ */ React343.createElement(CopyIcon, { value })) : null;
40180
40287
  var SubHead = ({ children }) => /* @__PURE__ */ React343.createElement(Text220, { size: "xs", fw: 600, c: "dimmed", tt: "uppercase" }, children);
40181
40288
  var JsonViewer2 = ({ label, value }) => {
@@ -40320,7 +40427,7 @@ function useEngineSummaries(collectionId) {
40320
40427
 
40321
40428
  // src/mantine/blocks/action/actionTypes/evaluateClaim/VerdictBlock.tsx
40322
40429
  import React345, { useState as useState188 } from "react";
40323
- import { ActionIcon as ActionIcon55, Badge as Badge58, Box as Box67, Group as Group140, Loader as Loader68, Stack as Stack234, Text as Text222, Tooltip as Tooltip34, UnstyledButton as UnstyledButton8 } from "@mantine/core";
40430
+ import { ActionIcon as ActionIcon56, Badge as Badge58, Box as Box67, Group as Group140, Loader as Loader68, Stack as Stack234, Text as Text222, Tooltip as Tooltip35, UnstyledButton as UnstyledButton8 } from "@mantine/core";
40324
40431
  import { IconAlertTriangle as IconAlertTriangle21, IconArrowRight as IconArrowRight4, IconCheck as IconCheck32, IconMinus as IconMinus2, IconRefresh as IconRefresh10, IconX as IconX24 } from "@tabler/icons-react";
40325
40432
 
40326
40433
  // src/mantine/blocks/action/actionTypes/evaluateClaim/ReviewAnswerForm.tsx
@@ -40444,7 +40551,10 @@ var MatchedClaims = ({ refs, duplicate, openableClaimIds, onOpenClaim }) => {
40444
40551
  };
40445
40552
  const shownIds = new Set(refs.map((ref) => ref.id));
40446
40553
  const extraCandidates = (duplicate?.candidates ?? []).filter((c) => !shownIds.has(c.claimId));
40447
- const rows = [...refs.map((ref) => ({ id: ref.id, detail: detailFor(ref.id) })), ...expanded ? extraCandidates.map((c) => ({ id: c.claimId, detail: detailFor(c.claimId) })) : []];
40554
+ const rows = [
40555
+ ...refs.map((ref) => ({ id: ref.id, detail: detailFor(ref.id) })),
40556
+ ...expanded ? extraCandidates.map((c) => ({ id: c.claimId, detail: detailFor(c.claimId) })) : []
40557
+ ];
40448
40558
  return /* @__PURE__ */ React345.createElement(Stack234, { gap: 4 }, /* @__PURE__ */ React345.createElement(Text222, { size: "xs", fw: 600, c: "dimmed" }, refs[0].label), rows.map((row) => {
40449
40559
  const canOpen = !!onOpenClaim && !!openableClaimIds?.has(row.id);
40450
40560
  const id = /* @__PURE__ */ React345.createElement(Text222, { size: "xs", style: { fontFamily: "monospace" } }, truncateClaimId2(row.id));
@@ -40511,7 +40621,7 @@ var VerdictBlock = ({
40511
40621
  disabled,
40512
40622
  onSubmit
40513
40623
  }
40514
- ), /* @__PURE__ */ React345.createElement(Group140, { justify: "space-between", align: "center", wrap: "nowrap", gap: "xs" }, /* @__PURE__ */ React345.createElement(Text222, { size: "xs", c: "dimmed", style: { flex: 1, minWidth: 0 } }, metaLine), /* @__PURE__ */ React345.createElement(Tooltip34, { label: updatedAt ? `Updated ${new Date(updatedAt).toLocaleTimeString()}` : "Loading\u2026" }, /* @__PURE__ */ React345.createElement(ActionIcon55, { size: "xs", variant: "subtle", color: "gray", onClick: onRefresh, "aria-label": "Refresh" }, /* @__PURE__ */ React345.createElement(IconRefresh10, { size: 12 })))))
40624
+ ), /* @__PURE__ */ React345.createElement(Group140, { justify: "space-between", align: "center", wrap: "nowrap", gap: "xs" }, /* @__PURE__ */ React345.createElement(Text222, { size: "xs", c: "dimmed", style: { flex: 1, minWidth: 0 } }, metaLine), /* @__PURE__ */ React345.createElement(Tooltip35, { label: updatedAt ? `Updated ${new Date(updatedAt).toLocaleTimeString()}` : "Loading\u2026" }, /* @__PURE__ */ React345.createElement(ActionIcon56, { size: "xs", variant: "subtle", color: "gray", onClick: onRefresh, "aria-label": "Refresh" }, /* @__PURE__ */ React345.createElement(IconRefresh10, { size: 12 })))))
40515
40625
  );
40516
40626
  };
40517
40627
 
@@ -41298,7 +41408,7 @@ var EvaluateClaimFlowDetail = ({
41298
41408
  const selectedClaimProfile = profilesByDid[selectedClaim.agentDid];
41299
41409
  const selectedDisplayName = selectedClaimProfile?.displayname || selectedClaim.agentDid || selectedClaim.agentAddress;
41300
41410
  const selectedAvatarLabel = (selectedClaimProfile?.displayname || selectedClaim.agentDid || selectedClaim.agentAddress || "?")[0]?.toUpperCase();
41301
- return /* @__PURE__ */ React347.createElement(Stack236, { gap: "md" }, /* @__PURE__ */ React347.createElement(Group142, { gap: "xs", align: "center" }, /* @__PURE__ */ React347.createElement(ActionIcon56, { variant: "subtle", color: "gray", size: "sm", onClick: () => setSelectedClaimId("") }, /* @__PURE__ */ React347.createElement(IconArrowLeft11, { size: 16 })), /* @__PURE__ */ React347.createElement(Text224, { fw: 500, size: "sm", title: selectedClaim.claimId, truncate: true, style: { flex: 1, minWidth: 0 } }, t("actionTypes.claim.flow.claimNumber", { id: truncateId2(selectedClaim.claimId), defaultValue: `Claim #${truncateId2(selectedClaim.claimId)}` })), /* @__PURE__ */ React347.createElement(DownloadCsvButton, { onDownload: () => downloadClaimsCsv([selectedClaim], `claim-${truncateId2(selectedClaim.claimId)}.csv`), label: "Download claim CSV" })), /* @__PURE__ */ React347.createElement(Group142, { gap: 16, align: "center", style: { width: "100%" } }, /* @__PURE__ */ React347.createElement(
41411
+ return /* @__PURE__ */ React347.createElement(Stack236, { gap: "md" }, /* @__PURE__ */ React347.createElement(Group142, { gap: "xs", align: "center" }, /* @__PURE__ */ React347.createElement(ActionIcon57, { variant: "subtle", color: "gray", size: "sm", onClick: () => setSelectedClaimId("") }, /* @__PURE__ */ React347.createElement(IconArrowLeft11, { size: 16 })), /* @__PURE__ */ React347.createElement(Text224, { fw: 500, size: "sm", title: selectedClaim.claimId, truncate: true, style: { flex: 1, minWidth: 0 } }, t("actionTypes.claim.flow.claimNumber", { id: truncateId2(selectedClaim.claimId), defaultValue: `Claim #${truncateId2(selectedClaim.claimId)}` })), /* @__PURE__ */ React347.createElement(DownloadCsvButton, { onDownload: () => downloadClaimsCsv([selectedClaim], `claim-${truncateId2(selectedClaim.claimId)}.csv`), label: "Download claim CSV" })), /* @__PURE__ */ React347.createElement(Group142, { gap: 16, align: "center", style: { width: "100%" } }, /* @__PURE__ */ React347.createElement(
41302
41412
  Box69,
41303
41413
  {
41304
41414
  style: {
@@ -41359,7 +41469,14 @@ var EvaluateClaimFlowDetail = ({
41359
41469
  rubric: rubricBody
41360
41470
  }
41361
41471
  )
41362
- ), engine.record?.evaluation?.trace && Object.keys(engine.record.evaluation.trace.ai).length > 0 && /* @__PURE__ */ React347.createElement(CollapsibleSection, { key: selectedClaim.claimId, title: `AI checks \xB7 ${aiChecksPassedCount(engine.record.evaluation.trace.ai)} passed` }, /* @__PURE__ */ React347.createElement(AiChecksSection, { ai: engine.record.evaluation.trace.ai, rubric: rubricBody })), engine.record?.evaluation?.trace && Object.keys(engine.record.evaluation.trace.ext).length > 0 && /* @__PURE__ */ React347.createElement(CollapsibleSection, { key: selectedClaim.claimId, title: `Outside services \xB7 ${Object.values(engine.record.evaluation.trace.ext).filter((fact) => fact.status === "ok").length} answered` }, /* @__PURE__ */ React347.createElement(OutsideServicesSection, { ext: engine.record.evaluation.trace.ext })))), /* @__PURE__ */ React347.createElement(CollapsibleSection, { title: t("actionTypes.evaluateClaim.flow.section.submission", { defaultValue: "The claim" }) }, surveyLoading ? /* @__PURE__ */ React347.createElement(Group142, { gap: "xs" }, /* @__PURE__ */ React347.createElement(Loader69, { size: "xs" }), /* @__PURE__ */ React347.createElement(Text224, { size: "xs", c: "dimmed" }, t("actionTypes.evaluateClaim.flow.loadingSubmissionDetails", { defaultValue: "Loading submission details..." }))) : surveyModel ? /* @__PURE__ */ React347.createElement(ScrollArea12, { h: 280 }, /* @__PURE__ */ React347.createElement(StableSurvey, { model: surveyModel })) : /* @__PURE__ */ React347.createElement(Text224, { size: "xs", c: "dimmed" }, t("actionTypes.evaluateClaim.flow.noSubmissionTemplate", { defaultValue: "No submission template/data available." }))), /* @__PURE__ */ React347.createElement(CollapsibleSection, { title: t("actionTypes.evaluateClaim.flow.section.attachments", { defaultValue: "Attachments" }) }, /* @__PURE__ */ React347.createElement(ClaimAttachments, { surveyModel, credentialSubject: resolvedCredentialSubject, entityDid: deedDid })), flowManagerContext, /* @__PURE__ */ React347.createElement(EvaluationReportSection, { runtime, selectedClaimId: selectedClaim.claimId }), parsed.xeroOracleInvoiceOnApprove && /* @__PURE__ */ React347.createElement(CollapsibleSection, { title: "Xero work", defaultOpen: false }, /* @__PURE__ */ React347.createElement(DismissibleAlert, { color: "blue", variant: "light", p: "xs" }, /* @__PURE__ */ React347.createElement(Text224, { size: "xs" }, "Approving this claim queues a Xero invoice work item. The contracted Xero oracle creates a draft invoice from the claim material \u2014 no Xero side effects run in the browser."))), (outcomeTemplateLoading || outcomeTemplateJson) && /* @__PURE__ */ React347.createElement(
41472
+ ), engine.record?.evaluation?.trace && Object.keys(engine.record.evaluation.trace.ai).length > 0 && /* @__PURE__ */ React347.createElement(CollapsibleSection, { key: selectedClaim.claimId, title: `AI checks \xB7 ${aiChecksPassedCount(engine.record.evaluation.trace.ai)} passed` }, /* @__PURE__ */ React347.createElement(AiChecksSection, { ai: engine.record.evaluation.trace.ai, rubric: rubricBody })), engine.record?.evaluation?.trace && Object.keys(engine.record.evaluation.trace.ext).length > 0 && /* @__PURE__ */ React347.createElement(
41473
+ CollapsibleSection,
41474
+ {
41475
+ key: selectedClaim.claimId,
41476
+ title: `Outside services \xB7 ${Object.values(engine.record.evaluation.trace.ext).filter((fact) => fact.status === "ok").length} answered`
41477
+ },
41478
+ /* @__PURE__ */ React347.createElement(OutsideServicesSection, { ext: engine.record.evaluation.trace.ext })
41479
+ ))), /* @__PURE__ */ React347.createElement(CollapsibleSection, { title: t("actionTypes.evaluateClaim.flow.section.submission", { defaultValue: "The claim" }) }, surveyLoading ? /* @__PURE__ */ React347.createElement(Group142, { gap: "xs" }, /* @__PURE__ */ React347.createElement(Loader69, { size: "xs" }), /* @__PURE__ */ React347.createElement(Text224, { size: "xs", c: "dimmed" }, t("actionTypes.evaluateClaim.flow.loadingSubmissionDetails", { defaultValue: "Loading submission details..." }))) : surveyModel ? /* @__PURE__ */ React347.createElement(ScrollArea12, { h: 280 }, /* @__PURE__ */ React347.createElement(StableSurvey, { model: surveyModel })) : /* @__PURE__ */ React347.createElement(Text224, { size: "xs", c: "dimmed" }, t("actionTypes.evaluateClaim.flow.noSubmissionTemplate", { defaultValue: "No submission template/data available." }))), /* @__PURE__ */ React347.createElement(CollapsibleSection, { title: t("actionTypes.evaluateClaim.flow.section.attachments", { defaultValue: "Attachments" }) }, /* @__PURE__ */ React347.createElement(ClaimAttachments, { surveyModel, credentialSubject: resolvedCredentialSubject, entityDid: deedDid })), flowManagerContext, /* @__PURE__ */ React347.createElement(EvaluationReportSection, { runtime, selectedClaimId: selectedClaim.claimId }), parsed.xeroOracleInvoiceOnApprove && /* @__PURE__ */ React347.createElement(CollapsibleSection, { title: "Xero work", defaultOpen: false }, /* @__PURE__ */ React347.createElement(DismissibleAlert, { color: "blue", variant: "light", p: "xs" }, /* @__PURE__ */ React347.createElement(Text224, { size: "xs" }, "Approving this claim queues a Xero invoice work item. The contracted Xero oracle creates a draft invoice from the claim material \u2014 no Xero side effects run in the browser."))), (outcomeTemplateLoading || outcomeTemplateJson) && /* @__PURE__ */ React347.createElement(
41363
41480
  CollapsibleSection,
41364
41481
  {
41365
41482
  title: t("actionTypes.evaluateClaim.flow.section.outcome", { defaultValue: "Outcome" }),
@@ -41471,7 +41588,7 @@ var EvaluateClaimFlowDetail = ({
41471
41588
  },
41472
41589
  /* @__PURE__ */ React347.createElement(Text224, { size: "sm", fw: 500, c: activeFilter === tab.value ? "var(--mantine-color-text)" : "dimmed" }, tab.label)
41473
41590
  ))), /* @__PURE__ */ React347.createElement(Group142, { gap: 4, align: "center" }, engineSummaries.supported && /* @__PURE__ */ React347.createElement(Text224, { size: "xs", c: "dimmed" }, claims.length, " claim", claims.length === 1 ? "" : "s", " \xB7 ", owedCount, " owed by you"), engineSummaries.updatedAt && /* @__PURE__ */ React347.createElement(Text224, { size: "xs", c: "dimmed" }, "Updated ", new Date(engineSummaries.updatedAt).toLocaleTimeString()), /* @__PURE__ */ React347.createElement(
41474
- ActionIcon56,
41591
+ ActionIcon57,
41475
41592
  {
41476
41593
  variant: "subtle",
41477
41594
  color: "gray",
@@ -41483,7 +41600,7 @@ var EvaluateClaimFlowDetail = ({
41483
41600
  }
41484
41601
  },
41485
41602
  /* @__PURE__ */ React347.createElement(IconRefresh11, { size: 16 })
41486
- ), /* @__PURE__ */ React347.createElement(DownloadCsvButton, { onDownload: handleDownloadClaimsCsv, disabled: loadingClaims || claims.length === 0, label: "Download claims CSV" }), /* @__PURE__ */ React347.createElement(ActionIcon56, { variant: "subtle", color: "gray", size: "sm" }, /* @__PURE__ */ React347.createElement(IconFilter2, { size: 16 })))), engineSummaries.supported && engineSummaries.notEnrolled && /* @__PURE__ */ React347.createElement(EnginePromo, null), loadingClaims && /* @__PURE__ */ React347.createElement(Group142, { gap: "xs", justify: "center", py: "md" }, /* @__PURE__ */ React347.createElement(Loader69, { size: "xs" }), /* @__PURE__ */ React347.createElement(Text224, { size: "xs", c: "dimmed" }, t("actionTypes.evaluateClaim.flow.loadingClaims", { defaultValue: "Loading claims..." }))), !loadingClaims && filteredClaims.length === 0 && /* @__PURE__ */ React347.createElement(Text224, { size: "sm", c: "dimmed", ta: "center", py: "md" }, claims.length === 0 ? t("actionTypes.evaluateClaim.flow.empty.allCollections", { defaultValue: "No claims available for this collection." }) : activeFilter === "owed" ? "No claims are waiting on you right now." : t("actionTypes.evaluateClaim.flow.empty.filtered", { filter: activeFilter, defaultValue: `No ${activeFilter} claims found.` })), filteredClaims.length > 0 && /* @__PURE__ */ React347.createElement(Stack236, { gap: 12 }, filteredClaims.map((claim) => {
41603
+ ), /* @__PURE__ */ React347.createElement(DownloadCsvButton, { onDownload: handleDownloadClaimsCsv, disabled: loadingClaims || claims.length === 0, label: "Download claims CSV" }), /* @__PURE__ */ React347.createElement(ActionIcon57, { variant: "subtle", color: "gray", size: "sm" }, /* @__PURE__ */ React347.createElement(IconFilter2, { size: 16 })))), engineSummaries.supported && engineSummaries.notEnrolled && /* @__PURE__ */ React347.createElement(EnginePromo, null), loadingClaims && /* @__PURE__ */ React347.createElement(Group142, { gap: "xs", justify: "center", py: "md" }, /* @__PURE__ */ React347.createElement(Loader69, { size: "xs" }), /* @__PURE__ */ React347.createElement(Text224, { size: "xs", c: "dimmed" }, t("actionTypes.evaluateClaim.flow.loadingClaims", { defaultValue: "Loading claims..." }))), !loadingClaims && filteredClaims.length === 0 && /* @__PURE__ */ React347.createElement(Text224, { size: "sm", c: "dimmed", ta: "center", py: "md" }, claims.length === 0 ? t("actionTypes.evaluateClaim.flow.empty.allCollections", { defaultValue: "No claims available for this collection." }) : activeFilter === "owed" ? "No claims are waiting on you right now." : t("actionTypes.evaluateClaim.flow.empty.filtered", { filter: activeFilter, defaultValue: `No ${activeFilter} claims found.` })), filteredClaims.length > 0 && /* @__PURE__ */ React347.createElement(Stack236, { gap: 12 }, filteredClaims.map((claim) => {
41487
41604
  const row = engineSummaries.byClaimId[claim.claimId];
41488
41605
  const view = rowViewByClaimId.get(claim.claimId) ?? { tone: "neutral", headline: "", owed: false, action: null, chain: null };
41489
41606
  const profile = profilesByDid[claim.agentDid];
@@ -42077,7 +42194,7 @@ var ProposalVoteConfig = ({ inputs, onInputsChange, editor, blockId }) => {
42077
42194
 
42078
42195
  // src/mantine/blocks/action/actionTypes/proposalVote/ProposalVoteFlowDetail.tsx
42079
42196
  import React351, { useCallback as useCallback122, useEffect as useEffect131, useMemo as useMemo135, useState as useState193 } from "react";
42080
- import { Box as Box70, Button as Button82, Card as Card30, Group as Group144, Progress as Progress6, Stack as Stack240, Text as Text228, Tooltip as Tooltip35 } from "@mantine/core";
42197
+ import { Box as Box70, Button as Button82, Card as Card30, Group as Group144, Progress as Progress6, Stack as Stack240, Text as Text228, Tooltip as Tooltip36 } from "@mantine/core";
42081
42198
  var getVoteIcon2 = (voteType) => {
42082
42199
  switch (voteType) {
42083
42200
  case "yes":
@@ -42231,7 +42348,7 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, isDisabled, exec
42231
42348
  }
42232
42349
  ), /* @__PURE__ */ React351.createElement(Text228, { size: "sm", style: { color: "var(--mantine-color-dimmed)" } }, "Proposal ID")), /* @__PURE__ */ React351.createElement(Text228, { size: "sm", fw: 500, style: { color: "var(--mantine-color-text)" } }, hasSubmittedProposal ? `#${proposalId}` : "TBD")), /* @__PURE__ */ React351.createElement(Group144, { justify: "space-between" }, /* @__PURE__ */ React351.createElement(Group144, { gap: "xs" }, /* @__PURE__ */ React351.createElement(Box70, { w: 8, h: 8, style: { backgroundColor: "var(--mantine-color-dimmed)", borderRadius: "50%" } }), /* @__PURE__ */ React351.createElement(Text228, { size: "sm", style: { color: "var(--mantine-color-dimmed)" } }, "My Vote")), /* @__PURE__ */ React351.createElement(Text228, { size: "sm", fw: 500, style: { color: "var(--mantine-color-text)" } }, hasSubmittedProposal ? userVote?.vote ? userVote.vote.vote : "Pending" : "N/A"))),
42233
42350
  /* @__PURE__ */ React351.createElement(Stack240, { gap: "xs", mt: "md" }, /* @__PURE__ */ React351.createElement(Text228, { size: "sm", style: { color: "var(--mantine-color-dimmed)" } }, hasSubmittedProposal ? "Voting is open" : "Voting pending"), /* @__PURE__ */ React351.createElement(Progress6, { value: hasSubmittedProposal ? 75 : 0, size: "md" }))
42234
- ), hasSubmittedProposal && proposalContractAddress && /* @__PURE__ */ React351.createElement(ProposalOverviewCard, { proposalContractAddress, proposalId }), hasSubmittedProposal && !hasVoted && /* @__PURE__ */ React351.createElement(Stack240, { gap: "lg" }, /* @__PURE__ */ React351.createElement(Stack240, { gap: "md" }, ["yes", "no", "abstain"].map((voteType) => /* @__PURE__ */ React351.createElement(Tooltip35, { key: voteType, label: isDisabled ? "Action is disabled" : void 0, disabled: !isDisabled, position: "top" }, /* @__PURE__ */ React351.createElement(
42351
+ ), hasSubmittedProposal && proposalContractAddress && /* @__PURE__ */ React351.createElement(ProposalOverviewCard, { proposalContractAddress, proposalId }), hasSubmittedProposal && !hasVoted && /* @__PURE__ */ React351.createElement(Stack240, { gap: "lg" }, /* @__PURE__ */ React351.createElement(Stack240, { gap: "md" }, ["yes", "no", "abstain"].map((voteType) => /* @__PURE__ */ React351.createElement(Tooltip36, { key: voteType, label: isDisabled ? "Action is disabled" : void 0, disabled: !isDisabled, position: "top" }, /* @__PURE__ */ React351.createElement(
42235
42352
  Button82,
42236
42353
  {
42237
42354
  variant: "outline",
@@ -42261,7 +42378,7 @@ var ProposalVoteFlowDetail = ({ inputs, editor, block, runtime, isDisabled, exec
42261
42378
  disabled: isDisabled,
42262
42379
  rows: 3
42263
42380
  }
42264
- )), !hasSubmittedProposal && /* @__PURE__ */ React351.createElement(Stack240, { gap: "md" }, ["yes", "no", "abstain"].map((voteType) => /* @__PURE__ */ React351.createElement(Tooltip35, { key: voteType, label: "The proposal must be submitted before you can vote", position: "top" }, /* @__PURE__ */ React351.createElement(
42381
+ )), !hasSubmittedProposal && /* @__PURE__ */ React351.createElement(Stack240, { gap: "md" }, ["yes", "no", "abstain"].map((voteType) => /* @__PURE__ */ React351.createElement(Tooltip36, { key: voteType, label: "The proposal must be submitted before you can vote", position: "top" }, /* @__PURE__ */ React351.createElement(
42265
42382
  Button82,
42266
42383
  {
42267
42384
  variant: "outline",
@@ -44888,7 +45005,7 @@ function finaliseLineItem(cells) {
44888
45005
 
44889
45006
  // src/mantine/blocks/action/actionTypes/xero/invoiceCreate/XeroLineItemsEditor.tsx
44890
45007
  import React376, { useCallback as useCallback146, useMemo as useMemo150 } from "react";
44891
- import { ActionIcon as ActionIcon57, Alert as Alert58, Box as Box74, Button as Button89, Collapse as Collapse11, Divider as Divider32, Group as Group151, SegmentedControl as SegmentedControl22, Stack as Stack265, Text as Text249, Tooltip as Tooltip36 } from "@mantine/core";
45008
+ import { ActionIcon as ActionIcon58, Alert as Alert58, Box as Box74, Button as Button89, Collapse as Collapse11, Divider as Divider32, Group as Group151, SegmentedControl as SegmentedControl22, Stack as Stack265, Text as Text249, Tooltip as Tooltip37 } from "@mantine/core";
44892
45009
  import { useDisclosure as useDisclosure6 } from "@mantine/hooks";
44893
45010
  import { IconChevronDown as IconChevronDown10, IconChevronRight as IconChevronRight13, IconPlus as IconPlus14, IconTrash as IconTrash15 } from "@tabler/icons-react";
44894
45011
  function getNestedField(fields, path) {
@@ -44995,7 +45112,7 @@ function LineItemRowCard({
44995
45112
  background: "var(--mantine-color-neutralColor-2)"
44996
45113
  }
44997
45114
  },
44998
- /* @__PURE__ */ React376.createElement(Group151, { justify: "space-between", align: "center", mb: "xs" }, /* @__PURE__ */ React376.createElement(Text249, { size: "xs", c: "dimmed", fw: 600 }, "Line item ", index + 1), canRemove && onRemove && /* @__PURE__ */ React376.createElement(Tooltip36, { label: "Remove", withArrow: true }, /* @__PURE__ */ React376.createElement(ActionIcon57, { size: "sm", variant: "subtle", color: "red", onClick: onRemove }, /* @__PURE__ */ React376.createElement(IconTrash15, { size: 14 })))),
45115
+ /* @__PURE__ */ React376.createElement(Group151, { justify: "space-between", align: "center", mb: "xs" }, /* @__PURE__ */ React376.createElement(Text249, { size: "xs", c: "dimmed", fw: 600 }, "Line item ", index + 1), canRemove && onRemove && /* @__PURE__ */ React376.createElement(Tooltip37, { label: "Remove", withArrow: true }, /* @__PURE__ */ React376.createElement(ActionIcon58, { size: "sm", variant: "subtle", color: "red", onClick: onRemove }, /* @__PURE__ */ React376.createElement(IconTrash15, { size: 14 })))),
44999
45116
  /* @__PURE__ */ React376.createElement(Stack265, { gap: "xs" }, /* @__PURE__ */ React376.createElement(
45000
45117
  DataInput,
45001
45118
  {
@@ -46118,7 +46235,7 @@ var XeroPaymentCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
46118
46235
 
46119
46236
  // src/mantine/blocks/action/actionTypes/xero/paymentCreate/XeroPaymentCreateFlowDetail.tsx
46120
46237
  import React383, { useCallback as useCallback153, useEffect as useEffect157, useMemo as useMemo154, useState as useState226 } from "react";
46121
- import { ActionIcon as ActionIcon58, Badge as Badge65, Button as Button92, Group as Group157, Stack as Stack272, Text as Text255 } from "@mantine/core";
46238
+ import { ActionIcon as ActionIcon59, Badge as Badge65, Button as Button92, Group as Group157, Stack as Stack272, Text as Text255 } from "@mantine/core";
46122
46239
  import { IconArrowLeft as IconArrowLeft12 } from "@tabler/icons-react";
46123
46240
 
46124
46241
  // src/mantine/blocks/action/actionTypes/xero/_shared/useFlowXeroBinding.ts
@@ -46543,7 +46660,7 @@ var XeroPaymentCreateFlowDetail = ({
46543
46660
  const paymentDate = String(item.reviewPayload?.Date || "");
46544
46661
  const invoiceStatus = String(attachedInvoiceResult.status || attachedInvoicePayload.Status || "DRAFT").toUpperCase();
46545
46662
  return /* @__PURE__ */ React383.createElement(Stack272, { gap: "md" }, /* @__PURE__ */ React383.createElement(Group157, { gap: "xs", align: "center" }, /* @__PURE__ */ React383.createElement(
46546
- ActionIcon58,
46663
+ ActionIcon59,
46547
46664
  {
46548
46665
  variant: "subtle",
46549
46666
  color: "gray",
@@ -49189,7 +49306,7 @@ var EntityCreateOracleConfig = ({ inputs, onInputsChange }) => {
49189
49306
 
49190
49307
  // src/mantine/blocks/action/actionTypes/entityCreateOracle/EntityCreateOracleFlowDetail.tsx
49191
49308
  import React412, { useCallback as useCallback177, useMemo as useMemo166 } from "react";
49192
- import { ActionIcon as ActionIcon59, Button as Button104, CopyButton as CopyButton4, Group as Group169, Loader as Loader93, Stack as Stack301, Text as Text282, Tooltip as Tooltip37 } from "@mantine/core";
49309
+ import { ActionIcon as ActionIcon60, Button as Button104, CopyButton as CopyButton4, Group as Group169, Loader as Loader93, Stack as Stack301, Text as Text282, Tooltip as Tooltip38 } from "@mantine/core";
49193
49310
  import { IconCheck as IconCheck50, IconAlertCircle as IconAlertCircle44, IconCopy as IconCopy3 } from "@tabler/icons-react";
49194
49311
  var EntityCreateOracleFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isDisabled, executeAction }) => {
49195
49312
  const parsed = useMemo166(() => parseEntityCreateOracleInputs(inputs), [inputs]);
@@ -49278,7 +49395,7 @@ var EntityCreateOracleFlowDetail = ({ inputs, editor, block, runtime, updateRunt
49278
49395
  const handleRetry = useCallback177(() => {
49279
49396
  updateRuntime({ state: "idle", error: void 0, output: {} });
49280
49397
  }, [updateRuntime]);
49281
- return /* @__PURE__ */ React412.createElement(Stack301, { gap: "md" }, /* @__PURE__ */ React412.createElement(Stack301, { gap: 2 }, /* @__PURE__ */ React412.createElement(Text282, { fw: 600 }, block?.props?.title || "Create Oracle Entity"), /* @__PURE__ */ React412.createElement(Text282, { size: "sm", c: "dimmed" }, block?.props?.description || "Create an oracle entity on-chain.")), !isRunning && !isCompleted && !isStale && !isFailed && !inputsReady && /* @__PURE__ */ React412.createElement(Group169, { gap: "xs" }, /* @__PURE__ */ React412.createElement(Loader93, { size: 14 }), /* @__PURE__ */ React412.createElement(Text282, { size: "sm", c: "dimmed" }, "Waiting for upstream wallet + matrix + form inputs...")), isRunning && /* @__PURE__ */ React412.createElement(Group169, { gap: "xs" }, /* @__PURE__ */ React412.createElement(Loader93, { size: 14 }), /* @__PURE__ */ React412.createElement(Text282, { size: "sm" }, "Creating oracle entity...")), isCompleted && /* @__PURE__ */ React412.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React412.createElement(IconCheck50, { size: 16 }), title: "Oracle Entity Created", color: "green" }, /* @__PURE__ */ React412.createElement(Stack301, { gap: "xs" }, /* @__PURE__ */ React412.createElement(Text282, { size: "sm" }, "Oracle entity created successfully on-chain."), /* @__PURE__ */ React412.createElement(Group169, { gap: 6, wrap: "nowrap", align: "center" }, /* @__PURE__ */ React412.createElement(Text282, { size: "xs", c: "dimmed" }, "Entity DID:"), /* @__PURE__ */ React412.createElement(Text282, { size: "xs", ff: "monospace", style: { wordBreak: "break-all" } }, entityDid), /* @__PURE__ */ React412.createElement(CopyButton4, { value: entityDid, timeout: 1500 }, ({ copied, copy }) => /* @__PURE__ */ React412.createElement(Tooltip37, { label: copied ? "Copied" : "Copy" }, /* @__PURE__ */ React412.createElement(ActionIcon59, { size: "sm", variant: "subtle", color: copied ? "teal" : "gray", onClick: copy }, copied ? /* @__PURE__ */ React412.createElement(IconCheck50, { size: 14 }) : /* @__PURE__ */ React412.createElement(IconCopy3, { size: 14 }))))))), isStale && /* @__PURE__ */ React412.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React412.createElement(IconAlertCircle44, { size: 16 }), color: "yellow", title: "Inconsistent State" }, /* @__PURE__ */ React412.createElement(Stack301, { gap: "xs" }, /* @__PURE__ */ React412.createElement(Text282, { size: "sm" }, "Marked completed but no entityDid recorded. Stale state \u2014 reset and re-run."), /* @__PURE__ */ React412.createElement(Group169, null, /* @__PURE__ */ React412.createElement(Button104, { variant: "outline", size: "xs", onClick: handleRetry }, "Reset"), /* @__PURE__ */ React412.createElement(Button104, { variant: "filled", size: "xs", onClick: handleExecute, disabled: !inputsReady }, "Force Run Now")))), isFailed && errorMessage && /* @__PURE__ */ React412.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React412.createElement(IconAlertCircle44, { size: 16 }), color: "red", styles: actionAlertStyles }, errorMessage), isFailed && /* @__PURE__ */ React412.createElement(Group169, null, /* @__PURE__ */ React412.createElement(Button104, { variant: "outline", onClick: handleRetry }, "Try Again")), !isRunning && !isStale && /* @__PURE__ */ React412.createElement(Group169, null, /* @__PURE__ */ React412.createElement(Button104, { variant: "filled", size: "sm", onClick: handleExecute, disabled: !inputsReady || isDisabled }, isCompleted ? "Re-run" : inputsReady ? "Run Now" : "Waiting for inputs...")));
49398
+ return /* @__PURE__ */ React412.createElement(Stack301, { gap: "md" }, /* @__PURE__ */ React412.createElement(Stack301, { gap: 2 }, /* @__PURE__ */ React412.createElement(Text282, { fw: 600 }, block?.props?.title || "Create Oracle Entity"), /* @__PURE__ */ React412.createElement(Text282, { size: "sm", c: "dimmed" }, block?.props?.description || "Create an oracle entity on-chain.")), !isRunning && !isCompleted && !isStale && !isFailed && !inputsReady && /* @__PURE__ */ React412.createElement(Group169, { gap: "xs" }, /* @__PURE__ */ React412.createElement(Loader93, { size: 14 }), /* @__PURE__ */ React412.createElement(Text282, { size: "sm", c: "dimmed" }, "Waiting for upstream wallet + matrix + form inputs...")), isRunning && /* @__PURE__ */ React412.createElement(Group169, { gap: "xs" }, /* @__PURE__ */ React412.createElement(Loader93, { size: 14 }), /* @__PURE__ */ React412.createElement(Text282, { size: "sm" }, "Creating oracle entity...")), isCompleted && /* @__PURE__ */ React412.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React412.createElement(IconCheck50, { size: 16 }), title: "Oracle Entity Created", color: "green" }, /* @__PURE__ */ React412.createElement(Stack301, { gap: "xs" }, /* @__PURE__ */ React412.createElement(Text282, { size: "sm" }, "Oracle entity created successfully on-chain."), /* @__PURE__ */ React412.createElement(Group169, { gap: 6, wrap: "nowrap", align: "center" }, /* @__PURE__ */ React412.createElement(Text282, { size: "xs", c: "dimmed" }, "Entity DID:"), /* @__PURE__ */ React412.createElement(Text282, { size: "xs", ff: "monospace", style: { wordBreak: "break-all" } }, entityDid), /* @__PURE__ */ React412.createElement(CopyButton4, { value: entityDid, timeout: 1500 }, ({ copied, copy }) => /* @__PURE__ */ React412.createElement(Tooltip38, { label: copied ? "Copied" : "Copy" }, /* @__PURE__ */ React412.createElement(ActionIcon60, { size: "sm", variant: "subtle", color: copied ? "teal" : "gray", onClick: copy }, copied ? /* @__PURE__ */ React412.createElement(IconCheck50, { size: 14 }) : /* @__PURE__ */ React412.createElement(IconCopy3, { size: 14 }))))))), isStale && /* @__PURE__ */ React412.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React412.createElement(IconAlertCircle44, { size: 16 }), color: "yellow", title: "Inconsistent State" }, /* @__PURE__ */ React412.createElement(Stack301, { gap: "xs" }, /* @__PURE__ */ React412.createElement(Text282, { size: "sm" }, "Marked completed but no entityDid recorded. Stale state \u2014 reset and re-run."), /* @__PURE__ */ React412.createElement(Group169, null, /* @__PURE__ */ React412.createElement(Button104, { variant: "outline", size: "xs", onClick: handleRetry }, "Reset"), /* @__PURE__ */ React412.createElement(Button104, { variant: "filled", size: "xs", onClick: handleExecute, disabled: !inputsReady }, "Force Run Now")))), isFailed && errorMessage && /* @__PURE__ */ React412.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React412.createElement(IconAlertCircle44, { size: 16 }), color: "red", styles: actionAlertStyles }, errorMessage), isFailed && /* @__PURE__ */ React412.createElement(Group169, null, /* @__PURE__ */ React412.createElement(Button104, { variant: "outline", onClick: handleRetry }, "Try Again")), !isRunning && !isStale && /* @__PURE__ */ React412.createElement(Group169, null, /* @__PURE__ */ React412.createElement(Button104, { variant: "filled", size: "sm", onClick: handleExecute, disabled: !inputsReady || isDisabled }, isCompleted ? "Re-run" : inputsReady ? "Run Now" : "Waiting for inputs...")));
49282
49399
  };
49283
49400
 
49284
49401
  // src/mantine/blocks/action/actionTypes/entityCreateOracle/index.ts
@@ -51750,7 +51867,7 @@ function useUnlMap() {
51750
51867
 
51751
51868
  // src/mantine/blocks/location/components/TileSelector.tsx
51752
51869
  import React433, { useState as useState257, useCallback as useCallback193 } from "react";
51753
- import { ActionIcon as ActionIcon60, Group as Group179, Tooltip as Tooltip38 } from "@mantine/core";
51870
+ import { ActionIcon as ActionIcon61, Group as Group179, Tooltip as Tooltip39 } from "@mantine/core";
51754
51871
  import { IconMap, IconMoon, IconSatellite, IconMountain } from "@tabler/icons-react";
51755
51872
  var TILE_LAYERS = {
51756
51873
  dark: {
@@ -51838,8 +51955,8 @@ var TileSelector = ({ mapRef }) => {
51838
51955
  padding: 2
51839
51956
  }
51840
51957
  },
51841
- items.map(({ type, label, icon: icon2 }) => /* @__PURE__ */ React433.createElement(Tooltip38, { key: type, label, withArrow: true }, /* @__PURE__ */ React433.createElement(
51842
- ActionIcon60,
51958
+ items.map(({ type, label, icon: icon2 }) => /* @__PURE__ */ React433.createElement(Tooltip39, { key: type, label, withArrow: true }, /* @__PURE__ */ React433.createElement(
51959
+ ActionIcon61,
51843
51960
  {
51844
51961
  variant: active === type ? "filled" : "subtle",
51845
51962
  color: active === type ? "accent.5" : "gray",
@@ -52426,7 +52543,7 @@ import { createReactBlockSpec as createReactBlockSpec23 } from "@blocknote/react
52426
52543
 
52427
52544
  // src/mantine/blocks/secrets/SecretsBlock.tsx
52428
52545
  import React449, { useCallback as useCallback197, useMemo as useMemo180, useState as useState261 } from "react";
52429
- import { Anchor as Anchor6, ActionIcon as ActionIcon61, Button as Button114, Collapse as Collapse16, CopyButton as CopyButton5, Group as Group184, Paper as Paper38, Stack as Stack326, Text as Text308, Tooltip as Tooltip39 } from "@mantine/core";
52546
+ import { Anchor as Anchor6, ActionIcon as ActionIcon62, Button as Button114, Collapse as Collapse16, CopyButton as CopyButton5, Group as Group184, Paper as Paper38, Stack as Stack326, Text as Text308, Tooltip as Tooltip40 } from "@mantine/core";
52430
52547
  import { IconCheck as IconCheck60, IconCopy as IconCopy4, IconDownload as IconDownload6, IconEye, IconEyeOff, IconKey as IconKey5 } from "@tabler/icons-react";
52431
52548
  var SENSITIVE_KEYS = /* @__PURE__ */ new Set(["mnemonic", "matrixPassword", "matrixRecoveryPhrase", "matrixAccessToken", "pin", "openRouterApiKeyJwe", "authToken"]);
52432
52549
  var BLOCK_LABELS = {
@@ -52531,7 +52648,7 @@ function MaskedValue({ value, isSensitive }) {
52531
52648
  if (!isSensitive) {
52532
52649
  return /* @__PURE__ */ React449.createElement(Text308, { size: "xs", ff: "monospace", style: { wordBreak: "break-all" } }, String(value));
52533
52650
  }
52534
- return /* @__PURE__ */ React449.createElement(Group184, { gap: 4, align: "center", wrap: "nowrap" }, /* @__PURE__ */ React449.createElement(Text308, { size: "xs", ff: "monospace", style: { wordBreak: "break-all" } }, visible ? String(value) : "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022"), /* @__PURE__ */ React449.createElement(ActionIcon61, { variant: "subtle", size: "xs", onClick: () => setVisible((v) => !v) }, visible ? /* @__PURE__ */ React449.createElement(IconEyeOff, { size: 12 }) : /* @__PURE__ */ React449.createElement(IconEye, { size: 12 })));
52651
+ return /* @__PURE__ */ React449.createElement(Group184, { gap: 4, align: "center", wrap: "nowrap" }, /* @__PURE__ */ React449.createElement(Text308, { size: "xs", ff: "monospace", style: { wordBreak: "break-all" } }, visible ? String(value) : "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022"), /* @__PURE__ */ React449.createElement(ActionIcon62, { variant: "subtle", size: "xs", onClick: () => setVisible((v) => !v) }, visible ? /* @__PURE__ */ React449.createElement(IconEyeOff, { size: 12 }) : /* @__PURE__ */ React449.createElement(IconEye, { size: 12 })));
52535
52652
  }
52536
52653
  function OutputEntry({ label, value, isSensitive }) {
52537
52654
  const displayValue = typeof value === "object" ? JSON.stringify(value, null, 2) : String(value ?? "");
@@ -52563,7 +52680,7 @@ function SecretsBlock({ editor, block }) {
52563
52680
  if (docType === "template") {
52564
52681
  return /* @__PURE__ */ React449.createElement(BaseContainer, { blockId: block.id }, /* @__PURE__ */ React449.createElement(Stack326, { gap: "xs" }, /* @__PURE__ */ React449.createElement(Group184, { gap: "xs", align: "center" }, /* @__PURE__ */ React449.createElement(IconKey5, { size: 18 }), /* @__PURE__ */ React449.createElement(Text308, { fw: 600, size: "sm" }, block.props.title || "Flow Output")), /* @__PURE__ */ React449.createElement(Text308, { size: "xs", c: "dimmed" }, "Displays all flow outputs and allows downloading them in flow mode.")));
52565
52682
  }
52566
- return /* @__PURE__ */ React449.createElement(BaseContainer, { blockId: block.id }, /* @__PURE__ */ React449.createElement(Stack326, { gap: "md" }, /* @__PURE__ */ React449.createElement(Group184, { gap: "xs", align: "center" }, /* @__PURE__ */ React449.createElement(IconKey5, { size: 18 }), /* @__PURE__ */ React449.createElement(Text308, { fw: 600, size: "sm" }, block.props.title || "Flow Output")), /* @__PURE__ */ React449.createElement(Text308, { size: "sm", c: "dimmed" }, "Everything produced by this flow. You can view it here or download as JSON."), connectUrl && /* @__PURE__ */ React449.createElement(Stack326, { gap: "xs" }, /* @__PURE__ */ React449.createElement(Text308, { size: "sm", fw: 500 }, "Oracle Connect Link"), /* @__PURE__ */ React449.createElement(Group184, { gap: "xs", align: "center" }, /* @__PURE__ */ React449.createElement(Anchor6, { href: connectUrl, target: "_blank", size: "sm", style: { wordBreak: "break-all" } }, connectUrl), /* @__PURE__ */ React449.createElement(CopyButton5, { value: connectUrl, timeout: 2e3 }, ({ copied, copy }) => /* @__PURE__ */ React449.createElement(Tooltip39, { label: copied ? "Copied" : "Copy link", withArrow: true, position: "right" }, /* @__PURE__ */ React449.createElement(ActionIcon61, { color: copied ? "teal" : "gray", variant: "subtle", onClick: copy, size: "sm" }, copied ? /* @__PURE__ */ React449.createElement(IconCheck60, { size: 14 }) : /* @__PURE__ */ React449.createElement(IconCopy4, { size: 14 })))))), /* @__PURE__ */ React449.createElement(Group184, { gap: "xs" }, /* @__PURE__ */ React449.createElement(Button114, { variant: "light", size: "xs", leftSection: /* @__PURE__ */ React449.createElement(IconEye, { size: 14 }), onClick: () => setShowOutput((v) => !v) }, showOutput ? "Hide Output" : "View Output"), /* @__PURE__ */ React449.createElement(Button114, { variant: "filled", size: "sm", leftSection: /* @__PURE__ */ React449.createElement(IconDownload6, { size: 14 }), onClick: handleDownload, disabled: outputs.length === 0 }, "Download JSON")), /* @__PURE__ */ React449.createElement(Collapse16, { in: showOutput }, /* @__PURE__ */ React449.createElement(Stack326, { gap: "sm" }, outputs.length === 0 && /* @__PURE__ */ React449.createElement(Text308, { size: "xs", c: "dimmed", fs: "italic" }, "No outputs yet."), outputs.map(({ id, label, output }) => /* @__PURE__ */ React449.createElement(Paper38, { key: id, p: "xs", withBorder: true, style: { borderColor: "var(--mantine-color-neutralColor-6)" } }, /* @__PURE__ */ React449.createElement(Stack326, { gap: 4 }, /* @__PURE__ */ React449.createElement(Text308, { size: "xs", fw: 600 }, label), Object.entries(output).map(([key, value]) => /* @__PURE__ */ React449.createElement(OutputEntry, { key, label: key, value, isSensitive: SENSITIVE_KEYS.has(key) })))))))));
52683
+ return /* @__PURE__ */ React449.createElement(BaseContainer, { blockId: block.id }, /* @__PURE__ */ React449.createElement(Stack326, { gap: "md" }, /* @__PURE__ */ React449.createElement(Group184, { gap: "xs", align: "center" }, /* @__PURE__ */ React449.createElement(IconKey5, { size: 18 }), /* @__PURE__ */ React449.createElement(Text308, { fw: 600, size: "sm" }, block.props.title || "Flow Output")), /* @__PURE__ */ React449.createElement(Text308, { size: "sm", c: "dimmed" }, "Everything produced by this flow. You can view it here or download as JSON."), connectUrl && /* @__PURE__ */ React449.createElement(Stack326, { gap: "xs" }, /* @__PURE__ */ React449.createElement(Text308, { size: "sm", fw: 500 }, "Oracle Connect Link"), /* @__PURE__ */ React449.createElement(Group184, { gap: "xs", align: "center" }, /* @__PURE__ */ React449.createElement(Anchor6, { href: connectUrl, target: "_blank", size: "sm", style: { wordBreak: "break-all" } }, connectUrl), /* @__PURE__ */ React449.createElement(CopyButton5, { value: connectUrl, timeout: 2e3 }, ({ copied, copy }) => /* @__PURE__ */ React449.createElement(Tooltip40, { label: copied ? "Copied" : "Copy link", withArrow: true, position: "right" }, /* @__PURE__ */ React449.createElement(ActionIcon62, { color: copied ? "teal" : "gray", variant: "subtle", onClick: copy, size: "sm" }, copied ? /* @__PURE__ */ React449.createElement(IconCheck60, { size: 14 }) : /* @__PURE__ */ React449.createElement(IconCopy4, { size: 14 })))))), /* @__PURE__ */ React449.createElement(Group184, { gap: "xs" }, /* @__PURE__ */ React449.createElement(Button114, { variant: "light", size: "xs", leftSection: /* @__PURE__ */ React449.createElement(IconEye, { size: 14 }), onClick: () => setShowOutput((v) => !v) }, showOutput ? "Hide Output" : "View Output"), /* @__PURE__ */ React449.createElement(Button114, { variant: "filled", size: "sm", leftSection: /* @__PURE__ */ React449.createElement(IconDownload6, { size: 14 }), onClick: handleDownload, disabled: outputs.length === 0 }, "Download JSON")), /* @__PURE__ */ React449.createElement(Collapse16, { in: showOutput }, /* @__PURE__ */ React449.createElement(Stack326, { gap: "sm" }, outputs.length === 0 && /* @__PURE__ */ React449.createElement(Text308, { size: "xs", c: "dimmed", fs: "italic" }, "No outputs yet."), outputs.map(({ id, label, output }) => /* @__PURE__ */ React449.createElement(Paper38, { key: id, p: "xs", withBorder: true, style: { borderColor: "var(--mantine-color-neutralColor-6)" } }, /* @__PURE__ */ React449.createElement(Stack326, { gap: 4 }, /* @__PURE__ */ React449.createElement(Text308, { size: "xs", fw: 600 }, label), Object.entries(output).map(([key, value]) => /* @__PURE__ */ React449.createElement(OutputEntry, { key, label: key, value, isSensitive: SENSITIVE_KEYS.has(key) })))))))));
52567
52684
  }
52568
52685
 
52569
52686
  // src/mantine/blocks/secrets/SecretsBlockSpec.tsx
@@ -52630,7 +52747,7 @@ var SkillsTemplateView = ({ editor: _editor, block }) => {
52630
52747
  };
52631
52748
 
52632
52749
  // src/mantine/blocks/skills/flow/SkillsFlowView.tsx
52633
- import { ActionIcon as ActionIcon62, Badge as Badge68, Button as Button115, Collapse as Collapse17, Group as Group186, Loader as Loader104, Paper as Paper39, Stack as Stack328, Text as Text310, Tooltip as Tooltip40 } from "@mantine/core";
52750
+ import { ActionIcon as ActionIcon63, Badge as Badge68, Button as Button115, Collapse as Collapse17, Group as Group186, Loader as Loader104, Paper as Paper39, Stack as Stack328, Text as Text310, Tooltip as Tooltip41 } from "@mantine/core";
52634
52751
  import { IconBrain as IconBrain3, IconCheck as IconCheck61, IconPencil as IconPencil5, IconPlus as IconPlus15, IconTrash as IconTrash17, IconX as IconX27 } from "@tabler/icons-react";
52635
52752
  import React454, { useCallback as useCallback198, useEffect as useEffect191, useMemo as useMemo182, useRef as useRef66, useState as useState262 } from "react";
52636
52753
  function parseSkills2(raw) {
@@ -52844,7 +52961,7 @@ var SkillsFlowView = ({ editor, block }) => {
52844
52961
  option: { padding: "8px 12px" }
52845
52962
  }
52846
52963
  }
52847
- ) : null, skills.map((skill) => /* @__PURE__ */ React454.createElement(Paper39, { key: skill.cid, p: "xs", withBorder: true, style: { borderColor: "var(--mantine-color-neutralColor-6)" } }, /* @__PURE__ */ React454.createElement(Group186, { justify: "space-between", wrap: "nowrap" }, /* @__PURE__ */ React454.createElement(Stack328, { gap: 2, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React454.createElement(Group186, { gap: "xs", align: "center" }, /* @__PURE__ */ React454.createElement(Text310, { size: "xs", fw: 500 }, skill.name), /* @__PURE__ */ React454.createElement(Badge68, { size: "xs", variant: "light", color: "blue" }, "CID")), skill.description && /* @__PURE__ */ React454.createElement(Text310, { size: "xs", c: "dimmed", lineClamp: 2 }, skill.description), /* @__PURE__ */ React454.createElement(Text310, { size: "xs", c: "dimmed", ff: "monospace", lineClamp: 1 }, skill.cid)), !isCompleted && /* @__PURE__ */ React454.createElement(ActionIcon62, { variant: "subtle", color: "red", size: "sm", onClick: () => updateSkills(skills.filter((s) => s.cid !== skill.cid)) }, /* @__PURE__ */ React454.createElement(IconX27, { size: 14 }))))), skills.length === 0 && !loadingCapsules && /* @__PURE__ */ React454.createElement(Text310, { size: "xs", c: "dimmed", fs: "italic" }, "No skills selected yet.")), /* @__PURE__ */ React454.createElement(Stack328, { gap: "xs" }, /* @__PURE__ */ React454.createElement(Group186, { justify: "space-between", align: "center" }, /* @__PURE__ */ React454.createElement(Text310, { size: "xs", fw: 500 }, "MCP Servers")), !isCompleted && mcpPresets.length > 0 && /* @__PURE__ */ React454.createElement(
52964
+ ) : null, skills.map((skill) => /* @__PURE__ */ React454.createElement(Paper39, { key: skill.cid, p: "xs", withBorder: true, style: { borderColor: "var(--mantine-color-neutralColor-6)" } }, /* @__PURE__ */ React454.createElement(Group186, { justify: "space-between", wrap: "nowrap" }, /* @__PURE__ */ React454.createElement(Stack328, { gap: 2, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React454.createElement(Group186, { gap: "xs", align: "center" }, /* @__PURE__ */ React454.createElement(Text310, { size: "xs", fw: 500 }, skill.name), /* @__PURE__ */ React454.createElement(Badge68, { size: "xs", variant: "light", color: "blue" }, "CID")), skill.description && /* @__PURE__ */ React454.createElement(Text310, { size: "xs", c: "dimmed", lineClamp: 2 }, skill.description), /* @__PURE__ */ React454.createElement(Text310, { size: "xs", c: "dimmed", ff: "monospace", lineClamp: 1 }, skill.cid)), !isCompleted && /* @__PURE__ */ React454.createElement(ActionIcon63, { variant: "subtle", color: "red", size: "sm", onClick: () => updateSkills(skills.filter((s) => s.cid !== skill.cid)) }, /* @__PURE__ */ React454.createElement(IconX27, { size: 14 }))))), skills.length === 0 && !loadingCapsules && /* @__PURE__ */ React454.createElement(Text310, { size: "xs", c: "dimmed", fs: "italic" }, "No skills selected yet.")), /* @__PURE__ */ React454.createElement(Stack328, { gap: "xs" }, /* @__PURE__ */ React454.createElement(Group186, { justify: "space-between", align: "center" }, /* @__PURE__ */ React454.createElement(Text310, { size: "xs", fw: 500 }, "MCP Servers")), !isCompleted && mcpPresets.length > 0 && /* @__PURE__ */ React454.createElement(
52848
52965
  BaseSelect,
52849
52966
  {
52850
52967
  placeholder: "Add from presets...",
@@ -52863,8 +52980,8 @@ var SkillsFlowView = ({ editor, block }) => {
52863
52980
  ), mcpServers.map((server, i) => {
52864
52981
  const validation = validationResults[server.url];
52865
52982
  const isValidating = validatingUrls[server.url];
52866
- return /* @__PURE__ */ React454.createElement(Paper39, { key: i, p: "xs", withBorder: true, style: { borderColor: "var(--mantine-color-neutralColor-6)" } }, /* @__PURE__ */ React454.createElement(Group186, { justify: "space-between", wrap: "nowrap" }, /* @__PURE__ */ React454.createElement(Stack328, { gap: 2, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React454.createElement(Group186, { gap: "xs", align: "center" }, /* @__PURE__ */ React454.createElement(Text310, { size: "xs", fw: 500 }, server.name), validation && validation.success && /* @__PURE__ */ React454.createElement(Badge68, { size: "xs", variant: "light", color: "green", leftSection: /* @__PURE__ */ React454.createElement(IconCheck61, { size: 10 }) }, validation.toolCount, " tools")), server.description && /* @__PURE__ */ React454.createElement(Text310, { size: "xs", c: "dimmed", lineClamp: 1 }, server.description), /* @__PURE__ */ React454.createElement(Text310, { size: "xs", c: "dimmed", ff: "monospace", lineClamp: 1 }, server.url), validation && !validation.success && /* @__PURE__ */ React454.createElement(Text310, { size: "xs", c: "red" }, validation.error)), !isCompleted && /* @__PURE__ */ React454.createElement(Group186, { gap: 4 }, !server.isPreset && /* @__PURE__ */ React454.createElement(Tooltip40, { label: "Test connection" }, /* @__PURE__ */ React454.createElement(Button115, { variant: "subtle", size: "compact-xs", onClick: () => handleValidateMcp(server.url), disabled: isValidating }, isValidating ? /* @__PURE__ */ React454.createElement(Loader104, { size: 12 }) : "Test")), /* @__PURE__ */ React454.createElement(
52867
- ActionIcon62,
52983
+ return /* @__PURE__ */ React454.createElement(Paper39, { key: i, p: "xs", withBorder: true, style: { borderColor: "var(--mantine-color-neutralColor-6)" } }, /* @__PURE__ */ React454.createElement(Group186, { justify: "space-between", wrap: "nowrap" }, /* @__PURE__ */ React454.createElement(Stack328, { gap: 2, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React454.createElement(Group186, { gap: "xs", align: "center" }, /* @__PURE__ */ React454.createElement(Text310, { size: "xs", fw: 500 }, server.name), validation && validation.success && /* @__PURE__ */ React454.createElement(Badge68, { size: "xs", variant: "light", color: "green", leftSection: /* @__PURE__ */ React454.createElement(IconCheck61, { size: 10 }) }, validation.toolCount, " tools")), server.description && /* @__PURE__ */ React454.createElement(Text310, { size: "xs", c: "dimmed", lineClamp: 1 }, server.description), /* @__PURE__ */ React454.createElement(Text310, { size: "xs", c: "dimmed", ff: "monospace", lineClamp: 1 }, server.url), validation && !validation.success && /* @__PURE__ */ React454.createElement(Text310, { size: "xs", c: "red" }, validation.error)), !isCompleted && /* @__PURE__ */ React454.createElement(Group186, { gap: 4 }, !server.isPreset && /* @__PURE__ */ React454.createElement(Tooltip41, { label: "Test connection" }, /* @__PURE__ */ React454.createElement(Button115, { variant: "subtle", size: "compact-xs", onClick: () => handleValidateMcp(server.url), disabled: isValidating }, isValidating ? /* @__PURE__ */ React454.createElement(Loader104, { size: 12 }) : "Test")), /* @__PURE__ */ React454.createElement(
52984
+ ActionIcon63,
52868
52985
  {
52869
52986
  variant: "subtle",
52870
52987
  size: "sm",
@@ -52877,7 +52994,7 @@ var SkillsFlowView = ({ editor, block }) => {
52877
52994
  }
52878
52995
  },
52879
52996
  /* @__PURE__ */ React454.createElement(IconPencil5, { size: 14 })
52880
- ), /* @__PURE__ */ React454.createElement(ActionIcon62, { variant: "subtle", color: "red", size: "sm", onClick: () => updateMcpServers(mcpServers.filter((_, idx) => idx !== i)) }, /* @__PURE__ */ React454.createElement(IconTrash17, { size: 14 })))));
52997
+ ), /* @__PURE__ */ React454.createElement(ActionIcon63, { variant: "subtle", color: "red", size: "sm", onClick: () => updateMcpServers(mcpServers.filter((_, idx) => idx !== i)) }, /* @__PURE__ */ React454.createElement(IconTrash17, { size: 14 })))));
52881
52998
  }), !isCompleted && !showAddMcp && /* @__PURE__ */ React454.createElement(Button115, { variant: "light", size: "xs", leftSection: /* @__PURE__ */ React454.createElement(IconPlus15, { size: 14 }), onClick: () => setShowAddMcp(true) }, "Add MCP Server"), /* @__PURE__ */ React454.createElement(Collapse17, { in: showAddMcp }, /* @__PURE__ */ React454.createElement(Paper39, { p: "sm", withBorder: true, style: { borderColor: "var(--mantine-color-neutralColor-6)" } }, /* @__PURE__ */ React454.createElement(Stack328, { gap: "xs" }, /* @__PURE__ */ React454.createElement(BaseTextInput, { size: "xs", label: "Name", placeholder: "Server name", value: mcpName, onChange: (e) => setMcpName(e.currentTarget.value) }), /* @__PURE__ */ React454.createElement(BaseTextInput, { size: "xs", label: "URL", placeholder: "https://...", value: mcpUrl, onChange: (e) => setMcpUrl(e.currentTarget.value) }), /* @__PURE__ */ React454.createElement(
52882
52999
  BaseTextInput,
52883
53000
  {
@@ -55465,7 +55582,7 @@ import { useDisclosure as useDisclosure7 } from "@mantine/hooks";
55465
55582
 
55466
55583
  // src/mantine/components/FlowSettingsPanel.tsx
55467
55584
  import React461, { useState as useState269, useEffect as useEffect198, useCallback as useCallback202 } from "react";
55468
- import { Stack as Stack330, Group as Group189, Button as Button116, ActionIcon as ActionIcon63, Text as Text313, Box as Box83 } from "@mantine/core";
55585
+ import { Stack as Stack330, Group as Group189, Button as Button116, ActionIcon as ActionIcon64, Text as Text313, Box as Box83 } from "@mantine/core";
55469
55586
  import { IconPlus as IconPlus16, IconTrash as IconTrash18 } from "@tabler/icons-react";
55470
55587
  var SYSTEM_KEYS = /* @__PURE__ */ new Set(["@context", "_type", "schema_version", "doc_id", "title", "createdAt", "createdBy", "flowOwnerDid"]);
55471
55588
  var FlowSettingsPanel = ({ editor }) => {
@@ -55532,7 +55649,7 @@ var FlowSettingsPanel = ({ editor }) => {
55532
55649
  [editor]
55533
55650
  );
55534
55651
  const subtitle = /* @__PURE__ */ React461.createElement(Box83, { px: 40, mb: "md" }, /* @__PURE__ */ React461.createElement(Text313, { size: "sm", c: "dimmed" }, "Add key-value settings for this flow. These are available to oracles and action blocks at runtime."));
55535
- return /* @__PURE__ */ React461.createElement(BaseRightPanelLayout, { title: "Flow Details", onClose: closePanel, isTemplate: true, captionContent: subtitle }, /* @__PURE__ */ React461.createElement(Stack330, { gap: "lg" }, rows.map((row, index) => /* @__PURE__ */ React461.createElement(Stack330, { key: index, gap: "xs" }, /* @__PURE__ */ React461.createElement(Group189, { gap: "xs", align: "center", wrap: "nowrap" }, /* @__PURE__ */ React461.createElement(BaseTextInput, { placeholder: "Key (e.g. protocolDid)", value: row.key, onChange: (e) => handleKeyChange(index, e.currentTarget.value), style: { flex: 1 } }), /* @__PURE__ */ React461.createElement(ActionIcon63, { variant: "subtle", color: "red", onClick: () => handleDelete(index), size: "lg" }, /* @__PURE__ */ React461.createElement(IconTrash18, { size: 16 }))), /* @__PURE__ */ React461.createElement(BaseTextArea, { placeholder: "Value", value: row.value, onChange: (e) => handleValueChange(index, e.currentTarget.value), minRows: 1, maxRows: 8 }))), /* @__PURE__ */ React461.createElement(Button116, { variant: "subtle", leftSection: /* @__PURE__ */ React461.createElement(IconPlus16, { size: 16 }), onClick: handleAdd, size: "sm" }, "Add detail")));
55652
+ return /* @__PURE__ */ React461.createElement(BaseRightPanelLayout, { title: "Flow Details", onClose: closePanel, isTemplate: true, captionContent: subtitle }, /* @__PURE__ */ React461.createElement(Stack330, { gap: "lg" }, rows.map((row, index) => /* @__PURE__ */ React461.createElement(Stack330, { key: index, gap: "xs" }, /* @__PURE__ */ React461.createElement(Group189, { gap: "xs", align: "center", wrap: "nowrap" }, /* @__PURE__ */ React461.createElement(BaseTextInput, { placeholder: "Key (e.g. protocolDid)", value: row.key, onChange: (e) => handleKeyChange(index, e.currentTarget.value), style: { flex: 1 } }), /* @__PURE__ */ React461.createElement(ActionIcon64, { variant: "subtle", color: "red", onClick: () => handleDelete(index), size: "lg" }, /* @__PURE__ */ React461.createElement(IconTrash18, { size: 16 }))), /* @__PURE__ */ React461.createElement(BaseTextArea, { placeholder: "Value", value: row.value, onChange: (e) => handleValueChange(index, e.currentTarget.value), minRows: 1, maxRows: 8 }))), /* @__PURE__ */ React461.createElement(Button116, { variant: "subtle", leftSection: /* @__PURE__ */ React461.createElement(IconPlus16, { size: 16 }), onClick: handleAdd, size: "sm" }, "Add detail")));
55536
55653
  };
55537
55654
 
55538
55655
  // src/mantine/components/CoverImage.tsx
@@ -57297,7 +57414,7 @@ var EntitySigningSetup = ({ opened, onClose, entityDid, entityName, onSetup }) =
57297
57414
 
57298
57415
  // src/mantine/components/FlowPermissionsPanel.tsx
57299
57416
  import React470, { useState as useState276, useEffect as useEffect205, useMemo as useMemo194 } from "react";
57300
- import { Stack as Stack334, Text as Text317, Paper as Paper41, Group as Group193, Badge as Badge70, Button as Button119, ActionIcon as ActionIcon64, Loader as Loader106, Alert as Alert62, Divider as Divider47 } from "@mantine/core";
57417
+ import { Stack as Stack334, Text as Text317, Paper as Paper41, Group as Group193, Badge as Badge70, Button as Button119, ActionIcon as ActionIcon65, Loader as Loader106, Alert as Alert62, Divider as Divider47 } from "@mantine/core";
57301
57418
  import { IconPlus as IconPlus17, IconTrash as IconTrash20, IconShieldCheck as IconShieldCheck19, IconUser as IconUser17, IconRobot as IconRobot9, IconBuilding as IconBuilding2 } from "@tabler/icons-react";
57302
57419
  var FlowPermissionsPanel = ({ editor, entityDid, entityName, onGrantPermission, onRevokePermission, getUserDisplayName }) => {
57303
57420
  const [delegations, setDelegations] = useState276([]);
@@ -57379,12 +57496,12 @@ var FlowPermissionsPanel = ({ editor, entityDid, entityName, onGrantPermission,
57379
57496
  if (date < /* @__PURE__ */ new Date()) return "Expired";
57380
57497
  return date.toLocaleDateString();
57381
57498
  };
57382
- return /* @__PURE__ */ React470.createElement(Stack334, { gap: "md" }, /* @__PURE__ */ React470.createElement(Stack334, { gap: "xs" }, /* @__PURE__ */ React470.createElement(Text317, { fw: 600, size: "sm" }, "Root Authority"), /* @__PURE__ */ React470.createElement(Paper41, { p: "sm", withBorder: true }, /* @__PURE__ */ React470.createElement(Group193, { gap: "xs" }, /* @__PURE__ */ React470.createElement(IconShieldCheck19, { size: 20, color: "var(--mantine-color-green-6)" }), /* @__PURE__ */ React470.createElement(Stack334, { gap: 2, style: { flex: 1 } }, /* @__PURE__ */ React470.createElement(Text317, { size: "sm", fw: 500 }, entityName || entityDid), /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, rootDelegation ? `Granted: ${new Date(rootDelegation.createdAt).toLocaleDateString()}` : "Root capability not set up")), /* @__PURE__ */ React470.createElement(Badge70, { color: "green", variant: "light" }, "Entity")))), /* @__PURE__ */ React470.createElement(Divider47, { label: "Flow Permissions", labelPosition: "center" }), loading ? /* @__PURE__ */ React470.createElement(Group193, { justify: "center", py: "xl" }, /* @__PURE__ */ React470.createElement(Loader106, { size: "sm" })) : flowDelegations.length === 0 ? /* @__PURE__ */ React470.createElement(Alert62, { color: "gray", variant: "light" }, /* @__PURE__ */ React470.createElement(Text317, { size: "sm" }, "No flow permissions have been granted yet.")) : /* @__PURE__ */ React470.createElement(Stack334, { gap: "xs" }, flowDelegations.map(({ delegation, displayName, type }) => /* @__PURE__ */ React470.createElement(Paper41, { key: delegation.cid, p: "sm", withBorder: true }, /* @__PURE__ */ React470.createElement(Group193, { justify: "space-between" }, /* @__PURE__ */ React470.createElement(Group193, { gap: "xs" }, getIcon2(type), /* @__PURE__ */ React470.createElement(Stack334, { gap: 2 }, /* @__PURE__ */ React470.createElement(Text317, { size: "sm", fw: 500 }, displayName), /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, formatCapabilities(delegation.capabilities)), /* @__PURE__ */ React470.createElement(Group193, { gap: "xs" }, /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, "Expires: ", formatExpiration(delegation.expiration)), /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, "\u2022"), /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, "Granted by: ", delegation.issuerDid === entityDid ? "Entity" : delegation.issuerDid.slice(-8))))), /* @__PURE__ */ React470.createElement(ActionIcon64, { color: "red", variant: "subtle", onClick: () => handleRevoke(delegation.cid), loading: revoking === delegation.cid, disabled: !!revoking }, /* @__PURE__ */ React470.createElement(IconTrash20, { size: 16 })))))), /* @__PURE__ */ React470.createElement(Divider47, { label: "Custom Capabilities", labelPosition: "center" }), !loading && customDelegations.length === 0 ? /* @__PURE__ */ React470.createElement(Alert62, { color: "gray", variant: "light" }, /* @__PURE__ */ React470.createElement(Text317, { size: "sm" }, "No custom capabilities have been created yet.")) : /* @__PURE__ */ React470.createElement(Stack334, { gap: "xs" }, customDelegations.map(({ delegation, displayName, type }) => /* @__PURE__ */ React470.createElement(Paper41, { key: delegation.cid, p: "sm", withBorder: true, style: { borderColor: "var(--mantine-color-violet-4)" } }, /* @__PURE__ */ React470.createElement(Group193, { justify: "space-between" }, /* @__PURE__ */ React470.createElement(Group193, { gap: "xs" }, getIcon2(type), /* @__PURE__ */ React470.createElement(Stack334, { gap: 2 }, /* @__PURE__ */ React470.createElement(Group193, { gap: "xs" }, /* @__PURE__ */ React470.createElement(Text317, { size: "sm", fw: 500 }, displayName), /* @__PURE__ */ React470.createElement(Badge70, { size: "xs", variant: "light", color: "violet" }, "custom")), /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, formatCapabilities(delegation.capabilities)), /* @__PURE__ */ React470.createElement(Group193, { gap: "xs" }, /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, "Expires: ", formatExpiration(delegation.expiration)), /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, "\u2022"), /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, "Issued by: ", delegation.issuerDid.slice(-12))))), /* @__PURE__ */ React470.createElement(ActionIcon64, { color: "red", variant: "subtle", onClick: () => handleRevoke(delegation.cid), loading: revoking === delegation.cid, disabled: !!revoking }, /* @__PURE__ */ React470.createElement(IconTrash20, { size: 16 })))))), /* @__PURE__ */ React470.createElement(Button119, { leftSection: /* @__PURE__ */ React470.createElement(IconPlus17, { size: 16 }), variant: "light", onClick: onGrantPermission }, "Grant Permission"));
57499
+ return /* @__PURE__ */ React470.createElement(Stack334, { gap: "md" }, /* @__PURE__ */ React470.createElement(Stack334, { gap: "xs" }, /* @__PURE__ */ React470.createElement(Text317, { fw: 600, size: "sm" }, "Root Authority"), /* @__PURE__ */ React470.createElement(Paper41, { p: "sm", withBorder: true }, /* @__PURE__ */ React470.createElement(Group193, { gap: "xs" }, /* @__PURE__ */ React470.createElement(IconShieldCheck19, { size: 20, color: "var(--mantine-color-green-6)" }), /* @__PURE__ */ React470.createElement(Stack334, { gap: 2, style: { flex: 1 } }, /* @__PURE__ */ React470.createElement(Text317, { size: "sm", fw: 500 }, entityName || entityDid), /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, rootDelegation ? `Granted: ${new Date(rootDelegation.createdAt).toLocaleDateString()}` : "Root capability not set up")), /* @__PURE__ */ React470.createElement(Badge70, { color: "green", variant: "light" }, "Entity")))), /* @__PURE__ */ React470.createElement(Divider47, { label: "Flow Permissions", labelPosition: "center" }), loading ? /* @__PURE__ */ React470.createElement(Group193, { justify: "center", py: "xl" }, /* @__PURE__ */ React470.createElement(Loader106, { size: "sm" })) : flowDelegations.length === 0 ? /* @__PURE__ */ React470.createElement(Alert62, { color: "gray", variant: "light" }, /* @__PURE__ */ React470.createElement(Text317, { size: "sm" }, "No flow permissions have been granted yet.")) : /* @__PURE__ */ React470.createElement(Stack334, { gap: "xs" }, flowDelegations.map(({ delegation, displayName, type }) => /* @__PURE__ */ React470.createElement(Paper41, { key: delegation.cid, p: "sm", withBorder: true }, /* @__PURE__ */ React470.createElement(Group193, { justify: "space-between" }, /* @__PURE__ */ React470.createElement(Group193, { gap: "xs" }, getIcon2(type), /* @__PURE__ */ React470.createElement(Stack334, { gap: 2 }, /* @__PURE__ */ React470.createElement(Text317, { size: "sm", fw: 500 }, displayName), /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, formatCapabilities(delegation.capabilities)), /* @__PURE__ */ React470.createElement(Group193, { gap: "xs" }, /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, "Expires: ", formatExpiration(delegation.expiration)), /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, "\u2022"), /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, "Granted by: ", delegation.issuerDid === entityDid ? "Entity" : delegation.issuerDid.slice(-8))))), /* @__PURE__ */ React470.createElement(ActionIcon65, { color: "red", variant: "subtle", onClick: () => handleRevoke(delegation.cid), loading: revoking === delegation.cid, disabled: !!revoking }, /* @__PURE__ */ React470.createElement(IconTrash20, { size: 16 })))))), /* @__PURE__ */ React470.createElement(Divider47, { label: "Custom Capabilities", labelPosition: "center" }), !loading && customDelegations.length === 0 ? /* @__PURE__ */ React470.createElement(Alert62, { color: "gray", variant: "light" }, /* @__PURE__ */ React470.createElement(Text317, { size: "sm" }, "No custom capabilities have been created yet.")) : /* @__PURE__ */ React470.createElement(Stack334, { gap: "xs" }, customDelegations.map(({ delegation, displayName, type }) => /* @__PURE__ */ React470.createElement(Paper41, { key: delegation.cid, p: "sm", withBorder: true, style: { borderColor: "var(--mantine-color-violet-4)" } }, /* @__PURE__ */ React470.createElement(Group193, { justify: "space-between" }, /* @__PURE__ */ React470.createElement(Group193, { gap: "xs" }, getIcon2(type), /* @__PURE__ */ React470.createElement(Stack334, { gap: 2 }, /* @__PURE__ */ React470.createElement(Group193, { gap: "xs" }, /* @__PURE__ */ React470.createElement(Text317, { size: "sm", fw: 500 }, displayName), /* @__PURE__ */ React470.createElement(Badge70, { size: "xs", variant: "light", color: "violet" }, "custom")), /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, formatCapabilities(delegation.capabilities)), /* @__PURE__ */ React470.createElement(Group193, { gap: "xs" }, /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, "Expires: ", formatExpiration(delegation.expiration)), /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, "\u2022"), /* @__PURE__ */ React470.createElement(Text317, { size: "xs", c: "dimmed" }, "Issued by: ", delegation.issuerDid.slice(-12))))), /* @__PURE__ */ React470.createElement(ActionIcon65, { color: "red", variant: "subtle", onClick: () => handleRevoke(delegation.cid), loading: revoking === delegation.cid, disabled: !!revoking }, /* @__PURE__ */ React470.createElement(IconTrash20, { size: 16 })))))), /* @__PURE__ */ React470.createElement(Button119, { leftSection: /* @__PURE__ */ React470.createElement(IconPlus17, { size: 16 }), variant: "light", onClick: onGrantPermission }, "Grant Permission"));
57383
57500
  };
57384
57501
 
57385
57502
  // src/mantine/components/GrantPermissionModal.tsx
57386
57503
  import React471, { useState as useState277, useCallback as useCallback206 } from "react";
57387
- import { Modal as Modal9, Stack as Stack335, Text as Text318, TextInput as TextInput13, Button as Button120, Group as Group194, Radio as Radio7, Checkbox as Checkbox19, Alert as Alert63, Paper as Paper42, Loader as Loader107, Badge as Badge71, ActionIcon as ActionIcon65, Divider as Divider48, NumberInput as NumberInput16 } from "@mantine/core";
57504
+ import { Modal as Modal9, Stack as Stack335, Text as Text318, TextInput as TextInput13, Button as Button120, Group as Group194, Radio as Radio7, Checkbox as Checkbox19, Alert as Alert63, Paper as Paper42, Loader as Loader107, Badge as Badge71, ActionIcon as ActionIcon66, Divider as Divider48, NumberInput as NumberInput16 } from "@mantine/core";
57388
57505
  import { IconSearch as IconSearch12, IconUser as IconUser18, IconRobot as IconRobot10, IconX as IconX29, IconShieldPlus as IconShieldPlus5 } from "@tabler/icons-react";
57389
57506
  var GrantPermissionModal = ({ opened, onClose, flowUri, blocks, targetBlockId, searchUsers, getOracles, onGrant }) => {
57390
57507
  const singleBlockMode = !!targetBlockId || blocks.length === 1;
@@ -57520,7 +57637,7 @@ var GrantPermissionModal = ({ opened, onClose, flowUri, blocks, targetBlockId, s
57520
57637
  onChange: (e) => setSearchQuery(e.currentTarget.value),
57521
57638
  onKeyDown: (e) => e.key === "Enter" && handleSearch()
57522
57639
  }
57523
- ), selectedRecipient ? /* @__PURE__ */ React471.createElement(Paper42, { p: "sm", withBorder: true }, /* @__PURE__ */ React471.createElement(Group194, { justify: "space-between" }, /* @__PURE__ */ React471.createElement(Group194, { gap: "xs" }, recipientType === "oracle" ? /* @__PURE__ */ React471.createElement(IconRobot10, { size: 16 }) : /* @__PURE__ */ React471.createElement(IconUser18, { size: 16 }), /* @__PURE__ */ React471.createElement(Text318, { size: "sm" }, selectedRecipient.displayName), /* @__PURE__ */ React471.createElement(Badge71, { size: "xs", variant: "light" }, selectedRecipient.did.slice(-12))), /* @__PURE__ */ React471.createElement(ActionIcon65, { size: "sm", variant: "subtle", onClick: () => setSelectedRecipient(null) }, /* @__PURE__ */ React471.createElement(IconX29, { size: 14 })))) : searchResults.length > 0 ? /* @__PURE__ */ React471.createElement(Paper42, { p: "xs", withBorder: true, style: { maxHeight: 150, overflow: "auto" } }, /* @__PURE__ */ React471.createElement(Stack335, { gap: 4 }, searchResults.map((result) => /* @__PURE__ */ React471.createElement(Button120, { key: result.did, variant: "subtle", size: "sm", justify: "flex-start", onClick: () => setSelectedRecipient(result) }, result.displayName)))) : null) : /* @__PURE__ */ React471.createElement(TextInput13, { label: "Recipient DID", placeholder: "did:ixo:...", value: manualDid, onChange: (e) => setManualDid(e.currentTarget.value) }), /* @__PURE__ */ React471.createElement(Divider48, null), /* @__PURE__ */ React471.createElement(Stack335, { gap: "xs" }, /* @__PURE__ */ React471.createElement(Text318, { size: "sm", fw: 500 }, "Permission Scope"), singleBlockMode && fixedBlock ? (
57640
+ ), selectedRecipient ? /* @__PURE__ */ React471.createElement(Paper42, { p: "sm", withBorder: true }, /* @__PURE__ */ React471.createElement(Group194, { justify: "space-between" }, /* @__PURE__ */ React471.createElement(Group194, { gap: "xs" }, recipientType === "oracle" ? /* @__PURE__ */ React471.createElement(IconRobot10, { size: 16 }) : /* @__PURE__ */ React471.createElement(IconUser18, { size: 16 }), /* @__PURE__ */ React471.createElement(Text318, { size: "sm" }, selectedRecipient.displayName), /* @__PURE__ */ React471.createElement(Badge71, { size: "xs", variant: "light" }, selectedRecipient.did.slice(-12))), /* @__PURE__ */ React471.createElement(ActionIcon66, { size: "sm", variant: "subtle", onClick: () => setSelectedRecipient(null) }, /* @__PURE__ */ React471.createElement(IconX29, { size: 14 })))) : searchResults.length > 0 ? /* @__PURE__ */ React471.createElement(Paper42, { p: "xs", withBorder: true, style: { maxHeight: 150, overflow: "auto" } }, /* @__PURE__ */ React471.createElement(Stack335, { gap: 4 }, searchResults.map((result) => /* @__PURE__ */ React471.createElement(Button120, { key: result.did, variant: "subtle", size: "sm", justify: "flex-start", onClick: () => setSelectedRecipient(result) }, result.displayName)))) : null) : /* @__PURE__ */ React471.createElement(TextInput13, { label: "Recipient DID", placeholder: "did:ixo:...", value: manualDid, onChange: (e) => setManualDid(e.currentTarget.value) }), /* @__PURE__ */ React471.createElement(Divider48, null), /* @__PURE__ */ React471.createElement(Stack335, { gap: "xs" }, /* @__PURE__ */ React471.createElement(Text318, { size: "sm", fw: 500 }, "Permission Scope"), singleBlockMode && fixedBlock ? (
57524
57641
  // Single block mode: show fixed block info
57525
57642
  /* @__PURE__ */ React471.createElement(Paper42, { p: "sm", withBorder: true }, /* @__PURE__ */ React471.createElement(Group194, { gap: "xs" }, /* @__PURE__ */ React471.createElement(Badge71, { variant: "light", color: "blue" }, fixedBlock.type), /* @__PURE__ */ React471.createElement(Text318, { size: "sm" }, fixedBlock.name || `Block ${fixedBlock.id.slice(-8)}`)), /* @__PURE__ */ React471.createElement(Text318, { size: "xs", c: "dimmed", mt: "xs" }, "Permission will be granted to execute this specific block."))
57526
57643
  ) : (
@@ -57700,4 +57817,4 @@ export {
57700
57817
  ixoGraphQLClient,
57701
57818
  getEntity
57702
57819
  };
57703
- //# sourceMappingURL=chunk-GEJ2KLBL.js.map
57820
+ //# sourceMappingURL=chunk-W5CKNMDB.js.map