@windrun-huaiin/base-ui 5.2.0 → 5.3.1

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.
@@ -1051,6 +1051,113 @@ var SchemeIcon = React28.forwardRef(
1051
1051
  SchemeIcon.displayName = "Scheme";
1052
1052
  var scheme_default = SchemeIcon;
1053
1053
 
1054
+ // src/assets/faq.tsx
1055
+ import React29 from "react";
1056
+ import { jsx as jsx29, jsxs as jsxs7 } from "react/jsx-runtime";
1057
+ var FAQIcon = React29.forwardRef(
1058
+ (_a, ref) => {
1059
+ var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1060
+ return /* @__PURE__ */ jsxs7(
1061
+ "svg",
1062
+ __spreadProps(__spreadValues({
1063
+ ref,
1064
+ role: "img",
1065
+ className,
1066
+ stroke: "currentColor",
1067
+ strokeWidth: "2",
1068
+ strokeLinecap: "round",
1069
+ strokeLinejoin: "round"
1070
+ }, props), {
1071
+ viewBox: "0 0 24 24",
1072
+ xmlns: "http://www.w3.org/2000/svg",
1073
+ children: [
1074
+ /* @__PURE__ */ jsx29("circle", { cx: "12", cy: "12", r: "10", fill: "none", stroke: themeSvgIconColor }),
1075
+ /* @__PURE__ */ jsx29("path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3", fill: "none", stroke: themeSvgIconColor }),
1076
+ /* @__PURE__ */ jsx29("path", { d: "M12 17h.01", fill: "none", stroke: themeSvgIconColor })
1077
+ ]
1078
+ })
1079
+ );
1080
+ }
1081
+ );
1082
+ FAQIcon.displayName = "FAQ";
1083
+ var faq_default = FAQIcon;
1084
+
1085
+ // src/assets/faqb.tsx
1086
+ import React30 from "react";
1087
+ import { jsx as jsx30, jsxs as jsxs8 } from "react/jsx-runtime";
1088
+ var FAQBIcon = React30.forwardRef(
1089
+ (_a, ref) => {
1090
+ var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1091
+ return /* @__PURE__ */ jsxs8(
1092
+ "svg",
1093
+ __spreadProps(__spreadValues({
1094
+ ref,
1095
+ role: "img",
1096
+ className,
1097
+ stroke: "currentColor",
1098
+ strokeWidth: "2",
1099
+ strokeLinecap: "round",
1100
+ strokeLinejoin: "round"
1101
+ }, props), {
1102
+ viewBox: "0 0 24 24",
1103
+ xmlns: "http://www.w3.org/2000/svg",
1104
+ children: [
1105
+ /* @__PURE__ */ jsx30(
1106
+ "path",
1107
+ {
1108
+ fill: "none",
1109
+ stroke: themeSvgIconColor,
1110
+ d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z"
1111
+ }
1112
+ ),
1113
+ /* @__PURE__ */ jsx30("path", { fill: "none", stroke: themeSvgIconColor, d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }),
1114
+ /* @__PURE__ */ jsx30("line", { fill: "none", stroke: themeSvgIconColor, x1: "12", x2: "12.01", y1: "17", y2: "17" })
1115
+ ]
1116
+ })
1117
+ );
1118
+ }
1119
+ );
1120
+ FAQBIcon.displayName = "FAQB";
1121
+ var faqb_default = FAQBIcon;
1122
+
1123
+ // src/assets/faqs.tsx
1124
+ import React31 from "react";
1125
+ import { jsx as jsx31, jsxs as jsxs9 } from "react/jsx-runtime";
1126
+ var FAQSIcon = React31.forwardRef(
1127
+ (_a, ref) => {
1128
+ var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1129
+ return /* @__PURE__ */ jsxs9(
1130
+ "svg",
1131
+ __spreadProps(__spreadValues({
1132
+ ref,
1133
+ role: "img",
1134
+ className,
1135
+ stroke: "currentColor",
1136
+ strokeWidth: "2",
1137
+ strokeLinecap: "round",
1138
+ strokeLinejoin: "round"
1139
+ }, props), {
1140
+ viewBox: "0 0 24 24",
1141
+ xmlns: "http://www.w3.org/2000/svg",
1142
+ children: [
1143
+ /* @__PURE__ */ jsx31(
1144
+ "path",
1145
+ {
1146
+ fill: "none",
1147
+ stroke: themeSvgIconColor,
1148
+ d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"
1149
+ }
1150
+ ),
1151
+ /* @__PURE__ */ jsx31("path", { fill: "none", stroke: themeSvgIconColor, d: "M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3" }),
1152
+ /* @__PURE__ */ jsx31("path", { fill: "none", stroke: themeSvgIconColor, d: "M12 17h.01" })
1153
+ ]
1154
+ })
1155
+ );
1156
+ }
1157
+ );
1158
+ FAQSIcon.displayName = "FAQS";
1159
+ var faqs_default = FAQSIcon;
1160
+
1054
1161
  // src/assets/index.ts
1055
1162
  var BUILTIN_ICON_COMPONENTS = {
1056
1163
  GitHub: github_default,
@@ -1080,7 +1187,10 @@ var BUILTIN_ICON_COMPONENTS = {
1080
1187
  SubP: subp_default,
1081
1188
  T3P: t3p_default,
1082
1189
  Http: http_default,
1083
- Scheme: scheme_default
1190
+ Scheme: scheme_default,
1191
+ FAQ: faq_default,
1192
+ FAQB: faqb_default,
1193
+ FAQS: faqs_default
1084
1194
  };
1085
1195
 
1086
1196
  // ../lib/src/limited-lucide-icons.ts
@@ -1107,6 +1217,7 @@ __export(limited_lucide_icons_exports, {
1107
1217
  Circle: () => Circle,
1108
1218
  CircleAlert: () => CircleAlert,
1109
1219
  CircleSmall: () => CircleSmall,
1220
+ CircleStop: () => CircleStop,
1110
1221
  ComponentIcon: () => ComponentIcon,
1111
1222
  Copy: () => Copy,
1112
1223
  Cpu: () => Cpu,
@@ -1128,6 +1239,7 @@ __export(limited_lucide_icons_exports, {
1128
1239
  GitPullRequestArrow: () => GitPullRequestArrow,
1129
1240
  Globe: () => Globe,
1130
1241
  GlobeLock: () => GlobeLock,
1242
+ Grip: () => Grip,
1131
1243
  GripVertical: () => GripVertical,
1132
1244
  HandHeart: () => HandHeart,
1133
1245
  Handshake: () => Handshake,
@@ -1136,6 +1248,7 @@ __export(limited_lucide_icons_exports, {
1136
1248
  ImageDown: () => ImageDown,
1137
1249
  ImageOff: () => ImageOff,
1138
1250
  ImageUp: () => ImageUp,
1251
+ Infinity: () => Infinity,
1139
1252
  Info: () => Info,
1140
1253
  Keyboard: () => Keyboard,
1141
1254
  LandPlot: () => LandPlot,
@@ -1153,28 +1266,34 @@ __export(limited_lucide_icons_exports, {
1153
1266
  Palette: () => Palette,
1154
1267
  PanelLeft: () => PanelLeft,
1155
1268
  PanelsTopLeft: () => PanelsTopLeft,
1269
+ PawPrint: () => PawPrint,
1156
1270
  Pencil: () => Pencil,
1157
1271
  Pi: () => Pi,
1272
+ QrCode: () => QrCode,
1158
1273
  ReceiptText: () => ReceiptText,
1159
1274
  RefreshCcw: () => RefreshCcw,
1160
1275
  Regex: () => Regex,
1161
1276
  Replace: () => Replace,
1277
+ Rocket: () => Rocket,
1162
1278
  Rss: () => Rss,
1163
1279
  Scale: () => Scale,
1164
1280
  Search: () => Search,
1165
1281
  SendHorizontal: () => SendHorizontal,
1166
1282
  Server: () => Server,
1167
1283
  Share: () => Share,
1284
+ Shield: () => Shield,
1168
1285
  ShieldUser: () => ShieldUser,
1169
1286
  Sigma: () => Sigma,
1170
1287
  Sparkles: () => Sparkles,
1171
1288
  SplinePointer: () => SplinePointer,
1289
+ Sprout: () => Sprout,
1172
1290
  SquareDashedBottomCode: () => SquareDashedBottomCode,
1173
1291
  SquareTerminal: () => SquareTerminal,
1174
1292
  Star: () => Star,
1175
1293
  Tablets: () => Tablets,
1176
1294
  Terminal: () => Terminal,
1177
1295
  Twitter: () => Twitter,
1296
+ Workflow: () => Workflow,
1178
1297
  X: () => X,
1179
1298
  Zap: () => Zap
1180
1299
  });
@@ -1194,6 +1313,7 @@ import {
1194
1313
  Circle,
1195
1314
  CircleAlert,
1196
1315
  CircleSmall,
1316
+ CircleStop,
1197
1317
  Check,
1198
1318
  CheckCheck,
1199
1319
  ChevronDown,
@@ -1209,6 +1329,7 @@ import {
1209
1329
  Eye,
1210
1330
  ExternalLink,
1211
1331
  Facebook,
1332
+ Shield,
1212
1333
  File,
1213
1334
  FileDown,
1214
1335
  FileInput,
@@ -1221,11 +1342,13 @@ import {
1221
1342
  GitPullRequestArrow,
1222
1343
  Globe,
1223
1344
  GlobeLock,
1345
+ Grip,
1224
1346
  GripVertical,
1225
1347
  HandHeart,
1226
1348
  Handshake,
1227
1349
  Highlighter,
1228
1350
  HousePlus,
1351
+ Infinity,
1229
1352
  Info,
1230
1353
  ImageDown,
1231
1354
  ImageOff,
@@ -1243,15 +1366,18 @@ import {
1243
1366
  Mail,
1244
1367
  MoreHorizontal,
1245
1368
  MousePointerClick,
1369
+ Palette,
1246
1370
  PanelLeft,
1247
1371
  PanelsTopLeft,
1372
+ PawPrint,
1248
1373
  Pencil,
1249
1374
  Pi,
1250
- Palette,
1375
+ QrCode,
1251
1376
  ReceiptText,
1252
1377
  RefreshCcw,
1253
1378
  Regex,
1254
1379
  Replace,
1380
+ Rocket,
1255
1381
  Rss,
1256
1382
  Scale,
1257
1383
  Search,
@@ -1259,6 +1385,7 @@ import {
1259
1385
  Share,
1260
1386
  Sigma,
1261
1387
  ShieldUser,
1388
+ Sprout,
1262
1389
  SquareDashedBottomCode,
1263
1390
  SquareTerminal,
1264
1391
  Server,
@@ -1268,13 +1395,14 @@ import {
1268
1395
  Tablets,
1269
1396
  Terminal,
1270
1397
  Twitter,
1398
+ Workflow,
1271
1399
  X,
1272
1400
  Zap
1273
1401
  } from "lucide-react";
1274
1402
 
1275
1403
  // src/components/global-icon.tsx
1276
- import React29 from "react";
1277
- import { jsx as jsx29 } from "react/jsx-runtime";
1404
+ import React32 from "react";
1405
+ import { jsx as jsx32 } from "react/jsx-runtime";
1278
1406
  var tempStyledLimitedIcons = {};
1279
1407
  for (const iconNameKey in limited_lucide_icons_exports) {
1280
1408
  if (Object.prototype.hasOwnProperty.call(limited_lucide_icons_exports, iconNameKey)) {
@@ -1294,7 +1422,7 @@ for (const iconNameKey in limited_lucide_icons_exports) {
1294
1422
  height: props.size || themeSvgIconSize
1295
1423
  }, props.style)
1296
1424
  });
1297
- return /* @__PURE__ */ jsx29(ComponentToRender, __spreadValues({}, finalProps));
1425
+ return /* @__PURE__ */ jsx32(ComponentToRender, __spreadValues({}, finalProps));
1298
1426
  };
1299
1427
  StyledIcon.displayName = `Styled(${iconName})`;
1300
1428
  tempStyledLimitedIcons[iconName] = StyledIcon;
@@ -1318,18 +1446,18 @@ for (const [iconName, IconComponent] of Object.entries(BUILTIN_ICON_COMPONENTS))
1318
1446
  height: props.size || themeSvgIconSize
1319
1447
  }, props.style)
1320
1448
  });
1321
- return /* @__PURE__ */ jsx29(IconComponent, __spreadValues({}, finalProps));
1449
+ return /* @__PURE__ */ jsx32(IconComponent, __spreadValues({}, finalProps));
1322
1450
  };
1323
1451
  WrappedIcon.displayName = `Wrapped(${iconName})`;
1324
1452
  tempWrappedBuiltinIcons[iconName] = WrappedIcon;
1325
1453
  }
1326
1454
  var wrappedBuiltinIconsPart = tempWrappedBuiltinIcons;
1327
1455
  var globalLucideIcons = __spreadValues(__spreadValues({}, styledLimitedIconsPart), wrappedBuiltinIconsPart);
1328
- var NotFoundIcon = () => /* @__PURE__ */ jsx29(globalLucideIcons.SquareTerminal, { className: `h-8 w-8 rounded-full p-1 shadow-lg ring-0.5 border border-purple-500 ring-purple-500/20 ${themeIconColor}` });
1456
+ var NotFoundIcon = () => /* @__PURE__ */ jsx32(globalLucideIcons.SquareTerminal, { className: `h-8 w-8 rounded-full p-1 shadow-lg ring-0.5 border border-purple-500 ring-purple-500/20 ${themeIconColor}` });
1329
1457
 
1330
1458
  // src/components/404-page.tsx
1331
1459
  import { useEffect, useState } from "react";
1332
- import { jsx as jsx30, jsxs as jsxs7 } from "react/jsx-runtime";
1460
+ import { jsx as jsx33, jsxs as jsxs10 } from "react/jsx-runtime";
1333
1461
  function NotFoundPage({ siteIcon }) {
1334
1462
  const [glitchText, setGlitchText] = useState("404");
1335
1463
  useEffect(() => {
@@ -1347,10 +1475,10 @@ function NotFoundPage({ siteIcon }) {
1347
1475
  }, 600);
1348
1476
  return () => clearInterval(interval);
1349
1477
  }, []);
1350
- return /* @__PURE__ */ jsxs7("div", { className: "flex flex-col items-center justify-center min-h-[75vh] w-full px-4 py-8", children: [
1351
- /* @__PURE__ */ jsxs7("div", { className: "text-center space-y-8 max-w-2xl", children: [
1352
- /* @__PURE__ */ jsxs7("div", { className: "relative flex justify-center", children: [
1353
- /* @__PURE__ */ jsx30(
1478
+ return /* @__PURE__ */ jsxs10("div", { className: "flex flex-col items-center justify-center min-h-[75vh] w-full px-4 py-8", children: [
1479
+ /* @__PURE__ */ jsxs10("div", { className: "text-center space-y-8 max-w-2xl", children: [
1480
+ /* @__PURE__ */ jsxs10("div", { className: "relative flex justify-center", children: [
1481
+ /* @__PURE__ */ jsx33(
1354
1482
  "h1",
1355
1483
  {
1356
1484
  className: "text-8xl md:text-9xl font-bold bg-gradient-to-r from-purple-600 via-pink-500 to-purple-700 bg-clip-text text-transparent select-none",
@@ -1362,26 +1490,26 @@ function NotFoundPage({ siteIcon }) {
1362
1490
  children: glitchText
1363
1491
  }
1364
1492
  ),
1365
- /* @__PURE__ */ jsx30("div", { className: "absolute inset-0 pointer-events-none", children: /* @__PURE__ */ jsx30("div", { className: "h-full w-full bg-gradient-to-b from-transparent via-purple-500/10 to-transparent animate-pulse" }) })
1493
+ /* @__PURE__ */ jsx33("div", { className: "absolute inset-0 pointer-events-none", children: /* @__PURE__ */ jsx33("div", { className: "h-full w-full bg-gradient-to-b from-transparent via-purple-500/10 to-transparent animate-pulse" }) })
1366
1494
  ] }),
1367
- /* @__PURE__ */ jsxs7("div", { className: "space-y-4", children: [
1368
- /* @__PURE__ */ jsx30("h2", { className: "text-2xl md:text-3xl font-semibold text-foreground", children: "Page Not Found" }),
1369
- /* @__PURE__ */ jsx30("p", { className: "text-lg text-muted-foreground max-w-md mx-auto leading-relaxed", children: "The page you're looking for doesn't exist" })
1495
+ /* @__PURE__ */ jsxs10("div", { className: "space-y-4", children: [
1496
+ /* @__PURE__ */ jsx33("h2", { className: "text-2xl md:text-3xl font-semibold text-foreground", children: "Page Not Found" }),
1497
+ /* @__PURE__ */ jsx33("p", { className: "text-lg text-muted-foreground max-w-md mx-auto leading-relaxed", children: "The page you're looking for doesn't exist" })
1370
1498
  ] }),
1371
- /* @__PURE__ */ jsxs7("div", { className: "flex justify-center items-center gap-8 pt-8 opacity-60", children: [
1372
- /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
1499
+ /* @__PURE__ */ jsxs10("div", { className: "flex justify-center items-center gap-8 pt-8 opacity-60", children: [
1500
+ /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
1373
1501
  siteIcon,
1374
- /* @__PURE__ */ jsx30("span", { children: "Woops!" })
1502
+ /* @__PURE__ */ jsx33("span", { children: "Woops!" })
1375
1503
  ] }),
1376
- /* @__PURE__ */ jsx30("div", { className: "w-1 h-1 bg-purple-500 rounded-full animate-ping" }),
1377
- /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
1378
- /* @__PURE__ */ jsx30(NotFoundIcon, {}),
1379
- /* @__PURE__ */ jsx30("span", { children: "Error Code: 404" })
1504
+ /* @__PURE__ */ jsx33("div", { className: "w-1 h-1 bg-purple-500 rounded-full animate-ping" }),
1505
+ /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
1506
+ /* @__PURE__ */ jsx33(NotFoundIcon, {}),
1507
+ /* @__PURE__ */ jsx33("span", { children: "Error Code: 404" })
1380
1508
  ] })
1381
1509
  ] })
1382
1510
  ] }),
1383
- /* @__PURE__ */ jsxs7("div", { className: "fixed inset-0 pointer-events-none overflow-hidden -z-10", children: [
1384
- /* @__PURE__ */ jsx30(
1511
+ /* @__PURE__ */ jsxs10("div", { className: "fixed inset-0 pointer-events-none overflow-hidden -z-10", children: [
1512
+ /* @__PURE__ */ jsx33(
1385
1513
  "div",
1386
1514
  {
1387
1515
  className: "absolute inset-0 opacity-[0.02] dark:opacity-[0.05]",
@@ -1394,7 +1522,7 @@ function NotFoundPage({ siteIcon }) {
1394
1522
  }
1395
1523
  }
1396
1524
  ),
1397
- Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx30(
1525
+ Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx33(
1398
1526
  "div",
1399
1527
  {
1400
1528
  className: "absolute w-2 h-2 bg-purple-500/20 rounded-full animate-bounce",
@@ -1411,23 +1539,19 @@ function NotFoundPage({ siteIcon }) {
1411
1539
  ] });
1412
1540
  }
1413
1541
 
1414
- // src/components/go-to-top.tsx
1415
- import { useState as useState2, useEffect as useEffect2 } from "react";
1416
- import { Fragment, jsx as jsx31 } from "react/jsx-runtime";
1417
-
1418
1542
  // src/components/language-detector.tsx
1419
1543
  import { useLocale, useTranslations } from "next-intl";
1420
1544
  import { useRouter } from "next/navigation";
1421
- import { useEffect as useEffect3, useState as useState3 } from "react";
1422
- import { jsx as jsx32, jsxs as jsxs8 } from "react/jsx-runtime";
1545
+ import { useEffect as useEffect2, useState as useState2 } from "react";
1546
+ import { jsx as jsx34, jsxs as jsxs11 } from "react/jsx-runtime";
1423
1547
  function LanguageDetector({ i18nConfig }) {
1424
- const [show, setShow] = useState3(false);
1425
- const [detectedLocale, setDetectedLocale] = useState3(null);
1548
+ const [show, setShow] = useState2(false);
1549
+ const [detectedLocale, setDetectedLocale] = useState2(null);
1426
1550
  const currentLocale = useLocale();
1427
1551
  const router = useRouter();
1428
1552
  const t = useTranslations("languageDetection");
1429
1553
  const LANGUAGE_PREFERENCE_KEY = `${i18nConfig.detector.storagePrefix}-${i18nConfig.detector.storageKey}`;
1430
- useEffect3(() => {
1554
+ useEffect2(() => {
1431
1555
  const browserLang = navigator.language.split("-")[0];
1432
1556
  const savedPreference = localStorage.getItem(LANGUAGE_PREFERENCE_KEY);
1433
1557
  const preference = savedPreference ? JSON.parse(savedPreference) : null;
@@ -1475,31 +1599,31 @@ function LanguageDetector({ i18nConfig }) {
1475
1599
  setShow(false);
1476
1600
  };
1477
1601
  if (!detectedLocale || !show) return null;
1478
- return /* @__PURE__ */ jsx32("div", { className: "fixed top-16 right-4 z-40 w-[420px]", children: /* @__PURE__ */ jsx32("div", { className: `shadow-lg rounded-lg transition-all duration-300 ${show ? "translate-x-0 opacity-100" : "translate-x-full opacity-0"}
1602
+ return /* @__PURE__ */ jsx34("div", { className: "fixed top-16 right-4 z-40 w-[420px]", children: /* @__PURE__ */ jsx34("div", { className: `shadow-lg rounded-lg transition-all duration-300 ${show ? "translate-x-0 opacity-100" : "translate-x-full opacity-0"}
1479
1603
  bg-linear-to-r from-purple-100/95 via-white/95 to-purple-100/95 backdrop-blur-xs
1480
- animate-gradient-x`, children: /* @__PURE__ */ jsxs8("div", { className: "relative px-6 py-4 overflow-hidden", children: [
1481
- /* @__PURE__ */ jsxs8("div", { className: "relative z-10 flex flex-col gap-3", children: [
1482
- /* @__PURE__ */ jsxs8("div", { className: "flex items-start justify-between gap-4", children: [
1483
- /* @__PURE__ */ jsxs8("div", { className: "flex flex-col gap-1.5", children: [
1484
- /* @__PURE__ */ jsx32("h3", { className: "text-lg font-semibold text-gray-900", children: t("title") }),
1485
- /* @__PURE__ */ jsxs8("p", { className: "text-base text-gray-600", children: [
1604
+ animate-gradient-x`, children: /* @__PURE__ */ jsxs11("div", { className: "relative px-6 py-4 overflow-hidden", children: [
1605
+ /* @__PURE__ */ jsxs11("div", { className: "relative z-10 flex flex-col gap-3", children: [
1606
+ /* @__PURE__ */ jsxs11("div", { className: "flex items-start justify-between gap-4", children: [
1607
+ /* @__PURE__ */ jsxs11("div", { className: "flex flex-col gap-1.5", children: [
1608
+ /* @__PURE__ */ jsx34("h3", { className: "text-lg font-semibold text-gray-900", children: t("title") }),
1609
+ /* @__PURE__ */ jsxs11("p", { className: "text-base text-gray-600", children: [
1486
1610
  t("description"),
1487
1611
  " ",
1488
- /* @__PURE__ */ jsx32("span", { className: "text-purple-500 font-semibold", children: detectedLocale === "zh" ? "\u4E2D\u6587" : "English" }),
1612
+ /* @__PURE__ */ jsx34("span", { className: "text-purple-500 font-semibold", children: detectedLocale === "zh" ? "\u4E2D\u6587" : "English" }),
1489
1613
  "?"
1490
1614
  ] })
1491
1615
  ] }),
1492
- /* @__PURE__ */ jsx32(
1616
+ /* @__PURE__ */ jsx34(
1493
1617
  "button",
1494
1618
  {
1495
1619
  onClick: handleClose,
1496
1620
  className: "text-gray-500 hover:text-gray-700",
1497
- children: /* @__PURE__ */ jsx32(globalLucideIcons.X, { className: "h-5 w-5" })
1621
+ children: /* @__PURE__ */ jsx34(globalLucideIcons.X, { className: "h-5 w-5" })
1498
1622
  }
1499
1623
  )
1500
1624
  ] }),
1501
- /* @__PURE__ */ jsxs8("div", { className: "flex items-center gap-3", children: [
1502
- /* @__PURE__ */ jsx32(
1625
+ /* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-3", children: [
1626
+ /* @__PURE__ */ jsx34(
1503
1627
  "button",
1504
1628
  {
1505
1629
  onClick: handleClose,
@@ -1507,7 +1631,7 @@ function LanguageDetector({ i18nConfig }) {
1507
1631
  children: t("close")
1508
1632
  }
1509
1633
  ),
1510
- /* @__PURE__ */ jsx32(
1634
+ /* @__PURE__ */ jsx34(
1511
1635
  "button",
1512
1636
  {
1513
1637
  onClick: handleLanguageChange,
@@ -1517,7 +1641,7 @@ function LanguageDetector({ i18nConfig }) {
1517
1641
  )
1518
1642
  ] })
1519
1643
  ] }),
1520
- /* @__PURE__ */ jsx32("div", { className: "absolute inset-0 bg-linear-to-r from-transparent via-purple-200/30 to-transparent animate-shimmer" })
1644
+ /* @__PURE__ */ jsx34("div", { className: "absolute inset-0 bg-linear-to-r from-transparent via-purple-200/30 to-transparent animate-shimmer" })
1521
1645
  ] }) }) });
1522
1646
  }
1523
1647
 
@@ -1526,7 +1650,7 @@ import { usePathname, useRouter as useRouter2 } from "next/navigation";
1526
1650
  import { useLocale as useLocale2 } from "next-intl";
1527
1651
 
1528
1652
  // src/ui/dropdown-menu.tsx
1529
- import * as React30 from "react";
1653
+ import * as React33 from "react";
1530
1654
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1531
1655
 
1532
1656
  // ../lib/src/utils.ts
@@ -1537,12 +1661,12 @@ function cn(...inputs) {
1537
1661
  }
1538
1662
 
1539
1663
  // src/ui/dropdown-menu.tsx
1540
- import { jsx as jsx33, jsxs as jsxs9 } from "react/jsx-runtime";
1664
+ import { jsx as jsx35, jsxs as jsxs12 } from "react/jsx-runtime";
1541
1665
  var DropdownMenu = DropdownMenuPrimitive.Root;
1542
1666
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
1543
- var DropdownMenuSubTrigger = React30.forwardRef((_a, ref) => {
1667
+ var DropdownMenuSubTrigger = React33.forwardRef((_a, ref) => {
1544
1668
  var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
1545
- return /* @__PURE__ */ jsxs9(
1669
+ return /* @__PURE__ */ jsxs12(
1546
1670
  DropdownMenuPrimitive.SubTrigger,
1547
1671
  __spreadProps(__spreadValues({
1548
1672
  ref,
@@ -1554,15 +1678,15 @@ var DropdownMenuSubTrigger = React30.forwardRef((_a, ref) => {
1554
1678
  }, props), {
1555
1679
  children: [
1556
1680
  children,
1557
- /* @__PURE__ */ jsx33(globalLucideIcons.ChevronRight, { className: "ml-auto" })
1681
+ /* @__PURE__ */ jsx35(globalLucideIcons.ChevronRight, { className: "ml-auto" })
1558
1682
  ]
1559
1683
  })
1560
1684
  );
1561
1685
  });
1562
1686
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
1563
- var DropdownMenuSubContent = React30.forwardRef((_a, ref) => {
1687
+ var DropdownMenuSubContent = React33.forwardRef((_a, ref) => {
1564
1688
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1565
- return /* @__PURE__ */ jsx33(
1689
+ return /* @__PURE__ */ jsx35(
1566
1690
  DropdownMenuPrimitive.SubContent,
1567
1691
  __spreadValues({
1568
1692
  ref,
@@ -1574,9 +1698,9 @@ var DropdownMenuSubContent = React30.forwardRef((_a, ref) => {
1574
1698
  );
1575
1699
  });
1576
1700
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
1577
- var DropdownMenuContent = React30.forwardRef((_a, ref) => {
1701
+ var DropdownMenuContent = React33.forwardRef((_a, ref) => {
1578
1702
  var _b = _a, { className, sideOffset = 4 } = _b, props = __objRest(_b, ["className", "sideOffset"]);
1579
- return /* @__PURE__ */ jsx33(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx33(
1703
+ return /* @__PURE__ */ jsx35(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx35(
1580
1704
  DropdownMenuPrimitive.Content,
1581
1705
  __spreadValues({
1582
1706
  ref,
@@ -1589,9 +1713,9 @@ var DropdownMenuContent = React30.forwardRef((_a, ref) => {
1589
1713
  ) });
1590
1714
  });
1591
1715
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
1592
- var DropdownMenuItem = React30.forwardRef((_a, ref) => {
1716
+ var DropdownMenuItem = React33.forwardRef((_a, ref) => {
1593
1717
  var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
1594
- return /* @__PURE__ */ jsx33(
1718
+ return /* @__PURE__ */ jsx35(
1595
1719
  DropdownMenuPrimitive.Item,
1596
1720
  __spreadValues({
1597
1721
  ref,
@@ -1604,9 +1728,9 @@ var DropdownMenuItem = React30.forwardRef((_a, ref) => {
1604
1728
  );
1605
1729
  });
1606
1730
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
1607
- var DropdownMenuCheckboxItem = React30.forwardRef((_a, ref) => {
1731
+ var DropdownMenuCheckboxItem = React33.forwardRef((_a, ref) => {
1608
1732
  var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
1609
- return /* @__PURE__ */ jsxs9(
1733
+ return /* @__PURE__ */ jsxs12(
1610
1734
  DropdownMenuPrimitive.CheckboxItem,
1611
1735
  __spreadProps(__spreadValues({
1612
1736
  ref,
@@ -1617,16 +1741,16 @@ var DropdownMenuCheckboxItem = React30.forwardRef((_a, ref) => {
1617
1741
  checked
1618
1742
  }, props), {
1619
1743
  children: [
1620
- /* @__PURE__ */ jsx33("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx33(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx33(globalLucideIcons.Check, { className: "h-4 w-4" }) }) }),
1744
+ /* @__PURE__ */ jsx35("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx35(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx35(globalLucideIcons.Check, { className: "h-4 w-4" }) }) }),
1621
1745
  children
1622
1746
  ]
1623
1747
  })
1624
1748
  );
1625
1749
  });
1626
1750
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
1627
- var DropdownMenuRadioItem = React30.forwardRef((_a, ref) => {
1751
+ var DropdownMenuRadioItem = React33.forwardRef((_a, ref) => {
1628
1752
  var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
1629
- return /* @__PURE__ */ jsxs9(
1753
+ return /* @__PURE__ */ jsxs12(
1630
1754
  DropdownMenuPrimitive.RadioItem,
1631
1755
  __spreadProps(__spreadValues({
1632
1756
  ref,
@@ -1636,16 +1760,16 @@ var DropdownMenuRadioItem = React30.forwardRef((_a, ref) => {
1636
1760
  )
1637
1761
  }, props), {
1638
1762
  children: [
1639
- /* @__PURE__ */ jsx33("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx33(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx33(globalLucideIcons.Circle, { className: "h-2 w-2 fill-current" }) }) }),
1763
+ /* @__PURE__ */ jsx35("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx35(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx35(globalLucideIcons.Circle, { className: "h-2 w-2 fill-current" }) }) }),
1640
1764
  children
1641
1765
  ]
1642
1766
  })
1643
1767
  );
1644
1768
  });
1645
1769
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
1646
- var DropdownMenuLabel = React30.forwardRef((_a, ref) => {
1770
+ var DropdownMenuLabel = React33.forwardRef((_a, ref) => {
1647
1771
  var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
1648
- return /* @__PURE__ */ jsx33(
1772
+ return /* @__PURE__ */ jsx35(
1649
1773
  DropdownMenuPrimitive.Label,
1650
1774
  __spreadValues({
1651
1775
  ref,
@@ -1658,9 +1782,9 @@ var DropdownMenuLabel = React30.forwardRef((_a, ref) => {
1658
1782
  );
1659
1783
  });
1660
1784
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
1661
- var DropdownMenuSeparator = React30.forwardRef((_a, ref) => {
1785
+ var DropdownMenuSeparator = React33.forwardRef((_a, ref) => {
1662
1786
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1663
- return /* @__PURE__ */ jsx33(
1787
+ return /* @__PURE__ */ jsx35(
1664
1788
  DropdownMenuPrimitive.Separator,
1665
1789
  __spreadValues({
1666
1790
  ref,
@@ -1675,7 +1799,7 @@ var DropdownMenuShortcut = (_a) => {
1675
1799
  } = _b, props = __objRest(_b, [
1676
1800
  "className"
1677
1801
  ]);
1678
- return /* @__PURE__ */ jsx33(
1802
+ return /* @__PURE__ */ jsx35(
1679
1803
  "span",
1680
1804
  __spreadValues({
1681
1805
  className: cn("ml-auto text-xs tracking-widest opacity-60", className)
@@ -1685,12 +1809,12 @@ var DropdownMenuShortcut = (_a) => {
1685
1809
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
1686
1810
 
1687
1811
  // src/ui/language-button.tsx
1688
- import * as React31 from "react";
1689
- import { jsx as jsx34 } from "react/jsx-runtime";
1690
- var LanguageButton = React31.forwardRef(
1812
+ import * as React34 from "react";
1813
+ import { jsx as jsx36 } from "react/jsx-runtime";
1814
+ var LanguageButton = React34.forwardRef(
1691
1815
  (_a, ref) => {
1692
1816
  var _b = _a, { className, variant = "default", size = "default" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
1693
- return /* @__PURE__ */ jsx34(
1817
+ return /* @__PURE__ */ jsx36(
1694
1818
  "button",
1695
1819
  __spreadValues({
1696
1820
  className: cn(
@@ -1713,7 +1837,7 @@ var LanguageButton = React31.forwardRef(
1713
1837
  LanguageButton.displayName = "Button";
1714
1838
 
1715
1839
  // src/components/language-switcher.tsx
1716
- import { jsx as jsx35, jsxs as jsxs10 } from "react/jsx-runtime";
1840
+ import { jsx as jsx37, jsxs as jsxs13 } from "react/jsx-runtime";
1717
1841
  function LanguageSwitcher({ locales, localeLabels }) {
1718
1842
  const locale = useLocale2();
1719
1843
  const router = useRouter2();
@@ -1722,23 +1846,23 @@ function LanguageSwitcher({ locales, localeLabels }) {
1722
1846
  const newPathname = pathname.replace(`/${locale}`, `/${newLocale}`);
1723
1847
  router.push(newPathname);
1724
1848
  };
1725
- return /* @__PURE__ */ jsxs10(DropdownMenu, { children: [
1726
- /* @__PURE__ */ jsx35(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx35(
1849
+ return /* @__PURE__ */ jsxs13(DropdownMenu, { children: [
1850
+ /* @__PURE__ */ jsx37(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx37(
1727
1851
  LanguageButton,
1728
1852
  {
1729
1853
  variant: "ghost",
1730
1854
  size: "icon",
1731
1855
  className: "bg-linear-to-r from-purple-400 to-pink-600 hover:from-purple-500 hover:to-pink-700 text-white transform hover:scale-110 transition-all duration-300",
1732
- children: /* @__PURE__ */ jsx35(globalLucideIcons.Globe, { className: "h-5 w-5" })
1856
+ children: /* @__PURE__ */ jsx37(globalLucideIcons.Globe, { className: "h-5 w-5" })
1733
1857
  }
1734
1858
  ) }),
1735
- /* @__PURE__ */ jsx35(
1859
+ /* @__PURE__ */ jsx37(
1736
1860
  DropdownMenuContent,
1737
1861
  {
1738
1862
  align: "end",
1739
1863
  sideOffset: 5,
1740
1864
  className: "bg-white/90 dark:bg-gray-800/90 border-purple-100 dark:border-purple-800 w-[200px] p-2 backdrop-blur-xs translate-x-[50px]",
1741
- children: /* @__PURE__ */ jsx35("div", { className: "grid grid-cols-2 gap-1", children: locales.map((loc) => /* @__PURE__ */ jsx35(
1865
+ children: /* @__PURE__ */ jsx37("div", { className: "grid grid-cols-2 gap-1", children: locales.map((loc) => /* @__PURE__ */ jsx37(
1742
1866
  DropdownMenuItem,
1743
1867
  {
1744
1868
  className: `
@@ -1760,21 +1884,21 @@ function LanguageSwitcher({ locales, localeLabels }) {
1760
1884
 
1761
1885
  // src/components/script/google-analytics-script.tsx
1762
1886
  import Script from "next/script";
1763
- import { Fragment as Fragment2, jsx as jsx36, jsxs as jsxs11 } from "react/jsx-runtime";
1887
+ import { Fragment, jsx as jsx38, jsxs as jsxs14 } from "react/jsx-runtime";
1764
1888
  var googleAnalyticsId = process.env.NEXT_PUBLIC_GOOGLE_ANALYTICS_ID;
1765
1889
  function GoogleAnalyticsScript() {
1766
1890
  if (process.env.NODE_ENV !== "production") {
1767
1891
  return null;
1768
1892
  }
1769
- return /* @__PURE__ */ jsxs11(Fragment2, { children: [
1770
- /* @__PURE__ */ jsx36(
1893
+ return /* @__PURE__ */ jsxs14(Fragment, { children: [
1894
+ /* @__PURE__ */ jsx38(
1771
1895
  Script,
1772
1896
  {
1773
1897
  strategy: "afterInteractive",
1774
1898
  src: `https://www.googletagmanager.com/gtag/js?id=${googleAnalyticsId}`
1775
1899
  }
1776
1900
  ),
1777
- /* @__PURE__ */ jsx36(
1901
+ /* @__PURE__ */ jsx38(
1778
1902
  Script,
1779
1903
  {
1780
1904
  id: "google-analytics",
@@ -1805,13 +1929,13 @@ function useGoogleAnalytics() {
1805
1929
 
1806
1930
  // src/components/script/microsoft-clarity-script.tsx
1807
1931
  import Script2 from "next/script";
1808
- import { jsx as jsx37 } from "react/jsx-runtime";
1932
+ import { jsx as jsx39 } from "react/jsx-runtime";
1809
1933
  var microsoftClarityId = process.env.NEXT_PUBLIC_MICROSOFT_CLARITY_ID;
1810
1934
  function MicrosoftClarityScript() {
1811
1935
  if (process.env.NODE_ENV !== "production") {
1812
1936
  return null;
1813
1937
  }
1814
- return /* @__PURE__ */ jsx37(Script2, { id: "microsoft-clarity", strategy: "afterInteractive", children: `
1938
+ return /* @__PURE__ */ jsx39(Script2, { id: "microsoft-clarity", strategy: "afterInteractive", children: `
1815
1939
  (function(c,l,a,r,i,t,y){
1816
1940
  c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
1817
1941
  t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;