@fairmint/ui 0.2.21 → 0.2.23

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.
@@ -1 +1 @@
1
- {"version":3,"file":"CompanyBanner.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/CompanyBanner/CompanyBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAwBvC,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAC5B,WAAW,EACX,cAAc,EACd,KAAK,EACL,MAAM,EACN,UAAe,GAChB,EAAE,kBAAkB,2CA6FpB"}
1
+ {"version":3,"file":"CompanyBanner.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/CompanyBanner/CompanyBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAavC,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAC5B,WAAW,EACX,cAAc,EACd,KAAK,EACL,MAAM,EACN,UAAe,GAChB,EAAE,kBAAkB,2CA6FpB"}
@@ -1,11 +1,22 @@
1
1
  import { ReactNode } from 'react';
2
2
  export interface ListRowProps {
3
- /** Avatar image URL. Falls back to `avatarFallback`. */
3
+ /** Avatar image URL. Falls back to name-derived initial. */
4
4
  avatarSrc?: string;
5
- /** Single character shown when `avatarSrc` is absent. */
5
+ /** @deprecated Use `avatarName` instead. Preserved for backwards compatibility. */
6
6
  avatarFallback?: string;
7
- /** Avatar background color (Mantine color name). @default colors.primary */
7
+ /**
8
+ * Name used to derive a fallback initial and deterministic avatar color.
9
+ * Defaults to `title` when omitted.
10
+ */
11
+ avatarName?: string;
12
+ /** Explicit avatar background color override. When set, takes precedence over the name-derived color. */
8
13
  avatarColor?: string;
14
+ /**
15
+ * When true and `avatarColor` is omitted, the Avatar primitive derives a
16
+ * deterministic background color from `avatarName` / `title`.
17
+ * @default false
18
+ */
19
+ avatarColorFromName?: boolean;
9
20
  /** Primary text. */
10
21
  title: string;
11
22
  /** Secondary text below title. */
@@ -29,5 +40,5 @@ export interface ListRowProps {
29
40
  /** aria-label for the button. Defaults to title. */
30
41
  ariaLabel?: string;
31
42
  }
32
- export declare function ListRow({ avatarSrc, avatarFallback, avatarColor, title, subtitle, value, valueSubtitle, rightSection, showChevron, chevronIcon, onClick, animationDelay, isSelected, ariaLabel, }: ListRowProps): import("react/jsx-runtime").JSX.Element;
43
+ export declare function ListRow({ avatarSrc, avatarFallback, avatarColor, avatarColorFromName, title, avatarName, subtitle, value, valueSubtitle, rightSection, showChevron, chevronIcon, onClick, animationDelay, isSelected, ariaLabel, }: ListRowProps): import("react/jsx-runtime").JSX.Element;
33
44
  //# sourceMappingURL=ListRow.d.ts.map
@@ -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,2CAqFd"}
1
+ {"version":3,"file":"ListRow.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/ListRow/ListRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yGAAyG;IACzG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkBD,wBAAgB,OAAO,CAAC,EACtB,SAAS,EACT,cAAc,EACd,WAAW,EACX,mBAA2B,EAC3B,KAAK,EACL,UAAkB,EAClB,QAAQ,EACR,KAAK,EACL,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,OAAO,EACP,cAAc,EACd,UAAkB,EAClB,SAAS,GACV,EAAE,YAAY,2CA2Fd"}
@@ -1,5 +1,10 @@
1
1
  import { AvatarProps as MantineAvatarProps } from '@mantine/core';
2
2
  export interface AvatarProps extends MantineAvatarProps {
3
+ /**
4
+ * Optional display name used to derive a fallback initial and deterministic
5
+ * background color when explicit `children` / `color` are not provided.
6
+ */
7
+ name?: string;
3
8
  }
4
9
  export declare const Avatar: import('react').ForwardRefExoticComponent<AvatarProps & import('react').RefAttributes<HTMLDivElement>>;
5
10
  //# sourceMappingURL=Avatar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,WAAW,IAAI,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIhG,MAAM,WAAW,WAAY,SAAQ,kBAAkB;CAAG;AAE1D,eAAO,MAAM,MAAM,wGAEjB,CAAC"}
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,WAAW,IAAI,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAKhG,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACrD;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,MAAM,wGAkBlB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EquityGrantCard.d.ts","sourceRoot":"","sources":["../../../../src/components/specific/EquityGrantCard/EquityGrantCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,MAAM,WAAW,oBAAoB;IACnC,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,EAC9B,WAAW,EACX,OAAO,EACP,WAAW,EACX,YAAY,EACZ,cAAc,EACd,MAAM,EACN,OAAO,EACP,YAAY,EACZ,cAAc,GACf,EAAE,oBAAoB,2CAgBtB"}
1
+ {"version":3,"file":"EquityGrantCard.d.ts","sourceRoot":"","sources":["../../../../src/components/specific/EquityGrantCard/EquityGrantCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,oBAAoB;IACnC,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,EAC9B,WAAW,EACX,OAAO,EACP,WAAW,EACX,YAAY,EACZ,cAAc,EACd,MAAM,EACN,OAAO,EACP,YAAY,EACZ,cAAc,GACf,EAAE,oBAAoB,2CAiBtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"InvestmentCard.d.ts","sourceRoot":"","sources":["../../../../src/components/specific/InvestmentCard/InvestmentCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,MAAM,WAAW,mBAAmB;IAClC,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,cAAc,CAAC,EAC7B,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,YAAY,EACZ,cAAc,GACf,EAAE,mBAAmB,2CAYrB"}
1
+ {"version":3,"file":"InvestmentCard.d.ts","sourceRoot":"","sources":["../../../../src/components/specific/InvestmentCard/InvestmentCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,mBAAmB;IAClC,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,cAAc,CAAC,EAC7B,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,YAAY,EACZ,cAAc,GACf,EAAE,mBAAmB,2CAarB"}
@@ -1 +1 @@
1
- {"version":3,"file":"InvestorProfileCard.d.ts","sourceRoot":"","sources":["../../../../src/components/specific/InvestorProfileCard/InvestorProfileCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAUjD,MAAM,WAAW,wBAAwB;IACvC,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wJAAwJ;IACxJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,8FAA8F;IAC9F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kGAAkG;IAClG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B;AA6CD,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,KAAK,EACL,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,EAAE,wBAAwB,2CA+I1B"}
1
+ {"version":3,"file":"InvestorProfileCard.d.ts","sourceRoot":"","sources":["../../../../src/components/specific/InvestorProfileCard/InvestorProfileCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AASjD,MAAM,WAAW,wBAAwB;IACvC,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wJAAwJ;IACxJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,8FAA8F;IAC9F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kGAAkG;IAClG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B;AA6CD,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,KAAK,EACL,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,EAAE,wBAAwB,2CAuI1B"}
@@ -36352,6 +36352,28 @@ const z = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
36352
36352
  xid,
36353
36353
  xor
36354
36354
  }, Symbol.toStringTag, { value: "Module" }));
36355
+ const fontSizes = {
36356
+ /** 12px — labels, captions, table headers */
36357
+ xs: "0.75rem",
36358
+ /** 14px — secondary body text, meta */
36359
+ sm: "0.875rem",
36360
+ /** 16px — default body text */
36361
+ md: "1rem",
36362
+ /** 18px — large body, lead text */
36363
+ lg: "1.125rem",
36364
+ /** 20px — small headings, emphasized values */
36365
+ xl: "1.25rem",
36366
+ /** 24px — section values, stat subtitles */
36367
+ "2xl": "1.5rem",
36368
+ /** 28px — card hero values */
36369
+ "3xl": "1.75rem",
36370
+ /** 32px — page hero values */
36371
+ "4xl": "2rem",
36372
+ /** 36px — large display values */
36373
+ "5xl": "2.25rem",
36374
+ /** 40px — extra-large display values */
36375
+ "6xl": "2.5rem"
36376
+ };
36355
36377
  const spacing = {
36356
36378
  xs: "0.625rem",
36357
36379
  sm: "0.75rem",
@@ -36511,6 +36533,13 @@ const theme = createTheme({
36511
36533
  radius: radii,
36512
36534
  defaultRadius: "md",
36513
36535
  spacing,
36536
+ fontSizes: {
36537
+ xs: fontSizes.xs,
36538
+ sm: fontSizes.sm,
36539
+ md: fontSizes.md,
36540
+ lg: fontSizes.lg,
36541
+ xl: fontSizes.xl
36542
+ },
36514
36543
  breakpoints: {
36515
36544
  xs: "30em",
36516
36545
  sm: "48em",
@@ -36636,7 +36665,40 @@ ActionIcon.displayName = "ActionIcon";
36636
36665
  function Alert(props) {
36637
36666
  return /* @__PURE__ */ jsxRuntime.jsx(Alert$1, { ...props });
36638
36667
  }
36639
- const Avatar = React.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(Avatar$1, { radius: "md", color: colors.primary, ...props, ref }));
36668
+ function getAvatarColor(name) {
36669
+ if (!name) return AVATAR_PALETTE[0];
36670
+ let hash2 = 0;
36671
+ for (let i = 0; i < name.length; i++) {
36672
+ hash2 = hash2 * 31 + name.charCodeAt(i) >>> 0;
36673
+ }
36674
+ return AVATAR_PALETTE[hash2 % AVATAR_PALETTE.length];
36675
+ }
36676
+ function getInitials(name) {
36677
+ const words = name.trim().split(/\s+/).filter(Boolean);
36678
+ if (words.length >= 2) {
36679
+ return (words[0][0] + words[1][0]).toUpperCase();
36680
+ }
36681
+ if (words.length === 1) {
36682
+ return words[0][0].toUpperCase();
36683
+ }
36684
+ return "";
36685
+ }
36686
+ const Avatar = React.forwardRef(
36687
+ ({ children, color, name, ...props }, ref) => {
36688
+ const normalizedName = name?.trim() ?? "";
36689
+ const fallbackInitial = normalizedName ? Array.from(normalizedName)[0]?.toUpperCase() : void 0;
36690
+ return /* @__PURE__ */ jsxRuntime.jsx(
36691
+ Avatar$1,
36692
+ {
36693
+ radius: "md",
36694
+ color: color ?? (normalizedName ? getAvatarColor(normalizedName) : colors.primary),
36695
+ ...props,
36696
+ ref,
36697
+ children: children ?? fallbackInitial
36698
+ }
36699
+ );
36700
+ }
36701
+ );
36640
36702
  Avatar.displayName = "Avatar";
36641
36703
  const Badge = React.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(Badge$1, { variant: "light", ...props, ref }));
36642
36704
  Badge.displayName = "Badge";
@@ -38132,25 +38194,7 @@ function ColorDot({ color, size: size2 = 8, style, ...rest }) {
38132
38194
  };
38133
38195
  return /* @__PURE__ */ jsxRuntime.jsx(Box, { "data-testid": "color-dot", style: [baseStyle, style], ...rest });
38134
38196
  }
38135
- function getAvatarColor(name) {
38136
- if (!name) return AVATAR_PALETTE[0];
38137
- let hash2 = 0;
38138
- for (let i = 0; i < name.length; i++) {
38139
- hash2 = hash2 * 31 + name.charCodeAt(i) >>> 0;
38140
- }
38141
- return AVATAR_PALETTE[hash2 % AVATAR_PALETTE.length];
38142
- }
38143
38197
  const BRAND_GRADIENT = `linear-gradient(90deg, ${brandColors.blue} 0%, ${brandColors.indigo} 50%, ${brandColors.purple} 100%)`;
38144
- function getInitials(name) {
38145
- const words = name.trim().split(/\s+/).filter(Boolean);
38146
- if (words.length >= 2) {
38147
- return (words[0][0] + words[1][0]).toUpperCase();
38148
- }
38149
- if (words.length === 1) {
38150
- return words[0][0].toUpperCase();
38151
- }
38152
- return "";
38153
- }
38154
38198
  function CompanyBanner({
38155
38199
  companyName,
38156
38200
  companyLogoUrl,
@@ -38622,8 +38666,10 @@ const DefaultChevronIcon = () => /* @__PURE__ */ jsxRuntime.jsx(
38622
38666
  function ListRow({
38623
38667
  avatarSrc,
38624
38668
  avatarFallback,
38625
- avatarColor = colors.primary,
38669
+ avatarColor,
38670
+ avatarColorFromName = false,
38626
38671
  title,
38672
+ avatarName = title,
38627
38673
  subtitle,
38628
38674
  value,
38629
38675
  valueSubtitle,
@@ -38639,7 +38685,17 @@ function ListRow({
38639
38685
  const isClickable = Boolean(onClick);
38640
38686
  const displayChevron = showChevron ?? isClickable;
38641
38687
  const content = /* @__PURE__ */ jsxRuntime.jsxs(Group, { gap: "sm", wrap: "nowrap", children: [
38642
- /* @__PURE__ */ jsxRuntime.jsx(Avatar, { src: avatarSrc, alt: title, radius: "md", size: 40, color: avatarColor, children: avatarFallback ?? title.charAt(0).toUpperCase() }),
38688
+ /* @__PURE__ */ jsxRuntime.jsx(
38689
+ Avatar,
38690
+ {
38691
+ src: avatarSrc,
38692
+ alt: title,
38693
+ name: avatarName,
38694
+ size: 40,
38695
+ color: avatarColor ?? (avatarColorFromName ? void 0 : colors.primary),
38696
+ children: avatarFallback
38697
+ }
38698
+ ),
38643
38699
  /* @__PURE__ */ jsxRuntime.jsxs(Box, { flex: 1, miw: 0, children: [
38644
38700
  /* @__PURE__ */ jsxRuntime.jsx(Text, { fw: 500, size: "sm", truncate: true, children: title }),
38645
38701
  subtitle && /* @__PURE__ */ jsxRuntime.jsx(Text, { size: "xs", c: fairmintVars.colorTextSecondary, lh: 1.3, children: subtitle })
@@ -40208,7 +40264,7 @@ function DocumentRow({
40208
40264
  {
40209
40265
  title: name,
40210
40266
  subtitle: subtitle || void 0,
40211
- avatarFallback: name.charAt(0).toUpperCase(),
40267
+ avatarName: name,
40212
40268
  avatarColor: colors.neutral,
40213
40269
  rightSection,
40214
40270
  onClick,
@@ -40234,7 +40290,8 @@ function EquityGrantCard({
40234
40290
  ListRow,
40235
40291
  {
40236
40292
  avatarSrc: logoUrl,
40237
- avatarColor: getAvatarColor(companyName),
40293
+ avatarName: companyName,
40294
+ avatarColorFromName: true,
40238
40295
  title: companyName,
40239
40296
  subtitle,
40240
40297
  value: estimatedValue !== void 0 ? formatCurrency(estimatedValue) : void 0,
@@ -40257,7 +40314,8 @@ function InvestmentCard({
40257
40314
  ListRow,
40258
40315
  {
40259
40316
  avatarSrc: logoUrl,
40260
- avatarColor: getAvatarColor(companyName),
40317
+ avatarName: companyName,
40318
+ avatarColorFromName: true,
40261
40319
  title: companyName,
40262
40320
  subtitle: status,
40263
40321
  rightSection: rightSection ?? /* @__PURE__ */ jsxRuntime.jsx(Currency, { value, fw: 500, size: "sm" }),
@@ -40329,17 +40387,7 @@ function InvestorProfileCard({
40329
40387
  const [isAvatarHovered, setIsAvatarHovered] = React.useState(false);
40330
40388
  const [isAvatarFocused, setIsAvatarFocused] = React.useState(false);
40331
40389
  const displayName = name?.trim() || "Add your name";
40332
- const avatarEl = /* @__PURE__ */ jsxRuntime.jsx(
40333
- Avatar,
40334
- {
40335
- src: avatarUrl,
40336
- alt: displayName,
40337
- radius: "md",
40338
- size: 56,
40339
- color: getAvatarColor(displayName),
40340
- children: displayName.charAt(0).toUpperCase()
40341
- }
40342
- );
40390
+ const avatarEl = /* @__PURE__ */ jsxRuntime.jsx(Avatar, { name: displayName, src: avatarUrl, alt: displayName, radius: "md", size: 56 });
40343
40391
  return /* @__PURE__ */ jsxRuntime.jsxs(Stack, { gap: "md", children: [
40344
40392
  /* @__PURE__ */ jsxRuntime.jsxs(Group, { gap: "md", wrap: "nowrap", children: [
40345
40393
  onUploadPhoto ? /* @__PURE__ */ jsxRuntime.jsxs(
@@ -41098,6 +41146,7 @@ exports.emailSchema = emailSchema;
41098
41146
  exports.ethereumAddressSchema = ethereumAddressSchema;
41099
41147
  exports.fairmintCssVariables = fairmintCssVariables;
41100
41148
  exports.fairmintVars = fairmintVars;
41149
+ exports.fontSizes = fontSizes;
41101
41150
  exports.formatCurrency = formatCurrency;
41102
41151
  exports.formatCurrencyPrecise = formatCurrencyPrecise;
41103
41152
  exports.formatDate = formatDate;
@@ -41107,6 +41156,7 @@ exports.formatPhone = formatPhone;
41107
41156
  exports.formatPhoneDisplay = formatPhoneDisplay;
41108
41157
  exports.formatPreciseWithCurrency = formatPreciseWithCurrency;
41109
41158
  exports.getAvatarColor = getAvatarColor;
41159
+ exports.getInitials = getInitials;
41110
41160
  exports.getWalletDisplayName = getWalletDisplayName;
41111
41161
  exports.getWalletKindPill = getWalletKindPill;
41112
41162
  exports.getWalletLabel = getWalletLabel;