@fairmint/ui 0.4.10 → 0.4.12

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 (144) hide show
  1. package/dist/components/BrandedLoadingScreen/BrandedLoadingScreen.cjs +1 -1
  2. package/dist/components/BrandedLoadingScreen/BrandedLoadingScreen.js +1 -1
  3. package/dist/components/ErrorFallback/ErrorFallback.cjs +1 -1
  4. package/dist/components/ErrorFallback/ErrorFallback.js +1 -1
  5. package/dist/components/form/FormField.cjs +1 -1
  6. package/dist/components/form/FormField.js +1 -1
  7. package/dist/components/generic/AgentSuggestion/AgentSuggestion.cjs +1 -1
  8. package/dist/components/generic/AgentSuggestion/AgentSuggestion.js +1 -1
  9. package/dist/components/generic/Banner/Banner.cjs +1 -1
  10. package/dist/components/generic/Banner/Banner.js +1 -1
  11. package/dist/components/generic/BottomSheet/BottomSheet.cjs +1 -1
  12. package/dist/components/generic/BottomSheet/BottomSheet.js +1 -1
  13. package/dist/components/generic/CompanyBanner/CompanyBanner.cjs +1 -1
  14. package/dist/components/generic/CompanyBanner/CompanyBanner.js +1 -1
  15. package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.cjs +1 -1
  16. package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.js +1 -1
  17. package/dist/components/generic/Currency/Currency.cjs +1 -1
  18. package/dist/components/generic/Currency/Currency.js +1 -1
  19. package/dist/components/generic/DataRow/DataRow.cjs +24 -3
  20. package/dist/components/generic/DataRow/DataRow.cjs.map +1 -1
  21. package/dist/components/generic/DataRow/DataRow.d.ts.map +1 -1
  22. package/dist/components/generic/DataRow/DataRow.js +24 -3
  23. package/dist/components/generic/DataRow/DataRow.js.map +1 -1
  24. package/dist/components/generic/DataTable/DataTable.cjs +2 -2
  25. package/dist/components/generic/DataTable/DataTable.cjs.map +1 -1
  26. package/dist/components/generic/DataTable/DataTable.js +2 -2
  27. package/dist/components/generic/DataTable/DataTable.js.map +1 -1
  28. package/dist/components/generic/DateDisplay/DateDisplay.cjs +1 -1
  29. package/dist/components/generic/DateDisplay/DateDisplay.js +1 -1
  30. package/dist/components/generic/DocumentRow/DocumentRow.cjs +1 -1
  31. package/dist/components/generic/DocumentRow/DocumentRow.js +1 -1
  32. package/dist/components/generic/EditableSection/EditableSection.cjs +1 -1
  33. package/dist/components/generic/EditableSection/EditableSection.js +1 -1
  34. package/dist/components/generic/EmptyState/EmptyState.cjs +1 -1
  35. package/dist/components/generic/EmptyState/EmptyState.js +1 -1
  36. package/dist/components/generic/ErrorPage/ErrorPage.cjs +1 -1
  37. package/dist/components/generic/ErrorPage/ErrorPage.js +1 -1
  38. package/dist/components/generic/Eyebrow/Eyebrow.cjs +1 -1
  39. package/dist/components/generic/Eyebrow/Eyebrow.js +1 -1
  40. package/dist/components/generic/FileDropzone/FileDropzone.cjs +1 -1
  41. package/dist/components/generic/FileDropzone/FileDropzone.js +1 -1
  42. package/dist/components/generic/ListRow/ListRow.cjs +5 -4
  43. package/dist/components/generic/ListRow/ListRow.cjs.map +1 -1
  44. package/dist/components/generic/ListRow/ListRow.d.ts.map +1 -1
  45. package/dist/components/generic/ListRow/ListRow.js +5 -4
  46. package/dist/components/generic/ListRow/ListRow.js.map +1 -1
  47. package/dist/components/generic/MultiSelectSearch/MultiSelectSearch.cjs +1 -1
  48. package/dist/components/generic/MultiSelectSearch/MultiSelectSearch.js +1 -1
  49. package/dist/components/generic/NotificationRow/NotificationRow.cjs +1 -1
  50. package/dist/components/generic/NotificationRow/NotificationRow.js +1 -1
  51. package/dist/components/generic/Percent/Percent.cjs +1 -1
  52. package/dist/components/generic/Percent/Percent.js +1 -1
  53. package/dist/components/generic/PhotoCropModal/PhotoCropModal.cjs +1 -1
  54. package/dist/components/generic/PhotoCropModal/PhotoCropModal.js +1 -1
  55. package/dist/components/generic/ProcessingState/ProcessingState.cjs +1 -1
  56. package/dist/components/generic/ProcessingState/ProcessingState.js +1 -1
  57. package/dist/components/generic/RadioCard/RadioCard.cjs +1 -1
  58. package/dist/components/generic/RadioCard/RadioCard.js +1 -1
  59. package/dist/components/generic/StatCard/StatCard.cjs +1 -1
  60. package/dist/components/generic/StatCard/StatCard.js +1 -1
  61. package/dist/components/generic/StepCard/StepCard.cjs +3 -2
  62. package/dist/components/generic/StepCard/StepCard.cjs.map +1 -1
  63. package/dist/components/generic/StepCard/StepCard.d.ts.map +1 -1
  64. package/dist/components/generic/StepCard/StepCard.js +3 -2
  65. package/dist/components/generic/StepCard/StepCard.js.map +1 -1
  66. package/dist/components/generic/TablePagination/TablePagination.cjs +1 -1
  67. package/dist/components/generic/TablePagination/TablePagination.js +1 -1
  68. package/dist/components/generic/TaskInboxPopover/TaskInboxPopover.cjs +1 -1
  69. package/dist/components/generic/TaskInboxPopover/TaskInboxPopover.js +1 -1
  70. package/dist/components/generic/TaskRow/TaskRow.cjs +1 -1
  71. package/dist/components/generic/TaskRow/TaskRow.js +1 -1
  72. package/dist/components/layout/AccountSheet/AccountSheet.cjs +1 -1
  73. package/dist/components/layout/AccountSheet/AccountSheet.js +1 -1
  74. package/dist/components/layout/MobileNav/MobileNav.cjs +1 -1
  75. package/dist/components/layout/MobileNav/MobileNav.js +1 -1
  76. package/dist/components/layout/PageHeader/PageHeader.cjs +1 -1
  77. package/dist/components/layout/PageHeader/PageHeader.js +1 -1
  78. package/dist/components/primitives/Glossary/GlossaryContext.cjs +39 -0
  79. package/dist/components/primitives/Glossary/GlossaryContext.cjs.map +1 -0
  80. package/dist/components/primitives/Glossary/GlossaryContext.d.ts +49 -0
  81. package/dist/components/primitives/Glossary/GlossaryContext.d.ts.map +1 -0
  82. package/dist/components/primitives/Glossary/GlossaryContext.js +39 -0
  83. package/dist/components/primitives/Glossary/GlossaryContext.js.map +1 -0
  84. package/dist/components/primitives/Glossary/GlossaryTerm.cjs +147 -0
  85. package/dist/components/primitives/Glossary/GlossaryTerm.cjs.map +1 -0
  86. package/dist/components/primitives/Glossary/GlossaryTerm.d.ts +10 -0
  87. package/dist/components/primitives/Glossary/GlossaryTerm.d.ts.map +1 -0
  88. package/dist/components/primitives/Glossary/GlossaryTerm.js +147 -0
  89. package/dist/components/primitives/Glossary/GlossaryTerm.js.map +1 -0
  90. package/dist/components/primitives/Glossary/index.d.ts +3 -0
  91. package/dist/components/primitives/Glossary/index.d.ts.map +1 -0
  92. package/dist/components/primitives/Text/Text.cjs +112 -0
  93. package/dist/components/primitives/Text/Text.cjs.map +1 -0
  94. package/dist/components/primitives/Text/Text.d.ts +22 -0
  95. package/dist/components/primitives/Text/Text.d.ts.map +1 -0
  96. package/dist/components/primitives/Text/Text.js +112 -0
  97. package/dist/components/primitives/Text/Text.js.map +1 -0
  98. package/dist/components/primitives/Text/index.d.ts +2 -0
  99. package/dist/components/primitives/Text/index.d.ts.map +1 -0
  100. package/dist/components/primitives/index.d.ts +2 -0
  101. package/dist/components/primitives/index.d.ts.map +1 -1
  102. package/dist/components/primitives/layout.cjs.map +1 -1
  103. package/dist/components/primitives/layout.d.ts +2 -1
  104. package/dist/components/primitives/layout.d.ts.map +1 -1
  105. package/dist/components/primitives/layout.js.map +1 -1
  106. package/dist/components/primitives/muiCompat.cjs +8 -8
  107. package/dist/components/primitives/muiCompat.cjs.map +1 -1
  108. package/dist/components/primitives/muiCompat.d.ts.map +1 -1
  109. package/dist/components/primitives/muiCompat.js +8 -8
  110. package/dist/components/primitives/muiCompat.js.map +1 -1
  111. package/dist/components/specific/DocumentRow/DocumentRow.cjs +91 -14
  112. package/dist/components/specific/DocumentRow/DocumentRow.cjs.map +1 -1
  113. package/dist/components/specific/DocumentRow/DocumentRow.d.ts +7 -1
  114. package/dist/components/specific/DocumentRow/DocumentRow.d.ts.map +1 -1
  115. package/dist/components/specific/DocumentRow/DocumentRow.js +92 -15
  116. package/dist/components/specific/DocumentRow/DocumentRow.js.map +1 -1
  117. package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.cjs +1 -1
  118. package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.js +1 -1
  119. package/dist/components/specific/WalletList/WalletList.cjs +1 -1
  120. package/dist/components/specific/WalletList/WalletList.js +1 -1
  121. package/dist/components/specific/WalletListItem/WalletListItem.cjs +3 -2
  122. package/dist/components/specific/WalletListItem/WalletListItem.cjs.map +1 -1
  123. package/dist/components/specific/WalletListItem/WalletListItem.d.ts.map +1 -1
  124. package/dist/components/specific/WalletListItem/WalletListItem.js +3 -2
  125. package/dist/components/specific/WalletListItem/WalletListItem.js.map +1 -1
  126. package/dist/constants/glossary.cjs +210 -0
  127. package/dist/constants/glossary.cjs.map +1 -0
  128. package/dist/constants/glossary.d.ts +26 -0
  129. package/dist/constants/glossary.d.ts.map +1 -0
  130. package/dist/constants/glossary.js +210 -0
  131. package/dist/constants/glossary.js.map +1 -0
  132. package/dist/fairmint-ui.cjs +13 -1
  133. package/dist/fairmint-ui.cjs.map +1 -1
  134. package/dist/fairmint-ui.js +13 -1
  135. package/dist/fairmint-ui.js.map +1 -1
  136. package/dist/index.d.ts +3 -0
  137. package/dist/index.d.ts.map +1 -1
  138. package/dist/utils/glossaryMatcher.cjs +89 -0
  139. package/dist/utils/glossaryMatcher.cjs.map +1 -0
  140. package/dist/utils/glossaryMatcher.d.ts +23 -0
  141. package/dist/utils/glossaryMatcher.d.ts.map +1 -0
  142. package/dist/utils/glossaryMatcher.js +89 -0
  143. package/dist/utils/glossaryMatcher.js.map +1 -0
  144. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { fairmintVars } from "../../../theme/index.js";
3
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
3
+ import { Text } from "../../primitives/Text/Text.js";
4
4
  function Eyebrow({
5
5
  children,
6
6
  size = "xs",
@@ -8,7 +8,7 @@ const Loader = require("../../primitives/Loader/Loader.cjs");
8
8
  const layout = require("../../primitives/layout.cjs");
9
9
  const Banner = require("../Banner/Banner.cjs");
10
10
  const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
11
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
11
+ const Text = require("../../primitives/Text/Text.cjs");
12
12
  const ThemeIcon = require("../../../node_modules/@mantine/core/esm/components/ThemeIcon/ThemeIcon.cjs");
13
13
  const errorTextProps = {
14
14
  size: "xs",
@@ -6,7 +6,7 @@ import { Loader } from "../../primitives/Loader/Loader.js";
6
6
  import { Stack, Box } from "../../primitives/layout.js";
7
7
  import { Banner } from "../Banner/Banner.js";
8
8
  import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
9
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
9
+ import { Text } from "../../primitives/Text/Text.js";
10
10
  import { ThemeIcon } from "../../../node_modules/@mantine/core/esm/components/ThemeIcon/ThemeIcon.js";
11
11
  const errorTextProps = {
12
12
  size: "xs",
@@ -6,7 +6,7 @@ const colors = require("../../../theme/colors.cjs");
6
6
  const Avatar = require("../../primitives/Avatar/Avatar.cjs");
7
7
  const layout = require("../../primitives/layout.cjs");
8
8
  const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
9
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
9
+ const Text = require("../../primitives/Text/Text.cjs");
10
10
  const UnstyledButton = require("../../../node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.cjs");
11
11
  const DefaultChevronIcon = () => /* @__PURE__ */ jsxRuntime.jsx(
12
12
  "svg",
@@ -57,18 +57,19 @@ function ListRow({
57
57
  }
58
58
  ),
59
59
  /* @__PURE__ */ jsxRuntime.jsxs(layout.Box, { flex: 1, miw: 0, children: [
60
- /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { fw: 500, size: "sm", truncate: true, children: title }),
61
- subtitle && /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { size: "xs", c: index.fairmintVars.colorTextSecondary, lh: 1.3, children: subtitle })
60
+ /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { fw: 500, size: "sm", truncate: true, glossary: false, children: title }),
61
+ subtitle && /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { size: "xs", c: index.fairmintVars.colorTextSecondary, lh: 1.3, glossary: false, children: subtitle })
62
62
  ] }),
63
63
  /* @__PURE__ */ jsxRuntime.jsxs(Group.Group, { gap: 6, wrap: "nowrap", children: [
64
64
  rightSection ?? (value !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(layout.Stack, { gap: 2, align: "flex-end", children: [
65
- /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { fw: 500, size: "sm", style: { whiteSpace: "nowrap" }, children: value }),
65
+ /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { fw: 500, size: "sm", style: { whiteSpace: "nowrap" }, glossary: false, children: value }),
66
66
  valueSubtitle && /* @__PURE__ */ jsxRuntime.jsx(
67
67
  Text.Text,
68
68
  {
69
69
  size: "xs",
70
70
  c: index.fairmintVars.colorTextSecondary,
71
71
  style: { whiteSpace: "nowrap" },
72
+ glossary: false,
72
73
  children: valueSubtitle
73
74
  }
74
75
  )
@@ -1 +1 @@
1
- {"version":3,"file":"ListRow.cjs","sources":["../../../../src/components/generic/ListRow/ListRow.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { fairmintVars } from \"../../../theme\";\nimport { colors } from \"../../../theme/colors\";\nimport { Avatar } from \"../../primitives/Avatar/Avatar\";\nimport { Box, Group, Stack, Text, UnstyledButton } from \"../../primitives/layout\";\n\nexport interface ListRowProps {\n /** Avatar image URL. Falls back to name-derived initial. */\n avatarSrc?: string;\n /** @deprecated Use `avatarName` instead. Preserved for backwards compatibility. */\n avatarFallback?: string;\n /**\n * Name used to derive a fallback initial and deterministic avatar color.\n * Defaults to `title` when omitted.\n */\n avatarName?: string;\n /** Explicit avatar background color override. When set, takes precedence over the name-derived color. */\n avatarColor?: string;\n /**\n * When true and `avatarColor` is omitted, the Avatar primitive derives a\n * deterministic background color from `avatarName` / `title`.\n * @default false\n */\n avatarColorFromName?: boolean;\n /** Primary text. */\n title: string;\n /** Secondary text below title. */\n subtitle?: string;\n /** Right-aligned value text. */\n value?: string;\n /** Right-aligned secondary value text (below `value`). */\n valueSubtitle?: string;\n /** Right section slot — overrides `value`/`valueSubtitle` if provided. */\n rightSection?: ReactNode;\n /** Show chevron indicator. @default true when onClick is provided */\n showChevron?: boolean;\n /** Chevron icon override. */\n chevronIcon?: ReactNode;\n /** Click handler. Makes the row interactive. */\n onClick?: () => void;\n /** Entrance animation delay in seconds. Omit to skip animation. */\n animationDelay?: number;\n /** Whether this row is selected (highlighted state). @default false */\n isSelected?: boolean;\n /** aria-label for the button. Defaults to title. */\n ariaLabel?: string;\n}\n\nconst DefaultChevronIcon = () => (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n);\n\nexport function ListRow({\n avatarSrc,\n avatarFallback,\n avatarColor,\n avatarColorFromName = false,\n title,\n avatarName = title,\n subtitle,\n value,\n valueSubtitle,\n rightSection,\n showChevron,\n chevronIcon,\n onClick,\n animationDelay,\n isSelected = false,\n ariaLabel,\n}: ListRowProps) {\n const animate = animationDelay !== undefined;\n const isClickable = Boolean(onClick);\n const displayChevron = showChevron ?? isClickable;\n\n const content = (\n <Group gap=\"sm\" wrap=\"nowrap\">\n <Avatar\n src={avatarSrc}\n alt={title}\n name={avatarName}\n size={40}\n color={avatarColor ?? (avatarColorFromName ? undefined : colors.primary)}\n >\n {avatarFallback}\n </Avatar>\n\n <Box flex={1} miw={0}>\n <Text fw={500} size=\"sm\" truncate>\n {title}\n </Text>\n {subtitle && (\n <Text size=\"xs\" c={fairmintVars.colorTextSecondary} lh={1.3}>\n {subtitle}\n </Text>\n )}\n </Box>\n\n <Group gap={6} wrap=\"nowrap\">\n {rightSection ??\n (value !== undefined && (\n <Stack gap={2} align=\"flex-end\">\n <Text fw={500} size=\"sm\" style={{ whiteSpace: \"nowrap\" }}>\n {value}\n </Text>\n {valueSubtitle && (\n <Text\n size=\"xs\"\n c={fairmintVars.colorTextSecondary}\n style={{ whiteSpace: \"nowrap\" }}\n >\n {valueSubtitle}\n </Text>\n )}\n </Stack>\n ))}\n {displayChevron &&\n (chevronIcon ?? (\n <Box c={fairmintVars.colorTextTertiary} style={{ flexShrink: 0 }}>\n <DefaultChevronIcon />\n </Box>\n ))}\n </Group>\n </Group>\n );\n\n const animationStyle = animate\n ? {\n opacity: 0 as const,\n animation: \"rowSlideIn 0.35s cubic-bezier(0.22, 1, 0.36, 1) forwards\",\n animationDelay: `${animationDelay}s`,\n }\n : undefined;\n\n if (!isClickable) {\n return (\n <Box\n bg={isSelected ? fairmintVars.colorSurfaceSelected : undefined}\n py=\"sm\"\n px=\"md\"\n style={animationStyle}\n >\n {content}\n </Box>\n );\n }\n\n return (\n <UnstyledButton\n bg={isSelected ? fairmintVars.colorSurfaceSelected : undefined}\n onClick={onClick}\n className=\"fairmint-list-row\"\n w=\"100%\"\n py=\"sm\"\n px=\"md\"\n style={animationStyle}\n aria-label={ariaLabel ?? title}\n >\n {content}\n </UnstyledButton>\n );\n}\n"],"names":["jsx","jsxs","Group","Avatar","colors","Box","Text","fairmintVars","Stack","UnstyledButton"],"mappings":"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"}
1
+ {"version":3,"file":"ListRow.cjs","sources":["../../../../src/components/generic/ListRow/ListRow.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { fairmintVars } from \"../../../theme\";\nimport { colors } from \"../../../theme/colors\";\nimport { Avatar } from \"../../primitives/Avatar/Avatar\";\nimport { Box, Group, Stack, Text, UnstyledButton } from \"../../primitives/layout\";\n\nexport interface ListRowProps {\n /** Avatar image URL. Falls back to name-derived initial. */\n avatarSrc?: string;\n /** @deprecated Use `avatarName` instead. Preserved for backwards compatibility. */\n avatarFallback?: string;\n /**\n * Name used to derive a fallback initial and deterministic avatar color.\n * Defaults to `title` when omitted.\n */\n avatarName?: string;\n /** Explicit avatar background color override. When set, takes precedence over the name-derived color. */\n avatarColor?: string;\n /**\n * When true and `avatarColor` is omitted, the Avatar primitive derives a\n * deterministic background color from `avatarName` / `title`.\n * @default false\n */\n avatarColorFromName?: boolean;\n /** Primary text. */\n title: string;\n /** Secondary text below title. */\n subtitle?: string;\n /** Right-aligned value text. */\n value?: string;\n /** Right-aligned secondary value text (below `value`). */\n valueSubtitle?: string;\n /** Right section slot — overrides `value`/`valueSubtitle` if provided. */\n rightSection?: ReactNode;\n /** Show chevron indicator. @default true when onClick is provided */\n showChevron?: boolean;\n /** Chevron icon override. */\n chevronIcon?: ReactNode;\n /** Click handler. Makes the row interactive. */\n onClick?: () => void;\n /** Entrance animation delay in seconds. Omit to skip animation. */\n animationDelay?: number;\n /** Whether this row is selected (highlighted state). @default false */\n isSelected?: boolean;\n /** aria-label for the button. Defaults to title. */\n ariaLabel?: string;\n}\n\nconst DefaultChevronIcon = () => (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n);\n\nexport function ListRow({\n avatarSrc,\n avatarFallback,\n avatarColor,\n avatarColorFromName = false,\n title,\n avatarName = title,\n subtitle,\n value,\n valueSubtitle,\n rightSection,\n showChevron,\n chevronIcon,\n onClick,\n animationDelay,\n isSelected = false,\n ariaLabel,\n}: ListRowProps) {\n const animate = animationDelay !== undefined;\n const isClickable = Boolean(onClick);\n const displayChevron = showChevron ?? isClickable;\n\n const content = (\n <Group gap=\"sm\" wrap=\"nowrap\">\n <Avatar\n src={avatarSrc}\n alt={title}\n name={avatarName}\n size={40}\n color={avatarColor ?? (avatarColorFromName ? undefined : colors.primary)}\n >\n {avatarFallback}\n </Avatar>\n\n <Box flex={1} miw={0}>\n <Text fw={500} size=\"sm\" truncate glossary={false}>\n {title}\n </Text>\n {subtitle && (\n <Text size=\"xs\" c={fairmintVars.colorTextSecondary} lh={1.3} glossary={false}>\n {subtitle}\n </Text>\n )}\n </Box>\n\n <Group gap={6} wrap=\"nowrap\">\n {rightSection ??\n (value !== undefined && (\n <Stack gap={2} align=\"flex-end\">\n <Text fw={500} size=\"sm\" style={{ whiteSpace: \"nowrap\" }} glossary={false}>\n {value}\n </Text>\n {valueSubtitle && (\n <Text\n size=\"xs\"\n c={fairmintVars.colorTextSecondary}\n style={{ whiteSpace: \"nowrap\" }}\n glossary={false}\n >\n {valueSubtitle}\n </Text>\n )}\n </Stack>\n ))}\n {displayChevron &&\n (chevronIcon ?? (\n <Box c={fairmintVars.colorTextTertiary} style={{ flexShrink: 0 }}>\n <DefaultChevronIcon />\n </Box>\n ))}\n </Group>\n </Group>\n );\n\n const animationStyle = animate\n ? {\n opacity: 0 as const,\n animation: \"rowSlideIn 0.35s cubic-bezier(0.22, 1, 0.36, 1) forwards\",\n animationDelay: `${animationDelay}s`,\n }\n : undefined;\n\n if (!isClickable) {\n return (\n <Box\n bg={isSelected ? fairmintVars.colorSurfaceSelected : undefined}\n py=\"sm\"\n px=\"md\"\n style={animationStyle}\n >\n {content}\n </Box>\n );\n }\n\n return (\n <UnstyledButton\n bg={isSelected ? fairmintVars.colorSurfaceSelected : undefined}\n onClick={onClick}\n className=\"fairmint-list-row\"\n w=\"100%\"\n py=\"sm\"\n px=\"md\"\n style={animationStyle}\n aria-label={ariaLabel ?? title}\n >\n {content}\n </UnstyledButton>\n );\n}\n"],"names":["jsx","jsxs","Group","Avatar","colors","Box","Text","fairmintVars","Stack","UnstyledButton"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListRow.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/ListRow/ListRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yGAAyG;IACzG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkBD,wBAAgB,OAAO,CAAC,EACtB,SAAS,EACT,cAAc,EACd,WAAW,EACX,mBAA2B,EAC3B,KAAK,EACL,UAAkB,EAClB,QAAQ,EACR,KAAK,EACL,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,OAAO,EACP,cAAc,EACd,UAAkB,EAClB,SAAS,GACV,EAAE,YAAY,+BA2Fd"}
1
+ {"version":3,"file":"ListRow.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/ListRow/ListRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yGAAyG;IACzG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkBD,wBAAgB,OAAO,CAAC,EACtB,SAAS,EACT,cAAc,EACd,WAAW,EACX,mBAA2B,EAC3B,KAAK,EACL,UAAkB,EAClB,QAAQ,EACR,KAAK,EACL,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,OAAO,EACP,cAAc,EACd,UAAkB,EAClB,SAAS,GACV,EAAE,YAAY,+BA4Fd"}
@@ -4,7 +4,7 @@ import { colors } from "../../../theme/colors.js";
4
4
  import { Avatar } from "../../primitives/Avatar/Avatar.js";
5
5
  import { Box, Stack } from "../../primitives/layout.js";
6
6
  import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
7
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
7
+ import { Text } from "../../primitives/Text/Text.js";
8
8
  import { UnstyledButton } from "../../../node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.js";
9
9
  const DefaultChevronIcon = () => /* @__PURE__ */ jsx(
10
10
  "svg",
@@ -55,18 +55,19 @@ function ListRow({
55
55
  }
56
56
  ),
57
57
  /* @__PURE__ */ jsxs(Box, { flex: 1, miw: 0, children: [
58
- /* @__PURE__ */ jsx(Text, { fw: 500, size: "sm", truncate: true, children: title }),
59
- subtitle && /* @__PURE__ */ jsx(Text, { size: "xs", c: fairmintVars.colorTextSecondary, lh: 1.3, children: subtitle })
58
+ /* @__PURE__ */ jsx(Text, { fw: 500, size: "sm", truncate: true, glossary: false, children: title }),
59
+ subtitle && /* @__PURE__ */ jsx(Text, { size: "xs", c: fairmintVars.colorTextSecondary, lh: 1.3, glossary: false, children: subtitle })
60
60
  ] }),
61
61
  /* @__PURE__ */ jsxs(Group, { gap: 6, wrap: "nowrap", children: [
62
62
  rightSection ?? (value !== void 0 && /* @__PURE__ */ jsxs(Stack, { gap: 2, align: "flex-end", children: [
63
- /* @__PURE__ */ jsx(Text, { fw: 500, size: "sm", style: { whiteSpace: "nowrap" }, children: value }),
63
+ /* @__PURE__ */ jsx(Text, { fw: 500, size: "sm", style: { whiteSpace: "nowrap" }, glossary: false, children: value }),
64
64
  valueSubtitle && /* @__PURE__ */ jsx(
65
65
  Text,
66
66
  {
67
67
  size: "xs",
68
68
  c: fairmintVars.colorTextSecondary,
69
69
  style: { whiteSpace: "nowrap" },
70
+ glossary: false,
70
71
  children: valueSubtitle
71
72
  }
72
73
  )
@@ -1 +1 @@
1
- {"version":3,"file":"ListRow.js","sources":["../../../../src/components/generic/ListRow/ListRow.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { fairmintVars } from \"../../../theme\";\nimport { colors } from \"../../../theme/colors\";\nimport { Avatar } from \"../../primitives/Avatar/Avatar\";\nimport { Box, Group, Stack, Text, UnstyledButton } from \"../../primitives/layout\";\n\nexport interface ListRowProps {\n /** Avatar image URL. Falls back to name-derived initial. */\n avatarSrc?: string;\n /** @deprecated Use `avatarName` instead. Preserved for backwards compatibility. */\n avatarFallback?: string;\n /**\n * Name used to derive a fallback initial and deterministic avatar color.\n * Defaults to `title` when omitted.\n */\n avatarName?: string;\n /** Explicit avatar background color override. When set, takes precedence over the name-derived color. */\n avatarColor?: string;\n /**\n * When true and `avatarColor` is omitted, the Avatar primitive derives a\n * deterministic background color from `avatarName` / `title`.\n * @default false\n */\n avatarColorFromName?: boolean;\n /** Primary text. */\n title: string;\n /** Secondary text below title. */\n subtitle?: string;\n /** Right-aligned value text. */\n value?: string;\n /** Right-aligned secondary value text (below `value`). */\n valueSubtitle?: string;\n /** Right section slot — overrides `value`/`valueSubtitle` if provided. */\n rightSection?: ReactNode;\n /** Show chevron indicator. @default true when onClick is provided */\n showChevron?: boolean;\n /** Chevron icon override. */\n chevronIcon?: ReactNode;\n /** Click handler. Makes the row interactive. */\n onClick?: () => void;\n /** Entrance animation delay in seconds. Omit to skip animation. */\n animationDelay?: number;\n /** Whether this row is selected (highlighted state). @default false */\n isSelected?: boolean;\n /** aria-label for the button. Defaults to title. */\n ariaLabel?: string;\n}\n\nconst DefaultChevronIcon = () => (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n);\n\nexport function ListRow({\n avatarSrc,\n avatarFallback,\n avatarColor,\n avatarColorFromName = false,\n title,\n avatarName = title,\n subtitle,\n value,\n valueSubtitle,\n rightSection,\n showChevron,\n chevronIcon,\n onClick,\n animationDelay,\n isSelected = false,\n ariaLabel,\n}: ListRowProps) {\n const animate = animationDelay !== undefined;\n const isClickable = Boolean(onClick);\n const displayChevron = showChevron ?? isClickable;\n\n const content = (\n <Group gap=\"sm\" wrap=\"nowrap\">\n <Avatar\n src={avatarSrc}\n alt={title}\n name={avatarName}\n size={40}\n color={avatarColor ?? (avatarColorFromName ? undefined : colors.primary)}\n >\n {avatarFallback}\n </Avatar>\n\n <Box flex={1} miw={0}>\n <Text fw={500} size=\"sm\" truncate>\n {title}\n </Text>\n {subtitle && (\n <Text size=\"xs\" c={fairmintVars.colorTextSecondary} lh={1.3}>\n {subtitle}\n </Text>\n )}\n </Box>\n\n <Group gap={6} wrap=\"nowrap\">\n {rightSection ??\n (value !== undefined && (\n <Stack gap={2} align=\"flex-end\">\n <Text fw={500} size=\"sm\" style={{ whiteSpace: \"nowrap\" }}>\n {value}\n </Text>\n {valueSubtitle && (\n <Text\n size=\"xs\"\n c={fairmintVars.colorTextSecondary}\n style={{ whiteSpace: \"nowrap\" }}\n >\n {valueSubtitle}\n </Text>\n )}\n </Stack>\n ))}\n {displayChevron &&\n (chevronIcon ?? (\n <Box c={fairmintVars.colorTextTertiary} style={{ flexShrink: 0 }}>\n <DefaultChevronIcon />\n </Box>\n ))}\n </Group>\n </Group>\n );\n\n const animationStyle = animate\n ? {\n opacity: 0 as const,\n animation: \"rowSlideIn 0.35s cubic-bezier(0.22, 1, 0.36, 1) forwards\",\n animationDelay: `${animationDelay}s`,\n }\n : undefined;\n\n if (!isClickable) {\n return (\n <Box\n bg={isSelected ? fairmintVars.colorSurfaceSelected : undefined}\n py=\"sm\"\n px=\"md\"\n style={animationStyle}\n >\n {content}\n </Box>\n );\n }\n\n return (\n <UnstyledButton\n bg={isSelected ? fairmintVars.colorSurfaceSelected : undefined}\n onClick={onClick}\n className=\"fairmint-list-row\"\n w=\"100%\"\n py=\"sm\"\n px=\"md\"\n style={animationStyle}\n aria-label={ariaLabel ?? title}\n >\n {content}\n </UnstyledButton>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAgDA,MAAM,qBAAqB,MACzB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACf,eAAY;AAAA,IAEZ,UAAA,oBAAC,QAAA,EAAK,GAAE,gBAAA,CAAgB;AAAA,EAAA;AAC1B;AAGK,SAAS,QAAQ;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA,sBAAsB;AAAA,EACtB;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AACF,GAAiB;AACf,QAAM,UAAU,mBAAmB;AACnC,QAAM,cAAc,QAAQ,OAAO;AACnC,QAAM,iBAAiB,eAAe;AAEtC,QAAM,UACJ,qBAAC,OAAA,EAAM,KAAI,MAAK,MAAK,UACnB,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAK;AAAA,QACL,KAAK;AAAA,QACL,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO,gBAAgB,sBAAsB,SAAY,OAAO;AAAA,QAE/D,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGH,qBAAC,KAAA,EAAI,MAAM,GAAG,KAAK,GACjB,UAAA;AAAA,MAAA,oBAAC,QAAK,IAAI,KAAK,MAAK,MAAK,UAAQ,MAC9B,UAAA,MAAA,CACH;AAAA,MACC,YACC,oBAAC,MAAA,EAAK,MAAK,MAAK,GAAG,aAAa,oBAAoB,IAAI,KACrD,UAAA,SAAA,CACH;AAAA,IAAA,GAEJ;AAAA,IAEA,qBAAC,OAAA,EAAM,KAAK,GAAG,MAAK,UACjB,UAAA;AAAA,MAAA,iBACE,UAAU,UACT,qBAAC,SAAM,KAAK,GAAG,OAAM,YACnB,UAAA;AAAA,QAAA,oBAAC,MAAA,EAAK,IAAI,KAAK,MAAK,MAAK,OAAO,EAAE,YAAY,SAAA,GAC3C,UAAA,MAAA,CACH;AAAA,QACC,iBACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAG,aAAa;AAAA,YAChB,OAAO,EAAE,YAAY,SAAA;AAAA,YAEpB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EAAA,CAEJ;AAAA,MAEH,mBACE,eACC,oBAAC,KAAA,EAAI,GAAG,aAAa,mBAAmB,OAAO,EAAE,YAAY,EAAA,GAC3D,UAAA,oBAAC,sBAAmB,GACtB;AAAA,IAAA,EAAA,CAEN;AAAA,EAAA,GACF;AAGF,QAAM,iBAAiB,UACnB;AAAA,IACE,SAAS;AAAA,IACT,WAAW;AAAA,IACX,gBAAgB,GAAG,cAAc;AAAA,EAAA,IAEnC;AAEJ,MAAI,CAAC,aAAa;AAChB,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI,aAAa,aAAa,uBAAuB;AAAA,QACrD,IAAG;AAAA,QACH,IAAG;AAAA,QACH,OAAO;AAAA,QAEN,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAI,aAAa,aAAa,uBAAuB;AAAA,MACrD;AAAA,MACA,WAAU;AAAA,MACV,GAAE;AAAA,MACF,IAAG;AAAA,MACH,IAAG;AAAA,MACH,OAAO;AAAA,MACP,cAAY,aAAa;AAAA,MAExB,UAAA;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"ListRow.js","sources":["../../../../src/components/generic/ListRow/ListRow.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { fairmintVars } from \"../../../theme\";\nimport { colors } from \"../../../theme/colors\";\nimport { Avatar } from \"../../primitives/Avatar/Avatar\";\nimport { Box, Group, Stack, Text, UnstyledButton } from \"../../primitives/layout\";\n\nexport interface ListRowProps {\n /** Avatar image URL. Falls back to name-derived initial. */\n avatarSrc?: string;\n /** @deprecated Use `avatarName` instead. Preserved for backwards compatibility. */\n avatarFallback?: string;\n /**\n * Name used to derive a fallback initial and deterministic avatar color.\n * Defaults to `title` when omitted.\n */\n avatarName?: string;\n /** Explicit avatar background color override. When set, takes precedence over the name-derived color. */\n avatarColor?: string;\n /**\n * When true and `avatarColor` is omitted, the Avatar primitive derives a\n * deterministic background color from `avatarName` / `title`.\n * @default false\n */\n avatarColorFromName?: boolean;\n /** Primary text. */\n title: string;\n /** Secondary text below title. */\n subtitle?: string;\n /** Right-aligned value text. */\n value?: string;\n /** Right-aligned secondary value text (below `value`). */\n valueSubtitle?: string;\n /** Right section slot — overrides `value`/`valueSubtitle` if provided. */\n rightSection?: ReactNode;\n /** Show chevron indicator. @default true when onClick is provided */\n showChevron?: boolean;\n /** Chevron icon override. */\n chevronIcon?: ReactNode;\n /** Click handler. Makes the row interactive. */\n onClick?: () => void;\n /** Entrance animation delay in seconds. Omit to skip animation. */\n animationDelay?: number;\n /** Whether this row is selected (highlighted state). @default false */\n isSelected?: boolean;\n /** aria-label for the button. Defaults to title. */\n ariaLabel?: string;\n}\n\nconst DefaultChevronIcon = () => (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n);\n\nexport function ListRow({\n avatarSrc,\n avatarFallback,\n avatarColor,\n avatarColorFromName = false,\n title,\n avatarName = title,\n subtitle,\n value,\n valueSubtitle,\n rightSection,\n showChevron,\n chevronIcon,\n onClick,\n animationDelay,\n isSelected = false,\n ariaLabel,\n}: ListRowProps) {\n const animate = animationDelay !== undefined;\n const isClickable = Boolean(onClick);\n const displayChevron = showChevron ?? isClickable;\n\n const content = (\n <Group gap=\"sm\" wrap=\"nowrap\">\n <Avatar\n src={avatarSrc}\n alt={title}\n name={avatarName}\n size={40}\n color={avatarColor ?? (avatarColorFromName ? undefined : colors.primary)}\n >\n {avatarFallback}\n </Avatar>\n\n <Box flex={1} miw={0}>\n <Text fw={500} size=\"sm\" truncate glossary={false}>\n {title}\n </Text>\n {subtitle && (\n <Text size=\"xs\" c={fairmintVars.colorTextSecondary} lh={1.3} glossary={false}>\n {subtitle}\n </Text>\n )}\n </Box>\n\n <Group gap={6} wrap=\"nowrap\">\n {rightSection ??\n (value !== undefined && (\n <Stack gap={2} align=\"flex-end\">\n <Text fw={500} size=\"sm\" style={{ whiteSpace: \"nowrap\" }} glossary={false}>\n {value}\n </Text>\n {valueSubtitle && (\n <Text\n size=\"xs\"\n c={fairmintVars.colorTextSecondary}\n style={{ whiteSpace: \"nowrap\" }}\n glossary={false}\n >\n {valueSubtitle}\n </Text>\n )}\n </Stack>\n ))}\n {displayChevron &&\n (chevronIcon ?? (\n <Box c={fairmintVars.colorTextTertiary} style={{ flexShrink: 0 }}>\n <DefaultChevronIcon />\n </Box>\n ))}\n </Group>\n </Group>\n );\n\n const animationStyle = animate\n ? {\n opacity: 0 as const,\n animation: \"rowSlideIn 0.35s cubic-bezier(0.22, 1, 0.36, 1) forwards\",\n animationDelay: `${animationDelay}s`,\n }\n : undefined;\n\n if (!isClickable) {\n return (\n <Box\n bg={isSelected ? fairmintVars.colorSurfaceSelected : undefined}\n py=\"sm\"\n px=\"md\"\n style={animationStyle}\n >\n {content}\n </Box>\n );\n }\n\n return (\n <UnstyledButton\n bg={isSelected ? fairmintVars.colorSurfaceSelected : undefined}\n onClick={onClick}\n className=\"fairmint-list-row\"\n w=\"100%\"\n py=\"sm\"\n px=\"md\"\n style={animationStyle}\n aria-label={ariaLabel ?? title}\n >\n {content}\n </UnstyledButton>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAgDA,MAAM,qBAAqB,MACzB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACf,eAAY;AAAA,IAEZ,UAAA,oBAAC,QAAA,EAAK,GAAE,gBAAA,CAAgB;AAAA,EAAA;AAC1B;AAGK,SAAS,QAAQ;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA,sBAAsB;AAAA,EACtB;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AACF,GAAiB;AACf,QAAM,UAAU,mBAAmB;AACnC,QAAM,cAAc,QAAQ,OAAO;AACnC,QAAM,iBAAiB,eAAe;AAEtC,QAAM,UACJ,qBAAC,OAAA,EAAM,KAAI,MAAK,MAAK,UACnB,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAK;AAAA,QACL,KAAK;AAAA,QACL,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO,gBAAgB,sBAAsB,SAAY,OAAO;AAAA,QAE/D,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGH,qBAAC,KAAA,EAAI,MAAM,GAAG,KAAK,GACjB,UAAA;AAAA,MAAA,oBAAC,MAAA,EAAK,IAAI,KAAK,MAAK,MAAK,UAAQ,MAAC,UAAU,OACzC,UAAA,MAAA,CACH;AAAA,MACC,YACC,oBAAC,MAAA,EAAK,MAAK,MAAK,GAAG,aAAa,oBAAoB,IAAI,KAAK,UAAU,OACpE,UAAA,SAAA,CACH;AAAA,IAAA,GAEJ;AAAA,IAEA,qBAAC,OAAA,EAAM,KAAK,GAAG,MAAK,UACjB,UAAA;AAAA,MAAA,iBACE,UAAU,UACT,qBAAC,SAAM,KAAK,GAAG,OAAM,YACnB,UAAA;AAAA,QAAA,oBAAC,MAAA,EAAK,IAAI,KAAK,MAAK,MAAK,OAAO,EAAE,YAAY,SAAA,GAAY,UAAU,OACjE,UAAA,OACH;AAAA,QACC,iBACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAG,aAAa;AAAA,YAChB,OAAO,EAAE,YAAY,SAAA;AAAA,YACrB,UAAU;AAAA,YAET,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EAAA,CAEJ;AAAA,MAEH,mBACE,eACC,oBAAC,KAAA,EAAI,GAAG,aAAa,mBAAmB,OAAO,EAAE,YAAY,EAAA,GAC3D,UAAA,oBAAC,sBAAmB,GACtB;AAAA,IAAA,EAAA,CAEN;AAAA,EAAA,GACF;AAGF,QAAM,iBAAiB,UACnB;AAAA,IACE,SAAS;AAAA,IACT,WAAW;AAAA,IACX,gBAAgB,GAAG,cAAc;AAAA,EAAA,IAEnC;AAEJ,MAAI,CAAC,aAAa;AAChB,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI,aAAa,aAAa,uBAAuB;AAAA,QACrD,IAAG;AAAA,QACH,IAAG;AAAA,QACH,OAAO;AAAA,QAEN,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAI,aAAa,aAAa,uBAAuB;AAAA,MACrD;AAAA,MACA,WAAU;AAAA,MACV,GAAE;AAAA,MACF,IAAG;AAAA,MACH,IAAG;AAAA,MACH,OAAO;AAAA,MACP,cAAY,aAAa;AAAA,MAExB,UAAA;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -5,7 +5,7 @@ const React = require("react");
5
5
  const colors = require("../../../theme/colors.cjs");
6
6
  const layout = require("../../primitives/layout.cjs");
7
7
  const MultiSelect = require("../../primitives/MultiSelect/MultiSelect.cjs");
8
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
8
+ const Text = require("../../primitives/Text/Text.cjs");
9
9
  const multiSelectSearchDefaultFilter = ({
10
10
  options,
11
11
  search,
@@ -3,7 +3,7 @@ import { forwardRef, useMemo } from "react";
3
3
  import { colors } from "../../../theme/colors.js";
4
4
  import { Stack } from "../../primitives/layout.js";
5
5
  import { MultiSelect } from "../../primitives/MultiSelect/MultiSelect.js";
6
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
6
+ import { Text } from "../../primitives/Text/Text.js";
7
7
  const multiSelectSearchDefaultFilter = ({
8
8
  options,
9
9
  search,
@@ -8,7 +8,7 @@ const Badge = require("../../primitives/Badge/Badge.cjs");
8
8
  const layout = require("../../primitives/layout.cjs");
9
9
  const ColorDot = require("../ColorDot/ColorDot.cjs");
10
10
  const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
11
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
11
+ const Text = require("../../primitives/Text/Text.cjs");
12
12
  const SEVERITY_BADGE_COLORS = {
13
13
  critical: colors.colors.error,
14
14
  high: colors.colors.warning,
@@ -6,7 +6,7 @@ import { Badge } from "../../primitives/Badge/Badge.js";
6
6
  import { Box, Stack } from "../../primitives/layout.js";
7
7
  import { ColorDot } from "../ColorDot/ColorDot.js";
8
8
  import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
9
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
9
+ import { Text } from "../../primitives/Text/Text.js";
10
10
  const SEVERITY_BADGE_COLORS = {
11
11
  critical: colors.error,
12
12
  high: colors.warning,
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const format = require("../../../utils/format.cjs");
5
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
5
+ const Text = require("../../primitives/Text/Text.cjs");
6
6
  function Percent({ value, decimals = 2, ...rest }) {
7
7
  return /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { component: "span", ...rest, children: format.formatPercent(value, decimals) });
8
8
  }
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { formatPercent } from "../../../utils/format.js";
3
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
3
+ import { Text } from "../../primitives/Text/Text.js";
4
4
  function Percent({ value, decimals = 2, ...rest }) {
5
5
  return /* @__PURE__ */ jsx(Text, { component: "span", ...rest, children: formatPercent(value, decimals) });
6
6
  }
@@ -7,7 +7,7 @@ const index = require("../../../theme/index.cjs");
7
7
  const Button = require("../../primitives/Button/Button.cjs");
8
8
  const layout = require("../../primitives/layout.cjs");
9
9
  const Modal = require("../../primitives/Modal/Modal.cjs");
10
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
10
+ const Text = require("../../primitives/Text/Text.cjs");
11
11
  const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
12
12
  const colors = require("../../../theme/colors.cjs");
13
13
  async function getCroppedBlob(imageSrc, croppedAreaPixels) {
@@ -5,7 +5,7 @@ import { fairmintVars, radii } from "../../../theme/index.js";
5
5
  import { Button } from "../../primitives/Button/Button.js";
6
6
  import { Stack, Box } from "../../primitives/layout.js";
7
7
  import { Modal } from "../../primitives/Modal/Modal.js";
8
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
8
+ import { Text } from "../../primitives/Text/Text.js";
9
9
  import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
10
10
  import { colors } from "../../../theme/colors.js";
11
11
  async function getCroppedBlob(imageSrc, croppedAreaPixels) {
@@ -5,7 +5,7 @@ const index = require("../../../theme/index.cjs");
5
5
  const layout = require("../../primitives/layout.cjs");
6
6
  const AnimateIn = require("../AnimateIn/AnimateIn.cjs");
7
7
  const Title = require("../../../node_modules/@mantine/core/esm/components/Title/Title.cjs");
8
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
8
+ const Text = require("../../primitives/Text/Text.cjs");
9
9
  const Anchor = require("../../../node_modules/@mantine/core/esm/components/Anchor/Anchor.cjs");
10
10
  const zIndex = require("../../../theme/zIndex.cjs");
11
11
  function ProcessingState({
@@ -3,7 +3,7 @@ import { fairmintVars } from "../../../theme/index.js";
3
3
  import { Box, Stack } from "../../primitives/layout.js";
4
4
  import { AnimateIn } from "../AnimateIn/AnimateIn.js";
5
5
  import { Title } from "../../../node_modules/@mantine/core/esm/components/Title/Title.js";
6
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
6
+ import { Text } from "../../primitives/Text/Text.js";
7
7
  import { Anchor } from "../../../node_modules/@mantine/core/esm/components/Anchor/Anchor.js";
8
8
  import { overlayZIndexAboveLegacyShell } from "../../../theme/zIndex.js";
9
9
  function ProcessingState({
@@ -4,7 +4,7 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const index = require("../../../theme/index.cjs");
5
5
  const layout = require("../../primitives/layout.cjs");
6
6
  const UnstyledButton = require("../../../node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.cjs");
7
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
7
+ const Text = require("../../primitives/Text/Text.cjs");
8
8
  function RadioCard({
9
9
  selected,
10
10
  title,
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { fairmintVars } from "../../../theme/index.js";
3
3
  import { Box, Stack } from "../../primitives/layout.js";
4
4
  import { UnstyledButton } from "../../../node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.js";
5
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
5
+ import { Text } from "../../primitives/Text/Text.js";
6
6
  function RadioCard({
7
7
  selected,
8
8
  title,
@@ -9,7 +9,7 @@ const Card = require("../../primitives/Card/Card.cjs");
9
9
  const layout = require("../../primitives/layout.cjs");
10
10
  const Tooltip = require("../../primitives/Tooltip/Tooltip.cjs");
11
11
  const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
12
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
12
+ const Text = require("../../primitives/Text/Text.cjs");
13
13
  function DefaultInfoIcon() {
14
14
  return /* @__PURE__ */ jsxRuntime.jsxs(
15
15
  "svg",
@@ -7,7 +7,7 @@ import { Card } from "../../primitives/Card/Card.js";
7
7
  import { Stack, Box } from "../../primitives/layout.js";
8
8
  import { Tooltip } from "../../primitives/Tooltip/Tooltip.js";
9
9
  import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
10
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
10
+ import { Text } from "../../primitives/Text/Text.js";
11
11
  function DefaultInfoIcon() {
12
12
  return /* @__PURE__ */ jsxs(
13
13
  "svg",
@@ -5,7 +5,7 @@ const index = require("../../../theme/index.cjs");
5
5
  const layout = require("../../primitives/layout.cjs");
6
6
  const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
7
7
  const ThemeIcon = require("../../../node_modules/@mantine/core/esm/components/ThemeIcon/ThemeIcon.cjs");
8
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
8
+ const Text = require("../../primitives/Text/Text.cjs");
9
9
  const responsiveTypography = require("../../../theme/responsiveTypography.cjs");
10
10
  const DefaultCheckIcon = () => /* @__PURE__ */ jsxRuntime.jsx(
11
11
  "svg",
@@ -56,7 +56,7 @@ function StepCard({
56
56
  color: done ? index.fairmintVars.colorTextInverse : index.fairmintVars.colorTextPrimary,
57
57
  border: done ? void 0 : `1px solid ${index.fairmintVars.colorBorderDefault}`
58
58
  },
59
- children: done ? doneIcon ?? /* @__PURE__ */ jsxRuntime.jsx(DefaultCheckIcon, {}) : /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { fw: 700, fz: 14, children: index$1 })
59
+ children: done ? doneIcon ?? /* @__PURE__ */ jsxRuntime.jsx(DefaultCheckIcon, {}) : /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { fw: 700, fz: 14, glossary: false, children: index$1 })
60
60
  }
61
61
  ),
62
62
  /* @__PURE__ */ jsxRuntime.jsxs(layout.Box, { style: { minWidth: 0, flex: 1 }, children: [
@@ -67,6 +67,7 @@ function StepCard({
67
67
  fz: responsiveTypography.responsiveTypography.cardTitle,
68
68
  c: index.fairmintVars.colorTextPrimary,
69
69
  lh: 1.3,
70
+ glossary: false,
70
71
  children: title
71
72
  }
72
73
  ),
@@ -1 +1 @@
1
- {"version":3,"file":"StepCard.cjs","sources":["../../../../src/components/generic/StepCard/StepCard.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { fairmintVars, responsiveTypography } from \"../../../theme\";\nimport { Box, Group, Paper, Stack, Text, ThemeIcon } from \"../../primitives/layout\";\n\n/** Default check glyph shown when `done === true`. Inline SVG — check only, no circle outline. */\nconst DefaultCheckIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m5 13 4 4 10-10\" />\n </svg>\n);\n\nexport interface StepCardProps {\n /** 1-indexed step number shown in the indicator when not done. */\n index: number;\n /** Step title. */\n title: string;\n /** Optional supporting text below the title. */\n description?: string;\n /** When true, the indicator flips from the number to a check glyph. */\n done?: boolean;\n /**\n * Override the icon shown when `done === true`. Defaults to a check-only\n * glyph. Accept-as-ReactNode so consumers don't need to import an icon library.\n */\n doneIcon?: ReactNode;\n /** Step content rendered below the header. */\n children: ReactNode;\n}\n\n/**\n * Numbered step card used in multi-section wizards and form flows.\n *\n * The numbered indicator on the left flips to a check when the step is\n * marked done — a quiet progress signal that doesn't compete with the\n * right-column summary or page-level progress UI. Each step sits in\n * its own `Paper` for clear visual separation.\n *\n * The header indicator is the focal point; consumers control the body\n * via `children`.\n */\nexport function StepCard({\n index,\n title,\n description,\n done = false,\n doneIcon,\n children,\n}: StepCardProps) {\n return (\n <Paper\n radius=\"lg\"\n p={{ base: \"md\", sm: \"xl\" }}\n style={{\n background: fairmintVars.colorBgSurface,\n border: `1px solid ${fairmintVars.colorBorderDefault}`,\n }}\n >\n <Stack gap=\"md\">\n <Group gap=\"md\" align=\"flex-start\" wrap=\"nowrap\">\n <ThemeIcon\n size={32}\n radius=\"xl\"\n variant={done ? \"filled\" : \"light\"}\n color={done ? \"indigo\" : \"gray\"}\n aria-label={done ? `Step ${index} complete` : `Step ${index}`}\n style={{\n flexShrink: 0,\n pointerEvents: \"none\",\n background: done\n ? fairmintVars.colorBrandPrimary\n : fairmintVars.colorBgSurfaceSecondary,\n color: done ? fairmintVars.colorTextInverse : fairmintVars.colorTextPrimary,\n border: done ? undefined : `1px solid ${fairmintVars.colorBorderDefault}`,\n }}\n >\n {done ? (\n (doneIcon ?? <DefaultCheckIcon />)\n ) : (\n <Text fw={700} fz={14}>\n {index}\n </Text>\n )}\n </ThemeIcon>\n <Box style={{ minWidth: 0, flex: 1 }}>\n <Text\n fw={700}\n fz={responsiveTypography.cardTitle}\n c={fairmintVars.colorTextPrimary}\n lh={1.3}\n >\n {title}\n </Text>\n {description && (\n <Text size=\"sm\" c={fairmintVars.colorTextSecondary} lh={1.5} mt={4}>\n {description}\n </Text>\n )}\n </Box>\n </Group>\n <Box pl={{ base: 0, sm: 48 }}>{children}</Box>\n </Stack>\n </Paper>\n );\n}\n"],"names":["jsx","index","Paper","fairmintVars","jsxs","Stack","Group","ThemeIcon","Text","Box","responsiveTypography"],"mappings":";;;;;;;;;AAKA,MAAM,mBAAmB,MACvBA,2BAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACf,eAAY;AAAA,IAEZ,UAAAA,2BAAAA,IAAC,QAAA,EAAK,GAAE,kBAAA,CAAkB;AAAA,EAAA;AAC5B;AAgCK,SAAS,SAAS;AAAA,EAAA,OACvBC;AAAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAAkB;AAChB,SACED,2BAAAA;AAAAA,IAACE,OAAAA;AAAAA,IAAA;AAAA,MACC,QAAO;AAAA,MACP,GAAG,EAAE,MAAM,MAAM,IAAI,KAAA;AAAA,MACrB,OAAO;AAAA,QACL,YAAYC,MAAAA,aAAa;AAAA,QACzB,QAAQ,aAAaA,MAAAA,aAAa,kBAAkB;AAAA,MAAA;AAAA,MAGtD,UAAAC,2BAAAA,KAACC,OAAAA,OAAA,EAAM,KAAI,MACT,UAAA;AAAA,QAAAD,gCAACE,MAAAA,SAAM,KAAI,MAAK,OAAM,cAAa,MAAK,UACtC,UAAA;AAAA,UAAAN,2BAAAA;AAAAA,YAACO,UAAAA;AAAAA,YAAA;AAAA,cACC,MAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAS,OAAO,WAAW;AAAA,cAC3B,OAAO,OAAO,WAAW;AAAA,cACzB,cAAY,OAAO,QAAQN,OAAK,cAAc,QAAQA,OAAK;AAAA,cAC3D,OAAO;AAAA,gBACL,YAAY;AAAA,gBACZ,eAAe;AAAA,gBACf,YAAY,OACRE,MAAAA,aAAa,oBACbA,MAAAA,aAAa;AAAA,gBACjB,OAAO,OAAOA,MAAAA,aAAa,mBAAmBA,MAAAA,aAAa;AAAA,gBAC3D,QAAQ,OAAO,SAAY,aAAaA,MAAAA,aAAa,kBAAkB;AAAA,cAAA;AAAA,cAGxE,UAAA,OACE,YAAYH,2BAAAA,IAAC,kBAAA,CAAA,CAAiB,IAE/BA,2BAAAA,IAACQ,KAAAA,MAAA,EAAK,IAAI,KAAK,IAAI,IAChB,UAAAP,QAAA,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJG,gCAACK,OAAAA,OAAI,OAAO,EAAE,UAAU,GAAG,MAAM,KAC/B,UAAA;AAAA,YAAAT,2BAAAA;AAAAA,cAACQ,KAAAA;AAAAA,cAAA;AAAA,gBACC,IAAI;AAAA,gBACJ,IAAIE,qBAAAA,qBAAqB;AAAA,gBACzB,GAAGP,MAAAA,aAAa;AAAA,gBAChB,IAAI;AAAA,gBAEH,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAEF,eACCH,2BAAAA,IAACQ,KAAAA,MAAA,EAAK,MAAK,MAAK,GAAGL,MAAAA,aAAa,oBAAoB,IAAI,KAAK,IAAI,GAC9D,UAAA,YAAA,CACH;AAAA,UAAA,EAAA,CAEJ;AAAA,QAAA,GACF;AAAA,QACAH,+BAACS,OAAAA,OAAI,IAAI,EAAE,MAAM,GAAG,IAAI,GAAA,GAAO,SAAA,CAAS;AAAA,MAAA,EAAA,CAC1C;AAAA,IAAA;AAAA,EAAA;AAGN;;"}
1
+ {"version":3,"file":"StepCard.cjs","sources":["../../../../src/components/generic/StepCard/StepCard.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { fairmintVars, responsiveTypography } from \"../../../theme\";\nimport { Box, Group, Paper, Stack, Text, ThemeIcon } from \"../../primitives/layout\";\n\n/** Default check glyph shown when `done === true`. Inline SVG — check only, no circle outline. */\nconst DefaultCheckIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m5 13 4 4 10-10\" />\n </svg>\n);\n\nexport interface StepCardProps {\n /** 1-indexed step number shown in the indicator when not done. */\n index: number;\n /** Step title. */\n title: string;\n /** Optional supporting text below the title. */\n description?: string;\n /** When true, the indicator flips from the number to a check glyph. */\n done?: boolean;\n /**\n * Override the icon shown when `done === true`. Defaults to a check-only\n * glyph. Accept-as-ReactNode so consumers don't need to import an icon library.\n */\n doneIcon?: ReactNode;\n /** Step content rendered below the header. */\n children: ReactNode;\n}\n\n/**\n * Numbered step card used in multi-section wizards and form flows.\n *\n * The numbered indicator on the left flips to a check when the step is\n * marked done — a quiet progress signal that doesn't compete with the\n * right-column summary or page-level progress UI. Each step sits in\n * its own `Paper` for clear visual separation.\n *\n * The header indicator is the focal point; consumers control the body\n * via `children`.\n */\nexport function StepCard({\n index,\n title,\n description,\n done = false,\n doneIcon,\n children,\n}: StepCardProps) {\n return (\n <Paper\n radius=\"lg\"\n p={{ base: \"md\", sm: \"xl\" }}\n style={{\n background: fairmintVars.colorBgSurface,\n border: `1px solid ${fairmintVars.colorBorderDefault}`,\n }}\n >\n <Stack gap=\"md\">\n <Group gap=\"md\" align=\"flex-start\" wrap=\"nowrap\">\n <ThemeIcon\n size={32}\n radius=\"xl\"\n variant={done ? \"filled\" : \"light\"}\n color={done ? \"indigo\" : \"gray\"}\n aria-label={done ? `Step ${index} complete` : `Step ${index}`}\n style={{\n flexShrink: 0,\n pointerEvents: \"none\",\n background: done\n ? fairmintVars.colorBrandPrimary\n : fairmintVars.colorBgSurfaceSecondary,\n color: done ? fairmintVars.colorTextInverse : fairmintVars.colorTextPrimary,\n border: done ? undefined : `1px solid ${fairmintVars.colorBorderDefault}`,\n }}\n >\n {done ? (\n (doneIcon ?? <DefaultCheckIcon />)\n ) : (\n <Text fw={700} fz={14} glossary={false}>\n {index}\n </Text>\n )}\n </ThemeIcon>\n <Box style={{ minWidth: 0, flex: 1 }}>\n <Text\n fw={700}\n fz={responsiveTypography.cardTitle}\n c={fairmintVars.colorTextPrimary}\n lh={1.3}\n glossary={false}\n >\n {title}\n </Text>\n {description && (\n <Text size=\"sm\" c={fairmintVars.colorTextSecondary} lh={1.5} mt={4}>\n {description}\n </Text>\n )}\n </Box>\n </Group>\n <Box pl={{ base: 0, sm: 48 }}>{children}</Box>\n </Stack>\n </Paper>\n );\n}\n"],"names":["jsx","index","Paper","fairmintVars","jsxs","Stack","Group","ThemeIcon","Text","Box","responsiveTypography"],"mappings":";;;;;;;;;AAKA,MAAM,mBAAmB,MACvBA,2BAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACf,eAAY;AAAA,IAEZ,UAAAA,2BAAAA,IAAC,QAAA,EAAK,GAAE,kBAAA,CAAkB;AAAA,EAAA;AAC5B;AAgCK,SAAS,SAAS;AAAA,EAAA,OACvBC;AAAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAAkB;AAChB,SACED,2BAAAA;AAAAA,IAACE,OAAAA;AAAAA,IAAA;AAAA,MACC,QAAO;AAAA,MACP,GAAG,EAAE,MAAM,MAAM,IAAI,KAAA;AAAA,MACrB,OAAO;AAAA,QACL,YAAYC,MAAAA,aAAa;AAAA,QACzB,QAAQ,aAAaA,MAAAA,aAAa,kBAAkB;AAAA,MAAA;AAAA,MAGtD,UAAAC,2BAAAA,KAACC,OAAAA,OAAA,EAAM,KAAI,MACT,UAAA;AAAA,QAAAD,gCAACE,MAAAA,SAAM,KAAI,MAAK,OAAM,cAAa,MAAK,UACtC,UAAA;AAAA,UAAAN,2BAAAA;AAAAA,YAACO,UAAAA;AAAAA,YAAA;AAAA,cACC,MAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAS,OAAO,WAAW;AAAA,cAC3B,OAAO,OAAO,WAAW;AAAA,cACzB,cAAY,OAAO,QAAQN,OAAK,cAAc,QAAQA,OAAK;AAAA,cAC3D,OAAO;AAAA,gBACL,YAAY;AAAA,gBACZ,eAAe;AAAA,gBACf,YAAY,OACRE,MAAAA,aAAa,oBACbA,MAAAA,aAAa;AAAA,gBACjB,OAAO,OAAOA,MAAAA,aAAa,mBAAmBA,MAAAA,aAAa;AAAA,gBAC3D,QAAQ,OAAO,SAAY,aAAaA,MAAAA,aAAa,kBAAkB;AAAA,cAAA;AAAA,cAGxE,UAAA,OACE,YAAYH,2BAAAA,IAAC,kBAAA,CAAA,CAAiB,IAE/BA,+BAACQ,KAAAA,MAAA,EAAK,IAAI,KAAK,IAAI,IAAI,UAAU,OAC9B,UAAAP,QAAA,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJG,gCAACK,OAAAA,OAAI,OAAO,EAAE,UAAU,GAAG,MAAM,KAC/B,UAAA;AAAA,YAAAT,2BAAAA;AAAAA,cAACQ,KAAAA;AAAAA,cAAA;AAAA,gBACC,IAAI;AAAA,gBACJ,IAAIE,qBAAAA,qBAAqB;AAAA,gBACzB,GAAGP,MAAAA,aAAa;AAAA,gBAChB,IAAI;AAAA,gBACJ,UAAU;AAAA,gBAET,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAEF,eACCH,2BAAAA,IAACQ,KAAAA,MAAA,EAAK,MAAK,MAAK,GAAGL,MAAAA,aAAa,oBAAoB,IAAI,KAAK,IAAI,GAC9D,UAAA,YAAA,CACH;AAAA,UAAA,EAAA,CAEJ;AAAA,QAAA,GACF;AAAA,QACAH,+BAACS,OAAAA,OAAI,IAAI,EAAE,MAAM,GAAG,IAAI,GAAA,GAAO,SAAA,CAAS;AAAA,MAAA,EAAA,CAC1C;AAAA,IAAA;AAAA,EAAA;AAGN;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"StepCard.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/StepCard/StepCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAqBvC,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,KAAK,EACL,WAAW,EACX,IAAY,EACZ,QAAQ,EACR,QAAQ,GACT,EAAE,aAAa,+BAwDf"}
1
+ {"version":3,"file":"StepCard.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/StepCard/StepCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAqBvC,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,KAAK,EACL,WAAW,EACX,IAAY,EACZ,QAAQ,EACR,QAAQ,GACT,EAAE,aAAa,+BAyDf"}
@@ -3,7 +3,7 @@ import { fairmintVars } from "../../../theme/index.js";
3
3
  import { Paper, Stack, Box } from "../../primitives/layout.js";
4
4
  import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
5
5
  import { ThemeIcon } from "../../../node_modules/@mantine/core/esm/components/ThemeIcon/ThemeIcon.js";
6
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
6
+ import { Text } from "../../primitives/Text/Text.js";
7
7
  import { responsiveTypography } from "../../../theme/responsiveTypography.js";
8
8
  const DefaultCheckIcon = () => /* @__PURE__ */ jsx(
9
9
  "svg",
@@ -54,7 +54,7 @@ function StepCard({
54
54
  color: done ? fairmintVars.colorTextInverse : fairmintVars.colorTextPrimary,
55
55
  border: done ? void 0 : `1px solid ${fairmintVars.colorBorderDefault}`
56
56
  },
57
- children: done ? doneIcon ?? /* @__PURE__ */ jsx(DefaultCheckIcon, {}) : /* @__PURE__ */ jsx(Text, { fw: 700, fz: 14, children: index })
57
+ children: done ? doneIcon ?? /* @__PURE__ */ jsx(DefaultCheckIcon, {}) : /* @__PURE__ */ jsx(Text, { fw: 700, fz: 14, glossary: false, children: index })
58
58
  }
59
59
  ),
60
60
  /* @__PURE__ */ jsxs(Box, { style: { minWidth: 0, flex: 1 }, children: [
@@ -65,6 +65,7 @@ function StepCard({
65
65
  fz: responsiveTypography.cardTitle,
66
66
  c: fairmintVars.colorTextPrimary,
67
67
  lh: 1.3,
68
+ glossary: false,
68
69
  children: title
69
70
  }
70
71
  ),
@@ -1 +1 @@
1
- {"version":3,"file":"StepCard.js","sources":["../../../../src/components/generic/StepCard/StepCard.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { fairmintVars, responsiveTypography } from \"../../../theme\";\nimport { Box, Group, Paper, Stack, Text, ThemeIcon } from \"../../primitives/layout\";\n\n/** Default check glyph shown when `done === true`. Inline SVG — check only, no circle outline. */\nconst DefaultCheckIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m5 13 4 4 10-10\" />\n </svg>\n);\n\nexport interface StepCardProps {\n /** 1-indexed step number shown in the indicator when not done. */\n index: number;\n /** Step title. */\n title: string;\n /** Optional supporting text below the title. */\n description?: string;\n /** When true, the indicator flips from the number to a check glyph. */\n done?: boolean;\n /**\n * Override the icon shown when `done === true`. Defaults to a check-only\n * glyph. Accept-as-ReactNode so consumers don't need to import an icon library.\n */\n doneIcon?: ReactNode;\n /** Step content rendered below the header. */\n children: ReactNode;\n}\n\n/**\n * Numbered step card used in multi-section wizards and form flows.\n *\n * The numbered indicator on the left flips to a check when the step is\n * marked done — a quiet progress signal that doesn't compete with the\n * right-column summary or page-level progress UI. Each step sits in\n * its own `Paper` for clear visual separation.\n *\n * The header indicator is the focal point; consumers control the body\n * via `children`.\n */\nexport function StepCard({\n index,\n title,\n description,\n done = false,\n doneIcon,\n children,\n}: StepCardProps) {\n return (\n <Paper\n radius=\"lg\"\n p={{ base: \"md\", sm: \"xl\" }}\n style={{\n background: fairmintVars.colorBgSurface,\n border: `1px solid ${fairmintVars.colorBorderDefault}`,\n }}\n >\n <Stack gap=\"md\">\n <Group gap=\"md\" align=\"flex-start\" wrap=\"nowrap\">\n <ThemeIcon\n size={32}\n radius=\"xl\"\n variant={done ? \"filled\" : \"light\"}\n color={done ? \"indigo\" : \"gray\"}\n aria-label={done ? `Step ${index} complete` : `Step ${index}`}\n style={{\n flexShrink: 0,\n pointerEvents: \"none\",\n background: done\n ? fairmintVars.colorBrandPrimary\n : fairmintVars.colorBgSurfaceSecondary,\n color: done ? fairmintVars.colorTextInverse : fairmintVars.colorTextPrimary,\n border: done ? undefined : `1px solid ${fairmintVars.colorBorderDefault}`,\n }}\n >\n {done ? (\n (doneIcon ?? <DefaultCheckIcon />)\n ) : (\n <Text fw={700} fz={14}>\n {index}\n </Text>\n )}\n </ThemeIcon>\n <Box style={{ minWidth: 0, flex: 1 }}>\n <Text\n fw={700}\n fz={responsiveTypography.cardTitle}\n c={fairmintVars.colorTextPrimary}\n lh={1.3}\n >\n {title}\n </Text>\n {description && (\n <Text size=\"sm\" c={fairmintVars.colorTextSecondary} lh={1.5} mt={4}>\n {description}\n </Text>\n )}\n </Box>\n </Group>\n <Box pl={{ base: 0, sm: 48 }}>{children}</Box>\n </Stack>\n </Paper>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAKA,MAAM,mBAAmB,MACvB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACf,eAAY;AAAA,IAEZ,UAAA,oBAAC,QAAA,EAAK,GAAE,kBAAA,CAAkB;AAAA,EAAA;AAC5B;AAgCK,SAAS,SAAS;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAAkB;AAChB,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,QAAO;AAAA,MACP,GAAG,EAAE,MAAM,MAAM,IAAI,KAAA;AAAA,MACrB,OAAO;AAAA,QACL,YAAY,aAAa;AAAA,QACzB,QAAQ,aAAa,aAAa,kBAAkB;AAAA,MAAA;AAAA,MAGtD,UAAA,qBAAC,OAAA,EAAM,KAAI,MACT,UAAA;AAAA,QAAA,qBAAC,SAAM,KAAI,MAAK,OAAM,cAAa,MAAK,UACtC,UAAA;AAAA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAS,OAAO,WAAW;AAAA,cAC3B,OAAO,OAAO,WAAW;AAAA,cACzB,cAAY,OAAO,QAAQ,KAAK,cAAc,QAAQ,KAAK;AAAA,cAC3D,OAAO;AAAA,gBACL,YAAY;AAAA,gBACZ,eAAe;AAAA,gBACf,YAAY,OACR,aAAa,oBACb,aAAa;AAAA,gBACjB,OAAO,OAAO,aAAa,mBAAmB,aAAa;AAAA,gBAC3D,QAAQ,OAAO,SAAY,aAAa,aAAa,kBAAkB;AAAA,cAAA;AAAA,cAGxE,UAAA,OACE,YAAY,oBAAC,kBAAA,CAAA,CAAiB,IAE/B,oBAAC,MAAA,EAAK,IAAI,KAAK,IAAI,IAChB,UAAA,MAAA,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJ,qBAAC,OAAI,OAAO,EAAE,UAAU,GAAG,MAAM,KAC/B,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,IAAI;AAAA,gBACJ,IAAI,qBAAqB;AAAA,gBACzB,GAAG,aAAa;AAAA,gBAChB,IAAI;AAAA,gBAEH,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAEF,eACC,oBAAC,MAAA,EAAK,MAAK,MAAK,GAAG,aAAa,oBAAoB,IAAI,KAAK,IAAI,GAC9D,UAAA,YAAA,CACH;AAAA,UAAA,EAAA,CAEJ;AAAA,QAAA,GACF;AAAA,QACA,oBAAC,OAAI,IAAI,EAAE,MAAM,GAAG,IAAI,GAAA,GAAO,SAAA,CAAS;AAAA,MAAA,EAAA,CAC1C;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"StepCard.js","sources":["../../../../src/components/generic/StepCard/StepCard.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { fairmintVars, responsiveTypography } from \"../../../theme\";\nimport { Box, Group, Paper, Stack, Text, ThemeIcon } from \"../../primitives/layout\";\n\n/** Default check glyph shown when `done === true`. Inline SVG — check only, no circle outline. */\nconst DefaultCheckIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m5 13 4 4 10-10\" />\n </svg>\n);\n\nexport interface StepCardProps {\n /** 1-indexed step number shown in the indicator when not done. */\n index: number;\n /** Step title. */\n title: string;\n /** Optional supporting text below the title. */\n description?: string;\n /** When true, the indicator flips from the number to a check glyph. */\n done?: boolean;\n /**\n * Override the icon shown when `done === true`. Defaults to a check-only\n * glyph. Accept-as-ReactNode so consumers don't need to import an icon library.\n */\n doneIcon?: ReactNode;\n /** Step content rendered below the header. */\n children: ReactNode;\n}\n\n/**\n * Numbered step card used in multi-section wizards and form flows.\n *\n * The numbered indicator on the left flips to a check when the step is\n * marked done — a quiet progress signal that doesn't compete with the\n * right-column summary or page-level progress UI. Each step sits in\n * its own `Paper` for clear visual separation.\n *\n * The header indicator is the focal point; consumers control the body\n * via `children`.\n */\nexport function StepCard({\n index,\n title,\n description,\n done = false,\n doneIcon,\n children,\n}: StepCardProps) {\n return (\n <Paper\n radius=\"lg\"\n p={{ base: \"md\", sm: \"xl\" }}\n style={{\n background: fairmintVars.colorBgSurface,\n border: `1px solid ${fairmintVars.colorBorderDefault}`,\n }}\n >\n <Stack gap=\"md\">\n <Group gap=\"md\" align=\"flex-start\" wrap=\"nowrap\">\n <ThemeIcon\n size={32}\n radius=\"xl\"\n variant={done ? \"filled\" : \"light\"}\n color={done ? \"indigo\" : \"gray\"}\n aria-label={done ? `Step ${index} complete` : `Step ${index}`}\n style={{\n flexShrink: 0,\n pointerEvents: \"none\",\n background: done\n ? fairmintVars.colorBrandPrimary\n : fairmintVars.colorBgSurfaceSecondary,\n color: done ? fairmintVars.colorTextInverse : fairmintVars.colorTextPrimary,\n border: done ? undefined : `1px solid ${fairmintVars.colorBorderDefault}`,\n }}\n >\n {done ? (\n (doneIcon ?? <DefaultCheckIcon />)\n ) : (\n <Text fw={700} fz={14} glossary={false}>\n {index}\n </Text>\n )}\n </ThemeIcon>\n <Box style={{ minWidth: 0, flex: 1 }}>\n <Text\n fw={700}\n fz={responsiveTypography.cardTitle}\n c={fairmintVars.colorTextPrimary}\n lh={1.3}\n glossary={false}\n >\n {title}\n </Text>\n {description && (\n <Text size=\"sm\" c={fairmintVars.colorTextSecondary} lh={1.5} mt={4}>\n {description}\n </Text>\n )}\n </Box>\n </Group>\n <Box pl={{ base: 0, sm: 48 }}>{children}</Box>\n </Stack>\n </Paper>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAKA,MAAM,mBAAmB,MACvB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACf,eAAY;AAAA,IAEZ,UAAA,oBAAC,QAAA,EAAK,GAAE,kBAAA,CAAkB;AAAA,EAAA;AAC5B;AAgCK,SAAS,SAAS;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAAkB;AAChB,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,QAAO;AAAA,MACP,GAAG,EAAE,MAAM,MAAM,IAAI,KAAA;AAAA,MACrB,OAAO;AAAA,QACL,YAAY,aAAa;AAAA,QACzB,QAAQ,aAAa,aAAa,kBAAkB;AAAA,MAAA;AAAA,MAGtD,UAAA,qBAAC,OAAA,EAAM,KAAI,MACT,UAAA;AAAA,QAAA,qBAAC,SAAM,KAAI,MAAK,OAAM,cAAa,MAAK,UACtC,UAAA;AAAA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAS,OAAO,WAAW;AAAA,cAC3B,OAAO,OAAO,WAAW;AAAA,cACzB,cAAY,OAAO,QAAQ,KAAK,cAAc,QAAQ,KAAK;AAAA,cAC3D,OAAO;AAAA,gBACL,YAAY;AAAA,gBACZ,eAAe;AAAA,gBACf,YAAY,OACR,aAAa,oBACb,aAAa;AAAA,gBACjB,OAAO,OAAO,aAAa,mBAAmB,aAAa;AAAA,gBAC3D,QAAQ,OAAO,SAAY,aAAa,aAAa,kBAAkB;AAAA,cAAA;AAAA,cAGxE,UAAA,OACE,YAAY,oBAAC,kBAAA,CAAA,CAAiB,IAE/B,oBAAC,MAAA,EAAK,IAAI,KAAK,IAAI,IAAI,UAAU,OAC9B,UAAA,MAAA,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJ,qBAAC,OAAI,OAAO,EAAE,UAAU,GAAG,MAAM,KAC/B,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,IAAI;AAAA,gBACJ,IAAI,qBAAqB;AAAA,gBACzB,GAAG,aAAa;AAAA,gBAChB,IAAI;AAAA,gBACJ,UAAU;AAAA,gBAET,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAEF,eACC,oBAAC,MAAA,EAAK,MAAK,MAAK,GAAG,aAAa,oBAAoB,IAAI,KAAK,IAAI,GAC9D,UAAA,YAAA,CACH;AAAA,UAAA,EAAA,CAEJ;AAAA,QAAA,GACF;AAAA,QACA,oBAAC,OAAI,IAAI,EAAE,MAAM,GAAG,IAAI,GAAA,GAAO,SAAA,CAAS;AAAA,MAAA,EAAA,CAC1C;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const Select = require("../../primitives/Select/Select.cjs");
5
5
  const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
6
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
6
+ const Text = require("../../primitives/Text/Text.cjs");
7
7
  const Pagination = require("../../../node_modules/@mantine/core/esm/components/Pagination/Pagination.cjs");
8
8
  function toSelectOption(option) {
9
9
  if (option && typeof option === "object") {
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { Select } from "../../primitives/Select/Select.js";
3
3
  import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
4
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
4
+ import { Text } from "../../primitives/Text/Text.js";
5
5
  import { Pagination } from "../../../node_modules/@mantine/core/esm/components/Pagination/Pagination.js";
6
6
  function toSelectOption(option) {
7
7
  if (option && typeof option === "object") {
@@ -5,7 +5,7 @@ const index = require("../../../theme/index.cjs");
5
5
  const layout = require("../../primitives/layout.cjs");
6
6
  const Popover = require("../../primitives/Popover/Popover.cjs");
7
7
  const zIndex = require("../../../theme/zIndex.cjs");
8
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
8
+ const Text = require("../../primitives/Text/Text.cjs");
9
9
  const ScrollArea = require("../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollArea.cjs");
10
10
  const DEFAULT_EMPTY_MESSAGE = "There are no tasks to do right now. You'll see a badge on this icon when there are.";
11
11
  function TaskInboxPopover({
@@ -3,7 +3,7 @@ import { fairmintVars } from "../../../theme/index.js";
3
3
  import { Box, Stack } from "../../primitives/layout.js";
4
4
  import { Popover } from "../../primitives/Popover/Popover.js";
5
5
  import { overlayZIndexAboveLegacyShell } from "../../../theme/zIndex.js";
6
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
6
+ import { Text } from "../../primitives/Text/Text.js";
7
7
  import { ScrollArea } from "../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollArea.js";
8
8
  const DEFAULT_EMPTY_MESSAGE = "There are no tasks to do right now. You'll see a badge on this icon when there are.";
9
9
  function TaskInboxPopover({
@@ -7,7 +7,7 @@ const ActionIcon = require("../../primitives/ActionIcon/ActionIcon.cjs");
7
7
  const Button = require("../../primitives/Button/Button.cjs");
8
8
  const layout = require("../../primitives/layout.cjs");
9
9
  const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
10
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
10
+ const Text = require("../../primitives/Text/Text.cjs");
11
11
  const PRIORITY_SEVERITY_COLORS = {
12
12
  critical: index.fairmintVars.colorErrorText,
13
13
  // Mid warning ramp (amber) — clearer than warning-text/solid brown vs error red.
@@ -5,7 +5,7 @@ import { ActionIcon } from "../../primitives/ActionIcon/ActionIcon.js";
5
5
  import { Button } from "../../primitives/Button/Button.js";
6
6
  import { Box, Stack } from "../../primitives/layout.js";
7
7
  import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
8
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
8
+ import { Text } from "../../primitives/Text/Text.js";
9
9
  const PRIORITY_SEVERITY_COLORS = {
10
10
  critical: fairmintVars.colorErrorText,
11
11
  // Mid warning ramp (amber) — clearer than warning-text/solid brown vs error red.
@@ -7,7 +7,7 @@ const BottomSheet = require("../../generic/BottomSheet/BottomSheet.cjs");
7
7
  const Avatar = require("../../primitives/Avatar/Avatar.cjs");
8
8
  const layout = require("../../primitives/layout.cjs");
9
9
  const colors = require("../../../theme/colors.cjs");
10
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
10
+ const Text = require("../../primitives/Text/Text.cjs");
11
11
  const UnstyledButton = require("../../../node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.cjs");
12
12
  const ACCOUNT_SHEET_ROW_MIN_HEIGHT = 48;
13
13
  function resolvePaintColor(color) {
@@ -5,7 +5,7 @@ import { BottomSheet } from "../../generic/BottomSheet/BottomSheet.js";
5
5
  import { Avatar } from "../../primitives/Avatar/Avatar.js";
6
6
  import { Box, Stack, Divider } from "../../primitives/layout.js";
7
7
  import { colors } from "../../../theme/colors.js";
8
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
8
+ import { Text } from "../../primitives/Text/Text.js";
9
9
  import { UnstyledButton } from "../../../node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.js";
10
10
  const ACCOUNT_SHEET_ROW_MIN_HEIGHT = 48;
11
11
  function resolvePaintColor(color) {
@@ -12,7 +12,7 @@ const MobileNavHeader = require("./MobileNavHeader.cjs");
12
12
  const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
13
13
  const IconX = require("../../../node_modules/@tabler/icons-react/dist/esm/icons/IconX.cjs");
14
14
  const UnstyledButton = require("../../../node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.cjs");
15
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
15
+ const Text = require("../../primitives/Text/Text.cjs");
16
16
  const IconChevronDown = require("../../../node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.cjs");
17
17
  const MOBILE_NAV_WIDTH = "100%";
18
18
  const MOBILE_NAV_ROW_MIN_HEIGHT = 48;
@@ -10,7 +10,7 @@ import { MOBILE_NAV_LOGO_HEIGHT } from "./MobileNavHeader.js";
10
10
  import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
11
11
  import IconX from "../../../node_modules/@tabler/icons-react/dist/esm/icons/IconX.js";
12
12
  import { UnstyledButton } from "../../../node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.js";
13
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
13
+ import { Text } from "../../primitives/Text/Text.js";
14
14
  import IconChevronDown from "../../../node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.js";
15
15
  const MOBILE_NAV_WIDTH = "100%";
16
16
  const MOBILE_NAV_ROW_MIN_HEIGHT = 48;
@@ -6,7 +6,7 @@ const layout = require("../../primitives/layout.cjs");
6
6
  const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
7
7
  const Title = require("../../../node_modules/@mantine/core/esm/components/Title/Title.cjs");
8
8
  const responsiveTypography = require("../../../theme/responsiveTypography.cjs");
9
- const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
9
+ const Text = require("../../primitives/Text/Text.cjs");
10
10
  function PageHeader({ title, subtitle, action }) {
11
11
  return /* @__PURE__ */ jsxRuntime.jsxs(Group.Group, { justify: "space-between", align: "flex-start", mb: "lg", children: [
12
12
  /* @__PURE__ */ jsxRuntime.jsxs(layout.Stack, { gap: 4, children: [
@@ -4,7 +4,7 @@ import { Stack } from "../../primitives/layout.js";
4
4
  import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
5
5
  import { Title } from "../../../node_modules/@mantine/core/esm/components/Title/Title.js";
6
6
  import { responsiveTypography } from "../../../theme/responsiveTypography.js";
7
- import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
7
+ import { Text } from "../../primitives/Text/Text.js";
8
8
  function PageHeader({ title, subtitle, action }) {
9
9
  return /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "flex-start", mb: "lg", children: [
10
10
  /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [