@orangecheck/app-design 1.6.2 → 1.8.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.
- package/README.md +3 -3
- package/dist/chrome.d.mts +11 -6
- package/dist/chrome.d.ts +11 -6
- package/dist/chrome.js +158 -129
- package/dist/chrome.js.map +1 -1
- package/dist/chrome.mjs +156 -130
- package/dist/chrome.mjs.map +1 -1
- package/dist/components.d.mts +75 -8
- package/dist/components.d.ts +75 -8
- package/dist/components.js +255 -12
- package/dist/components.js.map +1 -1
- package/dist/components.mjs +251 -14
- package/dist/components.mjs.map +1 -1
- package/dist/{docs-CFE5mU_6.d.mts → docs-B9G1BNXI.d.mts} +2 -2
- package/dist/{docs-ByUx4t-D.d.ts → docs-BWWnm5Jv.d.ts} +2 -2
- package/dist/family.d.mts +1 -1
- package/dist/family.d.ts +1 -1
- package/dist/family.js +7 -1
- package/dist/family.js.map +1 -1
- package/dist/family.mjs +5 -2
- package/dist/family.mjs.map +1 -1
- package/dist/{index-DmfyPYe5.d.mts → index-Bkl49Vgy.d.mts} +4 -1
- package/dist/{index-DmfyPYe5.d.ts → index-Bkl49Vgy.d.ts} +4 -1
- package/dist/index.d.mts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +338 -66
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +327 -67
- package/dist/index.mjs.map +1 -1
- package/dist/mdx.d.mts +3 -3
- package/dist/mdx.d.ts +3 -3
- package/dist/mdx.js +15 -3
- package/dist/mdx.js.map +1 -1
- package/dist/mdx.mjs +15 -3
- package/dist/mdx.mjs.map +1 -1
- package/dist/primitives.d.mts +2 -2
- package/dist/primitives.d.ts +2 -2
- package/dist/primitives.js +2 -1
- package/dist/primitives.js.map +1 -1
- package/dist/primitives.mjs +2 -1
- package/dist/primitives.mjs.map +1 -1
- package/dist/session.d.mts +4 -4
- package/dist/session.d.ts +4 -4
- package/dist/session.js +124 -2
- package/dist/session.js.map +1 -1
- package/dist/session.mjs +124 -2
- package/dist/session.mjs.map +1 -1
- package/dist/{status-badge-BJ9Sdsx8.d.mts → status-badge-BBbCO6ZA.d.mts} +1 -1
- package/dist/{status-badge-Bt8x3RhO.d.ts → status-badge-CHHxtFkP.d.ts} +1 -1
- package/dist/styles/swagger.css +24 -1
- package/dist/styles/tokens.css +11 -0
- package/dist/{tool-shell-CQZNRUgH.d.mts → tool-shell-Cg51cRHJ.d.ts} +14 -4
- package/dist/{tool-shell-CRmceGrV.d.ts → tool-shell-Dxw5o2rH.d.mts} +14 -4
- package/dist/{tools-Bg1gi2HO.d.mts → tools-CKO8IseL.d.mts} +2 -2
- package/dist/{tools-Bw7RhO92.d.ts → tools-CzjFPng4.d.ts} +2 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -35,13 +35,13 @@ family `OcThemeProvider` on the same page: it writes `data-oc-theme` and the sha
|
|
|
35
35
|
|---|---|
|
|
36
36
|
| `/brand` | `Mark`, `AppIcon`, `Lockup`, `IsoCheck`, `HalftoneSphere` |
|
|
37
37
|
| `/primitives` | `Button`, `Badge`, `Card`, form controls (`Input size="sm"` for tools), `Dialog`, `Sheet`, `Popover`, `Tooltip`, `DropdownMenu`, `Tabs`, `Toaster`, `DensityProvider` |
|
|
38
|
-
| `/components` | `Display`, `Eyebrow`, `Section`, `StepGrid`, `PackageCard`, `TruthTable`, `Sats`, `DataTable`, `Notice`, `ProgressSteps`, `ErrorPage`, the public page blocks (`SectionHeading`, `FactBlock`, `ProofStrip`, `Closing`, `LegalDocument` …), the protocol page blocks (`ProtocolGrid`, `AppGrid`, `ProtocolHero`, `SpecCard`, `VerifyBox`, `ComparisonTable`, `VerifyReport`, `SignMessage`), code (`CodeBlock`, `CodeTabs`, `InstallTabs`), the docs blocks (`Breadcrumbs`, `DocsPager`, `OnThisPage`, `Callout`, `Steps`, `LinkCard`, `ApiTable`, `Diagram`, `SearchDialog`) and the tool parts (`ArtifactView`, `DropZone`, `FormSection`, `StateBadge`, `AnchorStatus`, `BlockHeight`, `BlockCountdown`, `Meter`, `FilterChips`, `ToolGrid`) |
|
|
39
|
-
| `/chrome` | `SiteHeader`, `SiteFooter`, `FamilyMenu`, `SkipLink`, `SiteBanner`, `SignInFrame`, `AppShell`, `AccountMenu`, `ThemeToggle`, `DocsShell`, `DocsNav`, `ToolShell`, `SessionAccountView` |
|
|
38
|
+
| `/components` | `Display`, `Eyebrow`, `Section`, `StepGrid`, `PackageCard`, `TruthTable`, `Sats`, `DataTable`, `Notice`, `ProgressSteps`, `ErrorPage`, the public page blocks (`SectionHeading`, `FactBlock`, `ProofStrip`, `Closing`, `LegalDocument` …), the protocol page blocks (`ProtocolGrid`, `AppGrid`, `ProtocolHero`, `SpecCard`, `VerifyBox`, `ComparisonTable`, `VerifyReport`, `SignMessage`), code (`CodeBlock`, `CodeTabs`, `InstallTabs`), the docs blocks (`Breadcrumbs`, `DocsPager`, `OnThisPage`, `Callout`, `Steps`, `LinkCard`, `ApiTable`, `Diagram`, `SearchDialog`) and the tool parts (`ArtifactView`, `DropZone`, `FormSection`, `StateBadge`, `AnchorStatus`, `BlockHeight`, `BlockCountdown`, `Meter`, `FilterChips`, `ToolGrid`), and the parts signed-in pages repeat (`SectionTitle`, `ListCard`, `ListRow`, `ChoiceGroup`, `ChoiceCard`, `Avatar`) |
|
|
39
|
+
| `/chrome` | `SiteHeader`, `SiteFooter`, `FamilyMenu`, `SkipLink`, `SiteBanner`, `SignInFrame`, `AppShell`, `PaneHeader`, `AccountMenu`, `ThemeToggle`, `DocsShell`, `DocsNav`, `ToolShell`, `ToolColumn`, `SessionAccountView`, `AccountCta` |
|
|
40
40
|
| `/mdx` | `mdxComponents` and `createMdxComponents({ mermaid })`: markdown in the system's type |
|
|
41
41
|
| `/code` | `rehypeCode` (highlights fences at build time), `highlight`, `highlightToHtml`; no React |
|
|
42
42
|
| `/format` | `explorerUrl`, `shortenMiddle`, `formatBlockHeight`, `blocksToDuration`, `formatUtc`, `formatBytes`; no React |
|
|
43
43
|
| `/session` | `SessionAccount`, read from `@orangecheck/auth-client` (an optional peer: install it to use this entry) |
|
|
44
|
-
| `/family` | every public site as data (`FAMILY`, `PROTOCOLS`, `OCHK_IO_NAV`, `LEGAL_LINKS`); no React |
|
|
44
|
+
| `/family` | every public site as data (`FAMILY`, `PROTOCOLS`, `OCHK_IO_NAV`, `LEGAL_LINKS`) and the account phrase (`GET_AN_ACCOUNT`, `SIGN_IN_LABEL`); no React |
|
|
45
45
|
| `/tokens` | the palette as data, for OG images and charts |
|
|
46
46
|
|
|
47
47
|
Docs written in MDX get highlighted code from the build and the system's type:
|
package/dist/chrome.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import { e as FooterColumn, N as NavItem, d as FamilySlug,
|
|
3
|
+
import { e as FooterColumn, N as NavItem, d as FamilySlug, k as ProtocolSlug } from './index-Bkl49Vgy.mjs';
|
|
4
4
|
import { T as TocItem } from './hero-Dn37il-9.mjs';
|
|
5
|
-
import { a as Status } from './status-badge-
|
|
6
|
-
export { A as AccountMenu, a as AccountMenuItem, b as AppShell, c as AppShellProps, O as OCHK_APP_ACCOUNT, S as SessionAccountView, d as SessionState, e as ShellNavGroup, f as ShellNavItem, g as ShellSection, T as ThemeToggle, h as
|
|
7
|
-
import './tools-
|
|
5
|
+
import { a as Status } from './status-badge-BBbCO6ZA.mjs';
|
|
6
|
+
export { A as AccountMenu, a as AccountMenuItem, b as AppShell, c as AppShellProps, O as OCHK_APP_ACCOUNT, P as PaneHeader, S as SessionAccountView, d as SessionState, e as ShellNavGroup, f as ShellNavItem, g as ShellSection, T as ThemeToggle, h as ToolColumn, i as ToolShell, j as ToolShellProps, u as useSignInHref } from './tool-shell-Dxw5o2rH.mjs';
|
|
7
|
+
import './tools-CKO8IseL.mjs';
|
|
8
8
|
import './format.mjs';
|
|
9
9
|
|
|
10
10
|
interface SiteHeaderProps {
|
|
@@ -20,6 +20,10 @@ interface SiteHeaderProps {
|
|
|
20
20
|
menu?: ReactNode;
|
|
21
21
|
className?: string;
|
|
22
22
|
}
|
|
23
|
+
declare function AccountCta({ href, className }: {
|
|
24
|
+
href?: string;
|
|
25
|
+
className?: string;
|
|
26
|
+
}): react.JSX.Element;
|
|
23
27
|
declare function SiteHeader({ home, brand, product, family, nav, search, actions, variant, navOnPhone, menu: menuExtra, className, }: SiteHeaderProps): react.JSX.Element;
|
|
24
28
|
declare function SkipLink({ href, children }: {
|
|
25
29
|
href?: string;
|
|
@@ -57,13 +61,14 @@ declare function FamilyMenu({ current, className }: {
|
|
|
57
61
|
className?: string;
|
|
58
62
|
}): react.JSX.Element;
|
|
59
63
|
|
|
60
|
-
declare function SignInFrame({ title, lead, children, error, fineprint, brand, home, protocol, back, art, caption, className, }: {
|
|
64
|
+
declare function SignInFrame({ title, lead, children, error, fineprint, brand, product, home, protocol, back, art, caption, className, }: {
|
|
61
65
|
title?: ReactNode;
|
|
62
66
|
lead?: ReactNode;
|
|
63
67
|
children: ReactNode;
|
|
64
68
|
error?: ReactNode;
|
|
65
69
|
fineprint?: ReactNode;
|
|
66
70
|
brand?: ReactNode;
|
|
71
|
+
product?: string;
|
|
67
72
|
home?: string;
|
|
68
73
|
protocol?: ProtocolSlug;
|
|
69
74
|
back?: ReactNode;
|
|
@@ -110,4 +115,4 @@ interface ShellPlace {
|
|
|
110
115
|
declare const ShellContext: react.Context<ShellPlace>;
|
|
111
116
|
declare function useShellPlace(): ShellPlace;
|
|
112
117
|
|
|
113
|
-
export { DOCS_HEADER_NAV, DocsNav, type DocsNavItem, type DocsNavSection, DocsShell, type DocsShellProps, FamilyMenu, FooterColumn, NavItem, OchkIoFooter, ShellContext, type ShellPlace, SignInFrame, SiteBanner, SiteFooter, type SiteFooterProps, SiteHeader, type SiteHeaderProps, SkipLink, useShellPlace };
|
|
118
|
+
export { AccountCta, DOCS_HEADER_NAV, DocsNav, type DocsNavItem, type DocsNavSection, DocsShell, type DocsShellProps, FamilyMenu, FooterColumn, NavItem, OchkIoFooter, ShellContext, type ShellPlace, SignInFrame, SiteBanner, SiteFooter, type SiteFooterProps, SiteHeader, type SiteHeaderProps, SkipLink, useShellPlace };
|
package/dist/chrome.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import { e as FooterColumn, N as NavItem, d as FamilySlug,
|
|
3
|
+
import { e as FooterColumn, N as NavItem, d as FamilySlug, k as ProtocolSlug } from './index-Bkl49Vgy.js';
|
|
4
4
|
import { T as TocItem } from './hero-Dn37il-9.js';
|
|
5
|
-
import { a as Status } from './status-badge-
|
|
6
|
-
export { A as AccountMenu, a as AccountMenuItem, b as AppShell, c as AppShellProps, O as OCHK_APP_ACCOUNT, S as SessionAccountView, d as SessionState, e as ShellNavGroup, f as ShellNavItem, g as ShellSection, T as ThemeToggle, h as
|
|
7
|
-
import './tools-
|
|
5
|
+
import { a as Status } from './status-badge-CHHxtFkP.js';
|
|
6
|
+
export { A as AccountMenu, a as AccountMenuItem, b as AppShell, c as AppShellProps, O as OCHK_APP_ACCOUNT, P as PaneHeader, S as SessionAccountView, d as SessionState, e as ShellNavGroup, f as ShellNavItem, g as ShellSection, T as ThemeToggle, h as ToolColumn, i as ToolShell, j as ToolShellProps, u as useSignInHref } from './tool-shell-Cg51cRHJ.js';
|
|
7
|
+
import './tools-CzjFPng4.js';
|
|
8
8
|
import './format.js';
|
|
9
9
|
|
|
10
10
|
interface SiteHeaderProps {
|
|
@@ -20,6 +20,10 @@ interface SiteHeaderProps {
|
|
|
20
20
|
menu?: ReactNode;
|
|
21
21
|
className?: string;
|
|
22
22
|
}
|
|
23
|
+
declare function AccountCta({ href, className }: {
|
|
24
|
+
href?: string;
|
|
25
|
+
className?: string;
|
|
26
|
+
}): react.JSX.Element;
|
|
23
27
|
declare function SiteHeader({ home, brand, product, family, nav, search, actions, variant, navOnPhone, menu: menuExtra, className, }: SiteHeaderProps): react.JSX.Element;
|
|
24
28
|
declare function SkipLink({ href, children }: {
|
|
25
29
|
href?: string;
|
|
@@ -57,13 +61,14 @@ declare function FamilyMenu({ current, className }: {
|
|
|
57
61
|
className?: string;
|
|
58
62
|
}): react.JSX.Element;
|
|
59
63
|
|
|
60
|
-
declare function SignInFrame({ title, lead, children, error, fineprint, brand, home, protocol, back, art, caption, className, }: {
|
|
64
|
+
declare function SignInFrame({ title, lead, children, error, fineprint, brand, product, home, protocol, back, art, caption, className, }: {
|
|
61
65
|
title?: ReactNode;
|
|
62
66
|
lead?: ReactNode;
|
|
63
67
|
children: ReactNode;
|
|
64
68
|
error?: ReactNode;
|
|
65
69
|
fineprint?: ReactNode;
|
|
66
70
|
brand?: ReactNode;
|
|
71
|
+
product?: string;
|
|
67
72
|
home?: string;
|
|
68
73
|
protocol?: ProtocolSlug;
|
|
69
74
|
back?: ReactNode;
|
|
@@ -110,4 +115,4 @@ interface ShellPlace {
|
|
|
110
115
|
declare const ShellContext: react.Context<ShellPlace>;
|
|
111
116
|
declare function useShellPlace(): ShellPlace;
|
|
112
117
|
|
|
113
|
-
export { DOCS_HEADER_NAV, DocsNav, type DocsNavItem, type DocsNavSection, DocsShell, type DocsShellProps, FamilyMenu, FooterColumn, NavItem, OchkIoFooter, ShellContext, type ShellPlace, SignInFrame, SiteBanner, SiteFooter, type SiteFooterProps, SiteHeader, type SiteHeaderProps, SkipLink, useShellPlace };
|
|
118
|
+
export { AccountCta, DOCS_HEADER_NAV, DocsNav, type DocsNavItem, type DocsNavSection, DocsShell, type DocsShellProps, FamilyMenu, FooterColumn, NavItem, OchkIoFooter, ShellContext, type ShellPlace, SignInFrame, SiteBanner, SiteFooter, type SiteFooterProps, SiteHeader, type SiteHeaderProps, SkipLink, useShellPlace };
|
package/dist/chrome.js
CHANGED
|
@@ -6,15 +6,15 @@ var react = require('react');
|
|
|
6
6
|
var clsx = require('clsx');
|
|
7
7
|
var tailwindMerge = require('tailwind-merge');
|
|
8
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
10
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
11
|
+
var SeparatorPrimitive = require('@radix-ui/react-separator');
|
|
12
|
+
var nextThemes = require('next-themes');
|
|
13
|
+
require('sonner');
|
|
9
14
|
var DialogPrimitive = require('@radix-ui/react-dialog');
|
|
10
15
|
var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
|
|
11
16
|
var PopoverPrimitive = require('@radix-ui/react-popover');
|
|
12
17
|
var TooltipPrimitive = require('@radix-ui/react-tooltip');
|
|
13
|
-
var nextThemes = require('next-themes');
|
|
14
|
-
var classVarianceAuthority = require('class-variance-authority');
|
|
15
|
-
var SeparatorPrimitive = require('@radix-ui/react-separator');
|
|
16
|
-
require('sonner');
|
|
17
|
-
var reactSlot = require('@radix-ui/react-slot');
|
|
18
18
|
var router = require('next/compat/router');
|
|
19
19
|
|
|
20
20
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -38,11 +38,11 @@ function _interopNamespace(e) {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
var Link__default = /*#__PURE__*/_interopDefault(Link);
|
|
41
|
+
var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
|
|
41
42
|
var DialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(DialogPrimitive);
|
|
42
43
|
var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive);
|
|
43
44
|
var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
|
|
44
45
|
var TooltipPrimitive__namespace = /*#__PURE__*/_interopNamespace(TooltipPrimitive);
|
|
45
|
-
var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
|
|
46
46
|
|
|
47
47
|
var merge = tailwindMerge.extendTailwindMerge({
|
|
48
48
|
extend: {
|
|
@@ -137,6 +137,9 @@ function Lockup({ name = "orangecheck", size = 28, className }) {
|
|
|
137
137
|
// src/family/index.ts
|
|
138
138
|
var OCHK_IO = "https://ochk.io";
|
|
139
139
|
var DOCS_HREF = `${OCHK_IO}/docs`;
|
|
140
|
+
var OCHK_APP = "https://ochk.app";
|
|
141
|
+
var GET_AN_ACCOUNT = { href: OCHK_APP, label: "Get an account" };
|
|
142
|
+
var SIGN_IN_LABEL = "Sign in";
|
|
140
143
|
function protocol(slug, verb, line, kinds) {
|
|
141
144
|
return {
|
|
142
145
|
slug,
|
|
@@ -173,7 +176,7 @@ var FAMILY = [
|
|
|
173
176
|
{
|
|
174
177
|
slug: "me",
|
|
175
178
|
label: "ochk.app",
|
|
176
|
-
href:
|
|
179
|
+
href: OCHK_APP,
|
|
177
180
|
group: "orangecheck",
|
|
178
181
|
line: "One account, with Bitcoin behind it.",
|
|
179
182
|
status: "testing"
|
|
@@ -282,6 +285,93 @@ var OCHK_IO_FOOTER = [
|
|
|
282
285
|
]
|
|
283
286
|
}
|
|
284
287
|
];
|
|
288
|
+
function Spinner({ className, label }) {
|
|
289
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
290
|
+
"svg",
|
|
291
|
+
{
|
|
292
|
+
viewBox: "0 0 24 24",
|
|
293
|
+
fill: "none",
|
|
294
|
+
role: label ? "status" : void 0,
|
|
295
|
+
"aria-label": label,
|
|
296
|
+
"aria-hidden": label ? void 0 : true,
|
|
297
|
+
className: cn("size-4 animate-spin", className),
|
|
298
|
+
children: [
|
|
299
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeOpacity: "0.2", strokeWidth: "2.5" }),
|
|
300
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21 12a9 9 0 0 0-9-9", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round" })
|
|
301
|
+
]
|
|
302
|
+
}
|
|
303
|
+
);
|
|
304
|
+
}
|
|
305
|
+
react.forwardRef(function Separator2({ className, orientation = "horizontal", decorative = true, ...props }, ref) {
|
|
306
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
307
|
+
SeparatorPrimitive__namespace.Root,
|
|
308
|
+
{
|
|
309
|
+
ref,
|
|
310
|
+
decorative,
|
|
311
|
+
orientation,
|
|
312
|
+
className: cn(
|
|
313
|
+
"shrink-0 bg-border",
|
|
314
|
+
orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
|
|
315
|
+
className
|
|
316
|
+
),
|
|
317
|
+
...props
|
|
318
|
+
}
|
|
319
|
+
);
|
|
320
|
+
});
|
|
321
|
+
var buttonVariants = classVarianceAuthority.cva(
|
|
322
|
+
[
|
|
323
|
+
"inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-full font-medium",
|
|
324
|
+
"transition-[background-color,border-color,color,box-shadow,transform] duration-150",
|
|
325
|
+
"outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
326
|
+
"active:translate-y-px disabled:pointer-events-none",
|
|
327
|
+
// Disabled is one look for every variant: a quiet grey pill, never a
|
|
328
|
+
// faded black or orange slab that reads as broken.
|
|
329
|
+
"disabled:border disabled:border-border disabled:bg-muted disabled:text-oca-subtle disabled:shadow-none",
|
|
330
|
+
"[&_svg]:pointer-events-none [&_svg]:size-[1.1em] [&_svg]:shrink-0"
|
|
331
|
+
],
|
|
332
|
+
{
|
|
333
|
+
variants: {
|
|
334
|
+
variant: {
|
|
335
|
+
primary: "bg-primary text-primary-foreground hover:bg-primary/85",
|
|
336
|
+
secondary: "border border-border bg-secondary text-secondary-foreground hover:border-oca-hairline-strong hover:bg-accent",
|
|
337
|
+
brand: "bg-brand text-brand-foreground hover:bg-oca-orange-deep",
|
|
338
|
+
ghost: "text-foreground hover:bg-accent",
|
|
339
|
+
danger: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
340
|
+
link: "h-auto rounded-none px-0 text-foreground underline decoration-foreground/35 underline-offset-4 hover:decoration-foreground",
|
|
341
|
+
onInk: "bg-white text-oca-ink hover:bg-white/90",
|
|
342
|
+
onInkOutline: "border border-white/20 text-white hover:bg-white/10"
|
|
343
|
+
},
|
|
344
|
+
size: {
|
|
345
|
+
sm: "h-9 px-4 text-sm",
|
|
346
|
+
md: "h-11 px-5 text-[0.9375rem]",
|
|
347
|
+
lg: "h-14 px-7 text-[1.0625rem]",
|
|
348
|
+
icon: "size-10",
|
|
349
|
+
"icon-sm": "size-8"
|
|
350
|
+
}
|
|
351
|
+
},
|
|
352
|
+
compoundVariants: [{ variant: "link", className: "h-auto px-0" }],
|
|
353
|
+
defaultVariants: { variant: "primary", size: "md" }
|
|
354
|
+
}
|
|
355
|
+
);
|
|
356
|
+
var Button = react.forwardRef(function Button2({ className, variant, size, asChild = false, loading = false, disabled, children, type, ...props }, ref) {
|
|
357
|
+
const Comp = asChild ? reactSlot.Slot : "button";
|
|
358
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
359
|
+
Comp,
|
|
360
|
+
{
|
|
361
|
+
ref,
|
|
362
|
+
"data-ui": "button",
|
|
363
|
+
className: cn(buttonVariants({ variant, size }), className),
|
|
364
|
+
disabled: asChild ? void 0 : disabled || loading,
|
|
365
|
+
"aria-busy": loading || void 0,
|
|
366
|
+
type: asChild ? void 0 : type ?? "button",
|
|
367
|
+
...props,
|
|
368
|
+
children: asChild ? children : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
369
|
+
loading ? /* @__PURE__ */ jsxRuntime.jsx(Spinner, { className: "size-[1.1em]" }) : null,
|
|
370
|
+
children
|
|
371
|
+
] })
|
|
372
|
+
}
|
|
373
|
+
);
|
|
374
|
+
});
|
|
285
375
|
var overlayClass = "oca-animate-fade fixed inset-0 z-50 bg-[rgb(10_10_10/0.38)] backdrop-blur-[2px] data-[state=closed]:opacity-0";
|
|
286
376
|
react.forwardRef(function DialogContent2({ className, children, hideClose, ...props }, ref) {
|
|
287
377
|
return /* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.Portal, { children: [
|
|
@@ -417,7 +507,8 @@ var DropdownMenuItem = react.forwardRef(function DropdownMenuItem2({ className,
|
|
|
417
507
|
{
|
|
418
508
|
ref,
|
|
419
509
|
className: cn(
|
|
420
|
-
|
|
510
|
+
// A thumb's 44px on a phone.
|
|
511
|
+
"flex h-10 cursor-default select-none items-center gap-2.5 rounded-xl px-3 text-[0.9375rem] outline-none max-md:h-11",
|
|
421
512
|
"data-[highlighted]:bg-accent data-[disabled]:opacity-50 [&_svg]:size-4 [&_svg]:text-muted-foreground",
|
|
422
513
|
destructive && "text-destructive [&_svg]:text-destructive",
|
|
423
514
|
className
|
|
@@ -445,7 +536,8 @@ function sharedContext(name, initial) {
|
|
|
445
536
|
return store[key] ?? (store[key] = react.createContext(initial));
|
|
446
537
|
}
|
|
447
538
|
|
|
448
|
-
// src/lib/
|
|
539
|
+
// src/lib/column.ts
|
|
540
|
+
var InColumnContext = sharedContext("in-column", false);
|
|
449
541
|
var ShellContext = sharedContext("shell-place", {});
|
|
450
542
|
function useShellPlace() {
|
|
451
543
|
return react.useContext(ShellContext);
|
|
@@ -857,7 +949,7 @@ function SidebarShell({
|
|
|
857
949
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
858
950
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden h-[4.5rem] items-center justify-end gap-3 px-8 lg:flex", children: account }),
|
|
859
951
|
banner ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pb-2 pt-4 md:px-8 lg:pt-0", children: banner }) : null,
|
|
860
|
-
/* @__PURE__ */ jsxRuntime.jsx("main", { id: "main-content", className: "flex-1 px-4 pb-16 pt-6 md:px-8 lg:pt-2", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto w-full max-w-[72rem]", children }) })
|
|
952
|
+
/* @__PURE__ */ jsxRuntime.jsx("main", { id: "main-content", className: "flex-1 px-4 pb-16 pt-6 md:px-8 lg:pt-2", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto w-full max-w-[72rem]", children: /* @__PURE__ */ jsxRuntime.jsx(InColumnContext.Provider, { value: true, children }) }) })
|
|
861
953
|
] })
|
|
862
954
|
] }),
|
|
863
955
|
tabs ? /* @__PURE__ */ jsxRuntime.jsx(TabBar, { items: tabs }) : null
|
|
@@ -923,6 +1015,9 @@ function RailShell({ nav = [], persistent = [], page: pageOverride, header, acco
|
|
|
923
1015
|
tabs ? /* @__PURE__ */ jsxRuntime.jsx(TabBar, { items: tabs }) : null
|
|
924
1016
|
] }) }) });
|
|
925
1017
|
}
|
|
1018
|
+
function PaneHeader({ children, className }) {
|
|
1019
|
+
return /* @__PURE__ */ jsxRuntime.jsx("header", { className: cn("flex h-14 shrink-0 items-center gap-3 border-b border-border px-4 md:px-5", className), children });
|
|
1020
|
+
}
|
|
926
1021
|
function AccountMenu({
|
|
927
1022
|
name,
|
|
928
1023
|
detail,
|
|
@@ -1052,6 +1147,18 @@ function NavDropdown({ item }) {
|
|
|
1052
1147
|
] })
|
|
1053
1148
|
] });
|
|
1054
1149
|
}
|
|
1150
|
+
function AccountCta({ href = GET_AN_ACCOUNT.href, className }) {
|
|
1151
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Button, { asChild: true, size: "sm", className, children: /* @__PURE__ */ jsxRuntime.jsx("a", { href, children: GET_AN_ACCOUNT.label }) });
|
|
1152
|
+
}
|
|
1153
|
+
function ProductLockup({ size, product }) {
|
|
1154
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center", children: [
|
|
1155
|
+
/* @__PURE__ */ jsxRuntime.jsx(Lockup, { size }),
|
|
1156
|
+
product ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1157
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: "mx-3 h-5 w-px bg-oca-hairline-strong" }),
|
|
1158
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium tracking-[-0.01em]", style: { fontSize: size * 0.56 }, children: product })
|
|
1159
|
+
] }) : null
|
|
1160
|
+
] });
|
|
1161
|
+
}
|
|
1055
1162
|
function SiteHeader({
|
|
1056
1163
|
home = "/",
|
|
1057
1164
|
brand,
|
|
@@ -1071,13 +1178,7 @@ function SiteHeader({
|
|
|
1071
1178
|
const current = typeof family === "string" ? family : void 0;
|
|
1072
1179
|
const phoneNav = navOnPhone ? nav : [];
|
|
1073
1180
|
const menu = phoneNav.length > 0 || Boolean(family) || Boolean(menuExtra);
|
|
1074
|
-
const brandNode = brand ?? /* @__PURE__ */ jsxRuntime.
|
|
1075
|
-
/* @__PURE__ */ jsxRuntime.jsx(Lockup, { size }),
|
|
1076
|
-
product ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1077
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: "mx-3 h-5 w-px bg-oca-hairline-strong" }),
|
|
1078
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium tracking-[-0.01em]", style: { fontSize: size * 0.56 }, children: product })
|
|
1079
|
-
] }) : null
|
|
1080
|
-
] });
|
|
1181
|
+
const brandNode = brand ?? /* @__PURE__ */ jsxRuntime.jsx(ProductLockup, { size, product });
|
|
1081
1182
|
const navigation = nav.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": "Main", className: "hidden items-center gap-1 md:flex", children: nav.map(
|
|
1082
1183
|
(n) => n.children?.length ? /* @__PURE__ */ jsxRuntime.jsx(NavDropdown, { item: n }, n.href) : (
|
|
1083
1184
|
// Between md and lg the family menu and the actions share the row: tighter.
|
|
@@ -1207,7 +1308,7 @@ function SiteBanner({
|
|
|
1207
1308
|
var FOOT_LINK = "inline-flex min-h-11 items-center transition-colors hover:text-foreground md:min-h-0";
|
|
1208
1309
|
function LegalRow({ links }) {
|
|
1209
1310
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-x-6 gap-y-2 sm:flex-row sm:items-center sm:justify-between", children: [
|
|
1210
|
-
/* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": "Legal", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-wrap gap-x-5", children: links.map((l) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: l.href.startsWith("/") ? /* @__PURE__ */ jsxRuntime.jsx(Link__default.default, { href: l.href, className: FOOT_LINK, children: l.label }) : /* @__PURE__ */ jsxRuntime.jsx("a", { href: l.href, className: FOOT_LINK, children: l.label }) }, l.
|
|
1311
|
+
/* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": "Legal", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-wrap gap-x-5", children: links.map((l, i) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: l.href.startsWith("/") ? /* @__PURE__ */ jsxRuntime.jsx(Link__default.default, { href: l.href, className: FOOT_LINK, children: l.label }) : /* @__PURE__ */ jsxRuntime.jsx("a", { href: l.href, className: FOOT_LINK, children: l.label }) }, `${i}:${l.label}`)) }) }),
|
|
1211
1312
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
1212
1313
|
"\xA9 ",
|
|
1213
1314
|
(/* @__PURE__ */ new Date()).getFullYear(),
|
|
@@ -1227,16 +1328,26 @@ function SiteFooter({
|
|
|
1227
1328
|
}) {
|
|
1228
1329
|
const legalLinks = legal === true ? LEGAL_LINKS : legal || null;
|
|
1229
1330
|
if (compact) {
|
|
1230
|
-
return
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1331
|
+
return (
|
|
1332
|
+
// The tools' column (ToolColumn): the lockup lines up with the page's title.
|
|
1333
|
+
/* @__PURE__ */ jsxRuntime.jsx("footer", { className: cn("border-t border-border bg-background px-4 text-[0.875rem] text-muted-foreground md:px-8", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto flex w-full max-w-[72rem] flex-col gap-x-8 gap-y-3 py-5 lg:flex-row lg:items-center lg:justify-between", children: [
|
|
1334
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-x-6 gap-y-3", children: [
|
|
1335
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1336
|
+
"a",
|
|
1337
|
+
{
|
|
1338
|
+
href: OCHK_IO,
|
|
1339
|
+
className: "relative rounded-lg text-foreground before:absolute before:inset-x-0 before:top-1/2 before:h-11 before:-translate-y-1/2",
|
|
1340
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Lockup, { size: 22 })
|
|
1341
|
+
}
|
|
1342
|
+
),
|
|
1343
|
+
family ? /* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": "Protocols", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-wrap gap-x-4", children: PROTOCOLS.map((p) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx("a", { href: p.pageHref, className: FOOT_LINK, children: p.label }) }, p.slug)) }) }) : null
|
|
1344
|
+
] }),
|
|
1345
|
+
legalLinks || meta ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-x-6 gap-y-2 sm:flex-row sm:flex-wrap sm:items-center", children: [
|
|
1346
|
+
legalLinks ? /* @__PURE__ */ jsxRuntime.jsx(LegalRow, { links: legalLinks }) : null,
|
|
1347
|
+
meta
|
|
1348
|
+
] }) : null
|
|
1349
|
+
] }) })
|
|
1350
|
+
);
|
|
1240
1351
|
}
|
|
1241
1352
|
const cols = [
|
|
1242
1353
|
...columns,
|
|
@@ -1271,17 +1382,17 @@ function SiteFooter({
|
|
|
1271
1382
|
className: cn("flex min-w-0 flex-col gap-1", spans && "col-span-2 md:col-span-1"),
|
|
1272
1383
|
children: [
|
|
1273
1384
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[0.875rem] font-medium", children: col.heading }),
|
|
1274
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col gap-1", spans && "grid grid-cols-2 gap-x-6 md:flex md:flex-col"), children: col.links.map((l) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1385
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col gap-1", spans && "grid grid-cols-2 gap-x-6 md:flex md:flex-col"), children: col.links.map((l, j) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1275
1386
|
NavLink,
|
|
1276
1387
|
{
|
|
1277
1388
|
item: l,
|
|
1278
1389
|
className: "-mx-3 py-2.5 text-[0.9375rem] md:py-1.5"
|
|
1279
1390
|
},
|
|
1280
|
-
l.
|
|
1391
|
+
`${j}:${l.label}`
|
|
1281
1392
|
)) })
|
|
1282
1393
|
]
|
|
1283
1394
|
},
|
|
1284
|
-
col.heading
|
|
1395
|
+
`${i}:${col.heading}`
|
|
1285
1396
|
);
|
|
1286
1397
|
})
|
|
1287
1398
|
]
|
|
@@ -1381,12 +1492,13 @@ function IsoCheck({ size = 360, settle = false, shadow = true, tilt = false, tit
|
|
|
1381
1492
|
);
|
|
1382
1493
|
}
|
|
1383
1494
|
function SignInFrame({
|
|
1384
|
-
title =
|
|
1495
|
+
title = SIGN_IN_LABEL,
|
|
1385
1496
|
lead,
|
|
1386
1497
|
children,
|
|
1387
1498
|
error,
|
|
1388
1499
|
fineprint,
|
|
1389
1500
|
brand,
|
|
1501
|
+
product,
|
|
1390
1502
|
home,
|
|
1391
1503
|
protocol: protocol2,
|
|
1392
1504
|
back,
|
|
@@ -1404,7 +1516,7 @@ function SignInFrame({
|
|
|
1404
1516
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "flex flex-col px-4 pb-8 pt-5 sm:px-8 lg:px-14 lg:pt-8", children: [
|
|
1405
1517
|
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: "flex items-center justify-between gap-4", children: [
|
|
1406
1518
|
/* @__PURE__ */ jsxRuntime.jsxs(Link__default.default, { href: homeHref, className: "w-fit rounded-lg", children: [
|
|
1407
|
-
brand ?? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1519
|
+
brand ?? /* @__PURE__ */ jsxRuntime.jsx(ProductLockup, { size: 28, product: product ?? (protocol2 ? protocolSite(protocol2).label : void 0) }),
|
|
1408
1520
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: " home" })
|
|
1409
1521
|
] }),
|
|
1410
1522
|
back === void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1441,97 +1553,10 @@ function SignInFrame({
|
|
|
1441
1553
|
}
|
|
1442
1554
|
);
|
|
1443
1555
|
}
|
|
1444
|
-
function Spinner({ className, label }) {
|
|
1445
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1446
|
-
"svg",
|
|
1447
|
-
{
|
|
1448
|
-
viewBox: "0 0 24 24",
|
|
1449
|
-
fill: "none",
|
|
1450
|
-
role: label ? "status" : void 0,
|
|
1451
|
-
"aria-label": label,
|
|
1452
|
-
"aria-hidden": label ? void 0 : true,
|
|
1453
|
-
className: cn("size-4 animate-spin", className),
|
|
1454
|
-
children: [
|
|
1455
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeOpacity: "0.2", strokeWidth: "2.5" }),
|
|
1456
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21 12a9 9 0 0 0-9-9", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round" })
|
|
1457
|
-
]
|
|
1458
|
-
}
|
|
1459
|
-
);
|
|
1460
|
-
}
|
|
1461
|
-
react.forwardRef(function Separator3({ className, orientation = "horizontal", decorative = true, ...props }, ref) {
|
|
1462
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1463
|
-
SeparatorPrimitive__namespace.Root,
|
|
1464
|
-
{
|
|
1465
|
-
ref,
|
|
1466
|
-
decorative,
|
|
1467
|
-
orientation,
|
|
1468
|
-
className: cn(
|
|
1469
|
-
"shrink-0 bg-border",
|
|
1470
|
-
orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
|
|
1471
|
-
className
|
|
1472
|
-
),
|
|
1473
|
-
...props
|
|
1474
|
-
}
|
|
1475
|
-
);
|
|
1476
|
-
});
|
|
1477
1556
|
var DensityContext = sharedContext("density", "comfortable");
|
|
1478
1557
|
function DensityProvider({ density, children }) {
|
|
1479
1558
|
return react.createElement(DensityContext.Provider, { value: density }, children);
|
|
1480
1559
|
}
|
|
1481
|
-
var buttonVariants = classVarianceAuthority.cva(
|
|
1482
|
-
[
|
|
1483
|
-
"inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-full font-medium",
|
|
1484
|
-
"transition-[background-color,border-color,color,box-shadow,transform] duration-150",
|
|
1485
|
-
"outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
1486
|
-
"active:translate-y-px disabled:pointer-events-none",
|
|
1487
|
-
// Disabled is one look for every variant: a quiet grey pill, never a
|
|
1488
|
-
// faded black or orange slab that reads as broken.
|
|
1489
|
-
"disabled:border disabled:border-border disabled:bg-muted disabled:text-oca-subtle disabled:shadow-none",
|
|
1490
|
-
"[&_svg]:pointer-events-none [&_svg]:size-[1.1em] [&_svg]:shrink-0"
|
|
1491
|
-
],
|
|
1492
|
-
{
|
|
1493
|
-
variants: {
|
|
1494
|
-
variant: {
|
|
1495
|
-
primary: "bg-primary text-primary-foreground hover:bg-primary/85",
|
|
1496
|
-
secondary: "border border-border bg-secondary text-secondary-foreground hover:border-oca-hairline-strong hover:bg-accent",
|
|
1497
|
-
brand: "bg-brand text-brand-foreground hover:bg-oca-orange-deep",
|
|
1498
|
-
ghost: "text-foreground hover:bg-accent",
|
|
1499
|
-
danger: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
1500
|
-
link: "h-auto rounded-none px-0 text-foreground underline decoration-foreground/35 underline-offset-4 hover:decoration-foreground",
|
|
1501
|
-
onInk: "bg-white text-oca-ink hover:bg-white/90",
|
|
1502
|
-
onInkOutline: "border border-white/20 text-white hover:bg-white/10"
|
|
1503
|
-
},
|
|
1504
|
-
size: {
|
|
1505
|
-
sm: "h-9 px-4 text-sm",
|
|
1506
|
-
md: "h-11 px-5 text-[0.9375rem]",
|
|
1507
|
-
lg: "h-14 px-7 text-[1.0625rem]",
|
|
1508
|
-
icon: "size-10",
|
|
1509
|
-
"icon-sm": "size-8"
|
|
1510
|
-
}
|
|
1511
|
-
},
|
|
1512
|
-
compoundVariants: [{ variant: "link", className: "h-auto px-0" }],
|
|
1513
|
-
defaultVariants: { variant: "primary", size: "md" }
|
|
1514
|
-
}
|
|
1515
|
-
);
|
|
1516
|
-
var Button = react.forwardRef(function Button2({ className, variant, size, asChild = false, loading = false, disabled, children, type, ...props }, ref) {
|
|
1517
|
-
const Comp = asChild ? reactSlot.Slot : "button";
|
|
1518
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1519
|
-
Comp,
|
|
1520
|
-
{
|
|
1521
|
-
ref,
|
|
1522
|
-
"data-ui": "button",
|
|
1523
|
-
className: cn(buttonVariants({ variant, size }), className),
|
|
1524
|
-
disabled: asChild ? void 0 : disabled || loading,
|
|
1525
|
-
"aria-busy": loading || void 0,
|
|
1526
|
-
type: asChild ? void 0 : type ?? "button",
|
|
1527
|
-
...props,
|
|
1528
|
-
children: asChild ? children : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1529
|
-
loading ? /* @__PURE__ */ jsxRuntime.jsx(Spinner, { className: "size-[1.1em]" }) : null,
|
|
1530
|
-
children
|
|
1531
|
-
] })
|
|
1532
|
-
}
|
|
1533
|
-
);
|
|
1534
|
-
});
|
|
1535
1560
|
function useActiveHeading(ids) {
|
|
1536
1561
|
const [active, setActive] = react.useState(ids[0]);
|
|
1537
1562
|
const key = ids.join("|");
|
|
@@ -1785,7 +1810,7 @@ function SessionAccountView({
|
|
|
1785
1810
|
items = [],
|
|
1786
1811
|
signInHref,
|
|
1787
1812
|
signInPath,
|
|
1788
|
-
signInLabel =
|
|
1813
|
+
signInLabel = SIGN_IN_LABEL,
|
|
1789
1814
|
accountHref = OCHK_APP_ACCOUNT,
|
|
1790
1815
|
onSignOut,
|
|
1791
1816
|
nameFrom = "lg"
|
|
@@ -1816,6 +1841,13 @@ function SessionAccountView({
|
|
|
1816
1841
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: state === "checking" ? "contents invisible" : "contents", "aria-hidden": state === "checking" || void 0, children: /* @__PURE__ */ jsxRuntime.jsx(Button, { asChild: true, size: "sm", variant: "secondary", tabIndex: state === "checking" ? -1 : void 0, children: /* @__PURE__ */ jsxRuntime.jsx("a", { href: signInHref ?? inPlace ?? "https://ochk.io/signin", children: signInLabel }) }) })
|
|
1817
1842
|
);
|
|
1818
1843
|
}
|
|
1844
|
+
function ToolColumn({
|
|
1845
|
+
measure = "wide",
|
|
1846
|
+
className,
|
|
1847
|
+
children
|
|
1848
|
+
}) {
|
|
1849
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("px-4 pb-16 pt-8 md:px-8 md:pt-10", className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto w-full max-w-[72rem]", children: /* @__PURE__ */ jsxRuntime.jsx(InColumnContext.Provider, { value: true, children: measure === "narrow" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-[48rem]", children }) : children }) }) });
|
|
1850
|
+
}
|
|
1819
1851
|
function ToolShell({
|
|
1820
1852
|
protocol: protocol2,
|
|
1821
1853
|
tools,
|
|
@@ -1824,6 +1856,7 @@ function ToolShell({
|
|
|
1824
1856
|
rail = false,
|
|
1825
1857
|
railFooter,
|
|
1826
1858
|
variant = "tool",
|
|
1859
|
+
measure = "wide",
|
|
1827
1860
|
banner,
|
|
1828
1861
|
footer,
|
|
1829
1862
|
children
|
|
@@ -1881,14 +1914,7 @@ function ToolShell({
|
|
|
1881
1914
|
/* @__PURE__ */ jsxRuntime.jsx(SideNav, { groups: [{ label: "Tools", items: tools.map(({ href, label, icon, active }) => ({ href, label, icon, active })) }] }),
|
|
1882
1915
|
railFooter ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto flex flex-col gap-0.5 px-3 text-[0.875rem] text-muted-foreground [&_a:hover]:text-foreground [&_a]:py-1.5 [&_a]:transition-colors", children: railFooter }) : null
|
|
1883
1916
|
] }) : null,
|
|
1884
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1885
|
-
"main",
|
|
1886
|
-
{
|
|
1887
|
-
id: "main-content",
|
|
1888
|
-
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"),
|
|
1889
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(SiteHomeContext.Provider, { value: homeHref, children: app ? children : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto w-full max-w-[72rem]", children }) })
|
|
1890
|
-
}
|
|
1891
|
-
)
|
|
1917
|
+
/* @__PURE__ */ jsxRuntime.jsx("main", { id: "main-content", className: cn("min-w-0 flex-1", app && "flex min-h-0 flex-col"), children: /* @__PURE__ */ jsxRuntime.jsx(SiteHomeContext.Provider, { value: homeHref, children: app ? children : /* @__PURE__ */ jsxRuntime.jsx(ToolColumn, { measure, children }) }) })
|
|
1892
1918
|
] }),
|
|
1893
1919
|
app || footer === false ? null : footer ?? /* @__PURE__ */ jsxRuntime.jsx(SiteFooter, { compact: true, family: true, legal: true }),
|
|
1894
1920
|
tabs ? /* @__PURE__ */ jsxRuntime.jsx(TabBar, { items: tabs }) : null
|
|
@@ -1897,6 +1923,7 @@ function ToolShell({
|
|
|
1897
1923
|
) });
|
|
1898
1924
|
}
|
|
1899
1925
|
|
|
1926
|
+
exports.AccountCta = AccountCta;
|
|
1900
1927
|
exports.AccountMenu = AccountMenu;
|
|
1901
1928
|
exports.AppShell = AppShell;
|
|
1902
1929
|
exports.DOCS_HEADER_NAV = DOCS_HEADER_NAV;
|
|
@@ -1905,6 +1932,7 @@ exports.DocsShell = DocsShell;
|
|
|
1905
1932
|
exports.FamilyMenu = FamilyMenu;
|
|
1906
1933
|
exports.OCHK_APP_ACCOUNT = OCHK_APP_ACCOUNT;
|
|
1907
1934
|
exports.OchkIoFooter = OchkIoFooter;
|
|
1935
|
+
exports.PaneHeader = PaneHeader;
|
|
1908
1936
|
exports.SessionAccountView = SessionAccountView;
|
|
1909
1937
|
exports.ShellContext = ShellContext;
|
|
1910
1938
|
exports.SignInFrame = SignInFrame;
|
|
@@ -1913,6 +1941,7 @@ exports.SiteFooter = SiteFooter;
|
|
|
1913
1941
|
exports.SiteHeader = SiteHeader;
|
|
1914
1942
|
exports.SkipLink = SkipLink;
|
|
1915
1943
|
exports.ThemeToggle = ThemeToggle;
|
|
1944
|
+
exports.ToolColumn = ToolColumn;
|
|
1916
1945
|
exports.ToolShell = ToolShell;
|
|
1917
1946
|
exports.useShellPlace = useShellPlace;
|
|
1918
1947
|
exports.useSignInHref = useSignInHref;
|