@fairmint/ui 0.3.2 → 0.3.3

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.
Files changed (38) hide show
  1. package/dist/_virtual/index3.cjs +5 -3
  2. package/dist/_virtual/index3.cjs.map +1 -1
  3. package/dist/_virtual/index3.js +5 -2
  4. package/dist/_virtual/index3.js.map +1 -1
  5. package/dist/_virtual/index4.cjs +3 -5
  6. package/dist/_virtual/index4.cjs.map +1 -1
  7. package/dist/_virtual/index4.js +2 -5
  8. package/dist/_virtual/index4.js.map +1 -1
  9. package/dist/components/specific/WalletList/WalletList.cjs +129 -141
  10. package/dist/components/specific/WalletList/WalletList.cjs.map +1 -1
  11. package/dist/components/specific/WalletList/WalletList.d.ts +2 -10
  12. package/dist/components/specific/WalletList/WalletList.d.ts.map +1 -1
  13. package/dist/components/specific/WalletList/WalletList.js +131 -143
  14. package/dist/components/specific/WalletList/WalletList.js.map +1 -1
  15. package/dist/components/specific/WalletListItem/WalletListItem.cjs +161 -0
  16. package/dist/components/specific/WalletListItem/WalletListItem.cjs.map +1 -0
  17. package/dist/components/specific/WalletListItem/WalletListItem.d.ts +32 -0
  18. package/dist/components/specific/WalletListItem/WalletListItem.d.ts.map +1 -0
  19. package/dist/components/specific/WalletListItem/WalletListItem.js +161 -0
  20. package/dist/components/specific/WalletListItem/WalletListItem.js.map +1 -0
  21. package/dist/fairmint-ui.cjs +3 -0
  22. package/dist/fairmint-ui.cjs.map +1 -1
  23. package/dist/fairmint-ui.js +4 -1
  24. package/dist/fairmint-ui.js.map +1 -1
  25. package/dist/index.d.ts +5 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/node_modules/@mantine/form/esm/hooks/use-form-status/use-form-status.cjs +1 -1
  28. package/dist/node_modules/@mantine/form/esm/hooks/use-form-status/use-form-status.js +1 -1
  29. package/dist/node_modules/prop-types/index.cjs +1 -1
  30. package/dist/node_modules/prop-types/index.js +1 -1
  31. package/dist/styles.css +2 -1
  32. package/dist/utils/wallets.cjs +18 -2
  33. package/dist/utils/wallets.cjs.map +1 -1
  34. package/dist/utils/wallets.d.ts +13 -0
  35. package/dist/utils/wallets.d.ts.map +1 -1
  36. package/dist/utils/wallets.js +18 -2
  37. package/dist/utils/wallets.js.map +1 -1
  38. package/package.json +1 -1
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const React = require("react");
5
+ const index = require("../../../theme/index.cjs");
6
+ const address = require("../../../utils/address.cjs");
7
+ const wallets = require("../../../utils/wallets.cjs");
8
+ const Badge = require("../../primitives/Badge/Badge.cjs");
9
+ const layout = require("../../primitives/layout.cjs");
10
+ const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
11
+ const ThemeIcon = require("../../../node_modules/@mantine/core/esm/components/ThemeIcon/ThemeIcon.cjs");
12
+ const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
13
+ const colors = require("../../../theme/colors.cjs");
14
+ const UnstyledButton = require("../../../node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.cjs");
15
+ function moveRadioSelection(current, delta) {
16
+ const group = current.closest('[role="radiogroup"]');
17
+ if (!group) return;
18
+ const radios = Array.from(group.querySelectorAll('[role="radio"]'));
19
+ const index2 = radios.indexOf(current);
20
+ if (index2 < 0 || radios.length === 0) return;
21
+ const next = radios[(index2 + delta + radios.length) % radios.length];
22
+ next.focus();
23
+ next.click();
24
+ }
25
+ function handleRadioKeyDown(event) {
26
+ switch (event.key) {
27
+ case "ArrowDown":
28
+ case "ArrowRight":
29
+ event.preventDefault();
30
+ moveRadioSelection(event.currentTarget, 1);
31
+ break;
32
+ case "ArrowUp":
33
+ case "ArrowLeft":
34
+ event.preventDefault();
35
+ moveRadioSelection(event.currentTarget, -1);
36
+ break;
37
+ }
38
+ }
39
+ function radioTabIndex(radio, selected) {
40
+ if (!radio) return 0;
41
+ const group = radio.closest('[role="radiogroup"]');
42
+ if (!group) return 0;
43
+ if (selected) return 0;
44
+ const radios = Array.from(group.querySelectorAll('[role="radio"]'));
45
+ const anySelected = radios.some((item) => item.getAttribute("aria-checked") === "true");
46
+ if (!anySelected && radios[0] === radio) return 0;
47
+ return -1;
48
+ }
49
+ function WalletListItem({
50
+ wallet,
51
+ addressChars = 6,
52
+ density = "comfortable",
53
+ selected = false,
54
+ rightSection,
55
+ walletIcon,
56
+ typeLabels,
57
+ onClick,
58
+ ariaLabel
59
+ }) {
60
+ const isCompact = density === "compact";
61
+ const displayName = wallets.getWalletDisplayName(wallet, typeLabels);
62
+ const kindPill = wallets.getWalletKindPill(wallet.type, typeLabels);
63
+ const displayAddress = isCompact ? address.truncateAddress(wallet.address, addressChars) : wallet.address;
64
+ const padding = isCompact ? "xs" : "md";
65
+ const alignment = isCompact ? "center" : "flex-start";
66
+ const isClickable = Boolean(onClick);
67
+ const radioRef = React.useRef(null);
68
+ const [tabIndex, setTabIndex] = React.useState(0);
69
+ React.useLayoutEffect(() => {
70
+ if (!isClickable) return;
71
+ const radio = radioRef.current;
72
+ if (!radio) return;
73
+ const updateTabIndex = () => {
74
+ setTabIndex(radioTabIndex(radio, selected));
75
+ };
76
+ updateTabIndex();
77
+ const group = radio.closest('[role="radiogroup"]');
78
+ if (!group) return;
79
+ const observer = new MutationObserver(updateTabIndex);
80
+ observer.observe(group, {
81
+ subtree: true,
82
+ childList: true,
83
+ attributes: true,
84
+ attributeFilter: ["aria-checked", "role"]
85
+ });
86
+ return () => observer.disconnect();
87
+ }, [isClickable, selected]);
88
+ const mainContent = /* @__PURE__ */ jsxRuntime.jsxs(Group.Group, { gap: "sm", align: alignment, wrap: "nowrap", style: { flex: 1, minWidth: 0 }, children: [
89
+ walletIcon && /* @__PURE__ */ jsxRuntime.jsx(
90
+ ThemeIcon.ThemeIcon,
91
+ {
92
+ size: isCompact ? 32 : 40,
93
+ radius: "xl",
94
+ variant: "light",
95
+ color: wallets.getWalletIconColor(wallet.type),
96
+ style: { flexShrink: 0 },
97
+ children: walletIcon
98
+ }
99
+ ),
100
+ /* @__PURE__ */ jsxRuntime.jsxs(layout.Stack, { gap: isCompact ? 2 : 4, style: { flex: 1, minWidth: 0 }, children: [
101
+ /* @__PURE__ */ jsxRuntime.jsxs(Group.Group, { gap: "xs", align: "center", wrap: "wrap", children: [
102
+ /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { size: "sm", fw: 600, style: { wordBreak: "break-word" }, children: displayName }),
103
+ wallet.defaultRecipient && /* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { size: "xs", color: colors.colors.warning, variant: "light", tt: "uppercase", children: "Default" }),
104
+ /* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { size: "xs", variant: "light", color: colors.colors.neutral, children: kindPill })
105
+ ] }),
106
+ /* @__PURE__ */ jsxRuntime.jsx(
107
+ Text.Text,
108
+ {
109
+ size: "xs",
110
+ ff: "monospace",
111
+ c: index.fairmintVars.colorTextSecondary,
112
+ title: wallet.address,
113
+ ...isClickable ? { "aria-hidden": true } : { "aria-label": `Wallet address ${wallet.address}` },
114
+ style: { overflowWrap: "anywhere" },
115
+ children: displayAddress
116
+ }
117
+ )
118
+ ] })
119
+ ] });
120
+ const trailing = rightSection ? /* @__PURE__ */ jsxRuntime.jsx(layout.Box, { style: { flexShrink: 0 }, children: rightSection }) : null;
121
+ const style = {
122
+ borderRadius: index.radii.lg,
123
+ border: selected ? `1px solid ${index.brandColors.indigo}` : isCompact ? "1px solid transparent" : `1px solid ${index.neutralColors[200]}`
124
+ };
125
+ const radioLabel = ariaLabel ?? `${displayName}, ${wallet.address}`;
126
+ if (isClickable) {
127
+ return /* @__PURE__ */ jsxRuntime.jsx(
128
+ layout.Box,
129
+ {
130
+ "data-selected": selected || void 0,
131
+ className: "fairmint-list-row",
132
+ w: "100%",
133
+ p: padding,
134
+ style,
135
+ children: /* @__PURE__ */ jsxRuntime.jsxs(Group.Group, { justify: "space-between", align: alignment, wrap: "nowrap", gap: "xs", w: "100%", children: [
136
+ /* @__PURE__ */ jsxRuntime.jsx(
137
+ UnstyledButton.UnstyledButton,
138
+ {
139
+ ref: radioRef,
140
+ onClick,
141
+ onKeyDown: handleRadioKeyDown,
142
+ role: "radio",
143
+ "aria-checked": selected,
144
+ "aria-label": radioLabel,
145
+ tabIndex,
146
+ style: { flex: 1, minWidth: 0, textAlign: "left" },
147
+ children: mainContent
148
+ }
149
+ ),
150
+ trailing
151
+ ] })
152
+ }
153
+ );
154
+ }
155
+ return /* @__PURE__ */ jsxRuntime.jsx(layout.Box, { "data-selected": selected || void 0, w: "100%", p: padding, style, children: /* @__PURE__ */ jsxRuntime.jsxs(Group.Group, { justify: "space-between", align: alignment, wrap: "nowrap", gap: "xs", w: "100%", children: [
156
+ mainContent,
157
+ trailing
158
+ ] }) });
159
+ }
160
+ exports.WalletListItem = WalletListItem;
161
+ //# sourceMappingURL=WalletListItem.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletListItem.cjs","sources":["../../../../src/components/specific/WalletListItem/WalletListItem.tsx"],"sourcesContent":["import { type KeyboardEvent, type ReactNode, useLayoutEffect, useRef, useState } from \"react\";\nimport { brandColors, colors, fairmintVars, neutralColors, radii } from \"../../../theme\";\nimport { truncateAddress } from \"../../../utils/address\";\nimport {\n getWalletDisplayName,\n getWalletIconColor,\n getWalletKindPill,\n type Wallet,\n} from \"../../../utils/wallets\";\nimport { Badge } from \"../../primitives/Badge/Badge\";\nimport { Box, Group, Stack, Text, ThemeIcon, UnstyledButton } from \"../../primitives/layout\";\n\nexport interface WalletListItemProps {\n /** Wallet data used to derive the name, kind badge, and address. */\n wallet: Wallet;\n /** Number of address characters shown on each side of the ellipsis in compact density. */\n addressChars?: number;\n /** Row density. Compact is intended for picker/dropdown options. */\n density?: \"comfortable\" | \"compact\";\n /** Applies the indigo outline selected treatment. */\n selected?: boolean;\n /** Content rendered at the trailing edge of the row. */\n rightSection?: ReactNode;\n /** Leading wallet visual. Apps provide the icon so the library stays icon-package agnostic. */\n walletIcon?: ReactNode;\n /** Optional override for wallet type labels. */\n typeLabels?: Record<string, string>;\n /** Makes the primary row content a selectable radio option when supplied. */\n onClick?: () => void;\n /**\n * Accessible name for a clickable row.\n * Defaults to `{displayName}, {address}` so unlabeled wallets stay distinguishable.\n */\n ariaLabel?: string;\n}\n\nfunction moveRadioSelection(current: HTMLElement, delta: number): void {\n const group = current.closest('[role=\"radiogroup\"]');\n if (!group) return;\n const radios = Array.from(group.querySelectorAll<HTMLElement>('[role=\"radio\"]'));\n const index = radios.indexOf(current);\n if (index < 0 || radios.length === 0) return;\n const next = radios[(index + delta + radios.length) % radios.length];\n next.focus();\n next.click();\n}\n\nfunction handleRadioKeyDown(event: KeyboardEvent<HTMLButtonElement>): void {\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\":\n event.preventDefault();\n moveRadioSelection(event.currentTarget, 1);\n break;\n case \"ArrowUp\":\n case \"ArrowLeft\":\n event.preventDefault();\n moveRadioSelection(event.currentTarget, -1);\n break;\n default:\n break;\n }\n}\n\nfunction radioTabIndex(radio: HTMLElement | null, selected: boolean): number {\n if (!radio) return 0;\n const group = radio.closest('[role=\"radiogroup\"]');\n if (!group) return 0;\n if (selected) return 0;\n const radios = Array.from(group.querySelectorAll<HTMLElement>('[role=\"radio\"]'));\n const anySelected = radios.some((item) => item.getAttribute(\"aria-checked\") === \"true\");\n if (!anySelected && radios[0] === radio) return 0;\n return -1;\n}\n\n/**\n * Reusable wallet display shell for lists, pickers, and read-only review rows.\n * Management actions such as rename, remove, and connect remain owned by the\n * composing flow.\n */\nexport function WalletListItem({\n wallet,\n addressChars = 6,\n density = \"comfortable\",\n selected = false,\n rightSection,\n walletIcon,\n typeLabels,\n onClick,\n ariaLabel,\n}: WalletListItemProps) {\n const isCompact = density === \"compact\";\n const displayName = getWalletDisplayName(wallet, typeLabels);\n const kindPill = getWalletKindPill(wallet.type, typeLabels);\n const displayAddress = isCompact ? truncateAddress(wallet.address, addressChars) : wallet.address;\n const padding = isCompact ? \"xs\" : \"md\";\n const alignment = isCompact ? \"center\" : \"flex-start\";\n const isClickable = Boolean(onClick);\n const radioRef = useRef<HTMLButtonElement>(null);\n const [tabIndex, setTabIndex] = useState(0);\n\n useLayoutEffect(() => {\n if (!isClickable) return;\n const radio = radioRef.current;\n if (!radio) return;\n\n const updateTabIndex = () => {\n setTabIndex(radioTabIndex(radio, selected));\n };\n updateTabIndex();\n\n const group = radio.closest('[role=\"radiogroup\"]');\n if (!group) return;\n\n const observer = new MutationObserver(updateTabIndex);\n observer.observe(group, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: [\"aria-checked\", \"role\"],\n });\n return () => observer.disconnect();\n }, [isClickable, selected]);\n\n const mainContent = (\n <Group gap=\"sm\" align={alignment} wrap=\"nowrap\" style={{ flex: 1, minWidth: 0 }}>\n {walletIcon && (\n <ThemeIcon\n size={isCompact ? 32 : 40}\n radius=\"xl\"\n variant=\"light\"\n color={getWalletIconColor(wallet.type)}\n style={{ flexShrink: 0 }}\n >\n {walletIcon}\n </ThemeIcon>\n )}\n <Stack gap={isCompact ? 2 : 4} style={{ flex: 1, minWidth: 0 }}>\n <Group gap=\"xs\" align=\"center\" wrap=\"wrap\">\n <Text size=\"sm\" fw={600} style={{ wordBreak: \"break-word\" }}>\n {displayName}\n </Text>\n {wallet.defaultRecipient && (\n <Badge size=\"xs\" color={colors.warning} variant=\"light\" tt=\"uppercase\">\n Default\n </Badge>\n )}\n <Badge size=\"xs\" variant=\"light\" color={colors.neutral}>\n {kindPill}\n </Badge>\n </Group>\n <Text\n size=\"xs\"\n ff=\"monospace\"\n c={fairmintVars.colorTextSecondary}\n title={wallet.address}\n {...(isClickable\n ? { \"aria-hidden\": true }\n : { \"aria-label\": `Wallet address ${wallet.address}` })}\n style={{ overflowWrap: \"anywhere\" }}\n >\n {displayAddress}\n </Text>\n </Stack>\n </Group>\n );\n\n const trailing = rightSection ? <Box style={{ flexShrink: 0 }}>{rightSection}</Box> : null;\n\n const style = {\n borderRadius: radii.lg,\n border: selected\n ? `1px solid ${brandColors.indigo}`\n : isCompact\n ? \"1px solid transparent\"\n : `1px solid ${neutralColors[200]}`,\n } as const;\n\n const radioLabel = ariaLabel ?? `${displayName}, ${wallet.address}`;\n\n if (isClickable) {\n return (\n <Box\n data-selected={selected || undefined}\n className=\"fairmint-list-row\"\n w=\"100%\"\n p={padding}\n style={style}\n >\n <Group justify=\"space-between\" align={alignment} wrap=\"nowrap\" gap=\"xs\" w=\"100%\">\n <UnstyledButton\n ref={radioRef}\n onClick={onClick}\n onKeyDown={handleRadioKeyDown}\n role=\"radio\"\n aria-checked={selected}\n aria-label={radioLabel}\n tabIndex={tabIndex}\n style={{ flex: 1, minWidth: 0, textAlign: \"left\" }}\n >\n {mainContent}\n </UnstyledButton>\n {trailing}\n </Group>\n </Box>\n );\n }\n\n return (\n <Box data-selected={selected || undefined} w=\"100%\" p={padding} style={style}>\n <Group justify=\"space-between\" align={alignment} wrap=\"nowrap\" gap=\"xs\" w=\"100%\">\n {mainContent}\n {trailing}\n </Group>\n </Box>\n );\n}\n"],"names":["index","getWalletDisplayName","getWalletKindPill","truncateAddress","useRef","useState","useLayoutEffect","jsxs","Group","jsx","ThemeIcon","getWalletIconColor","Stack","Text","Badge","colors","fairmintVars","Box","radii","brandColors","neutralColors","UnstyledButton"],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { ReactNode } from 'react';
2
+ import { Wallet } from '../../../utils/wallets';
3
+ export interface WalletListItemProps {
4
+ /** Wallet data used to derive the name, kind badge, and address. */
5
+ wallet: Wallet;
6
+ /** Number of address characters shown on each side of the ellipsis in compact density. */
7
+ addressChars?: number;
8
+ /** Row density. Compact is intended for picker/dropdown options. */
9
+ density?: "comfortable" | "compact";
10
+ /** Applies the indigo outline selected treatment. */
11
+ selected?: boolean;
12
+ /** Content rendered at the trailing edge of the row. */
13
+ rightSection?: ReactNode;
14
+ /** Leading wallet visual. Apps provide the icon so the library stays icon-package agnostic. */
15
+ walletIcon?: ReactNode;
16
+ /** Optional override for wallet type labels. */
17
+ typeLabels?: Record<string, string>;
18
+ /** Makes the primary row content a selectable radio option when supplied. */
19
+ onClick?: () => void;
20
+ /**
21
+ * Accessible name for a clickable row.
22
+ * Defaults to `{displayName}, {address}` so unlabeled wallets stay distinguishable.
23
+ */
24
+ ariaLabel?: string;
25
+ }
26
+ /**
27
+ * Reusable wallet display shell for lists, pickers, and read-only review rows.
28
+ * Management actions such as rename, remove, and connect remain owned by the
29
+ * composing flow.
30
+ */
31
+ export declare function WalletListItem({ wallet, addressChars, density, selected, rightSection, walletIcon, typeLabels, onClick, ariaLabel, }: WalletListItemProps): import("react/jsx-runtime").JSX.Element;
32
+ //# sourceMappingURL=WalletListItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletListItem.d.ts","sourceRoot":"","sources":["../../../../src/components/specific/WalletListItem/WalletListItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,SAAS,EAAqC,MAAM,OAAO,CAAC;AAG9F,OAAO,EAIL,KAAK,MAAM,EACZ,MAAM,wBAAwB,CAAC;AAIhC,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,+FAA+F;IAC/F,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyCD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,YAAgB,EAChB,OAAuB,EACvB,QAAgB,EAChB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,OAAO,EACP,SAAS,GACV,EAAE,mBAAmB,2CA8HrB"}
@@ -0,0 +1,161 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { useRef, useState, useLayoutEffect } from "react";
3
+ import { fairmintVars, brandColors, neutralColors, radii } from "../../../theme/index.js";
4
+ import { truncateAddress } from "../../../utils/address.js";
5
+ import { getWalletDisplayName, getWalletKindPill, getWalletIconColor } from "../../../utils/wallets.js";
6
+ import { Badge } from "../../primitives/Badge/Badge.js";
7
+ import { Stack, Box } from "../../primitives/layout.js";
8
+ import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
9
+ import { ThemeIcon } from "../../../node_modules/@mantine/core/esm/components/ThemeIcon/ThemeIcon.js";
10
+ import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
11
+ import { colors } from "../../../theme/colors.js";
12
+ import { UnstyledButton } from "../../../node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.js";
13
+ function moveRadioSelection(current, delta) {
14
+ const group = current.closest('[role="radiogroup"]');
15
+ if (!group) return;
16
+ const radios = Array.from(group.querySelectorAll('[role="radio"]'));
17
+ const index = radios.indexOf(current);
18
+ if (index < 0 || radios.length === 0) return;
19
+ const next = radios[(index + delta + radios.length) % radios.length];
20
+ next.focus();
21
+ next.click();
22
+ }
23
+ function handleRadioKeyDown(event) {
24
+ switch (event.key) {
25
+ case "ArrowDown":
26
+ case "ArrowRight":
27
+ event.preventDefault();
28
+ moveRadioSelection(event.currentTarget, 1);
29
+ break;
30
+ case "ArrowUp":
31
+ case "ArrowLeft":
32
+ event.preventDefault();
33
+ moveRadioSelection(event.currentTarget, -1);
34
+ break;
35
+ }
36
+ }
37
+ function radioTabIndex(radio, selected) {
38
+ if (!radio) return 0;
39
+ const group = radio.closest('[role="radiogroup"]');
40
+ if (!group) return 0;
41
+ if (selected) return 0;
42
+ const radios = Array.from(group.querySelectorAll('[role="radio"]'));
43
+ const anySelected = radios.some((item) => item.getAttribute("aria-checked") === "true");
44
+ if (!anySelected && radios[0] === radio) return 0;
45
+ return -1;
46
+ }
47
+ function WalletListItem({
48
+ wallet,
49
+ addressChars = 6,
50
+ density = "comfortable",
51
+ selected = false,
52
+ rightSection,
53
+ walletIcon,
54
+ typeLabels,
55
+ onClick,
56
+ ariaLabel
57
+ }) {
58
+ const isCompact = density === "compact";
59
+ const displayName = getWalletDisplayName(wallet, typeLabels);
60
+ const kindPill = getWalletKindPill(wallet.type, typeLabels);
61
+ const displayAddress = isCompact ? truncateAddress(wallet.address, addressChars) : wallet.address;
62
+ const padding = isCompact ? "xs" : "md";
63
+ const alignment = isCompact ? "center" : "flex-start";
64
+ const isClickable = Boolean(onClick);
65
+ const radioRef = useRef(null);
66
+ const [tabIndex, setTabIndex] = useState(0);
67
+ useLayoutEffect(() => {
68
+ if (!isClickable) return;
69
+ const radio = radioRef.current;
70
+ if (!radio) return;
71
+ const updateTabIndex = () => {
72
+ setTabIndex(radioTabIndex(radio, selected));
73
+ };
74
+ updateTabIndex();
75
+ const group = radio.closest('[role="radiogroup"]');
76
+ if (!group) return;
77
+ const observer = new MutationObserver(updateTabIndex);
78
+ observer.observe(group, {
79
+ subtree: true,
80
+ childList: true,
81
+ attributes: true,
82
+ attributeFilter: ["aria-checked", "role"]
83
+ });
84
+ return () => observer.disconnect();
85
+ }, [isClickable, selected]);
86
+ const mainContent = /* @__PURE__ */ jsxs(Group, { gap: "sm", align: alignment, wrap: "nowrap", style: { flex: 1, minWidth: 0 }, children: [
87
+ walletIcon && /* @__PURE__ */ jsx(
88
+ ThemeIcon,
89
+ {
90
+ size: isCompact ? 32 : 40,
91
+ radius: "xl",
92
+ variant: "light",
93
+ color: getWalletIconColor(wallet.type),
94
+ style: { flexShrink: 0 },
95
+ children: walletIcon
96
+ }
97
+ ),
98
+ /* @__PURE__ */ jsxs(Stack, { gap: isCompact ? 2 : 4, style: { flex: 1, minWidth: 0 }, children: [
99
+ /* @__PURE__ */ jsxs(Group, { gap: "xs", align: "center", wrap: "wrap", children: [
100
+ /* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, style: { wordBreak: "break-word" }, children: displayName }),
101
+ wallet.defaultRecipient && /* @__PURE__ */ jsx(Badge, { size: "xs", color: colors.warning, variant: "light", tt: "uppercase", children: "Default" }),
102
+ /* @__PURE__ */ jsx(Badge, { size: "xs", variant: "light", color: colors.neutral, children: kindPill })
103
+ ] }),
104
+ /* @__PURE__ */ jsx(
105
+ Text,
106
+ {
107
+ size: "xs",
108
+ ff: "monospace",
109
+ c: fairmintVars.colorTextSecondary,
110
+ title: wallet.address,
111
+ ...isClickable ? { "aria-hidden": true } : { "aria-label": `Wallet address ${wallet.address}` },
112
+ style: { overflowWrap: "anywhere" },
113
+ children: displayAddress
114
+ }
115
+ )
116
+ ] })
117
+ ] });
118
+ const trailing = rightSection ? /* @__PURE__ */ jsx(Box, { style: { flexShrink: 0 }, children: rightSection }) : null;
119
+ const style = {
120
+ borderRadius: radii.lg,
121
+ border: selected ? `1px solid ${brandColors.indigo}` : isCompact ? "1px solid transparent" : `1px solid ${neutralColors[200]}`
122
+ };
123
+ const radioLabel = ariaLabel ?? `${displayName}, ${wallet.address}`;
124
+ if (isClickable) {
125
+ return /* @__PURE__ */ jsx(
126
+ Box,
127
+ {
128
+ "data-selected": selected || void 0,
129
+ className: "fairmint-list-row",
130
+ w: "100%",
131
+ p: padding,
132
+ style,
133
+ children: /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: alignment, wrap: "nowrap", gap: "xs", w: "100%", children: [
134
+ /* @__PURE__ */ jsx(
135
+ UnstyledButton,
136
+ {
137
+ ref: radioRef,
138
+ onClick,
139
+ onKeyDown: handleRadioKeyDown,
140
+ role: "radio",
141
+ "aria-checked": selected,
142
+ "aria-label": radioLabel,
143
+ tabIndex,
144
+ style: { flex: 1, minWidth: 0, textAlign: "left" },
145
+ children: mainContent
146
+ }
147
+ ),
148
+ trailing
149
+ ] })
150
+ }
151
+ );
152
+ }
153
+ return /* @__PURE__ */ jsx(Box, { "data-selected": selected || void 0, w: "100%", p: padding, style, children: /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: alignment, wrap: "nowrap", gap: "xs", w: "100%", children: [
154
+ mainContent,
155
+ trailing
156
+ ] }) });
157
+ }
158
+ export {
159
+ WalletListItem
160
+ };
161
+ //# sourceMappingURL=WalletListItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletListItem.js","sources":["../../../../src/components/specific/WalletListItem/WalletListItem.tsx"],"sourcesContent":["import { type KeyboardEvent, type ReactNode, useLayoutEffect, useRef, useState } from \"react\";\nimport { brandColors, colors, fairmintVars, neutralColors, radii } from \"../../../theme\";\nimport { truncateAddress } from \"../../../utils/address\";\nimport {\n getWalletDisplayName,\n getWalletIconColor,\n getWalletKindPill,\n type Wallet,\n} from \"../../../utils/wallets\";\nimport { Badge } from \"../../primitives/Badge/Badge\";\nimport { Box, Group, Stack, Text, ThemeIcon, UnstyledButton } from \"../../primitives/layout\";\n\nexport interface WalletListItemProps {\n /** Wallet data used to derive the name, kind badge, and address. */\n wallet: Wallet;\n /** Number of address characters shown on each side of the ellipsis in compact density. */\n addressChars?: number;\n /** Row density. Compact is intended for picker/dropdown options. */\n density?: \"comfortable\" | \"compact\";\n /** Applies the indigo outline selected treatment. */\n selected?: boolean;\n /** Content rendered at the trailing edge of the row. */\n rightSection?: ReactNode;\n /** Leading wallet visual. Apps provide the icon so the library stays icon-package agnostic. */\n walletIcon?: ReactNode;\n /** Optional override for wallet type labels. */\n typeLabels?: Record<string, string>;\n /** Makes the primary row content a selectable radio option when supplied. */\n onClick?: () => void;\n /**\n * Accessible name for a clickable row.\n * Defaults to `{displayName}, {address}` so unlabeled wallets stay distinguishable.\n */\n ariaLabel?: string;\n}\n\nfunction moveRadioSelection(current: HTMLElement, delta: number): void {\n const group = current.closest('[role=\"radiogroup\"]');\n if (!group) return;\n const radios = Array.from(group.querySelectorAll<HTMLElement>('[role=\"radio\"]'));\n const index = radios.indexOf(current);\n if (index < 0 || radios.length === 0) return;\n const next = radios[(index + delta + radios.length) % radios.length];\n next.focus();\n next.click();\n}\n\nfunction handleRadioKeyDown(event: KeyboardEvent<HTMLButtonElement>): void {\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\":\n event.preventDefault();\n moveRadioSelection(event.currentTarget, 1);\n break;\n case \"ArrowUp\":\n case \"ArrowLeft\":\n event.preventDefault();\n moveRadioSelection(event.currentTarget, -1);\n break;\n default:\n break;\n }\n}\n\nfunction radioTabIndex(radio: HTMLElement | null, selected: boolean): number {\n if (!radio) return 0;\n const group = radio.closest('[role=\"radiogroup\"]');\n if (!group) return 0;\n if (selected) return 0;\n const radios = Array.from(group.querySelectorAll<HTMLElement>('[role=\"radio\"]'));\n const anySelected = radios.some((item) => item.getAttribute(\"aria-checked\") === \"true\");\n if (!anySelected && radios[0] === radio) return 0;\n return -1;\n}\n\n/**\n * Reusable wallet display shell for lists, pickers, and read-only review rows.\n * Management actions such as rename, remove, and connect remain owned by the\n * composing flow.\n */\nexport function WalletListItem({\n wallet,\n addressChars = 6,\n density = \"comfortable\",\n selected = false,\n rightSection,\n walletIcon,\n typeLabels,\n onClick,\n ariaLabel,\n}: WalletListItemProps) {\n const isCompact = density === \"compact\";\n const displayName = getWalletDisplayName(wallet, typeLabels);\n const kindPill = getWalletKindPill(wallet.type, typeLabels);\n const displayAddress = isCompact ? truncateAddress(wallet.address, addressChars) : wallet.address;\n const padding = isCompact ? \"xs\" : \"md\";\n const alignment = isCompact ? \"center\" : \"flex-start\";\n const isClickable = Boolean(onClick);\n const radioRef = useRef<HTMLButtonElement>(null);\n const [tabIndex, setTabIndex] = useState(0);\n\n useLayoutEffect(() => {\n if (!isClickable) return;\n const radio = radioRef.current;\n if (!radio) return;\n\n const updateTabIndex = () => {\n setTabIndex(radioTabIndex(radio, selected));\n };\n updateTabIndex();\n\n const group = radio.closest('[role=\"radiogroup\"]');\n if (!group) return;\n\n const observer = new MutationObserver(updateTabIndex);\n observer.observe(group, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: [\"aria-checked\", \"role\"],\n });\n return () => observer.disconnect();\n }, [isClickable, selected]);\n\n const mainContent = (\n <Group gap=\"sm\" align={alignment} wrap=\"nowrap\" style={{ flex: 1, minWidth: 0 }}>\n {walletIcon && (\n <ThemeIcon\n size={isCompact ? 32 : 40}\n radius=\"xl\"\n variant=\"light\"\n color={getWalletIconColor(wallet.type)}\n style={{ flexShrink: 0 }}\n >\n {walletIcon}\n </ThemeIcon>\n )}\n <Stack gap={isCompact ? 2 : 4} style={{ flex: 1, minWidth: 0 }}>\n <Group gap=\"xs\" align=\"center\" wrap=\"wrap\">\n <Text size=\"sm\" fw={600} style={{ wordBreak: \"break-word\" }}>\n {displayName}\n </Text>\n {wallet.defaultRecipient && (\n <Badge size=\"xs\" color={colors.warning} variant=\"light\" tt=\"uppercase\">\n Default\n </Badge>\n )}\n <Badge size=\"xs\" variant=\"light\" color={colors.neutral}>\n {kindPill}\n </Badge>\n </Group>\n <Text\n size=\"xs\"\n ff=\"monospace\"\n c={fairmintVars.colorTextSecondary}\n title={wallet.address}\n {...(isClickable\n ? { \"aria-hidden\": true }\n : { \"aria-label\": `Wallet address ${wallet.address}` })}\n style={{ overflowWrap: \"anywhere\" }}\n >\n {displayAddress}\n </Text>\n </Stack>\n </Group>\n );\n\n const trailing = rightSection ? <Box style={{ flexShrink: 0 }}>{rightSection}</Box> : null;\n\n const style = {\n borderRadius: radii.lg,\n border: selected\n ? `1px solid ${brandColors.indigo}`\n : isCompact\n ? \"1px solid transparent\"\n : `1px solid ${neutralColors[200]}`,\n } as const;\n\n const radioLabel = ariaLabel ?? `${displayName}, ${wallet.address}`;\n\n if (isClickable) {\n return (\n <Box\n data-selected={selected || undefined}\n className=\"fairmint-list-row\"\n w=\"100%\"\n p={padding}\n style={style}\n >\n <Group justify=\"space-between\" align={alignment} wrap=\"nowrap\" gap=\"xs\" w=\"100%\">\n <UnstyledButton\n ref={radioRef}\n onClick={onClick}\n onKeyDown={handleRadioKeyDown}\n role=\"radio\"\n aria-checked={selected}\n aria-label={radioLabel}\n tabIndex={tabIndex}\n style={{ flex: 1, minWidth: 0, textAlign: \"left\" }}\n >\n {mainContent}\n </UnstyledButton>\n {trailing}\n </Group>\n </Box>\n );\n }\n\n return (\n <Box data-selected={selected || undefined} w=\"100%\" p={padding} style={style}>\n <Group justify=\"space-between\" align={alignment} wrap=\"nowrap\" gap=\"xs\" w=\"100%\">\n {mainContent}\n {trailing}\n </Group>\n </Box>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -82,6 +82,7 @@ const EquityGrantCard = require("./components/specific/EquityGrantCard/EquityGra
82
82
  const InvestmentCard = require("./components/specific/InvestmentCard/InvestmentCard.cjs");
83
83
  const InvestorProfileCard = require("./components/specific/InvestorProfileCard/InvestorProfileCard.cjs");
84
84
  const WalletList = require("./components/specific/WalletList/WalletList.cjs");
85
+ const WalletListItem = require("./components/specific/WalletListItem/WalletListItem.cjs");
85
86
  const useDebouncedCallback = require("./hooks/useDebouncedCallback.cjs");
86
87
  const useForm = require("./hooks/useForm.cjs");
87
88
  const useIsMobile = require("./hooks/useIsMobile.cjs");
@@ -445,6 +446,7 @@ exports.EquityGrantCard = EquityGrantCard.EquityGrantCard;
445
446
  exports.InvestmentCard = InvestmentCard.InvestmentCard;
446
447
  exports.InvestorProfileCard = InvestorProfileCard.InvestorProfileCard;
447
448
  exports.WalletList = WalletList.WalletList;
449
+ exports.WalletListItem = WalletListItem.WalletListItem;
448
450
  exports.useDebouncedCallback = useDebouncedCallback.useDebouncedCallback;
449
451
  exports.useForm = useForm.useForm;
450
452
  exports.MOBILE_BREAKPOINT = useIsMobile.MOBILE_BREAKPOINT;
@@ -484,6 +486,7 @@ exports.formatPercent = format.formatPercent;
484
486
  exports.formatPreciseWithCurrency = format.formatPreciseWithCurrency;
485
487
  exports.localeForCountry = format.localeForCountry;
486
488
  exports.getWalletDisplayName = wallets.getWalletDisplayName;
489
+ exports.getWalletIconColor = wallets.getWalletIconColor;
487
490
  exports.getWalletKindPill = wallets.getWalletKindPill;
488
491
  exports.getWalletLabel = wallets.getWalletLabel;
489
492
  exports.isRemovableWalletType = wallets.isRemovableWalletType;
@@ -1 +1 @@
1
- {"version":3,"file":"fairmint-ui.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"fairmint-ui.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -80,6 +80,7 @@ import { EquityGrantCard } from "./components/specific/EquityGrantCard/EquityGra
80
80
  import { InvestmentCard } from "./components/specific/InvestmentCard/InvestmentCard.js";
81
81
  import { InvestorProfileCard } from "./components/specific/InvestorProfileCard/InvestorProfileCard.js";
82
82
  import { WalletList } from "./components/specific/WalletList/WalletList.js";
83
+ import { WalletListItem } from "./components/specific/WalletListItem/WalletListItem.js";
83
84
  import { useDebouncedCallback } from "./hooks/useDebouncedCallback.js";
84
85
  import { useForm } from "./hooks/useForm.js";
85
86
  import { MOBILE_BREAKPOINT, useIsMobile } from "./hooks/useIsMobile.js";
@@ -91,7 +92,7 @@ import { ETHEREUM_ADDRESS_REGEX, ZERO_ETHEREUM_ADDRESS, isEthereumAddress, trunc
91
92
  import { getAvatarColor, getInitials } from "./utils/avatar.js";
92
93
  import { getLogoFilter, isLightColor } from "./utils/color.js";
93
94
  import { formatCurrency, formatCurrencyPrecise, formatDate, formatMonetary, formatNumber, formatPercent, formatPreciseWithCurrency, localeForCountry } from "./utils/format.js";
94
- import { getWalletDisplayName, getWalletKindPill, getWalletLabel, isRemovableWalletType, isSystemWalletType, normalizeWalletType, walletKey } from "./utils/wallets.js";
95
+ import { getWalletDisplayName, getWalletIconColor, getWalletKindPill, getWalletLabel, isRemovableWalletType, isSystemWalletType, normalizeWalletType, walletKey } from "./utils/wallets.js";
95
96
  /* empty css */
96
97
  /* empty css */
97
98
  import { AVATAR_PALETTE, colors } from "./theme/colors.js";
@@ -448,6 +449,7 @@ export {
448
449
  UsersIcon,
449
450
  ValidationWarning,
450
451
  WalletList,
452
+ WalletListItem,
451
453
  WarningAmberIcon,
452
454
  WorkspacePremiumOutlinedIcon,
453
455
  YouTubeIcon,
@@ -486,6 +488,7 @@ export {
486
488
  getInitials,
487
489
  getLogoFilter,
488
490
  getWalletDisplayName,
491
+ getWalletIconColor,
489
492
  getWalletKindPill,
490
493
  getWalletLabel,
491
494
  inputLabelClasses,
@@ -1 +1 @@
1
- {"version":3,"file":"fairmint-ui.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"fairmint-ui.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -138,8 +138,10 @@ export type { InvestmentCardProps } from './components/specific/InvestmentCard/I
138
138
  export { InvestmentCard } from './components/specific/InvestmentCard/InvestmentCard';
139
139
  export type { InvestorProfileCardProps } from './components/specific/InvestorProfileCard/InvestorProfileCard';
140
140
  export { InvestorProfileCard } from './components/specific/InvestorProfileCard/InvestorProfileCard';
141
- export type { Wallet, WalletListProps } from './components/specific/WalletList/WalletList';
141
+ export type { WalletListProps } from './components/specific/WalletList/WalletList';
142
142
  export { WalletList } from './components/specific/WalletList/WalletList';
143
+ export type { WalletListItemProps } from './components/specific/WalletListItem/WalletListItem';
144
+ export { WalletListItem } from './components/specific/WalletListItem/WalletListItem';
143
145
  export { useDebouncedCallback } from './hooks/useDebouncedCallback';
144
146
  export { useForm } from './hooks/useForm';
145
147
  export { MOBILE_BREAKPOINT, useIsMobile } from './hooks/useIsMobile';
@@ -153,5 +155,6 @@ export { getAvatarColor, getInitials } from './utils/avatar';
153
155
  export { getLogoFilter, isLightColor } from './utils/color';
154
156
  export type { FormatMonetaryOptions, MonetaryLike } from './utils/format';
155
157
  export { formatCurrency, formatCurrencyPrecise, formatDate, formatMonetary, formatNumber, formatPercent, formatPreciseWithCurrency, localeForCountry, } from './utils/format';
156
- export { getWalletDisplayName, getWalletKindPill, getWalletLabel, isRemovableWalletType, isSystemWalletType, normalizeWalletType, walletKey, } from './utils/wallets';
158
+ export type { Wallet } from './utils/wallets';
159
+ export { getWalletDisplayName, getWalletIconColor, getWalletKindPill, getWalletLabel, isRemovableWalletType, isSystemWalletType, normalizeWalletType, walletKey, } from './utils/wallets';
157
160
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const React = require("react");
4
- const index = require("../../../../../../_virtual/index4.cjs");
4
+ const index = require("../../../../../../_virtual/index3.cjs");
5
5
  const getStatus = require("../../get-status/get-status.cjs");
6
6
  const clearListState = require("../../lists/clear-list-state.cjs");
7
7
  const getPath = require("../../paths/get-path.cjs");
@@ -1,5 +1,5 @@
1
1
  import { useState, useRef, useCallback } from "react";
2
- import isEqual from "../../../../../../_virtual/index4.js";
2
+ import isEqual from "../../../../../../_virtual/index3.js";
3
3
  import { getStatus } from "../../get-status/get-status.js";
4
4
  import { clearListState } from "../../lists/clear-list-state.js";
5
5
  import { getPath } from "../../paths/get-path.js";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index$1 = require("../../_virtual/index3.cjs");
3
+ const index$1 = require("../../_virtual/index4.cjs");
4
4
  const index = require("./node_modules/react-is/index.cjs");
5
5
  const factoryWithTypeCheckers = require("./factoryWithTypeCheckers.cjs");
6
6
  const factoryWithThrowingShims = require("./factoryWithThrowingShims.cjs");
@@ -1,4 +1,4 @@
1
- import { __module as propTypes } from "../../_virtual/index3.js";
1
+ import { __module as propTypes } from "../../_virtual/index4.js";
2
2
  import { __require as requireReactIs } from "./node_modules/react-is/index.js";
3
3
  import { __require as requireFactoryWithTypeCheckers } from "./factoryWithTypeCheckers.js";
4
4
  import { __require as requireFactoryWithThrowingShims } from "./factoryWithThrowingShims.js";
package/dist/styles.css CHANGED
@@ -9178,7 +9178,8 @@ fieldset:disabled .m_38aeed47:where(:not([data-inverted])),
9178
9178
  background-color: var(--fairmint-interactive-hover-bg, #f8f9fa);
9179
9179
  }
9180
9180
 
9181
- .fairmint-list-row:focus-visible {
9181
+ .fairmint-list-row:focus-visible,
9182
+ .fairmint-list-row:has(:focus-visible) {
9182
9183
  outline: 2px solid var(--fairmint-interactive-focus-ring, #6366f1);
9183
9184
  outline-offset: -2px;
9184
9185
  }