@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/dist/index.mjs
CHANGED
|
@@ -13,14 +13,14 @@ import * as LabelPrimitive from '@radix-ui/react-label';
|
|
|
13
13
|
import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
|
|
14
14
|
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
15
15
|
import * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
16
|
-
import { ChevronDown, Check, X, Search, ArrowUpRight, ArrowRight, Copy, ChevronLeft, ChevronRight, Lock, Info, CornerDownLeft, Download, FileText, Upload, Menu, Sun, Moon, SunMoon, PanelLeft, CircleUser, LogOut, ArrowLeft, Maximize2, CircleDashed, CircleMinus, CircleSlash, Clock, CircleX, CircleCheck, Ellipsis } from 'lucide-react';
|
|
16
|
+
import { ChevronDown, Check, X, Search, ArrowUpRight, ArrowRight, Copy, ChevronLeft, ChevronRight, Lock, Info, UserRound, CornerDownLeft, Download, FileText, Upload, Menu, Sun, Moon, SunMoon, PanelLeft, CircleUser, LogOut, ArrowLeft, Maximize2, CircleDashed, CircleMinus, CircleSlash, Clock, CircleX, CircleCheck, Ellipsis } from 'lucide-react';
|
|
17
17
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
18
18
|
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
19
19
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
20
20
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
21
21
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
22
22
|
import QRCode from 'qrcode';
|
|
23
|
-
import
|
|
23
|
+
import Link7 from 'next/link';
|
|
24
24
|
import { useRouter } from 'next/compat/router';
|
|
25
25
|
|
|
26
26
|
// src/tokens/palette.ts
|
|
@@ -871,7 +871,8 @@ var DropdownMenuItem = forwardRef(function DropdownMenuItem2({ className, destru
|
|
|
871
871
|
{
|
|
872
872
|
ref,
|
|
873
873
|
className: cn(
|
|
874
|
-
|
|
874
|
+
// A thumb's 44px on a phone.
|
|
875
|
+
"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",
|
|
875
876
|
"data-[highlighted]:bg-accent data-[disabled]:opacity-50 [&_svg]:size-4 [&_svg]:text-muted-foreground",
|
|
876
877
|
destructive && "text-destructive [&_svg]:text-destructive",
|
|
877
878
|
className
|
|
@@ -2167,7 +2168,7 @@ var JS_TAG = /<\/?(?=[A-Za-z])/y;
|
|
|
2167
2168
|
var JS_TAG_NAME = /[A-Za-z][\w$.:-]*/y;
|
|
2168
2169
|
var JS_PUNCT = /=>|\.\.\.|[{}()[\];,.<>=+\-*/%!?:&|^~#]/y;
|
|
2169
2170
|
var JSX_BEFORE = /* @__PURE__ */ new Set(["(", ",", "=", "?", ":", "{", "[", ";", ">", "&&", "||", "=>", "return"]);
|
|
2170
|
-
function scanJs(src, emit2,
|
|
2171
|
+
function scanJs(src, emit2, jsx54) {
|
|
2171
2172
|
let i = 0;
|
|
2172
2173
|
let prev = "";
|
|
2173
2174
|
let tagDepth = 0;
|
|
@@ -2193,7 +2194,7 @@ function scanJs(src, emit2, jsx52) {
|
|
|
2193
2194
|
sig('"');
|
|
2194
2195
|
continue;
|
|
2195
2196
|
}
|
|
2196
|
-
if (
|
|
2197
|
+
if (jsx54 && tagDepth === 0 && (m = at(JS_TAG, src, i)) && (prev === "" || JSX_BEFORE.has(prev))) {
|
|
2197
2198
|
const name = at(JS_TAG_NAME, src, i + m.length);
|
|
2198
2199
|
if (name) {
|
|
2199
2200
|
emit2(m);
|
|
@@ -2205,7 +2206,7 @@ function scanJs(src, emit2, jsx52) {
|
|
|
2205
2206
|
continue;
|
|
2206
2207
|
}
|
|
2207
2208
|
}
|
|
2208
|
-
if (
|
|
2209
|
+
if (jsx54 && tagDepth > 0 && braceInTag === 0) {
|
|
2209
2210
|
if (src.startsWith("/>", i) || src[i] === ">") {
|
|
2210
2211
|
const close = src[i] === ">" ? ">" : "/>";
|
|
2211
2212
|
emit2(close);
|
|
@@ -2225,7 +2226,7 @@ function scanJs(src, emit2, jsx52) {
|
|
|
2225
2226
|
continue;
|
|
2226
2227
|
}
|
|
2227
2228
|
if (src[i] === "{") braceInTag = 1;
|
|
2228
|
-
} else if (
|
|
2229
|
+
} else if (jsx54 && tagDepth > 0 && braceInTag > 0) {
|
|
2229
2230
|
if (src[i] === "{") braceInTag++;
|
|
2230
2231
|
else if (src[i] === "}") braceInTag--;
|
|
2231
2232
|
}
|
|
@@ -2942,6 +2943,7 @@ function Notice({
|
|
|
2942
2943
|
title,
|
|
2943
2944
|
children,
|
|
2944
2945
|
action,
|
|
2946
|
+
icon,
|
|
2945
2947
|
role,
|
|
2946
2948
|
className
|
|
2947
2949
|
}) {
|
|
@@ -2958,7 +2960,17 @@ function Notice({
|
|
|
2958
2960
|
),
|
|
2959
2961
|
children: [
|
|
2960
2962
|
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 gap-3", children: [
|
|
2961
|
-
|
|
2963
|
+
icon ? /* @__PURE__ */ jsx(
|
|
2964
|
+
"span",
|
|
2965
|
+
{
|
|
2966
|
+
"aria-hidden": true,
|
|
2967
|
+
className: cn(
|
|
2968
|
+
"mt-0.5 shrink-0 [&_svg]:size-[1.125rem]",
|
|
2969
|
+
kind === "brand" ? "text-oca-accent-ink" : kind === "danger" ? "text-destructive" : "text-muted-foreground"
|
|
2970
|
+
),
|
|
2971
|
+
children: icon
|
|
2972
|
+
}
|
|
2973
|
+
) : kind !== "neutral" ? /* @__PURE__ */ jsx(
|
|
2962
2974
|
"span",
|
|
2963
2975
|
{
|
|
2964
2976
|
"aria-hidden": true,
|
|
@@ -3253,7 +3265,7 @@ function Well({
|
|
|
3253
3265
|
] });
|
|
3254
3266
|
}
|
|
3255
3267
|
var FRAME = "overflow-hidden rounded-[1.25rem] border border-[var(--oca-code-line)] bg-[var(--oca-code-surface)]";
|
|
3256
|
-
var COPY_ON_INK = "text-oca-ink-subtle hover:bg-white/10 hover:text-white";
|
|
3268
|
+
var COPY_ON_INK = "text-oca-ink-subtle hover:bg-white/10 hover:text-white max-md:size-11";
|
|
3257
3269
|
function CodeBlock({
|
|
3258
3270
|
code,
|
|
3259
3271
|
html,
|
|
@@ -3681,6 +3693,9 @@ var GROUNDS = [
|
|
|
3681
3693
|
}
|
|
3682
3694
|
];
|
|
3683
3695
|
var SIZES = {
|
|
3696
|
+
// A list row's avatar, a facepile.
|
|
3697
|
+
"2xs": "size-7 rounded-[0.55rem] text-[0.75rem]",
|
|
3698
|
+
xs: "size-8 rounded-[0.6rem] text-[0.875rem]",
|
|
3684
3699
|
sm: "size-9 rounded-[0.7rem] text-[0.9375rem]",
|
|
3685
3700
|
md: "size-11 rounded-[0.85rem] text-[1.125rem]",
|
|
3686
3701
|
lg: "size-14 rounded-[1.05rem] text-[1.5rem]"
|
|
@@ -3768,6 +3783,9 @@ var ErrorBoundary = class extends Component {
|
|
|
3768
3783
|
// src/family/index.ts
|
|
3769
3784
|
var OCHK_IO = "https://ochk.io";
|
|
3770
3785
|
var DOCS_HREF = `${OCHK_IO}/docs`;
|
|
3786
|
+
var OCHK_APP = "https://ochk.app";
|
|
3787
|
+
var GET_AN_ACCOUNT = { href: OCHK_APP, label: "Get an account" };
|
|
3788
|
+
var SIGN_IN_LABEL = "Sign in";
|
|
3771
3789
|
function protocol(slug, verb, line, kinds) {
|
|
3772
3790
|
return {
|
|
3773
3791
|
slug,
|
|
@@ -3804,7 +3822,7 @@ var FAMILY = [
|
|
|
3804
3822
|
{
|
|
3805
3823
|
slug: "me",
|
|
3806
3824
|
label: "ochk.app",
|
|
3807
|
-
href:
|
|
3825
|
+
href: OCHK_APP,
|
|
3808
3826
|
group: "orangecheck",
|
|
3809
3827
|
line: "One account, with Bitcoin behind it.",
|
|
3810
3828
|
status: "testing"
|
|
@@ -3923,6 +3941,10 @@ var OCHK_IO_FOOTER = [
|
|
|
3923
3941
|
]
|
|
3924
3942
|
}
|
|
3925
3943
|
];
|
|
3944
|
+
var InColumnContext = sharedContext("in-column", false);
|
|
3945
|
+
function useInColumn() {
|
|
3946
|
+
return useContext(InColumnContext);
|
|
3947
|
+
}
|
|
3926
3948
|
var SiteHomeContext = sharedContext("site-home", void 0);
|
|
3927
3949
|
function useSiteHome() {
|
|
3928
3950
|
return useContext(SiteHomeContext);
|
|
@@ -3950,10 +3972,11 @@ function ErrorPage({
|
|
|
3950
3972
|
className
|
|
3951
3973
|
}) {
|
|
3952
3974
|
const shellHome = useSiteHome();
|
|
3975
|
+
const inColumn = useInColumn();
|
|
3953
3976
|
const homeHref = home ?? (protocol2 ? protocolSite(protocol2).pageHref : shellHome ?? OCHK_IO);
|
|
3954
3977
|
const words = WORDS[code] ?? (code >= 500 ? WORDS[500] : WORDS[404]);
|
|
3955
3978
|
const server = code >= 500;
|
|
3956
|
-
return /* @__PURE__ */ jsx(Section, { space: "none", className: cn("flex min-h-[min(40rem,72dvh)] items-center py-16 md:py-24", className), children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 items-center gap-12 md:grid-cols-12", children: [
|
|
3979
|
+
return /* @__PURE__ */ jsx(Section, { space: "none", contained: !inColumn, className: cn("flex min-h-[min(40rem,72dvh)] items-center py-16 md:py-24", className), children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 items-center gap-12 md:grid-cols-12", children: [
|
|
3957
3980
|
/* @__PURE__ */ jsxs("div", { className: "flex max-w-[40rem] flex-col items-start gap-6 md:col-span-7", children: [
|
|
3958
3981
|
/* @__PURE__ */ jsxs("p", { className: "oca-eyebrow oca-enter", children: [
|
|
3959
3982
|
/* @__PURE__ */ jsx("span", { className: "oca-tabular", children: code }),
|
|
@@ -3964,7 +3987,7 @@ function ErrorPage({
|
|
|
3964
3987
|
/* @__PURE__ */ jsx("p", { className: "oca-lead oca-enter [--enter-delay:150ms]", children: detail ?? words.detail }),
|
|
3965
3988
|
/* @__PURE__ */ jsx("div", { className: "oca-enter flex flex-wrap gap-3 [--enter-delay:230ms]", children: actions ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
3966
3989
|
server ? /* @__PURE__ */ jsx(Button, { onClick: () => window.location.reload(), children: "Try again" }) : null,
|
|
3967
|
-
/* @__PURE__ */ jsx(Button, { asChild: true, variant: server ? "secondary" : "primary", children: /* @__PURE__ */ jsx(
|
|
3990
|
+
/* @__PURE__ */ jsx(Button, { asChild: true, variant: server ? "secondary" : "primary", children: /* @__PURE__ */ jsx(Link7, { href: homeHref, children: "Go home" }) })
|
|
3968
3991
|
] }) })
|
|
3969
3992
|
] }),
|
|
3970
3993
|
art !== null ? /* @__PURE__ */ jsx("div", { "aria-hidden": true, className: "oca-enter hidden justify-center md:col-span-5 md:flex [--enter-delay:120ms]", children: art ?? /* @__PURE__ */ jsx(MarkOutline, { className: "w-full max-w-[20rem] text-oca-hairline-strong" }) }) : null
|
|
@@ -4405,7 +4428,7 @@ function TextLink({
|
|
|
4405
4428
|
const internal = href.startsWith("/") && !href.startsWith("/api/") && !href.startsWith("/.well-known/");
|
|
4406
4429
|
const offsite = external ?? /^https?:\/\//.test(href);
|
|
4407
4430
|
if (internal && !offsite) {
|
|
4408
|
-
return /* @__PURE__ */ jsx(
|
|
4431
|
+
return /* @__PURE__ */ jsx(Link7, { href, className: cn(LINK, className), children });
|
|
4409
4432
|
}
|
|
4410
4433
|
return /* @__PURE__ */ jsxs("a", { href, className: cn(LINK, className), ...offsite ? { target: "_blank", rel: "noreferrer" } : {}, children: [
|
|
4411
4434
|
children,
|
|
@@ -4539,7 +4562,7 @@ function ProtocolGrid({
|
|
|
4539
4562
|
] }),
|
|
4540
4563
|
p.status !== "live" ? /* @__PURE__ */ jsx(StatusBadge, { status: p.status }) : null
|
|
4541
4564
|
] }),
|
|
4542
|
-
/* @__PURE__ */ jsx("h3", { className: "oca-display-3", children: link === "docs" && inDocs ? /* @__PURE__ */ jsx(
|
|
4565
|
+
/* @__PURE__ */ jsx("h3", { className: "oca-display-3", children: link === "docs" && inDocs ? /* @__PURE__ */ jsx(Link7, { href: `/${p.slug}`, className: STRETCH, children: p.label }) : /* @__PURE__ */ jsx(
|
|
4543
4566
|
"a",
|
|
4544
4567
|
{
|
|
4545
4568
|
href: link === "tool" ? p.toolHref : link === "docs" ? `${DOCS_HREF}/${p.slug}` : p.pageHref,
|
|
@@ -4599,7 +4622,7 @@ function AppGrid({
|
|
|
4599
4622
|
}
|
|
4600
4623
|
var isInternal = (href) => href.startsWith("/") || href.startsWith("#");
|
|
4601
4624
|
function DocLink({ href, className, children, ...rest }) {
|
|
4602
|
-
return isInternal(href) ? /* @__PURE__ */ jsx(
|
|
4625
|
+
return isInternal(href) ? /* @__PURE__ */ jsx(Link7, { href, className, ...rest, children }) : /* @__PURE__ */ jsx("a", { href, className, ...rest, children });
|
|
4603
4626
|
}
|
|
4604
4627
|
function Breadcrumbs({ items, action, className }) {
|
|
4605
4628
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex min-h-11 items-center justify-between gap-4 sm:min-h-0", className), children: [
|
|
@@ -5389,6 +5412,220 @@ function SignMessage({
|
|
|
5389
5412
|
)
|
|
5390
5413
|
] });
|
|
5391
5414
|
}
|
|
5415
|
+
function SectionTitle({
|
|
5416
|
+
title,
|
|
5417
|
+
meta,
|
|
5418
|
+
description,
|
|
5419
|
+
action,
|
|
5420
|
+
as: Tag = "h2",
|
|
5421
|
+
size = "md",
|
|
5422
|
+
tone = "default",
|
|
5423
|
+
id,
|
|
5424
|
+
className
|
|
5425
|
+
}) {
|
|
5426
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-wrap items-end justify-between gap-x-4 gap-y-3", className), children: [
|
|
5427
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 max-w-[40rem] flex-[1_1_16rem] flex-col gap-1", children: [
|
|
5428
|
+
/* @__PURE__ */ jsxs(
|
|
5429
|
+
Tag,
|
|
5430
|
+
{
|
|
5431
|
+
id,
|
|
5432
|
+
className: cn(
|
|
5433
|
+
"flex scroll-mt-24 flex-wrap items-baseline gap-x-3",
|
|
5434
|
+
size === "sm" ? "oca-title-sm" : "oca-title",
|
|
5435
|
+
tone === "danger" && "text-destructive"
|
|
5436
|
+
),
|
|
5437
|
+
children: [
|
|
5438
|
+
title,
|
|
5439
|
+
meta ? /* @__PURE__ */ jsx("span", { className: "oca-tabular text-[0.875rem] font-normal tracking-normal text-muted-foreground", children: meta }) : null
|
|
5440
|
+
]
|
|
5441
|
+
}
|
|
5442
|
+
),
|
|
5443
|
+
description ? /* @__PURE__ */ jsx("p", { className: "text-[0.9375rem] leading-relaxed text-muted-foreground", children: description }) : null
|
|
5444
|
+
] }),
|
|
5445
|
+
action ? /* @__PURE__ */ jsx("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: action }) : null
|
|
5446
|
+
] });
|
|
5447
|
+
}
|
|
5448
|
+
function ListCard({
|
|
5449
|
+
as: Tag = "ul",
|
|
5450
|
+
className,
|
|
5451
|
+
...props
|
|
5452
|
+
}) {
|
|
5453
|
+
return /* @__PURE__ */ jsx(Tag, { className: cn("divide-y divide-border overflow-clip rounded-[1.25rem] border border-border bg-card", className), ...props });
|
|
5454
|
+
}
|
|
5455
|
+
var ROW_LOOK = {
|
|
5456
|
+
// In a ListCard: full width, the card's hairlines between rows.
|
|
5457
|
+
card: { box: "px-5", hover: "hover:bg-accent/60", current: "bg-accent" },
|
|
5458
|
+
// In a pane's list (threads, contacts): rounded, lifted when current.
|
|
5459
|
+
pane: { box: "rounded-xl px-3", hover: "hover:bg-accent", current: "bg-card shadow-sm ring-1 ring-border" }
|
|
5460
|
+
};
|
|
5461
|
+
function ListRow({
|
|
5462
|
+
title,
|
|
5463
|
+
meta,
|
|
5464
|
+
description,
|
|
5465
|
+
leading,
|
|
5466
|
+
trailing,
|
|
5467
|
+
actions,
|
|
5468
|
+
revealActions = "always",
|
|
5469
|
+
href,
|
|
5470
|
+
onSelect,
|
|
5471
|
+
current: current2 = false,
|
|
5472
|
+
unread = false,
|
|
5473
|
+
variant = "card",
|
|
5474
|
+
as: Tag = "li",
|
|
5475
|
+
className
|
|
5476
|
+
}) {
|
|
5477
|
+
const tight = useDensity() === "compact";
|
|
5478
|
+
const look = ROW_LOOK[variant];
|
|
5479
|
+
const interactive = href !== void 0 || onSelect !== void 0;
|
|
5480
|
+
const cls = cn(
|
|
5481
|
+
"flex min-h-11 w-full min-w-0 items-center gap-3 text-left outline-none transition-colors",
|
|
5482
|
+
"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",
|
|
5483
|
+
look.box,
|
|
5484
|
+
variant === "pane" ? "py-2" : tight ? "py-3" : "py-4",
|
|
5485
|
+
interactive && !current2 && look.hover,
|
|
5486
|
+
current2 && look.current,
|
|
5487
|
+
actions && "pr-14"
|
|
5488
|
+
);
|
|
5489
|
+
const body = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5490
|
+
leading ? /* @__PURE__ */ jsx("span", { className: "flex shrink-0", children: leading }) : null,
|
|
5491
|
+
/* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
5492
|
+
/* @__PURE__ */ jsxs("span", { className: "flex min-w-0 items-baseline justify-between gap-3", children: [
|
|
5493
|
+
/* @__PURE__ */ jsx("span", { className: cn("truncate text-[0.9375rem] text-foreground", unread ? "font-semibold" : "font-medium"), children: title }),
|
|
5494
|
+
meta ? /* @__PURE__ */ jsx("span", { className: "oca-tabular shrink-0 text-[0.8125rem] text-muted-foreground", children: meta }) : null
|
|
5495
|
+
] }),
|
|
5496
|
+
description ? /* @__PURE__ */ jsx("span", { className: cn("truncate text-[0.875rem]", unread ? "text-foreground" : "text-muted-foreground"), children: description }) : null
|
|
5497
|
+
] }),
|
|
5498
|
+
trailing ? /* @__PURE__ */ jsx("span", { className: "flex shrink-0 items-center gap-2", children: trailing }) : null
|
|
5499
|
+
] });
|
|
5500
|
+
const aria = current2 ? { "aria-current": "true" } : {};
|
|
5501
|
+
return /* @__PURE__ */ jsxs(Tag, { className: cn("group/row relative", className), children: [
|
|
5502
|
+
href !== void 0 ? href.startsWith("/") ? /* @__PURE__ */ jsx(Link7, { href, className: cls, ...aria, children: body }) : /* @__PURE__ */ jsx("a", { href, className: cls, ...aria, children: body }) : onSelect ? /* @__PURE__ */ jsx("button", { type: "button", onClick: onSelect, className: cls, ...aria, children: body }) : /* @__PURE__ */ jsx("div", { className: cls, children: body }),
|
|
5503
|
+
actions ? /* @__PURE__ */ jsx(
|
|
5504
|
+
"div",
|
|
5505
|
+
{
|
|
5506
|
+
className: cn(
|
|
5507
|
+
"absolute right-2 top-1/2 flex -translate-y-1/2 items-center",
|
|
5508
|
+
revealActions === "hover" && "transition-opacity md:opacity-0 md:focus-within:opacity-100 md:group-hover/row:opacity-100 md:has-[[data-state=open]]:opacity-100"
|
|
5509
|
+
),
|
|
5510
|
+
children: actions
|
|
5511
|
+
}
|
|
5512
|
+
) : null
|
|
5513
|
+
] });
|
|
5514
|
+
}
|
|
5515
|
+
var ChoiceSize = createContext("md");
|
|
5516
|
+
var COLUMNS = { 1: "", 2: "sm:grid-cols-2", 3: "sm:grid-cols-2 lg:grid-cols-3" };
|
|
5517
|
+
function ChoiceGroup({
|
|
5518
|
+
value,
|
|
5519
|
+
onValueChange,
|
|
5520
|
+
label,
|
|
5521
|
+
columns = 1,
|
|
5522
|
+
size = "md",
|
|
5523
|
+
disabled,
|
|
5524
|
+
className,
|
|
5525
|
+
children
|
|
5526
|
+
}) {
|
|
5527
|
+
return /* @__PURE__ */ jsx(ChoiceSize.Provider, { value: size, children: /* @__PURE__ */ jsx(
|
|
5528
|
+
RadioGroupPrimitive.Root,
|
|
5529
|
+
{
|
|
5530
|
+
value: value ?? "",
|
|
5531
|
+
onValueChange: (v) => onValueChange(v),
|
|
5532
|
+
"aria-label": label,
|
|
5533
|
+
disabled,
|
|
5534
|
+
className: cn("grid", size === "sm" ? "gap-1.5" : "gap-3", COLUMNS[columns], className),
|
|
5535
|
+
children
|
|
5536
|
+
}
|
|
5537
|
+
) });
|
|
5538
|
+
}
|
|
5539
|
+
function ChoiceCard({
|
|
5540
|
+
value,
|
|
5541
|
+
title,
|
|
5542
|
+
description,
|
|
5543
|
+
icon,
|
|
5544
|
+
disabled,
|
|
5545
|
+
className
|
|
5546
|
+
}) {
|
|
5547
|
+
const sm = useContext(ChoiceSize) === "sm";
|
|
5548
|
+
return /* @__PURE__ */ jsxs(
|
|
5549
|
+
RadioGroupPrimitive.Item,
|
|
5550
|
+
{
|
|
5551
|
+
value,
|
|
5552
|
+
disabled,
|
|
5553
|
+
className: cn(
|
|
5554
|
+
"group flex w-full min-w-0 items-start gap-3 border text-left outline-none transition-colors",
|
|
5555
|
+
"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
5556
|
+
"border-border bg-card data-[state=checked]:border-foreground data-[state=checked]:bg-accent data-[state=unchecked]:hover:border-oca-hairline-strong",
|
|
5557
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
5558
|
+
sm ? "min-h-11 rounded-xl px-3.5 py-2.5" : "rounded-[1.25rem] p-5",
|
|
5559
|
+
className
|
|
5560
|
+
),
|
|
5561
|
+
children: [
|
|
5562
|
+
icon ? /* @__PURE__ */ jsx(
|
|
5563
|
+
"span",
|
|
5564
|
+
{
|
|
5565
|
+
"aria-hidden": true,
|
|
5566
|
+
className: cn(
|
|
5567
|
+
"shrink-0 text-muted-foreground group-data-[state=checked]:text-oca-accent-ink [&_svg]:size-full",
|
|
5568
|
+
sm ? "mt-0.5 size-4" : "size-6"
|
|
5569
|
+
),
|
|
5570
|
+
children: icon
|
|
5571
|
+
}
|
|
5572
|
+
) : null,
|
|
5573
|
+
/* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-col gap-1", children: [
|
|
5574
|
+
/* @__PURE__ */ jsx("span", { className: sm ? "text-[0.9375rem] font-medium" : "oca-title-sm", children: title }),
|
|
5575
|
+
description ? /* @__PURE__ */ jsx("span", { className: "text-[0.875rem] leading-relaxed text-muted-foreground", children: description }) : null
|
|
5576
|
+
] })
|
|
5577
|
+
]
|
|
5578
|
+
}
|
|
5579
|
+
);
|
|
5580
|
+
}
|
|
5581
|
+
var SIZES2 = {
|
|
5582
|
+
"2xs": "size-7 text-[0.6875rem] [&_svg]:size-3.5",
|
|
5583
|
+
xs: "size-8 text-[0.75rem] [&_svg]:size-4",
|
|
5584
|
+
sm: "size-9 text-[0.8125rem] [&_svg]:size-4",
|
|
5585
|
+
md: "size-11 text-[0.9375rem] [&_svg]:size-5",
|
|
5586
|
+
lg: "size-14 text-[1.1875rem] [&_svg]:size-6"
|
|
5587
|
+
};
|
|
5588
|
+
function personInitials(name) {
|
|
5589
|
+
return name.trim().split(/\s+/).slice(0, 2).map((w) => w.match(/[\p{L}\p{N}]/u)?.[0] ?? "").join("").toLocaleUpperCase();
|
|
5590
|
+
}
|
|
5591
|
+
function avatarHue(seed) {
|
|
5592
|
+
let h = 2166136261;
|
|
5593
|
+
for (let i = 0; i < seed.length; i++) {
|
|
5594
|
+
h ^= seed.charCodeAt(i);
|
|
5595
|
+
h = Math.imul(h, 16777619);
|
|
5596
|
+
}
|
|
5597
|
+
return (h >>> 0) % 360;
|
|
5598
|
+
}
|
|
5599
|
+
function Avatar({
|
|
5600
|
+
seed,
|
|
5601
|
+
name,
|
|
5602
|
+
src,
|
|
5603
|
+
size = "sm",
|
|
5604
|
+
className
|
|
5605
|
+
}) {
|
|
5606
|
+
const [failed, setFailed] = useState(null);
|
|
5607
|
+
const box = cn("inline-flex shrink-0 select-none items-center justify-center overflow-hidden rounded-full", SIZES2[size], className);
|
|
5608
|
+
if (src && failed !== src) {
|
|
5609
|
+
return (
|
|
5610
|
+
// eslint-disable-next-line @next/next/no-img-element
|
|
5611
|
+
/* @__PURE__ */ jsx("img", { src, alt: "", "aria-hidden": true, className: cn(box, "object-cover"), onError: () => setFailed(src) })
|
|
5612
|
+
);
|
|
5613
|
+
}
|
|
5614
|
+
const initials = name ? personInitials(name) : "";
|
|
5615
|
+
return /* @__PURE__ */ jsx(
|
|
5616
|
+
"span",
|
|
5617
|
+
{
|
|
5618
|
+
"aria-hidden": true,
|
|
5619
|
+
className: cn(box, "font-medium leading-none"),
|
|
5620
|
+
style: {
|
|
5621
|
+
"--oca-avatar-h": avatarHue(seed),
|
|
5622
|
+
backgroundColor: "hsl(var(--oca-avatar-h) 60% var(--oca-avatar-bg-l))",
|
|
5623
|
+
color: "hsl(var(--oca-avatar-h) 45% var(--oca-avatar-fg-l))"
|
|
5624
|
+
},
|
|
5625
|
+
children: initials || /* @__PURE__ */ jsx(UserRound, {})
|
|
5626
|
+
}
|
|
5627
|
+
);
|
|
5628
|
+
}
|
|
5392
5629
|
function useMacKeys() {
|
|
5393
5630
|
const [mac, setMac] = useState(true);
|
|
5394
5631
|
useEffect(() => {
|
|
@@ -5664,7 +5901,7 @@ function download(content, filename, mime) {
|
|
|
5664
5901
|
a.remove();
|
|
5665
5902
|
setTimeout(() => URL.revokeObjectURL(url), 0);
|
|
5666
5903
|
}
|
|
5667
|
-
var BAR_BUTTON = "inline-flex h-7 items-center gap-1.5 rounded-full px-2.5 text-[0.75rem] text-oca-ink-subtle transition-colors hover:bg-white/10 hover:text-white";
|
|
5904
|
+
var BAR_BUTTON = "inline-flex h-7 items-center gap-1.5 rounded-full px-2.5 text-[0.75rem] text-oca-ink-subtle transition-colors hover:bg-white/10 hover:text-white max-md:h-11 max-md:min-w-11 max-md:justify-center max-md:px-3";
|
|
5668
5905
|
function ArtifactView({
|
|
5669
5906
|
content,
|
|
5670
5907
|
title,
|
|
@@ -5694,7 +5931,8 @@ function ArtifactView({
|
|
|
5694
5931
|
"aria-pressed": view === v,
|
|
5695
5932
|
onClick: () => setView(v),
|
|
5696
5933
|
className: cn(
|
|
5697
|
-
|
|
5934
|
+
// The pill stays 28px; its target reaches the bar's 44.
|
|
5935
|
+
"relative h-7 rounded-full px-2.5 text-[0.75rem] transition-colors before:absolute before:inset-x-0 before:top-1/2 before:h-11 before:-translate-y-1/2",
|
|
5698
5936
|
view === v ? "bg-white/[0.12] text-white" : "text-oca-ink-subtle hover:text-white"
|
|
5699
5937
|
),
|
|
5700
5938
|
children: v === "formatted" ? "Formatted" : "Raw"
|
|
@@ -6164,7 +6402,8 @@ function FilterChips({
|
|
|
6164
6402
|
onClick: () => press(o.value),
|
|
6165
6403
|
className: cn(
|
|
6166
6404
|
"inline-flex shrink-0 items-center gap-1.5 rounded-full border px-3.5 text-[0.875rem] transition-colors",
|
|
6167
|
-
|
|
6405
|
+
// A thumb's 44px on a phone.
|
|
6406
|
+
tight ? "h-11 md:h-8" : "h-11 md:h-9",
|
|
6168
6407
|
on ? "border-foreground bg-foreground text-background" : "border-border bg-card text-muted-foreground hover:border-oca-hairline-strong hover:text-foreground"
|
|
6169
6408
|
),
|
|
6170
6409
|
children: [
|
|
@@ -6214,7 +6453,7 @@ function ToolGrid({
|
|
|
6214
6453
|
] }),
|
|
6215
6454
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
|
|
6216
6455
|
/* @__PURE__ */ jsx(Heading, { className: "oca-title-sm", children: /* @__PURE__ */ jsx(
|
|
6217
|
-
|
|
6456
|
+
Link7,
|
|
6218
6457
|
{
|
|
6219
6458
|
href: t.href,
|
|
6220
6459
|
className: "outline-none after:absolute after:inset-0 after:rounded-[1.25rem] after:content-['']",
|
|
@@ -6311,7 +6550,7 @@ function SideNav({ groups, onNavigate }) {
|
|
|
6311
6550
|
return /* @__PURE__ */ jsx("nav", { "aria-label": "Pages", className: "flex flex-col gap-5", children: groups.map((g, gi) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5", children: [
|
|
6312
6551
|
g.label ? /* @__PURE__ */ jsx("p", { className: "px-3 pb-1 text-[0.8125rem] text-muted-foreground", children: g.label }) : null,
|
|
6313
6552
|
g.items.map((it) => /* @__PURE__ */ jsxs(
|
|
6314
|
-
|
|
6553
|
+
Link7,
|
|
6315
6554
|
{
|
|
6316
6555
|
href: it.href,
|
|
6317
6556
|
onClick: onNavigate,
|
|
@@ -6346,7 +6585,7 @@ function SectionSwitch({
|
|
|
6346
6585
|
children: sections.map((sec) => {
|
|
6347
6586
|
const on = sec.id === current2.id;
|
|
6348
6587
|
return /* @__PURE__ */ jsx(
|
|
6349
|
-
|
|
6588
|
+
Link7,
|
|
6350
6589
|
{
|
|
6351
6590
|
href: sec.href,
|
|
6352
6591
|
onClick: onNavigate,
|
|
@@ -6419,7 +6658,7 @@ function TabBar({ items }) {
|
|
|
6419
6658
|
style: { gridTemplateColumns: `repeat(${shown.length + (overflow ? 1 : 0)}, minmax(0, 1fr))` },
|
|
6420
6659
|
children: [
|
|
6421
6660
|
shown.map((it) => /* @__PURE__ */ jsx(
|
|
6422
|
-
|
|
6661
|
+
Link7,
|
|
6423
6662
|
{
|
|
6424
6663
|
href: it.href,
|
|
6425
6664
|
"aria-current": it.active ? "page" : void 0,
|
|
@@ -6439,7 +6678,7 @@ function TabBar({ items }) {
|
|
|
6439
6678
|
/* @__PURE__ */ jsxs(SheetContent, { side: "bottom", className: "pb-[calc(1.5rem+env(safe-area-inset-bottom))]", children: [
|
|
6440
6679
|
/* @__PURE__ */ jsx(SheetTitle, { className: "px-1 text-[1.0625rem] font-medium", children: "More" }),
|
|
6441
6680
|
/* @__PURE__ */ jsx("div", { className: "mt-4 grid grid-cols-3 gap-2", children: rest.map((it) => /* @__PURE__ */ jsxs(
|
|
6442
|
-
|
|
6681
|
+
Link7,
|
|
6443
6682
|
{
|
|
6444
6683
|
href: it.href,
|
|
6445
6684
|
onClick: () => setMore(false),
|
|
@@ -6553,7 +6792,7 @@ function SidebarShell({
|
|
|
6553
6792
|
footer ? /* @__PURE__ */ jsx("div", { className: "mt-auto flex flex-col gap-3", children: footer }) : null
|
|
6554
6793
|
] })
|
|
6555
6794
|
] }),
|
|
6556
|
-
/* @__PURE__ */ jsx(
|
|
6795
|
+
/* @__PURE__ */ jsx(Link7, { href: home, "aria-label": "Home", className: "rounded-lg p-1", children: /* @__PURE__ */ jsx(Lockup, { size: 22 }) }),
|
|
6557
6796
|
familyMenu,
|
|
6558
6797
|
/* @__PURE__ */ jsx("div", { className: "ml-auto flex items-center", children: account })
|
|
6559
6798
|
] }),
|
|
@@ -6578,7 +6817,7 @@ function SidebarShell({
|
|
|
6578
6817
|
/* @__PURE__ */ jsxs("div", { className: "mx-auto flex w-full max-w-[90rem]", children: [
|
|
6579
6818
|
/* @__PURE__ */ jsxs("aside", { className: "sticky top-0 hidden h-dvh w-[17rem] shrink-0 flex-col gap-6 overflow-y-auto px-4 py-6 lg:flex", children: [
|
|
6580
6819
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
6581
|
-
/* @__PURE__ */ jsx(
|
|
6820
|
+
/* @__PURE__ */ jsx(Link7, { href: home, className: "px-2", "aria-label": "Home", children: /* @__PURE__ */ jsx(Lockup, { size: 26 }) }),
|
|
6582
6821
|
familyMenu
|
|
6583
6822
|
] }),
|
|
6584
6823
|
switcher,
|
|
@@ -6588,7 +6827,7 @@ function SidebarShell({
|
|
|
6588
6827
|
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
6589
6828
|
/* @__PURE__ */ jsx("div", { className: "hidden h-[4.5rem] items-center justify-end gap-3 px-8 lg:flex", children: account }),
|
|
6590
6829
|
banner ? /* @__PURE__ */ jsx("div", { className: "px-4 pb-2 pt-4 md:px-8 lg:pt-0", children: banner }) : null,
|
|
6591
|
-
/* @__PURE__ */ jsx("main", { id: "main-content", className: "flex-1 px-4 pb-16 pt-6 md:px-8 lg:pt-2", children: /* @__PURE__ */ jsx("div", { className: "mx-auto w-full max-w-[72rem]", children }) })
|
|
6830
|
+
/* @__PURE__ */ jsx("main", { id: "main-content", className: "flex-1 px-4 pb-16 pt-6 md:px-8 lg:pt-2", children: /* @__PURE__ */ jsx("div", { className: "mx-auto w-full max-w-[72rem]", children: /* @__PURE__ */ jsx(InColumnContext.Provider, { value: true, children }) }) })
|
|
6592
6831
|
] })
|
|
6593
6832
|
] }),
|
|
6594
6833
|
tabs ? /* @__PURE__ */ jsx(TabBar, { items: tabs }) : null
|
|
@@ -6599,7 +6838,7 @@ function SidebarShell({
|
|
|
6599
6838
|
function RailItem({ item }) {
|
|
6600
6839
|
return /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
6601
6840
|
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
6602
|
-
|
|
6841
|
+
Link7,
|
|
6603
6842
|
{
|
|
6604
6843
|
href: item.href,
|
|
6605
6844
|
"aria-current": item.active ? "page" : void 0,
|
|
@@ -6654,6 +6893,9 @@ function RailShell({ nav = [], persistent = [], page: pageOverride, header, acco
|
|
|
6654
6893
|
tabs ? /* @__PURE__ */ jsx(TabBar, { items: tabs }) : null
|
|
6655
6894
|
] }) }) });
|
|
6656
6895
|
}
|
|
6896
|
+
function PaneHeader({ children, className }) {
|
|
6897
|
+
return /* @__PURE__ */ jsx("header", { className: cn("flex h-14 shrink-0 items-center gap-3 border-b border-border px-4 md:px-5", className), children });
|
|
6898
|
+
}
|
|
6657
6899
|
function AccountMenu({
|
|
6658
6900
|
name,
|
|
6659
6901
|
detail,
|
|
@@ -6690,7 +6932,7 @@ function AccountMenu({
|
|
|
6690
6932
|
] }),
|
|
6691
6933
|
/* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
|
|
6692
6934
|
items.map(
|
|
6693
|
-
(it, i) => it === "separator" ? /* @__PURE__ */ jsx(DropdownMenuSeparator, {}, `sep-${i}`) : it.href ? /* @__PURE__ */ jsx(DropdownMenuItem, { asChild: true, destructive: it.destructive, children: /* @__PURE__ */ jsxs(
|
|
6935
|
+
(it, i) => it === "separator" ? /* @__PURE__ */ jsx(DropdownMenuSeparator, {}, `sep-${i}`) : it.href ? /* @__PURE__ */ jsx(DropdownMenuItem, { asChild: true, destructive: it.destructive, children: /* @__PURE__ */ jsxs(Link7, { href: it.href, children: [
|
|
6694
6936
|
it.icon,
|
|
6695
6937
|
it.label
|
|
6696
6938
|
] }) }, it.label) : /* @__PURE__ */ jsxs(DropdownMenuItem, { onSelect: it.onSelect, destructive: it.destructive, children: [
|
|
@@ -6739,7 +6981,7 @@ function NavLink({
|
|
|
6739
6981
|
if (item.external) {
|
|
6740
6982
|
return /* @__PURE__ */ jsx("a", { href: item.href, className: cls, rel: "noreferrer", onClick: onNavigate, children: item.label });
|
|
6741
6983
|
}
|
|
6742
|
-
return /* @__PURE__ */ jsx(
|
|
6984
|
+
return /* @__PURE__ */ jsx(Link7, { href: item.href, className: cls, "aria-current": item.active ? "page" : void 0, onClick: onNavigate, children: item.label });
|
|
6743
6985
|
}
|
|
6744
6986
|
function NavRow({ item, onNavigate }) {
|
|
6745
6987
|
const body = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -6750,7 +6992,7 @@ function NavRow({ item, onNavigate }) {
|
|
|
6750
6992
|
"flex flex-col gap-0.5 rounded-xl px-3 py-2 transition-colors hover:bg-accent",
|
|
6751
6993
|
item.active && "bg-muted hover:bg-muted dark:bg-white/[0.06]"
|
|
6752
6994
|
);
|
|
6753
|
-
return item.external ? /* @__PURE__ */ jsx("a", { href: item.href, className: cls, rel: "noreferrer", onClick: onNavigate, children: body }) : /* @__PURE__ */ jsx(
|
|
6995
|
+
return item.external ? /* @__PURE__ */ jsx("a", { href: item.href, className: cls, rel: "noreferrer", onClick: onNavigate, children: body }) : /* @__PURE__ */ jsx(Link7, { href: item.href, className: cls, "aria-current": item.active ? "page" : void 0, onClick: onNavigate, children: body });
|
|
6754
6996
|
}
|
|
6755
6997
|
var seeAll = (item) => typeof item.label === "string" ? `All ${item.label.toLowerCase()}` : "See all";
|
|
6756
6998
|
function NavDropdown({ item }) {
|
|
@@ -6783,6 +7025,18 @@ function NavDropdown({ item }) {
|
|
|
6783
7025
|
] })
|
|
6784
7026
|
] });
|
|
6785
7027
|
}
|
|
7028
|
+
function AccountCta({ href = GET_AN_ACCOUNT.href, className }) {
|
|
7029
|
+
return /* @__PURE__ */ jsx(Button, { asChild: true, size: "sm", className, children: /* @__PURE__ */ jsx("a", { href, children: GET_AN_ACCOUNT.label }) });
|
|
7030
|
+
}
|
|
7031
|
+
function ProductLockup({ size, product }) {
|
|
7032
|
+
return /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center", children: [
|
|
7033
|
+
/* @__PURE__ */ jsx(Lockup, { size }),
|
|
7034
|
+
product ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7035
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "mx-3 h-5 w-px bg-oca-hairline-strong" }),
|
|
7036
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium tracking-[-0.01em]", style: { fontSize: size * 0.56 }, children: product })
|
|
7037
|
+
] }) : null
|
|
7038
|
+
] });
|
|
7039
|
+
}
|
|
6786
7040
|
function SiteHeader({
|
|
6787
7041
|
home = "/",
|
|
6788
7042
|
brand,
|
|
@@ -6802,13 +7056,7 @@ function SiteHeader({
|
|
|
6802
7056
|
const current2 = typeof family === "string" ? family : void 0;
|
|
6803
7057
|
const phoneNav = navOnPhone ? nav : [];
|
|
6804
7058
|
const menu = phoneNav.length > 0 || Boolean(family) || Boolean(menuExtra);
|
|
6805
|
-
const brandNode = brand ?? /* @__PURE__ */
|
|
6806
|
-
/* @__PURE__ */ jsx(Lockup, { size }),
|
|
6807
|
-
product ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6808
|
-
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "mx-3 h-5 w-px bg-oca-hairline-strong" }),
|
|
6809
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium tracking-[-0.01em]", style: { fontSize: size * 0.56 }, children: product })
|
|
6810
|
-
] }) : null
|
|
6811
|
-
] });
|
|
7059
|
+
const brandNode = brand ?? /* @__PURE__ */ jsx(ProductLockup, { size, product });
|
|
6812
7060
|
const navigation = nav.length > 0 ? /* @__PURE__ */ jsx("nav", { "aria-label": "Main", className: "hidden items-center gap-1 md:flex", children: nav.map(
|
|
6813
7061
|
(n) => n.children?.length ? /* @__PURE__ */ jsx(NavDropdown, { item: n }, n.href) : (
|
|
6814
7062
|
// Between md and lg the family menu and the actions share the row: tighter.
|
|
@@ -6836,7 +7084,7 @@ function SiteHeader({
|
|
|
6836
7084
|
),
|
|
6837
7085
|
children: [
|
|
6838
7086
|
/* @__PURE__ */ jsxs("div", { className: cn("flex min-w-0 items-center gap-1", tool ? "md:gap-1" : "justify-self-start"), children: [
|
|
6839
|
-
/* @__PURE__ */ jsxs(
|
|
7087
|
+
/* @__PURE__ */ jsxs(Link7, { href: home, className: "-ml-1 min-w-0 rounded-lg p-1", children: [
|
|
6840
7088
|
brandNode,
|
|
6841
7089
|
/* @__PURE__ */ jsx("span", { className: "sr-only", children: " home" })
|
|
6842
7090
|
] }),
|
|
@@ -6938,7 +7186,7 @@ function SiteBanner({
|
|
|
6938
7186
|
var FOOT_LINK = "inline-flex min-h-11 items-center transition-colors hover:text-foreground md:min-h-0";
|
|
6939
7187
|
function LegalRow({ links }) {
|
|
6940
7188
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-x-6 gap-y-2 sm:flex-row sm:items-center sm:justify-between", children: [
|
|
6941
|
-
/* @__PURE__ */ jsx("nav", { "aria-label": "Legal", children: /* @__PURE__ */ jsx("ul", { className: "flex flex-wrap gap-x-5", children: links.map((l) => /* @__PURE__ */ jsx("li", { children: l.href.startsWith("/") ? /* @__PURE__ */ jsx(
|
|
7189
|
+
/* @__PURE__ */ jsx("nav", { "aria-label": "Legal", children: /* @__PURE__ */ jsx("ul", { className: "flex flex-wrap gap-x-5", children: links.map((l, i) => /* @__PURE__ */ jsx("li", { children: l.href.startsWith("/") ? /* @__PURE__ */ jsx(Link7, { href: l.href, className: FOOT_LINK, children: l.label }) : /* @__PURE__ */ jsx("a", { href: l.href, className: FOOT_LINK, children: l.label }) }, `${i}:${l.label}`)) }) }),
|
|
6942
7190
|
/* @__PURE__ */ jsxs("p", { children: [
|
|
6943
7191
|
"\xA9 ",
|
|
6944
7192
|
(/* @__PURE__ */ new Date()).getFullYear(),
|
|
@@ -6958,16 +7206,26 @@ function SiteFooter({
|
|
|
6958
7206
|
}) {
|
|
6959
7207
|
const legalLinks = legal === true ? LEGAL_LINKS : legal || null;
|
|
6960
7208
|
if (compact) {
|
|
6961
|
-
return
|
|
6962
|
-
|
|
6963
|
-
|
|
6964
|
-
|
|
6965
|
-
|
|
6966
|
-
|
|
6967
|
-
|
|
6968
|
-
|
|
6969
|
-
|
|
6970
|
-
|
|
7209
|
+
return (
|
|
7210
|
+
// The tools' column (ToolColumn): the lockup lines up with the page's title.
|
|
7211
|
+
/* @__PURE__ */ jsx("footer", { className: cn("border-t border-border bg-background px-4 text-[0.875rem] text-muted-foreground md:px-8", className), children: /* @__PURE__ */ 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: [
|
|
7212
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-x-6 gap-y-3", children: [
|
|
7213
|
+
/* @__PURE__ */ jsx(
|
|
7214
|
+
"a",
|
|
7215
|
+
{
|
|
7216
|
+
href: OCHK_IO,
|
|
7217
|
+
className: "relative rounded-lg text-foreground before:absolute before:inset-x-0 before:top-1/2 before:h-11 before:-translate-y-1/2",
|
|
7218
|
+
children: /* @__PURE__ */ jsx(Lockup, { size: 22 })
|
|
7219
|
+
}
|
|
7220
|
+
),
|
|
7221
|
+
family ? /* @__PURE__ */ jsx("nav", { "aria-label": "Protocols", children: /* @__PURE__ */ jsx("ul", { className: "flex flex-wrap gap-x-4", children: PROTOCOLS.map((p) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", { href: p.pageHref, className: FOOT_LINK, children: p.label }) }, p.slug)) }) }) : null
|
|
7222
|
+
] }),
|
|
7223
|
+
legalLinks || meta ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-x-6 gap-y-2 sm:flex-row sm:flex-wrap sm:items-center", children: [
|
|
7224
|
+
legalLinks ? /* @__PURE__ */ jsx(LegalRow, { links: legalLinks }) : null,
|
|
7225
|
+
meta
|
|
7226
|
+
] }) : null
|
|
7227
|
+
] }) })
|
|
7228
|
+
);
|
|
6971
7229
|
}
|
|
6972
7230
|
const cols = [
|
|
6973
7231
|
...columns,
|
|
@@ -7002,17 +7260,17 @@ function SiteFooter({
|
|
|
7002
7260
|
className: cn("flex min-w-0 flex-col gap-1", spans && "col-span-2 md:col-span-1"),
|
|
7003
7261
|
children: [
|
|
7004
7262
|
/* @__PURE__ */ jsx("p", { className: "mb-2 text-[0.875rem] font-medium", children: col.heading }),
|
|
7005
|
-
/* @__PURE__ */ 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__ */ jsx(
|
|
7263
|
+
/* @__PURE__ */ 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__ */ jsx(
|
|
7006
7264
|
NavLink,
|
|
7007
7265
|
{
|
|
7008
7266
|
item: l,
|
|
7009
7267
|
className: "-mx-3 py-2.5 text-[0.9375rem] md:py-1.5"
|
|
7010
7268
|
},
|
|
7011
|
-
l.
|
|
7269
|
+
`${j}:${l.label}`
|
|
7012
7270
|
)) })
|
|
7013
7271
|
]
|
|
7014
7272
|
},
|
|
7015
|
-
col.heading
|
|
7273
|
+
`${i}:${col.heading}`
|
|
7016
7274
|
);
|
|
7017
7275
|
})
|
|
7018
7276
|
]
|
|
@@ -7048,12 +7306,13 @@ function OchkIoFooter({ columns = OCHK_IO_FOOTER, className }) {
|
|
|
7048
7306
|
);
|
|
7049
7307
|
}
|
|
7050
7308
|
function SignInFrame({
|
|
7051
|
-
title =
|
|
7309
|
+
title = SIGN_IN_LABEL,
|
|
7052
7310
|
lead,
|
|
7053
7311
|
children,
|
|
7054
7312
|
error,
|
|
7055
7313
|
fineprint,
|
|
7056
7314
|
brand,
|
|
7315
|
+
product,
|
|
7057
7316
|
home,
|
|
7058
7317
|
protocol: protocol2,
|
|
7059
7318
|
back,
|
|
@@ -7070,12 +7329,12 @@ function SignInFrame({
|
|
|
7070
7329
|
children: [
|
|
7071
7330
|
/* @__PURE__ */ jsxs("section", { className: "flex flex-col px-4 pb-8 pt-5 sm:px-8 lg:px-14 lg:pt-8", children: [
|
|
7072
7331
|
/* @__PURE__ */ jsxs("header", { className: "flex items-center justify-between gap-4", children: [
|
|
7073
|
-
/* @__PURE__ */ jsxs(
|
|
7074
|
-
brand ?? /* @__PURE__ */ jsx(
|
|
7332
|
+
/* @__PURE__ */ jsxs(Link7, { href: homeHref, className: "w-fit rounded-lg", children: [
|
|
7333
|
+
brand ?? /* @__PURE__ */ jsx(ProductLockup, { size: 28, product: product ?? (protocol2 ? protocolSite(protocol2).label : void 0) }),
|
|
7075
7334
|
/* @__PURE__ */ jsx("span", { className: "sr-only", children: " home" })
|
|
7076
7335
|
] }),
|
|
7077
7336
|
back === void 0 ? /* @__PURE__ */ jsx(
|
|
7078
|
-
|
|
7337
|
+
Link7,
|
|
7079
7338
|
{
|
|
7080
7339
|
href: homeHref,
|
|
7081
7340
|
className: "text-[0.9375rem] text-muted-foreground underline-offset-4 hover:text-foreground hover:underline",
|
|
@@ -7170,7 +7429,7 @@ function DocsNav({
|
|
|
7170
7429
|
const on = pathOf(item.href) === here;
|
|
7171
7430
|
const badge = typeof item.badge === "string" && STATUS_WORDS.has(item.badge) ? /* @__PURE__ */ jsx(StatusBadge, { status: item.badge }) : item.badge ? /* @__PURE__ */ jsx(Badge, { tone: "muted", children: item.badge }) : null;
|
|
7172
7431
|
return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
|
|
7173
|
-
|
|
7432
|
+
Link7,
|
|
7174
7433
|
{
|
|
7175
7434
|
href: item.href,
|
|
7176
7435
|
ref: on ? activeRef : void 0,
|
|
@@ -7282,7 +7541,7 @@ function SessionAccountView({
|
|
|
7282
7541
|
items = [],
|
|
7283
7542
|
signInHref,
|
|
7284
7543
|
signInPath,
|
|
7285
|
-
signInLabel =
|
|
7544
|
+
signInLabel = SIGN_IN_LABEL,
|
|
7286
7545
|
accountHref = OCHK_APP_ACCOUNT,
|
|
7287
7546
|
onSignOut,
|
|
7288
7547
|
nameFrom = "lg"
|
|
@@ -7313,6 +7572,13 @@ function SessionAccountView({
|
|
|
7313
7572
|
/* @__PURE__ */ jsx("span", { className: state === "checking" ? "contents invisible" : "contents", "aria-hidden": state === "checking" || void 0, children: /* @__PURE__ */ jsx(Button, { asChild: true, size: "sm", variant: "secondary", tabIndex: state === "checking" ? -1 : void 0, children: /* @__PURE__ */ jsx("a", { href: signInHref ?? inPlace ?? "https://ochk.io/signin", children: signInLabel }) }) })
|
|
7314
7573
|
);
|
|
7315
7574
|
}
|
|
7575
|
+
function ToolColumn({
|
|
7576
|
+
measure = "wide",
|
|
7577
|
+
className,
|
|
7578
|
+
children
|
|
7579
|
+
}) {
|
|
7580
|
+
return /* @__PURE__ */ jsx("div", { className: cn("px-4 pb-16 pt-8 md:px-8 md:pt-10", className), children: /* @__PURE__ */ jsx("div", { className: "mx-auto w-full max-w-[72rem]", children: /* @__PURE__ */ jsx(InColumnContext.Provider, { value: true, children: measure === "narrow" ? /* @__PURE__ */ jsx("div", { className: "max-w-[48rem]", children }) : children }) }) });
|
|
7581
|
+
}
|
|
7316
7582
|
function ToolShell({
|
|
7317
7583
|
protocol: protocol2,
|
|
7318
7584
|
tools,
|
|
@@ -7321,6 +7587,7 @@ function ToolShell({
|
|
|
7321
7587
|
rail = false,
|
|
7322
7588
|
railFooter,
|
|
7323
7589
|
variant = "tool",
|
|
7590
|
+
measure = "wide",
|
|
7324
7591
|
banner,
|
|
7325
7592
|
footer,
|
|
7326
7593
|
children
|
|
@@ -7378,14 +7645,7 @@ function ToolShell({
|
|
|
7378
7645
|
/* @__PURE__ */ jsx(SideNav, { groups: [{ label: "Tools", items: tools.map(({ href, label, icon, active }) => ({ href, label, icon, active })) }] }),
|
|
7379
7646
|
railFooter ? /* @__PURE__ */ 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
|
|
7380
7647
|
] }) : null,
|
|
7381
|
-
/* @__PURE__ */ jsx(
|
|
7382
|
-
"main",
|
|
7383
|
-
{
|
|
7384
|
-
id: "main-content",
|
|
7385
|
-
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"),
|
|
7386
|
-
children: /* @__PURE__ */ jsx(SiteHomeContext.Provider, { value: homeHref, children: app ? children : /* @__PURE__ */ jsx("div", { className: "mx-auto w-full max-w-[72rem]", children }) })
|
|
7387
|
-
}
|
|
7388
|
-
)
|
|
7648
|
+
/* @__PURE__ */ jsx("main", { id: "main-content", className: cn("min-w-0 flex-1", app && "flex min-h-0 flex-col"), children: /* @__PURE__ */ jsx(SiteHomeContext.Provider, { value: homeHref, children: app ? children : /* @__PURE__ */ jsx(ToolColumn, { measure, children }) }) })
|
|
7389
7649
|
] }),
|
|
7390
7650
|
app || footer === false ? null : footer ?? /* @__PURE__ */ jsx(SiteFooter, { compact: true, family: true, legal: true }),
|
|
7391
7651
|
tabs ? /* @__PURE__ */ jsx(TabBar, { items: tabs }) : null
|
|
@@ -7562,6 +7822,6 @@ function createMdxComponents({ mermaid } = {}) {
|
|
|
7562
7822
|
}
|
|
7563
7823
|
var mdxComponents = createMdxComponents();
|
|
7564
7824
|
|
|
7565
|
-
export { APP_ATTRIBUTE, APP_ID, Accent, Accordion, AccordionItem, AccountMenu, ActivityList, AnchorStatus, ApiTable, AppCard, AppGrid, AppIcon, AppShell, ArtifactView, Badge, BlockCountdown, BlockHeight, Breadcrumbs, BrowserFrame, Button, CODE_LANGS, Callout, Card, CardContent, CardDescription, CardFooter, CardGrid, CardHeader, CardNumeral, CardTitle, ChartFrame, Checkbox, Closing, CodeBlock, CodeTabs, CommandDialog, ComparisonTable, Container, CopyButton, CountdownRing, Crowd, DOCS_HEADER_NAV, DOCS_HREF, DataTable, DensityProvider, Diagram, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogHost, DialogTitle, DialogTrigger, Display, DocHeader, DocLayout, DocsHeading, DocsNav, DocsPager, DocsShell, DropZone, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EmptyLine, EmptyState, EndpointList, ErrorBoundary, ErrorPage, Eyebrow, FAMILY, FAMILY_GROUPS, FactBlock, FactRows, FamilyMenu, Faq, Field, FilterChips, FloatChip, Footnote, FormSection, HalftoneCanvas, HalftoneSphere, HashChip, HudCard, Input, InstallTabs, IsoCheck, Kbd, KeyValueList, LEGAL_LINKS, Label, Lead, LegalDocument, LinkCard, LoadingBlock, LockedPreview, Lockup, MARK_FACES, Mark, MdxTable, Meter, Monogram, Notice, OCHK_APP_ACCOUNT, OCHK_IO, OCHK_IO_FOOTER, OCHK_IO_NAV, OchkIoFooter, OnThisPage, PROTOCOLS, PROTOCOL_ORDER, PackageCard, PageHeader, PageHero, Pagination, Panel, PhoneFrame, PlanCard, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, ProgressSteps, ProofStrip, Prose, ProtocolGrid, ProtocolHero, ProtocolNav, QrCode, RadioGroup, RadioGroupItem, Reveal, SELF_HOSTED_LEGAL_LINKS, SPHERE_GRADIENT, Sats, SatsFigure, ScrollFade, ScrollStory, SearchButton, SearchDialog, Section, SectionHeading, SectionIntro, Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, Separator, SessionAccountView, Sheet, SheetClose, SheetContent, SheetDescription, SheetTitle, SheetTrigger, ShellContext, SignInFrame, SignMessage, SiteBanner, SiteFooter, SiteHeader, Skeleton, SkipLink, SourceNote, Sparkline, SpecCard, Spinner, SplitBar, StatCard, StatGrid, StateBadge, StatusBadge, StatusDot, StatusPill, Step, StepGrid, Steps, Switch, TOKEN_CLASS, Tabs, TabsContent, TabsList, TabsTrigger, TextLink, Textarea, ThemeToggle, Ticker, Toaster, ToolGrid, ToolShell, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TruthTable, UsdApprox, VerifyBox, VerifyReport, appColors, appFonts, badgeVariants, blocksToDuration, buttonVariants, cardVariants, chartColor, cn, confirm, createMdxComponents, createStateBadge, darkPalette, escapeHtml, explorerUrl, familyByGroup, familySite, formatBlockHeight, formatBytes, formatUtc, grammarOf, highlight, highlightToHtml, languageName, lightPalette, linesToHtml, mdxComponents, monogramGround, monogramLetter, parseCodeMeta, parseLineRanges, portraitTone, prompt, protocolSite, readDiff, rehypeCode, satsText, sectionVariants, shortenMiddle, statusWord, useActiveHeading, useCopy, useDensity, useHeadings, useInView, useShellPlace, useSignInHref, useTimedOut };
|
|
7825
|
+
export { APP_ATTRIBUTE, APP_ID, Accent, Accordion, AccordionItem, AccountCta, AccountMenu, ActivityList, AnchorStatus, ApiTable, AppCard, AppGrid, AppIcon, AppShell, ArtifactView, Avatar, Badge, BlockCountdown, BlockHeight, Breadcrumbs, BrowserFrame, Button, CODE_LANGS, Callout, Card, CardContent, CardDescription, CardFooter, CardGrid, CardHeader, CardNumeral, CardTitle, ChartFrame, Checkbox, ChoiceCard, ChoiceGroup, Closing, CodeBlock, CodeTabs, CommandDialog, ComparisonTable, Container, CopyButton, CountdownRing, Crowd, DOCS_HEADER_NAV, DOCS_HREF, DataTable, DensityProvider, Diagram, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogHost, DialogTitle, DialogTrigger, Display, DocHeader, DocLayout, DocsHeading, DocsNav, DocsPager, DocsShell, DropZone, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EmptyLine, EmptyState, EndpointList, ErrorBoundary, ErrorPage, Eyebrow, FAMILY, FAMILY_GROUPS, FactBlock, FactRows, FamilyMenu, Faq, Field, FilterChips, FloatChip, Footnote, FormSection, GET_AN_ACCOUNT, HalftoneCanvas, HalftoneSphere, HashChip, HudCard, Input, InstallTabs, IsoCheck, Kbd, KeyValueList, LEGAL_LINKS, Label, Lead, LegalDocument, LinkCard, ListCard, ListRow, LoadingBlock, LockedPreview, Lockup, MARK_FACES, Mark, MdxTable, Meter, Monogram, Notice, OCHK_APP, OCHK_APP_ACCOUNT, OCHK_IO, OCHK_IO_FOOTER, OCHK_IO_NAV, OchkIoFooter, OnThisPage, PROTOCOLS, PROTOCOL_ORDER, PackageCard, PageHeader, PageHero, Pagination, PaneHeader, Panel, PhoneFrame, PlanCard, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, ProgressSteps, ProofStrip, Prose, ProtocolGrid, ProtocolHero, ProtocolNav, QrCode, RadioGroup, RadioGroupItem, Reveal, SELF_HOSTED_LEGAL_LINKS, SIGN_IN_LABEL, SPHERE_GRADIENT, Sats, SatsFigure, ScrollFade, ScrollStory, SearchButton, SearchDialog, Section, SectionHeading, SectionIntro, SectionTitle, Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, Separator, SessionAccountView, Sheet, SheetClose, SheetContent, SheetDescription, SheetTitle, SheetTrigger, ShellContext, SignInFrame, SignMessage, SiteBanner, SiteFooter, SiteHeader, Skeleton, SkipLink, SourceNote, Sparkline, SpecCard, Spinner, SplitBar, StatCard, StatGrid, StateBadge, StatusBadge, StatusDot, StatusPill, Step, StepGrid, Steps, Switch, TOKEN_CLASS, Tabs, TabsContent, TabsList, TabsTrigger, TextLink, Textarea, ThemeToggle, Ticker, Toaster, ToolColumn, ToolGrid, ToolShell, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TruthTable, UsdApprox, VerifyBox, VerifyReport, appColors, appFonts, badgeVariants, blocksToDuration, buttonVariants, cardVariants, chartColor, cn, confirm, createMdxComponents, createStateBadge, darkPalette, escapeHtml, explorerUrl, familyByGroup, familySite, formatBlockHeight, formatBytes, formatUtc, grammarOf, highlight, highlightToHtml, languageName, lightPalette, linesToHtml, mdxComponents, monogramGround, monogramLetter, parseCodeMeta, parseLineRanges, portraitTone, prompt, protocolSite, readDiff, rehypeCode, satsText, sectionVariants, shortenMiddle, statusWord, useActiveHeading, useCopy, useDensity, useHeadings, useInView, useShellPlace, useSignInHref, useTimedOut };
|
|
7566
7826
|
//# sourceMappingURL=index.mjs.map
|
|
7567
7827
|
//# sourceMappingURL=index.mjs.map
|