@orangecheck/design 0.24.0 → 0.26.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/chrome.d.mts CHANGED
@@ -178,8 +178,11 @@ interface OcFamilyFooterProps {
178
178
  columns?: FooterColumn[];
179
179
  family?: "products" | "protocols" | "both";
180
180
  legalBase?: string;
181
+ legalCopyright?: ReactNode;
182
+ legalLinks?: FooterLink[];
183
+ builtWith?: ReactNode;
181
184
  className?: string;
182
185
  }
183
- declare function OcFamilyFooter({ brand, columns, family, legalBase, className, }: OcFamilyFooterProps): react_jsx_runtime.JSX.Element;
186
+ declare function OcFamilyFooter({ brand, columns, family, legalBase, legalCopyright, legalLinks, builtWith, className, }: OcFamilyFooterProps): react_jsx_runtime.JSX.Element;
184
187
 
185
188
  export { AppShell, type AppShellProps, type EcosystemSlug, EcosystemSwitcher, type EcosystemSwitcherProps, FAMILY_PROPERTIES, type FamilyCategory, type FamilyProperty, type FooterColumn, type FooterLink, LayoutSubHeader, type LayoutSubHeaderProps, type LayoutSubHeaderTag, OcAccountMenu, type OcAccountMenuBuildInfo, type OcAccountMenuItem, type OcAccountMenuProps, type OcAccountMenuSession, OcAccountMenuView, type OcAccountMenuViewProps, OcAppBar, type OcAppBarProps, OcDashboardHub, type OcDashboardHubProps, OcDashboardShell, type OcDashboardShellProps, type OcDashboardTool, OcFamilyFooter, type OcFamilyFooterBrand, type OcFamilyFooterProps, OcLogoDropdown, type OcLogoDropdownProps, OcPrimaryNav, type OcPrimaryNavLink, type OcPrimaryNavProps, SITE_STATE_LABEL, type SiteState, findFamilyProperty };
package/dist/chrome.d.ts CHANGED
@@ -178,8 +178,11 @@ interface OcFamilyFooterProps {
178
178
  columns?: FooterColumn[];
179
179
  family?: "products" | "protocols" | "both";
180
180
  legalBase?: string;
181
+ legalCopyright?: ReactNode;
182
+ legalLinks?: FooterLink[];
183
+ builtWith?: ReactNode;
181
184
  className?: string;
182
185
  }
183
- declare function OcFamilyFooter({ brand, columns, family, legalBase, className, }: OcFamilyFooterProps): react_jsx_runtime.JSX.Element;
186
+ declare function OcFamilyFooter({ brand, columns, family, legalBase, legalCopyright, legalLinks, builtWith, className, }: OcFamilyFooterProps): react_jsx_runtime.JSX.Element;
184
187
 
185
188
  export { AppShell, type AppShellProps, type EcosystemSlug, EcosystemSwitcher, type EcosystemSwitcherProps, FAMILY_PROPERTIES, type FamilyCategory, type FamilyProperty, type FooterColumn, type FooterLink, LayoutSubHeader, type LayoutSubHeaderProps, type LayoutSubHeaderTag, OcAccountMenu, type OcAccountMenuBuildInfo, type OcAccountMenuItem, type OcAccountMenuProps, type OcAccountMenuSession, OcAccountMenuView, type OcAccountMenuViewProps, OcAppBar, type OcAppBarProps, OcDashboardHub, type OcDashboardHubProps, OcDashboardShell, type OcDashboardShellProps, type OcDashboardTool, OcFamilyFooter, type OcFamilyFooterBrand, type OcFamilyFooterProps, OcLogoDropdown, type OcLogoDropdownProps, OcPrimaryNav, type OcPrimaryNavLink, type OcPrimaryNavProps, SITE_STATE_LABEL, type SiteState, findFamilyProperty };
package/dist/chrome.js CHANGED
@@ -817,6 +817,10 @@ function useOcSkin() {
817
817
  }
818
818
  return ctx;
819
819
  }
820
+ function useOcMotion() {
821
+ const { motion, setMotion } = useOcSkin();
822
+ return { motion, setMotion };
823
+ }
820
824
  var MODES = [
821
825
  { id: "light", label: "light", Icon: lucideReact.Sun },
822
826
  { id: "dark", label: "dark", Icon: lucideReact.Moon },
@@ -824,10 +828,12 @@ var MODES = [
824
828
  ];
825
829
  function AppearanceControls({ className }) {
826
830
  const { skin, setSkin, themes } = useOcSkin();
831
+ const { motion, setMotion } = useOcMotion();
827
832
  const { theme, setTheme } = nextThemes.useTheme();
828
833
  const [mounted, setMounted] = React.useState(false);
829
834
  React.useEffect(() => setMounted(true), []);
830
835
  const activeMode = mounted ? theme ?? "system" : null;
836
+ const activeMotion = mounted ? motion : null;
831
837
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className, children: [
832
838
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "label-mono text-muted-foreground px-3 pt-3 pb-2", children: "mode" }),
833
839
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-3 gap-1 px-2 pb-2", children: MODES.map(({ id, label, Icon }) => {
@@ -874,6 +880,32 @@ function AppearanceControls({ className }) {
874
880
  ]
875
881
  }
876
882
  ) }, t.id);
883
+ }) }),
884
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "label-mono text-muted-foreground border-t px-3 pt-3 pb-2", children: "ambient motion" }),
885
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-1 px-2 pb-3", children: [
886
+ { id: "on", label: "on", Icon: lucideReact.Waves },
887
+ { id: "off", label: "off", Icon: lucideReact.Pause }
888
+ ].map(({ id, label, Icon }) => {
889
+ const active = activeMotion === id;
890
+ return /* @__PURE__ */ jsxRuntime.jsxs(
891
+ "button",
892
+ {
893
+ type: "button",
894
+ role: "menuitemradio",
895
+ "aria-checked": active,
896
+ "aria-label": id === "off" ? "pause ambient motion" : "ambient motion on",
897
+ onClick: () => setMotion(id),
898
+ className: cn(
899
+ "flex flex-col items-center gap-1 rounded-md border py-2 text-[11px] transition-colors",
900
+ active ? "border-primary text-foreground bg-accent" : "border-transparent text-muted-foreground hover:bg-accent hover:text-accent-foreground"
901
+ ),
902
+ children: [
903
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "size-4", "aria-hidden": true }),
904
+ label
905
+ ]
906
+ },
907
+ id
908
+ );
877
909
  }) })
878
910
  ] });
879
911
  }
@@ -2146,6 +2178,9 @@ function OcFamilyFooter({
2146
2178
  columns = [],
2147
2179
  family,
2148
2180
  legalBase = "https://ochk.io",
2181
+ legalCopyright,
2182
+ legalLinks,
2183
+ builtWith,
2149
2184
  className
2150
2185
  }) {
2151
2186
  const familyCols = [];
@@ -2159,6 +2194,13 @@ function OcFamilyFooter({
2159
2194
  const grid = GRID[allColumns.length] ?? GRID[3];
2160
2195
  const year = (/* @__PURE__ */ new Date()).getFullYear();
2161
2196
  const legal = (path) => `${legalBase}${path}`;
2197
+ const links = legalLinks ?? [
2198
+ { href: legal("/privacy"), label: "privacy" },
2199
+ { href: legal("/terms"), label: "terms" },
2200
+ { href: legal("/security"), label: "security" },
2201
+ { href: legal("/trademark"), label: "trademarks" },
2202
+ { href: legal("/contact"), label: "contact" }
2203
+ ];
2162
2204
  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: [
2163
2205
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-8 sm:grid-cols-2 sm:gap-10", grid), children: [
2164
2206
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
@@ -2172,56 +2214,24 @@ function OcFamilyFooter({
2172
2214
  allColumns.map((column) => /* @__PURE__ */ jsxRuntime.jsx(FooterColumnView, { column }, column.label))
2173
2215
  ] }),
2174
2216
  /* @__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: [
2175
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
2217
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: legalCopyright ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2176
2218
  "\xA9 ",
2177
2219
  year,
2178
2220
  " orangecheck \xB7 mit + cc-by-4.0"
2179
- ] }),
2180
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-muted-foreground/80 flex flex-wrap items-center gap-x-4 gap-y-1", children: [
2181
- /* @__PURE__ */ jsxRuntime.jsx(
2182
- "a",
2183
- {
2184
- href: legal("/privacy"),
2185
- className: "hover:text-foreground transition-colors",
2186
- children: "privacy"
2187
- }
2188
- ),
2189
- /* @__PURE__ */ jsxRuntime.jsx(
2190
- "a",
2191
- {
2192
- href: legal("/terms"),
2193
- className: "hover:text-foreground transition-colors",
2194
- children: "terms"
2195
- }
2196
- ),
2197
- /* @__PURE__ */ jsxRuntime.jsx(
2198
- "a",
2199
- {
2200
- href: legal("/security"),
2201
- className: "hover:text-foreground transition-colors",
2202
- children: "security"
2203
- }
2204
- ),
2205
- /* @__PURE__ */ jsxRuntime.jsx(
2206
- "a",
2207
- {
2208
- href: legal("/trademark"),
2209
- className: "hover:text-foreground transition-colors",
2210
- children: "trademarks"
2211
- }
2212
- ),
2213
- /* @__PURE__ */ jsxRuntime.jsx(
2214
- "a",
2215
- {
2216
- href: legal("/contact"),
2217
- className: "hover:text-foreground transition-colors",
2218
- children: "contact"
2219
- }
2220
- )
2221
- ] }),
2221
+ ] }) }),
2222
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground/80 flex flex-wrap items-center gap-x-4 gap-y-1", children: links.map((link) => /* @__PURE__ */ jsxRuntime.jsx(
2223
+ "a",
2224
+ {
2225
+ href: link.href,
2226
+ ...link.external ? { target: "_blank", rel: "noreferrer" } : {},
2227
+ className: "hover:text-foreground transition-colors",
2228
+ children: link.label
2229
+ },
2230
+ link.label
2231
+ )) }),
2222
2232
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground inline-flex items-center gap-1.5", children: [
2223
2233
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary text-[13px] leading-none", children: "\u20BF" }),
2224
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "built with bitcoin" })
2234
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: builtWith ?? "built with bitcoin" })
2225
2235
  ] })
2226
2236
  ] })
2227
2237
  ] }) });