@orangecheck/app-design 0.6.1 → 1.0.0

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 (46) hide show
  1. package/README.md +4 -3
  2. package/dist/brand.js.map +1 -1
  3. package/dist/brand.mjs.map +1 -1
  4. package/dist/chrome.d.mts +49 -15
  5. package/dist/chrome.d.ts +49 -15
  6. package/dist/chrome.js +619 -55
  7. package/dist/chrome.js.map +1 -1
  8. package/dist/chrome.mjs +617 -57
  9. package/dist/chrome.mjs.map +1 -1
  10. package/dist/components.d.mts +231 -1
  11. package/dist/components.d.ts +231 -1
  12. package/dist/components.js +1187 -2
  13. package/dist/components.js.map +1 -1
  14. package/dist/components.mjs +1162 -5
  15. package/dist/components.mjs.map +1 -1
  16. package/dist/family.d.mts +2 -0
  17. package/dist/family.d.ts +2 -0
  18. package/dist/family.js +167 -0
  19. package/dist/family.js.map +1 -0
  20. package/dist/family.mjs +154 -0
  21. package/dist/family.mjs.map +1 -0
  22. package/dist/index-C6hDqOOS.d.mts +58 -0
  23. package/dist/index-C6hDqOOS.d.ts +58 -0
  24. package/dist/index.d.mts +5 -3
  25. package/dist/index.d.ts +5 -3
  26. package/dist/index.js +1619 -132
  27. package/dist/index.js.map +1 -1
  28. package/dist/index.mjs +1575 -134
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/primitives.d.mts +52 -1
  31. package/dist/primitives.d.ts +52 -1
  32. package/dist/primitives.js +280 -3
  33. package/dist/primitives.js.map +1 -1
  34. package/dist/primitives.mjs +271 -6
  35. package/dist/primitives.mjs.map +1 -1
  36. package/dist/status-badge-BEOxeY9j.d.ts +13 -0
  37. package/dist/status-badge-DRwGhB0h.d.mts +13 -0
  38. package/dist/styles/fonts.css +1 -1
  39. package/dist/styles/tokens.css +4 -2
  40. package/dist/tokens.d.mts +3 -1
  41. package/dist/tokens.d.ts +3 -1
  42. package/dist/tokens.js +5 -3
  43. package/dist/tokens.js.map +1 -1
  44. package/dist/tokens.mjs +5 -3
  45. package/dist/tokens.mjs.map +1 -1
  46. package/package.json +9 -2
@@ -2,6 +2,8 @@ import * as react from 'react';
2
2
  import { ReactNode, HTMLAttributes, ElementType, CSSProperties, Component, ErrorInfo } from 'react';
3
3
  import * as class_variance_authority_types from 'class-variance-authority/types';
4
4
  import { VariantProps } from 'class-variance-authority';
5
+ import { j as ProtocolSlug, S as SiteStatus, b as FamilyGroup, d as FamilySlug } from './index-C6hDqOOS.mjs';
6
+ import { S as Statement } from './status-badge-DRwGhB0h.mjs';
5
7
 
6
8
  declare function Eyebrow({ className, onInk, ...props }: HTMLAttributes<HTMLParagraphElement> & {
7
9
  onInk?: boolean;
@@ -613,4 +615,232 @@ declare class ErrorBoundary extends Component<Props, State> {
613
615
  render(): ReactNode;
614
616
  }
615
617
 
616
- export { Accent, type ActivityItem, ActivityList, BrowserFrame, CodeBlock, type Column, Container, CopyButton, DataTable, Display, type DisplayProps, DocHeader, DocLayout, EmptyLine, EmptyState, ErrorBoundary, Eyebrow, FloatChip, Footnote, HashChip, type KeyValueItem, KeyValueList, Lead, LoadingBlock, Monogram, Notice, PackageCard, type PackageItem, PageHeader, PageHero, type PageHeroProps, PhoneFrame, type ProgressStep, ProgressSteps, Prose, Reveal, Sats, SatsFigure, type SatsProps, type SatsTextOptions, ScrollStory, Section, SectionIntro, type SectionProps, SplitBar, type SplitSegment, StatCard, type StatCardProps, StatGrid, type StatGridProps, StepGrid, type StepGridProps, type StepItem, type StepState, Ticker, type TocItem, type TruthRow, type TruthStatus, TruthTable, UsdApprox, monogramGround, monogramLetter, satsText, sectionVariants, useCopy, useInView };
618
+ declare function ErrorPage({ code, title, detail, actions, home, art, className, }: {
619
+ code?: number;
620
+ title?: ReactNode;
621
+ detail?: ReactNode;
622
+ actions?: ReactNode;
623
+ home?: string;
624
+ art?: ReactNode;
625
+ className?: string;
626
+ }): react.JSX.Element;
627
+
628
+ declare function SectionHeading({ eyebrow, title, lead, id, onInk, level, as, align, reveal, className, }: {
629
+ eyebrow?: ReactNode;
630
+ title: ReactNode;
631
+ lead?: ReactNode;
632
+ id?: string;
633
+ onInk?: boolean;
634
+ level?: 2 | 3;
635
+ as?: 'h2' | 'h3';
636
+ align?: 'start' | 'center';
637
+ reveal?: boolean;
638
+ className?: string;
639
+ }): react.JSX.Element;
640
+ declare function FactBlock({ id, title, description, aside, children, className, }: {
641
+ id?: string;
642
+ title: ReactNode;
643
+ description?: ReactNode;
644
+ aside?: ReactNode;
645
+ children?: ReactNode;
646
+ className?: string;
647
+ }): react.JSX.Element;
648
+ interface FactRow {
649
+ key: string;
650
+ title: ReactNode;
651
+ figure?: ReactNode;
652
+ fields: {
653
+ label: ReactNode;
654
+ value: ReactNode;
655
+ }[];
656
+ }
657
+ declare function FactRows({ rows, columns, label, className, }: {
658
+ rows: FactRow[];
659
+ columns?: 1 | 2;
660
+ label: string;
661
+ className?: string;
662
+ }): react.JSX.Element;
663
+ interface Endpoint {
664
+ href: string;
665
+ description: ReactNode;
666
+ label?: string;
667
+ }
668
+ declare function EndpointList({ items, label, className }: {
669
+ items: Endpoint[];
670
+ label?: string;
671
+ className?: string;
672
+ }): react.JSX.Element;
673
+ declare function ProofStrip({ items, className }: {
674
+ items: {
675
+ icon?: ReactNode;
676
+ label: ReactNode;
677
+ }[];
678
+ className?: string;
679
+ }): react.JSX.Element;
680
+ declare function Closing({ title, lead, actions, art, className, }: {
681
+ title: ReactNode;
682
+ lead?: ReactNode;
683
+ actions?: ReactNode;
684
+ art?: ReactNode;
685
+ className?: string;
686
+ }): react.JSX.Element;
687
+ declare function Faq({ items, className, }: {
688
+ items: {
689
+ q: ReactNode;
690
+ a: ReactNode;
691
+ id?: string;
692
+ }[];
693
+ className?: string;
694
+ }): react.JSX.Element;
695
+
696
+ type LegalBlock = {
697
+ kind: 'para';
698
+ text: string;
699
+ } | {
700
+ kind: 'subhead';
701
+ text: string;
702
+ } | {
703
+ kind: 'bullets';
704
+ items: (string | {
705
+ k: string;
706
+ v: string;
707
+ })[];
708
+ } | {
709
+ kind: 'callout';
710
+ text: string;
711
+ emphatic?: boolean;
712
+ } | {
713
+ kind: 'stub';
714
+ text: string;
715
+ };
716
+ interface LegalSource {
717
+ eyebrow: string;
718
+ title: string;
719
+ description: string;
720
+ effective: string;
721
+ updated: string;
722
+ preamble?: LegalBlock[];
723
+ sections: {
724
+ id: string;
725
+ num?: string;
726
+ heading: string;
727
+ hint?: string;
728
+ blocks: LegalBlock[];
729
+ }[];
730
+ summary?: string;
731
+ }
732
+ declare function LegalDocument({ doc, className }: {
733
+ doc: LegalSource;
734
+ className?: string;
735
+ }): react.JSX.Element;
736
+
737
+ declare function ProtocolGrid({ protocols, link, className, }: {
738
+ protocols?: readonly ProtocolSlug[];
739
+ link?: 'page' | 'tool';
740
+ className?: string;
741
+ }): react.JSX.Element;
742
+ interface AppCardProps {
743
+ name: ReactNode;
744
+ line: ReactNode;
745
+ href: string;
746
+ protocols?: readonly ProtocolSlug[];
747
+ status?: SiteStatus;
748
+ className?: string;
749
+ }
750
+ declare function AppCard({ name, line, href, protocols, status, className }: AppCardProps): react.JSX.Element;
751
+ declare function AppGrid({ group, sites, className, }: {
752
+ group?: Extract<FamilyGroup, 'app' | 'public-good'>;
753
+ sites?: readonly FamilySlug[];
754
+ className?: string;
755
+ }): react.JSX.Element;
756
+
757
+ declare function ProtocolHero({ protocol, title, lead, actions, art, children, className, }: {
758
+ protocol: ProtocolSlug;
759
+ title: ReactNode;
760
+ lead?: ReactNode;
761
+ actions?: ReactNode;
762
+ art?: ReactNode;
763
+ children?: ReactNode;
764
+ className?: string;
765
+ }): react.JSX.Element;
766
+ declare function ProtocolNav({ current, link, className, }: {
767
+ current?: ProtocolSlug;
768
+ link?: 'page' | 'tool';
769
+ className?: string;
770
+ }): react.JSX.Element;
771
+ declare function SpecCard({ protocol, version, license, vectors, size, className, }: {
772
+ protocol: ProtocolSlug;
773
+ version: string;
774
+ license?: string;
775
+ vectors?: number;
776
+ size?: 'md' | 'sm';
777
+ className?: string;
778
+ }): react.JSX.Element;
779
+ declare function VerifyBox({ action, param, title, description, label, placeholder, hint, submitLabel, multiline, onVerify, className, }: {
780
+ action: string;
781
+ param?: string;
782
+ title?: ReactNode;
783
+ description?: ReactNode;
784
+ label?: ReactNode;
785
+ placeholder?: string;
786
+ hint?: ReactNode;
787
+ submitLabel?: string;
788
+ multiline?: boolean;
789
+ onVerify?: (value: string) => void;
790
+ className?: string;
791
+ }): react.JSX.Element;
792
+ interface ComparisonColumn {
793
+ key: string;
794
+ label: ReactNode;
795
+ highlight?: boolean;
796
+ }
797
+ interface ComparisonRow {
798
+ label: ReactNode;
799
+ note?: ReactNode;
800
+ values: Record<string, ReactNode>;
801
+ }
802
+ declare function ComparisonTable({ columns, rows, label, propertyHeading, className, }: {
803
+ columns: ComparisonColumn[];
804
+ rows: ComparisonRow[];
805
+ label: string;
806
+ propertyHeading?: ReactNode;
807
+ className?: string;
808
+ }): react.JSX.Element;
809
+
810
+ type CheckState = 'ok' | 'fail' | 'pending' | 'skipped' | 'unchecked';
811
+ interface VerifyCheck {
812
+ label: ReactNode;
813
+ state: CheckState;
814
+ note?: ReactNode;
815
+ }
816
+ declare function VerifyReport({ verdict, title, summary, checks, facts, notChecked, actions, className, }: {
817
+ verdict: Statement;
818
+ title: ReactNode;
819
+ summary?: ReactNode;
820
+ checks: VerifyCheck[];
821
+ facts?: KeyValueItem[];
822
+ notChecked?: ReactNode[];
823
+ actions?: ReactNode;
824
+ className?: string;
825
+ }): react.JSX.Element;
826
+ declare function SignMessage({ lead, address, message, wallets, busy, error, submitLabel, secondary, onSignature, className, }: {
827
+ lead?: ReactNode;
828
+ address: string;
829
+ message: string;
830
+ wallets?: ReactNode;
831
+ busy?: boolean;
832
+ error?: ReactNode;
833
+ submitLabel?: string;
834
+ secondary?: ReactNode;
835
+ onSignature: (signature: string) => void;
836
+ className?: string;
837
+ }): react.JSX.Element;
838
+
839
+ declare function TextLink({ href, children, external, className, }: {
840
+ href: string;
841
+ children: ReactNode;
842
+ external?: boolean;
843
+ className?: string;
844
+ }): react.JSX.Element;
845
+
846
+ export { Accent, type ActivityItem, ActivityList, AppCard, type AppCardProps, AppGrid, BrowserFrame, type CheckState, Closing, CodeBlock, type Column, type ComparisonColumn, type ComparisonRow, ComparisonTable, Container, CopyButton, DataTable, Display, type DisplayProps, DocHeader, DocLayout, EmptyLine, EmptyState, type Endpoint, EndpointList, ErrorBoundary, ErrorPage, Eyebrow, FactBlock, type FactRow, FactRows, Faq, FloatChip, Footnote, HashChip, type KeyValueItem, KeyValueList, Lead, type LegalBlock, LegalDocument, type LegalSource, LoadingBlock, Monogram, Notice, PackageCard, type PackageItem, PageHeader, PageHero, type PageHeroProps, PhoneFrame, type ProgressStep, ProgressSteps, ProofStrip, Prose, ProtocolGrid, ProtocolHero, ProtocolNav, Reveal, Sats, SatsFigure, type SatsProps, type SatsTextOptions, ScrollStory, Section, SectionHeading, SectionIntro, type SectionProps, SignMessage, SpecCard, SplitBar, type SplitSegment, StatCard, type StatCardProps, StatGrid, type StatGridProps, StepGrid, type StepGridProps, type StepItem, type StepState, TextLink, Ticker, type TocItem, type TruthRow, type TruthStatus, TruthTable, UsdApprox, VerifyBox, type VerifyCheck, VerifyReport, monogramGround, monogramLetter, satsText, sectionVariants, useCopy, useInView };
@@ -2,6 +2,8 @@ import * as react from 'react';
2
2
  import { ReactNode, HTMLAttributes, ElementType, CSSProperties, Component, ErrorInfo } from 'react';
3
3
  import * as class_variance_authority_types from 'class-variance-authority/types';
4
4
  import { VariantProps } from 'class-variance-authority';
5
+ import { j as ProtocolSlug, S as SiteStatus, b as FamilyGroup, d as FamilySlug } from './index-C6hDqOOS.js';
6
+ import { S as Statement } from './status-badge-BEOxeY9j.js';
5
7
 
6
8
  declare function Eyebrow({ className, onInk, ...props }: HTMLAttributes<HTMLParagraphElement> & {
7
9
  onInk?: boolean;
@@ -613,4 +615,232 @@ declare class ErrorBoundary extends Component<Props, State> {
613
615
  render(): ReactNode;
614
616
  }
615
617
 
616
- export { Accent, type ActivityItem, ActivityList, BrowserFrame, CodeBlock, type Column, Container, CopyButton, DataTable, Display, type DisplayProps, DocHeader, DocLayout, EmptyLine, EmptyState, ErrorBoundary, Eyebrow, FloatChip, Footnote, HashChip, type KeyValueItem, KeyValueList, Lead, LoadingBlock, Monogram, Notice, PackageCard, type PackageItem, PageHeader, PageHero, type PageHeroProps, PhoneFrame, type ProgressStep, ProgressSteps, Prose, Reveal, Sats, SatsFigure, type SatsProps, type SatsTextOptions, ScrollStory, Section, SectionIntro, type SectionProps, SplitBar, type SplitSegment, StatCard, type StatCardProps, StatGrid, type StatGridProps, StepGrid, type StepGridProps, type StepItem, type StepState, Ticker, type TocItem, type TruthRow, type TruthStatus, TruthTable, UsdApprox, monogramGround, monogramLetter, satsText, sectionVariants, useCopy, useInView };
618
+ declare function ErrorPage({ code, title, detail, actions, home, art, className, }: {
619
+ code?: number;
620
+ title?: ReactNode;
621
+ detail?: ReactNode;
622
+ actions?: ReactNode;
623
+ home?: string;
624
+ art?: ReactNode;
625
+ className?: string;
626
+ }): react.JSX.Element;
627
+
628
+ declare function SectionHeading({ eyebrow, title, lead, id, onInk, level, as, align, reveal, className, }: {
629
+ eyebrow?: ReactNode;
630
+ title: ReactNode;
631
+ lead?: ReactNode;
632
+ id?: string;
633
+ onInk?: boolean;
634
+ level?: 2 | 3;
635
+ as?: 'h2' | 'h3';
636
+ align?: 'start' | 'center';
637
+ reveal?: boolean;
638
+ className?: string;
639
+ }): react.JSX.Element;
640
+ declare function FactBlock({ id, title, description, aside, children, className, }: {
641
+ id?: string;
642
+ title: ReactNode;
643
+ description?: ReactNode;
644
+ aside?: ReactNode;
645
+ children?: ReactNode;
646
+ className?: string;
647
+ }): react.JSX.Element;
648
+ interface FactRow {
649
+ key: string;
650
+ title: ReactNode;
651
+ figure?: ReactNode;
652
+ fields: {
653
+ label: ReactNode;
654
+ value: ReactNode;
655
+ }[];
656
+ }
657
+ declare function FactRows({ rows, columns, label, className, }: {
658
+ rows: FactRow[];
659
+ columns?: 1 | 2;
660
+ label: string;
661
+ className?: string;
662
+ }): react.JSX.Element;
663
+ interface Endpoint {
664
+ href: string;
665
+ description: ReactNode;
666
+ label?: string;
667
+ }
668
+ declare function EndpointList({ items, label, className }: {
669
+ items: Endpoint[];
670
+ label?: string;
671
+ className?: string;
672
+ }): react.JSX.Element;
673
+ declare function ProofStrip({ items, className }: {
674
+ items: {
675
+ icon?: ReactNode;
676
+ label: ReactNode;
677
+ }[];
678
+ className?: string;
679
+ }): react.JSX.Element;
680
+ declare function Closing({ title, lead, actions, art, className, }: {
681
+ title: ReactNode;
682
+ lead?: ReactNode;
683
+ actions?: ReactNode;
684
+ art?: ReactNode;
685
+ className?: string;
686
+ }): react.JSX.Element;
687
+ declare function Faq({ items, className, }: {
688
+ items: {
689
+ q: ReactNode;
690
+ a: ReactNode;
691
+ id?: string;
692
+ }[];
693
+ className?: string;
694
+ }): react.JSX.Element;
695
+
696
+ type LegalBlock = {
697
+ kind: 'para';
698
+ text: string;
699
+ } | {
700
+ kind: 'subhead';
701
+ text: string;
702
+ } | {
703
+ kind: 'bullets';
704
+ items: (string | {
705
+ k: string;
706
+ v: string;
707
+ })[];
708
+ } | {
709
+ kind: 'callout';
710
+ text: string;
711
+ emphatic?: boolean;
712
+ } | {
713
+ kind: 'stub';
714
+ text: string;
715
+ };
716
+ interface LegalSource {
717
+ eyebrow: string;
718
+ title: string;
719
+ description: string;
720
+ effective: string;
721
+ updated: string;
722
+ preamble?: LegalBlock[];
723
+ sections: {
724
+ id: string;
725
+ num?: string;
726
+ heading: string;
727
+ hint?: string;
728
+ blocks: LegalBlock[];
729
+ }[];
730
+ summary?: string;
731
+ }
732
+ declare function LegalDocument({ doc, className }: {
733
+ doc: LegalSource;
734
+ className?: string;
735
+ }): react.JSX.Element;
736
+
737
+ declare function ProtocolGrid({ protocols, link, className, }: {
738
+ protocols?: readonly ProtocolSlug[];
739
+ link?: 'page' | 'tool';
740
+ className?: string;
741
+ }): react.JSX.Element;
742
+ interface AppCardProps {
743
+ name: ReactNode;
744
+ line: ReactNode;
745
+ href: string;
746
+ protocols?: readonly ProtocolSlug[];
747
+ status?: SiteStatus;
748
+ className?: string;
749
+ }
750
+ declare function AppCard({ name, line, href, protocols, status, className }: AppCardProps): react.JSX.Element;
751
+ declare function AppGrid({ group, sites, className, }: {
752
+ group?: Extract<FamilyGroup, 'app' | 'public-good'>;
753
+ sites?: readonly FamilySlug[];
754
+ className?: string;
755
+ }): react.JSX.Element;
756
+
757
+ declare function ProtocolHero({ protocol, title, lead, actions, art, children, className, }: {
758
+ protocol: ProtocolSlug;
759
+ title: ReactNode;
760
+ lead?: ReactNode;
761
+ actions?: ReactNode;
762
+ art?: ReactNode;
763
+ children?: ReactNode;
764
+ className?: string;
765
+ }): react.JSX.Element;
766
+ declare function ProtocolNav({ current, link, className, }: {
767
+ current?: ProtocolSlug;
768
+ link?: 'page' | 'tool';
769
+ className?: string;
770
+ }): react.JSX.Element;
771
+ declare function SpecCard({ protocol, version, license, vectors, size, className, }: {
772
+ protocol: ProtocolSlug;
773
+ version: string;
774
+ license?: string;
775
+ vectors?: number;
776
+ size?: 'md' | 'sm';
777
+ className?: string;
778
+ }): react.JSX.Element;
779
+ declare function VerifyBox({ action, param, title, description, label, placeholder, hint, submitLabel, multiline, onVerify, className, }: {
780
+ action: string;
781
+ param?: string;
782
+ title?: ReactNode;
783
+ description?: ReactNode;
784
+ label?: ReactNode;
785
+ placeholder?: string;
786
+ hint?: ReactNode;
787
+ submitLabel?: string;
788
+ multiline?: boolean;
789
+ onVerify?: (value: string) => void;
790
+ className?: string;
791
+ }): react.JSX.Element;
792
+ interface ComparisonColumn {
793
+ key: string;
794
+ label: ReactNode;
795
+ highlight?: boolean;
796
+ }
797
+ interface ComparisonRow {
798
+ label: ReactNode;
799
+ note?: ReactNode;
800
+ values: Record<string, ReactNode>;
801
+ }
802
+ declare function ComparisonTable({ columns, rows, label, propertyHeading, className, }: {
803
+ columns: ComparisonColumn[];
804
+ rows: ComparisonRow[];
805
+ label: string;
806
+ propertyHeading?: ReactNode;
807
+ className?: string;
808
+ }): react.JSX.Element;
809
+
810
+ type CheckState = 'ok' | 'fail' | 'pending' | 'skipped' | 'unchecked';
811
+ interface VerifyCheck {
812
+ label: ReactNode;
813
+ state: CheckState;
814
+ note?: ReactNode;
815
+ }
816
+ declare function VerifyReport({ verdict, title, summary, checks, facts, notChecked, actions, className, }: {
817
+ verdict: Statement;
818
+ title: ReactNode;
819
+ summary?: ReactNode;
820
+ checks: VerifyCheck[];
821
+ facts?: KeyValueItem[];
822
+ notChecked?: ReactNode[];
823
+ actions?: ReactNode;
824
+ className?: string;
825
+ }): react.JSX.Element;
826
+ declare function SignMessage({ lead, address, message, wallets, busy, error, submitLabel, secondary, onSignature, className, }: {
827
+ lead?: ReactNode;
828
+ address: string;
829
+ message: string;
830
+ wallets?: ReactNode;
831
+ busy?: boolean;
832
+ error?: ReactNode;
833
+ submitLabel?: string;
834
+ secondary?: ReactNode;
835
+ onSignature: (signature: string) => void;
836
+ className?: string;
837
+ }): react.JSX.Element;
838
+
839
+ declare function TextLink({ href, children, external, className, }: {
840
+ href: string;
841
+ children: ReactNode;
842
+ external?: boolean;
843
+ className?: string;
844
+ }): react.JSX.Element;
845
+
846
+ export { Accent, type ActivityItem, ActivityList, AppCard, type AppCardProps, AppGrid, BrowserFrame, type CheckState, Closing, CodeBlock, type Column, type ComparisonColumn, type ComparisonRow, ComparisonTable, Container, CopyButton, DataTable, Display, type DisplayProps, DocHeader, DocLayout, EmptyLine, EmptyState, type Endpoint, EndpointList, ErrorBoundary, ErrorPage, Eyebrow, FactBlock, type FactRow, FactRows, Faq, FloatChip, Footnote, HashChip, type KeyValueItem, KeyValueList, Lead, type LegalBlock, LegalDocument, type LegalSource, LoadingBlock, Monogram, Notice, PackageCard, type PackageItem, PageHeader, PageHero, type PageHeroProps, PhoneFrame, type ProgressStep, ProgressSteps, ProofStrip, Prose, ProtocolGrid, ProtocolHero, ProtocolNav, Reveal, Sats, SatsFigure, type SatsProps, type SatsTextOptions, ScrollStory, Section, SectionHeading, SectionIntro, type SectionProps, SignMessage, SpecCard, SplitBar, type SplitSegment, StatCard, type StatCardProps, StatGrid, type StatGridProps, StepGrid, type StepGridProps, type StepItem, type StepState, TextLink, Ticker, type TocItem, type TruthRow, type TruthStatus, TruthTable, UsdApprox, VerifyBox, type VerifyCheck, VerifyReport, monogramGround, monogramLetter, satsText, sectionVariants, useCopy, useInView };