@orangecheck/app-design 1.6.1 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/chrome.d.mts +11 -6
- package/dist/chrome.d.ts +11 -6
- package/dist/chrome.js +156 -130
- package/dist/chrome.js.map +1 -1
- package/dist/chrome.mjs +155 -131
- package/dist/chrome.mjs.map +1 -1
- package/dist/components.d.mts +40 -5
- package/dist/components.d.ts +40 -5
- package/dist/components.js +135 -13
- package/dist/components.js.map +1 -1
- package/dist/components.mjs +132 -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 +197 -48
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +189 -49
- 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 +5 -3
- package/dist/mdx.js.map +1 -1
- package/dist/mdx.mjs +5 -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 +122 -1
- package/dist/session.js.map +1 -1
- package/dist/session.mjs +122 -1
- 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 +5 -0
- package/dist/{tool-shell-CQZNRUgH.d.mts → tool-shell-CnZ3NUSi.d.ts} +10 -4
- package/dist/{tool-shell-CRmceGrV.d.ts → tool-shell-DQFEMLLe.d.mts} +10 -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 +5 -2
package/dist/index.js
CHANGED
|
@@ -956,7 +956,8 @@ function ScrollFade({ fade = "var(--card)", className, innerClassName, children,
|
|
|
956
956
|
onScroll: measure,
|
|
957
957
|
tabIndex: edges.left || edges.right ? 0 : void 0,
|
|
958
958
|
className: cn(
|
|
959
|
-
|
|
959
|
+
// Positioned, so sr-only text deep in a wide row scrolls and clips with the row.
|
|
960
|
+
"relative overflow-x-auto overscroll-x-contain rounded-[inherit] outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
960
961
|
innerClassName
|
|
961
962
|
),
|
|
962
963
|
children
|
|
@@ -2201,7 +2202,7 @@ var JS_TAG = /<\/?(?=[A-Za-z])/y;
|
|
|
2201
2202
|
var JS_TAG_NAME = /[A-Za-z][\w$.:-]*/y;
|
|
2202
2203
|
var JS_PUNCT = /=>|\.\.\.|[{}()[\];,.<>=+\-*/%!?:&|^~#]/y;
|
|
2203
2204
|
var JSX_BEFORE = /* @__PURE__ */ new Set(["(", ",", "=", "?", ":", "{", "[", ";", ">", "&&", "||", "=>", "return"]);
|
|
2204
|
-
function scanJs(src, emit2,
|
|
2205
|
+
function scanJs(src, emit2, jsx53) {
|
|
2205
2206
|
let i = 0;
|
|
2206
2207
|
let prev = "";
|
|
2207
2208
|
let tagDepth = 0;
|
|
@@ -2227,7 +2228,7 @@ function scanJs(src, emit2, jsx52) {
|
|
|
2227
2228
|
sig('"');
|
|
2228
2229
|
continue;
|
|
2229
2230
|
}
|
|
2230
|
-
if (
|
|
2231
|
+
if (jsx53 && tagDepth === 0 && (m = at(JS_TAG, src, i)) && (prev === "" || JSX_BEFORE.has(prev))) {
|
|
2231
2232
|
const name = at(JS_TAG_NAME, src, i + m.length);
|
|
2232
2233
|
if (name) {
|
|
2233
2234
|
emit2(m);
|
|
@@ -2239,7 +2240,7 @@ function scanJs(src, emit2, jsx52) {
|
|
|
2239
2240
|
continue;
|
|
2240
2241
|
}
|
|
2241
2242
|
}
|
|
2242
|
-
if (
|
|
2243
|
+
if (jsx53 && tagDepth > 0 && braceInTag === 0) {
|
|
2243
2244
|
if (src.startsWith("/>", i) || src[i] === ">") {
|
|
2244
2245
|
const close = src[i] === ">" ? ">" : "/>";
|
|
2245
2246
|
emit2(close);
|
|
@@ -2259,7 +2260,7 @@ function scanJs(src, emit2, jsx52) {
|
|
|
2259
2260
|
continue;
|
|
2260
2261
|
}
|
|
2261
2262
|
if (src[i] === "{") braceInTag = 1;
|
|
2262
|
-
} else if (
|
|
2263
|
+
} else if (jsx53 && tagDepth > 0 && braceInTag > 0) {
|
|
2263
2264
|
if (src[i] === "{") braceInTag++;
|
|
2264
2265
|
else if (src[i] === "}") braceInTag--;
|
|
2265
2266
|
}
|
|
@@ -3287,7 +3288,7 @@ function Well({
|
|
|
3287
3288
|
] });
|
|
3288
3289
|
}
|
|
3289
3290
|
var FRAME = "overflow-hidden rounded-[1.25rem] border border-[var(--oca-code-line)] bg-[var(--oca-code-surface)]";
|
|
3290
|
-
var COPY_ON_INK = "text-oca-ink-subtle hover:bg-white/10 hover:text-white";
|
|
3291
|
+
var COPY_ON_INK = "text-oca-ink-subtle hover:bg-white/10 hover:text-white max-md:size-11";
|
|
3291
3292
|
function CodeBlock({
|
|
3292
3293
|
code,
|
|
3293
3294
|
html,
|
|
@@ -3715,6 +3716,9 @@ var GROUNDS = [
|
|
|
3715
3716
|
}
|
|
3716
3717
|
];
|
|
3717
3718
|
var SIZES = {
|
|
3719
|
+
// A list row's avatar, a facepile.
|
|
3720
|
+
"2xs": "size-7 rounded-[0.55rem] text-[0.75rem]",
|
|
3721
|
+
xs: "size-8 rounded-[0.6rem] text-[0.875rem]",
|
|
3718
3722
|
sm: "size-9 rounded-[0.7rem] text-[0.9375rem]",
|
|
3719
3723
|
md: "size-11 rounded-[0.85rem] text-[1.125rem]",
|
|
3720
3724
|
lg: "size-14 rounded-[1.05rem] text-[1.5rem]"
|
|
@@ -3802,6 +3806,9 @@ var ErrorBoundary = class extends react.Component {
|
|
|
3802
3806
|
// src/family/index.ts
|
|
3803
3807
|
var OCHK_IO = "https://ochk.io";
|
|
3804
3808
|
var DOCS_HREF = `${OCHK_IO}/docs`;
|
|
3809
|
+
var OCHK_APP = "https://ochk.app";
|
|
3810
|
+
var GET_AN_ACCOUNT = { href: OCHK_APP, label: "Get an account" };
|
|
3811
|
+
var SIGN_IN_LABEL = "Sign in";
|
|
3805
3812
|
function protocol(slug, verb, line, kinds) {
|
|
3806
3813
|
return {
|
|
3807
3814
|
slug,
|
|
@@ -3838,7 +3845,7 @@ var FAMILY = [
|
|
|
3838
3845
|
{
|
|
3839
3846
|
slug: "me",
|
|
3840
3847
|
label: "ochk.app",
|
|
3841
|
-
href:
|
|
3848
|
+
href: OCHK_APP,
|
|
3842
3849
|
group: "orangecheck",
|
|
3843
3850
|
line: "One account, with Bitcoin behind it.",
|
|
3844
3851
|
status: "testing"
|
|
@@ -3957,6 +3964,10 @@ var OCHK_IO_FOOTER = [
|
|
|
3957
3964
|
]
|
|
3958
3965
|
}
|
|
3959
3966
|
];
|
|
3967
|
+
var InColumnContext = sharedContext("in-column", false);
|
|
3968
|
+
function useInColumn() {
|
|
3969
|
+
return react.useContext(InColumnContext);
|
|
3970
|
+
}
|
|
3960
3971
|
var SiteHomeContext = sharedContext("site-home", void 0);
|
|
3961
3972
|
function useSiteHome() {
|
|
3962
3973
|
return react.useContext(SiteHomeContext);
|
|
@@ -3984,10 +3995,11 @@ function ErrorPage({
|
|
|
3984
3995
|
className
|
|
3985
3996
|
}) {
|
|
3986
3997
|
const shellHome = useSiteHome();
|
|
3998
|
+
const inColumn = useInColumn();
|
|
3987
3999
|
const homeHref = home ?? (protocol2 ? protocolSite(protocol2).pageHref : shellHome ?? OCHK_IO);
|
|
3988
4000
|
const words = WORDS[code] ?? (code >= 500 ? WORDS[500] : WORDS[404]);
|
|
3989
4001
|
const server = code >= 500;
|
|
3990
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Section, { space: "none", className: cn("flex min-h-[min(40rem,72dvh)] items-center py-16 md:py-24", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 items-center gap-12 md:grid-cols-12", children: [
|
|
4002
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Section, { space: "none", contained: !inColumn, className: cn("flex min-h-[min(40rem,72dvh)] items-center py-16 md:py-24", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 items-center gap-12 md:grid-cols-12", children: [
|
|
3991
4003
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex max-w-[40rem] flex-col items-start gap-6 md:col-span-7", children: [
|
|
3992
4004
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "oca-eyebrow oca-enter", children: [
|
|
3993
4005
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "oca-tabular", children: code }),
|
|
@@ -4244,7 +4256,7 @@ function Panel({
|
|
|
4244
4256
|
const [open, setOpen] = react.useState(false);
|
|
4245
4257
|
const body = (expanded) => typeof children === "function" ? children(expanded) : children;
|
|
4246
4258
|
const head = (expanded) => /* @__PURE__ */ jsxRuntime.jsxs("header", { className: "flex flex-wrap items-start justify-between gap-x-4 gap-y-2", children: [
|
|
4247
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-1", children: [
|
|
4259
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-[min(100%,12rem)] flex-1 basis-0 flex-col gap-1", children: [
|
|
4248
4260
|
expanded ? /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: "text-[1.0625rem] font-medium leading-snug", children: title }) : /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-[1rem] font-medium leading-snug", children: title }),
|
|
4249
4261
|
description ? expanded ? /* @__PURE__ */ jsxRuntime.jsx(DialogDescription, { className: "text-[0.875rem] leading-snug text-muted-foreground", children: description }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[0.875rem] leading-snug text-muted-foreground", children: description }) : null
|
|
4250
4262
|
] }),
|
|
@@ -4273,7 +4285,7 @@ function Panel({
|
|
|
4273
4285
|
className: "flex h-[min(92dvh,56rem)] w-[min(96vw,80rem)] max-w-none flex-col gap-4 overflow-y-auto",
|
|
4274
4286
|
children: [
|
|
4275
4287
|
head(true),
|
|
4276
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 min-w-0 flex-1", children: open ? body(true) : null }),
|
|
4288
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 min-w-0 flex-1 overflow-y-auto", children: open ? body(true) : null }),
|
|
4277
4289
|
source ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-t border-border pt-3", children: source }) : null
|
|
4278
4290
|
]
|
|
4279
4291
|
}
|
|
@@ -5423,6 +5435,112 @@ function SignMessage({
|
|
|
5423
5435
|
)
|
|
5424
5436
|
] });
|
|
5425
5437
|
}
|
|
5438
|
+
function SectionTitle({
|
|
5439
|
+
title,
|
|
5440
|
+
meta,
|
|
5441
|
+
description,
|
|
5442
|
+
action,
|
|
5443
|
+
as: Tag = "h2",
|
|
5444
|
+
size = "md",
|
|
5445
|
+
tone = "default",
|
|
5446
|
+
id,
|
|
5447
|
+
className
|
|
5448
|
+
}) {
|
|
5449
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-wrap items-end justify-between gap-x-4 gap-y-3", className), children: [
|
|
5450
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 max-w-[40rem] flex-[1_1_16rem] flex-col gap-1", children: [
|
|
5451
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5452
|
+
Tag,
|
|
5453
|
+
{
|
|
5454
|
+
id,
|
|
5455
|
+
className: cn(
|
|
5456
|
+
"flex scroll-mt-24 flex-wrap items-baseline gap-x-3",
|
|
5457
|
+
size === "sm" ? "oca-title-sm" : "oca-title",
|
|
5458
|
+
tone === "danger" && "text-destructive"
|
|
5459
|
+
),
|
|
5460
|
+
children: [
|
|
5461
|
+
title,
|
|
5462
|
+
meta ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "oca-tabular text-[0.875rem] font-normal tracking-normal text-muted-foreground", children: meta }) : null
|
|
5463
|
+
]
|
|
5464
|
+
}
|
|
5465
|
+
),
|
|
5466
|
+
description ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[0.9375rem] leading-relaxed text-muted-foreground", children: description }) : null
|
|
5467
|
+
] }),
|
|
5468
|
+
action ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: action }) : null
|
|
5469
|
+
] });
|
|
5470
|
+
}
|
|
5471
|
+
function ListCard({
|
|
5472
|
+
as: Tag = "ul",
|
|
5473
|
+
className,
|
|
5474
|
+
...props
|
|
5475
|
+
}) {
|
|
5476
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Tag, { className: cn("divide-y divide-border overflow-clip rounded-[1.25rem] border border-border bg-card", className), ...props });
|
|
5477
|
+
}
|
|
5478
|
+
var ChoiceSize = react.createContext("md");
|
|
5479
|
+
var COLUMNS = { 1: "", 2: "sm:grid-cols-2", 3: "sm:grid-cols-2 lg:grid-cols-3" };
|
|
5480
|
+
function ChoiceGroup({
|
|
5481
|
+
value,
|
|
5482
|
+
onValueChange,
|
|
5483
|
+
label,
|
|
5484
|
+
columns = 1,
|
|
5485
|
+
size = "md",
|
|
5486
|
+
disabled,
|
|
5487
|
+
className,
|
|
5488
|
+
children
|
|
5489
|
+
}) {
|
|
5490
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ChoiceSize.Provider, { value: size, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5491
|
+
RadioGroupPrimitive__namespace.Root,
|
|
5492
|
+
{
|
|
5493
|
+
value: value ?? "",
|
|
5494
|
+
onValueChange: (v) => onValueChange(v),
|
|
5495
|
+
"aria-label": label,
|
|
5496
|
+
disabled,
|
|
5497
|
+
className: cn("grid", size === "sm" ? "gap-1.5" : "gap-3", COLUMNS[columns], className),
|
|
5498
|
+
children
|
|
5499
|
+
}
|
|
5500
|
+
) });
|
|
5501
|
+
}
|
|
5502
|
+
function ChoiceCard({
|
|
5503
|
+
value,
|
|
5504
|
+
title,
|
|
5505
|
+
description,
|
|
5506
|
+
icon,
|
|
5507
|
+
disabled,
|
|
5508
|
+
className
|
|
5509
|
+
}) {
|
|
5510
|
+
const sm = react.useContext(ChoiceSize) === "sm";
|
|
5511
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5512
|
+
RadioGroupPrimitive__namespace.Item,
|
|
5513
|
+
{
|
|
5514
|
+
value,
|
|
5515
|
+
disabled,
|
|
5516
|
+
className: cn(
|
|
5517
|
+
"group flex w-full min-w-0 items-start gap-3 border text-left outline-none transition-colors",
|
|
5518
|
+
"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
5519
|
+
"border-border bg-card data-[state=checked]:border-foreground data-[state=checked]:bg-accent data-[state=unchecked]:hover:border-oca-hairline-strong",
|
|
5520
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
5521
|
+
sm ? "min-h-11 rounded-xl px-3.5 py-2.5" : "rounded-[1.25rem] p-5",
|
|
5522
|
+
className
|
|
5523
|
+
),
|
|
5524
|
+
children: [
|
|
5525
|
+
icon ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5526
|
+
"span",
|
|
5527
|
+
{
|
|
5528
|
+
"aria-hidden": true,
|
|
5529
|
+
className: cn(
|
|
5530
|
+
"shrink-0 text-muted-foreground group-data-[state=checked]:text-oca-accent-ink [&_svg]:size-full",
|
|
5531
|
+
sm ? "mt-0.5 size-4" : "size-6"
|
|
5532
|
+
),
|
|
5533
|
+
children: icon
|
|
5534
|
+
}
|
|
5535
|
+
) : null,
|
|
5536
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-col gap-1", children: [
|
|
5537
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: sm ? "text-[0.9375rem] font-medium" : "oca-title-sm", children: title }),
|
|
5538
|
+
description ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[0.875rem] leading-relaxed text-muted-foreground", children: description }) : null
|
|
5539
|
+
] })
|
|
5540
|
+
]
|
|
5541
|
+
}
|
|
5542
|
+
);
|
|
5543
|
+
}
|
|
5426
5544
|
function useMacKeys() {
|
|
5427
5545
|
const [mac, setMac] = react.useState(true);
|
|
5428
5546
|
react.useEffect(() => {
|
|
@@ -5698,7 +5816,7 @@ function download(content, filename, mime) {
|
|
|
5698
5816
|
a.remove();
|
|
5699
5817
|
setTimeout(() => URL.revokeObjectURL(url), 0);
|
|
5700
5818
|
}
|
|
5701
|
-
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";
|
|
5819
|
+
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";
|
|
5702
5820
|
function ArtifactView({
|
|
5703
5821
|
content,
|
|
5704
5822
|
title,
|
|
@@ -5728,7 +5846,8 @@ function ArtifactView({
|
|
|
5728
5846
|
"aria-pressed": view === v,
|
|
5729
5847
|
onClick: () => setView(v),
|
|
5730
5848
|
className: cn(
|
|
5731
|
-
|
|
5849
|
+
// The pill stays 28px; its target reaches the bar's 44.
|
|
5850
|
+
"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",
|
|
5732
5851
|
view === v ? "bg-white/[0.12] text-white" : "text-oca-ink-subtle hover:text-white"
|
|
5733
5852
|
),
|
|
5734
5853
|
children: v === "formatted" ? "Formatted" : "Raw"
|
|
@@ -6198,7 +6317,8 @@ function FilterChips({
|
|
|
6198
6317
|
onClick: () => press(o.value),
|
|
6199
6318
|
className: cn(
|
|
6200
6319
|
"inline-flex shrink-0 items-center gap-1.5 rounded-full border px-3.5 text-[0.875rem] transition-colors",
|
|
6201
|
-
|
|
6320
|
+
// A thumb's 44px on a phone.
|
|
6321
|
+
tight ? "h-11 md:h-8" : "h-11 md:h-9",
|
|
6202
6322
|
on ? "border-foreground bg-foreground text-background" : "border-border bg-card text-muted-foreground hover:border-oca-hairline-strong hover:text-foreground"
|
|
6203
6323
|
),
|
|
6204
6324
|
children: [
|
|
@@ -6622,7 +6742,7 @@ function SidebarShell({
|
|
|
6622
6742
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
6623
6743
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden h-[4.5rem] items-center justify-end gap-3 px-8 lg:flex", children: account }),
|
|
6624
6744
|
banner ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pb-2 pt-4 md:px-8 lg:pt-0", children: banner }) : null,
|
|
6625
|
-
/* @__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 }) })
|
|
6745
|
+
/* @__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 }) }) })
|
|
6626
6746
|
] })
|
|
6627
6747
|
] }),
|
|
6628
6748
|
tabs ? /* @__PURE__ */ jsxRuntime.jsx(TabBar, { items: tabs }) : null
|
|
@@ -6665,7 +6785,7 @@ function RailShell({ nav = [], persistent = [], page: pageOverride, header, acco
|
|
|
6665
6785
|
const tabs = tabsFor([{ items: [...main, ...foot] }]);
|
|
6666
6786
|
const active = activeItem([...nav, ...persistent]);
|
|
6667
6787
|
const place = react.useMemo(() => ({ page: pageOverride ?? active?.label }), [pageOverride, active?.label]);
|
|
6668
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ShellContext.Provider, { value: place, children: /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex h-dvh flex-col overflow-
|
|
6788
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ShellContext.Provider, { value: place, children: /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative flex h-dvh flex-col overflow-clip bg-background", className), children: [
|
|
6669
6789
|
header,
|
|
6670
6790
|
banner,
|
|
6671
6791
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-0 flex-1", children: [
|
|
@@ -6817,6 +6937,18 @@ function NavDropdown({ item }) {
|
|
|
6817
6937
|
] })
|
|
6818
6938
|
] });
|
|
6819
6939
|
}
|
|
6940
|
+
function AccountCta({ href = GET_AN_ACCOUNT.href, className }) {
|
|
6941
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Button, { asChild: true, size: "sm", className, children: /* @__PURE__ */ jsxRuntime.jsx("a", { href, children: GET_AN_ACCOUNT.label }) });
|
|
6942
|
+
}
|
|
6943
|
+
function ProductLockup({ size, product }) {
|
|
6944
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center", children: [
|
|
6945
|
+
/* @__PURE__ */ jsxRuntime.jsx(Lockup, { size }),
|
|
6946
|
+
product ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
6947
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: "mx-3 h-5 w-px bg-oca-hairline-strong" }),
|
|
6948
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium tracking-[-0.01em]", style: { fontSize: size * 0.56 }, children: product })
|
|
6949
|
+
] }) : null
|
|
6950
|
+
] });
|
|
6951
|
+
}
|
|
6820
6952
|
function SiteHeader({
|
|
6821
6953
|
home = "/",
|
|
6822
6954
|
brand,
|
|
@@ -6836,13 +6968,7 @@ function SiteHeader({
|
|
|
6836
6968
|
const current2 = typeof family === "string" ? family : void 0;
|
|
6837
6969
|
const phoneNav = navOnPhone ? nav : [];
|
|
6838
6970
|
const menu = phoneNav.length > 0 || Boolean(family) || Boolean(menuExtra);
|
|
6839
|
-
const brandNode = brand ?? /* @__PURE__ */ jsxRuntime.
|
|
6840
|
-
/* @__PURE__ */ jsxRuntime.jsx(Lockup, { size }),
|
|
6841
|
-
product ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
6842
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: "mx-3 h-5 w-px bg-oca-hairline-strong" }),
|
|
6843
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium tracking-[-0.01em]", style: { fontSize: size * 0.56 }, children: product })
|
|
6844
|
-
] }) : null
|
|
6845
|
-
] });
|
|
6971
|
+
const brandNode = brand ?? /* @__PURE__ */ jsxRuntime.jsx(ProductLockup, { size, product });
|
|
6846
6972
|
const navigation = nav.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": "Main", className: "hidden items-center gap-1 md:flex", children: nav.map(
|
|
6847
6973
|
(n) => n.children?.length ? /* @__PURE__ */ jsxRuntime.jsx(NavDropdown, { item: n }, n.href) : (
|
|
6848
6974
|
// Between md and lg the family menu and the actions share the row: tighter.
|
|
@@ -6972,7 +7098,7 @@ function SiteBanner({
|
|
|
6972
7098
|
var FOOT_LINK = "inline-flex min-h-11 items-center transition-colors hover:text-foreground md:min-h-0";
|
|
6973
7099
|
function LegalRow({ links }) {
|
|
6974
7100
|
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: [
|
|
6975
|
-
/* @__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(Link6__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.
|
|
7101
|
+
/* @__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(Link6__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}`)) }) }),
|
|
6976
7102
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
6977
7103
|
"\xA9 ",
|
|
6978
7104
|
(/* @__PURE__ */ new Date()).getFullYear(),
|
|
@@ -6992,16 +7118,26 @@ function SiteFooter({
|
|
|
6992
7118
|
}) {
|
|
6993
7119
|
const legalLinks = legal === true ? LEGAL_LINKS : legal || null;
|
|
6994
7120
|
if (compact) {
|
|
6995
|
-
return
|
|
6996
|
-
|
|
6997
|
-
|
|
6998
|
-
|
|
6999
|
-
|
|
7000
|
-
|
|
7001
|
-
|
|
7002
|
-
|
|
7003
|
-
|
|
7004
|
-
|
|
7121
|
+
return (
|
|
7122
|
+
// The tools' column (ToolColumn): the lockup lines up with the page's title.
|
|
7123
|
+
/* @__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: [
|
|
7124
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-x-6 gap-y-3", children: [
|
|
7125
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7126
|
+
"a",
|
|
7127
|
+
{
|
|
7128
|
+
href: OCHK_IO,
|
|
7129
|
+
className: "relative rounded-lg text-foreground before:absolute before:inset-x-0 before:top-1/2 before:h-11 before:-translate-y-1/2",
|
|
7130
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Lockup, { size: 22 })
|
|
7131
|
+
}
|
|
7132
|
+
),
|
|
7133
|
+
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
|
|
7134
|
+
] }),
|
|
7135
|
+
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: [
|
|
7136
|
+
legalLinks ? /* @__PURE__ */ jsxRuntime.jsx(LegalRow, { links: legalLinks }) : null,
|
|
7137
|
+
meta
|
|
7138
|
+
] }) : null
|
|
7139
|
+
] }) })
|
|
7140
|
+
);
|
|
7005
7141
|
}
|
|
7006
7142
|
const cols = [
|
|
7007
7143
|
...columns,
|
|
@@ -7036,17 +7172,17 @@ function SiteFooter({
|
|
|
7036
7172
|
className: cn("flex min-w-0 flex-col gap-1", spans && "col-span-2 md:col-span-1"),
|
|
7037
7173
|
children: [
|
|
7038
7174
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[0.875rem] font-medium", children: col.heading }),
|
|
7039
|
-
/* @__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(
|
|
7175
|
+
/* @__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(
|
|
7040
7176
|
NavLink,
|
|
7041
7177
|
{
|
|
7042
7178
|
item: l,
|
|
7043
7179
|
className: "-mx-3 py-2.5 text-[0.9375rem] md:py-1.5"
|
|
7044
7180
|
},
|
|
7045
|
-
l.
|
|
7181
|
+
`${j}:${l.label}`
|
|
7046
7182
|
)) })
|
|
7047
7183
|
]
|
|
7048
7184
|
},
|
|
7049
|
-
col.heading
|
|
7185
|
+
`${i}:${col.heading}`
|
|
7050
7186
|
);
|
|
7051
7187
|
})
|
|
7052
7188
|
]
|
|
@@ -7082,12 +7218,13 @@ function OchkIoFooter({ columns = OCHK_IO_FOOTER, className }) {
|
|
|
7082
7218
|
);
|
|
7083
7219
|
}
|
|
7084
7220
|
function SignInFrame({
|
|
7085
|
-
title =
|
|
7221
|
+
title = SIGN_IN_LABEL,
|
|
7086
7222
|
lead,
|
|
7087
7223
|
children,
|
|
7088
7224
|
error,
|
|
7089
7225
|
fineprint,
|
|
7090
7226
|
brand,
|
|
7227
|
+
product,
|
|
7091
7228
|
home,
|
|
7092
7229
|
protocol: protocol2,
|
|
7093
7230
|
back,
|
|
@@ -7105,7 +7242,7 @@ function SignInFrame({
|
|
|
7105
7242
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "flex flex-col px-4 pb-8 pt-5 sm:px-8 lg:px-14 lg:pt-8", children: [
|
|
7106
7243
|
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: "flex items-center justify-between gap-4", children: [
|
|
7107
7244
|
/* @__PURE__ */ jsxRuntime.jsxs(Link6__default.default, { href: homeHref, className: "w-fit rounded-lg", children: [
|
|
7108
|
-
brand ?? /* @__PURE__ */ jsxRuntime.jsx(
|
|
7245
|
+
brand ?? /* @__PURE__ */ jsxRuntime.jsx(ProductLockup, { size: 28, product: product ?? (protocol2 ? protocolSite(protocol2).label : void 0) }),
|
|
7109
7246
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: " home" })
|
|
7110
7247
|
] }),
|
|
7111
7248
|
back === void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -7316,7 +7453,7 @@ function SessionAccountView({
|
|
|
7316
7453
|
items = [],
|
|
7317
7454
|
signInHref,
|
|
7318
7455
|
signInPath,
|
|
7319
|
-
signInLabel =
|
|
7456
|
+
signInLabel = SIGN_IN_LABEL,
|
|
7320
7457
|
accountHref = OCHK_APP_ACCOUNT,
|
|
7321
7458
|
onSignOut,
|
|
7322
7459
|
nameFrom = "lg"
|
|
@@ -7347,6 +7484,13 @@ function SessionAccountView({
|
|
|
7347
7484
|
/* @__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 }) }) })
|
|
7348
7485
|
);
|
|
7349
7486
|
}
|
|
7487
|
+
function ToolColumn({
|
|
7488
|
+
measure = "wide",
|
|
7489
|
+
className,
|
|
7490
|
+
children
|
|
7491
|
+
}) {
|
|
7492
|
+
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 }) }) });
|
|
7493
|
+
}
|
|
7350
7494
|
function ToolShell({
|
|
7351
7495
|
protocol: protocol2,
|
|
7352
7496
|
tools,
|
|
@@ -7355,6 +7499,7 @@ function ToolShell({
|
|
|
7355
7499
|
rail = false,
|
|
7356
7500
|
railFooter,
|
|
7357
7501
|
variant = "tool",
|
|
7502
|
+
measure = "wide",
|
|
7358
7503
|
banner,
|
|
7359
7504
|
footer,
|
|
7360
7505
|
children
|
|
@@ -7380,7 +7525,9 @@ function ToolShell({
|
|
|
7380
7525
|
{
|
|
7381
7526
|
className: cn(
|
|
7382
7527
|
"flex flex-col bg-background",
|
|
7383
|
-
app
|
|
7528
|
+
// An app frame contains what is positioned inside it (sr-only text deep in the page's own
|
|
7529
|
+
// scroller would otherwise size the document), and clips without becoming a scroller.
|
|
7530
|
+
app ? "relative h-dvh overflow-clip" : "min-h-dvh",
|
|
7384
7531
|
tabs && "max-md:pb-[calc(3.5rem_+_env(safe-area-inset-bottom))]"
|
|
7385
7532
|
),
|
|
7386
7533
|
children: [
|
|
@@ -7410,14 +7557,7 @@ function ToolShell({
|
|
|
7410
7557
|
/* @__PURE__ */ jsxRuntime.jsx(SideNav, { groups: [{ label: "Tools", items: tools.map(({ href, label, icon, active }) => ({ href, label, icon, active })) }] }),
|
|
7411
7558
|
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
|
|
7412
7559
|
] }) : null,
|
|
7413
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7414
|
-
"main",
|
|
7415
|
-
{
|
|
7416
|
-
id: "main-content",
|
|
7417
|
-
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"),
|
|
7418
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(SiteHomeContext.Provider, { value: homeHref, children: app ? children : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto w-full max-w-[72rem]", children }) })
|
|
7419
|
-
}
|
|
7420
|
-
)
|
|
7560
|
+
/* @__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 }) }) })
|
|
7421
7561
|
] }),
|
|
7422
7562
|
app || footer === false ? null : footer ?? /* @__PURE__ */ jsxRuntime.jsx(SiteFooter, { compact: true, family: true, legal: true }),
|
|
7423
7563
|
tabs ? /* @__PURE__ */ jsxRuntime.jsx(TabBar, { items: tabs }) : null
|
|
@@ -7603,6 +7743,7 @@ exports.APP_ID = APP_ID;
|
|
|
7603
7743
|
exports.Accent = Accent;
|
|
7604
7744
|
exports.Accordion = Accordion;
|
|
7605
7745
|
exports.AccordionItem = AccordionItem;
|
|
7746
|
+
exports.AccountCta = AccountCta;
|
|
7606
7747
|
exports.AccountMenu = AccountMenu;
|
|
7607
7748
|
exports.ActivityList = ActivityList;
|
|
7608
7749
|
exports.AnchorStatus = AnchorStatus;
|
|
@@ -7630,6 +7771,8 @@ exports.CardNumeral = CardNumeral;
|
|
|
7630
7771
|
exports.CardTitle = CardTitle;
|
|
7631
7772
|
exports.ChartFrame = ChartFrame;
|
|
7632
7773
|
exports.Checkbox = Checkbox;
|
|
7774
|
+
exports.ChoiceCard = ChoiceCard;
|
|
7775
|
+
exports.ChoiceGroup = ChoiceGroup;
|
|
7633
7776
|
exports.Closing = Closing;
|
|
7634
7777
|
exports.CodeBlock = CodeBlock;
|
|
7635
7778
|
exports.CodeTabs = CodeTabs;
|
|
@@ -7685,6 +7828,7 @@ exports.FilterChips = FilterChips;
|
|
|
7685
7828
|
exports.FloatChip = FloatChip;
|
|
7686
7829
|
exports.Footnote = Footnote;
|
|
7687
7830
|
exports.FormSection = FormSection;
|
|
7831
|
+
exports.GET_AN_ACCOUNT = GET_AN_ACCOUNT;
|
|
7688
7832
|
exports.HalftoneCanvas = HalftoneCanvas;
|
|
7689
7833
|
exports.HalftoneSphere = HalftoneSphere;
|
|
7690
7834
|
exports.HashChip = HashChip;
|
|
@@ -7699,6 +7843,7 @@ exports.Label = Label;
|
|
|
7699
7843
|
exports.Lead = Lead;
|
|
7700
7844
|
exports.LegalDocument = LegalDocument;
|
|
7701
7845
|
exports.LinkCard = LinkCard;
|
|
7846
|
+
exports.ListCard = ListCard;
|
|
7702
7847
|
exports.LoadingBlock = LoadingBlock;
|
|
7703
7848
|
exports.LockedPreview = LockedPreview;
|
|
7704
7849
|
exports.Lockup = Lockup;
|
|
@@ -7708,6 +7853,7 @@ exports.MdxTable = MdxTable;
|
|
|
7708
7853
|
exports.Meter = Meter;
|
|
7709
7854
|
exports.Monogram = Monogram;
|
|
7710
7855
|
exports.Notice = Notice;
|
|
7856
|
+
exports.OCHK_APP = OCHK_APP;
|
|
7711
7857
|
exports.OCHK_APP_ACCOUNT = OCHK_APP_ACCOUNT;
|
|
7712
7858
|
exports.OCHK_IO = OCHK_IO;
|
|
7713
7859
|
exports.OCHK_IO_FOOTER = OCHK_IO_FOOTER;
|
|
@@ -7738,6 +7884,7 @@ exports.RadioGroup = RadioGroup;
|
|
|
7738
7884
|
exports.RadioGroupItem = RadioGroupItem;
|
|
7739
7885
|
exports.Reveal = Reveal;
|
|
7740
7886
|
exports.SELF_HOSTED_LEGAL_LINKS = SELF_HOSTED_LEGAL_LINKS;
|
|
7887
|
+
exports.SIGN_IN_LABEL = SIGN_IN_LABEL;
|
|
7741
7888
|
exports.SPHERE_GRADIENT = SPHERE_GRADIENT;
|
|
7742
7889
|
exports.Sats = Sats;
|
|
7743
7890
|
exports.SatsFigure = SatsFigure;
|
|
@@ -7748,6 +7895,7 @@ exports.SearchDialog = SearchDialog;
|
|
|
7748
7895
|
exports.Section = Section;
|
|
7749
7896
|
exports.SectionHeading = SectionHeading;
|
|
7750
7897
|
exports.SectionIntro = SectionIntro;
|
|
7898
|
+
exports.SectionTitle = SectionTitle;
|
|
7751
7899
|
exports.Select = Select;
|
|
7752
7900
|
exports.SelectContent = SelectContent;
|
|
7753
7901
|
exports.SelectGroup = SelectGroup;
|
|
@@ -7795,6 +7943,7 @@ exports.Textarea = Textarea;
|
|
|
7795
7943
|
exports.ThemeToggle = ThemeToggle;
|
|
7796
7944
|
exports.Ticker = Ticker;
|
|
7797
7945
|
exports.Toaster = Toaster;
|
|
7946
|
+
exports.ToolColumn = ToolColumn;
|
|
7798
7947
|
exports.ToolGrid = ToolGrid;
|
|
7799
7948
|
exports.ToolShell = ToolShell;
|
|
7800
7949
|
exports.Tooltip = Tooltip;
|