UNPKG

@blockscout/ui-toolkit

Version:

A comprehensive collection of reusable Chakra UI components and theme system for Blockscout's projects

1,482 lines 340 kB
import { jsx as p, jsxs as G, Fragment as Me } from "react/jsx-runtime"; import { Accordion as Fe, Icon as ge, defineRecipe as Ae, Circle as Oi, Skeleton as mr, Stack as Ri, Button as Sa, ButtonGroup as Pi, AbsoluteCenter as Dt, Spinner as pr, Span as ka, useRecipe as Aa, Alert as $e, Avatar as it, Group as vr, useBreakpointValue as Ia, Tooltip as Xe, Portal as He, useDisclosure as Oa, chakra as We, Badge as Ra, Checkbox as Qe, CheckboxGroup as Pa, Link as Pr, LinkOverlay as Lr, LinkBox as La, Flex as Rt, Dialog as he, Drawer as xe, Field as Te, Heading as Na, Image as Da, InputElement as Nr, Input as za, Menu as de, PinInput as lt, Popover as me, ProgressCircle as ot, defineSlotRecipe as ce, defineConfig as Ba, createSystem as Ua, defaultConfig as Fa, ChakraProvider as Ma, RadioGroup as nt, useRatingGroup as ja, RatingGroup as Ve, useSelectContext as Li, Select as fe, createListCollection as Ha, Box as je, Slider as Ee, HStack as Wa, For as $a, Switch as ze, Table as Ze, Tabs as zt, Tag as Be, Textarea as Xa, createToaster as Va, Toaster as Ga, Toast as Je, Center as qa, VisuallyHidden as Ka, Text as Dr } from "@chakra-ui/react"; import * as P from "react"; import B, { useState as _r, useEffect as Ni, useCallback as zr } from "react"; import Ya from "react-dom"; import Di from "next/link"; import { ThemeProvider as Za, useTheme as Qa } from "next-themes"; import { useRouter as zi } from "next/router"; import { useFormContext as Pe, useWatch as Ja, useController as De } from "react-hook-form"; const Bi = (e) => /* @__PURE__ */ P.createElement("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", ...e }, /* @__PURE__ */ P.createElement("path", { d: "M11.535 11.293a1 1 0 0 0 0 1.414l3.536 3.536a1 1 0 1 1-1.414 1.414l-4.95-4.95a1 1 0 0 1 0-1.414l4.95-4.95a1 1 0 1 1 1.414 1.414l-3.536 3.536Z", fill: "currentColor" })), i0 = P.forwardRef(function(t, r) { const { children: n, indicatorPlacement: o, variant: i, noIndicator: c, ...l } = t, d = i === "faq" ? "start" : o ?? "end", h = i === "faq" ? /* @__PURE__ */ p( Fe.ItemIndicator, { asChild: !0, rotate: "0deg", position: "relative", _before: { content: '""', position: "absolute", display: "block", bgColor: "{currentColor}", w: "100%", h: "2px", borderRadius: "2px", left: "0", top: "50%", transform: "translateY(-50%)" }, _after: { content: '""', position: "absolute", display: "block", bgColor: "{currentColor}", w: "2px", h: "100%", borderRadius: "2px", left: "50%", top: "0", transform: "translateX(-50%)", transition: "transform 0.2s ease-in-out" }, _open: { _after: { transform: "translateX(-50%) rotate(90deg)" } }, children: /* @__PURE__ */ p("div", {}) } ) : /* @__PURE__ */ p(Fe.ItemIndicator, { rotate: { base: "180deg", _open: "270deg" }, display: "flex", children: /* @__PURE__ */ p(ge, { boxSize: 5, children: /* @__PURE__ */ p(Bi, {}) }) }); return /* @__PURE__ */ G(Fe.ItemTrigger, { className: "group", ...l, ref: r, children: [ d === "start" && !c && h, n, d === "end" && !c && h ] }); }), a0 = P.forwardRef(function(t, r) { return /* @__PURE__ */ p(Fe.ItemContent, { children: /* @__PURE__ */ p(Fe.ItemBody, { ...t, ref: r }) }); }), l0 = (e) => { const { multiple: t = !0, ...r } = e; return /* @__PURE__ */ p(Fe.Root, { multiple: t, ...r }); }, s0 = Fe.Item, el = (e) => /* @__PURE__ */ P.createElement("svg", { viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", ...e }, /* @__PURE__ */ P.createElement("path", { d: "M10 18.333a8.333 8.333 0 1 1 0-16.666 8.333 8.333 0 1 1 0 16.666Zm-.834-9.166v5h1.667v-5H9.166Zm0-3.334V7.5h1.667V5.833H9.166Z", fill: "currentColor" })), tl = (e) => /* @__PURE__ */ P.createElement("svg", { viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", ...e }, /* @__PURE__ */ P.createElement("path", { d: "M9.44 8.035a.791.791 0 0 0 1.12 0l3.802-3.803a.791.791 0 0 1 1.119 0l.287.287a.79.79 0 0 1 0 1.119L11.965 9.44a.79.79 0 0 0 0 1.118l3.803 3.803a.791.791 0 0 1 0 1.119l-.287.287a.791.791 0 0 1-1.119 0l-3.803-3.803a.79.79 0 0 0-1.118 0l-3.803 3.803a.79.79 0 0 1-1.119 0l-.287-.287a.791.791 0 0 1 0-1.119l3.803-3.803a.791.791 0 0 0 0-1.118L4.232 5.638a.791.791 0 0 1 0-1.119l.287-.287a.791.791 0 0 1 1.119 0L9.44 8.035Z", fill: "currentColor" })), Ui = Ae({ base: { display: "flex", gap: 0, borderRadius: "sm", overflow: "hidden", _disabled: { opacity: "control.disabled" }, minWidth: "auto" }, variants: { visual: { plain: { bg: "transparent", color: "closeButton.fg", border: "none", _hover: { bg: "transparent", color: "link.primary.hover" } } }, size: { md: { boxSize: 5 } } }, defaultVariants: { size: "md", visual: "plain" } }), c0 = P.forwardRef(function(t, r) { const { size: n, ...o } = t; return /* @__PURE__ */ p(Oi, { size: n, asChild: !0, ref: r, children: /* @__PURE__ */ p(mr, { ...o }) }); }), u0 = P.forwardRef( function(t, r) { const { noOfLines: n = 3, gap: o, ...i } = t; return /* @__PURE__ */ p(Ri, { gap: o, width: "full", ref: r, children: Array.from({ length: n }).map((c, l) => /* @__PURE__ */ p( mr, { height: "4", ...t, _last: { maxW: "80%" }, ...i }, l )) }); } ), we = P.forwardRef( function(t, r) { const { loading: n = !1, ...o } = t; return /* @__PURE__ */ p( mr, { ref: r, ...n ? { "data-loading": !0, state: "loading" } : { variant: "none" }, ...o } ); } ), rl = P.forwardRef( function(t, r) { const { loading: n, disabled: o, loadingText: i, children: c, expanded: l, selected: d, highlighted: h, loadingSkeleton: g = !1, ...v } = t; return /* @__PURE__ */ p(we, { loading: g, asChild: !0, ref: r, children: /* @__PURE__ */ p( Sa, { ...l ? { "data-expanded": !0 } : {}, ...d ? { "data-selected": !0 } : {}, ...h ? { "data-highlighted": !0 } : {}, ...n ? { "data-loading": !0 } : {}, ...g ? { "data-loading-skeleton": !0 } : {}, disabled: !g && (n || o), ...v, children: n && !i ? /* @__PURE__ */ G(Me, { children: [ /* @__PURE__ */ p(Dt, { display: "inline-flex", children: /* @__PURE__ */ p(pr, { size: "inherit", color: "inherit" }) }), /* @__PURE__ */ p(ka, { opacity: 0, children: c }) ] }) : n && i ? /* @__PURE__ */ G(Me, { children: [ /* @__PURE__ */ p(pr, { size: "inherit", color: "inherit" }), i ] }) : c } ) }); } ), d0 = P.forwardRef( function(t, r) { const { ...n } = t; return /* @__PURE__ */ p(Pi, { ref: r, ...n }); } ), f0 = P.forwardRef( function(t, r) { const { children: n, onChange: o, variant: i = "segmented", defaultValue: c, loading: l = !1, equalWidth: d = !1, ...h } = t, g = P.useMemo(() => { const w = Array.isArray(n) ? n[0] : void 0; return typeof (w == null ? void 0 : w.props.value) == "string" ? w.props.value : void 0; }, [n]), [v, T] = P.useState(c ?? g), b = P.useCallback((w) => { const O = w.currentTarget.value; T(O), o == null || o(O); }, [o]), S = P.Children.map(n, (w) => P.cloneElement(w, { onClick: b, selected: v === w.props.value, variant: i })), L = P.Children.count(n); return /* @__PURE__ */ p(we, { loading: l, children: /* @__PURE__ */ p( Pi, { ref: r, gap: 0, ...d ? { display: "grid", gridTemplateColumns: `repeat(${L}, 1fr)` } : {}, ...h, children: S } ) }); } ), Bt = B.forwardRef( function(t, r) { const { size: n, variant: o = "plain", children: i, ...c } = t, l = B.Children.only(i), d = n ? B.cloneElement(l, { boxSize: 5 }) : l, h = (() => { switch (n) { case "2xs": return { _icon: { boxSize: 5 }, boxSize: 5, borderRadius: "sm" }; case "md": return { _icon: { boxSize: 5 }, boxSize: 8 }; default: return {}; } })(); return /* @__PURE__ */ p( rl, { ref: r, display: "inline-flex", justifyContent: "center", alignItems: "center", p: 0, minW: "auto", flexShrink: "0", variant: o, ...h, ...c, children: d } ); } ), Le = P.forwardRef(function(t, r) { const n = Aa({ recipe: Ui }), [o, i] = n.splitVariantProps(t), c = n(o); return /* @__PURE__ */ p(Bt, { "aria-label": "Close", ref: r, css: c, ...i, children: t.children ?? /* @__PURE__ */ p(ge, { boxSize: 5, children: /* @__PURE__ */ p(tl, {}) }) }); }), p0 = P.forwardRef( function(t, r) { const { title: n, children: o, icon: i, closable: c, onClose: l, startElement: d, endElement: h, loading: g, showIcon: v = !1, descriptionProps: T, ...b } = t, [S, L] = P.useState(!0), w = /* @__PURE__ */ p(ge, { boxSize: 5, children: /* @__PURE__ */ p(el, {}) }), O = d !== void 0 ? d : !v && i === void 0 ? null : /* @__PURE__ */ p($e.Indicator, { children: i || w }), C = P.useCallback(() => { L(!1), l == null || l(); }, [l]); return c && !S ? null : /* @__PURE__ */ p(we, { loading: g, asChild: !0, children: /* @__PURE__ */ G($e.Root, { ref: r, ...b, children: [ O, o ? /* @__PURE__ */ G($e.Content, { children: [ n && /* @__PURE__ */ p($e.Title, { children: n }), /* @__PURE__ */ p($e.Description, { display: "inline-flex", flexWrap: "wrap", ...T, children: o }) ] }) : /* @__PURE__ */ p($e.Title, { flex: "1", children: n }), h, c && /* @__PURE__ */ p( Le, { pos: "relative", m: 0.5, alignSelf: "flex-start", onClick: C } ) ] }) }); } ), h0 = P.forwardRef( function(t, r) { const { name: n, src: o, srcSet: i, loading: c, icon: l, fallback: d, children: h, ...g } = t; return /* @__PURE__ */ G(it.Root, { ref: r, ...g, children: [ /* @__PURE__ */ p(nl, { name: n, icon: l, children: d }), /* @__PURE__ */ p(it.Image, { src: o, srcSet: i, loading: c }), h ] }); } ), nl = P.forwardRef( function(t, r) { const { name: n, icon: o, children: i, ...c } = t; return /* @__PURE__ */ G(it.Fallback, { ref: r, ...c, children: [ i, n != null && i == null && /* @__PURE__ */ p(Me, { children: ol(n) }), n == null && i == null && /* @__PURE__ */ p(it.Icon, { asChild: !!o, children: o }) ] }); } ); function ol(e) { const t = e.trim().split(" "), r = t[0] != null ? t[0] : "", n = t.length > 1 ? t[t.length - 1] : ""; return r && n ? `${r.charAt(0)}${n.charAt(0)}` : r.charAt(0); } const g0 = P.forwardRef( function(t, r) { const { size: n, variant: o, borderless: i, ...c } = t; return /* @__PURE__ */ p(it.PropsProvider, { value: { size: n, variant: o, borderless: i }, children: /* @__PURE__ */ p(vr, { gap: "0", spaceX: "-3", ref: r, ...c }) }); } ); function Ut(e, t, { signal: r, edges: n } = {}) { let o, i = null; const c = n != null && n.includes("leading"), l = n == null || n.includes("trailing"), d = () => { i !== null && (e.apply(o, i), o = void 0, i = null); }, h = () => { l && d(), b(); }; let g = null; const v = () => { g != null && clearTimeout(g), g = setTimeout(() => { g = null, h(); }, t); }, T = () => { g !== null && (clearTimeout(g), g = null); }, b = () => { T(), o = void 0, i = null; }, S = () => { T(), d(); }, L = function(...w) { if (r != null && r.aborted) return; o = this, i = w; const O = g == null; v(), c && O && d(); }; return L.schedule = v, L.cancel = b, L.flush = S, r == null || r.addEventListener("abort", b, { once: !0 }), L; } function Fi(e, t, { signal: r, edges: n = ["leading", "trailing"] } = {}) { let o = null; const i = Ut(e, t, { signal: r, edges: n }), c = function(...l) { o == null ? o = Date.now() : Date.now() - o >= t && (o = Date.now(), i.cancel(), i(...l)), i(...l); }; return c.cancel = i.cancel, c.flush = i.flush, c; } function il(e, t) { const r = {}, n = Object.keys(e); for (let o = 0; o < n.length; o++) { const i = n[o], c = e[i]; t(c, i) && (r[i] = c); } return r; } var st = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}; function al(e) { return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e; } var Zt = { exports: {} }, Br; function ll() { return Br || (Br = 1, function(e) { (function() { function t(w, O) { document.addEventListener ? w.addEventListener("scroll", O, !1) : w.attachEvent("scroll", O); } function r(w) { document.body ? w() : document.addEventListener ? document.addEventListener("DOMContentLoaded", function O() { document.removeEventListener("DOMContentLoaded", O), w(); }) : document.attachEvent("onreadystatechange", function O() { (document.readyState == "interactive" || document.readyState == "complete") && (document.detachEvent("onreadystatechange", O), w()); }); } function n(w) { this.a = document.createElement("div"), this.a.setAttribute("aria-hidden", "true"), this.a.appendChild(document.createTextNode(w)), this.b = document.createElement("span"), this.c = document.createElement("span"), this.h = document.createElement("span"), this.f = document.createElement("span"), this.g = -1, this.b.style.cssText = "max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;", this.c.style.cssText = "max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;", this.f.style.cssText = "max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;", this.h.style.cssText = "display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;", this.b.appendChild(this.h), this.c.appendChild(this.f), this.a.appendChild(this.b), this.a.appendChild(this.c); } function o(w, O) { w.a.style.cssText = "max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:" + O + ";"; } function i(w) { var O = w.a.offsetWidth, C = O + 100; return w.f.style.width = C + "px", w.c.scrollLeft = C, w.b.scrollLeft = w.b.scrollWidth + 100, w.g !== O ? (w.g = O, !0) : !1; } function c(w, O) { function C() { var M = N; i(M) && M.a.parentNode && O(M.g); } var N = w; t(w.b, C), t(w.c, C), i(w); } function l(w, O) { var C = O || {}; this.family = w, this.style = C.style || "normal", this.weight = C.weight || "normal", this.stretch = C.stretch || "normal"; } var d = null, h = null, g = null, v = null; function T() { if (h === null) if (b() && /Apple/.test(window.navigator.vendor)) { var w = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))(?:\.([0-9]+))/.exec(window.navigator.userAgent); h = !!w && 603 > parseInt(w[1], 10); } else h = !1; return h; } function b() { return v === null && (v = !!document.fonts), v; } function S() { if (g === null) { var w = document.createElement("div"); try { w.style.font = "condensed 100px sans-serif"; } catch { } g = w.style.font !== ""; } return g; } function L(w, O) { return [w.style, w.weight, S() ? w.stretch : "", "100px", O].join(" "); } l.prototype.load = function(w, O) { var C = this, N = w || "BESbswy", M = 0, D = O || 3e3, F = (/* @__PURE__ */ new Date()).getTime(); return new Promise(function(W, a) { if (b() && !T()) { var s = new Promise(function(m, u) { function _() { (/* @__PURE__ */ new Date()).getTime() - F >= D ? u(Error("" + D + "ms timeout exceeded")) : document.fonts.load(L(C, '"' + C.family + '"'), N).then(function(y) { 1 <= y.length ? m() : setTimeout(_, 25); }, u); } _(); }), f = new Promise(function(m, u) { M = setTimeout(function() { u(Error("" + D + "ms timeout exceeded")); }, D); }); Promise.race([f, s]).then( function() { clearTimeout(M), W(C); }, a ); } else r(function() { function m() { var H; (H = x != -1 && A != -1 || x != -1 && k != -1 || A != -1 && k != -1) && ((H = x != A && x != k && A != k) || (d === null && (H = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent), d = !!H && (536 > parseInt(H[1], 10) || parseInt(H[1], 10) === 536 && 11 >= parseInt(H[2], 10))), H = d && (x == U && A == U && k == U || x == I && A == I && k == I || x == z && A == z && k == z)), H = !H), H && (j.parentNode && j.parentNode.removeChild(j), clearTimeout(M), W(C)); } function u() { if ((/* @__PURE__ */ new Date()).getTime() - F >= D) j.parentNode && j.parentNode.removeChild(j), a(Error("" + D + "ms timeout exceeded")); else { var H = document.hidden; (H === !0 || H === void 0) && (x = _.a.offsetWidth, A = y.a.offsetWidth, k = E.a.offsetWidth, m()), M = setTimeout(u, 50); } } var _ = new n(N), y = new n(N), E = new n(N), x = -1, A = -1, k = -1, U = -1, I = -1, z = -1, j = document.createElement("div"); j.dir = "ltr", o(_, L(C, "sans-serif")), o(y, L(C, "serif")), o(E, L(C, "monospace")), j.appendChild(_.a), j.appendChild(y.a), j.appendChild(E.a), document.body.appendChild(j), U = _.a.offsetWidth, I = y.a.offsetWidth, z = E.a.offsetWidth, u(), c(_, function(H) { x = H, m(); }), o( _, L(C, '"' + C.family + '",sans-serif') ), c(y, function(H) { A = H, m(); }), o(y, L(C, '"' + C.family + '",serif')), c(E, function(H) { k = H, m(); }), o(E, L(C, '"' + C.family + '",monospace')); }); }); }, e.exports = l; })(); }(Zt)), Zt.exports; } var sl = ll(); const cl = /* @__PURE__ */ al(sl); function ul(e = [], { testString: t, timeout: r } = {}, { showErrors: n } = { showErrors: !1 }) { const [o, i] = _r(!1), c = JSON.stringify(e); return Ni(() => { const l = JSON.parse(c).map(({ family: d, weight: h, style: g, stretch: v }) => new cl(d, { weight: h, style: g, stretch: v }).load(t, r)); Promise.all(l).then(() => i(!0)).catch(() => { n && console.error("An error occurred during font loading"); }); }, [c, t, r, n]), o; } function dl(e) { const t = P.useRef(null), r = P.useRef(e); return P.useLayoutEffect(() => { r.current = e; }), P.useEffect(() => { const n = (o) => { const i = t.current; i && !i.contains(o.target) && r.current(o); }; return document.addEventListener("mousedown", n), document.addEventListener("touchstart", n), () => { document.removeEventListener("mousedown", n), document.removeEventListener("touchstart", n); }; }, []), t; } function fl(e) { const t = document.createElement("textarea"); t.value = e, document.body.appendChild(t), t.select(), document.execCommand("copy"), document.body.removeChild(t); } function pl() { const [e, t] = P.useState(null), r = P.useCallback((n) => { (async () => { var i; try { if ((i = navigator == null ? void 0 : navigator.clipboard) != null && i.writeText) await navigator.clipboard.writeText(n), t(n); else throw new Error("writeText not supported"); } catch { fl(n), t(n); } })(); }, []); return [e, r]; } function hl(e, t) { const [r, n] = P.useState(e); return P.useEffect(() => { const o = setTimeout(() => { n(e); }, t); return () => { clearTimeout(o); }; }, [e, t]), r; } const Ft = (e) => e[e.length - 1] === "/" ? e.slice(0, -1) : e, gl = (e) => e[0] === "/" ? e.slice(1) : e; function b0(e) { try { const t = new URL(e ?? ""); return { href: t.href, domain: t.hostname }; } catch { } } function Ur() { return typeof window < "u"; } const bl = /^https?:\/\//i, ml = /^ipfs:\/\//i, vl = /^(?:0x)?[\da-fA-F]+$/, _l = /^0x[\da-fA-F]+$/, Mi = /\.([\da-z]+)$/i, yl = /^\d+$/, m0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, BLOCK_HEIGHT: yl, FILE_EXTENSION: Mi, HEX_REGEXP: vl, HEX_REGEXP_WITH_0X: _l, IPFS_PREFIX: ml, URL_PREFIX: bl }, Symbol.toStringTag, { value: "Module" })), El = (e) => e == null ? void 0 : e.replaceAll("'", '"'), R = (e) => { const t = (Ur() ? window.__envs : process.env) ?? {}; if (Ur() && t.NEXT_PUBLIC_APP_INSTANCE === "pw") { const r = localStorage.getItem(e); if (typeof r == "string") return r; } return El(t[e]); }, te = (e) => { try { return JSON.parse(e || "null"); } catch { return null; } }, Ce = (e) => { const t = R(e); if (t) return Cl(e, t); }, Cl = (e, t) => { try { const r = e.replace(/^NEXT_PUBLIC_/, "").replace(/_URL$/, "").toLowerCase(), n = xl(t); if (!n) throw new Error("Cannot get file path"); return `/assets/configs/${r}.${n}`; } catch { return; } }; function xl(e) { var t; try { return (t = new URL(e).pathname.match(Mi)) == null ? void 0 : t[1]; } catch { return te(e) ? "json" : void 0; } } const wl = (() => { const e = R("NEXT_PUBLIC_API_HOST"), t = R("NEXT_PUBLIC_API_PROTOCOL") || "https", r = R("NEXT_PUBLIC_API_PORT"), n = [ t, "://", e, r && ":" + r ].filter(Boolean).join(""), i = [ R("NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL") || "wss", "://", e, r && ":" + r ].filter(Boolean).join(""); return Object.freeze({ endpoint: n, basePath: Ft(R("NEXT_PUBLIC_API_BASE_PATH") || ""), socketEndpoint: i, host: e ?? "", protocol: t, port: r }); })(), Tl = (() => { const e = R("NEXT_PUBLIC_ADMIN_SERVICE_API_HOST"); if (e) return Object.freeze({ endpoint: e }); })(), Sl = (() => { const e = R("NEXT_PUBLIC_NAME_SERVICE_API_HOST"); if (e) return Object.freeze({ endpoint: e }); })(), kl = (() => { const e = R("NEXT_PUBLIC_CONTRACT_INFO_API_HOST"); if (e) return Object.freeze({ endpoint: e }); })(), Al = (() => { const e = R("NEXT_PUBLIC_METADATA_SERVICE_API_HOST"); if (e) return Object.freeze({ endpoint: e }); })(), Il = (() => { const e = R("NEXT_PUBLIC_REWARDS_SERVICE_API_HOST"); if (e) return Object.freeze({ endpoint: e }); })(), Ol = (() => { const e = R("NEXT_PUBLIC_STATS_API_HOST"); if (e) return Object.freeze({ endpoint: e, basePath: Ft(R("NEXT_PUBLIC_STATS_API_BASE_PATH") || "") }); })(), Rl = (() => { const e = R("NEXT_PUBLIC_TAC_OPERATION_LIFECYCLE_API_HOST"); if (e) return Object.freeze({ endpoint: e }); })(), Pl = (() => { const e = R("NEXT_PUBLIC_VISUALIZE_API_HOST"); if (e) return Object.freeze({ endpoint: e, basePath: Ft(R("NEXT_PUBLIC_VISUALIZE_API_BASE_PATH") || "") }); })(), ve = Object.freeze({ general: wl, admin: Tl, bens: Sl, contractInfo: kl, metadata: Al, rewards: Il, stats: Ol, tac: Rl, visualize: Pl }), hr = R("NEXT_PUBLIC_APP_PORT"), ji = R("NEXT_PUBLIC_APP_PROTOCOL"), Hi = R("NEXT_PUBLIC_APP_HOST"), Ll = [ ji || "https", "://", Hi, hr && ":" + hr ].filter(Boolean).join(""), Nl = R("NEXT_PUBLIC_APP_ENV") === "development", Dl = R("NEXT_PUBLIC_APP_INSTANCE") === "pw", zl = R("NEXT_PUBLIC_ICON_SPRITE_HASH"), yr = Object.freeze({ isDev: Nl, isPw: Dl, protocol: ji, host: Hi, port: hr, baseUrl: Ll, useProxy: R("NEXT_PUBLIC_USE_NEXT_JS_PROXY") === "true", spriteHash: zl }); function Er(e) { if (!e) return !0; try { return new URL(e), !0; } catch { return "Incorrect URL"; } } const v0 = /(?:[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?\.)+[a-z\d][a-z\d-]{0,61}[a-z\d]/gi; function _0(e) { return e ? (() => { try { return new URL(`https://${e}`).hostname; } catch { return; } })() === e.toLowerCase() || "Incorrect domain" : !0; } const Bl = 18, Fr = R("NEXT_PUBLIC_ROLLUP_TYPE"), Ul = Fr === "arbitrum" ? "posting" : Fr === "zkEvm" ? "sequencing" : R("NEXT_PUBLIC_NETWORK_VERIFICATION_TYPE") || "mining", Fl = (() => { const e = R("NEXT_PUBLIC_NETWORK_RPC_URL"), t = Er(e); if (e && t === !0) return [e]; const r = te(e); return Array.isArray(r) ? r : []; })(), Oe = Object.freeze({ id: R("NEXT_PUBLIC_NETWORK_ID"), name: R("NEXT_PUBLIC_NETWORK_NAME"), shortName: R("NEXT_PUBLIC_NETWORK_SHORT_NAME"), currency: { name: R("NEXT_PUBLIC_NETWORK_CURRENCY_NAME"), weiName: R("NEXT_PUBLIC_NETWORK_CURRENCY_WEI_NAME"), symbol: R("NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL"), decimals: Number(R("NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS")) || Bl }, secondaryCoin: { symbol: R("NEXT_PUBLIC_NETWORK_SECONDARY_COIN_SYMBOL") }, hasMultipleGasCurrencies: R("NEXT_PUBLIC_NETWORK_MULTIPLE_GAS_CURRENCIES") === "true", tokenStandard: R("NEXT_PUBLIC_NETWORK_TOKEN_STANDARD_NAME") || "ERC", rpcUrls: Fl, isTestnet: R("NEXT_PUBLIC_IS_TESTNET") === "true", verificationType: Ul }), Ml = R("NEXT_PUBLIC_ADVANCED_FILTER_ENABLED") === "false", Mr = "Advanced filter", jl = Object.freeze(Ml ? { title: Mr, isEnabled: !1 } : { title: Mr, isEnabled: !0 }), Ke = Object.freeze({ reCaptchaV2: { siteKey: R("NEXT_PUBLIC_RE_CAPTCHA_APP_SITE_KEY") } }), jr = "My account", Cr = R("NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED") === "true" && Ke.reCaptchaV2.siteKey ? Object.freeze({ title: jr, isEnabled: !0, recaptchaSiteKey: Ke.reCaptchaV2.siteKey }) : Object.freeze({ title: jr, isEnabled: !1 }), Hr = "Verified tokens info", Wi = ve.contractInfo ? Object.freeze({ title: Hr, isEnabled: !0 }) : Object.freeze({ title: Hr, isEnabled: !1 }), Hl = 'Address verification in "My account"', Wl = Cr.isEnabled && Wi.isEnabled && ve.admin ? Object.freeze({ title: 'Address verification in "My account"', isEnabled: !0 }) : Object.freeze({ title: Hl, isEnabled: !1 }), Wr = "Address metadata", $i = ve.metadata ? Object.freeze({ title: Wr, isEnabled: !0 }) : Object.freeze({ title: Wr, isEnabled: !1 }), $l = [ "slise", "adbutler", "coinzilla", "hype", "none" ], Xl = ["coinzilla", "none"], et = (() => { const e = R("NEXT_PUBLIC_AD_BANNER_PROVIDER"); return e && $l.includes(e) ? e : "slise"; })(), $r = R("NEXT_PUBLIC_AD_BANNER_ADDITIONAL_PROVIDER"), ct = "Banner ads", Vl = (() => { if (et === "adbutler") { const e = te(R("NEXT_PUBLIC_AD_ADBUTLER_CONFIG_DESKTOP")), t = te(R("NEXT_PUBLIC_AD_ADBUTLER_CONFIG_MOBILE")); if (e && t) return Object.freeze({ title: ct, isEnabled: !0, provider: et, adButler: { config: { desktop: e, mobile: t } } }); } else if (et !== "none") { if ($r === "adbutler") { const e = te(R("NEXT_PUBLIC_AD_ADBUTLER_CONFIG_DESKTOP")), t = te(R("NEXT_PUBLIC_AD_ADBUTLER_CONFIG_MOBILE")); return Object.freeze({ title: ct, isEnabled: !0, provider: et, additionalProvider: $r, adButler: { config: { desktop: e, mobile: t } } }); } return Object.freeze({ title: ct, isEnabled: !0, provider: et }); } return Object.freeze({ title: ct, isEnabled: !1 }); })(), Xr = (() => { const e = R("NEXT_PUBLIC_AD_TEXT_PROVIDER"); return e && Xl.includes(e) ? e : "coinzilla"; })(), Vr = "Text ads", Gl = Object.freeze(Xr !== "none" ? { title: Vr, isEnabled: !0, provider: Xr } : { title: Vr, isEnabled: !1 }), Gr = "Beacon chain", ql = R("NEXT_PUBLIC_HAS_BEACON_CHAIN") === "true" ? Object.freeze({ title: Gr, isEnabled: !0, currency: { symbol: R("NEXT_PUBLIC_BEACON_CHAIN_CURRENCY_SYMBOL") || R("NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL") || "" // maybe we need some other default value here } }) : Object.freeze({ title: Gr, isEnabled: !1 }), qr = "Bridged tokens", Kl = (() => { const e = te(R("NEXT_PUBLIC_BRIDGED_TOKENS_CHAINS")), t = te(R("NEXT_PUBLIC_BRIDGED_TOKENS_BRIDGES")); return e && e.length > 0 && t && t.length > 0 ? Object.freeze({ title: qr, isEnabled: !0, chains: e, bridges: t }) : Object.freeze({ title: qr, isEnabled: !1 }); })(), Kr = R("NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID"), Yr = "Blockchain interaction (writing to contract, etc.)", Xi = /* all chain parameters are required for wagmi provider */ /* @wagmi/chains/dist/index.d.ts */ Oe.id && Oe.name && Oe.currency.name && Oe.currency.symbol && Oe.currency.decimals && Oe.rpcUrls.length > 0 && Kr ? Object.freeze({ title: Yr, isEnabled: !0, walletConnect: { projectId: Kr } }) : Object.freeze({ title: Yr, isEnabled: !1 }), Zr = "Celo chain", Yl = R("NEXT_PUBLIC_CELO_ENABLED") === "true" ? Object.freeze({ title: Zr, isEnabled: !0, L2UpgradeBlock: R("NEXT_PUBLIC_CELO_L2_UPGRADE_BLOCK") ? Number(R("NEXT_PUBLIC_CELO_L2_UPGRADE_BLOCK")) : void 0, BLOCKS_PER_EPOCH: 17280 }) : Object.freeze({ title: Zr, isEnabled: !1 }), Qr = "Export data to CSV file", Zl = Ke.reCaptchaV2.siteKey ? Object.freeze({ title: Qr, isEnabled: !0, reCaptcha: { siteKey: Ke.reCaptchaV2.siteKey } }) : Object.freeze({ title: Qr, isEnabled: !1 }), Jr = "Data availability", Ql = R("NEXT_PUBLIC_DATA_AVAILABILITY_ENABLED") === "true" ? Object.freeze({ title: Jr, isEnabled: !0 }) : Object.freeze({ title: Jr, isEnabled: !1 }), en = te(R("NEXT_PUBLIC_DEFI_DROPDOWN_ITEMS")) || [], tn = "DeFi dropdown", Jl = en.length > 0 ? Object.freeze({ title: tn, isEnabled: !0, items: en }) : Object.freeze({ title: tn, isEnabled: !1 }), rn = R("NEXT_PUBLIC_GAME_BADGE_CLAIM_LINK"), nn = "Easter egg badge", es = Object.freeze(rn ? { title: nn, isEnabled: !0, badgeClaimLink: rn } : { title: nn, isEnabled: !1 }), ut = te(R("NEXT_PUBLIC_TX_EXTERNAL_TRANSACTIONS_CONFIG")), on = "External transactions", ts = Object.freeze(ut ? { title: on, isEnabled: !0, chainName: ut.chain_name, chainLogoUrl: ut.chain_logo_url, explorerUrlTemplate: ut.explorer_url_template } : { title: on, isEnabled: !1 }), rs = [ "optimistic", "arbitrum", "shibarium", "zkEvm", "zkSync", "scroll" ], Ge = (() => { const e = R("NEXT_PUBLIC_ROLLUP_TYPE"); return rs.find((t) => t === e); })(), ns = R("NEXT_PUBLIC_ROLLUP_L2_WITHDRAWAL_URL"), an = (() => { const e = te(R("NEXT_PUBLIC_ROLLUP_PARENT_CHAIN")), t = Ft(R("NEXT_PUBLIC_ROLLUP_L1_BASE_URL") || ""), r = R("NEXT_PUBLIC_ROLLUP_PARENT_CHAIN_NAME"); if (!(!t && !(e != null && e.baseUrl))) return { ...e, name: r ?? (e == null ? void 0 : e.name), baseUrl: t ?? (e == null ? void 0 : e.baseUrl) }; })(), ln = "Rollup (L2) chain", Ye = Object.freeze(Ge && an ? { title: ln, isEnabled: !0, type: Ge, stageIndex: R("NEXT_PUBLIC_ROLLUP_STAGE_INDEX"), L2WithdrawalUrl: Ge === "optimistic" ? ns : void 0, outputRootsEnabled: Ge === "optimistic" && R("NEXT_PUBLIC_ROLLUP_OUTPUT_ROOTS_ENABLED") === "true", interopEnabled: Ge === "optimistic" && R("NEXT_PUBLIC_INTEROP_ENABLED") === "true", homepage: { showLatestBlocks: R("NEXT_PUBLIC_ROLLUP_HOMEPAGE_SHOW_LATEST_BLOCKS") === "true" }, parentChain: an, DA: { celestia: { namespace: Ge === "arbitrum" ? R("NEXT_PUBLIC_ROLLUP_DA_CELESTIA_NAMESPACE") : void 0, celeniumUrl: R("NEXT_PUBLIC_ROLLUP_DA_CELESTIA_CELENIUM_URL") } } } : { title: ln, isEnabled: !1 }), sn = "Fault proof system", os = Ye.isEnabled && Ye.type === "optimistic" && R("NEXT_PUBLIC_FAULT_PROOF_ENABLED") === "true" ? Object.freeze({ title: sn, isEnabled: !0 }) : Object.freeze({ title: sn, isEnabled: !1 }), is = [ "usd", "gwei" ], as = R("NEXT_PUBLIC_GAS_TRACKER_ENABLED") === "false", cn = (() => { var r; const e = R("NEXT_PUBLIC_GAS_TRACKER_UNITS"); return e ? ((r = te(e)) == null ? void 0 : r.filter((n) => is.includes(n))) || [] : ["usd", "gwei"]; })(), un = "Gas tracker", ls = !as && cn.length > 0 ? Object.freeze({ title: un, isEnabled: !0, units: cn }) : Object.freeze({ title: un, isEnabled: !1 }), ss = R("NEXT_PUBLIC_MARKETPLACE_ENABLED"), dn = Ce("NEXT_PUBLIC_MARKETPLACE_CONFIG_URL"), fn = R("NEXT_PUBLIC_MARKETPLACE_SUBMIT_FORM"), cs = R("NEXT_PUBLIC_MARKETPLACE_SUGGEST_IDEAS_FORM"), us = Ce("NEXT_PUBLIC_MARKETPLACE_CATEGORIES_URL"), ds = Ce("NEXT_PUBLIC_MARKETPLACE_SECURITY_REPORTS_URL"), fs = R("NEXT_PUBLIC_MARKETPLACE_FEATURED_APP"), pn = Ce("NEXT_PUBLIC_MARKETPLACE_BANNER_CONTENT_URL"), hn = R("NEXT_PUBLIC_MARKETPLACE_BANNER_LINK_URL"), gn = R("NEXT_PUBLIC_MARKETPLACE_RATING_AIRTABLE_API_KEY"), bn = R("NEXT_PUBLIC_MARKETPLACE_RATING_AIRTABLE_BASE_ID"), ps = Ce("NEXT_PUBLIC_MARKETPLACE_GRAPH_LINKS_URL"), Qt = "Marketplace", Mt = (() => { if (ss === "true" && Oe.rpcUrls.length > 0 && fn) { const e = { submitFormUrl: fn, categoriesUrl: us, suggestIdeasFormUrl: cs, securityReportsUrl: ds, featuredApp: fs, banner: pn && hn ? { contentUrl: pn, linkUrl: hn } : void 0, rating: gn && bn ? { airtableApiKey: gn, airtableBaseId: bn } : void 0, graphLinksUrl: ps }; if (dn) return Object.freeze({ title: Qt, isEnabled: !0, configUrl: dn, ...e }); if (ve.admin) return Object.freeze({ title: Qt, isEnabled: !0, api: ve.admin, ...e }); } return Object.freeze({ title: Qt, isEnabled: !1 }); })(), tt = te(R("NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG")), mn = "Get gas button", hs = Object.freeze(tt ? { title: mn, isEnabled: !0, name: tt.name, logoUrl: tt.logo, url: tt.url_template.replace("{chainId}", Oe.id || ""), dappId: Mt.isEnabled ? tt.dapp_id : void 0 } : { title: mn, isEnabled: !1 }), vn = R("NEXT_PUBLIC_GOOGLE_ANALYTICS_PROPERTY_ID"), _n = "Google analytics", gs = Object.freeze(vn ? { title: _n, isEnabled: !0, propertyId: vn } : { title: _n, isEnabled: !1 }), yn = R("NEXT_PUBLIC_GRAPHIQL_TRANSACTION"), En = "GraphQL API documentation", bs = Object.freeze(yn === "none" ? { title: En, isEnabled: !1 } : { title: En, isEnabled: !0, defaultTxHash: yn }), Cn = R("NEXT_PUBLIC_GROWTH_BOOK_CLIENT_KEY"), xn = "GrowthBook feature flagging and A/B testing", ms = Object.freeze(Cn ? { title: xn, isEnabled: !0, clientKey: Cn } : { title: xn, isEnabled: !1 }), wn = "MetaSuites extension", vs = R("NEXT_PUBLIC_METASUITES_ENABLED") === "true" ? Object.freeze({ title: wn, isEnabled: !0 }) : Object.freeze({ title: wn, isEnabled: !1 }), Tn = R("NEXT_PUBLIC_MIXPANEL_PROJECT_TOKEN"), Sn = "Mixpanel analytics", _s = Object.freeze(Tn ? { title: Sn, isEnabled: !0, projectToken: Tn } : { title: Sn, isEnabled: !1 }), kn = "MUD framework", ys = Ye.isEnabled && Ye.type === "optimistic" && R("NEXT_PUBLIC_HAS_MUD_FRAMEWORK") === "true" ? Object.freeze({ title: kn, isEnabled: !0 }) : Object.freeze({ title: kn, isEnabled: !1 }), An = te(R("NEXT_PUBLIC_MULTICHAIN_BALANCE_PROVIDER_CONFIG")), In = "Multichain balance", Es = Object.freeze(An ? { title: In, isEnabled: !0, providers: An.map((e) => ({ name: e.name, logoUrl: e.logo, urlTemplate: e.url_template, dappId: Mt.isEnabled ? e.dapp_id : void 0 })) } : { title: In, isEnabled: !1 }), On = "Name service integration", Cs = ve.bens ? Object.freeze({ title: On, isEnabled: !0 }) : Object.freeze({ title: On, isEnabled: !1 }), xs = R("NEXT_PUBLIC_DEX_POOLS_ENABLED") === "true", Rn = "DEX Pools", ws = ve.contractInfo && xs ? Object.freeze({ title: Rn, isEnabled: !0 }) : Object.freeze({ title: Rn, isEnabled: !1 }), Pn = "Public tag submission", Ts = Ke.reCaptchaV2.siteKey && $i.isEnabled && ve.admin ? Object.freeze({ title: Pn, isEnabled: !0 }) : Object.freeze({ title: Pn, isEnabled: !1 }), Ss = "https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml", Ln = R("NEXT_PUBLIC_API_SPEC_URL"), Nn = "REST API documentation", ks = Object.freeze(Ln === "none" ? { title: Nn, isEnabled: !1 } : { title: Nn, isEnabled: !0, specUrl: Ln || Ss }), Dn = "Rewards service integration", As = ve.rewards && Cr.isEnabled && Xi.isEnabled ? Object.freeze({ title: Dn, isEnabled: !0 }) : Object.freeze({ title: Dn, isEnabled: !1 }), zn = R("NEXT_PUBLIC_ROLLBAR_CLIENT_TOKEN"), Is = (() => { var t; const e = R("NEXT_PUBLIC_APP_INSTANCE"); return e || ((t = yr.host) == null ? void 0 : t.replace(".blockscout.com", "").replace(".k8s-dev", "").replaceAll("-", "_")); })(), Os = R("NEXT_PUBLIC_APP_ENV") || "production", Rs = R("NEXT_PUBLIC_GIT_TAG") || R("NEXT_PUBLIC_GIT_COMMIT_SHA"), Bn = "Rollbar error monitoring", Ps = Object.freeze(zn ? { title: Bn, isEnabled: !0, clientToken: zn, environment: Os, instance: Is, codeVersion: Rs } : { title: Bn, isEnabled: !1 }); function Ls() { try { const e = R("NEXT_PUBLIC_SAFE_TX_SERVICE_URL"); return new URL("/api/v1/safes", e).toString(); } catch { return; } } const Un = "Safe address tags", Ns = (() => { const e = Ls(); return Object.freeze(e ? { title: Un, isEnabled: !0, apiUrl: e } : { title: Un, isEnabled: !1 }); })(), Fn = "Save on gas with GasHawk", Ds = R("NEXT_PUBLIC_SAVE_ON_GAS_ENABLED") === "true" && Mt.isEnabled ? Object.freeze({ title: Fn, isEnabled: !0, apiUrlTemplate: "https://core.gashawk.io/apiv2/stats/address/<address>/savingsPotential/0x1" }) : Object.freeze({ title: Fn, isEnabled: !1 }), Mn = "Solidity to UML diagrams", zs = ve.visualize ? Object.freeze({ title: Mn, isEnabled: !0 }) : Object.freeze({ title: Mn, isEnabled: !1 }), jn = "Blockchain statistics", Bs = ve.stats ? Object.freeze({ title: jn, isEnabled: !0 }) : Object.freeze({ title: jn, isEnabled: !1 }), Hn = "SUAVE chain", Us = R("NEXT_PUBLIC_IS_SUAVE_CHAIN") === "true" ? Object.freeze({ title: Hn, isEnabled: !0 }) : Object.freeze({ title: Hn, isEnabled: !1 }), Wn = "Ton Application Chain (TAC)", $n = R("NEXT_PUBLIC_TAC_TON_EXPLORER_URL"), Fs = ve.tac && $n ? Object.freeze({ title: Wn, isEnabled: !0, tonExplorerUrl: $n }) : Object.freeze({ title: Wn, isEnabled: !1 }), Ms = [ "blockscout", "noves", "none" ], Xn = "Transaction interpretation", Vn = (() => { const e = R("NEXT_PUBLIC_TRANSACTION_INTERPRETATION_PROVIDER"); return e && Ms.includes(e) ? e : "none"; })(), js = Object.freeze(Vn !== "none" ? { title: Xn, provider: Vn, isEnabled: !0 } : { title: Xn, isEnabled: !1 }), Gn = "User operations", Hs = R("NEXT_PUBLIC_HAS_USER_OPS") === "true" ? Object.freeze({ title: Gn, isEnabled: !0 }) : Object.freeze({ title: Gn, isEnabled: !1 }), Ue = te(R("NEXT_PUBLIC_ADDRESS_USERNAME_TAG")); function Ws(e) { try { const t = e.replace("{address}", "0x0000000000000000000000000000000000000000"); return new URL(t).toString(), !0; } catch { return !1; } } const qn = "User profile API", $s = Ue && Ws(Ue.api_url_template) ? Object.freeze({ title: qn, isEnabled: !0, apiUrlTemplate: Ue.api_url_template, tagLinkTemplate: Ue.tag_link_template, tagIcon: Ue.tag_icon, tagBgColor: Ue.tag_bg_color, tagTextColor: Ue.tag_text_color }) : Object.freeze({ title: qn, isEnabled: !1 }), Xs = [ "stability", "blackfort", "zilliqa" ], Kn = (() => { const e = R("NEXT_PUBLIC_VALIDATORS_CHAIN_TYPE"); return e && Xs.includes(e) ? e : void 0; })(), Yn = "Validators list", Vs = Object.freeze(Kn ? { title: Yn, isEnabled: !0, chainType: Kn } : { title: Yn, isEnabled: !1 }), Gs = [ "metamask", "coinbase", "token_pocket" ], Jt = (() => { var r; const e = R("NEXT_PUBLIC_WEB3_WALLETS"); if (e === "none") return; const t = (r = te(e)) == null ? void 0 : r.filter((n) => Gs.includes(n)); return !t || t.length === 0 ? ["metamask"] : t; })(), Zn = "Web3 wallet integration (add token or network to the wallet)", qs = Jt && Jt.length > 0 ? Object.freeze({ title: Zn, isEnabled: !0, wallets: Jt, addToken: { isDisabled: R("NEXT_PUBLIC_WEB3_DISABLE_ADD_TOKEN_TO_WALLET") === "true" }, addNetwork: {} }) : Object.freeze({ title: Zn, isEnabled: !1 }), Qn = "XStar score", Jn = R("NEXT_PUBLIC_XSTAR_SCORE_URL"), Ks = Object.freeze(Jn ? { title: Qn, url: Jn, isEnabled: !0 } : { title: Qn, isEnabled: !1 }), Ys = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, account: Cr, addressMetadata: $i, addressProfileAPI: $s, addressVerification: Wl, adsBanner: Vl, adsText: Gl, advancedFilter: jl, beaconChain: ql, blockchainInteraction: Xi, bridgedTokens: Kl, celo: Yl, csvExport: Zl, dataAvailability: Ql, deFiDropdown: Jl, easterEggBadge: es, externalTxs: ts, faultProofSystem: os, gasTracker: ls, getGasButton: hs, googleAnalytics: gs, graphqlApiDocs: bs, growthBook: ms, marketplace: Mt, metasuites: vs, mixpanel: _s, mudFramework: ys, multichainButton: Es, nameService: Cs, pools: ws, publicTagsSubmission: Ts, restApiDocs: ks, rewards: As, rollbar: Ps, rollup: Ye, safe: Ns, saveOnGas: Ds, sol2uml: zs, stats: Bs, suave: Us, tac: Fs, txInterpretation: js, userOps: Hs, validators: Vs, verifiedTokens: Wi, web3Wallet: qs, xStarScore: Ks }, Symbol.toStringTag, { value: "Module" })), Zs = "/static/og_image.png", Qs = Object.freeze({ promoteBlockscoutInTitle: R("NEXT_PUBLIC_PROMOTE_BLOCKSCOUT_IN_TITLE") !== "false", og: { description: R("NEXT_PUBLIC_OG_DESCRIPTION") || "", imageUrl: yr.baseUrl + (Ce("NEXT_PUBLIC_OG_IMAGE_URL") || Zs), enhancedDataEnabled: R("NEXT_PUBLIC_OG_ENHANCED_DATA_ENABLED") === "true" }, seo: { enhancedDataEnabled: R("NEXT_PUBLIC_SEO_ENHANCED_DATA_ENABLED") === "true" } }), Js = ["rpc_api", "eth_rpc_api"], ec = [ "latest_batch", "total_blocks", "average_block_time", "total_txs", "total_operational_txs", "latest_l1_state_batch", "wallet_addresses", "gas_tracker", "btc_locked", "current_epoch" ], tc = [ { id: "light", label: "Light", colorMode: "light", hex: "#FFFFFF", sampleBg: "linear-gradient(154deg, #EFEFEF 50%, rgba(255, 255, 255, 0.00) 330.86%)" }, { id: "dim", label: "Dim", colorMode: "dark", hex: "#232B37", sampleBg: "linear-gradient(152deg, #232B37 50%, rgba(255, 255, 255, 0.00) 290.71%)" }, { id: "midnight", label: "Midnight", colorMode: "dark", hex: "#1B2E48", sampleBg: "linear-gradient(148deg, #1B3F71 50%, rgba(255, 255, 255, 0.00) 312.35%)" }, { id: "dark", label: "Dark", colorMode: "dark", hex: "#101112", sampleBg: "linear-gradient(161deg, #000 9.37%, #383838 92.52%)" } ], eo = [ "solidity-hardhat", "solidity-foundry" ], to = [ "solidity", "vyper", "yul", "scilla" ], rc = [ "github", "jazzicon", "gradient_avatar", "blockie", "nouns" ], nc = [ "top_accounts" ], oc = ["base16", "bech32"], ic = (() => { const e = R("NEXT_PUBLIC_VIEWS_ADDRESS_IDENTICON_TYPE"); return rc.find((t) => e === t) || "jazzicon"; })(), Vi = (() => { const e = (te(R("NEXT_PUBLIC_VIEWS_ADDRESS_FORMAT")) || []).filter((t) => oc.includes(t)); return e.length === 0 ? ["base16"] : e; })(), ac = (() => { const e = R("NEXT_PUBLIC_VIEWS_ADDRESS_BECH_32_PREFIX"); if (!(!e || !Vi.includes("bech32"))) return e.length >= 1 && e.length <= 83 ? e : void 0; })(), lc = (() => { const e = te(R("NEXT_PUBLIC_VIEWS_ADDRESS_HIDDEN_VIEWS")) || []; return Array.isArray(e) ? nc.reduce((r, n) => (r[n] = e.includes(n), r), {}) : void 0; })(), sc = (() => { const e = R("NEXT_PUBLIC_VIEWS_CONTRACT_EXTRA_VERIFICATION_METHODS"); return e === "none" ? [] : e ? (te(e) || []).filter((r) => eo.includes(r)) : eo; })(), cc = (() => { const e = te(R("NEXT_PUBLIC_VIEWS_CONTRACT_LANGUAGE_FILTERS")); return e ? e.filter((t) => to.includes(t)) : to.filter((r) => r !== "scilla"); })(), uc = Object.freeze({ identiconType: ic, hashFormat: { availableFormats: Vi, bech32Prefix: ac }, hiddenViews: lc, solidityscanEnabled: R("NEXT_PUBLIC_VIEWS_CONTRACT_SOLIDITYSCAN_ENABLED") === "true", extraVerificationMethods: sc, languageFilters: cc }), dc = [ "base_fee", "burnt_fees", "total_reward", "nonce", "miner", "L1_status", "batch" ], fc = (() => { const e = te(R("NEXT_PUBLIC_VIEWS_BLOCK_HIDDEN_FIELDS")) || []; return Array.isArray(e) ? dc.reduce((r, n) => (r[n] = e.includes(n), r), {}) : void 0; })(), pc = Object.freeze({ hiddenFields: fc }), hc = Object.freeze({ marketplaces: te(R("NEXT_PUBLIC_VIEWS_NFT_MARKETPLACES")) || [], verifiedFetch: { isEnabled: R("NEXT_PUBLIC_HELIA_VERIFIED_FETCH_ENABLED") !== "false" } }), gc = Object.freeze({ hideScamTokensEnabled: R("NEXT_PUBLIC_VIEWS_TOKEN_SCAM_TOGGLE_ENABLED") === "true" }), bc = [ "value", "fee_currency", "gas_price", "tx_fee", "gas_fees", "burnt_fees", "L1_status", "batch" ], mc = [ "fee_per_gas" ], vc = (() => { const e = te(R("NEXT_PUBLIC_VIEWS_TX_HIDDEN_FIELDS")) || []; return Array.isArray(e) ? bc.reduce((r, n) => (r[n] = e.includes(n), r), {}) : void 0; })(), _c = (() => { const e = te(R("NEXT_PUBLIC_VIEWS_TX_ADDITIONAL_FIELDS")) || []; return Array.isArray(e) ? mc.reduce((r, n) => (r[n] = e.includes(n), r), {}) : void 0; })(), yc = Object.freeze({ hiddenFields: vc, additionalFields: _c }), Ec = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, address: uc, block: pc, nft: hc, token: gc, tx: yc }, Symbol.toStringTag, { value: "Module" })), Cc = (() => { const e = te(R("NEXT_PUBLIC_NAVIGATION_HIDDEN_LINKS")) || []; return Array.isArray(e) ? Js.reduce((r, n) => (r[n] = e.includes(n), r), {}) : void 0; })(), xc = (() => { const e = te(R("NEXT_PUBLIC_HOMEPAGE_STATS")); if (!Array.isArray(e)) { const t = Ye; return t.isEnabled && ["zkEvm", "zkSync", "arbitrum"].includes(t.type) ? ["latest_batch", "average_block_time", "total_txs", "wallet_addresses", "gas_tracker"] : ["total_blocks", "average_block_time", "total_txs", "wallet_addresses", "gas_tracker"]; } return e.filter((t) => ec.includes(t)); })(), wc = (() => { const e = te(R("NEXT_PUBLIC_NAVIGATION_HIGHLIGHTED_ROUTES")); return Array.isArray(e) ? e : []; })(), Tc = (() => { const e = R("NEXT_PUBLIC_COLOR_THEME_DEFAULT"); return tc.find((t) => t.id === e); })(), Sc = Object.freeze({ navigation: { logo: { default: Ce("NEXT_PUBLIC_NETWORK_LOGO"), dark: Ce("NEXT_PUBLIC_NETWORK_LOGO_DARK") }, icon: { default: Ce("NEXT_PUBLIC_NETWORK_ICON"), dark: Ce("NEXT_PUBLIC_NETWORK_ICON_DARK") }, hiddenLinks: Cc, highlightedRoutes: wc, otherLinks: te(R("NEXT_PUBLIC_OTHER_LINKS")) || [], featuredNetworks: Ce("NEXT_PUBLIC_FEATURED_NETWORKS"), layout: R("NEXT_PUBLIC_NAVIGATION_LAYOUT") || "vertical" }, footer: { links: Ce("NEXT_PUBLIC_FOOTER_LINKS"), frontendVersion: R("NEXT_PUBLIC_GIT_TAG"), frontendCommit: R("NEXT_PUBLIC_GIT_COMMIT_SHA") }, homepage: { charts: te(R("NEXT_PUBLIC_HOMEPAGE_CHARTS")) || [], stats: xc, heroBanner: te(R("NEXT_PUBLIC_HOMEPAGE_HERO_BANNER_CONFIG")), // !!! DEPRECATED !!! plate: { background: R("NEXT_PUBLIC_HOMEPAGE_PLATE_BACKGROUND"), textColor: R("NEXT_PUBLIC_HOMEPAGE_PLATE_TEXT_COLOR") } }, views: Ec, indexingAlert: { blocks: { isHidden: R("NEXT_PUBLIC_HIDE_INDEXING_ALERT_BLOCKS") === "true" }, intTxs: { isHidden: R("NEXT_PUBLIC_HIDE_INDEXING_ALERT_INT_TXS") === "true" } }, maintenanceAlert: { message: R("NEXT_PUBLIC_MAINTENANCE_ALERT_MESSAGE") }, explorers: { items: te(R("NEXT_PUBLIC_NETWORK_EXPLORERS")) || [] }, ides: { items: te(R("NEXT_PUBLIC_CONTRACT_CODE_IDES")) || [] }, hasContractAuditReports: R("NEXT_PUBLIC_HAS_CONTRACT_AUDIT_REPORTS") === "true", colorTheme: { default: Tc }, fonts: { heading: te(R("NEXT_PUBLIC_FONT_FAMILY_HEADING")), body: te(R("NEXT_PUBLIC_FONT_FAMILY_BODY")) }, maxContentWidth: R("NEXT_PUBLIC_MAX_CONTENT_WIDTH_ENABLED") !== "false" }), at = Object.freeze({ app: yr, chain: Oe, apis: ve, UI: Sc, features: Ys, services: Ke, meta: Qs }); function xr(e = !0) { return Ia({ base: !0, lg: !1 }, { ssr: e }); } const wr = P.forwardRef( function(t, r) { var U; const { showArrow: n, onOpenChange: o, variant: i, selected: c, children: l, disabled: d, disableOnMobil