UNPKG

prozilla-os

Version:

a React component library written in TypeScript for building web-based operating systems, made by Prozilla.

1,988 lines (1,927 loc) 120 kB
import { App as Un, AppsConfig as Rt, useVirtualRoot as Tr, useWindowsManager as Bn, useSystemManager as Lt, useHistory as kr, useAlert as Cr, useWindowedModal as Ir, useContextMenu as Kt, Actions as Jt, ClickAction as Ie, Vector2 as Ue, Divider as Nr, VirtualRoot as Qt, DialogBox as Zt, ModalsConfig as en, DirectoryList as Mr, CODE_EXTENSIONS as Rr, utilStyles as Ft, WindowedModal as Lr, ImagePreview as tn, StorageManager as nn, VirtualFile as Fr, IMAGE_EXTENSIONS as Wn } from "@prozilla-os/core"; export * from "@prozilla-os/core"; import { jsxs as W, jsx as b } from "react/jsx-runtime"; import Hn, { useState as nt, useCallback as jr, useEffect as ht } from "react"; export * from "@prozilla-os/terminal"; export * from "@prozilla-os/text-editor"; export * from "@prozilla-os/settings"; export * from "@prozilla-os/browser"; export * from "@prozilla-os/calculator"; export * from "@prozilla-os/app-center"; const rn = () => { }; let jt = {}, Vn = {}, qn = null, Gn = { mark: rn, measure: rn }; try { typeof window < "u" && (jt = window), typeof document < "u" && (Vn = document), typeof MutationObserver < "u" && (qn = MutationObserver), typeof performance < "u" && (Gn = performance); } catch { } const { userAgent: an = "" } = jt.navigator || {}, de = jt, U = Vn, on = qn, Be = Gn; de.document; const le = !!U.documentElement && !!U.head && typeof U.addEventListener == "function" && typeof U.createElement == "function", Xn = ~an.indexOf("MSIE") || ~an.indexOf("Trident/"); var B = "classic", Kn = "duotone", G = "sharp", X = "sharp-duotone", zr = [B, Kn, G, X], Dr = { classic: { 900: "fas", 400: "far", normal: "far", 300: "fal", 100: "fat" }, sharp: { 900: "fass", 400: "fasr", 300: "fasl", 100: "fast" }, "sharp-duotone": { 900: "fasds" } }, sn = { kit: { fak: "kit", "fa-kit": "kit" }, "kit-duotone": { fakd: "kit-duotone", "fa-kit-duotone": "kit-duotone" } }, Yr = ["kit"], $r = /fa(s|r|l|t|d|b|k|kd|ss|sr|sl|st|sds)?[\-\ ]/, Ur = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i, Br = { "Font Awesome 5 Free": { 900: "fas", 400: "far" }, "Font Awesome 5 Pro": { 900: "fas", 400: "far", normal: "far", 300: "fal" }, "Font Awesome 5 Brands": { 400: "fab", normal: "fab" }, "Font Awesome 5 Duotone": { 900: "fad" } }, Wr = { "Font Awesome 6 Free": { 900: "fas", 400: "far" }, "Font Awesome 6 Pro": { 900: "fas", 400: "far", normal: "far", 300: "fal", 100: "fat" }, "Font Awesome 6 Brands": { 400: "fab", normal: "fab" }, "Font Awesome 6 Duotone": { 900: "fad" }, "Font Awesome 6 Sharp": { 900: "fass", 400: "fasr", normal: "fasr", 300: "fasl", 100: "fast" }, "Font Awesome 6 Sharp Duotone": { 900: "fasds" } }, Hr = { classic: { "fa-brands": "fab", "fa-duotone": "fad", "fa-light": "fal", "fa-regular": "far", "fa-solid": "fas", "fa-thin": "fat" }, sharp: { "fa-solid": "fass", "fa-regular": "fasr", "fa-light": "fasl", "fa-thin": "fast" }, "sharp-duotone": { "fa-solid": "fasds" } }, Vr = { classic: ["fas", "far", "fal", "fat"], sharp: ["fass", "fasr", "fasl", "fast"], "sharp-duotone": ["fasds"] }, qr = { classic: { fab: "fa-brands", fad: "fa-duotone", fal: "fa-light", far: "fa-regular", fas: "fa-solid", fat: "fa-thin" }, sharp: { fass: "fa-solid", fasr: "fa-regular", fasl: "fa-light", fast: "fa-thin" }, "sharp-duotone": { fasds: "fa-solid" } }, Gr = { classic: { solid: "fas", regular: "far", light: "fal", thin: "fat", duotone: "fad", brands: "fab" }, sharp: { solid: "fass", regular: "fasr", light: "fasl", thin: "fast" }, "sharp-duotone": { solid: "fasds" } }, Jn = { classic: { fa: "solid", fas: "solid", "fa-solid": "solid", far: "regular", "fa-regular": "regular", fal: "light", "fa-light": "light", fat: "thin", "fa-thin": "thin", fad: "duotone", "fa-duotone": "duotone", fab: "brands", "fa-brands": "brands" }, sharp: { fa: "solid", fass: "solid", "fa-solid": "solid", fasr: "regular", "fa-regular": "regular", fasl: "light", "fa-light": "light", fast: "thin", "fa-thin": "thin" }, "sharp-duotone": { fa: "solid", fasds: "solid", "fa-solid": "solid" } }, Xr = ["solid", "regular", "light", "thin", "duotone", "brands"], Qn = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], Kr = Qn.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]), Ne = { GROUP: "duotone-group", SWAP_OPACITY: "swap-opacity", PRIMARY: "primary", SECONDARY: "secondary" }, Jr = [...Object.keys(Vr), ...Xr, "2xs", "xs", "sm", "lg", "xl", "2xl", "beat", "border", "fade", "beat-fade", "bounce", "flip-both", "flip-horizontal", "flip-vertical", "flip", "fw", "inverse", "layers-counter", "layers-text", "layers", "li", "pull-left", "pull-right", "pulse", "rotate-180", "rotate-270", "rotate-90", "rotate-by", "shake", "spin-pulse", "spin-reverse", "spin", "stack-1x", "stack-2x", "stack", "ul", Ne.GROUP, Ne.SWAP_OPACITY, Ne.PRIMARY, Ne.SECONDARY].concat(Qn.map((e) => "".concat(e, "x"))).concat(Kr.map((e) => "w-".concat(e))), Qr = { "Font Awesome Kit": { 400: "fak", normal: "fak" }, "Font Awesome Kit Duotone": { 400: "fakd", normal: "fakd" } }, Zr = { kit: { "fa-kit": "fak" }, "kit-duotone": { "fa-kit-duotone": "fakd" } }, ea = { kit: { fak: "fa-kit" }, "kit-duotone": { fakd: "fa-kit-duotone" } }, cn = { kit: { kit: "fak" }, "kit-duotone": { "kit-duotone": "fakd" } }; const se = "___FONT_AWESOME___", gt = 16, Zn = "fa", er = "svg-inline--fa", xe = "data-fa-i2svg", yt = "data-fa-pseudo-element", ta = "data-fa-pseudo-element-pending", zt = "data-prefix", Dt = "data-icon", ln = "fontawesome-i2svg", na = "async", ra = ["HTML", "HEAD", "STYLE", "SCRIPT"], tr = (() => { try { return process.env.NODE_ENV === "production"; } catch { return !1; } })(), nr = [B, G, X]; function ze(e) { return new Proxy(e, { get(t, n) { return n in t ? t[n] : t[B]; } }); } const rr = { ...Jn }; rr[B] = { ...Jn[B], ...sn.kit, ...sn["kit-duotone"] }; const be = ze(rr), bt = { ...Gr }; bt[B] = { ...bt[B], ...cn.kit, ...cn["kit-duotone"] }; const Fe = ze(bt), vt = { ...qr }; vt[B] = { ...vt[B], ...ea.kit }; const ve = ze(vt), xt = { ...Hr }; xt[B] = { ...xt[B], ...Zr.kit }; const aa = ze(xt), oa = $r, ar = "fa-layers-text", ia = Ur, sa = { ...Dr }; ze(sa); const ca = ["class", "data-prefix", "data-icon", "data-fa-transform", "data-fa-mask"], rt = Ne, Oe = /* @__PURE__ */ new Set(); Object.keys(Fe[B]).map(Oe.add.bind(Oe)); Object.keys(Fe[G]).map(Oe.add.bind(Oe)); Object.keys(Fe[X]).map(Oe.add.bind(Oe)); const la = [...Yr, ...Jr], Re = de.FontAwesomeConfig || {}; function fa(e) { var t = U.querySelector("script[" + e + "]"); if (t) return t.getAttribute(e); } function ua(e) { return e === "" ? !0 : e === "false" ? !1 : e === "true" ? !0 : e; } U && typeof U.querySelector == "function" && [["data-family-prefix", "familyPrefix"], ["data-css-prefix", "cssPrefix"], ["data-family-default", "familyDefault"], ["data-style-default", "styleDefault"], ["data-replacement-class", "replacementClass"], ["data-auto-replace-svg", "autoReplaceSvg"], ["data-auto-add-css", "autoAddCss"], ["data-auto-a11y", "autoA11y"], ["data-search-pseudo-elements", "searchPseudoElements"], ["data-observe-mutations", "observeMutations"], ["data-mutate-approach", "mutateApproach"], ["data-keep-original-source", "keepOriginalSource"], ["data-measure-performance", "measurePerformance"], ["data-show-missing-icons", "showMissingIcons"]].forEach((t) => { let [n, r] = t; const a = ua(fa(n)); a != null && (Re[r] = a); }); const or = { styleDefault: "solid", familyDefault: "classic", cssPrefix: Zn, replacementClass: er, autoReplaceSvg: !0, autoAddCss: !0, autoA11y: !0, searchPseudoElements: !1, observeMutations: !0, mutateApproach: "async", keepOriginalSource: !0, measurePerformance: !1, showMissingIcons: !0 }; Re.familyPrefix && (Re.cssPrefix = Re.familyPrefix); const Pe = { ...or, ...Re }; Pe.autoReplaceSvg || (Pe.observeMutations = !1); const g = {}; Object.keys(or).forEach((e) => { Object.defineProperty(g, e, { enumerable: !0, set: function(t) { Pe[e] = t, Le.forEach((n) => n(g)); }, get: function() { return Pe[e]; } }); }); Object.defineProperty(g, "familyPrefix", { enumerable: !0, set: function(e) { Pe.cssPrefix = e, Le.forEach((t) => t(g)); }, get: function() { return Pe.cssPrefix; } }); de.FontAwesomeConfig = g; const Le = []; function da(e) { return Le.push(e), () => { Le.splice(Le.indexOf(e), 1); }; } const fe = gt, ae = { size: 16, x: 0, y: 0, rotate: 0, flipX: !1, flipY: !1 }; function ma(e) { if (!e || !le) return; const t = U.createElement("style"); t.setAttribute("type", "text/css"), t.innerHTML = e; const n = U.head.childNodes; let r = null; for (let a = n.length - 1; a > -1; a--) { const o = n[a], s = (o.tagName || "").toUpperCase(); ["STYLE", "LINK"].indexOf(s) > -1 && (r = o); } return U.head.insertBefore(t, r), e; } const pa = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; function je() { let e = 12, t = ""; for (; e-- > 0; ) t += pa[Math.random() * 62 | 0]; return t; } function Te(e) { const t = []; for (let n = (e || []).length >>> 0; n--; ) t[n] = e[n]; return t; } function Yt(e) { return e.classList ? Te(e.classList) : (e.getAttribute("class") || "").split(" ").filter((t) => t); } function ir(e) { return "".concat(e).replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/'/g, "&#39;").replace(/</g, "&lt;").replace(/>/g, "&gt;"); } function ha(e) { return Object.keys(e || {}).reduce((t, n) => t + "".concat(n, '="').concat(ir(e[n]), '" '), "").trim(); } function Je(e) { return Object.keys(e || {}).reduce((t, n) => t + "".concat(n, ": ").concat(e[n].trim(), ";"), ""); } function $t(e) { return e.size !== ae.size || e.x !== ae.x || e.y !== ae.y || e.rotate !== ae.rotate || e.flipX || e.flipY; } function ga(e) { let { transform: t, containerWidth: n, iconWidth: r } = e; const a = { transform: "translate(".concat(n / 2, " 256)") }, o = "translate(".concat(t.x * 32, ", ").concat(t.y * 32, ") "), s = "scale(".concat(t.size / 16 * (t.flipX ? -1 : 1), ", ").concat(t.size / 16 * (t.flipY ? -1 : 1), ") "), i = "rotate(".concat(t.rotate, " 0 0)"), c = { transform: "".concat(o, " ").concat(s, " ").concat(i) }, l = { transform: "translate(".concat(r / 2 * -1, " -256)") }; return { outer: a, inner: c, path: l }; } function ya(e) { let { transform: t, width: n = gt, height: r = gt, startCentered: a = !1 } = e, o = ""; return a && Xn ? o += "translate(".concat(t.x / fe - n / 2, "em, ").concat(t.y / fe - r / 2, "em) ") : a ? o += "translate(calc(-50% + ".concat(t.x / fe, "em), calc(-50% + ").concat(t.y / fe, "em)) ") : o += "translate(".concat(t.x / fe, "em, ").concat(t.y / fe, "em) "), o += "scale(".concat(t.size / fe * (t.flipX ? -1 : 1), ", ").concat(t.size / fe * (t.flipY ? -1 : 1), ") "), o += "rotate(".concat(t.rotate, "deg) "), o; } var ba = `:root, :host { --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"; --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free"; --fa-font-light: normal 300 1em/1 "Font Awesome 6 Pro"; --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Pro"; --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone"; --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"; --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp"; --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp"; --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp"; --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 6 Sharp"; --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 6 Sharp Duotone"; } svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa { overflow: visible; box-sizing: content-box; } .svg-inline--fa { display: var(--fa-display, inline-block); height: 1em; overflow: visible; vertical-align: -0.125em; } .svg-inline--fa.fa-2xs { vertical-align: 0.1em; } .svg-inline--fa.fa-xs { vertical-align: 0em; } .svg-inline--fa.fa-sm { vertical-align: -0.0714285705em; } .svg-inline--fa.fa-lg { vertical-align: -0.2em; } .svg-inline--fa.fa-xl { vertical-align: -0.25em; } .svg-inline--fa.fa-2xl { vertical-align: -0.3125em; } .svg-inline--fa.fa-pull-left { margin-right: var(--fa-pull-margin, 0.3em); width: auto; } .svg-inline--fa.fa-pull-right { margin-left: var(--fa-pull-margin, 0.3em); width: auto; } .svg-inline--fa.fa-li { width: var(--fa-li-width, 2em); top: 0.25em; } .svg-inline--fa.fa-fw { width: var(--fa-fw-width, 1.25em); } .fa-layers svg.svg-inline--fa { bottom: 0; left: 0; margin: auto; position: absolute; right: 0; top: 0; } .fa-layers-counter, .fa-layers-text { display: inline-block; position: absolute; text-align: center; } .fa-layers { display: inline-block; height: 1em; position: relative; text-align: center; vertical-align: -0.125em; width: 1em; } .fa-layers svg.svg-inline--fa { transform-origin: center center; } .fa-layers-text { left: 50%; top: 50%; transform: translate(-50%, -50%); transform-origin: center center; } .fa-layers-counter { background-color: var(--fa-counter-background-color, #ff253a); border-radius: var(--fa-counter-border-radius, 1em); box-sizing: border-box; color: var(--fa-inverse, #fff); line-height: var(--fa-counter-line-height, 1); max-width: var(--fa-counter-max-width, 5em); min-width: var(--fa-counter-min-width, 1.5em); overflow: hidden; padding: var(--fa-counter-padding, 0.25em 0.5em); right: var(--fa-right, 0); text-overflow: ellipsis; top: var(--fa-top, 0); transform: scale(var(--fa-counter-scale, 0.25)); transform-origin: top right; } .fa-layers-bottom-right { bottom: var(--fa-bottom, 0); right: var(--fa-right, 0); top: auto; transform: scale(var(--fa-layers-scale, 0.25)); transform-origin: bottom right; } .fa-layers-bottom-left { bottom: var(--fa-bottom, 0); left: var(--fa-left, 0); right: auto; top: auto; transform: scale(var(--fa-layers-scale, 0.25)); transform-origin: bottom left; } .fa-layers-top-right { top: var(--fa-top, 0); right: var(--fa-right, 0); transform: scale(var(--fa-layers-scale, 0.25)); transform-origin: top right; } .fa-layers-top-left { left: var(--fa-left, 0); right: auto; top: var(--fa-top, 0); transform: scale(var(--fa-layers-scale, 0.25)); transform-origin: top left; } .fa-1x { font-size: 1em; } .fa-2x { font-size: 2em; } .fa-3x { font-size: 3em; } .fa-4x { font-size: 4em; } .fa-5x { font-size: 5em; } .fa-6x { font-size: 6em; } .fa-7x { font-size: 7em; } .fa-8x { font-size: 8em; } .fa-9x { font-size: 9em; } .fa-10x { font-size: 10em; } .fa-2xs { font-size: 0.625em; line-height: 0.1em; vertical-align: 0.225em; } .fa-xs { font-size: 0.75em; line-height: 0.0833333337em; vertical-align: 0.125em; } .fa-sm { font-size: 0.875em; line-height: 0.0714285718em; vertical-align: 0.0535714295em; } .fa-lg { font-size: 1.25em; line-height: 0.05em; vertical-align: -0.075em; } .fa-xl { font-size: 1.5em; line-height: 0.0416666682em; vertical-align: -0.125em; } .fa-2xl { font-size: 2em; line-height: 0.03125em; vertical-align: -0.1875em; } .fa-fw { text-align: center; width: 1.25em; } .fa-ul { list-style-type: none; margin-left: var(--fa-li-margin, 2.5em); padding-left: 0; } .fa-ul > li { position: relative; } .fa-li { left: calc(-1 * var(--fa-li-width, 2em)); position: absolute; text-align: center; width: var(--fa-li-width, 2em); line-height: inherit; } .fa-border { border-color: var(--fa-border-color, #eee); border-radius: var(--fa-border-radius, 0.1em); border-style: var(--fa-border-style, solid); border-width: var(--fa-border-width, 0.08em); padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } .fa-pull-left { float: left; margin-right: var(--fa-pull-margin, 0.3em); } .fa-pull-right { float: right; margin-left: var(--fa-pull-margin, 0.3em); } .fa-beat { animation-name: fa-beat; animation-delay: var(--fa-animation-delay, 0s); animation-direction: var(--fa-animation-direction, normal); animation-duration: var(--fa-animation-duration, 1s); animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-timing-function: var(--fa-animation-timing, ease-in-out); } .fa-bounce { animation-name: fa-bounce; animation-delay: var(--fa-animation-delay, 0s); animation-direction: var(--fa-animation-direction, normal); animation-duration: var(--fa-animation-duration, 1s); animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } .fa-fade { animation-name: fa-fade; animation-delay: var(--fa-animation-delay, 0s); animation-direction: var(--fa-animation-direction, normal); animation-duration: var(--fa-animation-duration, 1s); animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } .fa-beat-fade { animation-name: fa-beat-fade; animation-delay: var(--fa-animation-delay, 0s); animation-direction: var(--fa-animation-direction, normal); animation-duration: var(--fa-animation-duration, 1s); animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } .fa-flip { animation-name: fa-flip; animation-delay: var(--fa-animation-delay, 0s); animation-direction: var(--fa-animation-direction, normal); animation-duration: var(--fa-animation-duration, 1s); animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-timing-function: var(--fa-animation-timing, ease-in-out); } .fa-shake { animation-name: fa-shake; animation-delay: var(--fa-animation-delay, 0s); animation-direction: var(--fa-animation-direction, normal); animation-duration: var(--fa-animation-duration, 1s); animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-timing-function: var(--fa-animation-timing, linear); } .fa-spin { animation-name: fa-spin; animation-delay: var(--fa-animation-delay, 0s); animation-direction: var(--fa-animation-direction, normal); animation-duration: var(--fa-animation-duration, 2s); animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-timing-function: var(--fa-animation-timing, linear); } .fa-spin-reverse { --fa-animation-direction: reverse; } .fa-pulse, .fa-spin-pulse { animation-name: fa-spin; animation-direction: var(--fa-animation-direction, normal); animation-duration: var(--fa-animation-duration, 1s); animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-timing-function: var(--fa-animation-timing, steps(8)); } @media (prefers-reduced-motion: reduce) { .fa-beat, .fa-bounce, .fa-fade, .fa-beat-fade, .fa-flip, .fa-pulse, .fa-shake, .fa-spin, .fa-spin-pulse { animation-delay: -1ms; animation-duration: 1ms; animation-iteration-count: 1; transition-delay: 0s; transition-duration: 0s; } } @keyframes fa-beat { 0%, 90% { transform: scale(1); } 45% { transform: scale(var(--fa-beat-scale, 1.25)); } } @keyframes fa-bounce { 0% { transform: scale(1, 1) translateY(0); } 10% { transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } 30% { transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } 50% { transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } 57% { transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } 64% { transform: scale(1, 1) translateY(0); } 100% { transform: scale(1, 1) translateY(0); } } @keyframes fa-fade { 50% { opacity: var(--fa-fade-opacity, 0.4); } } @keyframes fa-beat-fade { 0%, 100% { opacity: var(--fa-beat-fade-opacity, 0.4); transform: scale(1); } 50% { opacity: 1; transform: scale(var(--fa-beat-fade-scale, 1.125)); } } @keyframes fa-flip { 50% { transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } @keyframes fa-shake { 0% { transform: rotate(-15deg); } 4% { transform: rotate(15deg); } 8%, 24% { transform: rotate(-18deg); } 12%, 28% { transform: rotate(18deg); } 16% { transform: rotate(-22deg); } 20% { transform: rotate(22deg); } 32% { transform: rotate(-12deg); } 36% { transform: rotate(12deg); } 40%, 100% { transform: rotate(0deg); } } @keyframes fa-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .fa-rotate-90 { transform: rotate(90deg); } .fa-rotate-180 { transform: rotate(180deg); } .fa-rotate-270 { transform: rotate(270deg); } .fa-flip-horizontal { transform: scale(-1, 1); } .fa-flip-vertical { transform: scale(1, -1); } .fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { transform: scale(-1, -1); } .fa-rotate-by { transform: rotate(var(--fa-rotate-angle, 0)); } .fa-stack { display: inline-block; vertical-align: middle; height: 2em; position: relative; width: 2.5em; } .fa-stack-1x, .fa-stack-2x { bottom: 0; left: 0; margin: auto; position: absolute; right: 0; top: 0; z-index: var(--fa-stack-z-index, auto); } .svg-inline--fa.fa-stack-1x { height: 1em; width: 1.25em; } .svg-inline--fa.fa-stack-2x { height: 2em; width: 2.5em; } .fa-inverse { color: var(--fa-inverse, #fff); } .sr-only, .fa-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; } .sr-only-focusable:not(:focus), .fa-sr-only-focusable:not(:focus) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; } .svg-inline--fa .fa-primary { fill: var(--fa-primary-color, currentColor); opacity: var(--fa-primary-opacity, 1); } .svg-inline--fa .fa-secondary { fill: var(--fa-secondary-color, currentColor); opacity: var(--fa-secondary-opacity, 0.4); } .svg-inline--fa.fa-swap-opacity .fa-primary { opacity: var(--fa-secondary-opacity, 0.4); } .svg-inline--fa.fa-swap-opacity .fa-secondary { opacity: var(--fa-primary-opacity, 1); } .svg-inline--fa mask .fa-primary, .svg-inline--fa mask .fa-secondary { fill: black; } .fad.fa-inverse, .fa-duotone.fa-inverse { color: var(--fa-inverse, #fff); }`; function sr() { const e = Zn, t = er, n = g.cssPrefix, r = g.replacementClass; let a = ba; if (n !== e || r !== t) { const o = new RegExp("\\.".concat(e, "\\-"), "g"), s = new RegExp("\\--".concat(e, "\\-"), "g"), i = new RegExp("\\.".concat(t), "g"); a = a.replace(o, ".".concat(n, "-")).replace(s, "--".concat(n, "-")).replace(i, ".".concat(r)); } return a; } let fn = !1; function at() { g.autoAddCss && !fn && (ma(sr()), fn = !0); } var va = { mixout() { return { dom: { css: sr, insertCss: at } }; }, hooks() { return { beforeDOMElementCreation() { at(); }, beforeI2svg() { at(); } }; } }; const ce = de || {}; ce[se] || (ce[se] = {}); ce[se].styles || (ce[se].styles = {}); ce[se].hooks || (ce[se].hooks = {}); ce[se].shims || (ce[se].shims = []); var oe = ce[se]; const cr = [], lr = function() { U.removeEventListener("DOMContentLoaded", lr), Ge = 1, cr.map((e) => e()); }; let Ge = !1; le && (Ge = (U.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(U.readyState), Ge || U.addEventListener("DOMContentLoaded", lr)); function xa(e) { le && (Ge ? setTimeout(e, 0) : cr.push(e)); } function De(e) { const { tag: t, attributes: n = {}, children: r = [] } = e; return typeof e == "string" ? ir(e) : "<".concat(t, " ").concat(ha(n), ">").concat(r.map(De).join(""), "</").concat(t, ">"); } function un(e, t, n) { if (e && e[t] && e[t][n]) return { prefix: t, iconName: n, icon: e[t][n] }; } var ot = function(t, n, r, a) { var o = Object.keys(t), s = o.length, i = n, c, l, f; for (r === void 0 ? (c = 1, f = t[o[0]]) : (c = 0, f = r); c < s; c++) l = o[c], f = i(f, t[l], l, t); return f; }; function _a(e) { const t = []; let n = 0; const r = e.length; for (; n < r; ) { const a = e.charCodeAt(n++); if (a >= 55296 && a <= 56319 && n < r) { const o = e.charCodeAt(n++); (o & 64512) == 56320 ? t.push(((a & 1023) << 10) + (o & 1023) + 65536) : (t.push(a), n--); } else t.push(a); } return t; } function _t(e) { const t = _a(e); return t.length === 1 ? t[0].toString(16) : null; } function Ea(e, t) { const n = e.length; let r = e.charCodeAt(t), a; return r >= 55296 && r <= 56319 && n > t + 1 && (a = e.charCodeAt(t + 1), a >= 56320 && a <= 57343) ? (r - 55296) * 1024 + a - 56320 + 65536 : r; } function dn(e) { return Object.keys(e).reduce((t, n) => { const r = e[n]; return !!r.icon ? t[r.iconName] = r.icon : t[n] = r, t; }, {}); } function Et(e, t) { let n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; const { skipHooks: r = !1 } = n, a = dn(t); typeof oe.hooks.addPack == "function" && !r ? oe.hooks.addPack(e, dn(t)) : oe.styles[e] = { ...oe.styles[e] || {}, ...a }, e === "fas" && Et("fa", t); } const { styles: ye, shims: wa } = oe, Aa = { [B]: Object.values(ve[B]), [G]: Object.values(ve[G]), [X]: Object.values(ve[X]) }; let Ut = null, fr = {}, ur = {}, dr = {}, mr = {}, pr = {}; const Sa = { [B]: Object.keys(be[B]), [G]: Object.keys(be[G]), [X]: Object.keys(be[X]) }; function Oa(e) { return ~la.indexOf(e); } function Pa(e, t) { const n = t.split("-"), r = n[0], a = n.slice(1).join("-"); return r === e && a !== "" && !Oa(a) ? a : null; } const hr = () => { const e = (r) => ot(ye, (a, o, s) => (a[s] = ot(o, r, {}), a), {}); fr = e((r, a, o) => (a[3] && (r[a[3]] = o), a[2] && a[2].filter((i) => typeof i == "number").forEach((i) => { r[i.toString(16)] = o; }), r)), ur = e((r, a, o) => (r[o] = o, a[2] && a[2].filter((i) => typeof i == "string").forEach((i) => { r[i] = o; }), r)), pr = e((r, a, o) => { const s = a[2]; return r[o] = o, s.forEach((i) => { r[i] = o; }), r; }); const t = "far" in ye || g.autoFetchSvg, n = ot(wa, (r, a) => { const o = a[0]; let s = a[1]; const i = a[2]; return s === "far" && !t && (s = "fas"), typeof o == "string" && (r.names[o] = { prefix: s, iconName: i }), typeof o == "number" && (r.unicodes[o.toString(16)] = { prefix: s, iconName: i }), r; }, { names: {}, unicodes: {} }); dr = n.names, mr = n.unicodes, Ut = Qe(g.styleDefault, { family: g.familyDefault }); }; da((e) => { Ut = Qe(e.styleDefault, { family: g.familyDefault }); }); hr(); function Bt(e, t) { return (fr[e] || {})[t]; } function Ta(e, t) { return (ur[e] || {})[t]; } function ue(e, t) { return (pr[e] || {})[t]; } function gr(e) { return dr[e] || { prefix: null, iconName: null }; } function ka(e) { const t = mr[e], n = Bt("fas", e); return t || (n ? { prefix: "fas", iconName: n } : null) || { prefix: null, iconName: null }; } function me() { return Ut; } const Wt = () => ({ prefix: null, iconName: null, rest: [] }); function Qe(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; const { family: n = B } = t, r = be[n][e], a = Fe[n][e] || Fe[n][r], o = e in oe.styles ? e : null; return a || o || null; } const Ca = { [B]: Object.keys(ve[B]), [G]: Object.keys(ve[G]), [X]: Object.keys(ve[X]) }; function Ze(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; const { skipLookups: n = !1 } = t, r = { [B]: "".concat(g.cssPrefix, "-").concat(B), [G]: "".concat(g.cssPrefix, "-").concat(G), [X]: "".concat(g.cssPrefix, "-").concat(X) }; let a = null, o = B; const s = zr.filter((c) => c !== Kn); s.forEach((c) => { (e.includes(r[c]) || e.some((l) => Ca[c].includes(l))) && (o = c); }); const i = e.reduce((c, l) => { const f = Pa(g.cssPrefix, l); if (ye[l] ? (l = Aa[o].includes(l) ? aa[o][l] : l, a = l, c.prefix = l) : Sa[o].indexOf(l) > -1 ? (a = l, c.prefix = Qe(l, { family: o })) : f ? c.iconName = f : l !== g.replacementClass && !s.some((p) => l === r[p]) && c.rest.push(l), !n && c.prefix && c.iconName) { const p = a === "fa" ? gr(c.iconName) : {}, y = ue(c.prefix, c.iconName); p.prefix && (a = null), c.iconName = p.iconName || y || c.iconName, c.prefix = p.prefix || c.prefix, c.prefix === "far" && !ye.far && ye.fas && !g.autoFetchSvg && (c.prefix = "fas"); } return c; }, Wt()); return (e.includes("fa-brands") || e.includes("fab")) && (i.prefix = "fab"), (e.includes("fa-duotone") || e.includes("fad")) && (i.prefix = "fad"), !i.prefix && o === G && (ye.fass || g.autoFetchSvg) && (i.prefix = "fass", i.iconName = ue(i.prefix, i.iconName) || i.iconName), !i.prefix && o === X && (ye.fasds || g.autoFetchSvg) && (i.prefix = "fasds", i.iconName = ue(i.prefix, i.iconName) || i.iconName), (i.prefix === "fa" || a === "fa") && (i.prefix = me() || "fas"), i; } class Ia { constructor() { this.definitions = {}; } add() { for (var t = arguments.length, n = new Array(t), r = 0; r < t; r++) n[r] = arguments[r]; const a = n.reduce(this._pullDefinitions, {}); Object.keys(a).forEach((o) => { this.definitions[o] = { ...this.definitions[o] || {}, ...a[o] }, Et(o, a[o]); const s = ve[B][o]; s && Et(s, a[o]), hr(); }); } reset() { this.definitions = {}; } _pullDefinitions(t, n) { const r = n.prefix && n.iconName && n.icon ? { 0: n } : n; return Object.keys(r).map((a) => { const { prefix: o, iconName: s, icon: i } = r[a], c = i[2]; t[o] || (t[o] = {}), c.length > 0 && c.forEach((l) => { typeof l == "string" && (t[o][l] = i); }), t[o][s] = i; }), t; } } let mn = [], we = {}; const Se = {}, Na = Object.keys(Se); function Ma(e, t) { let { mixoutsTo: n } = t; return mn = e, we = {}, Object.keys(Se).forEach((r) => { Na.indexOf(r) === -1 && delete Se[r]; }), mn.forEach((r) => { const a = r.mixout ? r.mixout() : {}; if (Object.keys(a).forEach((o) => { typeof a[o] == "function" && (n[o] = a[o]), typeof a[o] == "object" && Object.keys(a[o]).forEach((s) => { n[o] || (n[o] = {}), n[o][s] = a[o][s]; }); }), r.hooks) { const o = r.hooks(); Object.keys(o).forEach((s) => { we[s] || (we[s] = []), we[s].push(o[s]); }); } r.provides && r.provides(Se); }), n; } function wt(e, t) { for (var n = arguments.length, r = new Array(n > 2 ? n - 2 : 0), a = 2; a < n; a++) r[a - 2] = arguments[a]; return (we[e] || []).forEach((s) => { t = s.apply(null, [t, ...r]); }), t; } function _e(e) { for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r]; (we[e] || []).forEach((o) => { o.apply(null, n); }); } function pe() { const e = arguments[0], t = Array.prototype.slice.call(arguments, 1); return Se[e] ? Se[e].apply(null, t) : void 0; } function At(e) { e.prefix === "fa" && (e.prefix = "fas"); let { iconName: t } = e; const n = e.prefix || me(); if (t) return t = ue(n, t) || t, un(yr.definitions, n, t) || un(oe.styles, n, t); } const yr = new Ia(), Ra = () => { g.autoReplaceSvg = !1, g.observeMutations = !1, _e("noAuto"); }, La = { i2svg: function() { let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; return le ? (_e("beforeI2svg", e), pe("pseudoElements2svg", e), pe("i2svg", e)) : Promise.reject(new Error("Operation requires a DOM of some kind.")); }, watch: function() { let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; const { autoReplaceSvgRoot: t } = e; g.autoReplaceSvg === !1 && (g.autoReplaceSvg = !0), g.observeMutations = !0, xa(() => { ja({ autoReplaceSvgRoot: t }), _e("watch", e); }); } }, Fa = { icon: (e) => { if (e === null) return null; if (typeof e == "object" && e.prefix && e.iconName) return { prefix: e.prefix, iconName: ue(e.prefix, e.iconName) || e.iconName }; if (Array.isArray(e) && e.length === 2) { const t = e[1].indexOf("fa-") === 0 ? e[1].slice(3) : e[1], n = Qe(e[0]); return { prefix: n, iconName: ue(n, t) || t }; } if (typeof e == "string" && (e.indexOf("".concat(g.cssPrefix, "-")) > -1 || e.match(oa))) { const t = Ze(e.split(" "), { skipLookups: !0 }); return { prefix: t.prefix || me(), iconName: ue(t.prefix, t.iconName) || t.iconName }; } if (typeof e == "string") { const t = me(); return { prefix: t, iconName: ue(t, e) || e }; } } }, K = { noAuto: Ra, config: g, dom: La, parse: Fa, library: yr, findIconDefinition: At, toHtml: De }, ja = function() { let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; const { autoReplaceSvgRoot: t = U } = e; (Object.keys(oe.styles).length > 0 || g.autoFetchSvg) && le && g.autoReplaceSvg && K.dom.i2svg({ node: t }); }; function et(e, t) { return Object.defineProperty(e, "abstract", { get: t }), Object.defineProperty(e, "html", { get: function() { return e.abstract.map((n) => De(n)); } }), Object.defineProperty(e, "node", { get: function() { if (!le) return; const n = U.createElement("div"); return n.innerHTML = e.html, n.children; } }), e; } function za(e) { let { children: t, main: n, mask: r, attributes: a, styles: o, transform: s } = e; if ($t(s) && n.found && !r.found) { const { width: i, height: c } = n, l = { x: i / c / 2, y: 0.5 }; a.style = Je({ ...o, "transform-origin": "".concat(l.x + s.x / 16, "em ").concat(l.y + s.y / 16, "em") }); } return [{ tag: "svg", attributes: a, children: t }]; } function Da(e) { let { prefix: t, iconName: n, children: r, attributes: a, symbol: o } = e; const s = o === !0 ? "".concat(t, "-").concat(g.cssPrefix, "-").concat(n) : o; return [{ tag: "svg", attributes: { style: "display: none;" }, children: [{ tag: "symbol", attributes: { ...a, id: s }, children: r }] }]; } function Ht(e) { const { icons: { main: t, mask: n }, prefix: r, iconName: a, transform: o, symbol: s, title: i, maskId: c, titleId: l, extra: f, watchable: p = !1 } = e, { width: y, height: v } = n.found ? n : t, L = r === "fak", E = [g.replacementClass, a ? "".concat(g.cssPrefix, "-").concat(a) : ""].filter((d) => f.classes.indexOf(d) === -1).filter((d) => d !== "" || !!d).concat(f.classes).join(" "); let x = { children: [], attributes: { ...f.attributes, "data-prefix": r, "data-icon": a, class: E, role: f.attributes.role || "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 ".concat(y, " ").concat(v) } }; const C = L && !~f.classes.indexOf("fa-fw") ? { width: "".concat(y / v * 16 * 0.0625, "em") } : {}; p && (x.attributes[xe] = ""), i && (x.children.push({ tag: "title", attributes: { id: x.attributes["aria-labelledby"] || "title-".concat(l || je()) }, children: [i] }), delete x.attributes.title); const $ = { ...x, prefix: r, iconName: a, main: t, mask: n, maskId: c, transform: o, symbol: s, styles: { ...C, ...f.styles } }, { children: T, attributes: F } = n.found && t.found ? pe("generateAbstractMask", $) || { children: [], attributes: {} } : pe("generateAbstractIcon", $) || { children: [], attributes: {} }; return $.children = T, $.attributes = F, s ? Da($) : za($); } function pn(e) { const { content: t, width: n, height: r, transform: a, title: o, extra: s, watchable: i = !1 } = e, c = { ...s.attributes, ...o ? { title: o } : {}, class: s.classes.join(" ") }; i && (c[xe] = ""); const l = { ...s.styles }; $t(a) && (l.transform = ya({ transform: a, startCentered: !0, width: n, height: r }), l["-webkit-transform"] = l.transform); const f = Je(l); f.length > 0 && (c.style = f); const p = []; return p.push({ tag: "span", attributes: c, children: [t] }), o && p.push({ tag: "span", attributes: { class: "sr-only" }, children: [o] }), p; } function Ya(e) { const { content: t, title: n, extra: r } = e, a = { ...r.attributes, ...n ? { title: n } : {}, class: r.classes.join(" ") }, o = Je(r.styles); o.length > 0 && (a.style = o); const s = []; return s.push({ tag: "span", attributes: a, children: [t] }), n && s.push({ tag: "span", attributes: { class: "sr-only" }, children: [n] }), s; } const { styles: it } = oe; function St(e) { const t = e[0], n = e[1], [r] = e.slice(4); let a = null; return Array.isArray(r) ? a = { tag: "g", attributes: { class: "".concat(g.cssPrefix, "-").concat(rt.GROUP) }, children: [{ tag: "path", attributes: { class: "".concat(g.cssPrefix, "-").concat(rt.SECONDARY), fill: "currentColor", d: r[0] } }, { tag: "path", attributes: { class: "".concat(g.cssPrefix, "-").concat(rt.PRIMARY), fill: "currentColor", d: r[1] } }] } : a = { tag: "path", attributes: { fill: "currentColor", d: r } }, { found: !0, width: t, height: n, icon: a }; } const $a = { found: !1, width: 512, height: 512 }; function Ua(e, t) { !tr && !g.showMissingIcons && e && console.error('Icon with name "'.concat(e, '" and prefix "').concat(t, '" is missing.')); } function Ot(e, t) { let n = t; return t === "fa" && g.styleDefault !== null && (t = me()), new Promise((r, a) => { if (n === "fa") { const o = gr(e) || {}; e = o.iconName || e, t = o.prefix || t; } if (e && t && it[t] && it[t][e]) { const o = it[t][e]; return r(St(o)); } Ua(e, t), r({ ...$a, icon: g.showMissingIcons && e ? pe("missingIconAbstract") || {} : {} }); }); } const hn = () => { }, Pt = g.measurePerformance && Be && Be.mark && Be.measure ? Be : { mark: hn, measure: hn }, Me = 'FA "6.6.0"', Ba = (e) => (Pt.mark("".concat(Me, " ").concat(e, " begins")), () => br(e)), br = (e) => { Pt.mark("".concat(Me, " ").concat(e, " ends")), Pt.measure("".concat(Me, " ").concat(e), "".concat(Me, " ").concat(e, " begins"), "".concat(Me, " ").concat(e, " ends")); }; var Vt = { begin: Ba, end: br }; const Ve = () => { }; function gn(e) { return typeof (e.getAttribute ? e.getAttribute(xe) : null) == "string"; } function Wa(e) { const t = e.getAttribute ? e.getAttribute(zt) : null, n = e.getAttribute ? e.getAttribute(Dt) : null; return t && n; } function Ha(e) { return e && e.classList && e.classList.contains && e.classList.contains(g.replacementClass); } function Va() { return g.autoReplaceSvg === !0 ? qe.replace : qe[g.autoReplaceSvg] || qe.replace; } function qa(e) { return U.createElementNS("http://www.w3.org/2000/svg", e); } function Ga(e) { return U.createElement(e); } function vr(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; const { ceFn: n = e.tag === "svg" ? qa : Ga } = t; if (typeof e == "string") return U.createTextNode(e); const r = n(e.tag); return Object.keys(e.attributes || []).forEach(function(o) { r.setAttribute(o, e.attributes[o]); }), (e.children || []).forEach(function(o) { r.appendChild(vr(o, { ceFn: n })); }), r; } function Xa(e) { let t = " ".concat(e.outerHTML, " "); return t = "".concat(t, "Font Awesome fontawesome.com "), t; } const qe = { replace: function(e) { const t = e[0]; if (t.parentNode) if (e[1].forEach((n) => { t.parentNode.insertBefore(vr(n), t); }), t.getAttribute(xe) === null && g.keepOriginalSource) { let n = U.createComment(Xa(t)); t.parentNode.replaceChild(n, t); } else t.remove(); }, nest: function(e) { const t = e[0], n = e[1]; if (~Yt(t).indexOf(g.replacementClass)) return qe.replace(e); const r = new RegExp("".concat(g.cssPrefix, "-.*")); if (delete n[0].attributes.id, n[0].attributes.class) { const o = n[0].attributes.class.split(" ").reduce((s, i) => (i === g.replacementClass || i.match(r) ? s.toSvg.push(i) : s.toNode.push(i), s), { toNode: [], toSvg: [] }); n[0].attributes.class = o.toSvg.join(" "), o.toNode.length === 0 ? t.removeAttribute("class") : t.setAttribute("class", o.toNode.join(" ")); } const a = n.map((o) => De(o)).join(` `); t.setAttribute(xe, ""), t.innerHTML = a; } }; function yn(e) { e(); } function xr(e, t) { const n = typeof t == "function" ? t : Ve; if (e.length === 0) n(); else { let r = yn; g.mutateApproach === na && (r = de.requestAnimationFrame || yn), r(() => { const a = Va(), o = Vt.begin("mutate"); e.map(a), o(), n(); }); } } let qt = !1; function _r() { qt = !0; } function Tt() { qt = !1; } let Xe = null; function bn(e) { if (!on || !g.observeMutations) return; const { treeCallback: t = Ve, nodeCallback: n = Ve, pseudoElementsCallback: r = Ve, observeMutationsRoot: a = U } = e; Xe = new on((o) => { if (qt) return; const s = me(); Te(o).forEach((i) => { if (i.type === "childList" && i.addedNodes.length > 0 && !gn(i.addedNodes[0]) && (g.searchPseudoElements && r(i.target), t(i.target)), i.type === "attributes" && i.target.parentNode && g.searchPseudoElements && r(i.target.parentNode), i.type === "attributes" && gn(i.target) && ~ca.indexOf(i.attributeName)) if (i.attributeName === "class" && Wa(i.target)) { const { prefix: c, iconName: l } = Ze(Yt(i.target)); i.target.setAttribute(zt, c || s), l && i.target.setAttribute(Dt, l); } else Ha(i.target) && n(i.target); }); }), le && Xe.observe(a, { childList: !0, attributes: !0, characterData: !0, subtree: !0 }); } function Ka() { Xe && Xe.disconnect(); } function Ja(e) { const t = e.getAttribute("style"); let n = []; return t && (n = t.split(";").reduce((r, a) => { const o = a.split(":"), s = o[0], i = o.slice(1); return s && i.length > 0 && (r[s] = i.join(":").trim()), r; }, {})), n; } function Qa(e) { const t = e.getAttribute("data-prefix"), n = e.getAttribute("data-icon"), r = e.innerText !== void 0 ? e.innerText.trim() : ""; let a = Ze(Yt(e)); return a.prefix || (a.prefix = me()), t && n && (a.prefix = t, a.iconName = n), a.iconName && a.prefix || (a.prefix && r.length > 0 && (a.iconName = Ta(a.prefix, e.innerText) || Bt(a.prefix, _t(e.innerText))), !a.iconName && g.autoFetchSvg && e.firstChild && e.firstChild.nodeType === Node.TEXT_NODE && (a.iconName = e.firstChild.data)), a; } function Za(e) { const t = Te(e.attributes).reduce((a, o) => (a.name !== "class" && a.name !== "style" && (a[o.name] = o.value), a), {}), n = e.getAttribute("title"), r = e.getAttribute("data-fa-title-id"); return g.autoA11y && (n ? t["aria-labelledby"] = "".concat(g.replacementClass, "-title-").concat(r || je()) : (t["aria-hidden"] = "true", t.focusable = "false")), t; } function eo() { return { iconName: null, title: null, titleId: null, prefix: null, transform: ae, symbol: !1, mask: { iconName: null, prefix: null, rest: [] }, maskId: null, extra: { classes: [], styles: {}, attributes: {} } }; } function vn(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : { styleParser: !0 }; const { iconName: n, prefix: r, rest: a } = Qa(e), o = Za(e), s = wt("parseNodeAttributes", {}, e); let i = t.styleParser ? Ja(e) : []; return { iconName: n, title: e.getAttribute("title"), titleId: e.getAttribute("data-fa-title-id"), prefix: r, transform: ae, mask: { iconName: null, prefix: null, rest: [] }, maskId: null, symbol: !1, extra: { classes: a, styles: i, attributes: o }, ...s }; } const { styles: to } = oe; function Er(e) { const t = g.autoReplaceSvg === "nest" ? vn(e, { styleParser: !1 }) : vn(e); return ~t.extra.classes.indexOf(ar) ? pe("generateLayersText", e, t) : pe("generateSvgReplacementMutation", e, t); } let ie = /* @__PURE__ */ new Set(); nr.map((e) => { ie.add("fa-".concat(e)); }); Object.keys(be[B]).map(ie.add.bind(ie)); Object.keys(be[G]).map(ie.add.bind(ie)); Object.keys(be[X]).map(ie.add.bind(ie)); ie = [...ie]; function xn(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null; if (!le) return Promise.resolve(); const n = U.documentElement.classList, r = (f) => n.add("".concat(ln, "-").concat(f)), a = (f) => n.remove("".concat(ln, "-").concat(f)), o = g.autoFetchSvg ? ie : nr.map((f) => "fa-".concat(f)).concat(Object.keys(to)); o.includes("fa") || o.push("fa"); const s = [".".concat(ar, ":not([").concat(xe, "])")].concat(o.map((f) => ".".concat(f, ":not([").concat(xe, "])"))).join(", "); if (s.length === 0) return Promise.resolve(); let i = []; try { i = Te(e.querySelectorAll(s)); } catch { } if (i.length > 0) r("pending"), a("complete"); else return Promise.resolve(); const c = Vt.begin("onTree"), l = i.reduce((f, p) => { try { const y = Er(p); y && f.push(y); } catch (y) { tr || y.name === "MissingIcon" && console.error(y); } return f; }, []); return new Promise((f, p) => { Promise.all(l).then((y) => { xr(y, () => { r("active"), r("complete"), a("pending"), typeof t == "function" && t(), c(), f(); }); }).catch((y) => { c(), p(y); }); }); } function no(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null; Er(e).then((n) => { n && xr([n], t); }); } function ro(e) { return function(t) { let n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; const r = (t || {}).icon ? t : At(t || {}); let { mask: a } = n; return a && (a = (a || {}).icon ? a : At(a || {})), e(r, { ...n, mask: a }); }; } const ao = function(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; const { transform: n = ae, symbol: r = !1, mask: a = null, maskId: o = null, title: s = null, titleId: i = null, classes: c = [], attributes: l = {}, styles: f = {} } = t; if (!e) return; const { prefix: p, iconName: y, icon: v } = e; return et({ type: "icon", ...e }, () => (_e("beforeDOMElementCreation", { iconDefinition: e, params: t }), g.autoA11y && (s ? l["aria-labelledby"] = "".concat(g.replacementClass, "-title-").concat(i || je()) : (l["aria-hidden"] = "true", l.focusable = "false")), Ht({ icons: { main: St(v), mask: a ? St(a.icon) : { found: !1, width: null, height: null, icon: {} } }, prefix: p, iconName: y, transform: { ...ae, ...n }, symbol: r, title: s, maskId: o, titleId: i, extra: { attributes: l, styles: f, classes: c } }))); }; var oo = { mixout() { return { icon: ro(ao) }; }, hooks() { return { mutationObserverCallbacks(e) { return e.treeCallback = xn, e.nodeCallback = no, e; } }; }, provides(e) { e.i2svg = function(t) { const { node: n = U, callback: r = () => { } } = t; return xn(n, r); }, e.generateSvgReplacementMutation = function(t, n) { const { iconName: r, title: a, titleId: o, prefix: s, transform: i, symbol: c, mask: l, maskId: f, extra: p } = n; return new Promise((y, v) => { Promise.all([Ot(r, s), l.icon