@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
|
@@ -18,10 +18,11 @@ interface CodeBlockProps {
|
|
|
18
18
|
highlight?: string | readonly number[];
|
|
19
19
|
diff?: boolean;
|
|
20
20
|
lineNumbers?: boolean;
|
|
21
|
+
wrap?: boolean;
|
|
21
22
|
actions?: ReactNode;
|
|
22
23
|
className?: string;
|
|
23
24
|
}
|
|
24
|
-
declare function CodeBlock({ code, html, children, trailingNewline, lang, caption, copy, clearAfter, maxLines, highlight: marks, diff, lineNumbers, actions, className, }: CodeBlockProps): react.JSX.Element;
|
|
25
|
+
declare function CodeBlock({ code, html, children, trailingNewline, lang, caption, copy, clearAfter, maxLines, highlight: marks, diff, lineNumbers, wrap, actions, className, }: CodeBlockProps): react.JSX.Element;
|
|
25
26
|
interface CodeTab {
|
|
26
27
|
label: string;
|
|
27
28
|
code: string;
|
|
@@ -18,10 +18,11 @@ interface CodeBlockProps {
|
|
|
18
18
|
highlight?: string | readonly number[];
|
|
19
19
|
diff?: boolean;
|
|
20
20
|
lineNumbers?: boolean;
|
|
21
|
+
wrap?: boolean;
|
|
21
22
|
actions?: ReactNode;
|
|
22
23
|
className?: string;
|
|
23
24
|
}
|
|
24
|
-
declare function CodeBlock({ code, html, children, trailingNewline, lang, caption, copy, clearAfter, maxLines, highlight: marks, diff, lineNumbers, actions, className, }: CodeBlockProps): react.JSX.Element;
|
|
25
|
+
declare function CodeBlock({ code, html, children, trailingNewline, lang, caption, copy, clearAfter, maxLines, highlight: marks, diff, lineNumbers, wrap, actions, className, }: CodeBlockProps): react.JSX.Element;
|
|
25
26
|
interface CodeTab {
|
|
26
27
|
label: string;
|
|
27
28
|
code: string;
|
package/dist/index.d.mts
CHANGED
|
@@ -4,7 +4,7 @@ export { S as Statement, a as Status, b as StatusBadge, c as StatusBadgeProps, s
|
|
|
4
4
|
export { AppIcon, AppIconProps, Crowd, CrowdProps, HalftoneCanvas, HalftoneCanvasProps, HalftoneSphere, HalftoneSphereProps, IsoCheck, IsoCheckProps, Lockup, LockupProps, MARK_FACES, Mark, MarkProps, SPHERE_GRADIENT, Tone, portraitTone } from './brand.mjs';
|
|
5
5
|
export { Accent, ActivityItem, ActivityList, BrowserFrame, CheckState, Closing, Column, Container, CopyButton, CopyButtonProps, DataTable, Display, DisplayProps, EmptyLine, EmptyState, Endpoint, EndpointList, ErrorBoundary, ErrorPage, Eyebrow, FactBlock, FactRow, FactRows, Faq, FloatChip, Footnote, HashChip, KeyValueItem, KeyValueList, Lead, LegalBlock, LegalDocument, LegalSource, LoadingBlock, Monogram, Notice, PackageCard, PackageItem, PageHeader, PhoneFrame, ProgressStep, ProgressSteps, ProofStrip, Prose, Reveal, Sats, SatsFigure, SatsProps, SatsTextOptions, ScrollStory, SearchButton, SearchDialog, SearchGroup, SearchQuery, SearchResult, Section, SectionHeading, SectionIntro, SectionProps, SignMessage, SplitBar, SplitSegment, StatCard, StatCardProps, StatGrid, StatGridProps, StepGrid, StepGridProps, StepItem, StepState, TextLink, Ticker, TruthRow, TruthStatus, TruthTable, UsdApprox, VerifyCheck, VerifyReport, monogramGround, monogramLetter, satsText, sectionVariants, useCopy, useInView } from './components.mjs';
|
|
6
6
|
export { D as DocHeader, a as DocLayout, P as PageHero, b as PageHeroProps, T as TocItem, u as useActiveHeading } from './hero-Dn37il-9.mjs';
|
|
7
|
-
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-
|
|
7
|
+
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';
|
|
8
8
|
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';
|
|
9
9
|
export { DOCS_HEADER_NAV, DocsNav, DocsNavItem, DocsNavSection, DocsShell, DocsShellProps, FamilyMenu, OchkIoFooter, ShellContext, ShellPlace, SignInFrame, SiteBanner, SiteFooter, SiteFooterProps, SiteHeader, SiteHeaderProps, SkipLink, useShellPlace } from './chrome.mjs';
|
|
10
10
|
export { A as AccountMenu, a as AccountMenuItem, b as AppShell, O as OCHK_APP_ACCOUNT, S as SessionAccountView, c as SessionState, d as ShellNavGroup, e as ShellNavItem, f as ShellSection, T as ThemeToggle, g as ToolShell, h as ToolShellProps, u as useSignInHref } from './tool-shell-D8Q8XX11.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { S as Statement, a as Status, b as StatusBadge, c as StatusBadgeProps, s
|
|
|
4
4
|
export { AppIcon, AppIconProps, Crowd, CrowdProps, HalftoneCanvas, HalftoneCanvasProps, HalftoneSphere, HalftoneSphereProps, IsoCheck, IsoCheckProps, Lockup, LockupProps, MARK_FACES, Mark, MarkProps, SPHERE_GRADIENT, Tone, portraitTone } from './brand.js';
|
|
5
5
|
export { Accent, ActivityItem, ActivityList, BrowserFrame, CheckState, Closing, Column, Container, CopyButton, CopyButtonProps, DataTable, Display, DisplayProps, EmptyLine, EmptyState, Endpoint, EndpointList, ErrorBoundary, ErrorPage, Eyebrow, FactBlock, FactRow, FactRows, Faq, FloatChip, Footnote, HashChip, KeyValueItem, KeyValueList, Lead, LegalBlock, LegalDocument, LegalSource, LoadingBlock, Monogram, Notice, PackageCard, PackageItem, PageHeader, PhoneFrame, ProgressStep, ProgressSteps, ProofStrip, Prose, Reveal, Sats, SatsFigure, SatsProps, SatsTextOptions, ScrollStory, SearchButton, SearchDialog, SearchGroup, SearchQuery, SearchResult, Section, SectionHeading, SectionIntro, SectionProps, SignMessage, SplitBar, SplitSegment, StatCard, StatCardProps, StatGrid, StatGridProps, StepGrid, StepGridProps, StepItem, StepState, TextLink, Ticker, TruthRow, TruthStatus, TruthTable, UsdApprox, VerifyCheck, VerifyReport, monogramGround, monogramLetter, satsText, sectionVariants, useCopy, useInView } from './components.js';
|
|
6
6
|
export { D as DocHeader, a as DocLayout, P as PageHero, b as PageHeroProps, T as TocItem, u as useActiveHeading } from './hero-Dn37il-9.js';
|
|
7
|
-
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-
|
|
7
|
+
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';
|
|
8
8
|
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';
|
|
9
9
|
export { DOCS_HEADER_NAV, DocsNav, DocsNavItem, DocsNavSection, DocsShell, DocsShellProps, FamilyMenu, OchkIoFooter, ShellContext, ShellPlace, SignInFrame, SiteBanner, SiteFooter, SiteFooterProps, SiteHeader, SiteHeaderProps, SkipLink, useShellPlace } from './chrome.js';
|
|
10
10
|
export { A as AccountMenu, a as AccountMenuItem, b as AppShell, O as OCHK_APP_ACCOUNT, S as SessionAccountView, c as SessionState, d as ShellNavGroup, e as ShellNavItem, f as ShellSection, T as ThemeToggle, g as ToolShell, h as ToolShellProps, u as useSignInHref } from './tool-shell-gmlj47Ie.js';
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ var react = require('react');
|
|
|
6
6
|
var clsx = require('clsx');
|
|
7
7
|
var tailwindMerge = require('tailwind-merge');
|
|
8
8
|
var SeparatorPrimitive = require('@radix-ui/react-separator');
|
|
9
|
+
var nextThemes = require('next-themes');
|
|
9
10
|
var sonner = require('sonner');
|
|
10
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
11
12
|
var CheckboxPrimitive = require('@radix-ui/react-checkbox');
|
|
@@ -22,7 +23,6 @@ var TabsPrimitive = require('@radix-ui/react-tabs');
|
|
|
22
23
|
var QRCode = require('qrcode');
|
|
23
24
|
var Link6 = require('next/link');
|
|
24
25
|
var router = require('next/compat/router');
|
|
25
|
-
var nextThemes = require('next-themes');
|
|
26
26
|
|
|
27
27
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
28
28
|
|
|
@@ -208,10 +208,18 @@ function StatusDot({
|
|
|
208
208
|
}
|
|
209
209
|
);
|
|
210
210
|
}
|
|
211
|
-
|
|
211
|
+
var TOAST_COLOURS = {
|
|
212
|
+
"--normal-bg": "var(--popover)",
|
|
213
|
+
"--normal-text": "var(--popover-foreground)",
|
|
214
|
+
"--normal-border": "var(--border)"
|
|
215
|
+
};
|
|
216
|
+
function Toaster({ style, ...props }) {
|
|
217
|
+
const { resolvedTheme } = nextThemes.useTheme();
|
|
212
218
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
213
219
|
sonner.Toaster,
|
|
214
220
|
{
|
|
221
|
+
theme: resolvedTheme === "dark" ? "dark" : resolvedTheme === "light" ? "light" : "system",
|
|
222
|
+
style: { ...TOAST_COLOURS, ...style },
|
|
215
223
|
position: "bottom-right",
|
|
216
224
|
toastOptions: {
|
|
217
225
|
classNames: {
|
|
@@ -3035,7 +3043,8 @@ function Well({
|
|
|
3035
3043
|
lines,
|
|
3036
3044
|
maxLines,
|
|
3037
3045
|
diff,
|
|
3038
|
-
lineNumbers
|
|
3046
|
+
lineNumbers,
|
|
3047
|
+
wrap
|
|
3039
3048
|
}) {
|
|
3040
3049
|
const foldable = maxLines !== void 0 && lines > maxLines + 2;
|
|
3041
3050
|
const [open, setOpen] = react.useState(false);
|
|
@@ -3054,7 +3063,8 @@ function Well({
|
|
|
3054
3063
|
"data-diff": diff ? "" : void 0,
|
|
3055
3064
|
"data-line-numbers": lineNumbers ? "" : void 0,
|
|
3056
3065
|
className: cn(
|
|
3057
|
-
"oca-code
|
|
3066
|
+
"oca-code py-4 font-mono text-[0.875rem] leading-[1.625] text-oca-ink-muted [font-variant-ligatures:none]",
|
|
3067
|
+
wrap ? "whitespace-pre-wrap break-all" : "w-max min-w-full",
|
|
3058
3068
|
!lined && "px-5"
|
|
3059
3069
|
),
|
|
3060
3070
|
children: lined ? /* @__PURE__ */ jsxRuntime.jsx("code", { className: "block", "data-lang": lang, dangerouslySetInnerHTML: { __html: html } }) : /* @__PURE__ */ jsxRuntime.jsx("code", { className: "block", "data-lang": lang, children })
|
|
@@ -3096,6 +3106,7 @@ function CodeBlock({
|
|
|
3096
3106
|
highlight: marks,
|
|
3097
3107
|
diff,
|
|
3098
3108
|
lineNumbers,
|
|
3109
|
+
wrap,
|
|
3099
3110
|
actions,
|
|
3100
3111
|
className
|
|
3101
3112
|
}) {
|
|
@@ -3127,6 +3138,7 @@ function CodeBlock({
|
|
|
3127
3138
|
maxLines,
|
|
3128
3139
|
diff: prepared ? prepared.diff : isDiff,
|
|
3129
3140
|
lineNumbers,
|
|
3141
|
+
wrap,
|
|
3130
3142
|
children
|
|
3131
3143
|
}
|
|
3132
3144
|
)
|
|
@@ -3591,6 +3603,169 @@ var ErrorBoundary = class extends react.Component {
|
|
|
3591
3603
|
) });
|
|
3592
3604
|
}
|
|
3593
3605
|
};
|
|
3606
|
+
|
|
3607
|
+
// src/family/index.ts
|
|
3608
|
+
var OCHK_IO = "https://ochk.io";
|
|
3609
|
+
var DOCS_HREF = `${OCHK_IO}/docs`;
|
|
3610
|
+
function protocol(slug, verb, line, kinds) {
|
|
3611
|
+
return {
|
|
3612
|
+
slug,
|
|
3613
|
+
label: slug,
|
|
3614
|
+
href: `${OCHK_IO}/${slug}`,
|
|
3615
|
+
group: "protocol",
|
|
3616
|
+
line,
|
|
3617
|
+
status: "live",
|
|
3618
|
+
verb,
|
|
3619
|
+
pageHref: `${OCHK_IO}/${slug}`,
|
|
3620
|
+
toolHref: `https://${slug}.ochk.io`,
|
|
3621
|
+
specHref: `https://github.com/orangecheck/oc-${slug}-protocol`,
|
|
3622
|
+
kinds
|
|
3623
|
+
};
|
|
3624
|
+
}
|
|
3625
|
+
var PROTOCOLS = [
|
|
3626
|
+
protocol("attest", "identity", "Show that an address holds bitcoin, and for how long.", "30078"),
|
|
3627
|
+
protocol("lock", "confidentiality", "Encrypt to a Bitcoin address, so only its holder can open it.", "30078"),
|
|
3628
|
+
protocol("vote", "legitimacy", "Polls weighed in sats, that anyone can tally.", "30080\u201330082"),
|
|
3629
|
+
protocol("stamp", "provenance", "Prove who signed something, and when.", "30083"),
|
|
3630
|
+
protocol("agent", "authority", "Give software scoped, revocable permission to act for you.", "30083\u201330086"),
|
|
3631
|
+
protocol("pledge", "commitment", "Make a promise with bitcoin behind it, on a public record.", "30078")
|
|
3632
|
+
];
|
|
3633
|
+
var PROTOCOL_ORDER = PROTOCOLS.map((p) => p.slug);
|
|
3634
|
+
var FAMILY = [
|
|
3635
|
+
{
|
|
3636
|
+
slug: "home",
|
|
3637
|
+
label: "ochk.io",
|
|
3638
|
+
href: OCHK_IO,
|
|
3639
|
+
group: "orangecheck",
|
|
3640
|
+
line: "The open protocols, and the company behind them.",
|
|
3641
|
+
status: "live"
|
|
3642
|
+
},
|
|
3643
|
+
{
|
|
3644
|
+
slug: "me",
|
|
3645
|
+
label: "ochk.app",
|
|
3646
|
+
href: "https://ochk.app",
|
|
3647
|
+
group: "orangecheck",
|
|
3648
|
+
line: "One account, with Bitcoin behind it.",
|
|
3649
|
+
status: "testing"
|
|
3650
|
+
},
|
|
3651
|
+
{
|
|
3652
|
+
slug: "docs",
|
|
3653
|
+
label: "docs",
|
|
3654
|
+
href: DOCS_HREF,
|
|
3655
|
+
group: "orangecheck",
|
|
3656
|
+
line: "Specs, SDKs and guides for every protocol.",
|
|
3657
|
+
status: "live"
|
|
3658
|
+
},
|
|
3659
|
+
...PROTOCOLS,
|
|
3660
|
+
{
|
|
3661
|
+
slug: "vault",
|
|
3662
|
+
label: "vault",
|
|
3663
|
+
href: "https://vault.ochk.io",
|
|
3664
|
+
group: "app",
|
|
3665
|
+
line: "A password manager, encrypted in your browser.",
|
|
3666
|
+
status: "live",
|
|
3667
|
+
protocols: ["lock"]
|
|
3668
|
+
},
|
|
3669
|
+
{
|
|
3670
|
+
slug: "chat",
|
|
3671
|
+
label: "chat",
|
|
3672
|
+
href: "https://chat.ochk.io",
|
|
3673
|
+
group: "app",
|
|
3674
|
+
line: "Messages only the holder of a Bitcoin address can read.",
|
|
3675
|
+
status: "testing",
|
|
3676
|
+
protocols: ["lock"]
|
|
3677
|
+
},
|
|
3678
|
+
{
|
|
3679
|
+
slug: "cosign",
|
|
3680
|
+
label: "cosign",
|
|
3681
|
+
href: "https://cosign.ochk.io",
|
|
3682
|
+
group: "app",
|
|
3683
|
+
line: "Builders find co-founders and backers.",
|
|
3684
|
+
status: "testing",
|
|
3685
|
+
// Signs in with an orangecheck account and a wallet; uses none of the six directly.
|
|
3686
|
+
protocols: []
|
|
3687
|
+
},
|
|
3688
|
+
{
|
|
3689
|
+
slug: "me-demo",
|
|
3690
|
+
// "demo", not the made-up app's own name, so nobody takes it for ours.
|
|
3691
|
+
label: "demo",
|
|
3692
|
+
href: "https://me-demo.ochk.io",
|
|
3693
|
+
group: "app",
|
|
3694
|
+
line: "Lumen Notes, a made-up app that signs in with orangecheck.",
|
|
3695
|
+
status: "live"
|
|
3696
|
+
},
|
|
3697
|
+
{
|
|
3698
|
+
slug: "globe",
|
|
3699
|
+
label: "globe",
|
|
3700
|
+
href: "https://globe.ochk.io",
|
|
3701
|
+
group: "public-good",
|
|
3702
|
+
line: "The Bitcoin network, live, on a globe.",
|
|
3703
|
+
status: "live"
|
|
3704
|
+
},
|
|
3705
|
+
{
|
|
3706
|
+
slug: "btc",
|
|
3707
|
+
label: "btc",
|
|
3708
|
+
href: "https://btc.ochk.io",
|
|
3709
|
+
group: "public-good",
|
|
3710
|
+
line: "A free desk for reading the Bitcoin market.",
|
|
3711
|
+
status: "live"
|
|
3712
|
+
}
|
|
3713
|
+
];
|
|
3714
|
+
var FAMILY_GROUPS = [
|
|
3715
|
+
{ id: "orangecheck", label: "orangecheck" },
|
|
3716
|
+
{ id: "protocol", label: "Protocols" },
|
|
3717
|
+
{ id: "app", label: "Apps" },
|
|
3718
|
+
{ id: "public-good", label: "Public goods" }
|
|
3719
|
+
];
|
|
3720
|
+
var BY_SLUG = new Map(FAMILY.map((s) => [s.slug, s]));
|
|
3721
|
+
function familySite(slug) {
|
|
3722
|
+
return BY_SLUG.get(slug);
|
|
3723
|
+
}
|
|
3724
|
+
function protocolSite(slug) {
|
|
3725
|
+
return BY_SLUG.get(slug);
|
|
3726
|
+
}
|
|
3727
|
+
function familyByGroup() {
|
|
3728
|
+
return FAMILY_GROUPS.map((g) => ({ ...g, sites: FAMILY.filter((s) => s.group === g.id) }));
|
|
3729
|
+
}
|
|
3730
|
+
var LEGAL_LINKS = [
|
|
3731
|
+
{ href: `${OCHK_IO}/privacy`, label: "Privacy" },
|
|
3732
|
+
{ href: `${OCHK_IO}/terms`, label: "Terms" },
|
|
3733
|
+
{ href: `${OCHK_IO}/security`, label: "Security" },
|
|
3734
|
+
{ href: `${OCHK_IO}/trademark`, label: "Trademarks" },
|
|
3735
|
+
{ href: `${OCHK_IO}/contact`, label: "Contact" }
|
|
3736
|
+
];
|
|
3737
|
+
var SELF_HOSTED_LEGAL_LINKS = [
|
|
3738
|
+
{ href: "/privacy", label: "Privacy" },
|
|
3739
|
+
{ href: "/terms", label: "Terms" },
|
|
3740
|
+
{ href: "/security", label: "Security" },
|
|
3741
|
+
{ href: `${OCHK_IO}/trademark`, label: "Trademarks" },
|
|
3742
|
+
{ href: "/contact", label: "Contact" }
|
|
3743
|
+
];
|
|
3744
|
+
var OCHK_IO_NAV = [
|
|
3745
|
+
{
|
|
3746
|
+
href: `${OCHK_IO}/protocols`,
|
|
3747
|
+
label: "Protocols",
|
|
3748
|
+
children: PROTOCOLS.map((p) => ({ href: p.pageHref, label: p.label, description: p.line }))
|
|
3749
|
+
},
|
|
3750
|
+
{ href: `${OCHK_IO}/apps`, label: "Apps" },
|
|
3751
|
+
{ href: DOCS_HREF, label: "Docs" },
|
|
3752
|
+
{ href: `${OCHK_IO}/trust`, label: "Trust" },
|
|
3753
|
+
{ href: `${OCHK_IO}/about`, label: "About" }
|
|
3754
|
+
];
|
|
3755
|
+
var OCHK_IO_FOOTER = [
|
|
3756
|
+
{
|
|
3757
|
+
heading: "Company",
|
|
3758
|
+
links: [
|
|
3759
|
+
{ href: `${OCHK_IO}/about`, label: "About" },
|
|
3760
|
+
{ href: `${OCHK_IO}/trust`, label: "Trust" },
|
|
3761
|
+
{ href: "https://github.com/orangecheck", label: "GitHub", external: true }
|
|
3762
|
+
]
|
|
3763
|
+
}
|
|
3764
|
+
];
|
|
3765
|
+
var SiteHomeContext = sharedContext("site-home", void 0);
|
|
3766
|
+
function useSiteHome() {
|
|
3767
|
+
return react.useContext(SiteHomeContext);
|
|
3768
|
+
}
|
|
3594
3769
|
var WORDS = {
|
|
3595
3770
|
404: {
|
|
3596
3771
|
name: "Not found",
|
|
@@ -3608,10 +3783,13 @@ function ErrorPage({
|
|
|
3608
3783
|
title,
|
|
3609
3784
|
detail,
|
|
3610
3785
|
actions,
|
|
3611
|
-
home
|
|
3786
|
+
home,
|
|
3787
|
+
protocol: protocol2,
|
|
3612
3788
|
art,
|
|
3613
3789
|
className
|
|
3614
3790
|
}) {
|
|
3791
|
+
const shellHome = useSiteHome();
|
|
3792
|
+
const homeHref = home ?? (protocol2 ? protocolSite(protocol2).pageHref : shellHome ?? OCHK_IO);
|
|
3615
3793
|
const words = WORDS[code] ?? (code >= 500 ? WORDS[500] : WORDS[404]);
|
|
3616
3794
|
const server = code >= 500;
|
|
3617
3795
|
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: [
|
|
@@ -3625,7 +3803,7 @@ function ErrorPage({
|
|
|
3625
3803
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "oca-lead oca-enter [--enter-delay:150ms]", children: detail ?? words.detail }),
|
|
3626
3804
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "oca-enter flex flex-wrap gap-3 [--enter-delay:230ms]", children: actions ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3627
3805
|
server ? /* @__PURE__ */ jsxRuntime.jsx(Button, { onClick: () => window.location.reload(), children: "Try again" }) : null,
|
|
3628
|
-
/* @__PURE__ */ jsxRuntime.jsx(Button, { asChild: true, variant: server ? "secondary" : "primary", children: /* @__PURE__ */ jsxRuntime.jsx(Link6__default.default, { href:
|
|
3806
|
+
/* @__PURE__ */ jsxRuntime.jsx(Button, { asChild: true, variant: server ? "secondary" : "primary", children: /* @__PURE__ */ jsxRuntime.jsx(Link6__default.default, { href: homeHref, children: "Go home" }) })
|
|
3629
3807
|
] }) })
|
|
3630
3808
|
] }),
|
|
3631
3809
|
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
|
|
@@ -3871,165 +4049,6 @@ function LegalDocument({ doc, className }) {
|
|
|
3871
4049
|
}
|
|
3872
4050
|
);
|
|
3873
4051
|
}
|
|
3874
|
-
|
|
3875
|
-
// src/family/index.ts
|
|
3876
|
-
var OCHK_IO = "https://ochk.io";
|
|
3877
|
-
var DOCS_HREF = `${OCHK_IO}/docs`;
|
|
3878
|
-
function protocol(slug, verb, line, kinds) {
|
|
3879
|
-
return {
|
|
3880
|
-
slug,
|
|
3881
|
-
label: slug,
|
|
3882
|
-
href: `${OCHK_IO}/${slug}`,
|
|
3883
|
-
group: "protocol",
|
|
3884
|
-
line,
|
|
3885
|
-
status: "live",
|
|
3886
|
-
verb,
|
|
3887
|
-
pageHref: `${OCHK_IO}/${slug}`,
|
|
3888
|
-
toolHref: `https://${slug}.ochk.io`,
|
|
3889
|
-
specHref: `https://github.com/orangecheck/oc-${slug}-protocol`,
|
|
3890
|
-
kinds
|
|
3891
|
-
};
|
|
3892
|
-
}
|
|
3893
|
-
var PROTOCOLS = [
|
|
3894
|
-
protocol("attest", "identity", "Show that an address holds bitcoin, and for how long.", "30078"),
|
|
3895
|
-
protocol("lock", "confidentiality", "Encrypt to a Bitcoin address, so only its holder can open it.", "30078"),
|
|
3896
|
-
protocol("vote", "legitimacy", "Polls weighed in sats, that anyone can tally.", "30080\u201330082"),
|
|
3897
|
-
protocol("stamp", "provenance", "Prove who signed something, and when.", "30083"),
|
|
3898
|
-
protocol("agent", "authority", "Give software scoped, revocable permission to act for you.", "30083\u201330086"),
|
|
3899
|
-
protocol("pledge", "commitment", "Make a promise with bitcoin behind it, on a public record.", "30078")
|
|
3900
|
-
];
|
|
3901
|
-
var PROTOCOL_ORDER = PROTOCOLS.map((p) => p.slug);
|
|
3902
|
-
var FAMILY = [
|
|
3903
|
-
{
|
|
3904
|
-
slug: "home",
|
|
3905
|
-
label: "ochk.io",
|
|
3906
|
-
href: OCHK_IO,
|
|
3907
|
-
group: "orangecheck",
|
|
3908
|
-
line: "The open protocols, and the company behind them.",
|
|
3909
|
-
status: "live"
|
|
3910
|
-
},
|
|
3911
|
-
{
|
|
3912
|
-
slug: "me",
|
|
3913
|
-
label: "ochk.app",
|
|
3914
|
-
href: "https://ochk.app",
|
|
3915
|
-
group: "orangecheck",
|
|
3916
|
-
line: "One account, with Bitcoin behind it.",
|
|
3917
|
-
status: "testing"
|
|
3918
|
-
},
|
|
3919
|
-
{
|
|
3920
|
-
slug: "docs",
|
|
3921
|
-
label: "docs",
|
|
3922
|
-
href: DOCS_HREF,
|
|
3923
|
-
group: "orangecheck",
|
|
3924
|
-
line: "Specs, SDKs and guides for every protocol.",
|
|
3925
|
-
status: "live"
|
|
3926
|
-
},
|
|
3927
|
-
...PROTOCOLS,
|
|
3928
|
-
{
|
|
3929
|
-
slug: "vault",
|
|
3930
|
-
label: "vault",
|
|
3931
|
-
href: "https://vault.ochk.io",
|
|
3932
|
-
group: "app",
|
|
3933
|
-
line: "A password manager, encrypted in your browser.",
|
|
3934
|
-
status: "live",
|
|
3935
|
-
protocols: ["lock"]
|
|
3936
|
-
},
|
|
3937
|
-
{
|
|
3938
|
-
slug: "chat",
|
|
3939
|
-
label: "chat",
|
|
3940
|
-
href: "https://chat.ochk.io",
|
|
3941
|
-
group: "app",
|
|
3942
|
-
line: "Messages only the holder of a Bitcoin address can read.",
|
|
3943
|
-
status: "testing",
|
|
3944
|
-
protocols: ["lock"]
|
|
3945
|
-
},
|
|
3946
|
-
{
|
|
3947
|
-
slug: "cosign",
|
|
3948
|
-
label: "cosign",
|
|
3949
|
-
href: "https://cosign.ochk.io",
|
|
3950
|
-
group: "app",
|
|
3951
|
-
line: "Builders find co-founders and backers.",
|
|
3952
|
-
status: "testing",
|
|
3953
|
-
// Signs in with an orangecheck account and a wallet; uses none of the six directly.
|
|
3954
|
-
protocols: []
|
|
3955
|
-
},
|
|
3956
|
-
{
|
|
3957
|
-
slug: "me-demo",
|
|
3958
|
-
// "demo", not the made-up app's own name, so nobody takes it for ours.
|
|
3959
|
-
label: "demo",
|
|
3960
|
-
href: "https://me-demo.ochk.io",
|
|
3961
|
-
group: "app",
|
|
3962
|
-
line: "Lumen Notes, a made-up app that signs in with orangecheck.",
|
|
3963
|
-
status: "live"
|
|
3964
|
-
},
|
|
3965
|
-
{
|
|
3966
|
-
slug: "globe",
|
|
3967
|
-
label: "globe",
|
|
3968
|
-
href: "https://globe.ochk.io",
|
|
3969
|
-
group: "public-good",
|
|
3970
|
-
line: "The Bitcoin network, live, on a globe.",
|
|
3971
|
-
status: "live"
|
|
3972
|
-
},
|
|
3973
|
-
{
|
|
3974
|
-
slug: "btc",
|
|
3975
|
-
label: "btc",
|
|
3976
|
-
href: "https://btc.ochk.io",
|
|
3977
|
-
group: "public-good",
|
|
3978
|
-
line: "A free desk for reading the Bitcoin market.",
|
|
3979
|
-
status: "live"
|
|
3980
|
-
}
|
|
3981
|
-
];
|
|
3982
|
-
var FAMILY_GROUPS = [
|
|
3983
|
-
{ id: "orangecheck", label: "orangecheck" },
|
|
3984
|
-
{ id: "protocol", label: "Protocols" },
|
|
3985
|
-
{ id: "app", label: "Apps" },
|
|
3986
|
-
{ id: "public-good", label: "Public goods" }
|
|
3987
|
-
];
|
|
3988
|
-
var BY_SLUG = new Map(FAMILY.map((s) => [s.slug, s]));
|
|
3989
|
-
function familySite(slug) {
|
|
3990
|
-
return BY_SLUG.get(slug);
|
|
3991
|
-
}
|
|
3992
|
-
function protocolSite(slug) {
|
|
3993
|
-
return BY_SLUG.get(slug);
|
|
3994
|
-
}
|
|
3995
|
-
function familyByGroup() {
|
|
3996
|
-
return FAMILY_GROUPS.map((g) => ({ ...g, sites: FAMILY.filter((s) => s.group === g.id) }));
|
|
3997
|
-
}
|
|
3998
|
-
var LEGAL_LINKS = [
|
|
3999
|
-
{ href: `${OCHK_IO}/privacy`, label: "Privacy" },
|
|
4000
|
-
{ href: `${OCHK_IO}/terms`, label: "Terms" },
|
|
4001
|
-
{ href: `${OCHK_IO}/security`, label: "Security" },
|
|
4002
|
-
{ href: `${OCHK_IO}/trademark`, label: "Trademarks" },
|
|
4003
|
-
{ href: `${OCHK_IO}/contact`, label: "Contact" }
|
|
4004
|
-
];
|
|
4005
|
-
var SELF_HOSTED_LEGAL_LINKS = [
|
|
4006
|
-
{ href: "/privacy", label: "Privacy" },
|
|
4007
|
-
{ href: "/terms", label: "Terms" },
|
|
4008
|
-
{ href: "/security", label: "Security" },
|
|
4009
|
-
{ href: `${OCHK_IO}/trademark`, label: "Trademarks" },
|
|
4010
|
-
{ href: "/contact", label: "Contact" }
|
|
4011
|
-
];
|
|
4012
|
-
var OCHK_IO_NAV = [
|
|
4013
|
-
{
|
|
4014
|
-
href: `${OCHK_IO}/protocols`,
|
|
4015
|
-
label: "Protocols",
|
|
4016
|
-
children: PROTOCOLS.map((p) => ({ href: p.pageHref, label: p.label, description: p.line }))
|
|
4017
|
-
},
|
|
4018
|
-
{ href: `${OCHK_IO}/apps`, label: "Apps" },
|
|
4019
|
-
{ href: DOCS_HREF, label: "Docs" },
|
|
4020
|
-
{ href: `${OCHK_IO}/trust`, label: "Trust" },
|
|
4021
|
-
{ href: `${OCHK_IO}/about`, label: "About" }
|
|
4022
|
-
];
|
|
4023
|
-
var OCHK_IO_FOOTER = [
|
|
4024
|
-
{
|
|
4025
|
-
heading: "Company",
|
|
4026
|
-
links: [
|
|
4027
|
-
{ href: `${OCHK_IO}/about`, label: "About" },
|
|
4028
|
-
{ href: `${OCHK_IO}/trust`, label: "Trust" },
|
|
4029
|
-
{ href: "https://github.com/orangecheck", label: "GitHub", external: true }
|
|
4030
|
-
]
|
|
4031
|
-
}
|
|
4032
|
-
];
|
|
4033
4052
|
var InDocsContext = sharedContext("in-docs", false);
|
|
4034
4053
|
function useInDocs() {
|
|
4035
4054
|
return react.useContext(InDocsContext);
|
|
@@ -4846,6 +4865,7 @@ function SignMessage({
|
|
|
4846
4865
|
error,
|
|
4847
4866
|
submitLabel = "Confirm",
|
|
4848
4867
|
secondary,
|
|
4868
|
+
scheme = "bip322",
|
|
4849
4869
|
onSignature,
|
|
4850
4870
|
className
|
|
4851
4871
|
}) {
|
|
@@ -4860,7 +4880,7 @@ function SignMessage({
|
|
|
4860
4880
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-px flex-1 bg-border" })
|
|
4861
4881
|
] })
|
|
4862
4882
|
] }) : null,
|
|
4863
|
-
/* @__PURE__ */ jsxRuntime.jsx(CodeBlock, { code: message, caption: "Message to sign" }),
|
|
4883
|
+
/* @__PURE__ */ jsxRuntime.jsx(CodeBlock, { code: message, caption: "Message to sign", wrap: true }),
|
|
4864
4884
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4865
4885
|
"form",
|
|
4866
4886
|
{
|
|
@@ -4876,7 +4896,9 @@ function SignMessage({
|
|
|
4876
4896
|
label: "Signature",
|
|
4877
4897
|
error,
|
|
4878
4898
|
hint: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
4879
|
-
"From your wallet\u2019s \u201Csign message\u201D (
|
|
4899
|
+
"From your wallet\u2019s \u201Csign message\u201D (",
|
|
4900
|
+
scheme === "legacy" ? "legacy, BIP-137" : "BIP-322",
|
|
4901
|
+
"), signed by",
|
|
4880
4902
|
" ",
|
|
4881
4903
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "break-all font-mono", children: address }),
|
|
4882
4904
|
"."
|
|
@@ -5388,7 +5410,7 @@ function FormSection({
|
|
|
5388
5410
|
"aria-current": status === "current" ? "step" : void 0,
|
|
5389
5411
|
className: cn("scroll-mt-24 rounded-[1.25rem] border border-border bg-card", className),
|
|
5390
5412
|
children: [
|
|
5391
|
-
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: cn("flex items-start gap-3.5", tight ? "px-5 pt-5" : "px-6 pt-6"), children: [
|
|
5413
|
+
/* @__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: [
|
|
5392
5414
|
n !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5393
5415
|
"span",
|
|
5394
5416
|
{
|
|
@@ -5415,7 +5437,7 @@ function FormSection({
|
|
|
5415
5437
|
] }),
|
|
5416
5438
|
hint ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[0.875rem] leading-snug text-muted-foreground", children: hint }) : null
|
|
5417
5439
|
] }),
|
|
5418
|
-
action ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: action }) : null
|
|
5440
|
+
action ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("shrink-0 max-sm:basis-full", n !== void 0 && "max-sm:pl-[2.625rem]"), children: action }) : null
|
|
5419
5441
|
] }),
|
|
5420
5442
|
/* @__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 })
|
|
5421
5443
|
]
|
|
@@ -5645,27 +5667,30 @@ function FilterChips({
|
|
|
5645
5667
|
onChange(cur.includes(v) ? cur.filter((x) => x !== v) : [...cur, v]);
|
|
5646
5668
|
} else onChange(v);
|
|
5647
5669
|
};
|
|
5648
|
-
return
|
|
5649
|
-
|
|
5650
|
-
|
|
5651
|
-
|
|
5652
|
-
|
|
5653
|
-
|
|
5654
|
-
|
|
5655
|
-
|
|
5656
|
-
|
|
5657
|
-
|
|
5658
|
-
|
|
5659
|
-
|
|
5660
|
-
|
|
5661
|
-
|
|
5662
|
-
|
|
5663
|
-
|
|
5664
|
-
|
|
5665
|
-
|
|
5666
|
-
|
|
5667
|
-
|
|
5668
|
-
|
|
5670
|
+
return (
|
|
5671
|
+
// Wraps rather than scrolls: every filter stays in view on a phone.
|
|
5672
|
+
/* @__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) => {
|
|
5673
|
+
const on = isOn(o.value);
|
|
5674
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5675
|
+
"button",
|
|
5676
|
+
{
|
|
5677
|
+
type: "button",
|
|
5678
|
+
"aria-pressed": on,
|
|
5679
|
+
onClick: () => press(o.value),
|
|
5680
|
+
className: cn(
|
|
5681
|
+
"inline-flex shrink-0 items-center gap-1.5 rounded-full border px-3.5 text-[0.875rem] transition-colors",
|
|
5682
|
+
tight ? "h-8" : "h-9",
|
|
5683
|
+
on ? "border-foreground bg-foreground text-background" : "border-border bg-card text-muted-foreground hover:border-oca-hairline-strong hover:text-foreground"
|
|
5684
|
+
),
|
|
5685
|
+
children: [
|
|
5686
|
+
o.label,
|
|
5687
|
+
o.count !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "oca-tabular", children: o.count.toLocaleString("en-US") }) : null
|
|
5688
|
+
]
|
|
5689
|
+
},
|
|
5690
|
+
o.value
|
|
5691
|
+
);
|
|
5692
|
+
}) })
|
|
5693
|
+
);
|
|
5669
5694
|
}
|
|
5670
5695
|
function ToolGrid({
|
|
5671
5696
|
tools,
|
|
@@ -6420,12 +6445,14 @@ function SignInFrame({
|
|
|
6420
6445
|
error,
|
|
6421
6446
|
fineprint,
|
|
6422
6447
|
brand,
|
|
6423
|
-
home
|
|
6448
|
+
home,
|
|
6449
|
+
protocol: protocol2,
|
|
6424
6450
|
back,
|
|
6425
6451
|
art,
|
|
6426
6452
|
caption,
|
|
6427
6453
|
className
|
|
6428
6454
|
}) {
|
|
6455
|
+
const homeHref = home ?? (protocol2 ? protocolSite(protocol2).pageHref : OCHK_IO);
|
|
6429
6456
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6430
6457
|
"main",
|
|
6431
6458
|
{
|
|
@@ -6434,14 +6461,14 @@ function SignInFrame({
|
|
|
6434
6461
|
children: [
|
|
6435
6462
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "flex flex-col px-4 pb-8 pt-5 sm:px-8 lg:px-14 lg:pt-8", children: [
|
|
6436
6463
|
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: "flex items-center justify-between gap-4", children: [
|
|
6437
|
-
/* @__PURE__ */ jsxRuntime.jsxs(Link6__default.default, { href:
|
|
6464
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Link6__default.default, { href: homeHref, className: "w-fit rounded-lg", children: [
|
|
6438
6465
|
brand ?? /* @__PURE__ */ jsxRuntime.jsx(Lockup, { size: 28 }),
|
|
6439
6466
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: " home" })
|
|
6440
6467
|
] }),
|
|
6441
6468
|
back === void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
6442
6469
|
Link6__default.default,
|
|
6443
6470
|
{
|
|
6444
|
-
href:
|
|
6471
|
+
href: homeHref,
|
|
6445
6472
|
className: "text-[0.9375rem] text-muted-foreground underline-offset-4 hover:text-foreground hover:underline",
|
|
6446
6473
|
children: "Back to home"
|
|
6447
6474
|
}
|
|
@@ -6690,6 +6717,7 @@ function ToolShell({
|
|
|
6690
6717
|
children
|
|
6691
6718
|
}) {
|
|
6692
6719
|
const p = protocolSite(protocol2);
|
|
6720
|
+
const homeHref = home ?? p.pageHref;
|
|
6693
6721
|
const app = variant === "app";
|
|
6694
6722
|
const tabs = app ? null : tabsFor([{ items: [...tools] }]);
|
|
6695
6723
|
const about = /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -6719,7 +6747,7 @@ function ToolShell({
|
|
|
6719
6747
|
SiteHeader,
|
|
6720
6748
|
{
|
|
6721
6749
|
variant: "tool",
|
|
6722
|
-
home:
|
|
6750
|
+
home: homeHref,
|
|
6723
6751
|
product: p.label,
|
|
6724
6752
|
family: protocol2,
|
|
6725
6753
|
nav: tools.map((t) => ({ href: t.href, label: t.label, active: t.active })),
|
|
@@ -6744,7 +6772,7 @@ function ToolShell({
|
|
|
6744
6772
|
{
|
|
6745
6773
|
id: "main-content",
|
|
6746
6774
|
className: cn("min-w-0 flex-1", app ? "flex min-h-0 flex-col" : "px-4 pb-16 pt-8 md:px-8 md:pt-10"),
|
|
6747
|
-
children: app ? children : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto w-full max-w-[72rem]", children })
|
|
6775
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(SiteHomeContext.Provider, { value: homeHref, children: app ? children : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto w-full max-w-[72rem]", children }) })
|
|
6748
6776
|
}
|
|
6749
6777
|
)
|
|
6750
6778
|
] }),
|