@fairmint/ui 0.3.5 → 0.3.7

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 (59) hide show
  1. package/dist/_virtual/index3.cjs +5 -3
  2. package/dist/_virtual/index3.cjs.map +1 -1
  3. package/dist/_virtual/index3.js +5 -2
  4. package/dist/_virtual/index3.js.map +1 -1
  5. package/dist/_virtual/index4.cjs +3 -5
  6. package/dist/_virtual/index4.cjs.map +1 -1
  7. package/dist/_virtual/index4.js +2 -5
  8. package/dist/_virtual/index4.js.map +1 -1
  9. package/dist/components/generic/DataTable/DataTable.cjs +2 -2
  10. package/dist/components/generic/DataTable/DataTable.cjs.map +1 -1
  11. package/dist/components/generic/DataTable/DataTable.d.ts.map +1 -1
  12. package/dist/components/generic/DataTable/DataTable.js +3 -3
  13. package/dist/components/generic/DataTable/DataTable.js.map +1 -1
  14. package/dist/components/generic/DetailDrawer/DetailDrawer.cjs +1 -13
  15. package/dist/components/generic/DetailDrawer/DetailDrawer.cjs.map +1 -1
  16. package/dist/components/generic/DetailDrawer/DetailDrawer.d.ts.map +1 -1
  17. package/dist/components/generic/DetailDrawer/DetailDrawer.js +1 -13
  18. package/dist/components/generic/DetailDrawer/DetailDrawer.js.map +1 -1
  19. package/dist/components/generic/StepCard/StepCard.cjs +2 -1
  20. package/dist/components/generic/StepCard/StepCard.cjs.map +1 -1
  21. package/dist/components/generic/StepCard/StepCard.js +2 -1
  22. package/dist/components/generic/StepCard/StepCard.js.map +1 -1
  23. package/dist/components/layout/PageHeader/PageHeader.cjs +2 -1
  24. package/dist/components/layout/PageHeader/PageHeader.cjs.map +1 -1
  25. package/dist/components/layout/PageHeader/PageHeader.d.ts.map +1 -1
  26. package/dist/components/layout/PageHeader/PageHeader.js +2 -1
  27. package/dist/components/layout/PageHeader/PageHeader.js.map +1 -1
  28. package/dist/components/primitives/Drawer/Drawer.cjs +10 -1
  29. package/dist/components/primitives/Drawer/Drawer.cjs.map +1 -1
  30. package/dist/components/primitives/Drawer/Drawer.d.ts.map +1 -1
  31. package/dist/components/primitives/Drawer/Drawer.js +10 -1
  32. package/dist/components/primitives/Drawer/Drawer.js.map +1 -1
  33. package/dist/components/primitives/Table/Table.cjs +4 -2
  34. package/dist/components/primitives/Table/Table.cjs.map +1 -1
  35. package/dist/components/primitives/Table/Table.d.ts +3 -1
  36. package/dist/components/primitives/Table/Table.d.ts.map +1 -1
  37. package/dist/components/primitives/Table/Table.js +4 -2
  38. package/dist/components/primitives/Table/Table.js.map +1 -1
  39. package/dist/fairmint-ui.cjs +2 -0
  40. package/dist/fairmint-ui.cjs.map +1 -1
  41. package/dist/fairmint-ui.js +2 -0
  42. package/dist/fairmint-ui.js.map +1 -1
  43. package/dist/index.d.ts +2 -2
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/node_modules/@mantine/form/esm/hooks/use-form-status/use-form-status.cjs +1 -1
  46. package/dist/node_modules/@mantine/form/esm/hooks/use-form-status/use-form-status.js +1 -1
  47. package/dist/node_modules/prop-types/index.cjs +1 -1
  48. package/dist/node_modules/prop-types/index.js +1 -1
  49. package/dist/theme/index.cjs.map +1 -1
  50. package/dist/theme/index.d.ts +2 -0
  51. package/dist/theme/index.d.ts.map +1 -1
  52. package/dist/theme/index.js.map +1 -1
  53. package/dist/theme/responsiveTypography.cjs +13 -0
  54. package/dist/theme/responsiveTypography.cjs.map +1 -0
  55. package/dist/theme/responsiveTypography.d.ts +40 -0
  56. package/dist/theme/responsiveTypography.d.ts.map +1 -0
  57. package/dist/theme/responsiveTypography.js +13 -0
  58. package/dist/theme/responsiveTypography.js.map +1 -0
  59. package/package.json +1 -1
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- var propTypes = { exports: {} };
4
- exports.__module = propTypes;
2
+ const _commonjsHelpers = require("./_commonjsHelpers.cjs");
3
+ const index = require("../node_modules/fast-deep-equal/index.cjs");
4
+ var fastDeepEqualExports = index.__require();
5
+ const isEqual = /* @__PURE__ */ _commonjsHelpers.getDefaultExportFromCjs(fastDeepEqualExports);
6
+ module.exports = isEqual;
5
7
  //# sourceMappingURL=index3.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index3.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index3.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,5 +1,8 @@
1
- var propTypes = { exports: {} };
1
+ import { getDefaultExportFromCjs } from "./_commonjsHelpers.js";
2
+ import { __require as requireFastDeepEqual } from "../node_modules/fast-deep-equal/index.js";
3
+ var fastDeepEqualExports = requireFastDeepEqual();
4
+ const isEqual = /* @__PURE__ */ getDefaultExportFromCjs(fastDeepEqualExports);
2
5
  export {
3
- propTypes as __module
6
+ isEqual as default
4
7
  };
5
8
  //# sourceMappingURL=index3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
- const _commonjsHelpers = require("./_commonjsHelpers.cjs");
3
- const index = require("../node_modules/fast-deep-equal/index.cjs");
4
- var fastDeepEqualExports = index.__require();
5
- const isEqual = /* @__PURE__ */ _commonjsHelpers.getDefaultExportFromCjs(fastDeepEqualExports);
6
- module.exports = isEqual;
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ var propTypes = { exports: {} };
4
+ exports.__module = propTypes;
7
5
  //# sourceMappingURL=index4.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index4.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"index4.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,8 +1,5 @@
1
- import { getDefaultExportFromCjs } from "./_commonjsHelpers.js";
2
- import { __require as requireFastDeepEqual } from "../node_modules/fast-deep-equal/index.js";
3
- var fastDeepEqualExports = requireFastDeepEqual();
4
- const isEqual = /* @__PURE__ */ getDefaultExportFromCjs(fastDeepEqualExports);
1
+ var propTypes = { exports: {} };
5
2
  export {
6
- isEqual as default
3
+ propTypes as __module
7
4
  };
8
5
  //# sourceMappingURL=index4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index4.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index4.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -70,7 +70,7 @@ function DataTable({
70
70
  if (data.length === 0) {
71
71
  return /* @__PURE__ */ jsxRuntime.jsx(EmptyState.EmptyState, { title: emptyTitle, description: emptyDescription, icon: emptyIcon });
72
72
  }
73
- return /* @__PURE__ */ jsxRuntime.jsx(layout.Box, { style: { overflowX: "auto" }, children: /* @__PURE__ */ jsxRuntime.jsxs(Table.Table, { children: [
73
+ return /* @__PURE__ */ jsxRuntime.jsxs(Table.Table, { responsive: true, children: [
74
74
  /* @__PURE__ */ jsxRuntime.jsx(Table.Table.Thead, { children: /* @__PURE__ */ jsxRuntime.jsx(Table.Table.Tr, { children: columns.map((col) => /* @__PURE__ */ jsxRuntime.jsx(Table.Table.Th, { w: col.width, children: col.sortable ? /* @__PURE__ */ jsxRuntime.jsx(UnstyledButton.UnstyledButton, { onClick: () => handleSort(col.key), children: /* @__PURE__ */ jsxRuntime.jsxs(Group.Group, { gap: 4, wrap: "nowrap", children: [
75
75
  /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { size: "xs", fw: 600, tt: "uppercase", children: col.label }),
76
76
  /* @__PURE__ */ jsxRuntime.jsx(SortIcon, { direction: sortKey === col.key ? sortDir : null })
@@ -87,7 +87,7 @@ function DataTable({
87
87
  key
88
88
  );
89
89
  }) })
90
- ] }) });
90
+ ] });
91
91
  }
92
92
  exports.DataTable = DataTable;
93
93
  //# sourceMappingURL=DataTable.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.cjs","sources":["../../../../src/components/generic/DataTable/DataTable.tsx"],"sourcesContent":["import { type ReactNode, useMemo, useState } from \"react\";\nimport { Box, Group, Stack, Text, UnstyledButton } from \"../../primitives/layout\";\nimport { Skeleton } from \"../../primitives/Skeleton/Skeleton\";\nimport { Table } from \"../../primitives/Table/Table\";\nimport { EmptyState } from \"../EmptyState/EmptyState\";\n\nexport interface DataTableColumn<T extends Record<string, unknown>> {\n /** Unique key matching a property in the data row. */\n key: string;\n /** Column header label. */\n label: string;\n /** Custom render function for the cell. */\n render?: (row: T) => ReactNode;\n /** Whether this column is sortable. @default false */\n sortable?: boolean;\n /** Column width (CSS value). */\n width?: string | number;\n}\n\nexport interface DataTableProps<T extends Record<string, unknown>> {\n /** Column definitions. */\n columns: DataTableColumn<T>[];\n /** Data rows. */\n data: T[];\n /** Unique key for each row. @default \"id\" */\n rowKey?: string;\n /** Whether data is loading. @default false */\n loading?: boolean;\n /** Number of skeleton rows to show when loading. @default 5 */\n loadingRows?: number;\n /** Empty state title. @default \"No data\" */\n emptyTitle?: string;\n /** Empty state description. */\n emptyDescription?: string;\n /** Empty state icon. */\n emptyIcon?: ReactNode;\n /** Row click handler. */\n onRowClick?: (row: T) => void;\n /** Controlled sort callback. When provided, skips internal sort. */\n onSortChange?: (key: string, direction: \"asc\" | \"desc\") => void;\n}\n\nconst SortIcon = ({ direction }: { direction: \"asc\" | \"desc\" | null }) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n style={{\n opacity: direction ? 1 : 0.3,\n transform: direction === \"desc\" ? \"rotate(180deg)\" : undefined,\n transition: \"transform 0.15s ease, opacity 0.15s ease\",\n }}\n >\n <path d=\"m5 12 7-7 7 7\" />\n <path d=\"M12 19V5\" />\n </svg>\n);\n\nexport function DataTable<T extends Record<string, unknown>>({\n columns,\n data,\n rowKey = \"id\",\n loading = false,\n loadingRows = 5,\n emptyTitle = \"No data\",\n emptyDescription,\n emptyIcon,\n onRowClick,\n onSortChange,\n}: DataTableProps<T>) {\n const [sortKey, setSortKey] = useState<string | null>(null);\n const [sortDir, setSortDir] = useState<\"asc\" | \"desc\">(\"asc\");\n\n const handleSort = (key: string) => {\n const newDir = sortKey === key && sortDir === \"asc\" ? \"desc\" : \"asc\";\n setSortKey(key);\n setSortDir(newDir);\n onSortChange?.(key, newDir);\n };\n\n const sortedData = useMemo(() => {\n if (onSortChange || !sortKey) return data;\n return [...data].sort((a, b) => {\n const aVal = a[sortKey];\n const bVal = b[sortKey];\n if (aVal === bVal) return 0;\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n const cmp = aVal < bVal ? -1 : 1;\n return sortDir === \"asc\" ? cmp : -cmp;\n });\n }, [data, sortKey, sortDir, onSortChange]);\n\n if (loading) {\n return (\n <Stack gap=\"xs\">\n {Array.from({ length: loadingRows }, (_, i) => (\n <Skeleton key={`skeleton-${i.toString()}`} height={48} radius=\"sm\" />\n ))}\n </Stack>\n );\n }\n\n if (data.length === 0) {\n return <EmptyState title={emptyTitle} description={emptyDescription} icon={emptyIcon} />;\n }\n\n return (\n <Box style={{ overflowX: \"auto\" }}>\n <Table>\n <Table.Thead>\n <Table.Tr>\n {columns.map((col) => (\n <Table.Th key={col.key} w={col.width}>\n {col.sortable ? (\n <UnstyledButton onClick={() => handleSort(col.key)}>\n <Group gap={4} wrap=\"nowrap\">\n <Text size=\"xs\" fw={600} tt=\"uppercase\">\n {col.label}\n </Text>\n <SortIcon direction={sortKey === col.key ? sortDir : null} />\n </Group>\n </UnstyledButton>\n ) : (\n col.label\n )}\n </Table.Th>\n ))}\n </Table.Tr>\n </Table.Thead>\n <Table.Tbody>\n {sortedData.map((row) => {\n const key = String(row[rowKey] ?? sortedData.indexOf(row));\n return (\n <Table.Tr\n key={key}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n className={onRowClick ? \"fairmint-table-row-clickable\" : undefined}\n >\n {columns.map((col) => (\n <Table.Td key={col.key}>\n {col.render ? col.render(row) : String(row[col.key] ?? \"\")}\n </Table.Td>\n ))}\n </Table.Tr>\n );\n })}\n </Table.Tbody>\n </Table>\n </Box>\n );\n}\n"],"names":["jsxs","jsx","useState","useMemo","Stack","Skeleton","EmptyState","Box","Table","UnstyledButton","Group","Text"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.cjs","sources":["../../../../src/components/generic/DataTable/DataTable.tsx"],"sourcesContent":["import { type ReactNode, useMemo, useState } from \"react\";\nimport { Group, Stack, Text, UnstyledButton } from \"../../primitives/layout\";\nimport { Skeleton } from \"../../primitives/Skeleton/Skeleton\";\nimport { Table } from \"../../primitives/Table/Table\";\nimport { EmptyState } from \"../EmptyState/EmptyState\";\n\nexport interface DataTableColumn<T extends Record<string, unknown>> {\n /** Unique key matching a property in the data row. */\n key: string;\n /** Column header label. */\n label: string;\n /** Custom render function for the cell. */\n render?: (row: T) => ReactNode;\n /** Whether this column is sortable. @default false */\n sortable?: boolean;\n /** Column width (CSS value). */\n width?: string | number;\n}\n\nexport interface DataTableProps<T extends Record<string, unknown>> {\n /** Column definitions. */\n columns: DataTableColumn<T>[];\n /** Data rows. */\n data: T[];\n /** Unique key for each row. @default \"id\" */\n rowKey?: string;\n /** Whether data is loading. @default false */\n loading?: boolean;\n /** Number of skeleton rows to show when loading. @default 5 */\n loadingRows?: number;\n /** Empty state title. @default \"No data\" */\n emptyTitle?: string;\n /** Empty state description. */\n emptyDescription?: string;\n /** Empty state icon. */\n emptyIcon?: ReactNode;\n /** Row click handler. */\n onRowClick?: (row: T) => void;\n /** Controlled sort callback. When provided, skips internal sort. */\n onSortChange?: (key: string, direction: \"asc\" | \"desc\") => void;\n}\n\nconst SortIcon = ({ direction }: { direction: \"asc\" | \"desc\" | null }) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n style={{\n opacity: direction ? 1 : 0.3,\n transform: direction === \"desc\" ? \"rotate(180deg)\" : undefined,\n transition: \"transform 0.15s ease, opacity 0.15s ease\",\n }}\n >\n <path d=\"m5 12 7-7 7 7\" />\n <path d=\"M12 19V5\" />\n </svg>\n);\n\nexport function DataTable<T extends Record<string, unknown>>({\n columns,\n data,\n rowKey = \"id\",\n loading = false,\n loadingRows = 5,\n emptyTitle = \"No data\",\n emptyDescription,\n emptyIcon,\n onRowClick,\n onSortChange,\n}: DataTableProps<T>) {\n const [sortKey, setSortKey] = useState<string | null>(null);\n const [sortDir, setSortDir] = useState<\"asc\" | \"desc\">(\"asc\");\n\n const handleSort = (key: string) => {\n const newDir = sortKey === key && sortDir === \"asc\" ? \"desc\" : \"asc\";\n setSortKey(key);\n setSortDir(newDir);\n onSortChange?.(key, newDir);\n };\n\n const sortedData = useMemo(() => {\n if (onSortChange || !sortKey) return data;\n return [...data].sort((a, b) => {\n const aVal = a[sortKey];\n const bVal = b[sortKey];\n if (aVal === bVal) return 0;\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n const cmp = aVal < bVal ? -1 : 1;\n return sortDir === \"asc\" ? cmp : -cmp;\n });\n }, [data, sortKey, sortDir, onSortChange]);\n\n if (loading) {\n return (\n <Stack gap=\"xs\">\n {Array.from({ length: loadingRows }, (_, i) => (\n <Skeleton key={`skeleton-${i.toString()}`} height={48} radius=\"sm\" />\n ))}\n </Stack>\n );\n }\n\n if (data.length === 0) {\n return <EmptyState title={emptyTitle} description={emptyDescription} icon={emptyIcon} />;\n }\n\n return (\n <Table responsive>\n <Table.Thead>\n <Table.Tr>\n {columns.map((col) => (\n <Table.Th key={col.key} w={col.width}>\n {col.sortable ? (\n <UnstyledButton onClick={() => handleSort(col.key)}>\n <Group gap={4} wrap=\"nowrap\">\n <Text size=\"xs\" fw={600} tt=\"uppercase\">\n {col.label}\n </Text>\n <SortIcon direction={sortKey === col.key ? sortDir : null} />\n </Group>\n </UnstyledButton>\n ) : (\n col.label\n )}\n </Table.Th>\n ))}\n </Table.Tr>\n </Table.Thead>\n <Table.Tbody>\n {sortedData.map((row) => {\n const key = String(row[rowKey] ?? sortedData.indexOf(row));\n return (\n <Table.Tr\n key={key}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n className={onRowClick ? \"fairmint-table-row-clickable\" : undefined}\n >\n {columns.map((col) => (\n <Table.Td key={col.key}>\n {col.render ? col.render(row) : String(row[col.key] ?? \"\")}\n </Table.Td>\n ))}\n </Table.Tr>\n );\n })}\n </Table.Tbody>\n </Table>\n );\n}\n"],"names":["jsxs","jsx","useState","useMemo","Stack","Skeleton","EmptyState","Table","UnstyledButton","Group","Text"],"mappings":";;;;;;;;;;;AA0CA,MAAM,WAAW,CAAC,EAAE,UAAA,MAClBA,2BAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACf,eAAY;AAAA,IACZ,OAAO;AAAA,MACL,SAAS,YAAY,IAAI;AAAA,MACzB,WAAW,cAAc,SAAS,mBAAmB;AAAA,MACrD,YAAY;AAAA,IAAA;AAAA,IAGd,UAAA;AAAA,MAAAC,2BAAAA,IAAC,QAAA,EAAK,GAAE,gBAAA,CAAgB;AAAA,MACxBA,2BAAAA,IAAC,QAAA,EAAK,GAAE,WAAA,CAAW;AAAA,IAAA;AAAA,EAAA;AACrB;AAGK,SAAS,UAA6C;AAAA,EAC3D;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT,UAAU;AAAA,EACV,cAAc;AAAA,EACd,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsB;AACpB,QAAM,CAAC,SAAS,UAAU,IAAIC,MAAAA,SAAwB,IAAI;AAC1D,QAAM,CAAC,SAAS,UAAU,IAAIA,MAAAA,SAAyB,KAAK;AAE5D,QAAM,aAAa,CAAC,QAAgB;AAClC,UAAM,SAAS,YAAY,OAAO,YAAY,QAAQ,SAAS;AAC/D,eAAW,GAAG;AACd,eAAW,MAAM;AACjB,mBAAe,KAAK,MAAM;AAAA,EAC5B;AAEA,QAAM,aAAaC,MAAAA,QAAQ,MAAM;AAC/B,QAAI,gBAAgB,CAAC,QAAS,QAAO;AACrC,WAAO,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM;AAC9B,YAAM,OAAO,EAAE,OAAO;AACtB,YAAM,OAAO,EAAE,OAAO;AACtB,UAAI,SAAS,KAAM,QAAO;AAC1B,UAAI,QAAQ,KAAM,QAAO;AACzB,UAAI,QAAQ,KAAM,QAAO;AACzB,YAAM,MAAM,OAAO,OAAO,KAAK;AAC/B,aAAO,YAAY,QAAQ,MAAM,CAAC;AAAA,IACpC,CAAC;AAAA,EACH,GAAG,CAAC,MAAM,SAAS,SAAS,YAAY,CAAC;AAEzC,MAAI,SAAS;AACX,WACEF,2BAAAA,IAACG,OAAAA,OAAA,EAAM,KAAI,MACR,UAAA,MAAM,KAAK,EAAE,QAAQ,YAAA,GAAe,CAAC,GAAG,MACvCH,2BAAAA,IAACI,SAAAA,UAAA,EAA0C,QAAQ,IAAI,QAAO,KAAA,GAA/C,YAAY,EAAE,SAAA,CAAU,EAA4B,CACpE,EAAA,CACH;AAAA,EAEJ;AAEA,MAAI,KAAK,WAAW,GAAG;AACrB,0CAAQC,uBAAA,EAAW,OAAO,YAAY,aAAa,kBAAkB,MAAM,WAAW;AAAA,EACxF;AAEA,SACEN,2BAAAA,KAACO,MAAAA,OAAA,EAAM,YAAU,MACf,UAAA;AAAA,IAAAN,2BAAAA,IAACM,MAAAA,MAAM,OAAN,EACC,UAAAN,+BAACM,MAAAA,MAAM,IAAN,EACE,UAAA,QAAQ,IAAI,CAAC,QACZN,2BAAAA,IAACM,MAAAA,MAAM,IAAN,EAAuB,GAAG,IAAI,OAC5B,UAAA,IAAI,WACHN,+BAACO,eAAAA,gBAAA,EAAe,SAAS,MAAM,WAAW,IAAI,GAAG,GAC/C,UAAAR,2BAAAA,KAACS,MAAAA,OAAA,EAAM,KAAK,GAAG,MAAK,UAClB,UAAA;AAAA,MAAAR,2BAAAA,IAACS,KAAAA,MAAA,EAAK,MAAK,MAAK,IAAI,KAAK,IAAG,aACzB,cAAI,MAAA,CACP;AAAA,qCACC,UAAA,EAAS,WAAW,YAAY,IAAI,MAAM,UAAU,KAAA,CAAM;AAAA,IAAA,GAC7D,EAAA,CACF,IAEA,IAAI,MAAA,GAXO,IAAI,GAanB,CACD,GACH,GACF;AAAA,mCACCH,MAAAA,MAAM,OAAN,EACE,UAAA,WAAW,IAAI,CAAC,QAAQ;AACvB,YAAM,MAAM,OAAO,IAAI,MAAM,KAAK,WAAW,QAAQ,GAAG,CAAC;AACzD,aACEN,2BAAAA;AAAAA,QAACM,MAAAA,MAAM;AAAA,QAAN;AAAA,UAEC,SAAS,aAAa,MAAM,WAAW,GAAG,IAAI;AAAA,UAC9C,WAAW,aAAa,iCAAiC;AAAA,UAExD,UAAA,QAAQ,IAAI,CAAC,uCACXA,MAAAA,MAAM,IAAN,EACE,UAAA,IAAI,SAAS,IAAI,OAAO,GAAG,IAAI,OAAO,IAAI,IAAI,GAAG,KAAK,EAAE,KAD5C,IAAI,GAEnB,CACD;AAAA,QAAA;AAAA,QARI;AAAA,MAAA;AAAA,IAWX,CAAC,EAAA,CACH;AAAA,EAAA,GACF;AAEJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/DataTable/DataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAM1D,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAChE,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D,0BAA0B;IAC1B,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,iBAAiB;IACjB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,yBAAyB;IACzB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,oEAAoE;IACpE,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;CACjE;AAwBD,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3D,OAAO,EACP,IAAI,EACJ,MAAa,EACb,OAAe,EACf,WAAe,EACf,UAAsB,EACtB,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,YAAY,GACb,EAAE,cAAc,CAAC,CAAC,CAAC,2CAkFnB"}
1
+ {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/DataTable/DataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAM1D,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAChE,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D,0BAA0B;IAC1B,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,iBAAiB;IACjB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,yBAAyB;IACzB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,oEAAoE;IACpE,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;CACjE;AAwBD,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3D,OAAO,EACP,IAAI,EACJ,MAAa,EACb,OAAe,EACf,WAAe,EACf,UAAsB,EACtB,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,YAAY,GACb,EAAE,cAAc,CAAC,CAAC,CAAC,2CAgFnB"}
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useState, useMemo } from "react";
3
- import { Stack, Box } from "../../primitives/layout.js";
3
+ import { Stack } from "../../primitives/layout.js";
4
4
  import { Skeleton } from "../../primitives/Skeleton/Skeleton.js";
5
5
  import { Table } from "../../primitives/Table/Table.js";
6
6
  import { EmptyState } from "../EmptyState/EmptyState.js";
@@ -68,7 +68,7 @@ function DataTable({
68
68
  if (data.length === 0) {
69
69
  return /* @__PURE__ */ jsx(EmptyState, { title: emptyTitle, description: emptyDescription, icon: emptyIcon });
70
70
  }
71
- return /* @__PURE__ */ jsx(Box, { style: { overflowX: "auto" }, children: /* @__PURE__ */ jsxs(Table, { children: [
71
+ return /* @__PURE__ */ jsxs(Table, { responsive: true, children: [
72
72
  /* @__PURE__ */ jsx(Table.Thead, { children: /* @__PURE__ */ jsx(Table.Tr, { children: columns.map((col) => /* @__PURE__ */ jsx(Table.Th, { w: col.width, children: col.sortable ? /* @__PURE__ */ jsx(UnstyledButton, { onClick: () => handleSort(col.key), children: /* @__PURE__ */ jsxs(Group, { gap: 4, wrap: "nowrap", children: [
73
73
  /* @__PURE__ */ jsx(Text, { size: "xs", fw: 600, tt: "uppercase", children: col.label }),
74
74
  /* @__PURE__ */ jsx(SortIcon, { direction: sortKey === col.key ? sortDir : null })
@@ -85,7 +85,7 @@ function DataTable({
85
85
  key
86
86
  );
87
87
  }) })
88
- ] }) });
88
+ ] });
89
89
  }
90
90
  export {
91
91
  DataTable
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.js","sources":["../../../../src/components/generic/DataTable/DataTable.tsx"],"sourcesContent":["import { type ReactNode, useMemo, useState } from \"react\";\nimport { Box, Group, Stack, Text, UnstyledButton } from \"../../primitives/layout\";\nimport { Skeleton } from \"../../primitives/Skeleton/Skeleton\";\nimport { Table } from \"../../primitives/Table/Table\";\nimport { EmptyState } from \"../EmptyState/EmptyState\";\n\nexport interface DataTableColumn<T extends Record<string, unknown>> {\n /** Unique key matching a property in the data row. */\n key: string;\n /** Column header label. */\n label: string;\n /** Custom render function for the cell. */\n render?: (row: T) => ReactNode;\n /** Whether this column is sortable. @default false */\n sortable?: boolean;\n /** Column width (CSS value). */\n width?: string | number;\n}\n\nexport interface DataTableProps<T extends Record<string, unknown>> {\n /** Column definitions. */\n columns: DataTableColumn<T>[];\n /** Data rows. */\n data: T[];\n /** Unique key for each row. @default \"id\" */\n rowKey?: string;\n /** Whether data is loading. @default false */\n loading?: boolean;\n /** Number of skeleton rows to show when loading. @default 5 */\n loadingRows?: number;\n /** Empty state title. @default \"No data\" */\n emptyTitle?: string;\n /** Empty state description. */\n emptyDescription?: string;\n /** Empty state icon. */\n emptyIcon?: ReactNode;\n /** Row click handler. */\n onRowClick?: (row: T) => void;\n /** Controlled sort callback. When provided, skips internal sort. */\n onSortChange?: (key: string, direction: \"asc\" | \"desc\") => void;\n}\n\nconst SortIcon = ({ direction }: { direction: \"asc\" | \"desc\" | null }) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n style={{\n opacity: direction ? 1 : 0.3,\n transform: direction === \"desc\" ? \"rotate(180deg)\" : undefined,\n transition: \"transform 0.15s ease, opacity 0.15s ease\",\n }}\n >\n <path d=\"m5 12 7-7 7 7\" />\n <path d=\"M12 19V5\" />\n </svg>\n);\n\nexport function DataTable<T extends Record<string, unknown>>({\n columns,\n data,\n rowKey = \"id\",\n loading = false,\n loadingRows = 5,\n emptyTitle = \"No data\",\n emptyDescription,\n emptyIcon,\n onRowClick,\n onSortChange,\n}: DataTableProps<T>) {\n const [sortKey, setSortKey] = useState<string | null>(null);\n const [sortDir, setSortDir] = useState<\"asc\" | \"desc\">(\"asc\");\n\n const handleSort = (key: string) => {\n const newDir = sortKey === key && sortDir === \"asc\" ? \"desc\" : \"asc\";\n setSortKey(key);\n setSortDir(newDir);\n onSortChange?.(key, newDir);\n };\n\n const sortedData = useMemo(() => {\n if (onSortChange || !sortKey) return data;\n return [...data].sort((a, b) => {\n const aVal = a[sortKey];\n const bVal = b[sortKey];\n if (aVal === bVal) return 0;\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n const cmp = aVal < bVal ? -1 : 1;\n return sortDir === \"asc\" ? cmp : -cmp;\n });\n }, [data, sortKey, sortDir, onSortChange]);\n\n if (loading) {\n return (\n <Stack gap=\"xs\">\n {Array.from({ length: loadingRows }, (_, i) => (\n <Skeleton key={`skeleton-${i.toString()}`} height={48} radius=\"sm\" />\n ))}\n </Stack>\n );\n }\n\n if (data.length === 0) {\n return <EmptyState title={emptyTitle} description={emptyDescription} icon={emptyIcon} />;\n }\n\n return (\n <Box style={{ overflowX: \"auto\" }}>\n <Table>\n <Table.Thead>\n <Table.Tr>\n {columns.map((col) => (\n <Table.Th key={col.key} w={col.width}>\n {col.sortable ? (\n <UnstyledButton onClick={() => handleSort(col.key)}>\n <Group gap={4} wrap=\"nowrap\">\n <Text size=\"xs\" fw={600} tt=\"uppercase\">\n {col.label}\n </Text>\n <SortIcon direction={sortKey === col.key ? sortDir : null} />\n </Group>\n </UnstyledButton>\n ) : (\n col.label\n )}\n </Table.Th>\n ))}\n </Table.Tr>\n </Table.Thead>\n <Table.Tbody>\n {sortedData.map((row) => {\n const key = String(row[rowKey] ?? sortedData.indexOf(row));\n return (\n <Table.Tr\n key={key}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n className={onRowClick ? \"fairmint-table-row-clickable\" : undefined}\n >\n {columns.map((col) => (\n <Table.Td key={col.key}>\n {col.render ? col.render(row) : String(row[col.key] ?? \"\")}\n </Table.Td>\n ))}\n </Table.Tr>\n );\n })}\n </Table.Tbody>\n </Table>\n </Box>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;AA0CA,MAAM,WAAW,CAAC,EAAE,UAAA,MAClB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACf,eAAY;AAAA,IACZ,OAAO;AAAA,MACL,SAAS,YAAY,IAAI;AAAA,MACzB,WAAW,cAAc,SAAS,mBAAmB;AAAA,MACrD,YAAY;AAAA,IAAA;AAAA,IAGd,UAAA;AAAA,MAAA,oBAAC,QAAA,EAAK,GAAE,gBAAA,CAAgB;AAAA,MACxB,oBAAC,QAAA,EAAK,GAAE,WAAA,CAAW;AAAA,IAAA;AAAA,EAAA;AACrB;AAGK,SAAS,UAA6C;AAAA,EAC3D;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT,UAAU;AAAA,EACV,cAAc;AAAA,EACd,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsB;AACpB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAwB,IAAI;AAC1D,QAAM,CAAC,SAAS,UAAU,IAAI,SAAyB,KAAK;AAE5D,QAAM,aAAa,CAAC,QAAgB;AAClC,UAAM,SAAS,YAAY,OAAO,YAAY,QAAQ,SAAS;AAC/D,eAAW,GAAG;AACd,eAAW,MAAM;AACjB,mBAAe,KAAK,MAAM;AAAA,EAC5B;AAEA,QAAM,aAAa,QAAQ,MAAM;AAC/B,QAAI,gBAAgB,CAAC,QAAS,QAAO;AACrC,WAAO,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM;AAC9B,YAAM,OAAO,EAAE,OAAO;AACtB,YAAM,OAAO,EAAE,OAAO;AACtB,UAAI,SAAS,KAAM,QAAO;AAC1B,UAAI,QAAQ,KAAM,QAAO;AACzB,UAAI,QAAQ,KAAM,QAAO;AACzB,YAAM,MAAM,OAAO,OAAO,KAAK;AAC/B,aAAO,YAAY,QAAQ,MAAM,CAAC;AAAA,IACpC,CAAC;AAAA,EACH,GAAG,CAAC,MAAM,SAAS,SAAS,YAAY,CAAC;AAEzC,MAAI,SAAS;AACX,WACE,oBAAC,OAAA,EAAM,KAAI,MACR,UAAA,MAAM,KAAK,EAAE,QAAQ,YAAA,GAAe,CAAC,GAAG,MACvC,oBAAC,UAAA,EAA0C,QAAQ,IAAI,QAAO,KAAA,GAA/C,YAAY,EAAE,SAAA,CAAU,EAA4B,CACpE,EAAA,CACH;AAAA,EAEJ;AAEA,MAAI,KAAK,WAAW,GAAG;AACrB,+BAAQ,YAAA,EAAW,OAAO,YAAY,aAAa,kBAAkB,MAAM,WAAW;AAAA,EACxF;AAEA,SACE,oBAAC,OAAI,OAAO,EAAE,WAAW,OAAA,GACvB,+BAAC,OAAA,EACC,UAAA;AAAA,IAAA,oBAAC,MAAM,OAAN,EACC,UAAA,oBAAC,MAAM,IAAN,EACE,UAAA,QAAQ,IAAI,CAAC,QACZ,oBAAC,MAAM,IAAN,EAAuB,GAAG,IAAI,OAC5B,UAAA,IAAI,WACH,oBAAC,gBAAA,EAAe,SAAS,MAAM,WAAW,IAAI,GAAG,GAC/C,UAAA,qBAAC,OAAA,EAAM,KAAK,GAAG,MAAK,UAClB,UAAA;AAAA,MAAA,oBAAC,MAAA,EAAK,MAAK,MAAK,IAAI,KAAK,IAAG,aACzB,cAAI,MAAA,CACP;AAAA,0BACC,UAAA,EAAS,WAAW,YAAY,IAAI,MAAM,UAAU,KAAA,CAAM;AAAA,IAAA,GAC7D,EAAA,CACF,IAEA,IAAI,MAAA,GAXO,IAAI,GAanB,CACD,GACH,GACF;AAAA,wBACC,MAAM,OAAN,EACE,UAAA,WAAW,IAAI,CAAC,QAAQ;AACvB,YAAM,MAAM,OAAO,IAAI,MAAM,KAAK,WAAW,QAAQ,GAAG,CAAC;AACzD,aACE;AAAA,QAAC,MAAM;AAAA,QAAN;AAAA,UAEC,SAAS,aAAa,MAAM,WAAW,GAAG,IAAI;AAAA,UAC9C,WAAW,aAAa,iCAAiC;AAAA,UAExD,UAAA,QAAQ,IAAI,CAAC,4BACX,MAAM,IAAN,EACE,UAAA,IAAI,SAAS,IAAI,OAAO,GAAG,IAAI,OAAO,IAAI,IAAI,GAAG,KAAK,EAAE,KAD5C,IAAI,GAEnB,CACD;AAAA,QAAA;AAAA,QARI;AAAA,MAAA;AAAA,IAWX,CAAC,EAAA,CACH;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ;"}
1
+ {"version":3,"file":"DataTable.js","sources":["../../../../src/components/generic/DataTable/DataTable.tsx"],"sourcesContent":["import { type ReactNode, useMemo, useState } from \"react\";\nimport { Group, Stack, Text, UnstyledButton } from \"../../primitives/layout\";\nimport { Skeleton } from \"../../primitives/Skeleton/Skeleton\";\nimport { Table } from \"../../primitives/Table/Table\";\nimport { EmptyState } from \"../EmptyState/EmptyState\";\n\nexport interface DataTableColumn<T extends Record<string, unknown>> {\n /** Unique key matching a property in the data row. */\n key: string;\n /** Column header label. */\n label: string;\n /** Custom render function for the cell. */\n render?: (row: T) => ReactNode;\n /** Whether this column is sortable. @default false */\n sortable?: boolean;\n /** Column width (CSS value). */\n width?: string | number;\n}\n\nexport interface DataTableProps<T extends Record<string, unknown>> {\n /** Column definitions. */\n columns: DataTableColumn<T>[];\n /** Data rows. */\n data: T[];\n /** Unique key for each row. @default \"id\" */\n rowKey?: string;\n /** Whether data is loading. @default false */\n loading?: boolean;\n /** Number of skeleton rows to show when loading. @default 5 */\n loadingRows?: number;\n /** Empty state title. @default \"No data\" */\n emptyTitle?: string;\n /** Empty state description. */\n emptyDescription?: string;\n /** Empty state icon. */\n emptyIcon?: ReactNode;\n /** Row click handler. */\n onRowClick?: (row: T) => void;\n /** Controlled sort callback. When provided, skips internal sort. */\n onSortChange?: (key: string, direction: \"asc\" | \"desc\") => void;\n}\n\nconst SortIcon = ({ direction }: { direction: \"asc\" | \"desc\" | null }) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n style={{\n opacity: direction ? 1 : 0.3,\n transform: direction === \"desc\" ? \"rotate(180deg)\" : undefined,\n transition: \"transform 0.15s ease, opacity 0.15s ease\",\n }}\n >\n <path d=\"m5 12 7-7 7 7\" />\n <path d=\"M12 19V5\" />\n </svg>\n);\n\nexport function DataTable<T extends Record<string, unknown>>({\n columns,\n data,\n rowKey = \"id\",\n loading = false,\n loadingRows = 5,\n emptyTitle = \"No data\",\n emptyDescription,\n emptyIcon,\n onRowClick,\n onSortChange,\n}: DataTableProps<T>) {\n const [sortKey, setSortKey] = useState<string | null>(null);\n const [sortDir, setSortDir] = useState<\"asc\" | \"desc\">(\"asc\");\n\n const handleSort = (key: string) => {\n const newDir = sortKey === key && sortDir === \"asc\" ? \"desc\" : \"asc\";\n setSortKey(key);\n setSortDir(newDir);\n onSortChange?.(key, newDir);\n };\n\n const sortedData = useMemo(() => {\n if (onSortChange || !sortKey) return data;\n return [...data].sort((a, b) => {\n const aVal = a[sortKey];\n const bVal = b[sortKey];\n if (aVal === bVal) return 0;\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n const cmp = aVal < bVal ? -1 : 1;\n return sortDir === \"asc\" ? cmp : -cmp;\n });\n }, [data, sortKey, sortDir, onSortChange]);\n\n if (loading) {\n return (\n <Stack gap=\"xs\">\n {Array.from({ length: loadingRows }, (_, i) => (\n <Skeleton key={`skeleton-${i.toString()}`} height={48} radius=\"sm\" />\n ))}\n </Stack>\n );\n }\n\n if (data.length === 0) {\n return <EmptyState title={emptyTitle} description={emptyDescription} icon={emptyIcon} />;\n }\n\n return (\n <Table responsive>\n <Table.Thead>\n <Table.Tr>\n {columns.map((col) => (\n <Table.Th key={col.key} w={col.width}>\n {col.sortable ? (\n <UnstyledButton onClick={() => handleSort(col.key)}>\n <Group gap={4} wrap=\"nowrap\">\n <Text size=\"xs\" fw={600} tt=\"uppercase\">\n {col.label}\n </Text>\n <SortIcon direction={sortKey === col.key ? sortDir : null} />\n </Group>\n </UnstyledButton>\n ) : (\n col.label\n )}\n </Table.Th>\n ))}\n </Table.Tr>\n </Table.Thead>\n <Table.Tbody>\n {sortedData.map((row) => {\n const key = String(row[rowKey] ?? sortedData.indexOf(row));\n return (\n <Table.Tr\n key={key}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n className={onRowClick ? \"fairmint-table-row-clickable\" : undefined}\n >\n {columns.map((col) => (\n <Table.Td key={col.key}>\n {col.render ? col.render(row) : String(row[col.key] ?? \"\")}\n </Table.Td>\n ))}\n </Table.Tr>\n );\n })}\n </Table.Tbody>\n </Table>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -10,19 +10,7 @@ function DetailDrawer({
10
10
  size = "md",
11
11
  ...rest
12
12
  }) {
13
- return /* @__PURE__ */ jsxRuntime.jsx(
14
- Drawer.Drawer,
15
- {
16
- opened,
17
- onClose,
18
- title,
19
- position: "right",
20
- size,
21
- p: "lg",
22
- ...rest,
23
- children
24
- }
25
- );
13
+ return /* @__PURE__ */ jsxRuntime.jsx(Drawer.Drawer, { opened, onClose, title, position: "right", size, ...rest, children });
26
14
  }
27
15
  exports.DetailDrawer = DetailDrawer;
28
16
  //# sourceMappingURL=DetailDrawer.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DetailDrawer.cjs","sources":["../../../../src/components/generic/DetailDrawer/DetailDrawer.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Drawer, type DrawerProps } from \"../../primitives/Drawer/Drawer\";\n\nexport interface DetailDrawerProps extends Omit<DrawerProps, \"title\"> {\n /** Drawer title shown in the header. Accepts ReactNode for flexibility (layout component). */\n title: ReactNode;\n /** Whether the drawer is open. */\n opened: boolean;\n /** Close callback. */\n onClose: () => void;\n /** Drawer content. */\n children: ReactNode;\n /** Drawer width. @default \"md\" */\n size?: DrawerProps[\"size\"];\n}\n\nexport function DetailDrawer({\n title,\n opened,\n onClose,\n children,\n size = \"md\",\n ...rest\n}: DetailDrawerProps) {\n return (\n <Drawer\n opened={opened}\n onClose={onClose}\n title={title}\n position=\"right\"\n size={size}\n p=\"lg\"\n {...rest}\n >\n {children}\n </Drawer>\n );\n}\n"],"names":["jsx","Drawer"],"mappings":";;;;AAgBO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,GAAsB;AACpB,SACEA,2BAAAA;AAAAA,IAACC,OAAAA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAS;AAAA,MACT;AAAA,MACA,GAAE;AAAA,MACD,GAAG;AAAA,MAEH;AAAA,IAAA;AAAA,EAAA;AAGP;;"}
1
+ {"version":3,"file":"DetailDrawer.cjs","sources":["../../../../src/components/generic/DetailDrawer/DetailDrawer.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Drawer, type DrawerProps } from \"../../primitives/Drawer/Drawer\";\n\nexport interface DetailDrawerProps extends Omit<DrawerProps, \"title\"> {\n /** Drawer title shown in the header. Accepts ReactNode for flexibility (layout component). */\n title: ReactNode;\n /** Whether the drawer is open. */\n opened: boolean;\n /** Close callback. */\n onClose: () => void;\n /** Drawer content. */\n children: ReactNode;\n /** Drawer width. @default \"md\" */\n size?: DrawerProps[\"size\"];\n}\n\nexport function DetailDrawer({\n title,\n opened,\n onClose,\n children,\n size = \"md\",\n ...rest\n}: DetailDrawerProps) {\n return (\n <Drawer opened={opened} onClose={onClose} title={title} position=\"right\" size={size} {...rest}>\n {children}\n </Drawer>\n );\n}\n"],"names":["jsx","Drawer"],"mappings":";;;;AAgBO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,GAAsB;AACpB,SACEA,+BAACC,OAAAA,QAAA,EAAO,QAAgB,SAAkB,OAAc,UAAS,SAAQ,MAAa,GAAG,MACtF,SAAA,CACH;AAEJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DetailDrawer.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/DetailDrawer/DetailDrawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE1E,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;IACnE,8FAA8F;IAC9F,KAAK,EAAE,SAAS,CAAC;IACjB,kCAAkC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,sBAAsB;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,sBAAsB;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,kCAAkC;IAClC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,MAAM,EACN,OAAO,EACP,QAAQ,EACR,IAAW,EACX,GAAG,IAAI,EACR,EAAE,iBAAiB,2CAcnB"}
1
+ {"version":3,"file":"DetailDrawer.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/DetailDrawer/DetailDrawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE1E,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;IACnE,8FAA8F;IAC9F,KAAK,EAAE,SAAS,CAAC;IACjB,kCAAkC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,sBAAsB;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,sBAAsB;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,kCAAkC;IAClC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,MAAM,EACN,OAAO,EACP,QAAQ,EACR,IAAW,EACX,GAAG,IAAI,EACR,EAAE,iBAAiB,2CAMnB"}
@@ -8,19 +8,7 @@ function DetailDrawer({
8
8
  size = "md",
9
9
  ...rest
10
10
  }) {
11
- return /* @__PURE__ */ jsx(
12
- Drawer,
13
- {
14
- opened,
15
- onClose,
16
- title,
17
- position: "right",
18
- size,
19
- p: "lg",
20
- ...rest,
21
- children
22
- }
23
- );
11
+ return /* @__PURE__ */ jsx(Drawer, { opened, onClose, title, position: "right", size, ...rest, children });
24
12
  }
25
13
  export {
26
14
  DetailDrawer
@@ -1 +1 @@
1
- {"version":3,"file":"DetailDrawer.js","sources":["../../../../src/components/generic/DetailDrawer/DetailDrawer.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Drawer, type DrawerProps } from \"../../primitives/Drawer/Drawer\";\n\nexport interface DetailDrawerProps extends Omit<DrawerProps, \"title\"> {\n /** Drawer title shown in the header. Accepts ReactNode for flexibility (layout component). */\n title: ReactNode;\n /** Whether the drawer is open. */\n opened: boolean;\n /** Close callback. */\n onClose: () => void;\n /** Drawer content. */\n children: ReactNode;\n /** Drawer width. @default \"md\" */\n size?: DrawerProps[\"size\"];\n}\n\nexport function DetailDrawer({\n title,\n opened,\n onClose,\n children,\n size = \"md\",\n ...rest\n}: DetailDrawerProps) {\n return (\n <Drawer\n opened={opened}\n onClose={onClose}\n title={title}\n position=\"right\"\n size={size}\n p=\"lg\"\n {...rest}\n >\n {children}\n </Drawer>\n );\n}\n"],"names":[],"mappings":";;AAgBO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,GAAsB;AACpB,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAS;AAAA,MACT;AAAA,MACA,GAAE;AAAA,MACD,GAAG;AAAA,MAEH;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"DetailDrawer.js","sources":["../../../../src/components/generic/DetailDrawer/DetailDrawer.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Drawer, type DrawerProps } from \"../../primitives/Drawer/Drawer\";\n\nexport interface DetailDrawerProps extends Omit<DrawerProps, \"title\"> {\n /** Drawer title shown in the header. Accepts ReactNode for flexibility (layout component). */\n title: ReactNode;\n /** Whether the drawer is open. */\n opened: boolean;\n /** Close callback. */\n onClose: () => void;\n /** Drawer content. */\n children: ReactNode;\n /** Drawer width. @default \"md\" */\n size?: DrawerProps[\"size\"];\n}\n\nexport function DetailDrawer({\n title,\n opened,\n onClose,\n children,\n size = \"md\",\n ...rest\n}: DetailDrawerProps) {\n return (\n <Drawer opened={opened} onClose={onClose} title={title} position=\"right\" size={size} {...rest}>\n {children}\n </Drawer>\n );\n}\n"],"names":[],"mappings":";;AAgBO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,GAAsB;AACpB,SACE,oBAAC,QAAA,EAAO,QAAgB,SAAkB,OAAc,UAAS,SAAQ,MAAa,GAAG,MACtF,SAAA,CACH;AAEJ;"}
@@ -6,6 +6,7 @@ const layout = require("../../primitives/layout.cjs");
6
6
  const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
7
7
  const ThemeIcon = require("../../../node_modules/@mantine/core/esm/components/ThemeIcon/ThemeIcon.cjs");
8
8
  const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
9
+ const responsiveTypography = require("../../../theme/responsiveTypography.cjs");
9
10
  const DefaultCheckIcon = () => /* @__PURE__ */ jsxRuntime.jsx(
10
11
  "svg",
11
12
  {
@@ -59,7 +60,7 @@ function StepCard({
59
60
  }
60
61
  ),
61
62
  /* @__PURE__ */ jsxRuntime.jsxs(layout.Box, { style: { minWidth: 0, flex: 1 }, children: [
62
- /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { fw: 700, fz: { base: 17, sm: 19 }, c: index.neutralColors[900], lh: 1.3, children: title }),
63
+ /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { fw: 700, fz: responsiveTypography.responsiveTypography.cardTitle, c: index.neutralColors[900], lh: 1.3, children: title }),
63
64
  description && /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { size: "sm", c: index.neutralColors[600], lh: 1.5, mt: 4, children: description })
64
65
  ] })
65
66
  ] }),
@@ -1 +1 @@
1
- {"version":3,"file":"StepCard.cjs","sources":["../../../../src/components/generic/StepCard/StepCard.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { brandColors, neutralColors } from \"../../../theme\";\nimport { Box, Group, Paper, Stack, Text, ThemeIcon } from \"../../primitives/layout\";\n\n/** Default check glyph shown when `done === true`. Inline SVG — check only, no circle outline. */\nconst DefaultCheckIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m5 13 4 4 10-10\" />\n </svg>\n);\n\nexport interface StepCardProps {\n /** 1-indexed step number shown in the indicator when not done. */\n index: number;\n /** Step title. */\n title: string;\n /** Optional supporting text below the title. */\n description?: string;\n /** When true, the indicator flips from the number to a check glyph. */\n done?: boolean;\n /**\n * Override the icon shown when `done === true`. Defaults to a check-only\n * glyph. Accept-as-ReactNode so consumers don't need to import an icon library.\n */\n doneIcon?: ReactNode;\n /** Step content rendered below the header. */\n children: ReactNode;\n}\n\n/**\n * Numbered step card used in multi-section wizards and form flows.\n *\n * The numbered indicator on the left flips to a check when the step is\n * marked done — a quiet progress signal that doesn't compete with the\n * right-column summary or page-level progress UI. Each step sits in\n * its own `Paper` for clear visual separation.\n *\n * The header indicator is the focal point; consumers control the body\n * via `children`.\n */\nexport function StepCard({\n index,\n title,\n description,\n done = false,\n doneIcon,\n children,\n}: StepCardProps) {\n return (\n <Paper\n radius=\"lg\"\n p={{ base: \"md\", sm: \"xl\" }}\n style={{\n background: \"white\",\n border: `1px solid ${neutralColors[200]}`,\n }}\n >\n <Stack gap=\"md\">\n <Group gap=\"md\" align=\"flex-start\" wrap=\"nowrap\">\n <ThemeIcon\n size={32}\n radius=\"md\"\n variant={done ? \"filled\" : \"light\"}\n color={done ? \"indigo\" : \"gray\"}\n aria-label={done ? `Step ${index} complete` : `Step ${index}`}\n style={{\n flexShrink: 0,\n pointerEvents: \"none\",\n background: done ? brandColors.indigo : neutralColors[100],\n color: done ? \"white\" : neutralColors[600],\n border: done ? undefined : `1px solid ${neutralColors[200]}`,\n }}\n >\n {done ? (\n (doneIcon ?? <DefaultCheckIcon />)\n ) : (\n <Text fw={700} fz={14}>\n {index}\n </Text>\n )}\n </ThemeIcon>\n <Box style={{ minWidth: 0, flex: 1 }}>\n <Text fw={700} fz={{ base: 17, sm: 19 }} c={neutralColors[900]} lh={1.3}>\n {title}\n </Text>\n {description && (\n <Text size=\"sm\" c={neutralColors[600]} lh={1.5} mt={4}>\n {description}\n </Text>\n )}\n </Box>\n </Group>\n <Box pl={{ base: 0, sm: 48 }}>{children}</Box>\n </Stack>\n </Paper>\n );\n}\n"],"names":["jsx","index","Paper","neutralColors","jsxs","Stack","Group","ThemeIcon","brandColors","Text","Box"],"mappings":";;;;;;;;AAKA,MAAM,mBAAmB,MACvBA,2BAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACf,eAAY;AAAA,IAEZ,UAAAA,2BAAAA,IAAC,QAAA,EAAK,GAAE,kBAAA,CAAkB;AAAA,EAAA;AAC5B;AAgCK,SAAS,SAAS;AAAA,EAAA,OACvBC;AAAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAAkB;AAChB,SACED,2BAAAA;AAAAA,IAACE,OAAAA;AAAAA,IAAA;AAAA,MACC,QAAO;AAAA,MACP,GAAG,EAAE,MAAM,MAAM,IAAI,KAAA;AAAA,MACrB,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,QAAQ,aAAaC,MAAAA,cAAc,GAAG,CAAC;AAAA,MAAA;AAAA,MAGzC,UAAAC,2BAAAA,KAACC,OAAAA,OAAA,EAAM,KAAI,MACT,UAAA;AAAA,QAAAD,gCAACE,MAAAA,SAAM,KAAI,MAAK,OAAM,cAAa,MAAK,UACtC,UAAA;AAAA,UAAAN,2BAAAA;AAAAA,YAACO,UAAAA;AAAAA,YAAA;AAAA,cACC,MAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAS,OAAO,WAAW;AAAA,cAC3B,OAAO,OAAO,WAAW;AAAA,cACzB,cAAY,OAAO,QAAQN,OAAK,cAAc,QAAQA,OAAK;AAAA,cAC3D,OAAO;AAAA,gBACL,YAAY;AAAA,gBACZ,eAAe;AAAA,gBACf,YAAY,OAAOO,MAAAA,YAAY,SAASL,MAAAA,cAAc,GAAG;AAAA,gBACzD,OAAO,OAAO,UAAUA,MAAAA,cAAc,GAAG;AAAA,gBACzC,QAAQ,OAAO,SAAY,aAAaA,MAAAA,cAAc,GAAG,CAAC;AAAA,cAAA;AAAA,cAG3D,UAAA,OACE,YAAYH,2BAAAA,IAAC,kBAAA,CAAA,CAAiB,IAE/BA,2BAAAA,IAACS,KAAAA,MAAA,EAAK,IAAI,KAAK,IAAI,IAChB,UAAAR,QAAA,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJG,gCAACM,OAAAA,OAAI,OAAO,EAAE,UAAU,GAAG,MAAM,KAC/B,UAAA;AAAA,YAAAV,+BAACS,KAAAA,QAAK,IAAI,KAAK,IAAI,EAAE,MAAM,IAAI,IAAI,GAAA,GAAM,GAAGN,MAAAA,cAAc,GAAG,GAAG,IAAI,KACjE,UAAA,OACH;AAAA,YACC,eACCH,2BAAAA,IAACS,KAAAA,MAAA,EAAK,MAAK,MAAK,GAAGN,MAAAA,cAAc,GAAG,GAAG,IAAI,KAAK,IAAI,GACjD,UAAA,YAAA,CACH;AAAA,UAAA,EAAA,CAEJ;AAAA,QAAA,GACF;AAAA,QACAH,+BAACU,OAAAA,OAAI,IAAI,EAAE,MAAM,GAAG,IAAI,GAAA,GAAO,SAAA,CAAS;AAAA,MAAA,EAAA,CAC1C;AAAA,IAAA;AAAA,EAAA;AAGN;;"}
1
+ {"version":3,"file":"StepCard.cjs","sources":["../../../../src/components/generic/StepCard/StepCard.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { brandColors, neutralColors, responsiveTypography } from \"../../../theme\";\nimport { Box, Group, Paper, Stack, Text, ThemeIcon } from \"../../primitives/layout\";\n\n/** Default check glyph shown when `done === true`. Inline SVG — check only, no circle outline. */\nconst DefaultCheckIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m5 13 4 4 10-10\" />\n </svg>\n);\n\nexport interface StepCardProps {\n /** 1-indexed step number shown in the indicator when not done. */\n index: number;\n /** Step title. */\n title: string;\n /** Optional supporting text below the title. */\n description?: string;\n /** When true, the indicator flips from the number to a check glyph. */\n done?: boolean;\n /**\n * Override the icon shown when `done === true`. Defaults to a check-only\n * glyph. Accept-as-ReactNode so consumers don't need to import an icon library.\n */\n doneIcon?: ReactNode;\n /** Step content rendered below the header. */\n children: ReactNode;\n}\n\n/**\n * Numbered step card used in multi-section wizards and form flows.\n *\n * The numbered indicator on the left flips to a check when the step is\n * marked done — a quiet progress signal that doesn't compete with the\n * right-column summary or page-level progress UI. Each step sits in\n * its own `Paper` for clear visual separation.\n *\n * The header indicator is the focal point; consumers control the body\n * via `children`.\n */\nexport function StepCard({\n index,\n title,\n description,\n done = false,\n doneIcon,\n children,\n}: StepCardProps) {\n return (\n <Paper\n radius=\"lg\"\n p={{ base: \"md\", sm: \"xl\" }}\n style={{\n background: \"white\",\n border: `1px solid ${neutralColors[200]}`,\n }}\n >\n <Stack gap=\"md\">\n <Group gap=\"md\" align=\"flex-start\" wrap=\"nowrap\">\n <ThemeIcon\n size={32}\n radius=\"md\"\n variant={done ? \"filled\" : \"light\"}\n color={done ? \"indigo\" : \"gray\"}\n aria-label={done ? `Step ${index} complete` : `Step ${index}`}\n style={{\n flexShrink: 0,\n pointerEvents: \"none\",\n background: done ? brandColors.indigo : neutralColors[100],\n color: done ? \"white\" : neutralColors[600],\n border: done ? undefined : `1px solid ${neutralColors[200]}`,\n }}\n >\n {done ? (\n (doneIcon ?? <DefaultCheckIcon />)\n ) : (\n <Text fw={700} fz={14}>\n {index}\n </Text>\n )}\n </ThemeIcon>\n <Box style={{ minWidth: 0, flex: 1 }}>\n <Text fw={700} fz={responsiveTypography.cardTitle} c={neutralColors[900]} lh={1.3}>\n {title}\n </Text>\n {description && (\n <Text size=\"sm\" c={neutralColors[600]} lh={1.5} mt={4}>\n {description}\n </Text>\n )}\n </Box>\n </Group>\n <Box pl={{ base: 0, sm: 48 }}>{children}</Box>\n </Stack>\n </Paper>\n );\n}\n"],"names":["jsx","index","Paper","neutralColors","jsxs","Stack","Group","ThemeIcon","brandColors","Text","Box","responsiveTypography"],"mappings":";;;;;;;;;AAKA,MAAM,mBAAmB,MACvBA,2BAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACf,eAAY;AAAA,IAEZ,UAAAA,2BAAAA,IAAC,QAAA,EAAK,GAAE,kBAAA,CAAkB;AAAA,EAAA;AAC5B;AAgCK,SAAS,SAAS;AAAA,EAAA,OACvBC;AAAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAAkB;AAChB,SACED,2BAAAA;AAAAA,IAACE,OAAAA;AAAAA,IAAA;AAAA,MACC,QAAO;AAAA,MACP,GAAG,EAAE,MAAM,MAAM,IAAI,KAAA;AAAA,MACrB,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,QAAQ,aAAaC,MAAAA,cAAc,GAAG,CAAC;AAAA,MAAA;AAAA,MAGzC,UAAAC,2BAAAA,KAACC,OAAAA,OAAA,EAAM,KAAI,MACT,UAAA;AAAA,QAAAD,gCAACE,MAAAA,SAAM,KAAI,MAAK,OAAM,cAAa,MAAK,UACtC,UAAA;AAAA,UAAAN,2BAAAA;AAAAA,YAACO,UAAAA;AAAAA,YAAA;AAAA,cACC,MAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAS,OAAO,WAAW;AAAA,cAC3B,OAAO,OAAO,WAAW;AAAA,cACzB,cAAY,OAAO,QAAQN,OAAK,cAAc,QAAQA,OAAK;AAAA,cAC3D,OAAO;AAAA,gBACL,YAAY;AAAA,gBACZ,eAAe;AAAA,gBACf,YAAY,OAAOO,MAAAA,YAAY,SAASL,MAAAA,cAAc,GAAG;AAAA,gBACzD,OAAO,OAAO,UAAUA,MAAAA,cAAc,GAAG;AAAA,gBACzC,QAAQ,OAAO,SAAY,aAAaA,MAAAA,cAAc,GAAG,CAAC;AAAA,cAAA;AAAA,cAG3D,UAAA,OACE,YAAYH,2BAAAA,IAAC,kBAAA,CAAA,CAAiB,IAE/BA,2BAAAA,IAACS,KAAAA,MAAA,EAAK,IAAI,KAAK,IAAI,IAChB,UAAAR,QAAA,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJG,gCAACM,OAAAA,OAAI,OAAO,EAAE,UAAU,GAAG,MAAM,KAC/B,UAAA;AAAA,YAAAV,2BAAAA,IAACS,KAAAA,MAAA,EAAK,IAAI,KAAK,IAAIE,qBAAAA,qBAAqB,WAAW,GAAGR,MAAAA,cAAc,GAAG,GAAG,IAAI,KAC3E,UAAA,OACH;AAAA,YACC,eACCH,2BAAAA,IAACS,KAAAA,MAAA,EAAK,MAAK,MAAK,GAAGN,MAAAA,cAAc,GAAG,GAAG,IAAI,KAAK,IAAI,GACjD,UAAA,YAAA,CACH;AAAA,UAAA,EAAA,CAEJ;AAAA,QAAA,GACF;AAAA,QACAH,+BAACU,OAAAA,OAAI,IAAI,EAAE,MAAM,GAAG,IAAI,GAAA,GAAO,SAAA,CAAS;AAAA,MAAA,EAAA,CAC1C;AAAA,IAAA;AAAA,EAAA;AAGN;;"}
@@ -4,6 +4,7 @@ import { Paper, Stack, Box } from "../../primitives/layout.js";
4
4
  import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
5
5
  import { ThemeIcon } from "../../../node_modules/@mantine/core/esm/components/ThemeIcon/ThemeIcon.js";
6
6
  import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
7
+ import { responsiveTypography } from "../../../theme/responsiveTypography.js";
7
8
  const DefaultCheckIcon = () => /* @__PURE__ */ jsx(
8
9
  "svg",
9
10
  {
@@ -57,7 +58,7 @@ function StepCard({
57
58
  }
58
59
  ),
59
60
  /* @__PURE__ */ jsxs(Box, { style: { minWidth: 0, flex: 1 }, children: [
60
- /* @__PURE__ */ jsx(Text, { fw: 700, fz: { base: 17, sm: 19 }, c: neutralColors[900], lh: 1.3, children: title }),
61
+ /* @__PURE__ */ jsx(Text, { fw: 700, fz: responsiveTypography.cardTitle, c: neutralColors[900], lh: 1.3, children: title }),
61
62
  description && /* @__PURE__ */ jsx(Text, { size: "sm", c: neutralColors[600], lh: 1.5, mt: 4, children: description })
62
63
  ] })
63
64
  ] }),
@@ -1 +1 @@
1
- {"version":3,"file":"StepCard.js","sources":["../../../../src/components/generic/StepCard/StepCard.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { brandColors, neutralColors } from \"../../../theme\";\nimport { Box, Group, Paper, Stack, Text, ThemeIcon } from \"../../primitives/layout\";\n\n/** Default check glyph shown when `done === true`. Inline SVG — check only, no circle outline. */\nconst DefaultCheckIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m5 13 4 4 10-10\" />\n </svg>\n);\n\nexport interface StepCardProps {\n /** 1-indexed step number shown in the indicator when not done. */\n index: number;\n /** Step title. */\n title: string;\n /** Optional supporting text below the title. */\n description?: string;\n /** When true, the indicator flips from the number to a check glyph. */\n done?: boolean;\n /**\n * Override the icon shown when `done === true`. Defaults to a check-only\n * glyph. Accept-as-ReactNode so consumers don't need to import an icon library.\n */\n doneIcon?: ReactNode;\n /** Step content rendered below the header. */\n children: ReactNode;\n}\n\n/**\n * Numbered step card used in multi-section wizards and form flows.\n *\n * The numbered indicator on the left flips to a check when the step is\n * marked done — a quiet progress signal that doesn't compete with the\n * right-column summary or page-level progress UI. Each step sits in\n * its own `Paper` for clear visual separation.\n *\n * The header indicator is the focal point; consumers control the body\n * via `children`.\n */\nexport function StepCard({\n index,\n title,\n description,\n done = false,\n doneIcon,\n children,\n}: StepCardProps) {\n return (\n <Paper\n radius=\"lg\"\n p={{ base: \"md\", sm: \"xl\" }}\n style={{\n background: \"white\",\n border: `1px solid ${neutralColors[200]}`,\n }}\n >\n <Stack gap=\"md\">\n <Group gap=\"md\" align=\"flex-start\" wrap=\"nowrap\">\n <ThemeIcon\n size={32}\n radius=\"md\"\n variant={done ? \"filled\" : \"light\"}\n color={done ? \"indigo\" : \"gray\"}\n aria-label={done ? `Step ${index} complete` : `Step ${index}`}\n style={{\n flexShrink: 0,\n pointerEvents: \"none\",\n background: done ? brandColors.indigo : neutralColors[100],\n color: done ? \"white\" : neutralColors[600],\n border: done ? undefined : `1px solid ${neutralColors[200]}`,\n }}\n >\n {done ? (\n (doneIcon ?? <DefaultCheckIcon />)\n ) : (\n <Text fw={700} fz={14}>\n {index}\n </Text>\n )}\n </ThemeIcon>\n <Box style={{ minWidth: 0, flex: 1 }}>\n <Text fw={700} fz={{ base: 17, sm: 19 }} c={neutralColors[900]} lh={1.3}>\n {title}\n </Text>\n {description && (\n <Text size=\"sm\" c={neutralColors[600]} lh={1.5} mt={4}>\n {description}\n </Text>\n )}\n </Box>\n </Group>\n <Box pl={{ base: 0, sm: 48 }}>{children}</Box>\n </Stack>\n </Paper>\n );\n}\n"],"names":[],"mappings":";;;;;;AAKA,MAAM,mBAAmB,MACvB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACf,eAAY;AAAA,IAEZ,UAAA,oBAAC,QAAA,EAAK,GAAE,kBAAA,CAAkB;AAAA,EAAA;AAC5B;AAgCK,SAAS,SAAS;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAAkB;AAChB,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,QAAO;AAAA,MACP,GAAG,EAAE,MAAM,MAAM,IAAI,KAAA;AAAA,MACrB,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,QAAQ,aAAa,cAAc,GAAG,CAAC;AAAA,MAAA;AAAA,MAGzC,UAAA,qBAAC,OAAA,EAAM,KAAI,MACT,UAAA;AAAA,QAAA,qBAAC,SAAM,KAAI,MAAK,OAAM,cAAa,MAAK,UACtC,UAAA;AAAA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAS,OAAO,WAAW;AAAA,cAC3B,OAAO,OAAO,WAAW;AAAA,cACzB,cAAY,OAAO,QAAQ,KAAK,cAAc,QAAQ,KAAK;AAAA,cAC3D,OAAO;AAAA,gBACL,YAAY;AAAA,gBACZ,eAAe;AAAA,gBACf,YAAY,OAAO,YAAY,SAAS,cAAc,GAAG;AAAA,gBACzD,OAAO,OAAO,UAAU,cAAc,GAAG;AAAA,gBACzC,QAAQ,OAAO,SAAY,aAAa,cAAc,GAAG,CAAC;AAAA,cAAA;AAAA,cAG3D,UAAA,OACE,YAAY,oBAAC,kBAAA,CAAA,CAAiB,IAE/B,oBAAC,MAAA,EAAK,IAAI,KAAK,IAAI,IAChB,UAAA,MAAA,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJ,qBAAC,OAAI,OAAO,EAAE,UAAU,GAAG,MAAM,KAC/B,UAAA;AAAA,YAAA,oBAAC,QAAK,IAAI,KAAK,IAAI,EAAE,MAAM,IAAI,IAAI,GAAA,GAAM,GAAG,cAAc,GAAG,GAAG,IAAI,KACjE,UAAA,OACH;AAAA,YACC,eACC,oBAAC,MAAA,EAAK,MAAK,MAAK,GAAG,cAAc,GAAG,GAAG,IAAI,KAAK,IAAI,GACjD,UAAA,YAAA,CACH;AAAA,UAAA,EAAA,CAEJ;AAAA,QAAA,GACF;AAAA,QACA,oBAAC,OAAI,IAAI,EAAE,MAAM,GAAG,IAAI,GAAA,GAAO,SAAA,CAAS;AAAA,MAAA,EAAA,CAC1C;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"StepCard.js","sources":["../../../../src/components/generic/StepCard/StepCard.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { brandColors, neutralColors, responsiveTypography } from \"../../../theme\";\nimport { Box, Group, Paper, Stack, Text, ThemeIcon } from \"../../primitives/layout\";\n\n/** Default check glyph shown when `done === true`. Inline SVG — check only, no circle outline. */\nconst DefaultCheckIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m5 13 4 4 10-10\" />\n </svg>\n);\n\nexport interface StepCardProps {\n /** 1-indexed step number shown in the indicator when not done. */\n index: number;\n /** Step title. */\n title: string;\n /** Optional supporting text below the title. */\n description?: string;\n /** When true, the indicator flips from the number to a check glyph. */\n done?: boolean;\n /**\n * Override the icon shown when `done === true`. Defaults to a check-only\n * glyph. Accept-as-ReactNode so consumers don't need to import an icon library.\n */\n doneIcon?: ReactNode;\n /** Step content rendered below the header. */\n children: ReactNode;\n}\n\n/**\n * Numbered step card used in multi-section wizards and form flows.\n *\n * The numbered indicator on the left flips to a check when the step is\n * marked done — a quiet progress signal that doesn't compete with the\n * right-column summary or page-level progress UI. Each step sits in\n * its own `Paper` for clear visual separation.\n *\n * The header indicator is the focal point; consumers control the body\n * via `children`.\n */\nexport function StepCard({\n index,\n title,\n description,\n done = false,\n doneIcon,\n children,\n}: StepCardProps) {\n return (\n <Paper\n radius=\"lg\"\n p={{ base: \"md\", sm: \"xl\" }}\n style={{\n background: \"white\",\n border: `1px solid ${neutralColors[200]}`,\n }}\n >\n <Stack gap=\"md\">\n <Group gap=\"md\" align=\"flex-start\" wrap=\"nowrap\">\n <ThemeIcon\n size={32}\n radius=\"md\"\n variant={done ? \"filled\" : \"light\"}\n color={done ? \"indigo\" : \"gray\"}\n aria-label={done ? `Step ${index} complete` : `Step ${index}`}\n style={{\n flexShrink: 0,\n pointerEvents: \"none\",\n background: done ? brandColors.indigo : neutralColors[100],\n color: done ? \"white\" : neutralColors[600],\n border: done ? undefined : `1px solid ${neutralColors[200]}`,\n }}\n >\n {done ? (\n (doneIcon ?? <DefaultCheckIcon />)\n ) : (\n <Text fw={700} fz={14}>\n {index}\n </Text>\n )}\n </ThemeIcon>\n <Box style={{ minWidth: 0, flex: 1 }}>\n <Text fw={700} fz={responsiveTypography.cardTitle} c={neutralColors[900]} lh={1.3}>\n {title}\n </Text>\n {description && (\n <Text size=\"sm\" c={neutralColors[600]} lh={1.5} mt={4}>\n {description}\n </Text>\n )}\n </Box>\n </Group>\n <Box pl={{ base: 0, sm: 48 }}>{children}</Box>\n </Stack>\n </Paper>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAKA,MAAM,mBAAmB,MACvB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACf,eAAY;AAAA,IAEZ,UAAA,oBAAC,QAAA,EAAK,GAAE,kBAAA,CAAkB;AAAA,EAAA;AAC5B;AAgCK,SAAS,SAAS;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAAkB;AAChB,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,QAAO;AAAA,MACP,GAAG,EAAE,MAAM,MAAM,IAAI,KAAA;AAAA,MACrB,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,QAAQ,aAAa,cAAc,GAAG,CAAC;AAAA,MAAA;AAAA,MAGzC,UAAA,qBAAC,OAAA,EAAM,KAAI,MACT,UAAA;AAAA,QAAA,qBAAC,SAAM,KAAI,MAAK,OAAM,cAAa,MAAK,UACtC,UAAA;AAAA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAS,OAAO,WAAW;AAAA,cAC3B,OAAO,OAAO,WAAW;AAAA,cACzB,cAAY,OAAO,QAAQ,KAAK,cAAc,QAAQ,KAAK;AAAA,cAC3D,OAAO;AAAA,gBACL,YAAY;AAAA,gBACZ,eAAe;AAAA,gBACf,YAAY,OAAO,YAAY,SAAS,cAAc,GAAG;AAAA,gBACzD,OAAO,OAAO,UAAU,cAAc,GAAG;AAAA,gBACzC,QAAQ,OAAO,SAAY,aAAa,cAAc,GAAG,CAAC;AAAA,cAAA;AAAA,cAG3D,UAAA,OACE,YAAY,oBAAC,kBAAA,CAAA,CAAiB,IAE/B,oBAAC,MAAA,EAAK,IAAI,KAAK,IAAI,IAChB,UAAA,MAAA,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJ,qBAAC,OAAI,OAAO,EAAE,UAAU,GAAG,MAAM,KAC/B,UAAA;AAAA,YAAA,oBAAC,MAAA,EAAK,IAAI,KAAK,IAAI,qBAAqB,WAAW,GAAG,cAAc,GAAG,GAAG,IAAI,KAC3E,UAAA,OACH;AAAA,YACC,eACC,oBAAC,MAAA,EAAK,MAAK,MAAK,GAAG,cAAc,GAAG,GAAG,IAAI,KAAK,IAAI,GACjD,UAAA,YAAA,CACH;AAAA,UAAA,EAAA,CAEJ;AAAA,QAAA,GACF;AAAA,QACA,oBAAC,OAAI,IAAI,EAAE,MAAM,GAAG,IAAI,GAAA,GAAO,SAAA,CAAS;AAAA,MAAA,EAAA,CAC1C;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -5,11 +5,12 @@ const index = require("../../../theme/index.cjs");
5
5
  const layout = require("../../primitives/layout.cjs");
6
6
  const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
7
7
  const Title = require("../../../node_modules/@mantine/core/esm/components/Title/Title.cjs");
8
+ const responsiveTypography = require("../../../theme/responsiveTypography.cjs");
8
9
  const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
9
10
  function PageHeader({ title, subtitle, action }) {
10
11
  return /* @__PURE__ */ jsxRuntime.jsxs(Group.Group, { justify: "space-between", align: "flex-start", mb: "lg", children: [
11
12
  /* @__PURE__ */ jsxRuntime.jsxs(layout.Stack, { gap: 4, children: [
12
- /* @__PURE__ */ jsxRuntime.jsx(Title.Title, { order: 2, children: title }),
13
+ /* @__PURE__ */ jsxRuntime.jsx(Title.Title, { order: 2, fz: responsiveTypography.responsiveTypography.h2, children: title }),
13
14
  subtitle && /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { c: index.fairmintVars.colorTextSecondary, size: "sm", children: subtitle })
14
15
  ] }),
15
16
  action
@@ -1 +1 @@
1
- {"version":3,"file":"PageHeader.cjs","sources":["../../../../src/components/layout/PageHeader/PageHeader.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { fairmintVars } from \"../../../theme\";\nimport { Group, Stack, Text, Title } from \"../../primitives/layout\";\n\nexport interface PageHeaderProps {\n title: string;\n subtitle?: string;\n action?: ReactNode;\n}\n\nexport function PageHeader({ title, subtitle, action }: PageHeaderProps) {\n return (\n <Group justify=\"space-between\" align=\"flex-start\" mb=\"lg\">\n <Stack gap={4}>\n <Title order={2}>{title}</Title>\n {subtitle && (\n <Text c={fairmintVars.colorTextSecondary} size=\"sm\">\n {subtitle}\n </Text>\n )}\n </Stack>\n {action}\n </Group>\n );\n}\n"],"names":["Group","jsxs","Stack","jsx","Title","Text","fairmintVars"],"mappings":";;;;;;;;AAUO,SAAS,WAAW,EAAE,OAAO,UAAU,UAA2B;AACvE,yCACGA,aAAA,EAAM,SAAQ,iBAAgB,OAAM,cAAa,IAAG,MACnD,UAAA;AAAA,IAAAC,2BAAAA,KAACC,OAAAA,OAAA,EAAM,KAAK,GACV,UAAA;AAAA,MAAAC,2BAAAA,IAACC,MAAAA,OAAA,EAAM,OAAO,GAAI,UAAA,OAAM;AAAA,MACvB,2CACEC,WAAA,EAAK,GAAGC,MAAAA,aAAa,oBAAoB,MAAK,MAC5C,UAAA,SAAA,CACH;AAAA,IAAA,GAEJ;AAAA,IACC;AAAA,EAAA,GACH;AAEJ;;"}
1
+ {"version":3,"file":"PageHeader.cjs","sources":["../../../../src/components/layout/PageHeader/PageHeader.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { fairmintVars, responsiveTypography } from \"../../../theme\";\nimport { Group, Stack, Text, Title } from \"../../primitives/layout\";\n\nexport interface PageHeaderProps {\n title: string;\n subtitle?: string;\n action?: ReactNode;\n}\n\nexport function PageHeader({ title, subtitle, action }: PageHeaderProps) {\n return (\n <Group justify=\"space-between\" align=\"flex-start\" mb=\"lg\">\n <Stack gap={4}>\n <Title order={2} fz={responsiveTypography.h2}>\n {title}\n </Title>\n {subtitle && (\n <Text c={fairmintVars.colorTextSecondary} size=\"sm\">\n {subtitle}\n </Text>\n )}\n </Stack>\n {action}\n </Group>\n );\n}\n"],"names":["Group","jsxs","Stack","jsx","Title","responsiveTypography","Text","fairmintVars"],"mappings":";;;;;;;;;AAUO,SAAS,WAAW,EAAE,OAAO,UAAU,UAA2B;AACvE,yCACGA,aAAA,EAAM,SAAQ,iBAAgB,OAAM,cAAa,IAAG,MACnD,UAAA;AAAA,IAAAC,2BAAAA,KAACC,OAAAA,OAAA,EAAM,KAAK,GACV,UAAA;AAAA,MAAAC,+BAACC,MAAAA,SAAM,OAAO,GAAG,IAAIC,qBAAAA,qBAAqB,IACvC,UAAA,OACH;AAAA,MACC,2CACEC,WAAA,EAAK,GAAGC,MAAAA,aAAa,oBAAoB,MAAK,MAC5C,UAAA,SAAA,CACH;AAAA,IAAA,GAEJ;AAAA,IACC;AAAA,EAAA,GACH;AAEJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PageHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/PageHeader/PageHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,2CActE"}
1
+ {"version":3,"file":"PageHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/PageHeader/PageHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,2CAgBtE"}
@@ -3,11 +3,12 @@ import { fairmintVars } from "../../../theme/index.js";
3
3
  import { Stack } from "../../primitives/layout.js";
4
4
  import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
5
5
  import { Title } from "../../../node_modules/@mantine/core/esm/components/Title/Title.js";
6
+ import { responsiveTypography } from "../../../theme/responsiveTypography.js";
6
7
  import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
7
8
  function PageHeader({ title, subtitle, action }) {
8
9
  return /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "flex-start", mb: "lg", children: [
9
10
  /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
10
- /* @__PURE__ */ jsx(Title, { order: 2, children: title }),
11
+ /* @__PURE__ */ jsx(Title, { order: 2, fz: responsiveTypography.h2, children: title }),
11
12
  subtitle && /* @__PURE__ */ jsx(Text, { c: fairmintVars.colorTextSecondary, size: "sm", children: subtitle })
12
13
  ] }),
13
14
  action
@@ -1 +1 @@
1
- {"version":3,"file":"PageHeader.js","sources":["../../../../src/components/layout/PageHeader/PageHeader.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { fairmintVars } from \"../../../theme\";\nimport { Group, Stack, Text, Title } from \"../../primitives/layout\";\n\nexport interface PageHeaderProps {\n title: string;\n subtitle?: string;\n action?: ReactNode;\n}\n\nexport function PageHeader({ title, subtitle, action }: PageHeaderProps) {\n return (\n <Group justify=\"space-between\" align=\"flex-start\" mb=\"lg\">\n <Stack gap={4}>\n <Title order={2}>{title}</Title>\n {subtitle && (\n <Text c={fairmintVars.colorTextSecondary} size=\"sm\">\n {subtitle}\n </Text>\n )}\n </Stack>\n {action}\n </Group>\n );\n}\n"],"names":[],"mappings":";;;;;;AAUO,SAAS,WAAW,EAAE,OAAO,UAAU,UAA2B;AACvE,8BACG,OAAA,EAAM,SAAQ,iBAAgB,OAAM,cAAa,IAAG,MACnD,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAM,KAAK,GACV,UAAA;AAAA,MAAA,oBAAC,OAAA,EAAM,OAAO,GAAI,UAAA,OAAM;AAAA,MACvB,gCACE,MAAA,EAAK,GAAG,aAAa,oBAAoB,MAAK,MAC5C,UAAA,SAAA,CACH;AAAA,IAAA,GAEJ;AAAA,IACC;AAAA,EAAA,GACH;AAEJ;"}
1
+ {"version":3,"file":"PageHeader.js","sources":["../../../../src/components/layout/PageHeader/PageHeader.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { fairmintVars, responsiveTypography } from \"../../../theme\";\nimport { Group, Stack, Text, Title } from \"../../primitives/layout\";\n\nexport interface PageHeaderProps {\n title: string;\n subtitle?: string;\n action?: ReactNode;\n}\n\nexport function PageHeader({ title, subtitle, action }: PageHeaderProps) {\n return (\n <Group justify=\"space-between\" align=\"flex-start\" mb=\"lg\">\n <Stack gap={4}>\n <Title order={2} fz={responsiveTypography.h2}>\n {title}\n </Title>\n {subtitle && (\n <Text c={fairmintVars.colorTextSecondary} size=\"sm\">\n {subtitle}\n </Text>\n )}\n </Stack>\n {action}\n </Group>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAUO,SAAS,WAAW,EAAE,OAAO,UAAU,UAA2B;AACvE,8BACG,OAAA,EAAM,SAAQ,iBAAgB,OAAM,cAAa,IAAG,MACnD,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAM,KAAK,GACV,UAAA;AAAA,MAAA,oBAAC,SAAM,OAAO,GAAG,IAAI,qBAAqB,IACvC,UAAA,OACH;AAAA,MACC,gCACE,MAAA,EAAK,GAAG,aAAa,oBAAoB,MAAK,MAC5C,UAAA,SAAA,CACH;AAAA,IAAA,GAEJ;AAAA,IACC;AAAA,EAAA,GACH;AAEJ;"}
@@ -4,7 +4,16 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const zIndex = require("../../../theme/zIndex.cjs");
5
5
  const Drawer$1 = require("../../../node_modules/@mantine/core/esm/components/Drawer/Drawer.cjs");
6
6
  function Drawer({ zIndex: zIndex$1 = zIndex.overlayZIndexAboveLegacyShell, ...props }) {
7
- return /* @__PURE__ */ jsxRuntime.jsx(Drawer$1.Drawer, { position: "right", size: "lg", p: "lg", ...props, zIndex: zIndex$1 });
7
+ return /* @__PURE__ */ jsxRuntime.jsx(
8
+ Drawer$1.Drawer,
9
+ {
10
+ position: "right",
11
+ size: "lg",
12
+ padding: "lg",
13
+ ...props,
14
+ zIndex: zIndex$1
15
+ }
16
+ );
8
17
  }
9
18
  exports.Drawer = Drawer;
10
19
  //# sourceMappingURL=Drawer.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.cjs","sources":["../../../../src/components/primitives/Drawer/Drawer.tsx"],"sourcesContent":["import { Drawer as MantineDrawer, type DrawerProps as MantineDrawerProps } from \"@mantine/core\";\n\nimport { overlayZIndexAboveLegacyShell } from \"../../../theme/zIndex\";\n\nexport interface DrawerProps extends MantineDrawerProps {}\n\nexport function Drawer({ zIndex = overlayZIndexAboveLegacyShell, ...props }: DrawerProps) {\n return <MantineDrawer position=\"right\" size=\"lg\" p=\"lg\" {...props} zIndex={zIndex} />;\n}\n"],"names":["zIndex","overlayZIndexAboveLegacyShell","jsx","MantineDrawer"],"mappings":";;;;;AAMO,SAAS,OAAO,EAAA,QAAEA,WAASC,sCAA+B,GAAG,SAAsB;AACxF,SAAOC,+BAACC,SAAAA,QAAA,EAAc,UAAS,SAAQ,MAAK,MAAK,GAAE,MAAM,GAAG,OAAA,QAAOH,SAAA,CAAgB;AACrF;;"}
1
+ {"version":3,"file":"Drawer.cjs","sources":["../../../../src/components/primitives/Drawer/Drawer.tsx"],"sourcesContent":["import { Drawer as MantineDrawer, type DrawerProps as MantineDrawerProps } from \"@mantine/core\";\n\nimport { overlayZIndexAboveLegacyShell } from \"../../../theme/zIndex\";\n\nexport interface DrawerProps extends MantineDrawerProps {}\n\nexport function Drawer({ zIndex = overlayZIndexAboveLegacyShell, ...props }: DrawerProps) {\n return (\n <MantineDrawer\n position=\"right\"\n size=\"lg\"\n // `padding` (content/header/footer spacing) is not the same prop as the\n // Box style-shorthand `p`. Passing `p` here applies literal CSS padding to\n // the drawer's position: fixed, width: 100% root wrapper, which shifts its\n // static-position offset without shrinking its width — pushing the drawer\n // past the viewport's right edge by the padding amount.\n padding=\"lg\"\n {...props}\n zIndex={zIndex}\n />\n );\n}\n"],"names":["zIndex","overlayZIndexAboveLegacyShell","jsx","MantineDrawer"],"mappings":";;;;;AAMO,SAAS,OAAO,EAAA,QAAEA,WAASC,sCAA+B,GAAG,SAAsB;AACxF,SACEC,2BAAAA;AAAAA,IAACC,SAAAA;AAAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,MAAK;AAAA,MAML,SAAQ;AAAA,MACP,GAAG;AAAA,MAAA,QACJH;AAAAA,IAAA;AAAA,EAAA;AAGN;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Drawer/Drawer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,WAAW,IAAI,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIhG,MAAM,WAAW,WAAY,SAAQ,kBAAkB;CAAG;AAE1D,wBAAgB,MAAM,CAAC,EAAE,MAAsC,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,2CAEvF"}
1
+ {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Drawer/Drawer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,WAAW,IAAI,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIhG,MAAM,WAAW,WAAY,SAAQ,kBAAkB;CAAG;AAE1D,wBAAgB,MAAM,CAAC,EAAE,MAAsC,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,2CAevF"}
@@ -2,7 +2,16 @@ import { jsx } from "react/jsx-runtime";
2
2
  import { overlayZIndexAboveLegacyShell } from "../../../theme/zIndex.js";
3
3
  import { Drawer as Drawer$1 } from "../../../node_modules/@mantine/core/esm/components/Drawer/Drawer.js";
4
4
  function Drawer({ zIndex = overlayZIndexAboveLegacyShell, ...props }) {
5
- return /* @__PURE__ */ jsx(Drawer$1, { position: "right", size: "lg", p: "lg", ...props, zIndex });
5
+ return /* @__PURE__ */ jsx(
6
+ Drawer$1,
7
+ {
8
+ position: "right",
9
+ size: "lg",
10
+ padding: "lg",
11
+ ...props,
12
+ zIndex
13
+ }
14
+ );
6
15
  }
7
16
  export {
8
17
  Drawer
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.js","sources":["../../../../src/components/primitives/Drawer/Drawer.tsx"],"sourcesContent":["import { Drawer as MantineDrawer, type DrawerProps as MantineDrawerProps } from \"@mantine/core\";\n\nimport { overlayZIndexAboveLegacyShell } from \"../../../theme/zIndex\";\n\nexport interface DrawerProps extends MantineDrawerProps {}\n\nexport function Drawer({ zIndex = overlayZIndexAboveLegacyShell, ...props }: DrawerProps) {\n return <MantineDrawer position=\"right\" size=\"lg\" p=\"lg\" {...props} zIndex={zIndex} />;\n}\n"],"names":["MantineDrawer"],"mappings":";;;AAMO,SAAS,OAAO,EAAE,SAAS,+BAA+B,GAAG,SAAsB;AACxF,SAAO,oBAACA,UAAA,EAAc,UAAS,SAAQ,MAAK,MAAK,GAAE,MAAM,GAAG,OAAO,OAAA,CAAgB;AACrF;"}
1
+ {"version":3,"file":"Drawer.js","sources":["../../../../src/components/primitives/Drawer/Drawer.tsx"],"sourcesContent":["import { Drawer as MantineDrawer, type DrawerProps as MantineDrawerProps } from \"@mantine/core\";\n\nimport { overlayZIndexAboveLegacyShell } from \"../../../theme/zIndex\";\n\nexport interface DrawerProps extends MantineDrawerProps {}\n\nexport function Drawer({ zIndex = overlayZIndexAboveLegacyShell, ...props }: DrawerProps) {\n return (\n <MantineDrawer\n position=\"right\"\n size=\"lg\"\n // `padding` (content/header/footer spacing) is not the same prop as the\n // Box style-shorthand `p`. Passing `p` here applies literal CSS padding to\n // the drawer's position: fixed, width: 100% root wrapper, which shifts its\n // static-position offset without shrinking its width — pushing the drawer\n // past the viewport's right edge by the padding amount.\n padding=\"lg\"\n {...props}\n zIndex={zIndex}\n />\n );\n}\n"],"names":["MantineDrawer"],"mappings":";;;AAMO,SAAS,OAAO,EAAE,SAAS,+BAA+B,GAAG,SAAsB;AACxF,SACE;AAAA,IAACA;AAAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,MAAK;AAAA,MAML,SAAQ;AAAA,MACP,GAAG;AAAA,MACJ;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -3,9 +3,11 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const sx = require("../sx.cjs");
5
5
  const Table$1 = require("../../../node_modules/@mantine/core/esm/components/Table/Table.cjs");
6
- function TableBase({ sx: sx$1, style, ...props }) {
6
+ function TableBase({ responsive = false, sx: sx$1, style, ...props }) {
7
7
  const sxStyle = sx.useSxStyle(sx$1);
8
- return /* @__PURE__ */ jsxRuntime.jsx(Table$1.Table, { style: { ...sxStyle, ...style }, ...props });
8
+ const table = /* @__PURE__ */ jsxRuntime.jsx(Table$1.Table, { style: { ...sxStyle, ...style }, ...props });
9
+ if (!responsive) return table;
10
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "fairmint-table-scroll", style: { maxWidth: "100%", overflowX: "auto" }, children: table });
9
11
  }
10
12
  const Table = Object.assign(TableBase, {
11
13
  Thead: Table$1.Table.Thead,
@@ -1 +1 @@
1
- {"version":3,"file":"Table.cjs","sources":["../../../../src/components/primitives/Table/Table.tsx"],"sourcesContent":["import { Table as MantineTable, type TableProps as MantineTableProps } from \"@mantine/core\";\nimport { type Sx, useSxStyle } from \"../sx\";\n\nexport interface TableProps extends MantineTableProps {\n sx?: Sx;\n}\n\nfunction TableBase({ sx, style, ...props }: TableProps) {\n const sxStyle = useSxStyle(sx);\n\n return <MantineTable style={{ ...sxStyle, ...style }} {...props} />;\n}\n\nexport const Table = Object.assign(TableBase, {\n Thead: MantineTable.Thead,\n Tbody: MantineTable.Tbody,\n Tr: MantineTable.Tr,\n Th: MantineTable.Th,\n Td: MantineTable.Td,\n Tfoot: MantineTable.Tfoot,\n Caption: MantineTable.Caption,\n});\n"],"names":["sx","useSxStyle","jsx","MantineTable"],"mappings":";;;;;AAOA,SAAS,UAAU,EAAA,IAAEA,MAAI,OAAO,GAAG,SAAqB;AACtD,QAAM,UAAUC,GAAAA,WAAWD,IAAE;AAE7B,SAAOE,2BAAAA,IAACC,eAAA,EAAa,OAAO,EAAE,GAAG,SAAS,GAAG,MAAA,GAAU,GAAG,OAAO;AACnE;AAEO,MAAM,QAAQ,OAAO,OAAO,WAAW;AAAA,EAC5C,OAAOA,QAAAA,MAAa;AAAA,EACpB,OAAOA,QAAAA,MAAa;AAAA,EACpB,IAAIA,QAAAA,MAAa;AAAA,EACjB,IAAIA,QAAAA,MAAa;AAAA,EACjB,IAAIA,QAAAA,MAAa;AAAA,EACjB,OAAOA,QAAAA,MAAa;AAAA,EACpB,SAASA,QAAAA,MAAa;AACxB,CAAC;;"}
1
+ {"version":3,"file":"Table.cjs","sources":["../../../../src/components/primitives/Table/Table.tsx"],"sourcesContent":["import { Table as MantineTable, type TableProps as MantineTableProps } from \"@mantine/core\";\nimport { type Sx, useSxStyle } from \"../sx\";\n\nexport interface TableProps extends MantineTableProps {\n /** Wrap the table in a horizontal scroller for narrow layouts. */\n responsive?: boolean;\n sx?: Sx;\n}\n\nfunction TableBase({ responsive = false, sx, style, ...props }: TableProps) {\n const sxStyle = useSxStyle(sx);\n const table = <MantineTable style={{ ...sxStyle, ...style }} {...props} />;\n\n if (!responsive) return table;\n\n return (\n <div className=\"fairmint-table-scroll\" style={{ maxWidth: \"100%\", overflowX: \"auto\" }}>\n {table}\n </div>\n );\n}\n\nexport const Table = Object.assign(TableBase, {\n Thead: MantineTable.Thead,\n Tbody: MantineTable.Tbody,\n Tr: MantineTable.Tr,\n Th: MantineTable.Th,\n Td: MantineTable.Td,\n Tfoot: MantineTable.Tfoot,\n Caption: MantineTable.Caption,\n});\n"],"names":["sx","useSxStyle","jsx","MantineTable"],"mappings":";;;;;AASA,SAAS,UAAU,EAAE,aAAa,OAAA,IAAOA,MAAI,OAAO,GAAG,SAAqB;AAC1E,QAAM,UAAUC,GAAAA,WAAWD,IAAE;AAC7B,QAAM,QAAQE,2BAAAA,IAACC,QAAAA,OAAA,EAAa,OAAO,EAAE,GAAG,SAAS,GAAG,SAAU,GAAG,MAAA,CAAO;AAExE,MAAI,CAAC,WAAY,QAAO;AAExB,SACED,2BAAAA,IAAC,OAAA,EAAI,WAAU,yBAAwB,OAAO,EAAE,UAAU,QAAQ,WAAW,OAAA,GAC1E,UAAA,MAAA,CACH;AAEJ;AAEO,MAAM,QAAQ,OAAO,OAAO,WAAW;AAAA,EAC5C,OAAOC,QAAAA,MAAa;AAAA,EACpB,OAAOA,QAAAA,MAAa;AAAA,EACpB,IAAIA,QAAAA,MAAa;AAAA,EACjB,IAAIA,QAAAA,MAAa;AAAA,EACjB,IAAIA,QAAAA,MAAa;AAAA,EACjB,OAAOA,QAAAA,MAAa;AAAA,EACpB,SAASA,QAAAA,MAAa;AACxB,CAAC;;"}
@@ -1,9 +1,11 @@
1
1
  import { TableProps as MantineTableProps } from '@mantine/core';
2
2
  import { Sx } from '../sx';
3
3
  export interface TableProps extends MantineTableProps {
4
+ /** Wrap the table in a horizontal scroller for narrow layouts. */
5
+ responsive?: boolean;
4
6
  sx?: Sx;
5
7
  }
6
- declare function TableBase({ sx, style, ...props }: TableProps): import("react/jsx-runtime").JSX.Element;
8
+ declare function TableBase({ responsive, sx, style, ...props }: TableProps): import("react/jsx-runtime").JSX.Element;
7
9
  export declare const Table: typeof TableBase & {
8
10
  Thead: import('@mantine/core').MantineComponent<{
9
11
  props: import('@mantine/core').TableTheadProps;
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Table/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,UAAU,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,KAAK,EAAE,EAAc,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,EAAE,CAAC,EAAE,EAAE,CAAC;CACT;AAED,iBAAS,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAIrD;AAED,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQhB,CAAC"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Table/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,UAAU,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,KAAK,EAAE,EAAc,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,kEAAkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,EAAE,CAAC,EAAE,EAAE,CAAC;CACT;AAED,iBAAS,SAAS,CAAC,EAAE,UAAkB,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAWzE;AAED,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQhB,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useSxStyle } from "../sx.js";
3
3
  import { Table as Table$1 } from "../../../node_modules/@mantine/core/esm/components/Table/Table.js";
4
- function TableBase({ sx, style, ...props }) {
4
+ function TableBase({ responsive = false, sx, style, ...props }) {
5
5
  const sxStyle = useSxStyle(sx);
6
- return /* @__PURE__ */ jsx(Table$1, { style: { ...sxStyle, ...style }, ...props });
6
+ const table = /* @__PURE__ */ jsx(Table$1, { style: { ...sxStyle, ...style }, ...props });
7
+ if (!responsive) return table;
8
+ return /* @__PURE__ */ jsx("div", { className: "fairmint-table-scroll", style: { maxWidth: "100%", overflowX: "auto" }, children: table });
7
9
  }
8
10
  const Table = Object.assign(TableBase, {
9
11
  Thead: Table$1.Thead,
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../../../src/components/primitives/Table/Table.tsx"],"sourcesContent":["import { Table as MantineTable, type TableProps as MantineTableProps } from \"@mantine/core\";\nimport { type Sx, useSxStyle } from \"../sx\";\n\nexport interface TableProps extends MantineTableProps {\n sx?: Sx;\n}\n\nfunction TableBase({ sx, style, ...props }: TableProps) {\n const sxStyle = useSxStyle(sx);\n\n return <MantineTable style={{ ...sxStyle, ...style }} {...props} />;\n}\n\nexport const Table = Object.assign(TableBase, {\n Thead: MantineTable.Thead,\n Tbody: MantineTable.Tbody,\n Tr: MantineTable.Tr,\n Th: MantineTable.Th,\n Td: MantineTable.Td,\n Tfoot: MantineTable.Tfoot,\n Caption: MantineTable.Caption,\n});\n"],"names":["MantineTable"],"mappings":";;;AAOA,SAAS,UAAU,EAAE,IAAI,OAAO,GAAG,SAAqB;AACtD,QAAM,UAAU,WAAW,EAAE;AAE7B,SAAO,oBAACA,SAAA,EAAa,OAAO,EAAE,GAAG,SAAS,GAAG,MAAA,GAAU,GAAG,OAAO;AACnE;AAEO,MAAM,QAAQ,OAAO,OAAO,WAAW;AAAA,EAC5C,OAAOA,QAAa;AAAA,EACpB,OAAOA,QAAa;AAAA,EACpB,IAAIA,QAAa;AAAA,EACjB,IAAIA,QAAa;AAAA,EACjB,IAAIA,QAAa;AAAA,EACjB,OAAOA,QAAa;AAAA,EACpB,SAASA,QAAa;AACxB,CAAC;"}
1
+ {"version":3,"file":"Table.js","sources":["../../../../src/components/primitives/Table/Table.tsx"],"sourcesContent":["import { Table as MantineTable, type TableProps as MantineTableProps } from \"@mantine/core\";\nimport { type Sx, useSxStyle } from \"../sx\";\n\nexport interface TableProps extends MantineTableProps {\n /** Wrap the table in a horizontal scroller for narrow layouts. */\n responsive?: boolean;\n sx?: Sx;\n}\n\nfunction TableBase({ responsive = false, sx, style, ...props }: TableProps) {\n const sxStyle = useSxStyle(sx);\n const table = <MantineTable style={{ ...sxStyle, ...style }} {...props} />;\n\n if (!responsive) return table;\n\n return (\n <div className=\"fairmint-table-scroll\" style={{ maxWidth: \"100%\", overflowX: \"auto\" }}>\n {table}\n </div>\n );\n}\n\nexport const Table = Object.assign(TableBase, {\n Thead: MantineTable.Thead,\n Tbody: MantineTable.Tbody,\n Tr: MantineTable.Tr,\n Th: MantineTable.Th,\n Td: MantineTable.Td,\n Tfoot: MantineTable.Tfoot,\n Caption: MantineTable.Caption,\n});\n"],"names":["MantineTable"],"mappings":";;;AASA,SAAS,UAAU,EAAE,aAAa,OAAO,IAAI,OAAO,GAAG,SAAqB;AAC1E,QAAM,UAAU,WAAW,EAAE;AAC7B,QAAM,QAAQ,oBAACA,SAAA,EAAa,OAAO,EAAE,GAAG,SAAS,GAAG,SAAU,GAAG,MAAA,CAAO;AAExE,MAAI,CAAC,WAAY,QAAO;AAExB,SACE,oBAAC,OAAA,EAAI,WAAU,yBAAwB,OAAO,EAAE,UAAU,QAAQ,WAAW,OAAA,GAC1E,UAAA,MAAA,CACH;AAEJ;AAEO,MAAM,QAAQ,OAAO,OAAO,WAAW;AAAA,EAC5C,OAAOA,QAAa;AAAA,EACpB,OAAOA,QAAa;AAAA,EACpB,IAAIA,QAAa;AAAA,EACjB,IAAIA,QAAa;AAAA,EACjB,IAAIA,QAAa;AAAA,EACjB,OAAOA,QAAa;AAAA,EACpB,SAASA,QAAa;AACxB,CAAC;"}
@@ -125,6 +125,7 @@ const ThemeIcon = require("./node_modules/@mantine/core/esm/components/ThemeIcon
125
125
  const Title = require("./node_modules/@mantine/core/esm/components/Title/Title.cjs");
126
126
  const UnstyledButton = require("./node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.cjs");
127
127
  const fontSizes = require("./theme/fontSizes.cjs");
128
+ const responsiveTypography = require("./theme/responsiveTypography.cjs");
128
129
  const spacing = require("./theme/spacing.cjs");
129
130
  const useClickOutside = require("./node_modules/@mantine/hooks/esm/use-click-outside/use-click-outside.cjs");
130
131
  const useClipboard = require("./node_modules/@mantine/hooks/esm/use-clipboard/use-clipboard.cjs");
@@ -527,6 +528,7 @@ exports.ThemeIcon = ThemeIcon.ThemeIcon;
527
528
  exports.Title = Title.Title;
528
529
  exports.UnstyledButton = UnstyledButton.UnstyledButton;
529
530
  exports.fontSizes = fontSizes.fontSizes;
531
+ exports.responsiveTypography = responsiveTypography.responsiveTypography;
530
532
  exports.spacing = spacing.spacing;
531
533
  exports.useClickOutside = useClickOutside.useClickOutside;
532
534
  exports.useClipboard = useClipboard.useClipboard;
@@ -1 +1 @@
1
- {"version":3,"file":"fairmint-ui.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"fairmint-ui.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -123,6 +123,7 @@ import { ThemeIcon } from "./node_modules/@mantine/core/esm/components/ThemeIcon
123
123
  import { Title } from "./node_modules/@mantine/core/esm/components/Title/Title.js";
124
124
  import { UnstyledButton } from "./node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.js";
125
125
  import { fontSizes } from "./theme/fontSizes.js";
126
+ import { responsiveTypography } from "./theme/responsiveTypography.js";
126
127
  import { spacing } from "./theme/spacing.js";
127
128
  import { useClickOutside } from "./node_modules/@mantine/hooks/esm/use-click-outside/use-click-outside.js";
128
129
  import { useClipboard } from "./node_modules/@mantine/hooks/esm/use-clipboard/use-clipboard.js";
@@ -509,6 +510,7 @@ export {
509
510
  phoneSchema,
510
511
  radii,
511
512
  responsiveFontSizes,
513
+ responsiveTypography,
512
514
  semanticColors,
513
515
  shadowColor,
514
516
  spacing,
@@ -1 +1 @@
1
- {"version":3,"file":"fairmint-ui.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"fairmint-ui.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -148,8 +148,8 @@ export { MOBILE_BREAKPOINT, useIsMobile } from './hooks/useIsMobile';
148
148
  export { TABLET_BREAKPOINT, useIsTablet } from './hooks/useIsTablet';
149
149
  export { notify } from './notify';
150
150
  export { closeSnackbar, enqueueSnackbar, useSnackbar } from './snackbarCompat';
151
- export type { AvatarPaletteColor, FairmintColor, FairmintFontSize, FairmintSpacing } from './theme';
152
- export { AVATAR_PALETTE, brandColors, colors, commonColors, createFairmintMantineProviderProps, fairmintCssVariables, fairmintVars, fontSizes, neutralColors, radii, semanticColors, shadowColor, spacing, theme, typography, } from './theme';
151
+ export type { AvatarPaletteColor, FairmintColor, FairmintFontSize, FairmintResponsiveTypography, FairmintSpacing, } from './theme';
152
+ export { AVATAR_PALETTE, brandColors, colors, commonColors, createFairmintMantineProviderProps, fairmintCssVariables, fairmintVars, fontSizes, neutralColors, radii, responsiveTypography, semanticColors, shadowColor, spacing, theme, typography, } from './theme';
153
153
  export { ETHEREUM_ADDRESS_REGEX, isEthereumAddress, truncateAddress, validateEthereumAddress, ZERO_ETHEREUM_ADDRESS, } from './utils/address';
154
154
  export { getAvatarColor, getInitials } from './utils/avatar';
155
155
  export { getLogoFilter, isLightColor } from './utils/color';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const React = require("react");
4
- const index = require("../../../../../../_virtual/index4.cjs");
4
+ const index = require("../../../../../../_virtual/index3.cjs");
5
5
  const getStatus = require("../../get-status/get-status.cjs");
6
6
  const clearListState = require("../../lists/clear-list-state.cjs");
7
7
  const getPath = require("../../paths/get-path.cjs");
@@ -1,5 +1,5 @@
1
1
  import { useState, useRef, useCallback } from "react";
2
- import isEqual from "../../../../../../_virtual/index4.js";
2
+ import isEqual from "../../../../../../_virtual/index3.js";
3
3
  import { getStatus } from "../../get-status/get-status.js";
4
4
  import { clearListState } from "../../lists/clear-list-state.js";
5
5
  import { getPath } from "../../paths/get-path.js";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index$1 = require("../../_virtual/index3.cjs");
3
+ const index$1 = require("../../_virtual/index4.cjs");
4
4
  const index = require("./node_modules/react-is/index.cjs");
5
5
  const factoryWithTypeCheckers = require("./factoryWithTypeCheckers.cjs");
6
6
  const factoryWithThrowingShims = require("./factoryWithThrowingShims.cjs");
@@ -1,4 +1,4 @@
1
- import { __module as propTypes } from "../../_virtual/index3.js";
1
+ import { __module as propTypes } from "../../_virtual/index4.js";
2
2
  import { __require as requireReactIs } from "./node_modules/react-is/index.js";
3
3
  import { __require as requireFactoryWithTypeCheckers } from "./factoryWithTypeCheckers.js";
4
4
  import { __require as requireFactoryWithThrowingShims } from "./factoryWithThrowingShims.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/theme/index.ts"],"sourcesContent":["import { type CSSVariablesResolver, createTheme, type MantineColorsTuple } from \"@mantine/core\";\nimport { fontSizes } from \"./fontSizes\";\nimport { spacing } from \"./spacing\";\n\n/**\n * Fairmint radius scale — single source of truth used by both the Mantine\n * theme config and the exported `radii` constant. Edit here; both stay in sync.\n */\nexport const radii = {\n xs: \"0.25rem\",\n sm: \"0.375rem\",\n md: \"0.5rem\",\n lg: \"0.75rem\",\n xl: \"1rem\",\n} as const;\n\n/**\n * Indigo palette — primary UI color.\n * Used for buttons, links, active navigation, focus rings.\n * Shade [5] (#6366F1) is the default primary.\n */\nconst indigo: MantineColorsTuple = [\n \"#EEF2FF\",\n \"#E0E7FF\",\n \"#C7D2FE\",\n \"#A5B4FC\",\n \"#818CF8\",\n \"#6366F1\",\n \"#4F46E5\",\n \"#4338CA\",\n \"#3730A3\",\n \"#312E81\",\n];\n\n/**\n * Neutral scale — replaces Mantine's default gray.\n * Used for text, borders, backgrounds, disabled states.\n */\nconst neutral: MantineColorsTuple = [\n \"#F8F9FA\",\n \"#F3F4F6\",\n \"#E5E7EB\",\n \"#D2D6DB\",\n \"#9DA4AE\",\n \"#6C737F\",\n \"#4D5761\",\n \"#2F3746\",\n \"#1C2536\",\n \"#111927\",\n];\n\n/**\n * Fairmint brand blue — accent color for gradients and brand elements.\n * Shade [5] (#0A4EFB) is the primary brand blue.\n *\n * NOTE: design/README.md lists #2D00F7 as Fairmint Blue.\n * This library uses #0A4EFB (production value from investorv2).\n */\nconst fairmintBlue: MantineColorsTuple = [\n \"#e6f0ff\",\n \"#cce0ff\",\n \"#99c2ff\",\n \"#66a3ff\",\n \"#3385ff\",\n \"#0A4EFB\",\n \"#083ec9\",\n \"#062e97\",\n \"#041f64\",\n \"#020f32\",\n];\n\n/**\n * Fairmint brand purple — accent color for gradients and brand elements.\n * Shade [5] (#9E03FF) is the primary brand purple.\n *\n * NOTE: design/README.md lists #6739FD as Fairmint Purple.\n * This library uses #9E03FF (production value from investorv2).\n */\nconst fairmintPurple: MantineColorsTuple = [\n \"#f5e6ff\",\n \"#e6ccff\",\n \"#cc99ff\",\n \"#b366ff\",\n \"#9933ff\",\n \"#9E03FF\",\n \"#7e02cc\",\n \"#5f0299\",\n \"#3f0166\",\n \"#200133\",\n];\n\nconst success: MantineColorsTuple = [\n \"#F0FDF9\",\n \"#D1FAE5\",\n \"#A7F3D0\",\n \"#6EE7B7\",\n \"#34D399\",\n \"#10B981\",\n \"#059669\",\n \"#047857\",\n \"#065F46\",\n \"#134E48\",\n];\n\nconst warning: MantineColorsTuple = [\n \"#FFFAEB\",\n \"#FEF0C7\",\n \"#FEDF89\",\n \"#FEC84B\",\n \"#FDB022\",\n \"#F79009\",\n \"#DC6803\",\n \"#B54708\",\n \"#93370D\",\n \"#7A2E0E\",\n];\n\nconst error: MantineColorsTuple = [\n \"#FEF3F2\",\n \"#FEE4E2\",\n \"#FECDCA\",\n \"#FDA29B\",\n \"#F97066\",\n \"#F04438\",\n \"#D92D20\",\n \"#B42318\",\n \"#912018\",\n \"#7A271A\",\n];\n\nconst info: MantineColorsTuple = [\n \"#ECFDFF\",\n \"#CFF9FE\",\n \"#A5F0FC\",\n \"#67E3F9\",\n \"#22CCEE\",\n \"#06AED4\",\n \"#088AB2\",\n \"#0E7090\",\n \"#155B75\",\n \"#164C63\",\n];\n\n/**\n * Typography constants — single source of truth for font families.\n * Use these instead of var(--mantine-font-family-*) in component code.\n * Declared before createTheme so the theme itself references them.\n */\nexport const typography = {\n fontFamily:\n '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\"',\n headingFontFamily: '\"Plus Jakarta Sans\", sans-serif',\n} as const;\n\nexport const theme = createTheme({\n primaryColor: \"indigo\",\n colors: { indigo, gray: neutral, fairmintBlue, fairmintPurple, success, warning, error, info },\n\n fontFamily: typography.fontFamily,\n headings: {\n fontFamily: typography.headingFontFamily,\n fontWeight: \"700\",\n },\n\n radius: radii,\n defaultRadius: \"md\",\n spacing,\n fontSizes: {\n xs: fontSizes.xs,\n sm: fontSizes.sm,\n md: fontSizes.md,\n lg: fontSizes.lg,\n xl: fontSizes.xl,\n },\n\n breakpoints: {\n xs: \"30em\",\n sm: \"48em\",\n md: \"64em\",\n lg: \"74em\",\n xl: \"90em\",\n },\n\n components: {\n Button: {\n defaultProps: { size: \"md\" },\n styles: {\n root: {\n fontWeight: 600,\n borderRadius: \"0.75rem\",\n textTransform: \"none\" as const,\n },\n },\n },\n TextInput: {\n defaultProps: { size: \"md\" },\n },\n Card: {\n defaultProps: {\n padding: \"lg\",\n radius: \"xl\",\n withBorder: true,\n },\n },\n Paper: {\n styles: {\n root: { backgroundImage: \"none\" },\n },\n },\n Table: {\n styles: {\n thead: {\n fontSize: \"0.75rem\",\n fontWeight: 600,\n letterSpacing: \"0.5px\",\n textTransform: \"uppercase\" as const,\n },\n },\n },\n Modal: {\n styles: {\n title: {\n fontSize: fontSizes.lg,\n fontWeight: 700,\n lineHeight: 1.3,\n },\n },\n },\n },\n});\n\n/**\n * Fairmint CSS variables resolver for MantineProvider.\n * Publishes --fairmint-* custom properties so components never reference\n * --mantine-* variables directly. All light/dark switching is centralised here.\n */\nexport const fairmintCssVariables: CSSVariablesResolver = () => ({\n variables: {\n \"--fairmint-font-headings\": typography.headingFontFamily,\n \"--fairmint-font-body\": typography.fontFamily,\n \"--fairmint-interactive-focus-ring\": indigo[5],\n },\n light: {\n \"--fairmint-watermark-color\": neutral[1],\n \"--fairmint-color-text-primary\": neutral[9],\n \"--fairmint-color-text-secondary\": neutral[5],\n \"--fairmint-color-text-tertiary\": neutral[4],\n \"--fairmint-color-surface-selected\": indigo[0],\n \"--fairmint-interactive-hover-shadow\": `0 2px 6px ${neutral[9]}0F`,\n \"--fairmint-interactive-hover-bg\": neutral[0],\n },\n dark: {\n \"--fairmint-watermark-color\": neutral[7],\n \"--fairmint-color-text-primary\": neutral[0],\n \"--fairmint-color-text-secondary\": neutral[4],\n \"--fairmint-color-text-tertiary\": neutral[5],\n \"--fairmint-color-surface-selected\": indigo[9],\n \"--fairmint-interactive-hover-shadow\": `0 2px 6px ${neutral[0]}1A`,\n \"--fairmint-interactive-hover-bg\": neutral[8],\n },\n});\n\n/**\n * Typed JS references to every --fairmint-* CSS custom property.\n * Use these in component code instead of raw \"var(--fairmint-...)\" strings so\n * that renaming a token requires one change here rather than hunting every file.\n *\n * Each value includes a CSS fallback derived from the light-mode token value so\n * that components degrade gracefully when cssVariablesResolver is not wired up\n * (e.g. bare MantineProvider in tests or custom setups). Dark-mode fidelity is\n * lost without the resolver, but nothing renders invisibly.\n */\nexport const fairmintVars = {\n /** Primary body/heading text — titles on tinted surfaces (Chip Banner). */\n colorTextPrimary: `var(--fairmint-color-text-primary, ${neutral[9]})`,\n /** Secondary / muted text — subtitles, supporting labels. Adapts to color scheme. */\n colorTextSecondary: `var(--fairmint-color-text-secondary, ${neutral[5]})`,\n /** Tertiary / faint text — timestamps, metadata. Adapts to color scheme. */\n colorTextTertiary: `var(--fairmint-color-text-tertiary, ${neutral[4]})`,\n /** Background tint for selected / active rows. Adapts to color scheme. */\n colorSurfaceSelected: `var(--fairmint-color-surface-selected, ${indigo[0]})`,\n /** Large decorative watermark on error/empty pages. Adapts to color scheme. */\n watermarkColor: `var(--fairmint-watermark-color, ${neutral[1]})`,\n /** Heading font family (Plus Jakarta Sans). */\n fontHeadings: `var(--fairmint-font-headings, ${typography.headingFontFamily})`,\n /** Body font family (Inter). */\n fontBody: `var(--fairmint-font-body, ${typography.fontFamily})`,\n} as const;\n\n/**\n * Returns the MantineProvider props required to use @fairmint/ui components.\n * Use this when you need to instantiate MantineProvider directly (e.g. in\n * Storybook decorators or server-rendering setups) instead of FairmintProvider.\n *\n * @example\n * ```tsx\n * import { MantineProvider } from \"@mantine/core\";\n * import { createFairmintMantineProviderProps } from \"@fairmint/ui\";\n *\n * <MantineProvider {...createFairmintMantineProviderProps()}>\n * <App />\n * </MantineProvider>\n * ```\n */\nexport function createFairmintMantineProviderProps(\n colorScheme: \"light\" | \"dark\" | \"auto\" = \"light\",\n) {\n return {\n theme,\n cssVariablesResolver: fairmintCssVariables,\n defaultColorScheme: colorScheme,\n } as const;\n}\n\n/** Brand colors for gradients and custom styling. */\nexport const brandColors = {\n blue: \"#0A4EFB\",\n purple: \"#9E03FF\",\n indigo: \"#6366F1\",\n gradient: \"linear-gradient(90deg, #0A4EFB 0%, #9E03FF 100%)\",\n} as const;\n\nexport const commonColors = {\n black: \"#000000\",\n white: \"#ffffff\",\n} as const;\n\n/**\n * Card/row shadow used by WalletList and similar card surfaces.\n * Equivalent to neutralColors[900] at ~10% opacity (#111927 → #1119271A).\n */\nexport const shadowColor = {\n card: \"#1119271A\",\n} as const;\n\n/** Neutral scale for direct access outside Mantine's theme system. Keys are numeric literals. */\nexport const neutralColors = {\n 50: \"#F8F9FA\",\n 100: \"#F3F4F6\",\n 200: \"#E5E7EB\",\n 300: \"#D2D6DB\",\n 400: \"#9DA4AE\",\n 500: \"#6C737F\",\n 600: \"#4D5761\",\n 700: \"#2F3746\",\n 800: \"#1C2536\",\n 900: \"#111927\",\n} as const;\n\n/** Semantic colors for status-based styling. */\nexport const semanticColors = {\n success: \"#10B981\",\n warning: \"#F79009\",\n error: \"#F04438\",\n info: \"#06AED4\",\n} as const;\n\nexport type { AvatarPaletteColor, FairmintColor } from \"./colors\";\nexport { AVATAR_PALETTE, colors } from \"./colors\";\nexport type { FairmintFontSize } from \"./fontSizes\";\nexport { fontSizes } from \"./fontSizes\";\nexport { DEFAULT_FAIRMINT_LOGO_SRC } from \"./logo\";\nexport type { FairmintSpacing } from \"./spacing\";\nexport { spacing } from \"./spacing\";\nexport { overlayZIndexAboveLegacyShell } from \"./zIndex\";\n"],"names":["createTheme","spacing","fontSizes"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/theme/index.ts"],"sourcesContent":["import { type CSSVariablesResolver, createTheme, type MantineColorsTuple } from \"@mantine/core\";\nimport { fontSizes } from \"./fontSizes\";\nimport { spacing } from \"./spacing\";\n\n/**\n * Fairmint radius scale — single source of truth used by both the Mantine\n * theme config and the exported `radii` constant. Edit here; both stay in sync.\n */\nexport const radii = {\n xs: \"0.25rem\",\n sm: \"0.375rem\",\n md: \"0.5rem\",\n lg: \"0.75rem\",\n xl: \"1rem\",\n} as const;\n\n/**\n * Indigo palette — primary UI color.\n * Used for buttons, links, active navigation, focus rings.\n * Shade [5] (#6366F1) is the default primary.\n */\nconst indigo: MantineColorsTuple = [\n \"#EEF2FF\",\n \"#E0E7FF\",\n \"#C7D2FE\",\n \"#A5B4FC\",\n \"#818CF8\",\n \"#6366F1\",\n \"#4F46E5\",\n \"#4338CA\",\n \"#3730A3\",\n \"#312E81\",\n];\n\n/**\n * Neutral scale — replaces Mantine's default gray.\n * Used for text, borders, backgrounds, disabled states.\n */\nconst neutral: MantineColorsTuple = [\n \"#F8F9FA\",\n \"#F3F4F6\",\n \"#E5E7EB\",\n \"#D2D6DB\",\n \"#9DA4AE\",\n \"#6C737F\",\n \"#4D5761\",\n \"#2F3746\",\n \"#1C2536\",\n \"#111927\",\n];\n\n/**\n * Fairmint brand blue — accent color for gradients and brand elements.\n * Shade [5] (#0A4EFB) is the primary brand blue.\n *\n * NOTE: design/README.md lists #2D00F7 as Fairmint Blue.\n * This library uses #0A4EFB (production value from investorv2).\n */\nconst fairmintBlue: MantineColorsTuple = [\n \"#e6f0ff\",\n \"#cce0ff\",\n \"#99c2ff\",\n \"#66a3ff\",\n \"#3385ff\",\n \"#0A4EFB\",\n \"#083ec9\",\n \"#062e97\",\n \"#041f64\",\n \"#020f32\",\n];\n\n/**\n * Fairmint brand purple — accent color for gradients and brand elements.\n * Shade [5] (#9E03FF) is the primary brand purple.\n *\n * NOTE: design/README.md lists #6739FD as Fairmint Purple.\n * This library uses #9E03FF (production value from investorv2).\n */\nconst fairmintPurple: MantineColorsTuple = [\n \"#f5e6ff\",\n \"#e6ccff\",\n \"#cc99ff\",\n \"#b366ff\",\n \"#9933ff\",\n \"#9E03FF\",\n \"#7e02cc\",\n \"#5f0299\",\n \"#3f0166\",\n \"#200133\",\n];\n\nconst success: MantineColorsTuple = [\n \"#F0FDF9\",\n \"#D1FAE5\",\n \"#A7F3D0\",\n \"#6EE7B7\",\n \"#34D399\",\n \"#10B981\",\n \"#059669\",\n \"#047857\",\n \"#065F46\",\n \"#134E48\",\n];\n\nconst warning: MantineColorsTuple = [\n \"#FFFAEB\",\n \"#FEF0C7\",\n \"#FEDF89\",\n \"#FEC84B\",\n \"#FDB022\",\n \"#F79009\",\n \"#DC6803\",\n \"#B54708\",\n \"#93370D\",\n \"#7A2E0E\",\n];\n\nconst error: MantineColorsTuple = [\n \"#FEF3F2\",\n \"#FEE4E2\",\n \"#FECDCA\",\n \"#FDA29B\",\n \"#F97066\",\n \"#F04438\",\n \"#D92D20\",\n \"#B42318\",\n \"#912018\",\n \"#7A271A\",\n];\n\nconst info: MantineColorsTuple = [\n \"#ECFDFF\",\n \"#CFF9FE\",\n \"#A5F0FC\",\n \"#67E3F9\",\n \"#22CCEE\",\n \"#06AED4\",\n \"#088AB2\",\n \"#0E7090\",\n \"#155B75\",\n \"#164C63\",\n];\n\n/**\n * Typography constants — single source of truth for font families.\n * Use these instead of var(--mantine-font-family-*) in component code.\n * Declared before createTheme so the theme itself references them.\n */\nexport const typography = {\n fontFamily:\n '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\"',\n headingFontFamily: '\"Plus Jakarta Sans\", sans-serif',\n} as const;\n\nexport const theme = createTheme({\n primaryColor: \"indigo\",\n colors: { indigo, gray: neutral, fairmintBlue, fairmintPurple, success, warning, error, info },\n\n fontFamily: typography.fontFamily,\n headings: {\n fontFamily: typography.headingFontFamily,\n fontWeight: \"700\",\n },\n\n radius: radii,\n defaultRadius: \"md\",\n spacing,\n fontSizes: {\n xs: fontSizes.xs,\n sm: fontSizes.sm,\n md: fontSizes.md,\n lg: fontSizes.lg,\n xl: fontSizes.xl,\n },\n\n breakpoints: {\n xs: \"30em\",\n sm: \"48em\",\n md: \"64em\",\n lg: \"74em\",\n xl: \"90em\",\n },\n\n components: {\n Button: {\n defaultProps: { size: \"md\" },\n styles: {\n root: {\n fontWeight: 600,\n borderRadius: \"0.75rem\",\n textTransform: \"none\" as const,\n },\n },\n },\n TextInput: {\n defaultProps: { size: \"md\" },\n },\n Card: {\n defaultProps: {\n padding: \"lg\",\n radius: \"xl\",\n withBorder: true,\n },\n },\n Paper: {\n styles: {\n root: { backgroundImage: \"none\" },\n },\n },\n Table: {\n styles: {\n thead: {\n fontSize: \"0.75rem\",\n fontWeight: 600,\n letterSpacing: \"0.5px\",\n textTransform: \"uppercase\" as const,\n },\n },\n },\n Modal: {\n styles: {\n title: {\n fontSize: fontSizes.lg,\n fontWeight: 700,\n lineHeight: 1.3,\n },\n },\n },\n },\n});\n\n/**\n * Fairmint CSS variables resolver for MantineProvider.\n * Publishes --fairmint-* custom properties so components never reference\n * --mantine-* variables directly. All light/dark switching is centralised here.\n */\nexport const fairmintCssVariables: CSSVariablesResolver = () => ({\n variables: {\n \"--fairmint-font-headings\": typography.headingFontFamily,\n \"--fairmint-font-body\": typography.fontFamily,\n \"--fairmint-interactive-focus-ring\": indigo[5],\n },\n light: {\n \"--fairmint-watermark-color\": neutral[1],\n \"--fairmint-color-text-primary\": neutral[9],\n \"--fairmint-color-text-secondary\": neutral[5],\n \"--fairmint-color-text-tertiary\": neutral[4],\n \"--fairmint-color-surface-selected\": indigo[0],\n \"--fairmint-interactive-hover-shadow\": `0 2px 6px ${neutral[9]}0F`,\n \"--fairmint-interactive-hover-bg\": neutral[0],\n },\n dark: {\n \"--fairmint-watermark-color\": neutral[7],\n \"--fairmint-color-text-primary\": neutral[0],\n \"--fairmint-color-text-secondary\": neutral[4],\n \"--fairmint-color-text-tertiary\": neutral[5],\n \"--fairmint-color-surface-selected\": indigo[9],\n \"--fairmint-interactive-hover-shadow\": `0 2px 6px ${neutral[0]}1A`,\n \"--fairmint-interactive-hover-bg\": neutral[8],\n },\n});\n\n/**\n * Typed JS references to every --fairmint-* CSS custom property.\n * Use these in component code instead of raw \"var(--fairmint-...)\" strings so\n * that renaming a token requires one change here rather than hunting every file.\n *\n * Each value includes a CSS fallback derived from the light-mode token value so\n * that components degrade gracefully when cssVariablesResolver is not wired up\n * (e.g. bare MantineProvider in tests or custom setups). Dark-mode fidelity is\n * lost without the resolver, but nothing renders invisibly.\n */\nexport const fairmintVars = {\n /** Primary body/heading text — titles on tinted surfaces (Chip Banner). */\n colorTextPrimary: `var(--fairmint-color-text-primary, ${neutral[9]})`,\n /** Secondary / muted text — subtitles, supporting labels. Adapts to color scheme. */\n colorTextSecondary: `var(--fairmint-color-text-secondary, ${neutral[5]})`,\n /** Tertiary / faint text — timestamps, metadata. Adapts to color scheme. */\n colorTextTertiary: `var(--fairmint-color-text-tertiary, ${neutral[4]})`,\n /** Background tint for selected / active rows. Adapts to color scheme. */\n colorSurfaceSelected: `var(--fairmint-color-surface-selected, ${indigo[0]})`,\n /** Large decorative watermark on error/empty pages. Adapts to color scheme. */\n watermarkColor: `var(--fairmint-watermark-color, ${neutral[1]})`,\n /** Heading font family (Plus Jakarta Sans). */\n fontHeadings: `var(--fairmint-font-headings, ${typography.headingFontFamily})`,\n /** Body font family (Inter). */\n fontBody: `var(--fairmint-font-body, ${typography.fontFamily})`,\n} as const;\n\n/**\n * Returns the MantineProvider props required to use @fairmint/ui components.\n * Use this when you need to instantiate MantineProvider directly (e.g. in\n * Storybook decorators or server-rendering setups) instead of FairmintProvider.\n *\n * @example\n * ```tsx\n * import { MantineProvider } from \"@mantine/core\";\n * import { createFairmintMantineProviderProps } from \"@fairmint/ui\";\n *\n * <MantineProvider {...createFairmintMantineProviderProps()}>\n * <App />\n * </MantineProvider>\n * ```\n */\nexport function createFairmintMantineProviderProps(\n colorScheme: \"light\" | \"dark\" | \"auto\" = \"light\",\n) {\n return {\n theme,\n cssVariablesResolver: fairmintCssVariables,\n defaultColorScheme: colorScheme,\n } as const;\n}\n\n/** Brand colors for gradients and custom styling. */\nexport const brandColors = {\n blue: \"#0A4EFB\",\n purple: \"#9E03FF\",\n indigo: \"#6366F1\",\n gradient: \"linear-gradient(90deg, #0A4EFB 0%, #9E03FF 100%)\",\n} as const;\n\nexport const commonColors = {\n black: \"#000000\",\n white: \"#ffffff\",\n} as const;\n\n/**\n * Card/row shadow used by WalletList and similar card surfaces.\n * Equivalent to neutralColors[900] at ~10% opacity (#111927 → #1119271A).\n */\nexport const shadowColor = {\n card: \"#1119271A\",\n} as const;\n\n/** Neutral scale for direct access outside Mantine's theme system. Keys are numeric literals. */\nexport const neutralColors = {\n 50: \"#F8F9FA\",\n 100: \"#F3F4F6\",\n 200: \"#E5E7EB\",\n 300: \"#D2D6DB\",\n 400: \"#9DA4AE\",\n 500: \"#6C737F\",\n 600: \"#4D5761\",\n 700: \"#2F3746\",\n 800: \"#1C2536\",\n 900: \"#111927\",\n} as const;\n\n/** Semantic colors for status-based styling. */\nexport const semanticColors = {\n success: \"#10B981\",\n warning: \"#F79009\",\n error: \"#F04438\",\n info: \"#06AED4\",\n} as const;\n\nexport type { AvatarPaletteColor, FairmintColor } from \"./colors\";\nexport { AVATAR_PALETTE, colors } from \"./colors\";\nexport type { FairmintFontSize } from \"./fontSizes\";\nexport { fontSizes } from \"./fontSizes\";\nexport { DEFAULT_FAIRMINT_LOGO_SRC } from \"./logo\";\nexport type { FairmintResponsiveTypography } from \"./responsiveTypography\";\nexport { responsiveTypography } from \"./responsiveTypography\";\nexport type { FairmintSpacing } from \"./spacing\";\nexport { spacing } from \"./spacing\";\nexport { overlayZIndexAboveLegacyShell } from \"./zIndex\";\n"],"names":["createTheme","spacing","fontSizes"],"mappings":";;;;;AAQO,MAAM,QAAQ;AAAA,EACnB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAOA,MAAM,SAA6B;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMA,MAAM,UAA8B;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AASA,MAAM,eAAmC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AASA,MAAM,iBAAqC;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,UAA8B;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,UAA8B;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,QAA4B;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,OAA2B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAOO,MAAM,aAAa;AAAA,EACxB,YACE;AAAA,EACF,mBAAmB;AACrB;AAEO,MAAM,QAAQA,YAAAA,YAAY;AAAA,EAC/B,cAAc;AAAA,EACd,QAAQ,EAAE,QAAQ,MAAM,SAAS,cAAc,gBAAgB,SAAS,SAAS,OAAO,KAAA;AAAA,EAExF,YAAY,WAAW;AAAA,EACvB,UAAU;AAAA,IACR,YAAY,WAAW;AAAA,IACvB,YAAY;AAAA,EAAA;AAAA,EAGd,QAAQ;AAAA,EACR,eAAe;AAAA,EAAA,SACfC,QAAAA;AAAAA,EACA,WAAW;AAAA,IACT,IAAIC,UAAAA,UAAU;AAAA,IACd,IAAIA,UAAAA,UAAU;AAAA,IACd,IAAIA,UAAAA,UAAU;AAAA,IACd,IAAIA,UAAAA,UAAU;AAAA,IACd,IAAIA,UAAAA,UAAU;AAAA,EAAA;AAAA,EAGhB,aAAa;AAAA,IACX,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA;AAAA,EAGN,YAAY;AAAA,IACV,QAAQ;AAAA,MACN,cAAc,EAAE,MAAM,KAAA;AAAA,MACtB,QAAQ;AAAA,QACN,MAAM;AAAA,UACJ,YAAY;AAAA,UACZ,cAAc;AAAA,UACd,eAAe;AAAA,QAAA;AAAA,MACjB;AAAA,IACF;AAAA,IAEF,WAAW;AAAA,MACT,cAAc,EAAE,MAAM,KAAA;AAAA,IAAK;AAAA,IAE7B,MAAM;AAAA,MACJ,cAAc;AAAA,QACZ,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,YAAY;AAAA,MAAA;AAAA,IACd;AAAA,IAEF,OAAO;AAAA,MACL,QAAQ;AAAA,QACN,MAAM,EAAE,iBAAiB,OAAA;AAAA,MAAO;AAAA,IAClC;AAAA,IAEF,OAAO;AAAA,MACL,QAAQ;AAAA,QACN,OAAO;AAAA,UACL,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,eAAe;AAAA,UACf,eAAe;AAAA,QAAA;AAAA,MACjB;AAAA,IACF;AAAA,IAEF,OAAO;AAAA,MACL,QAAQ;AAAA,QACN,OAAO;AAAA,UACL,UAAUA,UAAAA,UAAU;AAAA,UACpB,YAAY;AAAA,UACZ,YAAY;AAAA,QAAA;AAAA,MACd;AAAA,IACF;AAAA,EACF;AAEJ,CAAC;AAOM,MAAM,uBAA6C,OAAO;AAAA,EAC/D,WAAW;AAAA,IACT,4BAA4B,WAAW;AAAA,IACvC,wBAAwB,WAAW;AAAA,IACnC,qCAAqC,OAAO,CAAC;AAAA,EAAA;AAAA,EAE/C,OAAO;AAAA,IACL,8BAA8B,QAAQ,CAAC;AAAA,IACvC,iCAAiC,QAAQ,CAAC;AAAA,IAC1C,mCAAmC,QAAQ,CAAC;AAAA,IAC5C,kCAAkC,QAAQ,CAAC;AAAA,IAC3C,qCAAqC,OAAO,CAAC;AAAA,IAC7C,uCAAuC,aAAa,QAAQ,CAAC,CAAC;AAAA,IAC9D,mCAAmC,QAAQ,CAAC;AAAA,EAAA;AAAA,EAE9C,MAAM;AAAA,IACJ,8BAA8B,QAAQ,CAAC;AAAA,IACvC,iCAAiC,QAAQ,CAAC;AAAA,IAC1C,mCAAmC,QAAQ,CAAC;AAAA,IAC5C,kCAAkC,QAAQ,CAAC;AAAA,IAC3C,qCAAqC,OAAO,CAAC;AAAA,IAC7C,uCAAuC,aAAa,QAAQ,CAAC,CAAC;AAAA,IAC9D,mCAAmC,QAAQ,CAAC;AAAA,EAAA;AAEhD;AAYO,MAAM,eAAe;AAAA;AAAA,EAE1B,kBAAkB,sCAAsC,QAAQ,CAAC,CAAC;AAAA;AAAA,EAElE,oBAAoB,wCAAwC,QAAQ,CAAC,CAAC;AAAA;AAAA,EAEtE,mBAAmB,uCAAuC,QAAQ,CAAC,CAAC;AAAA;AAAA,EAEpE,sBAAsB,0CAA0C,OAAO,CAAC,CAAC;AAAA;AAAA,EAEzE,gBAAgB,mCAAmC,QAAQ,CAAC,CAAC;AAAA;AAAA,EAE7D,cAAc,iCAAiC,WAAW,iBAAiB;AAAA;AAAA,EAE3E,UAAU,6BAA6B,WAAW,UAAU;AAC9D;AAiBO,SAAS,mCACd,cAAyC,SACzC;AACA,SAAO;AAAA,IACL;AAAA,IACA,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,EAAA;AAExB;AAGO,MAAM,cAAc;AAAA,EACzB,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AACZ;AAEO,MAAM,eAAe;AAAA,EAC1B,OAAO;AAAA,EACP,OAAO;AACT;AAMO,MAAM,cAAc;AAAA,EACzB,MAAM;AACR;AAGO,MAAM,gBAAgB;AAAA,EAC3B,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAGO,MAAM,iBAAiB;AAAA,EAC5B,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AACR;;;;;;;;;;;;;;"}
@@ -395,6 +395,8 @@ export { AVATAR_PALETTE, colors } from './colors';
395
395
  export type { FairmintFontSize } from './fontSizes';
396
396
  export { fontSizes } from './fontSizes';
397
397
  export { DEFAULT_FAIRMINT_LOGO_SRC } from './logo';
398
+ export type { FairmintResponsiveTypography } from './responsiveTypography';
399
+ export { responsiveTypography } from './responsiveTypography';
398
400
  export type { FairmintSpacing } from './spacing';
399
401
  export { spacing } from './spacing';
400
402
  export { overlayZIndexAboveLegacyShell } from './zIndex';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAe,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIhG;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;CAMR,CAAC;AAiIX;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;CAIb,CAAC;AAEX,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EhB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,oBAwBjC,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY;IACvB,2EAA2E;;IAE3E,qFAAqF;;IAErF,4EAA4E;;IAE5E,0EAA0E;;IAE1E,+EAA+E;;IAE/E,+CAA+C;;IAE/C,gCAAgC;;CAExB,CAAC;AAEX;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kCAAkC,CAChD,WAAW,GAAE,OAAO,GAAG,MAAM,GAAG,MAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOjD;AAED,qDAAqD;AACrD,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,WAAW;;CAEd,CAAC;AAEX,iGAAiG;AACjG,eAAO,MAAM,aAAa;;;;;;;;;;;CAWhB,CAAC;AAEX,gDAAgD;AAChD,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAe,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIhG;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;CAMR,CAAC;AAiIX;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;CAIb,CAAC;AAEX,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EhB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,oBAwBjC,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY;IACvB,2EAA2E;;IAE3E,qFAAqF;;IAErF,4EAA4E;;IAE5E,0EAA0E;;IAE1E,+EAA+E;;IAE/E,+CAA+C;;IAE/C,gCAAgC;;CAExB,CAAC;AAEX;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kCAAkC,CAChD,WAAW,GAAE,OAAO,GAAG,MAAM,GAAG,MAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOjD;AAED,qDAAqD;AACrD,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,WAAW;;CAEd,CAAC;AAEX,iGAAiG;AACjG,eAAO,MAAM,aAAa;;;;;;;;;;;CAWhB,CAAC;AAEX,gDAAgD;AAChD,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AACnD,YAAY,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/theme/index.ts"],"sourcesContent":["import { type CSSVariablesResolver, createTheme, type MantineColorsTuple } from \"@mantine/core\";\nimport { fontSizes } from \"./fontSizes\";\nimport { spacing } from \"./spacing\";\n\n/**\n * Fairmint radius scale — single source of truth used by both the Mantine\n * theme config and the exported `radii` constant. Edit here; both stay in sync.\n */\nexport const radii = {\n xs: \"0.25rem\",\n sm: \"0.375rem\",\n md: \"0.5rem\",\n lg: \"0.75rem\",\n xl: \"1rem\",\n} as const;\n\n/**\n * Indigo palette — primary UI color.\n * Used for buttons, links, active navigation, focus rings.\n * Shade [5] (#6366F1) is the default primary.\n */\nconst indigo: MantineColorsTuple = [\n \"#EEF2FF\",\n \"#E0E7FF\",\n \"#C7D2FE\",\n \"#A5B4FC\",\n \"#818CF8\",\n \"#6366F1\",\n \"#4F46E5\",\n \"#4338CA\",\n \"#3730A3\",\n \"#312E81\",\n];\n\n/**\n * Neutral scale — replaces Mantine's default gray.\n * Used for text, borders, backgrounds, disabled states.\n */\nconst neutral: MantineColorsTuple = [\n \"#F8F9FA\",\n \"#F3F4F6\",\n \"#E5E7EB\",\n \"#D2D6DB\",\n \"#9DA4AE\",\n \"#6C737F\",\n \"#4D5761\",\n \"#2F3746\",\n \"#1C2536\",\n \"#111927\",\n];\n\n/**\n * Fairmint brand blue — accent color for gradients and brand elements.\n * Shade [5] (#0A4EFB) is the primary brand blue.\n *\n * NOTE: design/README.md lists #2D00F7 as Fairmint Blue.\n * This library uses #0A4EFB (production value from investorv2).\n */\nconst fairmintBlue: MantineColorsTuple = [\n \"#e6f0ff\",\n \"#cce0ff\",\n \"#99c2ff\",\n \"#66a3ff\",\n \"#3385ff\",\n \"#0A4EFB\",\n \"#083ec9\",\n \"#062e97\",\n \"#041f64\",\n \"#020f32\",\n];\n\n/**\n * Fairmint brand purple — accent color for gradients and brand elements.\n * Shade [5] (#9E03FF) is the primary brand purple.\n *\n * NOTE: design/README.md lists #6739FD as Fairmint Purple.\n * This library uses #9E03FF (production value from investorv2).\n */\nconst fairmintPurple: MantineColorsTuple = [\n \"#f5e6ff\",\n \"#e6ccff\",\n \"#cc99ff\",\n \"#b366ff\",\n \"#9933ff\",\n \"#9E03FF\",\n \"#7e02cc\",\n \"#5f0299\",\n \"#3f0166\",\n \"#200133\",\n];\n\nconst success: MantineColorsTuple = [\n \"#F0FDF9\",\n \"#D1FAE5\",\n \"#A7F3D0\",\n \"#6EE7B7\",\n \"#34D399\",\n \"#10B981\",\n \"#059669\",\n \"#047857\",\n \"#065F46\",\n \"#134E48\",\n];\n\nconst warning: MantineColorsTuple = [\n \"#FFFAEB\",\n \"#FEF0C7\",\n \"#FEDF89\",\n \"#FEC84B\",\n \"#FDB022\",\n \"#F79009\",\n \"#DC6803\",\n \"#B54708\",\n \"#93370D\",\n \"#7A2E0E\",\n];\n\nconst error: MantineColorsTuple = [\n \"#FEF3F2\",\n \"#FEE4E2\",\n \"#FECDCA\",\n \"#FDA29B\",\n \"#F97066\",\n \"#F04438\",\n \"#D92D20\",\n \"#B42318\",\n \"#912018\",\n \"#7A271A\",\n];\n\nconst info: MantineColorsTuple = [\n \"#ECFDFF\",\n \"#CFF9FE\",\n \"#A5F0FC\",\n \"#67E3F9\",\n \"#22CCEE\",\n \"#06AED4\",\n \"#088AB2\",\n \"#0E7090\",\n \"#155B75\",\n \"#164C63\",\n];\n\n/**\n * Typography constants — single source of truth for font families.\n * Use these instead of var(--mantine-font-family-*) in component code.\n * Declared before createTheme so the theme itself references them.\n */\nexport const typography = {\n fontFamily:\n '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\"',\n headingFontFamily: '\"Plus Jakarta Sans\", sans-serif',\n} as const;\n\nexport const theme = createTheme({\n primaryColor: \"indigo\",\n colors: { indigo, gray: neutral, fairmintBlue, fairmintPurple, success, warning, error, info },\n\n fontFamily: typography.fontFamily,\n headings: {\n fontFamily: typography.headingFontFamily,\n fontWeight: \"700\",\n },\n\n radius: radii,\n defaultRadius: \"md\",\n spacing,\n fontSizes: {\n xs: fontSizes.xs,\n sm: fontSizes.sm,\n md: fontSizes.md,\n lg: fontSizes.lg,\n xl: fontSizes.xl,\n },\n\n breakpoints: {\n xs: \"30em\",\n sm: \"48em\",\n md: \"64em\",\n lg: \"74em\",\n xl: \"90em\",\n },\n\n components: {\n Button: {\n defaultProps: { size: \"md\" },\n styles: {\n root: {\n fontWeight: 600,\n borderRadius: \"0.75rem\",\n textTransform: \"none\" as const,\n },\n },\n },\n TextInput: {\n defaultProps: { size: \"md\" },\n },\n Card: {\n defaultProps: {\n padding: \"lg\",\n radius: \"xl\",\n withBorder: true,\n },\n },\n Paper: {\n styles: {\n root: { backgroundImage: \"none\" },\n },\n },\n Table: {\n styles: {\n thead: {\n fontSize: \"0.75rem\",\n fontWeight: 600,\n letterSpacing: \"0.5px\",\n textTransform: \"uppercase\" as const,\n },\n },\n },\n Modal: {\n styles: {\n title: {\n fontSize: fontSizes.lg,\n fontWeight: 700,\n lineHeight: 1.3,\n },\n },\n },\n },\n});\n\n/**\n * Fairmint CSS variables resolver for MantineProvider.\n * Publishes --fairmint-* custom properties so components never reference\n * --mantine-* variables directly. All light/dark switching is centralised here.\n */\nexport const fairmintCssVariables: CSSVariablesResolver = () => ({\n variables: {\n \"--fairmint-font-headings\": typography.headingFontFamily,\n \"--fairmint-font-body\": typography.fontFamily,\n \"--fairmint-interactive-focus-ring\": indigo[5],\n },\n light: {\n \"--fairmint-watermark-color\": neutral[1],\n \"--fairmint-color-text-primary\": neutral[9],\n \"--fairmint-color-text-secondary\": neutral[5],\n \"--fairmint-color-text-tertiary\": neutral[4],\n \"--fairmint-color-surface-selected\": indigo[0],\n \"--fairmint-interactive-hover-shadow\": `0 2px 6px ${neutral[9]}0F`,\n \"--fairmint-interactive-hover-bg\": neutral[0],\n },\n dark: {\n \"--fairmint-watermark-color\": neutral[7],\n \"--fairmint-color-text-primary\": neutral[0],\n \"--fairmint-color-text-secondary\": neutral[4],\n \"--fairmint-color-text-tertiary\": neutral[5],\n \"--fairmint-color-surface-selected\": indigo[9],\n \"--fairmint-interactive-hover-shadow\": `0 2px 6px ${neutral[0]}1A`,\n \"--fairmint-interactive-hover-bg\": neutral[8],\n },\n});\n\n/**\n * Typed JS references to every --fairmint-* CSS custom property.\n * Use these in component code instead of raw \"var(--fairmint-...)\" strings so\n * that renaming a token requires one change here rather than hunting every file.\n *\n * Each value includes a CSS fallback derived from the light-mode token value so\n * that components degrade gracefully when cssVariablesResolver is not wired up\n * (e.g. bare MantineProvider in tests or custom setups). Dark-mode fidelity is\n * lost without the resolver, but nothing renders invisibly.\n */\nexport const fairmintVars = {\n /** Primary body/heading text — titles on tinted surfaces (Chip Banner). */\n colorTextPrimary: `var(--fairmint-color-text-primary, ${neutral[9]})`,\n /** Secondary / muted text — subtitles, supporting labels. Adapts to color scheme. */\n colorTextSecondary: `var(--fairmint-color-text-secondary, ${neutral[5]})`,\n /** Tertiary / faint text — timestamps, metadata. Adapts to color scheme. */\n colorTextTertiary: `var(--fairmint-color-text-tertiary, ${neutral[4]})`,\n /** Background tint for selected / active rows. Adapts to color scheme. */\n colorSurfaceSelected: `var(--fairmint-color-surface-selected, ${indigo[0]})`,\n /** Large decorative watermark on error/empty pages. Adapts to color scheme. */\n watermarkColor: `var(--fairmint-watermark-color, ${neutral[1]})`,\n /** Heading font family (Plus Jakarta Sans). */\n fontHeadings: `var(--fairmint-font-headings, ${typography.headingFontFamily})`,\n /** Body font family (Inter). */\n fontBody: `var(--fairmint-font-body, ${typography.fontFamily})`,\n} as const;\n\n/**\n * Returns the MantineProvider props required to use @fairmint/ui components.\n * Use this when you need to instantiate MantineProvider directly (e.g. in\n * Storybook decorators or server-rendering setups) instead of FairmintProvider.\n *\n * @example\n * ```tsx\n * import { MantineProvider } from \"@mantine/core\";\n * import { createFairmintMantineProviderProps } from \"@fairmint/ui\";\n *\n * <MantineProvider {...createFairmintMantineProviderProps()}>\n * <App />\n * </MantineProvider>\n * ```\n */\nexport function createFairmintMantineProviderProps(\n colorScheme: \"light\" | \"dark\" | \"auto\" = \"light\",\n) {\n return {\n theme,\n cssVariablesResolver: fairmintCssVariables,\n defaultColorScheme: colorScheme,\n } as const;\n}\n\n/** Brand colors for gradients and custom styling. */\nexport const brandColors = {\n blue: \"#0A4EFB\",\n purple: \"#9E03FF\",\n indigo: \"#6366F1\",\n gradient: \"linear-gradient(90deg, #0A4EFB 0%, #9E03FF 100%)\",\n} as const;\n\nexport const commonColors = {\n black: \"#000000\",\n white: \"#ffffff\",\n} as const;\n\n/**\n * Card/row shadow used by WalletList and similar card surfaces.\n * Equivalent to neutralColors[900] at ~10% opacity (#111927 → #1119271A).\n */\nexport const shadowColor = {\n card: \"#1119271A\",\n} as const;\n\n/** Neutral scale for direct access outside Mantine's theme system. Keys are numeric literals. */\nexport const neutralColors = {\n 50: \"#F8F9FA\",\n 100: \"#F3F4F6\",\n 200: \"#E5E7EB\",\n 300: \"#D2D6DB\",\n 400: \"#9DA4AE\",\n 500: \"#6C737F\",\n 600: \"#4D5761\",\n 700: \"#2F3746\",\n 800: \"#1C2536\",\n 900: \"#111927\",\n} as const;\n\n/** Semantic colors for status-based styling. */\nexport const semanticColors = {\n success: \"#10B981\",\n warning: \"#F79009\",\n error: \"#F04438\",\n info: \"#06AED4\",\n} as const;\n\nexport type { AvatarPaletteColor, FairmintColor } from \"./colors\";\nexport { AVATAR_PALETTE, colors } from \"./colors\";\nexport type { FairmintFontSize } from \"./fontSizes\";\nexport { fontSizes } from \"./fontSizes\";\nexport { DEFAULT_FAIRMINT_LOGO_SRC } from \"./logo\";\nexport type { FairmintSpacing } from \"./spacing\";\nexport { spacing } from \"./spacing\";\nexport { overlayZIndexAboveLegacyShell } from \"./zIndex\";\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/theme/index.ts"],"sourcesContent":["import { type CSSVariablesResolver, createTheme, type MantineColorsTuple } from \"@mantine/core\";\nimport { fontSizes } from \"./fontSizes\";\nimport { spacing } from \"./spacing\";\n\n/**\n * Fairmint radius scale — single source of truth used by both the Mantine\n * theme config and the exported `radii` constant. Edit here; both stay in sync.\n */\nexport const radii = {\n xs: \"0.25rem\",\n sm: \"0.375rem\",\n md: \"0.5rem\",\n lg: \"0.75rem\",\n xl: \"1rem\",\n} as const;\n\n/**\n * Indigo palette — primary UI color.\n * Used for buttons, links, active navigation, focus rings.\n * Shade [5] (#6366F1) is the default primary.\n */\nconst indigo: MantineColorsTuple = [\n \"#EEF2FF\",\n \"#E0E7FF\",\n \"#C7D2FE\",\n \"#A5B4FC\",\n \"#818CF8\",\n \"#6366F1\",\n \"#4F46E5\",\n \"#4338CA\",\n \"#3730A3\",\n \"#312E81\",\n];\n\n/**\n * Neutral scale — replaces Mantine's default gray.\n * Used for text, borders, backgrounds, disabled states.\n */\nconst neutral: MantineColorsTuple = [\n \"#F8F9FA\",\n \"#F3F4F6\",\n \"#E5E7EB\",\n \"#D2D6DB\",\n \"#9DA4AE\",\n \"#6C737F\",\n \"#4D5761\",\n \"#2F3746\",\n \"#1C2536\",\n \"#111927\",\n];\n\n/**\n * Fairmint brand blue — accent color for gradients and brand elements.\n * Shade [5] (#0A4EFB) is the primary brand blue.\n *\n * NOTE: design/README.md lists #2D00F7 as Fairmint Blue.\n * This library uses #0A4EFB (production value from investorv2).\n */\nconst fairmintBlue: MantineColorsTuple = [\n \"#e6f0ff\",\n \"#cce0ff\",\n \"#99c2ff\",\n \"#66a3ff\",\n \"#3385ff\",\n \"#0A4EFB\",\n \"#083ec9\",\n \"#062e97\",\n \"#041f64\",\n \"#020f32\",\n];\n\n/**\n * Fairmint brand purple — accent color for gradients and brand elements.\n * Shade [5] (#9E03FF) is the primary brand purple.\n *\n * NOTE: design/README.md lists #6739FD as Fairmint Purple.\n * This library uses #9E03FF (production value from investorv2).\n */\nconst fairmintPurple: MantineColorsTuple = [\n \"#f5e6ff\",\n \"#e6ccff\",\n \"#cc99ff\",\n \"#b366ff\",\n \"#9933ff\",\n \"#9E03FF\",\n \"#7e02cc\",\n \"#5f0299\",\n \"#3f0166\",\n \"#200133\",\n];\n\nconst success: MantineColorsTuple = [\n \"#F0FDF9\",\n \"#D1FAE5\",\n \"#A7F3D0\",\n \"#6EE7B7\",\n \"#34D399\",\n \"#10B981\",\n \"#059669\",\n \"#047857\",\n \"#065F46\",\n \"#134E48\",\n];\n\nconst warning: MantineColorsTuple = [\n \"#FFFAEB\",\n \"#FEF0C7\",\n \"#FEDF89\",\n \"#FEC84B\",\n \"#FDB022\",\n \"#F79009\",\n \"#DC6803\",\n \"#B54708\",\n \"#93370D\",\n \"#7A2E0E\",\n];\n\nconst error: MantineColorsTuple = [\n \"#FEF3F2\",\n \"#FEE4E2\",\n \"#FECDCA\",\n \"#FDA29B\",\n \"#F97066\",\n \"#F04438\",\n \"#D92D20\",\n \"#B42318\",\n \"#912018\",\n \"#7A271A\",\n];\n\nconst info: MantineColorsTuple = [\n \"#ECFDFF\",\n \"#CFF9FE\",\n \"#A5F0FC\",\n \"#67E3F9\",\n \"#22CCEE\",\n \"#06AED4\",\n \"#088AB2\",\n \"#0E7090\",\n \"#155B75\",\n \"#164C63\",\n];\n\n/**\n * Typography constants — single source of truth for font families.\n * Use these instead of var(--mantine-font-family-*) in component code.\n * Declared before createTheme so the theme itself references them.\n */\nexport const typography = {\n fontFamily:\n '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\"',\n headingFontFamily: '\"Plus Jakarta Sans\", sans-serif',\n} as const;\n\nexport const theme = createTheme({\n primaryColor: \"indigo\",\n colors: { indigo, gray: neutral, fairmintBlue, fairmintPurple, success, warning, error, info },\n\n fontFamily: typography.fontFamily,\n headings: {\n fontFamily: typography.headingFontFamily,\n fontWeight: \"700\",\n },\n\n radius: radii,\n defaultRadius: \"md\",\n spacing,\n fontSizes: {\n xs: fontSizes.xs,\n sm: fontSizes.sm,\n md: fontSizes.md,\n lg: fontSizes.lg,\n xl: fontSizes.xl,\n },\n\n breakpoints: {\n xs: \"30em\",\n sm: \"48em\",\n md: \"64em\",\n lg: \"74em\",\n xl: \"90em\",\n },\n\n components: {\n Button: {\n defaultProps: { size: \"md\" },\n styles: {\n root: {\n fontWeight: 600,\n borderRadius: \"0.75rem\",\n textTransform: \"none\" as const,\n },\n },\n },\n TextInput: {\n defaultProps: { size: \"md\" },\n },\n Card: {\n defaultProps: {\n padding: \"lg\",\n radius: \"xl\",\n withBorder: true,\n },\n },\n Paper: {\n styles: {\n root: { backgroundImage: \"none\" },\n },\n },\n Table: {\n styles: {\n thead: {\n fontSize: \"0.75rem\",\n fontWeight: 600,\n letterSpacing: \"0.5px\",\n textTransform: \"uppercase\" as const,\n },\n },\n },\n Modal: {\n styles: {\n title: {\n fontSize: fontSizes.lg,\n fontWeight: 700,\n lineHeight: 1.3,\n },\n },\n },\n },\n});\n\n/**\n * Fairmint CSS variables resolver for MantineProvider.\n * Publishes --fairmint-* custom properties so components never reference\n * --mantine-* variables directly. All light/dark switching is centralised here.\n */\nexport const fairmintCssVariables: CSSVariablesResolver = () => ({\n variables: {\n \"--fairmint-font-headings\": typography.headingFontFamily,\n \"--fairmint-font-body\": typography.fontFamily,\n \"--fairmint-interactive-focus-ring\": indigo[5],\n },\n light: {\n \"--fairmint-watermark-color\": neutral[1],\n \"--fairmint-color-text-primary\": neutral[9],\n \"--fairmint-color-text-secondary\": neutral[5],\n \"--fairmint-color-text-tertiary\": neutral[4],\n \"--fairmint-color-surface-selected\": indigo[0],\n \"--fairmint-interactive-hover-shadow\": `0 2px 6px ${neutral[9]}0F`,\n \"--fairmint-interactive-hover-bg\": neutral[0],\n },\n dark: {\n \"--fairmint-watermark-color\": neutral[7],\n \"--fairmint-color-text-primary\": neutral[0],\n \"--fairmint-color-text-secondary\": neutral[4],\n \"--fairmint-color-text-tertiary\": neutral[5],\n \"--fairmint-color-surface-selected\": indigo[9],\n \"--fairmint-interactive-hover-shadow\": `0 2px 6px ${neutral[0]}1A`,\n \"--fairmint-interactive-hover-bg\": neutral[8],\n },\n});\n\n/**\n * Typed JS references to every --fairmint-* CSS custom property.\n * Use these in component code instead of raw \"var(--fairmint-...)\" strings so\n * that renaming a token requires one change here rather than hunting every file.\n *\n * Each value includes a CSS fallback derived from the light-mode token value so\n * that components degrade gracefully when cssVariablesResolver is not wired up\n * (e.g. bare MantineProvider in tests or custom setups). Dark-mode fidelity is\n * lost without the resolver, but nothing renders invisibly.\n */\nexport const fairmintVars = {\n /** Primary body/heading text — titles on tinted surfaces (Chip Banner). */\n colorTextPrimary: `var(--fairmint-color-text-primary, ${neutral[9]})`,\n /** Secondary / muted text — subtitles, supporting labels. Adapts to color scheme. */\n colorTextSecondary: `var(--fairmint-color-text-secondary, ${neutral[5]})`,\n /** Tertiary / faint text — timestamps, metadata. Adapts to color scheme. */\n colorTextTertiary: `var(--fairmint-color-text-tertiary, ${neutral[4]})`,\n /** Background tint for selected / active rows. Adapts to color scheme. */\n colorSurfaceSelected: `var(--fairmint-color-surface-selected, ${indigo[0]})`,\n /** Large decorative watermark on error/empty pages. Adapts to color scheme. */\n watermarkColor: `var(--fairmint-watermark-color, ${neutral[1]})`,\n /** Heading font family (Plus Jakarta Sans). */\n fontHeadings: `var(--fairmint-font-headings, ${typography.headingFontFamily})`,\n /** Body font family (Inter). */\n fontBody: `var(--fairmint-font-body, ${typography.fontFamily})`,\n} as const;\n\n/**\n * Returns the MantineProvider props required to use @fairmint/ui components.\n * Use this when you need to instantiate MantineProvider directly (e.g. in\n * Storybook decorators or server-rendering setups) instead of FairmintProvider.\n *\n * @example\n * ```tsx\n * import { MantineProvider } from \"@mantine/core\";\n * import { createFairmintMantineProviderProps } from \"@fairmint/ui\";\n *\n * <MantineProvider {...createFairmintMantineProviderProps()}>\n * <App />\n * </MantineProvider>\n * ```\n */\nexport function createFairmintMantineProviderProps(\n colorScheme: \"light\" | \"dark\" | \"auto\" = \"light\",\n) {\n return {\n theme,\n cssVariablesResolver: fairmintCssVariables,\n defaultColorScheme: colorScheme,\n } as const;\n}\n\n/** Brand colors for gradients and custom styling. */\nexport const brandColors = {\n blue: \"#0A4EFB\",\n purple: \"#9E03FF\",\n indigo: \"#6366F1\",\n gradient: \"linear-gradient(90deg, #0A4EFB 0%, #9E03FF 100%)\",\n} as const;\n\nexport const commonColors = {\n black: \"#000000\",\n white: \"#ffffff\",\n} as const;\n\n/**\n * Card/row shadow used by WalletList and similar card surfaces.\n * Equivalent to neutralColors[900] at ~10% opacity (#111927 → #1119271A).\n */\nexport const shadowColor = {\n card: \"#1119271A\",\n} as const;\n\n/** Neutral scale for direct access outside Mantine's theme system. Keys are numeric literals. */\nexport const neutralColors = {\n 50: \"#F8F9FA\",\n 100: \"#F3F4F6\",\n 200: \"#E5E7EB\",\n 300: \"#D2D6DB\",\n 400: \"#9DA4AE\",\n 500: \"#6C737F\",\n 600: \"#4D5761\",\n 700: \"#2F3746\",\n 800: \"#1C2536\",\n 900: \"#111927\",\n} as const;\n\n/** Semantic colors for status-based styling. */\nexport const semanticColors = {\n success: \"#10B981\",\n warning: \"#F79009\",\n error: \"#F04438\",\n info: \"#06AED4\",\n} as const;\n\nexport type { AvatarPaletteColor, FairmintColor } from \"./colors\";\nexport { AVATAR_PALETTE, colors } from \"./colors\";\nexport type { FairmintFontSize } from \"./fontSizes\";\nexport { fontSizes } from \"./fontSizes\";\nexport { DEFAULT_FAIRMINT_LOGO_SRC } from \"./logo\";\nexport type { FairmintResponsiveTypography } from \"./responsiveTypography\";\nexport { responsiveTypography } from \"./responsiveTypography\";\nexport type { FairmintSpacing } from \"./spacing\";\nexport { spacing } from \"./spacing\";\nexport { overlayZIndexAboveLegacyShell } from \"./zIndex\";\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const responsiveTypography = {
4
+ h1: { base: "1.75rem", sm: "2.125rem" },
5
+ h2: { base: "1.375rem", sm: "1.625rem" },
6
+ h3: { base: "1.25rem", sm: "1.375rem" },
7
+ h4: { base: "1.125rem", sm: "1.125rem" },
8
+ h5: { base: "1rem", sm: "1rem" },
9
+ h6: { base: "0.875rem", sm: "0.875rem" },
10
+ cardTitle: { base: "1.0625rem", sm: "1.1875rem" }
11
+ };
12
+ exports.responsiveTypography = responsiveTypography;
13
+ //# sourceMappingURL=responsiveTypography.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responsiveTypography.cjs","sources":["../../src/theme/responsiveTypography.ts"],"sourcesContent":["/**\n * Fairmint's mobile-first responsive typography scale.\n *\n * `base` is the mobile value used below the `sm` breakpoint (48em / 768px).\n * `sm` is the desktop value used at and above that breakpoint.\n * Keep these values semantic so components can opt into a role instead of\n * choosing a one-off responsive font size.\n */\nexport const responsiveTypography = {\n h1: { base: \"1.75rem\", sm: \"2.125rem\" },\n h2: { base: \"1.375rem\", sm: \"1.625rem\" },\n h3: { base: \"1.25rem\", sm: \"1.375rem\" },\n h4: { base: \"1.125rem\", sm: \"1.125rem\" },\n h5: { base: \"1rem\", sm: \"1rem\" },\n h6: { base: \"0.875rem\", sm: \"0.875rem\" },\n cardTitle: { base: \"1.0625rem\", sm: \"1.1875rem\" },\n} as const;\n\nexport type FairmintResponsiveTypography = keyof typeof responsiveTypography;\n"],"names":[],"mappings":";;AAQO,MAAM,uBAAuB;AAAA,EAClC,IAAI,EAAE,MAAM,WAAW,IAAI,WAAA;AAAA,EAC3B,IAAI,EAAE,MAAM,YAAY,IAAI,WAAA;AAAA,EAC5B,IAAI,EAAE,MAAM,WAAW,IAAI,WAAA;AAAA,EAC3B,IAAI,EAAE,MAAM,YAAY,IAAI,WAAA;AAAA,EAC5B,IAAI,EAAE,MAAM,QAAQ,IAAI,OAAA;AAAA,EACxB,IAAI,EAAE,MAAM,YAAY,IAAI,WAAA;AAAA,EAC5B,WAAW,EAAE,MAAM,aAAa,IAAI,YAAA;AACtC;;"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Fairmint's mobile-first responsive typography scale.
3
+ *
4
+ * `base` is the mobile value used below the `sm` breakpoint (48em / 768px).
5
+ * `sm` is the desktop value used at and above that breakpoint.
6
+ * Keep these values semantic so components can opt into a role instead of
7
+ * choosing a one-off responsive font size.
8
+ */
9
+ export declare const responsiveTypography: {
10
+ readonly h1: {
11
+ readonly base: "1.75rem";
12
+ readonly sm: "2.125rem";
13
+ };
14
+ readonly h2: {
15
+ readonly base: "1.375rem";
16
+ readonly sm: "1.625rem";
17
+ };
18
+ readonly h3: {
19
+ readonly base: "1.25rem";
20
+ readonly sm: "1.375rem";
21
+ };
22
+ readonly h4: {
23
+ readonly base: "1.125rem";
24
+ readonly sm: "1.125rem";
25
+ };
26
+ readonly h5: {
27
+ readonly base: "1rem";
28
+ readonly sm: "1rem";
29
+ };
30
+ readonly h6: {
31
+ readonly base: "0.875rem";
32
+ readonly sm: "0.875rem";
33
+ };
34
+ readonly cardTitle: {
35
+ readonly base: "1.0625rem";
36
+ readonly sm: "1.1875rem";
37
+ };
38
+ };
39
+ export type FairmintResponsiveTypography = keyof typeof responsiveTypography;
40
+ //# sourceMappingURL=responsiveTypography.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responsiveTypography.d.ts","sourceRoot":"","sources":["../../src/theme/responsiveTypography.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQvB,CAAC;AAEX,MAAM,MAAM,4BAA4B,GAAG,MAAM,OAAO,oBAAoB,CAAC"}
@@ -0,0 +1,13 @@
1
+ const responsiveTypography = {
2
+ h1: { base: "1.75rem", sm: "2.125rem" },
3
+ h2: { base: "1.375rem", sm: "1.625rem" },
4
+ h3: { base: "1.25rem", sm: "1.375rem" },
5
+ h4: { base: "1.125rem", sm: "1.125rem" },
6
+ h5: { base: "1rem", sm: "1rem" },
7
+ h6: { base: "0.875rem", sm: "0.875rem" },
8
+ cardTitle: { base: "1.0625rem", sm: "1.1875rem" }
9
+ };
10
+ export {
11
+ responsiveTypography
12
+ };
13
+ //# sourceMappingURL=responsiveTypography.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responsiveTypography.js","sources":["../../src/theme/responsiveTypography.ts"],"sourcesContent":["/**\n * Fairmint's mobile-first responsive typography scale.\n *\n * `base` is the mobile value used below the `sm` breakpoint (48em / 768px).\n * `sm` is the desktop value used at and above that breakpoint.\n * Keep these values semantic so components can opt into a role instead of\n * choosing a one-off responsive font size.\n */\nexport const responsiveTypography = {\n h1: { base: \"1.75rem\", sm: \"2.125rem\" },\n h2: { base: \"1.375rem\", sm: \"1.625rem\" },\n h3: { base: \"1.25rem\", sm: \"1.375rem\" },\n h4: { base: \"1.125rem\", sm: \"1.125rem\" },\n h5: { base: \"1rem\", sm: \"1rem\" },\n h6: { base: \"0.875rem\", sm: \"0.875rem\" },\n cardTitle: { base: \"1.0625rem\", sm: \"1.1875rem\" },\n} as const;\n\nexport type FairmintResponsiveTypography = keyof typeof responsiveTypography;\n"],"names":[],"mappings":"AAQO,MAAM,uBAAuB;AAAA,EAClC,IAAI,EAAE,MAAM,WAAW,IAAI,WAAA;AAAA,EAC3B,IAAI,EAAE,MAAM,YAAY,IAAI,WAAA;AAAA,EAC5B,IAAI,EAAE,MAAM,WAAW,IAAI,WAAA;AAAA,EAC3B,IAAI,EAAE,MAAM,YAAY,IAAI,WAAA;AAAA,EAC5B,IAAI,EAAE,MAAM,QAAQ,IAAI,OAAA;AAAA,EACxB,IAAI,EAAE,MAAM,YAAY,IAAI,WAAA;AAAA,EAC5B,WAAW,EAAE,MAAM,aAAa,IAAI,YAAA;AACtC;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fairmint/ui",
3
- "version": "0.3.5",
3
+ "version": "0.3.7",
4
4
  "type": "module",
5
5
  "description": "Fairmint design system and UI component library",
6
6
  "license": "UNLICENSED",