@ixo/editor 2.17.0 → 2.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -888,10 +888,12 @@ function ConditionRow({ condition, availableBlocks, onUpdate, onDelete }) {
888
888
  }
889
889
 
890
890
  // src/mantine/components/Base/BaseButton.tsx
891
- import { Button as Button2 } from "@mantine/core";
891
+ import { Button as Button2, Box } from "@mantine/core";
892
+ import { useHover } from "@mantine/hooks";
892
893
  import React8 from "react";
893
894
  function BaseButton({ disabled, onClick, ...props }) {
894
- return /* @__PURE__ */ React8.createElement(
895
+ const { hovered, ref } = useHover();
896
+ return /* @__PURE__ */ React8.createElement(Box, { ref, style: { display: "inline-block" } }, /* @__PURE__ */ React8.createElement(
895
897
  Button2,
896
898
  {
897
899
  onClick,
@@ -906,20 +908,17 @@ function BaseButton({ disabled, onClick, ...props }) {
906
908
  opacity: disabled ? 0.6 : 1,
907
909
  cursor: disabled ? "default" : "pointer",
908
910
  pointerEvents: disabled ? "none" : "auto",
909
- transition: "opacity 0.15s"
911
+ transition: "opacity 0.15s, background-color 0.15s",
912
+ backgroundColor: hovered && !disabled ? "white" : void 0
910
913
  },
911
914
  styles: {
912
915
  root: {
913
- color: "#fff",
914
- "&:hover": {
915
- backgroundColor: disabled ? void 0 : "white"
916
- },
917
- transition: "background-color 0.15s"
916
+ color: "#fff"
918
917
  }
919
918
  },
920
919
  ...props
921
920
  }
922
- );
921
+ ));
923
922
  }
924
923
 
925
924
  // src/mantine/components/ConditionsTab.tsx
@@ -1213,7 +1212,7 @@ var GeneralTab = ({
1213
1212
  };
1214
1213
 
1215
1214
  // src/mantine/components/Layouts/BaseRightPanelLayout.tsx
1216
- import { Box, Center, CloseButton, Flex, Paper, Title } from "@mantine/core";
1215
+ import { Box as Box2, Center, CloseButton, Flex, Paper, Title } from "@mantine/core";
1217
1216
  import { IconSettings } from "@tabler/icons-react";
1218
1217
  import React14 from "react";
1219
1218
  function BaseRightPanelLayout({ title, isTemplate = true, captionContent, onClose, children }) {
@@ -1247,7 +1246,7 @@ function BaseRightPanelLayout({ title, isTemplate = true, captionContent, onClos
1247
1246
  /* @__PURE__ */ React14.createElement(Title, { px: 40, mb: "md", order: 3 }, title),
1248
1247
  captionContent,
1249
1248
  /* @__PURE__ */ React14.createElement(
1250
- Box,
1249
+ Box2,
1251
1250
  {
1252
1251
  px: 40,
1253
1252
  style: {
@@ -1717,7 +1716,7 @@ import React22, { useCallback as useCallback9 } from "react";
1717
1716
 
1718
1717
  // src/mantine/blocks/list/template/GeneralTab.tsx
1719
1718
  import React21, { useState as useState6 } from "react";
1720
- import { Stack as Stack9, Card as Card2, Group as Group4, Text as Text6, Box as Box2, Button as Button3, Switch as Switch3, Accordion } from "@mantine/core";
1719
+ import { Stack as Stack9, Card as Card2, Group as Group4, Text as Text6, Box as Box3, Button as Button3, Switch as Switch3, Accordion } from "@mantine/core";
1721
1720
 
1722
1721
  // src/mantine/blocks/list/linked_resources/config.ts
1723
1722
  var linkedResourcesMetadata = {
@@ -2616,7 +2615,7 @@ var GeneralTab2 = ({ initialConfig, onSave }) => {
2616
2615
  onClick: () => handleTypeSelect(listType.id)
2617
2616
  },
2618
2617
  /* @__PURE__ */ React21.createElement(Group4, { gap: "md", align: "flex-start" }, /* @__PURE__ */ React21.createElement(
2619
- Box2,
2618
+ Box3,
2620
2619
  {
2621
2620
  style: {
2622
2621
  width: 48,
@@ -2729,11 +2728,11 @@ var ListTemplateView = ({ editor, block }) => {
2729
2728
 
2730
2729
  // src/mantine/blocks/list/flow/ListFlowView.tsx
2731
2730
  import React48, { useState as useState10, useEffect as useEffect7, useMemo as useMemo8, useCallback as useCallback10 } from "react";
2732
- import { Stack as Stack30, Text as Text29, ActionIcon as ActionIcon2, Loader as Loader2, Center as Center4, Flex as Flex21, Title as Title3, Collapse as Collapse2, Tooltip as Tooltip5 } from "@mantine/core";
2731
+ import { Stack as Stack30, Text as Text29, ActionIcon as ActionIcon2, Loader as Loader2, Center as Center4, Flex as Flex20, Title as Title3, Collapse as Collapse2, Tooltip as Tooltip5 } from "@mantine/core";
2733
2732
 
2734
2733
  // src/mantine/blocks/list/linked_resources/ResourcesList.tsx
2735
2734
  import React26 from "react";
2736
- import { Stack as Stack11, Text as Text8, Box as Box3, Flex as Flex3 } from "@mantine/core";
2735
+ import { Stack as Stack11, Text as Text8, Box as Box4, Flex as Flex3 } from "@mantine/core";
2737
2736
  import { IconPdf, IconFileTypeHtml, IconJson, IconPhoto, IconFileText as IconFileText2, IconFile } from "@tabler/icons-react";
2738
2737
 
2739
2738
  // src/mantine/blocks/list/ListItemContainer.tsx
@@ -2821,7 +2820,7 @@ var ResourcesList = ({ items, isMultiSelect, isItemChecked, onItemCheck, config:
2821
2820
  const title = item.description || item.id || `Resource ${index + 1}`;
2822
2821
  const isChecked = isItemChecked?.(item.id);
2823
2822
  return /* @__PURE__ */ React26.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.id, !isChecked), key: item.id || index, isChecked: !!isChecked }, /* @__PURE__ */ React26.createElement(Flex3, { align: "center", gap: "sm" }, /* @__PURE__ */ React26.createElement(
2824
- Box3,
2823
+ Box4,
2825
2824
  {
2826
2825
  style: {
2827
2826
  width: 32,
@@ -2845,12 +2844,12 @@ var ResourcesList = ({ items, isMultiSelect, isItemChecked, onItemCheck, config:
2845
2844
  }
2846
2845
  )));
2847
2846
  });
2848
- return /* @__PURE__ */ React26.createElement(Box3, { flex: 1 }, /* @__PURE__ */ React26.createElement(Stack11, null, rows));
2847
+ return /* @__PURE__ */ React26.createElement(Box4, { flex: 1 }, /* @__PURE__ */ React26.createElement(Stack11, null, rows));
2849
2848
  };
2850
2849
 
2851
2850
  // src/mantine/blocks/list/assets/AssetsList.tsx
2852
2851
  import React27 from "react";
2853
- import { Text as Text9, Box as Box4, Stack as Stack12, Flex as Flex4, Image } from "@mantine/core";
2852
+ import { Text as Text9, Box as Box5, Stack as Stack12, Flex as Flex4, Image } from "@mantine/core";
2854
2853
 
2855
2854
  // src/core/lib/formatters.ts
2856
2855
  var formatNumber = (value) => typeof value === "number" ? value.toLocaleString() : "-";
@@ -2872,12 +2871,12 @@ var AssetsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2872
2871
  const isChecked = isItemChecked?.(asset.did);
2873
2872
  return /* @__PURE__ */ React27.createElement(ListItemContainer, { onClick: () => onItemCheck?.(asset.did, !isChecked), key: asset.did, isChecked: !!isChecked }, /* @__PURE__ */ React27.createElement(Flex4, { align: "center", gap: "sm" }, /* @__PURE__ */ React27.createElement(Image, { radius: 16, w: 32, h: 32, src: asset.icon }), /* @__PURE__ */ React27.createElement(Stack12, { gap: 0 }, /* @__PURE__ */ React27.createElement(Text9, { size: "sm" }, asset.name || "-", " ", asset.alsoKnownAs || "-"), /* @__PURE__ */ React27.createElement(Text9, { size: "sm", c: "dimmed" }, asset.issuer || "-"))), /* @__PURE__ */ React27.createElement(Flex4, { align: "center", gap: "md" }, /* @__PURE__ */ React27.createElement(Stack12, { ta: "right", gap: 0 }, /* @__PURE__ */ React27.createElement(Text9, { size: "sm" }, asset.currency || "", formatNumber(asset.price)), /* @__PURE__ */ React27.createElement(Text9, { size: "sm", c: "dimmed" }, asset.owned ? "Owned" : "Not Owned")), isMultiSelect && /* @__PURE__ */ React27.createElement(ListItemCheckbox, { ariaLabel: `Select asset ${asset.did}`, checked: isItemChecked?.(asset.did), onCheck: (checked) => onItemCheck?.(asset.did, checked) })));
2874
2873
  });
2875
- return /* @__PURE__ */ React27.createElement(Box4, { flex: 1 }, /* @__PURE__ */ React27.createElement(Stack12, null, rows));
2874
+ return /* @__PURE__ */ React27.createElement(Box5, { flex: 1 }, /* @__PURE__ */ React27.createElement(Stack12, null, rows));
2876
2875
  };
2877
2876
 
2878
2877
  // src/mantine/blocks/list/transactions/TransactionsList.tsx
2879
2878
  import React28 from "react";
2880
- import { Text as Text10, Badge, Tooltip as Tooltip3, Box as Box5, Flex as Flex5, Stack as Stack13 } from "@mantine/core";
2879
+ import { Text as Text10, Badge, Tooltip as Tooltip3, Box as Box6, Flex as Flex5, Stack as Stack13 } from "@mantine/core";
2881
2880
  var formatTime = (timeStr) => {
2882
2881
  try {
2883
2882
  const date = new Date(timeStr);
@@ -2905,12 +2904,12 @@ var TransactionsList = ({ items, isMultiSelect, isItemChecked, onItemCheck, conf
2905
2904
  }
2906
2905
  )));
2907
2906
  });
2908
- return /* @__PURE__ */ React28.createElement(Box5, { flex: 1 }, /* @__PURE__ */ React28.createElement(Stack13, null, rows));
2907
+ return /* @__PURE__ */ React28.createElement(Box6, { flex: 1 }, /* @__PURE__ */ React28.createElement(Stack13, null, rows));
2909
2908
  };
2910
2909
 
2911
2910
  // src/mantine/blocks/list/collections/CollectionsList.tsx
2912
2911
  import React29 from "react";
2913
- import { Text as Text11, Box as Box6, Image as Image2, Stack as Stack14, Flex as Flex6 } from "@mantine/core";
2912
+ import { Text as Text11, Box as Box7, Image as Image2, Stack as Stack14, Flex as Flex6 } from "@mantine/core";
2914
2913
  var CollectionsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2915
2914
  if (!items || items.length === 0) {
2916
2915
  return /* @__PURE__ */ React29.createElement(Text11, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No collections found");
@@ -2919,12 +2918,12 @@ var CollectionsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) =>
2919
2918
  const isChecked = isItemChecked?.(item.did);
2920
2919
  return /* @__PURE__ */ React29.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React29.createElement(Flex6, { align: "center", gap: "sm" }, /* @__PURE__ */ React29.createElement(Image2, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React29.createElement(Stack14, { gap: 0 }, /* @__PURE__ */ React29.createElement(Text11, { size: "sm" }, item.name), /* @__PURE__ */ React29.createElement(Text11, { size: "sm", c: "dimmed" }, item.brand))), /* @__PURE__ */ React29.createElement(Flex6, { align: "center", gap: "md" }, /* @__PURE__ */ React29.createElement(Stack14, { ta: "right", gap: 0 }, /* @__PURE__ */ React29.createElement(Text11, { size: "sm" }, item.totalAssets, " Assets"), /* @__PURE__ */ React29.createElement(Text11, { size: "sm", c: "dimmed" }, item.currency, item.price)), isMultiSelect && /* @__PURE__ */ React29.createElement(ListItemCheckbox, { ariaLabel: `Select collection ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
2921
2920
  });
2922
- return /* @__PURE__ */ React29.createElement(Box6, { flex: 1 }, /* @__PURE__ */ React29.createElement(Stack14, null, rows));
2921
+ return /* @__PURE__ */ React29.createElement(Box7, { flex: 1 }, /* @__PURE__ */ React29.createElement(Stack14, null, rows));
2923
2922
  };
2924
2923
 
2925
2924
  // src/mantine/blocks/list/balances/BalancesList.tsx
2926
2925
  import React30 from "react";
2927
- import { Text as Text12, Box as Box7, Stack as Stack15, Flex as Flex7, Avatar, Group as Group6 } from "@mantine/core";
2926
+ import { Text as Text12, Box as Box8, Stack as Stack15, Flex as Flex7, Avatar, Group as Group6 } from "@mantine/core";
2928
2927
 
2929
2928
  // src/core/utils/numbers.ts
2930
2929
  var numberFormatter = (num, digits) => {
@@ -2961,12 +2960,12 @@ var BalancesList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2961
2960
  const isChecked = isItemChecked?.(item.denom);
2962
2961
  return /* @__PURE__ */ React30.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.denom, !isChecked), key: item.denom, isChecked: !!isChecked }, /* @__PURE__ */ React30.createElement(Group6, { gap: 12 }, /* @__PURE__ */ React30.createElement(Avatar, { src: item.tokenImage, size: 40, radius: "xl" }), /* @__PURE__ */ React30.createElement(Stack15, { gap: 4 }, /* @__PURE__ */ React30.createElement(Text12, { size: "sm", fw: 500 }, item.tokenName), item.chainCount > 1 && /* @__PURE__ */ React30.createElement(Group6, { gap: 4 }, /* @__PURE__ */ React30.createElement(Text12, { size: "xs", c: "dimmed" }, item.chainCount, " chains"), /* @__PURE__ */ React30.createElement(Group6, { gap: -4 }, /* @__PURE__ */ React30.createElement(Avatar, { size: 16, radius: "xl", bg: "dimmed" }), /* @__PURE__ */ React30.createElement(Avatar, { size: 16, radius: "xl", bg: "dimmed", ml: -4 }), item.chainCount > 2 && /* @__PURE__ */ React30.createElement(Avatar, { size: 16, radius: "xl", bg: "dimmed", ml: -4 }))))), /* @__PURE__ */ React30.createElement(Flex7, { align: "center", gap: "md" }, /* @__PURE__ */ React30.createElement(Stack15, { gap: 4, align: "flex-end" }, /* @__PURE__ */ React30.createElement(Text12, { size: "sm", fw: 500 }, renderNumber(item.amount)), /* @__PURE__ */ React30.createElement(Text12, { size: "xs", c: "dimmed" }, "$", renderNumber(item.usdAmount))), isMultiSelect && /* @__PURE__ */ React30.createElement(ListItemCheckbox, { ariaLabel: `Select balance ${item.denom}`, checked: isItemChecked?.(item.denom), onCheck: (checked) => onItemCheck?.(item.denom, checked) })));
2963
2962
  });
2964
- return /* @__PURE__ */ React30.createElement(Box7, { flex: 1 }, /* @__PURE__ */ React30.createElement(Stack15, null, rows));
2963
+ return /* @__PURE__ */ React30.createElement(Box8, { flex: 1 }, /* @__PURE__ */ React30.createElement(Stack15, null, rows));
2965
2964
  };
2966
2965
 
2967
2966
  // src/mantine/blocks/list/investments/InvestmentsList.tsx
2968
2967
  import React31 from "react";
2969
- import { Text as Text13, Box as Box8, Image as Image3, Stack as Stack16, Flex as Flex8, Progress } from "@mantine/core";
2968
+ import { Text as Text13, Box as Box9, Image as Image3, Stack as Stack16, Flex as Flex8, Progress } from "@mantine/core";
2970
2969
  var InvestmentsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2971
2970
  if (!items || items.length === 0) {
2972
2971
  return /* @__PURE__ */ React31.createElement(Text13, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No investments found");
@@ -2975,12 +2974,12 @@ var InvestmentsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) =>
2975
2974
  const isChecked = isItemChecked?.(item.did);
2976
2975
  return /* @__PURE__ */ React31.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React31.createElement(Flex8, { align: "center", gap: "sm" }, /* @__PURE__ */ React31.createElement(Image3, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React31.createElement(Stack16, { gap: 0 }, /* @__PURE__ */ React31.createElement(Text13, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React31.createElement(Text13, { size: "sm", c: "dimmed" }, item.brand || "-"))), /* @__PURE__ */ React31.createElement(Flex8, { align: "center", gap: "md" }, /* @__PURE__ */ React31.createElement(Stack16, { ta: "right", gap: 0 }, /* @__PURE__ */ React31.createElement(Flex8, { gap: "5px" }, /* @__PURE__ */ React31.createElement(Text13, { size: "sm" }, item.currency + formatNumber(item.currentAmount)), /* @__PURE__ */ React31.createElement(Text13, { size: "sm", c: "dimmed" }, "/ ", item.currency + formatNumber(item.maxAmount))), /* @__PURE__ */ React31.createElement(Text13, { size: "xs", c: "dimmed" }, /* @__PURE__ */ React31.createElement(Progress, { color: "rgb(0, 255, 157)", radius: "xl", size: "lg", value: item.currentAmount * 100 / item.maxAmount }))), isMultiSelect && /* @__PURE__ */ React31.createElement(ListItemCheckbox, { ariaLabel: `Select investment ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
2977
2976
  });
2978
- return /* @__PURE__ */ React31.createElement(Box8, { flex: 1 }, /* @__PURE__ */ React31.createElement(Stack16, null, rows));
2977
+ return /* @__PURE__ */ React31.createElement(Box9, { flex: 1 }, /* @__PURE__ */ React31.createElement(Stack16, null, rows));
2979
2978
  };
2980
2979
 
2981
2980
  // src/mantine/blocks/list/oracles/OraclesList.tsx
2982
2981
  import React32 from "react";
2983
- import { Text as Text14, Box as Box9, Image as Image4, Stack as Stack17, Flex as Flex9 } from "@mantine/core";
2982
+ import { Text as Text14, Box as Box10, Image as Image4, Stack as Stack17, Flex as Flex9 } from "@mantine/core";
2984
2983
  var OraclesList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2985
2984
  if (!items || items.length === 0) {
2986
2985
  return /* @__PURE__ */ React32.createElement(Text14, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No oracles found");
@@ -2989,12 +2988,12 @@ var OraclesList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2989
2988
  const isChecked = isItemChecked?.(item.did);
2990
2989
  return /* @__PURE__ */ React32.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React32.createElement(Flex9, { align: "center", gap: "sm" }, /* @__PURE__ */ React32.createElement(Image4, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React32.createElement(Stack17, { gap: 0 }, /* @__PURE__ */ React32.createElement(Text14, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React32.createElement(Text14, { size: "sm", c: "dimmed" }, item.brand || "-"))), /* @__PURE__ */ React32.createElement(Flex9, { align: "center", gap: "md" }, /* @__PURE__ */ React32.createElement(Stack17, { ta: "right", gap: 0 }, /* @__PURE__ */ React32.createElement(Text14, { size: "sm" }, item.currency || "-"), /* @__PURE__ */ React32.createElement(Text14, { size: "xs", c: "dimmed" }, item.minPoints, " - ", item.maxPoints, " pts"), /* @__PURE__ */ React32.createElement(Text14, { size: "xs", c: "dimmed" }, item.flowsAmount, " Flows")), isMultiSelect && /* @__PURE__ */ React32.createElement(ListItemCheckbox, { ariaLabel: `Select oracle ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
2991
2990
  });
2992
- return /* @__PURE__ */ React32.createElement(Box9, { flex: 1 }, /* @__PURE__ */ React32.createElement(Stack17, null, rows));
2991
+ return /* @__PURE__ */ React32.createElement(Box10, { flex: 1 }, /* @__PURE__ */ React32.createElement(Stack17, null, rows));
2993
2992
  };
2994
2993
 
2995
2994
  // src/mantine/blocks/list/pods/PODsList.tsx
2996
2995
  import React33 from "react";
2997
- import { Text as Text15, Box as Box10, Image as Image5, Stack as Stack18, Flex as Flex10 } from "@mantine/core";
2996
+ import { Text as Text15, Box as Box11, Image as Image5, Stack as Stack18, Flex as Flex10 } from "@mantine/core";
2998
2997
  var PodsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2999
2998
  if (!items || items.length === 0) {
3000
2999
  return /* @__PURE__ */ React33.createElement(Text15, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No PODs found");
@@ -3003,12 +3002,12 @@ var PodsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3003
3002
  const isChecked = isItemChecked?.(item.did);
3004
3003
  return /* @__PURE__ */ React33.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React33.createElement(Flex10, { align: "center", gap: "sm" }, /* @__PURE__ */ React33.createElement(Image5, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React33.createElement(Stack18, { gap: 0 }, /* @__PURE__ */ React33.createElement(Text15, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React33.createElement(Text15, { size: "sm", c: "dimmed" }, item.startDate, " \u2192 ", item.endDate))), /* @__PURE__ */ React33.createElement(Flex10, { align: "center", gap: "md" }, /* @__PURE__ */ React33.createElement(Stack18, { ta: "right", gap: 0 }, /* @__PURE__ */ React33.createElement(Text15, { size: "sm" }, item.members, " Members"), /* @__PURE__ */ React33.createElement(Text15, { size: "sm", c: "dimmed" }, item.totalProposals, " Proposals")), isMultiSelect && /* @__PURE__ */ React33.createElement(ListItemCheckbox, { ariaLabel: `Select POD ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
3005
3004
  });
3006
- return /* @__PURE__ */ React33.createElement(Box10, { flex: 1 }, /* @__PURE__ */ React33.createElement(Stack18, null, rows));
3005
+ return /* @__PURE__ */ React33.createElement(Box11, { flex: 1 }, /* @__PURE__ */ React33.createElement(Stack18, null, rows));
3007
3006
  };
3008
3007
 
3009
3008
  // src/mantine/blocks/list/proposals/ProposalsList.tsx
3010
3009
  import React34 from "react";
3011
- import { Text as Text16, Box as Box11, Image as Image6, Stack as Stack19, Flex as Flex11, Badge as Badge2 } from "@mantine/core";
3010
+ import { Text as Text16, Box as Box12, Image as Image6, Stack as Stack19, Flex as Flex11, Badge as Badge2 } from "@mantine/core";
3012
3011
  var ProposalsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3013
3012
  if (!items || items.length === 0) {
3014
3013
  return /* @__PURE__ */ React34.createElement(Text16, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No proposals found");
@@ -3017,12 +3016,12 @@ var ProposalsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3017
3016
  const isChecked = isItemChecked?.(item.did);
3018
3017
  return /* @__PURE__ */ React34.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React34.createElement(Flex11, { align: "center", gap: "sm" }, /* @__PURE__ */ React34.createElement(Image6, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React34.createElement(Stack19, { gap: 0 }, /* @__PURE__ */ React34.createElement(Text16, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React34.createElement(Text16, { size: "xs", c: "dimmed" }, item.description || "-"))), /* @__PURE__ */ React34.createElement(Flex11, { align: "center", gap: "md" }, /* @__PURE__ */ React34.createElement(Stack19, { ta: "right", align: "end", gap: 0 }, /* @__PURE__ */ React34.createElement(Badge2, { size: "sm", variant: "light", color: "blue", style: { fontFamily: "monospace", fontSize: "10px" } }, item.status), /* @__PURE__ */ React34.createElement(Text16, { size: "sm", c: "dimmed" }, item.isVotedOn ? "Voted" : "Not voted")), isMultiSelect && /* @__PURE__ */ React34.createElement(ListItemCheckbox, { ariaLabel: `Select proposal ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
3019
3018
  });
3020
- return /* @__PURE__ */ React34.createElement(Box11, { flex: 1 }, /* @__PURE__ */ React34.createElement(Stack19, null, rows));
3019
+ return /* @__PURE__ */ React34.createElement(Box12, { flex: 1 }, /* @__PURE__ */ React34.createElement(Stack19, null, rows));
3021
3020
  };
3022
3021
 
3023
3022
  // src/mantine/blocks/list/requests/RequestsList.tsx
3024
3023
  import React35 from "react";
3025
- import { Text as Text17, Box as Box12, Image as Image7, Stack as Stack20, Flex as Flex12 } from "@mantine/core";
3024
+ import { Text as Text17, Box as Box13, Image as Image7, Stack as Stack20, Flex as Flex12 } from "@mantine/core";
3026
3025
  var RequestsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3027
3026
  if (!items || items.length === 0) {
3028
3027
  return /* @__PURE__ */ React35.createElement(Text17, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No requests found");
@@ -3031,12 +3030,12 @@ var RequestsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3031
3030
  const isChecked = isItemChecked?.(item.did);
3032
3031
  return /* @__PURE__ */ React35.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React35.createElement(Flex12, { align: "center", gap: "sm" }, /* @__PURE__ */ React35.createElement(Image7, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React35.createElement(Stack20, { gap: 0 }, /* @__PURE__ */ React35.createElement(Text17, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React35.createElement(Text17, { size: "sm", c: "dimmed" }, item.brand || "-"))), /* @__PURE__ */ React35.createElement(Flex12, { align: "center", gap: "md" }, /* @__PURE__ */ React35.createElement(Stack20, { ta: "right", gap: 0 }, /* @__PURE__ */ React35.createElement(Text17, { size: "sm", c: "dimmed" }, item.currency || "", item.budget ?? "-"), /* @__PURE__ */ React35.createElement(Text17, { size: "xs", c: "dimmed" }, item.totalApplications ?? 0, " Applications")), isMultiSelect && /* @__PURE__ */ React35.createElement(ListItemCheckbox, { ariaLabel: `Select request ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
3033
3032
  });
3034
- return /* @__PURE__ */ React35.createElement(Box12, { flex: 1 }, /* @__PURE__ */ React35.createElement(Stack20, null, rows));
3033
+ return /* @__PURE__ */ React35.createElement(Box13, { flex: 1 }, /* @__PURE__ */ React35.createElement(Stack20, null, rows));
3035
3034
  };
3036
3035
 
3037
3036
  // src/mantine/blocks/list/members/MembersList.tsx
3038
3037
  import React36 from "react";
3039
- import { Text as Text18, Box as Box13, Image as Image8, Stack as Stack21, Flex as Flex13 } from "@mantine/core";
3038
+ import { Text as Text18, Box as Box14, Image as Image8, Stack as Stack21, Flex as Flex13 } from "@mantine/core";
3040
3039
  var MembersList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3041
3040
  if (!items || items.length === 0) {
3042
3041
  return /* @__PURE__ */ React36.createElement(Text18, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No members found");
@@ -3045,12 +3044,12 @@ var MembersList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3045
3044
  const isChecked = isItemChecked?.(item.did);
3046
3045
  return /* @__PURE__ */ React36.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React36.createElement(Flex13, { align: "center", gap: "sm" }, /* @__PURE__ */ React36.createElement(Image8, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React36.createElement(Stack21, { gap: 0 }, /* @__PURE__ */ React36.createElement(Text18, { size: "sm" }, item.username || "-"), /* @__PURE__ */ React36.createElement(Text18, { size: "xs", c: "dimmed" }, item.address || "-"))), /* @__PURE__ */ React36.createElement(Flex13, { align: "center", gap: "md" }, /* @__PURE__ */ React36.createElement(Stack21, { ta: "right", gap: 0 }, /* @__PURE__ */ React36.createElement(Text18, { size: "sm" }, item.percentage), /* @__PURE__ */ React36.createElement(Text18, { size: "sm", c: "dimmed" }, item.role)), isMultiSelect && /* @__PURE__ */ React36.createElement(ListItemCheckbox, { ariaLabel: `Select member ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
3047
3046
  });
3048
- return /* @__PURE__ */ React36.createElement(Box13, { flex: 1 }, /* @__PURE__ */ React36.createElement(Stack21, null, rows));
3047
+ return /* @__PURE__ */ React36.createElement(Box14, { flex: 1 }, /* @__PURE__ */ React36.createElement(Stack21, null, rows));
3049
3048
  };
3050
3049
 
3051
3050
  // src/mantine/blocks/list/validators/ValidatorsList.tsx
3052
3051
  import React37 from "react";
3053
- import { Text as Text19, Box as Box14, Image as Image9, Stack as Stack22, Flex as Flex14 } from "@mantine/core";
3052
+ import { Text as Text19, Box as Box15, Image as Image9, Stack as Stack22, Flex as Flex14 } from "@mantine/core";
3054
3053
 
3055
3054
  // src/core/lib/validators.ts
3056
3055
  var getDelegatedTokensFromValidator = (validator) => Number(validator?.amount ?? 0);
@@ -3065,12 +3064,12 @@ var ValidatorsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3065
3064
  const isChecked = isItemChecked?.(item.did);
3066
3065
  return /* @__PURE__ */ React37.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React37.createElement(Flex14, { align: "center", gap: "sm" }, /* @__PURE__ */ React37.createElement(Image9, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React37.createElement(Stack22, { gap: 0 }, /* @__PURE__ */ React37.createElement(Text19, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React37.createElement(Text19, { size: "xs", c: "dimmed" }, item.description || "-"))), /* @__PURE__ */ React37.createElement(Flex14, { align: "center", gap: "md" }, /* @__PURE__ */ React37.createElement(Stack22, { ta: "right", gap: 0 }, /* @__PURE__ */ React37.createElement(Text19, { size: "sm" }, numberFormatter(getDisplayDelegatedTokensFromValidator(item), 2), " ", item.currency), /* @__PURE__ */ React37.createElement(Text19, { size: "sm", c: "dimmed" }, item.commission, "% fee"), /* @__PURE__ */ React37.createElement(Text19, { size: "xs", c: "dimmed" }, item.isActive ? "Active" : "Inactive", " \u2022 ", item.isStaked ? "Staked" : "Not staked", " \u2022 ", item.isBonding ? "Bonding" : "Not bonding")), isMultiSelect && /* @__PURE__ */ React37.createElement(ListItemCheckbox, { ariaLabel: `Select validator ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
3067
3066
  });
3068
- return /* @__PURE__ */ React37.createElement(Box14, { flex: 1 }, /* @__PURE__ */ React37.createElement(Stack22, null, rows));
3067
+ return /* @__PURE__ */ React37.createElement(Box15, { flex: 1 }, /* @__PURE__ */ React37.createElement(Stack22, null, rows));
3069
3068
  };
3070
3069
 
3071
3070
  // src/mantine/blocks/list/ListActionsMenu.tsx
3072
3071
  import React38, { useState as useState7 } from "react";
3073
- import { Menu, Text as Text20, ActionIcon, Flex as Flex15, Box as Box15, Collapse, Tooltip as Tooltip4 } from "@mantine/core";
3072
+ import { Menu, Text as Text20, ActionIcon, Flex as Flex15, Box as Box16, Collapse, Tooltip as Tooltip4 } from "@mantine/core";
3074
3073
  import {
3075
3074
  IconArrowDown,
3076
3075
  IconArrowUp,
@@ -3087,7 +3086,7 @@ var SortRow = ({ opt, value, onChange }) => {
3087
3086
  const isDescActive = value?.key === opt.key && value?.direction === "desc";
3088
3087
  const isRowActive = isAscActive || isDescActive;
3089
3088
  return /* @__PURE__ */ React38.createElement(
3090
- Box15,
3089
+ Box16,
3091
3090
  {
3092
3091
  px: "sm",
3093
3092
  py: 6,
@@ -3286,7 +3285,7 @@ var DEFAULT_PAGE_SIZE = 5;
3286
3285
 
3287
3286
  // src/mantine/blocks/list/dao_members/MembersList.tsx
3288
3287
  import React41 from "react";
3289
- import { Text as Text22, Box as Box16, Image as Image10, Stack as Stack23, Flex as Flex16 } from "@mantine/core";
3288
+ import { Text as Text22, Box as Box17, Image as Image10, Stack as Stack23, Flex as Flex16 } from "@mantine/core";
3290
3289
  var DaoMembersList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3291
3290
  if (!items || items.length === 0) {
3292
3291
  return /* @__PURE__ */ React41.createElement(Text22, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No members found");
@@ -3302,12 +3301,12 @@ var DaoMembersList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3302
3301
  }
3303
3302
  )));
3304
3303
  });
3305
- return /* @__PURE__ */ React41.createElement(Box16, { flex: 1 }, /* @__PURE__ */ React41.createElement(Stack23, { gap: "xs" }, rows));
3304
+ return /* @__PURE__ */ React41.createElement(Box17, { flex: 1 }, /* @__PURE__ */ React41.createElement(Stack23, { gap: "xs" }, rows));
3306
3305
  };
3307
3306
 
3308
3307
  // src/mantine/blocks/list/deed_subscriptions/DeedSubscriptionsList.tsx
3309
3308
  import React42 from "react";
3310
- import { Text as Text23, Box as Box17, Image as Image11, Stack as Stack24, Flex as Flex17, Badge as Badge3 } from "@mantine/core";
3309
+ import { Text as Text23, Box as Box18, Image as Image11, Stack as Stack24, Flex as Flex17, Badge as Badge3 } from "@mantine/core";
3311
3310
  import Jazzicon from "react-jazzicon";
3312
3311
  var DeedSubscriptionsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3313
3312
  if (!items || items.length === 0) {
@@ -3330,55 +3329,55 @@ var DeedSubscriptionsList = ({ items, isMultiSelect, isItemChecked, onItemCheck
3330
3329
  return /* @__PURE__ */ React42.createElement(ListItemContainer, { onClick: () => {
3331
3330
  }, key: itemId, isChecked: false, withIcon: false }, /* @__PURE__ */ React42.createElement(Flex17, { align: "center", gap: "sm" }, item.subscriberImage ? /* @__PURE__ */ React42.createElement(Image11, { radius: 16, w: 32, h: 32, src: item.subscriberImage }) : /* @__PURE__ */ React42.createElement(Jazzicon, { diameter: 32, seed: Array.from(itemId ?? "").reduce((acc, char) => acc + char.charCodeAt(0), 0) }), /* @__PURE__ */ React42.createElement(Stack24, { gap: 0 }, /* @__PURE__ */ React42.createElement(Text23, { size: "sm", fw: 500 }, item.subscriberName || "Unknown Subscriber"), /* @__PURE__ */ React42.createElement(Text23, { size: "xs", c: "dimmed", lineClamp: 1 }, "Subscription"))), /* @__PURE__ */ React42.createElement(Flex17, { align: "center", gap: "md" }, /* @__PURE__ */ React42.createElement(Stack24, { align: "end", ta: "right", gap: 0 }, /* @__PURE__ */ React42.createElement(Badge3, { size: "sm", color: getStatusColor2(item.status), variant: "light" }, item.status), /* @__PURE__ */ React42.createElement(Text23, { size: "xs", c: "dimmed" }, new Date(item.subscriptionDate).toLocaleDateString()))));
3332
3331
  });
3333
- return /* @__PURE__ */ React42.createElement(Box17, { flex: 1 }, /* @__PURE__ */ React42.createElement(Stack24, { gap: "xs" }, rows));
3332
+ return /* @__PURE__ */ React42.createElement(Box18, { flex: 1 }, /* @__PURE__ */ React42.createElement(Stack24, { gap: "xs" }, rows));
3334
3333
  };
3335
3334
 
3336
3335
  // src/mantine/blocks/list/ListSelectionPanel.tsx
3337
3336
  import React44, { useState as useState8, useEffect as useEffect6, useMemo as useMemo7 } from "react";
3338
- import { Paper as Paper4, CloseButton as CloseButton2, Stack as Stack26, Alert as Alert3, Text as Text25, Loader, Center as Center3 } from "@mantine/core";
3337
+ import { Paper as Paper4, CloseButton as CloseButton2, Stack as Stack26, Alert as Alert3, Text as Text25, Loader, Center as Center3, Space } from "@mantine/core";
3339
3338
 
3340
3339
  // src/mantine/blocks/list/components/SelectionPanelContent.tsx
3341
3340
  import React43 from "react";
3342
- import { Stack as Stack25, Text as Text24, Title as Title2, Divider as Divider2, Flex as Flex18, Paper as Paper3, Group as Group7 } from "@mantine/core";
3343
- import { useHover } from "@mantine/hooks";
3344
- import { IconArrowRight, IconTarget } from "@tabler/icons-react";
3345
- var SelectionPanelHeader = ({ title, description }) => {
3346
- return /* @__PURE__ */ React43.createElement(Stack25, { gap: "xs" }, /* @__PURE__ */ React43.createElement(Title2, { fw: 400, order: 3 }, title), /* @__PURE__ */ React43.createElement(Text24, { c: "dimmed" }, description));
3347
- };
3348
- var SelectionPromptItem = ({ prompt, onClick }) => {
3349
- return /* @__PURE__ */ React43.createElement(React43.Fragment, null, /* @__PURE__ */ React43.createElement(Flex18, { style: { cursor: "pointer" }, onClick: () => onClick(), gap: 10 }, /* @__PURE__ */ React43.createElement(IconArrowRight, { size: 24, color: "white" }), /* @__PURE__ */ React43.createElement(Text24, null, shortStr(prompt.text, 50, 0))), /* @__PURE__ */ React43.createElement(Divider2, { c: "dimmed", h: 1 }));
3350
- };
3351
- var SelectionPrompts = ({ prompts }) => {
3352
- const handlers = useBlocknoteHandlers();
3353
- if (!prompts || prompts.length === 0) return null;
3354
- return /* @__PURE__ */ React43.createElement(Stack25, { gap: "xs" }, prompts.map((prompt, index) => /* @__PURE__ */ React43.createElement(SelectionPromptItem, { onClick: () => handlers.askCompanion(prompt.text), key: index, prompt })));
3355
- };
3356
- var SelectionActionButton = ({ action, itemId, itemData }) => {
3357
- const { hovered, ref } = useHover();
3358
- const handleClick = () => {
3359
- action.onClick(itemId, itemData);
3360
- };
3341
+ import { Stack as Stack25, Text as Text24, Title as Title2, Divider as Divider2, Paper as Paper3, Group as Group7 } from "@mantine/core";
3342
+ import { useHover as useHover2 } from "@mantine/hooks";
3343
+ import { IconCornerDownRight, IconTarget } from "@tabler/icons-react";
3344
+ var SelectionItemButton = ({ isLast, onClick, children }) => {
3345
+ const { hovered, ref } = useHover2();
3361
3346
  return /* @__PURE__ */ React43.createElement(
3362
3347
  Paper3,
3363
3348
  {
3364
3349
  ref,
3365
- p: "md",
3350
+ py: "sm",
3366
3351
  style: {
3367
3352
  cursor: "pointer",
3353
+ borderRadius: 0,
3368
3354
  transition: "all 0.2s ease",
3369
- backgroundColor: hovered ? "var(--mantine-color-dark-5)" : "var(--mantine-color-dark-6)",
3370
- border: `1px solid ${hovered ? "var(--mantine-color-dark-3)" : "var(--mantine-color-dark-4)"}`,
3371
- transform: hovered ? "translateY(-1px)" : "translateY(0)",
3372
- boxShadow: hovered ? "0 4px 12px rgba(0, 0, 0, 0.15)" : "none"
3355
+ backgroundColor: hovered ? "var(--mantine-color-dark-5)" : "transparent",
3356
+ borderBottom: isLast ? "none" : `1px solid var(--mantine-color-dark-5)`,
3357
+ boxShadow: "none"
3373
3358
  },
3374
- onClick: handleClick
3359
+ onClick
3375
3360
  },
3376
- /* @__PURE__ */ React43.createElement(Group7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React43.createElement(Group7, { gap: "sm" }, /* @__PURE__ */ React43.createElement(IconTarget, { size: 20, color: "var(--mantine-color-gray-3)" }), /* @__PURE__ */ React43.createElement(Text24, { size: "sm", fw: 500, c: "white" }, action.label)), /* @__PURE__ */ React43.createElement(IconArrowRight, { size: 16, color: "var(--mantine-color-gray-4)" }))
3361
+ children
3377
3362
  );
3378
3363
  };
3364
+ var SelectionPromptItem = ({ prompt, onClick, isLast }) => {
3365
+ return /* @__PURE__ */ React43.createElement(SelectionItemButton, { isLast, onClick }, /* @__PURE__ */ React43.createElement(Group7, { px: "xs", gap: "sm" }, /* @__PURE__ */ React43.createElement(IconCornerDownRight, { size: 24, color: "var(--mantine-color-gray-3)" }), /* @__PURE__ */ React43.createElement(Text24, { fz: 14, fw: 500, c: "white" }, shortStr(prompt.text, 50, 0))));
3366
+ };
3367
+ var SelectionPrompts = ({ prompts }) => {
3368
+ const handlers = useBlocknoteHandlers();
3369
+ if (!prompts || prompts.length === 0) return null;
3370
+ return /* @__PURE__ */ React43.createElement(Stack25, { gap: 0 }, prompts.map((prompt, index) => /* @__PURE__ */ React43.createElement(SelectionPromptItem, { onClick: () => handlers.askCompanion(prompt.text), key: index, prompt, isLast: index === prompts.length - 1 })));
3371
+ };
3372
+ var SelectionActionButton = ({ action, itemId, itemData, isLast }) => {
3373
+ const handleClick = () => {
3374
+ action.onClick(itemId, itemData);
3375
+ };
3376
+ return /* @__PURE__ */ React43.createElement(SelectionItemButton, { isLast, onClick: handleClick }, /* @__PURE__ */ React43.createElement(Group7, { px: "xs", gap: "sm" }, /* @__PURE__ */ React43.createElement(IconTarget, { size: 20, color: "var(--mantine-color-gray-3)" }), /* @__PURE__ */ React43.createElement(Text24, { fz: 14, fw: 500, c: "white" }, action.label)));
3377
+ };
3379
3378
  var SelectionActionSectionComponent = ({ section, itemId, itemData }) => {
3380
3379
  if (!section.actions || section.actions.length === 0) return null;
3381
- return /* @__PURE__ */ React43.createElement(Stack25, { gap: "xs" }, /* @__PURE__ */ React43.createElement(Text24, { fw: 500 }, section.title), section.description && /* @__PURE__ */ React43.createElement(Text24, { size: "sm", c: "dimmed" }, section.description), /* @__PURE__ */ React43.createElement(Stack25, { gap: "xs" }, section.actions.map((action) => /* @__PURE__ */ React43.createElement(SelectionActionButton, { key: action.id, action, itemId, itemData }))));
3380
+ return /* @__PURE__ */ React43.createElement(Stack25, { mb: 18, gap: "xs" }, /* @__PURE__ */ React43.createElement(Text24, { fz: 20, fw: 500 }, section.title), section.description && /* @__PURE__ */ React43.createElement(Text24, { size: "sm", c: "dimmed" }, section.description), /* @__PURE__ */ React43.createElement(Stack25, { gap: 0 }, section.actions.map((action, index) => /* @__PURE__ */ React43.createElement(SelectionActionButton, { key: action.id, action, itemId, itemData, isLast: index === section.actions.length - 1 }))));
3382
3381
  };
3383
3382
  var SelectionActionSections = ({ sections, itemId, itemData }) => {
3384
3383
  if (!sections || sections.length === 0) return null;
@@ -3463,58 +3462,22 @@ var ListSelectionPanel = ({ selectedIds, listData, listType, onClose }) => {
3463
3462
  );
3464
3463
  }
3465
3464
  if (!selectedItemId) {
3466
- return /* @__PURE__ */ React44.createElement(
3467
- Paper4,
3468
- {
3469
- p: "md",
3470
- shadow: "sm",
3471
- style: {
3472
- height: "100%",
3473
- display: "flex",
3474
- flexDirection: "column",
3475
- position: "relative"
3476
- }
3477
- },
3478
- /* @__PURE__ */ React44.createElement(
3479
- CloseButton2,
3480
- {
3481
- onClick: handleClose,
3482
- style: {
3483
- position: "absolute",
3484
- top: "1rem",
3485
- right: "1rem",
3486
- zIndex: 1
3487
- }
3488
- }
3489
- ),
3490
- /* @__PURE__ */ React44.createElement(SelectionPanelEmpty, { message: "No item selected" })
3491
- );
3465
+ return /* @__PURE__ */ React44.createElement(BaseRightPanelLayout, { title: "List selection", onClose: handleClose }, /* @__PURE__ */ React44.createElement(SelectionPanelEmpty, { message: "No item selected" }));
3466
+ }
3467
+ if (loading || !itemData) {
3468
+ return /* @__PURE__ */ React44.createElement(BaseRightPanelLayout, { onClose: handleClose, title: "Loading..." }, /* @__PURE__ */ React44.createElement(Center3, { h: 200 }, /* @__PURE__ */ React44.createElement(Loader, null)));
3469
+ }
3470
+ if (error) {
3471
+ return /* @__PURE__ */ React44.createElement(BaseRightPanelLayout, { onClose: handleClose, title: "Error" }, /* @__PURE__ */ React44.createElement(Alert3, { color: "red", title: "Error" }, /* @__PURE__ */ React44.createElement(Text25, { size: "sm" }, error)));
3492
3472
  }
3493
3473
  return /* @__PURE__ */ React44.createElement(
3494
- Paper4,
3474
+ BaseRightPanelLayout,
3495
3475
  {
3496
- p: "md",
3497
- shadow: "sm",
3498
- style: {
3499
- height: "100%",
3500
- display: "flex",
3501
- flexDirection: "column",
3502
- position: "relative"
3503
- }
3476
+ onClose: handleClose,
3477
+ title: panelConfig.title(itemData),
3478
+ captionContent: /* @__PURE__ */ React44.createElement(Text25, { pb: "md", px: "40px" }, panelConfig.description(itemData))
3504
3479
  },
3505
- /* @__PURE__ */ React44.createElement(
3506
- CloseButton2,
3507
- {
3508
- onClick: handleClose,
3509
- style: {
3510
- position: "absolute",
3511
- top: "1rem",
3512
- right: "1rem",
3513
- zIndex: 1
3514
- }
3515
- }
3516
- ),
3517
- loading ? /* @__PURE__ */ React44.createElement(Center3, { h: 200 }, /* @__PURE__ */ React44.createElement(Loader, null)) : error ? /* @__PURE__ */ React44.createElement(Alert3, { color: "red", title: "Error" }, /* @__PURE__ */ React44.createElement(Text25, { size: "sm" }, error)) : itemData ? /* @__PURE__ */ React44.createElement(Stack26, { gap: "md", style: { flex: 1 } }, /* @__PURE__ */ React44.createElement(SelectionPanelHeader, { title: panelConfig.title(itemData), description: panelConfig.description(itemData) }), panelConfig?.image && /* @__PURE__ */ React44.createElement(
3480
+ /* @__PURE__ */ React44.createElement(Stack26, { gap: "md", style: { flex: 1 } }, panelConfig?.image && /* @__PURE__ */ React44.createElement(
3518
3481
  "img",
3519
3482
  {
3520
3483
  src: panelConfig?.image(itemData),
@@ -3526,36 +3489,36 @@ var ListSelectionPanel = ({ selectedIds, listData, listType, onClose }) => {
3526
3489
  objectFit: "cover"
3527
3490
  }
3528
3491
  }
3529
- ), /* @__PURE__ */ React44.createElement(SelectionPrompts, { prompts: panelConfig.prompts(itemData) }), /* @__PURE__ */ React44.createElement(SelectionActionSections, { sections: panelConfig.actionSections(itemData), itemId: selectedItemId, itemData })) : /* @__PURE__ */ React44.createElement(SelectionPanelEmpty, { message: "Failed to load item details" })
3492
+ ), /* @__PURE__ */ React44.createElement(SelectionPrompts, { prompts: panelConfig.prompts(itemData) }), /* @__PURE__ */ React44.createElement(Space, { h: 12 }), /* @__PURE__ */ React44.createElement(SelectionActionSections, { sections: panelConfig.actionSections(itemData), itemId: selectedItemId, itemData }))
3530
3493
  );
3531
3494
  };
3532
3495
 
3533
3496
  // src/mantine/blocks/list/projects/ProjectsList.tsx
3534
3497
  import React45 from "react";
3535
- import { Text as Text26, Box as Box18, Image as Image12, Stack as Stack27, Flex as Flex19 } from "@mantine/core";
3498
+ import { Text as Text26, Box as Box19, Image as Image12, Stack as Stack27, Flex as Flex18 } from "@mantine/core";
3536
3499
  var ProjectsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3537
3500
  if (!items || items.length === 0) {
3538
3501
  return /* @__PURE__ */ React45.createElement(Text26, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No Projects found");
3539
3502
  }
3540
3503
  const rows = items.map((item) => {
3541
3504
  const isChecked = isItemChecked?.(item.did);
3542
- return /* @__PURE__ */ React45.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React45.createElement(Flex19, { align: "center", gap: "sm" }, /* @__PURE__ */ React45.createElement(Image12, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React45.createElement(Stack27, { gap: 0 }, /* @__PURE__ */ React45.createElement(Text26, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React45.createElement(Text26, { size: "sm", c: "dimmed" }, shortStr(item.description, 50, 0) || "-"))), /* @__PURE__ */ React45.createElement(Flex19, { align: "center", gap: "md" }, isMultiSelect && /* @__PURE__ */ React45.createElement(ListItemCheckbox, { ariaLabel: `Select project ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
3505
+ return /* @__PURE__ */ React45.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React45.createElement(Flex18, { align: "center", gap: "sm" }, /* @__PURE__ */ React45.createElement(Image12, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React45.createElement(Stack27, { gap: 0 }, /* @__PURE__ */ React45.createElement(Text26, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React45.createElement(Text26, { size: "sm", c: "dimmed" }, shortStr(item.description, 50, 0) || "-"))), /* @__PURE__ */ React45.createElement(Flex18, { align: "center", gap: "md" }, isMultiSelect && /* @__PURE__ */ React45.createElement(ListItemCheckbox, { ariaLabel: `Select project ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
3543
3506
  });
3544
- return /* @__PURE__ */ React45.createElement(Box18, { flex: 1 }, /* @__PURE__ */ React45.createElement(Stack27, null, rows));
3507
+ return /* @__PURE__ */ React45.createElement(Box19, { flex: 1 }, /* @__PURE__ */ React45.createElement(Stack27, null, rows));
3545
3508
  };
3546
3509
 
3547
3510
  // src/mantine/blocks/list/daos/DaosList.tsx
3548
3511
  import React46 from "react";
3549
- import { Text as Text27, Box as Box19, Image as Image13, Stack as Stack28, Flex as Flex20 } from "@mantine/core";
3512
+ import { Text as Text27, Box as Box20, Image as Image13, Stack as Stack28, Flex as Flex19 } from "@mantine/core";
3550
3513
  var DaosList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3551
3514
  if (!items || items.length === 0) {
3552
3515
  return /* @__PURE__ */ React46.createElement(Text27, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No Daos found");
3553
3516
  }
3554
3517
  const rows = items.map((item) => {
3555
3518
  const isChecked = isItemChecked?.(item.did);
3556
- return /* @__PURE__ */ React46.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React46.createElement(Flex20, { align: "center", gap: "sm" }, /* @__PURE__ */ React46.createElement(Image13, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React46.createElement(Stack28, { gap: 0 }, /* @__PURE__ */ React46.createElement(Text27, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React46.createElement(Text27, { size: "sm", c: "dimmed" }, shortStr(item.description, 50, 0) || "-"))), /* @__PURE__ */ React46.createElement(Flex20, { align: "center", gap: "md" }, isMultiSelect && /* @__PURE__ */ React46.createElement(ListItemCheckbox, { ariaLabel: `Select DAO ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
3519
+ return /* @__PURE__ */ React46.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React46.createElement(Flex19, { align: "center", gap: "sm" }, /* @__PURE__ */ React46.createElement(Image13, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React46.createElement(Stack28, { gap: 0 }, /* @__PURE__ */ React46.createElement(Text27, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React46.createElement(Text27, { size: "sm", c: "dimmed" }, shortStr(item.description, 50, 0) || "-"))), /* @__PURE__ */ React46.createElement(Flex19, { align: "center", gap: "md" }, isMultiSelect && /* @__PURE__ */ React46.createElement(ListItemCheckbox, { ariaLabel: `Select DAO ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
3557
3520
  });
3558
- return /* @__PURE__ */ React46.createElement(Box19, { flex: 1 }, /* @__PURE__ */ React46.createElement(Stack28, null, rows));
3521
+ return /* @__PURE__ */ React46.createElement(Box20, { flex: 1 }, /* @__PURE__ */ React46.createElement(Stack28, null, rows));
3559
3522
  };
3560
3523
 
3561
3524
  // src/core/utils/files.ts
@@ -4062,10 +4025,10 @@ var ListFlowView = ({ block, editor }) => {
4062
4025
  if (!listType) {
4063
4026
  return /* @__PURE__ */ React48.createElement(Center4, { py: "xl" }, /* @__PURE__ */ React48.createElement(Text29, { size: "sm", c: "dimmed" }, "List not configured"));
4064
4027
  }
4065
- return /* @__PURE__ */ React48.createElement(Stack30, { w: "100%" }, /* @__PURE__ */ React48.createElement(Flex21, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React48.createElement(Title3, { order: 4 }, getListNameByType(listType)), /* @__PURE__ */ React48.createElement(Tooltip5, { label: opened ? "Collapse" : "Expand", withArrow: true }, /* @__PURE__ */ React48.createElement(ActionIcon2, { variant: "subtle", size: "sm", onClick: toggle, "aria-label": opened ? "Collapse" : "Expand" }, opened ? /* @__PURE__ */ React48.createElement(IconChevronUp, { size: 18 }) : /* @__PURE__ */ React48.createElement(IconChevronDown2, { size: 18 })))), /* @__PURE__ */ React48.createElement(Collapse2, { pb: 5, px: 5, in: opened }, /* @__PURE__ */ React48.createElement(Stack30, { mih: totalPages !== 1 ? 500 : void 0, w: "100%" }, /* @__PURE__ */ React48.createElement(Flex21, { align: "center", gap: "xs" }, listSortConfig?.key && /* @__PURE__ */ React48.createElement(Flex21, { align: "center" }, /* @__PURE__ */ React48.createElement(Text29, { size: "xs" }, listSortConfig.key?.replace(/([A-Z])/g, " $1").replace(
4028
+ return /* @__PURE__ */ React48.createElement(Stack30, { w: "100%" }, /* @__PURE__ */ React48.createElement(Flex20, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React48.createElement(Title3, { order: 4 }, getListNameByType(listType)), /* @__PURE__ */ React48.createElement(Tooltip5, { label: opened ? "Collapse" : "Expand", withArrow: true }, /* @__PURE__ */ React48.createElement(ActionIcon2, { variant: "subtle", size: "sm", onClick: toggle, "aria-label": opened ? "Collapse" : "Expand" }, opened ? /* @__PURE__ */ React48.createElement(IconChevronUp, { size: 18 }) : /* @__PURE__ */ React48.createElement(IconChevronDown2, { size: 18 })))), /* @__PURE__ */ React48.createElement(Collapse2, { pb: 5, px: 5, in: opened }, /* @__PURE__ */ React48.createElement(Stack30, { mih: totalPages !== 1 ? 500 : void 0, w: "100%" }, /* @__PURE__ */ React48.createElement(Flex20, { align: "center", gap: "xs" }, listSortConfig?.key && /* @__PURE__ */ React48.createElement(Flex20, { align: "center" }, /* @__PURE__ */ React48.createElement(Text29, { size: "xs" }, listSortConfig.key?.replace(/([A-Z])/g, " $1").replace(
4066
4029
  /^./,
4067
4030
  (str) => str.toUpperCase()
4068
- ), " "), /* @__PURE__ */ React48.createElement(Text29, { lh: 0.5 }, listSortConfig.direction === "asc" && /* @__PURE__ */ React48.createElement(IconArrowUp2, { size: 18 }), listSortConfig.direction === "desc" && /* @__PURE__ */ React48.createElement(IconArrowDown2, { size: 18 }))), isMultiSelect && /* @__PURE__ */ React48.createElement(Text29, { lh: 0.5 }, "Multi Selection")), /* @__PURE__ */ React48.createElement(Flex21, { justify: "space-between" }, /* @__PURE__ */ React48.createElement(Flex21, { gap: "xs", align: "center" }, /* @__PURE__ */ React48.createElement(FilterTab, { key: "All", label: "All", isActive: !listFilterConfig?.key, onClick: () => handleFilterChange(null) }), Array.isArray(listFilterConfigOptions) && listFilterConfigOptions.length > 0 && listFilterConfigOptions.map(({ key, label, type }) => /* @__PURE__ */ React48.createElement(
4031
+ ), " "), /* @__PURE__ */ React48.createElement(Text29, { lh: 0.5 }, listSortConfig.direction === "asc" && /* @__PURE__ */ React48.createElement(IconArrowUp2, { size: 18 }), listSortConfig.direction === "desc" && /* @__PURE__ */ React48.createElement(IconArrowDown2, { size: 18 }))), isMultiSelect && /* @__PURE__ */ React48.createElement(Text29, { lh: 0.5 }, "Multi Selection")), /* @__PURE__ */ React48.createElement(Flex20, { justify: "space-between" }, /* @__PURE__ */ React48.createElement(Flex20, { gap: "xs", align: "center" }, /* @__PURE__ */ React48.createElement(FilterTab, { key: "All", label: "All", isActive: !listFilterConfig?.key, onClick: () => handleFilterChange(null) }), Array.isArray(listFilterConfigOptions) && listFilterConfigOptions.length > 0 && listFilterConfigOptions.map(({ key, label, type }) => /* @__PURE__ */ React48.createElement(
4069
4032
  FilterTab,
4070
4033
  {
4071
4034
  key: label,
@@ -4073,7 +4036,7 @@ var ListFlowView = ({ block, editor }) => {
4073
4036
  isActive: listFilterConfig?.key === key && listFilterConfig?.value === type,
4074
4037
  onClick: () => handleFilterChange({ key, value: type })
4075
4038
  }
4076
- ))), /* @__PURE__ */ React48.createElement(Flex21, { gap: "xs" }, /* @__PURE__ */ React48.createElement(Tooltip5, { label: "Refresh", withArrow: true }, /* @__PURE__ */ React48.createElement(ActionIcon2, { variant: "subtle", size: "sm", onClick: fetchData, loading }, /* @__PURE__ */ React48.createElement(IconRefresh, { size: 18 }))), editable && /* @__PURE__ */ React48.createElement(Tooltip5, { label: "Settings", withArrow: true }, /* @__PURE__ */ React48.createElement(ActionIcon2, { variant: "subtle", size: "sm", onClick: openPanel }, /* @__PURE__ */ React48.createElement(IconSettings2, { size: 18 }))), listConfig && listSortConfigOptions && listSortConfigOptions?.length > 0 && /* @__PURE__ */ React48.createElement(
4039
+ ))), /* @__PURE__ */ React48.createElement(Flex20, { gap: "xs" }, /* @__PURE__ */ React48.createElement(Tooltip5, { label: "Refresh", withArrow: true }, /* @__PURE__ */ React48.createElement(ActionIcon2, { variant: "subtle", size: "sm", onClick: fetchData, loading }, /* @__PURE__ */ React48.createElement(IconRefresh, { size: 18 }))), editable && /* @__PURE__ */ React48.createElement(Tooltip5, { label: "Settings", withArrow: true }, /* @__PURE__ */ React48.createElement(ActionIcon2, { variant: "subtle", size: "sm", onClick: openPanel }, /* @__PURE__ */ React48.createElement(IconSettings2, { size: 18 }))), listConfig && listSortConfigOptions && listSortConfigOptions?.length > 0 && /* @__PURE__ */ React48.createElement(
4077
4040
  ListActionsMenu,
4078
4041
  {
4079
4042
  isMultiSelect,
@@ -4083,7 +4046,7 @@ var ListFlowView = ({ block, editor }) => {
4083
4046
  onChange: (sortOption) => handleSortChange(sortOption),
4084
4047
  onDownloadCsv: data?.items ? () => downloadArrayAsCsv(data.items) : void 0
4085
4048
  }
4086
- ))), /* @__PURE__ */ React48.createElement(Flex21, { flex: 1 }, loading ? /* @__PURE__ */ React48.createElement(Center4, { py: "xl", w: "100%" }, /* @__PURE__ */ React48.createElement(Loader2, { size: "md", mx: "auto" })) : error ? /* @__PURE__ */ React48.createElement(BaseAlert, { onRetry: fetchData, errMsg: error }) : /* @__PURE__ */ React48.createElement(Stack30, { flex: 1 }, /* @__PURE__ */ React48.createElement(Stack30, { gap: "md" }, renderListComponent(), /* @__PURE__ */ React48.createElement(
4049
+ ))), /* @__PURE__ */ React48.createElement(Flex20, { flex: 1 }, loading ? /* @__PURE__ */ React48.createElement(Center4, { py: "xl", w: "100%" }, /* @__PURE__ */ React48.createElement(Loader2, { size: "md", mx: "auto" })) : error ? /* @__PURE__ */ React48.createElement(BaseAlert, { onRetry: fetchData, errMsg: error }) : /* @__PURE__ */ React48.createElement(Stack30, { flex: 1 }, /* @__PURE__ */ React48.createElement(Stack30, { gap: "md" }, renderListComponent(), /* @__PURE__ */ React48.createElement(
4087
4050
  ListPagination,
4088
4051
  {
4089
4052
  page,
@@ -4146,7 +4109,7 @@ var ListBlockSpec = createReactBlockSpec2(
4146
4109
  // src/mantine/blocks/overview/OverviewBlock.tsx
4147
4110
  import React51, { useEffect as useEffect8, useState as useState11 } from "react";
4148
4111
  import { createReactBlockSpec as createReactBlockSpec3 } from "@blocknote/react";
4149
- import { Stack as Stack31, Text as Text30, Box as Box20, Loader as Loader3, Alert as Alert4, Group as Group8, Accordion as Accordion2, Collapse as Collapse3 } from "@mantine/core";
4112
+ import { Stack as Stack31, Text as Text30, Box as Box21, Loader as Loader3, Alert as Alert4, Group as Group8, Accordion as Accordion2, Collapse as Collapse3 } from "@mantine/core";
4150
4113
  import { IconChevronRight as IconChevronRight2, IconChevronDown as IconChevronDown3, IconFileDescription, IconWorld, IconCalendar, IconUser, IconCircleCheck } from "@tabler/icons-react";
4151
4114
  import { useDisclosure as useDisclosure2 } from "@mantine/hooks";
4152
4115
  var OverviewBlockContent = () => {
@@ -4173,7 +4136,7 @@ var OverviewBlockContent = () => {
4173
4136
  }, [handlers]);
4174
4137
  if (loading) {
4175
4138
  return /* @__PURE__ */ React51.createElement(
4176
- Box20,
4139
+ Box21,
4177
4140
  {
4178
4141
  style: {
4179
4142
  width: "100%",
@@ -4205,7 +4168,7 @@ var OverviewBlockContent = () => {
4205
4168
  }
4206
4169
  ));
4207
4170
  return /* @__PURE__ */ React51.createElement(
4208
- Box20,
4171
+ Box21,
4209
4172
  {
4210
4173
  style: {
4211
4174
  width: "100%",
@@ -4227,7 +4190,7 @@ var OverviewBlockContent = () => {
4227
4190
  },
4228
4191
  domainCard.name
4229
4192
  ), /* @__PURE__ */ React51.createElement(
4230
- Box20,
4193
+ Box21,
4231
4194
  {
4232
4195
  style: {
4233
4196
  background: "#333",
@@ -4236,7 +4199,7 @@ var OverviewBlockContent = () => {
4236
4199
  }
4237
4200
  },
4238
4201
  /* @__PURE__ */ React51.createElement(
4239
- Box20,
4202
+ Box21,
4240
4203
  {
4241
4204
  style: {
4242
4205
  padding: "12px",
@@ -4247,7 +4210,7 @@ var OverviewBlockContent = () => {
4247
4210
  /* @__PURE__ */ React51.createElement(Group8, { gap: "xs" }, detailsOpened ? /* @__PURE__ */ React51.createElement(IconChevronDown3, { size: 20, color: "#ffffff" }) : /* @__PURE__ */ React51.createElement(IconChevronRight2, { size: 20, color: "#ffffff" }), /* @__PURE__ */ React51.createElement(Text30, { size: "sm", fw: 500, c: "#ffffff" }, "Details"))
4248
4211
  ),
4249
4212
  /* @__PURE__ */ React51.createElement(Collapse3, { in: detailsOpened }, /* @__PURE__ */ React51.createElement(
4250
- Box20,
4213
+ Box21,
4251
4214
  {
4252
4215
  style: {
4253
4216
  padding: "0 16px 16px 16px"
@@ -4255,7 +4218,7 @@ var OverviewBlockContent = () => {
4255
4218
  },
4256
4219
  /* @__PURE__ */ React51.createElement(Stack31, { gap: "xs" }, domainCard.entity_type && domainCard.entity_type.length > 0 && /* @__PURE__ */ React51.createElement(Group8, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React51.createElement(IconFileDescription, { size: 20, color: "#adb5bd", style: { flexShrink: 0 } }), /* @__PURE__ */ React51.createElement(Text30, { size: "sm", c: "dimmed", style: { width: "140px", flexShrink: 0 } }, "Type"), /* @__PURE__ */ React51.createElement(Text30, { size: "sm", style: { color: "#ffffff" } }, domainCard.entity_type[0].replace("ixo:", ""))), domainCard.valid_from && /* @__PURE__ */ React51.createElement(Group8, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React51.createElement(IconCalendar, { size: 20, color: "#adb5bd", style: { flexShrink: 0 } }), /* @__PURE__ */ React51.createElement(Text30, { size: "sm", c: "dimmed", style: { width: "140px", flexShrink: 0 } }, "Created"), /* @__PURE__ */ React51.createElement(Text30, { size: "sm", style: { color: "#ffffff" } }, new Date(domainCard.valid_from).toLocaleDateString("en-GB", { day: "numeric", month: "short", year: "numeric" }))), /* @__PURE__ */ React51.createElement(Group8, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React51.createElement(IconCircleCheck, { size: 20, color: "#adb5bd", style: { flexShrink: 0 } }), /* @__PURE__ */ React51.createElement(Text30, { size: "sm", c: "dimmed", style: { width: "140px", flexShrink: 0 } }, "Status"), /* @__PURE__ */ React51.createElement(Text30, { size: "sm", style: { color: "#ffffff" } }, "Active")), domainCard.area_served && /* @__PURE__ */ React51.createElement(Group8, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React51.createElement(IconWorld, { size: 20, color: "#adb5bd", style: { flexShrink: 0 } }), /* @__PURE__ */ React51.createElement(Text30, { size: "sm", c: "dimmed", style: { width: "140px", flexShrink: 0 } }, "Country"), /* @__PURE__ */ React51.createElement(Text30, { size: "sm", style: { color: "#ffffff" } }, domainCard.area_served)), domainCard.issuer && /* @__PURE__ */ React51.createElement(Group8, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React51.createElement(IconUser, { size: 20, color: "#adb5bd", style: { flexShrink: 0 } }), /* @__PURE__ */ React51.createElement(Text30, { size: "sm", c: "dimmed", style: { width: "140px", flexShrink: 0 } }, "Issuer"), /* @__PURE__ */ React51.createElement(Text30, { size: "sm", style: { color: "#ffffff" } }, domainCard.issuer)))
4257
4220
  ))
4258
- ), /* @__PURE__ */ React51.createElement(Box20, { style: { marginTop: "24px" } }, /* @__PURE__ */ React51.createElement(Text30, { size: "lg", fw: 600, style: { marginBottom: "12px" } }, "About the Project"), /* @__PURE__ */ React51.createElement(
4221
+ ), /* @__PURE__ */ React51.createElement(Box21, { style: { marginTop: "24px" } }, /* @__PURE__ */ React51.createElement(Text30, { size: "lg", fw: 600, style: { marginBottom: "12px" } }, "About the Project"), /* @__PURE__ */ React51.createElement(
4259
4222
  Text30,
4260
4223
  {
4261
4224
  size: "sm",
@@ -4265,7 +4228,7 @@ var OverviewBlockContent = () => {
4265
4228
  }
4266
4229
  },
4267
4230
  domainCard.summary || domainCard.overview || domainCard.description || "No summary available"
4268
- )), /* @__PURE__ */ React51.createElement(Box20, { style: { marginTop: "16px" } }, /* @__PURE__ */ React51.createElement(Text30, { size: "lg", fw: 600, style: { marginBottom: "12px" } }, "What are the next steps"), /* @__PURE__ */ React51.createElement(
4231
+ )), /* @__PURE__ */ React51.createElement(Box21, { style: { marginTop: "16px" } }, /* @__PURE__ */ React51.createElement(Text30, { size: "lg", fw: 600, style: { marginBottom: "12px" } }, "What are the next steps"), /* @__PURE__ */ React51.createElement(
4269
4232
  Text30,
4270
4233
  {
4271
4234
  size: "sm",
@@ -4275,7 +4238,7 @@ var OverviewBlockContent = () => {
4275
4238
  }
4276
4239
  },
4277
4240
  domainCard.description
4278
- )), domainCard.faq && domainCard.faq.length > 0 && /* @__PURE__ */ React51.createElement(Box20, { style: { width: "95%", margin: "auto" } }, /* @__PURE__ */ React51.createElement(Accordion2, null, domainCard.faq.map((faqItem, index) => /* @__PURE__ */ React51.createElement(Accordion2.Item, { key: index, value: `faq-${index}` }, /* @__PURE__ */ React51.createElement(Accordion2.Control, { icon: /* @__PURE__ */ React51.createElement(ChatIcon, null) }, faqItem.question), /* @__PURE__ */ React51.createElement(Accordion2.Panel, null, faqItem.answer))))))
4241
+ )), domainCard.faq && domainCard.faq.length > 0 && /* @__PURE__ */ React51.createElement(Box21, { style: { width: "95%", margin: "auto" } }, /* @__PURE__ */ React51.createElement(Accordion2, null, domainCard.faq.map((faqItem, index) => /* @__PURE__ */ React51.createElement(Accordion2.Item, { key: index, value: `faq-${index}` }, /* @__PURE__ */ React51.createElement(Accordion2.Control, { icon: /* @__PURE__ */ React51.createElement(ChatIcon, null) }, faqItem.question), /* @__PURE__ */ React51.createElement(Accordion2.Panel, null, faqItem.answer))))))
4279
4242
  );
4280
4243
  };
4281
4244
  var OverviewBlock = createReactBlockSpec3(
@@ -7040,7 +7003,7 @@ var useVoteBusinessLogic = ({ block }) => {
7040
7003
 
7041
7004
  // src/mantine/blocks/proposal/flow/VoteGeneralTab.tsx
7042
7005
  import React91, { useState as useState23 } from "react";
7043
- import { Stack as Stack70, Text as Text43, Group as Group23, Card as Card12, Button as Button12, Progress as Progress2, Box as Box21, Tooltip as Tooltip6 } from "@mantine/core";
7006
+ import { Stack as Stack70, Text as Text43, Group as Group23, Card as Card12, Button as Button12, Progress as Progress2, Box as Box22, Tooltip as Tooltip6 } from "@mantine/core";
7044
7007
  var getVoteIcon = (voteType) => {
7045
7008
  switch (voteType) {
7046
7009
  case "yes":
@@ -7094,7 +7057,7 @@ var FlowGeneralTab = ({
7094
7057
  }
7095
7058
  },
7096
7059
  /* @__PURE__ */ React91.createElement(Group23, { gap: "xs", align: "center" }, /* @__PURE__ */ React91.createElement(
7097
- Box21,
7060
+ Box22,
7098
7061
  {
7099
7062
  style: {
7100
7063
  width: 8,
@@ -7118,7 +7081,7 @@ var FlowGeneralTab = ({
7118
7081
  }
7119
7082
  },
7120
7083
  /* @__PURE__ */ React91.createElement(Stack70, { gap: "xs" }, /* @__PURE__ */ React91.createElement(Group23, { justify: "space-between" }, /* @__PURE__ */ React91.createElement(Group23, { gap: "xs" }, /* @__PURE__ */ React91.createElement(
7121
- Box21,
7084
+ Box22,
7122
7085
  {
7123
7086
  w: 8,
7124
7087
  h: 8,
@@ -7127,7 +7090,7 @@ var FlowGeneralTab = ({
7127
7090
  borderRadius: "50%"
7128
7091
  }
7129
7092
  }
7130
- ), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", style: { color: "#adb5bd" } }, "Status")), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, hasSubmittedProposal ? proposalStatus === "open" ? "Active" : proposalStatus || "Active" : "Waiting")), /* @__PURE__ */ React91.createElement(Group23, { justify: "space-between" }, /* @__PURE__ */ React91.createElement(Group23, { gap: "xs" }, /* @__PURE__ */ React91.createElement(Box21, { w: 8, h: 8, style: { backgroundColor: "#adb5bd", borderRadius: "50%" } }), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", style: { color: "#adb5bd" } }, "Proposal ID")), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, hasSubmittedProposal ? `#${proposalId}` : "TBD")), /* @__PURE__ */ React91.createElement(Group23, { justify: "space-between" }, /* @__PURE__ */ React91.createElement(Group23, { gap: "xs" }, /* @__PURE__ */ React91.createElement(Box21, { w: 8, h: 8, style: { backgroundColor: "#adb5bd", borderRadius: "50%" } }), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", style: { color: "#adb5bd" } }, "Title")), /* @__PURE__ */ React91.createElement(
7093
+ ), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", style: { color: "#adb5bd" } }, "Status")), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, hasSubmittedProposal ? proposalStatus === "open" ? "Active" : proposalStatus || "Active" : "Waiting")), /* @__PURE__ */ React91.createElement(Group23, { justify: "space-between" }, /* @__PURE__ */ React91.createElement(Group23, { gap: "xs" }, /* @__PURE__ */ React91.createElement(Box22, { w: 8, h: 8, style: { backgroundColor: "#adb5bd", borderRadius: "50%" } }), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", style: { color: "#adb5bd" } }, "Proposal ID")), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, hasSubmittedProposal ? `#${proposalId}` : "TBD")), /* @__PURE__ */ React91.createElement(Group23, { justify: "space-between" }, /* @__PURE__ */ React91.createElement(Group23, { gap: "xs" }, /* @__PURE__ */ React91.createElement(Box22, { w: 8, h: 8, style: { backgroundColor: "#adb5bd", borderRadius: "50%" } }), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", style: { color: "#adb5bd" } }, "Title")), /* @__PURE__ */ React91.createElement(
7131
7094
  Text43,
7132
7095
  {
7133
7096
  size: "sm",
@@ -7137,7 +7100,7 @@ var FlowGeneralTab = ({
7137
7100
  }
7138
7101
  },
7139
7102
  hasSubmittedProposal ? proposalTitle || "Untitled" : "N/A"
7140
- )), /* @__PURE__ */ React91.createElement(Group23, { justify: "space-between" }, /* @__PURE__ */ React91.createElement(Group23, { gap: "xs" }, /* @__PURE__ */ React91.createElement(Box21, { w: 8, h: 8, style: { backgroundColor: "#adb5bd", borderRadius: "50%" } }), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", style: { color: "#adb5bd" } }, "Description")), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", fw: 500, style: { color: "#f1f3f5" }, title: proposalDescription }, hasSubmittedProposal ? proposalDescription ? proposalDescription.length > 30 ? proposalDescription.substring(0, 30) + "..." : proposalDescription : "No description" : "N/A")), /* @__PURE__ */ React91.createElement(Group23, { justify: "space-between" }, /* @__PURE__ */ React91.createElement(Group23, { gap: "xs" }, /* @__PURE__ */ React91.createElement(Box21, { w: 8, h: 8, style: { backgroundColor: "#adb5bd", borderRadius: "50%" } }), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", style: { color: "#adb5bd" } }, "My Vote")), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, hasSubmittedProposal ? userVote?.vote ? userVote.vote.vote : "Pending" : "N/A"))),
7103
+ )), /* @__PURE__ */ React91.createElement(Group23, { justify: "space-between" }, /* @__PURE__ */ React91.createElement(Group23, { gap: "xs" }, /* @__PURE__ */ React91.createElement(Box22, { w: 8, h: 8, style: { backgroundColor: "#adb5bd", borderRadius: "50%" } }), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", style: { color: "#adb5bd" } }, "Description")), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", fw: 500, style: { color: "#f1f3f5" }, title: proposalDescription }, hasSubmittedProposal ? proposalDescription ? proposalDescription.length > 30 ? proposalDescription.substring(0, 30) + "..." : proposalDescription : "No description" : "N/A")), /* @__PURE__ */ React91.createElement(Group23, { justify: "space-between" }, /* @__PURE__ */ React91.createElement(Group23, { gap: "xs" }, /* @__PURE__ */ React91.createElement(Box22, { w: 8, h: 8, style: { backgroundColor: "#adb5bd", borderRadius: "50%" } }), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", style: { color: "#adb5bd" } }, "My Vote")), /* @__PURE__ */ React91.createElement(Text43, { size: "sm", fw: 500, style: { color: "#f1f3f5" } }, hasSubmittedProposal ? userVote?.vote ? userVote.vote.vote : "Pending" : "N/A"))),
7141
7104
  /* @__PURE__ */ React91.createElement(Stack70, { gap: "xs" }, /* @__PURE__ */ React91.createElement(Text43, { size: "sm", style: { color: "#adb5bd" } }, hasSubmittedProposal ? "Voting is open" : "Voting pending"), /* @__PURE__ */ React91.createElement(
7142
7105
  Progress2,
7143
7106
  {
@@ -7163,7 +7126,7 @@ var FlowGeneralTab = ({
7163
7126
  }
7164
7127
  },
7165
7128
  /* @__PURE__ */ React91.createElement(Group23, { gap: "xs", align: "center" }, /* @__PURE__ */ React91.createElement(
7166
- Box21,
7129
+ Box22,
7167
7130
  {
7168
7131
  style: {
7169
7132
  width: 8,
@@ -7260,7 +7223,7 @@ var FlowGeneralTab = ({
7260
7223
  }
7261
7224
  },
7262
7225
  /* @__PURE__ */ React91.createElement(Stack70, { gap: "xs" }, /* @__PURE__ */ React91.createElement(Group23, { gap: "xs", align: "center" }, /* @__PURE__ */ React91.createElement(
7263
- Box21,
7226
+ Box22,
7264
7227
  {
7265
7228
  style: {
7266
7229
  width: 8,
@@ -8263,7 +8226,7 @@ import { IconVariable, IconX as IconX4 } from "@tabler/icons-react";
8263
8226
 
8264
8227
  // src/mantine/components/DataInput/BlockPropSelector.tsx
8265
8228
  import React100, { useState as useState29, useMemo as useMemo14 } from "react";
8266
- import { Popover, Text as Text49, Stack as Stack76, Group as Group26, ActionIcon as ActionIcon7, Input, ScrollArea as ScrollArea4, Badge as Badge11, Box as Box22, Tooltip as Tooltip7 } from "@mantine/core";
8229
+ import { Popover, Text as Text49, Stack as Stack76, Group as Group26, ActionIcon as ActionIcon7, Input, ScrollArea as ScrollArea4, Badge as Badge11, Box as Box23, Tooltip as Tooltip7 } from "@mantine/core";
8267
8230
  import { IconSearch as IconSearch3, IconX as IconX3, IconCircle, IconChevronRight as IconChevronRight3, IconArrowLeft as IconArrowLeft2 } from "@tabler/icons-react";
8268
8231
  function buildPropertyTree(properties) {
8269
8232
  const root = [];
@@ -8399,7 +8362,7 @@ function BlockPropSelector({ children, opened, onClose, onSelect, editorDocument
8399
8362
  ), /* @__PURE__ */ React100.createElement(ScrollArea4, { h: 300, type: "auto" }, !selectedBlock ? (
8400
8363
  // Block selection view
8401
8364
  filteredBlocks.length === 0 ? /* @__PURE__ */ React100.createElement(Text49, { c: "dimmed", ta: "center", py: "xl", size: "sm" }, availableBlocks.length === 0 ? "No blocks with referenceable properties found" : "No blocks match your search") : /* @__PURE__ */ React100.createElement(Stack76, { gap: "sm" }, filteredBlocks.map((block) => /* @__PURE__ */ React100.createElement(
8402
- Box22,
8365
+ Box23,
8403
8366
  {
8404
8367
  key: block.id,
8405
8368
  onClick: () => handleBlockSelect(block),
@@ -8431,7 +8394,7 @@ function BlockPropSelector({ children, opened, onClose, onSelect, editorDocument
8431
8394
  ) : (
8432
8395
  // Property navigation view
8433
8396
  currentNodes.length === 0 ? /* @__PURE__ */ React100.createElement(Text49, { c: "dimmed", ta: "center", py: "xl", size: "sm" }, "No properties available") : /* @__PURE__ */ React100.createElement(Stack76, { gap: "xs" }, currentNodes.map((node, index) => /* @__PURE__ */ React100.createElement(Tooltip7, { key: index, label: node.isLeaf ? `Select ${node.displayName}` : `Navigate into ${node.displayName}`, position: "left", withArrow: true }, /* @__PURE__ */ React100.createElement(
8434
- Box22,
8397
+ Box23,
8435
8398
  {
8436
8399
  onClick: () => handleNodeClick(node),
8437
8400
  style: {
@@ -9741,7 +9704,7 @@ import { createReactBlockSpec as createReactBlockSpec6 } from "@blocknote/react"
9741
9704
 
9742
9705
  // src/mantine/blocks/dynamicList/DynamicListBlock.tsx
9743
9706
  import React110, { useMemo as useMemo19, useState as useState34, useCallback as useCallback20, useEffect as useEffect20, useRef as useRef3 } from "react";
9744
- import { Box as Box24, Stack as Stack82, Text as Text55, Paper as Paper11, Group as Group33, Button as Button20, ActionIcon as ActionIcon12, Tooltip as Tooltip10, Code as Code4, Flex as Flex22, Collapse as Collapse6, Title as Title5, Badge as Badge15, TextInput as TextInput5, CloseButton as CloseButton4, Select as Select3, Menu as Menu2 } from "@mantine/core";
9707
+ import { Box as Box25, Stack as Stack82, Text as Text55, Paper as Paper11, Group as Group33, Button as Button20, ActionIcon as ActionIcon12, Tooltip as Tooltip10, Code as Code4, Flex as Flex21, Collapse as Collapse6, Title as Title5, Badge as Badge15, TextInput as TextInput5, CloseButton as CloseButton4, Select as Select3, Menu as Menu2 } from "@mantine/core";
9745
9708
  import { useDisclosure as useDisclosure3 } from "@mantine/hooks";
9746
9709
  import {
9747
9710
  IconCamera,
@@ -9762,7 +9725,7 @@ import {
9762
9725
 
9763
9726
  // src/mantine/blocks/dynamicList/DynamicListSelectionPanel.tsx
9764
9727
  import React109, { useMemo as useMemo18, useState as useState33 } from "react";
9765
- import { Paper as Paper10, CloseButton as CloseButton3, Stack as Stack81, Text as Text54, Box as Box23, Group as Group32, Divider as Divider8, Code as Code3, ScrollArea as ScrollArea5, Collapse as Collapse5 } from "@mantine/core";
9728
+ import { Paper as Paper10, CloseButton as CloseButton3, Stack as Stack81, Text as Text54, Box as Box24, Group as Group32, Divider as Divider8, Code as Code3, ScrollArea as ScrollArea5, Collapse as Collapse5 } from "@mantine/core";
9766
9729
  import { IconSparkles, IconChevronDown as IconChevronDown5, IconChevronRight as IconChevronRight4 } from "@tabler/icons-react";
9767
9730
  function formatKeyAsLabel(key) {
9768
9731
  return key.replace(/([A-Z])/g, " $1").replace(/[_-]/g, " ").replace(/^\s/, "").split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(" ");
@@ -9802,14 +9765,14 @@ function DefaultKeyValueView({
9802
9765
  const titleColumn = columns.find((col) => col.position === "topLeft");
9803
9766
  const title = titleColumn ? item[titleColumn.key] : Object.values(item)[0];
9804
9767
  const itemKeys = Object.keys(item).filter((key) => !key.startsWith("_"));
9805
- return /* @__PURE__ */ React109.createElement(Stack81, { gap: "md", style: { flex: 1 } }, /* @__PURE__ */ React109.createElement(Box23, null, /* @__PURE__ */ React109.createElement(Text54, { size: "lg", fw: 600 }, formatValue(title)), titleColumn && /* @__PURE__ */ React109.createElement(Text54, { size: "xs", c: "dimmed" }, titleColumn.label)), panelDescription && /* @__PURE__ */ React109.createElement(React109.Fragment, null, /* @__PURE__ */ React109.createElement(Divider8, null), /* @__PURE__ */ React109.createElement(Text54, { size: "sm", c: "dimmed" }, panelDescription)), /* @__PURE__ */ React109.createElement(Divider8, null), /* @__PURE__ */ React109.createElement(Box23, null, /* @__PURE__ */ React109.createElement(Group32, { gap: "xs", style: { cursor: "pointer" }, onClick: () => setValuesExpanded(!valuesExpanded) }, valuesExpanded ? /* @__PURE__ */ React109.createElement(IconChevronDown5, { size: 16, color: "var(--mantine-color-blue-4)" }) : /* @__PURE__ */ React109.createElement(IconChevronRight4, { size: 16, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React109.createElement(Text54, { size: "sm", fw: 500 }, "Values"), /* @__PURE__ */ React109.createElement(Text54, { size: "xs", c: "dimmed" }, "(", itemKeys.length, " fields)")), /* @__PURE__ */ React109.createElement(Collapse5, { in: valuesExpanded }, /* @__PURE__ */ React109.createElement(ScrollArea5, { style: { maxHeight: 300 }, mt: "sm" }, /* @__PURE__ */ React109.createElement(Stack81, { gap: "sm" }, itemKeys.map((key) => {
9768
+ return /* @__PURE__ */ React109.createElement(Stack81, { gap: "md", style: { flex: 1 } }, /* @__PURE__ */ React109.createElement(Box24, null, /* @__PURE__ */ React109.createElement(Text54, { size: "lg", fw: 600 }, formatValue(title)), titleColumn && /* @__PURE__ */ React109.createElement(Text54, { size: "xs", c: "dimmed" }, titleColumn.label)), panelDescription && /* @__PURE__ */ React109.createElement(React109.Fragment, null, /* @__PURE__ */ React109.createElement(Divider8, null), /* @__PURE__ */ React109.createElement(Text54, { size: "sm", c: "dimmed" }, panelDescription)), /* @__PURE__ */ React109.createElement(Divider8, null), /* @__PURE__ */ React109.createElement(Box24, null, /* @__PURE__ */ React109.createElement(Group32, { gap: "xs", style: { cursor: "pointer" }, onClick: () => setValuesExpanded(!valuesExpanded) }, valuesExpanded ? /* @__PURE__ */ React109.createElement(IconChevronDown5, { size: 16, color: "var(--mantine-color-blue-4)" }) : /* @__PURE__ */ React109.createElement(IconChevronRight4, { size: 16, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React109.createElement(Text54, { size: "sm", fw: 500 }, "Values"), /* @__PURE__ */ React109.createElement(Text54, { size: "xs", c: "dimmed" }, "(", itemKeys.length, " fields)")), /* @__PURE__ */ React109.createElement(Collapse5, { in: valuesExpanded }, /* @__PURE__ */ React109.createElement(ScrollArea5, { style: { maxHeight: 300 }, mt: "sm" }, /* @__PURE__ */ React109.createElement(Stack81, { gap: "sm" }, itemKeys.map((key) => {
9806
9769
  const column = columnMap[key];
9807
9770
  const label = column?.label || formatKeyAsLabel(key);
9808
9771
  const value = item[key];
9809
9772
  const formattedValue = formatValue(value, column?.type);
9810
9773
  const isObject = typeof value === "object" && value !== null;
9811
- return /* @__PURE__ */ React109.createElement(Box23, { key }, /* @__PURE__ */ React109.createElement(Text54, { size: "xs", c: "dimmed", fw: 500 }, label), isObject ? /* @__PURE__ */ React109.createElement(Code3, { block: true, style: { fontSize: "12px", whiteSpace: "pre-wrap", maxHeight: 150, overflow: "auto" } }, formattedValue) : /* @__PURE__ */ React109.createElement(Text54, { size: "sm", c: column?.color || void 0 }, formattedValue));
9812
- }))))), /* @__PURE__ */ React109.createElement(Box23, { style: { flex: 1 } }), dataSource && /* @__PURE__ */ React109.createElement(React109.Fragment, null, /* @__PURE__ */ React109.createElement(Divider8, null), /* @__PURE__ */ React109.createElement(Box23, null, /* @__PURE__ */ React109.createElement(Group32, { gap: "xs", mb: "xs" }, /* @__PURE__ */ React109.createElement(IconSparkles, { size: 14, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React109.createElement(Text54, { size: "xs", fw: 500, c: "dimmed" }, "Data Source")), dataSource.oracleName && /* @__PURE__ */ React109.createElement(Text54, { size: "xs", c: "dimmed" }, "Oracle: ", dataSource.oracleName), dataSource.query && /* @__PURE__ */ React109.createElement(Box23, { mt: "xs" }, /* @__PURE__ */ React109.createElement(Text54, { size: "xs", c: "dimmed", mb: 4 }, "Query:"), /* @__PURE__ */ React109.createElement(Code3, { block: true, style: { fontSize: "11px", whiteSpace: "pre-wrap" } }, dataSource.query)))));
9774
+ return /* @__PURE__ */ React109.createElement(Box24, { key }, /* @__PURE__ */ React109.createElement(Text54, { size: "xs", c: "dimmed", fw: 500 }, label), isObject ? /* @__PURE__ */ React109.createElement(Code3, { block: true, style: { fontSize: "12px", whiteSpace: "pre-wrap", maxHeight: 150, overflow: "auto" } }, formattedValue) : /* @__PURE__ */ React109.createElement(Text54, { size: "sm", c: column?.color || void 0 }, formattedValue));
9775
+ }))))), /* @__PURE__ */ React109.createElement(Box24, { style: { flex: 1 } }), dataSource && /* @__PURE__ */ React109.createElement(React109.Fragment, null, /* @__PURE__ */ React109.createElement(Divider8, null), /* @__PURE__ */ React109.createElement(Box24, null, /* @__PURE__ */ React109.createElement(Group32, { gap: "xs", mb: "xs" }, /* @__PURE__ */ React109.createElement(IconSparkles, { size: 14, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React109.createElement(Text54, { size: "xs", fw: 500, c: "dimmed" }, "Data Source")), dataSource.oracleName && /* @__PURE__ */ React109.createElement(Text54, { size: "xs", c: "dimmed" }, "Oracle: ", dataSource.oracleName), dataSource.query && /* @__PURE__ */ React109.createElement(Box24, { mt: "xs" }, /* @__PURE__ */ React109.createElement(Text54, { size: "xs", c: "dimmed", mb: 4 }, "Query:"), /* @__PURE__ */ React109.createElement(Code3, { block: true, style: { fontSize: "11px", whiteSpace: "pre-wrap" } }, dataSource.query)))));
9813
9776
  }
9814
9777
  var DynamicListSelectionPanel = ({
9815
9778
  selectedItem,
@@ -9880,7 +9843,7 @@ var DynamicListSelectionPanel = ({
9880
9843
  ),
9881
9844
  customContent ? (
9882
9845
  // Use custom renderer content
9883
- /* @__PURE__ */ React109.createElement(Box23, { style: { flex: 1, paddingTop: "1rem", display: "flex", flexDirection: "column" } }, customContent)
9846
+ /* @__PURE__ */ React109.createElement(Box24, { style: { flex: 1, paddingTop: "1rem", display: "flex", flexDirection: "column" } }, customContent)
9884
9847
  ) : (
9885
9848
  // Default key-value view (actions commented out for now)
9886
9849
  /* @__PURE__ */ React109.createElement(DefaultKeyValueView, { item: selectedItem, columns, dataSource, panelDescription })
@@ -10193,8 +10156,8 @@ function DynamicListBlock({ block, editor }) {
10193
10156
  if (!listId) {
10194
10157
  return /* @__PURE__ */ React110.createElement(Paper11, { p: "xl", withBorder: true, w: "100%", radius: "lg" }, /* @__PURE__ */ React110.createElement(Stack82, { align: "center", gap: "sm" }, /* @__PURE__ */ React110.createElement(IconDatabase, { size: 32, color: "var(--mantine-color-dimmed)" }), /* @__PURE__ */ React110.createElement(Text55, { fz: "18", ta: "center" }, "Dynamic List Block"), /* @__PURE__ */ React110.createElement(Text55, { fz: "sm", c: "dimmed", ta: "center" }, "This block will display dynamic data from AG-UI.", /* @__PURE__ */ React110.createElement("br", null), "Add a list from the AG-UI Canvas to populate it.")));
10195
10158
  }
10196
- return /* @__PURE__ */ React110.createElement(Stack82, { w: "100%" }, /* @__PURE__ */ React110.createElement(Flex22, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React110.createElement(Title5, { order: 4 }, title || "Dynamic List"), /* @__PURE__ */ React110.createElement(ActionIcon12, { variant: "subtle", size: "sm", onClick: toggle, "aria-label": opened ? "Collapse" : "Expand" }, opened ? /* @__PURE__ */ React110.createElement(IconChevronUp3, { size: 18 }) : /* @__PURE__ */ React110.createElement(IconChevronDown6, { size: 18 }))), /* @__PURE__ */ React110.createElement(Collapse6, { in: showInfo }, /* @__PURE__ */ React110.createElement(
10197
- Box24,
10159
+ return /* @__PURE__ */ React110.createElement(Stack82, { w: "100%" }, /* @__PURE__ */ React110.createElement(Flex21, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React110.createElement(Title5, { order: 4 }, title || "Dynamic List"), /* @__PURE__ */ React110.createElement(ActionIcon12, { variant: "subtle", size: "sm", onClick: toggle, "aria-label": opened ? "Collapse" : "Expand" }, opened ? /* @__PURE__ */ React110.createElement(IconChevronUp3, { size: 18 }) : /* @__PURE__ */ React110.createElement(IconChevronDown6, { size: 18 }))), /* @__PURE__ */ React110.createElement(Collapse6, { in: showInfo }, /* @__PURE__ */ React110.createElement(
10160
+ Box25,
10198
10161
  {
10199
10162
  mx: 5,
10200
10163
  mt: "xs",
@@ -10205,9 +10168,9 @@ function DynamicListBlock({ block, editor }) {
10205
10168
  border: "1px solid var(--mantine-color-dark-4)"
10206
10169
  }
10207
10170
  },
10208
- /* @__PURE__ */ React110.createElement(Flex22, { justify: "space-between", align: "flex-start", mb: "xs" }, /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, /* @__PURE__ */ React110.createElement(IconInfoCircle2, { size: 14, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", fw: 500, c: "dimmed" }, "Data Source")), /* @__PURE__ */ React110.createElement(ActionIcon12, { variant: "subtle", size: "xs", onClick: () => setShowInfo(false), "aria-label": "Close info" }, /* @__PURE__ */ React110.createElement(IconX5, { size: 14 }))),
10209
- /* @__PURE__ */ React110.createElement(Stack82, { gap: 6 }, parsedDataSource?.oracleName && /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "dimmed", w: 70 }, "Oracle:"), /* @__PURE__ */ React110.createElement(Text55, { fz: "xs" }, parsedDataSource.oracleName)), parsedDataSource?.oracleDid && /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "dimmed", w: 70 }, "DID:"), /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", style: { wordBreak: "break-all" } }, parsedDataSource.oracleDid)), parsedDataSource?.toolName && /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "dimmed", w: 70 }, "Tool:"), /* @__PURE__ */ React110.createElement(Text55, { fz: "xs" }, parsedDataSource.toolName)), parsedDataSource?.query && /* @__PURE__ */ React110.createElement(Box24, null, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "dimmed", mb: 4 }, "Query:"), /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", style: { whiteSpace: "pre-wrap" } }, parsedDataSource.query)), parsedDataSource?.description && /* @__PURE__ */ React110.createElement(Box24, null, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "dimmed", mb: 4 }, "Description:"), /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", fs: "italic" }, parsedDataSource.description)), parsedDataSource?.params && Object.keys(parsedDataSource.params).length > 0 && /* @__PURE__ */ React110.createElement(Box24, null, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "dimmed", mb: 4 }, "Params:"), /* @__PURE__ */ React110.createElement(Code4, { block: true, style: { fontSize: "11px", whiteSpace: "pre-wrap" } }, JSON.stringify(parsedDataSource.params, null, 2))))
10210
- )), /* @__PURE__ */ React110.createElement(Collapse6, { pb: 5, px: 5, in: opened }, /* @__PURE__ */ React110.createElement(Stack82, { w: "100%" }, /* @__PURE__ */ React110.createElement(Collapse6, { in: showSearch }, /* @__PURE__ */ React110.createElement(Flex22, { gap: "xs", align: "center" }, /* @__PURE__ */ React110.createElement(
10171
+ /* @__PURE__ */ React110.createElement(Flex21, { justify: "space-between", align: "flex-start", mb: "xs" }, /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, /* @__PURE__ */ React110.createElement(IconInfoCircle2, { size: 14, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", fw: 500, c: "dimmed" }, "Data Source")), /* @__PURE__ */ React110.createElement(ActionIcon12, { variant: "subtle", size: "xs", onClick: () => setShowInfo(false), "aria-label": "Close info" }, /* @__PURE__ */ React110.createElement(IconX5, { size: 14 }))),
10172
+ /* @__PURE__ */ React110.createElement(Stack82, { gap: 6 }, parsedDataSource?.oracleName && /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "dimmed", w: 70 }, "Oracle:"), /* @__PURE__ */ React110.createElement(Text55, { fz: "xs" }, parsedDataSource.oracleName)), parsedDataSource?.oracleDid && /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "dimmed", w: 70 }, "DID:"), /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", style: { wordBreak: "break-all" } }, parsedDataSource.oracleDid)), parsedDataSource?.toolName && /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "dimmed", w: 70 }, "Tool:"), /* @__PURE__ */ React110.createElement(Text55, { fz: "xs" }, parsedDataSource.toolName)), parsedDataSource?.query && /* @__PURE__ */ React110.createElement(Box25, null, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "dimmed", mb: 4 }, "Query:"), /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", style: { whiteSpace: "pre-wrap" } }, parsedDataSource.query)), parsedDataSource?.description && /* @__PURE__ */ React110.createElement(Box25, null, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "dimmed", mb: 4 }, "Description:"), /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", fs: "italic" }, parsedDataSource.description)), parsedDataSource?.params && Object.keys(parsedDataSource.params).length > 0 && /* @__PURE__ */ React110.createElement(Box25, null, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "dimmed", mb: 4 }, "Params:"), /* @__PURE__ */ React110.createElement(Code4, { block: true, style: { fontSize: "11px", whiteSpace: "pre-wrap" } }, JSON.stringify(parsedDataSource.params, null, 2))))
10173
+ )), /* @__PURE__ */ React110.createElement(Collapse6, { pb: 5, px: 5, in: opened }, /* @__PURE__ */ React110.createElement(Stack82, { w: "100%" }, /* @__PURE__ */ React110.createElement(Collapse6, { in: showSearch }, /* @__PURE__ */ React110.createElement(Flex21, { gap: "xs", align: "center" }, /* @__PURE__ */ React110.createElement(
10211
10174
  TextInput5,
10212
10175
  {
10213
10176
  ref: searchInputRef,
@@ -10228,7 +10191,7 @@ function DynamicListBlock({ block, editor }) {
10228
10191
  }
10229
10192
  }
10230
10193
  }
10231
- ), /* @__PURE__ */ React110.createElement(ActionIcon12, { variant: "subtle", size: "sm", onClick: handleSearchToggle, "aria-label": "Close search", title: "Close search" }, /* @__PURE__ */ React110.createElement(IconChevronUp3, { size: 16 })))), sortConfig && /* @__PURE__ */ React110.createElement(Flex22, { align: "center", gap: "xs" }, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "dimmed" }, "Sorted by ", parsedColumns.find((c) => c.key === sortConfig.key)?.label || sortConfig.key), sortConfig.direction === "asc" ? /* @__PURE__ */ React110.createElement(IconArrowUp3, { size: 14 }) : /* @__PURE__ */ React110.createElement(IconArrowDown3, { size: 14 })), hasData && /* @__PURE__ */ React110.createElement(Flex22, { justify: "space-between", align: "center" }, /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, /* @__PURE__ */ React110.createElement(Text55, { fz: "sm", c: "dimmed" }, totalItems, " ", totalItems === 1 ? "item" : "items", searchQuery && rawData && ` of ${rawData.length}`, selectedIds.size > 0 && ` \u2022 ${selectedIds.size} selected`), useSnapshot && snapshotTimestamp && /* @__PURE__ */ React110.createElement(Tooltip10, { label: `Snapshot from ${new Date(snapshotTimestamp).toLocaleString()}` }, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "yellow", style: { cursor: "help" } }, "(snapshot)")), useSnapshot && !snapshotTimestamp && /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "yellow" }, "(snapshot)"), !useSnapshot && /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "green" }, "(live)")), /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, editable && /* @__PURE__ */ React110.createElement(React110.Fragment, null, useSnapshot && liveData.items && liveData.items.length > 0 && /* @__PURE__ */ React110.createElement(Button20, { size: "compact-xs", variant: "subtle", onClick: handleUseLiveData, leftSection: /* @__PURE__ */ React110.createElement(IconRefresh2, { size: 12 }) }, "Use Live"), !useSnapshot && hasSnapshot && /* @__PURE__ */ React110.createElement(Button20, { size: "compact-xs", variant: "subtle", onClick: handleUseSnapshot, leftSection: /* @__PURE__ */ React110.createElement(IconCamera, { size: 12 }) }, "Use Snapshot"), !useSnapshot && liveData.items && liveData.items.length > 0 && /* @__PURE__ */ React110.createElement(Tooltip10, { label: "Save current data as snapshot" }, /* @__PURE__ */ React110.createElement(ActionIcon12, { variant: "subtle", size: "sm", onClick: handleSaveSnapshot }, /* @__PURE__ */ React110.createElement(IconCamera, { size: 16 })))), /* @__PURE__ */ React110.createElement(
10194
+ ), /* @__PURE__ */ React110.createElement(ActionIcon12, { variant: "subtle", size: "sm", onClick: handleSearchToggle, "aria-label": "Close search", title: "Close search" }, /* @__PURE__ */ React110.createElement(IconChevronUp3, { size: 16 })))), sortConfig && /* @__PURE__ */ React110.createElement(Flex21, { align: "center", gap: "xs" }, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "dimmed" }, "Sorted by ", parsedColumns.find((c) => c.key === sortConfig.key)?.label || sortConfig.key), sortConfig.direction === "asc" ? /* @__PURE__ */ React110.createElement(IconArrowUp3, { size: 14 }) : /* @__PURE__ */ React110.createElement(IconArrowDown3, { size: 14 })), hasData && /* @__PURE__ */ React110.createElement(Flex21, { justify: "space-between", align: "center" }, /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, /* @__PURE__ */ React110.createElement(Text55, { fz: "sm", c: "dimmed" }, totalItems, " ", totalItems === 1 ? "item" : "items", searchQuery && rawData && ` of ${rawData.length}`, selectedIds.size > 0 && ` \u2022 ${selectedIds.size} selected`), useSnapshot && snapshotTimestamp && /* @__PURE__ */ React110.createElement(Tooltip10, { label: `Snapshot from ${new Date(snapshotTimestamp).toLocaleString()}` }, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "yellow", style: { cursor: "help" } }, "(snapshot)")), useSnapshot && !snapshotTimestamp && /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "yellow" }, "(snapshot)"), !useSnapshot && /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", c: "green" }, "(live)")), /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, editable && /* @__PURE__ */ React110.createElement(React110.Fragment, null, useSnapshot && liveData.items && liveData.items.length > 0 && /* @__PURE__ */ React110.createElement(Button20, { size: "compact-xs", variant: "subtle", onClick: handleUseLiveData, leftSection: /* @__PURE__ */ React110.createElement(IconRefresh2, { size: 12 }) }, "Use Live"), !useSnapshot && hasSnapshot && /* @__PURE__ */ React110.createElement(Button20, { size: "compact-xs", variant: "subtle", onClick: handleUseSnapshot, leftSection: /* @__PURE__ */ React110.createElement(IconCamera, { size: 12 }) }, "Use Snapshot"), !useSnapshot && liveData.items && liveData.items.length > 0 && /* @__PURE__ */ React110.createElement(Tooltip10, { label: "Save current data as snapshot" }, /* @__PURE__ */ React110.createElement(ActionIcon12, { variant: "subtle", size: "sm", onClick: handleSaveSnapshot }, /* @__PURE__ */ React110.createElement(IconCamera, { size: 16 })))), /* @__PURE__ */ React110.createElement(
10232
10195
  Menu2,
10233
10196
  {
10234
10197
  shadow: "md",
@@ -10257,12 +10220,12 @@ function DynamicListBlock({ block, editor }) {
10257
10220
  }
10258
10221
  },
10259
10222
  /* @__PURE__ */ React110.createElement(Menu2.Target, null, /* @__PURE__ */ React110.createElement(ActionIcon12, { variant: "subtle", size: "sm", "aria-label": "List actions", title: "List actions" }, /* @__PURE__ */ React110.createElement(IconAdjustmentsHorizontal2, { size: 18 }))),
10260
- /* @__PURE__ */ React110.createElement(Menu2.Dropdown, null, sortOptions.length > 0 && /* @__PURE__ */ React110.createElement(React110.Fragment, null, /* @__PURE__ */ React110.createElement(Menu2.Label, { onClick: () => setOrderByCollapsed(!orderByCollapsed), style: { cursor: "pointer" } }, /* @__PURE__ */ React110.createElement(Flex22, { align: "center", gap: 10 }, orderByCollapsed ? /* @__PURE__ */ React110.createElement(IconChevronRight5, { size: 14 }) : /* @__PURE__ */ React110.createElement(IconChevronDown6, { size: 14 }), /* @__PURE__ */ React110.createElement(Text55, { fz: "14" }, "Order By"))), /* @__PURE__ */ React110.createElement(Collapse6, { in: !orderByCollapsed }, sortOptions.map((opt) => {
10223
+ /* @__PURE__ */ React110.createElement(Menu2.Dropdown, null, sortOptions.length > 0 && /* @__PURE__ */ React110.createElement(React110.Fragment, null, /* @__PURE__ */ React110.createElement(Menu2.Label, { onClick: () => setOrderByCollapsed(!orderByCollapsed), style: { cursor: "pointer" } }, /* @__PURE__ */ React110.createElement(Flex21, { align: "center", gap: 10 }, orderByCollapsed ? /* @__PURE__ */ React110.createElement(IconChevronRight5, { size: 14 }) : /* @__PURE__ */ React110.createElement(IconChevronDown6, { size: 14 }), /* @__PURE__ */ React110.createElement(Text55, { fz: "14" }, "Order By"))), /* @__PURE__ */ React110.createElement(Collapse6, { in: !orderByCollapsed }, sortOptions.map((opt) => {
10261
10224
  const isAscActive = sortConfig?.key === opt.key && sortConfig?.direction === "asc";
10262
10225
  const isDescActive = sortConfig?.key === opt.key && sortConfig?.direction === "desc";
10263
10226
  const isRowActive = isAscActive || isDescActive;
10264
10227
  return /* @__PURE__ */ React110.createElement(
10265
- Box24,
10228
+ Box25,
10266
10229
  {
10267
10230
  key: opt.key,
10268
10231
  px: "sm",
@@ -10273,7 +10236,7 @@ function DynamicListBlock({ block, editor }) {
10273
10236
  margin: "2px 4px"
10274
10237
  }
10275
10238
  },
10276
- /* @__PURE__ */ React110.createElement(Flex22, { align: "center", justify: "space-between", gap: "xs" }, /* @__PURE__ */ React110.createElement(
10239
+ /* @__PURE__ */ React110.createElement(Flex21, { align: "center", justify: "space-between", gap: "xs" }, /* @__PURE__ */ React110.createElement(
10277
10240
  ActionIcon12,
10278
10241
  {
10279
10242
  variant: "subtle",
@@ -10311,7 +10274,7 @@ function DynamicListBlock({ block, editor }) {
10311
10274
  /* @__PURE__ */ React110.createElement(IconArrowDown3, { size: 14 })
10312
10275
  ))
10313
10276
  );
10314
- })), /* @__PURE__ */ React110.createElement(Menu2.Divider, null)), parsedColumns.length > 0 && /* @__PURE__ */ React110.createElement(React110.Fragment, null, /* @__PURE__ */ React110.createElement(Menu2.Label, { onClick: () => setColumnsCollapsed(!columnsCollapsed), style: { cursor: "pointer" } }, /* @__PURE__ */ React110.createElement(Flex22, { align: "center", gap: 10 }, columnsCollapsed ? /* @__PURE__ */ React110.createElement(IconChevronRight5, { size: 14 }) : /* @__PURE__ */ React110.createElement(IconChevronDown6, { size: 14 }), /* @__PURE__ */ React110.createElement(Text55, { fz: "14" }, "Columns"))), /* @__PURE__ */ React110.createElement(Collapse6, { in: !columnsCollapsed }, parsedColumns.map((col) => /* @__PURE__ */ React110.createElement(Box24, { key: col.key, px: "sm", py: 4, style: { margin: "2px 4px" } }, /* @__PURE__ */ React110.createElement(Flex22, { align: "center", justify: "space-between", gap: "xs" }, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", style: { flex: 1, minWidth: 0 }, lineClamp: 1 }, col.label), /* @__PURE__ */ React110.createElement(
10277
+ })), /* @__PURE__ */ React110.createElement(Menu2.Divider, null)), parsedColumns.length > 0 && /* @__PURE__ */ React110.createElement(React110.Fragment, null, /* @__PURE__ */ React110.createElement(Menu2.Label, { onClick: () => setColumnsCollapsed(!columnsCollapsed), style: { cursor: "pointer" } }, /* @__PURE__ */ React110.createElement(Flex21, { align: "center", gap: 10 }, columnsCollapsed ? /* @__PURE__ */ React110.createElement(IconChevronRight5, { size: 14 }) : /* @__PURE__ */ React110.createElement(IconChevronDown6, { size: 14 }), /* @__PURE__ */ React110.createElement(Text55, { fz: "14" }, "Columns"))), /* @__PURE__ */ React110.createElement(Collapse6, { in: !columnsCollapsed }, parsedColumns.map((col) => /* @__PURE__ */ React110.createElement(Box25, { key: col.key, px: "sm", py: 4, style: { margin: "2px 4px" } }, /* @__PURE__ */ React110.createElement(Flex21, { align: "center", justify: "space-between", gap: "xs" }, /* @__PURE__ */ React110.createElement(Text55, { fz: "xs", style: { flex: 1, minWidth: 0 }, lineClamp: 1 }, col.label), /* @__PURE__ */ React110.createElement(
10315
10278
  Select3,
10316
10279
  {
10317
10280
  size: "xs",
@@ -10363,8 +10326,8 @@ function DynamicListBlock({ block, editor }) {
10363
10326
  ))), !useSnapshot && liveData.loading && /* @__PURE__ */ React110.createElement(Paper11, { p: "lg", bg: "var(--mantine-color-dark-6)", radius: "sm" }, /* @__PURE__ */ React110.createElement(Text55, { c: "dimmed", ta: "center" }, "Loading data...")), !useSnapshot && liveData.error && /* @__PURE__ */ React110.createElement(Paper11, { p: "lg", bg: "var(--mantine-color-red-9)", radius: "sm" }, /* @__PURE__ */ React110.createElement(Text55, { c: "white", ta: "center" }, "Error: ", liveData.error)), hasData && paginatedData && /* @__PURE__ */ React110.createElement(Stack82, { gap: "xs" }, paginatedData.map((row, index) => {
10364
10327
  const rowId = getRowId(row, index);
10365
10328
  const isChecked = isItemChecked(rowId);
10366
- return /* @__PURE__ */ React110.createElement(ListItemContainer, { key: rowId, isChecked, onClick: () => onItemCheck(rowId, !isChecked) }, /* @__PURE__ */ React110.createElement(Flex22, { align: "center", gap: "sm" }, /* @__PURE__ */ React110.createElement(Stack82, { gap: 2 }, renderField(row, columnsByPosition.topLeft), columnsByPosition.bottomLeft && /* @__PURE__ */ React110.createElement(Text55, { size: "xs", c: columnsByPosition.bottomLeft.color || "dimmed", lineClamp: 1 }, formatValue2(row[columnsByPosition.bottomLeft.key], columnsByPosition.bottomLeft.type) || ""))), /* @__PURE__ */ React110.createElement(Flex22, { align: "center", gap: "md" }, /* @__PURE__ */ React110.createElement(Stack82, { gap: 2, align: "flex-end" }, columnsByPosition.topRight && /* @__PURE__ */ React110.createElement(Text55, { size: "sm", fw: 500, c: columnsByPosition.topRight.color || void 0 }, formatValue2(row[columnsByPosition.topRight.key], columnsByPosition.topRight.type) || ""), columnsByPosition.bottomRight && /* @__PURE__ */ React110.createElement(Text55, { size: "xs", c: columnsByPosition.bottomRight.color || "dimmed", tt: "capitalize" }, formatValue2(row[columnsByPosition.bottomRight.key], columnsByPosition.bottomRight.type) || "")), isMultiSelect && /* @__PURE__ */ React110.createElement(ListItemCheckbox, { ariaLabel: `Select ${rowId}`, checked: isChecked, onCheck: (checked) => onItemCheck(rowId, checked) })));
10367
- })), hasData && totalPages > 1 && /* @__PURE__ */ React110.createElement(ListPagination, { page, setPage, totalPages }), !hasData && !liveData.loading && searchQuery && rawData && rawData.length > 0 && /* @__PURE__ */ React110.createElement(Text55, { c: "dimmed", ta: "center", fz: "sm" }, "No matching items for \u201C", searchQuery, "\u201D"), !hasData && !liveData.loading && !searchQuery && parsedDataSource && /* @__PURE__ */ React110.createElement(Paper11, { p: "lg", bg: "var(--mantine-color-dark-6)", radius: "sm" }, /* @__PURE__ */ React110.createElement(Stack82, { gap: "sm" }, /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, /* @__PURE__ */ React110.createElement(IconSparkles2, { size: 16, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React110.createElement(Text55, { fz: "sm", fw: 500 }, "Data Source")), parsedDataSource.oracleName && /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, /* @__PURE__ */ React110.createElement(Text55, { size: "xs", c: "dimmed" }, "Oracle:"), /* @__PURE__ */ React110.createElement(Badge15, { size: "sm", variant: "light" }, parsedDataSource.oracleName)), parsedDataSource.query && /* @__PURE__ */ React110.createElement(Box24, null, /* @__PURE__ */ React110.createElement(Text55, { size: "xs", c: "dimmed", mb: 4 }, "Query:"), /* @__PURE__ */ React110.createElement(Code4, { block: true, style: { fontSize: "12px", whiteSpace: "pre-wrap" } }, parsedDataSource.query)), parsedDataSource.description && /* @__PURE__ */ React110.createElement(Text55, { size: "xs", c: "dimmed", fs: "italic" }, parsedDataSource.description), /* @__PURE__ */ React110.createElement(Text55, { size: "xs", c: "dimmed", ta: "center", mt: "xs" }, "Ask your oracle this query to populate the list."))), !hasData && !liveData.loading && !searchQuery && !parsedDataSource && /* @__PURE__ */ React110.createElement(Paper11, { p: "lg", bg: "var(--mantine-color-dark-6)", radius: "sm" }, /* @__PURE__ */ React110.createElement(Text55, { c: "dimmed", ta: "center", fz: "sm" }, "No data available. Add data from the AG-UI Canvas.")))));
10329
+ return /* @__PURE__ */ React110.createElement(ListItemContainer, { key: rowId, isChecked, onClick: () => onItemCheck(rowId, !isChecked) }, /* @__PURE__ */ React110.createElement(Flex21, { align: "center", gap: "sm" }, /* @__PURE__ */ React110.createElement(Stack82, { gap: 2 }, renderField(row, columnsByPosition.topLeft), columnsByPosition.bottomLeft && /* @__PURE__ */ React110.createElement(Text55, { size: "xs", c: columnsByPosition.bottomLeft.color || "dimmed", lineClamp: 1 }, formatValue2(row[columnsByPosition.bottomLeft.key], columnsByPosition.bottomLeft.type) || ""))), /* @__PURE__ */ React110.createElement(Flex21, { align: "center", gap: "md" }, /* @__PURE__ */ React110.createElement(Stack82, { gap: 2, align: "flex-end" }, columnsByPosition.topRight && /* @__PURE__ */ React110.createElement(Text55, { size: "sm", fw: 500, c: columnsByPosition.topRight.color || void 0 }, formatValue2(row[columnsByPosition.topRight.key], columnsByPosition.topRight.type) || ""), columnsByPosition.bottomRight && /* @__PURE__ */ React110.createElement(Text55, { size: "xs", c: columnsByPosition.bottomRight.color || "dimmed", tt: "capitalize" }, formatValue2(row[columnsByPosition.bottomRight.key], columnsByPosition.bottomRight.type) || "")), isMultiSelect && /* @__PURE__ */ React110.createElement(ListItemCheckbox, { ariaLabel: `Select ${rowId}`, checked: isChecked, onCheck: (checked) => onItemCheck(rowId, checked) })));
10330
+ })), hasData && totalPages > 1 && /* @__PURE__ */ React110.createElement(ListPagination, { page, setPage, totalPages }), !hasData && !liveData.loading && searchQuery && rawData && rawData.length > 0 && /* @__PURE__ */ React110.createElement(Text55, { c: "dimmed", ta: "center", fz: "sm" }, "No matching items for \u201C", searchQuery, "\u201D"), !hasData && !liveData.loading && !searchQuery && parsedDataSource && /* @__PURE__ */ React110.createElement(Paper11, { p: "lg", bg: "var(--mantine-color-dark-6)", radius: "sm" }, /* @__PURE__ */ React110.createElement(Stack82, { gap: "sm" }, /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, /* @__PURE__ */ React110.createElement(IconSparkles2, { size: 16, color: "var(--mantine-color-blue-4)" }), /* @__PURE__ */ React110.createElement(Text55, { fz: "sm", fw: 500 }, "Data Source")), parsedDataSource.oracleName && /* @__PURE__ */ React110.createElement(Group33, { gap: "xs" }, /* @__PURE__ */ React110.createElement(Text55, { size: "xs", c: "dimmed" }, "Oracle:"), /* @__PURE__ */ React110.createElement(Badge15, { size: "sm", variant: "light" }, parsedDataSource.oracleName)), parsedDataSource.query && /* @__PURE__ */ React110.createElement(Box25, null, /* @__PURE__ */ React110.createElement(Text55, { size: "xs", c: "dimmed", mb: 4 }, "Query:"), /* @__PURE__ */ React110.createElement(Code4, { block: true, style: { fontSize: "12px", whiteSpace: "pre-wrap" } }, parsedDataSource.query)), parsedDataSource.description && /* @__PURE__ */ React110.createElement(Text55, { size: "xs", c: "dimmed", fs: "italic" }, parsedDataSource.description), /* @__PURE__ */ React110.createElement(Text55, { size: "xs", c: "dimmed", ta: "center", mt: "xs" }, "Ask your oracle this query to populate the list."))), !hasData && !liveData.loading && !searchQuery && !parsedDataSource && /* @__PURE__ */ React110.createElement(Paper11, { p: "lg", bg: "var(--mantine-color-dark-6)", radius: "sm" }, /* @__PURE__ */ React110.createElement(Text55, { c: "dimmed", ta: "center", fz: "sm" }, "No data available. Add data from the AG-UI Canvas.")))));
10368
10331
  }
10369
10332
 
10370
10333
  // src/mantine/blocks/dynamicList/DynamicListBlockSpec.tsx
@@ -10410,23 +10373,23 @@ var DynamicListBlockSpec = createReactBlockSpec6(
10410
10373
  // src/mantine/blocks/enumChecklist/EnumChecklistBlock.tsx
10411
10374
  import React118, { useState as useState36, useEffect as useEffect21, useMemo as useMemo20, useCallback as useCallback21 } from "react";
10412
10375
  import { createReactBlockSpec as createReactBlockSpec7 } from "@blocknote/react";
10413
- import { Stack as Stack88, Text as Text61, Button as Button25, ActionIcon as ActionIcon13, Center as Center5, Flex as Flex24 } from "@mantine/core";
10376
+ import { Stack as Stack88, Text as Text61, Button as Button25, ActionIcon as ActionIcon13, Center as Center5, Flex as Flex23 } from "@mantine/core";
10414
10377
 
10415
10378
  // src/mantine/blocks/enumChecklist/oracle_personalities/index.tsx
10416
10379
  import React112 from "react";
10417
- import { Box as Box25, Flex as Flex23, Stack as Stack83, Text as Text56, Image as Image14 } from "@mantine/core";
10380
+ import { Box as Box26, Flex as Flex22, Stack as Stack83, Text as Text56, Image as Image14 } from "@mantine/core";
10418
10381
  function OraclePersonalitiesEnumList({ selectionMode, isItemChecked, onItemCheck, items }) {
10419
10382
  if (!items || items.length === 0) {
10420
10383
  return /* @__PURE__ */ React112.createElement(Text56, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No assets found");
10421
10384
  }
10422
10385
  const rows = items.map(({ id, name, description, voice, icon }) => /* @__PURE__ */ React112.createElement(ListItemContainer, { key: id, isChecked: false, onClick: () => {
10423
- } }, /* @__PURE__ */ React112.createElement(Flex23, { align: "center", gap: "sm" }, /* @__PURE__ */ React112.createElement(Image14, { radius: 16, w: 62, h: 62, src: icon, alt: name }), /* @__PURE__ */ React112.createElement(Stack83, { gap: 0 }, /* @__PURE__ */ React112.createElement(Text56, { size: "sm", fw: 500 }, name || "-"), description !== void 0 && /* @__PURE__ */ React112.createElement(Text56, { size: "sm", c: "dimmed" }, description))), /* @__PURE__ */ React112.createElement(Flex23, { align: "center", gap: "md" }, /* @__PURE__ */ React112.createElement(Stack83, { ta: "right", gap: 0 }, /* @__PURE__ */ React112.createElement(Text56, { size: "sm", fw: 500 }, "Voice"), /* @__PURE__ */ React112.createElement(Text56, { size: "sm", c: "dimmed" }, voice)), selectionMode && /* @__PURE__ */ React112.createElement(ListItemCheckbox, { ariaLabel: `Select oracle ${name}`, checked: isItemChecked?.(id), onCheck: (checked) => onItemCheck?.(id, checked) }))));
10424
- return /* @__PURE__ */ React112.createElement(Box25, { flex: 1 }, /* @__PURE__ */ React112.createElement(Stack83, null, rows));
10386
+ } }, /* @__PURE__ */ React112.createElement(Flex22, { align: "center", gap: "sm" }, /* @__PURE__ */ React112.createElement(Image14, { radius: 16, w: 62, h: 62, src: icon, alt: name }), /* @__PURE__ */ React112.createElement(Stack83, { gap: 0 }, /* @__PURE__ */ React112.createElement(Text56, { size: "sm", fw: 500 }, name || "-"), description !== void 0 && /* @__PURE__ */ React112.createElement(Text56, { size: "sm", c: "dimmed" }, description))), /* @__PURE__ */ React112.createElement(Flex22, { align: "center", gap: "md" }, /* @__PURE__ */ React112.createElement(Stack83, { ta: "right", gap: 0 }, /* @__PURE__ */ React112.createElement(Text56, { size: "sm", fw: 500 }, "Voice"), /* @__PURE__ */ React112.createElement(Text56, { size: "sm", c: "dimmed" }, voice)), selectionMode && /* @__PURE__ */ React112.createElement(ListItemCheckbox, { ariaLabel: `Select oracle ${name}`, checked: isItemChecked?.(id), onCheck: (checked) => onItemCheck?.(id, checked) }))));
10387
+ return /* @__PURE__ */ React112.createElement(Box26, { flex: 1 }, /* @__PURE__ */ React112.createElement(Stack83, null, rows));
10425
10388
  }
10426
10389
 
10427
10390
  // src/mantine/blocks/enumChecklist/EnumChecklistConfigModal.tsx
10428
10391
  import React117, { useState as useState35 } from "react";
10429
- import { Modal, Group as Group37, Box as Box27 } from "@mantine/core";
10392
+ import { Modal, Group as Group37, Box as Box28 } from "@mantine/core";
10430
10393
 
10431
10394
  // src/mantine/blocks/list/modal/ModalNavigation.tsx
10432
10395
  import React113 from "react";
@@ -10456,7 +10419,7 @@ var ModalNavigation = ({ steps, activeStep, onStepChange, showUpdateButton = fal
10456
10419
 
10457
10420
  // src/mantine/blocks/enumChecklist/EnumChecklistTypeSelection.tsx
10458
10421
  import React114 from "react";
10459
- import { Stack as Stack85, Card as Card15, Group as Group34, Text as Text58, Box as Box26, Button as Button22 } from "@mantine/core";
10422
+ import { Stack as Stack85, Card as Card15, Group as Group34, Text as Text58, Box as Box27, Button as Button22 } from "@mantine/core";
10460
10423
 
10461
10424
  // src/mantine/blocks/enumChecklist/oracle_personalities/config.ts
10462
10425
  var oraclePersonalitiesMetadata = {
@@ -10599,7 +10562,7 @@ var EnumChecklistTypeSelection = ({ selectedType, onTypeSelect, onNext }) => {
10599
10562
  onClick: () => onTypeSelect(enumChecklistMeta.id)
10600
10563
  },
10601
10564
  /* @__PURE__ */ React114.createElement(Group34, { gap: "md", align: "flex-start" }, /* @__PURE__ */ React114.createElement(
10602
- Box26,
10565
+ Box27,
10603
10566
  {
10604
10567
  style: {
10605
10568
  width: 48,
@@ -10771,7 +10734,7 @@ var EnumChecklistConfigModal = ({ opened, onClose, onSave, initialConfig }) => {
10771
10734
  return null;
10772
10735
  }
10773
10736
  };
10774
- return /* @__PURE__ */ React117.createElement(Modal, { opened, onClose: handleClose, title: "Configure Enum Checklist Block", size: "xl" }, /* @__PURE__ */ React117.createElement(Group37, { align: "flex-start", gap: "lg", style: { minHeight: "400px" } }, /* @__PURE__ */ React117.createElement(Box27, { style: { width: "200px", flexShrink: 0, height: "400px", display: "flex" } }, /* @__PURE__ */ React117.createElement(ModalNavigation, { steps, activeStep, onStepChange: setActiveStep, showUpdateButton: selectedType !== null, onUpdateBlock: handleAddToBlock })), /* @__PURE__ */ React117.createElement(Box27, { style: { flex: 1 } }, renderStepContent())));
10737
+ return /* @__PURE__ */ React117.createElement(Modal, { opened, onClose: handleClose, title: "Configure Enum Checklist Block", size: "xl" }, /* @__PURE__ */ React117.createElement(Group37, { align: "flex-start", gap: "lg", style: { minHeight: "400px" } }, /* @__PURE__ */ React117.createElement(Box28, { style: { width: "200px", flexShrink: 0, height: "400px", display: "flex" } }, /* @__PURE__ */ React117.createElement(ModalNavigation, { steps, activeStep, onStepChange: setActiveStep, showUpdateButton: selectedType !== null, onUpdateBlock: handleAddToBlock })), /* @__PURE__ */ React117.createElement(Box28, { style: { flex: 1 } }, renderStepContent())));
10775
10738
  };
10776
10739
 
10777
10740
  // src/mantine/blocks/enumChecklist/EnumChecklistBlock.tsx
@@ -10872,7 +10835,7 @@ var EnumChecklistBlockContent = ({ block, editor }) => {
10872
10835
  return null;
10873
10836
  }
10874
10837
  };
10875
- return /* @__PURE__ */ React118.createElement(Stack88, { w: "100%" }, listType && /* @__PURE__ */ React118.createElement(Flex24, { align: "center", justify: "space-between", gap: "xs" }, /* @__PURE__ */ React118.createElement(Text61, null, getEnumListNameByType(listType)), listConfig.listSelectionMode && /* @__PURE__ */ React118.createElement(Text61, { lh: 0.5, c: "dimmed" }, listConfig?.selection_mode === "single" ? "Single Selection" : "Multi Selection"), editable && /* @__PURE__ */ React118.createElement(Flex24, { justify: listType ? "space-between" : "flex-end" }, /* @__PURE__ */ React118.createElement(Flex24, { gap: "xs" }, /* @__PURE__ */ React118.createElement(ActionIcon13, { variant: "subtle", size: "sm", onClick: () => setModalOpened(true) }, /* @__PURE__ */ React118.createElement(IconSettings3, null))))), /* @__PURE__ */ React118.createElement(Flex24, { flex: 1 }, !listType ? /* @__PURE__ */ React118.createElement(Center5, { py: "xl" }, /* @__PURE__ */ React118.createElement(Stack88, { align: "center", gap: "sm" }, /* @__PURE__ */ React118.createElement(Text61, { size: "sm", c: "dimmed", ta: "center" }, "No list type configured"), /* @__PURE__ */ React118.createElement(Button25, { size: "sm", variant: "light", onClick: () => setModalOpened(true) }, "Configure List"))) : /* @__PURE__ */ React118.createElement(Stack88, { gap: "md", flex: 1 }, renderListComponent())), /* @__PURE__ */ React118.createElement(
10838
+ return /* @__PURE__ */ React118.createElement(Stack88, { w: "100%" }, listType && /* @__PURE__ */ React118.createElement(Flex23, { align: "center", justify: "space-between", gap: "xs" }, /* @__PURE__ */ React118.createElement(Text61, null, getEnumListNameByType(listType)), listConfig.listSelectionMode && /* @__PURE__ */ React118.createElement(Text61, { lh: 0.5, c: "dimmed" }, listConfig?.selection_mode === "single" ? "Single Selection" : "Multi Selection"), editable && /* @__PURE__ */ React118.createElement(Flex23, { justify: listType ? "space-between" : "flex-end" }, /* @__PURE__ */ React118.createElement(Flex23, { gap: "xs" }, /* @__PURE__ */ React118.createElement(ActionIcon13, { variant: "subtle", size: "sm", onClick: () => setModalOpened(true) }, /* @__PURE__ */ React118.createElement(IconSettings3, null))))), /* @__PURE__ */ React118.createElement(Flex23, { flex: 1 }, !listType ? /* @__PURE__ */ React118.createElement(Center5, { py: "xl" }, /* @__PURE__ */ React118.createElement(Stack88, { align: "center", gap: "sm" }, /* @__PURE__ */ React118.createElement(Text61, { size: "sm", c: "dimmed", ta: "center" }, "No list type configured"), /* @__PURE__ */ React118.createElement(Button25, { size: "sm", variant: "light", onClick: () => setModalOpened(true) }, "Configure List"))) : /* @__PURE__ */ React118.createElement(Stack88, { gap: "md", flex: 1 }, renderListComponent())), /* @__PURE__ */ React118.createElement(
10876
10839
  EnumChecklistConfigModal,
10877
10840
  {
10878
10841
  opened: modalOpened,
@@ -11720,7 +11683,7 @@ var ClaimTemplateView = ({ editor, block }) => {
11720
11683
 
11721
11684
  // src/mantine/blocks/claim/flow/FlowView.tsx
11722
11685
  import React131, { useMemo as useMemo28 } from "react";
11723
- import { Stack as Stack96, Text as Text69, Loader as Loader12, Center as Center7, Alert as Alert16, Title as Title7, Flex as Flex25, ActionIcon as ActionIcon18 } from "@mantine/core";
11686
+ import { Stack as Stack96, Text as Text69, Loader as Loader12, Center as Center7, Alert as Alert16, Title as Title7, Flex as Flex24, ActionIcon as ActionIcon18 } from "@mantine/core";
11724
11687
 
11725
11688
  // src/mantine/hooks/useCurrentUser.ts
11726
11689
  import { useState as useState41, useEffect as useEffect25, useRef as useRef4 } from "react";
@@ -12291,7 +12254,7 @@ var ClaimsListSheet = ({ collectionId, collectionName, deedId, adminAddress, use
12291
12254
  };
12292
12255
 
12293
12256
  // src/mantine/blocks/claim/flow/ClaimCollectionsList.tsx
12294
- import { IconArrowRight as IconArrowRight2 } from "@tabler/icons-react";
12257
+ import { IconArrowRight } from "@tabler/icons-react";
12295
12258
  var CollectionItem = ({ collection, deedId, adminAddress, userRole, onRefresh, execution }) => {
12296
12259
  console.log("[CollectionItem] RENDER START", { collectionId: collection.id, userRole });
12297
12260
  const { getCurrentUser } = useBlocknoteHandlers();
@@ -12342,7 +12305,7 @@ var CollectionItem = ({ collection, deedId, adminAddress, userRole, onRefresh, e
12342
12305
  }
12343
12306
  };
12344
12307
  return /* @__PURE__ */ React130.createElement("div", { style: { opacity: canAccessClaims ? 1 : 0.5 } }, /* @__PURE__ */ React130.createElement(ListItemContainer, { isChecked: false, onClick: () => {
12345
- } }, /* @__PURE__ */ React130.createElement(Stack95, { gap: 4, style: { flex: 1 } }, /* @__PURE__ */ React130.createElement(Text68, { size: "sm", fw: 500, c: canAccessClaims ? void 0 : "dimmed" }, collectionName), collection.description && /* @__PURE__ */ React130.createElement(Text68, { size: "xs", c: "dimmed" }, collection.description)), /* @__PURE__ */ React130.createElement(Tooltip12, { label: "You need to apply to be a service agent first", disabled: canAccessClaims, position: "left", withArrow: true }, /* @__PURE__ */ React130.createElement(ActionIcon17, { variant: "subtle", size: "lg", onClick: handleClick, disabled: !canAccessClaims, style: { cursor: canAccessClaims ? "pointer" : "not-allowed" } }, /* @__PURE__ */ React130.createElement(IconArrowRight2, { size: 20 })))));
12308
+ } }, /* @__PURE__ */ React130.createElement(Stack95, { gap: 4, style: { flex: 1 } }, /* @__PURE__ */ React130.createElement(Text68, { size: "sm", fw: 500, c: canAccessClaims ? void 0 : "dimmed" }, collectionName), collection.description && /* @__PURE__ */ React130.createElement(Text68, { size: "xs", c: "dimmed" }, collection.description)), /* @__PURE__ */ React130.createElement(Tooltip12, { label: "You need to apply to be a service agent first", disabled: canAccessClaims, position: "left", withArrow: true }, /* @__PURE__ */ React130.createElement(ActionIcon17, { variant: "subtle", size: "lg", onClick: handleClick, disabled: !canAccessClaims, style: { cursor: canAccessClaims ? "pointer" : "not-allowed" } }, /* @__PURE__ */ React130.createElement(IconArrowRight, { size: 20 })))));
12346
12309
  };
12347
12310
  var ClaimCollectionsList = ({ collections, deedId, adminAddress, userAddress, onRefresh, execution }) => {
12348
12311
  const { userRoles, loading: loadingRoles } = useUserRoles(collections, userAddress, adminAddress, deedId);
@@ -12423,7 +12386,7 @@ var ClaimFlowView = ({ editor, block }) => {
12423
12386
  if (selectedCollectionIds.length === 0) {
12424
12387
  return /* @__PURE__ */ React131.createElement(Center7, { py: "xl" }, /* @__PURE__ */ React131.createElement(Text69, { size: "sm", c: "dimmed" }, "No claim collections selected"));
12425
12388
  }
12426
- return /* @__PURE__ */ React131.createElement(Stack96, { w: "100%" }, /* @__PURE__ */ React131.createElement(Flex25, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React131.createElement(Title7, { order: 4 }, "Submit Claims"), /* @__PURE__ */ React131.createElement(Flex25, { gap: "xs" }, /* @__PURE__ */ React131.createElement(ActionIcon18, { variant: "subtle", size: "sm", onClick: refetch, loading }, /* @__PURE__ */ React131.createElement(IconRefresh3, { size: 18 })), editable && /* @__PURE__ */ React131.createElement(ActionIcon18, { variant: "subtle", size: "sm", onClick: open }, /* @__PURE__ */ React131.createElement(IconSettings4, { size: 18 })))), loading ? /* @__PURE__ */ React131.createElement(Center7, { py: "xl" }, /* @__PURE__ */ React131.createElement(Loader12, { size: "md" })) : error ? /* @__PURE__ */ React131.createElement(Alert16, { color: "red", title: "Failed to load collections", icon: /* @__PURE__ */ React131.createElement(IconAlertCircle2, { size: 18 }) }, /* @__PURE__ */ React131.createElement(Text69, { size: "sm" }, error)) : /* @__PURE__ */ React131.createElement(
12389
+ return /* @__PURE__ */ React131.createElement(Stack96, { w: "100%" }, /* @__PURE__ */ React131.createElement(Flex24, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React131.createElement(Title7, { order: 4 }, "Submit Claims"), /* @__PURE__ */ React131.createElement(Flex24, { gap: "xs" }, /* @__PURE__ */ React131.createElement(ActionIcon18, { variant: "subtle", size: "sm", onClick: refetch, loading }, /* @__PURE__ */ React131.createElement(IconRefresh3, { size: 18 })), editable && /* @__PURE__ */ React131.createElement(ActionIcon18, { variant: "subtle", size: "sm", onClick: open }, /* @__PURE__ */ React131.createElement(IconSettings4, { size: 18 })))), loading ? /* @__PURE__ */ React131.createElement(Center7, { py: "xl" }, /* @__PURE__ */ React131.createElement(Loader12, { size: "md" })) : error ? /* @__PURE__ */ React131.createElement(Alert16, { color: "red", title: "Failed to load collections", icon: /* @__PURE__ */ React131.createElement(IconAlertCircle2, { size: 18 }) }, /* @__PURE__ */ React131.createElement(Text69, { size: "sm" }, error)) : /* @__PURE__ */ React131.createElement(
12427
12390
  ClaimCollectionsList,
12428
12391
  {
12429
12392
  collections,
@@ -12642,7 +12605,7 @@ var BidTemplateView = ({ editor, block }) => {
12642
12605
 
12643
12606
  // src/mantine/blocks/bid/flow/components/FlowView.tsx
12644
12607
  import React146, { useMemo as useMemo38 } from "react";
12645
- import { Stack as Stack104, Text as Text77, Loader as Loader18, Center as Center10, Alert as Alert19, Title as Title8, Flex as Flex26, ActionIcon as ActionIcon21 } from "@mantine/core";
12608
+ import { Stack as Stack104, Text as Text77, Loader as Loader18, Center as Center10, Alert as Alert19, Title as Title8, Flex as Flex25, ActionIcon as ActionIcon21 } from "@mantine/core";
12646
12609
  import { IconSettings as IconSettings5, IconRefresh as IconRefresh4, IconAlertCircle as IconAlertCircle5 } from "@tabler/icons-react";
12647
12610
 
12648
12611
  // src/mantine/blocks/bid/flow/components/ClaimCollectionsList.tsx
@@ -12651,8 +12614,8 @@ import { Stack as Stack103, Text as Text76, Loader as Loader17, Center as Center
12651
12614
 
12652
12615
  // src/mantine/blocks/bid/flow/components/CollectionItem.tsx
12653
12616
  import React144, { useMemo as useMemo37 } from "react";
12654
- import { Stack as Stack102, Text as Text75, Button as Button29, Menu as Menu3, Badge as Badge20, ActionIcon as ActionIcon20, Box as Box28, Tooltip as Tooltip13, Loader as Loader16 } from "@mantine/core";
12655
- import { IconChevronDown as IconChevronDown8, IconArrowRight as IconArrowRight4, IconLock } from "@tabler/icons-react";
12617
+ import { Stack as Stack102, Text as Text75, Button as Button29, Menu as Menu3, Badge as Badge20, ActionIcon as ActionIcon20, Box as Box29, Tooltip as Tooltip13, Loader as Loader16 } from "@mantine/core";
12618
+ import { IconChevronDown as IconChevronDown8, IconArrowRight as IconArrowRight3, IconLock } from "@tabler/icons-react";
12656
12619
 
12657
12620
  // src/mantine/hooks/useBlockAuthorization.ts
12658
12621
  import { useState as useState46, useEffect as useEffect30, useMemo as useMemo31 } from "react";
@@ -12874,7 +12837,7 @@ import { IconAlertCircle as IconAlertCircle4 } from "@tabler/icons-react";
12874
12837
  // src/mantine/blocks/bid/flow/components/BidItem.tsx
12875
12838
  import React140, { useMemo as useMemo36 } from "react";
12876
12839
  import { Stack as Stack100, Text as Text73, Badge as Badge19, Group as Group44, ActionIcon as ActionIcon19 } from "@mantine/core";
12877
- import { IconArrowRight as IconArrowRight3 } from "@tabler/icons-react";
12840
+ import { IconArrowRight as IconArrowRight2 } from "@tabler/icons-react";
12878
12841
 
12879
12842
  // src/mantine/blocks/bid/flow/components/BidViewPanel.tsx
12880
12843
  import React139, { useMemo as useMemo35, useState as useState50 } from "react";
@@ -13153,7 +13116,7 @@ var BidItem = ({ bid, deedId, adminAddress, onRefresh, execution }) => {
13153
13116
  const displayStatus = bid.status;
13154
13117
  const displayReason = bid.reason;
13155
13118
  return /* @__PURE__ */ React140.createElement(ListItemContainer, { isChecked: false, onClick: () => {
13156
- } }, /* @__PURE__ */ React140.createElement(Stack100, { gap: 4, style: { flex: 1 } }, /* @__PURE__ */ React140.createElement(Group44, { gap: "xs" }, /* @__PURE__ */ React140.createElement(Text73, { size: "xs", fw: 500 }, loadingProfile ? "Loading..." : displayName), userProfile?.verified && /* @__PURE__ */ React140.createElement(Text73, { size: "xs", c: "blue", fw: 600, title: "Verified user" }, "\u2713"), /* @__PURE__ */ React140.createElement(Badge19, { size: "xs", variant: "light", color: getRoleColor(bid.role) }, getRoleLabel(bid.role))), /* @__PURE__ */ React140.createElement(Text73, { size: "xs", c: "dimmed" }, "Submitted: ", formatDate(displayDate)), displayStatus === "rejected" && displayReason && /* @__PURE__ */ React140.createElement(Text73, { size: "xs", c: "red" }, "Reason: ", displayReason)), /* @__PURE__ */ React140.createElement(Group44, { gap: "xs" }, displayStatus && /* @__PURE__ */ React140.createElement(Badge19, { size: "sm", color: getStatusColor(displayStatus) }, getStatusLabel(displayStatus)), /* @__PURE__ */ React140.createElement(ActionIcon19, { variant: "subtle", size: "lg", onClick: openBidPanel }, /* @__PURE__ */ React140.createElement(IconArrowRight3, { size: 20 }))));
13119
+ } }, /* @__PURE__ */ React140.createElement(Stack100, { gap: 4, style: { flex: 1 } }, /* @__PURE__ */ React140.createElement(Group44, { gap: "xs" }, /* @__PURE__ */ React140.createElement(Text73, { size: "xs", fw: 500 }, loadingProfile ? "Loading..." : displayName), userProfile?.verified && /* @__PURE__ */ React140.createElement(Text73, { size: "xs", c: "blue", fw: 600, title: "Verified user" }, "\u2713"), /* @__PURE__ */ React140.createElement(Badge19, { size: "xs", variant: "light", color: getRoleColor(bid.role) }, getRoleLabel(bid.role))), /* @__PURE__ */ React140.createElement(Text73, { size: "xs", c: "dimmed" }, "Submitted: ", formatDate(displayDate)), displayStatus === "rejected" && displayReason && /* @__PURE__ */ React140.createElement(Text73, { size: "xs", c: "red" }, "Reason: ", displayReason)), /* @__PURE__ */ React140.createElement(Group44, { gap: "xs" }, displayStatus && /* @__PURE__ */ React140.createElement(Badge19, { size: "sm", color: getStatusColor(displayStatus) }, getStatusLabel(displayStatus)), /* @__PURE__ */ React140.createElement(ActionIcon19, { variant: "subtle", size: "lg", onClick: openBidPanel }, /* @__PURE__ */ React140.createElement(IconArrowRight2, { size: 20 }))));
13157
13120
  };
13158
13121
 
13159
13122
  // src/mantine/blocks/bid/flow/hooks/useBids.ts
@@ -13309,7 +13272,7 @@ var CollectionItem2 = ({ collection, deedId, adminAddress, userRole, onRefresh,
13309
13272
  return /* @__PURE__ */ React144.createElement(Loader16, { size: "xs" });
13310
13273
  }
13311
13274
  if (userRole === "PO" /* Owner */) {
13312
- return /* @__PURE__ */ React144.createElement(ActionIcon20, { variant: "subtle", size: "lg", onClick: openBidsList }, /* @__PURE__ */ React144.createElement(IconArrowRight4, { size: 20 }));
13275
+ return /* @__PURE__ */ React144.createElement(ActionIcon20, { variant: "subtle", size: "lg", onClick: openBidsList }, /* @__PURE__ */ React144.createElement(IconArrowRight3, { size: 20 }));
13313
13276
  } else if (userRole === "SA" /* ServiceProvider */ || userRole === "EA" /* Evaluator */) {
13314
13277
  return /* @__PURE__ */ React144.createElement(Badge20, { size: "sm", color: getRoleColor(userRole) }, getRoleLabel(userRole));
13315
13278
  } else {
@@ -13326,7 +13289,7 @@ var CollectionItem2 = ({ collection, deedId, adminAddress, userRole, onRefresh,
13326
13289
  return /* @__PURE__ */ React144.createElement(UserPlus_default, null);
13327
13290
  };
13328
13291
  return /* @__PURE__ */ React144.createElement(ListItemContainer, { isChecked: false, onClick: () => {
13329
- } }, /* @__PURE__ */ React144.createElement(Box28, { mr: "md", style: { display: "flex", alignItems: "center" } }, getCollectionIcon()), /* @__PURE__ */ React144.createElement(Stack102, { gap: 4, style: { flex: 1 } }, /* @__PURE__ */ React144.createElement(Text75, { size: "sm", fw: 500 }, getCollectionName(collection)), collection.description && /* @__PURE__ */ React144.createElement(Text75, { size: "xs", c: "dimmed" }, collection.description)), renderActionButton());
13292
+ } }, /* @__PURE__ */ React144.createElement(Box29, { mr: "md", style: { display: "flex", alignItems: "center" } }, getCollectionIcon()), /* @__PURE__ */ React144.createElement(Stack102, { gap: 4, style: { flex: 1 } }, /* @__PURE__ */ React144.createElement(Text75, { size: "sm", fw: 500 }, getCollectionName(collection)), collection.description && /* @__PURE__ */ React144.createElement(Text75, { size: "xs", c: "dimmed" }, collection.description)), renderActionButton());
13330
13293
  };
13331
13294
 
13332
13295
  // src/mantine/blocks/bid/flow/components/ClaimCollectionsList.tsx
@@ -13411,7 +13374,7 @@ var BidFlowView = ({ editor, block }) => {
13411
13374
  if (selectedCollectionIds.length === 0) {
13412
13375
  return /* @__PURE__ */ React146.createElement(Center10, { py: "xl" }, /* @__PURE__ */ React146.createElement(Text77, { size: "sm", c: "dimmed" }, "No claim collections selected"));
13413
13376
  }
13414
- return /* @__PURE__ */ React146.createElement(Stack104, { w: "100%" }, /* @__PURE__ */ React146.createElement(Flex26, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React146.createElement(Title8, { order: 4 }, "Bid Application"), /* @__PURE__ */ React146.createElement(Flex26, { gap: "xs" }, /* @__PURE__ */ React146.createElement(ActionIcon21, { variant: "subtle", size: "sm", onClick: refetch, loading }, /* @__PURE__ */ React146.createElement(IconRefresh4, { size: 18 })), editable && /* @__PURE__ */ React146.createElement(ActionIcon21, { variant: "subtle", size: "sm", onClick: open }, /* @__PURE__ */ React146.createElement(IconSettings5, { size: 18 })))), loading ? /* @__PURE__ */ React146.createElement(Center10, { py: "xl" }, /* @__PURE__ */ React146.createElement(Loader18, { size: "md" })) : error ? /* @__PURE__ */ React146.createElement(Alert19, { color: "red", title: "Failed to load collections", icon: /* @__PURE__ */ React146.createElement(IconAlertCircle5, { size: 18 }) }, /* @__PURE__ */ React146.createElement(Text77, { size: "sm" }, error)) : /* @__PURE__ */ React146.createElement(
13377
+ return /* @__PURE__ */ React146.createElement(Stack104, { w: "100%" }, /* @__PURE__ */ React146.createElement(Flex25, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React146.createElement(Title8, { order: 4 }, "Bid Application"), /* @__PURE__ */ React146.createElement(Flex25, { gap: "xs" }, /* @__PURE__ */ React146.createElement(ActionIcon21, { variant: "subtle", size: "sm", onClick: refetch, loading }, /* @__PURE__ */ React146.createElement(IconRefresh4, { size: 18 })), editable && /* @__PURE__ */ React146.createElement(ActionIcon21, { variant: "subtle", size: "sm", onClick: open }, /* @__PURE__ */ React146.createElement(IconSettings5, { size: 18 })))), loading ? /* @__PURE__ */ React146.createElement(Center10, { py: "xl" }, /* @__PURE__ */ React146.createElement(Loader18, { size: "md" })) : error ? /* @__PURE__ */ React146.createElement(Alert19, { color: "red", title: "Failed to load collections", icon: /* @__PURE__ */ React146.createElement(IconAlertCircle5, { size: 18 }) }, /* @__PURE__ */ React146.createElement(Text77, { size: "sm" }, error)) : /* @__PURE__ */ React146.createElement(
13415
13378
  ClaimCollectionsList2,
13416
13379
  {
13417
13380
  collections,
@@ -13606,7 +13569,7 @@ var EvaluatorTemplateView = ({ editor, block }) => {
13606
13569
 
13607
13570
  // src/mantine/blocks/evaluator/flow/FlowView.tsx
13608
13571
  import React154, { useMemo as useMemo43 } from "react";
13609
- import { Stack as Stack108, Text as Text81, Loader as Loader21, Center as Center12, Alert as Alert21, Title as Title10, Flex as Flex27, ActionIcon as ActionIcon24 } from "@mantine/core";
13572
+ import { Stack as Stack108, Text as Text81, Loader as Loader21, Center as Center12, Alert as Alert21, Title as Title10, Flex as Flex26, ActionIcon as ActionIcon24 } from "@mantine/core";
13610
13573
  import { IconSettings as IconSettings6, IconRefresh as IconRefresh6, IconAlertCircle as IconAlertCircle7 } from "@tabler/icons-react";
13611
13574
 
13612
13575
  // src/mantine/blocks/evaluator/flow/ClaimCollectionsList.tsx
@@ -13616,7 +13579,7 @@ import { Stack as Stack107, Text as Text80, ActionIcon as ActionIcon23, Tooltip
13616
13579
  // src/mantine/blocks/evaluator/flow/ClaimsList.tsx
13617
13580
  import React152, { useState as useState54, useEffect as useEffect37, useCallback as useCallback35, useMemo as useMemo41 } from "react";
13618
13581
  import { Paper as Paper13, CloseButton as CloseButton6, Title as Title9, Loader as Loader19, Stack as Stack106, Text as Text79, ActionIcon as ActionIcon22, Alert as Alert20, Badge as Badge21, Group as Group46, Button as Button30, Divider as Divider10 } from "@mantine/core";
13619
- import { IconAlertCircle as IconAlertCircle6, IconArrowRight as IconArrowRight5, IconRefresh as IconRefresh5, IconArrowLeft as IconArrowLeft4 } from "@tabler/icons-react";
13582
+ import { IconAlertCircle as IconAlertCircle6, IconArrowRight as IconArrowRight4, IconRefresh as IconRefresh5, IconArrowLeft as IconArrowLeft4 } from "@tabler/icons-react";
13620
13583
  import { Survey as Survey4, SurveyModel as SurveyModel4 } from "@ixo/surveys";
13621
13584
 
13622
13585
  // src/mantine/blocks/evaluator/flow/theme.ts
@@ -14071,12 +14034,12 @@ var ClaimListItem = ({ claim, onViewClaim }) => {
14071
14034
  style: { cursor: "pointer" }
14072
14035
  },
14073
14036
  /* @__PURE__ */ React152.createElement(ListItemContainer, { isChecked: false, onClick: () => {
14074
- } }, /* @__PURE__ */ React152.createElement(Stack106, { gap: 4, style: { flex: 1 } }, /* @__PURE__ */ React152.createElement(Text79, { size: "sm", fw: 500 }, "Claim #", claim.claimId.slice(-8)), /* @__PURE__ */ React152.createElement(Text79, { size: "xs", c: "dimmed" }, "Submitted: ", formatDate2(claim.submissionDate || claim.submittedAt)), claim.agentDid && /* @__PURE__ */ React152.createElement(Group46, { gap: 4 }, /* @__PURE__ */ React152.createElement(Text79, { size: "xs", c: "dimmed" }, "Agent: ", loadingProfile ? "Loading..." : displayName), userProfile?.verified && /* @__PURE__ */ React152.createElement(Text79, { size: "xs", c: "blue", fw: 600, title: "Verified user" }, "\u2713"))), /* @__PURE__ */ React152.createElement(Stack106, { gap: 4, align: "flex-end" }, /* @__PURE__ */ React152.createElement(Badge21, { color: claimStatus.color, size: "sm" }, claimStatus.status), /* @__PURE__ */ React152.createElement(ActionIcon22, { variant: "subtle", size: "sm" }, /* @__PURE__ */ React152.createElement(IconArrowRight5, { size: 16 }))))
14037
+ } }, /* @__PURE__ */ React152.createElement(Stack106, { gap: 4, style: { flex: 1 } }, /* @__PURE__ */ React152.createElement(Text79, { size: "sm", fw: 500 }, "Claim #", claim.claimId.slice(-8)), /* @__PURE__ */ React152.createElement(Text79, { size: "xs", c: "dimmed" }, "Submitted: ", formatDate2(claim.submissionDate || claim.submittedAt)), claim.agentDid && /* @__PURE__ */ React152.createElement(Group46, { gap: 4 }, /* @__PURE__ */ React152.createElement(Text79, { size: "xs", c: "dimmed" }, "Agent: ", loadingProfile ? "Loading..." : displayName), userProfile?.verified && /* @__PURE__ */ React152.createElement(Text79, { size: "xs", c: "blue", fw: 600, title: "Verified user" }, "\u2713"))), /* @__PURE__ */ React152.createElement(Stack106, { gap: 4, align: "flex-end" }, /* @__PURE__ */ React152.createElement(Badge21, { color: claimStatus.color, size: "sm" }, claimStatus.status), /* @__PURE__ */ React152.createElement(ActionIcon22, { variant: "subtle", size: "sm" }, /* @__PURE__ */ React152.createElement(IconArrowRight4, { size: 16 }))))
14075
14038
  );
14076
14039
  };
14077
14040
 
14078
14041
  // src/mantine/blocks/evaluator/flow/ClaimCollectionsList.tsx
14079
- import { IconArrowRight as IconArrowRight6 } from "@tabler/icons-react";
14042
+ import { IconArrowRight as IconArrowRight5 } from "@tabler/icons-react";
14080
14043
  var CollectionItem3 = ({ collection, deedId, adminAddress, userRole, onRefresh }) => {
14081
14044
  const { getCurrentUser } = useBlocknoteHandlers();
14082
14045
  const getCurrentUserRef = useRef7(getCurrentUser);
@@ -14111,7 +14074,7 @@ var CollectionItem3 = ({ collection, deedId, adminAddress, userRole, onRefresh }
14111
14074
  openClaimsPanel();
14112
14075
  }
14113
14076
  };
14114
- return /* @__PURE__ */ React153.createElement("div", { style: { opacity: canEvaluateClaims ? 1 : 0.5 } }, /* @__PURE__ */ React153.createElement(ListItemContainer, { tooltip: "You need to be an evaluator agent to review claims", onClick: handleClick, disabled: !canEvaluateClaims, isChecked: opened }, /* @__PURE__ */ React153.createElement(Stack107, { gap: 4, style: { flex: 1 } }, /* @__PURE__ */ React153.createElement(Text80, { size: "sm", fw: 500, c: canEvaluateClaims ? void 0 : "dimmed" }, getCollectionName2(collection)), collection.description && /* @__PURE__ */ React153.createElement(Text80, { size: "xs", c: "dimmed" }, collection.description)), /* @__PURE__ */ React153.createElement(Tooltip14, { label: "You need to be an evaluator agent to review claims", disabled: canEvaluateClaims, position: "left", withArrow: true }, /* @__PURE__ */ React153.createElement(ActionIcon23, { variant: "subtle", size: "lg", onClick: handleClick, disabled: !canEvaluateClaims, style: { cursor: canEvaluateClaims ? "pointer" : "not-allowed" } }, /* @__PURE__ */ React153.createElement(IconArrowRight6, { size: 20 })))));
14077
+ return /* @__PURE__ */ React153.createElement("div", { style: { opacity: canEvaluateClaims ? 1 : 0.5 } }, /* @__PURE__ */ React153.createElement(ListItemContainer, { tooltip: "You need to be an evaluator agent to review claims", onClick: handleClick, disabled: !canEvaluateClaims, isChecked: opened }, /* @__PURE__ */ React153.createElement(Stack107, { gap: 4, style: { flex: 1 } }, /* @__PURE__ */ React153.createElement(Text80, { size: "sm", fw: 500, c: canEvaluateClaims ? void 0 : "dimmed" }, getCollectionName2(collection)), collection.description && /* @__PURE__ */ React153.createElement(Text80, { size: "xs", c: "dimmed" }, collection.description)), /* @__PURE__ */ React153.createElement(Tooltip14, { label: "You need to be an evaluator agent to review claims", disabled: canEvaluateClaims, position: "left", withArrow: true }, /* @__PURE__ */ React153.createElement(ActionIcon23, { variant: "subtle", size: "lg", onClick: handleClick, disabled: !canEvaluateClaims, style: { cursor: canEvaluateClaims ? "pointer" : "not-allowed" } }, /* @__PURE__ */ React153.createElement(IconArrowRight5, { size: 20 })))));
14115
14078
  };
14116
14079
  var ClaimCollectionsList3 = ({ collections, deedId, adminAddress, userAddress, onRefresh }) => {
14117
14080
  const { userRoles, loading: loadingRoles } = useUserRoles(collections, userAddress, adminAddress, deedId);
@@ -14145,7 +14108,7 @@ var EvaluatorFlowView = ({ editor, block }) => {
14145
14108
  if (selectedCollectionIds.length === 0) {
14146
14109
  return /* @__PURE__ */ React154.createElement(Center12, { py: "xl" }, /* @__PURE__ */ React154.createElement(Text81, { size: "sm", c: "dimmed" }, "No claim collections selected"));
14147
14110
  }
14148
- return /* @__PURE__ */ React154.createElement(Stack108, { w: "100%" }, /* @__PURE__ */ React154.createElement(Flex27, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React154.createElement(Title10, { order: 4 }, "Evaluate Claims"), /* @__PURE__ */ React154.createElement(Flex27, { gap: "xs" }, /* @__PURE__ */ React154.createElement(ActionIcon24, { variant: "subtle", size: "sm", onClick: refetch, loading }, /* @__PURE__ */ React154.createElement(IconRefresh6, { size: 18 })), editable && /* @__PURE__ */ React154.createElement(ActionIcon24, { variant: "subtle", size: "sm" }, /* @__PURE__ */ React154.createElement(IconSettings6, { size: 18 })))), loading ? /* @__PURE__ */ React154.createElement(Center12, { py: "xl" }, /* @__PURE__ */ React154.createElement(Loader21, { size: "md" })) : error ? /* @__PURE__ */ React154.createElement(Alert21, { color: "red", title: "Failed to load collections", icon: /* @__PURE__ */ React154.createElement(IconAlertCircle7, { size: 18 }) }, /* @__PURE__ */ React154.createElement(Text81, { size: "sm" }, error)) : /* @__PURE__ */ React154.createElement(ClaimCollectionsList3, { collections, deedId: did, adminAddress, userAddress, onRefresh: refetch }));
14111
+ return /* @__PURE__ */ React154.createElement(Stack108, { w: "100%" }, /* @__PURE__ */ React154.createElement(Flex26, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React154.createElement(Title10, { order: 4 }, "Evaluate Claims"), /* @__PURE__ */ React154.createElement(Flex26, { gap: "xs" }, /* @__PURE__ */ React154.createElement(ActionIcon24, { variant: "subtle", size: "sm", onClick: refetch, loading }, /* @__PURE__ */ React154.createElement(IconRefresh6, { size: 18 })), editable && /* @__PURE__ */ React154.createElement(ActionIcon24, { variant: "subtle", size: "sm" }, /* @__PURE__ */ React154.createElement(IconSettings6, { size: 18 })))), loading ? /* @__PURE__ */ React154.createElement(Center12, { py: "xl" }, /* @__PURE__ */ React154.createElement(Loader21, { size: "md" })) : error ? /* @__PURE__ */ React154.createElement(Alert21, { color: "red", title: "Failed to load collections", icon: /* @__PURE__ */ React154.createElement(IconAlertCircle7, { size: 18 }) }, /* @__PURE__ */ React154.createElement(Text81, { size: "sm" }, error)) : /* @__PURE__ */ React154.createElement(ClaimCollectionsList3, { collections, deedId: did, adminAddress, userAddress, onRefresh: refetch }));
14149
14112
  };
14150
14113
 
14151
14114
  // src/mantine/blocks/evaluator/EvaluatorBlock.tsx
@@ -14187,7 +14150,7 @@ import { createReactBlockSpec as createReactBlockSpec12 } from "@blocknote/react
14187
14150
 
14188
14151
  // src/mantine/blocks/visualization/VisualizationBlock.tsx
14189
14152
  import React157, { useMemo as useMemo44, useCallback as useCallback36, useRef as useRef8, useState as useState55, useEffect as useEffect39 } from "react";
14190
- import { Box as Box29, Stack as Stack109, Text as Text82, Paper as Paper14, Group as Group47 } from "@mantine/core";
14153
+ import { Box as Box30, Stack as Stack109, Text as Text82, Paper as Paper14, Group as Group47 } from "@mantine/core";
14191
14154
  function VisualizationBlock({ block, editor }) {
14192
14155
  const { visualizationRenderer } = useBlocknoteContext();
14193
14156
  const { vizType, config, title, preferences } = block.props;
@@ -14242,7 +14205,7 @@ function VisualizationBlock({ block, editor }) {
14242
14205
  if (visualizationRenderer) {
14243
14206
  const renderedContent = visualizationRenderer(vizType, parsedConfig, parsedPreferences, handlePreferencesChange);
14244
14207
  if (renderedContent) {
14245
- return /* @__PURE__ */ React157.createElement(Box29, { ref: containerRef, w: "100%", miw: 200, mih: 200 }, hasValidDimensions ? renderedContent : null);
14208
+ return /* @__PURE__ */ React157.createElement(Box30, { ref: containerRef, w: "100%", miw: 200, mih: 200 }, hasValidDimensions ? renderedContent : null);
14246
14209
  }
14247
14210
  }
14248
14211
  return /* @__PURE__ */ React157.createElement(Paper14, { p: "lg", withBorder: true, radius: "lg", w: "100%" }, /* @__PURE__ */ React157.createElement(Stack109, { gap: "sm" }, /* @__PURE__ */ React157.createElement(Text82, { fz: "18", ta: "center" }, "Visualization Block"), /* @__PURE__ */ React157.createElement(Paper14, { p: "sm", bg: "var(--mantine-color-dark-6)", radius: "sm" }, /* @__PURE__ */ React157.createElement(Stack109, { gap: "xs" }, !title && /* @__PURE__ */ React157.createElement(Group47, { gap: "xs" }, /* @__PURE__ */ React157.createElement(Text82, { size: "xs", c: "dimmed", fw: 500 }, "Title:"), /* @__PURE__ */ React157.createElement(Text82, { size: "xs", c: "white" }, title || "No title")), /* @__PURE__ */ React157.createElement(Group47, { gap: "xs" }, /* @__PURE__ */ React157.createElement(Text82, { size: "xs", c: "dimmed", fw: 500 }, "Type:"), /* @__PURE__ */ React157.createElement(Text82, { size: "xs", c: "white" }, vizType)))), /* @__PURE__ */ React157.createElement(Text82, { c: "dimmed", fz: "sm", fs: "italic", ta: "center" }, "View in a compatible client to see the full visualization.")));
@@ -15802,7 +15765,7 @@ import React167, { useCallback as useCallback40 } from "react";
15802
15765
 
15803
15766
  // src/mantine/blocks/protocolSelector/template/GeneralTab.tsx
15804
15767
  import React166, { useEffect as useEffect42, useMemo as useMemo48, useState as useState59 } from "react";
15805
- import { Divider as Divider11, Stack as Stack113, Text as Text86, PillsInput as PillsInput2, Pill as Pill2, Box as Box30 } from "@mantine/core";
15768
+ import { Divider as Divider11, Stack as Stack113, Text as Text86, PillsInput as PillsInput2, Pill as Pill2, Box as Box31 } from "@mantine/core";
15806
15769
  var GeneralTab10 = ({ title, description, protocolDids, onTitleChange, onDescriptionChange, onProtocolDidsChange }) => {
15807
15770
  const [localTitle, setLocalTitle] = useState59(title || "");
15808
15771
  const [localDescription, setLocalDescription] = useState59(description || "");
@@ -15870,7 +15833,7 @@ var GeneralTab10 = ({ title, description, protocolDids, onTitleChange, onDescrip
15870
15833
  }
15871
15834
  }
15872
15835
  }
15873
- ))), localDids.length > 0 && /* @__PURE__ */ React166.createElement(Box30, { mt: "xs" }, /* @__PURE__ */ React166.createElement(Text86, { size: "xs", c: "dimmed" }, localDids.length, " protocol", localDids.length !== 1 ? "s" : "", " configured"))));
15836
+ ))), localDids.length > 0 && /* @__PURE__ */ React166.createElement(Box31, { mt: "xs" }, /* @__PURE__ */ React166.createElement(Text86, { size: "xs", c: "dimmed" }, localDids.length, " protocol", localDids.length !== 1 ? "s" : "", " configured"))));
15874
15837
  };
15875
15838
 
15876
15839
  // src/mantine/blocks/protocolSelector/template/TemplateConfig.tsx
@@ -15913,7 +15876,7 @@ var TemplateConfig10 = ({ editor, block }) => {
15913
15876
  };
15914
15877
 
15915
15878
  // src/mantine/blocks/protocolSelector/template/TemplateView.tsx
15916
- import { Box as Box31, Group as Group51, Stack as Stack114, Text as Text87 } from "@mantine/core";
15879
+ import { Box as Box32, Group as Group51, Stack as Stack114, Text as Text87 } from "@mantine/core";
15917
15880
  import { IconCircleDashed as IconCircleDashed2 } from "@tabler/icons-react";
15918
15881
  var PROTOCOL_SELECTOR_TEMPLATE_PANEL_ID = "protocol-selector-template-panel";
15919
15882
  var ProtocolSelectorTemplateView = ({ editor, block }) => {
@@ -15929,7 +15892,7 @@ var ProtocolSelectorTemplateView = ({ editor, block }) => {
15929
15892
  }
15930
15893
  }, [block.props.protocolDids]);
15931
15894
  return /* @__PURE__ */ React168.createElement(BaseContainer, { onClick: open }, /* @__PURE__ */ React168.createElement(Group51, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React168.createElement(Group51, { wrap: "nowrap", align: "center", gap: "md" }, /* @__PURE__ */ React168.createElement(
15932
- Box31,
15895
+ Box32,
15933
15896
  {
15934
15897
  style: {
15935
15898
  width: 40,
@@ -15947,12 +15910,12 @@ var ProtocolSelectorTemplateView = ({ editor, block }) => {
15947
15910
 
15948
15911
  // src/mantine/blocks/protocolSelector/flow/FlowView.tsx
15949
15912
  import React171, { useMemo as useMemo51 } from "react";
15950
- import { Badge as Badge24, Box as Box33, Group as Group53, Stack as Stack116, Text as Text89, Tooltip as Tooltip16 } from "@mantine/core";
15913
+ import { Badge as Badge24, Box as Box34, Group as Group53, Stack as Stack116, Text as Text89, Tooltip as Tooltip16 } from "@mantine/core";
15951
15914
  import { IconCircleDashed as IconCircleDashed3, IconChecks } from "@tabler/icons-react";
15952
15915
 
15953
15916
  // src/mantine/blocks/protocolSelector/flow/ProtocolSelectionPanel.tsx
15954
15917
  import React170, { useState as useState60, useEffect as useEffect43, useMemo as useMemo50, useCallback as useCallback41 } from "react";
15955
- import { Paper as Paper16, CloseButton as CloseButton9, Stack as Stack115, Text as Text88, Box as Box32, Group as Group52, Loader as Loader23 } from "@mantine/core";
15918
+ import { Paper as Paper16, CloseButton as CloseButton9, Stack as Stack115, Text as Text88, Box as Box33, Group as Group52, Loader as Loader23 } from "@mantine/core";
15956
15919
 
15957
15920
  // src/icons/EntityAvatar.tsx
15958
15921
  import React169 from "react";
@@ -16087,10 +16050,10 @@ var ProtocolSelectionPanel = ({ editor, block }) => {
16087
16050
  }
16088
16051
  },
16089
16052
  /* @__PURE__ */ React170.createElement(Group52, { justify: "space-between", align: "center", mb: "xl" }, /* @__PURE__ */ React170.createElement(Text88, { fz: 16, fw: 600 }, block.props.title || "Select Protocol"), /* @__PURE__ */ React170.createElement(CloseButton9, { onClick: closePanel })),
16090
- /* @__PURE__ */ React170.createElement(Stack115, { gap: "sm", style: { flex: 1, overflow: "auto" } }, protocols.length === 0 ? /* @__PURE__ */ React170.createElement(Box32, { py: "md" }, /* @__PURE__ */ React170.createElement(Text88, { c: "dimmed", ta: "center" }, "No protocols configured.", /* @__PURE__ */ React170.createElement("br", null), "Add protocol DIDs in template mode.")) : protocols.map((protocol) => {
16053
+ /* @__PURE__ */ React170.createElement(Stack115, { gap: "sm", style: { flex: 1, overflow: "auto" } }, protocols.length === 0 ? /* @__PURE__ */ React170.createElement(Box33, { py: "md" }, /* @__PURE__ */ React170.createElement(Text88, { c: "dimmed", ta: "center" }, "No protocols configured.", /* @__PURE__ */ React170.createElement("br", null), "Add protocol DIDs in template mode.")) : protocols.map((protocol) => {
16091
16054
  const isSelected = protocol.did === selectedDid;
16092
16055
  return /* @__PURE__ */ React170.createElement(
16093
- Box32,
16056
+ Box33,
16094
16057
  {
16095
16058
  key: protocol.did,
16096
16059
  onClick: () => !protocol.loading && handleSelectProtocol(protocol),
@@ -16125,7 +16088,7 @@ var ProtocolSelectorFlowView = ({ editor, block, isDisabled }) => {
16125
16088
  open();
16126
16089
  };
16127
16090
  const containerContent = /* @__PURE__ */ React171.createElement(BaseContainer, { onClick: disabled ? void 0 : handleClick }, /* @__PURE__ */ React171.createElement(Group53, { wrap: "nowrap", justify: "space-between", align: "center" }, /* @__PURE__ */ React171.createElement(Group53, { wrap: "nowrap", align: "center", gap: "md" }, /* @__PURE__ */ React171.createElement(
16128
- Box33,
16091
+ Box34,
16129
16092
  {
16130
16093
  style: {
16131
16094
  display: "flex",
@@ -16137,7 +16100,7 @@ var ProtocolSelectorFlowView = ({ editor, block, isDisabled }) => {
16137
16100
  /* @__PURE__ */ React171.createElement(IconCircleDashed3, { size: 26, color: "white" })
16138
16101
  ), /* @__PURE__ */ React171.createElement(Stack116, { gap: 2, style: { flex: 1 } }, /* @__PURE__ */ React171.createElement(Text89, { fw: 500, size: "sm", lineClamp: 1, style: { opacity: disabled ? 0.5 : 1 } }, block.props.title || "Select Protocol"), isCompleted && block.props.selectedProtocolType ? /* @__PURE__ */ React171.createElement(Badge24, { size: "sm", styles: { root: { backgroundColor: "var(--mantine-primary-color-light)", color: "var(--mantine-primary-color-filled)" } } }, block.props.selectedProtocolType) : /* @__PURE__ */ React171.createElement(Text89, { size: "xs", c: "dimmed", style: { opacity: disabled ? 0.5 : 1 } }, "Selection"))), /* @__PURE__ */ React171.createElement(Stack116, { gap: 2, align: "flex-end" }, isCompleted ? /* @__PURE__ */ React171.createElement(React171.Fragment, null, /* @__PURE__ */ React171.createElement(Group53, { gap: 4 }, /* @__PURE__ */ React171.createElement(IconChecks, { size: 16, color: "var(--mantine-color-green-4)" }), /* @__PURE__ */ React171.createElement(Text89, { size: "sm", c: "green.4", fw: 500 }, "Completed")), /* @__PURE__ */ React171.createElement(Text89, { size: "xs", c: "dimmed", lineClamp: 1 }, block.props.selectedProtocolName || block.props.selectedProtocolDid)) : /* @__PURE__ */ React171.createElement(React171.Fragment, null, /* @__PURE__ */ React171.createElement(Text89, { size: "sm" }, "Pending"), /* @__PURE__ */ React171.createElement(Text89, { size: "xs", c: "dimmed" }, "Complete now")))));
16139
16102
  if (disabled && isDisabled?.message) {
16140
- return /* @__PURE__ */ React171.createElement(Tooltip16, { label: isDisabled.message, position: "top", withArrow: true }, /* @__PURE__ */ React171.createElement(Box33, { style: { cursor: "not-allowed" } }, containerContent));
16103
+ return /* @__PURE__ */ React171.createElement(Tooltip16, { label: isDisabled.message, position: "top", withArrow: true }, /* @__PURE__ */ React171.createElement(Box34, { style: { cursor: "not-allowed" } }, containerContent));
16141
16104
  }
16142
16105
  return containerContent;
16143
16106
  };
@@ -17183,7 +17146,7 @@ import { IconChevronRight as IconChevronRight9, IconLoader, IconTestPipe, IconTr
17183
17146
 
17184
17147
  // src/mantine/blocks/domainCardViewer/flow/ViewerPanel.tsx
17185
17148
  import React191, { useMemo as useMemo58 } from "react";
17186
- import { Paper as Paper20, CloseButton as CloseButton15, Title as Title18, Stack as Stack124, Text as Text98, Loader as Loader25, Alert as Alert25, Button as Button33, Box as Box34, ScrollArea as ScrollArea6, Code as Code6 } from "@mantine/core";
17149
+ import { Paper as Paper20, CloseButton as CloseButton15, Title as Title18, Stack as Stack124, Text as Text98, Loader as Loader25, Alert as Alert25, Button as Button33, Box as Box35, ScrollArea as ScrollArea6, Code as Code6 } from "@mantine/core";
17187
17150
  import { IconAlertCircle as IconAlertCircle12, IconCheck as IconCheck6, IconSparkles as IconSparkles3 } from "@tabler/icons-react";
17188
17151
  function parsePreviewData(jsonString) {
17189
17152
  if (!jsonString || jsonString === "{}") return null;
@@ -17194,7 +17157,7 @@ function parsePreviewData(jsonString) {
17194
17157
  }
17195
17158
  }
17196
17159
  var JsonViewer = ({ data }) => {
17197
- return /* @__PURE__ */ React191.createElement(ScrollArea6, { h: "100%", offsetScrollbars: true }, /* @__PURE__ */ React191.createElement(Stack124, { gap: "md" }, data.name && /* @__PURE__ */ React191.createElement(Box34, null, /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Name"), /* @__PURE__ */ React191.createElement(Text98, { size: "lg", fw: 600 }, data.name)), data.summary && /* @__PURE__ */ React191.createElement(Box34, null, /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Summary"), /* @__PURE__ */ React191.createElement(Text98, { size: "sm" }, data.summary)), data.description && /* @__PURE__ */ React191.createElement(Box34, null, /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Description"), /* @__PURE__ */ React191.createElement(Text98, { size: "sm" }, data.description)), data.entity_type && data.entity_type.length > 0 && /* @__PURE__ */ React191.createElement(Box34, null, /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Type"), /* @__PURE__ */ React191.createElement(Text98, { size: "sm" }, data.entity_type.join(", "))), data.keywords && data.keywords.length > 0 && /* @__PURE__ */ React191.createElement(Box34, null, /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Keywords"), /* @__PURE__ */ React191.createElement(Text98, { size: "sm" }, data.keywords.join(", "))), data.faq && data.faq.length > 0 && /* @__PURE__ */ React191.createElement(Box34, null, /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600, mb: "xs" }, "FAQ"), /* @__PURE__ */ React191.createElement(Stack124, { gap: "sm" }, data.faq.map((item, index) => /* @__PURE__ */ React191.createElement(Box34, { key: index, p: "sm", style: { borderRadius: 8, backgroundColor: "var(--mantine-color-dark-6)" } }, /* @__PURE__ */ React191.createElement(Text98, { size: "sm", fw: 500, mb: 4 }, item.question), /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed" }, item.answer))))), /* @__PURE__ */ React191.createElement(Box34, null, /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600, mb: "xs" }, "Raw Data"), /* @__PURE__ */ React191.createElement(Code6, { block: true, style: { fontSize: 11, maxHeight: 200, overflow: "auto" } }, JSON.stringify(data, null, 2)))));
17160
+ return /* @__PURE__ */ React191.createElement(ScrollArea6, { h: "100%", offsetScrollbars: true }, /* @__PURE__ */ React191.createElement(Stack124, { gap: "md" }, data.name && /* @__PURE__ */ React191.createElement(Box35, null, /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Name"), /* @__PURE__ */ React191.createElement(Text98, { size: "lg", fw: 600 }, data.name)), data.summary && /* @__PURE__ */ React191.createElement(Box35, null, /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Summary"), /* @__PURE__ */ React191.createElement(Text98, { size: "sm" }, data.summary)), data.description && /* @__PURE__ */ React191.createElement(Box35, null, /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Description"), /* @__PURE__ */ React191.createElement(Text98, { size: "sm" }, data.description)), data.entity_type && data.entity_type.length > 0 && /* @__PURE__ */ React191.createElement(Box35, null, /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Type"), /* @__PURE__ */ React191.createElement(Text98, { size: "sm" }, data.entity_type.join(", "))), data.keywords && data.keywords.length > 0 && /* @__PURE__ */ React191.createElement(Box35, null, /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Keywords"), /* @__PURE__ */ React191.createElement(Text98, { size: "sm" }, data.keywords.join(", "))), data.faq && data.faq.length > 0 && /* @__PURE__ */ React191.createElement(Box35, null, /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600, mb: "xs" }, "FAQ"), /* @__PURE__ */ React191.createElement(Stack124, { gap: "sm" }, data.faq.map((item, index) => /* @__PURE__ */ React191.createElement(Box35, { key: index, p: "sm", style: { borderRadius: 8, backgroundColor: "var(--mantine-color-dark-6)" } }, /* @__PURE__ */ React191.createElement(Text98, { size: "sm", fw: 500, mb: 4 }, item.question), /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed" }, item.answer))))), /* @__PURE__ */ React191.createElement(Box35, null, /* @__PURE__ */ React191.createElement(Text98, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600, mb: "xs" }, "Raw Data"), /* @__PURE__ */ React191.createElement(Code6, { block: true, style: { fontSize: 11, maxHeight: 200, overflow: "auto" } }, JSON.stringify(data, null, 2)))));
17198
17161
  };
17199
17162
  var ViewerPanel = ({ block, onApprove }) => {
17200
17163
  const { closePanel } = usePanelStore();
@@ -17233,7 +17196,7 @@ var ViewerPanel = ({ block, onApprove }) => {
17233
17196
  /* @__PURE__ */ React191.createElement(Title18, { order: 5 }, block.props.title || "Domain Card"),
17234
17197
  /* @__PURE__ */ React191.createElement(CloseButton15, { onClick: closePanel })
17235
17198
  ),
17236
- /* @__PURE__ */ React191.createElement(Box34, { style: { flex: 1, overflow: "hidden", display: "flex", flexDirection: "column" } }, isLoading && /* @__PURE__ */ React191.createElement(Stack124, { align: "center", justify: "center", style: { flex: 1 }, gap: "md" }, /* @__PURE__ */ React191.createElement(Loader25, { size: "lg", color: "blue" }), /* @__PURE__ */ React191.createElement(Stack124, { align: "center", gap: "xs" }, /* @__PURE__ */ React191.createElement(IconSparkles3, { size: 24, color: "var(--mantine-color-blue-5)" }), /* @__PURE__ */ React191.createElement(Text98, { size: "sm", c: "dimmed", ta: "center" }, loadingMessage))), isError && /* @__PURE__ */ React191.createElement(Stack124, { style: { flex: 1 }, gap: "md" }, /* @__PURE__ */ React191.createElement(Alert25, { icon: /* @__PURE__ */ React191.createElement(IconAlertCircle12, { size: 16 }), title: "Error", color: "red", variant: "light" }, errorMessage), /* @__PURE__ */ React191.createElement(Text98, { size: "sm", c: "dimmed", ta: "center" }, "Please ask the oracle to try again.")), (isReady || isApproved) && hasData && /* @__PURE__ */ React191.createElement(Box34, { style: { flex: 1, overflow: "hidden" } }, domainCardRenderer ? (
17199
+ /* @__PURE__ */ React191.createElement(Box35, { style: { flex: 1, overflow: "hidden", display: "flex", flexDirection: "column" } }, isLoading && /* @__PURE__ */ React191.createElement(Stack124, { align: "center", justify: "center", style: { flex: 1 }, gap: "md" }, /* @__PURE__ */ React191.createElement(Loader25, { size: "lg", color: "blue" }), /* @__PURE__ */ React191.createElement(Stack124, { align: "center", gap: "xs" }, /* @__PURE__ */ React191.createElement(IconSparkles3, { size: 24, color: "var(--mantine-color-blue-5)" }), /* @__PURE__ */ React191.createElement(Text98, { size: "sm", c: "dimmed", ta: "center" }, loadingMessage))), isError && /* @__PURE__ */ React191.createElement(Stack124, { style: { flex: 1 }, gap: "md" }, /* @__PURE__ */ React191.createElement(Alert25, { icon: /* @__PURE__ */ React191.createElement(IconAlertCircle12, { size: 16 }), title: "Error", color: "red", variant: "light" }, errorMessage), /* @__PURE__ */ React191.createElement(Text98, { size: "sm", c: "dimmed", ta: "center" }, "Please ask the oracle to try again.")), (isReady || isApproved) && hasData && /* @__PURE__ */ React191.createElement(Box35, { style: { flex: 1, overflow: "hidden" } }, domainCardRenderer ? (
17237
17200
  // Use custom renderer from web app
17238
17201
  /* @__PURE__ */ React191.createElement(ScrollArea6, { h: "100%", offsetScrollbars: true }, domainCardRenderer(domainPreviewData))
17239
17202
  ) : (
@@ -17241,7 +17204,7 @@ var ViewerPanel = ({ block, onApprove }) => {
17241
17204
  /* @__PURE__ */ React191.createElement(JsonViewer, { data: domainPreviewData })
17242
17205
  )), !isLoading && !isError && !hasData && /* @__PURE__ */ React191.createElement(Stack124, { align: "center", justify: "center", style: { flex: 1 }, gap: "md" }, /* @__PURE__ */ React191.createElement(Text98, { size: "sm", c: "dimmed", ta: "center" }, "No domain data available yet."))),
17243
17206
  isReady && hasData && /* @__PURE__ */ React191.createElement(
17244
- Box34,
17207
+ Box35,
17245
17208
  {
17246
17209
  pt: "md",
17247
17210
  mt: "md",
@@ -17255,7 +17218,7 @@ var ViewerPanel = ({ block, onApprove }) => {
17255
17218
  /* @__PURE__ */ React191.createElement(Button33, { fullWidth: true, color: "teal", leftSection: /* @__PURE__ */ React191.createElement(IconCheck6, { size: 16 }), onClick: onApprove }, "Approve")
17256
17219
  ),
17257
17220
  isApproved && /* @__PURE__ */ React191.createElement(
17258
- Box34,
17221
+ Box35,
17259
17222
  {
17260
17223
  pt: "md",
17261
17224
  mt: "md",
@@ -18830,9 +18793,190 @@ function useCreateCollaborativeIxoEditor(options) {
18830
18793
  };
18831
18794
  }
18832
18795
 
18796
+ // src/mantine/components/Base/BaseIconPicker.tsx
18797
+ import React196, { useState as useState68, useMemo as useMemo65, useEffect as useEffect53 } from "react";
18798
+ import { TextInput as TextInput6, Tabs as Tabs3, Box as Box36, Stack as Stack126, UnstyledButton as UnstyledButton2, Text as Text100, Center as Center13, ScrollArea as ScrollArea7, Group as Group62, Popover as Popover2 } from "@mantine/core";
18799
+ import * as TablerIcons from "@tabler/icons-react";
18800
+ import { IconSearch as IconSearch5, IconX as IconX8, IconChevronLeft, IconChevronRight as IconChevronRight10 } from "@tabler/icons-react";
18801
+
18802
+ // src/mantine/components/Base/CoverImageButton.tsx
18803
+ import React195, { forwardRef } from "react";
18804
+ import { Button as Button35 } from "@mantine/core";
18805
+ var CoverImageButton = forwardRef(({ isActive = false, onClick, children, style, ...props }, ref) => /* @__PURE__ */ React195.createElement(
18806
+ Button35,
18807
+ {
18808
+ ref,
18809
+ variant: "filled",
18810
+ onClick,
18811
+ size: "xs",
18812
+ style: {
18813
+ backgroundColor: isActive ? "rgba(55, 53, 47, 0.9)" : "rgba(255, 255, 255, 0.9)",
18814
+ color: isActive ? "white" : "#37352f",
18815
+ fontSize: "12px",
18816
+ fontWeight: 500,
18817
+ padding: "4px 8px",
18818
+ height: "auto",
18819
+ ...style
18820
+ },
18821
+ ...props
18822
+ },
18823
+ children
18824
+ ));
18825
+ CoverImageButton.displayName = "CoverImageButton";
18826
+
18827
+ // src/core/services/localStorage.ts
18828
+ var localStorageService = {
18829
+ set(key, value) {
18830
+ try {
18831
+ window.localStorage.setItem(key, JSON.stringify(value));
18832
+ } catch {
18833
+ }
18834
+ },
18835
+ get(key) {
18836
+ try {
18837
+ const item = window.localStorage.getItem(key);
18838
+ return item ? JSON.parse(item) : null;
18839
+ } catch {
18840
+ return null;
18841
+ }
18842
+ },
18843
+ remove(key) {
18844
+ try {
18845
+ window.localStorage.removeItem(key);
18846
+ } catch {
18847
+ }
18848
+ }
18849
+ };
18850
+
18851
+ // src/mantine/components/Base/BaseIconPicker.tsx
18852
+ var iconsKey = "editor_recent_icons";
18853
+ var ICONS_PER_PAGE = 500;
18854
+ function BaseIconPicker({ opened, onClose, onSelectIcon, onUploadClick, children, currentIcon }) {
18855
+ const [searchQuery, setSearchQuery] = useState68("");
18856
+ const [activeTab, setActiveTab] = useState68("icons");
18857
+ const [currentPage, setCurrentPage] = useState68(1);
18858
+ const allIcons = useMemo65(() => {
18859
+ const iconEntries = Object.entries(TablerIcons).filter(([name]) => name.startsWith("Icon") && name !== "IconProps");
18860
+ return iconEntries;
18861
+ }, []);
18862
+ const filteredIcons = useMemo65(() => {
18863
+ if (!searchQuery) return allIcons;
18864
+ const query = searchQuery.toLowerCase();
18865
+ return allIcons.filter(([name]) => name.toLowerCase().includes(query));
18866
+ }, [allIcons, searchQuery]);
18867
+ useEffect53(() => {
18868
+ setCurrentPage(1);
18869
+ }, [searchQuery]);
18870
+ const paginatedIcons = useMemo65(() => {
18871
+ const startIndex = (currentPage - 1) * ICONS_PER_PAGE;
18872
+ const endIndex = startIndex + ICONS_PER_PAGE;
18873
+ return filteredIcons.slice(startIndex, endIndex);
18874
+ }, [filteredIcons, currentPage]);
18875
+ const totalPages = Math.ceil(filteredIcons.length / ICONS_PER_PAGE);
18876
+ const recentIcons = useMemo65(() => {
18877
+ const recentIconNames = localStorageService.get(iconsKey);
18878
+ if (!recentIconNames || recentIconNames.length === 0) return [];
18879
+ return recentIconNames.slice(0, 24).map((iconName) => allIcons.find(([name]) => name === iconName)).filter((entry) => entry !== void 0);
18880
+ }, [opened, allIcons]);
18881
+ const handleIconClick = (iconName) => {
18882
+ const recentIconNames = localStorageService.get(iconsKey) || [];
18883
+ const filteredIcons2 = recentIconNames.filter((name) => name !== iconName);
18884
+ const updatedIcons = [iconName, ...filteredIcons2].slice(0, 24);
18885
+ localStorageService.set(iconsKey, updatedIcons);
18886
+ onSelectIcon(iconName);
18887
+ onClose();
18888
+ };
18889
+ const renderIconGrid = (icons) => {
18890
+ if (icons.length === 0) {
18891
+ return /* @__PURE__ */ React196.createElement(Center13, { py: "xl" }, /* @__PURE__ */ React196.createElement(Text100, { c: "dimmed", size: "sm" }, "No icons found"));
18892
+ }
18893
+ return /* @__PURE__ */ React196.createElement(
18894
+ Box36,
18895
+ {
18896
+ style: {
18897
+ display: "grid",
18898
+ gridTemplateColumns: "repeat(auto-fill, minmax(48px, 1fr))",
18899
+ gap: "8px",
18900
+ padding: "8px"
18901
+ }
18902
+ },
18903
+ icons.map(([name, IconComponent]) => {
18904
+ const isSelected = currentIcon === name.replace("Icon", "").replace(/([A-Z])/g, "-$1").toLowerCase().slice(1);
18905
+ return /* @__PURE__ */ React196.createElement(
18906
+ UnstyledButton2,
18907
+ {
18908
+ key: name,
18909
+ onClick: () => handleIconClick(name),
18910
+ style: {
18911
+ width: "48px",
18912
+ height: "48px",
18913
+ display: "flex",
18914
+ alignItems: "center",
18915
+ justifyContent: "center",
18916
+ borderRadius: "8px",
18917
+ border: isSelected ? "2px solid rgb(0, 255, 157)" : "1px solid rgba(255, 255, 255, 0.1)",
18918
+ backgroundColor: isSelected ? "rgba(0, 255, 157, 0.1)" : "rgba(255, 255, 255, 0.02)",
18919
+ transition: "all 0.2s",
18920
+ cursor: "pointer"
18921
+ },
18922
+ styles: {
18923
+ root: {
18924
+ "&:hover": {
18925
+ backgroundColor: "rgba(255, 255, 255, 0.08)",
18926
+ borderColor: "rgba(255, 255, 255, 0.2)"
18927
+ }
18928
+ }
18929
+ }
18930
+ },
18931
+ /* @__PURE__ */ React196.createElement(IconComponent, { color: "white", size: 24, stroke: 1.5 })
18932
+ );
18933
+ })
18934
+ );
18935
+ };
18936
+ return /* @__PURE__ */ React196.createElement(Popover2, { opened, onClose, position: "right", width: 500, shadow: "xl" }, /* @__PURE__ */ React196.createElement(Popover2.Target, null, children), /* @__PURE__ */ React196.createElement(
18937
+ Popover2.Dropdown,
18938
+ {
18939
+ style: {
18940
+ backgroundColor: "#1a1a1a",
18941
+ border: "1px solid rgba(255, 255, 255, 0.1)",
18942
+ borderRadius: "12px"
18943
+ },
18944
+ p: 0
18945
+ },
18946
+ /* @__PURE__ */ React196.createElement(Stack126, { gap: "md", p: "md" }, /* @__PURE__ */ React196.createElement(Tabs3, { value: activeTab, onChange: setActiveTab, variant: "pills" }, /* @__PURE__ */ React196.createElement(Tabs3.List, null, /* @__PURE__ */ React196.createElement(Tabs3.Tab, { value: "icons" }, "Icons"), /* @__PURE__ */ React196.createElement(Tabs3.Tab, { value: "upload" }, "Upload")), /* @__PURE__ */ React196.createElement(Tabs3.Panel, { value: "icons", pt: "md" }, /* @__PURE__ */ React196.createElement(
18947
+ TextInput6,
18948
+ {
18949
+ mb: "md",
18950
+ placeholder: "Filter",
18951
+ leftSection: /* @__PURE__ */ React196.createElement(IconSearch5, { size: 18 }),
18952
+ value: searchQuery,
18953
+ onChange: (e) => setSearchQuery(e.currentTarget.value),
18954
+ rightSection: searchQuery && /* @__PURE__ */ React196.createElement(UnstyledButton2, { onClick: () => setSearchQuery("") }, /* @__PURE__ */ React196.createElement(IconX8, { size: 18 })),
18955
+ style: { flex: 1 },
18956
+ styles: {
18957
+ input: {
18958
+ backgroundColor: "rgba(255, 255, 255, 0.05)",
18959
+ border: "1px solid rgba(255, 255, 255, 0.1)",
18960
+ borderRadius: "8px"
18961
+ }
18962
+ }
18963
+ }
18964
+ ), !searchQuery && /* @__PURE__ */ React196.createElement(Box36, { mb: "md" }, /* @__PURE__ */ React196.createElement(Text100, { size: "sm", fw: 500, mb: "xs", px: "xs" }, "Recent"), /* @__PURE__ */ React196.createElement(ScrollArea7.Autosize, { scrollbarSize: 0, mah: 60 }, renderIconGrid(recentIcons))), /* @__PURE__ */ React196.createElement(Box36, null, /* @__PURE__ */ React196.createElement(Group62, { justify: "space-between", mb: "xs", px: "xs" }, /* @__PURE__ */ React196.createElement(Text100, { size: "sm", fw: 500 }, searchQuery ? "Results" : "Icons"), totalPages > 1 && /* @__PURE__ */ React196.createElement(Group62, { gap: "xs" }, /* @__PURE__ */ React196.createElement(Text100, { size: "xs", c: "dimmed" }, "Page ", currentPage, " of ", totalPages, " (", filteredIcons.length, " total)"), /* @__PURE__ */ React196.createElement(BaseButton, { size: "xs", onClick: () => setCurrentPage((p) => Math.max(1, p - 1)), disabled: currentPage === 1, leftSection: /* @__PURE__ */ React196.createElement(IconChevronLeft, { size: 14 }) }, "Prev"), /* @__PURE__ */ React196.createElement(
18965
+ BaseButton,
18966
+ {
18967
+ size: "xs",
18968
+ onClick: () => setCurrentPage((p) => Math.min(totalPages, p + 1)),
18969
+ disabled: currentPage === totalPages,
18970
+ leftSection: /* @__PURE__ */ React196.createElement(IconChevronRight10, { size: 14 })
18971
+ },
18972
+ "Next"
18973
+ ))), /* @__PURE__ */ React196.createElement(ScrollArea7.Autosize, { scrollbarSize: 0, mah: 200 }, renderIconGrid(paginatedIcons)))), /* @__PURE__ */ React196.createElement(Tabs3.Panel, { value: "upload", pt: "md" }, /* @__PURE__ */ React196.createElement(Center13, { py: "xl" }, /* @__PURE__ */ React196.createElement(Stack126, { align: "center", gap: "md" }, /* @__PURE__ */ React196.createElement(Text100, { size: "sm", c: "dimmed", ta: "center" }, "Upload a custom icon image", /* @__PURE__ */ React196.createElement("br", null), "(PNG, JPG, SVG)"), /* @__PURE__ */ React196.createElement(CoverImageButton, { onClick: onUploadClick }, "Choose File"))))))
18974
+ ));
18975
+ }
18976
+
18833
18977
  // src/mantine/components/CoverImage.tsx
18834
- import React196, { useState as useState68, useRef as useRef12, useEffect as useEffect53 } from "react";
18835
- import { Box as Box35, Group as Group62 } from "@mantine/core";
18978
+ import React198, { useState as useState69, useRef as useRef12, useEffect as useEffect54 } from "react";
18979
+ import { Box as Box38, Group as Group63 } from "@mantine/core";
18836
18980
 
18837
18981
  // src/core/lib/imageTransform.ts
18838
18982
  var CLOUDFLARE_CDN_BASE = "https://www.ixo.earth/cdn-cgi/image";
@@ -18964,40 +19108,67 @@ function transformIconImage(sourceUrl, size = "default", customOptions) {
18964
19108
  return transformImage(sourceUrl, options);
18965
19109
  }
18966
19110
 
18967
- // src/mantine/components/Base/CoverImageButton.tsx
18968
- import React195 from "react";
18969
- import { Button as Button35 } from "@mantine/core";
18970
- function CoverImageButton({ isActive = false, children, onClick, style }) {
18971
- return /* @__PURE__ */ React195.createElement(
18972
- Button35,
19111
+ // src/mantine/components/Base/PageIcon.tsx
19112
+ import React197, { useMemo as useMemo66 } from "react";
19113
+ import { Center as Center14, Box as Box37 } from "@mantine/core";
19114
+ import * as TablerIcons2 from "@tabler/icons-react";
19115
+ function PageIcon({ src, iconSize = 64, useCenter = false, style }) {
19116
+ const isIconName = src && !src.startsWith("http");
19117
+ const IconComponent = useMemo66(() => {
19118
+ if (!isIconName || !src) return null;
19119
+ const iconComponent = TablerIcons2[src];
19120
+ if (iconComponent) {
19121
+ return iconComponent;
19122
+ }
19123
+ return null;
19124
+ }, [isIconName, src]);
19125
+ const Container = useCenter ? Center14 : Box37;
19126
+ if (!src) return null;
19127
+ if (IconComponent) {
19128
+ return /* @__PURE__ */ React197.createElement(
19129
+ Container,
19130
+ {
19131
+ style: {
19132
+ width: "100%",
19133
+ height: "100%",
19134
+ borderRadius: "100%",
19135
+ boxShadow: "0 1px 2px rgba(0, 0, 0, 0.1)",
19136
+ backgroundColor: "rgba(255, 255, 255, 0.1)",
19137
+ ...style
19138
+ }
19139
+ },
19140
+ /* @__PURE__ */ React197.createElement(IconComponent, { size: iconSize, color: "white", stroke: 1.5 })
19141
+ );
19142
+ }
19143
+ return /* @__PURE__ */ React197.createElement(
19144
+ "img",
18973
19145
  {
18974
- onClick,
18975
- variant: "filled",
18976
- size: "xs",
19146
+ src,
19147
+ alt: "Logo",
18977
19148
  style: {
18978
- backgroundColor: isActive ? "rgba(55, 53, 47, 0.9)" : "rgba(255, 255, 255, 0.9)",
18979
- color: isActive ? "white" : "#37352f",
18980
- fontSize: "12px",
18981
- fontWeight: 500,
18982
- padding: "4px 8px",
18983
- height: "auto",
19149
+ width: "100%",
19150
+ height: "100%",
19151
+ borderRadius: "100%",
19152
+ boxShadow: "0 1px 2px rgba(0, 0, 0, 0.1)",
19153
+ objectFit: "cover",
18984
19154
  ...style
18985
19155
  }
18986
- },
18987
- children
19156
+ }
18988
19157
  );
18989
19158
  }
18990
19159
 
18991
19160
  // src/mantine/components/CoverImage.tsx
19161
+ import { useDisclosure as useDisclosure4 } from "@mantine/hooks";
18992
19162
  function CoverImage({ coverImageUrl, logoUrl }) {
18993
19163
  const { editor, handlers, editable } = useBlocknoteContext();
18994
- const [isHovering, setIsHovering] = useState68(false);
18995
- const [isRepositioning, setIsRepositioning] = useState68(false);
18996
- const [coverPosition, setCoverPosition] = useState68(50);
19164
+ const [isHovering, setIsHovering] = useState69(false);
19165
+ const [isRepositioning, setIsRepositioning] = useState69(false);
19166
+ const [coverPosition, setCoverPosition] = useState69(50);
18997
19167
  const coverFileInputRef = useRef12(null);
18998
19168
  const logoFileInputRef = useRef12(null);
18999
- const [metadata, setMetadata] = useState68(() => editor?.getPageMetadata?.() || null);
19000
- useEffect53(() => {
19169
+ const [opened, { open, close }] = useDisclosure4(false);
19170
+ const [metadata, setMetadata] = useState69(() => editor?.getPageMetadata?.() || null);
19171
+ useEffect54(() => {
19001
19172
  if (!editor?._metadataManager) {
19002
19173
  return;
19003
19174
  }
@@ -19011,7 +19182,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
19011
19182
  const rawCoverUrl = metadata?.cover || coverImageUrl;
19012
19183
  const rawLogoUrl = metadata?.icon || logoUrl;
19013
19184
  const coverUrl = rawCoverUrl ? transformCoverImage(rawCoverUrl, "desktop") : void 0;
19014
- const logoSrc = rawLogoUrl ? transformIconImage(rawLogoUrl, "default") : void 0;
19185
+ const logoSrc = rawLogoUrl ? rawLogoUrl.startsWith("http") ? transformIconImage(rawLogoUrl, "default") : rawLogoUrl : void 0;
19015
19186
  const hasCover = !!coverUrl;
19016
19187
  const hasLogo = !!logoSrc;
19017
19188
  const handleFileSelect = async (event, type) => {
@@ -19031,46 +19202,37 @@ function CoverImage({ coverImageUrl, logoUrl }) {
19031
19202
  } else {
19032
19203
  await editor.setPageMetadata?.({ icon: imageUrl });
19033
19204
  }
19034
- } catch (error) {
19205
+ } catch {
19035
19206
  const currentMetadata = editor?.getPageMetadata?.();
19036
19207
  if (currentMetadata) {
19037
19208
  setMetadata(currentMetadata);
19038
19209
  }
19039
19210
  }
19040
19211
  };
19041
- const handleAddCover = () => {
19042
- coverFileInputRef.current?.click();
19043
- };
19044
- const handleChangeCover = () => {
19045
- coverFileInputRef.current?.click();
19046
- };
19047
- const handleReposition = () => {
19048
- setIsRepositioning(!isRepositioning);
19049
- };
19050
19212
  const handleRemoveCover = async () => {
19051
19213
  if (!editor) return;
19052
19214
  setMetadata((prev) => ({ ...prev, cover: void 0 }));
19053
19215
  try {
19054
19216
  await editor.setPageMetadata?.({ cover: void 0 });
19055
- } catch (error) {
19217
+ } catch {
19056
19218
  const currentMetadata = editor?.getPageMetadata?.();
19057
19219
  if (currentMetadata) {
19058
19220
  setMetadata(currentMetadata);
19059
19221
  }
19060
19222
  }
19061
19223
  };
19062
- const handleAddLogo = () => {
19063
- logoFileInputRef.current?.click();
19064
- };
19065
- const handleChangeLogo = () => {
19066
- logoFileInputRef.current?.click();
19224
+ const handleSelectLogoIcon = async (iconName) => {
19225
+ if (editor) {
19226
+ await editor.setPageMetadata?.({ icon: iconName });
19227
+ setMetadata((prev) => ({ ...prev, icon: iconName }));
19228
+ }
19067
19229
  };
19068
19230
  const handleRemoveLogo = async () => {
19069
19231
  if (!editor) return;
19070
19232
  setMetadata((prev) => ({ ...prev, icon: void 0 }));
19071
19233
  try {
19072
19234
  await editor.setPageMetadata?.({ icon: void 0 });
19073
- } catch (error) {
19235
+ } catch {
19074
19236
  const currentMetadata = editor?.getPageMetadata?.();
19075
19237
  if (currentMetadata) {
19076
19238
  setMetadata(currentMetadata);
@@ -19088,8 +19250,8 @@ function CoverImage({ coverImageUrl, logoUrl }) {
19088
19250
  return null;
19089
19251
  }
19090
19252
  if (!hasCover) {
19091
- return /* @__PURE__ */ React196.createElement(
19092
- Box35,
19253
+ return /* @__PURE__ */ React198.createElement(
19254
+ Box38,
19093
19255
  {
19094
19256
  style: {
19095
19257
  position: "relative",
@@ -19101,8 +19263,8 @@ function CoverImage({ coverImageUrl, logoUrl }) {
19101
19263
  onMouseEnter: () => editable && setIsHovering(true),
19102
19264
  onMouseLeave: () => editable && setIsHovering(false)
19103
19265
  },
19104
- /* @__PURE__ */ React196.createElement("div", { style: { maxWidth: "900px", margin: "0 auto", position: "relative", height: "100%" } }, /* @__PURE__ */ React196.createElement("input", { ref: coverFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "cover") }), /* @__PURE__ */ React196.createElement("input", { ref: logoFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "logo") }), editable && isHovering && !logoSrc && /* @__PURE__ */ React196.createElement(
19105
- Group62,
19266
+ /* @__PURE__ */ React198.createElement("div", { style: { maxWidth: "900px", margin: "0 auto", position: "relative", height: "100%" } }, /* @__PURE__ */ React198.createElement("input", { ref: coverFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "cover") }), /* @__PURE__ */ React198.createElement("input", { ref: logoFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "logo") }), editable && isHovering && !logoSrc && /* @__PURE__ */ React198.createElement(
19267
+ Group63,
19106
19268
  {
19107
19269
  gap: "xs",
19108
19270
  style: {
@@ -19112,10 +19274,20 @@ function CoverImage({ coverImageUrl, logoUrl }) {
19112
19274
  zIndex: 10
19113
19275
  }
19114
19276
  },
19115
- /* @__PURE__ */ React196.createElement(CoverImageButton, { onClick: handleAddLogo }, "Add icon"),
19116
- /* @__PURE__ */ React196.createElement(CoverImageButton, { onClick: handleAddCover }, "Add cover")
19117
- ), logoSrc && /* @__PURE__ */ React196.createElement(
19118
- Box35,
19277
+ /* @__PURE__ */ React198.createElement(
19278
+ BaseIconPicker,
19279
+ {
19280
+ opened,
19281
+ onClose: close,
19282
+ currentIcon: metadata?.icon ?? "",
19283
+ onSelectIcon: (name) => handleSelectLogoIcon(name),
19284
+ onUploadClick: () => logoFileInputRef.current?.click()
19285
+ },
19286
+ /* @__PURE__ */ React198.createElement(CoverImageButton, { onClick: open }, "Add icon")
19287
+ ),
19288
+ /* @__PURE__ */ React198.createElement(CoverImageButton, { onClick: () => coverFileInputRef.current?.click() }, "Add cover")
19289
+ ), logoSrc && /* @__PURE__ */ React198.createElement(
19290
+ Box38,
19119
19291
  {
19120
19292
  style: {
19121
19293
  position: "relative",
@@ -19128,21 +19300,8 @@ function CoverImage({ coverImageUrl, logoUrl }) {
19128
19300
  zIndex: 11
19129
19301
  }
19130
19302
  },
19131
- /* @__PURE__ */ React196.createElement(
19132
- "img",
19133
- {
19134
- src: logoSrc,
19135
- alt: "Logo",
19136
- style: {
19137
- width: "100%",
19138
- height: "100%",
19139
- borderRadius: "100%",
19140
- boxShadow: "0 1px 2px rgba(0, 0, 0, 0.1)",
19141
- objectFit: "cover"
19142
- }
19143
- }
19144
- ),
19145
- editable && isHovering && /* @__PURE__ */ React196.createElement(
19303
+ /* @__PURE__ */ React198.createElement(PageIcon, { src: logoSrc, useCenter: true, iconSize: 64 }),
19304
+ editable && isHovering && /* @__PURE__ */ React198.createElement(
19146
19305
  "div",
19147
19306
  {
19148
19307
  style: {
@@ -19157,21 +19316,30 @@ function CoverImage({ coverImageUrl, logoUrl }) {
19157
19316
  alignItems: "center"
19158
19317
  }
19159
19318
  },
19160
- /* @__PURE__ */ React196.createElement(CoverImageButton, { onClick: handleChangeLogo }, "Change"),
19161
- /* @__PURE__ */ React196.createElement(CoverImageButton, { onClick: handleRemoveLogo }, "Remove"),
19162
- /* @__PURE__ */ React196.createElement(CoverImageButton, { onClick: handleAddCover }, "Add cover")
19319
+ /* @__PURE__ */ React198.createElement(
19320
+ BaseIconPicker,
19321
+ {
19322
+ opened,
19323
+ onClose: close,
19324
+ currentIcon: metadata?.icon ?? "",
19325
+ onSelectIcon: (name) => handleSelectLogoIcon(name),
19326
+ onUploadClick: () => logoFileInputRef.current?.click()
19327
+ },
19328
+ /* @__PURE__ */ React198.createElement(CoverImageButton, { onClick: open }, "Change")
19329
+ ),
19330
+ /* @__PURE__ */ React198.createElement(CoverImageButton, { onClick: handleRemoveLogo }, "Remove"),
19331
+ /* @__PURE__ */ React198.createElement(CoverImageButton, { onClick: () => coverFileInputRef.current?.click() }, "Add cover")
19163
19332
  )
19164
19333
  ))
19165
19334
  );
19166
19335
  }
19167
- return /* @__PURE__ */ React196.createElement(
19168
- Box35,
19336
+ return /* @__PURE__ */ React198.createElement(
19337
+ Box38,
19169
19338
  {
19170
19339
  style: {
19171
19340
  position: "relative",
19172
19341
  width: "100%",
19173
19342
  paddingBottom: "70px",
19174
- // Space for logo area (increased for 120px logo)
19175
19343
  cursor: isRepositioning ? "ns-resize" : "default",
19176
19344
  backgroundColor: "transparent"
19177
19345
  },
@@ -19185,7 +19353,7 @@ function CoverImage({ coverImageUrl, logoUrl }) {
19185
19353
  onMouseMove: handleMouseMove,
19186
19354
  onClick: () => isRepositioning && setIsRepositioning(false)
19187
19355
  },
19188
- /* @__PURE__ */ React196.createElement(
19356
+ /* @__PURE__ */ React198.createElement(
19189
19357
  "img",
19190
19358
  {
19191
19359
  src: coverUrl,
@@ -19203,8 +19371,8 @@ function CoverImage({ coverImageUrl, logoUrl }) {
19203
19371
  }
19204
19372
  }
19205
19373
  ),
19206
- editable && isHovering && /* @__PURE__ */ React196.createElement(
19207
- Group62,
19374
+ editable && isHovering && /* @__PURE__ */ React198.createElement(
19375
+ Group63,
19208
19376
  {
19209
19377
  gap: "xs",
19210
19378
  style: {
@@ -19214,12 +19382,12 @@ function CoverImage({ coverImageUrl, logoUrl }) {
19214
19382
  zIndex: 10
19215
19383
  }
19216
19384
  },
19217
- /* @__PURE__ */ React196.createElement(CoverImageButton, { onClick: handleChangeCover }, "Change cover"),
19218
- /* @__PURE__ */ React196.createElement(CoverImageButton, { onClick: handleReposition, isActive: isRepositioning }, isRepositioning ? "Done" : "Reposition"),
19219
- /* @__PURE__ */ React196.createElement(CoverImageButton, { onClick: handleRemoveCover }, "Remove")
19385
+ /* @__PURE__ */ React198.createElement(CoverImageButton, { onClick: () => coverFileInputRef.current?.click() }, "Change cover"),
19386
+ /* @__PURE__ */ React198.createElement(CoverImageButton, { onClick: () => setIsRepositioning(!isRepositioning), isActive: isRepositioning }, isRepositioning ? "Done" : "Reposition"),
19387
+ /* @__PURE__ */ React198.createElement(CoverImageButton, { onClick: handleRemoveCover }, "Remove")
19220
19388
  ),
19221
- /* @__PURE__ */ React196.createElement("div", { style: { maxWidth: "900px", margin: "0 auto", position: "absolute", bottom: 0, left: -40, right: 0, height: "70px" } }, /* @__PURE__ */ React196.createElement(
19222
- Box35,
19389
+ /* @__PURE__ */ React198.createElement("div", { style: { maxWidth: "900px", margin: "0 auto", position: "absolute", bottom: 0, left: -40, right: 0, height: "70px" } }, /* @__PURE__ */ React198.createElement(
19390
+ Box38,
19223
19391
  {
19224
19392
  style: {
19225
19393
  position: "absolute",
@@ -19230,61 +19398,52 @@ function CoverImage({ coverImageUrl, logoUrl }) {
19230
19398
  zIndex: 11
19231
19399
  }
19232
19400
  },
19233
- logoSrc && /* @__PURE__ */ React196.createElement(
19234
- "img",
19401
+ logoSrc && /* @__PURE__ */ React198.createElement(PageIcon, { src: logoSrc, iconSize: 64 }),
19402
+ editable && isHovering && /* @__PURE__ */ React198.createElement(React198.Fragment, null, logoSrc ? /* @__PURE__ */ React198.createElement(
19403
+ Group63,
19235
19404
  {
19236
- src: logoSrc,
19237
- alt: "Logo",
19405
+ gap: "xs",
19238
19406
  style: {
19239
- borderRadius: "100%",
19240
- width: "100%",
19241
- height: "100%",
19242
- boxShadow: "0 1px 2px rgba(0, 0, 0, 0.1)",
19243
- objectFit: "cover"
19407
+ position: "absolute",
19408
+ top: "0",
19409
+ left: "130px",
19410
+ zIndex: 12
19244
19411
  }
19245
- }
19246
- ),
19247
- editable && isHovering && /* @__PURE__ */ React196.createElement(React196.Fragment, null, logoSrc ? (
19248
- // Logo exists: Show Change/Remove buttons when hovering on cover
19249
- /* @__PURE__ */ React196.createElement(
19250
- Group62,
19251
- {
19252
- gap: "xs",
19253
- style: {
19254
- position: "absolute",
19255
- top: "0",
19256
- left: "130px",
19257
- zIndex: 12
19258
- }
19259
- },
19260
- /* @__PURE__ */ React196.createElement(CoverImageButton, { onClick: handleChangeLogo }, "Change"),
19261
- /* @__PURE__ */ React196.createElement(CoverImageButton, { onClick: handleRemoveLogo }, "Remove")
19262
- )
19263
- ) : (
19264
- // No logo: Show "Add icon" button when hovering anywhere on cover
19265
- /* @__PURE__ */ React196.createElement(
19266
- CoverImageButton,
19412
+ },
19413
+ /* @__PURE__ */ React198.createElement(
19414
+ BaseIconPicker,
19267
19415
  {
19268
- onClick: handleAddLogo,
19269
- style: {
19270
- position: "absolute",
19271
- top: "50%",
19272
- left: "50%",
19273
- transform: "translate(-50%, -50%)",
19274
- zIndex: 12
19275
- }
19416
+ opened,
19417
+ onClose: close,
19418
+ currentIcon: metadata?.icon ?? "",
19419
+ onSelectIcon: (name) => handleSelectLogoIcon(name),
19420
+ onUploadClick: () => logoFileInputRef.current?.click()
19276
19421
  },
19277
- "Add icon"
19278
- )
19422
+ /* @__PURE__ */ React198.createElement(CoverImageButton, { onClick: open }, "Change")
19423
+ ),
19424
+ /* @__PURE__ */ React198.createElement(CoverImageButton, { onClick: handleRemoveLogo }, "Remove")
19425
+ ) : /* @__PURE__ */ React198.createElement(
19426
+ CoverImageButton,
19427
+ {
19428
+ onClick: open,
19429
+ style: {
19430
+ position: "absolute",
19431
+ top: "50%",
19432
+ left: "50%",
19433
+ transform: "translate(-50%, -50%)",
19434
+ zIndex: 12
19435
+ }
19436
+ },
19437
+ "Add icon"
19279
19438
  ))
19280
19439
  )),
19281
- /* @__PURE__ */ React196.createElement("input", { ref: coverFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "cover") }),
19282
- /* @__PURE__ */ React196.createElement("input", { ref: logoFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "logo") })
19440
+ /* @__PURE__ */ React198.createElement("input", { ref: coverFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "cover") }),
19441
+ /* @__PURE__ */ React198.createElement("input", { ref: logoFileInputRef, type: "file", accept: "image/*", style: { display: "none" }, onChange: (e) => handleFileSelect(e, "logo") })
19283
19442
  );
19284
19443
  }
19285
19444
 
19286
19445
  // src/mantine/components/PageHeader.tsx
19287
- import React197, { useState as useState69, useRef as useRef13, useEffect as useEffect54 } from "react";
19446
+ import React199, { useState as useState70, useRef as useRef13, useEffect as useEffect55 } from "react";
19288
19447
  function PageHeader({
19289
19448
  title = "New page",
19290
19449
  icon,
@@ -19295,9 +19454,9 @@ function PageHeader({
19295
19454
  isFavorited = false,
19296
19455
  menuItems = []
19297
19456
  }) {
19298
- const [isMenuOpen, setIsMenuOpen] = useState69(false);
19457
+ const [isMenuOpen, setIsMenuOpen] = useState70(false);
19299
19458
  const menuRef = useRef13(null);
19300
- useEffect54(() => {
19459
+ useEffect55(() => {
19301
19460
  function handleClickOutside(event) {
19302
19461
  if (menuRef.current && !menuRef.current.contains(event.target)) {
19303
19462
  setIsMenuOpen(false);
@@ -19316,14 +19475,14 @@ function PageHeader({
19316
19475
  setIsMenuOpen(false);
19317
19476
  }
19318
19477
  };
19319
- return /* @__PURE__ */ React197.createElement("div", { style: styles.container }, /* @__PURE__ */ React197.createElement("div", { style: styles.leftSection }, /* @__PURE__ */ React197.createElement("span", { style: styles.icon }, icon || "\u{1F4C4}"), /* @__PURE__ */ React197.createElement("span", { style: styles.title }, title), isPrivate && /* @__PURE__ */ React197.createElement("button", { style: styles.privacyBadge }, /* @__PURE__ */ React197.createElement("span", { style: styles.lockIcon }, "\u{1F512}"), /* @__PURE__ */ React197.createElement("span", null, "Private"), /* @__PURE__ */ React197.createElement("span", { style: styles.chevron }, "\u25BE"))), /* @__PURE__ */ React197.createElement("div", { style: styles.rightSection }, lastEdited && /* @__PURE__ */ React197.createElement("span", { style: styles.editedText }, lastEdited), onShare && /* @__PURE__ */ React197.createElement("button", { style: styles.shareButton, onClick: onShare }, "Share"), onFavorite && /* @__PURE__ */ React197.createElement("button", { style: styles.iconButton, onClick: onFavorite }, isFavorited ? "\u2605" : "\u2606"), menuItems.length > 0 && /* @__PURE__ */ React197.createElement("div", { style: styles.menuContainer, ref: menuRef }, /* @__PURE__ */ React197.createElement(
19478
+ return /* @__PURE__ */ React199.createElement("div", { style: styles.container }, /* @__PURE__ */ React199.createElement("div", { style: styles.leftSection }, /* @__PURE__ */ React199.createElement("span", { style: styles.icon }, icon || "\u{1F4C4}"), /* @__PURE__ */ React199.createElement("span", { style: styles.title }, title), isPrivate && /* @__PURE__ */ React199.createElement("button", { style: styles.privacyBadge }, /* @__PURE__ */ React199.createElement("span", { style: styles.lockIcon }, "\u{1F512}"), /* @__PURE__ */ React199.createElement("span", null, "Private"), /* @__PURE__ */ React199.createElement("span", { style: styles.chevron }, "\u25BE"))), /* @__PURE__ */ React199.createElement("div", { style: styles.rightSection }, lastEdited && /* @__PURE__ */ React199.createElement("span", { style: styles.editedText }, lastEdited), onShare && /* @__PURE__ */ React199.createElement("button", { style: styles.shareButton, onClick: onShare }, "Share"), onFavorite && /* @__PURE__ */ React199.createElement("button", { style: styles.iconButton, onClick: onFavorite }, isFavorited ? "\u2605" : "\u2606"), menuItems.length > 0 && /* @__PURE__ */ React199.createElement("div", { style: styles.menuContainer, ref: menuRef }, /* @__PURE__ */ React199.createElement(
19320
19479
  "button",
19321
19480
  {
19322
19481
  style: styles.menuButton,
19323
19482
  onClick: () => setIsMenuOpen(!isMenuOpen),
19324
19483
  "aria-label": "Menu"
19325
19484
  },
19326
- /* @__PURE__ */ React197.createElement(
19485
+ /* @__PURE__ */ React199.createElement(
19327
19486
  "svg",
19328
19487
  {
19329
19488
  width: "16",
@@ -19331,11 +19490,11 @@ function PageHeader({
19331
19490
  viewBox: "0 0 16 16",
19332
19491
  fill: "currentColor"
19333
19492
  },
19334
- /* @__PURE__ */ React197.createElement("circle", { cx: "3", cy: "8", r: "1.5" }),
19335
- /* @__PURE__ */ React197.createElement("circle", { cx: "8", cy: "8", r: "1.5" }),
19336
- /* @__PURE__ */ React197.createElement("circle", { cx: "13", cy: "8", r: "1.5" })
19493
+ /* @__PURE__ */ React199.createElement("circle", { cx: "3", cy: "8", r: "1.5" }),
19494
+ /* @__PURE__ */ React199.createElement("circle", { cx: "8", cy: "8", r: "1.5" }),
19495
+ /* @__PURE__ */ React199.createElement("circle", { cx: "13", cy: "8", r: "1.5" })
19337
19496
  )
19338
- ), isMenuOpen && /* @__PURE__ */ React197.createElement("div", { style: styles.dropdown }, menuItems.map((item, index) => /* @__PURE__ */ React197.createElement(React197.Fragment, { key: index }, item.divider && index > 0 && /* @__PURE__ */ React197.createElement("div", { style: styles.divider }), /* @__PURE__ */ React197.createElement(
19497
+ ), isMenuOpen && /* @__PURE__ */ React199.createElement("div", { style: styles.dropdown }, menuItems.map((item, index) => /* @__PURE__ */ React199.createElement(React199.Fragment, { key: index }, item.divider && index > 0 && /* @__PURE__ */ React199.createElement("div", { style: styles.divider }), /* @__PURE__ */ React199.createElement(
19339
19498
  "button",
19340
19499
  {
19341
19500
  style: {
@@ -19345,8 +19504,8 @@ function PageHeader({
19345
19504
  onClick: () => handleMenuItemClick(item),
19346
19505
  disabled: item.disabled
19347
19506
  },
19348
- item.icon && /* @__PURE__ */ React197.createElement("span", { style: styles.menuItemIcon }, item.icon),
19349
- /* @__PURE__ */ React197.createElement("span", null, item.label)
19507
+ item.icon && /* @__PURE__ */ React199.createElement("span", { style: styles.menuItemIcon }, item.icon),
19508
+ /* @__PURE__ */ React199.createElement("span", null, item.label)
19350
19509
  )))))));
19351
19510
  }
19352
19511
  var styles = {
@@ -19477,8 +19636,8 @@ var styles = {
19477
19636
  };
19478
19637
 
19479
19638
  // src/mantine/components/ExternalDropZone.tsx
19480
- import React198, { useCallback as useCallback52, useEffect as useEffect55, useRef as useRef14, useState as useState70 } from "react";
19481
- import { Box as Box36 } from "@mantine/core";
19639
+ import React200, { useCallback as useCallback52, useEffect as useEffect56, useRef as useRef14, useState as useState71 } from "react";
19640
+ import { Box as Box39 } from "@mantine/core";
19482
19641
  var SCROLL_ZONE_SIZE = 80;
19483
19642
  var SCROLL_SPEED = 12;
19484
19643
  var ExternalDropZone = ({
@@ -19491,9 +19650,9 @@ var ExternalDropZone = ({
19491
19650
  children
19492
19651
  }) => {
19493
19652
  const containerRef = useRef14(null);
19494
- const [isValidDrag, setIsValidDrag] = useState70(false);
19495
- const [isHoveringInPlacementMode, setIsHoveringInPlacementMode] = useState70(false);
19496
- const [indicatorStyle, setIndicatorStyle] = useState70({});
19653
+ const [isValidDrag, setIsValidDrag] = useState71(false);
19654
+ const [isHoveringInPlacementMode, setIsHoveringInPlacementMode] = useState71(false);
19655
+ const [indicatorStyle, setIndicatorStyle] = useState71({});
19497
19656
  const dropPositionRef = useRef14(null);
19498
19657
  const scrollAnimationRef = useRef14(null);
19499
19658
  const scrollDirectionRef = useRef14(null);
@@ -19653,7 +19812,7 @@ var ExternalDropZone = ({
19653
19812
  },
19654
19813
  [onDrop, stopAutoScroll]
19655
19814
  );
19656
- useEffect55(() => {
19815
+ useEffect56(() => {
19657
19816
  const handleGlobalDragEnd = () => {
19658
19817
  setIsValidDrag(false);
19659
19818
  dropPositionRef.current = null;
@@ -19711,7 +19870,7 @@ var ExternalDropZone = ({
19711
19870
  },
19712
19871
  [getScrollContainer]
19713
19872
  );
19714
- useEffect55(() => {
19873
+ useEffect56(() => {
19715
19874
  if (!isPlacementMode) return;
19716
19875
  const handleKeyDown = (e) => {
19717
19876
  if (e.key === "Escape") {
@@ -19734,13 +19893,13 @@ var ExternalDropZone = ({
19734
19893
  document.removeEventListener("click", handleGlobalClick, true);
19735
19894
  };
19736
19895
  }, [isPlacementMode, onPlacementCancel]);
19737
- useEffect55(() => {
19896
+ useEffect56(() => {
19738
19897
  if (!isPlacementMode) {
19739
19898
  setIsHoveringInPlacementMode(false);
19740
19899
  dropPositionRef.current = null;
19741
19900
  }
19742
19901
  }, [isPlacementMode]);
19743
- useEffect55(() => {
19902
+ useEffect56(() => {
19744
19903
  const isActive = isValidDrag || isPlacementMode && isHoveringInPlacementMode;
19745
19904
  if (isActive) {
19746
19905
  document.body.classList.add("external-artifact-drag-active");
@@ -19751,19 +19910,19 @@ var ExternalDropZone = ({
19751
19910
  document.body.classList.remove("external-artifact-drag-active");
19752
19911
  };
19753
19912
  }, [isValidDrag, isPlacementMode, isHoveringInPlacementMode]);
19754
- useEffect55(() => {
19913
+ useEffect56(() => {
19755
19914
  return () => {
19756
19915
  if (scrollAnimationRef.current) {
19757
19916
  cancelAnimationFrame(scrollAnimationRef.current);
19758
19917
  }
19759
19918
  };
19760
19919
  }, []);
19761
- const indicatorWithPosition = dropIndicator && React198.isValidElement(dropIndicator) ? React198.cloneElement(dropIndicator, {
19920
+ const indicatorWithPosition = dropIndicator && React200.isValidElement(dropIndicator) ? React200.cloneElement(dropIndicator, {
19762
19921
  indicatorTop: typeof indicatorStyle.top === "number" ? indicatorStyle.top : void 0
19763
19922
  }) : dropIndicator;
19764
19923
  const shouldShowIndicator = isValidDrag || isPlacementMode && isHoveringInPlacementMode;
19765
- return /* @__PURE__ */ React198.createElement(
19766
- Box36,
19924
+ return /* @__PURE__ */ React200.createElement(
19925
+ Box39,
19767
19926
  {
19768
19927
  ref: containerRef,
19769
19928
  style: {
@@ -19778,8 +19937,8 @@ var ExternalDropZone = ({
19778
19937
  "data-placement-mode": isPlacementMode ? "true" : void 0
19779
19938
  },
19780
19939
  children,
19781
- isPlacementMode && /* @__PURE__ */ React198.createElement(
19782
- Box36,
19940
+ isPlacementMode && /* @__PURE__ */ React200.createElement(
19941
+ Box39,
19783
19942
  {
19784
19943
  style: {
19785
19944
  position: "absolute",
@@ -19798,20 +19957,20 @@ var ExternalDropZone = ({
19798
19957
  onWheel: handleOverlayWheel
19799
19958
  }
19800
19959
  ),
19801
- shouldShowIndicator && indicatorWithPosition && /* @__PURE__ */ React198.createElement(Box36, { style: { ...indicatorStyle, background: "none", border: "none", boxShadow: "none" } }, indicatorWithPosition)
19960
+ shouldShowIndicator && indicatorWithPosition && /* @__PURE__ */ React200.createElement(Box39, { style: { ...indicatorStyle, background: "none", border: "none", boxShadow: "none" } }, indicatorWithPosition)
19802
19961
  );
19803
19962
  };
19804
19963
 
19805
19964
  // src/mantine/IxoEditor.tsx
19806
- import React200 from "react";
19965
+ import React202 from "react";
19807
19966
  import { getDefaultReactSlashMenuItems, SuggestionMenuController } from "@blocknote/react";
19808
19967
  import { BlockNoteView } from "@blocknote/mantine";
19809
19968
  import { filterSuggestionItems } from "@blocknote/core";
19810
19969
  import { MantineProvider } from "@mantine/core";
19811
19970
 
19812
19971
  // src/mantine/components/PanelContent.tsx
19813
- import React199 from "react";
19814
- import { Box as Box37 } from "@mantine/core";
19972
+ import React201 from "react";
19973
+ import { Box as Box40 } from "@mantine/core";
19815
19974
  var panelStyles = {
19816
19975
  light: {
19817
19976
  backgroundColor: "#ffffff",
@@ -19840,8 +19999,8 @@ function PanelContent({ theme }) {
19840
19999
  const { activePanel, registeredPanels } = usePanelStore();
19841
20000
  const isOpen = activePanel !== null;
19842
20001
  const content = activePanel ? registeredPanels.get(activePanel) : null;
19843
- return /* @__PURE__ */ React199.createElement(
19844
- Box37,
20002
+ return /* @__PURE__ */ React201.createElement(
20003
+ Box40,
19845
20004
  {
19846
20005
  pos: "sticky",
19847
20006
  right: 0,
@@ -19881,7 +20040,7 @@ function IxoEditorContent({
19881
20040
  }) {
19882
20041
  const { activePanel } = usePanelStore();
19883
20042
  const isPanelOpen = activePanel !== null;
19884
- const editorContent = /* @__PURE__ */ React200.createElement(
20043
+ const editorContent = /* @__PURE__ */ React202.createElement(
19885
20044
  BlockNoteView,
19886
20045
  {
19887
20046
  editor,
@@ -19896,7 +20055,7 @@ function IxoEditorContent({
19896
20055
  onChange,
19897
20056
  onSelectionChange
19898
20057
  },
19899
- config.slashMenu && /* @__PURE__ */ React200.createElement(
20058
+ config.slashMenu && /* @__PURE__ */ React202.createElement(
19900
20059
  SuggestionMenuController,
19901
20060
  {
19902
20061
  triggerCharacter: "/",
@@ -19909,7 +20068,7 @@ function IxoEditorContent({
19909
20068
  ),
19910
20069
  children
19911
20070
  );
19912
- return /* @__PURE__ */ React200.createElement("div", { style: { display: "flex", height: "100%", width: "100%", gap: 0 } }, /* @__PURE__ */ React200.createElement(
20071
+ return /* @__PURE__ */ React202.createElement("div", { style: { display: "flex", height: "100%", width: "100%", gap: 0 } }, /* @__PURE__ */ React202.createElement(
19913
20072
  "div",
19914
20073
  {
19915
20074
  className: `ixo-editor ixo-editor--theme-${config.theme} ${className}`,
@@ -19918,9 +20077,9 @@ function IxoEditorContent({
19918
20077
  transition: "width 0.2s ease"
19919
20078
  }
19920
20079
  },
19921
- selfNav && /* @__PURE__ */ React200.createElement(PageHeader, { ...pageHeaderProps }),
19922
- /* @__PURE__ */ React200.createElement(CoverImage, { coverImageUrl, logoUrl }),
19923
- (onExternalDrop || isPlacementMode) && isEditable ? /* @__PURE__ */ React200.createElement(
20080
+ selfNav && /* @__PURE__ */ React202.createElement(PageHeader, { ...pageHeaderProps }),
20081
+ /* @__PURE__ */ React202.createElement(CoverImage, { coverImageUrl, logoUrl }),
20082
+ (onExternalDrop || isPlacementMode) && isEditable ? /* @__PURE__ */ React202.createElement(
19924
20083
  ExternalDropZone,
19925
20084
  {
19926
20085
  editor,
@@ -19933,7 +20092,7 @@ function IxoEditorContent({
19933
20092
  },
19934
20093
  editorContent
19935
20094
  ) : editorContent
19936
- ), isPanelVisible && /* @__PURE__ */ React200.createElement(PanelContent, { theme: config.theme }));
20095
+ ), isPanelVisible && /* @__PURE__ */ React202.createElement(PanelContent, { theme: config.theme }));
19937
20096
  }
19938
20097
  function IxoEditor({
19939
20098
  editor,
@@ -19973,7 +20132,7 @@ function IxoEditor({
19973
20132
  tableHandles: true
19974
20133
  };
19975
20134
  const isEditable = editable;
19976
- const editorContent = /* @__PURE__ */ React200.createElement(
20135
+ const editorContent = /* @__PURE__ */ React202.createElement(
19977
20136
  BlocknoteProvider,
19978
20137
  {
19979
20138
  editor,
@@ -19985,7 +20144,7 @@ function IxoEditor({
19985
20144
  dynamicListPanelRenderer,
19986
20145
  domainCardRenderer
19987
20146
  },
19988
- /* @__PURE__ */ React200.createElement(
20147
+ /* @__PURE__ */ React202.createElement(
19989
20148
  IxoEditorContent,
19990
20149
  {
19991
20150
  isPanelVisible,
@@ -20009,14 +20168,14 @@ function IxoEditor({
20009
20168
  )
20010
20169
  );
20011
20170
  if (mantineTheme) {
20012
- return /* @__PURE__ */ React200.createElement(MantineProvider, { theme: mantineTheme }, editorContent);
20171
+ return /* @__PURE__ */ React202.createElement(MantineProvider, { theme: mantineTheme }, editorContent);
20013
20172
  }
20014
20173
  return editorContent;
20015
20174
  }
20016
20175
 
20017
20176
  // src/mantine/components/EntitySigningSetup.tsx
20018
- import React201, { useState as useState71 } from "react";
20019
- import { Modal as Modal3, Stack as Stack126, Text as Text100, TextInput as TextInput6, Button as Button36, Alert as Alert26, Group as Group63 } from "@mantine/core";
20177
+ import React203, { useState as useState72 } from "react";
20178
+ import { Modal as Modal3, Stack as Stack127, Text as Text101, TextInput as TextInput7, Button as Button36, Alert as Alert26, Group as Group64 } from "@mantine/core";
20020
20179
  import { IconAlertCircle as IconAlertCircle13, IconCheck as IconCheck7, IconKey as IconKey2 } from "@tabler/icons-react";
20021
20180
  var EntitySigningSetup = ({
20022
20181
  opened,
@@ -20025,11 +20184,11 @@ var EntitySigningSetup = ({
20025
20184
  entityName,
20026
20185
  onSetup
20027
20186
  }) => {
20028
- const [pin, setPin] = useState71("");
20029
- const [confirmPin, setConfirmPin] = useState71("");
20030
- const [loading, setLoading] = useState71(false);
20031
- const [error, setError] = useState71(null);
20032
- const [success, setSuccess] = useState71(false);
20187
+ const [pin, setPin] = useState72("");
20188
+ const [confirmPin, setConfirmPin] = useState72("");
20189
+ const [loading, setLoading] = useState72(false);
20190
+ const [error, setError] = useState72(null);
20191
+ const [success, setSuccess] = useState72(false);
20033
20192
  const handleSetup = async () => {
20034
20193
  if (pin.length < 4) {
20035
20194
  setError("PIN must be at least 4 characters");
@@ -20069,16 +20228,16 @@ var EntitySigningSetup = ({
20069
20228
  setSuccess(false);
20070
20229
  }
20071
20230
  };
20072
- return /* @__PURE__ */ React201.createElement(
20231
+ return /* @__PURE__ */ React203.createElement(
20073
20232
  Modal3,
20074
20233
  {
20075
20234
  opened,
20076
20235
  onClose: handleClose,
20077
- title: /* @__PURE__ */ React201.createElement(Group63, { gap: "xs" }, /* @__PURE__ */ React201.createElement(IconKey2, { size: 20 }), /* @__PURE__ */ React201.createElement(Text100, { fw: 600 }, "Entity Signing Setup")),
20236
+ title: /* @__PURE__ */ React203.createElement(Group64, { gap: "xs" }, /* @__PURE__ */ React203.createElement(IconKey2, { size: 20 }), /* @__PURE__ */ React203.createElement(Text101, { fw: 600 }, "Entity Signing Setup")),
20078
20237
  size: "md"
20079
20238
  },
20080
- /* @__PURE__ */ React201.createElement(Stack126, { gap: "md" }, success ? /* @__PURE__ */ React201.createElement(Alert26, { color: "green", icon: /* @__PURE__ */ React201.createElement(IconCheck7, { size: 16 }) }, "Entity signing key set up successfully!") : /* @__PURE__ */ React201.createElement(React201.Fragment, null, /* @__PURE__ */ React201.createElement(Text100, { size: "sm", c: "dimmed" }, "Flow authorization requires a signing key for", " ", /* @__PURE__ */ React201.createElement(Text100, { span: true, fw: 500 }, entityName || entityDid), "."), /* @__PURE__ */ React201.createElement(Alert26, { color: "blue", variant: "light" }, /* @__PURE__ */ React201.createElement(Text100, { size: "sm" }, "This is a ", /* @__PURE__ */ React201.createElement("strong", null, "one-time setup"), " that allows flows to grant permissions without requiring wallet signatures for each delegation.")), /* @__PURE__ */ React201.createElement(Stack126, { gap: "xs" }, /* @__PURE__ */ React201.createElement(Text100, { size: "sm", fw: 500 }, "What happens:"), /* @__PURE__ */ React201.createElement(Text100, { size: "sm", c: "dimmed" }, "1. A new signing key is generated"), /* @__PURE__ */ React201.createElement(Text100, { size: "sm", c: "dimmed" }, "2. Key is registered on the entity's DID document (requires wallet)"), /* @__PURE__ */ React201.createElement(Text100, { size: "sm", c: "dimmed" }, "3. Key is stored encrypted in the entity's Matrix room")), /* @__PURE__ */ React201.createElement(
20081
- TextInput6,
20239
+ /* @__PURE__ */ React203.createElement(Stack127, { gap: "md" }, success ? /* @__PURE__ */ React203.createElement(Alert26, { color: "green", icon: /* @__PURE__ */ React203.createElement(IconCheck7, { size: 16 }) }, "Entity signing key set up successfully!") : /* @__PURE__ */ React203.createElement(React203.Fragment, null, /* @__PURE__ */ React203.createElement(Text101, { size: "sm", c: "dimmed" }, "Flow authorization requires a signing key for", " ", /* @__PURE__ */ React203.createElement(Text101, { span: true, fw: 500 }, entityName || entityDid), "."), /* @__PURE__ */ React203.createElement(Alert26, { color: "blue", variant: "light" }, /* @__PURE__ */ React203.createElement(Text101, { size: "sm" }, "This is a ", /* @__PURE__ */ React203.createElement("strong", null, "one-time setup"), " that allows flows to grant permissions without requiring wallet signatures for each delegation.")), /* @__PURE__ */ React203.createElement(Stack127, { gap: "xs" }, /* @__PURE__ */ React203.createElement(Text101, { size: "sm", fw: 500 }, "What happens:"), /* @__PURE__ */ React203.createElement(Text101, { size: "sm", c: "dimmed" }, "1. A new signing key is generated"), /* @__PURE__ */ React203.createElement(Text101, { size: "sm", c: "dimmed" }, "2. Key is registered on the entity's DID document (requires wallet)"), /* @__PURE__ */ React203.createElement(Text101, { size: "sm", c: "dimmed" }, "3. Key is stored encrypted in the entity's Matrix room")), /* @__PURE__ */ React203.createElement(
20240
+ TextInput7,
20082
20241
  {
20083
20242
  label: "Enter PIN to encrypt signing key",
20084
20243
  description: "This PIN will be required when granting permissions",
@@ -20088,8 +20247,8 @@ var EntitySigningSetup = ({
20088
20247
  onChange: (e) => setPin(e.currentTarget.value),
20089
20248
  disabled: loading
20090
20249
  }
20091
- ), /* @__PURE__ */ React201.createElement(
20092
- TextInput6,
20250
+ ), /* @__PURE__ */ React203.createElement(
20251
+ TextInput7,
20093
20252
  {
20094
20253
  label: "Confirm PIN",
20095
20254
  type: "password",
@@ -20098,12 +20257,12 @@ var EntitySigningSetup = ({
20098
20257
  onChange: (e) => setConfirmPin(e.currentTarget.value),
20099
20258
  disabled: loading
20100
20259
  }
20101
- ), error && /* @__PURE__ */ React201.createElement(Alert26, { color: "red", icon: /* @__PURE__ */ React201.createElement(IconAlertCircle13, { size: 16 }) }, error), /* @__PURE__ */ React201.createElement(Group63, { justify: "flex-end", mt: "md" }, /* @__PURE__ */ React201.createElement(Button36, { variant: "subtle", onClick: handleClose, disabled: loading }, "Cancel"), /* @__PURE__ */ React201.createElement(
20260
+ ), error && /* @__PURE__ */ React203.createElement(Alert26, { color: "red", icon: /* @__PURE__ */ React203.createElement(IconAlertCircle13, { size: 16 }) }, error), /* @__PURE__ */ React203.createElement(Group64, { justify: "flex-end", mt: "md" }, /* @__PURE__ */ React203.createElement(Button36, { variant: "subtle", onClick: handleClose, disabled: loading }, "Cancel"), /* @__PURE__ */ React203.createElement(
20102
20261
  Button36,
20103
20262
  {
20104
20263
  onClick: handleSetup,
20105
20264
  loading,
20106
- leftSection: /* @__PURE__ */ React201.createElement(IconKey2, { size: 16 })
20265
+ leftSection: /* @__PURE__ */ React203.createElement(IconKey2, { size: 16 })
20107
20266
  },
20108
20267
  "Setup Entity Signing"
20109
20268
  ))))
@@ -20111,8 +20270,8 @@ var EntitySigningSetup = ({
20111
20270
  };
20112
20271
 
20113
20272
  // src/mantine/components/FlowPermissionsPanel.tsx
20114
- import React202, { useState as useState72, useEffect as useEffect56, useMemo as useMemo65 } from "react";
20115
- import { Stack as Stack127, Text as Text101, Paper as Paper21, Group as Group64, Badge as Badge31, Button as Button37, ActionIcon as ActionIcon29, Loader as Loader26, Alert as Alert27, Divider as Divider12 } from "@mantine/core";
20273
+ import React204, { useState as useState73, useEffect as useEffect57, useMemo as useMemo67 } from "react";
20274
+ import { Stack as Stack128, Text as Text102, Paper as Paper21, Group as Group65, Badge as Badge31, Button as Button37, ActionIcon as ActionIcon29, Loader as Loader26, Alert as Alert27, Divider as Divider12 } from "@mantine/core";
20116
20275
  import { IconPlus as IconPlus5, IconTrash as IconTrash6, IconShieldCheck as IconShieldCheck2, IconUser as IconUser4, IconRobot as IconRobot3, IconBuilding } from "@tabler/icons-react";
20117
20276
  var FlowPermissionsPanel = ({
20118
20277
  editor,
@@ -20122,11 +20281,11 @@ var FlowPermissionsPanel = ({
20122
20281
  onRevokePermission,
20123
20282
  getUserDisplayName
20124
20283
  }) => {
20125
- const [delegations, setDelegations] = useState72([]);
20126
- const [loading, setLoading] = useState72(true);
20127
- const [revoking, setRevoking] = useState72(null);
20128
- const rootCapability = useMemo65(() => editor.getRootCapability?.(), [editor]);
20129
- useEffect56(() => {
20284
+ const [delegations, setDelegations] = useState73([]);
20285
+ const [loading, setLoading] = useState73(true);
20286
+ const [revoking, setRevoking] = useState73(null);
20287
+ const rootCapability = useMemo67(() => editor.getRootCapability?.(), [editor]);
20288
+ useEffect57(() => {
20130
20289
  const loadDelegations = async () => {
20131
20290
  setLoading(true);
20132
20291
  const allDelegations = editor.getAllDelegations?.() || [];
@@ -20165,11 +20324,11 @@ var FlowPermissionsPanel = ({
20165
20324
  const getIcon2 = (type) => {
20166
20325
  switch (type) {
20167
20326
  case "oracle":
20168
- return /* @__PURE__ */ React202.createElement(IconRobot3, { size: 16 });
20327
+ return /* @__PURE__ */ React204.createElement(IconRobot3, { size: 16 });
20169
20328
  case "entity":
20170
- return /* @__PURE__ */ React202.createElement(IconBuilding, { size: 16 });
20329
+ return /* @__PURE__ */ React204.createElement(IconBuilding, { size: 16 });
20171
20330
  default:
20172
- return /* @__PURE__ */ React202.createElement(IconUser4, { size: 16 });
20331
+ return /* @__PURE__ */ React204.createElement(IconUser4, { size: 16 });
20173
20332
  }
20174
20333
  };
20175
20334
  const formatCapabilities = (caps) => {
@@ -20188,7 +20347,7 @@ var FlowPermissionsPanel = ({
20188
20347
  if (date < /* @__PURE__ */ new Date()) return "Expired";
20189
20348
  return date.toLocaleDateString();
20190
20349
  };
20191
- return /* @__PURE__ */ React202.createElement(Stack127, { gap: "md" }, /* @__PURE__ */ React202.createElement(Stack127, { gap: "xs" }, /* @__PURE__ */ React202.createElement(Text101, { fw: 600, size: "sm" }, "Root Authority"), /* @__PURE__ */ React202.createElement(Paper21, { p: "sm", withBorder: true }, /* @__PURE__ */ React202.createElement(Group64, { gap: "xs" }, /* @__PURE__ */ React202.createElement(IconShieldCheck2, { size: 20, color: "var(--mantine-color-green-6)" }), /* @__PURE__ */ React202.createElement(Stack127, { gap: 2, style: { flex: 1 } }, /* @__PURE__ */ React202.createElement(Text101, { size: "sm", fw: 500 }, entityName || entityDid), /* @__PURE__ */ React202.createElement(Text101, { size: "xs", c: "dimmed" }, rootCapability ? `Granted: ${new Date(rootCapability.issuedAt).toLocaleDateString()}` : "Root capability not set up")), /* @__PURE__ */ React202.createElement(Badge31, { color: "green", variant: "light" }, "Entity")))), /* @__PURE__ */ React202.createElement(Divider12, { label: "Delegated Permissions", labelPosition: "center" }), loading ? /* @__PURE__ */ React202.createElement(Group64, { justify: "center", py: "xl" }, /* @__PURE__ */ React202.createElement(Loader26, { size: "sm" })) : delegations.length === 0 ? /* @__PURE__ */ React202.createElement(Alert27, { color: "gray", variant: "light" }, /* @__PURE__ */ React202.createElement(Text101, { size: "sm" }, "No permissions have been granted yet.")) : /* @__PURE__ */ React202.createElement(Stack127, { gap: "xs" }, delegations.map(({ capability, displayName, type }) => /* @__PURE__ */ React202.createElement(Paper21, { key: capability.id, p: "sm", withBorder: true }, /* @__PURE__ */ React202.createElement(Group64, { justify: "space-between" }, /* @__PURE__ */ React202.createElement(Group64, { gap: "xs" }, getIcon2(type), /* @__PURE__ */ React202.createElement(Stack127, { gap: 2 }, /* @__PURE__ */ React202.createElement(Text101, { size: "sm", fw: 500 }, displayName), /* @__PURE__ */ React202.createElement(Text101, { size: "xs", c: "dimmed" }, formatCapabilities(capability.capabilities)), /* @__PURE__ */ React202.createElement(Group64, { gap: "xs" }, /* @__PURE__ */ React202.createElement(Text101, { size: "xs", c: "dimmed" }, "Expires: ", formatExpiration(capability.expiration)), /* @__PURE__ */ React202.createElement(Text101, { size: "xs", c: "dimmed" }, "\u2022"), /* @__PURE__ */ React202.createElement(Text101, { size: "xs", c: "dimmed" }, "Granted by: ", capability.issuer === entityDid ? "Entity" : capability.issuer.slice(-8))))), /* @__PURE__ */ React202.createElement(
20350
+ return /* @__PURE__ */ React204.createElement(Stack128, { gap: "md" }, /* @__PURE__ */ React204.createElement(Stack128, { gap: "xs" }, /* @__PURE__ */ React204.createElement(Text102, { fw: 600, size: "sm" }, "Root Authority"), /* @__PURE__ */ React204.createElement(Paper21, { p: "sm", withBorder: true }, /* @__PURE__ */ React204.createElement(Group65, { gap: "xs" }, /* @__PURE__ */ React204.createElement(IconShieldCheck2, { size: 20, color: "var(--mantine-color-green-6)" }), /* @__PURE__ */ React204.createElement(Stack128, { gap: 2, style: { flex: 1 } }, /* @__PURE__ */ React204.createElement(Text102, { size: "sm", fw: 500 }, entityName || entityDid), /* @__PURE__ */ React204.createElement(Text102, { size: "xs", c: "dimmed" }, rootCapability ? `Granted: ${new Date(rootCapability.issuedAt).toLocaleDateString()}` : "Root capability not set up")), /* @__PURE__ */ React204.createElement(Badge31, { color: "green", variant: "light" }, "Entity")))), /* @__PURE__ */ React204.createElement(Divider12, { label: "Delegated Permissions", labelPosition: "center" }), loading ? /* @__PURE__ */ React204.createElement(Group65, { justify: "center", py: "xl" }, /* @__PURE__ */ React204.createElement(Loader26, { size: "sm" })) : delegations.length === 0 ? /* @__PURE__ */ React204.createElement(Alert27, { color: "gray", variant: "light" }, /* @__PURE__ */ React204.createElement(Text102, { size: "sm" }, "No permissions have been granted yet.")) : /* @__PURE__ */ React204.createElement(Stack128, { gap: "xs" }, delegations.map(({ capability, displayName, type }) => /* @__PURE__ */ React204.createElement(Paper21, { key: capability.id, p: "sm", withBorder: true }, /* @__PURE__ */ React204.createElement(Group65, { justify: "space-between" }, /* @__PURE__ */ React204.createElement(Group65, { gap: "xs" }, getIcon2(type), /* @__PURE__ */ React204.createElement(Stack128, { gap: 2 }, /* @__PURE__ */ React204.createElement(Text102, { size: "sm", fw: 500 }, displayName), /* @__PURE__ */ React204.createElement(Text102, { size: "xs", c: "dimmed" }, formatCapabilities(capability.capabilities)), /* @__PURE__ */ React204.createElement(Group65, { gap: "xs" }, /* @__PURE__ */ React204.createElement(Text102, { size: "xs", c: "dimmed" }, "Expires: ", formatExpiration(capability.expiration)), /* @__PURE__ */ React204.createElement(Text102, { size: "xs", c: "dimmed" }, "\u2022"), /* @__PURE__ */ React204.createElement(Text102, { size: "xs", c: "dimmed" }, "Granted by: ", capability.issuer === entityDid ? "Entity" : capability.issuer.slice(-8))))), /* @__PURE__ */ React204.createElement(
20192
20351
  ActionIcon29,
20193
20352
  {
20194
20353
  color: "red",
@@ -20197,11 +20356,11 @@ var FlowPermissionsPanel = ({
20197
20356
  loading: revoking === capability.id,
20198
20357
  disabled: !!revoking
20199
20358
  },
20200
- /* @__PURE__ */ React202.createElement(IconTrash6, { size: 16 })
20201
- ))))), /* @__PURE__ */ React202.createElement(
20359
+ /* @__PURE__ */ React204.createElement(IconTrash6, { size: 16 })
20360
+ ))))), /* @__PURE__ */ React204.createElement(
20202
20361
  Button37,
20203
20362
  {
20204
- leftSection: /* @__PURE__ */ React202.createElement(IconPlus5, { size: 16 }),
20363
+ leftSection: /* @__PURE__ */ React204.createElement(IconPlus5, { size: 16 }),
20205
20364
  variant: "light",
20206
20365
  onClick: onGrantPermission
20207
20366
  },
@@ -20210,14 +20369,14 @@ var FlowPermissionsPanel = ({
20210
20369
  };
20211
20370
 
20212
20371
  // src/mantine/components/GrantPermissionModal.tsx
20213
- import React203, { useState as useState73, useCallback as useCallback53 } from "react";
20372
+ import React205, { useState as useState74, useCallback as useCallback53 } from "react";
20214
20373
  import {
20215
20374
  Modal as Modal4,
20216
- Stack as Stack128,
20217
- Text as Text102,
20218
- TextInput as TextInput7,
20375
+ Stack as Stack129,
20376
+ Text as Text103,
20377
+ TextInput as TextInput8,
20219
20378
  Button as Button38,
20220
- Group as Group65,
20379
+ Group as Group66,
20221
20380
  Radio as Radio6,
20222
20381
  Checkbox as Checkbox12,
20223
20382
  Alert as Alert28,
@@ -20228,7 +20387,7 @@ import {
20228
20387
  Divider as Divider13,
20229
20388
  NumberInput as NumberInput3
20230
20389
  } from "@mantine/core";
20231
- import { IconSearch as IconSearch5, IconUser as IconUser5, IconRobot as IconRobot4, IconX as IconX8, IconShieldPlus as IconShieldPlus3 } from "@tabler/icons-react";
20390
+ import { IconSearch as IconSearch6, IconUser as IconUser5, IconRobot as IconRobot4, IconX as IconX9, IconShieldPlus as IconShieldPlus3 } from "@tabler/icons-react";
20232
20391
  var GrantPermissionModal = ({
20233
20392
  opened,
20234
20393
  onClose,
@@ -20242,20 +20401,20 @@ var GrantPermissionModal = ({
20242
20401
  const singleBlockMode = !!targetBlockId || blocks.length === 1;
20243
20402
  const fixedBlockId = targetBlockId || (blocks.length === 1 ? blocks[0].id : null);
20244
20403
  const fixedBlock = fixedBlockId ? blocks.find((b) => b.id === fixedBlockId) || blocks[0] : null;
20245
- const [recipientType, setRecipientType] = useState73("user");
20246
- const [searchQuery, setSearchQuery] = useState73("");
20247
- const [searchResults, setSearchResults] = useState73([]);
20248
- const [searching, setSearching] = useState73(false);
20249
- const [selectedRecipient, setSelectedRecipient] = useState73(null);
20250
- const [manualDid, setManualDid] = useState73("");
20251
- const [scopeType, setScopeType] = useState73("full");
20252
- const [selectedBlocks, setSelectedBlocks] = useState73([]);
20253
- const [expirationEnabled, setExpirationEnabled] = useState73(false);
20254
- const [expirationDays, setExpirationDays] = useState73(30);
20255
- const [canDelegate, setCanDelegate] = useState73(false);
20256
- const [pin, setPin] = useState73("");
20257
- const [loading, setLoading] = useState73(false);
20258
- const [error, setError] = useState73(null);
20404
+ const [recipientType, setRecipientType] = useState74("user");
20405
+ const [searchQuery, setSearchQuery] = useState74("");
20406
+ const [searchResults, setSearchResults] = useState74([]);
20407
+ const [searching, setSearching] = useState74(false);
20408
+ const [selectedRecipient, setSelectedRecipient] = useState74(null);
20409
+ const [manualDid, setManualDid] = useState74("");
20410
+ const [scopeType, setScopeType] = useState74("full");
20411
+ const [selectedBlocks, setSelectedBlocks] = useState74([]);
20412
+ const [expirationEnabled, setExpirationEnabled] = useState74(false);
20413
+ const [expirationDays, setExpirationDays] = useState74(30);
20414
+ const [canDelegate, setCanDelegate] = useState74(false);
20415
+ const [pin, setPin] = useState74("");
20416
+ const [loading, setLoading] = useState74(false);
20417
+ const [error, setError] = useState74(null);
20259
20418
  const handleSearch = useCallback53(async () => {
20260
20419
  if (searchQuery.length < 2) return;
20261
20420
  setSearching(true);
@@ -20343,29 +20502,29 @@ var GrantPermissionModal = ({
20343
20502
  resetForm();
20344
20503
  }
20345
20504
  };
20346
- return /* @__PURE__ */ React203.createElement(
20505
+ return /* @__PURE__ */ React205.createElement(
20347
20506
  Modal4,
20348
20507
  {
20349
20508
  opened,
20350
20509
  onClose: handleClose,
20351
- title: /* @__PURE__ */ React203.createElement(Group65, { gap: "xs" }, /* @__PURE__ */ React203.createElement(IconShieldPlus3, { size: 20 }), /* @__PURE__ */ React203.createElement(Text102, { fw: 600 }, "Grant Permission")),
20510
+ title: /* @__PURE__ */ React205.createElement(Group66, { gap: "xs" }, /* @__PURE__ */ React205.createElement(IconShieldPlus3, { size: 20 }), /* @__PURE__ */ React205.createElement(Text103, { fw: 600 }, "Grant Permission")),
20352
20511
  size: "lg"
20353
20512
  },
20354
- /* @__PURE__ */ React203.createElement(Stack128, { gap: "md" }, /* @__PURE__ */ React203.createElement(Stack128, { gap: "xs" }, /* @__PURE__ */ React203.createElement(Text102, { size: "sm", fw: 500 }, "Recipient Type"), /* @__PURE__ */ React203.createElement(Radio6.Group, { value: recipientType, onChange: (v) => {
20513
+ /* @__PURE__ */ React205.createElement(Stack129, { gap: "md" }, /* @__PURE__ */ React205.createElement(Stack129, { gap: "xs" }, /* @__PURE__ */ React205.createElement(Text103, { size: "sm", fw: 500 }, "Recipient Type"), /* @__PURE__ */ React205.createElement(Radio6.Group, { value: recipientType, onChange: (v) => {
20355
20514
  setRecipientType(v);
20356
20515
  setSelectedRecipient(null);
20357
20516
  setSearchResults([]);
20358
- } }, /* @__PURE__ */ React203.createElement(Group65, null, /* @__PURE__ */ React203.createElement(Radio6, { value: "user", label: "User" }), /* @__PURE__ */ React203.createElement(Radio6, { value: "oracle", label: "Oracle" }), /* @__PURE__ */ React203.createElement(Radio6, { value: "manual", label: "Enter DID" })))), recipientType !== "manual" ? /* @__PURE__ */ React203.createElement(Stack128, { gap: "xs" }, /* @__PURE__ */ React203.createElement(
20359
- TextInput7,
20517
+ } }, /* @__PURE__ */ React205.createElement(Group66, null, /* @__PURE__ */ React205.createElement(Radio6, { value: "user", label: "User" }), /* @__PURE__ */ React205.createElement(Radio6, { value: "oracle", label: "Oracle" }), /* @__PURE__ */ React205.createElement(Radio6, { value: "manual", label: "Enter DID" })))), recipientType !== "manual" ? /* @__PURE__ */ React205.createElement(Stack129, { gap: "xs" }, /* @__PURE__ */ React205.createElement(
20518
+ TextInput8,
20360
20519
  {
20361
20520
  placeholder: recipientType === "oracle" ? "Search oracles..." : "Search users...",
20362
- leftSection: /* @__PURE__ */ React203.createElement(IconSearch5, { size: 16 }),
20363
- rightSection: searching ? /* @__PURE__ */ React203.createElement(Loader27, { size: 14 }) : null,
20521
+ leftSection: /* @__PURE__ */ React205.createElement(IconSearch6, { size: 16 }),
20522
+ rightSection: searching ? /* @__PURE__ */ React205.createElement(Loader27, { size: 14 }) : null,
20364
20523
  value: searchQuery,
20365
20524
  onChange: (e) => setSearchQuery(e.currentTarget.value),
20366
20525
  onKeyDown: (e) => e.key === "Enter" && handleSearch()
20367
20526
  }
20368
- ), selectedRecipient ? /* @__PURE__ */ React203.createElement(Paper22, { p: "sm", withBorder: true }, /* @__PURE__ */ React203.createElement(Group65, { justify: "space-between" }, /* @__PURE__ */ React203.createElement(Group65, { gap: "xs" }, recipientType === "oracle" ? /* @__PURE__ */ React203.createElement(IconRobot4, { size: 16 }) : /* @__PURE__ */ React203.createElement(IconUser5, { size: 16 }), /* @__PURE__ */ React203.createElement(Text102, { size: "sm" }, selectedRecipient.displayName), /* @__PURE__ */ React203.createElement(Badge32, { size: "xs", variant: "light" }, selectedRecipient.did.slice(-12))), /* @__PURE__ */ React203.createElement(ActionIcon30, { size: "sm", variant: "subtle", onClick: () => setSelectedRecipient(null) }, /* @__PURE__ */ React203.createElement(IconX8, { size: 14 })))) : searchResults.length > 0 ? /* @__PURE__ */ React203.createElement(Paper22, { p: "xs", withBorder: true, style: { maxHeight: 150, overflow: "auto" } }, /* @__PURE__ */ React203.createElement(Stack128, { gap: 4 }, searchResults.map((result) => /* @__PURE__ */ React203.createElement(
20527
+ ), selectedRecipient ? /* @__PURE__ */ React205.createElement(Paper22, { p: "sm", withBorder: true }, /* @__PURE__ */ React205.createElement(Group66, { justify: "space-between" }, /* @__PURE__ */ React205.createElement(Group66, { gap: "xs" }, recipientType === "oracle" ? /* @__PURE__ */ React205.createElement(IconRobot4, { size: 16 }) : /* @__PURE__ */ React205.createElement(IconUser5, { size: 16 }), /* @__PURE__ */ React205.createElement(Text103, { size: "sm" }, selectedRecipient.displayName), /* @__PURE__ */ React205.createElement(Badge32, { size: "xs", variant: "light" }, selectedRecipient.did.slice(-12))), /* @__PURE__ */ React205.createElement(ActionIcon30, { size: "sm", variant: "subtle", onClick: () => setSelectedRecipient(null) }, /* @__PURE__ */ React205.createElement(IconX9, { size: 14 })))) : searchResults.length > 0 ? /* @__PURE__ */ React205.createElement(Paper22, { p: "xs", withBorder: true, style: { maxHeight: 150, overflow: "auto" } }, /* @__PURE__ */ React205.createElement(Stack129, { gap: 4 }, searchResults.map((result) => /* @__PURE__ */ React205.createElement(
20369
20528
  Button38,
20370
20529
  {
20371
20530
  key: result.did,
@@ -20375,20 +20534,20 @@ var GrantPermissionModal = ({
20375
20534
  onClick: () => setSelectedRecipient(result)
20376
20535
  },
20377
20536
  result.displayName
20378
- )))) : null) : /* @__PURE__ */ React203.createElement(
20379
- TextInput7,
20537
+ )))) : null) : /* @__PURE__ */ React205.createElement(
20538
+ TextInput8,
20380
20539
  {
20381
20540
  label: "Recipient DID",
20382
20541
  placeholder: "did:ixo:...",
20383
20542
  value: manualDid,
20384
20543
  onChange: (e) => setManualDid(e.currentTarget.value)
20385
20544
  }
20386
- ), /* @__PURE__ */ React203.createElement(Divider13, null), /* @__PURE__ */ React203.createElement(Stack128, { gap: "xs" }, /* @__PURE__ */ React203.createElement(Text102, { size: "sm", fw: 500 }, "Permission Scope"), singleBlockMode && fixedBlock ? (
20545
+ ), /* @__PURE__ */ React205.createElement(Divider13, null), /* @__PURE__ */ React205.createElement(Stack129, { gap: "xs" }, /* @__PURE__ */ React205.createElement(Text103, { size: "sm", fw: 500 }, "Permission Scope"), singleBlockMode && fixedBlock ? (
20387
20546
  // Single block mode: show fixed block info
20388
- /* @__PURE__ */ React203.createElement(Paper22, { p: "sm", withBorder: true }, /* @__PURE__ */ React203.createElement(Group65, { gap: "xs" }, /* @__PURE__ */ React203.createElement(Badge32, { variant: "light", color: "blue" }, fixedBlock.type), /* @__PURE__ */ React203.createElement(Text102, { size: "sm" }, fixedBlock.name || `Block ${fixedBlock.id.slice(-8)}`)), /* @__PURE__ */ React203.createElement(Text102, { size: "xs", c: "dimmed", mt: "xs" }, "Permission will be granted to execute this specific block."))
20547
+ /* @__PURE__ */ React205.createElement(Paper22, { p: "sm", withBorder: true }, /* @__PURE__ */ React205.createElement(Group66, { gap: "xs" }, /* @__PURE__ */ React205.createElement(Badge32, { variant: "light", color: "blue" }, fixedBlock.type), /* @__PURE__ */ React205.createElement(Text103, { size: "sm" }, fixedBlock.name || `Block ${fixedBlock.id.slice(-8)}`)), /* @__PURE__ */ React205.createElement(Text103, { size: "xs", c: "dimmed", mt: "xs" }, "Permission will be granted to execute this specific block."))
20389
20548
  ) : (
20390
20549
  // Multi-block mode: show scope selection
20391
- /* @__PURE__ */ React203.createElement(React203.Fragment, null, /* @__PURE__ */ React203.createElement(Radio6.Group, { value: scopeType, onChange: (v) => setScopeType(v) }, /* @__PURE__ */ React203.createElement(Stack128, { gap: "xs" }, /* @__PURE__ */ React203.createElement(Radio6, { value: "full", label: "Full flow access (can execute any block)" }), /* @__PURE__ */ React203.createElement(Radio6, { value: "blocks", label: "Specific blocks only" }))), scopeType === "blocks" && /* @__PURE__ */ React203.createElement(Paper22, { p: "sm", withBorder: true, style: { maxHeight: 150, overflow: "auto" } }, /* @__PURE__ */ React203.createElement(Stack128, { gap: "xs" }, blocks.map((block) => /* @__PURE__ */ React203.createElement(
20550
+ /* @__PURE__ */ React205.createElement(React205.Fragment, null, /* @__PURE__ */ React205.createElement(Radio6.Group, { value: scopeType, onChange: (v) => setScopeType(v) }, /* @__PURE__ */ React205.createElement(Stack129, { gap: "xs" }, /* @__PURE__ */ React205.createElement(Radio6, { value: "full", label: "Full flow access (can execute any block)" }), /* @__PURE__ */ React205.createElement(Radio6, { value: "blocks", label: "Specific blocks only" }))), scopeType === "blocks" && /* @__PURE__ */ React205.createElement(Paper22, { p: "sm", withBorder: true, style: { maxHeight: 150, overflow: "auto" } }, /* @__PURE__ */ React205.createElement(Stack129, { gap: "xs" }, blocks.map((block) => /* @__PURE__ */ React205.createElement(
20392
20551
  Checkbox12,
20393
20552
  {
20394
20553
  key: block.id,
@@ -20403,14 +20562,14 @@ var GrantPermissionModal = ({
20403
20562
  }
20404
20563
  }
20405
20564
  )))))
20406
- )), /* @__PURE__ */ React203.createElement(Divider13, null), /* @__PURE__ */ React203.createElement(Stack128, { gap: "xs" }, /* @__PURE__ */ React203.createElement(
20565
+ )), /* @__PURE__ */ React205.createElement(Divider13, null), /* @__PURE__ */ React205.createElement(Stack129, { gap: "xs" }, /* @__PURE__ */ React205.createElement(
20407
20566
  Checkbox12,
20408
20567
  {
20409
20568
  label: "Set expiration",
20410
20569
  checked: expirationEnabled,
20411
20570
  onChange: (e) => setExpirationEnabled(e.currentTarget.checked)
20412
20571
  }
20413
- ), expirationEnabled && /* @__PURE__ */ React203.createElement(
20572
+ ), expirationEnabled && /* @__PURE__ */ React205.createElement(
20414
20573
  NumberInput3,
20415
20574
  {
20416
20575
  label: "Expires in (days)",
@@ -20420,7 +20579,7 @@ var GrantPermissionModal = ({
20420
20579
  min: 1,
20421
20580
  max: 365
20422
20581
  }
20423
- )), /* @__PURE__ */ React203.createElement(
20582
+ )), /* @__PURE__ */ React205.createElement(
20424
20583
  Checkbox12,
20425
20584
  {
20426
20585
  label: "Recipient can grant permissions to others",
@@ -20428,8 +20587,8 @@ var GrantPermissionModal = ({
20428
20587
  checked: canDelegate,
20429
20588
  onChange: (e) => setCanDelegate(e.currentTarget.checked)
20430
20589
  }
20431
- ), /* @__PURE__ */ React203.createElement(Divider13, null), /* @__PURE__ */ React203.createElement(
20432
- TextInput7,
20590
+ ), /* @__PURE__ */ React205.createElement(Divider13, null), /* @__PURE__ */ React205.createElement(
20591
+ TextInput8,
20433
20592
  {
20434
20593
  label: "Enter your PIN to sign this delegation",
20435
20594
  type: "password",
@@ -20437,7 +20596,7 @@ var GrantPermissionModal = ({
20437
20596
  value: pin,
20438
20597
  onChange: (e) => setPin(e.currentTarget.value)
20439
20598
  }
20440
- ), error && /* @__PURE__ */ React203.createElement(Alert28, { color: "red" }, error), /* @__PURE__ */ React203.createElement(Group65, { justify: "flex-end" }, /* @__PURE__ */ React203.createElement(Button38, { variant: "subtle", onClick: handleClose, disabled: loading }, "Cancel"), /* @__PURE__ */ React203.createElement(Button38, { onClick: handleGrant, loading }, "Grant Permission")))
20599
+ ), error && /* @__PURE__ */ React205.createElement(Alert28, { color: "red" }, error), /* @__PURE__ */ React205.createElement(Group66, { justify: "flex-end" }, /* @__PURE__ */ React205.createElement(Button38, { variant: "subtle", onClick: handleClose, disabled: loading }, "Cancel"), /* @__PURE__ */ React205.createElement(Button38, { onClick: handleGrant, loading }, "Grant Permission")))
20441
20600
  );
20442
20601
  };
20443
20602
 
@@ -20532,6 +20691,7 @@ export {
20532
20691
  getExtraSlashMenuItems,
20533
20692
  useCreateIxoEditor,
20534
20693
  useCreateCollaborativeIxoEditor,
20694
+ BaseIconPicker,
20535
20695
  CoverImage,
20536
20696
  PageHeader,
20537
20697
  ExternalDropZone,
@@ -20543,4 +20703,4 @@ export {
20543
20703
  ixoGraphQLClient,
20544
20704
  getEntity
20545
20705
  };
20546
- //# sourceMappingURL=chunk-KWCTPDGD.mjs.map
20706
+ //# sourceMappingURL=chunk-7ROKCOSH.mjs.map