karin-plugin-kkk 2.30.1 → 2.30.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { i as __toESM } from "./rolldown-runtime.js";
2
- import { A as solar_default, B as require_heic_decode, C as clsx, D as addCollection, E as Icon$1, F as lucide_default, H as Chalk, I as ant_design_default, L as require_png, M as ri_default, N as mingcute_default, O as require_react, P as material_symbols_default, R as require_jsQR, S as Button, T as require_server_node, U as Xhshow, V as require_protobufjs, W as zod_default, _ as fromUnixTime, a as purify, b as differenceInSeconds, c as VictoryLine, d as VictoryLabel, f as VictoryTheme, g as parse, h as zhCN, i as Window, j as simple_icons_default, k as tabler_default, l as VictoryChart, m as Markdown, n as require_lib, o as VictoryScatter, p as rehypeHighlight, r as require_qr_code_styling, s as VictoryPie, t as require_dist, u as VictoryAxis, v as formatDistanceToNow, w as require_jsx_runtime, x as Chip, y as format, z as require_jpeg_js } from "./vendor.js";
2
+ import { $ as zhCN, $t as Hash, A as n, An as Chip, At as Save, B as RiPieChart2Fill, Bn as require_protobufjs, Bt as Palette, C as BiImage, Cn as ChartColumn, Ct as ShoppingBag, D as AiOutlineVideoCamera, Dn as Bot, Dt as Settings2, E as AiFillStar, En as Box, Et as Share2, F as RiHeart3Fill, Fn as require_react, Ft as QrCode, G as RiTiktokFill, Gt as Menu, H as RiStarFill, Hn as Xhshow, Ht as Moon, I as RiHeart3Line, In as require_png, It as Puzzle, J as RiVerifiedBadgeFill, Jt as LoaderCircle, K as RiTrophyFill, Kt as Maximize, L as RiHeartLine, Ln as require_jsQR, Lt as Plus, M as RiArrowRightFill, Mn as clsx, Mt as RefreshCw, N as RiGroupLine, Nn as require_jsx_runtime, Nt as Radio, O as m, On as Bookmark, Ot as Search, P as RiHashtag, Pn as require_server_node, Pt as Quote, Q as SiAnthropic, Qt as Heart, R as RiLiveLine, Rn as require_jpeg_js, Rt as Play, S as FaUserGroup, Sn as Check, St as Smartphone, T as AiFillPushpin, Tn as Calendar, Tt as ShieldCheck, U as RiStarLine, Un as zod_default, Ut as Monitor, V as RiShareForwardFill, Vn as Chalk, Vt as Music, W as RiThumbUpFill, Wt as MessageCircle, X as SiGithub, Xt as Info, Y as RiVideoLine, Yt as LayoutTemplate, Z as SiBilibili, Zt as Image$1, _ as MdLocationOn, _n as CircleFadingArrowUp, _t as Sun, a as purify, an as Eye, at as Zap, b as FaMusic, bn as CircleCheck, bt as SquarePen, c as VictoryLine, cn as Download, ct as Video, d as VictoryLabel, dn as CornerDownLeft, dt as User, en as GitBranch, et as parse, f as VictoryTheme, fn as Copy, ft as UserPlus, g as MdLightbulbOutline, gn as CircleQuestionMark, gt as Terminal, h as MdInfoOutline, hn as Clapperboard, ht as Trash2, i as Window, in as FilePlay, it as differenceInSeconds, j as Markdown, jn as Button, jt as RotateCcw, k as a, kn as BellRing, kt as ScanLine, l as VictoryChart, ln as Crown, lt as Users, m as MdFitScreen, mn as Clock, mt as TriangleAlert, n as require_lib, nn as Gamepad2, nt as formatDistanceToNow, o as VictoryScatter, on as EyeOff, ot as X, p as rehypeHighlight, pn as Code, pt as Upload, q as RiUserFollowLine, qt as MapPin, r as require_qr_code_styling, rn as FileText, rt as format, s as VictoryPie, sn as ExternalLink, st as WandSparkles, t as createProxyMiddleware, tn as Gift, tt as fromUnixTime, u as VictoryAxis, un as Cpu, ut as UsersRound, v as MdSchedule, vn as CircleEllipsis, vt as Star, w as AiFillHeart, wn as Camera, wt as Shield, x as FaTiktok, xn as CircleAlert, xt as Sparkles, y as FaCommentDots, yn as CircleCheckBig, yt as Square, z as RiMessage3Fill, zn as require_heic_decode, zt as Pencil } from "./vendor.js";
3
3
  import "node:module";
4
4
  import fs from "node:fs";
5
5
  import path, { resolve } from "node:path";
@@ -104,7 +104,9 @@ function checkDeprecation(apiName) {
104
104
  * @returns 格式化的废弃提示消息字符串
105
105
  */
106
106
  function buildDeprecationMessage(config) {
107
- const lines = [`[DEPRECATED] "${config.name}" 已在 v${config.deprecatedIn} 版本废弃。`, `请使用 "${config.replacement}" 替代。`];
107
+ const lines = [`[DEPRECATED] "${config.name}" 已在 v${config.deprecatedIn} 版本废弃。`];
108
+ if (config.replacement) lines.push(`请使用 "${config.replacement}" 替代。`);
109
+ else lines.push("此接口已被上游删除,无法继续使用,无可用替代方案。");
108
110
  if (config.removedIn) lines.push(`此 API 将在 v${config.removedIn} 版本移除。`);
109
111
  if (config.migrationGuide) lines.push(`迁移指南: ${config.migrationGuide}`);
110
112
  return lines.join("\n");
@@ -212,10 +214,6 @@ registerDeprecatedApi({
212
214
  name: "动态详情数据",
213
215
  replacement: "fetchDynamicDetail"
214
216
  },
215
- {
216
- name: "动态卡片数据",
217
- replacement: "fetchDynamicCard"
218
- },
219
217
  {
220
218
  name: "直播间信息",
221
219
  replacement: "fetchLiveRoomInfo"
@@ -365,6 +363,20 @@ registerDeprecatedApi({
365
363
  throwError: true
366
364
  });
367
365
  });
366
+ registerDeprecatedApi({
367
+ name: `methodType: '动态卡片数据'`,
368
+ deprecatedIn: "6.0.0",
369
+ removedIn: "7.0.0",
370
+ migrationGuide: "https://amagi-docs.vercel.app/docs/changelog/6.1.3",
371
+ throwError: false
372
+ });
373
+ registerDeprecatedApi({
374
+ name: "fetchDynamicCard",
375
+ deprecatedIn: "6.1.3",
376
+ removedIn: "7.0.0",
377
+ migrationGuide: "https://amagi-docs.vercel.app/docs/changelog/6.1.3",
378
+ throwError: false
379
+ });
368
380
  //#endregion
369
381
  //#region ../amagi/packages/core/src/model/DataFetchers.ts
370
382
  /**
@@ -544,9 +556,14 @@ var BilibiliAPI = class {
544
556
  getDynamicDetail(data) {
545
557
  return `https://api.bilibili.com/x/polymer/web-dynamic/v1/detail?id=${data.dynamic_id}&features=itemOpusStyle,opusBigCover,onlyfansVote,endFooterHidden,decorationCard,onlyfansAssetsV2,ugcDelete,onlyfansQaCard,editable,opusPrivateVisible,avatarAutoTheme`;
546
558
  }
547
- /** 获取动态卡片信息 */
559
+ /**
560
+ * 获取动态卡片信息
561
+ *
562
+ * @deprecated B站官方已于 `2025-08-09` 删除原 `dynamic_svr` 接口,该接口已停用。
563
+ * 调用将返回错误信息,请使用 {@link getDynamicDetail} 替代。
564
+ */
548
565
  getDynamicCard(data) {
549
- return `https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_detail?dynamic_id=${data.dynamic_id}`;
566
+ return this.getDynamicDetail(data);
550
567
  }
551
568
  /** 获取用户名片信息 */
552
569
  getUserCard(data) {
@@ -1790,15 +1807,20 @@ async function fetchBilibiliInternal(methodType, options, config) {
1790
1807
  const rawData = await fetchBilibili({ ...validateBilibiliParams(methodType, options) }, config.cookie, config.requestConfig);
1791
1808
  const duration = Date.now() - startTime;
1792
1809
  if (rawData.code !== 0) {
1810
+ const errorMessage = rawData.message || "B站数据获取失败";
1793
1811
  emitApiError({
1794
1812
  platform: "bilibili",
1795
1813
  methodType,
1796
1814
  errorCode: rawData.code,
1797
- errorMessage: "B站数据获取失败",
1815
+ errorMessage,
1798
1816
  url: void 0,
1799
1817
  duration
1800
1818
  });
1801
- return createErrorResponse(rawData.amagiError, "B站数据获取失败", rawData.code, rawData.data);
1819
+ return createErrorResponse(rawData.amagiError ?? {
1820
+ errorDescription: errorMessage,
1821
+ requestType: methodType,
1822
+ requestUrl: void 0
1823
+ }, errorMessage, rawData.code, rawData);
1802
1824
  }
1803
1825
  const result = createSuccessResponse$1(rawData, "获取成功", 200);
1804
1826
  emitApiSuccess({
@@ -2107,18 +2129,24 @@ async function fetchDynamicDetail(options, cookie, requestConfig) {
2107
2129
  }
2108
2130
  /**
2109
2131
  * 获取B站动态卡片信息
2132
+ *
2133
+ * @deprecated v6.1.3 已废弃,B站官方已于 `2025-08-09` 删除原 `dynamic_svr` 接口。
2134
+ * 调用将返回错误信息
2135
+ * 计划于 v7.0.0 移除。
2136
+ *
2110
2137
  * @param options - 动态参数
2111
2138
  * @param options.dynamic_id - 动态 ID
2112
2139
  * @param cookie - B站 Cookie (可选)
2113
2140
  * @param requestConfig - 请求配置 (可选)
2114
- * @returns 动态卡片数据
2141
+ * @returns 动态卡片数据(已停用,返回错误信息)
2115
2142
  * @example
2116
2143
  * ```typescript
2117
2144
  * const result = await fetchDynamicCard({ dynamic_id: '123456789' }, cookie)
2118
- * console.log(result.data.card) // 动态卡片
2145
+ * // result.success === false,错误信息提示接口已停用
2119
2146
  * ```
2120
2147
  */
2121
2148
  async function fetchDynamicCard(options, cookie, requestConfig) {
2149
+ checkDeprecation("fetchDynamicCard");
2122
2150
  return fetchBilibiliInternal("dynamicCard", options, {
2123
2151
  cookie,
2124
2152
  requestConfig
@@ -2388,6 +2416,7 @@ function createBoundBilibiliFetcher(cookie, requestConfig) {
2388
2416
  fetchUserSpaceInfo: (options) => fetchUserSpaceInfo(options, cookie, requestConfig),
2389
2417
  fetchUploaderTotalViews: (options) => fetchUploaderTotalViews(options, cookie, requestConfig),
2390
2418
  fetchDynamicDetail: (options) => fetchDynamicDetail(options, cookie, requestConfig),
2419
+ /** @deprecated v6.1.3 已废弃,调用将返回错误信息 */
2391
2420
  fetchDynamicCard: (options) => fetchDynamicCard(options, cookie, requestConfig),
2392
2421
  fetchBangumiInfo: (options) => fetchBangumiInfo(options, cookie, requestConfig),
2393
2422
  fetchBangumiStreamUrl: (options) => fetchBangumiStreamUrl(options, cookie, requestConfig),
@@ -5433,6 +5462,8 @@ var encodeBase64Url = (bytes) => {
5433
5462
  * 数据流而最小化保留的局部算法。
5434
5463
  */
5435
5464
  var KuaishouChaChaCipher = class {
5465
+ key;
5466
+ nonce;
5436
5467
  wordIndex = 0;
5437
5468
  state = new Array(16).fill(0);
5438
5469
  constructor(key, nonce) {
@@ -8577,19 +8608,12 @@ var fetchBilibili = async (data, cookie, requestConfig) => {
8577
8608
  url: bilibiliApiUrls.getDynamicDetail({ dynamic_id: data.dynamic_id })
8578
8609
  });
8579
8610
  }
8580
- case "dynamicCard": {
8581
- const { dynamic_id } = data;
8582
- const hasExternalReferer = requestConfig?.headers && "referer" in requestConfig.headers;
8583
- const customHeaders = {
8584
- ...baseRequestConfig.headers,
8585
- ...!hasExternalReferer && { Referer: void 0 }
8586
- };
8587
- return await GlobalGetData(data.methodType, {
8588
- ...baseRequestConfig,
8589
- headers: customHeaders,
8590
- url: bilibiliApiUrls.getDynamicCard({ dynamic_id })
8591
- });
8592
- }
8611
+ case "dynamicCard": return {
8612
+ code: -404,
8613
+ message: "接口已停用:B站官方已于 `2025-08-09` 删除 dynamic_svr 接口,fetchDynamicCard 方法已废弃,调用讲返回错误信息",
8614
+ ttl: 1,
8615
+ data: null
8616
+ };
8593
8617
  case "userCard": {
8594
8618
  const { host_mid } = data;
8595
8619
  return await GlobalGetData(data.methodType, {
@@ -9493,13 +9517,13 @@ var createAmagiClient = (options) => {
9493
9517
  * @param event - 事件名称
9494
9518
  * @param listener - 事件处理函数
9495
9519
  */
9496
- on: amagiEvents.on.bind(amagiEvents),
9520
+ on: (event, listener) => amagiEvents.on(event, listener),
9497
9521
  /**
9498
9522
  * 注册一次性事件监听器
9499
9523
  * @param event - 事件名称
9500
9524
  * @param listener - 事件处理函数 (只触发一次)
9501
9525
  */
9502
- once: amagiEvents.once.bind(amagiEvents),
9526
+ once: (event, listener) => amagiEvents.once(event, listener),
9503
9527
  /** @deprecated v6 已废弃,请使用 douyin.fetcher 替代 */
9504
9528
  getDouyinData,
9505
9529
  /** @deprecated v6 已废弃,请使用 bilibili.fetcher 替代 */
@@ -9663,7 +9687,7 @@ var AdditionalType = /* @__PURE__ */ function(AdditionalType) {
9663
9687
  return AdditionalType;
9664
9688
  }({});
9665
9689
  //#endregion
9666
- //#region ../amagi/packages/core/src/types/ReturnDataType/Bilibili/DynamicInfo.ts
9690
+ //#region ../amagi/packages/core/src/types/ReturnDataType/Bilibili/DynamicInfo/index.ts
9667
9691
  var DynamicType = /* @__PURE__ */ function(DynamicType) {
9668
9692
  DynamicType["AV"] = "DYNAMIC_TYPE_AV";
9669
9693
  DynamicType["DRAW"] = "DYNAMIC_TYPE_DRAW";
@@ -10163,6 +10187,11 @@ var CreateApp = CreateAmagiApp;
10163
10187
  /** After instantiation, it can interact with the specified platform API to quickly obtain data. */
10164
10188
  var Client = CreateApp;
10165
10189
  var amagi = Client;
10190
+ /*!
10191
+ * @ikenxuan/amagi
10192
+ * Copyright(c) 2023 ikenxuan
10193
+ * GPL-3.0 Licensed
10194
+ */
10166
10195
  //#endregion
10167
10196
  //#region src/module/utils/Config.ts
10168
10197
  var Cfg = class {
@@ -12613,11 +12642,17 @@ var Downloader = class {
12613
12642
  const timeoutId = setTimeout(() => controller.abort(), this.timeout);
12614
12643
  let intervalId = null;
12615
12644
  let throttleStream = null;
12645
+ let writer = null;
12616
12646
  try {
12617
12647
  let startByte = 0;
12618
12648
  if (fs.existsSync(this.filepath)) {
12619
- startByte = fs.statSync(this.filepath).size;
12620
- logger.debug(`检测到部分下载文件,从 ${formatBytes(startByte)} 处继续下载`);
12649
+ const stats = fs.statSync(this.filepath);
12650
+ startByte = Math.max(0, stats.size - 256 * 1024);
12651
+ if (startByte > 0 && startByte < stats.size) {
12652
+ fs.truncateSync(this.filepath, startByte);
12653
+ logger.debug(`检测到部分下载文件,截断到 ${formatBytes(startByte)} 后重新下载(回退 256KB 安全裕量)`);
12654
+ } else if (startByte > 0) logger.debug(`检测到部分下载文件,从 ${formatBytes(startByte)} 处继续下载(回退 256KB 安全裕量)`);
12655
+ else logger.debug("检测到部分下载文件,文件较小,将重新下载");
12621
12656
  }
12622
12657
  const requestConfig = {
12623
12658
  url: this.url,
@@ -12696,7 +12731,10 @@ var Downloader = class {
12696
12731
  const totalBytes = supportsRange ? startByte + contentLength : contentLength;
12697
12732
  let downloadedBytes = startByte;
12698
12733
  let lastPrintedPercentage = -1;
12699
- const writer = fs.createWriteStream(this.filepath, { flags: startByte > 0 ? "a" : "w" });
12734
+ writer = fs.createWriteStream(this.filepath, {
12735
+ flags: startByte > 0 ? "r+" : "w",
12736
+ start: startByte > 0 ? startByte : void 0
12737
+ });
12700
12738
  const printProgress = () => {
12701
12739
  if (totalBytes > 0) {
12702
12740
  const progressPercentage = Math.floor(downloadedBytes / totalBytes * 100);
@@ -12734,7 +12772,7 @@ var Downloader = class {
12734
12772
  if (actualSize < expectedSize) {
12735
12773
  logger.warn(`文件大小不匹配: 实际 ${formatBytes(actualSize)}, 预期 ${formatBytes(expectedSize)}`);
12736
12774
  logger.warn(`差异: ${formatBytes(expectedSize - actualSize)} (${((expectedSize - actualSize) / expectedSize * 100).toFixed(2)}%)`);
12737
- if ((expectedSize - actualSize) / expectedSize > .01) throw new Error(`文件下载不完整: 实际 ${formatBytes(actualSize)}, 预期 ${formatBytes(expectedSize)}`);
12775
+ if (expectedSize - actualSize > 10 * 1024) throw new Error(`文件下载不完整: 实际 ${formatBytes(actualSize)}, 预期 ${formatBytes(expectedSize)}`);
12738
12776
  } else logger.debug(`文件大小验证通过: ${formatBytes(actualSize)}`);
12739
12777
  }
12740
12778
  this.consecutiveResets = 0;
@@ -12762,6 +12800,20 @@ var Downloader = class {
12762
12800
  }
12763
12801
  const nextDelay = calculateBackoffDelay(retryCount);
12764
12802
  if (retryCount < this.maxRetries) {
12803
+ if (writer && !(writer.closed ?? false)) {
12804
+ const ws = writer;
12805
+ await new Promise((resolve) => {
12806
+ const timeout = setTimeout(() => {
12807
+ ws.off("close", onClose);
12808
+ resolve();
12809
+ }, 1e3);
12810
+ const onClose = () => {
12811
+ clearTimeout(timeout);
12812
+ resolve();
12813
+ };
12814
+ ws.once("close", onClose);
12815
+ });
12816
+ }
12765
12817
  if (isRecoverable && fs.existsSync(this.filepath)) {
12766
12818
  const stats = fs.statSync(this.filepath);
12767
12819
  logger.warn(`检测到可恢复的网络错误,保留已下载的 ${formatBytes(stats.size)} 数据`);
@@ -13485,12 +13537,6 @@ var PreviewLayout = ({ state }) => {
13485
13537
  });
13486
13538
  };
13487
13539
  //#endregion
13488
- //#region ../template/src/components/common/Icon.tsx
13489
- var Icon = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon$1, {
13490
- ...props,
13491
- ssr: true
13492
- });
13493
- //#endregion
13494
13540
  //#region ../template/src/components/common/GlowImage.tsx
13495
13541
  var GlowImage = ({ src, children, alt, className, imgClassName, mode = "blur-layer", blurRadius = 18, glowStrength = .6, scale = 1.06, shadowRadius = 28, crossOrigin }) => {
13496
13542
  const [shadowColor, setShadowColor] = import_react.useState("rgba(255,255,255,0.5)");
@@ -14577,23 +14623,19 @@ var DefaultLayout = ({ children, version, data, scale = 3, className = "", style
14577
14623
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
14578
14624
  className: "flex items-center mb-1 space-x-2 text-sm font-bold tracking-widest uppercase text-foreground/80",
14579
14625
  children: [
14580
- version.hasUpdate && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14581
- icon: "lucide:circle-fading-arrow-up",
14626
+ version.hasUpdate && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CircleFadingArrowUp, {
14582
14627
  strokeWidth: 3,
14583
14628
  className: "w-4 h-4 text-success"
14584
14629
  }),
14585
- !version.hasUpdate && version.releaseType === "Stable" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14586
- icon: "lucide:check-circle",
14630
+ !version.hasUpdate && version.releaseType === "Stable" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CircleCheckBig, {
14587
14631
  strokeWidth: 3,
14588
14632
  className: "w-4 h-4"
14589
14633
  }),
14590
- !version.hasUpdate && version.releaseType === "Preview" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14591
- icon: "lucide:alert-triangle",
14634
+ !version.hasUpdate && version.releaseType === "Preview" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TriangleAlert, {
14592
14635
  strokeWidth: 3,
14593
14636
  className: "w-4 h-4 text-warning"
14594
14637
  }),
14595
- !version.hasUpdate && version.releaseType !== "Stable" && version.releaseType !== "Preview" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14596
- icon: "lucide:info",
14638
+ !version.hasUpdate && version.releaseType !== "Stable" && version.releaseType !== "Preview" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Info, {
14597
14639
  strokeWidth: 3,
14598
14640
  className: "w-4 h-4"
14599
14641
  }),
@@ -14620,8 +14662,7 @@ var DefaultLayout = ({ children, version, data, scale = 3, className = "", style
14620
14662
  className: "flex flex-col items-start",
14621
14663
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
14622
14664
  className: "flex items-center mb-1 space-x-2 text-sm font-bold tracking-widest uppercase text-foreground/80",
14623
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14624
- icon: "lucide:zap",
14665
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Zap, {
14625
14666
  strokeWidth: 3,
14626
14667
  className: "w-4 h-4 opacity-90"
14627
14668
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -14860,12 +14901,10 @@ var BangumiBilibiliHeader = (props) => {
14860
14901
  }),
14861
14902
  props.upInfo.verify_type > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
14862
14903
  className: "flex items-center",
14863
- children: props.upInfo.verify_type === 1 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14864
- icon: "lucide:shield",
14904
+ children: props.upInfo.verify_type === 1 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Shield, {
14865
14905
  width: 20,
14866
14906
  className: "text-warning"
14867
- }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14868
- icon: "lucide:crown",
14907
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Crown, {
14869
14908
  width: 20,
14870
14909
  className: "text-accent"
14871
14910
  })
@@ -14885,10 +14924,7 @@ var BangumiBilibiliHeader = (props) => {
14885
14924
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
14886
14925
  className: "flex gap-6 items-center text-3xl select-text text-foreground",
14887
14926
  children: [
14888
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14889
- icon: "lucide:users",
14890
- width: 30
14891
- }),
14927
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { size: 30 }),
14892
14928
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [formatNumber$3(props.upInfo.follower), "粉丝"] }),
14893
14929
  props.upInfo.is_follow === 1 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Chip, {
14894
14930
  size: "sm",
@@ -14901,10 +14937,7 @@ var BangumiBilibiliHeader = (props) => {
14901
14937
  }),
14902
14938
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
14903
14939
  className: "flex gap-2 items-center text-2xl select-text text-foreground/70",
14904
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14905
- icon: "lucide:hash",
14906
- width: 20
14907
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["UID: ", props.upInfo.mid] })]
14940
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { size: 20 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["UID: ", props.upInfo.mid] })]
14908
14941
  })
14909
14942
  ]
14910
14943
  })]
@@ -14944,10 +14977,7 @@ var BangumiBilibiliHeader = (props) => {
14944
14977
  className: "mb-12",
14945
14978
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
14946
14979
  className: "flex gap-6 items-center mb-6 text-3xl select-text text-foreground",
14947
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14948
- icon: "lucide:users",
14949
- width: 30
14950
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "声优阵容" })]
14980
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { size: 30 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "声优阵容" })]
14951
14981
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
14952
14982
  className: "flex flex-wrap gap-8",
14953
14983
  children: [actorList.slice(0, 6).map((actor, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -14967,10 +14997,7 @@ var BangumiBilibiliHeader = (props) => {
14967
14997
  className: "mb-12",
14968
14998
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
14969
14999
  className: "flex gap-6 items-center mb-6 text-3xl select-text text-foreground",
14970
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14971
- icon: "lucide:star",
14972
- width: 30
14973
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "评价" })]
15000
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Star, { size: 30 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "评价" })]
14974
15001
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
14975
15002
  className: "text-3xl leading-relaxed select-text text-foreground",
14976
15003
  children: props.evaluate
@@ -15083,10 +15110,7 @@ var BangumiBilibiliEpisodes = (props) => {
15083
15110
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
15084
15111
  className: "flex gap-8 items-center mb-20 text-5xl font-bold select-text text-foreground",
15085
15112
  children: [
15086
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
15087
- icon: "lucide:play",
15088
- width: 46
15089
- }),
15113
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Play, { size: 46 }),
15090
15114
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "剧集列表" }),
15091
15115
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Chip, {
15092
15116
  size: "lg",
@@ -15144,10 +15168,7 @@ var BangumiBilibiliEpisodes = (props) => {
15144
15168
  children: props.UPInfo ? props.UPInfo.uname : props.Title
15145
15169
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
15146
15170
  className: "flex gap-4 items-center text-3xl select-text text-foreground/70",
15147
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
15148
- icon: "lucide:calendar",
15149
- width: 30
15150
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "发布了内容" })]
15171
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Calendar, { size: 30 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "发布了内容" })]
15151
15172
  })]
15152
15173
  })]
15153
15174
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -15193,30 +15214,21 @@ var BangumiBilibiliEpisodes = (props) => {
15193
15214
  children: [
15194
15215
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
15195
15216
  className: "flex gap-6 items-center select-text text-foreground/70",
15196
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
15197
- icon: "lucide:hash",
15198
- width: 36
15199
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
15217
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { size: 36 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
15200
15218
  className: "truncate",
15201
15219
  children: episode.bvid
15202
15220
  })]
15203
15221
  }),
15204
15222
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
15205
15223
  className: "flex gap-6 items-center select-text text-foreground/70",
15206
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
15207
- icon: "lucide:clock",
15208
- width: 36
15209
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
15224
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 36 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
15210
15225
  className: "whitespace-nowrap",
15211
15226
  children: formatDateTime(episode.pub_time)
15212
15227
  })]
15213
15228
  }),
15214
15229
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
15215
15230
  className: "flex gap-6 items-center select-text text-foreground/70",
15216
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
15217
- icon: "lucide:share-2",
15218
- width: 36
15219
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
15231
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { size: 36 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
15220
15232
  className: "truncate",
15221
15233
  children: episode.link
15222
15234
  })]
@@ -15977,6 +15989,31 @@ var CoinIcon = ({ className, size, variant = "solid" }) => {
15977
15989
  })
15978
15990
  });
15979
15991
  };
15992
+ /** B站官方评论图标 */
15993
+ var CommentIcon = ({ className, size, variant = "solid" }) => {
15994
+ if (variant === "line") return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
15995
+ viewBox: "0 0 18 18",
15996
+ xmlns: "http://www.w3.org/2000/svg",
15997
+ className,
15998
+ fill: "currentColor",
15999
+ width: size,
16000
+ height: size,
16001
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
16002
+ fillRule: "evenodd",
16003
+ clipRule: "evenodd",
16004
+ d: "M1.5625 7.875C1.5625 4.59581 4.22081 1.9375 7.5 1.9375H10.5C13.7792 1.9375 16.4375 4.59581 16.4375 7.875C16.4375 11.0504 13.9447 13.6435 10.8093 13.8041C10.097 14.723 8.92088 15.8807 7.2671 16.3313C6.97351 16.4113 6.70476 16.2862 6.55411 16.0923C6.40789 15.9041 6.3561 15.63435 6.46524 15.383C6.72879 14.77625 6.77646 14.22103 6.73402 13.7618C3.81677 13.3871 1.5625 10.8945 1.5625 7.875ZM7.5 2.9375C4.77309 2.9375 2.5625 5.14809 2.5625 7.875C2.5625 10.5026 4.61524 12.6511 7.20419 12.8038C7.43059 12.8172 7.61962 12.9812 7.66472 13.2035C7.77257 13.7346 7.8012 14.4054 7.58843 15.1484C8.74832 14.6682 9.606 13.7598 10.1513 13.0165C10.2444 12.8895 10.3921 12.8138 10.5496 12.8123C13.2536 12.7857 15.4375 10.58535 15.4375 7.875C15.4375 5.14809 13.2269 2.9375 10.5 2.9375H7.5Z"
16005
+ })
16006
+ });
16007
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
16008
+ viewBox: "0 0 18 18",
16009
+ xmlns: "http://www.w3.org/2000/svg",
16010
+ className,
16011
+ fill: "currentColor",
16012
+ width: size,
16013
+ height: size,
16014
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M1.5625 7.875C1.5625 4.59581 4.22081 1.9375 7.5 1.9375H10.5C13.7792 1.9375 16.4375 4.59581 16.4375 7.875C16.4375 11.0504 13.9447 13.6435 10.8093 13.8041C10.097 14.723 8.92088 15.8807 7.2671 16.3313C6.97351 16.4113 6.70476 16.2862 6.55411 16.0923C6.40789 15.9041 6.3561 15.63435 6.46524 15.383C6.72879 14.77625 6.77646 14.22103 6.73402 13.7618C3.81677 13.3871 1.5625 10.8945 1.5625 7.875Z" })
16015
+ });
16016
+ };
15980
16017
  //#endregion
15981
16018
  //#region ../template/src/components/platforms/bilibili/Comment.tsx
15982
16019
  var bilibiliMentionClassName = "text-[#006A9E] dark:text-[#58B0D5]";
@@ -16616,10 +16653,7 @@ var BilibiliArticleUserInfo = import_react.memo((props) => {
16616
16653
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsernameDisplay, { metadata: props.data.usernameMeta })
16617
16654
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
16618
16655
  className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-muted",
16619
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
16620
- icon: "mingcute:time-fill",
16621
- width: 36
16622
- }), props.data.create_time]
16656
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 36 }), props.data.create_time]
16623
16657
  })]
16624
16658
  })]
16625
16659
  }), props.data.decoration_card && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -16704,10 +16738,7 @@ var BilibiliArticleStatus = import_react.memo((props) => {
16704
16738
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
16705
16739
  className: "flex gap-3 items-center text-[42px]",
16706
16740
  children: [
16707
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
16708
- icon: "mingcute:comment-2-fill",
16709
- width: 32
16710
- }),
16741
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CommentIcon, { size: 32 }),
16711
16742
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
16712
16743
  className: "font-medium",
16713
16744
  children: props.data.stats.reply || 0
@@ -16739,10 +16770,7 @@ var BilibiliArticleStatus = import_react.memo((props) => {
16739
16770
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
16740
16771
  className: "flex gap-2 items-center",
16741
16772
  children: [
16742
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
16743
- icon: "mingcute:eye-fill",
16744
- width: 28
16745
- }),
16773
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { size: 28 }),
16746
16774
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
16747
16775
  className: "font-medium",
16748
16776
  children: "阅读量"
@@ -16756,10 +16784,7 @@ var BilibiliArticleStatus = import_react.memo((props) => {
16756
16784
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
16757
16785
  className: "flex gap-2 items-center",
16758
16786
  children: [
16759
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
16760
- icon: "mingcute:bookmark-fill",
16761
- width: 28
16762
- }),
16787
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Bookmark, { size: 28 }),
16763
16788
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
16764
16789
  className: "font-medium",
16765
16790
  children: "收藏"
@@ -16817,10 +16842,7 @@ var BilibiliArticleFooter = import_react.memo((props) => {
16817
16842
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsernameDisplay, { metadata: props.data.usernameMeta })
16818
16843
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
16819
16844
  className: "flex gap-2 items-center text-4xl text-muted",
16820
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
16821
- icon: "mingcute:hashtag-fill",
16822
- width: 32
16823
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
16845
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { size: 32 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
16824
16846
  className: "select-text",
16825
16847
  children: ["UID: ", props.data.user_shortid]
16826
16848
  })]
@@ -16851,10 +16873,7 @@ var BilibiliArticleFooter = import_react.memo((props) => {
16851
16873
  children: [
16852
16874
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
16853
16875
  className: "flex gap-1 items-center",
16854
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
16855
- icon: "mingcute:eye-fill",
16856
- width: 28
16857
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
16876
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
16858
16877
  className: "text-muted",
16859
16878
  children: "关注"
16860
16879
  })]
@@ -16871,10 +16890,7 @@ var BilibiliArticleFooter = import_react.memo((props) => {
16871
16890
  children: [
16872
16891
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
16873
16892
  className: "flex gap-1 items-center",
16874
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
16875
- icon: "mingcute:group-fill",
16876
- width: 28
16877
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
16893
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsersRound, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
16878
16894
  className: "text-muted",
16879
16895
  children: "粉丝"
16880
16896
  })]
@@ -17013,10 +17029,7 @@ var BilibiliVideoDynamicContent = (props) => {
17013
17029
  }),
17014
17030
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17015
17031
  className: "flex gap-3 items-center",
17016
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17017
- icon: "mingcute:comment-2-fill",
17018
- width: 48
17019
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17032
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CommentIcon, { size: 48 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17020
17033
  className: "select-text",
17021
17034
  children: [props.data.pinglun, "评论"]
17022
17035
  })]
@@ -17041,20 +17054,14 @@ var BilibiliVideoDynamicContent = (props) => {
17041
17054
  }),
17042
17055
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17043
17056
  className: "flex gap-3 items-center",
17044
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17045
- icon: "mingcute:eye-fill",
17046
- width: 48
17047
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17057
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { size: 48 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17048
17058
  className: "select-text",
17049
17059
  children: [props.data.view, "浏览"]
17050
17060
  })]
17051
17061
  }),
17052
17062
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17053
17063
  className: "flex gap-3 items-center text-5xl font-light tracking-normal",
17054
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17055
- icon: "mingcute:time-fill",
17056
- width: 48
17057
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17064
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 48 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17058
17065
  className: "select-text",
17059
17066
  children: ["视频时长: ", props.data.duration_text]
17060
17067
  })]
@@ -17066,27 +17073,18 @@ var BilibiliVideoDynamicContent = (props) => {
17066
17073
  children: [
17067
17074
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17068
17075
  className: "flex gap-3 items-center whitespace-nowrap",
17069
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17070
- icon: "mingcute:time-fill",
17071
- width: 32
17072
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17076
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 32 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17073
17077
  className: "select-text",
17074
17078
  children: ["发布于", props.data.create_time]
17075
17079
  })]
17076
17080
  }),
17077
17081
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17078
17082
  className: "flex gap-3 items-center whitespace-nowrap",
17079
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17080
- icon: "mingcute:time-fill",
17081
- width: 32
17082
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
17083
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 32 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
17083
17084
  }),
17084
17085
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17085
17086
  className: "flex gap-3 items-center",
17086
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17087
- icon: "mingcute:hashtag-fill",
17088
- width: 32
17089
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17087
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { size: 32 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17090
17088
  className: "select-text",
17091
17089
  children: ["动态ID: ", props.data.dynamic_id]
17092
17090
  })]
@@ -17198,10 +17196,7 @@ var BilibiliVideoDynamicFooter = (props) => {
17198
17196
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17199
17197
  className: "flex gap-2 items-center text-4xl text-muted",
17200
17198
  children: [
17201
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17202
- icon: "mingcute:hashtag-fill",
17203
- width: 32
17204
- }),
17199
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { size: 32 }),
17205
17200
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["UID: ", props.data.user_shortid] }),
17206
17201
  currentUserRole && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17207
17202
  className: "ml-5 px-3 py-1 rounded-xl bg-surface-secondary text-3xl",
@@ -17235,10 +17230,7 @@ var BilibiliVideoDynamicFooter = (props) => {
17235
17230
  children: [
17236
17231
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17237
17232
  className: "flex gap-1 items-center",
17238
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17239
- icon: "mingcute:eye-fill",
17240
- width: 28
17241
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17233
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17242
17234
  className: "text-muted",
17243
17235
  children: "关注"
17244
17236
  })]
@@ -17255,10 +17247,7 @@ var BilibiliVideoDynamicFooter = (props) => {
17255
17247
  children: [
17256
17248
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17257
17249
  className: "flex gap-1 items-center",
17258
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17259
- icon: "mingcute:group-fill",
17260
- width: 28
17261
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17250
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsersRound, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17262
17251
  className: "text-muted",
17263
17252
  children: "粉丝"
17264
17253
  })]
@@ -17336,9 +17325,8 @@ var BilibiliReserveCard = ({ reserve }) => {
17336
17325
  }),
17337
17326
  reserve.desc3 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17338
17327
  className: "flex gap-2 items-center text-4xl select-text leading-none text-[#fb7299]",
17339
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17340
- icon: "mingcute:gift-fill",
17341
- width: 40,
17328
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Gift, {
17329
+ size: 40,
17342
17330
  className: "shrink-0"
17343
17331
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17344
17332
  className: "line-clamp-1",
@@ -17350,10 +17338,7 @@ var BilibiliReserveCard = ({ reserve }) => {
17350
17338
  className: "shrink-0",
17351
17339
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Button, {
17352
17340
  className: `text-5xl font-normal px-8 py-5 h-auto min-w-0 ${reserve.buttonText === "已结束" ? "bg-surface-secondary/70 text-muted" : "bg-[#fb7299] text-white"}`,
17353
- children: [reserve.buttonText !== "已结束" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17354
- icon: "mingcute:bell-fill",
17355
- className: "scale-180 mr-4"
17356
- }), reserve.buttonText]
17341
+ children: [reserve.buttonText !== "已结束" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BellRing, { className: "scale-180 mr-4" }), reserve.buttonText]
17357
17342
  })
17358
17343
  })]
17359
17344
  })
@@ -17372,10 +17357,7 @@ var BilibiliVoteCard = ({ vote }) => {
17372
17357
  children: [
17373
17358
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
17374
17359
  className: "shrink-0",
17375
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17376
- icon: "mingcute:chart-bar-fill",
17377
- width: 56
17378
- })
17360
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChartColumn, { size: 56 })
17379
17361
  }),
17380
17362
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17381
17363
  className: "flex flex-col gap-3 flex-1 min-w-0",
@@ -17411,10 +17393,7 @@ var BilibiliCommonCard = ({ common }) => {
17411
17393
  className: "flex flex-col gap-4",
17412
17394
  children: [common.head_text && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17413
17395
  className: "flex gap-2 items-center text-4xl text-muted",
17414
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17415
- icon: "mingcute:gamepad-fill",
17416
- width: 40
17417
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: common.head_text })]
17396
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Gamepad2, { size: 40 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: common.head_text })]
17418
17397
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
17419
17398
  className: "overflow-hidden rounded-4xl bg-surface",
17420
17399
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
@@ -17539,10 +17518,7 @@ var BilibiliDynamicUserInfo$1 = (props) => {
17539
17518
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsernameDisplay, { metadata: props.usernameMeta })
17540
17519
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17541
17520
  className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-muted",
17542
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17543
- icon: "mingcute:time-fill",
17544
- width: 36
17545
- }), props.create_time]
17521
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 36 }), props.create_time]
17546
17522
  })]
17547
17523
  })]
17548
17524
  }), props.decoration_card && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -17701,10 +17677,7 @@ var BilibiliDynamicStatus$1 = (props) => {
17701
17677
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17702
17678
  className: "flex gap-2 items-center",
17703
17679
  children: [
17704
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17705
- icon: "mingcute:comment-2-fill",
17706
- width: 48
17707
- }),
17680
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CommentIcon, { size: 48 }),
17708
17681
  props.pinglun,
17709
17682
  "评论"
17710
17683
  ]
@@ -17723,10 +17696,7 @@ var BilibiliDynamicStatus$1 = (props) => {
17723
17696
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17724
17697
  className: "flex gap-2 items-center text-5xl font-light tracking-normal select-text text-foreground/70",
17725
17698
  children: [
17726
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17727
- icon: "mingcute:time-fill",
17728
- width: 48
17729
- }),
17699
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 48 }),
17730
17700
  "图片生成于: ",
17731
17701
  props.render_time
17732
17702
  ]
@@ -17795,10 +17765,7 @@ var BilibiliDynamicFooter$1 = (props) => {
17795
17765
  children: [
17796
17766
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17797
17767
  className: "flex gap-1 items-center",
17798
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17799
- icon: "mingcute:eye-fill",
17800
- width: 28
17801
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17768
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17802
17769
  className: "text-muted",
17803
17770
  children: "关注"
17804
17771
  })]
@@ -17815,10 +17782,7 @@ var BilibiliDynamicFooter$1 = (props) => {
17815
17782
  children: [
17816
17783
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17817
17784
  className: "flex gap-1 items-center",
17818
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17819
- icon: "mingcute:group-fill",
17820
- width: 28
17821
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17785
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsersRound, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17822
17786
  className: "text-muted",
17823
17787
  children: "粉丝"
17824
17788
  })]
@@ -17926,10 +17890,7 @@ var BilibiliForwardUserInfo = (props) => {
17926
17890
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsernameDisplay, { metadata: props.usernameMeta })
17927
17891
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17928
17892
  className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-muted",
17929
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17930
- icon: "mingcute:time-fill",
17931
- width: 36
17932
- }), props.create_time]
17893
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 36 }), props.create_time]
17933
17894
  })]
17934
17895
  })]
17935
17896
  }), props.decoration_card && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -17964,10 +17925,7 @@ var OriginalUserInfo = (props) => {
17964
17925
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsernameDisplay, { metadata: props.usernameMeta })
17965
17926
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17966
17927
  className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-muted",
17967
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17968
- icon: "mingcute:time-fill",
17969
- width: 32
17970
- }), props.create_time]
17928
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 32 }), props.create_time]
17971
17929
  })]
17972
17930
  })]
17973
17931
  }), props.decoration_card && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -18257,10 +18215,7 @@ var BilibiliForwardStatus = (props) => {
18257
18215
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18258
18216
  className: "flex gap-2 items-center",
18259
18217
  children: [
18260
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18261
- icon: "mingcute:comment-2-fill",
18262
- width: 48
18263
- }),
18218
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CommentIcon, { size: 48 }),
18264
18219
  props.pinglun,
18265
18220
  "评论"
18266
18221
  ]
@@ -18279,10 +18234,7 @@ var BilibiliForwardStatus = (props) => {
18279
18234
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18280
18235
  className: "flex gap-2 items-center text-5xl font-light tracking-normal select-text text-foreground/70",
18281
18236
  children: [
18282
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18283
- icon: "mingcute:time-fill",
18284
- width: 48
18285
- }),
18237
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 48 }),
18286
18238
  "图片生成于: ",
18287
18239
  props.render_time
18288
18240
  ]
@@ -18320,10 +18272,7 @@ var BilibiliForwardFooter = (props) => {
18320
18272
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsernameDisplay, { metadata: props.usernameMeta })
18321
18273
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18322
18274
  className: "flex gap-2 items-center text-4xl text-muted",
18323
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18324
- icon: "mingcute:hashtag-fill",
18325
- width: 32
18326
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
18275
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { size: 32 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
18327
18276
  className: "select-text",
18328
18277
  children: ["UID: ", props.user_shortid]
18329
18278
  })]
@@ -18354,10 +18303,7 @@ var BilibiliForwardFooter = (props) => {
18354
18303
  children: [
18355
18304
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18356
18305
  className: "flex gap-1 items-center",
18357
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18358
- icon: "mingcute:eye-fill",
18359
- width: 28
18360
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18306
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18361
18307
  className: "text-muted",
18362
18308
  children: "关注"
18363
18309
  })]
@@ -18374,10 +18320,7 @@ var BilibiliForwardFooter = (props) => {
18374
18320
  children: [
18375
18321
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18376
18322
  className: "flex gap-1 items-center",
18377
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18378
- icon: "mingcute:group-fill",
18379
- width: 28
18380
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18323
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsersRound, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18381
18324
  className: "text-muted",
18382
18325
  children: "粉丝"
18383
18326
  })]
@@ -18773,10 +18716,7 @@ var BilibiliLiveDynamic = import_react.memo((props) => {
18773
18716
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18774
18717
  className: "mt-5 inline-flex items-center gap-3 font-black",
18775
18718
  style: { color: deepColor },
18776
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18777
- icon: "mingcute:group-fill",
18778
- width: 22
18779
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
18719
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsersRound, { size: 22 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
18780
18720
  className: "select-text",
18781
18721
  style: { fontSize: `${followerFontSize}px` },
18782
18722
  children: [data.fans, " 粉丝"]
@@ -18808,10 +18748,7 @@ var BilibiliLiveDynamic = import_react.memo((props) => {
18808
18748
  children: [
18809
18749
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18810
18750
  className: "inline-flex min-w-0 items-center gap-3",
18811
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18812
- icon: "mingcute:radio-fill",
18813
- width: 20
18814
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18751
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Radio, { size: 20 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18815
18752
  className: "min-w-0 whitespace-normal leading-[1.18] select-text",
18816
18753
  style: { fontSize: `${liveInfoFontSize}px` },
18817
18754
  children: data.liveinf
@@ -18823,10 +18760,7 @@ var BilibiliLiveDynamic = import_react.memo((props) => {
18823
18760
  }),
18824
18761
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18825
18762
  className: "inline-flex items-center gap-3 whitespace-nowrap font-mono",
18826
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18827
- icon: "mingcute:time-fill",
18828
- width: 20
18829
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18763
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 20 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18830
18764
  className: "select-text",
18831
18765
  children: liveSignalTime
18832
18766
  })]
@@ -19021,10 +18955,7 @@ var BilibiliDynamicUserInfo = (props) => {
19021
18955
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsernameDisplay, { metadata: props.usernameMeta })
19022
18956
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19023
18957
  className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-muted",
19024
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19025
- icon: "mingcute:time-fill",
19026
- width: 36
19027
- }), props.create_time]
18958
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 36 }), props.create_time]
19028
18959
  })]
19029
18960
  })]
19030
18961
  }), props.decoration_card && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -19078,10 +19009,7 @@ var BilibiliDynamicStatus = (props) => {
19078
19009
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19079
19010
  className: "flex gap-2 items-center",
19080
19011
  children: [
19081
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19082
- icon: "mingcute:comment-2-fill",
19083
- width: 48
19084
- }),
19012
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CommentIcon, { size: 48 }),
19085
19013
  props.pinglun,
19086
19014
  "评论"
19087
19015
  ]
@@ -19100,10 +19028,7 @@ var BilibiliDynamicStatus = (props) => {
19100
19028
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19101
19029
  className: "flex gap-2 items-center text-5xl font-light tracking-normal select-text text-foreground/70",
19102
19030
  children: [
19103
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19104
- icon: "mingcute:time-fill",
19105
- width: 48
19106
- }),
19031
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 48 }),
19107
19032
  "图片生成于: ",
19108
19033
  props.render_time
19109
19034
  ]
@@ -19172,10 +19097,7 @@ var BilibiliDynamicFooter = (props) => {
19172
19097
  children: [
19173
19098
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19174
19099
  className: "flex gap-1 items-center",
19175
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19176
- icon: "mingcute:eye-fill",
19177
- width: 28
19178
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19100
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19179
19101
  className: "text-muted",
19180
19102
  children: "关注"
19181
19103
  })]
@@ -19192,10 +19114,7 @@ var BilibiliDynamicFooter = (props) => {
19192
19114
  children: [
19193
19115
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19194
19116
  className: "flex gap-1 items-center",
19195
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19196
- icon: "mingcute:group-fill",
19197
- width: 28
19198
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19117
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsersRound, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19199
19118
  className: "text-muted",
19200
19119
  children: "粉丝"
19201
19120
  })]
@@ -19380,44 +19299,35 @@ var BilibiliQrcodeImg = import_react.memo((props) => {
19380
19299
  className: "flex flex-col items-center gap-4",
19381
19300
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
19382
19301
  className: "p-5 rounded-3xl bg-surface/50 backdrop-blur-md",
19383
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19384
- icon: "simple-icons:bilibili",
19385
- className: "w-16 h-16"
19386
- })
19302
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SiBilibili, { size: 64 })
19387
19303
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19388
19304
  className: "text-[28px] font-medium tracking-wide",
19389
19305
  children: "打开哔哩哔哩"
19390
19306
  })]
19391
19307
  }),
19392
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19393
- icon: "ri:arrow-right-fill",
19394
- className: "w-10 h-10 mt-8 opacity-40"
19308
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiArrowRightFill, {
19309
+ size: 40,
19310
+ className: "mt-8 opacity-40"
19395
19311
  }),
19396
19312
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19397
19313
  className: "flex flex-col items-center gap-4",
19398
19314
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
19399
19315
  className: "p-5 rounded-3xl bg-surface/50 backdrop-blur-md",
19400
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19401
- icon: "lucide:user",
19402
- className: "w-16 h-16"
19403
- })
19316
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(User, { size: 64 })
19404
19317
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19405
19318
  className: "text-[28px] font-medium tracking-wide",
19406
19319
  children: "点击我的"
19407
19320
  })]
19408
19321
  }),
19409
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19410
- icon: "ri:arrow-right-fill",
19411
- className: "w-10 h-10 mt-8 opacity-40"
19322
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiArrowRightFill, {
19323
+ size: 40,
19324
+ className: "mt-8 opacity-40"
19412
19325
  }),
19413
19326
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19414
19327
  className: "flex flex-col items-center gap-4",
19415
19328
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
19416
19329
  className: "p-5 rounded-3xl bg-surface/50 backdrop-blur-md",
19417
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19418
- icon: "lucide:scan-line",
19419
- className: "w-16 h-16"
19420
- })
19330
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ScanLine, { size: 64 })
19421
19331
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19422
19332
  className: "text-[28px] font-medium tracking-wide",
19423
19333
  children: "右上角扫一扫"
@@ -19467,9 +19377,8 @@ var BilibiliQrcodeImg = import_react.memo((props) => {
19467
19377
  children: [
19468
19378
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
19469
19379
  className: "flex items-center justify-center w-16 h-16 mb-2",
19470
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19471
- icon: "lucide:alert-triangle",
19472
- className: "w-16 h-16",
19380
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TriangleAlert, {
19381
+ size: 64,
19473
19382
  style: { color: theme.text },
19474
19383
  strokeWidth: 1.5
19475
19384
  })
@@ -19498,33 +19407,33 @@ BilibiliQrcodeImg.displayName = "BilibiliQrcodeImg";
19498
19407
  var pushTypeConfig$1 = {
19499
19408
  video: {
19500
19409
  label: "投稿视频",
19501
- color: "bg-accent/8 text-accent border-accent/25",
19502
- icon: "mingcute:video-line"
19410
+ color: "bg-accent/6 text-accent/80 border-accent-soft",
19411
+ icon: Video
19503
19412
  },
19504
19413
  draw: {
19505
19414
  label: "图文动态",
19506
- color: "bg-[#23ade5]/10 text-[#23ade5] border-[#23ade5]/25",
19507
- icon: "mingcute:pic-line"
19415
+ color: "bg-[#23ade5]/5 text-[#1a8fb8] border-[#23ade5]/12",
19416
+ icon: Image$1
19508
19417
  },
19509
19418
  word: {
19510
19419
  label: "纯文动态",
19511
- color: "bg-warning/10 text-warning border-warning/25",
19512
- icon: "mingcute:file-text-line"
19420
+ color: "bg-warning/5 text-warning/80 border-warning/12",
19421
+ icon: FileText
19513
19422
  },
19514
19423
  live: {
19515
19424
  label: "直播动态",
19516
- color: "bg-success/10 text-success border-success/25",
19517
- icon: "mingcute:live-line"
19425
+ color: "bg-success/5 text-success/80 border-success/12",
19426
+ icon: Radio
19518
19427
  },
19519
19428
  forward: {
19520
19429
  label: "转发动态",
19521
- color: "bg-[#f97316]/10 text-[#f97316] border-[#f97316]/25",
19522
- icon: "mingcute:share-forward-line"
19430
+ color: "bg-[#f97316]/5 text-[#cc6b1f] border-[#f97316]/12",
19431
+ icon: Share2
19523
19432
  },
19524
19433
  article: {
19525
19434
  label: "投稿专栏",
19526
- color: "bg-[#7c3aed]/10 text-[#7c3aed] border-[#7c3aed]/25",
19527
- icon: "mingcute:article-line"
19435
+ color: "bg-[#7c3aed]/5 text-[#6b4fa8] border-[#7c3aed]/12",
19436
+ icon: FileText
19528
19437
  }
19529
19438
  };
19530
19439
  /**
@@ -19622,9 +19531,9 @@ var BilibiliUserItem = (props) => {
19622
19531
  className: "flex items-center gap-2 mt-1",
19623
19532
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
19624
19533
  className: "px-2 py-0.5 rounded-md bg-surface border border-border text-xs font-mono font-bold text-muted flex items-center gap-1",
19625
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19626
- icon: "mingcute:hashtag-line",
19627
- className: "w-3 h-3 opacity-70"
19534
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, {
19535
+ size: 12,
19536
+ className: "opacity-70"
19628
19537
  }), props.host_mid]
19629
19538
  })
19630
19539
  })] })
@@ -19637,9 +19546,9 @@ var BilibiliUserItem = (props) => {
19637
19546
  const isActive = activePushTypes.has(type);
19638
19547
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19639
19548
  className: `h-full min-h-18.5 px-2.5 py-2.5 rounded-xl border backdrop-blur-sm flex flex-col justify-between transition-colors duration-200 ${isActive ? config.color : "bg-surface/45 text-muted border-border/15"}`,
19640
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19641
- icon: config.icon,
19642
- className: `w-4.5 h-4.5 ${isActive ? "" : "opacity-50"}`
19549
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(config.icon, {
19550
+ size: 18,
19551
+ className: isActive ? "" : "opacity-40"
19643
19552
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19644
19553
  className: "text-[13px] font-bold tracking-wide leading-tight",
19645
19554
  children: config.label
@@ -19650,26 +19559,27 @@ var BilibiliUserItem = (props) => {
19650
19559
  className: "grid grid-rows-3 gap-2 h-full",
19651
19560
  children: [
19652
19561
  {
19653
- icon: "mingcute:group-line",
19562
+ icon: UsersRound,
19654
19563
  value: props.fans,
19655
19564
  label: "粉丝"
19656
19565
  },
19657
19566
  {
19658
- icon: "mingcute:heart-line",
19567
+ icon: Heart,
19659
19568
  value: props.total_favorited,
19660
19569
  label: "获赞"
19661
19570
  },
19662
19571
  {
19663
- icon: "mingcute:user-add-line",
19572
+ icon: UserPlus,
19664
19573
  value: props.following_count,
19665
19574
  label: "关注"
19666
19575
  }
19667
19576
  ].map((item, index) => {
19577
+ const StatIcon = item.icon;
19668
19578
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19669
19579
  className: "h-full flex items-center gap-3 px-3.5 py-2.5 rounded-xl bg-surface-secondary/35 border border-border/35 backdrop-blur-sm",
19670
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19671
- icon: item.icon,
19672
- className: "w-4.5 h-4.5 text-muted shrink-0"
19580
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatIcon, {
19581
+ size: 18,
19582
+ className: "text-muted shrink-0"
19673
19583
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19674
19584
  className: "flex items-baseline gap-2 flex-1 min-w-0",
19675
19585
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -19807,12 +19717,11 @@ var BilibiliUserList = (props) => {
19807
19717
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19808
19718
  className: "flex items-center gap-3 mb-4",
19809
19719
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
19810
- className: "w-10 h-10 rounded-xl bg-foreground flex items-center justify-center text-background shadow-lg",
19811
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
19812
- className: "w-6 h-6",
19813
- fill: "currentColor",
19814
- viewBox: "0 0 24 24",
19815
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-4.41-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5.5-2.5l7.51-3.49L17.5 6.5 9.99 9.99 6.5 17.5zm5.5-6.6c.61 0 1.1.49 1.1 1.1s-.49 1.1-1.1 1.1-1.1-.49-1.1-1.1.49-1.1 1.1-1.1z" })
19720
+ className: "w-10 h-10 rounded-xl overflow-hidden shadow-lg border border-border/30",
19721
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(EnhancedImage, {
19722
+ src: props.data.groupInfo.groupAvatar,
19723
+ alt: "Group Avatar",
19724
+ className: "w-full h-full object-cover"
19816
19725
  })
19817
19726
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19818
19727
  className: "font-mono text-sm font-bold tracking-widest uppercase opacity-50 text-foreground",
@@ -19992,9 +19901,8 @@ var BilibiliVideoInfo = import_react.memo((props) => {
19992
19901
  children: [
19993
19902
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19994
19903
  className: "flex items-center gap-2",
19995
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19996
- icon: "solar:calendar-linear",
19997
- width: 32,
19904
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Calendar, {
19905
+ size: 32,
19998
19906
  className: "text-foreground/20"
19999
19907
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: format(fromUnixTime(props.data.ctime), "yyyy-MM-dd HH:mm") })]
20000
19908
  }),
@@ -20007,9 +19915,9 @@ var BilibiliVideoInfo = import_react.memo((props) => {
20007
19915
  }),
20008
19916
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20009
19917
  className: "flex items-center gap-1.5",
20010
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20011
- icon: "tabler:message-circle",
20012
- width: 28,
19918
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CommentIcon, {
19919
+ variant: "line",
19920
+ size: 28,
20013
19921
  className: "text-foreground/20"
20014
19922
  }), formatNumber$2(props.data.stat.reply)]
20015
19923
  })
@@ -20148,18 +20056,12 @@ var TitleSection = ({ title, createTime, readTime }) => {
20148
20056
  children: [
20149
20057
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20150
20058
  className: "flex items-center gap-2",
20151
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20152
- icon: "lucide:clock",
20153
- className: "w-10 h-10"
20154
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: createTime })]
20059
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { className: "w-10 h-10" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: createTime })]
20155
20060
  }),
20156
20061
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
20157
20062
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20158
20063
  className: "flex items-center gap-2",
20159
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20160
- icon: "lucide:clock",
20161
- className: "w-10 h-10 text-accent"
20162
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
20064
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { className: "w-10 h-10 text-accent" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
20163
20065
  "阅读 ",
20164
20066
  readTime,
20165
20067
  " 分钟"
@@ -20261,42 +20163,27 @@ var InfoSection$4 = (props) => {
20261
20163
  children: [
20262
20164
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20263
20165
  className: "flex gap-2 items-center",
20264
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20265
- icon: "lucide:heart",
20266
- className: "w-11 h-11 text-like"
20267
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
20166
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { className: "w-11 h-11 text-like" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
20268
20167
  }),
20269
20168
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
20270
20169
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20271
20170
  className: "flex gap-2 items-center",
20272
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20273
- icon: "lucide:message-circle",
20274
- className: "w-11 h-11 text-comment"
20275
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
20171
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { className: "w-11 h-11 text-comment" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
20276
20172
  }),
20277
20173
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
20278
20174
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20279
20175
  className: "flex gap-2 items-center",
20280
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20281
- icon: "lucide:bookmark",
20282
- className: "w-11 h-11"
20283
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
20176
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Bookmark, { className: "w-11 h-11" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
20284
20177
  }),
20285
20178
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
20286
20179
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20287
20180
  className: "flex gap-2 items-center",
20288
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20289
- icon: "lucide:share-2",
20290
- className: "w-11 h-11 text-success"
20291
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
20181
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { className: "w-11 h-11 text-success" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
20292
20182
  })
20293
20183
  ]
20294
20184
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20295
20185
  className: "flex items-center gap-2 text-5xl text-muted font-light select-text",
20296
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20297
- icon: "lucide:maximize",
20298
- className: "w-11 h-11 text-time"
20299
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
20186
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Maximize, { className: "w-11 h-11 text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
20300
20187
  })]
20301
20188
  });
20302
20189
  };
@@ -20325,10 +20212,7 @@ var UserInfoSection$3 = (props) => {
20325
20212
  children: ["@", props.data.username]
20326
20213
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20327
20214
  className: "flex gap-2 items-center text-4xl text-muted",
20328
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20329
- icon: "lucide:hash",
20330
- className: "w-8 h-8 text-muted"
20331
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20215
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { className: "w-8 h-8 text-muted" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20332
20216
  className: "select-text",
20333
20217
  children: ["抖音号: ", props.data.抖音号]
20334
20218
  })]
@@ -20342,10 +20226,7 @@ var UserInfoSection$3 = (props) => {
20342
20226
  children: [
20343
20227
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20344
20228
  className: "flex gap-1 items-center",
20345
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20346
- icon: "lucide:heart",
20347
- className: "w-7 h-7 text-like"
20348
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20229
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { className: "w-7 h-7 text-like" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20349
20230
  className: "text-muted",
20350
20231
  children: "获赞"
20351
20232
  })]
@@ -20362,10 +20243,7 @@ var UserInfoSection$3 = (props) => {
20362
20243
  children: [
20363
20244
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20364
20245
  className: "flex gap-1 items-center",
20365
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20366
- icon: "lucide:eye",
20367
- className: "w-7 h-7 text-view"
20368
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20246
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { className: "w-7 h-7 text-view" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20369
20247
  className: "text-muted",
20370
20248
  children: "关注"
20371
20249
  })]
@@ -20382,10 +20260,7 @@ var UserInfoSection$3 = (props) => {
20382
20260
  children: [
20383
20261
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20384
20262
  className: "flex gap-1 items-center",
20385
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20386
- icon: "lucide:users",
20387
- className: "w-7 h-7 text-accent"
20388
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20263
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { className: "w-7 h-7 text-accent" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20389
20264
  className: "text-muted",
20390
20265
  children: "粉丝"
20391
20266
  })]
@@ -20477,18 +20352,9 @@ var formatDouyinCommentDiggCount = (count) => {
20477
20352
  if (count >= 1e4) return `${(count / 1e4).toFixed(1)}w`;
20478
20353
  return String(count);
20479
20354
  };
20480
- var DouyinLogo = ({ useDarkTheme }) => {
20481
- const [hasError, setHasError] = import_react.useState(false);
20482
- if (hasError) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20483
- className: "flex items-center h-full text-6xl font-bold text-foreground/70",
20484
- children: "抖音"
20485
- });
20486
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
20487
- src: useDarkTheme ? "/image/douyin/dylogo-light.svg" : "/image/douyin/dylogo-dark.svg",
20488
- alt: "抖音Logo",
20489
- className: "object-contain h-full w-auto max-w-125",
20490
- onError: () => setHasError(true)
20491
- });
20355
+ var formatPublishTime = (timestamp) => {
20356
+ if (!timestamp) return "";
20357
+ return format(fromUnixTime(timestamp), "yyyy年MM月dd日 HH:mm", { locale: zhCN });
20492
20358
  };
20493
20359
  /**
20494
20360
  * 二维码组件
@@ -20506,8 +20372,7 @@ var QRCodeSection$1 = ({ qrCodeDataUrl }) => {
20506
20372
  className: "object-contain w-full h-full rounded-lg"
20507
20373
  }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20508
20374
  className: "flex flex-col justify-center items-center text-muted",
20509
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20510
- icon: "lucide:qr-code",
20375
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(QrCode, {
20511
20376
  width: 80,
20512
20377
  className: "mb-4"
20513
20378
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -20525,88 +20390,123 @@ var QRCodeSection$1 = ({ qrCodeDataUrl }) => {
20525
20390
  */
20526
20391
  var VideoInfoHeader = (props) => {
20527
20392
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20528
- className: "max-w-350 mx-auto px-10 py-8",
20393
+ className: "max-w-350 mx-auto px-10 pt-14",
20529
20394
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20530
- className: "flex gap-16 justify-between items-start",
20395
+ className: "flex items-start justify-between gap-10",
20531
20396
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20532
- className: "flex flex-col flex-1",
20533
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20534
- className: "mb-12",
20535
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20536
- className: "h-45 flex items-center",
20537
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(DouyinLogo, { useDarkTheme: props.useDarkTheme }), props.Type === "视频" && props.Resolution && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20538
- className: "flex flex-col gap-2 px-8 py-4 ml-8 rounded-3xl bg-surface/50 w-fit",
20539
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20540
- className: "text-[42px] text-muted",
20541
- children: "分辨率(px)"
20542
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20543
- className: "text-[48px] font-medium text-foreground/70",
20544
- children: props.Resolution
20397
+ className: "flex flex-col gap-10 flex-1 min-w-0",
20398
+ children: [
20399
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20400
+ className: "flex items-start justify-between gap-6",
20401
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20402
+ className: "flex items-center gap-6 min-w-0",
20403
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20404
+ className: "w-35 h-35 shrink-0 rounded-full overflow-hidden bg-surface-secondary ring-2 ring-border/40",
20405
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
20406
+ src: props.AuthorAvatar,
20407
+ className: "w-full h-full object-cover",
20408
+ alt: props.Author
20409
+ })
20410
+ }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20411
+ className: "flex flex-col gap-3 min-w-0",
20412
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20413
+ className: "flex items-center gap-4 flex-wrap",
20414
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20415
+ className: "text-5xl font-medium text-foreground truncate",
20416
+ children: props.Author
20417
+ })
20418
+ }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20419
+ className: "text-4xl text-muted",
20420
+ children: formatPublishTime(props.CreateTime)
20421
+ })]
20545
20422
  })]
20546
- })]
20547
- })
20548
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20549
- className: "grid grid-cols-2 gap-y-6 gap-x-16 pl-2",
20550
- children: [
20551
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20552
- className: "flex items-center tracking-[6px] text-[45px] text-muted select-text",
20553
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20554
- className: "mr-4 text-muted",
20555
- children: "类型"
20556
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20557
- className: "font-medium text-foreground/70",
20423
+ })
20424
+ }),
20425
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20426
+ className: "grid grid-cols-2 gap-8",
20427
+ children: [
20428
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20429
+ className: "flex items-center gap-4 text-foreground/50",
20430
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { size: 48 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20431
+ className: "text-5xl font-medium text-foreground/90",
20432
+ children: formatDouyinCommentDiggCount(props.Statistics.digg_count)
20433
+ })]
20434
+ }),
20435
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20436
+ className: "flex items-center gap-4 text-foreground/50",
20437
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { size: 48 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20438
+ className: "text-5xl font-medium text-foreground/90",
20439
+ children: formatDouyinCommentDiggCount(props.Statistics.comment_count)
20440
+ })]
20441
+ }),
20442
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20443
+ className: "flex items-center gap-4 text-foreground/50",
20444
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { size: 48 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20445
+ className: "text-5xl font-medium text-foreground/90",
20446
+ children: formatDouyinCommentDiggCount(props.Statistics.share_count)
20447
+ })]
20448
+ }),
20449
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20450
+ className: "flex items-center gap-4 text-foreground/50",
20451
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Star, { size: 48 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20452
+ className: "text-5xl font-medium text-foreground/90",
20453
+ children: formatDouyinCommentDiggCount(props.Statistics.collect_count)
20454
+ })]
20455
+ })
20456
+ ]
20457
+ }),
20458
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20459
+ className: "flex items-center gap-4 flex-wrap text-muted",
20460
+ children: [
20461
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20462
+ className: "text-4xl",
20558
20463
  children: props.Type
20559
- })]
20560
- }),
20561
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20562
- className: "flex items-center tracking-[6px] text-[45px] text-muted select-text",
20563
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20564
- className: "mr-4 text-muted",
20565
- children: "评论"
20566
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20567
- className: "font-medium text-foreground/70",
20568
- children: [props.CommentLength, "条"]
20569
- })]
20570
- }),
20571
- props.Type === "视频" ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20572
- className: "flex items-center tracking-[6px] text-[45px] text-muted select-text",
20573
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20574
- className: "mr-4 text-muted",
20575
- children: "大小"
20576
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20577
- className: "font-medium text-foreground/70",
20578
- children: [props.VideoSize, "MB"]
20579
- })]
20580
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20581
- className: "flex items-center tracking-[6px] text-[45px] text-muted select-text",
20582
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20583
- className: "mr-4 text-muted",
20584
- children: "帧率"
20585
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20586
- className: "font-medium text-foreground/70",
20587
- children: [props.VideoFPS, "Hz"]
20588
- })]
20589
- })] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20590
- className: "flex items-center tracking-[6px] text-[45px] text-muted select-text",
20591
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20592
- className: "mr-4 text-muted",
20593
- children: "区域"
20464
+ }),
20465
+ props.Type === "视频" && props.Resolution && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20466
+ className: "text-4xl text-border",
20467
+ children: "·"
20594
20468
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20595
- className: "font-medium text-foreground/70",
20596
- children: props.Region
20597
- })]
20598
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20599
- className: "flex items-center tracking-[6px] text-[45px] text-muted select-text",
20600
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20601
- className: "mr-4 text-muted",
20602
- children: "数量"
20603
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20604
- className: "font-medium text-foreground/70",
20605
- children: [props.ImageLength, ""]
20606
- })]
20607
- })] })
20608
- ]
20609
- })]
20469
+ className: "text-4xl",
20470
+ children: props.Resolution
20471
+ })] }),
20472
+ props.Type === "视频" ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
20473
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20474
+ className: "text-4xl text-border",
20475
+ children: "·"
20476
+ }),
20477
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20478
+ className: "text-4xl",
20479
+ children: [props.VideoSize, "MB"]
20480
+ }),
20481
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20482
+ className: "text-4xl text-border",
20483
+ children: "·"
20484
+ }),
20485
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20486
+ className: "text-4xl",
20487
+ children: [props.VideoFPS, "Hz"]
20488
+ })
20489
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
20490
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20491
+ className: "text-4xl text-border",
20492
+ children: "·"
20493
+ }),
20494
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20495
+ className: "text-4xl",
20496
+ children: props.Region
20497
+ }),
20498
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20499
+ className: "text-4xl text-border",
20500
+ children: "·"
20501
+ }),
20502
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20503
+ className: "text-4xl",
20504
+ children: [props.ImageLength, "张"]
20505
+ })
20506
+ ] })
20507
+ ]
20508
+ })
20509
+ ]
20610
20510
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20611
20511
  className: "shrink-0",
20612
20512
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(QRCodeSection$1, { qrCodeDataUrl: props.qrCodeDataUrl })
@@ -20688,9 +20588,8 @@ var ReplyItemComponent = ({ reply, depth = 0, isLast, maxDepth = 6 }) => {
20688
20588
  className: "flex items-center h-12.5",
20689
20589
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20690
20590
  className: "flex items-center text-muted",
20691
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20692
- icon: "lucide:circle-ellipsis",
20693
- width: 45,
20591
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CircleEllipsis, {
20592
+ size: 45,
20694
20593
  className: "mr-5"
20695
20594
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20696
20595
  className: "text-4xl font-medium tracking-wide",
@@ -20712,10 +20611,10 @@ var ReplyItemComponent = ({ reply, depth = 0, isLast, maxDepth = 6 }) => {
20712
20611
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20713
20612
  className: "flex relative justify-center",
20714
20613
  children: [
20715
- !isLast && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute top-0 bottom-0 left-1/2 w-0.5 bg-border -ml-px" }),
20614
+ !isLast && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute top-0 bottom-0 left-1/2 w-0.5 bg-border-secondary -ml-px" }),
20716
20615
  !isLast && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute -bottom-6 left-1/2 w-0.5 h-6 bg-border -ml-px" }),
20717
20616
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
20718
- className: "absolute top-0 left-0 w-full h-12.5 pointer-events-none overflow-visible z-0 text-border",
20617
+ className: "absolute top-0 left-0 w-full h-12.5 pointer-events-none overflow-visible z-0 text-border-secondary",
20719
20618
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
20720
20619
  d: "M 50 0 V 15 Q 50 50 85 50 H 90",
20721
20620
  fill: "none",
@@ -20738,15 +20637,15 @@ var ReplyItemComponent = ({ reply, depth = 0, isLast, maxDepth = 6 }) => {
20738
20637
  className: "object-cover rounded-full w-25 h-25 bg-background",
20739
20638
  alt: "用户头像"
20740
20639
  })
20741
- }), reply.children.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-0.5 bg-border h-full grow mt-3 rounded-t-full" })]
20640
+ }), reply.children.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-0.5 bg-border-secondary h-full grow mt-3 rounded-t-full" })]
20742
20641
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20743
- className: "flex flex-col pb-8 pl-3 min-w-0",
20642
+ className: clsx("flex flex-col pl-6 min-w-0 gap-2", isLast && reply.children.length === 0 ? "pb-16" : "pb-6"),
20744
20643
  children: [
20745
20644
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20746
- className: "flex flex-nowrap items-center h-25 content-center w-full overflow-hidden",
20645
+ className: "flex flex-nowrap items-center content-center w-full overflow-hidden",
20747
20646
  children: [
20748
20647
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20749
- className: clsx("mr-2 text-5xl font-medium text-muted", isNicknameLonger ? "min-w-0 truncate shrink" : "shrink-0"),
20648
+ className: clsx("mr-2 text-4xl font-normal text-muted", isNicknameLonger ? "min-w-0 truncate shrink" : "shrink-0"),
20750
20649
  children: reply.nickname
20751
20650
  }),
20752
20651
  reply.label_text !== "" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -20755,59 +20654,53 @@ var ReplyItemComponent = ({ reply, depth = 0, isLast, maxDepth = 6 }) => {
20755
20654
  }),
20756
20655
  reply.reply_to_username && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20757
20656
  className: clsx("flex items-center", !isNicknameLonger ? "overflow-hidden min-w-0 shrink" : "shrink-0"),
20758
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20759
- icon: "lucide:play",
20760
- width: 35,
20761
- className: "mr-3.5 mx-1 text-muted shrink-0",
20762
- fill: "currentColor"
20657
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(a, {
20658
+ weight: "fill",
20659
+ className: "w-7 h-auto mr-3.5 mx-1 text-muted shrink-0"
20763
20660
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20764
- className: clsx("text-5xl font-medium text-muted", !isNicknameLonger && "truncate"),
20661
+ className: clsx("text-4xl font-normal text-muted", !isNicknameLonger && "truncate"),
20765
20662
  children: reply.reply_to_username
20766
20663
  })]
20767
20664
  })
20768
20665
  ]
20769
20666
  }),
20770
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20771
- className: "py-2",
20772
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20773
- className: "text-5xl text-foreground leading-normal whitespace-pre-wrap select-text",
20774
- style: {
20775
- wordBreak: "break-word",
20776
- overflowWrap: "break-word"
20777
- },
20778
- children: renderDouyinCommentRichText(reply.text)
20779
- }), reply.image_list && reply.image_list.length > 0 && reply.image_list.filter(Boolean).map((img, idx) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20780
- className: "my-4 overflow-hidden shadow-sm rounded-xl max-w-150",
20781
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
20782
- className: "object-contain w-full h-auto rounded-xl",
20783
- src: img,
20784
- alt: "评论图片"
20785
- })
20786
- }, idx))]
20787
- }),
20667
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20668
+ className: "text-5xl text-foreground leading-normal whitespace-pre-wrap select-text",
20669
+ style: {
20670
+ wordBreak: "break-word",
20671
+ overflowWrap: "break-word"
20672
+ },
20673
+ children: renderDouyinCommentRichText(reply.text)
20674
+ }), reply.image_list && reply.image_list.length > 0 && reply.image_list.filter(Boolean).map((img, idx) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20675
+ className: "my-4 overflow-hidden shadow-sm rounded-xl max-w-150",
20676
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
20677
+ className: "object-contain w-full h-auto rounded-xl",
20678
+ src: img,
20679
+ alt: "评论图片"
20680
+ })
20681
+ }, idx))] }),
20788
20682
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20789
20683
  className: "pb-4",
20790
20684
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20791
20685
  className: "flex gap-6 items-center text-muted",
20792
20686
  children: [
20687
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20688
+ className: "text-4xl",
20689
+ children: formatDouyinCommentTime(reply.create_time)
20690
+ }),
20691
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20692
+ className: "text-4xl",
20693
+ children: reply.ip_label
20694
+ }),
20793
20695
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20794
20696
  className: "flex gap-2 items-center",
20795
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20796
- icon: "lucide:heart",
20797
- width: 40,
20697
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
20698
+ size: 40,
20798
20699
  className: "text-muted"
20799
20700
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20800
20701
  className: "text-4xl select-text",
20801
20702
  children: formatDouyinCommentDiggCount(reply.digg_count)
20802
20703
  })]
20803
- }),
20804
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20805
- className: "text-4xl",
20806
- children: reply.ip_label
20807
- }),
20808
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20809
- className: "ml-2 text-4xl",
20810
- children: formatDouyinCommentTime(reply.create_time)
20811
20704
  })
20812
20705
  ]
20813
20706
  })
@@ -20852,15 +20745,15 @@ var CommentItemComponent$1 = (props) => {
20852
20745
  className: "w-35 h-35 rounded-full object-cover shadow-md bg-background",
20853
20746
  alt: "用户头像"
20854
20747
  })
20855
- }), props.replyComment && props.replyComment.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-0.5 bg-border h-full grow mt-4 rounded-t-full" })]
20748
+ }), props.replyComment && props.replyComment.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-0.5 bg-border-secondary h-full grow mt-4 rounded-t-full" })]
20856
20749
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20857
- className: "flex flex-col pb-4 pl-4 min-w-0",
20750
+ className: "flex flex-col py-4 pl-6 min-w-0 gap-2",
20858
20751
  children: [
20859
20752
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20860
- className: "flex flex-wrap gap-4 items-center mb-3 text-5xl select-text min-h-35 content-center",
20753
+ className: "flex flex-wrap gap-4 items-center mb-3 text-4xl select-text content-center",
20861
20754
  children: [
20862
20755
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20863
- className: "font-medium text-muted",
20756
+ className: "font-normal text-muted",
20864
20757
  children: props.nickname
20865
20758
  }),
20866
20759
  props.label_type === 1 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -20878,7 +20771,7 @@ var CommentItemComponent$1 = (props) => {
20878
20771
  ]
20879
20772
  }),
20880
20773
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20881
- className: "text-5xl text-foreground leading-normal mb-4 whitespace-pre-wrap select-text",
20774
+ className: "text-5xl text-foreground leading-normal whitespace-pre-wrap select-text",
20882
20775
  style: {
20883
20776
  wordBreak: "break-word",
20884
20777
  overflowWrap: "break-word"
@@ -20894,28 +20787,27 @@ var CommentItemComponent$1 = (props) => {
20894
20787
  })
20895
20788
  }),
20896
20789
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20897
- className: "flex justify-between items-center mt-3 text-muted",
20790
+ className: "flex justify-between items-center text-muted",
20898
20791
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20899
20792
  className: "flex gap-6 items-center shrink-0",
20900
20793
  children: [
20794
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20795
+ className: "text-4xl",
20796
+ children: formatDouyinCommentTime(props.create_time)
20797
+ }),
20798
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20799
+ className: "text-4xl",
20800
+ children: props.ip_label
20801
+ }),
20901
20802
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20902
20803
  className: "flex gap-2 items-center transition-colors cursor-pointer",
20903
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20904
- icon: "lucide:heart",
20905
- width: 44,
20804
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
20805
+ size: 44,
20906
20806
  className: "text-muted"
20907
20807
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20908
20808
  className: "text-4xl select-text",
20909
20809
  children: formatDouyinCommentDiggCount(props.digg_count)
20910
20810
  })]
20911
- }),
20912
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20913
- className: "text-4xl",
20914
- children: props.ip_label
20915
- }),
20916
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20917
- className: "ml-2 text-4xl",
20918
- children: formatDouyinCommentTime(props.create_time)
20919
20811
  })
20920
20812
  ]
20921
20813
  })
@@ -20924,7 +20816,7 @@ var CommentItemComponent$1 = (props) => {
20924
20816
  })]
20925
20817
  }), props.replyComment && props.replyComment.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20926
20818
  className: "flex relative flex-col mt-8 ml-5",
20927
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute -top-8 left-12.5 w-0.5 h-8 bg-border -ml-px" }), organizeReplies(props.replyComment, props.cid || "", props.maxDepth).map((reply, index, arr) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ReplyItemComponent, {
20819
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute -top-8 left-12.5 w-0.5 h-8 bg-border-secondary -ml-px" }), organizeReplies(props.replyComment, props.cid || "", props.maxDepth).map((reply, index, arr) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ReplyItemComponent, {
20928
20820
  reply,
20929
20821
  depth: 1,
20930
20822
  isLast: index === arr.length - 1,
@@ -20950,7 +20842,7 @@ var DouyinComment = import_react.memo((props) => {
20950
20842
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DefaultLayout, {
20951
20843
  ...props,
20952
20844
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20953
- className: "p-5",
20845
+ className: "p-5 px-15",
20954
20846
  children: [
20955
20847
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-20" }),
20956
20848
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(VideoInfoHeader, {
@@ -20966,9 +20858,8 @@ var DouyinComment = import_react.memo((props) => {
20966
20858
  children: "大家都在搜:"
20967
20859
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20968
20860
  className: "relative text-5xl text-[#04498d] dark:text-[#face15]",
20969
- children: [randomSuggestWord, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20970
- icon: "lucide:search",
20971
- width: 32,
20861
+ children: [randomSuggestWord, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Search, {
20862
+ size: 32,
20972
20863
  className: "absolute -top-2 -right-8"
20973
20864
  })]
20974
20865
  })]
@@ -21058,50 +20949,32 @@ var InfoSection$3 = (props) => {
21058
20949
  children: [
21059
20950
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21060
20951
  className: "flex gap-2 items-center",
21061
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21062
- icon: "lucide:heart",
21063
- className: "w-11 h-11 text-like"
21064
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
20952
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { className: "w-11 h-11 text-like" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
21065
20953
  }),
21066
20954
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
21067
20955
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21068
20956
  className: "flex gap-2 items-center",
21069
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21070
- icon: "lucide:message-circle",
21071
- className: "w-11 h-11 text-comment"
21072
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
20957
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { className: "w-11 h-11 text-comment" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
21073
20958
  }),
21074
20959
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
21075
20960
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21076
20961
  className: "flex gap-2 items-center",
21077
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21078
- icon: "lucide:bookmark",
21079
- className: "w-11 h-11"
21080
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
20962
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Bookmark, { className: "w-11 h-11" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
21081
20963
  }),
21082
20964
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
21083
20965
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21084
20966
  className: "flex gap-2 items-center",
21085
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21086
- icon: "lucide:share-2",
21087
- className: "w-11 h-11 text-success"
21088
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
20967
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { className: "w-11 h-11 text-success" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
21089
20968
  })
21090
20969
  ]
21091
20970
  }),
21092
20971
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21093
20972
  className: "flex items-center gap-2 text-[45px] text-muted font-light select-text",
21094
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21095
- icon: "lucide:clock",
21096
- className: "w-11 h-11 text-time"
21097
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["发布于: ", props.data.create_time] })]
20973
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { className: "w-11 h-11 text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["发布于: ", props.data.create_time] })]
21098
20974
  }),
21099
20975
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21100
20976
  className: "flex items-center gap-2 text-[45px] text-muted font-light select-text",
21101
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21102
- icon: "lucide:maximize",
21103
- className: "w-11 h-11 text-time text-time"
21104
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
20977
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Maximize, { className: "w-11 h-11 text-time text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
21105
20978
  })
21106
20979
  ]
21107
20980
  });
@@ -21133,9 +21006,8 @@ var UserInfoSection$2 = (props) => {
21133
21006
  children: ["@", props.data.username]
21134
21007
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21135
21008
  className: "flex gap-2 items-center text-4xl text-muted",
21136
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21137
- icon: "lucide:hash",
21138
- width: 32,
21009
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, {
21010
+ size: 32,
21139
21011
  className: "text-muted"
21140
21012
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
21141
21013
  className: "select-text",
@@ -21151,9 +21023,8 @@ var UserInfoSection$2 = (props) => {
21151
21023
  children: [
21152
21024
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21153
21025
  className: "flex gap-1 items-center",
21154
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21155
- icon: "lucide:heart",
21156
- width: 28,
21026
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
21027
+ size: 28,
21157
21028
  className: "text-like"
21158
21029
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21159
21030
  className: "text-muted",
@@ -21172,9 +21043,8 @@ var UserInfoSection$2 = (props) => {
21172
21043
  children: [
21173
21044
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21174
21045
  className: "flex gap-1 items-center",
21175
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21176
- icon: "lucide:eye",
21177
- width: 28,
21046
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, {
21047
+ size: 28,
21178
21048
  className: "text-view"
21179
21049
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21180
21050
  className: "text-muted",
@@ -21193,9 +21063,8 @@ var UserInfoSection$2 = (props) => {
21193
21063
  children: [
21194
21064
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21195
21065
  className: "flex gap-1 items-center",
21196
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21197
- icon: "lucide:users",
21198
- width: 28,
21066
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, {
21067
+ size: 28,
21199
21068
  className: "text-accent"
21200
21069
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21201
21070
  className: "text-muted",
@@ -21313,10 +21182,7 @@ var DouyinDynamic = (props) => {
21313
21182
  className: "px-16 pb-8",
21314
21183
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21315
21184
  className: "gap-2 inline-flex items-center rounded-2xl bg-surface text-foreground/80 px-6 py-3",
21316
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21317
- icon: "lucide:users",
21318
- className: "w-7 h-7"
21319
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
21185
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { className: "w-7 h-7" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
21320
21186
  className: "text-3xl font-medium leading-none select-text text-foreground/80",
21321
21187
  children: [coCreatorCount, "人共创"]
21322
21188
  })]
@@ -21435,9 +21301,9 @@ var DouyinFavoriteList = (props) => {
21435
21301
  }),
21436
21302
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21437
21303
  className: "absolute -bottom-3 -right-3 bg-rose-500 text-white px-5 py-2 rounded-full border-[5px] border-white font-bold text-xl shadow-xl flex items-center gap-2",
21438
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21439
- icon: "ri:heart-3-fill",
21440
- className: "w-5 h-5 fill-current"
21304
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiHeart3Fill, {
21305
+ size: 20,
21306
+ className: "fill-current"
21441
21307
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "赞了" })]
21442
21308
  })
21443
21309
  ]
@@ -21462,9 +21328,9 @@ var DouyinFavoriteList = (props) => {
21462
21328
  className: "mt-6 flex flex-col items-center gap-2 text-rose-500",
21463
21329
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21464
21330
  className: "flex items-center gap-3",
21465
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21466
- icon: "ri:heart-3-fill",
21467
- className: "w-10 h-10 fill-current"
21331
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiHeart3Fill, {
21332
+ size: 40,
21333
+ className: "fill-current"
21468
21334
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21469
21335
  className: "text-4xl font-bold",
21470
21336
  children: "刚刚赞了这个作品"
@@ -21558,9 +21424,8 @@ var DouyinFavoriteList = (props) => {
21558
21424
  className: "absolute inset-x-0 bottom-0 pt-40 pb-12 px-12 bg-linear-to-t from-black/90 via-black/50 to-transparent",
21559
21425
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21560
21426
  className: "flex gap-6 items-start",
21561
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21562
- icon: "lucide:quote",
21563
- width: 48,
21427
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Quote, {
21428
+ size: 48,
21564
21429
  className: "text-rose-500/90 shrink-0 rotate-180 mt-2"
21565
21430
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
21566
21431
  className: "text-white text-4xl font-medium leading-relaxed line-clamp-3 drop-shadow-lg tracking-wide",
@@ -21573,24 +21438,24 @@ var DouyinFavoriteList = (props) => {
21573
21438
  className: "grid grid-cols-5 gap-6 z-10",
21574
21439
  children: [
21575
21440
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$3, {
21576
- icon: "ri:heart-3-fill",
21441
+ icon: RiHeart3Fill,
21577
21442
  value: props.data.dianzan,
21578
21443
  iconClassName: "text-rose-500/80"
21579
21444
  }),
21580
21445
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$3, {
21581
- icon: "ri:thumb-up-fill",
21446
+ icon: RiThumbUpFill,
21582
21447
  value: props.data.tuijian
21583
21448
  }),
21584
21449
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$3, {
21585
- icon: "ri:message-3-fill",
21450
+ icon: RiMessage3Fill,
21586
21451
  value: props.data.pinglun
21587
21452
  }),
21588
21453
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$3, {
21589
- icon: "ri:star-fill",
21454
+ icon: RiStarFill,
21590
21455
  value: props.data.shouchang
21591
21456
  }),
21592
21457
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$3, {
21593
- icon: "ri:share-forward-fill",
21458
+ icon: RiShareForwardFill,
21594
21459
  value: props.data.share
21595
21460
  })
21596
21461
  ]
@@ -21603,11 +21468,11 @@ var DouyinFavoriteList = (props) => {
21603
21468
  });
21604
21469
  };
21605
21470
  /** 统计项小组件 */
21606
- var StatItem$3 = ({ icon, value, iconClassName }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21471
+ var StatItem$3 = ({ icon: IconComponent, value, iconClassName }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21607
21472
  className: "flex flex-col items-center justify-center gap-2 py-6 rounded-3xl bg-surface",
21608
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21609
- icon,
21610
- className: `w-12 h-12 opacity-90 ${iconClassName || "text-muted"}`
21473
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(IconComponent, {
21474
+ size: 48,
21475
+ className: `opacity-90 ${iconClassName || "text-muted"}`
21611
21476
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21612
21477
  className: "text-2xl font-bold text-foreground/70 mt-1",
21613
21478
  children: value
@@ -21670,50 +21535,32 @@ var InfoSection$2 = (props) => {
21670
21535
  children: [
21671
21536
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21672
21537
  className: "flex gap-2 items-center",
21673
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21674
- icon: "lucide:heart",
21675
- className: "w-11 h-11 text-like"
21676
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
21538
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { className: "w-11 h-11 text-like" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
21677
21539
  }),
21678
21540
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
21679
21541
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21680
21542
  className: "flex gap-2 items-center",
21681
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21682
- icon: "lucide:message-circle",
21683
- className: "w-11 h-11 text-comment"
21684
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
21543
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { className: "w-11 h-11 text-comment" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
21685
21544
  }),
21686
21545
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
21687
21546
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21688
21547
  className: "flex gap-2 items-center",
21689
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21690
- icon: "lucide:bookmark",
21691
- className: "w-11 h-11"
21692
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
21548
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Bookmark, { className: "w-11 h-11" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
21693
21549
  }),
21694
21550
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
21695
21551
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21696
21552
  className: "flex gap-2 items-center",
21697
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21698
- icon: "lucide:share-2",
21699
- className: "w-11 h-11 text-success"
21700
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
21553
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { className: "w-11 h-11 text-success" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
21701
21554
  })
21702
21555
  ]
21703
21556
  }),
21704
21557
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21705
21558
  className: "flex items-center gap-2 text-[45px] text-muted font-light select-text",
21706
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21707
- icon: "lucide:clock",
21708
- className: "w-11 h-11 text-time"
21709
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["发布于: ", props.data.create_time] })]
21559
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { className: "w-11 h-11 text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["发布于: ", props.data.create_time] })]
21710
21560
  }),
21711
21561
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21712
21562
  className: "flex items-center gap-2 text-[45px] text-muted font-light select-text",
21713
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21714
- icon: "lucide:maximize",
21715
- className: "w-11 h-11 text-time text-time"
21716
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
21563
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Maximize, { className: "w-11 h-11 text-time text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
21717
21564
  })
21718
21565
  ]
21719
21566
  });
@@ -21743,9 +21590,8 @@ var UserInfoSection$1 = (props) => {
21743
21590
  children: ["@", props.data.username]
21744
21591
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21745
21592
  className: "flex gap-2 items-center text-4xl text-muted",
21746
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21747
- icon: "lucide:hash",
21748
- width: 32,
21593
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, {
21594
+ size: 32,
21749
21595
  className: "text-muted"
21750
21596
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
21751
21597
  className: "select-text",
@@ -21761,9 +21607,8 @@ var UserInfoSection$1 = (props) => {
21761
21607
  children: [
21762
21608
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21763
21609
  className: "flex gap-1 items-center",
21764
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21765
- icon: "lucide:heart",
21766
- width: 28,
21610
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
21611
+ size: 28,
21767
21612
  className: "text-like"
21768
21613
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21769
21614
  className: "text-muted",
@@ -21782,9 +21627,8 @@ var UserInfoSection$1 = (props) => {
21782
21627
  children: [
21783
21628
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21784
21629
  className: "flex gap-1 items-center",
21785
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21786
- icon: "lucide:eye",
21787
- width: 28,
21630
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, {
21631
+ size: 28,
21788
21632
  className: "text-view"
21789
21633
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21790
21634
  className: "text-muted",
@@ -21803,9 +21647,8 @@ var UserInfoSection$1 = (props) => {
21803
21647
  children: [
21804
21648
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21805
21649
  className: "flex gap-1 items-center",
21806
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21807
- icon: "lucide:users",
21808
- width: 28,
21650
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, {
21651
+ size: 28,
21809
21652
  className: "text-accent"
21810
21653
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21811
21654
  className: "text-muted",
@@ -21923,10 +21766,7 @@ var DouyinImageWork = (props) => {
21923
21766
  className: "px-16 pb-8",
21924
21767
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21925
21768
  className: "gap-2 inline-flex items-center rounded-2xl bg-surface text-foreground/80 px-6 py-3",
21926
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21927
- icon: "lucide:users",
21928
- className: "w-7 h-7"
21929
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
21769
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { className: "w-7 h-7" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
21930
21770
  className: "text-3xl font-medium leading-none select-text text-foreground/80",
21931
21771
  children: [coCreatorCount, "人共创"]
21932
21772
  })]
@@ -22115,9 +21955,8 @@ var InfoSection$1 = ({ data }) => {
22115
21955
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
22116
21956
  className: "flex items-center gap-1.5",
22117
21957
  children: [
22118
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22119
- icon: "lucide:users",
22120
- width: 28,
21958
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, {
21959
+ size: 28,
22121
21960
  className: "text-foreground/20"
22122
21961
  }),
22123
21962
  data.online_viewers,
@@ -22127,9 +21966,8 @@ var InfoSection$1 = ({ data }) => {
22127
21966
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
22128
21967
  className: "flex items-center gap-1.5",
22129
21968
  children: [
22130
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22131
- icon: "lucide:eye",
22132
- width: 28,
21969
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, {
21970
+ size: 28,
22133
21971
  className: "text-foreground/20"
22134
21972
  }),
22135
21973
  data.total_viewers,
@@ -22139,9 +21977,8 @@ var InfoSection$1 = ({ data }) => {
22139
21977
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
22140
21978
  className: "flex items-center gap-1.5",
22141
21979
  children: [
22142
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22143
- icon: "lucide:heart",
22144
- width: 28,
21980
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
21981
+ size: 28,
22145
21982
  className: "text-foreground/20"
22146
21983
  }),
22147
21984
  data.like_count,
@@ -22150,17 +21987,15 @@ var InfoSection$1 = ({ data }) => {
22150
21987
  }),
22151
21988
  data.resolution && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
22152
21989
  className: "flex items-center gap-1.5",
22153
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22154
- icon: "lucide:monitor",
22155
- width: 28,
21990
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Monitor, {
21991
+ size: 28,
22156
21992
  className: "text-foreground/20"
22157
21993
  }), data.resolution]
22158
21994
  }),
22159
21995
  data.has_commerce_goods && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
22160
21996
  className: "flex items-center gap-1.5",
22161
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22162
- icon: "lucide:shopping-bag",
22163
- width: 28,
21997
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ShoppingBag, {
21998
+ size: 28,
22164
21999
  className: "text-foreground/20"
22165
22000
  }), "带货中"]
22166
22001
  })
@@ -22172,9 +22007,8 @@ var InfoSection$1 = ({ data }) => {
22172
22007
  }),
22173
22008
  data.city && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22174
22009
  className: "flex items-center gap-2 text-3xl text-foreground/30",
22175
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22176
- icon: "lucide:map-pin",
22177
- width: 28,
22010
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MapPin, {
22011
+ size: 28,
22178
22012
  className: "text-foreground/20"
22179
22013
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: data.city })]
22180
22014
  })
@@ -22217,10 +22051,7 @@ var BottomSection = ({ data, qrCodeDataUrl }) => {
22217
22051
  className: "text-foreground/40",
22218
22052
  children: "·"
22219
22053
  }),
22220
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22221
- icon: "lucide:users",
22222
- width: 32
22223
- }),
22054
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { size: 32 }),
22224
22055
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
22225
22056
  className: "select-text",
22226
22057
  children: [data.fans, "粉丝"]
@@ -22235,10 +22066,7 @@ var BottomSection = ({ data, qrCodeDataUrl }) => {
22235
22066
  className: "flex flex-col gap-2 px-6 py-3 rounded-2xl bg-default/45",
22236
22067
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22237
22068
  className: "flex items-center gap-2",
22238
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22239
- icon: "lucide:file-video",
22240
- width: 28
22241
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22069
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(FilePlay, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22242
22070
  className: "text-foreground/40",
22243
22071
  children: "作品"
22244
22072
  })]
@@ -22251,10 +22079,7 @@ var BottomSection = ({ data, qrCodeDataUrl }) => {
22251
22079
  className: "flex flex-col gap-2 px-6 py-3 rounded-2xl bg-default/45",
22252
22080
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22253
22081
  className: "flex items-center gap-2",
22254
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22255
- icon: "lucide:user-plus",
22256
- width: 28
22257
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22082
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UserPlus, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22258
22083
  className: "text-foreground/40",
22259
22084
  children: "关注"
22260
22085
  })]
@@ -22267,10 +22092,7 @@ var BottomSection = ({ data, qrCodeDataUrl }) => {
22267
22092
  className: "flex flex-col gap-2 px-6 py-3 rounded-2xl bg-default/45",
22268
22093
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22269
22094
  className: "flex items-center gap-2",
22270
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22271
- icon: "lucide:heart",
22272
- width: 28
22273
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22095
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22274
22096
  className: "text-foreground/40",
22275
22097
  children: "获赞"
22276
22098
  })]
@@ -22392,24 +22214,15 @@ var MusicInfoSection = ({ desc, musicId, userCount, createTime }) => {
22392
22214
  className: "flex flex-col gap-2 text-[45px] text-muted font-light mb-2.5",
22393
22215
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22394
22216
  className: "flex gap-2 items-center select-text",
22395
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22396
- icon: "lucide:music",
22397
- className: "w-11 h-11"
22398
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["音乐ID: ", musicId] })]
22217
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Music, { className: "w-11 h-11" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["音乐ID: ", musicId] })]
22399
22218
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22400
22219
  className: "flex gap-2 items-center select-text",
22401
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22402
- icon: "lucide:users",
22403
- className: "w-11 h-11 text-follow"
22404
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [userCount, " 人使用过"] })]
22220
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { className: "w-11 h-11 text-follow" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [userCount, " 人使用过"] })]
22405
22221
  })]
22406
22222
  }),
22407
22223
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22408
22224
  className: "flex items-center gap-2 text-[45px] text-muted font-light select-text",
22409
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22410
- icon: "lucide:maximize",
22411
- className: "w-11 h-11 text-time"
22412
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", createTime] })]
22225
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Maximize, { className: "w-11 h-11 text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", createTime] })]
22413
22226
  })
22414
22227
  ]
22415
22228
  });
@@ -22441,31 +22254,19 @@ var MusicAuthorInfoSection = ({ avatarUrl, username, userShortId, totalFavorited
22441
22254
  children: [
22442
22255
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22443
22256
  className: "flex gap-2 items-center",
22444
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22445
- icon: "lucide:hash",
22446
- className: "w-8 h-8"
22447
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["ID: ", userShortId] })]
22257
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { className: "w-8 h-8" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["ID: ", userShortId] })]
22448
22258
  }),
22449
22259
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22450
22260
  className: "flex gap-2 items-center",
22451
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22452
- icon: "lucide:heart",
22453
- className: "w-8 h-8 text-like"
22454
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["获赞: ", totalFavorited] })]
22261
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { className: "w-8 h-8 text-like" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["获赞: ", totalFavorited] })]
22455
22262
  }),
22456
22263
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22457
22264
  className: "flex gap-2 items-center",
22458
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22459
- icon: "lucide:user-plus",
22460
- className: "w-8 h-8"
22461
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["关注: ", followingCount] })]
22265
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UserPlus, { className: "w-8 h-8" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["关注: ", followingCount] })]
22462
22266
  }),
22463
22267
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22464
22268
  className: "flex gap-2 items-center",
22465
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22466
- icon: "lucide:users",
22467
- className: "w-8 h-8 text-follow"
22468
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["粉丝: ", fans] })]
22269
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { className: "w-8 h-8 text-follow" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["粉丝: ", fans] })]
22469
22270
  })
22470
22271
  ]
22471
22272
  })]
@@ -22481,10 +22282,7 @@ var MusicQRCodeSection = ({ qrCodeDataUrl }) => {
22481
22282
  className: "flex flex-col-reverse items-center -mb-12 mr-18",
22482
22283
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22483
22284
  className: "flex items-center gap-2 text-[45px] text-right mt-5 text-muted select-text",
22484
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22485
- icon: "lucide:qr-code",
22486
- className: "w-11 h-11"
22487
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "文件直链:永久有效" })]
22285
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(QrCode, { className: "w-11 h-11" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "文件直链:永久有效" })]
22488
22286
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
22489
22287
  className: "p-2.5 rounded-sm border-[7px] border-dashed border-border",
22490
22288
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
@@ -22644,44 +22442,35 @@ var DouyinQrcodeImg = import_react.memo((props) => {
22644
22442
  className: "flex flex-col items-center gap-4",
22645
22443
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
22646
22444
  className: "p-5 rounded-3xl bg-surface/50 backdrop-blur-md",
22647
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22648
- icon: "ri:tiktok-fill",
22649
- className: "w-16 h-16"
22650
- })
22445
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiTiktokFill, { size: 64 })
22651
22446
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22652
22447
  className: "text-[28px] font-medium tracking-wide",
22653
22448
  children: "打开抖音"
22654
22449
  })]
22655
22450
  }),
22656
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22657
- icon: "ri:arrow-right-fill",
22658
- className: "w-10 h-10 mt-8 opacity-40"
22451
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiArrowRightFill, {
22452
+ size: 40,
22453
+ className: "mt-8 opacity-40"
22659
22454
  }),
22660
22455
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22661
22456
  className: "flex flex-col items-center gap-4",
22662
22457
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
22663
22458
  className: "p-5 rounded-3xl bg-surface/50 backdrop-blur-md",
22664
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22665
- icon: "heroicons-outline:menu-alt-2",
22666
- className: "w-16 h-16"
22667
- })
22459
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu, { size: 64 })
22668
22460
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22669
22461
  className: "text-[28px] font-medium tracking-wide",
22670
22462
  children: "左上角菜单"
22671
22463
  })]
22672
22464
  }),
22673
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22674
- icon: "ri:arrow-right-fill",
22675
- className: "w-10 h-10 mt-8 opacity-40"
22465
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiArrowRightFill, {
22466
+ size: 40,
22467
+ className: "mt-8 opacity-40"
22676
22468
  }),
22677
22469
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22678
22470
  className: "flex flex-col items-center gap-4",
22679
22471
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
22680
22472
  className: "p-5 rounded-3xl bg-surface/50 backdrop-blur-md",
22681
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22682
- icon: "tabler:scan",
22683
- className: "w-16 h-16"
22684
- })
22473
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ScanLine, { size: 64 })
22685
22474
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22686
22475
  className: "text-[28px] font-medium tracking-wide",
22687
22476
  children: "顶部扫一扫"
@@ -22722,9 +22511,8 @@ var DouyinQrcodeImg = import_react.memo((props) => {
22722
22511
  children: [
22723
22512
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
22724
22513
  className: "flex items-center justify-center w-16 h-16 mb-2",
22725
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22726
- icon: "lucide:smartphone",
22727
- className: "w-16 h-16",
22514
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Smartphone, {
22515
+ size: 64,
22728
22516
  style: { color: theme.text },
22729
22517
  strokeWidth: 1
22730
22518
  })
@@ -22745,9 +22533,8 @@ var DouyinQrcodeImg = import_react.memo((props) => {
22745
22533
  children: [
22746
22534
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
22747
22535
  className: "flex items-center justify-center w-16 h-16 mb-2",
22748
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22749
- icon: "lucide:shield-check",
22750
- className: "w-16 h-16",
22536
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ShieldCheck, {
22537
+ size: 64,
22751
22538
  style: { color: theme.text },
22752
22539
  strokeWidth: 1
22753
22540
  })
@@ -22863,9 +22650,9 @@ var DouyinRecommendList = (props) => {
22863
22650
  }),
22864
22651
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22865
22652
  className: "absolute -bottom-3 -right-3 bg-emerald-500 text-white px-5 py-2 rounded-full border-[5px] border-white font-bold text-xl shadow-xl flex items-center gap-2",
22866
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22867
- icon: "ri:thumb-up-fill",
22868
- className: "w-5 h-5 fill-current"
22653
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiThumbUpFill, {
22654
+ size: 20,
22655
+ className: "fill-current"
22869
22656
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "推荐" })]
22870
22657
  })
22871
22658
  ]
@@ -22890,9 +22677,9 @@ var DouyinRecommendList = (props) => {
22890
22677
  className: "mt-6 flex flex-col items-center gap-2 text-emerald-500",
22891
22678
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22892
22679
  className: "flex items-center gap-3",
22893
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22894
- icon: "ri:thumb-up-fill",
22895
- className: "w-10 h-10 fill-current"
22680
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiThumbUpFill, {
22681
+ size: 40,
22682
+ className: "fill-current"
22896
22683
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22897
22684
  className: "text-4xl font-bold",
22898
22685
  children: "刚刚推荐了这个作品"
@@ -22986,9 +22773,8 @@ var DouyinRecommendList = (props) => {
22986
22773
  className: "absolute inset-x-0 bottom-0 pt-40 pb-12 px-12 bg-linear-to-t from-black/90 via-black/50 to-transparent",
22987
22774
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22988
22775
  className: "flex gap-6 items-start",
22989
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22990
- icon: "lucide:quote",
22991
- width: 48,
22776
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Quote, {
22777
+ size: 48,
22992
22778
  className: "text-emerald-500/90 shrink-0 rotate-180 mt-2"
22993
22779
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
22994
22780
  className: "text-white text-4xl font-medium leading-relaxed line-clamp-3 drop-shadow-lg tracking-wide",
@@ -23001,24 +22787,24 @@ var DouyinRecommendList = (props) => {
23001
22787
  className: "grid grid-cols-5 gap-6 z-10",
23002
22788
  children: [
23003
22789
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$2, {
23004
- icon: "ri:heart-3-fill",
22790
+ icon: RiHeart3Fill,
23005
22791
  value: props.data.dianzan
23006
22792
  }),
23007
22793
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$2, {
23008
- icon: "ri:thumb-up-fill",
22794
+ icon: RiThumbUpFill,
23009
22795
  value: props.data.tuijian,
23010
22796
  iconClassName: "text-emerald-500/80"
23011
22797
  }),
23012
22798
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$2, {
23013
- icon: "ri:message-3-fill",
22799
+ icon: RiMessage3Fill,
23014
22800
  value: props.data.pinglun
23015
22801
  }),
23016
22802
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$2, {
23017
- icon: "ri:star-fill",
22803
+ icon: RiStarFill,
23018
22804
  value: props.data.shouchang
23019
22805
  }),
23020
22806
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$2, {
23021
- icon: "ri:share-forward-fill",
22807
+ icon: RiShareForwardFill,
23022
22808
  value: props.data.share
23023
22809
  })
23024
22810
  ]
@@ -23031,11 +22817,11 @@ var DouyinRecommendList = (props) => {
23031
22817
  });
23032
22818
  };
23033
22819
  /** 统计项小组件 */
23034
- var StatItem$2 = ({ icon, value, iconClassName }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22820
+ var StatItem$2 = ({ icon: IconComponent, value, iconClassName }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23035
22821
  className: "flex flex-col items-center justify-center gap-2 py-6 rounded-3xl bg-surface",
23036
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23037
- icon,
23038
- className: `w-12 h-12 opacity-90 ${iconClassName || "text-muted"}`
22822
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(IconComponent, {
22823
+ size: 48,
22824
+ className: `opacity-90 ${iconClassName || "text-muted"}`
23039
22825
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
23040
22826
  className: "text-2xl font-bold text-foreground/70 mt-1",
23041
22827
  children: value
@@ -23046,23 +22832,23 @@ var StatItem$2 = ({ icon, value, iconClassName }) => /* @__PURE__ */ (0, import_
23046
22832
  var pushTypeConfig = {
23047
22833
  post: {
23048
22834
  label: "作品更新",
23049
- color: "bg-accent/5 text-accent border-accent-soft-hover",
23050
- icon: "ri:video-line"
22835
+ color: "bg-accent/5 text-accent/80 border-accent/12",
22836
+ icon: Clapperboard
23051
22837
  },
23052
22838
  favorite: {
23053
22839
  label: "喜欢列表",
23054
- color: "bg-danger/5 text-danger border-danger-soft-hover",
23055
- icon: "ri:heart-line"
22840
+ color: "bg-[#d94f50]/5 text-[#b04546] border-[#d94f50]/12",
22841
+ icon: Heart
23056
22842
  },
23057
22843
  recommend: {
23058
22844
  label: "推荐列表",
23059
- color: "bg-warning/5 text-warning border-warning-soft-hover",
23060
- icon: "ri:star-line"
22845
+ color: "bg-[#c9943a]/5 text-[#a07d30] border-[#c9943a]/12",
22846
+ icon: Sparkles
23061
22847
  },
23062
22848
  live: {
23063
22849
  label: "直播状态",
23064
- color: "bg-surface-secondary/40 text-accent border-border/20",
23065
- icon: "ri:live-line"
22850
+ color: "bg-[#3aa876]/5 text-[#2e8a5e] border-[#3aa876]/12",
22851
+ icon: Radio
23066
22852
  }
23067
22853
  };
23068
22854
  /**
@@ -23150,9 +22936,9 @@ var DouyinUserItem = (props) => {
23150
22936
  children: props.username
23151
22937
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
23152
22938
  className: "inline-flex items-center gap-1 px-2 py-1 rounded-md bg-surface/50 border border-border/50 text-xs font-mono font-bold text-muted",
23153
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23154
- icon: "ri:hashtag",
23155
- className: "w-3 h-3 opacity-70"
22939
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, {
22940
+ size: 12,
22941
+ className: "opacity-70"
23156
22942
  }), props.short_id]
23157
22943
  })]
23158
22944
  }),
@@ -23172,9 +22958,9 @@ var DouyinUserItem = (props) => {
23172
22958
  const isActive = props.pushTypes?.includes(type);
23173
22959
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23174
22960
  className: `px-2.5 py-3 rounded-xl border flex flex-col items-center gap-2.5 transition-colors duration-200 ${isActive ? config.color : "bg-surface/50 text-muted border-transparent dark:bg-surface/10"}`,
23175
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23176
- icon: config.icon,
23177
- className: `w-5 h-5 ${isActive ? "" : "opacity-50"}`
22961
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(config.icon, {
22962
+ size: 20,
22963
+ className: isActive ? "" : "opacity-50"
23178
22964
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
23179
22965
  className: "text-xs font-bold whitespace-nowrap tracking-wide",
23180
22966
  style: { writingMode: "vertical-rl" },
@@ -23186,26 +22972,27 @@ var DouyinUserItem = (props) => {
23186
22972
  className: "flex-1 flex flex-col gap-2",
23187
22973
  children: [
23188
22974
  {
23189
- icon: "ri:group-line",
22975
+ icon: UsersRound,
23190
22976
  value: props.fans,
23191
22977
  label: "粉丝"
23192
22978
  },
23193
22979
  {
23194
- icon: "ri:heart-3-line",
22980
+ icon: Heart,
23195
22981
  value: props.total_favorited,
23196
22982
  label: "获赞"
23197
22983
  },
23198
22984
  {
23199
- icon: "ri:user-follow-line",
22985
+ icon: UserPlus,
23200
22986
  value: props.following_count,
23201
22987
  label: "关注"
23202
22988
  }
23203
22989
  ].map((item, index) => {
22990
+ const StatIcon = item.icon;
23204
22991
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23205
22992
  className: "flex items-center gap-3 px-4 py-2 rounded-lg bg-surface-secondary/30 border border-border/30 backdrop-blur-sm",
23206
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23207
- icon: item.icon,
23208
- className: "w-5 h-5 text-muted shrink-0"
22993
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatIcon, {
22994
+ size: 20,
22995
+ className: "text-muted shrink-0"
23209
22996
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23210
22997
  className: "flex items-baseline gap-2 flex-1",
23211
22998
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -23339,12 +23126,11 @@ var DouyinUserList = (props) => {
23339
23126
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23340
23127
  className: "flex items-center gap-3 mb-4",
23341
23128
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
23342
- className: "w-10 h-10 rounded-xl bg-foreground flex items-center justify-center text-background shadow-lg",
23343
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
23344
- className: "w-6 h-6",
23345
- fill: "currentColor",
23346
- viewBox: "0 0 24 24",
23347
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2zm-7 5h5v5h-5z" })
23129
+ className: "w-10 h-10 rounded-xl overflow-hidden shadow-lg border border-border/30",
23130
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
23131
+ src: props.data.groupInfo.groupAvatar,
23132
+ alt: "Group Avatar",
23133
+ className: "w-full h-full object-cover"
23348
23134
  })
23349
23135
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
23350
23136
  className: "font-mono text-sm font-bold tracking-widest uppercase opacity-50 text-foreground",
@@ -23423,10 +23209,10 @@ var VideoCard = ({ video }) => {
23423
23209
  className: "absolute top-4 right-4 flex flex-col gap-2",
23424
23210
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23425
23211
  className: "px-6 py-4 rounded-2xl text-4xl bg-white/50 text-black backdrop-blur-xs shadow-lg flex items-center gap-2",
23426
- children: [video.is_video ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { icon: "ant-design:video-camera-outlined" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { icon: "bootstrap:image" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: video.is_video ? "视频" : "图集" })]
23212
+ children: [video.is_video ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AiOutlineVideoCamera, { size: 34 }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BiImage, { size: 34 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: video.is_video ? "视频" : "图集" })]
23427
23213
  }), video.is_top && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23428
23214
  className: "px-6 py-4 rounded-2xl text-4xl bg-warning text-black backdrop-blur-xs shadow-lg flex items-center gap-2",
23429
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { icon: "ant-design:pushpin-filled" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "置顶" })]
23215
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AiFillPushpin, { size: 34 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "置顶" })]
23430
23216
  })]
23431
23217
  }),
23432
23218
  video.is_video && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -23435,7 +23221,7 @@ var VideoCard = ({ video }) => {
23435
23221
  }),
23436
23222
  video.music && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23437
23223
  className: "absolute bottom-4 left-4 flex items-center gap-2 px-6 py-3 rounded-2xl text-xl bg-white/50 text-black backdrop-blur-xs shadow-lg",
23438
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { icon: "fa6:music" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
23224
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(FaMusic, { size: 34 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
23439
23225
  className: "max-w-80 truncate",
23440
23226
  children: video.music.title
23441
23227
  })]
@@ -23463,31 +23249,19 @@ var VideoCard = ({ video }) => {
23463
23249
  children: [
23464
23250
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23465
23251
  className: "flex items-center gap-2 text-foreground/70",
23466
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23467
- icon: "ant-design:heart-filled",
23468
- width: 34
23469
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.like_count) })]
23252
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AiFillHeart, { size: 34 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.like_count) })]
23470
23253
  }),
23471
23254
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23472
23255
  className: "flex items-center gap-2 text-foreground/70",
23473
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23474
- icon: "fa6:comment-dots",
23475
- width: 34
23476
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.comment_count) })]
23256
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(FaCommentDots, { size: 34 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.comment_count) })]
23477
23257
  }),
23478
23258
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23479
23259
  className: "flex items-center gap-2 text-foreground/70",
23480
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23481
- icon: "ant-design:star-filled",
23482
- width: 34
23483
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.collect_count) })]
23260
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AiFillStar, { size: 34 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.collect_count) })]
23484
23261
  }),
23485
23262
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23486
23263
  className: "flex items-center gap-2 text-foreground/70",
23487
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23488
- icon: "ri:share-forward-fill",
23489
- width: 34
23490
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.share_count) })]
23264
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiShareForwardFill, { size: 34 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.share_count) })]
23491
23265
  })
23492
23266
  ]
23493
23267
  })
@@ -23530,9 +23304,9 @@ var DouyinUserVideoList = (prpos) => {
23530
23304
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", {
23531
23305
  className: "text-6xl font-bold text-foreground",
23532
23306
  children: prpos.data.user.nickname
23533
- }), prpos.data.user.verified && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23534
- icon: "ri:verified-badge-fill",
23535
- className: "text-5xl text-accent"
23307
+ }), prpos.data.user.verified && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiVerifiedBadgeFill, {
23308
+ size: 40,
23309
+ className: "text-accent"
23536
23310
  })]
23537
23311
  }),
23538
23312
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
@@ -23540,17 +23314,14 @@ var DouyinUserVideoList = (prpos) => {
23540
23314
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
23541
23315
  className: "flex items-center gap-2",
23542
23316
  children: [
23543
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { icon: "fa6:tiktok" }),
23317
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FaTiktok, { size: 24 }),
23544
23318
  " 抖音号:",
23545
23319
  prpos.data.user.short_id
23546
23320
  ]
23547
23321
  }), prpos.data.user.ip_location && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
23548
23322
  className: "flex items-center gap-1",
23549
23323
  children: [
23550
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23551
- icon: "material-symbols:location-on",
23552
- className: "text-3xl"
23553
- }),
23324
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MdLocationOn, { size: 28 }),
23554
23325
  " ",
23555
23326
  prpos.data.user.ip_location
23556
23327
  ]
@@ -23562,8 +23333,8 @@ var DouyinUserVideoList = (prpos) => {
23562
23333
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23563
23334
  className: "flex items-center gap-2",
23564
23335
  children: [
23565
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23566
- icon: "ri:user-follow-line",
23336
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiUserFollowLine, {
23337
+ size: 28,
23567
23338
  className: "text-muted"
23568
23339
  }),
23569
23340
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -23579,8 +23350,8 @@ var DouyinUserVideoList = (prpos) => {
23579
23350
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23580
23351
  className: "flex items-center gap-2",
23581
23352
  children: [
23582
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23583
- icon: "fa6:user-group",
23353
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FaUserGroup, {
23354
+ size: 28,
23584
23355
  className: "text-muted"
23585
23356
  }),
23586
23357
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -23596,8 +23367,8 @@ var DouyinUserVideoList = (prpos) => {
23596
23367
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23597
23368
  className: "flex items-center gap-2",
23598
23369
  children: [
23599
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23600
- icon: "ant-design:heart-filled",
23370
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AiFillHeart, {
23371
+ size: 28,
23601
23372
  className: "text-muted"
23602
23373
  }),
23603
23374
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -23623,9 +23394,9 @@ var DouyinUserVideoList = (prpos) => {
23623
23394
  className: "bg-surface/60 backdrop-blur-xl mb-8 rounded-4xl p-6 border border-border/50 shadow-sm flex justify-center items-center",
23624
23395
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", {
23625
23396
  className: "text-3xl text-foreground/80 font-medium flex items-center gap-3",
23626
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23627
- icon: "material-symbols:lightbulb-outline",
23628
- className: "text-4xl text-warning"
23397
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MdLightbulbOutline, {
23398
+ size: 40,
23399
+ className: "text-warning"
23629
23400
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
23630
23401
  "请在 ",
23631
23402
  prpos.data.timeoutSeconds,
@@ -23815,31 +23586,19 @@ var DouyinVideoInfo = import_react.memo((props) => {
23815
23586
  className: "flex items-center gap-14 shrink-0",
23816
23587
  children: [
23817
23588
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$1, {
23818
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23819
- icon: "lucide:heart",
23820
- width: 48
23821
- }),
23589
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { size: 48 }),
23822
23590
  value: props.data.statistics.digg_count
23823
23591
  }),
23824
23592
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$1, {
23825
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23826
- icon: "lucide:message-circle",
23827
- width: 48
23828
- }),
23593
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { size: 48 }),
23829
23594
  value: props.data.statistics.comment_count
23830
23595
  }),
23831
23596
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$1, {
23832
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23833
- icon: "lucide:star",
23834
- width: 48
23835
- }),
23597
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Star, { size: 48 }),
23836
23598
  value: props.data.statistics.collect_count
23837
23599
  }),
23838
23600
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$1, {
23839
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23840
- icon: "lucide:share-2",
23841
- width: 48
23842
- }),
23601
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { size: 48 }),
23843
23602
  value: props.data.statistics.share_count
23844
23603
  })
23845
23604
  ]
@@ -23963,50 +23722,32 @@ var InfoSection = (props) => {
23963
23722
  children: [
23964
23723
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23965
23724
  className: "flex gap-2 items-center",
23966
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23967
- icon: "lucide:heart",
23968
- className: "w-11 h-11 text-like"
23969
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
23725
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { className: "w-11 h-11 text-like" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
23970
23726
  }),
23971
23727
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
23972
23728
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23973
23729
  className: "flex gap-2 items-center",
23974
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23975
- icon: "lucide:message-circle",
23976
- className: "w-11 h-11 text-comment"
23977
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
23730
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { className: "w-11 h-11 text-comment" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
23978
23731
  }),
23979
23732
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
23980
23733
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23981
23734
  className: "flex gap-2 items-center",
23982
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23983
- icon: "lucide:bookmark",
23984
- className: "w-11 h-11"
23985
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
23735
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Bookmark, { className: "w-11 h-11" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
23986
23736
  }),
23987
23737
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
23988
23738
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23989
23739
  className: "flex gap-2 items-center",
23990
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23991
- icon: "lucide:share-2",
23992
- className: "w-11 h-11 text-success"
23993
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
23740
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { className: "w-11 h-11 text-success" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
23994
23741
  })
23995
23742
  ]
23996
23743
  }),
23997
23744
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23998
23745
  className: "flex items-center gap-2 text-[45px] text-muted font-light select-text",
23999
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24000
- icon: "lucide:clock",
24001
- className: "w-11 h-11 text-time"
24002
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["发布于: ", props.data.create_time] })]
23746
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { className: "w-11 h-11 text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["发布于: ", props.data.create_time] })]
24003
23747
  }),
24004
23748
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24005
23749
  className: "flex items-center gap-2 text-[45px] text-muted font-light select-text",
24006
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24007
- icon: "lucide:maximize",
24008
- className: "w-11 h-11 text-time text-time"
24009
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
23750
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Maximize, { className: "w-11 h-11 text-time text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
24010
23751
  })
24011
23752
  ]
24012
23753
  });
@@ -24037,10 +23778,7 @@ var UserInfoSection = (props) => {
24037
23778
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24038
23779
  className: "flex gap-2 items-center text-4xl text-muted",
24039
23780
  children: [
24040
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24041
- icon: "lucide:hash",
24042
- width: 32
24043
- }),
23781
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { size: 32 }),
24044
23782
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
24045
23783
  className: "select-text",
24046
23784
  children: ["抖音号: ", props.data.抖音号]
@@ -24060,9 +23798,8 @@ var UserInfoSection = (props) => {
24060
23798
  children: [
24061
23799
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24062
23800
  className: "flex gap-1 items-center",
24063
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24064
- icon: "lucide:heart",
24065
- width: 28,
23801
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
23802
+ size: 28,
24066
23803
  className: "text-like"
24067
23804
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
24068
23805
  className: "text-muted",
@@ -24081,9 +23818,8 @@ var UserInfoSection = (props) => {
24081
23818
  children: [
24082
23819
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24083
23820
  className: "flex gap-1 items-center",
24084
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24085
- icon: "lucide:eye",
24086
- width: 28,
23821
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, {
23822
+ size: 28,
24087
23823
  className: "text-view"
24088
23824
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
24089
23825
  className: "text-muted",
@@ -24102,9 +23838,8 @@ var UserInfoSection = (props) => {
24102
23838
  children: [
24103
23839
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24104
23840
  className: "flex gap-1 items-center",
24105
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24106
- icon: "lucide:users",
24107
- width: 28,
23841
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, {
23842
+ size: 28,
24108
23843
  className: "text-accent"
24109
23844
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
24110
23845
  className: "text-muted",
@@ -24222,10 +23957,7 @@ var DouyinVideoWork = (props) => {
24222
23957
  className: "px-16 pb-8",
24223
23958
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24224
23959
  className: "gap-2 inline-flex items-center rounded-2xl bg-surface text-foreground/80 px-6 py-3",
24225
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24226
- icon: "lucide:users",
24227
- className: "w-7 h-7"
24228
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
23960
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { className: "w-7 h-7" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
24229
23961
  className: "text-3xl font-medium leading-none select-text text-foreground/80",
24230
23962
  children: [coCreatorCount, "人共创"]
24231
23963
  })]
@@ -24292,8 +24024,7 @@ var KuaishouQRCodeSection = ({ qrCodeDataUrl, type, imageLength }) => {
24292
24024
  className: "object-contain w-full h-full"
24293
24025
  }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24294
24026
  className: "flex flex-col justify-center items-center text-muted",
24295
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24296
- icon: "lucide:qr-code",
24027
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(QrCode, {
24297
24028
  width: 80,
24298
24029
  className: "mb-4"
24299
24030
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -24439,9 +24170,8 @@ var KuaishouCommentItemComponent = ({ comment, isLast = false }) => {
24439
24170
  className: "flex items-center space-x-6",
24440
24171
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24441
24172
  className: "flex items-center space-x-2 transition-colors cursor-pointer hover:text-danger",
24442
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24443
- icon: "lucide:heart",
24444
- width: 60,
24173
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
24174
+ size: 60,
24445
24175
  className: "stroke-current"
24446
24176
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
24447
24177
  className: "text-[50px] select-text",
@@ -24449,9 +24179,8 @@ var KuaishouCommentItemComponent = ({ comment, isLast = false }) => {
24449
24179
  })]
24450
24180
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
24451
24181
  className: "flex items-center transition-colors cursor-pointer hover:text-accent",
24452
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24453
- icon: "lucide:message-circle",
24454
- width: 60,
24182
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, {
24183
+ size: 60,
24455
24184
  className: "stroke-current"
24456
24185
  })
24457
24186
  })]
@@ -24497,9 +24226,8 @@ var KuaishouComment = import_react.memo((props) => {
24497
24226
  className: "flex justify-center items-center py-20 text-muted",
24498
24227
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24499
24228
  className: "text-center",
24500
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24501
- icon: "lucide:message-circle",
24502
- width: 64,
24229
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, {
24230
+ size: 64,
24503
24231
  className: "mx-auto mb-4 text-muted/70"
24504
24232
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
24505
24233
  className: "text-xl",
@@ -24516,8 +24244,8 @@ var KuaishouComment = import_react.memo((props) => {
24516
24244
  var InlineCalloutCode = ({ children, className }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
24517
24245
  className: `inline-flex items-center rounded-[0.55em] px-[0.48em] py-[0.18em] font-semibold ${className ?? ""}`.trim(),
24518
24246
  style: {
24519
- background: "color-mix(in oklab, var(--success) 12%, transparent)",
24520
- color: "var(--success)"
24247
+ background: "color-mix(in oklab, #d4af37 14%, transparent)",
24248
+ color: "#d4af37"
24521
24249
  },
24522
24250
  children
24523
24251
  });
@@ -24530,27 +24258,27 @@ var Changelog = import_react.memo((props) => {
24530
24258
  const isDark = props.data.useDarkTheme ?? false;
24531
24259
  const { qrCodeDataUrl } = props;
24532
24260
  const backgroundColors = isDark ? {
24533
- base: "#06110d",
24534
- primary: "rgba(70, 184, 145, 0.26)",
24535
- secondary: "rgba(135, 214, 84, 0.22)",
24536
- accent: "rgba(88, 154, 210, 0.18)",
24537
- wash: "rgba(7, 24, 18, 0.8)",
24538
- tint: "rgba(162, 224, 103, 0.1)",
24539
- noiseOpacity: .22,
24261
+ base: "#0a0a0a",
24262
+ primary: "rgba(212, 175, 55, 0.28)",
24263
+ secondary: "rgba(184, 134, 11, 0.24)",
24264
+ accent: "rgba(205, 133, 63, 0.20)",
24265
+ wash: "rgba(10, 10, 10, 0.85)",
24266
+ tint: "rgba(212, 175, 55, 0.12)",
24267
+ noiseOpacity: .2,
24540
24268
  noiseBlend: "screen",
24541
- inlineCodeBg: "rgba(255, 255, 255, 0.08)",
24542
- inlineCodeText: "#dff3db"
24269
+ inlineCodeBg: "rgba(255, 215, 0, 0.10)",
24270
+ inlineCodeText: "#f0c040"
24543
24271
  } : {
24544
- base: "#f5fbfc",
24545
- primary: "rgba(214, 236, 240, 0.95)",
24546
- secondary: "rgba(189, 221, 34, 0.42)",
24547
- accent: "rgba(214, 236, 240, 0.72)",
24548
- wash: "rgba(255, 255, 255, 0.36)",
24549
- tint: "rgba(189, 221, 34, 0.12)",
24550
- noiseOpacity: .16,
24272
+ base: "#faf8f3",
24273
+ primary: "rgba(212, 175, 55, 0.20)",
24274
+ secondary: "rgba(184, 134, 11, 0.16)",
24275
+ accent: "rgba(205, 133, 63, 0.14)",
24276
+ wash: "rgba(250, 248, 243, 0.65)",
24277
+ tint: "rgba(212, 175, 55, 0.07)",
24278
+ noiseOpacity: .12,
24551
24279
  noiseBlend: "multiply",
24552
- inlineCodeBg: "rgba(15, 23, 42, 0.06)",
24553
- inlineCodeText: "#314329"
24280
+ inlineCodeBg: "rgba(184, 134, 11, 0.12)",
24281
+ inlineCodeText: "#8b6914"
24554
24282
  };
24555
24283
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(DefaultLayout, {
24556
24284
  ...props,
@@ -24644,7 +24372,7 @@ var Changelog = import_react.memo((props) => {
24644
24372
  })
24645
24373
  }),
24646
24374
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24647
- className: "relative px-20 pt-5 pb-0 w-full max-w-none prose prose-lg prose-invert from-surface to-surface",
24375
+ className: "relative px-16 pt-5 pb-0 w-full max-w-none prose prose-lg prose-invert from-surface to-surface",
24648
24376
  children: [
24649
24377
  props.data.Tip === true ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24650
24378
  className: "pt-32",
@@ -24693,7 +24421,7 @@ var Changelog = import_react.memo((props) => {
24693
24421
  }),
24694
24422
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "进入" }),
24695
24423
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(InlineCalloutCode, {
24696
- className: "text-[0.9em]",
24424
+ className: "text-[0.9em] font-mono",
24697
24425
  children: "Karin WebUI"
24698
24426
  }),
24699
24427
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "→" }),
@@ -24719,7 +24447,7 @@ var Changelog = import_react.memo((props) => {
24719
24447
  }),
24720
24448
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "Karin 根目录运行" }),
24721
24449
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(InlineCalloutCode, {
24722
- className: "text-[0.85em] whitespace-nowrap",
24450
+ className: "text-[0.85em] whitespace-nowrap font-mono",
24723
24451
  children: [
24724
24452
  "pnpm add karin-plugin-kkk@",
24725
24453
  props.data.remoteVersion,
@@ -24733,7 +24461,7 @@ var Changelog = import_react.memo((props) => {
24733
24461
  ]
24734
24462
  }) }) : null,
24735
24463
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
24736
- className: "changelog-content",
24464
+ className: "changelog-content px-6",
24737
24465
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Markdown, {
24738
24466
  rehypePlugins: [rehypeHighlight],
24739
24467
  components: {
@@ -24753,10 +24481,7 @@ var Changelog = import_react.memo((props) => {
24753
24481
  h3: ({ children, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("h3", {
24754
24482
  className: "flex items-baseline gap-3 text-[3.2em] font-light mb-2 text-foreground",
24755
24483
  ...props,
24756
- children: [children, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24757
- icon: "lucide:corner-down-left",
24758
- className: "w-[1em] h-[1em] text-foreground/10"
24759
- })]
24484
+ children: [children, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CornerDownLeft, { className: "w-[1em] h-[1em] text-foreground/10" })]
24760
24485
  }),
24761
24486
  h4: ({ children, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h4", {
24762
24487
  className: "text-[2.64em] font-semibold mb-5 text-foreground",
@@ -24779,7 +24504,7 @@ var Changelog = import_react.memo((props) => {
24779
24504
  children
24780
24505
  }),
24781
24506
  ul: ({ children, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", {
24782
- className: "pl-[5em] mb-[2em] list-disc text-foreground",
24507
+ className: "pl-[5em] mb-[4em] list-disc text-foreground",
24783
24508
  ...props,
24784
24509
  children
24785
24510
  }),
@@ -24811,12 +24536,15 @@ var Changelog = import_react.memo((props) => {
24811
24536
  ...props,
24812
24537
  children
24813
24538
  }),
24814
- a: ({ children, href, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", {
24815
- className: "inline-flex gap-3 items-baseline cursor-pointer text-foreground/50 hover:underline",
24816
- onClick: (e) => e.preventDefault(),
24817
- ...props,
24818
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children })
24819
- }),
24539
+ a: ({ children, href, ...props }) => {
24540
+ const isVersionLink = href?.includes("/compare/");
24541
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", {
24542
+ className: `inline-flex gap-3 items-baseline cursor-pointer font-medium hover:underline ${isVersionLink ? "text-success" : "text-foreground/50"}`,
24543
+ onClick: (e) => e.preventDefault(),
24544
+ ...props,
24545
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children })
24546
+ });
24547
+ },
24820
24548
  img: ({ ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
24821
24549
  className: "max-w-full h-auto rounded",
24822
24550
  ...props
@@ -24852,7 +24580,7 @@ var Changelog = import_react.memo((props) => {
24852
24580
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24853
24581
  className: "text-4xl text-foreground/60",
24854
24582
  children: [
24855
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "查看实际运行代码从" }),
24583
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "扫码查看实际运行代码从" }),
24856
24584
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
24857
24585
  className: "font-bold text-foreground/80",
24858
24586
  children: [" v", props.data.localVersion]
@@ -24862,7 +24590,7 @@ var Changelog = import_react.memo((props) => {
24862
24590
  className: "font-bold text-foreground/80",
24863
24591
  children: [" v", props.data.remoteVersion]
24864
24592
  }),
24865
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: " 的 Diff 差异" })
24593
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: " 的差异" })
24866
24594
  ]
24867
24595
  })]
24868
24596
  }),
@@ -25453,17 +25181,17 @@ var GlobalStatistics = (props) => {
25453
25181
  className: "text-4xl font-black text-foreground/90",
25454
25182
  children: group.groupName || `群组 ${group.groupId}`
25455
25183
  }),
25456
- index === 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
25457
- icon: "ri:trophy-fill",
25458
- className: "w-12 h-12 text-yellow-400 shrink-0"
25184
+ index === 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiTrophyFill, {
25185
+ size: 48,
25186
+ className: "text-yellow-400 shrink-0"
25459
25187
  }),
25460
- index === 1 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
25461
- icon: "ri:trophy-fill",
25462
- className: "w-12 h-12 text-gray-400 shrink-0"
25188
+ index === 1 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiTrophyFill, {
25189
+ size: 48,
25190
+ className: "text-gray-400 shrink-0"
25463
25191
  }),
25464
- index === 2 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
25465
- icon: "ri:trophy-fill",
25466
- className: "w-12 h-12 text-orange-400 shrink-0"
25192
+ index === 2 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiTrophyFill, {
25193
+ size: 48,
25194
+ className: "text-orange-400 shrink-0"
25467
25195
  })
25468
25196
  ]
25469
25197
  }),
@@ -25797,9 +25525,9 @@ var GroupStatistics = (props) => {
25797
25525
  })
25798
25526
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
25799
25527
  className: "absolute inset-0 flex items-center justify-center pointer-events-none",
25800
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
25801
- icon: "ri:pie-chart-2-fill",
25802
- className: "w-80 h-auto opacity-10"
25528
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiPieChart2Fill, {
25529
+ size: 320,
25530
+ className: "opacity-10"
25803
25531
  })
25804
25532
  })]
25805
25533
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -26258,56 +25986,56 @@ var getLogLevelTheme = (level, isDark) => {
26258
25986
  borderClass: "border-muted/20",
26259
25987
  textClass: "text-muted",
26260
25988
  iconClass: "text-muted",
26261
- levelClass: isDark ? "text-muted/10" : "text-muted/5",
26262
- dotClass: "bg-muted/20"
25989
+ levelClass: isDark ? "text-muted/10" : "text-muted/10",
25990
+ dotClass: "bg-muted/40"
26263
25991
  },
26264
25992
  "DEBU": {
26265
25993
  bgClass: isDark ? "bg-cyan-400/10" : "bg-cyan-500/5",
26266
25994
  borderClass: isDark ? "border-cyan-400/20" : "border-cyan-500/20",
26267
25995
  textClass: isDark ? "text-cyan-400" : "text-cyan-600",
26268
25996
  iconClass: isDark ? "text-cyan-400" : "text-cyan-600",
26269
- levelClass: isDark ? "text-cyan-400/10" : "text-cyan-600/5",
26270
- dotClass: isDark ? "bg-cyan-400/20" : "bg-cyan-500/20"
25997
+ levelClass: isDark ? "text-cyan-400/10" : "text-cyan-600/10",
25998
+ dotClass: isDark ? "bg-cyan-400/40" : "bg-cyan-500/40"
26271
25999
  },
26272
26000
  "MARK": {
26273
26001
  bgClass: isDark ? "bg-muted/10" : "bg-muted/5",
26274
26002
  borderClass: "border-muted/20",
26275
26003
  textClass: "text-muted",
26276
26004
  iconClass: "text-muted",
26277
- levelClass: isDark ? "text-muted/10" : "text-muted/5",
26278
- dotClass: "bg-muted/20"
26005
+ levelClass: isDark ? "text-muted/10" : "text-muted/10",
26006
+ dotClass: "bg-muted/40"
26279
26007
  },
26280
26008
  "INFO": {
26281
26009
  bgClass: "bg-success-soft",
26282
26010
  borderClass: "border-success/25",
26283
26011
  textClass: "text-success",
26284
26012
  iconClass: "text-success",
26285
- levelClass: isDark ? "text-success/10" : "text-success/5",
26286
- dotClass: "bg-success/25"
26013
+ levelClass: isDark ? "text-success/10" : "text-success/10",
26014
+ dotClass: "bg-success/40"
26287
26015
  },
26288
26016
  "WARN": {
26289
26017
  bgClass: "bg-warning-soft",
26290
26018
  borderClass: "border-warning/25",
26291
26019
  textClass: "text-warning",
26292
26020
  iconClass: "text-warning",
26293
- levelClass: isDark ? "text-warning/10" : "text-warning/5",
26294
- dotClass: "bg-warning/25"
26021
+ levelClass: isDark ? "text-warning/10" : "text-warning-soft",
26022
+ dotClass: "bg-warning/40"
26295
26023
  },
26296
26024
  "ERRO": {
26297
26025
  bgClass: "bg-danger-soft",
26298
26026
  borderClass: "border-danger/25",
26299
26027
  textClass: "text-danger",
26300
26028
  iconClass: "text-danger",
26301
- levelClass: isDark ? "text-danger/10" : "text-danger/5",
26302
- dotClass: "bg-danger/25"
26029
+ levelClass: isDark ? "text-danger/10" : "text-danger/10",
26030
+ dotClass: "bg-danger/40"
26303
26031
  },
26304
26032
  "FATA": {
26305
26033
  bgClass: isDark ? "bg-pink-400/10" : "bg-pink-500/5",
26306
26034
  borderClass: isDark ? "border-pink-400/25" : "border-pink-500/25",
26307
26035
  textClass: isDark ? "text-pink-400" : "text-pink-500",
26308
26036
  iconClass: isDark ? "text-pink-400" : "text-pink-500",
26309
- levelClass: isDark ? "text-pink-400/10" : "text-pink-500/5",
26310
- dotClass: isDark ? "bg-pink-400/25" : "bg-pink-500/25"
26037
+ levelClass: isDark ? "text-pink-400/10" : "text-pink-500/10",
26038
+ dotClass: isDark ? "bg-pink-400/40" : "bg-pink-500/40"
26311
26039
  }
26312
26040
  };
26313
26041
  return themeMap[level] || themeMap["TRAC"];
@@ -26328,9 +26056,9 @@ var getAdapterLogo = (adapterName) => {
26328
26056
  className: "h-20 w-auto",
26329
26057
  alt: adapterName
26330
26058
  });
26331
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26332
- icon: "lucide:puzzle",
26333
- className: "w-16 h-auto text-danger/80"
26059
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Puzzle, {
26060
+ size: 64,
26061
+ className: "text-danger/80"
26334
26062
  });
26335
26063
  };
26336
26064
  var SectionTitle = ({ icon, en, zh, color }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
@@ -26632,9 +26360,9 @@ var handlerError = (props) => {
26632
26360
  style: { backgroundColor: isDark ? "rgba(0,0,0,0.25)" : "rgba(255,255,255,0.6)" },
26633
26361
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
26634
26362
  className: "flex items-center gap-6 mb-10",
26635
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26636
- icon: "lucide:qr-code",
26637
- className: "w-10 h-10 text-warning"
26363
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(QrCode, {
26364
+ size: 40,
26365
+ className: "text-warning"
26638
26366
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
26639
26367
  className: "text-3xl font-semibold",
26640
26368
  style: { color: accentColor },
@@ -26675,9 +26403,8 @@ var handlerError = (props) => {
26675
26403
  data.triggerCommand && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
26676
26404
  className: "mb-14",
26677
26405
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SectionTitle, {
26678
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26679
- icon: "lucide:terminal",
26680
- className: "w-9 h-9",
26406
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Terminal, {
26407
+ size: 36,
26681
26408
  style: { color: mutedColor }
26682
26409
  }),
26683
26410
  en: "Trigger Command",
@@ -26696,10 +26423,9 @@ var handlerError = (props) => {
26696
26423
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
26697
26424
  className: "mb-14",
26698
26425
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SectionTitle, {
26699
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26700
- icon: "lucide:alert-circle",
26701
- className: "w-9 h-9",
26702
- style: { color: primaryColor }
26426
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CircleAlert, {
26427
+ size: 36,
26428
+ style: { color: mutedColor }
26703
26429
  }),
26704
26430
  en: "Stack Trace",
26705
26431
  zh: "错误堆栈",
@@ -26720,9 +26446,8 @@ var handlerError = (props) => {
26720
26446
  data.logs && data.logs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
26721
26447
  className: "mb-14",
26722
26448
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SectionTitle, {
26723
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26724
- icon: "lucide:file-text",
26725
- className: "w-9 h-9",
26449
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FileText, {
26450
+ size: 36,
26726
26451
  style: { color: mutedColor }
26727
26452
  }),
26728
26453
  en: "Execution Logs",
@@ -26738,26 +26463,25 @@ var handlerError = (props) => {
26738
26463
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("legend", {
26739
26464
  className: "flex items-center gap-2 ml-4",
26740
26465
  children: [
26741
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: `w-3 h-3 rounded-full -mr-1.5 ${theme.dotClass}` }),
26466
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: `w-2 h-6 rounded-full -mr-1.5 ${theme.dotClass}` }),
26742
26467
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
26743
26468
  className: "flex items-center gap-2 px-3",
26744
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26745
- icon: "lucide:clock",
26746
- width: 18,
26469
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, {
26470
+ size: 18,
26747
26471
  className: theme.iconClass
26748
26472
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
26749
26473
  className: `text-xl font-mono font-medium ${theme.textClass}`,
26750
26474
  children: log.timestamp
26751
26475
  })]
26752
26476
  }),
26753
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: `w-3 h-3 rounded-full -ml-1.5 ${theme.dotClass}` })
26477
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: `w-2 h-6 rounded-full -ml-1.5 ${theme.dotClass}` })
26754
26478
  ]
26755
26479
  }),
26756
26480
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
26757
26481
  className: "absolute bottom-2 right-6 pointer-events-none",
26758
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
26759
- className: `text-[56px] font-black uppercase leading-none tracking-tight ${theme.levelClass}`,
26760
- children: log.level
26482
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
26483
+ className: `text-6xl font-black uppercase leading-none tracking-tight ${theme.levelClass}`,
26484
+ children: [log.level, "」"]
26761
26485
  })
26762
26486
  }),
26763
26487
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -26960,21 +26684,16 @@ var handlerError = (props) => {
26960
26684
  style: { color: mutedColor },
26961
26685
  children: [data.buildTime && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
26962
26686
  className: "flex items-center gap-3",
26963
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26964
- icon: "material-symbols:schedule-outline",
26965
- className: "w-6 h-6"
26966
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
26687
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MdSchedule, { size: 24 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
26967
26688
  "Built Time: ",
26968
26689
  data.buildTime,
26969
- " 距离 ",
26970
- formatDistanceToNow(parse(data.buildTime, "yyyy年MM月dd日 HH:mm", /* @__PURE__ */ new Date()), { locale: zhCN })
26690
+ " ",
26691
+ formatDistanceToNow(parse(data.buildTime, "yyyy年MM月dd日 HH:mm", /* @__PURE__ */ new Date()), { locale: zhCN }),
26692
+ "前"
26971
26693
  ] })]
26972
26694
  }), data.commitHash && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
26973
26695
  className: "flex items-center gap-3",
26974
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26975
- icon: "lucide:git-branch",
26976
- className: "w-6 h-6"
26977
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["Commit Hash: ", data.commitHash] })]
26696
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(GitBranch, { size: 24 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["Commit Hash: ", data.commitHash] })]
26978
26697
  })]
26979
26698
  }),
26980
26699
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
@@ -27064,15 +26783,158 @@ var handlerError = (props) => {
27064
26783
  };
27065
26784
  handlerError.displayName = "handlerError";
27066
26785
  //#endregion
26786
+ //#region ../template/src/components/common/iconRegistry.ts
26787
+ /**
26788
+ * Maps old iconify icon name strings to their replacement React components.
26789
+ * Used by Help.tsx for dynamic icon resolution from plugin config data.
26790
+ */
26791
+ var iconRegistry = {
26792
+ "lucide:alert-circle": CircleAlert,
26793
+ "lucide:alert-triangle": TriangleAlert,
26794
+ "lucide:bookmark": Bookmark,
26795
+ "lucide:bot": Bot,
26796
+ "lucide:box": Box,
26797
+ "lucide:calendar": Calendar,
26798
+ "lucide:camera": Camera,
26799
+ "lucide:check": Check,
26800
+ "lucide:check-circle": CircleCheckBig,
26801
+ "lucide:check-circle-2": CircleCheck,
26802
+ "lucide:circle-ellipsis": CircleEllipsis,
26803
+ "lucide:circle-fading-arrow-up": CircleFadingArrowUp,
26804
+ "lucide:clock": Clock,
26805
+ "lucide:code": Code,
26806
+ "lucide:copy": Copy,
26807
+ "lucide:corner-down-left": CornerDownLeft,
26808
+ "lucide:cpu": Cpu,
26809
+ "lucide:crown": Crown,
26810
+ "lucide:download": Download,
26811
+ "lucide:edit": SquarePen,
26812
+ "lucide:external-link": ExternalLink,
26813
+ "lucide:eye": Eye,
26814
+ "lucide:eye-off": EyeOff,
26815
+ "lucide:file-text": FileText,
26816
+ "lucide:file-video": FilePlay,
26817
+ "lucide:git-branch": GitBranch,
26818
+ "lucide:hash": Hash,
26819
+ "lucide:heart": Heart,
26820
+ "lucide:info": Info,
26821
+ "lucide:layout-template": LayoutTemplate,
26822
+ "lucide:loader-2": LoaderCircle,
26823
+ "lucide:map-pin": MapPin,
26824
+ "lucide:maximize": Maximize,
26825
+ "lucide:message-circle": MessageCircle,
26826
+ "lucide:monitor": Monitor,
26827
+ "lucide:moon": Moon,
26828
+ "lucide:music": Music,
26829
+ "lucide:palette": Palette,
26830
+ "lucide:pencil": Pencil,
26831
+ "lucide:play": Play,
26832
+ "lucide:plus": Plus,
26833
+ "lucide:puzzle": Puzzle,
26834
+ "lucide:qr-code": QrCode,
26835
+ "lucide:quote": Quote,
26836
+ "lucide:refresh-cw": RefreshCw,
26837
+ "lucide:rotate-ccw": RotateCcw,
26838
+ "lucide:save": Save,
26839
+ "lucide:scan-line": ScanLine,
26840
+ "lucide:search": Search,
26841
+ "lucide:settings-2": Settings2,
26842
+ "lucide:share-2": Share2,
26843
+ "lucide:shield": Shield,
26844
+ "lucide:shield-check": ShieldCheck,
26845
+ "lucide:shopping-bag": ShoppingBag,
26846
+ "lucide:smartphone": Smartphone,
26847
+ "lucide:sparkles": Sparkles,
26848
+ "lucide:square": Square,
26849
+ "lucide:star": Star,
26850
+ "lucide:sun": Sun,
26851
+ "lucide:terminal": Terminal,
26852
+ "lucide:trash-2": Trash2,
26853
+ "lucide:upload": Upload,
26854
+ "lucide:user": User,
26855
+ "lucide:user-plus": UserPlus,
26856
+ "lucide:users": Users,
26857
+ "lucide:wand-2": WandSparkles,
26858
+ "lucide:x": X,
26859
+ "lucide:zap": Zap,
26860
+ "mingcute:article-line": FileText,
26861
+ "mingcute:bell-ringing-fill": BellRing,
26862
+ "mingcute:bookmark-fill": Bookmark,
26863
+ "mingcute:chart-bar-fill": ChartColumn,
26864
+ "mingcute:comment-2-fill": MessageCircle,
26865
+ "mingcute:eye-fill": Eye,
26866
+ "mingcute:file-text-line": FileText,
26867
+ "mingcute:game-1-fill": Gamepad2,
26868
+ "mingcute:gift-fill": Gift,
26869
+ "mingcute:group-fill": UsersRound,
26870
+ "mingcute:group-line": UsersRound,
26871
+ "mingcute:hashtag-fill": Hash,
26872
+ "mingcute:hashtag-line": Hash,
26873
+ "mingcute:heart-line": Heart,
26874
+ "mingcute:live-line": Radio,
26875
+ "mingcute:pic-line": Image$1,
26876
+ "mingcute:radio-fill": Radio,
26877
+ "mingcute:share-forward-line": Share2,
26878
+ "mingcute:time-fill": Clock,
26879
+ "mingcute:user-add-line": UserPlus,
26880
+ "mingcute:video-line": Video,
26881
+ "ri:arrow-right-fill": RiArrowRightFill,
26882
+ "ri:group-line": RiGroupLine,
26883
+ "ri:hashtag": RiHashtag,
26884
+ "ri:heart-3-fill": RiHeart3Fill,
26885
+ "ri:heart-3-line": RiHeart3Line,
26886
+ "ri:heart-line": RiHeartLine,
26887
+ "ri:live-line": RiLiveLine,
26888
+ "ri:message-3-fill": RiMessage3Fill,
26889
+ "ri:pie-chart-2-fill": RiPieChart2Fill,
26890
+ "ri:share-forward-fill": RiShareForwardFill,
26891
+ "ri:star-fill": RiStarFill,
26892
+ "ri:star-line": RiStarLine,
26893
+ "ri:thumb-up-fill": RiThumbUpFill,
26894
+ "ri:tiktok-fill": RiTiktokFill,
26895
+ "ri:trophy-fill": RiTrophyFill,
26896
+ "ri:user-follow-line": RiUserFollowLine,
26897
+ "ri:verified-badge-fill": RiVerifiedBadgeFill,
26898
+ "ri:video-line": RiVideoLine,
26899
+ "material-symbols:fit-screen": MdFitScreen,
26900
+ "material-symbols:info-outline": MdInfoOutline,
26901
+ "material-symbols:lightbulb-outline": MdLightbulbOutline,
26902
+ "material-symbols:location-on": MdLocationOn,
26903
+ "material-symbols:schedule-outline": MdSchedule,
26904
+ "ant-design:heart-filled": AiFillHeart,
26905
+ "ant-design:pushpin-filled": AiFillPushpin,
26906
+ "ant-design:star-filled": AiFillStar,
26907
+ "ant-design:video-camera-outlined": AiOutlineVideoCamera,
26908
+ "fa6-solid:music": FaMusic,
26909
+ "fa6-solid:comment-dots": FaCommentDots,
26910
+ "fa6-solid:user-group": FaUserGroup,
26911
+ "fa6-brands:tiktok": FaTiktok,
26912
+ "simple-icons:github": SiGithub,
26913
+ "simple-icons:bilibili": SiBilibili,
26914
+ "simple-icons:openai": Sparkles,
26915
+ "simple-icons:anthropic": SiAnthropic,
26916
+ "tabler:message-circle": MessageCircle,
26917
+ "tabler:scan": ScanLine,
26918
+ "ph:play-fill": n,
26919
+ "ph:question-fill": m,
26920
+ "solar:calendar-linear": Calendar,
26921
+ "heroicons-outline:menu-alt-2": Menu,
26922
+ "bi:image": BiImage
26923
+ };
26924
+ var DEFAULT_FALLBACK_ICON = CircleQuestionMark;
26925
+ function resolveIcon(iconName) {
26926
+ return iconRegistry[iconName] ?? DEFAULT_FALLBACK_ICON;
26927
+ }
26928
+ //#endregion
27067
26929
  //#region ../template/src/components/platforms/other/Help.tsx
27068
26930
  /**
27069
- * 获取图标名称,兜底为默认图标
26931
+ * 获取图标组件,兜底为默认图标
27070
26932
  * @param icon - 图标:可以是字符串或带颜色的对象
27071
- * @returns 对应的 iconify 图标名称
26933
+ * @returns React 图标组件类型
27072
26934
  */
27073
26935
  var getIconForItem = (icon) => {
27074
- if (!icon) return "ph:question-fill";
27075
- return typeof icon === "string" ? icon : icon.name;
26936
+ if (!icon) return resolveIcon("ph:question-fill");
26937
+ return resolveIcon(typeof icon === "string" ? icon : icon.name);
27076
26938
  };
27077
26939
  /**
27078
26940
  * 菜单项组件
@@ -27083,8 +26945,7 @@ var MenuItemComponent = ({ item, themeColor }) => {
27083
26945
  className: "flex flex-row gap-8 py-2 relative",
27084
26946
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
27085
26947
  className: "pt-2 shrink-0 relative",
27086
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
27087
- icon: getIconForItem(item.icon),
26948
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(getIconForItem(item.icon), {
27088
26949
  className: "w-16 h-16 relative z-10 text-foreground",
27089
26950
  style: { color: typeof item.icon === "object" && item.icon?.color ? item.icon.color : themeColor }
27090
26951
  })
@@ -27426,8 +27287,7 @@ var QrLogin = import_react.memo((props) => {
27426
27287
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(GlowImage, {
27427
27288
  glowStrength: .8,
27428
27289
  blurRadius: 25,
27429
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
27430
- icon: "lucide:smartphone",
27290
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Smartphone, {
27431
27291
  className: "w-20 h-20",
27432
27292
  style: { color: accentColor }
27433
27293
  })
@@ -27462,8 +27322,7 @@ var QrLogin = import_react.memo((props) => {
27462
27322
  background: isDark ? "linear-gradient(135deg, #f87171 0%, #dc2626 100%)" : "linear-gradient(135deg, #ef4444 0%, #dc2626 100%)",
27463
27323
  boxShadow: isDark ? "0 0 40px rgba(248,113,113,0.6)" : "0 0 40px rgba(239,68,68,0.5)"
27464
27324
  },
27465
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
27466
- icon: "lucide:alert-triangle",
27325
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TriangleAlert, {
27467
27326
  className: "w-16 h-16 text-white",
27468
27327
  strokeWidth: 3
27469
27328
  })
@@ -27559,8 +27418,7 @@ var QrLogin = import_react.memo((props) => {
27559
27418
  })
27560
27419
  }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
27561
27420
  className: "flex flex-col gap-8 justify-center items-center w-200 h-200",
27562
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
27563
- icon: "lucide:qr-code",
27421
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(QrCode, {
27564
27422
  className: "w-40 h-40",
27565
27423
  style: { color: mutedColor }
27566
27424
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -27577,8 +27435,7 @@ var QrLogin = import_react.memo((props) => {
27577
27435
  }),
27578
27436
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
27579
27437
  className: "flex items-center gap-4",
27580
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
27581
- icon: "lucide:smartphone",
27438
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Smartphone, {
27582
27439
  className: "w-12 h-12",
27583
27440
  style: { color: mutedColor }
27584
27441
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -27943,7 +27800,7 @@ var VersionWarning = (props) => {
27943
27800
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
27944
27801
  className: "flex-1 flex flex-col justify-center",
27945
27802
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
27946
- className: "rounded-3xl p-12",
27803
+ className: "rounded-7xl p-12",
27947
27804
  style: { backgroundColor: isDark ? "rgba(0,0,0,0.2)" : "rgba(255,255,255,0.5)" },
27948
27805
  children: [
27949
27806
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
@@ -27992,7 +27849,7 @@ var VersionWarning = (props) => {
27992
27849
  children: "需要/建议的版本"
27993
27850
  }),
27994
27851
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Chip, {
27995
- className: "text-lg font-bold",
27852
+ className: "text-xl font-bold rounded-full px-4 py-2",
27996
27853
  style: {
27997
27854
  backgroundColor: accentColor,
27998
27855
  color: bgColor
@@ -28020,7 +27877,7 @@ var VersionWarning = (props) => {
28020
27877
  className: "flex items-center space-x-4 mb-6",
28021
27878
  children: [
28022
27879
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
28023
- className: "flex items-center justify-center w-10 h-10 rounded-lg",
27880
+ className: "flex items-center justify-center w-10 h-10 rounded-xl",
28024
27881
  style: { backgroundColor: isDark ? "rgba(251,146,60,0.15)" : "rgba(194,65,12,0.1)" },
28025
27882
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
28026
27883
  className: "text-[28px] font-black",
@@ -28054,7 +27911,7 @@ var VersionWarning = (props) => {
28054
27911
  children: "Web 控制台更新"
28055
27912
  }),
28056
27913
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Chip, {
28057
- className: "text-[20px] font-semibold px-4",
27914
+ className: "text-2xl font-semibold px-5 py-3 rounded-full",
28058
27915
  style: {
28059
27916
  backgroundColor: isDark ? "rgba(251,146,60,0.2)" : "rgba(194,65,12,0.15)",
28060
27917
  color: accentColor
@@ -28112,7 +27969,7 @@ var VersionWarning = (props) => {
28112
27969
  className: "flex items-center space-x-4 mb-6",
28113
27970
  children: [
28114
27971
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
28115
- className: "flex items-center justify-center w-10 h-10 rounded-lg",
27972
+ className: "flex items-center justify-center w-10 h-10 rounded-xl",
28116
27973
  style: { backgroundColor: isDark ? "rgba(251,146,60,0.15)" : "rgba(194,65,12,0.1)" },
28117
27974
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
28118
27975
  className: "text-[28px] font-black",
@@ -28120,8 +27977,7 @@ var VersionWarning = (props) => {
28120
27977
  children: "2"
28121
27978
  })
28122
27979
  }),
28123
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28124
- icon: "lucide:puzzle",
27980
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Puzzle, {
28125
27981
  className: clsx("w-10 h-auto"),
28126
27982
  style: { color: mutedColor }
28127
27983
  }),
@@ -28131,7 +27987,7 @@ var VersionWarning = (props) => {
28131
27987
  children: "使用 basic 插件命令更新"
28132
27988
  }),
28133
27989
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Chip, {
28134
- className: "text-[20px] font-semibold px-4",
27990
+ className: "text-2xl font-semibold px-5 py-3 rounded-full",
28135
27991
  style: {
28136
27992
  backgroundColor: isDark ? "rgba(251,146,60,0.2)" : "rgba(194,65,12,0.15)",
28137
27993
  color: accentColor
@@ -28192,7 +28048,7 @@ var VersionWarning = (props) => {
28192
28048
  className: "flex items-center space-x-4 mb-6",
28193
28049
  children: [
28194
28050
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
28195
- className: "flex items-center justify-center w-10 h-10 rounded-lg",
28051
+ className: "flex items-center justify-center w-10 h-10 rounded-xl",
28196
28052
  style: { backgroundColor: isDark ? "rgba(251,146,60,0.15)" : "rgba(194,65,12,0.1)" },
28197
28053
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
28198
28054
  className: "text-[28px] font-black",
@@ -28253,7 +28109,7 @@ var VersionWarning = (props) => {
28253
28109
  style: { backgroundColor: isDark ? "rgba(251,146,60,0.2)" : "rgba(180,83,9,0.15)" }
28254
28110
  }),
28255
28111
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
28256
- className: "rounded-2xl p-6 flex items-start space-x-5",
28112
+ className: "rounded-4xl p-6 flex items-start space-x-5",
28257
28113
  style: { backgroundColor: isDark ? "rgba(251,146,60,0.08)" : "rgba(194,65,12,0.08)" },
28258
28114
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", {
28259
28115
  className: "w-10 h-10 mt-1 shrink-0",
@@ -28405,8 +28261,7 @@ var QRCodeSection = ({ qrCodeDataUrl }) => {
28405
28261
  src: qrCodeDataUrl,
28406
28262
  alt: "二维码",
28407
28263
  className: "object-contain"
28408
- }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28409
- icon: "lucide:qr-code",
28264
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(QrCode, {
28410
28265
  width: 200,
28411
28266
  className: "text-muted"
28412
28267
  })
@@ -28544,9 +28399,8 @@ var CommentItemComponent = ({ comment, isLast = false }) => {
28544
28399
  className: "flex items-center space-x-6",
28545
28400
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
28546
28401
  className: "flex items-center space-x-2 transition-colors cursor-pointer",
28547
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28548
- icon: "lucide:heart",
28549
- width: 60,
28402
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
28403
+ size: 60,
28550
28404
  className: comment.liked ? "text-red-500 fill-current" : "text-muted"
28551
28405
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
28552
28406
  className: "text-[50px] select-text",
@@ -28554,9 +28408,8 @@ var CommentItemComponent = ({ comment, isLast = false }) => {
28554
28408
  })]
28555
28409
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
28556
28410
  className: "flex items-center transition-colors cursor-pointer",
28557
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28558
- icon: "lucide:message-circle",
28559
- width: 60,
28411
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, {
28412
+ size: 60,
28560
28413
  className: "stroke-current text-muted"
28561
28414
  })
28562
28415
  })]
@@ -28606,9 +28459,8 @@ var CommentItemComponent = ({ comment, isLast = false }) => {
28606
28459
  })]
28607
28460
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
28608
28461
  className: "flex items-center space-x-2",
28609
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28610
- icon: "lucide:heart",
28611
- width: 40,
28462
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
28463
+ size: 40,
28612
28464
  className: subComment.liked ? "text-red-500 fill-current" : "text-muted"
28613
28465
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
28614
28466
  className: "text-[35px]",
@@ -28719,37 +28571,25 @@ var XiaohongshuNoteInfo = import_react.memo((props) => {
28719
28571
  /** 统计数据配置 - 小红书特色配色 */
28720
28572
  const statsData = (0, import_react.useMemo)(() => [
28721
28573
  {
28722
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28723
- icon: "lucide:heart",
28724
- width: 48
28725
- }),
28574
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { size: 48 }),
28726
28575
  value: props.data.statistics.liked_count,
28727
28576
  label: "点赞",
28728
28577
  iconColor: "text-red-500"
28729
28578
  },
28730
28579
  {
28731
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28732
- icon: "lucide:message-circle",
28733
- width: 48
28734
- }),
28580
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { size: 48 }),
28735
28581
  value: props.data.statistics.comment_count,
28736
28582
  label: "评论",
28737
28583
  iconColor: "text-blue-500"
28738
28584
  },
28739
28585
  {
28740
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28741
- icon: "lucide:star",
28742
- width: 48
28743
- }),
28586
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Star, { size: 48 }),
28744
28587
  value: props.data.statistics.collected_count,
28745
28588
  label: "收藏",
28746
28589
  iconColor: "text-yellow-500"
28747
28590
  },
28748
28591
  {
28749
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28750
- icon: "lucide:share-2",
28751
- width: 48
28752
- }),
28592
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { size: 48 }),
28753
28593
  value: props.data.statistics.share_count,
28754
28594
  label: "分享",
28755
28595
  iconColor: "text-green-500"
@@ -28783,16 +28623,10 @@ var XiaohongshuNoteInfo = import_react.memo((props) => {
28783
28623
  className: "flex gap-8 items-center text-5xl text-muted",
28784
28624
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
28785
28625
  className: "flex gap-2 items-center",
28786
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28787
- icon: "lucide:calendar",
28788
- width: 32
28789
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formattedDate })]
28626
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Calendar, { size: 32 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formattedDate })]
28790
28627
  }), props.data.ip_location && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
28791
28628
  className: "flex gap-2 items-center",
28792
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28793
- icon: "lucide:map-pin",
28794
- width: 32
28795
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: props.data.ip_location })]
28629
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MapPin, { size: 32 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: props.data.ip_location })]
28796
28630
  })]
28797
28631
  })
28798
28632
  ]
@@ -28855,10 +28689,7 @@ var XiaohongshuNoteInfo = import_react.memo((props) => {
28855
28689
  className: "text-white bg-[#FF2442]",
28856
28690
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
28857
28691
  className: "flex items-center",
28858
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28859
- icon: "lucide:external-link",
28860
- className: "mr-1 w-4 h-4"
28861
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "查看原文" })]
28692
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ExternalLink, { className: "mr-1 w-4 h-4" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "查看原文" })]
28862
28693
  })
28863
28694
  })
28864
28695
  })]
@@ -29733,14 +29564,6 @@ var DevDataManager = class {
29733
29564
  };
29734
29565
  //#endregion
29735
29566
  //#region ../template/src/main.ts
29736
- addCollection(lucide_default);
29737
- addCollection(ri_default);
29738
- addCollection(ant_design_default);
29739
- addCollection(tabler_default);
29740
- addCollection(simple_icons_default);
29741
- addCollection(material_symbols_default);
29742
- addCollection(mingcute_default);
29743
- addCollection(solar_default);
29744
29567
  var isPlainObject = (value) => {
29745
29568
  return typeof value === "object" && value !== null && !Array.isArray(value);
29746
29569
  };
@@ -36710,11 +36533,6 @@ var Bilibili = class extends Base {
36710
36533
  dynamic_id: iddata.dynamic_id,
36711
36534
  typeMode: "strict"
36712
36535
  });
36713
- const dynamicInfoCard = await this.amagi.bilibili.fetcher.fetchDynamicCard({
36714
- dynamic_id: dynamicInfo.data.data.item.id_str,
36715
- typeMode: "strict"
36716
- });
36717
- const dynamicCARD = JSON.parse(dynamicInfoCard.data.data.card.card);
36718
36536
  const userProfileData = await this.amagi.bilibili.fetcher.fetchUserCard({
36719
36537
  host_mid: dynamicInfo.data.data.item.modules.module_author.mid,
36720
36538
  typeMode: "strict"
@@ -36822,7 +36640,6 @@ var Bilibili = class extends Base {
36822
36640
  for (const item of temp) await Common.removeFile(item.filepath, true);
36823
36641
  }
36824
36642
  }
36825
- const dynamicCARD = JSON.parse(dynamicInfoCard.data.data.card.card);
36826
36643
  if ("topic" in dynamicInfo.data.data.item.modules.module_dynamic && dynamicInfo.data.data.item.modules.module_dynamic.topic !== null) {
36827
36644
  const name = dynamicInfo.data.data.item.modules.module_dynamic.topic.name;
36828
36645
  dynamicInfo.data.data.item.modules.module_dynamic.major.opus.summary.rich_text_nodes.unshift({
@@ -36834,7 +36651,7 @@ var Bilibili = class extends Base {
36834
36651
  dynamicInfo.data.data.item.modules.module_dynamic.major.opus.summary.text = `${name}\n` + dynamicInfo.data.data.item.modules.module_dynamic.major.opus.summary.text;
36835
36652
  }
36836
36653
  this.e.reply(await Render(this.e, "bilibili/dynamic/DYNAMIC_TYPE_DRAW", {
36837
- image_url: dynamicCARD.item.pictures && cover(dynamicCARD.item.pictures),
36654
+ image_url: Object.values(dynamicInfo.data.data.item.modules.module_dynamic.major.opus.pics).filter((item) => typeof item?.url === "string").map((item) => ({ image_src: item.url })),
36838
36655
  title: dynamicInfo.data.data.item.modules.module_dynamic.major.opus.title ?? void 0,
36839
36656
  text: dynamicInfo.data.data.item.modules.module_dynamic.major ? buildBilibiliDynamicRichText(dynamicInfo.data.data.item.modules.module_dynamic.major.opus?.summary?.text ?? "", dynamicInfo.data.data.item.modules.module_dynamic.major.opus?.summary?.rich_text_nodes ?? []) : null,
36840
36657
  dianzan: Count(dynamicInfo.data.data.item.modules.module_stat.like.count),
@@ -36924,12 +36741,7 @@ var Bilibili = class extends Base {
36924
36741
  frame: dynamicInfo.data.data.item.orig.modules.module_author.pendant.image
36925
36742
  };
36926
36743
  break;
36927
- case DynamicType.DRAW: {
36928
- const dynamicCARD2 = await this.amagi.bilibili.fetcher.fetchDynamicCard({
36929
- dynamic_id: dynamicInfo.data.data.item.orig.id_str,
36930
- typeMode: "strict"
36931
- });
36932
- const cardData = JSON.parse(dynamicCARD2.data.data.card.card);
36744
+ case DynamicType.DRAW:
36933
36745
  if ("topic" in dynamicInfo.data.data.item.orig.modules.module_dynamic && dynamicInfo.data.data.item.orig.modules.module_dynamic.topic !== null) {
36934
36746
  const name = dynamicInfo.data.data.item.orig.modules.module_dynamic.topic.name;
36935
36747
  const origSummary = dynamicInfo.data.data.item.orig.modules.module_dynamic.major?.opus?.summary;
@@ -36939,7 +36751,9 @@ var Bilibili = class extends Base {
36939
36751
  orig_text: name,
36940
36752
  jump_url: "",
36941
36753
  text: name,
36942
- type: "topic"
36754
+ type: "topic",
36755
+ rid: "",
36756
+ style: { "1114514": "1919810" }
36943
36757
  });
36944
36758
  origSummary.text = `${name}\n` + (origSummary.text || "");
36945
36759
  }
@@ -36950,12 +36764,11 @@ var Bilibili = class extends Base {
36950
36764
  create_time: TimeFormatter.toDateTime(dynamicInfo.data.data.item.orig.modules.module_author.pub_ts),
36951
36765
  avatar_url: dynamicInfo.data.data.item.orig.modules.module_author.face,
36952
36766
  text: buildBilibiliDynamicRichText(dynamicInfo.data.data.item.orig.modules.module_dynamic.major.opus.summary.text, dynamicInfo.data.data.item.orig.modules.module_dynamic.major.opus.summary.rich_text_nodes),
36953
- image_url: cardData.item.pictures && cover(cardData.item.pictures),
36767
+ image_url: Object.values(dynamicInfo.data.data.item.orig.modules.module_dynamic.major.opus.pics).filter((item) => typeof item?.url === "string").map((item) => ({ image_src: item.url })),
36954
36768
  decoration_card: generateDecorationCard(dynamicInfo.data.data.item.orig.modules.module_author.decoration_card),
36955
36769
  frame: dynamicInfo.data.data.item.orig.modules.module_author.pendant.image
36956
36770
  };
36957
36771
  break;
36958
- }
36959
36772
  case DynamicType.WORD:
36960
36773
  if ("topic" in dynamicInfo.data.data.item.orig.modules.module_dynamic && dynamicInfo.data.data.item.orig.modules.module_dynamic.topic !== null) {
36961
36774
  const name = dynamicInfo.data.data.item.orig.modules.module_dynamic.topic.name;
@@ -36996,7 +36809,6 @@ var Bilibili = class extends Base {
36996
36809
  };
36997
36810
  break;
36998
36811
  }
36999
- case DynamicType.FORWARD:
37000
36812
  default:
37001
36813
  logger.warn(`UP主:${userProfileData.data.data.card.name}的${logger.green("转发动态")}转发的原动态类型为「${logger.yellow(dynamicInfo.data.item.orig.type)}」暂未支持解析`);
37002
36814
  break;
@@ -37031,7 +36843,6 @@ var Bilibili = class extends Base {
37031
36843
  bvid,
37032
36844
  typeMode: "strict"
37033
36845
  });
37034
- const dycrad = dynamicInfoCard.data.data.card && dynamicInfoCard.data.data.card.card && JSON.parse(dynamicInfoCard.data.data.card.card);
37035
36846
  let staff = void 0;
37036
36847
  if (INFODATA.data.data.staff && Array.isArray(INFODATA.data.data.staff)) {
37037
36848
  const currentMid = dynamicInfo.data.data.item.modules.module_author.mid;
@@ -37055,8 +36866,8 @@ var Bilibili = class extends Base {
37055
36866
  dianzan: Count(INFODATA.data.data.stat.like),
37056
36867
  pinglun: Count(INFODATA.data.data.stat.reply),
37057
36868
  share: Count(INFODATA.data.data.stat.share),
37058
- view: Count(dycrad.stat.view),
37059
- coin: Count(dycrad.stat.coin),
36869
+ view: Count(INFODATA.data.data.stat.view),
36870
+ coin: Count(INFODATA.data.data.stat.coin),
37060
36871
  duration_text: dynamicInfo.data.data.item.modules.module_dynamic.major.archive.duration_text,
37061
36872
  create_time: TimeFormatter.toDateTime(INFODATA.data.data.ctime),
37062
36873
  avatar_url: userProfileData.data.data.card.face,
@@ -37081,17 +36892,18 @@ var Bilibili = class extends Base {
37081
36892
  host_mid: dynamicInfo.data.data.item.modules.module_author.mid,
37082
36893
  typeMode: "strict"
37083
36894
  });
36895
+ const liveInfo = JSON.parse(dynamicInfo.data.data.item.modules.module_dynamic.major.live_rcmd.content);
37084
36896
  img$1 = await Render(this.e, "bilibili/dynamic/DYNAMIC_TYPE_LIVE_RCMD", {
37085
- image_url: dynamicCARD.live_play_info.cover,
37086
- text: buildBilibiliDynamicRichText(dynamicCARD.live_play_info.title, []),
37087
- liveinf: br$1(`${dynamicCARD.live_play_info.area_name} | 房间号: ${dynamicCARD.live_play_info.room_id}`),
36897
+ image_url: liveInfo.live_play_info.cover,
36898
+ text: buildBilibiliDynamicRichText(liveInfo.live_play_info.title, []),
36899
+ liveinf: br$1(`${liveInfo.live_play_info.area_name} | 房间号: ${liveInfo.live_play_info.room_id}`),
37088
36900
  usernameMeta: getUsernameMetadata(userINFO.data.data.card),
37089
36901
  avatar_url: userINFO.data.data.card.face,
37090
36902
  frame: dynamicInfo.data.data.item.modules.module_author.pendant.image,
37091
36903
  fans: Count(userINFO.data.data.follower),
37092
36904
  create_time: TimeFormatter.toDateTime(dynamicInfo.data.data.item.modules.module_author.pub_ts),
37093
36905
  now_time: TimeFormatter.now(),
37094
- share_url: "https://live.bilibili.com/" + dynamicCARD.live_play_info.room_id,
36906
+ share_url: "https://live.bilibili.com/" + liveInfo.live_play_info.room_id,
37095
36907
  dynamicTYPE: "直播动态"
37096
36908
  });
37097
36909
  this.e.reply(img$1);
@@ -37168,7 +36980,7 @@ var Bilibili = class extends Base {
37168
36980
  if (Config.bilibili.sendContent.some((content) => content === "comment") && dynamicInfo.data.data.item.type !== DynamicType.LIVE_RCMD) {
37169
36981
  const commentsData = await softFetch(() => this.amagi.bilibili.fetcher.fetchComments({
37170
36982
  type: mapping_table(dynamicInfo.data.data.item.type),
37171
- oid: oid(dynamicInfo.data, dynamicInfoCard.data),
36983
+ oid: oid(dynamicInfo.data.data.item.type, dynamicInfo.data),
37172
36984
  number: Config.bilibili.numcomment,
37173
36985
  typeMode: "strict"
37174
36986
  }), [SOFT_ERROR_CODES.BILIBILI_COMMENTS_DISABLED]);
@@ -37436,19 +37248,6 @@ var qnd = {
37436
37248
  127: "超高清 8K"
37437
37249
  };
37438
37250
  /**
37439
- * 将给定的图片源数组转换为一个新的对象数组,每个对象包含单个图片源
37440
- * @param pic 一个包含图片源字符串的数组
37441
- * @returns 返回一个对象数组,每个对象包含单个图片源
37442
- */
37443
- var cover = (pic) => {
37444
- const imgArray = [];
37445
- for (const i of pic) {
37446
- const obj = { image_src: i.img_src };
37447
- imgArray.push(obj);
37448
- }
37449
- return imgArray;
37450
- };
37451
- /**
37452
37251
  * 生成装饰卡片数据
37453
37252
  * @param decorate 装饰对象,包含卡片的URL和颜色信息
37454
37253
  * @returns 返回装饰卡片数据对象或undefined
@@ -37558,11 +37357,17 @@ var mapping_table = (type) => {
37558
37357
  for (const key in Array) if (Array[key].includes(type)) return parseInt(key, 10);
37559
37358
  return 1;
37560
37359
  };
37561
- var oid = (dynamicINFO, dynamicInfoCard) => {
37562
- switch (dynamicINFO.data.item.type) {
37563
- case "DYNAMIC_TYPE_WORD":
37564
- case "DYNAMIC_TYPE_FORWARD": return dynamicINFO.data.item.id_str;
37565
- default: return dynamicInfoCard.data.card.desc.rid.toString();
37360
+ /**
37361
+ * 根据动态类型获取对应的oid(对象ID),用于后续评论接口调用
37362
+ * @param dynamicType 动态类型
37363
+ * @param dynamicData 动态数据
37364
+ * @returns
37365
+ */
37366
+ var oid = (dynamicType, dynamicData) => {
37367
+ switch (dynamicType) {
37368
+ case DynamicType.WORD:
37369
+ case DynamicType.FORWARD: return dynamicData.data.item.id_str;
37370
+ default: return dynamicData.data.item.basic.rid_str.toString();
37566
37371
  }
37567
37372
  };
37568
37373
  /**
@@ -38350,11 +38155,6 @@ var Bilibilipush = class extends Base {
38350
38155
  skip && logger.warn(`动态 https://t.bilibili.com/${dynamicId} 已被处理,跳过`);
38351
38156
  let send_video = true;
38352
38157
  let img = [];
38353
- const dynamicCARDINFO = await this.amagi.bilibili.fetcher.fetchDynamicCard({
38354
- dynamic_id: dynamicId,
38355
- typeMode: "strict"
38356
- });
38357
- const dycrad = dynamicCARDINFO.data.data.card && dynamicCARDINFO.data.data.card.card && JSON.parse(dynamicCARDINFO.data.data.card.card);
38358
38158
  this.injectBotToEventForRender(data[dynamicId].targets);
38359
38159
  if (!skip) {
38360
38160
  const userINFO = await this.amagi.bilibili.fetcher.fetchUserCard({
@@ -38377,7 +38177,7 @@ var Bilibilipush = class extends Base {
38377
38177
  data[dynamicId].Dynamic_Data.modules.module_dynamic.major.opus.summary.text = `${name}\n\n` + data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.opus?.summary?.text;
38378
38178
  }
38379
38179
  img = await Render(this.e, "bilibili/dynamic/DYNAMIC_TYPE_DRAW", {
38380
- image_url: dycrad.item.pictures && cover(dycrad.item.pictures),
38180
+ image_url: Object.values(data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.opus?.pics ?? []).filter((item) => typeof item?.url === "string").map((item) => ({ image_src: item.url })),
38381
38181
  title: data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.opus?.title ?? void 0,
38382
38182
  text: buildBilibiliDynamicRichText(data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.opus?.summary?.text ?? "", data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.opus?.summary?.rich_text_nodes ?? []),
38383
38183
  dianzan: Count(data[dynamicId].Dynamic_Data.modules.module_stat.like.count),
@@ -38401,13 +38201,13 @@ var Bilibilipush = class extends Base {
38401
38201
  break;
38402
38202
  /** 处理纯文动态 */
38403
38203
  case DynamicType.WORD: {
38404
- if (data[dynamicId].Dynamic_Data.modules.module_dynamic.topic !== null) {
38405
- const name = data[dynamicId].Dynamic_Data.modules.module_dynamic.topic.name;
38204
+ if ("topic" in data[dynamicId].Dynamic_Data.orig.modules.module_dynamic && data[dynamicId].Dynamic_Data.modules.module_dynamic.topic !== null) {
38205
+ const name = data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic.name;
38406
38206
  data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.opus.summary.rich_text_nodes.unshift({
38407
38207
  orig_text: name,
38408
38208
  text: name,
38409
38209
  type: "topic",
38410
- rid: data[dynamicId].Dynamic_Data.modules.module_dynamic.topic.id.toString()
38210
+ rid: data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic.id.toString()
38411
38211
  });
38412
38212
  data[dynamicId].Dynamic_Data.modules.module_dynamic.major.opus.summary.text = `${name}\n\n` + data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.opus?.summary?.text;
38413
38213
  }
@@ -38469,8 +38269,8 @@ var Bilibilipush = class extends Base {
38469
38269
  dianzan: Count(INFODATA.data.data.stat.like),
38470
38270
  pinglun: Count(INFODATA.data.data.stat.reply),
38471
38271
  share: Count(INFODATA.data.data.stat.share),
38472
- view: Count(dycrad.stat.view),
38473
- coin: Count(dycrad.stat.coin),
38272
+ view: Count(INFODATA.data.data.stat.view),
38273
+ coin: Count(INFODATA.data.data.stat.coin),
38474
38274
  duration_text: data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.archive?.duration_text ?? "0:00",
38475
38275
  create_time: TimeFormatter.toDateTime(data[dynamicId].Dynamic_Data.modules.module_author.pub_ts),
38476
38276
  avatar_url: userINFO.data.data.card.face,
@@ -38489,21 +38289,23 @@ var Bilibilipush = class extends Base {
38489
38289
  }
38490
38290
  break;
38491
38291
  /** 处理直播动态 */
38492
- case DynamicType.LIVE_RCMD:
38292
+ case DynamicType.LIVE_RCMD: {
38293
+ const liveInfo = JSON.parse(data[dynamicId].Dynamic_Data.modules.module_dynamic.major.live_rcmd.content);
38493
38294
  img = await Render(this.e, "bilibili/dynamic/DYNAMIC_TYPE_LIVE_RCMD", {
38494
- image_url: dycrad.live_play_info.cover,
38495
- text: buildBilibiliDynamicRichText(dycrad.live_play_info.title, []),
38496
- liveinf: br(`${dycrad.live_play_info.area_name} | 房间号: ${dycrad.live_play_info.room_id}`),
38295
+ image_url: liveInfo.live_play_info.cover,
38296
+ text: buildBilibiliDynamicRichText(liveInfo.live_play_info.title, []),
38297
+ liveinf: br(`${liveInfo.live_play_info.area_name} | 房间号: ${liveInfo.live_play_info.room_id}`),
38497
38298
  usernameMeta: getUsernameMetadata(userINFO.data.data.card),
38498
38299
  avatar_url: userINFO.data.data.card.face,
38499
38300
  frame: data[dynamicId].Dynamic_Data.modules.module_author.pendant.image,
38500
38301
  fans: Count(userINFO.data.data.follower),
38501
38302
  create_time: TimeFormatter.toDateTime(data[dynamicId].Dynamic_Data.modules.module_author.pub_ts),
38502
38303
  now_time: TimeFormatter.now(),
38503
- share_url: "https://live.bilibili.com/" + dycrad.live_play_info.room_id,
38304
+ share_url: "https://live.bilibili.com/" + liveInfo.live_play_info.room_id,
38504
38305
  dynamicTYPE: "直播动态推送"
38505
38306
  });
38506
38307
  break;
38308
+ }
38507
38309
  /** 处理转发动态 */
38508
38310
  case DynamicType.FORWARD: {
38509
38311
  if ("topic" in data[dynamicId].Dynamic_Data.modules.module_dynamic && data[dynamicId].Dynamic_Data.modules.module_dynamic.topic !== null) {
@@ -38540,12 +38342,7 @@ var Bilibilipush = class extends Base {
38540
38342
  frame: data[dynamicId].Dynamic_Data.orig.modules.module_author.pendant.image
38541
38343
  };
38542
38344
  break;
38543
- case DynamicType.DRAW: {
38544
- const dynamicCARD = await bilibiliFetcher.fetchDynamicCard({
38545
- dynamic_id: data[dynamicId].Dynamic_Data.orig.id_str,
38546
- typeMode: "strict"
38547
- });
38548
- const cardData = JSON.parse(dynamicCARD.data.data.card.card);
38345
+ case DynamicType.DRAW:
38549
38346
  if ("topic" in data[dynamicId].Dynamic_Data.orig.modules.module_dynamic && data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic !== null) {
38550
38347
  const name = data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic.name;
38551
38348
  const origSummary = data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.major?.opus?.summary;
@@ -38555,7 +38352,9 @@ var Bilibilipush = class extends Base {
38555
38352
  orig_text: name,
38556
38353
  text: name,
38557
38354
  type: "topic",
38558
- rid: data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic.id.toString()
38355
+ rid: data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic.id.toString(),
38356
+ jump_url: "114514",
38357
+ style: { "114514": "1919810" }
38559
38358
  });
38560
38359
  origSummary.text = `${name}\n` + (origSummary.text || "");
38561
38360
  }
@@ -38566,12 +38365,11 @@ var Bilibilipush = class extends Base {
38566
38365
  create_time: TimeFormatter.toDateTime(data[dynamicId].Dynamic_Data.orig.modules.module_author.pub_ts),
38567
38366
  avatar_url: data[dynamicId].Dynamic_Data.orig.modules.module_author.face,
38568
38367
  text: buildBilibiliDynamicRichText(data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.major.opus.summary.text, data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.major.opus.summary.rich_text_nodes),
38569
- image_url: cardData.item.pictures && cover(cardData.item.pictures),
38368
+ image_url: Object.values(data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.major.opus.pics).filter((item) => typeof item?.url === "string").map((item) => ({ image_src: item.url })),
38570
38369
  decoration_card: generateDecorationCard(data[dynamicId].Dynamic_Data.orig.modules.module_author.decoration_card),
38571
38370
  frame: data[dynamicId].Dynamic_Data.orig.modules.module_author.pendant.image
38572
38371
  };
38573
38372
  break;
38574
- }
38575
38373
  case DynamicType.WORD:
38576
38374
  if ("topic" in data[dynamicId].Dynamic_Data.orig.modules.module_dynamic && data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic !== null) {
38577
38375
  const name = data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic.name;
@@ -38612,10 +38410,11 @@ var Bilibilipush = class extends Base {
38612
38410
  };
38613
38411
  break;
38614
38412
  }
38615
- case DynamicType.FORWARD:
38616
- default:
38617
- logger.warn(`UP主:${data[dynamicId].remark}的${logger.green("转发动态")}转发的原动态类型为「${logger.yellow(data[dynamicId].Dynamic_Data.orig.type)}」暂未支持解析`);
38413
+ default: {
38414
+ const key = dynamicId;
38415
+ logger.warn(`UP主:${data[key].remark}的${logger.green("转发动态")}转发的原动态类型为「${logger.yellow(data[key].Dynamic_Data.orig?.type)}」暂未支持解析`);
38618
38416
  break;
38417
+ }
38619
38418
  }
38620
38419
  img = await Render(this.e, "bilibili/dynamic/DYNAMIC_TYPE_FORWARD", {
38621
38420
  text,
@@ -38674,10 +38473,12 @@ var Bilibilipush = class extends Base {
38674
38473
  break;
38675
38474
  }
38676
38475
  /** 未处理的动态类型 */
38677
- default:
38476
+ default: {
38678
38477
  skip = true;
38679
- logger.warn(`UP主:${data[dynamicId].remark}「${data[dynamicId].dynamic_type}」动态类型的暂未支持推送\n动态地址:${"https://t.bilibili.com/" + data[dynamicId].Dynamic_Data.id_str}\n可通过 https://github.com/ikenxuan/karin-plugin-kkk/issues/new/choose 提交反馈`);
38478
+ const key = dynamicId;
38479
+ logger.warn(`UP主:${data[key].remark}「${data[key].dynamic_type}」动态类型的暂未支持推送\n动态地址:${"https://t.bilibili.com/" + data[key].Dynamic_Data.id_str}\n可通过 https://github.com/ikenxuan/karin-plugin-kkk/issues/new/choose 提交反馈`);
38680
38480
  break;
38481
+ }
38681
38482
  }
38682
38483
  }
38683
38484
  for (const target of data[dynamicId].targets) {
@@ -38693,8 +38494,8 @@ var Bilibilipush = class extends Base {
38693
38494
  let correctList;
38694
38495
  let videoSize = "";
38695
38496
  const playUrlData = await this.amagi.bilibili.fetcher.fetchVideoStreamUrl({
38696
- avid: dycrad.aid,
38697
- cid: dycrad.cid,
38497
+ avid: parseInt(data[dynamicId].Dynamic_Data.modules.module_dynamic.major.archive.aid),
38498
+ cid: data[dynamicId].Dynamic_Data.modules.module_dynamic.major.archive.cid,
38698
38499
  typeMode: "strict"
38699
38500
  });
38700
38501
  /** 提取出视频流信息对象,并排除清晰度重复的视频流 */
@@ -38708,21 +38509,21 @@ var Bilibilipush = class extends Base {
38708
38509
  /** 给视频信息对象删除不符合条件的视频流 */
38709
38510
  correctList = await bilibiliProcessVideos({
38710
38511
  accept_description: playUrlData.data.data.accept_description,
38711
- bvid: dynamicCARDINFO.data.data.card.desc.bvid,
38512
+ bvid: data[dynamicId].Dynamic_Data.modules.module_dynamic.major.archive.bvid,
38712
38513
  qn: Config.bilibili.push.pushVideoQuality,
38713
38514
  maxAutoVideoSize: Config.bilibili.push.pushMaxAutoVideoSize
38714
38515
  }, simplify, playUrlData.data.data.dash.audio[0].base_url);
38715
38516
  playUrlData.data.data.dash.video = correctList.videoList;
38716
38517
  playUrlData.data.data.accept_description = correctList.accept_description;
38717
38518
  /** 获取第一个视频流的大小 */
38718
- videoSize = await getvideosize(correctList.videoList[0].base_url, playUrlData.data.data.dash.audio[0].base_url, dynamicCARDINFO.data.data.card.desc.bvid);
38519
+ videoSize = await getvideosize(correctList.videoList[0].base_url, playUrlData.data.data.dash.audio[0].base_url, data[dynamicId].Dynamic_Data.modules.module_dynamic.major.archive.bvid);
38719
38520
  if (Config.upload.usefilelimit && Number(videoSize) > Number(Config.upload.filelimit) && !Config.upload.compress) {
38720
38521
  await karin$1.sendMsg(botId, Contact, [segment.text(`设定的最大上传大小为 ${Config.upload.filelimit}MB\n当前解析到的视频大小为 ${Number(videoSize)}MB\n视频太大了,还是去B站看吧~`), segment.reply(status.messageId)]);
38721
38522
  break;
38722
38523
  }
38723
38524
  logger.mark(`当前处于自动推送状态,解析到的视频大小为 ${logger.yellow(Number(videoSize))} MB`);
38724
38525
  const infoData = await this.amagi.bilibili.fetcher.fetchVideoInfo({
38725
- bvid: dynamicCARDINFO.data.data.card.desc.bvid,
38526
+ bvid: data[dynamicId].Dynamic_Data.modules.module_dynamic.major.archive.bvid,
38726
38527
  typeMode: "strict"
38727
38528
  });
38728
38529
  const mp4File = await downloadFile(playUrlData.data?.data?.dash?.video[0].base_url, {
@@ -39135,7 +38936,8 @@ var Bilibilipush = class extends Base {
39135
38936
  renderOpt,
39136
38937
  groupInfo: {
39137
38938
  groupId: groupInfo.groupId || "",
39138
- groupName: groupInfo.groupName || ""
38939
+ groupName: groupInfo.groupName || "",
38940
+ groupAvatar: groupInfo.avatar || ""
39139
38941
  }
39140
38942
  });
39141
38943
  await this.e.reply(img);
@@ -40365,18 +40167,28 @@ var DouYin = class DouYin extends Base {
40365
40167
  if (VideoData.data.aweme_detail?.suggest_words?.suggest_words) {
40366
40168
  for (const item of VideoData.data.aweme_detail.suggest_words.suggest_words) if (item.words && item.scene === "comment_top_rec") for (const v of item.words) v.word && suggest.push(v.word);
40367
40169
  }
40170
+ const aweme = VideoData.data.aweme_detail;
40368
40171
  const img = await Render(this.e, "douyin/comment", {
40369
40172
  Type: isArticle ? "文章" : isVideo ? "视频" : this.is_slides ? "合辑" : "图集",
40370
40173
  CommentsData: douyinCommentsRes.CommentsData,
40371
- CommentLength: Config.douyin.realCommentCount ? VideoData.data.aweme_detail.statistics.comment_count : douyinCommentsRes.CommentsData.length ?? 0,
40372
- share_url: isVideo ? `https://aweme.snssdk.com/aweme/v1/play/?video_id=${VideoData.data.aweme_detail.video.play_addr.uri}&ratio=1080p&line=0` : VideoData.data.aweme_detail.share_url,
40174
+ CommentLength: Config.douyin.realCommentCount ? aweme.statistics.comment_count : douyinCommentsRes.CommentsData.length ?? 0,
40175
+ share_url: isVideo ? `https://aweme.snssdk.com/aweme/v1/play/?video_id=${aweme.video.play_addr.uri}&ratio=1080p&line=0` : aweme.share_url,
40373
40176
  VideoSize: mp4size,
40374
40177
  VideoFPS: FPS,
40375
40178
  ImageLength: imagenum,
40376
- Region: VideoData.data.aweme_detail.region,
40179
+ Region: aweme.region,
40377
40180
  suggestWrod: suggest,
40378
40181
  Resolution: isVideo && video ? `${video.bit_rate[0].play_addr.width} x ${video.bit_rate[0].play_addr.height}` : null,
40379
- maxDepth: Config.douyin.subCommentDepth
40182
+ maxDepth: Config.douyin.subCommentDepth,
40183
+ Author: aweme.author.nickname,
40184
+ AuthorAvatar: aweme.author.avatar_thumb.url_list[0],
40185
+ Statistics: {
40186
+ digg_count: aweme.statistics.digg_count,
40187
+ comment_count: aweme.statistics.comment_count,
40188
+ share_count: aweme.statistics.share_count,
40189
+ collect_count: aweme.statistics.collect_count
40190
+ },
40191
+ CreateTime: aweme.create_time
40380
40192
  });
40381
40193
  const messageElements = [];
40382
40194
  if (Config.douyin.commentImageCollection && douyinCommentsRes.image_url.length > 0) {
@@ -40611,17 +40423,31 @@ var DouYin = class DouYin extends Base {
40611
40423
  web_rid: room_data.owner.web_rid,
40612
40424
  typeMode: "strict"
40613
40425
  });
40426
+ const liveItem = live_data.data.data[0];
40427
+ const user = UserInfoData.data.user;
40428
+ const streamExtra = liveItem.stream_url?.extra;
40429
+ const resolution = streamExtra ? `${streamExtra.width}x${streamExtra.height}` : liveItem.stream_url?.default_resolution || "";
40614
40430
  const img = await Render(this.e, "douyin/live", {
40615
- image_url: live_data.data.data[0].cover?.url_list[0],
40616
- text: live_data.data.data[0].title,
40617
- liveinf: `${live_data.data.partition_road_map.partition.title} | 房间号: ${room_data.owner.web_rid}`,
40618
- 在线观众: Count(Number(live_data.data.data[0].room_view_stats?.display_value)),
40619
- 总观看次数: live_data.data.data[0].stats?.total_user_str ? Count(Number(live_data.data.data[0].stats?.total_user_str)) : "刚开播无法获取",
40620
- username: UserInfoData.data.user.nickname,
40621
- avater_url: UserInfoData.data.user.avatar_larger.url_list[0],
40622
- fans: Count(UserInfoData.data.user.follower_count),
40431
+ image_url: liveItem.cover?.url_list[0],
40432
+ text: liveItem.title,
40433
+ partition_title: live_data.data.partition_road_map?.partition?.title || "未知分区",
40434
+ room_id: room_data.owner.web_rid,
40435
+ online_viewers: Count(Number(liveItem.room_view_stats?.display_value)),
40436
+ total_viewers: liveItem.stats?.total_user_str || "刚开播无法获取",
40437
+ username: user.nickname,
40438
+ avater_url: user.avatar_larger.url_list[0],
40439
+ fans: Count(user.follower_count),
40623
40440
  share_url: "https://live.douyin.com/" + room_data.owner.web_rid,
40624
- dynamicTYPE: "直播间信息"
40441
+ dynamicTYPE: "直播间信息",
40442
+ like_count: Count(Number(liveItem.like_count || 0)),
40443
+ user_count_str: liveItem.user_count_str || "",
40444
+ resolution,
40445
+ signature: user.signature || "",
40446
+ city: user.city || "",
40447
+ aweme_count: Count(Number(user.aweme_count || 0)),
40448
+ following_count: Count(Number(user.following_count || 0)),
40449
+ total_favorited: Count(Number(user.total_favorited || 0)),
40450
+ has_commerce_goods: liveItem.has_commerce_goods || false
40625
40451
  });
40626
40452
  await this.e.reply(img);
40627
40453
  } else this.e.reply(`「${UserInfoData.data.user.nickname}」\n未开播,正在休息中~`);
@@ -41987,7 +41813,8 @@ var DouYinpush = class extends Base {
41987
41813
  renderOpt,
41988
41814
  groupInfo: {
41989
41815
  groupId: groupInfo.groupId || "",
41990
- groupName: groupInfo.groupName || ""
41816
+ groupName: groupInfo.groupName || "",
41817
+ groupAvatar: groupInfo.avatar || ""
41991
41818
  }
41992
41819
  });
41993
41820
  await this.e.reply(img);
@@ -44142,7 +43969,7 @@ var getChangelogImage = async (ctx, props) => {
44142
43969
  remoteVersion: props.remoteVersion,
44143
43970
  lagVersionCount,
44144
43971
  buildTime,
44145
- share_url: `https://karin-plugin-kkk-docs.vercel.app/zh-CN/diff?old=${props.localVersion}&new=latest`
43972
+ share_url: `https://karin-plugin-kkk-docs.vercel.app/diff?old=${props.localVersion}&new=latest`
44146
43973
  }) || null;
44147
43974
  };
44148
43975
  //#endregion
@@ -44286,7 +44113,6 @@ var update = karin$1.task("kkk-更新检测", "*/3 * * * *", Handler, {
44286
44113
  //#endregion
44287
44114
  //#region src/platform/bilibili/api/contents.ts
44288
44115
  var import_lib = /* @__PURE__ */ __toESM(require_lib(), 1);
44289
- var import_dist = /* @__PURE__ */ __toESM(require_dist(), 1);
44290
44116
  /**
44291
44117
  * B站内容管理 API
44292
44118
  */
@@ -47862,7 +47688,7 @@ var proxyOptions = {
47862
47688
  changeOrigin: true
47863
47689
  };
47864
47690
  server.use(import_lib.default());
47865
- server.use("/", import_dist.createProxyMiddleware(proxyOptions));
47691
+ server.use("/", createProxyMiddleware(proxyOptions));
47866
47692
  if (process.env.NODE_ENV !== "test") checkPort(3780).then((isOpen) => {
47867
47693
  if (isOpen) {
47868
47694
  const s = server.listen(3780);