@orangecheck/design 0.29.1 → 0.30.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/dist/index.mjs CHANGED
@@ -19,7 +19,7 @@ import * as SelectPrimitive from '@radix-ui/react-select';
19
19
  import { Toaster as Toaster$1 } from 'sonner';
20
20
  import * as TabsPrimitive from '@radix-ui/react-tabs';
21
21
  import QRCode from 'qrcode';
22
- import Link6 from 'next/link';
22
+ import Link7 from 'next/link';
23
23
  import { useRouter } from 'next/router';
24
24
  import { useOcSession, fetchOcLinkedIdentities } from '@orangecheck/auth-client';
25
25
 
@@ -3173,6 +3173,93 @@ function SectionHeader({
3173
3173
  meta && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/70 font-mono text-[10px] tracking-widest uppercase", children: meta })
3174
3174
  ] });
3175
3175
  }
3176
+ var VARIANTS = {
3177
+ "not-found": {
3178
+ code: 404,
3179
+ title: "no such route",
3180
+ detail: "the page you're looking for doesn't exist, or has been moved.",
3181
+ tone: "text-primary",
3182
+ label: "not found",
3183
+ actions: []
3184
+ },
3185
+ "server-error": {
3186
+ code: 500,
3187
+ title: "internal error",
3188
+ detail: "something went wrong on our end.",
3189
+ tone: "text-destructive",
3190
+ label: "server error",
3191
+ actions: [
3192
+ "try refreshing the page",
3193
+ "wait a few minutes, try again",
3194
+ "return home and start over"
3195
+ ]
3196
+ }
3197
+ };
3198
+ function OcErrorPage({
3199
+ variant = "not-found",
3200
+ code,
3201
+ title,
3202
+ detail,
3203
+ actions,
3204
+ homeHref = "/",
3205
+ children,
3206
+ className = ""
3207
+ }) {
3208
+ const v = VARIANTS[variant];
3209
+ const shownCode = code ?? v.code;
3210
+ const shownActions = actions ?? [...v.actions];
3211
+ const isServerError = variant === "server-error";
3212
+ return /* @__PURE__ */ jsx(
3213
+ "div",
3214
+ {
3215
+ className: `container flex min-h-[60vh] flex-col items-center justify-center ${className}`,
3216
+ children: /* @__PURE__ */ jsxs("div", { className: "w-full max-w-xl", children: [
3217
+ /* @__PURE__ */ jsxs("div", { className: `label-mono mb-4 ${v.tone}`, children: [
3218
+ "\xA7 ",
3219
+ shownCode,
3220
+ " // ",
3221
+ v.label
3222
+ ] }),
3223
+ /* @__PURE__ */ jsx(
3224
+ "h1",
3225
+ {
3226
+ className: `font-display text-7xl font-bold tracking-tight tabular-nums sm:text-8xl ${v.tone}`,
3227
+ children: shownCode
3228
+ }
3229
+ ),
3230
+ /* @__PURE__ */ jsx("h2", { className: "font-display mt-2 text-2xl font-bold tracking-tight sm:text-3xl", children: title ?? v.title }),
3231
+ /* @__PURE__ */ jsxs("p", { className: "text-muted-foreground mt-3 font-mono text-xs", children: [
3232
+ "// ",
3233
+ detail ?? v.detail
3234
+ ] }),
3235
+ shownActions.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-8 border", children: [
3236
+ /* @__PURE__ */ jsx("div", { className: "border-b px-4 py-2 font-mono text-[11px] tracking-widest uppercase", children: "what can you do" }),
3237
+ /* @__PURE__ */ jsx("ul", { className: "divide-y font-mono text-xs", children: shownActions.map((a) => /* @__PURE__ */ jsxs("li", { className: "px-4 py-2", children: [
3238
+ ">> ",
3239
+ a
3240
+ ] }, a)) })
3241
+ ] }),
3242
+ /* @__PURE__ */ jsxs("div", { className: "mt-8 flex flex-wrap gap-3", children: [
3243
+ /* @__PURE__ */ jsx(Button, { asChild: true, className: "font-mono", children: /* @__PURE__ */ jsx(Link7, { href: homeHref, children: /* @__PURE__ */ jsx("span", { className: "text-[11px] tracking-widest uppercase", children: "go home" }) }) }),
3244
+ /* @__PURE__ */ jsx(
3245
+ Button,
3246
+ {
3247
+ variant: "outline",
3248
+ onClick: () => {
3249
+ if (typeof window === "undefined") return;
3250
+ if (isServerError) window.location.reload();
3251
+ else window.history.back();
3252
+ },
3253
+ className: "font-mono",
3254
+ children: /* @__PURE__ */ jsx("span", { className: "text-[11px] tracking-widest uppercase", children: isServerError ? "retry" : "go back" })
3255
+ }
3256
+ )
3257
+ ] }),
3258
+ children && /* @__PURE__ */ jsx("div", { className: "mt-6", children })
3259
+ ] })
3260
+ }
3261
+ );
3262
+ }
3176
3263
  var TONE_CLASS2 = {
3177
3264
  info: "border-primary/30 bg-primary/5",
3178
3265
  warning: "border-warning/40 bg-warning/5",
@@ -3214,7 +3301,7 @@ function CtaLink({
3214
3301
  if (external) {
3215
3302
  return /* @__PURE__ */ jsx("a", { href, target: "_blank", rel: "noreferrer", className: cls, children: text });
3216
3303
  }
3217
- return /* @__PURE__ */ jsx(Link6, { href, className: cls, children: text });
3304
+ return /* @__PURE__ */ jsx(Link7, { href, className: cls, children: text });
3218
3305
  }
3219
3306
  var TONE_CLASS3 = {
3220
3307
  default: "",
@@ -3898,7 +3985,7 @@ function EcosystemSwitcher({
3898
3985
  /* @__PURE__ */ jsx("ul", { className: "py-1", children: [...ENTRIES, ...showOwnerEntries ? OWNER_ENTRIES : []].map((e) => {
3899
3986
  const isActive2 = e.slug === current;
3900
3987
  return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
3901
- Link6,
3988
+ Link7,
3902
3989
  {
3903
3990
  href: e.href,
3904
3991
  onClick: () => setOpen(false),
@@ -3919,7 +4006,7 @@ function EcosystemSwitcher({
3919
4006
  ) }, e.slug);
3920
4007
  }) }),
3921
4008
  /* @__PURE__ */ jsx("div", { className: "border-t px-4 py-2 font-mono text-[10px] tracking-widest uppercase", children: /* @__PURE__ */ jsx(
3922
- Link6,
4009
+ Link7,
3923
4010
  {
3924
4011
  href: "https://docs.ochk.io",
3925
4012
  onClick: () => setOpen(false),
@@ -4266,7 +4353,7 @@ function OcLogoDropdown({
4266
4353
  }
4267
4354
  ),
4268
4355
  /* @__PURE__ */ jsxs(
4269
- Link6,
4356
+ Link7,
4270
4357
  {
4271
4358
  href: homeHref,
4272
4359
  "aria-label": "go to " + homeHref + " (this site's home)",
@@ -4316,7 +4403,7 @@ function OcLogoDropdown({
4316
4403
  const isActive2 = e.slug === current;
4317
4404
  const href = isActive2 ? homeHref : e.origin;
4318
4405
  return /* @__PURE__ */ jsx("li", { role: "none", children: /* @__PURE__ */ jsxs(
4319
- Link6,
4406
+ Link7,
4320
4407
  {
4321
4408
  href,
4322
4409
  role: "menuitem",
@@ -4348,7 +4435,7 @@ function OcLogoDropdown({
4348
4435
  ] }, category);
4349
4436
  }) }),
4350
4437
  /* @__PURE__ */ jsx("div", { className: "border-t px-4 py-2 font-mono text-[10px] tracking-widest uppercase", children: /* @__PURE__ */ jsx(
4351
- Link6,
4438
+ Link7,
4352
4439
  {
4353
4440
  href: "https://docs.ochk.io",
4354
4441
  onClick: () => setOpen(false),
@@ -4678,7 +4765,7 @@ function MobileMenu({
4678
4765
  },
4679
4766
  l.href
4680
4767
  ) : /* @__PURE__ */ jsxs(
4681
- Link6,
4768
+ Link7,
4682
4769
  {
4683
4770
  href: l.href,
4684
4771
  role: "menuitem",
@@ -4913,7 +5000,7 @@ function OcAccountMenuView({
4913
5000
  },
4914
5001
  item.href
4915
5002
  ) : /* @__PURE__ */ jsx(
4916
- Link6,
5003
+ Link7,
4917
5004
  {
4918
5005
  href: item.href,
4919
5006
  onClick,
@@ -5134,7 +5221,7 @@ function PopoverSection({
5134
5221
  },
5135
5222
  item.href
5136
5223
  ) : /* @__PURE__ */ jsxs(
5137
- Link6,
5224
+ Link7,
5138
5225
  {
5139
5226
  href: item.href,
5140
5227
  onClick: onItemClick,
@@ -5237,7 +5324,7 @@ function OcPrimaryNav({
5237
5324
  },
5238
5325
  link.href
5239
5326
  ) : /* @__PURE__ */ jsx(
5240
- Link6,
5327
+ Link7,
5241
5328
  {
5242
5329
  href: link.href,
5243
5330
  "aria-current": active ? "page" : void 0,
@@ -5312,7 +5399,7 @@ function OcDashboardShell({
5312
5399
  }
5313
5400
  ),
5314
5401
  /* @__PURE__ */ jsx(
5315
- Link6,
5402
+ Link7,
5316
5403
  {
5317
5404
  href: rootHref,
5318
5405
  className: "text-primary font-mono text-[11px] tracking-widest uppercase",
@@ -5384,7 +5471,7 @@ function Sidebar({
5384
5471
  /* @__PURE__ */ jsxs("div", { className: "border-b px-4 py-3", children: [
5385
5472
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
5386
5473
  /* @__PURE__ */ jsx(
5387
- Link6,
5474
+ Link7,
5388
5475
  {
5389
5476
  href: rootHref,
5390
5477
  onClick: onClose,
@@ -5444,7 +5531,7 @@ function Sidebar({
5444
5531
  children: content
5445
5532
  }
5446
5533
  ) : /* @__PURE__ */ jsx(
5447
- Link6,
5534
+ Link7,
5448
5535
  {
5449
5536
  href: tool.href,
5450
5537
  onClick: onClose,
@@ -5506,7 +5593,7 @@ function OcDashboardHub({ tools, className }) {
5506
5593
  className: cls,
5507
5594
  children: content
5508
5595
  }
5509
- ) : /* @__PURE__ */ jsx(Link6, { href: tool.href, className: cls, children: content }) }, tool.id);
5596
+ ) : /* @__PURE__ */ jsx(Link7, { href: tool.href, className: cls, children: content }) }, tool.id);
5510
5597
  })
5511
5598
  }
5512
5599
  );
@@ -5608,7 +5695,7 @@ function FooterLinkItem({ link }) {
5608
5695
  " \u2197"
5609
5696
  ] });
5610
5697
  }
5611
- return /* @__PURE__ */ jsxs(Link6, { href: link.href, className: LINK_CLS, children: [
5698
+ return /* @__PURE__ */ jsxs(Link7, { href: link.href, className: LINK_CLS, children: [
5612
5699
  "> ",
5613
5700
  link.label
5614
5701
  ] });
@@ -5695,6 +5782,6 @@ function OcFamilyFooter({
5695
5782
  ] }) });
5696
5783
  }
5697
5784
 
5698
- export { AccentList, AccentNote, Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, AlertWithAction, AlertWithCountdown, AppShell, AppearanceControls, Badge, Bar, BitcoinAddress, BrandBand, Button, Callout, Card, CheckList, Checkbox, ComparisonTable, ConfirmHost, CopyButton, DEFAULT_OC_THEME, DataRow, DefinitionList, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, EcosystemSwitcher, EmailCapture, EmptyState, ErrorBoundary, FAMILY_PROPERTIES, Faq, FeatureCard, HelpHint, IconBadge, Input, Label, LayoutSubHeader, MarketingHeading, Modal, NumberedStep, OC_DEFAULT_ACCENT, OC_GLYPHS, OC_GLYPH_CANVAS, OC_MOTION_COOKIE, OC_SKIN_COOKIE, OC_THEMES, OcAccountMenu, OcAccountMenuView, OcAppBar, OcAppearanceMenu, OcAurora, OcDashboardHub, OcDashboardShell, OcFamilyFooter, OcLogoDropdown, OcPrimaryNav, OcSigil, OcThemeBridge, OcThemePicker, OcThemeProvider, Pagination, Panel, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PromptHost, QrCode, REFERENCE_BTC_USD, RadioGroup, RadioGroupItem, SITE_STATE_LABEL, SatsAmount, Section, SectionHeader, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Sparkline, StatBlock, StatCard, StatGrid, StatTile, StatusPill, StepList, Surface, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemeToggle, ThemeToggleLink, Toaster, Tooltip, TwoToneHeading, VerifiedChip, Working, WorkingPanel, accentFor, asOf, badgeVariants, buttonVariants, cn, confirm, explorerUrl, findFamilyProperty, formatSats, formatSatsCompact, getOcThemeInitScript, iconBadgeVariants, isKnownTheme, makeStatusPill, normalizeHue, priceBoth, prompt, readOcSceneTokens, relativeTime, resolveTheme, satsToUsd, shortenAddress, subscribeOcTheme, surfaceVariants, usdToSats, useOcMotion, useOcSkin, useSpotPrice };
5785
+ export { AccentList, AccentNote, Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, AlertWithAction, AlertWithCountdown, AppShell, AppearanceControls, Badge, Bar, BitcoinAddress, BrandBand, Button, Callout, Card, CheckList, Checkbox, ComparisonTable, ConfirmHost, CopyButton, DEFAULT_OC_THEME, DataRow, DefinitionList, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, EcosystemSwitcher, EmailCapture, EmptyState, ErrorBoundary, FAMILY_PROPERTIES, Faq, FeatureCard, HelpHint, IconBadge, Input, Label, LayoutSubHeader, MarketingHeading, Modal, NumberedStep, OC_DEFAULT_ACCENT, OC_GLYPHS, OC_GLYPH_CANVAS, OC_MOTION_COOKIE, OC_SKIN_COOKIE, OC_THEMES, OcAccountMenu, OcAccountMenuView, OcAppBar, OcAppearanceMenu, OcAurora, OcDashboardHub, OcDashboardShell, OcErrorPage, OcFamilyFooter, OcLogoDropdown, OcPrimaryNav, OcSigil, OcThemeBridge, OcThemePicker, OcThemeProvider, Pagination, Panel, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PromptHost, QrCode, REFERENCE_BTC_USD, RadioGroup, RadioGroupItem, SITE_STATE_LABEL, SatsAmount, Section, SectionHeader, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Sparkline, StatBlock, StatCard, StatGrid, StatTile, StatusPill, StepList, Surface, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemeToggle, ThemeToggleLink, Toaster, Tooltip, TwoToneHeading, VerifiedChip, Working, WorkingPanel, accentFor, asOf, badgeVariants, buttonVariants, cn, confirm, explorerUrl, findFamilyProperty, formatSats, formatSatsCompact, getOcThemeInitScript, iconBadgeVariants, isKnownTheme, makeStatusPill, normalizeHue, priceBoth, prompt, readOcSceneTokens, relativeTime, resolveTheme, satsToUsd, shortenAddress, subscribeOcTheme, surfaceVariants, usdToSats, useOcMotion, useOcSkin, useSpotPrice };
5699
5786
  //# sourceMappingURL=index.mjs.map
5700
5787
  //# sourceMappingURL=index.mjs.map