@orangecheck/app-design 1.6.1 → 1.7.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 (56) hide show
  1. package/README.md +3 -3
  2. package/dist/chrome.d.mts +11 -6
  3. package/dist/chrome.d.ts +11 -6
  4. package/dist/chrome.js +156 -130
  5. package/dist/chrome.js.map +1 -1
  6. package/dist/chrome.mjs +155 -131
  7. package/dist/chrome.mjs.map +1 -1
  8. package/dist/components.d.mts +40 -5
  9. package/dist/components.d.ts +40 -5
  10. package/dist/components.js +135 -13
  11. package/dist/components.js.map +1 -1
  12. package/dist/components.mjs +132 -14
  13. package/dist/components.mjs.map +1 -1
  14. package/dist/{docs-CFE5mU_6.d.mts → docs-B9G1BNXI.d.mts} +2 -2
  15. package/dist/{docs-ByUx4t-D.d.ts → docs-BWWnm5Jv.d.ts} +2 -2
  16. package/dist/family.d.mts +1 -1
  17. package/dist/family.d.ts +1 -1
  18. package/dist/family.js +7 -1
  19. package/dist/family.js.map +1 -1
  20. package/dist/family.mjs +5 -2
  21. package/dist/family.mjs.map +1 -1
  22. package/dist/{index-DmfyPYe5.d.mts → index-Bkl49Vgy.d.mts} +4 -1
  23. package/dist/{index-DmfyPYe5.d.ts → index-Bkl49Vgy.d.ts} +4 -1
  24. package/dist/index.d.mts +7 -7
  25. package/dist/index.d.ts +7 -7
  26. package/dist/index.js +197 -48
  27. package/dist/index.js.map +1 -1
  28. package/dist/index.mjs +189 -49
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/mdx.d.mts +3 -3
  31. package/dist/mdx.d.ts +3 -3
  32. package/dist/mdx.js +5 -3
  33. package/dist/mdx.js.map +1 -1
  34. package/dist/mdx.mjs +5 -3
  35. package/dist/mdx.mjs.map +1 -1
  36. package/dist/primitives.d.mts +2 -2
  37. package/dist/primitives.d.ts +2 -2
  38. package/dist/primitives.js +2 -1
  39. package/dist/primitives.js.map +1 -1
  40. package/dist/primitives.mjs +2 -1
  41. package/dist/primitives.mjs.map +1 -1
  42. package/dist/session.d.mts +4 -4
  43. package/dist/session.d.ts +4 -4
  44. package/dist/session.js +122 -1
  45. package/dist/session.js.map +1 -1
  46. package/dist/session.mjs +122 -1
  47. package/dist/session.mjs.map +1 -1
  48. package/dist/{status-badge-BJ9Sdsx8.d.mts → status-badge-BBbCO6ZA.d.mts} +1 -1
  49. package/dist/{status-badge-Bt8x3RhO.d.ts → status-badge-CHHxtFkP.d.ts} +1 -1
  50. package/dist/styles/swagger.css +24 -1
  51. package/dist/styles/tokens.css +5 -0
  52. package/dist/{tool-shell-CQZNRUgH.d.mts → tool-shell-CnZ3NUSi.d.ts} +10 -4
  53. package/dist/{tool-shell-CRmceGrV.d.ts → tool-shell-DQFEMLLe.d.mts} +10 -4
  54. package/dist/{tools-Bg1gi2HO.d.mts → tools-CKO8IseL.d.mts} +2 -2
  55. package/dist/{tools-Bw7RhO92.d.ts → tools-CzjFPng4.d.ts} +2 -2
  56. package/package.json +5 -2
@@ -3,11 +3,11 @@ import { ReactNode, HTMLAttributes, ElementType, CSSProperties, Component, Error
3
3
  import * as class_variance_authority_types from 'class-variance-authority/types';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
  export { D as DocHeader, a as DocLayout, P as PageHero, b as PageHeroProps, T as TocItem, u as useActiveHeading } from './hero-Dn37il-9.mjs';
6
- export { A as ApiRow, a as ApiTable, b as AppCard, c as AppCardProps, d as AppGrid, B as Breadcrumbs, C as Callout, e as CardGrid, f as CodeBlock, g as CodeBlockProps, h as CodeTab, i as CodeTabs, j as ComparisonColumn, k as ComparisonRow, l as ComparisonTable, m as Crumb, D as Diagram, n as DocsHeading, o as DocsPager, I as InstallTabs, L as LinkCard, M as MdxTable, p as MermaidLike, q as MermaidLoader, O as OnThisPage, P as PagerLink, r as ProtocolGrid, s as ProtocolHero, t as ProtocolNav, S as SpecCard, u as SpecCardProps, v as SpecFileKind, w as Step, x as Steps, V as VerifyBox, y as languageName, z as useHeadings } from './docs-CFE5mU_6.mjs';
6
+ export { A as ApiRow, a as ApiTable, b as AppCard, c as AppCardProps, d as AppGrid, B as Breadcrumbs, C as Callout, e as CardGrid, f as CodeBlock, g as CodeBlockProps, h as CodeTab, i as CodeTabs, j as ComparisonColumn, k as ComparisonRow, l as ComparisonTable, m as Crumb, D as Diagram, n as DocsHeading, o as DocsPager, I as InstallTabs, L as LinkCard, M as MdxTable, p as MermaidLike, q as MermaidLoader, O as OnThisPage, P as PagerLink, r as ProtocolGrid, s as ProtocolHero, t as ProtocolNav, S as SpecCard, u as SpecCardProps, v as SpecFileKind, w as Step, x as Steps, V as VerifyBox, y as languageName, z as useHeadings } from './docs-B9G1BNXI.mjs';
7
7
  import { ExplorerKind, Network } from './format.mjs';
8
- import { j as ProtocolSlug } from './index-DmfyPYe5.mjs';
9
- import { S as Statement } from './status-badge-BJ9Sdsx8.mjs';
10
- export { A as AnchorState, a as AnchorStatus, b as ArtifactView, B as BlockCountdown, c as BlockHeight, C as ChosenFile, D as DropZone, F as FilterChips, d as FilterOption, e as FormSection, M as Meter, S as SectionStatus, f as StateBadge, g as StateDef, h as StateTone, T as ToolGrid, i as ToolItem, j as createStateBadge } from './tools-Bg1gi2HO.mjs';
8
+ import { k as ProtocolSlug } from './index-Bkl49Vgy.mjs';
9
+ import { S as Statement } from './status-badge-BBbCO6ZA.mjs';
10
+ export { A as AnchorState, a as AnchorStatus, b as ArtifactView, B as BlockCountdown, c as BlockHeight, C as ChosenFile, D as DropZone, F as FilterChips, d as FilterOption, e as FormSection, M as Meter, S as SectionStatus, f as StateBadge, g as StateDef, h as StateTone, T as ToolGrid, i as ToolItem, j as createStateBadge } from './tools-CKO8IseL.mjs';
11
11
 
12
12
  declare function Eyebrow({ className, onInk, ...props }: HTMLAttributes<HTMLParagraphElement> & {
13
13
  onInk?: boolean;
@@ -574,6 +574,8 @@ declare function FloatChip({ icon, title, detail, delay, className, style, }: {
574
574
  }): react.JSX.Element;
575
575
 
576
576
  declare const SIZES: {
577
+ readonly '2xs': "size-7 rounded-[0.55rem] text-[0.75rem]";
578
+ readonly xs: "size-8 rounded-[0.6rem] text-[0.875rem]";
577
579
  readonly sm: "size-9 rounded-[0.7rem] text-[0.9375rem]";
578
580
  readonly md: "size-11 rounded-[0.85rem] text-[1.125rem]";
579
581
  readonly lg: "size-14 rounded-[1.05rem] text-[1.5rem]";
@@ -843,6 +845,39 @@ declare function TextLink({ href: written, children, external, className, }: {
843
845
  className?: string;
844
846
  }): react.JSX.Element;
845
847
 
848
+ declare function SectionTitle({ title, meta, description, action, as: Tag, size, tone, id, className, }: {
849
+ title: ReactNode;
850
+ meta?: ReactNode;
851
+ description?: ReactNode;
852
+ action?: ReactNode;
853
+ as?: 'h2' | 'h3';
854
+ size?: 'md' | 'sm';
855
+ tone?: 'default' | 'danger';
856
+ id?: string;
857
+ className?: string;
858
+ }): react.JSX.Element;
859
+ declare function ListCard({ as: Tag, className, ...props }: HTMLAttributes<HTMLElement> & {
860
+ as?: 'ul' | 'ol' | 'div';
861
+ }): react.JSX.Element;
862
+ declare function ChoiceGroup<T extends string>({ value, onValueChange, label, columns, size, disabled, className, children, }: {
863
+ value: T | undefined;
864
+ onValueChange: (value: T) => void;
865
+ label: string;
866
+ columns?: 1 | 2 | 3;
867
+ size?: 'md' | 'sm';
868
+ disabled?: boolean;
869
+ className?: string;
870
+ children: ReactNode;
871
+ }): react.JSX.Element;
872
+ declare function ChoiceCard({ value, title, description, icon, disabled, className, }: {
873
+ value: string;
874
+ title: ReactNode;
875
+ description?: ReactNode;
876
+ icon?: ReactNode;
877
+ disabled?: boolean;
878
+ className?: string;
879
+ }): react.JSX.Element;
880
+
846
881
  interface SearchResult {
847
882
  id: string;
848
883
  href?: string;
@@ -882,4 +917,4 @@ interface SearchDialogProps {
882
917
  declare function SearchDialog({ onQuery, open: openProp, onOpenChange, onSelect, button, hotkey, label, placeholder, idle, defaultQuery, debounceMs, browse, className, }: SearchDialogProps): react.JSX.Element;
883
918
  declare function CommandDialog({ label, placeholder, ...props }: Omit<SearchDialogProps, 'browse' | 'button'>): react.JSX.Element;
884
919
 
885
- export { Accent, type ActivityItem, ActivityList, BrowserFrame, ChartFrame, type ChartTone, type CheckState, Closing, type Column, CommandDialog, Container, CopyButton, type CopyButtonProps, CountdownRing, DataTable, Display, type DisplayProps, EmptyLine, EmptyState, type Endpoint, EndpointList, ErrorBoundary, ErrorPage, Eyebrow, FactBlock, type FactRow, FactRows, Faq, FloatChip, Footnote, HashChip, HudCard, type KeyValueItem, KeyValueList, Lead, type LegalBlock, LegalDocument, type LegalSource, type LegendItem, LoadingBlock, LockedPreview, Monogram, Notice, PackageCard, type PackageItem, PageHeader, Panel, PhoneFrame, PlanCard, type ProgressStep, ProgressSteps, ProofStrip, Prose, Reveal, Sats, SatsFigure, type SatsProps, type SatsTextOptions, ScrollStory, SearchButton, SearchDialog, type SearchDialogProps, type SearchGroup, type SearchQuery, type SearchResult, Section, SectionHeading, SectionIntro, type SectionProps, SignMessage, SourceNote, type SourceNoteProps, Sparkline, SplitBar, type SplitSegment, StatCard, type StatCardProps, StatGrid, type StatGridProps, StepGrid, type StepGridProps, type StepItem, type StepState, TextLink, Ticker, type TruthRow, type TruthStatus, TruthTable, UsdApprox, type ValueTone, type VerifyCheck, VerifyReport, chartColor, monogramGround, monogramLetter, satsText, sectionVariants, useCopy, useInView };
920
+ export { Accent, type ActivityItem, ActivityList, BrowserFrame, ChartFrame, type ChartTone, type CheckState, ChoiceCard, ChoiceGroup, Closing, type Column, CommandDialog, Container, CopyButton, type CopyButtonProps, CountdownRing, DataTable, Display, type DisplayProps, EmptyLine, EmptyState, type Endpoint, EndpointList, ErrorBoundary, ErrorPage, Eyebrow, FactBlock, type FactRow, FactRows, Faq, FloatChip, Footnote, HashChip, HudCard, type KeyValueItem, KeyValueList, Lead, type LegalBlock, LegalDocument, type LegalSource, type LegendItem, ListCard, LoadingBlock, LockedPreview, Monogram, Notice, PackageCard, type PackageItem, PageHeader, Panel, PhoneFrame, PlanCard, type ProgressStep, ProgressSteps, ProofStrip, Prose, Reveal, Sats, SatsFigure, type SatsProps, type SatsTextOptions, ScrollStory, SearchButton, SearchDialog, type SearchDialogProps, type SearchGroup, type SearchQuery, type SearchResult, Section, SectionHeading, SectionIntro, type SectionProps, SectionTitle, SignMessage, SourceNote, type SourceNoteProps, Sparkline, SplitBar, type SplitSegment, StatCard, type StatCardProps, StatGrid, type StatGridProps, StepGrid, type StepGridProps, type StepItem, type StepState, TextLink, Ticker, type TruthRow, type TruthStatus, TruthTable, UsdApprox, type ValueTone, type VerifyCheck, VerifyReport, chartColor, monogramGround, monogramLetter, satsText, sectionVariants, useCopy, useInView };
@@ -3,11 +3,11 @@ import { ReactNode, HTMLAttributes, ElementType, CSSProperties, Component, Error
3
3
  import * as class_variance_authority_types from 'class-variance-authority/types';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
  export { D as DocHeader, a as DocLayout, P as PageHero, b as PageHeroProps, T as TocItem, u as useActiveHeading } from './hero-Dn37il-9.js';
6
- export { A as ApiRow, a as ApiTable, b as AppCard, c as AppCardProps, d as AppGrid, B as Breadcrumbs, C as Callout, e as CardGrid, f as CodeBlock, g as CodeBlockProps, h as CodeTab, i as CodeTabs, j as ComparisonColumn, k as ComparisonRow, l as ComparisonTable, m as Crumb, D as Diagram, n as DocsHeading, o as DocsPager, I as InstallTabs, L as LinkCard, M as MdxTable, p as MermaidLike, q as MermaidLoader, O as OnThisPage, P as PagerLink, r as ProtocolGrid, s as ProtocolHero, t as ProtocolNav, S as SpecCard, u as SpecCardProps, v as SpecFileKind, w as Step, x as Steps, V as VerifyBox, y as languageName, z as useHeadings } from './docs-ByUx4t-D.js';
6
+ export { A as ApiRow, a as ApiTable, b as AppCard, c as AppCardProps, d as AppGrid, B as Breadcrumbs, C as Callout, e as CardGrid, f as CodeBlock, g as CodeBlockProps, h as CodeTab, i as CodeTabs, j as ComparisonColumn, k as ComparisonRow, l as ComparisonTable, m as Crumb, D as Diagram, n as DocsHeading, o as DocsPager, I as InstallTabs, L as LinkCard, M as MdxTable, p as MermaidLike, q as MermaidLoader, O as OnThisPage, P as PagerLink, r as ProtocolGrid, s as ProtocolHero, t as ProtocolNav, S as SpecCard, u as SpecCardProps, v as SpecFileKind, w as Step, x as Steps, V as VerifyBox, y as languageName, z as useHeadings } from './docs-BWWnm5Jv.js';
7
7
  import { ExplorerKind, Network } from './format.js';
8
- import { j as ProtocolSlug } from './index-DmfyPYe5.js';
9
- import { S as Statement } from './status-badge-Bt8x3RhO.js';
10
- export { A as AnchorState, a as AnchorStatus, b as ArtifactView, B as BlockCountdown, c as BlockHeight, C as ChosenFile, D as DropZone, F as FilterChips, d as FilterOption, e as FormSection, M as Meter, S as SectionStatus, f as StateBadge, g as StateDef, h as StateTone, T as ToolGrid, i as ToolItem, j as createStateBadge } from './tools-Bw7RhO92.js';
8
+ import { k as ProtocolSlug } from './index-Bkl49Vgy.js';
9
+ import { S as Statement } from './status-badge-CHHxtFkP.js';
10
+ export { A as AnchorState, a as AnchorStatus, b as ArtifactView, B as BlockCountdown, c as BlockHeight, C as ChosenFile, D as DropZone, F as FilterChips, d as FilterOption, e as FormSection, M as Meter, S as SectionStatus, f as StateBadge, g as StateDef, h as StateTone, T as ToolGrid, i as ToolItem, j as createStateBadge } from './tools-CzjFPng4.js';
11
11
 
12
12
  declare function Eyebrow({ className, onInk, ...props }: HTMLAttributes<HTMLParagraphElement> & {
13
13
  onInk?: boolean;
@@ -574,6 +574,8 @@ declare function FloatChip({ icon, title, detail, delay, className, style, }: {
574
574
  }): react.JSX.Element;
575
575
 
576
576
  declare const SIZES: {
577
+ readonly '2xs': "size-7 rounded-[0.55rem] text-[0.75rem]";
578
+ readonly xs: "size-8 rounded-[0.6rem] text-[0.875rem]";
577
579
  readonly sm: "size-9 rounded-[0.7rem] text-[0.9375rem]";
578
580
  readonly md: "size-11 rounded-[0.85rem] text-[1.125rem]";
579
581
  readonly lg: "size-14 rounded-[1.05rem] text-[1.5rem]";
@@ -843,6 +845,39 @@ declare function TextLink({ href: written, children, external, className, }: {
843
845
  className?: string;
844
846
  }): react.JSX.Element;
845
847
 
848
+ declare function SectionTitle({ title, meta, description, action, as: Tag, size, tone, id, className, }: {
849
+ title: ReactNode;
850
+ meta?: ReactNode;
851
+ description?: ReactNode;
852
+ action?: ReactNode;
853
+ as?: 'h2' | 'h3';
854
+ size?: 'md' | 'sm';
855
+ tone?: 'default' | 'danger';
856
+ id?: string;
857
+ className?: string;
858
+ }): react.JSX.Element;
859
+ declare function ListCard({ as: Tag, className, ...props }: HTMLAttributes<HTMLElement> & {
860
+ as?: 'ul' | 'ol' | 'div';
861
+ }): react.JSX.Element;
862
+ declare function ChoiceGroup<T extends string>({ value, onValueChange, label, columns, size, disabled, className, children, }: {
863
+ value: T | undefined;
864
+ onValueChange: (value: T) => void;
865
+ label: string;
866
+ columns?: 1 | 2 | 3;
867
+ size?: 'md' | 'sm';
868
+ disabled?: boolean;
869
+ className?: string;
870
+ children: ReactNode;
871
+ }): react.JSX.Element;
872
+ declare function ChoiceCard({ value, title, description, icon, disabled, className, }: {
873
+ value: string;
874
+ title: ReactNode;
875
+ description?: ReactNode;
876
+ icon?: ReactNode;
877
+ disabled?: boolean;
878
+ className?: string;
879
+ }): react.JSX.Element;
880
+
846
881
  interface SearchResult {
847
882
  id: string;
848
883
  href?: string;
@@ -882,4 +917,4 @@ interface SearchDialogProps {
882
917
  declare function SearchDialog({ onQuery, open: openProp, onOpenChange, onSelect, button, hotkey, label, placeholder, idle, defaultQuery, debounceMs, browse, className, }: SearchDialogProps): react.JSX.Element;
883
918
  declare function CommandDialog({ label, placeholder, ...props }: Omit<SearchDialogProps, 'browse' | 'button'>): react.JSX.Element;
884
919
 
885
- export { Accent, type ActivityItem, ActivityList, BrowserFrame, ChartFrame, type ChartTone, type CheckState, Closing, type Column, CommandDialog, Container, CopyButton, type CopyButtonProps, CountdownRing, DataTable, Display, type DisplayProps, EmptyLine, EmptyState, type Endpoint, EndpointList, ErrorBoundary, ErrorPage, Eyebrow, FactBlock, type FactRow, FactRows, Faq, FloatChip, Footnote, HashChip, HudCard, type KeyValueItem, KeyValueList, Lead, type LegalBlock, LegalDocument, type LegalSource, type LegendItem, LoadingBlock, LockedPreview, Monogram, Notice, PackageCard, type PackageItem, PageHeader, Panel, PhoneFrame, PlanCard, type ProgressStep, ProgressSteps, ProofStrip, Prose, Reveal, Sats, SatsFigure, type SatsProps, type SatsTextOptions, ScrollStory, SearchButton, SearchDialog, type SearchDialogProps, type SearchGroup, type SearchQuery, type SearchResult, Section, SectionHeading, SectionIntro, type SectionProps, SignMessage, SourceNote, type SourceNoteProps, Sparkline, SplitBar, type SplitSegment, StatCard, type StatCardProps, StatGrid, type StatGridProps, StepGrid, type StepGridProps, type StepItem, type StepState, TextLink, Ticker, type TruthRow, type TruthStatus, TruthTable, UsdApprox, type ValueTone, type VerifyCheck, VerifyReport, chartColor, monogramGround, monogramLetter, satsText, sectionVariants, useCopy, useInView };
920
+ export { Accent, type ActivityItem, ActivityList, BrowserFrame, ChartFrame, type ChartTone, type CheckState, ChoiceCard, ChoiceGroup, Closing, type Column, CommandDialog, Container, CopyButton, type CopyButtonProps, CountdownRing, DataTable, Display, type DisplayProps, EmptyLine, EmptyState, type Endpoint, EndpointList, ErrorBoundary, ErrorPage, Eyebrow, FactBlock, type FactRow, FactRows, Faq, FloatChip, Footnote, HashChip, HudCard, type KeyValueItem, KeyValueList, Lead, type LegalBlock, LegalDocument, type LegalSource, type LegendItem, ListCard, LoadingBlock, LockedPreview, Monogram, Notice, PackageCard, type PackageItem, PageHeader, Panel, PhoneFrame, PlanCard, type ProgressStep, ProgressSteps, ProofStrip, Prose, Reveal, Sats, SatsFigure, type SatsProps, type SatsTextOptions, ScrollStory, SearchButton, SearchDialog, type SearchDialogProps, type SearchGroup, type SearchQuery, type SearchResult, Section, SectionHeading, SectionIntro, type SectionProps, SectionTitle, SignMessage, SourceNote, type SourceNoteProps, Sparkline, SplitBar, type SplitSegment, StatCard, type StatCardProps, StatGrid, type StatGridProps, StepGrid, type StepGridProps, type StepItem, type StepState, TextLink, Ticker, type TruthRow, type TruthStatus, TruthTable, UsdApprox, type ValueTone, type VerifyCheck, VerifyReport, chartColor, monogramGround, monogramLetter, satsText, sectionVariants, useCopy, useInView };
@@ -570,7 +570,7 @@ var JS_TAG = /<\/?(?=[A-Za-z])/y;
570
570
  var JS_TAG_NAME = /[A-Za-z][\w$.:-]*/y;
571
571
  var JS_PUNCT = /=>|\.\.\.|[{}()[\];,.<>=+\-*/%!?:&|^~#]/y;
572
572
  var JSX_BEFORE = /* @__PURE__ */ new Set(["(", ",", "=", "?", ":", "{", "[", ";", ">", "&&", "||", "=>", "return"]);
573
- function scanJs(src, emit, jsx38) {
573
+ function scanJs(src, emit, jsx39) {
574
574
  let i = 0;
575
575
  let prev = "";
576
576
  let tagDepth = 0;
@@ -596,7 +596,7 @@ function scanJs(src, emit, jsx38) {
596
596
  sig('"');
597
597
  continue;
598
598
  }
599
- if (jsx38 && tagDepth === 0 && (m = at(JS_TAG, src, i)) && (prev === "" || JSX_BEFORE.has(prev))) {
599
+ if (jsx39 && tagDepth === 0 && (m = at(JS_TAG, src, i)) && (prev === "" || JSX_BEFORE.has(prev))) {
600
600
  const name = at(JS_TAG_NAME, src, i + m.length);
601
601
  if (name) {
602
602
  emit(m);
@@ -608,7 +608,7 @@ function scanJs(src, emit, jsx38) {
608
608
  continue;
609
609
  }
610
610
  }
611
- if (jsx38 && tagDepth > 0 && braceInTag === 0) {
611
+ if (jsx39 && tagDepth > 0 && braceInTag === 0) {
612
612
  if (src.startsWith("/>", i) || src[i] === ">") {
613
613
  const close = src[i] === ">" ? ">" : "/>";
614
614
  emit(close);
@@ -628,7 +628,7 @@ function scanJs(src, emit, jsx38) {
628
628
  continue;
629
629
  }
630
630
  if (src[i] === "{") braceInTag = 1;
631
- } else if (jsx38 && tagDepth > 0 && braceInTag > 0) {
631
+ } else if (jsx39 && tagDepth > 0 && braceInTag > 0) {
632
632
  if (src[i] === "{") braceInTag++;
633
633
  else if (src[i] === "}") braceInTag--;
634
634
  }
@@ -977,7 +977,8 @@ function ScrollFade({ fade = "var(--card)", className, innerClassName, children,
977
977
  onScroll: measure,
978
978
  tabIndex: edges.left || edges.right ? 0 : void 0,
979
979
  className: cn(
980
- "overflow-x-auto overscroll-x-contain rounded-[inherit] outline-none focus-visible:ring-2 focus-visible:ring-ring",
980
+ // Positioned, so sr-only text deep in a wide row scrolls and clips with the row.
981
+ "relative overflow-x-auto overscroll-x-contain rounded-[inherit] outline-none focus-visible:ring-2 focus-visible:ring-ring",
981
982
  innerClassName
982
983
  ),
983
984
  children
@@ -1823,7 +1824,7 @@ function Well({
1823
1824
  ] });
1824
1825
  }
1825
1826
  var FRAME = "overflow-hidden rounded-[1.25rem] border border-[var(--oca-code-line)] bg-[var(--oca-code-surface)]";
1826
- var COPY_ON_INK = "text-oca-ink-subtle hover:bg-white/10 hover:text-white";
1827
+ var COPY_ON_INK = "text-oca-ink-subtle hover:bg-white/10 hover:text-white max-md:size-11";
1827
1828
  function CodeBlock({
1828
1829
  code,
1829
1830
  html,
@@ -2251,6 +2252,9 @@ var GROUNDS = [
2251
2252
  }
2252
2253
  ];
2253
2254
  var SIZES = {
2255
+ // A list row's avatar, a facepile.
2256
+ "2xs": "size-7 rounded-[0.55rem] text-[0.75rem]",
2257
+ xs: "size-8 rounded-[0.6rem] text-[0.875rem]",
2254
2258
  sm: "size-9 rounded-[0.7rem] text-[0.9375rem]",
2255
2259
  md: "size-11 rounded-[0.85rem] text-[1.125rem]",
2256
2260
  lg: "size-14 rounded-[1.05rem] text-[1.5rem]"
@@ -2376,6 +2380,7 @@ function MarkOutline({ className }) {
2376
2380
  // src/family/index.ts
2377
2381
  var OCHK_IO = "https://ochk.io";
2378
2382
  var DOCS_HREF = `${OCHK_IO}/docs`;
2383
+ var OCHK_APP = "https://ochk.app";
2379
2384
  function protocol(slug, verb, line, kinds) {
2380
2385
  return {
2381
2386
  slug,
@@ -2412,7 +2417,7 @@ var FAMILY = [
2412
2417
  {
2413
2418
  slug: "me",
2414
2419
  label: "ochk.app",
2415
- href: "https://ochk.app",
2420
+ href: OCHK_APP,
2416
2421
  group: "orangecheck",
2417
2422
  line: "One account, with Bitcoin behind it.",
2418
2423
  status: "testing"
@@ -2495,6 +2500,10 @@ function protocolSite(slug) {
2495
2500
  { href: `${OCHK_IO}/trust`, label: "Trust" },
2496
2501
  { href: `${OCHK_IO}/about`, label: "About" }
2497
2502
  ];
2503
+ var InColumnContext = sharedContext("in-column", false);
2504
+ function useInColumn() {
2505
+ return react.useContext(InColumnContext);
2506
+ }
2498
2507
  var SiteHomeContext = sharedContext("site-home", void 0);
2499
2508
  function useSiteHome() {
2500
2509
  return react.useContext(SiteHomeContext);
@@ -2522,10 +2531,11 @@ function ErrorPage({
2522
2531
  className
2523
2532
  }) {
2524
2533
  const shellHome = useSiteHome();
2534
+ const inColumn = useInColumn();
2525
2535
  const homeHref = home ?? (protocol2 ? protocolSite(protocol2).pageHref : shellHome ?? OCHK_IO);
2526
2536
  const words = WORDS[code] ?? (code >= 500 ? WORDS[500] : WORDS[404]);
2527
2537
  const server = code >= 500;
2528
- return /* @__PURE__ */ jsxRuntime.jsx(Section, { space: "none", className: cn("flex min-h-[min(40rem,72dvh)] items-center py-16 md:py-24", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 items-center gap-12 md:grid-cols-12", children: [
2538
+ return /* @__PURE__ */ jsxRuntime.jsx(Section, { space: "none", contained: !inColumn, className: cn("flex min-h-[min(40rem,72dvh)] items-center py-16 md:py-24", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 items-center gap-12 md:grid-cols-12", children: [
2529
2539
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex max-w-[40rem] flex-col items-start gap-6 md:col-span-7", children: [
2530
2540
  /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "oca-eyebrow oca-enter", children: [
2531
2541
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "oca-tabular", children: code }),
@@ -2932,7 +2942,7 @@ function Panel({
2932
2942
  const [open, setOpen] = react.useState(false);
2933
2943
  const body = (expanded) => typeof children === "function" ? children(expanded) : children;
2934
2944
  const head = (expanded) => /* @__PURE__ */ jsxRuntime.jsxs("header", { className: "flex flex-wrap items-start justify-between gap-x-4 gap-y-2", children: [
2935
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-1", children: [
2945
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-[min(100%,12rem)] flex-1 basis-0 flex-col gap-1", children: [
2936
2946
  expanded ? /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: "text-[1.0625rem] font-medium leading-snug", children: title }) : /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-[1rem] font-medium leading-snug", children: title }),
2937
2947
  description ? expanded ? /* @__PURE__ */ jsxRuntime.jsx(DialogDescription, { className: "text-[0.875rem] leading-snug text-muted-foreground", children: description }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[0.875rem] leading-snug text-muted-foreground", children: description }) : null
2938
2948
  ] }),
@@ -2961,7 +2971,7 @@ function Panel({
2961
2971
  className: "flex h-[min(92dvh,56rem)] w-[min(96vw,80rem)] max-w-none flex-col gap-4 overflow-y-auto",
2962
2972
  children: [
2963
2973
  head(true),
2964
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 min-w-0 flex-1", children: open ? body(true) : null }),
2974
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 min-w-0 flex-1 overflow-y-auto", children: open ? body(true) : null }),
2965
2975
  source ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-t border-border pt-3", children: source }) : null
2966
2976
  ]
2967
2977
  }
@@ -4414,6 +4424,112 @@ function SignMessage({
4414
4424
  )
4415
4425
  ] });
4416
4426
  }
4427
+ function SectionTitle({
4428
+ title,
4429
+ meta,
4430
+ description,
4431
+ action,
4432
+ as: Tag = "h2",
4433
+ size = "md",
4434
+ tone = "default",
4435
+ id,
4436
+ className
4437
+ }) {
4438
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-wrap items-end justify-between gap-x-4 gap-y-3", className), children: [
4439
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 max-w-[40rem] flex-[1_1_16rem] flex-col gap-1", children: [
4440
+ /* @__PURE__ */ jsxRuntime.jsxs(
4441
+ Tag,
4442
+ {
4443
+ id,
4444
+ className: cn(
4445
+ "flex scroll-mt-24 flex-wrap items-baseline gap-x-3",
4446
+ size === "sm" ? "oca-title-sm" : "oca-title",
4447
+ tone === "danger" && "text-destructive"
4448
+ ),
4449
+ children: [
4450
+ title,
4451
+ meta ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "oca-tabular text-[0.875rem] font-normal tracking-normal text-muted-foreground", children: meta }) : null
4452
+ ]
4453
+ }
4454
+ ),
4455
+ description ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[0.9375rem] leading-relaxed text-muted-foreground", children: description }) : null
4456
+ ] }),
4457
+ action ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: action }) : null
4458
+ ] });
4459
+ }
4460
+ function ListCard({
4461
+ as: Tag = "ul",
4462
+ className,
4463
+ ...props
4464
+ }) {
4465
+ return /* @__PURE__ */ jsxRuntime.jsx(Tag, { className: cn("divide-y divide-border overflow-clip rounded-[1.25rem] border border-border bg-card", className), ...props });
4466
+ }
4467
+ var ChoiceSize = react.createContext("md");
4468
+ var COLUMNS = { 1: "", 2: "sm:grid-cols-2", 3: "sm:grid-cols-2 lg:grid-cols-3" };
4469
+ function ChoiceGroup({
4470
+ value,
4471
+ onValueChange,
4472
+ label,
4473
+ columns = 1,
4474
+ size = "md",
4475
+ disabled,
4476
+ className,
4477
+ children
4478
+ }) {
4479
+ return /* @__PURE__ */ jsxRuntime.jsx(ChoiceSize.Provider, { value: size, children: /* @__PURE__ */ jsxRuntime.jsx(
4480
+ RadioGroupPrimitive__namespace.Root,
4481
+ {
4482
+ value: value ?? "",
4483
+ onValueChange: (v) => onValueChange(v),
4484
+ "aria-label": label,
4485
+ disabled,
4486
+ className: cn("grid", size === "sm" ? "gap-1.5" : "gap-3", COLUMNS[columns], className),
4487
+ children
4488
+ }
4489
+ ) });
4490
+ }
4491
+ function ChoiceCard({
4492
+ value,
4493
+ title,
4494
+ description,
4495
+ icon,
4496
+ disabled,
4497
+ className
4498
+ }) {
4499
+ const sm = react.useContext(ChoiceSize) === "sm";
4500
+ return /* @__PURE__ */ jsxRuntime.jsxs(
4501
+ RadioGroupPrimitive__namespace.Item,
4502
+ {
4503
+ value,
4504
+ disabled,
4505
+ className: cn(
4506
+ "group flex w-full min-w-0 items-start gap-3 border text-left outline-none transition-colors",
4507
+ "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
4508
+ "border-border bg-card data-[state=checked]:border-foreground data-[state=checked]:bg-accent data-[state=unchecked]:hover:border-oca-hairline-strong",
4509
+ "disabled:cursor-not-allowed disabled:opacity-50",
4510
+ sm ? "min-h-11 rounded-xl px-3.5 py-2.5" : "rounded-[1.25rem] p-5",
4511
+ className
4512
+ ),
4513
+ children: [
4514
+ icon ? /* @__PURE__ */ jsxRuntime.jsx(
4515
+ "span",
4516
+ {
4517
+ "aria-hidden": true,
4518
+ className: cn(
4519
+ "shrink-0 text-muted-foreground group-data-[state=checked]:text-oca-accent-ink [&_svg]:size-full",
4520
+ sm ? "mt-0.5 size-4" : "size-6"
4521
+ ),
4522
+ children: icon
4523
+ }
4524
+ ) : null,
4525
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-col gap-1", children: [
4526
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: sm ? "text-[0.9375rem] font-medium" : "oca-title-sm", children: title }),
4527
+ description ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[0.875rem] leading-relaxed text-muted-foreground", children: description }) : null
4528
+ ] })
4529
+ ]
4530
+ }
4531
+ );
4532
+ }
4417
4533
  function useMacKeys() {
4418
4534
  const [mac, setMac] = react.useState(true);
4419
4535
  react.useEffect(() => {
@@ -4689,7 +4805,7 @@ function download(content, filename, mime) {
4689
4805
  a.remove();
4690
4806
  setTimeout(() => URL.revokeObjectURL(url), 0);
4691
4807
  }
4692
- var BAR_BUTTON = "inline-flex h-7 items-center gap-1.5 rounded-full px-2.5 text-[0.75rem] text-oca-ink-subtle transition-colors hover:bg-white/10 hover:text-white";
4808
+ var BAR_BUTTON = "inline-flex h-7 items-center gap-1.5 rounded-full px-2.5 text-[0.75rem] text-oca-ink-subtle transition-colors hover:bg-white/10 hover:text-white max-md:h-11 max-md:min-w-11 max-md:justify-center max-md:px-3";
4693
4809
  function ArtifactView({
4694
4810
  content,
4695
4811
  title,
@@ -4719,7 +4835,8 @@ function ArtifactView({
4719
4835
  "aria-pressed": view === v,
4720
4836
  onClick: () => setView(v),
4721
4837
  className: cn(
4722
- "h-7 rounded-full px-2.5 text-[0.75rem] transition-colors",
4838
+ // The pill stays 28px; its target reaches the bar's 44.
4839
+ "relative h-7 rounded-full px-2.5 text-[0.75rem] transition-colors before:absolute before:inset-x-0 before:top-1/2 before:h-11 before:-translate-y-1/2",
4723
4840
  view === v ? "bg-white/[0.12] text-white" : "text-oca-ink-subtle hover:text-white"
4724
4841
  ),
4725
4842
  children: v === "formatted" ? "Formatted" : "Raw"
@@ -5189,7 +5306,8 @@ function FilterChips({
5189
5306
  onClick: () => press(o.value),
5190
5307
  className: cn(
5191
5308
  "inline-flex shrink-0 items-center gap-1.5 rounded-full border px-3.5 text-[0.875rem] transition-colors",
5192
- tight ? "h-8" : "h-9",
5309
+ // A thumb's 44px on a phone.
5310
+ tight ? "h-11 md:h-8" : "h-11 md:h-9",
5193
5311
  on ? "border-foreground bg-foreground text-background" : "border-border bg-card text-muted-foreground hover:border-oca-hairline-strong hover:text-foreground"
5194
5312
  ),
5195
5313
  children: [
@@ -5269,6 +5387,8 @@ exports.BrowserFrame = BrowserFrame;
5269
5387
  exports.Callout = Callout;
5270
5388
  exports.CardGrid = CardGrid;
5271
5389
  exports.ChartFrame = ChartFrame;
5390
+ exports.ChoiceCard = ChoiceCard;
5391
+ exports.ChoiceGroup = ChoiceGroup;
5272
5392
  exports.Closing = Closing;
5273
5393
  exports.CodeBlock = CodeBlock;
5274
5394
  exports.CodeTabs = CodeTabs;
@@ -5305,6 +5425,7 @@ exports.KeyValueList = KeyValueList;
5305
5425
  exports.Lead = Lead;
5306
5426
  exports.LegalDocument = LegalDocument;
5307
5427
  exports.LinkCard = LinkCard;
5428
+ exports.ListCard = ListCard;
5308
5429
  exports.LoadingBlock = LoadingBlock;
5309
5430
  exports.LockedPreview = LockedPreview;
5310
5431
  exports.MdxTable = MdxTable;
@@ -5333,6 +5454,7 @@ exports.SearchDialog = SearchDialog;
5333
5454
  exports.Section = Section;
5334
5455
  exports.SectionHeading = SectionHeading;
5335
5456
  exports.SectionIntro = SectionIntro;
5457
+ exports.SectionTitle = SectionTitle;
5336
5458
  exports.SignMessage = SignMessage;
5337
5459
  exports.SourceNote = SourceNote;
5338
5460
  exports.Sparkline = Sparkline;