@orangecheck/app-design 0.5.2 → 0.5.4

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.
@@ -53,7 +53,7 @@ function Prose({ className, ...props }) {
53
53
  "[&_h2]:oca-display-3 [&_h2]:mb-4 [&_h2]:mt-14 [&_h2]:scroll-mt-24 [&_h2]:text-foreground",
54
54
  "[&_h3]:oca-title [&_h3]:mb-3 [&_h3]:mt-10 [&_h3]:text-foreground",
55
55
  "[&_p]:my-4 [&_strong]:font-medium [&_strong]:text-foreground",
56
- "[&_a]:text-foreground [&_a]:underline [&_a]:decoration-border [&_a]:underline-offset-4 hover:[&_a]:decoration-foreground",
56
+ "[&_a]:text-foreground [&_a]:underline [&_a]:decoration-foreground/35 [&_a]:underline-offset-4 hover:[&_a]:decoration-foreground",
57
57
  "[&_ul]:my-4 [&_ul]:list-disc [&_ul]:pl-5 [&_li]:my-1.5 [&_code]:text-foreground",
58
58
  className
59
59
  ),
@@ -351,7 +351,8 @@ var badgeVariants = cva(
351
351
  // the brand accent, information is neutral.
352
352
  warning: "border-transparent bg-[color-mix(in_oklab,var(--oca-orange)_12%,var(--card))] text-oca-accent-ink",
353
353
  info: "border-border bg-card text-foreground",
354
- ink: "border-transparent bg-oca-ink text-oca-ink-foreground",
354
+ // Inverted in dark mode, where ink would sit on a card of nearly its own colour.
355
+ ink: "border-transparent bg-oca-ink text-oca-ink-foreground dark:bg-foreground dark:text-background",
355
356
  onInk: "border-white/15 bg-white/5 text-white/90"
356
357
  }
357
358
  },
@@ -538,7 +539,7 @@ var buttonVariants = cva(
538
539
  brand: "bg-brand text-brand-foreground hover:bg-oca-orange-deep",
539
540
  ghost: "text-foreground hover:bg-accent",
540
541
  danger: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
541
- link: "h-auto rounded-none px-0 text-foreground underline decoration-border underline-offset-4 hover:decoration-foreground",
542
+ link: "h-auto rounded-none px-0 text-foreground underline decoration-foreground/35 underline-offset-4 hover:decoration-foreground",
542
543
  onInk: "bg-white text-oca-ink hover:bg-white/90",
543
544
  onInkOutline: "border border-white/20 text-white hover:bg-white/10"
544
545
  },
@@ -607,7 +608,16 @@ function StatCard({ label, value, hint, className }) {
607
608
  ),
608
609
  children: [
609
610
  /* @__PURE__ */ jsx("span", { className: "text-[0.875rem] leading-snug text-muted-foreground", children: label }),
610
- /* @__PURE__ */ jsx("span", { className: "self-end break-words oca-tabular text-[1.5rem] leading-tight tracking-[-0.02em] md:text-[1.75rem]", children: value }),
611
+ /* @__PURE__ */ jsx(
612
+ "span",
613
+ {
614
+ className: cn(
615
+ "break-words oca-tabular text-[1.5rem] leading-tight tracking-[-0.02em] md:text-[1.75rem]",
616
+ inGrid && "self-end"
617
+ ),
618
+ children: value
619
+ }
620
+ ),
611
621
  hint ? /* @__PURE__ */ jsx("span", { className: "text-[0.8125rem] leading-snug text-muted-foreground", children: hint }) : inGrid ? /* @__PURE__ */ jsx("span", { "aria-hidden": true }) : null
612
622
  ]
613
623
  }
@@ -917,7 +927,7 @@ function HashChip({
917
927
  const shown = middle(value, head, tail);
918
928
  const text = /* @__PURE__ */ jsx("span", { title: value, className: "font-mono text-[0.875rem]", children: shown });
919
929
  return /* @__PURE__ */ jsxs("span", { className: cn("inline-flex max-w-full items-center gap-1", className), children: [
920
- href ? /* @__PURE__ */ jsx("a", { href, className: "underline decoration-border underline-offset-4 hover:decoration-foreground", children: text }) : text,
930
+ href ? /* @__PURE__ */ jsx("a", { href, className: "underline decoration-foreground/35 underline-offset-4 hover:decoration-foreground", children: text }) : text,
921
931
  copy ? /* @__PURE__ */ jsx(CopyButton, { value, label: "Copy full value" }) : null
922
932
  ] });
923
933
  }
@@ -1034,7 +1044,7 @@ function CodeBlock({
1034
1044
  {
1035
1045
  className: cn(folded && "overflow-hidden"),
1036
1046
  style: folded ? { maxHeight: `calc(${maxLines} * 1.625em + 2.5rem)` } : void 0,
1037
- children: /* @__PURE__ */ jsx(ScrollFade, { fade: "var(--oca-code-surface)", children: /* @__PURE__ */ jsx("pre", { className: "w-max min-w-full p-5 font-mono text-[0.875rem] leading-[1.625] text-oca-ink-muted", children: /* @__PURE__ */ jsx("code", { children: code }) }) })
1047
+ children: /* @__PURE__ */ jsx(ScrollFade, { fade: "var(--oca-code-surface)", children: /* @__PURE__ */ jsx("pre", { className: "w-max min-w-full p-5 font-mono text-[0.875rem] leading-[1.625] text-oca-ink-muted [font-variant-ligatures:none]", children: /* @__PURE__ */ jsx("code", { children: code }) }) })
1038
1048
  }
1039
1049
  ),
1040
1050
  foldable ? /* @__PURE__ */ jsx(
@@ -1216,14 +1226,24 @@ function SatsFigure({
1216
1226
  label,
1217
1227
  value,
1218
1228
  hint,
1229
+ size = "md",
1219
1230
  className
1220
1231
  }) {
1221
1232
  return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-1.5", className), children: [
1222
1233
  /* @__PURE__ */ jsx("span", { className: "text-[0.9375rem] text-muted-foreground", children: label }),
1223
- /* @__PURE__ */ jsxs("span", { className: "oca-display-3 oca-tabular", children: [
1224
- /* @__PURE__ */ jsx(Sats, { value, unit: "none" }),
1225
- /* @__PURE__ */ jsx("span", { className: "ml-2 text-[0.5em] tracking-normal text-muted-foreground", children: "sats" })
1226
- ] }),
1234
+ /* @__PURE__ */ jsxs(
1235
+ "span",
1236
+ {
1237
+ className: cn(
1238
+ "oca-tabular",
1239
+ size === "lg" ? "text-[clamp(3rem,2.2rem+3vw,4.75rem)] leading-[0.95] tracking-[-0.045em] [font-family:var(--oc-font-display)]" : "oca-display-3"
1240
+ ),
1241
+ children: [
1242
+ /* @__PURE__ */ jsx(Sats, { value, unit: "none" }),
1243
+ /* @__PURE__ */ jsx("span", { className: "ml-2 text-[0.5em] tracking-normal text-muted-foreground", children: "sats" })
1244
+ ]
1245
+ }
1246
+ ),
1227
1247
  hint ? /* @__PURE__ */ jsx("span", { className: "text-[0.875rem] text-muted-foreground", children: hint }) : null
1228
1248
  ] });
1229
1249
  }
@@ -1232,7 +1252,8 @@ function PhoneFrame({ className, style, children }) {
1232
1252
  "div",
1233
1253
  {
1234
1254
  className: cn(
1235
- "relative w-[17.5rem] shrink-0 rounded-[2.9rem] bg-[#0b0b0c] p-[0.6rem]",
1255
+ // A lighter bezel in dark mode, or the phone dissolves into the page.
1256
+ "relative w-[17.5rem] shrink-0 rounded-[2.9rem] bg-[#0b0b0c] p-[0.6rem] dark:bg-[#2a2a2d]",
1236
1257
  "shadow-[0_50px_100px_-40px_rgb(10_10_10/0.55),0_0_0_1px_rgb(255_255_255/0.06)_inset]",
1237
1258
  className
1238
1259
  ),
@@ -1308,8 +1329,9 @@ var GROUNDS = [
1308
1329
  dot: "rgb(10 10 10 / 0.22)"
1309
1330
  },
1310
1331
  {
1311
- className: "text-white ring-1 ring-inset ring-white/10",
1312
- background: "linear-gradient(145deg, #2a2a2a, #0a0a0a)",
1332
+ // Lifted at the top edge so the tile keeps its shape on a dark card.
1333
+ className: "text-white ring-1 ring-inset ring-white/15",
1334
+ background: "linear-gradient(145deg, #3d3d3d, #0d0d0d 70%)",
1313
1335
  dot: "rgb(255 255 255 / 0.16)"
1314
1336
  },
1315
1337
  {