@orangecheck/design 0.23.0 → 0.24.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.
@@ -1,5 +1,5 @@
1
1
  export { AccentList, AccentListItem, AccentListProps, AccentNote, AccentNoteProps, BrandBand, Callout, CalloutProps, CalloutTone, CheckList, CheckListProps, ComparisonRow, ComparisonTable, ComparisonTableProps, DataRow, DataRowProps, DefinitionItem, DefinitionList, DefinitionListProps, EmailCapture, EmailCaptureProps, EmptyState, EmptyStateCta, EmptyStateProps, Faq, FaqItem, FaqProps, FeatureCard, FeatureCardProps, HelpHint, HelpHintProps, MarketingHeading, MarketingHeadingProps, NumberedStep, NumberedStepProps, Panel, PanelProps, Section, SectionHeader, SectionHeaderProps, SectionProps, StatCard, StatCardProps, StatGrid, StatGridProps, StatItem, StatTile, Step, StepList, StepListProps, TwoToneHeading, TwoToneHeadingProps, VerifiedChip, VerifiedChipProps } from './composites.mjs';
2
- export { AppShell, AppShellProps, EcosystemSlug, EcosystemSwitcher, EcosystemSwitcherProps, FAMILY_PROPERTIES, FamilyCategory, FamilyProperty, LayoutSubHeader, LayoutSubHeaderProps, LayoutSubHeaderTag, OcAccountMenu, OcAccountMenuBuildInfo, OcAccountMenuItem, OcAccountMenuProps, OcAccountMenuSession, OcAccountMenuView, OcAccountMenuViewProps, OcAppBar, OcAppBarProps, OcDashboardHub, OcDashboardHubProps, OcDashboardShell, OcDashboardShellProps, OcDashboardTool, OcLogoDropdown, OcLogoDropdownProps, OcPrimaryNav, OcPrimaryNavLink, OcPrimaryNavProps, SITE_STATE_LABEL, SiteState, findFamilyProperty } from './chrome.mjs';
2
+ export { AppShell, AppShellProps, EcosystemSlug, EcosystemSwitcher, EcosystemSwitcherProps, FAMILY_PROPERTIES, FamilyCategory, FamilyProperty, FooterColumn, FooterLink, LayoutSubHeader, LayoutSubHeaderProps, LayoutSubHeaderTag, OcAccountMenu, OcAccountMenuBuildInfo, OcAccountMenuItem, OcAccountMenuProps, OcAccountMenuSession, OcAccountMenuView, OcAccountMenuViewProps, OcAppBar, OcAppBarProps, OcDashboardHub, OcDashboardHubProps, OcDashboardShell, OcDashboardShellProps, OcDashboardTool, OcFamilyFooter, OcFamilyFooterBrand, OcFamilyFooterProps, OcLogoDropdown, OcLogoDropdownProps, OcPrimaryNav, OcPrimaryNavLink, OcPrimaryNavProps, SITE_STATE_LABEL, SiteState, findFamilyProperty } from './chrome.mjs';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react';
5
5
  import '@orangecheck/auth-client';
@@ -1,5 +1,5 @@
1
1
  export { AccentList, AccentListItem, AccentListProps, AccentNote, AccentNoteProps, BrandBand, Callout, CalloutProps, CalloutTone, CheckList, CheckListProps, ComparisonRow, ComparisonTable, ComparisonTableProps, DataRow, DataRowProps, DefinitionItem, DefinitionList, DefinitionListProps, EmailCapture, EmailCaptureProps, EmptyState, EmptyStateCta, EmptyStateProps, Faq, FaqItem, FaqProps, FeatureCard, FeatureCardProps, HelpHint, HelpHintProps, MarketingHeading, MarketingHeadingProps, NumberedStep, NumberedStepProps, Panel, PanelProps, Section, SectionHeader, SectionHeaderProps, SectionProps, StatCard, StatCardProps, StatGrid, StatGridProps, StatItem, StatTile, Step, StepList, StepListProps, TwoToneHeading, TwoToneHeadingProps, VerifiedChip, VerifiedChipProps } from './composites.js';
2
- export { AppShell, AppShellProps, EcosystemSlug, EcosystemSwitcher, EcosystemSwitcherProps, FAMILY_PROPERTIES, FamilyCategory, FamilyProperty, LayoutSubHeader, LayoutSubHeaderProps, LayoutSubHeaderTag, OcAccountMenu, OcAccountMenuBuildInfo, OcAccountMenuItem, OcAccountMenuProps, OcAccountMenuSession, OcAccountMenuView, OcAccountMenuViewProps, OcAppBar, OcAppBarProps, OcDashboardHub, OcDashboardHubProps, OcDashboardShell, OcDashboardShellProps, OcDashboardTool, OcLogoDropdown, OcLogoDropdownProps, OcPrimaryNav, OcPrimaryNavLink, OcPrimaryNavProps, SITE_STATE_LABEL, SiteState, findFamilyProperty } from './chrome.js';
2
+ export { AppShell, AppShellProps, EcosystemSlug, EcosystemSwitcher, EcosystemSwitcherProps, FAMILY_PROPERTIES, FamilyCategory, FamilyProperty, FooterColumn, FooterLink, LayoutSubHeader, LayoutSubHeaderProps, LayoutSubHeaderTag, OcAccountMenu, OcAccountMenuBuildInfo, OcAccountMenuItem, OcAccountMenuProps, OcAccountMenuSession, OcAccountMenuView, OcAccountMenuViewProps, OcAppBar, OcAppBarProps, OcDashboardHub, OcDashboardHubProps, OcDashboardShell, OcDashboardShellProps, OcDashboardTool, OcFamilyFooter, OcFamilyFooterBrand, OcFamilyFooterProps, OcLogoDropdown, OcLogoDropdownProps, OcPrimaryNav, OcPrimaryNavLink, OcPrimaryNavProps, SITE_STATE_LABEL, SiteState, findFamilyProperty } from './chrome.js';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react';
5
5
  import '@orangecheck/auth-client';
@@ -2986,6 +2986,130 @@ function OcAppBar({
2986
2986
  }
2987
2987
  );
2988
2988
  }
2989
+ var GRID = {
2990
+ 1: "md:grid-cols-[1.2fr_1fr]",
2991
+ 2: "md:grid-cols-[1.2fr_1fr_1fr]",
2992
+ 3: "md:grid-cols-[1.2fr_1fr_1fr_1fr]",
2993
+ 4: "md:grid-cols-[1.2fr_1fr_1fr_1fr_1fr]",
2994
+ 5: "md:grid-cols-[1.2fr_1fr_1fr_1fr_1fr_1fr]"
2995
+ };
2996
+ var LINK_CLS = "text-muted-foreground hover:text-foreground font-mono text-xs tracking-wide lowercase transition-colors";
2997
+ function FooterLinkItem({ link }) {
2998
+ if (link.external) {
2999
+ return /* @__PURE__ */ jsxRuntime.jsxs("a", { href: link.href, target: "_blank", rel: "noreferrer", className: LINK_CLS, children: [
3000
+ "> ",
3001
+ link.label,
3002
+ " \u2197"
3003
+ ] });
3004
+ }
3005
+ return /* @__PURE__ */ jsxRuntime.jsxs(Link6__default.default, { href: link.href, className: LINK_CLS, children: [
3006
+ "> ",
3007
+ link.label
3008
+ ] });
3009
+ }
3010
+ function FooterColumnView({ column }) {
3011
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
3012
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "label-mono text-primary mb-3", children: column.label }),
3013
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-2", children: column.links.map((link) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(FooterLinkItem, { link }) }, `${column.label}:${link.href}`)) })
3014
+ ] });
3015
+ }
3016
+ function familyColumn(category, label) {
3017
+ return {
3018
+ label,
3019
+ links: FAMILY_PROPERTIES.filter((p) => p.category === category).map(
3020
+ (p) => ({
3021
+ href: p.origin,
3022
+ label: p.label,
3023
+ external: true
3024
+ })
3025
+ )
3026
+ };
3027
+ }
3028
+ function OcFamilyFooter({
3029
+ brand,
3030
+ columns = [],
3031
+ family,
3032
+ legalBase = "https://ochk.io",
3033
+ className
3034
+ }) {
3035
+ const familyCols = [];
3036
+ if (family === "products" || family === "both") {
3037
+ familyCols.push(familyColumn("product", "\xA7 products"));
3038
+ }
3039
+ if (family === "protocols" || family === "both") {
3040
+ familyCols.push(familyColumn("protocol", "\xA7 protocols"));
3041
+ }
3042
+ const allColumns = [...familyCols, ...columns];
3043
+ const grid = GRID[allColumns.length] ?? GRID[3];
3044
+ const year = (/* @__PURE__ */ new Date()).getFullYear();
3045
+ const legal = (path) => `${legalBase}${path}`;
3046
+ return /* @__PURE__ */ jsxRuntime.jsx("footer", { className: cn("border-t", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "container py-10 sm:py-12 md:py-16", children: [
3047
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-8 sm:grid-cols-2 sm:gap-10", grid), children: [
3048
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
3049
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
3050
+ brand.mark,
3051
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-display text-sm font-bold tracking-tight", children: brand.wordmark })
3052
+ ] }),
3053
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground mt-3 max-w-[34ch] text-sm leading-relaxed", children: brand.tagline }),
3054
+ brand.meta && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: brand.meta })
3055
+ ] }),
3056
+ allColumns.map((column) => /* @__PURE__ */ jsxRuntime.jsx(FooterColumnView, { column }, column.label))
3057
+ ] }),
3058
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-10 flex flex-col items-start justify-between gap-3 border-t pt-6 font-mono text-[11px] tracking-widest uppercase sm:flex-row sm:items-center", children: [
3059
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
3060
+ "\xA9 ",
3061
+ year,
3062
+ " orangecheck \xB7 mit + cc-by-4.0"
3063
+ ] }),
3064
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-muted-foreground/80 flex flex-wrap items-center gap-x-4 gap-y-1", children: [
3065
+ /* @__PURE__ */ jsxRuntime.jsx(
3066
+ "a",
3067
+ {
3068
+ href: legal("/privacy"),
3069
+ className: "hover:text-foreground transition-colors",
3070
+ children: "privacy"
3071
+ }
3072
+ ),
3073
+ /* @__PURE__ */ jsxRuntime.jsx(
3074
+ "a",
3075
+ {
3076
+ href: legal("/terms"),
3077
+ className: "hover:text-foreground transition-colors",
3078
+ children: "terms"
3079
+ }
3080
+ ),
3081
+ /* @__PURE__ */ jsxRuntime.jsx(
3082
+ "a",
3083
+ {
3084
+ href: legal("/security"),
3085
+ className: "hover:text-foreground transition-colors",
3086
+ children: "security"
3087
+ }
3088
+ ),
3089
+ /* @__PURE__ */ jsxRuntime.jsx(
3090
+ "a",
3091
+ {
3092
+ href: legal("/trademark"),
3093
+ className: "hover:text-foreground transition-colors",
3094
+ children: "trademarks"
3095
+ }
3096
+ ),
3097
+ /* @__PURE__ */ jsxRuntime.jsx(
3098
+ "a",
3099
+ {
3100
+ href: legal("/contact"),
3101
+ className: "hover:text-foreground transition-colors",
3102
+ children: "contact"
3103
+ }
3104
+ )
3105
+ ] }),
3106
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground inline-flex items-center gap-1.5", children: [
3107
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary text-[13px] leading-none", children: "\u20BF" }),
3108
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "built with bitcoin" })
3109
+ ] })
3110
+ ] })
3111
+ ] }) });
3112
+ }
2989
3113
 
2990
3114
  exports.AccentList = AccentList;
2991
3115
  exports.AccentNote = AccentNote;
@@ -3011,6 +3135,7 @@ exports.OcAccountMenuView = OcAccountMenuView;
3011
3135
  exports.OcAppBar = OcAppBar;
3012
3136
  exports.OcDashboardHub = OcDashboardHub;
3013
3137
  exports.OcDashboardShell = OcDashboardShell;
3138
+ exports.OcFamilyFooter = OcFamilyFooter;
3014
3139
  exports.OcLogoDropdown = OcLogoDropdown;
3015
3140
  exports.OcPrimaryNav = OcPrimaryNav;
3016
3141
  exports.Panel = Panel;