@fairmint/ui 0.2.24 → 0.2.26

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,26 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ConfidentialityBannerProps {
3
+ /**
4
+ * Banner message. Typically a one-line legal / policy notice that
5
+ * the viewer must see before interacting with the page.
6
+ */
7
+ children: ReactNode;
8
+ /**
9
+ * Icon rendered to the left of the message. Defaults to a lock glyph.
10
+ * Pass `null` to omit the icon entirely.
11
+ */
12
+ icon?: ReactNode;
13
+ }
14
+ /**
15
+ * Thin gradient ribbon used at the very top of confidential / gated
16
+ * pages (e.g., offering pages, board-pack distributions). Sits above
17
+ * the page's regular sticky header so the disclaimer is the first
18
+ * thing the viewer sees.
19
+ *
20
+ * Visual treatment is the Fairmint indigo→purple gradient at 8%
21
+ * opacity, with a 1px bottom border and a center-aligned message. The
22
+ * lock glyph signals "private, do not share" without leaning on
23
+ * heavy "WARNING" framing.
24
+ */
25
+ export declare function ConfidentialityBanner({ children, icon }: ConfidentialityBannerProps): import("react/jsx-runtime").JSX.Element;
26
+ //# sourceMappingURL=ConfidentialityBanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfidentialityBanner.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/ConfidentialityBanner/ConfidentialityBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAsBvC,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,0BAA0B,2CAuBnF"}
@@ -0,0 +1,51 @@
1
+ import { ReactNode } from 'react';
2
+ export interface DataRowProps {
3
+ /** Left-aligned label. */
4
+ label: string;
5
+ /**
6
+ * Right-aligned value.
7
+ *
8
+ * - `string` — rendered as styled `Text` (accent-aware).
9
+ * - `ReactNode` — rendered as-is. Pass `<StackedValue values={...}/>`
10
+ * for a vertical list, or any other JSX (badges, icons, links).
11
+ * - `null` — renders a `<RedactedValue>` placeholder. No real
12
+ * value lives in the DOM, so a pre-auth dev-tools inspection
13
+ * reveals nothing.
14
+ */
15
+ value: ReactNode | null;
16
+ /**
17
+ * When true, a string `value` renders in success-green bold weight.
18
+ * Use for highlighted rows like fees, carry, or "yes" answers.
19
+ */
20
+ accent?: boolean;
21
+ }
22
+ /**
23
+ * One label / value row used by terms panels, profile sections, and
24
+ * any "definition list" UX.
25
+ *
26
+ * The `null` → redacted placeholder convention is a security primitive:
27
+ * when content is behind a gate, pass `null` and the placeholder shows
28
+ * a dotted strip without leaking the real value into the DOM.
29
+ */
30
+ export declare function DataRow({ label, value, accent }: DataRowProps): import("react/jsx-runtime").JSX.Element;
31
+ export interface StackedValueProps {
32
+ /** List of strings to render as a vertical, right-aligned stack. */
33
+ values: ReadonlyArray<string>;
34
+ }
35
+ /**
36
+ * Right-aligned vertical stack of values. Compose with `DataRow`
37
+ * when a single label has multiple values (e.g., "Funding: USDC / USDT
38
+ * / Wire" rendered as three lines stacked under the "Funding" label).
39
+ */
40
+ export declare function StackedValue({ values }: StackedValueProps): import("react/jsx-runtime").JSX.Element;
41
+ export interface RedactedValueProps {
42
+ /** Width of the placeholder strip in pixels. @default 80 */
43
+ width?: number;
44
+ }
45
+ /**
46
+ * Source-safe placeholder — a fixed-width dotted strip rendered when
47
+ * a value is gated. No real value lives in the DOM, so a pre-auth
48
+ * dev-tools inspection reveals nothing.
49
+ */
50
+ export declare function RedactedValue({ width }?: RedactedValueProps): import("react/jsx-runtime").JSX.Element;
51
+ //# sourceMappingURL=DataRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataRow.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/DataRow/DataRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;;OASG;IACH,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE,YAAY,2CAuBrE;AAED,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,iBAAiB,2CAUzD;AAED,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAU,EAAE,GAAE,kBAAuB,2CAapE"}
@@ -0,0 +1,23 @@
1
+ import { ReactNode } from 'react';
2
+ import { TextProps } from '../../primitives/layout';
3
+ export interface EyebrowProps extends Omit<TextProps, "children" | "size" | "fw" | "tt" | "c"> {
4
+ /** Eyebrow text content. */
5
+ children: ReactNode;
6
+ /** Eyebrow size. Defaults to `xs`. */
7
+ size?: "xs" | "sm";
8
+ /**
9
+ * Text color. Defaults to `neutralColors[500]`. Override when the
10
+ * eyebrow sits on a dark background or needs to match an accent.
11
+ */
12
+ c?: string;
13
+ }
14
+ /**
15
+ * Small uppercase letter-spaced label used above titles, in card
16
+ * headers, and as section eyebrows throughout the Fairmint apps.
17
+ *
18
+ * Standardizes the `Text size="xs" tt="uppercase" fw={700}
19
+ * c={neutralColors[500]} style={{ letterSpacing: "0.08em" }}`
20
+ * incantation that was scattered across screens.
21
+ */
22
+ export declare function Eyebrow({ children, size, c, ...rest }: EyebrowProps): import("react/jsx-runtime").JSX.Element;
23
+ //# sourceMappingURL=Eyebrow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Eyebrow.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/Eyebrow/Eyebrow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;IAC5F,4BAA4B;IAC5B,QAAQ,EAAE,SAAS,CAAC;IACpB,sCAAsC;IACtC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB;;;OAGG;IACH,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAW,EAAE,CAAsB,EAAE,GAAG,IAAI,EAAE,EAAE,YAAY,2CAM/F"}
@@ -0,0 +1,26 @@
1
+ import { ReactNode } from 'react';
2
+ export interface RadioCardProps {
3
+ /** Whether this card is currently selected. */
4
+ selected: boolean;
5
+ /** Primary label (top-left). */
6
+ title: ReactNode;
7
+ /** Supporting description below the title. */
8
+ description?: ReactNode;
9
+ /** Optional pill / chip rendered next to the title (top-right). */
10
+ badge?: ReactNode;
11
+ /** Optional leading slot (icon / small avatar / number badge). */
12
+ leading?: ReactNode;
13
+ /** Triggered when the card is clicked. */
14
+ onSelect: () => void;
15
+ }
16
+ /**
17
+ * Selectable card with a title + description and a radio dot affordance.
18
+ *
19
+ * Used for any "pick one from a few" UX: funding methods, accreditation
20
+ * categories, tax classifications, plan tiers, etc. The visual treatment
21
+ * (indigo border + tinted background when active, radio dot on the
22
+ * right) is the standard Fairmint pattern so users learn it once and
23
+ * apply it everywhere.
24
+ */
25
+ export declare function RadioCard({ selected, title, description, badge, leading, onSelect, }: RadioCardProps): import("react/jsx-runtime").JSX.Element;
26
+ //# sourceMappingURL=RadioCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioCard.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/RadioCard/RadioCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,gCAAgC;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,mEAAmE;IACnE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,kEAAkE;IAClE,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,KAAK,EACL,WAAW,EACX,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,cAAc,2CAiEhB"}
@@ -0,0 +1,32 @@
1
+ import { ReactNode } from 'react';
2
+ export interface StepCardProps {
3
+ /** 1-indexed step number shown in the indicator when not done. */
4
+ index: number;
5
+ /** Step title. */
6
+ title: string;
7
+ /** Optional supporting text below the title. */
8
+ description?: string;
9
+ /** When true, the indicator flips from the number to a check glyph. */
10
+ done?: boolean;
11
+ /**
12
+ * Override the icon shown when `done === true`. Defaults to a check
13
+ * mark inside a circle. Accept-as-ReactNode so consumers don't need
14
+ * to import an icon library.
15
+ */
16
+ doneIcon?: ReactNode;
17
+ /** Step content rendered below the header. */
18
+ children: ReactNode;
19
+ }
20
+ /**
21
+ * Numbered step card used in multi-section wizards and form flows.
22
+ *
23
+ * The numbered indicator on the left flips to a check when the step is
24
+ * marked done — a quiet progress signal that doesn't compete with the
25
+ * right-column summary or page-level progress UI. Each step sits in
26
+ * its own `Paper` for clear visual separation.
27
+ *
28
+ * The header indicator is the focal point; consumers control the body
29
+ * via `children`.
30
+ */
31
+ export declare function StepCard({ index, title, description, done, doneIcon, children, }: StepCardProps): import("react/jsx-runtime").JSX.Element;
32
+ //# sourceMappingURL=StepCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepCard.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/StepCard/StepCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAsBvC,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,KAAK,EACL,WAAW,EACX,IAAY,EACZ,QAAQ,EACR,QAAQ,GACT,EAAE,aAAa,2CA8Cf"}
@@ -1,17 +1,59 @@
1
1
  import { ReactNode } from 'react';
2
2
  export interface DocumentRowProps {
3
- /** Document name. */
3
+ /** Primary title — usually the file or agreement name. */
4
4
  name: string;
5
- /** Document type label (e.g., "Agreement", "Tax Form"). */
5
+ /**
6
+ * Description below the title. Accepts a `ReactNode` so consumers can mix
7
+ * Badges, Text, dates, and inline metadata (companyName, seriesName, etc.)
8
+ * without working around a single-string subtitle slot.
9
+ */
10
+ caption?: ReactNode;
11
+ /**
12
+ * @deprecated Use `caption` directly. When `caption` is omitted and
13
+ * `type` and/or `date` is supplied, they are joined with " · " to
14
+ * produce a string caption. Preserved for backwards compatibility
15
+ * with the previous, ListRow-backed API.
16
+ */
6
17
  type?: string;
7
- /** Date the document was created or signed (ISO string). */
18
+ /**
19
+ * @deprecated Use `caption` directly. The date is now consumer-
20
+ * formatted; pass a formatted string via `caption` instead. Preserved
21
+ * for backwards compatibility.
22
+ */
8
23
  date?: string;
9
- /** Right section actions (e.g., download button). */
24
+ /**
25
+ * Leading visual — defaults to a tinted file-icon `ThemeIcon`. Pass a
26
+ * custom node (an icon, a badge, a small Avatar, etc.) when you want
27
+ * a different leading affordance.
28
+ */
29
+ icon?: ReactNode;
30
+ /** Right-side content — download button, lock badge, preview link, etc. */
10
31
  rightSection?: ReactNode;
11
- /** Click handler — opens document viewer. */
32
+ /**
33
+ * Drill-in chevron. Defaults to `false` — the right-side glyph (a
34
+ * download icon, a preview link, a status badge) usually conveys the
35
+ * affordance and the chevron is visual noise. Set to `true` for "row
36
+ * that opens a detail view" patterns.
37
+ */
38
+ showChevron?: boolean;
39
+ /** Click handler. */
12
40
  onClick?: () => void;
13
- /** Entrance animation delay in seconds. */
41
+ /** Entrance animation delay in seconds. Omit to skip animation. */
14
42
  animationDelay?: number;
43
+ /** aria-label for the clickable wrapper. Defaults to `name`. */
44
+ ariaLabel?: string;
15
45
  }
16
- export declare function DocumentRow({ name, type, date, rightSection, onClick, animationDelay, }: DocumentRowProps): import("react/jsx-runtime").JSX.Element;
46
+ /**
47
+ * Document list item — title, free-form caption, optional leading icon,
48
+ * optional right-side affordance, optional drill-in chevron.
49
+ *
50
+ * Designed against three real consumers (investorv2's `OpportunityDocuments`,
51
+ * `SignSection` legal-doc list, and the mobile card view on `/documents`)
52
+ * so the shape covers the actual patterns rather than an imagined one.
53
+ *
54
+ * Backwards-compat note: the previous `type` + `date` API still works.
55
+ * When `caption` is omitted, the legacy props are joined with " · " into
56
+ * a string caption.
57
+ */
58
+ export declare function DocumentRow({ name, caption, type, date, icon, rightSection, onClick, showChevron, animationDelay, ariaLabel, }: DocumentRowProps): import("react/jsx-runtime").JSX.Element;
17
59
  //# sourceMappingURL=DocumentRow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentRow.d.ts","sourceRoot":"","sources":["../../../../src/components/specific/DocumentRow/DocumentRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,MAAM,WAAW,gBAAgB;IAC/B,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,cAAc,GACf,EAAE,gBAAgB,2CAelB"}
1
+ {"version":3,"file":"DocumentRow.d.ts","sourceRoot":"","sources":["../../../../src/components/specific/DocumentRow/DocumentRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAgDvC,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,WAAmB,EACnB,cAAc,EACd,SAAS,GACV,EAAE,gBAAgB,2CAyElB"}