UNPKG

relax-life-kit

Version:
548 lines (529 loc) 19.9 kB
import { h as m, ref as p, computed as W, watch as H, createElementBlock as C, openBlock as I, createElementVNode as i, createCommentVNode as G, normalizeClass as q, toDisplayString as Y, withModifiers as N, createStaticVNode as S, normalizeStyle as U, createBlock as D, resolveDynamicComponent as _, unref as K } from "vue"; const J = (e = !1) => new Promise((n) => { let s = 0; const t = e ? 3 : 1, c = (o) => { o && o.parentNode && o.parentNode.removeChild(o), s++, s === t && n(); }; if (e) { const o = (l) => { const f = document.createElement("div"); f.className = `ink-ripple-global ink-ripple-global-${l}`, document.body.appendChild(f), f.addEventListener("animationend", () => c(f), { once: !0 }); }; for (let l = 0; l < t; l++) l === 0 ? o(l) : setTimeout(() => { o(l); }, 100 * l); } else { const o = document.createElement("div"); o.className = "ink-ripple-global ink-ripple-global-0", document.body.appendChild(o), o.addEventListener("animationend", () => c(o), { once: !0 }); } }), $ = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAHCCAYAAABVM/SHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAOdElEQVR42u3dW4xdc//H8e9Qpk4tktJSRSo0paoOLVIGJVIiiFNVHG6ElOqFhKStuEEIEUEcEwRBUC6ahqCClDpcNI0QF0qlVa2Kdjp6Np3noun+m2dmWv48kk/363W191prrzXZa/ruXmv/1pqWX3/9tasAAuziLQBSCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBY9rFu3rubOnVtz586tJUuW/KPr/vDDD2vs2LE1bty4WrBgwZ96zZtvvlljx46tU045pRYvXmwHNbF+3gL+248//liXXXZZVVW9/vrrdcghh/xj6/7tt9/q22+/raqqkSNH/qnXrF69ur799tsaMGBAHXbYYXZQE/MJq8k8+OCDNXHixJo8eXJt3rx5h8sPGjSoz3kTJkyo0aNH15133umN5V8hWE1m0aJF9dlnn9X69etrt912+1vrWrp0aS1ZsqQGDx7sjeVf4ZCQ/6nXXnut7r///sbztWvXNh6PHz++Wlpaqqpq1KhRNX369Lryyit7rKO9vb2qth5Ojh07ttftzJ8/v3bddVdv+E5OsJrUvHnzaujQob3O6+rqajw+99xza5ddev8gvn79+h1uZ9v5p94sWrSo8XjgwIG1adOmPpetqtqyZUuf8//4M7PzEqwm1dnZWevWrdvhchs2bPhb2znjjDPq0Ucf7XXexo0b68svv6wTTjihBg0aVAcddFCvy86bN69eeeWV6t+/fz3wwAO9rsunq+bQ8uuvv/qvqYl8/fXX9dNPP/2j6zzyyCO3+03ip59+Wvfcc091dnbWnDlzGtPfeeedmjRpUu2///715JNP1oQJE3p9/bPPPlu33nprDRgwwLCGJucTVpMZOXLknx5O8E858MADa968eVVV9c0339SIESOqamuwqqqGDBnSZ6zgjwSryVx++eW1dOnS7S5z2GGH1UsvvVRVVStXrqwLL7xwh+udOXNmnXfeeb3OO/zww2v06NG1cOHCmj17do0YMaI2b95cs2fPrqqqSy+9tLHs3Llz64477uj2+tWrV1fV1pPup556ao/133vvvXX66afbuU1AsJrMokWL6vvvv9/uMr///nvj8ebNm+ubb77Z4Xq3RaUvbW1ttXDhwvr888+rqurtt9+ulStXVmtra7dvBtvb2/vc3pYtW3qd19HRYcc2CcFqUvPnz+/xLeHixYvrtNNO63X5wYMH1xdffNFj+m233VYvv/zyDrd35pln1sKFC6utra2qtp4kHzduXI0ZM6YOOOCAXl+z7bKgF154oaZPn14DBgyor776qqq2nrA/4ogj7MgmI1hNao899qi99tqrx7S+tLS09Fi+avvfzrW3t9cTTzzReH7yySfX2rVr67777quqrd8gVlXj+XHHHdft9du219ra2mNav35+dZuRvc7/THt7eyNGf8Z1111X48eP98bRJ8FqUhMmTOgxIHTLli19Lr9ixYo66qijekzf3vmj1tbWHp+a2tvbG+fQRo8e3RjpXlX/6EXW7JwEq0l1dHR0i0XV9keLb9mypdasWdNj+h9P0P+3Aw88sN5///1u0+bMmVNXX311VW098f7Hw72qqjfeeKPxeMiQIVW1dZBrVdWaNWsa02hOgtWkPv/88xo2bFi3ad99912deOKJvS4/ZMiQxgnvP7rlllvqxRdf/Md+rv79+/e4Q8T69evrt99+q6qqPffcs8f5q/79+9uhTUKw+Nd0dnZ2u/h51qxZtWrVqlq+fHmtWLGiDjnkkLrjjju6jedau3ZtnXPOOY3hDOPHj6/nnnuux6dDmoNgNan169d3i8e2aX3p6urqsXzV/x2u9eX888+vZcuW1apVq6qjo6PbYefNN9/cbdmzzjqrxzanTJnSbezV7Nmza+bMmXX33XfbiU1IsJrUKaec8peWX758+f/rpPjq1avrhx9+aDxvbW2tjRs3VlXVpEmTatiwYTV06NAaOnRot3FVv//+e910002N0fDbXrvPPvvU448/Xh0dHfXggw8a3tBk7O0ms+0ODcOHD+9xA7/Nmzd3u+VLt1+Ufv16Hai5fPny7Y5ynzhxYs2YMaOGDRtWhx56aH344Yd1zTXXVFXVww8/3Gtw2tvb64Ybbqh33nmndt999zr33HNr9uzZ1draWk8//XRdeuml9eKLL9bixYvrscce6/M2Oex8BKvJbPum78033+zxD723k+7blj/ggAPqk08+6bG+HZ10nzlzZrfny5cvr6qt97/qLVYfffRRTZkypZYtW1b9+vWrJ554olatWtX4pNXW1laPPPJITZ06tebNm1fjx4+vGTNm1LXXXlu77767HbyTc4vkJrJ06dLGear99tvvT71m25ipgQMH/u3td3V11euvv15VVWPGjOk2b9GiRXX99dfXxRdfXMuWLau99967Xn755brooot6rGfSpEn1zDPP1F577VVr1qyp22+/vU466aTGN4nsvASriXz88cdVtfXTUm+X2fTm3Xffrar629ftdXZ21owZMxoXP0+ePLkxb8GCBXXyySfXrFmzqqurq0aPHl3vvffedm85c8EFF9QHH3xQxx9/fFVVHXzwwbX33nvbyTs5h4RNoqurq5566qmqqjr77LP7XKaqGkMGVqxYUa+88kpVbb1V8vZe05eOjo5666236pFHHmmM42pra6tLLrmkscyxxx5bgwcPrtWrV9e0adNq2rRpf+oPZAwfPrzefffdevXVV2vfffe1k5uAYDWJhx56qBYsWFAtLS114403dps3ffr0mjNnTuNwcf/996+qqqlTp9aGDRtqyJAh3QJTVTVu3LjasGFDrVixoqr6vnD6+eef73Z/q7POOqvHOKpdd921Hn300Ro5cuR2/6xYb1paWuqKK66wg5uEQ8ImMXny5Bo+fHjdcMMNdcwxx3Sbt+eee9aSJUvql19+qYEDB9aUKVOqquqqq66qfv361V133dXjEprOzs5asmRJbdq0qQ4//PA+L1q+6qqrqn///nX00UfXk08+Wa+99lqvh25tbW1/OVY0H/d0byIrV66sfffd9y/9PcIvv/yyRo0a9be2+/PPP/d5zyv4KwQLiOGQEIghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJiCBYQQ7CAGIIFxBAsIIZgATEEC4ghWEAMwQJi/AcM5esoZxmwJwAAAABJRU5ErkJggg==", ee = (e, n) => { const s = e.__vccOpts || e; for (const [t, c] of n) s[t] = c; return s; }, te = { class: "relax-drawer-wrapper" }, ae = { class: "relax-video-container" }, re = { class: "title-text", title: "如果遇到加载不出可以换一个" }, oe = { class: "relax-video" }, le = { class: "relax-video-content" }, ne = { key: 0, class: "img" }, ie = ["src"], se = ["src"], ce = { class: "relax-video-btns" }, de = { class: "modal-footer" }, fe = { __name: "RelaxDrawer", props: { open: { type: Boolean, default: !1 }, getRedirectUrlLoading: { type: Boolean, default: !1 }, title: { type: String, default: "😎 放松一下,劳逸结合" }, videoApiUrl: { type: String, default: "https://api.yujn.cn/api/zzxjj.php?type=video" } }, emits: ["update:open", "update:getRedirectUrlLoading"], setup(e, { expose: n, emit: s }) { let t; try { t = require("ant-design-vue").message; } catch { t = { success: (r) => console.log("Success:", r), error: (r) => console.error("Error:", r) }; } let c; try { c = require("@ant-design/icons-vue").HistoryOutlined; } catch { c = { name: "FallbackHistory", setup() { return () => m("span", { class: "fallback-history-icon" }, "📜"); } }; } const o = e, l = s, f = { video: [ "mp4", "avi", "mov", "wmv", "flv", "webm", "mkv", "m4v", "3gp", "ogv", "video" ], imgs: [ "jpg", "jpeg", "png", "gif", "webp", "bmp", "svg", "ico" ] }, w = p(!!(window && window.electron && window.electron.ipcRenderer)), u = p(""), M = p(null), E = p(!1), B = p(!1), V = (a) => { if (!a) return !1; const r = a.split("?")[0]; return f.video.some( (g) => r.toLowerCase().includes(`.${g}`) ); }, Z = (a) => { if (!a) return !1; const r = a.split("?")[0]; return f.imgs.some( (g) => r.toLowerCase().includes(`.${g}`) ); }, b = W({ get: () => o.open, set: (a) => l("update:open", a) }), v = W({ get: () => o.getRedirectUrlLoading, set: (a) => l("update:getRedirectUrlLoading", a) }), z = (a) => { a.target.src = $; }, k = async () => { try { return w.value ? (await fetch(o.videoApiUrl, { method: "GET" })).url : o.videoApiUrl; } catch (a) { return console.error("fetch error:", a), ""; } }, R = async () => { v.value = !0, u.value = await k(), v.value = !1, b.value = !0; }, F = () => { b.value = !1; }, O = async () => { v.value = !0, u.value = await k(), v.value = !1; }, j = async () => { let a = "", r = "", g = V(u.value), L = Z(u.value); const T = (d, x) => { try { let A = new URL(d, window.location.origin).pathname, h = A.substring(A.lastIndexOf("/") + 1); return (!h || !/\.[a-zA-Z0-9]+$/.test(h)) && (h = `relax_${Date.now()}.${x}`), decodeURIComponent(h); } catch { return `relax_${Date.now()}.${x}`; } }; try { if (v.value = !0, g) { const d = M.value; if (!d) { t.error("未找到视频元素"); return; } a = d.currentSrc, r = T(a, "mp4"); } else if (L) a = u.value, r = T(a, "jpg"); else { t.error("暂不支持的媒体类型"); return; } if (w.value) { const d = await fetch(a); if (!d.ok) throw new Error("下载失败"); const Q = await (await d.blob()).arrayBuffer(), A = await window.electron.ipcRenderer.invoke( "save-video-buffer", { buffer: Array.from(new Uint8Array(Q)), fileName: r // 兼容主进程可选参数 } ); A.success ? t.success("下载成功!") : t.error(A.error); } else { const d = await fetch(a, { mode: "cors" }); if (!d.ok) throw new Error("下载失败"); const x = await d.blob(), Q = window.URL.createObjectURL(x), A = document.createElement("a"); A.href = Q, A.download = r, document.body.appendChild(A), A.click(), setTimeout(() => { window.URL.revokeObjectURL(Q), document.body.removeChild(A); }, 100), t.success("下载成功!"); } } catch (d) { t.error(d.message || "保存失败"); } finally { v.value = !1; } }, P = async () => { if (!B.value) { if (typeof J == "function") { B.value = !0; const a = Math.random() > 0.3; await J(a), B.value = !1; } E.value = !0; } }; return H( () => b.value, async (a) => { a && (u.value = await k()); } ), n({ handleOpenRelax: R }), (a, r) => (I(), C("div", null, [ i("div", te, [ b.value ? (I(), C("div", { key: 0, class: "relax-drawer-overlay", onClick: F })) : G("", !0), i("div", { class: q(["relax-drawer-content", { open: b.value }]) }, [ i("div", ae, [ i("div", { class: "relax-video-title", onClick: P }, [ i("span", re, Y(e.title), 1), r[4] || (r[4] = i("span", { class: "history-icon", title: "历史记录" }, "📜", -1)) ]), r[5] || (r[5] = i("hr", { class: "relax-divider" }, null, -1)), i("div", oe, [ i("div", le, [ Z(u.value) ? (I(), C("div", ne, [ i("img", { src: u.value, alt: "放松一下", onError: z }, null, 40, ie) ])) : (I(), C("video", { key: 1, ref_key: "relaxVideoRef", ref: M, src: u.value, autoplay: "", muted: "", loop: "", controls: "" }, null, 8, se)) ]), i("div", ce, [ i("button", { class: "relax-btn primary", onClick: O }, " 换一个 "), i("button", { class: q(["relax-btn primary", { loading: v.value }]), onClick: j }, " 保存 ", 2), i("button", { class: "relax-btn", onClick: F }, "关闭") ]) ]) ]) ], 2), E.value ? (I(), C("div", { key: 1, class: "relax-modal-overlay", onClick: r[3] || (r[3] = (g) => E.value = !1) }, [ i("div", { class: "relax-modal-content", onClick: r[2] || (r[2] = N(() => { }, ["stop"])) }, [ r[6] || (r[6] = S('<div class="modal-header" data-v-f9c50557><h3 data-v-f9c50557>往昔如镜 照影不照形</h3></div><div class="modal-body" data-v-f9c50557><p data-v-f9c50557>镜中影可暂观却不可触摸,执着于追溯形骸不如把握当下神韵</p><p data-v-f9c50557>来路无可眷恋,期待唯有远方</p><p data-v-f9c50557>你的人生中会有人</p><p data-v-f9c50557>想要阻止你拖累你</p><p data-v-f9c50557>但别让他们得逞</p><p data-v-f9c50557>不要停止奔跑 不要回顾来路</p><p data-v-f9c50557>值得期待的只有远方</p><p data-v-f9c50557>👋✨✨✨</p></div>', 2)), i("div", de, [ i("button", { class: "relax-btn", onClick: r[0] || (r[0] = (g) => E.value = !1) }, " 再见👋 "), i("button", { class: "relax-btn primary", onClick: r[1] || (r[1] = (g) => E.value = !1) }, " 好的✨ ") ]) ]) ])) : G("", !0) ]) ])); } }, Ce = /* @__PURE__ */ ee(fe, [["__scopeId", "data-v-f9c50557"]]), Ae = ["title"], ue = { key: 1 }, Ee = { __name: "RelaxButton", props: { loading: { type: Boolean, default: !1 }, icon: { type: String, default: "🧘‍♀️" }, title: { type: String, default: "放松一下" }, fontSize: { type: Number, default: () => 16 } }, emits: ["click"], setup(e, { emit: n }) { let s; try { s = require("@ant-design/icons-vue").LoadingOutlined; } catch { s = { name: "FallbackLoading", setup() { return () => m("div", { class: "fallback-loading" }, "⏳"); } }; } const t = e, c = n, o = W(() => typeof t.fontSize == "number" ? `${t.fontSize}px` : typeof t.fontSize == "string" && (t.fontSize.includes("px") || t.fontSize.includes("em") || t.fontSize.includes("rem") || t.fontSize.includes("%")) ? t.fontSize : "16px"), l = () => { t.loading || c("click"); }; return (f, w) => (I(), C("div", { class: q(["relax-life-kit_relax-button", { loading: e.loading }]), onClick: l, title: e.title, style: U({ fontSize: o.value }) }, [ e.loading ? (I(), D(_(K(s)), { key: 0 })) : (I(), C("span", ue, Y(e.icon), 1)) ], 14, Ae)); } }, be = () => { const e = p(!1), n = p(!1); return { // 状态 relaxOpen: e, getRedirectUrlLoading: n, // 方法 openRelax: () => { e.value = !0; }, closeRelax: () => { e.value = !1; }, setLoading: (o) => { n.value = o; } }; }; let y = !1, X = {}; const ge = () => { if (y) return !0; try { const e = require("ant-design-vue"); if (e) return y = !0, X = e, !0; } catch { if (typeof window < "u" && window.antd) return y = !0, X = window.antd, !0; } return !1; }, Ie = (e) => ge() && X[e] || null, xe = (e, n = {}) => ({ name: `Fallback${e}`, props: Object.keys(n), setup(s, { slots: t, emit: c }) { return () => { const o = Ie(e); return o ? m(o, s, t) : ve(e, s, t, c); }; } }), ve = (e, n, s, t) => { const o = { Button: "button", Tooltip: "div", Drawer: "div", Modal: "div", Image: "img", Divider: "hr" }[e] || "div", l = {}; switch (e) { case "Button": l.class = "fallback-button", l.onClick = (f) => t("click", f); break; case "Tooltip": l.class = "fallback-tooltip", l.title = n.title; break; case "Drawer": l.class = `fallback-drawer ${n.open ? "open" : ""}`; break; case "Modal": l.class = `fallback-modal ${n.open ? "open" : ""}`; break; case "Image": l.src = n.src, l.alt = n.alt, l.class = "fallback-image"; break; case "Divider": l.class = "fallback-divider"; break; } return m(o, l, s); }, Qe = ` .fallback-button { display: inline-flex; align-items: center; justify-content: center; padding: 4px 15px; font-size: 14px; font-weight: 400; line-height: 1.5715; border: 1px solid #d9d9d9; border-radius: 6px; background: #fff; cursor: pointer; transition: all 0.2s; color: rgba(0, 0, 0, 0.85); } .fallback-button:hover { border-color: #40a9ff; color: #40a9ff; } .fallback-button:active { border-color: #096dd9; color: #096dd9; } .fallback-button.primary { background: #1890ff; border-color: #1890ff; color: #fff; } .fallback-button.primary:hover { background: #40a9ff; border-color: #40a9ff; } .fallback-drawer { position: fixed; top: 0; right: -600px; width: 600px; height: 100vh; background: #fff; box-shadow: -2px 0 8px rgba(0, 0, 0, 0.15); transition: right 0.3s; z-index: 1000; overflow-y: auto; } .fallback-drawer.open { right: 0; } .fallback-modal { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(0, 0, 0, 0.45); display: flex; align-items: center; justify-content: center; z-index: 1000; opacity: 0; visibility: hidden; transition: all 0.3s; } .fallback-modal.open { opacity: 1; visibility: visible; } .fallback-modal .modal-content { background: #fff; border-radius: 6px; padding: 24px; max-width: 520px; width: 90%; max-height: 80vh; overflow-y: auto; } .fallback-tooltip { position: relative; display: inline-block; } .fallback-tooltip:hover::after { content: attr(title); position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.75); color: #fff; padding: 4px 8px; border-radius: 4px; font-size: 12px; white-space: nowrap; z-index: 1000; } .fallback-image { max-width: 100%; height: auto; } .fallback-divider { border: none; border-top: 1px solid #f0f0f0; margin: 16px 0; } /* 暗色主题适配 */ .dark-theme .fallback-button { background: #1f1f1f; border-color: #434343; color: #fff; } .dark-theme .fallback-button:hover { border-color: #40a9ff; color: #40a9ff; } .dark-theme .fallback-drawer { background: #1f1f1f; color: #fff; } .dark-theme .fallback-modal .modal-content { background: #1f1f1f; color: #fff; } .dark-theme .fallback-divider { border-top-color: #434343; } `; export { Ee as RelaxButton, Ce as RelaxDrawer, ge as checkAntdAvailability, xe as createFallbackComponent, J as createInkRipple, Qe as fallbackStyles, Ie as getAntdComponent, be as useRelax };