@ixo/editor 1.24.0 → 1.26.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
@@ -1406,7 +1457,12 @@ var linkedResourcesSelectionPanelConfig = {
1406
1457
  image: (item) => item.image,
1407
1458
  title: (item) => item.title || "Linked Resource",
1408
1459
  description: (item) => item.description || "No description",
1409
- prompts: (item) => [{ text: `ID: ${item.id}` }, { text: `Encrypted: ${item.encrypted ? "Yes" : "No"}` }, { text: `Service Endpoint: ${item.serviceEndpoint}` }],
1460
+ prompts: (item) => [
1461
+ { text: `What kind of resource is ${item.title}?` },
1462
+ { text: `How can I access resource ${item.title}?` },
1463
+ { text: `Is ${item.title} resource public or private?` },
1464
+ { text: `What information does ${item.title} resource provide?` }
1465
+ ],
1410
1466
  actionSections: (item) => item.actionSections,
1411
1467
  detailsHandlerKey: "getLinkedResourceDetails"
1412
1468
  };
@@ -1459,7 +1515,7 @@ var assetsSelectionPanelConfig = {
1459
1515
  image: (item) => item.image,
1460
1516
  title: (item) => item.name || "Unnamed Asset",
1461
1517
  description: (item) => item.description || "No description",
1462
- prompts: () => [{ text: `How many assets are available?` }, { text: `What are carbon credits` }],
1518
+ prompts: () => [{ text: `How many assets are available?` }, { text: `What are carbon credits?` }],
1463
1519
  actionSections: (item) => item.actionSections,
1464
1520
  detailsHandlerKey: "getAssetDetails"
1465
1521
  };
@@ -1491,7 +1547,7 @@ var transactionsSortFields = [
1491
1547
  var transactionsSelectionPanelConfig = {
1492
1548
  title: (item) => item.typeUrl || "Transaction",
1493
1549
  description: (item) => item.description || "No description",
1494
- prompts: (item) => [{ text: `Hash: ${item.transactionHash}` }, { text: `Type: ${item.typeUrl}` }],
1550
+ prompts: (item) => [{ text: `What is the purpose of ${item.transactionHash}?` }, { text: `Explain the transaction of type ${item.typeUrl}.` }],
1495
1551
  actionSections: (item) => item.actionSections,
1496
1552
  detailsHandlerKey: "getTransactionDetails"
1497
1553
  };
@@ -1529,7 +1585,7 @@ var collectionsSelectionPanelConfig = {
1529
1585
  image: (item) => item.image,
1530
1586
  title: (item) => item.name || "Unnamed Collection",
1531
1587
  description: (item) => item.description || "No description",
1532
- prompts: (item) => [{ text: `DID: ${item.did}` }, { text: `Type: ${item.type}` }],
1588
+ prompts: () => [{ text: `What is the purpose of this collection?` }, { text: `How is this collection different from others in the registry?` }],
1533
1589
  actionSections: (item) => item.actionSections,
1534
1590
  detailsHandlerKey: "getCollectionDetails"
1535
1591
  };
@@ -1568,10 +1624,13 @@ var investmentsSelectionPanelConfig = {
1568
1624
  title: (item) => item.name || "Investment Opportunity",
1569
1625
  image: (item) => item.image,
1570
1626
  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"}` }
1627
+ prompts: () => [
1628
+ { text: `What is the purpose of this investment opportunity?` },
1629
+ { text: `How is this investment opportunity different from others in the registry?` },
1630
+ { text: `What is the current amount of this investment opportunity?` },
1631
+ { text: `What is the max amount of this investment opportunity?` },
1632
+ { text: `What is the status of this investment opportunity?` },
1633
+ { text: `What is the name of this investment opportunity?` }
1575
1634
  ],
1576
1635
  actionSections: (item) => item.actionSections,
1577
1636
  detailsHandlerKey: "getInvestmentDetails"
@@ -1611,7 +1670,11 @@ var oraclesSelectionPanelConfig = {
1611
1670
  title: (item) => item.name || "Oracle",
1612
1671
  image: (item) => item.image,
1613
1672
  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"}` }],
1673
+ prompts: () => [
1674
+ { text: `What tasks can this oracle assist with?` },
1675
+ { text: `How is this oracle different from others in the registry?` },
1676
+ { text: `What kinds of data or knowledge does this oracle specialize in?` }
1677
+ ],
1615
1678
  actionSections: (item) => item.actionSections,
1616
1679
  detailsHandlerKey: "getOracleDetails"
1617
1680
  };
@@ -1648,7 +1711,7 @@ var podsSelectionPanelConfig = {
1648
1711
  image: (item) => item.image,
1649
1712
  title: (item) => item.name || "POD",
1650
1713
  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"}` }],
1714
+ prompts: () => [{ text: `What are the pods?` }, { text: `How to join a pod?` }],
1652
1715
  actionSections: (item) => item.actionSections,
1653
1716
  detailsHandlerKey: "getPODDetails"
1654
1717
  };
@@ -1682,7 +1745,7 @@ var proposalsSelectionPanelConfig = {
1682
1745
  image: (item) => item.image,
1683
1746
  title: (item) => item.name || "Proposal",
1684
1747
  description: (item) => item.description || "No description",
1685
- prompts: (item) => [{ text: `DID: ${item.did}` }, { text: `Status: ${item.status}` }],
1748
+ prompts: () => [{ text: `What is the purpose of this proposal?` }, { text: `How is this proposal different from others in the registry?` }],
1686
1749
  actionSections: (item) => item.actionSections,
1687
1750
  detailsHandlerKey: "getProposalDetails"
1688
1751
  };
@@ -1718,7 +1781,7 @@ var requestsSelectionPanelConfig = {
1718
1781
  image: (item) => item.image,
1719
1782
  title: (item) => item.name || "Request",
1720
1783
  description: (item) => item.description || "No description",
1721
- prompts: (item) => [{ text: `Total Applications: ${item.totalApplications}` }, { text: `Member: ${item.isMember ? "Yes" : "No"}` }, { text: `DID: ${item.did}` }],
1784
+ prompts: () => [{ text: `What is the purpose of this request?` }, { text: `How is this request different from others in the registry?` }],
1722
1785
  actionSections: (item) => item.actionSections,
1723
1786
  detailsHandlerKey: "getRequestDetails"
1724
1787
  };
@@ -1763,7 +1826,7 @@ var groupMembersSelectionPanelConfig = {
1763
1826
  image: (item) => item.image,
1764
1827
  title: (item) => item.username || "Unknown Member",
1765
1828
  description: (item) => item.description || "No description",
1766
- prompts: (item) => [{ text: `Address: ${item.address}` }, { text: `DID: ${item.did}` }],
1829
+ prompts: () => [{ text: `What are the dao dao groups?` }, { text: `How to join a dao group?` }],
1767
1830
  actionSections: (item) => item.actionSections,
1768
1831
  detailsHandlerKey: "getMemberDetails"
1769
1832
  };
@@ -1798,10 +1861,10 @@ var validatorsHandlerKey = "getValidators";
1798
1861
  var validatorsSelectionPanelConfig = {
1799
1862
  title: (item) => item.name || "Unknown Validator",
1800
1863
  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"}` }
1864
+ prompts: () => [
1865
+ { text: `What is the status of this validator?` },
1866
+ { text: `What is the staked amount of this validator?` },
1867
+ { text: `What is the bonding amount of this validator?` }
1805
1868
  ],
1806
1869
  actionSections: (item) => item.actionSections,
1807
1870
  detailsHandlerKey: "getValidatorDetails"
@@ -1847,7 +1910,7 @@ var daoMembersSelectionPanelConfig = {
1847
1910
  image: (item) => item.image,
1848
1911
  title: (item) => item.username || "Unknown Member",
1849
1912
  description: (item) => item.description || "No description",
1850
- prompts: (item) => [{ text: `Address: ${item.address}` }, { text: `DID: ${item.did}` }],
1913
+ prompts: (item) => [{ text: `What is the DAO member ${item.username} doing?` }, { text: `What is the role of dao members?` }],
1851
1914
  actionSections: (item) => item.actionSections,
1852
1915
  detailsHandlerKey: "getDaoMemberDetails"
1853
1916
  };
@@ -1875,7 +1938,7 @@ var projectsSelectionPanelConfig = {
1875
1938
  image: (item) => item.image,
1876
1939
  title: (item) => item.name || "Project",
1877
1940
  description: (item) => item.description || "No description",
1878
- prompts: (item) => [{ text: `DID: ${item.did}` }, { text: `Type: ${item.type}` }],
1941
+ prompts: () => [{ text: `What are the projects?` }, { text: `How to join a project?` }],
1879
1942
  actionSections: (item) => item.actionSections,
1880
1943
  detailsHandlerKey: "getProjectDetails"
1881
1944
  };
@@ -1903,7 +1966,7 @@ var daosSelectionPanelConfig = {
1903
1966
  title: (item) => item.name || "Dao",
1904
1967
  image: (item) => item.image,
1905
1968
  description: (item) => item.description || "No description",
1906
- prompts: (item) => [{ text: `DID: ${item.did}` }, { text: `Type: ${item.type}` }],
1969
+ prompts: () => [{ text: `What is the purpose of this DAO?` }, { text: `How is this DAO different from others in the registry?` }],
1907
1970
  actionSections: (item) => item.actionSections,
1908
1971
  detailsHandlerKey: "getDaoDetails"
1909
1972
  };
@@ -1938,7 +2001,7 @@ var balancesSelectionPanelConfig = {
1938
2001
  title: (item) => item.tokenName || "Unnamed Token",
1939
2002
  image: (item) => item.tokenImage,
1940
2003
  description: (item) => item.description || "No description",
1941
- prompts: (item) => [{ text: `Amount: ${item.amount}` }, { text: `USD Amount: ${item.usdAmount}` }],
2004
+ prompts: () => [{ text: `What are the balances of this address?` }, { text: `How to get the balances of an address?` }],
1942
2005
  actionSections: (item) => item.actionSections,
1943
2006
  detailsHandlerKey: "getBalanceDetails"
1944
2007
  };
@@ -2084,11 +2147,11 @@ var listTypesWithAddresses = ["transactions"];
2084
2147
 
2085
2148
  // src/mantine/blocks/list/template/GeneralTab.tsx
2086
2149
  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");
2150
+ const [selectedType, setSelectedType] = useState5(initialConfig?.type || null);
2151
+ const [config, setConfig] = useState5(initialConfig?.config || {});
2152
+ const [sortConfig, setSortConfig] = useState5(initialConfig?.sortOptions || {});
2153
+ const [filterConfig, setFilterConfig] = useState5(initialConfig?.filterOptions || {});
2154
+ const [accordionValue, setAccordionValue] = useState5(initialConfig ? "configure" : "type");
2092
2155
  const handlers = useBlocknoteHandlers();
2093
2156
  const listTypes = getAllListTypes();
2094
2157
  const handleTypeSelect = (type) => {
@@ -2269,7 +2332,7 @@ var GeneralTab2 = ({ initialConfig, onSave }) => {
2269
2332
  // src/mantine/blocks/list/template/TemplateConfig.tsx
2270
2333
  var TemplateConfig2 = ({ editor, block }) => {
2271
2334
  const { closePanel } = usePanelStore();
2272
- const handleConfigSave = useCallback8(
2335
+ const handleConfigSave = useCallback9(
2273
2336
  (config) => {
2274
2337
  editor.updateBlock(block, {
2275
2338
  props: {
@@ -2360,7 +2423,7 @@ var ListTemplateView = ({ editor, block }) => {
2360
2423
  };
2361
2424
 
2362
2425
  // src/mantine/blocks/list/flow/ListFlowView.tsx
2363
- import React41, { useState as useState6, useEffect as useEffect6, useMemo as useMemo9, useCallback as useCallback10 } from "react";
2426
+ import React41, { useState as useState7, useEffect as useEffect7, useMemo as useMemo9, useCallback as useCallback11 } from "react";
2364
2427
  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
2428
 
2366
2429
  // src/mantine/blocks/list/linked_resources/LinkedResourcesList.tsx
@@ -2402,8 +2465,18 @@ function getMediaTypeIcon(mediaType, props = {}) {
2402
2465
  // src/mantine/blocks/list/ListItemContainer.tsx
2403
2466
  import { Flex as Flex2 } from "@mantine/core";
2404
2467
  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);
2468
+ function ListItemContainer({ children, onClick, isChecked }) {
2469
+ return /* @__PURE__ */ React18.createElement(
2470
+ Flex2,
2471
+ {
2472
+ onClick,
2473
+ styles: { root: { borderRadius: 16, border: isChecked ? `1px solid rgb(0, 255, 157)` : `1px solid rgba(255, 255, 255, 0.06)` } },
2474
+ p: 20,
2475
+ bg: "rgba(255, 255, 255, 0.02)",
2476
+ justify: "space-between"
2477
+ },
2478
+ children
2479
+ );
2407
2480
  }
2408
2481
 
2409
2482
  // src/mantine/blocks/list/ListItemCheckbox.tsx
@@ -2429,13 +2502,15 @@ function ListItemCheckbox({ checked, onCheck, ariaLabel }) {
2429
2502
  }
2430
2503
 
2431
2504
  // src/mantine/blocks/list/linked_resources/LinkedResourcesList.tsx
2432
- var LinkedResourcesList = ({ items, mods, isItemChecked, onItemCheck, config: _config }) => {
2505
+ var LinkedResourcesList = ({ items, isMultiSelect, isItemChecked, onItemCheck, config: _config }) => {
2433
2506
  if (!items || items.length === 0) {
2434
2507
  return /* @__PURE__ */ React20.createElement(Text8, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No linked resources found");
2435
2508
  }
2436
2509
  const rows = items.map((item, index) => {
2510
+ console.log(item);
2437
2511
  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(
2512
+ const isChecked = isItemChecked?.(item.id);
2513
+ 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
2514
  Box2,
2440
2515
  {
2441
2516
  style: {
@@ -2450,7 +2525,7 @@ var LinkedResourcesList = ({ items, mods, isItemChecked, onItemCheck, config: _c
2450
2525
  }
2451
2526
  },
2452
2527
  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(
2528
+ ), /* @__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
2529
  ListItemCheckbox,
2455
2530
  {
2456
2531
  ariaLabel: `Select resource ${item.id}`,
@@ -2478,11 +2553,14 @@ function shortStr(str, threshold = 30, saveSymbolsAtTheEnd = 10, insert = "...")
2478
2553
  }
2479
2554
 
2480
2555
  // src/mantine/blocks/list/assets/AssetsList.tsx
2481
- var AssetsList = ({ items, mods, isItemChecked, onItemCheck }) => {
2556
+ var AssetsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2482
2557
  if (!items || items.length === 0) {
2483
2558
  return /* @__PURE__ */ React21.createElement(Text9, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No assets found");
2484
2559
  }
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) }))));
2560
+ const rows = items.map((asset) => {
2561
+ const isChecked = isItemChecked?.(asset.did);
2562
+ 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) })));
2563
+ });
2486
2564
  return /* @__PURE__ */ React21.createElement(Box3, { flex: 1 }, /* @__PURE__ */ React21.createElement(Stack11, null, rows));
2487
2565
  };
2488
2566
 
@@ -2498,39 +2576,38 @@ var formatTime = (timeStr) => {
2498
2576
  }
2499
2577
  };
2500
2578
  var truncateHash = (hash, length = 8) => {
2501
- if (hash.length <= length * 2) return hash;
2502
- return `${hash.slice(0, length)}...${hash.slice(-length)}`;
2579
+ if (hash && hash.length <= length * 2) return hash;
2580
+ return `${hash?.slice(0, length)}...${hash?.slice(-length)}`;
2503
2581
  };
2504
- var TransactionsList = ({ items, mods, isItemChecked, onItemCheck, config: _config }) => {
2582
+ var TransactionsList = ({ items, isMultiSelect, isItemChecked, onItemCheck, config: _config }) => {
2505
2583
  if (!items || items.length === 0) {
2506
2584
  return /* @__PURE__ */ React22.createElement(Text10, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No transactions found");
2507
2585
  }
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
- ))));
2586
+ const rows = items.map((transaction) => {
2587
+ const isChecked = isItemChecked?.(transaction.transactionHash);
2588
+ 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(
2589
+ ListItemCheckbox,
2590
+ {
2591
+ ariaLabel: `Select transaction ${transaction.transactionHash}`,
2592
+ checked: isItemChecked?.(transaction.transactionHash),
2593
+ onCheck: (checked) => onItemCheck?.(transaction.transactionHash, checked)
2594
+ }
2595
+ )));
2596
+ });
2516
2597
  return /* @__PURE__ */ React22.createElement(Box4, { flex: 1 }, /* @__PURE__ */ React22.createElement(Stack12, null, rows));
2517
2598
  };
2518
2599
 
2519
2600
  // src/mantine/blocks/list/collections/CollectionsList.tsx
2520
2601
  import React23 from "react";
2521
2602
  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 }) => {
2603
+ var CollectionsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2523
2604
  if (!items || items.length === 0) {
2524
2605
  return /* @__PURE__ */ React23.createElement(Text11, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No collections found");
2525
2606
  }
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
- ))));
2607
+ const rows = items.map((item) => {
2608
+ const isChecked = isItemChecked?.(item.did);
2609
+ 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) })));
2610
+ });
2534
2611
  return /* @__PURE__ */ React23.createElement(Box5, { flex: 1 }, /* @__PURE__ */ React23.createElement(Stack13, null, rows));
2535
2612
  };
2536
2613
 
@@ -2565,84 +2642,98 @@ function renderNumber(value) {
2565
2642
  }
2566
2643
 
2567
2644
  // src/mantine/blocks/list/balances/BalancesList.tsx
2568
- var BalancesList = ({ items, mods, isItemChecked, onItemCheck }) => {
2645
+ var BalancesList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2569
2646
  if (!items || items.length === 0) {
2570
2647
  return /* @__PURE__ */ React24.createElement(Text12, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No balances found");
2571
2648
  }
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) }))));
2649
+ const rows = items.map((item) => {
2650
+ const isChecked = isItemChecked?.(item.denom);
2651
+ 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) })));
2652
+ });
2573
2653
  return /* @__PURE__ */ React24.createElement(Box6, { flex: 1 }, /* @__PURE__ */ React24.createElement(Stack14, null, rows));
2574
2654
  };
2575
2655
 
2576
2656
  // src/mantine/blocks/list/investments/InvestmentsList.tsx
2577
2657
  import React25 from "react";
2578
2658
  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 }) => {
2659
+ var InvestmentsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2580
2660
  if (!items || items.length === 0) {
2581
2661
  return /* @__PURE__ */ React25.createElement(Text13, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No investments found");
2582
2662
  }
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
- ))));
2663
+ const rows = items.map((item) => {
2664
+ const isChecked = isItemChecked?.(item.did);
2665
+ 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) })));
2666
+ });
2591
2667
  return /* @__PURE__ */ React25.createElement(Box7, { flex: 1 }, /* @__PURE__ */ React25.createElement(Stack15, null, rows));
2592
2668
  };
2593
2669
 
2594
2670
  // src/mantine/blocks/list/oracles/OraclesList.tsx
2595
2671
  import React26 from "react";
2596
2672
  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 }) => {
2673
+ var OraclesList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2598
2674
  if (!items || items.length === 0) {
2599
2675
  return /* @__PURE__ */ React26.createElement(Text14, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No oracles found");
2600
2676
  }
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) }))));
2677
+ const rows = items.map((item) => {
2678
+ const isChecked = isItemChecked?.(item.did);
2679
+ 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) })));
2680
+ });
2602
2681
  return /* @__PURE__ */ React26.createElement(Box8, { flex: 1 }, /* @__PURE__ */ React26.createElement(Stack16, null, rows));
2603
2682
  };
2604
2683
 
2605
2684
  // src/mantine/blocks/list/pods/PODsList.tsx
2606
2685
  import React27 from "react";
2607
2686
  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 }) => {
2687
+ var PodsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2609
2688
  if (!items || items.length === 0) {
2610
2689
  return /* @__PURE__ */ React27.createElement(Text15, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No PODs found");
2611
2690
  }
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) }))));
2691
+ const rows = items.map((item) => {
2692
+ const isChecked = isItemChecked?.(item.did);
2693
+ 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) })));
2694
+ });
2613
2695
  return /* @__PURE__ */ React27.createElement(Box9, { flex: 1 }, /* @__PURE__ */ React27.createElement(Stack17, null, rows));
2614
2696
  };
2615
2697
 
2616
2698
  // src/mantine/blocks/list/proposals/ProposalsList.tsx
2617
2699
  import React28 from "react";
2618
2700
  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 }) => {
2701
+ var ProposalsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2620
2702
  if (!items || items.length === 0) {
2621
2703
  return /* @__PURE__ */ React28.createElement(Text16, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No proposals found");
2622
2704
  }
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) }))));
2705
+ const rows = items.map((item) => {
2706
+ const isChecked = isItemChecked?.(item.did);
2707
+ 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) })));
2708
+ });
2624
2709
  return /* @__PURE__ */ React28.createElement(Box10, { flex: 1 }, /* @__PURE__ */ React28.createElement(Stack18, null, rows));
2625
2710
  };
2626
2711
 
2627
2712
  // src/mantine/blocks/list/requests/RequestsList.tsx
2628
2713
  import React29 from "react";
2629
2714
  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 }) => {
2715
+ var RequestsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2631
2716
  if (!items || items.length === 0) {
2632
2717
  return /* @__PURE__ */ React29.createElement(Text17, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No requests found");
2633
2718
  }
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) }))));
2719
+ const rows = items.map((item) => {
2720
+ const isChecked = isItemChecked?.(item.did);
2721
+ 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) })));
2722
+ });
2635
2723
  return /* @__PURE__ */ React29.createElement(Box11, { flex: 1 }, /* @__PURE__ */ React29.createElement(Stack19, null, rows));
2636
2724
  };
2637
2725
 
2638
2726
  // src/mantine/blocks/list/members/MembersList.tsx
2639
2727
  import React30 from "react";
2640
2728
  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 }) => {
2729
+ var MembersList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2642
2730
  if (!items || items.length === 0) {
2643
2731
  return /* @__PURE__ */ React30.createElement(Text18, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No members found");
2644
2732
  }
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) }))));
2733
+ const rows = items.map((item) => {
2734
+ const isChecked = isItemChecked?.(item.did);
2735
+ 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) })));
2736
+ });
2646
2737
  return /* @__PURE__ */ React30.createElement(Box12, { flex: 1 }, /* @__PURE__ */ React30.createElement(Stack20, null, rows));
2647
2738
  };
2648
2739
 
@@ -2655,11 +2746,14 @@ var getDelegatedTokensFromValidator = (validator) => Number(validator?.amount ??
2655
2746
  var getDisplayDelegatedTokensFromValidator = (validator) => microAmountToAmount(getDelegatedTokensFromValidator(validator), 6);
2656
2747
 
2657
2748
  // src/mantine/blocks/list/validators/ValidatorsList.tsx
2658
- var ValidatorsList = ({ items, mods, isItemChecked, onItemCheck }) => {
2749
+ var ValidatorsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2659
2750
  if (!items || items.length === 0) {
2660
2751
  return /* @__PURE__ */ React31.createElement(Text19, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No validators found");
2661
2752
  }
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) }))));
2753
+ const rows = items.map((item) => {
2754
+ const isChecked = isItemChecked?.(item.did);
2755
+ 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) })));
2756
+ });
2663
2757
  return /* @__PURE__ */ React31.createElement(Box13, { flex: 1 }, /* @__PURE__ */ React31.createElement(Stack21, null, rows));
2664
2758
  };
2665
2759
 
@@ -2667,7 +2761,7 @@ var ValidatorsList = ({ items, mods, isItemChecked, onItemCheck }) => {
2667
2761
  import React32 from "react";
2668
2762
  import { Menu, Text as Text20, ActionIcon as ActionIcon4 } from "@mantine/core";
2669
2763
  import { IconArrowDown, IconArrowUp, IconAdjustments, IconCheckbox as IconCheckbox2, IconAdjustmentsHorizontal, IconDownload } from "@tabler/icons-react";
2670
- var ListActionsMenu = ({ options, selectionMode, onSelectActionClick, value, onChange, onDownloadCsv }) => {
2764
+ var ListActionsMenu = ({ options, isMultiSelect, setIsMultiSelect, value, onChange, onDownloadCsv }) => {
2671
2765
  const renderItem = (opt, direction) => {
2672
2766
  const isActive = value?.key === opt.key && value?.direction === direction;
2673
2767
  const Icon = direction === "asc" ? IconArrowUp : IconArrowDown;
@@ -2713,7 +2807,7 @@ var ListActionsMenu = ({ options, selectionMode, onSelectActionClick, value, onC
2713
2807
  }
2714
2808
  },
2715
2809
  /* @__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")))
2810
+ /* @__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
2811
  );
2718
2812
  };
2719
2813
 
@@ -2823,23 +2917,26 @@ var DEFAULT_PAGE_SIZE = 5;
2823
2917
  // src/mantine/blocks/list/dao_members/MembersList.tsx
2824
2918
  import React35 from "react";
2825
2919
  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 }) => {
2920
+ var DaoMembersList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
2827
2921
  if (!items || items.length === 0) {
2828
2922
  return /* @__PURE__ */ React35.createElement(Text22, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No members found");
2829
2923
  }
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
- ))));
2924
+ const rows = items.map((item) => {
2925
+ const isChecked = isItemChecked?.(item.did);
2926
+ 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(
2927
+ ListItemCheckbox,
2928
+ {
2929
+ ariaLabel: `Select member ${item.username || item.did}`,
2930
+ checked: isItemChecked?.(item.did) || false,
2931
+ onCheck: (checked) => onItemCheck?.(item.did, checked)
2932
+ }
2933
+ )));
2934
+ });
2838
2935
  return /* @__PURE__ */ React35.createElement(Box14, { flex: 1 }, /* @__PURE__ */ React35.createElement(Stack22, { gap: "xs" }, rows));
2839
2936
  };
2840
2937
 
2841
2938
  // src/mantine/blocks/list/ListSelectionPanel.tsx
2842
- import React37, { useState as useState5, useEffect as useEffect5, useMemo as useMemo7 } from "react";
2939
+ import React37, { useState as useState6, useEffect as useEffect6, useMemo as useMemo7 } from "react";
2843
2940
  import { Paper as Paper4, CloseButton as CloseButton3, Stack as Stack24, Alert as Alert3, Text as Text24, Loader, Center } from "@mantine/core";
2844
2941
 
2845
2942
  // src/mantine/blocks/list/components/SelectionPanelContent.tsx
@@ -2850,12 +2947,13 @@ import { IconArrowRight, IconTarget } from "@tabler/icons-react";
2850
2947
  var SelectionPanelHeader = ({ title, description }) => {
2851
2948
  return /* @__PURE__ */ React36.createElement(Stack23, { gap: "xs" }, /* @__PURE__ */ React36.createElement(Title3, { fw: 400, order: 3 }, title), /* @__PURE__ */ React36.createElement(Text23, { c: "dimmed" }, description));
2852
2949
  };
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 }));
2950
+ var SelectionPromptItem = ({ prompt, onClick }) => {
2951
+ 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
2952
  };
2856
2953
  var SelectionPrompts = ({ prompts }) => {
2954
+ const handlers = useBlocknoteHandlers();
2857
2955
  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 })));
2956
+ return /* @__PURE__ */ React36.createElement(Stack23, { gap: "xs" }, prompts.map((prompt, index) => /* @__PURE__ */ React36.createElement(SelectionPromptItem, { onClick: () => handlers.askCompanion(prompt.text), key: index, prompt })));
2859
2957
  };
2860
2958
  var SelectionActionButton = ({ action, itemId, itemData }) => {
2861
2959
  const { hovered, ref } = useHover();
@@ -2896,9 +2994,9 @@ var SelectionPanelEmpty = ({ message = "No item selected" }) => {
2896
2994
  var ListSelectionPanel = ({ selectedIds, listType }) => {
2897
2995
  const { closePanel } = usePanelStore();
2898
2996
  const handlers = useBlocknoteHandlers();
2899
- const [itemData, setItemData] = useState5(null);
2900
- const [loading, setLoading] = useState5(false);
2901
- const [error, setError] = useState5(null);
2997
+ const [itemData, setItemData] = useState6(null);
2998
+ const [loading, setLoading] = useState6(false);
2999
+ const [error, setError] = useState6(null);
2902
3000
  const selectedItemId = useMemo7(() => {
2903
3001
  if (selectedIds.size === 0) return null;
2904
3002
  const idsArray = Array.from(selectedIds);
@@ -2908,7 +3006,7 @@ var ListSelectionPanel = ({ selectedIds, listType }) => {
2908
3006
  if (!listType) return null;
2909
3007
  return getSelectionPanelConfig(listType);
2910
3008
  }, [listType]);
2911
- useEffect5(() => {
3009
+ useEffect6(() => {
2912
3010
  const fetchItemDetails = async () => {
2913
3011
  if (!selectedItemId || !listType || !handlers || !panelConfig) {
2914
3012
  setItemData(null);
@@ -3033,22 +3131,28 @@ var ListSelectionPanel = ({ selectedIds, listType }) => {
3033
3131
  // src/mantine/blocks/list/projects/ProjectsList.tsx
3034
3132
  import React38 from "react";
3035
3133
  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 }) => {
3134
+ var ProjectsList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3037
3135
  if (!items || items.length === 0) {
3038
3136
  return /* @__PURE__ */ React38.createElement(Text25, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No Projects found");
3039
3137
  }
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) }))));
3138
+ const rows = items.map((item) => {
3139
+ const isChecked = isItemChecked?.(item.did);
3140
+ 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) })));
3141
+ });
3041
3142
  return /* @__PURE__ */ React38.createElement(Box15, { flex: 1 }, /* @__PURE__ */ React38.createElement(Stack25, null, rows));
3042
3143
  };
3043
3144
 
3044
3145
  // src/mantine/blocks/list/daos/DaosList.tsx
3045
3146
  import React39 from "react";
3046
3147
  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 }) => {
3148
+ var DaosList = ({ items, isMultiSelect, isItemChecked, onItemCheck }) => {
3048
3149
  if (!items || items.length === 0) {
3049
3150
  return /* @__PURE__ */ React39.createElement(Text26, { size: "sm", c: "dimmed", ta: "center", py: "md" }, "No Daos found");
3050
3151
  }
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) }))));
3152
+ const rows = items.map((item) => {
3153
+ const isChecked = isItemChecked?.(item.did);
3154
+ 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) })));
3155
+ });
3052
3156
  return /* @__PURE__ */ React39.createElement(Box16, { flex: 1 }, /* @__PURE__ */ React39.createElement(Stack26, null, rows));
3053
3157
  };
3054
3158
 
@@ -3113,17 +3217,17 @@ function downloadArrayAsCsv(rows, options) {
3113
3217
  import { useDisclosure } from "@mantine/hooks";
3114
3218
 
3115
3219
  // 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";
3220
+ import React40, { createContext as createContext2, useCallback as useCallback10, useContext as useContext2, useMemo as useMemo8, useRef as useRef3 } from "react";
3117
3221
  var ListBlocksUIContext = createContext2(null);
3118
3222
  var ListBlocksUIProvider = ({ children }) => {
3119
3223
  const listenersRef = useRef3(/* @__PURE__ */ new Set());
3120
- const subscribe = useCallback9((listener) => {
3224
+ const subscribe = useCallback10((listener) => {
3121
3225
  listenersRef.current.add(listener);
3122
3226
  return () => {
3123
3227
  listenersRef.current.delete(listener);
3124
3228
  };
3125
3229
  }, []);
3126
- const broadcastCollapse = useCallback9((event) => {
3230
+ const broadcastCollapse = useCallback10((event) => {
3127
3231
  listenersRef.current.forEach((listener) => listener(event));
3128
3232
  }, []);
3129
3233
  const value = useMemo8(() => ({ broadcastCollapse, subscribe }), [broadcastCollapse, subscribe]);
@@ -3142,15 +3246,15 @@ var LIST_FLOW_PANEL_ID = "list-flow-panel";
3142
3246
  var LIST_SELECTION_FLOW_PANEL_ID = "list-selection-flow-panel";
3143
3247
  var ListFlowView = ({ block, editor }) => {
3144
3248
  const { editable } = useBlocknoteContext();
3145
- const [data, setData] = useState6(null);
3146
- const [loading, setLoading] = useState6(false);
3249
+ const [data, setData] = useState7(null);
3250
+ const [loading, setLoading] = useState7(false);
3147
3251
  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());
3252
+ const [error, setError] = useState7(null);
3253
+ const [showErrorDetails, setShowErrorDetails] = useState7(false);
3254
+ const [page, setPage] = useState7(1);
3255
+ const [isMultiSelect, setIsMultiSelect] = useState7(false);
3256
+ const [totalPages, setTotalPages] = useState7(0);
3257
+ const [selectedIds, setSelectedIds] = useState7(/* @__PURE__ */ new Set());
3154
3258
  const panelId = `${LIST_FLOW_PANEL_ID}-${block.id}`;
3155
3259
  const panelContent = useMemo9(() => /* @__PURE__ */ React41.createElement(TemplateConfig2, { editor, block }), [editor, block]);
3156
3260
  const { open: openPanel } = usePanel(panelId, panelContent);
@@ -3163,24 +3267,24 @@ var ListFlowView = ({ block, editor }) => {
3163
3267
  [editor, block, selectedIds, listType]
3164
3268
  );
3165
3269
  const { open: openSelectionPanel, close: closeSelectionPanel } = usePanel(selectionPanelId, selectionPanelContent);
3166
- useEffect6(() => {
3167
- if (selectionMode === "single" && selectedIds.size > 1) {
3270
+ useEffect7(() => {
3271
+ if (!isMultiSelect && selectedIds.size > 1) {
3168
3272
  const arr = Array.from(selectedIds);
3169
3273
  const lastSelected = arr.length > 0 ? arr[arr.length - 1] : void 0;
3170
3274
  setSelectedIds(new Set(lastSelected ? [lastSelected] : []));
3171
3275
  }
3172
- }, [selectionMode, selectedIds]);
3173
- const isItemChecked = useCallback10(
3276
+ }, [isMultiSelect, selectedIds]);
3277
+ const isItemChecked = useCallback11(
3174
3278
  (id) => {
3175
3279
  return selectedIds.has(id);
3176
3280
  },
3177
3281
  [selectedIds]
3178
3282
  );
3179
- const onItemCheck = useCallback10(
3283
+ const onItemCheck = useCallback11(
3180
3284
  (id, checked) => {
3181
3285
  setSelectedIds((prev) => {
3182
3286
  const nextSelectedIds = new Set(prev);
3183
- if (selectionMode === "single") {
3287
+ if (!isMultiSelect) {
3184
3288
  if (checked) {
3185
3289
  openSelectionPanel();
3186
3290
  return /* @__PURE__ */ new Set([id]);
@@ -3201,7 +3305,7 @@ var ListFlowView = ({ block, editor }) => {
3201
3305
  return nextSelectedIds;
3202
3306
  });
3203
3307
  },
3204
- [selectionMode]
3308
+ [isMultiSelect]
3205
3309
  );
3206
3310
  const listConfig = useMemo9(() => {
3207
3311
  if (block.props.listConfig && block.props.listConfig !== "{}") {
@@ -3258,7 +3362,7 @@ var ListFlowView = ({ block, editor }) => {
3258
3362
  }
3259
3363
  return {};
3260
3364
  }, [block.props.sort]);
3261
- useEffect6(() => {
3365
+ useEffect7(() => {
3262
3366
  const unsubscribe = subscribe((event) => {
3263
3367
  if (event === "collapse") close();
3264
3368
  else if (event === "expand") open();
@@ -3274,7 +3378,7 @@ var ListFlowView = ({ block, editor }) => {
3274
3378
  }
3275
3379
  });
3276
3380
  };
3277
- const fetchData = useCallback10(async () => {
3381
+ const fetchData = useCallback11(async () => {
3278
3382
  if (!handlers || !listType || !listConfig) return;
3279
3383
  setLoading(true);
3280
3384
  setError(null);
@@ -3397,7 +3501,7 @@ var ListFlowView = ({ block, editor }) => {
3397
3501
  setLoading(false);
3398
3502
  }
3399
3503
  }, [handlers, page, listType, listConfig]);
3400
- useEffect6(() => {
3504
+ useEffect7(() => {
3401
3505
  if (listType && listConfig) {
3402
3506
  fetchData();
3403
3507
  }
@@ -3427,35 +3531,35 @@ var ListFlowView = ({ block, editor }) => {
3427
3531
  if (!filteredData || !listType) return null;
3428
3532
  switch (listType) {
3429
3533
  case "linked_resources":
3430
- return /* @__PURE__ */ React41.createElement(LinkedResourcesList, { items: filteredData, config: listConfig, mods: selectionMode, isItemChecked, onItemCheck });
3534
+ return /* @__PURE__ */ React41.createElement(LinkedResourcesList, { items: filteredData, config: listConfig, isMultiSelect, isItemChecked, onItemCheck });
3431
3535
  case "assets":
3432
- return /* @__PURE__ */ React41.createElement(AssetsList, { items: filteredData, config: listConfig, mods: selectionMode, isItemChecked, onItemCheck });
3536
+ return /* @__PURE__ */ React41.createElement(AssetsList, { items: filteredData, config: listConfig, isMultiSelect, isItemChecked, onItemCheck });
3433
3537
  case "transactions":
3434
- return /* @__PURE__ */ React41.createElement(TransactionsList, { items: filteredData, config: listConfig, mods: selectionMode, isItemChecked, onItemCheck });
3538
+ return /* @__PURE__ */ React41.createElement(TransactionsList, { items: filteredData, config: listConfig, isMultiSelect, isItemChecked, onItemCheck });
3435
3539
  case "collections":
3436
- return /* @__PURE__ */ React41.createElement(CollectionsList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3540
+ return /* @__PURE__ */ React41.createElement(CollectionsList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3437
3541
  case "balances":
3438
- return /* @__PURE__ */ React41.createElement(BalancesList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3542
+ return /* @__PURE__ */ React41.createElement(BalancesList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3439
3543
  case "investments":
3440
- return /* @__PURE__ */ React41.createElement(InvestmentsList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3544
+ return /* @__PURE__ */ React41.createElement(InvestmentsList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3441
3545
  case "oracles":
3442
- return /* @__PURE__ */ React41.createElement(OraclesList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3546
+ return /* @__PURE__ */ React41.createElement(OraclesList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3443
3547
  case "pods":
3444
- return /* @__PURE__ */ React41.createElement(PodsList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3548
+ return /* @__PURE__ */ React41.createElement(PodsList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3445
3549
  case "proposals":
3446
- return /* @__PURE__ */ React41.createElement(ProposalsList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3550
+ return /* @__PURE__ */ React41.createElement(ProposalsList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3447
3551
  case "requests":
3448
- return /* @__PURE__ */ React41.createElement(RequestsList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3552
+ return /* @__PURE__ */ React41.createElement(RequestsList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3449
3553
  case "projects":
3450
- return /* @__PURE__ */ React41.createElement(ProjectsList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3554
+ return /* @__PURE__ */ React41.createElement(ProjectsList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3451
3555
  case "daos":
3452
- return /* @__PURE__ */ React41.createElement(DaosList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3556
+ return /* @__PURE__ */ React41.createElement(DaosList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3453
3557
  case "group_members":
3454
- return /* @__PURE__ */ React41.createElement(MembersList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3558
+ return /* @__PURE__ */ React41.createElement(MembersList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3455
3559
  case "dao_members":
3456
- return /* @__PURE__ */ React41.createElement(DaoMembersList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3560
+ return /* @__PURE__ */ React41.createElement(DaoMembersList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3457
3561
  case "validators":
3458
- return /* @__PURE__ */ React41.createElement(ValidatorsList, { items: filteredData, mods: selectionMode, isItemChecked, onItemCheck });
3562
+ return /* @__PURE__ */ React41.createElement(ValidatorsList, { items: filteredData, isMultiSelect, isItemChecked, onItemCheck });
3459
3563
  default:
3460
3564
  return null;
3461
3565
  }
@@ -3466,7 +3570,7 @@ var ListFlowView = ({ block, editor }) => {
3466
3570
  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
3571
  /^./,
3468
3572
  (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(
3573
+ ), " "), /* @__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
3574
  FilterTab,
3471
3575
  {
3472
3576
  key: label,
@@ -3477,14 +3581,14 @@ var ListFlowView = ({ block, editor }) => {
3477
3581
  ))), /* @__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
3582
  ListActionsMenu,
3479
3583
  {
3480
- onSelectActionClick: (mode) => setSelectionMode(mode),
3481
- selectionMode,
3584
+ isMultiSelect,
3585
+ setIsMultiSelect,
3482
3586
  options: listSortConfigOptions,
3483
3587
  value: listSortConfig,
3484
3588
  onChange: (sortOption) => handleSortChange(sortOption),
3485
3589
  onDownloadCsv: data?.items ? () => downloadArrayAsCsv(data.items) : void 0
3486
3590
  }
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(
3591
+ ))), /* @__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
3592
  ListPagination,
3489
3593
  {
3490
3594
  page,
@@ -3545,18 +3649,18 @@ var ListBlockSpec = createReactBlockSpec2(
3545
3649
  );
3546
3650
 
3547
3651
  // src/mantine/blocks/overview/OverviewBlock.tsx
3548
- import React44, { useEffect as useEffect7, useState as useState7 } from "react";
3652
+ import React44, { useEffect as useEffect8, useState as useState8 } from "react";
3549
3653
  import { createReactBlockSpec as createReactBlockSpec3 } from "@blocknote/react";
3550
3654
  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
3655
  import { IconChevronRight, IconChevronDown as IconChevronDown2, IconFileDescription, IconWorld, IconCalendar, IconUser, IconCircleCheck } from "@tabler/icons-react";
3552
3656
  import { useDisclosure as useDisclosure2 } from "@mantine/hooks";
3553
3657
  var OverviewBlockContent = () => {
3554
3658
  const handlers = useBlocknoteHandlers();
3555
- const [domainCard, setDomainCard] = useState7(null);
3556
- const [loading, setLoading] = useState7(true);
3557
- const [error, setError] = useState7(null);
3659
+ const [domainCard, setDomainCard] = useState8(null);
3660
+ const [loading, setLoading] = useState8(true);
3661
+ const [error, setError] = useState8(null);
3558
3662
  const [detailsOpened, { toggle: toggleDetails }] = useDisclosure2(false);
3559
- useEffect7(() => {
3663
+ useEffect8(() => {
3560
3664
  const fetchDomainCard = async () => {
3561
3665
  setLoading(true);
3562
3666
  setError(null);
@@ -3690,57 +3794,6 @@ var OverviewBlock = createReactBlockSpec3(
3690
3794
  }
3691
3795
  );
3692
3796
 
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
3797
  // src/mantine/blocks/proposal/ProposalBlockSpec.tsx
3745
3798
  import React88 from "react";
3746
3799
  import { createReactBlockSpec as createReactBlockSpec4 } from "@blocknote/react";
@@ -13922,11 +13975,11 @@ export {
13922
13975
  useBlocknoteContext,
13923
13976
  useBlocknoteHandlers,
13924
13977
  CheckboxBlockSpec,
13925
- ListBlockSpec,
13926
- OverviewBlock,
13927
13978
  StakeType,
13928
13979
  AuthzExecActionTypes,
13929
13980
  ValidatorActionType,
13981
+ ListBlockSpec,
13982
+ OverviewBlock,
13930
13983
  ProposalBlockSpec,
13931
13984
  ApiRequestBlockSpec,
13932
13985
  blockSpecs,
@@ -13939,4 +13992,4 @@ export {
13939
13992
  ixoGraphQLClient,
13940
13993
  getEntity
13941
13994
  };
13942
- //# sourceMappingURL=chunk-OHIKNFEH.mjs.map
13995
+ //# sourceMappingURL=chunk-7CMMGYO6.mjs.map