@orangecheck/app-design 1.4.0 → 1.4.1
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.
- package/dist/chrome.d.mts +3 -2
- package/dist/chrome.d.ts +3 -2
- package/dist/chrome.js +9 -5
- package/dist/chrome.js.map +1 -1
- package/dist/chrome.mjs +9 -5
- package/dist/chrome.mjs.map +1 -1
- package/dist/components.d.mts +6 -4
- package/dist/components.d.ts +6 -4
- package/dist/components.js +170 -152
- package/dist/components.js.map +1 -1
- package/dist/components.mjs +170 -152
- package/dist/components.mjs.map +1 -1
- package/dist/{docs-BB9gK4KF.d.ts → docs-ByUx4t-D.d.ts} +2 -1
- package/dist/{docs-D-T-nHiu.d.mts → docs-CFE5mU_6.d.mts} +2 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +223 -195
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +223 -195
- package/dist/index.mjs.map +1 -1
- package/dist/mdx.d.mts +1 -1
- package/dist/mdx.d.ts +1 -1
- package/dist/mdx.js +7 -2
- package/dist/mdx.js.map +1 -1
- package/dist/mdx.mjs +7 -2
- package/dist/mdx.mjs.map +1 -1
- package/dist/primitives.d.mts +3 -3
- package/dist/primitives.d.ts +3 -3
- package/dist/primitives.js +10 -1
- package/dist/primitives.js.map +1 -1
- package/dist/primitives.mjs +10 -1
- package/dist/primitives.mjs.map +1 -1
- package/dist/session.js +1 -1
- package/dist/session.js.map +1 -1
- package/dist/session.mjs +1 -1
- package/dist/session.mjs.map +1 -1
- package/package.json +3 -2
package/dist/components.d.mts
CHANGED
|
@@ -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-
|
|
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';
|
|
7
7
|
import { ExplorerKind, Network } from './format.mjs';
|
|
8
|
+
import { j as ProtocolSlug } from './index-DmfyPYe5.mjs';
|
|
8
9
|
import { S as Statement } from './status-badge-BJ9Sdsx8.mjs';
|
|
9
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-DFIxIj5p.mjs';
|
|
10
|
-
import './index-DmfyPYe5.mjs';
|
|
11
11
|
|
|
12
12
|
declare function Eyebrow({ className, onInk, ...props }: HTMLAttributes<HTMLParagraphElement> & {
|
|
13
13
|
onInk?: boolean;
|
|
@@ -598,12 +598,13 @@ declare class ErrorBoundary extends Component<Props, State> {
|
|
|
598
598
|
render(): ReactNode;
|
|
599
599
|
}
|
|
600
600
|
|
|
601
|
-
declare function ErrorPage({ code, title, detail, actions, home, art, className, }: {
|
|
601
|
+
declare function ErrorPage({ code, title, detail, actions, home, protocol, art, className, }: {
|
|
602
602
|
code?: number;
|
|
603
603
|
title?: ReactNode;
|
|
604
604
|
detail?: ReactNode;
|
|
605
605
|
actions?: ReactNode;
|
|
606
606
|
home?: string;
|
|
607
|
+
protocol?: ProtocolSlug;
|
|
607
608
|
art?: ReactNode;
|
|
608
609
|
className?: string;
|
|
609
610
|
}): react.JSX.Element;
|
|
@@ -734,7 +735,7 @@ declare function VerifyReport({ verdict, title, summary, checks, facts, notCheck
|
|
|
734
735
|
as?: 'h2' | 'h3';
|
|
735
736
|
className?: string;
|
|
736
737
|
}): react.JSX.Element;
|
|
737
|
-
declare function SignMessage({ lead, address, message, wallets, busy, error, submitLabel, secondary, onSignature, className, }: {
|
|
738
|
+
declare function SignMessage({ lead, address, message, wallets, busy, error, submitLabel, secondary, scheme, onSignature, className, }: {
|
|
738
739
|
lead?: ReactNode;
|
|
739
740
|
address: string;
|
|
740
741
|
message: string;
|
|
@@ -743,6 +744,7 @@ declare function SignMessage({ lead, address, message, wallets, busy, error, sub
|
|
|
743
744
|
error?: ReactNode;
|
|
744
745
|
submitLabel?: string;
|
|
745
746
|
secondary?: ReactNode;
|
|
747
|
+
scheme?: 'bip322' | 'legacy';
|
|
746
748
|
onSignature: (signature: string) => void;
|
|
747
749
|
className?: string;
|
|
748
750
|
}): react.JSX.Element;
|
package/dist/components.d.ts
CHANGED
|
@@ -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-
|
|
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';
|
|
7
7
|
import { ExplorerKind, Network } from './format.js';
|
|
8
|
+
import { j as ProtocolSlug } from './index-DmfyPYe5.js';
|
|
8
9
|
import { S as Statement } from './status-badge-Bt8x3RhO.js';
|
|
9
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-BggNN5DV.js';
|
|
10
|
-
import './index-DmfyPYe5.js';
|
|
11
11
|
|
|
12
12
|
declare function Eyebrow({ className, onInk, ...props }: HTMLAttributes<HTMLParagraphElement> & {
|
|
13
13
|
onInk?: boolean;
|
|
@@ -598,12 +598,13 @@ declare class ErrorBoundary extends Component<Props, State> {
|
|
|
598
598
|
render(): ReactNode;
|
|
599
599
|
}
|
|
600
600
|
|
|
601
|
-
declare function ErrorPage({ code, title, detail, actions, home, art, className, }: {
|
|
601
|
+
declare function ErrorPage({ code, title, detail, actions, home, protocol, art, className, }: {
|
|
602
602
|
code?: number;
|
|
603
603
|
title?: ReactNode;
|
|
604
604
|
detail?: ReactNode;
|
|
605
605
|
actions?: ReactNode;
|
|
606
606
|
home?: string;
|
|
607
|
+
protocol?: ProtocolSlug;
|
|
607
608
|
art?: ReactNode;
|
|
608
609
|
className?: string;
|
|
609
610
|
}): react.JSX.Element;
|
|
@@ -734,7 +735,7 @@ declare function VerifyReport({ verdict, title, summary, checks, facts, notCheck
|
|
|
734
735
|
as?: 'h2' | 'h3';
|
|
735
736
|
className?: string;
|
|
736
737
|
}): react.JSX.Element;
|
|
737
|
-
declare function SignMessage({ lead, address, message, wallets, busy, error, submitLabel, secondary, onSignature, className, }: {
|
|
738
|
+
declare function SignMessage({ lead, address, message, wallets, busy, error, submitLabel, secondary, scheme, onSignature, className, }: {
|
|
738
739
|
lead?: ReactNode;
|
|
739
740
|
address: string;
|
|
740
741
|
message: string;
|
|
@@ -743,6 +744,7 @@ declare function SignMessage({ lead, address, message, wallets, busy, error, sub
|
|
|
743
744
|
error?: ReactNode;
|
|
744
745
|
submitLabel?: string;
|
|
745
746
|
secondary?: ReactNode;
|
|
747
|
+
scheme?: 'bip322' | 'legacy';
|
|
746
748
|
onSignature: (signature: string) => void;
|
|
747
749
|
className?: string;
|
|
748
750
|
}): react.JSX.Element;
|
package/dist/components.js
CHANGED
|
@@ -9,6 +9,7 @@ var TabsPrimitive = require('@radix-ui/react-tabs');
|
|
|
9
9
|
var lucideReact = require('lucide-react');
|
|
10
10
|
var reactSlot = require('@radix-ui/react-slot');
|
|
11
11
|
var SeparatorPrimitive = require('@radix-ui/react-separator');
|
|
12
|
+
require('next-themes');
|
|
12
13
|
require('sonner');
|
|
13
14
|
var Link = require('next/link');
|
|
14
15
|
var router = require('next/compat/router');
|
|
@@ -1737,7 +1738,8 @@ function Well({
|
|
|
1737
1738
|
lines,
|
|
1738
1739
|
maxLines,
|
|
1739
1740
|
diff,
|
|
1740
|
-
lineNumbers
|
|
1741
|
+
lineNumbers,
|
|
1742
|
+
wrap
|
|
1741
1743
|
}) {
|
|
1742
1744
|
const foldable = maxLines !== void 0 && lines > maxLines + 2;
|
|
1743
1745
|
const [open, setOpen] = react.useState(false);
|
|
@@ -1756,7 +1758,8 @@ function Well({
|
|
|
1756
1758
|
"data-diff": diff ? "" : void 0,
|
|
1757
1759
|
"data-line-numbers": lineNumbers ? "" : void 0,
|
|
1758
1760
|
className: cn(
|
|
1759
|
-
"oca-code
|
|
1761
|
+
"oca-code py-4 font-mono text-[0.875rem] leading-[1.625] text-oca-ink-muted [font-variant-ligatures:none]",
|
|
1762
|
+
wrap ? "whitespace-pre-wrap break-all" : "w-max min-w-full",
|
|
1760
1763
|
!lined && "px-5"
|
|
1761
1764
|
),
|
|
1762
1765
|
children: lined ? /* @__PURE__ */ jsxRuntime.jsx("code", { className: "block", "data-lang": lang, dangerouslySetInnerHTML: { __html: html } }) : /* @__PURE__ */ jsxRuntime.jsx("code", { className: "block", "data-lang": lang, children })
|
|
@@ -1798,6 +1801,7 @@ function CodeBlock({
|
|
|
1798
1801
|
highlight: marks,
|
|
1799
1802
|
diff,
|
|
1800
1803
|
lineNumbers,
|
|
1804
|
+
wrap,
|
|
1801
1805
|
actions,
|
|
1802
1806
|
className
|
|
1803
1807
|
}) {
|
|
@@ -1829,6 +1833,7 @@ function CodeBlock({
|
|
|
1829
1833
|
maxLines,
|
|
1830
1834
|
diff: prepared ? prepared.diff : isDiff,
|
|
1831
1835
|
lineNumbers,
|
|
1836
|
+
wrap,
|
|
1832
1837
|
children
|
|
1833
1838
|
}
|
|
1834
1839
|
)
|
|
@@ -2331,6 +2336,133 @@ function MarkOutline({ className }) {
|
|
|
2331
2336
|
points
|
|
2332
2337
|
)) });
|
|
2333
2338
|
}
|
|
2339
|
+
|
|
2340
|
+
// src/family/index.ts
|
|
2341
|
+
var OCHK_IO = "https://ochk.io";
|
|
2342
|
+
var DOCS_HREF = `${OCHK_IO}/docs`;
|
|
2343
|
+
function protocol(slug, verb, line, kinds) {
|
|
2344
|
+
return {
|
|
2345
|
+
slug,
|
|
2346
|
+
label: slug,
|
|
2347
|
+
href: `${OCHK_IO}/${slug}`,
|
|
2348
|
+
group: "protocol",
|
|
2349
|
+
line,
|
|
2350
|
+
status: "live",
|
|
2351
|
+
verb,
|
|
2352
|
+
pageHref: `${OCHK_IO}/${slug}`,
|
|
2353
|
+
toolHref: `https://${slug}.ochk.io`,
|
|
2354
|
+
specHref: `https://github.com/orangecheck/oc-${slug}-protocol`,
|
|
2355
|
+
kinds
|
|
2356
|
+
};
|
|
2357
|
+
}
|
|
2358
|
+
var PROTOCOLS = [
|
|
2359
|
+
protocol("attest", "identity", "Show that an address holds bitcoin, and for how long.", "30078"),
|
|
2360
|
+
protocol("lock", "confidentiality", "Encrypt to a Bitcoin address, so only its holder can open it.", "30078"),
|
|
2361
|
+
protocol("vote", "legitimacy", "Polls weighed in sats, that anyone can tally.", "30080\u201330082"),
|
|
2362
|
+
protocol("stamp", "provenance", "Prove who signed something, and when.", "30083"),
|
|
2363
|
+
protocol("agent", "authority", "Give software scoped, revocable permission to act for you.", "30083\u201330086"),
|
|
2364
|
+
protocol("pledge", "commitment", "Make a promise with bitcoin behind it, on a public record.", "30078")
|
|
2365
|
+
];
|
|
2366
|
+
var PROTOCOL_ORDER = PROTOCOLS.map((p) => p.slug);
|
|
2367
|
+
var FAMILY = [
|
|
2368
|
+
{
|
|
2369
|
+
slug: "home",
|
|
2370
|
+
label: "ochk.io",
|
|
2371
|
+
href: OCHK_IO,
|
|
2372
|
+
group: "orangecheck",
|
|
2373
|
+
line: "The open protocols, and the company behind them.",
|
|
2374
|
+
status: "live"
|
|
2375
|
+
},
|
|
2376
|
+
{
|
|
2377
|
+
slug: "me",
|
|
2378
|
+
label: "ochk.app",
|
|
2379
|
+
href: "https://ochk.app",
|
|
2380
|
+
group: "orangecheck",
|
|
2381
|
+
line: "One account, with Bitcoin behind it.",
|
|
2382
|
+
status: "testing"
|
|
2383
|
+
},
|
|
2384
|
+
{
|
|
2385
|
+
slug: "docs",
|
|
2386
|
+
label: "docs",
|
|
2387
|
+
href: DOCS_HREF,
|
|
2388
|
+
group: "orangecheck",
|
|
2389
|
+
line: "Specs, SDKs and guides for every protocol.",
|
|
2390
|
+
status: "live"
|
|
2391
|
+
},
|
|
2392
|
+
...PROTOCOLS,
|
|
2393
|
+
{
|
|
2394
|
+
slug: "vault",
|
|
2395
|
+
label: "vault",
|
|
2396
|
+
href: "https://vault.ochk.io",
|
|
2397
|
+
group: "app",
|
|
2398
|
+
line: "A password manager, encrypted in your browser.",
|
|
2399
|
+
status: "live",
|
|
2400
|
+
protocols: ["lock"]
|
|
2401
|
+
},
|
|
2402
|
+
{
|
|
2403
|
+
slug: "chat",
|
|
2404
|
+
label: "chat",
|
|
2405
|
+
href: "https://chat.ochk.io",
|
|
2406
|
+
group: "app",
|
|
2407
|
+
line: "Messages only the holder of a Bitcoin address can read.",
|
|
2408
|
+
status: "testing",
|
|
2409
|
+
protocols: ["lock"]
|
|
2410
|
+
},
|
|
2411
|
+
{
|
|
2412
|
+
slug: "cosign",
|
|
2413
|
+
label: "cosign",
|
|
2414
|
+
href: "https://cosign.ochk.io",
|
|
2415
|
+
group: "app",
|
|
2416
|
+
line: "Builders find co-founders and backers.",
|
|
2417
|
+
status: "testing",
|
|
2418
|
+
// Signs in with an orangecheck account and a wallet; uses none of the six directly.
|
|
2419
|
+
protocols: []
|
|
2420
|
+
},
|
|
2421
|
+
{
|
|
2422
|
+
slug: "me-demo",
|
|
2423
|
+
// "demo", not the made-up app's own name, so nobody takes it for ours.
|
|
2424
|
+
label: "demo",
|
|
2425
|
+
href: "https://me-demo.ochk.io",
|
|
2426
|
+
group: "app",
|
|
2427
|
+
line: "Lumen Notes, a made-up app that signs in with orangecheck.",
|
|
2428
|
+
status: "live"
|
|
2429
|
+
},
|
|
2430
|
+
{
|
|
2431
|
+
slug: "globe",
|
|
2432
|
+
label: "globe",
|
|
2433
|
+
href: "https://globe.ochk.io",
|
|
2434
|
+
group: "public-good",
|
|
2435
|
+
line: "The Bitcoin network, live, on a globe.",
|
|
2436
|
+
status: "live"
|
|
2437
|
+
},
|
|
2438
|
+
{
|
|
2439
|
+
slug: "btc",
|
|
2440
|
+
label: "btc",
|
|
2441
|
+
href: "https://btc.ochk.io",
|
|
2442
|
+
group: "public-good",
|
|
2443
|
+
line: "A free desk for reading the Bitcoin market.",
|
|
2444
|
+
status: "live"
|
|
2445
|
+
}
|
|
2446
|
+
];
|
|
2447
|
+
var BY_SLUG = new Map(FAMILY.map((s) => [s.slug, s]));
|
|
2448
|
+
function protocolSite(slug) {
|
|
2449
|
+
return BY_SLUG.get(slug);
|
|
2450
|
+
}
|
|
2451
|
+
[
|
|
2452
|
+
{
|
|
2453
|
+
href: `${OCHK_IO}/protocols`,
|
|
2454
|
+
label: "Protocols",
|
|
2455
|
+
children: PROTOCOLS.map((p) => ({ href: p.pageHref, label: p.label, description: p.line }))
|
|
2456
|
+
},
|
|
2457
|
+
{ href: `${OCHK_IO}/apps`, label: "Apps" },
|
|
2458
|
+
{ href: DOCS_HREF, label: "Docs" },
|
|
2459
|
+
{ href: `${OCHK_IO}/trust`, label: "Trust" },
|
|
2460
|
+
{ href: `${OCHK_IO}/about`, label: "About" }
|
|
2461
|
+
];
|
|
2462
|
+
var SiteHomeContext = sharedContext("site-home", void 0);
|
|
2463
|
+
function useSiteHome() {
|
|
2464
|
+
return react.useContext(SiteHomeContext);
|
|
2465
|
+
}
|
|
2334
2466
|
var WORDS = {
|
|
2335
2467
|
404: {
|
|
2336
2468
|
name: "Not found",
|
|
@@ -2348,10 +2480,13 @@ function ErrorPage({
|
|
|
2348
2480
|
title,
|
|
2349
2481
|
detail,
|
|
2350
2482
|
actions,
|
|
2351
|
-
home
|
|
2483
|
+
home,
|
|
2484
|
+
protocol: protocol2,
|
|
2352
2485
|
art,
|
|
2353
2486
|
className
|
|
2354
2487
|
}) {
|
|
2488
|
+
const shellHome = useSiteHome();
|
|
2489
|
+
const homeHref = home ?? (protocol2 ? protocolSite(protocol2).pageHref : shellHome ?? OCHK_IO);
|
|
2355
2490
|
const words = WORDS[code] ?? (code >= 500 ? WORDS[500] : WORDS[404]);
|
|
2356
2491
|
const server = code >= 500;
|
|
2357
2492
|
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: [
|
|
@@ -2365,7 +2500,7 @@ function ErrorPage({
|
|
|
2365
2500
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "oca-lead oca-enter [--enter-delay:150ms]", children: detail ?? words.detail }),
|
|
2366
2501
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "oca-enter flex flex-wrap gap-3 [--enter-delay:230ms]", children: actions ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2367
2502
|
server ? /* @__PURE__ */ jsxRuntime.jsx(Button, { onClick: () => window.location.reload(), children: "Try again" }) : null,
|
|
2368
|
-
/* @__PURE__ */ jsxRuntime.jsx(Button, { asChild: true, variant: server ? "secondary" : "primary", children: /* @__PURE__ */ jsxRuntime.jsx(Link__default.default, { href:
|
|
2503
|
+
/* @__PURE__ */ jsxRuntime.jsx(Button, { asChild: true, variant: server ? "secondary" : "primary", children: /* @__PURE__ */ jsxRuntime.jsx(Link__default.default, { href: homeHref, children: "Go home" }) })
|
|
2369
2504
|
] }) })
|
|
2370
2505
|
] }),
|
|
2371
2506
|
art !== null ? /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": true, className: "oca-enter hidden justify-center md:col-span-5 md:flex [--enter-delay:120ms]", children: art ?? /* @__PURE__ */ jsxRuntime.jsx(MarkOutline, { className: "w-full max-w-[20rem] text-oca-hairline-strong" }) }) : null
|
|
@@ -2716,129 +2851,6 @@ function LegalDocument({ doc, className }) {
|
|
|
2716
2851
|
}
|
|
2717
2852
|
);
|
|
2718
2853
|
}
|
|
2719
|
-
|
|
2720
|
-
// src/family/index.ts
|
|
2721
|
-
var OCHK_IO = "https://ochk.io";
|
|
2722
|
-
var DOCS_HREF = `${OCHK_IO}/docs`;
|
|
2723
|
-
function protocol(slug, verb, line, kinds) {
|
|
2724
|
-
return {
|
|
2725
|
-
slug,
|
|
2726
|
-
label: slug,
|
|
2727
|
-
href: `${OCHK_IO}/${slug}`,
|
|
2728
|
-
group: "protocol",
|
|
2729
|
-
line,
|
|
2730
|
-
status: "live",
|
|
2731
|
-
verb,
|
|
2732
|
-
pageHref: `${OCHK_IO}/${slug}`,
|
|
2733
|
-
toolHref: `https://${slug}.ochk.io`,
|
|
2734
|
-
specHref: `https://github.com/orangecheck/oc-${slug}-protocol`,
|
|
2735
|
-
kinds
|
|
2736
|
-
};
|
|
2737
|
-
}
|
|
2738
|
-
var PROTOCOLS = [
|
|
2739
|
-
protocol("attest", "identity", "Show that an address holds bitcoin, and for how long.", "30078"),
|
|
2740
|
-
protocol("lock", "confidentiality", "Encrypt to a Bitcoin address, so only its holder can open it.", "30078"),
|
|
2741
|
-
protocol("vote", "legitimacy", "Polls weighed in sats, that anyone can tally.", "30080\u201330082"),
|
|
2742
|
-
protocol("stamp", "provenance", "Prove who signed something, and when.", "30083"),
|
|
2743
|
-
protocol("agent", "authority", "Give software scoped, revocable permission to act for you.", "30083\u201330086"),
|
|
2744
|
-
protocol("pledge", "commitment", "Make a promise with bitcoin behind it, on a public record.", "30078")
|
|
2745
|
-
];
|
|
2746
|
-
var PROTOCOL_ORDER = PROTOCOLS.map((p) => p.slug);
|
|
2747
|
-
var FAMILY = [
|
|
2748
|
-
{
|
|
2749
|
-
slug: "home",
|
|
2750
|
-
label: "ochk.io",
|
|
2751
|
-
href: OCHK_IO,
|
|
2752
|
-
group: "orangecheck",
|
|
2753
|
-
line: "The open protocols, and the company behind them.",
|
|
2754
|
-
status: "live"
|
|
2755
|
-
},
|
|
2756
|
-
{
|
|
2757
|
-
slug: "me",
|
|
2758
|
-
label: "ochk.app",
|
|
2759
|
-
href: "https://ochk.app",
|
|
2760
|
-
group: "orangecheck",
|
|
2761
|
-
line: "One account, with Bitcoin behind it.",
|
|
2762
|
-
status: "testing"
|
|
2763
|
-
},
|
|
2764
|
-
{
|
|
2765
|
-
slug: "docs",
|
|
2766
|
-
label: "docs",
|
|
2767
|
-
href: DOCS_HREF,
|
|
2768
|
-
group: "orangecheck",
|
|
2769
|
-
line: "Specs, SDKs and guides for every protocol.",
|
|
2770
|
-
status: "live"
|
|
2771
|
-
},
|
|
2772
|
-
...PROTOCOLS,
|
|
2773
|
-
{
|
|
2774
|
-
slug: "vault",
|
|
2775
|
-
label: "vault",
|
|
2776
|
-
href: "https://vault.ochk.io",
|
|
2777
|
-
group: "app",
|
|
2778
|
-
line: "A password manager, encrypted in your browser.",
|
|
2779
|
-
status: "live",
|
|
2780
|
-
protocols: ["lock"]
|
|
2781
|
-
},
|
|
2782
|
-
{
|
|
2783
|
-
slug: "chat",
|
|
2784
|
-
label: "chat",
|
|
2785
|
-
href: "https://chat.ochk.io",
|
|
2786
|
-
group: "app",
|
|
2787
|
-
line: "Messages only the holder of a Bitcoin address can read.",
|
|
2788
|
-
status: "testing",
|
|
2789
|
-
protocols: ["lock"]
|
|
2790
|
-
},
|
|
2791
|
-
{
|
|
2792
|
-
slug: "cosign",
|
|
2793
|
-
label: "cosign",
|
|
2794
|
-
href: "https://cosign.ochk.io",
|
|
2795
|
-
group: "app",
|
|
2796
|
-
line: "Builders find co-founders and backers.",
|
|
2797
|
-
status: "testing",
|
|
2798
|
-
// Signs in with an orangecheck account and a wallet; uses none of the six directly.
|
|
2799
|
-
protocols: []
|
|
2800
|
-
},
|
|
2801
|
-
{
|
|
2802
|
-
slug: "me-demo",
|
|
2803
|
-
// "demo", not the made-up app's own name, so nobody takes it for ours.
|
|
2804
|
-
label: "demo",
|
|
2805
|
-
href: "https://me-demo.ochk.io",
|
|
2806
|
-
group: "app",
|
|
2807
|
-
line: "Lumen Notes, a made-up app that signs in with orangecheck.",
|
|
2808
|
-
status: "live"
|
|
2809
|
-
},
|
|
2810
|
-
{
|
|
2811
|
-
slug: "globe",
|
|
2812
|
-
label: "globe",
|
|
2813
|
-
href: "https://globe.ochk.io",
|
|
2814
|
-
group: "public-good",
|
|
2815
|
-
line: "The Bitcoin network, live, on a globe.",
|
|
2816
|
-
status: "live"
|
|
2817
|
-
},
|
|
2818
|
-
{
|
|
2819
|
-
slug: "btc",
|
|
2820
|
-
label: "btc",
|
|
2821
|
-
href: "https://btc.ochk.io",
|
|
2822
|
-
group: "public-good",
|
|
2823
|
-
line: "A free desk for reading the Bitcoin market.",
|
|
2824
|
-
status: "live"
|
|
2825
|
-
}
|
|
2826
|
-
];
|
|
2827
|
-
var BY_SLUG = new Map(FAMILY.map((s) => [s.slug, s]));
|
|
2828
|
-
function protocolSite(slug) {
|
|
2829
|
-
return BY_SLUG.get(slug);
|
|
2830
|
-
}
|
|
2831
|
-
[
|
|
2832
|
-
{
|
|
2833
|
-
href: `${OCHK_IO}/protocols`,
|
|
2834
|
-
label: "Protocols",
|
|
2835
|
-
children: PROTOCOLS.map((p) => ({ href: p.pageHref, label: p.label, description: p.line }))
|
|
2836
|
-
},
|
|
2837
|
-
{ href: `${OCHK_IO}/apps`, label: "Apps" },
|
|
2838
|
-
{ href: DOCS_HREF, label: "Docs" },
|
|
2839
|
-
{ href: `${OCHK_IO}/trust`, label: "Trust" },
|
|
2840
|
-
{ href: `${OCHK_IO}/about`, label: "About" }
|
|
2841
|
-
];
|
|
2842
2854
|
var InDocsContext = sharedContext("in-docs", false);
|
|
2843
2855
|
function useInDocs() {
|
|
2844
2856
|
return react.useContext(InDocsContext);
|
|
@@ -3853,6 +3865,7 @@ function SignMessage({
|
|
|
3853
3865
|
error,
|
|
3854
3866
|
submitLabel = "Confirm",
|
|
3855
3867
|
secondary,
|
|
3868
|
+
scheme = "bip322",
|
|
3856
3869
|
onSignature,
|
|
3857
3870
|
className
|
|
3858
3871
|
}) {
|
|
@@ -3867,7 +3880,7 @@ function SignMessage({
|
|
|
3867
3880
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-px flex-1 bg-border" })
|
|
3868
3881
|
] })
|
|
3869
3882
|
] }) : null,
|
|
3870
|
-
/* @__PURE__ */ jsxRuntime.jsx(CodeBlock, { code: message, caption: "Message to sign" }),
|
|
3883
|
+
/* @__PURE__ */ jsxRuntime.jsx(CodeBlock, { code: message, caption: "Message to sign", wrap: true }),
|
|
3871
3884
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3872
3885
|
"form",
|
|
3873
3886
|
{
|
|
@@ -3883,7 +3896,9 @@ function SignMessage({
|
|
|
3883
3896
|
label: "Signature",
|
|
3884
3897
|
error,
|
|
3885
3898
|
hint: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3886
|
-
"From your wallet\u2019s \u201Csign message\u201D (
|
|
3899
|
+
"From your wallet\u2019s \u201Csign message\u201D (",
|
|
3900
|
+
scheme === "legacy" ? "legacy, BIP-137" : "BIP-322",
|
|
3901
|
+
"), signed by",
|
|
3887
3902
|
" ",
|
|
3888
3903
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "break-all font-mono", children: address }),
|
|
3889
3904
|
"."
|
|
@@ -4395,7 +4410,7 @@ function FormSection({
|
|
|
4395
4410
|
"aria-current": status === "current" ? "step" : void 0,
|
|
4396
4411
|
className: cn("scroll-mt-24 rounded-[1.25rem] border border-border bg-card", className),
|
|
4397
4412
|
children: [
|
|
4398
|
-
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: cn("flex items-start gap-3.5", tight ? "px-5 pt-5" : "px-6 pt-6"), children: [
|
|
4413
|
+
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: cn("flex flex-wrap items-start gap-x-3.5 gap-y-3", tight ? "px-5 pt-5" : "px-6 pt-6"), children: [
|
|
4399
4414
|
n !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
4400
4415
|
"span",
|
|
4401
4416
|
{
|
|
@@ -4422,7 +4437,7 @@ function FormSection({
|
|
|
4422
4437
|
] }),
|
|
4423
4438
|
hint ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[0.875rem] leading-snug text-muted-foreground", children: hint }) : null
|
|
4424
4439
|
] }),
|
|
4425
|
-
action ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: action }) : null
|
|
4440
|
+
action ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("shrink-0 max-sm:basis-full", n !== void 0 && "max-sm:pl-[2.625rem]"), children: action }) : null
|
|
4426
4441
|
] }),
|
|
4427
4442
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col", tight ? "gap-4 p-5" : "gap-5 p-6", n !== void 0 && (tight ? "sm:pl-[3.875rem]" : "sm:pl-[4.125rem]")), children })
|
|
4428
4443
|
]
|
|
@@ -4652,27 +4667,30 @@ function FilterChips({
|
|
|
4652
4667
|
onChange(cur.includes(v) ? cur.filter((x) => x !== v) : [...cur, v]);
|
|
4653
4668
|
} else onChange(v);
|
|
4654
4669
|
};
|
|
4655
|
-
return
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
|
|
4659
|
-
|
|
4660
|
-
|
|
4661
|
-
|
|
4662
|
-
|
|
4663
|
-
|
|
4664
|
-
|
|
4665
|
-
|
|
4666
|
-
|
|
4667
|
-
|
|
4668
|
-
|
|
4669
|
-
|
|
4670
|
-
|
|
4671
|
-
|
|
4672
|
-
|
|
4673
|
-
|
|
4674
|
-
|
|
4675
|
-
|
|
4670
|
+
return (
|
|
4671
|
+
// Wraps rather than scrolls: every filter stays in view on a phone.
|
|
4672
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { role: "group", "aria-label": label, className: cn("flex flex-wrap items-center gap-2 py-0.5", className), children: options.map((o) => {
|
|
4673
|
+
const on = isOn(o.value);
|
|
4674
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4675
|
+
"button",
|
|
4676
|
+
{
|
|
4677
|
+
type: "button",
|
|
4678
|
+
"aria-pressed": on,
|
|
4679
|
+
onClick: () => press(o.value),
|
|
4680
|
+
className: cn(
|
|
4681
|
+
"inline-flex shrink-0 items-center gap-1.5 rounded-full border px-3.5 text-[0.875rem] transition-colors",
|
|
4682
|
+
tight ? "h-8" : "h-9",
|
|
4683
|
+
on ? "border-foreground bg-foreground text-background" : "border-border bg-card text-muted-foreground hover:border-oca-hairline-strong hover:text-foreground"
|
|
4684
|
+
),
|
|
4685
|
+
children: [
|
|
4686
|
+
o.label,
|
|
4687
|
+
o.count !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "oca-tabular", children: o.count.toLocaleString("en-US") }) : null
|
|
4688
|
+
]
|
|
4689
|
+
},
|
|
4690
|
+
o.value
|
|
4691
|
+
);
|
|
4692
|
+
}) })
|
|
4693
|
+
);
|
|
4676
4694
|
}
|
|
4677
4695
|
function ToolGrid({
|
|
4678
4696
|
tools,
|