import { jsx as s } from "react/jsx-runtime";
import { useMemo as d } from "react";
import F from "prop-types";
import { styled as x, useTheme as T, deepmerge as B, ThemeProvider as L } from "@arcblock/ux/lib/Theme";
import { withErrorBoundary as M } from "react-error-boundary";
import { useLocaleContext as N } from "@arcblock/ux/lib/Locale/context";
import { ErrorFallback as w } from "@arcblock/ux/lib/ErrorBoundary";
import j from "@arcblock/ux/lib/hooks/use-blocklet-logo";
import C from "lodash/omit";
import E from "./internal-footer.js";
import { mapRecursive as I } from "../utils.js";
import { formatBlockletInfo as P, getLocalizedNavigation as l } from "../blocklets.js";
import { BlockletMetaProps as z } from "../types.js";
import D from "../libs/with-hide-when-embed.js";
function f({ meta: o = {}, theme: t = {}, ...c }) {
  const { locale: i, defaultLocale: a } = N() || {}, m = T(), r = d(() => {
    const e = Object.assign({}, window.blocklet, o);
    try {
      return P(e);
    } catch ($) {
      return console.error("Failed to format blocklet info", $, e), e;
    }
  }, [o]), p = d(() => B(m, t), [m, t]), b = j({
    key: "xs",
    // 始终优先长 logo
    meta: o,
    theme: t
  });
  if (!r.appName)
    return null;
  const { appName: g, appDescription: k, description: u, copyright: h } = r, v = p.palette.background.default, n = {
    footerNav: l({
      navigation: r?.navigation?.footer,
      locale: i,
      defaultLocale: a,
      section: "footer"
    }) || [],
    socialMedia: l({
      navigation: r?.navigation?.social,
      locale: i,
      defaultLocale: a,
      section: "footer"
    }) || [],
    links: l({
      navigation: r?.navigation?.bottom,
      locale: i,
      defaultLocale: a,
      section: "footer"
    }) || []
  }, y = {
    brand: {
      name: g,
      description: k || u,
      logo: b
    },
    navigation: I(
      n.footerNav,
      (e) => ({
        ...e,
        label: e.title,
        link: e.link
      }),
      "items"
    ),
    copyright: h,
    socialMedia: n.socialMedia,
    links: n.links.map((e) => ({ ...e, label: e.title }))
  };
  return /* @__PURE__ */ s(L, { theme: p, children: /* @__PURE__ */ s(H, { ...y, ...C(c, ["bordered"]), $bordered: c?.bordered, $bgcolor: v }) });
}
f.propTypes = {
  meta: z,
  // 允许覆盖 footer 内置的 theme
  theme: F.object
};
const H = x(E)`
  ${({ $bordered: o, theme: t }) => `border-top: 1px solid ${o && t.palette.divider};`}
  color: ${({ theme: o }) => o.palette.text.secondary};
  ${({ $bgcolor: o }) => o && `background-color: ${o};`}
`, _ = M(D(f), {
  FallbackComponent: w
});
export {
  _ as default
};
