@ixo/editor 1.24.0 → 1.25.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.
@@ -1356,6 +1356,57 @@ var CheckboxBlockSpec = createReactBlockSpec(
1356
1356
  }
1357
1357
  );
1358
1358
 
1359
+ // src/mantine/context/types.ts
1360
+ var StakeType = {
1361
+ Delegate: "delegate",
1362
+ Undelegate: "undelegate",
1363
+ Redelegate: "redelegate",
1364
+ WithdrawDelegatorReward: "withdraw_delegator_reward"
1365
+ };
1366
+ var AuthzExecActionTypes = {
1367
+ Delegate: "/cosmos.staking.v1beta1.MsgDelegate",
1368
+ Undelegate: "/cosmos.staking.v1beta1.MsgUndelegate",
1369
+ Redelegate: "/cosmos.staking.v1beta1.MsgBeginRedelegate",
1370
+ ClaimRewards: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",
1371
+ Custom: "custom"
1372
+ };
1373
+ var ValidatorActionType = /* @__PURE__ */ ((ValidatorActionType2) => {
1374
+ ValidatorActionType2["CreateValidator"] = "/cosmos.staking.v1beta1.MsgCreateValidator";
1375
+ ValidatorActionType2["EditValidator"] = "/cosmos.staking.v1beta1.MsgEditValidator";
1376
+ ValidatorActionType2["UnjailValidator"] = "/cosmos.slashing.v1beta1.MsgUnjail";
1377
+ ValidatorActionType2["WithdrawValidatorCommission"] = "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission";
1378
+ return ValidatorActionType2;
1379
+ })(ValidatorActionType || {});
1380
+
1381
+ // src/mantine/context/hooks/useSharedProposal.ts
1382
+ import { useState as useState4, useEffect as useEffect5, useCallback as useCallback8 } from "react";
1383
+ var useSharedProposal = ({ proposalId, contractAddress, autoFetch = true }) => {
1384
+ const { sharedProposals, fetchSharedProposal, invalidateProposal, subscribeToProposal } = useBlocknoteContext();
1385
+ const [localProposal, setLocalProposal] = useState4(null);
1386
+ const cacheKey = `${contractAddress}:${proposalId}`;
1387
+ useEffect5(() => {
1388
+ if (!proposalId || !contractAddress || !autoFetch) return;
1389
+ fetchSharedProposal(proposalId, contractAddress).then(setLocalProposal).catch((error) => {
1390
+ console.error("Failed to fetch proposal:", error);
1391
+ });
1392
+ }, [proposalId, contractAddress, fetchSharedProposal, autoFetch]);
1393
+ useEffect5(() => {
1394
+ const proposal = subscribeToProposal(cacheKey);
1395
+ if (proposal) {
1396
+ setLocalProposal(proposal);
1397
+ }
1398
+ }, [subscribeToProposal, cacheKey]);
1399
+ const refetch = useCallback8(() => fetchSharedProposal(proposalId, contractAddress, true), [fetchSharedProposal, proposalId, contractAddress]);
1400
+ const invalidate = useCallback8(() => invalidateProposal(proposalId), [invalidateProposal, proposalId]);
1401
+ return {
1402
+ proposal: localProposal,
1403
+ loading: sharedProposals[cacheKey]?.loading ?? false,
1404
+ error: sharedProposals[cacheKey]?.error,
1405
+ refetch,
1406
+ invalidate
1407
+ };
1408
+ };
1409
+
1359
1410
  // src/mantine/blocks/list/ListBlockSpec.tsx
1360
1411
  import React43 from "react";
1361
1412
  import { createReactBlockSpec as createReactBlockSpec2 } from "@blocknote/react";
@@ -1367,11 +1418,11 @@ import React42 from "react";
1367
1418
  import React16, { useMemo as useMemo6 } from "react";
1368
1419
 
1369
1420
  // src/mantine/blocks/list/template/TemplateConfig.tsx
1370
- import React15, { useCallback as useCallback8 } from "react";
1421
+ import React15, { useCallback as useCallback9 } from "react";
1371
1422
  import { Paper as Paper2, CloseButton as CloseButton2, Title as Title2, Flex } from "@mantine/core";
1372
1423
 
1373
1424
  // src/mantine/blocks/list/template/GeneralTab.tsx
1374
- import React14, { useState as useState4 } from "react";
1425
+ import React14, { useState as useState5 } from "react";
1375
1426
  import { Stack as Stack8, Card as Card4, Group as Group4, Text as Text6, Box, TextInput as TextInput4, Button as Button4, Switch as Switch3, Accordion } from "@mantine/core";
1376
1427
 
1377
1428
  // src/mantine/blocks/list/linked_resources/config.ts
@@ -1459,7 +1510,7 @@ var assetsSelectionPanelConfig = {
1459
1510
  image: (item) => item.image,
1460
1511
  title: (item) => item.name || "Unnamed Asset",
1461
1512
  description: (item) => item.description || "No description",
1462
- prompts: () => [{ text: `How many assets are available?` }, { text: `What are carbon credits` }],
1513
+ prompts: () => [{ text: `How many assets are available?` }, { text: `What are carbon credits?` }],
1463
1514
  actionSections: (item) => item.actionSections,
1464
1515
  detailsHandlerKey: "getAssetDetails"
1465
1516
  };
@@ -1491,7 +1542,7 @@ var transactionsSortFields = [
1491
1542
  var transactionsSelectionPanelConfig = {
1492
1543
  title: (item) => item.typeUrl || "Transaction",
1493
1544
  description: (item) => item.description || "No description",
1494
- prompts: (item) => [{ text: `Hash: ${item.transactionHash}` }, { text: `Type: ${item.typeUrl}` }],
1545
+ prompts: (item) => [{ text: `What is the purpose of ${item.transactionHash}?` }, { text: `Explain the transaction of type ${item.typeUrl}.` }],
1495
1546
  actionSections: (item) => item.actionSections,
1496
1547
  detailsHandlerKey: "getTransactionDetails"
1497
1548
  };
@@ -1529,7 +1580,7 @@ var collectionsSelectionPanelConfig = {
1529
1580
  image: (item) => item.image,
1530
1581
  title: (item) => item.name || "Unnamed Collection",
1531
1582
  description: (item) => item.description || "No description",
1532
- prompts: (item) => [{ text: `DID: ${item.did}` }, { text: `Type: ${item.type}` }],
1583
+ prompts: () => [{ text: `What is the purpose of this collection?` }, { text: `How is this collection different from others in the registry?` }],
1533
1584
  actionSections: (item) => item.actionSections,
1534
1585
  detailsHandlerKey: "getCollectionDetails"
1535
1586
  };
@@ -1568,10 +1619,13 @@ var investmentsSelectionPanelConfig = {
1568
1619
  title: (item) => item.name || "Investment Opportunity",
1569
1620
  image: (item) => item.image,
1570
1621
  description: (item) => item.description || "No description",
1571
- prompts: (item) => [
1572
- { text: `Price: ${item.price} ${item.currency}` },
1573
- { text: `Subscribed: ${item.isSubscribed ? "Yes" : "No"}` },
1574
- { text: `Open: ${item.isOpen ? "Yes" : "No"}` }
1622
+ prompts: () => [
1623
+ { text: `What is the purpose of this investment opportunity?` },
1624
+ { text: `How is this investment opportunity different from others in the registry?` },
1625
+ { text: `What is the current amount of this investment opportunity?` },
1626
+ { text: `What is the max amount of this investment opportunity?` },
1627
+ { text: `What is the status of this investment opportunity?` },
1628
+ { text: `What is the name of this investment opportunity?` }
1575
1629
  ],
1576
1630
  actionSections: (item) => item.actionSections,
1577
1631
  detailsHandlerKey: "getInvestmentDetails"
@@ -1611,7 +1665,11 @@ var oraclesSelectionPanelConfig = {
1611
1665
  title: (item) => item.name || "Oracle",
1612
1666
  image: (item) => item.image,
1613
1667
  description: (item) => item.description || "No description",
1614
- prompts: (item) => [{ text: `Flows Amount: ${item.flowsAmount}` }, { text: `Active: ${item.isActive ? "Yes" : "No"}` }, { text: `Invited: ${item.isInvited ? "Yes" : "No"}` }],
1668
+ prompts: () => [
1669
+ { text: `What tasks can this oracle assist with?` },
1670
+ { text: `How is this oracle different from others in the registry?` },
1671
+ { text: `What kinds of data or knowledge does this oracle specialize in?` }
1672
+ ],
1615
1673
  actionSections: (item) => item.actionSections,
1616
1674
  detailsHandlerKey: "getOracleDetails"
1617
1675
  };
@@ -1648,7 +1706,7 @@ var podsSelectionPanelConfig = {
1648
1706
  image: (item) => item.image,
1649
1707
  title: (item) => item.name || "POD",
1650
1708
  description: (item) => item.description || "No description",
1651
- prompts: (item) => [{ text: `Start Date: ${item.startDate}` }, { text: `End Date: ${item.endDate}` }, { text: `Member: ${item.isMember ? "Yes" : "No"}` }],
1709
+ prompts: () => [{ text: `What are the pods?` }, { text: `How to join a pod?` }],
1652
1710
  actionSections: (item) => item.actionSections,
1653
1711
  detailsHandlerKey: "getPODDetails"
1654
1712
  };
@@ -1682,7 +1740,7 @@ var proposalsSelectionPanelConfig = {
1682
1740
  image: (item) => item.image,
1683
1741
  title: (item) => item.name || "Proposal",
1684
1742
  description: (item) => item.description || "No description",
1685
- prompts: (item) => [{ text: `DID: ${item.did}` }, { text: `Status: ${item.status}` }],
1743
+ prompts: () => [{ text: `What is the purpose of this proposal?` }, { text: `How is this proposal different from others in the registry?` }],
1686
1744
  actionSections: (item) => item.actionSections,
1687
1745
  detailsHandlerKey: "getProposalDetails"
1688
1746
  };
@@ -1718,7 +1776,7 @@ var requestsSelectionPanelConfig = {
1718
1776
  image: (item) => item.image,
1719
1777
  title: (item) => item.name || "Request",
1720
1778
  description: (item) => item.description || "No description",
1721
- prompts: (item) => [{ text: `Total Applications: ${item.totalApplications}` }, { text: `Member: ${item.isMember ? "Yes" : "No"}` }, { text: `DID: ${item.did}` }],
1779
+ prompts: () => [{ text: `What is the purpose of this request?` }, { text: `How is this request different from others in the registry?` }],
1722
1780
  actionSections: (item) => item.actionSections,
1723
1781
  detailsHandlerKey: "getRequestDetails"
1724
1782
  };
@@ -1763,7 +1821,7 @@ var groupMembersSelectionPanelConfig = {
1763
1821
  image: (item) => item.image,
1764
1822
  title: (item) => item.username || "Unknown Member",
1765
1823
  description: (item) => item.description || "No description",
1766
- prompts: (item) => [{ text: `Address: ${item.address}` }, { text: `DID: ${item.did}` }],
1824
+ prompts: () => [{ text: `What are the dao dao groups?` }, { text: `How to join a dao group?` }],
1767
1825
  actionSections: (item) => item.actionSections,
1768
1826
  detailsHandlerKey: "getMemberDetails"
1769
1827
  };
@@ -1798,10 +1856,10 @@ var validatorsHandlerKey = "getValidators";
1798
1856
  var validatorsSelectionPanelConfig = {
1799
1857
  title: (item) => item.name || "Unknown Validator",
1800
1858
  description: (item) => item.description || "No description",
1801
- prompts: (item) => [
1802
- { text: `Status: ${item.isActive ? "Active" : "Inactive"}` },
1803
- { text: `Staked: ${item.isStaked ? "Yes" : "No"}` },
1804
- { text: `Bonding: ${item.isBonding ? "Yes" : "No"}` }
1859
+ prompts: () => [
1860
+ { text: `What is the status of this validator?` },
1861
+ { text: `What is the staked amount of this validator?` },
1862
+ { text: `What is the bonding amount of this validator?` }
1805
1863
  ],
1806
1864
  actionSections: (item) => item.actionSections,
1807
1865
  detailsHandlerKey: "getValidatorDetails"
@@ -1847,7 +1905,7 @@ var daoMembersSelectionPanelConfig = {
1847
1905
  image: (item) => item.image,
1848
1906
  title: (item) => item.username || "Unknown Member",
1849
1907
  description: (item) => item.description || "No description",
1850
- prompts: (item) => [{ text: `Address: ${item.address}` }, { text: `DID: ${item.did}` }],
1908
+ prompts: (item) => [{ text: `What is the DAO member ${item.username} doing?` }, { text: `What is the role of dao members?` }],
1851
1909
  actionSections: (item) => item.actionSections,
1852
1910
  detailsHandlerKey: "getDaoMemberDetails"
1853
1911
  };
@@ -1875,7 +1933,7 @@ var projectsSelectionPanelConfig = {
1875
1933
  image: (item) => item.image,
1876
1934
  title: (item) => item.name || "Project",
1877
1935
  description: (item) => item.description || "No description",
1878
- prompts: (item) => [{ text: `DID: ${item.did}` }, { text: `Type: ${item.type}` }],
1936
+ prompts: () => [{ text: `What are the projects?` }, { text: `How to join a project?` }],
1879
1937
  actionSections: (item) => item.actionSections,
1880
1938
  detailsHandlerKey: "getProjectDetails"
1881
1939
  };
@@ -1903,7 +1961,7 @@ var daosSelectionPanelConfig = {
1903
1961
  title: (item) => item.name || "Dao",
1904
1962
  image: (item) => item.image,
1905
1963
  description: (item) => item.description || "No description",
1906
- prompts: (item) => [{ text: `DID: ${item.did}` }, { text: `Type: ${item.type}` }],
1964
+ prompts: () => [{ text: `What is the purpose of this DAO?` }, { text: `How is this DAO different from others in the registry?` }],
1907
1965
  actionSections: (item) => item.actionSections,
1908
1966
  detailsHandlerKey: "getDaoDetails"
1909
1967
  };
@@ -1938,7 +1996,7 @@ var balancesSelectionPanelConfig = {
1938
1996
  title: (item) => item.tokenName || "Unnamed Token",
1939
1997
  image: (item) => item.tokenImage,
1940
1998
  description: (item) => item.description || "No description",
1941
- prompts: (item) => [{ text: `Amount: ${item.amount}` }, { text: `USD Amount: ${item.usdAmount}` }],
1999
+ prompts: () => [{ text: `What are the balances of this address?` }, { text: `How to get the balances of an address?` }],
1942
2000
  actionSections: (item) => item.actionSections,
1943
2001
  detailsHandlerKey: "getBalanceDetails"
1944
2002
  };
@@ -2084,11 +2142,11 @@ var listTypesWithAddresses = ["transactions"];
2084
2142
 
2085
2143
  // src/mantine/blocks/list/template/GeneralTab.tsx
2086
2144
  var GeneralTab2 = ({ initialConfig, onSave }) => {
2087
- const [selectedType, setSelectedType] = useState4(initialConfig?.type || null);
2088
- const [config, setConfig] = useState4(initialConfig?.config || {});
2089
- const [sortConfig, setSortConfig] = useState4(initialConfig?.sortOptions || {});
2090
- const [filterConfig, setFilterConfig] = useState4(initialConfig?.filterOptions || {});
2091
- const [accordionValue, setAccordionValue] = useState4(initialConfig ? "configure" : "type");
2145
+ const [selectedType, setSelectedType] = useState5(initialConfig?.type || null);
2146
+ const [config, setConfig] = useState5(initialConfig?.config || {});
2147
+ const [sortConfig, setSortConfig] = useState5(initialConfig?.sortOptions || {});
2148
+ const [filterConfig, setFilterConfig] = useState5(initialConfig?.filterOptions || {});
2149
+ const [accordionValue, setAccordionValue] = useState5(initialConfig ? "configure" : "type");
2092
2150
  const handlers = useBlocknoteHandlers();
2093
2151
  const listTypes = getAllListTypes();
2094
2152
  const handleTypeSelect = (type) => {
@@ -2269,7 +2327,7 @@ var GeneralTab2 = ({ initialConfig, onSave }) => {
2269
2327
  // src/mantine/blocks/list/template/TemplateConfig.tsx
2270
2328
  var TemplateConfig2 = ({ editor, block }) => {
2271
2329
  const { closePanel } = usePanelStore();
2272
- const handleConfigSave = useCallback8(
2330
+ const handleConfigSave = useCallback9(
2273
2331
  (config) => {
2274
2332
  editor.updateBlock(block, {
2275
2333
  props: {
@@ -2360,7 +2418,7 @@ var ListTemplateView = ({ editor, block }) => {
2360
2418
  };
2361
2419
 
2362
2420
  // src/mantine/blocks/list/flow/ListFlowView.tsx
2363
- import React41, { useState as useState6, useEffect as useEffect6, useMemo as useMemo9, useCallback as useCallback10 } from "react";
2421
+ import React41, { useState as useState7, useEffect as useEffect7, useMemo as useMemo9, useCallback as useCallback11 } from "react";
2364
2422
  import { Group as Group8, Stack as Stack27, Text as Text27, ActionIcon as ActionIcon5, Alert as Alert4, Loader as Loader2, Center as Center2, Flex as Flex19, Button as Button5, Title as Title4, Collapse } from "@mantine/core";
2365
2423
 
2366
2424
  // src/mantine/blocks/list/linked_resources/LinkedResourcesList.tsx
@@ -2402,8 +2460,18 @@ function getMediaTypeIcon(mediaType, props = {}) {
2402
2460
  // src/mantine/blocks/list/ListItemContainer.tsx
2403
2461
  import { Flex as Flex2 } from "@mantine/core";
2404
2462
  import React18 from "react";
2405
- function ListItemContainer({ children }) {
2406
- return /* @__PURE__ */ React18.createElement(Flex2, { styles: { root: { borderRadius: 16, border: `1px solid rgba(255, 255, 255, 0.06)` } }, p: 20, bg: "rgba(255, 255, 255, 0.02)", justify: "space-between" }, children);
2463
+ function ListItemContainer({ children, onClick, isChecked }) {
2464
+ return /* @__PURE__ */ React18.createElement(
2465
+ Flex2,
2466
+ {
2467
+ onClick,
2468
+ styles: { root: { borderRadius: 16, border: isChecked ? `1px solid rgb(0, 255, 157)` : `1px solid rgba(255, 255, 255, 0.06)` } },
2469
+ p: 20,
2470
+ bg: "rgba(255, 255, 255, 0.02)",
2471
+ justify: "space-between"
2472
+ },
2473
+ children
2474
+ );
2407
2475
  }
2408
2476
 
2409
2477
  // src/mantine/blocks/list/ListItemCheckbox.tsx
@@ -2429,13 +2497,15 @@ function ListItemCheckbox({ checked, onCheck, ariaLabel }) {
2429
2497
  }
2430
2498
 
2431
2499
  // src/mantine/blocks/list/linked_resources/LinkedResourcesList.tsx
2432
- var LinkedResourcesList = ({ items, mods, isItemChecked, onItemCheck, config: _config }) => {
2500
+ var LinkedResourcesList = ({ items, isMultiSelect, isItemChecked, onItemCheck, config: _config }) => {
2433
2501
  if (!items || items.length === 0) {
2434
2502
  return /* @__PURE__ */ React20.createElement(Text8, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No linked resources found");
2435
2503
  }
2436
2504
  const rows = items.map((item, index) => {
2505
+ console.log(item);
2437
2506
  const title = item.description || item.id || `Resource ${index + 1}`;
2438
- return /* @__PURE__ */ React20.createElement(ListItemContainer, { key: item.id || index }, /* @__PURE__ */ React20.createElement(Flex3, { align: "center", gap: "sm" }, /* @__PURE__ */ React20.createElement(
2507
+ const isChecked = isItemChecked?.(item.id);
2508
+ return /* @__PURE__ */ React20.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.id, !isChecked), key: item.id || index, isChecked: !!isChecked }, /* @__PURE__ */ React20.createElement(Flex3, { align: "center", gap: "sm" }, /* @__PURE__ */ React20.createElement(
2439
2509
  Box2,
2440
2510
  {
2441
2511
  style: {
@@ -2450,7 +2520,7 @@ var LinkedResourcesList = ({ items, mods, isItemChecked, onItemCheck, config: _c
2450
2520
  }
2451
2521
  },
2452
2522
  getMediaTypeIcon(item.mediaType, { size: 16 })
2453
- ), /* @__PURE__ */ React20.createElement(Stack10, { gap: 0 }, /* @__PURE__ */ React20.createElement(Text8, { size: "sm" }, title), item.type && /* @__PURE__ */ React20.createElement(Text8, { size: "xs", c: "dimmed" }, item.type))), /* @__PURE__ */ React20.createElement(Flex3, { align: "center", gap: "md" }, /* @__PURE__ */ React20.createElement(Stack10, { ta: "right", gap: 0 }, /* @__PURE__ */ React20.createElement(Text8, { size: "sm" }, item.encrypted === "true" ? "Private" : "Public"), /* @__PURE__ */ React20.createElement(Text8, { size: "xs", c: "dimmed" }, item.encrypted === "true" ? "Ask for access" : "Accessible")), mods && /* @__PURE__ */ React20.createElement(
2523
+ ), /* @__PURE__ */ React20.createElement(Stack10, { gap: 0 }, /* @__PURE__ */ React20.createElement(Text8, { size: "sm" }, title), item.type && /* @__PURE__ */ React20.createElement(Text8, { size: "xs", c: "dimmed" }, item.type))), /* @__PURE__ */ React20.createElement(Flex3, { align: "center", gap: "md" }, /* @__PURE__ */ React20.createElement(Stack10, { ta: "right", gap: 0 }, /* @__PURE__ */ React20.createElement(Text8, { size: "sm" }, item.encrypted === "true" ? "Private" : "Public"), /* @__PURE__ */ React20.createElement(Text8, { size: "xs", c: "dimmed" }, item.encrypted === "true" ? "Ask for access" : "Accessible")), isMultiSelect && /* @__PURE__ */ React20.createElement(
2454
2524
  ListItemCheckbox,
2455
2525
  {
2456
2526
  ariaLabel: `Select resource ${item.id}`,
@@ -2478,11 +2548,14 @@ function shortStr(str, threshold = 30, saveSymbolsAtTheEnd = 10, insert = "...")
2478
2548
  }
2479
2549
 
2480
2550
  // src/mantine/blocks/list/assets/AssetsList.tsx
2481
- var AssetsList = ({ items, mods, isItemChecked, onItemCheck }) => {
2551
+ var AssetsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2482
2552
  if (!items || items.length === 0) {
2483
2553
  return /* @__PURE__ */ React21.createElement(Text9, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No assets found");
2484
2554
  }
2485
- const rows = items.map((asset) => /* @__PURE__ */ React21.createElement(ListItemContainer, { key: asset.did }, /* @__PURE__ */ React21.createElement(Flex4, { align: "center", gap: "sm" }, /* @__PURE__ */ React21.createElement(Image, { radius: 16, w: 32, h: 32, src: asset.icon }), /* @__PURE__ */ React21.createElement(Stack11, { gap: 0 }, /* @__PURE__ */ React21.createElement(Text9, { size: "sm" }, asset.name || "-", " ", asset.alsoKnownAs || "-"), asset.totalCarbon !== void 0 && /* @__PURE__ */ React21.createElement(Text9, { size: "sm", c: "dimmed" }, formatNumber(asset.totalCarbon), " CARBON"))), /* @__PURE__ */ React21.createElement(Flex4, { align: "center", gap: "md" }, /* @__PURE__ */ React21.createElement(Stack11, { ta: "right", gap: 0 }, /* @__PURE__ */ React21.createElement(Text9, { size: "sm" }, asset.currency || "", formatNumber(asset.price)), /* @__PURE__ */ React21.createElement(Text9, { size: "sm", c: "dimmed" }, asset.available ? "Available" : "Unavailable")), mods && /* @__PURE__ */ React21.createElement(ListItemCheckbox, { ariaLabel: `Select asset ${asset.did}`, checked: isItemChecked?.(asset.did), onCheck: (checked) => onItemCheck?.(asset.did, checked) }))));
2555
+ const rows = items.map((asset) => {
2556
+ const isChecked = isItemChecked?.(asset.did);
2557
+ return /* @__PURE__ */ React21.createElement(ListItemContainer, { onClick: () => onItemCheck?.(asset.did, !isChecked), key: asset.did, isChecked: !!isChecked }, /* @__PURE__ */ React21.createElement(Flex4, { align: "center", gap: "sm" }, /* @__PURE__ */ React21.createElement(Image, { radius: 16, w: 32, h: 32, src: asset.icon }), /* @__PURE__ */ React21.createElement(Stack11, { gap: 0 }, /* @__PURE__ */ React21.createElement(Text9, { size: "sm" }, asset.name || "-", " ", asset.alsoKnownAs || "-"), asset.totalCarbon !== void 0 && /* @__PURE__ */ React21.createElement(Text9, { size: "sm", c: "dimmed" }, formatNumber(asset.totalCarbon), " CARBON"))), /* @__PURE__ */ React21.createElement(Flex4, { align: "center", gap: "md" }, /* @__PURE__ */ React21.createElement(Stack11, { ta: "right", gap: 0 }, /* @__PURE__ */ React21.createElement(Text9, { size: "sm" }, asset.currency || "", formatNumber(asset.price)), /* @__PURE__ */ React21.createElement(Text9, { size: "sm", c: "dimmed" }, asset.available ? "Available" : "Unavailable")), isMultiSelect && /* @__PURE__ */ React21.createElement(ListItemCheckbox, { ariaLabel: `Select asset ${asset.did}`, checked: isItemChecked?.(asset.did), onCheck: (checked) => onItemCheck?.(asset.did, checked) })));
2558
+ });
2486
2559
  return /* @__PURE__ */ React21.createElement(Box3, { flex: 1 }, /* @__PURE__ */ React21.createElement(Stack11, null, rows));
2487
2560
  };
2488
2561
 
@@ -2498,39 +2571,38 @@ var formatTime = (timeStr) => {
2498
2571
  }
2499
2572
  };
2500
2573
  var truncateHash = (hash, length = 8) => {
2501
- if (hash.length <= length * 2) return hash;
2502
- return `${hash.slice(0, length)}...${hash.slice(-length)}`;
2574
+ if (hash && hash.length <= length * 2) return hash;
2575
+ return `${hash?.slice(0, length)}...${hash?.slice(-length)}`;
2503
2576
  };
2504
- var TransactionsList = ({ items, mods, isItemChecked, onItemCheck, config: _config }) => {
2577
+ var TransactionsList = ({ items, isMultiSelect, isItemChecked, onItemCheck, config: _config }) => {
2505
2578
  if (!items || items.length === 0) {
2506
2579
  return /* @__PURE__ */ React22.createElement(Text10, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No transactions found");
2507
2580
  }
2508
- const rows = items.map((transaction, index) => /* @__PURE__ */ React22.createElement(ListItemContainer, { key: transaction.transactionHash || index }, /* @__PURE__ */ React22.createElement(Flex5, { align: "center", gap: "sm" }, /* @__PURE__ */ React22.createElement(Stack12, { gap: 2 }, /* @__PURE__ */ React22.createElement(Tooltip2, { label: transaction.transactionHash, position: "top" }, /* @__PURE__ */ React22.createElement(Text10, { size: "sm", style: { fontFamily: "monospace" } }, truncateHash(transaction.transactionHash))), /* @__PURE__ */ React22.createElement(Text10, { size: "sm", c: "dimmed" }, transaction.memo || "-"))), /* @__PURE__ */ React22.createElement(Flex5, { align: "center", gap: "md" }, /* @__PURE__ */ React22.createElement(Stack12, { ta: "right", gap: 2 }, /* @__PURE__ */ React22.createElement(Badge3, { size: "sm", variant: "light", color: "blue", style: { fontFamily: "monospace", fontSize: "10px" } }, transaction.typeUrl), /* @__PURE__ */ React22.createElement(Text10, { size: "xs", c: "dimmed" }, formatTime(transaction.time))), mods && /* @__PURE__ */ React22.createElement(
2509
- ListItemCheckbox,
2510
- {
2511
- ariaLabel: `Select transaction ${transaction.transactionHash}`,
2512
- checked: isItemChecked?.(transaction.transactionHash),
2513
- onCheck: (checked) => onItemCheck?.(transaction.transactionHash, checked)
2514
- }
2515
- ))));
2581
+ const rows = items.map((transaction) => {
2582
+ const isChecked = isItemChecked?.(transaction.transactionHash);
2583
+ return /* @__PURE__ */ React22.createElement(ListItemContainer, { onClick: () => onItemCheck?.(transaction.transactionHash, !isChecked), key: transaction.transactionHash, isChecked: !!isChecked }, /* @__PURE__ */ React22.createElement(Flex5, { align: "center", gap: "sm" }, /* @__PURE__ */ React22.createElement(Stack12, { gap: 2 }, /* @__PURE__ */ React22.createElement(Tooltip2, { label: transaction.transactionHash, position: "top" }, /* @__PURE__ */ React22.createElement(Text10, { size: "sm", style: { fontFamily: "monospace" } }, truncateHash(transaction.transactionHash))), /* @__PURE__ */ React22.createElement(Text10, { size: "sm", c: "dimmed" }, transaction.memo || "-"))), /* @__PURE__ */ React22.createElement(Flex5, { align: "center", gap: "md" }, /* @__PURE__ */ React22.createElement(Stack12, { ta: "right", gap: 2 }, /* @__PURE__ */ React22.createElement(Badge3, { size: "sm", variant: "light", color: "blue", style: { fontFamily: "monospace", fontSize: "10px" } }, transaction.typeUrl), /* @__PURE__ */ React22.createElement(Text10, { size: "xs", c: "dimmed" }, formatTime(transaction.time))), isMultiSelect && /* @__PURE__ */ React22.createElement(
2584
+ ListItemCheckbox,
2585
+ {
2586
+ ariaLabel: `Select transaction ${transaction.transactionHash}`,
2587
+ checked: isItemChecked?.(transaction.transactionHash),
2588
+ onCheck: (checked) => onItemCheck?.(transaction.transactionHash, checked)
2589
+ }
2590
+ )));
2591
+ });
2516
2592
  return /* @__PURE__ */ React22.createElement(Box4, { flex: 1 }, /* @__PURE__ */ React22.createElement(Stack12, null, rows));
2517
2593
  };
2518
2594
 
2519
2595
  // src/mantine/blocks/list/collections/CollectionsList.tsx
2520
2596
  import React23 from "react";
2521
2597
  import { Text as Text11, Box as Box5, Image as Image2, Stack as Stack13, Flex as Flex6 } from "@mantine/core";
2522
- var CollectionsList = ({ items, mods, isItemChecked, onItemCheck }) => {
2598
+ var CollectionsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2523
2599
  if (!items || items.length === 0) {
2524
2600
  return /* @__PURE__ */ React23.createElement(Text11, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No collections found");
2525
2601
  }
2526
- const rows = items.map((collection) => /* @__PURE__ */ React23.createElement(ListItemContainer, { key: collection.did }, /* @__PURE__ */ React23.createElement(Flex6, { align: "center", gap: "sm" }, /* @__PURE__ */ React23.createElement(Image2, { radius: 16, w: 32, h: 32, src: collection.icon }), /* @__PURE__ */ React23.createElement(Stack13, { gap: 0 }, /* @__PURE__ */ React23.createElement(Text11, { size: "sm" }, collection.name), /* @__PURE__ */ React23.createElement(Text11, { size: "sm", c: "dimmed" }, collection.brand))), /* @__PURE__ */ React23.createElement(Flex6, { align: "center", gap: "md" }, /* @__PURE__ */ React23.createElement(Stack13, { ta: "right", gap: 0 }, /* @__PURE__ */ React23.createElement(Text11, { size: "sm" }, collection.totalAssets, " Assets"), /* @__PURE__ */ React23.createElement(Text11, { size: "sm", c: "dimmed" }, collection.currency, collection.price)), mods && /* @__PURE__ */ React23.createElement(
2527
- ListItemCheckbox,
2528
- {
2529
- ariaLabel: `Select collection ${collection.did}`,
2530
- checked: isItemChecked?.(collection.did),
2531
- onCheck: (checked) => onItemCheck?.(collection.did, checked)
2532
- }
2533
- ))));
2602
+ const rows = items.map((item) => {
2603
+ const isChecked = isItemChecked?.(item.did);
2604
+ return /* @__PURE__ */ React23.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React23.createElement(Flex6, { align: "center", gap: "sm" }, /* @__PURE__ */ React23.createElement(Image2, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React23.createElement(Stack13, { gap: 0 }, /* @__PURE__ */ React23.createElement(Text11, { size: "sm" }, item.name), /* @__PURE__ */ React23.createElement(Text11, { size: "sm", c: "dimmed" }, item.brand))), /* @__PURE__ */ React23.createElement(Flex6, { align: "center", gap: "md" }, /* @__PURE__ */ React23.createElement(Stack13, { ta: "right", gap: 0 }, /* @__PURE__ */ React23.createElement(Text11, { size: "sm" }, item.totalAssets, " Assets"), /* @__PURE__ */ React23.createElement(Text11, { size: "sm", c: "dimmed" }, item.currency, item.price)), isMultiSelect && /* @__PURE__ */ React23.createElement(ListItemCheckbox, { ariaLabel: `Select collection ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
2605
+ });
2534
2606
  return /* @__PURE__ */ React23.createElement(Box5, { flex: 1 }, /* @__PURE__ */ React23.createElement(Stack13, null, rows));
2535
2607
  };
2536
2608
 
@@ -2565,84 +2637,98 @@ function renderNumber(value) {
2565
2637
  }
2566
2638
 
2567
2639
  // src/mantine/blocks/list/balances/BalancesList.tsx
2568
- var BalancesList = ({ items, mods, isItemChecked, onItemCheck }) => {
2640
+ var BalancesList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2569
2641
  if (!items || items.length === 0) {
2570
2642
  return /* @__PURE__ */ React24.createElement(Text12, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No balances found");
2571
2643
  }
2572
- const rows = items.map((balance) => /* @__PURE__ */ React24.createElement(ListItemContainer, { key: balance.denom }, /* @__PURE__ */ React24.createElement(Group6, { gap: 12 }, /* @__PURE__ */ React24.createElement(Avatar, { src: balance.tokenImage, size: 40, radius: "xl" }), /* @__PURE__ */ React24.createElement(Stack14, { gap: 4 }, /* @__PURE__ */ React24.createElement(Text12, { size: "sm", fw: 500 }, balance.tokenName), balance.chainCount > 1 && /* @__PURE__ */ React24.createElement(Group6, { gap: 4 }, /* @__PURE__ */ React24.createElement(Text12, { size: "xs", c: "dimmed" }, balance.chainCount, " chains"), /* @__PURE__ */ React24.createElement(Group6, { gap: -4 }, /* @__PURE__ */ React24.createElement(Avatar, { size: 16, radius: "xl", bg: "dimmed" }), /* @__PURE__ */ React24.createElement(Avatar, { size: 16, radius: "xl", bg: "dimmed", ml: -4 }), balance.chainCount > 2 && /* @__PURE__ */ React24.createElement(Avatar, { size: 16, radius: "xl", bg: "dimmed", ml: -4 }))))), /* @__PURE__ */ React24.createElement(Flex7, { align: "center", gap: "md" }, /* @__PURE__ */ React24.createElement(Stack14, { gap: 4, align: "flex-end" }, /* @__PURE__ */ React24.createElement(Text12, { size: "sm", fw: 500 }, renderNumber(balance.amount)), /* @__PURE__ */ React24.createElement(Text12, { size: "xs", c: "dimmed" }, "$", renderNumber(balance.usdAmount))), mods && /* @__PURE__ */ React24.createElement(ListItemCheckbox, { ariaLabel: `Select balance ${balance.denom}`, checked: isItemChecked?.(balance.denom), onCheck: (checked) => onItemCheck?.(balance.denom, checked) }))));
2644
+ const rows = items.map((item) => {
2645
+ const isChecked = isItemChecked?.(item.denom);
2646
+ return /* @__PURE__ */ React24.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.denom, !isChecked), key: item.denom, isChecked: !!isChecked }, /* @__PURE__ */ React24.createElement(Group6, { gap: 12 }, /* @__PURE__ */ React24.createElement(Avatar, { src: item.tokenImage, size: 40, radius: "xl" }), /* @__PURE__ */ React24.createElement(Stack14, { gap: 4 }, /* @__PURE__ */ React24.createElement(Text12, { size: "sm", fw: 500 }, item.tokenName), item.chainCount > 1 && /* @__PURE__ */ React24.createElement(Group6, { gap: 4 }, /* @__PURE__ */ React24.createElement(Text12, { size: "xs", c: "dimmed" }, item.chainCount, " chains"), /* @__PURE__ */ React24.createElement(Group6, { gap: -4 }, /* @__PURE__ */ React24.createElement(Avatar, { size: 16, radius: "xl", bg: "dimmed" }), /* @__PURE__ */ React24.createElement(Avatar, { size: 16, radius: "xl", bg: "dimmed", ml: -4 }), item.chainCount > 2 && /* @__PURE__ */ React24.createElement(Avatar, { size: 16, radius: "xl", bg: "dimmed", ml: -4 }))))), /* @__PURE__ */ React24.createElement(Flex7, { align: "center", gap: "md" }, /* @__PURE__ */ React24.createElement(Stack14, { gap: 4, align: "flex-end" }, /* @__PURE__ */ React24.createElement(Text12, { size: "sm", fw: 500 }, renderNumber(item.amount)), /* @__PURE__ */ React24.createElement(Text12, { size: "xs", c: "dimmed" }, "$", renderNumber(item.usdAmount))), isMultiSelect && /* @__PURE__ */ React24.createElement(ListItemCheckbox, { ariaLabel: `Select balance ${item.denom}`, checked: isItemChecked?.(item.denom), onCheck: (checked) => onItemCheck?.(item.denom, checked) })));
2647
+ });
2573
2648
  return /* @__PURE__ */ React24.createElement(Box6, { flex: 1 }, /* @__PURE__ */ React24.createElement(Stack14, null, rows));
2574
2649
  };
2575
2650
 
2576
2651
  // src/mantine/blocks/list/investments/InvestmentsList.tsx
2577
2652
  import React25 from "react";
2578
2653
  import { Text as Text13, Box as Box7, Image as Image3, Stack as Stack15, Flex as Flex8, Progress } from "@mantine/core";
2579
- var InvestmentsList = ({ items, mods, isItemChecked, onItemCheck }) => {
2654
+ var InvestmentsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2580
2655
  if (!items || items.length === 0) {
2581
2656
  return /* @__PURE__ */ React25.createElement(Text13, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No investments found");
2582
2657
  }
2583
- const rows = items.map((investment) => /* @__PURE__ */ React25.createElement(ListItemContainer, { key: investment.did }, /* @__PURE__ */ React25.createElement(Flex8, { align: "center", gap: "sm" }, /* @__PURE__ */ React25.createElement(Image3, { radius: 16, w: 32, h: 32, src: investment.icon }), /* @__PURE__ */ React25.createElement(Stack15, { gap: 0 }, /* @__PURE__ */ React25.createElement(Text13, { size: "sm" }, investment.name || "-"), /* @__PURE__ */ React25.createElement(Text13, { size: "sm", c: "dimmed" }, investment.brand || "-"))), /* @__PURE__ */ React25.createElement(Flex8, { align: "center", gap: "md" }, /* @__PURE__ */ React25.createElement(Stack15, { ta: "right", gap: 0 }, /* @__PURE__ */ React25.createElement(Flex8, { gap: "5px" }, /* @__PURE__ */ React25.createElement(Text13, { size: "sm" }, investment.currency + formatNumber(investment.currentAmount)), /* @__PURE__ */ React25.createElement(Text13, { size: "sm", c: "dimmed" }, "/ ", investment.currency + formatNumber(investment.maxAmount))), /* @__PURE__ */ React25.createElement(Text13, { size: "xs", c: "dimmed" }, /* @__PURE__ */ React25.createElement(Progress, { color: "rgb(0, 255, 157)", radius: "xl", size: "lg", value: investment.currentAmount * 100 / investment.maxAmount }))), mods && /* @__PURE__ */ React25.createElement(
2584
- ListItemCheckbox,
2585
- {
2586
- ariaLabel: `Select investment ${investment.did}`,
2587
- checked: isItemChecked?.(investment.did),
2588
- onCheck: (checked) => onItemCheck?.(investment.did, checked)
2589
- }
2590
- ))));
2658
+ const rows = items.map((item) => {
2659
+ const isChecked = isItemChecked?.(item.did);
2660
+ return /* @__PURE__ */ React25.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React25.createElement(Flex8, { align: "center", gap: "sm" }, /* @__PURE__ */ React25.createElement(Image3, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React25.createElement(Stack15, { gap: 0 }, /* @__PURE__ */ React25.createElement(Text13, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React25.createElement(Text13, { size: "sm", c: "dimmed" }, item.brand || "-"))), /* @__PURE__ */ React25.createElement(Flex8, { align: "center", gap: "md" }, /* @__PURE__ */ React25.createElement(Stack15, { ta: "right", gap: 0 }, /* @__PURE__ */ React25.createElement(Flex8, { gap: "5px" }, /* @__PURE__ */ React25.createElement(Text13, { size: "sm" }, item.currency + formatNumber(item.currentAmount)), /* @__PURE__ */ React25.createElement(Text13, { size: "sm", c: "dimmed" }, "/ ", item.currency + formatNumber(item.maxAmount))), /* @__PURE__ */ React25.createElement(Text13, { size: "xs", c: "dimmed" }, /* @__PURE__ */ React25.createElement(Progress, { color: "rgb(0, 255, 157)", radius: "xl", size: "lg", value: item.currentAmount * 100 / item.maxAmount }))), isMultiSelect && /* @__PURE__ */ React25.createElement(ListItemCheckbox, { ariaLabel: `Select investment ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
2661
+ });
2591
2662
  return /* @__PURE__ */ React25.createElement(Box7, { flex: 1 }, /* @__PURE__ */ React25.createElement(Stack15, null, rows));
2592
2663
  };
2593
2664
 
2594
2665
  // src/mantine/blocks/list/oracles/OraclesList.tsx
2595
2666
  import React26 from "react";
2596
2667
  import { Text as Text14, Box as Box8, Image as Image4, Stack as Stack16, Flex as Flex9 } from "@mantine/core";
2597
- var OraclesList = ({ items, mods, isItemChecked, onItemCheck }) => {
2668
+ var OraclesList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2598
2669
  if (!items || items.length === 0) {
2599
2670
  return /* @__PURE__ */ React26.createElement(Text14, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No oracles found");
2600
2671
  }
2601
- const rows = items.map((oracle) => /* @__PURE__ */ React26.createElement(ListItemContainer, { key: oracle.did }, /* @__PURE__ */ React26.createElement(Flex9, { align: "center", gap: "sm" }, /* @__PURE__ */ React26.createElement(Image4, { radius: 16, w: 32, h: 32, src: oracle.icon }), /* @__PURE__ */ React26.createElement(Stack16, { gap: 0 }, /* @__PURE__ */ React26.createElement(Text14, { size: "sm" }, oracle.name || "-"), /* @__PURE__ */ React26.createElement(Text14, { size: "sm", c: "dimmed" }, oracle.brand || "-"))), /* @__PURE__ */ React26.createElement(Flex9, { align: "center", gap: "md" }, /* @__PURE__ */ React26.createElement(Stack16, { ta: "right", gap: 0 }, /* @__PURE__ */ React26.createElement(Text14, { size: "sm" }, oracle.currency || "-"), /* @__PURE__ */ React26.createElement(Text14, { size: "xs", c: "dimmed" }, oracle.minPoints, " - ", oracle.maxPoints, " pts"), /* @__PURE__ */ React26.createElement(Text14, { size: "xs", c: "dimmed" }, oracle.flowsAmount, " Flows")), mods && /* @__PURE__ */ React26.createElement(ListItemCheckbox, { ariaLabel: `Select oracle ${oracle.did}`, checked: isItemChecked?.(oracle.did), onCheck: (checked) => onItemCheck?.(oracle.did, checked) }))));
2672
+ const rows = items.map((item) => {
2673
+ const isChecked = isItemChecked?.(item.did);
2674
+ return /* @__PURE__ */ React26.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React26.createElement(Flex9, { align: "center", gap: "sm" }, /* @__PURE__ */ React26.createElement(Image4, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React26.createElement(Stack16, { gap: 0 }, /* @__PURE__ */ React26.createElement(Text14, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React26.createElement(Text14, { size: "sm", c: "dimmed" }, item.brand || "-"))), /* @__PURE__ */ React26.createElement(Flex9, { align: "center", gap: "md" }, /* @__PURE__ */ React26.createElement(Stack16, { ta: "right", gap: 0 }, /* @__PURE__ */ React26.createElement(Text14, { size: "sm" }, item.currency || "-"), /* @__PURE__ */ React26.createElement(Text14, { size: "xs", c: "dimmed" }, item.minPoints, " - ", item.maxPoints, " pts"), /* @__PURE__ */ React26.createElement(Text14, { size: "xs", c: "dimmed" }, item.flowsAmount, " Flows")), isMultiSelect && /* @__PURE__ */ React26.createElement(ListItemCheckbox, { ariaLabel: `Select oracle ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
2675
+ });
2602
2676
  return /* @__PURE__ */ React26.createElement(Box8, { flex: 1 }, /* @__PURE__ */ React26.createElement(Stack16, null, rows));
2603
2677
  };
2604
2678
 
2605
2679
  // src/mantine/blocks/list/pods/PODsList.tsx
2606
2680
  import React27 from "react";
2607
2681
  import { Text as Text15, Box as Box9, Image as Image5, Stack as Stack17, Flex as Flex10 } from "@mantine/core";
2608
- var PodsList = ({ items, mods, isItemChecked, onItemCheck }) => {
2682
+ var PodsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2609
2683
  if (!items || items.length === 0) {
2610
2684
  return /* @__PURE__ */ React27.createElement(Text15, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No PODs found");
2611
2685
  }
2612
- const rows = items.map((pod) => /* @__PURE__ */ React27.createElement(ListItemContainer, { key: pod.did }, /* @__PURE__ */ React27.createElement(Flex10, { align: "center", gap: "sm" }, /* @__PURE__ */ React27.createElement(Image5, { radius: 16, w: 32, h: 32, src: pod.icon }), /* @__PURE__ */ React27.createElement(Stack17, { gap: 0 }, /* @__PURE__ */ React27.createElement(Text15, { size: "sm" }, pod.name || "-"), /* @__PURE__ */ React27.createElement(Text15, { size: "sm", c: "dimmed" }, pod.startDate, " \u2192 ", pod.endDate))), /* @__PURE__ */ React27.createElement(Flex10, { align: "center", gap: "md" }, /* @__PURE__ */ React27.createElement(Stack17, { ta: "right", gap: 0 }, /* @__PURE__ */ React27.createElement(Text15, { size: "sm" }, pod.members, " Members"), /* @__PURE__ */ React27.createElement(Text15, { size: "sm", c: "dimmed" }, pod.totalProposals, " Proposals")), mods && /* @__PURE__ */ React27.createElement(ListItemCheckbox, { ariaLabel: `Select pod ${pod.did}`, checked: isItemChecked?.(pod.did), onCheck: (checked) => onItemCheck?.(pod.did, checked) }))));
2686
+ const rows = items.map((item) => {
2687
+ const isChecked = isItemChecked?.(item.did);
2688
+ return /* @__PURE__ */ React27.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React27.createElement(Flex10, { align: "center", gap: "sm" }, /* @__PURE__ */ React27.createElement(Image5, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React27.createElement(Stack17, { gap: 0 }, /* @__PURE__ */ React27.createElement(Text15, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React27.createElement(Text15, { size: "sm", c: "dimmed" }, item.startDate, " \u2192 ", item.endDate))), /* @__PURE__ */ React27.createElement(Flex10, { align: "center", gap: "md" }, /* @__PURE__ */ React27.createElement(Stack17, { ta: "right", gap: 0 }, /* @__PURE__ */ React27.createElement(Text15, { size: "sm" }, item.members, " Members"), /* @__PURE__ */ React27.createElement(Text15, { size: "sm", c: "dimmed" }, item.totalProposals, " Proposals")), isMultiSelect && /* @__PURE__ */ React27.createElement(ListItemCheckbox, { ariaLabel: `Select POD ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
2689
+ });
2613
2690
  return /* @__PURE__ */ React27.createElement(Box9, { flex: 1 }, /* @__PURE__ */ React27.createElement(Stack17, null, rows));
2614
2691
  };
2615
2692
 
2616
2693
  // src/mantine/blocks/list/proposals/ProposalsList.tsx
2617
2694
  import React28 from "react";
2618
2695
  import { Text as Text16, Box as Box10, Image as Image6, Stack as Stack18, Flex as Flex11, Badge as Badge4 } from "@mantine/core";
2619
- var ProposalsList = ({ items, mods, isItemChecked, onItemCheck }) => {
2696
+ var ProposalsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2620
2697
  if (!items || items.length === 0) {
2621
2698
  return /* @__PURE__ */ React28.createElement(Text16, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No proposals found");
2622
2699
  }
2623
- const rows = items.map((proposal) => /* @__PURE__ */ React28.createElement(ListItemContainer, { key: proposal.did }, /* @__PURE__ */ React28.createElement(Flex11, { align: "center", gap: "sm" }, /* @__PURE__ */ React28.createElement(Image6, { radius: 16, w: 32, h: 32, src: proposal.icon }), /* @__PURE__ */ React28.createElement(Stack18, { gap: 0 }, /* @__PURE__ */ React28.createElement(Text16, { size: "sm" }, proposal.name || "-"), /* @__PURE__ */ React28.createElement(Text16, { size: "xs", c: "dimmed" }, proposal.description || "-"))), /* @__PURE__ */ React28.createElement(Flex11, { align: "center", gap: "md" }, /* @__PURE__ */ React28.createElement(Stack18, { ta: "right", align: "end", gap: 0 }, /* @__PURE__ */ React28.createElement(Badge4, { size: "sm", variant: "light", color: "blue", style: { fontFamily: "monospace", fontSize: "10px" } }, proposal.status), /* @__PURE__ */ React28.createElement(Text16, { size: "sm", c: "dimmed" }, proposal.isVotedOn ? "Voted" : "Not voted")), mods && /* @__PURE__ */ React28.createElement(ListItemCheckbox, { ariaLabel: `Select proposal ${proposal.did}`, checked: isItemChecked?.(proposal.did), onCheck: (checked) => onItemCheck?.(proposal.did, checked) }))));
2700
+ const rows = items.map((item) => {
2701
+ const isChecked = isItemChecked?.(item.did);
2702
+ return /* @__PURE__ */ React28.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React28.createElement(Flex11, { align: "center", gap: "sm" }, /* @__PURE__ */ React28.createElement(Image6, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React28.createElement(Stack18, { gap: 0 }, /* @__PURE__ */ React28.createElement(Text16, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React28.createElement(Text16, { size: "xs", c: "dimmed" }, item.description || "-"))), /* @__PURE__ */ React28.createElement(Flex11, { align: "center", gap: "md" }, /* @__PURE__ */ React28.createElement(Stack18, { ta: "right", align: "end", gap: 0 }, /* @__PURE__ */ React28.createElement(Badge4, { size: "sm", variant: "light", color: "blue", style: { fontFamily: "monospace", fontSize: "10px" } }, item.status), /* @__PURE__ */ React28.createElement(Text16, { size: "sm", c: "dimmed" }, item.isVotedOn ? "Voted" : "Not voted")), isMultiSelect && /* @__PURE__ */ React28.createElement(ListItemCheckbox, { ariaLabel: `Select proposal ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
2703
+ });
2624
2704
  return /* @__PURE__ */ React28.createElement(Box10, { flex: 1 }, /* @__PURE__ */ React28.createElement(Stack18, null, rows));
2625
2705
  };
2626
2706
 
2627
2707
  // src/mantine/blocks/list/requests/RequestsList.tsx
2628
2708
  import React29 from "react";
2629
2709
  import { Text as Text17, Box as Box11, Image as Image7, Stack as Stack19, Flex as Flex12 } from "@mantine/core";
2630
- var RequestsList = ({ items, mods, isItemChecked, onItemCheck }) => {
2710
+ var RequestsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2631
2711
  if (!items || items.length === 0) {
2632
2712
  return /* @__PURE__ */ React29.createElement(Text17, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No requests found");
2633
2713
  }
2634
- const rows = items.map((request) => /* @__PURE__ */ React29.createElement(ListItemContainer, { key: request.did }, /* @__PURE__ */ React29.createElement(Flex12, { align: "center", gap: "sm" }, /* @__PURE__ */ React29.createElement(Image7, { radius: 16, w: 32, h: 32, src: request.icon }), /* @__PURE__ */ React29.createElement(Stack19, { gap: 0 }, /* @__PURE__ */ React29.createElement(Text17, { size: "sm" }, request.name || "-"), /* @__PURE__ */ React29.createElement(Text17, { size: "sm", c: "dimmed" }, request.brand || "-"))), /* @__PURE__ */ React29.createElement(Flex12, { align: "center", gap: "md" }, /* @__PURE__ */ React29.createElement(Stack19, { ta: "right", gap: 0 }, /* @__PURE__ */ React29.createElement(Text17, { size: "sm", c: "dimmed" }, request.currency || "", request.budget ?? "-"), /* @__PURE__ */ React29.createElement(Text17, { size: "xs", c: "dimmed" }, request.totalApplications ?? 0, " Applications")), mods && /* @__PURE__ */ React29.createElement(ListItemCheckbox, { ariaLabel: `Select request ${request.did}`, checked: isItemChecked?.(request.did), onCheck: (checked) => onItemCheck?.(request.did, checked) }))));
2714
+ const rows = items.map((item) => {
2715
+ const isChecked = isItemChecked?.(item.did);
2716
+ return /* @__PURE__ */ React29.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React29.createElement(Flex12, { align: "center", gap: "sm" }, /* @__PURE__ */ React29.createElement(Image7, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React29.createElement(Stack19, { gap: 0 }, /* @__PURE__ */ React29.createElement(Text17, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React29.createElement(Text17, { size: "sm", c: "dimmed" }, item.brand || "-"))), /* @__PURE__ */ React29.createElement(Flex12, { align: "center", gap: "md" }, /* @__PURE__ */ React29.createElement(Stack19, { ta: "right", gap: 0 }, /* @__PURE__ */ React29.createElement(Text17, { size: "sm", c: "dimmed" }, item.currency || "", item.budget ?? "-"), /* @__PURE__ */ React29.createElement(Text17, { size: "xs", c: "dimmed" }, item.totalApplications ?? 0, " Applications")), isMultiSelect && /* @__PURE__ */ React29.createElement(ListItemCheckbox, { ariaLabel: `Select request ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
2717
+ });
2635
2718
  return /* @__PURE__ */ React29.createElement(Box11, { flex: 1 }, /* @__PURE__ */ React29.createElement(Stack19, null, rows));
2636
2719
  };
2637
2720
 
2638
2721
  // src/mantine/blocks/list/members/MembersList.tsx
2639
2722
  import React30 from "react";
2640
2723
  import { Text as Text18, Box as Box12, Image as Image8, Stack as Stack20, Flex as Flex13 } from "@mantine/core";
2641
- var MembersList = ({ items, mods, isItemChecked, onItemCheck }) => {
2724
+ var MembersList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2642
2725
  if (!items || items.length === 0) {
2643
2726
  return /* @__PURE__ */ React30.createElement(Text18, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No members found");
2644
2727
  }
2645
- const rows = items.map((member) => /* @__PURE__ */ React30.createElement(ListItemContainer, { key: member.did }, /* @__PURE__ */ React30.createElement(Flex13, { align: "center", gap: "sm" }, /* @__PURE__ */ React30.createElement(Image8, { radius: 16, w: 32, h: 32, src: member.icon }), /* @__PURE__ */ React30.createElement(Stack20, { gap: 0 }, /* @__PURE__ */ React30.createElement(Text18, { size: "sm" }, member.username || "-"), /* @__PURE__ */ React30.createElement(Text18, { size: "xs", c: "dimmed" }, member.address || "-"))), /* @__PURE__ */ React30.createElement(Flex13, { align: "center", gap: "md" }, /* @__PURE__ */ React30.createElement(Stack20, { ta: "right", gap: 0 }, /* @__PURE__ */ React30.createElement(Text18, { size: "sm" }, member.percentage), /* @__PURE__ */ React30.createElement(Text18, { size: "sm", c: "dimmed" }, member.role)), mods && /* @__PURE__ */ React30.createElement(ListItemCheckbox, { ariaLabel: `Select member ${member.did}`, checked: isItemChecked?.(member.did), onCheck: (checked) => onItemCheck?.(member.did, checked) }))));
2728
+ const rows = items.map((item) => {
2729
+ const isChecked = isItemChecked?.(item.did);
2730
+ return /* @__PURE__ */ React30.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React30.createElement(Flex13, { align: "center", gap: "sm" }, /* @__PURE__ */ React30.createElement(Image8, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React30.createElement(Stack20, { gap: 0 }, /* @__PURE__ */ React30.createElement(Text18, { size: "sm" }, item.username || "-"), /* @__PURE__ */ React30.createElement(Text18, { size: "xs", c: "dimmed" }, item.address || "-"))), /* @__PURE__ */ React30.createElement(Flex13, { align: "center", gap: "md" }, /* @__PURE__ */ React30.createElement(Stack20, { ta: "right", gap: 0 }, /* @__PURE__ */ React30.createElement(Text18, { size: "sm" }, item.percentage), /* @__PURE__ */ React30.createElement(Text18, { size: "sm", c: "dimmed" }, item.role)), isMultiSelect && /* @__PURE__ */ React30.createElement(ListItemCheckbox, { ariaLabel: `Select member ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
2731
+ });
2646
2732
  return /* @__PURE__ */ React30.createElement(Box12, { flex: 1 }, /* @__PURE__ */ React30.createElement(Stack20, null, rows));
2647
2733
  };
2648
2734
 
@@ -2655,11 +2741,14 @@ var getDelegatedTokensFromValidator = (validator) => Number(validator?.amount ??
2655
2741
  var getDisplayDelegatedTokensFromValidator = (validator) => microAmountToAmount(getDelegatedTokensFromValidator(validator), 6);
2656
2742
 
2657
2743
  // src/mantine/blocks/list/validators/ValidatorsList.tsx
2658
- var ValidatorsList = ({ items, mods, isItemChecked, onItemCheck }) => {
2744
+ var ValidatorsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2659
2745
  if (!items || items.length === 0) {
2660
2746
  return /* @__PURE__ */ React31.createElement(Text19, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No validators found");
2661
2747
  }
2662
- const rows = items.map((v) => /* @__PURE__ */ React31.createElement(ListItemContainer, { key: v.did }, /* @__PURE__ */ React31.createElement(Flex14, { align: "center", gap: "sm" }, /* @__PURE__ */ React31.createElement(Image9, { radius: 16, w: 32, h: 32, src: v.icon }), /* @__PURE__ */ React31.createElement(Stack21, { gap: 0 }, /* @__PURE__ */ React31.createElement(Text19, { size: "sm" }, v.name || "-"), /* @__PURE__ */ React31.createElement(Text19, { size: "xs", c: "dimmed" }, v.description || "-"))), /* @__PURE__ */ React31.createElement(Flex14, { align: "center", gap: "md" }, /* @__PURE__ */ React31.createElement(Stack21, { ta: "right", gap: 0 }, /* @__PURE__ */ React31.createElement(Text19, { size: "sm" }, numberFormatter(getDisplayDelegatedTokensFromValidator(v), 2), " ", v.currency), /* @__PURE__ */ React31.createElement(Text19, { size: "sm", c: "dimmed" }, v.commission, "% fee"), /* @__PURE__ */ React31.createElement(Text19, { size: "xs", c: "dimmed" }, v.isActive ? "Active" : "Inactive", " \u2022 ", v.isStaked ? "Staked" : "Not staked", " \u2022 ", v.isBonding ? "Bonding" : "Not bonding")), mods && /* @__PURE__ */ React31.createElement(ListItemCheckbox, { ariaLabel: `Select validator ${v.did}`, checked: isItemChecked?.(v.did), onCheck: (checked) => onItemCheck?.(v.did, checked) }))));
2748
+ const rows = items.map((item) => {
2749
+ const isChecked = isItemChecked?.(item.did);
2750
+ return /* @__PURE__ */ React31.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React31.createElement(Flex14, { align: "center", gap: "sm" }, /* @__PURE__ */ React31.createElement(Image9, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React31.createElement(Stack21, { gap: 0 }, /* @__PURE__ */ React31.createElement(Text19, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React31.createElement(Text19, { size: "xs", c: "dimmed" }, item.description || "-"))), /* @__PURE__ */ React31.createElement(Flex14, { align: "center", gap: "md" }, /* @__PURE__ */ React31.createElement(Stack21, { ta: "right", gap: 0 }, /* @__PURE__ */ React31.createElement(Text19, { size: "sm" }, numberFormatter(getDisplayDelegatedTokensFromValidator(item), 2), " ", item.currency), /* @__PURE__ */ React31.createElement(Text19, { size: "sm", c: "dimmed" }, item.commission, "% fee"), /* @__PURE__ */ React31.createElement(Text19, { size: "xs", c: "dimmed" }, item.isActive ? "Active" : "Inactive", " \u2022 ", item.isStaked ? "Staked" : "Not staked", " \u2022 ", item.isBonding ? "Bonding" : "Not bonding")), isMultiSelect && /* @__PURE__ */ React31.createElement(ListItemCheckbox, { ariaLabel: `Select validator ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
2751
+ });
2663
2752
  return /* @__PURE__ */ React31.createElement(Box13, { flex: 1 }, /* @__PURE__ */ React31.createElement(Stack21, null, rows));
2664
2753
  };
2665
2754
 
@@ -2667,7 +2756,7 @@ var ValidatorsList = ({ items, mods, isItemChecked, onItemCheck }) => {
2667
2756
  import React32 from "react";
2668
2757
  import { Menu, Text as Text20, ActionIcon as ActionIcon4 } from "@mantine/core";
2669
2758
  import { IconArrowDown, IconArrowUp, IconAdjustments, IconCheckbox as IconCheckbox2, IconAdjustmentsHorizontal, IconDownload } from "@tabler/icons-react";
2670
- var ListActionsMenu = ({ options, selectionMode, onSelectActionClick, value, onChange, onDownloadCsv }) => {
2759
+ var ListActionsMenu = ({ options, isMultiSelect, setIsMultiSelect, value, onChange, onDownloadCsv }) => {
2671
2760
  const renderItem = (opt, direction) => {
2672
2761
  const isActive = value?.key === opt.key && value?.direction === direction;
2673
2762
  const Icon = direction === "asc" ? IconArrowUp : IconArrowDown;
@@ -2713,7 +2802,7 @@ var ListActionsMenu = ({ options, selectionMode, onSelectActionClick, value, onC
2713
2802
  }
2714
2803
  },
2715
2804
  /* @__PURE__ */ React32.createElement(Menu.Target, null, /* @__PURE__ */ React32.createElement(ActionIcon4, { variant: "subtle", size: "sm", "aria-label": "List actions", title: "List actions" }, /* @__PURE__ */ React32.createElement(IconAdjustmentsHorizontal, { size: 18 }))),
2716
- /* @__PURE__ */ React32.createElement(Menu.Dropdown, null, /* @__PURE__ */ React32.createElement(Menu.Label, null, /* @__PURE__ */ React32.createElement(Text20, null, "Order By")), options.map((opt) => /* @__PURE__ */ React32.createElement(React32.Fragment, { key: opt.key }, renderItem(opt, "desc"), renderItem(opt, "asc"))), /* @__PURE__ */ React32.createElement(Menu.Divider, null), /* @__PURE__ */ React32.createElement(Menu.Item, { leftSection: /* @__PURE__ */ React32.createElement(IconAdjustments, { size: 16 }) }, "Smart Filter"), /* @__PURE__ */ React32.createElement(Menu.Divider, null), /* @__PURE__ */ React32.createElement(Menu.Item, { onClick: () => onSelectActionClick(selectionMode === "single" ? null : "single"), leftSection: /* @__PURE__ */ React32.createElement(IconCheckbox2, { size: 16 }) }, "Single Select"), /* @__PURE__ */ React32.createElement(Menu.Item, { onClick: () => onSelectActionClick(selectionMode === "multi" ? null : "multi"), leftSection: /* @__PURE__ */ React32.createElement(IconCheckbox2, { size: 16 }) }, "Multi Select"), onDownloadCsv && /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(Menu.Divider, null), /* @__PURE__ */ React32.createElement(Menu.Item, { onClick: onDownloadCsv, leftSection: /* @__PURE__ */ React32.createElement(IconDownload, { size: 16 }) }, "Download CSV")))
2805
+ /* @__PURE__ */ React32.createElement(Menu.Dropdown, null, /* @__PURE__ */ React32.createElement(Menu.Label, null, /* @__PURE__ */ React32.createElement(Text20, null, "Order By")), options.map((opt) => /* @__PURE__ */ React32.createElement(React32.Fragment, { key: opt.key }, renderItem(opt, "desc"), renderItem(opt, "asc"))), /* @__PURE__ */ React32.createElement(Menu.Divider, null), /* @__PURE__ */ React32.createElement(Menu.Item, { leftSection: /* @__PURE__ */ React32.createElement(IconAdjustments, { size: 16 }) }, "Smart Filter"), /* @__PURE__ */ React32.createElement(Menu.Divider, null), /* @__PURE__ */ React32.createElement(Menu.Item, { onClick: () => setIsMultiSelect(!isMultiSelect), leftSection: /* @__PURE__ */ React32.createElement(IconCheckbox2, { size: 16 }) }, "Multi Select"), onDownloadCsv && /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(Menu.Divider, null), /* @__PURE__ */ React32.createElement(Menu.Item, { onClick: onDownloadCsv, leftSection: /* @__PURE__ */ React32.createElement(IconDownload, { size: 16 }) }, "Download CSV")))
2717
2806
  );
2718
2807
  };
2719
2808
 
@@ -2823,23 +2912,26 @@ var DEFAULT_PAGE_SIZE = 5;
2823
2912
  // src/mantine/blocks/list/dao_members/MembersList.tsx
2824
2913
  import React35 from "react";
2825
2914
  import { Text as Text22, Box as Box14, Image as Image10, Stack as Stack22, Flex as Flex15 } from "@mantine/core";
2826
- var DaoMembersList = ({ items, mods, isItemChecked, onItemCheck }) => {
2915
+ var DaoMembersList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2827
2916
  if (!items || items.length === 0) {
2828
2917
  return /* @__PURE__ */ React35.createElement(Text22, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No members found");
2829
2918
  }
2830
- const rows = items.map((member) => /* @__PURE__ */ React35.createElement(ListItemContainer, { key: member.did }, /* @__PURE__ */ React35.createElement(Flex15, { align: "center", gap: "sm" }, /* @__PURE__ */ React35.createElement(Image10, { radius: 16, w: 32, h: 32, src: member.icon }), /* @__PURE__ */ React35.createElement(Stack22, { gap: 0 }, /* @__PURE__ */ React35.createElement(Text22, { size: "sm", fw: 500 }, member.username || "Unknown User"), /* @__PURE__ */ React35.createElement(Text22, { size: "xs", c: "dimmed", lineClamp: 1 }, member.address || "No address"))), /* @__PURE__ */ React35.createElement(Flex15, { align: "center", gap: "md" }, /* @__PURE__ */ React35.createElement(Stack22, { ta: "right", gap: 0 }, /* @__PURE__ */ React35.createElement(Text22, { size: "sm", fw: 500, c: "blue" }, member.percentage || "0%"), /* @__PURE__ */ React35.createElement(Text22, { size: "xs", c: "dimmed", tt: "capitalize" }, member.role || "member")), mods && /* @__PURE__ */ React35.createElement(
2831
- ListItemCheckbox,
2832
- {
2833
- ariaLabel: `Select member ${member.username || member.did}`,
2834
- checked: isItemChecked?.(member.did) || false,
2835
- onCheck: (checked) => onItemCheck?.(member.did, checked)
2836
- }
2837
- ))));
2919
+ const rows = items.map((item) => {
2920
+ const isChecked = isItemChecked?.(item.did);
2921
+ return /* @__PURE__ */ React35.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React35.createElement(Flex15, { align: "center", gap: "sm" }, /* @__PURE__ */ React35.createElement(Image10, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React35.createElement(Stack22, { gap: 0 }, /* @__PURE__ */ React35.createElement(Text22, { size: "sm", fw: 500 }, item.username || "Unknown User"), /* @__PURE__ */ React35.createElement(Text22, { size: "xs", c: "dimmed", lineClamp: 1 }, item.address || "No address"))), /* @__PURE__ */ React35.createElement(Flex15, { align: "center", gap: "md" }, /* @__PURE__ */ React35.createElement(Stack22, { ta: "right", gap: 0 }, /* @__PURE__ */ React35.createElement(Text22, { size: "sm", fw: 500, c: "blue" }, item.percentage || "0%"), /* @__PURE__ */ React35.createElement(Text22, { size: "xs", c: "dimmed", tt: "capitalize" }, item.role || "member")), isMultiSelect && /* @__PURE__ */ React35.createElement(
2922
+ ListItemCheckbox,
2923
+ {
2924
+ ariaLabel: `Select member ${item.username || item.did}`,
2925
+ checked: isItemChecked?.(item.did) || false,
2926
+ onCheck: (checked) => onItemCheck?.(item.did, checked)
2927
+ }
2928
+ )));
2929
+ });
2838
2930
  return /* @__PURE__ */ React35.createElement(Box14, { flex: 1 }, /* @__PURE__ */ React35.createElement(Stack22, { gap: "xs" }, rows));
2839
2931
  };
2840
2932
 
2841
2933
  // src/mantine/blocks/list/ListSelectionPanel.tsx
2842
- import React37, { useState as useState5, useEffect as useEffect5, useMemo as useMemo7 } from "react";
2934
+ import React37, { useState as useState6, useEffect as useEffect6, useMemo as useMemo7 } from "react";
2843
2935
  import { Paper as Paper4, CloseButton as CloseButton3, Stack as Stack24, Alert as Alert3, Text as Text24, Loader, Center } from "@mantine/core";
2844
2936
 
2845
2937
  // src/mantine/blocks/list/components/SelectionPanelContent.tsx
@@ -2850,12 +2942,13 @@ import { IconArrowRight, IconTarget } from "@tabler/icons-react";
2850
2942
  var SelectionPanelHeader = ({ title, description }) => {
2851
2943
  return /* @__PURE__ */ React36.createElement(Stack23, { gap: "xs" }, /* @__PURE__ */ React36.createElement(Title3, { fw: 400, order: 3 }, title), /* @__PURE__ */ React36.createElement(Text23, { c: "dimmed" }, description));
2852
2944
  };
2853
- var SelectionPromptItem = ({ prompt }) => {
2854
- return /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(Flex16, { gap: 10 }, /* @__PURE__ */ React36.createElement(IconArrowRight, { size: 24, color: "white" }), /* @__PURE__ */ React36.createElement(Text23, null, prompt.text)), /* @__PURE__ */ React36.createElement(Divider2, { c: "dimmed", h: 1 }));
2945
+ var SelectionPromptItem = ({ prompt, onClick }) => {
2946
+ return /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(Flex16, { style: { cursor: "pointer" }, onClick: () => onClick(), gap: 10 }, /* @__PURE__ */ React36.createElement(IconArrowRight, { size: 24, color: "white" }), /* @__PURE__ */ React36.createElement(Text23, null, shortStr(prompt.text, 50, 0))), /* @__PURE__ */ React36.createElement(Divider2, { c: "dimmed", h: 1 }));
2855
2947
  };
2856
2948
  var SelectionPrompts = ({ prompts }) => {
2949
+ const handlers = useBlocknoteHandlers();
2857
2950
  if (!prompts || prompts.length === 0) return null;
2858
- return /* @__PURE__ */ React36.createElement(Stack23, { gap: "xs" }, prompts.map((prompt, index) => /* @__PURE__ */ React36.createElement(SelectionPromptItem, { key: index, prompt })));
2951
+ return /* @__PURE__ */ React36.createElement(Stack23, { gap: "xs" }, prompts.map((prompt, index) => /* @__PURE__ */ React36.createElement(SelectionPromptItem, { onClick: () => handlers.askCompanion(prompt.text), key: index, prompt })));
2859
2952
  };
2860
2953
  var SelectionActionButton = ({ action, itemId, itemData }) => {
2861
2954
  const { hovered, ref } = useHover();
@@ -2896,9 +2989,9 @@ var SelectionPanelEmpty = ({ message = "No item selected" }) => {
2896
2989
  var ListSelectionPanel = ({ selectedIds, listType }) => {
2897
2990
  const { closePanel } = usePanelStore();
2898
2991
  const handlers = useBlocknoteHandlers();
2899
- const [itemData, setItemData] = useState5(null);
2900
- const [loading, setLoading] = useState5(false);
2901
- const [error, setError] = useState5(null);
2992
+ const [itemData, setItemData] = useState6(null);
2993
+ const [loading, setLoading] = useState6(false);
2994
+ const [error, setError] = useState6(null);
2902
2995
  const selectedItemId = useMemo7(() => {
2903
2996
  if (selectedIds.size === 0) return null;
2904
2997
  const idsArray = Array.from(selectedIds);
@@ -2908,7 +3001,7 @@ var ListSelectionPanel = ({ selectedIds, listType }) => {
2908
3001
  if (!listType) return null;
2909
3002
  return getSelectionPanelConfig(listType);
2910
3003
  }, [listType]);
2911
- useEffect5(() => {
3004
+ useEffect6(() => {
2912
3005
  const fetchItemDetails = async () => {
2913
3006
  if (!selectedItemId || !listType || !handlers || !panelConfig) {
2914
3007
  setItemData(null);
@@ -3033,22 +3126,28 @@ var ListSelectionPanel = ({ selectedIds, listType }) => {
3033
3126
  // src/mantine/blocks/list/projects/ProjectsList.tsx
3034
3127
  import React38 from "react";
3035
3128
  import { Text as Text25, Box as Box15, Image as Image11, Stack as Stack25, Flex as Flex17 } from "@mantine/core";
3036
- var ProjectsList = ({ items, mods, isItemChecked, onItemCheck }) => {
3129
+ var ProjectsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3037
3130
  if (!items || items.length === 0) {
3038
3131
  return /* @__PURE__ */ React38.createElement(Text25, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No Projects found");
3039
3132
  }
3040
- const rows = items.map((project) => /* @__PURE__ */ React38.createElement(ListItemContainer, { key: project.did }, /* @__PURE__ */ React38.createElement(Flex17, { align: "center", gap: "sm" }, /* @__PURE__ */ React38.createElement(Image11, { radius: 16, w: 32, h: 32, src: project.icon }), /* @__PURE__ */ React38.createElement(Stack25, { gap: 0 }, /* @__PURE__ */ React38.createElement(Text25, { size: "sm" }, project.name || "-"), /* @__PURE__ */ React38.createElement(Text25, { size: "sm", c: "dimmed" }, shortStr(project.description, 50, 0) || "-"))), /* @__PURE__ */ React38.createElement(Flex17, { align: "center", gap: "md" }, mods && /* @__PURE__ */ React38.createElement(ListItemCheckbox, { ariaLabel: `Select request ${project.did}`, checked: isItemChecked?.(project.did), onCheck: (checked) => onItemCheck?.(project.did, checked) }))));
3133
+ const rows = items.map((item) => {
3134
+ const isChecked = isItemChecked?.(item.did);
3135
+ return /* @__PURE__ */ React38.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React38.createElement(Flex17, { align: "center", gap: "sm" }, /* @__PURE__ */ React38.createElement(Image11, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React38.createElement(Stack25, { gap: 0 }, /* @__PURE__ */ React38.createElement(Text25, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React38.createElement(Text25, { size: "sm", c: "dimmed" }, shortStr(item.description, 50, 0) || "-"))), /* @__PURE__ */ React38.createElement(Flex17, { align: "center", gap: "md" }, isMultiSelect && /* @__PURE__ */ React38.createElement(ListItemCheckbox, { ariaLabel: `Select project ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
3136
+ });
3041
3137
  return /* @__PURE__ */ React38.createElement(Box15, { flex: 1 }, /* @__PURE__ */ React38.createElement(Stack25, null, rows));
3042
3138
  };
3043
3139
 
3044
3140
  // src/mantine/blocks/list/daos/DaosList.tsx
3045
3141
  import React39 from "react";
3046
3142
  import { Text as Text26, Box as Box16, Image as Image12, Stack as Stack26, Flex as Flex18 } from "@mantine/core";
3047
- var DaosList = ({ items, mods, isItemChecked, onItemCheck }) => {
3143
+ var DaosList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3048
3144
  if (!items || items.length === 0) {
3049
3145
  return /* @__PURE__ */ React39.createElement(Text26, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No Daos found");
3050
3146
  }
3051
- const rows = items.map((dao) => /* @__PURE__ */ React39.createElement(ListItemContainer, { key: dao.did }, /* @__PURE__ */ React39.createElement(Flex18, { align: "center", gap: "sm" }, /* @__PURE__ */ React39.createElement(Image12, { radius: 16, w: 32, h: 32, src: dao.icon }), /* @__PURE__ */ React39.createElement(Stack26, { gap: 0 }, /* @__PURE__ */ React39.createElement(Text26, { size: "sm" }, dao.name || "-"), /* @__PURE__ */ React39.createElement(Text26, { size: "sm", c: "dimmed" }, shortStr(dao.description, 50, 0) || "-"))), /* @__PURE__ */ React39.createElement(Flex18, { align: "center", gap: "md" }, mods && /* @__PURE__ */ React39.createElement(ListItemCheckbox, { ariaLabel: `Select request ${dao.did}`, checked: isItemChecked?.(dao.did), onCheck: (checked) => onItemCheck?.(dao.did, checked) }))));
3147
+ const rows = items.map((item) => {
3148
+ const isChecked = isItemChecked?.(item.did);
3149
+ return /* @__PURE__ */ React39.createElement(ListItemContainer, { onClick: () => onItemCheck?.(item.did, !isChecked), key: item.did, isChecked: !!isChecked }, /* @__PURE__ */ React39.createElement(Flex18, { align: "center", gap: "sm" }, /* @__PURE__ */ React39.createElement(Image12, { radius: 16, w: 32, h: 32, src: item.icon }), /* @__PURE__ */ React39.createElement(Stack26, { gap: 0 }, /* @__PURE__ */ React39.createElement(Text26, { size: "sm" }, item.name || "-"), /* @__PURE__ */ React39.createElement(Text26, { size: "sm", c: "dimmed" }, shortStr(item.description, 50, 0) || "-"))), /* @__PURE__ */ React39.createElement(Flex18, { align: "center", gap: "md" }, isMultiSelect && /* @__PURE__ */ React39.createElement(ListItemCheckbox, { ariaLabel: `Select DAO ${item.did}`, checked: isItemChecked?.(item.did), onCheck: (checked) => onItemCheck?.(item.did, checked) })));
3150
+ });
3052
3151
  return /* @__PURE__ */ React39.createElement(Box16, { flex: 1 }, /* @__PURE__ */ React39.createElement(Stack26, null, rows));
3053
3152
  };
3054
3153
 
@@ -3113,17 +3212,17 @@ function downloadArrayAsCsv(rows, options) {
3113
3212
  import { useDisclosure } from "@mantine/hooks";
3114
3213
 
3115
3214
  // src/mantine/blocks/list/ui/ListBlocksUIContext.tsx
3116
- import React40, { createContext as createContext2, useCallback as useCallback9, useContext as useContext2, useMemo as useMemo8, useRef as useRef3 } from "react";
3215
+ import React40, { createContext as createContext2, useCallback as useCallback10, useContext as useContext2, useMemo as useMemo8, useRef as useRef3 } from "react";
3117
3216
  var ListBlocksUIContext = createContext2(null);
3118
3217
  var ListBlocksUIProvider = ({ children }) => {
3119
3218
  const listenersRef = useRef3(/* @__PURE__ */ new Set());
3120
- const subscribe = useCallback9((listener) => {
3219
+ const subscribe = useCallback10((listener) => {
3121
3220
  listenersRef.current.add(listener);
3122
3221
  return () => {
3123
3222
  listenersRef.current.delete(listener);
3124
3223
  };
3125
3224
  }, []);
3126
- const broadcastCollapse = useCallback9((event) => {
3225
+ const broadcastCollapse = useCallback10((event) => {
3127
3226
  listenersRef.current.forEach((listener) => listener(event));
3128
3227
  }, []);
3129
3228
  const value = useMemo8(() => ({ broadcastCollapse, subscribe }), [broadcastCollapse, subscribe]);
@@ -3142,15 +3241,15 @@ var LIST_FLOW_PANEL_ID = "list-flow-panel";
3142
3241
  var LIST_SELECTION_FLOW_PANEL_ID = "list-selection-flow-panel";
3143
3242
  var ListFlowView = ({ block, editor }) => {
3144
3243
  const { editable } = useBlocknoteContext();
3145
- const [data, setData] = useState6(null);
3146
- const [loading, setLoading] = useState6(false);
3244
+ const [data, setData] = useState7(null);
3245
+ const [loading, setLoading] = useState7(false);
3147
3246
  const [opened, { toggle, open, close }] = useDisclosure(true);
3148
- const [error, setError] = useState6(null);
3149
- const [showErrorDetails, setShowErrorDetails] = useState6(false);
3150
- const [page, setPage] = useState6(1);
3151
- const [selectionMode, setSelectionMode] = useState6(null);
3152
- const [totalPages, setTotalPages] = useState6(0);
3153
- const [selectedIds, setSelectedIds] = useState6(/* @__PURE__ */ new Set());
3247
+ const [error, setError] = useState7(null);
3248
+ const [showErrorDetails, setShowErrorDetails] = useState7(false);
3249
+ const [page, setPage] = useState7(1);
3250
+ const [isMultiSelect, setIsMultiSelect] = useState7(false);
3251
+ const [totalPages, setTotalPages] = useState7(0);
3252
+ const [selectedIds, setSelectedIds] = useState7(/* @__PURE__ */ new Set());
3154
3253
  const panelId = `${LIST_FLOW_PANEL_ID}-${block.id}`;
3155
3254
  const panelContent = useMemo9(() => /* @__PURE__ */ React41.createElement(TemplateConfig2, { editor, block }), [editor, block]);
3156
3255
  const { open: openPanel } = usePanel(panelId, panelContent);
@@ -3163,24 +3262,24 @@ var ListFlowView = ({ block, editor }) => {
3163
3262
  [editor, block, selectedIds, listType]
3164
3263
  );
3165
3264
  const { open: openSelectionPanel, close: closeSelectionPanel } = usePanel(selectionPanelId, selectionPanelContent);
3166
- useEffect6(() => {
3167
- if (selectionMode === "single" && selectedIds.size > 1) {
3265
+ useEffect7(() => {
3266
+ if (!isMultiSelect && selectedIds.size > 1) {
3168
3267
  const arr = Array.from(selectedIds);
3169
3268
  const lastSelected = arr.length > 0 ? arr[arr.length - 1] : void 0;
3170
3269
  setSelectedIds(new Set(lastSelected ? [lastSelected] : []));
3171
3270
  }
3172
- }, [selectionMode, selectedIds]);
3173
- const isItemChecked = useCallback10(
3271
+ }, [isMultiSelect, selectedIds]);
3272
+ const isItemChecked = useCallback11(
3174
3273
  (id) => {
3175
3274
  return selectedIds.has(id);
3176
3275
  },
3177
3276
  [selectedIds]
3178
3277
  );
3179
- const onItemCheck = useCallback10(
3278
+ const onItemCheck = useCallback11(
3180
3279
  (id, checked) => {
3181
3280
  setSelectedIds((prev) => {
3182
3281
  const nextSelectedIds = new Set(prev);
3183
- if (selectionMode === "single") {
3282
+ if (!isMultiSelect) {
3184
3283
  if (checked) {
3185
3284
  openSelectionPanel();
3186
3285
  return /* @__PURE__ */ new Set([id]);
@@ -3201,7 +3300,7 @@ var ListFlowView = ({ block, editor }) => {
3201
3300
  return nextSelectedIds;
3202
3301
  });
3203
3302
  },
3204
- [selectionMode]
3303
+ [isMultiSelect]
3205
3304
  );
3206
3305
  const listConfig = useMemo9(() => {
3207
3306
  if (block.props.listConfig && block.props.listConfig !== "{}") {
@@ -3258,7 +3357,7 @@ var ListFlowView = ({ block, editor }) => {
3258
3357
  }
3259
3358
  return {};
3260
3359
  }, [block.props.sort]);
3261
- useEffect6(() => {
3360
+ useEffect7(() => {
3262
3361
  const unsubscribe = subscribe((event) => {
3263
3362
  if (event === "collapse") close();
3264
3363
  else if (event === "expand") open();
@@ -3274,7 +3373,7 @@ var ListFlowView = ({ block, editor }) => {
3274
3373
  }
3275
3374
  });
3276
3375
  };
3277
- const fetchData = useCallback10(async () => {
3376
+ const fetchData = useCallback11(async () => {
3278
3377
  if (!handlers || !listType || !listConfig) return;
3279
3378
  setLoading(true);
3280
3379
  setError(null);
@@ -3397,7 +3496,7 @@ var ListFlowView = ({ block, editor }) => {
3397
3496
  setLoading(false);
3398
3497
  }
3399
3498
  }, [handlers, page, listType, listConfig]);
3400
- useEffect6(() => {
3499
+ useEffect7(() => {
3401
3500
  if (listType && listConfig) {
3402
3501
  fetchData();
3403
3502
  }
@@ -3427,35 +3526,35 @@ var ListFlowView = ({ block, editor }) => {
3427
3526
  if (!filteredData || !listType) return null;
3428
3527
  switch (listType) {
3429
3528
  case "linked_resources":
3430
- return /* @__PURE__ */ React41.createElement(LinkedResourcesList, { items: filteredData, config: listConfig, mods: selectionMode, isItemChecked, onItemCheck });
3529
+ return /* @__PURE__ */ React41.createElement(LinkedResourcesList, { items: filteredData, config: listConfig, isMultiSelect, isItemChecked, onItemCheck });
3431
3530
  case "assets":
3432
- return /* @__PURE__ */ React41.createElement(AssetsList, { items: filteredData, config: listConfig, mods: selectionMode, isItemChecked, onItemCheck });
3531
+ return /* @__PURE__ */ React41.createElement(AssetsList, { items: filteredData, config: listConfig, isMultiSelect, isItemChecked, onItemCheck });
3433
3532
  case "transactions":
3434
- return /* @__PURE__ */ React41.createElement(TransactionsList, { items: filteredData, config: listConfig, mods: selectionMode, isItemChecked, onItemCheck });
3533
+ return /* @__PURE__ */ React41.createElement(TransactionsList, { items: filteredData, config: listConfig, isMultiSelect, isItemChecked, onItemCheck });
3435
3534
  case "collections":
3436
- return /* @__PURE__ */ React41.createElement(CollectionsList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3535
+ return /* @__PURE__ */ React41.createElement(CollectionsList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3437
3536
  case "balances":
3438
- return /* @__PURE__ */ React41.createElement(BalancesList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3537
+ return /* @__PURE__ */ React41.createElement(BalancesList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3439
3538
  case "investments":
3440
- return /* @__PURE__ */ React41.createElement(InvestmentsList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3539
+ return /* @__PURE__ */ React41.createElement(InvestmentsList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3441
3540
  case "oracles":
3442
- return /* @__PURE__ */ React41.createElement(OraclesList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3541
+ return /* @__PURE__ */ React41.createElement(OraclesList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3443
3542
  case "pods":
3444
- return /* @__PURE__ */ React41.createElement(PodsList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3543
+ return /* @__PURE__ */ React41.createElement(PodsList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3445
3544
  case "proposals":
3446
- return /* @__PURE__ */ React41.createElement(ProposalsList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3545
+ return /* @__PURE__ */ React41.createElement(ProposalsList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3447
3546
  case "requests":
3448
- return /* @__PURE__ */ React41.createElement(RequestsList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3547
+ return /* @__PURE__ */ React41.createElement(RequestsList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3449
3548
  case "projects":
3450
- return /* @__PURE__ */ React41.createElement(ProjectsList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3549
+ return /* @__PURE__ */ React41.createElement(ProjectsList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3451
3550
  case "daos":
3452
- return /* @__PURE__ */ React41.createElement(DaosList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3551
+ return /* @__PURE__ */ React41.createElement(DaosList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3453
3552
  case "group_members":
3454
- return /* @__PURE__ */ React41.createElement(MembersList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3553
+ return /* @__PURE__ */ React41.createElement(MembersList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3455
3554
  case "dao_members":
3456
- return /* @__PURE__ */ React41.createElement(DaoMembersList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3555
+ return /* @__PURE__ */ React41.createElement(DaoMembersList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3457
3556
  case "validators":
3458
- return /* @__PURE__ */ React41.createElement(ValidatorsList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3557
+ return /* @__PURE__ */ React41.createElement(ValidatorsList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3459
3558
  default:
3460
3559
  return null;
3461
3560
  }
@@ -3466,7 +3565,7 @@ var ListFlowView = ({ block, editor }) => {
3466
3565
  return /* @__PURE__ */ React41.createElement(Stack27, { w: "100%" }, /* @__PURE__ */ React41.createElement(Flex19, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React41.createElement(Title4, { order: 4 }, getListNameByType(listType)), /* @__PURE__ */ React41.createElement(ActionIcon5, { variant: "subtle", size: "sm", onClick: toggle, "aria-label": opened ? "Collapse" : "Expand", title: opened ? "Collapse" : "Expand" }, opened ? /* @__PURE__ */ React41.createElement(IconChevronUp, { size: 18 }) : /* @__PURE__ */ React41.createElement(IconChevronDown, { size: 18 }))), /* @__PURE__ */ React41.createElement(Collapse, { pb: 5, px: 5, in: opened }, /* @__PURE__ */ React41.createElement(Stack27, { mih: totalPages !== 1 ? 500 : void 0, w: "100%" }, /* @__PURE__ */ React41.createElement(Flex19, { align: "center", gap: "xs" }, listSortConfig?.key && /* @__PURE__ */ React41.createElement(Flex19, { align: "center" }, /* @__PURE__ */ React41.createElement(Text27, { size: "xs" }, listSortConfig.key?.replace(/([A-Z])/g, " $1").replace(
3467
3566
  /^./,
3468
3567
  (str) => str.toUpperCase()
3469
- ), " "), /* @__PURE__ */ React41.createElement(Text27, { lh: 0.5 }, listSortConfig.direction === "asc" && /* @__PURE__ */ React41.createElement(IconArrowUp2, { size: 18 }), listSortConfig.direction === "desc" && /* @__PURE__ */ React41.createElement(IconArrowDown2, { size: 18 }))), selectionMode && /* @__PURE__ */ React41.createElement(Text27, { lh: 0.5 }, selectionMode === "single" ? "Single Selection" : "Multi Selection")), /* @__PURE__ */ React41.createElement(Flex19, { justify: "space-between" }, /* @__PURE__ */ React41.createElement(Flex19, { gap: "xs", align: "center" }, /* @__PURE__ */ React41.createElement(FilterTab, { key: "All", label: "All", isActive: !listFilterConfig?.key, onClick: () => handleFilterChange(null) }), Array.isArray(listFilterConfigOptions) && listFilterConfigOptions.length > 0 && listFilterConfigOptions.map(({ key, label, type }) => /* @__PURE__ */ React41.createElement(
3568
+ ), " "), /* @__PURE__ */ React41.createElement(Text27, { lh: 0.5 }, listSortConfig.direction === "asc" && /* @__PURE__ */ React41.createElement(IconArrowUp2, { size: 18 }), listSortConfig.direction === "desc" && /* @__PURE__ */ React41.createElement(IconArrowDown2, { size: 18 }))), isMultiSelect && /* @__PURE__ */ React41.createElement(Text27, { lh: 0.5 }, "Multi Selection")), /* @__PURE__ */ React41.createElement(Flex19, { justify: "space-between" }, /* @__PURE__ */ React41.createElement(Flex19, { gap: "xs", align: "center" }, /* @__PURE__ */ React41.createElement(FilterTab, { key: "All", label: "All", isActive: !listFilterConfig?.key, onClick: () => handleFilterChange(null) }), Array.isArray(listFilterConfigOptions) && listFilterConfigOptions.length > 0 && listFilterConfigOptions.map(({ key, label, type }) => /* @__PURE__ */ React41.createElement(
3470
3569
  FilterTab,
3471
3570
  {
3472
3571
  key: label,
@@ -3477,14 +3576,14 @@ var ListFlowView = ({ block, editor }) => {
3477
3576
  ))), /* @__PURE__ */ React41.createElement(Flex19, { gap: "xs" }, /* @__PURE__ */ React41.createElement(ActionIcon5, { variant: "subtle", size: "sm", onClick: fetchData, loading }, /* @__PURE__ */ React41.createElement(IconRefresh, { size: 18 })), editable && /* @__PURE__ */ React41.createElement(ActionIcon5, { variant: "subtle", size: "sm", onClick: openPanel }, /* @__PURE__ */ React41.createElement(IconSettings, { size: 18 })), listConfig && listSortConfigOptions && listSortConfigOptions?.length > 0 && /* @__PURE__ */ React41.createElement(
3478
3577
  ListActionsMenu,
3479
3578
  {
3480
- onSelectActionClick: (mode) => setSelectionMode(mode),
3481
- selectionMode,
3579
+ isMultiSelect,
3580
+ setIsMultiSelect,
3482
3581
  options: listSortConfigOptions,
3483
3582
  value: listSortConfig,
3484
3583
  onChange: (sortOption) => handleSortChange(sortOption),
3485
3584
  onDownloadCsv: data?.items ? () => downloadArrayAsCsv(data.items) : void 0
3486
3585
  }
3487
- ))), /* @__PURE__ */ React41.createElement(Flex19, { flex: 1 }, loading ? /* @__PURE__ */ React41.createElement(Center2, { py: "xl", w: "100%" }, /* @__PURE__ */ React41.createElement(Loader2, { size: "md", mx: "auto" })) : error ? /* @__PURE__ */ React41.createElement(Alert4, { color: "red", title: "Failed to load data", icon: /* @__PURE__ */ React41.createElement(IconAlertCircle, { size: 18 }) }, /* @__PURE__ */ React41.createElement(Stack27, { gap: "xs" }, /* @__PURE__ */ React41.createElement(Text27, { size: "sm" }, showErrorDetails ? error : "Unable to fetch list data"), /* @__PURE__ */ React41.createElement(Group8, { gap: "xs" }, /* @__PURE__ */ React41.createElement(Button5, { size: "xs", variant: "subtle", onClick: fetchData }, "Retry"), /* @__PURE__ */ React41.createElement(Button5, { size: "xs", variant: "subtle", onClick: () => setShowErrorDetails(!showErrorDetails) }, showErrorDetails ? "Hide" : "Show", " Details")))) : /* @__PURE__ */ React41.createElement(Stack27, { flex: 1 }, /* @__PURE__ */ React41.createElement(Stack27, { gap: "md" }, renderListComponent(), /* @__PURE__ */ React41.createElement(
3586
+ ))), /* @__PURE__ */ React41.createElement(Flex19, { flex: 1 }, loading ? /* @__PURE__ */ React41.createElement(Center2, { py: "xl", w: "100%" }, /* @__PURE__ */ React41.createElement(Loader2, { size: "md", mx: "auto" })) : error ? /* @__PURE__ */ React41.createElement(Alert4, { w: "100%", color: "red", title: "Failed to load data", icon: /* @__PURE__ */ React41.createElement(IconAlertCircle, { size: 18 }) }, /* @__PURE__ */ React41.createElement(Stack27, { justify: "center", align: "center", ta: "center", gap: "xs" }, /* @__PURE__ */ React41.createElement(Text27, { size: "sm" }, showErrorDetails ? error : "Unable to fetch list data"), /* @__PURE__ */ React41.createElement(Group8, { justify: "center", gap: "xs" }, /* @__PURE__ */ React41.createElement(Button5, { size: "xs", variant: "subtle", onClick: fetchData }, "Retry"), /* @__PURE__ */ React41.createElement(Button5, { size: "xs", variant: "subtle", onClick: () => setShowErrorDetails(!showErrorDetails) }, showErrorDetails ? "Hide" : "Show", " Details")))) : /* @__PURE__ */ React41.createElement(Stack27, { flex: 1 }, /* @__PURE__ */ React41.createElement(Stack27, { gap: "md" }, renderListComponent(), /* @__PURE__ */ React41.createElement(
3488
3587
  ListPagination,
3489
3588
  {
3490
3589
  page,
@@ -3545,18 +3644,18 @@ var ListBlockSpec = createReactBlockSpec2(
3545
3644
  );
3546
3645
 
3547
3646
  // src/mantine/blocks/overview/OverviewBlock.tsx
3548
- import React44, { useEffect as useEffect7, useState as useState7 } from "react";
3647
+ import React44, { useEffect as useEffect8, useState as useState8 } from "react";
3549
3648
  import { createReactBlockSpec as createReactBlockSpec3 } from "@blocknote/react";
3550
3649
  import { Stack as Stack28, Text as Text28, Box as Box17, Loader as Loader3, Alert as Alert5, Group as Group9, Accordion as Accordion2, Collapse as Collapse2 } from "@mantine/core";
3551
3650
  import { IconChevronRight, IconChevronDown as IconChevronDown2, IconFileDescription, IconWorld, IconCalendar, IconUser, IconCircleCheck } from "@tabler/icons-react";
3552
3651
  import { useDisclosure as useDisclosure2 } from "@mantine/hooks";
3553
3652
  var OverviewBlockContent = () => {
3554
3653
  const handlers = useBlocknoteHandlers();
3555
- const [domainCard, setDomainCard] = useState7(null);
3556
- const [loading, setLoading] = useState7(true);
3557
- const [error, setError] = useState7(null);
3654
+ const [domainCard, setDomainCard] = useState8(null);
3655
+ const [loading, setLoading] = useState8(true);
3656
+ const [error, setError] = useState8(null);
3558
3657
  const [detailsOpened, { toggle: toggleDetails }] = useDisclosure2(false);
3559
- useEffect7(() => {
3658
+ useEffect8(() => {
3560
3659
  const fetchDomainCard = async () => {
3561
3660
  setLoading(true);
3562
3661
  setError(null);
@@ -3690,57 +3789,6 @@ var OverviewBlock = createReactBlockSpec3(
3690
3789
  }
3691
3790
  );
3692
3791
 
3693
- // src/mantine/context/types.ts
3694
- var StakeType = {
3695
- Delegate: "delegate",
3696
- Undelegate: "undelegate",
3697
- Redelegate: "redelegate",
3698
- WithdrawDelegatorReward: "withdraw_delegator_reward"
3699
- };
3700
- var AuthzExecActionTypes = {
3701
- Delegate: "/cosmos.staking.v1beta1.MsgDelegate",
3702
- Undelegate: "/cosmos.staking.v1beta1.MsgUndelegate",
3703
- Redelegate: "/cosmos.staking.v1beta1.MsgBeginRedelegate",
3704
- ClaimRewards: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",
3705
- Custom: "custom"
3706
- };
3707
- var ValidatorActionType = /* @__PURE__ */ ((ValidatorActionType2) => {
3708
- ValidatorActionType2["CreateValidator"] = "/cosmos.staking.v1beta1.MsgCreateValidator";
3709
- ValidatorActionType2["EditValidator"] = "/cosmos.staking.v1beta1.MsgEditValidator";
3710
- ValidatorActionType2["UnjailValidator"] = "/cosmos.slashing.v1beta1.MsgUnjail";
3711
- ValidatorActionType2["WithdrawValidatorCommission"] = "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission";
3712
- return ValidatorActionType2;
3713
- })(ValidatorActionType || {});
3714
-
3715
- // src/mantine/context/hooks/useSharedProposal.ts
3716
- import { useState as useState8, useEffect as useEffect8, useCallback as useCallback11 } from "react";
3717
- var useSharedProposal = ({ proposalId, contractAddress, autoFetch = true }) => {
3718
- const { sharedProposals, fetchSharedProposal, invalidateProposal, subscribeToProposal } = useBlocknoteContext();
3719
- const [localProposal, setLocalProposal] = useState8(null);
3720
- const cacheKey = `${contractAddress}:${proposalId}`;
3721
- useEffect8(() => {
3722
- if (!proposalId || !contractAddress || !autoFetch) return;
3723
- fetchSharedProposal(proposalId, contractAddress).then(setLocalProposal).catch((error) => {
3724
- console.error("Failed to fetch proposal:", error);
3725
- });
3726
- }, [proposalId, contractAddress, fetchSharedProposal, autoFetch]);
3727
- useEffect8(() => {
3728
- const proposal = subscribeToProposal(cacheKey);
3729
- if (proposal) {
3730
- setLocalProposal(proposal);
3731
- }
3732
- }, [subscribeToProposal, cacheKey]);
3733
- const refetch = useCallback11(() => fetchSharedProposal(proposalId, contractAddress, true), [fetchSharedProposal, proposalId, contractAddress]);
3734
- const invalidate = useCallback11(() => invalidateProposal(proposalId), [invalidateProposal, proposalId]);
3735
- return {
3736
- proposal: localProposal,
3737
- loading: sharedProposals[cacheKey]?.loading ?? false,
3738
- error: sharedProposals[cacheKey]?.error,
3739
- refetch,
3740
- invalidate
3741
- };
3742
- };
3743
-
3744
3792
  // src/mantine/blocks/proposal/ProposalBlockSpec.tsx
3745
3793
  import React88 from "react";
3746
3794
  import { createReactBlockSpec as createReactBlockSpec4 } from "@blocknote/react";
@@ -13922,11 +13970,11 @@ export {
13922
13970
  useBlocknoteContext,
13923
13971
  useBlocknoteHandlers,
13924
13972
  CheckboxBlockSpec,
13925
- ListBlockSpec,
13926
- OverviewBlock,
13927
13973
  StakeType,
13928
13974
  AuthzExecActionTypes,
13929
13975
  ValidatorActionType,
13976
+ ListBlockSpec,
13977
+ OverviewBlock,
13930
13978
  ProposalBlockSpec,
13931
13979
  ApiRequestBlockSpec,
13932
13980
  blockSpecs,
@@ -13939,4 +13987,4 @@ export {
13939
13987
  ixoGraphQLClient,
13940
13988
  getEntity
13941
13989
  };
13942
- //# sourceMappingURL=chunk-OHIKNFEH.mjs.map
13990
+ //# sourceMappingURL=chunk-GGIZAV43.mjs.map