@fairmint/ui 0.2.31 → 0.2.32

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,30 @@
1
+ import { CSSProperties } from 'react';
2
+ import { RibbonLayout } from './ribbonGeometry';
3
+ import { RibbonBackground, RibbonGradientStop } from './ribbonTheme';
4
+ export type { RibbonBackground, RibbonGradientStop };
5
+ export interface EquityRibbonChartProps {
6
+ /** Band labels, bottom to top visually (Cap Table → Liquidity). */
7
+ labels?: readonly string[];
8
+ /** How many stacked ribbons to draw (1 = bottom band only, 5 = full stack). @default 5 */
9
+ bandCount?: number;
10
+ /** Per-band gradient stops (`start` / `end` hex). Defaults to brand purple stack. */
11
+ gradients?: readonly RibbonGradientStop[];
12
+ /** Play left-to-right reveal + label fade-in. @default true */
13
+ animated?: boolean;
14
+ /** Hide labels. @default false */
15
+ hideLabels?: boolean;
16
+ /** Canvas behind ribbons. @default 'transparent' */
17
+ background?: RibbonBackground;
18
+ /** `hero` = wide marketing chart; `mark` = tight fill for square icon. @default 'hero' */
19
+ layout?: RibbonLayout;
20
+ /** Label text color (CSS color). @default ribbonChartLabelDefault */
21
+ labelColor?: string;
22
+ /** Root element class. */
23
+ className?: string;
24
+ /** Override chart height (CSS length). */
25
+ height?: string;
26
+ /** Passed to root for layout wrappers. */
27
+ style?: CSSProperties;
28
+ }
29
+ export declare function EquityRibbonChart({ labels, bandCount: bandCountProp, gradients, animated, hideLabels, background, layout, labelColor, className, height, style, }: EquityRibbonChartProps): import("react/jsx-runtime").JSX.Element;
30
+ //# sourceMappingURL=EquityRibbonChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EquityRibbonChart.d.ts","sourceRoot":"","sources":["../../../../src/components/specific/EquityRibbonChart/EquityRibbonChart.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAOnB,MAAM,OAAO,CAAC;AACf,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAQL,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAGxB,MAAM,eAAe,CAAC;AAUvB,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;AAErD,MAAM,WAAW,sBAAsB;IACrC,mEAAmE;IACnE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC1C,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kCAAkC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,0FAA0F;IAC1F,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AA8BD,wBAAgB,iBAAiB,CAAC,EAChC,MAA8B,EAC9B,SAAS,EAAE,aAAiB,EAC5B,SAAS,EACT,QAAe,EACf,UAAkB,EAClB,UAA0B,EAC1B,MAAe,EACf,UAAoC,EACpC,SAAS,EACT,MAAM,EACN,KAAK,GACN,EAAE,sBAAsB,2CAsQxB"}
@@ -0,0 +1,23 @@
1
+ import { CSSProperties } from 'react';
2
+ import { EquityRibbonChartProps } from './EquityRibbonChart';
3
+ import { RibbonBackground } from './ribbonTheme';
4
+ export interface FairmintRibbonMarkProps {
5
+ /** Square size in pixels. @default 64 */
6
+ size?: number;
7
+ /** Ribbons to include (1–5). @default 5 */
8
+ bandCount?: EquityRibbonChartProps["bandCount"];
9
+ /** Custom gradient stops per band. */
10
+ gradients?: EquityRibbonChartProps["gradients"];
11
+ /** Canvas behind ribbons. @default 'black' */
12
+ background?: RibbonBackground;
13
+ /** Label text color when labels are shown. @default ribbonChartLabelDefault */
14
+ labelColor?: EquityRibbonChartProps["labelColor"];
15
+ /** Additional class name. */
16
+ className?: string;
17
+ style?: CSSProperties;
18
+ }
19
+ /**
20
+ * Square brand mark — stacked ribbons without labels (favicon / app icon source).
21
+ */
22
+ export declare function FairmintRibbonMark({ size, bandCount, gradients, background, labelColor, className, style, }: FairmintRibbonMarkProps): import("react/jsx-runtime").JSX.Element;
23
+ //# sourceMappingURL=FairmintRibbonMark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FairmintRibbonMark.d.ts","sourceRoot":"","sources":["../../../../src/components/specific/EquityRibbonChart/FairmintRibbonMark.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,WAAW,uBAAuB;IACtC,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,SAAS,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAChD,sCAAsC;IACtC,SAAS,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAChD,8CAA8C;IAC9C,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAClD,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,IAAS,EACT,SAAa,EACb,SAAS,EACT,UAAoB,EACpB,UAAU,EACV,SAAS,EACT,KAAK,GACN,EAAE,uBAAuB,2CAiBzB"}
@@ -0,0 +1,9 @@
1
+ export type { EquityRibbonChartProps, RibbonGradientStop } from './EquityRibbonChart';
2
+ export { EquityRibbonChart } from './EquityRibbonChart';
3
+ export type { FairmintRibbonMarkProps } from './FairmintRibbonMark';
4
+ export { FairmintRibbonMark } from './FairmintRibbonMark';
5
+ export type { RibbonLayout } from './ribbonGeometry';
6
+ export { clampBandCount, DEFAULT_RIBBON_CONFIG, MARK_RIBBON_CONFIG, MARK_RIBBON_RIGHT_EDGE, transformPathD, } from './ribbonGeometry';
7
+ export type { RibbonBackground } from './ribbonTheme';
8
+ export { DEFAULT_RIBBON_LABELS, RIBBON_BACKGROUND_CLASS, RIBBON_BAND_GRADIENTS, } from './ribbonTheme';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/specific/EquityRibbonChart/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,55 @@
1
+ /** Stacked exponential ribbon chart — geometry ported from preview-journey prototype. */
2
+ export interface RibbonGeometryConfig {
3
+ baseline: number;
4
+ xEndStagger: number;
5
+ xEndDraw: readonly number[];
6
+ xEndCurve: number;
7
+ xStart: readonly number[];
8
+ kArr: readonly number[];
9
+ V: readonly number[];
10
+ vMin: readonly number[];
11
+ xStem: readonly number[];
12
+ labelX: readonly number[];
13
+ labelAboveGap: readonly number[];
14
+ labelLeftGap: number;
15
+ labelLiquidityGap: number;
16
+ labelNudge: readonly [number, number][];
17
+ samples: number;
18
+ }
19
+ export declare const DEFAULT_RIBBON_CONFIG: RibbonGeometryConfig;
20
+ /** Right edge for mark: all ribbons clip here (vertical line on the right). */
21
+ export declare const MARK_RIBBON_RIGHT_EDGE = 0.936;
22
+ /**
23
+ * Horizontal scale factor for mark fit (mark layout only).
24
+ * < 1 compresses width so the stack reads square in a 1:1 viewport.
25
+ */
26
+ export declare const MARK_FIT_HORIZONTAL_COMPRESS = 0.78;
27
+ /** Tighter geometry so the mark fills a square icon. */
28
+ export declare const MARK_RIBBON_CONFIG: RibbonGeometryConfig;
29
+ export type RibbonLayout = "hero" | "mark";
30
+ export type RibbonLabelPlacement = "start";
31
+ /** Scale and translate path `d` (M/L commands only, as produced by buildBandPath). */
32
+ export declare function transformPathD(d: string, scaleX: number, scaleY: number, tx: number, ty: number): string;
33
+ export interface BuiltRibbonLabel {
34
+ index: number;
35
+ text: string;
36
+ leftPct: number;
37
+ topPct: number;
38
+ placement: RibbonLabelPlacement;
39
+ }
40
+ export interface RibbonGeometryResult {
41
+ paths: string[];
42
+ clipWidthPx: number[];
43
+ labels: BuiltRibbonLabel[];
44
+ width: number;
45
+ height: number;
46
+ bandCount: number;
47
+ }
48
+ export declare function clampBandCount(count: number, max?: number): number;
49
+ export declare function buildRibbonGeometry(width: number, height: number, labels: readonly string[], config?: RibbonGeometryConfig, bandCount?: number, layout?: RibbonLayout): RibbonGeometryResult | null;
50
+ /** Quadratic ease-in-out (GSAP `power2.inOut` equivalent) for reveal motion. */
51
+ export declare function easePower1InOut(t: number): number;
52
+ export declare function easePower2Out(t: number): number;
53
+ /** Label reveal start time (seconds) along a timeline of `duration` seconds. */
54
+ export declare function ribbonLabelRevealTime(labelIndex: number, duration: number, config?: RibbonGeometryConfig): number;
55
+ //# sourceMappingURL=ribbonGeometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ribbonGeometry.d.ts","sourceRoot":"","sources":["../../../../src/components/specific/EquityRibbonChart/ribbonGeometry.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,qBAAqB,EAAE,oBAsBnC,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAEjD,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,EAAE,oBAahC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAwB3C,sFAAsF;AACtF,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,MAAM,CAMR;AA2BD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,oBAAoB,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAqFD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,MAAM,CAG7D;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,MAAM,GAAE,oBAA4C,EACpD,SAAS,GAAE,MAA6B,EACxC,MAAM,GAAE,YAAqB,GAC5B,oBAAoB,GAAG,IAAI,CAoD7B;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED,gFAAgF;AAChF,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,oBAA4C,GACnD,MAAM,CAER"}
@@ -0,0 +1,13 @@
1
+ import { ribbonChartLabelDefault, ribbonChartSurface } from '../../../theme/ribbonChartColors';
2
+ export type RibbonGradientStop = {
3
+ start: string;
4
+ end: string;
5
+ };
6
+ export type RibbonBackground = keyof typeof ribbonChartSurface | "transparent";
7
+ export declare const RIBBON_BACKGROUND_CLASS: Record<RibbonBackground, string>;
8
+ export declare const DEFAULT_RIBBON_LABELS: readonly ["Cap Table", "Fundraising", "Grants", "Secondaries", "Liquidity"];
9
+ export declare const RIBBON_BAND_GRADIENTS: readonly (RibbonGradientStop & {
10
+ idSuffix: string;
11
+ })[];
12
+ export { ribbonChartLabelDefault, ribbonChartSurface };
13
+ //# sourceMappingURL=ribbonTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ribbonTheme.d.ts","sourceRoot":"","sources":["../../../../src/components/specific/EquityRibbonChart/ribbonTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,kBAAkB,GAAG,aAAa,CAAC;AAE/E,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAIpE,CAAC;AAEF,eAAO,MAAM,qBAAqB,6EAMxB,CAAC;AAEX,eAAO,MAAM,qBAAqB,EAAE,SAAS,CAAC,kBAAkB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/D,CAAC;AAE1B,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,CAAC"}