@ixo/editor 3.0.0-beta.29 → 3.0.0-beta.30

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.
@@ -4022,10 +4022,27 @@ var daosConfigFields = [
4022
4022
  description: "The DID of the relayed node to fetch Daos from",
4023
4023
  type: "text",
4024
4024
  required: false
4025
+ },
4026
+ {
4027
+ key: "daoType",
4028
+ label: "DAO Type",
4029
+ description: "The type of DAO entities to display",
4030
+ type: "select",
4031
+ required: false,
4032
+ options: [
4033
+ { value: "dao", label: "DAO" },
4034
+ { value: "pod", label: "POD" },
4035
+ { value: "group", label: "Group" }
4036
+ ],
4037
+ defaultValue: "dao"
4025
4038
  }
4026
4039
  ];
4027
4040
  var daosSortFields = [{ key: "name", label: "Name", type: "string" }];
4028
- var daosFilterFields = [];
4041
+ var daosFilterFields = [
4042
+ { key: "isOwner", label: "Owner", type: true },
4043
+ { key: "isController", label: "Controller", type: true },
4044
+ { key: "isMember", label: "Member", type: true }
4045
+ ];
4029
4046
  var daosHandlerKey = "getDaos";
4030
4047
  var daosSelectionPanelConfig = {
4031
4048
  title: (item) => item.name || "Dao",
@@ -9258,14 +9275,21 @@ var ProjectsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
9258
9275
 
9259
9276
  // src/mantine/blocks/list/daos/DaosList.tsx
9260
9277
  import React85 from "react";
9261
- import { Text as Text57, Box as Box26, Image as Image13, Stack as Stack57, Flex as Flex24 } from "@mantine/core";
9278
+ import { Text as Text57, Box as Box26, Image as Image13, Stack as Stack57, Flex as Flex24, Badge as Badge9 } from "@mantine/core";
9279
+ function getRoleBadge(item) {
9280
+ if (item.isOwner) return "Owner";
9281
+ if (item.isController) return "Controller";
9282
+ if (item.isMember) return "Member";
9283
+ return null;
9284
+ }
9262
9285
  var DaosList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
9263
9286
  if (!items || items.length === 0) {
9264
9287
  return /* @__PURE__ */ React85.createElement(Text57, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No Daos found");
9265
9288
  }
9266
9289
  const rows = items.map((item) => {
9267
9290
  const isChecked = isItemChecked?.(item.did);
9268
- return /* @__PURE__ */ React85.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React85.createElement(Flex24, { align: "center", gap: "sm" }, /* @__PURE__ */ React85.createElement(Image13, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React85.createElement(Stack57, { gap: 0 }, /* @__PURE__ */ React85.createElement(Text57, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React85.createElement(Text57, { size: "sm", c: "dimmed" }, shortStr(item.description, 50, 0) || "-"))), /* @__PURE__ */ React85.createElement(Flex24, { align: "center", gap: "md" }, isMultiSelect && /* @__PURE__ */ React85.createElement(ListItemCheckbox, { ariaLabel: `Select DAO ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
9291
+ const role = getRoleBadge(item);
9292
+ return /* @__PURE__ */ React85.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React85.createElement(Flex24, { align: "center", gap: "sm", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React85.createElement(Image13, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React85.createElement(Stack57, { gap: 0, style: { minWidth: 0 } }, /* @__PURE__ */ React85.createElement(Text57, { size: "sm", truncate: true }, item.name || "Not Found"), /* @__PURE__ */ React85.createElement(Text57, { size: "sm", c: "dimmed", truncate: true }, shortStr(item.description, 50, 0) || "Not Found"))), /* @__PURE__ */ React85.createElement(Flex24, { align: "center", gap: "md" }, role && /* @__PURE__ */ React85.createElement(Badge9, { variant: "light", size: "sm" }, role), isMultiSelect && /* @__PURE__ */ React85.createElement(ListItemCheckbox, { ariaLabel: `Select DAO ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
9269
9293
  });
9270
9294
  return /* @__PURE__ */ React85.createElement(Box26, { flex: 1 }, /* @__PURE__ */ React85.createElement(Stack57, null, rows));
9271
9295
  };
@@ -9754,6 +9778,7 @@ var ListFlowView = ({ block, editor }) => {
9754
9778
  }
9755
9779
  });
9756
9780
  };
9781
+ const daoRoleFilter = listType === "daos" && (listFilterConfig?.key === "isOwner" || listFilterConfig?.key === "isController") ? listFilterConfig.key : void 0;
9757
9782
  const fetchData = useCallback31(async () => {
9758
9783
  if (!handlers || !listType || !listConfig) return;
9759
9784
  setLoading(true);
@@ -9846,7 +9871,19 @@ var ListFlowView = ({ block, editor }) => {
9846
9871
  case "daos":
9847
9872
  relayerDid = handlers.getRelayerDid();
9848
9873
  if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
9849
- result = await handlers.getDaos(listConfig.relayedNodeDid || relayerDid, page);
9874
+ const daoRelayerDid = listConfig.relayedNodeDid || relayerDid;
9875
+ switch (listConfig.daoType) {
9876
+ case "pod":
9877
+ result = await handlers.getPODs(daoRelayerDid, page, daoRoleFilter);
9878
+ break;
9879
+ case "group":
9880
+ if (!handlers.getDaoGroups) throw new Error("getDaoGroups handler is not configured");
9881
+ result = await handlers.getDaoGroups(daoRelayerDid, page, daoRoleFilter);
9882
+ break;
9883
+ default:
9884
+ result = await handlers.getDaos(daoRelayerDid, page, daoRoleFilter);
9885
+ break;
9886
+ }
9850
9887
  setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
9851
9888
  setData({ items: result.data });
9852
9889
  break;
@@ -9937,7 +9974,7 @@ var ListFlowView = ({ block, editor }) => {
9937
9974
  } finally {
9938
9975
  setLoading(false);
9939
9976
  }
9940
- }, [handlers, page, listType, listConfig, runtimeSearchValue]);
9977
+ }, [handlers, page, listType, listConfig, runtimeSearchValue, daoRoleFilter]);
9941
9978
  useEffect35(() => {
9942
9979
  fetchDataRef.current = fetchData;
9943
9980
  }, [fetchData]);
@@ -9945,11 +9982,13 @@ var ListFlowView = ({ block, editor }) => {
9945
9982
  if (listType && listConfig) {
9946
9983
  fetchData();
9947
9984
  }
9948
- }, [listType, page, listConfig, runtimeSearchValue]);
9985
+ }, [listType, page, listConfig, runtimeSearchValue, daoRoleFilter]);
9949
9986
  const handleFilterChange = (filterOption) => {
9950
9987
  if (filterOption?.key === listFilterConfig?.key && filterOption?.value === listFilterConfig?.value) {
9988
+ if (listType === "daos") setPage(1);
9951
9989
  return updateProps({ filter: null });
9952
9990
  }
9991
+ if (listType === "daos") setPage(1);
9953
9992
  updateProps({ filter: JSON.stringify(filterOption) });
9954
9993
  };
9955
9994
  const handleSortChange = (sortOption) => {
@@ -9965,8 +10004,9 @@ var ListFlowView = ({ block, editor }) => {
9965
10004
  const filteredData = useMemo39(() => {
9966
10005
  if (!listFilterConfig?.key) return sortedData;
9967
10006
  if (!sortedData) return null;
10007
+ if (listType === "daos" && daoRoleFilter) return sortedData;
9968
10008
  return filterListItems(sortedData, listFilterConfig);
9969
- }, [data?.items, sortedData, listFilterConfig]);
10009
+ }, [data?.items, sortedData, listFilterConfig, listType, daoRoleFilter]);
9970
10010
  const renderListComponent = () => {
9971
10011
  if (!filteredData || !listType) return null;
9972
10012
  switch (listType) {
@@ -10388,7 +10428,7 @@ import { Card as Card12, Stack as Stack94 } from "@mantine/core";
10388
10428
 
10389
10429
  // src/mantine/blocks/proposal/actions-components/ActionsCard.tsx
10390
10430
  import React93 from "react";
10391
- import { Card as Card5, Group as Group26, Text as Text63, Badge as Badge9, Stack as Stack62, ActionIcon as ActionIcon12, ScrollArea as ScrollArea2 } from "@mantine/core";
10431
+ import { Card as Card5, Group as Group26, Text as Text63, Badge as Badge10, Stack as Stack62, ActionIcon as ActionIcon12, ScrollArea as ScrollArea2 } from "@mantine/core";
10392
10432
  var getActionSummary = (action) => {
10393
10433
  switch (action.type) {
10394
10434
  case "Spend":
@@ -10449,7 +10489,7 @@ var ActionsCard = ({ actions, isSelected, onClick, onEditAction, onRemoveAction,
10449
10489
  }
10450
10490
  },
10451
10491
  /* @__PURE__ */ React93.createElement(Group26, { justify: "space-between", align: "center" }, /* @__PURE__ */ React93.createElement(Group26, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React93.createElement(
10452
- Badge9,
10492
+ Badge10,
10453
10493
  {
10454
10494
  size: "sm",
10455
10495
  variant: "light",
@@ -10492,7 +10532,7 @@ var ActionsCard = ({ actions, isSelected, onClick, onEditAction, onRemoveAction,
10492
10532
 
10493
10533
  // src/mantine/blocks/proposal/ActionsPanel.tsx
10494
10534
  import React124, { useState as useState46, useEffect as useEffect39, useMemo as useMemo40 } from "react";
10495
- import { Stack as Stack93, Button as Button17, Group as Group37, Text as Text71, Card as Card11, Badge as Badge12, Divider as Divider10, ScrollArea as ScrollArea4, Alert as Alert18, Tabs as Tabs2, SimpleGrid, Paper as Paper8 } from "@mantine/core";
10535
+ import { Stack as Stack93, Button as Button17, Group as Group37, Text as Text71, Card as Card11, Badge as Badge13, Divider as Divider10, ScrollArea as ScrollArea4, Alert as Alert18, Tabs as Tabs2, SimpleGrid, Paper as Paper8 } from "@mantine/core";
10496
10536
 
10497
10537
  // src/mantine/blocks/proposal/actions-components/SpendActionForm.tsx
10498
10538
  import React94 from "react";
@@ -10503,7 +10543,7 @@ var SpendActionForm = ({ data, onChange }) => {
10503
10543
 
10504
10544
  // src/mantine/blocks/proposal/actions-components/UpdateMembersActionForm.tsx
10505
10545
  import React95, { useState as useState40 } from "react";
10506
- import { Stack as Stack64, Button as Button12, Group as Group27, Text as Text64, Card as Card6, Badge as Badge10, ActionIcon as ActionIcon13, Divider as Divider9, ScrollArea as ScrollArea3 } from "@mantine/core";
10546
+ import { Stack as Stack64, Button as Button12, Group as Group27, Text as Text64, Card as Card6, Badge as Badge11, ActionIcon as ActionIcon13, Divider as Divider9, ScrollArea as ScrollArea3 } from "@mantine/core";
10507
10547
  var UpdateMembersActionForm = ({ data, onChange }) => {
10508
10548
  const [newMember, setNewMember] = useState40({ addr: "", weight: 1 });
10509
10549
  const [newRemoveAddress, setNewRemoveAddress] = useState40("");
@@ -10547,7 +10587,7 @@ var UpdateMembersActionForm = ({ data, onChange }) => {
10547
10587
  }
10548
10588
  },
10549
10589
  /* @__PURE__ */ React95.createElement(Group27, { justify: "space-between" }, /* @__PURE__ */ React95.createElement("div", null, /* @__PURE__ */ React95.createElement(Text64, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, member.addr.slice(0, 20), "..."), /* @__PURE__ */ React95.createElement(
10550
- Badge10,
10590
+ Badge11,
10551
10591
  {
10552
10592
  size: "sm",
10553
10593
  style: {
@@ -10734,7 +10774,7 @@ var ExecuteActionForm = ({ data, onChange }) => {
10734
10774
 
10735
10775
  // src/mantine/blocks/proposal/actions-components/forms/CustomActionForm.tsx
10736
10776
  import React100, { useState as useState42, useEffect as useEffect38 } from "react";
10737
- import { Stack as Stack69, Alert as Alert16, Group as Group29, Text as Text66, Badge as Badge11 } from "@mantine/core";
10777
+ import { Stack as Stack69, Alert as Alert16, Group as Group29, Text as Text66, Badge as Badge12 } from "@mantine/core";
10738
10778
  var CustomActionForm = ({ data, onChange }) => {
10739
10779
  const [isValid, setIsValid] = useState42(true);
10740
10780
  const [error, setError] = useState42("");
@@ -10759,7 +10799,7 @@ var CustomActionForm = ({ data, onChange }) => {
10759
10799
  }
10760
10800
  };
10761
10801
  return /* @__PURE__ */ React100.createElement(Stack69, { gap: "md" }, /* @__PURE__ */ React100.createElement(Alert16, { color: "yellow", style: { backgroundColor: "#2a2a2a", borderColor: "#ffd43b" } }, /* @__PURE__ */ React100.createElement(Text66, { size: "sm", style: { color: "#ffd43b" } }, "\u26A0\uFE0F Custom actions require valid JSON messages. Supports both Wasm and Stargate message formats.")), /* @__PURE__ */ React100.createElement("div", null, /* @__PURE__ */ React100.createElement(Group29, { gap: "xs", mb: "xs" }, /* @__PURE__ */ React100.createElement(Text66, { size: "sm", fw: 500, style: { color: "#adb5bd" } }, "Custom Message (JSON)"), /* @__PURE__ */ React100.createElement(
10762
- Badge11,
10802
+ Badge12,
10763
10803
  {
10764
10804
  size: "sm",
10765
10805
  style: {
@@ -12460,7 +12500,7 @@ var ActionsPanel = ({ actions, editingIndex, onSave, onCancel, isTemplateMode =
12460
12500
  },
12461
12501
  onClick: () => setSelectedActionType(config.value)
12462
12502
  },
12463
- /* @__PURE__ */ React124.createElement(Stack93, { gap: "xs" }, /* @__PURE__ */ React124.createElement(Group37, { justify: "space-between" }, /* @__PURE__ */ React124.createElement(Text71, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, config.label), selectedActionType === config.value && /* @__PURE__ */ React124.createElement(Badge12, { size: "xs", style: { backgroundColor: "rgba(0, 255, 157, 1)" } }, "Selected")), config.description && /* @__PURE__ */ React124.createElement(Text71, { size: "xs", style: { color: "#adb5bd" } }, config.description))
12503
+ /* @__PURE__ */ React124.createElement(Stack93, { gap: "xs" }, /* @__PURE__ */ React124.createElement(Group37, { justify: "space-between" }, /* @__PURE__ */ React124.createElement(Text71, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, config.label), selectedActionType === config.value && /* @__PURE__ */ React124.createElement(Badge13, { size: "xs", style: { backgroundColor: "rgba(0, 255, 157, 1)" } }, "Selected")), config.description && /* @__PURE__ */ React124.createElement(Text71, { size: "xs", style: { color: "#adb5bd" } }, config.description))
12464
12504
  )))))
12465
12505
  )) : /* @__PURE__ */ React124.createElement(
12466
12506
  Card11,
@@ -12473,7 +12513,7 @@ var ActionsPanel = ({ actions, editingIndex, onSave, onCancel, isTemplateMode =
12473
12513
  }
12474
12514
  },
12475
12515
  /* @__PURE__ */ React124.createElement(Group37, { justify: "space-between" }, /* @__PURE__ */ React124.createElement(Group37, { gap: "xs" }, /* @__PURE__ */ React124.createElement(
12476
- Badge12,
12516
+ Badge13,
12477
12517
  {
12478
12518
  size: "sm",
12479
12519
  style: {
@@ -12499,7 +12539,7 @@ var ActionsPanel = ({ actions, editingIndex, onSave, onCancel, isTemplateMode =
12499
12539
  }
12500
12540
  },
12501
12541
  /* @__PURE__ */ React124.createElement(Group37, { gap: "xs" }, /* @__PURE__ */ React124.createElement(
12502
- Badge12,
12542
+ Badge13,
12503
12543
  {
12504
12544
  size: "sm",
12505
12545
  style: {
@@ -12508,7 +12548,7 @@ var ActionsPanel = ({ actions, editingIndex, onSave, onCancel, isTemplateMode =
12508
12548
  }
12509
12549
  },
12510
12550
  config?.label || action.type
12511
- ), /* @__PURE__ */ React124.createElement(Text71, { size: "sm", style: { color: "#adb5bd" } }, config?.getSummary(action.data) || "Action"), index === editingIndex && /* @__PURE__ */ React124.createElement(Badge12, { size: "xs", style: { backgroundColor: "rgba(0, 255, 157, 1)", color: "#fff" } }, "Editing"))
12551
+ ), /* @__PURE__ */ React124.createElement(Text71, { size: "sm", style: { color: "#adb5bd" } }, config?.getSummary(action.data) || "Action"), index === editingIndex && /* @__PURE__ */ React124.createElement(Badge13, { size: "xs", style: { backgroundColor: "rgba(0, 255, 157, 1)", color: "#fff" } }, "Editing"))
12512
12552
  );
12513
12553
  })))), /* @__PURE__ */ React124.createElement(Group37, { justify: "flex-end", mt: "md" }, /* @__PURE__ */ React124.createElement(
12514
12554
  Button17,
@@ -12681,7 +12721,7 @@ import React133, { useMemo as useMemo42 } from "react";
12681
12721
 
12682
12722
  // src/mantine/blocks/proposal/components/OnChainProposalCard.tsx
12683
12723
  import React129 from "react";
12684
- import { Card as Card13, Group as Group39, Stack as Stack97, Text as Text73, Skeleton, Badge as Badge13, Button as Button18 } from "@mantine/core";
12724
+ import { Card as Card13, Group as Group39, Stack as Stack97, Text as Text73, Skeleton, Badge as Badge14, Button as Button18 } from "@mantine/core";
12685
12725
  var statusColor = {
12686
12726
  open: "#4dabf7",
12687
12727
  passed: "#51cf66",
@@ -12725,7 +12765,7 @@ var OnChainProposalCard = ({
12725
12765
  },
12726
12766
  isFetching && /* @__PURE__ */ React129.createElement(Stack97, null, /* @__PURE__ */ React129.createElement(Skeleton, { height: 20, width: "70%" }), /* @__PURE__ */ React129.createElement(Skeleton, { height: 16 }), /* @__PURE__ */ React129.createElement(Skeleton, { height: 16, width: "40%" })),
12727
12767
  error && /* @__PURE__ */ React129.createElement(Text73, { size: "sm", c: "red" }, typeof error === "string" ? error : error.message || "An error occurred while loading the proposal."),
12728
- !isFetching && /* @__PURE__ */ React129.createElement(Group39, { justify: "space-between", align: "flex-start" }, /* @__PURE__ */ React129.createElement(Group39, { align: "flex-start", gap: "md", style: { flex: 1 } }, getIcon("file-text", icon2), /* @__PURE__ */ React129.createElement(Stack97, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React129.createElement(Group39, { gap: "xs" }, /* @__PURE__ */ React129.createElement(Text73, { size: "md", fw: 600 }, title || "Proposal"), /* @__PURE__ */ React129.createElement(Badge13, { color: statusColor[status], variant: "filled", size: "sm", radius: "sm" }, status.replace(/_/g, " ").toUpperCase())), /* @__PURE__ */ React129.createElement(Text73, { size: "sm", c: "dimmed" }, getDisplayDescription(description)))), /* @__PURE__ */ React129.createElement(Group39, { gap: "xs" }, voteEnabled && onVote && status === "open" && /* @__PURE__ */ React129.createElement(
12768
+ !isFetching && /* @__PURE__ */ React129.createElement(Group39, { justify: "space-between", align: "flex-start" }, /* @__PURE__ */ React129.createElement(Group39, { align: "flex-start", gap: "md", style: { flex: 1 } }, getIcon("file-text", icon2), /* @__PURE__ */ React129.createElement(Stack97, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React129.createElement(Group39, { gap: "xs" }, /* @__PURE__ */ React129.createElement(Text73, { size: "md", fw: 600 }, title || "Proposal"), /* @__PURE__ */ React129.createElement(Badge14, { color: statusColor[status], variant: "filled", size: "sm", radius: "sm" }, status.replace(/_/g, " ").toUpperCase())), /* @__PURE__ */ React129.createElement(Text73, { size: "sm", c: "dimmed" }, getDisplayDescription(description)))), /* @__PURE__ */ React129.createElement(Group39, { gap: "xs" }, voteEnabled && onVote && status === "open" && /* @__PURE__ */ React129.createElement(
12729
12769
  Button18,
12730
12770
  {
12731
12771
  size: "sm",
@@ -14142,7 +14182,7 @@ import { IconVariable, IconX as IconX9 } from "@tabler/icons-react";
14142
14182
 
14143
14183
  // src/mantine/components/DataInput/BlockPropSelector.tsx
14144
14184
  import React143, { useState as useState55, useMemo as useMemo44 } from "react";
14145
- import { Popover as Popover5, Text as Text83, Stack as Stack107, Group as Group45, ActionIcon as ActionIcon15, TextInput as TextInput4, ScrollArea as ScrollArea5, Badge as Badge14, Box as Box34 } from "@mantine/core";
14185
+ import { Popover as Popover5, Text as Text83, Stack as Stack107, Group as Group45, ActionIcon as ActionIcon15, TextInput as TextInput4, ScrollArea as ScrollArea5, Badge as Badge15, Box as Box34 } from "@mantine/core";
14146
14186
  import { IconSearch as IconSearch4, IconX as IconX8, IconChevronRight as IconChevronRight4, IconArrowLeft as IconArrowLeft4, IconBolt as IconBolt4 } from "@tabler/icons-react";
14147
14187
  function buildPropertyTree(properties) {
14148
14188
  const root = [];
@@ -14327,7 +14367,7 @@ function BlockPropSelector({ children, opened, onClose, onSelect, editorDocument
14327
14367
  e.currentTarget.style.borderColor = BORDER_COLOR;
14328
14368
  }
14329
14369
  },
14330
- /* @__PURE__ */ React143.createElement(Group45, { gap: "xs", justify: "space-between" }, /* @__PURE__ */ React143.createElement(Group45, { gap: 8 }, /* @__PURE__ */ React143.createElement(IconBolt4, { size: 14, color: `var(--mantine-color-${getBlockTypeColor(block.type)}-5)` }), /* @__PURE__ */ React143.createElement(Text83, { fw: 500, size: "sm", c: TEXT_PRIMARY }, block.displayName), /* @__PURE__ */ React143.createElement(Badge14, { size: "xs", variant: "light", color: getBlockTypeColor(block.type), style: { textTransform: "none" } }, block.type)), /* @__PURE__ */ React143.createElement(IconChevronRight4, { size: 14, color: TEXT_DIMMED }))
14370
+ /* @__PURE__ */ React143.createElement(Group45, { gap: "xs", justify: "space-between" }, /* @__PURE__ */ React143.createElement(Group45, { gap: 8 }, /* @__PURE__ */ React143.createElement(IconBolt4, { size: 14, color: `var(--mantine-color-${getBlockTypeColor(block.type)}-5)` }), /* @__PURE__ */ React143.createElement(Text83, { fw: 500, size: "sm", c: TEXT_PRIMARY }, block.displayName), /* @__PURE__ */ React143.createElement(Badge15, { size: "xs", variant: "light", color: getBlockTypeColor(block.type), style: { textTransform: "none" } }, block.type)), /* @__PURE__ */ React143.createElement(IconChevronRight4, { size: 14, color: TEXT_DIMMED }))
14331
14371
  ))) : currentNodes.length === 0 ? /* @__PURE__ */ React143.createElement(Text83, { c: TEXT_DIMMED, ta: "center", py: "xl", size: "sm" }, "No properties available") : /* @__PURE__ */ React143.createElement(Stack107, { gap: 2 }, currentNodes.map((node, index) => /* @__PURE__ */ React143.createElement(
14332
14372
  Box34,
14333
14373
  {
@@ -14343,7 +14383,7 @@ function BlockPropSelector({ children, opened, onClose, onSelect, editorDocument
14343
14383
  onMouseEnter: (e) => e.currentTarget.style.backgroundColor = ITEM_HOVER_BG,
14344
14384
  onMouseLeave: (e) => e.currentTarget.style.backgroundColor = "transparent"
14345
14385
  },
14346
- /* @__PURE__ */ React143.createElement(Group45, { gap: "xs", justify: "space-between" }, /* @__PURE__ */ React143.createElement(Group45, { gap: 8 }, /* @__PURE__ */ React143.createElement(Text83, { size: "sm", c: node.isLeaf ? TEXT_PRIMARY : TEXT_DIMMED }, node.displayName), /* @__PURE__ */ React143.createElement(Badge14, { size: "xs", variant: "outline", color: "gray", style: { borderColor: BORDER_COLOR, color: TEXT_DIMMED, textTransform: "none" } }, node.type)), !node.isLeaf && /* @__PURE__ */ React143.createElement(IconChevronRight4, { size: 14, color: TEXT_DIMMED }))
14386
+ /* @__PURE__ */ React143.createElement(Group45, { gap: "xs", justify: "space-between" }, /* @__PURE__ */ React143.createElement(Group45, { gap: 8 }, /* @__PURE__ */ React143.createElement(Text83, { size: "sm", c: node.isLeaf ? TEXT_PRIMARY : TEXT_DIMMED }, node.displayName), /* @__PURE__ */ React143.createElement(Badge15, { size: "xs", variant: "outline", color: "gray", style: { borderColor: BORDER_COLOR, color: TEXT_DIMMED, textTransform: "none" } }, node.type)), !node.isLeaf && /* @__PURE__ */ React143.createElement(IconChevronRight4, { size: 14, color: TEXT_DIMMED }))
14347
14387
  )))))
14348
14388
  ));
14349
14389
  }
@@ -14949,7 +14989,7 @@ var TemplateConfig5 = ({ editor, block }) => {
14949
14989
  };
14950
14990
 
14951
14991
  // src/mantine/blocks/apiRequest/template/TemplateView.tsx
14952
- import { Group as Group49, Stack as Stack111, Text as Text87, Badge as Badge15 } from "@mantine/core";
14992
+ import { Group as Group49, Stack as Stack111, Text as Text87, Badge as Badge16 } from "@mantine/core";
14953
14993
  import { IconUser as IconUser8 } from "@tabler/icons-react";
14954
14994
  var API_REQUEST_TEMPLATE_PANEL_ID = "api-request-template-panel";
14955
14995
  var API_REQUEST_ASSIGNMENT_PANEL_ID = "api-request-template-assignment-panel";
@@ -14996,12 +15036,12 @@ var ApiRequestTemplateView = ({ editor, block }) => {
14996
15036
  return "gray";
14997
15037
  }
14998
15038
  };
14999
- return /* @__PURE__ */ React149.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React149.createElement(Group49, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React149.createElement(Group49, { wrap: "nowrap", align: "center" }, getIcon("square-check", block.props.icon), /* @__PURE__ */ React149.createElement(Stack111, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React149.createElement(Group49, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React149.createElement(Badge15, { size: "sm", variant: "filled", color: getMethodColor3(method) }, method), /* @__PURE__ */ React149.createElement(Text87, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "API Request")), /* @__PURE__ */ React149.createElement(Text87, { size: "xs", c: "dimmed", contentEditable: false, lineClamp: 1 }, endpoint), block.props.description && /* @__PURE__ */ React149.createElement(Text87, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description))), /* @__PURE__ */ React149.createElement(CommitmentDisplay, { block, onClick: openCommitment }), /* @__PURE__ */ React149.createElement(AssignmentDisplay, { onClick: openAssignment, block })));
15039
+ return /* @__PURE__ */ React149.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React149.createElement(Group49, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React149.createElement(Group49, { wrap: "nowrap", align: "center" }, getIcon("square-check", block.props.icon), /* @__PURE__ */ React149.createElement(Stack111, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React149.createElement(Group49, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React149.createElement(Badge16, { size: "sm", variant: "filled", color: getMethodColor3(method) }, method), /* @__PURE__ */ React149.createElement(Text87, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "API Request")), /* @__PURE__ */ React149.createElement(Text87, { size: "xs", c: "dimmed", contentEditable: false, lineClamp: 1 }, endpoint), block.props.description && /* @__PURE__ */ React149.createElement(Text87, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description))), /* @__PURE__ */ React149.createElement(CommitmentDisplay, { block, onClick: openCommitment }), /* @__PURE__ */ React149.createElement(AssignmentDisplay, { onClick: openAssignment, block })));
15000
15040
  };
15001
15041
 
15002
15042
  // src/mantine/blocks/apiRequest/flow/FlowView.tsx
15003
15043
  import React150, { useMemo as useMemo49, useState as useState59 } from "react";
15004
- import { Group as Group50, Stack as Stack112, Text as Text88, Button as Button29, Badge as Badge16, Code as Code2, Loader as Loader20, Alert as Alert21, Divider as Divider12 } from "@mantine/core";
15044
+ import { Group as Group50, Stack as Stack112, Text as Text88, Button as Button29, Badge as Badge17, Code as Code2, Loader as Loader20, Alert as Alert21, Divider as Divider12 } from "@mantine/core";
15005
15045
  import { IconSend as IconSend2, IconAlertTriangle as IconAlertTriangle2, IconUser as IconUser9, IconApi } from "@tabler/icons-react";
15006
15046
  var getMethodColor2 = (method) => {
15007
15047
  switch (method) {
@@ -15080,7 +15120,7 @@ var ApiRequestFlowView = ({ editor, block, isDisabled }) => {
15080
15120
  [editor, block, closePanel]
15081
15121
  );
15082
15122
  const { open: openCommitment } = usePanel(commitmentPanelId, commitmentPanelContent);
15083
- return /* @__PURE__ */ React150.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React150.createElement(Group50, { wrap: "nowrap", gap: 24, align: "center", style: { width: "100%" } }, /* @__PURE__ */ React150.createElement(Group50, { wrap: "nowrap", gap: 16, align: "center", style: { flex: 1, minWidth: 0 } }, getIcon("square-check", block.props.icon), /* @__PURE__ */ React150.createElement(Stack112, { gap: 0, style: { flex: 1, minWidth: 0, overflow: "hidden" } }, /* @__PURE__ */ React150.createElement(Group50, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React150.createElement(Badge16, { size: "sm", variant: "filled", color: getMethodColor2(method) }, method), /* @__PURE__ */ React150.createElement(Text88, { fw: 500, size: "sm", c: "white", truncate: true, contentEditable: false }, block.props.title || "API Request")), /* @__PURE__ */ React150.createElement(Text88, { size: "xs", c: "dimmed", truncate: true, contentEditable: false, style: { wordBreak: "break-all" } }, endpoint || "No endpoint configured"))), /* @__PURE__ */ React150.createElement(Stack112, { gap: 2, align: "flex-end", style: { flexShrink: 0, minWidth: 100 } }, /* @__PURE__ */ React150.createElement(Badge16, { size: "sm", variant: "light", color: getStatusColor2(status) }, getStatusLabel2(status)), /* @__PURE__ */ React150.createElement(Group50, { gap: 4, justify: "flex-end" }, /* @__PURE__ */ React150.createElement(CommitmentDisplay, { block, onClick: openCommitment }), /* @__PURE__ */ React150.createElement(AssignmentDisplay, { block, onClick: open })))));
15123
+ return /* @__PURE__ */ React150.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React150.createElement(Group50, { wrap: "nowrap", gap: 24, align: "center", style: { width: "100%" } }, /* @__PURE__ */ React150.createElement(Group50, { wrap: "nowrap", gap: 16, align: "center", style: { flex: 1, minWidth: 0 } }, getIcon("square-check", block.props.icon), /* @__PURE__ */ React150.createElement(Stack112, { gap: 0, style: { flex: 1, minWidth: 0, overflow: "hidden" } }, /* @__PURE__ */ React150.createElement(Group50, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React150.createElement(Badge17, { size: "sm", variant: "filled", color: getMethodColor2(method) }, method), /* @__PURE__ */ React150.createElement(Text88, { fw: 500, size: "sm", c: "white", truncate: true, contentEditable: false }, block.props.title || "API Request")), /* @__PURE__ */ React150.createElement(Text88, { size: "xs", c: "dimmed", truncate: true, contentEditable: false, style: { wordBreak: "break-all" } }, endpoint || "No endpoint configured"))), /* @__PURE__ */ React150.createElement(Stack112, { gap: 2, align: "flex-end", style: { flexShrink: 0, minWidth: 100 } }, /* @__PURE__ */ React150.createElement(Badge17, { size: "sm", variant: "light", color: getStatusColor2(status) }, getStatusLabel2(status)), /* @__PURE__ */ React150.createElement(Group50, { gap: 4, justify: "flex-end" }, /* @__PURE__ */ React150.createElement(CommitmentDisplay, { block, onClick: openCommitment }), /* @__PURE__ */ React150.createElement(AssignmentDisplay, { block, onClick: open })))));
15084
15124
  };
15085
15125
  function ApiRequestPanelContent({ editor, block, isDisabled, disabledMessage }) {
15086
15126
  const [isLoading, setIsLoading] = useState59(false);
@@ -15615,7 +15655,7 @@ var TemplateConfig6 = ({ editor, block }) => {
15615
15655
  };
15616
15656
 
15617
15657
  // src/mantine/blocks/notify/template/TemplateView.tsx
15618
- import { Group as Group52, Stack as Stack114, Text as Text90, Badge as Badge17 } from "@mantine/core";
15658
+ import { Group as Group52, Stack as Stack114, Text as Text90, Badge as Badge18 } from "@mantine/core";
15619
15659
  var NOTIFY_TEMPLATE_PANEL_ID = "notify-template-panel";
15620
15660
  var NotifyTemplateView = ({ editor, block }) => {
15621
15661
  const panelId = `${NOTIFY_TEMPLATE_PANEL_ID}-${block.id}`;
@@ -15644,12 +15684,12 @@ var NotifyTemplateView = ({ editor, block }) => {
15644
15684
  return "gray";
15645
15685
  }
15646
15686
  };
15647
- return /* @__PURE__ */ React155.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React155.createElement(Group52, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React155.createElement(Group52, { wrap: "nowrap", align: "center" }, getIcon("bell", block.props.icon), /* @__PURE__ */ React155.createElement(Stack114, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React155.createElement(Group52, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React155.createElement(Badge17, { size: "sm", variant: "filled", color: getChannelColor(channel) }, channel.toUpperCase()), /* @__PURE__ */ React155.createElement(Text90, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Notification")), /* @__PURE__ */ React155.createElement(Text90, { size: "xs", c: "dimmed", contentEditable: false, lineClamp: 1 }, to.length > 0 ? `To: ${to.join(", ")}` : "Click to configure recipients"), block.props.description && /* @__PURE__ */ React155.createElement(Text90, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description)))));
15687
+ return /* @__PURE__ */ React155.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React155.createElement(Group52, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React155.createElement(Group52, { wrap: "nowrap", align: "center" }, getIcon("bell", block.props.icon), /* @__PURE__ */ React155.createElement(Stack114, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React155.createElement(Group52, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React155.createElement(Badge18, { size: "sm", variant: "filled", color: getChannelColor(channel) }, channel.toUpperCase()), /* @__PURE__ */ React155.createElement(Text90, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Notification")), /* @__PURE__ */ React155.createElement(Text90, { size: "xs", c: "dimmed", contentEditable: false, lineClamp: 1 }, to.length > 0 ? `To: ${to.join(", ")}` : "Click to configure recipients"), block.props.description && /* @__PURE__ */ React155.createElement(Text90, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description)))));
15648
15688
  };
15649
15689
 
15650
15690
  // src/mantine/blocks/notify/flow/FlowView.tsx
15651
15691
  import React156, { useState as useState61 } from "react";
15652
- import { Group as Group53, Stack as Stack115, Text as Text91, ActionIcon as ActionIcon20, Tooltip as Tooltip9, Button as Button30, Badge as Badge18, Collapse as Collapse5, Alert as Alert22, Loader as Loader21, Code as Code3 } from "@mantine/core";
15692
+ import { Group as Group53, Stack as Stack115, Text as Text91, ActionIcon as ActionIcon20, Tooltip as Tooltip9, Button as Button30, Badge as Badge19, Collapse as Collapse5, Alert as Alert22, Loader as Loader21, Code as Code3 } from "@mantine/core";
15653
15693
  import { IconSend as IconSend3, IconChevronDown as IconChevronDown5, IconChevronUp as IconChevronUp2, IconCheck as IconCheck6, IconX as IconX10 } from "@tabler/icons-react";
15654
15694
  var NotifyFlowView = ({ editor, block, isDisabled }) => {
15655
15695
  const disabled = isDisabled?.isDisabled === "disable";
@@ -15777,7 +15817,7 @@ var NotifyFlowView = ({ editor, block, isDisabled }) => {
15777
15817
  },
15778
15818
  isLoading ? "Sending..." : status === "sent" ? "Sent" : "Send"
15779
15819
  );
15780
- return /* @__PURE__ */ React156.createElement(BaseContainer, { blockId: block.id }, /* @__PURE__ */ React156.createElement(Stack115, { gap: "md" }, /* @__PURE__ */ React156.createElement(Group53, { wrap: "nowrap", justify: "space-between", align: "flex-start" }, /* @__PURE__ */ React156.createElement(Group53, { wrap: "nowrap", align: "flex-start", style: { flex: 1 } }, getIcon("bell", block.props.icon), /* @__PURE__ */ React156.createElement(Stack115, { gap: "xs", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React156.createElement(Group53, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React156.createElement(Badge18, { size: "sm", variant: "filled", color: getChannelColor(channel) }, channel.toUpperCase()), /* @__PURE__ */ React156.createElement(Text91, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Notification"), status !== "idle" && /* @__PURE__ */ React156.createElement(Badge18, { size: "xs", variant: "dot", color: getStatusColor5(status) }, status)), /* @__PURE__ */ React156.createElement(Text91, { 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__ */ React156.createElement(Text91, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description))), /* @__PURE__ */ React156.createElement(Group53, { gap: "xs", style: { flexShrink: 0 } }, disabled && isDisabled?.message ? /* @__PURE__ */ React156.createElement(Tooltip9, { label: isDisabled.message, position: "left", withArrow: true }, sendButton) : sendButton, /* @__PURE__ */ React156.createElement(ActionIcon20, { variant: "subtle", onClick: () => setShowDetails(!showDetails) }, showDetails ? /* @__PURE__ */ React156.createElement(IconChevronUp2, { size: 16 }) : /* @__PURE__ */ React156.createElement(IconChevronDown5, { size: 16 })))), status === "failed" && runtime.error?.message && /* @__PURE__ */ React156.createElement(Alert22, { color: "red", icon: /* @__PURE__ */ React156.createElement(IconX10, { size: 16 }), title: "Failed to send", styles: { message: { fontSize: "12px" } } }, runtime.error.message), status === "sent" && runtime.output?.notify?.messageId && /* @__PURE__ */ React156.createElement(Alert22, { color: "green", icon: /* @__PURE__ */ React156.createElement(IconCheck6, { size: 16 }), title: "Sent successfully", styles: { message: { fontSize: "12px" } } }, "Message ID: ", runtime.output.notify.messageId, runtime.output.notify.sentAt && /* @__PURE__ */ React156.createElement(React156.Fragment, null, /* @__PURE__ */ React156.createElement("br", null), "Sent at: ", new Date(runtime.output.notify.sentAt).toLocaleString())), /* @__PURE__ */ React156.createElement(Collapse5, { in: showDetails }, /* @__PURE__ */ React156.createElement(Stack115, { gap: "md" }, channel === "email" && /* @__PURE__ */ React156.createElement(React156.Fragment, null, /* @__PURE__ */ React156.createElement(Stack115, { gap: "xs" }, /* @__PURE__ */ React156.createElement(Text91, { size: "xs", fw: 600, c: "dimmed" }, "Recipients:"), /* @__PURE__ */ React156.createElement(Code3, { block: true, style: { fontSize: "11px" } }, JSON.stringify(
15820
+ return /* @__PURE__ */ React156.createElement(BaseContainer, { blockId: block.id }, /* @__PURE__ */ React156.createElement(Stack115, { gap: "md" }, /* @__PURE__ */ React156.createElement(Group53, { wrap: "nowrap", justify: "space-between", align: "flex-start" }, /* @__PURE__ */ React156.createElement(Group53, { wrap: "nowrap", align: "flex-start", style: { flex: 1 } }, getIcon("bell", block.props.icon), /* @__PURE__ */ React156.createElement(Stack115, { gap: "xs", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React156.createElement(Group53, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React156.createElement(Badge19, { size: "sm", variant: "filled", color: getChannelColor(channel) }, channel.toUpperCase()), /* @__PURE__ */ React156.createElement(Text91, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Notification"), status !== "idle" && /* @__PURE__ */ React156.createElement(Badge19, { size: "xs", variant: "dot", color: getStatusColor5(status) }, status)), /* @__PURE__ */ React156.createElement(Text91, { 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__ */ React156.createElement(Text91, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description))), /* @__PURE__ */ React156.createElement(Group53, { gap: "xs", style: { flexShrink: 0 } }, disabled && isDisabled?.message ? /* @__PURE__ */ React156.createElement(Tooltip9, { label: isDisabled.message, position: "left", withArrow: true }, sendButton) : sendButton, /* @__PURE__ */ React156.createElement(ActionIcon20, { variant: "subtle", onClick: () => setShowDetails(!showDetails) }, showDetails ? /* @__PURE__ */ React156.createElement(IconChevronUp2, { size: 16 }) : /* @__PURE__ */ React156.createElement(IconChevronDown5, { size: 16 })))), status === "failed" && runtime.error?.message && /* @__PURE__ */ React156.createElement(Alert22, { color: "red", icon: /* @__PURE__ */ React156.createElement(IconX10, { size: 16 }), title: "Failed to send", styles: { message: { fontSize: "12px" } } }, runtime.error.message), status === "sent" && runtime.output?.notify?.messageId && /* @__PURE__ */ React156.createElement(Alert22, { color: "green", icon: /* @__PURE__ */ React156.createElement(IconCheck6, { size: 16 }), title: "Sent successfully", styles: { message: { fontSize: "12px" } } }, "Message ID: ", runtime.output.notify.messageId, runtime.output.notify.sentAt && /* @__PURE__ */ React156.createElement(React156.Fragment, null, /* @__PURE__ */ React156.createElement("br", null), "Sent at: ", new Date(runtime.output.notify.sentAt).toLocaleString())), /* @__PURE__ */ React156.createElement(Collapse5, { in: showDetails }, /* @__PURE__ */ React156.createElement(Stack115, { gap: "md" }, channel === "email" && /* @__PURE__ */ React156.createElement(React156.Fragment, null, /* @__PURE__ */ React156.createElement(Stack115, { gap: "xs" }, /* @__PURE__ */ React156.createElement(Text91, { size: "xs", fw: 600, c: "dimmed" }, "Recipients:"), /* @__PURE__ */ React156.createElement(Code3, { block: true, style: { fontSize: "11px" } }, JSON.stringify(
15781
15821
  {
15782
15822
  to: to.filter((e) => e.trim() !== ""),
15783
15823
  ...cc.length > 0 && { cc: cc.filter((e) => e.trim() !== "") },
@@ -16300,7 +16340,7 @@ import { createReactBlockSpec as createReactBlockSpec11 } from "@blocknote/react
16300
16340
 
16301
16341
  // src/mantine/blocks/dynamicList/DynamicListBlock.tsx
16302
16342
  import React168, { useMemo as useMemo56, useState as useState65, useCallback as useCallback45, useEffect as useEffect52, useRef as useRef15 } from "react";
16303
- import { Box as Box37, Stack as Stack120, Text as Text96, Paper as Paper14, Group as Group57, Button as Button31, ActionIcon as ActionIcon21, Tooltip as Tooltip10, Code as Code5, Flex as Flex30, Collapse as Collapse7, Title as Title7, Badge as Badge19, TextInput as TextInput6, CloseButton as CloseButton3, Select as Select4, Menu as Menu2 } from "@mantine/core";
16343
+ import { Box as Box37, Stack as Stack120, Text as Text96, Paper as Paper14, Group as Group57, Button as Button31, ActionIcon as ActionIcon21, Tooltip as Tooltip10, Code as Code5, Flex as Flex30, Collapse as Collapse7, Title as Title7, Badge as Badge20, TextInput as TextInput6, CloseButton as CloseButton3, Select as Select4, Menu as Menu2 } from "@mantine/core";
16304
16344
  import { useDisclosure as useDisclosure6 } from "@mantine/hooks";
16305
16345
  import {
16306
16346
  IconCamera,
@@ -16923,7 +16963,7 @@ function DynamicListBlock({ block, editor }) {
16923
16963
  const rowId = getRowId(row, index);
16924
16964
  const isChecked = isItemChecked(rowId);
16925
16965
  return /* @__PURE__ */ React168.createElement(ListItemContainer, { key: rowId, isChecked, onClick: () => onItemCheck(rowId, !isChecked) }, /* @__PURE__ */ React168.createElement(Flex30, { align: "center", gap: "sm" }, /* @__PURE__ */ React168.createElement(Stack120, { gap: 2 }, renderField(row, columnsByPosition.topLeft), columnsByPosition.bottomLeft && /* @__PURE__ */ React168.createElement(Text96, { size: "xs", c: columnsByPosition.bottomLeft.color || "dimmed", lineClamp: 1 }, formatValue2(row[columnsByPosition.bottomLeft.key], columnsByPosition.bottomLeft.type) || ""))), /* @__PURE__ */ React168.createElement(Flex30, { align: "center", gap: "md" }, /* @__PURE__ */ React168.createElement(Stack120, { gap: 2, align: "flex-end" }, columnsByPosition.topRight && /* @__PURE__ */ React168.createElement(Text96, { size: "sm", fw: 500, c: columnsByPosition.topRight.color || void 0 }, formatValue2(row[columnsByPosition.topRight.key], columnsByPosition.topRight.type) || ""), columnsByPosition.bottomRight && /* @__PURE__ */ React168.createElement(Text96, { size: "xs", c: columnsByPosition.bottomRight.color || "dimmed", tt: "capitalize" }, formatValue2(row[columnsByPosition.bottomRight.key], columnsByPosition.bottomRight.type) || "")), isMultiSelect && /* @__PURE__ */ React168.createElement(ListItemCheckbox, { ariaLabel: `Select ${rowId}`, checked: isChecked, onCheck: (checked) => onItemCheck(rowId, checked) })));
16926
- })), hasData && totalPages > 1 && /* @__PURE__ */ React168.createElement(ListPagination, { page, setPage, totalPages }), !hasData && !liveData.loading && searchQuery && rawData && rawData.length > 0 && /* @__PURE__ */ React168.createElement(Text96, { c: "dimmed", ta: "center", fz: "sm" }, "No matching items for \u201C", searchQuery, "\u201D"), !hasData && !liveData.loading && !searchQuery && parsedDataSource && /* @__PURE__ */ React168.createElement(Paper14, { p: "lg", bg: "var(--mantine-color-dark-6)", radius: "sm" }, /* @__PURE__ */ React168.createElement(Stack120, { gap: "sm" }, /* @__PURE__ */ React168.createElement(Group57, { gap: "xs" }, /* @__PURE__ */ React168.createElement(IconSparkles3, { size: 16, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React168.createElement(Text96, { fz: "sm", fw: 500 }, "Data Source")), parsedDataSource.oracleName && /* @__PURE__ */ React168.createElement(Group57, { gap: "xs" }, /* @__PURE__ */ React168.createElement(Text96, { size: "xs", c: "dimmed" }, "Oracle:"), /* @__PURE__ */ React168.createElement(Badge19, { size: "sm", variant: "light" }, parsedDataSource.oracleName)), parsedDataSource.query && /* @__PURE__ */ React168.createElement(Box37, null, /* @__PURE__ */ React168.createElement(Text96, { size: "xs", c: "dimmed", mb: 4 }, "Query:"), /* @__PURE__ */ React168.createElement(Code5, { block: true, style: { fontSize: "12px", whiteSpace: "pre-wrap" } }, parsedDataSource.query)), parsedDataSource.description && /* @__PURE__ */ React168.createElement(Text96, { size: "xs", c: "dimmed", fs: "italic" }, parsedDataSource.description), /* @__PURE__ */ React168.createElement(Text96, { size: "xs", c: "dimmed", ta: "center", mt: "xs" }, "Ask your oracle this query to populate the list."))), !hasData && !liveData.loading && !searchQuery && !parsedDataSource && /* @__PURE__ */ React168.createElement(Paper14, { p: "lg", bg: "var(--mantine-color-dark-6)", radius: "sm" }, /* @__PURE__ */ React168.createElement(Text96, { c: "dimmed", ta: "center", fz: "sm" }, "No data available. Add data from the AG-UI Canvas.")))));
16966
+ })), hasData && totalPages > 1 && /* @__PURE__ */ React168.createElement(ListPagination, { page, setPage, totalPages }), !hasData && !liveData.loading && searchQuery && rawData && rawData.length > 0 && /* @__PURE__ */ React168.createElement(Text96, { c: "dimmed", ta: "center", fz: "sm" }, "No matching items for \u201C", searchQuery, "\u201D"), !hasData && !liveData.loading && !searchQuery && parsedDataSource && /* @__PURE__ */ React168.createElement(Paper14, { p: "lg", bg: "var(--mantine-color-dark-6)", radius: "sm" }, /* @__PURE__ */ React168.createElement(Stack120, { gap: "sm" }, /* @__PURE__ */ React168.createElement(Group57, { gap: "xs" }, /* @__PURE__ */ React168.createElement(IconSparkles3, { size: 16, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React168.createElement(Text96, { fz: "sm", fw: 500 }, "Data Source")), parsedDataSource.oracleName && /* @__PURE__ */ React168.createElement(Group57, { gap: "xs" }, /* @__PURE__ */ React168.createElement(Text96, { size: "xs", c: "dimmed" }, "Oracle:"), /* @__PURE__ */ React168.createElement(Badge20, { size: "sm", variant: "light" }, parsedDataSource.oracleName)), parsedDataSource.query && /* @__PURE__ */ React168.createElement(Box37, null, /* @__PURE__ */ React168.createElement(Text96, { size: "xs", c: "dimmed", mb: 4 }, "Query:"), /* @__PURE__ */ React168.createElement(Code5, { block: true, style: { fontSize: "12px", whiteSpace: "pre-wrap" } }, parsedDataSource.query)), parsedDataSource.description && /* @__PURE__ */ React168.createElement(Text96, { size: "xs", c: "dimmed", fs: "italic" }, parsedDataSource.description), /* @__PURE__ */ React168.createElement(Text96, { size: "xs", c: "dimmed", ta: "center", mt: "xs" }, "Ask your oracle this query to populate the list."))), !hasData && !liveData.loading && !searchQuery && !parsedDataSource && /* @__PURE__ */ React168.createElement(Paper14, { p: "lg", bg: "var(--mantine-color-dark-6)", radius: "sm" }, /* @__PURE__ */ React168.createElement(Text96, { c: "dimmed", ta: "center", fz: "sm" }, "No data available. Add data from the AG-UI Canvas.")))));
16927
16967
  }
16928
16968
 
16929
16969
  // src/mantine/blocks/dynamicList/DynamicListBlockSpec.tsx
@@ -16976,7 +17016,7 @@ import React175 from "react";
16976
17016
 
16977
17017
  // src/mantine/blocks/domainCreator/template/TemplateView.tsx
16978
17018
  import React172, { useMemo as useMemo57 } from "react";
16979
- import { Badge as Badge20, Group as Group58, Stack as Stack121, Text as Text97 } from "@mantine/core";
17019
+ import { Badge as Badge21, Group as Group58, Stack as Stack121, Text as Text97 } from "@mantine/core";
16980
17020
 
16981
17021
  // src/mantine/blocks/domainCreator/template/TemplateConfig.tsx
16982
17022
  import React171, { useCallback as useCallback46 } from "react";
@@ -17065,12 +17105,12 @@ var DomainCreatorTemplateView = ({ editor, block }) => {
17065
17105
  const panelId = `${DOMAIN_CREATOR_TEMPLATE_PANEL_ID}-${block.id}`;
17066
17106
  const panelContent = useMemo57(() => /* @__PURE__ */ React172.createElement(TemplateConfig8, { editor, block }), [editor, block]);
17067
17107
  const { open } = usePanel(panelId, panelContent);
17068
- return /* @__PURE__ */ React172.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React172.createElement(Badge20, { size: "xs", variant: "light", color: "gray", style: { position: "absolute", top: 8, right: 8 } }, "Template"), /* @__PURE__ */ React172.createElement(Group58, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React172.createElement(Group58, { wrap: "nowrap", align: "center" }, getIcon("file-text", block.props.icon), /* @__PURE__ */ React172.createElement(Stack121, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React172.createElement(Text97, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Domain Creator"), /* @__PURE__ */ React172.createElement(Text97, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description || "Configure the domain creation flow")))));
17108
+ return /* @__PURE__ */ React172.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React172.createElement(Badge21, { size: "xs", variant: "light", color: "gray", style: { position: "absolute", top: 8, right: 8 } }, "Template"), /* @__PURE__ */ React172.createElement(Group58, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React172.createElement(Group58, { wrap: "nowrap", align: "center" }, getIcon("file-text", block.props.icon), /* @__PURE__ */ React172.createElement(Stack121, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React172.createElement(Text97, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Domain Creator"), /* @__PURE__ */ React172.createElement(Text97, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description || "Configure the domain creation flow")))));
17069
17109
  };
17070
17110
 
17071
17111
  // src/mantine/blocks/domainCreator/flow/FlowView.tsx
17072
17112
  import React174, { useCallback as useCallback48, useMemo as useMemo59, useState as useState68 } from "react";
17073
- import { ActionIcon as ActionIcon22, Badge as Badge21, Group as Group60, Stack as Stack123, Text as Text99, Tooltip as Tooltip11 } from "@mantine/core";
17113
+ import { ActionIcon as ActionIcon22, Badge as Badge22, Group as Group60, Stack as Stack123, Text as Text99, Tooltip as Tooltip11 } from "@mantine/core";
17074
17114
  import { IconChevronRight as IconChevronRight7, IconCheck as IconCheck8, IconAlertCircle as IconAlertCircle12 } from "@tabler/icons-react";
17075
17115
 
17076
17116
  // src/mantine/blocks/domainCreator/flow/DomainCreatorSurveyPanel.tsx
@@ -18064,7 +18104,7 @@ var DomainCreatorFlowView = ({ editor, block }) => {
18064
18104
  return { variant: "light", color: "gray", text: "Click to start", icon: null };
18065
18105
  };
18066
18106
  const badgeProps = getBadgeProps();
18067
- return /* @__PURE__ */ React174.createElement(BaseContainer, { blockId: block.id, onClick: handleOpen }, /* @__PURE__ */ React174.createElement(Group60, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React174.createElement(Group60, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("file-text", block.props.icon), /* @__PURE__ */ React174.createElement(Stack123, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React174.createElement(Group60, { gap: "xs", align: "center" }, /* @__PURE__ */ React174.createElement(Text99, { fw: 600, size: "sm", contentEditable: false }, block.props.title || "Domain Creator"), /* @__PURE__ */ React174.createElement(Badge21, { size: "xs", variant: badgeProps.variant, color: badgeProps.color, leftSection: badgeProps.icon }, badgeProps.text)), /* @__PURE__ */ React174.createElement(Text99, { 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__ */ React174.createElement(Tooltip11, { label: hasExistingSubmission ? "View/Edit domain" : "Create domain", withArrow: true }, /* @__PURE__ */ React174.createElement(ActionIcon22, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React174.createElement(IconChevronRight7, { size: 18 })))));
18107
+ return /* @__PURE__ */ React174.createElement(BaseContainer, { blockId: block.id, onClick: handleOpen }, /* @__PURE__ */ React174.createElement(Group60, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React174.createElement(Group60, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("file-text", block.props.icon), /* @__PURE__ */ React174.createElement(Stack123, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React174.createElement(Group60, { gap: "xs", align: "center" }, /* @__PURE__ */ React174.createElement(Text99, { fw: 600, size: "sm", contentEditable: false }, block.props.title || "Domain Creator"), /* @__PURE__ */ React174.createElement(Badge22, { size: "xs", variant: badgeProps.variant, color: badgeProps.color, leftSection: badgeProps.icon }, badgeProps.text)), /* @__PURE__ */ React174.createElement(Text99, { 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__ */ React174.createElement(Tooltip11, { label: hasExistingSubmission ? "View/Edit domain" : "Create domain", withArrow: true }, /* @__PURE__ */ React174.createElement(ActionIcon22, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React174.createElement(IconChevronRight7, { size: 18 })))));
18068
18108
  };
18069
18109
 
18070
18110
  // src/mantine/blocks/domainCreator/DomainCreatorBlock.tsx
@@ -18110,7 +18150,7 @@ import React182 from "react";
18110
18150
 
18111
18151
  // src/mantine/blocks/email/template/TemplateView.tsx
18112
18152
  import React180, { useMemo as useMemo62 } from "react";
18113
- import { Badge as Badge23, Group as Group62, Stack as Stack126, Text as Text102 } from "@mantine/core";
18153
+ import { Badge as Badge24, Group as Group62, Stack as Stack126, Text as Text102 } from "@mantine/core";
18114
18154
 
18115
18155
  // src/mantine/blocks/email/template/TemplateConfig.tsx
18116
18156
  import React179, { useCallback as useCallback51, useMemo as useMemo61 } from "react";
@@ -18283,7 +18323,7 @@ var GeneralTab9 = ({ editor, blockId, getCurrentBlock, onTitleChange, onTemplate
18283
18323
 
18284
18324
  // src/mantine/blocks/email/template/VariablesTab.tsx
18285
18325
  import React178, { useMemo as useMemo60, useCallback as useCallback50, useState as useState70, useEffect as useEffect56 } from "react";
18286
- import { Alert as Alert25, Badge as Badge22, Divider as Divider16, Group as Group61, Stack as Stack125, Text as Text101 } from "@mantine/core";
18326
+ import { Alert as Alert25, Badge as Badge23, Divider as Divider16, Group as Group61, Stack as Stack125, Text as Text101 } from "@mantine/core";
18287
18327
  import { IconInfoCircle as IconInfoCircle4, IconCheck as IconCheck9 } from "@tabler/icons-react";
18288
18328
  var VariablesTab = ({ editor, blockId, getCurrentBlock, onVariablesChange }) => {
18289
18329
  const block = getCurrentBlock();
@@ -18327,7 +18367,7 @@ var VariablesTab = ({ editor, blockId, getCurrentBlock, onVariablesChange }) =>
18327
18367
  return /* @__PURE__ */ React178.createElement(Alert25, { color: "green", icon: /* @__PURE__ */ React178.createElement(IconCheck9, { size: 16 }) }, "This template has no handlebars variables to configure.");
18328
18368
  }
18329
18369
  const mappedCount = getMappedCount(parsedExtractedVariables, localMapping);
18330
- return /* @__PURE__ */ React178.createElement(Stack125, { gap: "md" }, /* @__PURE__ */ React178.createElement(Group61, { justify: "space-between" }, /* @__PURE__ */ React178.createElement(Text101, { size: "sm", c: "dimmed" }, "Map template variables to block data or static values"), /* @__PURE__ */ React178.createElement(Badge22, { color: mappedCount === parsedExtractedVariables.length ? "green" : "orange" }, mappedCount, "/", parsedExtractedVariables.length, " mapped")), /* @__PURE__ */ React178.createElement(Divider16, null), parsedExtractedVariables.map((variable) => /* @__PURE__ */ React178.createElement(
18370
+ return /* @__PURE__ */ React178.createElement(Stack125, { gap: "md" }, /* @__PURE__ */ React178.createElement(Group61, { justify: "space-between" }, /* @__PURE__ */ React178.createElement(Text101, { size: "sm", c: "dimmed" }, "Map template variables to block data or static values"), /* @__PURE__ */ React178.createElement(Badge23, { color: mappedCount === parsedExtractedVariables.length ? "green" : "orange" }, mappedCount, "/", parsedExtractedVariables.length, " mapped")), /* @__PURE__ */ React178.createElement(Divider16, null), parsedExtractedVariables.map((variable) => /* @__PURE__ */ React178.createElement(
18331
18371
  DataInput,
18332
18372
  {
18333
18373
  key: variable.name,
@@ -18437,12 +18477,12 @@ var EmailTemplateView = ({ editor, block }) => {
18437
18477
  }, [block.props.variables]);
18438
18478
  const mappedCount = getMappedCount(extractedVariables, variableMapping);
18439
18479
  const templateName = block.props.templateName;
18440
- return /* @__PURE__ */ React180.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React180.createElement(Group62, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React180.createElement(Group62, { wrap: "nowrap", align: "center" }, getIcon("mail", block.props.icon), /* @__PURE__ */ React180.createElement(Stack126, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React180.createElement(Text102, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Send Email"), templateName ? /* @__PURE__ */ React180.createElement(Text102, { size: "xs", c: "dimmed", contentEditable: false }, "Template: ", templateName) : /* @__PURE__ */ React180.createElement(Text102, { size: "xs", c: "orange", contentEditable: false }, "No template selected"))), /* @__PURE__ */ React180.createElement(Group62, { gap: "xs" }, extractedVariables.length > 0 && /* @__PURE__ */ React180.createElement(Badge23, { size: "sm", variant: "light", color: mappedCount === extractedVariables.length ? "green" : "orange" }, mappedCount, "/", extractedVariables.length, " vars"))));
18480
+ return /* @__PURE__ */ React180.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React180.createElement(Group62, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React180.createElement(Group62, { wrap: "nowrap", align: "center" }, getIcon("mail", block.props.icon), /* @__PURE__ */ React180.createElement(Stack126, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React180.createElement(Text102, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Send Email"), templateName ? /* @__PURE__ */ React180.createElement(Text102, { size: "xs", c: "dimmed", contentEditable: false }, "Template: ", templateName) : /* @__PURE__ */ React180.createElement(Text102, { size: "xs", c: "orange", contentEditable: false }, "No template selected"))), /* @__PURE__ */ React180.createElement(Group62, { gap: "xs" }, extractedVariables.length > 0 && /* @__PURE__ */ React180.createElement(Badge24, { size: "sm", variant: "light", color: mappedCount === extractedVariables.length ? "green" : "orange" }, mappedCount, "/", extractedVariables.length, " vars"))));
18441
18481
  };
18442
18482
 
18443
18483
  // src/mantine/blocks/email/flow/FlowView.tsx
18444
18484
  import React181, { useMemo as useMemo63 } from "react";
18445
- import { Group as Group63, Stack as Stack127, Text as Text103, ActionIcon as ActionIcon23, Tooltip as Tooltip12, Button as Button33, Badge as Badge24, Alert as Alert26, Loader as Loader25, Divider as Divider17 } from "@mantine/core";
18485
+ import { Group as Group63, Stack as Stack127, Text as Text103, ActionIcon as ActionIcon23, Tooltip as Tooltip12, Button as Button33, Badge as Badge25, Alert as Alert26, Loader as Loader25, Divider as Divider17 } from "@mantine/core";
18446
18486
  import { IconSend as IconSend4, IconCheck as IconCheck10, IconX as IconX12, IconMail as IconMail3, IconUser as IconUser11 } from "@tabler/icons-react";
18447
18487
 
18448
18488
  // src/mantine/blocks/email/flow/hooks/useEmailActions.ts
@@ -18596,7 +18636,7 @@ var EmailFlowView = ({ editor, block, isDisabled }) => {
18596
18636
  [editor, block, closePanel]
18597
18637
  );
18598
18638
  const { open: openAssignment } = usePanel(assignmentPanelId, assignmentPanelContent);
18599
- return /* @__PURE__ */ React181.createElement(BaseContainer, { blockId: block.id, onClick: openDetails }, /* @__PURE__ */ React181.createElement(Group63, { wrap: "nowrap", gap: 24, align: "center", style: { width: "100%" } }, /* @__PURE__ */ React181.createElement(Group63, { wrap: "nowrap", gap: 16, align: "center", style: { flex: 1, minWidth: 0 } }, getIcon("mail", block.props.icon), /* @__PURE__ */ React181.createElement(Stack127, { gap: 0, style: { flex: 1, minWidth: 0, overflow: "hidden" } }, /* @__PURE__ */ React181.createElement(Group63, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React181.createElement(Badge24, { size: "sm", variant: "filled", color: "blue" }, "EMAIL"), /* @__PURE__ */ React181.createElement(Text103, { fw: 500, size: "sm", c: "white", truncate: true, contentEditable: false }, block.props.title || "Send Email")), /* @__PURE__ */ React181.createElement(Text103, { size: "xs", c: "dimmed", truncate: true, contentEditable: false }, toDisplay ? `To: ${toDisplay}` : "No recipient configured"))), /* @__PURE__ */ React181.createElement(Stack127, { gap: 2, align: "flex-end", style: { flexShrink: 0, minWidth: 100 } }, /* @__PURE__ */ React181.createElement(Badge24, { size: "sm", variant: "light", color: getStatusColor3(status) }, getStatusLabel3(status)), /* @__PURE__ */ React181.createElement(Group63, { gap: 4, justify: "flex-end" }, /* @__PURE__ */ React181.createElement(AssignmentDisplay, { block, onClick: openAssignment })))));
18639
+ return /* @__PURE__ */ React181.createElement(BaseContainer, { blockId: block.id, onClick: openDetails }, /* @__PURE__ */ React181.createElement(Group63, { wrap: "nowrap", gap: 24, align: "center", style: { width: "100%" } }, /* @__PURE__ */ React181.createElement(Group63, { wrap: "nowrap", gap: 16, align: "center", style: { flex: 1, minWidth: 0 } }, getIcon("mail", block.props.icon), /* @__PURE__ */ React181.createElement(Stack127, { gap: 0, style: { flex: 1, minWidth: 0, overflow: "hidden" } }, /* @__PURE__ */ React181.createElement(Group63, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React181.createElement(Badge25, { size: "sm", variant: "filled", color: "blue" }, "EMAIL"), /* @__PURE__ */ React181.createElement(Text103, { fw: 500, size: "sm", c: "white", truncate: true, contentEditable: false }, block.props.title || "Send Email")), /* @__PURE__ */ React181.createElement(Text103, { size: "xs", c: "dimmed", truncate: true, contentEditable: false }, toDisplay ? `To: ${toDisplay}` : "No recipient configured"))), /* @__PURE__ */ React181.createElement(Stack127, { gap: 2, align: "flex-end", style: { flexShrink: 0, minWidth: 100 } }, /* @__PURE__ */ React181.createElement(Badge25, { size: "sm", variant: "light", color: getStatusColor3(status) }, getStatusLabel3(status)), /* @__PURE__ */ React181.createElement(Group63, { gap: 4, justify: "flex-end" }, /* @__PURE__ */ React181.createElement(AssignmentDisplay, { block, onClick: openAssignment })))));
18600
18640
  };
18601
18641
  function EmailPanelContent({ editor, block, isDisabled }) {
18602
18642
  const disabled = isDisabled?.isDisabled === "disable";
@@ -18855,7 +18895,7 @@ var ProtocolSelectorTemplateView = ({ editor, block }) => {
18855
18895
 
18856
18896
  // src/mantine/blocks/protocolSelector/flow/FlowView.tsx
18857
18897
  import React189, { useMemo as useMemo67 } from "react";
18858
- import { Badge as Badge25, Box as Box41, Group as Group66, Stack as Stack131, Text as Text107, Tooltip as Tooltip13 } from "@mantine/core";
18898
+ import { Badge as Badge26, Box as Box41, Group as Group66, Stack as Stack131, Text as Text107, Tooltip as Tooltip13 } from "@mantine/core";
18859
18899
  import { IconCircleDashed as IconCircleDashed3, IconChecks as IconChecks3 } from "@tabler/icons-react";
18860
18900
 
18861
18901
  // src/mantine/blocks/protocolSelector/flow/ProtocolSelectionPanel.tsx
@@ -19029,7 +19069,7 @@ var ProtocolSelectorFlowView = ({ editor, block, isDisabled }) => {
19029
19069
  }
19030
19070
  },
19031
19071
  /* @__PURE__ */ React189.createElement(IconCircleDashed3, { size: 26, color: "white" })
19032
- ), /* @__PURE__ */ React189.createElement(Stack131, { gap: 2, style: { flex: 1 } }, /* @__PURE__ */ React189.createElement(Text107, { fw: 500, size: "sm", lineClamp: 1, style: { opacity: disabled ? 0.5 : 1 } }, block.props.title || "Select Protocol"), isCompleted && block.props.selectedProtocolType ? /* @__PURE__ */ React189.createElement(Badge25, { size: "sm", styles: { root: { backgroundColor: "var(--mantine-primary-color-light)", color: "var(--mantine-primary-color-filled)" } } }, block.props.selectedProtocolType) : /* @__PURE__ */ React189.createElement(Text107, { size: "xs", c: "dimmed", style: { opacity: disabled ? 0.5 : 1 } }, "Selection"))), /* @__PURE__ */ React189.createElement(Stack131, { gap: 2, align: "flex-end" }, isCompleted ? /* @__PURE__ */ React189.createElement(React189.Fragment, null, /* @__PURE__ */ React189.createElement(Group66, { gap: 4 }, /* @__PURE__ */ React189.createElement(IconChecks3, { size: 16, color: "var(--mantine-color-green-4)" }), /* @__PURE__ */ React189.createElement(Text107, { size: "sm", c: "green.4", fw: 500 }, "Completed")), /* @__PURE__ */ React189.createElement(Text107, { size: "xs", c: "dimmed", lineClamp: 1 }, block.props.selectedProtocolName || block.props.selectedProtocolDid)) : /* @__PURE__ */ React189.createElement(React189.Fragment, null, /* @__PURE__ */ React189.createElement(Text107, { size: "sm" }, "Pending"), /* @__PURE__ */ React189.createElement(Text107, { size: "xs", c: "dimmed" }, "Complete now")))));
19072
+ ), /* @__PURE__ */ React189.createElement(Stack131, { gap: 2, style: { flex: 1 } }, /* @__PURE__ */ React189.createElement(Text107, { fw: 500, size: "sm", lineClamp: 1, style: { opacity: disabled ? 0.5 : 1 } }, block.props.title || "Select Protocol"), isCompleted && block.props.selectedProtocolType ? /* @__PURE__ */ React189.createElement(Badge26, { size: "sm", styles: { root: { backgroundColor: "var(--mantine-primary-color-light)", color: "var(--mantine-primary-color-filled)" } } }, block.props.selectedProtocolType) : /* @__PURE__ */ React189.createElement(Text107, { size: "xs", c: "dimmed", style: { opacity: disabled ? 0.5 : 1 } }, "Selection"))), /* @__PURE__ */ React189.createElement(Stack131, { gap: 2, align: "flex-end" }, isCompleted ? /* @__PURE__ */ React189.createElement(React189.Fragment, null, /* @__PURE__ */ React189.createElement(Group66, { gap: 4 }, /* @__PURE__ */ React189.createElement(IconChecks3, { size: 16, color: "var(--mantine-color-green-4)" }), /* @__PURE__ */ React189.createElement(Text107, { size: "sm", c: "green.4", fw: 500 }, "Completed")), /* @__PURE__ */ React189.createElement(Text107, { size: "xs", c: "dimmed", lineClamp: 1 }, block.props.selectedProtocolName || block.props.selectedProtocolDid)) : /* @__PURE__ */ React189.createElement(React189.Fragment, null, /* @__PURE__ */ React189.createElement(Text107, { size: "sm" }, "Pending"), /* @__PURE__ */ React189.createElement(Text107, { size: "xs", c: "dimmed" }, "Complete now")))));
19033
19073
  if (disabled && isDisabled?.message) {
19034
19074
  return /* @__PURE__ */ React189.createElement(Tooltip13, { label: isDisabled.message, position: "top", withArrow: true }, /* @__PURE__ */ React189.createElement(Box41, { style: { cursor: "not-allowed" } }, containerContent));
19035
19075
  }
@@ -19119,7 +19159,7 @@ import React197 from "react";
19119
19159
 
19120
19160
  // src/mantine/blocks/form/template/TemplateView.tsx
19121
19161
  import React194, { useMemo as useMemo68 } from "react";
19122
- import { Badge as Badge26, Group as Group67, Stack as Stack132, Text as Text109 } from "@mantine/core";
19162
+ import { Badge as Badge27, Group as Group67, Stack as Stack132, Text as Text109 } from "@mantine/core";
19123
19163
 
19124
19164
  // src/mantine/blocks/form/template/TemplateConfig.tsx
19125
19165
  import React193, { useCallback as useCallback55 } from "react";
@@ -19248,12 +19288,12 @@ var FormTemplateView = ({ editor, block }) => {
19248
19288
  const panelContent = useMemo68(() => /* @__PURE__ */ React194.createElement(TemplateConfig11, { editor, block }), [editor, block]);
19249
19289
  const { open } = usePanel(panelId, panelContent);
19250
19290
  const hasSchema = Boolean(block.props.surveySchema);
19251
- return /* @__PURE__ */ React194.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React194.createElement(Badge26, { size: "xs", variant: "light", color: "gray", style: { position: "absolute", top: 8, right: 8 } }, "Template"), /* @__PURE__ */ React194.createElement(Group67, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React194.createElement(Group67, { wrap: "nowrap", align: "center" }, getIcon("checklist", block.props.icon), /* @__PURE__ */ React194.createElement(Stack132, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React194.createElement(Text109, { fw: 500, size: "sm" }, block.props.title || "Form"), /* @__PURE__ */ React194.createElement(Text109, { size: "xs", c: "dimmed" }, hasSchema ? "Form configured" : "Click to configure form schema")))));
19291
+ return /* @__PURE__ */ React194.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React194.createElement(Badge27, { size: "xs", variant: "light", color: "gray", style: { position: "absolute", top: 8, right: 8 } }, "Template"), /* @__PURE__ */ React194.createElement(Group67, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React194.createElement(Group67, { wrap: "nowrap", align: "center" }, getIcon("checklist", block.props.icon), /* @__PURE__ */ React194.createElement(Stack132, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React194.createElement(Text109, { fw: 500, size: "sm" }, block.props.title || "Form"), /* @__PURE__ */ React194.createElement(Text109, { size: "xs", c: "dimmed" }, hasSchema ? "Form configured" : "Click to configure form schema")))));
19252
19292
  };
19253
19293
 
19254
19294
  // src/mantine/blocks/form/flow/FlowView.tsx
19255
19295
  import React196, { useMemo as useMemo70, useState as useState75, useCallback as useCallback57 } from "react";
19256
- import { ActionIcon as ActionIcon24, Badge as Badge27, Group as Group68, Stack as Stack133, Text as Text111, Tooltip as Tooltip14 } from "@mantine/core";
19296
+ import { ActionIcon as ActionIcon24, Badge as Badge28, Group as Group68, Stack as Stack133, Text as Text111, Tooltip as Tooltip14 } from "@mantine/core";
19257
19297
  import { IconChevronRight as IconChevronRight8 } from "@tabler/icons-react";
19258
19298
 
19259
19299
  // src/mantine/blocks/form/flow/FormPanel.tsx
@@ -19425,7 +19465,7 @@ var FormFlowView = ({ editor, block }) => {
19425
19465
  const hasSchema = Boolean(block.props.surveySchema);
19426
19466
  const completedAt = runtime.executedAt;
19427
19467
  return /* @__PURE__ */ React196.createElement(BaseContainer, { blockId: block.id, onClick: handleOpen }, /* @__PURE__ */ React196.createElement(Group68, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React196.createElement(Group68, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("checklist", block.props.icon), /* @__PURE__ */ React196.createElement(Stack133, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React196.createElement(Group68, { gap: "xs", align: "center" }, /* @__PURE__ */ React196.createElement(Text111, { fw: 600, size: "sm" }, block.props.title || "Form"), /* @__PURE__ */ React196.createElement(
19428
- Badge27,
19468
+ Badge28,
19429
19469
  {
19430
19470
  size: "xs",
19431
19471
  variant: badgeProps.variant,
@@ -19478,7 +19518,7 @@ import React205 from "react";
19478
19518
 
19479
19519
  // src/mantine/blocks/domainCreatorSign/template/TemplateView.tsx
19480
19520
  import React201, { useMemo as useMemo71 } from "react";
19481
- import { Badge as Badge28, Group as Group69, Stack as Stack134, Text as Text112 } from "@mantine/core";
19521
+ import { Badge as Badge29, Group as Group69, Stack as Stack134, Text as Text112 } from "@mantine/core";
19482
19522
 
19483
19523
  // src/mantine/blocks/domainCreatorSign/template/TemplateConfig.tsx
19484
19524
  import React200, { useCallback as useCallback58 } from "react";
@@ -19573,12 +19613,12 @@ var DomainCreatorSignTemplateView = ({ editor, block }) => {
19573
19613
  const panelId = `${DOMAIN_CREATOR_SIGN_TEMPLATE_PANEL_ID}-${block.id}`;
19574
19614
  const panelContent = useMemo71(() => /* @__PURE__ */ React201.createElement(TemplateConfig12, { editor, block }), [editor, block]);
19575
19615
  const { open } = usePanel(panelId, panelContent);
19576
- return /* @__PURE__ */ React201.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React201.createElement(Badge28, { size: "xs", variant: "light", color: "gray", style: { position: "absolute", top: 8, right: 8 } }, "Template"), /* @__PURE__ */ React201.createElement(Group69, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React201.createElement(Group69, { wrap: "nowrap", align: "center" }, getIcon("feather", block.props.icon), /* @__PURE__ */ React201.createElement(Stack134, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React201.createElement(Text112, { fw: 500, size: "sm" }, block.props.title || "Sign to Create"), /* @__PURE__ */ React201.createElement(Text112, { size: "xs", c: "dimmed" }, "Sign"))), /* @__PURE__ */ React201.createElement(Group69, { gap: 4, wrap: "nowrap", style: { flexShrink: 0 } }, /* @__PURE__ */ React201.createElement(CommitmentPanel, { block, editor }), /* @__PURE__ */ React201.createElement(AssignmentPanel, { block, editor }))));
19616
+ return /* @__PURE__ */ React201.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React201.createElement(Badge29, { size: "xs", variant: "light", color: "gray", style: { position: "absolute", top: 8, right: 8 } }, "Template"), /* @__PURE__ */ React201.createElement(Group69, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React201.createElement(Group69, { wrap: "nowrap", align: "center" }, getIcon("feather", block.props.icon), /* @__PURE__ */ React201.createElement(Stack134, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React201.createElement(Text112, { fw: 500, size: "sm" }, block.props.title || "Sign to Create"), /* @__PURE__ */ React201.createElement(Text112, { size: "xs", c: "dimmed" }, "Sign"))), /* @__PURE__ */ React201.createElement(Group69, { gap: 4, wrap: "nowrap", style: { flexShrink: 0 } }, /* @__PURE__ */ React201.createElement(CommitmentPanel, { block, editor }), /* @__PURE__ */ React201.createElement(AssignmentPanel, { block, editor }))));
19577
19617
  };
19578
19618
 
19579
19619
  // src/mantine/blocks/domainCreatorSign/flow/FlowView.tsx
19580
19620
  import React204, { useCallback as useCallback60, useMemo as useMemo72, useEffect as useEffect62 } from "react";
19581
- import { ActionIcon as ActionIcon25, Badge as Badge30, Group as Group72, Stack as Stack137, Text as Text115, Tooltip as Tooltip16 } from "@mantine/core";
19621
+ import { ActionIcon as ActionIcon25, Badge as Badge31, Group as Group72, Stack as Stack137, Text as Text115, Tooltip as Tooltip16 } from "@mantine/core";
19582
19622
  import { IconChevronRight as IconChevronRight9 } from "@tabler/icons-react";
19583
19623
 
19584
19624
  // src/mantine/blocks/domainCreatorSign/flow/SignPanel.tsx
@@ -19587,7 +19627,7 @@ import { IconAlertCircle as IconAlertCircle14, IconCheck as IconCheck11 } from "
19587
19627
  import React203, { useCallback as useCallback59, useState as useState78 } from "react";
19588
19628
 
19589
19629
  // src/mantine/components/Base/BaseSigning.tsx
19590
- import { Badge as Badge29, Box as Box42, Flex as Flex31, Group as Group70, Slider, Stack as Stack135, Tabs as Tabs3, Text as Text113, Tooltip as Tooltip15 } from "@mantine/core";
19630
+ import { Badge as Badge30, Box as Box42, Flex as Flex31, Group as Group70, Slider, Stack as Stack135, Tabs as Tabs3, Text as Text113, Tooltip as Tooltip15 } from "@mantine/core";
19591
19631
  import { IconClock as IconClock9, IconFeather as IconFeather2, IconUsers as IconUsers3, IconArrowsExchange as IconArrowsExchange2, IconCalendar as IconCalendar2, IconLeaf as IconLeaf2, IconBolt as IconBolt5 } from "@tabler/icons-react";
19592
19632
  import React202, { useState as useState77 } from "react";
19593
19633
  function BaseSigning({ handleSign }) {
@@ -19616,7 +19656,7 @@ function BaseSigning({ handleSign }) {
19616
19656
  bg: "neutralColor.4"
19617
19657
  },
19618
19658
  /* @__PURE__ */ React202.createElement(Flex31, { justify: "space-between" }, /* @__PURE__ */ React202.createElement(Flex31, { align: "center", gap: "sm" }, /* @__PURE__ */ React202.createElement(IconFeather2, { color: "white", strokeWidth: "1.2" }), /* @__PURE__ */ React202.createElement(Text113, { c: "white", fz: 14 }, "Sign")), /* @__PURE__ */ React202.createElement(
19619
- Badge29,
19659
+ Badge30,
19620
19660
  {
19621
19661
  bg: "var(--mantine-color-accent-7)",
19622
19662
  c: "var(--mantine-color-accent-2)",
@@ -19966,7 +20006,7 @@ var DomainCreatorSignFlowView = ({ editor, block }) => {
19966
20006
  return "Waiting for domain card data";
19967
20007
  }
19968
20008
  };
19969
- return /* @__PURE__ */ React204.createElement(BaseContainer, { blockId: block.id, onClick: isClickable ? handleOpen : void 0, style: { opacity: isClickable ? 1 : 0.7, cursor: isClickable ? "pointer" : "not-allowed" } }, /* @__PURE__ */ React204.createElement(Group72, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React204.createElement(Group72, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("feather", block.props.icon), /* @__PURE__ */ React204.createElement(Stack137, { 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 || "Sign to Create"), /* @__PURE__ */ React204.createElement(Badge30, { size: "xs", variant: "filled", color: badgeProps.color, styles: { root: { backgroundColor: `var(--mantine-color-${badgeProps.color}-6)`, color: "white" } } }, badgeProps.text)), /* @__PURE__ */ React204.createElement(Text115, { size: "xs", c: "dimmed", lineClamp: 2 }, getDescriptionText()))), /* @__PURE__ */ React204.createElement(Group72, null, /* @__PURE__ */ React204.createElement(CommitmentDisplay, { block, onClick: openCommitment }), /* @__PURE__ */ React204.createElement(AssignmentDisplay, { block, onClick: openAssignment }), isClickable && /* @__PURE__ */ React204.createElement(Tooltip16, { label: status === "completed" ? "View details" : "Sign & Create", withArrow: true }, /* @__PURE__ */ React204.createElement(ActionIcon25, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React204.createElement(IconChevronRight9, { size: 18 }))))));
20009
+ return /* @__PURE__ */ React204.createElement(BaseContainer, { blockId: block.id, onClick: isClickable ? handleOpen : void 0, style: { opacity: isClickable ? 1 : 0.7, cursor: isClickable ? "pointer" : "not-allowed" } }, /* @__PURE__ */ React204.createElement(Group72, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React204.createElement(Group72, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("feather", block.props.icon), /* @__PURE__ */ React204.createElement(Stack137, { 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 || "Sign to Create"), /* @__PURE__ */ React204.createElement(Badge31, { size: "xs", variant: "filled", color: badgeProps.color, styles: { root: { backgroundColor: `var(--mantine-color-${badgeProps.color}-6)`, color: "white" } } }, badgeProps.text)), /* @__PURE__ */ React204.createElement(Text115, { size: "xs", c: "dimmed", lineClamp: 2 }, getDescriptionText()))), /* @__PURE__ */ React204.createElement(Group72, null, /* @__PURE__ */ React204.createElement(CommitmentDisplay, { block, onClick: openCommitment }), /* @__PURE__ */ React204.createElement(AssignmentDisplay, { block, onClick: openAssignment }), isClickable && /* @__PURE__ */ React204.createElement(Tooltip16, { label: status === "completed" ? "View details" : "Sign & Create", withArrow: true }, /* @__PURE__ */ React204.createElement(ActionIcon25, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React204.createElement(IconChevronRight9, { size: 18 }))))));
19970
20010
  };
19971
20011
 
19972
20012
  // src/mantine/blocks/domainCreatorSign/DomainCreatorSignBlock.tsx
@@ -20038,7 +20078,7 @@ import React212 from "react";
20038
20078
 
20039
20079
  // src/mantine/blocks/domainCardViewer/template/TemplateView.tsx
20040
20080
  import React209, { useMemo as useMemo73 } from "react";
20041
- import { Badge as Badge31, Group as Group73, Stack as Stack138, Text as Text116 } from "@mantine/core";
20081
+ import { Badge as Badge32, Group as Group73, Stack as Stack138, Text as Text116 } from "@mantine/core";
20042
20082
 
20043
20083
  // src/mantine/blocks/domainCardViewer/template/TemplateConfig.tsx
20044
20084
  import React208, { useCallback as useCallback61 } from "react";
@@ -20135,12 +20175,12 @@ var DomainCardViewerTemplateView = ({ editor, block }) => {
20135
20175
  const panelId = `${DOMAIN_CARD_VIEWER_TEMPLATE_PANEL_ID}-${block.id}`;
20136
20176
  const panelContent = useMemo73(() => /* @__PURE__ */ React209.createElement(TemplateConfig13, { editor, block }), [editor, block]);
20137
20177
  const { open } = usePanel(panelId, panelContent);
20138
- return /* @__PURE__ */ React209.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React209.createElement(Badge31, { size: "xs", variant: "light", color: "gray", style: { position: "absolute", top: 8, right: 8 } }, "Template"), /* @__PURE__ */ React209.createElement(Group73, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React209.createElement(Group73, { wrap: "nowrap", align: "center" }, getIcon("dots-circle", block.props.icon), /* @__PURE__ */ React209.createElement(Stack138, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React209.createElement(Text116, { fw: 500, size: "sm" }, block.props.title || "Domain Card"), /* @__PURE__ */ React209.createElement(Text116, { size: "xs", c: "dimmed" }, block.props.description || "Preview domain card generated by AI")))));
20178
+ return /* @__PURE__ */ React209.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React209.createElement(Badge32, { size: "xs", variant: "light", color: "gray", style: { position: "absolute", top: 8, right: 8 } }, "Template"), /* @__PURE__ */ React209.createElement(Group73, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React209.createElement(Group73, { wrap: "nowrap", align: "center" }, getIcon("dots-circle", block.props.icon), /* @__PURE__ */ React209.createElement(Stack138, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React209.createElement(Text116, { fw: 500, size: "sm" }, block.props.title || "Domain Card"), /* @__PURE__ */ React209.createElement(Text116, { size: "xs", c: "dimmed" }, block.props.description || "Preview domain card generated by AI")))));
20139
20179
  };
20140
20180
 
20141
20181
  // src/mantine/blocks/domainCardViewer/flow/FlowView.tsx
20142
20182
  import React211, { useMemo as useMemo75, useCallback as useCallback62, useEffect as useEffect64 } from "react";
20143
- import { ActionIcon as ActionIcon26, Badge as Badge32, Button as Button36, Group as Group74, Stack as Stack140, Text as Text118, Tooltip as Tooltip17 } from "@mantine/core";
20183
+ import { ActionIcon as ActionIcon26, Badge as Badge33, Button as Button36, Group as Group74, Stack as Stack140, Text as Text118, Tooltip as Tooltip17 } from "@mantine/core";
20144
20184
  import { IconChevronRight as IconChevronRight10, IconLoader, IconTestPipe, IconTrash as IconTrash5 } from "@tabler/icons-react";
20145
20185
 
20146
20186
  // src/mantine/blocks/domainCardViewer/flow/ViewerPanel.tsx
@@ -20550,7 +20590,7 @@ var DomainCardViewerFlowView = ({ editor, block }) => {
20550
20590
  }
20551
20591
  };
20552
20592
  const canOpenPanel = status !== "pending";
20553
- return /* @__PURE__ */ React211.createElement(BaseContainer, { blockId: block.id, onClick: canOpenPanel ? open : void 0, style: { opacity: canOpenPanel ? 1 : 0.7, cursor: canOpenPanel ? "pointer" : "not-allowed" } }, /* @__PURE__ */ React211.createElement(Group74, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React211.createElement(Group74, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("dots-circle", block.props.icon), /* @__PURE__ */ React211.createElement(Stack140, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React211.createElement(Group74, { gap: "xs", align: "center" }, /* @__PURE__ */ React211.createElement(Text118, { fw: 600, size: "sm" }, block.props.title || "Domain Card"), /* @__PURE__ */ React211.createElement(Badge32, { size: "xs", variant: "filled", color: badgeProps.color, styles: { root: { backgroundColor: `var(--mantine-color-${badgeProps.color}-6)`, color: "white" } } }, badgeProps.text)), /* @__PURE__ */ React211.createElement(Text118, { size: "xs", c: "dimmed", lineClamp: 2 }, getDescriptionText()))), IS_DEV && status === "pending" && /* @__PURE__ */ React211.createElement(React211.Fragment, null, /* @__PURE__ */ React211.createElement(Button36, { size: "compact-xs", variant: "light", color: "orange", leftSection: /* @__PURE__ */ React211.createElement(IconTestPipe, { size: 14 }), onClick: handleInjectDummyData }, "Test Data"), /* @__PURE__ */ React211.createElement(Button36, { size: "compact-xs", variant: "light", color: "blue", leftSection: /* @__PURE__ */ React211.createElement(IconLoader, { size: 14 }), onClick: handleSetLoading }, "Loading")), IS_DEV && (status === "ready" || status === "approved" || status === "loading") && /* @__PURE__ */ React211.createElement(Button36, { size: "compact-xs", variant: "light", color: "orange", leftSection: /* @__PURE__ */ React211.createElement(IconTrash5, { size: 14 }), onClick: handleClearData }, "Clear"), canOpenPanel && /* @__PURE__ */ React211.createElement(Tooltip17, { label: status === "approved" ? "View domain data" : "Review domain data", withArrow: true }, /* @__PURE__ */ React211.createElement(ActionIcon26, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React211.createElement(IconChevronRight10, { size: 18 })))));
20593
+ return /* @__PURE__ */ React211.createElement(BaseContainer, { blockId: block.id, onClick: canOpenPanel ? open : void 0, style: { opacity: canOpenPanel ? 1 : 0.7, cursor: canOpenPanel ? "pointer" : "not-allowed" } }, /* @__PURE__ */ React211.createElement(Group74, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React211.createElement(Group74, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("dots-circle", block.props.icon), /* @__PURE__ */ React211.createElement(Stack140, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React211.createElement(Group74, { gap: "xs", align: "center" }, /* @__PURE__ */ React211.createElement(Text118, { fw: 600, size: "sm" }, block.props.title || "Domain Card"), /* @__PURE__ */ React211.createElement(Badge33, { size: "xs", variant: "filled", color: badgeProps.color, styles: { root: { backgroundColor: `var(--mantine-color-${badgeProps.color}-6)`, color: "white" } } }, badgeProps.text)), /* @__PURE__ */ React211.createElement(Text118, { size: "xs", c: "dimmed", lineClamp: 2 }, getDescriptionText()))), IS_DEV && status === "pending" && /* @__PURE__ */ React211.createElement(React211.Fragment, null, /* @__PURE__ */ React211.createElement(Button36, { size: "compact-xs", variant: "light", color: "orange", leftSection: /* @__PURE__ */ React211.createElement(IconTestPipe, { size: 14 }), onClick: handleInjectDummyData }, "Test Data"), /* @__PURE__ */ React211.createElement(Button36, { size: "compact-xs", variant: "light", color: "blue", leftSection: /* @__PURE__ */ React211.createElement(IconLoader, { size: 14 }), onClick: handleSetLoading }, "Loading")), IS_DEV && (status === "ready" || status === "approved" || status === "loading") && /* @__PURE__ */ React211.createElement(Button36, { size: "compact-xs", variant: "light", color: "orange", leftSection: /* @__PURE__ */ React211.createElement(IconTrash5, { size: 14 }), onClick: handleClearData }, "Clear"), canOpenPanel && /* @__PURE__ */ React211.createElement(Tooltip17, { label: status === "approved" ? "View domain data" : "Review domain data", withArrow: true }, /* @__PURE__ */ React211.createElement(ActionIcon26, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React211.createElement(IconChevronRight10, { size: 18 })))));
20554
20594
  };
20555
20595
 
20556
20596
  // src/mantine/blocks/domainCardViewer/DomainCardViewerBlock.tsx
@@ -20604,7 +20644,7 @@ import React221 from "react";
20604
20644
 
20605
20645
  // src/mantine/blocks/governanceGroup/template/TemplateView.tsx
20606
20646
  import React218, { useMemo as useMemo77 } from "react";
20607
- import { Badge as Badge35, Group as Group77, Stack as Stack144, Text as Text122 } from "@mantine/core";
20647
+ import { Badge as Badge36, Group as Group77, Stack as Stack144, Text as Text122 } from "@mantine/core";
20608
20648
 
20609
20649
  // src/mantine/blocks/governanceGroup/template/TemplateConfig.tsx
20610
20650
  import React217, { useCallback as useCallback65 } from "react";
@@ -20719,12 +20759,12 @@ var GeneralTab14 = ({ title, description, icon: icon2, groupType, onTitleChange,
20719
20759
 
20720
20760
  // src/mantine/components/HookedActionsTab/HookedActionsTab.tsx
20721
20761
  import React216, { useCallback as useCallback64, useMemo as useMemo76, useEffect as useEffect67, useState as useState82 } from "react";
20722
- import { Stack as Stack143, Text as Text121, Alert as Alert30, Accordion as Accordion4, Group as Group76, Badge as Badge34, Menu as Menu3, Button as Button37 } from "@mantine/core";
20762
+ import { Stack as Stack143, Text as Text121, Alert as Alert30, Accordion as Accordion4, Group as Group76, Badge as Badge35, Menu as Menu3, Button as Button37 } from "@mantine/core";
20723
20763
  import { IconPlus as IconPlus5, IconMail as IconMail5, IconLink as IconLink3 } from "@tabler/icons-react";
20724
20764
 
20725
20765
  // src/mantine/components/HookedActionsTab/ActionInstanceCard.tsx
20726
20766
  import React215, { useCallback as useCallback63, useState as useState81, useEffect as useEffect66 } from "react";
20727
- import { Card as Card19, Stack as Stack142, Group as Group75, Text as Text120, ActionIcon as ActionIcon27, Switch as Switch6, Badge as Badge33, Divider as Divider19, Loader as Loader29 } from "@mantine/core";
20767
+ import { Card as Card19, Stack as Stack142, Group as Group75, Text as Text120, ActionIcon as ActionIcon27, Switch as Switch6, Badge as Badge34, Divider as Divider19, Loader as Loader29 } from "@mantine/core";
20728
20768
  import { IconTrash as IconTrash6, IconMail as IconMail4, IconLink as IconLink2 } from "@tabler/icons-react";
20729
20769
  var getActionIcon = (type) => {
20730
20770
  switch (type) {
@@ -20896,7 +20936,7 @@ var ActionInstanceCard = ({ instance, actionType, payloadFields, availableBlocks
20896
20936
  }
20897
20937
  }
20898
20938
  ), /* @__PURE__ */ React215.createElement(ActionIcon27, { variant: "subtle", color: "red", size: "sm", onClick: onRemove, style: { color: "#ff6b6b" } }, /* @__PURE__ */ React215.createElement(IconTrash6, { size: 14 })))), /* @__PURE__ */ React215.createElement(Stack142, { gap: "sm" }, actionType.configSchema.map(renderConfigField)), instance.type === "sendEmail" && instance.config.templateName && /* @__PURE__ */ React215.createElement(React215.Fragment, null, /* @__PURE__ */ React215.createElement(Divider19, { color: "#333" }), /* @__PURE__ */ React215.createElement(Stack142, { gap: "sm" }, /* @__PURE__ */ React215.createElement(Group75, { justify: "space-between", align: "center" }, /* @__PURE__ */ React215.createElement(Text120, { size: "sm", fw: 500, c: "#adb5bd" }, "Template Variables"), templateVariables.length > 0 && /* @__PURE__ */ React215.createElement(
20899
- Badge33,
20939
+ Badge34,
20900
20940
  {
20901
20941
  size: "sm",
20902
20942
  variant: "filled",
@@ -21090,7 +21130,7 @@ var HookedActionsTab = ({ editor, block, blockActions, hookedActions, onHookedAc
21090
21130
  const enabledCount = actionsForThisEvent.filter((a) => a.enabled).length;
21091
21131
  const allPayloadFields = [...blockAction.payloadSchema.filter((f) => f.type !== "object"), ...dynamicFields[blockAction.actionId] || []];
21092
21132
  return /* @__PURE__ */ React216.createElement(Accordion4.Item, { key: blockAction.actionId, value: blockAction.actionId }, /* @__PURE__ */ React216.createElement(Accordion4.Control, null, /* @__PURE__ */ React216.createElement(Group76, { justify: "space-between", pr: "md" }, /* @__PURE__ */ React216.createElement(Stack143, { gap: 2 }, /* @__PURE__ */ React216.createElement(Text121, { size: "sm", fw: 500, c: "#f1f3f5" }, blockAction.label), /* @__PURE__ */ React216.createElement(Text121, { size: "xs", c: "#666" }, blockAction.description)), actionsForThisEvent.length > 0 && /* @__PURE__ */ React216.createElement(
21093
- Badge34,
21133
+ Badge35,
21094
21134
  {
21095
21135
  size: "sm",
21096
21136
  variant: "filled",
@@ -21114,7 +21154,7 @@ var HookedActionsTab = ({ editor, block, blockActions, hookedActions, onHookedAc
21114
21154
  },
21115
21155
  /* @__PURE__ */ React216.createElement(Text121, { size: "xs", fw: 500, c: "#adb5bd" }, "Available payload data:"),
21116
21156
  /* @__PURE__ */ React216.createElement(Group76, { gap: "xs" }, allPayloadFields.map((field) => /* @__PURE__ */ React216.createElement(
21117
- Badge34,
21157
+ Badge35,
21118
21158
  {
21119
21159
  key: field.key,
21120
21160
  size: "xs",
@@ -21966,12 +22006,12 @@ var GovernanceGroupTemplateView = ({ editor, block }) => {
21966
22006
  const panelId = `${GOVERNANCE_GROUP_TEMPLATE_PANEL_ID}-${block.id}`;
21967
22007
  const panelContent = useMemo77(() => /* @__PURE__ */ React218.createElement(TemplateConfig14, { editor, block }), [editor, block]);
21968
22008
  const { open } = usePanel(panelId, panelContent);
21969
- return /* @__PURE__ */ React218.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React218.createElement(Badge35, { size: "xs", variant: "light", color: "gray", style: { position: "absolute", top: 8, right: 8 } }, "Template"), /* @__PURE__ */ React218.createElement(Group77, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React218.createElement(Group77, { wrap: "nowrap", align: "center" }, getIcon("users", block.props.icon), /* @__PURE__ */ React218.createElement(Stack144, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React218.createElement(Text122, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Governance Group"), /* @__PURE__ */ React218.createElement(Text122, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description || "Configure the governance group creation flow")))));
22009
+ return /* @__PURE__ */ React218.createElement(BaseContainer, { blockId: block.id, onClick: open }, /* @__PURE__ */ React218.createElement(Badge36, { size: "xs", variant: "light", color: "gray", style: { position: "absolute", top: 8, right: 8 } }, "Template"), /* @__PURE__ */ React218.createElement(Group77, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React218.createElement(Group77, { wrap: "nowrap", align: "center" }, getIcon("users", block.props.icon), /* @__PURE__ */ React218.createElement(Stack144, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React218.createElement(Text122, { fw: 500, size: "sm", contentEditable: false }, block.props.title || "Governance Group"), /* @__PURE__ */ React218.createElement(Text122, { size: "xs", c: "dimmed", contentEditable: false }, block.props.description || "Configure the governance group creation flow")))));
21970
22010
  };
21971
22011
 
21972
22012
  // src/mantine/blocks/governanceGroup/flow/FlowView.tsx
21973
22013
  import React220, { useCallback as useCallback67, useEffect as useEffect69, useMemo as useMemo79, useRef as useRef20, useState as useState84 } from "react";
21974
- import { ActionIcon as ActionIcon28, Badge as Badge36, Group as Group79, Stack as Stack146, Text as Text124, Tooltip as Tooltip18 } from "@mantine/core";
22014
+ import { ActionIcon as ActionIcon28, Badge as Badge37, Group as Group79, Stack as Stack146, Text as Text124, Tooltip as Tooltip18 } from "@mantine/core";
21975
22015
  import { IconChevronRight as IconChevronRight11 } from "@tabler/icons-react";
21976
22016
 
21977
22017
  // src/mantine/blocks/governanceGroup/flow/GovernanceGroupPanel.tsx
@@ -22309,7 +22349,7 @@ var GovernanceGroupFlowView = ({ editor, block }) => {
22309
22349
  const groupTypeName = lastSubmission.groupType ? lastSubmission.groupType.charAt(0).toUpperCase() + lastSubmission.groupType.slice(1).replace(/([A-Z])/g, " $1") : "Group";
22310
22350
  return `${groupTypeName} created: ${lastSubmission.coreAddress?.slice(0, 12)}...`;
22311
22351
  };
22312
- return /* @__PURE__ */ React220.createElement(BaseContainer, { blockId: block.id, onClick: handleOpen }, /* @__PURE__ */ React220.createElement(Group79, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React220.createElement(Group79, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("users", block.props.icon), /* @__PURE__ */ React220.createElement(Stack146, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React220.createElement(Group79, { gap: "xs", align: "center" }, /* @__PURE__ */ React220.createElement(Text124, { fw: 600, size: "sm", contentEditable: false }, block.props.title || "Governance Group"), /* @__PURE__ */ React220.createElement(Badge36, { size: "xs", variant: "filled", color: badgeProps.color, styles: { root: { backgroundColor: `var(--mantine-color-${badgeProps.color}-6)`, color: "white" } } }, badgeProps.text)), /* @__PURE__ */ React220.createElement(Text124, { size: "xs", c: "dimmed", contentEditable: false, lineClamp: 2 }, hasExistingSubmission ? getSubmissionDisplay() : block.props.description || "Open the panel to create a new governance group."))), /* @__PURE__ */ React220.createElement(Tooltip18, { label: hasExistingSubmission ? "View/Edit group" : "Create group", withArrow: true }, /* @__PURE__ */ React220.createElement(ActionIcon28, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React220.createElement(IconChevronRight11, { size: 18 })))));
22352
+ return /* @__PURE__ */ React220.createElement(BaseContainer, { blockId: block.id, onClick: handleOpen }, /* @__PURE__ */ React220.createElement(Group79, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React220.createElement(Group79, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("users", block.props.icon), /* @__PURE__ */ React220.createElement(Stack146, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React220.createElement(Group79, { gap: "xs", align: "center" }, /* @__PURE__ */ React220.createElement(Text124, { fw: 600, size: "sm", contentEditable: false }, block.props.title || "Governance Group"), /* @__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(Text124, { size: "xs", c: "dimmed", contentEditable: false, lineClamp: 2 }, hasExistingSubmission ? getSubmissionDisplay() : block.props.description || "Open the panel to create a new governance group."))), /* @__PURE__ */ React220.createElement(Tooltip18, { label: hasExistingSubmission ? "View/Edit group" : "Create group", withArrow: true }, /* @__PURE__ */ React220.createElement(ActionIcon28, { variant: "subtle", color: "blue" }, /* @__PURE__ */ React220.createElement(IconChevronRight11, { size: 18 })))));
22313
22353
  };
22314
22354
 
22315
22355
  // src/mantine/blocks/governanceGroup/GovernanceGroupBlock.tsx
@@ -22562,11 +22602,11 @@ var FlowLinkTemplateView = ({ editor, block }) => {
22562
22602
 
22563
22603
  // src/mantine/blocks/flowLink/flow/FlowView.tsx
22564
22604
  import React228, { useMemo as useMemo82 } from "react";
22565
- import { Badge as Badge38, Group as Group83, Stack as Stack151, Text as Text128, Tooltip as Tooltip20 } from "@mantine/core";
22605
+ import { Badge as Badge39, Group as Group83, Stack as Stack151, Text as Text128, Tooltip as Tooltip20 } from "@mantine/core";
22566
22606
 
22567
22607
  // src/mantine/blocks/flowLink/flow/FlowLinkPanel.tsx
22568
22608
  import React227, { useState as useState86, useEffect as useEffect71, useCallback as useCallback68 } from "react";
22569
- import { Stack as Stack150, Text as Text127, Card as Card22, Group as Group82, Badge as Badge37, ActionIcon as ActionIcon30, Loader as Loader31, Tooltip as Tooltip19 } from "@mantine/core";
22609
+ import { Stack as Stack150, Text as Text127, Card as Card22, Group as Group82, Badge as Badge38, ActionIcon as ActionIcon30, Loader as Loader31, Tooltip as Tooltip19 } from "@mantine/core";
22570
22610
  import { IconRefresh as IconRefresh4, IconCheck as IconCheck14, IconClock as IconClock10, IconCircleDashed as IconCircleDashed4 } from "@tabler/icons-react";
22571
22611
  var FlowLinkPanel = ({ editor, block }) => {
22572
22612
  const { closePanel } = usePanelStore();
@@ -22607,10 +22647,10 @@ var FlowLinkPanel = ({ editor, block }) => {
22607
22647
  };
22608
22648
  const getStatusBadge = (link) => {
22609
22649
  if (link.isLoading) {
22610
- return /* @__PURE__ */ React227.createElement(Badge37, { display: "inline-block", size: "sm", variant: "light", color: "gray", leftSection: /* @__PURE__ */ React227.createElement(Loader31, { size: 10 }) }, "Loading");
22650
+ return /* @__PURE__ */ React227.createElement(Badge38, { display: "inline-block", size: "sm", variant: "light", color: "gray", leftSection: /* @__PURE__ */ React227.createElement(Loader31, { size: 10 }) }, "Loading");
22611
22651
  }
22612
22652
  if (link.error) {
22613
- return /* @__PURE__ */ React227.createElement(Tooltip19, { label: link.error }, /* @__PURE__ */ React227.createElement(Badge37, { display: "inline-block", size: "sm", variant: "light", color: "red" }, "Error"));
22653
+ return /* @__PURE__ */ React227.createElement(Tooltip19, { label: link.error }, /* @__PURE__ */ React227.createElement(Badge38, { display: "inline-block", size: "sm", variant: "light", color: "red" }, "Error"));
22614
22654
  }
22615
22655
  if (!link.statusData) {
22616
22656
  return null;
@@ -22618,12 +22658,12 @@ var FlowLinkPanel = ({ editor, block }) => {
22618
22658
  const status = link.statusData.status;
22619
22659
  switch (status) {
22620
22660
  case "completed":
22621
- return /* @__PURE__ */ React227.createElement(Badge37, { display: "inline-block", size: "sm", variant: "light", color: "green", leftSection: /* @__PURE__ */ React227.createElement(IconCheck14, { size: 12 }) }, "Completed");
22661
+ return /* @__PURE__ */ React227.createElement(Badge38, { display: "inline-block", size: "sm", variant: "light", color: "green", leftSection: /* @__PURE__ */ React227.createElement(IconCheck14, { size: 12 }) }, "Completed");
22622
22662
  case "in_progress":
22623
- return /* @__PURE__ */ React227.createElement(Badge37, { display: "inline-block", size: "sm", variant: "light", color: "blue", leftSection: /* @__PURE__ */ React227.createElement(IconClock10, { size: 12 }) }, "In Progress");
22663
+ return /* @__PURE__ */ React227.createElement(Badge38, { display: "inline-block", size: "sm", variant: "light", color: "blue", leftSection: /* @__PURE__ */ React227.createElement(IconClock10, { size: 12 }) }, "In Progress");
22624
22664
  case "not_started":
22625
22665
  default:
22626
- return /* @__PURE__ */ React227.createElement(Badge37, { display: "inline-block", size: "sm", variant: "light", color: "gray", leftSection: /* @__PURE__ */ React227.createElement(IconCircleDashed4, { size: 12 }) }, "Not Started");
22666
+ return /* @__PURE__ */ React227.createElement(Badge38, { display: "inline-block", size: "sm", variant: "light", color: "gray", leftSection: /* @__PURE__ */ React227.createElement(IconCircleDashed4, { size: 12 }) }, "Not Started");
22627
22667
  }
22628
22668
  };
22629
22669
  return /* @__PURE__ */ React227.createElement(BaseRightPanelLayout, { title: block.props.title || "Flow Links", onClose: closePanel, isTemplate: false, context: { editor, block } }, /* @__PURE__ */ React227.createElement(Stack150, { gap: "md" }, handlers.getFlowStatus && /* @__PURE__ */ React227.createElement(Tooltip19, { label: "Refresh status" }, /* @__PURE__ */ React227.createElement(ActionIcon30, { variant: "subtle", size: "sm", onClick: fetchStatuses }, /* @__PURE__ */ React227.createElement(IconRefresh4, { size: 16 }))), linksWithStatus.length === 0 ? /* @__PURE__ */ React227.createElement(Card22, { withBorder: true, p: "md", bg: "gray.0" }, /* @__PURE__ */ React227.createElement(Text127, { size: "sm", c: "dimmed", ta: "center" }, "No flow links configured.")) : /* @__PURE__ */ React227.createElement(Stack150, { gap: "sm" }, linksWithStatus.map((link) => /* @__PURE__ */ React227.createElement(Stack150, { key: link.id }, link.description && /* @__PURE__ */ React227.createElement(Text127, null, link.description), /* @__PURE__ */ React227.createElement(
@@ -22636,7 +22676,7 @@ var FlowLinkPanel = ({ editor, block }) => {
22636
22676
  cursor: link.externalUrl || handlers.navigateToFlow && link.url ? "pointer" : "not-allowed"
22637
22677
  }
22638
22678
  },
22639
- /* @__PURE__ */ React227.createElement(Group82, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("external-link", block.props.icon), /* @__PURE__ */ React227.createElement(Stack150, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React227.createElement(Group82, { gap: "xs", align: "center" }, /* @__PURE__ */ React227.createElement(Text127, { size: "sm", fw: 600 }, link.title || (link.externalUrl ? "External Link" : "Untitled Flow")), link.externalUrl && /* @__PURE__ */ React227.createElement(Badge37, { size: "xs", variant: "light", color: "teal" }, "External"), !link.externalUrl && getStatusBadge(link)), link.captionText && /* @__PURE__ */ React227.createElement(Text127, { size: "sm", c: "dimmed", lineClamp: 2 }, link.captionText)), link.statusData?.completedAt && /* @__PURE__ */ React227.createElement(Text127, { size: "sm", c: "dimmed" }, "Completed: ", new Date(link.statusData.completedAt).toLocaleDateString()))
22679
+ /* @__PURE__ */ React227.createElement(Group82, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("external-link", block.props.icon), /* @__PURE__ */ React227.createElement(Stack150, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React227.createElement(Group82, { gap: "xs", align: "center" }, /* @__PURE__ */ React227.createElement(Text127, { size: "sm", fw: 600 }, link.title || (link.externalUrl ? "External Link" : "Untitled Flow")), link.externalUrl && /* @__PURE__ */ React227.createElement(Badge38, { size: "xs", variant: "light", color: "teal" }, "External"), !link.externalUrl && getStatusBadge(link)), link.captionText && /* @__PURE__ */ React227.createElement(Text127, { size: "sm", c: "dimmed", lineClamp: 2 }, link.captionText)), link.statusData?.completedAt && /* @__PURE__ */ React227.createElement(Text127, { size: "sm", c: "dimmed" }, "Completed: ", new Date(link.statusData.completedAt).toLocaleDateString()))
22640
22680
  ))))));
22641
22681
  };
22642
22682
 
@@ -22661,7 +22701,7 @@ var FlowLinkFlowView = ({ editor, block, isDisabled }) => {
22661
22701
  return { color: "accent.5", text: `${linksCount} link${linksCount !== 1 ? "s" : ""}` };
22662
22702
  };
22663
22703
  const badgeProps = getBadgeProps();
22664
- const cardContent = /* @__PURE__ */ React228.createElement(BaseContainer, { blockId: block.id, onClick: handleClick, style: { opacity: disabled ? 0.6 : 1, cursor: disabled ? "not-allowed" : "pointer" } }, /* @__PURE__ */ React228.createElement(Group83, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("external-link", block.props.icon), /* @__PURE__ */ React228.createElement(Stack151, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React228.createElement(Group83, { gap: "xs", align: "center" }, /* @__PURE__ */ React228.createElement(Text128, { fw: 600, size: "sm" }, block.props.title || "Flow Link"), /* @__PURE__ */ React228.createElement(Badge38, { size: "xs", variant: "light", bg: badgeProps.color }, badgeProps.text)), /* @__PURE__ */ React228.createElement(Text128, { size: "xs", c: "dimmed", lineClamp: 2 }, block.props.description || (linksCount > 0 ? "Click to view links" : "No links configured")))));
22704
+ const cardContent = /* @__PURE__ */ React228.createElement(BaseContainer, { blockId: block.id, onClick: handleClick, style: { opacity: disabled ? 0.6 : 1, cursor: disabled ? "not-allowed" : "pointer" } }, /* @__PURE__ */ React228.createElement(Group83, { wrap: "nowrap", align: "center", style: { flex: 1 } }, getIcon("external-link", block.props.icon), /* @__PURE__ */ React228.createElement(Stack151, { gap: 4, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React228.createElement(Group83, { gap: "xs", align: "center" }, /* @__PURE__ */ React228.createElement(Text128, { fw: 600, size: "sm" }, block.props.title || "Flow Link"), /* @__PURE__ */ React228.createElement(Badge39, { size: "xs", variant: "light", bg: badgeProps.color }, badgeProps.text)), /* @__PURE__ */ React228.createElement(Text128, { size: "xs", c: "dimmed", lineClamp: 2 }, block.props.description || (linksCount > 0 ? "Click to view links" : "No links configured")))));
22665
22705
  if (disabled && isDisabled?.message) {
22666
22706
  return /* @__PURE__ */ React228.createElement(Tooltip20, { label: isDisabled.message }, cardContent);
22667
22707
  }
@@ -23704,7 +23744,7 @@ var HttpRequestConfig = ({ inputs, onInputsChange, editor, blockId }) => {
23704
23744
 
23705
23745
  // src/mantine/blocks/action/actionTypes/httpRequest/HttpRequestFlowDetail.tsx
23706
23746
  import React237, { useMemo as useMemo87, useState as useState90 } from "react";
23707
- import { Group as Group89, Stack as Stack158, Text as Text134, ActionIcon as ActionIcon33, Badge as Badge39, Collapse as Collapse8, Code as Code9, Loader as Loader33, Alert as Alert34 } from "@mantine/core";
23747
+ import { Group as Group89, Stack as Stack158, Text as Text134, ActionIcon as ActionIcon33, Badge as Badge40, Collapse as Collapse8, Code as Code9, Loader as Loader33, Alert as Alert34 } from "@mantine/core";
23708
23748
  import { IconSend as IconSend5, IconChevronDown as IconChevronDown8, IconChevronUp as IconChevronUp4, IconAlertTriangle as IconAlertTriangle4 } from "@tabler/icons-react";
23709
23749
  var HttpRequestFlowDetail = ({ inputs, editor, runtime, updateRuntime, isDisabled }) => {
23710
23750
  const [isLoading, setIsLoading] = useState90(false);
@@ -23808,7 +23848,7 @@ var HttpRequestFlowDetail = ({ inputs, editor, runtime, updateRuntime, isDisable
23808
23848
  }
23809
23849
  };
23810
23850
  const hasDetails = headers.length > 0 || body.length > 0 || !!response;
23811
- return /* @__PURE__ */ React237.createElement(Stack158, { gap: "md" }, /* @__PURE__ */ React237.createElement(Group89, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React237.createElement(Badge39, { size: "sm", variant: "filled", color: getMethodColor(method) }, method), /* @__PURE__ */ React237.createElement(Text134, { size: "xs", c: "dimmed", contentEditable: false, style: { wordBreak: "break-all", overflow: "hidden", textOverflow: "ellipsis" } }, endpoint || "No endpoint configured"), status !== "idle" && /* @__PURE__ */ React237.createElement(Badge39, { size: "xs", variant: "dot", color: getStatusColor5(status) }, status)), /* @__PURE__ */ React237.createElement(Group89, { gap: "xs" }, /* @__PURE__ */ React237.createElement(BasePrimaryButton, { leftSection: isLoading ? /* @__PURE__ */ React237.createElement(Loader33, { size: 14 }) : /* @__PURE__ */ React237.createElement(IconSend5, { size: 14 }), onClick: handleExecuteRequest, disabled: isDisabled || isLoading || !endpoint }, isLoading ? "Sending..." : "Execute"), /* @__PURE__ */ React237.createElement(ActionIcon33, { variant: "subtle", onClick: () => setShowDetails(!showDetails), disabled: !hasDetails }, showDetails ? /* @__PURE__ */ React237.createElement(IconChevronUp4, { size: 16 }) : /* @__PURE__ */ React237.createElement(IconChevronDown8, { size: 16 }))), /* @__PURE__ */ React237.createElement(Collapse8, { in: showDetails }, /* @__PURE__ */ React237.createElement(Stack158, { gap: "md" }, validationWarnings.length > 0 && /* @__PURE__ */ React237.createElement(Alert34, { icon: /* @__PURE__ */ React237.createElement(IconAlertTriangle4, { size: 16 }), title: "Schema Validation Warnings", color: "yellow", styles: actionAlertStyles }, /* @__PURE__ */ React237.createElement(Stack158, { gap: "xs" }, /* @__PURE__ */ React237.createElement(Text134, { size: "xs" }, "The API response does not match the defined schema:"), validationWarnings.map((warning, index) => /* @__PURE__ */ React237.createElement(Text134, { key: index, size: "xs", c: "dimmed" }, "\u2022 ", warning)))), headers.length > 0 && /* @__PURE__ */ React237.createElement(Stack158, { gap: "xs" }, /* @__PURE__ */ React237.createElement(Text134, { size: "xs", fw: 600, c: "dimmed" }, "Headers:"), /* @__PURE__ */ React237.createElement(Code9, { block: true, style: { fontSize: "11px" } }, JSON.stringify(
23851
+ return /* @__PURE__ */ React237.createElement(Stack158, { gap: "md" }, /* @__PURE__ */ React237.createElement(Group89, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React237.createElement(Badge40, { size: "sm", variant: "filled", color: getMethodColor(method) }, method), /* @__PURE__ */ React237.createElement(Text134, { size: "xs", c: "dimmed", contentEditable: false, style: { wordBreak: "break-all", overflow: "hidden", textOverflow: "ellipsis" } }, endpoint || "No endpoint configured"), status !== "idle" && /* @__PURE__ */ React237.createElement(Badge40, { size: "xs", variant: "dot", color: getStatusColor5(status) }, status)), /* @__PURE__ */ React237.createElement(Group89, { gap: "xs" }, /* @__PURE__ */ React237.createElement(BasePrimaryButton, { leftSection: isLoading ? /* @__PURE__ */ React237.createElement(Loader33, { size: 14 }) : /* @__PURE__ */ React237.createElement(IconSend5, { size: 14 }), onClick: handleExecuteRequest, disabled: isDisabled || isLoading || !endpoint }, isLoading ? "Sending..." : "Execute"), /* @__PURE__ */ React237.createElement(ActionIcon33, { variant: "subtle", onClick: () => setShowDetails(!showDetails), disabled: !hasDetails }, showDetails ? /* @__PURE__ */ React237.createElement(IconChevronUp4, { size: 16 }) : /* @__PURE__ */ React237.createElement(IconChevronDown8, { size: 16 }))), /* @__PURE__ */ React237.createElement(Collapse8, { in: showDetails }, /* @__PURE__ */ React237.createElement(Stack158, { gap: "md" }, validationWarnings.length > 0 && /* @__PURE__ */ React237.createElement(Alert34, { icon: /* @__PURE__ */ React237.createElement(IconAlertTriangle4, { size: 16 }), title: "Schema Validation Warnings", color: "yellow", styles: actionAlertStyles }, /* @__PURE__ */ React237.createElement(Stack158, { gap: "xs" }, /* @__PURE__ */ React237.createElement(Text134, { size: "xs" }, "The API response does not match the defined schema:"), validationWarnings.map((warning, index) => /* @__PURE__ */ React237.createElement(Text134, { key: index, size: "xs", c: "dimmed" }, "\u2022 ", warning)))), headers.length > 0 && /* @__PURE__ */ React237.createElement(Stack158, { gap: "xs" }, /* @__PURE__ */ React237.createElement(Text134, { size: "xs", fw: 600, c: "dimmed" }, "Headers:"), /* @__PURE__ */ React237.createElement(Code9, { block: true, style: { fontSize: "11px" } }, JSON.stringify(
23812
23852
  headers.reduce(
23813
23853
  (acc, h) => {
23814
23854
  if (h.key && h.value) acc[h.key] = h.value;
@@ -23839,7 +23879,7 @@ registerActionTypeUI("qi/http.request", {
23839
23879
 
23840
23880
  // src/mantine/blocks/action/actionTypes/emailSend/EmailSendConfig.tsx
23841
23881
  import React238, { useCallback as useCallback71, useEffect as useEffect75, useRef as useRef22, useState as useState91, useMemo as useMemo88 } from "react";
23842
- import { Alert as Alert35, Badge as Badge40, Group as Group90, Loader as Loader34, Stack as Stack159, Text as Text135 } from "@mantine/core";
23882
+ import { Alert as Alert35, Badge as Badge41, Group as Group90, Loader as Loader34, Stack as Stack159, Text as Text135 } from "@mantine/core";
23843
23883
  import { IconCheck as IconCheck16, IconInfoCircle as IconInfoCircle6 } from "@tabler/icons-react";
23844
23884
 
23845
23885
  // src/mantine/blocks/action/actionTypes/emailSend/types.ts
@@ -23999,7 +24039,7 @@ var EmailSendConfig = ({ inputs, onInputsChange, editor, blockId }) => {
23999
24039
  editorDocument: editor?.document || [],
24000
24040
  currentBlockId: blockId
24001
24041
  }
24002
- )), /* @__PURE__ */ React238.createElement(BaseTextInput, { placeholder: "Subject", value: local.subject, onChange: (e) => update({ subject: e.currentTarget.value }) }), /* @__PURE__ */ React238.createElement(Stack159, { gap: "md" }, /* @__PURE__ */ React238.createElement(Text135, { size: "sm", c: "neutralColor.7" }, "Template Variables"), !local.templateName ? /* @__PURE__ */ React238.createElement(Alert35, { icon: /* @__PURE__ */ React238.createElement(IconInfoCircle6, { size: 16 }), styles: actionAlertStyles }, "Select a template above to see available variables.") : parsedExtractedVariables.length === 0 ? /* @__PURE__ */ React238.createElement(Alert35, { icon: /* @__PURE__ */ React238.createElement(IconCheck16, { size: 16 }), styles: actionAlertStyles }, "This template has no handlebars variables to configure.") : /* @__PURE__ */ React238.createElement(Stack159, { gap: "md" }, /* @__PURE__ */ React238.createElement(Group90, { justify: "space-between" }, /* @__PURE__ */ React238.createElement(Text135, { size: "xs", c: "dimmed" }, "Map template variables to block data or static values"), /* @__PURE__ */ React238.createElement(Badge40, { color: mappedCount === parsedExtractedVariables.length ? "green" : "orange" }, mappedCount, "/", parsedExtractedVariables.length, " mapped")), parsedExtractedVariables.map((variable) => /* @__PURE__ */ React238.createElement(
24042
+ )), /* @__PURE__ */ React238.createElement(BaseTextInput, { placeholder: "Subject", value: local.subject, onChange: (e) => update({ subject: e.currentTarget.value }) }), /* @__PURE__ */ React238.createElement(Stack159, { gap: "md" }, /* @__PURE__ */ React238.createElement(Text135, { size: "sm", c: "neutralColor.7" }, "Template Variables"), !local.templateName ? /* @__PURE__ */ React238.createElement(Alert35, { icon: /* @__PURE__ */ React238.createElement(IconInfoCircle6, { size: 16 }), styles: actionAlertStyles }, "Select a template above to see available variables.") : parsedExtractedVariables.length === 0 ? /* @__PURE__ */ React238.createElement(Alert35, { icon: /* @__PURE__ */ React238.createElement(IconCheck16, { size: 16 }), styles: actionAlertStyles }, "This template has no handlebars variables to configure.") : /* @__PURE__ */ React238.createElement(Stack159, { gap: "md" }, /* @__PURE__ */ React238.createElement(Group90, { justify: "space-between" }, /* @__PURE__ */ React238.createElement(Text135, { size: "xs", c: "dimmed" }, "Map template variables to block data or static values"), /* @__PURE__ */ React238.createElement(Badge41, { color: mappedCount === parsedExtractedVariables.length ? "green" : "orange" }, mappedCount, "/", parsedExtractedVariables.length, " mapped")), parsedExtractedVariables.map((variable) => /* @__PURE__ */ React238.createElement(
24003
24043
  DataInput,
24004
24044
  {
24005
24045
  key: variable.name,
@@ -24483,7 +24523,7 @@ var EvaluateBidConfig = ({ inputs, onInputsChange, editor, blockId }) => {
24483
24523
 
24484
24524
  // src/mantine/blocks/action/actionTypes/evaluateBid/EvaluateBidFlowDetail.tsx
24485
24525
  import React243, { useCallback as useCallback75, useEffect as useEffect79, useMemo as useMemo92, useState as useState95 } from "react";
24486
- import { ActionIcon as ActionIcon34, Alert as Alert39, Badge as Badge41, Box as Box46, Button as Button42, Collapse as Collapse9, Divider as Divider22, Group as Group91, Loader as Loader38, Stack as Stack163, Text as Text138, UnstyledButton as UnstyledButton3 } from "@mantine/core";
24526
+ import { ActionIcon as ActionIcon34, Alert as Alert39, Badge as Badge42, Box as Box46, Button as Button42, Collapse as Collapse9, Divider as Divider22, Group as Group91, Loader as Loader38, Stack as Stack163, Text as Text138, UnstyledButton as UnstyledButton3 } from "@mantine/core";
24487
24527
  import { IconArrowLeft as IconArrowLeft6, IconCheck as IconCheck17, IconChevronDown as IconChevronDown9, IconChevronRight as IconChevronRight12, IconFilter, IconThumbDown, IconThumbUp as IconThumbUp3 } from "@tabler/icons-react";
24488
24528
  function getRoleColor2(role) {
24489
24529
  const r = String(role || "").toLowerCase();
@@ -24833,7 +24873,7 @@ var EvaluateBidFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, is
24833
24873
  }
24834
24874
  },
24835
24875
  /* @__PURE__ */ React243.createElement(UnstyledButton3, { onClick: () => setDetailsOpen((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React243.createElement(Group91, { gap: "xs", align: "center" }, detailsOpen ? /* @__PURE__ */ React243.createElement(IconChevronDown9, { size: 16 }) : /* @__PURE__ */ React243.createElement(IconChevronRight12, { size: 16 }), /* @__PURE__ */ React243.createElement(Text138, { fw: 500, size: "sm" }, "Details"))),
24836
- /* @__PURE__ */ React243.createElement(Collapse9, { in: detailsOpen }, /* @__PURE__ */ React243.createElement(Stack163, { gap: "xs", mt: "sm" }, /* @__PURE__ */ React243.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Bid ID"), /* @__PURE__ */ React243.createElement(Text138, { size: "xs" }, selectedBid.id)), /* @__PURE__ */ React243.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Collection"), /* @__PURE__ */ React243.createElement(Text138, { size: "xs" }, selectedBid.collection || collectionId)), /* @__PURE__ */ React243.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Role"), /* @__PURE__ */ React243.createElement(Badge41, { size: "xs", variant: "light", color: getRoleColor2(selectedBid.role) }, getRoleLabel2(selectedBid.role))), /* @__PURE__ */ React243.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Address"), /* @__PURE__ */ React243.createElement(Text138, { size: "xs" }, selectedBid.address))))
24876
+ /* @__PURE__ */ React243.createElement(Collapse9, { in: detailsOpen }, /* @__PURE__ */ React243.createElement(Stack163, { gap: "xs", mt: "sm" }, /* @__PURE__ */ React243.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Bid ID"), /* @__PURE__ */ React243.createElement(Text138, { size: "xs" }, selectedBid.id)), /* @__PURE__ */ React243.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Collection"), /* @__PURE__ */ React243.createElement(Text138, { size: "xs" }, selectedBid.collection || collectionId)), /* @__PURE__ */ React243.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Role"), /* @__PURE__ */ React243.createElement(Badge42, { size: "xs", variant: "light", color: getRoleColor2(selectedBid.role) }, getRoleLabel2(selectedBid.role))), /* @__PURE__ */ React243.createElement(Group91, { justify: "space-between" }, /* @__PURE__ */ React243.createElement(Text138, { size: "xs", c: "dimmed" }, "Address"), /* @__PURE__ */ React243.createElement(Text138, { size: "xs" }, selectedBid.address))))
24837
24877
  ), /* @__PURE__ */ React243.createElement(
24838
24878
  Box46,
24839
24879
  {
@@ -26286,7 +26326,7 @@ var ProposalCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
26286
26326
 
26287
26327
  // src/mantine/blocks/action/actionTypes/proposalCreate/ProposalCreateFlowDetail.tsx
26288
26328
  import React249, { useCallback as useCallback81, useEffect as useEffect85, useMemo as useMemo97, useState as useState101 } from "react";
26289
- import { Alert as Alert44, Badge as Badge42, Button as Button44, Card as Card23, Group as Group94, Loader as Loader44, Stack as Stack169, Text as Text142 } from "@mantine/core";
26329
+ import { Alert as Alert44, Badge as Badge43, Button as Button44, Card as Card23, Group as Group94, Loader as Loader44, Stack as Stack169, Text as Text142 } from "@mantine/core";
26290
26330
  import { IconPlus as IconPlus9, IconPlayerPlay as IconPlayerPlay5 } from "@tabler/icons-react";
26291
26331
  var CHAIN_STATUSES2 = ["open", "passed", "rejected", "executed", "closed", "execution_failed", "veto_timelock"];
26292
26332
  var isChainStatus2 = (value) => CHAIN_STATUSES2.includes(value);
@@ -26522,7 +26562,7 @@ var ProposalCreateFlowDetail = ({ inputs, editor, block, runtime, updateRuntime,
26522
26562
  border: `1px solid ${statusColor2[currentStatus] || "#333"}`
26523
26563
  }
26524
26564
  },
26525
- /* @__PURE__ */ React249.createElement(Stack169, { gap: "xs" }, /* @__PURE__ */ React249.createElement(Group94, { justify: "space-between" }, /* @__PURE__ */ React249.createElement(Text142, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, "Proposal #", proposalId), /* @__PURE__ */ React249.createElement(Badge42, { color: statusColor2[currentStatus], variant: "filled", size: "sm", radius: "sm" }, currentStatus.replace(/_/g, " ").toUpperCase())), proposalTitle && /* @__PURE__ */ React249.createElement(Text142, { size: "sm", style: { color: "#adb5bd" } }, proposalTitle))
26565
+ /* @__PURE__ */ React249.createElement(Stack169, { gap: "xs" }, /* @__PURE__ */ React249.createElement(Group94, { justify: "space-between" }, /* @__PURE__ */ React249.createElement(Text142, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, "Proposal #", proposalId), /* @__PURE__ */ React249.createElement(Badge43, { color: statusColor2[currentStatus], variant: "filled", size: "sm", radius: "sm" }, currentStatus.replace(/_/g, " ").toUpperCase())), proposalTitle && /* @__PURE__ */ React249.createElement(Text142, { size: "sm", style: { color: "#adb5bd" } }, proposalTitle))
26526
26566
  ), isProposalCreated && /* @__PURE__ */ React249.createElement(Card23, { padding: "md", radius: "md", withBorder: true, style: { borderColor: "var(--mantine-color-green-6)" } }, /* @__PURE__ */ React249.createElement(Text142, { fw: 500, size: "sm", c: "green" }, "Proposal Created Successfully"), /* @__PURE__ */ React249.createElement(Text142, { size: "sm", c: "dimmed" }, "Your proposal has been created and is now open for voting.")), currentStatus === "passed" && /* @__PURE__ */ React249.createElement(
26527
26567
  Button44,
26528
26568
  {
@@ -33133,7 +33173,7 @@ var EntitySigningSetup = ({ opened, onClose, entityDid, entityName, onSetup }) =
33133
33173
 
33134
33174
  // src/mantine/components/FlowPermissionsPanel.tsx
33135
33175
  import React298, { useState as useState136, useEffect as useEffect113, useMemo as useMemo121 } from "react";
33136
- import { Stack as Stack198, Text as Text169, Paper as Paper18, Group as Group109, Badge as Badge43, Button as Button54, ActionIcon as ActionIcon38, Loader as Loader54, Alert as Alert54, Divider as Divider29 } from "@mantine/core";
33176
+ import { Stack as Stack198, Text as Text169, Paper as Paper18, Group as Group109, Badge as Badge44, Button as Button54, ActionIcon as ActionIcon38, Loader as Loader54, Alert as Alert54, Divider as Divider29 } from "@mantine/core";
33137
33177
  import { IconPlus as IconPlus11, IconTrash as IconTrash11, IconShieldCheck as IconShieldCheck16, IconUser as IconUser14, IconRobot as IconRobot4, IconBuilding as IconBuilding2 } from "@tabler/icons-react";
33138
33178
  var FlowPermissionsPanel = ({ editor, entityDid, entityName, onGrantPermission, onRevokePermission, getUserDisplayName }) => {
33139
33179
  const [delegations, setDelegations] = useState136([]);
@@ -33210,12 +33250,12 @@ var FlowPermissionsPanel = ({ editor, entityDid, entityName, onGrantPermission,
33210
33250
  if (date < /* @__PURE__ */ new Date()) return "Expired";
33211
33251
  return date.toLocaleDateString();
33212
33252
  };
33213
- return /* @__PURE__ */ React298.createElement(Stack198, { gap: "md" }, /* @__PURE__ */ React298.createElement(Stack198, { gap: "xs" }, /* @__PURE__ */ React298.createElement(Text169, { fw: 600, size: "sm" }, "Root Authority"), /* @__PURE__ */ React298.createElement(Paper18, { p: "sm", withBorder: true }, /* @__PURE__ */ React298.createElement(Group109, { gap: "xs" }, /* @__PURE__ */ React298.createElement(IconShieldCheck16, { size: 20, color: "var(--mantine-color-green-6)" }), /* @__PURE__ */ React298.createElement(Stack198, { gap: 2, style: { flex: 1 } }, /* @__PURE__ */ React298.createElement(Text169, { size: "sm", fw: 500 }, entityName || entityDid), /* @__PURE__ */ React298.createElement(Text169, { size: "xs", c: "dimmed" }, rootDelegation ? `Granted: ${new Date(rootDelegation.createdAt).toLocaleDateString()}` : "Root capability not set up")), /* @__PURE__ */ React298.createElement(Badge43, { color: "green", variant: "light" }, "Entity")))), /* @__PURE__ */ React298.createElement(Divider29, { label: "Delegated Permissions", labelPosition: "center" }), loading ? /* @__PURE__ */ React298.createElement(Group109, { justify: "center", py: "xl" }, /* @__PURE__ */ React298.createElement(Loader54, { size: "sm" })) : delegations.length === 0 ? /* @__PURE__ */ React298.createElement(Alert54, { color: "gray", variant: "light" }, /* @__PURE__ */ React298.createElement(Text169, { size: "sm" }, "No permissions have been granted yet.")) : /* @__PURE__ */ React298.createElement(Stack198, { gap: "xs" }, delegations.map(({ delegation, displayName, type }) => /* @__PURE__ */ React298.createElement(Paper18, { key: delegation.cid, p: "sm", withBorder: true }, /* @__PURE__ */ React298.createElement(Group109, { justify: "space-between" }, /* @__PURE__ */ React298.createElement(Group109, { gap: "xs" }, getIcon2(type), /* @__PURE__ */ React298.createElement(Stack198, { gap: 2 }, /* @__PURE__ */ React298.createElement(Text169, { size: "sm", fw: 500 }, displayName), /* @__PURE__ */ React298.createElement(Text169, { size: "xs", c: "dimmed" }, formatCapabilities(delegation.capabilities)), /* @__PURE__ */ React298.createElement(Group109, { gap: "xs" }, /* @__PURE__ */ React298.createElement(Text169, { size: "xs", c: "dimmed" }, "Expires: ", formatExpiration(delegation.expiration)), /* @__PURE__ */ React298.createElement(Text169, { size: "xs", c: "dimmed" }, "\u2022"), /* @__PURE__ */ React298.createElement(Text169, { size: "xs", c: "dimmed" }, "Granted by: ", delegation.issuerDid === entityDid ? "Entity" : delegation.issuerDid.slice(-8))))), /* @__PURE__ */ React298.createElement(ActionIcon38, { color: "red", variant: "subtle", onClick: () => handleRevoke(delegation.cid), loading: revoking === delegation.cid, disabled: !!revoking }, /* @__PURE__ */ React298.createElement(IconTrash11, { size: 16 })))))), /* @__PURE__ */ React298.createElement(Button54, { leftSection: /* @__PURE__ */ React298.createElement(IconPlus11, { size: 16 }), variant: "light", onClick: onGrantPermission }, "Grant Permission"));
33253
+ return /* @__PURE__ */ React298.createElement(Stack198, { gap: "md" }, /* @__PURE__ */ React298.createElement(Stack198, { gap: "xs" }, /* @__PURE__ */ React298.createElement(Text169, { fw: 600, size: "sm" }, "Root Authority"), /* @__PURE__ */ React298.createElement(Paper18, { p: "sm", withBorder: true }, /* @__PURE__ */ React298.createElement(Group109, { gap: "xs" }, /* @__PURE__ */ React298.createElement(IconShieldCheck16, { size: 20, color: "var(--mantine-color-green-6)" }), /* @__PURE__ */ React298.createElement(Stack198, { gap: 2, style: { flex: 1 } }, /* @__PURE__ */ React298.createElement(Text169, { size: "sm", fw: 500 }, entityName || entityDid), /* @__PURE__ */ React298.createElement(Text169, { size: "xs", c: "dimmed" }, rootDelegation ? `Granted: ${new Date(rootDelegation.createdAt).toLocaleDateString()}` : "Root capability not set up")), /* @__PURE__ */ React298.createElement(Badge44, { color: "green", variant: "light" }, "Entity")))), /* @__PURE__ */ React298.createElement(Divider29, { label: "Delegated Permissions", labelPosition: "center" }), loading ? /* @__PURE__ */ React298.createElement(Group109, { justify: "center", py: "xl" }, /* @__PURE__ */ React298.createElement(Loader54, { size: "sm" })) : delegations.length === 0 ? /* @__PURE__ */ React298.createElement(Alert54, { color: "gray", variant: "light" }, /* @__PURE__ */ React298.createElement(Text169, { size: "sm" }, "No permissions have been granted yet.")) : /* @__PURE__ */ React298.createElement(Stack198, { gap: "xs" }, delegations.map(({ delegation, displayName, type }) => /* @__PURE__ */ React298.createElement(Paper18, { key: delegation.cid, p: "sm", withBorder: true }, /* @__PURE__ */ React298.createElement(Group109, { justify: "space-between" }, /* @__PURE__ */ React298.createElement(Group109, { gap: "xs" }, getIcon2(type), /* @__PURE__ */ React298.createElement(Stack198, { gap: 2 }, /* @__PURE__ */ React298.createElement(Text169, { size: "sm", fw: 500 }, displayName), /* @__PURE__ */ React298.createElement(Text169, { size: "xs", c: "dimmed" }, formatCapabilities(delegation.capabilities)), /* @__PURE__ */ React298.createElement(Group109, { gap: "xs" }, /* @__PURE__ */ React298.createElement(Text169, { size: "xs", c: "dimmed" }, "Expires: ", formatExpiration(delegation.expiration)), /* @__PURE__ */ React298.createElement(Text169, { size: "xs", c: "dimmed" }, "\u2022"), /* @__PURE__ */ React298.createElement(Text169, { size: "xs", c: "dimmed" }, "Granted by: ", delegation.issuerDid === entityDid ? "Entity" : delegation.issuerDid.slice(-8))))), /* @__PURE__ */ React298.createElement(ActionIcon38, { color: "red", variant: "subtle", onClick: () => handleRevoke(delegation.cid), loading: revoking === delegation.cid, disabled: !!revoking }, /* @__PURE__ */ React298.createElement(IconTrash11, { size: 16 })))))), /* @__PURE__ */ React298.createElement(Button54, { leftSection: /* @__PURE__ */ React298.createElement(IconPlus11, { size: 16 }), variant: "light", onClick: onGrantPermission }, "Grant Permission"));
33214
33254
  };
33215
33255
 
33216
33256
  // src/mantine/components/GrantPermissionModal.tsx
33217
33257
  import React299, { useState as useState137, useCallback as useCallback110 } from "react";
33218
- import { Modal as Modal4, Stack as Stack199, Text as Text170, TextInput as TextInput9, Button as Button55, Group as Group110, Radio as Radio5, Checkbox as Checkbox13, Alert as Alert55, Paper as Paper19, Loader as Loader55, Badge as Badge44, ActionIcon as ActionIcon39, Divider as Divider30, NumberInput as NumberInput3 } from "@mantine/core";
33258
+ import { Modal as Modal4, Stack as Stack199, Text as Text170, TextInput as TextInput9, Button as Button55, Group as Group110, Radio as Radio5, Checkbox as Checkbox13, Alert as Alert55, Paper as Paper19, Loader as Loader55, Badge as Badge45, ActionIcon as ActionIcon39, Divider as Divider30, NumberInput as NumberInput3 } from "@mantine/core";
33219
33259
  import { IconSearch as IconSearch8, IconUser as IconUser15, IconRobot as IconRobot5, IconX as IconX14, IconShieldPlus as IconShieldPlus4 } from "@tabler/icons-react";
33220
33260
  var GrantPermissionModal = ({ opened, onClose, flowUri, blocks, targetBlockId, searchUsers, getOracles, onGrant }) => {
33221
33261
  const singleBlockMode = !!targetBlockId || blocks.length === 1;
@@ -33351,9 +33391,9 @@ var GrantPermissionModal = ({ opened, onClose, flowUri, blocks, targetBlockId, s
33351
33391
  onChange: (e) => setSearchQuery(e.currentTarget.value),
33352
33392
  onKeyDown: (e) => e.key === "Enter" && handleSearch()
33353
33393
  }
33354
- ), selectedRecipient ? /* @__PURE__ */ React299.createElement(Paper19, { p: "sm", withBorder: true }, /* @__PURE__ */ React299.createElement(Group110, { justify: "space-between" }, /* @__PURE__ */ React299.createElement(Group110, { gap: "xs" }, recipientType === "oracle" ? /* @__PURE__ */ React299.createElement(IconRobot5, { size: 16 }) : /* @__PURE__ */ React299.createElement(IconUser15, { size: 16 }), /* @__PURE__ */ React299.createElement(Text170, { size: "sm" }, selectedRecipient.displayName), /* @__PURE__ */ React299.createElement(Badge44, { size: "xs", variant: "light" }, selectedRecipient.did.slice(-12))), /* @__PURE__ */ React299.createElement(ActionIcon39, { size: "sm", variant: "subtle", onClick: () => setSelectedRecipient(null) }, /* @__PURE__ */ React299.createElement(IconX14, { size: 14 })))) : searchResults.length > 0 ? /* @__PURE__ */ React299.createElement(Paper19, { p: "xs", withBorder: true, style: { maxHeight: 150, overflow: "auto" } }, /* @__PURE__ */ React299.createElement(Stack199, { gap: 4 }, searchResults.map((result) => /* @__PURE__ */ React299.createElement(Button55, { key: result.did, variant: "subtle", size: "sm", justify: "flex-start", onClick: () => setSelectedRecipient(result) }, result.displayName)))) : null) : /* @__PURE__ */ React299.createElement(TextInput9, { label: "Recipient DID", placeholder: "did:ixo:...", value: manualDid, onChange: (e) => setManualDid(e.currentTarget.value) }), /* @__PURE__ */ React299.createElement(Divider30, null), /* @__PURE__ */ React299.createElement(Stack199, { gap: "xs" }, /* @__PURE__ */ React299.createElement(Text170, { size: "sm", fw: 500 }, "Permission Scope"), singleBlockMode && fixedBlock ? (
33394
+ ), selectedRecipient ? /* @__PURE__ */ React299.createElement(Paper19, { p: "sm", withBorder: true }, /* @__PURE__ */ React299.createElement(Group110, { justify: "space-between" }, /* @__PURE__ */ React299.createElement(Group110, { gap: "xs" }, recipientType === "oracle" ? /* @__PURE__ */ React299.createElement(IconRobot5, { size: 16 }) : /* @__PURE__ */ React299.createElement(IconUser15, { size: 16 }), /* @__PURE__ */ React299.createElement(Text170, { size: "sm" }, selectedRecipient.displayName), /* @__PURE__ */ React299.createElement(Badge45, { size: "xs", variant: "light" }, selectedRecipient.did.slice(-12))), /* @__PURE__ */ React299.createElement(ActionIcon39, { size: "sm", variant: "subtle", onClick: () => setSelectedRecipient(null) }, /* @__PURE__ */ React299.createElement(IconX14, { size: 14 })))) : searchResults.length > 0 ? /* @__PURE__ */ React299.createElement(Paper19, { p: "xs", withBorder: true, style: { maxHeight: 150, overflow: "auto" } }, /* @__PURE__ */ React299.createElement(Stack199, { gap: 4 }, searchResults.map((result) => /* @__PURE__ */ React299.createElement(Button55, { key: result.did, variant: "subtle", size: "sm", justify: "flex-start", onClick: () => setSelectedRecipient(result) }, result.displayName)))) : null) : /* @__PURE__ */ React299.createElement(TextInput9, { label: "Recipient DID", placeholder: "did:ixo:...", value: manualDid, onChange: (e) => setManualDid(e.currentTarget.value) }), /* @__PURE__ */ React299.createElement(Divider30, null), /* @__PURE__ */ React299.createElement(Stack199, { gap: "xs" }, /* @__PURE__ */ React299.createElement(Text170, { size: "sm", fw: 500 }, "Permission Scope"), singleBlockMode && fixedBlock ? (
33355
33395
  // Single block mode: show fixed block info
33356
- /* @__PURE__ */ React299.createElement(Paper19, { p: "sm", withBorder: true }, /* @__PURE__ */ React299.createElement(Group110, { gap: "xs" }, /* @__PURE__ */ React299.createElement(Badge44, { variant: "light", color: "blue" }, fixedBlock.type), /* @__PURE__ */ React299.createElement(Text170, { size: "sm" }, fixedBlock.name || `Block ${fixedBlock.id.slice(-8)}`)), /* @__PURE__ */ React299.createElement(Text170, { size: "xs", c: "dimmed", mt: "xs" }, "Permission will be granted to execute this specific block."))
33396
+ /* @__PURE__ */ React299.createElement(Paper19, { p: "sm", withBorder: true }, /* @__PURE__ */ React299.createElement(Group110, { gap: "xs" }, /* @__PURE__ */ React299.createElement(Badge45, { variant: "light", color: "blue" }, fixedBlock.type), /* @__PURE__ */ React299.createElement(Text170, { size: "sm" }, fixedBlock.name || `Block ${fixedBlock.id.slice(-8)}`)), /* @__PURE__ */ React299.createElement(Text170, { size: "xs", c: "dimmed", mt: "xs" }, "Permission will be granted to execute this specific block."))
33357
33397
  ) : (
33358
33398
  // Multi-block mode: show scope selection
33359
33399
  /* @__PURE__ */ React299.createElement(React299.Fragment, null, /* @__PURE__ */ React299.createElement(Radio5.Group, { value: scopeType, onChange: (v) => setScopeType(v) }, /* @__PURE__ */ React299.createElement(Stack199, { gap: "xs" }, /* @__PURE__ */ React299.createElement(Radio5, { value: "full", label: "Full flow access (can execute any block)" }), /* @__PURE__ */ React299.createElement(Radio5, { value: "blocks", label: "Specific blocks only" }))), scopeType === "blocks" && /* @__PURE__ */ React299.createElement(Paper19, { p: "sm", withBorder: true, style: { maxHeight: 150, overflow: "auto" } }, /* @__PURE__ */ React299.createElement(Stack199, { gap: "xs" }, blocks.map((block) => /* @__PURE__ */ React299.createElement(
@@ -33492,4 +33532,4 @@ export {
33492
33532
  getExtraSlashMenuItems,
33493
33533
  useCreateIxoEditor
33494
33534
  };
33495
- //# sourceMappingURL=chunk-EDCITCO5.mjs.map
33535
+ //# sourceMappingURL=chunk-TAYMLU7F.mjs.map