@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
@@ -7,12 +7,12 @@ import { ActionIcon } from "./ActionIcon/ActionIcon.js";
7
7
  import { Badge } from "./Badge/Badge.js";
8
8
  import { Loader } from "./Loader/Loader.js";
9
9
  import { sxToStyle as sxToStyle$1 } from "./sx.js";
10
+ import { Text } from "./Text/Text.js";
10
11
  import { Textarea } from "./Textarea/Textarea.js";
11
12
  import { Group } from "../../node_modules/@mantine/core/esm/components/Group/Group.js";
12
13
  import { List } from "../../node_modules/@mantine/core/esm/components/List/List.js";
13
14
  import { Table } from "../../node_modules/@mantine/core/esm/components/Table/Table.js";
14
15
  import { Accordion as Accordion$1 } from "../../node_modules/@mantine/core/esm/components/Accordion/Accordion.js";
15
- import { Text } from "../../node_modules/@mantine/core/esm/components/Text/Text.js";
16
16
  import { MultiSelect } from "../../node_modules/@mantine/core/esm/components/MultiSelect/MultiSelect.js";
17
17
  import { overlayZIndexAboveFairmintOverlays } from "../../theme/zIndex.js";
18
18
  import { Select } from "../../node_modules/@mantine/core/esm/components/Select/Select.js";
@@ -483,7 +483,7 @@ const CircularProgress = ({ size, sx, ...props }) => /* @__PURE__ */ jsx(Loader,
483
483
  const CardHeader = ({ action, subheader, title, titleTypographyProps }) => /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "flex-start", mb: "md", children: [
484
484
  /* @__PURE__ */ jsxs("div", { children: [
485
485
  /* @__PURE__ */ jsx(Title, { order: 3, size: "h5", ...titleTypographyProps, children: title }),
486
- subheader && /* @__PURE__ */ jsx(Text, { c: resolveCompatColor("text.secondary"), size: "sm", children: subheader })
486
+ subheader && /* @__PURE__ */ jsx(Text, { c: resolveCompatColor("text.secondary"), glossary: false, size: "sm", children: subheader })
487
487
  ] }),
488
488
  action
489
489
  ] });
@@ -789,9 +789,9 @@ const OutlinedInput = ({
789
789
  );
790
790
  };
791
791
  const InputAdornment = ({ children }) => /* @__PURE__ */ jsx(Fragment, { children });
792
- const InputLabel = ({ children }) => /* @__PURE__ */ jsx(Text, { size: "sm", children });
792
+ const InputLabel = ({ children }) => /* @__PURE__ */ jsx(Text, { glossary: false, size: "sm", children });
793
793
  const FormControl = ({ children, fullWidth, style, sx, ...props }) => /* @__PURE__ */ jsx(Stack, { style: formControlStyle({ fullWidth, style, sx }), ...props, children });
794
- const FormHelperText = ({ children, error }) => /* @__PURE__ */ jsx(Text, { c: resolveCompatColor(error ? "error" : "text.secondary"), size: "xs", children });
794
+ const FormHelperText = ({ children, error }) => /* @__PURE__ */ jsx(Text, { c: resolveCompatColor(error ? "error" : "text.secondary"), glossary: false, size: "xs", children });
795
795
  const FormControlLabel = ({
796
796
  checked,
797
797
  control,
@@ -839,7 +839,7 @@ const FormControlLabel = ({
839
839
  flex: 1,
840
840
  minWidth: 0
841
841
  },
842
- children: isValidElement(label) ? label : /* @__PURE__ */ jsx(Text, { component: "span", children: label })
842
+ children: isValidElement(label) ? label : /* @__PURE__ */ jsx(Text, { component: "span", glossary: false, children: label })
843
843
  }
844
844
  )
845
845
  ]
@@ -1084,8 +1084,8 @@ const ListItemButton = ({ children, selected, sx, style, ...props }) => /* @__PU
1084
1084
  );
1085
1085
  const ListItemIcon = ({ children, sx, style, ...props }) => /* @__PURE__ */ jsx(Box, { style: { ...sxToStyle(sx), ...style }, ...props, children });
1086
1086
  const ListItemText = ({ primary, secondary }) => /* @__PURE__ */ jsxs(Stack, { gap: 0, children: [
1087
- /* @__PURE__ */ jsx(Text, { children: primary }),
1088
- secondary && /* @__PURE__ */ jsx(Text, { c: resolveCompatColor("text.secondary"), size: "sm", children: secondary })
1087
+ /* @__PURE__ */ jsx(Text, { glossary: false, children: primary }),
1088
+ secondary && /* @__PURE__ */ jsx(Text, { c: resolveCompatColor("text.secondary"), glossary: false, size: "sm", children: secondary })
1089
1089
  ] });
1090
1090
  const SvgIcon = ({
1091
1091
  children,
@@ -1124,7 +1124,7 @@ const SvgIcon = ({
1124
1124
  }
1125
1125
  );
1126
1126
  };
1127
- const AlertTitle = ({ children }) => /* @__PURE__ */ jsx(Text, { fw: 700, children });
1127
+ const AlertTitle = ({ children }) => /* @__PURE__ */ jsx(Text, { fw: 700, glossary: false, children });
1128
1128
  class AdapterDayjs {
1129
1129
  }
1130
1130
  const LocalizationProvider = ({
@@ -1 +1 @@
1
- {"version":3,"file":"muiCompat.js","sources":["../../../src/components/primitives/muiCompat.tsx"],"sourcesContent":["// biome-ignore-all lint/suspicious/noExplicitAny: Compatibility adapters mirror external prop shapes.\nimport {\n Center,\n Flex,\n Group,\n Accordion as MantineAccordion,\n Box as MantineBox,\n Container as MantineContainer,\n Grid as MantineGrid,\n List as MantineList,\n Menu as MantineMenu,\n Modal as MantineModal,\n MultiSelect as MantineMultiSelect,\n Select as MantineSelect,\n Stack as MantineStack,\n Table as MantineTable,\n Tabs as MantineTabs,\n Paper,\n Text,\n TextInput,\n Title,\n} from \"@mantine/core\";\nimport { DateInput } from \"@mantine/dates\";\nimport { useMediaQuery as useMantineMediaQuery } from \"@mantine/hooks\";\nimport dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport type {\n ComponentProps,\n CSSProperties,\n ElementType,\n FocusEvent,\n ReactElement,\n ReactNode,\n Ref,\n} from \"react\";\nimport {\n Children,\n cloneElement,\n createContext,\n createElement,\n isValidElement,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport {\n brandColors,\n colors,\n commonColors,\n fairmintVars,\n overlayZIndexAboveFairmintOverlays,\n semanticColors,\n theme,\n} from \"../../theme\";\nimport { ActionIcon } from \"./ActionIcon/ActionIcon\";\nimport { Alert } from \"./Alert/Alert\";\nimport { Avatar } from \"./Avatar/Avatar\";\nimport { Badge } from \"./Badge/Badge\";\nimport { Button } from \"./Button/Button\";\nimport { Card } from \"./Card/Card\";\nimport { Checkbox } from \"./Checkbox/Checkbox\";\nimport { Loader } from \"./Loader/Loader\";\nimport { Skeleton } from \"./Skeleton/Skeleton\";\nimport { Switch } from \"./Switch/Switch\";\nimport { type Sx as PrimitiveSx, sxToStyle as primitiveSxToStyle } from \"./sx\";\nimport { Textarea } from \"./Textarea/Textarea\";\nimport { Tooltip } from \"./Tooltip/Tooltip\";\n\ndayjs.extend(customParseFormat);\n\ntype SxEntry = CSSProperties | false | null | undefined;\ntype Sx = CSSProperties | SxEntry[] | ((theme: unknown) => CSSProperties | SxEntry[]);\n\nconst compatBreakpointKeys = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\"] as const;\ntype CompatBreakpointKey = (typeof compatBreakpointKeys)[number];\nconst compatFallbackBreakpoints: Record<CompatBreakpointKey, string> = {\n xs: \"30em\",\n sm: \"48em\",\n md: \"64em\",\n lg: \"74em\",\n xl: \"90em\",\n};\nconst compatBreakpointWidth = (key: CompatBreakpointKey | string) =>\n compatBreakpointKeys.includes(key as CompatBreakpointKey)\n ? theme.breakpoints?.[key as CompatBreakpointKey] ||\n compatFallbackBreakpoints[key as CompatBreakpointKey]\n : key;\nconst compatBreakpoints = {\n down: (key: CompatBreakpointKey | string) => `@media (max-width: ${compatBreakpointWidth(key)})`,\n up: (key: CompatBreakpointKey | string) => `@media (min-width: ${compatBreakpointWidth(key)})`,\n};\n\nconst compatColorMap: Record<string, string> = {\n action: fairmintVars.colorIconSecondary,\n \"action.active\": fairmintVars.colorIconPrimary,\n \"action.selected\": fairmintVars.colorBgSelected,\n brand: fairmintVars.colorBrandPrimary,\n default: fairmintVars.colorTextSecondary,\n disabled: fairmintVars.colorTextDisabled,\n error: fairmintVars.colorErrorText,\n \"error.main\": fairmintVars.colorErrorText,\n info: fairmintVars.colorInfoText,\n \"info.darkest\": fairmintVars.colorInfoSolid,\n inherit: \"inherit\",\n primary: fairmintVars.colorBrandPrimary,\n secondary: fairmintVars.colorTextSecondary,\n success: fairmintVars.colorSuccessText,\n \"success.dark\": fairmintVars.colorSuccessSolid,\n \"text.disabled\": fairmintVars.colorTextDisabled,\n \"text.primary\": fairmintVars.colorTextPrimary,\n \"text.secondary\": fairmintVars.colorTextSecondary,\n warning: fairmintVars.colorWarningText,\n \"warning.darkest\": fairmintVars.colorWarningSolid,\n};\n\nconst resolveCompatColor = (color: unknown): string | undefined => {\n if (typeof color !== \"string\" || !color) return undefined;\n return compatColorMap[color] || color;\n};\n\nconst isStyleRecord = (value: unknown): value is CSSProperties =>\n Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n\nconst normalizeSxEntries = (sx: CSSProperties | SxEntry[]): CSSProperties[] =>\n Array.isArray(sx) ? sx.filter(isStyleRecord) : [sx];\n\nconst nodeToText = (node: ReactNode): string => {\n if (typeof node === \"string\" || typeof node === \"number\") return String(node);\n if (Array.isArray(node)) return node.map(nodeToText).join(\"\");\n if (isValidElement(node)) return nodeToText((node as any).props.children);\n return \"\";\n};\n\nconst cssStyleObjectToInlineStyle = (sx?: CSSProperties | SxEntry[]): CSSProperties | undefined => {\n if (!sx) return undefined;\n const styleEntries = normalizeSxEntries(sx).flatMap((entry) =>\n Object.entries(entry).filter(\n ([key, value]) => !key.startsWith(\"&\") && !key.startsWith(\"@\") && typeof value !== \"object\",\n ),\n );\n\n return Object.fromEntries(styleEntries);\n};\n\nconst sxToStyle = (sx?: PrimitiveSx | Sx): CSSProperties | undefined =>\n primitiveSxToStyle(sx as PrimitiveSx | undefined);\n\nconst hasNestedStyle = (sx: CSSProperties | SxEntry[]) =>\n normalizeSxEntries(sx).some((entry) =>\n Object.entries(entry).some(\n ([key, value]) => (key.startsWith(\"&\") || key.startsWith(\"@\")) && isObjectRecord(value),\n ),\n );\n\nconst mapCompatSize = (size: unknown) => {\n if (size === \"small\") return \"sm\";\n if (size === \"medium\") return \"md\";\n if (size === \"large\") return \"lg\";\n if (size === \"xs\" || size === \"sm\" || size === \"md\" || size === \"lg\" || size === \"xl\") {\n return size;\n }\n\n return undefined;\n};\n\nconst mantineChipVariants = new Set([\n \"default\",\n \"dot\",\n \"filled\",\n \"gradient\",\n \"light\",\n \"outline\",\n \"transparent\",\n \"white\",\n]);\n\nconst mapChipVariant = (variant: unknown) => {\n if (variant === \"outlined\") return \"outline\";\n if (typeof variant === \"string\" && mantineChipVariants.has(variant)) return variant;\n return undefined;\n};\n\nconst chipBadgeColorMap: Record<string, string> = {\n default: colors.neutral,\n error: colors.error,\n info: colors.info,\n primary: colors.primary,\n secondary: colors.neutral,\n success: colors.success,\n warning: colors.warning,\n};\n\nconst mapChipBadgeColor = (color: unknown) => {\n if (typeof color !== \"string\" || !color) return colors.neutral;\n return chipBadgeColorMap[color] || color;\n};\nconst mapCompatIconButtonSize = (size: unknown) =>\n size === \"small\" ? \"sm\" : size === \"medium\" ? \"md\" : size === \"large\" ? \"lg\" : size;\nconst optionalBoolean = (value: unknown) => (typeof value === \"boolean\" ? value : undefined);\nconst optionalString = (value: unknown) => (typeof value === \"string\" ? value : undefined);\nconst inputControlValue = (value: unknown) =>\n typeof value === \"string\" || typeof value === \"number\" || Array.isArray(value)\n ? value\n : undefined;\nconst assignCompatRef = <T,>(ref: Ref<T> | undefined, value: T | null) => {\n if (typeof ref === \"function\") {\n ref(value);\n return;\n }\n if (ref && \"current\" in ref) {\n ref.current = value;\n }\n};\n\nconst formControlStyle = ({\n fullWidth,\n style,\n sx,\n}: {\n fullWidth?: boolean;\n style?: CSSProperties;\n sx?: PrimitiveSx | Sx;\n}) => ({\n ...(fullWidth ? { width: \"100%\" } : {}),\n ...sxToStyle(sx),\n ...style,\n});\n\nconst composeEventHandlers =\n (...handlers: Array<((event: any) => void) | undefined>) =>\n (event: any) => {\n for (const handler of handlers) {\n handler?.(event);\n }\n };\n\nconst composeOptionalEventHandlers = (...handlers: Array<((event: any) => void) | undefined>) =>\n handlers.some(Boolean) ? composeEventHandlers(...handlers) : undefined;\n\nconst forwardedAutocompleteInputProps = new Set([\n \"autoComplete\",\n \"autoFocus\",\n \"disabled\",\n \"id\",\n \"name\",\n \"onBlur\",\n \"onFocus\",\n \"onKeyDown\",\n \"onKeyPress\",\n \"onKeyUp\",\n \"placeholder\",\n \"readOnly\",\n \"required\",\n \"title\",\n]);\n\nconst pickAutocompleteInputProps = (...sources: Array<Record<string, any> | undefined>) => {\n const result: Record<string, any> = {};\n\n sources.forEach((source) => {\n if (!source) return;\n\n Object.entries(source).forEach(([key, value]) => {\n if (\n key.startsWith(\"aria-\") ||\n key.startsWith(\"data-\") ||\n forwardedAutocompleteInputProps.has(key)\n ) {\n result[key] = value;\n }\n });\n });\n\n return result;\n};\n\nconst sizeValue = (value: unknown) => (typeof value === \"number\" ? value : undefined);\n\nexport type SxProps<T = unknown> = any & T;\nexport type Theme = any;\n\ntype CompatClassNames = Record<string, string | undefined> | ((...args: unknown[]) => unknown);\ntype CompatStyles = Record<string, CSSProperties | undefined>;\ntype CompatInputProps = object & {\n disabled?: boolean;\n endAdornment?: ReactNode;\n inputProps?: object;\n notched?: boolean;\n readOnly?: boolean;\n startAdornment?: ReactNode;\n};\ntype SelectChangeEvent = {\n currentTarget: { name?: unknown; value: string };\n target: { name?: unknown; value: string };\n};\ntype TextFieldValue = unknown;\ntype TextFieldInputRef = Ref<HTMLInputElement | HTMLTextAreaElement>;\n\ninterface DialogPaperProps extends Record<string, unknown> {\n className?: string;\n component?: ElementType;\n elevation?: unknown;\n style?: CSSProperties;\n sx?: Sx;\n}\n\ninterface DialogProps\n extends Omit<\n ComponentProps<typeof MantineModal.Root>,\n \"children\" | \"classNames\" | \"onClose\" | \"opened\" | \"size\" | \"style\" | \"styles\"\n > {\n centered?: boolean;\n children?: ReactNode;\n classNames?: CompatClassNames;\n closeButtonProps?: ComponentProps<typeof MantineModal.CloseButton>;\n closeOnEscape?: boolean;\n disableEscapeKeyDown?: boolean;\n fullWidth?: boolean;\n maxWidth?: boolean | number | string;\n onClose?: (event: typeof dialogCloseEvent, reason: DialogCloseReason) => void;\n open?: boolean;\n overlayProps?: ComponentProps<typeof MantineModal.Overlay>;\n PaperProps?: DialogPaperProps;\n shadow?: ComponentProps<typeof MantineModal.Content>[\"shadow\"];\n style?: CSSProperties;\n styles?: CompatStyles;\n sx?: Sx;\n title?: ReactNode;\n withCloseButton?: boolean;\n withOverlay?: boolean;\n}\n\nexport interface TextFieldProps extends Record<string, unknown> {\n children?: ReactNode;\n defaultValue?: TextFieldValue;\n endAdornment?: ReactNode;\n error?: boolean;\n fullWidth?: boolean;\n helperText?: ReactNode;\n inputProps?: object;\n InputLabelProps?: object;\n inputRef?: TextFieldInputRef;\n InputProps?: CompatInputProps;\n label?: ReactNode;\n multiline?: boolean;\n onChange?: (event: SelectChangeEvent) => void;\n placeholder?: string;\n select?: boolean;\n size?: unknown;\n startAdornment?: ReactNode;\n style?: CSSProperties;\n styles?: CompatStyles;\n sx?: PrimitiveSx;\n value?: TextFieldValue;\n variant?: unknown;\n}\n\ntype ParsedColor = {\n r: number;\n g: number;\n b: number;\n a?: number;\n};\n\nconst clamp = (value: number, min: number, max: number) => Math.min(max, Math.max(min, value));\n\nconst clampRatio = (value = 0) => clamp(value, 0, 1);\n\nconst formatRatio = (value: number) => Number(clampRatio(value).toFixed(3)).toString();\n\nconst formatPercent = (value: number) => Number(clamp(value, 0, 100).toFixed(3)).toString();\n\nconst formatRgba = ({ r, g, b }: ParsedColor, value: number) =>\n `rgba(${r}, ${g}, ${b}, ${formatRatio(value)})`;\n\nconst formatColor = ({ r, g, b, a }: ParsedColor) =>\n a === undefined || a >= 1 ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${formatRatio(a)})`;\n\nconst normalizeChannel = (value: string) => {\n if (value.endsWith(\"%\")) return Math.round((clamp(Number.parseFloat(value), 0, 100) / 100) * 255);\n return Math.round(clamp(Number.parseFloat(value), 0, 255));\n};\n\nconst normalizeAlpha = (value: string | undefined) => {\n if (value === undefined) return undefined;\n if (value.endsWith(\"%\")) return clampRatio(Number.parseFloat(value) / 100);\n return clampRatio(Number.parseFloat(value));\n};\n\nconst splitWhitespace = (value: string) => {\n const tokens: string[] = [];\n let current = \"\";\n\n for (const char of value) {\n if (char === \" \" || char === \"\\n\" || char === \"\\r\" || char === \"\\t\") {\n if (current) tokens.push(current);\n current = \"\";\n } else {\n current += char;\n }\n }\n\n if (current) tokens.push(current);\n return tokens;\n};\n\nconst parseHexColor = (color: string): ParsedColor | undefined => {\n const hex = color.trim().replace(/^#/, \"\");\n if (![3, 4, 6, 8].includes(hex.length) || !/^[\\da-f]+$/i.test(hex)) return undefined;\n\n const normalized =\n hex.length === 3 || hex.length === 4\n ? Array.from(hex)\n .map((char) => `${char}${char}`)\n .join(\"\")\n : hex;\n\n return {\n r: Number.parseInt(normalized.slice(0, 2), 16),\n g: Number.parseInt(normalized.slice(2, 4), 16),\n b: Number.parseInt(normalized.slice(4, 6), 16),\n a:\n normalized.length === 8\n ? clampRatio(Number.parseInt(normalized.slice(6, 8), 16) / 255)\n : undefined,\n };\n};\n\nconst parseRgbColor = (color: string): ParsedColor | undefined => {\n const trimmed = color.trim();\n const lower = trimmed.toLowerCase();\n const openParenIndex = trimmed.indexOf(\"(\");\n\n if (\n openParenIndex === -1 ||\n !trimmed.endsWith(\")\") ||\n (!lower.startsWith(\"rgb(\") && !lower.startsWith(\"rgba(\"))\n ) {\n return undefined;\n }\n\n const body = trimmed.slice(openParenIndex + 1, -1).trim();\n const slashIndex = body.indexOf(\"/\");\n const channelBody = slashIndex === -1 ? body : body.slice(0, slashIndex).trim();\n const slashAlpha = slashIndex === -1 ? undefined : body.slice(slashIndex + 1).trim();\n const parts = channelBody.includes(\",\")\n ? channelBody\n .split(\",\")\n .map((part) => part.trim())\n .filter(Boolean)\n : splitWhitespace(channelBody);\n const alphaValue = slashAlpha ?? (parts.length > 3 ? parts[3] : undefined);\n\n if (parts.length < 3) return undefined;\n\n return {\n r: normalizeChannel(parts[0] ?? \"0\"),\n g: normalizeChannel(parts[1] ?? \"0\"),\n b: normalizeChannel(parts[2] ?? \"0\"),\n a: normalizeAlpha(alphaValue),\n };\n};\n\nconst parseColor = (color: string) => parseHexColor(color) ?? parseRgbColor(color);\n\nconst mixChannel = (channel: number, target: number, coefficient: number) =>\n Math.round(channel + (target - channel) * clampRatio(coefficient));\n\nconst mixColor = (color: ParsedColor, target: 0 | 255, coefficient = 0.2) =>\n formatColor({\n r: mixChannel(color.r, target, coefficient),\n g: mixChannel(color.g, target, coefficient),\n b: mixChannel(color.b, target, coefficient),\n a: color.a,\n });\n\nconst hashString = (value: string) =>\n Array.from(value)\n .reduce((result, char) => (result * 31 + char.charCodeAt(0)) >>> 0, 0)\n .toString(36);\n\nconst cssPropertyName = (property: string) =>\n property.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`);\n\nconst cssPropertyValue = (value: string | number) =>\n typeof value === \"number\" ? `${value}px` : value;\n\nconst styleObjectToCss = (selector: string, sx: CSSProperties | SxEntry[]): string => {\n const declarations: string[] = [];\n const nestedRules: string[] = [];\n\n normalizeSxEntries(sx).forEach((entry) => {\n Object.entries(entry).forEach(([key, value]) => {\n if (key.startsWith(\"&\") && isObjectRecord(value)) {\n nestedRules.push(styleObjectToCss(key.replace(/&/g, selector), value));\n return;\n }\n\n if (key.startsWith(\"@\") && isObjectRecord(value)) {\n nestedRules.push(`${key}{${styleObjectToCss(selector, value)}}`);\n return;\n }\n\n if (typeof value === \"string\" || typeof value === \"number\") {\n declarations.push(`${cssPropertyName(key)}:${cssPropertyValue(value)};`);\n }\n });\n });\n\n return `${selector}{${declarations.join(\"\")}}${nestedRules.join(\"\")}`;\n};\n\nconst ensureCompatStyleClass = (sx: CSSProperties | SxEntry[]) => {\n if (!hasNestedStyle(sx)) return undefined;\n\n const className = `fm-styled-${hashString(JSON.stringify(sx))}`;\n const styleId = `${className}-style`;\n\n if (typeof document !== \"undefined\" && !document.getElementById(styleId)) {\n const style = document.createElement(\"style\");\n style.id = styleId;\n style.textContent = styleObjectToCss(`.${className}`, sx);\n document.head.appendChild(style);\n }\n\n return className;\n};\n\nexport const alpha = (color: string, value = 1) => {\n const parsedColor = parseColor(color);\n if (parsedColor) return formatRgba(parsedColor, value);\n return `color-mix(in srgb, ${color} ${formatPercent(clampRatio(value) * 100)}%, transparent)`;\n};\n\nexport const darken = (color: string, coefficient = 0.2) => {\n const parsedColor = parseColor(color);\n if (parsedColor) return mixColor(parsedColor, 0, coefficient);\n return `color-mix(in srgb, ${color} ${formatPercent((1 - clampRatio(coefficient)) * 100)}%, black)`;\n};\n\nexport const lighten = (color: string, coefficient = 0.2) => {\n const parsedColor = parseColor(color);\n if (parsedColor) return mixColor(parsedColor, 255, coefficient);\n return `color-mix(in srgb, ${color} ${formatPercent((1 - clampRatio(coefficient)) * 100)}%, white)`;\n};\n\n/**\n * Injects keyframes into document.head at runtime for styled-component compatibility.\n * On the server it only returns the generated animation name; strict CSP consumers\n * should prefer static CSS classes.\n */\nexport const keyframes = (strings: TemplateStringsArray | string[], ...values: unknown[]) => {\n const body = strings.reduce(\n (result, part, index) => `${result}${part}${values[index] ?? \"\"}`,\n \"\",\n );\n const hash = hashString(body);\n const name = `fm-keyframes-${hash}`;\n\n if (typeof document !== \"undefined\" && !document.getElementById(name)) {\n const style = document.createElement(\"style\");\n style.id = name;\n style.textContent = `@keyframes ${name} { ${body} }`;\n document.head.appendChild(style);\n }\n\n return name;\n};\nconst compatTheme = {\n breakpoints: compatBreakpoints,\n palette: {\n action: {\n active: fairmintVars.colorIconPrimary,\n hover: fairmintVars.colorBgHover,\n selected: fairmintVars.colorBgSelected,\n },\n background: { default: fairmintVars.colorBgCanvas, paper: fairmintVars.colorBgSurface },\n common: { black: commonColors.black, white: commonColors.white },\n divider: fairmintVars.colorBorderDefault,\n error: { main: fairmintVars.colorErrorText },\n grey: {\n 50: fairmintVars.colorBgSurfaceSecondary,\n 100: fairmintVars.colorBgHover,\n 500: fairmintVars.colorTextSecondary,\n 900: fairmintVars.colorTextPrimary,\n },\n info: { main: fairmintVars.colorInfoText },\n mode: \"light\",\n primary: {\n contrastText: commonColors.white,\n dark: fairmintVars.colorBrandPrimaryHover,\n light: fairmintVars.colorBrandPrimaryActive,\n main: fairmintVars.colorBrandPrimary,\n },\n secondary: { main: fairmintVars.colorTextSecondary },\n success: { main: fairmintVars.colorSuccessText },\n text: {\n disabled: fairmintVars.colorTextDisabled,\n primary: fairmintVars.colorTextPrimary,\n secondary: fairmintVars.colorTextSecondary,\n },\n warning: { main: fairmintVars.colorWarningText },\n },\n shape: { borderRadius: 4 },\n spacing: (...values: Array<number | string>) =>\n values.map((value) => (typeof value === \"number\" ? `${value * 8}px` : value)).join(\" \"),\n transitions: {\n create: (\n props: string | string[],\n options?: { duration?: number | string; easing?: string },\n ) => {\n const properties = Array.isArray(props) ? props : [props];\n const duration = options?.duration ?? \"150ms\";\n const easing = options?.easing ?? \"ease\";\n\n return properties.map((property) => `${property} ${duration} ${easing}`).join(\",\");\n },\n },\n};\n\nconst isObjectRecord = (value: unknown): value is Record<string, any> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst mergeCompatTheme = (base: any, ...overrides: unknown[]): any => {\n const merged = { ...base };\n\n for (const override of overrides) {\n if (!isObjectRecord(override)) continue;\n\n for (const [key, value] of Object.entries(override)) {\n const baseValue = merged[key];\n merged[key] =\n isObjectRecord(baseValue) && isObjectRecord(value)\n ? mergeCompatTheme(baseValue, value)\n : value;\n }\n }\n\n return merged;\n};\n\nconst CompatThemeContext = createContext(compatTheme);\n\nexport const createTheme = (...overrides: unknown[]) => mergeCompatTheme(compatTheme, ...overrides);\nexport const responsiveFontSizes = (theme: unknown) => theme;\nexport const CssBaseline = () => null;\nexport const common = commonColors;\nexport const inputLabelClasses = { root: \"fm-input-label-root\" };\nexport const tableCellClasses = { root: \"fm-table-cell-root\" };\nexport const backdropClasses = { root: \"fm-backdrop-root\" };\nexport const filledInputClasses = { root: \"fm-filled-input-root\" };\nexport const outlinedInputClasses = { root: \"fm-outlined-input-root\" };\nexport const paperClasses = { root: \"fm-paper-root\" };\nexport const styled =\n (Component: any) =>\n (styles: any) =>\n ({ sx, style, ...props }: any) => {\n const currentTheme = useTheme();\n const computedStyles =\n typeof styles === \"function\"\n ? styles({ ...currentTheme, theme: currentTheme, ...props })\n : styles;\n const resolvedStyle = {\n ...cssStyleObjectToInlineStyle(computedStyles),\n ...sxToStyle(sx),\n ...style,\n };\n const nestedClassName = ensureCompatStyleClass(computedStyles);\n const className = [props.className, nestedClassName].filter(Boolean).join(\" \");\n\n if (typeof Component === \"string\") {\n return <Component {...props} className={className || undefined} style={resolvedStyle} />;\n }\n\n return (\n <Component\n {...props}\n className={className || undefined}\n sx={{ ...computedStyles, ...sx }}\n style={resolvedStyle}\n />\n );\n };\nexport const ThemeProvider = ({\n children,\n theme: providedTheme,\n}: {\n children: ReactNode;\n theme?: unknown;\n}) => {\n const parentTheme = useTheme();\n const resolvedTheme = useMemo(\n () => mergeCompatTheme(parentTheme, providedTheme),\n [parentTheme, providedTheme],\n );\n\n return (\n <CompatThemeContext.Provider value={resolvedTheme}>{children}</CompatThemeContext.Provider>\n );\n};\nexport const useTheme = () => useContext(CompatThemeContext);\n\nexport const Typography = ({\n align,\n children,\n className,\n color,\n component,\n noWrap,\n sx,\n variant,\n ...props\n}: any) => {\n const Component = variant?.startsWith?.(\"h\") ? Title : Text;\n const order = variant?.startsWith?.(\"h\") ? Number(variant.slice(1)) : undefined;\n const resolvedColor = resolveCompatColor(color);\n return (\n <Component\n {...(resolvedColor ? { c: resolvedColor } : {})}\n className={[\n \"fairmint-typography-root\",\n typeof variant === \"string\" ? `fairmint-typography-${variant}` : undefined,\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n component={component}\n order={order}\n style={{\n ...sxToStyle(sx),\n ...(noWrap ? { overflow: \"hidden\", textOverflow: \"ellipsis\", whiteSpace: \"nowrap\" } : {}),\n }}\n ta={align}\n {...props}\n >\n {children}\n </Component>\n );\n};\n\nexport const IconButton = ({\n children,\n className,\n color = \"default\",\n edge,\n size,\n sx,\n ...props\n}: any) => (\n <ActionIcon\n className={[\n \"MuiIconButton-root\",\n \"fairmint-icon-button-root\",\n `MuiIconButton-color${String(color).charAt(0).toUpperCase()}${String(color).slice(1)}`,\n `fairmint-icon-button-color${String(color).charAt(0).toUpperCase()}${String(color).slice(1)}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n color={resolveCompatColor(color)}\n size={mapCompatIconButtonSize(size)}\n style={sxToStyle(sx)}\n {...props}\n >\n {children}\n </ActionIcon>\n);\n\nexport const CircularProgress = ({ size, sx, ...props }: any) => (\n <Loader size={sizeValue(size) || \"sm\"} style={sxToStyle(sx)} {...props} />\n);\n\nexport const CardHeader = ({ action, subheader, title, titleTypographyProps }: any) => (\n <Group justify=\"space-between\" align=\"flex-start\" mb=\"md\">\n <div>\n <Title order={3} size=\"h5\" {...titleTypographyProps}>\n {title}\n </Title>\n {subheader && (\n <Text c={resolveCompatColor(\"text.secondary\")} size=\"sm\">\n {subheader}\n </Text>\n )}\n </div>\n {action}\n </Group>\n);\n\nexport const CardContent = ({ children, sx, ...props }: any) => (\n <MantineBox style={sxToStyle(sx)} {...props}>\n {children}\n </MantineBox>\n);\n\nexport const CardActions = ({ children, sx, ...props }: any) => (\n <Group style={sxToStyle(sx)} {...props}>\n {children}\n </Group>\n);\n\nconst dialogMaxWidthBySize: Record<string, number> = {\n lg: 1200,\n md: 900,\n sm: 600,\n xl: 1536,\n xs: 444,\n};\n\nconst dialogPaperStyleFromSx = (sx?: Sx) => {\n if (!sx) return undefined;\n const resolved = typeof sx === \"function\" ? sx(compatTheme) : sx;\n const paperSx =\n (resolved as Record<string, unknown>)[\"& .fairmint-dialog-content\"] ||\n (resolved as Record<string, unknown>)[\"& .MuiDialog-paper\"];\n\n return paperSx && typeof paperSx === \"object\" ? sxToStyle(paperSx as Sx) : undefined;\n};\n\nconst resolveDialogSize = (maxWidth: unknown, paperStyle?: CSSProperties) => {\n if (paperStyle?.maxWidth) return paperStyle.maxWidth;\n if (maxWidth === false) return \"100%\";\n if (typeof maxWidth === \"number\") return maxWidth;\n if (typeof maxWidth === \"string\") return dialogMaxWidthBySize[maxWidth] || maxWidth;\n\n return dialogMaxWidthBySize.sm;\n};\n\nconst dialogCloseEvent = { currentTarget: null, target: null };\ntype DialogCloseReason = \"backdropClick\" | \"escapeKeyDown\";\n\nexport const Dialog = ({\n centered,\n children,\n closeButtonProps,\n closeOnEscape,\n disableEscapeKeyDown,\n fullWidth,\n maxWidth,\n onClose,\n open,\n overlayProps,\n PaperProps,\n classNames,\n shadow,\n styles,\n sx,\n title,\n withCloseButton = true,\n withOverlay = true,\n ...props\n}: DialogProps) => {\n const {\n className: paperClassName,\n component: PaperComponent,\n elevation,\n style: paperInlineStyle,\n sx: paperSx,\n ...paperElementProps\n } = PaperProps || {};\n const paperStyle = {\n ...sxToStyle(paperSx),\n ...paperInlineStyle,\n ...dialogPaperStyleFromSx(sx),\n };\n const contentStyle = {\n ...(fullWidth ? { width: \"100%\" } : {}),\n ...paperStyle,\n ...styles?.content,\n };\n const classNameMap = typeof classNames === \"function\" ? undefined : classNames;\n const contentClassName = [\"fairmint-dialog-content\", classNameMap?.content, paperClassName]\n .filter(Boolean)\n .join(\" \");\n const bodyContent = PaperComponent\n ? createElement(PaperComponent, paperElementProps, children)\n : children;\n const contentProps = PaperComponent ? {} : paperElementProps;\n const hasHeader = Boolean(title) || withCloseButton;\n const closeReasonRef = useRef<DialogCloseReason>(\"escapeKeyDown\");\n const handleClose = () => {\n onClose?.(dialogCloseEvent, closeReasonRef.current);\n closeReasonRef.current = \"escapeKeyDown\";\n };\n\n return (\n <MantineModal.Root\n centered={centered ?? true}\n closeOnEscape={disableEscapeKeyDown ? false : closeOnEscape}\n opened={!!open}\n onClose={handleClose}\n size={resolveDialogSize(maxWidth, paperStyle)}\n style={sxToStyle(sx)}\n classNames={{\n ...classNameMap,\n body: [\"fairmint-dialog-body\", classNameMap?.body].filter(Boolean).join(\" \"),\n content: contentClassName,\n inner: [\"fairmint-dialog-container\", classNameMap?.inner].filter(Boolean).join(\" \"),\n root: [\"fairmint-dialog-root\", classNameMap?.root].filter(Boolean).join(\" \"),\n }}\n styles={{ ...styles, content: contentStyle }}\n {...props}\n >\n {withOverlay && (\n <MantineModal.Overlay\n {...overlayProps}\n onClick={(event) => {\n closeReasonRef.current = \"backdropClick\";\n overlayProps?.onClick?.(event);\n }}\n onMouseDown={(event) => {\n closeReasonRef.current = \"backdropClick\";\n overlayProps?.onMouseDown?.(event);\n }}\n />\n )}\n <MantineModal.Content\n {...contentProps}\n className={contentClassName}\n shadow={shadow ?? (elevation ? \"xl\" : undefined)}\n style={contentStyle}\n >\n {hasHeader && (\n <MantineModal.Header className={classNameMap?.header}>\n {title && (\n <MantineModal.Title className={classNameMap?.title}>{title}</MantineModal.Title>\n )}\n {withCloseButton && (\n <MantineModal.CloseButton\n aria-label=\"Close\"\n {...closeButtonProps}\n onClick={(event) => {\n closeReasonRef.current = \"escapeKeyDown\";\n closeButtonProps?.onClick?.(event);\n }}\n className={[classNameMap?.close, closeButtonProps?.className]\n .filter(Boolean)\n .join(\" \")}\n />\n )}\n </MantineModal.Header>\n )}\n <MantineModal.Body\n className={[\"fairmint-dialog-body\", classNameMap?.body].filter(Boolean).join(\" \")}\n >\n {bodyContent}\n </MantineModal.Body>\n </MantineModal.Content>\n </MantineModal.Root>\n );\n};\n\nexport const DialogTitle = ({ children, sx, ...props }: any) => (\n <Title order={3} style={sxToStyle(sx)} {...props}>\n {children}\n </Title>\n);\n\nexport const DialogContent = ({ children, sx, ...props }: any) => (\n <MantineBox style={sxToStyle(sx)} {...props}>\n {children}\n </MantineBox>\n);\n\nexport const DialogActions = ({ children, sx, ...props }: any) => (\n <Group justify=\"flex-end\" style={sxToStyle(sx)} {...props}>\n {children}\n </Group>\n);\n\nexport const TableHead = MantineTable.Thead;\nexport const TableBody = MantineTable.Tbody;\nexport const TableRow = ({ hover: _hover, style, sx, ...props }: any) => (\n <MantineTable.Tr style={{ ...sxToStyle(sx), ...style }} {...props} />\n);\nexport const TableCell = ({ align, children, component, style, sx, ...props }: any) => {\n const CellComponent = component === \"th\" ? MantineTable.Th : MantineTable.Td;\n\n return (\n <CellComponent ta={align} style={{ ...sxToStyle(sx), ...style }} {...props}>\n {children}\n </CellComponent>\n );\n};\n\nexport {\n TablePagination,\n type TablePaginationProps,\n type TablePaginationRowsPerPageOption,\n} from \"../generic/TablePagination/TablePagination\";\n\nconst isTabsListChild = (child: ReactNode) =>\n isValidElement(child) && child.type === MantineTabs.List;\n\nconst isTabLabelChild = (child: ReactNode) =>\n isValidElement(child) &&\n (() => {\n const props = child.props as { label?: unknown; value?: unknown };\n return (\n child.type === MantineTabs.Tab ||\n (typeof child.type !== \"string\" &&\n \"label\" in props &&\n \"value\" in props &&\n child.type !== MantineTabs.Panel)\n );\n })();\n\nexport const Tabs = ({\n children,\n className,\n classNames,\n indicatorColor: _indicatorColor,\n onChange,\n scrollButtons,\n textColor: _textColor,\n value,\n variant,\n ...props\n}: any) => {\n const classNameMap = typeof classNames === \"function\" ? undefined : classNames;\n const childArray = Children.toArray(children);\n const explicitList = childArray.find(isTabsListChild);\n const tabChildren = explicitList\n ? undefined\n : childArray.filter((child) => isTabLabelChild(child));\n const panelChildren = explicitList\n ? childArray.filter((child) => !isTabsListChild(child))\n : childArray.filter((child) => !isTabLabelChild(child));\n\n return (\n <MantineTabs\n className={[\"fairmint-tabs-root\", className].filter(Boolean).join(\" \")}\n classNames={{\n ...classNameMap,\n list: [\"fairmint-tabs-list\", classNameMap?.list].filter(Boolean).join(\" \"),\n panel: [\"fairmint-tabs-panel\", classNameMap?.panel].filter(Boolean).join(\" \"),\n root: [\"fairmint-tabs-root\", classNameMap?.root].filter(Boolean).join(\" \"),\n tab: [\"fairmint-tab-root\", \"fairmint-tabs-tab\", classNameMap?.tab]\n .filter(Boolean)\n .join(\" \"),\n }}\n value={value}\n onChange={(next) => onChange?.({}, next)}\n variant={variant === \"scrollable\" ? \"default\" : variant}\n {...props}\n >\n {explicitList || (\n <MantineTabs.List\n className=\"fairmint-tabs-list\"\n style={\n variant === \"scrollable\" || scrollButtons\n ? { flexWrap: \"nowrap\", overflowX: \"auto\", overflowY: \"hidden\" }\n : undefined\n }\n >\n {tabChildren}\n </MantineTabs.List>\n )}\n {panelChildren}\n </MantineTabs>\n );\n};\nexport const Tab = ({ className, disableRipple: _disableRipple, label, value, ...props }: any) => (\n <MantineTabs.Tab\n className={[\"fairmint-tab-root\", className].filter(Boolean).join(\" \")}\n value={value}\n {...props}\n >\n {label}\n </MantineTabs.Tab>\n);\n\nconst resolveAnchorElement = (anchorEl: any): HTMLElement | undefined => {\n const resolvedAnchor = typeof anchorEl === \"function\" ? anchorEl() : anchorEl;\n if (typeof HTMLElement === \"undefined\") return undefined;\n return resolvedAnchor instanceof HTMLElement ? resolvedAnchor : undefined;\n};\n\nconst getAnchorStyle = (anchorEl: any): CSSProperties => {\n const anchor = resolveAnchorElement(anchorEl);\n if (!anchor)\n return { height: 0, left: 0, pointerEvents: \"none\", position: \"fixed\", top: 0, width: 0 };\n\n const rect = anchor.getBoundingClientRect();\n return {\n height: rect.height,\n left: rect.left,\n pointerEvents: \"none\",\n position: \"fixed\",\n top: rect.top,\n width: rect.width,\n };\n};\n\nconst useAnchorStyle = (anchorEl: any, open: boolean | undefined) => {\n const [style, setStyle] = useState<CSSProperties>(() => getAnchorStyle(anchorEl));\n\n useEffect(() => {\n const updateStyle = () => setStyle(getAnchorStyle(anchorEl));\n const anchor = resolveAnchorElement(anchorEl);\n\n updateStyle();\n if (!open || typeof window === \"undefined\") return undefined;\n\n window.addEventListener(\"scroll\", updateStyle, true);\n window.addEventListener(\"resize\", updateStyle);\n\n const resizeObserver =\n typeof ResizeObserver !== \"undefined\" && anchor ? new ResizeObserver(updateStyle) : undefined;\n if (resizeObserver && anchor) resizeObserver.observe(anchor);\n\n return () => {\n window.removeEventListener(\"scroll\", updateStyle, true);\n window.removeEventListener(\"resize\", updateStyle);\n resizeObserver?.disconnect();\n };\n }, [anchorEl, open]);\n\n return style;\n};\n\nexport const Menu = ({ anchorEl, children, onClose, open, ...props }: any) => {\n const anchorStyle = useAnchorStyle(anchorEl, open);\n const target = isValidElement(anchorEl) ? (\n anchorEl\n ) : (\n <span aria-hidden=\"true\" data-fairmint-menu-anchor=\"true\" style={anchorStyle} />\n );\n\n return (\n <MantineMenu opened={open} onChange={(next) => !next && onClose?.()} {...props}>\n <MantineMenu.Target>{target}</MantineMenu.Target>\n <MantineMenu.Dropdown>{children}</MantineMenu.Dropdown>\n </MantineMenu>\n );\n};\n\nexport const MenuItem = ({ children, component, disabled, onClick, value, ...props }: any) => {\n const Component: any = component || MantineMenu.Item;\n return (\n <Component disabled={disabled} onClick={onClick} value={value} {...props}>\n {children}\n </Component>\n );\n};\n\nexport const TextField = ({\n children,\n error,\n fullWidth,\n helperText,\n inputProps,\n InputProps,\n InputLabelProps: _InputLabelProps,\n inputRef,\n label,\n endAdornment,\n multiline,\n onChange,\n placeholder,\n select,\n size,\n startAdornment,\n style,\n styles,\n sx,\n defaultValue,\n value,\n variant: _variant,\n ...props\n}: TextFieldProps) => {\n const mantineSize = mapCompatSize(size);\n const resolvedStyle = formControlStyle({ fullWidth, style, sx });\n const { disabled, readOnly, ...fieldProps } = props;\n const mergedInputProps: Record<string, unknown> = {\n ...(InputProps?.inputProps || {}),\n ...(inputProps || {}),\n };\n const {\n disabled: inputDisabled,\n readOnly: inputReadOnly,\n ...passthroughInputProps\n } = mergedInputProps;\n const resolvedDisabled =\n optionalBoolean(disabled) ??\n optionalBoolean(InputProps?.disabled) ??\n optionalBoolean(inputDisabled);\n const resolvedReadOnly =\n optionalBoolean(readOnly) ??\n optionalBoolean(InputProps?.readOnly) ??\n optionalBoolean(inputReadOnly);\n const helperDescription = error ? undefined : helperText || undefined;\n const ariaLabel =\n optionalString(fieldProps[\"aria-label\"]) || optionalString(passthroughInputProps[\"aria-label\"]);\n const textInputRef = inputRef\n ? (node: HTMLInputElement | HTMLTextAreaElement | null) => assignCompatRef(inputRef, node)\n : undefined;\n\n if (select) {\n const data = Children.toArray(children)\n .filter((child): child is ReactElement<{ children?: ReactNode; value?: unknown }> =>\n isValidElement(child),\n )\n .map((child) => ({\n label: nodeToText(child.props.children),\n originalValue: child.props.value,\n value: String(child.props.value),\n }));\n const optionValuesByString = new Map(\n data.map((option) => [option.value, option.originalValue]),\n );\n\n return (\n <MantineSelect\n data={data.map(({ label, value }) => ({ label, value }))}\n defaultValue={defaultValue == null ? undefined : String(defaultValue)}\n value={value === undefined ? undefined : value == null ? null : String(value)}\n onChange={(next) => {\n const originalValue =\n next == null\n ? null\n : optionValuesByString.has(next)\n ? optionValuesByString.get(next)\n : next;\n onChange?.({\n currentTarget: { name: fieldProps.name, value: originalValue },\n target: { name: fieldProps.name, value: originalValue },\n } as SelectChangeEvent);\n }}\n description={helperDescription}\n disabled={resolvedDisabled}\n error={error ? helperText : undefined}\n label={label}\n readOnly={resolvedReadOnly}\n size={mantineSize}\n style={resolvedStyle}\n classNames={{\n input: \"fairmint-input-input fairmint-select-input\",\n wrapper: \"fairmint-input-root\",\n }}\n styles={styles}\n {...fieldProps}\n />\n );\n }\n const Component = multiline ? Textarea : TextInput;\n return (\n <Component\n defaultValue={inputControlValue(defaultValue)}\n value={inputControlValue(value)}\n onChange={onChange}\n description={helperDescription}\n disabled={resolvedDisabled}\n error={error ? helperText : undefined}\n label={label}\n leftSection={InputProps?.startAdornment || startAdornment}\n placeholder={placeholder}\n readOnly={resolvedReadOnly}\n rightSection={InputProps?.endAdornment || endAdornment}\n size={mantineSize}\n style={resolvedStyle}\n classNames={{\n input: \"fairmint-input-input fairmint-outlined-input-input\",\n root: \"fairmint-input-root fairmint-outlined-input-root\",\n wrapper: \"fairmint-input-wrapper fairmint-outlined-input-wrapper\",\n }}\n styles={styles}\n ref={textInputRef}\n {...fieldProps}\n {...passthroughInputProps}\n aria-label={ariaLabel}\n />\n );\n};\n\nexport const OutlinedInput = ({\n error,\n fullWidth,\n inputProps,\n inputRef,\n InputProps,\n endAdornment,\n size,\n startAdornment,\n style,\n sx,\n ...props\n}: any) => {\n const mantineSize = mapCompatSize(size);\n return (\n <TextInput\n error={error}\n leftSection={InputProps?.startAdornment || startAdornment}\n rightSection={InputProps?.endAdornment || endAdornment}\n ref={inputRef}\n size={mantineSize}\n style={formControlStyle({ fullWidth, style, sx })}\n classNames={{\n input: \"fairmint-input-input fairmint-outlined-input-input\",\n root: \"fairmint-input-root fairmint-outlined-input-root\",\n wrapper: \"fairmint-input-wrapper fairmint-outlined-input-wrapper\",\n }}\n {...props}\n {...inputProps}\n />\n );\n};\nexport const InputAdornment = ({ children }: any) => <>{children}</>;\nexport const InputLabel = ({ children }: any) => <Text size=\"sm\">{children}</Text>;\nexport const FormControl = ({ children, fullWidth, style, sx, ...props }: any) => (\n <Stack style={formControlStyle({ fullWidth, style, sx })} {...props}>\n {children}\n </Stack>\n);\nexport const FormHelperText = ({ children, error }: any) => (\n <Text c={resolveCompatColor(error ? \"error\" : \"text.secondary\")} size=\"xs\">\n {children}\n </Text>\n);\nexport const FormControlLabel = ({\n checked,\n control,\n disabled,\n label,\n onChange,\n sx,\n ...props\n}: any) => {\n const controlProps = isValidElement(control) ? (control.props as any) : {};\n const handleChange =\n onChange || controlProps.onChange\n ? (event: any, ...args: any[]) => {\n controlProps.onChange?.(event, ...args);\n onChange?.(event, event.currentTarget?.checked ?? event.target?.checked);\n }\n : undefined;\n\n return (\n <Group\n align=\"center\"\n component=\"label\"\n gap=\"xs\"\n style={{ width: \"100%\", ...sxToStyle(sx) }}\n {...props}\n >\n <MantineBox\n component=\"span\"\n style={{\n alignItems: \"center\",\n display: \"inline-flex\",\n }}\n >\n {isValidElement(control)\n ? cloneElement(control, {\n ...(checked !== undefined ? { checked } : {}),\n ...(disabled !== undefined ? { disabled } : {}),\n ...(handleChange ? { onChange: handleChange } : {}),\n } as any)\n : control}\n </MantineBox>\n <MantineBox\n component=\"span\"\n style={{\n color: disabled ? resolveCompatColor(\"text.disabled\") : undefined,\n flex: 1,\n minWidth: 0,\n }}\n >\n {isValidElement(label) ? label : <Text component=\"span\">{label}</Text>}\n </MantineBox>\n </Group>\n );\n};\n\nexport const AccordionSummary = ({ children, className, expandIcon, style, sx, ...props }: any) => (\n <MantineAccordion.Control\n chevron={expandIcon}\n className={[\"fairmint-accordion-summary-root\", className].filter(Boolean).join(\" \")}\n style={{ ...sxToStyle(sx), ...style }}\n {...props}\n >\n {children}\n </MantineAccordion.Control>\n);\nexport const AccordionDetails = ({ children, className, style, sx, ...props }: any) => (\n <MantineAccordion.Panel\n className={[\"fairmint-accordion-details-root\", className].filter(Boolean).join(\" \")}\n style={{ ...sxToStyle(sx), ...style }}\n {...props}\n >\n {children}\n </MantineAccordion.Panel>\n);\n\nconst isAccordionSummaryChild = (child: ReactNode) =>\n isValidElement(child) && child.type === AccordionSummary;\n\nconst groupAccordionChildren = (children: ReactNode) => {\n const groups: ReactNode[][] = [];\n\n Children.forEach(children, (child) => {\n if (isAccordionSummaryChild(child) || groups.length === 0) {\n groups.push([child]);\n return;\n }\n\n groups[groups.length - 1].push(child);\n });\n\n return groups;\n};\n\nexport const Accordion = ({\n children,\n className,\n defaultExpanded,\n expanded,\n multiple,\n onChange,\n ...props\n}: any) => {\n const groups = groupAccordionChildren(children);\n const itemValues = groups.map((_, index) => `item-${index}`);\n const isControlled = expanded !== undefined;\n const allowMultiple = multiple ?? false;\n const accordionValue = allowMultiple\n ? expanded\n ? itemValues\n : []\n : expanded\n ? itemValues[0]\n : null;\n\n return (\n <MantineAccordion\n className={[\"fairmint-accordion-root\", className].filter(Boolean).join(\" \")}\n classNames={{\n content: \"fairmint-accordion-details-content\",\n control: \"fairmint-accordion-summary-root\",\n item: \"fairmint-accordion-item\",\n label: \"fairmint-accordion-summary-content\",\n panel: \"fairmint-accordion-details-root\",\n }}\n defaultValue={\n !isControlled && defaultExpanded ? (allowMultiple ? itemValues : itemValues[0]) : undefined\n }\n multiple={allowMultiple}\n value={isControlled ? accordionValue : undefined}\n onChange={(value) => onChange?.({}, Array.isArray(value) ? value.length > 0 : Boolean(value))}\n {...props}\n >\n {groups.map((group, index) => (\n <MantineAccordion.Item key={itemValues[index]} value={itemValues[index]}>\n {group}\n </MantineAccordion.Item>\n ))}\n </MantineAccordion>\n );\n};\n\nexport const ButtonGroup = Group;\nexport const Chip = ({\n className,\n label,\n children,\n clickable,\n color = \"default\",\n icon,\n onClick,\n onDelete,\n size,\n sx,\n variant,\n ...props\n}: any) => {\n const chipClassName = [\n \"MuiChip-root\",\n \"fairmint-chip-root\",\n `MuiChip-color${String(color).charAt(0).toUpperCase()}${String(color).slice(1)}`,\n `fairmint-chip-color${String(color).charAt(0).toUpperCase()}${String(color).slice(1)}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n const content = label || children;\n\n if (onClick || onDelete) {\n return (\n <button\n className={chipClassName}\n onClick={onClick}\n style={{\n alignItems: \"center\",\n background: \"transparent\",\n border: \"1px solid currentColor\",\n borderRadius: 999,\n cursor: onClick ? \"pointer\" : \"default\",\n display: \"inline-flex\",\n gap: 4,\n padding: \"2px 8px\",\n ...sxToStyle(sx),\n }}\n type=\"button\"\n {...props}\n >\n {icon && <span className=\"fairmint-chip-icon\">{icon}</span>}\n <span className=\"MuiChip-label fairmint-chip-label\">{content}</span>\n {onDelete && (\n <span\n aria-hidden=\"true\"\n className=\"fairmint-chip-delete-icon\"\n data-testid=\"CancelIcon\"\n onClick={(event) => {\n event.stopPropagation();\n onDelete(event);\n }}\n style={{ cursor: \"pointer\", lineHeight: 1 }}\n >\n ×\n </span>\n )}\n </button>\n );\n }\n\n return (\n <Badge\n className={chipClassName}\n color={mapChipBadgeColor(color)}\n leftSection={icon ? <span className=\"fairmint-chip-icon\">{icon}</span> : undefined}\n size={mapCompatSize(size)}\n style={{ textTransform: \"none\", ...sxToStyle(sx) }}\n variant={mapChipVariant(variant)}\n {...props}\n >\n {content}\n </Badge>\n );\n};\nconst mouseEventMap: Record<string, keyof DocumentEventMap> = {\n onClick: \"click\",\n onMouseDown: \"mousedown\",\n onMouseUp: \"mouseup\",\n onPointerDown: \"pointerdown\",\n onPointerUp: \"pointerup\",\n};\n\nconst touchEventMap: Record<string, keyof DocumentEventMap> = {\n onTouchEnd: \"touchend\",\n onTouchStart: \"touchstart\",\n};\n\nconst isDocumentEventName = (\n eventName: keyof DocumentEventMap | undefined,\n): eventName is keyof DocumentEventMap => eventName !== undefined;\n\nconst assignRef = <T,>(ref: Ref<T> | undefined, value: T | null) => {\n if (typeof ref === \"function\") {\n ref(value);\n return;\n }\n if (ref && \"current\" in ref) {\n ref.current = value;\n }\n};\n\nconst createAutocompleteEvent = (value: unknown) => ({\n currentTarget: { value },\n target: { value },\n});\n\nexport const ClickAwayListener = ({\n children,\n mouseEvent = \"onClick\",\n onClickAway,\n touchEvent = \"onTouchEnd\",\n}: any) => {\n const nodeRef = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n if (!onClickAway) return;\n\n const handleClickAway = (event: Event) => {\n const node = nodeRef.current;\n if (node && event.target instanceof Node && node.contains(event.target)) return;\n onClickAway(event);\n };\n const eventNames = [\n mouseEvent === false ? undefined : mouseEventMap[mouseEvent] || \"click\",\n touchEvent === false ? undefined : touchEventMap[touchEvent] || \"touchend\",\n ].filter(isDocumentEventName);\n\n for (const eventName of eventNames) {\n document.addEventListener(eventName, handleClickAway, true);\n }\n\n return () => {\n for (const eventName of eventNames) {\n document.removeEventListener(eventName, handleClickAway, true);\n }\n };\n }, [mouseEvent, onClickAway, touchEvent]);\n\n if (Children.count(children) === 1) {\n const child = Children.only(children);\n if (isValidElement<{ ref?: Ref<HTMLElement> }>(child)) {\n const originalRef = child.props.ref;\n return cloneElement(child, {\n ref: (node: HTMLElement | null) => {\n nodeRef.current = node;\n assignRef(originalRef, node);\n },\n });\n }\n }\n\n return <span ref={nodeRef}>{children}</span>;\n};\nconst linkUnderlineStyle = (underline: unknown): CSSProperties => {\n if (underline === \"always\") return { textDecoration: \"underline\" };\n if (underline === \"none\" || underline === \"hover\") return { textDecoration: \"none\" };\n return {};\n};\n\nexport const Link = ({ children, color, style, sx, underline, ...props }: any) => (\n <Text\n component=\"a\"\n style={{ ...sxToStyle(sx), ...linkUnderlineStyle(underline), ...style }}\n {...(resolveCompatColor(color) ? { c: resolveCompatColor(color) } : {})}\n {...props}\n >\n {children}\n </Text>\n);\nexport const ListItemButton = ({ children, selected, sx, style, ...props }: any) => (\n <MantineBox\n aria-selected={selected || undefined}\n style={{\n backgroundColor: selected ? resolveCompatColor(\"action.selected\") : undefined,\n ...sxToStyle(sx),\n ...style,\n }}\n {...props}\n >\n {children}\n </MantineBox>\n);\nexport const ListItemIcon = ({ children, sx, style, ...props }: any) => (\n <MantineBox style={{ ...sxToStyle(sx), ...style }} {...props}>\n {children}\n </MantineBox>\n);\nexport const ListItemText = ({ primary, secondary }: any) => (\n <Stack gap={0}>\n <Text>{primary}</Text>\n {secondary && (\n <Text c={resolveCompatColor(\"text.secondary\")} size=\"sm\">\n {secondary}\n </Text>\n )}\n </Stack>\n);\nexport const SvgIcon = ({\n children,\n color,\n fontSize,\n htmlColor,\n style,\n sx,\n titleAccess,\n viewBox = \"0 0 24 24\",\n ...props\n}: any) => {\n const mappedFontSize =\n fontSize === \"small\" ? 20 : fontSize === \"large\" ? 35 : fontSize === \"inherit\" ? \"inherit\" : 24;\n\n return (\n <svg\n aria-hidden={titleAccess ? undefined : true}\n color={htmlColor || resolveCompatColor(color)}\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"1em\"\n role={titleAccess ? \"img\" : undefined}\n style={{\n color: htmlColor || resolveCompatColor(color),\n fontSize: mappedFontSize,\n ...sxToStyle(sx),\n ...style,\n }}\n viewBox={viewBox}\n width=\"1em\"\n {...props}\n >\n <title>{titleAccess || \"icon\"}</title>\n {children}\n </svg>\n );\n};\nexport const AlertTitle = ({ children }: any) => <Text fw={700}>{children}</Text>;\nexport class AdapterDayjs {}\nexport const LocalizationProvider = ({\n children,\n}: {\n children: ReactNode;\n dateAdapter?: unknown;\n}) => <>{children}</>;\nexport const DatePicker = ({\n defaultValue,\n fullWidth,\n label,\n onAccept,\n onChange,\n slotProps,\n sx,\n value,\n views: _views,\n ...props\n}: any) => {\n const {\n fullWidth: textFieldFullWidth,\n error: textFieldError,\n helperText,\n onBlur: textFieldOnBlur,\n required,\n size,\n style,\n sx: textFieldSx,\n ...textFieldProps\n } = slotProps?.textField || {};\n const mantineSize = mapCompatSize(size);\n const isControlled = value !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue ?? null);\n const resolvedValue = isControlled ? value : uncontrolledValue;\n const dateValue = resolvedValue?.format\n ? resolvedValue.format(\"YYYY-MM-DD\")\n : resolvedValue || \"\";\n const latestDateRef = useRef<string | null>(dateValue || null);\n latestDateRef.current = dateValue || null;\n const normalizePickerValue = (next: string | Date | null) => {\n if (!next) return null;\n if (next instanceof Date) return dayjs(next).format(\"YYYY-MM-DD\");\n return next;\n };\n const toDateValue = (next: string | null) => (next ? dayjs(next) : null);\n const emitChange = (next: string | Date | null) => {\n const iso = normalizePickerValue(next);\n latestDateRef.current = iso;\n const nextValue = toDateValue(iso);\n if (!isControlled) setUncontrolledValue(nextValue);\n onChange?.(nextValue);\n };\n const parseTypedDate = (raw: string) => {\n const trimmed = raw.trim();\n if (!trimmed) return null;\n const parsed = dayjs(trimmed, [\"MM/DD/YYYY\", \"M/D/YYYY\", \"YYYY-MM-DD\"], true);\n return parsed.isValid() ? parsed : null;\n };\n return (\n <DateInput\n label={label || textFieldProps.label}\n value={dateValue || null}\n onChange={(next) => emitChange(next)}\n onBlur={(event: FocusEvent<HTMLInputElement>) => {\n textFieldOnBlur?.(event);\n const raw = event.currentTarget.value ?? \"\";\n const parsed = parseTypedDate(raw);\n if (!raw.trim()) {\n emitChange(null);\n onAccept?.(null);\n return;\n }\n if (parsed) {\n emitChange(parsed.format(\"YYYY-MM-DD\"));\n onAccept?.(parsed);\n return;\n }\n onAccept?.(toDateValue(latestDateRef.current));\n }}\n valueFormat=\"MM/DD/YYYY\"\n placeholder=\"MM/DD/YYYY\"\n description={textFieldError ? undefined : helperText}\n error={textFieldError ? helperText : undefined}\n required={required}\n size={mantineSize}\n clearable\n allowDeselect={false}\n defaultDate={dateValue || dayjs().format(\"YYYY-MM-DD\")}\n w={fullWidth || textFieldFullWidth ? \"100%\" : undefined}\n style={formControlStyle({\n fullWidth: fullWidth || textFieldFullWidth,\n style,\n sx: { ...sxToStyle(sx), ...sxToStyle(textFieldSx) },\n })}\n // Mantine's popover z-index (300) sits below MUI's Dialog z-index (1300),\n // so the dropdown renders behind any MUI Dialog this picker is used in\n // unless raised above it. Callers can still override via props.popoverProps.\n popoverProps={{ zIndex: 1400 }}\n {...textFieldProps}\n {...props}\n />\n );\n};\nexport function Autocomplete<T = any, _Multiple = any, _DisableClearable = any, _FreeSolo = any>(\n componentProps: any & { options?: T[] },\n) {\n const {\n disableClearable,\n disableCloseOnSelect: _disableCloseOnSelect,\n disabled,\n filterOptions,\n freeSolo,\n fullWidth,\n comboboxProps,\n getOptionLabel,\n defaultValue,\n inputValue,\n isOptionEqualToValue,\n ListboxProps: _ListboxProps,\n loading: _loading,\n label,\n multiple,\n noOptionsText: _noOptionsText,\n onBlur,\n onChange,\n onFocus,\n onInputChange,\n onKeyDown,\n onKeyPress,\n onKeyUp,\n options = [],\n placeholder,\n renderInput,\n renderOption: _renderOption,\n renderTags: _renderTags,\n required,\n size,\n style,\n sx,\n value,\n ...props\n } = componentProps;\n const optionLabel = (option: any) =>\n typeof option === \"string\"\n ? option\n : getOptionLabel?.(option) ||\n option?.label ||\n option?.name ||\n option?.value ||\n String(option);\n const optionValue = (option: any) =>\n typeof option === \"string\"\n ? option\n : String(option?.id ?? option?.value ?? optionLabel(option));\n const optionMatchesValue = (option: any, selected: any) => {\n if (selected == null) return false;\n if (typeof isOptionEqualToValue === \"function\" && typeof selected !== \"string\") {\n return isOptionEqualToValue(option, selected);\n }\n\n const nextValue = typeof selected === \"string\" ? selected : optionValue(selected);\n return optionValue(option) === nextValue || optionLabel(option) === nextValue;\n };\n const findKnownOption = (next: any) => {\n if (next == null) return null;\n return options.find((option: any) => optionMatchesValue(option, next)) || null;\n };\n const selectedValue = (selected: any) => {\n if (selected == null) return null;\n const knownOption = findKnownOption(selected);\n if (knownOption) return optionValue(knownOption);\n if (typeof selected === \"string\") return selected;\n return optionValue(selected);\n };\n const selectedValuesFrom = (values: any[]) =>\n values\n .map(selectedValue)\n .filter((selected): selected is string => typeof selected === \"string\" && selected !== \"\");\n const [uncontrolledSearchValue, setUncontrolledSearchValue] = useState(\"\");\n const [uncontrolledSingleValue, setUncontrolledSingleValue] = useState<string | null>(() =>\n selectedValue(defaultValue),\n );\n const [uncontrolledMultipleValues, setUncontrolledMultipleValues] = useState<string[]>(() =>\n Array.isArray(defaultValue) ? selectedValuesFrom(defaultValue) : [],\n );\n const [createdFreeSoloOptions, setCreatedFreeSoloOptions] = useState<string[]>([]);\n const resolvedSearchValue = inputValue ?? uncontrolledSearchValue;\n const filteredOptions =\n typeof filterOptions === \"function\"\n ? filterOptions(options, { getOptionLabel: optionLabel, inputValue: resolvedSearchValue })\n : options;\n const data: Array<{ label: string; value: string }> = [];\n const dataValues = new Set<string>();\n const addDataOption = (option: any) => {\n const nextValue = optionValue(option);\n if (dataValues.has(nextValue)) return;\n\n data.push({ label: optionLabel(option), value: nextValue });\n dataValues.add(nextValue);\n };\n filteredOptions.forEach(addDataOption);\n const addSelectedDataOption = (selected: unknown) => {\n const option = findKnownOption(selected);\n if (option) addDataOption(option);\n };\n if (!Array.isArray(value)) addSelectedDataOption(value);\n if (!Array.isArray(defaultValue)) addSelectedDataOption(defaultValue);\n if (Array.isArray(value)) value.forEach(addSelectedDataOption);\n if (Array.isArray(defaultValue)) defaultValue.forEach(addSelectedDataOption);\n uncontrolledMultipleValues.forEach(addSelectedDataOption);\n const addFreeSoloOption = (next: unknown) => {\n if (!freeSolo || multiple) return;\n const nextValue = selectedValue(next);\n if (!nextValue || dataValues.has(nextValue)) return;\n\n data.push({ label: typeof next === \"string\" ? next : nextValue, value: nextValue });\n dataValues.add(nextValue);\n };\n addFreeSoloOption(value);\n addFreeSoloOption(defaultValue);\n addFreeSoloOption(uncontrolledSingleValue);\n addFreeSoloOption(resolvedSearchValue);\n createdFreeSoloOptions.forEach(addFreeSoloOption);\n\n const findOption = (next: string | null) => findKnownOption(next) || (freeSolo ? next : null);\n const commitFreeSoloValue = (next: string, event?: any) => {\n if (!freeSolo || multiple) return false;\n const nextValue = next.trim();\n if (!nextValue) return false;\n\n const nextOption = findKnownOption(nextValue) || nextValue;\n const selectedNextValue = selectedValue(nextOption);\n if (!selectedNextValue) return false;\n\n setCreatedFreeSoloOptions((current) =>\n current.includes(selectedNextValue) ? current : [...current, selectedNextValue],\n );\n setUncontrolledSearchValue(nextValue);\n if (value === undefined) setUncontrolledSingleValue(selectedNextValue);\n\n onChange?.(\n event || createAutocompleteEvent(nextValue),\n nextOption,\n findKnownOption(nextValue) ? \"selectOption\" : \"createOption\",\n { option: nextOption },\n );\n return true;\n };\n const input = renderInput?.({\n inputProps: {\n value: inputValue ?? \"\",\n onChange: (event: any) => onInputChange?.(event, event.currentTarget.value, \"input\"),\n },\n InputProps: {},\n label,\n });\n const inputProps = isValidElement(input) ? (input.props as any) : {};\n const renderInputInputProps = isObjectRecord(inputProps.inputProps)\n ? inputProps.inputProps\n : undefined;\n const autocompleteInputProps = pickAutocompleteInputProps(inputProps, renderInputInputProps);\n const inputAdornment = inputProps.InputProps?.endAdornment || inputProps.endAdornment;\n const mantineSize = mapCompatSize(size);\n const controlStyle = formControlStyle({\n fullWidth,\n style: { ...style, ...inputProps.style },\n sx,\n });\n const commonSelectProps = {\n ...autocompleteInputProps,\n clearable: !disableClearable,\n comboboxProps: {\n zIndex: overlayZIndexAboveFairmintOverlays,\n ...comboboxProps,\n },\n disabled: disabled ?? autocompleteInputProps.disabled,\n label: inputProps.label || label,\n nothingFoundMessage: _noOptionsText,\n onBlur: composeOptionalEventHandlers(autocompleteInputProps.onBlur, onBlur),\n onFocus: composeOptionalEventHandlers(autocompleteInputProps.onFocus, onFocus),\n onKeyDown: (event: any) => {\n onKeyDown?.(event);\n autocompleteInputProps.onKeyDown?.(event);\n if (event.defaultPrevented || event.key !== \"Enter\") return;\n\n if (commitFreeSoloValue(String(event.currentTarget?.value ?? resolvedSearchValue), event)) {\n event.preventDefault?.();\n }\n },\n onKeyPress: composeOptionalEventHandlers(onKeyPress, autocompleteInputProps.onKeyPress),\n onKeyUp: composeOptionalEventHandlers(onKeyUp, autocompleteInputProps.onKeyUp),\n placeholder: autocompleteInputProps.placeholder || inputProps.placeholder || placeholder,\n readOnly: autocompleteInputProps.readOnly,\n required: autocompleteInputProps.required ?? inputProps.required ?? required,\n rightSection: inputAdornment,\n searchable: true,\n size: mantineSize,\n style: controlStyle,\n ...(inputProps.error ? { error: inputProps.helperText || true } : {}),\n ...(inputValue !== undefined || freeSolo ? { searchValue: resolvedSearchValue } : {}),\n ...(onInputChange || freeSolo\n ? {\n onSearchChange: (next: string) => {\n if (inputValue === undefined) setUncontrolledSearchValue(next);\n onInputChange?.(createAutocompleteEvent(next), next, \"input\");\n },\n }\n : {}),\n };\n\n if (multiple) {\n const selectedValues = Array.isArray(value)\n ? selectedValuesFrom(value)\n : uncontrolledMultipleValues;\n return (\n <MantineMultiSelect\n data={data}\n value={selectedValues}\n onChange={(nextValues) => {\n const nextOptions = nextValues.map((next) => findOption(next)).filter(Boolean);\n const removedValue = selectedValues.find((selected) => !nextValues.includes(selected));\n const addedValue = nextValues.find((next) => !selectedValues.includes(next));\n const detailValue = removedValue || addedValue;\n const detailOption = detailValue ? findOption(detailValue) : undefined;\n const reason =\n nextValues.length === 0 ? \"clear\" : removedValue ? \"removeOption\" : \"selectOption\";\n\n if (value === undefined) setUncontrolledMultipleValues(nextValues);\n\n onChange?.(\n createAutocompleteEvent(nextValues),\n nextOptions,\n reason,\n detailOption && reason !== \"clear\" ? { option: detailOption } : undefined,\n );\n }}\n {...commonSelectProps}\n {...props}\n />\n );\n }\n\n return (\n <MantineSelect\n data={data}\n value={value !== undefined ? selectedValue(value) : uncontrolledSingleValue}\n onChange={(next) => {\n const nextOption = findOption(next);\n const nextValue = selectedValue(nextOption);\n const isKnownOption = Boolean(findKnownOption(next));\n\n if (value === undefined) setUncontrolledSingleValue(nextValue);\n if (freeSolo && nextValue) {\n setCreatedFreeSoloOptions((current) =>\n current.includes(nextValue) ? current : [...current, nextValue],\n );\n }\n\n onChange?.(\n createAutocompleteEvent(next),\n nextOption,\n next == null ? \"clear\" : isKnownOption ? \"selectOption\" : \"createOption\",\n nextOption ? { option: nextOption } : undefined,\n );\n }}\n {...commonSelectProps}\n {...props}\n />\n );\n}\n\nexport const Container = MantineContainer;\nexport const Grid = MantineGrid;\nexport const List = MantineList;\nexport const ListItem = MantineList.Item;\nexport const Modal = MantineModal;\nexport const Select = MantineSelect;\nexport const Stack = MantineStack;\nexport const Table = MantineTable;\nconst pieFallbackColors = [\n brandColors.indigo,\n brandColors.blue,\n brandColors.purple,\n semanticColors.info,\n semanticColors.success,\n semanticColors.warning,\n semanticColors.error,\n];\n\nexport const PieChart = ({ height = 200, series = [], width = 200 }: any) => {\n const config = series[0] || {};\n const data = config.data || [];\n const total = data.reduce(\n (sum: number, item: any) => sum + Math.max(Number(item.value) || 0, 0),\n 0,\n );\n const cx = config.cx ?? width / 2;\n const cy = config.cy ?? height / 2;\n const outerRadius = config.outerRadius ?? Math.min(width, height) / 2;\n const innerRadius = config.innerRadius ?? 0;\n const seenSliceKeys = new Map<string, number>();\n let angle = -90;\n\n const point = (radius: number, degrees: number) => {\n const radians = (degrees * Math.PI) / 180;\n return [cx + radius * Math.cos(radians), cy + radius * Math.sin(radians)];\n };\n\n return (\n <svg\n aria-hidden=\"true\"\n height={height}\n role=\"img\"\n viewBox={`0 0 ${width} ${height}`}\n width={width}\n >\n {data.map((item: any, index: number) => {\n const value = Math.max(Number(item.value) || 0, 0);\n const sweep = total > 0 ? (value / total) * 360 : 0;\n const start = angle;\n const end = angle + sweep;\n angle = end;\n const largeArc = sweep > 180 ? 1 : 0;\n const [outerStartX, outerStartY] = point(outerRadius, start);\n const [outerEndX, outerEndY] = point(outerRadius, end);\n const [innerEndX, innerEndY] = point(innerRadius, end);\n const [innerStartX, innerStartY] = point(innerRadius, start);\n const path =\n innerRadius > 0\n ? `M ${outerStartX} ${outerStartY} A ${outerRadius} ${outerRadius} 0 ${largeArc} 1 ${outerEndX} ${outerEndY} L ${innerEndX} ${innerEndY} A ${innerRadius} ${innerRadius} 0 ${largeArc} 0 ${innerStartX} ${innerStartY} Z`\n : `M ${cx} ${cy} L ${outerStartX} ${outerStartY} A ${outerRadius} ${outerRadius} 0 ${largeArc} 1 ${outerEndX} ${outerEndY} Z`;\n const rawKey = `${String(item.id ?? item.label ?? item.name ?? item.color ?? item.value ?? \"slice\")}-${start}-${end}`;\n const duplicateCount = seenSliceKeys.get(rawKey) ?? 0;\n seenSliceKeys.set(rawKey, duplicateCount + 1);\n const sliceKey = duplicateCount === 0 ? rawKey : `${rawKey}-${duplicateCount}`;\n return (\n <path\n key={sliceKey}\n d={path}\n fill={item.color || pieFallbackColors[index % pieFallbackColors.length]}\n />\n );\n })}\n </svg>\n );\n};\nexport {\n ActionIcon,\n Alert,\n Avatar,\n Badge,\n Button,\n Card,\n Center,\n Checkbox,\n Flex,\n Group,\n Loader,\n Paper,\n Skeleton,\n Switch,\n Tooltip,\n useMantineMediaQuery as useMediaQuery,\n};\n"],"names":["primitiveSxToStyle","theme","MantineBox","MantineModal","MantineTable","MantineMenu","MantineSelect","label","value","MantineAccordion","MantineMultiSelect","MantineList","MantineStack"],"mappings":"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"}
1
+ {"version":3,"file":"muiCompat.js","sources":["../../../src/components/primitives/muiCompat.tsx"],"sourcesContent":["// biome-ignore-all lint/suspicious/noExplicitAny: Compatibility adapters mirror external prop shapes.\nimport {\n Center,\n Flex,\n Group,\n Accordion as MantineAccordion,\n Box as MantineBox,\n Container as MantineContainer,\n Grid as MantineGrid,\n List as MantineList,\n Menu as MantineMenu,\n Modal as MantineModal,\n MultiSelect as MantineMultiSelect,\n Select as MantineSelect,\n Stack as MantineStack,\n Table as MantineTable,\n Tabs as MantineTabs,\n Paper,\n TextInput,\n Title,\n} from \"@mantine/core\";\nimport { DateInput } from \"@mantine/dates\";\nimport { useMediaQuery as useMantineMediaQuery } from \"@mantine/hooks\";\nimport dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport type {\n ComponentProps,\n CSSProperties,\n ElementType,\n FocusEvent,\n ReactElement,\n ReactNode,\n Ref,\n} from \"react\";\nimport {\n Children,\n cloneElement,\n createContext,\n createElement,\n isValidElement,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n brandColors,\n colors,\n commonColors,\n fairmintVars,\n overlayZIndexAboveFairmintOverlays,\n semanticColors,\n theme,\n} from \"../../theme\";\nimport { ActionIcon } from \"./ActionIcon/ActionIcon\";\nimport { Alert } from \"./Alert/Alert\";\nimport { Avatar } from \"./Avatar/Avatar\";\nimport { Badge } from \"./Badge/Badge\";\nimport { Button } from \"./Button/Button\";\nimport { Card } from \"./Card/Card\";\nimport { Checkbox } from \"./Checkbox/Checkbox\";\nimport { Loader } from \"./Loader/Loader\";\nimport { Skeleton } from \"./Skeleton/Skeleton\";\nimport { Switch } from \"./Switch/Switch\";\nimport { type Sx as PrimitiveSx, sxToStyle as primitiveSxToStyle } from \"./sx\";\nimport { Text } from \"./Text/Text\";\nimport { Textarea } from \"./Textarea/Textarea\";\nimport { Tooltip } from \"./Tooltip/Tooltip\";\n\ndayjs.extend(customParseFormat);\n\ntype SxEntry = CSSProperties | false | null | undefined;\ntype Sx = CSSProperties | SxEntry[] | ((theme: unknown) => CSSProperties | SxEntry[]);\n\nconst compatBreakpointKeys = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\"] as const;\ntype CompatBreakpointKey = (typeof compatBreakpointKeys)[number];\nconst compatFallbackBreakpoints: Record<CompatBreakpointKey, string> = {\n xs: \"30em\",\n sm: \"48em\",\n md: \"64em\",\n lg: \"74em\",\n xl: \"90em\",\n};\nconst compatBreakpointWidth = (key: CompatBreakpointKey | string) =>\n compatBreakpointKeys.includes(key as CompatBreakpointKey)\n ? theme.breakpoints?.[key as CompatBreakpointKey] ||\n compatFallbackBreakpoints[key as CompatBreakpointKey]\n : key;\nconst compatBreakpoints = {\n down: (key: CompatBreakpointKey | string) => `@media (max-width: ${compatBreakpointWidth(key)})`,\n up: (key: CompatBreakpointKey | string) => `@media (min-width: ${compatBreakpointWidth(key)})`,\n};\n\nconst compatColorMap: Record<string, string> = {\n action: fairmintVars.colorIconSecondary,\n \"action.active\": fairmintVars.colorIconPrimary,\n \"action.selected\": fairmintVars.colorBgSelected,\n brand: fairmintVars.colorBrandPrimary,\n default: fairmintVars.colorTextSecondary,\n disabled: fairmintVars.colorTextDisabled,\n error: fairmintVars.colorErrorText,\n \"error.main\": fairmintVars.colorErrorText,\n info: fairmintVars.colorInfoText,\n \"info.darkest\": fairmintVars.colorInfoSolid,\n inherit: \"inherit\",\n primary: fairmintVars.colorBrandPrimary,\n secondary: fairmintVars.colorTextSecondary,\n success: fairmintVars.colorSuccessText,\n \"success.dark\": fairmintVars.colorSuccessSolid,\n \"text.disabled\": fairmintVars.colorTextDisabled,\n \"text.primary\": fairmintVars.colorTextPrimary,\n \"text.secondary\": fairmintVars.colorTextSecondary,\n warning: fairmintVars.colorWarningText,\n \"warning.darkest\": fairmintVars.colorWarningSolid,\n};\n\nconst resolveCompatColor = (color: unknown): string | undefined => {\n if (typeof color !== \"string\" || !color) return undefined;\n return compatColorMap[color] || color;\n};\n\nconst isStyleRecord = (value: unknown): value is CSSProperties =>\n Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n\nconst normalizeSxEntries = (sx: CSSProperties | SxEntry[]): CSSProperties[] =>\n Array.isArray(sx) ? sx.filter(isStyleRecord) : [sx];\n\nconst nodeToText = (node: ReactNode): string => {\n if (typeof node === \"string\" || typeof node === \"number\") return String(node);\n if (Array.isArray(node)) return node.map(nodeToText).join(\"\");\n if (isValidElement(node)) return nodeToText((node as any).props.children);\n return \"\";\n};\n\nconst cssStyleObjectToInlineStyle = (sx?: CSSProperties | SxEntry[]): CSSProperties | undefined => {\n if (!sx) return undefined;\n const styleEntries = normalizeSxEntries(sx).flatMap((entry) =>\n Object.entries(entry).filter(\n ([key, value]) => !key.startsWith(\"&\") && !key.startsWith(\"@\") && typeof value !== \"object\",\n ),\n );\n\n return Object.fromEntries(styleEntries);\n};\n\nconst sxToStyle = (sx?: PrimitiveSx | Sx): CSSProperties | undefined =>\n primitiveSxToStyle(sx as PrimitiveSx | undefined);\n\nconst hasNestedStyle = (sx: CSSProperties | SxEntry[]) =>\n normalizeSxEntries(sx).some((entry) =>\n Object.entries(entry).some(\n ([key, value]) => (key.startsWith(\"&\") || key.startsWith(\"@\")) && isObjectRecord(value),\n ),\n );\n\nconst mapCompatSize = (size: unknown) => {\n if (size === \"small\") return \"sm\";\n if (size === \"medium\") return \"md\";\n if (size === \"large\") return \"lg\";\n if (size === \"xs\" || size === \"sm\" || size === \"md\" || size === \"lg\" || size === \"xl\") {\n return size;\n }\n\n return undefined;\n};\n\nconst mantineChipVariants = new Set([\n \"default\",\n \"dot\",\n \"filled\",\n \"gradient\",\n \"light\",\n \"outline\",\n \"transparent\",\n \"white\",\n]);\n\nconst mapChipVariant = (variant: unknown) => {\n if (variant === \"outlined\") return \"outline\";\n if (typeof variant === \"string\" && mantineChipVariants.has(variant)) return variant;\n return undefined;\n};\n\nconst chipBadgeColorMap: Record<string, string> = {\n default: colors.neutral,\n error: colors.error,\n info: colors.info,\n primary: colors.primary,\n secondary: colors.neutral,\n success: colors.success,\n warning: colors.warning,\n};\n\nconst mapChipBadgeColor = (color: unknown) => {\n if (typeof color !== \"string\" || !color) return colors.neutral;\n return chipBadgeColorMap[color] || color;\n};\nconst mapCompatIconButtonSize = (size: unknown) =>\n size === \"small\" ? \"sm\" : size === \"medium\" ? \"md\" : size === \"large\" ? \"lg\" : size;\nconst optionalBoolean = (value: unknown) => (typeof value === \"boolean\" ? value : undefined);\nconst optionalString = (value: unknown) => (typeof value === \"string\" ? value : undefined);\nconst inputControlValue = (value: unknown) =>\n typeof value === \"string\" || typeof value === \"number\" || Array.isArray(value)\n ? value\n : undefined;\nconst assignCompatRef = <T,>(ref: Ref<T> | undefined, value: T | null) => {\n if (typeof ref === \"function\") {\n ref(value);\n return;\n }\n if (ref && \"current\" in ref) {\n ref.current = value;\n }\n};\n\nconst formControlStyle = ({\n fullWidth,\n style,\n sx,\n}: {\n fullWidth?: boolean;\n style?: CSSProperties;\n sx?: PrimitiveSx | Sx;\n}) => ({\n ...(fullWidth ? { width: \"100%\" } : {}),\n ...sxToStyle(sx),\n ...style,\n});\n\nconst composeEventHandlers =\n (...handlers: Array<((event: any) => void) | undefined>) =>\n (event: any) => {\n for (const handler of handlers) {\n handler?.(event);\n }\n };\n\nconst composeOptionalEventHandlers = (...handlers: Array<((event: any) => void) | undefined>) =>\n handlers.some(Boolean) ? composeEventHandlers(...handlers) : undefined;\n\nconst forwardedAutocompleteInputProps = new Set([\n \"autoComplete\",\n \"autoFocus\",\n \"disabled\",\n \"id\",\n \"name\",\n \"onBlur\",\n \"onFocus\",\n \"onKeyDown\",\n \"onKeyPress\",\n \"onKeyUp\",\n \"placeholder\",\n \"readOnly\",\n \"required\",\n \"title\",\n]);\n\nconst pickAutocompleteInputProps = (...sources: Array<Record<string, any> | undefined>) => {\n const result: Record<string, any> = {};\n\n sources.forEach((source) => {\n if (!source) return;\n\n Object.entries(source).forEach(([key, value]) => {\n if (\n key.startsWith(\"aria-\") ||\n key.startsWith(\"data-\") ||\n forwardedAutocompleteInputProps.has(key)\n ) {\n result[key] = value;\n }\n });\n });\n\n return result;\n};\n\nconst sizeValue = (value: unknown) => (typeof value === \"number\" ? value : undefined);\n\nexport type SxProps<T = unknown> = any & T;\nexport type Theme = any;\n\ntype CompatClassNames = Record<string, string | undefined> | ((...args: unknown[]) => unknown);\ntype CompatStyles = Record<string, CSSProperties | undefined>;\ntype CompatInputProps = object & {\n disabled?: boolean;\n endAdornment?: ReactNode;\n inputProps?: object;\n notched?: boolean;\n readOnly?: boolean;\n startAdornment?: ReactNode;\n};\ntype SelectChangeEvent = {\n currentTarget: { name?: unknown; value: string };\n target: { name?: unknown; value: string };\n};\ntype TextFieldValue = unknown;\ntype TextFieldInputRef = Ref<HTMLInputElement | HTMLTextAreaElement>;\n\ninterface DialogPaperProps extends Record<string, unknown> {\n className?: string;\n component?: ElementType;\n elevation?: unknown;\n style?: CSSProperties;\n sx?: Sx;\n}\n\ninterface DialogProps\n extends Omit<\n ComponentProps<typeof MantineModal.Root>,\n \"children\" | \"classNames\" | \"onClose\" | \"opened\" | \"size\" | \"style\" | \"styles\"\n > {\n centered?: boolean;\n children?: ReactNode;\n classNames?: CompatClassNames;\n closeButtonProps?: ComponentProps<typeof MantineModal.CloseButton>;\n closeOnEscape?: boolean;\n disableEscapeKeyDown?: boolean;\n fullWidth?: boolean;\n maxWidth?: boolean | number | string;\n onClose?: (event: typeof dialogCloseEvent, reason: DialogCloseReason) => void;\n open?: boolean;\n overlayProps?: ComponentProps<typeof MantineModal.Overlay>;\n PaperProps?: DialogPaperProps;\n shadow?: ComponentProps<typeof MantineModal.Content>[\"shadow\"];\n style?: CSSProperties;\n styles?: CompatStyles;\n sx?: Sx;\n title?: ReactNode;\n withCloseButton?: boolean;\n withOverlay?: boolean;\n}\n\nexport interface TextFieldProps extends Record<string, unknown> {\n children?: ReactNode;\n defaultValue?: TextFieldValue;\n endAdornment?: ReactNode;\n error?: boolean;\n fullWidth?: boolean;\n helperText?: ReactNode;\n inputProps?: object;\n InputLabelProps?: object;\n inputRef?: TextFieldInputRef;\n InputProps?: CompatInputProps;\n label?: ReactNode;\n multiline?: boolean;\n onChange?: (event: SelectChangeEvent) => void;\n placeholder?: string;\n select?: boolean;\n size?: unknown;\n startAdornment?: ReactNode;\n style?: CSSProperties;\n styles?: CompatStyles;\n sx?: PrimitiveSx;\n value?: TextFieldValue;\n variant?: unknown;\n}\n\ntype ParsedColor = {\n r: number;\n g: number;\n b: number;\n a?: number;\n};\n\nconst clamp = (value: number, min: number, max: number) => Math.min(max, Math.max(min, value));\n\nconst clampRatio = (value = 0) => clamp(value, 0, 1);\n\nconst formatRatio = (value: number) => Number(clampRatio(value).toFixed(3)).toString();\n\nconst formatPercent = (value: number) => Number(clamp(value, 0, 100).toFixed(3)).toString();\n\nconst formatRgba = ({ r, g, b }: ParsedColor, value: number) =>\n `rgba(${r}, ${g}, ${b}, ${formatRatio(value)})`;\n\nconst formatColor = ({ r, g, b, a }: ParsedColor) =>\n a === undefined || a >= 1 ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${formatRatio(a)})`;\n\nconst normalizeChannel = (value: string) => {\n if (value.endsWith(\"%\")) return Math.round((clamp(Number.parseFloat(value), 0, 100) / 100) * 255);\n return Math.round(clamp(Number.parseFloat(value), 0, 255));\n};\n\nconst normalizeAlpha = (value: string | undefined) => {\n if (value === undefined) return undefined;\n if (value.endsWith(\"%\")) return clampRatio(Number.parseFloat(value) / 100);\n return clampRatio(Number.parseFloat(value));\n};\n\nconst splitWhitespace = (value: string) => {\n const tokens: string[] = [];\n let current = \"\";\n\n for (const char of value) {\n if (char === \" \" || char === \"\\n\" || char === \"\\r\" || char === \"\\t\") {\n if (current) tokens.push(current);\n current = \"\";\n } else {\n current += char;\n }\n }\n\n if (current) tokens.push(current);\n return tokens;\n};\n\nconst parseHexColor = (color: string): ParsedColor | undefined => {\n const hex = color.trim().replace(/^#/, \"\");\n if (![3, 4, 6, 8].includes(hex.length) || !/^[\\da-f]+$/i.test(hex)) return undefined;\n\n const normalized =\n hex.length === 3 || hex.length === 4\n ? Array.from(hex)\n .map((char) => `${char}${char}`)\n .join(\"\")\n : hex;\n\n return {\n r: Number.parseInt(normalized.slice(0, 2), 16),\n g: Number.parseInt(normalized.slice(2, 4), 16),\n b: Number.parseInt(normalized.slice(4, 6), 16),\n a:\n normalized.length === 8\n ? clampRatio(Number.parseInt(normalized.slice(6, 8), 16) / 255)\n : undefined,\n };\n};\n\nconst parseRgbColor = (color: string): ParsedColor | undefined => {\n const trimmed = color.trim();\n const lower = trimmed.toLowerCase();\n const openParenIndex = trimmed.indexOf(\"(\");\n\n if (\n openParenIndex === -1 ||\n !trimmed.endsWith(\")\") ||\n (!lower.startsWith(\"rgb(\") && !lower.startsWith(\"rgba(\"))\n ) {\n return undefined;\n }\n\n const body = trimmed.slice(openParenIndex + 1, -1).trim();\n const slashIndex = body.indexOf(\"/\");\n const channelBody = slashIndex === -1 ? body : body.slice(0, slashIndex).trim();\n const slashAlpha = slashIndex === -1 ? undefined : body.slice(slashIndex + 1).trim();\n const parts = channelBody.includes(\",\")\n ? channelBody\n .split(\",\")\n .map((part) => part.trim())\n .filter(Boolean)\n : splitWhitespace(channelBody);\n const alphaValue = slashAlpha ?? (parts.length > 3 ? parts[3] : undefined);\n\n if (parts.length < 3) return undefined;\n\n return {\n r: normalizeChannel(parts[0] ?? \"0\"),\n g: normalizeChannel(parts[1] ?? \"0\"),\n b: normalizeChannel(parts[2] ?? \"0\"),\n a: normalizeAlpha(alphaValue),\n };\n};\n\nconst parseColor = (color: string) => parseHexColor(color) ?? parseRgbColor(color);\n\nconst mixChannel = (channel: number, target: number, coefficient: number) =>\n Math.round(channel + (target - channel) * clampRatio(coefficient));\n\nconst mixColor = (color: ParsedColor, target: 0 | 255, coefficient = 0.2) =>\n formatColor({\n r: mixChannel(color.r, target, coefficient),\n g: mixChannel(color.g, target, coefficient),\n b: mixChannel(color.b, target, coefficient),\n a: color.a,\n });\n\nconst hashString = (value: string) =>\n Array.from(value)\n .reduce((result, char) => (result * 31 + char.charCodeAt(0)) >>> 0, 0)\n .toString(36);\n\nconst cssPropertyName = (property: string) =>\n property.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`);\n\nconst cssPropertyValue = (value: string | number) =>\n typeof value === \"number\" ? `${value}px` : value;\n\nconst styleObjectToCss = (selector: string, sx: CSSProperties | SxEntry[]): string => {\n const declarations: string[] = [];\n const nestedRules: string[] = [];\n\n normalizeSxEntries(sx).forEach((entry) => {\n Object.entries(entry).forEach(([key, value]) => {\n if (key.startsWith(\"&\") && isObjectRecord(value)) {\n nestedRules.push(styleObjectToCss(key.replace(/&/g, selector), value));\n return;\n }\n\n if (key.startsWith(\"@\") && isObjectRecord(value)) {\n nestedRules.push(`${key}{${styleObjectToCss(selector, value)}}`);\n return;\n }\n\n if (typeof value === \"string\" || typeof value === \"number\") {\n declarations.push(`${cssPropertyName(key)}:${cssPropertyValue(value)};`);\n }\n });\n });\n\n return `${selector}{${declarations.join(\"\")}}${nestedRules.join(\"\")}`;\n};\n\nconst ensureCompatStyleClass = (sx: CSSProperties | SxEntry[]) => {\n if (!hasNestedStyle(sx)) return undefined;\n\n const className = `fm-styled-${hashString(JSON.stringify(sx))}`;\n const styleId = `${className}-style`;\n\n if (typeof document !== \"undefined\" && !document.getElementById(styleId)) {\n const style = document.createElement(\"style\");\n style.id = styleId;\n style.textContent = styleObjectToCss(`.${className}`, sx);\n document.head.appendChild(style);\n }\n\n return className;\n};\n\nexport const alpha = (color: string, value = 1) => {\n const parsedColor = parseColor(color);\n if (parsedColor) return formatRgba(parsedColor, value);\n return `color-mix(in srgb, ${color} ${formatPercent(clampRatio(value) * 100)}%, transparent)`;\n};\n\nexport const darken = (color: string, coefficient = 0.2) => {\n const parsedColor = parseColor(color);\n if (parsedColor) return mixColor(parsedColor, 0, coefficient);\n return `color-mix(in srgb, ${color} ${formatPercent((1 - clampRatio(coefficient)) * 100)}%, black)`;\n};\n\nexport const lighten = (color: string, coefficient = 0.2) => {\n const parsedColor = parseColor(color);\n if (parsedColor) return mixColor(parsedColor, 255, coefficient);\n return `color-mix(in srgb, ${color} ${formatPercent((1 - clampRatio(coefficient)) * 100)}%, white)`;\n};\n\n/**\n * Injects keyframes into document.head at runtime for styled-component compatibility.\n * On the server it only returns the generated animation name; strict CSP consumers\n * should prefer static CSS classes.\n */\nexport const keyframes = (strings: TemplateStringsArray | string[], ...values: unknown[]) => {\n const body = strings.reduce(\n (result, part, index) => `${result}${part}${values[index] ?? \"\"}`,\n \"\",\n );\n const hash = hashString(body);\n const name = `fm-keyframes-${hash}`;\n\n if (typeof document !== \"undefined\" && !document.getElementById(name)) {\n const style = document.createElement(\"style\");\n style.id = name;\n style.textContent = `@keyframes ${name} { ${body} }`;\n document.head.appendChild(style);\n }\n\n return name;\n};\nconst compatTheme = {\n breakpoints: compatBreakpoints,\n palette: {\n action: {\n active: fairmintVars.colorIconPrimary,\n hover: fairmintVars.colorBgHover,\n selected: fairmintVars.colorBgSelected,\n },\n background: { default: fairmintVars.colorBgCanvas, paper: fairmintVars.colorBgSurface },\n common: { black: commonColors.black, white: commonColors.white },\n divider: fairmintVars.colorBorderDefault,\n error: { main: fairmintVars.colorErrorText },\n grey: {\n 50: fairmintVars.colorBgSurfaceSecondary,\n 100: fairmintVars.colorBgHover,\n 500: fairmintVars.colorTextSecondary,\n 900: fairmintVars.colorTextPrimary,\n },\n info: { main: fairmintVars.colorInfoText },\n mode: \"light\",\n primary: {\n contrastText: commonColors.white,\n dark: fairmintVars.colorBrandPrimaryHover,\n light: fairmintVars.colorBrandPrimaryActive,\n main: fairmintVars.colorBrandPrimary,\n },\n secondary: { main: fairmintVars.colorTextSecondary },\n success: { main: fairmintVars.colorSuccessText },\n text: {\n disabled: fairmintVars.colorTextDisabled,\n primary: fairmintVars.colorTextPrimary,\n secondary: fairmintVars.colorTextSecondary,\n },\n warning: { main: fairmintVars.colorWarningText },\n },\n shape: { borderRadius: 4 },\n spacing: (...values: Array<number | string>) =>\n values.map((value) => (typeof value === \"number\" ? `${value * 8}px` : value)).join(\" \"),\n transitions: {\n create: (\n props: string | string[],\n options?: { duration?: number | string; easing?: string },\n ) => {\n const properties = Array.isArray(props) ? props : [props];\n const duration = options?.duration ?? \"150ms\";\n const easing = options?.easing ?? \"ease\";\n\n return properties.map((property) => `${property} ${duration} ${easing}`).join(\",\");\n },\n },\n};\n\nconst isObjectRecord = (value: unknown): value is Record<string, any> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst mergeCompatTheme = (base: any, ...overrides: unknown[]): any => {\n const merged = { ...base };\n\n for (const override of overrides) {\n if (!isObjectRecord(override)) continue;\n\n for (const [key, value] of Object.entries(override)) {\n const baseValue = merged[key];\n merged[key] =\n isObjectRecord(baseValue) && isObjectRecord(value)\n ? mergeCompatTheme(baseValue, value)\n : value;\n }\n }\n\n return merged;\n};\n\nconst CompatThemeContext = createContext(compatTheme);\n\nexport const createTheme = (...overrides: unknown[]) => mergeCompatTheme(compatTheme, ...overrides);\nexport const responsiveFontSizes = (theme: unknown) => theme;\nexport const CssBaseline = () => null;\nexport const common = commonColors;\nexport const inputLabelClasses = { root: \"fm-input-label-root\" };\nexport const tableCellClasses = { root: \"fm-table-cell-root\" };\nexport const backdropClasses = { root: \"fm-backdrop-root\" };\nexport const filledInputClasses = { root: \"fm-filled-input-root\" };\nexport const outlinedInputClasses = { root: \"fm-outlined-input-root\" };\nexport const paperClasses = { root: \"fm-paper-root\" };\nexport const styled =\n (Component: any) =>\n (styles: any) =>\n ({ sx, style, ...props }: any) => {\n const currentTheme = useTheme();\n const computedStyles =\n typeof styles === \"function\"\n ? styles({ ...currentTheme, theme: currentTheme, ...props })\n : styles;\n const resolvedStyle = {\n ...cssStyleObjectToInlineStyle(computedStyles),\n ...sxToStyle(sx),\n ...style,\n };\n const nestedClassName = ensureCompatStyleClass(computedStyles);\n const className = [props.className, nestedClassName].filter(Boolean).join(\" \");\n\n if (typeof Component === \"string\") {\n return <Component {...props} className={className || undefined} style={resolvedStyle} />;\n }\n\n return (\n <Component\n {...props}\n className={className || undefined}\n sx={{ ...computedStyles, ...sx }}\n style={resolvedStyle}\n />\n );\n };\nexport const ThemeProvider = ({\n children,\n theme: providedTheme,\n}: {\n children: ReactNode;\n theme?: unknown;\n}) => {\n const parentTheme = useTheme();\n const resolvedTheme = useMemo(\n () => mergeCompatTheme(parentTheme, providedTheme),\n [parentTheme, providedTheme],\n );\n\n return (\n <CompatThemeContext.Provider value={resolvedTheme}>{children}</CompatThemeContext.Provider>\n );\n};\nexport const useTheme = () => useContext(CompatThemeContext);\n\nexport const Typography = ({\n align,\n children,\n className,\n color,\n component,\n noWrap,\n sx,\n variant,\n ...props\n}: any) => {\n const Component = variant?.startsWith?.(\"h\") ? Title : Text;\n const order = variant?.startsWith?.(\"h\") ? Number(variant.slice(1)) : undefined;\n const resolvedColor = resolveCompatColor(color);\n return (\n <Component\n {...(resolvedColor ? { c: resolvedColor } : {})}\n className={[\n \"fairmint-typography-root\",\n typeof variant === \"string\" ? `fairmint-typography-${variant}` : undefined,\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n component={component}\n order={order}\n style={{\n ...sxToStyle(sx),\n ...(noWrap ? { overflow: \"hidden\", textOverflow: \"ellipsis\", whiteSpace: \"nowrap\" } : {}),\n }}\n ta={align}\n {...props}\n >\n {children}\n </Component>\n );\n};\n\nexport const IconButton = ({\n children,\n className,\n color = \"default\",\n edge,\n size,\n sx,\n ...props\n}: any) => (\n <ActionIcon\n className={[\n \"MuiIconButton-root\",\n \"fairmint-icon-button-root\",\n `MuiIconButton-color${String(color).charAt(0).toUpperCase()}${String(color).slice(1)}`,\n `fairmint-icon-button-color${String(color).charAt(0).toUpperCase()}${String(color).slice(1)}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n color={resolveCompatColor(color)}\n size={mapCompatIconButtonSize(size)}\n style={sxToStyle(sx)}\n {...props}\n >\n {children}\n </ActionIcon>\n);\n\nexport const CircularProgress = ({ size, sx, ...props }: any) => (\n <Loader size={sizeValue(size) || \"sm\"} style={sxToStyle(sx)} {...props} />\n);\n\nexport const CardHeader = ({ action, subheader, title, titleTypographyProps }: any) => (\n <Group justify=\"space-between\" align=\"flex-start\" mb=\"md\">\n <div>\n <Title order={3} size=\"h5\" {...titleTypographyProps}>\n {title}\n </Title>\n {subheader && (\n <Text c={resolveCompatColor(\"text.secondary\")} glossary={false} size=\"sm\">\n {subheader}\n </Text>\n )}\n </div>\n {action}\n </Group>\n);\n\nexport const CardContent = ({ children, sx, ...props }: any) => (\n <MantineBox style={sxToStyle(sx)} {...props}>\n {children}\n </MantineBox>\n);\n\nexport const CardActions = ({ children, sx, ...props }: any) => (\n <Group style={sxToStyle(sx)} {...props}>\n {children}\n </Group>\n);\n\nconst dialogMaxWidthBySize: Record<string, number> = {\n lg: 1200,\n md: 900,\n sm: 600,\n xl: 1536,\n xs: 444,\n};\n\nconst dialogPaperStyleFromSx = (sx?: Sx) => {\n if (!sx) return undefined;\n const resolved = typeof sx === \"function\" ? sx(compatTheme) : sx;\n const paperSx =\n (resolved as Record<string, unknown>)[\"& .fairmint-dialog-content\"] ||\n (resolved as Record<string, unknown>)[\"& .MuiDialog-paper\"];\n\n return paperSx && typeof paperSx === \"object\" ? sxToStyle(paperSx as Sx) : undefined;\n};\n\nconst resolveDialogSize = (maxWidth: unknown, paperStyle?: CSSProperties) => {\n if (paperStyle?.maxWidth) return paperStyle.maxWidth;\n if (maxWidth === false) return \"100%\";\n if (typeof maxWidth === \"number\") return maxWidth;\n if (typeof maxWidth === \"string\") return dialogMaxWidthBySize[maxWidth] || maxWidth;\n\n return dialogMaxWidthBySize.sm;\n};\n\nconst dialogCloseEvent = { currentTarget: null, target: null };\ntype DialogCloseReason = \"backdropClick\" | \"escapeKeyDown\";\n\nexport const Dialog = ({\n centered,\n children,\n closeButtonProps,\n closeOnEscape,\n disableEscapeKeyDown,\n fullWidth,\n maxWidth,\n onClose,\n open,\n overlayProps,\n PaperProps,\n classNames,\n shadow,\n styles,\n sx,\n title,\n withCloseButton = true,\n withOverlay = true,\n ...props\n}: DialogProps) => {\n const {\n className: paperClassName,\n component: PaperComponent,\n elevation,\n style: paperInlineStyle,\n sx: paperSx,\n ...paperElementProps\n } = PaperProps || {};\n const paperStyle = {\n ...sxToStyle(paperSx),\n ...paperInlineStyle,\n ...dialogPaperStyleFromSx(sx),\n };\n const contentStyle = {\n ...(fullWidth ? { width: \"100%\" } : {}),\n ...paperStyle,\n ...styles?.content,\n };\n const classNameMap = typeof classNames === \"function\" ? undefined : classNames;\n const contentClassName = [\"fairmint-dialog-content\", classNameMap?.content, paperClassName]\n .filter(Boolean)\n .join(\" \");\n const bodyContent = PaperComponent\n ? createElement(PaperComponent, paperElementProps, children)\n : children;\n const contentProps = PaperComponent ? {} : paperElementProps;\n const hasHeader = Boolean(title) || withCloseButton;\n const closeReasonRef = useRef<DialogCloseReason>(\"escapeKeyDown\");\n const handleClose = () => {\n onClose?.(dialogCloseEvent, closeReasonRef.current);\n closeReasonRef.current = \"escapeKeyDown\";\n };\n\n return (\n <MantineModal.Root\n centered={centered ?? true}\n closeOnEscape={disableEscapeKeyDown ? false : closeOnEscape}\n opened={!!open}\n onClose={handleClose}\n size={resolveDialogSize(maxWidth, paperStyle)}\n style={sxToStyle(sx)}\n classNames={{\n ...classNameMap,\n body: [\"fairmint-dialog-body\", classNameMap?.body].filter(Boolean).join(\" \"),\n content: contentClassName,\n inner: [\"fairmint-dialog-container\", classNameMap?.inner].filter(Boolean).join(\" \"),\n root: [\"fairmint-dialog-root\", classNameMap?.root].filter(Boolean).join(\" \"),\n }}\n styles={{ ...styles, content: contentStyle }}\n {...props}\n >\n {withOverlay && (\n <MantineModal.Overlay\n {...overlayProps}\n onClick={(event) => {\n closeReasonRef.current = \"backdropClick\";\n overlayProps?.onClick?.(event);\n }}\n onMouseDown={(event) => {\n closeReasonRef.current = \"backdropClick\";\n overlayProps?.onMouseDown?.(event);\n }}\n />\n )}\n <MantineModal.Content\n {...contentProps}\n className={contentClassName}\n shadow={shadow ?? (elevation ? \"xl\" : undefined)}\n style={contentStyle}\n >\n {hasHeader && (\n <MantineModal.Header className={classNameMap?.header}>\n {title && (\n <MantineModal.Title className={classNameMap?.title}>{title}</MantineModal.Title>\n )}\n {withCloseButton && (\n <MantineModal.CloseButton\n aria-label=\"Close\"\n {...closeButtonProps}\n onClick={(event) => {\n closeReasonRef.current = \"escapeKeyDown\";\n closeButtonProps?.onClick?.(event);\n }}\n className={[classNameMap?.close, closeButtonProps?.className]\n .filter(Boolean)\n .join(\" \")}\n />\n )}\n </MantineModal.Header>\n )}\n <MantineModal.Body\n className={[\"fairmint-dialog-body\", classNameMap?.body].filter(Boolean).join(\" \")}\n >\n {bodyContent}\n </MantineModal.Body>\n </MantineModal.Content>\n </MantineModal.Root>\n );\n};\n\nexport const DialogTitle = ({ children, sx, ...props }: any) => (\n <Title order={3} style={sxToStyle(sx)} {...props}>\n {children}\n </Title>\n);\n\nexport const DialogContent = ({ children, sx, ...props }: any) => (\n <MantineBox style={sxToStyle(sx)} {...props}>\n {children}\n </MantineBox>\n);\n\nexport const DialogActions = ({ children, sx, ...props }: any) => (\n <Group justify=\"flex-end\" style={sxToStyle(sx)} {...props}>\n {children}\n </Group>\n);\n\nexport const TableHead = MantineTable.Thead;\nexport const TableBody = MantineTable.Tbody;\nexport const TableRow = ({ hover: _hover, style, sx, ...props }: any) => (\n <MantineTable.Tr style={{ ...sxToStyle(sx), ...style }} {...props} />\n);\nexport const TableCell = ({ align, children, component, style, sx, ...props }: any) => {\n const CellComponent = component === \"th\" ? MantineTable.Th : MantineTable.Td;\n\n return (\n <CellComponent ta={align} style={{ ...sxToStyle(sx), ...style }} {...props}>\n {children}\n </CellComponent>\n );\n};\n\nexport {\n TablePagination,\n type TablePaginationProps,\n type TablePaginationRowsPerPageOption,\n} from \"../generic/TablePagination/TablePagination\";\n\nconst isTabsListChild = (child: ReactNode) =>\n isValidElement(child) && child.type === MantineTabs.List;\n\nconst isTabLabelChild = (child: ReactNode) =>\n isValidElement(child) &&\n (() => {\n const props = child.props as { label?: unknown; value?: unknown };\n return (\n child.type === MantineTabs.Tab ||\n (typeof child.type !== \"string\" &&\n \"label\" in props &&\n \"value\" in props &&\n child.type !== MantineTabs.Panel)\n );\n })();\n\nexport const Tabs = ({\n children,\n className,\n classNames,\n indicatorColor: _indicatorColor,\n onChange,\n scrollButtons,\n textColor: _textColor,\n value,\n variant,\n ...props\n}: any) => {\n const classNameMap = typeof classNames === \"function\" ? undefined : classNames;\n const childArray = Children.toArray(children);\n const explicitList = childArray.find(isTabsListChild);\n const tabChildren = explicitList\n ? undefined\n : childArray.filter((child) => isTabLabelChild(child));\n const panelChildren = explicitList\n ? childArray.filter((child) => !isTabsListChild(child))\n : childArray.filter((child) => !isTabLabelChild(child));\n\n return (\n <MantineTabs\n className={[\"fairmint-tabs-root\", className].filter(Boolean).join(\" \")}\n classNames={{\n ...classNameMap,\n list: [\"fairmint-tabs-list\", classNameMap?.list].filter(Boolean).join(\" \"),\n panel: [\"fairmint-tabs-panel\", classNameMap?.panel].filter(Boolean).join(\" \"),\n root: [\"fairmint-tabs-root\", classNameMap?.root].filter(Boolean).join(\" \"),\n tab: [\"fairmint-tab-root\", \"fairmint-tabs-tab\", classNameMap?.tab]\n .filter(Boolean)\n .join(\" \"),\n }}\n value={value}\n onChange={(next) => onChange?.({}, next)}\n variant={variant === \"scrollable\" ? \"default\" : variant}\n {...props}\n >\n {explicitList || (\n <MantineTabs.List\n className=\"fairmint-tabs-list\"\n style={\n variant === \"scrollable\" || scrollButtons\n ? { flexWrap: \"nowrap\", overflowX: \"auto\", overflowY: \"hidden\" }\n : undefined\n }\n >\n {tabChildren}\n </MantineTabs.List>\n )}\n {panelChildren}\n </MantineTabs>\n );\n};\nexport const Tab = ({ className, disableRipple: _disableRipple, label, value, ...props }: any) => (\n <MantineTabs.Tab\n className={[\"fairmint-tab-root\", className].filter(Boolean).join(\" \")}\n value={value}\n {...props}\n >\n {label}\n </MantineTabs.Tab>\n);\n\nconst resolveAnchorElement = (anchorEl: any): HTMLElement | undefined => {\n const resolvedAnchor = typeof anchorEl === \"function\" ? anchorEl() : anchorEl;\n if (typeof HTMLElement === \"undefined\") return undefined;\n return resolvedAnchor instanceof HTMLElement ? resolvedAnchor : undefined;\n};\n\nconst getAnchorStyle = (anchorEl: any): CSSProperties => {\n const anchor = resolveAnchorElement(anchorEl);\n if (!anchor)\n return { height: 0, left: 0, pointerEvents: \"none\", position: \"fixed\", top: 0, width: 0 };\n\n const rect = anchor.getBoundingClientRect();\n return {\n height: rect.height,\n left: rect.left,\n pointerEvents: \"none\",\n position: \"fixed\",\n top: rect.top,\n width: rect.width,\n };\n};\n\nconst useAnchorStyle = (anchorEl: any, open: boolean | undefined) => {\n const [style, setStyle] = useState<CSSProperties>(() => getAnchorStyle(anchorEl));\n\n useEffect(() => {\n const updateStyle = () => setStyle(getAnchorStyle(anchorEl));\n const anchor = resolveAnchorElement(anchorEl);\n\n updateStyle();\n if (!open || typeof window === \"undefined\") return undefined;\n\n window.addEventListener(\"scroll\", updateStyle, true);\n window.addEventListener(\"resize\", updateStyle);\n\n const resizeObserver =\n typeof ResizeObserver !== \"undefined\" && anchor ? new ResizeObserver(updateStyle) : undefined;\n if (resizeObserver && anchor) resizeObserver.observe(anchor);\n\n return () => {\n window.removeEventListener(\"scroll\", updateStyle, true);\n window.removeEventListener(\"resize\", updateStyle);\n resizeObserver?.disconnect();\n };\n }, [anchorEl, open]);\n\n return style;\n};\n\nexport const Menu = ({ anchorEl, children, onClose, open, ...props }: any) => {\n const anchorStyle = useAnchorStyle(anchorEl, open);\n const target = isValidElement(anchorEl) ? (\n anchorEl\n ) : (\n <span aria-hidden=\"true\" data-fairmint-menu-anchor=\"true\" style={anchorStyle} />\n );\n\n return (\n <MantineMenu opened={open} onChange={(next) => !next && onClose?.()} {...props}>\n <MantineMenu.Target>{target}</MantineMenu.Target>\n <MantineMenu.Dropdown>{children}</MantineMenu.Dropdown>\n </MantineMenu>\n );\n};\n\nexport const MenuItem = ({ children, component, disabled, onClick, value, ...props }: any) => {\n const Component: any = component || MantineMenu.Item;\n return (\n <Component disabled={disabled} onClick={onClick} value={value} {...props}>\n {children}\n </Component>\n );\n};\n\nexport const TextField = ({\n children,\n error,\n fullWidth,\n helperText,\n inputProps,\n InputProps,\n InputLabelProps: _InputLabelProps,\n inputRef,\n label,\n endAdornment,\n multiline,\n onChange,\n placeholder,\n select,\n size,\n startAdornment,\n style,\n styles,\n sx,\n defaultValue,\n value,\n variant: _variant,\n ...props\n}: TextFieldProps) => {\n const mantineSize = mapCompatSize(size);\n const resolvedStyle = formControlStyle({ fullWidth, style, sx });\n const { disabled, readOnly, ...fieldProps } = props;\n const mergedInputProps: Record<string, unknown> = {\n ...(InputProps?.inputProps || {}),\n ...(inputProps || {}),\n };\n const {\n disabled: inputDisabled,\n readOnly: inputReadOnly,\n ...passthroughInputProps\n } = mergedInputProps;\n const resolvedDisabled =\n optionalBoolean(disabled) ??\n optionalBoolean(InputProps?.disabled) ??\n optionalBoolean(inputDisabled);\n const resolvedReadOnly =\n optionalBoolean(readOnly) ??\n optionalBoolean(InputProps?.readOnly) ??\n optionalBoolean(inputReadOnly);\n const helperDescription = error ? undefined : helperText || undefined;\n const ariaLabel =\n optionalString(fieldProps[\"aria-label\"]) || optionalString(passthroughInputProps[\"aria-label\"]);\n const textInputRef = inputRef\n ? (node: HTMLInputElement | HTMLTextAreaElement | null) => assignCompatRef(inputRef, node)\n : undefined;\n\n if (select) {\n const data = Children.toArray(children)\n .filter((child): child is ReactElement<{ children?: ReactNode; value?: unknown }> =>\n isValidElement(child),\n )\n .map((child) => ({\n label: nodeToText(child.props.children),\n originalValue: child.props.value,\n value: String(child.props.value),\n }));\n const optionValuesByString = new Map(\n data.map((option) => [option.value, option.originalValue]),\n );\n\n return (\n <MantineSelect\n data={data.map(({ label, value }) => ({ label, value }))}\n defaultValue={defaultValue == null ? undefined : String(defaultValue)}\n value={value === undefined ? undefined : value == null ? null : String(value)}\n onChange={(next) => {\n const originalValue =\n next == null\n ? null\n : optionValuesByString.has(next)\n ? optionValuesByString.get(next)\n : next;\n onChange?.({\n currentTarget: { name: fieldProps.name, value: originalValue },\n target: { name: fieldProps.name, value: originalValue },\n } as SelectChangeEvent);\n }}\n description={helperDescription}\n disabled={resolvedDisabled}\n error={error ? helperText : undefined}\n label={label}\n readOnly={resolvedReadOnly}\n size={mantineSize}\n style={resolvedStyle}\n classNames={{\n input: \"fairmint-input-input fairmint-select-input\",\n wrapper: \"fairmint-input-root\",\n }}\n styles={styles}\n {...fieldProps}\n />\n );\n }\n const Component = multiline ? Textarea : TextInput;\n return (\n <Component\n defaultValue={inputControlValue(defaultValue)}\n value={inputControlValue(value)}\n onChange={onChange}\n description={helperDescription}\n disabled={resolvedDisabled}\n error={error ? helperText : undefined}\n label={label}\n leftSection={InputProps?.startAdornment || startAdornment}\n placeholder={placeholder}\n readOnly={resolvedReadOnly}\n rightSection={InputProps?.endAdornment || endAdornment}\n size={mantineSize}\n style={resolvedStyle}\n classNames={{\n input: \"fairmint-input-input fairmint-outlined-input-input\",\n root: \"fairmint-input-root fairmint-outlined-input-root\",\n wrapper: \"fairmint-input-wrapper fairmint-outlined-input-wrapper\",\n }}\n styles={styles}\n ref={textInputRef}\n {...fieldProps}\n {...passthroughInputProps}\n aria-label={ariaLabel}\n />\n );\n};\n\nexport const OutlinedInput = ({\n error,\n fullWidth,\n inputProps,\n inputRef,\n InputProps,\n endAdornment,\n size,\n startAdornment,\n style,\n sx,\n ...props\n}: any) => {\n const mantineSize = mapCompatSize(size);\n return (\n <TextInput\n error={error}\n leftSection={InputProps?.startAdornment || startAdornment}\n rightSection={InputProps?.endAdornment || endAdornment}\n ref={inputRef}\n size={mantineSize}\n style={formControlStyle({ fullWidth, style, sx })}\n classNames={{\n input: \"fairmint-input-input fairmint-outlined-input-input\",\n root: \"fairmint-input-root fairmint-outlined-input-root\",\n wrapper: \"fairmint-input-wrapper fairmint-outlined-input-wrapper\",\n }}\n {...props}\n {...inputProps}\n />\n );\n};\nexport const InputAdornment = ({ children }: any) => <>{children}</>;\nexport const InputLabel = ({ children }: any) => (\n <Text glossary={false} size=\"sm\">\n {children}\n </Text>\n);\nexport const FormControl = ({ children, fullWidth, style, sx, ...props }: any) => (\n <Stack style={formControlStyle({ fullWidth, style, sx })} {...props}>\n {children}\n </Stack>\n);\nexport const FormHelperText = ({ children, error }: any) => (\n <Text c={resolveCompatColor(error ? \"error\" : \"text.secondary\")} glossary={false} size=\"xs\">\n {children}\n </Text>\n);\nexport const FormControlLabel = ({\n checked,\n control,\n disabled,\n label,\n onChange,\n sx,\n ...props\n}: any) => {\n const controlProps = isValidElement(control) ? (control.props as any) : {};\n const handleChange =\n onChange || controlProps.onChange\n ? (event: any, ...args: any[]) => {\n controlProps.onChange?.(event, ...args);\n onChange?.(event, event.currentTarget?.checked ?? event.target?.checked);\n }\n : undefined;\n\n return (\n <Group\n align=\"center\"\n component=\"label\"\n gap=\"xs\"\n style={{ width: \"100%\", ...sxToStyle(sx) }}\n {...props}\n >\n <MantineBox\n component=\"span\"\n style={{\n alignItems: \"center\",\n display: \"inline-flex\",\n }}\n >\n {isValidElement(control)\n ? cloneElement(control, {\n ...(checked !== undefined ? { checked } : {}),\n ...(disabled !== undefined ? { disabled } : {}),\n ...(handleChange ? { onChange: handleChange } : {}),\n } as any)\n : control}\n </MantineBox>\n <MantineBox\n component=\"span\"\n style={{\n color: disabled ? resolveCompatColor(\"text.disabled\") : undefined,\n flex: 1,\n minWidth: 0,\n }}\n >\n {isValidElement(label) ? (\n label\n ) : (\n <Text component=\"span\" glossary={false}>\n {label}\n </Text>\n )}\n </MantineBox>\n </Group>\n );\n};\n\nexport const AccordionSummary = ({ children, className, expandIcon, style, sx, ...props }: any) => (\n <MantineAccordion.Control\n chevron={expandIcon}\n className={[\"fairmint-accordion-summary-root\", className].filter(Boolean).join(\" \")}\n style={{ ...sxToStyle(sx), ...style }}\n {...props}\n >\n {children}\n </MantineAccordion.Control>\n);\nexport const AccordionDetails = ({ children, className, style, sx, ...props }: any) => (\n <MantineAccordion.Panel\n className={[\"fairmint-accordion-details-root\", className].filter(Boolean).join(\" \")}\n style={{ ...sxToStyle(sx), ...style }}\n {...props}\n >\n {children}\n </MantineAccordion.Panel>\n);\n\nconst isAccordionSummaryChild = (child: ReactNode) =>\n isValidElement(child) && child.type === AccordionSummary;\n\nconst groupAccordionChildren = (children: ReactNode) => {\n const groups: ReactNode[][] = [];\n\n Children.forEach(children, (child) => {\n if (isAccordionSummaryChild(child) || groups.length === 0) {\n groups.push([child]);\n return;\n }\n\n groups[groups.length - 1].push(child);\n });\n\n return groups;\n};\n\nexport const Accordion = ({\n children,\n className,\n defaultExpanded,\n expanded,\n multiple,\n onChange,\n ...props\n}: any) => {\n const groups = groupAccordionChildren(children);\n const itemValues = groups.map((_, index) => `item-${index}`);\n const isControlled = expanded !== undefined;\n const allowMultiple = multiple ?? false;\n const accordionValue = allowMultiple\n ? expanded\n ? itemValues\n : []\n : expanded\n ? itemValues[0]\n : null;\n\n return (\n <MantineAccordion\n className={[\"fairmint-accordion-root\", className].filter(Boolean).join(\" \")}\n classNames={{\n content: \"fairmint-accordion-details-content\",\n control: \"fairmint-accordion-summary-root\",\n item: \"fairmint-accordion-item\",\n label: \"fairmint-accordion-summary-content\",\n panel: \"fairmint-accordion-details-root\",\n }}\n defaultValue={\n !isControlled && defaultExpanded ? (allowMultiple ? itemValues : itemValues[0]) : undefined\n }\n multiple={allowMultiple}\n value={isControlled ? accordionValue : undefined}\n onChange={(value) => onChange?.({}, Array.isArray(value) ? value.length > 0 : Boolean(value))}\n {...props}\n >\n {groups.map((group, index) => (\n <MantineAccordion.Item key={itemValues[index]} value={itemValues[index]}>\n {group}\n </MantineAccordion.Item>\n ))}\n </MantineAccordion>\n );\n};\n\nexport const ButtonGroup = Group;\nexport const Chip = ({\n className,\n label,\n children,\n clickable,\n color = \"default\",\n icon,\n onClick,\n onDelete,\n size,\n sx,\n variant,\n ...props\n}: any) => {\n const chipClassName = [\n \"MuiChip-root\",\n \"fairmint-chip-root\",\n `MuiChip-color${String(color).charAt(0).toUpperCase()}${String(color).slice(1)}`,\n `fairmint-chip-color${String(color).charAt(0).toUpperCase()}${String(color).slice(1)}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n const content = label || children;\n\n if (onClick || onDelete) {\n return (\n <button\n className={chipClassName}\n onClick={onClick}\n style={{\n alignItems: \"center\",\n background: \"transparent\",\n border: \"1px solid currentColor\",\n borderRadius: 999,\n cursor: onClick ? \"pointer\" : \"default\",\n display: \"inline-flex\",\n gap: 4,\n padding: \"2px 8px\",\n ...sxToStyle(sx),\n }}\n type=\"button\"\n {...props}\n >\n {icon && <span className=\"fairmint-chip-icon\">{icon}</span>}\n <span className=\"MuiChip-label fairmint-chip-label\">{content}</span>\n {onDelete && (\n <span\n aria-hidden=\"true\"\n className=\"fairmint-chip-delete-icon\"\n data-testid=\"CancelIcon\"\n onClick={(event) => {\n event.stopPropagation();\n onDelete(event);\n }}\n style={{ cursor: \"pointer\", lineHeight: 1 }}\n >\n ×\n </span>\n )}\n </button>\n );\n }\n\n return (\n <Badge\n className={chipClassName}\n color={mapChipBadgeColor(color)}\n leftSection={icon ? <span className=\"fairmint-chip-icon\">{icon}</span> : undefined}\n size={mapCompatSize(size)}\n style={{ textTransform: \"none\", ...sxToStyle(sx) }}\n variant={mapChipVariant(variant)}\n {...props}\n >\n {content}\n </Badge>\n );\n};\nconst mouseEventMap: Record<string, keyof DocumentEventMap> = {\n onClick: \"click\",\n onMouseDown: \"mousedown\",\n onMouseUp: \"mouseup\",\n onPointerDown: \"pointerdown\",\n onPointerUp: \"pointerup\",\n};\n\nconst touchEventMap: Record<string, keyof DocumentEventMap> = {\n onTouchEnd: \"touchend\",\n onTouchStart: \"touchstart\",\n};\n\nconst isDocumentEventName = (\n eventName: keyof DocumentEventMap | undefined,\n): eventName is keyof DocumentEventMap => eventName !== undefined;\n\nconst assignRef = <T,>(ref: Ref<T> | undefined, value: T | null) => {\n if (typeof ref === \"function\") {\n ref(value);\n return;\n }\n if (ref && \"current\" in ref) {\n ref.current = value;\n }\n};\n\nconst createAutocompleteEvent = (value: unknown) => ({\n currentTarget: { value },\n target: { value },\n});\n\nexport const ClickAwayListener = ({\n children,\n mouseEvent = \"onClick\",\n onClickAway,\n touchEvent = \"onTouchEnd\",\n}: any) => {\n const nodeRef = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n if (!onClickAway) return;\n\n const handleClickAway = (event: Event) => {\n const node = nodeRef.current;\n if (node && event.target instanceof Node && node.contains(event.target)) return;\n onClickAway(event);\n };\n const eventNames = [\n mouseEvent === false ? undefined : mouseEventMap[mouseEvent] || \"click\",\n touchEvent === false ? undefined : touchEventMap[touchEvent] || \"touchend\",\n ].filter(isDocumentEventName);\n\n for (const eventName of eventNames) {\n document.addEventListener(eventName, handleClickAway, true);\n }\n\n return () => {\n for (const eventName of eventNames) {\n document.removeEventListener(eventName, handleClickAway, true);\n }\n };\n }, [mouseEvent, onClickAway, touchEvent]);\n\n if (Children.count(children) === 1) {\n const child = Children.only(children);\n if (isValidElement<{ ref?: Ref<HTMLElement> }>(child)) {\n const originalRef = child.props.ref;\n return cloneElement(child, {\n ref: (node: HTMLElement | null) => {\n nodeRef.current = node;\n assignRef(originalRef, node);\n },\n });\n }\n }\n\n return <span ref={nodeRef}>{children}</span>;\n};\nconst linkUnderlineStyle = (underline: unknown): CSSProperties => {\n if (underline === \"always\") return { textDecoration: \"underline\" };\n if (underline === \"none\" || underline === \"hover\") return { textDecoration: \"none\" };\n return {};\n};\n\nexport const Link = ({ children, color, style, sx, underline, ...props }: any) => (\n <Text\n component=\"a\"\n style={{ ...sxToStyle(sx), ...linkUnderlineStyle(underline), ...style }}\n {...(resolveCompatColor(color) ? { c: resolveCompatColor(color) } : {})}\n {...props}\n >\n {children}\n </Text>\n);\nexport const ListItemButton = ({ children, selected, sx, style, ...props }: any) => (\n <MantineBox\n aria-selected={selected || undefined}\n style={{\n backgroundColor: selected ? resolveCompatColor(\"action.selected\") : undefined,\n ...sxToStyle(sx),\n ...style,\n }}\n {...props}\n >\n {children}\n </MantineBox>\n);\nexport const ListItemIcon = ({ children, sx, style, ...props }: any) => (\n <MantineBox style={{ ...sxToStyle(sx), ...style }} {...props}>\n {children}\n </MantineBox>\n);\nexport const ListItemText = ({ primary, secondary }: any) => (\n <Stack gap={0}>\n <Text glossary={false}>{primary}</Text>\n {secondary && (\n <Text c={resolveCompatColor(\"text.secondary\")} glossary={false} size=\"sm\">\n {secondary}\n </Text>\n )}\n </Stack>\n);\nexport const SvgIcon = ({\n children,\n color,\n fontSize,\n htmlColor,\n style,\n sx,\n titleAccess,\n viewBox = \"0 0 24 24\",\n ...props\n}: any) => {\n const mappedFontSize =\n fontSize === \"small\" ? 20 : fontSize === \"large\" ? 35 : fontSize === \"inherit\" ? \"inherit\" : 24;\n\n return (\n <svg\n aria-hidden={titleAccess ? undefined : true}\n color={htmlColor || resolveCompatColor(color)}\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"1em\"\n role={titleAccess ? \"img\" : undefined}\n style={{\n color: htmlColor || resolveCompatColor(color),\n fontSize: mappedFontSize,\n ...sxToStyle(sx),\n ...style,\n }}\n viewBox={viewBox}\n width=\"1em\"\n {...props}\n >\n <title>{titleAccess || \"icon\"}</title>\n {children}\n </svg>\n );\n};\nexport const AlertTitle = ({ children }: any) => (\n <Text fw={700} glossary={false}>\n {children}\n </Text>\n);\nexport class AdapterDayjs {}\nexport const LocalizationProvider = ({\n children,\n}: {\n children: ReactNode;\n dateAdapter?: unknown;\n}) => <>{children}</>;\nexport const DatePicker = ({\n defaultValue,\n fullWidth,\n label,\n onAccept,\n onChange,\n slotProps,\n sx,\n value,\n views: _views,\n ...props\n}: any) => {\n const {\n fullWidth: textFieldFullWidth,\n error: textFieldError,\n helperText,\n onBlur: textFieldOnBlur,\n required,\n size,\n style,\n sx: textFieldSx,\n ...textFieldProps\n } = slotProps?.textField || {};\n const mantineSize = mapCompatSize(size);\n const isControlled = value !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue ?? null);\n const resolvedValue = isControlled ? value : uncontrolledValue;\n const dateValue = resolvedValue?.format\n ? resolvedValue.format(\"YYYY-MM-DD\")\n : resolvedValue || \"\";\n const latestDateRef = useRef<string | null>(dateValue || null);\n latestDateRef.current = dateValue || null;\n const normalizePickerValue = (next: string | Date | null) => {\n if (!next) return null;\n if (next instanceof Date) return dayjs(next).format(\"YYYY-MM-DD\");\n return next;\n };\n const toDateValue = (next: string | null) => (next ? dayjs(next) : null);\n const emitChange = (next: string | Date | null) => {\n const iso = normalizePickerValue(next);\n latestDateRef.current = iso;\n const nextValue = toDateValue(iso);\n if (!isControlled) setUncontrolledValue(nextValue);\n onChange?.(nextValue);\n };\n const parseTypedDate = (raw: string) => {\n const trimmed = raw.trim();\n if (!trimmed) return null;\n const parsed = dayjs(trimmed, [\"MM/DD/YYYY\", \"M/D/YYYY\", \"YYYY-MM-DD\"], true);\n return parsed.isValid() ? parsed : null;\n };\n return (\n <DateInput\n label={label || textFieldProps.label}\n value={dateValue || null}\n onChange={(next) => emitChange(next)}\n onBlur={(event: FocusEvent<HTMLInputElement>) => {\n textFieldOnBlur?.(event);\n const raw = event.currentTarget.value ?? \"\";\n const parsed = parseTypedDate(raw);\n if (!raw.trim()) {\n emitChange(null);\n onAccept?.(null);\n return;\n }\n if (parsed) {\n emitChange(parsed.format(\"YYYY-MM-DD\"));\n onAccept?.(parsed);\n return;\n }\n onAccept?.(toDateValue(latestDateRef.current));\n }}\n valueFormat=\"MM/DD/YYYY\"\n placeholder=\"MM/DD/YYYY\"\n description={textFieldError ? undefined : helperText}\n error={textFieldError ? helperText : undefined}\n required={required}\n size={mantineSize}\n clearable\n allowDeselect={false}\n defaultDate={dateValue || dayjs().format(\"YYYY-MM-DD\")}\n w={fullWidth || textFieldFullWidth ? \"100%\" : undefined}\n style={formControlStyle({\n fullWidth: fullWidth || textFieldFullWidth,\n style,\n sx: { ...sxToStyle(sx), ...sxToStyle(textFieldSx) },\n })}\n // Mantine's popover z-index (300) sits below MUI's Dialog z-index (1300),\n // so the dropdown renders behind any MUI Dialog this picker is used in\n // unless raised above it. Callers can still override via props.popoverProps.\n popoverProps={{ zIndex: 1400 }}\n {...textFieldProps}\n {...props}\n />\n );\n};\nexport function Autocomplete<T = any, _Multiple = any, _DisableClearable = any, _FreeSolo = any>(\n componentProps: any & { options?: T[] },\n) {\n const {\n disableClearable,\n disableCloseOnSelect: _disableCloseOnSelect,\n disabled,\n filterOptions,\n freeSolo,\n fullWidth,\n comboboxProps,\n getOptionLabel,\n defaultValue,\n inputValue,\n isOptionEqualToValue,\n ListboxProps: _ListboxProps,\n loading: _loading,\n label,\n multiple,\n noOptionsText: _noOptionsText,\n onBlur,\n onChange,\n onFocus,\n onInputChange,\n onKeyDown,\n onKeyPress,\n onKeyUp,\n options = [],\n placeholder,\n renderInput,\n renderOption: _renderOption,\n renderTags: _renderTags,\n required,\n size,\n style,\n sx,\n value,\n ...props\n } = componentProps;\n const optionLabel = (option: any) =>\n typeof option === \"string\"\n ? option\n : getOptionLabel?.(option) ||\n option?.label ||\n option?.name ||\n option?.value ||\n String(option);\n const optionValue = (option: any) =>\n typeof option === \"string\"\n ? option\n : String(option?.id ?? option?.value ?? optionLabel(option));\n const optionMatchesValue = (option: any, selected: any) => {\n if (selected == null) return false;\n if (typeof isOptionEqualToValue === \"function\" && typeof selected !== \"string\") {\n return isOptionEqualToValue(option, selected);\n }\n\n const nextValue = typeof selected === \"string\" ? selected : optionValue(selected);\n return optionValue(option) === nextValue || optionLabel(option) === nextValue;\n };\n const findKnownOption = (next: any) => {\n if (next == null) return null;\n return options.find((option: any) => optionMatchesValue(option, next)) || null;\n };\n const selectedValue = (selected: any) => {\n if (selected == null) return null;\n const knownOption = findKnownOption(selected);\n if (knownOption) return optionValue(knownOption);\n if (typeof selected === \"string\") return selected;\n return optionValue(selected);\n };\n const selectedValuesFrom = (values: any[]) =>\n values\n .map(selectedValue)\n .filter((selected): selected is string => typeof selected === \"string\" && selected !== \"\");\n const [uncontrolledSearchValue, setUncontrolledSearchValue] = useState(\"\");\n const [uncontrolledSingleValue, setUncontrolledSingleValue] = useState<string | null>(() =>\n selectedValue(defaultValue),\n );\n const [uncontrolledMultipleValues, setUncontrolledMultipleValues] = useState<string[]>(() =>\n Array.isArray(defaultValue) ? selectedValuesFrom(defaultValue) : [],\n );\n const [createdFreeSoloOptions, setCreatedFreeSoloOptions] = useState<string[]>([]);\n const resolvedSearchValue = inputValue ?? uncontrolledSearchValue;\n const filteredOptions =\n typeof filterOptions === \"function\"\n ? filterOptions(options, { getOptionLabel: optionLabel, inputValue: resolvedSearchValue })\n : options;\n const data: Array<{ label: string; value: string }> = [];\n const dataValues = new Set<string>();\n const addDataOption = (option: any) => {\n const nextValue = optionValue(option);\n if (dataValues.has(nextValue)) return;\n\n data.push({ label: optionLabel(option), value: nextValue });\n dataValues.add(nextValue);\n };\n filteredOptions.forEach(addDataOption);\n const addSelectedDataOption = (selected: unknown) => {\n const option = findKnownOption(selected);\n if (option) addDataOption(option);\n };\n if (!Array.isArray(value)) addSelectedDataOption(value);\n if (!Array.isArray(defaultValue)) addSelectedDataOption(defaultValue);\n if (Array.isArray(value)) value.forEach(addSelectedDataOption);\n if (Array.isArray(defaultValue)) defaultValue.forEach(addSelectedDataOption);\n uncontrolledMultipleValues.forEach(addSelectedDataOption);\n const addFreeSoloOption = (next: unknown) => {\n if (!freeSolo || multiple) return;\n const nextValue = selectedValue(next);\n if (!nextValue || dataValues.has(nextValue)) return;\n\n data.push({ label: typeof next === \"string\" ? next : nextValue, value: nextValue });\n dataValues.add(nextValue);\n };\n addFreeSoloOption(value);\n addFreeSoloOption(defaultValue);\n addFreeSoloOption(uncontrolledSingleValue);\n addFreeSoloOption(resolvedSearchValue);\n createdFreeSoloOptions.forEach(addFreeSoloOption);\n\n const findOption = (next: string | null) => findKnownOption(next) || (freeSolo ? next : null);\n const commitFreeSoloValue = (next: string, event?: any) => {\n if (!freeSolo || multiple) return false;\n const nextValue = next.trim();\n if (!nextValue) return false;\n\n const nextOption = findKnownOption(nextValue) || nextValue;\n const selectedNextValue = selectedValue(nextOption);\n if (!selectedNextValue) return false;\n\n setCreatedFreeSoloOptions((current) =>\n current.includes(selectedNextValue) ? current : [...current, selectedNextValue],\n );\n setUncontrolledSearchValue(nextValue);\n if (value === undefined) setUncontrolledSingleValue(selectedNextValue);\n\n onChange?.(\n event || createAutocompleteEvent(nextValue),\n nextOption,\n findKnownOption(nextValue) ? \"selectOption\" : \"createOption\",\n { option: nextOption },\n );\n return true;\n };\n const input = renderInput?.({\n inputProps: {\n value: inputValue ?? \"\",\n onChange: (event: any) => onInputChange?.(event, event.currentTarget.value, \"input\"),\n },\n InputProps: {},\n label,\n });\n const inputProps = isValidElement(input) ? (input.props as any) : {};\n const renderInputInputProps = isObjectRecord(inputProps.inputProps)\n ? inputProps.inputProps\n : undefined;\n const autocompleteInputProps = pickAutocompleteInputProps(inputProps, renderInputInputProps);\n const inputAdornment = inputProps.InputProps?.endAdornment || inputProps.endAdornment;\n const mantineSize = mapCompatSize(size);\n const controlStyle = formControlStyle({\n fullWidth,\n style: { ...style, ...inputProps.style },\n sx,\n });\n const commonSelectProps = {\n ...autocompleteInputProps,\n clearable: !disableClearable,\n comboboxProps: {\n zIndex: overlayZIndexAboveFairmintOverlays,\n ...comboboxProps,\n },\n disabled: disabled ?? autocompleteInputProps.disabled,\n label: inputProps.label || label,\n nothingFoundMessage: _noOptionsText,\n onBlur: composeOptionalEventHandlers(autocompleteInputProps.onBlur, onBlur),\n onFocus: composeOptionalEventHandlers(autocompleteInputProps.onFocus, onFocus),\n onKeyDown: (event: any) => {\n onKeyDown?.(event);\n autocompleteInputProps.onKeyDown?.(event);\n if (event.defaultPrevented || event.key !== \"Enter\") return;\n\n if (commitFreeSoloValue(String(event.currentTarget?.value ?? resolvedSearchValue), event)) {\n event.preventDefault?.();\n }\n },\n onKeyPress: composeOptionalEventHandlers(onKeyPress, autocompleteInputProps.onKeyPress),\n onKeyUp: composeOptionalEventHandlers(onKeyUp, autocompleteInputProps.onKeyUp),\n placeholder: autocompleteInputProps.placeholder || inputProps.placeholder || placeholder,\n readOnly: autocompleteInputProps.readOnly,\n required: autocompleteInputProps.required ?? inputProps.required ?? required,\n rightSection: inputAdornment,\n searchable: true,\n size: mantineSize,\n style: controlStyle,\n ...(inputProps.error ? { error: inputProps.helperText || true } : {}),\n ...(inputValue !== undefined || freeSolo ? { searchValue: resolvedSearchValue } : {}),\n ...(onInputChange || freeSolo\n ? {\n onSearchChange: (next: string) => {\n if (inputValue === undefined) setUncontrolledSearchValue(next);\n onInputChange?.(createAutocompleteEvent(next), next, \"input\");\n },\n }\n : {}),\n };\n\n if (multiple) {\n const selectedValues = Array.isArray(value)\n ? selectedValuesFrom(value)\n : uncontrolledMultipleValues;\n return (\n <MantineMultiSelect\n data={data}\n value={selectedValues}\n onChange={(nextValues) => {\n const nextOptions = nextValues.map((next) => findOption(next)).filter(Boolean);\n const removedValue = selectedValues.find((selected) => !nextValues.includes(selected));\n const addedValue = nextValues.find((next) => !selectedValues.includes(next));\n const detailValue = removedValue || addedValue;\n const detailOption = detailValue ? findOption(detailValue) : undefined;\n const reason =\n nextValues.length === 0 ? \"clear\" : removedValue ? \"removeOption\" : \"selectOption\";\n\n if (value === undefined) setUncontrolledMultipleValues(nextValues);\n\n onChange?.(\n createAutocompleteEvent(nextValues),\n nextOptions,\n reason,\n detailOption && reason !== \"clear\" ? { option: detailOption } : undefined,\n );\n }}\n {...commonSelectProps}\n {...props}\n />\n );\n }\n\n return (\n <MantineSelect\n data={data}\n value={value !== undefined ? selectedValue(value) : uncontrolledSingleValue}\n onChange={(next) => {\n const nextOption = findOption(next);\n const nextValue = selectedValue(nextOption);\n const isKnownOption = Boolean(findKnownOption(next));\n\n if (value === undefined) setUncontrolledSingleValue(nextValue);\n if (freeSolo && nextValue) {\n setCreatedFreeSoloOptions((current) =>\n current.includes(nextValue) ? current : [...current, nextValue],\n );\n }\n\n onChange?.(\n createAutocompleteEvent(next),\n nextOption,\n next == null ? \"clear\" : isKnownOption ? \"selectOption\" : \"createOption\",\n nextOption ? { option: nextOption } : undefined,\n );\n }}\n {...commonSelectProps}\n {...props}\n />\n );\n}\n\nexport const Container = MantineContainer;\nexport const Grid = MantineGrid;\nexport const List = MantineList;\nexport const ListItem = MantineList.Item;\nexport const Modal = MantineModal;\nexport const Select = MantineSelect;\nexport const Stack = MantineStack;\nexport const Table = MantineTable;\nconst pieFallbackColors = [\n brandColors.indigo,\n brandColors.blue,\n brandColors.purple,\n semanticColors.info,\n semanticColors.success,\n semanticColors.warning,\n semanticColors.error,\n];\n\nexport const PieChart = ({ height = 200, series = [], width = 200 }: any) => {\n const config = series[0] || {};\n const data = config.data || [];\n const total = data.reduce(\n (sum: number, item: any) => sum + Math.max(Number(item.value) || 0, 0),\n 0,\n );\n const cx = config.cx ?? width / 2;\n const cy = config.cy ?? height / 2;\n const outerRadius = config.outerRadius ?? Math.min(width, height) / 2;\n const innerRadius = config.innerRadius ?? 0;\n const seenSliceKeys = new Map<string, number>();\n let angle = -90;\n\n const point = (radius: number, degrees: number) => {\n const radians = (degrees * Math.PI) / 180;\n return [cx + radius * Math.cos(radians), cy + radius * Math.sin(radians)];\n };\n\n return (\n <svg\n aria-hidden=\"true\"\n height={height}\n role=\"img\"\n viewBox={`0 0 ${width} ${height}`}\n width={width}\n >\n {data.map((item: any, index: number) => {\n const value = Math.max(Number(item.value) || 0, 0);\n const sweep = total > 0 ? (value / total) * 360 : 0;\n const start = angle;\n const end = angle + sweep;\n angle = end;\n const largeArc = sweep > 180 ? 1 : 0;\n const [outerStartX, outerStartY] = point(outerRadius, start);\n const [outerEndX, outerEndY] = point(outerRadius, end);\n const [innerEndX, innerEndY] = point(innerRadius, end);\n const [innerStartX, innerStartY] = point(innerRadius, start);\n const path =\n innerRadius > 0\n ? `M ${outerStartX} ${outerStartY} A ${outerRadius} ${outerRadius} 0 ${largeArc} 1 ${outerEndX} ${outerEndY} L ${innerEndX} ${innerEndY} A ${innerRadius} ${innerRadius} 0 ${largeArc} 0 ${innerStartX} ${innerStartY} Z`\n : `M ${cx} ${cy} L ${outerStartX} ${outerStartY} A ${outerRadius} ${outerRadius} 0 ${largeArc} 1 ${outerEndX} ${outerEndY} Z`;\n const rawKey = `${String(item.id ?? item.label ?? item.name ?? item.color ?? item.value ?? \"slice\")}-${start}-${end}`;\n const duplicateCount = seenSliceKeys.get(rawKey) ?? 0;\n seenSliceKeys.set(rawKey, duplicateCount + 1);\n const sliceKey = duplicateCount === 0 ? rawKey : `${rawKey}-${duplicateCount}`;\n return (\n <path\n key={sliceKey}\n d={path}\n fill={item.color || pieFallbackColors[index % pieFallbackColors.length]}\n />\n );\n })}\n </svg>\n );\n};\nexport {\n ActionIcon,\n Alert,\n Avatar,\n Badge,\n Button,\n Card,\n Center,\n Checkbox,\n Flex,\n Group,\n Loader,\n Paper,\n Skeleton,\n Switch,\n Tooltip,\n useMantineMediaQuery as useMediaQuery,\n};\n"],"names":["primitiveSxToStyle","theme","MantineBox","MantineModal","MantineTable","MantineMenu","MantineSelect","label","value","MantineAccordion","MantineMultiSelect","MantineList","MantineStack"],"mappings":"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"}