@fairmint/ui 0.2.15 → 0.2.17

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.
@@ -0,0 +1,21 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ClickableCardProps {
3
+ /** Click handler. */
4
+ onClick?: () => void;
5
+ /** Accessible label for screen readers. */
6
+ ariaLabel?: string;
7
+ /** Entrance animation delay in seconds. Omit to skip animation. */
8
+ animationDelay?: number;
9
+ /** Card background. Passed to Card `bg` prop. */
10
+ bg?: string;
11
+ /** Card padding. Passed to Card `padding` prop. @default "md" */
12
+ padding?: string;
13
+ /** Card radius. Passed to Card `radius` prop. @default "md" */
14
+ radius?: string;
15
+ /** Show card border. @default true */
16
+ withBorder?: boolean;
17
+ /** Children rendered inside the card. */
18
+ children: ReactNode;
19
+ }
20
+ export declare function ClickableCard({ onClick, ariaLabel, animationDelay, bg, padding, radius, withBorder, children, }: ClickableCardProps): import("react/jsx-runtime").JSX.Element;
21
+ //# sourceMappingURL=ClickableCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClickableCard.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/ClickableCard/ClickableCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAKtD,MAAM,WAAW,kBAAkB;IACjC,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,SAAS,EACT,cAAc,EACd,EAAE,EACF,OAAc,EACd,MAAa,EACb,UAAiB,EACjB,QAAQ,GACT,EAAE,kBAAkB,2CA8CpB"}
@@ -0,0 +1,9 @@
1
+ import { BoxProps } from '../../primitives/layout';
2
+ export interface ColorDotProps extends Omit<BoxProps, "children"> {
3
+ /** Dot color — any valid CSS color string. */
4
+ color: string;
5
+ /** Dot diameter in pixels. @default 8 */
6
+ size?: number;
7
+ }
8
+ export declare function ColorDot({ color, size, style, ...rest }: ColorDotProps): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=ColorDot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorDot.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/ColorDot/ColorDot.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC/D,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa,2CAU1E"}
@@ -7,5 +7,5 @@ export interface CurrencyProps extends Omit<TextProps, "children"> {
7
7
  /** Currency code for non-USD display (e.g., "EUR"). Implies precise=true. */
8
8
  currency?: string;
9
9
  }
10
- export declare function Currency({ value, precise, currency, ...rest }: CurrencyProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function Currency({ value, precise, currency, style, ...rest }: CurrencyProps): import("react/jsx-runtime").JSX.Element;
11
11
  //# sourceMappingURL=Currency.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Currency.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/Currency/Currency.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IAChE,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAe,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa,2CAcpF"}
1
+ {"version":3,"file":"Currency.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/Currency/Currency.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IAChE,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa,2CAc3F"}
@@ -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;AAO1D,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,2CAoGnB"}
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 +1 @@
1
- {"version":3,"file":"ListRow.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/ListRow/ListRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkBD,wBAAgB,OAAO,CAAC,EACtB,SAAS,EACT,cAAc,EACd,WAA4B,EAC5B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,OAAO,EACP,cAAc,EACd,UAAkB,EAClB,SAAS,GACV,EAAE,YAAY,2CAgGd"}
1
+ {"version":3,"file":"ListRow.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/ListRow/ListRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkBD,wBAAgB,OAAO,CAAC,EACtB,SAAS,EACT,cAAc,EACd,WAA4B,EAC5B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,OAAO,EACP,cAAc,EACd,UAAkB,EAClB,SAAS,GACV,EAAE,YAAY,2CAqFd"}
@@ -15857,14 +15857,14 @@ function useAvatarGroupContext() {
15857
15857
  const ctx = React.useContext(AvatarGroupContext);
15858
15858
  return { withinGroup: !!ctx };
15859
15859
  }
15860
- const varsResolver$v = createVarsResolver((_, { spacing }) => ({
15860
+ const varsResolver$v = createVarsResolver((_, { spacing: spacing2 }) => ({
15861
15861
  group: {
15862
- "--ag-spacing": getSpacing(spacing)
15862
+ "--ag-spacing": getSpacing(spacing2)
15863
15863
  }
15864
15864
  }));
15865
15865
  const AvatarGroup = factory((_props, ref) => {
15866
15866
  const props = useProps("AvatarGroup", null, _props);
15867
- const { classNames: classNames2, className, style, styles, unstyled, vars, spacing, attributes, ...others } = props;
15867
+ const { classNames: classNames2, className, style, styles, unstyled, vars, spacing: spacing2, attributes, ...others } = props;
15868
15868
  const getStyles2 = useStyles({
15869
15869
  name: "AvatarGroup",
15870
15870
  classes: classes$t,
@@ -21401,15 +21401,15 @@ Select$1.classes = { ...InputBase.classes, ...Combobox.classes };
21401
21401
  Select$1.displayName = "@mantine/core/Select";
21402
21402
  var classes$8 = { "container": "m_925c2d2c", "root": "m_2415a157" };
21403
21403
  function SimpleGridMediaVariables({
21404
- spacing,
21404
+ spacing: spacing2,
21405
21405
  verticalSpacing,
21406
21406
  cols,
21407
21407
  selector
21408
21408
  }) {
21409
21409
  const theme2 = useMantineTheme();
21410
- const _verticalSpacing = verticalSpacing === void 0 ? spacing : verticalSpacing;
21410
+ const _verticalSpacing = verticalSpacing === void 0 ? spacing2 : verticalSpacing;
21411
21411
  const baseStyles = filterProps({
21412
- "--sg-spacing-x": getSpacing(getBaseValue$1(spacing)),
21412
+ "--sg-spacing-x": getSpacing(getBaseValue$1(spacing2)),
21413
21413
  "--sg-spacing-y": getSpacing(getBaseValue$1(_verticalSpacing)),
21414
21414
  "--sg-cols": getBaseValue$1(cols)?.toString()
21415
21415
  });
@@ -21418,8 +21418,8 @@ function SimpleGridMediaVariables({
21418
21418
  if (!acc[breakpoint]) {
21419
21419
  acc[breakpoint] = {};
21420
21420
  }
21421
- if (typeof spacing === "object" && spacing[breakpoint] !== void 0) {
21422
- acc[breakpoint]["--sg-spacing-x"] = getSpacing(spacing[breakpoint]);
21421
+ if (typeof spacing2 === "object" && spacing2[breakpoint] !== void 0) {
21422
+ acc[breakpoint]["--sg-spacing-x"] = getSpacing(spacing2[breakpoint]);
21423
21423
  }
21424
21424
  if (typeof _verticalSpacing === "object" && _verticalSpacing[breakpoint] !== void 0) {
21425
21425
  acc[breakpoint]["--sg-spacing-y"] = getSpacing(_verticalSpacing[breakpoint]);
@@ -21450,13 +21450,13 @@ function sortBreakpoints(breakpoints) {
21450
21450
  return breakpoints.sort((a, b) => px(a) - px(b));
21451
21451
  }
21452
21452
  function getUniqueBreakpoints({
21453
- spacing,
21453
+ spacing: spacing2,
21454
21454
  verticalSpacing,
21455
21455
  cols
21456
21456
  }) {
21457
21457
  const breakpoints = Array.from(
21458
21458
  /* @__PURE__ */ new Set([
21459
- ...getBreakpoints(spacing),
21459
+ ...getBreakpoints(spacing2),
21460
21460
  ...getBreakpoints(verticalSpacing),
21461
21461
  ...getBreakpoints(cols)
21462
21462
  ])
@@ -21464,25 +21464,25 @@ function getUniqueBreakpoints({
21464
21464
  return sortBreakpoints(breakpoints);
21465
21465
  }
21466
21466
  function SimpleGridContainerVariables({
21467
- spacing,
21467
+ spacing: spacing2,
21468
21468
  verticalSpacing,
21469
21469
  cols,
21470
21470
  selector
21471
21471
  }) {
21472
- const _verticalSpacing = verticalSpacing === void 0 ? spacing : verticalSpacing;
21472
+ const _verticalSpacing = verticalSpacing === void 0 ? spacing2 : verticalSpacing;
21473
21473
  const baseStyles = filterProps({
21474
- "--sg-spacing-x": getSpacing(getBaseValue$1(spacing)),
21474
+ "--sg-spacing-x": getSpacing(getBaseValue$1(spacing2)),
21475
21475
  "--sg-spacing-y": getSpacing(getBaseValue$1(_verticalSpacing)),
21476
21476
  "--sg-cols": getBaseValue$1(cols)?.toString()
21477
21477
  });
21478
- const uniqueBreakpoints = getUniqueBreakpoints({ spacing, verticalSpacing, cols });
21478
+ const uniqueBreakpoints = getUniqueBreakpoints({ spacing: spacing2, verticalSpacing, cols });
21479
21479
  const queries = uniqueBreakpoints.reduce(
21480
21480
  (acc, breakpoint) => {
21481
21481
  if (!acc[breakpoint]) {
21482
21482
  acc[breakpoint] = {};
21483
21483
  }
21484
- if (typeof spacing === "object" && spacing[breakpoint] !== void 0) {
21485
- acc[breakpoint]["--sg-spacing-x"] = getSpacing(spacing[breakpoint]);
21484
+ if (typeof spacing2 === "object" && spacing2[breakpoint] !== void 0) {
21485
+ acc[breakpoint]["--sg-spacing-x"] = getSpacing(spacing2[breakpoint]);
21486
21486
  }
21487
21487
  if (typeof _verticalSpacing === "object" && _verticalSpacing[breakpoint] !== void 0) {
21488
21488
  acc[breakpoint]["--sg-spacing-y"] = getSpacing(_verticalSpacing[breakpoint]);
@@ -21516,7 +21516,7 @@ const SimpleGrid = factory((_props, ref) => {
21516
21516
  vars,
21517
21517
  cols,
21518
21518
  verticalSpacing,
21519
- spacing,
21519
+ spacing: spacing2,
21520
21520
  type,
21521
21521
  attributes,
21522
21522
  ...others
@@ -26786,6 +26786,13 @@ const z = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
26786
26786
  },
26787
26787
  void: voidType
26788
26788
  }, Symbol.toStringTag, { value: "Module" }));
26789
+ const spacing = {
26790
+ xs: "0.625rem",
26791
+ sm: "0.75rem",
26792
+ md: "1rem",
26793
+ lg: "1.25rem",
26794
+ xl: "2rem"
26795
+ };
26789
26796
  const colors = {
26790
26797
  /** Primary UI color — buttons, links, active states. */
26791
26798
  primary: "indigo",
@@ -26937,6 +26944,7 @@ const theme = createTheme({
26937
26944
  },
26938
26945
  radius: radii,
26939
26946
  defaultRadius: "md",
26947
+ spacing,
26940
26948
  breakpoints: {
26941
26949
  xs: "30em",
26942
26950
  sm: "48em",
@@ -26985,7 +26993,8 @@ const theme = createTheme({
26985
26993
  const fairmintCssVariables = () => ({
26986
26994
  variables: {
26987
26995
  "--fairmint-font-headings": typography.headingFontFamily,
26988
- "--fairmint-font-body": typography.fontFamily
26996
+ "--fairmint-font-body": typography.fontFamily,
26997
+ "--fairmint-interactive-focus-ring": indigo[5]
26989
26998
  },
26990
26999
  light: {
26991
27000
  /** Large decorative background text on error/empty pages. */
@@ -26995,13 +27004,17 @@ const fairmintCssVariables = () => ({
26995
27004
  /** Faint metadata text (timestamps, tertiary labels). Replaces neutral.4 */
26996
27005
  "--fairmint-color-text-tertiary": neutral[4],
26997
27006
  /** Background tint for selected / active rows. Replaces primary.0 */
26998
- "--fairmint-color-surface-selected": indigo[0]
27007
+ "--fairmint-color-surface-selected": indigo[0],
27008
+ "--fairmint-interactive-hover-shadow": `0 2px 6px ${neutral[9]}0F`,
27009
+ "--fairmint-interactive-hover-bg": neutral[0]
26999
27010
  },
27000
27011
  dark: {
27001
27012
  "--fairmint-watermark-color": neutral[7],
27002
27013
  "--fairmint-color-text-secondary": neutral[4],
27003
27014
  "--fairmint-color-text-tertiary": neutral[5],
27004
- "--fairmint-color-surface-selected": indigo[9]
27015
+ "--fairmint-color-surface-selected": indigo[9],
27016
+ "--fairmint-interactive-hover-shadow": `0 2px 6px ${neutral[0]}1A`,
27017
+ "--fairmint-interactive-hover-bg": neutral[8]
27005
27018
  }
27006
27019
  });
27007
27020
  const fairmintVars = {
@@ -28485,6 +28498,64 @@ function AnimateIn({
28485
28498
  };
28486
28499
  return /* @__PURE__ */ jsxRuntime.jsx("div", { style, className, children });
28487
28500
  }
28501
+ function ClickableCard({
28502
+ onClick,
28503
+ ariaLabel,
28504
+ animationDelay,
28505
+ bg,
28506
+ padding = "md",
28507
+ radius = "md",
28508
+ withBorder = true,
28509
+ children
28510
+ }) {
28511
+ const handleKeyDown = (e) => {
28512
+ if (e.key === " ") {
28513
+ e.preventDefault();
28514
+ }
28515
+ };
28516
+ const animate = animationDelay !== void 0;
28517
+ const animationStyle = animate ? {
28518
+ opacity: 0,
28519
+ animation: `rowSlideIn 0.35s cubic-bezier(0.22, 1, 0.36, 1) ${animationDelay}s forwards`
28520
+ } : void 0;
28521
+ const card = /* @__PURE__ */ jsxRuntime.jsx(
28522
+ Card,
28523
+ {
28524
+ bg,
28525
+ padding,
28526
+ radius,
28527
+ withBorder,
28528
+ style: { overflow: "hidden" },
28529
+ children
28530
+ }
28531
+ );
28532
+ if (!onClick) {
28533
+ return animate ? /* @__PURE__ */ jsxRuntime.jsx("div", { style: animationStyle, children: card }) : card;
28534
+ }
28535
+ const button = /* @__PURE__ */ jsxRuntime.jsx(
28536
+ UnstyledButton,
28537
+ {
28538
+ onClick,
28539
+ onKeyDown: handleKeyDown,
28540
+ "aria-label": ariaLabel,
28541
+ className: "fairmint-clickable-card",
28542
+ w: "100%",
28543
+ style: { borderRadius: radii[radius] ?? radius },
28544
+ children: card
28545
+ }
28546
+ );
28547
+ return animate ? /* @__PURE__ */ jsxRuntime.jsx("div", { style: animationStyle, children: button }) : button;
28548
+ }
28549
+ function ColorDot({ color, size: size2 = 8, style, ...rest }) {
28550
+ const baseStyle = {
28551
+ width: size2,
28552
+ height: size2,
28553
+ borderRadius: "50%",
28554
+ backgroundColor: color,
28555
+ flexShrink: 0
28556
+ };
28557
+ return /* @__PURE__ */ jsxRuntime.jsx(Box, { "data-testid": "color-dot", style: [baseStyle, style], ...rest });
28558
+ }
28488
28559
  function ConfirmDialog({
28489
28560
  title,
28490
28561
  message,
@@ -28554,7 +28625,8 @@ function formatDate(dateString) {
28554
28625
  function formatPercent(n, decimals = 2) {
28555
28626
  return `${n.toFixed(decimals)}%`;
28556
28627
  }
28557
- function Currency({ value, precise = false, currency, ...rest }) {
28628
+ const TABULAR_NUMS = { fontVariantNumeric: "tabular-nums" };
28629
+ function Currency({ value, precise = false, currency, style, ...rest }) {
28558
28630
  let formatted;
28559
28631
  if (currency) {
28560
28632
  formatted = formatPreciseWithCurrency(value, currency);
@@ -28563,7 +28635,7 @@ function Currency({ value, precise = false, currency, ...rest }) {
28563
28635
  } else {
28564
28636
  formatted = formatCurrency(value);
28565
28637
  }
28566
- return /* @__PURE__ */ jsxRuntime.jsx(Text, { component: "span", ...rest, children: formatted });
28638
+ return /* @__PURE__ */ jsxRuntime.jsx(Text, { component: "span", style: [TABULAR_NUMS, style], ...rest, children: formatted });
28567
28639
  }
28568
28640
  function EmptyState({
28569
28641
  icon,
@@ -28652,17 +28724,7 @@ function DataTable({
28652
28724
  Table.Tr,
28653
28725
  {
28654
28726
  onClick: onRowClick ? () => onRowClick(row) : void 0,
28655
- style: onRowClick ? {
28656
- cursor: "pointer",
28657
- transition: "background-color 0.15s ease"
28658
- } : void 0,
28659
- styles: onRowClick ? {
28660
- tr: {
28661
- "&:hover": {
28662
- backgroundColor: neutralColors[50]
28663
- }
28664
- }
28665
- } : void 0,
28727
+ className: onRowClick ? "fairmint-table-row-clickable" : void 0,
28666
28728
  children: columns.map((col) => /* @__PURE__ */ jsxRuntime.jsx(Table.Td, { children: col.render ? col.render(row) : String(row[col.key] ?? "") }, col.key))
28667
28729
  },
28668
28730
  key
@@ -28938,21 +29000,10 @@ function ListRow({
28938
29000
  {
28939
29001
  bg: isSelected ? fairmintVars.colorSurfaceSelected : void 0,
28940
29002
  onClick,
29003
+ className: "fairmint-list-row",
28941
29004
  w: "100%",
28942
29005
  py: "sm",
28943
29006
  px: "md",
28944
- styles: {
28945
- root: {
28946
- transition: "background-color 0.15s ease",
28947
- "&:hover": {
28948
- backgroundColor: neutralColors[50]
28949
- },
28950
- "&:focus-visible": {
28951
- outline: `2px solid ${brandColors.indigo}`,
28952
- outlineOffset: "-2px"
28953
- }
28954
- }
28955
- },
28956
29007
  style: animationStyle,
28957
29008
  "aria-label": ariaLabel ?? title,
28958
29009
  children: content
@@ -31134,6 +31185,12 @@ function useIsMobile() {
31134
31185
  getInitialValueInEffect: false
31135
31186
  }) ?? false;
31136
31187
  }
31188
+ const TABLET_BREAKPOINT = "(max-width: 68em)";
31189
+ function useIsTablet() {
31190
+ return useMediaQuery(TABLET_BREAKPOINT, false, {
31191
+ getInitialValueInEffect: false
31192
+ }) ?? false;
31193
+ }
31137
31194
  const notify = {
31138
31195
  success: ({ title, message, autoClose = 4e3 }) => notifications.show({ title, message, color: colors.success, autoClose }),
31139
31196
  error: ({ title, message, autoClose = 6e3 }) => notifications.show({ title, message, color: colors.error, autoClose }),
@@ -31155,7 +31212,9 @@ exports.Button = Button;
31155
31212
  exports.Card = Card;
31156
31213
  exports.Center = Center;
31157
31214
  exports.Checkbox = Checkbox;
31215
+ exports.ClickableCard = ClickableCard;
31158
31216
  exports.Collapse = Collapse;
31217
+ exports.ColorDot = ColorDot;
31159
31218
  exports.ConfirmDialog = ConfirmDialog;
31160
31219
  exports.Container = Container;
31161
31220
  exports.Currency = Currency;
@@ -31214,6 +31273,7 @@ exports.Stack = Stack;
31214
31273
  exports.StatCard = StatCard;
31215
31274
  exports.StatusBadge = StatusBadge;
31216
31275
  exports.Switch = Switch;
31276
+ exports.TABLET_BREAKPOINT = TABLET_BREAKPOINT;
31217
31277
  exports.Table = Table;
31218
31278
  exports.Tabs = Tabs;
31219
31279
  exports.Text = Text;
@@ -31258,6 +31318,7 @@ exports.passwordSchema = passwordSchema;
31258
31318
  exports.phoneSchema = phoneSchema;
31259
31319
  exports.radii = radii;
31260
31320
  exports.semanticColors = semanticColors;
31321
+ exports.spacing = spacing;
31261
31322
  exports.theme = theme;
31262
31323
  exports.truncateAddress = truncateAddress;
31263
31324
  exports.typography = typography;
@@ -31271,6 +31332,7 @@ exports.useHotkeys = useHotkeys;
31271
31332
  exports.useId = useId$1;
31272
31333
  exports.useIntersection = useIntersection;
31273
31334
  exports.useIsMobile = useIsMobile;
31335
+ exports.useIsTablet = useIsTablet;
31274
31336
  exports.useMediaQuery = useMediaQuery;
31275
31337
  exports.useScrollIntoView = useScrollIntoView;
31276
31338
  exports.useViewportSize = useViewportSize;