@orangecheck/app-design 0.5.0 → 0.5.2

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.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { APP_ATTRIBUTE, APP_ID, appColors, appFonts } from './tokens.mjs';
2
2
  export { Badge, BadgeProps, Button, ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardNumeral, CardProps, CardTitle, Checkbox, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, Field, FieldProps, Input, Kbd, Label, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, RadioGroup, RadioGroupItem, ScrollFade, ScrollFadeProps, Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetTitle, SheetTrigger, Skeleton, Spinner, StatusDot, StatusPill, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cardVariants, cn, useTimedOut } from './primitives.mjs';
3
3
  export { AppIcon, AppIconProps, Crowd, CrowdProps, HalftoneCanvas, HalftoneCanvasProps, HalftoneSphere, HalftoneSphereProps, IsoCheck, IsoCheckProps, Lockup, LockupProps, MARK_FACES, Mark, MarkProps, SPHERE_GRADIENT, Tone, portraitTone } from './brand.mjs';
4
- export { Accent, ActivityItem, ActivityList, BrowserFrame, CodeBlock, Column, Container, CopyButton, DataTable, Display, DisplayProps, DocHeader, DocLayout, EmptyLine, EmptyState, Eyebrow, FloatChip, Footnote, HashChip, KeyValueItem, KeyValueList, Lead, LoadingBlock, Notice, PackageCard, PackageItem, PageHeader, PageHero, PageHeroProps, PhoneFrame, ProgressStep, ProgressSteps, Prose, Reveal, Sats, SatsFigure, SatsProps, SatsTextOptions, ScrollStory, Section, SectionIntro, SectionProps, SplitBar, SplitSegment, StatCard, StatCardProps, StatGrid, StatGridProps, StepGrid, StepGridProps, StepItem, StepState, Ticker, TocItem, TruthRow, TruthStatus, TruthTable, UsdApprox, satsText, sectionVariants, useCopy, useInView } from './components.mjs';
4
+ export { Accent, ActivityItem, ActivityList, BrowserFrame, CodeBlock, Column, Container, CopyButton, DataTable, Display, DisplayProps, DocHeader, DocLayout, EmptyLine, EmptyState, Eyebrow, FloatChip, Footnote, HashChip, KeyValueItem, KeyValueList, Lead, LoadingBlock, Monogram, Notice, PackageCard, PackageItem, PageHeader, PageHero, PageHeroProps, PhoneFrame, ProgressStep, ProgressSteps, Prose, Reveal, Sats, SatsFigure, SatsProps, SatsTextOptions, ScrollStory, Section, SectionIntro, SectionProps, SplitBar, SplitSegment, StatCard, StatCardProps, StatGrid, StatGridProps, StepGrid, StepGridProps, StepItem, StepState, Ticker, TocItem, TruthRow, TruthStatus, TruthTable, UsdApprox, monogramGround, monogramLetter, satsText, sectionVariants, useCopy, useInView } from './components.mjs';
5
5
  export { AccountMenu, AccountMenuItem, AppShell, FooterColumn, NavItem, ShellContext, ShellNavGroup, ShellNavItem, ShellPlace, ShellSection, SiteFooter, SiteHeader, ThemeToggle, useShellPlace } from './chrome.mjs';
6
6
  export { toast } from 'sonner';
7
7
  import 'react';
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { APP_ATTRIBUTE, APP_ID, appColors, appFonts } from './tokens.js';
2
2
  export { Badge, BadgeProps, Button, ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardNumeral, CardProps, CardTitle, Checkbox, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, Field, FieldProps, Input, Kbd, Label, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, RadioGroup, RadioGroupItem, ScrollFade, ScrollFadeProps, Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetTitle, SheetTrigger, Skeleton, Spinner, StatusDot, StatusPill, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cardVariants, cn, useTimedOut } from './primitives.js';
3
3
  export { AppIcon, AppIconProps, Crowd, CrowdProps, HalftoneCanvas, HalftoneCanvasProps, HalftoneSphere, HalftoneSphereProps, IsoCheck, IsoCheckProps, Lockup, LockupProps, MARK_FACES, Mark, MarkProps, SPHERE_GRADIENT, Tone, portraitTone } from './brand.js';
4
- export { Accent, ActivityItem, ActivityList, BrowserFrame, CodeBlock, Column, Container, CopyButton, DataTable, Display, DisplayProps, DocHeader, DocLayout, EmptyLine, EmptyState, Eyebrow, FloatChip, Footnote, HashChip, KeyValueItem, KeyValueList, Lead, LoadingBlock, Notice, PackageCard, PackageItem, PageHeader, PageHero, PageHeroProps, PhoneFrame, ProgressStep, ProgressSteps, Prose, Reveal, Sats, SatsFigure, SatsProps, SatsTextOptions, ScrollStory, Section, SectionIntro, SectionProps, SplitBar, SplitSegment, StatCard, StatCardProps, StatGrid, StatGridProps, StepGrid, StepGridProps, StepItem, StepState, Ticker, TocItem, TruthRow, TruthStatus, TruthTable, UsdApprox, satsText, sectionVariants, useCopy, useInView } from './components.js';
4
+ export { Accent, ActivityItem, ActivityList, BrowserFrame, CodeBlock, Column, Container, CopyButton, DataTable, Display, DisplayProps, DocHeader, DocLayout, EmptyLine, EmptyState, Eyebrow, FloatChip, Footnote, HashChip, KeyValueItem, KeyValueList, Lead, LoadingBlock, Monogram, Notice, PackageCard, PackageItem, PageHeader, PageHero, PageHeroProps, PhoneFrame, ProgressStep, ProgressSteps, Prose, Reveal, Sats, SatsFigure, SatsProps, SatsTextOptions, ScrollStory, Section, SectionIntro, SectionProps, SplitBar, SplitSegment, StatCard, StatCardProps, StatGrid, StatGridProps, StepGrid, StepGridProps, StepItem, StepState, Ticker, TocItem, TruthRow, TruthStatus, TruthTable, UsdApprox, monogramGround, monogramLetter, satsText, sectionVariants, useCopy, useInView } from './components.js';
5
5
  export { AccountMenu, AccountMenuItem, AppShell, FooterColumn, NavItem, ShellContext, ShellNavGroup, ShellNavItem, ShellPlace, ShellSection, SiteFooter, SiteHeader, ThemeToggle, useShellPlace } from './chrome.js';
6
6
  export { toast } from 'sonner';
7
7
  import 'react';
package/dist/index.js CHANGED
@@ -1954,9 +1954,12 @@ function ActivityList({ items, empty, className }) {
1954
1954
  if (items.length === 0 && empty) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: empty });
1955
1955
  return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("divide-y divide-border rounded-[1.25rem] border border-border bg-card", className), children: items.map((it) => {
1956
1956
  const body = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-4 px-5 py-4", children: [
1957
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-0.5", children: [
1958
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[0.9375rem]", children: it.title }),
1959
- it.meta ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[0.8125rem] text-muted-foreground", children: it.meta }) : null
1957
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-3", children: [
1958
+ it.leading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: it.leading }) : null,
1959
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-0.5", children: [
1960
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[0.9375rem]", children: it.title }),
1961
+ it.meta ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[0.8125rem] text-muted-foreground", children: it.meta }) : null
1962
+ ] })
1960
1963
  ] }),
1961
1964
  it.trailing ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 text-right", children: it.trailing }) : null
1962
1965
  ] });
@@ -2293,6 +2296,76 @@ function FloatChip({
2293
2296
  }
2294
2297
  );
2295
2298
  }
2299
+ var GROUNDS = [
2300
+ {
2301
+ className: "text-oca-ink",
2302
+ background: "linear-gradient(145deg, var(--oca-orange-light), var(--oca-orange-deep))",
2303
+ dot: "rgb(10 10 10 / 0.22)"
2304
+ },
2305
+ {
2306
+ className: "text-white ring-1 ring-inset ring-white/10",
2307
+ background: "linear-gradient(145deg, #2a2a2a, #0a0a0a)",
2308
+ dot: "rgb(255 255 255 / 0.16)"
2309
+ },
2310
+ {
2311
+ className: "text-oca-ink",
2312
+ background: "linear-gradient(145deg, #fff1df, var(--oca-peach))",
2313
+ dot: "rgb(234 88 11 / 0.22)"
2314
+ }
2315
+ ];
2316
+ var SIZES = {
2317
+ sm: "size-9 rounded-[0.7rem] text-[0.9375rem]",
2318
+ md: "size-11 rounded-[0.85rem] text-[1.125rem]",
2319
+ lg: "size-14 rounded-[1.05rem] text-[1.5rem]"
2320
+ };
2321
+ function monogramLetter(name) {
2322
+ const match = name.match(/[\p{L}\p{N}]/u);
2323
+ return match ? match[0].toLocaleUpperCase() : "\xB7";
2324
+ }
2325
+ function monogramGround(seed) {
2326
+ let h = 2166136261;
2327
+ for (let i = 0; i < seed.length; i++) {
2328
+ h ^= seed.charCodeAt(i);
2329
+ h = Math.imul(h, 16777619);
2330
+ }
2331
+ return (h >>> 0) % GROUNDS.length;
2332
+ }
2333
+ function Monogram({
2334
+ name,
2335
+ seed,
2336
+ size = "md",
2337
+ className,
2338
+ style
2339
+ }) {
2340
+ const ground = GROUNDS[monogramGround(seed ?? name)] ?? GROUNDS[0];
2341
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2342
+ "span",
2343
+ {
2344
+ "aria-hidden": true,
2345
+ className: cn(
2346
+ "relative inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-semibold leading-none tracking-[-0.02em]",
2347
+ SIZES[size],
2348
+ ground.className,
2349
+ className
2350
+ ),
2351
+ style: { background: ground.background, ...style },
2352
+ children: [
2353
+ /* @__PURE__ */ jsxRuntime.jsx(
2354
+ "span",
2355
+ {
2356
+ className: "absolute inset-0",
2357
+ style: {
2358
+ backgroundImage: `radial-gradient(circle, ${ground.dot} 0.9px, transparent 1.2px)`,
2359
+ backgroundSize: "6px 6px",
2360
+ maskImage: "radial-gradient(90% 90% at 100% 100%, black, transparent 75%)"
2361
+ }
2362
+ }
2363
+ ),
2364
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "relative", children: monogramLetter(name) })
2365
+ ]
2366
+ }
2367
+ );
2368
+ }
2296
2369
  function NavLink({ item, className, onNavigate }) {
2297
2370
  const cls = cn(
2298
2371
  "rounded-full px-3 py-2 text-[0.9375rem] transition-colors",
@@ -2642,6 +2715,7 @@ exports.LoadingBlock = LoadingBlock;
2642
2715
  exports.Lockup = Lockup;
2643
2716
  exports.MARK_FACES = MARK_FACES;
2644
2717
  exports.Mark = Mark;
2718
+ exports.Monogram = Monogram;
2645
2719
  exports.Notice = Notice;
2646
2720
  exports.PackageCard = PackageCard;
2647
2721
  exports.PageHeader = PageHeader;
@@ -2708,6 +2782,8 @@ exports.badgeVariants = badgeVariants;
2708
2782
  exports.buttonVariants = buttonVariants;
2709
2783
  exports.cardVariants = cardVariants;
2710
2784
  exports.cn = cn;
2785
+ exports.monogramGround = monogramGround;
2786
+ exports.monogramLetter = monogramLetter;
2711
2787
  exports.portraitTone = portraitTone;
2712
2788
  exports.satsText = satsText;
2713
2789
  exports.sectionVariants = sectionVariants;